<?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>ScriptDeploy</name>
	<version>0.8.1</version>
  <mincmsversion>1.8</mincmsversion>
	<help><![CDATA[PGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiLz4NCjxoMyBjbGFzcz0iQmFja0xpbmsiPjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Jmx0OyZsdDsgQmFjazwvYT48L2gzPg0KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imhvc3RlZF9idXR0b25faWQiIHZhbHVlPSI4ODE3Njc1Ij4NCjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPg0KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj4NCjwvZm9ybT48YnIvPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISdzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZxdW90O1Byb2JsZW0gRG9tYWluJnF1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldyaXRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciwgY2hhbmdlIHNvbWUgb3B0aW9ucyBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSJCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCI+PHN0cm9uZz5CZWZvcmU8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSJCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCI+PCEtLTxpbWcgc3JjPSJodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmciIGFsdD0iYWZ0ZXIiIC8+LS0+DQoJICA8aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2hlbHBfMS5wbmciIGFsdD0iYWZ0ZXIiIC8+DQoJICANCgkgIDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjwhLS08aW1nIHNyYz0iaHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmciIGFsdD0iYmVmb3JlIiAvPi0tPg0KCSAgPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9oZWxwXzIucG5nIiBhbHQ9ImFmdGVyIiAvPg0KCSAgPC90ZD4NCiAgICA8L3RyPg0KCQ0KCQ0KCTx0cj4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjxzdHJvbmc+RGlmZmVyZW5jZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48IS0tPGltZyBzcmM9Imh0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYWZ0ZXIucG5nIiBhbHQ9ImJlZm9yZSIgLz4tLT4NCgkgIDxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvaGVscF8zLnBuZyIgYWx0PSJhZnRlciIgLz4NCgkgIDwvdGQ+DQogICAgPC90cj4NCgkNCiAgPC90Ym9keT4NCjwvdGFibGU+DQoNCjxwPldoYXQgZG9lcyB0aGlzIGFkZCB1cCB0bz8gb3ZlciBhIHRpbWUgdGhlIHNhdmluZ3MgYWRkcyB1cC4gIEkgdGhlIHVwcGVyIGV4YW1wbGUgdGhlcmUgaXMgMS42IHNlY29uZHMgb2YgcGFyYWxsZWwgdGltZSB0aGF0IGNvdWxkIGhhdmUgYmVlbiB1c2VkIGZvciBzb21lIGhlYXZ5IGltYWdlLiAgQXMgeW91IGNvbmZpZ3VyZSBTY3JpcHREZXBsb3kgd2l0aCBvcHRpb25zIHN1Y2ggYXMgc3ViZG9tYWlucyBhbmQgaW1hZ2UgcHJlbG9hZGluZyB5b3UgZ2FpbiBhIHRvdGFsIGVmZmVjdCBzYXZpbmcgdGhlIHVzZXIgaW4gZG93biBsb2FkIHRpbWUgb2YgeW91ciBwYWdlIGFzIHdlbGwgYXMgY29zdCB0byB5b3VyIHNlcnZlcjsgYW5kIGV2ZW4gZG93biB0byB0aGUgIGJhc2ljcyBvZiBob3cgZmFzdCB0aGUgRE9NIGJ1aWxkcyB0aHJ1IGNzcyBpbWFnZSBwcmVsb2FkaW5nPC9wPg0KDQo8aDI+PGEgaWQ9IkZlYXR1cmVzIj48L2E+RmVhdHVyZXMgPGVtPihKdXN0IGEgZmV3ISk8L2VtPjwvaDI+DQo8dWw+DQogIDxsaT4mYnVsbDsmbmJzcDtDb21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSBkb3dubG9hZCA8L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7UmV2aXNvbiBoaXN0b3J5LCB1c2VyIGVkaXRpbmcgbG9nZ2luZywgdG8gdXNlciBsb2Nrb3V0cyBsZXQgYW55IG51bWJlciBvZiBlZGl0b3JzIHdvcmsgdG9nZXRoZXIhPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO1VzZXMgYW4gPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvSlNNaW4ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+ZW5oYW5jZWQgcG9ydDwvYT4gb2YgRG91Z2xhcyBDcm9ja2ZvcmQncyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO0JyZWFrIGV2ZW4gdGhlIG1vc3Qgc3R1YmJvcm4gYnJvd3NlcidzIGNhY2hlIHdoZW4geW91IG1ha2UgYW4gZWRpdC48L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7UmVzcG9uZHMgd2l0aCBhbiBIVFRQIDMwNCAoTm90IE1vZGlmaWVkKSByZXNwb25zZSB3aGVuIHRoZSBicm93c2VyIGhhcyBhbiAgIHVwLXRvLWRhdGUgY2FjaGUgY29weSAqKiA8L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7TW9zdCBtb2R1bGVzIGFyZSBsYXp5LWxvYWRlZCBhcyBuZWVkZWQgKDMwNCByZXNwb25zZXMgdXNlIG1pbmltYWwgY29kZSkgICoqIDwvbGk+DQogIDxsaT4mYnVsbDsmbmJzcDtTZXQgYSBwYXRoIHRvIHdhdGNoIGZvciBGVFAnZCBmaWxlcyB0byBjb21iaW5lZDwvbGk+DQogIDxsaT4mYnVsbDsmbmJzcDtXaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSdzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyY29tZSB0aGlzIEp1c3QgY2hlY2sgInVzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyI8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e1NjcmlwdERlcGxveSBzY3JpcHRJRD0iMSIgU3R5cGU9IkNTUyJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntTY3JpcHREZXBsb3kgZ3JvdXBJRD0iMSIgU3R5cGU9IkpTIn0gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPjxici8+PGJyLz4NCg0KPGgzPlVzZSBhIHNjcmlwdCBmcm9tIGEgZm9sZGVyPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e1NjcmlwdERlcGxveSBwYXRoPSIvZm9sZGVybmFtZS9maWxlLmNzcyJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPlRoaXMgd2lsbCBsZXQgeW91IGZ0cCB1cCBmaWxlcyB0byB3b3JrIHdpdGguICBHcmVhdCBmb3IgdGhvc2UgdXNpbmcgcHJvZ3JhbXMgbGlrZSBEcmVhbXdlYXZlci48L2gyPg0KDQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiAgfCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkIG9yIHBhdGggaXMgdXNlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiAgfCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZCBvciBwYXRoIGlzIHVzZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gIHwgc2V0cyB0aGUgZXh0ZW50aW9uIG9mIHRoZSBzY3JpcHQgPHN0cm9uZz5OT1RFOjwvc3Ryb25nPiBpZiBwYXRoIGlzIHVzZSB0aGlzIHdpbGwgbm90IGhhcm0gYW55dGhpbmcgYnV0IGlzIG5vdCB1c2VkLjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+c21hcnR5PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiAgfCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPm1pbmlmeT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gIHwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+dW5tZXJnZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+ICB8IEZvcmNlIG91dHB1dCBvZiBhIGdyb3VwIHRvIGJlIGluIHNpZ25sZSBzY3JpcHRzLiBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+cGF0aD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSBDU1Ygb3Igc2luZ2xlIHBhdGggdmFsdWU8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+ICB8IFRoaXMgd2lsbCBsZXQgeW91IGZ0cCB1cCBmaWxlcyB0byB3b3JrIHdpdGguICBHcmVhdCBmb3IgdGhvc2UgdXNpbmcgcHJvZ3JhbXMgbGlrZSBEcmVhbXdlYXZlci48YnIvPjwvbGk+DQoNCg0KDQo8bGk+PHN0cm9uZz5tZWRpYV90eXBlPSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gIHwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gIHwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXR0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5AaW1wb3J0IHVybCgidXJsL2Nzc2ZpbGUuY3NzIikgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZV9idXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT4gIHwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0icmVkIj48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiAgfCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+ICB8IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gIHwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbG9hZCBmb2xkZXIgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9Imxpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyI+PGxpPjxzdHJvbmc+RXhhbXBsZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gPSAnL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2Fkcyc7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzJzs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0icmVkIj48c3Ryb25nPihOT1RFOiB3YXRjaCB5b3VyIC8gKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KCQkJPGxpPjxzdHJvbmc+Tk9URTo8L3N0cm9uZz4gVGhlIG1vZHVsZSBjcmVhdG9yIHN1Z2dlc3RzIHRvIG5vdCBtZXNzIHdpdGggdGhlIHVwbG9hZHMgcGF0aCwgcG9pbnQgYSBzdWJkb21haW4gQSByZWNvcmQgdG8gdGhlIHJvb3Qgb2YgeW91ciBDTVNNUyBpbnN0YWxsIHdoaWNoIGdpdmVzIHlvdSB0aGUgc2FtZSBlZmZlY3Qgd2l0aCBvdXQgdGhlIGVkaXRzIHRvIHRoZSBjb25maWcgZmlsZS48L2xpPg0KICAgICAgICA8L3VsPg0KPGxpPjxzdHJvbmc+dXJsPSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gIHxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISdzIGJlc3QgcHJhY3RpY2VzIHRoYXQgYXJlIGFkZHJlc3NlZCBieSB0aGUgdXNlIG9mIFNjcmlwdERlcGxveS4gPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNudW1faHR0cCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1ha2UgRmV3ZXIgSFRUUCBSZXF1ZXN0czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNleHBpcmVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+QWRkIGFuIEV4cGlyZXMgb3IgYSBDYWNoZS1Db250cm9sIEhlYWRlcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNnemlwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+R3ppcCBDb21wb25lbnRzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI21pbmlmeSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1pbmlmeSBKYXZhU2NyaXB0IGFuZCBDU1M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXRhZ3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5Db25maWd1cmUgRVRhZ3M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjdW5kZXIyNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPktlZXAgQ29tcG9uZW50cyB1bmRlciAyNUs8L2E+PC9saT4NCjwvdWw+DQo8ZmllbGRzZXQ+PGxlZ2VuZD48aDM+UGFja2VkIHdpdGg/PC9oMz48L2xlZ2VuZD4NCjxoMz5QYWNraW5nX3NpbXBseSBmb3IgQ01TTVM8L2gzPg0KPGg0Pkp1c3QgY29udGFjdCBKZXJlbXkgQmFzcyBmb3IgbW9yZSBkZXRhaWxzIG9uIHB1cmNoYXNpbmcgcmlnaHRzIHRvIHVzZS48L2g0Pg0KPC9maWVsZHNldD4NCjxmaWVsZHNldD48bGVnZW5kPjxoMz5TdXBwb3J0PzwvaDM+PC9sZWdlbmQ+DQo8aDM+VGhpcyBpcyBhIGZyZWUgbW9kdWxlISBQbGVhc2UgZG9uYXRlIHRvIGhlbHAgcHVzaCBpdCBmb3J3YXJkIGFuZCBpbXByb3ZlIHRoZSBkb2NzLjwvaDM+DQo8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVkX2J1dHRvbl9pZCIgdmFsdWU9Ijg4MTc2NzUiPg0KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISI+DQo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPg0KPC9mb3JtPjxici8+PGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZm9sbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Ij50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCjwvZmllbGRzZXQ+DQo8ZmllbGRzZXQ+PGxlZ2VuZD48aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz48L2xlZ2VuZD4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAxMSwgamVyZW15QmFzcyAmbHQ7PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+Jmd0OyBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVkX2J1dHRvbl9pZCIgdmFsdWU9Ijg4MTc2NzUiPg0KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISI+DQo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPg0KPC9mb3JtPjxici8+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPGgzPlRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS48L2gzPg0KPC9maWVsZHNldD4NCjxmaWVsZHNldD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPGg0PlRoaXJkIHBhcnR5IGNvZGUgdXNlZDo8L2g0Pg0KPGg1PkNvZGUgTWlycm9yPC9oNT4NCjxwPkNvcHlyaWdodCAoQykgMjAxMSBieSBNYXJpam4gSGF2ZXJiZWtlIDxtYXJpam5oQGdtYWlsLmNvbT48L3A+DQo8cD5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5DQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbA0KaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cw0KdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbA0KY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzDQpmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOjwvcD4NCjxwPlRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluDQphbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS48L3A+DQo8cD5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQpGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUNCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVINCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sDQpPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElODQpUSEUgU09GVFdBUkUuPC9wPg0KPGg1Pk1pbmlmeTwvaDU+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICc8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JyBieSBQYXRyaWNrIEh1bmxvY2suIDwvcD4NCjxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gbGlicmFyeTwvYT4gdXNlZCBmb3IgSmF2YVNjcmlwdCBtaW5pZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgICB3cml0dGVuIGJ5IERvdWdsYXMgQ3JvY2tmb3JkIGFuZCB3YXMgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzbWluLXBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnBvcnRlZCB0byBQSFA8L2E+IGJ5IFJ5YW4gICBHcm92ZSBzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiBNaW5pZnkuPC9wPg0KPC9maWVsZHNldD4NCjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+U2l0ZVV0aWxpdGllcyA9Jmd0OyAwLjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGVtcGxhdGVJZD0iIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZ2V0bW9kdWxlPSIiIC0gPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBTdHlwZT0iIiAtIENTUzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGF0aD0iIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4ga2VlcG5hbWU9IiIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHVubWVyZ2U9IiIgLSBUYWtlIGEgZ3JvdXAgYW5kIGJyZWFrIHRoZW0gaW50byBzaWdubGUgc2NyaXB0cyBmb3IgcHJvZHVjdGlvbjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVmZXI9IiIgLSB1c2UgYSBkZWZlcnNjcmlwdCB0byBsb2FkIGpzIChOb3RlOiB1c2Ugd2l0aCBwYXRoIG9yIGdyb3VwcyBub3QgZ3JlYXQgZm9yIHNpZ25sZSBzY3JpcHRzKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWpheD0iIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWpheHNhdmU9IiIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGV4Y2x1ZGU9IiIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGluY2x1ZGU9IiIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1vZHVsZT0iIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc21hcnR5PSIiIC0gdHVybiBzbWFydHkgb248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1pbmlmeT0iIiAtIHRydW4gbWluaWZ5IG9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtZWRpYV90eXBlPSIiIC0gc2V0IGEgbWVkaWEgdHlwZSBpZTogbW9yZSB0aGVuIG9uZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2FjaGVfYnVzdGVyPSIiIC0gdHVybiBvZmY8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZzaXplPSIiIC0gZ2V0IHNpemU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJvb3Q9IiIgLSBzZXQgdGhlIHJvb3QgdXJsPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkeW5hbWljPSIiIC0gZm9yY2UgaXQgdG8gYWx3YXlzIHJlYnVpbGQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNkX2hlYWRlcnM9IiIgLSBzZW5kcyBoZWFkZXJzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbXBvcnQ9IiIgLSBzZXQsIHdoZW4gY3NzLCB0byB1c2UgaW1wb3J0IGZvciBpbmxpbmU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGR1bXA9IiIgLSBkdW1wIG91dCB0aGUgY29udGFpbnRzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB1cmw9IiIgLSBnZXQgb25seSB0aGUgdXJsIHRvIHRoZSBmaWxlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBncm91cElEPSIiIC0gd2hhdCBpcyB0aGUgZ3JvdXAgaWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNjcmlwdElEPSIiIC0gd2hhdCBpcyB0aGUgc2NyaXB0IGlkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gLS1BZGQgTWUgLSBtb2R1bGU6U2NyaXB0RGVwbG95IHN0cmluZzpoZWxwX2FjdGlvbi0tPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkdXJhdGlvbj0iIiAtIC0tQWRkIE1lIC0gbW9kdWxlOlNjcmlwdERlcGxveSBzdHJpbmc6aGVscF9kdXJhdGlvbi0tPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjb29raWVuYW1lPSJjbXNfc3R5bGVuYW1lIiAtIC0tQWRkIE1lIC0gbW9kdWxlOlNjcmlwdERlcGxveSBzdHJpbmc6aGVscF9jb29raWVuYW1lLS08L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBqZXJlbXlCYXNzICZsdDtqZXJlbXliYXNzQGNhYmxlb25lLm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjguMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4NCgk8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQoJPGxpPlZlcnNpb24gMC4yIGxvdHMgb2YgY2hhbmdlcyB0byBmaXggYnVnLi4uPC9saT4NCgk8bGk+VmVyc2lvbiAwLjMgc2V0IHRoZSBzbWFydHkgdG8gdXNlIHt7IH19PC9saT4NCgk8bGk+VmVyc2lvbiAwLjQgZml4ZWQgYnVnLi4gaW1wcm92ZWQgdGhlIG1pbmlhZmNhdGlvbiB0byBhIHNhdmVzIG9mIHVwIHRvIDYwJTwvbGk+DQoJPGxpPlZlcnNpb24gMC43LjEgbWFueSBjaGFuZ2VzLi4uIDxzdHJvbmc+QlJFQUtTIFVQR1JBREU8L3N0cm9uZz4gQ29weSBzY3JpcHRzLCBpbnN0YWxsIGFuZCB0aGUgdXBsb2FkIGFuZCByZWluc3RhbGwuLi4gU29ycnkgYnV0IGl0IHdhcyBuZWVkZWQgZm9yIFZFUlNJT04gSElTVE9SWSBmaXhlZCBidWdzLi4gbWFueSBpbXByb3ZlbWVudHM8L2xpPg0KCTxsaT5WZXJzaW9uIDAuNy42IE1hbnkgZml4ZXMsIEFkZCB0aGUgZHVtcCBwYXJhbSwgYWRkIHRoZSBhY3Rpb24gZm9yIHRoZSBpbXBvcnQgcGFyYW0gJ2luX3NjcmlwdCcuPC9saT4NCjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[SPEED YOUR SITE UP ...!!!! **~~ #1 replacement for {cms_stylesheet} ~~** &bull; Output dynamic JS files and CSS WITH smarty... &bull; Set the files to use a subdomain... &bull; cached... &bull; minified... &bull; Did I mention you can use smarty in your JS and CSS script!!!! - Simple, flexible!]]></description>
	<requires>
	  <requiredname>SiteUtilities</requiredname>
	  <requiredversion>0.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.add_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTtpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXtyZXR1cm47fSRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOyRkYj1jbXNtcygpLT5HZXREYigpO2lmKCFpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKXskcGFyYW1zWydhY3RpdmVfdGFiJ109J3RlbXBsYXRlX21hbmcnO30kZGZsdF9jb250ZW50PScNCntwcm9jZXNzX3BhZ2VkYXRhfQ0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgPg0KPGhlYWQ+DQo8dGl0bGU+e3NpdGVuYW1lfSAtIHt0aXRsZX08L3RpdGxlPg0Ke21ldGFkYXRhfQ0Ke1NjcmlwdERlcGxveX0NCjwvaGVhZD4NCjxib2R5Pg0KDQo8IS0tIHN0YXJ0IGhlYWRlciAtLT4NCjxkaXYgaWQ9ImhlYWRlciI+DQogIDxoMT57c2l0ZW5hbWV9PC9oMT4NCjwvZGl2Pg0KPCEtLSBlbmQgaGVhZGVyIC0tPg0KDQo8IS0tIHN0YXJ0IG1lbnUgLS0+DQo8ZGl2IGlkPSJtZW51Ij4NCiAge21lbnV9DQo8L2Rpdj4NCjwhLS0gZW5kIG1lbnUgLS0+DQoNCjwhLS0gc3RhcnQgY29udGVudCAtLT4NCjxkaXYgaWQ9ImNvbnRlbnQiPg0KICA8aDE+e3RpdGxlfTwvaDE+DQogIHtjb250ZW50fQ0KPC9kaXY+DQo8IS0tIGVuZCBjb250ZW50IC0tPg0KPC9ib2R5Pg0KPC9odG1sPg0KJzskZXJyb3I9IiI7JHRlbXBsYXRlPSIiO2lmKGlzc2V0KCRfUE9TVFsidGVtcGxhdGUiXSkpJHRlbXBsYXRlPSRfUE9TVFsidGVtcGxhdGUiXTskY29udGVudD0kZGZsdF9jb250ZW50O2lmKGlzc2V0KCRfUE9TVFsiY29udGVudCJdKSkkY29udGVudD0kX1BPU1RbImNvbnRlbnQiXTskc3R5bGVzaGVldD0iIjtpZihpc3NldCgkX1BPU1RbInN0eWxlc2hlZXQiXSkpJHN0eWxlc2hlZXQ9JF9QT1NUWyJzdHlsZXNoZWV0Il07JGFjdGl2ZT0xO2lmKCFpc3NldCgkX1BPU1RbImFjdGl2ZSJdKSYmaXNzZXQoJF9QT1NUWyJhZGRzZWN0aW9uIl0pKSRhY3RpdmU9MDtpZihpc3NldCgkX1BPU1RbImFkZHRlbXBsYXRlIl0pKXskdmFsaWRpbmZvPXRydWU7aWYoJHRlbXBsYXRlPT0iIil7JGVycm9yLj0iPGxpPiIubGFuZygibm9maWVsZGdpdmVuIixhcnJheShsYW5nKCduYW1lJykpKS4iPC9saT4iOyR2YWxpZGluZm89ZmFsc2U7fWVsc2V7JHF1ZXJ5PSJTRUxFQ1QgdGVtcGxhdGVfaWQgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4idGVtcGxhdGVzIFdIRVJFIHRlbXBsYXRlX25hbWUgPSAiLiRkYi0+cXN0cigkdGVtcGxhdGUpOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSk7aWYoJHJlc3VsdCYmJHJlc3VsdC0+UmVjb3JkQ291bnQoKT4wKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCd0ZW1wbGF0ZWV4aXN0cycpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9fWlmKCRjb250ZW50PT0iIil7JGVycm9yLj0iPGxpPiIubGFuZygnbm9maWVsZGdpdmVuJyxhcnJheShsYW5nKCdjb250ZW50JykpKS4iPC9saT4iOyR2YWxpZGluZm89ZmFsc2U7fWlmKCR2YWxpZGluZm8peyRuZXd0ZW1wbGF0ZT1uZXcgVGVtcGxhdGUoKTskbmV3dGVtcGxhdGUtPm5hbWU9JHRlbXBsYXRlOyRuZXd0ZW1wbGF0ZS0+Y29udGVudD0kY29udGVudDskbmV3dGVtcGxhdGUtPnN0eWxlc2hlZXQ9JHN0eWxlc2hlZXQ7JG5ld3RlbXBsYXRlLT5hY3RpdmU9JGFjdGl2ZTskbmV3dGVtcGxhdGUtPmRlZmF1bHQ9MDtmb3JlYWNoKGNtc21zKCktPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKXtpZihjbXNtcygpLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXT09dHJ1ZSYmY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnYWN0aXZlJ109PXRydWUpe2Ntc21zKCktPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5BZGRUZW1wbGF0ZVByZSgkbmV3dGVtcGxhdGUpO319RXZlbnRzOjpTZW5kRXZlbnQoJ0NvcmUnLCdBZGRUZW1wbGF0ZVByZScsYXJyYXkoJ3RlbXBsYXRlJz0+JiRuZXd0ZW1wbGF0ZSkpOyRyZXN1bHQ9JG5ld3RlbXBsYXRlLT5zYXZlKCk7aWYoJHJlc3VsdCl7Zm9yZWFjaChjbXNtcygpLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSl7aWYoY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnaW5zdGFsbGVkJ109PXRydWUmJmNtc21zKCktPm1vZHVsZXNbJGtleV1bJ2FjdGl2ZSddPT10cnVlKXtjbXNtcygpLT5tb2R1bGVzWyRrZXldWydvYmplY3QnXS0+QWRkVGVtcGxhdGVQb3N0KCRuZXd0ZW1wbGF0ZSk7fX1FdmVudHM6OlNlbmRFdmVudCgnQ29yZScsJ0FkZFRlbXBsYXRlUG9zdCcsYXJyYXkoJ3RlbXBsYXRlJz0+JiRuZXd0ZW1wbGF0ZSkpO2F1ZGl0KCRuZXd0ZW1wbGF0ZS0+aWQsJHRlbXBsYXRlLCdBZGRlZCBUZW1wbGF0ZScpO3JlZGlyZWN0KCRmcm9tKTtyZXR1cm47fWVsc2V7JGVycm9yLj0iPGxpPiIubGFuZygnZXJyb3JpbnNlcnRpbmd0ZW1wbGF0ZScpLiIkcXVlcnk8L2xpPiI7fX19JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9wcmV2aWV3JywnJyk7ZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2xvYWRpbmcuZ2lmIiBhbHQ9IiIvPjwvZGl2Pic7aWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXtlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTt9JHBhcmFtc1snb3JpZ2FjdGlvbiddPSRwYXJhbXNbJ2FjdGlvbiddOyRjb250ZW50cz0iIjskc2NyaXB0c19uYW1lPScnOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9TY3JpcHRfU2V0dXAnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzYXZlX1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwnJywkcGFyYW1zKSk7aWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSYmJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddIT0nJyl7JGNvbnRlbnRzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7fSRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkdGVtcGxhdGUpOyRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndGVtcGxhdGUnLCR0ZW1wbGF0ZSw0MCkpOyRzbWFydHktPmFzc2lnbignU2NyaXB0SXNfaW5wdXQnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYSgxLCRpZCwkY29udGVudCwnY29udGVudCcsJycsJ1NJQScsJycsJycsJzgwJywnMjAnLCdFZGl0QXJlYScpKTskc21hcnR5LT5hc3NpZ24oJ3NjcmlwdHNfbmFtZScsJHNjcmlwdHNfbmFtZSk7JHNtYXJ0eS0+YXNzaWduKCdtb2RlJywkcGFyYW1zWydtb2RlJ10pOyRzbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLENNU19TRUNVUkVfUEFSQU1fTkFNRSwkQ01TX1VTRVJfS0VZKSk7JHNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCR0aGlzLT5MYW5nKCdzbWFydHlIb3cnKSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnLCR0aGlzLT5MYW5nKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsJHRoaXMtPkxhbmcoJ1NjcmlwdElzX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdub3Rlc19sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSgkaWQsJGNvbnRlbnRzLCd0ZW1wbGF0ZWNvbnRlbnQnKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYXBwbHknLCR0aGlzLT5MYW5nKCdhcHBseScpKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZlcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3JldmVydCcsJHRoaXMtPkxhbmcoJ3JldmVydCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ2ZpbHRlclByb3AnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWx0ZXJQcm9wJywnJykpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF90ZW1wbGF0ZS50cGwnKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_editcssassoc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZnVuY3Rpb24gVXBkYXRlU3R5bGVzaGVldFJlY29yZEZyb21QYXJhbXMoJGFjdCwmJHJlY29yZCwmJHBhcmFtcyl7aWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnXSkpeyRyZWNvcmQtPnByZWZlcnJlZF9zcz0kcGFyYW1zWydpbnB1dF9wcmVmZXJyZWRfc3R5bGVzaGVldCddO31pZihpc3NldCgkcGFyYW1zWydidXR0b25fYWRkcGVyc2lzdCddKSYmaXNzZXQoJHBhcmFtc1snaW5wdXRfYWRkcGVyc2lzdCddKSYmJHBhcmFtc1snaW5wdXRfYWRkcGVyc2lzdCddIT0iLTEiKXskc3NpZD0kcGFyYW1zWydpbnB1dF9hZGRwZXJzaXN0J107aWYoYXJyYXlfc2VhcmNoKCRzc2lkLCRyZWNvcmQtPnBlcnNpc3RlbnQpPT09RkFMU0UpeyRyZWNvcmQtPnBlcnNpc3RlbnRbXT0kc3NpZDt9dW5zZXQoJHBhcmFtc1snaW5wdXRfYWRkcGVyc2lzdCddKTt1bnNldCgkcGFyYW1zWydidXR0b25fYWRkcGVyc2lzdCddKTt9aWYoaXNzZXQoJHBhcmFtc1sncGVyc2lzdF9hY3Rpb24nXSkpeyRpZHg9YXJyYXlfc2VhcmNoKCRwYXJhbXNbJ3NoZWV0aWQnXSwkcmVjb3JkLT5wZXJzaXN0ZW50KTtpZigkaWR4IT09RkFMU0Upe3N3aXRjaCgkcGFyYW1zWydwZXJzaXN0X2FjdGlvbiddKXtjYXNlICdtb3ZlX3VwJzokaWR4Mj0kaWR4LTE7JHZhbD0kcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHhdOyRyZWNvcmQtPnBlcnNpc3RlbnRbJGlkeF09JHJlY29yZC0+cGVyc2lzdGVudFskaWR4Ml07JHJlY29yZC0+cGVyc2lzdGVudFskaWR4Ml09JHZhbDticmVhaztjYXNlICdtb3ZlX2Rvd24nOiRpZHgyPSRpZHgrMTskdmFsPSRyZWNvcmQtPnBlcnNpc3RlbnRbJGlkeF07JHJlY29yZC0+cGVyc2lzdGVudFskaWR4XT0kcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHgyXTskcmVjb3JkLT5wZXJzaXN0ZW50WyRpZHgyXT0kdmFsO2JyZWFrO2Nhc2UgJ3JlbW92ZSc6dW5zZXQoJHJlY29yZC0+cGVyc2lzdGVudFskaWR4XSk7YnJlYWs7fX11bnNldCgkcGFyYW1zWydzaGVldGlkJ10pO3Vuc2V0KCRwYXJhbXNbJ3BlcnNpc3RfYWN0aW9uJ10pO31pZihpc3NldCgkcGFyYW1zWydpbnB1dF9hbHRlcm5hdGVfc3R5bGVzaGVldCddKSl7JHJlY29yZC0+YWx0ZXJuYXRlPSRwYXJhbXNbJ2lucHV0X2FsdGVybmF0ZV9zdHlsZXNoZWV0J107fWVsc2V7JHJlY29yZC0+YWx0ZXJuYXRlPWFycmF5KCk7fWlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3ByZWZlcnJlZF9zdHlsZXNoZWV0J10pKXskcmVjb3JkLT5wcmVmZXJyZWRfc3M9JHBhcmFtc1snaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXQnXTt9fWlmKCEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkpe3JldHVybjt9aWYoIWlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlaWQnXSkpeyRwYXJhbXNbJ2Vycm9yJ109JHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpO30kdGVtcGxhdGVpZD0kcGFyYW1zWyd0ZW1wbGF0ZWlkJ107JGVycm9ycz1hcnJheSgpO2lmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSl7dW5zZXQoJF9TRVNTSU9OWydzdG9yZWRfb2JqZWN0J10pOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKTt9JHN0eWxlc2hlZXRpbmZvPW5ldyBTdHlsZXNoZWV0X1JlY29yZCgkdGVtcGxhdGVpZCk7aWYoaXNzZXQoJF9TRVNTSU9OWydzdG9yZWRfb2JqZWN0J10pKXskc3R5bGVzaGVldGluZm89U3R5bGVzaGVldF9SZWNvcmQ6OlJldHJpZXZlKCRfU0VTU0lPTlsnc3RvcmVkX29iamVjdCddKTt1bnNldCgkX1NFU1NJT05bJ3N0b3JlZF9vYmplY3QnXSk7fWVsc2V7JHN0eWxlc2hlZXRpbmZvLT5Mb2FkKCR0ZW1wbGF0ZWlkKTt9aWYoaXNzZXQoJHBhcmFtc1snYnV0dG9uX2FkZHBlcnNpc3QnXSl8fGlzc2V0KCRwYXJhbXNbJ3BlcnNpc3RfYWN0aW9uJ10pfHxpc3NldCgkcGFyYW1zWydhcHBseSddKXx8aXNzZXQoJHBhcmFtc1snc3VibWl0J10pKXtVcGRhdGVTdHlsZXNoZWV0UmVjb3JkRnJvbVBhcmFtcygxLCRzdHlsZXNoZWV0aW5mbywkcGFyYW1zKTt9aWYoaXNzZXQoJHBhcmFtc1snYXBwbHknXSl8fGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSl7dW5zZXQoJF9TRVNTSU9OWydzdG9yZWRfb2JqZWN0J10pOyRzdHlsZXNoZWV0aW5mby0+U2F2ZSgpO2lmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSl7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7fX1pZihjb3VudCgkZXJyb3JzKSl7JGVycm9yc3RyPWltcGxvZGUoJzxici8+JywkZXJyb3JzKTskc21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkZXJyb3JzdHIpO30kc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wZXJzaXN0ZW50JywkdGhpcy0+TGFuZygncGVyc2lzdGVudCcpKTskc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hZGQnLCR0aGlzLT5MYW5nKCdwcm9tcHRfYWRkJykpOyRzbWFydHktPmFzc2lnbigncHJvbXB0X3ByZWZlcnJlZCcsJHRoaXMtPkxhbmcoJ3ByZWZlcnJlZCcpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hbHRlcm5hdGUnLCR0aGlzLT5MYW5nKCdhbHRlcm5hdGUnKSk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcHJlZmVycmVkX3N0eWxlc2hlZXQnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWx0ZXJuYXRlX3N0eWxlc2hlZXQnLCR0aGlzLT5MYW5nKCdhbHRlcm5hdGUnKSk7JGFkbWludGhlbWU9Y21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ107JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOyR0aGV0ZW1wbGF0ZT0kdGVtcGxhdGVvcHMtPkxvYWRUZW1wbGF0ZUJ5SWQoJHRlbXBsYXRlaWQpOyRzdHlsZXNoZWV0b3BzPWNtc21zKCktPkdldFN0eWxlc2hlZXRPcGVyYXRpb25zKCk7JHN0eWxlc2hlZXRzPSRzdHlsZXNoZWV0b3BzLT5Mb2FkU3R5bGVzaGVldHMoKTskc3R5bGVzaGVldF9zZWxlY3RfbGlzdD1hcnJheSgpOyRzdHlsZXNoZWV0X3NlbGVjdF9saXN0WyR0aGlzLT5MYW5nKCdwcm9tcHRfc2VsZWN0b25lJyldPSctMSc7JHN0eWxlc2hlZXRfaWRfbWFwPWFycmF5KCk7Zm9yZWFjaCgkc3R5bGVzaGVldHMgYXMgJG9uZXN0eWxlKXskc3R5bGVzaGVldF9zZWxlY3RfbGlzdFskb25lc3R5bGUtPk5hbWUoKV09JG9uZXN0eWxlLT5JZCgpOyRzdHlsZXNoZWV0X2lkX21hcFskb25lc3R5bGUtPklkKCldPSRvbmVzdHlsZS0+TmFtZSgpO30kX1NFU1NJT05bJ3N0b3JlZF9vYmplY3QnXT0kc3R5bGVzaGVldGluZm8tPlN0b3JlKCk7JHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9lZGl0Y3NzYXNzb2MnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHBlcnNpc3RlbnRzPWFycmF5KCk7JGk9MDskcm93Y2xhc3M9J3JvdzEnOyRwYXJtcz0kcGFyYW1zO2ZvcmVhY2goJHN0eWxlc2hlZXRpbmZvLT5wZXJzaXN0ZW50IGFzICRzaGVldGlkKXtpZigkc2hlZXRpZCE9JycpeyRvYmo9bmV3IFN0ZENsYXNzKCk7JG9iai0+SWQ9JHNoZWV0aWQ7JG9iai0+bmFtZT0kc3R5bGVzaGVldF9pZF9tYXBbJHNoZWV0aWRdOyRvYmotPmVkaXRsaW5rPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdGNzcycsJHJldHVybmlkLCRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdjc3NfaWQnPT4kc2hlZXRpZCkpO2lmKGNvdW50KCRwZXJzaXN0ZW50cyk+MCl7JHBhcm1zWydwZXJzaXN0X2FjdGlvbiddPSdtb3ZlX3VwJzskcGFybXNbJ3NoZWV0aWQnXT0kc2hlZXRpZDskb2JqLT5tb3ZldXBsaW5rPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnYWRtaW5fZWRpdGNzc2Fzc29jJywkcmV0dXJuaWQsJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmJywkdGhpcy0+TGFuZygnbW92ZV91cCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksJHBhcm1zKTt9aWYoJGk8KGNvdW50KCRzdHlsZXNoZWV0aW5mby0+cGVyc2lzdGVudCktMSkpeyRwYXJtc1sncGVyc2lzdF9hY3Rpb24nXT0nbW92ZV9kb3duJzskcGFybXNbJ3NoZWV0aWQnXT0kc2hlZXRpZDskb2JqLT5tb3ZlZG93bmxpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdhZG1pbl9lZGl0Y3NzYXNzb2MnLCRyZXR1cm5pZCwkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZicsJHRoaXMtPkxhbmcoJ21vdmVfZG93bicpLCcnLCcnLCdzeXN0ZW1pY29uJyksJHBhcm1zKTt9JHBhcm1zWydwZXJzaXN0X2FjdGlvbiddPSdyZW1vdmUnOyRwYXJtc1snc2hlZXRpZCddPSRzaGVldGlkOyRvYmotPnJlbW92ZWxpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdhZG1pbl9lZGl0Y3NzYXNzb2MnLCRyZXR1cm5pZCwkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJHRoaXMtPkxhbmcoJ3JlbW92ZV9mcm9tX2xpc3QnKSwnJywnJywnc3lzdGVtaWNvbicpLCRwYXJtcyk7JG9iai0+cm93Y2xhc3M9JHJvd2NsYXNzOyRwZXJzaXN0ZW50c1tdPSRvYmo7JHJvd2NsYXNzPSgkcm93Y2xhc3M9PSdyb3cxJyk/J3JvdzInOidyb3cxJzt9JGkrKzt9JHNtYXJ0eS0+YXNzaWduKCdwZXJzaXN0ZW50cycsJHBlcnNpc3RlbnRzKTskc21hcnR5LT5hc3NpZ24oJ2xhYmVsX3RlbXBsYXRlJywkdGhldGVtcGxhdGUtPk5hbWUoKSk7JHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hZGRwZXJzaXN0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2FkZHBlcnNpc3QnLCRzdHlsZXNoZWV0X3NlbGVjdF9saXN0KSk7JHNtYXJ0eS0+YXNzaWduKCdidXR0b25fYWRkcGVyc2lzdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYnV0dG9uX2FkZHBlcnNpc3QnLCR0aGlzLT5MYW5nKCdwcm9tcHRfYWRkJykpKTskc21hcnR5LT5hc3NpZ24oJ2lucHV0X3ByZWZlcnJlZF9zdHlsZXNoZWV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3ByZWZlcnJlZF9zdHlsZXNoZWV0Jywkc3R5bGVzaGVldF9zZWxlY3RfbGlzdCwtMSwkc3R5bGVzaGVldGluZm8tPnByZWZlcnJlZF9zcykpOyRzbWFydHktPmFzc2lnbignaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXQnLCR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdpbnB1dF9hbHRlcm5hdGVfc3R5bGVzaGVldFtdJywkc3R5bGVzaGVldF9zZWxlY3RfbGlzdCwkc3R5bGVzaGVldGluZm8tPmFsdGVybmF0ZSksYXJyYXkoKSw1KTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTskc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdhcHBseScsJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTskc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJywkdGhpcy0+TGFuZygnY2FuY2VsJykpKTtlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRjc3Nhc3NvYy50cGwnKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_savetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXSkpeyR0aGlzLT5TZXRUZW1wbGF0ZSgnZm9ybV90ZW1wbGF0ZScsJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXSk7fSRwYXJhbXNbJ2FjdGl2ZV90YWInXT0ndGVtcGxhdGUnOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoaXNzZXQoJHBhcmFtc1snRGVzY3JpcHRpb24nXSkpeyRkaXM9JHRoaXMtPkxhbmcoJHBhcmFtc1snRGVzY3JpcHRpb24nXSk7ZWNobyAiPHNwYW4gaWQ9XCJESVNDUlBcIj4iLiRkaXMuIjwvc3Bhbj4iO2V4aXQ7fWlmKGlzc2V0KCRwYXJhbXNbJ2Z1bmN0aW9uJ10pKXskY2xhc3M9aXNzZXQoJHBhcmFtc1snY2xhc3MnXSk/JHBhcmFtc1snY2xhc3NzJ106J3NjcmlwdGRlcGxveV91dGlscyc7JGZ1bmN0aW9uSVM9JHBhcmFtc1snZnVuY3Rpb24nXTskcGFyYW1hPWlzc2V0KCRwYXJhbXNbJ3BhcmFtYSddKT9leHBsb2RlKCcsJywkcGFyYW1zWydwYXJhbWEnXSk6Jyc7ZWNobyBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgkY2xhc3MsJGZ1bmN0aW9uSVMpLCRwYXJhbWEpO2V4aXQ7fSA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.copy_Script_Setup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGRiPSR0aGlzLT5HZXREYigpOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRNaW5pZnk9JHNjcmlwdE5hbWU9JHBhdGhPcHRpb249JHNjcmlwdFR5cGU9JFNjcmlwdElzPSRzY3JpcHRTaXplPSRub3Rlcz0kTWVkaWFUeXBlPSRTY3JpcHRJRD0kcmV2TWVzcz0nJzskc0lEPSRwYXJhbXNbJ3NjcmlwdF9pZCddOyRob3RMaW5rQ2hlY2s9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2hvdExpbmtDaGVjaycsMSk7JHJldmlzaW9uPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXZpc2lvbicpO2V4dHJhY3Qoc2NyaXB0ZGVwbG95X3V0aWxzOjpnZXRTY3JpcHRGdWxsKCRzSUQpKTskVXNlcmlkPXNpdGVfdXRpbHM6OmdldFVzZXJJbmZvKCk7JHVJRD0kVXNlcmlkWydVc2VyaWQnXTskTmV3U2NyaXB0TmFtZT0kU2NyaXB0U2V0LictQ29weSc7JG5vdz10cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpOyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFROQU1FUy4iIFNFVCBTY3JpcHRTZXQ9PyI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCROZXdTY3JpcHROYW1lKSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRMYXN0SUQ9JGRiLT5JbnNlcnRfSUQoKTskcXVlcnk9IklOU0VSVCBJTlRPICIuU0RfU0NSSVBUT1BUSU9OUy4iICIuIihJRCx1c2VySUQscGF0aE9wdGlvbixzY3JpcHRUeXBlLHNjcmlwdFNpemUsbm90ZXMsY3JlYXRlZCxsYXN0X2VkaXQpICIuIlZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRMYXN0SUQsJHVJRCwkcGF0aE9wdGlvbiwkc2NyaXB0VHlwZSwkc2NyaXB0U2l6ZSwkbm90ZXMsJG5vdywkbm93KSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFRQQVJUUy4iICIuIihJRCwgU2NyaXB0SXMpICIuIlZBTFVFUyAoPyw/KSI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRMYXN0SUQsJFNjcmlwdElzKSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRwYXJhbXNbJ21lc3NhZ2UnXT0kdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7aWYoJHJldmlzaW9uKXtzY3JpcHRkZXBsb3lfdXRpbHM6OlNldFNjcmlwdEJhY2t1cCgkTGFzdElELCRTY3JpcHRJcywnMScpOyRyZXZNZXNzPSd8IHJldjoxJzt9JE1pbmlmeT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkc0lELictTWluaWZ5LVNEJywkTWluaWZ5KTskdGhpcy0+U2V0UHJlZmVyZW5jZSgkTGFzdElELictTWluaWZ5LVNEJywkTWluaWZ5KTskcGF0aE9wdGlvbj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkc0lELictUGF0aE9wLVNEJywkcGF0aE9wdGlvbik7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLVBhdGhPcC1TRCcsJHBhdGhPcHRpb24pOyRyb290VVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRzSUQuJy1yb290VVJMLVNEJywkcm9vdFVSTCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLXJvb3RVUkwtU0QnLCRyb290VVJMKTskdHVybk9mZlByZWxvYWQ9JHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLXR1cm5PZmZQcmVsb2FkLVNEJywkdHVybk9mZlByZWxvYWQpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy10dXJuT2ZmUHJlbG9hZC1TRCcsJHR1cm5PZmZQcmVsb2FkKTtpZigkc2NyaXB0VHlwZT09J0NTUycpeyRNZWRpYVR5cGU9JHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLU1lZGlhVHlwZS1TRCcsJE1lZGlhVHlwZSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1lZGlhVHlwZS1TRCcsJE1lZGlhVHlwZSk7fSRsb2dnaW4tPl9kb0F1ZGl0KCdhZGQnLCdvaycsImNvcGllZCAkc2NyaXB0TmFtZSB0byAkTmV3U2NyaXB0TmFtZSAtIHNjcmlwdCBpZDokc0lEIHRvIGlkOiRMYXN0SUQgJHJldk1lc3MiLCcnLCdTY3JpcHREZXBsb3knKTtzY3JpcHRkZXBsb3lfdXRpbHM6OmxvY2tfc2NyaXB0KCRMYXN0SUQsJHVJRCk7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRMYXN0SUQpO3NjcmlwdGRlcGxveV91dGlsczo6dW5sb2NrX3NjcmlwdCgkc0lEKTt9fX0kdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOyA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.CSSreport.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaW5jbHVkZSgiQ1NTVHJlZS5pbmMucGhwIik7aWYoRkFMU0U9PWVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpeyR0YWI9JHBhcmFtc1snYWN0aXZlX3RhYiddO31lbHNleyR0YWI9Jyc7fSR0YWJJcz0wO2lmKCR0YWI9PSJzY3JpcHRfdGVtcGxhdGUiKXskdGFiSXM9MDt9aWYoJHRhYj09InRlbXBsYXRlX21hbmciKXskdGFiSXM9MTt9aWYoJHRhYj09Imh0bWxzZXR0aW5ncyIpeyR0YWJJcz0yO31pZigkdGFiPT0iVmFsc2V0dGluZ3MiKXskdGFiSXM9Mzt9aWYoJHRhYj09Im9wdGlvbnMiKXskdGFiSXM9NDt9JHBheWxvYWQ9JzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoInVsLnRhYmVycyIpLnRhYnMoImRpdi5UYWJwYW5lcyA+IGRpdi5wYW5lIiwge2VmZmVjdDogImZhZGUiLCBmYWRlT3V0U3BlZWQ6IDIwMCwgaW5pdGlhbEluZGV4OicuJHRhYklzLicsIG9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQsIHRhYkluZGV4KSB7aWYgKCQoIi5wYWdlbWVzc2FnZSIpLmxlbmd0aCA+IDApeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLmZhZGVPdXQoMzUwMCxmdW5jdGlvbigpeyQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpLnJlbW92ZSgpO30pO319fSk7JCgidWwudGFiZXJzMiIpLnRhYnMoImRpdi5UYWJwYW5lczIgPiBkaXYucGFuZSIsIHtlZmZlY3Q6ICJmYWRlIiwgZmFkZU91dFNwZWVkOiAyMDAsIGluaXRpYWxJbmRleDonLiR0YWJJcy4nLCBvbkNsaWNrOmZ1bmN0aW9uKGV2ZW50LCB0YWJJbmRleCkge2lmICgkKCIucGFnZW1lc3NhZ2UiKS5sZW5ndGggPiAwKXskKCIucGFnZW1lc3NhZ2UiKS5jbG9zZXN0KCIucGFnZW1jb250YWluZXIiKS5mYWRlT3V0KDM1MDAsZnVuY3Rpb24oKXskKCIucGFnZW1lc3NhZ2UiKS5jbG9zZXN0KCIucGFnZW1jb250YWluZXIiKS5yZW1vdmUoKTt9KTt9fX0pOyB9KTs8L3NjcmlwdD4nOyRudWxsPW51bGw7JHRyZWU9bmV3IENTU1RyZWUoJG51bGwsIiIpOyRwYXlsb2FkLj0nPHVsIGNsYXNzPSJ0YWJlcnMiPg0KCTxsaT48YSBocmVmPSIjRXh0cmFjdGVkIj5FeHRyYWN0ZWQgVXJsczwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjUmVuZGVyZWQiPlJlbmRlcmVkIENTUzwvYT48L2xpPg0KCTxsaT48YSBocmVmPSIjU3RydWN0dXJlIj5TdHJ1Y3R1cmU8L2E+PC9saT4NCgk8bGk+PGEgaHJlZj0iI2NvbnRlbnQiPkZpbGUgY29udGVudDwvYT48L2xpPg0KPC91bD4nOyRjc3M9ZmlsZV9nZXRfY29udGVudHMoJGNzc2ZpbGUpOyR0cmVlPSR0cmVlLT5wYXJzZUZpbGUoJGNzc2ZpbGUpOyRwYXlsb2FkLj0nPGRpdiBjbGFzcz0iVGFicGFuZXMiIGlkPSJQUEJNIj4NCgk8ZGl2IGNsYXNzPSJwYW5lIiA+JzskcGF5bG9hZC49JzxoMj5FeHRyYWN0ZWQgdXJsczwvaDI+JzskY3NzX3VybHM9c2NyaXB0ZGVwbG95X3V0aWxzOjpleHRyYWN0X2Nzc191cmxzKCRjc3MpO2ZvcmVhY2goJGNzc191cmxzWydwcm9wZXJ0eSddYXMgJGtleT0+JGNzc191cmwpeyRhZGpLZXk9JGtleSsxOyRwYXlsb2FkLj0kYWRqS2V5LicgLSAnLiRjc3NfdXJsLic8YnIvPic7fSRwYXlsb2FkLj0nPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYW5lIj4nOyRwYXlsb2FkLj0nPGgyPlJlbmRlcmVkIENTUzwvaDI+JzskcGF5bG9hZC49JzxwcmU+JzskcGF5bG9hZC49JHRyZWUtPnJlbmRlckNTU0FsbCgpOyRwYXlsb2FkLj0nPC9wcmU+JzskcGF5bG9hZC49JzwvZGl2Pg0KPGRpdiBjbGFzcz0icGFuZSI+JzskcGF5bG9hZC49JzxoMj5TdHJ1Y3R1cmU8L2gyPic7JHBheWxvYWQuPSc8cHJlPic7JHBheWxvYWQuPSR0cmVlLT5lY2hvU3RydWN0dXJlKCk7JHBheWxvYWQuPSc8L3ByZT4nOyRwYXlsb2FkLj0nPC9kaXY+DQoJCTxkaXYgY2xhc3M9InBhbmUiPic7JHBheWxvYWQuPSc8aDI+RmlsZSBjb250ZW50PC9oMj4nOyRwYXlsb2FkLj0nPGRpdiAgc3R5bGU9IndpZHRoOjYwMHB4OyI+JzskcGF5bG9hZC49ZmlsZV9nZXRfY29udGVudHMoJGNzc2ZpbGUpOyRwYXlsb2FkLj0nPC9kaXY+JzskcGF5bG9hZC49JzwvZGl2Pg0KPC9kaXY+Jzskc21hcnR5LT5hc3NpZ24oJ3JlcG9ydCcsJHBheWxvYWQpOyA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZihpc3NldCgkcGFyYW1zWydzY3JpcHRJRCddKSl7JElEPSRwYXJhbXNbJ3NjcmlwdElEJ107JFNEdHlwZT0ic2NyaXB0SUQiO31lbHNlaWYoaXNzZXQoJHBhcmFtc1snZ3JvdXBJRCddKSl7JElEPSRwYXJhbXNbJ2dyb3VwSUQnXTskU0R0eXBlPSJncm91cElEIjt9JFN0eXBlPWlzc2V0KCRwYXJhbXNbJ1N0eXBlJ10pPyRwYXJhbXNbJ1N0eXBlJ106Jyc7JHBhdGg9aXNzZXQoJHBhcmFtc1sncGF0aCddKT8kcGFyYW1zWydwYXRoJ106Jyc7aWYoJHBhdGghPScnKXskSUQ9Jyc7JHJldHVyblBhdGg9Jyc7JHBhdGhzPWV4cGxvZGUoJywnLCRwYXRoKTtpZihjb3VudCgkcGF0aHMpPjEpeyRwYXRoPSRyZXR1cm5QYXRoPWFycmF5KCk7Zm9yZWFjaCgkcGF0aHMgYXMgJGtleT0+JHBhdGhJcyl7aWYoKHN1YnN0cigkcGF0aElzLDAsNCkpPT0iaHR0cCIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskcGF0aElzPXN1YnN0cl9yZXBsYWNlKCRwYXRoSXMsJycsMCwkTCk7fSRwYXRoSXM9cnRyaW0oJHBhdGhJcywnLycpOyRwYXRoSXM9JGNvbmZpZ1sncm9vdF9wYXRoJ10uJHBhdGhJczskU3R5cGU9JFN0eXBlIT0nJz8kU3R5cGU6c3RydG9sb3dlcihzdWJzdHIoJHBhdGhJcywoc3RycnBvcygkcGF0aElzLCIuIikrMSkpKTskZmlsZWJhc2VuYW1lPWJhc2VuYW1lKCRwYXRoSXMsJFN0eXBlKTskSUQuPUBmaWxlbXRpbWUoJHBhdGhJcyk7JHJldHVyblBhdGhbXT0kcGF0aElzO319ZWxzZXtpZigoc3Vic3RyKCRwYXRoLDAsNCkpPT0iaHR0cCIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskcGF0aD1zdWJzdHJfcmVwbGFjZSgkcGF0aCwnJywwLCRMKTt9JGtlZXBuYW1lPWlzc2V0KCRwYXJhbXNbJ2tlZXBuYW1lJ10pPyRwYXJhbXNbJ2tlZXBuYW1lJ106ZmFsc2U7JHBhdGg9cnRyaW0oJHBhdGgsJy8nKTskcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4kcGF0aDskU3R5cGU9c3RydG9sb3dlcihzdWJzdHIoJHBhdGgsKHN0cnJwb3MoJHBhdGgsIi4iKSsxKSkpOyRmaWxlYmFzZW5hbWU9YmFzZW5hbWUoJHBhdGgsJFN0eXBlKTskSUQ9JGtlZXBuYW1lPyRmaWxlYmFzZW5hbWU6QGZpbGVtdGltZSgkcGF0aCk7JHJldHVyblBhdGguPSRwYXRoO30kcGF0aD0kcmV0dXJuUGF0aDskU0R0eXBlPSJJbmxpbmUiO30kcHJlZnM9JHRoaXMtPkdldFByZWZlcmVuY2UoJElELictc2NyaXB0UHJlZi1TRCcpOyRwcmVmcz1pc3NldCgkcHJlZnMpP3Vuc2VyaWFsaXplKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRJRC4nLXNjcmlwdFByZWYtU0QnKSk6YXJyYXkoKTskZmlsZW5hbWU9JGNvbmZpZ1sncm9vdF9wYXRoJ10uIi91cGxvYWRzL2xpYi9TRC10ZW1wLyRTRHR5cGUvJElELiIuc3RydG9sb3dlcigkU3R5cGUpO2lmKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpe2lmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJyk9PXRydWUpe3VubGluaygkZmlsZW5hbWUpO31lbHNlaWYoQGZpbGVtdGltZSgkZmlsZW5hbWUpPEBmaWxlbXRpbWUoJHBhdGgpKXt1bmxpbmsoJGZpbGVuYW1lKTt9fSRkeW5hbWljPWlzc2V0KCRwYXJhbXNbJ2R5bmFtaWMnXSk/JHBhcmFtc1snZHluYW1pYyddOmZhbHNlOyR1bm1lcmdlPWlzc2V0KCRwYXJhbXNbJ3VubWVyZ2UnXSk/JHBhcmFtc1sndW5tZXJnZSddOmlzc2V0KCRwcmVmc1sndW5tZXJnZSddKT8kcHJlZnNbJ3VubWVyZ2UnXTpmYWxzZTtpZighZmlsZV9leGlzdHMoJGZpbGVuYW1lKXx8JGR5bmFtaWN8fCR1bm1lcmdlKXskU21hcnR5T249aXNzZXQoJHBhcmFtc1snc21hcnR5J10pPyRwYXJhbXNbJ3NtYXJ0eSddOnRydWU7JE1pbmlmeT1pc3NldCgkcGFyYW1zWydtaW5pZnknXSk/JHBhcmFtc1snbWluaWZ5J106dHJ1ZTskUHJvY2Nlc3M9bmV3IHNjcmlwdFByb2Nlc3NpbmcoKTskZGF0YT0kUHJvY2Nlc3MtPlByb2NjZXNzU0QoJElELCRTRHR5cGUsJFNtYXJ0eU9uLCRNaW5pZnksJFN0eXBlLGZhbHNlLCcnLCRwYXRoLCR1bm1lcmdlLCRwYXJhbXMpOyRldmVudD0kZGF0YVswXTtpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sncm9vdF9wYXRoJ10uIi91cGxvYWRzL2xpYi9TRC10ZW1wLyIuJFNEdHlwZSkpe21rZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC8iLiRTRHR5cGUsMDc3Nyx0cnVlKTt9JG91ckZpbGVOYW1lPSRmaWxlbmFtZTskb3VyRmlsZUhhbmRsZT1mb3Blbigkb3VyRmlsZU5hbWUsJ3cnKW9yIGRpZSgiY2FuJ3Qgb3BlbiBmaWxlIik7ZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTskbGVuPXN0cmxlbigkZXZlbnQpOyRjaGs9ZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRldmVudCk7aWYoJGxlbiE9JGNoaylkaWUoIkxFTkdUSCBNSVNNQVRDSCIpO2lmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2NrZmlsZXMnKSl7Y2htb2QoJGZpbGVuYW1lLDA2NDQpO319JG5vT3V0UHV0PWlzc2V0KCRwYXJhbXNbJ25vT3V0UHV0J10pPyRwYXJhbXNbJ25vT3V0UHV0J106ZmFsc2U7aWYoJHVubWVyZ2UpeyRub091dFB1dD10cnVlO31pZigkcGF0aCE9JycpeyRTdHlwZT1zdHJ0b3VwcGVyKCRTdHlwZSk7fWlmKCRub091dFB1dD09ZmFsc2UpeyRjYWNoZUJ1c3Rlcj1pc3NldCgkcGFyYW1zWydjYWNoZV9idXN0ZXInXSk/JHBhcmFtc1snY2FjaGVfYnVzdGVyJ106JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlQnVzdGVyJyx0cnVlKTskZnNpemU9aXNzZXQoJHBhcmFtc1snZnNpemUnXSk/JHBhcmFtc1snZnNpemUnXTpmYWxzZTskR3Jvb3RVUkw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jvb3RVUkwnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRUQUdyb290VXJsPWlzc2V0KCRwYXJhbXNbJ3Jvb3QnXSk/JHBhcmFtc1sncm9vdCddOicnOyRyb290VXJsPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRJRC4nLXJvb3RVUkwtU0QnLCcnKTtpZigkVEFHcm9vdFVybCE9JycpeyRyb290VXJsPSRUQUdyb290VXJsO31lbHNlaWYoJHJvb3RVcmwhPScnKXtpZihzdWJzdHIoJHJvb3RVcmwsLTEpPT0iLyIpeyRyb290VXJsPXJ0cmltKCRyb290VXJsLCcvJyk7fSRyb290VXJsPSRyb290VXJsO31lbHNlaWYoJEdyb290VVJMIT0nJyl7aWYoc3Vic3RyKCRHcm9vdFVSTCwtMSk9PSIvIil7JEdyb290VVJMPXJ0cmltKCRHcm9vdFVSTCwnLycpO30kcm9vdFVybD0kR3Jvb3RVUkw7fWVsc2V7JHJvb3RVcmw9JGNvbmZpZ1sncm9vdF91cmwnXTt9aWYoc3Vic3RyKCRyb290VXJsLC0xKT09Ii8iKXskcm9vdFVybD1ydHJpbSgkcm9vdFVybCwnLycpO30kVVJMPWlzc2V0KCRwYXJhbXNbJ3VybCddKT8kcGFyYW1zWyd1cmwnXTpmYWxzZTskZmlsZUxJTks9JHJvb3RVcmwuIi91cGxvYWRzL2xpYi9TRC10ZW1wLyIuJFNEdHlwZS4iLyIuJElELiIuIi5zdHJ0b2xvd2VyKCRTdHlwZSk7aWYoJGNhY2hlQnVzdGVyPT10cnVlKXskZmlsZUxJTks9JGZpbGVMSU5LLiI/Ii5maWxlbXRpbWUoJGZpbGVuYW1lKTt9JFRhZz0nJzskZHVtcD1pc3NldCgkcGFyYW1zWydkdW1wJ10pPyRwYXJhbXNbJ2R1bXAnXTpmYWxzZTtpZigkZHVtcCE9ZmFsc2UpeyRzZF9oZWFkZXJzPWlzc2V0KCRwYXJhbXNbJ3NkX2hlYWRlcnMnXSk/JHBhcmFtc1snc2RfaGVhZGVycyddOmZhbHNlO2VjaG8gJHNkX2hlYWRlcnM7JHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCdoZXJlJyk7aWYoJHNkX2hlYWRlcnMhPWZhbHNlKXskdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsJ2hlcmUnKTskSGVhZGVycz1uZXcgY21zbXNfaGVhZGVycygpOyRoZWFkZXItPmNsZWFySGVhZGVycygpOyRoZWFkZXItPnN0YXR1cygzMDQpO2lmKCRTdHlwZT09J0NTUycpeyR0eXBlPSd0ZXh0L2Nzcyc7fWVsc2VpZigkU3R5cGU9PSdKUycpeyR0eXBlPSdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Jzt9JGhlYWRlci0+Y29udGVudFR5cGUoJHR5cGUsJycpOyRoZWFkZXItPmxhc3RNb2RpZmllZChkYXRlKCdyJykpOyRoZWFkZXItPnNlbmRIZWFkZXJzKCk7JGhlYWRlci0+Y2xlYXJIZWFkZXJzKCk7ZWNobyBmaWxlX2dldF9jb250ZW50cygkZmlsZUxJTkspO2V4aXQoKTt9ZWNobyBmaWxlX2dldF9jb250ZW50cygkZmlsZUxJTkspO31lbHNle2lmKCRTdHlwZT09J0pTJyl7JGRlZmVyPWlzc2V0KCRwYXJhbXNbJ2RlZmVyJ10pPyRwYXJhbXNbJ2RlZmVyJ106ZmFsc2U7aWYoISRkZWZlcil7JFRhZz0nPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kZmlsZUxJTksuJyI+PC9zY3JpcHQ+Jzt9ZWxzZXskVGFnPXNjcmlwdGRlcGxveV91dGlsczo6ZGVmZXJKUygkcGFyYW1zWydwYXRoJ10pO319ZWxzZWlmKCRTdHlwZT09J0NTUycpeyRpbXBvcnQ9aXNzZXQoJHBhcmFtc1snaW1wb3J0J10pPyRwYXJhbXNbJ2ltcG9ydCddOmZhbHNlOyRNZWRpYVR5cGU9aXNzZXQoJHBhcmFtc1snbWVkaWFfdHlwZSddKT8kcGFyYW1zWydtZWRpYV90eXBlJ106aXNzZXQoJHByZWZzWydNZWRpYVR5cGUnXSk/JHByZWZzWydNZWRpYVR5cGUnXTppc3NldCgkcHJlZnNbJ3VzZXJtZWRpdW0nXSk/JHByZWZzWyd1c2VybWVkaXVtJ106J0FsbCc7aWYoISRpbXBvcnQpeyRUYWc9JzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9IicuJE1lZGlhVHlwZS4nIiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJy4kZmlsZUxJTksuJyIgLz4nO31lbHNlaWYoJGltcG9ydD09J2luX3NjcmlwdCcpeyRUYWc9J0BpbXBvcnQgIicuJGZpbGVMSU5LLiciOyc7fWVsc2V7JFRhZz0nPHN0eWxlIHR5cGU9InRleHQvY3NzIj5AaW1wb3J0IHVybCgnLiRmaWxlTElOSy4nKSAnLiRNZWRpYVR5cGUuJzs8L3N0eWxlPic7fX19aWYoJFVSTD09ZmFsc2Upe2VjaG8gJFRhZzt9ZWxzZXtpZigkZnNpemU9PXRydWUpeyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7ZWNobyAkZmgtPlNpemVJdFVwKGZpbGVzaXplKCRmaWxlbmFtZSkpO31lbHNle2VjaG8gJGZpbGVMSU5LO319fW1lbW9yeV9nZXRfdXNhZ2UodHJ1ZSk7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRnQ21zPWNtc21zKCk7JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskZGlyPWNtc21zKCktPmNvbmZpZ1sncm9vdF91cmwnXTskZGlycGF0aD1jbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddOyRBZG1pbmRpcj0kZGlyLicvJy5jbXNtcygpLT5jb25maWdbJ2FkbWluX2RpciddOyR0YWJzX2FycmF5PWFycmF5KCk7JHRhYnNfYXJyYXlbXT0ob2JqZWN0KSBhcnJheSgndGFiX2lkJz0+J3NjcmlwdF90ZW1wbGF0ZScsJ3RhYl9sYW5nJz0+J1NjcmlwdF9saXN0JywndGFiX3Blcm1pc3Npb24nPT4kdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpLCd0YWJfaHRtbCc9PmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FkbWluL2FjdGlvbi5zY3JpcHRfbGlzdGluZ3MucGhwJyksJ3RhYl9wYW5lbF9jbGFzc2VzJz0+J2Fjb3IyJyk7JHRhYnNfYXJyYXlbXT0ob2JqZWN0KSBhcnJheSgndGFiX2lkJz0+J3RlbXBsYXRlX21hbmcnLCd0YWJfbGFuZyc9Pid0ZW1wbGF0ZV9tYW5nJywndGFiX3Blcm1pc3Npb24nPT4kdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpLCd0YWJfaHRtbCc9PmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FkbWluL2FjdGlvbi50YW1wbGF0ZV9saXN0aW5ncy5waHAnKSwndGFiX3BhbmVsX2NsYXNzZXMnPT4nYWNvcjInKTskdGFic19hcnJheVtdPShvYmplY3QpIGFycmF5KCd0YWJfaWQnPT4nVmFsc2V0dGluZ3MnLCd0YWJfbGFuZyc9PidWYWxzZXR0aW5ncycsJ3RhYl9wZXJtaXNzaW9uJz0+JHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSwndGFiX2h0bWwnPT5pbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9hZG1pbi9mdW5jdGlvbi5hZG1pbl9WYWx0YWIucGhwJykpOyR0YWJzX2FycmF5W109KG9iamVjdCkgYXJyYXkoJ3RhYl9pZCc9PidpbXBvcnRFeHBvcnQnLCd0YWJfbGFuZyc9PidpbXBvcnRFeHBvcnQnLCd0YWJfcGVybWlzc2lvbic9PiR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyksJ3RhYl9odG1sJz0+aW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvYWRtaW4vZnVuY3Rpb24uYWRtaW5faW1wb3J0RXhwb3J0X3RhYi5waHAnKSk7JHRhYnNfYXJyYXlbXT0ob2JqZWN0KWFycmF5KCd0YWJfaWQnPT4naHRtbHNldHRpbmdzJywndGFiX2xhbmcnPT4nRGVwbG95bWVudHNldHRpbmdzJywndGFiX3Blcm1pc3Npb24nPT4kdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpLCd0YWJfaHRtbCc9PmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FkbWluL2Z1bmN0aW9uLmFkbWluX2RlcGxveW1lbnRfdGFiLnBocCcpKTskdGFic19hcnJheVtdPShvYmplY3QpIGFycmF5KCd0YWJfaWQnPT4nb3B0aW9ucycsJ3RhYl9sYW5nJz0+J21vZHVsZV9vcHRpb25zJywndGFiX3Blcm1pc3Npb24nPT4kdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpLCd0YWJfaHRtbCc9PmluY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FkbWluL2Z1bmN0aW9uLmFkbWluX21vZHVsZV9vcHRpb25zdGFiLnBocCcpKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOyRzbWFydHktPmFzc2lnbignYWN0aXZlX3RhYicsaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKT8kcGFyYW1zWydhY3RpdmVfdGFiJ106JycpOyRzbWFydHktPmFzc2lnbigndGFic19hcnJheScsJHRhYnNfYXJyYXkpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW4vYWRtaW5fYXJlYS50cGwnKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultCSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGRiPSR0aGlzLT5HZXREYigpOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRNaW5pZnk9JHNjcmlwdE5hbWU9JHBhdGhPcHRpb249JHNjcmlwdFR5cGU9JFNjcmlwdElzPSRzY3JpcHRTaXplPSRub3Rlcz0kTWVkaWFUeXBlPSRTY3JpcHRJRD0kcmV2TWVzcz0nJzskaG90TGlua0NoZWNrPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdob3RMaW5rQ2hlY2snLDEpOyRyZXZpc2lvbj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb24nKTskcXVlcnk9IlNFTEVDVCBjc3NfbmFtZSxjc3NfdGV4dCxtZWRpYV90eXBlICBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjc3MiOyRNYWlucmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnkpO3doaWxlKCRNYWlucmVzdWx0JiYhJE1haW5yZXN1bHQtPkVPRil7JFNjcmlwdE5hbWU9JE1haW5yZXN1bHQtPmZpZWxkc1snY3NzX25hbWUnXTskU2NyaXB0SXM9JE1haW5yZXN1bHQtPmZpZWxkc1snY3NzX3RleHQnXTskTWVkaWFUeXBlPSRNYWlucmVzdWx0LT5maWVsZHNbJ21lZGlhX3R5cGUnXTskcGF0aE9wdGlvbj0nJzskc2NyaXB0VHlwZT0nQ1NTJzskc2NyaXB0U2l6ZT1zdHJsZW4odXRmOF9kZWNvZGUoJFNjcmlwdElzKSk7JFVzZXJpZD1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygpOyR1SUQ9JFVzZXJpZFsnVXNlcmlkJ107JG5vdz10cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpOyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFROQU1FUy4iIFNFVCBTY3JpcHRTZXQ9PyI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRTY3JpcHROYW1lKSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRMYXN0SUQ9JGRiLT5JbnNlcnRfSUQoKTtpZigkcmV2aXNpb24pe3NjcmlwdGRlcGxveV91dGlsczo6U2V0U2NyaXB0QmFja3VwKCRMYXN0SUQsJFNjcmlwdElzLCcxJyk7JHJldk1lc3M9J3wgcmV2OjEnO30kbm90ZXM9ImNvcGllZCAkU2NyaXB0TmFtZSB0byBTY3JpcHREZXBsb3kgLSBzY3JpcHQgaWQ6JExhc3RJRCAkcmV2TWVzcyI7JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVE9QVElPTlMuIiAiLiIoSUQsdXNlcklELHBhdGhPcHRpb24sc2NyaXB0VHlwZSxzY3JpcHRTaXplLG5vdGVzLGNyZWF0ZWQsbGFzdF9lZGl0KSAiLiJWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPykiOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkTGFzdElELCR1SUQsJHBhdGhPcHRpb24sJHNjcmlwdFR5cGUsJHNjcmlwdFNpemUsJG5vdGVzLCRub3csJG5vdykpO2lmKCEkcmVzdWx0KXskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9ZWxzZXskU2NyaXB0SXM9c3RyX3JlcGxhY2UoJ3VybCh1cGxvYWRzJywndXJsKC91cGxvYWRzJywkU2NyaXB0SXMpOyRTY3JpcHRJcz1zdHJfcmVwbGFjZSgndXJsKFtbcm9vdF91cmxdXXVwbG9hZHMnLCd1cmwoe3tyb290X3VybH19L3VwbG9hZHMnLCRTY3JpcHRJcyk7JFNjcmlwdElzPXN0cl9yZXBsYWNlKCd1cmwoaW1hZ2VzJywndXJsKC9pbWFnZXMnLCRTY3JpcHRJcyk7JFNjcmlwdElzPXN0cl9yZXBsYWNlKCd1cmwoW1tyb290X3VybF1dL2ltYWdlcycsJ3VybCh7e3Jvb3RfdXJsfX0vaW1hZ2VzJywkU2NyaXB0SXMpOyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFRQQVJUUy4iICIuIihJRCwgU2NyaXB0SXMpICIuIlZBTFVFUyAoPyw/KSI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRMYXN0SUQsJFNjcmlwdElzKSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1NaW5pZnktU0QnLDApOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1QYXRoT3AtU0QnLCcnKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgkTGFzdElELictcm9vdFVSTC1TRCcsJycpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy10dXJuT2ZmUHJlbG9hZC1TRCcsJycpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1NZWRpYVR5cGUtU0QnLCRNZWRpYVR5cGUpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1zY3JpcHRQcmVmLVNEJyxzZXJpYWxpemUoJHNjcmlwdFByZWYpKTskbG9nZ2luLT5fZG9BdWRpdCgnYWRkJywnb2snLCJjb3BpZWQgJFNjcmlwdE5hbWUgdG8gU2NyaXB0RGVwbG95IC0gc2NyaXB0IGlkOiRMYXN0SUQgJHJldk1lc3MiLCcnLCdTY3JpcHREZXBsb3knKTtzY3JpcHRkZXBsb3lfdXRpbHM6OmxvY2tfc2NyaXB0KCRMYXN0SUQsJHVJRCk7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRMYXN0SUQpO319fSRNYWlucmVzdWx0LT5Nb3ZlTmV4dCgpO30gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteassignment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlyZXR1cm4gZmFsc2U7aWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7cmV0dXJuO30kR3JvdXB0U2V0PSRwYXJhbXNbJ0dyb3VwdFNldCddOyRkYj1jbXNtcygpLT5HZXREYigpOyRxdWVyeT0iREVMRVRFIHNkRywgZ2EgXHJcblx0XHRcdFx0ICBGUk9NICIuU0RfR1JPVVAuIiBBUyBzZEdcclxuXHRcdFx0XHQgIElOTkVSIGpvaW4gICIuU0RfR1JPVVBBU1NJR05NRU5ULiIgQVMgZ2EgXHJcblx0XHRcdFx0ICBPTiBnYS5Hcm91cHRTZXRJRCA9IHNkRy5JRCBcclxuXHRcdFx0XHQgIFdIRVJFIHNkRy5JRCA9ID8iOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR3JvdXB0U2V0KSk7JHF1ZXJ5PSJERUxFVEUgc2RHIFxyXG5cdFx0XHRcdCAgRlJPTSAiLlNEX0dST1VQLiIgQVMgc2RHIFxyXG5cdFx0XHRcdCAgV0hFUkUgc2RHLklEID0gPyI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRHcm91cHRTZXQpKTtpZighJHJlc3VsdCl7ZWNobyAnRXJyb3I6ICcubXlzcWxfZXJyb3IoKTskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9ZWxzZXskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nQnRuREVMRVRFRCcsJ2FjdGl2ZV90YWInPT4nZ3JvdXBzJyk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/action.delete_script.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JFNpZD0kcGFyYW1zWydTY3JpcHRJRCddOyRkYj0kdGhpcy0+R2V0RGIoKTskcXVlcnk9IkRFTEVURSBzbiwgc28sIHNwLCBzdSBGUk9NICIuU0RfU0NSSVBUTkFNRVMuIiBBUyBzbiAiLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVE9QVElPTlMuIiBBUyBzbyBPTiBzbi5JRCA9IHNvLklEICIuIklOTkVSIGpvaW4gICIuU0RfU0NSSVBUVU5ETy4iIEFTIHN1IE9OIHNuLklEID0gc3Uuc2NyaXB0SUQgIi4iSU5ORVIgam9pbiAgIi5TRF9TQ1JJUFRQQVJUUy4iIEFTIHNwIE9OIHNuLklEID0gc3AuSUQgIi4iV0hFUkUgc24uSUQgPT8iOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkU2lkKSk7aWYoISRyZXN1bHQpe2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtU0QnKSE9Jyc/JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1TRCcpOicnOyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdG9yLVNEJykhPScnPyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdG9yLVNEJyk6Jyc7JHRoaXMtPkdldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1FZGl0ZWRUaW1lLVNEJykhPScnPyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdGVkVGltZS1TRCcpOicnOyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1NZWRpYVR5cGUtU0QnKSE9Jyc/JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLU1lZGlhVHlwZS1TRCcpOicnOyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1NaW5pZnktU0QnKSE9Jyc/JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLU1pbmlmeS1TRCcpOicnOyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1QYXRoT3AtU0QnKSE9Jyc/JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJFNpZC4nLVBhdGhPcC1TRCcpOicnOyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1yb290VVJMLVNEJykhPScnPyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRTaWQuJy1yb290VVJMLVNEJyk6Jyc7JHRoaXMtPkdldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1TRCcpIT0nJz8kdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgkU2lkLictc2NyaXB0UHJlZi1TRCcpOicnOyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+J0J0bkRFTEVURUQnLiRwYXJhbXNbJ21lc3NhZ2UnXSwnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnKTskdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.description.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGRpcz0kdGhpcy0+TGFuZygkcGFyYW1zWydEZXNjcmlwdGlvbiddKTtlY2hvICI8ZGl2IGlkPVwiRElTQ1JQXCI+Ii4kZGlzLiI8L2Rpdj4iO2V4aXQ7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.editassignment.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGZoPW5ldyBmaWxlaGFuZGxpbmcoKTskZGlyPSRjb25maWdbJ3Jvb3RfdXJsJ107JEFkbWluZGlyPSRkaXIuJy8nLiRjb25maWdbJ2FkbWluX2RpciddOyRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTtpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXtyZXR1cm47fSRNZWRpYVR5cGVBcnJheT1hcnJheSgnYWxsJz0+J2FsbCcsJ2F1cmFsJz0+J2F1cmFsJywnYnJhaWxsZSc9PidicmFpbGxlJywnaGFuZGhlbGQnPT4naGFuZGhlbGQnLCdwcmludCc9PidwcmludCcsJ2VtYm9zc2VkJz0+J2VtYm9zc2VkJywncHJvamVjdGlvbic9Pidwcm9qZWN0aW9uJywnc2NyZWVuJz0+J3NjcmVlbicsJ3R0eSc9Pid0dHknLCd0dic9Pid0dicpO2lmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7ZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7fSRhY3RpdmVfdGFiPSJ0ZW1wbGF0ZV9tYW5nIjskcGFyYW1zWydvcmlnYWN0aW9uJ109JHBhcmFtc1snYWN0aW9uJ107JGNvbnRlbnRzPSIiOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9ncm91cF9hc3NpZ24nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpO2lmKCRwYXJhbXNbJ21vZGUnXT09J2FkZCcpeyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9ncm91cF9hc3NpZ24nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndGVtcGxhdGUnLCIiLDQwKSk7JHNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ21vZGUnLCRwYXJhbXNbJ21vZGUnXSkpO2lmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkmJiRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSE9JycpeyRjb250ZW50cz0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pO30kc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0YnV0dG9uJywkdGhpcy0+TGFuZygnc3VibWl0JykpKTskc21hcnR5LT5hc3NpZ24oJ2FkZCcsJycpOyRzbWFydHktPmFzc2lnbignZG9uZScsJycpO31lbHNleyRHaWQ9JHBhcmFtc1snR3JvdXB0SUQnXTskR3JvdXB0U2V0PXNjcmlwdGRlcGxveV91dGlsczo6R2V0R3JvdXBOYW1lKCRHaWQpO2V4dHJhY3Qoc2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRHcm91cERhdGEoJEdpZCkpOyRzbWFydHktPmFzc2lnbignR2lkJywkR2lkKTskc21hcnR5LT5hc3NpZ24oJ0dyb3VwdFNldCcsIjxoMT4kR3JvdXB0U2V0PC9oMT4iKTtpZigkR3JvdXB0VHlwZT09JycpeyRzbWFydHktPmFzc2lnbignR3JvdXB0VHlwZScsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ0dyb3VwdFR5cGUnLGFycmF5KCdKUyc9PidKUycsJ0NTUyc9PidDU1MnKSwkR3JvdXB0VHlwZSwnJywnJykpOyRzbWFydHktPmFzc2lnbignR1R5cGUnLCcnKTt9ZWxzZXskc21hcnR5LT5hc3NpZ24oJ0dyb3VwdFR5cGUnLCc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycuJEdyb3VwdFR5cGUuJy5wbmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgYWx0PSInLiRHcm91cHRUeXBlLiciLz4nKTskc21hcnR5LT5hc3NpZ24oJ0dUeXBlJywkR3JvdXB0VHlwZSk7fSRhbGxQcm9maWxlcz1zY3JpcHRkZXBsb3lfdXRpbHM6OmdldFNjcmlwdHNMaXN0KCk7JFNjcmlwdFBpY2tlckFycmF5PWFycmF5KCk7JHJvd2FycmF5PWFycmF5KCk7JHJvd2FycmF5Mj1hcnJheSgpOyR0Q291bnQ9MDskaGFzU2NyaXB0cz1mYWxzZTskd2F0Y2hlZEZvbGRlcj11bnNlcmlhbGl6ZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2F0Y2hlZEZvbGRlcicsc2VyaWFsaXplKGFycmF5KCdub25lJykpKSk7Zm9yZWFjaCgkd2F0Y2hlZEZvbGRlciBhcyAkaz0+JHYpeyR3YXRjaGFibGVGaWxlcz0kZmgtPnByb2Nlc3NfZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy5sdHJpbSgkdiwnLycpLHRydWUsJ2RpcicsJzA3NTUnLHRydWUsJ1NELXRlbXAnKTtpZigkd2F0Y2hhYmxlRmlsZXMhPWZhbHNlKXtmb3JlYWNoKCR3YXRjaGFibGVGaWxlcyBhcyAkZmlsZSl7JFN0eXBlPXN0cnRvbG93ZXIoc3Vic3RyKGx0cmltKCRmaWxlWyJuYW1lIl0sJy8nKSwoc3RycnBvcyhsdHJpbSgkZmlsZVsibmFtZSJdLCcvJyksIi4iKSsxKSkpO2lmKCRTdHlwZT09J2pzJ3x8JFN0eXBlPSdjc3MnKXskdG1wYXJlYT1hcnJheSgnU2NyaXB0U2V0Jz0+YmFzZW5hbWUoJGNvbmZpZ1sncm9vdF9wYXRoJ10ubHRyaW0oJGZpbGVbIm5hbWUiXSwnLycpKSwncGF0aE9wdGlvbic9PiRmaWxlWyJuYW1lIl0sJ3NjcmlwdFR5cGUnPT5zdHJ0b3VwcGVyKCRmaWxlWyJ0eXBlIl0pLCdzY3JpcHRTaXplJz0+JGZpbGVbInNpemUiXSwnd2F0Y2hBYmxlJz0+dHJ1ZSk7aWYoIWVtcHR5KCR0bXBhcmVhKSl7YXJyYXlfcHVzaCgkYWxsUHJvZmlsZXMsJHRtcGFyZWEpO319fX19Zm9yZWFjaCgkYWxsUHJvZmlsZXMgYXMgJGtleT0+JG9uZVByb2ZpbGUpeyRTY3JpcHRTZXQ9JG9uZVByb2ZpbGVbJ1NjcmlwdFNldCddOyRzY3JpcHRUeXBlPSRvbmVQcm9maWxlWydzY3JpcHRUeXBlJ107JHdhdGNoQWJsZT1pc3NldCgkb25lUHJvZmlsZVsnd2F0Y2hBYmxlJ10pPyRvbmVQcm9maWxlWyd3YXRjaEFibGUnXTpmYWxzZTtpZigkc2NyaXB0VHlwZT09JEdyb3VwdFR5cGUpe2lmKCFzY3JpcHRkZXBsb3lfdXRpbHM6OkNoZWNrU2NyaXB0KCRrZXksJEdpZCkpeyR0Q291bnQ9JHRDb3VudCsxOyRyb3c9bmV3IFN0ZENsYXNzKCk7JHJvdy0+U2NyaXB0bmFtZUxhYmxlPSRTY3JpcHRTZXQ7JHJvdy0+U2NyaXB0aWQ9JGtleTskcm93LT5TY3JpcHRuYW1lPSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnU2NyaXB0UGlja2VyW10nLCRrZXksc2NyaXB0ZGVwbG95X3V0aWxzOjpDaGVja1NjcmlwdCgka2V5LCRHaWQpKTskcm93LT53YXRjaEFibGU9JHdhdGNoQWJsZTthcnJheV9wdXNoKCRyb3dhcnJheSwkcm93KTt9ZWxzZWlmKHNjcmlwdGRlcGxveV91dGlsczo6Q2hlY2tTY3JpcHQoJGtleSwkR2lkKSl7JHJvdz1uZXcgU3RkQ2xhc3MoKTskcm93LT5TY3JpcHRuYW1lTGFibGU9JFNjcmlwdFNldDskcm93LT5TY3JpcHRpZD0ka2V5OyRyb3ctPlNjcmlwdG5hbWU9JHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdTY3JpcHRQaWNrZXJbXScsJGtleSxzY3JpcHRkZXBsb3lfdXRpbHM6OkNoZWNrU2NyaXB0KCRrZXksJEdpZCkpOyRyb3ctPndhdGNoQWJsZT0kd2F0Y2hBYmxlO2FycmF5X3B1c2goJHJvd2FycmF5Miwkcm93KTskaGFzU2NyaXB0cz10cnVlO319fSRzbWFydHktPmFzc2lnbignYWxsU2NyaXB0c1VzZWQnLGZhbHNlKTtpZigkdENvdW50PT0wJiYhJGhhc1NjcmlwdHMpeyRyb3c9bmV3IFN0ZENsYXNzKCk7JHJvdy0+U2NyaXB0bmFtZU1lc3M9JHRoaXMtPkxhbmcoJ25vbmVJblR5cGUnKTskcm93LT5TY3JpcHRuYW1lPScnO2FycmF5X3B1c2goJHJvd2FycmF5LCRyb3cpOyRzbWFydHktPmFzc2lnbignYWxsU2NyaXB0c1VzZWQnLHRydWUpO31lbHNlaWYoJHRDb3VudD09MCYmJGhhc1NjcmlwdHMpeyRzbWFydHktPmFzc2lnbignYWxsU2NyaXB0c1VzZWQnLHRydWUpO30kc21hcnR5LT5hc3NpZ24oJ1NjcmlwdFBpY2tlcicsJHJvd2FycmF5KTskc21hcnR5LT5hc3NpZ24oJ1NjcmlwdFBpY2tlcmhpZGRlbicsJHJvd2FycmF5Mik7JHNtYXJ0eS0+YXNzaWduKCd1bm1lcmdlJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3VubWVyZ2UnLCd0cnVlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgkR2lkLictdW5tZXJnZS1TRCcsZmFsc2UpKSk7JGFsbGRiUHJvZmlsZXM9c2NyaXB0ZGVwbG95X3V0aWxzOjpzZWxlY3RHcm91cHNMaXN0aW5ncygkR2lkKTskcm93YXJyYXk9YXJyYXkoKTskcm93Y2xhc3M9J3JvdzEnOyRHcm91cHRTaXplPTA7JHNtYXJ0eS0+YXNzaWduKCdmb3JtUkVPUkRFUnN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9ncm91cF9hc3NpZ24nLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpO2ZvcmVhY2goJGFsbGRiUHJvZmlsZXMgYXMgJGtleT0+JG9uZWRiUHJvZmlsZSl7JFNjcmlwdElEPSRrZXk7JFNjcmlwdFNldD0kb25lZGJQcm9maWxlWydTY3JpcHRTZXQnXTskc2NyaXB0U2l6ZT0kb25lZGJQcm9maWxlWydzY3JpcHRTaXplJ107JFNjcmlwdE9SREVSPSRvbmVkYlByb2ZpbGVbJ1NjcmlwdE9SREVSJ107JEdyb3VwdFNpemUrPSRzY3JpcHRTaXplOyRlZGl0YWJsZT1zY3JpcHRkZXBsb3lfdXRpbHM6OmlzX2VkaXRhYmxlKCRrZXkpOyRyb3c9bmV3IFN0ZENsYXNzKCk7aWYoJGVkaXRhYmxlKXskcm93LT5lZGl0TW9kZT0nJzt9ZWxzZXskcm93LT5lZGl0TW9kZT0nSW5FZGl0ICB1aS1zdGF0ZS1lcnJvcic7fSRyb3ctPlNjcmlwdGlkPSRrZXk7aWYoISRlZGl0YWJsZSl7JHVpZD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgka2V5LictTG9ja2VkLUVkaXRvci1TRCcpOyR1PXNpdGVfdXRpbHM6OmdldFVzZXJJbmZvKCR1aWQpOyR1bmFtZT0kdVsndXNlcm5hbWUnXTskcm93LT5uYW1lPSRTY3JpcHRJRDskcm93LT5kZWZhdWx0PSR1bmFtZS4nIGlzIGVkaXRpbmcgJy4kU2NyaXB0U2V0O31lbHNleyRyb3ctPm5hbWU9JFNjcmlwdElEOyRyb3ctPmRlZmF1bHQ9JFNjcmlwdFNldDt9JHJvdy0+cm93Y2xhc3M9JHJvd2NsYXNzOyRyb3ctPnNjcmlwdFNpemU9JGZoLT5TaXplSXRVcCgkc2NyaXB0U2l6ZSk7JHJvdy0+U2NyaXB0T1JERVI9JFNjcmlwdE9SREVSO2lmKCRlZGl0YWJsZSl7JHJvdy0+ZWRpdGxpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0X3NjcmlwdCcsJHJldHVybmlkLCc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2VkaXQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ2VkaXQnKS4nIiAvPicsYXJyYXkoJ1NjcmlwdFNldCc9PiRrZXksJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYiwnbW9kZSc9PidlZGl0JyksJycsZmFsc2UsZmFsc2UsJyByZWw9IicuJFNjcmlwdElELiciJyk7fWVsc2V7JHJvdy0+ZWRpdGxpbms9Jy0tJzt9JHJvdy0+ZGVsZXRlbGluaz0kdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlbGV0ZV9zY3JpcHQnLCRyZXR1cm5pZCwnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9kZWxldGUucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLiciIC8+JyxhcnJheSgnU2NyaXB0U2V0Jz0+JGtleSksJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKSk7YXJyYXlfcHVzaCgkcm93YXJyYXksJHJvdyk7KCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7fSRzbWFydHktPmFzc2lnbignR3JvdXB0U2l6ZScsJGZoLT5TaXplSXRVcCgkR3JvdXB0U2l6ZSkpOyRzbWFydHktPmFzc2lnbignU2NyaXB0TGlzdCcsJHJvd2FycmF5KTt9JHNtYXJ0eS0+YXNzaWduKCdhZGQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ2FkZCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdSRU9SREVSJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdSRU9SREVSJywkdGhpcy0+TGFuZygnUkVPUkRFUicpKSk7aWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7JHNtYXJ0eS0+YXNzaWduKCdHcm91cHRTZXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdHcm91cHRTZXQnLCIiLDQwLDI1NSwnJykpOyRzbWFydHktPmFzc2lnbignR3JvdXB0VHlwZScsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ0dyb3VwdFR5cGUnLGFycmF5KCdKUyc9PidKUycsJ0NTUyc9PidDU1MnKSwnJywnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbignU2NyaXB0UGlja2VyJywnJyk7JHNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pKTtpZihpc3NldCgkcGFyYW1zWydHcm91cHRTZXQnXSkpeyRHaWQ9JHBhcmFtc1snR3JvdXB0U2V0J107fWVsc2V7JEdpZD0nWCc7fSRzbWFydHktPmFzc2lnbignU2F2ZScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnU2F2ZScsJHRoaXMtPkxhbmcoJ1NhdmUnKSkpO30kc21hcnR5LT5hc3NpZ24oJ2hpZGRlbk1vZGUnLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ21vZGUnLCRwYXJhbXNbJ21vZGUnXSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnR3JvdXB0SUQnLCRHaWQpLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLCRDTVNfVVNFUl9LRVkpKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSgkaWQsJGNvbnRlbnRzLCd0ZW1wbGF0ZWNvbnRlbnQnKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtX2NhbmNlbCcsJzxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSInLiR0aGlzLT5MYW5nKCdmb3JtX2NhbmNlbCcpLiciIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiAvPicpOyRzbWFydHktPmFzc2lnbignZmluaXNoJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdmaW5pc2hlZCcsJHRoaXMtPkxhbmcoJ0ZpbmlzaCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdEFzc2lnbm1lbnQudHBsJyk7ID8+]]></data>
	</file>
	<file>
	  <filename>/action.edit_ModuleCustomTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTtpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXtyZXR1cm47fSRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRUeXBlSlMnLCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IHN5bnRheF9pcz0iaHRtbCI7PC9zY3JpcHQ+Jyk7JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpO2lmKCFpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKXskcGFyYW1zWydhY3RpdmVfdGFiJ109J3RlbXBsYXRlX21hbmcnO30kdGVtcGxhdGVfaWQ9LTE7aWYoaXNzZXQoJHBhcmFtc1sidGVtcGxhdGVfaWQiXSkpJHRlbXBsYXRlX2lkPSRwYXJhbXNbInRlbXBsYXRlX2lkIl07JHByZXZpZXc9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXZpZXcnLHRydWUpO2VjaG8gJzxkaXYgaWQ9ImRlbW90aXAiPjxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9sb2FkaW5nLmdpZiIgYWx0PSIiLz48L2Rpdj4nO2lmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7ZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7fSRwYXJhbXNbJ29yaWdhY3Rpb24nXT0kcGFyYW1zWydhY3Rpb24nXTskY29udGVudHM9IiI7JHNjcmlwdHNfbmFtZT0nJzskc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVfU2NyaXB0X1NldHVwJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLCRwYXJhbXMpKTskc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdQcm9jY2Vzc2luZycsJHRoaXMtPkxhbmcoJ1Byb2NjZXNzaW5nJykpLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1NhdmVkJywkdGhpcy0+TGFuZygnU2F2ZWQnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnRG9uZScsJHRoaXMtPkxhbmcoJ0RvbmUnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnVmFsaWRhdGluZycsJHRoaXMtPkxhbmcoJ1ZhbGlkYXRpbmcnKSkpO2lmKGlzc2V0KCRfUE9TVFsiZWRpdHRlbXBsYXRlIl0pKXskdmFsaWRpbmZvPXRydWU7aWYoJHRlbXBsYXRlPT0iIil7JGVycm9yLj0iPGxpPiIubGFuZygnbm9maWVsZGdpdmVuJyxhcnJheShsYW5nKCduYW1lJykpKS4iPC9saT4iOyR2YWxpZGluZm89ZmFsc2U7fWVsc2UgaWYoJHRlbXBsYXRlb3BzLT5DaGVja0V4aXN0aW5nVGVtcGxhdGVOYW1lKCR0ZW1wbGF0ZSwkdGVtcGxhdGVfaWQpKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCd0ZW1wbGF0ZWV4aXN0cycpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9aWYoJGNvbnRlbnQ9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLGFycmF5KGxhbmcoJ2NvbnRlbnQnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9aWYoJHZhbGlkaW5mbyl7JG9uZXRlbXBsYXRlPSR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJRCgkdGVtcGxhdGVfaWQpOyRvbmV0ZW1wbGF0ZS0+bmFtZT0kdGVtcGxhdGU7JG9uZXRlbXBsYXRlLT5jb250ZW50PSRjb250ZW50OyRvbmV0ZW1wbGF0ZS0+c3R5bGVzaGVldD0kc3R5bGVzaGVldDskb25ldGVtcGxhdGUtPmVuY29kaW5nPSRlbmNvZGluZzskb25ldGVtcGxhdGUtPmFjdGl2ZT0kYWN0aXZlO2ZvcmVhY2goY21zbXMoKS0+bW9kdWxlcyBhcyAka2V5PT4kdmFsdWUpe2lmKGNtc21zKCktPm1vZHVsZXNbJGtleV1bJ2luc3RhbGxlZCddPT10cnVlJiZjbXNtcygpLT5tb2R1bGVzWyRrZXldWydhY3RpdmUnXT09dHJ1ZSl7Y21zbXMoKS0+bW9kdWxlc1ska2V5XVsnb2JqZWN0J10tPkVkaXRUZW1wbGF0ZVByZSgkb25ldGVtcGxhdGUpO319RXZlbnRzOjpTZW5kRXZlbnQoJ0NvcmUnLCdFZGl0VGVtcGxhdGVQcmUnLGFycmF5KCd0ZW1wbGF0ZSc9PiYkb25ldGVtcGxhdGUpKTskcmVzdWx0PSRvbmV0ZW1wbGF0ZS0+U2F2ZSgpO2lmKCRyZXN1bHQpeyRvcmlnX3RlbXBsYXRlPSR0ZW1wbGF0ZTtmb3JlYWNoKGNtc21zKCktPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKXtpZihjbXNtcygpLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXT09dHJ1ZSYmY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnYWN0aXZlJ109PXRydWUpe2Ntc21zKCktPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5FZGl0VGVtcGxhdGVQb3N0KCRvbmV0ZW1wbGF0ZSk7fX1FdmVudHM6OlNlbmRFdmVudCgnQ29yZScsJ0VkaXRUZW1wbGF0ZVBvc3QnLGFycmF5KCd0ZW1wbGF0ZSc9PiYkb25ldGVtcGxhdGUpKTthdWRpdCgkdGVtcGxhdGVfaWQsJG9uZXRlbXBsYXRlLT5uYW1lLCdFZGl0ZWQgVGVtcGxhdGUnKTtpZighJGFwcGx5KXtzd2l0Y2goJGZyb20pe2Nhc2UgJ2NvbnRlbnQnOnJlZGlyZWN0KCJsaXN0Y29udGVudC5waHAiLiR1cmxleHQpO2JyZWFrO2Nhc2UgJ2Nzc2Fzc29jJzpyZWRpcmVjdCgndGVtcGxhdGVjc3MucGhwJy4kdXJsZXh0LicmaWQ9Jy4kY3NzaWQuJyZ0eXBlPXRlbXBsYXRlJyk7YnJlYWs7Y2FzZSAnbW9kdWxlX1RlbXBsYXRlTWFuYWdlcic6cmVkaXJlY3QoJ21vZHVsZWludGVyZmFjZS5waHAnLiR1cmxleHQuJyZtb2R1bGU9VGVtcGxhdGVNYW5hZ2VyJyk7YnJlYWs7ZGVmYXVsdDpyZWRpcmVjdCgibGlzdHRlbXBsYXRlcy5waHAiLiR1cmxleHQpO2JyZWFrO319fWVsc2V7JGVycm9yLj0iPGxpPiIubGFuZygnZXJyb3J1cGRhdGluZ3RlbXBsYXRlJykuIjwvbGk+Ijt9fWlmKCRhamF4KXtoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWwnKTtwcmludCAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nO3ByaW50ICc8RWRpdFRlbXBsYXRlPic7aWYoJGVycm9yKXtwcmludCAnPFJlc3BvbnNlPkVycm9yPC9SZXNwb25zZT4nO3ByaW50ICc8RGV0YWlscz48IVtDREFUQVsnLiRlcnJvci4nXV0+PC9EZXRhaWxzPic7fWVsc2V7cHJpbnQgJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nO3ByaW50ICc8RGV0YWlscz48IVtDREFUQVsnLmxhbmcoJ2VkaXR0ZW1wbGF0ZXN1Y2Nlc3MnKS4nXV0+PC9EZXRhaWxzPic7fXByaW50ICc8L0VkaXRUZW1wbGF0ZT4nO2V4aXQ7fX1lbHNlIGlmKCR0ZW1wbGF0ZV9pZCE9LTEpeyRvbmV0ZW1wbGF0ZT0kdGVtcGxhdGVvcHMtPkxvYWRUZW1wbGF0ZUJ5SUQoJHRlbXBsYXRlX2lkKTskdGVtcGxhdGU9JG9uZXRlbXBsYXRlLT5uYW1lOyRvcmlnX3RlbXBsYXRlPSRvbmV0ZW1wbGF0ZS0+bmFtZTskY29udGVudD0kb25ldGVtcGxhdGUtPmNvbnRlbnQ7JHN0eWxlc2hlZXQ9JG9uZXRlbXBsYXRlLT5zdHlsZXNoZWV0OyRlbmNvZGluZz0kb25ldGVtcGxhdGUtPmVuY29kaW5nOyRkZWZhdWx0PSRvbmV0ZW1wbGF0ZS0+ZGVmYXVsdDskYWN0aXZlPSRvbmV0ZW1wbGF0ZS0+YWN0aXZlOyRsYXN0ZWRpdGVkPSRvbmV0ZW1wbGF0ZS0+bW9kaWZpZWRfZGF0ZTt9JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9wcmV2aWV3JywnJyk7aWYoJHByZXZpZXcpeyRkYXRhWyJ0aXRsZSJdPSJUSVRMRSBIRVJFIjskZGF0YVsiY29udGVudCJdPSJUZXN0IENvbnRlbnQiOyRkYXRhWyJzdHlsZXNoZWV0Il09JHN0eWxlc2hlZXQ7JGRhdGFbInRlbXBsYXRlIl09JGNvbnRlbnQ7JHRtcGZuYW1lPScnOyR0bXBmbmFtZT10ZW1wbmFtKCRjb25maWdbInByZXZpZXdzX3BhdGgiXSwiY21zcHJldmlldyIpOyRoYW5kbGU9Zm9wZW4oJHRtcGZuYW1lLCJ3Iik7ZndyaXRlKCRoYW5kbGUsc2VyaWFsaXplKCRkYXRhKSk7ZmNsb3NlKCRoYW5kbGUpOyRwYXJhbXNbJ3RlbXBsYXRlX2lkJ109JHRlbXBsYXRlX2lkOyRwYXJhbXNbJ3NlcmlhbGl6ZWRfY29udGVudCddPXNlcmlhbGl6ZSgkY29udGVudCk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9wcmV2aWV3JywnPGRpdiBjbGFzcz0icGFnZWNvbnRhaW5lciI+DQoJCQk8cCBjbGFzcz0icGFnZWhlYWRlciI+Jy4kdGhpcy0+TGFuZygncHJldmlldycpLic8L3A+DQoJCQk8aWZyYW1lIGNsYXNzPSJwcmV2aWV3IiBuYW1lPSJwcmV2aWV3IiBzcmM9Iicuc2NyaXB0ZGVwbG95X3V0aWxzOjp0ZW1wbGF0ZV9wcmV2aWV3KCRwYXJhbXMpLiciPjwvaWZyYW1lPg0KCQk8L2Rpdj4nKTt9ZWNobyAnPGRpdiBpZD0iZGVtb3RpcCI+PGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2xvYWRpbmcuZ2lmIiBhbHQ9IiIvPjwvZGl2Pic7aWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXtlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTt9JHBhcmFtc1snb3JpZ2FjdGlvbiddPSRwYXJhbXNbJ2FjdGlvbiddOyRjb250ZW50cz0iIjskc2NyaXB0c19uYW1lPScnOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9TY3JpcHRfU2V0dXAnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzYXZlX1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwnJywkcGFyYW1zKSk7aWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSYmJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddIT0nJyl7JGNvbnRlbnRzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7fSRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkdGVtcGxhdGUpOyRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndGVtcGxhdGUnLCR0ZW1wbGF0ZSw0MCkpOyRzbWFydHktPmFzc2lnbignU2NyaXB0SXNfaW5wdXQnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYSgxLCRpZCwkY29udGVudCwnY29udGVudCcsJycsJ1NJQScsJycsJycsJzgwJywnMjAnLCdFZGl0QXJlYScpKTskc21hcnR5LT5hc3NpZ24oJ3NjcmlwdHNfbmFtZScsJHNjcmlwdHNfbmFtZSk7JHNtYXJ0eS0+YXNzaWduKCdtb2RlJywkcGFyYW1zWydtb2RlJ10pOyRzbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLENNU19TRUNVUkVfUEFSQU1fTkFNRSwkQ01TX1VTRVJfS0VZKSk7JHNtYXJ0eS0+YXNzaWduKCdhZGRMaWJfbGFiZWwnLCR0aGlzLT5MYW5nKCdhZGRMaWJfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCR0aGlzLT5MYW5nKCdzbWFydHlIb3cnKSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnLCR0aGlzLT5MYW5nKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsJHRoaXMtPkxhbmcoJ1NjcmlwdElzX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdub3Rlc19sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSgkaWQsJGNvbnRlbnRzLCd0ZW1wbGF0ZWNvbnRlbnQnKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYXBwbHknLCR0aGlzLT5MYW5nKCdhcHBseScpKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZlcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3JldmVydCcsJHRoaXMtPkxhbmcoJ3JldmVydCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ2ZpbHRlclByb3AnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWx0ZXJQcm9wJywnJykpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF90ZW1wbGF0ZS50cGwnKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.edit_script.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHNJRD1pc3NldCgkcGFyYW1zWydTY3JpcHRTZXQnXSk/JHBhcmFtc1snU2NyaXB0U2V0J106LTE7JGFqYXg9aXNzZXQoJHBhcmFtc1snYWpheCddKT90cnVlOmZhbHNlOyRkaXI9JGNvbmZpZ1sncm9vdF91cmwnXTskQWRtaW5kaXI9JGRpci4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ107JENNU19VU0VSX0tFWT1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldO2lmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpe3JldHVybjt9aWYoIWlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpeyRwYXJhbXNbJ2FjdGl2ZV90YWInXT0nc2NyaXB0X3RlbXBsYXRlJzt9JGFkcz0nJzskTWVkaWFUeXBlQXJyYXk9YXJyYXkoJ2FsbCc9PidhbGwnLCdtZWRpYSBxdWVyaWVzJz0+J21lZGlhIHF1ZXJpZXMnLCdhdXJhbCc9PidhdXJhbCcsJ2JyYWlsbGUnPT4nYnJhaWxsZScsJ2hhbmRoZWxkJz0+J2hhbmRoZWxkJywncHJpbnQnPT4ncHJpbnQnLCdlbWJvc3NlZCc9PidlbWJvc3NlZCcsJ3Byb2plY3Rpb24nPT4ncHJvamVjdGlvbicsJ3NjcmVlbic9PidzY3JlZW4nLCdzcGVlY2gnPT4nc3BlZWNoJywndHR5Jz0+J3R0eScsJ3R2Jz0+J3R2Jyk7aWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXtlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTt9JHBhcmFtc1snb3JpZ2FjdGlvbiddPSRwYXJhbXNbJ2FjdGlvbiddOyRjb250ZW50cz0iIjskc2NyaXB0c19uYW1lPScnOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9TY3JpcHRfU2V0dXAnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7JHNtYXJ0eS0+YXNzaWduKCdub3RlZCcsJycpOyRzbWFydHktPmFzc2lnbignRV9pbnB1dCcsJycpOyRzbWFydHktPmFzc2lnbignV19pbnB1dCcsJycpOyRzbWFydHktPmFzc2lnbignVkFsZWQnLCcnKTskc21hcnR5LT5hc3NpZ24oJ3JlcG9ydGJhcicsJycpOyRzbWFydHktPmFzc2lnbigncmVwb3J0JywnJyk7JHNtYXJ0eS0+YXNzaWduKCdpbnNlcnRDb2RlX2lucHV0JywkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnaW5zZXJ0Q29kZV9pbnB1dCcsJycsNDApKTskc21hcnR5LT5hc3NpZ24oJ2luc2VydENvZGVBdF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2luc2VydENvZGVBdF9pbnB1dCcsJycsNDApKTtpZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXskc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVfU2NyaXB0X1NldHVwJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLCRwYXJhbXMpKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RlbXBsYXRlJywiIiw0MCkpO2lmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkmJiRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSE9JycpeyRjb250ZW50cz0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pO319ZWxzZXskaG90TGlua0NoZWNrPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdob3RMaW5rQ2hlY2snLDEpO2V4dHJhY3Qoc2NyaXB0ZGVwbG95X3V0aWxzOjpnZXRTY3JpcHRGdWxsKCRzSUQpKTskc2NyaXB0c19uYW1lPSRTY3JpcHRTZXQ7JFR1cm5PTlZhbD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnVHVybk9OVmFsJywxKTskc21hcnR5LT5hc3NpZ24oJ1NjcmlwdElzX2lucHV0JywkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwkaWQsJFNjcmlwdElzLCdTY3JpcHRJc19pbnB1dCcsJycsJ1NJQScsJycsJycsJzgwJywnMjAnLCcnLCcnLCcgc3R5bGU9ImhlaWdodDogNjAwcHg7IHdpZHRoOiAxMDAlOyIgJykpO2lmKCRUdXJuT05WYWwpeyR2YWxJVD1uZXcgc2RWYWwoKTskdmFsSVQtPnZhbF9JdCgkc2NyaXB0VHlwZSwkc0lEKTt9JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRUeXBlSlMnLCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IHN5bnRheF9pcz0iJy5zdHJ0b2xvd2VyKCRzY3JpcHRUeXBlKS4nIjs8L3NjcmlwdD4nKTskR3JvdXBJbmZvPXNjcmlwdGRlcGxveV91dGlsczo6R2V0U2NyaXB0R3JvdXBJbmZvKCRzSUQpO2lmKCRHcm91cEluZm8hPWZhbHNlJiYkR3JvdXBJbmZvWzBdIT0nJyl7JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzR3JvdXBOdW1iZXInLCRHcm91cEluZm9bMF0pOyRHbGlua3M9Jyc7Zm9yZWFjaChleHBsb2RlKCcsJywkR3JvdXBJbmZvWzFdKWFzICRrZXk9PiRHbmFtZSl7JEdsaW5rcy49JyAnLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdGFzc2lnbm1lbnQnLCRyZXR1cm5pZCwkR25hbWUsYXJyYXkoJ0dyb3VwdElEJz0+c2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRHcm91cElEKCRHbmFtZSksJ2FjdGl2ZV90YWInPT4kcGFyYW1zWydhY3RpdmVfdGFiJ10sJ21vZGUnPT4nZWRpdCcpKS4nLCc7fSRzbWFydHktPmFzc2lnbignc2NyaXB0c0dyb3VwJyxyVHJpbSgkR2xpbmtzLCcsJykuJyAnKTt9ZWxzZXskc21hcnR5LT5hc3NpZ24oJ3NjcmlwdHNHcm91cE51bWJlcicsJzAnKTskc21hcnR5LT5hc3NpZ24oJ3NjcmlwdHNHcm91cCcsJ25vbmUnKTt9JHNtYXJ0eS0+YXNzaWduKCdyZXBvcnQnLCcnKTskYmFyPSc8YSBocmVmPSIjb3AiIGNsYXNzPSJzY3JpcHRPUCI+Jy4kdGhpcy0+TGFuZygnc2NpcHRvcHRpb25zJykuJzwvYT4gIHwgIDxhIGhyZWY9IiNoZWxwIiBpZD0ic2NyaXB0SGVscCI+Jy4kdGhpcy0+TGFuZygnaW5saW5laGVscCcpLic8L2E+IHwgPGEgaHJlZj0iIyIgaWQ9Imluc2VydENvZGUiPicuJHRoaXMtPkxhbmcoJ2luc2VydGNvZGUnKS4nPC9hPiAgJztpZigkc2NyaXB0VHlwZT09J0NTUycpeyRiYXIuPSd8ICA8YSBocmVmPSIjIiBjbGFzcz0ib3B0aW1pc2UiPicuJHRoaXMtPkxhbmcoJ29wdGltaXNlY29kZScpLic8L2E+Jzt9JHNtYXJ0eS0+YXNzaWduKCdvcHRpb25iYXInLCRiYXIpO2lmKCRzY3JpcHRUeXBlPT0nQ1NTJyl7JGJhcj0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0icG9wdXAgRVVSTFMiPicuJHRoaXMtPkxhbmcoJ0VVUkxTJykuJzwvYT4gIHwgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9InBvcHVwIFJDU1MiPicuJHRoaXMtPkxhbmcoJ1JDU1MnKS4nPC9hPiAgfCAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0icG9wdXAgRkNPTlQiPicuJHRoaXMtPkxhbmcoJ0ZDT05UJykuJzwvYT4gIHwgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9InBvcHVwIFNDU1MiPicuJHRoaXMtPkxhbmcoJ1NDU1MnKS4nPC9hPic7JHNtYXJ0eS0+YXNzaWduKCdyZXBvcnRiYXInLCRiYXIpO31pZigkc2NyaXB0VHlwZT09J0NTUycpeyRzbWFydHktPmFzc2lnbignTWVkaWFUeXBlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ01lZGlhVHlwZV9pbnB1dCcsJE1lZGlhVHlwZUFycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRzSUQuJy1NZWRpYVR5cGUtU0QnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybWVkaXVtJywnQWxsJykpKSk7JHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fbWVkaWEnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXN0b21fbWVkaWEnLCcnKSk7JHNtYXJ0eS0+YXNzaWduKCd0dXJuT2ZmUHJlbG9hZF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ3R1cm5PZmZQcmVsb2FkX2lucHV0JyxhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksJHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLXR1cm5PZmZQcmVsb2FkLVNEJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7fSRzbWFydHktPmFzc2lnbignU2NyaXB0U2V0X2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnU2NyaXB0U2V0X2lucHV0JywkU2NyaXB0U2V0LDQwLDI1NSkpOyRzbWFydHktPmFzc2lnbignTWluaWZ5X2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnTWluaWZ5X2lucHV0JyxhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksJHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLU1pbmlmeS1TRCcsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbignVXNlUGF0aE9wdGlvbl9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdVc2VQYXRoT3B0aW9uX2lucHV0JywnMScsJHRoaXMtPkdldFByZWZlcmVuY2UoJHNJRC4nLVBhdGhPcC1TRCcsJzAnKSkpOyRyb290VVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRzSUQuJy1yb290VVJMLVNEJywnJyk7aWYoJHJvb3RVUkw9PScnKXskcm9vdFVSTGNrPTA7fWVsc2V7JHJvb3RVUkxjaz0xO30kc21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxPcHRpb25faW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwncm9vdFVSTE9wdGlvbl9pbnB1dCcsJzEnLCRyb290VVJMY2spKTskc21hcnR5LT5hc3NpZ24oJ3Jvb3RVUkxfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdyb290VVJMX2lucHV0Jywkcm9vdFVSTCw0MCkpOyRzbWFydHktPmFzc2lnbigncGF0aE9wdGlvbl9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3BhdGhPcHRpb25faW5wdXQnLCRwYXRoT3B0aW9uLDQwKSk7JHNtYXJ0eS0+YXNzaWduKCdub3Rlc19pbnB1dCcsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKDAsJGlkLHNjcmlwdGRlcGxveV91dGlsczo6R2V0X05vdGVzKCRzSUQpLCdub3Rlc19pbnB1dCcsJycsJ05PVEVTJywnJywnJywnJywxMCkpOyRzbWFydHktPmFzc2lnbignc2NyaXB0VHlwZV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ3NjcmlwdFR5cGVfaW5wdXQnLGFycmF5KCdKUyc9PidKUycsJ0NTUyc9PidDU1MnKSwkc2NyaXB0VHlwZSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpO31pZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXskc21hcnR5LT5hc3NpZ24oJ01lZGlhVHlwZV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdNZWRpYVR5cGVfaW5wdXQnLCRNZWRpYVR5cGVBcnJheSwnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsJ0FsbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fbWVkaWEnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXN0b21fbWVkaWEnLCcnKSk7JHNtYXJ0eS0+YXNzaWduKCd0dXJuT2ZmUHJlbG9hZF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ3R1cm5PZmZQcmVsb2FkX2lucHV0JyxhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksJzAnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRTZXRfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdTY3JpcHRTZXRfaW5wdXQnLCIiLDQwLDI1NSwnJykpOyRzbWFydHktPmFzc2lnbignTWluaWZ5X2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnTWluaWZ5X2lucHV0JyxhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksJzEnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdwYXRoT3B0aW9uX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwncGF0aE9wdGlvbl9pbnB1dCcsIiIsNDApKTskc21hcnR5LT5hc3NpZ24oJ25vdGVzX2lucHV0JywkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwkaWQsJycsJ25vdGVzX2lucHV0JywnJywnTk9URVMnLCcnLCcnLCcnLDEwKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19pbnB1dCcsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKDAsJGlkLCcnLCdTY3JpcHRJc19pbnB1dCcsJycsJ1NJQScsJycsJycsJzgwJywnMjAnLCcnLCcnLCcgc3R5bGU9ImhlaWdodDo2MDBweDsgd2lkdGg6IDEwMCU7IiAnKSk7JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRUeXBlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnc2NyaXB0VHlwZV9pbnB1dCcsYXJyYXkoJ0pTJz0+J0pTJywnQ1NTJz0+J0NTUycpLCdKUycsJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ0NTU21lZGlhX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnQ1NTbWVkaWFfaW5wdXQnLGFycmF5KCdKUyc9PidKUycsJ0NTUyc9PidDU1MnKSwnSlMnLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pKTskc21hcnR5LT5hc3NpZ24oJ1VzZVBhdGhPcHRpb25faW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnVXNlUGF0aE9wdGlvbl9pbnB1dCcsMSwwKSk7JHNtYXJ0eS0+YXNzaWduKCdyb290VVJMT3B0aW9uX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3Jvb3RVUkxPcHRpb25faW5wdXQnLCcxJywwKSk7JHNtYXJ0eS0+YXNzaWduKCdyb290VVJMX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwncm9vdFVSTF9pbnB1dCcsIiIsNDApKTt9JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzX25hbWUnLCRzY3JpcHRzX25hbWUpOyRzbWFydHktPmFzc2lnbignbW9kZScsJHBhcmFtc1snbW9kZSddKTskc21hcnR5LT5hc3NpZ24oJ2hpZGRlbk1vZGUnLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ21vZGUnLCRwYXJhbXNbJ21vZGUnXSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCxDTVNfU0VDVVJFX1BBUkFNX05BTUUsJENNU19VU0VSX0tFWSkpOyRzbWFydHktPmFzc2lnbignT1B0ZW1wbGF0ZScsYXJyYXkoJzMnPT4kdGhpcy0+TGFuZygndGVtcGxhdGUzJyksJzInPT4kdGhpcy0+TGFuZygndGVtcGxhdGUyJyksJzEnPT4kdGhpcy0+TGFuZygndGVtcGxhdGUxJyksJzAnPT4kdGhpcy0+TGFuZygndGVtcGxhdGUwJyksJzQnPT4kdGhpcy0+TGFuZygndGVtcGxhdGVDJykpKTskc21hcnR5LT5hc3NpZ24oJ21lcmdlX3NlbGVjdG9ycycsYXJyYXkoJzAnPT4kdGhpcy0+TGFuZygnbWVyZ2Vfc2VsZWN0b3JzMCcpLCcxJz0+JHRoaXMtPkxhbmcoJ21lcmdlX3NlbGVjdG9yczEnKSwnMic9PiR0aGlzLT5MYW5nKCdtZXJnZV9zZWxlY3RvcnMyJykpKTskc21hcnR5LT5hc3NpZ24oJ29wdGltaXNlX3Nob3J0aGFuZHMnLGFycmF5KCcwJz0+JHRoaXMtPkxhbmcoJ29wdGltaXNlX3Nob3J0aGFuZHMwJyksJzEnPT4kdGhpcy0+TGFuZygnb3B0aW1pc2Vfc2hvcnRoYW5kczEnKSwnMic9PiR0aGlzLT5MYW5nKCdvcHRpbWlzZV9zaG9ydGhhbmRzMicpKSk7JHNtYXJ0eS0+YXNzaWduKCdpZCcsJHNJRCk7JHNtYXJ0eS0+YXNzaWduKCd0eXBlJyxpc3NldCgkc2NyaXB0VHlwZSk/JHNjcmlwdFR5cGU6JycpOyRzbWFydHktPmFzc2lnbignU2NyaXB0SXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdTY3JpcHRJc19sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ25vdGVzX2xhYmVsJywkdGhpcy0+TGFuZygnbm90ZXNfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJQcm9wJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlsdGVyUHJvcCcsJycpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZW5hbWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGVuYW1lJykpOyRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOyRzbWFydHktPmFzc2lnbigndGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVTeW50YXhBcmVhKCRpZCwkY29udGVudHMsJ3RlbXBsYXRlY29udGVudCcpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYXBwbHknLCR0aGlzLT5MYW5nKCdhcHBseScpKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZlcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3JldmVydCcsJHRoaXMtPkxhbmcoJ3JldmVydCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOyRzbWFydHktPmFzc2lnbignYWN0aW9uSUQnLCRpZCk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0X3NjcmlwdC50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/action.edit_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTtpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXtyZXR1cm47fSRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpO2lmKCFpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKXskcGFyYW1zWydhY3RpdmVfdGFiJ109J3RlbXBsYXRlX21hbmcnO30kdGVtcGxhdGVfaWQ9LTE7aWYoaXNzZXQoJHBhcmFtc1sidGVtcGxhdGVfaWQiXSkpJHRlbXBsYXRlX2lkPSRwYXJhbXNbInRlbXBsYXRlX2lkIl07JHByZXZpZXc9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXZpZXcnLHRydWUpO2lmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7ZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7fW9iX3N0YXJ0KCk7ID8+DQoNCg0KPHNwYW4+eyRhZGRMaWJfbGFiZWx9PC9zcGFuPg0KPHNlbGVjdCBpZD0ibGlicmFyeSIgc3R5bGU9IndpZHRoOjc1cHg7Ij4NCjxvcHRpb24gdmFsdWU9Im5vbmUiPk5vbmU8L29wdGlvbj57Kip9DQo8b3B0Z3JvdXAgbGFiZWw9ImpRdWVyeSI+DQo8b3B0aW9uIHZhbHVlPSIwLTAiPjxzdHJvbmc+alF1ZXJ5IGxhdGVzdDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xL2pxdWVyeS5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0xLTEiPmpRdWVyeSAxLjQuMiA8ZW0+KGdvb2dsZWFwaXMpPC9lbT48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS40LjIvanF1ZXJ5Lm1pbi5qcyp9DQo8b3B0aW9uIHZhbHVlPSIwLTEtMiI+alF1ZXJ5IDEuNC4yIDxlbT4obWljcm9zb2Z0KTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvalF1ZXJ5L2pxdWVyeS0xLjQuMi5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0yLTEiPmpRdWVyeSAxLjQuMCA8ZW0+KGdvb2dsZWFwaXMpPC9lbT48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS40LjAvanF1ZXJ5Lm1pbi5qcyp9DQo8b3B0aW9uIHZhbHVlPSIwLTItMiI+alF1ZXJ5IDEuNC4wIDxlbT4obWljcm9zb2Z0KTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvalF1ZXJ5L2pxdWVyeS0xLjQuMS5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC0zLTEiPmpRdWVyeSAxLjMuMiA8ZW0+KGdvb2dsZWFwaXMpPC9lbT48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS4zLjIvanF1ZXJ5Lm1pbi5qcyp9DQo8b3B0aW9uIHZhbHVlPSIwLTMtMiI+alF1ZXJ5IDEuMy4yIDxlbT4obWljcm9zb2Z0KTwvZW0+PC9vcHRpb24+eypodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvalF1ZXJ5L2pxdWVyeS0xLjMuMi5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMC00Ij5qUXVlcnkgMS4yLjY8L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS4yLjYvanF1ZXJ5Lm1pbi5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJqUXVlcnkgVG9vbHMiPg0KPG9wdGlvbiB2YWx1ZT0iOC0wIj48c3Ryb25nPmpRdWVyeSBUb29scyAtIEFsbDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2Nkbi5qcXVlcnl0b29scy5vcmcvMS4yLjQvYWxsL2pxdWVyeS50b29scy5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iOC0xIj5qUXVlcnkgVG9vbHMgLSBGb3JtIHRvb2xzOiBEYXRlaW5wdXQsIFJhbmdlaW5wdXQgYW5kIFZhbGlkYXRvci4gTm8galF1ZXJ5IGxpYnJhcnkuPC9vcHRpb24+eypodHRwOi8vY2RuLmpxdWVyeXRvb2xzLm9yZy8xLjIuNC9mb3JtL2pxdWVyeS50b29scy5taW4uanMqfQ0KPG9wdGlvbiB2YWx1ZT0iOC0yIj5qUXVlcnkgVG9vbHMgLSBVSSBUb29sczogVGFicywgVG9vbHRpcCwgU2Nyb2xsYWJsZSBhbmQgT3ZlcmxheS48L29wdGlvbj57Kmh0dHA6Ly9jZG4uanF1ZXJ5dG9vbHMub3JnLzEuMi40L3RpbnkvanF1ZXJ5LnRvb2xzLm1pbi5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJqcXVlcnkudmFsaWRhdGUiPg0KPG9wdGlvbiB2YWx1ZT0iOS0wIj48c3Ryb25nPnZlcnNpb24gMS43PC9zdHJvbmc+PC9vcHRpb24+eypodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvanF1ZXJ5LnZhbGlkYXRlLzEuNy9qcXVlcnkudmFsaWRhdGUuanMqfQ0KPG9wdGlvbiB2YWx1ZT0iOS0xIj52ZXJzaW9uIDEuNyArIGFkZGl0aW9uYWwtbWV0aG9kczwvb3B0aW9uPnsqaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pxdWVyeS52YWxpZGF0ZS8xLjcvanF1ZXJ5LnZhbGlkYXRlLmpzIHwgaHR0cDovL2FqYXgubWljcm9zb2Z0LmNvbS9hamF4L2pxdWVyeS52YWxpZGF0ZS8xLjcvYWRkaXRpb25hbC1tZXRob2RzLmpzKn0NCjwvb3B0Z3JvdXA+DQo8b3B0Z3JvdXAgbGFiZWw9Imdvb2dsZSBhcGlzIj4NCjxvcHRpb24gdmFsdWU9IjEwLTAiPjxzdHJvbmc+anNhcGkgbGF0ZXN0PC9zdHJvbmc+PC9vcHRpb24+eyogaHR0cDovL3d3dy5nb29nbGUuY29tL2pzYXBpICp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJqUXVlcnkgVUkiPg0KPG9wdGlvbiB2YWx1ZT0iMS0wIj48c3Ryb25nPmpRdWVyeSBVSSAxLjguMDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEvdGhlbWVzL2Jhc2UvanF1ZXJ5LXVpLmNzcyB8IGh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnl1aS8xLjguMC9qcXVlcnktdWkubWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjEtMSI+alF1ZXJ5IFVJIDEuNy4yPC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5dWkvMS90aGVtZXMvYmFzZS9qcXVlcnktdWkuY3NzIHwgaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuNy4yL2pxdWVyeS11aS5taW4uanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iUHJvdG90eXBlIj4NCjxvcHRpb24gdmFsdWU9IjItMCI+PHN0cm9uZz5Qcm90b3R5cGUgbGF0ZXN0PC9zdHJvbmc+PC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvcHJvdG90eXBlLzEvcHJvdG90eXBlLmpzKn0NCjxvcHRpb24gdmFsdWU9IjItMSI+UHJvdG90eXBlIDEuNi4xLjA8L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9wcm90b3R5cGUvMS42LjEuMC9wcm90b3R5cGUuanMqfQ0KPG9wdGlvbiB2YWx1ZT0iMi0yIj5Qcm90b3R5cGUgMS42LjAuMzwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3Byb3RvdHlwZS8xLjYuMC4zL3Byb3RvdHlwZS5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJzY3JpcHQuYWN1bG8udXMiPg0KPG9wdGlvbiB2YWx1ZT0iMy0wIj48c3Ryb25nPnNjcmlwdC5hY3Vsby51cyAxLjguMzwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3Byb3RvdHlwZS8xL3Byb3RvdHlwZS5qcyB8IGh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9zY3JpcHRhY3Vsb3VzLzEuOC4zL3NjcmlwdGFjdWxvdXMuanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iWVVJIj4NCjxvcHRpb24gdmFsdWU9IjQtMCI+PHN0cm9uZz5ZVUkgMi44LjByNDwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3l1aS8yLjguMHI0L2J1aWxkL3l1aWxvYWRlci95dWlsb2FkZXItbWluLmpzKn0NCjxvcHRpb24gdmFsdWU9IjQtMSI+WVVJIDIuNy4wPC9vcHRpb24+eyoiaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL3l1aS8yLjcuMC9idWlsZC95dWlsb2FkZXIveXVpbG9hZGVyLW1pbi5qcyp9DQo8L29wdGdyb3VwPg0KPG9wdGdyb3VwIGxhYmVsPSJNb29Ub29scyI+DQo8b3B0aW9uIHZhbHVlPSI1LTAiPjxzdHJvbmc+TW9vdG9vbHMgMS4yLjQ8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9tb290b29scy8xLjIuNC9tb290b29scy15dWktY29tcHJlc3NlZC5qcyp9DQo8b3B0aW9uIHZhbHVlPSI1LTEiPk1vb3Rvb2xzIDEuMi4zPC9vcHRpb24+eypodHRwOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvbW9vdG9vbHMvMS4yLjMvbW9vdG9vbHMteXVpLWNvbXByZXNzZWQuanMqfQ0KPC9vcHRncm91cD4NCjxvcHRncm91cCBsYWJlbD0iRG9qbyI+DQo8b3B0aW9uIHZhbHVlPSI2LTAiPjxzdHJvbmc+RG9qbyAxLjQuMTwvc3Ryb25nPjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Rvam8vMS40LjEvZG9qby9kb2pvLnhkLmpzKn0NCjxvcHRpb24gdmFsdWU9IjYtMSI+RG9qbyAxLjMuMjwvb3B0aW9uPnsqaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2Rvam8vMS4zLjIvZG9qby9kb2pvLnhkLmpzKn0NCjwvb3B0Z3JvdXA+DQo8b3B0Z3JvdXAgbGFiZWw9IkV4dCBDb3JlIj4NCjxvcHRpb24gdmFsdWU9IjctMCI+PHN0cm9uZz5FeHQgQ29yZSAzLjE8L3N0cm9uZz48L29wdGlvbj57Kmh0dHA6Ly9leHRqcy5jYWNoZWZseS5uZXQvZXh0LTIuMi9yZXNvdXJjZXMvY3NzL2V4dC1hbGwuY3NzIHwgaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2V4dC1jb3JlLzMuMS4wL2V4dC1jb3JlLmpzKn0NCjwvb3B0Z3JvdXA+DQo8L3NlbGVjdD4NCg0KICAgICAgICAgICAgICAgIDw/cGhwICRsaWJzPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpOyRwYXJhbXNbJ29yaWdhY3Rpb24nXT0kcGFyYW1zWydhY3Rpb24nXTskY29udGVudHM9IiI7JHNjcmlwdHNfbmFtZT0nJzskc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVfdGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7aWYoaXNzZXQoJF9QT1NUWyJlZGl0dGVtcGxhdGUiXSkpeyR2YWxpZGluZm89dHJ1ZTtpZigkdGVtcGxhdGU9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLGFycmF5KGxhbmcoJ25hbWUnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9ZWxzZSBpZigkdGVtcGxhdGVvcHMtPkNoZWNrRXhpc3RpbmdUZW1wbGF0ZU5hbWUoJHRlbXBsYXRlLCR0ZW1wbGF0ZV9pZCkpeyRlcnJvci49IjxsaT4iLmxhbmcoJ3RlbXBsYXRlZXhpc3RzJykuIjwvbGk+IjskdmFsaWRpbmZvPWZhbHNlO31pZigkY29udGVudD09IiIpeyRlcnJvci49IjxsaT4iLmxhbmcoJ25vZmllbGRnaXZlbicsYXJyYXkobGFuZygnY29udGVudCcpKSkuIjwvbGk+IjskdmFsaWRpbmZvPWZhbHNlO31pZigkdmFsaWRpbmZvKXskb25ldGVtcGxhdGU9JHRlbXBsYXRlb3BzLT5Mb2FkVGVtcGxhdGVCeUlEKCR0ZW1wbGF0ZV9pZCk7JG9uZXRlbXBsYXRlLT5uYW1lPSR0ZW1wbGF0ZTskb25ldGVtcGxhdGUtPmNvbnRlbnQ9JGNvbnRlbnQ7JG9uZXRlbXBsYXRlLT5zdHlsZXNoZWV0PSRzdHlsZXNoZWV0OyRvbmV0ZW1wbGF0ZS0+ZW5jb2Rpbmc9JGVuY29kaW5nOyRvbmV0ZW1wbGF0ZS0+YWN0aXZlPSRhY3RpdmU7Zm9yZWFjaChjbXNtcygpLT5tb2R1bGVzIGFzICRrZXk9PiR2YWx1ZSl7aWYoY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnaW5zdGFsbGVkJ109PXRydWUmJmNtc21zKCktPm1vZHVsZXNbJGtleV1bJ2FjdGl2ZSddPT10cnVlKXtjbXNtcygpLT5tb2R1bGVzWyRrZXldWydvYmplY3QnXS0+RWRpdFRlbXBsYXRlUHJlKCRvbmV0ZW1wbGF0ZSk7fX1FdmVudHM6OlNlbmRFdmVudCgnQ29yZScsJ0VkaXRUZW1wbGF0ZVByZScsYXJyYXkoJ3RlbXBsYXRlJz0+JiRvbmV0ZW1wbGF0ZSkpOyRyZXN1bHQ9JG9uZXRlbXBsYXRlLT5TYXZlKCk7aWYoJHJlc3VsdCl7JG9yaWdfdGVtcGxhdGU9JHRlbXBsYXRlO2ZvcmVhY2goY21zbXMoKS0+bW9kdWxlcyBhcyAka2V5PT4kdmFsdWUpe2lmKGNtc21zKCktPm1vZHVsZXNbJGtleV1bJ2luc3RhbGxlZCddPT10cnVlJiZjbXNtcygpLT5tb2R1bGVzWyRrZXldWydhY3RpdmUnXT09dHJ1ZSl7Y21zbXMoKS0+bW9kdWxlc1ska2V5XVsnb2JqZWN0J10tPkVkaXRUZW1wbGF0ZVBvc3QoJG9uZXRlbXBsYXRlKTt9fUV2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywnRWRpdFRlbXBsYXRlUG9zdCcsYXJyYXkoJ3RlbXBsYXRlJz0+JiRvbmV0ZW1wbGF0ZSkpO2F1ZGl0KCR0ZW1wbGF0ZV9pZCwkb25ldGVtcGxhdGUtPm5hbWUsJ0VkaXRlZCBUZW1wbGF0ZScpO2lmKCEkYXBwbHkpe3N3aXRjaCgkZnJvbSl7Y2FzZSAnY29udGVudCc6cmVkaXJlY3QoImxpc3Rjb250ZW50LnBocCIuJHVybGV4dCk7YnJlYWs7Y2FzZSAnY3NzYXNzb2MnOnJlZGlyZWN0KCd0ZW1wbGF0ZWNzcy5waHAnLiR1cmxleHQuJyZpZD0nLiRjc3NpZC4nJnR5cGU9dGVtcGxhdGUnKTticmVhaztjYXNlICdtb2R1bGVfVGVtcGxhdGVNYW5hZ2VyJzpyZWRpcmVjdCgnbW9kdWxlaW50ZXJmYWNlLnBocCcuJHVybGV4dC4nJm1vZHVsZT1UZW1wbGF0ZU1hbmFnZXInKTticmVhaztkZWZhdWx0OnJlZGlyZWN0KCJsaXN0dGVtcGxhdGVzLnBocCIuJHVybGV4dCk7YnJlYWs7fX19ZWxzZXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdlcnJvcnVwZGF0aW5ndGVtcGxhdGUnKS4iPC9saT4iO319aWYoJGFqYXgpe2hlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L3htbCcpO3ByaW50ICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pic7cHJpbnQgJzxFZGl0VGVtcGxhdGU+JztpZigkZXJyb3Ipe3ByaW50ICc8UmVzcG9uc2U+RXJyb3I8L1Jlc3BvbnNlPic7cHJpbnQgJzxEZXRhaWxzPjwhW0NEQVRBWycuJGVycm9yLiddXT48L0RldGFpbHM+Jzt9ZWxzZXtwcmludCAnPFJlc3BvbnNlPlN1Y2Nlc3M8L1Jlc3BvbnNlPic7cHJpbnQgJzxEZXRhaWxzPjwhW0NEQVRBWycubGFuZygnZWRpdHRlbXBsYXRlc3VjY2VzcycpLiddXT48L0RldGFpbHM+Jzt9cHJpbnQgJzwvRWRpdFRlbXBsYXRlPic7ZXhpdDt9fWVsc2UgaWYoJHRlbXBsYXRlX2lkIT0tMSl7JG9uZXRlbXBsYXRlPSR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJRCgkdGVtcGxhdGVfaWQpOyR0ZW1wbGF0ZT0kb25ldGVtcGxhdGUtPm5hbWU7JG9yaWdfdGVtcGxhdGU9JG9uZXRlbXBsYXRlLT5uYW1lOyRjb250ZW50PSRvbmV0ZW1wbGF0ZS0+Y29udGVudDskc3R5bGVzaGVldD0kb25ldGVtcGxhdGUtPnN0eWxlc2hlZXQ7JGVuY29kaW5nPSRvbmV0ZW1wbGF0ZS0+ZW5jb2Rpbmc7JGRlZmF1bHQ9JG9uZXRlbXBsYXRlLT5kZWZhdWx0OyRhY3RpdmU9JG9uZXRlbXBsYXRlLT5hY3RpdmU7JGxhc3RlZGl0ZWQ9JG9uZXRlbXBsYXRlLT5tb2RpZmllZF9kYXRlO30kc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX3ByZXZpZXcnLCcnKTtpZigkcHJldmlldyl7JGRhdGFbInRpdGxlIl09IlRJVExFIEhFUkUiOyRkYXRhWyJjb250ZW50Il09IlRlc3QgQ29udGVudCI7JGRhdGFbInN0eWxlc2hlZXQiXT0kc3R5bGVzaGVldDskZGF0YVsidGVtcGxhdGUiXT0kY29udGVudDskdG1wZm5hbWU9Jyc7JHRtcGZuYW1lPXRlbXBuYW0oJGNvbmZpZ1sicHJldmlld3NfcGF0aCJdLCJjbXNwcmV2aWV3Iik7JGhhbmRsZT1mb3BlbigkdG1wZm5hbWUsInciKTtmd3JpdGUoJGhhbmRsZSxzZXJpYWxpemUoJGRhdGEpKTtmY2xvc2UoJGhhbmRsZSk7JHBhcmFtc1sndGVtcGxhdGVfaWQnXT0kdGVtcGxhdGVfaWQ7JHBhcmFtc1snc2VyaWFsaXplZF9jb250ZW50J109c2VyaWFsaXplKCRjb250ZW50KTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX3ByZXZpZXcnLCc8ZGl2IGNsYXNzPSJwYWdlY29udGFpbmVyIj4NCgkJCTxwIGNsYXNzPSJwYWdlaGVhZGVyIj4nLiR0aGlzLT5MYW5nKCdwcmV2aWV3JykuJzwvcD4NCgkJCTxpZnJhbWUgY2xhc3M9InByZXZpZXciIG5hbWU9InByZXZpZXciIHNyYz0iJy5zY3JpcHRkZXBsb3lfdXRpbHM6OnRlbXBsYXRlX3ByZXZpZXcoJHBhcmFtcykuJyI+PC9pZnJhbWU+DQoJCTwvZGl2PicpO31pZihpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkpe2VjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1snZXJyb3JzJ10pO30kcGFyYW1zWydvcmlnYWN0aW9uJ109JHBhcmFtc1snYWN0aW9uJ107JGNvbnRlbnRzPSIiOyRzY3JpcHRzX25hbWU9Jyc7JHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzYXZlX3RlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLCRwYXJhbXMpKTskc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdQcm9jY2Vzc2luZycsJHRoaXMtPkxhbmcoJ1Byb2NjZXNzaW5nJykpLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1NhdmVkJywkdGhpcy0+TGFuZygnU2F2ZWQnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnRG9uZScsJHRoaXMtPkxhbmcoJ0RvbmUnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnVmFsaWRhdGluZycsJHRoaXMtPkxhbmcoJ1ZhbGlkYXRpbmcnKSkpO2lmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkmJiRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSE9JycpeyRjb250ZW50cz0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pO30kc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZScsJHRlbXBsYXRlKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RlbXBsYXRlJywkdGVtcGxhdGUsNDApKTskc21hcnR5LT5hc3NpZ24oJ1NjcmlwdElzX2lucHV0JywkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMSwkaWQsJGNvbnRlbnQsJ2NvbnRlbnQnLCcnLCdTSUEnLCcnLCcnLCc4MCcsJzIwJywnRWRpdEFyZWEnKSk7JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzX25hbWUnLCR0ZW1wbGF0ZSk7JHNtYXJ0eS0+YXNzaWduKCdtb2RlJywkcGFyYW1zWydtb2RlJ10pOyRzbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLENNU19TRUNVUkVfUEFSQU1fTkFNRSwkQ01TX1VTRVJfS0VZKSk7JHNtYXJ0eS0+YXNzaWduKCdhZGRMaWJfbGFiZWwnLCR0aGlzLT5MYW5nKCdhZGRMaWJfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCR0aGlzLT5MYW5nKCdzbWFydHlIb3cnKSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnLCR0aGlzLT5MYW5nKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsJHRoaXMtPkxhbmcoJ1NjcmlwdElzX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdub3Rlc19sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTskc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywkdGhpcy0+Q3JlYXRlU3ludGF4QXJlYSgkaWQsJGNvbnRlbnRzLCd0ZW1wbGF0ZWNvbnRlbnQnKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYXBwbHknLCR0aGlzLT5MYW5nKCdhcHBseScpKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZlcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3JldmVydCcsJHRoaXMtPkxhbmcoJ3JldmVydCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ2ZpbHRlclByb3AnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWx0ZXJQcm9wJywnJykpOyRzbWFydHktPmFzc2lnbignYXBwX2pzX2xpYicsJGxpYnMpOyRzbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7JHNtYXJ0eS0+YXNzaWduKCdhY3Rpb25pZCcsJGlkKTtlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRfdGVtcGxhdGUudHBsJyk7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoaXNzZXQoJHBhcmFtc1sncmVzdGFydCddKSYmaXNzZXQoJF9QT1NUWydzaG93dGVtcGxhdGUnXSkpeyRwcm9maWxlPWFycmF5KCdUTVAnLCdDU1MnLCdQRycsJ01PRFRFTVBMQVRFJywnUFJFRicsJ0dDQicsJ1VEVCcsJ0ZJTEUnKTtlY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCJleHBvcnQiKTtlY2hvICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2V4cG9ydCcsJHRoaXMtPkxhbmcoInN0YXJ0RXhwb3J0IikpOyRwYXlsb2FkPScnOyRwYXlsb2FkLj0nPGgzPicuJHRoaXMtPkxhbmcoJ2luZm9BcnJheScpLic8L2gzPic7JHBheWxvYWQuPSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5mb0FycmF5W10nLCdJTkZPJywnJywnIHJlcXVpcmVkPSJyZXF1aXJlZCIgJykuJyAnLiR0aGlzLT5MYW5nKCdJTkZPX2Zyb250JykuJzxici8+JzskcGF5bG9hZC49JzxoMz4nLiR0aGlzLT5MYW5nKCdzdGVwQXJyYXknKS4nPC9oMz4nO2ZvcmVhY2goJHByb2ZpbGUgYXMgJHN0ZXApeyRwYXlsb2FkLj0kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3Byb2ZpbGVBcnJheVtdJywkc3RlcCwnJykuJyAnLiR0aGlzLT5MYW5nKCRzdGVwLidfZnJvbnQnKS4nPGJyLz4nO31lY2hvICRwYXlsb2FkO2VjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTtleGl0KCk7fSR0aGlzLT5wcm9maWxlPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsncHJvZmlsZSddKT8kX1NFU1NJT05bJ1NEZXhwb3J0J11bJ3Byb2ZpbGUnXTphcnJheSgpO2lmKGVtcHR5KCR0aGlzLT5wcm9maWxlKXx8KGlzc2V0KCRwYXJhbXNbJ2luZm9BcnJheSddKSYmaXNzZXQoJHBhcmFtc1sncHJvZmlsZUFycmF5J10pKSl7JHRoaXMtPnByb2ZpbGU9YXJyYXlfbWVyZ2UoJHBhcmFtc1snaW5mb0FycmF5J10sJHBhcmFtc1sncHJvZmlsZUFycmF5J10pO2FycmF5X3B1c2goJHRoaXMtPnByb2ZpbGUsJ1BBQ0snKTthcnJheV9wdXNoKCR0aGlzLT5wcm9maWxlLCdXUlQnKTskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ3Byb2ZpbGUnXT0kdGhpcy0+cHJvZmlsZTt9aWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjktYmV0YTEnKT49MCl7JGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7fWVsc2V7Z2xvYmFsICRnQ21zOyRtb2Q9JGdDbXMtPm1vZHVsZXNbJ1NjcmlwdERlcGxveSddWydvYmplY3QnXTt9ZnVuY3Rpb24gdXBsb2Fkc0xpc3QoJGlkKXtpZih2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sJzEuOS1iZXRhMScpPj0wKXskZ0Ntcz1jbXNtcygpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTt9ZWxzZXtnbG9iYWwgJGdDbXM7JG1vZD0kZ0Ntcy0+bW9kdWxlc1snU2NyaXB0RGVwbG95J11bJ29iamVjdCddO31nbG9iYWwgJGNvbmZpZzskZmg9bmV3IGZpbGVoYW5kbGluZygpO2lmKGlzc2V0KCRfUE9TVFsnZGlyJ10pKXskcGF0aD0kX1BPU1RbJ2RpciddO31lbHNleyRwYXRoPScvdXBsb2Fkcyc7fSR0YWJsZT0nRkFJTEVEIFRPIExPQUQgRklMRVMnOyRtb2R1bGVCbGFja091dHM9dHJpbSgkbW9kLT5tb2R1bGVJbnRlcmZhY2UoJ0JsYWNrT3V0cycpLCcsJyk7JGRpcmxpc3Q9JGZoLT5wcm9jZXNzX2RpcigkY29uZmlnWydyb290X3BhdGgnXS4kcGF0aCxmYWxzZSwnbm9uZScsZmFsc2UsZmFsc2UsJG1vZHVsZUJsYWNrT3V0cyk7aWYoJGRpcmxpc3QhPWZhbHNlKXskdGFibGU9IjxkaXYgY2xhc3M9J2ZpbGV0cmVlJz4iOyR0YWJsZS49Ijx1bCBjbGFzcz1cImpxdWVyeUZpbGVUcmVlXCIgPiI7JGk9MTtmb3JlYWNoKCRkaXJsaXN0IGFzICRmaWxlKXskcGF0aF9wYXJ0cz1wYXRoaW5mbygkZmlsZVsnbmFtZSddKTskZXh0PWlzc2V0KCRwYXRoX3BhcnRzWydleHRlbnNpb24nXSk/JHBhdGhfcGFydHNbJ2V4dGVuc2lvbiddOicnOyRkaXJycj1zdHJfcmVwbGFjZSgnLi4uJywnJywkZmlsZVsnbmFtZSddKTskZE5hbWU9dHJpbSgkZmlsZVsnbmFtZSddLCcvJyk7JGJveD0kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnRklMRScuJGkscnRyaW0oJGRpcnJyLCcvJykpO2lmKCRleHQ9PScnKXskdGFibGUuPSI8bGkgY2xhc3M9XCJkaXJlY3RvcnkgY29sbGFwc2VkXCI+PHNwYW4gc3R5bGU9J2Zsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOiAxMHB4Oyc+Ii4kYm94LiI8L3NwYW4+PGEgaHJlZj1cIiNcIiB0aXRsZT0nZG91YmxlIGNsaWNrIHRvIG9wZW4nIHJlbD1cIiIuaHRtbGVudGl0aWVzKHJ0cmltKCRkaXJyciwnLycpKS4iL1wiPiIuaHRtbGVudGl0aWVzKCRkTmFtZSkuIjwvYT48L2xpPiI7fWVsc2V7JHZlaXc9Jyc7aWYoaW5fYXJyYXkoJGV4dCxleHBsb2RlKCcsJywnbXAzfG1wNHxtb3Z8d2F2fGZsdicpKSl7JHZpZXc9InZpZGVvIjt9aWYoaW5fYXJyYXkoJGV4dCxleHBsb2RlKCd8JywnaWNvfGdpZnxqcGd8anBlZ3xwbmcnKSkpeyR2aWV3PSJpbWFnZSI7fWlmKGluX2FycmF5KCRleHQsZXhwbG9kZSgnfCcsJ3R4dHxodG1sfGNzcycpKSl7JHZpZXc9InRleHQiO31pZihpbl9hcnJheSgkZXh0LGV4cGxvZGUoJ3wnLCdqc3xwaHB8a21sfHhtbCcpKSl7JHZpZXc9ImxpdmVzY3JpcHQiO31pZihpbl9hcnJheSgkZXh0LGV4cGxvZGUoJ3wnLCdwZGZ8d29mZnxlb3R8aWNzfHZjZnxodGN8b3RmJykpKXskdmlldz0iZG93bmxvYWRzIjt9aWYoaW5fYXJyYXkoJGV4dCxleHBsb2RlKCd8Jywnc3dmfCcpKSl7JHZpZXc9ImZsYXNoIjt9JHRhYmxlLj0iPGxpIGNsYXNzPVwiZmlsZSBleHRfJGV4dFwiPjxzcGFuIHN0eWxlPSdmbG9hdDpyaWdodDttYXJnaW4tdG9wOiAxMHB4Oyc+Ii4kYm94LiI8L3NwYW4+PGEgaHJlZj0nIyc+Ii5odG1sZW50aXRpZXMoJGROYW1lKS4iIDxlbT4oICIuJGZpbGVbJ3NpemUnXS4iICBsYXN0IG1vZDoiLmRhdGUoInIiLCRmaWxlWydsYXN0bW9kJ10pLiIpIDwvZW0+PC9hPjxzcGFuIGNsYXNzPSckdmlldyB2aWV3JyB0aXRsZT0nIi4kbW9kLT5MYW5nKCd2aWV3JykuIicgIHJlbD0nLi4iLmh0bWxlbnRpdGllcygkZGlycnIpLiInPiIuJG1vZC0+TGFuZygndmlldycpLiI8L3NwYW4+PC9saT4iO30kaSsrO30kdGFibGUuPSI8L3VsPiI7JHRhYmxlLj0iPC9kaXY+Ijt9cmV0dXJuICR0YWJsZTt9aWYoaXNzZXQoJHBhcmFtc1snZmlsZXMnXSkpe2VjaG8gdXBsb2Fkc0xpc3QoJGlkKTtleGl0KCk7fWlmKGlzc2V0KCRwYXJhbXNbJ3Jlc3RhcnQnXSkpeyRwYXJhbXM9YXJyYXkoKTskcGFyYW1zWydtZXNzYWdlJ109J2VtcHR5cGFja2FnZW5hbWUnOyRtb2QtPlJlZGlyZWN0KCRpZCwnZXhwb3J0JywkcmV0dXJuaWQsJHBhcmFtcyk7fWlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSl7JHBhcmFtc1snbWVzc2FnZSddPSdlbXB0eXBhY2thZ2VuYW1lJzskcGFyYW1zWydhY3RpdmVfdGFiJ109J2lucG9ydEV4cG9ydCc7JG1vZC0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTt9aWYoIWlzc2V0KCRnQ21zKSlleGl0O2lmKCEkdGhpcy0+SGFzUGVybWlzc2lvbigiTWFuYWdlIFRoZW1lcyIpKXtyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRwYXJhbXMsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7fSRleHBvcnQ9bmV3IHNkX2V4cG9ydCgpO2lmKCFpc3NldCgkcGFyYW1zWydzdGVwJ10pfHwkcGFyYW1zWydzdGVwJ109PTApeyRleHBvcnQtPnJlc2V0VmFycygpOyRleHBvcnQtPnVwZGF0ZVNFU1NJT04oKTt9aWYoIWlzc2V0KCRwYXJhbXNbJ3N0ZXAnXSkpeyRzdGVwPTE7fWVsc2V7JHN0ZXA9JHBhcmFtc1snc3RlcCddO30kc21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOyR0aGlzLT5hY3Q9JHRoaXMtPnByb2ZpbGVbJHN0ZXAtMV07JHRoaXMtPmxhc3RhY3Q9JHN0ZXA9PTE/Jyc6JHRoaXMtPnByb2ZpbGVbJHN0ZXAtMl07aWYoJHRoaXMtPmxhc3RhY3Q9PScnKXskZXhwb3J0LT5yZXNldFZhcnMoKTskZXhwb3J0LT51cGRhdGVTRVNTSU9OKCk7fXN3aXRjaCgkdGhpcy0+YWN0KXtjYXNlICdUTVAnOmNhc2UgJ0NTUyc6Y2FzZSAnSlMnOmNhc2UgJ1BHJzpjYXNlICdNT0RURU1QTEFURSc6Y2FzZSAnR0NCJzpjYXNlICdVRFQnOmNhc2UgJ0ZJTEUnOmNhc2UgJ1BSRUYnOmNhc2UgJ01PRERBVEEnOmNhc2UgJ0lORk8nOmNhc2UgJ0ZJTkZPJzokZXhwb3J0LT5zZWxlY3RJdGVtcygkaWQsJHBhcmFtcyk7YnJlYWs7Y2FzZSAnUEFDSyc6JGV4cG9ydC0+c2V0UGFjaygkaWQsJHBhcmFtcyk7YnJlYWs7Y2FzZSAnV1JUJzokZXhwb3J0LT53cml0ZVBhY2soJGlkLCRwYXJhbXMpO2JyZWFrO30kc21hcnR5LT5hc3NpZ24oJ1RNUCcsJHRoaXMtPlRNUCk7JHNtYXJ0eS0+YXNzaWduKCdDU1MnLCR0aGlzLT5DU1MpOyRzbWFydHktPmFzc2lnbignSlMnLCR0aGlzLT5KUyk7JHNtYXJ0eS0+YXNzaWduKCdQRycsJHRoaXMtPlBHKTskc21hcnR5LT5hc3NpZ24oJ01PRFRFTVBMQVRFJywkdGhpcy0+TU9EVEVNUExBVEUpOyRzbWFydHktPmFzc2lnbignTU9EREFUQScsJHRoaXMtPk1PRERBVEEpOyRzbWFydHktPmFzc2lnbignR0NCJywkdGhpcy0+R0NCKTskc21hcnR5LT5hc3NpZ24oJ1VEVCcsJHRoaXMtPlVEVCk7JHNtYXJ0eS0+YXNzaWduKCdGSUxFJywkdGhpcy0+RklMRSk7JHNtYXJ0eS0+YXNzaWduKCdQUkVGJywkdGhpcy0+UFJFRik7JHNtYXJ0eS0+YXNzaWduKCdJTkZPJywkdGhpcy0+SU5GTyk7JHNtYXJ0eS0+YXNzaWduKCdGSU5GTycsJHRoaXMtPkZJTkZPKTskc21hcnR5LT5hc3NpZ24oJ2FjdCcsJHRoaXMtPmFjdCk7JHNtYXJ0eS0+YXNzaWduKCdsYXN0YWN0JywkdGhpcy0+bGFzdGFjdCk7JHNtYXJ0eS0+YXNzaWduKCdwcm9maWxlJywkdGhpcy0+cHJvZmlsZSk7aWYoJHRoaXMtPmFjdD09J0ZJTEUnKXskc21hcnR5LT5hc3NpZ24oJ3RhYmxlJyx1cGxvYWRzTGlzdCgkaWQpKTt9JHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2V4dF8nLiR0aGlzLT5hY3QpKTskc21hcnR5LT5hc3NpZ24oJ2hlbHAnLCR0aGlzLT5MYW5nKCdoZWxwX2V4dF8nLiR0aGlzLT5hY3QpKTskc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ2FjdGlvbnRleHQnLCR0aGlzLT5MYW5nKCdhY3Rpb24nKSk7JHNtYXJ0eS0+YXNzaWduKCdzdGVwJywkc3RlcCk7JHNtYXJ0eS0+YXNzaWduKCduZXh0c3RlcCcsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RlcCcsKCRzdGVwKzEpKSk7JHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdleHBvcnQnLCRyZXR1cm5pZCkpOyRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ2NvbnRpbnVlX2V4cG9ydCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJ2NhbmNlbCcpKTskc21hcnR5LT5hc3NpZ24oJ3Jlc3RhcnQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc3RhcnQnLCdyZXN0YXJ0JykpOyRzbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdleHBvcnQudHBsJyk7ID8+]]></data>
	</file>
	<file>
	  <filename>/action.form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5jb25maWc7JHBhZ2VpbmZvPWNtc21zKCktPnZhcmlhYmxlc1sncGFnZWluZm8nXTskc3R5bGVzaGVldG9wcz1jbXNtcygpLT5HZXRTdHlsZXNoZWV0T3BlcmF0aW9ucygpOyRhbGxzdHlsZXNoZWV0cz0kc3R5bGVzaGVldG9wcy0+TG9hZFN0eWxlc2hlZXRzKCk7JHRtcGFycj1hcnJheSgpO2ZvcmVhY2goJGFsbHN0eWxlc2hlZXRzIGFzICRvcyl7JHRtcGFyclskb3MtPklkKCldPSRvcy0+TmFtZSgpO30kc3R5bGVzPW5ldyBTdHlsZXNoZWV0X1JlY29yZCgpOyRzdHlsZXMtPkxvYWQoJHBhZ2VpbmZvLT50ZW1wbGF0ZV9pZCk7JG9wdGlvbnM9YXJyYXkoKTtpZigkc3R5bGVzLT5wcmVmZXJyZWRfc3M+MCl7JG9iaj1uZXcgU3RkQ2xhc3M7JG9iai0+aWQ9JHN0eWxlcy0+cHJlZmVycmVkX3NzOyRvYmotPm5hbWU9JHRtcGFyclskc3R5bGVzLT5wcmVmZXJyZWRfc3NdOyRvcHRpb25zW109JG9iajt9Zm9yZWFjaCgkc3R5bGVzLT5hbHRlcm5hdGUgYXMgJGEpeyRvYmo9bmV3IFN0ZENsYXNzOyRvYmotPmlkPSRhOyRvYmotPm5hbWU9JHRtcGFyclskYV07JG9wdGlvbnNbXT0kb2JqO30kc21hcnR5LT5hc3NpZ24oJ29wdGlvbnMnLCRvcHRpb25zKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zdHlsZXNoZWV0JywkdGhpcy0+TGFuZygncHJvbXB0X3N0eWxlc2hlZXQnKSk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmb3JtX3RlbXBsYXRlJyk7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoaXNzZXQoJHBhcmFtc1sibWVzc2FnZSJdKSllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkcGFyYW1zWyJtZXNzYWdlIl0pO2lmKGlzc2V0KCRwYXJhbXNbImVycm9yIl0pKWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1siZXJyb3IiXSk7JGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7ZnVuY3Rpb24geG1sX3BhcnNlX2ludG9fYXNzb2MoJGZpbGUpeyRkYXRhPWltcGxvZGUoIiIsZmlsZSgkZmlsZSkpOyRwPXhtbF9wYXJzZXJfY3JlYXRlKCk7eG1sX3BhcnNlcl9zZXRfb3B0aW9uKCRwLFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLDApO3htbF9wYXJzZXJfc2V0X29wdGlvbigkcCxYTUxfT1BUSU9OX1NLSVBfV0hJVEUsMSk7eG1sX3BhcnNlX2ludG9fc3RydWN0KCRwLCRkYXRhLCR2YWxzLCRpbmRleCk7eG1sX3BhcnNlcl9mcmVlKCRwKTskbGV2ZWxzPWFycmF5KG51bGwpO2ZvcmVhY2goJHZhbHMgYXMgJHZhbCl7aWYoJHZhbFsndHlwZSddPT0nb3Blbid8fCR2YWxbJ3R5cGUnXT09J2NvbXBsZXRlJyl7aWYoIWFycmF5X2tleV9leGlzdHMoJHZhbFsnbGV2ZWwnXSwkbGV2ZWxzKSl7JGxldmVsc1skdmFsWydsZXZlbCddXT1hcnJheSgpO319JHByZXZMZXZlbD0mJGxldmVsc1skdmFsWydsZXZlbCddLTFdOyRwYXJlbnQ9JHByZXZMZXZlbFtzaXplb2YoJHByZXZMZXZlbCktMV07aWYoJHZhbFsndHlwZSddPT0nb3BlbicpeyR2YWxbJ2NoaWxkcmVuJ109YXJyYXkoKTthcnJheV9wdXNoKCYkbGV2ZWxzWyR2YWxbJ2xldmVsJ11dLCR2YWwpO2NvbnRpbnVlO31lbHNlIGlmKCR2YWxbJ3R5cGUnXT09J2NvbXBsZXRlJyYmaXNzZXQoJHZhbFsndmFsdWUnXSkpeyRwYXJlbnRbJ2NoaWxkcmVuJ11bJHZhbFsndGFnJ11dPSR2YWxbJ3ZhbHVlJ107fWVsc2UgaWYoJHZhbFsndHlwZSddPT0nY2xvc2UnKXskcG9wPWFycmF5X3BvcCgkbGV2ZWxzWyR2YWxbJ2xldmVsJ11dKTskdGFnPSRwb3BbJ3RhZyddO2lmKCRwYXJlbnQpe2lmKCFhcnJheV9rZXlfZXhpc3RzKCR0YWcsJHBhcmVudFsnY2hpbGRyZW4nXSkpeyRwYXJlbnRbJ2NoaWxkcmVuJ11bJHRhZ109JHBvcFsnY2hpbGRyZW4nXTt9ZWxzZSBpZihpc19hcnJheSgkcGFyZW50WydjaGlsZHJlbiddWyR0YWddKSl7aWYoIWlzc2V0KCRwYXJlbnRbJ2NoaWxkcmVuJ11bJHRhZ11bMF0pKXskb2xkU2luZ2xlPSRwYXJlbnRbJ2NoaWxkcmVuJ11bJHRhZ107JHBhcmVudFsnY2hpbGRyZW4nXVskdGFnXT1udWxsOyRwYXJlbnRbJ2NoaWxkcmVuJ11bJHRhZ11bXT0kb2xkU2luZ2xlO30kcGFyZW50WydjaGlsZHJlbiddWyR0YWddW109JHBvcFsnY2hpbGRyZW4nXTt9fWVsc2V7cmV0dXJuKGFycmF5KCRwb3BbJ3RhZyddPT4kcG9wWydjaGlsZHJlbiddKSk7fX0kcHJldkxldmVsW3NpemVvZigkcHJldkxldmVsKS0xXT0kcGFyZW50O319ZnVuY3Rpb24gZ2V0VGVtcGxhdGVJZEJ5TmFtZSgkbmFtZSl7Z2xvYmFsICRkYjskcXVlcnk9IlNFTEVDVCB0ZW1wbGF0ZV9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJ0ZW1wbGF0ZXMgV0hFUkUgdGVtcGxhdGVfbmFtZSA9ID8iOyRyZXN1bHQ9JGRiLT5nZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7cmV0dXJuICRyZXN1bHQ7fWZ1bmN0aW9uIHByb2Nlc3NJbXBvcnQoJHRoZW1lX2lkLCR0eXBlLCRuYW1lLCRzeXN0ZW1faWQ9JycsJG1vZHVsZT0nJywkbG9jYXRpb249Jycpe2dsb2JhbCAkZGI7JGluc2VydD1mYWxzZTtzd2l0Y2goJHR5cGUpe2Nhc2UgJ3RlbXBsYXRlJzokcXVlcnk9IlNFTEVDVCBjb3VudCgxKSBGUk9NICIuU0RfRVhQT1JUUy4iX2NvbXAgV0hFUkUgdGhlbWVfaWQgPSA/IEFORCB0eXBlID0/IEFORCBuYW1lID0gPyI7JGZvdW5kPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhlbWVfaWQsJHR5cGUsJG5hbWUpKTtpZighJGZvdW5kKXskaW5zZXJ0PXRydWU7fWVsc2V7JHF1ZXJ5PSJVUERBVEUgIi5TRF9FWFBPUlRTLiJfY29tcCBTRVQgc3lzdGVtX2lkID0gPyBXSEVSRSBXSEVSRSB0aGVtZV9pZCA9ID8gQU5EIHR5cGUgPT8gQU5EIG5hbWUgPSA/IjskZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzeXN0ZW1faWQsJHRoZW1lX2lkLCR0eXBlLCRuYW1lKSk7fWJyZWFrO2Nhc2UgJ3N0eWxlJzokcXVlcnk9IlNFTEVDVCBjb3VudCgxKSBGUk9NICIuU0RfRVhQT1JUUy4iX2NvbXAgV0hFUkUgdGhlbWVfaWQgPSA/IEFORCB0eXBlID0/IEFORCBuYW1lID0gPyI7JGZvdW5kPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhlbWVfaWQsJHR5cGUsJG5hbWUpKTtpZighJGZvdW5kKXskaW5zZXJ0PXRydWU7fWVsc2V7JHF1ZXJ5PSJVUERBVEUgIi5TRF9FWFBPUlRTLiJfY29tcCBTRVQgc3lzdGVtX2lkID0gPyBXSEVSRSBXSEVSRSB0aGVtZV9pZCA9ID8gQU5EIHR5cGUgPT8gQU5EIG5hbWUgPSA/IjskZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzeXN0ZW1faWQsJHRoZW1lX2lkLCR0eXBlLCRuYW1lKSk7fWJyZWFrO2Nhc2UgJ3BhZ2UnOiRxdWVyeT0iU0VMRUNUIGNvdW50KDEpIEZST00gIi5TRF9FWFBPUlRTLiJfY29tcCBXSEVSRSB0aGVtZV9pZCA9ID8gQU5EIHR5cGUgPT8gQU5EIG5hbWUgPSA/IjskZm91bmQ9JGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGVtZV9pZCwkdHlwZSwkbmFtZSkpO2lmKCEkZm91bmQpeyRpbnNlcnQ9dHJ1ZTt9YnJlYWs7Y2FzZSAnbW9kdWxlJzokcXVlcnk9IlNFTEVDVCBjb3VudCgxKSBGUk9NICIuU0RfRVhQT1JUUy4iX2NvbXAgV0hFUkUgdGhlbWVfaWQgPSA/IEFORCB0eXBlID0/IEFORCBuYW1lID0gPyBhbmQgbW9kdWxlID0gPyI7JGZvdW5kPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhlbWVfaWQsJHR5cGUsJG5hbWUsJG1vZHVsZSkpO2lmKCEkZm91bmQpeyRpbnNlcnQ9dHJ1ZTt9YnJlYWs7Y2FzZSAndWR0JzokcXVlcnk9IlNFTEVDVCBjb3VudCgxKSBGUk9NICIuU0RfRVhQT1JUUy4iX2NvbXAgV0hFUkUgdGhlbWVfaWQgPSA/IEFORCB0eXBlID0/IEFORCBuYW1lID0gPyI7JGZvdW5kPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhlbWVfaWQsJHR5cGUsJG5hbWUpKTtpZighJGZvdW5kKXskaW5zZXJ0PXRydWU7fWJyZWFrO2Nhc2UgJ2ZpbGUnOiRxdWVyeT0iU0VMRUNUIGNvdW50KDEpIEZST00gIi5TRF9FWFBPUlRTLiJfY29tcCBXSEVSRSB0aGVtZV9pZCA9ID8gQU5EIHR5cGUgPT8gQU5EIG5hbWUgPSA/IEFORCBsb2NhdGlvbiA9ID8iOyRmb3VuZD0kZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoZW1lX2lkLCR0eXBlLCRuYW1lLCRsb2NhdGlvbikpO2lmKCEkZm91bmQpeyRpbnNlcnQ9dHJ1ZTt9YnJlYWs7fWlmKCRpbnNlcnQpeyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9FWFBPUlRTLiJfY29tcCAodGhlbWVfaWQsIHR5cGUsIHN5c3RlbV9pZCwgbmFtZSwgbW9kdWxlLCBsb2NhdGlvbikgVkFMVUVTICg/LD8sPyw/LD8sPykiOyRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoZW1lX2lkLCR0eXBlLCRzeXN0ZW1faWQsJG5hbWUsJG1vZHVsZSwkbG9jYXRpb24pKTt9cmV0dXJuIHRydWU7fWZ1bmN0aW9uIGNoZWNrUGFnZSgkcGFnZV9oaWVyYXJjaHksJGZvdW5kX3BhZ2VzKXtnbG9iYWwgJGRiLCRnQ21zOyRwYXRocz1hcnJheSgpOyRwYXJlbnRzPWFycmF5KCk7Zm9yZWFjaCgkZm91bmRfcGFnZXMgYXMgJHBhZ2UpeyRwYXJlbnRzW109JHBhZ2VbJ2hpZXJhcmNoeV9wYXRoJ107fSRxdWVyeT0iU0VMRUNUIGhpZXJhcmNoeV9wYXRoIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQiOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTt3aGlsZSgkZGJyZXN1bHQmJiRyb3c9JGRicmVzdWx0LT5GZXRjaFJvdygpKXskcGF0aHNbXT0kcm93WydoaWVyYXJjaHlfcGF0aCddO30kcGF0aHM9YXJyYXlfdW5pcXVlKCRwYXRocyk7JHBhcmVudHM9YXJyYXlfdW5pcXVlKCRwYXJlbnRzKTskcGFyZW50PXN1YnN0cigkcGFnZV9oaWVyYXJjaHksMCxzdHJycG9zKCRwYWdlX2hpZXJhcmNoeSwnLycsLTIpKTtpZihpbl9hcnJheSgkcGFnZV9oaWVyYXJjaHksJHBhdGhzKSl7cmV0dXJuICdjYXV0aW9uJzt9ZWxzZSBpZihpbl9hcnJheSgkcGFyZW50LCRwYXRocyl8fGVtcHR5KCRwYXJlbnQpfHxpbl9hcnJheSgkcGFyZW50LCRwYXJlbnRzKSl7cmV0dXJuICduZXcnO31lbHNle3JldHVybiAnZmFsc2UnO319aWYoIWlzc2V0KCRwYXJhbXNbJ3N0ZXAnXSkpeyRzdGVwPTE7fWVsc2V7JHN0ZXA9JHBhcmFtc1snc3RlcCddO31pZigkc3RlcD09MSYmZW1wdHkoJF9GSUxFU1skaWQuJ2ltcG9ydGZpbGUnXSkpeyRtZXNzPSdub2ZpbGUnOyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+JG1lc3MsJ2FjdGl2ZV90YWInPT4naW1wb3J0RXhwb3J0Jyk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTt9ZWxzZWlmKCRzdGVwPT0xJiYhZW1wdHkoJF9GSUxFU1skaWQuJ2ltcG9ydGZpbGUnXSkpeyR0bXBfbmFtZT0kX0ZJTEVTWyRpZC4naW1wb3J0ZmlsZSddWyd0bXBfbmFtZSddOyR4bWxfZmlsZT0kY29uZmlnWydwcmV2aWV3c19wYXRoJ10uRElSRUNUT1JZX1NFUEFSQVRPUi4kX0ZJTEVTWyRpZC4naW1wb3J0ZmlsZSddWyduYW1lJ107aWYoIW1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUsJHhtbF9maWxlKSl7JG1lc3M9J3VwbG9hZGZhaWxlZCc7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4kbWVzcywnYWN0aXZlX3RhYic9PidpbXBvcnRFeHBvcnQnKTskdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpO30kX1NFU1NJT05bJ3htbF9maWxlJ109JHhtbF9maWxlO31lbHNleyR4bWxfZmlsZT0kX1NFU1NJT05bJ3htbF9maWxlJ107fSR4bWxfYXJyYXk9eG1sX3BhcnNlX2ludG9fYXNzb2MoJHhtbF9maWxlKTskc21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCR0aGlzLT5MYW5nKCd0aXRsZV9pbXBvcnRfc3RlcCcuJHN0ZXApKTskc21hcnR5LT5hc3NpZ24oJ2hlbHBfc2VjdGlvbicsJHRoaXMtPkxhbmcoJ2hlbHBfaW1wb3J0X3N0ZXAnLiRzdGVwKSk7JElORk89JHhtbF9hcnJheVsicGFja2FnZSJdWyJpbmZvcyJdO2lmKCFpc3NldCgkSU5GT1snYXV0aG9ybmFtZSddKSl7JElORk9bJ2F1dGhvcm5hbWUnXT0iIjt9aWYoIWlzc2V0KCRJTkZPWydub3RlcyddKSl7JElORk9bJ25vdGVzJ109IiI7fWlmKGlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsidGVtcGxhdGVzIl0pKXskZm91bmRfdGVtcGxhdGVzPWlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsidGVtcGxhdGVzIl1bInRlbXBsYXRlIl1bMF0pPyR4bWxfYXJyYXlbInBhY2thZ2UiXVsidGVtcGxhdGVzIl1bInRlbXBsYXRlIl06JHhtbF9hcnJheVsicGFja2FnZSJdWyJ0ZW1wbGF0ZXMiXTt9ZWxzZXskZm91bmRfdGVtcGxhdGVzPWFycmF5KCk7fWlmKGlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsic3R5bGVzaGVldHMiXSkpeyRmb3VuZF9zdHlsZXM9aXNzZXQoJHhtbF9hcnJheVsicGFja2FnZSJdWyJzdHlsZXNoZWV0cyJdWyJjc3MiXVswXSk/JHhtbF9hcnJheVsicGFja2FnZSJdWyJzdHlsZXNoZWV0cyJdWyJjc3MiXTokeG1sX2FycmF5WyJwYWNrYWdlIl1bInN0eWxlc2hlZXRzIl07fWVsc2V7JGZvdW5kX3N0eWxlcz1hcnJheSgpO31pZihpc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bImFzc29jcyJdKSl7JGZvdW5kX2Fzc29jcz1pc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bImFzc29jcyJdWyJhc3NvYyJdWzBdKT8keG1sX2FycmF5WyJwYWNrYWdlIl1bImFzc29jcyJdWyJhc3NvYyJdOiR4bWxfYXJyYXlbInBhY2thZ2UiXVsiYXNzb2NzIl07fWVsc2V7JGZvdW5kX2Fzc29jcz1hcnJheSgpO31pZihpc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bInBhZ2VzIl0pKXskZm91bmRfcGFnZXM9aXNzZXQoJHhtbF9hcnJheVsicGFja2FnZSJdWyJwYWdlcyJdWyJwYWdlIl1bMF0pPyR4bWxfYXJyYXlbInBhY2thZ2UiXVsicGFnZXMiXVsicGFnZSJdOiR4bWxfYXJyYXlbInBhY2thZ2UiXVsicGFnZXMiXTt9ZWxzZXskZm91bmRfcGFnZXM9YXJyYXkoKTt9aWYoaXNzZXQoJHhtbF9hcnJheVsicGFja2FnZSJdWyJtb2R1bGVfdGVtcGxhdGVzIl0pKXskZm91bmRfbW9kdWxlX3RwbHM9aXNzZXQoJHhtbF9hcnJheVsicGFja2FnZSJdWyJtb2R1bGVfdGVtcGxhdGVzIl1bIm1vZHVsZV90ZW1wbGF0ZSJdWzBdKT8keG1sX2FycmF5WyJwYWNrYWdlIl1bIm1vZHVsZV90ZW1wbGF0ZXMiXVsibW9kdWxlX3RlbXBsYXRlIl06JHhtbF9hcnJheVsicGFja2FnZSJdWyJtb2R1bGVfdGVtcGxhdGVzIl07fWVsc2V7JGZvdW5kX21vZHVsZV90cGxzPWFycmF5KCk7fWlmKGlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsiaHRtbGJsb2JzIl0pKXskZm91bmRfYmxvY2tzPWlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsiaHRtbGJsb2JzIl1bImh0bWxibG9iIl1bMF0pPyR4bWxfYXJyYXlbInBhY2thZ2UiXVsiaHRtbGJsb2JzIl1bImh0bWxibG9iIl06JHhtbF9hcnJheVsicGFja2FnZSJdWyJodG1sYmxvYnMiXTt9ZWxzZXskZm91bmRfYmxvY2tzPWFycmF5KCk7fWlmKGlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsidXNlcnBsdWdpbnMiXSkpeyRmb3VuZF91ZHRzPWlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsidXNlcnBsdWdpbnMiXVsidXNlcnBsdWdpbiJdWzBdKT8keG1sX2FycmF5WyJwYWNrYWdlIl1bInVzZXJwbHVnaW5zIl1bInVzZXJwbHVnaW4iXTokeG1sX2FycmF5WyJwYWNrYWdlIl1bInVzZXJwbHVnaW5zIl07fWVsc2V7JGZvdW5kX3VkdHM9YXJyYXkoKTt9aWYoaXNzZXQoJHhtbF9hcnJheVsicGFja2FnZSJdWyJmaWxlcyJdKSl7JGZvdW5kX2ZpbGVzPWlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsiZmlsZXMiXVsiZmlsZSJdWzBdKT8keG1sX2FycmF5WyJwYWNrYWdlIl1bImZpbGVzIl1bImZpbGUiXTokeG1sX2FycmF5WyJwYWNrYWdlIl1bImZpbGVzIl07fWVsc2V7JGZvdW5kX2ZpbGVzPWFycmF5KCk7fWlmKGlzc2V0KCR4bWxfYXJyYXlbInBhY2thZ2UiXVsic2V0dGluZ3MiXSkpeyRmb3VuZF9zZXR0aW5ncz1pc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bInNldHRpbmdzIl1bInNldHRpbmciXVswXSk/JHhtbF9hcnJheVsicGFja2FnZSJdWyJzZXR0aW5ncyJdWyJzZXR0aW5nIl06JHhtbF9hcnJheVsicGFja2FnZSJdWyJzZXR0aW5ncyJdO31lbHNleyRmb3VuZF9zZXR0aW5ncz1hcnJheSgpO31pZihpc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bIm1vZHVsZXZlcnNpb25zIl0pKXskZm91bmRfbW9kdWxlcz1pc3NldCgkeG1sX2FycmF5WyJwYWNrYWdlIl1bIm1vZHVsZXZlcnNpb25zIl1bIm1vZHVsZXZlcnNpb24iXVswXSk/JHhtbF9hcnJheVsicGFja2FnZSJdWyJtb2R1bGV2ZXJzaW9ucyJdWyJtb2R1bGV2ZXJzaW9uIl06JHhtbF9hcnJheVsicGFja2FnZSJdWyJtb2R1bGV2ZXJzaW9ucyJdO31lbHNleyRmb3VuZF9tb2R1bGVzPWFycmF5KCk7fXN3aXRjaCgkc3RlcCl7Y2FzZSAxOmZvcmVhY2goJElORk8gYXMgJGxhYmVsPT4kdmFsdWUpeyRzbWFydHktPmFzc2lnbigncHJvbXB0XycuJGxhYmVsLCR0aGlzLT5MYW5nKCdwcm9tcHRfJy4kbGFiZWwpKTskc21hcnR5LT5hc3NpZ24oJ2lucHV0XycuJGxhYmVsLGlzc2V0KCR2YWx1ZSk/JHZhbHVlOicnKTt9JHNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfdmVyc2lvbnMnLCRmb3VuZF9tb2R1bGVzKTskc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX3RlbXBsYXRlcycsJGZvdW5kX3RlbXBsYXRlcyk7JHNtYXJ0eS0+YXNzaWduKCdmb3VuZF9zdHlsZXMnLCRmb3VuZF9zdHlsZXMpOyRzbWFydHktPmFzc2lnbignZm91bmRfcGFnZXMnLCRmb3VuZF9wYWdlcyk7JHNtYXJ0eS0+YXNzaWduKCdmb3VuZF9tb2R1bGVzJywkZm91bmRfbW9kdWxlX3RwbHMpOyRzbWFydHktPmFzc2lnbignZm91bmRfYmxvY2tzJywkZm91bmRfYmxvY2tzKTskc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX3VkdHMnLCRmb3VuZF91ZHRzKTskc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX2ZpbGVzJywkZm91bmRfZmlsZXMpOyRzbWFydHktPmFzc2lnbignZm91bmRfc2V0dGluZ3MnLCRmb3VuZF9zZXR0aW5ncyk7YnJlYWs7Y2FzZSAyOmlmKCRHTE9CQUxTWydDTVNfVkVSU0lPTiddIT0kSU5GT1snY21zbXN2ZXJzaW9uJ10peyRzbWFydHktPmFzc2lnbignY21zbXNTdGF0JywkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmJykpOyRzbWFydHktPmFzc2lnbignY2hlY2tfY21zbXN2ZXJzaW9uJywkR0xPQkFMU1snQ01TX1ZFUlNJT04nXS4kdGhpcy0+TGFuZygncmVjb21tZW5kZWQnLCc8ZW0+JywkSU5GT1snY21zbXN2ZXJzaW9uJ10sJzwvZW0+JykpO31lbHNleyRzbWFydHktPmFzc2lnbignY21zbXNTdGF0JywkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJyxsYW5nKCdPSycpKSk7JHNtYXJ0eS0+YXNzaWduKCdjaGVja19jbXNtc3ZlcnNpb24nLCRJTkZPWydjbXNtc3ZlcnNpb24nXSk7fWlmKCR0aGlzLT5HZXRWZXJzaW9uKCkhPSRJTkZPWydzZHZlcnNpb24nXSl7JHNtYXJ0eS0+YXNzaWduKCdTRFN0YXQnLCRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vd2FybmluZy5naWYnKSk7JHNtYXJ0eS0+YXNzaWduKCdjaGVja19zZHZlcnNpb24nLCR0aGlzLT5HZXRWZXJzaW9uKCkuJHRoaXMtPkxhbmcoJ3JlY29tbWVuZGVkJywnPGVtPicsJElORk9bJ3NkdmVyc2lvbiddLCc8L2VtPicpKTt9ZWxzZXskc21hcnR5LT5hc3NpZ24oJ1NEU3RhdCcsJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsbGFuZygnT0snKSkpOyRzbWFydHktPmFzc2lnbignY2hlY2tfc2R2ZXJzaW9uJywkSU5GT1snc2R2ZXJzaW9uJ10pO30kZm9vPWFycmF5KCk7Zm9yZWFjaCgkZm91bmRfbW9kdWxlcyBhcyAkbW9kdWxlKXskdGVzdD1DbXNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCRtb2R1bGVbJ25hbWUnXSk7aWYoISR0ZXN0KXskbW9kdWxlWydzdGF0J109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnKTskbW9kdWxlWydpbmZvJ109JHRoaXMtPkxhbmcoJ3JlcXVpcmVkJywnPGVtPicsJG1vZHVsZVsndmVyc2lvbiddLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJzwvZW0+Jyk7fWVsc2VpZih2ZXJzaW9uX2NvbXBhcmUoJG1vZHVsZVsndmVyc2lvbiddLCR0ZXN0LT5HZXRWZXJzaW9uKCRtb2R1bGVbJ25hbWUnXSkpPjApeyRtb2R1bGVbJ3N0YXQnXT0kZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmJyk7JG1vZHVsZVsnaW5zdGFsbGVkX3ZlcnNpb24nXT0kdGVzdC0+R2V0VmVyc2lvbigkbW9kdWxlWyduYW1lJ10pOyRtb2R1bGVbJ2luZm8nXT0kdGhpcy0+TGFuZygncmVjb21tZW5kZWQnLCc8ZW0+JywkbW9kdWxlWyd2ZXJzaW9uJ10sJzwvZW0+Jyk7fWVsc2V7JG1vZHVsZVsnc3RhdCddPSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCR0aGlzLT5MYW5nKCdzdWNjZXNzJykpOyRtb2R1bGVbJ2luc3RhbGxlZF92ZXJzaW9uJ109JHRlc3QtPkdldFZlcnNpb24oJG1vZHVsZVsnbmFtZSddKTskbW9kdWxlWydpbmZvJ109Jyc7fWFycmF5X3B1c2goJGZvbywkbW9kdWxlKTt9JHNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfdmVyc2lvbnMnLCRmb28pO2JyZWFrO2Nhc2UgMzokdGVtcGxhdGVvcHM9JiRnQ21zLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKTskZm9vPWFycmF5KCk7Zm9yZWFjaCgkZm91bmRfdGVtcGxhdGVzIGFzICR0ZW1wbGF0ZSl7aWYoJHRlbXBsYXRlb3BzLT5DaGVja0V4aXN0aW5nVGVtcGxhdGVOYW1lKCR0ZW1wbGF0ZVsndGVtcGxhdGVfbmFtZSddKSl7JHRlbXBsYXRlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS93YXJuaW5nLmdpZicsJHRoaXMtPkxhbmcoJ3dhcm5pbmcnKSk7fWVsc2V7JHRlbXBsYXRlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJHRoaXMtPkxhbmcoJ3N1Y2Nlc3MnKSk7fWFycmF5X3B1c2goJGZvbywkdGVtcGxhdGUpO30kc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX3RlbXBsYXRlcycsJGZvbyk7JHN0eWxlb3BzPSYkZ0Ntcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTskZm9vPWFycmF5KCk7Zm9yZWFjaCgkZm91bmRfc3R5bGVzIGFzICRzdHlsZSl7aWYoJHN0eWxlb3BzLT5DaGVja0V4aXN0aW5nU3R5bGVzaGVldE5hbWUoJHN0eWxlWydjc3NfbmFtZSddKSl7JHN0eWxlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS93YXJuaW5nLmdpZicsJHRoaXMtPkxhbmcoJ3dhcm5pbmcnKSk7fWVsc2V7JHN0eWxlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJHRoaXMtPkxhbmcoJ3N1Y2Nlc3MnKSk7fWFycmF5X3B1c2goJGZvbywkc3R5bGUpO30kc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX3N0eWxlcycsJGZvbyk7JGZvbz1hcnJheSgpO2ZvcmVhY2goJGZvdW5kX3BhZ2VzIGFzICRwYWdlKXskY2hlY2s9Y2hlY2tQYWdlKCRwYWdlWydoaWVyYXJjaHlfcGF0aCddLCRmb3VuZF9wYWdlcyk7c3dpdGNoKCRjaGVjayl7Y2FzZSAnbmV3JzokcGFnZVsnaW5mbyddPSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCR0aGlzLT5MYW5nKCdzdWNjZXNzJykpO2JyZWFrO2Nhc2UgJ2NhdXRpb24nOiRwYWdlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS93YXJuaW5nLmdpZicsJHRoaXMtPkxhbmcoJ3dhcm5pbmcnKSk7YnJlYWs7Y2FzZSAnZmFsc2UnOiRwYWdlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTticmVhazt9YXJyYXlfcHVzaCgkZm9vLCRwYWdlKTt9JHNtYXJ0eS0+YXNzaWduKCdmb3VuZF9wYWdlcycsJGZvbyk7JGZvbz1hcnJheSgpO2ZvcmVhY2goJGZvdW5kX21vZHVsZV90cGxzIGFzICRtb2R1bGUpe2lmKCR0aGlzLT5HZXRUZW1wbGF0ZSgkbW9kdWxlWyd0ZW1wbGF0ZV9uYW1lJ10sJG1vZHVsZVsnbW9kdWxlX25hbWUnXSkpeyRtb2R1bGVbJ2luZm8nXT0kZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmJywkdGhpcy0+TGFuZygnd2FybmluZycpKTt9ZWxzZXskbW9kdWxlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJHRoaXMtPkxhbmcoJ3N1Y2Nlc3MnKSk7fWFycmF5X3B1c2goJGZvbywkbW9kdWxlKTt9JHNtYXJ0eS0+YXNzaWduKCdmb3VuZF9tb2R1bGVzJywkZm9vKTskYmxvY2tvcHM9JiRnQ21zLT5HZXRHbG9iYWxDb250ZW50T3BlcmF0aW9ucygpOyRmb289YXJyYXkoKTtmb3JlYWNoKCRmb3VuZF9ibG9ja3MgYXMgJGJsb2NrKXtpZigkYmxvY2tvcHMtPkNoZWNrRXhpc3RpbmdIdG1sQmxvYk5hbWUoJGJsb2NrWydodG1sYmxvYl9uYW1lJ10pKXskYmxvY2tbJ2luZm8nXT0kZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmJywkdGhpcy0+TGFuZygnd2FybmluZycpKTt9ZWxzZXskYmxvY2tbJ2luZm8nXT0kZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywkdGhpcy0+TGFuZygnc3VjY2VzcycpKTt9YXJyYXlfcHVzaCgkZm9vLCRibG9jayk7fSRzbWFydHktPmFzc2lnbignZm91bmRfYmxvY2tzJywkZm9vKTskdWR0b3BzPSYkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTskZm9vPWFycmF5KCk7Zm9yZWFjaCgkZm91bmRfdWR0cyBhcyAkdWR0KXtpZigkdWR0b3BzLT5HZXRVc2VyVGFnKCR1ZHRbJ3VzZXJwbHVnaW5fbmFtZSddKSl7JHVkdFsnaW5mbyddPSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vd2FybmluZy5naWYnLCR0aGlzLT5MYW5nKCd3YXJuaW5nJykpO31lbHNleyR1ZHRbJ2luZm8nXT0kZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywkdGhpcy0+TGFuZygnc3VjY2VzcycpKTt9YXJyYXlfcHVzaCgkZm9vLCR1ZHQpO30kc21hcnR5LT5hc3NpZ24oJ2ZvdW5kX3VkdHMnLCRmb28pOyRmb289YXJyYXkoKTtmb3JlYWNoKCRmb3VuZF9maWxlcyBhcyAkZmlsZSl7aWYoZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJGZpbGVbJ2xvY2F0aW9uJ10pKXskZmlsZVsnaW5mbyddPSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vd2FybmluZy5naWYnLCR0aGlzLT5MYW5nKCd3YXJuaW5nJykpO31lbHNleyRmaWxlWydpbmZvJ109JGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJHRoaXMtPkxhbmcoJ3N1Y2Nlc3MnKSk7fWFycmF5X3B1c2goJGZvbywkZmlsZSk7fSRzbWFydHktPmFzc2lnbignZm91bmRfZmlsZXMnLCRmb28pO2JyZWFrO2Nhc2UgNDokcmVwb3J0PScnOyRxdWVyeT0iU0VMRUNUIGlkIEZST00gIi5TRF9FWFBPUlRTLiIgV0hFUkUgbmFtZT0/IjskcGFja2FnZV9pZD0kZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJElORk9bJ3BhY2thZ2VuYW1lJ10pKTtpZighJHBhY2thZ2VfaWQpeyRwYWNrYWdlX2lkPSRkYi0+R2VuSUQoU0RfRVhQT1JUUy4iX3NlcSIpOyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9FWFBPUlRTLiIgKGlkLCBuYW1lLCBub3RlcywgdmVyc2lvbiwgYXV0aG9yKSB2YWx1ZXMgKD8sPyw/LD8sPykiOyRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhY2thZ2VfaWQsJElORk9bJ3BhY2thZ2VuYW1lJ10sJElORk9bJ25vdGVzJ10sJElORk9bJ3BhY2thZ2V2ZXJzaW9uJ10sJElORk9bJ2F1dGhvcm5hbWUnXSkpO31lbHNleyRxdWVyeT0iVVBEQVRFICIuU0RfRVhQT1JUUy4iIFNFVCBub3RlcyA9ID8sIHZlcnNpb24gPSA/LCBhdXRob3IgPSA/IFdIRVJFIGlkID0gPyI7JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkSU5GT1snbm90ZXMnXSwkSU5GT1sncGFja2FnZXZlcnNpb24nXSwkSU5GT1snYXV0aG9ybmFtZSddLCRwYWNrYWdlX2lkKSk7fSRyZXBvcnQuPSc8aDM+Jy4kbW9kLT5MYW5nKCdUTVAnKS4nPC9oMz4nOyR0ZW1wbGF0ZW9wcz0mJGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpO2ZvcmVhY2goJGZvdW5kX3RlbXBsYXRlcyBhcyAkdGVtcGxhdGUpeyR0cGw9bmV3IFRlbXBsYXRlKCk7JHRwbC0+bmFtZT0kdGVtcGxhdGVbJ3RlbXBsYXRlX25hbWUnXTskdHBsLT5jb250ZW50PSR0ZW1wbGF0ZVsndGVtcGxhdGVfY29udGVudCddOyR0cGwtPmFjdGl2ZT0xO2lmKCR0ZW1wbGF0ZW9wcy0+Q2hlY2tFeGlzdGluZ1RlbXBsYXRlTmFtZSgkdGVtcGxhdGVbJ3RlbXBsYXRlX25hbWUnXSkpeyR0ZW1wbGF0ZW9wcy0+VXBkYXRlVGVtcGxhdGUoJHRwbCk7JHRwbF9pZD1nZXRUZW1wbGF0ZUlkQnlOYW1lKCR0ZW1wbGF0ZVsndGVtcGxhdGVfbmFtZSddKTskdHlwZT0kbW9kLT5MYW5nKCd1cGdyYWRlZCcpO31lbHNleyR0cGxfaWQ9JHRlbXBsYXRlb3BzLT5JbnNlcnRUZW1wbGF0ZSgkdHBsKTskdHlwZT0kbW9kLT5MYW5nKCdpbnN0YWxsZWQnKTt9JHRlc3Q9cHJvY2Vzc0ltcG9ydCgkcGFja2FnZV9pZCwndGVtcGxhdGUnLCR0ZW1wbGF0ZVsndGVtcGxhdGVfbmFtZSddLCR0cGxfaWQpOyRuYW1lPSR0ZW1wbGF0ZVsndGVtcGxhdGVfbmFtZSddLicgKCcuJHRwbF9pZC4nKSc7JHJlcG9ydC49JHRlc3Q/JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19wYXNzZWQnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk6JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19mYWlsJywnPHN0cm9uZz4nLCR0eXBlLCc8L3N0cm9uZz4nLCc8YnIvPicpO30kcmVwb3J0Lj0nPGgzPicuJG1vZC0+TGFuZygnQ1NTJykuJzwvaDM+Jzskc3R5bGVvcHM9JiRnQ21zLT5HZXRTdHlsZXNoZWV0T3BlcmF0aW9ucygpO2ZvcmVhY2goJGZvdW5kX3N0eWxlcyBhcyAkc3R5bGUpeyRzdGw9bmV3IFN0eWxlc2hlZXQoKTskc3RsLT5uYW1lPSRzdHlsZVsnY3NzX25hbWUnXTskc3RsLT52YWx1ZT0kc3R5bGVbJ2Nzc190ZXh0J107JHN0bC0+bWVkaWFfdHlwZT1pc3NldCgkc3R5bGVbJ21lZGlhX3R5cGUnXSk/JHN0eWxlWydtZWRpYV90eXBlJ106Jyc7aWYoJHN0eWxlb3BzLT5DaGVja0V4aXN0aW5nU3R5bGVzaGVldE5hbWUoJHN0eWxlWydjc3NfbmFtZSddKSl7JHN0eWxlb3BzLT5VcGRhdGVTdHlsZXNoZWV0KCRzdGwpOyRxdWVyeT0iU0VMRUNUIGNzc19pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjc3MgV0hFUkUgY3NzX25hbWUgPSA/IjskY3NzX2lkPSRkYi0+Z2V0T25lKCRxdWVyeSxhcnJheSgkc3R5bGVbJ2Nzc19uYW1lJ10pKTskdHlwZT0kbW9kLT5MYW5nKCd1cGdyYWRlZCcpO31lbHNleyRjc3NfaWQ9JHN0eWxlb3BzLT5JbnNlcnRTdHlsZXNoZWV0KCRzdGwpOyR0eXBlPSRtb2QtPkxhbmcoJ2luc3RhbGxlZCcpO30kdGVzdD1wcm9jZXNzSW1wb3J0KCRwYWNrYWdlX2lkLCdzdHlsZScsJHN0eWxlWydjc3NfbmFtZSddLCRjc3NfaWQpOyRuYW1lPSRzdHlsZVsnY3NzX25hbWUnXS4nICgnLiRjc3NfaWQuJyknOyRyZXBvcnQuPSR0ZXN0PyRuYW1lLicgJy4kbW9kLT5MYW5nKCdfcGFzc2VkJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpOiRuYW1lLicgJy4kbW9kLT5MYW5nKCdfZmFpbCcsJzxzdHJvbmc+JywkdHlwZSwnPC9zdHJvbmc+JywnPGJyLz4nKTt9JHJlcG9ydC49Jy0tLS0tPGJyLz5hc3NvY2lhdGUgc3R5bGVzaGVldCB0byB0ZW1wbGF0ZXM8YnIvPi0tLS0tLS08YnIvPic7Zm9yZWFjaCgkZm91bmRfYXNzb2NzIGFzICRhc3NvYyl7JHRwbF9pZD1nZXRUZW1wbGF0ZUlkQnlOYW1lKCRhc3NvY1sndGVtcGxhdGVfbmFtZSddKTskcXVlcnk9IlNFTEVDVCBjc3NfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY3NzIFdIRVJFIGNzc19uYW1lID0gPyI7JGNzc19pZD0kZGItPmdldE9uZSgkcXVlcnksYXJyYXkoJGFzc29jWydjc3NfbmFtZSddKSk7JHF1ZXJ5PSJTRUxFQ1QgY291bnQoMSkgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY3NzX2Fzc29jIFdIRVJFIGFzc29jX3RvX2lkID0gPyBBTkQgYXNzb2NfY3NzX2lkID0gPyI7JGZvdW5kPSRkYi0+Z2V0T25lKCRxdWVyeSxhcnJheSgkdHBsX2lkLCRjc3NfaWQpKTskdGVzdD1mYWxzZTtpZighJGZvdW5kKXskdGVzdD0kc3R5bGVvcHMtPkFzc29jaWF0ZVN0eWxlc2hlZXRUb1RlbXBsYXRlKCRjc3NfaWQsJHRwbF9pZCk7fSRuYW1lPSRhc3NvY1sndGVtcGxhdGVfbmFtZSddLicgKCcuJHRwbF9pZC4nKSAtPiAnLiRhc3NvY1snY3NzX25hbWUnXS4nICgnLiRjc3NfaWQuJyknOyR0eXBlPScnOyRyZXBvcnQuPSR0ZXN0PyRuYW1lLicgJy4kbW9kLT5MYW5nKCdfcGFzc2VkJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpOiRuYW1lLicgJy4kbW9kLT5MYW5nKCdfZmFpbCcsJzxzdHJvbmc+JywkdHlwZSwnPC9zdHJvbmc+JywnPGJyLz4nKTt9JHJlcG9ydC49JzxoMz4nLiRtb2QtPkxhbmcoJ01PRFRFTVBMQVRFJykuJzwvaDM+Jztmb3JlYWNoKCRmb3VuZF9tb2R1bGVfdHBscyBhcyAkbW9kdWxlKXtpZihDbXNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCRtb2R1bGVbJ21vZHVsZV9uYW1lJ10pKXskbW9kLT5TZXRUZW1wbGF0ZSgkbW9kdWxlWyd0ZW1wbGF0ZV9uYW1lJ10sJG1vZHVsZVsnY29udGVudCddLCRtb2R1bGVbJ21vZHVsZV9uYW1lJ10pOyR0ZXN0PXByb2Nlc3NJbXBvcnQoJHBhY2thZ2VfaWQsJ21vZHVsZScsJG1vZHVsZVsndGVtcGxhdGVfbmFtZSddLCcnLCRtb2R1bGVbJ21vZHVsZV9uYW1lJ10pOyRuYW1lPSRtb2R1bGVbJ3RlbXBsYXRlX25hbWUnXS4nICgnLiRtb2R1bGVbJ21vZHVsZV9uYW1lJ10uJyknOyR0eXBlPSRtb2QtPkxhbmcoJ2luc3RhbGxlZCcpOyRyZXBvcnQuPSR0ZXN0PyRuYW1lLicgJy4kbW9kLT5MYW5nKCdfcGFzc2VkJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpOiRuYW1lLicgJy4kbW9kLT5MYW5nKCdfZmFpbCcsJzxzdHJvbmc+JywkdHlwZSwnPC9zdHJvbmc+JywnPGJyLz4nKTt9ZWxzZXskbW9tYT1DbXNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCdNb2R1bGVNYW5hZ2VyJyk7JGFsbG1vZHM9JG1vbWEtPl9HZXRSZXBvc2l0b3J5TW9kdWxlcygnJyxmYWxzZSk7JGRlcHM9YXJyYXkoKTtmb3JlYWNoKCRhbGxtb2RzWzFdYXMgJHRoaXNfbW9kKXtpZigkbW9kdWxlWydtb2R1bGVfbmFtZSddPT0kdGhpc19tb2RbJ25hbWUnXSl7Zm9yZWFjaCgkZm91bmRfbW9kdWxlcyBhcyAkbW9kSVMpe2lmKCRtb2RJU1sndmVyc2lvbiddPT0kdGhpc19tb2RbJ3ZlcnNpb24nXSl7JGRlcHNbXT1hcnJheSgnbmFtZSc9PiR0aGlzX21vZFsnbmFtZSddLCd2ZXJzaW9uJz0+JHRoaXNfbW9kWyd2ZXJzaW9uJ10sJ2ZpbGVuYW1lJz0+JHRoaXNfbW9kWydmaWxlbmFtZSddLCdieSc9PicnLCdzaXplJz0+JHRoaXNfbW9kWydzaXplJ10pO319fX0kZGVwcz0kbW9tYS0+X0RlRHVwZURlcGVuZGVuY2llcygkZGVwcyk7JG1vbWEtPl9EZXRlcm1pbmVVbmZ1bGZpbGxlZERlcGVuZGVuY2llcygkZGVwcyk7JHBhcmFtc1snbW9kbGlzdCddPWJhc2U2NF9lbmNvZGUoc2VyaWFsaXplKCRkZXBzKSk7QHNldF90aW1lX2xpbWl0KDk5OSk7JGluc3RhbGxzPWFycmF5X3JldmVyc2UodW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcGFyYW1zWydtb2RsaXN0J10pKSk7JHVybD0kbW9tYS0+R2V0UHJlZmVyZW5jZSgnbW9kdWxlX3JlcG9zaXRvcnknKTtpZigkdXJsPT0nJyl7JHR5cGU9JG1vbWEtPkxhbmcoJ2Vycm9yX25vcmVwb3NpdG9yeXVybCcpO30kbnVzb2FwPUNtc01vZHVsZTo6R2V0TW9kdWxlSW5zdGFuY2UoJ251U09BUCcpOyRudXNvYXAtPkxvYWQoKTskbnVfc29hcGNsaWVudD1uZXcgbnVfc29hcGNsaWVudCgkdXJsLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLDkwLDkwKTtpZigkZXJyPSRudV9zb2FwY2xpZW50LT5HZXRFcnJvcigpKXskdHlwZT0kbW9tYS0+TGFuZygnc29hcGVycm9yJywkZXJyKTt9JG1lc3NhZ2VzPWFycmF5KCk7JG9rPXRydWU7Zm9yZWFjaCgkaW5zdGFsbHMgYXMgJHRoaXNfaW5zdCl7JHRoaXNSZXM9bmV3IHN0ZENsYXNzKCk7JHRoaXNSZXMtPnN1Y2Nlc3M9ZmFsc2U7JHRoaXNSZXMtPm1vZHVsZV9uYW1lPSR0aGlzX2luc3RbJ25hbWUnXTtpZigkb2spe2lmKCR0aGlzX2luc3RbJ3N0YXR1cyddPT0nYScpeyRxdWVyeT0iVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVzIFNFVCBhY3RpdmUgPSA/IFdIRVJFIG1vZHVsZV9uYW1lID0gPyI7JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgxLCR0aGlzX2luc3RbJ25hbWUnXSkpOyR0aGlzUmVzLT5tZXNzYWdlPSRtb21hLT5MYW5nKCdhY3Rpb25fYWN0aXZhdGVkJywkdGhpc19pbnN0WyduYW1lJ10pOyR0aGlzUmVzLT5zdWNjZXNzPXRydWU7fWVsc2UgaWYoJHRoaXNfaW5zdFsnc3RhdHVzJ109PSd1Jyl7bGlzdCgkc3VjY2VzcywkbXNncyk9JG1vbWEtPl9Eb0luc3RhbGxPcGVyYXRpb24oJHRoaXNfaW5zdCwkbnVfc29hcGNsaWVudCx0cnVlKTtpZighJHN1Y2Nlc3MpeyRvaz1mYWxzZTt9ZWxzZXskdGhpc1Jlcy0+c3VjY2Vzcz10cnVlO30kdGhpc1Jlcy0+bWVzc2FnZT0kbXNnczt9ZWxzZSBpZigkdGhpc19pbnN0WydzdGF0dXMnXT09J2knKXtsaXN0KCRzdWNjZXNzLCRtc2dzKT0kbW9tYS0+X0RvSW5zdGFsbE9wZXJhdGlvbigkdGhpc19pbnN0LCRudV9zb2FwY2xpZW50LGZhbHNlKTtpZighJHN1Y2Nlc3MpeyRvaz1mYWxzZTt9ZWxzZXskdGhpc1Jlcy0+c3VjY2Vzcz10cnVlO30kdGhpc1Jlcy0+bWVzc2FnZT0kbXNnczt9fWVsc2V7JHRoaXNSZXMtPm1lc3NhZ2U9JG1vbWEtPkxhbmcoJ2Vycm9yX3NraXBwaW5nJywkdGhpc19pbnN0WyduYW1lJ10pO31pZigkdGhpc19pbnN0WydzdGF0dXMnXSE9J3MnKXskbWVzc2FnZXNbXT0kdGhpc1Jlczt9fWlmKCRvayl7JHR5cGU9JG1vbWEtPkxhbmcoJ3RpdGxlX2luc3RhbGxhdGlvbl9jb21wbGV0ZScpO31lbHNleyR0eXBlPSRtb21hLT5MYW5nKCdlcnJvcl9tb2R1bGVpbnN0YWxsZmFpbGVkJyk7fSRyZXBvcnQuPSRvaz8kbmFtZS4nICcuJG1vZC0+TGFuZygnX3Bhc3NlZCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+JywkdHlwZSwnPGJyLz4nKTokbmFtZS4nICcuJG1vZC0+TGFuZygnX2ZhaWwnLCc8c3Ryb25nPicsJHR5cGUsJzwvc3Ryb25nPicsJzxici8+Jyk7JG1vZC0+U2V0VGVtcGxhdGUoJG1vZHVsZVsndGVtcGxhdGVfbmFtZSddLCRtb2R1bGVbJ2NvbnRlbnQnXSwkbW9kdWxlWydtb2R1bGVfbmFtZSddKTskdGVzdD1wcm9jZXNzSW1wb3J0KCRwYWNrYWdlX2lkLCdtb2R1bGUnLCRtb2R1bGVbJ3RlbXBsYXRlX25hbWUnXSwnJywkbW9kdWxlWydtb2R1bGVfbmFtZSddKTskbmFtZT0kbW9kdWxlWyd0ZW1wbGF0ZV9uYW1lJ10uJyAoJy4kbW9kdWxlWydtb2R1bGVfbmFtZSddLicpJzskdHlwZT0kbW9kLT5MYW5nKCdpbnN0YWxsZWQnKTskcmVwb3J0Lj0kdGVzdD8kbmFtZS4nICcuJG1vZC0+TGFuZygnX3Bhc3NlZCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+JywkdHlwZSwnPGJyLz4nKTokbmFtZS4nICcuJG1vZC0+TGFuZygnX2ZhaWwnLCc8c3Ryb25nPicsJHR5cGUsJzwvc3Ryb25nPicsJzxici8+Jyk7fX0kcmVwb3J0Lj0nPGgzPicuJG1vZC0+TGFuZygnUEcnKS4nPC9oMz4nOyRjb250ZW50b3BzPSYkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTskdXNlcmlkPWdldF91c2VyaWQoKTtmb3JlYWNoKCRmb3VuZF9wYWdlcyBhcyAkcGFnZSl7JHN0YXR1cz1jaGVja1BhZ2UoJHBhZ2VbJ2hpZXJhcmNoeV9wYXRoJ10sJGZvdW5kX3BhZ2VzKTtpZigkc3RhdHVzIT0nZmFsc2UnKXskY29udGVudG9iaj0kY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tQWxpYXMoJHBhZ2VbJ2NvbnRlbnRfYWxpYXMnXSk7aWYoISRjb250ZW50b2JqKXskY29udGVudG9iaj0kY29udGVudG9wcy0+Q3JlYXRlTmV3Q29udGVudCgkcGFnZVsndHlwZSddKTskY29udGVudG9iai0+U2V0UGFyZW50SWQoLTEpO30kY29udGVudG9iai0+U2V0TWVudVRleHQoJHBhZ2VbJ21lbnVfdGV4dCddKTskY29udGVudG9iai0+U2V0TmFtZSgkcGFnZVsnY29udGVudF9uYW1lJ10pOyRjb250ZW50b2JqLT5TZXRBbGlhcygkcGFnZVsnY29udGVudF9hbGlhcyddKTskY29udGVudG9iai0+U2V0T3duZXIoJHVzZXJpZCk7JGNvbnRlbnRvYmotPlNldENhY2hhYmxlKCRwYWdlWydjYWNoYWJsZSddKTskY29udGVudG9iai0+U2V0QWN0aXZlKDEpOyRjb250ZW50b2JqLT5TZXRTaG93SW5NZW51KCRwYWdlWydzaG93X2luX21lbnUnXSk7JGNvbnRlbnRvYmotPlNldExhc3RNb2RpZmllZEJ5KCR1c2VyaWQpOyRjb250ZW50b2JqLT5TZXRNZXRhZGF0YShpc3NldCgkcGFnZVsnbWV0YWRhdGEnXSk/JHBhZ2VbJ21ldGFkYXRhJ106JycpOyRjb250ZW50b2JqLT5TZXRUZW1wbGF0ZUlkKGdldFRlbXBsYXRlSWRCeU5hbWUoJHBhZ2VbJ3RlbXBsYXRlX25hbWUnXSkpO2ZvcmVhY2goJHBhZ2VbJ2NvbnRlbnRfcHJvcHMnXVsnY29udGVudF9wcm9wJ11hcyAkcHJvcCl7aWYoaXNzZXQoJHByb3BbJ2NvbnRlbnQnXSkpeyRjb250ZW50b2JqLT5TZXRQcm9wZXJ0eVZhbHVlKCRwcm9wWydwcm9wX25hbWUnXSwkcHJvcFsnY29udGVudCddKTt9fSR0ZXN0PSRjb250ZW50b2JqLT5TYXZlKCk7JG5hbWU9JHBhZ2VbJ2NvbnRlbnRfbmFtZSddLicgKCcuJHBhZ2VbJ2hpZXJhcmNoeV9wYXRoJ10uJyknOyR0eXBlPSRtb2QtPkxhbmcoJ2luc3RhbGxlZCcpOyRyZXBvcnQuPSR0ZXN0PyRuYW1lLicgJy4kbW9kLT5MYW5nKCdfcGFzc2VkJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpOiRuYW1lLicgJy4kbW9kLT5MYW5nKCdfZmFpbCcsJzxzdHJvbmc+JywkdHlwZSwnPC9zdHJvbmc+JywnPGJyLz4nKTt9fSRyZXBvcnQuPSctLS0tLTxici8+aGllcmFyY2h5PGJyLz4tLS0tLS0tPGJyLz4nO2ZvcmVhY2goJGZvdW5kX3BhZ2VzIGFzICRwYWdlKXskc3RhdHVzPWNoZWNrUGFnZSgkcGFnZVsnaGllcmFyY2h5X3BhdGgnXSwkZm91bmRfcGFnZXMpO2lmKCRzdGF0dXMhPSdmYWxzZScpeyRjb250ZW50b2JqPSRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21BbGlhcygkcGFnZVsnY29udGVudF9hbGlhcyddKTtpZigkY29udGVudG9iail7JHBhcmVudD1iYXNlbmFtZShzdHJfcmVwbGFjZSgkcGFnZVsnY29udGVudF9hbGlhcyddLCcnLCRwYWdlWydoaWVyYXJjaHlfcGF0aCddKSk7JGNvbnRlbnRvYmotPlNldE9sZFBhcmVudElkKCRjb250ZW50b2JqLT5tUGFyZW50SWQpO2lmKCFlbXB0eSgkcGFyZW50KSl7JGNvbnRlbnRvYmotPlNldFBhcmVudElkKCRjb250ZW50b3BzLT5HZXRQYWdlSURGcm9tQWxpYXMoJHBhcmVudCkpO31lbHNleyRjb250ZW50b2JqLT5TZXRQYXJlbnRJZCgtMSk7fWlmKCRjb250ZW50b2JqLT5tUGFyZW50SWQ8PiRjb250ZW50b2JqLT5tT2xkUGFyZW50SWQpeyRjb250ZW50b2JqLT5TZXRJdGVtT3JkZXIoLTEpO30kY29udGVudG9iai0+U2V0SGllcmFyY2h5UGF0aCgkcGFnZVsnaGllcmFyY2h5X3BhdGgnXSk7JGNvbnRlbnRvYmotPlNhdmUoKTt9JHRlc3Q9cHJvY2Vzc0ltcG9ydCgkcGFja2FnZV9pZCwncGFnZScsJHBhZ2VbJ2NvbnRlbnRfYWxpYXMnXSwkY29udGVudG9iai0+bUlkKTskbmFtZT0nU2V0IGhpZXJhcmNoeSBvZiA8c3Ryb25nPicuJHBhZ2VbJ2hpZXJhcmNoeV9wYXRoJ10uJzwvc3Ryb25nPiBmb3IgPHN0cm9uZz4nLiRwYWdlWydjb250ZW50X25hbWUnXS4nPC9zdHJvbmc+IC0tICc7JHR5cGU9Jyc7JHJlcG9ydC49JHRlc3Q/JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19wYXNzZWQnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk6JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19mYWlsJywnPHN0cm9uZz4nLCR0eXBlLCc8L3N0cm9uZz4nLCc8YnIvPicpO319JGNvbnRlbnRvcHMtPlNldEFsbEhpZXJhcmNoeVBvc2l0aW9ucygpOyRyZXBvcnQuPSc8aDM+Jy4kbW9kLT5MYW5nKCdHQ0InKS4nPC9oMz4nOyRibG9ja29wcz0mJGdDbXMtPkdldEdsb2JhbENvbnRlbnRPcGVyYXRpb25zKCk7Zm9yZWFjaCgkZm91bmRfYmxvY2tzIGFzICRibG9jayl7aWYoJGJsb2Nrb3BzLT5DaGVja0V4aXN0aW5nSHRtbEJsb2JOYW1lKCRibG9ja1snaHRtbGJsb2JfbmFtZSddKSl7JGJsaz0kYmxvY2tvcHMtPkxvYWRIVE1MQmxvYkJ5TmFtZSgkYmxvY2tbJ2h0bWxibG9iX25hbWUnXSk7JGJsay0+Y29udGVudD0kYmxvY2tbJ2h0bWwnXTskYmxrLT51c2Vfd3lzaXd5Zz1pc3NldCgkYmxvY2tbJ3VzZV93eXNpd3lnJ10pPyRibG9ja1sndXNlX3d5c2l3eWcnXTowOyRibGstPmRlc2NyaXB0aW9uPWlzc2V0KCRibG9ja1snZGVzY3JpcHRpb24nXSk/JGJsb2NrWydkZXNjcmlwdGlvbiddOicnOyR0ZXN0PSRibG9ja29wcy0+VXBkYXRlSHRtbEJsb2IoJGJsayk7JHR5cGU9JG1vZC0+TGFuZygndXBncmFkZWQnKTt9ZWxzZXskYmxrPW5ldyBHbG9iYWxDb250ZW50KCk7JGJsay0+bmFtZT0kYmxvY2tbJ2h0bWxibG9iX25hbWUnXTskYmxrLT5jb250ZW50PSRibG9ja1snaHRtbCddOyRibGstPm93bmVyPSR1c2VyaWQ7JGJsay0+ZGVzY3JpcHRpb249aXNzZXQoJGJsb2NrWydkZXNjcmlwdGlvbiddKT8kYmxvY2tbJ2Rlc2NyaXB0aW9uJ106Jyc7JHRlc3Q9JGJsb2Nrb3BzLT5JbnNlcnRIdG1sQmxvYigkYmxrKTskdHlwZT0kbW9kLT5MYW5nKCdpbnN0YWxsZWQnKTt9JG5hbWU9JGJsb2NrWydodG1sYmxvYl9uYW1lJ107JHJlcG9ydC49JHRlc3Q/JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19wYXNzZWQnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk6JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19mYWlsJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpO30kcmVwb3J0Lj0nPGgzPicuJG1vZC0+TGFuZygnVURUJykuJzwvaDM+JzskdWR0b3BzPSYkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTtmb3JlYWNoKCRmb3VuZF91ZHRzIGFzICR1ZHQpeyR1ZHRvcHMtPlNldFVzZXJUYWcoJHVkdFsndXNlcnBsdWdpbl9uYW1lJ10sJHVkdFsnY29kZSddKTskdGVzdD1wcm9jZXNzSW1wb3J0KCRwYWNrYWdlX2lkLCd1ZHQnLCR1ZHRbJ3VzZXJwbHVnaW5fbmFtZSddKTskbmFtZT0kdWR0Wyd1c2VycGx1Z2luX25hbWUnXTskdHlwZT0kbW9kLT5MYW5nKCdpbnN0YWxsZWQnKTskcmVwb3J0Lj0kdGVzdD8kbmFtZS4nICcuJG1vZC0+TGFuZygnX3Bhc3NlZCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+JywkdHlwZSwnPGJyLz4nKTokbmFtZS4nICcuJG1vZC0+TGFuZygnX2ZhaWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk7fSRyZXBvcnQuPSc8aDM+Jy4kbW9kLT5MYW5nKCdGSUxFJykuJzwvaDM+Jztmb3JlYWNoKCRmb3VuZF9maWxlcyBhcyAkZmlsZSl7JHByZWZpeD1zdHJfcmVwbGFjZShiYXNlbmFtZSgkZmlsZVsnbG9jYXRpb24nXSksJycsJGZpbGVbJ2xvY2F0aW9uJ10pOyRwcmVmaXg9cHJlZ19yZXBsYWNlKCd8XC98JyxESVJFQ1RPUllfU0VQQVJBVE9SLCRwcmVmaXgpOyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7JHRlc3Q9JGZoLT5zYXZlRW5jb2RlZEZpbGUoJHRoaXMsJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiRwcmVmaXgsYmFzZW5hbWUoJGZpbGVbJ2xvY2F0aW9uJ10pLGJhc2VuYW1lKCRmaWxlWydsb2NhdGlvbiddKSx0cnVlLCRmaWxlWydlbmNvZGVkJ10pO3Byb2Nlc3NJbXBvcnQoJHBhY2thZ2VfaWQsJ2ZpbGUnLGJhc2VuYW1lKCRmaWxlWydsb2NhdGlvbiddKSwnJywnJywkZmlsZVsnbG9jYXRpb24nXSk7JG5hbWU9JGZpbGVbJ2xvY2F0aW9uJ107JHR5cGU9Jyc7JHJlcG9ydC49JHRlc3Q/JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19wYXNzZWQnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk6JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19mYWlsJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpO31mb3JlYWNoKCRmb3VuZF9zZXR0aW5ncyBhcyAkc2V0dGluZyl7JG1vZD1DbXNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCRzZXR0aW5nWydtb2R1bGVuYW1lJ10pO2lmKCRtb2QmJmlzc2V0KCRzZXR0aW5nWydzaXRlcHJlZiddKSYmaXNfYXJyYXkoJHNldHRpbmdbJ3NpdGVwcmVmJ10pKXtpZihpc3NldCgkc2V0dGluZ1snc2l0ZXByZWYnXVswXSkpe2ZvcmVhY2goJHNldHRpbmdbJ3NpdGVwcmVmJ11hcyAkc2l0ZXByZWYpeyRwcmVmPXN0cl9yZXBsYWNlKCRzZXR0aW5nWydtb2R1bGVuYW1lJ10uJ19tYXBpX3ByZWZfJywnJywkc2l0ZXByZWZbJ3NpdGVwcmVmX25hbWUnXSk7JHRlc3Q9JG1vZC0+U2V0UHJlZmVyZW5jZSgkcHJlZixpc3NldCgkc2l0ZXByZWZbJ3NpdGVwcmVmX3ZhbHVlJ10pPyRzaXRlcHJlZlsnc2l0ZXByZWZfdmFsdWUnXTonJyk7fX1lbHNleyRwcmVmPXN0cl9yZXBsYWNlKCRzZXR0aW5nWydtb2R1bGVuYW1lJ10uJ19tYXBpX3ByZWZfJywnJywkc2l0ZXByZWZbJ3NpdGVwcmVmX25hbWUnXSk7JHRlc3Q9JG1vZC0+U2V0UHJlZmVyZW5jZSgkcHJlZixpc3NldCgkc2l0ZXByZWZbJ3NpdGVwcmVmX3ZhbHVlJ10pPyRzaXRlcHJlZlsnc2l0ZXByZWZfdmFsdWUnXTonJyk7fSRuYW1lPSRzaXRlcHJlZlsnc2l0ZXByZWZfbmFtZSddLicgKCcuJHNldHRpbmdbJ21vZHVsZW5hbWUnXS4nKSc7JHR5cGU9JG1vZC0+TGFuZygnaW5zdGFsbGVkJyk7JHJlcG9ydC49JHRlc3Q/JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19wYXNzZWQnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicsJHR5cGUsJzxici8+Jyk6JG5hbWUuJyAnLiRtb2QtPkxhbmcoJ19mYWlsJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nLCR0eXBlLCc8YnIvPicpO319JHNtYXJ0eS0+YXNzaWduKCdoZWxwX3NlY3Rpb24nLCRJTkZPWydub3RlcyddKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJycpOyRzbWFydHktPmFzc2lnbigncmVwb3J0JywkcmVwb3J0KTticmVhazt9JHNtYXJ0eS0+YXNzaWduKCdzdGVwJywkc3RlcCk7JHNtYXJ0eS0+YXNzaWduKCduZXh0c3RlcCcsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RlcCcsKCRzdGVwKzEpKSk7JHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdpbXBvcnQnLCRyZXR1cm5pZCkpOyRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ2NvbnRpbnVlX2ltcG9ydCcpKSk7aWYoJHN0ZXA9PTUpeyRtZXNzPSdpbXBvcnRPayc7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4kbWVzcywnYWN0aXZlX3RhYic9PidpbXBvcnRFeHBvcnQnKTskdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpO30kc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnaW1wb3J0LnRwbCcpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.import_Script_popup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRnQ21zPWNtc21zKCk7aWYoaXNzZXQoJHBhcmFtc1snYWpheCddKSYmJHBhcmFtc1snYWpheCddPT0ibWFrZUNob2ljZSIpeyRjb25maWc9JGdDbXMtPkdldENvbmZpZygpOyRzdHlsZW9wcz0kZ0Ntcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTskc3R5bGVzPSRzdHlsZW9wcy0+TG9hZFN0eWxlc2hlZXRzKCk7JHRtcD1hcnJheSgpOyRvdXQ9YXJyYXkoKTtmb3JlYWNoKCRzdHlsZXMgYXMgJHN0eWxlKXskdG1wWydjc3NpZCddPSRzdHlsZS0+aWQ7JHRtcFsnbmFtZSddPSRzdHlsZS0+bmFtZTskdG1wWydpbnB1dCddPSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5jbHVkZVtdJywkc3R5bGUtPmlkKTskb3V0W109JHRtcDt9JHBhcmFtc1snb3JpZ2FjdGlvbiddPSRwYXJhbXNbJ2FjdGlvbiddOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnaW1wb3J0X1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwnJywkcGFyYW1zKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOyRzbWFydHktPmFzc2lnbignY3NzX3RvX2ltcG9ydCcsJG91dCk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdGJ1dHRvbicsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjc3NfdG9faW1wb3J0LnRwbCcpO31leGl0KCk7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.import_Script_Setup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGlkcz1hcnJheSgpOyRzdHlsZW9wcz0kZ0Ntcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTskc3R5bGVzPSRzdHlsZW9wcy0+TG9hZFN0eWxlc2hlZXRzKCk7JGRiPSR0aGlzLT5HZXREYigpOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRNaW5pZnk9JHNjcmlwdE5hbWU9JHBhdGhPcHRpb249JHNjcmlwdFR5cGU9JFNjcmlwdElzPSRzY3JpcHRTaXplPSRub3Rlcz0kTWVkaWFUeXBlPSRTY3JpcHRJRD0kcmV2TWVzcz0nJzskaG90TGlua0NoZWNrPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdob3RMaW5rQ2hlY2snLDEpOyRyZXZpc2lvbj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb24nKTskdG1wPWFycmF5KCk7Zm9yZWFjaCgkc3R5bGVzIGFzICRzdHlsZSl7JGlkc1tdPSRzdHlsZS0+aWQ7fWlmKCFmdW5jdGlvbl9leGlzdHMoJ3JlbW92ZV9pdGVtX2J5X3ZhbHVlJykpe2Z1bmN0aW9uIHJlbW92ZV9pdGVtX2J5X3ZhbHVlKCRhcnJheSwkdmFsLCRwcmVzZXJ2ZV9rZXlzPXRydWUpe2ZvcmVhY2goJHZhbCBhcyAka2V5PT4kdmFsdWUpe2lmKCFpbl9hcnJheSgkdmFsdWUsJGFycmF5KSl1bnNldCgkYXJyYXlbJGtleV0pO31yZXR1cm4gJGFycmF5O319aWYoIWZ1bmN0aW9uX2V4aXN0cygncmVtb3ZlX2l0ZW1fYnlfdmFsdWVfbm90X2xpc3QnKSl7ZnVuY3Rpb24gcmVtb3ZlX2l0ZW1fYnlfdmFsdWVfbm90X2xpc3QoJGFycmF5LCR2YWwsJHByZXNlcnZlX2tleXM9dHJ1ZSl7Zm9yZWFjaCgkdmFsIGFzICRrZXk9PiR2YWx1ZSl7aWYoaW5fYXJyYXkoJHZhbHVlLCRhcnJheSkpdW5zZXQoJGFycmF5WyRrZXldKTt9cmV0dXJuICRhcnJheTt9fWlmKGlzc2V0KCRwYXJhbXNbJ2V4Y2x1ZGUnXSkmJmlzc2V0KCRwYXJhbXNbJ2luY2x1ZGUnXSkpe31lbHNlaWYoaXNzZXQoJHBhcmFtc1snZXhjbHVkZSddKSl7Zm9yZWFjaCgkaWRzIGFzICRpZGtleT0+JGlkdmFsdWUpe2ZvcmVhY2goJHBhcmFtc1snZXhjbHVkZSddYXMgJGtleT0+JHZhbHVlKXtpZigkdmFsdWU9PSRpZHZhbHVlKXt1bnNldCgkaWRzWyRpZGtleV0pO319fX1lbHNlaWYoJHBhcmFtc1snaW5jbHVkZSddKXtmb3JlYWNoKCRpZHMgYXMgJGlka2V5PT4kaWR2YWx1ZSl7JGZvdW5kPWZhbHNlO2ZvcmVhY2goJHBhcmFtc1snaW5jbHVkZSddYXMgJGtleT0+JHZhbHVlKXtpZigkdmFsdWU9PSRpZHZhbHVlKXskZm91bmQ9dHJ1ZTt9fWlmKCEkZm91bmQpe3Vuc2V0KCRpZHNbJGlka2V5XSk7fX19JHF1ZXJ5PSJTRUxFQ1QgY3NzX2lkLCBjc3NfbmFtZSwgY3NzX3RleHQsIG1lZGlhX3R5cGUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY3NzIjskTWFpbnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTt3aGlsZSgkTWFpbnJlc3VsdCYmISRNYWlucmVzdWx0LT5FT0Ype2lmKGluX2FycmF5KCRNYWlucmVzdWx0LT5maWVsZHNbJ2Nzc19pZCddLCRpZHMpKXskU2NyaXB0TmFtZT0kTWFpbnJlc3VsdC0+ZmllbGRzWydjc3NfbmFtZSddOyRTY3JpcHRJcz0kTWFpbnJlc3VsdC0+ZmllbGRzWydjc3NfdGV4dCddOyRNZWRpYVR5cGU9JE1haW5yZXN1bHQtPmZpZWxkc1snbWVkaWFfdHlwZSddOyRwYXRoT3B0aW9uPScnOyRzY3JpcHRUeXBlPSdDU1MnOyRTY3JpcHRJcz1pbXBsb2RlKCd1cmwoL3VwbG9hZHMnLGV4cGxvZGUoJ3VybCh1cGxvYWRzJywkU2NyaXB0SXMpKTskU2NyaXB0SXM9aW1wbG9kZSgndXJsKHt7cm9vdF91cmx9fS91cGxvYWRzJyxleHBsb2RlKCd1cmwoW1tyb290X3VybF1ddXBsb2FkcycsJFNjcmlwdElzKSk7JFNjcmlwdElzPWltcGxvZGUoJ3VybCh7e3Jvb3RfdXJsfX0vdXBsb2FkcycsZXhwbG9kZSgndXJsKFtbcm9vdF91cmxdXS91cGxvYWRzJywkU2NyaXB0SXMpKTskU2NyaXB0SXM9aW1wbG9kZSgndXJsKC9pbWFnZXMnLGV4cGxvZGUoJ3VybChpbWFnZXMnLCRTY3JpcHRJcykpOyRTY3JpcHRJcz1pbXBsb2RlKCd1cmwoe3tyb290X3VybH19L2ltYWdlcycsZXhwbG9kZSgndXJsKFtbcm9vdF91cmxdXS9pbWFnZXMnLCRTY3JpcHRJcykpOyRzY3JpcHRTaXplPXN0cmxlbih1dGY4X2RlY29kZSgkU2NyaXB0SXMpKTskVXNlcmlkPXNpdGVfdXRpbHM6OmdldFVzZXJJbmZvKCk7JHVJRD0kVXNlcmlkWydVc2VyaWQnXTskbm93PXRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCInIik7JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVE5BTUVTLiIgU0VUIFNjcmlwdFNldD0/IjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJFNjcmlwdE5hbWUpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JExhc3RJRD0kZGItPkluc2VydF9JRCgpOyRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9TQ1JJUFRPUFRJT05TLiIgIi4iKElELHVzZXJJRCxwYXRoT3B0aW9uLHNjcmlwdFR5cGUsc2NyaXB0U2l6ZSxub3RlcyxjcmVhdGVkLGxhc3RfZWRpdCkgIi4iVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8pIjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJExhc3RJRCwkdUlELCRwYXRoT3B0aW9uLCRzY3JpcHRUeXBlLCRzY3JpcHRTaXplLCRub3Rlcywkbm93LCRub3cpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVFBBUlRTLiIgIi4iKElELCBTY3JpcHRJcykgIi4iVkFMVUVTICg/LD8pIjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJExhc3RJRCwkU2NyaXB0SXMpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1pbmlmeS1TRCcsMCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLVBhdGhPcC1TRCcsJycpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1yb290VVJMLVNEJywnJyk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLXR1cm5PZmZQcmVsb2FkLVNEJywnJyk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1lZGlhVHlwZS1TRCcsJE1lZGlhVHlwZSk7aWYoJHJldmlzaW9uKXtzY3JpcHRkZXBsb3lfdXRpbHM6OlNldFNjcmlwdEJhY2t1cCgkTGFzdElELCRTY3JpcHRJcywnMScpOyRyZXZNZXNzPSd8IHJldjoxJzt9JG5vdGVzPSR0aGlzLT5MYW5nKCdjb3B5Q21zbXNDc3NBY3Rpb25Ob3RlJykuIiAkU2NyaXB0TmFtZSB0byBTY3JpcHREZXBsb3kgLSBzY3JpcHQgaWQ6JExhc3RJRCAkcmV2TWVzcyI7JHBhcmFtc1snbWVzc2FnZSddPSR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTtpc3NldCgkTWluaWZ5KT8kc2NyaXB0UHJlZlsnTWluaWZ5J109JE1pbmlmeTowO2lzc2V0KCRwYXRoT3B0aW9uKT8kc2NyaXB0UHJlZlsnUGF0aE9wJ109JHBhdGhPcHRpb246Jyc7aXNzZXQoJHJvb3RVUkwpPyRzY3JpcHRQcmVmWydyb290VVJMJ109JHJvb3RVUkw6Jyc7aXNzZXQoJHR1cm5PZmZQcmVsb2FkKT8kc2NyaXB0UHJlZlsndHVybk9mZlByZWxvYWQnXT0kdHVybk9mZlByZWxvYWQ6Jyc7aXNzZXQoJE1lZGlhVHlwZSk/JHNjcmlwdFByZWZbJ01lZGlhVHlwZSddPSRNZWRpYVR5cGU6Jyc7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLXNjcmlwdFByZWYtU0QnLHNlcmlhbGl6ZSgkc2NyaXB0UHJlZikpOyRsb2dnaW4tPl9kb0F1ZGl0KCdhZGQnLCdvaycsImNvcGllZCAkU2NyaXB0TmFtZSB0byBTY3JpcHREZXBsb3kgLSBzY3JpcHQgaWQ6JExhc3RJRCAkcmV2TWVzcyIsJycsJ1NjcmlwdERlcGxveScpO3NjcmlwdGRlcGxveV91dGlsczo6bG9ja19zY3JpcHQoJExhc3RJRCwkdUlEKTtzY3JpcHRkZXBsb3lfdXRpbHM6OnVubG9ja19zY3JpcHQoJExhc3RJRCk7fX19fSRNYWlucmVzdWx0LT5Nb3ZlTmV4dCgpO30kcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9Pidjb3BpZWRDTVNNUycsJ2FjdGl2ZV90YWInPT4kc2NyaXB0VHlwZSk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.jsinclude.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9zd2Fwc3R5bGUuanMiPjwvc2NyaXB0PicuIlxuIjsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.MT_action.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRDTVNfVVNFUl9LRVk9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTtpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKXtyZXR1cm47fSRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpO2lmKCFpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKXskcGFyYW1zWydhY3RpdmVfdGFiJ109J3RlbXBsYXRlX21hbmcnO30kdGVtcGxhdGVfaWQ9LTE7aWYoaXNzZXQoJHBhcmFtc1sidGVtcGxhdGVfaWQiXSkpJHRlbXBsYXRlX2lkPSRwYXJhbXNbInRlbXBsYXRlX2lkIl07JHByZXZpZXc9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXZpZXcnLHRydWUpO2lmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSl7ZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7fSRwYXJhbXNbJ29yaWdhY3Rpb24nXT0kcGFyYW1zWydhY3Rpb24nXTskY29udGVudHM9IiI7JHNjcmlwdHNfbmFtZT0nJzskc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVfdGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7aWYoaXNzZXQoJF9QT1NUWyJlZGl0dGVtcGxhdGUiXSkpeyR2YWxpZGluZm89dHJ1ZTtpZigkdGVtcGxhdGU9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLGFycmF5KGxhbmcoJ25hbWUnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9ZWxzZSBpZigkdGVtcGxhdGVvcHMtPkNoZWNrRXhpc3RpbmdUZW1wbGF0ZU5hbWUoJHRlbXBsYXRlLCR0ZW1wbGF0ZV9pZCkpeyRlcnJvci49IjxsaT4iLmxhbmcoJ3RlbXBsYXRlZXhpc3RzJykuIjwvbGk+IjskdmFsaWRpbmZvPWZhbHNlO31pZigkY29udGVudD09IiIpeyRlcnJvci49IjxsaT4iLmxhbmcoJ25vZmllbGRnaXZlbicsYXJyYXkobGFuZygnY29udGVudCcpKSkuIjwvbGk+IjskdmFsaWRpbmZvPWZhbHNlO31pZigkdmFsaWRpbmZvKXskcmVzdWx0PSRvbmV0ZW1wbGF0ZS0+U2F2ZSgpO2lmKCRyZXN1bHQpeyRvcmlnX3RlbXBsYXRlPSR0ZW1wbGF0ZTtmb3JlYWNoKGNtc21zKCktPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKXtpZihjbXNtcygpLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXT09dHJ1ZSYmY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnYWN0aXZlJ109PXRydWUpe2Ntc21zKCktPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5FZGl0VGVtcGxhdGVQb3N0KCRvbmV0ZW1wbGF0ZSk7fX1FdmVudHM6OlNlbmRFdmVudCgnQ29yZScsJ0VkaXRUZW1wbGF0ZVBvc3QnLGFycmF5KCd0ZW1wbGF0ZSc9PiYkb25ldGVtcGxhdGUpKTthdWRpdCgkdGVtcGxhdGVfaWQsJG9uZXRlbXBsYXRlLT5uYW1lLCdFZGl0ZWQgVGVtcGxhdGUnKTtpZighJGFwcGx5KXtzd2l0Y2goJGZyb20pe2Nhc2UgJ2NvbnRlbnQnOnJlZGlyZWN0KCJsaXN0Y29udGVudC5waHAiLiR1cmxleHQpO2JyZWFrO2Nhc2UgJ2Nzc2Fzc29jJzpyZWRpcmVjdCgndGVtcGxhdGVjc3MucGhwJy4kdXJsZXh0LicmaWQ9Jy4kY3NzaWQuJyZ0eXBlPXRlbXBsYXRlJyk7YnJlYWs7Y2FzZSAnbW9kdWxlX1RlbXBsYXRlTWFuYWdlcic6cmVkaXJlY3QoJ21vZHVsZWludGVyZmFjZS5waHAnLiR1cmxleHQuJyZtb2R1bGU9VGVtcGxhdGVNYW5hZ2VyJyk7YnJlYWs7ZGVmYXVsdDpyZWRpcmVjdCgibGlzdHRlbXBsYXRlcy5waHAiLiR1cmxleHQpO2JyZWFrO319fWVsc2V7JGVycm9yLj0iPGxpPiIubGFuZygnZXJyb3J1cGRhdGluZ3RlbXBsYXRlJykuIjwvbGk+Ijt9fWlmKCRhamF4KXtoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWwnKTtwcmludCAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4nO3ByaW50ICc8RWRpdFRlbXBsYXRlPic7aWYoJGVycm9yKXtwcmludCAnPFJlc3BvbnNlPkVycm9yPC9SZXNwb25zZT4nO3ByaW50ICc8RGV0YWlscz48IVtDREFUQVsnLiRlcnJvci4nXV0+PC9EZXRhaWxzPic7fWVsc2V7cHJpbnQgJzxSZXNwb25zZT5TdWNjZXNzPC9SZXNwb25zZT4nO3ByaW50ICc8RGV0YWlscz48IVtDREFUQVsnLmxhbmcoJ2VkaXR0ZW1wbGF0ZXN1Y2Nlc3MnKS4nXV0+PC9EZXRhaWxzPic7fXByaW50ICc8L0VkaXRUZW1wbGF0ZT4nO2V4aXQ7fX1lbHNlIGlmKCR0ZW1wbGF0ZV9pZCE9LTEpeyRvbmV0ZW1wbGF0ZT0kdGVtcGxhdGVvcHMtPkxvYWRUZW1wbGF0ZUJ5SUQoJHRlbXBsYXRlX2lkKTskdGVtcGxhdGU9JG9uZXRlbXBsYXRlLT5uYW1lOyRvcmlnX3RlbXBsYXRlPSRvbmV0ZW1wbGF0ZS0+bmFtZTskY29udGVudD0kb25ldGVtcGxhdGUtPmNvbnRlbnQ7JHN0eWxlc2hlZXQ9JG9uZXRlbXBsYXRlLT5zdHlsZXNoZWV0OyRlbmNvZGluZz0kb25ldGVtcGxhdGUtPmVuY29kaW5nOyRkZWZhdWx0PSRvbmV0ZW1wbGF0ZS0+ZGVmYXVsdDskYWN0aXZlPSRvbmV0ZW1wbGF0ZS0+YWN0aXZlOyRsYXN0ZWRpdGVkPSRvbmV0ZW1wbGF0ZS0+bW9kaWZpZWRfZGF0ZTt9JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9wcmV2aWV3JywnJyk7aWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pKXtlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTt9JHBhcmFtc1snb3JpZ2FjdGlvbiddPSRwYXJhbXNbJ2FjdGlvbiddOyRjb250ZW50cz0iIjskc2NyaXB0c19uYW1lPScnOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2F2ZV9tb2R1bGVfdGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsJHBhcmFtcykpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtb2RlJywkcGFyYW1zWydtb2RlJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ1Byb2NjZXNzaW5nJywkdGhpcy0+TGFuZygnUHJvY2Nlc3NpbmcnKSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnU2F2ZWQnLCR0aGlzLT5MYW5nKCdTYXZlZCcpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdEb25lJywkdGhpcy0+TGFuZygnRG9uZScpKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdWYWxpZGF0aW5nJywkdGhpcy0+TGFuZygnVmFsaWRhdGluZycpKSk7aWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSYmJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddIT0nJyl7JGNvbnRlbnRzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7fSRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCRwYXJhbXNbJ21vZHVsZV9uYW1lJ10pOyRjb250ZW50PSRtb2QtPkdldFRlbXBsYXRlKCRwYXJhbXNbJ3RlbXBsYXRlX25hbWUnXSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlX25hbWUnXSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd0ZW1wbGF0ZScsJHBhcmFtc1sndGVtcGxhdGVfbmFtZSddLDQwKSk7JHNtYXJ0eS0+YXNzaWduKCdjb2RlJywkY29udGVudCk7JHNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfbmFtZScsJHBhcmFtc1snbW9kdWxlX25hbWUnXSk7JHNtYXJ0eS0+YXNzaWduKCdzY3JpcHRzX25hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlX25hbWUnXSk7JHNtYXJ0eS0+YXNzaWduKCdtb2RlJywkcGFyYW1zWydtb2RlJ10pOyRzbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbW9kZScsJHBhcmFtc1snbW9kZSddKS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLENNU19TRUNVUkVfUEFSQU1fTkFNRSwkQ01TX1VTRVJfS0VZKSk7JHNtYXJ0eS0+YXNzaWduKCdhZGRMaWJfbGFiZWwnLCR0aGlzLT5MYW5nKCdhZGRMaWJfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdzbWFydHlIb3dfbGFiZWwnLCR0aGlzLT5MYW5nKCdzbWFydHlIb3cnKSk7JHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnLCR0aGlzLT5MYW5nKCd0ZW1wbGF0ZW5hbWVfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdTY3JpcHRJc19sYWJlbCcsJHRoaXMtPkxhbmcoJ1NjcmlwdElzX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignbm90ZXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdub3Rlc19sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7JHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0YnV0dG9uJywkdGhpcy0+TGFuZygnc3VibWl0JykpKTskc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJywkdGhpcy0+TGFuZygnY2FuY2VsJykpKTskc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdhcHBseScsJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTskc21hcnR5LT5hc3NpZ24oJ3JldmVydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmV2ZXJ0JywkdGhpcy0+TGFuZygncmV2ZXJ0JykpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOyRzbWFydHktPmFzc2lnbignZmlsdGVyUHJvcCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZpbHRlclByb3AnLCcnKSk7JHNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTskc21hcnR5LT5hc3NpZ24oJ2FjdGlvbmlkJywkaWQpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdF90ZW1wbGF0ZS50cGwnKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.push.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjktYmV0YTEnKT49MCl7JGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7fWVsc2V7Z2xvYmFsICRnQ21zOyRtb2Q9JGdDbXMtPm1vZHVsZXNbJ1NjcmlwdERlcGxveSddWydvYmplY3QnXTt9aWYoaXNzZXQoJHBhcmFtc1sncmVzdGFydCddKSl7JHBhcmFtcz1hcnJheSgpOyRwYXJhbXNbJ21lc3NhZ2UnXT0nZW1wdHlwYWNrYWdlbmFtZSc7JG1vZC0+UmVkaXJlY3QoJGlkLCdleHBvcnQnLCRyZXR1cm5pZCwkcGFyYW1zKTt9aWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXskcGFyYW1zWydtZXNzYWdlJ109J2VtcHR5cGFja2FnZW5hbWUnOyRwYXJhbXNbJ2FjdGl2ZV90YWInXT0naW5wb3J0RXhwb3J0JzskbW9kLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpO31pZighaXNzZXQoJGdDbXMpKWV4aXQ7aWYoISR0aGlzLT5IYXNQZXJtaXNzaW9uKCJNYW5hZ2UgVGhlbWVzIikpe3JldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHBhcmFtcywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTt9JHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdwdXNoJywkcmV0dXJuaWQpKTskc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOyRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCR0aGlzLT5MYW5nKCdjb250aW51ZV9wdXNoJykpKTskc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJywnY2FuY2VsJykpOyRzbWFydHktPmFzc2lnbigncmVzdGFydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzdGFydCcsJ3Jlc3RhcnQnKSk7JHNtYXJ0eS0+YXNzaWduKCdtb2QnLCRtb2QpO2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHVzaC50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/action.revert.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJENNU19VU0VSX0tFWT1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldO2lmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpe3JldHVybjt9JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZighaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7JHBhcmFtc1snYWN0aXZlX3RhYiddPSdzY3JpcHRfdGVtcGxhdGUnO31lY2hvICc8ZGl2IGlkPSJkZW1vdGlwIj48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbG9hZGluZy5naWYiIGFsdD0iIi8+PC9kaXY+JztpZihpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkpe2VjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1snZXJyb3JzJ10pO30kcGFyYW1zWydvcmlnYWN0aW9uJ109JHBhcmFtc1snYWN0aW9uJ107JHNJRD0kcGFyYW1zWydTY3JpcHRTZXQnXTtpZihpc3NldCgkcGFyYW1zWydjbGVhclJldiddKSl7JExJTUlUPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXZpc2lvbl9MSU1JVCcpO3NjcmlwdGRlcGxveV91dGlsczo6Q2xlYXJUaGlzUmV2aXNpb24oJHNJRCk7fSRsb2c9c2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRSZXZpc2lvbnMoJHNJRCwxLDk5OTk5LCJzY3JpcHRJRD0nJHNJRCciKTskbGFzdFY9JHRoaXMtPkdldExhc3RSZXZpc2lvbigkc0lEKTskU2NyaXB0TmFtZT1zY3JpcHRkZXBsb3lfdXRpbHM6OkdldFNjcmlwdE5hbWUoJHNJRCk7JHRhYmxlPSc8aDEgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+VmVyc2lvbiBIaXN0b3J5IGZvciBzY3JpcHQgbmFtZSA8c3BhbiBpZD0iU25hbWUiPicuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0X3NjcmlwdCcsJHJldHVybmlkLCRTY3JpcHROYW1lLGFycmF5KCdTY3JpcHRTZXQnPT4kc0lELCdhY3RpdmVfdGFiJz0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nZWRpdCcpKS4nPC9zcGFuPiAoaWQgPHNwYW4gaWQ9IlNpZCI+Jy4kc0lELic8L3NwYW4+KTwvaDE+PGJyLz48ZGl2IGlkPSJ2ZXJzaW9uUGxhbmUiPg0KCSAgDQoJICA8dGFibGUgY2VsbHNwYWNpbmc9IjEiIGNsYXNzPSJ0YWJsZXNvcnRlciB1aV9ncmlkIiBpZD0iVFMxIj4NCgkJCTx0aGVhZD4NCgkJCQk8dHI+PHRoPnVzZXJJRDwvdGg+DQoJCQkJCTx0aD5yZXZpc2lvbjwvdGg+DQoJCQkJCTx0aD5jcmVhdGVkPC90aD4NCgkJCQk8L3RyPg0KCQkJPC90aGVhZD4NCgkJCTx0Ym9keT4nLiRsb2cuJzwvdGJvZHk+DQoJCTwvdGFibGU+DQoJCTwhLS08ZGl2IGlkPSJjU2NyaXB0UGxhbmUiPjxkaXYgIGlkPSJjU2NyaXB0UGxhbmVJTkZPIj48L2Rpdj4tLT4NCgkJPHRleHRhcmVhIGlkPSJjU2NyaXB0UGxhbmUiIHJvd3M9IjE1IiA+DQoJCQ0KCQknLnNjcmlwdGRlcGxveV91dGlsczo6R2V0VGhpc1JldmlzaW9uKCRzSUQsJGxhc3RWKS4nDQoJCTwvdGV4dGFyZWE+PCEtLTwvZGl2Pi0tPg0KCQk8ZGl2IGNsYXNzPSJ0YWJsZV9mb290ZXIiPg0KCQkJPGRpdiBpZD0icGFnZXIiIGNsYXNzPSJwYWdlciI+DQoJCQkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvZmlyc3QucG5nIiBjbGFzcz0iZmlyc3QiLz4NCgkJCQk8aW1nIHNyYz0iLi4vbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9wcmV2LnBuZyIgY2xhc3M9InByZXYiLz4NCgkJCQk8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InBhZ2VkaXNwbGF5Ii8+DQoJCQkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvbmV4dC5wbmciIGNsYXNzPSJuZXh0Ii8+DQoJCQkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvbGFzdC5wbmciIGNsYXNzPSJsYXN0Ii8+DQoJCQkJPHNlbGVjdCBjbGFzcz0icGFnZXNpemUiPg0KCQkJCQk8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IjUiPjU8L29wdGlvbj4NCgkJCQkJPG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+DQoJCQkJCTxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPg0KCQkJCQk8b3B0aW9uIHZhbHVlPSIzMCI+MzA8L29wdGlvbj4NCgkJCQkJPG9wdGlvbiAgdmFsdWU9IjQwIj40MDwvb3B0aW9uPg0KCQkJCTwvc2VsZWN0Pg0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KJzskc21hcnR5LT5hc3NpZ24oJ3RhYmxlJywkdGFibGUpOyRzbWFydHktPmFzc2lnbignY2xlYXJSZXZfc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdyZXZlcnQnLCRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7JHNtYXJ0eS0+YXNzaWduKCdjbGVhclJldl9lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOyRzbWFydHktPmFzc2lnbignY2xlYXJSZXYnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NsZWFyUmV2JywkdGhpcy0+TGFuZygnY2xlYXJSZXYnKSkpOyRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdTY3JpcHRTZXQnLCRzSUQpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1fY2FuY2VsJywnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdmdW5jdGlvbi9yZXZlcnQudHBsJyk7ID8+]]></data>
	</file>
	<file>
	  <filename>/action.saveVALsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoaXNzZXQoJHBhcmFtc1siQ1NTcHJvZmlsZSJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnQ1NTcHJvZmlsZScsJHBhcmFtc1siQ1NTcHJvZmlsZSJdKTtpZihpc3NldCgkcGFyYW1zWyJWQUxMYW5nIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdWQUxMYW5nJywkcGFyYW1zWyJWQUxMYW5nIl0pO2lmKGlzc2V0KCRwYXJhbXNbInczY0NTU3dhcm5pbmciXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ3czY0NTU3dhcm5pbmcnLCRwYXJhbXNbInczY0NTU3dhcm5pbmciXSk7aWYoaXNzZXQoJHBhcmFtc1sidXNlcm1lZGl1bSJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsJHBhcmFtc1sidXNlcm1lZGl1bSJdKTtpZihpc3NldCgkcGFyYW1zWyJTaG93VmFsIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdTaG93VmFsJywkcGFyYW1zWyJTaG93VmFsIl0pO2lmKGlzc2V0KCRwYXJhbXNbIlR1cm5PTlZhbCJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnVHVybk9OVmFsJywkcGFyYW1zWyJUdXJuT05WYWwiXSk7aWYoaXNzZXQoJHBhcmFtc1siZmlsdGVyUHJvcCJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmlsdGVyUHJvcCcsJHBhcmFtc1siZmlsdGVyUHJvcCJdKTtpZihpc3NldCgkcGFyYW1zWyJob3RMaW5rQ2hlY2siXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hvdExpbmtDaGVjaycsJHBhcmFtc1siaG90TGlua0NoZWNrIl0pO2lmKGlzc2V0KCRwYXJhbXNbIlR1cm5PTlZhbEhUTUwiXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ1R1cm5PTlZhbEhUTUwnLCRwYXJhbXNbIlR1cm5PTlZhbEhUTUwiXSk7aWYoaXNzZXQoJHBhcmFtc1siZG9jVHlwZSJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZG9jVHlwZScsJHBhcmFtc1siZG9jVHlwZSJdKTtpZihpc3NldCgkcGFyYW1zWyJlbmNvZGluZyJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5jb2RpbmcnLCRwYXJhbXNbImVuY29kaW5nIl0pO2lmKGlzc2V0KCRwYXJhbXNbIlZhbEhUTUxWZXJib3NlIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdWYWxIVE1MVmVyYm9zZScsJHBhcmFtc1siVmFsSFRNTFZlcmJvc2UiXSk7aWYoaXNzZXQoJHBhcmFtc1siZGVmYXVsdFBhZ2UiXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRQYWdlJywkcGFyYW1zWyJkZWZhdWx0UGFnZSJdKTtpZigkcGFyYW1zWyJkZWZhdWx0UGFnZSJdIT0nYXV0bycpe2lmKCRwYXJhbXNbImRlZmF1bHRQYWdlIl0hPSd1c2VyR2VuZXJhdGVkJyl7aWYoaXNzZXQoJHBhcmFtc1sib3duQ29udGVudCJdKSkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnb3duQ29udGVudCcsJycpO31lbHNle2lmKGlzc2V0KCRwYXJhbXNbIm93bkNvbnRlbnQiXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ293bkNvbnRlbnQnLCRwYXJhbXNbIm93bkNvbnRlbnQiXSk7fWlmKCRwYXJhbXNbImRlZmF1bHRQYWdlIl0hPSd1c2VyQ2hvaWNlJyl7aWYoaXNzZXQoJHBhcmFtc1sidXNlckRlZmF1bHRQYWdlIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VyRGVmYXVsdFBhZ2UnLCcnKTt9ZWxzZXtpZihpc3NldCgkcGFyYW1zWyJ1c2VyRGVmYXVsdFBhZ2UiXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJEZWZhdWx0UGFnZScsJHBhcmFtc1sidXNlckRlZmF1bHRQYWdlIl0pO319JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nc2V0dGluZ3NzYXZlZCcsJ2FjdGl2ZV90YWInPT4nVmFsc2V0dGluZ3MnKTskdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.save_deployment_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaXNzZXQoJHBhcmFtc1snc21hcnR5T24nXSk/JHRoaXMtPlNldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywkcGFyYW1zWydzbWFydHlPbiddKTokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc21hcnR5T24nLDApO2lzc2V0KCRwYXJhbXNbJ3Jvb3RVUkxfaW5wdXQnXSk/JHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jvb3RVUkwnLCRwYXJhbXNbJ3Jvb3RVUkxfaW5wdXQnXSk6JHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jvb3RVUkwnLCcnKTtpc3NldCgkcGFyYW1zWydmaWxlVGltZV9jc3NfdXJscyddKT8kdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmlsZVRpbWVfY3NzX3VybHMnLCRwYXJhbXNbJ2ZpbGVUaW1lX2Nzc191cmxzJ10pOiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmaWxlVGltZV9jc3NfdXJscycsMSk7aXNzZXQoJHBhcmFtc1sncHJlbG9hZF9DU1NpbWFnZV9pbnB1dCddKT8kdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlbG9hZF9DU1NpbWFnZScsJHBhcmFtc1sncHJlbG9hZF9DU1NpbWFnZV9pbnB1dCddKTokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJlbG9hZF9DU1NpbWFnZScsMCk7aXNzZXQoJHBhcmFtc1snSFRUUFNfUE9SVF9pbnB1dCddKT8kdGhpcy0+U2V0UHJlZmVyZW5jZSgnSFRUUFNfUE9SVCcsJHBhcmFtc1snSFRUUFNfUE9SVF9pbnB1dCddKTokdGhpcy0+U2V0UHJlZmVyZW5jZSgnSFRUUFNfUE9SVCcsNDQzKTtpZihpc3NldCgkcGFyYW1zWyJtYW5nbGV0eXBlIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJtYW5nbGV0eXBlIiwkcGFyYW1zWyJtYW5nbGV0eXBlIl0pO2lmKGlzc2V0KCRwYXJhbXNbImRlYnVnIl0pKXskdGhpcy0+U2V0UHJlZmVyZW5jZSgiZGVidWciLCJ0cnVlIik7fWVsc2V7JHRoaXMtPlNldFByZWZlcmVuY2UoImRlYnVnIiwiZmFsc2UiKTt9aWYoaXNzZXQoJHBhcmFtc1siaGlkZW1lc3NhZ2VzIl0pKXskdGhpcy0+U2V0UHJlZmVyZW5jZSgiaGlkZW1lc3NhZ2VzIiwkcGFyYW1zWyJoaWRlbWVzc2FnZXMiXSk7fWVsc2V7JHRoaXMtPlNldFByZWZlcmVuY2UoImhpZGVtZXNzYWdlcyIsIjAiKTt9aWYoaXNzZXQoJHBhcmFtc1siaW5kZW50d2lkdGgiXSkpJHRoaXMtPlNldFByZWZlcmVuY2UoImluZGVudHdpZHRoIiwkcGFyYW1zWyJpbmRlbnR3aWR0aCJdKTtpZihpc3NldCgkcGFyYW1zWyJkZWJ1Z2xldmVsIl0pKSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWJ1Z2xldmVsIiwkcGFyYW1zWyJkZWJ1Z2xldmVsIl0pO2lmKGlzc2V0KCRwYXJhbXNbImZvcmNlbG93ZXJ0YWdzIl0pKXskdGhpcy0+U2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCRwYXJhbXNbImZvcmNlbG93ZXJ0YWdzIl0pO31lbHNleyR0aGlzLT5TZXRQcmVmZXJlbmNlKCJmb3JjZWxvd2VydGFncyIsIjAiKTt9JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nc2V0dGluZ3NzYXZlZCcsJ2FjdGl2ZV90YWInPT4naHRtbHNldHRpbmdzJyk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_group_assign.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskZmg9bmV3IGZpbGVoYW5kbGluZygpO2lmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSl7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nQ2FuY2VsZWQnLCdhY3RpdmVfdGFiJz0+J2dyb3VwcycpOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7fSRwYXJhbXNbJ3VubWVyZ2UnXT1pc3NldCgkcGFyYW1zWyd1bm1lcmdlJ10pJiYkcGFyYW1zWyd1bm1lcmdlJ10hPScnPyRwYXJhbXNbJ3VubWVyZ2UnXTpmYWxzZTtpZihpc3NldCgkcGFyYW1zWydmaW5pc2hlZCddKSl7JEdpZD0kcGFyYW1zWydHcm91cHRJRCddOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRHaWQuJy11bm1lcmdlLVNEJywkcGFyYW1zWyd1bm1lcmdlJ10pO2lmKCRwYXJhbXNbJ3VubWVyZ2UnXT09dHJ1ZSl7JGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9ncm91cElELyI7JGRlbGV0ZWQ9JGZoLT5yZWN1cnNpdmVfcm1kaXIoJGRpcnBhdGgpOyRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvZ1NpbmdsZS8iOyRkZWxldGVkPSRmaC0+cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKTt9JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nZmluaXNoZWQnLCdhY3RpdmVfdGFiJz0+J2dyb3VwcycpOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7fSRHcm91cE5hbWU9Jyc7JEdyb3VwdFNldD0nJzskZGI9JHRoaXMtPkdldERiKCk7ZGVidWdfdG9fbG9nKCRwYXJhbXNbJ3VubWVyZ2UnXSk7aWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7JEdyb3VwTmFtZT0kcGFyYW1zWydHcm91cHRTZXQnXTskR3JvdXB0VHlwZT0kcGFyYW1zWydHcm91cHRUeXBlJ107JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX0dST1VQLiIgU0VUIEdyb3VwdFNldD0/LCBHcm91cHRUeXBlPT8iOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR3JvdXBOYW1lLCRHcm91cHRUeXBlKSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRwYXJhbXNbJ21lc3NhZ2UnXT0kdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7fSRHaWQ9c2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRHcm91cElEKCRHcm91cE5hbWUpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRHaWQuJy11bm1lcmdlLVNEJywkcGFyYW1zWyd1bm1lcmdlJ10pO2VjaG8gJEdpZDtleGl0KCk7fWlmKCRwYXJhbXNbJ21vZGUnXT09J2VkaXQnKXskR2lkPSRwYXJhbXNbJ0dyb3VwdElEJ107fWZvcmVhY2goJHBhcmFtcyBhcyAka2V5PT4kcGFyYW1zSXRlbSl7fWlmKGlzc2V0KCRwYXJhbXNbJ1JFT1JERVInXSkpe2ZvcmVhY2goJHBhcmFtc1snU2NyaXB0T1JERVInXWFzICRrZXk9PiRTY3JpcHRPUkRFUil7JFNjcmlwdElEPSRrZXk7JHF1ZXJ5PSJVUERBVEUgIi5TRF9HUk9VUEFTU0lHTk1FTlQuIiBTRVQgU2NyaXB0T1JERVI9PyBXSEVSRSBTY3JpcHRJRD0gPyBBTkQgR3JvdXB0U2V0SUQ9PyI7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRTY3JpcHRPUkRFUiwkU2NyaXB0SUQsJEdpZCkpOyRkYi0+c3FsO2lmKCEkcmVzdWx0KXskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9ZWxzZXskcGFyYW1zWydtZXNzYWdlJ109JHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpO319JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nRWRpdGVkJywnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnLCdHcm91cHRTZXQnPT4kR3JvdXB0U2V0LCdHcm91cHRJRCc9PiRHaWQsJ2dyb3VwJz0+JEdpZCwnZ3JvdXB0MSc9PiRHaWQpOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRhc3NpZ25tZW50JywnJywkcGFyYW1zKTt9aWYoJHBhcmFtc1snbW9kZSddPT0nZWRpdCcpeyRTY3JpcHRJRD0kcGFyYW1zWydTY3JpcHRQaWNrZXInXTskYWxsZGJQcm9maWxlcz1zY3JpcHRkZXBsb3lfdXRpbHM6OnNlbGVjdEdyb3Vwc0xpc3RpbmdzKCRHaWQpOyRxdWVyeT0iREVMRVRFIHNuIEZST00gIi5TRF9HUk9VUEFTU0lHTk1FTlQuIiBBUyBzbiBXSEVSRSBzbi5Hcm91cHRTZXRJRCA9ID8iOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR2lkKSk7JFNjcmlwdE9SREVSPScnO2ZvcmVhY2goJFNjcmlwdElEIGFzICRrZXk9PiRTQXJyYXlJdGVtKXskU2NyaXB0T1JERVI9Jyc7Zm9yZWFjaCgkYWxsZGJQcm9maWxlcyBhcyAka2V5cz0+JG9uZWRiUHJvZmlsZSl7aWYoJGtleXM9PSRTQXJyYXlJdGVtKXskU2NyaXB0T1JERVI9JG9uZWRiUHJvZmlsZVsnU2NyaXB0T1JERVInXTt9fSRxdWVyeT0iSU5TRVJUIElOVE8gIi5TRF9HUk9VUEFTU0lHTk1FTlQuIiAoR3JvdXB0U2V0SUQsIFNjcmlwdElELCBTY3JpcHRPUkRFUikgVkFMVUVTICggPyw/LD8pIjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdpZCwkU0FycmF5SXRlbSwkU2NyaXB0T1JERVIpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JHBhcmFtc1snbWVzc2FnZSddPSR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTt9fSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRHaWQuJy11bm1lcmdlLVNEJywkcGFyYW1zWyd1bm1lcmdlJ10pO31pZihpc3NldCgkcGFyYW1zWydzdWJtaXRidXR0b24nXSl8fGlzc2V0KCRwYXJhbXNbJ1NhdmUnXSkpeyRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjskZGVsZXRlZD0kZmgtPnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJEdpZC4nLXVubWVyZ2UtU0QnLCRwYXJhbXNbJ3VubWVyZ2UnXSk7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nRWRpdGVkJywnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnLCdHcm91cHRTZXQnPT4kR3JvdXBOYW1lLCdHcm91cHRJRCc9PiRHaWQsJ2dyb3VwJz0+JEdpZCwnZ3JvdXB0MSc9PiRHaWQpOyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRhc3NpZ25tZW50JywnJywkcGFyYW1zKTt9aWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nQnRuQURERUQnLCdhY3RpdmVfdGFiJz0+J2dyb3VwcycpO31lbHNleyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+J0J0bkVESVRFRCcsJ2FjdGl2ZV90YWInPT4nZ3JvdXBzJyk7fSRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjskZGVsZXRlZD0kZmgtPnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTsgPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.save_module_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZigkcGFyYW1zWydmb3JtX3N1Ym1pdCddPT0nQ29weSBGaWxlcycpe2luY2x1ZGVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2FjdGlvbi5kZWZhdWx0Q1NTLnBocCcpOyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+J2NvcGllZENNU01TJywnYWN0aXZlX3RhYic9PiRzY3JpcHRUeXBlKTt9ZWxzZXtpc3NldCgkcGFyYW1zWydkZWJ1Z0lUJ10pPyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJywkcGFyYW1zWydkZWJ1Z0lUJ10pOicnO2lzc2V0KCRwYXJhbXNbJ3JldmlzaW9uX2lucHV0J10pPyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXZpc2lvbicsJHBhcmFtc1sncmV2aXNpb25faW5wdXQnXSk6Jyc7aXNzZXQoJHBhcmFtc1sncmV2aXNpb25fTElNSVRfaW5wdXQnXSk/JHRoaXMtPlNldFByZWZlcmVuY2UoJ3JldmlzaW9uX0xJTUlUJywkcGFyYW1zWydyZXZpc2lvbl9MSU1JVF9pbnB1dCddKTonJztpc3NldCgkcGFyYW1zWydsb2NrZmlsZXNfaW5wdXQnXSk/JHRoaXMtPlNldFByZWZlcmVuY2UoJ2xvY2tmaWxlcycsJHBhcmFtc1snbG9ja2ZpbGVzX2lucHV0J10pOicnO2lzc2V0KCRwYXJhbXNbJ3VzZUVkaXRvcl9pbnB1dCddKT8kdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlRWRpdG9yJywkcGFyYW1zWyd1c2VFZGl0b3JfaW5wdXQnXSk6Jyc7aXNzZXQoJHBhcmFtc1snZWRpdG9ySGVpZ2h0X2lucHV0J10pPyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlZGl0b3JIZWlnaHQnLCRwYXJhbXNbJ2VkaXRvckhlaWdodF9pbnB1dCddKTonJztpc3NldCgkcGFyYW1zWyd3YXRjaGVkRm9sZGVyX2lucHV0J10pPyR0aGlzLT5TZXRQcmVmZXJlbmNlKCd3YXRjaGVkRm9sZGVyJyxzZXJpYWxpemUoJHBhcmFtc1snd2F0Y2hlZEZvbGRlcl9pbnB1dCddKSk6c2VyaWFsaXplKGFycmF5KCdub25lJykpOyRjbGVhck09Jyc7JHBhcmFtc1snbWVzc2FnZSddPSR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTtpZihpc3NldCgkcGFyYW1zWydjbGVhcmNhY2hlJ10pJiYkcGFyYW1zWydjbGVhcmNhY2hlJ109PSdDbGVhciBDYWNoZScpeyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7JGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOyRkZWxldGVkPSRmaC0+cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKTtpZigkZGVsZXRlZCl7JGNsZWFyTT0iPGgyPkNsZWFyZWQgJGRpcnBhdGg8L2gyPiI7fWVsc2V7JGNsZWFyTT0iPGgyPlNvcnJ5OiAkZGlycGF0aDxici8+PGZvbnQgY29sb3I9XCJyZWRcIj48c3Ryb25nPkRPRVMgTk9UIHlldCBleGlzdCBydW4gdGhlIHBsdWctaW4gb24gYW4gaW1hZ2UgZmlyc3QuPC9zdHJvbmc+PC9mb250Pjxici8+PC9oMj4iO319Zm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiRwYXJhbXNJdGVtKXt9JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nb3B0aW9uc3VwZGF0ZWQnLCdhY3RpdmVfdGFiJz0+J29wdGlvbnMnLCdjbGVhcic9PiRjbGVhck0pO30kdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOyA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.save_module_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyR1c2VyaWQ9Z2V0X3VzZXJpZChmYWxzZSk7JGFjY2Vzcz1jaGVja19wZXJtaXNzaW9uKCR1c2VyaWQsJ01vZGlmeSBUZW1wbGF0ZXMnKTskZGlyPWNtc21zKCktPmNvbmZpZ1sncm9vdF91cmwnXTskZGlycGF0aD1jbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddOyRBZG1pbmRpcj0kZGlyLicvJy5jbXNtcygpLT5jb25maWdbJ2FkbWluX2RpciddOyRlcnJvcj0nJztpZighJGFjY2Vzcyl7Q01TTW9kdWxlOjpSZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7cmV0dXJuO30kbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7aWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXskcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9PidDYW5jZWxlZCcsJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJyk7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRTY3JpcHRJRCk7Q01TTW9kdWxlOjpSZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7fWlmKGlzc2V0KCRwYXJhbXNbJ3JldmVydCddKSl7Q01TTW9kdWxlOjpSZWRpcmVjdCgkaWQsJ2VkaXRfdGVtcGxhdGUnLCcnLCRwYXJhbXMpO30kZ0Ntcz1jbXNtcygpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGxvZ2dpbj1uZXcgbG9nZ2luKCk7JGZoPW5ldyBmaWxlaGFuZGxpbmcoKTskdGVtcGxhdGU9aXNzZXQoJHBhcmFtc1sidGVtcGxhdGUiXSk/JHBhcmFtc1sidGVtcGxhdGUiXToiIjtpZihpc3NldCgkcGFyYW1zWyJtb2RlIl0pJiYkcGFyYW1zWyJtb2RlIl09PSdlZGl0Jyl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJHBhcmFtc1sibW9kdWxlIl0pOyRtb2QtPlNldFRlbXBsYXRlKCRwYXJhbXNbInRlbXBsYXRlIl0sJHBhcmFtc1siY29udGVudCJdLCRwYXJhbXNbIm1vZHVsZSJdKTtpZihpc3NldCgkcGFyYW1zWydhamF4c2F2ZSddKSYmJHBhcmFtc1snYWpheHNhdmUnXT09dHJ1ZSl7aWYoJGVycm9yPT0nJyl7ZWNobyAndHJ1ZSc7fWVsc2V7ZWNobyAkZXJyb3I7fWV4aXQoKTt9ZWxzZXtpZihpc3NldCgkcGFyYW1zWydhcHBseSddKSl7Q01TTW9kdWxlOjpSZWRpcmVjdCgkaWQsJ2VkaXRfdGVtcGxhdGUnLCcnLCRwYXJhbXMpO31lbHNleyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+J0VkaXRlZCcsJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJyk7Q01TTW9kdWxlOjpSZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7fX19ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.save_Script_Setup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZihpc3NldCgkcGFyYW1zWydzY3JpcHRUeXBlJ10pJiYkcGFyYW1zWydzY3JpcHRUeXBlJ109PSJIVE1MIil7JHRoaXMtPlJlZGlyZWN0KCRpZCwnc2F2ZV90ZW1wbGF0ZScsJycsJHBhcmFtcyk7fWlmKGlzc2V0KCRwYXJhbXNbJ3NjcmlwdFR5cGUnXSkmJiRwYXJhbXNbJ3NjcmlwdFR5cGUnXT09Ik1PRFVMRSIpeyR0aGlzLT5SZWRpcmVjdCgkaWQsJ3NhdmVfbW9kdWxlX3RlbXBsYXRlJywnJywkcGFyYW1zKTt9JGRiPSR0aGlzLT5HZXREYigpOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7JE1pbmlmeT0kc2NyaXB0TmFtZT0kcGF0aE9wdGlvbj0kc2NyaXB0VHlwZT0kU2NyaXB0SXM9JHNjcmlwdFNpemU9JG5vdGVzPSRNZWRpYVR5cGU9JFNjcmlwdElEPSRyZXZNZXNzPScnOyRTY3JpcHRJRD1pc3NldCgkcGFyYW1zWydTY3JpcHRTZXQnXSk/JHBhcmFtc1snU2NyaXB0U2V0J106Jyc7aWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXskcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9PidDYW5jZWxlZCcsJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJyk7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRTY3JpcHRJRCk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTt9aWYoaXNzZXQoJHBhcmFtc1sncmV2ZXJ0J10pKXskcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9PidCdG5BRERFRCcsJ1NjcmlwdFNldCc9PiRTY3JpcHRJRCwnbW9kZSc9PidlZGl0JywnU2NyaXB0SXNfaW5wdXQnPT4nJyk7JHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdF9zY3JpcHQnLCcnLCRwYXJhbXMpO31pZihpc3NldCgkcGFyYW1zWydkb0luc2VydENvZGUnXSkpe2lmKGlzc2V0KCRfRklMRVNbJ20xX2luc2VydENvZGVfaW5wdXQnXSkpe2VjaG8gJzxzdHlsZT5ib2R5LGh0bWx7bWFyZ2luOjBweDtwYWRkaW5nOjBweDt9PC9zdHlsZT48ZGl2IHN0eWxlPSJsZWZ0Oi05OTk5ZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5ZW07Ij48dGV4dGFyZWEgaWQ9Imluc2VydGluZ0NvZGUiPicuZmlsZV9nZXRfY29udGVudHMoJF9GSUxFU1snbTFfaW5zZXJ0Q29kZV9pbnB1dCddWyd0bXBfbmFtZSddKS4nPC90ZXh0YXJlYT48dGV4dGFyZWEgaWQ9Imluc2VydGluZ0F0Ij4nLiRwYXJhbXNbJ2luc2VydENvZGVBdF9pbnB1dCddLic8L3RleHRhcmVhPjwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MTE0cHg7bWFyZ2luLXRvcDowO3BhZGRpbmc6MTVweDsiPjxoMj4nLiR0aGlzLT5MYW5nKCdwYXN0aW5nJykuJzwvaDI+PC9kaXY+JztleGl0KCk7fWVsc2V7ZWNobyAnZmFsc2UgLSBubyBmaWxlJztleGl0KCk7fX1pZihpc3NldCgkcGFyYW1zWydvcHRpbWlzZSddKSl7JGNzc3RpZHk9Y21zX2pvaW5fcGF0aChjbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddLCdtb2R1bGVzJywnU2NyaXB0RGVwbG95JywnbGliJywnY2xhc3MuY3NzdGlkeS5waHAnKTtyZXF1aXJlX29uY2UoJGNzc3RpZHkpOyRjc3M9bmV3IGNzc3RpZHkoKTtpZihpc3NldCgkcGFyYW1zWydjYXNlX3Byb3BlcnRpZXMnXSkpJGNzcy0+c2V0X2NmZygnY2FzZV9wcm9wZXJ0aWVzJywkcGFyYW1zWydjYXNlX3Byb3BlcnRpZXMnXSk7aWYoaXNzZXQoJHBhcmFtc1snbG93ZXJjYXNlJ10pKSRjc3MtPnNldF9jZmcoJ2xvd2VyY2FzZV9zJyx0cnVlKTtpZighaXNzZXQoJHBhcmFtc1snY29tcHJlc3NfYyddKSYmaXNzZXQoJHBhcmFtc1sncG9zdCddKSkkY3NzLT5zZXRfY2ZnKCdjb21wcmVzc19jb2xvcnMnLGZhbHNlKTtpZighaXNzZXQoJHBhcmFtc1snY29tcHJlc3NfZncnXSkmJmlzc2V0KCRwYXJhbXNbJ3Bvc3QnXSkpJGNzcy0+c2V0X2NmZygnY29tcHJlc3NfZm9udC13ZWlnaHQnLGZhbHNlKTtpZihpc3NldCgkcGFyYW1zWydtZXJnZV9zZWxlY3RvcnMnXSkpJGNzcy0+c2V0X2NmZygnbWVyZ2Vfc2VsZWN0b3JzJywkcGFyYW1zWydtZXJnZV9zZWxlY3RvcnMnXSk7aWYoaXNzZXQoJHBhcmFtc1snb3B0aW1pc2Vfc2hvcnRoYW5kcyddKSkkY3NzLT5zZXRfY2ZnKCdvcHRpbWlzZV9zaG9ydGhhbmRzJywkcGFyYW1zWydvcHRpbWlzZV9zaG9ydGhhbmRzJ10pO2lmKCFpc3NldCgkcGFyYW1zWydyYnMnXSkmJmlzc2V0KCRwYXJhbXNbJ3Bvc3QnXSkpJGNzcy0+c2V0X2NmZygncmVtb3ZlX2JzbGFzaCcsZmFsc2UpO2lmKGlzc2V0KCRwYXJhbXNbJ3ByZXNlcnZlX2NzcyddKSkkY3NzLT5zZXRfY2ZnKCdwcmVzZXJ2ZV9jc3MnLHRydWUpO2lmKGlzc2V0KCRwYXJhbXNbJ3NvcnRfc2VsJ10pKSRjc3MtPnNldF9jZmcoJ3NvcnRfc2VsZWN0b3JzJyx0cnVlKTtpZihpc3NldCgkcGFyYW1zWydzb3J0X2RlJ10pKSRjc3MtPnNldF9jZmcoJ3NvcnRfcHJvcGVydGllcycsdHJ1ZSk7aWYoaXNzZXQoJHBhcmFtc1sncmVtb3ZlX2xhc3Rfc2VtJ10pKSRjc3MtPnNldF9jZmcoJ3JlbW92ZV9sYXN0XzsnLHRydWUpOyRmaWxlX29rPWZhbHNlOyRyZXN1bHQ9ZmFsc2U7aWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpe3N3aXRjaCgkcGFyYW1zWyd0ZW1wbGF0ZSddKXtjYXNlIDQ6aWYoaXNzZXQoJHBhcmFtc1snY3VzdG9tJ10pJiYhZW1wdHkoJHBhcmFtc1snY3VzdG9tJ10pKXskY3NzLT5sb2FkX3RlbXBsYXRlKCRwYXJhbXNbJ2N1c3RvbSddLGZhbHNlKTt9YnJlYWs7Y2FzZSAzOiRjc3MtPmxvYWRfdGVtcGxhdGUoJ2hpZ2hlc3RfY29tcHJlc3Npb24nKTticmVhaztjYXNlIDI6JGNzcy0+bG9hZF90ZW1wbGF0ZSgnaGlnaF9jb21wcmVzc2lvbicpO2JyZWFrO2Nhc2UgMDokY3NzLT5sb2FkX3RlbXBsYXRlKCdsb3dfY29tcHJlc3Npb24nKTticmVhazt9fSRyZXN1bHQ9JGNzcy0+cGFyc2UoJHBhcmFtc1snY3NzX3RleHQnXSk7aWYoJHJlc3VsdCl7JENTU1snY29kZSddPSRjc3MtPnByaW50LT5wbGFpbigpOyRDU1NbJ3JhdGlvJ109JGNzcy0+cHJpbnQtPmdldF9yYXRpbygpOyRDU1NbJ2RpZmYnXT0kY3NzLT5wcmludC0+Z2V0X2RpZmYoKTskbG9nPScnO2lmKGNvdW50KCRjc3MtPmxvZyk+MCl7JGxvZy49Jw0KCQkJCTxmaWVsZHNldCBpZD0ibWVzc2FnZXMiPjxsZWdlbmQ+TWVzc2FnZXM8L2xlZ2VuZD4NCgkJCQkJPGRpdj48ZGw+Jztmb3JlYWNoKCRjc3MtPmxvZyBhcyAkbGluZT0+JGFycmF5KXskbG9nLj0nPGR0PicuJGxpbmUuJzwvZHQ+Jztmb3IoJGk9MDskaTxjb3VudCgkYXJyYXkpOyRpKyspeyRsb2cuPSc8ZGQgY2xhc3M9IicuJGFycmF5WyRpXVsndCddLiciPicuJGFycmF5WyRpXVsnbSddLic8L2RkPic7fX0kbG9nLj0nPC9kbD48L2Rpdj4NCgkJCQk8L2ZpZWxkc2V0Pic7fSRDU1NbJ2xvZyddPSRsb2c7fSRyYXRpbz0nJztpZigkQ1NTWydyYXRpbyddPjApJHJhdGlvPSc8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW47Ij4nLiRDU1NbJ3JhdGlvJ10uJyU8L3NwYW4+DQogICAgKCcuJENTU1snZGlmZiddLicgQnl0ZXMpJztlbHNlICRyYXRpbz0nPHNwYW4NCiAgICBzdHlsZT0iY29sb3I6cmVkOyI+Jy4kQ1NTWydyYXRpbyddLiclPC9zcGFuPiAoJy4kQ1NTWydkaWZmJ10uJyBCeXRlcyknO2VjaG8gJzxzdHlsZT5ib2R5LGh0bWx7bWFyZ2luOjBweDtwYWRkaW5nOjBweDt9PC9zdHlsZT48ZGl2IHN0eWxlPSJsZWZ0Oi05OTk5ZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5ZW07Ij48dGV4dGFyZWEgaWQ9Imluc2VydGluZ0NvZGUiPicuJENTU1snY29kZSddLic8L3RleHRhcmVhPjx0ZXh0YXJlYSBpZD0icmF0aW8iPicuJENTU1sncmF0aW8nXS4nPC90ZXh0YXJlYT48dGV4dGFyZWEgaWQ9ImRpZmYiPicuJENTU1snZGlmZiddLic8L3RleHRhcmVhPjx0ZXh0YXJlYSBpZD0ibG9nIj4nLiRDU1NbJ2xvZyddLic8L3RleHRhcmVhPjwvZGl2PjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MTE0cHg7bWFyZ2luLXRvcDowO3BhZGRpbmc6MTVweDsiPjxoMj4nLiR0aGlzLT5MYW5nKCdyZWZvcm1hdGVkJykuJzwvaDI+PGRpdj4nLiRyYXRpby4nPC9kaXY+PGgzPicuJHRoaXMtPkxhbmcoJ2Zvcm1hdGVMb2cnKS4nPC9oMz4nLiRDU1NbJ2xvZyddLic8YnIvPjwvZGl2Pic7ZXhpdCgpO30kTWVkaWFUeXBlPWlzc2V0KCRwYXJhbXNbJ01lZGlhVHlwZV9pbnB1dCddKT8kcGFyYW1zWydNZWRpYVR5cGVfaW5wdXQnXTonJzskY3VzdG9tX21lZGlhPWlzc2V0KCRwYXJhbXNbJ2N1c3RvbV9tZWRpYSddKT8kcGFyYW1zWydjdXN0b21fbWVkaWEnXTonJzskTWluaWZ5PWlzc2V0KCRwYXJhbXNbJ01pbmlmeV9pbnB1dCddKT8kcGFyYW1zWydNaW5pZnlfaW5wdXQnXTowOyR0dXJuT2ZmUHJlbG9hZD1pc3NldCgkcGFyYW1zWyd0dXJuT2ZmUHJlbG9hZF9sYWJlbCddKT8kcGFyYW1zWyd0dXJuT2ZmUHJlbG9hZF9sYWJlbCddOjA7JHBhdGhPcHRpb249aXNzZXQoJHBhcmFtc1sncGF0aE9wdGlvbl9pbnB1dCddKT8kcGFyYW1zWydwYXRoT3B0aW9uX2lucHV0J106Jyc7JHNjcmlwdFR5cGU9aXNzZXQoJHBhcmFtc1snc2NyaXB0VHlwZV9pbnB1dCddKT8kcGFyYW1zWydzY3JpcHRUeXBlX2lucHV0J106Jyc7JHNjcmlwdE5hbWU9aXNzZXQoJHBhcmFtc1snU2NyaXB0U2V0X2lucHV0J10pPyRwYXJhbXNbJ1NjcmlwdFNldF9pbnB1dCddOicnOyRVc2VQYXRoT3B0aW9uPWlzc2V0KCRwYXJhbXNbJ1VzZVBhdGhPcHRpb25faW5wdXQnXSk/JHBhcmFtc1snVXNlUGF0aE9wdGlvbl9pbnB1dCddOicnOyRyb290VVJMPWlzc2V0KCRwYXJhbXNbJ3Jvb3RVUkxfaW5wdXQnXSk/JHBhcmFtc1sncm9vdFVSTF9pbnB1dCddOicnOyRyZXZpc2lvbj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb24nKTskbm90ZXM9aXNzZXQoJHBhcmFtc1snbm90ZXNfaW5wdXQnXSk/JHBhcmFtc1snbm90ZXNfaW5wdXQnXTonJzskbm90ZXM9c3RyX3JlcGxhY2UoJy8qJywiIiwkbm90ZXMpOyRub3Rlcz1zdHJfcmVwbGFjZSgnKi8nLCIiLCRub3Rlcyk7JHNjcmlwdFNpemU9c3RybGVuKHV0ZjhfZGVjb2RlKCRTY3JpcHRJcykpOyRTY3JpcHRJcz1pc3NldCgkcGFyYW1zWydTY3JpcHRJc19pbnB1dCddKT8kcGFyYW1zWydTY3JpcHRJc19pbnB1dCddOicnOyRzY3JpcHRQcmVmPWFycmF5KCk7aWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7JFVzZXJpZD1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygpOyR1SUQ9JFVzZXJpZFsnVXNlcmlkJ107JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVE5BTUVTLiIgU0VUIFNjcmlwdFNldD0/IjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNjcmlwdE5hbWUpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fSRMYXN0SUQ9JGRiLT5JbnNlcnRfSUQoKTskbm93PXRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCInIik7JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVE9QVElPTlMuIiAiLiIoSUQsdXNlcklELHBhdGhPcHRpb24sc2NyaXB0VHlwZSxzY3JpcHRTaXplLG5vdGVzLGNyZWF0ZWQsbGFzdF9lZGl0KSAiLiJWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPykiOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkTGFzdElELCR1SUQsJHBhdGhPcHRpb24sJHNjcmlwdFR5cGUsJHNjcmlwdFNpemUsJG5vdGVzLCRub3csJG5vdykpO2lmKCEkcmVzdWx0KXskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9JHF1ZXJ5PSJJTlNFUlQgSU5UTyAiLlNEX1NDUklQVFBBUlRTLiIgIi4iKElELCBTY3JpcHRJcykgIi4iVkFMVUVTICg/LD8pIjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJExhc3RJRCwkU2NyaXB0SXMpKTtpZighJHJlc3VsdCl7JHBhcmFtc1snbWVzc2FnZSddPW15c3FsX2Vycm9yKCk7fWVsc2V7JHBhcmFtc1snbWVzc2FnZSddPSR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTt9aWYoJHJldmlzaW9uKXtzY3JpcHRkZXBsb3lfdXRpbHM6OlNldFNjcmlwdEJhY2t1cCgkTGFzdElELCRTY3JpcHRJcywnMScpOyRyZXZNZXNzPSd8IHJldjoxJzt9JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1pbmlmeS1TRCcsJE1pbmlmeSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLVBhdGhPcC1TRCcsJHBhdGhPcHRpb24pOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRMYXN0SUQuJy1yb290VVJMLVNEJywkcm9vdFVSTCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLXR1cm5PZmZQcmVsb2FkLVNEJywkdHVybk9mZlByZWxvYWQpO2lmKCRzY3JpcHRUeXBlPT0nQ1NTJyl7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1lZGlhVHlwZS1TRCcsJE1lZGlhVHlwZSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLU1lZGlhVHlwZS1TRCcsJGN1c3RvbV9tZWRpYSk7fWlzc2V0KCRNaW5pZnkpPyRzY3JpcHRQcmVmWydNaW5pZnknXT0kTWluaWZ5OicnO2lzc2V0KCRwYXRoT3B0aW9uKT8kc2NyaXB0UHJlZlsnUGF0aE9wJ109JHBhdGhPcHRpb246Jyc7aXNzZXQoJHJvb3RVUkwpPyRzY3JpcHRQcmVmWydyb290VVJMJ109JHJvb3RVUkw6Jyc7aXNzZXQoJHR1cm5PZmZQcmVsb2FkKT8kc2NyaXB0UHJlZlsndHVybk9mZlByZWxvYWQnXT0kdHVybk9mZlByZWxvYWQ6Jyc7aXNzZXQoJE1lZGlhVHlwZSk/JHNjcmlwdFByZWZbJ01lZGlhVHlwZSddPSRNZWRpYVR5cGU6Jyc7aXNzZXQoJGN1c3RvbV9tZWRpYSk/JHNjcmlwdFByZWZbJ2N1c3RvbV9tZWRpYSddPSRjdXN0b21fbWVkaWE6Jyc7JHRoaXMtPlNldFByZWZlcmVuY2UoJExhc3RJRC4nLXNjcmlwdFByZWYtU0QnLHNlcmlhbGl6ZSgkc2NyaXB0UHJlZikpOyRsb2dnaW4tPl9kb0F1ZGl0KCdhZGQnLCdvaycsImFkZGVkICRzY3JpcHROYW1lIC0gc2NyaXB0IGlkOiRMYXN0SUQgJHJldk1lc3MiLCcnLCdTY3JpcHREZXBsb3knKTtzY3JpcHRkZXBsb3lfdXRpbHM6OmxvY2tfc2NyaXB0KCRMYXN0SUQsJHVJRCk7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRMYXN0SUQpO2lmKCRwYXJhbXNbJ2FqYXhzYXZlJ109PXRydWUpe2lmKCRyZXN1bHQpe2VjaG8gJHNjcmlwdFR5cGUuJExhc3RJRDt9ZWxzZXtlY2hvICdmYWxzZSc7fWV4aXQoKTt9fWVsc2UgaWYoJHBhcmFtc1snbW9kZSddPT0nZWRpdCcpeyRub3c9dHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKTskcXVlcnk9IlVQREFURSAiLlNEX1NDUklQVE5BTUVTLiIgc24gIi4iSU5ORVIgam9pbiAgIi5TRF9TQ1JJUFRPUFRJT05TLiIgc28gT04gc24uSUQgPSBzby5JRCAiLiJJTk5FUiBqb2luICAiLlNEX1NDUklQVFBBUlRTLiIgc3AgT04gc24uSUQgPSBzcC5JRCAiLiJTRVQgIHNuLlNjcmlwdFNldD0/LCBzby5wYXRoT3B0aW9uPT8sIHNvLnNjcmlwdFR5cGU9Pywgc3AuU2NyaXB0SXM9Pywgc28uc2NyaXB0U2l6ZT0/LCBzby5ub3Rlcz0/LCAgc28ubGFzdF9lZGl0PT8gV0hFUkUgc24uSUQgPSA/IjskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNjcmlwdE5hbWUsJHBhdGhPcHRpb24sJHNjcmlwdFR5cGUsJFNjcmlwdElzLCRzY3JpcHRTaXplLCRub3Rlcywkbm93LCRTY3JpcHRJRCkpO2lmKCEkcmVzdWx0KXskcGFyYW1zWydtZXNzYWdlJ109bXlzcWxfZXJyb3IoKTt9ZWxzZXskcGFyYW1zWydtZXNzYWdlJ109JHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpO30kdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2NyaXB0SUQuJy1QYXRoT3AtU0QnLCRwYXRoT3B0aW9uKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2NyaXB0SUQuJy1yb290VVJMLVNEJywkcm9vdFVSTCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJFNjcmlwdElELictTWluaWZ5LVNEJywkTWluaWZ5KTskdGhpcy0+U2V0UHJlZmVyZW5jZSgkU2NyaXB0SUQuJy10dXJuT2ZmUHJlbG9hZC1TRCcsJHR1cm5PZmZQcmVsb2FkKTtpc3NldCgkTWluaWZ5KT8kc2NyaXB0UHJlZlsnTWluaWZ5J109JE1pbmlmeTonJztpc3NldCgkcGF0aE9wdGlvbik/JHNjcmlwdFByZWZbJ1BhdGhPcCddPSRwYXRoT3B0aW9uOicnO2lzc2V0KCRyb290VVJMKT8kc2NyaXB0UHJlZlsncm9vdFVSTCddPSRyb290VVJMOicnO2lzc2V0KCR0dXJuT2ZmUHJlbG9hZCk/JHNjcmlwdFByZWZbJ3R1cm5PZmZQcmVsb2FkJ109JHR1cm5PZmZQcmVsb2FkOicnO2lzc2V0KCRNZWRpYVR5cGUpPyRzY3JpcHRQcmVmWydNZWRpYVR5cGUnXT0kTWVkaWFUeXBlOicnO2lzc2V0KCRjdXN0b21fbWVkaWEpPyRzY3JpcHRQcmVmWydjdXN0b21fbWVkaWEnXT0kY3VzdG9tX21lZGlhOicnOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCRTY3JpcHRJRC4nLXNjcmlwdFByZWYtU0QnLHNlcmlhbGl6ZSgkc2NyaXB0UHJlZikpOyRsb2dnaW4tPl9kb0F1ZGl0KCdlZGl0Jywnb2snLCR0aGlzLT5MYW5nKCdDaGVja2VkT3V0X2RvQXVkaXQnKS4iIGlkOiRTY3JpcHRJRCIsJycsJ1NjcmlwdERlcGxveScpO2lmKCRzY3JpcHRUeXBlPT0nQ1NTJyl7JHRoaXMtPlNldFByZWZlcmVuY2UoJFNjcmlwdElELictTWVkaWFUeXBlLVNEJywkTWVkaWFUeXBlKTt9aWYoJHJldmlzaW9uKXskcmV2aXNpb249c2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRMYXN0UmV2aXNpb24oJFNjcmlwdElEKSsxO3NjcmlwdGRlcGxveV91dGlsczo6U2V0U2NyaXB0QmFja3VwKCRTY3JpcHRJRCwkU2NyaXB0SXMsJHJldmlzaW9uKTtzY3JpcHRkZXBsb3lfdXRpbHM6OkNsZWFyVGhpc1JldmlzaW9uKCRTY3JpcHRJRCwkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb25fTElNSVQnKSk7JHJldk1lc3M9J3wgcmV2OicuJHJldmlzaW9uO30kbG9nZ2luLT5fZG9BdWRpdCgnZWRpdCcsJ29rJywiZWRpdGVkICRzY3JpcHROYW1lIC0gc2NyaXB0IGlkOiRTY3JpcHRJRCAkcmV2TWVzcyIsJycsJ1NjcmlwdERlcGxveScpO31pZihpc3NldCgkcGFyYW1zWydhcHBseSddKSl7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nQnRuQURERUQnLCdTY3JpcHRTZXQnPT4kU2NyaXB0SUQsJ21vZGUnPT4nZWRpdCcsJ1NjcmlwdElzX2lucHV0Jz0+JycpOyRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjskZGVsZXRlZD0kZmgtPnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCk7aWYoJGRlbGV0ZWQ9dHJ1ZSl7aWYoJHBhcmFtc1snYWpheHNhdmUnXT09dHJ1ZSl7ZWNobyAndHJ1ZSc7ZXhpdCgpO31lbHNleyR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRfc2NyaXB0JywnJywkcGFyYW1zKTt9fX1pZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXskcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9PidCdG5BRERFRCcsJ2FjdGl2ZV90YWInPT4kc2NyaXB0VHlwZSk7fWVsc2V7JHBhcmFtcz1hcnJheSgndGFiX21lc3NhZ2UnPT4nQnRuRURJVEVEJywnYWN0aXZlX3RhYic9PiRzY3JpcHRUeXBlKTt9JGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iO2lmKCRmaC0+cmVjdXJzaXZlX3JtZGlyKCRkaXJwYXRoKSl7JGxvZ2dpbi0+X2RvQXVkaXQoJ2Rlc3Ryb3knLCdvaycsJHRoaXMtPkxhbmcoJ2VtcHRpZWRDYWNoX2RvQXVkaXQnKSwnJywnU2NyaXB0RGVwbG95Jyk7fWlmKCRwYXJhbXNbJ2FqYXhzYXZlJ109PXRydWUpeyRkaXJwYXRoPSRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIjtpZigkZmgtPnJlY3Vyc2l2ZV9ybWRpcigkZGlycGF0aCkpeyRsb2dnaW4tPl9kb0F1ZGl0KCdkZXN0cm95Jywnb2snLCR0aGlzLT5MYW5nKCdlbXB0aWVkQ2FjaF9kb0F1ZGl0JyksJycsJ1NjcmlwdERlcGxveScpO31pZigkcmVzdWx0KXtlY2hvICd0cnVlJzt9ZWxzZXtlY2hvICdmYWxzZSc7fWV4aXQoKTt9ZWxzZXtzY3JpcHRkZXBsb3lfdXRpbHM6OnVubG9ja19zY3JpcHQoJFNjcmlwdElEKTskdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpO30gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.save_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyR1c2VyaWQ9Z2V0X3VzZXJpZChmYWxzZSk7JGFjY2Vzcz1jaGVja19wZXJtaXNzaW9uKCR1c2VyaWQsJ01vZGlmeSBUZW1wbGF0ZXMnKTskZGlyPWNtc21zKCktPmNvbmZpZ1sncm9vdF91cmwnXTskZGlycGF0aD1jbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddOyRBZG1pbmRpcj0kZGlyLicvJy5jbXNtcygpLT5jb25maWdbJ2FkbWluX2RpciddO2lmKCEkYWNjZXNzKXtDTVNNb2R1bGU6OlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTtyZXR1cm47fSRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTtpZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpeyRwYXJhbXM9YXJyYXkoJ3RhYl9tZXNzYWdlJz0+J0NhbmNlbGVkJywnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnKTtzY3JpcHRkZXBsb3lfdXRpbHM6OnVubG9ja19zY3JpcHQoJFNjcmlwdElEKTtDTVNNb2R1bGU6OlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFyYW1zKTt9aWYoaXNzZXQoJHBhcmFtc1sncmV2ZXJ0J10pKXtDTVNNb2R1bGU6OlJlZGlyZWN0KCRpZCwnZWRpdF90ZW1wbGF0ZScsJycsJHBhcmFtcyk7fSRnQ21zPWNtc21zKCk7JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskbG9nZ2luPW5ldyBsb2dnaW4oKTskZmg9bmV3IGZpbGVoYW5kbGluZygpOyR0ZW1wbGF0ZW9wcz0kZ0Ntcy0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7JHRlbXBsYXRlX2lkPWlzc2V0KCRwYXJhbXNbInRlbXBsYXRlX2lkIl0pPyRwYXJhbXNbInRlbXBsYXRlX2lkIl06LTE7JHRlbXBsYXRlPWlzc2V0KCRwYXJhbXNbInRlbXBsYXRlIl0pPyRwYXJhbXNbInRlbXBsYXRlIl06IiI7JG9yaWdfdGVtcGxhdGU9aXNzZXQoJHBhcmFtc1sib3JpZ190ZW1wbGF0ZSJdKT8kcGFyYW1zWyJvcmlnX3RlbXBsYXRlIl06IiI7JGNvbnRlbnQ9aXNzZXQoJHBhcmFtc1siY29udGVudCJdKT8kcGFyYW1zWyJjb250ZW50Il06IiI7JHN0eWxlc2hlZXQ9aXNzZXQoJHBhcmFtc1sic3R5bGVzaGVldCJdKT8kcGFyYW1bImNvbnRlbnQiXToiIjskZW5jb2Rpbmc9aXNzZXQoJHBhcmFtc1siZW5jb2RpbmciXSk/JHBhcmFtc1siZW5jb2RpbmciXToiIjskZnJvbT1pc3NldCgkcGFyYW1zWyJmcm9tIl0pPyRwYXJhbXNbImZyb20iXToiIjskY3NzaWQ9aXNzZXQoJHBhcmFtc1siY3NzaWQiXSk/JHBhcmFtc1siY3NzaWQiXToiIjskYWN0aXZlPSFpc3NldCgkcGFyYW1zWyJhY3RpdmUiXSkmJmlzc2V0KCRwYXJhbXNbImVkaXR0ZW1wbGF0ZSJdKT8wOjE7aWYoaXNzZXQoJHBhcmFtc1sibW9kZSJdKSYmJHBhcmFtc1sibW9kZSJdPT0nZWRpdCcpeyRlcnJvcj0nJzskdmFsaWRpbmZvPXRydWU7aWYoJHRlbXBsYXRlPT0iIil7JGVycm9yLj0iPGxpPiIubGFuZygnbm9maWVsZGdpdmVuJyxhcnJheShsYW5nKCduYW1lJykpKS4iPC9saT4iOyR2YWxpZGluZm89ZmFsc2U7fWVsc2UgaWYoJHRlbXBsYXRlb3BzLT5DaGVja0V4aXN0aW5nVGVtcGxhdGVOYW1lKCR0ZW1wbGF0ZSwkdGVtcGxhdGVfaWQpKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCd0ZW1wbGF0ZWV4aXN0cycpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9aWYoJGNvbnRlbnQ9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLGFycmF5KGxhbmcoJ2NvbnRlbnQnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9aWYoJHZhbGlkaW5mbyl7JG9uZXRlbXBsYXRlPSR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJRCgkdGVtcGxhdGVfaWQpOyRvbmV0ZW1wbGF0ZS0+bmFtZT0kdGVtcGxhdGU7JG9uZXRlbXBsYXRlLT5jb250ZW50PSRjb250ZW50OyRvbmV0ZW1wbGF0ZS0+c3R5bGVzaGVldD0kc3R5bGVzaGVldDskb25ldGVtcGxhdGUtPmVuY29kaW5nPSRlbmNvZGluZzskb25ldGVtcGxhdGUtPmFjdGl2ZT0kYWN0aXZlO0V2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywnRWRpdFRlbXBsYXRlUHJlJyxhcnJheSgndGVtcGxhdGUnPT4mJG9uZXRlbXBsYXRlKSk7JHJlc3VsdD0kb25ldGVtcGxhdGUtPlNhdmUoKTtpZigkcmVzdWx0KXskb3JpZ190ZW1wbGF0ZT0kdGVtcGxhdGU7RXZlbnRzOjpTZW5kRXZlbnQoJ0NvcmUnLCdFZGl0VGVtcGxhdGVQb3N0JyxhcnJheSgndGVtcGxhdGUnPT4mJG9uZXRlbXBsYXRlKSk7YXVkaXQoJHRlbXBsYXRlX2lkLCdIVE1MLXRlbXBsYXRlOiAnLiRvbmV0ZW1wbGF0ZS0+bmFtZSwnRWRpdGVkJyk7fWVsc2V7JGVycm9yLj0iPGxpPiIubGFuZygnZXJyb3J1cGRhdGluZ3RlbXBsYXRlJykuIjwvbGk+Ijt9aWYoaXNzZXQoJHBhcmFtc1snYWpheHNhdmUnXSkmJiRwYXJhbXNbJ2FqYXhzYXZlJ109PXRydWUpe2lmKCRlcnJvcj09Jycpe2VjaG8gJ3RydWUnO31lbHNle2VjaG8gJGVycm9yO31leGl0KCk7fWVsc2V7aWYoaXNzZXQoJHBhcmFtc1snYXBwbHknXSkpe0NNU01vZHVsZTo6UmVkaXJlY3QoJGlkLCdlZGl0X3RlbXBsYXRlJywnJywkcGFyYW1zKTt9ZWxzZXskcGFyYW1zPWFycmF5KCd0YWJfbWVzc2FnZSc9PidFZGl0ZWQnLCdhY3RpdmVfdGFiJz0+J3NjcmlwdF90ZW1wbGF0ZScpO0NNU01vZHVsZTo6UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpO319fX0gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.valCSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJHNJRD0zO3NkVmFsOjpWYWxDU1N3YXJuaW5ncygkc0lEKTtzZFZhbDo6VmFsQ1NTZXJyb3JzKCRzSUQpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.valHTML.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZihpc3NldCgkcGFyYW1zWydnZXRtb2R1bGUnXSkmJmlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlSWQnXSkpe2lmKCRwYXJhbXNbJ2dldG1vZHVsZSddPT0nY29yZScpeyR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0UGFnZScsJ2F1dG8nKTskdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b0NvbnRlbnQnKTskcGFyYW1bInNlcmlhbGl6ZWRfY29udGVudCJdPXNlcmlhbGl6ZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b0NvbnRlbnQnKSk7JHBhcmFtWyd0ZW1wbGF0ZV9pZCddPSRwYXJhbXNbJ3RlbXBsYXRlSWQnXTtmaWxlX2dldF9jb250ZW50cyhzY3JpcHRkZXBsb3lfdXRpbHM6OnRlbXBsYXRlX3ByZXZpZXcoJHBhcmFtKSk7fX0gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.view_logs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJENNU19VU0VSX0tFWT1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldO2lmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpe3JldHVybjt9JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTtpZighaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7JHBhcmFtc1snYWN0aXZlX3RhYiddPSdzY3JpcHRfdGVtcGxhdGUnO30kY2FjaGVJbmZvPScnOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRsb2c9JGxvZ2dpbi0+cHVsbExvZygxLDk5OTk5LCJpdGVtX25hbWU9J1NjcmlwdERlcGxveSciKTskY2FjaGVJbmZvLj0nPGgxIHN0eWxlPSJmbG9hdDogbGVmdDsiPicuJHRoaXMtPkxhbmcoJ0VkaXRIaXN0b3J5JykuJzwvaDE+PHRhYmxlIGNlbGxzcGFjaW5nPSIxIiBjbGFzcz0idGFibGVzb3J0ZXIgdWlfZ3JpZCIgaWQ9IlRTMSI+DQoJCQk8dGhlYWQ+DQoJCQkJPHRyPg0KCQkJCQk8dGggc3R5bGU9InBhZGRpbmctcmlnaHQ6MTVweDsiPnVzZXJuYW1lPC90aD4NCgkJCQkJPHRoIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjE1cHg7Ij5pZDwvdGg+DQoJCQkJCTx0aCBzdHlsZT0icGFkZGluZy1yaWdodDoxNXB4OyI+Y29kZTwvdGg+DQoJCQkJCTwhLS08dGg+aXRlbV9uYW1lPC90aD4tLT4NCgkJCQkJPHRoIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjE1cHg7Ij5hY3Rpb24gdG9vazwvdGg+DQoJCQkJCTx0aCBzdHlsZT0icGFkZGluZy1yaWdodDoxNXB4OyI+dGltZXN0YW1wPC90aD4NCgkJCQk8L3RyPg0KCQkJPC90aGVhZD4NCgkJCTx0Ym9keT4nLiRsb2cuJzwvdGJvZHk+DQoJCTwvdGFibGU+DQoJPGRpdiBjbGFzcz0idGFibGVfZm9vdGVyIj4JCQ0KCQk8ZGl2IGlkPSJwYWdlciIgY2xhc3M9InBhZ2VyIj4NCgkJCQk8aW1nIHNyYz0iLi4vbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9maXJzdC5wbmciIGNsYXNzPSJmaXJzdCIgYWx0PSJmaXJzdCIvPg0KCQkJCTxpbWcgc3JjPSIuLi9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL3ByZXYucG5nIiBjbGFzcz0icHJldiIgYWx0PSJwcmV2Ii8+DQoJCQkJPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwYWdlZGlzcGxheSIvPg0KCQkJCTxpbWcgc3JjPSIuLi9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL25leHQucG5nIiBjbGFzcz0ibmV4dCIgYWx0PSJuZXh0Ii8+DQoJCQkJPGltZyBzcmM9Ii4uL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvbGFzdC5wbmciIGNsYXNzPSJsYXN0IiBhbHQ9Imxhc3QiLz4NCgkJCQk8c2VsZWN0IGNsYXNzPSJwYWdlc2l6ZSI+DQoJCQkJPG9wdGlvbiBzZWxlY3RlZD0ic2VsZWN0ZWQiIHZhbHVlPSI1Ij41PC9vcHRpb24+DQoJCQkJCTxvcHRpb24gdmFsdWU9IjEwIj4xMDwvb3B0aW9uPg0KCQkJCQk8b3B0aW9uIHZhbHVlPSIyMCI+MjA8L29wdGlvbj4NCgkJCQkJPG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+DQoJCQkJCTxvcHRpb24gIHZhbHVlPSI0MCI+NDA8L29wdGlvbj4NCgkJCQk8L3NlbGVjdD4NCgkJPC9kaXY+DQoJPC9kaXY+DQonOyRzbWFydHktPmFzc2lnbignY2FjaGVJbmZvJywkY2FjaGVJbmZvKTtlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Z1bmN0aW9uL3ZpZXdfbG9ncy50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/admin/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/admin/action.assests_listings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7JG1vZC0+d29ya2luZ1dpdGg9J01PRFRFTVBMQVRFJzskY29uZmlnPSRnQ21zLT5HZXRDb25maWcoKTskZGlyPSRjb25maWdbJ3Jvb3RfdXJsJ107JEFkbWluZGlyPSRkaXIuJy8nLiRjb25maWdbJ2FkbWluX2RpciddOyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7JG91dHB1dGluZz1hcnJheSgpO3N3aXRjaCgkbW9kLT53b3JraW5nV2l0aCl7Y2FzZSAnTU9EVEVNUExBVEUnOiRhbGxfbW9kdWxlcz1hcnJheSgpO2lmKGVtcHR5KCRnQ21zLT5tb2R1bGVzKSl7JHVpZD1nZXRfdXNlcmlkKEZBTFNFKTskZm49VE1QX0NBQ0hFX0xPQ0FUSU9OLicvdGhlbWVpbmZvXycuJHVpZC4nLmNhY2hlJzskZGF0YT1udWxsO2lmKCFmaWxlX2V4aXN0cygkZm4pKXskbW9kdWxlcz1Nb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+R2V0SW5zdGFsbGVkTW9kdWxlcygpOyR1c2VybW9kdWxlaW5mbz1hcnJheSgpO2ZvcmVhY2goJG1vZHVsZXMgYXMgJGtleSl7JG9iamVjdD1Nb2R1bGVPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+Z2V0X21vZHVsZV9pbnN0YW5jZSgka2V5KTtpZigkb2JqZWN0JiYkb2JqZWN0LT5IYXNBZG1pbigpJiYkb2JqZWN0LT5WaXNpYmxlVG9BZG1pblVzZXIoKSl7JHJlYz1hcnJheSgpOyRyZWNbJ2FkbWluc2VjdGlvbiddPSRvYmplY3QtPkdldEFkbWluU2VjdGlvbigpOyRyZWNbJ2ZyaWVuZGx5bmFtZSddPSRvYmplY3QtPkdldEZyaWVuZGx5TmFtZSgpOyRyZWNbJ2FkbWluZGVzY3JpcHRpb24nXT0kb2JqZWN0LT5HZXRBZG1pbkRlc2NyaXB0aW9uKCk7JHVzZXJtb2R1bGVpbmZvWyRrZXldPSRyZWM7fU1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT51bmxvYWRfbW9kdWxlKCRrZXkpO3Vuc2V0KCRvYmplY3QpO311bnNldCgkbW9kdWxlcyk7JGRhdGE9JHVzZXJtb2R1bGVpbmZvOyR0bXA9c2VyaWFsaXplKCRkYXRhKTtmaWxlX3B1dF9jb250ZW50cygkZm4sYmFzZTY0X2VuY29kZSgkdG1wKSk7fWVsc2V7JGRhdGE9ZmlsZV9nZXRfY29udGVudHMoJGZuKTskZGF0YT1iYXNlNjRfZGVjb2RlKCRkYXRhKTskZGF0YT11bnNlcmlhbGl6ZSgkZGF0YSk7fWZvcmVhY2goJGRhdGEgYXMgJGtleT0+JHZhbHVlKXskYWxsX21vZHVsZXNbXT0ka2V5O319ZWxzZXtmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRtb2R1bGVfbmFtZT0+JGRldGFpbHMpeyRhbGxfbW9kdWxlc1tdPSRtb2R1bGVfbmFtZTt9fSRpPTE7Zm9yZWFjaCgkYWxsX21vZHVsZXMgYXMgJG1vZHVsZV9uYW1lKXskbW9kdWxlX3RlbXBsYXRlcz1hcnJheSgpOyR0bXA9YXJyYXkoKTskc3RhdHVzPWFycmF5KCk7JGRldGFpbHM9YXJyYXkoKTskYWN0aW9ucz1hcnJheSgpOyR2ZXJzaW9uPWFycmF5KCk7JHRlc3Q9Q21zTW9kdWxlOjpHZXRNb2R1bGVJbnN0YW5jZSgkbW9kdWxlX25hbWUpOyR0ZW1wcz0kdGVzdC0+TGlzdFRlbXBsYXRlcygkbW9kdWxlX25hbWUpO2lmKCFlbXB0eSgkdGVtcHMpKXtmb3JlYWNoKCR0ZW1wcyBhcyAkdGVtcGxhdGVfbmFtZSl7JHRtcFsnaWQnXT0kbW9kdWxlX25hbWU7JHRtcFsnbmFtZSddPSR0ZW1wbGF0ZV9uYW1lOyR0bXBbJ3N0YXR1cyddPSRzdGF0dXM7JGRldGFpbHNbJ3R5cGUnXT0nJzskZGV0YWlsc1sndXNlZCddPScnOyRkZXRhaWxzWydkZWZhdWx0J109Jyc7JGRldGFpbHNbJ3ZhbGlkJ109Jyc7JGRldGFpbHNbJ3RpZXN0byddPScnOyR0bXBbJ2RldGFpbHMnXT0kZGV0YWlsczskYWN0aW9uc1snZWRpdCddPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnTVRfYWN0aW9uJywkcmV0dXJuaWQsJycsYXJyYXkoJ21vZGUnPT4nZWRpdCcsJ2FjdGl2ZV90YWInPT4nTVQnLCdtb2R1bGVfbmFtZSc9PiRtb2R1bGVfbmFtZSwndGVtcGxhdGVfbmFtZSc9PiR0ZW1wbGF0ZV9uYW1lKSwnJyx0cnVlLGZhbHNlLCcgY2xhc3M9ImVkaXRUZW1wbGF0ZSIgJyk7JGFjdGlvbnNbJ2RlbGV0ZSddPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnTVRfYWN0aW9uJywkcmV0dXJuaWQsJycsYXJyYXkoJ21vZGUnPT4nZGVsZXRlJywnYWN0aXZlX3RhYic9PidNVCcsJ21vZHVsZV9uYW1lJz0+JG1vZHVsZV9uYW1lLCd0ZW1wbGF0ZV9uYW1lJz0+JHRlbXBsYXRlX25hbWUpLCR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJyksdHJ1ZSk7JGFjdGlvbnNbJ2NvcHknXT0kdGhpcy0+Q3JlYXRlTGluaygkaWQsJ01UX2FjdGlvbicsJHJldHVybmlkLCcnLGFycmF5KCdtb2RlJz0+J2NvcHknLCdhY3RpdmVfdGFiJz0+J01UJywnbW9kdWxlX25hbWUnPT4kbW9kdWxlX25hbWUsJ3RlbXBsYXRlX25hbWUnPT4kdGVtcGxhdGVfbmFtZSksJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfQ29weScpLHRydWUpOyRhY3Rpb25zWydzdGVhbCddPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnTVRfYWN0aW9uJywkcmV0dXJuaWQsJycsYXJyYXkoJ21vZGUnPT4nc3RlYWwnLCdhY3RpdmVfdGFiJz0+J01UJywnbW9kdWxlX25hbWUnPT4kbW9kdWxlX25hbWUsJ3RlbXBsYXRlX25hbWUnPT4kdGVtcGxhdGVfbmFtZSksJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfc3RlYWwnKSx0cnVlKTskYWN0aW9uc1sndGllc3RvJ109JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdNVF9hY3Rpb24nLCRyZXR1cm5pZCwnJyxhcnJheSgnbW9kZSc9Pid0aWVzdG8nLCdhY3RpdmVfdGFiJz0+J01UJywnbW9kdWxlX25hbWUnPT4kbW9kdWxlX25hbWUsJ3RlbXBsYXRlX25hbWUnPT4kdGVtcGxhdGVfbmFtZSksJycsdHJ1ZSk7JHRtcFsnYWN0aW9ucyddPSRhY3Rpb25zOyR2ZXJzaW9uWydyZXZpc2lvbiddPScyNTYnOyR2ZXJzaW9uWydsaXZldmVyc2lvbiddPScxNSc7JHZlcnNpb25bJ21ha2VsaXZlJ109JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdNVF9hY3Rpb24nLCRyZXR1cm5pZCwnJyxhcnJheSgnbW9kZSc9PidtYWtlbGl2ZScsJ2FjdGl2ZV90YWInPT4nTVQnLCdtb2R1bGVfbmFtZSc9PiRtb2R1bGVfbmFtZSwndGVtcGxhdGVfbmFtZSc9PiR0ZW1wbGF0ZV9uYW1lKSwnJyx0cnVlKTskdmVyc2lvblsncmV2ZXJ0J109JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdNVF9hY3Rpb24nLCRyZXR1cm5pZCwnJyxhcnJheSgnbW9kZSc9PidyZXZlcnQnLCdhY3RpdmVfdGFiJz0+J01UJywnbW9kdWxlX25hbWUnPT4kbW9kdWxlX25hbWUsJ3RlbXBsYXRlX25hbWUnPT4kdGVtcGxhdGVfbmFtZSksJycsdHJ1ZSk7JHRtcFsndmVyc2lvbiddPSR2ZXJzaW9uOyRtb2R1bGVfdGVtcGxhdGVzW109JHRtcDskaSsrO30kb3V0cHV0aW5nWyRtb2R1bGVfbmFtZV09JG1vZHVsZV90ZW1wbGF0ZXM7fX0kYWRtaW5UZW1wbGF0ZT0nL2FkbWluLycuJG1vZC0+d29ya2luZ1dpdGg7YnJlYWs7fSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtb2QnLCRtb2QpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvdXRwdXQnLCRvdXRwdXRpbmcpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkaXInLCRkaXIpO3JldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCRhZG1pblRlbXBsYXRlLidfbGlzdGluZy50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/admin/action.script_listings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJHRtcD0nJztvYl9zdGFydCgpOyA/PgkNCg0KPGRpdiBjbGFzcz0iYWRtaW5fc3VidGFicyB1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIj4NCiAgICA8dWwgY2xhc3M9InRhYmVyczIgdWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiPg0KICAgICAgICA8bGkgY2xhc3M9ImN1cnJlbnQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIHVpLXRhYnMtc2VsZWN0ZWQgdWktc3RhdGUtYWN0aXZlIj48YSBocmVmPSIjc2NyaXB0cyI+U2luZ2xlIFNjcmlwdHM8L2E+PC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AgdWktdGFicy1zZWxlY3RlZCI+PGEgaHJlZj0iI2dyb3VwcyIgID5Hcm91cGVkIFNjcmlwdHM8L2E+PC9saT4NCiAgICA8L3VsPg0KICAgIDxkaXYgY2xhc3M9InBhbmUgYWNvciAgdWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiBpZD0ic2NyaXB0cyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij4NCiAgICANCiAgICAgICAgPGgyPjw/cGhwIGVjaG8gJHRoaXMtPkxhbmcoJ3RpdGxlX1NjcmlwdHMnKSA/PjwvaDI+DQogICAgICAgIDx1bCBpZD0ic2NyaXB0Q2hvaWNlIiBjbGFzcz0idWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci10b3AiPg0KICAgICAgICA8bGkgaWQ9IlNfQ1NTIiAgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCI+Q1NTPC9saT4NCiAgICAgICAgPGxpIGlkPSJTX0pTIiAgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCI+SlM8L2xpPg0KICAgICAgICA8L3VsPg0KICAgICAgICA8c3BhbiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MHB4O3RvcDoycHg7ZmxvYXQ6cmlnaHQ7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi1ib3R0b206MHB4O3BhZGRpbmctdG9wOjVweDsiPg0KICAgICAgICAgICAgPD9waHAgZWNobyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2VkaXRfc2NyaXB0JywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWRkLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3U2NyaXB0JykuJyIgLz4nLiR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3U2NyaXB0JyksYXJyYXkoJ3N0YXR1cyc9PiduZXcnLCdtb2RlJz0+J2FkZCcpLCcnLGZhbHNlLGZhbHNlLCcgY2xhc3M9ImFkZFNjcmlwdCInKSA/Pg0KICAgICAgICA8L3NwYW4+DQogICAgICAgIDxkaXYgY2xhc3M9ImFjY29yZGlvbiI+DQogICAgICAgICAgICA8aDMgaWQ9IlRBQlNfQ1NTIj4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idHh0Ij5DU1M8L3NwYW4+DQogICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+DQogICAgICAgICAgICAJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0ic2NyaXB0X29mX0NTUyI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBzY3JpcHRkZXBsb3lfdXRpbHM6Ol9BZG1pbkNyZWF0ZVNjcmlwdExpc3QoJGlkLCRyZXR1cm5pZCwnZGVmYXVsdF9zY3JpcHRfdGVtcGxhdGVfY29udGVudHMnLCdzY3JpcHRfdGVtcGxhdGUnLCdjdXJyZW50X3NjcmlwdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3RpdGxlX3NjcmlwdF90ZW1wbGF0ZScpLCdDU1MnKTsgPz4JDQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPGgzIGlkPSJUQUJTX0pTIj48c3BhbiBjbGFzcz0idHh0Ij5KUzwvc3Bhbj48L2gzPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCiAgICAgICAgICAgIAk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJzY3JpcHRfb2ZfSlMiPg0KICAgICAgICAgICAgICAgIDw/cGhwIGVjaG8gc2NyaXB0ZGVwbG95X3V0aWxzOjpfQWRtaW5DcmVhdGVTY3JpcHRMaXN0KCRpZCwkcmV0dXJuaWQsJ2RlZmF1bHRfc2NyaXB0X3RlbXBsYXRlX2NvbnRlbnRzJywnc2NyaXB0X3RlbXBsYXRlJywnY3VycmVudF9zY3JpcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCd0aXRsZV9zY3JpcHRfdGVtcGxhdGUnKSwnSlMnKTsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYW5lIGFjb3IgdWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiAgaWQ9Imdyb3VwcyI+DQogICAgICAgIDxoMj48P3BocCBlY2hvICR0aGlzLT5MYW5nKCd0aXRsZV9Hcm91cHMnKSA/PjwvaDI+DQogICAgICAgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowcHg7dG9wOjJweDtmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLWJvdHRvbTowcHg7cGFkZGluZy10b3A6NXB4OyI+DQogICAgICAgIDw/cGhwIGVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0YXNzaWdubWVudCcsJHJldHVybmlkLCc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FkZF9ncm91cC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdCcpLiciIC8+Jy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdEFzcycpLGFycmF5KCdzdGF0dXMnPT4nbmV3JywnbW9kZSc9PidhZGQnKSwnJyxmYWxzZSxmYWxzZSwnIGNsYXNzPSJhZGRHcm91cCInKSA/Pg0KICAgICAgICA8L3NwYW4+DQogICAgPD9waHAgZWNobyBpbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9ncm91cGxpc3RfdGFiLnBocCcpOyA/Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQo8P3BocCAkdG1wPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO3JldHVybiAkdG1wOw==]]></data>
	</file>
	<file>
	  <filename>/admin/action.tamplate_listings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD8NCgkkdG1wPScnOw0Kb2Jfc3RhcnQoKTsgPz4JCQ0KDQogICAgPGRpdiBjbGFzcz0icGFuZSBhY29yICB1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iIGlkPSJ0ZW1wbGF0ZXMiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+DQogICAgDQogICAgICAgIDxoMj5UZW1wbGF0ZXMgKEhUTUwvU01BUlRZKTwvaDI+DQogICAgICAgIDx1bCBpZD0idGVtcGxhdGVDaG9pY2UiIGNsYXNzPSJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLXRvcCI+DQogICAgICAgIDxsaSBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIj5NYWluPC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiPkFkbWluPC9saT4NCiAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiPk1vZHVsZTwvbGk+DQogICAgICAgIDwvdWw+DQogICAgICAgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowcHg7dG9wOjJweDtmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLWJvdHRvbTowcHg7cGFkZGluZy10b3A6NXB4OyI+DQogICAgICAgICAgICA8P3BocCBlY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdF9zY3JpcHQnLCRyZXR1cm5pZCwnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hZGQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdTY3JpcHQnKS4nIiAvPicuJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdTY3JpcHQnKSxhcnJheSgnc3RhdHVzJz0+J25ldycsJ21vZGUnPT4nYWRkJyksJycsZmFsc2UsZmFsc2UsJyBjbGFzcz0iYWRkU2NyaXB0IicpID8+DQogICAgICAgIDwvc3Bhbj4NCiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uIj4NCiAgICAgICAgICAgIDxoMyBpZD0iVEFCU19IVE1MIj48c3BhbiBjbGFzcz0idHh0Ij5NYWluIFRlbXBsYXRlcyAoSFRNTCk8L3NwYW4+PC9oMz4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBpbmNsdWRlX29uY2UoJGRpcnBhdGguJy9tb2R1bGVzL1NjcmlwdERlcGxveS9hZG1pbi9mdW5jdGlvbi5hZG1pbl9hc3NvY2lhdGlvbnN0YWIucGhwJyk7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8aDMgaWQ9IlRBQlNfTUMiPjxzcGFuIGNsYXNzPSJ0eHQiPk1vZHVsZSBDdXN0b20gVGVtcGxhdGVzIChBZG1pbiBUZW1wbGF0ZXMgb25seSk8L3NwYW4+PC9oMz4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBpbmNsdWRlX29uY2UoJGRpcnBhdGguJy9tb2R1bGVzL1NjcmlwdERlcGxveS9hZG1pbi9hY3Rpb24uYXNzZXN0c19saXN0aW5ncy5waHAnKTsgPz4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIDxoMyBpZD0iVEFCU19NVCI+PHNwYW4gY2xhc3M9InR4dCI+TW9kdWxlIFRlbXBsYXRlcyAoRnJvbnRlbmQgVGVtcGxhdGVzKTwvc3Bhbj48L2gzPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvIGluY2x1ZGVfb25jZSgkZGlycGF0aC4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2FkbWluL2FjdGlvbi5hc3Nlc3RzX2xpc3RpbmdzLnBocCcpOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KDQoJCQ0KDQo8P3BocCAkdG1wPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO3JldHVybiAkdG1wOw==]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_associationstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGRiPSR0aGlzLT5HZXREYigpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGRpcj0kY29uZmlnWydyb290X3VybCddOyRBZG1pbmRpcj0kZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTskYWRtaW50aGVtZT1jbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXTskdGVtcGxhdGVvcHM9Y21zbXMoKS0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7JHRlbXBsYXRlcz0kdGVtcGxhdGVvcHMtPkxvYWRUZW1wbGF0ZXMoKTskQ01TX1VTRVJfS0VZPUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07JHF1ZXJ5PSdTRUxFQ1QgdGVtcGxhdGVfaWQgRlJPTSAnLlNEX1RBQkxFOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTskaGFuZGxlZF90ZW1wbGF0ZXM9YXJyYXkoKTt3aGlsZSgkZGJyZXN1bHQmJigkcm93PSRkYnJlc3VsdC0+RmV0Y2hSb3coKSkpeyRoYW5kbGVkX3RlbXBsYXRlc1tdPSRyb3dbJ3RlbXBsYXRlX2lkJ107fSRyb3djbGFzcz0ncm93MSc7JGVudHJpZXM9YXJyYXkoKTtmb3JlYWNoKCR0ZW1wbGF0ZXMgYXMgJG9uZXRlbXBsYXRlKXtpZigkb25ldGVtcGxhdGUtPmFjdGl2ZSl7JG9uZXRlbXBsYXRlLT5hY3RpdmVfZmxhZz0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zdGF0ZS10cnVlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCd5ZXMnKS4nIiAvPic7fWVsc2V7JG9uZXRlbXBsYXRlLT5hY3RpdmVfZmxhZz0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zdGF0ZS1mYWxzZS5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygnbm8nKS4nIiAvPic7fWlmKCRvbmV0ZW1wbGF0ZS0+ZGVmYXVsdCl7JG9uZXRlbXBsYXRlLT5kZWZhdWx0X2ZsYWc9JzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc3RhdGUtdHJ1ZS5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygneWVzJykuJyIgLz4nO31lbHNleyRvbmV0ZW1wbGF0ZS0+ZGVmYXVsdF9mbGFnPSc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3N0YXRlLWZhbHNlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdubycpLiciIC8+Jzt9JG9uZXRlbXBsYXRlLT51c2VkX2NvdW50PSR0ZW1wbGF0ZW9wcy0+VXNhZ2VDb3VudCgkb25ldGVtcGxhdGUtPklkKCkpO2lmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTdHlsZXNoZWV0IEFzc29jaWF0aW9ucycpKXskb25ldGVtcGxhdGUtPmVkaXRjc3NfbGluaz0kdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkbWluX2VkaXRjc3Nhc3NvYycsJHJldHVybmlkLCRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9jc3MuZ2lmJywkdGhpcy0+TGFuZygnZWRpdGNzcycpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ3RlbXBsYXRlaWQnPT4kb25ldGVtcGxhdGUtPklkKCkpKTt9JG9uZXRlbXBsYXRlLT5yb3dJZD0iSFRNTCIuJG9uZXRlbXBsYXRlLT5JZCgpO2lmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSl7JG9uZXRlbXBsYXRlLT5lZGl0X2xpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0X3RlbXBsYXRlJywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZWRpdC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygnZWRpdHRlbXBsYXRlJykuJyIgLz4nLGFycmF5KCdhY3RpdmVfdGFiJz0+J3RlbXBsYXRlX21hbmcnLCdtb2RlJz0+J2VkaXQnLCd0ZW1wbGF0ZV9pZCc9PiRvbmV0ZW1wbGF0ZS0+SWQoKSksZmFsc2UsZmFsc2UsZmFsc2UsJyBjbGFzcz0iZWRpdFRlbXBsYXRlIiAnKTt9aWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignUmVtb3ZlIFRlbXBsYXRlcycpJiYkb25ldGVtcGxhdGUtPnVzZWRfY291bnQ9PTApeyRvbmV0ZW1wbGF0ZS0+ZGVsZXRlX2xpbms9JzxhIGhyZWY9ImRlbGV0ZXRlbXBsYXRlLnBocD8nLiRDTVNfVVNFUl9LRVkuJyZ0ZW1wbGF0ZV9pZD0nLiRvbmV0ZW1wbGF0ZS0+SWQoKS4nJmZyb209U2NyaXB0RGVwbG95Ij48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2RlbGV0ZS5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygnZGVsZXRldGVtcGxhdGUnKS4nIiAvPjwvYT4nO30kZm91bmQ9ZmFsc2U7Zm9yZWFjaCgkaGFuZGxlZF90ZW1wbGF0ZXMgYXMgJG9odCl7aWYoJG9odD09JG9uZXRlbXBsYXRlLT5pZCl7JGZvdW5kPXRydWU7YnJlYWs7fX1pZigkZm91bmQpeyRvbmV0ZW1wbGF0ZS0+dmFsaWRfZmxhZz0kYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCR0aGlzLT5MYW5nKCd5ZXMnKSwnJywnJywnc3lzdGVtaWNvbicpO31lbHNleyRvbmV0ZW1wbGF0ZS0+dmFsaWRfZmxhZz0kYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywkdGhpcy0+TGFuZygnbm8nKSwnJywnJywnc3lzdGVtaWNvbicpO30kb25ldGVtcGxhdGUtPnJvd2NsYXNzPSRyb3djbGFzczskcm93Y2xhc3M9KCRyb3djbGFzcz09J3JvdzEnKT8ncm93Mic6J3JvdzEnOyRlbnRyaWVzW109JG9uZXRlbXBsYXRlO31pZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgVGVtcGxhdGVzJykpeyRzbWFydHktPmFzc2lnbignYWRkX2xpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnYWRkX3RlbXBsYXRlJywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvYWRkLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdwcm9tcHRfYWRkdGVtcGxhdGUnKS4nIiAvPicuJHRoaXMtPkxhbmcoJ3Byb21wdF9hZGR0ZW1wbGF0ZScpLGFycmF5KCdhY3RpdmVfdGFiJz0+J3RlbXBsYXRlX21hbmcnLCdtb2RlJz0+J2FkZCcsJ3N0YXR1cyc9PiduZXcnKSkpO30kc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlcycsJGVudHJpZXMpOyRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7JHNtYXJ0eS0+YXNzaWduKCd1c2VkdGV4dCcsJHRoaXMtPkxhbmcoJ3VzYWdlX2NvdW50JykpOyRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCR0aGlzLT5MYW5nKCduYW1lJykpOyRzbWFydHktPmFzc2lnbignYWN0aXZldGV4dCcsJHRoaXMtPkxhbmcoJ2FjdGl2ZScpKTskc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHR0ZXh0JywkdGhpcy0+TGFuZygnZGVmYXVsdCcpKTskc21hcnR5LT5hc3NpZ24oJ3ZhbGlkdGV4dCcsJHRoaXMtPkxhbmcoJ3ZhbGlkJykpO3JldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhc3NvY2lhdGlvbnMudHBsJyk7ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_deployment_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskZGlyPSRjb25maWdbJ3Jvb3RfdXJsJ107JEFkbWluZGlyPSRkaXIuJy8nLiRjb25maWdbJ2FkbWluX2RpciddOyR1cmxleHQ9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTskaW1nSGVscEY9JyZuYnNwOzxpbWcgc3JjPSInLiRBZG1pbmRpci4nL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7JGltZ0hlbHBCPSciLz4nOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwic2F2ZV9kZXBsb3ltZW50X3NldHRpbmdzIikpOyRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3NhdmVfZGVwbG95bWVudF9zZXR0aW5ncycsJHRoaXMtPkxhbmcoInNhdmVzZXR0aW5ncyIpKSk7JHZhbHVlcz1hcnJheSgkdGhpcy0+TGFuZygibGVhdmVjb2RlIik9PiJub2NoYW5nZSIsJHRoaXMtPkxhbmcoImZvcm1hdGNvZGUiKT0+Im5pY2UiLCR0aGlzLT5MYW5nKCJzY3JhbWJsZWNvZGUiKT0+InNjcmFtYmxlIiwpOyRzbWFydHktPmFzc2lnbignc21hcnR5T25fbGFiZWwnLCR0aGlzLT5MYW5nKCdzbWFydHlPbl9sYWJlbCcpLiRpbWdIZWxwRi4ic21hcnR5T24iLiRpbWdIZWxwQik7JHNtYXJ0eS0+YXNzaWduKCdzbWFydHlPbl9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ3NtYXJ0eU9uJyxhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdIVFRQU19QT1JUX2xhYmVsJywkdGhpcy0+TGFuZygnSFRUUFNfUE9SVF9sYWJlbCcpLiRpbWdIZWxwRi4iSFRUUFNfUE9SVCIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ0hUVFBTX1BPUlRfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdIVFRQU19QT1JUX2lucHV0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnSFRUUFNfUE9SVCcsJzQ0MycpLDEwKSk7JHJvb3RVUkw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jvb3RVUkwnLCcnKTtpZigkcm9vdFVSTD09JycpeyRyb290VVJMY2s9MDt9ZWxzZXskcm9vdFVSTGNrPTE7fSRzbWFydHktPmFzc2lnbigncm9vdFVSTE9wdGlvbl9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdyb290VVJMT3B0aW9uX2lucHV0JywnMScsJHJvb3RVUkxjaykpOyRzbWFydHktPmFzc2lnbigncm9vdFVSTF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3Jvb3RVUkxfaW5wdXQnLCRyb290VVJMLDQwKSk7JHNtYXJ0eS0+YXNzaWduKCdyb290VVJMT3B0aW9uX2xhYmVsJywkdGhpcy0+TGFuZygncm9vdFVSTE9wdGlvbl9sYWJlbCcpLiRpbWdIZWxwRi4iZ2xvYmFsdXJsIi4kaW1nSGVscEIpOyRzbWFydHktPmFzc2lnbignR3Jvb3RVUkwnLCR0aGlzLT5MYW5nKCdHcm9vdFVSTCcpKTskc21hcnR5LT5hc3NpZ24oJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJywkdGhpcy0+TGFuZygnZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnKS4kaW1nSGVscEYuImZpbGVUaW1lX2Nzc191cmxzIi4kaW1nSGVscEIpOyRzbWFydHktPmFzc2lnbignZmlsZVRpbWVfY3NzX3VybHNfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCdmaWxlVGltZV9jc3NfdXJscycsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWxlVGltZV9jc3NfdXJscycsJzAnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbigncHJlbG9hZF9DU1NpbWFnZVRpdGxlJywkdGhpcy0+TGFuZygncHJlbG9hZF9DU1NpbWFnZVRpdGxlJykpOyRzbWFydHktPmFzc2lnbigncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCcsJHRoaXMtPkxhbmcoJ3ByZWxvYWRfQ1NTaW1hZ2VfbGFiZWwnKS4kaW1nSGVscEYuInByZWxvYWRfQ1NTaW1hZ2UiLiRpbWdIZWxwQik7JHNtYXJ0eS0+YXNzaWduKCdwcmVsb2FkX0NTU2ltYWdlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwncHJlbG9hZF9DU1NpbWFnZV9pbnB1dCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcmVsb2FkX0NTU2ltYWdlJywxKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbignbWFuZ2xldHlwZXRleHQnLCR0aGlzLT5MYW5nKCJtYW5nbGV0eXBldGV4dCIpKTskc21hcnR5LT5hc3NpZ24oJ21hbmdsZXR5cGUnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwibWFuZ2xldHlwZSIsJHZhbHVlcywtMSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgibWFuZ2xldHlwZSIsImZvcm1hdCIpKSk7JHNtYXJ0eS0+YXNzaWduKCdoaWRlbWVzc2FnZXN0ZXh0JywkdGhpcy0+TGFuZygiaGlkZW1lc3NhZ2VzdGV4dCIpKTskc21hcnR5LT5hc3NpZ24oJ2hpZGVtZXNzYWdlc2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja0JveCgkaWQsImhpZGVtZXNzYWdlcyIsInRydWUiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJoaWRlbWVzc2FnZXMiKSkpOyRzbWFydHktPmFzc2lnbignZGVidWd0ZXh0JywkdGhpcy0+TGFuZygiZGVidWd0ZXh0IikpOyRzbWFydHktPmFzc2lnbignZGVidWdpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tCb3goJGlkLCJkZWJ1ZyIsInRydWUiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWJ1ZyIsImZhbHNlIikpKTskdmFsdWVzPWFycmF5KCR0aGlzLT5MYW5nKCJicmllZiIpPT4iYnJpZWYiLCR0aGlzLT5MYW5nKCJ2ZXJib3NlIik9PiJ2ZXJib3NlIiwpOyRzbWFydHktPmFzc2lnbignZGVidWdsZXZlbHRleHQnLCR0aGlzLT5MYW5nKCJkZWJ1Z2xldmVsdGV4dCIpKTskc21hcnR5LT5hc3NpZ24oJ2RlYnVnbGV2ZWxpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJkZWJ1Z2xldmVsIiwkdmFsdWVzLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWJ1Z2xldmVsIiwiYnJpZWYiKSkpOyRzbWFydHktPmFzc2lnbignZm9yY2Vsb3dlcnRhZ3N0ZXh0JywkdGhpcy0+TGFuZygiZm9yY2Vsb3dlcnRhZ3N0ZXh0IikpOyRzbWFydHktPmFzc2lnbignZm9yY2Vsb3dlcnRhZ3NpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCJmb3JjZWxvd2VydGFncyIsIjEiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmb3JjZWxvd2VydGFncyIsIjAiKSkpOyRzbWFydHktPmFzc2lnbignZm9yY2Vsb3dlcnRhZ3NoZWxwJywkdGhpcy0+TGFuZygiZm9yY2Vsb3dlcnRhZ3NoZWxwIikpOyRzbWFydHktPmFzc2lnbignaW5kZW50d2lkdGh0ZXh0JywkdGhpcy0+TGFuZygiaW5kZW50d2lkdGh0ZXh0IikpOyRzbWFydHktPmFzc2lnbignaW5kZW50d2lkdGhpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImluZGVudHdpZHRoIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgiaW5kZW50d2lkdGgiLCIyIiksMiwyKSk7JHNtYXJ0eS0+YXNzaWduKCdzcGFjZXMnLCR0aGlzLT5MYW5nKCJzcGFjZXMiKSk7JHNtYXJ0eS0+YXNzaWduKCdjb2RlZml4ZXMnLCR0aGlzLT5MYW5nKCJjb2RlZml4ZXMiKSk7cmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluL2RlcGxveW1lbnRfc2V0dGluZ3MudHBsJyk7ID8+]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_grouplist_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskc21hcnR5PWNtc21zKCktPkdldFNtYXJ0eSgpOyRkaXI9JGNvbmZpZ1sncm9vdF91cmwnXTskQWRtaW5kaXI9JGRpci4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ107JGZhbHNlaW1hZ2UxPWNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCdtYWtlIGRlZmF1bHQnLCcnLCcnLCdzeXN0ZW1pY29uJyk7JHRydWVpbWFnZTE9Y21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTskYWxsZGJQcm9maWxlcz1zY3JpcHRkZXBsb3lfdXRpbHM6OmdldEdyb3Vwc0xpc3QoKTskcm93YXJyYXk9YXJyYXkoKTskcm93Y2xhc3M9J3JvdzEnO2ZvcmVhY2goJGFsbGRiUHJvZmlsZXMgYXMgJGtleT0+JG9uZWRiUHJvZmlsZSl7JEdyb3VwdFNldD0kb25lZGJQcm9maWxlWydHcm91cHRTZXQnXTskU2NyaXB0TnVtPXNjcmlwdGRlcGxveV91dGlsczo6R2V0R3JvdXBzU2NyaXB0TlVNKCRrZXkpOyRHcm91cHRUeXBlPSRvbmVkYlByb2ZpbGVbJ0dyb3VwdFR5cGUnXTskcm93PW5ldyBTdGRDbGFzcygpOyRyb3ctPm5hbWU9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0YXNzaWdubWVudCcsJHJldHVybmlkLCRrZXksYXJyYXkoJ0dyb3VwdElEJz0+JGtleSwnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnKSwnJyxmYWxzZSxmYWxzZSwnIGNsYXNzPSJlZGl0R3JvdXAiICcpOyR1bm1lcmdlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRrZXkuJy11bm1lcmdlLVNEJywnZmFsc2UnKTskcm93LT5TYW1wbGU9JzxhIGhyZWY9IiMiIGNsYXNzPSJnZXRUYWciICB0aXRsZT1cJycuJHRoaXMtPkxhbmcoJ2dldF90YWcnKS4nIHtTY3JpcHREZXBsb3kgZ3JvdXBJRD0iJy4ka2V5LiciIFN0eXBlPSInLiRHcm91cHRUeXBlLicifVwnID48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL0dldFRhZy5wbmciIGFsdD1cJycuJHRoaXMtPkxhbmcoJ2dldF90YWcnKS4nIHtTY3JpcHREZXBsb3kgZ3JvdXBJRD0iJy4ka2V5LiciIFN0eXBlPSInLiRHcm91cHRUeXBlLicifVwnICAvPkdldCBUYWc8c3BhbiBjbGFzcz0iaGlkZGVuIGNvcHlhcmVhIj57U2NyaXB0RGVwbG95IGdyb3VwSUQ9IicuJGtleS4nIiBTdHlwZT0iJy4kR3JvdXB0VHlwZS4nIn08L3NwYW4+PC9hPicuKChpc3NldCgkU2NyaXB0TnVtKSYmJFNjcmlwdE51bSE9MCk/Jyc6KCc8aDU+Jy4kdGhpcy0+TGFuZygnZW10cHlHcm91cCcpLic8L2g1PicpKTskcm93LT5kZWZhdWx0PSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdGFzc2lnbm1lbnQnLCRyZXR1cm5pZCwkR3JvdXB0U2V0LGFycmF5KCdHcm91cHRJRCc9PiRrZXksJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJywnbW9kZSc9PidlZGl0JyksJycsZmFsc2UsZmFsc2UsJyBjbGFzcz0iZWRpdEdyb3VwIiAnKTskcm93LT50eXBlPSRHcm91cHRUeXBlOyRyb3ctPmlkPSRrZXk7JHJvdy0+QnRuPSRrZXk7JHJvdy0+TnVtYmVyT2Y9JFNjcmlwdE51bTskcm93LT5yb3djbGFzcz0kcm93Y2xhc3M7JHJvdy0+dHlwZUljb249JzxkaXYgc3R5bGU9IiBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjM1cHg7Ij48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycuJEdyb3VwdFR5cGUuJy5wbmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk7IHRvcDowcHg7Ii8+PC9kaXY+Jzskcm93LT5Hcm91cHRUeXBlPSRHcm91cHRUeXBlOyRyb3ctPnVubWVyZ2U9JHVubWVyZ2U7JHJvdy0+ZWRpdGxpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0YXNzaWdubWVudCcsJHJldHVybmlkLGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdHcm91cHRJRCc9PiRrZXksJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJywnbW9kZSc9PidlZGl0JyksJycsZmFsc2UsZmFsc2UsJyBjbGFzcz0iZWRpdEdyb3VwIiAnKTskcm93LT5kZWxldGVsaW5rPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVsZXRlYXNzaWdubWVudCcsJHJldHVybmlkLGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgnR3JvdXB0U2V0Jz0+JGtleSksJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKSk7YXJyYXlfcHVzaCgkcm93YXJyYXksJHJvdyk7KCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7fSRzbWFydHktPmFzc2lnbignc2luZ2xlU2NyaXB0JywkdGhpcy0+TGFuZygnc2luZ2xlU2NyaXB0JykpOyRzbWFydHktPmFzc2lnbignTm9fR3JvdXBzJywkdGhpcy0+TGFuZygnTm9fR3JvdXBzJykpOyRzbWFydHktPmFzc2lnbignQXNzX2l0ZW1zJywkcm93YXJyYXkpOyRzbWFydHktPmFzc2lnbignQXNzX2hlYWRlcicsJHRoaXMtPkxhbmcoJ0Fzc19oZWFkZXInKSk7JHNtYXJ0eS0+YXNzaWduKCdTYW1wbGVDb2RlJywkdGhpcy0+TGFuZygnU2FtcGxlVGFnJykpOyRzbWFydHktPmFzc2lnbignbmV3U2NyaXB0QXNzbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0YXNzaWdubWVudCcsJHJldHVybmlkLCc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2FkZF9ncm91cC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdCcpLiciIC8+Jy4kdGhpcy0+TGFuZygncHJvbXB0X25ld1NjcmlwdEFzcycpLGFycmF5KCdhY3RpdmVfdGFiJz0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nYWRkJyksJycsZmFsc2UsZmFsc2UsJyBjbGFzcz0iYWRkR3JvdXAiICcpKTskc21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7cmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluL2dyb3VwX2Fzc2lnbm1lbnRfbGlzdC50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_importExport_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJHBheWxvYWQ9Jyc7JHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnRQdXNoJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwicHVzaCIpKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdFB1c2gnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3B1c2gnLCR0aGlzLT5MYW5nKCJzdGFydFB1c2giKSkpOyRwYXlsb2FkLj0nPGgzPicuJHRoaXMtPkxhbmcoJ0Z1bGxTaXRlUHVzaCcpLic8L2gzPic7JHNtYXJ0eS0+YXNzaWduKCdQdXNoT3B0aW9ucycsJHBheWxvYWQpOyRwcm9maWxlPWFycmF5KCdUTVAnLCdDU1MnLCdQRycsJ01PRFRFTVBMQVRFJywnUFJFRicsJ0dDQicsJ1VEVCcsJ0ZJTEUnKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOyRzbWFydHktPmFzc2lnbignZm9ybWltcG9ydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2ltcG9ydCcsJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTskc21hcnR5LT5hc3NpZ24oJ2ltcG9ydGZpbGUnLCR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdpbXBvcnRmaWxlJywkcmV0dXJuaWQpKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdGltcG9ydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0aW1wb3J0JywkdGhpcy0+TGFuZygnaW1wb3J0JykpKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydEV4cG9ydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsImV4cG9ydCIpKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdEV4cG9ydCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZXhwb3J0JywkdGhpcy0+TGFuZygic3RhcnRFeHBvcnQiKSkpOyRwYXlsb2FkPScnOyRwYXlsb2FkLj0nPGgzPicuJHRoaXMtPkxhbmcoJ2luZm9BcnJheScpLic8L2gzPic7JHBheWxvYWQuPSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5mb0FycmF5W10nLCdJTkZPJywnJywnIHJlcXVpcmVkPSJyZXF1aXJlZCIgJykuJyAnLiR0aGlzLT5MYW5nKCdJTkZPX2Zyb250JykuJzxici8+JzskcGF5bG9hZC49JzxoMz4nLiR0aGlzLT5MYW5nKCdzdGVwQXJyYXknKS4nPC9oMz4nO2ZvcmVhY2goJHByb2ZpbGUgYXMgJHN0ZXApeyRwYXlsb2FkLj0kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3Byb2ZpbGVBcnJheVtdJywkc3RlcCwnJykuJyAnLiR0aGlzLT5MYW5nKCRzdGVwLidfZnJvbnQnKS4nPGJyLz4nO30kc21hcnR5LT5hc3NpZ24oJ0V4cG9ydE9wdGlvbnMnLCRwYXlsb2FkKTskc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpO3JldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbi9pbXBvcnRfZXhwb3J0LnRwbCcpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_module_optionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskZGlyPSRjb25maWdbJ3Jvb3RfdXJsJ107JGRpcnBhdGg9JGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iOyRBZG1pbmRpcj0kZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTskdXJsZXh0PUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07JGZoPW5ldyBmaWxlaGFuZGxpbmcoKTskaW1nSGVscEY9JyZuYnNwOzxpbWcgc3JjPSInLiRBZG1pbmRpci4nL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7JGltZ0hlbHBCPSciLz4nOyRjbGVhcj1pc3NldCgkcGFyYW1zWydjbGVhciddKT8kcGFyYW1zWydjbGVhciddOiIiOyRzbWFydHktPmFzc2lnbignbW9kX3ByZWZzX3RpdGxlJywkdGhpcy0+TGFuZygnbW9kX3ByZWZzX3RpdGxlJykpOyRzbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVfbW9kdWxlX29wdGlvbnMnLCRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtX3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZm9ybV9zdWJtaXQnLCR0aGlzLT5MYW5nKCdmb3JtX3N1Ym1pdCcpKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZpc2lvblRpdGxlJywkdGhpcy0+TGFuZygncmV2aXNpb25UaXRsZScpKTskc21hcnR5LT5hc3NpZ24oJ3JldmlzaW9uX2xhYmVsJywkdGhpcy0+TGFuZygncmV2aXNpb25fbGFiZWwnKS4kaW1nSGVscEYuInJldmlzaW9uX29wIi4kaW1nSGVscEIpOyRzbWFydHktPmFzc2lnbigncmV2aXNpb25faW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCdyZXZpc2lvbl9pbnB1dCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXZpc2lvbicsMSksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ3JldmlzaW9uX0xJTUlUX2xhYmVsJywkdGhpcy0+TGFuZygncmV2aXNpb25fTElNSVRfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCdyZXZpc2lvbl9MSU1JVF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3JldmlzaW9uX0xJTUlUX2lucHV0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmV2aXNpb25fTElNSVQnLDApLDEwLDUpKTskdG1wYXJlYT1hcnJheSgnbm9uZSc9Pidub25lJyk7JHdhdGNoYWJsZUZvbGRlcnM9JHRtcGFyZWE7JHdhdGNoZWRGb2xkZXI9dW5zZXJpYWxpemUoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3dhdGNoZWRGb2xkZXInLHNlcmlhbGl6ZShhcnJheSgnbm9uZScpKSkpO2FycmF5X3B1c2goJHdhdGNoZWRGb2xkZXIsJHdhdGNoZWRGb2xkZXIpOyRzbWFydHktPmFzc2lnbignd2F0Y2hlZEZvbGRlcnNDb3VudCcsJzxzdHJvbmc+PGVtPicuJHRoaXMtPkxhbmcoJ3dhdGNoZWRjb3VudF9sYWJlbCcsY291bnQoJHdhdGNoZWRGb2xkZXIpKS4nPC9lbT48L3N0cm9uZz4nKTskc21hcnR5LT5hc3NpZ24oJ3dhdGNoZWRGb2xkZXJfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCd3YXRjaGVkRm9sZGVyX2lucHV0W10nLCR3YXRjaGFibGVGb2xkZXJzLCR3YXRjaGVkRm9sZGVyLDgwLCcnLHRydWUpKTskc21hcnR5LT5hc3NpZ24oJ3dhdGNoRm9sZGVyX2xhYmVsJywkdGhpcy0+TGFuZygnd2F0Y2hGb2xkZXJfbGFiZWwnKS4kaW1nSGVscEYuIndhdGNoRm9sZGVyIi4kaW1nSGVscEIpOyRzbWFydHktPmFzc2lnbignd2F0Y2hlZEZvbGRlcl9sYWJlbCcsJHRoaXMtPkxhbmcoJ3dhdGNoZWRGb2xkZXJfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCd3YXRjaEZvbGRlclRpdGxlJywkdGhpcy0+TGFuZygnd2F0Y2hGb2xkZXJUaXRsZScpKTskc21hcnR5LT5hc3NpZ24oJ2xvY2tmaWxlc1RpdGxlJywkdGhpcy0+TGFuZygnbG9ja2ZpbGVzVGl0bGUnKSk7JHNtYXJ0eS0+YXNzaWduKCdsb2NrZmlsZXNfbGFiZWwnLCR0aGlzLT5MYW5nKCdsb2NrZmlsZXNfbGFiZWwnKS4kaW1nSGVscEYuImxvY2tmaWxlc19vcCIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ2xvY2tmaWxlc19pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ2xvY2tmaWxlc19pbnB1dCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2NrZmlsZXMnLDEpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdkZWJ1Z1QnLCR0aGlzLT5MYW5nKCdkZWJ1Z1QnKSk7JGZpcmVwaHBtb2R1bGU9JHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGaXJlUEhQRGVidWcnKTtpZigkZmlyZXBocG1vZHVsZSl7JGRlYnVnSVRfbGFiZWw9JHRoaXMtPkxhbmcoJ2RlYnVnSVRfbGFiZWwnKTskZGlzYWJsZT0nJzt9ZWxzZXskZGVidWdJVF9sYWJlbD0kdGhpcy0+TGFuZygnZGVidWdJVF9sYWJlbCcpLiR0aGlzLT5MYW5nKCdkZWJ1Z0lUbm90ZV9sYWJlbCcpOyRkaXNhYmxlPSdkaXNhYmxlZD0iZGlzYWJsZWQiJzt9JHNtYXJ0eS0+YXNzaWduKCdkZWJ1Z0lUX2xhYmVsJywkZGVidWdJVF9sYWJlbCk7JHNtYXJ0eS0+YXNzaWduKCdkZWJ1Z0lUX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnZGVidWdJVCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJyksJycuJGRpc2FibGUuJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ3VzZUVkaXRvclRpdGxlJywkdGhpcy0+TGFuZygndXNlRWRpdG9yVGl0bGUnKSk7JHNtYXJ0eS0+YXNzaWduKCd1c2VFZGl0b3JfbGFiZWwnLCR0aGlzLT5MYW5nKCd1c2VFZGl0b3JfbGFiZWwnKS4kaW1nSGVscEYuInVzZUVkaXRvcl9vcCIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ3VzZUVkaXRvcl9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ3VzZUVkaXRvcl9pbnB1dCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VFZGl0b3InLDEpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7JHNtYXJ0eS0+YXNzaWduKCdlZGl0b3JIZWlnaHRfbGFiZWwnLCR0aGlzLT5MYW5nKCdlZGl0b3JIZWlnaHRfbGFiZWwnKS4kaW1nSGVscEYuImVkaXRvckhlaWdodF9vcCIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ2VkaXRvckhlaWdodF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2VkaXRvckhlaWdodF9pbnB1dCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VkaXRvckhlaWdodCcsJycpLDEwLDEwKSk7JHNtYXJ0eS0+YXNzaWduKCdjbGVhcmVkX2xhYmVsJywkY2xlYXIpOyRzbWFydHktPmFzc2lnbignQ2xlYXJfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NsZWFyY2FjaGUnLCdDbGVhciBDYWNoZScpKTskc21hcnR5LT5hc3NpZ24oJ0NsZWFyX2xhYmVsJywkdGhpcy0+bGFuZygnY2xlYW5UZW1wJykuIiA8c3BhbiBzdHlsZT1cImNvbG9yOiMwMDY2Q0M7IGZvbnQtd2VpZ2h0OjkwMDtcIj4iLiR0aGlzLT5sYW5nKCd1clRlbXBQYXRoJykuIjogIi4kY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wLzwvc3Bhbj4iKTskZGlybGlzdD0kZmgtPnByb2Nlc3NfZGlyKCRkaXJwYXRoLHRydWUsJ2RpcicpO2lmKCRkaXJsaXN0IT1mYWxzZSl7JGk9MDskY2FjaGVJbmZvPSI8dGFibGUgIGNlbGxzcGFjaW5nPVwiMVwiIGlkPVwiVFMyXCIgY2xhc3M9XCJ0YWJsZXNvcnRlciB1aV9ncmlkXCI+XG4iO2ZvcmVhY2goJGRpcmxpc3QgYXMgJGZpbGUpe2lmKCRpPT0wKXskY2FjaGVJbmZvLj0iPHRoZWFkPjx0cj48dGg+Ii4kdGhpcy0+TGFuZygnTmFtZScpLiI8L3RoPjx0aD5UeXBlPC90aD48IS0tLS0+PHRoPiIuJHRoaXMtPkxhbmcoJ1NpemUnKS4iPC90aD4iOyRjYWNoZUluZm8uPSRmaWxlWydtYXRjaGVkUGVybSddIT0nJz8kY2FjaGVJbmZvLj0iPHRoPndyaXRhYmxlPC90aD4iOicnOyRjYWNoZUluZm8uPSI8dGg+Ii4kdGhpcy0+TGFuZygnTGFzdE1vZCcpLiI8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+XG4iO30kbmFtZT10cmltKCRmaWxlWyduYW1lJ10sIlxcIik7JGNhY2hlSW5mby49Ijx0cj5cbiI7JGNhY2hlSW5mby49Ijx0ZD48YSBocmVmPScuLi8kbmFtZScgY2xhc3M9J3NjcmlwdHByZXZpZXcnIHJlbD0neyRmaWxlWyd0eXBlJ119Jz4uLiRuYW1lPC9hPjwvdGQ+XG4iOyRjYWNoZUluZm8uPSI8dGQ+eyRmaWxlWyd0eXBlJ119PC90ZD5cbiI7JGNhY2hlSW5mby49Ijx0ZD57JGZpbGVbJ3NpemUnXX0gPC90ZD5cbiI7JGNhY2hlSW5mby49JGZpbGVbJ21hdGNoZWRQZXJtJ10hPScnPyI8dGQ+Ii4kZmlsZVsnbWF0Y2hlZFBlcm0nXS4iIDwvdGQ+XG4iOicnOyRjYWNoZUluZm8uPSI8dGQ+Ii5kYXRlKCJyIiwkZmlsZVsnbGFzdG1vZCddKS4iIDwvdGQ+XG4iOyRjYWNoZUluZm8uPSI8L3RyPlxuIjskaSs9MTt9JGNhY2hlSW5mby49IjwvdGJvZHk+PC90YWJsZT5cblxuIjskY2FjaGVJbmZvLj0nDQoJCQk8ZGl2IGNsYXNzPSJ0YWJsZV9mb290ZXIiPg0KCQkJCTxkaXYgaWQ9InBhZ2VyMiIgY2xhc3M9InBhZ2VyIj4NCgkJCQkJCTxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL2ZpcnN0LnBuZyIgY2xhc3M9ImZpcnN0IiBhbHQ9ImZpcnN0Ii8+DQoJCQkJCQk8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL2FkZG9ucy9wYWdlci9pY29ucy9wcmV2LnBuZyIgY2xhc3M9InByZXYiIGFsdD0icHJldiIvPg0KCQkJCQkJPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJwYWdlZGlzcGxheSIvPg0KCQkJCQkJPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9hZGRvbnMvcGFnZXIvaWNvbnMvbmV4dC5wbmciIGNsYXNzPSJuZXh0IiBhbHQ9Im5leHQiLz4NCgkJCQkJCTxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2ljb25zL2xhc3QucG5nIiBjbGFzcz0ibGFzdCIgYWx0PSJsYXN0Ii8+DQoJCQkJCQk8c2VsZWN0IGNsYXNzPSJwYWdlc2l6ZSI+DQoJCQkJCQk8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IjUiPjU8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSIyMCI+MjA8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSIzMCI+MzA8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uICB2YWx1ZT0iNDAiPjQwPC9vcHRpb24+DQoJCQkJCQk8L3NlbGVjdD4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPGgxPicuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCd2aWV3X2xvZ3MnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygndXNlckxvZ3MnKSkuIjwvaDE+Ijt9ZWxzZXtpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC8iKSl7JG1lc3NhZ2U9JHRoaXMtPkxhbmcoJ2NhY2hlRmVycm9yJyk7fWVsc2V7JG1lc3NhZ2U9JHRoaXMtPkxhbmcoJ2RpckVtcHR5Jyk7fSRjYWNoZUluZm89Ijx0YWJsZSAgY2VsbHNwYWNpbmc9XCIxXCIgY2xhc3M9XCJ0YWJsZXNvcnRlciB1aV9ncmlkXCI+PHRyPjx0aD4iLiR0aGlzLT5MYW5nKCdOYW1lJykuIjwvdGg+PCEtLTx0aD5UeXBlPC90aD4tLT48dGg+Ii4kdGhpcy0+TGFuZygnU2l6ZScpLiI8L3RoPjx0aD4iLiR0aGlzLT5MYW5nKCdMYXN0TW9kJykuIjwvdGg+PC90cj48dHI+PHRkPiIuJG1lc3NhZ2UuIjwvdGQ+PHRkPiAtLSA8L3RkPjx0ZD4gLS0gPC90ZD48L3RyPjwvdGFibGU+IDxoMT4iLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwndmlld19sb2dzJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ3VzZXJMb2dzJykpLiI8L2gxPiI7fSRzbWFydHktPmFzc2lnbignY2FjaGVJbmZvJywkY2FjaGVJbmZvKTskc21hcnR5LT5hc3NpZ24oJ21vZCcsJHRoaXMpOyRzbWFydHktPmFzc2lnbignbWVzc2FnZScsKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKSk7cmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluL29wdGlvbnMudHBsJyk7ID8+]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_scriptlist_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSlleGl0OyRnQ21zPWNtc21zKCk7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHNtYXJ0eT1jbXNtcygpLT5HZXRTbWFydHkoKTskY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7JGRpcj0kY29uZmlnWydyb290X3VybCddOyRBZG1pbmRpcj0kZGlyLicvJy4kY29uZmlnWydhZG1pbl9kaXInXTskZmFsc2VpbWFnZTE9Jyc7JHRydWVpbWFnZTE9Jyc7JGFsbGRiUHJvZmlsZXM9c2NyaXB0ZGVwbG95X3V0aWxzOjpnZXRTY3JpcHRzTGlzdCgpOyRyb3dhcnJheT1hcnJheSgpOyRyb3djbGFzcz0ncm93MSc7JHJldl9vcHQ9JHRoaXMtPkdldFByZWZlcmVuY2UoJ3JldmlzaW9uJyk7JHdhdGNoZWRGb2xkZXI9dW5zZXJpYWxpemUoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3dhdGNoZWRGb2xkZXInLHNlcmlhbGl6ZShhcnJheSgnbm9uZScpKSkpO2ZvcmVhY2goJHdhdGNoZWRGb2xkZXIgYXMgJGs9PiR2KXskd2F0Y2hhYmxlRmlsZXM9JGZoLT5wcm9jZXNzX2RpcigkY29uZmlnWydyb290X3BhdGgnXS4nLycuQGx0cmltKCR2LCcuLi8nKSx0cnVlLCdkaXInLCcwNzU1Jyx0cnVlLCdTRC10ZW1wJyk7aWYoJHdhdGNoYWJsZUZpbGVzIT1mYWxzZSl7Zm9yZWFjaCgkd2F0Y2hhYmxlRmlsZXMgYXMgJGZpbGUpeyRTdHlwZT1zdHJ0b2xvd2VyKHN1YnN0cihsdHJpbSgkZmlsZVsibmFtZSJdLCcvJyksKHN0cnJwb3MobHRyaW0oJGZpbGVbIm5hbWUiXSwnLycpLCIuIikrMSkpKTtpZigkU3R5cGU9PSdqcyd8fCRTdHlwZT0nY3NzJyl7JHRtcGFyZWE9YXJyYXkoJ1NjcmlwdFNldCc9PmJhc2VuYW1lKCRjb25maWdbJ3Jvb3RfcGF0aCddLmx0cmltKCRmaWxlWyJuYW1lIl0sJy8nKSksJ3BhdGhPcHRpb24nPT4kZmlsZVsibmFtZSJdLCdzY3JpcHRUeXBlJz0+c3RydG91cHBlcigkZmlsZVsidHlwZSJdKSwnc2NyaXB0U2l6ZSc9PiRmaWxlWyJzaXplIl0sJ3dhdGNoQWJsZSc9PnRydWUpO2lmKCFlbXB0eSgkdG1wYXJlYSkpe2FycmF5X3B1c2goJGFsbGRiUHJvZmlsZXMsJHRtcGFyZWEpO319fX19Zm9yZWFjaCgkYWxsZGJQcm9maWxlcyBhcyAka2V5PT4kb25lZGJQcm9maWxlKXskdXNlck1lZGl1bT0nJzskdWlkPScnOyR1bmFtZT0nJzskU2NyaXB0U2V0PSRvbmVkYlByb2ZpbGVbJ1NjcmlwdFNldCddOyRwYXRoT3B0aW9uPSRvbmVkYlByb2ZpbGVbJ3BhdGhPcHRpb24nXTskc2NyaXB0VHlwZT0kb25lZGJQcm9maWxlWydzY3JpcHRUeXBlJ107JHNjcmlwdFNpemU9JG9uZWRiUHJvZmlsZVsnc2NyaXB0U2l6ZSddOyR3YXRjaEFibGU9aXNzZXQoJG9uZWRiUHJvZmlsZVsnd2F0Y2hBYmxlJ10pPyRvbmVkYlByb2ZpbGVbJ3dhdGNoQWJsZSddOmZhbHNlO2lmKCR0eXBlSVM9PSRzY3JpcHRUeXBlKXskcm93PW5ldyBTdGRDbGFzcygpOyRwcmVmcz0oJHRtcEFycmF5PSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRrZXkuJy1zY3JpcHRQcmVmLVNEJywnJykmJkBpc19hcnJheSgkdG1wQXJyYXkpKT91bnNlcmlhbGl6ZSgkdG1wQXJyYXkpOmFycmF5KCk7aWYoISR3YXRjaEFibGUpeyRlZGl0YWJsZT1zY3JpcHRkZXBsb3lfdXRpbHM6OmlzX2VkaXRhYmxlKCRrZXkpO2lmKCEkZWRpdGFibGUpeyR1aWQ9JHRoaXMtPkdldFByZWZlcmVuY2UoJGtleS4nLUxvY2tlZC1FZGl0b3ItU0QnKTt9aWYoJHVpZCE9JycpeyR1PXNpdGVfdXRpbHM6OmdldFVzZXJJbmZvKCR1aWQpO2lmKGVtcHR5KCR1KSl7JGVkaXRhYmxlPXRydWU7fWVsc2V7JHVuYW1lPSR1Wyd1c2VybmFtZSddO319JE1pbmlmeT1pc3NldCgkcHJlZnNbJ01pbmlmeSddKT8kcHJlZnNbJ01pbmlmeSddOjE7aWYoJHR5cGVJUz09J0NTUycpeyR1c2VyTWVkaXVtPWlzc2V0KCRwcmVmc1snTWVkaWFUeXBlJ10pPyRwcmVmc1snTWVkaWFUeXBlJ106J0FsbCc7JHVzZXJNZWRpdW09JyB8PGVtPignLiR1c2VyTWVkaXVtLiIpPC9lbT4iO30kcm93LT50eXBlPSRzY3JpcHRUeXBlOyRyb3ctPnNjcmlwdFNpemU9JGZoLT5TaXplSXRVcCgkc2NyaXB0U2l6ZSk7JHJvdy0+aWQ9JGtleTtpZigkZWRpdGFibGUpeyRyb3ctPmVkaXRNb2RlPScnO31lbHNleyRyb3ctPmVkaXRNb2RlPSdJbkVkaXQgIHVpLXN0YXRlLWVycm9yJzt9aWYoJGVkaXRhYmxlKXskcm93LT5uYW1lPSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdF9zY3JpcHQnLCRyZXR1cm5pZCwka2V5LGFycmF5KCdTY3JpcHRTZXQnPT4ka2V5LCdhY3RpdmVfdGFiJz0+J3NjcmlwdF90ZW1wbGF0ZScsJ21vZGUnPT4nZWRpdCcpLCcnLGZhbHNlLGZhbHNlLCcgY2xhc3M9ImVkaXRTY3JpcHQiICcpO31lbHNleyRyb3ctPm5hbWU9JGtleTt9aWYoJGVkaXRhYmxlKXskcm93LT5kZWZhdWx0PSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdF9zY3JpcHQnLCRyZXR1cm5pZCwnPHN0cm9uZz4nLiRTY3JpcHRTZXQuJzwvc3Ryb25nPicuJHVzZXJNZWRpdW0sYXJyYXkoJ1NjcmlwdFNldCc9PiRrZXksJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJywnbW9kZSc9PidlZGl0JyksJycsZmFsc2UsZmFsc2UsJyBjbGFzcz0iZWRpdFNjcmlwdCIgJyk7fWVsc2V7JHJvdy0+ZGVmYXVsdD0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy91c2VyX2VkaXQucG5nIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSIiIGFsdD0iIiAvPjxzdHJvbmc+Jy4kdW5hbWUuJyAnLiR0aGlzLT5sYW5nKCdpc0VkaXQnKS4nICcuJFNjcmlwdFNldC4nPC9zdHJvbmc+Jy4kdXNlck1lZGl1bTt9aWYoJE1pbmlmeT09MSl7JG1pbmltZz0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9NaW4ucG5nIiB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTt0b3A6MHB4OyIgYWx0PSIiLz4nO31lbHNleyRtaW5pbWc9Jyc7fSRpbkVkPScnO2lmKCEkZWRpdGFibGUpeyRpbkVkPSc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3VzZXJfZWRpdC5wbmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk5O2JvdHRvbTowcHg7IiAgYWx0PSIiLz4nO30kcm93LT50eXBlSWNvbj0nPGRpdiBzdHlsZT0iIHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MzVweDsiPicuJG1pbmltZy4kaW5FZC4nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy8nLiRzY3JpcHRUeXBlLicucG5nIiB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OyB0b3A6MHB4OyIgIGFsdD0iIi8+PC9kaXY+Jzskcm93LT5CdG49JGtleTskcm93LT5yb3djbGFzcz0kcm93Y2xhc3M7aWYoJGVkaXRhYmxlKXskcm93LT5lZGl0bGluaz0kdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2VkaXRfc2NyaXB0JywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZWRpdC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygnZWRpdCcpLiciIC8+JyxhcnJheSgnU2NyaXB0U2V0Jz0+JGtleSwnYWN0aXZlX3RhYic9PidzY3JpcHRfdGVtcGxhdGUnLCdtb2RlJz0+J2VkaXQnKSwnJyxmYWxzZSxmYWxzZSwnIGNsYXNzPSJlZGl0U2NyaXB0IiAnKTt9ZWxzZXskcm93LT5lZGl0bGluaz0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9pbi1lZGl0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdlZGl0JykuJyIgLz4nO30kcm93LT5nZXRUYWc9JzxhIGhyZWY9IiMiIGNsYXNzPSJnZXRUYWciIHRpdGxlPVwnJy4kdGhpcy0+TGFuZygnZ2V0X3RhZycpLicge1NjcmlwdERlcGxveSBzY3JpcHRJRD0iJy4ka2V5LiciIFN0eXBlPSInLiRzY3JpcHRUeXBlLicifVwnID48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL0dldFRhZy5wbmciIGFsdD1cJycuJHRoaXMtPkxhbmcoJ2dldF90YWcnKS4nIHtTY3JpcHREZXBsb3kgc2NyaXB0SUQ9IicuJGtleS4nIiBTdHlwZT0iJy4kc2NyaXB0VHlwZS4nIn1cJyAvPkdldCBUYWc8c3BhbiBjbGFzcz0iaGlkZGVuIGNvcHlhcmVhIj57U2NyaXB0RGVwbG95IHNjcmlwdElEPSInLiRrZXkuJyIgU3R5cGU9IicuJHNjcmlwdFR5cGUuJyJ9PC9zcGFuPjwvYT4nO2lmKCRlZGl0YWJsZSYmJHJldl9vcHQpeyRyb3ctPlJldmlzaW9uPSR0aGlzLT5MYW5nKCdyZXZpc2lvbicpLic6PGVtPjxzcGFuIGNsYXNzPSJyZXZlcnRWZXJzaW9uIj4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncmV2ZXJ0JywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdyZXZlcnQnKS4nIiAvPjxlbSBjbGFzcz0icmV2TnVtIj4nLnNjcmlwdGRlcGxveV91dGlsczo6R2V0TGFzdFJldmlzaW9uKCRrZXkpLic8L2VtPicsYXJyYXkoJ1NjcmlwdFNldCc9PiRrZXksJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJywnbW9kZSc9PidyZXZlcnQnKSkuJzwvc3Bhbj48L2VtPic7fWVsc2V7aWYoJHJldl9vcHQpeyRyb3ctPlJldmlzaW9uPSR0aGlzLT5MYW5nKCdyZXZpc2lvbicpLic6PGVtPjxzcGFuIGNsYXNzPSJyZXZlcnRWZXJzaW9uIj48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL3JldmVydC5wbmciIGFsdD0iJy4kdGhpcy0+TGFuZygncmV2ZXJ0JykuJyIgLz48ZW0gY2xhc3M9InJldk51bSI+Jy5zY3JpcHRkZXBsb3lfdXRpbHM6OkdldExhc3RSZXZpc2lvbigka2V5KS4nPC9lbT48L3NwYW4+PC9lbT4nO31lbHNleyRyb3ctPlJldmlzaW9uPScnO319aWYoJGVkaXRhYmxlJiYkcmV2X29wdCl7JHJvdy0+cmV2ZXJ0PSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncmV2ZXJ0JywkcmV0dXJuaWQsJzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdyZXZlcnQnKS4nIiAvPicsYXJyYXkoJ1NjcmlwdFNldCc9PiRrZXksJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYiwnbW9kZSc9PidyZXZlcnQnKSk7fWVsc2V7aWYoJHJldl9vcHQpeyRyb3ctPnJldmVydD0nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9yZXZlcnQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3JldmVydCcpLiciIC8+Jzt9ZWxzZXskcm93LT5yZXZlcnQ9Jyc7fX0kR3JvdXBJbmZvPXNjcmlwdGRlcGxveV91dGlsczo6R2V0U2NyaXB0R3JvdXBJbmZvKCRrZXkpO2lmKCRHcm91cEluZm8hPWZhbHNlJiYkR3JvdXBJbmZvWzBdIT0nJyl7JHJvdy0+ZGVsZXRlbGluaz0nLS0nO31lbHNle2lmKCRlZGl0YWJsZSl7JHJvdy0+ZGVsZXRlbGluaz0kdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlbGV0ZV9zY3JpcHQnLCRyZXR1cm5pZCwnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9kZWxldGUucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ2RlbGV0ZScpLiciIC8+JyxhcnJheSgnU2NyaXB0SUQnPT4ka2V5LCdhY3RpdmVfdGFiJz0+J3NjcmlwdF90ZW1wbGF0ZScpLCR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpO31lbHNleyRyb3ctPmRlbGV0ZWxpbms9JzxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSInLiR0aGlzLT5MYW5nKCdkZWxldGUnKS4nIiAvPic7fX1pZigkZWRpdGFibGUpeyRyb3ctPnN0ZWFsPScnO31lbHNleyRyb3ctPnN0ZWFsPSc8YSBocmVmPSIjIiBjbGFzcz0ic3RlYWwiPjxpbWcgc3JjPSInLiRkaXIuJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc3RlYWwucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3N0ZWFsJykuJyIgLz48L2E+Jzt9JHJvdy0+Y29weWxpbms9JHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdjb3B5X1NjcmlwdF9TZXR1cCcsJHJldHVybmlkLCc8aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2NvcHkucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ2NvcHknKS4nIiAvPicsYXJyYXkoJ3NjcmlwdF9pZCc9PiRrZXksJ2FjdGl2ZV90YWInPT4nc2NyaXB0X3RlbXBsYXRlJyksJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfQ29weScpKTt9ZWxzZXskTWluaWZ5PSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXRoT3B0aW9uLictTWluaWZ5LVNEJywnMScpO2lmKCR0eXBlSVM9PSdDU1MnKXskdXNlck1lZGl1bT0nIHw8ZW0+KCcuJHRoaXMtPkdldFByZWZlcmVuY2UoJHBhdGhPcHRpb24uJy1NZWRpYVR5cGUtU0QnLCdBbGwnKS4iKTwvZW0+Ijt9JHJvdy0+dHlwZT0kc2NyaXB0VHlwZTskcm93LT5zY3JpcHRTaXplPSRzY3JpcHRTaXplOyRzdD1zdHJ0b2xvd2VyKCRzY3JpcHRUeXBlKT09J2Nzcyc/J3RleHQnOidsaXZlc2NyaXB0Jzskcm93LT5lZGl0TW9kZT0nJzskcm93LT5uYW1lPSI8YSAgaHJlZj0nIycgY2xhc3M9JyRzdCB2aWV3JyB0aXRsZT0nIi4kdGhpcy0+TGFuZygndmlldycpLiInICByZWw9JyIuJHBhdGhPcHRpb24uIic+PHN0cm9uZz4kcGF0aE9wdGlvbjwvc3Ryb25nPjwvYT4iOyRyb3ctPmRlZmF1bHQ9IjxhICBocmVmPScjJyBjbGFzcz0nJHN0IHZpZXcnIHRpdGxlPSciLiR0aGlzLT5MYW5nKCd2aWV3JykuIicgIHJlbD0nIi4kcGF0aE9wdGlvbi4iJz48c3Ryb25nPiRTY3JpcHRTZXQ8L3N0cm9uZz48L2E+IjskbWluaW1nPScnOyRyb3ctPnR5cGVJY29uPSc8ZGl2IHN0eWxlPSIgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDozNXB4OyI+Jy4kbWluaW1nLiIgPGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy93YXRjaGVkLnBuZycgYWx0PScnIGNsYXNzPScnIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDsgYm90dG9tOjBweDtsZWZ0OjBweDsnIC8+Ii4nPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy8nLiRzY3JpcHRUeXBlLicucG5nIiB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OyB0b3A6MHB4OyIgIGFsdD0iIi8+PC9kaXY+Jzskcm93LT5CdG49JHBhdGhPcHRpb247JHJvdy0+cm93Y2xhc3M9JHJvd2NsYXNzOyRyb3ctPmVkaXRsaW5rPSI8YSAgaHJlZj0nIycgY2xhc3M9JyRzdCB2aWV3JyB0aXRsZT0nIi4kdGhpcy0+TGFuZygndmlldycpLiInICByZWw9JyIuJHBhdGhPcHRpb24uIic+Ii4kdGhpcy0+TGFuZygndmlldycpLiI8L2E+Ijskcm93LT5nZXRUYWc9JzxhIGhyZWY9IiMiIGNsYXNzPSJnZXRUYWciIHRpdGxlPVwnJy4kdGhpcy0+TGFuZygnZ2V0X3RhZycpLicge1NjcmlwdERlcGxveSBwYXRoPSInLiRwYXRoT3B0aW9uLicifVwnID48aW1nIHNyYz0iJy4kZGlyLicvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL0dldFRhZy5wbmciIGFsdD1cJycuJHRoaXMtPkxhbmcoJ2dldF90YWcnKS4nIHtTY3JpcHREZXBsb3kgcGF0aD0iJy4kcGF0aE9wdGlvbi4nIn1cJyAvPkdldCBUYWc8c3BhbiBjbGFzcz0iaGlkZGVuIGNvcHlhcmVhIj57U2NyaXB0RGVwbG95IHBhdGg9IicuJHBhdGhPcHRpb24uJyJ9PC9zcGFuPjwvYT4nOyRyb3ctPlJldmlzaW9uPScnOyRyb3ctPnJldmVydD0nJzskR3JvdXBJbmZvPScnO2lmKCRHcm91cEluZm8hPWZhbHNlJiYkR3JvdXBJbmZvWzBdIT0nJyl7JHJvdy0+ZGVsZXRlbGluaz0nLS0nO31lbHNleyRyb3ctPmRlbGV0ZWxpbms9Jyc7fSRyb3ctPnN0ZWFsPScnOyRyb3ctPmNvcHlsaW5rPScnO31hcnJheV9wdXNoKCRyb3dhcnJheSwkcm93KTsoJHJvd2NsYXNzPT0icm93MSI/JHJvd2NsYXNzPSJyb3cyIjokcm93Y2xhc3M9InJvdzEiKTt9fSRzbWFydHktPmFzc2lnbignTm9fU2NyaXB0cycsJHRoaXMtPkxhbmcoJ05vX1NjcmlwdHMnKSk7JHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsJHJvd2FycmF5KTskc21hcnR5LT5hc3NpZ24oJ3R5cGVfbGFiZWwnLCR0aGlzLT5MYW5nKCd0eXBlX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignTmFtZV9sYWJlbCcsJHRoaXMtPkxhbmcoJ1NjcmlwdFNldF9sYWJlbCcpKTskc21hcnR5LT5hc3NpZ24oJ25hbWVwcm9tcHRfbGFiZWwnLCR0aGlzLT5MYW5nKCdwcm9tcHRfbmFtZScpKTskc21hcnR5LT5hc3NpZ24oJ1NjcmlwdE5hbWVfbGFiZWwnLCR0aGlzLT5MYW5nKCdTY3JpcHROYW1lX2xhYmVsJykpOyRzbWFydHktPmFzc2lnbignU2luZ2xlQ29kZV9sYWJlbCcsJHRoaXMtPkxhbmcoJ1NpbmdsZUNvZGVfbGFiZWwnKSk7JHNtYXJ0eS0+YXNzaWduKCduZXdfc2NyaXB0X2xpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdF9zY3JpcHQnLCRyZXR1cm5pZCwnPGltZyBzcmM9IicuJGRpci4nL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9hZGQucG5nIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdTY3JpcHQnKS4nIiAvPicuJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdTY3JpcHQnKSxhcnJheSgnYWN0aXZlX3RhYic9PiRhY3RpdmVfdGFiLCdtb2RlJz0+J2FkZCcsJ3N0YXR1cyc9PiduZXcnKSwnJyxmYWxzZSxmYWxzZSwnIGNsYXNzPSJhZGRTY3JpcHQiICcpKTskc21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7ZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbi9zY3JpcHRfbGlzdC50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/admin/function.admin_Valtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskZGlyPSRjb25maWdbJ3Jvb3RfdXJsJ107JEFkbWluZGlyPSRkaXIuJy8nLiRjb25maWdbJ2FkbWluX2RpciddOyR1cmxleHQ9Q01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTskaW1nSGVscEY9JyZuYnNwOzxpbWcgc3JjPSInLiRBZG1pbmRpci4nL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7JGltZ0hlbHBCPSciLz4nOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwic2F2ZVZBTHNldHRpbmdzIikpOyRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzYXZlVkFMc2V0dGluZ3MnLCR0aGlzLT5MYW5nKCJzYXZlVkFMc2V0dGluZ3MiKSkpOyRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0SFRNTCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsInNhdmVWQUxzZXR0aW5ncyIpKTskc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdEhUTUwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3NhdmVWQUxzZXR0aW5ncycsJHRoaXMtPkxhbmcoInNhdmVWQUxzZXR0aW5ncyIpKSk7JHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskdXNlcm1lZGl1bUFycmF5PWFycmF5KCdhbGwnPT4nYWxsJywnYXVyYWwnPT4nYXVyYWwnLCdicmFpbGxlJz0+J2JyYWlsbGUnLCdoYW5kaGVsZCc9PidoYW5kaGVsZCcsJ3ByaW50Jz0+J3ByaW50JywnZW1ib3NzZWQnPT4nZW1ib3NzZWQnLCdwcm9qZWN0aW9uJz0+J3Byb2plY3Rpb24nLCdzcGVlY2gnPT4nc3BlZWNoJywnc2NyZWVuJz0+J3NjcmVlbicsJ3R0eSc9Pid0dHknLCd0dic9Pid0dicpOyRWQUxMYW5nQXJyYXk9YXJyYXkoJHRoaXMtPkxhbmcoImVuIik9PidlbicsJHRoaXMtPkxhbmcoImZyIik9PidmcicsJHRoaXMtPkxhbmcoIml0Iik9PidpdCcsJHRoaXMtPkxhbmcoImtvIik9PidrbycsJHRoaXMtPkxhbmcoImphIik9PidqYScsJHRoaXMtPkxhbmcoImVzIik9PidlcycsJHRoaXMtPkxhbmcoInpoLWNuIik9Pid6aC1jbicsJHRoaXMtPkxhbmcoIm5sIik9PidubCcsJHRoaXMtPkxhbmcoImRlIik9PidkZScsJHRoaXMtPkxhbmcoInBsIik9PidwbCcsJHRoaXMtPkxhbmcoInJvIik9PidybycsJHRoaXMtPkxhbmcoImNzIik9PidjcycsJHRoaXMtPkxhbmcoImJnIik9PidiZycsJHRoaXMtPkxhbmcoInN2Iik9PidzdicsJHRoaXMtPkxhbmcoImZhIik9PidmYScsJHRoaXMtPkxhbmcoInJ1Iik9PidydScsJHRoaXMtPkxhbmcoInB0LUJSIik9PidwdC1CUicpOyR3M2NDU1N3YXJuaW5nQXJyYXk9YXJyYXkoJHRoaXMtPkxhbmcoIkxub25lIik9PidubycsJHRoaXMtPkxhbmcoIkwwIik9PicwJywkdGhpcy0+TGFuZygiTDEiKT0+JzEnLCR0aGlzLT5MYW5nKCJMMiIpPT4nMicpOyRDU1Nwcm9maWxlQXJyYXk9YXJyYXkoJHRoaXMtPkxhbmcoImNzczEiKT0+J2NzczEnLCR0aGlzLT5MYW5nKCJjc3MyIik9Pidjc3MyJywkdGhpcy0+TGFuZygiY3NzMjEiKT0+J2NzczIxJywkdGhpcy0+TGFuZygiY3NzMyIpPT4nY3NzMycsJHRoaXMtPkxhbmcoInN2ZyIpPT4nc3ZnJywkdGhpcy0+TGFuZygic3ZnYmFzaWMiKT0+J3N2Z2Jhc2ljJywkdGhpcy0+TGFuZygic3ZndGlueSIpPT4nc3ZndGlueScsJHRoaXMtPkxhbmcoIm1vYmlsZSIpPT4nbW9iaWxlJywkdGhpcy0+TGFuZygiYXRzYy10diIpPT4nYXRzYy10dicsJHRoaXMtPkxhbmcoInR2Iik9Pid0dicsJHRoaXMtPkxhbmcoIm5vbmUiKT0+J25vbmUnKTskc21hcnR5LT5hc3NpZ24oJ1R1cm5PTlZhbF9sYWJsZScsJHRoaXMtPkxhbmcoIlR1cm5PTlZhbF9sYWJsZSIpKTskc21hcnR5LT5hc3NpZ24oJ1R1cm5PTlZhbF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ1R1cm5PTlZhbCcsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdUdXJuT05WYWwnLCcxJyksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ2hvdExpbmtDaGVja19sYWJsZScsJHRoaXMtPkxhbmcoImhvdExpbmtDaGVja19sYWJsZSIpKTskc21hcnR5LT5hc3NpZ24oJ2hvdExpbmtDaGVja19pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ2hvdExpbmtDaGVjaycsYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdob3RMaW5rQ2hlY2snLCcxJyksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ1Nob3dWYWxfbGFibGUnLCR0aGlzLT5MYW5nKCJTaG93VmFsX2xhYmxlIikpOyRzbWFydHktPmFzc2lnbignU2hvd1ZhbF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ1Nob3dWYWwnLGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU2hvd1ZhbCcsJzAnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbignQ1NTcHJvZmlsZV9sYWJsZScsJHRoaXMtPkxhbmcoIkNTU3Byb2ZpbGVfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCdDU1Nwcm9maWxlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsIkNTU3Byb2ZpbGUiLCRDU1Nwcm9maWxlQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoIkNTU3Byb2ZpbGUiLCJhbGwiKSkpOyRzbWFydHktPmFzc2lnbigndXNlcm1lZGl1bV9sYWJsZScsJHRoaXMtPkxhbmcoInVzZXJtZWRpdW1fbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCd1c2VybWVkaXVtX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInVzZXJtZWRpdW0iLCR1c2VybWVkaXVtQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoInVzZXJtZWRpdW0iLCJhbGwiKSkpOyRzbWFydHktPmFzc2lnbignVkFMTGFuZ19sYWJsZScsJHRoaXMtPkxhbmcoIlZBTExhbmdfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCdWQUxMYW5nX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsIlZBTExhbmciLCRWQUxMYW5nQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoIlZBTExhbmciLCJhbGwiKSkpOyRzbWFydHktPmFzc2lnbigndzNjQ1NTd2FybmluZ19sYWJsZScsJHRoaXMtPkxhbmcoInczY0NTU3dhcm5pbmdfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCd3M2NDU1N3YXJuaW5nX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInczY0NTU3dhcm5pbmciLCR3M2NDU1N3YXJuaW5nQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoInczY0NTU3dhcm5pbmciLCJhbGwiKSkpOyRzbWFydHktPmFzc2lnbignZmlsdGVyUHJvcF9sYWJsZScsJHRoaXMtPkxhbmcoImZpbHRlclByb3BfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJQcm9wX2lucHV0JywkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoMCwkaWQsJHRoaXMtPkdldFByZWZlcmVuY2UoImZpbHRlclByb3AiLCcnKSwiZmlsdGVyUHJvcCIsJ2ZpbHRlclByb3AnLCcnLCcnLCcnLDEwLDgpKTskZW5jb2RpbmdBcnJheT1hcnJheSgkdGhpcy0+TGFuZygnZGV0ZWN0Jyk9PicoZGV0ZWN0IGF1dG9tYXRpY2FsbHkpJywkdGhpcy0+TGFuZygndXRmLTgnKT0+J3V0Zi04JywkdGhpcy0+TGFuZygndXRmLTE2Jyk9Pid1dGYtMTYnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xJyk9Pidpc28tODg1OS0xJywkdGhpcy0+TGFuZygnaXNvLTg4NTktMicpPT4naXNvLTg4NTktMicsJHRoaXMtPkxhbmcoJ2lzby04ODU5LTMnKT0+J2lzby04ODU5LTMnLCR0aGlzLT5MYW5nKCdpc28tODg1OS00Jyk9Pidpc28tODg1OS00JywkdGhpcy0+TGFuZygnaXNvLTg4NTktNScpPT4naXNvLTg4NTktNScsJHRoaXMtPkxhbmcoJ2lzby04ODU5LTYtaScpPT4naXNvLTg4NTktNi1pJywkdGhpcy0+TGFuZygnaXNvLTg4NTktNycpPT4naXNvLTg4NTktNycsJHRoaXMtPkxhbmcoJ2lzby04ODU5LTgnKT0+J2lzby04ODU5LTgnLCR0aGlzLT5MYW5nKCdpc28tODg1OS04LWknKT0+J2lzby04ODU5LTgtaScsJHRoaXMtPkxhbmcoJ2lzby04ODU5LTknKT0+J2lzby04ODU5LTknLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xMCcpPT4naXNvLTg4NTktMTAnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xMScpPT4naXNvLTg4NTktMTEnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xMycpPT4naXNvLTg4NTktMTMnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xNCcpPT4naXNvLTg4NTktMTQnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xNScpPT4naXNvLTg4NTktMTUnLCR0aGlzLT5MYW5nKCdpc28tODg1OS0xNicpPT4naXNvLTg4NTktMTYnLCR0aGlzLT5MYW5nKCd1cy1hc2NpaScpPT4ndXMtYXNjaWknLCR0aGlzLT5MYW5nKCdldWMtanAnKT0+J2V1Yy1qcCcsJHRoaXMtPkxhbmcoJ3NoaWZ0X2ppcycpPT4nc2hpZnRfamlzJywkdGhpcy0+TGFuZygnaXNvLTIwMjItanAnKT0+J2lzby0yMDIyLWpwJywkdGhpcy0+TGFuZygnZXVjLWtyJyk9PidldWMta3InLCR0aGlzLT5MYW5nKCdnYjIzMTInKT0+J2diMjMxMicsJHRoaXMtPkxhbmcoJ2diMTgwMzAnKT0+J2diMTgwMzAnLCR0aGlzLT5MYW5nKCdiaWc1Jyk9PidiaWc1JywkdGhpcy0+TGFuZygnYmlnNS1IS1NDUycpPT4nYmlnNS1IS1NDUycsJHRoaXMtPkxhbmcoJ3Rpcy02MjAnKT0+J3Rpcy02MjAnLCR0aGlzLT5MYW5nKCdrb2k4LXInKT0+J2tvaTgtcicsJHRoaXMtPkxhbmcoJ2tvaTgtdScpPT4na29pOC11JywkdGhpcy0+TGFuZygnaXNvLWlyLTExMScpPT4naXNvLWlyLTExMScsJHRoaXMtPkxhbmcoJ21hY2ludG9zaCcpPT4nbWFjaW50b3NoJywkdGhpcy0+TGFuZygnd2luZG93cy0xMjUwJyk9Pid3aW5kb3dzLTEyNTAnLCR0aGlzLT5MYW5nKCd3aW5kb3dzLTEyNTEnKT0+J3dpbmRvd3MtMTI1MScsJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1MicpPT4nd2luZG93cy0xMjUyJywkdGhpcy0+TGFuZygnd2luZG93cy0xMjUzJyk9Pid3aW5kb3dzLTEyNTMnLCR0aGlzLT5MYW5nKCd3aW5kb3dzLTEyNTQnKT0+J3dpbmRvd3MtMTI1NCcsJHRoaXMtPkxhbmcoJ3dpbmRvd3MtMTI1NScpPT4nd2luZG93cy0xMjU1JywkdGhpcy0+TGFuZygnd2luZG93cy0xMjU2Jyk9Pid3aW5kb3dzLTEyNTYnLCR0aGlzLT5MYW5nKCd3aW5kb3dzLTEyNTcnKT0+J3dpbmRvd3MtMTI1NycpOyRkb2NUeXBlQXJyYXk9YXJyYXkoJHRoaXMtPkxhbmcoJ0lubGluZScpPT4nSW5saW5lJywkdGhpcy0+TGFuZygnSFRNTDUnKT0+J0hUTUw1JywkdGhpcy0+TGFuZygnWEhUTUwgMS4wIFN0cmljdCcpPT4nWEhUTUwgMS4wIFN0cmljdCcsJHRoaXMtPkxhbmcoJ1hIVE1MIDEuMCBUcmFuc2l0aW9uYWwnKT0+J1hIVE1MIDEuMCBUcmFuc2l0aW9uYWwnLCR0aGlzLT5MYW5nKCdYSFRNTCAxLjAgRnJhbWVzZXQnKT0+J1hIVE1MIDEuMCBGcmFtZXNldCcsJHRoaXMtPkxhbmcoJ0hUTUwgNC4wMSBTdHJpY3QnKT0+J0hUTUwgNC4wMSBTdHJpY3QnLCR0aGlzLT5MYW5nKCdIVE1MIDQuMDEgVHJhbnNpdGlvbmFsJyk9PidIVE1MIDQuMDEgVHJhbnNpdGlvbmFsJywkdGhpcy0+TGFuZygnSFRNTCA0LjAxIEZyYW1lc2V0Jyk9PidIVE1MIDQuMDEgRnJhbWVzZXQnLCR0aGlzLT5MYW5nKCdIVE1MIDMuMicpPT4nSFRNTCAzLjInLCR0aGlzLT5MYW5nKCdIVE1MIDIuMCcpPT4nSFRNTCAyLjAnLCR0aGlzLT5MYW5nKCdJU08vSUVDIDE1NDQ1OjIwMDAgKCZxdW90O0lTTyBIVE1MJnF1b3Q7KScpPT4nSVNPL0lFQyAxNTQ0NToyMDAwICgmcXVvdDtJU08gSFRNTCZxdW90OyknLCR0aGlzLT5MYW5nKCdYSFRNTCAxLjEnKT0+J1hIVE1MIDEuMScsJHRoaXMtPkxhbmcoJ1hIVE1MICsgUkRGYScpPT4nWEhUTUwgKyBSREZhJywkdGhpcy0+TGFuZygnWEhUTUwgQmFzaWMgMS4wJyk9PidYSFRNTCBCYXNpYyAxLjAnLCR0aGlzLT5MYW5nKCdYSFRNTCBCYXNpYyAxLjEnKT0+J1hIVE1MIEJhc2ljIDEuMScsJHRoaXMtPkxhbmcoJ1hIVE1MIE1vYmlsZSBQcm9maWxlIDEuMicpPT4nWEhUTUwgTW9iaWxlIFByb2ZpbGUgMS4yJywkdGhpcy0+TGFuZygnWEhUTUwtUHJpbnQgMS4wJyk9PidYSFRNTC1QcmludCAxLjAnLCR0aGlzLT5MYW5nKCdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wJyk9PidYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wJywkdGhpcy0+TGFuZygnWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCBwbHVzIFNWRyAxLjEnKT0+J1hIVE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xJywkdGhpcy0+TGFuZygnTWF0aE1MIDIuMCcpPT4nTWF0aE1MIDIuMCcsJHRoaXMtPkxhbmcoJ1NWRyAxLjAnKT0+J1NWRyAxLjAnLCR0aGlzLT5MYW5nKCdTVkcgMS4xJyk9PidTVkcgMS4xJywkdGhpcy0+TGFuZygnU1ZHIDEuMSBUaW55Jyk9PidTVkcgMS4xIFRpbnknLCR0aGlzLT5MYW5nKCdTVkcgMS4xIEJhc2ljJyk9PidTVkcgMS4xIEJhc2ljJywkdGhpcy0+TGFuZygnU01JTCAxLjAnKT0+J1NNSUwgMS4wJywkdGhpcy0+TGFuZygnU01JTCAyLjAnKT0+J1NNSUwgMi4wJyk7JGRlZmF1bHRQYWdlQXJyYXk9YXJyYXkoJHRoaXMtPkxhbmcoJ2F1dG8nKT0+J2F1dG8nLCR0aGlzLT5MYW5nKCd1c2VyQ2hvaWNlJyk9Pid1c2VyQ2hvaWNlJywkdGhpcy0+TGFuZygndXNlckdlbmVyYXRlZCcpPT4ndXNlckdlbmVyYXRlZCcpOyRzbWFydHktPmFzc2lnbignVHVybk9OVmFsX2xhYmxlJywkdGhpcy0+TGFuZygiVHVybk9OVmFsX2xhYmxlIikpOyRzbWFydHktPmFzc2lnbignVHVybk9OVmFsSFRNTF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkaWQsJ1R1cm5PTlZhbEhUTUwnLGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnVHVybk9OVmFsSFRNTCcsJzEnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOyRzbWFydHktPmFzc2lnbignZG9jVHlwZV9sYWJsZScsJHRoaXMtPkxhbmcoImRvY1R5cGVfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCdkb2NUeXBlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImRvY1R5cGUiLCRkb2NUeXBlQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoImRvY1R5cGUiLCJYSFRNTCAxLjAgVHJhbnNpdGlvbmFsIikpKTskc21hcnR5LT5hc3NpZ24oJ2VuY29kaW5nX2xhYmxlJywkdGhpcy0+TGFuZygiZW5jb2RpbmdfbGFibGUiKSk7JHNtYXJ0eS0+YXNzaWduKCdlbmNvZGluZ19pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJlbmNvZGluZyIsJGVuY29kaW5nQXJyYXksJycsJHRoaXMtPkdldFByZWZlcmVuY2UoImVuY29kaW5nIiwidXRmLTgiKSkpOyRzbWFydHktPmFzc2lnbignVmFsSFRNTFZlcmJvc2VfbGFibGUnLCR0aGlzLT5MYW5nKCJWYWxIVE1MVmVyYm9zZV9sYWJsZSIpKTskc21hcnR5LT5hc3NpZ24oJ1ZhbEhUTUxWZXJib3NlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwnVmFsSFRNTFZlcmJvc2UnLGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnVmFsSFRNTFZlcmJvc2UnLCcwJyksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTskc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRQYWdlX2xhYmxlJywkdGhpcy0+TGFuZygiZGVmYXVsdFBhZ2VfbGFibGUiKS4kaW1nSGVscEYuImRlZmF1bHRQYWdlIi4kaW1nSGVscEIpOyRzbWFydHktPmFzc2lnbignZGVmYXVsdFBhZ2VfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZGVmYXVsdFBhZ2UiLCRkZWZhdWx0UGFnZUFycmF5LCcnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0UGFnZSIsImF1dG8iKSkpOyRzbWFydHktPmFzc2lnbignZGVmYXVsdFBhZ2VfaXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0UGFnZSIsImF1dG8iKSk7JHNtYXJ0eS0+YXNzaWduKCd1c2VyRGVmYXVsdFBhZ2VfbGFibGUnLCR0aGlzLT5MYW5nKCJ1c2VyRGVmYXVsdFBhZ2VfbGFibGUiKS4kaW1nSGVscEYuInVzZXJEZWZhdWx0UGFnZSIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ3VzZXJEZWZhdWx0UGFnZV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3VzZXJEZWZhdWx0UGFnZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJEZWZhdWx0UGFnZScsJycpLDQwKSk7JHNtYXJ0eS0+YXNzaWduKCdvd25Db250ZW50X2xhYmxlJywkdGhpcy0+TGFuZygib3duQ29udGVudF9sYWJsZSIpLiRpbWdIZWxwRi4ib3duQ29udGVudCIuJGltZ0hlbHBCKTskc21hcnR5LT5hc3NpZ24oJ293bkNvbnRlbnRfaW5wdXQnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYSgwLCRpZCwkdGhpcy0+R2V0UHJlZmVyZW5jZSgib3duQ29udGVudCIsJycpLCJvd25Db250ZW50Iiwnb3duQ29udGVudCcsJycsJycsJycsMTAsMTUpKTtyZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW4vdmFsaWRhdGlvbl9zZXR0aW5ncy50cGwnKTsgPz4=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KCTxsaT5WZXJzaW9uIDAuMSBCZXRhIHJlbGVhc2UuPC9saT4NCgk8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KCTxsaT5WZXJzaW9uIDAuMyBzZXQgdGhlIHNtYXJ0eSB0byB1c2Uge3sgfX08L2xpPg0KCTxsaT5WZXJzaW9uIDAuNCBmaXhlZCBidWcuLiBpbXByb3ZlZCB0aGUgbWluaWFmY2F0aW9uIHRvIGEgc2F2ZXMgb2YgdXAgdG8gNjAlPC9saT4NCgk8bGk+VmVyc2lvbiAwLjcuMSBtYW55IGNoYW5nZXMuLi4gPHN0cm9uZz5CUkVBS1MgVVBHUkFERTwvc3Ryb25nPiBDb3B5IHNjcmlwdHMsIGluc3RhbGwgYW5kIHRoZSB1cGxvYWQgYW5kIHJlaW5zdGFsbC4uLiBTb3JyeSBidXQgaXQgd2FzIG5lZWRlZCBmb3IgVkVSU0lPTiBISVNUT1JZIGZpeGVkIGJ1Z3MuLiBtYW55IGltcHJvdmVtZW50czwvbGk+DQoJPGxpPlZlcnNpb24gMC43LjYgTWFueSBmaXhlcywgQWRkIHRoZSBkdW1wIHBhcmFtLCBhZGQgdGhlIGFjdGlvbiBmb3IgdGhlIGltcG9ydCBwYXJhbSAnaW5fc2NyaXB0Jy48L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/CSS/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/asc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7]]></data>
	</file>
	<file>
	  <filename>/CSS/bg.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==]]></data>
	</file>
	<file>
	  <filename>/CSS/desc.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7]]></data>
	</file>
	<file>
	  <filename>/CSS/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/images/add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABgFBMVEX///+X1YuYzIav36ag2ZabwZiDtW59uWt0t1x3vGBJjz9zulyTv3/r8+m81bnZ6dHv9uzo8ebc8djU689koFZJj0K95LaW04m32qpEjDtwwWPn8OWU04qmyKButVi02qZIjUHL5sONvnunyaGd2JKVv4Jno1tVlk2YzIqOzIR5vW5oq1N9vmeJvniTzYiGyXyKwnmIuHdrqlhDjziMy4FvtVikzpQ9hjW136x4rmjF3bnj7eHM4MbK3sVTlUyr1J1lq1XF6MDO6cmGt3Gy26iz3al8w2u03arg8ty34K+BzHVCjTa41a+O0oO61rF/uW2Z0Yt6xmt+x2+SxYBenFaXx4W43a/X7tJyuVuz2aVxvl+KuXl4tGSJyH+Kz32GyXqFzXlXnkWPwn18umSVwIKMu3ZqrFtsqlpFjTy73K+126iV1Iphnlh+wWmmz5a+4ram0Ja23axmolh2rGd/smrE3Lh9vGbj7uKl25tQmUHN4MfJ3sR5wWRvtVlwuFn///8guUIpAAAAAXRSTlMAQObYZgAAAMZJREFUeNpjYMAGBKxSnNmi/XhhfH4eM0VhpzB/yyooPzXTQ6yChdnRoMgWrJ5HQkhFTzM729eTXU0QKFAaGs4iE1tfn+AWZJGoDBRQLWQ20deqr0/j5A4IzgEKsOUzxteDQV2uPRdQoMQ1zgsqoGMvCRQw1BAPlHIAcusimJTUgQI+2u41UZxAATkOeWNWoABvMbsLJ3ddrSlHZLpoOcghNiIxWUxlyUyRRuZ8EKdWi1QmFeTpeivwwTwjLRvClWHHao3V5wDDGi1NCzgVpQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/CSS/images/close.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABgFBMVEX////uycPxnZa/XED2hGz76+vuko/2z8/nxLn6nYvjf33wjHfcppbzeWPmWU7ual7cp5fjeHngZVzWYFTOYlT2q6L6q53uZlLEZEzja2Hxjnr15+Lyd2PvycXwtrb36ObieXnwg3v4tqj0oJ7AVT3WbmTpW0/nXVn4r6Tpe3DwkX/UcWXBTTP6o5G6UjTbVkv81M3feXTMUjzicGbzp6P7qZzpY1vuhH3ea2r6uq73kX71o5/vysbwtbX8x7r36OXqsKz1rKHxjYHNaFj5y8T0tKrhqZ7EUDTpf3jQTz7AWT/uinXzc13mVlDhq6DmWlLhb3D56ejwZFbvhn74jHb1r6X4w772gmi/UzrmVkzIa1X6mofqg33NYFHbaWXMZlXXXVH929T93Njrs6/keHHoenXcbmn508zwhXD4lH/1pqHjbmP56ujqZlzCZ0ztk474hnDca2i+Vjn5ua/yrar3k3715uH0op7qXFD6k3/mWEz5kn73q6HsX1TpWU3////t8u6ZAAAAAXRSTlMAQObYZgAAAL5JREFUeNpjYMAGWOW4LAoNkwNhfHaF/LB0F1djVRsoP6AkyVKX09ROU4QRrF7QJDFaSyqzOkQp21keKGAbY8BZ6s0CBLwann5AAa5QMe5aMJBx8ogCCqQVV2bUg0EdP5MKUCCupiAcKpDLVAQUMHSy8qkDAzVFQwmggIO+aJA4iF/lb+3OAxTI0ZZ0rK2o44v0LRdmlgY5RDZWKCvYTN1cOUGPA+JUxnijVDa2FB1mDphn7N2ivCLyBMqw+hwArDYvSbfrpQIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/CSS/MasterCSS.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgInV0Zi04Ijthe3RleHQtZGVjb3JhdGlvbjpub25lfWE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9ZGl2LnBhZ2Vjb250YWluZXJ7bWluLXdpZHRoOjgyMXB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5CYWNrTGlua3tjdXJzb3I6cG9pbnRlcjtmbG9hdDpyaWdodH0uaGlkZGVue2Rpc3BsYXk6bm9uZX0jTWFpbkNvbnRlbnQgaDEsI01haW5Db250ZW50IGgyLCNNYWluQ29udGVudCBoMywjTWFpbkNvbnRlbnQgaDQsI01haW5Db250ZW50IGg1e21hcmdpbjowfWJsb2NrcXVvdGUsaW5wdXQsbGksc2VsZWN0LHRoLHRke2ZvbnQtc2l6ZToxMnB4fSNNYWluQ29udGVudCAuZXh0ZXJuYWwsLmV4dGVybmFse2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9leHRlcm5hbC5naWYpIG5vLXJlcGVhdCByaWdodCA1cHg7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi1yaWdodDoyNXB4fWIucmJvdHRvbXtkaXNwbGF5OmJsb2NrfWIucmJvdHRvbSAqe2JhY2tncm91bmQ6I0E4QjdDNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtvdmVyZmxvdzpoaWRkZW59Yi5yMXtiYWNrZ3JvdW5kOiMwMDAgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDttYXJnaW46MCA1cHh9Yi5yMnttYXJnaW46MCAzcHh9Yi5yM3ttYXJnaW46MCAycHh9Yi5yNHtoZWlnaHQ6MnB4O21hcmdpbjowIDFweH0uU2ltY29ue3BhZGRpbmc6MTBweDtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICMwMDA7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1zdHlsZTpub25lO2JvcmRlci1ib3R0b20tc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNBOEI3QzZ9LlNpbVdyYXB7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uY29kZUhJR0hMSUdIVHtjb2xvcjojMzU0ZDU4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxNXB4fWRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVye2NvbG9yOiMzNTRkNTg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE1cHh9ZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2VoZWFkZXIgc3Bhbi5oZWxwdGV4dHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDotNHB4O3BhZGRpbmc6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjM1cHg7ei1pbmRleDoxMH1ocntkaXNwbGF5OmJsb2NrfXRleHRhcmVhe3dpZHRoOjI1MHB4O2hlaWdodDo3NXB4fSNQUEJNIGgzIHNwYW57YmFja2dyb3VuZC1jb2xvcjojOTk5O2JvcmRlcjoxcHggc29saWQgI0NDQztjb2xvcjojMzMzO2ZvbnQtc2l6ZToxOHB4O3BhZGRpbmc6NXB4IDVweCA1cHggMTVweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO3dpZHRoOmF1dG87cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5fSNQUEJNIGgzIHNwYW4gaW1ne3otaW5kZXg6OTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo5NSU7aGVpZ2h0OjEwMCV9I1BQQk0gaDMgc3Bhbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O2NvbG9yOiMwMDB9ZGl2LmNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjojRTJFMkUyO2JvcmRlcjoxcHggc29saWQgIzY2NjttYXJnaW46MXB4IDFweCA1cHg7cGFkZGluZzozcHggNHB4IDVweH1kaXYuY29udGVudC51aS1hY2NvcmRpb24tY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21hcmdpbjowcHg7bWFyZ2luLWJvdHRvbToycHg7bWFyZ2luLXRvcDogLTJweH1oMy51aS1hY2NvcmRpb24taGVhZGVyIHNwYW4udHh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxOHB4O21hcmdpbi1sZWZ0OjI3cHg7bWFyZ2luLXRvcDogLTNweH1oMy51aS1hY2NvcmRpb24taGVhZGVyLnVpLXN0YXRlLWRlZmF1bHQgc3Bhbi51aS1pY29ue21hcmdpbi1sZWZ0OjB9I1BQQk0gLlRhYnBhbmVzMiBoMntmb250LXNpemU6MjBweDtsZWZ0OjA7bWFyZ2luLWJvdHRvbTo1cHg7cGFkZGluZy1sZWZ0OjE1cHg7cGFkZGluZy10b3A6MH0uZXh0ZW5kSEFORExFICp7ZGlzcGxheTppbmxpbmU7bWFyZ2luOjFlbSAwIDAuMmVtIDIwJTtjdXJzb3I6cG9pbnRlcn0uTmV4dGVuZHttYXJnaW46MWVtIDAgMC4yZW0gMjAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5OZXh0ZW5ke2Rpc3BsYXk6bm9uZX0uVHJhbnNsYXRlQ29ue2JhY2tncm91bmQtY29sb3I6I0ZGRjtib3JkZXI6MnB4IHNvbGlkICMwMDA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTk1cHg7ei1pbmRleDo3MDB9LmNvbnRyeUNvZGVze3dpZHRoOjM1MHB4O2hlaWdodDoxNTBweDtvdmVyZmxvdzpzY3JvbGw7Ym9yZGVyOm1lZGl1bSBpbnNldCAjMzMzO2JhY2tncm91bmQtY29sb3I6I0NDQztwYWRkaW5nOjEwcHg7bGluZS1oZWlnaHQ6MjBweH0jZGVtbyBpbWd7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjAgOHB4fWltZy5zeXN0ZW1pY29ue2N1cnNvcjpwb2ludGVyfS5wcm9ncmVzc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDUlO2xlZnQ6NTAlO3otaW5kZXg6OTk5N30jcGFnZV90YWJzIGRpdntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IG5vbmU7Ym9yZGVyOm5vbmU7bWFyZ2luOjBweDtwYWRkaW5nOjBweDtmbG9hdDpub25lO2N1cnNvcjpkZWZhdWx0O3otaW5kZXg6OX0uY29udGVudHtkaXNwbGF5Om5vbmV9I3BhZ2VfdGFicyAjUFBCTXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzMztib3JkZXItbGVmdDoxcHggc29saWQgIzMzMzt3aWR0aDoxMDAlfSNwYWdlX3RhYnMgZGl2LnBhbmV7d2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxMHB4O3RleHQtYWxpZ246bGVmdH0jcGFnZV90YWJze21hcmdpbjowcHg7cGFkZGluZzowcHh9ZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2V0ZXh0e3RleHQtYWxpZ246bGVmdH0jcGFnZV90YWJzIGRpdi5UcmFuc2xhdGV7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOiMzODQ2NTQ7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MWVtIDAgMC4yZW0gMjAlO3BhZGRpbmc6MDt3aWR0aDphdXRvfWRpdi5UcmFuc2xhdGUgKnttYXJnaW46MHB4O3BhZGRpbmc6MHB4fS5TSUF7aGVpZ2h0OjgwMHB4O3dpZHRoOjQwMHB4O21pbi13aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS50b29sQmFyLXR7YmFja2dyb3VuZDp1cmwoIi4uL2ltYWdlcy90b29sX2Jhci1iay5wbmciKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7aGVpZ2h0OjI2cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6NTJweDt3aWR0aDoxMDAlO3otaW5kZXg6OTt0ZXh0LWFsaWduOmNlbnRlcn0udG9vbEJhci10LnRvcGVke3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjBweDt0b3A6MHB4O3dpZHRoOjEwMCV9Lm9wQmFye2Rpc3BsYXk6aW5saW5lO2Zsb2F0OmxlZnQ7Zm9udC1zaXplOjEycHg7aGVpZ2h0OjI2cHg7cGFkZGluZy1sZWZ0OjE1cHg7cGFkZGluZy10b3A6NXB4O2N1cnNvcjpwb2ludGVyfSNtaWRCYXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEycHg7aGVpZ2h0OjI2cHg7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZy10b3A6NXB4fS5nb3RvQm94e2Zsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDtmb250LXNpemU6MTZweH0uZ290b0JveCBpbnB1dHtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbi10b3A6MnB4O3BhZGRpbmc6MCA1cHg7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDozMnB4fS5yZXBvcnRBcmVhe2JhY2tncm91bmQtY29sb3I6I0ZGRjtoZWlnaHQ6OTglO292ZXJmbG93OnNjcm9sbDtwYWRkaW5nOjVweH0udG9vbEJhci1ie2hlaWdodDoyNnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTt6LWluZGV4Ojl9LnRvb2xCYXItYiAuaW5uZXJ7cGFkZGluZzo1cHggNXB4IDB9LkNNX2xpbmVOdW1iZXJzIC53YXJue2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy93YXJuQXJyb3cucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlNWU0YWQ7Zm9udC13ZWlnaHQ6Ym9sZH0uQ01fbGluZU51bWJlcnMgLmVycm9ye30jTk9URVN7ZGlzcGxheTpub25lfWRpdi5wYWdlbWNvbnRhaW5lcntiYWNrZ3JvdW5kOiNENkU0QzUgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDtib3JkZXI6MXB4IHNvbGlkICNCREQzQTM7aGVpZ2h0OjUwcHg7bWFyZ2luOjEwcHg7cGFkZGluZzoxMHB4O3Bvc2l0aW9uOmZpeGVkO3JpZ2h0Oi0yMHB4O3RvcDoxOTBweDt3aWR0aDoyNSU7ei1pbmRleDo5OTk5fS5FcnJvcnstbW96LWJvcmRlci1yYWRpdXM6MCAwIDhweCA4cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDstd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweDtib3JkZXItcmFkaXVzOjAgMCA4cHggOHB4O2NvbG9yOiAjMzMzO2JhY2tncm91bmQ6ICNGOTk7cGFkZGluZzo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjOTAwO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztoZWlnaHQ6YXV0byAhaW1wb3J0YW50O2hlaWdodDoxNTBweDttaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6MjUwcHg7ZGlzcGxheTpub25lfS5XYXJuey1tb3otYm9yZGVyLXJhZGl1czowIDAgOHB4IDhweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4O2JvcmRlci1yYWRpdXM6MCAwIDhweCA4cHg7Y29sb3I6ICMzMzM7YmFja2dyb3VuZDogI0ZGOTtwYWRkaW5nOjVweDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O2hlaWdodDoxNTBweDttaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6MjUwcHg7Ym9yZGVyOjFweCBzb2xpZCAjRjkwO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztkaXNwbGF5Om5vbmV9Lk5PVEV7LW1vei1ib3JkZXItcmFkaXVzOjAgMCA4cHggOHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7Ym9yZGVyLXJhZGl1czowIDAgOHB4IDhweDtjb2xvcjogIzMzMztiYWNrZ3JvdW5kOiAjNkNGO3BhZGRpbmc6NXB4O2hlaWdodDphdXRvICFpbXBvcnRhbnQ7aGVpZ2h0OjE1MHB4O21pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDoyNTBweDtib3JkZXI6MXB4IHNvbGlkICM2OUM7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2Rpc3BsYXk6bm9uZX0uRXJyb3IgaDN7Y29sb3I6ICM5MDA7bWFyZ2luLWJvdHRvbTowcHh9Lldhcm4gaDN7Y29sb3I6ICNGOTA7bWFyZ2luLWJvdHRvbTowcHh9Lk5PVEUgaDN7Y29sb3I6ICNGOTA7bWFyZ2luLWJvdHRvbTowcHh9Lk5PVEUuY2xvc2VyLC5XYXJuLmNsb3NlciwuRXJyb3IuY2xvc2Vye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm9uZTtib3JkZXI6bm9uZTttYXJnaW46MHB4O3BhZGRpbmc6MHB4O292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MHB4ICFpbXBvcnRhbnQ7bWluLWhlaWdodDowcHg7bWF4LWhlaWdodDowcHg7d2lkdGg6MHB4ICFpbXBvcnRhbnR9c3Bhbi5DbG9zZXtkaXNwbGF5OmJsb2NrO2Zsb2F0OnJpZ2h0fXNwYW4uT3BlbntkaXNwbGF5Om5vbmU7ZmxvYXQ6cmlnaHR9LmN1cnJlbnQgc3Bhbi5DbG9zZXtkaXNwbGF5Om5vbmV9LmN1cnJlbnQgc3Bhbi5PcGVue2Rpc3BsYXk6YmxvY2t9LmNhY2hlVGFibGV7YmFja2dyb3VuZDogI0U0RTRFNDtib3JkZXI6dGhpbiBzb2xpZCAjNjY2O3dpZHRoOjEwMCV9LmNhY2hlVGFibGUgdGh7YmFja2dyb3VuZDogIzMzMztib3JkZXI6dGhpbiBzb2xpZCAjRTRFNEU0O2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6I0U0RTRFNH0uY2FjaGVUYWJsZSB0ZHtib3JkZXI6dGhpbiBzb2xpZCAjNjY2O3BhZGRpbmc6M3B4fS5FcnJvckFyZWF7cG9zaXRpb246cmVsYXRpdmV9I3ZlcnNpb25QbGFuZXtjbGVhcjpsZWZ0O2JvcmRlcjoxcHggc29saWQgIzk5OTtiYWNrZ3JvdW5kLWNvbG9yOiNGMEYwRjZ9I2NTY3JpcHRQbGFuZXtiYWNrZ3JvdW5kOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Zsb2F0OnJpZ2h0O3dpZHRoOjQ5LjUlO2hlaWdodDoyNTBweDtjb2xvcjojM0QzRDNEfSN2ZXJzaW9uUGxhbmUgI1RTMXttYXJnaW46MHB4O3dpZHRoOjUwJTtmbG9hdDpsZWZ0fSNwYWdlcnt9I2NTY3JpcHRQbGFuZUlORk97ZGlzcGxheTpub25lO2JhY2tncm91bmQtY29sb3I6Izk5OTt0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6M3B4fXRyLmN1cnJlbnR7fSN2ZXJzaW9uUGxhbmUgdHIgdGR7Y3Vyc29yOnBvaW50ZXJ9I3ZlcnNpb25QbGFuZSB0cjpob3ZlciB0ZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRjk7Y29sb3I6IzNEM0QzRH0jdmVyc2lvblBsYW5lIHRyLmN1cnJlbnQgdGR7YmFja2dyb3VuZC1jb2xvcjojRkM2O2NvbG9yOiMzRDNEM0R9I2NTY3JpcHRQbGFuZS5wcm9jZXNzaW5ne2NvbG9yOiNCRUJFQkU7YmFja2dyb3VuZDp1cmwoJy4uLy4uLy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9sb2FkaW5nLmdpZicpIG5vLXJlcGVhdCBzY3JvbGwgY2VudGVyIGNlbnRlciAjRTVFNUU1fSNFeGl0e2JhY2tncm91bmQtY29sb3I6IzMzMztib3JkZXI6MXB4IHNvbGlkICNDQ0M7Y29sb3I6I0NDQztmb250LXNpemU6MTdweDtmb250LXdlaWdodDpib2xkO3BhZGRpbmc6NXB4IDEwcHg7ZmxvYXQ6cmlnaHR9I0V4aXQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNjY2fSNTbmFtZXtjb2xvcjojMDBDO2ZvbnQtc2l6ZToxLjI1ZW19LmVkaXRiYXJ7YmFja2dyb3VuZC1jb2xvcjojREFGRUUzO2JvcmRlcjoxcHggc29saWQgI0EzRkVCQjtmb250LXdlaWdodDpib2xkO21hcmdpbjoycHg7cGFkZGluZzo2cHggM3B4IDJweCA0cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweCA1cHggNXB4IDVweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NXB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NXB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo1cHh9LmVkaXRiYXIgaW1ne21hcmdpbjowcHggM3B4fS5lZGl0YmFyIGF7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO29wYWNpdHk6MC44fS5lZGl0YmFyIGE6aG92ZXJ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMH0uZWRpdGJhci5JbkVkaXR7YmFja2dyb3VuZC1jb2xvcjojZjZiOWMyO2JvcmRlcjoxcHggc29saWQgI2Y2NmI3Zn0uSW5FZGl0IGg0IGltZ3twYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLXRvcDozcHh9LmVkaXRiYXIuSW5FZGl0IGltZ3tmaWx0ZXI6YWxwaGEob3BhY2l0eT0zNSk7b3BhY2l0eTowLjM1fS5lZGl0YmFyLkluRWRpdCAuc3RlYWx7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMH0uZWRpdGJhci5JbkVkaXQgaW1ney1tb3otYm9yZGVyLXJhZGl1czo1cHggNXB4IDVweCA1cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjVweDstd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjVweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NXB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NXB4fXRhYmxlLnRhYmxlc29ydGVyIHRib2R5IHRyLmV2ZW4gdGQuZXJyb3J7YmFja2dyb3VuZC1jb2xvcjojZjZiOWMyfXRhYmxlLnRhYmxlc29ydGVyIHRib2R5IHRyLm9kZCB0ZC5lcnJvcntiYWNrZ3JvdW5kLWNvbG9yOiNmNGEzYWV9dGFibGUudGFibGVzb3J0ZXIgdGJvZHkgdHIuZXZlbiB0ZC5va3tiYWNrZ3JvdW5kLWNvbG9yOiNEQUZFRTN9dGFibGUudGFibGVzb3J0ZXIgdGJvZHkgdHIub2RkIHRkLm9re2JhY2tncm91bmQtY29sb3I6I2M4ZmVkNn1ib2R5IC5yZXZlcnRWZXJzaW9uIGF7Y29sb3I6IzAzOX10YWJsZS5wYWdldGFibGUgdGR7Y29sb3I6IzM4NDY1NDtwYWRkaW5nLWxlZnQ6NnB4O3BhZGRpbmctcmlnaHQ6MnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTl9dHIucm93MS5JbkVkaXR7YmFja2dyb3VuZC1jb2xvcjojZjZkNWRhfXRyLnJvdzIuSW5FZGl0e2JhY2tncm91bmQtY29sb3I6I2Y2YzVjY310YWJsZS5wYWdldGFibGV7Ym9yZGVyOjFweCBzb2xpZCAjMzMzfS5zY3JpcHRPcHRpb25ze2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjVweCAxNXB4IDE1cHh9LnNjcmlwdE5hbWVfSVN7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6MzdweH0uc2NyaXB0TmFtZV9JUzpob3Zlcntjb2xvcjojNkM2NjREfSNTY3JpcHRfZ3JvdXBze21hcmdpbi1sZWZ0OjE1cHh9I1NjcmlwdF9ncm91cHMgYTpob3Zlcntjb2xvcjogIzZDNjY0RH0ubm90aWNlYmFye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo4cHg7cmlnaHQ6NXB4O3otaW5kZXg6OX0ubm90aWNlYmFyICp7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MTZweDtwYWRkaW5nLXJpZ2h0OjJweH0ubm90aWNlYmFyIC5ub3RlX3RyaWcsLm5vdGljZWJhciAuV190cmlnLC5ub3RpY2ViYXIgLkVfdHJpZ3tkaXNwbGF5OmlubGluZS1ibG9ja30ubm90aWNlYmFyIC5ub3RlX3RyaWc6aG92ZXIsLm5vdGljZWJhciAuV190cmlnOmhvdmVyLC5ub3RpY2ViYXIgLkVfdHJpZzpob3ZlcntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjogIzZDNjY0RH0udG9vbEJhci10IC5ub3RpY2ViYXJ7bGluZS1oZWlnaHQ6OXB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjUwJTt0b3A6MXB4O3otaW5kZXg6OX0udG9vbEJhci10IC5ub3RpY2ViYXIgaW1ne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9LnRvb2xCYXItdCAubm90aWNlYmFyIGltZyN2YWxTaWdue2hlaWdodDoyMnB4O3dpZHRoOjYycHh9LnVpLWRpYWxvZyAubm90aWNlYmFye2xpbmUtaGVpZ2h0OjlweDtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjVweCAwIDVweCA1cHggIWltcG9ydGFudDtyaWdodDoxOXB4ICFpbXBvcnRhbnQ7dG9wOjM1cHggIWltcG9ydGFudDt6LWluZGV4Ojl9LnVpLWRpYWxvZyAubm90aWNlYmFyIGltZ3tmbG9hdDpub25lO2hlaWdodDoxNnB4O21hcmdpbi10b3A6IC01cHg7d2lkdGg6MTZweH0udWktZGlhbG9nIC5ub3RpY2ViYXIgaW1nI3ZhbFNpZ257aGVpZ2h0OjIycHg7d2lkdGg6NjJweH0jaW5zZXJ0QmxvY2t7fSNjb2xvcmJveCwjY2JveE92ZXJsYXksI2Nib3hXcmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4Ojk5OTk7b3ZlcmZsb3c6aGlkZGVufSNjYm94T3ZlcmxheXtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfSNjYm94TWlkZGxlTGVmdCwjY2JveEJvdHRvbUxlZnR7Y2xlYXI6bGVmdH0jY2JveENvbnRlbnR7cG9zaXRpb246cmVsYXRpdmV9I2Nib3hMb2FkZWRDb250ZW50e292ZXJmbG93OmF1dG99I2Nib3hMb2FkZWRDb250ZW50IGlmcmFtZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOjB9I2Nib3hUaXRsZXttYXJnaW46MH0jY2JveExvYWRpbmdPdmVybGF5LCNjYm94TG9hZGluZ0dyYXBoaWN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCV9I2Nib3hQcmV2aW91cywjY2JveE5leHQsI2Nib3hDbG9zZSwjY2JveFNsaWRlc2hvd3tjdXJzb3I6cG9pbnRlcn0jY29sb3Jib3h7fSNjYm94Q29udGVudHttYXJnaW4tdG9wOjIwcHh9I2Nib3hMb2FkZWRDb250ZW50e2JhY2tncm91bmQ6IzAwNWE4NDtwYWRkaW5nOjVweH0jY2JveFRpdGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMjBweDtsZWZ0OjA7Y29sb3I6IzQ4NDc0N30jY2JveEN1cnJlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0yMHB4O3JpZ2h0OjBweDtjb2xvcjojNDg0NzQ3fSNjYm94U2xpZGVzaG93e3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMjBweDtyaWdodDo5MHB4O2NvbG9yOiM2NjZ9I2Nib3hQcmV2aW91c3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NXB4O21hcmdpbi10b3A6LTMycHg7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2NvbnRyb2xzLnBuZykgdG9wIGxlZnQgbm8tcmVwZWF0O3dpZHRoOjI4cHg7aGVpZ2h0OjY1cHg7dGV4dC1pbmRlbnQ6LTk5OTlweH0jY2JveFByZXZpb3VzLmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGxlZnR9I2Nib3hOZXh0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6NXB4O21hcmdpbi10b3A6LTMycHg7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2NvbnRyb2xzLnBuZykgdG9wIHJpZ2h0IG5vLXJlcGVhdDt3aWR0aDoyOHB4O2hlaWdodDo2NXB4O3RleHQtaW5kZW50Oi05OTk5cHh9I2Nib3hOZXh0LmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIHJpZ2h0fSNjYm94TG9hZGluZ092ZXJsYXl7YmFja2dyb3VuZDojMDA1YTg0fSNjYm94TG9hZGluZ0dyYXBoaWN7YmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2xvYWRpbmcuZ2lmKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdH0jY2JveENsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7cmlnaHQ6MjVweDtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9jb250cm9scy5wbmcpIHRvcCBjZW50ZXIgbm8tcmVwZWF0O3dpZHRoOjM4cHg7aGVpZ2h0OjE5cHg7dGV4dC1pbmRlbnQ6LTk5OTlweH0jY2JveENsb3NlLmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246Ym90dG9tIGNlbnRlcn0jcG9wdXBOT1RFU3toZWlnaHQ6YXV0byAhaW1wb3J0YW50O2hlaWdodDoxNTBweDttaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6NDUwcHg7b3ZlcmZsb3c6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3dpZHRoOjQ4N3B4fSNwb3B1cEVycm9yQXJlYXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7cGFkZGluZzo1cHg7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtoZWlnaHQ6MTUwcHg7bWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OjQ1MHB4O292ZXJmbG93OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbn0jcG9wdXB3YXJuQXJlYXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7cGFkZGluZzo1cHg7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtoZWlnaHQ6MTUwcHg7bWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OjQ1MHB4O292ZXJmbG93OnNjcm9sbDtvdmVyZmxvdy14OmhpZGRlbn0jTWFpbkNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmV9I3NpZGViYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NXB4O3RvcDoyNjNweH0jc2lkZW5vdGV7cGFkZGluZy1sZWZ0OjM2cHh9I3NpZGViYXIgaDF7Zm9udC1zaXplOjI0cHg7Y29sb3I6IzM5M2IzZTtmb250LXdlaWdodDpib2xkO3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDo1cHh9I2FzdGVye2ZvbnQtc2l6ZTo2NXB4O2NvbG9yOiMzOTNiM2U7Zm9udC13ZWlnaHQ6Ym9sZDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTE1cHg7bGVmdDowcHh9I3RpcGVke2xpbmUtaGVpZ2h0OjE1cHh9I3RpcHN7YmFja2dyb3VuZC1jb2xvcjojZDBkNGQzOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxMHB4Oy1raHRtbC1ib3JkZXItcmFkaXVzOjEwcHg7LW1vei1ib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgIzk5OTtib3gtc2hhZG93OjVweCA1cHggNXB4ICNjY2M7LW1vei1ib3gtc2hhZG93OjVweCA1cHggNXB4ICNjY2M7LXdlYmtpdC1ib3gtc2hhZG93OjVweCA1cHggNXB4ICNjY2M7cGFkZGluZzo1cHg7bWFyZ2luLWJvdHRvbTo1cHh9LmRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZX0uZGlhbG9nIGEsLmRpYWxvZyBhOnZpc2l0ZWR7Y29sb3I6IzMwMzIzNDt0ZXh0LWRlY29yYXRpb246bm9uZX0uZGlhbG9nIGgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOjBweDtwYWRkaW5nOjBweDttYXJnaW4tdG9wOi0wLjZlbX0jc2NyaXB0Q2hvaWNlLCN0ZW1wbGF0ZUNob2ljZSwudGVtcGxhdGVDaG9pY2V7cGFkZGluZy10b3A6MDttYXJnaW4tdG9wOjA7aGVpZ2h0OjIxcHh9I3NjcmlwdENob2ljZSBsaSwjdGVtcGxhdGVDaG9pY2UgbGksLnRlbXBsYXRlQ2hvaWNlIGxpe2JhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjZWZmNmY4O2JvcmRlcjoxcHggc29saWQgIzMzMztjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZTtwYWRkaW5nOjJweCA1cHg7b3BhY2l0eTogLjY1Oy1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTY1KSI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggM3B4IDEwcHggMnB4ICM4NTg3ODg7LW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAzcHggMTBweCAycHggIzg1ODc4ODtib3gtc2hhZG93Omluc2V0IDBweCAzcHggMTBweCAycHggIzg1ODc4OH0jc2NyaXB0Q2hvaWNlIGxpOmhvdmVyLCN0ZW1wbGF0ZUNob2ljZSBsaTpob3ZlciwudGVtcGxhdGVDaG9pY2UgbGk6aG92ZXJ7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICNmZmY7Y29sb3I6IzAwMDtvcGFjaXR5OjEuMDstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApIjtmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApfSNzY3JpcHRDaG9pY2UgbGkuYWN0aXZlLCN0ZW1wbGF0ZUNob2ljZSBsaS5hY3RpdmUsLnRlbXBsYXRlQ2hvaWNlIGxpLmFjdGl2ZXtmb250LXNpemU6MTZweH0uQXNzUG90TGlzdHt3aWR0aDoyNTBweDtoZWlnaHQ6MTUwcHg7b3ZlcmZsb3c6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiM5OTk7Ym9yZGVyOjJweCBpbnNldCAjMDA5fS5Bc3NQb3RMaXN0Q09Oe2hlaWd0aDphdXRvO3dpZHRoOjIzM3B4O2ZvbnQtc2l6ZToxNHB4fSNzb3J0YWJsZTEsI3NvcnRhYmxlMiwjc29ydGFibGUze2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtmbG9hdDpsZWZ0O2JhY2tncm91bmQ6ICNlZWU7d2lkdGg6MTAwJX0jc29ydGFibGUxIGxpLCAjc29ydGFibGUyIGxpLCAjc29ydGFibGUzIGxpe21hcmdpbjoxcHg7Zm9udC1zaXplOjE0cHh9I3NvcnRhYmxlMSBsaTpob3ZlciwgI3NvcnRhYmxlMiBsaTpob3ZlciwgI3NvcnRhYmxlMyBsaTpob3ZlcnttYXJnaW46MXB4O2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQ6ICNDQkQyREF9I3NvcnRhYmxlMXtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O2hlaWdodDoxNDhweDttaW4taGVpZ2h0OjE0OHB4O292ZXJmbG93LXk6aGlkZGVufSNzb3J0YWJsZTEgbGkuaGlkZGVue3RleHQtaW5kZW50Oi05OTk5ZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTk5ZW19I2hlYWRlcnN7bGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZX0jaGVhZGVycyBsaXtkaXNwbGF5OmlubGluZS1ibG9ja30jcmVPcjF7fSNyZU9yMnt9I3JlT3Ize30jcmVPcjR7fSNyZU9yNXt9LnVpLXNvcnRhYmxle2JvcmRlcjoxcHggc29saWQgIzY2NjtsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lO3BhZGRpbmc6MH0udWktc29ydGFibGUgbGl7cGFkZGluZzoxcHg7aGVpZ2h0OjMzcHg7Y3Vyc29yOm1vdmU7ZGlzcGxheTpibG9ja30udWktc29ydGFibGUgbGkucm93MXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI2Q3ZTZmNX0udWktc29ydGFibGUgbGkucm93MntiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgIzljYzhmNX0udWktc29ydGFibGUgbGk6aG92ZXJ7Ym9yZGVyOjFweCBkYXNoZWQgI2FiNzEwMDtwYWRkaW5nOjBweDtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI2ZmZGE5M30udWktc29ydGFibGUgbGkgc3BhbiwudWktc29ydGFibGUgbGkgZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6OTk5OX0udWktc29ydGFibGUgLnJlbW92ZXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpyaWdodDttYXJnaW46M3B4O2ZpbHRlcjphbHBoYShvcGFjaXR5PTc1KTtvcGFjaXR5OjAuNzV9LnVpLXNvcnRhYmxlIC5yZW1vdmU6aG92ZXJ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMH0ucGFnZXRhYmxlIC51aS1zb3J0YWJsZXtoZWlnaHQ6YXV0byAhaW1wb3J0YW50O2hlaWdodDozNXB4O21pbi1oZWlnaHQ6MzVweDtvdmVyZmxvdy15OmhpZGRlbn0udWktc3RhdGUtaGlnaGxpZ2h0e2JvcmRlcjoxcHggZGFzaGVkICNmZmRhOTM7cGFkZGluZzowcHg7YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwICNmNWNkNTV9I3NvcnRhYmxlMSBsaSBpbnB1dHt0ZXh0LWluZGVudDotOTk5OWVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OWVtfS51aS1zb3J0YWJsZSBsaSBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY291bnRTaXplLC5uYW1le2ZvbnQtc2l6ZToxNnB4fS5jb3VudFNpemV7Zm9udC13ZWlnaHQ6Ym9sZH0udWktc29ydGFibGUgLmhhbmRsZXtjdXJzb3I6bW92ZX0ucmVPcjF7ZmxvYXQ6bGVmdDttYXJnaW46N3B4fS5yZU9yMnttYXJnaW46NnB4O292ZXJmbG93OmhpZGRlbn0ucmVPcjN7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjRweH0udWktc29ydGFibGUgLnJlT3IzIC5oYW5kbGV7bWFyZ2luOjNweDtmbG9hdDpyaWdodH0ucmVPcjR7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjRweH0ucmVPcjV7ZmxvYXQ6cmlnaHQ7bWFyZ2luOjZweH1pbWcuc3lzdGVtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZX0uZGVtb3RpcHtkaXNwbGF5Om5vbmU7Zm9udC1zaXplOjEycHg7d2lkdGg6MjI4cHg7cGFkZGluZzoyNXB4O2NvbG9yOiNmZmY7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk2fWJvZHkgI0RJU0NSUHtmb250LXNpemU6MTJweDtjb2xvcjojMmIyYjJiO2Rpc3BsYXk6YmxvY2t9LlRUX3RvcHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCguLi9pbWFnZXMvVFRfdG9wLnBuZykgdG9wIGxlZnQgbm8tcmVwZWF0O2hlaWdodDozM3B4fS5UVF9taWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL1RUX21pZC5wbmcpIHRvcCBsZWZ0IHJlcGVhdC15O3BhZGRpbmctbGVmdDo1M3B4O3BhZGRpbmctcmlnaHQ6MTBweH0uVFRfYnRte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9UVF9idG0ucG5nKSB0b3AgbGVmdCBuby1yZXBlYXQ7aGVpZ2h0OjE3cHh9Ym9keSAjRElTQ1JQIGgxLGJvZHkgI0RJU0NSUCBoMntmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxOHB4O2NvbG9yOiNGRkZ9Ym9keSAjRElTQ1JQIGgxe21hcmdpbi10b3A6LTE4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ym9keSAjRElTQ1JQIGgze2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMzMzN9LmZpbGV0cmVle2JhY2tncm91bmQtY29sb3I6I2VmZWZlZjtib3JkZXI6MXB4IHNvbGlkICMwMDA7bWFyZ2luLXRvcDoxNXB4fS5qcXVlcnlGaWxlVHJlZSAuZmlsZXRyZWV7Ym9yZGVyOm5vbmU7bWFyZ2luLXRvcDowcHh9LmZpbGV0cmVlIGxpe2JvcmRlcjoxcHggc29saWQgI0NDQztwYWRkaW5nOjVweCAxMHB4fS5kaXBsYXlhcmVhe2JhY2tncm91bmQtY29sb3I6I2VmZWZlZjtib3JkZXI6MXB4IHNvbGlkICMwMDA7cGFkZGluZzo1cHggMTBweDt3aWR0aDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweH0uaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNDQ0M7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO3BhZGRpbmc6NXB4IDEwcHg7d2lkdGg6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHh9LnBhZ2VpbnB1dC5kZXRhaWxze2JhY2tncm91bmQ6IzRiNGE0YSB1cmwoL2ltZy9nbG9iYWwvZ3JhZGllbnQvaDMwMC5wbmcpIDAgMDt3aWR0aDozMDBweDtib3JkZXI6MXB4IHNvbGlkICMzMzM7LWJhY2tncm91bmQ6IzRiNGE0YX1hLmFjb3Jke2JhY2tncm91bmQ6dXJsKCIvaW1nL2dsb2JhbC9ncmFkaWVudC9oMzAucG5nIikgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQztib3JkZXI6MXB4IHNvbGlkICMxOTE5MTk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtmb250LXdlaWdodDpib2xkO21hcmdpbjogLThweCAtOXB4IDAgLTE1cHg7cGFkZGluZzoycHggMTVweCA1cHggMjBweDt3aWR0aDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxNXB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjE1cHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NXB4O2JvcmRlci1yYWRpdXM6MTVweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjVweDtib3gtc2hhZG93OjFweCAxcHggMXB4ICMxOTE5MTk7LW1vei1ib3gtc2hhZG93OjFweCAxcHggMXB4ICMxOTE5MTk7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAxcHggMXB4ICMxOTE5MTl9YS5jdXJyZW50LmFjb3Jke2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3gtc2hhZG93OjNweCAzcHggM3B4ICMxOTE5MTk7LW1vei1ib3gtc2hhZG93OjNweCAzcHggM3B4ICMxOTE5MTk7LXdlYmtpdC1ib3gtc2hhZG93OjNweCAzcHggM3B4ICMxOTE5MTl9YS5hY29yZCBlbXtiYWNrZ3JvdW5kOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0MyMkYwMjtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjdweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7bGVmdDo4cHg7aGVpZ2h0OjB9YS5jdXJyZW50LmFjb3JkIGVtLCBhLmFjb3JkOmhvdmVyIGVte2Rpc3BsYXk6YmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXI6N3B4IHNvbGlkO2JvcmRlci1jb2xvcjojQzIyRjAyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo5cHg7bGVmdDo1cHg7YmFja2dyb3VuZC1jb2xvcjojYjJiMWFmfWEuY3VycmVudC5hY29yZCBlbXtib3JkZXItY29sb3I6IzFkMWQxZCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9YS5hY29yZDpob3ZlcixhLmN1cnJlbnQuYWNvcmQ6aG92ZXIsYS5hY29yZC5jdXJyZW50OmhvdmVyLGEuYWNvcmQ6aG92ZXIgZW0sYS5jdXJyZW50LmFjb3JkOmhvdmVyIGVtLGEuYWNvcmQuY3VycmVudDpob3ZlciBlbXtiYWNrZ3JvdW5kLWNvbG9yOiNiMmIxYWZ9ZGl2LnBhZ2Vjb250YWluZXIgLmluZm8gYS5kZWxldGVJdGVte29wYWNpdHk6IC41Oy1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTUwKSI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApO3RleHQtaW5kZW50Oi05OTk5ZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCguLi9pbWFnZXMvZGVsZXRlLnBuZykgbm8tcmVwZWF0IHNjcm9sbCB0b3AgbGVmdH1kaXYucGFnZWNvbnRhaW5lciAuaW5mbyBhLmRlbGV0ZUl0ZW06aG92ZXJ7b3BhY2l0eToxLjA7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKSI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTt0ZXh0LWluZGVudDotOTk5OWVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL2RlbGV0ZS5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgdG9wIGxlZnR9LnBhZ2VpbnB1dC5kZXRhaWxzIHVse2JvcmRlcjoxcHggc29saWQgI2ZmZjtib3JkZXItd2lkdGg6MCAycHg7ZGlzcGxheTpub25lO3BhZGRpbmc6MTVweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMnB4fWRpdi5wYWdlY29udGFpbmVyIC5pbmZvIGEuYWRkSXRlbXttYXJnaW4tdG9wOjVweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9hZGQucG5nKSBuby1yZXBlYXQgc2Nyb2xsIHRvcCBsZWZ0O3BhZGRpbmctbGVmdDoxOHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfWRpdi5wYWdlY29udGFpbmVyIC5pbmZvIGEuYWRkSXRlbTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9hZGQucG5nKSBuby1yZXBlYXQgc2Nyb2xsIHRvcCBsZWZ0O3BhZGRpbmctbGVmdDoxOHB4fWlucHV0W3R5cGU9ImJ1dHRvbiJdLGlucHV0W3R5cGU9InN1Ym1pdCJdey13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOnVybCgiLi4vaW1hZ2VzL25hdi5wbmciKSByZXBlYXQteCBzY3JvbGwgbGVmdCAwIHRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgIzE5MTkxOTtjb2xvcjogI0ZGRjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjVweCAxMHB4IDZweH0uQWpheE1lc3NhZ2V7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MHB4O3RvcDo1MCU7aGVpZ2h0Ojc1cHg7bWFyZ2luLXRvcDotMzdweDt6LWluZGV4Ojk5OTk5OTk7Zm9udC1zaXplOjE5cHg7Y29sb3I6IzMzM30uQWpheE1lc3NhZ2UgaDJ7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTMwcHh9LkFqYXhNZXNzYWdlIC5BSkFYbG9nb3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTQ4cHg7bGVmdDowcHg7ei1pbmRleDo5OTk3fS5BamF4TWVzc2FnZSAucHJvZ3Jlc3N7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQ1JTtsZWZ0Ojk4cHg7ei1pbmRleDo5OTk3fS5BamF4T3ZlckxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDo5OTk4O3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMzZGO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKTtvcGFjaXR5OjAuOH0udWktcHJvZ3Jlc3NiYXJ7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O3Bvc2l0aW9uOmZpeGVkO3RvcDo0OSU7cmlnaHQ6MjUlO2xlZnQ6MjUlO3otaW5kZXg6OTk5OTl9LnVpLWRpYWxvZ3tib3JkZXI6MXB4IHNvbGlkICM5OTl9LnVpLXN0YXRlLWRlZmF1bHQgLnVpLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6bGVmdDttYXJnaW4tbGVmdDogLTEycHg7bWFyZ2luLXRvcDowfS51aS1kaWFsb2ctY29udGVudCAuY21zX2Zvcm17b3ZlcmZsb3c6aGlkZGVufS5idXR0b25ze3BhZGRpbmctbGVmdDoyMHB4fS51aS1kaWFsb2cudWktd2lkZ2V0IC5idXR0b25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDogLTk5OTllbTtsZWZ0OiAtOTk5OWVtfS51aS1kaWFsb2cudWktd2lkZ2V0IC51aS1kaWFsb2ctY29udGVudCBpbnB1dFt0eXBlPXN1Ym1pdF17cG9zaXRpb246YWJzb2x1dGU7dG9wOiAtOTk5OWVtO2xlZnQ6IC05OTk5ZW19LmZvY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTc1KSI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzUpO29wYWNpdHk6IC43NX0uZm9jYWw6aG92ZXJ7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKSI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtvcGFjaXR5OjEuMH0udWktZ3JpZCB0YWJsZSB0Ym9keSB0ZC5jZW50ZXIudWktd2lkZ2V0LWNvbnRlbnQudWktc3RhdGUtaG92ZXIgaDN7Y29sb3I6ICMzMzN9LnVpLWdyaWQgLm91dGxpbmVfYmFyIC5jb3Vyc2VzX2xpc3Rfb3V0bGluZXN7aGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6MThweH0uQWNOb1BhZHtwYWRkaW5nOjFweCAwcHggIWltcG9ydGFudH0udWktZGlhbG9nIC51aS1kaWFsb2ctY29udGVudHtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0ZGRjtvdmVyZmxvdzpzY3JvbGx9LnVpLWRpYWxvZyAudWktZGlhbG9nLWNvbnRlbnQuYWRkU2NyaXB0c3tvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIHRyYW5zcGFyZW50fS5zY3JpcHRBcmVhe3BhZGRpbmc6MzBweCAwIDAgIWltcG9ydGFudH0uQ29kZU1pcnJvci1zY3JvbGx7b3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50fS5Db2RlTWlycm9ye292ZXJmbG93OnZpc2libGUgIWltcG9ydGFudH0uSkJfbnVtYXJlYXtvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnR9LmZ1bGxzY3JlZW57ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojk5OTk7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowcHggc29saWQgI0JCQjtvcGFjaXR5OjF9LmluZm9ybWF0aW9uQmFye2hlaWdodDozMnB4O2xlZnQ6MDttYXJnaW4tbGVmdDogLTIxcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOiAtN3B4O3dpZHRoOjEwMCU7ei1pbmRleDoxfSNpZnJhbWVDb3Zlcntwb3NpdGlvbjpmaXhlZDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6NTAxfSNQcmV2aWV3V2luZG93e2hlaWdodDowcHg7d2lkdGg6MTAwJTtib3JkZXI6bm9uZTtwb3NpdGlvbjpmaXhlZDt0b3A6MTAwJTtsZWZ0OjBweDt6LWluZGV4OjUwMH0udWktZGlhbG9nLCNQcmV2aWV3V2luZG93LC51aS1wcm9ncmVzc2Jhcnstd2Via2l0LWJveC1zaGFkb3c6MHB4IDBweCAyMHB4IDFweCByZ2JhKDQ1LCA0NSwgNDUsIC44NSk7LW1vei1ib3gtc2hhZG93OjBweCAwcHggMjBweCAxcHggcmdiYSg0NSwgNDUsIDQ1LCAuODUpO2JveC1zaGFkb3c6MHB4IDBweCAyMHB4IDFweCByZ2JhKDQ1LCA0NSwgNDUsIC44NSk7Ym9yZGVyOjFweCBzb2xpZCAjMDAwfSNQcmV2aWV3RlJBTUV7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt6LWluZGV4OjUwMTtib3JkZXI6bWVkaXVtIG5vbmV9I1ByZXZpZXdXaW5kb3csI1ByZXZpZXdGUkFNRXstd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7b3ZlcmZsb3c6dmlzaWJsZX0jcEhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTZweDt0b3A6LThweDt3aWR0aDoxNSU7bGVmdDo0Mi41JTt6LWluZGV4OjUwMTtiYWNrZ3JvdW5kLWNvbG9yOmdyZXk7Y29sb3I6ICMwMDB9Lm9wQmFyIC5mb250U2l6ZXJ7d2lkdGg6NTBweDtkaXNwbGF5OmlubGluZS1ibG9ja30ub3BCYXIgLnVpLXNsaWRlcntmb250LXNpemU6MTJweDttYXJnaW4tYm90dG9tOiAtM3B4O21hcmdpbi1sZWZ0OjVweH0ub3BCYXIgLmZvbnRTaXplciAudWktc2xpZGVyLXJhbmdle29wYWNpdHk6MC41fSNyZWxvYWRQe3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxNnB4O3RvcDotOHB4O3dpZHRoOjE2cHg7bGVmdDo0Mi41JTt6LWluZGV4OjUwMjtjb2xvcjogIzAwMH0jcmVsb2FkUC51aS1zdGF0ZS1kZWZhdWx0IC51aS1pY29ue21hcmdpbi10b3A6IC01cHh9I3JlbG9hZFAudWktc3RhdGUtZGVmYXVsdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgYm90dG9tfSNyZWxvYWRQLnVpLXN0YXRlLWRlZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IHRvcH0udWktc29ydGFibGUgLnJlT3IzIGlucHV0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OTlweDtsZWZ0Oi05OTk5OXB4fQ==]]></data>
	</file>
	<file>
	  <filename>/CSS/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dGFibGUudGFibGVzb3J0ZXJ7Zm9udC1mYW1pbHk6YXJpYWw7YmFja2dyb3VuZC1jb2xvcjogI0NEQ0RDRDttYXJnaW46MTBweCAwcHQgMTVweDtmb250LXNpemU6OHB0O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O2NsZWFyOmxlZnR9dGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgdGgsIHRhYmxlLnRhYmxlc29ydGVyIHRmb290IHRyIHRoe2JhY2tncm91bmQtY29sb3I6ICNlNkVFRUU7Ym9yZGVyOjFweCBzb2xpZCAjRkZGO2ZvbnQtc2l6ZTo4cHQ7cGFkZGluZzo0cHh9dGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChiZy5naWYpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciByaWdodDtjdXJzb3I6cG9pbnRlcn10YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ZHtjb2xvcjogIzNEM0QzRDtwYWRkaW5nOjRweDtiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO3ZlcnRpY2FsLWFsaWduOnRvcH10YWJsZS50YWJsZXNvcnRlciB0Ym9keSB0ci5vZGQgdGR7YmFja2dyb3VuZC1jb2xvcjojRjBGMEY2fXRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0VXB7YmFja2dyb3VuZC1pbWFnZTp1cmwoYXNjLmdpZil9dGFibGUudGFibGVzb3J0ZXIgdGhlYWQgdHIgLmhlYWRlclNvcnREb3due2JhY2tncm91bmQtaW1hZ2U6dXJsKGRlc2MuZ2lmKX10YWJsZS50YWJsZXNvcnRlciB0aGVhZCB0ciAuaGVhZGVyU29ydERvd24sIHRhYmxlLnRhYmxlc29ydGVyIHRoZWFkIHRyIC5oZWFkZXJTb3J0VXB7YmFja2dyb3VuZC1jb2xvcjogIzhkYmRkOH10YWJsZS5wYWdldGFibGUgdGh7aGVpZ2h0OjMwcHh9LkNvZGVNaXJyb3ItbGluZS1udW1iZXJze2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MTBwdDt0ZXh0LWFsaWduOnJpZ2h0fS5Db2RlTWlycm9yLWxpbmUtbnVtYmVycyAqe21pbi13aWR0aDozMXB4O3BhZGRpbmctbGVmdDoxNXB4O3BhZGRpbmctcmlnaHQ6OTYlO3RleHQtYWxpZ246cmlnaHQ7Y29sb3I6IzMzM30uQ29kZU1pcnJvci13cmFwcGluZ3twYWRkaW5nLWJvdHRvbToyNXB4O2JvcmRlcjoxcHggc29saWQgI0NDQ30uSkJfbnVtYXJlYXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Zm9udC1zaXplOjE1cHh9LkNvZGVNaXJyb3Itc2Nyb2xse2hlaWdodDphdXRvO292ZXJmbG93LXk6aGlkZGVuO292ZXJmbG93LXg6YXV0bzt3aWR0aDoxMDAlfS5DTV9saW5lTnVtYmVyc3tsZWZ0OiAtNDlweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3otaW5kZXg6MX0uQ29kZU1pcnJvci13cmFwcGluZyBpZnJhbWV7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTt6LWluZGV4OjR9LkNvZGVNaXJyb3Itd3JhcHBpbmcgaWZyYW1lICp7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uQ01fbGluZU51bWJlcnMgLnVpLXN0YXRlLWVycm9yLCAuQ01fbGluZU51bWJlcnMgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwgLkNNX2xpbmVOdW1iZXJzIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvcntiYWNrZ3JvdW5kOnVybCgiLi4vLi4vLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Jsb2NrZWQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAwIDAgdHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOmRhc2hlZDtmb250LXdlaWdodDpib2xkO21hcmdpbi10b3A6IC0xcHh9LkNNX2xpbmVOdW1iZXJzIC51aS1zdGF0ZS1oaWdobGlnaHQsIC5DTV9saW5lTnVtYmVycyAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwgLkNNX2xpbmVOdW1iZXJzIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHR7YmFja2dyb3VuZDp1cmwoIi4uLy4uLy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jc3Mtd2Fybl8xNi5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6ZGFzaGVkO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLXRvcDotMXB4fS5lZGl0Ym94e3BhZGRpbmc6MHB4IDVweH0uc3RlYWx7Y3Vyc29yOnBpb250ZXJ9b3B0aW9ue3dpZHRoOjEwMCV9LmNtc19kcm9wZG93bnt9LndhdGNoZWQgLmNtc19zZWxlY3R7aGVpZ2h0Ojc1cHg7bWF4LXdpZHRoOjI0NXB4O3RleHQtYWxpZ246cmlnaHR9LnVpLXdpZGdldC1vdmVybGF5e2xlZnQ6YXV0bzt6LWluZGV4Ojk5OTk5fQ==]]></data>
	</file>
	<file>
	  <filename>/CSSTree.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgcmVxdWlyZV9vbmNlICdUcmVlLmluYy5waHAnO2NsYXNzIENTU1RyZWUgZXh0ZW5kcyBUcmVle3ZhciAkX2Nzc3Byb3BlcnRpZXM7dmFyICR0YWduYW1lO2Z1bmN0aW9uIENTU1RyZWUoJiRfcGFyZW50LCR0YWduYW1lLCRwcm9wZXJ0aWVzPW51bGwpe3BhcmVudDo6VHJlZSgkX3BhcmVudCk7aWYoKCEkcHJvcGVydGllcz09bnVsbCkmKGlzX2FycmF5KCRwcm9wZXJ0aWVzKSkpeyR0aGlzLT5fY3NzcHJvcGVydGllcz0kcHJvcGVydGllczt9ZWxzZXskdGhpcy0+X2Nzc3Byb3BlcnRpZXM9YXJyYXkoKTt9JHRoaXMtPnRhZ25hbWU9JHRhZ25hbWU7fWZ1bmN0aW9uJmFkZENoaWxkKCR0YWduYW1lLCRwcm9wZXJ0aWVzPW51bGwpeyR0ZXN0aWZhbHJlYWR5ZXhpc3RzPSR0aGlzLT5nZXRDaGlsZEJ5TmFtZSgkdGFnbmFtZSk7aWYoJHRlc3RpZmFscmVhZHlleGlzdHMhPT1mYWxzZSl7cmV0dXJuICR0ZXN0aWZhbHJlYWR5ZXhpc3RzO30kdGhpcy0+X2NoaWxkcmVuW109bmV3IENTU1RyZWUoJHRoaXMsJHRhZ25hbWUsJHByb3BlcnRpZXMpO2VuZCgkdGhpcy0+X2NoaWxkcmVuKTska2V5PWtleSgkdGhpcy0+X2NoaWxkcmVuKTskdGhpcy0+X2NoaWxkcmVuWyRrZXldLT5fc2V0SWQoJGtleSk7JHRoaXMtPl9jaGlsZHJlblska2V5XS0+bGV2ZWw9JHRoaXMtPl9sZXZlbCsxO3JldHVybiAkdGhpcy0+X2NoaWxkcmVuWyRrZXldO31mdW5jdGlvbiByZW5kZXJDU1NQcm9wZXJ0aWVzKCl7JGNzcz0nJztmb3JlYWNoKCR0aGlzLT5fY3NzcHJvcGVydGllcyBhcyAkcHJvcD0+JHZhbHVlKXskY3NzLj0kcHJvcC4nOiAnLiR2YWx1ZS4nOyc7fXJldHVybiAkY3NzO31mdW5jdGlvbiByZW5kZXJDU1MoKXskY3NzPScgJzskcHJvcD0kdGhpcy0+cmVuZGVyQ1NTUHJvcGVydGllcygpO2lmKCRwcm9wIT0nJyl7JGNzcy49JHRoaXMtPnRhZ25hbWUuJ3snOyRjc3MuPSRwcm9wOyRjc3MuPSJ9XG4iO31yZXR1cm4gJGNzczt9ZnVuY3Rpb24mZ2V0Q2hpbGRCeU5hbWUoJG5hbWUpeyRyZXQ9ZmFsc2U7Zm9yZWFjaCgkdGhpcy0+X2NoaWxkcmVuIGFzICRjaGlsZCl7aWYoIXN0cmNhc2VjbXAoJG5hbWUsJGNoaWxkLT50YWduYW1lKSl7JHJldD0mJHRoaXMtPl9jaGlsZHJlblskY2hpbGQtPmdldElkKCldO3JldHVybiAkcmV0O319cmV0dXJuICRyZXQ7fWZ1bmN0aW9uIHNldFByb3BlcnR5KCRwcm9wZXJ0eSwkdmFsdWUpeyR0aGlzLT5fY3NzcHJvcGVydGllc1skcHJvcGVydHldPSR2YWx1ZTt9ZnVuY3Rpb24gcmVuZGVyQ1NTQWxsKCl7JHJvb3Q9JiR0aGlzLT5nZXRSb290KCk7cmV0dXJuICRyb290LT5fcmVuZGVyQ1NTQWxsKCcnKTt9ZnVuY3Rpb24gX3JlbmRlckNTU0FsbCgkcHJlZml4KXskY3NzPScnO2lmKGNvdW50KCR0aGlzLT5fY3NzcHJvcGVydGllcykhPTApeyRjc3MuPSRwcmVmaXguJHRoaXMtPnJlbmRlckNTUygpO30kcHJlZml4Lj0nICcuJHRoaXMtPnRhZ25hbWU7Zm9yZWFjaCgkdGhpcy0+X2NoaWxkcmVuIGFzICRjaGlsZCl7JGNzcy49JGNoaWxkLT5fcmVuZGVyQ1NTQWxsKCRwcmVmaXgpO31yZXR1cm4gJGNzczt9ZnVuY3Rpb24gcGFyc2VGaWxlKCRmaWxlbmFtZSl7JGZwPWZvcGVuKCRmaWxlbmFtZSwiciIpb3IgZGllKCJFcnJvciBvcGVuaW5nIGZpbGUgJGZpbGVuYW1lIik7JGNzc19zdHI9ZnJlYWQoJGZwLGZpbGVzaXplKCRmaWxlbmFtZSkpO2ZjbG9zZSgkZnApO3JldHVybigkdGhpcy0+cGFyc2UoJGNzc19zdHIpKTt9ZnVuY3Rpb24mcGFyc2UoJGNzc3N0cmluZyl7JHByb3B2YWw9YXJyYXkoKTskbnVsbD1udWxsOyR0cmVlPW5ldyBDU1NUcmVlKCRudWxsLCcnKTskY3NzX3N0cj1wcmVnX3JlcGxhY2UoIi9bXHNdKy8iLCcgJywkY3Nzc3RyaW5nKTskY3NzX2NsYXNzPWV4cGxvZGUoIn0iLCRjc3Nfc3RyKTt3aGlsZShsaXN0KCRrZXksJHZhbCk9ZWFjaCgkY3NzX2NsYXNzKSl7JGFDU1NPYmo9ZXhwbG9kZSgieyIsJHZhbCk7JGNsYXNzZXM9ZXhwbG9kZSgiLCIsJGFDU1NPYmpbMF0pO2ZvcmVhY2goJGNsYXNzZXMgYXMgJGNsYXNzKXskbmVzdGluZz1leHBsb2RlKCIgIix0cmltKCRjbGFzcykpO2lmKGlzc2V0KCRhQ1NTT2JqWzFdKSl7JHByb3B2YWw9ZXhwbG9kZSgiOyIsJGFDU1NPYmpbMV0pO30kdG1wPSYkdHJlZTtmb3JlYWNoKCRuZXN0aW5nIGFzICRuZXdsZXZlbCl7JHRtcD0mJHRtcC0+YWRkQ2hpbGQoJG5ld2xldmVsKTt9Zm9yZWFjaCgkcHJvcHZhbCBhcyAkcHJvcCl7JHByb3A9ZXhwbG9kZSgiOiIsJHByb3ApOyRwcm9wbmFtZT10cmltKCRwcm9wWzBdKTtpZigkcHJvcG5hbWUhPScnJiZpc3NldCgkcHJvcFsxXSkpeyR0bXAtPnNldFByb3BlcnR5KCRwcm9wbmFtZSwkcHJvcFsxXSk7fX19fXJldHVybiAkdHJlZTt9ZnVuY3Rpb24gZWNob1N0cnVjdHVyZSgkcHJlPScnKXtmb3IoJGk9MDskaTwkdGhpcy0+Z2V0TGV2ZWwoKTskaSsrKXskcHJlLj0nfCc7fSRyZXR1cm49JHByZS4iK1siLiR0aGlzLT5faWQuJyAnLiR0aGlzLT50YWduYW1lLiddJztpZihpc19hcnJheSgkdGhpcy0+ZGF0YSkpe2ZvcmVhY2goJHRoaXMtPmRhdGEgYXMgJGtleT0+JHZhbHVlKXskcmV0dXJuLj0nKCcuJGtleS4nfCcuJHZhbHVlLicpJzt9fSRyZXR1cm4uPSJcbiI7aWYoJHRoaXMtPm51bUNoaWxkcmVuKCk+MCl7Zm9yZWFjaCgkdGhpcy0+X2NoaWxkcmVuIGFzICRjaGlsZCl7JHJldHVybi49JGNoaWxkLT5lY2hvU3RydWN0dXJlKCk7fX1yZXR1cm4gJHJldHVybjt9fSA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentPostRender.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTtpZigkQ01TX0FETUlOX1BBR0UhPTEpeyRjb250ZW50PSRwYXJhbXNbImNvbnRlbnQiXTtpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgicHJlbG9hZF9DU1NpbWFnZSIpKXskcz0kY29udGVudDskc2NyaXB0SUQ9YXJyYXkoKTskZ3JvdXBJRD1hcnJheSgpOyRwYXR0ZXJuPScvc2NyaXB0SURcLyhbMC05XXswLDN9KVwuY3NzLyc7cHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sJHMsJG1hdGNoZXMsUFJFR19TRVRfT1JERVIpO2ZvcmVhY2goJG1hdGNoZXMgYXMgJHVybCl7JHNjcmlwdElEW109JHVybFsxXTt9JHBhdHRlcm49Jy9ncm91cElEXC8oWzAtOV17MCwzfSlcLmNzcy8nO3ByZWdfbWF0Y2hfYWxsKCRwYXR0ZXJuLCRzLCRtYXRjaGVzLFBSRUdfU0VUX09SREVSKTtmb3JlYWNoKCRtYXRjaGVzIGFzICR1cmwpeyRncm91cElEW109JHVybFsxXTt9JHVybFBhY2thZ2U9Jyc7Zm9yZWFjaCgkc2NyaXB0SUQgYXMgJGtleT0+JFNpZCl7JHVybFBhY2thZ2UuPScnLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1wcmVsb2FkX0NTU2ltYWdlLXNjcmlwdC1TRCcpLicnO31mb3JlYWNoKCRncm91cElEIGFzICRrZXk9PiRTaWQpeyR1cmxQYWNrYWdlLj0nJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgkU2lkLictcHJlbG9hZF9DU1NpbWFnZS1ncm91cC1TRCcpLicnO30kcGF0dGVybj0nLzxib2R5KC4qPyk+Lyc7JHJlcGxhY2VtZW50PSc8Ym9keSQxPjxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTk5OTllbTsgbGVmdDotOTk5OWVtOyI+Jy4kdXJsUGFja2FnZS4nPC9kaXY+JzskY29udGVudD1wcmVnX3JlcGxhY2UoJHBhdHRlcm4sJHJlcGxhY2VtZW50LCRjb250ZW50KTt9JG1hbmdsZXR5cGU9JHRoaXMtPkdldFByZWZlcmVuY2UoIm1hbmdsZXR5cGUiLCJub2NoYW5nZSIpO2lmKCRtYW5nbGV0eXBlIT0nbm9jaGFuZ2UnKXskR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl09KCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWJ1ZyIsImZhbHNlIik9PSJ0cnVlIik7JEdMT0JBTFNbIm5lY2hvX2RlYnVnbGV2ZWwiXT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVidWdsZXZlbCIsImJyaWVmIik7JEdMT0JBTFNbIm5lY2hvX2luZGVudHdpZHRoIl09JHRoaXMtPkdldFByZWZlcmVuY2UoImluZGVudHdpZHRoIiwiMiIpOyRHTE9CQUxTWyJuZWNob19mb3JjZWxvd2VydGFncyJdPSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZm9yY2Vsb3dlcnRhZ3MiLCIwIik9PSIxIik7JHM9JGNvbnRlbnQ7c3dpdGNoKCRtYW5nbGV0eXBlKXtjYXNlICJzY3JhbWJsZSI6eyRzPW5lY2hvX3VnbHlmeSgkcyk7YnJlYWs7fWNhc2UgIm5pY2UiOnskcz1uZWNob191Z2x5ZnkoJHMpOyRzPW5lY2hvX2Zvcm1hdCgkcyk7YnJlYWs7fWNhc2UgImNsZWFuIjp7JHM9bmVjaG9fY2xlYW4oJHMpO2JyZWFrO319JGNvbnRlbnQ9JHM7fWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJoaWRlbWVzc2FnZXMiKSE9InRydWUiKXskcz0kY29udGVudDskcy49IlxuPCEtLSBTY3JpcHREZXBsb3kgdmVyc2lvbiAiLiR0aGlzLT5HZXRWZXJzaW9uKCkuIiB3YXMgaGVyZSBhdCAiLmRhdGUoInIiLHRpbWUoKSkuIlxuICBNb2RlPSIuJG1hbmdsZXR5cGU7JHMuPSJcbiAgRmluYWwgaW5kZW50YXRpb24gbGV2ZWw9Ii4kR0xPQkFMU1sibmVjaG9faW5kZW50bGV2ZWwiXTtpZigkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl0pJHMuPSJcbiAgQXNzdW1lZCBlcnJvcnM9Ii4kR0xPQkFMU1sibmVjaG9fZXJyb3JzIl07aWYoJG1hbmdsZXR5cGU9PSJuaWNlIikkcy49IlxuICBTZWNvbmRzIHdhc3RlZCBmb3JtYXR0aW5nIGNvZGU9Ii4kR0xPQkFMU1sibmVjaG9fdGltZXIiXTskcy49IlxuLS0+XG4iOyRjb250ZW50PSRzO30kcGFyYW1zWyJjb250ZW50Il09dHJpbSgkY29udGVudCk7fSA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/example.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keXttYXJnaW46MjBweCAyMHB4IDBweCAyMHB4fSNtYWlue2JvcmRlcjoxcHggc29saWQgIzAwMDtiYWNrZ3JvdW5kOiNmZmZ9I21haW4gI21lbnV7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwMDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzAwMDtmbG9hdDpyaWdodDt3aWR0aDoyMzBweDtiYWNrZ3JvdW5kOiNlZWU7bWFyZ2luOjBweCAwcHggMTBweCAxMHB4fXAsaDEscHJle21hcmdpbjowcHggMTBweCAxMHB4IDEwcHh9aDF7Zm9udC1zaXplOjE0cHg7cGFkZGluZy10b3A6MTBweH0jbWVudSBwe2ZvbnQtc2l6ZToxMHB4fQ==]]></data>
	</file>
	<file>
	  <filename>/extract_css_urls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZnVuY3Rpb24gZXh0cmFjdF9jc3NfdXJscygkdGV4dCl7JHVybHM9YXJyYXkoKTskdXJsX3BhdHRlcm49JygoW15cXFxcXCciLCBcKFwpXSooXFxcXC4pPykrKSc7JHVybGZ1bmNfcGF0dGVybj0ndXJsXChccypbXCciXT8nLiR1cmxfcGF0dGVybi4nW1wnIl0/XHMqXCknOyRwYXR0ZXJuPScvKCcuJyhAaW1wb3J0XHMqW1wnIl0nLiR1cmxfcGF0dGVybi4nW1wnIl0pJy4nfChAaW1wb3J0XHMqJy4kdXJsZnVuY19wYXR0ZXJuLicpJy4nfCgnLiR1cmxmdW5jX3BhdHRlcm4uJyknLicpL2l1JztpZighcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sJHRleHQsJG1hdGNoZXMpKXJldHVybiAkdXJscztmb3JlYWNoKCRtYXRjaGVzWzNdYXMgJG1hdGNoKWlmKCFlbXB0eSgkbWF0Y2gpKSR1cmxzWydpbXBvcnQnXVtdPXByZWdfcmVwbGFjZSgnL1xcXFwoLikvdScsJ1xcMScsJG1hdGNoKTtmb3JlYWNoKCRtYXRjaGVzWzddYXMgJG1hdGNoKWlmKCFlbXB0eSgkbWF0Y2gpKSR1cmxzWydpbXBvcnQnXVtdPXByZWdfcmVwbGFjZSgnL1xcXFwoLikvdScsJ1xcMScsJG1hdGNoKTtmb3JlYWNoKCRtYXRjaGVzWzExXWFzICRtYXRjaClpZighZW1wdHkoJG1hdGNoKSkkdXJsc1sncHJvcGVydHknXVtdPXByZWdfcmVwbGFjZSgnL1xcXFwoLikvdScsJ1xcMScsJG1hdGNoKTtyZXR1cm4gJHVybHM7fSA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/extract_html_urls.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgcmVxdWlyZSAnZXh0cmFjdF9jc3NfdXJscy5waHAnO2Z1bmN0aW9uIGV4dHJhY3RfaHRtbF91cmxzKCR0ZXh0KXskbWF0Y2hfZWxlbWVudHM9YXJyYXkoYXJyYXkoJ2VsZW1lbnQnPT4nYScsJ2F0dHJpYnV0ZSc9PidocmVmJyksYXJyYXkoJ2VsZW1lbnQnPT4nYScsJ2F0dHJpYnV0ZSc9Pid1cm4nKSxhcnJheSgnZWxlbWVudCc9PidiYXNlJywnYXR0cmlidXRlJz0+J2hyZWYnKSxhcnJheSgnZWxlbWVudCc9Pidmb3JtJywnYXR0cmlidXRlJz0+J2FjdGlvbicpLGFycmF5KCdlbGVtZW50Jz0+J2ltZycsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9PidsaW5rJywnYXR0cmlidXRlJz0+J2hyZWYnKSxhcnJheSgnZWxlbWVudCc9PidhcHBsZXQnLCdhdHRyaWJ1dGUnPT4nY29kZScpLGFycmF5KCdlbGVtZW50Jz0+J2FwcGxldCcsJ2F0dHJpYnV0ZSc9Pidjb2RlYmFzZScpLGFycmF5KCdlbGVtZW50Jz0+J2FyZWEnLCdhdHRyaWJ1dGUnPT4naHJlZicpLGFycmF5KCdlbGVtZW50Jz0+J2JvZHknLCdhdHRyaWJ1dGUnPT4nYmFja2dyb3VuZCcpLGFycmF5KCdlbGVtZW50Jz0+J2ltZycsJ2F0dHJpYnV0ZSc9Pid1c2VtYXAnKSxhcnJheSgnZWxlbWVudCc9PidpbnB1dCcsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9PidhcHBsZXQnLCdhdHRyaWJ1dGUnPT4nYXJjaGl2ZScpLGFycmF5KCdlbGVtZW50Jz0+J2FwcGxldCcsJ2F0dHJpYnV0ZSc9PidvYmplY3QnKSxhcnJheSgnZWxlbWVudCc9PidibG9ja3F1b3RlJywnYXR0cmlidXRlJz0+J2NpdGUnKSxhcnJheSgnZWxlbWVudCc9PidkZWwnLCdhdHRyaWJ1dGUnPT4nY2l0ZScpLGFycmF5KCdlbGVtZW50Jz0+J2ZyYW1lJywnYXR0cmlidXRlJz0+J2xvbmdkZXNjJyksYXJyYXkoJ2VsZW1lbnQnPT4nZnJhbWUnLCdhdHRyaWJ1dGUnPT4nc3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4naGVhZCcsJ2F0dHJpYnV0ZSc9Pidwcm9maWxlJyksYXJyYXkoJ2VsZW1lbnQnPT4naWZyYW1lJywnYXR0cmlidXRlJz0+J2xvbmdkZXNjJyksYXJyYXkoJ2VsZW1lbnQnPT4naWZyYW1lJywnYXR0cmlidXRlJz0+J3NyYycpLGFycmF5KCdlbGVtZW50Jz0+J2ltZycsJ2F0dHJpYnV0ZSc9Pidsb25nZGVzYycpLGFycmF5KCdlbGVtZW50Jz0+J2lucHV0JywnYXR0cmlidXRlJz0+J3VzZW1hcCcpLGFycmF5KCdlbGVtZW50Jz0+J2lucycsJ2F0dHJpYnV0ZSc9PidjaXRlJyksYXJyYXkoJ2VsZW1lbnQnPT4nb2JqZWN0JywnYXR0cmlidXRlJz0+J2FyY2hpdmUnKSxhcnJheSgnZWxlbWVudCc9PidvYmplY3QnLCdhdHRyaWJ1dGUnPT4nY2xhc3NpZCcpLGFycmF5KCdlbGVtZW50Jz0+J29iamVjdCcsJ2F0dHJpYnV0ZSc9Pidjb2RlYmFzZScpLGFycmF5KCdlbGVtZW50Jz0+J29iamVjdCcsJ2F0dHJpYnV0ZSc9PidkYXRhJyksYXJyYXkoJ2VsZW1lbnQnPT4nb2JqZWN0JywnYXR0cmlidXRlJz0+J3VzZW1hcCcpLGFycmF5KCdlbGVtZW50Jz0+J3EnLCdhdHRyaWJ1dGUnPT4nY2l0ZScpLGFycmF5KCdlbGVtZW50Jz0+J3NjcmlwdCcsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9PidhdWRpbycsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9Pidjb21tYW5kJywnYXR0cmlidXRlJz0+J2ljb24nKSxhcnJheSgnZWxlbWVudCc9PidlbWJlZCcsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9PidldmVudC1zb3VyY2UnLCdhdHRyaWJ1dGUnPT4nc3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4naHRtbCcsJ2F0dHJpYnV0ZSc9PidtYW5pZmVzdCcpLGFycmF5KCdlbGVtZW50Jz0+J3NvdXJjZScsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9Pid2aWRlbycsJ2F0dHJpYnV0ZSc9PidzcmMnKSxhcnJheSgnZWxlbWVudCc9Pid2aWRlbycsJ2F0dHJpYnV0ZSc9Pidwb3N0ZXInKSxhcnJheSgnZWxlbWVudCc9PidiZ3NvdW5kJywnYXR0cmlidXRlJz0+J3NyYycpLGFycmF5KCdlbGVtZW50Jz0+J2JvZHknLCdhdHRyaWJ1dGUnPT4nY3JlZGl0cycpLGFycmF5KCdlbGVtZW50Jz0+J2JvZHknLCdhdHRyaWJ1dGUnPT4naW5zdHJ1Y3Rpb25zJyksYXJyYXkoJ2VsZW1lbnQnPT4nYm9keScsJ2F0dHJpYnV0ZSc9Pidsb2dvJyksYXJyYXkoJ2VsZW1lbnQnPT4nZGl2JywnYXR0cmlidXRlJz0+J2hyZWYnKSxhcnJheSgnZWxlbWVudCc9PidkaXYnLCdhdHRyaWJ1dGUnPT4nc3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4nZW1iZWQnLCdhdHRyaWJ1dGUnPT4nY29kZScpLGFycmF5KCdlbGVtZW50Jz0+J2VtYmVkJywnYXR0cmlidXRlJz0+J3BsdWdpbnNwYWdlJyksYXJyYXkoJ2VsZW1lbnQnPT4naHRtbCcsJ2F0dHJpYnV0ZSc9PidiYWNrZ3JvdW5kJyksYXJyYXkoJ2VsZW1lbnQnPT4naWxheWVyJywnYXR0cmlidXRlJz0+J3NyYycpLGFycmF5KCdlbGVtZW50Jz0+J2ltZycsJ2F0dHJpYnV0ZSc9PidkeW5zcmMnKSxhcnJheSgnZWxlbWVudCc9PidpbWcnLCdhdHRyaWJ1dGUnPT4nbG93c3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4naW5wdXQnLCdhdHRyaWJ1dGUnPT4nZHluc3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4naW5wdXQnLCdhdHRyaWJ1dGUnPT4nbG93c3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4ndGFibGUnLCdhdHRyaWJ1dGUnPT4nYmFja2dyb3VuZCcpLGFycmF5KCdlbGVtZW50Jz0+J3RkJywnYXR0cmlidXRlJz0+J2JhY2tncm91bmQnKSxhcnJheSgnZWxlbWVudCc9Pid0aCcsJ2F0dHJpYnV0ZSc9PidiYWNrZ3JvdW5kJyksYXJyYXkoJ2VsZW1lbnQnPT4nbGF5ZXInLCdhdHRyaWJ1dGUnPT4nc3JjJyksYXJyYXkoJ2VsZW1lbnQnPT4neG1sJywnYXR0cmlidXRlJz0+J3NyYycpLGFycmF5KCdlbGVtZW50Jz0+J2J1dHRvbicsJ2F0dHJpYnV0ZSc9PidhY3Rpb24nKSxhcnJheSgnZWxlbWVudCc9PidkYXRhbGlzdCcsJ2F0dHJpYnV0ZSc9PidkYXRhJyksYXJyYXkoJ2VsZW1lbnQnPT4nZm9ybScsJ2F0dHJpYnV0ZSc9PidkYXRhJyksYXJyYXkoJ2VsZW1lbnQnPT4naW5wdXQnLCdhdHRyaWJ1dGUnPT4nYWN0aW9uJyksYXJyYXkoJ2VsZW1lbnQnPT4nc2VsZWN0JywnYXR0cmlidXRlJz0+J2RhdGEnKSxhcnJheSgnZWxlbWVudCc9PidodG1sJywnYXR0cmlidXRlJz0+J3htbG5zJyksYXJyYXkoJ2VsZW1lbnQnPT4nYWNjZXNzJywnYXR0cmlidXRlJz0+J3BhdGgnKSxhcnJheSgnZWxlbWVudCc9PidjYXJkJywnYXR0cmlidXRlJz0+J29uZW50ZXJmb3J3YXJkJyksYXJyYXkoJ2VsZW1lbnQnPT4nY2FyZCcsJ2F0dHJpYnV0ZSc9PidvbmVudGVyYmFja3dhcmQnKSxhcnJheSgnZWxlbWVudCc9PidjYXJkJywnYXR0cmlidXRlJz0+J29udGltZXInKSxhcnJheSgnZWxlbWVudCc9PidnbycsJ2F0dHJpYnV0ZSc9PidocmVmJyksYXJyYXkoJ2VsZW1lbnQnPT4nb3B0aW9uJywnYXR0cmlidXRlJz0+J29ucGljaycpLGFycmF5KCdlbGVtZW50Jz0+J3RlbXBsYXRlJywnYXR0cmlidXRlJz0+J29uZW50ZXJmb3J3YXJkJyksYXJyYXkoJ2VsZW1lbnQnPT4ndGVtcGxhdGUnLCdhdHRyaWJ1dGUnPT4nb25lbnRlcmJhY2t3YXJkJyksYXJyYXkoJ2VsZW1lbnQnPT4ndGVtcGxhdGUnLCdhdHRyaWJ1dGUnPT4nb250aW1lcicpLGFycmF5KCdlbGVtZW50Jz0+J3dtbCcsJ2F0dHJpYnV0ZSc9Pid4bWxucycpLCk7JG1hdGNoX21ldGFzPWFycmF5KCdjb250ZW50LWJhc2UnLCdjb250ZW50LWxvY2F0aW9uJywncmVmZXJlcicsJ2xvY2F0aW9uJywncmVmcmVzaCcsKTtpZighcHJlZ19tYXRjaF9hbGwoJy88KFthLXpdW14+XSopPi9pdScsJHRleHQsJG1hdGNoZXMpKXJldHVybiBhcnJheSgpOyRlbGVtZW50cz0kbWF0Y2hlc1sxXTskdmFsdWVfcGF0dGVybj0nPSgoIihbXiJdKikiKXwoW15cc10qKSknO2ZvcmVhY2goJG1hdGNoX2VsZW1lbnRzIGFzICRtYXRjaF9lbGVtZW50KXskbmFtZT0kbWF0Y2hfZWxlbWVudFsnZWxlbWVudCddOyRhdHRyPSRtYXRjaF9lbGVtZW50WydhdHRyaWJ1dGUnXTskcGF0dGVybj0nL14nLiRuYW1lLidccy4qJy4kYXR0ci4kdmFsdWVfcGF0dGVybi4nL2l1JztpZigkbmFtZT09J29iamVjdCcpJHNwbGl0X3BhdHRlcm49Jy9ccyovdSc7ZWxzZSBpZigkbmFtZT09J2FyY2hpdmUnKSRzcGxpdF9wYXR0ZXJuPScvLFxzKi91JztlbHNlIHVuc2V0KCRzcGxpdF9wYXR0ZXJuKTtmb3JlYWNoKCRlbGVtZW50cyBhcyAkZWxlbWVudCl7aWYoIXByZWdfbWF0Y2goJHBhdHRlcm4sJGVsZW1lbnQsJG1hdGNoKSljb250aW51ZTskbT1lbXB0eSgkbWF0Y2hbM10pPyRtYXRjaFs0XTokbWF0Y2hbM107aWYoIWlzc2V0KCRzcGxpdF9wYXR0ZXJuKSkkdXJsc1skbmFtZV1bJGF0dHJdW109JG07ZWxzZXskbXNwbGl0PXByZWdfc3BsaXQoJHNwbGl0X3BhdHRlcm4sJG0pO2ZvcmVhY2goJG1zcGxpdCBhcyAkbXMpJHVybHNbJG5hbWVdWyRhdHRyXVtdPSRtczt9fX1mb3JlYWNoKCRtYXRjaF9tZXRhcyBhcyAkbWF0Y2hfbWV0YSl7JGF0dHJfcGF0dGVybj0nL2h0dHAtZXF1aXY9Ij8nLiRtYXRjaF9tZXRhLiciPy9pdSc7JGNvbnRlbnRfcGF0dGVybj0nL2NvbnRlbnQnLiR2YWx1ZV9wYXR0ZXJuLicvaXUnOyRyZWZyZXNoX3BhdHRlcm49Jy9cZCo7XHMqKHVybD0pPyguKikkL2l1Jztmb3JlYWNoKCRlbGVtZW50cyBhcyAkZWxlbWVudCl7aWYoIXByZWdfbWF0Y2goJy9ebWV0YS9pdScsJGVsZW1lbnQpfHwhcHJlZ19tYXRjaCgkYXR0cl9wYXR0ZXJuLCRlbGVtZW50KXx8IXByZWdfbWF0Y2goJGNvbnRlbnRfcGF0dGVybiwkZWxlbWVudCwkbWF0Y2gpKWNvbnRpbnVlOyRtPWVtcHR5KCRtYXRjaFszXSk/JG1hdGNoWzRdOiRtYXRjaFszXTtpZigkbWF0Y2hfbWV0YSE9J3JlZnJlc2gnKSR1cmxzWydtZXRhJ11bJ2h0dHAtZXF1aXYnXVtdPSRtO2Vsc2UgaWYocHJlZ19tYXRjaCgkcmVmcmVzaF9wYXR0ZXJuLCRtLCRtYXRjaCkpJHVybHNbJ21ldGEnXVsnaHR0cC1lcXVpdiddW109JG1hdGNoWzJdO319JHVybHNbJ3N0eWxlJ109YXJyYXkoKTskc3R5bGVfcGF0dGVybj0nL3N0eWxlJy4kdmFsdWVfcGF0dGVybi4nL2l1Jztmb3JlYWNoKCRlbGVtZW50cyBhcyAkZWxlbWVudCl7aWYoIXByZWdfbWF0Y2goJHN0eWxlX3BhdHRlcm4sJGVsZW1lbnQsJG1hdGNoKSljb250aW51ZTskbT1lbXB0eSgkbWF0Y2hbM10pPyRtYXRjaFs0XTokbWF0Y2hbM107JHN0eWxlX3VybHM9ZXh0cmFjdF9jc3NfdXJscygkbSk7aWYoIWVtcHR5KCRzdHlsZV91cmxzKSkkdXJsc1snc3R5bGUnXT1hcnJheV9tZXJnZV9yZWN1cnNpdmUoJHVybHNbJ3N0eWxlJ10sJHN0eWxlX3VybHMpO31pZihwcmVnX21hdGNoX2FsbCgnLzxzdHlsZVtePl0qPiguKj8pPFwvc3R5bGU+L3NpdScsJHRleHQsJHN0eWxlX2JvZGllcykpe2ZvcmVhY2goJHN0eWxlX2JvZGllc1sxXWFzICRzdHlsZV9ib2R5KXskc3R5bGVfdXJscz1leHRyYWN0X2Nzc191cmxzKCRzdHlsZV9ib2R5KTtpZighZW1wdHkoJHN0eWxlX3VybHMpKSR1cmxzWydzdHlsZSddPWFycmF5X21lcmdlX3JlY3Vyc2l2ZSgkdXJsc1snc3R5bGUnXSwkc3R5bGVfdXJscyk7fX1pZihlbXB0eSgkdXJsc1snc3R5bGUnXSkpdW5zZXQoJHVybHNbJ3N0eWxlJ10pO3JldHVybiAkdXJsczt9ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/acor.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAADjUlEQVR42u1YyVIbMRTsBlURyD/m37nhcsqHwCEkoM5Bb5NmMFQq5EAxB9tjLW/v1xJvb2+/4QM87erLFShCBCCBsN8ACOVM+1MEiDFXJABhfAL06YStJCABIEhA8VuxOyFAGHvJVjHHZJv5eoJFECARBNC+3nzFGKtqhxpI3XxzQL6RW+VWKGcOx6ShJsR1XZ4iqQqFG0BbrnBbiLXvdn1zbRHR0IUEzXOi5p391Tzt0aNp52vDDRHlObBhsytlRo+gj8HJHlZnWlRNjgeyXV5cfoQSwQU+yPPBDNFLw/ovSugf7NBGwQw0SQSkoZPhTal50YpcpgIrPGsq8sC6KGYHFATAjMJNhbyAHQFrK5C4oKoBNIGGLnTXtBvimDTH/YHXpUmgJyzHPIfPoazb1B2FHM1UnABA6KZg9gh1pB69qq5JeUnhv9ZtlaTRqCaPITFbiPFeukqXwafr3oHOfKE1tO4uYDf4ZYHino1Syv7UlVEpTdFlyRxOAO35+fnd8p7vseKFae3p+anEjpEeI7WtAXFnI5U27FSldLvh1FdqaeENU+0kjcgijUap6PquR/v9++lNxTRxJ2Z9wPgQa6idF5Fe815pQViCV6G0emMNtYZSttuf/A2FKrVfj49nI8nyYxA0TZDJ5JPFUJeuErwkhSjca8Xeys62wMx9sCbQHn/+LBC3w2JVlN2gq3GeojimjGBEafLuhICZenRUm8hWJaGYIlHNavcPDxFKglP4I2+dl7MgStB4f026Xjh2GmS1RC+gqK3MlKlnxf8G57Q0935UTRHQTqfT3yPOqxOzfuYC52b03GbnxYzRdjweNzm/UWU6d7zRiDU9+cqClxTYdcpWl3Y4HP6qT8x2MSDxPR6+gY+1w93dxtHzaUYlx0seF+UTERmHLJBT3QzQmE+O2AsCrVr94LRU79TDnHkIaHeHQxJELZszi6mgfno/9ypHUM6pEIQ0VzKKvShtBmZjXGA7u180XpW7hHb8fizwmEfaKZScPbQlAgXtkt7utAHOFwpTx1/g3p1QiIGWM3NN6HY6ncKrAYc7/q8Yz6ndrmxDcbORtyl5zk5uYZIiJZGwukPhK1XRWgQC2v2P+60+XCxebkRULg20YQFL4Wu+iNjlaaXr1tXEcmbxW5jlAoMQmqTtSU01Lpi69vSpPQTVPrZqV0hussr0t/q/sJP6Y+zz8uHTkE9Dzj9/AKgloyNtXUzfAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/add.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACYUlEQVR42q2T60+ScRTH/VvgTW1suWJmTTc1XblZ01GGgVPnLSARQ6cYD0iCCHhZpojzUq1gCiyWXARU5mVmTtRSWuoD07Vgtba2gvH220ObkFvaG7/befn5/H7n7Jy0tLOObraZ3u1pIpQuIdlh50elb+qjra+rSbGlkhBOcun/gcUstbsp8mpzEOuRZQS+b2Hz2xrcIRvkngbwjOxI7YvbrFNgUWw2aMPhryDmv7hgJEfxfE8P24ERK18XoF2SoGKiOMYZLTou0XrFNAoOz+ybEfy5i/HdATzd6EafXwl9QIehgBZ9252YObSB8AhQargRLhnMpyUFFCwbXlXh049t6sUhDO5ooXknx1FUGxJIlwWQrTbCeWDF3YkCFD3JkSUFnc4G0hWyUl81oWddga41KSTzwqSAb+Wgda4SYi8XIx90GFjpwPW+LDIpkE3z4r7PLgx/1FFwO06KyF0G2SIP5sA48nSZ8aSg3VYbt4emoN0ioPC3nCogfPWwBMaQ3c1MCVqsVaTBr4V+R4P2twKIFqtRa7lzDEzUQw8Hw34Ven2PcEWVnmpBNFUuu29hwREyQ7JYgyZfxZ+e/xYInWw0z3Dh2DfhWn8mmI8ZqSEKTGW0upelYcLDxzQ5mRxYAmx0JioBc2DfM+KB+V4CDqfLz9OO7ULVsxJW+djNWJujBk5KYvCrQczVQeqtgWG9Cw4KFpjZYCoYMQr+9zayRwpZLH1BpHgkF/1LBEzv9TBt6aHxtSGvNyMBR06Ej3JrIJde2J9N5PdcJXM0GdEs9cXoZeUF8pKCQaTLz9HP/Hp/A8Wz0Ay+WdgCAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/add_group.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACwUlEQVR42o2S3S9bYRzH7WIXy7JbF/tDtosldiHZZiammURkw1johm3qvUa1aylS05aJppiX6Oq9NGHUS+tYpcSGjraUktWMdC+18JwmfPdowmR14SSfq3N+n+eXz3mCojK0HJnOaSjQrDD8Nkqrg8l594XJbrAymfXzDE/1iXlZN8vkqxjm6Nug/x9Jp9Ok+LDFnIcXVUZTgODo5POSXDHOBAj4rcsMgHORVDoSKMhvsftf6k0Oh3p4fU/au0ZKeyhdq6SkY4W81tqJULNIilut5HntDKEtXLRF3D9Bs80vkOtd+/Xj2+QY9dh3ojK4Se3gOlHql0mVzsYK2+ZYaefSRmrZ4BodvUi5EJSmmPILjk4+prRnlYjbbaSwaYbNqhlh08p72WSJ1hfLb/HFFWs3H2Q2uulwMOVSEF1HxK2cYPKabeTXLkshZNuzS+wr6+zwuJFVdEsPNNMqGJx96LdpITMIDqNFSXtXgi+HUMHV0y1cdBOXbszmqei0HnJlQ+CpBBha7sbk1igal96iwVGN3o33qDAWgiN8hOucxzWnW/gFJV1OlHXZkakYQJNFibHNARR+zID56wSmvpmQOhILtbUS6doE3OXHH54IaAu/gP5vZKimESfQoNfRBuW8FAbXALzsb/z840H/kgZFJi7kkyJwyqNxIqAtqmkLF70X2NnZgdFoRNNCDSSzebD/WMS+bx++AwK7ZwH5I4mQMyJElnNw1r2Ax+OB2WxGyWg2FHNixOpu4fOmBXNbFsR0hEA5LUB6ewJu8CLOEDTb4PV6YbVakdPylK4qRJWlEEVjXLwypOCNmQ+pIRf3y8IQmpIXKKAtQAiB2+2G3tAHbt1DFOjToKQiOSMAr/MJIqV30KFvx+0kZaCAttCmyIxIlAwiJleD8DQxQrNi6FAUwsQRuPbsHm7G59LhaoRz1V1/AXtqXRNDcj9mAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/bg-slice-squidfingers.com.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDgAOALMMAKmpqcnKysTExL29vZmZmczMzLW2tra2tsTExba1tbW2tba1tgAAAAAAAAAAAAAAACH5BAEAAAwALAAAAAAOAA4AAAQ2kElGJgMzWHY2G1MlCRZmGVPhiQw5eqikSoqHTK4nT0u55RPQxZKwaHTGjMQUVH42TOFRx4wAADs=]]></data>
	</file>
	<file>
	  <filename>/images/blocked.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACU0lEQVR42q2T7U9SYRjG/VvgQys313pbc81WW80EBT1EICDiIdMjNlojTcdhptlWzoY0PzS11F618kumMWPlS7bUXpmWx0ohTsGK0HNAIN0V0oK51E9e2/Xt+f2ePffuJyVls+MqLxfOUWXmT1QJM6MnuWm9jvtIaphJUmV2FimEG8JuQznxhaLYn7ZGhIcciLwfR2RsGPzDLriMxXhbQLCvNFJiXXi2lOIX7ndheeYDovYHiHZaEW29hN93W7A0aoe32ohxlZh/qchcLZkzGAQx2MPd7sQy40T06gUErBbMN1YhfMWCSBONcMMZhB/dgfskidFjhzwj8gOChCAG075aM5acE/EbF200/BdNCNUZVpU7SyLccwNvJBkYlGXQCcFn6gQT7LmJaHcrAg0V+KGVrdmFChJ8Yw28lko8JdKZhIAp1Ycij3sQtVkQOG/EevEqs+GnCjDf2gyHZE8oIZgmtaHF7naE640InSvZUOArVmO+pRkD0h1JwVSRmvE31GDRSoM7rYkfXLMqCQK11XBVm2AXpSWf4CxU0IxchFB3BwJ6OfzFef/BrEIMNj8Pwc5rGJbuQn/WtuQQ32llgtc6wuMu0yF4rz0+MJ9a+hdU5oCVx2C5FHxHGyYLZSuwp1e0VbBqFybys4kx5RF+9rgawVvt+FVPw0uq8E2jhL/ODP56G6Y0uejLSuVj8Nrb+EJxmHh+9CA7nrcP36tM8Dddjvdr5Sk8y965ArPrwv8yJNsvHJSmmx3EXuZJ7m5uQLSd689JY/rEqebezC3CTf+9fwCiP9Om7nIiOAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/controls.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/copy.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHnSURBVDjLpZM/a1RRFMTPfXv3L5sYIXYSxMbCWsTCOo1JGlPYWKeyshE7v4JNwCZfQRBBBBsLERsbv4K1hGz23TMz91i8t4muleQ0h1vM3B/MnBQRdpVJz78c3Y8wq5KJMlJGyOg0OAyrXbr9/tmnr38a5IjYFOtnUUawE+NvkZfVGw/XCTIhE5Ums/GL0WRklZckWCM5P1vuHBzvPuhJXvUGNEJpPB3d8sLXgoYEh6IGdGYAGc4Gjrw4XbbD0eA7Ch5fEMBpdCY4Ex2T2cb0TcQ4VSqRSiQToUSnTefTiailt37t4Hj3GxyWUWBwNMTY4Byb2Z2zX4uXVdoi61zSlqg5wZkv/UatsShLH1iynyjYz966oSMwFI4IWUS9LdWNKm0ImhEYwzV050xSeMHALBovsFzajgAFqRSfEDSx3hQ1AzShYwTnAI4BWh+SGnoLC4uKQusJcK9dtNuL0+XdzetzK63vEMwXwi7GhAITa+PFI8IqHJbfHn34aGZ2eLL3pMnNDxRYlYogEWzgSl0KNDgrnIHOgAQtr+LoSR5569ae+7YXJDhq/3ugIAAanQFnNTMQtLR+C4cnewHHOxQEHOGFtTOg4BBBsaMLUU/zejUvSMpllVf3QO+r3re1Sv8S/O80dsX5DaeOJ5G2UDDRAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/css-error.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFBUlEQVR42q1Xa1BUZRgmm6aZ8kf9cqbGGeSyCGILK+h0EYjRQTETAbkIXhAlkoVRbIpIGnKcpkKGLhb/ssufaqamX01jppRO4SV3THGwgLWExtw9lz3n7IJuzNv7fGcPbbArtz0zzyzn+973eZ7vfb/znUNc3CwuKclWJCXajkkJyS4GSUsY8aHfBAGXmOe4uFheTLiTyd0QUlasIm3rNjJeaqXRo90TwD3GMS/FJ5GI57z5CmfwilzSkiRSCwpp9P1uGvv8C/IfOkz68w2k19ZNQNu1W4xjPtDRKeKRJ6rCPHNctU2R0+xktLwixH1bKkkrryL/a4cp0PXuFBitbWJeq6gS8chDPptQZtUWIZ6YTPIyuylcvIW0sq3kf/0NCnR2TQvE+YpKRB7ywSP2yExaEiq7IqfbRUmVp3LIaNpHgTffmjXQFiU3X/AIA4miEhnTGeAdbiN9Tz3Jmdlk7GsWBHOFvtdJWAz4wIs9dTfxdg4wAxna9hrytx6cN7AnLE4B1olmQBEGGOradWQ0vxAzKE/mkMUNnSgbzwwwS/acKF/MwHxSSlq4iZ2TDRyTElMIUAufIa2mNuZQ89eQpQG9yQbcYsKWRr7SCtE3PEYq7+KIyIuAKLG+TcUm3+bScAPuyQbEBI5SJACyI4uCvWfnDdme+R/nY46QgRSKaEDOzCJ13QbylZTx3ysoFpec4eDVl4jjGfyhCkQwwJDT0kldX8hHakXsDDAP+NS1BYLf0opggFuQzS3YsFEApYuJAbTA4nRkC52oBuS05aL8ogVcupi1IMQpHsUoBk6ZEynke7aItOodvBe4FdXb+TlumDOQb/IwX8F6sjSgN9lAlzUpZ60yD6IYAwdcmIGuqW/BUBtEFcoqSee3YKygbiwKExcG4iMdxxNtkFLTydh/gIwXW+YNva5e8PmKiiOXP8xAHqqgPLGaZH4aAKOllfyvts8ZyAcPHkHwhgzk3e2V3GW2oJwUPl6VlY+Tv/2Q+MqZNTgP+Vg5DETsfdSPEpio2mYaWZ0rVhI40jljGM0HxNeUxuUPE3fN9JvwIcuEyoeHvr9ZrMJXXCq+cgJvvxMVmPeVVwrjyEMVLXHwTit+Jxi8NxAILFQ++TRVylopNqVsd4hqGAfbxIq03fwpzhtUb2gkjcfxi3e+GHc28v8ILeaGE8cuizMP+MAL/ojC4+Pj94yNjS3UNG2xx+O13xgeyRsccm++4Wz8yJu6bFQQ4T3B5dRqdplCbMgCjMGkKHdIGHnIFzzMB17wQwd6/1/5neD9um484vFKy4eHR54eGBwq7bvaX3fRdan1/DffHu3f6zx305HlDz8rIsNGiLvG8chDPnjAB17wQwd6UwwYRsjAyEjewKC7BIku16WXe8+eP9Lz45kPj3938usf3vvgwkVn05+u2j0ed/4avwXcYxzziEM853Ug3zTgLgEv+KEzxYBowe3bD2i6/qjH62UTf+UMua9v6r/2245fL/c1XfjF1fZz77mO02d+6j7Vc/rjE9/3fHb8xMkvWewr/OIe45hHHOKRh3zwgA+84IfOlBZYVzAYXBAYHX2QAxdJspx88+9bDu5frvv6H4W/DwyWMmE1r6j2St/V+stX+hpYxIlf3GMc84hDPPKQDx7wgRf8M/4XLRj8ZwFvmPv8/gAMPayqvkWyrCyWJCmBV2O75fEuZaTy5lqKe4xjHnGIRx7ywRNN419+QN3rDj+4dwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/css-warn.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/css-warn_16.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtZJREFUeNp0U01PE1EUPW9m+jGlpbShrV+RElFpSUwgRUE2xigSjAviQgOyIhpjYrpwzx8gsDFqiFE3EkBdsNRgjCYuIIALIxYRSREThQKl9INOZzrPO0MQE+AmN3nvvjnnnnfeHXDO0dLSgu2wg6H7qqWVfwiMatNhVV+s58WZsMo/+keNunG+HSbuf4Lmk7bysYfefh4/m+KpTs43blLeoeziPNXO+UJDauxxWX9ztc27TSAZi4zCca6S+UceeF7Lp8O10I4CRQ/ASv51g54FnFLpmevyrZGqL3WtXYnLhFsWjDOnRRR6bqNPrpFrkS4DVCNJaiG9kxrtNSJNuSCH5EjPXfQZOFPBjSa5MdLEO5CVAZk+UtepyrErGJEwH5CWEWlER2fW/sgk6DhvaYPdQpgK8LU4yVexb4hWMFsQkObQfkFqMwl0ixoWmAt8fRW69RqY+ziRaXsokMBTsxCSQ7R0QZe0sEkAASJ0Dr6ZA6togeAL7ytAT3wFn3kGZrrHRJOAK4ICK91PlEnFNLgk7e0BzYBxzkQHXdOch4JJIKrWSWjpK4LXC555QSYN76tAICOZsxRIpmhtGzOFDLxXXiIrKtAWwFxe8iAAVlq+O90HCExPXFyl3iXKwLv8qy2C8WzsyWC+F6oC5OepQgMk+UmabyeNPeiZlUWahySePk/3DoxtfjMJ/iQ3MDxb0421w4NI/qSPpsmtnOHRlheGY/omkVN9/TuwdmhwKFbTbeCY8S9MTU2JB49U+IR8+pg+ff+el7+9ZHfrDjipq2SljgTOrCCfRi7JLr5hoWivbnf9+P1rIWESUNi0YrFqKZE8sZRYDxaWZursG+OnHMV5v42nrApzF3Ji5XLe3fDZ6qv+FPCXxQM+z6wkinMmQTQaRTAYtEXq672hUMifyRXK80rRo6qaS9e5JAhMs1iktN0mJp0O60osFluenJhYi8fjyl8BBgCuTzcufQEujQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/CSS.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAzFBMVEX///8CHVT///8AAACWlpY8PDyJlq+ZmZmapbtnd5g1SnbMzMzu8PQTLF8kO2tjY2N4hqS7u7vd4ejM0t2rtMYzMzNFWYJvb2/u7u6FhYXd3d0DAwN3d3e8w9HDw8MSEhLV1dVmZmaxsbEODg4PDw/S0tJ0dHQwMDBWaI1XV1cfHx82NjYhISGIiIiqqqrk5ORLS0ufn59CQkJ1dXXh4eFdXV1FRUWQkJARERFUVFRSUlJERERVVVXz8/MkJCRBQUH29vaHh4ciIiJ+fn4+2s6rAAAAAXRSTlMAQObYZgAAAVxJREFUeNrtU9d2wyAMBRmDsfHebuKk2bPp3rv//08V2O0X9KEP0YOOLF10ha4h5Gj/yia2ZVk2Onte5iayL8bnM2tmUhpxffvJAECgYyehhz4GsTypK6hMakzIy7ZOIkqpdCh12NCllBdUCub41M8wdSoIWS9Sn/bmJH0ghfOTQkx7rwL6i8GGPuAZ6WG/FTgd5mPAdTWCBKGO1D2SCkSjD3Lo5nk4W2mM2ixSztOOQapaSBNxL1wTchkX+gOs0XM8yPuSn4bKNZGrNhNytY9Mn2WYFTxZiszUXC/0uLlKtC/J5Glo2kOib40L8TI9ioqhqbhB5+T9tRvIUCjMDkHzqYIGCQQdhty99dRYrnkfRd2UaFlYohZrpNYomTLcQ4D7RU7ESBw0yNjooAUrpwNPC5Zvpwwa1AnY9DE2AjaL0bzTvdVqo9akta0d6m3Z7ZdtfoTdzeH4LP7CvgGPyxhkN5jejgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/delete.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACUklEQVR42n1SW0hTcRjfU6+91XvTbUcmRc4HH4aztYE+lNkurTWzi4qiwSCksqSLNp3RhEgo6cGolyBG7aHIaF0IhFKpyLlVW6SZZRs7Zztnl6Bf5zuytYv1wQ++7/td/ufP/8hkJTWrq9ItdlZ4V0cakbhzDMK9XlBPO+Jk/6u3esbDjrUg6/cg+3gUv15OSKA+OzWM5PgehM0Kz7rmN1rGkxg7gPTd88h4B5HxjRZD3BEnXLUjYFAVhzxTVutWrXKkrh1H6vop8GfWQH3pLHjaEbPLMaMpuE5Iq/LG96nBj3SDdw0hV9SXzaImblIi0qD05gPCdUpwbTuR7GsFf+4s/lWpGxOShnXUY0mrQD5gsUYB1moA12EGd8SMzMMHZeaMzydx3FETWJMey5rKggC1GLDLCK7VgsQhG4RL7rIAweWSONLEG3VYqS4IiCiViBv04GxWcI6D+M2y614hebJf0sR36PBFUXCF95XMXKxKjURnF4Qr438/23tfQq7Sk7ckDWmDFaq5fMC0Qt32c1st2N17kejoRvrmbQnUl86s2YZogxHkKfoX3skZP2u2iyf0gD9xWoIwOCwhNyd6nOIhFgS2MP7yP7G9a/M8s3U+1mxB0tkHfsgtPunFNQxcEJ+vH2xTM0hD2iIzz/Mbv618rw2GPthfOQ6/CG+vy/zQGSUDIVpvxCd1TYY40pCWPKUBGpHc/3pmduDJ0+eTj9yXp6d6nQsE6mlHHGlIWxRAJQjChmg0tmnp6zITjnzWhkIfmwILwRYC9bQjjjSkzfn+AP1sTO/MPaL/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACUUlEQVR42qXT3UtTYRwH8P0L3UZXXUQg1V8Q9AKRdTVSiCS9mEngcuXQtUmBxNAww8Z62XAVasnmiGxiGDm0Jmszyr3P3FDncqPY3NvZ2dnZ2bfnnL1QEFH2g+/N4fl9nh/Pcx6R6H9LfM3YOTwdzvVNhqB6TjLxBcqxIHqf+tDz2Au5wY1u/Wdc1X2C7MEypFoHVHpbju8TALU5zGnm4vjXyEYWOQHgd95NOoYWIACqiTXspiQD8xVAOb4qfGDYEgokNMMiR7PI0EWkKAaJLI1vO3nEvlOIBGYQfHYea9NqrBhOwXW/oVXEHxhfRY5DsVQSoHyRBVWoQOk8i2SugHh4CjGrAin3DJD9ih23GfY7p+Mi/rT5KhGA5REShkA0gSh+GgIlNi1I+vvBbL1CbGEIec8LlDZs8DzpoEX8VQlAuSwANYghKRAos21F0nsDXN6GfFiKhPMKAuMSOHQSODXiAyL5qKsO1MJWkXSMNHuU4Gg7qFAb6EgLMn4VImNidN0crRyi7OHHCkDC/QRFfS8RW1ZUm1tBb15A2tuHsP4s6LgfTT3mCtClddavplxFtv0WBN70krHfgV6XoBC5iBSZJKQ7Ayq5Jaw9JzdVAKnmwy/3u7o0Cd+sCq7XI4g6mkGttyCxch1hgxjFVLS+TtxtRO0tGC/ffS/8We2DVphunwQyGwjqm2BV7cXSo0bM9h9Dp1JHxp4iOxtBevgYf/u4bl1qYBm7FozjHhzq4zC178vOKQ8f+evX2Xx0Dz3QdpCdH2xk3w6fWLQoDu3/0/oftoKuIJzlL/sAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/errorArrow.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAIAAAAY12rUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA1JJREFUeNqslNtr21YcxyWdi6SjixXHtwRnc2qaOtmaNe0GaWF5GGy0D71AO8qgMNp/Yf/LnsbYy8oYrIMMBnlYN8j2kLAMmq1eqN0QJXaCZFcXW7Ik17F2HJd07voyyOEI6Xcun/P7/c7vK7b+8DvmJBqM2l7otv49BBCSs+n/DeIA+OvbZQx2j4d6XXZi8Wrh/UX6HVj22udfBbZ7PEvXv3PnZm5+7hUQS0N7HoQbX94vzFbOXaEb4paJtn5VmOSNNy6+R1eEtvP7F/cLpl18fsjGTBNwazJ++/a17FulkTg++/Q2QDB3drb6mx26/fQ0iyWkpIGzU29bsjqZg6KQOVuq7tX6MaMhRDAaB/CxvktSYySVHAENHEYwPTejb3ihxyTzABFeTqFWzfBcieYL8nyqdFo3jZhjVYxFHo8B9KS+LyY1cUwbAQ1YEI6fnt5/HEQdoOUAEngpiX2j2WmL9GTI42SxULesGAIZ84LAU+92jIaQUISEOgIaJlJ7M994GnUDIKchdUTUcMdyQl8QtQTAiM6abiuGkGCMeV5FqG7ZWJF4WRoBDVk0L9ZelycxEhBHD1dQ6LajAPOqQrOpTGYt30McwEdNQqjhuEgi3H8rgsaoFaYcU+0zJGZEmi9Bxb75rN87HNQLzddM0ZfEWBRoF3k+C5Gr114DCiynUa5omRbLBLTbtZ7xFKXOFDkI6GzX881yRfIDNghp96LIOOzR5MJXKH7j2f7GZvHdljLWpaa5LdSfiFOLJUREakat9t7aH9lOJB3G1HQBu8+j/MIcjXoE1D4w9NW12SV7PBdRs74l7vwpnfrgHJalgae2u/1wNe+FySOKBVhdxNOXLgwr4CXI2a1XV35euNLMTA0o+iNSWU+Url+iF0zNTtP6e3lluh2ke/2Bp5CrivjMR0tSevyF1oYva1svP/jx4i1j4lRIzeq6XF4l8598ODzNM5qb33w/4/gTR5QDyJUlfv7mZWUi81K09GlWtje/frB050AkPafGNHTh0U+JC/euDxXQPjCpEudsT+7HVIoex26q5PzHV9X85Ij6fbNZXfmFVuf6D+oLHUNw/u41KZMa3tHW8gompErI8Z6FG5dpZb5G/SfyY+OYE2onBvpHgAEAFCpNYIhnYx8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/external.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhCgDSAMQQAP////8AAHWDqVF2jP8AM4iUuBhQfL3M1P/M/5mZmWhxdswzADNmZsxmAGZmZo6Znv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAKANIAAAXMICRCQ2mOjAOswDCSDDsYtDEksrHeQBLPLVyi5AAmHEMDhAHR9QYApcjJkjZrtZd2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/9fBYKDIwoPLAAFLwUKLAUCkAIFB44CK5MAB42PiZQHgg+cBw+fAhAKEJaZBQCmIqosrqmRkYC2t7i5uru8vb6/wMHCw8TFfQTIySMLDYgELwQLLAQB1QEECNMBK9gACNLUAN0IyA3hCA3kARALENveBADrIu8s8+7W1iMhADs=]]></data>
	</file>
	<file>
	  <filename>/images/folder.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/folder.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/foldersmall.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/GetTag.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACqElEQVR42pWSS0iUYRSG3/86FzW7oJRjRaJGblwEgRFtirBV0K6l0QWCdhpi0LJlLaJNBNmigpCIga40pFkakTBhRlppjTccZ8aZ//Ldv5k2FUFa9O7Pc85zzjHwj9wdKdpCqwYhdIIyVUe4aCVcXAypSPmEHzH+Vnzn5UpMCJ1SWnYIqSGVglYCsYiJTNbHl8Xgsf03AOXirGtVOmrjJrgsgwsDlJsohRxRx0C+6B1Yc4JrjxfckKvSlvVOlHKOnMdAuUDIFGpiFj5+zePb7EqPuRbgVGeD8Ai99DXrIWQCERsoBhwlnyAgFIVcAFEKp/5QuDmY26ankxeklNbpYzu7Tl4epR5V5zdvcKM1UROLOQbLjCAoBRA+Wf6lcGs4HxNS35alucNbo0sRx3GQTqf7u7u7uw6ee7BPUf60sb4mVlXtgEuJ8ZFpMJ9sN350taWUHyKO0YKKxuJ0WjVv4PbExEQ/pfQEpbT2dWFPm2Ts6ebEupifD5HN5D6Vy6LNBADKRAPlqiXuApZRhrOp1R6eccWUs/8GpfQ6IWSkpfLos/TJoZl3GbKUWbqvNGufHOpVNgAERCQADcoqmM8TVEUNxDYmXDn5/llTU5NTX1+PgYGBwe32k72T4d5dk0O9mZ/qNgD4lNZZBhCyCgLCkF2RqI3baNzR7Lwaf4H2YBqc89FkMlkAkoXfl24CQMmnrUJyECbhEQ4/ZJiaK6Doc8Qad+PBGyWzuv3Maue2zlwdc33CU3XrXcsLGVzLgG0BtmlAlzUyM8so5Cp9Yw97h1YD2EWfBuvipqOVQkg5ZudL8FdC0ICBBRzUC0e11lfWeji7GJCUWXE6P+R8zM0VpAxZnxZqSjOxrISY12W18PF5j1oTQHxy1MvKe4ryA4qK6rcDxwX+I98Bx/ui3T5ZBwsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/groups.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlElEQVR42o2S3StDYRzH/YtzgQsNkRR5mYxZCWsvpYmlZJk0i04Mq1NiXmaeCxei5GWbbR65kcJY2ePCfr7PKbOcmfOrz8XpnPP9nedzvjWmPqXWG8ns2lfSbHgZhFLMunjJBhYuWH/gnFn8Z6x37pTZ/IzJZ2t+j3MtE/dtPzAj9EwdxnUBcrNR2idiTBcwHLphRGSIVveePsC2lNRuqvFUaj569+7ZvBXuDRDOCtdqWjiUpBhbuRKjoQvRPXsi4ILDhfknIJjQAqZVXgjEHkU1vOq9gAsOF9lSQJfvWAuQm/9jMHgt4ILDBS8F4HPGOyaP2FAwIXL5DyDEy5ukUOJZ8loQ+fePHJZxuOCVXHB5M3KQeJpWs0VsIvSC0AvCMQndIPSC0AtCLwguCMs7y11oAa5whnBOQ8DFZ7kLLUBuNgpcULmLGbjg6AUZHbigSi7+fKEoKUqK2nWzc6dCAIRVm+8QOeaxLX0AXBg+gsmi6APgQoELTVCbZ59anFFqcmxT44hKDfYI1dvWqc4alr9QonwBRdCT/JJs1ccAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/help_1.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAn4AAABvCAMAAABFGz1FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAjpQTFRF/9uQ2///OjqQ/7ZmZrb/AGa2ADqQ25A6OgAAOpDb//+2tv//tmYAZgAAAABmkNv////bkDoAiabAAAA6///W29uQOgBm/+KoREREzMzMgICA/+vCua/OsKXIwrrVtKrK7u7upprBwLfTq5/EvLPQl5fCk4SznY+6Z2eomou4j3+wkYKyn5K8l4i2o5a+ttuQrYCt1v//6///xf//4v/////F68KXqOL/wuv/qtpNyOeLodY7ueBswuR9s95epdhDqNlIzemVZgA6vuJ1y+iRtt9ko9c/sNxYxeaErdtTrdb/l8LrrYCAOgA6iESIkDo6iEREZjoAZ6jil4CXrYCXgK3W4qhniMX/2/+2/f38xYhEZgBm4uKokGYAvMvagICtOjpm1q2ARESItmZmkGaQZpDb/8WI///i27ZmZ0SI6//WqGdn6+vCOpCQgJfCRIjFADo6kLaQiERnRGeoOmZm4v/F2//bRERnZpCQZma2+Pj3+Pj2/9atZrbbxeKo1uvCqGdE///rZ0Rn1v/WtpA6y8O0Z0REZmZmOma2ADpmtrZm5OHZxYiI6ebg/f379/fztv/b8/Pu+Pj1wuvWl5eXiGdEiMXil4CAZ2eIwpeXy8O1wsKtz8i6zMS26ObfysKz9PTx8/Pv6OXf4t7X8PDrZjqQwpeA2dTJkNvb3trR2dTKiKji7u3o3djP19HF4d3Uxf/FqOLiOjoAOjo6OpC2qOLFkJBm25BmkNu2kJA6ZmY67+/vAAAA////xL3dRgAAD1FJREFUeNrsnYmf20YZhu3Itqysst5NstnthhsC4dzm2G65YbkT0qYpkE1ICpSSgx5Jm6QpbYG0tKTc5b5vyn2Wm2r+N+Y7ZjSS5Uu2V2N53l8irzSHZfn1N9Lo8efKczc85+RUkCovukE4OQ2kt7NekNLgPTn7OQ2sd7JekpKzn9Mm6A2sl6U0vP3u2E66Y4A+vKie3XezUe1S3Kv5lKqypTqGqiPVe1nPS2l4+21PPc7NR1I1D5b3boNl1KiOxn5bt83OCD8K2sp9+ST1Tlal58eut8L+BFS/JjdRM2qtyoQIsa+4gayqNg6k3d9dXj4sdr5/+SP7eAm6aRm27t6zXzy6fKh/v3QxTm77DWdGODY7WrSUa89U8aDx4UrpzawXpkSli59fWjoGy6trYvXo0p0HBrHfiRMnohNf/cZ2vVM102E+vaWjs19GOayHWc8DZTW5C3U4SOCmT8lPx46WrA8Plafgs1Lj1lyGhiUzov3oGWnjgHr0kNj5gZs/dkjc9EFBS3DfffulFw9L++2+/ebRhLii7PfhGb2UxxjfOegxq9d3sJ6fEpWeOS5WH/jb3WvizKWDJ4+LD10YxH4PP/xI9MjXv7JdJOyWtp8XXWzCLmI0OicLKSzhxyVQpbjWqMq25Ika1+K1UK7MflEVRtpwnqziK9dDfSpUVXBXPBWDsR/wZA1DNZhRtw4xJl7HXfdM+6mNg+qx73/zxn0y1H0Sl/sF+BHi4p579tzTyX0+vAKw/0NbTs+ubFn46G0yoMCYEvhqIIHSmjxYszMVqCNryM+NXJcfqS2nI3x1UYMaQoUZrIqhqbFABoEePt2pT9lQltUGsR+bDpZexoF6E+ulKekKZ+8G+y3uvXLLAbk89b1vL33n2pJ04tLSpYPd7fc1HGC/xPYLebfBBxBLYvuBK2rwMHeXtF+lCaYLDAuE8OrBCUFsP67Fa2gGKkwEVRzvA/Usc3c9gSuqyhweSWW/SnNHS4ZDKg3hXYlbQ9ncfN0z7YcDs9448PiLxtt54+dwuU+QB+Wfn/1WJ/dVds2Ijz89X4PdkR+GLQtHWsIDn1WxZAZfUQ3sIl1Wxzqyht/YkD6QteW611iAmivYcEVuoKqwlBXQfg9CD6JTn0dannxLGtXeg2/AS22/Jr3rab2L9eKUdIXFvQflsHt1bVXab/WWzzy+dubq2plLp84fEF8+0N1+P/v5r6I//uIvsf1gH2rt0a+uAg+u+GjaOp544XAo2H5kL97AtbLsFwc/+aK/cJs6Q6vxqWDAS/SU0ParQJCl09NA7y63xjJ/dsawH7tXbxxQMtbt7GC/23943/7OZxj4ZtJIBn7Zut7CiDVrRBos3bXCo538C0aOWVrfUH1sXb8/rqC7o6UQnfus4L/e4+96Sy3j6JfV8C2s16WkylcfWBMnj5+9doHtt/fgIvy7crTtPLDNfj/55e+iP/3+z+bgG/Zjv0AVh93sFxiNDfthdFWGoFG6HsdeKqRlpVkX2k1yEx/ukD6k8glUaywjZ9JZAn/8/egf89lXUH24D02XOfjup3PBbAOuZNlPn/xm2y/x/nMfPe3Xoc8+7Td3a0stY/up4djUe1ivSclwn/SbHIL/SYMv2++gvBK5s0f0+82PfvDkkz/9sXnp0dl+evD1yAfynJ8vBpT9qK0eq7EWr5n2E8pX+Bw4mOKwDd1XVWFchdyE8U3vjh9QaKPWyTJu4AV8PZJnsoeuLTpeejz268OZg+8n5Pv5Wxx8tVPkQChHSSxpyT/MgZLdRWOrbgM178eG6F4afNdhjIZx2W/w4Nuxz37sJy/qZDtaJs79Mj6m72O9IiUeeR9fkxY8elwsnj+Alx6LbL9Tf5COXBto3g/jBxhKzXEk7BdfetBFh3TrjmcN+3HYqvP0DddSa76+9PAT0SjkcTyg7p/AQl9FsbpQEyjYW9TY2KYnXCBahhwlVYTz1DQMTx/Vcs41whTL8uGsiZdDGAqlCzueUsHePERWalLEDnEaK8A3G09v+NKjSpcUVfPKAl4gfJ64gqBLD/liLm+BwyKX2EPnPvuxH3VBS57KEpWmHl4Sej3rlSlRqbzAWFo6Zky8LOrBF2Zk3F2PyZhUtmOKOUtvY702pYm+6UYhKvNSy9nPKvu9lfXylCbafk6TonezXp2Ss5/TJuiNrFellMN+Djd1crip0wTJ4aZOBcrhpk4FqlS4qVPeGRaHm47Ffn425UjPVRRvWnLclBBTeYBmZ4SCTofBTfHexwWLcdNu0ZRvzWaUFcablhw3RcQUbhV7japJ/eXETfHW7sljNuKm/EAIlfToOQCgjKga86OW8aZlxk0J2JK+k/9N++XETcF+i+f/aiduyq1o28Xm7IpuTu8Y86O28aZlxk3JfustQGY0dDoEborBz0rcNNQsqQfGxS8cRQbwF/OjdvGmJcdNFW6DXWjoNC9uCsHvgJW4acp+0hbtp5TEj1rFm5YdN+Uq9KCh05y4KQY/sWorbmoMvuiNFFbm0XhqE29actxU+24+ECZ0mhM3xeAnLWghbpq+9KgKVaA9TxMoVvGmJcdNafbK4xMcOkrD4KZnrwFZ6nDTiZ1UtmOKOUulxE2ngjd1uKmLfk7DyeGmTgXK4aZODjd1mk453NSpQDnc1KlA2YWbdpejTcc2wzK1uKmXcdNU3+9Wq1T7XH/2i/FQ3K2mvs0bdco0ucngaclxUzhmcJAor6nl2U2zQlrKfqp2n9FP46G0W08xWKUeMuy3yeBpyXFTeTjxNjJ+pO3PblqnVYMuxWylM2aeUrafQaZWAe+DxELxFuPJQ9Npmg2gKjaAp+XGTdOp1azObgoOMLgXlTAtgU6x/Zg9RaIU8D4/AZ+a8d+43xbSzW4V/KwAT8uNm8aU1kRkN9XInpkuUsXD2KxJ1JQJaGOLefbRHguVuWwAT0uOm1Jy03T0sza7aab9EnlKk/bjOGTYL0hdSiTPHaFcn/lZAJ6WHDcl97XZz9rspgZ0atgvmac0MCrRcYntl2RMk7GP0VG2ihXgaclxUxjzs+xnbXZT49Kjzt9Oi2b/awYT035MlBr2SzKmMR6qOo5q6sLbCvC05LipH+kTm5rLbuomlS2ZYs5SiXDTJGNaeuLU4aYu+jkNJ4ebOhUoh5s6OdzUaTrlcFOnAuVwU6cCNUm4aa5ZhmajOq3vrcNNRR/ZTb2oH4Znc+3HzTq37h9RbW9bctyUMpvgvY/6BGQ3DXP8JOl47adB0s571j+i2t62/Lgp/aCqCAPrs5vibz4zQYwJTOOlSCKh1PqiCRRgvQXMasrsVLoJ50WtxHXm5gGNkg8KOfWMGnHHnM1XIwbDIKrtKjluSq6r7LI/uyn/4K7OlQbLBcJH/QQSqm0Rk8we177YhJ9TjdEr3/yqB4IJFbMOwqSVJvev6dWLzY72Gw5RzVCpcVP4gFPwE9ZnN8XhqqlMFbOgESU61Uio0LEztl/Iybvkq2Uiz2yCpConpjTrePIjfL1xjijVQGh61SQyUvYbClHNUMlxU85oumsm/tve7KaoWtJ+cVk9gZ1m2w/HaQ2EJppo+8V1tm67d/0/6/8j0kinU02eJGbaLx+imu2+Umc3lYehhsEP44vV2U1DumSsm4PvOc2GpZHQpP3U4MvInnKj2YQDa8WsE0aNB+dV1Kob9Gq2/YZEVDNG3nLjpv9uYcTD4Gd7dtOt2+i6XP0igvmzCr6JhGbZT196VM2RMdGEZ0EqRh1BX1BSlQ161bzyjQC6xochEdX296fkuKmHLx9S67rspm5S2Zop5ixNCG66OSjpRCGqDjd10c9pODnc1KlAOdzUyeGmTtMph5s6FSiHmzoVqEnETV2W05HPsExxdtNeXtJ3v0eR5TTORZpl6xFkOe32BKwS46Yqsyke/2d0dpfoIVtx0wHsJ0aQ5bQ9caphv1FkOe32BKwS46ac2ZTeKpXXtHKkZS1u6nH8IBIU6Uj1E5X6p37j+4VDZzk13DGeLKd92E+UGjdl0jnObQVgorW4qQ5l6ud7fZ1nLZVuzbBf/iynnItUjC3LafwEXcff8uKmqdOCyt+PtCzGTY0Eaxibnp6HrM5tySZHl+VUJZocU5ZT0SWHuVaJcVM19mr7HflXo2ozblrnNSA1/eg6p+xL5zpNnfvlznKqH8aT5TQwX1sX95UVN43dFyeW9Ov24qYqua468YMgl5FoPMN+ubKcci7S8WU5jZOddh55y4ubUmZTwuy1/ebmA1txU/5ZmY1t0Y5n4U0LORhGlI5ZZchMXXrkz3LqqS7HleXU6znvUmbclDKbov1UXlO0+eXJwE3n5sf4lfOpnVS2Y4o5S5bhpqPIiTElWU4dburu+ToNJ4ebOhUoh5s6OdzUaTrlcFOnAuVwU6cCNVG4qeNMxzXDMsXZTXtrFJwpk6IdbL05nCmr1NlNCTIVfPvUety0Tw3NmTIpmm2/TeJMWWXObuor+OfWFt3ktRw3badFmSZNZhMamjM1SNEiOVNWeXFTNhnYj2EZq3HTdlqUQZdM++XnTGNStFDOVI2/pcVNVYyTh4MGX7tx03ZaNMk6j4ozjZONFsmZskqMm6riUAZmPD22Gzdtp0WT9kuf++XlTONkowVyprH7SpvdlIvhQeU1tRk3badFk7Bphv1ycaY8mBbKmaqRt8zZTcmpMziic15Tm3HTdlqUTaZg03b75eJMmRQtlDNllTm7KU5XcTM98TIxuKnTOCaV7ZhiztKEZDcdZHa67JxpmezncFOnAuVwU6cC5XBTJ4ebOk2n8uOlbvB1Glr58VJnP6ehlR8v7WW/gXDTvkHS0H0NfagZle4pMjZ9SiY/XtrLfgPhpvnsN6FeHAVu2sE9ZnbRPPZbSHN/gzsy1JyWvmfcGTdtw0uvroleYGmf9hsEN52q6DdS3DTpFiO76AiiX55oGF7GRnCruA/cNIGXwm3cM5cO9gJL+7Rff7gpAZ8KJE3/3D13zXd0Q7qtqhDR0FyZLOXATStIicIRIoSUfvgTk9LFW4TOLqprEE9qUKW6FQIGwL6cVl8rgGLES7FPGK/oNjDiqyp8deVP/YBcBngLIi7dcdMEXgr2W9x7pRdY2qf9+sNNfYaNTcRU/9x93JvKfZqgq9pRq4kZf3PgpoSXwsFiQpRA0qqxRdNSgmtonjSmShk/RZxUOsJDMtVrbHAxMS/YJw2+GxpfJWSlK3/qB+r5ZQwm4KorbprES+Wwe3WtJ1iarf8LMABMUzEHH89seQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/help_2.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/help_3.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAnwAAAAZCAMAAACclQOkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNQTFRFAAAAv7+/f39/Dw8P7+/vPz8/39/fz8/PHx8fLy8vr6+vn5+fb29vj4+PX19fT09P////V9ycHwAAAW5JREFUeNrsmN1qwzAMRiVLlv+S1O//tJPtQlkJhWYbvdh3iIniC12YgySHOgAfgnAEAPIByAcA5AOQDwDIByAf+B+w+krGPALIB/4OjURhBE1I2hSDeyAOErNcsa9JXIEdEiAfeEHI2ih5IIWLLPkqtR5i17xfkDnHJV+lYKh84BVl6z2PClWKxtsUYxffm/KlSzov+XJIPG0sJAnygbMaVHuPQz4TWW2W5tvbLt36dfmYSp4JmGpSyAee2GJsPuEt+Zg2qVOMQ1yaULiNCvhuvod8wZeXPCNhtF3wTGK20XLHUr8dJLH7zFenQlt8P99DvnV38d1CFfKBE46sXqC0epu0Mm8ebsxNdMx8ZbuSccinVWnvO7mLqokC5AMnWM509F36QeTBkk/lFvwz21X5PF+jMqXbfYZkyAdO/43wKHc2mqZ922b7idP+3BPYyc9qyAc+d8fGEQDIByAfAJAPQD4AIB+AfAD8Fl8CDABE89Tnp6grEAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/in-edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9ElEQVR42qWSPWhUURCFv7n3JVldIqhFohLiQjpthO0UItiIlYJkEUsFUbGIjYIgaRStAoEQsbM0IAFDGrUQYmEpNinEnxV3owhbGPOieW9mLN7bGLsEBwYOw+W759w78J8lZ8YfXz12vH6/k3rVHTDDzVBT3Bxzw1Uxd1wVNWNXb7a6tNS6MTfZmE7qR+tTPZVqGKhs6+LqaqpTwHSSZh7Szs9tW1/LPAAkrs6d8yPbBly816QAuAGwnisOuDlqYDhmjpqhuRftxro6tcF+1LQA4F68ZhDEHQ+CiyMmhCCIBEQUiU60QJIX5y0vAV1SAFwEBKKDCZg50SFIJBFQcTQUjk2tjGBefqiA+z8gEXB1TMAFCEK0WAC6EbqiYEghNoEsERIz2vMPWJ6fIf38jp6BAxzuGy0AeZZtOBDA3RERfBNoeeEhK69nOXL2An21Q6y9fcaOxRfUTyTXgpdZIiClCyl1ECGI0HwyycjoaSrvXyKPzrHzwxy14T24+HhiZn8jlE03Slnr7SaVwRqcur4xSyb2EU0OJq2PzdnLk9mYqWJqqCpmhmYZZoa5M1bZTfpmgerTK/xe+0oKrPyIaKQtW9m6xcb+id7+6q2hvXmShC+sfM/59C1q9stvy1ZX91Vj6OZqp30pqgxr9JbDzMnnevcP5hoKlIBOhkoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/JS.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAwFBMVEX///8UNkP///8AAADy8vLg5ObAyc3Dw8M0NDSRoaehoaFFRUWurq5TbHWxvMDS0tIjIyMsLCwUFBQ7OztDXmmClJskQ1Dv8vKysrJ9fX14eHihr7QzUVyQkJBlZWVieYJ/f3/r6+uJiYl5eXnQ19na2tq+vr5yho7e3t7MzMxERETOzs5ubm5MTEwkJCTv7+8bGxsEBAT8/PxZWVkqKiqqqqrm5uarq6tWVlZISEi8vLxVVVWdnZ24uLgZGRmnp6f1tcsQAAAAAXRSTlMAQObYZgAAAXBJREFUeNqtlNl2gkAQRLEQWaKogECCG+5RY9SYffH//yqzMMOIGF9SLwzFPd2nu+nRtH9UVSo3MjszHEuXssYv2mJEjd2S2ZbDkLYJKXPojX/W1HiMmW22KWQpCNFwmJ68mx5JqgMVqQY+AHdATqGdUMNAq3nGAI2KonJmXrnKROzZjdC5zLjsGYicjGF11WRkJPw0mHCaM7Q/CuOKkIQStRPoRmFSdGXiuSF6qNVVxskDEdmAf8600gLEc50y7RTGXO3Pw3OR4QM2OoLpoNcvMlMxy4wKcL8pMvxYk1AXC6+cCV0g4F3C63s5kyvBenSFCbA/rAjz9SZbEhWYIOJlPfkm7MxDxkxsOpFGAhx1MtKZr/x6yGtn2vf0GQlzeyej0GbwHprOgi3Jod/UCgxtKt+qT48t24pvoMKEbDhVuaRyj3MmrOHbK911wYR2hOm2Xsqwurji7ejCpUH7w/bb38QXbxZ+b+yW8dX754/Pv/61G2KLqFr2AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/marker.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAABvklEQVR42rWUv0sCYRjHO0zFOCoSSUFsq1AHoSkaisAGbXCRlsAtWiSD1v6AoMUtUAQnSRGkpNGoIWjMoU0qInSRTNGwunv6PvAeHKbm4guf4R64zz2/3puYGNchIgksggg4BodgE0yNKnCDC9ABClAF3+AZ7IHJYYIQqPJLrVaLSqUSpVIpymazVKlUSJwuyPTNSmRQVVWVCoUC+Xy+rizL9waDIWM2my/tdnstGo1SvV5n0Q846dcDLkHN5/Nks9leEQ6DGWAAZrAE4Xk4HKZ2u82iFljRS7iJnUajQR6P5xOhEJD6VDxvMpnu0uk0iT7F9RKeglIsFslisdwgJA/p/W4gEND686CX8BjVeDxOeEz8M0C3y+XSJB96yRFLkskkcSNFHwadVa/Xq0ne9JIt3oNyuUxWq/UJoYUBApafxmIxTXKll8hsVRSFIpEISZLEJc31EWw7HI53/phYxP3eMR+Ar1qtRsFgUDUajdcI74BlLoEzYEEul9Mmwya5V2ICBf5Cs9mkRCJBfr+fnE4ncQ+4BJEBC3jj1gat/Sw4E/dGpb+HS3gE66Ncwg3AG/UiVrwJbsVtnh7Lr+MXM921rfVCPpAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/mask.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/Min.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAMAAAApB0NrAAAAdVBMVEX////z8/N+fn6vipWjeoX07vCIiIhSUlIPDw+FhYXo3uGMWGd0dHRmZmZCQkLGrLNqJjnu7u5LS0vd3d1dXV0hISGZmZnS0tJEREReFiq6urr29vYkJCTRvMKYaXaWlpa7u7u6m6SBSFg8PDwAAAD///9TBRvc5fvrAAAAAXRSTlMAQObYZgAAAJFJREFUeNrtkUkSgzAMBJ09ZCPscQAbY6z/P5ExXC2KB7gP0qVrpJKEiEQie2jsBOzRt6o8hJS20w7o24BavMqQ8//1BMwwon6LasMZH8Q7bYeEJ5EiBJnwLPGBkyJDnuC8a9a5SAQZ1llmOUXUe0dbdmeVknR+aTfxTibPG85ywzrJruspLfsLm9/z9SXNrv/N9OsWK50hqQAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/nav.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABaCAYAAAB5XDy9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNS8xNi8wOFo1NpkAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzVxteM2AAAAW0lEQVQYlZWPQQqDUBBDH7mE96dbKR6tJ8hzYauoFPybIZMXwgzzezG2pErafsfFcwdD3lhkxPN0LoABeDw+r4lYCEKsRCGUn9oAd7Ar9Q84mi9rvTcfkZEXAFYydKxZ8XueDQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/notes.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/ppbmDonate.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/revert.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACBklEQVR42r1TQUiUURic9+9qqEW6aparFApiZ0/VRS/tKRZaiIgOJR0V7KIdNOggdZOgDh2FLiJezGMaWIc8SKCgkusuKivVQSNSc9/M93fQtjU7FEQPPh4z8A3vezMf8D/PzZGr964/T0aKueBvBJjXDXo+K+ZcMeh+1dlotJSkhKg2UbWkIC+QQn1lHEZhJZd5PNH1sueQQPdU5wVJffHyhmRVWQwVJRWIBlEoFGQGM4Gh4EXMp+eQXlsZnOx90x8FgK7J242i+lpj55N1Faexyx0ELgKaoIOyUAXsPUHPUgCIAoCoVPx4Q7K2/BRoRJ5E+uMish+yKIzgifqaOCRhZTXzZLr/bW+xQOLksUrs+G1IhqmFqXVRY6O3Ju4W/1HHo0tz8pydHpjpPuQCqbayknI4BMht5kDPI837LnDEe94p5qIAQE9QhHMOXgTz/K2Nr+/PDP7KBQf+zm593cKu30HsRDW8Zyox1D70J9lwAHBt+EpPfVV8qPlMMxQatne3sby6jOx6FvQ/cyBqH0tYePreFUbwnmOZXKa9NFKarI3VIY88Wppa0HSuGRYKZgaaYDDIDOOjLwoviADA0nj6S9Pls6sbnzZqvu3ttbrQwQUOBuw3hwYLBYUhQhMW55ew+e7zgyNR7nh4sZFeKZIJebWRqpZXIAqS4cdtMmSH19w/2dDvlBNR315yTx0AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/scriptdeploy.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/state-false.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACn0lEQVR42n2TX0hTYRjGvYkuuikouky6UKN/UpRJtf5YCSmWJV5laF0UiKEF3QSFXnQrEuJF4ECCiIouarhIcXObmx63s+mcZ5vb3NnZ5ja34+bOthR5es8uxpbDDx443znv+/ve877PV1Hx39IbTNcX7Y4fXt8qhGAoL3oWWeuCcmJSU1mx12IYy2AovIa0JCGby2Fraws7OzvY3t5GjvZ+PgDTLNNZNtnC2galTAab6TSSfh6WvldwvnydF/uuH0mez4MikSh0emMphEqrTSREiBsbcH/+As+jLuRGx5AZGkZ25CNyyjHYmu4hYluAJGWw4vGJlHOwAHC5V5Sx2DoCzDxc9deQfjuA1LPuEkkD78HWK5CkCqIUO8eYewsAPiCIcmn2nl4kbjRCbGkrq4TiFmzDI4jHE1SFd6oACAhBhMJhOFrbEa2tQ+zilbKKnrkA0+MnCK9F4Fh2ogCQuxsKhbFIAOFYFYTKGgjHT5RKfkffNPfbIE+K41wo6oEHQQIYO7rgrazeU9ahD9SDGCiHLQDIJKxMtavGsXDuEparTsNBpxaLo/LNd5rgs9qQTKVgNDHK4jF28ryA9fU4pl/0wdrcisWrDbDUnAV76jzs1FhTQyPYUWV+Ar5VP3a5kswxJQNkuv3rd2g7n0J98zYmmlqge94Nt96Q736c/EKxg7ucODtnPqLTzyx5vL48JJXaJGMlkRA3IJIi0RiWHBwlz3wjM+0vSc5ksgcooNa94mnXThu0hhnTX7I2aA/O6YbZYoVGq5emdQYV53R1UL/q0mnpUFkABb/RaHWj6t8T+l8qtf2nSr00rv5jnJzSfmLmzf1lAfLKZrP76D4cpnFWe33+y2Tvu8uc8wHpodPlbqYrrRCCwZPUp6PFv/APVTNnxtHLXwgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/state-true.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACnElEQVR42n2TXUhTYRjHvYkuuikouu2ui2686yKILsrAIkj7IDJZGZYmzqBAWR9YYJTBCKSuahftoiBaoebMbWdn29nm5jZNN8++nO7Tfbu5D1Pk33N2MVwOX/jDed/zPD/e83/+p6Hhv2XgzGfmF1yKpcAywpFoRfScdcz+kanU2mMNey2r1S6NxlZRKBZR3tjA5uYmtre3sbW1hQ3arwRDME9bRXWb7Y45abFUwnqhgFAuhiHjMN7NvK1IanlfORNA8XgCeoOpFkJXa8xkssiureEHP4HX5gFwYQXUK3Jog1/BRRR4pHmA+bgbxWIJPn8gSz0HqwCP1ydLJlOwhxaosA0/vSP47Bys0ZjvA7om25DIpZCgWovV1lcFBEPhrHC1YdMQhi0ijNh76urNdDtk9i9IpzN0iyWmCgiFI4jGYnjGivGca8VL4/W6empoQb9GgthqHK5FN6oAwd1oNIYnWjHEmrPoY5rwkDlfI+FMeNc9IYYwKZ73YIcHfkQI0K8ewH31uT31cUZOHiRBPY4qgELiEKhKJ4u7qiu4rWpG+1RTje4xl9Gj7sTcsgu5fB4ms1W2c4yiYDCMVCoNieYVenXd6GTbcPX3BdxQXUKXToQ7Ux2Q279XJhBYXsGuVFI4GAEg0BXzSvSqJWgd7cDNX914zLwA57VV3E9TXqhWuiuJ0xbbEb3B6PQvBSqQfH6dgpVDJruGLCmeSMLp4qnZ+I3CtL+muVQqH6CCRq/Pf43VcSxnNP+laIP24N1e2Oyz0LKGok7PjfNuzy3y62ShUDxUF0DFEi2r/6ScVBnGxpULo+NK54RyyqRmWLl1xjZYFyCscrm8j/6HwzTO42TSKYp38yLvbiG1uj3ei/RLnw5HIifIp6M7P+EfY+R4usBp3woAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/steal.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACd0lEQVR42rWST0ySYRzHgdd3viJkvKDyRxj5B5Qa/mmN1JCsZvzTg4OmDMEBWWwQi2YE1GDiWAet1jzoSg9tNBceaq1La+veqq3V5qGDh24dautUZn573vfA5hbZpXf7Hp73/X4+z+959goE/+O5OHVucaS9Hm1sDToVNehRMzhrPf7kn+BoOJh3mZWgREIIBQIIhQI0MCKcNskRDkze2lcwfETHQ3W0EFKGgu5gDVgJDUmtCO1NddiPn2PFFBiaQkN9LXoOKSAj664WKcS1FLQyGhQlWiM9bTVBqaGO2jV3tqK0kMRCahqPitNYvDyO3CU/OpqYX2S6LdILVR1h2qbfXL89C2OrFlNjNpw42oULPhfsQ33IjnV8IBVVVbhvJMpYrdbyWmIY31/fx8ZSBlfC49h8dgcPrw7DYrFsmE+dF/8RttvtBxwOR2FwcBA+nw9+vx9pvw1z4TNwu91YXl6Gy+UC2eAu6Ur2wAQUEWBFp9NBoVBAr9djYmIC5XIZpVIJHo8HxWIRBoMBWq0WRqPxHpHQFQHZISaVShEKhTA6OsoVeAkHr66uwmQyQSaT8YJ0Oo3m5mbu3VJF8PZ6587np9eQyWRQKBSQzWbR29sLhmEgl8vR3d0Nr9eLQCCAeDyOxzensDKp364I3t3o2v3yfA7BYBCRSAQzMzNIpVL82ul0IplMIpFIYH5+nhd9fVHAq5RptyJ4/yCefpPu+EnOBZVKhVgsxpfz+Tx/fm6qXC4H7jt3By9nD/8gTGHPRW6tR6UDAwPH1Gr1J1L6RrKj0WjQ2NgIlmW5bJN7+ahUKqNZf3/T337nNpIhkpMk/SQtJHS18m8kfwz/+zz+/AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/subNav-tip.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAC0AAAAyCAYAAADImlLUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJlJREFUeNrs2csJgDAQhOFEo/i42oAlWYadWYp1eLeDmNUG9Lgw8i/k/jEMYWFjWtYYxCY9rwLthK4V0Q1oJ3QL2gndKaJ70E7oQRE9krTDxGnbTQ49H6fp1eMqQQ5tRRGdBdGhmGDSkp1WRGv+Hpl6gP5Zp0FTj6+FyUiapN+3PJJmn/5Z0qaHlru3gAYNGjRo0KCl0bcAAwC0Mz/DL5YCQgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/support.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/tiesto.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIhSURBVDjLY/j//z8DJZhhGBlgZ2fHnZWVVdra2vpu3rx5/2tqah7m5OSYA7EEkH0XJAaSA6kBqUUxwMjIiM3Hx6dr4sSJ/1+8ePH/7t27/w8ePPi/sbHxXnV19aGbN2/+AIkdOXLkP0gNSC1ID9wAQ0NDv+Li4g9Xr159FxERsc3b2/tPamrq/0mTJv2vrKz8D2KDxEByK1aseAhSC9KD7IKupqam75MnT0739/fnsre3/7x3797/586d+3/o0KH/a9eu/Z8xx+Jf6nzD/yA1ILUgPXADdHV1M9PT099PmzatJCgoaKejo+MvNze3/4GBgWAMYifMMPrfuDnqf/gMjf8gtSA9cAM0gcDX1/d6b2/v+1WrVr1dt27d//yltv9zF1n8T19g8j9pruH/mvWh/1ednvi/ZLX/f9c+iX+a2hpacAPU1NSYgc428PLyup+SkvIlOzv7e/Zi8/8bzk37v/bsFLDGFacn/J+wp+T/wuNd/zOWuv03bWf/rdvMyIgzfpOB/gVp7tuV/79zR/b/1m1p/xs2J/5v2pr+f8ah5v8xC2z+q9Yz/MRpQPRszf8rT034v/RE7/+Fx7r+zzvaATQk6//0Q03/05Z6/FesZbguXcnAidOAwOmKfz0nSv917hf9a93N/zduvtX/aQcb/ictdvsvX8twUbKSgZ2kpKzdzPg6fqHzf/lqhjNAzWwk5wWgk1/LVTP/F61kYEEWBwAP7or0z//OfQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/tool_bar-bk.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAaCAIAAADnr5E1AAAANUlEQVR42mO4ducF8Yjh/tOPxCOGp29+EI9GVY+qHlU9CFU/evGFeMRw98l74hHDzfuviUcAJFE2MOdbgZ8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/TT_btm.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAOQAAAARCAYAAADNCAAnAAAEx0lEQVR42u2aT2hcVRSHv/Pem5nMpJPUpIlJxdoYS5RqbBUNgWI2ASsKlSCYjYu6CLhxoYtCQd1UU9wVuzcoiF2EKtQogVikUtAkhqqVhDYZTY0lte0kmcn8e+/e62LehBh02Wam3G+4zPZdON/7nXPvE6qfONAGdF26dOn97u7up9779Ifsd1fzhViyWXuJRuNFE8aJxIw4LhZL1WEMOihKUMpLkF+TUjbtJFnzvnzn8M5sNptJJpNHgcvAklMD29GAAvx0On0boKUh6mIURisxRgMGTLgslmrzEYMxBmM0RiuMVuxKRh2ATCazAvhhnetaEdIHCleuXLkG8Eh7o6tVIDrcnNEag5XRUp3piNawIaPGKJ+HdiUcgOXl5WWgWJGyVoQsAYWxsbFfAZ7o2OXpwMeUl2gdCFqJwaakpbpk3PjpspBa+aKVL90dTRGA+fn5BaAQ1riqpYTMnT17NpXNZjMPtDQ4XW3xiA6KogMfowKMVlBJSiulpZqkVIFo5Yv2i6L9oqhiXro7WjyAc+fOzQDrYUrWREKa8O2RA9ZmZmYmAQZ6H4qpUl50UN6kDgKMDsRKaakaEY3GqECMCtBBibKQeZ4/0BZ9ePd97o0bN66PjIz8BmRrSUiAIBRy9fTp02MAPY/tjiTckqOK66L8AioolNNyq5RWTMt2iLgho48KiqJKeVHFnASFnBx++sEYwPj4+LfAaihkCTBSI9t0gATQDuybnZ0d7urq6v76x/nSB6OzmUj9ThOpb9RurN64Xp1xPA/EQcQBxzGC2EKx3IVWzoDWwqaZUfkFUaWc+PmM+Otp58jBpvjbrzyTyOfz2f3797+RSqV+Bq4Ba4DyamSvlYOdNeDm8ePHPz5z5syHLzzbGb3wy1LswtXVIuAYrbWJ+CKRqHEcDxHXiONYGy13NSG1URIe4KBLeQmKOQnWV5ymqO8O9nXVAYyMjHyWSqX+BFbCQx0N1FR0VFKyFdg7Ojo6NDAw8CrAaye/Wvs9je/Fdxi38pGA6yGbUhKxXlrurIhoHZ70a8pzoy+qlJOgkJUGt+iefL13x+Mdrd7CwsJsZ2fnMWAeWApb1qDWhBTAA3aEreveixcvHuvt7X1Oa8NHX0zlPv/+j0IkVm+cSJ1xvAjiRoyIAyJYIS13XMjNBzk6QPtF8YvrcmBPfeTNlw8mHt3T4i4vLy/19fW9Ozc3dxlYBG5X5sdaE7LyvBFgJ7A7Ho93nD9//q2enp5DANNzfwUTM4ulnxbS/uKtvHK8qBERNqS0WO7kYQ4GtEGpkrQmo86+9oT3Uk9HrO/JvRGApaWlxSNHjgxPT09fDufGv4F8pV2tRSErrWsslPJ+oP3UqVMvDg0NHa2rq0vYyrBUG0opNTExMT44OPhJOp2+BlwHblK+OVCVdKxVISWUMgokgWagtampqW14eLi/v7//UGNjY1Nzc3OrLQXLdpHJZFYzmczK1NTU9IkTJ76ZnJxMAbdCEVfCZPyXjLUqZOW5KzNlHGgIE7MxnDHjYWvr1PAeLTXavIbLp3zZn6V8O7AS/ufCmVFvlZF7oFgFcEP56kIRY2F6uqGQFst2SKlCKQthGm58r/pfIt4rQm5tY91Ny6ajZbtTUoUr+L9E3Mo/iK6PuFw6sQsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/TT_mid.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAOQAAAAHCAYAAAAYh+GhAAAAoElEQVR42u3TsQ3CMBCF4WeDiUkBEh0LWEKswR7MQUPNHszAFIiSInUWiBQhbEzuaJgBOeh90g1wevoNylcDWAPYNE1zCiFsD+dbf20lunqpbr4Q6yrY6UxhDIhKpMMbw+tpcuxNfnS2yt3kctytUkrRe78HcAfQ2lF+JwpV+Z5ybfob4wwSCjBEYpCF5CgCVTEAoyQGSUQMkohBEtEPfQATJTgCk+9IIQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/TT_top.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/user_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADOUlEQVR42m3Tf0yMcRwH8Of8miN3LmIiWpik0BbDklJOKW3Idli5dGtERsOlRKorHUuEkvzYxIUmhKyssCOX4q4u8mslWTQuv7pzuXvePnc9+Yfv9tqePd/v+/P98TxfhulrPDKMzCBRJI3kcNK4d17EgRv7TxvKhTf6uzo8zRaLLLmhI6EMFiLJX2SZ7zpCR31xxJPw/1dgPJH6ThxefzxchFMSR5wkeatEyFomxHY/AWa6OGhpTCQZ978CttkV+aFCnKWgkkJZoTYiKMKcsDPAERJvwW9uS2FkNpdx7i8wy9aZ5eeAO/l70FGhxOOi7djq74SEoHHYvMQNsgUidsjggTdpXCE5bJuQO5u/K8jMW+PSa/r4Et8e5uNDVQ50l/ah9VY2DK0NOCdz+7126ZjmlgsSvL6ugPa0GLHBTvf7C3iQ9MRQt25D3UV01V+BUasiJfZnQ4MKxfIpps5qOb423gR+fEB3Yykq0wPNtvAIIuYNGHzS2WNZpyreB7/qi2DSl9kZn11AjXImuhr3sub3N9B57yCMTVdhaVPj6SmZ1VZgIW8Q/wB/ysqmCcF3oW//iUvJ4ShJXm5XeWgxDPoUWI1qGN9uwZe6eLw4H4NHRyW9nq6OpfRb8FKHuIZrJ4Wp8bzDiOIOIEEPbNIAmVU1MDTthtVUi54362FqX4fvz5OgPexrnjdtVBlNHs04uvmrgyKUuPLYggIdEF/LYmMNi1TVNXQ+kXPhKJjercU3fTL0R8QI9F34isKpxJupT3Znu8oTcexMOaQVQMxtIOV8OZru7KJlP4CpNQa/2iPxlVbScnwpum7shDrBnaVwhv3wtSnTYahMgyT2LDKqerDjqArNt5Ogq8hFh2Y1elrX4Ys2EY0nViBSdgLdd9OhkXuA+w9mMCnSgIYniVNZqTSDnSOtweXsQOB7G1oKI1Cd5IyHBSGoOBCCxRFFiIuWW+r2eFkzYoN09v33XQFGOlrIzxEIhKoxc3e/2y/zgrn2GMyaI9AoAlC8YTIWiNN7XRblfBIIRCU0NpcLe3I3mJlgPwyGkZC8Vb4iqyLKna3KDGYLd8z9PHksnz4VoyTbyEriw2Vst5L3B6vfyopLmJ43AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/vcss-blue-off.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/vcss-blue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/warnArrow.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAIAAAAY12rUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgFJREFUeNpifPpkLQM1AAseuZ8fvvx49wlZhJmNlUdGlGSDmFiYr8zcxPbnEVzkz29GSQ9fBS8LTMWM+L32++uPs13LFBRvGzh/ZGD4/+kN640TvAzKAXJupui24vc5KzeHSXnUs9d6l4/J/GPm5xHnUrdlZH6+9+nBC6QZBPI8F4deTtDLj7rXz8n+ZRbkEuVVtmBlfnP8xclrpBkEMouTXTPO/d1XzbvXZf8xC3IK88obsbN8uPDm4h3SDALFFwebUqDtx+/Kj+5J/WURZBfkldLmYP5y8/3NR6QZBIl7WRfjz7/kPn8W+sfEx8rHI6bCzvztwaf7z0kzCKSalUVATfbDe75/TFz/mThZudk5+Nm+Pn/77/df0gz6/vrD63O3BQQ/Mf77DkTvn/55eZ9VRE+ZiZWZhXhTgDY/O3xJWf8TL+8vhn8Mrx5yPL3HKeukwcrDSSBlI4PPj14+3HZS0+q9sPBPhj8MT29zPrjBreRvwMbPTTiLwMGHO0/vrN5v6PxGTPwnw1+Gh1e5bp/n14iz4hDiJSqvQcC76w+vzdtm6ftSUuYH0JQ753iuneLSy3LlFBUgNtMCwZvL9y5NWWcX+pyT7c+HRwyvn3BcPMpvXOrPJSFEQu7/+uzNnTUHOIT4Tu3lg2ZxFmajYj9uKRGScz8JSYyBSoBqBgEEGABWfbnqY2upsAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/warning.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIElEQVR42qWTTUiUURSGn3u/b2zGvwwL7RcESYSKTAmhFu5aRhhFuG3Xqjbti8BWkeAihBaBkPQHFbVpa5HWFEFYgpimlYs0bX505jvntJhvRhdupAuHc+Fyn/O+594D/7ncmcsjl072dN1czFmNGaCKqSIqmBpqiomgZpgIokp9VTE7MTF/9cmt84Nh14mugUSyxjclt1S4JpuTAWAwzBXN5xYzW5aeL5oHCE2MG32tWwZc7J+hBDAFoBAJBpgaoqAYqoaoIpGVwpSCGC3NdYgKAB6zUje9wzvw3uEDCJwj9J4wCLG/HyhM9ZNweaoTIQAaxYB1EjjncN4ReIcPHM6Dtzyrs4+pbTxC8ecLwipfAkhJuTe1+EFdBeSdw3tHEDhy319S3dhB/e4OsrOvIDNdApQLlzfECjaCJDPPn6nn1O1sQFaesqv9Astf72MaoRoriIrFigIXXy7n318e0Nh6GlbTjN0bprYhz8r0KMszr4mKUWwh9hIArtwHIPsrjWSXqNuRQ9emwRTJjNPSc4W5N3dIsFq2oOsWys00YeHdXRoOHEVznzDN09nbhhZ+kExOUr+vm47UWGUWRpr27zmnIqgoIsKhbeOcPZ6k+WAKyYxhVuD9owk6e9txwXZInWJ06PpaleWPuc1+2dvb3XOH+4b3Bv4bFi0BtuHUE6TaWPj8kcln1x6GmwGitUIyPdSbNzUsns5SWCWjipk1/wOwZR+ItxFIhAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/watched.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA7dJREFUeNqElFtoHFUYx78zMzu72c02iW62Jq21SVirhAQJEm1A44WibLrYgvoibUQokpfgg9YgIviiGPRFFEVF0ELAB8EYrYiUFNOFuqmh3bTq1mRvjbvZ+31ue+aM38xuZPFBP+bPmcs5v/M/3/nOEMMw4N9BCOGxEVFOlDsYDD40OTk5JMsyXV1dLfr9/v3pdLqG9zdnZ2fD2KcOJqhTJqcN6UUdDgQC04VS+Z0z86/S5198qf7z5Y2vTp2ZpyeffW4nGo2+jBMcxX53cTi7gBJRdlRX20W3CRoZGRn84stzT/5wIfjwoSEfn4htcdndFKD4I2MTno8//fw4uvL3YnA4wI5yoXpQfSgPyou6w+l0HpAU1X7+/PcT+UwGtKbuuHJ9e0bVOaBgs4c2Nqdj8bjT5/P1m7m4rQNi6vY90MLCwvBPFy5Op3YzwxNTj0C+UED/XSJVG3Bk9D5IJaOwsf4LPX36VJIsLy/P4Drv8Xq9LsYY6Ux6tVrl5s++cVZnzFEuFqBWypbuvdt39Wr4xpSju9suSzKkb8WKV9ZD7wkmRLrxwis7W/v7CeE6MAZQOVNxusZs/pkARBO34Pr6xfwzJ49FJcpN+Z96GtKZHHyz9ImCE+qCx+NxxZWy587HvjMTb463IFgDQJV8n/b120B1HSK/haFe3vEV498O82IvTzgOYlt/QDaT7RkYGLAJmqYZwDgKTOPV3Y9A1zBt3D7kuMEx+Dg0alVI7qRAkWVI5VSweY7xldKPcDMSgXx2FyrlkgM3hResutEIMZiGEBEMhlw5CXIuBrlfz8FbR1MAWhgCY9jTVPZ9eHfadB2Bmcu1wj63S0okEnVBFEViQFNgVIZGOgtqZhvNScDbe+Dg8c9wFgKsqbbKtH0KeOcg/PnhA+jq9w82NzeVlZWVmGB9aXIgdHmh/8HX8IFZAwxWA1q9BEyJ4bMKhi6hGvheAsehN//ZkvHx8Qg2220QHg5dASaFsXMFVUNAHAEMLwXZMrZ4nPS6BTTfd0QDJQtYO0A0gt8w380cGLTSgjFcjkFbbljLDaM1axJzRzsCyaC1HGmGQUDHcUVUuSUTtge1ANX20tC5mgTC8dTacQDFAuGvoQlMVKhUtDXrogjMTQzDhstxoxsPDlbNfmBwrZZwOuiKgnCCBc/0NogKa2tr8fuHHg2mll8/oOW2h7EMRPivMD1wId15cOJaKBRKtXPUFObm5tYXFxfpYd8T/aMnRvscDgcP/xPohCHkr6WlpfAe6G8BBgCM3BQgw6WRJQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/wheel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/_blank.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAen63NgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/ajax_functions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gc2V0QWpheE1lc3NTdGF0ZShzdGF0ZSl7dmFyIGlkPWdldF9mcm9tX3RyYWNrZXIoJ2luc3RhbmNlJywnZm9jdXNlZCcpO29iaj0kKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJyk7c3dpdGNoKHN0YXRlKXtjYXNlInByb2NjZXNzaW5nIjp7UHJvY2Nlc3Npbmc9JCgnI0RfJytpZCsnIGlucHV0W25hbWUkPSJQcm9jY2Vzc2luZyJdJykudmFsKCk7b2JqLnByZXBlbmQoJzxkaXYgY2xhc3M9InVpLXdpZGdldC1vdmVybGF5IHVpLWNvcm5lci1hbGwiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MHB4O3JpZ2h0OjBweDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlOyI+PC9kaXY+PGRpdiBjbGFzcz0iQWpheE1lc3NhZ2UgdWktY29ybmVyLWJsIHVpLWNvcm5lci10bCB1aS1zdGF0ZS1oaWdobGlnaHQiPjxoMj4nK1Byb2NjZXNzaW5nKyc8L2gyPjxpbWcgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zY3JpcHRkZXBsb3kucG5nIiBhbHQ9IiIgY2xhc3M9IkFKQVhsb2dvIiAvPjxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9IicrZGlyKycvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2xvYWRpbmcuZ2lmIiBhbHQ9IiIvPjwvZGl2PicpO2JyZWFrfTtjYXNlInJlY292ZXJ5Ijp7aWYob2JqLmZpbmQoIi5BamF4TWVzc2FnZSIpLmxlbmd0aD4wKW9iai5maW5kKCIuQWpheE1lc3NhZ2UiKS5hcHBlbmQoJzxzcGFuIGNsYXNzPSJ1aS1zdGF0ZS1lcnJvciIgY2xhc3M9IkFqYXhSRUNPVkVSIiBzdHlsZT0iYm90dG9tOjNweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDozcHg7Y3Vyc29yOiBwb2ludGVyOyI+UkVDT1ZFUiAmIzE4Nzs8L3NwYW4+Jyk7YnJlYWt9O2Nhc2Uic2F2ZWQiOnt2YXIgU2F2ZWQ9JCgnI0RfJytpZCkuZmluZCgnIGlucHV0W25hbWUkPSJTYXZlZCJdJykudmFsKCk7b2JqLmZpbmQoIi5BamF4TWVzc2FnZSIpLmVtcHR5KCkuYXBwZW5kKCc8aDI+JytTYXZlZCsnPC9oMj48aW1nIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc2NyaXB0ZGVwbG95LnBuZyIgYWx0PSIiIGNsYXNzPSJBSkFYbG9nbyIgLz48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9sb2FkaW5nLmdpZiIgYWx0PSIiLz4nKTticmVha319fQpmdW5jdGlvbiByZW1vdmVBamF4TWVzc1N0YXRlKGlkKXtvYmo9JCgnI0RfJytpZCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpO29iai5maW5kKCIudWktd2lkZ2V0LW92ZXJsYXkiKS5mYWRlT3V0KCdzbG93JyxmdW5jdGlvbigpe29iai5maW5kKCIudWktd2lkZ2V0LW92ZXJsYXkiKS5yZW1vdmUoKTtvYmouZmluZCgiLkFqYXhNZXNzYWdlIikuZmFkZU91dCgnc2xvdycsZnVuY3Rpb24oKXtvYmouZmluZCgiLkFqYXhNZXNzYWdlIikucmVtb3ZlKCl9KX0pfQpmdW5jdGlvbiBhZGRUb1N1Ym1pc3Npb25RdWUoc2lkLGlkLHBhcmFtcyxmdW5jKXtpZihhamF4SW5Vc2U9PXRydWUpe3NldENvdW50KCdTVUJNSVRBTCcraWQsMjUwLGZ1bmN0aW9uKCl7YWRkVG9TdWJtaXNzaW9uUXVlKHNpZCxpZCxwYXJhbXMsZnVuYyl9KTtpZihkZWJ1ZylhbGVydCgnd2FpdGluZyBmb3IgYW4gb3BlbmluZyBmb3I6JytzaWQpfWVsc2V7aWYoZGVidWcpYWxlcnQoJ3N0YXJ0aW5nIHN1Ym1pc3Npb24gZm9yOicrc2lkKTtjbGVhckNvdW50KCdTVUJNSVRBTCcraWQpO3Byb2Nlc3NBamF4U3VibWl0YWwoc2lkLGlkLHBhcmFtcyxmdW5jKX19CmZ1bmN0aW9uIGFqYXhpdChmdW5jdGlvbklTLHBhcmFtYSx0eXBlLGNhbGxiYWNrKXskYWNjZXNzVHlwZT10eXBlb2YgKHR5cGUpPT09J3VuZGZpbmVkJ3x8dHlwZT09bnVsbHx8dHlwZT09J3Bvc3QnPyQucG9zdDoodHlwZT09J2pzb24nPyQuZ2V0SlNPTjokLnBvc3QpO2FqYXhJblVzZT10cnVlO2lmKGFzeW5jSVM9PWZhbHNlKXskLmFqYXgoe2FzeW5jOmZhbHNlfSk7YXN5bmNJUz10cnVlfTskYWNjZXNzVHlwZShBZG1pbmRpcisiL21vZHVsZWludGVyZmFjZS5waHA/IitDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSx7bWFjdDonU2NyaXB0RGVwbG95LG0xXyxhamF4LDAnLG0xX2Z1bmN0aW9uOmZ1bmN0aW9uSVMsc2hvd3RlbXBsYXRlOmZhbHNlLG0xX3BhcmFtYTpwYXJhbWF9LGZ1bmN0aW9uKGRhdGEpe2lmKHR5cGVvZiAoY2FsbGJhY2spIT09J3VuZGVmaW5lZCcpY2FsbGJhY2soZGF0YSk7YWpheEluVXNlPWZhbHNlO3JldHVybiBkYXRhfSl9CmZ1bmN0aW9uIGFqYXhTY3JpcHRTdWJtaXQocGFyYW1zLGZ1bmMpe3ZhciBpZD1nZXRfZnJvbV90cmFja2VyKCdpbnN0YW5jZScsJ2ZvY3VzZWQnKTtpZih0eXBlb2YgKHBhcmFtcykhPT0ndW5kZWZpbmVkJyYmcGFyYW1zIT0nJylwYXJhbXM9Jz8nK3BhcmFtcztlbHNlIHBhcmFtcz0nJztpbnByb2NjZXNzPXRydWU7c2V0QWpheE1lc3NTdGF0ZSgicHJvY2Nlc3NpbmciLGlkKTtzZXRDb3VudCgnU1VCQ0hFQ0snK2lkLDEwMDAwLGZ1bmN0aW9uKCl7c2V0QWpheE1lc3NTdGF0ZSgicmVjb3ZlcnkiLGlkKX0pO0FDVElWRUlEPW51bGw7QUNUSVZFSUQ9JCgiI0RfIitpZCsiIGlucHV0W25hbWU9J20xX1NjcmlwdFNldCddIikudmFsKCk7Y3VycmVudEVkaXRvcj13aW5kb3dbJ2VkaXRvcl8nK2lkXTtpZih0eXBlb2YgKGN1cnJlbnRFZGl0b3IpIT09J3VuZGVmaW5lZCcpY3VycmVudEVkaXRvci5zYXZlKCk7YWRkVG9TdWJtaXNzaW9uUXVlKEFDVElWRUlELGlkLHBhcmFtcyxmdW5jKX0KZnVuY3Rpb24gcHJvY2Vzc0FqYXhTdWJtaXRhbChzaWQsaWQscGFyYW1zLGZ1bmMpe2FqYXhJblVzZT10cnVlO3NldENvdW50KCdTVUJDSEVDSycraWQsMTAwMDAsZnVuY3Rpb24oKXtzZXRBamF4TWVzc1N0YXRlKCJyZWNvdmVyeSIsaWQpfSk7JC5wb3N0KEFkbWluZGlyKyIvbW9kdWxlaW50ZXJmYWNlLnBocCIrcGFyYW1zLCQoJyNEXycraWQpLmZpbmQoImZvcm0iKS5zZXJpYWxpemUoKSsiJm0xX2FwcGx5PUFwcGx5Jm0xX2FqYXhzYXZlPXRydWUmc2hvd3RlbXBsYXRlPWZhbHNlIixmdW5jdGlvbihkYXRhKXthamF4SW5Vc2U9ZmFsc2U7c2V0QWpheE1lc3NTdGF0ZSgic2F2ZWQiLGlkKTtpZihzaWQhPW51bGwpe2lmKCQoJyNEXycraWQrJyBpbnB1dFtuYW1lJD0ic2NyaXB0VHlwZV9pbnB1dCJdOmNoZWNrZWQnKS52YWwoKT09J0NTUycpcmVsb2FkQ1NTU3R1ZmYoc2lkLGlkKTtpZigkKCcjRF8nK2lkKycgaW5wdXRbbmFtZSQ9InNjcmlwdFR5cGVfaW5wdXQiXTpjaGVja2VkJykudmFsKCk9PSdKUycpcmVsb2FkSlNTdHVmZihzaWQsaWQpfTtzYXZlZD10cnVlO3JlbW92ZUFqYXhNZXNzU3RhdGUoaWQpO2lucHJvY2Nlc3M9ZmFsc2U7aWYoc2lkIT1udWxsKXJlcG9ydEVkaXRTdGF0dXMoaWQsc2lkKTtjbGVhckNvdW50KCdTVUJDSEVDSycraWQpO2NsZWFyQ291bnQoJ1NVQk1JVEFMJytpZCk7aWYodHlwZW9mIChmdW5jKSE9PSd1bmRlZmluZWQnKWZ1bmMoZGF0YSl9KX0KZnVuY3Rpb24gYUpheF9pbmxpbmUodXJsLHRhcmdldCx0b2xvYWQsZnVuYyl7JCh0YXJnZXQpLmxvYWQodXJsKyIgIit0b2xvYWQsbnVsbCxmdW5jdGlvbigpe2lmKHR5cGVvZiAoZnVuYykhPT0ndW5kZWZpbmVkJylmdW5jKCl9KTtyZXR1cm4gZmFsc2V9CmZ1bmN0aW9uIGxvYWRzY3JpcHQob2JqLGlkLHVybCx0YXJnZXQsZnVuYyl7aWYodHlwZW9mIChvYmopIT09J3VuZGVmaW5lZCcmJm9iaiE9bnVsbCl7b2JqLmNsb3Nlc3QoJ3RyJykuYWRkQ2xhc3MoIkluRWRpdCB1aS1zdGF0ZS1lcnJvciIpO29iai5jbG9zZXN0KCd0cicpLmZpbmQoJ3RkJykuYWRkQ2xhc3MoIkluRWRpdCB1aS1zdGF0ZS1lcnJvciIpfTtibG9ja2xpbmtzKCk7Y3VycmVudFdvcmtpbmdPbj1pZDtwcm9ncygkKCdib2R5JyksaWQpOyQoJyNEXycraWQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgnI0RfJytpZCkubG9hZCh1cmwrJyZtMV9hamF4PXRydWUmc2hvd3RlbXBsYXRlPWZhbHNlICcrdGFyZ2V0KycnLGZ1bmN0aW9uKHJlc3BvbnNlLHN0YXR1cyx4aHIpe2lmKHN0YXR1cz09ImVycm9yIil7dmFyIG1zZz0iU29ycnkgYnV0IHRoZXJlIHdhcyBhbiBlcnJvcjogIjskKCIjZXJyb3IiKS5odG1sKG1zZyt4aHIuc3RhdHVzKyIgIit4aHIuc3RhdHVzVGV4dCk7aWYoZGVidWcpYWxlcnQobXNnK3hoci5zdGF0dXMrIiAiK3hoci5zdGF0dXNUZXh0KTskKCcjcHJvZ3Jlc3NiYXInKS5yZW1vdmUoKTtjbGVhckNvdW50KCdwcm9ncycrY3VycmVudFdvcmtpbmdPbik7cHJvZ2lzPTB9OyQodGFyZ2V0KS5yZWFkeShmdW5jdGlvbigpe2lmKHR5cGVvZiAoZnVuYykhPT0ndW5kZWZpbmVkJylmdW5jKCk7Y2xlYXJDb3VudCgnU1VCQ0hFQ0snK2lkKTtjbGVhckNvdW50KCdTVUJNSVRBTCcraWQpfSl9KX0pfQpmdW5jdGlvbiByZWxvYWRDU1NTdHVmZihzaWQsaWQpe2VyPXdyPXZhPWZhbHNlOyQoJyNEXycraWQrIiAuQWpheE1lc3NhZ2UgaDIiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpe1ZhbGlkYXRpbmc9JCgnaW5wdXRbbmFtZSQ9IlZhbGlkYXRpbmciXScpLnZhbCgpOyQoJyNEXycraWQrIiAuQWpheE1lc3NhZ2UiKS5lbXB0eSgpLmFwcGVuZCgnPGgyPicrVmFsaWRhdGluZysnPC9oMj48aW1nIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc2NyaXB0ZGVwbG95LnBuZyIgYWx0PSIiIGNsYXNzPSJBSkFYbG9nbyIgLz48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9sb2FkaW5nLmdpZiIgYWx0PSIiLz4nKX0pOyQoIi5FcnJvckFyZWEiKS5lbXB0eSgpLmFwcGVuZCgnPGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbG9hZGluZy5naWYiIGFsdD0iIi8+Jyk7JC5wb3N0KEFkbWluZGlyKyIvbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PVNjcmlwdERlcGxveSxtMV8sYWpheCwwJiIrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyI9IitDTVNfVVNFUl9LRVkrIiZtMV9TY3JpcHRTZXQ9IitzaWQrIiZtMV9tb2RlPWVkaXQmc2hvd3RlbXBsYXRlPWZhbHNlJm0xX2Z1bmN0aW9uPXZhbGlkYXRlJm0xX3BhcmFtYT1DU1MsIitzaWQrIix0cnVlIixmdW5jdGlvbihkYXRhKXskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLm5vdGljZWJhciAuVkFsZWRCbG9jayAuaW5uZXInKS5odG1sKGRhdGEpO0RvbmU9JCgiI0RfIitpZCsnIGlucHV0W25hbWUkPSJEb25lIl0nKS52YWwoKTskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkFqYXhNZXNzYWdlIikuZW1wdHkoKS5hcHBlbmQoJzxoMj4nK0RvbmUrJzwvaDI+Jyk7JCgnI0RfJytpZCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoIi5wcm9ncmVzcyIpLmZhZGVPdXQoInNsb3ciLGZ1bmN0aW9uKCl7JCgiLnByb2dyZXNzIikucmVtb3ZlKCl9KTskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLnVpLXdpZGdldC1vdmVybGF5IikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLnVpLXdpZGdldC1vdmVybGF5IikucmVtb3ZlKCl9KTskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkFqYXhNZXNzYWdlIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkFqYXhNZXNzYWdlIikucmVtb3ZlKCl9KTtjbGVhckNvdW50KCdTVUJDSEVDSycraWQpOyQoJyNEXycraWQpLmZpbmQoIi5FX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IixodG1sOmZ1bmN0aW9uKCl7dGV4dD0kKCIuRXJyb3JBcmVhIikuaHRtbCgpO3JldHVybiAnPGRpdiBpZD0icG9wdXBFcnJvckFyZWEiPicrdGV4dCsnPC9kaXY+J30sb3BhY2l0eTowLjI1LG9uQ29tcGxldGU6ZnVuY3Rpb24oKXskLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpfX0pOyQoJyNEXycraWQpLmZpbmQoIi5XX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IixodG1sOmZ1bmN0aW9uKCl7dGV4dD0kKCIud2FybkFyZWEiKS5odG1sKCk7cmV0dXJuICc8ZGl2IGlkPSJwb3B1cHdhcm5BcmVhIj4nK3RleHQrJzwvZGl2Pid9LG9wYWNpdHk6MC4yNSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKX19KTttYXJrbGluZU51bWJlcihpZCl9KX0=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/css/phpcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAoYykgMjAwOC0yMDA5IFlhaG9vISBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpUaGUgY29weXJpZ2h0cyBlbWJvZGllZCBpbiB0aGUgY29udGVudCBvZiB0aGlzIGZpbGUgYXJlIGxpY2Vuc2VkIGJ5DQpZYWhvbyEgSW5jLiB1bmRlciB0aGUgQlNEIChyZXZpc2VkKSBvcGVuIHNvdXJjZSBsaWNlbnNlDQoNCkBhdXRob3IgRGFuIFZsYWQgRGFzY2FsZXNjdSA8ZGFuZHZAeWFob28taW5jLmNvbT4NCiovDQoNCmh0bWwgew0KICBjdXJzb3I6IHRleHQ7DQp9DQoNCi5lZGl0Ym94IHsNCiAgbWFyZ2luOiAuNGVtOw0KICBwYWRkaW5nOiAwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICBmb250LXNpemU6IDEwcHQ7DQp9DQoNCi8qV2Ugc2hvdWxkIGRlZmluZSBzcGVjaWZpYyBzdHlsZXMgZm9yIGV2ZXJ5IGVsZW1lbnQgb2YgdGhlIHN5bnRheC4NCiAgdGhlIHNldHRpbmcgYmVsb3cgd2lsbCBjYXVzZSBzb21lIGFubm95aW5nIGNvbG9yIHRvIHNob3cgdGhyb3VnaCBpZiB3ZSBtaXNzZWQNCiAgZGVmaW5pbmcgYSBzdHlsZSBmb3IgYSB0b2tlbi4gVGhpcyBpcyBhbHNvIHRoZSAiY29sb3IiIG9mIHRoZSB3aGl0ZXNwYWNlIGFuZA0KICBvZiB0aGUgY3Vyc29yLg0KKi8NCnByZS5jb2RlLCAuZWRpdGJveCB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi5lZGl0Ym94IHAgew0KICBtYXJnaW46IDA7DQp9DQoNCnNwYW4ucGhwLXB1bmN0dWF0aW9uIHsNCiAgY29sb3I6IGJsdWU7DQp9DQoNCnNwYW4ucGhwLWtleXdvcmQgew0KICBjb2xvcjogIzc3MDA4ODsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCnNwYW4ucGhwLW9wZXJhdG9yIHsNCiAgY29sb3I6IGJsdWU7DQp9DQoNCi8qIF9fRklMRV9fIGV0Yy47IGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9yZXNlcnZlZC5waHAgKi8NCnNwYW4ucGhwLWNvbXBpbGUtdGltZS1jb25zdGFudCB7DQogIGNvbG9yOiAjNzc2MDg4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0KLyogb3V0cHV0IG9mIGdldF9kZWZpbmVkX2NvbnN0YW50cygpLiBEaWZmZXJzIGZyb20gaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL3Jlc2VydmVkLmNvbnN0YW50cy5waHAgKi8NCnNwYW4ucGhwLXByZWRlZmluZWQtY29uc3RhbnQgew0KICBjb2xvcjogZGFya2dyZWVuOw0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0KLyogUEhQIHJlc2VydmVkICJsYW5ndWFnZSBjb25zdHJ1Y3RzIi4uLiBlY2hvKCkgZXRjLjsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL3Jlc2VydmVkLnBocCAqLw0Kc3Bhbi5waHAtcmVzZXJ2ZWQtbGFuZ3VhZ2UtY29uc3RydWN0IHsNCiAgY29sb3I6IGdyZWVuOw0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0KLyogUEhQIGJ1aWx0LWluIGZ1bmN0aW9uczogZ2xvYigpLCBjaHIoKSBldGMuOyBvdXRwdXQgb2YgZ2V0X2RlZmluZWRfZnVuY3Rpb25zKClbImludGVybmFsIl0gKi8NCnNwYW4ucGhwLXByZWRlZmluZWQtZnVuY3Rpb24gew0KICBjb2xvcjogZ3JlZW47DQp9DQoNCi8qIFBIUCBwcmVkZWZpbmVkIGNsYXNzZXM6IFBETywgRXhjZXB0aW9uIGV0Yy47IG91dHB1dCBvZiBnZXRfZGVjbGFyZWRfY2xhc3NlcygpIGFuZCBkaWZmZXJlbnQgZnJvbSBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuY2xhc3Nlcy5waHAgKi8NCnNwYW4ucGhwLXByZWRlZmluZWQtY2xhc3Mgew0KICBjb2xvcjogZ3JlZW47DQp9DQoNCnNwYW4ucGhwLWF0b20gew0KICBjb2xvcjogIzIyODgxMTsNCn0NCg0KLyogY2xhc3MsIGludGVyZmFjZSwgbmFtZXNwYWNlIG9yIGZ1bmN0aW9uIG5hbWVzLCBidXQgbm90ICR2YXJpYWJsZXMgKi8NCnNwYW4ucGhwLXRfc3RyaW5nIHsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQpzcGFuLnBocC12YXJpYWJsZSB7DQogIGNvbG9yOiBibGFjazsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCg0Kc3Bhbi5qcy1sb2NhbHZhcmlhYmxlIHsNCiAgY29sb3I6ICMwMDQ0OTk7DQp9DQoNCnNwYW4ucGhwLWNvbW1lbnQgew0KICBjb2xvcjogI0FBNzcwMDsNCiAgZm9udC1zdHJldGNoOiBjb25kZW5zZWQ7DQovKiAgZm9udC1zdHlsZTogaXRhbGljOyAgVGhpcyBjYXVzZXMgbGluZSBoZWlnaHQgdG8gc2xpZ2h0bHkgY2hhbmdlLCBnZXR0aW5nIGxpbmUgbnVtYmVycyBvdXQgb2Ygc3luYyAqLw0KfQ0KDQpzcGFuLnBocC1zdHJpbmctc2luZ2xlLXF1b3RlZCB7DQogIGNvbG9yOiAjQUEyMjIyOw0KfQ0KLyogZG91YmxlIHF1b3RlZCBzdHJpbmdzIGFsbG93IGludGVycG9sYXRpb24gKi8NCnNwYW4ucGhwLXN0cmluZy1kb3VibGUtcXVvdGVkIHsNCiAgY29sb3I6ICNBQTIyMjI7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpzcGFuLnN5bnRheC1lcnJvciB7DQogIGJhY2tncm91bmQtY29sb3I6IHJlZDsNCn0NCg0Kc3Bhbi5kZXByZWNhdGVkIHsNCiAgZm9udC1zaXplOiBzbWFsbGVyOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLQ0KQ29weXJpZ2h0IChjKSAyMDA4LTIwMDkgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NClRoZSBjb3B5cmlnaHRzIGVtYm9kaWVkIGluIHRoZSBjb250ZW50IG9mIHRoaXMgZmlsZSBhcmUgbGljZW5zZWQgYnkNCllhaG9vISBJbmMuIHVuZGVyIHRoZSBCU0QgKHJldmlzZWQpIG9wZW4gc291cmNlIGxpY2Vuc2UNCg0KQGF1dGhvciBEYW4gVmxhZCBEYXNjYWxlc2N1IDxkYW5kdkB5YWhvby1pbmMuY29tPg0KDQotLT4NCg0KDQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQogIDxoZWFkPg0KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9jb2RlbWlycm9yLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pg0KICAgIDx0aXRsZT5Db2RlTWlycm9yOiBQSFArSFRNTCtKYXZhU2NyaXB0K0NTUyBtaXhlZC1tb2RlIGRlbW9uc3RyYXRpb248L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyIvPg0KICA8L2hlYWQ+DQogIDxib2R5IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+DQoNCiAgICA8cD5UaGlzIGlzIGEgY29tcGxleCBkZW1vbnN0cmF0aW9uIG9mIHRoZSA8Yj5QSFArSFRNTCtKYXZhU2NyaXB0K0NTUyBtaXhlZC1tb2RlDQogICAgc3ludGF4IGhpZ2hsaWdodDwvYj4gY2FwYWJpbGl0aWVzIG9mIDxhIGhyZWY9Ii4uLy4uL2luZGV4Lmh0bWwiPkNvZGVNaXJyb3I8L2E+Lg0KICAgICZsdDs/cGhwIC4uLiA/PiB0YWdzIHVzZSB0aGUgUEhQIHBhcnNlciwgJmx0O3NjcmlwdD4gdGFncyB1c2UgdGhlIEphdmFTY3JpcHQNCiAgICBwYXJzZXIsIGFuZCAmbHQ7c3R5bGU+IHRhZ3MgdXNlIHRoZSBDU1MgcGFyc2VyLiBUaGUgcmVzdCBvZiB0aGUgY29udGVudCBpcw0KICAgIHBhcnNlZCB1c2luZyB0aGUgWE1MIHBhcnNlciBpbiBIVE1MIG1vZGUuPC9wPg0KDQogICAgPHA+RmVhdHVyZXMgb2YgdGhlIFBIUCBwYXJzZXI6DQogICAgPHVsPg0KICAgICAgPGxpPnNwZWNpYWwgImRlcHJlY2F0ZWQiIHN0eWxlIGZvciBQSFA0IGtleXdvcmRzIGxpa2UgJ3ZhcicNCiAgICAgIDxsaT5zdXBwb3J0IGZvciBQSFAgNS4zIGtleXdvcmRzOiAnbmFtZXNwYWNlJywgJ3VzZScNCiAgICAgIDxsaT45MTEgcHJlZGVmaW5lZCBjb25zdGFudHMsIDEzMDEgcHJlZGVmaW5lZCBmdW5jdGlvbnMsIDEwNSBwcmVkZWNsYXJlZCBjbGFzc2VzDQogICAgICAgIGZyb20gYSB0eXBpY2FsIFBIUCBpbnN0YWxsYXRpb24gaW4gYSBMQU1QIGVudmlyb25tZW50DQogICAgICA8bGk+bmV3IGZlYXR1cmU6IHN5bnRheCBlcnJvciBmbGFnZ2luZywgdGh1cyBlbmFibGluZyBzdHJpY3QgcGFyc2luZyBvZjoNCiAgICAgICAgPG9sPg0KICAgICAgICAgIDxsaT5mdW5jdGlvbiBkZWZpbml0aW9ucyB3aXRoIGV4cGxpY2l0bHkgb3IgaW1wbGljaXRseSB0eXBlZCBhcmd1bWVudHMgYW5kIGRlZmF1bHQgdmFsdWVzDQogICAgICAgICAgPGxpPm1vZGlmaWVycyAocHVibGljLCBzdGF0aWMgZXRjLikgYXBwbGllZCB0byBtZXRob2QgYW5kIG1lbWJlciBkZWZpbml0aW9ucw0KICAgICAgICAgIDxsaT5mb3JlYWNoKGFycmF5X2V4cHJlc3Npb24gYXMgJGtleSBbPT4gJHZhbHVlXSkgbG9vcHMNCiAgICAgICAgPC9vbD4NCiAgICAgIDxsaT5kaWZmZXJlbnRpYXRpb24gYmV0d2VlbiBzaW5nbGUtcXVvdGVkIHN0cmluZ3MgYW5kIGRvdWJsZS1xdW90ZWQgaW50ZXJwb2xhdGluZyBzdHJpbmdzDQogICAgPC91bD4NCg0KICAgIDxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiAzcHg7IGJhY2tncm91bmQtY29sb3I6ICNGOEY4RjgiPg0KICAgIDx0ZXh0YXJlYSBpZD0iY29kZSIgY29scz0iMTIwIiByb3dzPSIzMCI+DQpUaGUgInJvb3QiIHBhcnNlciBpcyBYTUwgaW4gSFRNTCBtb2RlLg0KTmV4dCwgd2UgY2FuIHN3aXRjaCBpbnRvIFBIUCBtb2RlLCBmb3IgZXhhbXBsZS4gVGhpcyBpcw0KPD9waHAgZWNobyAndGV4dCBvdXRwdXQgYnknOw0KPz4NClBIUC4gPC9iPg0KT24gdGhlIGxpbmUgYWJvdmUsIHdlIGp1c3QgaGFkIGFuIFhNTCBzeW50YXggZXJyb3IgZHVlIHRvIHRoZSA8L2I+IHRhZyBub3QgYmVpbmcgb3BlbmVkLg0KDQo8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSdVVEYtOCcgc3RhbmRhbG9uZT0neWVzJz8+ICAgSFRNTCB0ZXh0IHdpbGwgZm9sbG93DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPHRpdGxlPlNpbWlsYXJseSwgdGhlICdzY3JpcHQnIHRhZyB3aWxsIHN3aXRjaCB0byB0aGUgSmF2YVNjcmlwdCBwYXJzZXI6PC90aXRsZT4NCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICAgLy8gUHJlc3MgZW50ZXIgaW5zaWRlIHRoZSBvYmplY3QgYW5kIHlvdXIgbmV3IGxpbmUgd2lsbCBiZSBzdWl0YWJseQ0KICAgICAgIC8vIGluZGVudGVkLg0KICAgICAgIHZhciBrZXlCaW5kaW5ncyA9IHsNCiAgICAgICAgIGVudGVyOiAibmV3bGluZS1hbmQtaW5kZW50IiwNCiAgICAgICAgIHRhYjogInJlaW5kZW50LXNlbGVjdGlvbiIsDQogICAgICAgICBjdHJsX2VudGVyOiAicmVwYXJzZS1idWZmZXIiLA0KICAgICAgICAgY3RybF96OiAidW5kbyIsDQogICAgICAgICBjdHJsX3k6ICJyZWRvIiwNCiAgICAgICAgIGN0cmxfYmFja3NwYWNlOiAidW5kby1mb3Itc2FmYXJpLXdoaWNoLXN0dXBpZGx5LWVub3VnaC1ibG9ja3MtY3RybC16Ig0KICAgICAgIH07DQoNCiAgICAgICAvLyBQcmVzcyB0YWIgb24gdGhlIG5leHQgbGluZSBhbmQgdGhlIHdyb25nIGluZGVudGF0aW9uIHdpbGwgYmUgZml4ZWQuDQogICAgICAgICAgICAgdmFyIHJlZ2V4ID0gL2Zvb3xiYXIvaTsNCg0KICAgICAgIGZ1bmN0aW9uIGV4YW1wbGUoeCkgew0KICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzIGdldCBhIGRpZmZlcmVudCBjb2xvdXIgdGhhbiBnbG9iYWwgb25lcy4NCiAgICAgICAgIHZhciB5ID0gNDQuNDsNCiAgICAgICAgIHJldHVybiB4ICsgeSAtIHo7DQogICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KICAgIDxzdHlsZT4NCiAgICAgIC8qIFNvbWUgZXhhbXBsZSBDU1MgKi8NCg0KICAgICAgQGltcG9ydCB1cmwoInNvbWV0aGluZy5jc3MiKTsNCg0KICAgICAgYm9keSB7DQogICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgcGFkZGluZzogM2VtIDZlbTsNCiAgICAgICAgZm9udC1mYW1pbHk6IHRhaG9tYSwgYXJpYWwsIHNhbnMtc2VyaWY7DQogICAgICAgIGNvbG9yOiAjMDAwOw0KICAgICAgfQ0KDQogICAgICAjbmF2aWdhdGlvbiBhIHsNCiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Ow0KICAgICAgfQ0KDQogICAgICBoMSB7DQogICAgICAgIGZvbnQtc2l6ZTogMi41ZW07DQogICAgICB9DQoNCiAgICAgIGgxOmJlZm9yZSwgaDI6YmVmb3JlIHsNCiAgICAgICAgY29udGVudDogIjo6IjsNCiAgICAgIH0NCg0KICAgICAgY29kZSB7DQogICAgICAgIGZvbnQtZmFtaWx5OiBjb3VyaWVyLCBtb25vc3BhY2U7DQogICAgICAgIGZvbnQtc2l6ZTogODAlOw0KICAgICAgICBjb2xvcjogIzQxOEE4QTsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICA8L2hlYWQ+DQoNCiAgPGJvZHk+DQoNCiAgVGhlIFBIUCBjb2RlIGJlbG93IGNvbnRhaW5zIHNvbWUgZGVsaWJlcmF0ZSBlcnJvcnMuIFBsYXkgd2l0aCB0aGUgZWRpdG9yIGJ5IGZpeGluZyB0aGVtDQogIGFuZCBvYnNlcnZpbmcgaG93IHRoZSBoaWdobGlnaHQgY2hhbmdlcy4NCg0KICAgIDw/cGhwDQogICAgbmFtZXNwYWNlIEE7DQogICAgbmFtZXNwYWNlIEE6OkI6OkM7DQogICAgbmFtZXNwYWNlIEE6Ojo6QjsNCiAgICBuYW1lc3BhY2UgQTo6Qjo6Qzo6Ow0KICAgIG5hbWVzcGFjZSBBOjpCOjpDOjpEIHg7DQogICAgc2VsZjo6cmFuZ2UoJHJvd1snbGZ0J10sICRyb3dbJ3JndCddKSk7ICAvLyBlcnJvcjogZXh0cmEgJyknDQogICAgJGEgPSAoYigpICsgNCkgNSBmb287ICAvLyBlcnJvcjogbWlzc2luZyBvcGVyYXRvcnMNCiAgICBzZWxmOjokdmFyOw0KICAgICRwYXJlbnQgPSBzZWxmOjpyYW5nZSgkbWF4ICsgMSwgJG1heCArIDEpOw0KICAgICRyb3dbYXR0cmlidXRlc11bJGF0dHJpYnV0ZV9uYW1lXSA9ICRhdHRyaWJ1dGVfdmFsdWU7DQogICAgJHJvd1thdHRyaWJ1dGVzKCldWyRhdHRyaWJ1dGVfbmFtZV0gPSAkYXR0cmlidXRlX3ZhbHVlOw0KICAgICRyb3dbYXR0cmlidXRlcyg1KV1bJGF0dHJpYnV0ZV9uYW1lXSA9ICRhdHRyaWJ1dGVfdmFsdWU7DQogICAgJHJvd1skYXR0cmlidXRlcygpXVskYXR0cmlidXRlX25hbWVdID0gJGF0dHJpYnV0ZV92YWx1ZTsNCiAgICBhYnN0cmFjdCBjbGFzcyA1IGV4dGVuZHMgZm9vIGltcGxlbWVudHMgZWNobyB7DQogICAgICAgIHByaXZhdGUgZnVuY3Rpb24gZG9tYWluT2JqZWN0QnVpbGRlcigpIHsNCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+dXNlX2RvbWFpbl9vYmplY3RfYnVpbGRlcg0KICAgICAgICAgICAgICAgICAgID8gJHRoaXMtPmRvbWFpbigpLT5vYmplY3RCdWlsZGVyKCkNCiAgICAgICAgICAgICAgICAgICA6IG51bGw7DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCAkbXljb25zdCA9ICdzb21lIHN0cmluZyc7DQogICAgICAgICRhcnJheVtteWNvbnN0XSA9IDQ7DQogICAgICAgIC8vIHRoaXMgaXMgYSBzaW5nbGUtbGluZSBDKystc3R5bGUgY29tbWVudA0KICAgICAgICAjIHRoaXMgaXMgYSBzaW5nbGUtbGluZSBzaGVsbC1zdHlsZSBjb21tZW50DQogICAgICAgIHByaXZhdGUgdmFyICRhID0gX19GSUxFX187DQogICAgICAgIHByb3RlY3RlZCBzdGF0aWMgJGIgPSB0aW1lem9uZV90cmFuc2l0aW9uc19nZXQoJ3NvbWUgcGFyYW1ldGVyIGhlcmUnKTsNCiAgICAgICAgZ2xvYmFsICRnID0gaXNzZXQoInN0cmluZyIpOw0KICAgICAgICBzdGF0aWMgJHMgPSBoYXNoX3VwZGF0ZV9maWxlOyAgLy8gd2FybmluZzogcHJlZGVmaW5lZCBmdW5jdGlvbiBub24tY2FsbA0KICAgICAgICBmdW5jdGlvbiBtaWtlICgkdmFyKSAkZm9vOw0KICAgICAgICBtaWtlKEE6OmZ1bmMocGFyYW0pKTsNCiAgICAgICAgZnVuYygkYiAkYyk7ICAvLyBlcnJvcjogZnVuY3Rpb24gcGFyYW1ldGVycyBtdXN0IGJlIGNvbW1hLXNlcGFyYXRlZA0KICAgICAgICBmb28gYmFyOyAgLy8gZXJyb3I6IG5vIG9wZXJhdG9yDQogICAgICAgICRiYXogJHF1dXg7ICAvLyBlcnJvcjogbm8gb3BlcmF0b3INCiAgICAgICAgcHVibGljIGFic3RyYWN0IGZ1bmN0aW9uIGxvYWRQYWdlWE1MKHV0aWxfRmlsZVBhdGggJGZpbGVuYW1lLCAkbWVyZ2U9MCskZm9vLCAkeCwgJHk9Mykgew0KICAgICAgICAgICAgJG5ld3Jvd1ska2V5XSA9ICR2YWw7DQogICAgICAgICAgICAkbmV3cmVzdWx0W10gPSAkcm93Ow0KICAgICAgICAgICAgJHN0YXRlID0gJHJvd1snYyddID09IDE7DQogICAgICAgICAgICAkYXR0cmlidXRlX3ZhbHVlc1skYXR0cmlidXRlX25hbWVdID0gbnVsbDsNCiAgICAgICAgICAgICRyb3dbJ2F0dHJpYnV0ZXMnXVskYXR0cmlidXRlX25hbWVdID0gJGF0dHJpYnV0ZV92YWx1ZTsNCiAgICAgICAgICAgICRyZXN1bHRbJHJvd1snZWxlbWVudCddXVskcm93WydhdHRyaWJ1dGUnXV0gPSAkcm93Wyd2YWx1ZSddOw0KICAgICAgICAgICAgJHNxbCA9ICJtdWx0aWxpbmUgc3RyaW5nDQpsaW5lMiBpcyBzcGVjaWFsIC0gaXQnbGwgaW50ZXJwb2xhdGUgdmFyaWFibGVzIGxpa2UgJHN0YXRlIGFuZCBtZXRob2QgY2FsbHMNCnskdGhpcy0+Y2FjaGUtPmFkZCgka2V5LCA1KX0gYW5kIG1heWJlIFwibW9yZVwiDQoNCmxpbmU1IjsNCiAgICAgICAgICAgICRzcWwgPSAnbXVsdGlsaW5lIHN0cmluZw0Kc2luZ2xlIHF1b3RpbmcgbWVhbnMgbm8gXCdpbnRlcnBvbGF0aW9uXCcgbGlrZSAiJHN0YXJ0IiBvciBtZXRob2QgY2FsbA0KeyR0aGlzLT5jYWNoZS0+YWRkKCRrZXksIDUpfSB3aWxsIGhhcHBlbg0KDQpsaW5lNSc7DQogICAgICAgICAgICAkYml0cGF0dGVybiA9IDEgPDwgMjsNCiAgICAgICAgICAgICRiaXRwYXR0ZXJuIDw8PSAzOw0KICAgICAgICAgICAgJGluY29ycmVjdCA9IDw8PCA1IEVPU1RSSU5HICAvLyBGSVhNRTogQ29kZU1pcnJvciB1cGRhdGUgYnVnOiBhZGQgYSBsZXR0ZXIgYmVmb3JlIDUgYW5kIG5vdGljZSB0aGF0IHN5bnRheCBpcyBub3QgdXBkYXRlZCB1bnRpbCBFT0YsIGV2ZW4gd2l0aCBjb250aW51b3VzU2Nhbm5pbmc6IDUwMA0KZXJyb3I6IHRoZSBpZGVudGlmaWVyIG11c3QgY29uZm9ybSB0byB0aGUgaWRlbnRpZmllciBydWxlcw0KRU9TVFJJTkc7DQogICAgICAgICAgICAkc3FsID0gPDw8IEVPU1FMDQogICAgICAgICAgICAgICAgU0VMRUNUIGF0dHJpYnV0ZSwgZWxlbWVudCwgdmFsdWUNCiAgICAgICAgICAgICAgICBGUk9NIGF0dHJpYnV0ZV92YWx1ZXMNCiAgICAgICAgICAgICAgICBXSEVSRSBkaW1lbnNpb24gPSA/DQpFT1NRTDsNCiAgICAgICAgICAgICR0aGlzLT5scl9jYWNoZS0+YWRkKCRrZXksIHNlbGY6OnJhbmdlKCRyb3dbJ2xmdCddLCAkcm93WydyZ3QnXSkpOw0KICAgICAgICAgICAgJGNvbXBvc2l0ZV9zdHJpbmcgPSA8PDxFT1NUUklORw0Kc29tZSBsaW5lcyBoZXJlDQpFT1NUUklORw0KLiAnc29tZXRoaW5nIGV4dHJhJzsNCiAgICAgICAgICAgICRwYWdlX2xmdCA9ICgkZG9tYWluLT5uYW1lKCkgPT0gJ3BhZ2UnKSA/ICRzdGFydCArIDEgOiAkcGFnZV9zdGFydCArIDE7DQogICAgICAgICAgICBlY2hvICJUaGlzIGlzIGNsYXNzIGZvbyI7DQogICAgICAgICAgICBlY2hvICJhID0gIi4kdGhpcyAtPmFbMiszKiRhcnJheVsiZm9vIl1dLiIiOw0KICAgICAgICAgICAgZWNobyAiYiA9IHskdGhpcy0+Yn0iOyAgLy8gRklYTUU6IGhpZ2hsaWdodCBpbnRlcnBvbGF0aW9uIGluIHN0cmluZ3MNCiAgICAgICAgfQ0KICAgICAgICBmaW5hbCBmdW5jdGlvbiBtYWtlY29mZmVlIGVycm9yKCR0eXBlcyA9IGFycmF5KCJjYXBwdWNjaW5vIiksICRjb2ZmZWVNYWtlciA9IE5VTEwpIHsNCiAgICAgICAgICAgICRvdXRfb2Zfd2F5X2Ftb3VudCA9ICRtYXggLSAkY2hpbGQtPmxlZnQoKSArIDE7DQogICAgICAgICAgICAkYWJzb2x1dGVfcG9zID0gJGNoaWxkLT5sZWZ0KCkgLSAkbW92ZS0+d2lkdGgoKTsNCiAgICAgICAgICAgICR2YXJmdW5jKDEsICd4Jyk7DQogICAgICAgICAgICAkdmFyZnVuYygxLCAneCcpICsgZm9vKCkgLSA1Ow0KICAgICAgICAgICAgJGZ1bmNhcnJheVskaV0oJ3BhcmFtMScsICRwYXJhbTIpOw0KICAgICAgICAgICAgICAgICRsclskZG9tYWluX25hbWVdID0gJHRoaXMtPmdldF9sZWZ0X2FuZF9yaWdodCgkZG9tYWluLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGltZW5zaW9uX25hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50X25hbWUpOw0KICAgICAgICAgICAgJGRvbWFpbl9saXN0ID0gaXNfbnVsbCgkZG9tYWluKSA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICByM19Eb21haW46Om5hbWVzKCkgOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJGRvbWFpbi0+bmFtZSgpKTsNCiAgICAgICAgICAgIGZvcmVhY2ggKHIzX0RvbWFpbjo6bmFtZXMoKSBhcyAkZG9tYWluX25hbWUpIHsNCiAgICAgICAgICAgICAgICAkcGxhY2Vob2xkZXJzID0gJ2Rpc3RhbmNlIExJS0UgJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gaW1wbG9kZShhcnJheV9maWxsKDEsICRudW1fZGlzdGFuY2VzLCAnPycpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIE9SIGRpc3RhbmNlIExJS0UgJyk7DQoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+dGFyZ2V0KiR0aGlzLT50cmFucytteWZ1bmMoX19NRVRIT0RfXyk7DQogICAgICAgICAgICAvKg0KICAgICAgICAgICAgZWNobyAnVGhpcyBpcyBhIHRlc3QnOyAvKiBUaGlzIGNvbW1lbnQgd2lsbCBjYXVzZSBhIHByb2JsZW0gKi8NCiAgICAgICAgICAgICovDQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsNCiAgICAgICAgICAgIGNhc2UgInIzY29yZV9BZGRUZW1wbGF0ZVRvVGFyZ2V0RXZlbnQiOg0KICAgICAgICAgICAgICAgICR0aGlzLT5ub3RpZnlBZGRUZW1wbGF0ZVRvVGFyZ2V0KCAkZ2VuZXZlbnQgKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInIzY29yZV9HZW5lcmF0ZVRhcmdldEV2ZW50IiAkdGhpczoNCiAgICAgICAgICAgICAgICBmb3IoJGk9MDsgJGk8PXRoaXMtPm1ldGhvZCgpOyAkaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gJ1N5bnRheCAiaGlnaGxpZ2h0aW5nIic7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goJGFycmF5IHhvciAkbG9hZGVyLT5wYXJzZV9mbigkZmlsZW5hbWUpIGFzICRrZXkgPT4gdmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSByMzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsNCiAgICAgICAgICAgICAgICAgICAgLyoqIHJlc3RvcmUgdGhlIGJhY2t1cA0KICAgICAgICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bG9hZEFsbCgkdG1wLCAkZXZlbnQsIHRydWUpOw0KICAgICAgICAgICAgICAgICAgICAvLyBgcGhwIC1sYCBkb2Vzbid0IGNvbXBsYWluIGF0IGFsbCBhdCB0aGlzIChpdCBhc3N1bWVzIHN0cmluZyBjb25zdGFudHMpOg0KICAgICAgICAgICAgICAgICAgICB0aGlzICsgbWFrZXMgKiBubyAtIHNlbnNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICBkZWZhdWx0IG1vbzoNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcjNfdXRpbF9FeGNlcHRpb24oIGdldF9jbGFzcyggJGdlbmV2ZW50ICkgLiAiIGRvZXMgbm90IG1hcCIgKTsNCiAgICAgICAgfQ0KDQoNCiAgICB9Ow0KICAgIA0KICAgIGlmKCRzb21ldGhpbmc9PXRydWUpOg0KICAgIAkkdGVzdCA9ICdzb21ldGhpbmcnOw0KICAgIGVuZGlmOw0KICAgIA0KICAgIGZvcigkaT0wOyRpPDIwMDA7JGkrKyk6DQogICAgCWVjaG8gJGk7DQogICAgCSRrID0gJGsgKyAxOw0KICAgIGVuZGZvcjsNCiAgICANCiAgICBmb3JlYWNoKGFycmF5KCdvbmUnLCd0d28nKSBhcyAka2V5ID0+ICR2YWx1ZSk6DQogICAgCWVjaG8gJG51bWJlciAuICcgPSAnLiAka2V5Ow0KICAgIGVuZGZvcmVhY2g7DQoNCiAgICAvKiBmYWlscyBpZiBuZXN0ZWQgKi8NCiAgICBpZigkbmVzdGVkIDwgMCk6DQogICAgCWlmKCRmYWlsID4gMSk6DQogICAgCQllY2hvICdUaGlzIGZhaWxzLi4uLic7DQogICAgCWVuZGlmOw0KICAgIGVuZGlmOw0KICAgID8+DQoNCiAgICA8cjM6Y3BocD4NCiAgICAgICAgcGhwKCJ3b3JrcyIsICRoZXJlLCAyKTsNCiAgICA8L3IzOmNwaHA+DQoNCiAgICA8cjQ6Y3BocD4NCiAgICBjbGFzcyBmb28gew0KICAgICAgICAvLyBhIGNvbW1lbnQNCiAgICAgICAgdmFyICRhOw0KICAgICAgICB2YXIgJGI7DQogICAgfTsNCiAgICA8L3I0OmNwaHA+DQoNCiAgPGgxPlRoaXMgaXMgYW4gPD9waHAgIyBlY2hvICdzaW1wbGUnOz8+IGV4YW1wbGUuPC9oMT4NCiAgPHA+VGhlIGhlYWRlciBhYm92ZSB3aWxsIHNheSAnVGhpcyBpcyBhbiAgZXhhbXBsZScuPC9wPg0KICA8aDE+VGhpcyBpcyBhbiA8P3BocCAvLyBlY2hvICdzaW1wbGUnOz8+IGV4YW1wbGUuPC9oMT4NCg0KICA8P3BocCBlY2hvOyA/Pg0KICAgIDxib2R5Pg0KDQo8P3BocCBlY2hvICI8aHRtbD4NCiAgPGhlYWQ+DQogICAgPHNjcmlwdD4NCiAgICB2YXIgZm9vID0gJ2Jhcic7DQogICAgPC9zY3JpcHQ+DQogICAgPHN0eWxlPg0KICAgICAgc3Bhbi50ZXN0IHtmb250LWZhbWlseTogYXJpYWwsICdsdWNpZGEgY29uc29sZScsIHNhbnMtc2VyaWZ9DQogICAgPC9zdHlsZT4NCiAgPC9oZWFkPg0KICA8Ym9keT4NCiAgICA8IS0tIGNvbW1lbnQgLS0+DQogIDwvYm9keT4NCjwvaHRtbD4iOyA/Pg0KDQo8L2JvZHk+DQo8L2h0bWw+DQoNCg0KICAgIDwvdGV4dGFyZWE+DQogICAgPC9kaXY+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoJ2NvZGUnLCB7DQogICAgICAgIGhlaWdodDogIjM1MHB4IiwNCiAgICAgICAgcGFyc2VyZmlsZTogWyJwYXJzZXhtbC5qcyIsICJwYXJzZWNzcy5qcyIsICJ0b2tlbml6ZWphdmFzY3JpcHQuanMiLCAicGFyc2VqYXZhc2NyaXB0LmpzIiwNCiAgICAgICAgICAgICAgICAgICAgICIuLi9jb250cmliL3BocC9qcy90b2tlbml6ZXBocC5qcyIsICIuLi9jb250cmliL3BocC9qcy9wYXJzZXBocC5qcyIsDQogICAgICAgICAgICAgICAgICAgICAiLi4vY29udHJpYi9waHAvanMvcGFyc2VwaHBodG1sbWl4ZWQuanMiXSwNCiAgICAgICAgc3R5bGVzaGVldDogWyIuLi8uLi9jc3MveG1sY29sb3JzLmNzcyIsICIuLi8uLi9jc3MvanNjb2xvcnMuY3NzIiwgIi4uLy4uL2Nzcy9jc3Njb2xvcnMuY3NzIiwgImNzcy9waHBjb2xvcnMuY3NzIl0sDQogICAgICAgIHBhdGg6ICIuLi8uLi9qcy8iLA0KICAgICAgICBjb250aW51b3VzU2Nhbm5pbmc6IDUwMA0KICAgICAgfSk7DQogICAgPC9zY3JpcHQ+DQoNCg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/js/parsephp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAoYykgMjAwOC0yMDA5IFlhaG9vISBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpUaGUgY29weXJpZ2h0cyBlbWJvZGllZCBpbiB0aGUgY29udGVudCBvZiB0aGlzIGZpbGUgYXJlIGxpY2Vuc2VkIGJ5DQpZYWhvbyEgSW5jLiB1bmRlciB0aGUgQlNEIChyZXZpc2VkKSBvcGVuIHNvdXJjZSBsaWNlbnNlDQoNCkBhdXRob3IgRGFuIFZsYWQgRGFzY2FsZXNjdSA8ZGFuZHZAeWFob28taW5jLmNvbT4NCg0KDQpQYXJzZSBmdW5jdGlvbiBmb3IgUEhQLiBNYWtlcyB1c2Ugb2YgdGhlIHRva2VuaXplciBmcm9tIHRva2VuaXplcGhwLmpzLg0KQmFzZWQgb24gcGFyc2VqYXZhc2NyaXB0LmpzIGJ5IE1hcmlqbiBIYXZlcmJla2UuDQoNCg0KRmVhdHVyZXM6DQogKyBzcGVjaWFsICJkZXByZWNhdGVkIiBzdHlsZSBmb3IgUEhQNCBrZXl3b3JkcyBsaWtlICd2YXInDQogKyBzdXBwb3J0IGZvciBQSFAgNS4zIGtleXdvcmRzOiAnbmFtZXNwYWNlJywgJ3VzZScNCiArIDkxMSBwcmVkZWZpbmVkIGNvbnN0YW50cywgMTMwMSBwcmVkZWZpbmVkIGZ1bmN0aW9ucywgMTA1IHByZWRlY2xhcmVkIGNsYXNzZXMNCiAgIGZyb20gYSB0eXBpY2FsIFBIUCBpbnN0YWxsYXRpb24gaW4gYSBMQU1QIGVudmlyb25tZW50DQogKyBuZXcgZmVhdHVyZTogc3ludGF4IGVycm9yIGZsYWdnaW5nLCB0aHVzIGVuYWJsaW5nIHN0cmljdCBwYXJzaW5nIG9mOg0KICAgKyBmdW5jdGlvbiBkZWZpbml0aW9ucyB3aXRoIGV4cGxpY2l0bHkgb3IgaW1wbGljaXRseSB0eXBlZCBhcmd1bWVudHMgYW5kIGRlZmF1bHQgdmFsdWVzDQogICArIG1vZGlmaWVycyAocHVibGljLCBzdGF0aWMgZXRjLikgYXBwbGllZCB0byBtZXRob2QgYW5kIG1lbWJlciBkZWZpbml0aW9ucw0KICAgKyBmb3JlYWNoKGFycmF5X2V4cHJlc3Npb24gYXMgJGtleSBbPT4gJHZhbHVlXSkgbG9vcHMNCiArIGRpZmZlcmVudGlhdGlvbiBiZXR3ZWVuIHNpbmdsZS1xdW90ZWQgc3RyaW5ncyBhbmQgZG91YmxlLXF1b3RlZCBpbnRlcnBvbGF0aW5nIHN0cmluZ3MNCg0KKi8NCg0KDQovLyBhZGQgdGhlIEFycmF5LmluZGV4T2YgbWV0aG9kIGZvciBKUyBlbmdpbmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBpdCAoZS5nLiBJRSkNCi8vIGNvZGUgZnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9Fbi9Db3JlX0phdmFTY3JpcHRfMS41X1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9JbmRleE9mDQppZiAoIUFycmF5LnByb3RvdHlwZS5pbmRleE9mKQ0Kew0KICBBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uKGVsdCAvKiwgZnJvbSovKQ0KICB7DQogICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoOw0KDQogICAgdmFyIGZyb20gPSBOdW1iZXIoYXJndW1lbnRzWzFdKSB8fCAwOw0KICAgIGZyb20gPSAoZnJvbSA8IDApDQogICAgICAgICA/IE1hdGguY2VpbChmcm9tKQ0KICAgICAgICAgOiBNYXRoLmZsb29yKGZyb20pOw0KICAgIGlmIChmcm9tIDwgMCkNCiAgICAgIGZyb20gKz0gbGVuOw0KDQogICAgZm9yICg7IGZyb20gPCBsZW47IGZyb20rKykNCiAgICB7DQogICAgICBpZiAoZnJvbSBpbiB0aGlzICYmDQogICAgICAgICAgdGhpc1tmcm9tXSA9PT0gZWx0KQ0KICAgICAgICByZXR1cm4gZnJvbTsNCiAgICB9DQogICAgcmV0dXJuIC0xOw0KICB9Ow0KfQ0KDQoNCnZhciBQSFBQYXJzZXIgPSBFZGl0b3IuUGFyc2VyID0gKGZ1bmN0aW9uKCkgew0KICAvLyBUb2tlbiB0eXBlcyB0aGF0IGNhbiBiZSBjb25zaWRlcmVkIHRvIGJlIGF0b21zLCBwYXJ0IG9mIG9wZXJhdG9yIGV4cHJlc3Npb25zDQogIHZhciBhdG9taWNUeXBlcyA9IHsNCiAgICAiYXRvbSI6IHRydWUsICJudW1iZXIiOiB0cnVlLCAidmFyaWFibGUiOiB0cnVlLCAic3RyaW5nIjogdHJ1ZQ0KICB9Ow0KICAvLyBDb25zdHJ1Y3RvciBmb3IgdGhlIGxleGljYWwgY29udGV4dCBvYmplY3RzLg0KICBmdW5jdGlvbiBQSFBMZXhpY2FsKGluZGVudGVkLCBjb2x1bW4sIHR5cGUsIGFsaWduLCBwcmV2LCBpbmZvKSB7DQogICAgLy8gaW5kZW50YXRpb24gYXQgc3RhcnQgb2YgdGhpcyBsaW5lDQogICAgdGhpcy5pbmRlbnRlZCA9IGluZGVudGVkOw0KICAgIC8vIGNvbHVtbiBhdCB3aGljaCB0aGlzIHNjb3BlIHdhcyBvcGVuZWQNCiAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjsNCiAgICAvLyB0eXBlIG9mIHNjb3BlICgnc3RhdCcgKHN0YXRlbWVudCksICdmb3JtJyAoc3BlY2lhbCBmb3JtKSwgJ1snLCAneycsIG9yICcoJykNCiAgICB0aGlzLnR5cGUgPSB0eXBlOw0KICAgIC8vICdbJywgJ3snLCBvciAnKCcgYmxvY2tzIHRoYXQgaGF2ZSBhbnkgdGV4dCBhZnRlciB0aGVpciBvcGVuaW5nDQogICAgLy8gY2hhcmFjdGVyIGFyZSBzYWlkIHRvIGJlICdhbGlnbmVkJyAtLSBhbnkgbGluZXMgYmVsb3cgYXJlDQogICAgLy8gaW5kZW50ZWQgYWxsIHRoZSB3YXkgdG8gdGhlIG9wZW5pbmcgY2hhcmFjdGVyLg0KICAgIGlmIChhbGlnbiAhPSBudWxsKQ0KICAgICAgdGhpcy5hbGlnbiA9IGFsaWduOw0KICAgIC8vIFBhcmVudCBzY29wZSwgaWYgYW55Lg0KICAgIHRoaXMucHJldiA9IHByZXY7DQogICAgdGhpcy5pbmZvID0gaW5mbzsNCiAgfQ0KDQogIC8vIFBIUCBpbmRlbnRhdGlvbiBydWxlcw0KICBmdW5jdGlvbiBpbmRlbnRQSFAobGV4aWNhbCkgew0KICAgIHJldHVybiBmdW5jdGlvbihmaXJzdENoYXJzKSB7DQogICAgICB2YXIgZmlyc3RDaGFyID0gZmlyc3RDaGFycyAmJiBmaXJzdENoYXJzLmNoYXJBdCgwKSwgdHlwZSA9IGxleGljYWwudHlwZTsNCiAgICAgIHZhciBjbG9zaW5nID0gZmlyc3RDaGFyID09IHR5cGU7DQogICAgICBpZiAodHlwZSA9PSAiZm9ybSIgJiYgZmlyc3RDaGFyID09ICJ7IikNCiAgICAgICAgcmV0dXJuIGxleGljYWwuaW5kZW50ZWQ7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJzdGF0IiB8fCB0eXBlID09ICJmb3JtIikNCiAgICAgICAgcmV0dXJuIGxleGljYWwuaW5kZW50ZWQgKyBpbmRlbnRVbml0Ow0KICAgICAgZWxzZSBpZiAobGV4aWNhbC5pbmZvID09ICJzd2l0Y2giICYmICFjbG9zaW5nKQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArICgvXig/OmNhc2V8ZGVmYXVsdClcYi8udGVzdChmaXJzdENoYXJzKSA/IGluZGVudFVuaXQgOiAyICogaW5kZW50VW5pdCk7DQogICAgICBlbHNlIGlmIChsZXhpY2FsLmFsaWduKQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5jb2x1bW4gLSAoY2xvc2luZyA/IDEgOiAwKTsNCiAgICAgIGVsc2UNCiAgICAgICAgcmV0dXJuIGxleGljYWwuaW5kZW50ZWQgKyAoY2xvc2luZyA/IDAgOiBpbmRlbnRVbml0KTsNCiAgICB9Ow0KICB9DQoNCiAgLy8gVGhlIHBhcnNlci1pdGVyYXRvci1wcm9kdWNpbmcgZnVuY3Rpb24gaXRzZWxmLg0KICBmdW5jdGlvbiBwYXJzZVBIUChpbnB1dCwgYmFzZWNvbHVtbikgew0KICAgIC8vIFdyYXAgdGhlIGlucHV0IGluIGEgdG9rZW4gc3RyZWFtDQogICAgdmFyIHRva2VucyA9IHRva2VuaXplUEhQKGlucHV0KTsNCiAgICAvLyBUaGUgcGFyc2VyIHN0YXRlLiBjYyBpcyBhIHN0YWNrIG9mIGFjdGlvbnMgdGhhdCBoYXZlIHRvIGJlDQogICAgLy8gcGVyZm9ybWVkIHRvIGZpbmlzaCB0aGUgY3VycmVudCBzdGF0ZW1lbnQuIEZvciBleGFtcGxlIHdlIG1pZ2h0DQogICAgLy8ga25vdyB0aGF0IHdlIHN0aWxsIG5lZWQgdG8gZmluZCBhIGNsb3NpbmcgcGFyZW50aGVzaXMgYW5kIGENCiAgICAvLyBzZW1pY29sb24uIEFjdGlvbnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RhY2sgZ28gZmlyc3QuIEl0IGlzDQogICAgLy8gaW5pdGlhbGl6ZWQgd2l0aCBhbiBpbmZpbml0ZWx5IGxvb3BpbmcgYWN0aW9uIHRoYXQgY29uc3VtZXMNCiAgICAvLyB3aG9sZSBzdGF0ZW1lbnRzLg0KICAgIHZhciBjYyA9IFtzdGF0ZW1lbnRzXTsNCiAgICAvLyBUaGUgbGV4aWNhbCBzY29wZSwgdXNlZCBtb3N0bHkgZm9yIGluZGVudGF0aW9uLg0KICAgIHZhciBsZXhpY2FsID0gbmV3IFBIUExleGljYWwoKGJhc2Vjb2x1bW4gfHwgMCkgLSBpbmRlbnRVbml0LCAwLCAiYmxvY2siLCBmYWxzZSk7DQogICAgLy8gQ3VycmVudCBjb2x1bW4sIGFuZCB0aGUgaW5kZW50YXRpb24gYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50DQogICAgLy8gbGluZS4gVXNlZCB0byBjcmVhdGUgbGV4aWNhbCBzY29wZSBvYmplY3RzLg0KICAgIHZhciBjb2x1bW4gPSAwOw0KICAgIHZhciBpbmRlbnRlZCA9IDA7DQogICAgLy8gVmFyaWFibGVzIHdoaWNoIGFyZSB1c2VkIGJ5IHRoZSBtYXJrLCBjb250LCBhbmQgcGFzcyBmdW5jdGlvbnMNCiAgICAvLyBiZWxvdyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBkcml2ZXIgbG9vcCBpbiB0aGUgJ25leHQnIGZ1bmN0aW9uLg0KICAgIHZhciBjb25zdW1lLCBtYXJrZWQ7DQoNCiAgICAvLyBUaGUgaXRlcmF0b3Igb2JqZWN0Lg0KICAgIHZhciBwYXJzZXIgPSB7bmV4dDogbmV4dCwgY29weTogY29weX07DQoNCiAgICAvLyBwYXJzaW5nIGlzIGFjY29tcGxpc2hlZCBieSBjYWxsaW5nIG5leHQoKSByZXBlYXRlZGx5DQogICAgZnVuY3Rpb24gbmV4dCgpew0KICAgICAgLy8gU3RhcnQgYnkgcGVyZm9ybWluZyBhbnkgJ2xleGljYWwnIGFjdGlvbnMgKGFkanVzdGluZyB0aGUNCiAgICAgIC8vIGxleGljYWwgdmFyaWFibGUpLCBvciB0aGUgb3BlcmF0aW9ucyBiZWxvdyB3aWxsIGJlIHdvcmtpbmcNCiAgICAgIC8vIHdpdGggdGhlIHdyb25nIGxleGljYWwgc3RhdGUuDQogICAgICB3aGlsZShjY1tjYy5sZW5ndGggLSAxXS5sZXgpDQogICAgICAgIGNjLnBvcCgpKCk7DQoNCiAgICAgIC8vIEZldGNoIHRoZSBuZXh0IHRva2VuLg0KICAgICAgdmFyIHRva2VuID0gdG9rZW5zLm5leHQoKTsNCg0KICAgICAgLy8gQWRqdXN0IGNvbHVtbiBhbmQgaW5kZW50ZWQuDQogICAgICBpZiAodG9rZW4udHlwZSA9PSAid2hpdGVzcGFjZSIgJiYgY29sdW1uID09IDApDQogICAgICAgIGluZGVudGVkID0gdG9rZW4udmFsdWUubGVuZ3RoOw0KICAgICAgY29sdW1uICs9IHRva2VuLnZhbHVlLmxlbmd0aDsNCiAgICAgIGlmICh0b2tlbi5jb250ZW50ID09ICJcbiIpew0KICAgICAgICBpbmRlbnRlZCA9IGNvbHVtbiA9IDA7DQogICAgICAgIC8vIElmIHRoZSBsZXhpY2FsIHNjb3BlJ3MgYWxpZ24gcHJvcGVydHkgaXMgc3RpbGwgdW5kZWZpbmVkIGF0DQogICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGxpbmUsIGl0IGlzIGFuIHVuLWFsaWduZWQgc2NvcGUuDQogICAgICAgIGlmICghKCJhbGlnbiIgaW4gbGV4aWNhbCkpDQogICAgICAgICAgbGV4aWNhbC5hbGlnbiA9IGZhbHNlOw0KICAgICAgICAvLyBOZXdsaW5lIHRva2VucyBnZXQgYW4gaW5kZW50YXRpb24gZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoDQogICAgICAgIC8vIHRoZW0uDQogICAgICAgIHRva2VuLmluZGVudGF0aW9uID0gaW5kZW50UEhQKGxleGljYWwpOw0KICAgICAgfQ0KICAgICAgLy8gTm8gbW9yZSBwcm9jZXNzaW5nIGZvciBtZWFuaW5nbGVzcyB0b2tlbnMuDQogICAgICBpZiAodG9rZW4udHlwZSA9PSAid2hpdGVzcGFjZSIgfHwgdG9rZW4udHlwZSA9PSAiY29tbWVudCINCiAgICAgICAgfHwgdG9rZW4udHlwZSA9PSAic3RyaW5nX25vdF90ZXJtaW5hdGVkIiApDQogICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgIC8vIFdoZW4gYSBtZWFuaW5nZnVsIHRva2VuIGlzIGZvdW5kIGFuZCB0aGUgbGV4aWNhbCBzY29wZSdzDQogICAgICAvLyBhbGlnbiBpcyB1bmRlZmluZWQsIGl0IGlzIGFuIGFsaWduZWQgc2NvcGUuDQogICAgICBpZiAoISgiYWxpZ24iIGluIGxleGljYWwpKQ0KICAgICAgICBsZXhpY2FsLmFsaWduID0gdHJ1ZTsNCg0KICAgICAgLy8gRXhlY3V0ZSBhY3Rpb25zIHVudGlsIG9uZSAnY29uc3VtZXMnIHRoZSB0b2tlbiBhbmQgd2UgY2FuDQogICAgICAvLyByZXR1cm4gaXQuICdtYXJrZWQnIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBzdHlsZSBvZiB0aGUgY3VycmVudCB0b2tlbi4NCiAgICAgIHdoaWxlKHRydWUpIHsNCiAgICAgICAgY29uc3VtZSA9IG1hcmtlZCA9IGZhbHNlOw0KICAgICAgICAvLyBUYWtlIGFuZCBleGVjdXRlIHRoZSB0b3Btb3N0IGFjdGlvbi4NCiAgICAgICAgdmFyIGFjdGlvbiA9IGNjLnBvcCgpOw0KICAgICAgICBhY3Rpb24odG9rZW4pOw0KDQogICAgICAgIGlmIChjb25zdW1lKXsNCiAgICAgICAgICBpZiAobWFya2VkKQ0KICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSBtYXJrZWQ7DQogICAgICAgICAgLy8gSGVyZSB3ZSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbG9jYWwgYW5kIGdsb2JhbCB2YXJpYWJsZXMuDQogICAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgICB9DQogICAgICB9DQogICAgICByZXR1cm4gMTsgLy8gRmlyZWJ1ZyB3b3JrYXJvdW5kIGZvciBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZmJ1Zy9pc3N1ZXMvZGV0YWlsP2lkPTEyMzkjYzENCiAgICB9DQoNCiAgICAvLyBUaGlzIG1ha2VzIGEgY29weSBvZiB0aGUgcGFyc2VyIHN0YXRlLiBJdCBzdG9yZXMgYWxsIHRoZQ0KICAgIC8vIHN0YXRlZnVsIHZhcmlhYmxlcyBpbiBhIGNsb3N1cmUsIGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdA0KICAgIC8vIHdpbGwgcmVzdG9yZSB0aGVtIHdoZW4gY2FsbGVkIHdpdGggYSBuZXcgaW5wdXQgc3RyZWFtLiBOb3RlDQogICAgLy8gdGhhdCB0aGUgY2MgYXJyYXkgaGFzIHRvIGJlIGNvcGllZCwgYmVjYXVzZSBpdCBpcyBjb250YW50bHkNCiAgICAvLyBiZWluZyBtb2RpZmllZC4gTGV4aWNhbCBvYmplY3RzIGFyZSBub3QgbXV0YXRlZCwgc28gdGhleSBjYW4NCiAgICAvLyBiZSBzaGFyZWQgYmV0d2VlbiBydW5zIG9mIHRoZSBwYXJzZXIuDQogICAgZnVuY3Rpb24gY29weSgpew0KICAgICAgdmFyIF9sZXhpY2FsID0gbGV4aWNhbCwgX2NjID0gY2MuY29uY2F0KFtdKSwgX3Rva2VuU3RhdGUgPSB0b2tlbnMuc3RhdGU7DQoNCiAgICAgIHJldHVybiBmdW5jdGlvbiBjb3B5UGFyc2VyKGlucHV0KXsNCiAgICAgICAgbGV4aWNhbCA9IF9sZXhpY2FsOw0KICAgICAgICBjYyA9IF9jYy5jb25jYXQoW10pOyAvLyBjb3BpZXMgdGhlIGFycmF5DQogICAgICAgIGNvbHVtbiA9IGluZGVudGVkID0gMDsNCiAgICAgICAgdG9rZW5zID0gdG9rZW5pemVQSFAoaW5wdXQsIF90b2tlblN0YXRlKTsNCiAgICAgICAgcmV0dXJuIHBhcnNlcjsNCiAgICAgIH07DQogICAgfQ0KDQogICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBwdXNoaW5nIGEgbnVtYmVyIG9mIGFjdGlvbnMgb250byB0aGUgY2MNCiAgICAvLyBzdGFjayBpbiByZXZlcnNlIG9yZGVyLg0KICAgIGZ1bmN0aW9uIHB1c2goZnMpew0KICAgICAgZm9yICh2YXIgaSA9IGZzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKQ0KICAgICAgICBjYy5wdXNoKGZzW2ldKTsNCiAgICB9DQogICAgLy8gY29udCBhbmQgcGFzcyBhcmUgdXNlZCBieSB0aGUgYWN0aW9uIGZ1bmN0aW9ucyB0byBhZGQgb3RoZXINCiAgICAvLyBhY3Rpb25zIHRvIHRoZSBzdGFjay4gY29udCB3aWxsIGNhdXNlIHRoZSBjdXJyZW50IHRva2VuIHRvIGJlDQogICAgLy8gY29uc3VtZWQsIHBhc3Mgd2lsbCBsZWF2ZSBpdCBmb3IgdGhlIG5leHQgYWN0aW9uLg0KICAgIGZ1bmN0aW9uIGNvbnQoKXsNCiAgICAgIHB1c2goYXJndW1lbnRzKTsNCiAgICAgIGNvbnN1bWUgPSB0cnVlOw0KICAgIH0NCiAgICBmdW5jdGlvbiBwYXNzKCl7DQogICAgICBwdXNoKGFyZ3VtZW50cyk7DQogICAgICBjb25zdW1lID0gZmFsc2U7DQogICAgfQ0KICAgIC8vIFVzZWQgdG8gY2hhbmdlIHRoZSBzdHlsZSBvZiB0aGUgY3VycmVudCB0b2tlbi4NCiAgICBmdW5jdGlvbiBtYXJrKHN0eWxlKXsNCiAgICAgIG1hcmtlZCA9IHN0eWxlOw0KICAgIH0NCiAgICAvLyBBZGQgYSBseWVyIG9mIHN0eWxlIHRvIHRoZSBjdXJyZW50IHRva2VuLCBmb3IgZXhhbXBsZSBzeW50YXgtZXJyb3INCiAgICBmdW5jdGlvbiBtYXJrX2FkZChzdHlsZSl7DQogICAgICBtYXJrZWQgPSBtYXJrZWQgKyAnICcgKyBzdHlsZTsNCiAgICB9DQoNCiAgICAvLyBQdXNoIGEgbmV3IGxleGljYWwgY29udGV4dCBvZiB0aGUgZ2l2ZW4gdHlwZS4NCiAgICBmdW5jdGlvbiBwdXNobGV4KHR5cGUsIGluZm8pIHsNCiAgICAgIHZhciByZXN1bHQgPSBmdW5jdGlvbiBwdXNobGV4aW5nKCkgew0KICAgICAgICBsZXhpY2FsID0gbmV3IFBIUExleGljYWwoaW5kZW50ZWQsIGNvbHVtbiwgdHlwZSwgbnVsbCwgbGV4aWNhbCwgaW5mbykNCiAgICAgIH07DQogICAgICByZXN1bHQubGV4ID0gdHJ1ZTsNCiAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfQ0KICAgIC8vIFBvcCBvZmYgdGhlIGN1cnJlbnQgbGV4aWNhbCBjb250ZXh0Lg0KICAgIGZ1bmN0aW9uIHBvcGxleCgpew0KICAgICAgaWYgKGxleGljYWwucHJldikNCiAgICAgICAgbGV4aWNhbCA9IGxleGljYWwucHJldjsNCiAgICB9DQogICAgcG9wbGV4LmxleCA9IHRydWU7DQogICAgLy8gVGhlICdsZXgnIGZsYWcgb24gdGhlc2UgYWN0aW9ucyBpcyB1c2VkIGJ5IHRoZSAnbmV4dCcgZnVuY3Rpb24NCiAgICAvLyB0byBrbm93IHRoZXkgY2FuIChhbmQgaGF2ZSB0bykgYmUgcmFuIGJlZm9yZSBtb3Zpbmcgb24gdG8gdGhlDQogICAgLy8gbmV4dCB0b2tlbi4NCg0KICAgIC8vIENyZWF0ZXMgYW4gYWN0aW9uIHRoYXQgZGlzY2FyZHMgdG9rZW5zIHVudGlsIGl0IGZpbmRzIG9uZSBvZg0KICAgIC8vIHRoZSBnaXZlbiB0eXBlLiBUaGlzIHdpbGwgaWdub3JlIChhbmQgcmVjb3ZlciBmcm9tKSBzeW50YXggZXJyb3JzLg0KICAgIGZ1bmN0aW9uIGV4cGVjdCh3YW50ZWQpew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4cGVjdGluZyh0b2tlbil7DQogICAgICAgIGlmICh0b2tlbi50eXBlID09IHdhbnRlZCkgY29udCgpOyAgLy8gY29uc3VtZSB0aGUgdG9rZW4NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgY29udChhcmd1bWVudHMuY2FsbGVlKTsgIC8vIGNvbnRpbnVlIGV4cGVjdGluZygpIC0gY2FsbCBpdHNlbGYNCiAgICAgICAgfQ0KICAgICAgfTsNCiAgICB9DQoNCiAgICAvLyBSZXF1aXJlIGEgc3BlY2lmaWMgdG9rZW4gdHlwZSwgb3Igb25lIG9mIHRoZSB0b2tlbnMgcGFzc2VkIGluIHRoZSAnd2FudGVkJyBhcnJheQ0KICAgIC8vIFVzZWQgdG8gZGV0ZWN0IGJsYXRhbnQgc3ludGF4IGVycm9ycy4gJ2V4ZWN1dGUnIGlzIHVzZWQgdG8gcGFzcyBleHRyYSBjb2RlDQogICAgLy8gdG8gYmUgZXhlY3V0ZWQgaWYgdGhlIHRva2VuIGlzIG1hdGNoZWQuIEZvciBleGFtcGxlLCBhICcoJyBtYXRjaCBjb3VsZA0KICAgIC8vICdleGVjdXRlJyBhIGNvbnQoIGNvbXBhc2VwKGZ1bmNhcmcpLCByZXF1aXJlKCIpIikgKQ0KICAgIGZ1bmN0aW9uIHJlcXVpcmUod2FudGVkLCBleGVjdXRlKXsNCiAgICAgIHJldHVybiBmdW5jdGlvbiByZXF1aXJpbmcodG9rZW4pew0KICAgICAgICB2YXIgb2s7DQogICAgICAgIHZhciB0eXBlID0gdG9rZW4udHlwZTsNCiAgICAgICAgaWYgKHR5cGVvZih3YW50ZWQpID09ICJzdHJpbmciKQ0KICAgICAgICAgIG9rID0gKHR5cGUgPT0gd2FudGVkKSAtMTsNCiAgICAgICAgZWxzZQ0KICAgICAgICAgIG9rID0gd2FudGVkLmluZGV4T2YodHlwZSk7DQogICAgICAgIGlmIChvayA+PSAwKSB7DQogICAgICAgICAgaWYgKGV4ZWN1dGUgJiYgdHlwZW9mKGV4ZWN1dGVbb2tdKSA9PSAiZnVuY3Rpb24iKSBwYXNzKGV4ZWN1dGVbb2tdKTsNCiAgICAgICAgICBlbHNlIGNvbnQoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICBpZiAoIW1hcmtlZCkgbWFyayh0b2tlbi5zdHlsZSk7DQogICAgICAgICAgbWFya19hZGQoInN5bnRheC1lcnJvciIpOw0KICAgICAgICAgIGNvbnQoYXJndW1lbnRzLmNhbGxlZSk7DQogICAgICAgIH0NCiAgICAgIH07DQogICAgfQ0KDQogICAgLy8gTG9va3MgZm9yIGEgc3RhdGVtZW50LCBhbmQgdGhlbiBjYWxscyBpdHNlbGYuDQogICAgZnVuY3Rpb24gc3RhdGVtZW50cyh0b2tlbil7DQogICAgICByZXR1cm4gcGFzcyhzdGF0ZW1lbnQsIHN0YXRlbWVudHMpOw0KICAgIH0NCiAgICAvLyBEaXNwYXRjaGVzIHZhcmlvdXMgdHlwZXMgb2Ygc3RhdGVtZW50cyBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0aGUgY3VycmVudCB0b2tlbi4NCiAgICBmdW5jdGlvbiBzdGF0ZW1lbnQodG9rZW4pew0KICAgICAgdmFyIHR5cGUgPSB0b2tlbi50eXBlOw0KICAgICAgaWYgKHR5cGUgPT0gImtleXdvcmQgYSIpIGNvbnQocHVzaGxleCgiZm9ybSIpLCBleHByZXNzaW9uLCBhbHRzeW50YXgsIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImtleXdvcmQgYiIpIGNvbnQocHVzaGxleCgiZm9ybSIpLCBhbHRzeW50YXgsIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInsiKSBjb250KHB1c2hsZXgoIn0iKSwgYmxvY2ssIHBvcGxleCk7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJmdW5jdGlvbiIpIGZ1bmNkZWYoKTsNCiAgICAgIC8vIHRlY2huaWNhbGx5LCAiY2xhc3MgaW1wbG9kZSB7Li4ufSIgaXMgY29ycmVjdCwgYnV0IHdlJ2xsIGZsYWcgdGhhdCBhcyBhbiBlcnJvciBiZWNhdXNlIGl0IG92ZXJyaWRlcyBhIHByZWRlZmluZWQgZnVuY3Rpb24NCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImNsYXNzIikgY2xhc3NkZWYoKTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImZvcmVhY2giKSBjb250KHB1c2hsZXgoImZvcm0iKSwgcmVxdWlyZSgiKCIpLCBwdXNobGV4KCIpIiksIGV4cHJlc3Npb24sIHJlcXVpcmUoImFzIiksIHJlcXVpcmUoInZhcmlhYmxlIiksIC8qID0+ICR2YWx1ZSAqLyBleHBlY3QoIikiKSwgYWx0c3ludGF4LCBwb3BsZXgsIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImZvciIpIGNvbnQocHVzaGxleCgiZm9ybSIpLCByZXF1aXJlKCIoIiksIHB1c2hsZXgoIikiKSwgZXhwcmVzc2lvbiwgcmVxdWlyZSgiOyIpLCBleHByZXNzaW9uLCByZXF1aXJlKCI7IiksIGV4cHJlc3Npb24sIHJlcXVpcmUoIikiKSwgYWx0c3ludGF4LCBwb3BsZXgsIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIC8vIHB1YmxpYyBmaW5hbCBmdW5jdGlvbiBmb28oKSwgcHJvdGVjdGVkIHN0YXRpYyAkYmFyOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAibW9kaWZpZXIiKSBjb250KHJlcXVpcmUoWyJtb2RpZmllciIsICJ2YXJpYWJsZSIsICJmdW5jdGlvbiIsICJhYnN0cmFjdCJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW251bGwsIGNvbW1hc2VwKHJlcXVpcmUoInZhcmlhYmxlIikpLCBmdW5jZGVmLCBhYnNmdW5dKSk7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJhYnN0cmFjdCIpIGFicygpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAic3dpdGNoIikgY29udChwdXNobGV4KCJmb3JtIiksIHJlcXVpcmUoIigiKSwgZXhwcmVzc2lvbiwgcmVxdWlyZSgiKSIpLCBwdXNobGV4KCJ9IiwgInN3aXRjaCIpLCByZXF1aXJlKFsiOiIsICJ7Il0pLCBibG9jaywgcG9wbGV4LCBwb3BsZXgpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiY2FzZSIpIGNvbnQoZXhwcmVzc2lvbiwgcmVxdWlyZSgiOiIpKTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImRlZmF1bHQiKSBjb250KHJlcXVpcmUoIjoiKSk7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJjYXRjaCIpIGNvbnQocHVzaGxleCgiZm9ybSIpLCByZXF1aXJlKCIoIiksIHJlcXVpcmUoInRfc3RyaW5nIiksIHJlcXVpcmUoInZhcmlhYmxlIiksIHJlcXVpcmUoIikiKSwgc3RhdGVtZW50LCBwb3BsZXgpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiY29uc3QiKSBjb250KHJlcXVpcmUoInRfc3RyaW5nIikpOyAgLy8gJ2NvbnN0IHN0YXRpYyB4PTUnIGlzIGEgc3ludGF4IGVycm9yDQogICAgICAvLyB0ZWNobmljYWxseSwgIm5hbWVzcGFjZSBpbXBsb2RlIHsuLi59IiBpcyBjb3JyZWN0LCBidXQgd2UnbGwgZmxhZyB0aGF0IGFzIGFuIGVycm9yIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIGEgcHJlZGVmaW5lZCBmdW5jdGlvbg0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAibmFtZXNwYWNlIikgY29udChuYW1lc3BhY2VkZWYsIHJlcXVpcmUoIjsiKSk7DQogICAgICAvLyAkdmFyaWFibGVzIG1heSBiZSBmb2xsb3dlZCBieSBvcGVyYXRvcnMsICgpIGZvciB2YXJpYWJsZSBmdW5jdGlvbiBjYWxscywgb3IgW10gc3Vic2NyaXB0cw0KICAgICAgZWxzZSBwYXNzKHB1c2hsZXgoInN0YXQiKSwgZXhwcmVzc2lvbiwgcmVxdWlyZSgiOyIpLCBwb3BsZXgpOw0KICAgIH0NCiAgICAvLyBEaXNwYXRjaCBleHByZXNzaW9uIHR5cGVzLg0KICAgIGZ1bmN0aW9uIGV4cHJlc3Npb24odG9rZW4pew0KICAgICAgdmFyIHR5cGUgPSB0b2tlbi50eXBlOw0KICAgICAgaWYgKGF0b21pY1R5cGVzLmhhc093blByb3BlcnR5KHR5cGUpKSBjb250KG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiPDw8IikgY29udChyZXF1aXJlKCJzdHJpbmciKSwgbWF5YmVvcGVyYXRvcik7ICAvLyBoZXJlZG9jL25vd2RvYw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAidF9zdHJpbmciKSBjb250KG1heWJlX2RvdWJsZV9jb2xvbiwgbWF5YmVvcGVyYXRvcik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJrZXl3b3JkIGMiIHx8IHR5cGUgPT0gIm9wZXJhdG9yIikgY29udChleHByZXNzaW9uKTsNCiAgICAgIC8vIGxhbWJkYQ0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiZnVuY3Rpb24iKSBsYW1iZGFkZWYoKTsNCiAgICAgIC8vIGZ1bmN0aW9uIGNhbGwgb3IgcGFyZW50aGVzaXplZCBleHByZXNzaW9uOiAkYSA9ICgkYiArIDEpICogMjsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gIigiKSBjb250KHB1c2hsZXgoIikiKSwgY29tbWFzZXAoZXhwcmVzc2lvbiksIHJlcXVpcmUoIikiKSwgcG9wbGV4LCBtYXliZW9wZXJhdG9yKTsNCiAgICB9DQogICAgLy8gQ2FsbGVkIGZvciBwbGFjZXMgd2hlcmUgb3BlcmF0b3JzLCBmdW5jdGlvbiBjYWxscywgb3Igc3Vic2NyaXB0cyBhcmUNCiAgICAvLyB2YWxpZC4gV2lsbCBza2lwIG9uIHRvIHRoZSBuZXh0IGFjdGlvbiBpZiBub25lIGlzIGZvdW5kLg0KICAgIGZ1bmN0aW9uIG1heWJlb3BlcmF0b3IodG9rZW4pew0KICAgICAgdmFyIHR5cGUgPSB0b2tlbi50eXBlOw0KICAgICAgaWYgKHR5cGUgPT0gIm9wZXJhdG9yIikgew0KICAgICAgICBpZiAodG9rZW4uY29udGVudCA9PSAiPyIpIGNvbnQoZXhwcmVzc2lvbiwgcmVxdWlyZSgiOiIpLCBleHByZXNzaW9uKTsgIC8vIHRlcm5hcnkgb3BlcmF0b3INCiAgICAgICAgZWxzZSBjb250KGV4cHJlc3Npb24pOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiKCIpIGNvbnQocHVzaGxleCgiKSIpLCBleHByZXNzaW9uLCBjb21tYXNlcChleHByZXNzaW9uKSwgcmVxdWlyZSgiKSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IgLyogJHZhcmZ1bmMoKSArIDMgKi8pOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiWyIpIGNvbnQocHVzaGxleCgiXSIpLCBleHByZXNzaW9uLCByZXF1aXJlKCJdIiksIG1heWJlb3BlcmF0b3IgLyogZm9yIG11bHRpZGltZW5zaW9uYWwgYXJyYXlzLCBvciAkZnVuY1skaV0oKSAqLywgcG9wbGV4KTsNCiAgICB9DQogICAgLy8gQSByZWd1bGFyIHVzZSBvZiB0aGUgZG91YmxlIGNvbG9uIHRvIHNwZWNpZnkgYSBjbGFzcywgYXMgaW4gc2VsZjo6ZnVuYygpIG9yIG15Y2xhc3M6OiR2YXI7DQogICAgLy8gRGlmZmVycyBmcm9tIGBuYW1lc3BhY2VgIG9yIGB1c2VgIGluIHRoYXQgb25seSBvbmUgY2xhc3MgY2FuIGJlIHRoZSBwYXJlbnQ7IGNoYWlucyAoQTo6Qjo6JHZhcikgYXJlIGEgc3ludGF4IGVycm9yLg0KICAgIGZ1bmN0aW9uIG1heWJlX2RvdWJsZV9jb2xvbih0b2tlbikgew0KICAgICAgaWYgKHRva2VuLnR5cGUgPT0gInRfZG91YmxlX2NvbG9uIikNCiAgICAgICAgLy8gQTo6JHZhciwgQTo6ZnVuYygpLCBBOjpjb25zdA0KICAgICAgICBjb250KHJlcXVpcmUoWyJ0X3N0cmluZyIsICJ2YXJpYWJsZSJdKSwgbWF5YmVvcGVyYXRvcik7DQogICAgICBlbHNlIHsNCiAgICAgICAgLy8gYSB0X3N0cmluZyB3YXNuJ3QgZm9sbG93ZWQgYnkgOjosIHN1Y2ggYXMgaW4gYSBmdW5jdGlvbiBjYWxsOiBmb28oKQ0KICAgICAgICBwYXNzKGV4cHJlc3Npb24pDQogICAgICB9DQogICAgfQ0KICAgIC8vIHRoZSBkZWNsYXJhdGlvbiBvciBkZWZpbml0aW9uIG9mIGEgZnVuY3Rpb24NCiAgICBmdW5jdGlvbiBmdW5jZGVmKCkgew0KICAgICAgY29udChyZXF1aXJlKCJ0X3N0cmluZyIpLCByZXF1aXJlKCIoIiksIHB1c2hsZXgoIikiKSwgY29tbWFzZXAoZnVuY2FyZyksIHJlcXVpcmUoIikiKSwgcG9wbGV4LCBibG9jayk7DQogICAgfQ0KICAgIC8vIHRoZSBkZWNsYXJhdGlvbiBvciBkZWZpbml0aW9uIG9mIGEgbGFtYmRhDQogICAgZnVuY3Rpb24gbGFtYmRhZGVmKCkgew0KICAgICAgY29udChyZXF1aXJlKCIoIiksIHB1c2hsZXgoIikiKSwgY29tbWFzZXAoZnVuY2FyZyksIHJlcXVpcmUoIikiKSwgbWF5YmVfbGFtYmRhX3VzZSwgcG9wbGV4LCByZXF1aXJlKCJ7IiksIHB1c2hsZXgoIn0iKSwgYmxvY2ssIHBvcGxleCk7DQogICAgfQ0KICAgIC8vIG9wdGlvbmFsIGxhbWJkYSAndXNlJyBzdGF0ZW1lbnQNCiAgICBmdW5jdGlvbiBtYXliZV9sYW1iZGFfdXNlKHRva2VuKSB7DQogICAgICBpZih0b2tlbi50eXBlID09ICJuYW1lc3BhY2UiKSB7DQogICAgICAgIGNvbnQocmVxdWlyZSgnKCcpLCBjb21tYXNlcChmdW5jYXJnKSwgcmVxdWlyZSgnKScpKTsNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICBwYXNzKGV4cHJlc3Npb24pOw0KICAgICAgfQ0KICAgIH0NCiAgICAvLyB0aGUgZGVmaW5pdGlvbiBvZiBhIGNsYXNzDQogICAgZnVuY3Rpb24gY2xhc3NkZWYoKSB7DQogICAgICBjb250KHJlcXVpcmUoInRfc3RyaW5nIiksIGV4cGVjdCgieyIpLCBwdXNobGV4KCJ9IiksIGJsb2NrLCBwb3BsZXgpOw0KICAgIH0NCiAgICAvLyBlaXRoZXIgZnVuY2RlZiBpZiB0aGUgY3VycmVudCB0b2tlbiBpcyAiZnVuY3Rpb24iLCBvciB0aGUga2V5d29yZCAiZnVuY3Rpb24iICsgZnVuY2RlZg0KICAgIGZ1bmN0aW9uIGFic2Z1bih0b2tlbikgew0KICAgICAgaWYodG9rZW4udHlwZSA9PSAiZnVuY3Rpb24iKSBmdW5jZGVmKCk7DQogICAgICBlbHNlIGNvbnQocmVxdWlyZShbImZ1bmN0aW9uIl0sIFtmdW5jZGVmXSkpOw0KICAgIH0NCiAgICAvLyB0aGUgYWJzdHJhY3QgY2xhc3Mgb3IgZnVuY3Rpb24gKHdpdGggb3B0aW9uYWwgbW9kaWZpZXIpDQogICAgZnVuY3Rpb24gYWJzKHRva2VuKSB7DQogICAgICBjb250KHJlcXVpcmUoWyJtb2RpZmllciIsICJmdW5jdGlvbiIsICJjbGFzcyJdLCBbYWJzZnVuLCBmdW5jZGVmLCBjbGFzc2RlZl0pKTsNCiAgICB9DQogICAgLy8gUGFyc2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIHRoaW5ncyB0aGF0IGFyZSByZWNvZ25pemVkDQogICAgLy8gYnkgdGhlICd3aGF0JyBhcmd1bWVudC4NCiAgICBmdW5jdGlvbiBjb21tYXNlcCh3aGF0KXsNCiAgICAgIGZ1bmN0aW9uIHByb2NlZWQodG9rZW4pIHsNCiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT0gIiwiKSBjb250KHdoYXQsIHByb2NlZWQpOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGNvbW1hU2VwYXJhdGVkKCkgew0KICAgICAgICBwYXNzKHdoYXQsIHByb2NlZWQpOw0KICAgICAgfTsNCiAgICB9DQogICAgLy8gTG9vayBmb3Igc3RhdGVtZW50cyB1bnRpbCBhIGNsb3NpbmcgYnJhY2UgaXMgZm91bmQuDQogICAgZnVuY3Rpb24gYmxvY2sodG9rZW4pIHsNCiAgICAgIGlmICh0b2tlbi50eXBlID09ICJ9IikgY29udCgpOw0KICAgICAgZWxzZSBwYXNzKHN0YXRlbWVudCwgYmxvY2spOw0KICAgIH0NCiAgICBmdW5jdGlvbiBlbXB0eV9wYXJlbnNfaWZfYXJyYXkodG9rZW4pIHsNCiAgICAgIGlmKHRva2VuLmNvbnRlbnQgPT0gImFycmF5IikNCiAgICAgICAgY29udChyZXF1aXJlKCIoIiksIHJlcXVpcmUoIikiKSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIG1heWJlZGVmYXVsdHBhcmFtZXRlcih0b2tlbil7DQogICAgICBpZiAodG9rZW4uY29udGVudCA9PSAiPSIpIGNvbnQocmVxdWlyZShbInRfc3RyaW5nIiwgInN0cmluZyIsICJudW1iZXIiLCAiYXRvbSJdLCBbZW1wdHlfcGFyZW5zX2lmX2FycmF5LCBudWxsLCBudWxsXSkpOw0KICAgIH0NCiAgICBmdW5jdGlvbiB2YXJfb3JfcmVmZXJlbmNlKHRva2VuKSB7DQogICAgICBpZih0b2tlbi50eXBlID09ICJ2YXJpYWJsZSIpIGNvbnQobWF5YmVkZWZhdWx0cGFyYW1ldGVyKTsNCiAgICAgIGVsc2UgaWYodG9rZW4uY29udGVudCA9PSAiJiIpIGNvbnQocmVxdWlyZSgidmFyaWFibGUiKSwgbWF5YmVkZWZhdWx0cGFyYW1ldGVyKTsNCiAgICB9DQogICAgLy8gc3VwcG9ydCBmb3IgZGVmYXVsdCBhcmd1bWVudHM6IGh0dHA6Ly91cy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMuYXJndW1lbnRzLnBocCNmdW5jdGlvbnMuYXJndW1lbnRzLmRlZmF1bHQNCiAgICBmdW5jdGlvbiBmdW5jYXJnKHRva2VuKXsNCiAgICAgIC8vIGZ1bmN0aW9uIGZvbyhteWNsYXNzICRvYmopIHsuLi59IG9yIGZ1bmN0aW9uIGZvbyhteWNsYXNzICZvYmpyZWYpIHsuLi59DQogICAgICBpZiAodG9rZW4udHlwZSA9PSAidF9zdHJpbmciKSBjb250KHZhcl9vcl9yZWZlcmVuY2UpOw0KICAgICAgLy8gZnVuY3Rpb24gZm9vKCR2YXIpIHsuLi59IG9yIGZ1bmN0aW9uIGZvbygmJHJlZikgey4uLn0NCiAgICAgIGVsc2UgdmFyX29yX3JlZmVyZW5jZSh0b2tlbik7DQogICAgfQ0KDQogICAgLy8gQSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBvciB1c2UNCiAgICBmdW5jdGlvbiBtYXliZV9kb3VibGVfY29sb25fZGVmKHRva2VuKSB7DQogICAgICBpZiAodG9rZW4udHlwZSA9PSAidF9kb3VibGVfY29sb24iKQ0KICAgICAgICBjb250KG5hbWVzcGFjZWRlZik7DQogICAgfQ0KICAgIGZ1bmN0aW9uIG5hbWVzcGFjZWRlZih0b2tlbikgew0KICAgICAgcGFzcyhyZXF1aXJlKCJ0X3N0cmluZyIpLCBtYXliZV9kb3VibGVfY29sb25fZGVmKTsNCiAgICB9DQogICAgDQogICAgZnVuY3Rpb24gYWx0c3ludGF4KHRva2VuKXsNCiAgICAJaWYodG9rZW4uY29udGVudD09JzonKQ0KICAgIAkJY29udChhbHRzeW50YXhCbG9jayxwb3BsZXgpOw0KICAgIH0NCiAgICANCiAgICBmdW5jdGlvbiBhbHRzeW50YXhCbG9jayh0b2tlbil7DQogICAgCWlmICh0b2tlbi50eXBlID09ICJhbHRzeW50YXhlbmQiKSBjb250KHJlcXVpcmUoJzsnKSk7DQogICAgICBlbHNlIHBhc3Moc3RhdGVtZW50LCBhbHRzeW50YXhCbG9jayk7DQogICAgfQ0KDQoNCiAgICByZXR1cm4gcGFyc2VyOw0KICB9DQoNCiAgcmV0dXJuIHttYWtlOiBwYXJzZVBIUCwgZWxlY3RyaWNDaGFyczogInt9OiJ9Ow0KDQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/js/parsephphtmlmixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAoYykgMjAwOC0yMDA5IFlhaG9vISBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQpUaGUgY29weXJpZ2h0cyBlbWJvZGllZCBpbiB0aGUgY29udGVudCBvZiB0aGlzIGZpbGUgYXJlIGxpY2Vuc2VkIGJ5DQpZYWhvbyEgSW5jLiB1bmRlciB0aGUgQlNEIChyZXZpc2VkKSBvcGVuIHNvdXJjZSBsaWNlbnNlDQoNCkBhdXRob3IgRGFuIFZsYWQgRGFzY2FsZXNjdSA8ZGFuZHZAeWFob28taW5jLmNvbT4NCg0KQmFzZWQgb24gcGFyc2VodG1sbWl4ZWQuanMgYnkgTWFyaWpuIEhhdmVyYmVrZS4NCiovDQoNCnZhciBQSFBIVE1MTWl4ZWRQYXJzZXIgPSBFZGl0b3IuUGFyc2VyID0gKGZ1bmN0aW9uKCkgew0KICB2YXIgcHJvY2Vzc2luZ0luc3RydWN0aW9ucyA9IFsiPD9waHAiXTsNCg0KICBpZiAoIShQSFBQYXJzZXIgJiYgQ1NTUGFyc2VyICYmIEpTUGFyc2VyICYmIFhNTFBhcnNlcikpDQogICAgdGhyb3cgbmV3IEVycm9yKCJQSFAsIENTUywgSlMsIGFuZCBYTUwgcGFyc2VycyBtdXN0IGJlIGxvYWRlZCBmb3IgUEhQK0hUTUwgbWl4ZWQgbW9kZSB0byB3b3JrLiIpOw0KICBYTUxQYXJzZXIuY29uZmlndXJlKHt1c2VIVE1MS2x1ZGdlczogdHJ1ZX0pOw0KDQogIGZ1bmN0aW9uIHBhcnNlTWl4ZWQoc3RyZWFtKSB7DQogICAgdmFyIGh0bWxQYXJzZXIgPSBYTUxQYXJzZXIubWFrZShzdHJlYW0pLCBsb2NhbFBhcnNlciA9IG51bGwsDQogICAgICAgIGluVGFnID0gZmFsc2UsIGxhc3RBdHQgPSBudWxsLCBwaHBQYXJzZXJTdGF0ZSA9IG51bGw7DQogICAgdmFyIGl0ZXIgPSB7bmV4dDogdG9wLCBjb3B5OiBjb3B5fTsNCg0KICAgIGZ1bmN0aW9uIHRvcCgpIHsNCiAgICAgIHZhciB0b2tlbiA9IGh0bWxQYXJzZXIubmV4dCgpOw0KICAgICAgaWYgKHRva2VuLmNvbnRlbnQgPT0gIjwiKQ0KICAgICAgICBpblRhZyA9IHRydWU7DQogICAgICBlbHNlIGlmICh0b2tlbi5zdHlsZSA9PSAieG1sLXRhZ25hbWUiICYmIGluVGFnID09PSB0cnVlKQ0KICAgICAgICBpblRhZyA9IHRva2VuLmNvbnRlbnQudG9Mb3dlckNhc2UoKTsNCiAgICAgIGVsc2UgaWYgKHRva2VuLnN0eWxlID09ICJ4bWwtYXR0bmFtZSIpDQogICAgICAgIGxhc3RBdHQgPSB0b2tlbi5jb250ZW50Ow0KICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PSAieG1sLXByb2Nlc3NpbmciKSB7DQogICAgICAgIC8vIHNlZSBpZiB0aGlzIG9wZW5zIGEgUEhQIGJsb2NrDQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvY2Vzc2luZ0luc3RydWN0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgICBpZiAocHJvY2Vzc2luZ0luc3RydWN0aW9uc1tpXSA9PSB0b2tlbi5jb250ZW50KSB7DQogICAgICAgICAgICBpdGVyLm5leHQgPSBsb2NhbChQSFBQYXJzZXIsICI/PiIpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAodG9rZW4uc3R5bGUgPT0gInhtbC1hdHRyaWJ1dGUiICYmIHRva2VuLmNvbnRlbnQgPT0gIlwicGhwXCIiICYmIGluVGFnID09ICJzY3JpcHQiICYmIGxhc3RBdHQgPT0gImxhbmd1YWdlIikNCiAgICAgICAgaW5UYWcgPSAic2NyaXB0L3BocCI7DQogICAgICAvLyAieG1sLXByb2Nlc3NpbmciIHRva2VucyBhcmUgaWdub3JlZCwgYmVjYXVzZSB0aGV5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IGEgc3BlY2lmaWMgbG9jYWwgcGFyc2VyDQogICAgICBlbHNlIGlmICh0b2tlbi5jb250ZW50ID09ICI+Iikgew0KICAgICAgICBpZiAoaW5UYWcgPT0gInNjcmlwdC9waHAiKQ0KICAgICAgICAgIGl0ZXIubmV4dCA9IGxvY2FsKFBIUFBhcnNlciwgIjwvc2NyaXB0PiIpOw0KICAgICAgICBlbHNlIGlmIChpblRhZyA9PSAic2NyaXB0IikNCiAgICAgICAgICBpdGVyLm5leHQgPSBsb2NhbChKU1BhcnNlciwgIjwvc2NyaXB0Iik7DQogICAgICAgIGVsc2UgaWYgKGluVGFnID09ICJzdHlsZSIpDQogICAgICAgICAgaXRlci5uZXh0ID0gbG9jYWwoQ1NTUGFyc2VyLCAiPC9zdHlsZSIpOw0KICAgICAgICBsYXN0QXR0ID0gbnVsbDsNCiAgICAgICAgaW5UYWcgPSBmYWxzZTsNCiAgICAgIH0NCiAgICAgIHJldHVybiB0b2tlbjsNCiAgICB9DQogICAgZnVuY3Rpb24gbG9jYWwocGFyc2VyLCB0YWcpIHsNCiAgICAgIHZhciBiYXNlSW5kZW50ID0gaHRtbFBhcnNlci5pbmRlbnRhdGlvbigpOw0KICAgICAgaWYgKHBhcnNlciA9PSBQSFBQYXJzZXIgJiYgcGhwUGFyc2VyU3RhdGUpDQogICAgICAgIGxvY2FsUGFyc2VyID0gcGhwUGFyc2VyU3RhdGUoc3RyZWFtKTsNCiAgICAgIGVsc2UNCiAgICAgICAgbG9jYWxQYXJzZXIgPSBwYXJzZXIubWFrZShzdHJlYW0sIGJhc2VJbmRlbnQgKyBpbmRlbnRVbml0KTsNCg0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgew0KICAgICAgICBpZiAoc3RyZWFtLmxvb2tBaGVhZCh0YWcsIGZhbHNlLCBmYWxzZSwgdHJ1ZSkpIHsNCiAgICAgICAgICBpZiAocGFyc2VyID09IFBIUFBhcnNlcikgcGhwUGFyc2VyU3RhdGUgPSBsb2NhbFBhcnNlci5jb3B5KCk7DQogICAgICAgICAgbG9jYWxQYXJzZXIgPSBudWxsOw0KICAgICAgICAgIGl0ZXIubmV4dCA9IHRvcDsNCiAgICAgICAgICByZXR1cm4gdG9wKCk7ICAvLyBwYXNzIHRoZSBlbmRpbmcgdGFnIHRvIHRoZSBlbmNsb3NpbmcgcGFyc2VyDQogICAgICAgIH0NCg0KICAgICAgICB2YXIgdG9rZW4gPSBsb2NhbFBhcnNlci5uZXh0KCk7DQogICAgICAgIHZhciBsdCA9IHRva2VuLnZhbHVlLmxhc3RJbmRleE9mKCI8IiksIHN6ID0gTWF0aC5taW4odG9rZW4udmFsdWUubGVuZ3RoIC0gbHQsIHRhZy5sZW5ndGgpOw0KICAgICAgICBpZiAobHQgIT0gLTEgJiYgdG9rZW4udmFsdWUuc2xpY2UobHQsIGx0ICsgc3opLnRvTG93ZXJDYXNlKCkgPT0gdGFnLnNsaWNlKDAsIHN6KSAmJg0KICAgICAgICAgICAgc3RyZWFtLmxvb2tBaGVhZCh0YWcuc2xpY2Uoc3opLCBmYWxzZSwgZmFsc2UsIHRydWUpKSB7DQogICAgICAgICAgc3RyZWFtLnB1c2godG9rZW4udmFsdWUuc2xpY2UobHQpKTsNCiAgICAgICAgICB0b2tlbi52YWx1ZSA9IHRva2VuLnZhbHVlLnNsaWNlKDAsIGx0KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICh0b2tlbi5pbmRlbnRhdGlvbikgew0KICAgICAgICAgIHZhciBvbGRJbmRlbnQgPSB0b2tlbi5pbmRlbnRhdGlvbjsNCiAgICAgICAgICB0b2tlbi5pbmRlbnRhdGlvbiA9IGZ1bmN0aW9uKGNoYXJzKSB7DQogICAgICAgICAgICBpZiAoY2hhcnMgPT0gIjwvIikNCiAgICAgICAgICAgICAgcmV0dXJuIGJhc2VJbmRlbnQ7DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgIHJldHVybiBvbGRJbmRlbnQoY2hhcnMpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgIH07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gY29weSgpIHsNCiAgICAgIHZhciBfaHRtbCA9IGh0bWxQYXJzZXIuY29weSgpLCBfbG9jYWwgPSBsb2NhbFBhcnNlciAmJiBsb2NhbFBhcnNlci5jb3B5KCksDQogICAgICAgICAgX25leHQgPSBpdGVyLm5leHQsIF9pblRhZyA9IGluVGFnLCBfbGFzdEF0dCA9IGxhc3RBdHQsIF9waHAgPSBwaHBQYXJzZXJTdGF0ZTsNCiAgICAgIHJldHVybiBmdW5jdGlvbihfc3RyZWFtKSB7DQogICAgICAgIHN0cmVhbSA9IF9zdHJlYW07DQogICAgICAgIGh0bWxQYXJzZXIgPSBfaHRtbChfc3RyZWFtKTsNCiAgICAgICAgbG9jYWxQYXJzZXIgPSBfbG9jYWwgJiYgX2xvY2FsKF9zdHJlYW0pOw0KICAgICAgICBwaHBQYXJzZXJTdGF0ZSA9IF9waHA7DQogICAgICAgIGl0ZXIubmV4dCA9IF9uZXh0Ow0KICAgICAgICBpblRhZyA9IF9pblRhZzsNCiAgICAgICAgbGFzdEF0dCA9IF9sYXN0QXR0Ow0KICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgIH07DQogICAgfQ0KICAgIHJldHVybiBpdGVyOw0KICB9DQoNCiAgcmV0dXJuIHsNCiAgICBtYWtlOiBwYXJzZU1peGVkLA0KICAgIGVsZWN0cmljQ2hhcnM6ICJ7fS86IiwNCiAgICBjb25maWd1cmU6IGZ1bmN0aW9uKGNvbmYpIHsNCiAgICAgIGlmIChjb25mLm9wZW5pbmcgIT0gbnVsbCkgcHJvY2Vzc2luZ0luc3RydWN0aW9ucyA9IGNvbmYub3BlbmluZzsNCiAgICB9DQogIH07DQoNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/js/tokenizephp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAoYykgMjAwOC0yMDA5IFlhaG9vISBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KVGhlIGNvcHlyaWdodHMgZW1ib2RpZWQgaW4gdGhlIGNvbnRlbnQgb2YgdGhpcyBmaWxlIGFyZSBsaWNlbnNlZCBieQ0KWWFob28hIEluYy4gdW5kZXIgdGhlIEJTRCAocmV2aXNlZCkgb3BlbiBzb3VyY2UgbGljZW5zZQ0KDQpAYXV0aG9yIFZsYWQgRGFuIERhc2NhbGVzY3UgPGRhbmR2QHlhaG9vLWluYy5jb20+DQoNCg0KVG9rZW5pemVyIGZvciBQSFAgY29kZQ0KDQpSZWZlcmVuY2VzOg0KICArIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9yZXNlcnZlZC5waHANCiAgKyBodHRwOi8vcGhwLm5ldC90b2tlbnMNCiAgKyBnZXRfZGVmaW5lZF9jb25zdGFudHMoKSwgZ2V0X2RlZmluZWRfZnVuY3Rpb25zKCksIGdldF9kZWNsYXJlZF9jbGFzc2VzKCkNCiAgICAgIGV4ZWN1dGVkIG9uIGEgcmVhbGlzdGljIChub3QgdmFuaWxsYSkgUEhQIGluc3RhbGxhdGlvbiB3aXRoIHR5cGljYWwgTEFNUCBtb2R1bGVzLg0KICAgICAgU3BlY2lmaWNhbGx5LCB0aGUgUEhQIGJ1bmRsZWQgd2l0aCB0aGUgVW5pZm9ybSBXZWIgU2VydmVyICh3d3cudW5pZm9ybXNlcnZlci5jb20pLg0KDQoqLw0KDQoNCi8vIGFkZCB0aGUgZm9yRWFjaCBtZXRob2QgZm9yIEpTIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0IGl0IChlLmcuIElFKQ0KLy8gY29kZSBmcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL0NvcmVfSmF2YVNjcmlwdF8xLjVfUmVmZXJlbmNlOk9iamVjdHM6QXJyYXk6Zm9yRWFjaA0KaWYgKCFBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkNCnsNCiAgQXJyYXkucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihmdW4gLyosIHRoaXNwKi8pDQogIHsNCiAgICB2YXIgbGVuID0gdGhpcy5sZW5ndGg7DQogICAgaWYgKHR5cGVvZiBmdW4gIT0gImZ1bmN0aW9uIikNCiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTsNCg0KICAgIHZhciB0aGlzcCA9IGFyZ3VtZW50c1sxXTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKQ0KICAgIHsNCiAgICAgIGlmIChpIGluIHRoaXMpDQogICAgICAgIGZ1bi5jYWxsKHRoaXNwLCB0aGlzW2ldLCBpLCB0aGlzKTsNCiAgICB9DQogIH07DQp9DQoNCg0KdmFyIHRva2VuaXplUEhQID0gKGZ1bmN0aW9uKCkgew0KICAvKiBBIG1hcCBvZiBQSFAncyByZXNlcnZlZCB3b3JkcyAoa2V5d29yZHMsIHByZWRlZmluZWQgY2xhc3NlcywgZnVuY3Rpb25zIGFuZA0KICAgICBjb25zdGFudHMuIEVhY2ggdG9rZW4gaGFzIGEgdHlwZSAoJ2tleXdvcmQnLCAnb3BlcmF0b3InIGV0Yy4pIGFuZCBhIHN0eWxlLg0KICAgICBUaGUgc3R5bGUgY29ycmVzcG9uZHMgdG8gdGhlIENTUyBzcGFuIGNsYXNzIGluIHBocGNvbG9ycy5jc3MuDQoNCiAgICAgS2V5d29yZHMgY2FuIGJlIG9mIHRocmVlIHR5cGVzOg0KICAgICBhIC0gdGFrZXMgYW4gZXhwcmVzc2lvbiBhbmQgZm9ybXMgYSBzdGF0ZW1lbnQgLSBlLmcuIGlmDQogICAgIGIgLSB0YWtlcyBqdXN0IGEgc3RhdGVtZW50IC0gZS5nLiBlbHNlDQogICAgIGMgLSB0YWtlcyBhbiBvcHRpbm9hbCBleHByZXNzaW9uLCBidXQgbm8gc3RhdGVtZW50IC0gZS5nLiByZXR1cm4NCiAgICAgVGhpcyBkaXN0aW5jdGlvbiBnaXZlcyB0aGUgcGFyc2VyIGVub3VnaCBpbmZvcm1hdGlvbiB0byBwYXJzZQ0KICAgICBjb3JyZWN0IGNvZGUgY29ycmVjdGx5ICh3ZSBkb24ndCBjYXJlIHRoYXQgbXVjaCBob3cgd2UgcGFyc2UNCiAgICAgaW5jb3JyZWN0IGNvZGUpLg0KDQogICAgIFJlZmVyZW5jZTogaHR0cDovL3VzLnBocC5uZXQvbWFudWFsL2VuL3Jlc2VydmVkLnBocA0KICAqLw0KICB2YXIga2V5d29yZHMgPSBmdW5jdGlvbigpew0KICAgIGZ1bmN0aW9uIHRva2VuKHR5cGUsIHN0eWxlKXsNCiAgICAgIHJldHVybiB7dHlwZTogdHlwZSwgc3R5bGU6IHN0eWxlfTsNCiAgICB9DQogICAgdmFyIHJlc3VsdCA9IHt9Ow0KDQogICAgLy8gZm9yIGVhY2godmFyIGVsZW1lbnQgaW4gWyIuLi4iLCAiLi4uIl0pIGNhbiBwaWNrIHVwIGVsZW1lbnRzIGFkZGVkIHRvDQogICAgLy8gQXJyYXkucHJvdG90eXBlLCBzbyB3ZSdsbCB1c2UgdGhlIGxvb3Agc3RydWN0dXJlIGJlbG93LiBTZWUgYWxzbw0KICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vQ29yZV9KYXZhU2NyaXB0XzEuNV9SZWZlcmVuY2UvU3RhdGVtZW50cy9mb3JfZWFjaC4uLmluDQoNCiAgICAvLyBrZXl3b3JkcyB0aGF0IHRha2UgYW4gZXhwcmVzc2lvbiBhbmQgZm9ybSBhIHN0YXRlbWVudA0KICAgIFsiaWYiLCAiZWxzZWlmIiwgIndoaWxlIiwgImRlY2xhcmUiXS5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgew0KICAgICAgcmVzdWx0W2VsZW1lbnRdID0gdG9rZW4oImtleXdvcmQgYSIsICJwaHAta2V5d29yZCIpOw0KICAgIH0pOw0KDQogICAgLy8ga2V5d29yZHMgdGhhdCB0YWtlIGp1c3QgYSBzdGF0ZW1lbnQNCiAgICBbImRvIiwgImVsc2UiLCAidHJ5IiBdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigia2V5d29yZCBiIiwgInBocC1rZXl3b3JkIik7DQogICAgfSk7DQoNCiAgICAvLyBrZXl3b3JkcyB0aGF0IHRha2UgYW4gb3B0aW9uYWwgZXhwcmVzc2lvbiwgYnV0IG5vIHN0YXRlbWVudA0KICAgIFsicmV0dXJuIiwgImJyZWFrIiwgImNvbnRpbnVlIiwgIC8vIHRoZSBleHByZXNzaW9uIGlzIG9wdGlvbmFsDQogICAgICAibmV3IiwgImNsb25lIiwgInRocm93IiAgLy8gdGhlIGV4cHJlc3Npb24gaXMgbWFuZGF0b3J5DQogICAgXS5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgew0KICAgICAgcmVzdWx0W2VsZW1lbnRdID0gdG9rZW4oImtleXdvcmQgYyIsICJwaHAta2V5d29yZCIpOw0KICAgIH0pOw0KDQogICAgWyJfX0NMQVNTX18iLCAiX19ESVJfXyIsICJfX0ZJTEVfXyIsICJfX0ZVTkNUSU9OX18iLCAiX19NRVRIT0RfXyIsICJfX05BTUVTUEFDRV9fIl0uZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsNCiAgICAgIHJlc3VsdFtlbGVtZW50XSA9IHRva2VuKCJhdG9tIiwgInBocC1jb21waWxlLXRpbWUtY29uc3RhbnQiKTsNCiAgICB9KTsNCg0KICAgIFsidHJ1ZSIsICJmYWxzZSIsICJudWxsIl0uZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsNCiAgICAgIHJlc3VsdFtlbGVtZW50XSA9IHRva2VuKCJhdG9tIiwgInBocC1hdG9tIik7DQogICAgfSk7DQoNCiAgICBbImFuZCIsICJvciIsICJ4b3IiLCAiaW5zdGFuY2VvZiJdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigib3BlcmF0b3IiLCAicGhwLWtleXdvcmQgcGhwLW9wZXJhdG9yIik7DQogICAgfSk7DQoNCiAgICBbImNsYXNzIiwgImludGVyZmFjZSJdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigiY2xhc3MiLCAicGhwLWtleXdvcmQiKTsNCiAgICB9KTsNCiAgICBbIm5hbWVzcGFjZSIsICJ1c2UiLCAiZXh0ZW5kcyIsICJpbXBsZW1lbnRzIl0uZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsNCiAgICAgIHJlc3VsdFtlbGVtZW50XSA9IHRva2VuKCJuYW1lc3BhY2UiLCAicGhwLWtleXdvcmQiKTsNCiAgICB9KTsNCg0KICAgIC8vIHJlc2VydmVkICJsYW5ndWFnZSBjb25zdHJ1Y3RzIi4uLiBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQucGhwDQogICAgWyAiZGllIiwgImVjaG8iLCAiZW1wdHkiLCAiZXhpdCIsICJldmFsIiwgImluY2x1ZGUiLCAiaW5jbHVkZV9vbmNlIiwgImlzc2V0IiwNCiAgICAgICJsaXN0IiwgInJlcXVpcmUiLCAicmVxdWlyZV9vbmNlIiwgInJldHVybiIsICJwcmludCIsICJ1bnNldCIsDQogICAgICAiYXJyYXkiIC8vIGEga2V5d29yZCByYXRoZXIsIGJ1dCBtYW5kYXRlcyBhIHBhcmVudGhlc2l6ZWQgcGFyYW1ldGVyIGxpc3QNCiAgICBdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigidF9zdHJpbmciLCAicGhwLXJlc2VydmVkLWxhbmd1YWdlLWNvbnN0cnVjdCIpOw0KICAgIH0pOw0KDQogICAgcmVzdWx0WyJzd2l0Y2giXSA9IHRva2VuKCJzd2l0Y2giLCAicGhwLWtleXdvcmQiKTsNCiAgICByZXN1bHRbImNhc2UiXSA9IHRva2VuKCJjYXNlIiwgInBocC1rZXl3b3JkIik7DQogICAgcmVzdWx0WyJkZWZhdWx0Il0gPSB0b2tlbigiZGVmYXVsdCIsICJwaHAta2V5d29yZCIpOw0KICAgIHJlc3VsdFsiY2F0Y2giXSA9IHRva2VuKCJjYXRjaCIsICJwaHAta2V5d29yZCIpOw0KICAgIHJlc3VsdFsiZnVuY3Rpb24iXSA9IHRva2VuKCJmdW5jdGlvbiIsICJwaHAta2V5d29yZCIpOw0KDQogICAgLy8gaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2NvbnRyb2wtc3RydWN0dXJlcy5hbHRlcm5hdGl2ZS1zeW50YXgucGhwIG11c3QgYmUgZm9sbG93ZWQgYnkgYSAnOicNCiAgICBbImVuZGlmIiwgImVuZHdoaWxlIiwgImVuZGZvciIsICJlbmRmb3JlYWNoIiwgImVuZHN3aXRjaCIsICJlbmRkZWNsYXJlIl0uZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsNCiAgICAgIHJlc3VsdFtlbGVtZW50XSA9IHRva2VuKCJhbHRzeW50YXhlbmQiLCAicGhwLWtleXdvcmQiKTsNCiAgICB9KTsNCg0KICAgIHJlc3VsdFsiY29uc3QiXSA9IHRva2VuKCJjb25zdCIsICJwaHAta2V5d29yZCIpOw0KDQogICAgWyJmaW5hbCIsICJwcml2YXRlIiwgInByb3RlY3RlZCIsICJwdWJsaWMiLCAiZ2xvYmFsIiwgInN0YXRpYyJdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigibW9kaWZpZXIiLCAicGhwLWtleXdvcmQiKTsNCiAgICB9KTsNCiAgICByZXN1bHRbInZhciJdID0gdG9rZW4oIm1vZGlmaWVyIiwgInBocC1rZXl3b3JkIGRlcHJlY2F0ZWQiKTsNCiAgICByZXN1bHRbImFic3RyYWN0Il0gPSB0b2tlbigiYWJzdHJhY3QiLCAicGhwLWtleXdvcmQiKTsNCg0KICAgIHJlc3VsdFsiZm9yZWFjaCJdID0gdG9rZW4oImZvcmVhY2giLCAicGhwLWtleXdvcmQiKTsNCiAgICByZXN1bHRbImFzIl0gPSB0b2tlbigiYXMiLCAicGhwLWtleXdvcmQiKTsNCiAgICByZXN1bHRbImZvciJdID0gdG9rZW4oImZvciIsICJwaHAta2V5d29yZCIpOw0KDQogICAgLy8gUEhQIGJ1aWx0LWluIGZ1bmN0aW9ucyAtIG91dHB1dCBvZiBnZXRfZGVmaW5lZF9mdW5jdGlvbnMoKVsiaW50ZXJuYWwiXQ0KICAgIFsgInplbmRfdmVyc2lvbiIsICJmdW5jX251bV9hcmdzIiwgImZ1bmNfZ2V0X2FyZyIsICJmdW5jX2dldF9hcmdzIiwgInN0cmxlbiIsDQogICAgICAic3RyY21wIiwgInN0cm5jbXAiLCAic3RyY2FzZWNtcCIsICJzdHJuY2FzZWNtcCIsICJlYWNoIiwgImVycm9yX3JlcG9ydGluZyIsDQogICAgICAiZGVmaW5lIiwgImRlZmluZWQiLCAiZ2V0X2NsYXNzIiwgImdldF9wYXJlbnRfY2xhc3MiLCAibWV0aG9kX2V4aXN0cyIsDQogICAgICAicHJvcGVydHlfZXhpc3RzIiwgImNsYXNzX2V4aXN0cyIsICJpbnRlcmZhY2VfZXhpc3RzIiwgImZ1bmN0aW9uX2V4aXN0cyIsDQogICAgICAiZ2V0X2luY2x1ZGVkX2ZpbGVzIiwgImdldF9yZXF1aXJlZF9maWxlcyIsICJpc19zdWJjbGFzc19vZiIsICJpc19hIiwNCiAgICAgICJnZXRfY2xhc3NfdmFycyIsICJnZXRfb2JqZWN0X3ZhcnMiLCAiZ2V0X2NsYXNzX21ldGhvZHMiLCAidHJpZ2dlcl9lcnJvciIsDQogICAgICAidXNlcl9lcnJvciIsICJzZXRfZXJyb3JfaGFuZGxlciIsICJyZXN0b3JlX2Vycm9yX2hhbmRsZXIiLA0KICAgICAgInNldF9leGNlcHRpb25faGFuZGxlciIsICJyZXN0b3JlX2V4Y2VwdGlvbl9oYW5kbGVyIiwgImdldF9kZWNsYXJlZF9jbGFzc2VzIiwNCiAgICAgICJnZXRfZGVjbGFyZWRfaW50ZXJmYWNlcyIsICJnZXRfZGVmaW5lZF9mdW5jdGlvbnMiLCAiZ2V0X2RlZmluZWRfdmFycyIsDQogICAgICAiY3JlYXRlX2Z1bmN0aW9uIiwgImdldF9yZXNvdXJjZV90eXBlIiwgImdldF9sb2FkZWRfZXh0ZW5zaW9ucyIsDQogICAgICAiZXh0ZW5zaW9uX2xvYWRlZCIsICJnZXRfZXh0ZW5zaW9uX2Z1bmNzIiwgImdldF9kZWZpbmVkX2NvbnN0YW50cyIsDQogICAgICAiZGVidWdfYmFja3RyYWNlIiwgImRlYnVnX3ByaW50X2JhY2t0cmFjZSIsICJiY2FkZCIsICJiY3N1YiIsICJiY211bCIsICJiY2RpdiIsDQogICAgICAiYmNtb2QiLCAiYmNwb3ciLCAiYmNzcXJ0IiwgImJjc2NhbGUiLCAiYmNjb21wIiwgImJjcG93bW9kIiwgImpkdG9ncmVnb3JpYW4iLA0KICAgICAgImdyZWdvcmlhbnRvamQiLCAiamR0b2p1bGlhbiIsICJqdWxpYW50b2pkIiwgImpkdG9qZXdpc2giLCAiamV3aXNodG9qZCIsDQogICAgICAiamR0b2ZyZW5jaCIsICJmcmVuY2h0b2pkIiwgImpkZGF5b2Z3ZWVrIiwgImpkbW9udGhuYW1lIiwgImVhc3Rlcl9kYXRlIiwNCiAgICAgICJlYXN0ZXJfZGF5cyIsICJ1bml4dG9qZCIsICJqZHRvdW5peCIsICJjYWxfdG9famQiLCAiY2FsX2Zyb21famQiLA0KICAgICAgImNhbF9kYXlzX2luX21vbnRoIiwgImNhbF9pbmZvIiwgInZhcmlhbnRfc2V0IiwgInZhcmlhbnRfYWRkIiwgInZhcmlhbnRfY2F0IiwNCiAgICAgICJ2YXJpYW50X3N1YiIsICJ2YXJpYW50X211bCIsICJ2YXJpYW50X2FuZCIsICJ2YXJpYW50X2RpdiIsICJ2YXJpYW50X2VxdiIsDQogICAgICAidmFyaWFudF9pZGl2IiwgInZhcmlhbnRfaW1wIiwgInZhcmlhbnRfbW9kIiwgInZhcmlhbnRfb3IiLCAidmFyaWFudF9wb3ciLA0KICAgICAgInZhcmlhbnRfeG9yIiwgInZhcmlhbnRfYWJzIiwgInZhcmlhbnRfZml4IiwgInZhcmlhbnRfaW50IiwgInZhcmlhbnRfbmVnIiwNCiAgICAgICJ2YXJpYW50X25vdCIsICJ2YXJpYW50X3JvdW5kIiwgInZhcmlhbnRfY21wIiwgInZhcmlhbnRfZGF0ZV90b190aW1lc3RhbXAiLA0KICAgICAgInZhcmlhbnRfZGF0ZV9mcm9tX3RpbWVzdGFtcCIsICJ2YXJpYW50X2dldF90eXBlIiwgInZhcmlhbnRfc2V0X3R5cGUiLA0KICAgICAgInZhcmlhbnRfY2FzdCIsICJjb21fY3JlYXRlX2d1aWQiLCAiY29tX2V2ZW50X3NpbmsiLCAiY29tX3ByaW50X3R5cGVpbmZvIiwNCiAgICAgICJjb21fbWVzc2FnZV9wdW1wIiwgImNvbV9sb2FkX3R5cGVsaWIiLCAiY29tX2dldF9hY3RpdmVfb2JqZWN0IiwgImN0eXBlX2FsbnVtIiwNCiAgICAgICJjdHlwZV9hbHBoYSIsICJjdHlwZV9jbnRybCIsICJjdHlwZV9kaWdpdCIsICJjdHlwZV9sb3dlciIsICJjdHlwZV9ncmFwaCIsDQogICAgICAiY3R5cGVfcHJpbnQiLCAiY3R5cGVfcHVuY3QiLCAiY3R5cGVfc3BhY2UiLCAiY3R5cGVfdXBwZXIiLCAiY3R5cGVfeGRpZ2l0IiwNCiAgICAgICJzdHJ0b3RpbWUiLCAiZGF0ZSIsICJpZGF0ZSIsICJnbWRhdGUiLCAibWt0aW1lIiwgImdtbWt0aW1lIiwgImNoZWNrZGF0ZSIsDQogICAgICAic3RyZnRpbWUiLCAiZ21zdHJmdGltZSIsICJ0aW1lIiwgImxvY2FsdGltZSIsICJnZXRkYXRlIiwgImRhdGVfY3JlYXRlIiwNCiAgICAgICJkYXRlX3BhcnNlIiwgImRhdGVfZm9ybWF0IiwgImRhdGVfbW9kaWZ5IiwgImRhdGVfdGltZXpvbmVfZ2V0IiwNCiAgICAgICJkYXRlX3RpbWV6b25lX3NldCIsICJkYXRlX29mZnNldF9nZXQiLCAiZGF0ZV90aW1lX3NldCIsICJkYXRlX2RhdGVfc2V0IiwNCiAgICAgICJkYXRlX2lzb2RhdGVfc2V0IiwgInRpbWV6b25lX29wZW4iLCAidGltZXpvbmVfbmFtZV9nZXQiLA0KICAgICAgInRpbWV6b25lX25hbWVfZnJvbV9hYmJyIiwgInRpbWV6b25lX29mZnNldF9nZXQiLCAidGltZXpvbmVfdHJhbnNpdGlvbnNfZ2V0IiwNCiAgICAgICJ0aW1lem9uZV9pZGVudGlmaWVyc19saXN0IiwgInRpbWV6b25lX2FiYnJldmlhdGlvbnNfbGlzdCIsDQogICAgICAiZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCIsICJkYXRlX2RlZmF1bHRfdGltZXpvbmVfZ2V0IiwgImRhdGVfc3VucmlzZSIsDQogICAgICAiZGF0ZV9zdW5zZXQiLCAiZGF0ZV9zdW5faW5mbyIsICJmaWx0ZXJfaW5wdXQiLCAiZmlsdGVyX3ZhciIsDQogICAgICAiZmlsdGVyX2lucHV0X2FycmF5IiwgImZpbHRlcl92YXJfYXJyYXkiLCAiZmlsdGVyX2xpc3QiLCAiZmlsdGVyX2hhc192YXIiLA0KICAgICAgImZpbHRlcl9pZCIsICJmdHBfY29ubmVjdCIsICJmdHBfbG9naW4iLCAiZnRwX3B3ZCIsICJmdHBfY2R1cCIsICJmdHBfY2hkaXIiLA0KICAgICAgImZ0cF9leGVjIiwgImZ0cF9yYXciLCAiZnRwX21rZGlyIiwgImZ0cF9ybWRpciIsICJmdHBfY2htb2QiLCAiZnRwX2FsbG9jIiwNCiAgICAgICJmdHBfbmxpc3QiLCAiZnRwX3Jhd2xpc3QiLCAiZnRwX3N5c3R5cGUiLCAiZnRwX3Bhc3YiLCAiZnRwX2dldCIsICJmdHBfZmdldCIsDQogICAgICAiZnRwX3B1dCIsICJmdHBfZnB1dCIsICJmdHBfc2l6ZSIsICJmdHBfbWR0bSIsICJmdHBfcmVuYW1lIiwgImZ0cF9kZWxldGUiLA0KICAgICAgImZ0cF9zaXRlIiwgImZ0cF9jbG9zZSIsICJmdHBfc2V0X29wdGlvbiIsICJmdHBfZ2V0X29wdGlvbiIsICJmdHBfbmJfZmdldCIsDQogICAgICAiZnRwX25iX2dldCIsICJmdHBfbmJfY29udGludWUiLCAiZnRwX25iX3B1dCIsICJmdHBfbmJfZnB1dCIsICJmdHBfcXVpdCIsDQogICAgICAiaGFzaCIsICJoYXNoX2ZpbGUiLCAiaGFzaF9obWFjIiwgImhhc2hfaG1hY19maWxlIiwgImhhc2hfaW5pdCIsICJoYXNoX3VwZGF0ZSIsDQogICAgICAiaGFzaF91cGRhdGVfc3RyZWFtIiwgImhhc2hfdXBkYXRlX2ZpbGUiLCAiaGFzaF9maW5hbCIsICJoYXNoX2FsZ29zIiwgImljb252IiwNCiAgICAgICJvYl9pY29udl9oYW5kbGVyIiwgImljb252X2dldF9lbmNvZGluZyIsICJpY29udl9zZXRfZW5jb2RpbmciLCAiaWNvbnZfc3RybGVuIiwNCiAgICAgICJpY29udl9zdWJzdHIiLCAiaWNvbnZfc3RycG9zIiwgImljb252X3N0cnJwb3MiLCAiaWNvbnZfbWltZV9lbmNvZGUiLA0KICAgICAgImljb252X21pbWVfZGVjb2RlIiwgImljb252X21pbWVfZGVjb2RlX2hlYWRlcnMiLCAianNvbl9lbmNvZGUiLCAianNvbl9kZWNvZGUiLA0KICAgICAgIm9kYmNfYXV0b2NvbW1pdCIsICJvZGJjX2Jpbm1vZGUiLCAib2RiY19jbG9zZSIsICJvZGJjX2Nsb3NlX2FsbCIsDQogICAgICAib2RiY19jb2x1bW5zIiwgIm9kYmNfY29tbWl0IiwgIm9kYmNfY29ubmVjdCIsICJvZGJjX2N1cnNvciIsDQogICAgICAib2RiY19kYXRhX3NvdXJjZSIsICJvZGJjX2V4ZWN1dGUiLCAib2RiY19lcnJvciIsICJvZGJjX2Vycm9ybXNnIiwgIm9kYmNfZXhlYyIsDQogICAgICAib2RiY19mZXRjaF9hcnJheSIsICJvZGJjX2ZldGNoX29iamVjdCIsICJvZGJjX2ZldGNoX3JvdyIsICJvZGJjX2ZldGNoX2ludG8iLA0KICAgICAgIm9kYmNfZmllbGRfbGVuIiwgIm9kYmNfZmllbGRfc2NhbGUiLCAib2RiY19maWVsZF9uYW1lIiwgIm9kYmNfZmllbGRfdHlwZSIsDQogICAgICAib2RiY19maWVsZF9udW0iLCAib2RiY19mcmVlX3Jlc3VsdCIsICJvZGJjX2dldHR5cGVpbmZvIiwgIm9kYmNfbG9uZ3JlYWRsZW4iLA0KICAgICAgIm9kYmNfbmV4dF9yZXN1bHQiLCAib2RiY19udW1fZmllbGRzIiwgIm9kYmNfbnVtX3Jvd3MiLCAib2RiY19wY29ubmVjdCIsDQogICAgICAib2RiY19wcmVwYXJlIiwgIm9kYmNfcmVzdWx0IiwgIm9kYmNfcmVzdWx0X2FsbCIsICJvZGJjX3JvbGxiYWNrIiwNCiAgICAgICJvZGJjX3NldG9wdGlvbiIsICJvZGJjX3NwZWNpYWxjb2x1bW5zIiwgIm9kYmNfc3RhdGlzdGljcyIsICJvZGJjX3RhYmxlcyIsDQogICAgICAib2RiY19wcmltYXJ5a2V5cyIsICJvZGJjX2NvbHVtbnByaXZpbGVnZXMiLCAib2RiY190YWJsZXByaXZpbGVnZXMiLA0KICAgICAgIm9kYmNfZm9yZWlnbmtleXMiLCAib2RiY19wcm9jZWR1cmVzIiwgIm9kYmNfcHJvY2VkdXJlY29sdW1ucyIsICJvZGJjX2RvIiwNCiAgICAgICJvZGJjX2ZpZWxkX3ByZWNpc2lvbiIsICJwcmVnX21hdGNoIiwgInByZWdfbWF0Y2hfYWxsIiwgInByZWdfcmVwbGFjZSIsDQogICAgICAicHJlZ19yZXBsYWNlX2NhbGxiYWNrIiwgInByZWdfc3BsaXQiLCAicHJlZ19xdW90ZSIsICJwcmVnX2dyZXAiLA0KICAgICAgInByZWdfbGFzdF9lcnJvciIsICJzZXNzaW9uX25hbWUiLCAic2Vzc2lvbl9tb2R1bGVfbmFtZSIsICJzZXNzaW9uX3NhdmVfcGF0aCIsDQogICAgICAic2Vzc2lvbl9pZCIsICJzZXNzaW9uX3JlZ2VuZXJhdGVfaWQiLCAic2Vzc2lvbl9kZWNvZGUiLCAic2Vzc2lvbl9yZWdpc3RlciIsDQogICAgICAic2Vzc2lvbl91bnJlZ2lzdGVyIiwgInNlc3Npb25faXNfcmVnaXN0ZXJlZCIsICJzZXNzaW9uX2VuY29kZSIsDQogICAgICAic2Vzc2lvbl9zdGFydCIsICJzZXNzaW9uX2Rlc3Ryb3kiLCAic2Vzc2lvbl91bnNldCIsDQogICAgICAic2Vzc2lvbl9zZXRfc2F2ZV9oYW5kbGVyIiwgInNlc3Npb25fY2FjaGVfbGltaXRlciIsICJzZXNzaW9uX2NhY2hlX2V4cGlyZSIsDQogICAgICAic2Vzc2lvbl9zZXRfY29va2llX3BhcmFtcyIsICJzZXNzaW9uX2dldF9jb29raWVfcGFyYW1zIiwNCiAgICAgICJzZXNzaW9uX3dyaXRlX2Nsb3NlIiwgInNlc3Npb25fY29tbWl0IiwgInNwbF9jbGFzc2VzIiwgInNwbF9hdXRvbG9hZCIsDQogICAgICAic3BsX2F1dG9sb2FkX2V4dGVuc2lvbnMiLCAic3BsX2F1dG9sb2FkX3JlZ2lzdGVyIiwgInNwbF9hdXRvbG9hZF91bnJlZ2lzdGVyIiwNCiAgICAgICJzcGxfYXV0b2xvYWRfZnVuY3Rpb25zIiwgInNwbF9hdXRvbG9hZF9jYWxsIiwgImNsYXNzX3BhcmVudHMiLA0KICAgICAgImNsYXNzX2ltcGxlbWVudHMiLCAic3BsX29iamVjdF9oYXNoIiwgIml0ZXJhdG9yX3RvX2FycmF5IiwgIml0ZXJhdG9yX2NvdW50IiwNCiAgICAgICJpdGVyYXRvcl9hcHBseSIsICJjb25zdGFudCIsICJiaW4yaGV4IiwgInNsZWVwIiwgInVzbGVlcCIsICJmbHVzaCIsDQogICAgICAid29yZHdyYXAiLCAiaHRtbHNwZWNpYWxjaGFycyIsICJodG1sZW50aXRpZXMiLCAiaHRtbF9lbnRpdHlfZGVjb2RlIiwNCiAgICAgICJodG1sc3BlY2lhbGNoYXJzX2RlY29kZSIsICJnZXRfaHRtbF90cmFuc2xhdGlvbl90YWJsZSIsICJzaGExIiwgInNoYTFfZmlsZSIsDQogICAgICAibWQ1IiwgIm1kNV9maWxlIiwgImNyYzMyIiwgImlwdGNwYXJzZSIsICJpcHRjZW1iZWQiLCAiZ2V0aW1hZ2VzaXplIiwNCiAgICAgICJpbWFnZV90eXBlX3RvX21pbWVfdHlwZSIsICJpbWFnZV90eXBlX3RvX2V4dGVuc2lvbiIsICJwaHBpbmZvIiwgInBocHZlcnNpb24iLA0KICAgICAgInBocGNyZWRpdHMiLCAicGhwX2xvZ29fZ3VpZCIsICJwaHBfcmVhbF9sb2dvX2d1aWQiLCAicGhwX2VnZ19sb2dvX2d1aWQiLA0KICAgICAgInplbmRfbG9nb19ndWlkIiwgInBocF9zYXBpX25hbWUiLCAicGhwX3VuYW1lIiwgInBocF9pbmlfc2Nhbm5lZF9maWxlcyIsDQogICAgICAic3RybmF0Y21wIiwgInN0cm5hdGNhc2VjbXAiLCAic3Vic3RyX2NvdW50IiwgInN0cnNwbiIsICJzdHJjc3BuIiwgInN0cnRvayIsDQogICAgICAic3RydG91cHBlciIsICJzdHJ0b2xvd2VyIiwgInN0cnBvcyIsICJzdHJpcG9zIiwgInN0cnJwb3MiLCAic3Rycmlwb3MiLA0KICAgICAgInN0cnJldiIsICJoZWJyZXYiLCAiaGVicmV2YyIsICJubDJiciIsICJiYXNlbmFtZSIsICJkaXJuYW1lIiwgInBhdGhpbmZvIiwNCiAgICAgICJzdHJpcHNsYXNoZXMiLCAic3RyaXBjc2xhc2hlcyIsICJzdHJzdHIiLCAic3RyaXN0ciIsICJzdHJyY2hyIiwgInN0cl9zaHVmZmxlIiwNCiAgICAgICJzdHJfd29yZF9jb3VudCIsICJzdHJfc3BsaXQiLCAic3RycGJyayIsICJzdWJzdHJfY29tcGFyZSIsICJzdHJjb2xsIiwNCiAgICAgICJzdWJzdHIiLCAic3Vic3RyX3JlcGxhY2UiLCAicXVvdGVtZXRhIiwgInVjZmlyc3QiLCAidWN3b3JkcyIsICJzdHJ0ciIsDQogICAgICAiYWRkc2xhc2hlcyIsICJhZGRjc2xhc2hlcyIsICJydHJpbSIsICJzdHJfcmVwbGFjZSIsICJzdHJfaXJlcGxhY2UiLA0KICAgICAgInN0cl9yZXBlYXQiLCAiY291bnRfY2hhcnMiLCAiY2h1bmtfc3BsaXQiLCAidHJpbSIsICJsdHJpbSIsICJzdHJpcF90YWdzIiwNCiAgICAgICJzaW1pbGFyX3RleHQiLCAiZXhwbG9kZSIsICJpbXBsb2RlIiwgInNldGxvY2FsZSIsICJsb2NhbGVjb252IiwgInNvdW5kZXgiLA0KICAgICAgImxldmVuc2h0ZWluIiwgImNociIsICJvcmQiLCAicGFyc2Vfc3RyIiwgInN0cl9wYWQiLCAiY2hvcCIsICJzdHJjaHIiLA0KICAgICAgInNwcmludGYiLCAicHJpbnRmIiwgInZwcmludGYiLCAidnNwcmludGYiLCAiZnByaW50ZiIsICJ2ZnByaW50ZiIsICJzc2NhbmYiLA0KICAgICAgImZzY2FuZiIsICJwYXJzZV91cmwiLCAidXJsZW5jb2RlIiwgInVybGRlY29kZSIsICJyYXd1cmxlbmNvZGUiLA0KICAgICAgInJhd3VybGRlY29kZSIsICJodHRwX2J1aWxkX3F1ZXJ5IiwgInVubGluayIsICJleGVjIiwgInN5c3RlbSIsDQogICAgICAiZXNjYXBlc2hlbGxjbWQiLCAiZXNjYXBlc2hlbGxhcmciLCAicGFzc3RocnUiLCAic2hlbGxfZXhlYyIsICJwcm9jX29wZW4iLA0KICAgICAgInByb2NfY2xvc2UiLCAicHJvY190ZXJtaW5hdGUiLCAicHJvY19nZXRfc3RhdHVzIiwgInJhbmQiLCAic3JhbmQiLA0KICAgICAgImdldHJhbmRtYXgiLCAibXRfcmFuZCIsICJtdF9zcmFuZCIsICJtdF9nZXRyYW5kbWF4IiwgImdldHNlcnZieW5hbWUiLA0KICAgICAgImdldHNlcnZieXBvcnQiLCAiZ2V0cHJvdG9ieW5hbWUiLCAiZ2V0cHJvdG9ieW51bWJlciIsICJnZXRteXVpZCIsICJnZXRteWdpZCIsDQogICAgICAiZ2V0bXlwaWQiLCAiZ2V0bXlpbm9kZSIsICJnZXRsYXN0bW9kIiwgImJhc2U2NF9kZWNvZGUiLCAiYmFzZTY0X2VuY29kZSIsDQogICAgICAiY29udmVydF91dWVuY29kZSIsICJjb252ZXJ0X3V1ZGVjb2RlIiwgImFicyIsICJjZWlsIiwgImZsb29yIiwgInJvdW5kIiwgInNpbiIsDQogICAgICAiY29zIiwgInRhbiIsICJhc2luIiwgImFjb3MiLCAiYXRhbiIsICJhdGFuMiIsICJzaW5oIiwgImNvc2giLCAidGFuaCIsICJwaSIsDQogICAgICAiaXNfZmluaXRlIiwgImlzX25hbiIsICJpc19pbmZpbml0ZSIsICJwb3ciLCAiZXhwIiwgImxvZyIsICJsb2cxMCIsICJzcXJ0IiwNCiAgICAgICJoeXBvdCIsICJkZWcycmFkIiwgInJhZDJkZWciLCAiYmluZGVjIiwgImhleGRlYyIsICJvY3RkZWMiLCAiZGVjYmluIiwNCiAgICAgICJkZWNvY3QiLCAiZGVjaGV4IiwgImJhc2VfY29udmVydCIsICJudW1iZXJfZm9ybWF0IiwgImZtb2QiLCAiaXAybG9uZyIsDQogICAgICAibG9uZzJpcCIsICJnZXRlbnYiLCAicHV0ZW52IiwgIm1pY3JvdGltZSIsICJnZXR0aW1lb2ZkYXkiLCAidW5pcWlkIiwNCiAgICAgICJxdW90ZWRfcHJpbnRhYmxlX2RlY29kZSIsICJjb252ZXJ0X2N5cl9zdHJpbmciLCAiZ2V0X2N1cnJlbnRfdXNlciIsDQogICAgICAic2V0X3RpbWVfbGltaXQiLCAiZ2V0X2NmZ192YXIiLCAibWFnaWNfcXVvdGVzX3J1bnRpbWUiLA0KICAgICAgInNldF9tYWdpY19xdW90ZXNfcnVudGltZSIsICJnZXRfbWFnaWNfcXVvdGVzX2dwYyIsICJnZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUiLA0KICAgICAgImltcG9ydF9yZXF1ZXN0X3ZhcmlhYmxlcyIsICJlcnJvcl9sb2ciLCAiZXJyb3JfZ2V0X2xhc3QiLCAiY2FsbF91c2VyX2Z1bmMiLA0KICAgICAgImNhbGxfdXNlcl9mdW5jX2FycmF5IiwgImNhbGxfdXNlcl9tZXRob2QiLCAiY2FsbF91c2VyX21ldGhvZF9hcnJheSIsDQogICAgICAic2VyaWFsaXplIiwgInVuc2VyaWFsaXplIiwgInZhcl9kdW1wIiwgInZhcl9leHBvcnQiLCAiZGVidWdfenZhbF9kdW1wIiwNCiAgICAgICJwcmludF9yIiwgIm1lbW9yeV9nZXRfdXNhZ2UiLCAibWVtb3J5X2dldF9wZWFrX3VzYWdlIiwNCiAgICAgICJyZWdpc3Rlcl9zaHV0ZG93bl9mdW5jdGlvbiIsICJyZWdpc3Rlcl90aWNrX2Z1bmN0aW9uIiwNCiAgICAgICJ1bnJlZ2lzdGVyX3RpY2tfZnVuY3Rpb24iLCAiaGlnaGxpZ2h0X2ZpbGUiLCAic2hvd19zb3VyY2UiLA0KICAgICAgImhpZ2hsaWdodF9zdHJpbmciLCAicGhwX3N0cmlwX3doaXRlc3BhY2UiLCAiaW5pX2dldCIsICJpbmlfZ2V0X2FsbCIsDQogICAgICAiaW5pX3NldCIsICJpbmlfYWx0ZXIiLCAiaW5pX3Jlc3RvcmUiLCAiZ2V0X2luY2x1ZGVfcGF0aCIsICJzZXRfaW5jbHVkZV9wYXRoIiwNCiAgICAgICJyZXN0b3JlX2luY2x1ZGVfcGF0aCIsICJzZXRjb29raWUiLCAic2V0cmF3Y29va2llIiwgImhlYWRlciIsICJoZWFkZXJzX3NlbnQiLA0KICAgICAgImhlYWRlcnNfbGlzdCIsICJjb25uZWN0aW9uX2Fib3J0ZWQiLCAiY29ubmVjdGlvbl9zdGF0dXMiLCAiaWdub3JlX3VzZXJfYWJvcnQiLA0KICAgICAgInBhcnNlX2luaV9maWxlIiwgImlzX3VwbG9hZGVkX2ZpbGUiLCAibW92ZV91cGxvYWRlZF9maWxlIiwgImdldGhvc3RieWFkZHIiLA0KICAgICAgImdldGhvc3RieW5hbWUiLCAiZ2V0aG9zdGJ5bmFtZWwiLCAiaW50dmFsIiwgImZsb2F0dmFsIiwgImRvdWJsZXZhbCIsICJzdHJ2YWwiLA0KICAgICAgImdldHR5cGUiLCAic2V0dHlwZSIsICJpc19udWxsIiwgImlzX3Jlc291cmNlIiwgImlzX2Jvb2wiLCAiaXNfbG9uZyIsDQogICAgICAiaXNfZmxvYXQiLCAiaXNfaW50IiwgImlzX2ludGVnZXIiLCAiaXNfZG91YmxlIiwgImlzX3JlYWwiLCAiaXNfbnVtZXJpYyIsDQogICAgICAiaXNfc3RyaW5nIiwgImlzX2FycmF5IiwgImlzX29iamVjdCIsICJpc19zY2FsYXIiLCAiaXNfY2FsbGFibGUiLCAiZXJlZyIsDQogICAgICAiZXJlZ19yZXBsYWNlIiwgImVyZWdpIiwgImVyZWdpX3JlcGxhY2UiLCAic3BsaXQiLCAic3BsaXRpIiwgImpvaW4iLA0KICAgICAgInNxbF9yZWdjYXNlIiwgImRsIiwgInBjbG9zZSIsICJwb3BlbiIsICJyZWFkZmlsZSIsICJyZXdpbmQiLCAicm1kaXIiLCAidW1hc2siLA0KICAgICAgImZjbG9zZSIsICJmZW9mIiwgImZnZXRjIiwgImZnZXRzIiwgImZnZXRzcyIsICJmcmVhZCIsICJmb3BlbiIsICJmcGFzc3RocnUiLA0KICAgICAgImZ0cnVuY2F0ZSIsICJmc3RhdCIsICJmc2VlayIsICJmdGVsbCIsICJmZmx1c2giLCAiZndyaXRlIiwgImZwdXRzIiwgIm1rZGlyIiwNCiAgICAgICJyZW5hbWUiLCAiY29weSIsICJ0ZW1wbmFtIiwgInRtcGZpbGUiLCAiZmlsZSIsICJmaWxlX2dldF9jb250ZW50cyIsDQogICAgICAiZmlsZV9wdXRfY29udGVudHMiLCAic3RyZWFtX3NlbGVjdCIsICJzdHJlYW1fY29udGV4dF9jcmVhdGUiLA0KICAgICAgInN0cmVhbV9jb250ZXh0X3NldF9wYXJhbXMiLCAic3RyZWFtX2NvbnRleHRfc2V0X29wdGlvbiIsDQogICAgICAic3RyZWFtX2NvbnRleHRfZ2V0X29wdGlvbnMiLCAic3RyZWFtX2NvbnRleHRfZ2V0X2RlZmF1bHQiLA0KICAgICAgInN0cmVhbV9maWx0ZXJfcHJlcGVuZCIsICJzdHJlYW1fZmlsdGVyX2FwcGVuZCIsICJzdHJlYW1fZmlsdGVyX3JlbW92ZSIsDQogICAgICAic3RyZWFtX3NvY2tldF9jbGllbnQiLCAic3RyZWFtX3NvY2tldF9zZXJ2ZXIiLCAic3RyZWFtX3NvY2tldF9hY2NlcHQiLA0KICAgICAgInN0cmVhbV9zb2NrZXRfZ2V0X25hbWUiLCAic3RyZWFtX3NvY2tldF9yZWN2ZnJvbSIsICJzdHJlYW1fc29ja2V0X3NlbmR0byIsDQogICAgICAic3RyZWFtX3NvY2tldF9lbmFibGVfY3J5cHRvIiwgInN0cmVhbV9zb2NrZXRfc2h1dGRvd24iLA0KICAgICAgInN0cmVhbV9jb3B5X3RvX3N0cmVhbSIsICJzdHJlYW1fZ2V0X2NvbnRlbnRzIiwgImZnZXRjc3YiLCAiZnB1dGNzdiIsICJmbG9jayIsDQogICAgICAiZ2V0X21ldGFfdGFncyIsICJzdHJlYW1fc2V0X3dyaXRlX2J1ZmZlciIsICJzZXRfZmlsZV9idWZmZXIiLA0KICAgICAgInNldF9zb2NrZXRfYmxvY2tpbmciLCAic3RyZWFtX3NldF9ibG9ja2luZyIsICJzb2NrZXRfc2V0X2Jsb2NraW5nIiwNCiAgICAgICJzdHJlYW1fZ2V0X21ldGFfZGF0YSIsICJzdHJlYW1fZ2V0X2xpbmUiLCAic3RyZWFtX3dyYXBwZXJfcmVnaXN0ZXIiLA0KICAgICAgInN0cmVhbV9yZWdpc3Rlcl93cmFwcGVyIiwgInN0cmVhbV93cmFwcGVyX3VucmVnaXN0ZXIiLA0KICAgICAgInN0cmVhbV93cmFwcGVyX3Jlc3RvcmUiLCAic3RyZWFtX2dldF93cmFwcGVycyIsICJzdHJlYW1fZ2V0X3RyYW5zcG9ydHMiLA0KICAgICAgImdldF9oZWFkZXJzIiwgInN0cmVhbV9zZXRfdGltZW91dCIsICJzb2NrZXRfc2V0X3RpbWVvdXQiLCAic29ja2V0X2dldF9zdGF0dXMiLA0KICAgICAgInJlYWxwYXRoIiwgImZzb2Nrb3BlbiIsICJwZnNvY2tvcGVuIiwgInBhY2siLCAidW5wYWNrIiwgImdldF9icm93c2VyIiwNCiAgICAgICJjcnlwdCIsICJvcGVuZGlyIiwgImNsb3NlZGlyIiwgImNoZGlyIiwgImdldGN3ZCIsICJyZXdpbmRkaXIiLCAicmVhZGRpciIsDQogICAgICAiZGlyIiwgInNjYW5kaXIiLCAiZ2xvYiIsICJmaWxlYXRpbWUiLCAiZmlsZWN0aW1lIiwgImZpbGVncm91cCIsICJmaWxlaW5vZGUiLA0KICAgICAgImZpbGVtdGltZSIsICJmaWxlb3duZXIiLCAiZmlsZXBlcm1zIiwgImZpbGVzaXplIiwgImZpbGV0eXBlIiwgImZpbGVfZXhpc3RzIiwNCiAgICAgICJpc193cml0YWJsZSIsICJpc193cml0ZWFibGUiLCAiaXNfcmVhZGFibGUiLCAiaXNfZXhlY3V0YWJsZSIsICJpc19maWxlIiwNCiAgICAgICJpc19kaXIiLCAiaXNfbGluayIsICJzdGF0IiwgImxzdGF0IiwgImNob3duIiwgImNoZ3JwIiwgImNobW9kIiwgInRvdWNoIiwNCiAgICAgICJjbGVhcnN0YXRjYWNoZSIsICJkaXNrX3RvdGFsX3NwYWNlIiwgImRpc2tfZnJlZV9zcGFjZSIsICJkaXNrZnJlZXNwYWNlIiwNCiAgICAgICJtYWlsIiwgImV6bWxtX2hhc2giLCAib3BlbmxvZyIsICJzeXNsb2ciLCAiY2xvc2Vsb2ciLA0KICAgICAgImRlZmluZV9zeXNsb2dfdmFyaWFibGVzIiwgImxjZ192YWx1ZSIsICJtZXRhcGhvbmUiLCAib2Jfc3RhcnQiLCAib2JfZmx1c2giLA0KICAgICAgIm9iX2NsZWFuIiwgIm9iX2VuZF9mbHVzaCIsICJvYl9lbmRfY2xlYW4iLCAib2JfZ2V0X2ZsdXNoIiwgIm9iX2dldF9jbGVhbiIsDQogICAgICAib2JfZ2V0X2xlbmd0aCIsICJvYl9nZXRfbGV2ZWwiLCAib2JfZ2V0X3N0YXR1cyIsICJvYl9nZXRfY29udGVudHMiLA0KICAgICAgIm9iX2ltcGxpY2l0X2ZsdXNoIiwgIm9iX2xpc3RfaGFuZGxlcnMiLCAia3NvcnQiLCAia3Jzb3J0IiwgIm5hdHNvcnQiLA0KICAgICAgIm5hdGNhc2Vzb3J0IiwgImFzb3J0IiwgImFyc29ydCIsICJzb3J0IiwgInJzb3J0IiwgInVzb3J0IiwgInVhc29ydCIsICJ1a3NvcnQiLA0KICAgICAgInNodWZmbGUiLCAiYXJyYXlfd2FsayIsICJhcnJheV93YWxrX3JlY3Vyc2l2ZSIsICJjb3VudCIsICJlbmQiLCAicHJldiIsDQogICAgICAibmV4dCIsICJyZXNldCIsICJjdXJyZW50IiwgImtleSIsICJtaW4iLCAibWF4IiwgImluX2FycmF5IiwgImFycmF5X3NlYXJjaCIsDQogICAgICAiZXh0cmFjdCIsICJjb21wYWN0IiwgImFycmF5X2ZpbGwiLCAiYXJyYXlfZmlsbF9rZXlzIiwgInJhbmdlIiwNCiAgICAgICJhcnJheV9tdWx0aXNvcnQiLCAiYXJyYXlfcHVzaCIsICJhcnJheV9wb3AiLCAiYXJyYXlfc2hpZnQiLCAiYXJyYXlfdW5zaGlmdCIsDQogICAgICAiYXJyYXlfc3BsaWNlIiwgImFycmF5X3NsaWNlIiwgImFycmF5X21lcmdlIiwgImFycmF5X21lcmdlX3JlY3Vyc2l2ZSIsDQogICAgICAiYXJyYXlfa2V5cyIsICJhcnJheV92YWx1ZXMiLCAiYXJyYXlfY291bnRfdmFsdWVzIiwgImFycmF5X3JldmVyc2UiLA0KICAgICAgImFycmF5X3JlZHVjZSIsICJhcnJheV9wYWQiLCAiYXJyYXlfZmxpcCIsICJhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UiLA0KICAgICAgImFycmF5X3JhbmQiLCAiYXJyYXlfdW5pcXVlIiwgImFycmF5X2ludGVyc2VjdCIsICJhcnJheV9pbnRlcnNlY3Rfa2V5IiwNCiAgICAgICJhcnJheV9pbnRlcnNlY3RfdWtleSIsICJhcnJheV91aW50ZXJzZWN0IiwgImFycmF5X2ludGVyc2VjdF9hc3NvYyIsDQogICAgICAiYXJyYXlfdWludGVyc2VjdF9hc3NvYyIsICJhcnJheV9pbnRlcnNlY3RfdWFzc29jIiwgImFycmF5X3VpbnRlcnNlY3RfdWFzc29jIiwNCiAgICAgICJhcnJheV9kaWZmIiwgImFycmF5X2RpZmZfa2V5IiwgImFycmF5X2RpZmZfdWtleSIsICJhcnJheV91ZGlmZiIsDQogICAgICAiYXJyYXlfZGlmZl9hc3NvYyIsICJhcnJheV91ZGlmZl9hc3NvYyIsICJhcnJheV9kaWZmX3Vhc3NvYyIsDQogICAgICAiYXJyYXlfdWRpZmZfdWFzc29jIiwgImFycmF5X3N1bSIsICJhcnJheV9wcm9kdWN0IiwgImFycmF5X2ZpbHRlciIsDQogICAgICAiYXJyYXlfbWFwIiwgImFycmF5X2NodW5rIiwgImFycmF5X2NvbWJpbmUiLCAiYXJyYXlfa2V5X2V4aXN0cyIsICJwb3MiLA0KICAgICAgInNpemVvZiIsICJrZXlfZXhpc3RzIiwgImFzc2VydCIsICJhc3NlcnRfb3B0aW9ucyIsICJ2ZXJzaW9uX2NvbXBhcmUiLA0KICAgICAgInN0cl9yb3QxMyIsICJzdHJlYW1fZ2V0X2ZpbHRlcnMiLCAic3RyZWFtX2ZpbHRlcl9yZWdpc3RlciIsDQogICAgICAic3RyZWFtX2J1Y2tldF9tYWtlX3dyaXRlYWJsZSIsICJzdHJlYW1fYnVja2V0X3ByZXBlbmQiLA0KICAgICAgInN0cmVhbV9idWNrZXRfYXBwZW5kIiwgInN0cmVhbV9idWNrZXRfbmV3IiwgIm91dHB1dF9hZGRfcmV3cml0ZV92YXIiLA0KICAgICAgIm91dHB1dF9yZXNldF9yZXdyaXRlX3ZhcnMiLCAic3lzX2dldF90ZW1wX2RpciIsICJ0b2tlbl9nZXRfYWxsIiwgInRva2VuX25hbWUiLA0KICAgICAgInJlYWRnemZpbGUiLCAiZ3pyZXdpbmQiLCAiZ3pjbG9zZSIsICJnemVvZiIsICJnemdldGMiLCAiZ3pnZXRzIiwgImd6Z2V0c3MiLA0KICAgICAgImd6cmVhZCIsICJnem9wZW4iLCAiZ3pwYXNzdGhydSIsICJnenNlZWsiLCAiZ3p0ZWxsIiwgImd6d3JpdGUiLCAiZ3pwdXRzIiwNCiAgICAgICJnemZpbGUiLCAiZ3pjb21wcmVzcyIsICJnenVuY29tcHJlc3MiLCAiZ3pkZWZsYXRlIiwgImd6aW5mbGF0ZSIsICJnemVuY29kZSIsDQogICAgICAib2JfZ3poYW5kbGVyIiwgInpsaWJfZ2V0X2NvZGluZ190eXBlIiwgImxpYnhtbF9zZXRfc3RyZWFtc19jb250ZXh0IiwNCiAgICAgICJsaWJ4bWxfdXNlX2ludGVybmFsX2Vycm9ycyIsICJsaWJ4bWxfZ2V0X2xhc3RfZXJyb3IiLCAibGlieG1sX2NsZWFyX2Vycm9ycyIsDQogICAgICAibGlieG1sX2dldF9lcnJvcnMiLCAiZG9tX2ltcG9ydF9zaW1wbGV4bWwiLCAic2ltcGxleG1sX2xvYWRfZmlsZSIsDQogICAgICAic2ltcGxleG1sX2xvYWRfc3RyaW5nIiwgInNpbXBsZXhtbF9pbXBvcnRfZG9tIiwgIndkZHhfc2VyaWFsaXplX3ZhbHVlIiwNCiAgICAgICJ3ZGR4X3NlcmlhbGl6ZV92YXJzIiwgIndkZHhfcGFja2V0X3N0YXJ0IiwgIndkZHhfcGFja2V0X2VuZCIsICJ3ZGR4X2FkZF92YXJzIiwNCiAgICAgICJ3ZGR4X2Rlc2VyaWFsaXplIiwgInhtbF9wYXJzZXJfY3JlYXRlIiwgInhtbF9wYXJzZXJfY3JlYXRlX25zIiwNCiAgICAgICJ4bWxfc2V0X29iamVjdCIsICJ4bWxfc2V0X2VsZW1lbnRfaGFuZGxlciIsICJ4bWxfc2V0X2NoYXJhY3Rlcl9kYXRhX2hhbmRsZXIiLA0KICAgICAgInhtbF9zZXRfcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9oYW5kbGVyIiwgInhtbF9zZXRfZGVmYXVsdF9oYW5kbGVyIiwNCiAgICAgICJ4bWxfc2V0X3VucGFyc2VkX2VudGl0eV9kZWNsX2hhbmRsZXIiLCAieG1sX3NldF9ub3RhdGlvbl9kZWNsX2hhbmRsZXIiLA0KICAgICAgInhtbF9zZXRfZXh0ZXJuYWxfZW50aXR5X3JlZl9oYW5kbGVyIiwgInhtbF9zZXRfc3RhcnRfbmFtZXNwYWNlX2RlY2xfaGFuZGxlciIsDQogICAgICAieG1sX3NldF9lbmRfbmFtZXNwYWNlX2RlY2xfaGFuZGxlciIsICJ4bWxfcGFyc2UiLCAieG1sX3BhcnNlX2ludG9fc3RydWN0IiwNCiAgICAgICJ4bWxfZ2V0X2Vycm9yX2NvZGUiLCAieG1sX2Vycm9yX3N0cmluZyIsICJ4bWxfZ2V0X2N1cnJlbnRfbGluZV9udW1iZXIiLA0KICAgICAgInhtbF9nZXRfY3VycmVudF9jb2x1bW5fbnVtYmVyIiwgInhtbF9nZXRfY3VycmVudF9ieXRlX2luZGV4IiwNCiAgICAgICJ4bWxfcGFyc2VyX2ZyZWUiLCAieG1sX3BhcnNlcl9zZXRfb3B0aW9uIiwgInhtbF9wYXJzZXJfZ2V0X29wdGlvbiIsDQogICAgICAidXRmOF9lbmNvZGUiLCAidXRmOF9kZWNvZGUiLCAieG1sd3JpdGVyX29wZW5fdXJpIiwgInhtbHdyaXRlcl9vcGVuX21lbW9yeSIsDQogICAgICAieG1sd3JpdGVyX3NldF9pbmRlbnQiLCAieG1sd3JpdGVyX3NldF9pbmRlbnRfc3RyaW5nIiwNCiAgICAgICJ4bWx3cml0ZXJfc3RhcnRfY29tbWVudCIsICJ4bWx3cml0ZXJfZW5kX2NvbW1lbnQiLA0KICAgICAgInhtbHdyaXRlcl9zdGFydF9hdHRyaWJ1dGUiLCAieG1sd3JpdGVyX2VuZF9hdHRyaWJ1dGUiLA0KICAgICAgInhtbHdyaXRlcl93cml0ZV9hdHRyaWJ1dGUiLCAieG1sd3JpdGVyX3N0YXJ0X2F0dHJpYnV0ZV9ucyIsDQogICAgICAieG1sd3JpdGVyX3dyaXRlX2F0dHJpYnV0ZV9ucyIsICJ4bWx3cml0ZXJfc3RhcnRfZWxlbWVudCIsDQogICAgICAieG1sd3JpdGVyX2VuZF9lbGVtZW50IiwgInhtbHdyaXRlcl9mdWxsX2VuZF9lbGVtZW50IiwNCiAgICAgICJ4bWx3cml0ZXJfc3RhcnRfZWxlbWVudF9ucyIsICJ4bWx3cml0ZXJfd3JpdGVfZWxlbWVudCIsDQogICAgICAieG1sd3JpdGVyX3dyaXRlX2VsZW1lbnRfbnMiLCAieG1sd3JpdGVyX3N0YXJ0X3BpIiwgInhtbHdyaXRlcl9lbmRfcGkiLA0KICAgICAgInhtbHdyaXRlcl93cml0ZV9waSIsICJ4bWx3cml0ZXJfc3RhcnRfY2RhdGEiLCAieG1sd3JpdGVyX2VuZF9jZGF0YSIsDQogICAgICAieG1sd3JpdGVyX3dyaXRlX2NkYXRhIiwgInhtbHdyaXRlcl90ZXh0IiwgInhtbHdyaXRlcl93cml0ZV9yYXciLA0KICAgICAgInhtbHdyaXRlcl9zdGFydF9kb2N1bWVudCIsICJ4bWx3cml0ZXJfZW5kX2RvY3VtZW50IiwNCiAgICAgICJ4bWx3cml0ZXJfd3JpdGVfY29tbWVudCIsICJ4bWx3cml0ZXJfc3RhcnRfZHRkIiwgInhtbHdyaXRlcl9lbmRfZHRkIiwNCiAgICAgICJ4bWx3cml0ZXJfd3JpdGVfZHRkIiwgInhtbHdyaXRlcl9zdGFydF9kdGRfZWxlbWVudCIsDQogICAgICAieG1sd3JpdGVyX2VuZF9kdGRfZWxlbWVudCIsICJ4bWx3cml0ZXJfd3JpdGVfZHRkX2VsZW1lbnQiLA0KICAgICAgInhtbHdyaXRlcl9zdGFydF9kdGRfYXR0bGlzdCIsICJ4bWx3cml0ZXJfZW5kX2R0ZF9hdHRsaXN0IiwNCiAgICAgICJ4bWx3cml0ZXJfd3JpdGVfZHRkX2F0dGxpc3QiLCAieG1sd3JpdGVyX3N0YXJ0X2R0ZF9lbnRpdHkiLA0KICAgICAgInhtbHdyaXRlcl9lbmRfZHRkX2VudGl0eSIsICJ4bWx3cml0ZXJfd3JpdGVfZHRkX2VudGl0eSIsDQogICAgICAieG1sd3JpdGVyX291dHB1dF9tZW1vcnkiLCAieG1sd3JpdGVyX2ZsdXNoIiwgImdkX2luZm8iLCAiaW1hZ2VhcmMiLA0KICAgICAgImltYWdlZWxsaXBzZSIsICJpbWFnZWNoYXIiLCAiaW1hZ2VjaGFydXAiLCAiaW1hZ2Vjb2xvcmF0IiwNCiAgICAgICJpbWFnZWNvbG9yYWxsb2NhdGUiLCAiaW1hZ2VwYWxldHRlY29weSIsICJpbWFnZWNyZWF0ZWZyb21zdHJpbmciLA0KICAgICAgImltYWdlY29sb3JjbG9zZXN0IiwgImltYWdlY29sb3JkZWFsbG9jYXRlIiwgImltYWdlY29sb3JyZXNvbHZlIiwNCiAgICAgICJpbWFnZWNvbG9yZXhhY3QiLCAiaW1hZ2Vjb2xvcnNldCIsICJpbWFnZWNvbG9ydHJhbnNwYXJlbnQiLA0KICAgICAgImltYWdlY29sb3JzdG90YWwiLCAiaW1hZ2Vjb2xvcnNmb3JpbmRleCIsICJpbWFnZWNvcHkiLCAiaW1hZ2Vjb3B5bWVyZ2UiLA0KICAgICAgImltYWdlY29weW1lcmdlZ3JheSIsICJpbWFnZWNvcHlyZXNpemVkIiwgImltYWdlY3JlYXRlIiwNCiAgICAgICJpbWFnZWNyZWF0ZXRydWVjb2xvciIsICJpbWFnZWlzdHJ1ZWNvbG9yIiwgImltYWdldHJ1ZWNvbG9ydG9wYWxldHRlIiwNCiAgICAgICJpbWFnZXNldHRoaWNrbmVzcyIsICJpbWFnZWZpbGxlZGFyYyIsICJpbWFnZWZpbGxlZGVsbGlwc2UiLA0KICAgICAgImltYWdlYWxwaGFibGVuZGluZyIsICJpbWFnZXNhdmVhbHBoYSIsICJpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSIsDQogICAgICAiaW1hZ2Vjb2xvcnJlc29sdmVhbHBoYSIsICJpbWFnZWNvbG9yY2xvc2VzdGFscGhhIiwgImltYWdlY29sb3JleGFjdGFscGhhIiwNCiAgICAgICJpbWFnZWNvcHlyZXNhbXBsZWQiLCAiaW1hZ2VncmFid2luZG93IiwgImltYWdlZ3JhYnNjcmVlbiIsICJpbWFnZXJvdGF0ZSIsDQogICAgICAiaW1hZ2VhbnRpYWxpYXMiLCAiaW1hZ2VzZXR0aWxlIiwgImltYWdlc2V0YnJ1c2giLCAiaW1hZ2VzZXRzdHlsZSIsDQogICAgICAiaW1hZ2VjcmVhdGVmcm9tcG5nIiwgImltYWdlY3JlYXRlZnJvbWdpZiIsICJpbWFnZWNyZWF0ZWZyb21qcGVnIiwNCiAgICAgICJpbWFnZWNyZWF0ZWZyb213Ym1wIiwgImltYWdlY3JlYXRlZnJvbXhibSIsICJpbWFnZWNyZWF0ZWZyb21nZCIsDQogICAgICAiaW1hZ2VjcmVhdGVmcm9tZ2QyIiwgImltYWdlY3JlYXRlZnJvbWdkMnBhcnQiLCAiaW1hZ2VwbmciLCAiaW1hZ2VnaWYiLA0KICAgICAgImltYWdlanBlZyIsICJpbWFnZXdibXAiLCAiaW1hZ2VnZCIsICJpbWFnZWdkMiIsICJpbWFnZWRlc3Ryb3kiLA0KICAgICAgImltYWdlZ2FtbWFjb3JyZWN0IiwgImltYWdlZmlsbCIsICJpbWFnZWZpbGxlZHBvbHlnb24iLCAiaW1hZ2VmaWxsZWRyZWN0YW5nbGUiLA0KICAgICAgImltYWdlZmlsbHRvYm9yZGVyIiwgImltYWdlZm9udHdpZHRoIiwgImltYWdlZm9udGhlaWdodCIsICJpbWFnZWludGVybGFjZSIsDQogICAgICAiaW1hZ2VsaW5lIiwgImltYWdlbG9hZGZvbnQiLCAiaW1hZ2Vwb2x5Z29uIiwgImltYWdlcmVjdGFuZ2xlIiwNCiAgICAgICJpbWFnZXNldHBpeGVsIiwgImltYWdlc3RyaW5nIiwgImltYWdlc3RyaW5ndXAiLCAiaW1hZ2VzeCIsICJpbWFnZXN5IiwNCiAgICAgICJpbWFnZWRhc2hlZGxpbmUiLCAiaW1hZ2V0dGZiYm94IiwgImltYWdldHRmdGV4dCIsICJpbWFnZWZ0YmJveCIsDQogICAgICAiaW1hZ2VmdHRleHQiLCAiaW1hZ2Vwc2xvYWRmb250IiwgImltYWdlcHNmcmVlZm9udCIsICJpbWFnZXBzZW5jb2RlZm9udCIsDQogICAgICAiaW1hZ2Vwc2V4dGVuZGZvbnQiLCAiaW1hZ2Vwc3NsYW50Zm9udCIsICJpbWFnZXBzdGV4dCIsICJpbWFnZXBzYmJveCIsDQogICAgICAiaW1hZ2V0eXBlcyIsICJqcGVnMndibXAiLCAicG5nMndibXAiLCAiaW1hZ2Uyd2JtcCIsICJpbWFnZWxheWVyZWZmZWN0IiwNCiAgICAgICJpbWFnZWNvbG9ybWF0Y2giLCAiaW1hZ2V4Ym0iLCAiaW1hZ2VmaWx0ZXIiLCAiaW1hZ2Vjb252b2x1dGlvbiIsDQogICAgICAibWJfY29udmVydF9jYXNlIiwgIm1iX3N0cnRvdXBwZXIiLCAibWJfc3RydG9sb3dlciIsICJtYl9sYW5ndWFnZSIsDQogICAgICAibWJfaW50ZXJuYWxfZW5jb2RpbmciLCAibWJfaHR0cF9pbnB1dCIsICJtYl9odHRwX291dHB1dCIsICJtYl9kZXRlY3Rfb3JkZXIiLA0KICAgICAgIm1iX3N1YnN0aXR1dGVfY2hhcmFjdGVyIiwgIm1iX3BhcnNlX3N0ciIsICJtYl9vdXRwdXRfaGFuZGxlciIsDQogICAgICAibWJfcHJlZmVycmVkX21pbWVfbmFtZSIsICJtYl9zdHJsZW4iLCAibWJfc3RycG9zIiwgIm1iX3N0cnJwb3MiLCAibWJfc3RyaXBvcyIsDQogICAgICAibWJfc3Rycmlwb3MiLCAibWJfc3Ryc3RyIiwgIm1iX3N0cnJjaHIiLCAibWJfc3RyaXN0ciIsICJtYl9zdHJyaWNociIsDQogICAgICAibWJfc3Vic3RyX2NvdW50IiwgIm1iX3N1YnN0ciIsICJtYl9zdHJjdXQiLCAibWJfc3Ryd2lkdGgiLCAibWJfc3RyaW13aWR0aCIsDQogICAgICAibWJfY29udmVydF9lbmNvZGluZyIsICJtYl9kZXRlY3RfZW5jb2RpbmciLCAibWJfbGlzdF9lbmNvZGluZ3MiLA0KICAgICAgIm1iX2NvbnZlcnRfa2FuYSIsICJtYl9lbmNvZGVfbWltZWhlYWRlciIsICJtYl9kZWNvZGVfbWltZWhlYWRlciIsDQogICAgICAibWJfY29udmVydF92YXJpYWJsZXMiLCAibWJfZW5jb2RlX251bWVyaWNlbnRpdHkiLCAibWJfZGVjb2RlX251bWVyaWNlbnRpdHkiLA0KICAgICAgIm1iX3NlbmRfbWFpbCIsICJtYl9nZXRfaW5mbyIsICJtYl9jaGVja19lbmNvZGluZyIsICJtYl9yZWdleF9lbmNvZGluZyIsDQogICAgICAibWJfcmVnZXhfc2V0X29wdGlvbnMiLCAibWJfZXJlZyIsICJtYl9lcmVnaSIsICJtYl9lcmVnX3JlcGxhY2UiLA0KICAgICAgIm1iX2VyZWdpX3JlcGxhY2UiLCAibWJfc3BsaXQiLCAibWJfZXJlZ19tYXRjaCIsICJtYl9lcmVnX3NlYXJjaCIsDQogICAgICAibWJfZXJlZ19zZWFyY2hfcG9zIiwgIm1iX2VyZWdfc2VhcmNoX3JlZ3MiLCAibWJfZXJlZ19zZWFyY2hfaW5pdCIsDQogICAgICAibWJfZXJlZ19zZWFyY2hfZ2V0cmVncyIsICJtYl9lcmVnX3NlYXJjaF9nZXRwb3MiLCAibWJfZXJlZ19zZWFyY2hfc2V0cG9zIiwNCiAgICAgICJtYnJlZ2V4X2VuY29kaW5nIiwgIm1iZXJlZyIsICJtYmVyZWdpIiwgIm1iZXJlZ19yZXBsYWNlIiwgIm1iZXJlZ2lfcmVwbGFjZSIsDQogICAgICAibWJzcGxpdCIsICJtYmVyZWdfbWF0Y2giLCAibWJlcmVnX3NlYXJjaCIsICJtYmVyZWdfc2VhcmNoX3BvcyIsDQogICAgICAibWJlcmVnX3NlYXJjaF9yZWdzIiwgIm1iZXJlZ19zZWFyY2hfaW5pdCIsICJtYmVyZWdfc2VhcmNoX2dldHJlZ3MiLA0KICAgICAgIm1iZXJlZ19zZWFyY2hfZ2V0cG9zIiwgIm1iZXJlZ19zZWFyY2hfc2V0cG9zIiwgIm15c3FsX2Nvbm5lY3QiLA0KICAgICAgIm15c3FsX3Bjb25uZWN0IiwgIm15c3FsX2Nsb3NlIiwgIm15c3FsX3NlbGVjdF9kYiIsICJteXNxbF9xdWVyeSIsDQogICAgICAibXlzcWxfdW5idWZmZXJlZF9xdWVyeSIsICJteXNxbF9kYl9xdWVyeSIsICJteXNxbF9saXN0X2RicyIsDQogICAgICAibXlzcWxfbGlzdF90YWJsZXMiLCAibXlzcWxfbGlzdF9maWVsZHMiLCAibXlzcWxfbGlzdF9wcm9jZXNzZXMiLA0KICAgICAgIm15c3FsX2Vycm9yIiwgIm15c3FsX2Vycm5vIiwgIm15c3FsX2FmZmVjdGVkX3Jvd3MiLCAibXlzcWxfaW5zZXJ0X2lkIiwNCiAgICAgICJteXNxbF9yZXN1bHQiLCAibXlzcWxfbnVtX3Jvd3MiLCAibXlzcWxfbnVtX2ZpZWxkcyIsICJteXNxbF9mZXRjaF9yb3ciLA0KICAgICAgIm15c3FsX2ZldGNoX2FycmF5IiwgIm15c3FsX2ZldGNoX2Fzc29jIiwgIm15c3FsX2ZldGNoX29iamVjdCIsDQogICAgICAibXlzcWxfZGF0YV9zZWVrIiwgIm15c3FsX2ZldGNoX2xlbmd0aHMiLCAibXlzcWxfZmV0Y2hfZmllbGQiLA0KICAgICAgIm15c3FsX2ZpZWxkX3NlZWsiLCAibXlzcWxfZnJlZV9yZXN1bHQiLCAibXlzcWxfZmllbGRfbmFtZSIsDQogICAgICAibXlzcWxfZmllbGRfdGFibGUiLCAibXlzcWxfZmllbGRfbGVuIiwgIm15c3FsX2ZpZWxkX3R5cGUiLA0KICAgICAgIm15c3FsX2ZpZWxkX2ZsYWdzIiwgIm15c3FsX2VzY2FwZV9zdHJpbmciLCAibXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nIiwNCiAgICAgICJteXNxbF9zdGF0IiwgIm15c3FsX3RocmVhZF9pZCIsICJteXNxbF9jbGllbnRfZW5jb2RpbmciLCAibXlzcWxfcGluZyIsDQogICAgICAibXlzcWxfZ2V0X2NsaWVudF9pbmZvIiwgIm15c3FsX2dldF9ob3N0X2luZm8iLCAibXlzcWxfZ2V0X3Byb3RvX2luZm8iLA0KICAgICAgIm15c3FsX2dldF9zZXJ2ZXJfaW5mbyIsICJteXNxbF9pbmZvIiwgIm15c3FsX3NldF9jaGFyc2V0IiwgIm15c3FsIiwNCiAgICAgICJteXNxbF9maWVsZG5hbWUiLCAibXlzcWxfZmllbGR0YWJsZSIsICJteXNxbF9maWVsZGxlbiIsICJteXNxbF9maWVsZHR5cGUiLA0KICAgICAgIm15c3FsX2ZpZWxkZmxhZ3MiLCAibXlzcWxfc2VsZWN0ZGIiLCAibXlzcWxfZnJlZXJlc3VsdCIsICJteXNxbF9udW1maWVsZHMiLA0KICAgICAgIm15c3FsX251bXJvd3MiLCAibXlzcWxfbGlzdGRicyIsICJteXNxbF9saXN0dGFibGVzIiwgIm15c3FsX2xpc3RmaWVsZHMiLA0KICAgICAgIm15c3FsX2RiX25hbWUiLCAibXlzcWxfZGJuYW1lIiwgIm15c3FsX3RhYmxlbmFtZSIsICJteXNxbF90YWJsZV9uYW1lIiwNCiAgICAgICJteXNxbGlfYWZmZWN0ZWRfcm93cyIsICJteXNxbGlfYXV0b2NvbW1pdCIsICJteXNxbGlfY2hhbmdlX3VzZXIiLA0KICAgICAgIm15c3FsaV9jaGFyYWN0ZXJfc2V0X25hbWUiLCAibXlzcWxpX2Nsb3NlIiwgIm15c3FsaV9jb21taXQiLCAibXlzcWxpX2Nvbm5lY3QiLA0KICAgICAgIm15c3FsaV9jb25uZWN0X2Vycm5vIiwgIm15c3FsaV9jb25uZWN0X2Vycm9yIiwgIm15c3FsaV9kYXRhX3NlZWsiLA0KICAgICAgIm15c3FsaV9kZWJ1ZyIsICJteXNxbGlfZGlzYWJsZV9yZWFkc19mcm9tX21hc3RlciIsICJteXNxbGlfZGlzYWJsZV9ycGxfcGFyc2UiLA0KICAgICAgIm15c3FsaV9kdW1wX2RlYnVnX2luZm8iLCAibXlzcWxpX2VuYWJsZV9yZWFkc19mcm9tX21hc3RlciIsDQogICAgICAibXlzcWxpX2VuYWJsZV9ycGxfcGFyc2UiLCAibXlzcWxpX2VtYmVkZGVkX3NlcnZlcl9lbmQiLA0KICAgICAgIm15c3FsaV9lbWJlZGRlZF9zZXJ2ZXJfc3RhcnQiLCAibXlzcWxpX2Vycm5vIiwgIm15c3FsaV9lcnJvciIsDQogICAgICAibXlzcWxpX3N0bXRfZXhlY3V0ZSIsICJteXNxbGlfZXhlY3V0ZSIsICJteXNxbGlfZmV0Y2hfZmllbGQiLA0KICAgICAgIm15c3FsaV9mZXRjaF9maWVsZHMiLCAibXlzcWxpX2ZldGNoX2ZpZWxkX2RpcmVjdCIsICJteXNxbGlfZmV0Y2hfbGVuZ3RocyIsDQogICAgICAibXlzcWxpX2ZldGNoX2FycmF5IiwgIm15c3FsaV9mZXRjaF9hc3NvYyIsICJteXNxbGlfZmV0Y2hfb2JqZWN0IiwNCiAgICAgICJteXNxbGlfZmV0Y2hfcm93IiwgIm15c3FsaV9maWVsZF9jb3VudCIsICJteXNxbGlfZmllbGRfc2VlayIsDQogICAgICAibXlzcWxpX2ZpZWxkX3RlbGwiLCAibXlzcWxpX2ZyZWVfcmVzdWx0IiwgIm15c3FsaV9nZXRfY2hhcnNldCIsDQogICAgICAibXlzcWxpX2dldF9jbGllbnRfaW5mbyIsICJteXNxbGlfZ2V0X2NsaWVudF92ZXJzaW9uIiwgIm15c3FsaV9nZXRfaG9zdF9pbmZvIiwNCiAgICAgICJteXNxbGlfZ2V0X3Byb3RvX2luZm8iLCAibXlzcWxpX2dldF9zZXJ2ZXJfaW5mbyIsICJteXNxbGlfZ2V0X3NlcnZlcl92ZXJzaW9uIiwNCiAgICAgICJteXNxbGlfZ2V0X3dhcm5pbmdzIiwgIm15c3FsaV9pbml0IiwgIm15c3FsaV9pbmZvIiwgIm15c3FsaV9pbnNlcnRfaWQiLA0KICAgICAgIm15c3FsaV9raWxsIiwgIm15c3FsaV9zZXRfbG9jYWxfaW5maWxlX2RlZmF1bHQiLA0KICAgICAgIm15c3FsaV9zZXRfbG9jYWxfaW5maWxlX2hhbmRsZXIiLCAibXlzcWxpX21hc3Rlcl9xdWVyeSIsDQogICAgICAibXlzcWxpX21vcmVfcmVzdWx0cyIsICJteXNxbGlfbXVsdGlfcXVlcnkiLCAibXlzcWxpX25leHRfcmVzdWx0IiwNCiAgICAgICJteXNxbGlfbnVtX2ZpZWxkcyIsICJteXNxbGlfbnVtX3Jvd3MiLCAibXlzcWxpX29wdGlvbnMiLCAibXlzcWxpX3BpbmciLA0KICAgICAgIm15c3FsaV9wcmVwYXJlIiwgIm15c3FsaV9yZXBvcnQiLCAibXlzcWxpX3F1ZXJ5IiwgIm15c3FsaV9yZWFsX2Nvbm5lY3QiLA0KICAgICAgIm15c3FsaV9yZWFsX2VzY2FwZV9zdHJpbmciLCAibXlzcWxpX3JlYWxfcXVlcnkiLCAibXlzcWxpX3JvbGxiYWNrIiwNCiAgICAgICJteXNxbGlfcnBsX3BhcnNlX2VuYWJsZWQiLCAibXlzcWxpX3JwbF9wcm9iZSIsICJteXNxbGlfcnBsX3F1ZXJ5X3R5cGUiLA0KICAgICAgIm15c3FsaV9zZWxlY3RfZGIiLCAibXlzcWxpX3NldF9jaGFyc2V0IiwgIm15c3FsaV9zdG10X2F0dHJfZ2V0IiwNCiAgICAgICJteXNxbGlfc3RtdF9hdHRyX3NldCIsICJteXNxbGlfc3RtdF9maWVsZF9jb3VudCIsICJteXNxbGlfc3RtdF9pbml0IiwNCiAgICAgICJteXNxbGlfc3RtdF9wcmVwYXJlIiwgIm15c3FsaV9zdG10X3Jlc3VsdF9tZXRhZGF0YSIsDQogICAgICAibXlzcWxpX3N0bXRfc2VuZF9sb25nX2RhdGEiLCAibXlzcWxpX3N0bXRfYmluZF9wYXJhbSIsDQogICAgICAibXlzcWxpX3N0bXRfYmluZF9yZXN1bHQiLCAibXlzcWxpX3N0bXRfZmV0Y2giLCAibXlzcWxpX3N0bXRfZnJlZV9yZXN1bHQiLA0KICAgICAgIm15c3FsaV9zdG10X2dldF93YXJuaW5ncyIsICJteXNxbGlfc3RtdF9pbnNlcnRfaWQiLCAibXlzcWxpX3N0bXRfcmVzZXQiLA0KICAgICAgIm15c3FsaV9zdG10X3BhcmFtX2NvdW50IiwgIm15c3FsaV9zZW5kX3F1ZXJ5IiwgIm15c3FsaV9zbGF2ZV9xdWVyeSIsDQogICAgICAibXlzcWxpX3NxbHN0YXRlIiwgIm15c3FsaV9zc2xfc2V0IiwgIm15c3FsaV9zdGF0IiwNCiAgICAgICJteXNxbGlfc3RtdF9hZmZlY3RlZF9yb3dzIiwgIm15c3FsaV9zdG10X2Nsb3NlIiwgIm15c3FsaV9zdG10X2RhdGFfc2VlayIsDQogICAgICAibXlzcWxpX3N0bXRfZXJybm8iLCAibXlzcWxpX3N0bXRfZXJyb3IiLCAibXlzcWxpX3N0bXRfbnVtX3Jvd3MiLA0KICAgICAgIm15c3FsaV9zdG10X3NxbHN0YXRlIiwgIm15c3FsaV9zdG9yZV9yZXN1bHQiLCAibXlzcWxpX3N0bXRfc3RvcmVfcmVzdWx0IiwNCiAgICAgICJteXNxbGlfdGhyZWFkX2lkIiwgIm15c3FsaV90aHJlYWRfc2FmZSIsICJteXNxbGlfdXNlX3Jlc3VsdCIsDQogICAgICAibXlzcWxpX3dhcm5pbmdfY291bnQiLCAibXlzcWxpX2JpbmRfcGFyYW0iLCAibXlzcWxpX2JpbmRfcmVzdWx0IiwNCiAgICAgICJteXNxbGlfY2xpZW50X2VuY29kaW5nIiwgIm15c3FsaV9lc2NhcGVfc3RyaW5nIiwgIm15c3FsaV9mZXRjaCIsDQogICAgICAibXlzcWxpX3BhcmFtX2NvdW50IiwgIm15c3FsaV9nZXRfbWV0YWRhdGEiLCAibXlzcWxpX3NlbmRfbG9uZ19kYXRhIiwNCiAgICAgICJteXNxbGlfc2V0X29wdCIsICJwZG9fZHJpdmVycyIsICJzb2NrZXRfc2VsZWN0IiwgInNvY2tldF9jcmVhdGUiLA0KICAgICAgInNvY2tldF9jcmVhdGVfbGlzdGVuIiwgInNvY2tldF9hY2NlcHQiLCAic29ja2V0X3NldF9ub25ibG9jayIsDQogICAgICAic29ja2V0X3NldF9ibG9jayIsICJzb2NrZXRfbGlzdGVuIiwgInNvY2tldF9jbG9zZSIsICJzb2NrZXRfd3JpdGUiLA0KICAgICAgInNvY2tldF9yZWFkIiwgInNvY2tldF9nZXRzb2NrbmFtZSIsICJzb2NrZXRfZ2V0cGVlcm5hbWUiLCAic29ja2V0X2Nvbm5lY3QiLA0KICAgICAgInNvY2tldF9zdHJlcnJvciIsICJzb2NrZXRfYmluZCIsICJzb2NrZXRfcmVjdiIsICJzb2NrZXRfc2VuZCIsDQogICAgICAic29ja2V0X3JlY3Zmcm9tIiwgInNvY2tldF9zZW5kdG8iLCAic29ja2V0X2dldF9vcHRpb24iLCAic29ja2V0X3NldF9vcHRpb24iLA0KICAgICAgInNvY2tldF9zaHV0ZG93biIsICJzb2NrZXRfbGFzdF9lcnJvciIsICJzb2NrZXRfY2xlYXJfZXJyb3IiLCAic29ja2V0X2dldG9wdCIsDQogICAgICAic29ja2V0X3NldG9wdCIsICJlYWNjZWxlcmF0b3JfcHV0IiwgImVhY2NlbGVyYXRvcl9nZXQiLCAiZWFjY2VsZXJhdG9yX3JtIiwNCiAgICAgICJlYWNjZWxlcmF0b3JfZ2MiLCAiZWFjY2VsZXJhdG9yX2xvY2siLCAiZWFjY2VsZXJhdG9yX3VubG9jayIsDQogICAgICAiZWFjY2VsZXJhdG9yX2NhY2hpbmciLCAiZWFjY2VsZXJhdG9yX29wdGltaXplciIsICJlYWNjZWxlcmF0b3JfY2xlYXIiLA0KICAgICAgImVhY2NlbGVyYXRvcl9jbGVhbiIsICJlYWNjZWxlcmF0b3JfaW5mbyIsICJlYWNjZWxlcmF0b3JfcHVyZ2UiLA0KICAgICAgImVhY2NlbGVyYXRvcl9jYWNoZWRfc2NyaXB0cyIsICJlYWNjZWxlcmF0b3JfcmVtb3ZlZF9zY3JpcHRzIiwNCiAgICAgICJlYWNjZWxlcmF0b3JfbGlzdF9rZXlzIiwgImVhY2NlbGVyYXRvcl9lbmNvZGUiLCAiZWFjY2VsZXJhdG9yX2xvYWQiLA0KICAgICAgIl9lYWNjZWxlcmF0b3JfbG9hZGVyX2ZpbGUiLCAiX2VhY2NlbGVyYXRvcl9sb2FkZXJfbGluZSIsDQogICAgICAiZWFjY2VsZXJhdG9yX3NldF9zZXNzaW9uX2hhbmRsZXJzIiwgIl9lYWNjZWxlcmF0b3Jfb3V0cHV0X2hhbmRsZXIiLA0KICAgICAgImVhY2NlbGVyYXRvcl9jYWNoZV9wYWdlIiwgImVhY2NlbGVyYXRvcl9ybV9wYWdlIiwgImVhY2NlbGVyYXRvcl9jYWNoZV9vdXRwdXQiLA0KICAgICAgImVhY2NlbGVyYXRvcl9jYWNoZV9yZXN1bHQiLCAieGRlYnVnX2dldF9zdGFja19kZXB0aCIsDQogICAgICAieGRlYnVnX2dldF9mdW5jdGlvbl9zdGFjayIsICJ4ZGVidWdfcHJpbnRfZnVuY3Rpb25fc3RhY2siLA0KICAgICAgInhkZWJ1Z19nZXRfZGVjbGFyZWRfdmFycyIsICJ4ZGVidWdfY2FsbF9jbGFzcyIsICJ4ZGVidWdfY2FsbF9mdW5jdGlvbiIsDQogICAgICAieGRlYnVnX2NhbGxfZmlsZSIsICJ4ZGVidWdfY2FsbF9saW5lIiwgInhkZWJ1Z192YXJfZHVtcCIsICJ4ZGVidWdfZGVidWdfenZhbCIsDQogICAgICAieGRlYnVnX2RlYnVnX3p2YWxfc3Rkb3V0IiwgInhkZWJ1Z19lbmFibGUiLCAieGRlYnVnX2Rpc2FibGUiLA0KICAgICAgInhkZWJ1Z19pc19lbmFibGVkIiwgInhkZWJ1Z19icmVhayIsICJ4ZGVidWdfc3RhcnRfdHJhY2UiLCAieGRlYnVnX3N0b3BfdHJhY2UiLA0KICAgICAgInhkZWJ1Z19nZXRfdHJhY2VmaWxlX25hbWUiLCAieGRlYnVnX2dldF9wcm9maWxlcl9maWxlbmFtZSIsDQogICAgICAieGRlYnVnX2R1bXBfYWdncl9wcm9maWxpbmdfZGF0YSIsICJ4ZGVidWdfY2xlYXJfYWdncl9wcm9maWxpbmdfZGF0YSIsDQogICAgICAieGRlYnVnX21lbW9yeV91c2FnZSIsICJ4ZGVidWdfcGVha19tZW1vcnlfdXNhZ2UiLCAieGRlYnVnX3RpbWVfaW5kZXgiLA0KICAgICAgInhkZWJ1Z19zdGFydF9lcnJvcl9jb2xsZWN0aW9uIiwgInhkZWJ1Z19zdG9wX2Vycm9yX2NvbGxlY3Rpb24iLA0KICAgICAgInhkZWJ1Z19nZXRfY29sbGVjdGVkX2Vycm9ycyIsICJ4ZGVidWdfc3RhcnRfY29kZV9jb3ZlcmFnZSIsDQogICAgICAieGRlYnVnX3N0b3BfY29kZV9jb3ZlcmFnZSIsICJ4ZGVidWdfZ2V0X2NvZGVfY292ZXJhZ2UiLA0KICAgICAgInhkZWJ1Z19nZXRfZnVuY3Rpb25fY291bnQiLCAieGRlYnVnX2R1bXBfc3VwZXJnbG9iYWxzIiwNCiAgICAgICJfIiwgLyogYWxpYXMgZm9yIGdldHRleHQoKSovIA0KICAgICAgImdldF9jYWxsZWRfY2xhc3MiLCJjbGFzc19hbGlhcyIsImdjX2NvbGxlY3RfY3ljbGVzIiwiZ2NfZW5hYmxlZCIsImdjX2VuYWJsZSIsDQogICAgICAiZ2NfZGlzYWJsZSIsImRhdGVfY3JlYXRlX2Zyb21fZm9ybWF0IiwiZGF0ZV9wYXJzZV9mcm9tX2Zvcm1hdCIsDQogICAgICAiZGF0ZV9nZXRfbGFzdF9lcnJvcnMiLCJkYXRlX2FkZCIsImRhdGVfc3ViIiwiZGF0ZV9kaWZmIiwiZGF0ZV90aW1lc3RhbXBfc2V0IiwNCiAgICAgICJkYXRlX3RpbWVzdGFtcF9nZXQiLCJ0aW1lem9uZV9sb2NhdGlvbl9nZXQiLCJ0aW1lem9uZV92ZXJzaW9uX2dldCIsDQogICAgICAiZGF0ZV9pbnRlcnZhbF9jcmVhdGVfZnJvbV9kYXRlX3N0cmluZyIsImRhdGVfaW50ZXJ2YWxfZm9ybWF0IiwNCiAgICAgICJsaWJ4bWxfZGlzYWJsZV9lbnRpdHlfbG9hZGVyIiwib3BlbnNzbF9wa2V5X2ZyZWUiLCJvcGVuc3NsX3BrZXlfbmV3IiwNCiAgICAgICJvcGVuc3NsX3BrZXlfZXhwb3J0Iiwib3BlbnNzbF9wa2V5X2V4cG9ydF90b19maWxlIiwib3BlbnNzbF9wa2V5X2dldF9wcml2YXRlIiwNCiAgICAgICJvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYyIsIm9wZW5zc2xfcGtleV9nZXRfZGV0YWlscyIsIm9wZW5zc2xfZnJlZV9rZXkiLA0KICAgICAgIm9wZW5zc2xfZ2V0X3ByaXZhdGVrZXkiLCJvcGVuc3NsX2dldF9wdWJsaWNrZXkiLCJvcGVuc3NsX3g1MDlfcmVhZCIsDQogICAgICAib3BlbnNzbF94NTA5X2ZyZWUiLCJvcGVuc3NsX3g1MDlfcGFyc2UiLCJvcGVuc3NsX3g1MDlfY2hlY2twdXJwb3NlIiwNCiAgICAgICJvcGVuc3NsX3g1MDlfY2hlY2tfcHJpdmF0ZV9rZXkiLCJvcGVuc3NsX3g1MDlfZXhwb3J0Iiwib3BlbnNzbF94NTA5X2V4cG9ydF90b19maWxlIiwNCiAgICAgICJvcGVuc3NsX3BrY3MxMl9leHBvcnQiLCJvcGVuc3NsX3BrY3MxMl9leHBvcnRfdG9fZmlsZSIsIm9wZW5zc2xfcGtjczEyX3JlYWQiLA0KICAgICAgIm9wZW5zc2xfY3NyX25ldyIsIm9wZW5zc2xfY3NyX2V4cG9ydCIsIm9wZW5zc2xfY3NyX2V4cG9ydF90b19maWxlIiwNCiAgICAgICJvcGVuc3NsX2Nzcl9zaWduIiwib3BlbnNzbF9jc3JfZ2V0X3N1YmplY3QiLCJvcGVuc3NsX2Nzcl9nZXRfcHVibGljX2tleSIsDQogICAgICAib3BlbnNzbF9kaWdlc3QiLCJvcGVuc3NsX2VuY3J5cHQiLCJvcGVuc3NsX2RlY3J5cHQiLCJvcGVuc3NsX2NpcGhlcl9pdl9sZW5ndGgiLA0KICAgICAgIm9wZW5zc2xfc2lnbiIsIm9wZW5zc2xfdmVyaWZ5Iiwib3BlbnNzbF9zZWFsIiwib3BlbnNzbF9vcGVuIiwib3BlbnNzbF9wa2NzN192ZXJpZnkiLA0KICAgICAgIm9wZW5zc2xfcGtjczdfZGVjcnlwdCIsIm9wZW5zc2xfcGtjczdfc2lnbiIsIm9wZW5zc2xfcGtjczdfZW5jcnlwdCIsDQogICAgICAib3BlbnNzbF9wcml2YXRlX2VuY3J5cHQiLCJvcGVuc3NsX3ByaXZhdGVfZGVjcnlwdCIsIm9wZW5zc2xfcHVibGljX2VuY3J5cHQiLA0KICAgICAgIm9wZW5zc2xfcHVibGljX2RlY3J5cHQiLCJvcGVuc3NsX2dldF9tZF9tZXRob2RzIiwib3BlbnNzbF9nZXRfY2lwaGVyX21ldGhvZHMiLA0KICAgICAgIm9wZW5zc2xfZGhfY29tcHV0ZV9rZXkiLCJvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMiLCJvcGVuc3NsX2Vycm9yX3N0cmluZyIsDQogICAgICAicHJlZ19maWx0ZXIiLCJiem9wZW4iLCJienJlYWQiLCJiendyaXRlIiwiYnpmbHVzaCIsImJ6Y2xvc2UiLCJiemVycm5vIiwNCiAgICAgICJiemVycnN0ciIsImJ6ZXJyb3IiLCJiemNvbXByZXNzIiwiYnpkZWNvbXByZXNzIiwiY3VybF9pbml0IiwiY3VybF9jb3B5X2hhbmRsZSIsDQogICAgICAiY3VybF92ZXJzaW9uIiwiY3VybF9zZXRvcHQiLCJjdXJsX3NldG9wdF9hcnJheSIsImN1cmxfZXhlYyIsImN1cmxfZ2V0aW5mbyIsDQogICAgICAiY3VybF9lcnJvciIsImN1cmxfZXJybm8iLCJjdXJsX2Nsb3NlIiwiY3VybF9tdWx0aV9pbml0IiwiY3VybF9tdWx0aV9hZGRfaGFuZGxlIiwNCiAgICAgICJjdXJsX211bHRpX3JlbW92ZV9oYW5kbGUiLCJjdXJsX211bHRpX3NlbGVjdCIsImN1cmxfbXVsdGlfZXhlYyIsImN1cmxfbXVsdGlfZ2V0Y29udGVudCIsDQogICAgICAiY3VybF9tdWx0aV9pbmZvX3JlYWQiLCJjdXJsX211bHRpX2Nsb3NlIiwiZXhpZl9yZWFkX2RhdGEiLCJyZWFkX2V4aWZfZGF0YSIsDQogICAgICAiZXhpZl90YWduYW1lIiwiZXhpZl90aHVtYm5haWwiLCJleGlmX2ltYWdldHlwZSIsImZ0cF9zc2xfY29ubmVjdCIsDQogICAgICAiaW1hZ2Vjb2xvcmNsb3Nlc3Rod2IiLCJpbWFnZWNyZWF0ZWZyb214cG0iLCJ0ZXh0ZG9tYWluIiwiZ2V0dGV4dCIsImRnZXR0ZXh0IiwNCiAgICAgICJkY2dldHRleHQiLCJiaW5kdGV4dGRvbWFpbiIsIm5nZXR0ZXh0IiwiZG5nZXR0ZXh0IiwiZGNuZ2V0dGV4dCIsDQogICAgICAiYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQiLCJoYXNoX2NvcHkiLCJpbWFwX29wZW4iLCJpbWFwX3Jlb3BlbiIsImltYXBfY2xvc2UiLA0KICAgICAgImltYXBfbnVtX21zZyIsImltYXBfbnVtX3JlY2VudCIsImltYXBfaGVhZGVycyIsImltYXBfaGVhZGVyaW5mbyIsDQogICAgICAiaW1hcF9yZmM4MjJfcGFyc2VfaGVhZGVycyIsImltYXBfcmZjODIyX3dyaXRlX2FkZHJlc3MiLCJpbWFwX3JmYzgyMl9wYXJzZV9hZHJsaXN0IiwNCiAgICAgICJpbWFwX2JvZHkiLCJpbWFwX2JvZHlzdHJ1Y3QiLCJpbWFwX2ZldGNoYm9keSIsImltYXBfc2F2ZWJvZHkiLCJpbWFwX2ZldGNoaGVhZGVyIiwNCiAgICAgICJpbWFwX2ZldGNoc3RydWN0dXJlIiwiaW1hcF9nYyIsImltYXBfZXhwdW5nZSIsImltYXBfZGVsZXRlIiwiaW1hcF91bmRlbGV0ZSIsDQogICAgICAiaW1hcF9jaGVjayIsImltYXBfbGlzdHNjYW4iLCJpbWFwX21haWxfY29weSIsImltYXBfbWFpbF9tb3ZlIiwiaW1hcF9tYWlsX2NvbXBvc2UiLA0KICAgICAgImltYXBfY3JlYXRlbWFpbGJveCIsImltYXBfcmVuYW1lbWFpbGJveCIsImltYXBfZGVsZXRlbWFpbGJveCIsImltYXBfc3Vic2NyaWJlIiwNCiAgICAgICJpbWFwX3Vuc3Vic2NyaWJlIiwiaW1hcF9hcHBlbmQiLCJpbWFwX3BpbmciLCJpbWFwX2Jhc2U2NCIsImltYXBfcXByaW50IiwiaW1hcF84Yml0IiwNCiAgICAgICJpbWFwX2JpbmFyeSIsImltYXBfdXRmOCIsImltYXBfc3RhdHVzIiwiaW1hcF9tYWlsYm94bXNnaW5mbyIsImltYXBfc2V0ZmxhZ19mdWxsIiwNCiAgICAgICJpbWFwX2NsZWFyZmxhZ19mdWxsIiwiaW1hcF9zb3J0IiwiaW1hcF91aWQiLCJpbWFwX21zZ25vIiwiaW1hcF9saXN0IiwiaW1hcF9sc3ViIiwNCiAgICAgICJpbWFwX2ZldGNoX292ZXJ2aWV3IiwiaW1hcF9hbGVydHMiLCJpbWFwX2Vycm9ycyIsImltYXBfbGFzdF9lcnJvciIsImltYXBfc2VhcmNoIiwNCiAgICAgICJpbWFwX3V0ZjdfZGVjb2RlIiwiaW1hcF91dGY3X2VuY29kZSIsImltYXBfbWltZV9oZWFkZXJfZGVjb2RlIiwiaW1hcF90aHJlYWQiLA0KICAgICAgImltYXBfdGltZW91dCIsImltYXBfZ2V0X3F1b3RhIiwiaW1hcF9nZXRfcXVvdGFyb290IiwiaW1hcF9zZXRfcXVvdGEiLCJpbWFwX3NldGFjbCIsDQogICAgICAiaW1hcF9nZXRhY2wiLCJpbWFwX21haWwiLCJpbWFwX2hlYWRlciIsImltYXBfbGlzdG1haWxib3giLCJpbWFwX2dldG1haWxib3hlcyIsDQogICAgICAiaW1hcF9zY2FubWFpbGJveCIsImltYXBfbGlzdHN1YnNjcmliZWQiLCJpbWFwX2dldHN1YnNjcmliZWQiLCJpbWFwX2ZldGNodGV4dCIsDQogICAgICAiaW1hcF9zY2FuIiwiaW1hcF9jcmVhdGUiLCJpbWFwX3JlbmFtZSIsImpzb25fbGFzdF9lcnJvciIsIm1iX2VuY29kaW5nX2FsaWFzZXMiLA0KICAgICAgIm1jcnlwdF9lY2IiLCJtY3J5cHRfY2JjIiwibWNyeXB0X2NmYiIsIm1jcnlwdF9vZmIiLCJtY3J5cHRfZ2V0X2tleV9zaXplIiwNCiAgICAgICJtY3J5cHRfZ2V0X2Jsb2NrX3NpemUiLCJtY3J5cHRfZ2V0X2NpcGhlcl9uYW1lIiwibWNyeXB0X2NyZWF0ZV9pdiIsIm1jcnlwdF9saXN0X2FsZ29yaXRobXMiLA0KICAgICAgIm1jcnlwdF9saXN0X21vZGVzIiwibWNyeXB0X2dldF9pdl9zaXplIiwibWNyeXB0X2VuY3J5cHQiLCJtY3J5cHRfZGVjcnlwdCIsDQogICAgICAibWNyeXB0X21vZHVsZV9vcGVuIiwibWNyeXB0X2dlbmVyaWNfaW5pdCIsIm1jcnlwdF9nZW5lcmljIiwibWRlY3J5cHRfZ2VuZXJpYyIsDQogICAgICAibWNyeXB0X2dlbmVyaWNfZW5kIiwibWNyeXB0X2dlbmVyaWNfZGVpbml0IiwibWNyeXB0X2VuY19zZWxmX3Rlc3QiLA0KICAgICAgIm1jcnlwdF9lbmNfaXNfYmxvY2tfYWxnb3JpdGhtX21vZGUiLCJtY3J5cHRfZW5jX2lzX2Jsb2NrX2FsZ29yaXRobSIsDQogICAgICAibWNyeXB0X2VuY19pc19ibG9ja19tb2RlIiwibWNyeXB0X2VuY19nZXRfYmxvY2tfc2l6ZSIsIm1jcnlwdF9lbmNfZ2V0X2tleV9zaXplIiwNCiAgICAgICJtY3J5cHRfZW5jX2dldF9zdXBwb3J0ZWRfa2V5X3NpemVzIiwibWNyeXB0X2VuY19nZXRfaXZfc2l6ZSIsDQogICAgICAibWNyeXB0X2VuY19nZXRfYWxnb3JpdGhtc19uYW1lIiwibWNyeXB0X2VuY19nZXRfbW9kZXNfbmFtZSIsIm1jcnlwdF9tb2R1bGVfc2VsZl90ZXN0IiwNCiAgICAgICJtY3J5cHRfbW9kdWxlX2lzX2Jsb2NrX2FsZ29yaXRobV9tb2RlIiwibWNyeXB0X21vZHVsZV9pc19ibG9ja19hbGdvcml0aG0iLA0KICAgICAgIm1jcnlwdF9tb2R1bGVfaXNfYmxvY2tfbW9kZSIsIm1jcnlwdF9tb2R1bGVfZ2V0X2FsZ29fYmxvY2tfc2l6ZSIsDQogICAgICAibWNyeXB0X21vZHVsZV9nZXRfYWxnb19rZXlfc2l6ZSIsIm1jcnlwdF9tb2R1bGVfZ2V0X3N1cHBvcnRlZF9rZXlfc2l6ZXMiLA0KICAgICAgIm1jcnlwdF9tb2R1bGVfY2xvc2UiLCJteXNxbGlfcmVmcmVzaCIsInBvc2l4X2tpbGwiLCJwb3NpeF9nZXRwaWQiLCJwb3NpeF9nZXRwcGlkIiwNCiAgICAgICJwb3NpeF9nZXR1aWQiLCJwb3NpeF9zZXR1aWQiLCJwb3NpeF9nZXRldWlkIiwicG9zaXhfc2V0ZXVpZCIsInBvc2l4X2dldGdpZCIsDQogICAgICAicG9zaXhfc2V0Z2lkIiwicG9zaXhfZ2V0ZWdpZCIsInBvc2l4X3NldGVnaWQiLCJwb3NpeF9nZXRncm91cHMiLCJwb3NpeF9nZXRsb2dpbiIsDQogICAgICAicG9zaXhfZ2V0cGdycCIsInBvc2l4X3NldHNpZCIsInBvc2l4X3NldHBnaWQiLCJwb3NpeF9nZXRwZ2lkIiwicG9zaXhfZ2V0c2lkIiwNCiAgICAgICJwb3NpeF91bmFtZSIsInBvc2l4X3RpbWVzIiwicG9zaXhfY3Rlcm1pZCIsInBvc2l4X3R0eW5hbWUiLCJwb3NpeF9pc2F0dHkiLA0KICAgICAgInBvc2l4X2dldGN3ZCIsInBvc2l4X21rZmlmbyIsInBvc2l4X21rbm9kIiwicG9zaXhfYWNjZXNzIiwicG9zaXhfZ2V0Z3JuYW0iLA0KICAgICAgInBvc2l4X2dldGdyZ2lkIiwicG9zaXhfZ2V0cHduYW0iLCJwb3NpeF9nZXRwd3VpZCIsInBvc2l4X2dldHJsaW1pdCIsDQogICAgICAicG9zaXhfZ2V0X2xhc3RfZXJyb3IiLCJwb3NpeF9lcnJubyIsInBvc2l4X3N0cmVycm9yIiwicG9zaXhfaW5pdGdyb3VwcyIsDQogICAgICAicHNwZWxsX25ldyIsInBzcGVsbF9uZXdfcGVyc29uYWwiLCJwc3BlbGxfbmV3X2NvbmZpZyIsInBzcGVsbF9jaGVjayIsDQogICAgICAicHNwZWxsX3N1Z2dlc3QiLCJwc3BlbGxfc3RvcmVfcmVwbGFjZW1lbnQiLCJwc3BlbGxfYWRkX3RvX3BlcnNvbmFsIiwNCiAgICAgICJwc3BlbGxfYWRkX3RvX3Nlc3Npb24iLCJwc3BlbGxfY2xlYXJfc2Vzc2lvbiIsInBzcGVsbF9zYXZlX3dvcmRsaXN0IiwNCiAgICAgICJwc3BlbGxfY29uZmlnX2NyZWF0ZSIsInBzcGVsbF9jb25maWdfcnVudG9nZXRoZXIiLCJwc3BlbGxfY29uZmlnX21vZGUiLA0KICAgICAgInBzcGVsbF9jb25maWdfaWdub3JlIiwicHNwZWxsX2NvbmZpZ19wZXJzb25hbCIsInBzcGVsbF9jb25maWdfZGljdF9kaXIiLA0KICAgICAgInBzcGVsbF9jb25maWdfZGF0YV9kaXIiLCJwc3BlbGxfY29uZmlnX3JlcGwiLCJwc3BlbGxfY29uZmlnX3NhdmVfcmVwbCIsDQogICAgICAic25tcGdldCIsInNubXBnZXRuZXh0Iiwic25tcHdhbGsiLCJzbm1wcmVhbHdhbGsiLCJzbm1wd2Fsa29pZCIsDQogICAgICAic25tcF9nZXRfcXVpY2tfcHJpbnQiLCJzbm1wX3NldF9xdWlja19wcmludCIsInNubXBfc2V0X2VudW1fcHJpbnQiLA0KICAgICAgInNubXBfc2V0X29pZF9vdXRwdXRfZm9ybWF0Iiwic25tcF9zZXRfb2lkX251bWVyaWNfcHJpbnQiLCJzbm1wc2V0IiwNCiAgICAgICJzbm1wMl9nZXQiLCJzbm1wMl9nZXRuZXh0Iiwic25tcDJfd2FsayIsInNubXAyX3JlYWxfd2FsayIsInNubXAyX3NldCIsDQogICAgICAic25tcDNfZ2V0Iiwic25tcDNfZ2V0bmV4dCIsInNubXAzX3dhbGsiLCJzbm1wM19yZWFsX3dhbGsiLCJzbm1wM19zZXQiLA0KICAgICAgInNubXBfc2V0X3ZhbHVlcmV0cmlldmFsIiwic25tcF9nZXRfdmFsdWVyZXRyaWV2YWwiLCJzbm1wX3JlYWRfbWliIiwNCiAgICAgICJ1c2Vfc29hcF9lcnJvcl9oYW5kbGVyIiwiaXNfc29hcF9mYXVsdCIsInNvY2tldF9jcmVhdGVfcGFpciIsInRpbWVfbmFub3NsZWVwIiwNCiAgICAgICJ0aW1lX3NsZWVwX3VudGlsIiwic3RycHRpbWUiLCJwaHBfaW5pX2xvYWRlZF9maWxlIiwibW9uZXlfZm9ybWF0IiwibGNmaXJzdCIsDQogICAgICAibmxfbGFuZ2luZm8iLCJzdHJfZ2V0Y3N2IiwicmVhZGxpbmsiLCJsaW5raW5mbyIsInN5bWxpbmsiLCJsaW5rIiwicHJvY19uaWNlIiwNCiAgICAgICJhdGFuaCIsImFzaW5oIiwiYWNvc2giLCJleHBtMSIsImxvZzFwIiwiaW5ldF9udG9wIiwiaW5ldF9wdG9uIiwiZ2V0b3B0IiwNCiAgICAgICJzeXNfZ2V0bG9hZGF2ZyIsImdldHJ1c2FnZSIsInF1b3RlZF9wcmludGFibGVfZW5jb2RlIiwiZm9yd2FyZF9zdGF0aWNfY2FsbCIsDQogICAgICAiZm9yd2FyZF9zdGF0aWNfY2FsbF9hcnJheSIsImhlYWRlcl9yZW1vdmUiLCJwYXJzZV9pbmlfc3RyaW5nIiwiZ2V0aG9zdG5hbWUiLA0KICAgICAgImRuc19jaGVja19yZWNvcmQiLCJjaGVja2Ruc3JyIiwiZG5zX2dldF9teCIsImdldG14cnIiLCJkbnNfZ2V0X3JlY29yZCIsDQogICAgICAic3RyZWFtX2NvbnRleHRfZ2V0X3BhcmFtcyIsInN0cmVhbV9jb250ZXh0X3NldF9kZWZhdWx0Iiwic3RyZWFtX3NvY2tldF9wYWlyIiwNCiAgICAgICJzdHJlYW1fc3VwcG9ydHNfbG9jayIsInN0cmVhbV9zZXRfcmVhZF9idWZmZXIiLCJzdHJlYW1fcmVzb2x2ZV9pbmNsdWRlX3BhdGgiLA0KICAgICAgInN0cmVhbV9pc19sb2NhbCIsImZubWF0Y2giLCJjaHJvb3QiLCJsY2hvd24iLCJsY2hncnAiLCJyZWFscGF0aF9jYWNoZV9zaXplIiwNCiAgICAgICJyZWFscGF0aF9jYWNoZV9nZXQiLCJhcnJheV9yZXBsYWNlIiwiYXJyYXlfcmVwbGFjZV9yZWN1cnNpdmUiLCJmdG9rIiwieG1scnBjX2VuY29kZSIsDQogICAgICAieG1scnBjX2RlY29kZSIsInhtbHJwY19kZWNvZGVfcmVxdWVzdCIsInhtbHJwY19lbmNvZGVfcmVxdWVzdCIsInhtbHJwY19nZXRfdHlwZSIsDQogICAgICAieG1scnBjX3NldF90eXBlIiwieG1scnBjX2lzX2ZhdWx0IiwieG1scnBjX3NlcnZlcl9jcmVhdGUiLCJ4bWxycGNfc2VydmVyX2Rlc3Ryb3kiLA0KICAgICAgInhtbHJwY19zZXJ2ZXJfcmVnaXN0ZXJfbWV0aG9kIiwieG1scnBjX3NlcnZlcl9jYWxsX21ldGhvZCIsDQogICAgICAieG1scnBjX3BhcnNlX21ldGhvZF9kZXNjcmlwdGlvbnMiLCJ4bWxycGNfc2VydmVyX2FkZF9pbnRyb3NwZWN0aW9uX2RhdGEiLA0KICAgICAgInhtbHJwY19zZXJ2ZXJfcmVnaXN0ZXJfaW50cm9zcGVjdGlvbl9jYWxsYmFjayIsInppcF9vcGVuIiwiemlwX2Nsb3NlIiwNCiAgICAgICJ6aXBfcmVhZCIsInppcF9lbnRyeV9vcGVuIiwiemlwX2VudHJ5X2Nsb3NlIiwiemlwX2VudHJ5X3JlYWQiLCJ6aXBfZW50cnlfZmlsZXNpemUiLA0KICAgICAgInppcF9lbnRyeV9uYW1lIiwiemlwX2VudHJ5X2NvbXByZXNzZWRzaXplIiwiemlwX2VudHJ5X2NvbXByZXNzaW9ubWV0aG9kIiwNCiAgICAgICJzdm5fY2hlY2tvdXQiLCJzdm5fY2F0Iiwic3ZuX2xzIiwic3ZuX2xvZyIsInN2bl9hdXRoX3NldF9wYXJhbWV0ZXIiLA0KICAgICAgInN2bl9hdXRoX2dldF9wYXJhbWV0ZXIiLCJzdm5fY2xpZW50X3ZlcnNpb24iLCJzdm5fY29uZmlnX2Vuc3VyZSIsInN2bl9kaWZmIiwNCiAgICAgICJzdm5fY2xlYW51cCIsInN2bl9yZXZlcnQiLCJzdm5fcmVzb2x2ZWQiLCJzdm5fY29tbWl0Iiwic3ZuX2xvY2siLCJzdm5fdW5sb2NrIiwNCiAgICAgICJzdm5fYWRkIiwic3ZuX3N0YXR1cyIsInN2bl91cGRhdGUiLCJzdm5faW1wb3J0Iiwic3ZuX2luZm8iLCJzdm5fZXhwb3J0IiwNCiAgICAgICJzdm5fY29weSIsInN2bl9zd2l0Y2giLCJzdm5fYmxhbWUiLCJzdm5fZGVsZXRlIiwic3ZuX21rZGlyIiwic3ZuX21vdmUiLA0KICAgICAgInN2bl9wcm9wbGlzdCIsInN2bl9wcm9wZ2V0Iiwic3ZuX3JlcG9zX2NyZWF0ZSIsInN2bl9yZXBvc19yZWNvdmVyIiwNCiAgICAgICJzdm5fcmVwb3NfaG90Y29weSIsInN2bl9yZXBvc19vcGVuIiwic3ZuX3JlcG9zX2ZzIiwNCiAgICAgICJzdm5fcmVwb3NfZnNfYmVnaW5fdHhuX2Zvcl9jb21taXQiLCJzdm5fcmVwb3NfZnNfY29tbWl0X3R4biIsDQogICAgICAic3ZuX2ZzX3JldmlzaW9uX3Jvb3QiLCJzdm5fZnNfY2hlY2tfcGF0aCIsInN2bl9mc19yZXZpc2lvbl9wcm9wIiwNCiAgICAgICJzdm5fZnNfZGlyX2VudHJpZXMiLCJzdm5fZnNfbm9kZV9jcmVhdGVkX3JldiIsInN2bl9mc195b3VuZ2VzdF9yZXYiLA0KICAgICAgInN2bl9mc19maWxlX2NvbnRlbnRzIiwic3ZuX2ZzX2ZpbGVfbGVuZ3RoIiwic3ZuX2ZzX3R4bl9yb290Iiwic3ZuX2ZzX21ha2VfZmlsZSIsDQogICAgICAic3ZuX2ZzX21ha2VfZGlyIiwic3ZuX2ZzX2FwcGx5X3RleHQiLCJzdm5fZnNfY29weSIsInN2bl9mc19kZWxldGUiLA0KICAgICAgInN2bl9mc19iZWdpbl90eG4yIiwic3ZuX2ZzX2lzX2RpciIsInN2bl9mc19pc19maWxlIiwic3ZuX2ZzX25vZGVfcHJvcCIsDQogICAgICAic3ZuX2ZzX2NoYW5nZV9ub2RlX3Byb3AiLCJzdm5fZnNfY29udGVudHNfY2hhbmdlZCIsInN2bl9mc19wcm9wc19jaGFuZ2VkIiwNCiAgICAgICJzdm5fZnNfYWJvcnRfdHhuIiwic3FsaXRlX29wZW4iLCJzcWxpdGVfcG9wZW4iLCJzcWxpdGVfY2xvc2UiLCJzcWxpdGVfcXVlcnkiLA0KICAgICAgInNxbGl0ZV9leGVjIiwic3FsaXRlX2FycmF5X3F1ZXJ5Iiwic3FsaXRlX3NpbmdsZV9xdWVyeSIsInNxbGl0ZV9mZXRjaF9hcnJheSIsDQogICAgICAic3FsaXRlX2ZldGNoX29iamVjdCIsInNxbGl0ZV9mZXRjaF9zaW5nbGUiLCJzcWxpdGVfZmV0Y2hfc3RyaW5nIiwNCiAgICAgICJzcWxpdGVfZmV0Y2hfYWxsIiwic3FsaXRlX2N1cnJlbnQiLCJzcWxpdGVfY29sdW1uIiwic3FsaXRlX2xpYnZlcnNpb24iLA0KICAgICAgInNxbGl0ZV9saWJlbmNvZGluZyIsInNxbGl0ZV9jaGFuZ2VzIiwic3FsaXRlX2xhc3RfaW5zZXJ0X3Jvd2lkIiwNCiAgICAgICJzcWxpdGVfbnVtX3Jvd3MiLCJzcWxpdGVfbnVtX2ZpZWxkcyIsInNxbGl0ZV9maWVsZF9uYW1lIiwic3FsaXRlX3NlZWsiLA0KICAgICAgInNxbGl0ZV9yZXdpbmQiLCJzcWxpdGVfbmV4dCIsInNxbGl0ZV9wcmV2Iiwic3FsaXRlX3ZhbGlkIiwic3FsaXRlX2hhc19tb3JlIiwNCiAgICAgICJzcWxpdGVfaGFzX3ByZXYiLCJzcWxpdGVfZXNjYXBlX3N0cmluZyIsInNxbGl0ZV9idXN5X3RpbWVvdXQiLCJzcWxpdGVfbGFzdF9lcnJvciIsDQogICAgICAic3FsaXRlX2Vycm9yX3N0cmluZyIsInNxbGl0ZV91bmJ1ZmZlcmVkX3F1ZXJ5Iiwic3FsaXRlX2NyZWF0ZV9hZ2dyZWdhdGUiLA0KICAgICAgInNxbGl0ZV9jcmVhdGVfZnVuY3Rpb24iLCJzcWxpdGVfZmFjdG9yeSIsInNxbGl0ZV91ZGZfZW5jb2RlX2JpbmFyeSIsDQogICAgICAic3FsaXRlX3VkZl9kZWNvZGVfYmluYXJ5Iiwic3FsaXRlX2ZldGNoX2NvbHVtbl90eXBlcyINCiAgICBdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigidF9zdHJpbmciLCAicGhwLXByZWRlZmluZWQtZnVuY3Rpb24iKTsNCiAgICB9KTsNCg0KICAgIC8vIG91dHB1dCBvZiBnZXRfZGVmaW5lZF9jb25zdGFudHMoKS4gRGlmZmVycyBzaWduaWZpY2FudGx5IGZyb20gaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL3Jlc2VydmVkLmNvbnN0YW50cy5waHANCiAgICBbICJFX0VSUk9SIiwgIkVfUkVDT1ZFUkFCTEVfRVJST1IiLCAiRV9XQVJOSU5HIiwgIkVfUEFSU0UiLCAiRV9OT1RJQ0UiLA0KICAgICAgIkVfU1RSSUNUIiwgIkVfQ09SRV9FUlJPUiIsICJFX0NPUkVfV0FSTklORyIsICJFX0NPTVBJTEVfRVJST1IiLA0KICAgICAgIkVfQ09NUElMRV9XQVJOSU5HIiwgIkVfVVNFUl9FUlJPUiIsICJFX1VTRVJfV0FSTklORyIsICJFX1VTRVJfTk9USUNFIiwNCiAgICAgICJFX0FMTCIsICJUUlVFIiwgIkZBTFNFIiwgIk5VTEwiLCAiWkVORF9USFJFQURfU0FGRSIsICJQSFBfVkVSU0lPTiIsICJQSFBfT1MiLA0KICAgICAgIlBIUF9TQVBJIiwgIkRFRkFVTFRfSU5DTFVERV9QQVRIIiwgIlBFQVJfSU5TVEFMTF9ESVIiLCAiUEVBUl9FWFRFTlNJT05fRElSIiwNCiAgICAgICJQSFBfRVhURU5TSU9OX0RJUiIsICJQSFBfUFJFRklYIiwgIlBIUF9CSU5ESVIiLCAiUEhQX0xJQkRJUiIsICJQSFBfREFUQURJUiIsDQogICAgICAiUEhQX1NZU0NPTkZESVIiLCAiUEhQX0xPQ0FMU1RBVEVESVIiLCAiUEhQX0NPTkZJR19GSUxFX1BBVEgiLA0KICAgICAgIlBIUF9DT05GSUdfRklMRV9TQ0FOX0RJUiIsICJQSFBfU0hMSUJfU1VGRklYIiwgIlBIUF9FT0wiLCAiUEhQX0VPTCIsDQogICAgICAiUEhQX0lOVF9NQVgiLCAiUEhQX0lOVF9TSVpFIiwgIlBIUF9PVVRQVVRfSEFORExFUl9TVEFSVCIsDQogICAgICAiUEhQX09VVFBVVF9IQU5ETEVSX0NPTlQiLCAiUEhQX09VVFBVVF9IQU5ETEVSX0VORCIsICJVUExPQURfRVJSX09LIiwNCiAgICAgICJVUExPQURfRVJSX0lOSV9TSVpFIiwgIlVQTE9BRF9FUlJfRk9STV9TSVpFIiwgIlVQTE9BRF9FUlJfUEFSVElBTCIsDQogICAgICAiVVBMT0FEX0VSUl9OT19GSUxFIiwgIlVQTE9BRF9FUlJfTk9fVE1QX0RJUiIsICJVUExPQURfRVJSX0NBTlRfV1JJVEUiLA0KICAgICAgIlVQTE9BRF9FUlJfRVhURU5TSU9OIiwgIkNBTF9HUkVHT1JJQU4iLCAiQ0FMX0pVTElBTiIsICJDQUxfSkVXSVNIIiwNCiAgICAgICJDQUxfRlJFTkNIIiwgIkNBTF9OVU1fQ0FMUyIsICJDQUxfRE9XX0RBWU5PIiwgIkNBTF9ET1dfU0hPUlQiLCAiQ0FMX0RPV19MT05HIiwNCiAgICAgICJDQUxfTU9OVEhfR1JFR09SSUFOX1NIT1JUIiwgIkNBTF9NT05USF9HUkVHT1JJQU5fTE9ORyIsDQogICAgICAiQ0FMX01PTlRIX0pVTElBTl9TSE9SVCIsICJDQUxfTU9OVEhfSlVMSUFOX0xPTkciLCAiQ0FMX01PTlRIX0pFV0lTSCIsDQogICAgICAiQ0FMX01PTlRIX0ZSRU5DSCIsICJDQUxfRUFTVEVSX0RFRkFVTFQiLCAiQ0FMX0VBU1RFUl9ST01BTiIsDQogICAgICAiQ0FMX0VBU1RFUl9BTFdBWVNfR1JFR09SSUFOIiwgIkNBTF9FQVNURVJfQUxXQVlTX0pVTElBTiIsDQogICAgICAiQ0FMX0pFV0lTSF9BRERfQUxBRklNX0dFUkVTSCIsICJDQUxfSkVXSVNIX0FERF9BTEFGSU0iLA0KICAgICAgIkNBTF9KRVdJU0hfQUREX0dFUkVTSEFZSU0iLCAiQ0xTQ1RYX0lOUFJPQ19TRVJWRVIiLCAiQ0xTQ1RYX0lOUFJPQ19IQU5ETEVSIiwNCiAgICAgICJDTFNDVFhfTE9DQUxfU0VSVkVSIiwgIkNMU0NUWF9SRU1PVEVfU0VSVkVSIiwgIkNMU0NUWF9TRVJWRVIiLCAiQ0xTQ1RYX0FMTCIsDQogICAgICAiVlRfTlVMTCIsICJWVF9FTVBUWSIsICJWVF9VSTEiLCAiVlRfSTEiLCAiVlRfVUkyIiwgIlZUX0kyIiwgIlZUX1VJNCIsICJWVF9JNCIsDQogICAgICAiVlRfUjQiLCAiVlRfUjgiLCAiVlRfQk9PTCIsICJWVF9FUlJPUiIsICJWVF9DWSIsICJWVF9EQVRFIiwgIlZUX0JTVFIiLA0KICAgICAgIlZUX0RFQ0lNQUwiLCAiVlRfVU5LTk9XTiIsICJWVF9ESVNQQVRDSCIsICJWVF9WQVJJQU5UIiwgIlZUX0lOVCIsICJWVF9VSU5UIiwNCiAgICAgICJWVF9BUlJBWSIsICJWVF9CWVJFRiIsICJDUF9BQ1AiLCAiQ1BfTUFDQ1AiLCAiQ1BfT0VNQ1AiLCAiQ1BfVVRGNyIsICJDUF9VVEY4IiwNCiAgICAgICJDUF9TWU1CT0wiLCAiQ1BfVEhSRUFEX0FDUCIsICJWQVJDTVBfTFQiLCAiVkFSQ01QX0VRIiwgIlZBUkNNUF9HVCIsDQogICAgICAiVkFSQ01QX05VTEwiLCAiTk9STV9JR05PUkVDQVNFIiwgIk5PUk1fSUdOT1JFTk9OU1BBQ0UiLCAiTk9STV9JR05PUkVTWU1CT0xTIiwNCiAgICAgICJOT1JNX0lHTk9SRVdJRFRIIiwgIk5PUk1fSUdOT1JFS0FOQVRZUEUiLCAiRElTUF9FX0RJVkJZWkVSTyIsDQogICAgICAiRElTUF9FX09WRVJGTE9XIiwgIkRJU1BfRV9CQURJTkRFWCIsICJNS19FX1VOQVZBSUxBQkxFIiwgIklOUFVUX1BPU1QiLA0KICAgICAgIklOUFVUX0dFVCIsICJJTlBVVF9DT09LSUUiLCAiSU5QVVRfRU5WIiwgIklOUFVUX1NFUlZFUiIsICJJTlBVVF9TRVNTSU9OIiwNCiAgICAgICJJTlBVVF9SRVFVRVNUIiwgIkZJTFRFUl9GTEFHX05PTkUiLCAiRklMVEVSX1JFUVVJUkVfU0NBTEFSIiwNCiAgICAgICJGSUxURVJfUkVRVUlSRV9BUlJBWSIsICJGSUxURVJfRk9SQ0VfQVJSQVkiLCAiRklMVEVSX05VTExfT05fRkFJTFVSRSIsDQogICAgICAiRklMVEVSX1ZBTElEQVRFX0lOVCIsICJGSUxURVJfVkFMSURBVEVfQk9PTEVBTiIsICJGSUxURVJfVkFMSURBVEVfRkxPQVQiLA0KICAgICAgIkZJTFRFUl9WQUxJREFURV9SRUdFWFAiLCAiRklMVEVSX1ZBTElEQVRFX1VSTCIsICJGSUxURVJfVkFMSURBVEVfRU1BSUwiLA0KICAgICAgIkZJTFRFUl9WQUxJREFURV9JUCIsICJGSUxURVJfREVGQVVMVCIsICJGSUxURVJfVU5TQUZFX1JBVyIsDQogICAgICAiRklMVEVSX1NBTklUSVpFX1NUUklORyIsICJGSUxURVJfU0FOSVRJWkVfU1RSSVBQRUQiLA0KICAgICAgIkZJTFRFUl9TQU5JVElaRV9FTkNPREVEIiwgIkZJTFRFUl9TQU5JVElaRV9TUEVDSUFMX0NIQVJTIiwNCiAgICAgICJGSUxURVJfU0FOSVRJWkVfRU1BSUwiLCAiRklMVEVSX1NBTklUSVpFX1VSTCIsICJGSUxURVJfU0FOSVRJWkVfTlVNQkVSX0lOVCIsDQogICAgICAiRklMVEVSX1NBTklUSVpFX05VTUJFUl9GTE9BVCIsICJGSUxURVJfU0FOSVRJWkVfTUFHSUNfUVVPVEVTIiwNCiAgICAgICJGSUxURVJfQ0FMTEJBQ0siLCAiRklMVEVSX0ZMQUdfQUxMT1dfT0NUQUwiLCAiRklMVEVSX0ZMQUdfQUxMT1dfSEVYIiwNCiAgICAgICJGSUxURVJfRkxBR19TVFJJUF9MT1ciLCAiRklMVEVSX0ZMQUdfU1RSSVBfSElHSCIsICJGSUxURVJfRkxBR19FTkNPREVfTE9XIiwNCiAgICAgICJGSUxURVJfRkxBR19FTkNPREVfSElHSCIsICJGSUxURVJfRkxBR19FTkNPREVfQU1QIiwNCiAgICAgICJGSUxURVJfRkxBR19OT19FTkNPREVfUVVPVEVTIiwgIkZJTFRFUl9GTEFHX0VNUFRZX1NUUklOR19OVUxMIiwNCiAgICAgICJGSUxURVJfRkxBR19BTExPV19GUkFDVElPTiIsICJGSUxURVJfRkxBR19BTExPV19USE9VU0FORCIsDQogICAgICAiRklMVEVSX0ZMQUdfQUxMT1dfU0NJRU5USUZJQyIsICJGSUxURVJfRkxBR19TQ0hFTUVfUkVRVUlSRUQiLA0KICAgICAgIkZJTFRFUl9GTEFHX0hPU1RfUkVRVUlSRUQiLCAiRklMVEVSX0ZMQUdfUEFUSF9SRVFVSVJFRCIsDQogICAgICAiRklMVEVSX0ZMQUdfUVVFUllfUkVRVUlSRUQiLCAiRklMVEVSX0ZMQUdfSVBWNCIsICJGSUxURVJfRkxBR19JUFY2IiwNCiAgICAgICJGSUxURVJfRkxBR19OT19SRVNfUkFOR0UiLCAiRklMVEVSX0ZMQUdfTk9fUFJJVl9SQU5HRSIsICJGVFBfQVNDSUkiLA0KICAgICAgIkZUUF9URVhUIiwgIkZUUF9CSU5BUlkiLCAiRlRQX0lNQUdFIiwgIkZUUF9BVVRPUkVTVU1FIiwgIkZUUF9USU1FT1VUX1NFQyIsDQogICAgICAiRlRQX0FVVE9TRUVLIiwgIkZUUF9GQUlMRUQiLCAiRlRQX0ZJTklTSEVEIiwgIkZUUF9NT1JFREFUQSIsICJIQVNIX0hNQUMiLA0KICAgICAgIklDT05WX0lNUEwiLCAiSUNPTlZfVkVSU0lPTiIsICJJQ09OVl9NSU1FX0RFQ09ERV9TVFJJQ1QiLA0KICAgICAgIklDT05WX01JTUVfREVDT0RFX0NPTlRJTlVFX09OX0VSUk9SIiwgIk9EQkNfVFlQRSIsICJPREJDX0JJTk1PREVfUEFTU1RIUlUiLA0KICAgICAgIk9EQkNfQklOTU9ERV9SRVRVUk4iLCAiT0RCQ19CSU5NT0RFX0NPTlZFUlQiLCAiU1FMX09EQkNfQ1VSU09SUyIsDQogICAgICAiU1FMX0NVUl9VU0VfRFJJVkVSIiwgIlNRTF9DVVJfVVNFX0lGX05FRURFRCIsICJTUUxfQ1VSX1VTRV9PREJDIiwNCiAgICAgICJTUUxfQ09OQ1VSUkVOQ1kiLCAiU1FMX0NPTkNVUl9SRUFEX09OTFkiLCAiU1FMX0NPTkNVUl9MT0NLIiwNCiAgICAgICJTUUxfQ09OQ1VSX1JPV1ZFUiIsICJTUUxfQ09OQ1VSX1ZBTFVFUyIsICJTUUxfQ1VSU09SX1RZUEUiLA0KICAgICAgIlNRTF9DVVJTT1JfRk9SV0FSRF9PTkxZIiwgIlNRTF9DVVJTT1JfS0VZU0VUX0RSSVZFTiIsICJTUUxfQ1VSU09SX0RZTkFNSUMiLA0KICAgICAgIlNRTF9DVVJTT1JfU1RBVElDIiwgIlNRTF9LRVlTRVRfU0laRSIsICJTUUxfRkVUQ0hfRklSU1QiLCAiU1FMX0ZFVENIX05FWFQiLA0KICAgICAgIlNRTF9DSEFSIiwgIlNRTF9WQVJDSEFSIiwgIlNRTF9MT05HVkFSQ0hBUiIsICJTUUxfREVDSU1BTCIsICJTUUxfTlVNRVJJQyIsDQogICAgICAiU1FMX0JJVCIsICJTUUxfVElOWUlOVCIsICJTUUxfU01BTExJTlQiLCAiU1FMX0lOVEVHRVIiLCAiU1FMX0JJR0lOVCIsDQogICAgICAiU1FMX1JFQUwiLCAiU1FMX0ZMT0FUIiwgIlNRTF9ET1VCTEUiLCAiU1FMX0JJTkFSWSIsICJTUUxfVkFSQklOQVJZIiwNCiAgICAgICJTUUxfTE9OR1ZBUkJJTkFSWSIsICJTUUxfREFURSIsICJTUUxfVElNRSIsICJTUUxfVElNRVNUQU1QIiwNCiAgICAgICJQUkVHX1BBVFRFUk5fT1JERVIiLCAiUFJFR19TRVRfT1JERVIiLCAiUFJFR19PRkZTRVRfQ0FQVFVSRSIsDQogICAgICAiUFJFR19TUExJVF9OT19FTVBUWSIsICJQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUiLCAiUFJFR19TUExJVF9PRkZTRVRfQ0FQVFVSRSIsDQogICAgICAiUFJFR19HUkVQX0lOVkVSVCIsICJQUkVHX05PX0VSUk9SIiwgIlBSRUdfSU5URVJOQUxfRVJST1IiLA0KICAgICAgIlBSRUdfQkFDS1RSQUNLX0xJTUlUX0VSUk9SIiwgIlBSRUdfUkVDVVJTSU9OX0xJTUlUX0VSUk9SIiwNCiAgICAgICJQUkVHX0JBRF9VVEY4X0VSUk9SIiwgIkRBVEVfQVRPTSIsICJEQVRFX0NPT0tJRSIsICJEQVRFX0lTTzg2MDEiLA0KICAgICAgIkRBVEVfUkZDODIyIiwgIkRBVEVfUkZDODUwIiwgIkRBVEVfUkZDMTAzNiIsICJEQVRFX1JGQzExMjMiLCAiREFURV9SRkMyODIyIiwNCiAgICAgICJEQVRFX1JGQzMzMzkiLCAiREFURV9SU1MiLCAiREFURV9XM0MiLCAiU1VORlVOQ1NfUkVUX1RJTUVTVEFNUCIsDQogICAgICAiU1VORlVOQ1NfUkVUX1NUUklORyIsICJTVU5GVU5DU19SRVRfRE9VQkxFIiwgIkxJQlhNTF9WRVJTSU9OIiwNCiAgICAgICJMSUJYTUxfRE9UVEVEX1ZFUlNJT04iLCAiTElCWE1MX05PRU5UIiwgIkxJQlhNTF9EVERMT0FEIiwgIkxJQlhNTF9EVERBVFRSIiwNCiAgICAgICJMSUJYTUxfRFREVkFMSUQiLCAiTElCWE1MX05PRVJST1IiLCAiTElCWE1MX05PV0FSTklORyIsICJMSUJYTUxfTk9CTEFOS1MiLA0KICAgICAgIkxJQlhNTF9YSU5DTFVERSIsICJMSUJYTUxfTlNDTEVBTiIsICJMSUJYTUxfTk9DREFUQSIsICJMSUJYTUxfTk9ORVQiLA0KICAgICAgIkxJQlhNTF9DT01QQUNUIiwgIkxJQlhNTF9OT1hNTERFQ0wiLCAiTElCWE1MX05PRU1QVFlUQUciLCAiTElCWE1MX0VSUl9OT05FIiwNCiAgICAgICJMSUJYTUxfRVJSX1dBUk5JTkciLCAiTElCWE1MX0VSUl9FUlJPUiIsICJMSUJYTUxfRVJSX0ZBVEFMIiwNCiAgICAgICJDT05ORUNUSU9OX0FCT1JURUQiLCAiQ09OTkVDVElPTl9OT1JNQUwiLCAiQ09OTkVDVElPTl9USU1FT1VUIiwgIklOSV9VU0VSIiwNCiAgICAgICJJTklfUEVSRElSIiwgIklOSV9TWVNURU0iLCAiSU5JX0FMTCIsICJQSFBfVVJMX1NDSEVNRSIsICJQSFBfVVJMX0hPU1QiLA0KICAgICAgIlBIUF9VUkxfUE9SVCIsICJQSFBfVVJMX1VTRVIiLCAiUEhQX1VSTF9QQVNTIiwgIlBIUF9VUkxfUEFUSCIsDQogICAgICAiUEhQX1VSTF9RVUVSWSIsICJQSFBfVVJMX0ZSQUdNRU5UIiwgIk1fRSIsICJNX0xPRzJFIiwgIk1fTE9HMTBFIiwgIk1fTE4yIiwNCiAgICAgICJNX0xOMTAiLCAiTV9QSSIsICJNX1BJXzIiLCAiTV9QSV80IiwgIk1fMV9QSSIsICJNXzJfUEkiLCAiTV9TUVJUUEkiLA0KICAgICAgIk1fMl9TUVJUUEkiLCAiTV9MTlBJIiwgIk1fRVVMRVIiLCAiTV9TUVJUMiIsICJNX1NRUlQxXzIiLCAiTV9TUVJUMyIsICJJTkYiLA0KICAgICAgIk5BTiIsICJJTkZPX0dFTkVSQUwiLCAiSU5GT19DUkVESVRTIiwgIklORk9fQ09ORklHVVJBVElPTiIsICJJTkZPX01PRFVMRVMiLA0KICAgICAgIklORk9fRU5WSVJPTk1FTlQiLCAiSU5GT19WQVJJQUJMRVMiLCAiSU5GT19MSUNFTlNFIiwgIklORk9fQUxMIiwNCiAgICAgICJDUkVESVRTX0dST1VQIiwgIkNSRURJVFNfR0VORVJBTCIsICJDUkVESVRTX1NBUEkiLCAiQ1JFRElUU19NT0RVTEVTIiwNCiAgICAgICJDUkVESVRTX0RPQ1MiLCAiQ1JFRElUU19GVUxMUEFHRSIsICJDUkVESVRTX1FBIiwgIkNSRURJVFNfQUxMIiwNCiAgICAgICJIVE1MX1NQRUNJQUxDSEFSUyIsICJIVE1MX0VOVElUSUVTIiwgIkVOVF9DT01QQVQiLCAiRU5UX1FVT1RFUyIsDQogICAgICAiRU5UX05PUVVPVEVTIiwgIlNUUl9QQURfTEVGVCIsICJTVFJfUEFEX1JJR0hUIiwgIlNUUl9QQURfQk9USCIsDQogICAgICAiUEFUSElORk9fRElSTkFNRSIsICJQQVRISU5GT19CQVNFTkFNRSIsICJQQVRISU5GT19FWFRFTlNJT04iLA0KICAgICAgIlBBVEhJTkZPX0ZJTEVOQU1FIiwgIkNIQVJfTUFYIiwgIkxDX0NUWVBFIiwgIkxDX05VTUVSSUMiLCAiTENfVElNRSIsDQogICAgICAiTENfQ09MTEFURSIsICJMQ19NT05FVEFSWSIsICJMQ19BTEwiLCAiU0VFS19TRVQiLCAiU0VFS19DVVIiLCAiU0VFS19FTkQiLA0KICAgICAgIkxPQ0tfU0giLCAiTE9DS19FWCIsICJMT0NLX1VOIiwgIkxPQ0tfTkIiLCAiU1RSRUFNX05PVElGWV9DT05ORUNUIiwNCiAgICAgICJTVFJFQU1fTk9USUZZX0FVVEhfUkVRVUlSRUQiLCAiU1RSRUFNX05PVElGWV9BVVRIX1JFU1VMVCIsDQogICAgICAiU1RSRUFNX05PVElGWV9NSU1FX1RZUEVfSVMiLCAiU1RSRUFNX05PVElGWV9GSUxFX1NJWkVfSVMiLA0KICAgICAgIlNUUkVBTV9OT1RJRllfUkVESVJFQ1RFRCIsICJTVFJFQU1fTk9USUZZX1BST0dSRVNTIiwgIlNUUkVBTV9OT1RJRllfRkFJTFVSRSIsDQogICAgICAiU1RSRUFNX05PVElGWV9DT01QTEVURUQiLCAiU1RSRUFNX05PVElGWV9SRVNPTFZFIiwNCiAgICAgICJTVFJFQU1fTk9USUZZX1NFVkVSSVRZX0lORk8iLCAiU1RSRUFNX05PVElGWV9TRVZFUklUWV9XQVJOIiwNCiAgICAgICJTVFJFQU1fTk9USUZZX1NFVkVSSVRZX0VSUiIsICJTVFJFQU1fRklMVEVSX1JFQUQiLCAiU1RSRUFNX0ZJTFRFUl9XUklURSIsDQogICAgICAiU1RSRUFNX0ZJTFRFUl9BTEwiLCAiU1RSRUFNX0NMSUVOVF9QRVJTSVNURU5UIiwgIlNUUkVBTV9DTElFTlRfQVNZTkNfQ09OTkVDVCIsDQogICAgICAiU1RSRUFNX0NMSUVOVF9DT05ORUNUIiwgIlNUUkVBTV9DUllQVE9fTUVUSE9EX1NTTHYyX0NMSUVOVCIsDQogICAgICAiU1RSRUFNX0NSWVBUT19NRVRIT0RfU1NMdjNfQ0xJRU5UIiwgIlNUUkVBTV9DUllQVE9fTUVUSE9EX1NTTHYyM19DTElFTlQiLA0KICAgICAgIlNUUkVBTV9DUllQVE9fTUVUSE9EX1RMU19DTElFTlQiLCAiU1RSRUFNX0NSWVBUT19NRVRIT0RfU1NMdjJfU0VSVkVSIiwNCiAgICAgICJTVFJFQU1fQ1JZUFRPX01FVEhPRF9TU0x2M19TRVJWRVIiLCAiU1RSRUFNX0NSWVBUT19NRVRIT0RfU1NMdjIzX1NFUlZFUiIsDQogICAgICAiU1RSRUFNX0NSWVBUT19NRVRIT0RfVExTX1NFUlZFUiIsICJTVFJFQU1fU0hVVF9SRCIsICJTVFJFQU1fU0hVVF9XUiIsDQogICAgICAiU1RSRUFNX1NIVVRfUkRXUiIsICJTVFJFQU1fUEZfSU5FVCIsICJTVFJFQU1fUEZfSU5FVDYiLCAiU1RSRUFNX1BGX1VOSVgiLA0KICAgICAgIlNUUkVBTV9JUFBST1RPX0lQIiwgIlNUUkVBTV9JUFBST1RPX1RDUCIsICJTVFJFQU1fSVBQUk9UT19VRFAiLA0KICAgICAgIlNUUkVBTV9JUFBST1RPX0lDTVAiLCAiU1RSRUFNX0lQUFJPVE9fUkFXIiwgIlNUUkVBTV9TT0NLX1NUUkVBTSIsDQogICAgICAiU1RSRUFNX1NPQ0tfREdSQU0iLCAiU1RSRUFNX1NPQ0tfUkFXIiwgIlNUUkVBTV9TT0NLX1NFUVBBQ0tFVCIsDQogICAgICAiU1RSRUFNX1NPQ0tfUkRNIiwgIlNUUkVBTV9QRUVLIiwgIlNUUkVBTV9PT0IiLCAiU1RSRUFNX1NFUlZFUl9CSU5EIiwNCiAgICAgICJTVFJFQU1fU0VSVkVSX0xJU1RFTiIsICJGSUxFX1VTRV9JTkNMVURFX1BBVEgiLCAiRklMRV9JR05PUkVfTkVXX0xJTkVTIiwNCiAgICAgICJGSUxFX1NLSVBfRU1QVFlfTElORVMiLCAiRklMRV9BUFBFTkQiLCAiRklMRV9OT19ERUZBVUxUX0NPTlRFWFQiLA0KICAgICAgIlBTRlNfUEFTU19PTiIsICJQU0ZTX0ZFRURfTUUiLCAiUFNGU19FUlJfRkFUQUwiLCAiUFNGU19GTEFHX05PUk1BTCIsDQogICAgICAiUFNGU19GTEFHX0ZMVVNIX0lOQyIsICJQU0ZTX0ZMQUdfRkxVU0hfQ0xPU0UiLCAiQ1JZUFRfU0FMVF9MRU5HVEgiLA0KICAgICAgIkNSWVBUX1NURF9ERVMiLCAiQ1JZUFRfRVhUX0RFUyIsICJDUllQVF9NRDUiLCAiQ1JZUFRfQkxPV0ZJU0giLA0KICAgICAgIkRJUkVDVE9SWV9TRVBBUkFUT1IiLCAiUEFUSF9TRVBBUkFUT1IiLCAiR0xPQl9CUkFDRSIsICJHTE9CX01BUksiLA0KICAgICAgIkdMT0JfTk9TT1JUIiwgIkdMT0JfTk9DSEVDSyIsICJHTE9CX05PRVNDQVBFIiwgIkdMT0JfRVJSIiwgIkdMT0JfT05MWURJUiIsDQogICAgICAiTE9HX0VNRVJHIiwgIkxPR19BTEVSVCIsICJMT0dfQ1JJVCIsICJMT0dfRVJSIiwgIkxPR19XQVJOSU5HIiwgIkxPR19OT1RJQ0UiLA0KICAgICAgIkxPR19JTkZPIiwgIkxPR19ERUJVRyIsICJMT0dfS0VSTiIsICJMT0dfVVNFUiIsICJMT0dfTUFJTCIsICJMT0dfREFFTU9OIiwNCiAgICAgICJMT0dfQVVUSCIsICJMT0dfU1lTTE9HIiwgIkxPR19MUFIiLCAiTE9HX05FV1MiLCAiTE9HX1VVQ1AiLCAiTE9HX0NST04iLA0KICAgICAgIkxPR19BVVRIUFJJViIsICJMT0dfUElEIiwgIkxPR19DT05TIiwgIkxPR19PREVMQVkiLCAiTE9HX05ERUxBWSIsDQogICAgICAiTE9HX05PV0FJVCIsICJMT0dfUEVSUk9SIiwgIkVYVFJfT1ZFUldSSVRFIiwgIkVYVFJfU0tJUCIsICJFWFRSX1BSRUZJWF9TQU1FIiwNCiAgICAgICJFWFRSX1BSRUZJWF9BTEwiLCAiRVhUUl9QUkVGSVhfSU5WQUxJRCIsICJFWFRSX1BSRUZJWF9JRl9FWElTVFMiLA0KICAgICAgIkVYVFJfSUZfRVhJU1RTIiwgIkVYVFJfUkVGUyIsICJTT1JUX0FTQyIsICJTT1JUX0RFU0MiLCAiU09SVF9SRUdVTEFSIiwNCiAgICAgICJTT1JUX05VTUVSSUMiLCAiU09SVF9TVFJJTkciLCAiU09SVF9MT0NBTEVfU1RSSU5HIiwgIkNBU0VfTE9XRVIiLA0KICAgICAgIkNBU0VfVVBQRVIiLCAiQ09VTlRfTk9STUFMIiwgIkNPVU5UX1JFQ1VSU0lWRSIsICJBU1NFUlRfQUNUSVZFIiwNCiAgICAgICJBU1NFUlRfQ0FMTEJBQ0siLCAiQVNTRVJUX0JBSUwiLCAiQVNTRVJUX1dBUk5JTkciLCAiQVNTRVJUX1FVSUVUX0VWQUwiLA0KICAgICAgIlNUUkVBTV9VU0VfUEFUSCIsICJTVFJFQU1fSUdOT1JFX1VSTCIsICJTVFJFQU1fRU5GT1JDRV9TQUZFX01PREUiLA0KICAgICAgIlNUUkVBTV9SRVBPUlRfRVJST1JTIiwgIlNUUkVBTV9NVVNUX1NFRUsiLCAiU1RSRUFNX1VSTF9TVEFUX0xJTksiLA0KICAgICAgIlNUUkVBTV9VUkxfU1RBVF9RVUlFVCIsICJTVFJFQU1fTUtESVJfUkVDVVJTSVZFIiwgIklNQUdFVFlQRV9HSUYiLA0KICAgICAgIklNQUdFVFlQRV9KUEVHIiwgIklNQUdFVFlQRV9QTkciLCAiSU1BR0VUWVBFX1NXRiIsICJJTUFHRVRZUEVfUFNEIiwNCiAgICAgICJJTUFHRVRZUEVfQk1QIiwgIklNQUdFVFlQRV9USUZGX0lJIiwgIklNQUdFVFlQRV9USUZGX01NIiwgIklNQUdFVFlQRV9KUEMiLA0KICAgICAgIklNQUdFVFlQRV9KUDIiLCAiSU1BR0VUWVBFX0pQWCIsICJJTUFHRVRZUEVfSkIyIiwgIklNQUdFVFlQRV9TV0MiLA0KICAgICAgIklNQUdFVFlQRV9JRkYiLCAiSU1BR0VUWVBFX1dCTVAiLCAiSU1BR0VUWVBFX0pQRUcyMDAwIiwgIklNQUdFVFlQRV9YQk0iLA0KICAgICAgIlRfSU5DTFVERSIsICJUX0lOQ0xVREVfT05DRSIsICJUX0VWQUwiLCAiVF9SRVFVSVJFIiwgIlRfUkVRVUlSRV9PTkNFIiwNCiAgICAgICJUX0xPR0lDQUxfT1IiLCAiVF9MT0dJQ0FMX1hPUiIsICJUX0xPR0lDQUxfQU5EIiwgIlRfUFJJTlQiLCAiVF9QTFVTX0VRVUFMIiwNCiAgICAgICJUX01JTlVTX0VRVUFMIiwgIlRfTVVMX0VRVUFMIiwgIlRfRElWX0VRVUFMIiwgIlRfQ09OQ0FUX0VRVUFMIiwgIlRfTU9EX0VRVUFMIiwNCiAgICAgICJUX0FORF9FUVVBTCIsICJUX09SX0VRVUFMIiwgIlRfWE9SX0VRVUFMIiwgIlRfU0xfRVFVQUwiLCAiVF9TUl9FUVVBTCIsDQogICAgICAiVF9CT09MRUFOX09SIiwgIlRfQk9PTEVBTl9BTkQiLCAiVF9JU19FUVVBTCIsICJUX0lTX05PVF9FUVVBTCIsDQogICAgICAiVF9JU19JREVOVElDQUwiLCAiVF9JU19OT1RfSURFTlRJQ0FMIiwgIlRfSVNfU01BTExFUl9PUl9FUVVBTCIsDQogICAgICAiVF9JU19HUkVBVEVSX09SX0VRVUFMIiwgIlRfU0wiLCAiVF9TUiIsICJUX0lOQyIsICJUX0RFQyIsICJUX0lOVF9DQVNUIiwNCiAgICAgICJUX0RPVUJMRV9DQVNUIiwgIlRfU1RSSU5HX0NBU1QiLCAiVF9BUlJBWV9DQVNUIiwgIlRfT0JKRUNUX0NBU1QiLA0KICAgICAgIlRfQk9PTF9DQVNUIiwgIlRfVU5TRVRfQ0FTVCIsICJUX05FVyIsICJUX0VYSVQiLCAiVF9JRiIsICJUX0VMU0VJRiIsICJUX0VMU0UiLA0KICAgICAgIlRfRU5ESUYiLCAiVF9MTlVNQkVSIiwgIlRfRE5VTUJFUiIsICJUX1NUUklORyIsICJUX1NUUklOR19WQVJOQU1FIiwNCiAgICAgICJUX1ZBUklBQkxFIiwgIlRfTlVNX1NUUklORyIsICJUX0lOTElORV9IVE1MIiwgIlRfQ0hBUkFDVEVSIiwNCiAgICAgICJUX0JBRF9DSEFSQUNURVIiLCAiVF9FTkNBUFNFRF9BTkRfV0hJVEVTUEFDRSIsICJUX0NPTlNUQU5UX0VOQ0FQU0VEX1NUUklORyIsDQogICAgICAiVF9FQ0hPIiwgIlRfRE8iLCAiVF9XSElMRSIsICJUX0VORFdISUxFIiwgIlRfRk9SIiwgIlRfRU5ERk9SIiwgIlRfRk9SRUFDSCIsDQogICAgICAiVF9FTkRGT1JFQUNIIiwgIlRfREVDTEFSRSIsICJUX0VORERFQ0xBUkUiLCAiVF9BUyIsICJUX1NXSVRDSCIsICJUX0VORFNXSVRDSCIsDQogICAgICAiVF9DQVNFIiwgIlRfREVGQVVMVCIsICJUX0JSRUFLIiwgIlRfQ09OVElOVUUiLCAiVF9GVU5DVElPTiIsICJUX0NPTlNUIiwNCiAgICAgICJUX1JFVFVSTiIsICJUX1VTRSIsICJUX0dMT0JBTCIsICJUX1NUQVRJQyIsICJUX1ZBUiIsICJUX1VOU0VUIiwgIlRfSVNTRVQiLA0KICAgICAgIlRfRU1QVFkiLCAiVF9DTEFTUyIsICJUX0VYVEVORFMiLCAiVF9JTlRFUkZBQ0UiLCAiVF9JTVBMRU1FTlRTIiwNCiAgICAgICJUX09CSkVDVF9PUEVSQVRPUiIsICJUX0RPVUJMRV9BUlJPVyIsICJUX0xJU1QiLCAiVF9BUlJBWSIsICJUX0NMQVNTX0MiLA0KICAgICAgIlRfRlVOQ19DIiwgIlRfTUVUSE9EX0MiLCAiVF9MSU5FIiwgIlRfRklMRSIsICJUX0NPTU1FTlQiLCAiVF9ET0NfQ09NTUVOVCIsDQogICAgICAiVF9PUEVOX1RBRyIsICJUX09QRU5fVEFHX1dJVEhfRUNITyIsICJUX0NMT1NFX1RBRyIsICJUX1dISVRFU1BBQ0UiLA0KICAgICAgIlRfU1RBUlRfSEVSRURPQyIsICJUX0VORF9IRVJFRE9DIiwgIlRfRE9MTEFSX09QRU5fQ1VSTFlfQlJBQ0VTIiwNCiAgICAgICJUX0NVUkxZX09QRU4iLCAiVF9QQUFNQVlJTV9ORUtVRE9UQVlJTSIsICJUX0RPVUJMRV9DT0xPTiIsICJUX0FCU1RSQUNUIiwNCiAgICAgICJUX0NBVENIIiwgIlRfRklOQUwiLCAiVF9JTlNUQU5DRU9GIiwgIlRfUFJJVkFURSIsICJUX1BST1RFQ1RFRCIsICJUX1BVQkxJQyIsDQogICAgICAiVF9USFJPVyIsICJUX1RSWSIsICJUX0NMT05FIiwgIlRfSEFMVF9DT01QSUxFUiIsICJGT1JDRV9HWklQIiwNCiAgICAgICJGT1JDRV9ERUZMQVRFIiwgIlhNTF9FTEVNRU5UX05PREUiLCAiWE1MX0FUVFJJQlVURV9OT0RFIiwgIlhNTF9URVhUX05PREUiLA0KICAgICAgIlhNTF9DREFUQV9TRUNUSU9OX05PREUiLCAiWE1MX0VOVElUWV9SRUZfTk9ERSIsICJYTUxfRU5USVRZX05PREUiLA0KICAgICAgIlhNTF9QSV9OT0RFIiwgIlhNTF9DT01NRU5UX05PREUiLCAiWE1MX0RPQ1VNRU5UX05PREUiLA0KICAgICAgIlhNTF9ET0NVTUVOVF9UWVBFX05PREUiLCAiWE1MX0RPQ1VNRU5UX0ZSQUdfTk9ERSIsICJYTUxfTk9UQVRJT05fTk9ERSIsDQogICAgICAiWE1MX0hUTUxfRE9DVU1FTlRfTk9ERSIsICJYTUxfRFREX05PREUiLCAiWE1MX0VMRU1FTlRfREVDTF9OT0RFIiwNCiAgICAgICJYTUxfQVRUUklCVVRFX0RFQ0xfTk9ERSIsICJYTUxfRU5USVRZX0RFQ0xfTk9ERSIsICJYTUxfTkFNRVNQQUNFX0RFQ0xfTk9ERSIsDQogICAgICAiWE1MX0xPQ0FMX05BTUVTUEFDRSIsICJYTUxfQVRUUklCVVRFX0NEQVRBIiwgIlhNTF9BVFRSSUJVVEVfSUQiLA0KICAgICAgIlhNTF9BVFRSSUJVVEVfSURSRUYiLCAiWE1MX0FUVFJJQlVURV9JRFJFRlMiLCAiWE1MX0FUVFJJQlVURV9FTlRJVFkiLA0KICAgICAgIlhNTF9BVFRSSUJVVEVfTk1UT0tFTiIsICJYTUxfQVRUUklCVVRFX05NVE9LRU5TIiwgIlhNTF9BVFRSSUJVVEVfRU5VTUVSQVRJT04iLA0KICAgICAgIlhNTF9BVFRSSUJVVEVfTk9UQVRJT04iLCAiRE9NX1BIUF9FUlIiLCAiRE9NX0lOREVYX1NJWkVfRVJSIiwNCiAgICAgICJET01TVFJJTkdfU0laRV9FUlIiLCAiRE9NX0hJRVJBUkNIWV9SRVFVRVNUX0VSUiIsICJET01fV1JPTkdfRE9DVU1FTlRfRVJSIiwNCiAgICAgICJET01fSU5WQUxJRF9DSEFSQUNURVJfRVJSIiwgIkRPTV9OT19EQVRBX0FMTE9XRURfRVJSIiwNCiAgICAgICJET01fTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIiwgIkRPTV9OT1RfRk9VTkRfRVJSIiwNCiAgICAgICJET01fTk9UX1NVUFBPUlRFRF9FUlIiLCAiRE9NX0lOVVNFX0FUVFJJQlVURV9FUlIiLCAiRE9NX0lOVkFMSURfU1RBVEVfRVJSIiwNCiAgICAgICJET01fU1lOVEFYX0VSUiIsICJET01fSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIiwgIkRPTV9OQU1FU1BBQ0VfRVJSIiwNCiAgICAgICJET01fSU5WQUxJRF9BQ0NFU1NfRVJSIiwgIkRPTV9WQUxJREFUSU9OX0VSUiIsICJYTUxfRVJST1JfTk9ORSIsDQogICAgICAiWE1MX0VSUk9SX05PX01FTU9SWSIsICJYTUxfRVJST1JfU1lOVEFYIiwgIlhNTF9FUlJPUl9OT19FTEVNRU5UUyIsDQogICAgICAiWE1MX0VSUk9SX0lOVkFMSURfVE9LRU4iLCAiWE1MX0VSUk9SX1VOQ0xPU0VEX1RPS0VOIiwNCiAgICAgICJYTUxfRVJST1JfUEFSVElBTF9DSEFSIiwgIlhNTF9FUlJPUl9UQUdfTUlTTUFUQ0giLA0KICAgICAgIlhNTF9FUlJPUl9EVVBMSUNBVEVfQVRUUklCVVRFIiwgIlhNTF9FUlJPUl9KVU5LX0FGVEVSX0RPQ19FTEVNRU5UIiwNCiAgICAgICJYTUxfRVJST1JfUEFSQU1fRU5USVRZX1JFRiIsICJYTUxfRVJST1JfVU5ERUZJTkVEX0VOVElUWSIsDQogICAgICAiWE1MX0VSUk9SX1JFQ1VSU0lWRV9FTlRJVFlfUkVGIiwgIlhNTF9FUlJPUl9BU1lOQ19FTlRJVFkiLA0KICAgICAgIlhNTF9FUlJPUl9CQURfQ0hBUl9SRUYiLCAiWE1MX0VSUk9SX0JJTkFSWV9FTlRJVFlfUkVGIiwNCiAgICAgICJYTUxfRVJST1JfQVRUUklCVVRFX0VYVEVSTkFMX0VOVElUWV9SRUYiLCAiWE1MX0VSUk9SX01JU1BMQUNFRF9YTUxfUEkiLA0KICAgICAgIlhNTF9FUlJPUl9VTktOT1dOX0VOQ09ESU5HIiwgIlhNTF9FUlJPUl9JTkNPUlJFQ1RfRU5DT0RJTkciLA0KICAgICAgIlhNTF9FUlJPUl9VTkNMT1NFRF9DREFUQV9TRUNUSU9OIiwgIlhNTF9FUlJPUl9FWFRFUk5BTF9FTlRJVFlfSEFORExJTkciLA0KICAgICAgIlhNTF9PUFRJT05fQ0FTRV9GT0xESU5HIiwgIlhNTF9PUFRJT05fVEFSR0VUX0VOQ09ESU5HIiwNCiAgICAgICJYTUxfT1BUSU9OX1NLSVBfVEFHU1RBUlQiLCAiWE1MX09QVElPTl9TS0lQX1dISVRFIiwgIlhNTF9TQVhfSU1QTCIsICJJTUdfR0lGIiwNCiAgICAgICJJTUdfSlBHIiwgIklNR19KUEVHIiwgIklNR19QTkciLCAiSU1HX1dCTVAiLCAiSU1HX1hQTSIsICJJTUdfQ09MT1JfVElMRUQiLA0KICAgICAgIklNR19DT0xPUl9TVFlMRUQiLCAiSU1HX0NPTE9SX0JSVVNIRUQiLCAiSU1HX0NPTE9SX1NUWUxFREJSVVNIRUQiLA0KICAgICAgIklNR19DT0xPUl9UUkFOU1BBUkVOVCIsICJJTUdfQVJDX1JPVU5ERUQiLCAiSU1HX0FSQ19QSUUiLCAiSU1HX0FSQ19DSE9SRCIsDQogICAgICAiSU1HX0FSQ19OT0ZJTEwiLCAiSU1HX0FSQ19FREdFRCIsICJJTUdfR0QyX1JBVyIsICJJTUdfR0QyX0NPTVBSRVNTRUQiLA0KICAgICAgIklNR19FRkZFQ1RfUkVQTEFDRSIsICJJTUdfRUZGRUNUX0FMUEhBQkxFTkQiLCAiSU1HX0VGRkVDVF9OT1JNQUwiLA0KICAgICAgIklNR19FRkZFQ1RfT1ZFUkxBWSIsICJHRF9CVU5ETEVEIiwgIklNR19GSUxURVJfTkVHQVRFIiwNCiAgICAgICJJTUdfRklMVEVSX0dSQVlTQ0FMRSIsICJJTUdfRklMVEVSX0JSSUdIVE5FU1MiLCAiSU1HX0ZJTFRFUl9DT05UUkFTVCIsDQogICAgICAiSU1HX0ZJTFRFUl9DT0xPUklaRSIsICJJTUdfRklMVEVSX0VER0VERVRFQ1QiLCAiSU1HX0ZJTFRFUl9HQVVTU0lBTl9CTFVSIiwNCiAgICAgICJJTUdfRklMVEVSX1NFTEVDVElWRV9CTFVSIiwgIklNR19GSUxURVJfRU1CT1NTIiwgIklNR19GSUxURVJfTUVBTl9SRU1PVkFMIiwNCiAgICAgICJJTUdfRklMVEVSX1NNT09USCIsICJQTkdfTk9fRklMVEVSIiwgIlBOR19GSUxURVJfTk9ORSIsICJQTkdfRklMVEVSX1NVQiIsDQogICAgICAiUE5HX0ZJTFRFUl9VUCIsICJQTkdfRklMVEVSX0FWRyIsICJQTkdfRklMVEVSX1BBRVRIIiwgIlBOR19BTExfRklMVEVSUyIsDQogICAgICAiTUJfT1ZFUkxPQURfTUFJTCIsICJNQl9PVkVSTE9BRF9TVFJJTkciLCAiTUJfT1ZFUkxPQURfUkVHRVgiLCAiTUJfQ0FTRV9VUFBFUiIsDQogICAgICAiTUJfQ0FTRV9MT1dFUiIsICJNQl9DQVNFX1RJVExFIiwgIk1ZU1FMX0FTU09DIiwgIk1ZU1FMX05VTSIsICJNWVNRTF9CT1RIIiwNCiAgICAgICJNWVNRTF9DTElFTlRfQ09NUFJFU1MiLCAiTVlTUUxfQ0xJRU5UX1NTTCIsICJNWVNRTF9DTElFTlRfSU5URVJBQ1RJVkUiLA0KICAgICAgIk1ZU1FMX0NMSUVOVF9JR05PUkVfU1BBQ0UiLCAiTVlTUUxJX1JFQURfREVGQVVMVF9HUk9VUCIsDQogICAgICAiTVlTUUxJX1JFQURfREVGQVVMVF9GSUxFIiwgIk1ZU1FMSV9PUFRfQ09OTkVDVF9USU1FT1VUIiwNCiAgICAgICJNWVNRTElfT1BUX0xPQ0FMX0lORklMRSIsICJNWVNRTElfSU5JVF9DT01NQU5EIiwgIk1ZU1FMSV9DTElFTlRfU1NMIiwNCiAgICAgICJNWVNRTElfQ0xJRU5UX0NPTVBSRVNTIiwgIk1ZU1FMSV9DTElFTlRfSU5URVJBQ1RJVkUiLA0KICAgICAgIk1ZU1FMSV9DTElFTlRfSUdOT1JFX1NQQUNFIiwgIk1ZU1FMSV9DTElFTlRfTk9fU0NIRU1BIiwNCiAgICAgICJNWVNRTElfQ0xJRU5UX0ZPVU5EX1JPV1MiLCAiTVlTUUxJX1NUT1JFX1JFU1VMVCIsICJNWVNRTElfVVNFX1JFU1VMVCIsDQogICAgICAiTVlTUUxJX0FTU09DIiwgIk1ZU1FMSV9OVU0iLCAiTVlTUUxJX0JPVEgiLA0KICAgICAgIk1ZU1FMSV9TVE1UX0FUVFJfVVBEQVRFX01BWF9MRU5HVEgiLCAiTVlTUUxJX1NUTVRfQVRUUl9DVVJTT1JfVFlQRSIsDQogICAgICAiTVlTUUxJX0NVUlNPUl9UWVBFX05PX0NVUlNPUiIsICJNWVNRTElfQ1VSU09SX1RZUEVfUkVBRF9PTkxZIiwNCiAgICAgICJNWVNRTElfQ1VSU09SX1RZUEVfRk9SX1VQREFURSIsICJNWVNRTElfQ1VSU09SX1RZUEVfU0NST0xMQUJMRSIsDQogICAgICAiTVlTUUxJX1NUTVRfQVRUUl9QUkVGRVRDSF9ST1dTIiwgIk1ZU1FMSV9OT1RfTlVMTF9GTEFHIiwNCiAgICAgICJNWVNRTElfUFJJX0tFWV9GTEFHIiwgIk1ZU1FMSV9VTklRVUVfS0VZX0ZMQUciLCAiTVlTUUxJX01VTFRJUExFX0tFWV9GTEFHIiwNCiAgICAgICJNWVNRTElfQkxPQl9GTEFHIiwgIk1ZU1FMSV9VTlNJR05FRF9GTEFHIiwgIk1ZU1FMSV9aRVJPRklMTF9GTEFHIiwNCiAgICAgICJNWVNRTElfQVVUT19JTkNSRU1FTlRfRkxBRyIsICJNWVNRTElfVElNRVNUQU1QX0ZMQUciLCAiTVlTUUxJX1NFVF9GTEFHIiwNCiAgICAgICJNWVNRTElfTlVNX0ZMQUciLCAiTVlTUUxJX1BBUlRfS0VZX0ZMQUciLCAiTVlTUUxJX0dST1VQX0ZMQUciLA0KICAgICAgIk1ZU1FMSV9UWVBFX0RFQ0lNQUwiLCAiTVlTUUxJX1RZUEVfVElOWSIsICJNWVNRTElfVFlQRV9TSE9SVCIsDQogICAgICAiTVlTUUxJX1RZUEVfTE9ORyIsICJNWVNRTElfVFlQRV9GTE9BVCIsICJNWVNRTElfVFlQRV9ET1VCTEUiLA0KICAgICAgIk1ZU1FMSV9UWVBFX05VTEwiLCAiTVlTUUxJX1RZUEVfVElNRVNUQU1QIiwgIk1ZU1FMSV9UWVBFX0xPTkdMT05HIiwNCiAgICAgICJNWVNRTElfVFlQRV9JTlQyNCIsICJNWVNRTElfVFlQRV9EQVRFIiwgIk1ZU1FMSV9UWVBFX1RJTUUiLA0KICAgICAgIk1ZU1FMSV9UWVBFX0RBVEVUSU1FIiwgIk1ZU1FMSV9UWVBFX1lFQVIiLCAiTVlTUUxJX1RZUEVfTkVXREFURSIsDQogICAgICAiTVlTUUxJX1RZUEVfRU5VTSIsICJNWVNRTElfVFlQRV9TRVQiLCAiTVlTUUxJX1RZUEVfVElOWV9CTE9CIiwNCiAgICAgICJNWVNRTElfVFlQRV9NRURJVU1fQkxPQiIsICJNWVNRTElfVFlQRV9MT05HX0JMT0IiLCAiTVlTUUxJX1RZUEVfQkxPQiIsDQogICAgICAiTVlTUUxJX1RZUEVfVkFSX1NUUklORyIsICJNWVNRTElfVFlQRV9TVFJJTkciLCAiTVlTUUxJX1RZUEVfQ0hBUiIsDQogICAgICAiTVlTUUxJX1RZUEVfSU5URVJWQUwiLCAiTVlTUUxJX1RZUEVfR0VPTUVUUlkiLCAiTVlTUUxJX1RZUEVfTkVXREVDSU1BTCIsDQogICAgICAiTVlTUUxJX1RZUEVfQklUIiwgIk1ZU1FMSV9SUExfTUFTVEVSIiwgIk1ZU1FMSV9SUExfU0xBVkUiLCAiTVlTUUxJX1JQTF9BRE1JTiIsDQogICAgICAiTVlTUUxJX05PX0RBVEEiLCAiTVlTUUxJX0RBVEFfVFJVTkNBVEVEIiwgIk1ZU1FMSV9SRVBPUlRfSU5ERVgiLA0KICAgICAgIk1ZU1FMSV9SRVBPUlRfRVJST1IiLCAiTVlTUUxJX1JFUE9SVF9TVFJJQ1QiLCAiTVlTUUxJX1JFUE9SVF9BTEwiLA0KICAgICAgIk1ZU1FMSV9SRVBPUlRfT0ZGIiwgIkFGX1VOSVgiLCAiQUZfSU5FVCIsICJBRl9JTkVUNiIsICJTT0NLX1NUUkVBTSIsDQogICAgICAiU09DS19ER1JBTSIsICJTT0NLX1JBVyIsICJTT0NLX1NFUVBBQ0tFVCIsICJTT0NLX1JETSIsICJNU0dfT09CIiwNCiAgICAgICJNU0dfV0FJVEFMTCIsICJNU0dfUEVFSyIsICJNU0dfRE9OVFJPVVRFIiwgIlNPX0RFQlVHIiwgIlNPX1JFVVNFQUREUiIsDQogICAgICAiU09fS0VFUEFMSVZFIiwgIlNPX0RPTlRST1VURSIsICJTT19MSU5HRVIiLCAiU09fQlJPQURDQVNUIiwgIlNPX09PQklOTElORSIsDQogICAgICAiU09fU05EQlVGIiwgIlNPX1JDVkJVRiIsICJTT19TTkRMT1dBVCIsICJTT19SQ1ZMT1dBVCIsICJTT19TTkRUSU1FTyIsDQogICAgICAiU09fUkNWVElNRU8iLCAiU09fVFlQRSIsICJTT19FUlJPUiIsICJTT0xfU09DS0VUIiwgIlNPTUFYQ09OTiIsDQogICAgICAiUEhQX05PUk1BTF9SRUFEIiwgIlBIUF9CSU5BUllfUkVBRCIsICJTT0NLRVRfRUlOVFIiLCAiU09DS0VUX0VCQURGIiwNCiAgICAgICJTT0NLRVRfRUFDQ0VTIiwgIlNPQ0tFVF9FRkFVTFQiLCAiU09DS0VUX0VJTlZBTCIsICJTT0NLRVRfRU1GSUxFIiwNCiAgICAgICJTT0NLRVRfRVdPVUxEQkxPQ0siLCAiU09DS0VUX0VJTlBST0dSRVNTIiwgIlNPQ0tFVF9FQUxSRUFEWSIsDQogICAgICAiU09DS0VUX0VOT1RTT0NLIiwgIlNPQ0tFVF9FREVTVEFERFJSRVEiLCAiU09DS0VUX0VNU0dTSVpFIiwNCiAgICAgICJTT0NLRVRfRVBST1RPVFlQRSIsICJTT0NLRVRfRU5PUFJPVE9PUFQiLCAiU09DS0VUX0VQUk9UT05PU1VQUE9SVCIsDQogICAgICAiU09DS0VUX0VTT0NLVE5PU1VQUE9SVCIsICJTT0NLRVRfRU9QTk9UU1VQUCIsICJTT0NLRVRfRVBGTk9TVVBQT1JUIiwNCiAgICAgICJTT0NLRVRfRUFGTk9TVVBQT1JUIiwgIlNPQ0tFVF9FQUREUklOVVNFIiwgIlNPQ0tFVF9FQUREUk5PVEFWQUlMIiwNCiAgICAgICJTT0NLRVRfRU5FVERPV04iLCAiU09DS0VUX0VORVRVTlJFQUNIIiwgIlNPQ0tFVF9FTkVUUkVTRVQiLA0KICAgICAgIlNPQ0tFVF9FQ09OTkFCT1JURUQiLCAiU09DS0VUX0VDT05OUkVTRVQiLCAiU09DS0VUX0VOT0JVRlMiLCAiU09DS0VUX0VJU0NPTk4iLA0KICAgICAgIlNPQ0tFVF9FTk9UQ09OTiIsICJTT0NLRVRfRVNIVVRET1dOIiwgIlNPQ0tFVF9FVE9PTUFOWVJFRlMiLA0KICAgICAgIlNPQ0tFVF9FVElNRURPVVQiLCAiU09DS0VUX0VDT05OUkVGVVNFRCIsICJTT0NLRVRfRUxPT1AiLA0KICAgICAgIlNPQ0tFVF9FTkFNRVRPT0xPTkciLCAiU09DS0VUX0VIT1NURE9XTiIsICJTT0NLRVRfRUhPU1RVTlJFQUNIIiwNCiAgICAgICJTT0NLRVRfRU5PVEVNUFRZIiwgIlNPQ0tFVF9FUFJPQ0xJTSIsICJTT0NLRVRfRVVTRVJTIiwgIlNPQ0tFVF9FRFFVT1QiLA0KICAgICAgIlNPQ0tFVF9FU1RBTEUiLCAiU09DS0VUX0VSRU1PVEUiLCAiU09DS0VUX0VESVNDT04iLCAiU09DS0VUX1NZU05PVFJFQURZIiwNCiAgICAgICJTT0NLRVRfVkVSTk9UU1VQUE9SVEVEIiwgIlNPQ0tFVF9OT1RJTklUSUFMSVNFRCIsICJTT0NLRVRfSE9TVF9OT1RfRk9VTkQiLA0KICAgICAgIlNPQ0tFVF9UUllfQUdBSU4iLCAiU09DS0VUX05PX1JFQ09WRVJZIiwgIlNPQ0tFVF9OT19EQVRBIiwNCiAgICAgICJTT0NLRVRfTk9fQUREUkVTUyIsICJTT0xfVENQIiwgIlNPTF9VRFAiLCAiRUFDQ0VMRVJBVE9SX1ZFUlNJT04iLA0KICAgICAgIkVBQ0NFTEVSQVRPUl9TSE1fQU5EX0RJU0siLCAiRUFDQ0VMRVJBVE9SX1NITSIsICJFQUNDRUxFUkFUT1JfU0hNX09OTFkiLA0KICAgICAgIkVBQ0NFTEVSQVRPUl9ESVNLX09OTFkiLCAiRUFDQ0VMRVJBVE9SX05PTkUiLCAiWERFQlVHX1RSQUNFX0FQUEVORCIsDQogICAgICAiWERFQlVHX1RSQUNFX0NPTVBVVEVSSVpFRCIsICJYREVCVUdfVFJBQ0VfSFRNTCIsICJYREVCVUdfQ0NfVU5VU0VEIiwNCiAgICAgICJYREVCVUdfQ0NfREVBRF9DT0RFIiwgIlNURElOIiwgIlNURE9VVCIsICJTVERFUlIiLCAiRE5TX0hJTkZPIiwgDQogICAgICAiRE5TX1BUUiIsICJTUUxJVEVfRU1QVFkiLCAiU1ZOX1NIT1dfVVBEQVRFUyIsICJTVk5fTk9fSUdOT1JFIiwgIk1TR19FT0YiLA0KICAgICAgIkROU19NWCIsICJHRF9FWFRSQV9WRVJTSU9OIiwgIlBIUF9WRVJTSU9OX0lEIiwgIlNRTElURV9PSyIsIA0KICAgICAgIkxJQlhNTF9MT0FERURfVkVSU0lPTiIsICJSQURJWENIQVIiLCAiT1BFTlNTTF9WRVJTSU9OX1RFWFQiLCAgIk9QRU5TU0xfVkVSU0lPTl9OVU1CRVIiLA0KICAgICAgIlBDUkVfVkVSU0lPTiIsICJDVVJMT1BUX0ZJTEUiLCAiQ1VSTE9QVF9JTkZJTEUiLCAiQ1VSTE9QVF9VUkwiLCAiQ1VSTE9QVF9QUk9YWSIsDQogICAgICAiQ1VSTEVfRlVOQ1RJT05fTk9UX0ZPVU5EIiwgIlNPQ0tFVF9FTk9NU0ciLCAiQ1VSTE9QVF9IVFRQSEVBREVSIiwgIlNPQ0tFVF9FSURSTSIsDQogICAgICAiQ1VSTE9QVF9QUk9HUkVTU0ZVTkNUSU9OIiwgIlNPQ0tFVF9FQ0hSTkciLCAiU09DS0VUX0VMMk5TWU5DIiwgIlNPQ0tFVF9FTDNITFQiLA0KICAgICAgIlNPQ0tFVF9FTDNSU1QiLCAiU09DS0VUX0VMTlJORyIsICJTT0NLRVRfRU5PQ1NJIiwgIlNPQ0tFVF9FTDJITFQiLCAiU09DS0VUX0VCQURFIiwNCiAgICAgICJTT0NLRVRfRVhGVUxMIiwgIkNVUkxPUFRfVVNFUlBXRCIsICAiQ1VSTE9QVF9QUk9YWVVTRVJQV0QiLCAiQ1VSTE9QVF9SQU5HRSIsDQogICAgICAiQ1VSTE9QVF9USU1FT1VUX01TIiwgICJDVVJMT1BUX1BPU1RGSUVMRFMiLCAgIkNVUkxPUFRfUkVGRVJFUiIsICJDVVJMT1BUX1VTRVJBR0VOVCIsDQogICAgICAiQ1VSTE9QVF9GVFBQT1JUIiwgIlNPQ0tFVF9FUkVTVEFSVCIsICJTUUxJVEVfQ09OU1RSQUlOVCIsICJTUUxJVEVfTUlTTUFUQ0giLA0KICAgICAgIlNRTElURV9NSVNVU0UiLCAiQ1VSTE9QVF9DT09LSUUiLCAiQ1VSTEVfU1NMX0NFUlRQUk9CTEVNIiwgIkNVUkxPUFRfU1NMQ0VSVCIsDQogICAgICAiQ1VSTE9QVF9LRVlQQVNTV0QiLCAiQ1VSTE9QVF9XUklURUhFQURFUiIsICJDVVJMT1BUX1NTTF9WRVJJRllIT1NUIiwNCiAgICAgICJDVVJMT1BUX0NPT0tJRUZJTEUiLCAiQ1VSTEVfSFRUUF9SQU5HRV9FUlJPUiIsICJDVVJMRV9IVFRQX1BPU1RfRVJST1IiLA0KICAgICAgIkNVUkxPUFRfQ1VTVE9NUkVRVUVTVCIsICJDVVJMT1BUX1NUREVSUiIsICJTT0NLRVRfRUJBRFIiLCAiQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiIsDQogICAgICAiQ1VSTE9QVF9RVU9URSIsICJDVVJMT1BUX1BPU1RRVU9URSIsICJDVVJMT1BUX0lOVEVSRkFDRSIsICJDVVJMT1BUX0tSQjRMRVZFTCIsDQogICAgICAiU09DS0VUX0VOT0RBVEEiLCAiU09DS0VUX0VTUk1OVCIsICAiQ1VSTE9QVF9XUklURUZVTkNUSU9OIiwgIkNVUkxPUFRfUkVBREZVTkNUSU9OIiwNCiAgICAgICJDVVJMT1BUX0hFQURFUkZVTkNUSU9OIiwgIlNPQ0tFVF9FQURWIiwgIlNPQ0tFVF9FUFJPVE8iLCAiU09DS0VUX0VNVUxUSUhPUCIsDQogICAgICAiU09DS0VUX0VCQURNU0ciLCAgIkNVUkxPUFRfRk9SQklEX1JFVVNFIiwgIkNVUkxPUFRfUkFORE9NX0ZJTEUiLCAiQ1VSTE9QVF9FR0RTT0NLRVQiLA0KICAgICAgIlNPQ0tFVF9FUkVNQ0hHIiwgIkNVUkxPUFRfQ09OTkVDVFRJTUVPVVRfTVMiLCAiQ1VSTE9QVF9DQUlORk8iLCAiQ1VSTE9QVF9DQVBBVEgiLA0KICAgICAgIkNVUkxPUFRfQ09PS0lFSkFSIiwgIkNVUkxPUFRfU1NMX0NJUEhFUl9MSVNUIiwgIkNVUkxPUFRfQklOQVJZVFJBTlNGRVIiLA0KICAgICAgIlNRTElURV9ET05FIiwgIkNVUkxPUFRfSFRUUF9WRVJTSU9OIiwgIkNVUkxPUFRfU1NMS0VZIiwgIkNVUkxPUFRfU1NMS0VZVFlQRSIsDQogICAgICAiQ1VSTE9QVF9TU0xFTkdJTkUiLCAiQ1VSTE9QVF9TU0xDRVJUVFlQRSIsICJDVVJMRV9PVVRfT0ZfTUVNT1JZIiwgIkNVUkxPUFRfRU5DT0RJTkciLA0KICAgICAgIkNVUkxFX1NTTF9DSVBIRVIiLCAiU09DS0VUX0VSRU1PVEVJTyIsICJDVVJMT1BUX0hUVFAyMDBBTElBU0VTIiwgIkNVUkxBVVRIX0FOWSIsDQogICAgICAiQ1VSTEFVVEhfQU5ZU0FGRSIsICJDVVJMT1BUX1BSSVZBVEUiLCAiQ1VSTElORk9fRUZGRUNUSVZFX1VSTCIsICJDVVJMSU5GT19IVFRQX0NPREUiLA0KICAgICAgIkNVUkxJTkZPX0hFQURFUl9TSVpFIiwgIkNVUkxJTkZPX1JFUVVFU1RfU0laRSIsICJDVVJMSU5GT19UT1RBTF9USU1FIiwNCiAgICAgICJDVVJMSU5GT19OQU1FTE9PS1VQX1RJTUUiLCAiQ1VSTElORk9fQ09OTkVDVF9USU1FIiwgIkNVUkxJTkZPX1BSRVRSQU5TRkVSX1RJTUUiLA0KICAgICAgIkNVUkxJTkZPX1NJWkVfVVBMT0FEIiwgIkNVUkxJTkZPX1NJWkVfRE9XTkxPQUQiLCAiQ1VSTElORk9fU1BFRURfRE9XTkxPQUQiLA0KICAgICAgIkNVUkxJTkZPX1NQRUVEX1VQTE9BRCIsICJDVVJMSU5GT19GSUxFVElNRSIsICJDVVJMSU5GT19TU0xfVkVSSUZZUkVTVUxUIiwNCiAgICAgICJDVVJMSU5GT19DT05URU5UX0xFTkdUSF9ET1dOTE9BRCIsICJDVVJMSU5GT19DT05URU5UX0xFTkdUSF9VUExPQUQiLA0KICAgICAgIkNVUkxJTkZPX1NUQVJUVFJBTlNGRVJfVElNRSIsICJDVVJMSU5GT19DT05URU5UX1RZUEUiLCAiQ1VSTElORk9fUkVESVJFQ1RfVElNRSIsDQogICAgICAiQ1VSTElORk9fUkVESVJFQ1RfQ09VTlQiLCAiQ1VSTElORk9fUFJJVkFURSIsICJDVVJMSU5GT19DRVJUSU5GTyIsDQogICAgICAiU1FMSVRFX1BST1RPQ09MIiwgIlNRTElURV9TQ0hFTUEiLCAiU1FMSVRFX1RPT0JJRyIsICJTUUxJVEVfTk9MRlMiLCANCiAgICAgICJTUUxJVEVfQVVUSCIsICJTUUxJVEVfRk9STUFUIiwgIlNPQ0tFVF9FTk9UVFkiLCAiU1FMSVRFX05PVEFEQiIsDQogICAgICAiU09DS0VUX0VOT1NQQyIsICJTT0NLRVRfRVNQSVBFIiwgIlNPQ0tFVF9FUk9GUyIsICJTT0NLRVRfRU1MSU5LIiwgIkdEX1JFTEVBU0VfVkVSU0lPTiIsDQogICAgICAiU09DS0VUX0VOT0xDSyIsICJTT0NLRVRfRU5PU1lTIiwgIlNPQ0tFVF9FVU5BVENIIiwgIlNPQ0tFVF9FTk9BTk8iLCAiU09DS0VUX0VCQURSUUMiLA0KICAgICAgIlNPQ0tFVF9FQkFEU0xUIiwgIlNPQ0tFVF9FTk9TVFIiLCAiU09DS0VUX0VUSU1FIiwgIlNPQ0tFVF9FTk9TUiIsICJTVk5fUkVWSVNJT05fSEVBRCIsDQogICAgICAiWFNEX0VOVElUWSIsICJYU0RfTk9UQVRJT04iLCAiQ1VSTE9QVF9DRVJUSU5GTyIsICJDVVJMT1BUX1BPU1RSRURJUiIsICJDVVJMT1BUX1NTSF9BVVRIX1RZUEVTIiwNCiAgICAgICJDVVJMT1BUX1NTSF9QVUJMSUNfS0VZRklMRSIsICJDVVJMT1BUX1NTSF9QUklWQVRFX0tFWUZJTEUiLCAiQ1VSTE9QVF9TU0hfSE9TVF9QVUJMSUNfS0VZX01ENSIsDQogICAgICAiQ1VSTEVfU1NIIiwgIkNVUkxPUFRfUkVESVJfUFJPVE9DT0xTIiwgIkNVUkxPUFRfUFJPVE9DT0xTIiwgIlhTRF9OT05ORUdBVElWRUlOVEVHRVIiLA0KICAgICAgIlhTRF9CWVRFIiwiRE5TX1NSViIsIkROU19BNiIsICJETlNfTkFQVFIiLCAiRE5TX0FBQUEiLCAiRklMVEVSX1NBTklUSVpFX0ZVTExfU1BFQ0lBTF9DSEFSUyIsDQogICAgICAiQUJEQVlfMSIsICJTVk5fUkVWSVNJT05fVU5TUEVDSUZJRUQiLCAiU1ZOX1JFVklTSU9OX0JBU0UiLCAiU1ZOX1JFVklTSU9OX0NPTU1JVFRFRCIsDQogICAgICAiU1ZOX1JFVklTSU9OX1BSRVYiLCAiR0RfVkVSU0lPTiIsICJNQ1JZUFRfVFJJUExFREVTIiwgIk1DUllQVF9BUkNGT1VSX0lWIiwgIk1DUllQVF9BUkNGT1VSIiwNCiAgICAgICJNQ1JZUFRfQkxPV0ZJU0giLCAiTUNSWVBUX0JMT1dGSVNIX0NPTVBBVCIsICJNQ1JZUFRfQ0FTVF8xMjgiLCAiTUNSWVBUX0NBU1RfMjU2IiwNCiAgICAgICJNQ1JZUFRfRU5JR05BIiwgIk1DUllQVF9ERVMiLCAiTUNSWVBUX0dPU1QiLCAiTUNSWVBUX0xPS0k5NyIsICJNQ1JZUFRfUEFOQU1BIiwNCiAgICAgICJNQ1JZUFRfUkMyIiwgIk1DUllQVF9SSUpOREFFTF8xMjgiLCAiTUNSWVBUX1JJSk5EQUVMXzE5MiIsICJNQ1JZUFRfUklKTkRBRUxfMjU2IiwNCiAgICAgICJNQ1JZUFRfU0FGRVI2NCIsICJNQ1JZUFRfU0FGRVIxMjgiLCJNQ1JZUFRfU0FGRVJQTFVTIiwgIk1DUllQVF9TRVJQRU5UIiwgIk1DUllQVF9USFJFRVdBWSIsDQogICAgICAiTUNSWVBUX1RXT0ZJU0giLCAiTUNSWVBUX1dBS0UiLCAiTUNSWVBUX1hURUEiLCAiTUNSWVBUX0lERUEiLCAiTUNSWVBUX01BUlMiLA0KICAgICAgIk1DUllQVF9SQzYiLCAiTUNSWVBUX1NLSVBKQUNLIiwgIk1DUllQVF9NT0RFX0NCQyIsICJNQ1JZUFRfTU9ERV9DRkIiLCAiTUNSWVBUX01PREVfRUNCIiwNCiAgICAgICJNQ1JZUFRfTU9ERV9OT0ZCIiwgIk1DUllQVF9NT0RFX09GQiIsICJNQ1JZUFRfTU9ERV9TVFJFQU0iLCAiQ0xfRVhQVU5HRSIsDQogICAgICAiU1FMSVRFX1JPVyIsICJQT1NJWF9TX0lGQkxLIiwgIlBPU0lYX1NfSUZTT0NLIiwgICJYU0RfSURSRUYiLCAiQUJEQVlfMiIsDQogICAgICAiQUJEQVlfMyIsICJBQkRBWV80IiwgIkFCREFZXzUiLCAiQUJEQVlfNiIsICJBQkRBWV83IiwgIkRBWV8xIiwgIkRBWV8yIiwNCiAgICAgICJEQVlfMyIsICJEQVlfNCIsICJEQVlfNSIsICJEQVlfNiIsICJEQVlfNyIsICJBQk1PTl8xIiwgIkFCTU9OXzIiLCAiQUJNT05fMyIsDQogICAgICAiQUJNT05fNCIsICJBQk1PTl81IiwgIkFCTU9OXzYiLCAiQUJNT05fNyIsIkFCTU9OXzgiLCAiQUJNT05fOSIsICJBQk1PTl8xMCIsDQogICAgICAiQUJNT05fMTEiLCAgIkFCTU9OXzEyIiwgIk1PTl8xIiwgIk1PTl8yIiwgIk1PTl8zIiwgIk1PTl80IiwgIk1PTl81IiwgICJNT05fNiIsDQogICAgICAiTU9OXzciLCAgIk1PTl84IiwgIk1PTl85IiwgIk1PTl8xMCIsICJNT05fMTEiLCAiTU9OXzEyIiwgIkFNX1NUUiIsICJQTV9TVFIiLA0KICAgICAgIkRfVF9GTVQiLCAgIkRfRk1UIiwgIlRfRk1UIiwgIlRfRk1UX0FNUE0iLCAiRVJBIiwgIkVSQV9EX1RfRk1UIiwgIkVSQV9EX0ZNVCIsDQogICAgICAiRVJBX1RfRk1UIiwgIkFMVF9ESUdJVFMiLCAiQ1JOQ1lTVFIiLCAiVEhPVVNFUCIsICAiWUVTRVhQUiIsICJOT0VYUFIiLA0KICAgICAgIlNPQ0tFVF9FTk9NRURJVU0iLCAiR0xPQl9BVkFJTEFCTEVfRkxBR1MiLCAiWFNEX1NIT1JUIiwgIlhTRF9OTVRPS0VOUyIsDQogICAgICAiTE9HX0xPQ0FMMyIsICJMT0dfTE9DQUw0IiwgIkxPR19MT0NBTDUiLCAiTE9HX0xPQ0FMNiIsICJMT0dfTE9DQUw3IiwNCiAgICAgICJETlNfQU5ZIiwgIkROU19BTEwiLCAiU09DS0VUX0VOT0xJTksiLCAgIlNPQ0tFVF9FQ09NTSIsICJTT0FQX0ZVTkNUSU9OU19BTEwiLA0KICAgICAgIlVOS05PV05fVFlQRSIsICJYU0RfQkFTRTY0QklOQVJZIiwgIlhTRF9BTllVUkkiLCAiWFNEX1FOQU1FIiwgIlNPQ0tFVF9FSVNOQU0iLA0KICAgICAgIlNPQ0tFVF9FTUVESVVNVFlQRSIsICJYU0RfTkNOQU1FIiwgIlhTRF9JRCIsICJYU0RfRU5USVRJRVMiLCAiWFNEX0lOVEVHRVIiLA0KICAgICAgIlhTRF9OT05QT1NJVElWRUlOVEVHRVIiLCAiWFNEX05FR0FUSVZFSU5URUdFUiIsICJYU0RfTE9ORyIsICJYU0RfSU5UIiwNCiAgICAgICJYU0RfVU5TSUdORURMT05HIiwgIlhTRF9VTlNJR05FRElOVCIsICJYU0RfVU5TSUdORURTSE9SVCIsICJYU0RfVU5TSUdORURCWVRFIiwNCiAgICAgICJYU0RfUE9TSVRJVkVJTlRFR0VSIiwgIlhTRF9BTllUWVBFIiwgIlhTRF9BTllYTUwiLCAiQVBBQ0hFX01BUCIsICJYU0RfMTk5OV9USU1FSU5TVEFOVCIsDQogICAgICAiWFNEX05BTUVTUEFDRSIsICJYU0RfMTk5OV9OQU1FU1BBQ0UiLCAiU09DS0VUX0VOT1RVTklRIiwgIlNPQ0tFVF9FQkFERkQiLA0KICAgICAgIlNPQ0tFVF9FU1RSUElQRSIsICJUX0dPVE8iLCAiVF9OQU1FU1BBQ0UiLCAiVF9OU19DIiwgIlRfRElSIiwgIlRfTlNfU0VQQVJBVE9SIiwNCiAgICAgICJMSUJYU0xUX1ZFUlNJT04iLCJMSUJFWFNMVF9ET1RURURfVkVSU0lPTiIsICJMSUJFWFNMVF9WRVJTSU9OIiwgICJTVk5fQVVUSF9QQVJBTV9ERUZBVUxUX1VTRVJOQU1FIiwNCiAgICAgICJTVk5fQVVUSF9QQVJBTV9ERUZBVUxUX1BBU1NXT1JEIiwgIlNWTl9BVVRIX1BBUkFNX05PTl9JTlRFUkFDVElWRSIsDQogICAgICAiU1ZOX0FVVEhfUEFSQU1fRE9OVF9TVE9SRV9QQVNTV09SRFMiLCAiU1ZOX0FVVEhfUEFSQU1fTk9fQVVUSF9DQUNIRSIsDQogICAgICAiU1ZOX0FVVEhfUEFSQU1fU1NMX1NFUlZFUl9GQUlMVVJFUyIsICJTVk5fQVVUSF9QQVJBTV9TU0xfU0VSVkVSX0NFUlRfSU5GTyIsDQogICAgICAiU1ZOX0FVVEhfUEFSQU1fQ09ORklHIiwgIlNWTl9BVVRIX1BBUkFNX1NFUlZFUl9HUk9VUCIsDQogICAgICAiU1ZOX0FVVEhfUEFSQU1fQ09ORklHX0RJUiIsICJQSFBfU1ZOX0FVVEhfUEFSQU1fSUdOT1JFX1NTTF9WRVJJRllfRVJST1JTIiwNCiAgICAgICJTVk5fRlNfQ09ORklHX0ZTX1RZUEUiLCAiU1ZOX0ZTX1RZUEVfQkRCIiwgIlNWTl9GU19UWVBFX0ZTRlMiLCAiU1ZOX1BST1BfUkVWSVNJT05fREFURSIsDQogICAgICAiU1ZOX1BST1BfUkVWSVNJT05fT1JJR19EQVRFIiwgIlNWTl9QUk9QX1JFVklTSU9OX0FVVEhPUiIsICJTVk5fUFJPUF9SRVZJU0lPTl9MT0ciDQogICAgICBdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgCSAgcmVzdWx0W2VsZW1lbnRdID0gdG9rZW4oImF0b20iLCAicGhwLXByZWRlZmluZWQtY29uc3RhbnQiKTsNCiAgICAgIH0pOw0KDQogICAgLy8gUEhQIGRlY2xhcmVkIGNsYXNzZXMgLSBvdXRwdXQgb2YgZ2V0X2RlY2xhcmVkX2NsYXNzZXMoKS4gRGlmZmVycyBmcm9tIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9yZXNlcnZlZC5jbGFzc2VzLnBocA0KICAgIFsgICJzdGRDbGFzcyIsICJFeGNlcHRpb24iLCAiRXJyb3JFeGNlcHRpb24iLCAiQ09NUGVyc2lzdEhlbHBlciIsICJjb21fZXhjZXB0aW9uIiwNCiAgICAgICJjb21fc2FmZWFycmF5X3Byb3h5IiwgInZhcmlhbnQiLCAiY29tIiwgImRvdG5ldCIsICJSZWZsZWN0aW9uRXhjZXB0aW9uIiwNCiAgICAgICJSZWZsZWN0aW9uIiwgIlJlZmxlY3Rpb25GdW5jdGlvbkFic3RyYWN0IiwgIlJlZmxlY3Rpb25GdW5jdGlvbiIsDQogICAgICAiUmVmbGVjdGlvblBhcmFtZXRlciIsICJSZWZsZWN0aW9uTWV0aG9kIiwgIlJlZmxlY3Rpb25DbGFzcyIsDQogICAgICAiUmVmbGVjdGlvbk9iamVjdCIsICJSZWZsZWN0aW9uUHJvcGVydHkiLCAiUmVmbGVjdGlvbkV4dGVuc2lvbiIsICJEYXRlVGltZSIsDQogICAgICAiRGF0ZVRpbWVab25lIiwgIkxpYlhNTEVycm9yIiwgIl9fUEhQX0luY29tcGxldGVfQ2xhc3MiLCAicGhwX3VzZXJfZmlsdGVyIiwNCiAgICAgICJEaXJlY3RvcnkiLCAiU2ltcGxlWE1MRWxlbWVudCIsICJET01FeGNlcHRpb24iLCAiRE9NU3RyaW5nTGlzdCIsDQogICAgICAiRE9NTmFtZUxpc3QiLCAiRE9NSW1wbGVtZW50YXRpb25MaXN0IiwgIkRPTUltcGxlbWVudGF0aW9uU291cmNlIiwNCiAgICAgICJET01JbXBsZW1lbnRhdGlvbiIsICJET01Ob2RlIiwgIkRPTU5hbWVTcGFjZU5vZGUiLCAiRE9NRG9jdW1lbnRGcmFnbWVudCIsDQogICAgICAiRE9NRG9jdW1lbnQiLCAiRE9NTm9kZUxpc3QiLCAiRE9NTmFtZWROb2RlTWFwIiwgIkRPTUNoYXJhY3RlckRhdGEiLCAiRE9NQXR0ciIsDQogICAgICAiRE9NRWxlbWVudCIsICJET01UZXh0IiwgIkRPTUNvbW1lbnQiLCAiRE9NVHlwZWluZm8iLCAiRE9NVXNlckRhdGFIYW5kbGVyIiwNCiAgICAgICJET01Eb21FcnJvciIsICJET01FcnJvckhhbmRsZXIiLCAiRE9NTG9jYXRvciIsICJET01Db25maWd1cmF0aW9uIiwNCiAgICAgICJET01DZGF0YVNlY3Rpb24iLCAiRE9NRG9jdW1lbnRUeXBlIiwgIkRPTU5vdGF0aW9uIiwgIkRPTUVudGl0eSIsDQogICAgICAiRE9NRW50aXR5UmVmZXJlbmNlIiwgIkRPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbiIsICJET01TdHJpbmdFeHRlbmQiLA0KICAgICAgIkRPTVhQYXRoIiwgIlJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IiLCAiSXRlcmF0b3JJdGVyYXRvciIsICJGaWx0ZXJJdGVyYXRvciIsDQogICAgICAiUmVjdXJzaXZlRmlsdGVySXRlcmF0b3IiLCAiUGFyZW50SXRlcmF0b3IiLCAiTGltaXRJdGVyYXRvciIsDQogICAgICAiQ2FjaGluZ0l0ZXJhdG9yIiwgIlJlY3Vyc2l2ZUNhY2hpbmdJdGVyYXRvciIsICJOb1Jld2luZEl0ZXJhdG9yIiwNCiAgICAgICJBcHBlbmRJdGVyYXRvciIsICJJbmZpbml0ZUl0ZXJhdG9yIiwgIlJlZ2V4SXRlcmF0b3IiLA0KICAgICAgIlJlY3Vyc2l2ZVJlZ2V4SXRlcmF0b3IiLCAiRW1wdHlJdGVyYXRvciIsICJBcnJheU9iamVjdCIsICJBcnJheUl0ZXJhdG9yIiwNCiAgICAgICJSZWN1cnNpdmVBcnJheUl0ZXJhdG9yIiwgIlNwbEZpbGVJbmZvIiwgIkRpcmVjdG9yeUl0ZXJhdG9yIiwNCiAgICAgICJSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvciIsICJTcGxGaWxlT2JqZWN0IiwgIlNwbFRlbXBGaWxlT2JqZWN0IiwNCiAgICAgICJTaW1wbGVYTUxJdGVyYXRvciIsICJMb2dpY0V4Y2VwdGlvbiIsICJCYWRGdW5jdGlvbkNhbGxFeGNlcHRpb24iLA0KICAgICAgIkJhZE1ldGhvZENhbGxFeGNlcHRpb24iLCAiRG9tYWluRXhjZXB0aW9uIiwgIkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiIsDQogICAgICAiTGVuZ3RoRXhjZXB0aW9uIiwgIk91dE9mUmFuZ2VFeGNlcHRpb24iLCAiUnVudGltZUV4Y2VwdGlvbiIsDQogICAgICAiT3V0T2ZCb3VuZHNFeGNlcHRpb24iLCAiT3ZlcmZsb3dFeGNlcHRpb24iLCAiUmFuZ2VFeGNlcHRpb24iLA0KICAgICAgIlVuZGVyZmxvd0V4Y2VwdGlvbiIsICJVbmV4cGVjdGVkVmFsdWVFeGNlcHRpb24iLCAiU3BsT2JqZWN0U3RvcmFnZSIsDQogICAgICAiWE1MUmVhZGVyIiwgIlhNTFdyaXRlciIsICJteXNxbGlfc3FsX2V4Y2VwdGlvbiIsICJteXNxbGlfZHJpdmVyIiwgIm15c3FsaSIsDQogICAgICAibXlzcWxpX3dhcm5pbmciLCAibXlzcWxpX3Jlc3VsdCIsICJteXNxbGlfc3RtdCIsICJQRE9FeGNlcHRpb24iLCAiUERPIiwNCiAgICAgICJQRE9TdGF0ZW1lbnQiLCAiUERPUm93IiwiQ2xvc3VyZSIsICJEYXRlSW50ZXJ2YWwiLCAiRGF0ZVBlcmlvZCIsICJGaWxlc3lzdGVtSXRlcmF0b3IiLA0KICAgICAgIkdsb2JJdGVyYXRvciIsICJNdWx0aXBsZUl0ZXJhdG9yIiwgIlJlY3Vyc2l2ZVRyZWVJdGVyYXRvciIsICJTb2FwQ2xpZW50IiwNCiAgICAgICJTb2FwRmF1bHQiLCAiU29hcEhlYWRlciIsICJTb2FwUGFyYW0iLCAiU29hcFNlcnZlciIsICJTb2FwVmFyIiwgIlNwbERvdWJseUxpbmtlZExpc3QiLA0KICAgICAgIlNwbEZpeGVkQXJyYXkiLCAiU3BsSGVhcCIsICJTcGxNYXhIZWFwIiwgIlNwbE1pbkhlYXAiLCAiU3BsUHJpb3JpdHlRdWV1ZSIsDQogICAgICAiU3BsUXVldWUiLCAiU3BsU3RhY2siLCAiU1FMaXRlMyIsICJTUUxpdGUzUmVzdWx0IiwgIlNRTGl0ZTNTdG10IiwgIlNRTGl0ZURhdGFiYXNlIiwNCiAgICAgICJTUUxpdGVFeGNlcHRpb24iLCAiU1FMaXRlUmVzdWx0IiwgIlNRTGl0ZVVuYnVmZmVyZWQiLCAiU3ZuIiwgIlN2bk5vZGUiLCAiU3ZuV2MiLA0KICAgICAgIlN2bldjU2NoZWR1bGUiLCAiWFNMVFByb2Nlc3NvciIsICJaaXBBcmNoaXZlIiwNCiAgICBdLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7DQogICAgICByZXN1bHRbZWxlbWVudF0gPSB0b2tlbigidF9zdHJpbmciLCAicGhwLXByZWRlZmluZWQtY2xhc3MiKTsNCiAgICB9KTsNCg0KICAgIHJldHVybiByZXN1bHQ7DQoNCiAgfSgpOw0KDQogIC8vIEhlbHBlciByZWdleHBzDQogIHZhciBpc09wZXJhdG9yQ2hhciA9IC9bKyomJVwvPTw+IT8ufF5ALV0vOw0KICB2YXIgaXNIZXhEaWdpdCA9IC9bMC05QS1GYS1mXS87DQogIHZhciBpc1dvcmRDaGFyID0gL1tcd1wkX1xcXS87DQoNCiAgLy8gV3JhcHBlciBhcm91bmQgcGhwVG9rZW4gdGhhdCBoZWxwcyBtYWludGFpbiBwYXJzZXIgc3RhdGUgKHdoZXRoZXINCiAgLy8gd2UgYXJlIGluc2lkZSBvZiBhIG11bHRpLWxpbmUgY29tbWVudCkNCiAgZnVuY3Rpb24gcGhwVG9rZW5TdGF0ZShpbnNpZGUpIHsNCiAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgdmFyIG5ld0luc2lkZSA9IGluc2lkZTsNCiAgICAgIHZhciB0eXBlID0gcGhwVG9rZW4oaW5zaWRlLCBzb3VyY2UsIGZ1bmN0aW9uKGMpIHtuZXdJbnNpZGUgPSBjO30pOw0KICAgICAgaWYgKG5ld0luc2lkZSAhPSBpbnNpZGUpDQogICAgICAgIHNldFN0YXRlKHBocFRva2VuU3RhdGUobmV3SW5zaWRlKSk7DQogICAgICByZXR1cm4gdHlwZTsNCiAgICB9Ow0KICB9DQoNCiAgLy8gVGhlIHRva2VuIHJlYWRlciwgaW50ZWRlZCB0byBiZSB1c2VkIGJ5IHRoZSB0b2tlbml6ZXIgZnJvbQ0KICAvLyB0b2tlbml6ZS5qcyAodGhyb3VnaCBwaHBUb2tlblN0YXRlKS4gQWR2YW5jZXMgdGhlIHNvdXJjZSBzdHJlYW0NCiAgLy8gb3ZlciBhIHRva2VuLCBhbmQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgdHlwZSBhbmQgc3R5bGUNCiAgLy8gb2YgdGhhdCB0b2tlbi4NCiAgZnVuY3Rpb24gcGhwVG9rZW4oaW5zaWRlLCBzb3VyY2UsIHNldEluc2lkZSkgew0KICAgIGZ1bmN0aW9uIHJlYWRIZXhOdW1iZXIoKXsNCiAgICAgIHNvdXJjZS5uZXh0KCk7ICAvLyBza2lwIHRoZSAneCcNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzSGV4RGlnaXQpOw0KICAgICAgcmV0dXJuIHt0eXBlOiAibnVtYmVyIiwgc3R5bGU6ICJwaHAtYXRvbSJ9Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHJlYWROdW1iZXIoKSB7DQogICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvWzAtOV0vKTsNCiAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCIuIikpew0KICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvWzAtOV0vKTsNCiAgICAgIH0NCiAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCJlIikgfHwgc291cmNlLmVxdWFscygiRSIpKXsNCiAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIi0iKSkNCiAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvWzAtOV0vKTsNCiAgICAgIH0NCiAgICAgIHJldHVybiB7dHlwZTogIm51bWJlciIsIHN0eWxlOiAicGhwLWF0b20ifTsNCiAgICB9DQogICAgLy8gUmVhZCBhIHdvcmQgYW5kIGxvb2sgaXQgdXAgaW4gdGhlIGtleXdvcmRzIGFycmF5LiBJZiBmb3VuZCwgaXQncyBhDQogICAgLy8ga2V5d29yZCBvZiB0aGF0IHR5cGU7IG90aGVyd2lzZSBpdCdzIGEgUEhQIFRfU1RSSU5HLg0KICAgIGZ1bmN0aW9uIHJlYWRXb3JkKCkgew0KICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoaXNXb3JkQ2hhcik7DQogICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKTsNCiAgICAgIHZhciBrbm93biA9IGtleXdvcmRzLmhhc093blByb3BlcnR5KHdvcmQpICYmIGtleXdvcmRzLnByb3BlcnR5SXNFbnVtZXJhYmxlKHdvcmQpICYmIGtleXdvcmRzW3dvcmRdOw0KICAgICAgLy8gc2luY2Ugd2UgY2FsbGVkIGdldCgpLCB0b2tlbml6ZTo6dGFrZSB3b24ndCBnZXQoKSBhbnl0aGluZy4gVGh1cywgd2UgbXVzdCBzZXQgdG9rZW4uY29udGVudA0KICAgICAgcmV0dXJuIGtub3duID8ge3R5cGU6IGtub3duLnR5cGUsIHN0eWxlOiBrbm93bi5zdHlsZSwgY29udGVudDogd29yZH0gOg0KICAgICAge3R5cGU6ICJ0X3N0cmluZyIsIHN0eWxlOiAicGhwLXRfc3RyaW5nIiwgY29udGVudDogd29yZH07DQogICAgfQ0KICAgIGZ1bmN0aW9uIHJlYWRWYXJpYWJsZSgpIHsNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzV29yZENoYXIpOw0KICAgICAgdmFyIHdvcmQgPSBzb3VyY2UuZ2V0KCk7DQogICAgICAvLyBpbiBQSFAsICckdGhpcycgaXMgYSByZXNlcnZlZCB3b3JkLCBidXQgJ3RoaXMnIGlzbid0LiBZb3UgY2FuIGhhdmUgZnVuY3Rpb24gdGhpcygpIHsuLi59DQogICAgICBpZiAod29yZCA9PSAiJHRoaXMiKQ0KICAgICAgICByZXR1cm4ge3R5cGU6ICJ2YXJpYWJsZSIsIHN0eWxlOiAicGhwLWtleXdvcmQiLCBjb250ZW50OiB3b3JkfTsNCiAgICAgIGVsc2UNCiAgICAgICAgcmV0dXJuIHt0eXBlOiAidmFyaWFibGUiLCBzdHlsZTogInBocC12YXJpYWJsZSIsIGNvbnRlbnQ6IHdvcmR9Ow0KICAgIH0NCg0KICAgIC8vIEFkdmFuY2UgdGhlIHN0cmVhbSB1bnRpbCB0aGUgZ2l2ZW4gY2hhcmFjdGVyIChub3QgcHJlY2VkZWQgYnkgYQ0KICAgIC8vIGJhY2tzbGFzaCkgaXMgZW5jb3VudGVyZWQsIG9yIHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgcmVhY2hlZC4NCiAgICBmdW5jdGlvbiBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCBlbmQpIHsNCiAgICAgIHZhciBlc2NhcGVkID0gZmFsc2U7DQogICAgICB3aGlsZSghc291cmNlLmVuZE9mTGluZSgpKXsNCiAgICAgICAgdmFyIG5leHQgPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICBpZiAobmV4dCA9PSBlbmQgJiYgIWVzY2FwZWQpDQogICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICBlc2NhcGVkID0gbmV4dCA9PSAiXFwiICYmICFlc2NhcGVkOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGVzY2FwZWQ7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVhZFNpbmdsZUxpbmVDb21tZW50KCkgew0KICAgICAgLy8gcmVhZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBsaW5lIG9yIHVudGlsID8+LCB3aGljaCB0ZXJtaW5hdGVzIHNpbmdsZS1saW5lIGNvbW1lbnRzDQogICAgICAvLyBgPD9waHAgZWNobyAxOyAvLyBjb21tZW50ID8+IGZvb2Agd2lsbCBkaXNwbGF5ICIxIGZvbyINCiAgICAgIHdoaWxlKCFzb3VyY2UubG9va0FoZWFkKCI/PiIpICYmICFzb3VyY2UuZW5kT2ZMaW5lKCkpDQogICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICByZXR1cm4ge3R5cGU6ICJjb21tZW50Iiwgc3R5bGU6ICJwaHAtY29tbWVudCJ9Ow0KICAgIH0NCiAgICAvKiBGb3IgbXVsdGktbGluZSBjb21tZW50cywgd2Ugd2FudCB0byByZXR1cm4gYSBjb21tZW50IHRva2VuIGZvcg0KICAgICAgIGV2ZXJ5IGxpbmUgb2YgdGhlIGNvbW1lbnQsIGJ1dCB3ZSBhbHNvIHdhbnQgdG8gcmV0dXJuIHRoZSBuZXdsaW5lcw0KICAgICAgIGluIHRoZW0gYXMgcmVndWxhciBuZXdsaW5lIHRva2Vucy4gV2UgdGhlcmVmb3JlIG5lZWQgdG8gc2F2ZSBhDQogICAgICAgc3RhdGUgdmFyaWFibGUgKCJpbnNpZGUiKSB0byBpbmRpY2F0ZSB3aGV0aGVyIHdlIGFyZSBpbnNpZGUgYQ0KICAgICAgIG11bHRpLWxpbmUgY29tbWVudC4NCiAgICAqLw0KDQogICAgZnVuY3Rpb24gcmVhZE11bHRpbGluZUNvbW1lbnQoc3RhcnQpew0KICAgICAgdmFyIG5ld0luc2lkZSA9ICIvKiI7DQogICAgICB2YXIgbWF5YmVFbmQgPSAoc3RhcnQgPT0gIioiKTsNCiAgICAgIHdoaWxlICh0cnVlKSB7DQogICAgICAgIGlmIChzb3VyY2UuZW5kT2ZMaW5lKCkpDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIHZhciBuZXh0ID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgaWYgKG5leHQgPT0gIi8iICYmIG1heWJlRW5kKXsNCiAgICAgICAgICBuZXdJbnNpZGUgPSBudWxsOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIG1heWJlRW5kID0gKG5leHQgPT0gIioiKTsNCiAgICAgIH0NCiAgICAgIHNldEluc2lkZShuZXdJbnNpZGUpOw0KICAgICAgcmV0dXJuIHt0eXBlOiAiY29tbWVudCIsIHN0eWxlOiAicGhwLWNvbW1lbnQifTsNCiAgICB9DQoNCiAgICAvLyBzaW1pbGFyIHRvIHJlYWRNdWx0aWxpbmVDb21tZW50IGFuZCBuZXh0VW50aWxVbmVzY2FwZWQNCiAgICAvLyB1bmxpa2UgY29tbWVudHMsIHN0cmluZ3MgYXJlIG5vdCBzdG9wcGVkIGJ5ID8+DQogICAgZnVuY3Rpb24gcmVhZE11bHRpbGluZVN0cmluZyhzdGFydCl7DQogICAgICB2YXIgbmV3SW5zaWRlID0gc3RhcnQ7DQogICAgICB2YXIgZXNjYXBlZCA9IGZhbHNlOw0KICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgaWYgKHNvdXJjZS5lbmRPZkxpbmUoKSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgdmFyIG5leHQgPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICBpZiAobmV4dCA9PSBzdGFydCAmJiAhZXNjYXBlZCl7DQogICAgICAgICAgbmV3SW5zaWRlID0gbnVsbDsgIC8vIHdlJ3JlIG91dHNpZGUgb2YgdGhlIHN0cmluZyBub3cNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBlc2NhcGVkID0gKG5leHQgPT0gIlxcIiAmJiAhZXNjYXBlZCk7DQogICAgICB9DQogICAgICBzZXRJbnNpZGUobmV3SW5zaWRlKTsNCiAgICAgIHJldHVybiB7DQogICAgICAgIHR5cGU6IG5ld0luc2lkZSA9PSBudWxsPyAic3RyaW5nIiA6ICJzdHJpbmdfbm90X3Rlcm1pbmF0ZWQiLA0KICAgICAgICBzdHlsZTogKHN0YXJ0ID09ICInIj8gInBocC1zdHJpbmctc2luZ2xlLXF1b3RlZCIgOiAicGhwLXN0cmluZy1kb3VibGUtcXVvdGVkIikNCiAgICAgIH07DQogICAgfQ0KDQogICAgLy8gaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2xhbmd1YWdlLnR5cGVzLnN0cmluZy5waHAjbGFuZ3VhZ2UudHlwZXMuc3RyaW5nLnN5bnRheC5oZXJlZG9jDQogICAgLy8gU2VlIGFsc28gJ25vd2RvYycgb24gdGhlIHBhZ2UuIEhlcmVkb2NzIGFyZSBub3QgaW50ZXJydXB0ZWQgYnkgdGhlICc/PicgdG9rZW4uDQogICAgZnVuY3Rpb24gcmVhZEhlcmVkb2MoaWRlbnRpZmllcil7DQogICAgICB2YXIgdG9rZW4gPSB7fTsNCiAgICAgIGlmIChpZGVudGlmaWVyID09ICI8PDwiKSB7DQogICAgICAgIC8vIG9uIG91ciBmaXJzdCBpbnZvY2F0aW9uIGFmdGVyIHJlYWRpbmcgdGhlIDw8PCwgd2UgbXVzdCBkZXRlcm1pbmUgdGhlIGNsb3NpbmcgaWRlbnRpZmllcg0KICAgICAgICBpZiAoc291cmNlLmVxdWFscygiJyIpKSB7DQogICAgICAgICAgLy8gbm93ZG9jDQogICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoaXNXb3JkQ2hhcik7DQogICAgICAgICAgaWRlbnRpZmllciA9ICInIiArIHNvdXJjZS5nZXQoKSArICInIjsNCiAgICAgICAgICBzb3VyY2UubmV4dCgpOyAgLy8gY29uc3VtZSB0aGUgY2xvc2luZyAiJyINCiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2UubWF0Y2hlcygvW0EtWmEtel9dLykpIHsNCiAgICAgICAgICAvLyBoZXJlZG9jDQogICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoaXNXb3JkQ2hhcik7DQogICAgICAgICAgaWRlbnRpZmllciA9IHNvdXJjZS5nZXQoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAvLyBzeW50YXggZXJyb3INCiAgICAgICAgICBzZXRJbnNpZGUobnVsbCk7DQogICAgICAgICAgcmV0dXJuIHsgdHlwZTogImVycm9yIiwgc3R5bGU6ICJzeW50YXgtZXJyb3IiIH07DQogICAgICAgIH0NCiAgICAgICAgc2V0SW5zaWRlKGlkZW50aWZpZXIpOw0KICAgICAgICB0b2tlbi50eXBlID0gInN0cmluZ19ub3RfdGVybWluYXRlZCI7DQogICAgICAgIHRva2VuLnN0eWxlID0gaWRlbnRpZmllci5jaGFyQXQoMCkgPT0gIiciPyAicGhwLXN0cmluZy1zaW5nbGUtcXVvdGVkIiA6ICJwaHAtc3RyaW5nLWRvdWJsZS1xdW90ZWQiOw0KICAgICAgICB0b2tlbi5jb250ZW50ID0gaWRlbnRpZmllcjsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRva2VuLnN0eWxlID0gaWRlbnRpZmllci5jaGFyQXQoMCkgPT0gIiciPyAicGhwLXN0cmluZy1zaW5nbGUtcXVvdGVkIiA6ICJwaHAtc3RyaW5nLWRvdWJsZS1xdW90ZWQiOw0KICAgICAgICAvLyBjb25zdW1lIGEgbGluZSBvZiBoZXJlZG9jIGFuZCBjaGVjayBpZiBpdCBlcXVhbHMgdGhlIGNsb3NpbmcgaWRlbnRpZmllciBwbHVzIGFuIG9wdGlvbmFsIHNlbWljb2xvbg0KICAgICAgICBpZiAoc291cmNlLmxvb2tBaGVhZChpZGVudGlmaWVyLCB0cnVlKSAmJiAoc291cmNlLmxvb2tBaGVhZCgiO1xuIikgfHwgc291cmNlLmVuZE9mTGluZSgpKSkgew0KICAgICAgICAgIC8vIHRoZSBjbG9zaW5nIGlkZW50aWZpZXIgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUNCiAgICAgICAgICAvLyBub3RlIHRoYXQgZXZlbiB3aGl0ZXNwYWNlIGFmdGVyIHRoZSAiOyIgaXMgZm9yYmlkZGVuIGJ5IHRoZSBQSFAgaGVyZWRvYyBzeW50YXgNCiAgICAgICAgICB0b2tlbi50eXBlID0gInN0cmluZyI7DQogICAgICAgICAgdG9rZW4uY29udGVudCA9IHNvdXJjZS5nZXQoKTsgIC8vIGRvbid0IGdldCB0aGUgIjsiIGlmIHRoZXJlIGlzIG9uZQ0KICAgICAgICAgIHNldEluc2lkZShudWxsKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0b2tlbi50eXBlID0gInN0cmluZ19ub3RfdGVybWluYXRlZCI7DQogICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1teXG5dLyk7DQogICAgICAgICAgdG9rZW4uY29udGVudCA9IHNvdXJjZS5nZXQoKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIHRva2VuOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHJlYWRPcGVyYXRvcigpIHsNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzT3BlcmF0b3JDaGFyKTsNCiAgICAgIHJldHVybiB7dHlwZTogIm9wZXJhdG9yIiwgc3R5bGU6ICJwaHAtb3BlcmF0b3IifTsNCiAgICB9DQogICAgZnVuY3Rpb24gcmVhZFN0cmluZ1NpbmdsZVF1b3RlZCgpIHsNCiAgICAgIHZhciBlbmRCYWNrU2xhc2ggPSBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCAiJyIsIGZhbHNlKTsNCiAgICAgIHNldEluc2lkZShlbmRCYWNrU2xhc2ggPyAiJyIgOiBudWxsKTsNCiAgICAgIHJldHVybiB7dHlwZTogInN0cmluZyIsIHN0eWxlOiAicGhwLXN0cmluZy1zaW5nbGUtcXVvdGVkIn07DQogICAgfQ0KICAgIGZ1bmN0aW9uIHJlYWRTdHJpbmdEb3VibGVRdW90ZWQoKSB7DQogICAgICB2YXIgZW5kQmFja1NsYXNoID0gbmV4dFVudGlsVW5lc2NhcGVkKHNvdXJjZSwgIlwiIiwgZmFsc2UpOw0KICAgICAgc2V0SW5zaWRlKGVuZEJhY2tTbGFzaCA/ICJcIiI6IG51bGwpOw0KICAgICAgcmV0dXJuIHt0eXBlOiAic3RyaW5nIiwgc3R5bGU6ICJwaHAtc3RyaW5nLWRvdWJsZS1xdW90ZWQifTsNCiAgICB9DQoNCiAgICAvLyBGZXRjaCB0aGUgbmV4dCB0b2tlbi4gRGlzcGF0Y2hlcyBvbiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlDQogICAgLy8gc3RyZWFtLCBvciBmaXJzdCB0d28gY2hhcmFjdGVycyB3aGVuIHRoZSBmaXJzdCBpcyBhIHNsYXNoLg0KICAgIHN3aXRjaCAoaW5zaWRlKSB7DQogICAgICBjYXNlIG51bGw6DQogICAgICBjYXNlIGZhbHNlOiBicmVhazsNCiAgICAgIGNhc2UgIiciOg0KICAgICAgY2FzZSAiXCIiOiByZXR1cm4gcmVhZE11bHRpbGluZVN0cmluZyhpbnNpZGUpOw0KICAgICAgY2FzZSAiLyoiOiByZXR1cm4gcmVhZE11bHRpbGluZUNvbW1lbnQoc291cmNlLm5leHQoKSk7DQogICAgICBkZWZhdWx0OiByZXR1cm4gcmVhZEhlcmVkb2MoaW5zaWRlKTsNCiAgICB9DQogICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICBpZiAoY2ggPT0gIiciIHx8IGNoID09ICJcIiIpDQogICAgICByZXR1cm4gcmVhZE11bHRpbGluZVN0cmluZyhjaCk7DQogICAgZWxzZSBpZiAoY2ggPT0gIiMiKQ0KICAgICAgcmV0dXJuIHJlYWRTaW5nbGVMaW5lQ29tbWVudCgpOw0KICAgIGVsc2UgaWYgKGNoID09ICIkIikNCiAgICAgIHJldHVybiByZWFkVmFyaWFibGUoKTsNCiAgICBlbHNlIGlmIChjaCA9PSAiOiIgJiYgc291cmNlLmVxdWFscygiOiIpKSB7DQogICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgLy8gdGhlIFRfRE9VQkxFX0NPTE9OIGNhbiBvbmx5IGZvbGxvdyBhIFRfU1RSSU5HIChjbGFzcyBuYW1lKQ0KICAgICAgcmV0dXJuIHt0eXBlOiAidF9kb3VibGVfY29sb24iLCBzdHlsZTogInBocC1vcGVyYXRvciJ9Ow0KICAgIH0NCiAgICAvLyB3aXRoIHB1bmN0dWF0aW9uLCB0aGUgdHlwZSBvZiB0aGUgdG9rZW4gaXMgdGhlIHN5bWJvbCBpdHNlbGYNCiAgICBlbHNlIGlmICgvW1xbXF17fVwoXCksOzpdLy50ZXN0KGNoKSkgew0KICAgICAgcmV0dXJuIHt0eXBlOiBjaCwgc3R5bGU6ICJwaHAtcHVuY3R1YXRpb24ifTsNCiAgICB9DQogICAgZWxzZSBpZiAoY2ggPT0gIjAiICYmIChzb3VyY2UuZXF1YWxzKCJ4IikgfHwgc291cmNlLmVxdWFscygiWCIpKSkNCiAgICAgIHJldHVybiByZWFkSGV4TnVtYmVyKCk7DQogICAgZWxzZSBpZiAoL1swLTldLy50ZXN0KGNoKSkNCiAgICAgIHJldHVybiByZWFkTnVtYmVyKCk7DQogICAgZWxzZSBpZiAoY2ggPT0gIi8iKSB7DQogICAgICBpZiAoc291cmNlLmVxdWFscygiKiIpKQ0KICAgICAgeyBzb3VyY2UubmV4dCgpOyByZXR1cm4gcmVhZE11bHRpbGluZUNvbW1lbnQoY2gpOyB9DQogICAgICBlbHNlIGlmIChzb3VyY2UuZXF1YWxzKCIvIikpDQogICAgICAgIHJldHVybiByZWFkU2luZ2xlTGluZUNvbW1lbnQoKTsNCiAgICAgIGVsc2UNCiAgICAgICAgcmV0dXJuIHJlYWRPcGVyYXRvcigpOw0KICAgIH0NCiAgICBlbHNlIGlmIChjaCA9PSAiPCIpIHsNCiAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKCI8PCIsIHRydWUpKSB7DQogICAgICAgIHNldEluc2lkZSgiPDw8Iik7DQogICAgICAgIHJldHVybiB7dHlwZTogIjw8PCIsIHN0eWxlOiAicGhwLXB1bmN0dWF0aW9uIn07DQogICAgICB9DQogICAgICBlbHNlDQogICAgICAgIHJldHVybiByZWFkT3BlcmF0b3IoKTsNCiAgICB9DQogICAgZWxzZSBpZiAoaXNPcGVyYXRvckNoYXIudGVzdChjaCkpDQogICAgICByZXR1cm4gcmVhZE9wZXJhdG9yKCk7DQogICAgZWxzZQ0KICAgICAgcmV0dXJuIHJlYWRXb3JkKCk7DQogIH0NCg0KICAvLyBUaGUgZXh0ZXJuYWwgaW50ZXJmYWNlIHRvIHRoZSB0b2tlbml6ZXIuDQogIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN0YXJ0U3RhdGUpIHsNCiAgICByZXR1cm4gdG9rZW5pemVyKHNvdXJjZSwgc3RhcnRTdGF0ZSB8fCBwaHBUb2tlblN0YXRlKGZhbHNlLCB0cnVlKSk7DQogIH07DQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/php/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDA4LTIwMDksIFlhaG9vISBJbmMuDQpBbGwgcmlnaHRzIHJlc2VydmVkLg0KDQpUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGZvciB1c2UgaW4gY29ubmVjdGlvbiB3aXRoIHRoZQ0KQ29kZU1pcnJvciBzdWl0ZSBvZiBtb2R1bGVzIGFuZCB1dGlsaXRpZXMsIGhvc3RlZCBhbmQgbWFpbnRhaW5lZA0KYXQgaHR0cDovL2NvZGVtaXJyb3IubmV0Ly4NCg0KUmVkaXN0cmlidXRpb24gYW5kIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLA0Kd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZQ0KZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoNCg0KKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlDQogIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCiAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQoNCiogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQogIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlcg0KICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KDQoqIE5laXRoZXIgdGhlIG5hbWUgb2YgWWFob28hIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCiAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cw0KICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yDQogIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiBZYWhvbyEgSW5jLg0KDQpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MNCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFDQpDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsDQpJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLA0KQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOw0KTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUg0KQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQpMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTg0KQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/css/plsqlcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICBtYXJnaW46IC40ZW07DQogIHBhZGRpbmc6IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpzcGFuLnBsc3FsLWtleXdvcmQgew0KICBjb2xvcjogYmx1ZTsNCn0NCg0Kc3Bhbi5wbHNxbC12YXIgew0KICBjb2xvcjogcmVkOw0KfQ0KDQpzcGFuLnBsc3FsLWNvbW1lbnQgew0KICBjb2xvcjogI0FBNzcwMDsNCn0NCg0Kc3Bhbi5wbHNxbC1saXRlcmFsIHsNCiAgY29sb3I6IGdyZWVuOw0KfQ0KDQpzcGFuLnBsc3FsLW9wZXJhdG9yIHsNCiAgY29sb3I6IGJsdWU7DQp9DQoNCnNwYW4ucGxzcWwtd29yZCB7DQogIGNvbG9yOiBibGFjazsNCn0NCg0Kc3Bhbi5wbHNxbC1mdW5jdGlvbiB7DQogIGNvbG9yOiBkYXJrb3JhbmdlOw0KfQ0KDQpzcGFuLnBsc3FsLXR5cGUgew0KICBjb2xvcjogcHVycGxlOw0KfQ0KDQpzcGFuLnBsc3FsLXNlcGFyYXRvciB7DQogIGNvbG9yOiAjNjY2NjY2Ow0KfQ0KDQpzcGFuLnBsc3FsLW51bWJlciB7DQogIGNvbG9yOiBkYXJrY3lhbjsNCn0NCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KICA8aGVhZD4NCiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvY29kZW1pcnJvci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8dGl0bGU+Q29kZU1pcnJvcjogUExTUUwgZGVtb25zdHJhdGlvbjwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY3NzL2RvY3MuY3NzIi8+DQogIDwvaGVhZD4NCiAgPGJvZHkgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4NCg0KPHA+RGVtb25zdHJhdGlvbiBvZiA8YSBocmVmPSIuLi8uLi9pbmRleC5odG1sIj5Db2RlTWlycm9yPC9hPidzIFBMU1FMDQpoaWdobGlnaHRlci48L3A+DQoNCjxwPldyaXR0ZW4gYnkgUGV0ZXIgUmFnYW5pdHNjaCAoPGEgaHJlZj0iTElDRU5TRSI+bGljZW5zZTwvYT4pLCBiYXNlZA0Kb24gSm9obiBCZW5lZGlrdHNzb24gPGEgaHJlZj0iLi4vc3FsL2luZGV4Lmh0bWwiPlNRTCBwYXJzZXI8L2E+LjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Ij4NCjx0ZXh0YXJlYSBpZD0iY29kZSIgY29scz0iMTIwIiByb3dzPSI1MCI+DQpQUk9DRURVUkUgZ2VuZXJhdGVSZXN1bHQNCiAgKCBwUm91dGluZVR5cGUgICBJTiBWQVJDSEFSMg0KICAsIHBSZWZlcmVuY2VUeXBlIElOIFZBUkNIQVIyDQogICwgcFJlZmVyZW5jZUlkICAgSU4gTlVNQkVSDQogICkNCklTDQogICAgUk9VVElORV9OQU1FICAgICAgQ09OU1RBTlQgVkFSQ0hBUjIoMzApIDo9ICdnZW5lcmF0ZVJlc3VsdCc7DQogICAgLS0NCiAgICB2RGlzcGxheUFzICAgICAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLkRJU1BMQVlfQVMgICAgICAlVFlQRTsNCiAgICB2TG92UXVlcnkgICAgICAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLkxPVl9RVUVSWSAgICAgICAlVFlQRTsNCiAgICB2RGlzcGxheU51bGxWYWx1ZSBBUEVYTElCX1ZfUEFHRV9JVEVNLkxPVl9ESVNQTEFZX05VTEwlVFlQRTsNCiAgICB2TG92TnVsbFRleHQgICAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLkxPVl9OVUxMX1RFWFQgICAlVFlQRTsNCiAgICB2TG92TnVsbFZhbHVlICAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLkxPVl9OVUxMX1ZBTFVFICAlVFlQRTsNCiAgICB2QXBwbGljYXRpb25JZCAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLkFQUExJQ0FUSU9OX0lEICAlVFlQRTsNCiAgICB2UGFnZUlkICAgICAgICAgICBBUEVYTElCX1ZfUEFHRV9JVEVNLlBBR0VfSUQgICAgICAgICAlVFlQRTsNCkJFR0lODQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgIC0tIERldGVybWluZSB3aGljaCByb3V0aW5lIHRvIGNhbGwgYW5kIHBhc3MgcGFyYW1ldGVycw0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICBDQVNFIHBSb3V0aW5lVHlwZQ0KICAgIFdIRU4gJ0xPVicNCiAgICBUSEVODQogICAgICAgIEFwZXhMaWJfTG92LmdlbmVyYXRlTG92UmVzdWx0KCBwUmVmZXJlbmNlVHlwZSwgcFJlZmVyZW5jZUlkICk7DQogICAgLS0NCiAgICBXSEVOICdDT01QVVRBVElPTicNCiAgICBUSEVODQogICAgICAgIEFwZXhMaWJfQ29tcHV0YXRpb24uZ2VuZXJhdGVDb21wdXRhdGlvblJlc3VsdCggcFJlZmVyZW5jZVR5cGUsIHBSZWZlcmVuY2VJZCApOw0KICAgIC0tDQogICAgRUxTRQ0KICAgICAgICBBcGV4bGliX0Vycm9yLnJhaXNlSW1wbEVycm9yKCdVbnN1cHBvcnRlZCByb3V0aW5lIHR5cGUgIid8fHBSb3V0aW5lVHlwZXx8JyIhJyk7DQogICAgRU5EIENBU0U7DQogICAgLS0NCkVYQ0VQVElPTiBXSEVOIE9USEVSUyBUSEVODQogICAgSFRQLnBybignRXJyb3I6ICd8fFNRTEVSUk0pOw0KICAgIC0tIFJBSVNFOyBubyByYWlzZSwgYmVjYXVzZSBBUEVYIGRvZXNuJ3QgY2FyZSBhbnl3YXkuDQpFTkQgZ2VuZXJhdGVSZXN1bHQ7DQo8L3RleHRhcmVhPg0KPC9kaXY+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgdmFyIGVkaXRvciA9IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKCdjb2RlJywgew0KICAgIGhlaWdodDogIjQ1MHB4IiwNCiAgICBwYXJzZXJmaWxlOiAiLi4vY29udHJpYi9wbHNxbC9qcy9wYXJzZXBsc3FsLmpzIiwNCiAgICBzdHlsZXNoZWV0OiAiY3NzL3Bsc3FsY29sb3JzLmNzcyIsDQogICAgcGF0aDogIi4uLy4uL2pzLyIsDQogICAgdGV4dFdyYXBwaW5nOiBmYWxzZQ0KICB9KTsNCjwvc2NyaXB0Pg0KDQogIDwvYm9keT4NCjwvaHRtbD4NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/js/parseplsql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIFBsc3FsUGFyc2VyID0gRWRpdG9yLlBhcnNlciA9IChmdW5jdGlvbigpIHsNCg0KICBmdW5jdGlvbiB3b3JkUmVnZXhwKHdvcmRzKSB7DQogICAgcmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiICsgd29yZHMuam9pbigifCIpICsgIikkIiwgImkiKTsNCiAgfQ0KDQogIHZhciBmdW5jdGlvbnMgPSB3b3JkUmVnZXhwKFsNCiJhYnMiLCJhY29zIiwiYWRkX21vbnRocyIsImFzY2lpIiwiYXNpbiIsImF0YW4iLCJhdGFuMiIsImF2ZXJhZ2UiLA0KImJmaWxlbmFtZSIsDQoiY2VpbCIsImNoYXJ0b3Jvd2lkIiwiY2hyIiwiY29uY2F0IiwiY29udmVydCIsImNvcyIsImNvc2giLCJjb3VudCIsDQoiZGVjb2RlIiwiZGVyZWYiLCJkdWFsIiwiZHVtcCIsImR1cF92YWxfb25faW5kZXgiLA0KImVtcHR5IiwiZXJyb3IiLCJleHAiLA0KImZhbHNlIiwiZmxvb3IiLCJmb3VuZCIsDQoiZ2xiIiwiZ3JlYXRlc3QiLA0KImhleHRvcmF3IiwNCiJpbml0Y2FwIiwiaW5zdHIiLCJpbnN0cmIiLCJpc29wZW4iLA0KImxhc3RfZGF5IiwibGVhc3QiLCJsZW5naHQiLCJsZW5naHRiIiwibG4iLCJsb3dlciIsImxwYWQiLCJsdHJpbSIsImx1YiIsDQoibWFrZV9yZWYiLCJtYXgiLCJtaW4iLCJtb2QiLCJtb250aHNfYmV0d2VlbiIsDQoibmV3X3RpbWUiLCJuZXh0X2RheSIsIm5leHR2YWwiLCJubHNfY2hhcnNldF9kZWNsX2xlbiIsIm5sc19jaGFyc2V0X2lkIiwibmxzX2NoYXJzZXRfbmFtZSIsIm5sc19pbml0Y2FwIiwibmxzX2xvd2VyIiwNCiJubHNfc29ydCIsIm5sc191cHBlciIsIm5sc3NvcnQiLCJub19kYXRhX2ZvdW5kIiwibm90Zm91bmQiLCJudWxsIiwibnZsIiwNCiJvdGhlcnMiLA0KInBvd2VyIiwNCiJyYXd0b2hleCIsInJlZnRvaGV4Iiwicm91bmQiLCJyb3djb3VudCIsInJvd2lkdG9jaGFyIiwicnBhZCIsInJ0cmltIiwNCiJzaWduIiwic2luIiwic2luaCIsInNvdW5kZXgiLCJzcWxjb2RlIiwic3FsZXJybSIsInNxcnQiLCJzdGRkZXYiLCJzdWJzdHIiLCJzdWJzdHJiIiwic3VtIiwic3lzZGF0ZSIsDQoidGFuIiwidGFuaCIsInRvX2NoYXIiLCJ0b19kYXRlIiwidG9fbGFiZWwiLCJ0b19tdWx0aV9ieXRlIiwidG9fbnVtYmVyIiwidG9fc2luZ2xlX2J5dGUiLCJ0cmFuc2xhdGUiLCJ0cnVlIiwidHJ1bmMiLA0KInVpZCIsInVwcGVyIiwidXNlciIsInVzZXJlbnYiLA0KInZhcmlhbmNlIiwidnNpemUiDQoNCiAgXSk7DQoNCiAgdmFyIGtleXdvcmRzID0gd29yZFJlZ2V4cChbDQoiYWJvcnQiLCJhY2NlcHQiLCJhY2Nlc3MiLCJhZGQiLCJhbGwiLCJhbHRlciIsImFuZCIsImFueSIsImFycmF5IiwiYXJyYXlsZW4iLCJhcyIsImFzYyIsImFzc2VydCIsImFzc2lnbiIsImF0IiwiYXR0cmlidXRlcyIsImF1ZGl0IiwNCiJhdXRob3JpemF0aW9uIiwiYXZnIiwNCiJiYXNlX3RhYmxlIiwiYmVnaW4iLCJiZXR3ZWVuIiwiYmluYXJ5X2ludGVnZXIiLCJib2R5IiwiYm9vbGVhbiIsImJ5IiwNCiJjYXNlIiwiY2FzdCIsImNoYXIiLCJjaGFyX2Jhc2UiLCJjaGVjayIsImNsb3NlIiwiY2x1c3RlciIsImNsdXN0ZXJzIiwiY29sYXV0aCIsImNvbHVtbiIsImNvbW1lbnQiLCJjb21taXQiLCJjb21wcmVzcyIsImNvbm5lY3QiLA0KImNvbm5lY3RlZCIsImNvbnN0YW50IiwiY29uc3RyYWludCIsImNyYXNoIiwiY3JlYXRlIiwiY3VycmVudCIsImN1cnJ2YWwiLCJjdXJzb3IiLA0KImRhdGFfYmFzZSIsImRhdGFiYXNlIiwiZGF0ZSIsImRiYSIsImRlYWxsb2NhdGUiLCJkZWJ1Z29mZiIsImRlYnVnb24iLCJkZWNpbWFsIiwiZGVjbGFyZSIsImRlZmF1bHQiLCJkZWZpbml0aW9uIiwiZGVsYXkiLCJkZWxldGUiLA0KImRlc2MiLCJkaWdpdHMiLCJkaXNwb3NlIiwiZGlzdGluY3QiLCJkbyIsImRyb3AiLA0KImVsc2UiLCJlbHNpZiIsImVuYWJsZSIsImVuZCIsImVudHJ5IiwiZXNjYXBlIiwiZXhjZXB0aW9uIiwiZXhjZXB0aW9uX2luaXQiLCJleGNoYW5nZSIsImV4Y2x1c2l2ZSIsImV4aXN0cyIsImV4aXQiLCJleHRlcm5hbCIsDQoiZmFzdCIsImZldGNoIiwiZmlsZSIsImZvciIsImZvcmNlIiwiZm9ybSIsImZyb20iLCJmdW5jdGlvbiIsDQoiZ2VuZXJpYyIsImdvdG8iLCJncmFudCIsImdyb3VwIiwNCiJoYXZpbmciLA0KImlkZW50aWZpZWQiLCJpZiIsImltbWVkaWF0ZSIsImluIiwiaW5jcmVtZW50IiwiaW5kZXgiLCJpbmRleGVzIiwiaW5kaWNhdG9yIiwiaW5pdGlhbCIsImluaXRyYW5zIiwiaW5zZXJ0IiwiaW50ZXJmYWNlIiwiaW50ZXJzZWN0IiwNCiJpbnRvIiwiaXMiLA0KImtleSIsDQoibGV2ZWwiLCJsaWJyYXJ5IiwibGlrZSIsImxpbWl0ZWQiLCJsb2NhbCIsImxvY2siLCJsb2ciLCJsb2dnaW5nIiwibG9uZyIsImxvb3AiLA0KIm1hc3RlciIsIm1heGV4dGVudHMiLCJtYXh0cmFucyIsIm1lbWJlciIsIm1pbmV4dGVudHMiLCJtaW51cyIsIm1pc2xhYmVsIiwibW9kZSIsIm1vZGlmeSIsIm11bHRpc2V0IiwNCiJuZXciLCJuZXh0Iiwibm8iLCJub2F1ZGl0Iiwibm9jb21wcmVzcyIsIm5vbG9nZ2luZyIsIm5vcGFyYWxsZWwiLCJub3QiLCJub3dhaXQiLCJudW1iZXJfYmFzZSIsDQoib2JqZWN0Iiwib2YiLCJvZmYiLCJvZmZsaW5lIiwib24iLCJvbmxpbmUiLCJvbmx5Iiwib3BlbiIsIm9wdGlvbiIsIm9yIiwib3JkZXIiLCJvdXQiLA0KInBhY2thZ2UiLCJwYXJhbGxlbCIsInBhcnRpdGlvbiIsInBjdGZyZWUiLCJwY3RpbmNyZWFzZSIsInBjdHVzZWQiLCJwbHNfaW50ZWdlciIsInBvc2l0aXZlIiwicG9zaXRpdmVuIiwicHJhZ21hIiwicHJpbWFyeSIsInByaW9yIiwNCiJwcml2YXRlIiwicHJpdmlsZWdlcyIsInByb2NlZHVyZSIsInB1YmxpYyIsDQoicmFpc2UiLCJyYW5nZSIsInJhdyIsInJlYWQiLCJyZWJ1aWxkIiwicmVjb3JkIiwicmVmIiwicmVmZXJlbmNlcyIsInJlZnJlc2giLCJyZWxlYXNlIiwicmVuYW1lIiwicmVwbGFjZSIsInJlc291cmNlIiwicmVzdHJpY3QiLCJyZXR1cm4iLA0KInJldHVybmluZyIsInJldmVyc2UiLCJyZXZva2UiLCJyb2xsYmFjayIsInJvdyIsInJvd2lkIiwicm93bGFiZWwiLCJyb3dudW0iLCJyb3dzIiwicnVuIiwNCiJzYXZlcG9pbnQiLCJzY2hlbWEiLCJzZWdtZW50Iiwic2VsZWN0Iiwic2VwYXJhdGUiLCJzZXNzaW9uIiwic2V0Iiwic2hhcmUiLCJzbmFwc2hvdCIsInNvbWUiLCJzcGFjZSIsInNwbGl0Iiwic3FsIiwic3RhcnQiLCJzdGF0ZW1lbnQiLA0KInN0b3JhZ2UiLCJzdWJ0eXBlIiwic3VjY2Vzc2Z1bCIsInN5bm9ueW0iLA0KInRhYmF1dGgiLCJ0YWJsZSIsInRhYmxlcyIsInRhYmxlc3BhY2UiLCJ0YXNrIiwidGVybWluYXRlIiwidGhlbiIsInRvIiwidHJpZ2dlciIsInRydW5jYXRlIiwidHlwZSIsDQoidW5pb24iLCJ1bmlxdWUiLCJ1bmxpbWl0ZWQiLCJ1bnJlY292ZXJhYmxlIiwidW51c2FibGUiLCJ1cGRhdGUiLCJ1c2UiLCJ1c2luZyIsDQoidmFsaWRhdGUiLCJ2YWx1ZSIsInZhbHVlcyIsInZhcmlhYmxlIiwidmlldyIsInZpZXdzIiwNCiJ3aGVuIiwid2hlbmV2ZXIiLCJ3aGVyZSIsIndoaWxlIiwid2l0aCIsIndvcmsiDQogIF0pOw0KDQogIHZhciB0eXBlcyA9IHdvcmRSZWdleHAoWw0KImJmaWxlIiwiYmxvYiIsDQoiY2hhcmFjdGVyIiwiY2xvYiIsDQoiZGVjIiwNCiJmbG9hdCIsDQoiaW50IiwiaW50ZWdlciIsDQoibWxzbGFiZWwiLA0KIm5hdHVyYWwiLCJuYXR1cmFsbiIsIm5jaGFyIiwibmNsb2IiLCJudW1iZXIiLCJudW1lcmljIiwibnZhcmNoYXIyIiwNCiJyZWFsIiwicm93dHlwZSIsDQoic2lnbnR5cGUiLCJzbWFsbGludCIsInN0cmluZyIsDQoidmFyY2hhciIsInZhcmNoYXIyIg0KICBdKTsNCg0KICB2YXIgb3BlcmF0b3JzID0gd29yZFJlZ2V4cChbDQogICAgIjo9IiwgIjwiLCAiPD0iLCAiPT0iLCAiIT0iLCAiPD4iLCAiPiIsICI+PSIsICJsaWtlIiwgInJsaWtlIiwgImluIiwgInhvciIsICJiZXR3ZWVuIg0KICBdKTsNCg0KICB2YXIgb3BlcmF0b3JDaGFycyA9IC9bKitcLTw+PSZ8OlwvXS87DQoNCiAgdmFyIHRva2VuaXplU3FsID0gKGZ1bmN0aW9uKCkgew0KICAgIGZ1bmN0aW9uIG5vcm1hbChzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICB2YXIgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgaWYgKGNoID09ICJAIiB8fCBjaCA9PSAiJCIpIHsNCiAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tcd1xkXS8pOw0KICAgICAgICByZXR1cm4gInBsc3FsLXZhciI7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAiXCIiIHx8IGNoID09ICInIiB8fCBjaCA9PSAiYCIpIHsNCiAgICAgICAgc2V0U3RhdGUoaW5MaXRlcmFsKGNoKSk7DQogICAgICAgIHJldHVybiBudWxsOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIiwiIHx8IGNoID09ICI7Iikgew0KICAgICAgICByZXR1cm4gInBsc3FsLXNlcGFyYXRvciINCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICctJykgew0KICAgICAgICBpZiAoc291cmNlLnBlZWsoKSA9PSAiLSIpIHsNCiAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgc291cmNlLm5leHQoKTsNCiAgICAgICAgICByZXR1cm4gInBsc3FsLWNvbW1lbnQiOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKC9cZC8udGVzdChzb3VyY2UucGVlaygpKSkgew0KICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICAgIGlmIChzb3VyY2UucGVlaygpID09ICcuJykgew0KICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICAgIH0NCiAgICAgICAgICByZXR1cm4gInBsc3FsLW51bWJlciI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICAgIHJldHVybiAicGxzcWwtb3BlcmF0b3IiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAob3BlcmF0b3JDaGFycy50ZXN0KGNoKSkgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhvcGVyYXRvckNoYXJzKTsNCiAgICAgICAgcmV0dXJuICJwbHNxbC1vcGVyYXRvciI7DQogICAgICB9DQogICAgICBlbHNlIGlmICgvXGQvLnRlc3QoY2gpKSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICBpZiAoc291cmNlLnBlZWsoKSA9PSAnLicpIHsNCiAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAicGxzcWwtbnVtYmVyIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKC9bKCldLy50ZXN0KGNoKSkgew0KICAgICAgICByZXR1cm4gInBsc3FsLXB1bmN0dWF0aW9uIjsNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW19cd1xkXS8pOw0KICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKSwgdHlwZTsNCiAgICAgICAgaWYgKG9wZXJhdG9ycy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAicGxzcWwtb3BlcmF0b3IiOw0KICAgICAgICBlbHNlIGlmIChrZXl3b3Jkcy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAicGxzcWwta2V5d29yZCI7DQogICAgICAgIGVsc2UgaWYgKGZ1bmN0aW9ucy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAicGxzcWwtZnVuY3Rpb24iOw0KICAgICAgICBlbHNlIGlmICh0eXBlcy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAicGxzcWwtdHlwZSI7DQogICAgICAgIGVsc2UNCiAgICAgICAgICB0eXBlID0gInBsc3FsLXdvcmQiOw0KICAgICAgICByZXR1cm4ge3N0eWxlOiB0eXBlLCBjb250ZW50OiB3b3JkfTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpbkxpdGVyYWwocXVvdGUpIHsNCiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgIHZhciBlc2NhcGVkID0gZmFsc2U7DQogICAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQogICAgICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICBpZiAoY2ggPT0gcXVvdGUgJiYgIWVzY2FwZWQpIHsNCiAgICAgICAgICAgIHNldFN0YXRlKG5vcm1hbCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkICYmIGNoID09ICJcXCI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHF1b3RlID09ICJgIiA/ICJwbHNxbC13b3JkIiA6ICJwbHNxbC1saXRlcmFsIjsNCiAgICAgIH07DQogICAgfQ0KDQogICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc3RhcnRTdGF0ZSkgew0KICAgICAgcmV0dXJuIHRva2VuaXplcihzb3VyY2UsIHN0YXJ0U3RhdGUgfHwgbm9ybWFsKTsNCiAgICB9Ow0KICB9KSgpOw0KDQogIGZ1bmN0aW9uIGluZGVudFNxbChjb250ZXh0KSB7DQogICAgcmV0dXJuIGZ1bmN0aW9uKG5leHRDaGFycykgew0KICAgICAgdmFyIGZpcnN0Q2hhciA9IG5leHRDaGFycyAmJiBuZXh0Q2hhcnMuY2hhckF0KDApOw0KICAgICAgdmFyIGNsb3NpbmcgPSBjb250ZXh0ICYmIGZpcnN0Q2hhciA9PSBjb250ZXh0LnR5cGU7DQogICAgICBpZiAoIWNvbnRleHQpDQogICAgICAgIHJldHVybiAwOw0KICAgICAgZWxzZSBpZiAoY29udGV4dC5hbGlnbikNCiAgICAgICAgcmV0dXJuIGNvbnRleHQuY29sIC0gKGNsb3NpbmcgPyBjb250ZXh0LndpZHRoIDogMCk7DQogICAgICBlbHNlDQogICAgICAgIHJldHVybiBjb250ZXh0LmluZGVudCArIChjbG9zaW5nID8gMCA6IGluZGVudFVuaXQpOw0KICAgIH0NCiAgfQ0KDQogIGZ1bmN0aW9uIHBhcnNlU3FsKHNvdXJjZSkgew0KICAgIHZhciB0b2tlbnMgPSB0b2tlbml6ZVNxbChzb3VyY2UpOw0KICAgIHZhciBjb250ZXh0ID0gbnVsbCwgaW5kZW50ID0gMCwgY29sID0gMDsNCiAgICBmdW5jdGlvbiBwdXNoQ29udGV4dCh0eXBlLCB3aWR0aCwgYWxpZ24pIHsNCiAgICAgIGNvbnRleHQgPSB7cHJldjogY29udGV4dCwgaW5kZW50OiBpbmRlbnQsIGNvbDogY29sLCB0eXBlOiB0eXBlLCB3aWR0aDogd2lkdGgsIGFsaWduOiBhbGlnbn07DQogICAgfQ0KICAgIGZ1bmN0aW9uIHBvcENvbnRleHQoKSB7DQogICAgICBjb250ZXh0ID0gY29udGV4dC5wcmV2Ow0KICAgIH0NCg0KICAgIHZhciBpdGVyID0gew0KICAgICAgbmV4dDogZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciB0b2tlbiA9IHRva2Vucy5uZXh0KCk7DQogICAgICAgIHZhciB0eXBlID0gdG9rZW4uc3R5bGUsIGNvbnRlbnQgPSB0b2tlbi5jb250ZW50LCB3aWR0aCA9IHRva2VuLnZhbHVlLmxlbmd0aDsNCg0KICAgICAgICBpZiAoY29udGVudCA9PSAiXG4iKSB7DQogICAgICAgICAgdG9rZW4uaW5kZW50YXRpb24gPSBpbmRlbnRTcWwoY29udGV4dCk7DQogICAgICAgICAgaW5kZW50ID0gY29sID0gMDsNCiAgICAgICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LmFsaWduID09IG51bGwpIGNvbnRleHQuYWxpZ24gPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICh0eXBlID09ICJ3aGl0ZXNwYWNlIiAmJiBjb2wgPT0gMCkgew0KICAgICAgICAgIGluZGVudCA9IHdpZHRoOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKCFjb250ZXh0ICYmIHR5cGUgIT0gInBsc3FsLWNvbW1lbnQiKSB7DQogICAgICAgICAgcHVzaENvbnRleHQoIjsiLCAwLCBmYWxzZSk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoY29udGVudCAhPSAiXG4iKSBjb2wgKz0gd2lkdGg7DQoNCiAgICAgICAgaWYgKHR5cGUgPT0gInBsc3FsLXB1bmN0dWF0aW9uIikgew0KICAgICAgICAgIGlmIChjb250ZW50ID09ICIoIikNCiAgICAgICAgICAgIHB1c2hDb250ZXh0KCIpIiwgd2lkdGgpOw0KICAgICAgICAgIGVsc2UgaWYgKGNvbnRlbnQgPT0gIikiKQ0KICAgICAgICAgICAgcG9wQ29udGV4dCgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInBsc3FsLXNlcGFyYXRvciIgJiYgY29udGVudCA9PSAiOyIgJiYgY29udGV4dCAmJiAhY29udGV4dC5wcmV2KSB7DQogICAgICAgICAgcG9wQ29udGV4dCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgfSwNCg0KICAgICAgY29weTogZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBfY29udGV4dCA9IGNvbnRleHQsIF9pbmRlbnQgPSBpbmRlbnQsIF9jb2wgPSBjb2wsIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlOw0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7DQogICAgICAgICAgdG9rZW5zID0gdG9rZW5pemVTcWwoc291cmNlLCBfdG9rZW5TdGF0ZSk7DQogICAgICAgICAgY29udGV4dCA9IF9jb250ZXh0Ow0KICAgICAgICAgIGluZGVudCA9IF9pbmRlbnQ7DQogICAgICAgICAgY29sID0gX2NvbDsNCiAgICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgICAgfTsNCiAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybiBpdGVyOw0KICB9DQoNCiAgcmV0dXJuIHttYWtlOiBwYXJzZVNxbCwgZWxlY3RyaWNDaGFyczogIikifTsNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/plsql/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IENvcHlyaWdodCAoYykgMjAxMCBQZXRlciBSYWdhbml0c2NoDQoNCiBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZA0KIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkNCiBkYW1hZ2VzIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuDQoNCiBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkNCiBwdXJwb3NlLCBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQNCiByZWRpc3RyaWJ1dGUgaXQgZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOg0KDQogMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdA0KICAgIG5vdCBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcw0KICAgIHNvZnR3YXJlIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QNCiAgICBkb2N1bWVudGF0aW9uIHdvdWxkIGJlIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuDQoNCiAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0DQogICAgbm90IGJlIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4NCg0KIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZQ0KICAgIGRpc3RyaWJ1dGlvbi4NCg0KIFBldGVyIFJhZ2FuaXRzY2gNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/css/pythoncolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICBwYWRkaW5nOiAuNGVtOw0KICBtYXJnaW46IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgbGluZS1oZWlnaHQ6IDEuMWVtOw0KICBjb2xvcjogYmxhY2s7DQp9DQoNCnByZS5jb2RlLCAuZWRpdGJveCB7DQogIGNvbG9yOiAjNjY2NjY2Ow0KfQ0KDQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpzcGFuLnB5LWRlbGltaXRlciwgc3Bhbi5weS1zcGVjaWFsIHsNCiAgY29sb3I6ICM2NjY2NjY7DQp9DQoNCnNwYW4ucHktb3BlcmF0b3Igew0KICBjb2xvcjogIzY2NjY2NjsNCn0NCg0Kc3Bhbi5weS1lcnJvciB7DQogIGJhY2tncm91bmQtY29sb3I6ICM2NjAwMDA7DQogIGNvbG9yOiAjRkZGRkZGOw0KfQ0KDQpzcGFuLnB5LWtleXdvcmQgew0KICBjb2xvcjogIzc3MDA4ODsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCnNwYW4ucHktbGl0ZXJhbCB7DQogIGNvbG9yOiAjMjI4ODExOw0KfQ0KDQpzcGFuLnB5LWlkZW50aWZpZXIsIHNwYW4ucHktZnVuYyAgew0KICBjb2xvcjogYmxhY2s7DQp9DQoNCnNwYW4ucHktdHlwZSwgc3Bhbi5weS1kZWNvcmF0b3Igew0KICBjb2xvcjogIzAwMDBGRjsNCn0NCg0Kc3Bhbi5weS1jb21tZW50IHsNCiAgY29sb3I6ICNBQTc3MDA7DQp9DQoNCnNwYW4ucHktc3RyaW5nLCBzcGFuLnB5LWJ5dGVzLCBzcGFuLnB5LXJhdywgc3Bhbi5weS11bmljb2RlIHsNCiAgY29sb3I6ICNBQTIyMjI7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL2NvZGVtaXJyb3IuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQogICAgPHRpdGxlPkNvZGVNaXJyb3I6IFB5dGhvbiBkZW1vbnN0cmF0aW9uPC90aXRsZT4NCiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgICAgLkNvZGVNaXJyb3ItbGluZS1udW1iZXJzIHsNCiAgICAgICAgd2lkdGg6IDIuMmVtOw0KICAgICAgICBjb2xvcjogI2FhYTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsNCiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgICAgIHBhZGRpbmc6IC40ZW07DQogICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgICAgICAgZm9udC1zaXplOiAxMHB0Ow0KICAgICAgICBsaW5lLWhlaWdodDogMS4xZW07DQogICAgICB9DQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+DQo8cD4NCiAgICBUaGlzIGlzIGEgc2ltcGxlIGRlbW9uc3RyYXRpb24gb2YgdGhlIFB5dGhvbiBzeW50YXggaGlnaGxpZ2h0aW5nIG1vZHVsZQ0KICAgIGZvciA8YSBocmVmPSJpbmRleC5odG1sIj5Db2RlTWlycm9yPC9hPi4NCjwvcD4NCjxwPg0KICAgIEZlYXR1cmVzIG9mIHRoaXMgcGFyc2VyIGluY2x1ZGU6DQo8L3A+DQo8dWw+DQogICAgPGxpPlRva2VuLWJhc2VkIHN5bnRheCBoaWdobGlnaHRpbmcgLSBjdXJyZW50bHkgdmVyeSBsaXR0bGUgbGV4aWNhbCBhbmFseXNpcyBoYXBwZW5zLiAgRmV3IGxleGljYWwgZXJyb3JzIHdpbGwgYmUgZGV0ZWN0ZWQuPC9saT4NCiAgICA8bGk+VXNlIHRoZSBub3JtYWwgaW5kZW50YXRpb24gbW9kZSB0byBlbmZvcmNlIHJlZ3VsYXIgaW5kZW50YXRpb24sIG90aGVyd2lzZSB0aGUgInNoaWZ0IiBpbmRlbnRhdGlvbiBtb2RlIHdpbGwgZ2l2ZSB5b3UgbW9yZSBmbGV4aWJpbGl0eS48L2xpPg0KICAgIDxsaT5QYXJzZXIgT3B0aW9uczoNCiAgICAgICAgPHVsPg0KICAgICAgICAgICAgPGxpPnB5dGhvblZlcnNpb24gKEludGVnZXIpIC0gMiBvciAzIHRvIGluZGljYXRlIHdoaWNoIHZlcnNpb24gb2YgUHl0aG9uIHRvIHBhcnNlLiAgRGVmYXVsdCA9IDI8L2xpPg0KICAgICAgICAgICAgPGxpPnN0cmljdEVycm9ycyAoQm9vbCkgLSB0cnVlIHRvIGhpZ2hsaWdodCBlcnJvcnMgdGhhdCBtYXkgbm90IGJlIFB5dGhvbiBlcnJvcnMgYnV0IGNhdXNlIGNvbmZ1c2lvbiBmb3IgdGhpcyBwYXJzZXIuIERlZmF1bHQgPSB0cnVlPC9saT4NCiAgICAgICAgPC91bD4NCiAgICA8L2xpPg0KPC91bD4NCjxwPldyaXR0ZW4gYnkgVGltb3RoeSBGYXJyZWxsICg8YSBocmVmPSJMSUNFTlNFIj5saWNlbnNlPC9hPikuIFNwZWNpYWwNCnRoYW5rcyB0byBBZGFtIEJyYW5kIGFuZCBNYXJpam4gSGF2ZXJiZWtlIGZvciB0aGVpciBoZWxwIGluIGRlYnVnZ2luZw0KYW5kIHByb3ZpZGluZyBmb3IgdGhpcyBwYXJzZXIuPC9wPg0KDQo8ZGl2IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzogMHB4OyI+DQo8dGV4dGFyZWEgaWQ9ImNvZGUiIGNvbHM9IjEwMCIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDoxMDAlIj4NCiMgTGl0ZXJhbHMNCjEyMzQNCjAuMGUxMDENCi4xMjMNCjBiMDEwMTAwMTExMDANCjBvMDEyMzQ1NjcNCjB4MDk4NzY1NDMyMWFiY2RlZg0KIyBFcnJvciBMaXRlcmFscw0KLjBiMDAwDQowLjBlDQowZQ0KDQojIFN0cmluZyBMaXRlcmFscw0KJ0ZvclwnJw0KIkdvZFwiIg0KIiIic28gbG92ZWQNCnRoZSB3b3JsZCIiIg0KJycndGhhdCBoZSBnYXZlDQpoaXMgb25seSBiZWdvdHRlblwnICcnJw0KJ3RoYXQgd2hvc29ldmVyIGJlbGlldmV0aCBcDQppbiBoaW0nDQonJw0KDQojIElkZW50aWZpZXJzDQpfX2FfXw0KYS5iDQphLmIuYw0KIyBFcnJvciBJZGVudGlmaWVycw0KYS4NCg0KIyBPcGVyYXRvcnMNCisgLSAqIC8gJSAmIHwgXiB+IDwgPg0KPT0gIT0gPD0gPj0gPD4gPDwgPj4gLy8gKioNCmFuZCBvciBub3QgaW4gaXMNCg0KIyBEZWxpbWl0ZXJzDQooKSBbXSB7fSAsIDogYCA9IDsgQCAuICMgQXQtc2lnbnMgYW5kIHBlcmlvZHMgcmVxdWlyZSBjb250ZXh0DQorPSAtPSAqPSAvPSAlPSAmPSB8PSBePQ0KLy89ID4+PSA8PD0gKio9DQoNCiMgS2V5d29yZHMNCmFzIGFzc2VydCBicmVhayBjbGFzcyBjb250aW51ZSBkZWYgZGVsIGVsaWYgZWxzZSBleGNlcHQNCmZpbmFsbHkgZm9yIGZyb20gZ2xvYmFsIGlmIGltcG9ydCBsYW1iZGEgcGFzcyByYWlzZQ0KcmV0dXJuIHRyeSB3aGlsZSB3aXRoIHlpZWxkDQoNCiMgUHl0aG9uIDIgS2V5d29yZHMgKG90aGVyd2lzZSBJZGVudGlmaWVycykNCmV4ZWMgcHJpbnQNCg0KIyBQeXRob24gMyBLZXl3b3JkcyAob3RoZXJ3aXNlIElkZW50aWZpZXJzKQ0Kbm9ubG9jYWwNCg0KIyBUeXBlcw0KYm9vbCBjbGFzc21ldGhvZCBjb21wbGV4IGRpY3QgZW51bWVyYXRlIGZsb2F0IGZyb3plbnNldCBpbnQgbGlzdCBvYmplY3QNCnByb3BlcnR5IHJldmVyc2VkIHNldCBzbGljZSBzdGF0aWNtZXRob2Qgc3RyIHN1cGVyIHR1cGxlIHR5cGUNCg0KIyBQeXRob24gMiBUeXBlcyAob3RoZXJ3aXNlIElkZW50aWZpZXJzKQ0KYmFzZXN0cmluZyBidWZmZXIgZmlsZSBsb25nIHVuaWNvZGUgeHJhbmdlDQoNCiMgUHl0aG9uIDMgVHlwZXMgKG90aGVyd2lzZSBJZGVudGlmaWVycykNCmJ5dGVhcnJheSBieXRlcyBmaWx0ZXIgbWFwIG1lbW9yeXZpZXcgb3BlbiByYW5nZSB6aXANCg0KIyBFeGFtcGxlIFN0cmljdCBFcnJvcnMNCmRlZiBkb2VzTm90aGluZygpOg0KICAgcGFzcyAjIGluZGVudFVuaXQgaXMgc2V0IHRvIDQgYnV0IHRoaXMgbGluZSBpcyBpbmRlbnRlZCAzDQoNCiMgU29tZSBFeGFtcGxlIGNvZGUNCmltcG9ydCBvcw0KZnJvbSBwYWNrYWdlIGltcG9ydCBQYXJlbnRDbGFzcw0KDQpAbm9uc2Vuc2VEZWNvcmF0b3INCmRlZiBkb2VzTm90aGluZygpOg0KICAgIHBhc3MNCg0KY2xhc3MgRXhhbXBsZUNsYXNzKFBhcmVudENsYXNzKToNCiAgICBAc3RhdGljbWV0aG9kDQogICAgZGVmIGV4YW1wbGUoaW5wdXRTdHIpOg0KICAgICAgICBhID0gbGlzdChpbnB1dFN0cikNCiAgICAgICAgYS5yZXZlcnNlKCkNCiAgICAgICAgcmV0dXJuICcnLmpvaW4oYSkNCg0KICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtaXhpbiA9ICdIZWxsbycpOg0KICAgICAgICBzZWxmLm1peGluID0gbWl4aW4NCg0KPC90ZXh0YXJlYT4NCjwvZGl2Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgdmFyIGVkaXRvciA9IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKCdjb2RlJywgew0KICAgICAgICBwYXJzZXJmaWxlOiBbIi4uL2NvbnRyaWIvcHl0aG9uL2pzL3BhcnNlcHl0aG9uLmpzIl0sDQogICAgICAgIHN0eWxlc2hlZXQ6ICJjc3MvcHl0aG9uY29sb3JzLmNzcyIsDQogICAgICAgIHBhdGg6ICIuLi8uLi9qcy8iLA0KICAgICAgICBsaW5lTnVtYmVyczogdHJ1ZSwNCiAgICAgICAgdGV4dFdyYXBwaW5nOiBmYWxzZSwNCiAgICAgICAgaW5kZW50VW5pdDogNCwNCiAgICAgICAgcGFyc2VyQ29uZmlnOiB7J3B5dGhvblZlcnNpb24nOiAyLCAnc3RyaWN0RXJyb3JzJzogdHJ1ZX0NCiAgICB9KTsNCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/js/parsepython.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIFB5dGhvblBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQogICAgZnVuY3Rpb24gd29yZFJlZ2V4cCh3b3Jkcykgew0KICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIgKyB3b3Jkcy5qb2luKCJ8IikgKyAiKSQiKTsNCiAgICB9DQogICAgdmFyIERFTElNSVRFUkNMQVNTID0gJ3B5LWRlbGltaXRlcic7DQogICAgdmFyIExJVEVSQUxDTEFTUyA9ICdweS1saXRlcmFsJzsNCiAgICB2YXIgRVJST1JDTEFTUyA9ICdweS1lcnJvcic7DQogICAgdmFyIE9QRVJBVE9SQ0xBU1MgPSAncHktb3BlcmF0b3InOw0KICAgIHZhciBJREVOVElGSUVSQ0xBU1MgPSAncHktaWRlbnRpZmllcic7DQogICAgdmFyIFNUUklOR0NMQVNTID0gJ3B5LXN0cmluZyc7DQogICAgdmFyIEJZVEVTQ0xBU1MgPSAncHktYnl0ZXMnOw0KICAgIHZhciBVTklDT0RFQ0xBU1MgPSAncHktdW5pY29kZSc7DQogICAgdmFyIFJBV0NMQVNTID0gJ3B5LXJhdyc7DQogICAgdmFyIE5PUk1BTENPTlRFWFQgPSAnbm9ybWFsJzsNCiAgICB2YXIgU1RSSU5HQ09OVEVYVCA9ICdzdHJpbmcnOw0KICAgIHZhciBzaW5nbGVPcGVyYXRvcnMgPSAnKy0qLyUmfF5+PD4nOw0KICAgIHZhciBkb3VibGVPcGVyYXRvcnMgPSB3b3JkUmVnZXhwKFsnPT0nLCAnIT0nLCAnXFw8PScsICdcXD49JywgJ1xcPFxcPicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcXDxcXDwnLCAnXFw+XFw+JywgJ1xcL1xcLycsICdcXCpcXConXSk7DQogICAgdmFyIHNpbmdsZURlbGltaXRlcnMgPSAnKClbXXt9QCw6YD07JzsNCiAgICB2YXIgZG91YmxlRGVsaW1pdGVycyA9IFsnXFwrPScsICdcXC09JywgJ1xcKj0nLCAnLz0nLCAnJT0nLCAnJj0nLCAnXFx8PScsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xcXj0nXTsNCiAgICB2YXIgdHJpcGxlRGVsaW1pdGVycyA9IHdvcmRSZWdleHAoWycvLz0nLCdcXD5cXD49JywnXFw8XFw8PScsJ1xcKlxcKj0nXSk7DQogICAgdmFyIHNpbmdsZVN0YXJ0ZXJzID0gc2luZ2xlT3BlcmF0b3JzICsgc2luZ2xlRGVsaW1pdGVycyArICc9ISc7DQogICAgdmFyIGRvdWJsZVN0YXJ0ZXJzID0gJz08PiovJzsNCiAgICB2YXIgaWRlbnRpZmllclN0YXJ0ZXJzID0gL1tfQS1aYS16XS87DQoNCiAgICB2YXIgd29yZE9wZXJhdG9ycyA9IHdvcmRSZWdleHAoWydhbmQnLCAnb3InLCAnbm90JywgJ2lzJywgJ2luJ10pOw0KICAgIHZhciBjb21tb25rZXl3b3JkcyA9IFsnYXMnLCAnYXNzZXJ0JywgJ2JyZWFrJywgJ2NsYXNzJywgJ2NvbnRpbnVlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZicsICdkZWwnLCAnZWxpZicsICdlbHNlJywgJ2V4Y2VwdCcsICdmaW5hbGx5JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvcicsICdmcm9tJywgJ2dsb2JhbCcsICdpZicsICdpbXBvcnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFtYmRhJywgJ3Bhc3MnLCAncmFpc2UnLCAncmV0dXJuJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyeScsICd3aGlsZScsICd3aXRoJywgJ3lpZWxkJ107DQogICAgdmFyIGNvbW1vbnR5cGVzID0gWydib29sJywgJ2NsYXNzbWV0aG9kJywgJ2NvbXBsZXgnLCAnZGljdCcsICdlbnVtZXJhdGUnLA0KICAgICAgICAgICAgICAgICAgICAgICAnZmxvYXQnLCAnZnJvemVuc2V0JywgJ2ludCcsICdsaXN0JywgJ29iamVjdCcsDQogICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0eScsICdyZXZlcnNlZCcsICdzZXQnLCAnc2xpY2UnLCAnc3RhdGljbWV0aG9kJywNCiAgICAgICAgICAgICAgICAgICAgICAgJ3N0cicsICdzdXBlcicsICd0dXBsZScsICd0eXBlJ107DQogICAgdmFyIHB5MiA9IHsndHlwZXMnOiBbJ2Jhc2VzdHJpbmcnLCAnYnVmZmVyJywgJ2ZpbGUnLCAnbG9uZycsICd1bmljb2RlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAneHJhbmdlJ10sDQogICAgICAgICAgICAgICAna2V5d29yZHMnOiBbJ2V4ZWMnLCAncHJpbnQnXSwNCiAgICAgICAgICAgICAgICd2ZXJzaW9uJzogMiB9Ow0KICAgIHZhciBweTMgPSB7J3R5cGVzJzogWydieXRlYXJyYXknLCAnYnl0ZXMnLCAnZmlsdGVyJywgJ21hcCcsICdtZW1vcnl2aWV3JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAnb3BlbicsICdyYW5nZScsICd6aXAnXSwNCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6IFsnbm9ubG9jYWwnXSwNCiAgICAgICAgICAgICAgICd2ZXJzaW9uJzogM307DQoNCiAgICB2YXIgcHksIGtleXdvcmRzLCB0eXBlcywgc3RyaW5nU3RhcnRlcnMsIHN0cmluZ1R5cGVzLCBjb25maWc7DQoNCiAgICBmdW5jdGlvbiBjb25maWd1cmUoY29uZikgew0KICAgICAgICBpZiAoIWNvbmYuaGFzT3duUHJvcGVydHkoJ3B5dGhvblZlcnNpb24nKSkgew0KICAgICAgICAgICAgY29uZi5weXRob25WZXJzaW9uID0gMjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoIWNvbmYuaGFzT3duUHJvcGVydHkoJ3N0cmljdEVycm9ycycpKSB7DQogICAgICAgICAgICBjb25mLnN0cmljdEVycm9ycyA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNvbmYucHl0aG9uVmVyc2lvbiAhPSAyICYmIGNvbmYucHl0aG9uVmVyc2lvbiAhPSAzKSB7DQogICAgICAgICAgICBhbGVydCgnQ29kZU1pcnJvcjogVW5rbm93biBQeXRob24gVmVyc2lvbiAiJyArDQogICAgICAgICAgICAgICAgICBjb25mLnB5dGhvblZlcnNpb24gKw0KICAgICAgICAgICAgICAgICAgJyIsIGRlZmF1bHRpbmcgdG8gUHl0aG9uIDIueC4nKTsNCiAgICAgICAgICAgIGNvbmYucHl0aG9uVmVyc2lvbiA9IDI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNvbmYucHl0aG9uVmVyc2lvbiA9PSAzKSB7DQogICAgICAgICAgICBweSA9IHB5MzsNCiAgICAgICAgICAgIHN0cmluZ1N0YXJ0ZXJzID0gL1tcJ1wicmJSQl0vOw0KICAgICAgICAgICAgc3RyaW5nVHlwZXMgPSAvW3JiXS87DQogICAgICAgICAgICBkb3VibGVEZWxpbWl0ZXJzLnB1c2goJ1xcLVxcPicpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgcHkgPSBweTI7DQogICAgICAgICAgICBzdHJpbmdTdGFydGVycyA9IC9bXCdcIlJVcnVdLzsNCiAgICAgICAgICAgIHN0cmluZ1R5cGVzID0gL1tydV0vOw0KICAgICAgICB9DQogICAgICAgIGNvbmZpZyA9IGNvbmY7DQogICAgICAgIGtleXdvcmRzID0gd29yZFJlZ2V4cChjb21tb25rZXl3b3Jkcy5jb25jYXQocHkua2V5d29yZHMpKTsNCiAgICAgICAgdHlwZXMgPSB3b3JkUmVnZXhwKGNvbW1vbnR5cGVzLmNvbmNhdChweS50eXBlcykpOw0KICAgICAgICBkb3VibGVEZWxpbWl0ZXJzID0gd29yZFJlZ2V4cChkb3VibGVEZWxpbWl0ZXJzKTsNCiAgICB9DQoNCiAgICB2YXIgdG9rZW5pemVQeXRob24gPSAoZnVuY3Rpb24oKSB7DQogICAgICAgIGZ1bmN0aW9uIG5vcm1hbChzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgICAgICB2YXIgc3RyaW5nRGVsaW0sIHRocmVlU3RyLCB0ZW1wLCB0eXBlLCB3b3JkLCBwb3NzaWJsZSA9IHt9Ow0KICAgICAgICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgZnVuY3Rpb24gZmlsdGVyUG9zc2libGUodG9rZW4sIHN0eWxlSWZQb3NzaWJsZSkgew0KICAgICAgICAgICAgICAgIGlmICghcG9zc2libGUuc3R5bGUgJiYgIXBvc3NpYmxlLmNvbnRlbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKHRva2VuKSA9PSBTVFJJTkdDT05URVhUKSB7DQogICAgICAgICAgICAgICAgICAgIHRva2VuID0ge2NvbnRlbnQ6IHNvdXJjZS5nZXQoKSwgc3R5bGU6IHRva2VufTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlLnN0eWxlIHx8IHN0eWxlSWZQb3NzaWJsZSkgew0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9IHN0eWxlSWZQb3NzaWJsZSA/IHN0eWxlSWZQb3NzaWJsZSA6IHBvc3NpYmxlLnN0eWxlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAocG9zc2libGUuY29udGVudCkgew0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5jb250ZW50ID0gcG9zc2libGUuY29udGVudCArIHRva2VuLmNvbnRlbnQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHBvc3NpYmxlID0ge307DQogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBIYW5kbGUgY29tbWVudHMNCiAgICAgICAgICAgIGlmIChjaCA9PSAnIycpIHsNCiAgICAgICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgICAgICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gJ3B5LWNvbW1lbnQnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSGFuZGxlIHNwZWNpYWwgY2hhcnMNCiAgICAgICAgICAgIGlmIChjaCA9PSAnXFwnKSB7DQogICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHdoaXRlc3BhY2UgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoISgvW1xzXHUwMGEwXS8udGVzdChzb3VyY2UubmV4dCgpKSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZXNwYWNlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aGl0ZXNwYWNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gJ3B5LXNwZWNpYWwnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSGFuZGxlIG9wZXJhdG9ycyBhbmQgZGVsaW1pdGVycw0KICAgICAgICAgICAgaWYgKHNpbmdsZVN0YXJ0ZXJzLmluZGV4T2YoY2gpICE9IC0xIHx8IChjaCA9PSAiLiIgJiYgIXNvdXJjZS5tYXRjaGVzKC9cZC8pKSkgew0KICAgICAgICAgICAgICAgIGlmIChkb3VibGVTdGFydGVycy5pbmRleE9mKHNvdXJjZS5wZWVrKCkpICE9IC0xKSB7DQogICAgICAgICAgICAgICAgICAgIHRlbXAgPSBjaCArIHNvdXJjZS5wZWVrKCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEl0IG11c3QgYmUgYSBkb3VibGUgZGVsaW1pdGVyIG9yIG9wZXJhdG9yIG9yIHRyaXBsZSBkZWxpbWl0ZXINCiAgICAgICAgICAgICAgICAgICAgaWYgKGRvdWJsZU9wZXJhdG9ycy50ZXN0KHRlbXApKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRDaGFyID0gc291cmNlLnBlZWsoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciAmJiB0cmlwbGVEZWxpbWl0ZXJzLnRlc3QodGVtcCArIG5leHRDaGFyKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERFTElNSVRFUkNMQVNTOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1BFUkFUT1JDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkb3VibGVEZWxpbWl0ZXJzLnRlc3QodGVtcCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gREVMSU1JVEVSQ0xBU1M7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLy8gSXQgbXVzdCBiZSBhIHNpbmdsZSBkZWxpbWl0ZXIgb3Igb3BlcmF0b3INCiAgICAgICAgICAgICAgICBpZiAoc2luZ2xlT3BlcmF0b3JzLmluZGV4T2YoY2gpICE9IC0xIHx8IGNoID09ICIuIikgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1BFUkFUT1JDTEFTUzsNCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNpbmdsZURlbGltaXRlcnMuaW5kZXhPZihjaCkgIT0gLTEpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09ICdAJyAmJiBzb3VyY2UubWF0Y2hlcygvXHcvKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tcd1xkX10vKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7c3R5bGU6J3B5LWRlY29yYXRvcicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZS5nZXQoKX07DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gREVMSU1JVEVSQ0xBU1M7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JDTEFTUzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBIYW5kbGUgbnVtYmVyIGxpdGVyYWxzDQogICAgICAgICAgICBpZiAoL1xkLy50ZXN0KGNoKSB8fCAoY2ggPT0gIi4iICYmIHNvdXJjZS5tYXRjaGVzKC9cZC8pKSkgew0KICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJzAnICYmICFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzb3VyY2UucGVlaygpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdvJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ08nOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1swLTddLyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclBvc3NpYmxlKExJVEVSQUxDTEFTUywgRVJST1JDTEFTUyk7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1gnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1swLTlBLUZhLWZdLyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclBvc3NpYmxlKExJVEVSQUxDTEFTUywgRVJST1JDTEFTUyk7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0InOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1swMV0vKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyUG9zc2libGUoTElURVJBTENMQVNTLCBFUlJPUkNMQVNTKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvXGQvKTsNCiAgICAgICAgICAgICAgICBpZiAoY2ggIT0gJy4nICYmIHNvdXJjZS5wZWVrKCkgPT0gJy4nKSB7DQogICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyBHcmFiIGFuIGV4cG9uZW50DQogICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5tYXRjaGVzKC9lL2kpKSB7DQogICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UucGVlaygpID09ICcrJyB8fCBzb3VyY2UucGVlaygpID09ICctJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLm1hdGNoZXMoL1xkLykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cZC8pOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclBvc3NpYmxlKEVSUk9SQ0xBU1MpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIEdyYWIgYSBjb21wbGV4IG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubWF0Y2hlcygvai9pKSkgew0KICAgICAgICAgICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJQb3NzaWJsZShMSVRFUkFMQ0xBU1MpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSGFuZGxlIHN0cmluZ3MNCiAgICAgICAgICAgIGlmIChzdHJpbmdTdGFydGVycy50ZXN0KGNoKSkgew0KICAgICAgICAgICAgICAgIHZhciBwZWVrID0gc291cmNlLnBlZWsoKTsNCiAgICAgICAgICAgICAgICB2YXIgc3RyaW5nVHlwZSA9IFNUUklOR0NMQVNTOw0KICAgICAgICAgICAgICAgIGlmICgoc3RyaW5nVHlwZXMudGVzdChjaCkpICYmIChwZWVrID09ICciJyB8fCBwZWVrID09ICInIikpIHsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjaC50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdUeXBlID0gQllURVNDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1R5cGUgPSBSQVdDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1R5cGUgPSBVTklDT0RFQ0xBU1M7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdEZWxpbSA9IGNoOw0KICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLnBlZWsoKSAhPSBzdHJpbmdEZWxpbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUoaW5TdHJpbmcoc3RyaW5nVHlwZSwgc3RyaW5nRGVsaW0pKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UucGVlaygpID09IHN0cmluZ0RlbGltKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlZVN0ciA9IHN0cmluZ0RlbGltICsgc3RyaW5nRGVsaW0gKyBzdHJpbmdEZWxpbTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShpblN0cmluZyhzdHJpbmdUeXBlLCB0aHJlZVN0cikpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gIiciIHx8IGNoID09ICciJykgew0KICAgICAgICAgICAgICAgICAgICBzdHJpbmdEZWxpbSA9IGNoOw0KICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLnBlZWsoKSAhPSBzdHJpbmdEZWxpbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUoaW5TdHJpbmcoc3RyaW5nVHlwZSwgc3RyaW5nRGVsaW0pKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UucGVlaygpID09IHN0cmluZ0RlbGltKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlZVN0ciA9IHN0cmluZ0RlbGltICsgc3RyaW5nRGVsaW0gKyBzdHJpbmdEZWxpbTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShpblN0cmluZyhzdHJpbmdUeXBlLCB0aHJlZVN0cikpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEhhbmRsZSBJZGVudGlmaWVyDQogICAgICAgICAgICBpZiAoaWRlbnRpZmllclN0YXJ0ZXJzLnRlc3QoY2gpKSB7DQogICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tcd1xkX10vKTsNCiAgICAgICAgICAgICAgICB3b3JkID0gc291cmNlLmdldCgpOw0KICAgICAgICAgICAgICAgIGlmICh3b3JkT3BlcmF0b3JzLnRlc3Qod29yZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IE9QRVJBVE9SQ0xBU1M7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXl3b3Jkcy50ZXN0KHdvcmQpKSB7DQogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAncHkta2V5d29yZCc7DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlcy50ZXN0KHdvcmQpKSB7DQogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAncHktdHlwZSc7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IElERU5USUZJRVJDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHNvdXJjZS5wZWVrKCkgPT0gJy4nKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5tYXRjaGVzKGlkZW50aWZpZXJTdGFydGVycykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW1x3XGRdLyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBFUlJPUkNMQVNTOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHdvcmQgPSB3b3JkICsgc291cmNlLmdldCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyUG9zc2libGUoe3N0eWxlOiB0eXBlLCBjb250ZW50OiB3b3JkfSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIERvbGxhciBzaWduIGFuZCBRdWVzdGlvbiBtYXJrIGFzIGVycm9ycy4gQWx3YXlzIQ0KICAgICAgICAgICAgaWYgKC9cJFw/Ly50ZXN0KGNoKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJQb3NzaWJsZShFUlJPUkNMQVNTKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmV0dXJuIGZpbHRlclBvc3NpYmxlKEVSUk9SQ0xBU1MpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gaW5TdHJpbmcoc3R5bGUsIHRlcm1pbmF0b3IpIHsNCiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgICAgICAgICAgdmFyIG1hdGNoZXMgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgZm91bmQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB3aGlsZSAoIWZvdW5kICYmICFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKSwgbmV3TWF0Y2hlcyA9IFtdOw0KICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGVzY2FwZWQgY2hhcmFjdGVycw0KICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1xcJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5wZWVrKCkgPT0gJ1xuJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSB0ZXJtaW5hdG9yLmNoYXJBdCgwKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHRlcm1pbmF0b3IpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hdGNoID0gbWF0Y2hlc1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaC5jaGFyQXQoMCkgPT0gY2gpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gubGVuZ3RoID09IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobm9ybWFsKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdNYXRjaGVzLnB1c2gobWF0Y2guc2xpY2UoMSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBtYXRjaGVzID0gbmV3TWF0Y2hlczsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN0YXJ0U3RhdGUpIHsNCiAgICAgICAgICAgIHJldHVybiB0b2tlbml6ZXIoc291cmNlLCBzdGFydFN0YXRlIHx8IG5vcm1hbCk7DQogICAgICAgIH07DQogICAgfSkoKTsNCg0KICAgIGZ1bmN0aW9uIHBhcnNlUHl0aG9uKHNvdXJjZSwgYmFzZWNvbHVtbikgew0KICAgICAgICBpZiAoIWtleXdvcmRzKSB7DQogICAgICAgICAgICBjb25maWd1cmUoe30pOw0KICAgICAgICB9DQogICAgICAgIGJhc2Vjb2x1bW4gPSBiYXNlY29sdW1uIHx8IDA7DQoNCiAgICAgICAgdmFyIHRva2VucyA9IHRva2VuaXplUHl0aG9uKHNvdXJjZSk7DQogICAgICAgIHZhciBsYXN0VG9rZW4gPSBudWxsOw0KICAgICAgICB2YXIgY29sdW1uID0gYmFzZWNvbHVtbjsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7cHJldjogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgZW5kT2ZTY29wZTogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TmV3U2NvcGU6IGZhbHNlLA0KICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogYmFzZWNvbHVtbiwNCiAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogTk9STUFMQ09OVEVYVA0KICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIHB1c2hDb250ZXh0KGxldmVsLCB0eXBlKSB7DQogICAgICAgICAgICB0eXBlID0gdHlwZSA/IHR5cGUgOiBOT1JNQUxDT05URVhUOw0KICAgICAgICAgICAgY29udGV4dCA9IHtwcmV2OiBjb250ZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICBlbmRPZlNjb3BlOiBmYWxzZSwNCiAgICAgICAgICAgICAgICAgICAgICAgc3RhcnROZXdTY29wZTogZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiBsZXZlbCwNCiAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogbnVsbCwNCiAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZQ0KICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcG9wQ29udGV4dChyZW1vdmUpIHsNCiAgICAgICAgICAgIHJlbW92ZSA9IHJlbW92ZSA/IHJlbW92ZSA6IGZhbHNlOw0KICAgICAgICAgICAgaWYgKGNvbnRleHQucHJldikgew0KICAgICAgICAgICAgICAgIGlmIChyZW1vdmUpIHsNCiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IGNvbnRleHQucHJldjsNCiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5uZXh0ID0gbnVsbDsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByZXYubmV4dCA9IGNvbnRleHQ7DQogICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnByZXY7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gaW5kZW50UHl0aG9uKGNvbnRleHQpIHsNCiAgICAgICAgICAgIHZhciB0ZW1wOw0KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG5leHRDaGFycywgY3VycmVudExldmVsLCBkaXJlY3Rpb24pIHsNCiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSBudWxsIHx8IGRpcmVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhcnMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjb250ZXh0Lm5leHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dC5uZXh0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmxldmVsOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRMZXZlbCA9PSBjb250ZXh0LmxldmVsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5uZXh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubmV4dC5sZXZlbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQubGV2ZWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICB0ZW1wID0gY29udGV4dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wLnByZXYgJiYgdGVtcC5wcmV2LmxldmVsID4gY3VycmVudExldmVsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAucHJldjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wLmxldmVsOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TGV2ZWwgPiBjb250ZXh0LmxldmVsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5sZXZlbDsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnByZXYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBjb250ZXh0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXAucHJldiAmJiB0ZW1wLnByZXYubGV2ZWwgPj0gY3VycmVudExldmVsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAucHJldjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLnByZXYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcC5wcmV2LmxldmVsOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcC5sZXZlbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dC5sZXZlbDsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgaXRlciA9IHsNCiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHRva2Vucy5uZXh0KCk7DQogICAgICAgICAgICAgICAgdmFyIHR5cGUgPSB0b2tlbi5zdHlsZTsNCiAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IHRva2VuLmNvbnRlbnQ7DQoNCiAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4uY29udGVudCA9PSAnZGVmJyAmJiB0eXBlID09IElERU5USUZJRVJDTEFTUykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSAncHktZnVuYyc7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5jb250ZW50ID09ICdcbicpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wQ3R4ID0gY29udGV4dDsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBhIGRpZmZlcmVudCBzY29wZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJ3doaXRlc3BhY2UnICYmIGNvbnRleHQudHlwZSA9PSBOT1JNQUxDT05URVhUKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlLmxlbmd0aCA8IGNvbnRleHQubGV2ZWwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRva2VuLnZhbHVlLmxlbmd0aCA8IGNvbnRleHQubGV2ZWwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcENvbnRleHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi52YWx1ZS5sZW5ndGggIT0gY29udGV4dC5sZXZlbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRlbXBDdHg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLnN0cmljdEVycm9ycykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlID0gRVJST1JDTEFTUzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubmV4dCA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubGV2ZWwgIT09IGJhc2Vjb2x1bW4gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC50eXBlID09IE5PUk1BTENPTlRFWFQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYmFzZWNvbHVtbiAhPT0gY29udGV4dC5sZXZlbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BDb250ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQubGV2ZWwgIT09IGJhc2Vjb2x1bW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IHRlbXBDdHg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcuc3RyaWN0RXJyb3JzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9IEVSUk9SQ0xBU1M7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgU2NvcGUgQ2hhbmdlcw0KICAgICAgICAgICAgICAgIHN3aXRjaCh0eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgU1RSSU5HQ0xBU1M6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgQllURVNDTEFTUzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBSQVdDTEFTUzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBVTklDT0RFQ0xBU1M6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC50eXBlICE9PSBTVFJJTkdDT05URVhUKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaENvbnRleHQoY29udGV4dC5sZXZlbCArIDEsIFNUUklOR0NPTlRFWFQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC50eXBlID09PSBTVFJJTkdDT05URVhUKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wQ29udGV4dCh0cnVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBzd2l0Y2goY29udGVudCkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICcuJzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQCc6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBkZWxpbWl0ZXJzIGRvbid0IGFwcGVhciBieSB0aGVtc2VsdmVzDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPT0gdG9rZW4udmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9IEVSUk9SQ0xBU1M7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOic6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBDb2xvbnMgb25seSBkZWxpbWl0IHNjb3BlIGluc2lkZSBhIG5vcm1hbCBzY29wZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gTk9STUFMQ09OVEVYVCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnROZXdTY29wZSA9IGNvbnRleHQubGV2ZWwraW5kZW50VW5pdDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICcoJzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnWyc6DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3snOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2Ugc3RhcnQgYSBzZXF1ZW5jZSBzY29wZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcHVzaENvbnRleHQoY29sdW1uICsgY29udGVudC5sZW5ndGgsICdzZXF1ZW5jZScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJyknOg0KICAgICAgICAgICAgICAgICAgICBjYXNlICddJzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnfSc6DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBlbmQgYSBzZXF1ZW5jZSBzY29wZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcG9wQ29udGV4dCh0cnVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdwYXNzJzoNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmV0dXJuJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGVuZCBhIG5vcm1hbCBzY29wZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gTk9STUFMQ09OVEVYVCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZW5kT2ZTY29wZSA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnXG4nOg0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgb3VyIGNvbHVtbg0KICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gYmFzZWNvbHVtbjsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2UgYW55IHNjb3BlIGNoYW5nZXMNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LmVuZE9mU2NvcGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVuZE9mU2NvcGUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BDb250ZXh0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQuc3RhcnROZXdTY29wZSAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcCA9IGNvbnRleHQuc3RhcnROZXdTY29wZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnN0YXJ0TmV3U2NvcGUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoQ29udGV4dCh0ZW1wLCBOT1JNQUxDT05URVhUKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5ld2xpbmVzIHJlcXVpcmUgYW4gaW5kZW50YXRpb24gZnVuY3Rpb24gd3JhcHBlZCBpbiBhIGNsb3N1cmUgZm9yIHByb3BlciBjb250ZXh0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uaW5kZW50YXRpb24gPSBpbmRlbnRQeXRob24oY29udGV4dCk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgY29sdW1uIGZvciBjZXJ0YWluIHNjb3Blcy4NCiAgICAgICAgICAgICAgICBpZiAoY29udGVudCAhPSAnXG4nKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbHVtbiArPSB0b2tlbi52YWx1ZS5sZW5ndGg7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgbGFzdFRva2VuID0gdG9rZW47DQogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgY29weTogZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgdmFyIF9jb250ZXh0ID0gY29udGV4dCwgX3Rva2VuU3RhdGUgPSB0b2tlbnMuc3RhdGU7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgew0KICAgICAgICAgICAgICAgICAgICB0b2tlbnMgPSB0b2tlbml6ZVB5dGhvbihzb3VyY2UsIF90b2tlblN0YXRlKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9IF9jb250ZXh0Ow0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICByZXR1cm4gaXRlcjsNCiAgICB9DQoNCiAgICByZXR1cm4ge21ha2U6IHBhcnNlUHl0aG9uLA0KICAgICAgICAgICAgZWxlY3RyaWNDaGFyczogIiIsDQogICAgICAgICAgICBjb25maWd1cmU6IGNvbmZpZ3VyZX07DQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/python/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDA5LCBUaW1vdGh5IEZhcnJlbGwNCkFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNClRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgZm9yIHVzZSBpbiBjb25uZWN0aW9uIHdpdGggdGhlDQpDb2RlTWlycm9yIHN1aXRlIG9mIG1vZHVsZXMgYW5kIHV0aWxpdGllcywgaG9zdGVkIGFuZCBtYWludGFpbmVkDQphdCBodHRwOi8vY29kZW1pcnJvci5uZXQvLg0KDQpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIG9mIHRoaXMgc29mdHdhcmUgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsDQp3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlDQpmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KDQoqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUNCiAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZQ0KICBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCg0KKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQogIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCiAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyDQogIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQoNClRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCiJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQpMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUw0KRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUNCkNPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwNCklOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsDQpCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7DQpMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSDQpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElODQpBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUNClBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/css/js-regexcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCmh0bWwgew0KICBjdXJzb3I6IHRleHQ7DQp9DQouZWRpdGJveCB7DQogIG1hcmdpbjogLjRlbTsNCiAgcGFkZGluZzogMDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMHB0Ow0KICBjb2xvcjogYmxhY2s7DQp9DQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpodG1sLCBib2R5IHsNCmJhY2tncm91bmQ6ICNjY2NjY2MgIWltcG9ydGFudDsNCn0NCg0KLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCi8qIEluc2lkZSBjaGFyYWN0ZXIgY2xhc3NlcyAqLw0Kc3Bhbi5yZWdleC1jbGFzcy1zcGVjaWFsLWVzY2FwZSB7DQogICAgY29sb3I6IENvcmFsOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1iZWdpbiwgc3Bhbi5yZWdleC1jbGFzcy1lbmQgew0KICAgIGNvbG9yOiBZZWxsb3dHcmVlbjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtbmVnYXRvciB7DQogICAgY29sb3I6IFdoZWF0Ow0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1yYW5nZS1oeXBoZW4gew0KICAgY29sb3I6IFR1cnF1b2lzZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZmluYWwtaHlwaGVuIHsNCiAgICBjb2xvcjogVmlvbGV0Ow0KfQ0KDQovKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8qLw0KLyogSW5zaWRlIGNoYXJhY3RlciBjbGFzc2VzIChzdWZmaXhhYmxlIGJ5IC1iZWdpbi1yYW5nZSBvciAtZW5kLXJhbmdlIGlmIGJlZ2lubmluZyBvciBlbmRpbmcgYSByYW5nZSkgKi8NCnNwYW4ucmVnZXgtdW5pY29kZS1jbGFzcy1pbnNpZGUgew0KICAgIGNvbG9yOiBUb21hdG87DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuIHsNCiAgICBjb2xvcjogVGVhbDsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtY2hhcmFjdGVyIHsNCiAgICBjb2xvcjogVGFuOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1vY3RhbCB7DQogICAgY29sb3I6IFN0ZWVsQmx1ZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtaGV4IHsNCiAgICBjb2xvcjogU3ByaW5nR3JlZW47DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLXVuaWNvZGUtZXNjYXBlIHsNCiAgICBjb2xvcjogU2xhdGVHcmF5Ow0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1hc2NpaS1jb250cm9sIHsNCiAgICBjb2xvcjogU2xhdGVCbHVlOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1leHRyYS1lc2NhcGVkIHsNCiAgICBjb2xvcjogU2t5Qmx1ZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZXNjYXBlZC1zcGVjaWFsIHsNCiAgICBjb2xvcjogQ29ybmZsb3dlckJsdWU7DQp9DQoNCi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovDQpzcGFuLmNsYXNzLXNwZWNpYWwtZXNjYXBlLWJlZ2luLXJhbmdlLCBzcGFuLmNsYXNzLXNwZWNpYWwtZXNjYXBlLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IEJyb3duOw0KfQ0Kc3Bhbi5yZWdleC11bmljb2RlLWNsYXNzLWluc2lkZS1iZWdpbi1yYW5nZSwgc3Bhbi5yZWdleC11bmljb2RlLWNsYXNzLWluc2lkZS1lbmQtcmFuZ2Ugew0KICAgIGNvbG9yOiBTaWx2ZXI7DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNlYUdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1jaGFyYWN0ZXItYmVnaW4tcmFuZ2UsIHNwYW4ucmVnZXgtY2xhc3MtY2hhcmFjdGVyLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNhbmR5QnJvd247DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLW9jdGFsLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLW9jdGFsLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNhbG1vbjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtaGV4LWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWhleC1lbmQtcmFuZ2Ugew0KICAgIGNvbG9yOiBTYWRkbGVCcm93bjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtdW5pY29kZS1lc2NhcGUtYmVnaW4tcmFuZ2UsIHNwYW4ucmVnZXgtY2xhc3MtdW5pY29kZS1lc2NhcGUtZW5kLXJhbmdlIHsNCiAgICBjb2xvcjogUm95YWxCbHVlOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1hc2NpaS1jb250cm9sLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWFzY2lpLWNvbnRyb2wtZW5kLXJhbmdlIHsNCiAgICBjb2xvcjogUm9zeUJyb3duOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1leHRyYS1lc2NhcGVkLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWV4dHJhLWVzY2FwZWQtZW5kLXJhbmdlIHsNCiAgICBjb2xvcjogT3JhbmdlOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1lc2NhcGVkLXNwZWNpYWwtYmVnaW4tcmFuZ2UsIHNwYW4ucmVnZXgtY2xhc3MtZXNjYXBlZC1zcGVjaWFsLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IERhcmtLaGFraTsNCn0NCg0KDQovKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8qLw0KLyogT3V0c2lkZSBjaGFyYWN0ZXIgY2xhc3NlcyAqLw0Kc3Bhbi5yZWdleC1zcGVjaWFsLWVzY2FwZSB7DQogICAgY29sb3I6IENob2NvbGF0ZTsNCn0NCnNwYW4ucmVnZXgtZXNjYXBlZC1zcGVjaWFsIHsNCiAgICBjb2xvcjogT3JhbmdlOw0KfQ0Kc3Bhbi5yZWdleC1hbHRlcm5hdG9yIHsNCiAgICBjb2xvcjogZGFya3Bpbms7DQp9DQpzcGFuLnJlZ2V4LXVuaWNvZGUtY2xhc3Mtb3V0c2lkZSB7DQogICAgY29sb3I6IEdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1vY3RhbCB7DQogICAgY29sb3I6IE1lZGl1bVZpb2xldFJlZDsNCn0NCnNwYW4ucmVnZXgtYXNjaWkgew0KICAgIGNvbG9yOiBNZWRpdW1UdXJxdW9pc2U7DQp9DQpzcGFuLnJlZ2V4LWhleCB7DQogICAgY29sb3I6IE1lZGl1bVNwcmluZ0dyZWVuOw0KfQ0Kc3Bhbi5yZWdleC11bmljb2RlLWVzY2FwZSB7DQogICAgY29sb3I6cGluazsNCn0NCnNwYW4ucmVnZXgtYXNjaWktY29udHJvbCB7DQogICAgY29sb3I6IE1lZGl1bVNsYXRlQmx1ZTsNCn0NCnNwYW4ucmVnZXgtZXh0cmEtZXNjYXBlZCB7DQogICAgY29sb3I6IE1lZGl1bVNlYUdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1xdWFudGlmaWVyLWVzY2FwZSB7DQogICAgY29sb3I6IEF6dXJlOw0KfQ0Kc3Bhbi5yZWdleC1xdWFudGlmaWVycyB7DQogICAgY29sb3I6IE1lZGl1bVB1cnBsZTsNCn0NCnNwYW4ucmVnZXgtcmVwZXRpdGlvbiB7DQogICAgY29sb3I6IE1lZGl1bU9yY2hpZDsNCn0NCnNwYW4ucmVnZXgtbGl0ZXJhbC1iZWdpbiwgc3Bhbi5yZWdleC1saXRlcmFsLWVuZCB7DQogICAgY29sb3I6IE1lZGl1bUJsdWU7DQp9DQpzcGFuLnJlZ2V4LWNoYXJhY3RlciB7DQogICAgY29sb3I6IE5hdnk7DQp9DQoNCi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovDQovKiBMaXRlcmFscy9TdXJyb3VuZGluZyBjaGFyYWN0ZXJzICovDQpzcGFuLnJlZ2V4LWZsYWdzIHsNCiAgICBjb2xvcjogR3JlZW47DQp9DQoNCi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovDQovKiBPcHRpb25hbCBvdXRzaWRlIGNoYXJhY3RlciBjbGFzcyBmZWF0dXJlcyovDQpzcGFuLnJlZ2V4LWVtcHR5LWNsYXNzIHsNCiAgICBjb2xvcjogTGltZTsNCn0NCnNwYW4ucmVnZXgtbmFtZWQtYmFja3JlZmVyZW5jZSB7DQogICAgY29sb3I6IExpZ2h0U2xhdGVHcmF5Ow0KfQ0Kc3Bhbi5yZWdleC1mcmVlLXNwYWNpbmctbW9kZSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogTGlnaHRTZWFHcmVlbjsNCn0NCnNwYW4ucmVnZXgtbW9kZS1tb2RpZmllciB7DQogICAgY29sb3I6IExpZ2h0U2FsbW9uOw0KfQ0Kc3Bhbi5yZWdleC1jb21tZW50LXBhdHRlcm4gew0KICAgIGNvbG9yOiBMaWdodEdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1jYXB0dXJpbmctZ3JvdXAsIHNwYW4ucmVnZXgtZW5kaW5nLWNhcHR1cmluZy1ncm91cCB7DQogICAgY29sb3I6IExpZ2h0R3JheTsNCn0NCnNwYW4ucmVnZXgtbmFtZWQtY2FwdHVyaW5nLWdyb3VwLCBzcGFuLnJlZ2V4LWVuZGluZy1uYW1lZC1jYXB0dXJpbmctZ3JvdXAgew0KICAgIGNvbG9yOiBMaWdodENvcmFsOw0KfQ0Kc3Bhbi5yZWdleC1ncm91cCwgc3Bhbi5yZWdleC1lbmRpbmctZ3JvdXAgew0KICAgIGNvbG9yOiBMYXduR3JlZW47DQp9DQoNCg0Kc3Bhbi5yZWdleC1jYXB0dXJpbmctZ3JvdXAxLTEsIHNwYW4ucmVnZXgtZW5kaW5nLWNhcHR1cmluZy1ncm91cDEtMSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KfQ0Kc3Bhbi5yZWdleC1jYXB0dXJpbmctZ3JvdXAxLTIsIHNwYW4ucmVnZXgtZW5kaW5nLWNhcHR1cmluZy1ncm91cDEtMiB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOw0KfQ0Kc3Bhbi5yZWdleC1jYXB0dXJpbmctZ3JvdXAyLTEsIHNwYW4ucmVnZXgtZW5kaW5nLWNhcHR1cmluZy1ncm91cDItMSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0KfQ0Kc3Bhbi5yZWdleC1jYXB0dXJpbmctZ3JvdXAyLTIsIHNwYW4ucmVnZXgtZW5kaW5nLWNhcHR1cmluZy1ncm91cDItMiB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47DQp9DQoNCi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovDQovKiBDbG9zaW5nIHBhcmVudGhlc2VzIHdpdGhvdXQgb3BlbmluZywgZXRjLiAqLw0Kc3Bhbi5yZWdleC1iYWQtY2hhcmFjdGVyLCBzcGFuLnJlZ2V4LWJhZC1zZXF1ZW5jZSB7DQogICAgY29sb3I6IHJlZDsNCn0NCg0KLyogVXNlZCBpZiAidW5pZm9ybSIgaW5uZXJfZ3JvdXBfbW9kZSBpcyB1c2VkICovDQpzcGFuLnJlZ2V4LWdyb3VwLTEtMSB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsNCn0NCnNwYW4ucmVnZXgtZ3JvdXAtMS0yIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsNCn0NCnNwYW4ucmVnZXgtZ3JvdXAtMi0xIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rOw0KfQ0Kc3Bhbi5yZWdleC1ncm91cC0yLTIgew0KICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/css/regexcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCmh0bWwgew0KICBjdXJzb3I6IHRleHQ7DQp9DQouZWRpdGJveCB7DQogIG1hcmdpbjogLjRlbTsNCiAgcGFkZGluZzogMDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMHB0Ow0KICBjb2xvcjogYmxhY2s7DQp9DQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpodG1sLCBib2R5IHsNCmJhY2tncm91bmQ6ICM1NTU1NTUgIWltcG9ydGFudDsNCn0NCg0KLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCi8qIEluc2lkZSBjaGFyYWN0ZXIgY2xhc3NlcyAqLw0Kc3Bhbi5yZWdleC1jbGFzcy1zcGVjaWFsLWVzY2FwZSB7DQogICAgY29sb3I6IENvcmFsOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1iZWdpbiwgc3Bhbi5yZWdleC1jbGFzcy1lbmQgew0KICAgIGNvbG9yOiBZZWxsb3dHcmVlbjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtbmVnYXRvciB7DQogICAgY29sb3I6IFdoZWF0Ow0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1yYW5nZS1oeXBoZW4gew0KICAgY29sb3I6IFR1cnF1b2lzZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZmluYWwtaHlwaGVuIHsNCiAgICBjb2xvcjogVmlvbGV0Ow0KfQ0KDQovKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8qLw0KLyogSW5zaWRlIGNoYXJhY3RlciBjbGFzc2VzIChzdWZmaXhhYmxlIGJ5IC1iZWdpbi1yYW5nZSBvciAtZW5kLXJhbmdlIGlmIGJlZ2lubmluZyBvciBlbmRpbmcgYSByYW5nZSkgKi8NCnNwYW4ucmVnZXgtdW5pY29kZS1jbGFzcy1pbnNpZGUgew0KICAgIGNvbG9yOiBUb21hdG87DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuIHsNCiAgICBjb2xvcjogVGVhbDsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtY2hhcmFjdGVyIHsNCiAgICBjb2xvcjogVGFuOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1vY3RhbCB7DQogICAgY29sb3I6IFN0ZWVsQmx1ZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtaGV4IHsNCiAgICBjb2xvcjogU3ByaW5nR3JlZW47DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLXVuaWNvZGUtZXNjYXBlIHsNCiAgICBjb2xvcjogTGlnaHRHcmF5Ow0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1hc2NpaS1jb250cm9sIHsNCiAgICBjb2xvcjogU2xhdGVCbHVlOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1leHRyYS1lc2NhcGVkIHsNCiAgICBjb2xvcjogU2t5Qmx1ZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZXNjYXBlZC1zcGVjaWFsIHsNCiAgICBjb2xvcjogQ29ybmZsb3dlckJsdWU7DQp9DQoNCi8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyovDQpzcGFuLmNsYXNzLXNwZWNpYWwtZXNjYXBlLWJlZ2luLXJhbmdlLCBzcGFuLmNsYXNzLXNwZWNpYWwtZXNjYXBlLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IEJyb3duOw0KfQ0Kc3Bhbi5yZWdleC11bmljb2RlLWNsYXNzLWluc2lkZS1iZWdpbi1yYW5nZSwgc3Bhbi5yZWdleC11bmljb2RlLWNsYXNzLWluc2lkZS1lbmQtcmFuZ2Ugew0KICAgIGNvbG9yOiBTaWx2ZXI7DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWluaXRpYWwtaHlwaGVuLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNlYUdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1jbGFzcy1jaGFyYWN0ZXItYmVnaW4tcmFuZ2UsIHNwYW4ucmVnZXgtY2xhc3MtY2hhcmFjdGVyLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNhbmR5QnJvd247DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLW9jdGFsLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLW9jdGFsLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFNhbG1vbjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtaGV4LWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWhleC1lbmQtcmFuZ2Ugew0KICAgIGNvbG9yOiBUYW47DQp9DQpzcGFuLnJlZ2V4LWNsYXNzLXVuaWNvZGUtZXNjYXBlLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLXVuaWNvZGUtZXNjYXBlLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IExpZ2h0Qmx1ZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtYXNjaWktY29udHJvbC1iZWdpbi1yYW5nZSwgc3Bhbi5yZWdleC1jbGFzcy1hc2NpaS1jb250cm9sLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IFJvc3lCcm93bjsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZXh0cmEtZXNjYXBlZC1iZWdpbi1yYW5nZSwgc3Bhbi5yZWdleC1jbGFzcy1leHRyYS1lc2NhcGVkLWVuZC1yYW5nZSB7DQogICAgY29sb3I6IE9yYW5nZTsNCn0NCnNwYW4ucmVnZXgtY2xhc3MtZXNjYXBlZC1zcGVjaWFsLWJlZ2luLXJhbmdlLCBzcGFuLnJlZ2V4LWNsYXNzLWVzY2FwZWQtc3BlY2lhbC1lbmQtcmFuZ2Ugew0KICAgIGNvbG9yOiBEYXJrS2hha2k7DQp9DQoNCg0KLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCi8qIE91dHNpZGUgY2hhcmFjdGVyIGNsYXNzZXMgKi8NCnNwYW4ucmVnZXgtc3BlY2lhbC1lc2NhcGUgew0KICAgIGNvbG9yOiBDaG9jb2xhdGU7DQp9DQpzcGFuLnJlZ2V4LWVzY2FwZWQtc3BlY2lhbCB7DQogICAgY29sb3I6IE9yYW5nZTsNCn0NCnNwYW4ucmVnZXgtYWx0ZXJuYXRvciB7DQogICAgY29sb3I6IEJ1cmx5V29vZDsNCn0NCnNwYW4ucmVnZXgtdW5pY29kZS1jbGFzcy1vdXRzaWRlIHsNCiAgICBjb2xvcjogR29sZDsNCn0NCnNwYW4ucmVnZXgtb2N0YWwgew0KICAgIGNvbG9yOiBNZWRpdW1WaW9sZXRSZWQ7DQp9DQpzcGFuLnJlZ2V4LWFzY2lpIHsNCiAgICBjb2xvcjogTWVkaXVtVHVycXVvaXNlOw0KfQ0Kc3Bhbi5yZWdleC1oZXggew0KICAgIGNvbG9yOiBNZWRpdW1TcHJpbmdHcmVlbjsNCn0NCnNwYW4ucmVnZXgtdW5pY29kZS1lc2NhcGUgew0KICAgIGNvbG9yOnBpbms7DQp9DQpzcGFuLnJlZ2V4LWFzY2lpLWNvbnRyb2wgew0KICAgIGNvbG9yOiBNZWRpdW1TbGF0ZUJsdWU7DQp9DQpzcGFuLnJlZ2V4LWV4dHJhLWVzY2FwZWQgew0KICAgIGNvbG9yOiBNZWRpdW1TZWFHcmVlbjsNCn0NCnNwYW4ucmVnZXgtcXVhbnRpZmllci1lc2NhcGUgew0KICAgIGNvbG9yOiBBenVyZTsNCn0NCnNwYW4ucmVnZXgtcXVhbnRpZmllcnMgew0KICAgIGNvbG9yOiBNZWRpdW1QdXJwbGU7DQp9DQpzcGFuLnJlZ2V4LXJlcGV0aXRpb24gew0KICAgIGNvbG9yOiBNZWRpdW1PcmNoaWQ7DQp9DQpzcGFuLnJlZ2V4LWxpdGVyYWwtYmVnaW4sIHNwYW4ucmVnZXgtbGl0ZXJhbC1lbmQgew0KICAgIGNvbG9yOiBNZWRpdW1CbHVlOw0KfQ0Kc3Bhbi5yZWdleC1jaGFyYWN0ZXIgew0KICAgIGNvbG9yOiAjRkZGRkFBOw0KfQ0KDQovKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8qLw0KLyogTGl0ZXJhbHMvU3Vycm91bmRpbmcgY2hhcmFjdGVycyAqLw0Kc3Bhbi5yZWdleC1mbGFncyB7DQogICAgY29sb3I6IExpbWVHcmVlbjsNCn0NCg0KLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCi8qIE9wdGlvbmFsIG91dHNpZGUgY2hhcmFjdGVyIGNsYXNzIGZlYXR1cmVzKi8NCnNwYW4ucmVnZXgtZW1wdHktY2xhc3Mgew0KICAgIGNvbG9yOiBMaW1lOw0KfQ0Kc3Bhbi5yZWdleC1uYW1lZC1iYWNrcmVmZXJlbmNlIHsNCiAgICBjb2xvcjogTGlnaHRTbGF0ZUdyYXk7DQp9DQpzcGFuLnJlZ2V4LWZyZWUtc3BhY2luZy1tb2RlIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBMaWdodFNlYUdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1tb2RlLW1vZGlmaWVyIHsNCiAgICBjb2xvcjogTGlnaHRTYWxtb247DQp9DQpzcGFuLnJlZ2V4LWNvbW1lbnQtcGF0dGVybiB7DQogICAgY29sb3I6IExpZ2h0R3JlZW47DQp9DQpzcGFuLnJlZ2V4LWNhcHR1cmluZy1ncm91cCwgc3Bhbi5yZWdleC1lbmRpbmctY2FwdHVyaW5nLWdyb3VwIHsNCiAgICBjb2xvcjogTGlnaHRHcmF5Ow0KfQ0Kc3Bhbi5yZWdleC1uYW1lZC1jYXB0dXJpbmctZ3JvdXAsIHNwYW4ucmVnZXgtZW5kaW5nLW5hbWVkLWNhcHR1cmluZy1ncm91cCB7DQogICAgY29sb3I6IExpZ2h0Q29yYWw7DQp9DQpzcGFuLnJlZ2V4LWdyb3VwLCBzcGFuLnJlZ2V4LWVuZGluZy1ncm91cCB7DQogICAgY29sb3I6IExhd25HcmVlbjsNCn0NCg0KDQpzcGFuLnJlZ2V4LWNhcHR1cmluZy1ncm91cDEtMSwgc3Bhbi5yZWdleC1lbmRpbmctY2FwdHVyaW5nLWdyb3VwMS0xIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7DQp9DQpzcGFuLnJlZ2V4LWNhcHR1cmluZy1ncm91cDEtMiwgc3Bhbi5yZWdleC1lbmRpbmctY2FwdHVyaW5nLWdyb3VwMS0yIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQp9DQpzcGFuLnJlZ2V4LWNhcHR1cmluZy1ncm91cDItMSwgc3Bhbi5yZWdleC1lbmRpbmctY2FwdHVyaW5nLWdyb3VwMi0xIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7DQp9DQpzcGFuLnJlZ2V4LWNhcHR1cmluZy1ncm91cDItMiwgc3Bhbi5yZWdleC1lbmRpbmctY2FwdHVyaW5nLWdyb3VwMi0yIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsNCn0NCg0KLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vKi8NCi8qIENsb3NpbmcgcGFyZW50aGVzZXMgd2l0aG91dCBvcGVuaW5nLCBldGMuICovDQpzcGFuLnJlZ2V4LWJhZC1jaGFyYWN0ZXIsIHNwYW4ucmVnZXgtYmFkLXNlcXVlbmNlIHsNCiAgICBjb2xvcjogcmVkOw0KfQ0KDQovKiBVc2VkIGlmICJ1bmlmb3JtIiBpbm5lcl9ncm91cF9tb2RlIGlzIHVzZWQgKi8NCnNwYW4ucmVnZXgtZ3JvdXAtMS0xIHsNCiAgICBjb2xvcjogbGlnaHRibHVlOw0KfQ0Kc3Bhbi5yZWdleC1ncm91cC0xLTIgew0KICAgIGNvbG9yOiBsaWdodGdyZWVuOw0KfQ0Kc3Bhbi5yZWdleC1ncm91cC0yLTEgew0KICAgIGNvbG9yOiBwaW5rOw0KfQ0Kc3Bhbi5yZWdleC1ncm91cC0yLTIgew0KICAgIGNvbG9yOiB5ZWxsb3c7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPkNvZGVNaXJyb3IgUmVnZXggSGlnaGxpZ2h0aW5nPC90aXRsZT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2NvZGVtaXJyb3IuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoJ3JlZ2V4cCcsIHsNCiAgICBub1NjcmlwdENhY2hpbmc6IHRydWUsDQogICAgLy8gY29udGludW91c1NjYW5uaW5nOiB0cnVlLCAgLy8gTm9ybWFsbHkgRGVidWdnaW5nIG9ubHksIGJ1dCB1c2VmdWwgd2l0aCByZWdleA0KICAgIHBhcnNlckNvbmZpZzogew0KICAgICAgICAvLyBmbGFnczogJ3gnLA0KICAgICAgICAvL2xpdGVyYWw6IHRydWUsDQogICAgICAgIGZsYXZvcjogJ2FsbCcsDQogICAgICAgIHJlZ2V4X21vZGVfbW9kaWZpZXI6IHRydWUsDQogICAgICAgIHJlZ2V4X21heF9sZXZlbHM6MiwNCiAgICAgICAgcmVnZXhfbWF4X2FsdGVybmF0aW5nOjIsDQogICAgICAgIHJlZ2V4X3VuaWNvZGVfbW9kZTogJ3N0b3JlJywNCiAgICAgICAgcmVnZXhfaW5uZXJfZ3JvdXBfbW9kZTogJ3VuaWZvcm0nDQogICAgfSwNCiAgICBwYXJzZXJmaWxlOiBbIi4uL2NvbnRyaWIvcmVnZXgvanMvcGFyc2VyZWdleC5qcyIsICIuLi9jb250cmliL3JlZ2V4L2pzL3BhcnNlcmVnZXgtdW5pY29kZS5qcyJdLA0KICAgIHN0eWxlc2hlZXQ6IFsiY3NzL3JlZ2V4Y29sb3JzLmNzcyJdLA0KICAgIHBhdGg6ICcuLi8uLi9qcy8nLA0KICAgIGhlaWdodDogJ2R5bmFtaWMnLA0KICAgIG1pbkhlaWdodDogMjAsDQoNCiAgICAvLyBEZW1vbnN0cmF0ZXMgVW5pY29kZSB0b29sdGlwIGZlYXR1cmVzDQogIC8qKi8NCiAgICBhY3RpdmVUb2tlbnMgOiAoZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgY2hhckxpbWl0ID0gNTAwOw0KICAgICAgICB2YXIgbGFzdEVxdWl2YWxlbnQsIHJhbmdlQmVnYW4sIGxhc3RSYW5nZUh5cGhlbjsNCiAgICAgICAgDQogICAgICAgIGZ1bmN0aW9uIF9idWlsZFRpdGxlIChiZWdpbkNoYXIsIGVuZENoYXIpIHsNCiAgICAgICAgICAgIHZhciBiZWdpbkNvZGUgPSBiZWdpbkNoYXIuY2hhckNvZGVBdCgwKSwgZW5kQ29kZSA9IGVuZENoYXIuY2hhckNvZGVBdCgwKTsNCiAgICAgICAgICAgIHZhciB0aXRsZSA9ICcnOw0KICAgICAgICAgICAgaWYgKGVuZENvZGUgLSBiZWdpbkNvZGUgPD0gY2hhckxpbWl0KSB7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luQ29kZTsgaSA8PSBlbmRDb2RlOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGl0bGUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdGl0bGU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIHJldHVybiBmdW5jdGlvbiAoc3Bhbk5vZGUsIHRva2VuLCBlZGl0b3IpIHsNCiAgICAgICAgICAgIHZhciBjb250ZW50ID0gdG9rZW4uY29udGVudDsNCiAgICAgICAgICAgIGlmIChsYXN0RXF1aXZhbGVudCAmJiB0b2tlbi5zdHlsZSA9PT0gJ3JlZ2V4LWNsYXNzLXJhbmdlLWh5cGhlbicpIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBsYXN0UmFuZ2VIeXBoZW4gPSBzcGFuTm9kZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlQmVnYW4pIHsNCiAgICAgICAgICAgICAgICB2YXIgYmVnaW5DaGFyID0gbGFzdEVxdWl2YWxlbnQ7DQogICAgICAgICAgICAgICAgdmFyIGVuZENoYXIgPSAodG9rZW4uZXF1aXZhbGVudCB8fCBjb250ZW50KTsNCiAgICAgICAgICAgICAgICBsYXN0UmFuZ2VIeXBoZW4udGl0bGUgPSBfYnVpbGRUaXRsZShiZWdpbkNoYXIsIGVuZENoYXIpOw0KICAgICAgICAgICAgICAgIHJhbmdlQmVnYW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBsYXN0RXF1aXZhbGVudCA9IG51bGw7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmIChjb250ZW50ID09PSAnXScpIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gZmFsc2U7DQogICAgICAgICAgICAgICAgLy8gRml4OiAncmVnZXgtdW5pY29kZS1jbGFzcy1pbnNpZGUnIG5vdCBzdXBwb3J0ZWQgYW5kIHNob3VsZCBub3QgYmUgc2luY2UgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSBhcyBhIHN0YXJ0aW5nIHJhbmdlPw0KICAgICAgICAgICAgICAgIGxhc3RFcXVpdmFsZW50ID0gdG9rZW4uZXF1aXZhbGVudCB8fCBjb250ZW50Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAodG9rZW4uZGlzcGxheSkgew0KICAgICAgICAgICAgICAgIHNwYW5Ob2RlLnRpdGxlID0gdG9rZW4uZGlzcGxheTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLmVxdWl2YWxlbnQpIHsNCiAgICAgICAgICAgICAgICBpZiAodG9rZW4udW5pY29kZSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSAvKC4pLSguKS9nOw0KICAgICAgICAgICAgICAgICAgICBzcGFuTm9kZS50aXRsZSA9IHRva2VuLmVxdWl2YWxlbnQucmVwbGFjZShyYW5nZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChuMCwgbjEsIG4yKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9idWlsZFRpdGxlKG4xLCBuMik7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBzcGFuTm9kZS50aXRsZSA9IHRva2VuLmVxdWl2YWxlbnQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgIH0oKSkNCiAgICAvLyovDQogIH0pOw0KfTsNCg0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQoNCjxib2R5Pg0KPGRpdj4NCiAgICA8aDE+Q29kZU1pcnJvciBSZWdleCBDb2RlIEVkaXRvciBEZW1vbnN0cmF0aW9uPC9oMT4NCiAgICAgICAgPHA+VGhlIFJlZ2V4IHBhcnNlciBmb3IgQ29kZU1pcnJvciBhbGxvd3Mgc3ludGF4IGNvbG9yaW5nIG9uIHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2l0aCBzb21lIGJlZ2lubmluZyBjdXN0b21pemFiaWxpdHkgYnkgDQogICAgICAgIFJlZ2V4IGZsYXZvci9sYW5ndWFnZS4gRm9yIGludGVncmF0aW5nIHN0eWxpbmcgb2YgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWxzIGludG8gSmF2YVNjcmlwdCBzeW50YXggaGlnaGxpZ2h0aW5nLCBzZWUgdGhpcyANCiAgICAgICAgPGEgaHJlZj0ianMtcmVnZXguaHRtbCI+SmF2YVNjcmlwdCtSZWdleCBEZW1vPC9hPi48L3A+DQogICAgICAgIDxwPlN0eWxpbmcgYWJpbGl0eSBpcyBmaW5lLWdyYWluZWQsIHNvIGFueSB0b2tlbiBzaG91bGQgYmUgZGlzdGluY3RseSBzdHlsYWJsZSBpZiBzbyBkZXNpcmVkLiBQYXJlbnRoZXRpY2FsIGdyb3VwcyBjYW4NCiAgICAgICAgYmUgc3R5bGVkIHdpdGggdGhlIHNhbWUgc3R5bGVzIGZvciBpbm5lciBjb250ZW50LCBhbmQgdGhlIHNjcmlwdCBhbHNvIGVuYWJsZXMgc3R5bGluZyBieSBuZXN0aW5nIGRlcHRoIGFuZCBzZXF1ZW5jZSwgDQogICAgICAgIGluY2x1ZGluZyBieSBpbXBvc2luZyBhIGxpbWl0IHN1Y2ggdGhhdCBzdHlsZXMgd2lsbCBhbHRlcm5hdGUuPC9wPg0KICAgICAgICA8cD5JbmZvcm1hdGlvbiBjYW4gYWxzbyBiZSBwYXNzZWQgb24gKGVzcGVjaWFsbHkgd2hlbiB0aGUgcGFyc2VyZWdleC11bmljb2RlLmpzIGZpbGUgaXMgaW5jbHVkZWQpIGZvciB1c2UgaW4gQ29kZU1pcnJvcidzDQogICAgICAgIGFjdGl2ZVRva2VucyBhcmd1bWVudCBzdWNoIGFzIGRlbW9uc3RyYXRlZCBiZWxvdyBieSB0b29sdGlwcyB3aGljaCBzaG93IHdoaWNoIGNoYXJhY3RlcnMgYXJlIHByZXNlbnQgaW4gYSBnaXZlbg0KICAgICAgICByYW5nZSBvciBVbmljb2RlIGNsYXNzLjwvcD4NCiAgICAgICAgPHA+Tm90ZSB0aGF0IHRoaXMgZWRpdG9yIGRvZXMgbm90IHN1cHBvcnQgZnJlZS1zcGFjaW5nIG1vZGUsIHNvIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byB1c2UgbXVsdGlwbGUgbGluZXMgZm9yIGlucHV0LCBidXQNCiAgICAgICAgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMsIG11bHRpcGxlIGxpbmVzIGFyZSBzaG93bi48L3A+DQogICAgICAgIDx0ZXh0YXJlYSBpZD0icmVnZXhwIj4oP2l4KS9zb21lKGdyb3VwKWFuZCBtb3JlKD86dW5udW1iZXJlZClhbmQoPz1zdGgpYnV0KD8hbm90KQ0KKFxrPG5hbWVkXyQ+Yi5ja3JlZikgKD8jYSBjb21tZW50KSAjIHNvbWUgc3BhY2UNCmZkZFteXWFhW11kZGZbXDQ1LVw1NVw2N11zZmFbXGNhLVxjYlxjZF1zZGZcY2RmXHB7Tm99ZGRmW1xhLVxxXWRmZmRbXHUwMDMzLVx1MDY0MFx1MDc0N10rP2YqP2RmW1wwMzQtXDAzOFx1MDM5XWQNCltceGFmLVx4YmZdZmRmZXsxfWRmc2R7MiwzfS0tZmFranszLH1mW15hYl1kZlwzOWRbXmEtemUtXWEwNzZkZltcdTAwYTAtXHUwMGYwXVtcdTAwMTBcNDlcMDc3XHhhZl1mZmFbLS1xXWRzWyotLV1hZFstYWRccWZ3XWZkXHFhZFxwe15hfWZkZlxQe2F9YVthYi1jZF1ceDExXHUwMTIzXGNhXDM0ZGYvZ2kNCjwvdGV4dGFyZWE+DQogICAgICAgIDwhLS08dGV4dGFyZWEgaWQ9InJlcGxhY2VtZW50cyIgY29scz0iMzAiIHJvd3M9IjEiPnskJn08L3RleHRhcmVhPi0tPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/js-regex.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPkNvZGVNaXJyb3IgUmVnZXggSGlnaGxpZ2h0aW5nPC90aXRsZT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2NvZGVtaXJyb3IuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgew0KDQogIGNyZWF0ZUVkaXRvcignanMtcmVnZXhwJywgJ3VuaWZvcm0nKTsNCiAgY3JlYXRlRWRpdG9yKCdqcy1yZWdleHAtdHlwZScsICd0eXBlJyk7DQogIGNyZWF0ZUVkaXRvcignanMtcmVnZXhwLW5vbmUnLCBmYWxzZSk7DQogICAgDQogIGZ1bmN0aW9uIGNyZWF0ZUVkaXRvciAoaWQsIHR5cGUpIHsNCiAgICAgIHZhciBqc2VkaXRvciA9IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKGlkLCB7DQogICAgICAgIG5vU2NyaXB0Q2FjaGluZzogdHJ1ZSwNCiAgICAgICAgLy8gY29udGludW91c1NjYW5uaW5nOiB0cnVlLCAgLy8gTm9ybWFsbHkgRGVidWdnaW5nIG9ubHksIGJ1dCB1c2VmdWwgd2l0aCByZWdleA0KICAgICAgICBwYXJzZXJDb25maWc6IHsNCiAgICAgICAgICAgIC8vIGZsYWdzOiAneCcsDQogICAgICAgICAgICAvL2xpdGVyYWw6IHRydWUsDQogICAgICAgICAgICBmbGF2b3I6ICdlY21hLTI2Mi1lZDMnLA0KICAgICAgICAgICAgcmVnZXhfbW9kZV9tb2RpZmllcjogdHJ1ZSwNCiAgICAgICAgICAgIHJlZ2V4X21heF9sZXZlbHM6MiwNCiAgICAgICAgICAgIHJlZ2V4X21heF9hbHRlcm5hdGluZzoyLA0KICAgICAgICAgICAgcmVnZXhfaW5uZXJfZ3JvdXBfbW9kZTogdHlwZQ0KICAgICAgICB9LA0KICAgICAgICBwYXJzZXJmaWxlOiBbInRva2VuaXplamF2YXNjcmlwdC5qcyIsICJwYXJzZWphdmFzY3JpcHQuanMiLCAiLi4vY29udHJpYi9yZWdleC9qcy9wYXJzZXJlZ2V4LmpzIiwiLi4vY29udHJpYi9yZWdleC9qcy9wYXJzZWphdmFzY3JpcHRfYW5kX3JlZ2V4LmpzIl0sDQogICAgICAgIHN0eWxlc2hlZXQ6IFsiY3NzL2pzLXJlZ2V4Y29sb3JzLmNzcyIsICIuLi8uLi9jc3MvanNjb2xvcnMuY3NzIl0sICAgIA0KICAgICAgICBwYXRoOiAnLi4vLi4vanMvJywNCiAgICAgICAgaGVpZ2h0OiAnZHluYW1pYycsDQogICAgICAgIG1pbkhlaWdodDogMjAsDQoNCiAgICAgICAgLy8gRGVtb25zdHJhdGVzIFVuaWNvZGUgdG9vbHRpcCBmZWF0dXJlcw0KICAgICAgICBhY3RpdmVUb2tlbnMgOiAoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdmFyIGNoYXJMaW1pdCA9IDUwMDsNCiAgICAgICAgICAgIHZhciBsYXN0RXF1aXZhbGVudCwgcmFuZ2VCZWdhbiwgbGFzdFJhbmdlSHlwaGVuOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBmdW5jdGlvbiBfYnVpbGRUaXRsZSAoYmVnaW5DaGFyLCBlbmRDaGFyKSB7DQogICAgICAgICAgICAgICAgdmFyIGJlZ2luQ29kZSA9IGJlZ2luQ2hhci5jaGFyQ29kZUF0KDApLCBlbmRDb2RlID0gZW5kQ2hhci5jaGFyQ29kZUF0KDApOw0KICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9ICcnOw0KICAgICAgICAgICAgICAgIGlmIChlbmRDb2RlIC0gYmVnaW5Db2RlIDw9IGNoYXJMaW1pdCkgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gYmVnaW5Db2RlOyBpIDw9IGVuZENvZGU7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gdGl0bGU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoc3Bhbk5vZGUsIHRva2VuLCBlZGl0b3IpIHsNCiAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IHRva2VuLmNvbnRlbnQ7DQogICAgICAgICAgICAgICAgaWYgKGxhc3RFcXVpdmFsZW50ICYmIHRva2VuLnN0eWxlID09PSAncmVnZXgtY2xhc3MtcmFuZ2UtaHlwaGVuJykgew0KICAgICAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgbGFzdFJhbmdlSHlwaGVuID0gc3Bhbk5vZGU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlQmVnYW4pIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGJlZ2luQ2hhciA9IGxhc3RFcXVpdmFsZW50Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgZW5kQ2hhciA9ICh0b2tlbi5lcXVpdmFsZW50IHx8IGNvbnRlbnQpOw0KICAgICAgICAgICAgICAgICAgICBsYXN0UmFuZ2VIeXBoZW4udGl0bGUgPSBfYnVpbGRUaXRsZShiZWdpbkNoYXIsIGVuZENoYXIpOw0KICAgICAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGxhc3RFcXVpdmFsZW50ID0gbnVsbDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PT0gJ10nKSB7DQogICAgICAgICAgICAgICAgICAgIHJhbmdlQmVnYW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHJhbmdlQmVnYW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgLy8gRml4OiAncmVnZXgtdW5pY29kZS1jbGFzcy1pbnNpZGUnIG5vdCBzdXBwb3J0ZWQgYW5kIHNob3VsZCBub3QgYmUgc2luY2UgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSBhcyBhIHN0YXJ0aW5nIHJhbmdlPw0KICAgICAgICAgICAgICAgICAgICBsYXN0RXF1aXZhbGVudCA9IHRva2VuLmVxdWl2YWxlbnQgfHwgY29udGVudDsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYgKHRva2VuLmRpc3BsYXkpIHsNCiAgICAgICAgICAgICAgICAgICAgc3Bhbk5vZGUudGl0bGUgPSB0b2tlbi5kaXNwbGF5Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5lcXVpdmFsZW50KSB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi51bmljb2RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSAvKC4pLSguKS9nOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbk5vZGUudGl0bGUgPSB0b2tlbi5lcXVpdmFsZW50LnJlcGxhY2UocmFuZ2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKG4wLCBuMSwgbjIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9idWlsZFRpdGxlKG4xLCBuMik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW5Ob2RlLnRpdGxlID0gdG9rZW4uZXF1aXZhbGVudDsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH07DQogICAgICAgIH0oKSkNCiAgICAgIH0pOw0KICB9DQp9Ow0KDQo8L3NjcmlwdD4NCjwvaGVhZD4NCg0KPGJvZHk+DQo8ZGl2Pg0KICAgIDxoMT5Db2RlTWlycm9yIEphdmFTY3JpcHQtSW50ZWdyYXRlZCBSZWdleCBDb2RlIEVkaXRvciBEZW1vbnN0cmF0aW9uPC9oMT4NCiAgICAgICAgPHA+VGhpcyBkZW1vbnN0cmF0ZXMgYSBwYXJzZXIgaW4gdGhlIHJlZ2V4IGZvbGRlciB3aGljaCB3cmFwcyB0aGUgcmVndWxhciBDb2RlTWlycm9yIEphdmFTY3JpcHQgZWRpdG9yIGFuZCBhZGRzIHN5bnRheCBjb2xvcmluZyB0bw0KICAgICAgICByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbHMgaW4gSmF2YVNjcmlwdC48L3A+DQogICAgICAgIDx0ZXh0YXJlYSBpZD0ianMtcmVnZXhwIiBjb2xzPSI2MCIgcm93cz0iMSI+DQp2YXIgYVZhciA9ICJhU3RyaW5nIiArIDQyICsgYUZ1bmN0aW9uKGFuQXJnLCB0cnVlKTsNCnZhciBteVJneCA9IC90ZXN0KGdyb3VwMXxncm91cDJ8KD86Z3JvdXAzKSlhbmQoZ3JvdXA0KWFuZChncihvdSlwNSkvZ2k7DQo8L3RleHRhcmVhPg0KDQogICAgICAgIDxwPldoaWxlIHRoZSBhYm92ZSBzdHlsZXMgYnkgZGVwdGggb3Igc2VxdWVuY2Ugbm8gbWF0dGVyIHRoZSBncm91cGluZyB0eXBlLCB0aGlzIHBhcnNlciBhbHNvIGFsbG93cyBzdHlsaW5nIGRpc3RpbmN0bHkgYnkgZ3JvdXBpbmcgdHlwZSAoY2FwdHVyaW5nLCBuYW1lZCwgbm9uLWNhcHR1cmluZyksIHdoaWxlIGFsc28gc3RpbGwgYWxsb3dpbmcgYWx0ZXJuYXRpbmcgb2YgY29sb3JzIHdpdGhpbiBhIHR5cGUuPC9wPg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImpzLXJlZ2V4cC10eXBlIiBjb2xzPSI2MCIgcm93cz0iMSI+DQp2YXIgYVZhciA9ICJhU3RyaW5nIiArIDQyICsgYUZ1bmN0aW9uKGFuQXJnLCB0cnVlKTsNCnZhciBteVJneCA9IC90ZXN0KGdyb3VwMXxncm91cDJ8KD86Z3JvdXAzKSlhbmQoZ3JvdXA0KWFuZChncihvdSlwNSkvZ2k7DQo8L3RleHRhcmVhPg0KICAgICAgICA8cD5PbmUgbWF5IGFsc28gc2ltcGx5IHR1cm4gb2ZmIHRoZSBzdHlsaW5nIG9mIGNvbnRlbnQgaW5zaWRlIGdyb3VwcywgYWxsb3dpbmcgb25seSBpbmRpdmlkdWFsIHRva2VucyB0byBiZSBzdHlsZWQgcGVyIHRoZSBzdHlsZXNoZWV0ICh0aG91Z2ggdGhlIHBhcmVudGhlc2VzIHRva2VucyB0aGVtc2VsdmVzIGNhbiBzdGlsbCBpbmRpY2F0ZSBkZXB0aCBvciBzZXF1ZW5jZSk6PC9wPg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImpzLXJlZ2V4cC1ub25lIiBjb2xzPSI2MCIgcm93cz0iMSI+DQp2YXIgYVZhciA9ICJhU3RyaW5nIiArIDQyICsgYUZ1bmN0aW9uKGFuQXJnLCB0cnVlKTsNCnZhciBteVJneCA9IC90ZXN0KGdyb3VwMXxncm91cDJ8KD86Z3JvdXAzKSlhbmQoZ3JvdXA0KWFuZChncihvdSlwNSkvZ2k7DQo8L3RleHRhcmVhPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/js/parsejavascript_and_regex.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gU2VlIHRoZSBkZXBlbmRlbmNpZXMgcGFyc2VqYXZhc2NyaXB0LmpzIGFuZCBwYXJzZXJlZ2V4LmpzIChvcHRpb25hbGx5IHdpdGggcGFyc2VyZWdleC11bmljb2RlLmpzKSBmb3Igb3B0aW9ucw0KDQp2YXIgSlNBbmRSZWdleFBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQogICAgLy8gUGFyc2VyDQogICAgdmFyIHJ1biA9IGZ1bmN0aW9uICgpIHt9LA0KICAgICAgICByZWdleFBhcnNlciwganNQYXJzZXIsIGxhc3RSZWdleFNyYywNCiAgICAgICAgcmVnZXhQRyA9IHt9LCBqc1BHID0ge307DQoNCiAgICBmdW5jdGlvbiBzaW1wbGVTdHJlYW0gKHMpIHsNCiAgICAgICAgdmFyIHN0ciA9IHMsIHBvcyA9IDA7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBuZXh0IDogZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gc3RyLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyBTdG9wSXRlcmF0aW9uOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLmNoYXJBdChwb3MrKyk7DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVnZXggKCkgew0KICAgICAgICB2YXIgdG9rZW47DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB0b2tlbiA9IHJlZ2V4UGFyc2VyLm5leHQoKTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaChlKSB7DQogICAgICAgICAgICBfc2V0U3RhdGUoanMpOw0KICAgICAgICAgICAgcmV0dXJuIGpzKCk7DQogICAgICAgIH0NCiAgICAgICAgX3NldFN0YXRlKHJlZ2V4KTsNCiAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgIH0NCiAgICBmdW5jdGlvbiBqcyAoKSB7DQogICAgICAgIHZhciB0b2tlbiA9IGpzUGFyc2VyLm5leHQoKTsNCiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09ICdyZWdleHAnKSB7DQogICAgICAgICAgICBsYXN0UmVnZXhTcmMgPSBzdHJpbmdTdHJlYW0oc2ltcGxlU3RyZWFtKHRva2VuLmNvbnRlbnQpKTsNCiAgICAgICAgICAgIHJlZ2V4UGFyc2VyID0gUmVnZXhQYXJzZXIubWFrZShsYXN0UmVnZXhTcmMpOw0KICAgICAgICAgICAgcmV0dXJuIHJlZ2V4KCk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIF9zZXRTdGF0ZSAoZnVuYykgew0KICAgICAgICBydW4gPSBmdW5jOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHBhcnNlSlNBbmRSZWdleCAoc3RyZWFtLCBiYXNlY29sdW1uKSB7DQogICAgICAgIEpTUGFyc2VyLmNvbmZpZ3VyZShqc1BHKTsNCiAgICAgICAgUmVnZXhQYXJzZXIuY29uZmlndXJlKHJlZ2V4UEcpOw0KICAgICAgICBqc1BhcnNlciA9IEpTUGFyc2VyLm1ha2Uoc3RyZWFtLCBiYXNlY29sdW1uKTsNCiAgICAgICAgX3NldFN0YXRlKGpzKTsNCg0KICAgICAgICB2YXIgaXRlciA9IHsNCiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiBydW4oc3RyZWFtKTsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb3B5OiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgX3J1biA9IHJ1biwgX2xhc3RSZWdleFNyYyA9IGxhc3RSZWdleFNyYywgDQogICAgICAgICAgICAgICAgICAgIF9qc1BhcnNlciA9IGpzUGFyc2VyLmNvcHkoKSwNCiAgICAgICAgICAgICAgICAgICAgX3JlZ2V4UGFyc2VyID0gcmVnZXhQYXJzZXIgJiYgcmVnZXhQYXJzZXIuY29weSgpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfc3RyZWFtKSB7DQogICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IF9zdHJlYW07DQogICAgICAgICAgICAgICAgICAgIGpzUGFyc2VyID0gX2pzUGFyc2VyKF9zdHJlYW0pOw0KICAgICAgICAgICAgICAgICAgICByZWdleFBhcnNlciA9IF9yZWdleFBhcnNlciAmJiBfcmVnZXhQYXJzZXIoX2xhc3RSZWdleFNyYyk7DQogICAgICAgICAgICAgICAgICAgIHJ1biA9IF9ydW47DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIHJldHVybiBpdGVyOw0KICAgIH0NCg0KICAgIC8vIFBhcnNlciBvYmplY3QNCiAgICByZXR1cm4gew0KICAgICAgICBtYWtlOiBwYXJzZUpTQW5kUmVnZXgsDQogICAgICAgIGNvbmZpZ3VyZTogZnVuY3Rpb24gKHBhcnNlckNvbmZpZykgew0KICAgICAgICAgICAgZm9yICh2YXIgb3B0IGluIHBhcnNlckNvbmZpZykgew0KICAgICAgICAgICAgICAgIGlmICgoL15yZWdleF8vKS50ZXN0KG9wdCkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmVnZXhQR1tvcHQucmVwbGFjZSgvXnJlZ2V4Xy8sICcnKV0gPSBwYXJzZXJDb25maWdbb3B0XTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7IC8vIERvZXNuJ3QgbmVlZCBhIGpzLSBwcmVmaXgsIGJ1dCB3ZSdsbCBzdHJpcCBpZiBpdCBkb2VzDQogICAgICAgICAgICAgICAgICAgIGpzUEdbb3B0LnJlcGxhY2UoL15qc18vLCAnJyldID0gcGFyc2VyQ29uZmlnW29wdF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVnZXhQRy5mbGF2b3IgPSByZWdleFBHLmZsYXZvciB8fCAnZWNtYS0yNjItZWQzJzsgLy8gQWxsb3cgZWQ1LCBldGMuIGlmIHNwZWNpZmllZA0KICAgICAgICAgICAgcmVnZXhQRy5saXRlcmFsID0gdHJ1ZTsgLy8gVGhpcyBpcyBvbmx5IGZvciBsaXRlcmFscywgc2luY2UgY2FuJ3QgZWFzaWx5IGRldGVjdCB3aGV0aGVyIHdpbGwgYmUgdXNlZCBmb3IgUmVnRXhwDQogICAgICAgICAgICByZWdleFBHLmxpdGVyYWxfaW5pdGlhbCA9ICcvJzsgLy8gRW5zdXJlIGl0J3MgYWx3YXlzIHRoaXMgZm9yIEphdmFTY3JpcHQgcmVnZXggbGl0ZXJhbHMNCiAgICAgICAgfQ0KICAgIH07DQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/js/parseregex-unicode.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IC8qDQogICogTm90ZTogVG8gaW5jbHVkZSBVbmljb2RlIHZhbGlkYXRpb24sIHlvdSBtdXN0IGluY2x1ZGUgeW91ciBDb2RlTWlycm9yIHBhcnNlcmZpbGUgb3B0aW9uIGluIHRoaXMgc2VxdWVuY2U6DQogKiAgICAgIHBhcnNlcmZpbGU6IFsicGFyc2VyZWdleC5qcyIsICJwYXJzZXJlZ2V4LXVuaWNvZGUuanMiXQ0KKi8NCihmdW5jdGlvbiAoKSB7DQoNCg0KLy8gRml4OiBBZGQgbm9uLUJNUCBjb2RlIHBvaW50cw0KDQp2YXIgVW5pY29kZUNhdGVnb3JpZXMgPSB7DQoJQzogICIwMDAwLTAwMUYwMDdGLTAwOUYwMEFEMDM3ODAzNzkwMzdGLTAzODMwMzhCMDM4RDAzQTIwNTI2LTA1MzAwNTU3MDU1ODA1NjAwNTg4MDU4Qi0wNTkwMDVDOC0wNUNGMDVFQi0wNUVGMDVGNS0wNjA1MDYxQzA2MUQwNjIwMDY1RjA2REQwNzBFMDcwRjA3NEIwNzRDMDdCMi0wN0JGMDdGQi0wN0ZGMDgyRTA4MkYwODNGLTA4RkYwOTNBMDkzQjA5NEYwOTU2MDk1NzA5NzMtMDk3ODA5ODAwOTg0MDk4RDA5OEUwOTkxMDk5MjA5QTkwOUIxMDlCMy0wOUI1MDlCQTA5QkIwOUM1MDlDNjA5QzkwOUNBMDlDRi0wOUQ2MDlEOC0wOURCMDlERTA5RTQwOUU1MDlGQy0wQTAwMEEwNDBBMEItMEEwRTBBMTEwQTEyMEEyOTBBMzEwQTM0MEEzNzBBM0EwQTNCMEEzRDBBNDMtMEE0NjBBNDkwQTRBMEE0RS0wQTUwMEE1Mi0wQTU4MEE1RDBBNUYtMEE2NTBBNzYtMEE4MDBBODQwQThFMEE5MjBBQTkwQUIxMEFCNDBBQkEwQUJCMEFDNjBBQ0EwQUNFMEFDRjBBRDEtMEFERjBBRTQwQUU1MEFGMDBBRjItMEIwMDBCMDQwQjBEMEIwRTBCMTEwQjEyMEIyOTBCMzEwQjM0MEIzQTBCM0IwQjQ1MEI0NjBCNDkwQjRBMEI0RS0wQjU1MEI1OC0wQjVCMEI1RTBCNjQwQjY1MEI3Mi0wQjgxMEI4NDBCOEItMEI4RDBCOTEwQjk2LTBCOTgwQjlCMEI5RDBCQTAtMEJBMjBCQTUtMEJBNzBCQUItMEJBRDBCQkEtMEJCRDBCQzMtMEJDNTBCQzkwQkNFMEJDRjBCRDEtMEJENjBCRDgtMEJFNTBCRkItMEMwMDBDMDQwQzBEMEMxMTBDMjkwQzM0MEMzQS0wQzNDMEM0NTBDNDkwQzRFLTBDNTQwQzU3MEM1QS0wQzVGMEM2NDBDNjUwQzcwLTBDNzcwQzgwMEM4MTBDODQwQzhEMEM5MTBDQTkwQ0I0MENCQTBDQkIwQ0M1MENDOTBDQ0UtMENENDBDRDctMENERDBDREYwQ0U0MENFNTBDRjAwQ0YzLTBEMDEwRDA0MEQwRDBEMTEwRDI5MEQzQS0wRDNDMEQ0NTBENDkwRDRFLTBENTYwRDU4LTBENUYwRDY0MEQ2NTBENzYtMEQ3ODBEODAwRDgxMEQ4NDBEOTctMEQ5OTBEQjIwREJDMERCRTBEQkYwREM3LTBEQzkwRENCLTBEQ0UwREQ1MERENzBERTAtMERGMTBERjUtMEUwMDBFM0ItMEUzRTBFNUMtMEU4MDBFODMwRTg1MEU4NjBFODkwRThCMEU4QzBFOEUtMEU5MzBFOTgwRUEwMEVBNDBFQTYwRUE4MEVBOTBFQUMwRUJBMEVCRTBFQkYwRUM1MEVDNzBFQ0UwRUNGMEVEQTBFREIwRURFLTBFRkYwRjQ4MEY2RC0wRjcwMEY4Qy0wRjhGMEY5ODBGQkQwRkNEMEZEOS0wRkZGMTBDNi0xMENGMTBGRC0xMEZGMTI0OTEyNEUxMjRGMTI1NzEyNTkxMjVFMTI1RjEyODkxMjhFMTI4RjEyQjExMkI2MTJCNzEyQkYxMkMxMTJDNjEyQzcxMkQ3MTMxMTEzMTYxMzE3MTM1Qi0xMzVFMTM3RC0xMzdGMTM5QS0xMzlGMTNGNS0xM0ZGMTY5RC0xNjlGMTZGMS0xNkZGMTcwRDE3MTUtMTcxRjE3MzctMTczRjE3NTQtMTc1RjE3NkQxNzcxMTc3NC0xNzdGMTdCNDE3QjUxN0RFMTdERjE3RUEtMTdFRjE3RkEtMTdGRjE4MEYxODFBLTE4MUYxODc4LTE4N0YxOEFCLTE4QUYxOEY2LTE4RkYxOTFELTE5MUYxOTJDLTE5MkYxOTNDLTE5M0YxOTQxLTE5NDMxOTZFMTk2RjE5NzUtMTk3RjE5QUMtMTlBRjE5Q0EtMTlDRjE5REItMTlERDFBMUMxQTFEMUE1RjFBN0QxQTdFMUE4QS0xQThGMUE5QS0xQTlGMUFBRS0xQUZGMUI0Qy0xQjRGMUI3RC0xQjdGMUJBQi0xQkFEMUJCQS0xQkZGMUMzOC0xQzNBMUM0QS0xQzRDMUM4MC0xQ0NGMUNGMy0xQ0ZGMURFNy0xREZDMUYxNjFGMTcxRjFFMUYxRjFGNDYxRjQ3MUY0RTFGNEYxRjU4MUY1QTFGNUMxRjVFMUY3RTFGN0YxRkI1MUZDNTFGRDQxRkQ1MUZEQzFGRjAxRkYxMUZGNTFGRkYyMDBCLTIwMEYyMDJBLTIwMkUyMDYwLTIwNkYyMDcyMjA3MzIwOEYyMDk1LTIwOUYyMEI5LTIwQ0YyMEYxLTIwRkYyMThBLTIxOEYyM0U5LTIzRkYyNDI3LTI0M0YyNDRCLTI0NUYyNkNFMjZFMjI2RTQtMjZFNzI3MDAyNzA1MjcwQTI3MEIyNzI4Mjc0QzI3NEUyNzUzLTI3NTUyNzVGMjc2MDI3OTUtMjc5NzI3QjAyN0JGMjdDQjI3Q0QtMjdDRjJCNEQtMkI0RjJCNUEtMkJGRjJDMkYyQzVGMkNGMi0yQ0Y4MkQyNi0yRDJGMkQ2Ni0yRDZFMkQ3MC0yRDdGMkQ5Ny0yRDlGMkRBNzJEQUYyREI3MkRCRjJEQzcyRENGMkRENzJEREYyRTMyLTJFN0YyRTlBMkVGNC0yRUZGMkZENi0yRkVGMkZGQy0yRkZGMzA0MDMwOTczMDk4MzEwMC0zMTA0MzEyRS0zMTMwMzE4RjMxQjgtMzFCRjMxRTQtMzFFRjMyMUYzMkZGNERCNi00REJGOUZDQy05RkZGQTQ4RC1BNDhGQTRDNy1BNENGQTYyQy1BNjNGQTY2MEE2NjFBNjc0LUE2N0JBNjk4LUE2OUZBNkY4LUE2RkZBNzhELUE3RkFBODJDLUE4MkZBODNBLUE4M0ZBODc4LUE4N0ZBOEM1LUE4Q0RBOERBLUE4REZBOEZDLUE4RkZBOTU0LUE5NUVBOTdELUE5N0ZBOUNFQTlEQS1BOUREQTlFMC1BOUZGQUEzNy1BQTNGQUE0RUFBNEZBQTVBQUE1QkFBN0MtQUE3RkFBQzMtQUFEQUFBRTAtQUJCRkFCRUVBQkVGQUJGQS1BQkZGRDdBNC1EN0FGRDdDNy1EN0NBRDdGQy1GOEZGRkEyRUZBMkZGQTZFRkE2RkZBREEtRkFGRkZCMDctRkIxMkZCMTgtRkIxQ0ZCMzdGQjNERkIzRkZCNDJGQjQ1RkJCMi1GQkQyRkQ0MC1GRDRGRkQ5MEZEOTFGREM4LUZERUZGREZFRkRGRkZFMUEtRkUxRkZFMjctRkUyRkZFNTNGRTY3RkU2Qy1GRTZGRkU3NUZFRkQtRkYwMEZGQkYtRkZDMUZGQzhGRkM5RkZEMEZGRDFGRkQ4RkZEOUZGREQtRkZERkZGRTdGRkVGLUZGRkJGRkZFRkZGRiIsDQoJQ2M6ICIwMDAwLTAwMUYwMDdGLTAwOUYiLA0KCUNmOiAiMDBBRDA2MDAtMDYwMzA2REQwNzBGMTdCNDE3QjUyMDBCLTIwMEYyMDJBLTIwMkUyMDYwLTIwNjQyMDZBLTIwNkZGRUZGRkZGOS1GRkZCIiwNCglDbzogIkUwMDAtRjhGRiIsDQoJQ3M6ICJEODAwLURGRkYiLA0KCUNuOiAiMDM3ODAzNzkwMzdGLTAzODMwMzhCMDM4RDAzQTIwNTI2LTA1MzAwNTU3MDU1ODA1NjAwNTg4MDU4Qi0wNTkwMDVDOC0wNUNGMDVFQi0wNUVGMDVGNS0wNUZGMDYwNDA2MDUwNjFDMDYxRDA2MjAwNjVGMDcwRTA3NEIwNzRDMDdCMi0wN0JGMDdGQi0wN0ZGMDgyRTA4MkYwODNGLTA4RkYwOTNBMDkzQjA5NEYwOTU2MDk1NzA5NzMtMDk3ODA5ODAwOTg0MDk4RDA5OEUwOTkxMDk5MjA5QTkwOUIxMDlCMy0wOUI1MDlCQTA5QkIwOUM1MDlDNjA5QzkwOUNBMDlDRi0wOUQ2MDlEOC0wOURCMDlERTA5RTQwOUU1MDlGQy0wQTAwMEEwNDBBMEItMEEwRTBBMTEwQTEyMEEyOTBBMzEwQTM0MEEzNzBBM0EwQTNCMEEzRDBBNDMtMEE0NjBBNDkwQTRBMEE0RS0wQTUwMEE1Mi0wQTU4MEE1RDBBNUYtMEE2NTBBNzYtMEE4MDBBODQwQThFMEE5MjBBQTkwQUIxMEFCNDBBQkEwQUJCMEFDNjBBQ0EwQUNFMEFDRjBBRDEtMEFERjBBRTQwQUU1MEFGMDBBRjItMEIwMDBCMDQwQjBEMEIwRTBCMTEwQjEyMEIyOTBCMzEwQjM0MEIzQTBCM0IwQjQ1MEI0NjBCNDkwQjRBMEI0RS0wQjU1MEI1OC0wQjVCMEI1RTBCNjQwQjY1MEI3Mi0wQjgxMEI4NDBCOEItMEI4RDBCOTEwQjk2LTBCOTgwQjlCMEI5RDBCQTAtMEJBMjBCQTUtMEJBNzBCQUItMEJBRDBCQkEtMEJCRDBCQzMtMEJDNTBCQzkwQkNFMEJDRjBCRDEtMEJENjBCRDgtMEJFNTBCRkItMEMwMDBDMDQwQzBEMEMxMTBDMjkwQzM0MEMzQS0wQzNDMEM0NTBDNDkwQzRFLTBDNTQwQzU3MEM1QS0wQzVGMEM2NDBDNjUwQzcwLTBDNzcwQzgwMEM4MTBDODQwQzhEMEM5MTBDQTkwQ0I0MENCQTBDQkIwQ0M1MENDOTBDQ0UtMENENDBDRDctMENERDBDREYwQ0U0MENFNTBDRjAwQ0YzLTBEMDEwRDA0MEQwRDBEMTEwRDI5MEQzQS0wRDNDMEQ0NTBENDkwRDRFLTBENTYwRDU4LTBENUYwRDY0MEQ2NTBENzYtMEQ3ODBEODAwRDgxMEQ4NDBEOTctMEQ5OTBEQjIwREJDMERCRTBEQkYwREM3LTBEQzkwRENCLTBEQ0UwREQ1MERENzBERTAtMERGMTBERjUtMEUwMDBFM0ItMEUzRTBFNUMtMEU4MDBFODMwRTg1MEU4NjBFODkwRThCMEU4QzBFOEUtMEU5MzBFOTgwRUEwMEVBNDBFQTYwRUE4MEVBOTBFQUMwRUJBMEVCRTBFQkYwRUM1MEVDNzBFQ0UwRUNGMEVEQTBFREIwRURFLTBFRkYwRjQ4MEY2RC0wRjcwMEY4Qy0wRjhGMEY5ODBGQkQwRkNEMEZEOS0wRkZGMTBDNi0xMENGMTBGRC0xMEZGMTI0OTEyNEUxMjRGMTI1NzEyNTkxMjVFMTI1RjEyODkxMjhFMTI4RjEyQjExMkI2MTJCNzEyQkYxMkMxMTJDNjEyQzcxMkQ3MTMxMTEzMTYxMzE3MTM1Qi0xMzVFMTM3RC0xMzdGMTM5QS0xMzlGMTNGNS0xM0ZGMTY5RC0xNjlGMTZGMS0xNkZGMTcwRDE3MTUtMTcxRjE3MzctMTczRjE3NTQtMTc1RjE3NkQxNzcxMTc3NC0xNzdGMTdERTE3REYxN0VBLTE3RUYxN0ZBLTE3RkYxODBGMTgxQS0xODFGMTg3OC0xODdGMThBQi0xOEFGMThGNi0xOEZGMTkxRC0xOTFGMTkyQy0xOTJGMTkzQy0xOTNGMTk0MS0xOTQzMTk2RTE5NkYxOTc1LTE5N0YxOUFDLTE5QUYxOUNBLTE5Q0YxOURCLTE5REQxQTFDMUExRDFBNUYxQTdEMUE3RTFBOEEtMUE4RjFBOUEtMUE5RjFBQUUtMUFGRjFCNEMtMUI0RjFCN0QtMUI3RjFCQUItMUJBRDFCQkEtMUJGRjFDMzgtMUMzQTFDNEEtMUM0QzFDODAtMUNDRjFDRjMtMUNGRjFERTctMURGQzFGMTYxRjE3MUYxRTFGMUYxRjQ2MUY0NzFGNEUxRjRGMUY1ODFGNUExRjVDMUY1RTFGN0UxRjdGMUZCNTFGQzUxRkQ0MUZENTFGREMxRkYwMUZGMTFGRjUxRkZGMjA2NS0yMDY5MjA3MjIwNzMyMDhGMjA5NS0yMDlGMjBCOS0yMENGMjBGMS0yMEZGMjE4QS0yMThGMjNFOS0yM0ZGMjQyNy0yNDNGMjQ0Qi0yNDVGMjZDRTI2RTIyNkU0LTI2RTcyNzAwMjcwNTI3MEEyNzBCMjcyODI3NEMyNzRFMjc1My0yNzU1Mjc1RjI3NjAyNzk1LTI3OTcyN0IwMjdCRjI3Q0IyN0NELTI3Q0YyQjRELTJCNEYyQjVBLTJCRkYyQzJGMkM1RjJDRjItMkNGODJEMjYtMkQyRjJENjYtMkQ2RTJENzAtMkQ3RjJEOTctMkQ5RjJEQTcyREFGMkRCNzJEQkYyREM3MkRDRjJERDcyRERGMkUzMi0yRTdGMkU5QTJFRjQtMkVGRjJGRDYtMkZFRjJGRkMtMkZGRjMwNDAzMDk3MzA5ODMxMDAtMzEwNDMxMkUtMzEzMDMxOEYzMUI4LTMxQkYzMUU0LTMxRUYzMjFGMzJGRjREQjYtNERCRjlGQ0MtOUZGRkE0OEQtQTQ4RkE0QzctQTRDRkE2MkMtQTYzRkE2NjBBNjYxQTY3NC1BNjdCQTY5OC1BNjlGQTZGOC1BNkZGQTc4RC1BN0ZBQTgyQy1BODJGQTgzQS1BODNGQTg3OC1BODdGQThDNS1BOENEQThEQS1BOERGQThGQy1BOEZGQTk1NC1BOTVFQTk3RC1BOTdGQTlDRUE5REEtQTlEREE5RTAtQTlGRkFBMzctQUEzRkFBNEVBQTRGQUE1QUFBNUJBQTdDLUFBN0ZBQUMzLUFBREFBQUUwLUFCQkZBQkVFQUJFRkFCRkEtQUJGRkQ3QTQtRDdBRkQ3QzctRDdDQUQ3RkMtRDdGRkZBMkVGQTJGRkE2RUZBNkZGQURBLUZBRkZGQjA3LUZCMTJGQjE4LUZCMUNGQjM3RkIzREZCM0ZGQjQyRkI0NUZCQjItRkJEMkZENDAtRkQ0RkZEOTBGRDkxRkRDOC1GREVGRkRGRUZERkZGRTFBLUZFMUZGRTI3LUZFMkZGRTUzRkU2N0ZFNkMtRkU2RkZFNzVGRUZERkVGRUZGMDBGRkJGLUZGQzFGRkM4RkZDOUZGRDBGRkQxRkZEOEZGRDlGRkRELUZGREZGRkU3RkZFRi1GRkY4RkZGRUZGRkYiLA0KICAgIEw6ICIwMDQxLTAwNUEwMDYxLTAwN0EwMEFBMDBCNTAwQkEwMEMwLTAwRDYwMEQ4LTAwRjYwMEY4LTAyQzEwMkM2LTAyRDEwMkUwLTAyRTQwMkVDMDJFRTAzNzAtMDM3NDAzNzYwMzc3MDM3QS0wMzdEMDM4NjAzODgtMDM4QTAzOEMwMzhFLTAzQTEwM0EzLTAzRjUwM0Y3LTA0ODEwNDhBLTA1MjUwNTMxLTA1NTYwNTU5MDU2MS0wNTg3MDVEMC0wNUVBMDVGMC0wNUYyMDYyMS0wNjRBMDY2RTA2NkYwNjcxLTA2RDMwNkQ1MDZFNTA2RTYwNkVFMDZFRjA2RkEtMDZGQzA2RkYwNzEwMDcxMi0wNzJGMDc0RC0wN0E1MDdCMTA3Q0EtMDdFQTA3RjQwN0Y1MDdGQTA4MDAtMDgxNTA4MUEwODI0MDgyODA5MDQtMDkzOTA5M0QwOTUwMDk1OC0wOTYxMDk3MTA5NzIwOTc5LTA5N0YwOTg1LTA5OEMwOThGMDk5MDA5OTMtMDlBODA5QUEtMDlCMDA5QjIwOUI2LTA5QjkwOUJEMDlDRTA5REMwOUREMDlERi0wOUUxMDlGMDA5RjEwQTA1LTBBMEEwQTBGMEExMDBBMTMtMEEyODBBMkEtMEEzMDBBMzIwQTMzMEEzNTBBMzYwQTM4MEEzOTBBNTktMEE1QzBBNUUwQTcyLTBBNzQwQTg1LTBBOEQwQThGLTBBOTEwQTkzLTBBQTgwQUFBLTBBQjAwQUIyMEFCMzBBQjUtMEFCOTBBQkQwQUQwMEFFMDBBRTEwQjA1LTBCMEMwQjBGMEIxMDBCMTMtMEIyODBCMkEtMEIzMDBCMzIwQjMzMEIzNS0wQjM5MEIzRDBCNUMwQjVEMEI1Ri0wQjYxMEI3MTBCODMwQjg1LTBCOEEwQjhFLTBCOTAwQjkyLTBCOTUwQjk5MEI5QTBCOUMwQjlFMEI5RjBCQTMwQkE0MEJBOC0wQkFBMEJBRS0wQkI5MEJEMDBDMDUtMEMwQzBDMEUtMEMxMDBDMTItMEMyODBDMkEtMEMzMzBDMzUtMEMzOTBDM0QwQzU4MEM1OTBDNjAwQzYxMEM4NS0wQzhDMEM4RS0wQzkwMEM5Mi0wQ0E4MENBQS0wQ0IzMENCNS0wQ0I5MENCRDBDREUwQ0UwMENFMTBEMDUtMEQwQzBEMEUtMEQxMDBEMTItMEQyODBEMkEtMEQzOTBEM0QwRDYwMEQ2MTBEN0EtMEQ3RjBEODUtMEQ5NjBEOUEtMERCMTBEQjMtMERCQjBEQkQwREMwLTBEQzYwRTAxLTBFMzAwRTMyMEUzMzBFNDAtMEU0NjBFODEwRTgyMEU4NDBFODcwRTg4MEU4QTBFOEQwRTk0LTBFOTcwRTk5LTBFOUYwRUExLTBFQTMwRUE1MEVBNzBFQUEwRUFCMEVBRC0wRUIwMEVCMjBFQjMwRUJEMEVDMC0wRUM0MEVDNjBFREMwRUREMEYwMDBGNDAtMEY0NzBGNDktMEY2QzBGODgtMEY4QjEwMDAtMTAyQTEwM0YxMDUwLTEwNTUxMDVBLTEwNUQxMDYxMTA2NTEwNjYxMDZFLTEwNzAxMDc1LTEwODExMDhFMTBBMC0xMEM1MTBEMC0xMEZBMTBGQzExMDAtMTI0ODEyNEEtMTI0RDEyNTAtMTI1NjEyNTgxMjVBLTEyNUQxMjYwLTEyODgxMjhBLTEyOEQxMjkwLTEyQjAxMkIyLTEyQjUxMkI4LTEyQkUxMkMwMTJDMi0xMkM1MTJDOC0xMkQ2MTJEOC0xMzEwMTMxMi0xMzE1MTMxOC0xMzVBMTM4MC0xMzhGMTNBMC0xM0Y0MTQwMS0xNjZDMTY2Ri0xNjdGMTY4MS0xNjlBMTZBMC0xNkVBMTcwMC0xNzBDMTcwRS0xNzExMTcyMC0xNzMxMTc0MC0xNzUxMTc2MC0xNzZDMTc2RS0xNzcwMTc4MC0xN0IzMTdENzE3REMxODIwLTE4NzcxODgwLTE4QTgxOEFBMThCMC0xOEY1MTkwMC0xOTFDMTk1MC0xOTZEMTk3MC0xOTc0MTk4MC0xOUFCMTlDMS0xOUM3MUEwMC0xQTE2MUEyMC0xQTU0MUFBNzFCMDUtMUIzMzFCNDUtMUI0QjFCODMtMUJBMDFCQUUxQkFGMUMwMC0xQzIzMUM0RC0xQzRGMUM1QS0xQzdEMUNFOS0xQ0VDMUNFRS0xQ0YxMUQwMC0xREJGMUUwMC0xRjE1MUYxOC0xRjFEMUYyMC0xRjQ1MUY0OC0xRjREMUY1MC0xRjU3MUY1OTFGNUIxRjVEMUY1Ri0xRjdEMUY4MC0xRkI0MUZCNi0xRkJDMUZCRTFGQzItMUZDNDFGQzYtMUZDQzFGRDAtMUZEMzFGRDYtMUZEQjFGRTAtMUZFQzFGRjItMUZGNDFGRjYtMUZGQzIwNzEyMDdGMjA5MC0yMDk0MjEwMjIxMDcyMTBBLTIxMTMyMTE1MjExOS0yMTFEMjEyNDIxMjYyMTI4MjEyQS0yMTJEMjEyRi0yMTM5MjEzQy0yMTNGMjE0NS0yMTQ5MjE0RTIxODMyMTg0MkMwMC0yQzJFMkMzMC0yQzVFMkM2MC0yQ0U0MkNFQi0yQ0VFMkQwMC0yRDI1MkQzMC0yRDY1MkQ2RjJEODAtMkQ5NjJEQTAtMkRBNjJEQTgtMkRBRTJEQjAtMkRCNjJEQjgtMkRCRTJEQzAtMkRDNjJEQzgtMkRDRTJERDAtMkRENjJERDgtMkRERTJFMkYzMDA1MzAwNjMwMzEtMzAzNTMwM0IzMDNDMzA0MS0zMDk2MzA5RC0zMDlGMzBBMS0zMEZBMzBGQy0zMEZGMzEwNS0zMTJEMzEzMS0zMThFMzFBMC0zMUI3MzFGMC0zMUZGMzQwMC00REI1NEUwMC05RkNCQTAwMC1BNDhDQTREMC1BNEZEQTUwMC1BNjBDQTYxMC1BNjFGQTYyQUE2MkJBNjQwLUE2NUZBNjYyLUE2NkVBNjdGLUE2OTdBNkEwLUE2RTVBNzE3LUE3MUZBNzIyLUE3ODhBNzhCQTc4Q0E3RkItQTgwMUE4MDMtQTgwNUE4MDctQTgwQUE4MEMtQTgyMkE4NDAtQTg3M0E4ODItQThCM0E4RjItQThGN0E4RkJBOTBBLUE5MjVBOTMwLUE5NDZBOTYwLUE5N0NBOTg0LUE5QjJBOUNGQUEwMC1BQTI4QUE0MC1BQTQyQUE0NC1BQTRCQUE2MC1BQTc2QUE3QUFBODAtQUFBRkFBQjFBQUI1QUFCNkFBQjktQUFCREFBQzBBQUMyQUFEQi1BQUREQUJDMC1BQkUyQUMwMC1EN0EzRDdCMC1EN0M2RDdDQi1EN0ZCRjkwMC1GQTJERkEzMC1GQTZERkE3MC1GQUQ5RkIwMC1GQjA2RkIxMy1GQjE3RkIxREZCMUYtRkIyOEZCMkEtRkIzNkZCMzgtRkIzQ0ZCM0VGQjQwRkI0MUZCNDNGQjQ0RkI0Ni1GQkIxRkJEMy1GRDNERkQ1MC1GRDhGRkQ5Mi1GREM3RkRGMC1GREZCRkU3MC1GRTc0RkU3Ni1GRUZDRkYyMS1GRjNBRkY0MS1GRjVBRkY2Ni1GRkJFRkZDMi1GRkM3RkZDQS1GRkNGRkZEMi1GRkQ3RkZEQS1GRkRDIiwNCglMbDogIjAwNjEtMDA3QTAwQUEwMEI1MDBCQTAwREYtMDBGNjAwRjgtMDBGRjAxMDEwMTAzMDEwNTAxMDcwMTA5MDEwQjAxMEQwMTBGMDExMTAxMTMwMTE1MDExNzAxMTkwMTFCMDExRDAxMUYwMTIxMDEyMzAxMjUwMTI3MDEyOTAxMkIwMTJEMDEyRjAxMzEwMTMzMDEzNTAxMzcwMTM4MDEzQTAxM0MwMTNFMDE0MDAxNDIwMTQ0MDE0NjAxNDgwMTQ5MDE0QjAxNEQwMTRGMDE1MTAxNTMwMTU1MDE1NzAxNTkwMTVCMDE1RDAxNUYwMTYxMDE2MzAxNjUwMTY3MDE2OTAxNkIwMTZEMDE2RjAxNzEwMTczMDE3NTAxNzcwMTdBMDE3QzAxN0UtMDE4MDAxODMwMTg1MDE4ODAxOEMwMThEMDE5MjAxOTUwMTk5LTAxOUIwMTlFMDFBMTAxQTMwMUE1MDFBODAxQUEwMUFCMDFBRDAxQjAwMUI0MDFCNjAxQjkwMUJBMDFCRC0wMUJGMDFDNjAxQzkwMUNDMDFDRTAxRDAwMUQyMDFENDAxRDYwMUQ4MDFEQTAxREMwMUREMDFERjAxRTEwMUUzMDFFNTAxRTcwMUU5MDFFQjAxRUQwMUVGMDFGMDAxRjMwMUY1MDFGOTAxRkIwMUZEMDFGRjAyMDEwMjAzMDIwNTAyMDcwMjA5MDIwQjAyMEQwMjBGMDIxMTAyMTMwMjE1MDIxNzAyMTkwMjFCMDIxRDAyMUYwMjIxMDIyMzAyMjUwMjI3MDIyOTAyMkIwMjJEMDIyRjAyMzEwMjMzLTAyMzkwMjNDMDIzRjAyNDAwMjQyMDI0NzAyNDkwMjRCMDI0RDAyNEYtMDI5MzAyOTUtMDJBRjAzNzEwMzczMDM3NzAzN0ItMDM3RDAzOTAwM0FDLTAzQ0UwM0QwMDNEMTAzRDUtMDNENzAzRDkwM0RCMDNERDAzREYwM0UxMDNFMzAzRTUwM0U3MDNFOTAzRUIwM0VEMDNFRi0wM0YzMDNGNTAzRjgwM0ZCMDNGQzA0MzAtMDQ1RjA0NjEwNDYzMDQ2NTA0NjcwNDY5MDQ2QjA0NkQwNDZGMDQ3MTA0NzMwNDc1MDQ3NzA0NzkwNDdCMDQ3RDA0N0YwNDgxMDQ4QjA0OEQwNDhGMDQ5MTA0OTMwNDk1MDQ5NzA0OTkwNDlCMDQ5RDA0OUYwNEExMDRBMzA0QTUwNEE3MDRBOTA0QUIwNEFEMDRBRjA0QjEwNEIzMDRCNTA0QjcwNEI5MDRCQjA0QkQwNEJGMDRDMjA0QzQwNEM2MDRDODA0Q0EwNENDMDRDRTA0Q0YwNEQxMDREMzA0RDUwNEQ3MDREOTA0REIwNEREMDRERjA0RTEwNEUzMDRFNTA0RTcwNEU5MDRFQjA0RUQwNEVGMDRGMTA0RjMwNEY1MDRGNzA0RjkwNEZCMDRGRDA0RkYwNTAxMDUwMzA1MDUwNTA3MDUwOTA1MEIwNTBEMDUwRjA1MTEwNTEzMDUxNTA1MTcwNTE5MDUxQjA1MUQwNTFGMDUyMTA1MjMwNTI1MDU2MS0wNTg3MUQwMC0xRDJCMUQ2Mi0xRDc3MUQ3OS0xRDlBMUUwMTFFMDMxRTA1MUUwNzFFMDkxRTBCMUUwRDFFMEYxRTExMUUxMzFFMTUxRTE3MUUxOTFFMUIxRTFEMUUxRjFFMjExRTIzMUUyNTFFMjcxRTI5MUUyQjFFMkQxRTJGMUUzMTFFMzMxRTM1MUUzNzFFMzkxRTNCMUUzRDFFM0YxRTQxMUU0MzFFNDUxRTQ3MUU0OTFFNEIxRTREMUU0RjFFNTExRTUzMUU1NTFFNTcxRTU5MUU1QjFFNUQxRTVGMUU2MTFFNjMxRTY1MUU2NzFFNjkxRTZCMUU2RDFFNkYxRTcxMUU3MzFFNzUxRTc3MUU3OTFFN0IxRTdEMUU3RjFFODExRTgzMUU4NTFFODcxRTg5MUU4QjFFOEQxRThGMUU5MTFFOTMxRTk1LTFFOUQxRTlGMUVBMTFFQTMxRUE1MUVBNzFFQTkxRUFCMUVBRDFFQUYxRUIxMUVCMzFFQjUxRUI3MUVCOTFFQkIxRUJEMUVCRjFFQzExRUMzMUVDNTFFQzcxRUM5MUVDQjFFQ0QxRUNGMUVEMTFFRDMxRUQ1MUVENzFFRDkxRURCMUVERDFFREYxRUUxMUVFMzFFRTUxRUU3MUVFOTFFRUIxRUVEMUVFRjFFRjExRUYzMUVGNTFFRjcxRUY5MUVGQjFFRkQxRUZGLTFGMDcxRjEwLTFGMTUxRjIwLTFGMjcxRjMwLTFGMzcxRjQwLTFGNDUxRjUwLTFGNTcxRjYwLTFGNjcxRjcwLTFGN0QxRjgwLTFGODcxRjkwLTFGOTcxRkEwLTFGQTcxRkIwLTFGQjQxRkI2MUZCNzFGQkUxRkMyLTFGQzQxRkM2MUZDNzFGRDAtMUZEMzFGRDYxRkQ3MUZFMC0xRkU3MUZGMi0xRkY0MUZGNjFGRjcyMTBBMjEwRTIxMEYyMTEzMjEyRjIxMzQyMTM5MjEzQzIxM0QyMTQ2LTIxNDkyMTRFMjE4NDJDMzAtMkM1RTJDNjEyQzY1MkM2NjJDNjgyQzZBMkM2QzJDNzEyQzczMkM3NDJDNzYtMkM3QzJDODEyQzgzMkM4NTJDODcyQzg5MkM4QjJDOEQyQzhGMkM5MTJDOTMyQzk1MkM5NzJDOTkyQzlCMkM5RDJDOUYyQ0ExMkNBMzJDQTUyQ0E3MkNBOTJDQUIyQ0FEMkNBRjJDQjEyQ0IzMkNCNTJDQjcyQ0I5MkNCQjJDQkQyQ0JGMkNDMTJDQzMyQ0M1MkNDNzJDQzkyQ0NCMkNDRDJDQ0YyQ0QxMkNEMzJDRDUyQ0Q3MkNEOTJDREIyQ0REMkNERjJDRTEyQ0UzMkNFNDJDRUMyQ0VFMkQwMC0yRDI1QTY0MUE2NDNBNjQ1QTY0N0E2NDlBNjRCQTY0REE2NEZBNjUxQTY1M0E2NTVBNjU3QTY1OUE2NUJBNjVEQTY1RkE2NjNBNjY1QTY2N0E2NjlBNjZCQTY2REE2ODFBNjgzQTY4NUE2ODdBNjg5QTY4QkE2OERBNjhGQTY5MUE2OTNBNjk1QTY5N0E3MjNBNzI1QTcyN0E3MjlBNzJCQTcyREE3MkYtQTczMUE3MzNBNzM1QTczN0E3MzlBNzNCQTczREE3M0ZBNzQxQTc0M0E3NDVBNzQ3QTc0OUE3NEJBNzREQTc0RkE3NTFBNzUzQTc1NUE3NTdBNzU5QTc1QkE3NURBNzVGQTc2MUE3NjNBNzY1QTc2N0E3NjlBNzZCQTc2REE3NkZBNzcxLUE3NzhBNzdBQTc3Q0E3N0ZBNzgxQTc4M0E3ODVBNzg3QTc4Q0ZCMDAtRkIwNkZCMTMtRkIxN0ZGNDEtRkY1QSIsDQoJTHU6ICIwMDQxLTAwNUEwMEMwLTAwRDYwMEQ4LTAwREUwMTAwMDEwMjAxMDQwMTA2MDEwODAxMEEwMTBDMDEwRTAxMTAwMTEyMDExNDAxMTYwMTE4MDExQTAxMUMwMTFFMDEyMDAxMjIwMTI0MDEyNjAxMjgwMTJBMDEyQzAxMkUwMTMwMDEzMjAxMzQwMTM2MDEzOTAxM0IwMTNEMDEzRjAxNDEwMTQzMDE0NTAxNDcwMTRBMDE0QzAxNEUwMTUwMDE1MjAxNTQwMTU2MDE1ODAxNUEwMTVDMDE1RTAxNjAwMTYyMDE2NDAxNjYwMTY4MDE2QTAxNkMwMTZFMDE3MDAxNzIwMTc0MDE3NjAxNzgwMTc5MDE3QjAxN0QwMTgxMDE4MjAxODQwMTg2MDE4NzAxODktMDE4QjAxOEUtMDE5MTAxOTMwMTk0MDE5Ni0wMTk4MDE5QzAxOUQwMTlGMDFBMDAxQTIwMUE0MDFBNjAxQTcwMUE5MDFBQzAxQUUwMUFGMDFCMS0wMUIzMDFCNTAxQjcwMUI4MDFCQzAxQzQwMUM3MDFDQTAxQ0QwMUNGMDFEMTAxRDMwMUQ1MDFENzAxRDkwMURCMDFERTAxRTAwMUUyMDFFNDAxRTYwMUU4MDFFQTAxRUMwMUVFMDFGMTAxRjQwMUY2LTAxRjgwMUZBMDFGQzAxRkUwMjAwMDIwMjAyMDQwMjA2MDIwODAyMEEwMjBDMDIwRTAyMTAwMjEyMDIxNDAyMTYwMjE4MDIxQTAyMUMwMjFFMDIyMDAyMjIwMjI0MDIyNjAyMjgwMjJBMDIyQzAyMkUwMjMwMDIzMjAyM0EwMjNCMDIzRDAyM0UwMjQxMDI0My0wMjQ2MDI0ODAyNEEwMjRDMDI0RTAzNzAwMzcyMDM3NjAzODYwMzg4LTAzOEEwMzhDMDM4RTAzOEYwMzkxLTAzQTEwM0EzLTAzQUIwM0NGMDNEMi0wM0Q0MDNEODAzREEwM0RDMDNERTAzRTAwM0UyMDNFNDAzRTYwM0U4MDNFQTAzRUMwM0VFMDNGNDAzRjcwM0Y5MDNGQTAzRkQtMDQyRjA0NjAwNDYyMDQ2NDA0NjYwNDY4MDQ2QTA0NkMwNDZFMDQ3MDA0NzIwNDc0MDQ3NjA0NzgwNDdBMDQ3QzA0N0UwNDgwMDQ4QTA0OEMwNDhFMDQ5MDA0OTIwNDk0MDQ5NjA0OTgwNDlBMDQ5QzA0OUUwNEEwMDRBMjA0QTQwNEE2MDRBODA0QUEwNEFDMDRBRTA0QjAwNEIyMDRCNDA0QjYwNEI4MDRCQTA0QkMwNEJFMDRDMDA0QzEwNEMzMDRDNTA0QzcwNEM5MDRDQjA0Q0QwNEQwMDREMjA0RDQwNEQ2MDREODA0REEwNERDMDRERTA0RTAwNEUyMDRFNDA0RTYwNEU4MDRFQTA0RUMwNEVFMDRGMDA0RjIwNEY0MDRGNjA0RjgwNEZBMDRGQzA0RkUwNTAwMDUwMjA1MDQwNTA2MDUwODA1MEEwNTBDMDUwRTA1MTAwNTEyMDUxNDA1MTYwNTE4MDUxQTA1MUMwNTFFMDUyMDA1MjIwNTI0MDUzMS0wNTU2MTBBMC0xMEM1MUUwMDFFMDIxRTA0MUUwNjFFMDgxRTBBMUUwQzFFMEUxRTEwMUUxMjFFMTQxRTE2MUUxODFFMUExRTFDMUUxRTFFMjAxRTIyMUUyNDFFMjYxRTI4MUUyQTFFMkMxRTJFMUUzMDFFMzIxRTM0MUUzNjFFMzgxRTNBMUUzQzFFM0UxRTQwMUU0MjFFNDQxRTQ2MUU0ODFFNEExRTRDMUU0RTFFNTAxRTUyMUU1NDFFNTYxRTU4MUU1QTFFNUMxRTVFMUU2MDFFNjIxRTY0MUU2NjFFNjgxRTZBMUU2QzFFNkUxRTcwMUU3MjFFNzQxRTc2MUU3ODFFN0ExRTdDMUU3RTFFODAxRTgyMUU4NDFFODYxRTg4MUU4QTFFOEMxRThFMUU5MDFFOTIxRTk0MUU5RTFFQTAxRUEyMUVBNDFFQTYxRUE4MUVBQTFFQUMxRUFFMUVCMDFFQjIxRUI0MUVCNjFFQjgxRUJBMUVCQzFFQkUxRUMwMUVDMjFFQzQxRUM2MUVDODFFQ0ExRUNDMUVDRTFFRDAxRUQyMUVENDFFRDYxRUQ4MUVEQTFFREMxRURFMUVFMDFFRTIxRUU0MUVFNjFFRTgxRUVBMUVFQzFFRUUxRUYwMUVGMjFFRjQxRUY2MUVGODFFRkExRUZDMUVGRTFGMDgtMUYwRjFGMTgtMUYxRDFGMjgtMUYyRjFGMzgtMUYzRjFGNDgtMUY0RDFGNTkxRjVCMUY1RDFGNUYxRjY4LTFGNkYxRkI4LTFGQkIxRkM4LTFGQ0IxRkQ4LTFGREIxRkU4LTFGRUMxRkY4LTFGRkIyMTAyMjEwNzIxMEItMjEwRDIxMTAtMjExMjIxMTUyMTE5LTIxMUQyMTI0MjEyNjIxMjgyMTJBLTIxMkQyMTMwLTIxMzMyMTNFMjEzRjIxNDUyMTgzMkMwMC0yQzJFMkM2MDJDNjItMkM2NDJDNjcyQzY5MkM2QjJDNkQtMkM3MDJDNzIyQzc1MkM3RS0yQzgwMkM4MjJDODQyQzg2MkM4ODJDOEEyQzhDMkM4RTJDOTAyQzkyMkM5NDJDOTYyQzk4MkM5QTJDOUMyQzlFMkNBMDJDQTIyQ0E0MkNBNjJDQTgyQ0FBMkNBQzJDQUUyQ0IwMkNCMjJDQjQyQ0I2MkNCODJDQkEyQ0JDMkNCRTJDQzAyQ0MyMkNDNDJDQzYyQ0M4MkNDQTJDQ0MyQ0NFMkNEMDJDRDIyQ0Q0MkNENjJDRDgyQ0RBMkNEQzJDREUyQ0UwMkNFMjJDRUIyQ0VEQTY0MEE2NDJBNjQ0QTY0NkE2NDhBNjRBQTY0Q0E2NEVBNjUwQTY1MkE2NTRBNjU2QTY1OEE2NUFBNjVDQTY1RUE2NjJBNjY0QTY2NkE2NjhBNjZBQTY2Q0E2ODBBNjgyQTY4NEE2ODZBNjg4QTY4QUE2OENBNjhFQTY5MEE2OTJBNjk0QTY5NkE3MjJBNzI0QTcyNkE3MjhBNzJBQTcyQ0E3MkVBNzMyQTczNEE3MzZBNzM4QTczQUE3M0NBNzNFQTc0MEE3NDJBNzQ0QTc0NkE3NDhBNzRBQTc0Q0E3NEVBNzUwQTc1MkE3NTRBNzU2QTc1OEE3NUFBNzVDQTc1RUE3NjBBNzYyQTc2NEE3NjZBNzY4QTc2QUE3NkNBNzZFQTc3OUE3N0JBNzdEQTc3RUE3ODBBNzgyQTc4NEE3ODZBNzhCRkYyMS1GRjNBIiwNCglMdDogIjAxQzUwMUM4MDFDQjAxRjIxRjg4LTFGOEYxRjk4LTFGOUYxRkE4LTFGQUYxRkJDMUZDQzFGRkMiLA0KCUxtOiAiMDJCMC0wMkMxMDJDNi0wMkQxMDJFMC0wMkU0MDJFQzAyRUUwMzc0MDM3QTA1NTkwNjQwMDZFNTA2RTYwN0Y0MDdGNTA3RkEwODFBMDgyNDA4MjgwOTcxMEU0NjBFQzYxMEZDMTdENzE4NDMxQUE3MUM3OC0xQzdEMUQyQy0xRDYxMUQ3ODFEOUItMURCRjIwNzEyMDdGMjA5MC0yMDk0MkM3RDJENkYyRTJGMzAwNTMwMzEtMzAzNTMwM0IzMDlEMzA5RTMwRkMtMzBGRUEwMTVBNEY4LUE0RkRBNjBDQTY3RkE3MTctQTcxRkE3NzBBNzg4QTlDRkFBNzBBQURERkY3MEZGOUVGRjlGIiwNCglMbzogIjAxQkIwMUMwLTAxQzMwMjk0MDVEMC0wNUVBMDVGMC0wNUYyMDYyMS0wNjNGMDY0MS0wNjRBMDY2RTA2NkYwNjcxLTA2RDMwNkQ1MDZFRTA2RUYwNkZBLTA2RkMwNkZGMDcxMDA3MTItMDcyRjA3NEQtMDdBNTA3QjEwN0NBLTA3RUEwODAwLTA4MTUwOTA0LTA5MzkwOTNEMDk1MDA5NTgtMDk2MTA5NzIwOTc5LTA5N0YwOTg1LTA5OEMwOThGMDk5MDA5OTMtMDlBODA5QUEtMDlCMDA5QjIwOUI2LTA5QjkwOUJEMDlDRTA5REMwOUREMDlERi0wOUUxMDlGMDA5RjEwQTA1LTBBMEEwQTBGMEExMDBBMTMtMEEyODBBMkEtMEEzMDBBMzIwQTMzMEEzNTBBMzYwQTM4MEEzOTBBNTktMEE1QzBBNUUwQTcyLTBBNzQwQTg1LTBBOEQwQThGLTBBOTEwQTkzLTBBQTgwQUFBLTBBQjAwQUIyMEFCMzBBQjUtMEFCOTBBQkQwQUQwMEFFMDBBRTEwQjA1LTBCMEMwQjBGMEIxMDBCMTMtMEIyODBCMkEtMEIzMDBCMzIwQjMzMEIzNS0wQjM5MEIzRDBCNUMwQjVEMEI1Ri0wQjYxMEI3MTBCODMwQjg1LTBCOEEwQjhFLTBCOTAwQjkyLTBCOTUwQjk5MEI5QTBCOUMwQjlFMEI5RjBCQTMwQkE0MEJBOC0wQkFBMEJBRS0wQkI5MEJEMDBDMDUtMEMwQzBDMEUtMEMxMDBDMTItMEMyODBDMkEtMEMzMzBDMzUtMEMzOTBDM0QwQzU4MEM1OTBDNjAwQzYxMEM4NS0wQzhDMEM4RS0wQzkwMEM5Mi0wQ0E4MENBQS0wQ0IzMENCNS0wQ0I5MENCRDBDREUwQ0UwMENFMTBEMDUtMEQwQzBEMEUtMEQxMDBEMTItMEQyODBEMkEtMEQzOTBEM0QwRDYwMEQ2MTBEN0EtMEQ3RjBEODUtMEQ5NjBEOUEtMERCMTBEQjMtMERCQjBEQkQwREMwLTBEQzYwRTAxLTBFMzAwRTMyMEUzMzBFNDAtMEU0NTBFODEwRTgyMEU4NDBFODcwRTg4MEU4QTBFOEQwRTk0LTBFOTcwRTk5LTBFOUYwRUExLTBFQTMwRUE1MEVBNzBFQUEwRUFCMEVBRC0wRUIwMEVCMjBFQjMwRUJEMEVDMC0wRUM0MEVEQzBFREQwRjAwMEY0MC0wRjQ3MEY0OS0wRjZDMEY4OC0wRjhCMTAwMC0xMDJBMTAzRjEwNTAtMTA1NTEwNUEtMTA1RDEwNjExMDY1MTA2NjEwNkUtMTA3MDEwNzUtMTA4MTEwOEUxMEQwLTEwRkExMTAwLTEyNDgxMjRBLTEyNEQxMjUwLTEyNTYxMjU4MTI1QS0xMjVEMTI2MC0xMjg4MTI4QS0xMjhEMTI5MC0xMkIwMTJCMi0xMkI1MTJCOC0xMkJFMTJDMDEyQzItMTJDNTEyQzgtMTJENjEyRDgtMTMxMDEzMTItMTMxNTEzMTgtMTM1QTEzODAtMTM4RjEzQTAtMTNGNDE0MDEtMTY2QzE2NkYtMTY3RjE2ODEtMTY5QTE2QTAtMTZFQTE3MDAtMTcwQzE3MEUtMTcxMTE3MjAtMTczMTE3NDAtMTc1MTE3NjAtMTc2QzE3NkUtMTc3MDE3ODAtMTdCMzE3REMxODIwLTE4NDIxODQ0LTE4NzcxODgwLTE4QTgxOEFBMThCMC0xOEY1MTkwMC0xOTFDMTk1MC0xOTZEMTk3MC0xOTc0MTk4MC0xOUFCMTlDMS0xOUM3MUEwMC0xQTE2MUEyMC0xQTU0MUIwNS0xQjMzMUI0NS0xQjRCMUI4My0xQkEwMUJBRTFCQUYxQzAwLTFDMjMxQzRELTFDNEYxQzVBLTFDNzcxQ0U5LTFDRUMxQ0VFLTFDRjEyMTM1LTIxMzgyRDMwLTJENjUyRDgwLTJEOTYyREEwLTJEQTYyREE4LTJEQUUyREIwLTJEQjYyREI4LTJEQkUyREMwLTJEQzYyREM4LTJEQ0UyREQwLTJERDYyREQ4LTJEREUzMDA2MzAzQzMwNDEtMzA5NjMwOUYzMEExLTMwRkEzMEZGMzEwNS0zMTJEMzEzMS0zMThFMzFBMC0zMUI3MzFGMC0zMUZGMzQwMC00REI1NEUwMC05RkNCQTAwMC1BMDE0QTAxNi1BNDhDQTREMC1BNEY3QTUwMC1BNjBCQTYxMC1BNjFGQTYyQUE2MkJBNjZFQTZBMC1BNkU1QTdGQi1BODAxQTgwMy1BODA1QTgwNy1BODBBQTgwQy1BODIyQTg0MC1BODczQTg4Mi1BOEIzQThGMi1BOEY3QThGQkE5MEEtQTkyNUE5MzAtQTk0NkE5NjAtQTk3Q0E5ODQtQTlCMkFBMDAtQUEyOEFBNDAtQUE0MkFBNDQtQUE0QkFBNjAtQUE2RkFBNzEtQUE3NkFBN0FBQTgwLUFBQUZBQUIxQUFCNUFBQjZBQUI5LUFBQkRBQUMwQUFDMkFBREJBQURDQUJDMC1BQkUyQUMwMC1EN0EzRDdCMC1EN0M2RDdDQi1EN0ZCRjkwMC1GQTJERkEzMC1GQTZERkE3MC1GQUQ5RkIxREZCMUYtRkIyOEZCMkEtRkIzNkZCMzgtRkIzQ0ZCM0VGQjQwRkI0MUZCNDNGQjQ0RkI0Ni1GQkIxRkJEMy1GRDNERkQ1MC1GRDhGRkQ5Mi1GREM3RkRGMC1GREZCRkU3MC1GRTc0RkU3Ni1GRUZDRkY2Ni1GRjZGRkY3MS1GRjlERkZBMC1GRkJFRkZDMi1GRkM3RkZDQS1GRkNGRkZEMi1GRkQ3RkZEQS1GRkRDIiwNCglNOiAgIjAzMDAtMDM2RjA0ODMtMDQ4OTA1OTEtMDVCRDA1QkYwNUMxMDVDMjA1QzQwNUM1MDVDNzA2MTAtMDYxQTA2NEItMDY1RTA2NzAwNkQ2LTA2REMwNkRFLTA2RTQwNkU3MDZFODA2RUEtMDZFRDA3MTEwNzMwLTA3NEEwN0E2LTA3QjAwN0VCLTA3RjMwODE2LTA4MTkwODFCLTA4MjMwODI1LTA4MjcwODI5LTA4MkQwOTAwLTA5MDMwOTNDMDkzRS0wOTRFMDk1MS0wOTU1MDk2MjA5NjMwOTgxLTA5ODMwOUJDMDlCRS0wOUM0MDlDNzA5QzgwOUNCLTA5Q0QwOUQ3MDlFMjA5RTMwQTAxLTBBMDMwQTNDMEEzRS0wQTQyMEE0NzBBNDgwQTRCLTBBNEQwQTUxMEE3MDBBNzEwQTc1MEE4MS0wQTgzMEFCQzBBQkUtMEFDNTBBQzctMEFDOTBBQ0ItMEFDRDBBRTIwQUUzMEIwMS0wQjAzMEIzQzBCM0UtMEI0NDBCNDcwQjQ4MEI0Qi0wQjREMEI1NjBCNTcwQjYyMEI2MzBCODIwQkJFLTBCQzIwQkM2LTBCQzgwQkNBLTBCQ0QwQkQ3MEMwMS0wQzAzMEMzRS0wQzQ0MEM0Ni0wQzQ4MEM0QS0wQzREMEM1NTBDNTYwQzYyMEM2MzBDODIwQzgzMENCQzBDQkUtMENDNDBDQzYtMENDODBDQ0EtMENDRDBDRDUwQ0Q2MENFMjBDRTMwRDAyMEQwMzBEM0UtMEQ0NDBENDYtMEQ0ODBENEEtMEQ0RDBENTcwRDYyMEQ2MzBEODIwRDgzMERDQTBEQ0YtMERENDBERDYwREQ4LTBEREYwREYyMERGMzBFMzEwRTM0LTBFM0EwRTQ3LTBFNEUwRUIxMEVCNC0wRUI5MEVCQjBFQkMwRUM4LTBFQ0QwRjE4MEYxOTBGMzUwRjM3MEYzOTBGM0UwRjNGMEY3MS0wRjg0MEY4NjBGODcwRjkwLTBGOTcwRjk5LTBGQkMwRkM2MTAyQi0xMDNFMTA1Ni0xMDU5MTA1RS0xMDYwMTA2Mi0xMDY0MTA2Ny0xMDZEMTA3MS0xMDc0MTA4Mi0xMDhEMTA4RjEwOUEtMTA5RDEzNUYxNzEyLTE3MTQxNzMyLTE3MzQxNzUyMTc1MzE3NzIxNzczMTdCNi0xN0QzMTdERDE4MEItMTgwRDE4QTkxOTIwLTE5MkIxOTMwLTE5M0IxOUIwLTE5QzAxOUM4MTlDOTFBMTctMUExQjFBNTUtMUE1RTFBNjAtMUE3QzFBN0YxQjAwLTFCMDQxQjM0LTFCNDQxQjZCLTFCNzMxQjgwLTFCODIxQkExLTFCQUExQzI0LTFDMzcxQ0QwLTFDRDIxQ0Q0LTFDRTgxQ0VEMUNGMjFEQzAtMURFNjFERkQtMURGRjIwRDAtMjBGMDJDRUYtMkNGMTJERTAtMkRGRjMwMkEtMzAyRjMwOTkzMDlBQTY2Ri1BNjcyQTY3Q0E2N0RBNkYwQTZGMUE4MDJBODA2QTgwQkE4MjMtQTgyN0E4ODBBODgxQThCNC1BOEM0QThFMC1BOEYxQTkyNi1BOTJEQTk0Ny1BOTUzQTk4MC1BOTgzQTlCMy1BOUMwQUEyOS1BQTM2QUE0M0FBNENBQTREQUE3QkFBQjBBQUIyLUFBQjRBQUI3QUFCOEFBQkVBQUJGQUFDMUFCRTMtQUJFQUFCRUNBQkVERkIxRUZFMDAtRkUwRkZFMjAtRkUyNiIsDQoJTW46ICIwMzAwLTAzNkYwNDgzLTA0ODcwNTkxLTA1QkQwNUJGMDVDMTA1QzIwNUM0MDVDNTA1QzcwNjEwLTA2MUEwNjRCLTA2NUUwNjcwMDZENi0wNkRDMDZERi0wNkU0MDZFNzA2RTgwNkVBLTA2RUQwNzExMDczMC0wNzRBMDdBNi0wN0IwMDdFQi0wN0YzMDgxNi0wODE5MDgxQi0wODIzMDgyNS0wODI3MDgyOS0wODJEMDkwMC0wOTAyMDkzQzA5NDEtMDk0ODA5NEQwOTUxLTA5NTUwOTYyMDk2MzA5ODEwOUJDMDlDMS0wOUM0MDlDRDA5RTIwOUUzMEEwMTBBMDIwQTNDMEE0MTBBNDIwQTQ3MEE0ODBBNEItMEE0RDBBNTEwQTcwMEE3MTBBNzUwQTgxMEE4MjBBQkMwQUMxLTBBQzUwQUM3MEFDODBBQ0QwQUUyMEFFMzBCMDEwQjNDMEIzRjBCNDEtMEI0NDBCNEQwQjU2MEI2MjBCNjMwQjgyMEJDMDBCQ0QwQzNFLTBDNDAwQzQ2LTBDNDgwQzRBLTBDNEQwQzU1MEM1NjBDNjIwQzYzMENCQzBDQkYwQ0M2MENDQzBDQ0QwQ0UyMENFMzBENDEtMEQ0NDBENEQwRDYyMEQ2MzBEQ0EwREQyLTBERDQwREQ2MEUzMTBFMzQtMEUzQTBFNDctMEU0RTBFQjEwRUI0LTBFQjkwRUJCMEVCQzBFQzgtMEVDRDBGMTgwRjE5MEYzNTBGMzcwRjM5MEY3MS0wRjdFMEY4MC0wRjg0MEY4NjBGODcwRjkwLTBGOTcwRjk5LTBGQkMwRkM2MTAyRC0xMDMwMTAzMi0xMDM3MTAzOTEwM0ExMDNEMTAzRTEwNTgxMDU5MTA1RS0xMDYwMTA3MS0xMDc0MTA4MjEwODUxMDg2MTA4RDEwOUQxMzVGMTcxMi0xNzE0MTczMi0xNzM0MTc1MjE3NTMxNzcyMTc3MzE3QjctMTdCRDE3QzYxN0M5LTE3RDMxN0REMTgwQi0xODBEMThBOTE5MjAtMTkyMjE5MjcxOTI4MTkzMjE5MzktMTkzQjFBMTcxQTE4MUE1NjFBNTgtMUE1RTFBNjAxQTYyMUE2NS0xQTZDMUE3My0xQTdDMUE3RjFCMDAtMUIwMzFCMzQxQjM2LTFCM0ExQjNDMUI0MjFCNkItMUI3MzFCODAxQjgxMUJBMi0xQkE1MUJBODFCQTkxQzJDLTFDMzMxQzM2MUMzNzFDRDAtMUNEMjFDRDQtMUNFMDFDRTItMUNFODFDRUQxREMwLTFERTYxREZELTFERkYyMEQwLTIwREMyMEUxMjBFNS0yMEYwMkNFRi0yQ0YxMkRFMC0yREZGMzAyQS0zMDJGMzA5OTMwOUFBNjZGQTY3Q0E2N0RBNkYwQTZGMUE4MDJBODA2QTgwQkE4MjVBODI2QThDNEE4RTAtQThGMUE5MjYtQTkyREE5NDctQTk1MUE5ODAtQTk4MkE5QjNBOUI2LUE5QjlBOUJDQUEyOS1BQTJFQUEzMUFBMzJBQTM1QUEzNkFBNDNBQTRDQUFCMEFBQjItQUFCNEFBQjdBQUI4QUFCRUFBQkZBQUMxQUJFNUFCRThBQkVERkIxRUZFMDAtRkUwRkZFMjAtRkUyNiIsDQoJTWM6ICIwOTAzMDkzRS0wOTQwMDk0OS0wOTRDMDk0RTA5ODIwOTgzMDlCRS0wOUMwMDlDNzA5QzgwOUNCMDlDQzA5RDcwQTAzMEEzRS0wQTQwMEE4MzBBQkUtMEFDMDBBQzkwQUNCMEFDQzBCMDIwQjAzMEIzRTBCNDAwQjQ3MEI0ODBCNEIwQjRDMEI1NzBCQkUwQkJGMEJDMTBCQzIwQkM2LTBCQzgwQkNBLTBCQ0MwQkQ3MEMwMS0wQzAzMEM0MS0wQzQ0MEM4MjBDODMwQ0JFMENDMC0wQ0M0MENDNzBDQzgwQ0NBMENDQjBDRDUwQ0Q2MEQwMjBEMDMwRDNFLTBENDAwRDQ2LTBENDgwRDRBLTBENEMwRDU3MEQ4MjBEODMwRENGLTBERDEwREQ4LTBEREYwREYyMERGMzBGM0UwRjNGMEY3RjEwMkIxMDJDMTAzMTEwMzgxMDNCMTAzQzEwNTYxMDU3MTA2Mi0xMDY0MTA2Ny0xMDZEMTA4MzEwODQxMDg3LTEwOEMxMDhGMTA5QS0xMDlDMTdCNjE3QkUtMTdDNTE3QzcxN0M4MTkyMy0xOTI2MTkyOS0xOTJCMTkzMDE5MzExOTMzLTE5MzgxOUIwLTE5QzAxOUM4MTlDOTFBMTktMUExQjFBNTUxQTU3MUE2MTFBNjMxQTY0MUE2RC0xQTcyMUIwNDFCMzUxQjNCMUIzRC0xQjQxMUI0MzFCNDQxQjgyMUJBMTFCQTYxQkE3MUJBQTFDMjQtMUMyQjFDMzQxQzM1MUNFMTFDRjJBODIzQTgyNEE4MjdBODgwQTg4MUE4QjQtQThDM0E5NTJBOTUzQTk4M0E5QjRBOUI1QTlCQUE5QkJBOUJELUE5QzBBQTJGQUEzMEFBMzNBQTM0QUE0REFBN0JBQkUzQUJFNEFCRTZBQkU3QUJFOUFCRUFBQkVDIiwNCglNZTogIjA0ODgwNDg5MDZERTIwREQtMjBFMDIwRTItMjBFNEE2NzAtQTY3MiIsDQoJTjogICIwMDMwLTAwMzkwMEIyMDBCMzAwQjkwMEJDLTAwQkUwNjYwLTA2NjkwNkYwLTA2RjkwN0MwLTA3QzkwOTY2LTA5NkYwOUU2LTA5RUYwOUY0LTA5RjkwQTY2LTBBNkYwQUU2LTBBRUYwQjY2LTBCNkYwQkU2LTBCRjIwQzY2LTBDNkYwQzc4LTBDN0UwQ0U2LTBDRUYwRDY2LTBENzUwRTUwLTBFNTkwRUQwLTBFRDkwRjIwLTBGMzMxMDQwLTEwNDkxMDkwLTEwOTkxMzY5LTEzN0MxNkVFLTE2RjAxN0UwLTE3RTkxN0YwLTE3RjkxODEwLTE4MTkxOTQ2LTE5NEYxOUQwLTE5REExQTgwLTFBODkxQTkwLTFBOTkxQjUwLTFCNTkxQkIwLTFCQjkxQzQwLTFDNDkxQzUwLTFDNTkyMDcwMjA3NC0yMDc5MjA4MC0yMDg5MjE1MC0yMTgyMjE4NS0yMTg5MjQ2MC0yNDlCMjRFQS0yNEZGMjc3Ni0yNzkzMkNGRDMwMDczMDIxLTMwMjkzMDM4LTMwM0EzMTkyLTMxOTUzMjIwLTMyMjkzMjUxLTMyNUYzMjgwLTMyODkzMkIxLTMyQkZBNjIwLUE2MjlBNkU2LUE2RUZBODMwLUE4MzVBOEQwLUE4RDlBOTAwLUE5MDlBOUQwLUE5RDlBQTUwLUFBNTlBQkYwLUFCRjlGRjEwLUZGMTkiLA0KCU5kOiAiMDAzMC0wMDM5MDY2MC0wNjY5MDZGMC0wNkY5MDdDMC0wN0M5MDk2Ni0wOTZGMDlFNi0wOUVGMEE2Ni0wQTZGMEFFNi0wQUVGMEI2Ni0wQjZGMEJFNi0wQkVGMEM2Ni0wQzZGMENFNi0wQ0VGMEQ2Ni0wRDZGMEU1MC0wRTU5MEVEMC0wRUQ5MEYyMC0wRjI5MTA0MC0xMDQ5MTA5MC0xMDk5MTdFMC0xN0U5MTgxMC0xODE5MTk0Ni0xOTRGMTlEMC0xOURBMUE4MC0xQTg5MUE5MC0xQTk5MUI1MC0xQjU5MUJCMC0xQkI5MUM0MC0xQzQ5MUM1MC0xQzU5QTYyMC1BNjI5QThEMC1BOEQ5QTkwMC1BOTA5QTlEMC1BOUQ5QUE1MC1BQTU5QUJGMC1BQkY5RkYxMC1GRjE5IiwNCglObDogIjE2RUUtMTZGMDIxNjAtMjE4MjIxODUtMjE4ODMwMDczMDIxLTMwMjkzMDM4LTMwM0FBNkU2LUE2RUYiLA0KCU5vOiAiMDBCMjAwQjMwMEI5MDBCQy0wMEJFMDlGNC0wOUY5MEJGMC0wQkYyMEM3OC0wQzdFMEQ3MC0wRDc1MEYyQS0wRjMzMTM2OS0xMzdDMTdGMC0xN0Y5MjA3MDIwNzQtMjA3OTIwODAtMjA4OTIxNTAtMjE1RjIxODkyNDYwLTI0OUIyNEVBLTI0RkYyNzc2LTI3OTMyQ0ZEMzE5Mi0zMTk1MzIyMC0zMjI5MzI1MS0zMjVGMzI4MC0zMjg5MzJCMS0zMkJGQTgzMC1BODM1IiwNCglQOiAgIjAwMjEtMDAyMzAwMjUtMDAyQTAwMkMtMDAyRjAwM0EwMDNCMDAzRjAwNDAwMDVCLTAwNUQwMDVGMDA3QjAwN0QwMEExMDBBQjAwQjcwMEJCMDBCRjAzN0UwMzg3MDU1QS0wNTVGMDU4OTA1OEEwNUJFMDVDMDA1QzMwNUM2MDVGMzA1RjQwNjA5MDYwQTA2MEMwNjBEMDYxQjA2MUUwNjFGMDY2QS0wNjZEMDZENDA3MDAtMDcwRDA3RjctMDdGOTA4MzAtMDgzRTA5NjQwOTY1MDk3MDBERjQwRTRGMEU1QTBFNUIwRjA0LTBGMTIwRjNBLTBGM0QwRjg1MEZEMC0wRkQ0MTA0QS0xMDRGMTBGQjEzNjEtMTM2ODE0MDAxNjZEMTY2RTE2OUIxNjlDMTZFQi0xNkVEMTczNTE3MzYxN0Q0LTE3RDYxN0Q4LTE3REExODAwLTE4MEExOTQ0MTk0NTE5REUxOURGMUExRTFBMUYxQUEwLTFBQTYxQUE4LTFBQUQxQjVBLTFCNjAxQzNCLTFDM0YxQzdFMUM3RjFDRDMyMDEwLTIwMjcyMDMwLTIwNDMyMDQ1LTIwNTEyMDUzLTIwNUUyMDdEMjA3RTIwOEQyMDhFMjMyOTIzMkEyNzY4LTI3NzUyN0M1MjdDNjI3RTYtMjdFRjI5ODMtMjk5ODI5RDgtMjlEQjI5RkMyOUZEMkNGOS0yQ0ZDMkNGRTJDRkYyRTAwLTJFMkUyRTMwMkUzMTMwMDEtMzAwMzMwMDgtMzAxMTMwMTQtMzAxRjMwMzAzMDNEMzBBMDMwRkJBNEZFQTRGRkE2MEQtQTYwRkE2NzNBNjdFQTZGMi1BNkY3QTg3NC1BODc3QThDRUE4Q0ZBOEY4LUE4RkFBOTJFQTkyRkE5NUZBOUMxLUE5Q0RBOURFQTlERkFBNUMtQUE1RkFBREVBQURGQUJFQkZEM0VGRDNGRkUxMC1GRTE5RkUzMC1GRTUyRkU1NC1GRTYxRkU2M0ZFNjhGRTZBRkU2QkZGMDEtRkYwM0ZGMDUtRkYwQUZGMEMtRkYwRkZGMUFGRjFCRkYxRkZGMjBGRjNCLUZGM0RGRjNGRkY1QkZGNURGRjVGLUZGNjUiLA0KCVBkOiAiMDAyRDA1OEEwNUJFMTQwMDE4MDYyMDEwLTIwMTUyRTE3MkUxQTMwMUMzMDMwMzBBMEZFMzFGRTMyRkU1OEZFNjNGRjBEIiwNCglQczogIjAwMjgwMDVCMDA3QjBGM0EwRjNDMTY5QjIwMUEyMDFFMjA0NTIwN0QyMDhEMjMyOTI3NjgyNzZBMjc2QzI3NkUyNzcwMjc3MjI3NzQyN0M1MjdFNjI3RTgyN0VBMjdFQzI3RUUyOTgzMjk4NTI5ODcyOTg5Mjk4QjI5OEQyOThGMjk5MTI5OTMyOTk1Mjk5NzI5RDgyOURBMjlGQzJFMjIyRTI0MkUyNjJFMjgzMDA4MzAwQTMwMEMzMDBFMzAxMDMwMTQzMDE2MzAxODMwMUEzMDFERkQzRUZFMTdGRTM1RkUzN0ZFMzlGRTNCRkUzREZFM0ZGRTQxRkU0M0ZFNDdGRTU5RkU1QkZFNURGRjA4RkYzQkZGNUJGRjVGRkY2MiIsDQoJUGU6ICIwMDI5MDA1RDAwN0QwRjNCMEYzRDE2OUMyMDQ2MjA3RTIwOEUyMzJBMjc2OTI3NkIyNzZEMjc2RjI3NzEyNzczMjc3NTI3QzYyN0U3MjdFOTI3RUIyN0VEMjdFRjI5ODQyOTg2Mjk4ODI5OEEyOThDMjk4RTI5OTAyOTkyMjk5NDI5OTYyOTk4MjlEOTI5REIyOUZEMkUyMzJFMjUyRTI3MkUyOTMwMDkzMDBCMzAwRDMwMEYzMDExMzAxNTMwMTczMDE5MzAxQjMwMUUzMDFGRkQzRkZFMThGRTM2RkUzOEZFM0FGRTNDRkUzRUZFNDBGRTQyRkU0NEZFNDhGRTVBRkU1Q0ZFNUVGRjA5RkYzREZGNURGRjYwRkY2MyIsDQoJUGk6ICIwMEFCMjAxODIwMUIyMDFDMjAxRjIwMzkyRTAyMkUwNDJFMDkyRTBDMkUxQzJFMjAiLA0KCVBmOiAiMDBCQjIwMTkyMDFEMjAzQTJFMDMyRTA1MkUwQTJFMEQyRTFEMkUyMSIsDQoJUGM6ICIwMDVGMjAzRjIwNDAyMDU0RkUzM0ZFMzRGRTRELUZFNEZGRjNGIiwNCglQbzogIjAwMjEtMDAyMzAwMjUtMDAyNzAwMkEwMDJDMDAyRTAwMkYwMDNBMDAzQjAwM0YwMDQwMDA1QzAwQTEwMEI3MDBCRjAzN0UwMzg3MDU1QS0wNTVGMDU4OTA1QzAwNUMzMDVDNjA1RjMwNUY0MDYwOTA2MEEwNjBDMDYwRDA2MUIwNjFFMDYxRjA2NkEtMDY2RDA2RDQwNzAwLTA3MEQwN0Y3LTA3RjkwODMwLTA4M0UwOTY0MDk2NTA5NzAwREY0MEU0RjBFNUEwRTVCMEYwNC0wRjEyMEY4NTBGRDAtMEZENDEwNEEtMTA0RjEwRkIxMzYxLTEzNjgxNjZEMTY2RTE2RUItMTZFRDE3MzUxNzM2MTdENC0xN0Q2MTdEOC0xN0RBMTgwMC0xODA1MTgwNy0xODBBMTk0NDE5NDUxOURFMTlERjFBMUUxQTFGMUFBMC0xQUE2MUFBOC0xQUFEMUI1QS0xQjYwMUMzQi0xQzNGMUM3RTFDN0YxQ0QzMjAxNjIwMTcyMDIwLTIwMjcyMDMwLTIwMzgyMDNCLTIwM0UyMDQxLTIwNDMyMDQ3LTIwNTEyMDUzMjA1NS0yMDVFMkNGOS0yQ0ZDMkNGRTJDRkYyRTAwMkUwMTJFMDYtMkUwODJFMEIyRTBFLTJFMTYyRTE4MkUxOTJFMUIyRTFFMkUxRjJFMkEtMkUyRTJFMzAyRTMxMzAwMS0zMDAzMzAzRDMwRkJBNEZFQTRGRkE2MEQtQTYwRkE2NzNBNjdFQTZGMi1BNkY3QTg3NC1BODc3QThDRUE4Q0ZBOEY4LUE4RkFBOTJFQTkyRkE5NUZBOUMxLUE5Q0RBOURFQTlERkFBNUMtQUE1RkFBREVBQURGQUJFQkZFMTAtRkUxNkZFMTlGRTMwRkU0NUZFNDZGRTQ5LUZFNENGRTUwLUZFNTJGRTU0LUZFNTdGRTVGLUZFNjFGRTY4RkU2QUZFNkJGRjAxLUZGMDNGRjA1LUZGMDdGRjBBRkYwQ0ZGMEVGRjBGRkYxQUZGMUJGRjFGRkYyMEZGM0NGRjYxRkY2NEZGNjUiLA0KCVM6ICAiMDAyNDAwMkIwMDNDLTAwM0UwMDVFMDA2MDAwN0MwMDdFMDBBMi0wMEE5MDBBQzAwQUUtMDBCMTAwQjQwMEI2MDBCODAwRDcwMEY3MDJDMi0wMkM1MDJEMi0wMkRGMDJFNS0wMkVCMDJFRDAyRUYtMDJGRjAzNzUwMzg0MDM4NTAzRjYwNDgyMDYwNi0wNjA4MDYwQjA2MEUwNjBGMDZFOTA2RkQwNkZFMDdGNjA5RjIwOUYzMDlGQTA5RkIwQUYxMEI3MDBCRjMtMEJGQTBDN0YwQ0YxMENGMjBENzkwRTNGMEYwMS0wRjAzMEYxMy0wRjE3MEYxQS0wRjFGMEYzNDBGMzYwRjM4MEZCRS0wRkM1MEZDNy0wRkNDMEZDRTBGQ0YwRkQ1LTBGRDgxMDlFMTA5RjEzNjAxMzkwLTEzOTkxN0RCMTk0MDE5RTAtMTlGRjFCNjEtMUI2QTFCNzQtMUI3QzFGQkQxRkJGLTFGQzExRkNELTFGQ0YxRkRELTFGREYxRkVELTFGRUYxRkZEMUZGRTIwNDQyMDUyMjA3QS0yMDdDMjA4QS0yMDhDMjBBMC0yMEI4MjEwMDIxMDEyMTAzLTIxMDYyMTA4MjEwOTIxMTQyMTE2LTIxMTgyMTFFLTIxMjMyMTI1MjEyNzIxMjkyMTJFMjEzQTIxM0IyMTQwLTIxNDQyMTRBLTIxNEQyMTRGMjE5MC0yMzI4MjMyQi0yM0U4MjQwMC0yNDI2MjQ0MC0yNDRBMjQ5Qy0yNEU5MjUwMC0yNkNEMjZDRi0yNkUxMjZFMzI2RTgtMjZGRjI3MDEtMjcwNDI3MDYtMjcwOTI3MEMtMjcyNzI3MjktMjc0QjI3NEQyNzRGLTI3NTIyNzU2LTI3NUUyNzYxLTI3NjcyNzk0Mjc5OC0yN0FGMjdCMS0yN0JFMjdDMC0yN0M0MjdDNy0yN0NBMjdDQzI3RDAtMjdFNTI3RjAtMjk4MjI5OTktMjlENzI5REMtMjlGQjI5RkUtMkI0QzJCNTAtMkI1OTJDRTUtMkNFQTJFODAtMkU5OTJFOUItMkVGMzJGMDAtMkZENTJGRjAtMkZGQjMwMDQzMDEyMzAxMzMwMjAzMDM2MzAzNzMwM0UzMDNGMzA5QjMwOUMzMTkwMzE5MTMxOTYtMzE5RjMxQzAtMzFFMzMyMDAtMzIxRTMyMkEtMzI1MDMyNjAtMzI3RjMyOEEtMzJCMDMyQzAtMzJGRTMzMDAtMzNGRjREQzAtNERGRkE0OTAtQTRDNkE3MDAtQTcxNkE3MjBBNzIxQTc4OUE3OEFBODI4LUE4MkJBODM2LUE4MzlBQTc3LUFBNzlGQjI5RkRGQ0ZERkRGRTYyRkU2NC1GRTY2RkU2OUZGMDRGRjBCRkYxQy1GRjFFRkYzRUZGNDBGRjVDRkY1RUZGRTAtRkZFNkZGRTgtRkZFRUZGRkNGRkZEIiwNCglTbTogIjAwMkIwMDNDLTAwM0UwMDdDMDA3RTAwQUMwMEIxMDBENzAwRjcwM0Y2MDYwNi0wNjA4MjA0NDIwNTIyMDdBLTIwN0MyMDhBLTIwOEMyMTQwLTIxNDQyMTRCMjE5MC0yMTk0MjE5QTIxOUIyMUEwMjFBMzIxQTYyMUFFMjFDRTIxQ0YyMUQyMjFENDIxRjQtMjJGRjIzMDgtMjMwQjIzMjAyMzIxMjM3QzIzOUItMjNCMzIzREMtMjNFMTI1QjcyNUMxMjVGOC0yNUZGMjY2RjI3QzAtMjdDNDI3QzctMjdDQTI3Q0MyN0QwLTI3RTUyN0YwLTI3RkYyOTAwLTI5ODIyOTk5LTI5RDcyOURDLTI5RkIyOUZFLTJBRkYyQjMwLTJCNDQyQjQ3LTJCNENGQjI5RkU2MkZFNjQtRkU2NkZGMEJGRjFDLUZGMUVGRjVDRkY1RUZGRTJGRkU5LUZGRUMiLA0KCVNjOiAiMDAyNDAwQTItMDBBNTA2MEIwOUYyMDlGMzA5RkIwQUYxMEJGOTBFM0YxN0RCMjBBMC0yMEI4QTgzOEZERkNGRTY5RkYwNEZGRTBGRkUxRkZFNUZGRTYiLA0KCVNrOiAiMDA1RTAwNjAwMEE4MDBBRjAwQjQwMEI4MDJDMi0wMkM1MDJEMi0wMkRGMDJFNS0wMkVCMDJFRDAyRUYtMDJGRjAzNzUwMzg0MDM4NTFGQkQxRkJGLTFGQzExRkNELTFGQ0YxRkRELTFGREYxRkVELTFGRUYxRkZEMUZGRTMwOUIzMDlDQTcwMC1BNzE2QTcyMEE3MjFBNzg5QTc4QUZGM0VGRjQwRkZFMyIsDQoJU286ICIwMEE2MDBBNzAwQTkwMEFFMDBCMDAwQjYwNDgyMDYwRTA2MEYwNkU5MDZGRDA2RkUwN0Y2MDlGQTBCNzAwQkYzLTBCRjgwQkZBMEM3RjBDRjEwQ0YyMEQ3OTBGMDEtMEYwMzBGMTMtMEYxNzBGMUEtMEYxRjBGMzQwRjM2MEYzODBGQkUtMEZDNTBGQzctMEZDQzBGQ0UwRkNGMEZENS0wRkQ4MTA5RTEwOUYxMzYwMTM5MC0xMzk5MTk0MDE5RTAtMTlGRjFCNjEtMUI2QTFCNzQtMUI3QzIxMDAyMTAxMjEwMy0yMTA2MjEwODIxMDkyMTE0MjExNi0yMTE4MjExRS0yMTIzMjEyNTIxMjcyMTI5MjEyRTIxM0EyMTNCMjE0QTIxNEMyMTREMjE0RjIxOTUtMjE5OTIxOUMtMjE5RjIxQTEyMUEyMjFBNDIxQTUyMUE3LTIxQUQyMUFGLTIxQ0QyMUQwMjFEMTIxRDMyMUQ1LTIxRjMyMzAwLTIzMDcyMzBDLTIzMUYyMzIyLTIzMjgyMzJCLTIzN0IyMzdELTIzOUEyM0I0LTIzREIyM0UyLTIzRTgyNDAwLTI0MjYyNDQwLTI0NEEyNDlDLTI0RTkyNTAwLTI1QjYyNUI4LTI1QzAyNUMyLTI1RjcyNjAwLTI2NkUyNjcwLTI2Q0QyNkNGLTI2RTEyNkUzMjZFOC0yNkZGMjcwMS0yNzA0MjcwNi0yNzA5MjcwQy0yNzI3MjcyOS0yNzRCMjc0RDI3NEYtMjc1MjI3NTYtMjc1RTI3NjEtMjc2NzI3OTQyNzk4LTI3QUYyN0IxLTI3QkUyODAwLTI4RkYyQjAwLTJCMkYyQjQ1MkI0NjJCNTAtMkI1OTJDRTUtMkNFQTJFODAtMkU5OTJFOUItMkVGMzJGMDAtMkZENTJGRjAtMkZGQjMwMDQzMDEyMzAxMzMwMjAzMDM2MzAzNzMwM0UzMDNGMzE5MDMxOTEzMTk2LTMxOUYzMUMwLTMxRTMzMjAwLTMyMUUzMjJBLTMyNTAzMjYwLTMyN0YzMjhBLTMyQjAzMkMwLTMyRkUzMzAwLTMzRkY0REMwLTRERkZBNDkwLUE0QzZBODI4LUE4MkJBODM2QTgzN0E4MzlBQTc3LUFBNzlGREZERkZFNEZGRThGRkVERkZFRUZGRkNGRkZEIiwNCglaOiAgIjAwMjAwMEEwMTY4MDE4MEUyMDAwLTIwMEEyMDI4MjAyOTIwMkYyMDVGMzAwMCIsDQoJWnM6ICIwMDIwMDBBMDE2ODAxODBFMjAwMC0yMDBBMjAyRjIwNUYzMDAwIiwNCglabDogIjIwMjgiLA0KCVpwOiAiMjAyOSINCn07DQoNCnZhciBVbmljb2RlQmxvY2tzID0gew0KCUluQmFzaWNfTGF0aW46ICIwMDAwLTAwN0YiLA0KCUluTGF0aW5fMV9TdXBwbGVtZW50OiAiMDA4MC0wMEZGIiwNCglJbkxhdGluX0V4dGVuZGVkX0E6ICIwMTAwLTAxN0YiLA0KCUluTGF0aW5fRXh0ZW5kZWRfQjogIjAxODAtMDI0RiIsDQoJSW5JUEFfRXh0ZW5zaW9uczogIjAyNTAtMDJBRiIsDQoJSW5TcGFjaW5nX01vZGlmaWVyX0xldHRlcnM6ICIwMkIwLTAyRkYiLA0KCUluQ29tYmluaW5nX0RpYWNyaXRpY2FsX01hcmtzOiAiMDMwMC0wMzZGIiwNCglJbkdyZWVrX2FuZF9Db3B0aWM6ICIwMzcwLTAzRkYiLA0KCUluQ3lyaWxsaWM6ICIwNDAwLTA0RkYiLA0KCUluQ3lyaWxsaWNfU3VwcGxlbWVudDogIjA1MDAtMDUyRiIsDQoJSW5Bcm1lbmlhbjogIjA1MzAtMDU4RiIsDQoJSW5IZWJyZXc6ICIwNTkwLTA1RkYiLA0KCUluQXJhYmljOiAiMDYwMC0wNkZGIiwNCglJblN5cmlhYzogIjA3MDAtMDc0RiIsDQoJSW5BcmFiaWNfU3VwcGxlbWVudDogIjA3NTAtMDc3RiIsDQoJSW5UaGFhbmE6ICIwNzgwLTA3QkYiLA0KCUluTktvOiAiMDdDMC0wN0ZGIiwNCglJblNhbWFyaXRhbjogIjA4MDAtMDgzRiIsDQoJSW5EZXZhbmFnYXJpOiAiMDkwMC0wOTdGIiwNCglJbkJlbmdhbGk6ICIwOTgwLTA5RkYiLA0KCUluR3VybXVraGk6ICIwQTAwLTBBN0YiLA0KCUluR3VqYXJhdGk6ICIwQTgwLTBBRkYiLA0KCUluT3JpeWE6ICIwQjAwLTBCN0YiLA0KCUluVGFtaWw6ICIwQjgwLTBCRkYiLA0KCUluVGVsdWd1OiAiMEMwMC0wQzdGIiwNCglJbkthbm5hZGE6ICIwQzgwLTBDRkYiLA0KCUluTWFsYXlhbGFtOiAiMEQwMC0wRDdGIiwNCglJblNpbmhhbGE6ICIwRDgwLTBERkYiLA0KCUluVGhhaTogIjBFMDAtMEU3RiIsDQoJSW5MYW86ICIwRTgwLTBFRkYiLA0KCUluVGliZXRhbjogIjBGMDAtMEZGRiIsDQoJSW5NeWFubWFyOiAiMTAwMC0xMDlGIiwNCglJbkdlb3JnaWFuOiAiMTBBMC0xMEZGIiwNCglJbkhhbmd1bF9KYW1vOiAiMTEwMC0xMUZGIiwNCglJbkV0aGlvcGljOiAiMTIwMC0xMzdGIiwNCglJbkV0aGlvcGljX1N1cHBsZW1lbnQ6ICIxMzgwLTEzOUYiLA0KCUluQ2hlcm9rZWU6ICIxM0EwLTEzRkYiLA0KCUluVW5pZmllZF9DYW5hZGlhbl9BYm9yaWdpbmFsX1N5bGxhYmljczogIjE0MDAtMTY3RiIsDQoJSW5PZ2hhbTogIjE2ODAtMTY5RiIsDQoJSW5SdW5pYzogIjE2QTAtMTZGRiIsDQoJSW5UYWdhbG9nOiAiMTcwMC0xNzFGIiwNCglJbkhhbnVub286ICIxNzIwLTE3M0YiLA0KCUluQnVoaWQ6ICIxNzQwLTE3NUYiLA0KCUluVGFnYmFud2E6ICIxNzYwLTE3N0YiLA0KCUluS2htZXI6ICIxNzgwLTE3RkYiLA0KCUluTW9uZ29saWFuOiAiMTgwMC0xOEFGIiwNCglJblVuaWZpZWRfQ2FuYWRpYW5fQWJvcmlnaW5hbF9TeWxsYWJpY3NfRXh0ZW5kZWQ6ICIxOEIwLTE4RkYiLA0KCUluTGltYnU6ICIxOTAwLTE5NEYiLA0KCUluVGFpX0xlOiAiMTk1MC0xOTdGIiwNCglJbk5ld19UYWlfTHVlOiAiMTk4MC0xOURGIiwNCglJbktobWVyX1N5bWJvbHM6ICIxOUUwLTE5RkYiLA0KCUluQnVnaW5lc2U6ICIxQTAwLTFBMUYiLA0KCUluVGFpX1RoYW06ICIxQTIwLTFBQUYiLA0KCUluQmFsaW5lc2U6ICIxQjAwLTFCN0YiLA0KCUluU3VuZGFuZXNlOiAiMUI4MC0xQkJGIiwNCglJbkxlcGNoYTogIjFDMDAtMUM0RiIsDQoJSW5PbF9DaGlraTogIjFDNTAtMUM3RiIsDQoJSW5WZWRpY19FeHRlbnNpb25zOiAiMUNEMC0xQ0ZGIiwNCglJblBob25ldGljX0V4dGVuc2lvbnM6ICIxRDAwLTFEN0YiLA0KCUluUGhvbmV0aWNfRXh0ZW5zaW9uc19TdXBwbGVtZW50OiAiMUQ4MC0xREJGIiwNCglJbkNvbWJpbmluZ19EaWFjcml0aWNhbF9NYXJrc19TdXBwbGVtZW50OiAiMURDMC0xREZGIiwNCglJbkxhdGluX0V4dGVuZGVkX0FkZGl0aW9uYWw6ICIxRTAwLTFFRkYiLA0KCUluR3JlZWtfRXh0ZW5kZWQ6ICIxRjAwLTFGRkYiLA0KCUluR2VuZXJhbF9QdW5jdHVhdGlvbjogIjIwMDAtMjA2RiIsDQoJSW5TdXBlcnNjcmlwdHNfYW5kX1N1YnNjcmlwdHM6ICIyMDcwLTIwOUYiLA0KCUluQ3VycmVuY3lfU3ltYm9sczogIjIwQTAtMjBDRiIsDQoJSW5Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3NfZm9yX1N5bWJvbHM6ICIyMEQwLTIwRkYiLA0KCUluTGV0dGVybGlrZV9TeW1ib2xzOiAiMjEwMC0yMTRGIiwNCglJbk51bWJlcl9Gb3JtczogIjIxNTAtMjE4RiIsDQoJSW5BcnJvd3M6ICIyMTkwLTIxRkYiLA0KCUluTWF0aGVtYXRpY2FsX09wZXJhdG9yczogIjIyMDAtMjJGRiIsDQoJSW5NaXNjZWxsYW5lb3VzX1RlY2huaWNhbDogIjIzMDAtMjNGRiIsDQoJSW5Db250cm9sX1BpY3R1cmVzOiAiMjQwMC0yNDNGIiwNCglJbk9wdGljYWxfQ2hhcmFjdGVyX1JlY29nbml0aW9uOiAiMjQ0MC0yNDVGIiwNCglJbkVuY2xvc2VkX0FscGhhbnVtZXJpY3M6ICIyNDYwLTI0RkYiLA0KCUluQm94X0RyYXdpbmc6ICIyNTAwLTI1N0YiLA0KCUluQmxvY2tfRWxlbWVudHM6ICIyNTgwLTI1OUYiLA0KCUluR2VvbWV0cmljX1NoYXBlczogIjI1QTAtMjVGRiIsDQoJSW5NaXNjZWxsYW5lb3VzX1N5bWJvbHM6ICIyNjAwLTI2RkYiLA0KCUluRGluZ2JhdHM6ICIyNzAwLTI3QkYiLA0KCUluTWlzY2VsbGFuZW91c19NYXRoZW1hdGljYWxfU3ltYm9sc19BOiAiMjdDMC0yN0VGIiwNCglJblN1cHBsZW1lbnRhbF9BcnJvd3NfQTogIjI3RjAtMjdGRiIsDQoJSW5CcmFpbGxlX1BhdHRlcm5zOiAiMjgwMC0yOEZGIiwNCglJblN1cHBsZW1lbnRhbF9BcnJvd3NfQjogIjI5MDAtMjk3RiIsDQoJSW5NaXNjZWxsYW5lb3VzX01hdGhlbWF0aWNhbF9TeW1ib2xzX0I6ICIyOTgwLTI5RkYiLA0KCUluU3VwcGxlbWVudGFsX01hdGhlbWF0aWNhbF9PcGVyYXRvcnM6ICIyQTAwLTJBRkYiLA0KCUluTWlzY2VsbGFuZW91c19TeW1ib2xzX2FuZF9BcnJvd3M6ICIyQjAwLTJCRkYiLA0KCUluR2xhZ29saXRpYzogIjJDMDAtMkM1RiIsDQoJSW5MYXRpbl9FeHRlbmRlZF9DOiAiMkM2MC0yQzdGIiwNCglJbkNvcHRpYzogIjJDODAtMkNGRiIsDQoJSW5HZW9yZ2lhbl9TdXBwbGVtZW50OiAiMkQwMC0yRDJGIiwNCglJblRpZmluYWdoOiAiMkQzMC0yRDdGIiwNCglJbkV0aGlvcGljX0V4dGVuZGVkOiAiMkQ4MC0yRERGIiwNCglJbkN5cmlsbGljX0V4dGVuZGVkX0E6ICIyREUwLTJERkYiLA0KCUluU3VwcGxlbWVudGFsX1B1bmN0dWF0aW9uOiAiMkUwMC0yRTdGIiwNCglJbkNKS19SYWRpY2Fsc19TdXBwbGVtZW50OiAiMkU4MC0yRUZGIiwNCglJbkthbmd4aV9SYWRpY2FsczogIjJGMDAtMkZERiIsDQoJSW5JZGVvZ3JhcGhpY19EZXNjcmlwdGlvbl9DaGFyYWN0ZXJzOiAiMkZGMC0yRkZGIiwNCglJbkNKS19TeW1ib2xzX2FuZF9QdW5jdHVhdGlvbjogIjMwMDAtMzAzRiIsDQoJSW5IaXJhZ2FuYTogIjMwNDAtMzA5RiIsDQoJSW5LYXRha2FuYTogIjMwQTAtMzBGRiIsDQoJSW5Cb3BvbW9mbzogIjMxMDAtMzEyRiIsDQoJSW5IYW5ndWxfQ29tcGF0aWJpbGl0eV9KYW1vOiAiMzEzMC0zMThGIiwNCglJbkthbmJ1bjogIjMxOTAtMzE5RiIsDQoJSW5Cb3BvbW9mb19FeHRlbmRlZDogIjMxQTAtMzFCRiIsDQoJSW5DSktfU3Ryb2tlczogIjMxQzAtMzFFRiIsDQoJSW5LYXRha2FuYV9QaG9uZXRpY19FeHRlbnNpb25zOiAiMzFGMC0zMUZGIiwNCglJbkVuY2xvc2VkX0NKS19MZXR0ZXJzX2FuZF9Nb250aHM6ICIzMjAwLTMyRkYiLA0KCUluQ0pLX0NvbXBhdGliaWxpdHk6ICIzMzAwLTMzRkYiLA0KCUluQ0pLX1VuaWZpZWRfSWRlb2dyYXBoc19FeHRlbnNpb25fQTogIjM0MDAtNERCRiIsDQoJSW5ZaWppbmdfSGV4YWdyYW1fU3ltYm9sczogIjREQzAtNERGRiIsDQoJSW5DSktfVW5pZmllZF9JZGVvZ3JhcGhzOiAiNEUwMC05RkZGIiwNCglJbllpX1N5bGxhYmxlczogIkEwMDAtQTQ4RiIsDQoJSW5ZaV9SYWRpY2FsczogIkE0OTAtQTRDRiIsDQoJSW5MaXN1OiAiQTREMC1BNEZGIiwNCglJblZhaTogIkE1MDAtQTYzRiIsDQoJSW5DeXJpbGxpY19FeHRlbmRlZF9COiAiQTY0MC1BNjlGIiwNCglJbkJhbXVtOiAiQTZBMC1BNkZGIiwNCglJbk1vZGlmaWVyX1RvbmVfTGV0dGVyczogIkE3MDAtQTcxRiIsDQoJSW5MYXRpbl9FeHRlbmRlZF9EOiAiQTcyMC1BN0ZGIiwNCglJblN5bG90aV9OYWdyaTogIkE4MDAtQTgyRiIsDQoJSW5Db21tb25fSW5kaWNfTnVtYmVyX0Zvcm1zOiAiQTgzMC1BODNGIiwNCglJblBoYWdzX3BhOiAiQTg0MC1BODdGIiwNCglJblNhdXJhc2h0cmE6ICJBODgwLUE4REYiLA0KCUluRGV2YW5hZ2FyaV9FeHRlbmRlZDogIkE4RTAtQThGRiIsDQoJSW5LYXlhaF9MaTogIkE5MDAtQTkyRiIsDQoJSW5SZWphbmc6ICJBOTMwLUE5NUYiLA0KCUluSGFuZ3VsX0phbW9fRXh0ZW5kZWRfQTogIkE5NjAtQTk3RiIsDQoJSW5KYXZhbmVzZTogIkE5ODAtQTlERiIsDQoJSW5DaGFtOiAiQUEwMC1BQTVGIiwNCglJbk15YW5tYXJfRXh0ZW5kZWRfQTogIkFBNjAtQUE3RiIsDQoJSW5UYWlfVmlldDogIkFBODAtQUFERiIsDQoJSW5NZWV0ZWlfTWF5ZWs6ICJBQkMwLUFCRkYiLA0KCUluSGFuZ3VsX1N5bGxhYmxlczogIkFDMDAtRDdBRiIsDQoJSW5IYW5ndWxfSmFtb19FeHRlbmRlZF9COiAiRDdCMC1EN0ZGIiwNCglJbkhpZ2hfU3Vycm9nYXRlczogIkQ4MDAtREI3RiIsDQoJSW5IaWdoX1ByaXZhdGVfVXNlX1N1cnJvZ2F0ZXM6ICJEQjgwLURCRkYiLA0KCUluTG93X1N1cnJvZ2F0ZXM6ICJEQzAwLURGRkYiLA0KCUluUHJpdmF0ZV9Vc2VfQXJlYTogIkUwMDAtRjhGRiIsDQoJSW5DSktfQ29tcGF0aWJpbGl0eV9JZGVvZ3JhcGhzOiAiRjkwMC1GQUZGIiwNCglJbkFscGhhYmV0aWNfUHJlc2VudGF0aW9uX0Zvcm1zOiAiRkIwMC1GQjRGIiwNCglJbkFyYWJpY19QcmVzZW50YXRpb25fRm9ybXNfQTogIkZCNTAtRkRGRiIsDQoJSW5WYXJpYXRpb25fU2VsZWN0b3JzOiAiRkUwMC1GRTBGIiwNCglJblZlcnRpY2FsX0Zvcm1zOiAiRkUxMC1GRTFGIiwNCglJbkNvbWJpbmluZ19IYWxmX01hcmtzOiAiRkUyMC1GRTJGIiwNCglJbkNKS19Db21wYXRpYmlsaXR5X0Zvcm1zOiAiRkUzMC1GRTRGIiwNCglJblNtYWxsX0Zvcm1fVmFyaWFudHM6ICJGRTUwLUZFNkYiLA0KCUluQXJhYmljX1ByZXNlbnRhdGlvbl9Gb3Jtc19COiAiRkU3MC1GRUZGIiwNCglJbkhhbGZ3aWR0aF9hbmRfRnVsbHdpZHRoX0Zvcm1zOiAiRkYwMC1GRkVGIiwNCglJblNwZWNpYWxzOiAiRkZGMC1GRkZGIg0KfTsNCg0KdmFyIFVuaWNvZGVTY3JpcHRzID0gew0KCUNvbW1vbjogIjAwMDAtMDA0MDAwNUItMDA2MDAwN0ItMDBBOTAwQUItMDBCOTAwQkItMDBCRjAwRDcwMEY3MDJCOS0wMkRGMDJFNS0wMkZGMDM3NDAzN0UwMzg1MDM4NzA1ODkwNjAwLTA2MDMwNjBDMDYxQjA2MUYwNjQwMDY2MC0wNjY5MDZERDA5NjQwOTY1MDk3MDBDRjEwQ0YyMEUzRjBGRDUtMEZEODEwRkIxNkVCLTE2RUQxNzM1MTczNjE4MDIxODAzMTgwNTFDRDMxQ0UxMUNFOS0xQ0VDMUNFRS0xQ0YyMjAwMC0yMDBCMjAwRS0yMDY0MjA2QS0yMDcwMjA3NC0yMDdFMjA4MC0yMDhFMjBBMC0yMEI4MjEwMC0yMTI1MjEyNy0yMTI5MjEyQy0yMTMxMjEzMy0yMTREMjE0Ri0yMTVGMjE4OTIxOTAtMjNFODI0MDAtMjQyNjI0NDAtMjQ0QTI0NjAtMjZDRDI2Q0YtMjZFMTI2RTMyNkU4LTI2RkYyNzAxLTI3MDQyNzA2LTI3MDkyNzBDLTI3MjcyNzI5LTI3NEIyNzREMjc0Ri0yNzUyMjc1Ni0yNzVFMjc2MS0yNzk0Mjc5OC0yN0FGMjdCMS0yN0JFMjdDMC0yN0NBMjdDQzI3RDAtMjdGRjI5MDAtMkI0QzJCNTAtMkI1OTJFMDAtMkUzMTJGRjAtMkZGQjMwMDAtMzAwNDMwMDYzMDA4LTMwMjAzMDMwLTMwMzczMDNDLTMwM0YzMDlCMzA5QzMwQTAzMEZCMzBGQzMxOTAtMzE5RjMxQzAtMzFFMzMyMjAtMzI1RjMyN0YtMzJDRjMzNTgtMzNGRjREQzAtNERGRkE3MDAtQTcyMUE3ODgtQTc4QUE4MzAtQTgzOUZEM0VGRDNGRkRGREZFMTAtRkUxOUZFMzAtRkU1MkZFNTQtRkU2NkZFNjgtRkU2QkZFRkZGRjAxLUZGMjBGRjNCLUZGNDBGRjVCLUZGNjVGRjcwRkY5RUZGOUZGRkUwLUZGRTZGRkU4LUZGRUVGRkY5LUZGRkQiLA0KCUFyYWJpYzogIjA2MDYtMDYwQjA2MEQtMDYxQTA2MUUwNjIxLTA2M0YwNjQxLTA2NEEwNjU2LTA2NUUwNjZBLTA2NkYwNjcxLTA2REMwNkRFLTA2RkYwNzUwLTA3N0ZGQjUwLUZCQjFGQkQzLUZEM0RGRDUwLUZEOEZGRDkyLUZEQzdGREYwLUZERkNGRTcwLUZFNzRGRTc2LUZFRkMiLA0KCUFybWVuaWFuOiAiMDUzMS0wNTU2MDU1OS0wNTVGMDU2MS0wNTg3MDU4QUZCMTMtRkIxNyIsDQoJQmFsaW5lc2U6ICIxQjAwLTFCNEIxQjUwLTFCN0MiLA0KCUJhbXVtOiAiQTZBMC1BNkY3IiwNCglCZW5nYWxpOiAiMDk4MS0wOTgzMDk4NS0wOThDMDk4RjA5OTAwOTkzLTA5QTgwOUFBLTA5QjAwOUIyMDlCNi0wOUI5MDlCQy0wOUM0MDlDNzA5QzgwOUNCLTA5Q0UwOUQ3MDlEQzA5REQwOURGLTA5RTMwOUU2LTA5RkIiLA0KCUJvcG9tb2ZvOiAiMzEwNS0zMTJEMzFBMC0zMUI3IiwNCglCcmFpbGxlOiAiMjgwMC0yOEZGIiwNCglCdWdpbmVzZTogIjFBMDAtMUExQjFBMUUxQTFGIiwNCglCdWhpZDogIjE3NDAtMTc1MyIsDQoJQ2FuYWRpYW5fQWJvcmlnaW5hbDogIjE0MDAtMTY3RjE4QjAtMThGNSIsDQoJQ2hhbTogIkFBMDAtQUEzNkFBNDAtQUE0REFBNTAtQUE1OUFBNUMtQUE1RiIsDQoJQ2hlcm9rZWU6ICIxM0EwLTEzRjQiLA0KCUNvcHRpYzogIjAzRTItMDNFRjJDODAtMkNGMTJDRjktMkNGRiIsDQoJQ3lyaWxsaWM6ICIwNDAwLTA0ODQwNDg3LTA1MjUxRDJCMUQ3ODJERTAtMkRGRkE2NDAtQTY1RkE2NjItQTY3M0E2N0MtQTY5NyIsDQoJRGV2YW5hZ2FyaTogIjA5MDAtMDkzOTA5M0MtMDk0RTA5NTAwOTUzLTA5NTUwOTU4LTA5NjMwOTY2LTA5NkYwOTcxMDk3MjA5NzktMDk3RkE4RTAtQThGQiIsDQoJRXRoaW9waWM6ICIxMjAwLTEyNDgxMjRBLTEyNEQxMjUwLTEyNTYxMjU4MTI1QS0xMjVEMTI2MC0xMjg4MTI4QS0xMjhEMTI5MC0xMkIwMTJCMi0xMkI1MTJCOC0xMkJFMTJDMDEyQzItMTJDNTEyQzgtMTJENjEyRDgtMTMxMDEzMTItMTMxNTEzMTgtMTM1QTEzNUYtMTM3QzEzODAtMTM5OTJEODAtMkQ5NjJEQTAtMkRBNjJEQTgtMkRBRTJEQjAtMkRCNjJEQjgtMkRCRTJEQzAtMkRDNjJEQzgtMkRDRTJERDAtMkRENjJERDgtMkRERSIsDQoJR2VvcmdpYW46ICIxMEEwLTEwQzUxMEQwLTEwRkExMEZDMkQwMC0yRDI1IiwNCglHbGFnb2xpdGljOiAiMkMwMC0yQzJFMkMzMC0yQzVFIiwNCglHcmVlazogIjAzNzAtMDM3MzAzNzUtMDM3NzAzN0EtMDM3RDAzODQwMzg2MDM4OC0wMzhBMDM4QzAzOEUtMDNBMTAzQTMtMDNFMTAzRjAtMDNGRjFEMjYtMUQyQTFENUQtMUQ2MTFENjYtMUQ2QTFEQkYxRjAwLTFGMTUxRjE4LTFGMUQxRjIwLTFGNDUxRjQ4LTFGNEQxRjUwLTFGNTcxRjU5MUY1QjFGNUQxRjVGLTFGN0QxRjgwLTFGQjQxRkI2LTFGQzQxRkM2LTFGRDMxRkQ2LTFGREIxRkRELTFGRUYxRkYyLTFGRjQxRkY2LTFGRkUyMTI2IiwNCglHdWphcmF0aTogIjBBODEtMEE4MzBBODUtMEE4RDBBOEYtMEE5MTBBOTMtMEFBODBBQUEtMEFCMDBBQjIwQUIzMEFCNS0wQUI5MEFCQy0wQUM1MEFDNy0wQUM5MEFDQi0wQUNEMEFEMDBBRTAtMEFFMzBBRTYtMEFFRjBBRjEiLA0KCUd1cm11a2hpOiAiMEEwMS0wQTAzMEEwNS0wQTBBMEEwRjBBMTAwQTEzLTBBMjgwQTJBLTBBMzAwQTMyMEEzMzBBMzUwQTM2MEEzODBBMzkwQTNDMEEzRS0wQTQyMEE0NzBBNDgwQTRCLTBBNEQwQTUxMEE1OS0wQTVDMEE1RTBBNjYtMEE3NSIsDQoJSGFuOiAiMkU4MC0yRTk5MkU5Qi0yRUYzMkYwMC0yRkQ1MzAwNTMwMDczMDIxLTMwMjkzMDM4LTMwM0IzNDAwLTREQjU0RTAwLTlGQ0JGOTAwLUZBMkRGQTMwLUZBNkRGQTcwLUZBRDkiLA0KCUhhbmd1bDogIjExMDAtMTFGRjMxMzEtMzE4RTMyMDAtMzIxRTMyNjAtMzI3RUE5NjAtQTk3Q0FDMDAtRDdBM0Q3QjAtRDdDNkQ3Q0ItRDdGQkZGQTAtRkZCRUZGQzItRkZDN0ZGQ0EtRkZDRkZGRDItRkZEN0ZGREEtRkZEQyIsDQoJSGFudW5vbzogIjE3MjAtMTczNCIsDQoJSGVicmV3OiAiMDU5MS0wNUM3MDVEMC0wNUVBMDVGMC0wNUY0RkIxRC1GQjM2RkIzOC1GQjNDRkIzRUZCNDBGQjQxRkI0M0ZCNDRGQjQ2LUZCNEYiLA0KCUhpcmFnYW5hOiAiMzA0MS0zMDk2MzA5RC0zMDlGIiwNCglJbmhlcml0ZWQ6ICIwMzAwLTAzNkYwNDg1MDQ4NjA2NEItMDY1NTA2NzAwOTUxMDk1MjFDRDAtMUNEMjFDRDQtMUNFMDFDRTItMUNFODFDRUQxREMwLTFERTYxREZELTFERkYyMDBDMjAwRDIwRDAtMjBGMDMwMkEtMzAyRjMwOTkzMDlBRkUwMC1GRTBGRkUyMC1GRTI2IiwNCglKYXZhbmVzZTogIkE5ODAtQTlDREE5Q0YtQTlEOUE5REVBOURGIiwNCglLYW5uYWRhOiAiMEM4MjBDODMwQzg1LTBDOEMwQzhFLTBDOTAwQzkyLTBDQTgwQ0FBLTBDQjMwQ0I1LTBDQjkwQ0JDLTBDQzQwQ0M2LTBDQzgwQ0NBLTBDQ0QwQ0Q1MENENjBDREUwQ0UwLTBDRTMwQ0U2LTBDRUYiLA0KCUthdGFrYW5hOiAiMzBBMS0zMEZBMzBGRC0zMEZGMzFGMC0zMUZGMzJEMC0zMkZFMzMwMC0zMzU3RkY2Ni1GRjZGRkY3MS1GRjlEIiwNCglLYXlhaF9MaTogIkE5MDAtQTkyRiIsDQoJS2htZXI6ICIxNzgwLTE3REQxN0UwLTE3RTkxN0YwLTE3RjkxOUUwLTE5RkYiLA0KCUxhbzogIjBFODEwRTgyMEU4NDBFODcwRTg4MEU4QTBFOEQwRTk0LTBFOTcwRTk5LTBFOUYwRUExLTBFQTMwRUE1MEVBNzBFQUEwRUFCMEVBRC0wRUI5MEVCQi0wRUJEMEVDMC0wRUM0MEVDNjBFQzgtMEVDRDBFRDAtMEVEOTBFREMwRUREIiwNCglMYXRpbjogIjAwNDEtMDA1QTAwNjEtMDA3QTAwQUEwMEJBMDBDMC0wMEQ2MDBEOC0wMEY2MDBGOC0wMkI4MDJFMC0wMkU0MUQwMC0xRDI1MUQyQy0xRDVDMUQ2Mi0xRDY1MUQ2Qi0xRDc3MUQ3OS0xREJFMUUwMC0xRUZGMjA3MTIwN0YyMDkwLTIwOTQyMTJBMjEyQjIxMzIyMTRFMjE2MC0yMTg4MkM2MC0yQzdGQTcyMi1BNzg3QTc4QkE3OENBN0ZCLUE3RkZGQjAwLUZCMDZGRjIxLUZGM0FGRjQxLUZGNUEiLA0KCUxlcGNoYTogIjFDMDAtMUMzNzFDM0ItMUM0OTFDNEQtMUM0RiIsDQoJTGltYnU6ICIxOTAwLTE5MUMxOTIwLTE5MkIxOTMwLTE5M0IxOTQwMTk0NC0xOTRGIiwNCglMaXN1OiAiQTREMC1BNEZGIiwNCglNYWxheWFsYW06ICIwRDAyMEQwMzBEMDUtMEQwQzBEMEUtMEQxMDBEMTItMEQyODBEMkEtMEQzOTBEM0QtMEQ0NDBENDYtMEQ0ODBENEEtMEQ0RDBENTcwRDYwLTBENjMwRDY2LTBENzUwRDc5LTBEN0YiLA0KCU1lZXRlaV9NYXllazogIkFCQzAtQUJFREFCRjAtQUJGOSIsDQoJTW9uZ29saWFuOiAiMTgwMDE4MDExODA0MTgwNi0xODBFMTgxMC0xODE5MTgyMC0xODc3MTg4MC0xOEFBIiwNCglNeWFubWFyOiAiMTAwMC0xMDlGQUE2MC1BQTdCIiwNCglOZXdfVGFpX0x1ZTogIjE5ODAtMTlBQjE5QjAtMTlDOTE5RDAtMTlEQTE5REUxOURGIiwNCglOS286ICIwN0MwLTA3RkEiLA0KCU9naGFtOiAiMTY4MC0xNjlDIiwNCglPbF9DaGlraTogIjFDNTAtMUM3RiIsDQoJT3JpeWE6ICIwQjAxLTBCMDMwQjA1LTBCMEMwQjBGMEIxMDBCMTMtMEIyODBCMkEtMEIzMDBCMzIwQjMzMEIzNS0wQjM5MEIzQy0wQjQ0MEI0NzBCNDgwQjRCLTBCNEQwQjU2MEI1NzBCNUMwQjVEMEI1Ri0wQjYzMEI2Ni0wQjcxIiwNCglQaGFnc19QYTogIkE4NDAtQTg3NyIsDQoJUmVqYW5nOiAiQTkzMC1BOTUzQTk1RiIsDQoJUnVuaWM6ICIxNkEwLTE2RUExNkVFLTE2RjAiLA0KCVNhbWFyaXRhbjogIjA4MDAtMDgyRDA4MzAtMDgzRSIsDQoJU2F1cmFzaHRyYTogIkE4ODAtQThDNEE4Q0UtQThEOSIsDQoJU2luaGFsYTogIjBEODIwRDgzMEQ4NS0wRDk2MEQ5QS0wREIxMERCMy0wREJCMERCRDBEQzAtMERDNjBEQ0EwRENGLTBERDQwREQ2MEREOC0wRERGMERGMi0wREY0IiwNCglTdW5kYW5lc2U6ICIxQjgwLTFCQUExQkFFLTFCQjkiLA0KCVN5bG90aV9OYWdyaTogIkE4MDAtQTgyQiIsDQoJU3lyaWFjOiAiMDcwMC0wNzBEMDcwRi0wNzRBMDc0RC0wNzRGIiwNCglUYWdhbG9nOiAiMTcwMC0xNzBDMTcwRS0xNzE0IiwNCglUYWdiYW53YTogIjE3NjAtMTc2QzE3NkUtMTc3MDE3NzIxNzczIiwNCglUYWlfTGU6ICIxOTUwLTE5NkQxOTcwLTE5NzQiLA0KCVRhaV9UaGFtOiAiMUEyMC0xQTVFMUE2MC0xQTdDMUE3Ri0xQTg5MUE5MC0xQTk5MUFBMC0xQUFEIiwNCglUYWlfVmlldDogIkFBODAtQUFDMkFBREItQUFERiIsDQoJVGFtaWw6ICIwQjgyMEI4MzBCODUtMEI4QTBCOEUtMEI5MDBCOTItMEI5NTBCOTkwQjlBMEI5QzBCOUUwQjlGMEJBMzBCQTQwQkE4LTBCQUEwQkFFLTBCQjkwQkJFLTBCQzIwQkM2LTBCQzgwQkNBLTBCQ0QwQkQwMEJENzBCRTYtMEJGQSIsDQoJVGVsdWd1OiAiMEMwMS0wQzAzMEMwNS0wQzBDMEMwRS0wQzEwMEMxMi0wQzI4MEMyQS0wQzMzMEMzNS0wQzM5MEMzRC0wQzQ0MEM0Ni0wQzQ4MEM0QS0wQzREMEM1NTBDNTYwQzU4MEM1OTBDNjAtMEM2MzBDNjYtMEM2RjBDNzgtMEM3RiIsDQoJVGhhYW5hOiAiMDc4MC0wN0IxIiwNCglUaGFpOiAiMEUwMS0wRTNBMEU0MC0wRTVCIiwNCglUaWJldGFuOiAiMEYwMC0wRjQ3MEY0OS0wRjZDMEY3MS0wRjhCMEY5MC0wRjk3MEY5OS0wRkJDMEZCRS0wRkNDMEZDRS0wRkQ0IiwNCglUaWZpbmFnaDogIjJEMzAtMkQ2NTJENkYiLA0KCVZhaTogIkE1MDAtQTYyQiIsDQoJWWk6ICJBMDAwLUE0OENBNDkwLUE0QzYiDQp9Ow0KDQp2YXIgdW5pY29kZSA9IHsNCiAgICBjYXRlZ29yaWVzOiBVbmljb2RlQ2F0ZWdvcmllcywNCiAgICBibG9ja3M6IFVuaWNvZGVCbG9ja3MsDQogICAgc2NyaXB0czogVW5pY29kZVNjcmlwdHMNCn07DQoNCi8vIEVYUE9SVFMNClJlZ2V4UGFyc2VyLnVuaWNvZGUgPSB1bmljb2RlOw0KDQp9KCkpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/regex/js/parseregex.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU2ltcGxlIHBhcnNlciBmb3IgUmVndWxhciBFeHByZXNzaW9ucyAqLw0KLyogVGhhbmtzIHRvIE1hcmlqbiBmb3IgcGF0aWVudGx5IGFkZHJlc3Npbmcgc29tZSBxdWVzdGlvbnMgYW5kIHRvIA0KICogU3RldmVuIExldml0aGFuIGZvciBYUmVnRXhwIGh0dHA6Ly94cmVnZXhwLmNvbS8gZm9yIHBvaW50aW5nIHRoZSB3YXkgdG8gdGhlIHJlZ2V4cHMgZm9yIHRoZSByZWdleCAoSQ0KICogb25seSBkaXNjb3ZlcmVkIGhpcyBvd24gcmVnZXggc3ludGF4IGVkaXRvciBSZWdleFBhbCBsYXRlciBvbikgKi8NCg0KLyoNCi8vIFBvc3NpYmxlIGZ1dHVyZSB0by1kb3M6DQowKSBVbmljb2RlIHBsdWdpbiBmaXggZm9yIGFzdHJhbCBhbmQgdXBkYXRlIGZvciBVbmljb2RlIDYuMC4wDQoxKSBBbGxvdyBwYXJzaW5nIG9mIHN0cmluZyBlc2NhcGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGUuZy4sIFxcIGFzIFwgYW5kIHJlZ3VsYXIgXG4gYXMgYW4gYWN0dWFsIG5ld2xpbmUpIGFuZA0KICAgICBjb3VsZCBwb3RlbnRpYWxseSBpbnRlZ3JhdGUgaW50byBwYXJzaW5nIGZvciBvdGhlciBsYW5ndWFnZXMgd2hlcmUga25vd24gKGUuZy4sIHN0cmluZyBpbnNpZGUgUmVnRXhwIGNvbnN0cnVjdG9yKQ0KMikgSWYgY29uZmlndXJlZCwgYWxsb3cgcGFyc2luZyBvZiByZXBsYWNlIHN0cmluZ3MgKGUuZy4sICQxLCBcMSkNCjMpIFNoYXJlZCBjbGFzc2VzDQogICAgICBhKSBBcyB3aXRoIHJhbmdlcyBhbmQgdW5pY29kZSBjbGFzc2VzLCBjb3VsZCBhbHNvIHRyeSB0byBzdXBwbHkgZXF1aXZhbGVudHMgd2hpY2ggbGlzdCBhbGwNCiAgICAgICAgICAgICAgY2hhcmFjdGVycyBpbnNpZGUgYSB3aG9sZSBjaGFyYWN0ZXIgY2xhc3MNCiAgICAgIGIpIEFkZCBjb21tb24gY2xhc3NlcyBmb3IgcmFuZ2VzLCBpbnNpZGUgY2hhci4gY2xhc3NlcywgYW5kIGFsbG93IGZvciBhbHRlcm5hdGlvbiBvZiBjb2xvcnMNCjQpIEdyb3Vwcw0KICAgICAgYSkgZGV0ZWN0IG1heCdzIChvciBldmVuIGlubmVyX2dyb3VwX21vZGUpIGZyb20gQ1NTIGlmIHNwZWNpZmllZCBhcyAibWF4LWF2YWlsYWJsZSINCiAgICAgICAgICBfY3NzUHJvcGVydHlFeGlzdHMoJ3NwYW4ucmVnZXgtbWF4LWF2YWlsYWJsZScpIHx8IF9jc3NQcm9wZXJ0eUV4aXN0cygnLnJlZ2V4LW1heC1hdmFpbGFibGUnKTsNCiAgICAgIGIpIFJlbW92ZSBpbm5lcl9ncm91cF9tb2RlIGFuZCBqdXN0IGFsd2F5cyBib3RoIHVuaWZvcm0gYW5kIHR5cGUtYmFzZWQgc3R5bGVzPyAoZmlyc3QgaW1wcm92ZQ0KICAgICAgICAgICAgaW5uZXJfZ3JvdXBfbW9kZSBwZXJmb3JtYW5jZSB3aGVuIG9uKQ0KNSkgRXhwYW5kIGNvbmZpZ3VyYXRpb24gZm9yIGRpZmZlcmVudCBmbGF2b3JzIG9mIHJlZ2V4IG9yIGxhbmd1YWdlIGltcGxlbWVudGF0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGNvbmZpZw0KICAgICBvcHRpb25zDQo2KSBBbGxvdyBmcmVlLXNwYWNpbmcgbW9kZSB0byB3b3JrIHdpdGggbmV3bGluZXM/DQoqLw0KDQovKioNCiAqIE9QVElPTlMgKFNFVFVQKToNCiAqICJwb3NzaWJsZV9mbGFncyI6IHtTdHJpbmd9IEFsbCBmbGFncyB0byBzdXBwb3J0IChhcyBhIHN0cmluZyBvZiBqb2luZWQgY2hhcmFjdGVycyk7IGRlZmF1bHQgaXMgJ2ltZ3hzJzsNCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2xpdGVyYWwnIGlzIG9uLCB0aGlzIHdpbGwgY2hlY2sgZm9yIHZhbGlkaXR5IGFnYWluc3QgdGhlIGxpdGVyYWwgZmxhZ3MsIGJ1dA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2UgdGhlIGxpdGVyYWwgZmxhZ3MNCiAqICJmbGFncyI6IHtTdHJpbmd9IExpc3Qgb2YgZmxhZ3MgdG8gdXNlIG9uIHRoaXMgcXVlcnk7IHdpbGwgYmUgYWRkZWQgdG8gYW55IGxpdGVyYWxzOyBkZWZhdWx0IGlzICcnDQogKiAibGl0ZXJhbCI6IHtCb29sZWFufSBXaGV0aGVyIGluc2lkZSBhIGxpdGVyYWwgb3Igbm90DQogKiAibGl0ZXJhbF9pbml0aWFsIjoge1N0cmluZ30gVGhlIGluaXRpYWwgY2hhcmFjdGVyIHRvIHN1cnJvdW5kIHJlZ3VsYXIgZXhwcmVzc2lvbiAob3B0aW9uYWxseSBmb2xsb3dlZCBieSBmbGFncyk7DQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBmb3J3YXJkIHNsYXNoICgiLyIpLCBieSBkZWZhdWx0DQogKg0KICogT1BUSU9OUyAoU1RZTElORykNCiAqICJpbm5lcl9ncm91cF9tb2RlIjogeyd0eXBlJ3wndW5pZm9ybSd9IEluZGljYXRlcyBob3cgKGlmIGF0IGFsbCkgdG8gc3R5bGUgY29udGVudCBpbnNpZGUgZ3JvdXBzOyBpZiBieSAidHlwZSIsDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbGFzcyB3aWxsIGJlIGFzc2lnbmVkIGJ5IHR5cGU7IGlmICJ1bmlmb3JtIiwgYSBjbGFzcyBuYW1lZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVnZXgtZ3JvdXAtPGxldj4tPHNlcT4iIHdoZXJlIDxsZXY+IGlzIHRoZSBuZXN0aW5nIGxldmVsIGFuZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VxPiBpcyB0aGUgc2VxdWVuY2UgbnVtYmVyOyB0aGUgInVuaWZvcm0iIG9wdGlvbiBhbGxvd3MgZ3JvdXBlZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IHRvIGJlIHN0eWxlZCBjb25zaXN0ZW50bHkgKGJ1dCBwb3RlbnRpYWxseSBkaWZmZXJlbnRseSBmcm9tDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBwYXJlbnRoZXNlcyB0aGVtc2VsdmVzKSBubyBtYXR0ZXIgdGhlIHR5cGUgb2YgZ3JvdXANCiAqICJtYXhfbGV2ZWxzIjoge051bWJlcnxTdHJpbmd9IE1heGltdW0gbnVtYmVyIG9mIG5lc3RpbmcgbGV2ZWxzIGJlZm9yZSBjbGFzcyBudW1iZXJzIHJlcGVhdA0KICogIm1heF9hbHRlcm5hdGluZyI6IHtOdW1iZXJ8U3RyaW5nfSBNYXhpbXVtIG51bWJlciBvZiBhbHRlcm5hdGluZyBzZXF1ZW5jZXMgYXQgdGhlIHNhbWUgbGV2ZWwgYmVmb3JlDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3MgbnVtYmVycyByZXBlYXQNCiAqDQogKiBPUFRJT05TIChQQVRURVJOUykNCiAqICJmbGF2b3IiOiB7J2FsbCd8J2VjbWEtMjYyLWVkNSd8J2VjbWEtMjYyLWVkMyd9IFNldHMgZGVmYXVsdHMgZm9yIHRoZSBmb2xsb3dpbmcgcGF0dGVybnMgYWNjb3JkaW5nIHRvIHRoZSByZWdleCBmbGF2b3INCiAqDQogKiAidW5pY29kZV9tb2RlIjogeydzaW1wbGUnfCd2YWxpZGF0ZSd8J3N0b3JlJ30gTW9kZSBmb3IgaGFuZGxpbmcgVW5pY29kZSBjbGFzc2VzOyB1bmxlc3MgJ3NpbXBsZScgaXMgY2hvc2VuLCBtYXkNCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZlY3QgcGVyZm9ybWFuY2UgZ2l2ZW4gaW5pdGlhbCBuZWVkIHRvIGxvYWQgYW5kIHN1YnNlcXVlbnQgbmVlZA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHBhcnNlIGFuZCB2YWxpZGF0ZSAoaS5lLiwgc2VsZWN0aXZlbHkgY29sb3IpLCBhbmQsIGlmICdzdG9yZScgaXMgY2hvc2VuLA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsc28gbWFrZXMgdGhlc2UgKG1hbnkpIGFkZGl0aW9uYWwgdmFsdWVzIG9uIHRoZSB0b2tlbiBvYmplY3QsIGUuZy4sDQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHVzZSBieSBhY3RpdmVUb2tlbnMgZm9yIGFkZGluZyB0b29sdGlwczsgRGVmYXVsdCBpcyAnc2ltcGxlJyB3aGljaA0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbXBseSBjaGVja3MgdGhhdCB0aGUgdmFsdWVzIGFyZSBwbGF1c2libGU7DQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZTogVG8gaW5jbHVkZSBVbmljb2RlIHZhbGlkYXRpb24sIHlvdSBtdXN0IGluY2x1ZGUgeW91cg0KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RlTWlycm9yIHBhcnNlcmZpbGUgaW4gdGhpcyBzZXF1ZW5jZToNCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyZmlsZTogWyJwYXJzZXJlZ2V4LmpzIiwgInBhcnNlcmVnZXgtdW5pY29kZS5qcyJdDQogKiAidW5pY29kZV9jbGFzc2VzIjoge0Jvb2xlYW59IFdoZXRoZXIgdG8gYWNjZXB0IGFsbCBVbmljb2RlIGNsYXNzZXMgKHVubGVzcyBvdmVycmlkZGVuKTsgZGVmYXVsdCBpcyB0cnVlDQogKiAidW5pY29kZV9ibG9ja3MiOiB7Qm9vbGVhbn0gV2hldGhlciB0byBhY2NlcHQgVW5pY29kZSBibG9ja3MgKG92ZXJyaWRlcyB1bmljb2RlX2NsYXNzZXMgZGVmYXVsdCk7IGUuZy4sIFxwe0luQXJhYmljfQ0KICogInVuaWNvZGVfc2NyaXB0cyI6IHtCb29sZWFufSBXaGV0aGVyIHRvIGFjY2VwdCBVbmljb2RlIHNjcmlwdHMgKG92ZXJyaWRlcyB1bmljb2RlX2NsYXNzZXMgZGVmYXVsdCk7IGUuZy4sIFxwe0hlYnJld30NCiAqICJ1bmljb2RlX2NhdGVnb3JpZXMiOiB7Qm9vbGVhbn0gV2hldGhlciB0byBhY2NlcHQgVW5pY29kZSBjYXRlZ29yaWVzIChvdmVycmlkZXMgdW5pY29kZV9jbGFzc2VzIGRlZmF1bHQpOyBlLmcuLCBccHtMbH0gKGZvciBsb3dlci1jYXNlIGxldHRlcnMpDQogKiAibmFtZWRfYmFja3JlZmVyZW5jZXMiOiB7Qm9vbGVhbn0gV2hldGhlciB0byBhY2NlcHQgbmFtZWQgYmFja3JlZmVyZW5jZXM7IGRlZmF1bHQgaXMgdHJ1ZQ0KICogImVtcHR5X2NoYXJfY2xhc3MiOiB7Qm9vbGVhbn0gV2hldGhlciB0byBhbGxvdyBbXSBvciBbXl0gYXMgY2hhcmFjdGVyIGNsYXNzZXM7IGRlZmF1bHQgaXMgdHJ1ZQ0KICogIm1vZGVfbW9kaWZpZXIiOiB7Qm9vbGVhbn0gV2hldGhlciB0byBhbGxvdyAoP2ltc3gpIG1vZGUgbW9kaWZpZXJzDQogKg0KICogTk9URQ0KICogWW91IGNhbiBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIENvZGVNaXJyb3IgY29uZmlndXJhdGlvbiBvYmplY3QgaW4gb3JkZXIgdG8gZ2V0IHNpbXBsZSB0b29sdGlwcyBzaG93aW5nIHRoZQ0KICogICAgIGNoYXJhY3RlciBlcXVpdmFsZW50IG9mIGFuIGVzY2FwZSBzZXF1ZW5jZToNCiAgICAgYWN0aXZlVG9rZW5zIDogZnVuY3Rpb24gKHNwYW5Ob2RlLCB0b2tlbk9iamVjdCwgZWRpdG9yKSB7DQogICAgICAgIGlmICh0b2tlbk9iamVjdC5lcXVpdmFsZW50KSB7DQogICAgICAgICAgICBzcGFuTm9kZS50aXRsZSA9IHRva2VuT2JqZWN0LmVxdWl2YWxlbnQ7DQogICAgICAgIH0NCiAgICB9LA0KLi4uLm9yIHRoaXMgbW9yZSBhZHZhbmNlZCBvbmUgd2hpY2ggYWRkcyByYW5nZXMgKHRob3VnaCB5b3UgbWF5IHdpc2ggdG8gY2hhbmdlIHRoZSBjaGFyYWN0ZXIgbGltaXQsIGJlaW5nDQogICAgYXdhcmUgdGhhdCBicm93c2VycyBoYXZlIGEgbGltaXRhdGlvbiBvbiB0b29sdGlwIHNpemUsIHVubGVzcyB5b3Ugd2VyZSB0byBhbHNvIHVzZSBhIHRvb2x0aXAgbGlicmFyeSB3aGljaCB1c2VkDQogICAgdGhpcyBpbmZvcm1hdGlvbiB0byBleHBhbmQgdGhlIHZpc2libGUgY29udGVudCk6DQogICAgYWN0aXZlVG9rZW5zIDogKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGNoYXJMaW1pdCA9IDUwMDsNCiAgICAgICAgdmFyIGxhc3RFcXVpdmFsZW50LCByYW5nZUJlZ2FuLCBsYXN0UmFuZ2VIeXBoZW47DQoNCiAgICAgICAgZnVuY3Rpb24gX2J1aWxkVGl0bGUgKGJlZ2luQ2hhciwgZW5kQ2hhcikgew0KICAgICAgICAgICAgdmFyIGJlZ2luQ29kZSA9IGJlZ2luQ2hhci5jaGFyQ29kZUF0KDApLCBlbmRDb2RlID0gZW5kQ2hhci5jaGFyQ29kZUF0KDApOw0KICAgICAgICAgICAgdmFyIHRpdGxlID0gJyc7DQogICAgICAgICAgICBpZiAoZW5kQ29kZSAtIGJlZ2luQ29kZSA8PSBjaGFyTGltaXQpIHsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gYmVnaW5Db2RlOyBpIDw9IGVuZENvZGU7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0aXRsZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB0aXRsZTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiBmdW5jdGlvbiAoc3Bhbk5vZGUsIHRva2VuLCBlZGl0b3IpIHsNCiAgICAgICAgICAgIHZhciBjb250ZW50ID0gdG9rZW4uY29udGVudDsNCiAgICAgICAgICAgIGlmIChsYXN0RXF1aXZhbGVudCAmJiB0b2tlbi5zdHlsZSA9PT0gJ3JlZ2V4LWNsYXNzLXJhbmdlLWh5cGhlbicpIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBsYXN0UmFuZ2VIeXBoZW4gPSBzcGFuTm9kZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlQmVnYW4pIHsNCiAgICAgICAgICAgICAgICB2YXIgYmVnaW5DaGFyID0gbGFzdEVxdWl2YWxlbnQ7DQogICAgICAgICAgICAgICAgdmFyIGVuZENoYXIgPSAodG9rZW4uZXF1aXZhbGVudCB8fCBjb250ZW50KTsNCiAgICAgICAgICAgICAgICBsYXN0UmFuZ2VIeXBoZW4udGl0bGUgPSBfYnVpbGRUaXRsZShiZWdpbkNoYXIsIGVuZENoYXIpOw0KICAgICAgICAgICAgICAgIHJhbmdlQmVnYW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBsYXN0RXF1aXZhbGVudCA9IG51bGw7DQogICAgICAgICAgICAgICAgLy9lZGl0b3IucmVwYXJzZUJ1ZmZlcigpOyAvLyB0aXRsZSBtdXN0IGJlIHJlZHJhd24gc2luY2UgYWxyZWFkeSBhZGRlZCBwcmV2aW91c2x5IChkbyBiZWxvdyBpbnN0ZWFkIGFzIGxvY2tpbmcgdXAgb24gdW5kbz8pOyB0b28gaW50ZW5zaXZlIHRvIGNhbGwgdGhpcywgYnV0IGtlZXBpbmcgaGVyZSBmb3IgcmVjb3JkDQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmIChjb250ZW50ID09PSAnXScpIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByYW5nZUJlZ2FuID0gZmFsc2U7DQogICAgICAgICAgICAgICAgLy8gRml4OiAncmVnZXgtdW5pY29kZS1jbGFzcy1pbnNpZGUnIG5vdCBzdXBwb3J0ZWQgYW5kIHNob3VsZCBub3QgYmUgc2luY2UgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSBhcyBhIHN0YXJ0aW5nIHJhbmdlPw0KICAgICAgICAgICAgICAgIGxhc3RFcXVpdmFsZW50ID0gdG9rZW4uZXF1aXZhbGVudCB8fCBjb250ZW50Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAodG9rZW4uZGlzcGxheSkgew0KICAgICAgICAgICAgICAgIHNwYW5Ob2RlLnRpdGxlID0gdG9rZW4uZGlzcGxheTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLmVxdWl2YWxlbnQpIHsNCiAgICAgICAgICAgICAgICBpZiAodG9rZW4udW5pY29kZSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSAvKC4pLSguKS9nOw0KICAgICAgICAgICAgICAgICAgICBzcGFuTm9kZS50aXRsZSA9IHRva2VuLmVxdWl2YWxlbnQucmVwbGFjZShyYW5nZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChuMCwgbjEsIG4yKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9idWlsZFRpdGxlKG4xLCBuMik7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgIC8vIGVkaXRvci5yZXBhcnNlQnVmZmVyKCk7IC8vIHRvbyBpbnRlbnNpdmUgdG8gY2FsbCB0aGlzLCBidXQga2VlcGluZyBoZXJlIGZvciByZWNvcmQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHNwYW5Ob2RlLnRpdGxlID0gdG9rZW4uZXF1aXZhbGVudDsNCiAgICAgICAgICAgICAgICAgICAgLy8gZWRpdG9yLnJlcGFyc2VCdWZmZXIoKTsgLy8gdG9vIGludGVuc2l2ZSB0byBjYWxsIHRoaXMsIGJ1dCBrZWVwaW5nIGhlcmUgZm9yIHJlY29yZA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICB9KCkpLA0KICovDQoNCg0KdmFyIFJlZ2V4UGFyc2VyID0gRWRpdG9yLlBhcnNlciA9IChmdW5jdGlvbigpIHsNCiAgICANCiAgICB2YXIgcmVnZXhDb25maWdCb29sZWFuT3B0aW9ucyA9IFsndW5pY29kZV9ibG9ja3MnLCAndW5pY29kZV9zY3JpcHRzJywgJ3VuaWNvZGVfY2F0ZWdvcmllcycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bmljb2RlX2NsYXNzZXMnLCAnbmFtZWRfYmFja3JlZmVyZW5jZXMnLCAnZW1wdHlfY2hhcl9jbGFzcycsICdtb2RlX21vZGlmaWVyJ10sDQogICAgICAgIHJlZ2V4Q29uZmlnU3RyaW5nT3B0aW9ucyA9IFsndW5pY29kZV9tb2RlJ10sICAvLyBKdXN0IGZvciByZWNvcmQta2VlcGluZw0KICAgICAgICBwb3NzaWJsZUZsYWdzID0gJ2ltZ3hzJywNCiAgICAgICAgY29uZmlnID0ge30sIHVjbDsNCiAgICAvLyBSZXNldHRhYmxlDQogICAgdmFyIGluaXRpYWxGb3VuZCwgZW5kRm91bmQsIGNoYXJDbGFzc1JhbmdlQmVndW4sIG5lZ2F0ZWRDaGFyQ2xhc3MsIG1vZGVfbW9kaWZpZXJfYmVndW4sIGZsYWdzID0gJycsDQogICAgICAgIGdyb3VwVHlwZXMsIGdyb3VwQ291bnRzOw0KICAgICAgICANCiAgICBjb25maWcubGl0ZXJhbF9pbml0aWFsID0gJy8nOw0KICAgIA0KICAgIC8vIEFkYXB0ZWQgZnJvbSB0b2tlbml6ZS5qcyAobm90IGRpc3RpbmN0bHkgdHJlYXRpbmcgd2hpdGVzcGFjZSBleGNlcHQgZm9yIG5ld2xpbmVzKQ0KICAgIGZ1bmN0aW9uIG5vV1NUb2tlbml6ZXIgKHNvdXJjZSwgc3RhdGUpIHsNCiAgICAgIHZhciB0b2tlbml6ZXIgPSB7DQogICAgICAgIHN0YXRlOiBzdGF0ZSwNCiAgICAgICAgdGFrZTogZnVuY3Rpb24odHlwZSkgew0KICAgICAgICAgIGlmICh0eXBlb2YodHlwZSkgPT0gInN0cmluZyIpDQogICAgICAgICAgICB0eXBlID0ge3N0eWxlOiB0eXBlLCB0eXBlOiB0eXBlfTsNCiAgICAgICAgICB0eXBlLmNvbnRlbnQgPSAodHlwZS5jb250ZW50IHx8ICIiKSArIHNvdXJjZS5nZXQoKTsNCiAgICAgICAgICB0eXBlLnZhbHVlID0gdHlwZS5jb250ZW50ICsgc291cmNlLmdldCgpOw0KICAgICAgICAgIHJldHVybiB0eXBlOw0KICAgICAgICB9LA0KICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgaWYgKCFzb3VyY2UubW9yZSgpKSB0aHJvdyBTdG9wSXRlcmF0aW9uOw0KICAgICAgICAgIHZhciB0eXBlOw0KICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCJcbiIpKSB7DQogICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFrZSgid2hpdGVzcGFjZSIpOw0KICAgICAgICAgIH0NCiAgICAgICAgICB3aGlsZSAoIXR5cGUpDQogICAgICAgICAgICB0eXBlID0gdGhpcy5zdGF0ZShzb3VyY2UsIGZ1bmN0aW9uKHMpIHt0b2tlbml6ZXIuc3RhdGUgPSBzO30pOw0KICAgICAgICAgIHJldHVybiB0aGlzLnRha2UodHlwZSk7DQogICAgICAgIH0NCiAgICAgIH07DQogICAgICByZXR1cm4gdG9rZW5pemVyOw0KICAgIH0NCiAgICANCiAgICAvLyBQcml2YXRlIHN0YXRpYyB1dGlsaXRpZXMNCiAgICBmdW5jdGlvbiBfZXhwYW5kUmFuZ2UgKHR5cGUsIG5hbWUpIHsgLy8gTW9yZSBlZmZpY2llbnQgdGhhbiB1bnBhY2sgaW4gdGFyZ2V0aW5nIG9ubHkgd2hpY2ggd2UgbmVlZCAodGhvdWdoIGlkZWFsbHkgd291bGQgbm90IG5lZWQgdG8gY29udmVydCBhdCBhbGwpDQogICAgICAgIHZhciBjb2RlUHQgPSAvXHd7NH0vZywNCiAgICAgICAgICAgIHVuaWNvZGUgPSBSZWdleFBhcnNlci51bmljb2RlLCBncm91cCA9IHVuaWNvZGVbdHlwZV07DQogICAgICAgIGlmIChncm91cC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgew0KICAgICAgICAgICAgLy8gZ3JvdXBbbmFtZV0gPSBncm91cFtuYW1lXS5yZXBsYWNlKGNvZGVQdCwgJ1xcdSQmJyk7IC8vIFdlIHNob3VsZG4ndCBuZWVkIHRoaXMgdW5sZXNzIHdlIHN0YXJ0IHZhbGlkYXRpbmcgYWdhaW5zdCBhIG1hdGNoaW5nIHN0cmluZw0KICAgICAgICAgICAgcmV0dXJuIGdyb3VwW25hbWVdLnJlcGxhY2UoY29kZVB0LA0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChuMCkgew0KICAgICAgICAgICAgICAgICAgICBpZiAobjAgPT09ICcwMDJEJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdVKycgKyBuMDsgLy8gTGVhdmUgZ2VudWluZSBoeXBoZW5zIHVucmVzb2x2ZWQgc28gdGhleSB3b24ndCBnZXQgY29uZnVzZWQgd2l0aCByYW5nZSBoeXBoZW5zDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoJzB4JyArIG4wLCAxNikpOyAvLyBGaXg6IFdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRvIHN0b3JlIGFzIFVuaWNvZGUgY2hhcmFjdGVycyBsaWtlIHRoaXMgZnJvbSB0aGUgc3RhcnQNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gX2NvcHlPYmogKG9iaiwgZGVlcCkgew0KICAgICAgICB2YXIgcmV0ID0ge307DQogICAgICAgIGZvciAodmFyIHAgaW4gb2JqKSB7DQogICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHApKSB7DQogICAgICAgICAgICAgICAgaWYgKGRlZXAgJiYgdHlwZW9mIG9ialtwXSA9PT0gJ29iamVjdCcgJiYgb2JqW3BdICE9PSBudWxsKSB7DQogICAgICAgICAgICAgICAgICAgIHJldFtwXSA9IF9jb3B5T2JqKG9ialtwXSwgZGVlcCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXRbcF0gPSBvYmpbcF07DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiByZXQ7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gX2ZvckVhY2ggKGFyciwgaCkgew0KICAgICAgICBmb3IgKHZhciBpID0gMCwgYXJybCA9IGFyci5sZW5ndGg7IGkgPCBhcnJsOyBpKyspIHsNCiAgICAgICAgICAgIGgoYXJyW2ldLCBpKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmdW5jdGlvbiBfc2V0T3B0aW9ucyAoYXJyLCB2YWx1ZSkgew0KICAgICAgICBhcnIgPSB0eXBlb2YgYXJyID09PSAnc3RyaW5nJyA/IFthcnJdIDogYXJyOw0KICAgICAgICBfZm9yRWFjaChhcnIsIGZ1bmN0aW9uIChpdGVtKSB7DQogICAgICAgICAgICBjb25maWdbaXRlbV0gPSB2YWx1ZTsNCiAgICAgICAgfSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gX2Nzc1Byb3BlcnR5RXhpc3RzIChzZWxlY3RvclRleHQpIHsNCiAgICAgICAgdmFyIGkgPSAwLCBqID0gMCwgZHNsID0gMCwgY3JsID0gMCwgc3MsIGQgPSBkb2N1bWVudCwNCiAgICAgICAgICAgIF9nZXRQcm9wZXJ0eUZyb21TdHlsZVNoZWV0ID0NCiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoc3MsIHNlbGVjdG9yVGV4dCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgcnVsZXMgPSBzcy5jc3NSdWxlcyA/IHNzLmNzc1J1bGVzIDogc3MucnVsZXM7IC8qIE1vemlsbGEgb3IgSUUgKi8NCiAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMCwgY3JsID0gcnVsZXMubGVuZ3RoOyBqIDwgY3JsOyBqKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydWxlID0gcnVsZXNbal07DQogICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLnR5cGUgPT09IENTU1J1bGUuU1RZTEVfUlVMRSAmJiBydWxlLnNlbGVjdG9yVGV4dCA9PT0gc2VsZWN0b3JUZXh0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgLyogSUUgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5zZWxlY3RvclRleHQgPT09IHNlbGVjdG9yVGV4dCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBmb3IgKGkgPSAwLCBkc2wgPSBkLnN0eWxlU2hlZXRzLmxlbmd0aDsgaSA8IGRzbDsgaSsrKSB7DQogICAgICAgICAgICBzcyA9IGQuc3R5bGVTaGVldHNbaV07DQogICAgICAgICAgICB2YWx1ZSA9IF9nZXRQcm9wZXJ0eUZyb21TdHlsZVNoZWV0KHNzLCBzZWxlY3RvclRleHQpOw0KICAgICAgICAgICAgaWYgKHZhbHVlKSB7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHZhbHVlOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIF9hZGRGbGFncyAoZikgew0KICAgICAgICBpZiAoKC9bXmEtel0vKS50ZXN0KGYpKSB7IC8vIENvdWxkIGluc2lzdCBvbiBwYXJ0aWN1bGFyIGZsYWdzDQogICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBmbGFnIHN1cHBsaWVkIHRvIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGFyc2VyJzsNCiAgICAgICAgfQ0KICAgICAgICBmbGFncyArPSBmOw0KICAgIH0NCiAgICBmdW5jdGlvbiBfc2V0UG9zc2libGVGbGFncyAoZikgew0KICAgICAgICBpZiAoKC9bXmEtel0vKS50ZXN0KGYpKSB7IC8vIENvdWxkIGluc2lzdCBvbiBwYXJ0aWN1bGFyIGZsYWdzDQogICAgICAgICAgICB0aHJvdyAnSW52YWxpZCBmbGFnIHN1cHBsaWVkIHRvIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGFyc2VyJzsNCiAgICAgICAgfQ0KICAgICAgICBwb3NzaWJsZUZsYWdzID0gZjsNCiAgICB9DQogICAgZnVuY3Rpb24gX2VzYyAocykgew0KICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC8iWy5cXCsqP1xbXF5cXSQoKXt9PSE8Pnw6XC1dL2csICdcXCQmJyk7DQogICAgfQ0KDQogICAgdmFyIHRva2VuaXplUmVnZXggPSAoZnVuY3Rpb24oKSB7DQogICAgICAgIC8vIFByaXZhdGUgdXRpbGl0aWVzDQogICAgICAgIGZ1bmN0aW9uIF9oYXNGbGFnIChmKSB7DQogICAgICAgICAgICByZXR1cm4gZmxhZ3MuaW5kZXhPZihmKSA+IC0xOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIF9sb29rQWhlYWRNYXRjaGVzIChzb3VyY2UsIHJlZ2V4KSB7DQogICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IHNvdXJjZS5sb29rQWhlYWRSZWdleChyZWdleCwgdHJ1ZSk7DQogICAgICAgICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDEpIHsgLy8gQWxsb3cgdXMgdG8gcmV0dXJuIHRoZSBwb3NpdGlvbiBvZiBhIG1hdGNoIG91dCBvZiBhbHRlcm5hdGVzDQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IG1hdGNoZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXNbaV0gIT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlVW5pY29kZUNsYXNzIChuZWdhdGVkLCBwbGFjZSwgc291cmNlKSB7DQogICAgICAgICAgICB2YXIgbmVnID0gJyByZWdleC0nICsgbmVnYXRlZCArICd1bmljb2RlJywgcmV0ID0gJ3JlZ2V4LXVuaWNvZGUtY2xhc3MtJyArIHBsYWNlICsgbmVnLA0KICAgICAgICAgICAgICAgIG5hbWUsIHVuaWNvZGUgPSBSZWdleFBhcnNlci51bmljb2RlOw0KICAgICAgICAgICAgaWYgKCF1bmljb2RlKSB7DQogICAgICAgICAgICAgICAgdGhyb3cgJ1VuaWNvZGUgcGx1Z2luIG9mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGFyc2VyIG5vdCBwcm9wZXJseSBsb2FkZWQnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGNvbmZpZy51bmljb2RlX2NhdGVnb3JpZXMpIHsNCiAgICAgICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXlxcW3BQXXtcXj8oW0EtWl1bYS16XT8pfS8sIHRydWUpOw0KICAgICAgICAgICAgICAgIGlmIChjYXRlZ29yaWVzKSB7DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBjYXRlZ29yaWVzWzFdOw0KICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZS5jYXRlZ29yaWVzW25hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0ICsgJy1jYXRlZ29yeS0nICsgcGxhY2UgKyBuZWcgKyAnLWNhdGVnb3J5LScgKyBuYW1lICsgJy0nICsgcGxhY2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1iYWQtc2VxdWVuY2UnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChjb25maWcudW5pY29kZV9ibG9ja3MpIHsNCiAgICAgICAgICAgICAgICB2YXIgYmxvY2tzID0gc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eXFxbcFBde1xePyhJbltBLVpdW159XSopfS8sIHRydWUpOw0KICAgICAgICAgICAgICAgIGlmIChibG9ja3MpIHsNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGJsb2Nrc1sxXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUuYmxvY2tzW25hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0ICsgJy1ibG9jay0nICsgcGxhY2UgKyBuZWcgKyAnLWJsb2NrLScgKyBuYW1lICsgJy0nICsgcGxhY2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1iYWQtc2VxdWVuY2UnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChjb25maWcudW5pY29kZV9zY3JpcHRzKSB7DQogICAgICAgICAgICAgICAgdmFyIHNjcmlwdHMgPSBzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXFtwUF17XF4/KFtefV0qKX0vLCB0cnVlKTsNCiAgICAgICAgICAgICAgICBpZiAoc2NyaXB0cykgew0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2NyaXB0c1sxXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUuc2NyaXB0c1tuYW1lXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldCArICctc2NyaXB0LScgKyBwbGFjZSArIG5lZyArICctc2NyaXB0LScgKyBuYW1lICsgJy0nICsgcGxhY2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1iYWQtc2VxdWVuY2UnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVuaWNvZGVfY2xhc3MgKHNvdXJjZSwgcGxhY2UpIHsNCiAgICAgICAgICAgIHZhciByZXQgPSAncmVnZXgtdW5pY29kZS1jbGFzcy0nICsgcGxhY2UgKyAnICcsIG5lZ2F0ZWQgPSAnJzsNCiAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXFAvKSB8fCBzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXHB7XF4vKSkgew0KICAgICAgICAgICAgICAgIG5lZ2F0ZWQgPSAnbmVnYXRlZCc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXFB7XF4vKSkgeyAvLyBEb3VibGUtbmVnYXRpdmUNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZy51bmljb2RlX21vZGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICd2YWxpZGF0ZSc6IGNhc2UgJ3N0b3JlJzoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlVW5pY29kZUNsYXNzKG5lZ2F0ZWQsIHBsYWNlLCBzb3VyY2UpOw0KICAgICAgICAgICAgICAgIGNhc2UgJ3NpbXBsZSc6IC8vIEZhbGwtdGhyb3VnaA0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyaWM6IC9eXFxbcFBde1xeP1tefV0qfS8NCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy51bmljb2RlX2NhdGVnb3JpZXMgJiYgc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eXFxbcFBde1xeP1tBLVpdW2Etel0/fS8sIHRydWUpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0ICsgJ3JlZ2V4LScgKyBuZWdhdGVkICsgJ3VuaWNvZGUtY2F0ZWdvcnknOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcudW5pY29kZV9ibG9ja3MgJiYgc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eXFxbcFBde1xeP0luW0EtWl1bXn1dKn0vLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldCArICdyZWdleC0nICsgbmVnYXRlZCArICd1bmljb2RlLWJsb2NrJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLnVuaWNvZGVfc2NyaXB0cyAmJiBzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXFtwUF17XF4/W159XSp9LywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQgKyAncmVnZXgtJyArIG5lZ2F0ZWQgKyAndW5pY29kZS1zY3JpcHQnOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gU3RhdGUgZnVuY3Rpb25zDQogICAgICAgIC8vIENoYW5nZWQgW1xzXFNdIHRvIFteXG5dIHRvIGF2b2lkIGFjY2lkZW50YWxseSBncmFiYmluZyBhIHRlcm1pbmF0aW5nIChhdXRvLWluc2VydGVkIHBsYWNlLWhvbGRlcj8pIG5ld2xpbmUNCiAgICAgICAgdmFyIGluc2lkZV9jbGFzc19tZXRhID0gL15cXCg/OihbMC0zXVswLTddezAsMn18WzQtN11bMC03XT8pfCh4W1xkQS1GYS1mXXsyfSl8KHVbXGRBLUZhLWZdezR9KXwoY1tBLVphLXpdKXwoLVxcXV4pfChbYkJkRGZucnNTdHZ3VzBdKXwoW15cbl0pKS87DQogICAgICAgIGZ1bmN0aW9uIGluc2lkZV9jbGFzcyAoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgICAgICAgdmFyIHJldDsNCiAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKCddJywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAvLyBjaGFyQ2xhc3NSYW5nZUJlZ3VuID0gZmFsc2U7IC8vIFNob3VsZG4ndCBiZSBuZWVkZWQNCiAgICAgICAgICAgICAgICBzZXRTdGF0ZShjdXN0b21PdXRzaWRlQ2xhc3MpOw0KICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtY2xhc3MtZW5kJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChuZWdhdGVkQ2hhckNsYXNzICYmIHNvdXJjZS5sb29rQWhlYWQoJ14nLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgIG5lZ2F0ZWRDaGFyQ2xhc3MgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWNsYXNzLW5lZ2F0b3InOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWQoJy0nLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgIGlmICghY2hhckNsYXNzUmFuZ2VCZWd1bikgew0KICAgICAgICAgICAgICAgICAgICByZXQgPSAncmVnZXgtY2xhc3MtaW5pdGlhbC1oeXBoZW4nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UuZXF1YWxzKCddJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWNsYXNzLWZpbmFsLWh5cGhlbic7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWNsYXNzLXJhbmdlLWh5cGhlbic7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoIXNvdXJjZS5lcXVhbHMoJ1xcJykpIHsNCiAgICAgICAgICAgICAgICB2YXIgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgIGlmIChjb25maWcubGl0ZXJhbCAmJiBjaCA9PT0gY29uZmlnLmxpdGVyYWxfaW5pdGlhbCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWJhZC1jaGFyYWN0ZXInOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXQgPSAncmVnZXgtY2xhc3MtY2hhcmFjdGVyJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKCh1Y2wgPSB1bmljb2RlX2NsYXNzKHNvdXJjZSwgJ2luc2lkZScpKSkgew0KICAgICAgICAgICAgICAgIHJldCA9IHVjbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXlxcKFxufCQpLykpIHsgLy8gVHJlYXQgYW4gZW5kaW5nIGJhY2tzbGFzaCBsaWtlIGEgYmFkIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGNoYXJhY3RlciB0byBhdm9pZCBhdXRvLWFkZGluZyBvZiBleHRyYSB0ZXh0DQogICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICByZXQgPSAncmVnZXgtYmFkLWNoYXJhY3Rlcic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKF9sb29rQWhlYWRNYXRjaGVzKHNvdXJjZSwgaW5zaWRlX2NsYXNzX21ldGEpKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9ICdyZWdleC1jbGFzcy1vY3RhbCc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWNsYXNzLWhleCc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWNsYXNzLXVuaWNvZGUtZXNjYXBlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6DQogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAncmVnZXgtY2xhc3MtYXNjaWktY29udHJvbCc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA1Og0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWNsYXNzLWVzY2FwZWQtc3BlY2lhbCc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSA2Og0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWNsYXNzLXNwZWNpYWwtZXNjYXBlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIDc6DQogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAncmVnZXgtY2xhc3MtZXh0cmEtZXNjYXBlZCc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbnNpZGUgY2xhc3MsIGJlZ2lubmluZyAnICsgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eW1xzXFNdKyQvKVswXSArICcgYW5kIG9mIGxlbmd0aCAnKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXltcc1xTXSskLylbMF0ubGVuZ3RoOyAvLyBTaG91bGRuJ3QgcmVhY2ggaGVyZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEZpeDogQWRkIHRoaXMgYXMgYSB0b2tlbiBwcm9wZXJ0eSBpbiB0aGUgcGFyc2VyIGluc3RlYWQ/DQogICAgICAgICAgICBpZiAoY2hhckNsYXNzUmFuZ2VCZWd1bikgew0KICAgICAgICAgICAgICAgIGNoYXJDbGFzc1JhbmdlQmVndW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICByZXQgKz0gJy1lbmQtcmFuZ2UnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlLmVxdWFscygnLScpKSB7DQogICAgICAgICAgICAgICAgY2hhckNsYXNzUmFuZ2VCZWd1biA9IHRydWU7DQogICAgICAgICAgICAgICAgcmV0ICs9ICctYmVnaW4tcmFuZ2UnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHJldDsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIENoYW5nZWQgW1xzXFNdIHRvIFteXG5dIHRvIGF2b2lkIGFjY2lkZW50YWxseSBncmFiYmluZyBhIHRlcm1pbmF0aW5nIChhdXRvLWluc2VydGVkIHBsYWNlLWhvbGRlcj8pIG5ld2xpbmUNCiAgICAgICAgdmFyIG91dHNpZGVfY2xhc3NfbWV0YSA9IC9eKD86XFwoPzooMCg/OlswLTNdWzAtN117MCwyfXxbNC03XVswLTddPyk/KXwoWzEtOV1cZCopfCh4W1xkQS1GYS1mXXsyfSl8KHVbXGRBLUZhLWZdezR9KXwoY1tBLVphLXpdKXwoW2JCZERmbnJzU3R2d1cwXSl8KFs/KitdKXwoWy5cXFskfHtdKXwoW15cbl0pKXwoWz8qK11cPz8pfCh7XGQrKD86LFxkKik/fVw/PykpLzsNCiAgICAgICAgZnVuY3Rpb24gb3V0c2lkZV9jbGFzcyAoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgICAgICAgaWYgKCh1Y2wgPSB1bmljb2RlX2NsYXNzKHNvdXJjZSwgJ291dHNpZGUnKSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdWNsOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChfbG9va0FoZWFkTWF0Y2hlcyhzb3VyY2UsIG91dHNpZGVfY2xhc3NfbWV0YSkpIHsNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtb2N0YWwnOw0KICAgICAgICAgICAgICAgIGNhc2UgMjoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1hc2NpaSc7DQogICAgICAgICAgICAgICAgY2FzZSAzOg0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWhleCc7DQogICAgICAgICAgICAgICAgY2FzZSA0Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LXVuaWNvZGUtZXNjYXBlJzsNCiAgICAgICAgICAgICAgICBjYXNlIDU6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtYXNjaWktY29udHJvbCc7DQogICAgICAgICAgICAgICAgY2FzZSA2Og0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LXNwZWNpYWwtZXNjYXBlJzsNCiAgICAgICAgICAgICAgICBjYXNlIDc6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtcXVhbnRpZmllci1lc2NhcGUnOyAvLyBGaXg6IGNvdWxkIHByb2JhYmx5IGp1c3QgbWVyZ2Ugd2l0aCBlc2NhcGVkLXNwZWNpYWwNCiAgICAgICAgICAgICAgICBjYXNlIDg6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtZXNjYXBlZC1zcGVjaWFsJzsNCiAgICAgICAgICAgICAgICBjYXNlIDk6DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtZXh0cmEtZXNjYXBlZCc7DQogICAgICAgICAgICAgICAgY2FzZSAxMDoNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1xdWFudGlmaWVycyc7DQogICAgICAgICAgICAgICAgY2FzZSAxMToNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1yZXBldGl0aW9uJzsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmxpdGVyYWwgJiYgc291cmNlLmxvb2tBaGVhZChjb25maWcubGl0ZXJhbF9pbml0aWFsLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbml0aWFsRm91bmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRm91bmQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtbGl0ZXJhbC1iZWdpbic7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbmRGb3VuZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShiZWdpbkZsYWdzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtbGl0ZXJhbC1lbmQnOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKCd8JywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtYWx0ZXJuYXRvcic7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXlxcJC8sIHRydWUpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWJhZC1jaGFyYWN0ZXInOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtY2hhcmFjdGVyJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBiZWdpbkZsYWdzIChzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgICAgICB2YXIgZW5kRmxhZ3MgPSBzb3VyY2UubG9va0FoZWFkUmVnZXgobmV3IFJlZ0V4cCgnXlsnICsgcG9zc2libGVGbGFncyArICddKicsICcnKSwgdHJ1ZSk7DQogICAgICAgICAgICBpZiAoZW5kRmxhZ3MgPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgIC8vIFVucmVjb2duaXplZCBmbGFnIHVzZWQgaW4gcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWwNCiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWJhZC1jaGFyYWN0ZXInOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWxyZWFkeSBjb25maXJtZWQgdmFsaWRpdHkgZWFybGllcg0KICAgICAgICAgICAgc2V0U3RhdGUoZmluaXNoZWQpOw0KICAgICAgICAgICAgcmV0dXJuICdyZWdleC1mbGFncyc7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gZmluaXNoZWQgKCkgew0KICAgICAgICAgICAgdGhyb3cgU3RvcEl0ZXJhdGlvbjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGN1c3RvbU91dHNpZGVDbGFzcyAoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgICAgICAgaWYgKGNvbmZpZy5uYW1lZF9iYWNrcmVmZXJlbmNlcyAmJiBzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXGs8KFtcdyRdKyk+LywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LW5hbWVkLWJhY2tyZWZlcmVuY2UnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKF9oYXNGbGFnKCd4JykgJiYgc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eKD86Iy4qKSs/LywgdHJ1ZSkpIHsgLy8gRml4OiBsb29rQWhlYWRSZWdleCB3aWxsIGF2b2lkIG5ldyBsaW5lczsgYWRkZWQgZXh0cmEgJz8nIGF0IGVuZA0KICAgICAgICAgICAgICAgIC8vIFJlZ2V4IHNob3VsZCBiZSAvXig/OlxzK3wjLiopKz8vICBidXQgdGhpcyB3YXMgcHJvYmxlbWF0aWMNCiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWZyZWUtc3BhY2luZy1tb2RlJzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWQoJ1snLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cXj9dLywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5lbXB0eV9jaGFyX2NsYXNzID8gJ3JlZ2V4LWVtcHR5LWNsYXNzJyA6ICdyZWdleC1iYWQtY2hhcmFjdGVyJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoJ14nKSkgew0KICAgICAgICAgICAgICAgICAgICBuZWdhdGVkQ2hhckNsYXNzID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc2V0U3RhdGUoaW5zaWRlX2NsYXNzKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LWNsYXNzLWJlZ2luJzsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gVW5tYXRjaGVkIGVuZGluZyBwYXJlbnRoZXNlcw0KICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWQoJyknLCB0cnVlKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAncmVnZXgtZW5kaW5nLWdyb3VwJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKCcoJywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm1vZGVfbW9kaWZpZXIgJiYgbW9kZV9tb2RpZmllcl9iZWd1bikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbW9kZV9tb2RpZmllciA9IHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXlw/KFtpbXN4XSspXCkvLCB0cnVlKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVfbW9kaWZpZXIpIHsgLy8gV2Uga25vdyBpdCBzaG91bGQgZXhpc3QgaWYgd2UncmUgaGVyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkRmxhZ3MobW9kZV9tb2RpZmllclsxXSk7IC8vIEhhbmRsZSBmbGFncyBlYXJsaWVyDQogICAgICAgICAgICAgICAgICAgICAgICBtb2RlX21vZGlmaWVyX2JlZ3VuID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3JlZ2V4LW1vZGUtbW9kaWZpZXInOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cPyNbXildKlwpLywgdHJ1ZSkpIHsgLy8gTm8gYXBwYXJlbnQgbmVzdGluZyBvZiBjb21tZW50cz8NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1jb21tZW50LXBhdHRlcm4nOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIHZhciByZXQ7DQogICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXig/IVw/KS8sIHRydWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHJldCA9ICdyZWdleC1jYXB0dXJpbmctZ3JvdXAnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxvb2tBaGVhZFJlZ2V4KC9eXD88KFskXHddKyk+LywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LW5hbWVkLWNhcHR1cmluZy1ncm91cCc7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkUmVnZXgoL15cP1s6PSFdLywgdHJ1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0ID0gJ3JlZ2V4LWdyb3VwaW5nJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCFyZXQpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdyZWdleC1iYWQtY2hhcmFjdGVyJzsgLy8gJ1VuY2F1Z2h0IHBhcmVudGhldGljYWwgaW4gdG9rZW5pemluZyByZWd1bGFyIGV4cHJlc3Npb24nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIG91dHNpZGVfY2xhc3Moc291cmNlLCBzZXRTdGF0ZSk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzdGFydFN0YXRlKSB7DQogICAgICAgICAgICByZXR1cm4gbm9XU1Rva2VuaXplcihzb3VyY2UsIHN0YXJ0U3RhdGUgfHwgY3VzdG9tT3V0c2lkZUNsYXNzKTsNCiAgICAgICAgfTsNCiAgICB9KSgpOw0KDQoNCiAgICBmdW5jdGlvbiByZXNldFN0YXRlVmFyaWFibGVzICgpIHsNCiAgICAgICAgaW5pdGlhbEZvdW5kID0gZmFsc2UsIGVuZEZvdW5kID0gZmFsc2UsIGNoYXJDbGFzc1JhbmdlQmVndW4gPSBmYWxzZSwgbmVnYXRlZENoYXJDbGFzcyA9IGZhbHNlLA0KICAgICAgICBtb2RlX21vZGlmaWVyX2JlZ3VuID0gZmFsc2U7DQogICAgICAgIGZsYWdzID0gJyc7DQogICAgICAgIGlmIChjb25maWcuZmxhZ3MpIHsgLy8gUmVzZXQgdG8gY29uZmlndXJhdGlvbiB2YWx1ZQ0KICAgICAgICAgICAgX2FkZEZsYWdzKGNvbmZpZy5mbGFncyk7DQogICAgICAgIH0NCiAgICAgICAgZ3JvdXBUeXBlcyA9IFtdLA0KICAgICAgICAgICAgZ3JvdXBDb3VudHMgPSB7DQogICAgICAgICAgICAgICAgJ2NhcHR1cmluZy1ncm91cCc6IHtjdXJyZW50Q291bnQ6IDB9LA0KICAgICAgICAgICAgICAgICduYW1lZC1jYXB0dXJpbmctZ3JvdXAnOiB7Y3VycmVudENvdW50OiAwfSwNCiAgICAgICAgICAgICAgICAnZ3JvdXBpbmcnOiB7Y3VycmVudENvdW50OiAwfQ0KICAgICAgICAgICAgfTsNCiAgICB9DQoNCiAgICAvLyBQYXJzZXINCiAgICBmdW5jdGlvbiBwYXJzZVJlZ2V4IChzb3VyY2UpIHsNCiAgICAgICAgcmVzZXRTdGF0ZVZhcmlhYmxlcygpOw0KDQogICAgICAgIHZhciB0b2tlbnMgPSB0b2tlbml6ZVJlZ2V4KHNvdXJjZSk7DQoNCiAgICAgICAgaWYgKGNvbmZpZy5saXRlcmFsICYmICFzb3VyY2UuZXF1YWxzKGNvbmZpZy5saXRlcmFsX2luaXRpYWwpKSB7DQogICAgICAgICAgICB0aHJvdyAnUmVndWxhciBleHByZXNzaW9uIGxpdGVyYWxzIG11c3QgaW5jbHVkZSBhIGJlZ2lubmluZyAiJytjb25maWcubGl0ZXJhbF9pbml0aWFsKyciJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChjb25maWcubGl0ZXJhbCkgew0KICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgnXltcXHNcXFNdKicgKyBfZXNjKGNvbmZpZy5saXRlcmFsX2luaXRpYWwpICsgJyhbJyArIHBvc3NpYmxlRmxhZ3MgKyAnXSopJCcsICcnKTsNCiAgICAgICAgICAgIHZhciBlbmRGbGFncyA9IHNvdXJjZS5sb29rQWhlYWRSZWdleChyZWdleCk7DQogICAgICAgICAgICBpZiAoZW5kRmxhZ3MgPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICAvLyBVbnJlY29nbml6ZWQgZmxhZyB1c2VkIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaXRlcmFsDQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBfYWRkRmxhZ3MoZW5kRmxhZ3NbMV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKGNvbmZpZy5tb2RlX21vZGlmaWVyKSB7IC8vIEZpeDogV2UgYXJlIG5vdCBhbGxvd2luZyBib3RoIGEgbW9kZSBtb2RpZmllciBhbmQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaXRlcmFsIHN5bnRheCAocHJlc3VtYWJseSByZWR1bmRhbnQpDQogICAgICAgICAgICB2YXIgbW9kZV9tb2RpZmllciA9IHNvdXJjZS5sb29rQWhlYWRSZWdleCgvXlwoXD8oW2ltc3hdKylcKS8sIHRydWUpOw0KICAgICAgICAgICAgaWYgKG1vZGVfbW9kaWZpZXIpIHsNCiAgICAgICAgICAgICAgICBtb2RlX21vZGlmaWVyX2JlZ3VuID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBfYWRkRmxhZ3MobW9kZV9tb2RpZmllclsxXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIGl0ZXIgPSB7DQogICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgbGV2ZWxfbnVtLA0KICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0b2tlbnMubmV4dCgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSB0b2tlbi5zdHlsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSB0b2tlbi5jb250ZW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkcmVuLCBjdXJyZW50Q2hpbGRyZW4sIGN1cnJlbnRDb3VudCwgY3VycmVudEdyb3VwU3R5bGUsDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gc3R5bGUucmVwbGFjZSgvXnJlZ2V4LS8sICcnKTsNCg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VuZGluZy1ncm91cCc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFncm91cFR5cGVzLmxlbmd0aCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbG9zaW5nIHBhcmVudGhlc2lzIHdpdGhvdXQgYW4gb3BlbmluZyBvbmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSAncmVnZXgtYmFkLWNoYXJhY3Rlcic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbF9udW0gPSBjb25maWcubWF4X2xldmVscyA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGdyb3VwVHlwZXMubGVuZ3RoICUgY29uZmlnLm1heF9sZXZlbHMpIHx8IGNvbmZpZy5tYXhfbGV2ZWxzKSA6IGdyb3VwVHlwZXMubGVuZ3RoOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9wcGVkID0gZ3JvdXBUeXBlcy5wb3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgbnVtYmVyZWQgY2xhc3Nlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hpbGRyZW4gPSBncm91cENvdW50c1twb3BwZWRdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudENoaWxkcmVuICYmIGN1cnJlbnRDaGlsZHJlbi5jdXJyZW50Q2hpbGRyZW4gJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaGlsZHJlbi5jdXJyZW50Q2hpbGRyZW4uY3VycmVudENoaWxkcmVuKSB7IC8vIEZpbmQgbG93ZXN0IGxldmVsIHBhcmVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENoaWxkcmVuID0gY3VycmVudENoaWxkcmVuLmN1cnJlbnRDaGlsZHJlbjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY3VycmVudENoaWxkcmVuLmN1cnJlbnRDaGlsZHJlbjsgLy8gVXNlIHBhcmVudCB0byBkZWxldGUgY2hpbGRyZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENvdW50ID0gY3VycmVudENoaWxkcmVuLmN1cnJlbnRDb3VudDsgLy8gVXNlIHBhcmVudCBhcyBuZXcgY2hpbGQgdG8gZ2V0IGN1cnJlbnQgY291bnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENvdW50ID0gY29uZmlnLm1heF9hbHRlcm5hdGluZyA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGN1cnJlbnRDb3VudCAlIGNvbmZpZy5tYXhfYWx0ZXJuYXRpbmcpIHx8IGNvbmZpZy5tYXhfYWx0ZXJuYXRpbmcpIDogY3VycmVudENvdW50Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRHcm91cFN0eWxlID0gbGV2ZWxfbnVtICsgJy0nICsgY3VycmVudENvdW50Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9ICdyZWdleC1lbmRpbmctJyArIHBvcHBlZCArICcgcmVnZXgtZW5kaW5nLScgKyBwb3BwZWQgKyBjdXJyZW50R3JvdXBTdHlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5pbm5lcl9ncm91cF9tb2RlID09PSAndW5pZm9ybScpIHsgLy8gJ3R5cGUnIGlzIGF1dG9tYXRpY2FsbHkgcHJvY2Vzc2VkIGZvciBlbmRpbmcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlICs9ICcgcmVnZXgtZ3JvdXAtJyArIGN1cnJlbnRHcm91cFN0eWxlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FwdHVyaW5nLWdyb3VwJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ25hbWVkLWNhcHR1cmluZy1ncm91cCc6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdncm91cGluZyc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkcmVuID0gZ3JvdXBDb3VudHNbdHlwZV0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hpbGRyZW4gPSBncm91cENvdW50c1t0eXBlXS5jdXJyZW50Q2hpbGRyZW47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRDaGlsZHJlbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0Q2hpbGRyZW4gPSBjdXJyZW50Q2hpbGRyZW47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaGlsZHJlbiA9IGN1cnJlbnRDaGlsZHJlbi5jdXJyZW50Q2hpbGRyZW47DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb3VudCA9ICsrbGFzdENoaWxkcmVuLmN1cnJlbnRDb3VudDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxhc3RDaGlsZHJlbi5jdXJyZW50Q2hpbGRyZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkcmVuLmN1cnJlbnRDaGlsZHJlbiA9IHtjdXJyZW50Q291bnQ6IDB9Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwVHlwZXMucHVzaCh0eXBlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbF9udW0gPSBjb25maWcubWF4X2xldmVscyA/DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZ3JvdXBUeXBlcy5sZW5ndGggJSBjb25maWcubWF4X2xldmVscykgfHwgY29uZmlnLm1heF9sZXZlbHMpIDogZ3JvdXBUeXBlcy5sZW5ndGg7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgbnVtYmVyZWQgY2xhc3Nlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb3VudCA9IGNvbmZpZy5tYXhfYWx0ZXJuYXRpbmcgPw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGN1cnJlbnRDb3VudCAlIGNvbmZpZy5tYXhfYWx0ZXJuYXRpbmcpIHx8IGNvbmZpZy5tYXhfYWx0ZXJuYXRpbmcpIDogY3VycmVudENvdW50Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRHcm91cFN0eWxlID0gbGV2ZWxfbnVtICsgJy0nICsgY3VycmVudENvdW50Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50U3R5bGUgPSAnICcgKyB0b2tlbi5zdHlsZTsNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5pbm5lcl9ncm91cF9tb2RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlICs9IGNvbmZpZy5pbm5lcl9ncm91cF9tb2RlID09PSAndHlwZScgPw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0eWxlICsgY3VycmVudEdyb3VwU3R5bGUgOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyByZWdleC1ncm91cC0nICsgY3VycmVudEdyb3VwU3R5bGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlICs9ICcgJyArIHN0eWxlICsgY3VycmVudEdyb3VwU3R5bGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSArPSBjdXJyZW50U3R5bGUgKyBjdXJyZW50R3JvdXBTdHlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkcmVuLmN1cnJlbnRHcm91cFN0eWxlID0gY3VycmVudEdyb3VwU3R5bGU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdENoaWxkcmVuLmN1cnJlbnRTdHlsZSA9IGN1cnJlbnRTdHlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFsbG93IGFiaWxpdHkgdG8gZXh0cmFjdCBpbmZvcm1hdGlvbiBvbiBjaGFyYWN0ZXIgZXF1aXZhbGVuY2UsIGUuZy4sIGZvciB1c2Ugb24gdG9vbHRpcHMNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NsYXNzLW9jdGFsJzogY2FzZSAnb2N0YWwnOiAvLyBGYWxsLXRocm91Z2gNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NsYXNzLW9jdGFsLWJlZ2luLXJhbmdlJzogY2FzZSAnY2xhc3Mtb2N0YWwtZW5kLXJhbmdlJzogLy8gRmFsbC10aHJvdWdoDQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcy1hc2NpaS1iZWdpbi1yYW5nZSc6IGNhc2UgJ2NsYXNzLWFzY2lpLWVuZC1yYW5nZSc6IC8vIEZhbGwtdGhyb3VnaA0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MtYXNjaWknOiBjYXNlICdhc2NpaSc6IC8vIEZpcmVmb3ggYXBwYXJlbnRseSB0cmVhdHMgYXNjaWkgaGVyZSBhcyBvY3RhbHMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5lcXVpdmFsZW50ID0gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjb250ZW50LnJlcGxhY2UoL15cXC8sICcnKSwgOCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MtaGV4JzogY2FzZSAnaGV4JzogLy8gRmFsbC10aHJvdWdoDQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcy1oZXgtYmVnaW4tcmFuZ2UnOiBjYXNlICdjbGFzcy1oZXgtZW5kLXJhbmdlJzogLy8gRmFsbC10aHJvdWdoDQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcy11bmljb2RlLWVzY2FwZSc6IGNhc2UgJ2NsYXNzLXVuaWNvZGUtZXNjYXBlLWJlZ2luLXJhbmdlJzogIC8vIEZhbGwtdGhyb3VnaA0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MtdW5pY29kZS1lc2NhcGUtZW5kLXJhbmdlJzogY2FzZSAndW5pY29kZS1lc2NhcGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLmVxdWl2YWxlbnQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KCcweCcrY29udGVudC5yZXBsYWNlKC9eXFwoeHx1KS8sICcnKSwgMTYpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NsYXNzLWFzY2lpLWNvbnRyb2wtYmVnaW4tcmFuZ2UnOiBjYXNlICdjbGFzcy1hc2NpaS1jb250cm9sLWVuZC1yYW5nZSc6IC8vIEZhbGwtdGhyb3VnaA0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MtYXNjaWktY29udHJvbCc6IGNhc2UgJ2FzY2lpLWNvbnRyb2wnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLmVxdWl2YWxlbnQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvbnRlbnQucmVwbGFjZSgvXlxcYy8sICcnKS5jaGFyQ29kZUF0KDApIC0gNjQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3Mtc3BlY2lhbC1lc2NhcGUnOiBjYXNlICdjbGFzcy1zcGVjaWFsLWVzY2FwZS1iZWdpbi1yYW5nZSc6IC8vIEZhbGwtdGhyb3VnaA0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3Mtc3BlY2lhbC1lc2NhcGUtZW5kLXJhbmdlJzogY2FzZSAnc3BlY2lhbC1lc2NhcGUnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVycyB0byBpZ25vcmUgKHRob3VnaCBzb21lIChcZCwgXHMsIFx3KSBjb3VsZCBoYXZlIHRoZWlycyBsaXN0ZWQpOiBiQmREc1N3Vw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjaHIgPSBjb250ZW50LnJlcGxhY2UoL15cXC8sICcnKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gJ2ZucnR2Jy5pbmRleE9mKGNociksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxFcXVpdnMgPSAnXGZcblxyXHRcdic7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyAhPT0gLTEpIHsgLy8gTWF5IG5vdCBiZSB2aXNpYmxlIHdpdGhvdXQgY29udmVyc2lvbiB0byBjb2RlcG9pbnRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gc3BlY2lhbEVxdWl2cy5jaGFyQXQocG9zKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhleCA9IGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uZGlzcGxheSA9ICdVKycgKyBBcnJheSg1IC0gaGV4Lmxlbmd0aCkuam9pbignMCcpICsgaGV4Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5lcXVpdmFsZW50ID0gYzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdyZWdleC1jbGFzcy1lc2NhcGVkLXNwZWNpYWwnOiBjYXNlICdyZWdleC1jbGFzcy1lc2NhcGVkLXNwZWNpYWwtYmVnaW4tcmFuZ2UnOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVnZXgtY2xhc3MtZXNjYXBlZC1zcGVjaWFsLWVuZC1yYW5nZSc6DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcy1leHRyYS1lc2NhcGVkLWJlZ2luLXJhbmdlJzogY2FzZSAnY2xhc3MtZXh0cmEtZXNjYXBlZC1lbmQtcmFuZ2UnOg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MtZXh0cmEtZXNjYXBlZCc6IGNhc2UgJ2V4dHJhLWVzY2FwZWQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLmVxdWl2YWxlbnQgPSBjb250ZW50LnJlcGxhY2UoL15cXC8sICcnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy51bmljb2RlX21vZGUgPT09ICdzdG9yZScpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy51bmljb2RlX2NhdGVnb3JpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXQgPSB0eXBlLm1hdGNoKC9yZWdleC11bmljb2RlLWNhdGVnb3J5LShcdys/KS0oPzpvdXRzaWRlfGluc2lkZSkvKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYXQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5lcXVpdmFsZW50ID0gX2V4cGFuZFJhbmdlKCdjYXRlZ29yaWVzJywgY2F0WzFdKSB8fCAnJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi51bmljb2RlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLnVuaWNvZGVfYmxvY2tzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYmxvY2sgPSB0eXBlLm1hdGNoKC9yZWdleC11bmljb2RlLWJsb2NrLShcdyspLSg/Om91dHNpZGV8aW5zaWRlKS8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uZXF1aXZhbGVudCA9IF9leHBhbmRSYW5nZSgnYmxvY2tzJywgYmxvY2tbMV0pIHx8ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnVuaWNvZGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcudW5pY29kZV9zY3JpcHRzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdHlwZS5tYXRjaCgvcmVnZXgtdW5pY29kZS1zY3JpcHQtKFx3KyktKD86b3V0c2lkZXxpbnNpZGUpLyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uZXF1aXZhbGVudCA9IF9leHBhbmRSYW5nZSgnc2NyaXB0cycsIHNjcmlwdFsxXSkgfHwgJyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udW5pY29kZSA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5pbm5lcl9ncm91cF9tb2RlICYmIHR5cGUgIT09ICdlbmRpbmctZ3JvdXAnICYmIHR5cGUgIT09ICdjYXB0dXJpbmctZ3JvdXAnICYmIHR5cGUgIT09ICduYW1lZC1jYXB0dXJpbmctZ3JvdXAnICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSAhPT0gJ2dyb3VwaW5nJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxfbnVtID0gY29uZmlnLm1heF9sZXZlbHMgPw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZ3JvdXBUeXBlcy5sZW5ndGggJSBjb25maWcubWF4X2xldmVscykgfHwgY29uZmlnLm1heF9sZXZlbHMpIDogZ3JvdXBUeXBlcy5sZW5ndGg7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGxvdyBudW1iZXJlZCBjbGFzc2VzDQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IGdyb3VwVHlwZXNbZ3JvdXBUeXBlcy5sZW5ndGggLSAxXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENoaWxkcmVuID0gZ3JvdXBDb3VudHNbbGFzdF07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRDaGlsZHJlbiAmJiBjdXJyZW50Q2hpbGRyZW4uY3VycmVudENoaWxkcmVuICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaGlsZHJlbi5jdXJyZW50Q2hpbGRyZW4uY3VycmVudENoaWxkcmVuKSB7IC8vIEZpbmQgbG93ZXN0IGxldmVsIHBhcmVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hpbGRyZW4gPSBjdXJyZW50Q2hpbGRyZW4uY3VycmVudENoaWxkcmVuOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSArPSBjb25maWcuaW5uZXJfZ3JvdXBfbW9kZSA9PT0gJ3R5cGUnID8gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hpbGRyZW4uY3VycmVudFN0eWxlICsgY3VycmVudENoaWxkcmVuLmN1cnJlbnRHcm91cFN0eWxlIDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgcmVnZXgtZ3JvdXAtJyArIGN1cnJlbnRDaGlsZHJlbi5jdXJyZW50R3JvdXBTdHlsZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZS5tb3JlKCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cFR5cGVzLmxlbmd0aCkgeyAvLyBPcGVuaW5nIGdyb3VwIHdpdGhvdXQgYSBjbG9zaW5nIHBhcmVudGhlc2lzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSAncmVnZXgtYmFkLWNoYXJhY3Rlcic7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25maWcubGl0ZXJhbCAmJiAhZW5kRm91bmQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3Rocm93ICdSZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbHMgbXVzdCBpbmNsdWRlIGEgKG5vbi1lc2NhcGVkKSBlbmRpbmcgIicgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGNvbmZpZy5saXRlcmFsX2luaXRpYWwgKyAnIiAod2l0aCBvcHRpb25hbCBmbGFncykuJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9ICdyZWdleC1iYWQtY2hhcmFjdGVyJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjYXRjaCAoZSkgew0KaWYgKGUgIT0gU3RvcEl0ZXJhdGlvbikgew0KICAgIGFsZXJ0KGUgKyAnOjonK2UubGluZU51bWJlcik7DQp9DQogICAgICAgICAgICAgICAgICAgIHRocm93IGU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBjb3B5OiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgX2luaXRpYWxGb3VuZCA9IGluaXRpYWxGb3VuZCwgX2NoYXJDbGFzc1JhbmdlQmVndW4gPSBjaGFyQ2xhc3NSYW5nZUJlZ3VuLA0KICAgICAgICAgICAgICAgICAgICBfbmVnYXRlZENoYXJDbGFzcyA9IG5lZ2F0ZWRDaGFyQ2xhc3MsIF9mbGFncyA9IGZsYWdzLA0KICAgICAgICAgICAgICAgICAgICBfZW5kRm91bmQgPSBlbmRGb3VuZCwgX2dyb3VwVHlwZXMgPSBncm91cFR5cGVzLA0KICAgICAgICAgICAgICAgICAgICBfbW9kZV9tb2RpZmllcl9iZWd1biA9IG1vZGVfbW9kaWZpZXJfYmVndW4sDQogICAgICAgICAgICAgICAgICAgIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlLA0KICAgICAgICAgICAgICAgICAgICBfZ3JvdXBDb3VudHMgPSBfY29weU9iaihncm91cENvdW50cywgdHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgew0KICAgICAgICAgICAgICAgICAgICBpbml0aWFsRm91bmQgPSBfaW5pdGlhbEZvdW5kOw0KICAgICAgICAgICAgICAgICAgICBjaGFyQ2xhc3NSYW5nZUJlZ3VuID0gX2NoYXJDbGFzc1JhbmdlQmVndW47DQogICAgICAgICAgICAgICAgICAgIG5lZ2F0ZWRDaGFyQ2xhc3MgPSBfbmVnYXRlZENoYXJDbGFzczsNCiAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSBfZmxhZ3M7DQogICAgICAgICAgICAgICAgICAgIGVuZEZvdW5kID0gX2VuZEZvdW5kOw0KICAgICAgICAgICAgICAgICAgICBncm91cFR5cGVzID0gX2dyb3VwVHlwZXM7DQogICAgICAgICAgICAgICAgICAgIG1vZGVfbW9kaWZpZXJfYmVndW4gPSBfbW9kZV9tb2RpZmllcl9iZWd1bjsNCiAgICAgICAgICAgICAgICAgICAgdG9rZW5zID0gdG9rZW5pemVSZWdleChzb3VyY2UsIF90b2tlblN0YXRlKTsNCiAgICAgICAgICAgICAgICAgICAgZ3JvdXBDb3VudHMgPSBfZ3JvdXBDb3VudHM7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgIH07DQogICAgICAgIHJldHVybiBpdGVyOw0KICAgIH0NCg0KICAgIC8vIFBhcnNlciBvYmplY3QNCiAgICByZXR1cm4gew0KICAgICAgICBtYWtlOiBwYXJzZVJlZ2V4LA0KICAgICAgICBjb25maWd1cmU6IGZ1bmN0aW9uIChwYXJzZXJDb25maWcpIHsNCiAgICAgICAgICAgIHZhciB1bmljb2RlID0gdGhpcy51bmljb2RlOw0KDQogICAgICAgICAgICAvLyBPdmVycmlkYWJsZQ0KICAgICAgICAgICAgX3NldE9wdGlvbnMoJ3VuaWNvZGVfbW9kZScsICdzaW1wbGUnKTsNCiAgICAgICAgICAgIF9zZXRPcHRpb25zKHJlZ2V4Q29uZmlnQm9vbGVhbk9wdGlvbnMsIGZhbHNlKTsNCiAgICAgICAgICAgIGlmIChwYXJzZXJDb25maWcudW5pY29kZV9jbGFzc2VzKSB7DQogICAgICAgICAgICAgICAgX3NldE9wdGlvbnMoWyd1bmljb2RlX2Jsb2NrcycsICd1bmljb2RlX3NjcmlwdHMnLCAndW5pY29kZV9jYXRlZ29yaWVzJ10sIHRydWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChwYXJzZXJDb25maWcuZmxhdm9yKSB7DQogICAgICAgICAgICAgICAgY2FzZSAnZWNtYS0yNjItZWQ1JzoNCiAgICAgICAgICAgICAgICAgICAgX3NldE9wdGlvbnMoWydlbXB0eV9jaGFyX2NsYXNzJ10sIHRydWUpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGYWxsLXRocm91Z2gNCiAgICAgICAgICAgICAgICBjYXNlICdlY21hLTI2Mi1lZDMnOg0KICAgICAgICAgICAgICAgICAgICBjb25maWcucG9zc2libGVfZmxhZ3MgPSAnZ2ltJzsgLy8gSWYgd2lzaCBmb3IgRmlyZWZveCAneScsIGFkZCBpdCBvbiBwYXJzZXJDb25maWcNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAnYWxsJzoNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBfc2V0T3B0aW9ucyhyZWdleENvbmZpZ0Jvb2xlYW5PcHRpb25zLCB0cnVlKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFNldHRpbmcgd2l0aCBwb3NzaWJsZSBvdmVycmlkZXMNCiAgICAgICAgICAgIGZvciAodmFyIG9wdCBpbiBwYXJzZXJDb25maWcpIHsNCiAgICAgICAgICAgICAgICBpZiAoKC9ecmVnZXhfLykudGVzdChvcHQpKSB7IC8vIFVzZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpTK1JlZ2V4DQogICAgICAgICAgICAgICAgICAgIGNvbmZpZ1tvcHQucmVwbGFjZSgvXnJlZ2V4Xy8sICcnKV0gPSBwYXJzZXJDb25maWdbb3B0XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbmZpZ1tvcHRdID0gcGFyc2VyQ29uZmlnW29wdF07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFBvc3QtcHJvY2Vzc2luZw0KICAgICAgICAgICAgaWYgKGNvbmZpZy5wb3NzaWJsZV9mbGFncykgew0KICAgICAgICAgICAgICAgIF9zZXRQb3NzaWJsZUZsYWdzKGNvbmZpZy5wb3NzaWJsZV9mbGFncyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmIChjb25maWcudW5pY29kZV9tb2RlICE9PSAnc2ltcGxlJykgew0KICAgICAgICAgICAgICAgIGlmICghdW5pY29kZSkgew0KICAgICAgICAgICAgICAgICAgICB0aHJvdyAnWW91IG11c3QgaW5jbHVkZSB0aGUgcGFyc2VyZWdleC11bmljb2RlLmpzIGZpbGUgaW4gb3JkZXIgdG8gdXNlIHZhbGlkYXRlIG9yIHN0b3JhZ2UgbW9kZSBVbmljb2RlJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9Ow0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/css/schemecolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMTAwJTsNCiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7DQp9DQoNCi5lZGl0Ym94IHsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMTAwJTsNCiAgbWFyZ2luOiAwcHQ7DQogIHBhZGRpbmc6IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQoNCg0KcHJlLmNvZGUsIC5lZGl0Ym94IHsNCiAgY29sb3I6ICM2NjY2NjY7DQp9DQoNCi5lZGl0Ym94IHAgew0KICBtYXJnaW46IDA7DQp9DQoNCnNwYW4uc2NoZW1lLXN0cmluZwl7Y29sb3I6IGdyZWVuO30NCnNwYW4uc2NoZW1lLW51bWJlcgl7Y29sb3I6IGJsdWU7fQ0Kc3Bhbi5zY2hlbWUtYm9vbGVhbiAgICAge2NvbG9yOiBkYXJrcmVkO30NCnNwYW4uc2NoZW1lLWNoYXJhY3Rlcgl7Y29sb3I6IG9yYW5nZTt9DQpzcGFuLnNjaGVtZS1zeW1ib2wJe2NvbG9yOiBzdGVlbGJsdWU7fQ0Kc3Bhbi5zY2hlbWUtcHVuY3R1YXRpb24ge2NvbG9yOiBibGFjazt9DQpzcGFuLnNjaGVtZS1scGFyZW4gICAgICB7Y29sb3I6IGJsYWNrO30NCnNwYW4uc2NoZW1lLXJwYXJlbiAgICAgIHtjb2xvcjogYmxhY2s7fQ0Kc3Bhbi5zY2hlbWUtY29tbWVudCAgICAgeyBjb2xvcjogb3JhbmdlOyB9DQoNCnNwYW4uZ29vZC1tYXRjaGluZy1wYXJlbiB7IA0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGNvbG9yOiAjMzM5OUZGOyAgDQp9DQpzcGFuLmJhZC1tYXRjaGluZy1wYXJlbiB7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgY29sb3I6IHJlZDsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KICA8aGVhZD4NCiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvY29kZW1pcnJvci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvbWlycm9yZnJhbWUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQogICAgPHRpdGxlPkNvZGVNaXJyb3I6IFNjaGVtZSBkZW1vbnN0cmF0aW9uPC90aXRsZT4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi8uLi9jc3MvZG9jcy5jc3MiLz4NCg0KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgICAuQ29kZU1pcnJvci1saW5lLW51bWJlcnMgew0KICAgICAgICB3aWR0aDogMi4yZW07DQogICAgICAgIGNvbG9yOiAjYWFhOw0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOw0KICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsNCiAgICAgICAgcGFkZGluZy1yaWdodDogLjNlbTsNCiAgICAgICAgZm9udC1zaXplOiAxMHB0Ow0KICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICAgICAgICBwYWRkaW5nLXRvcDogLjRlbTsNCiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCiAgICAgIH0NCiAgICA8L3N0eWxlPg0KICA8L2hlYWQ+DQogIDxib2R5IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+DQoNCjxwPlRoaXMgcGFnZSBkZW1vbnN0cmF0ZXMgPGEgaHJlZj0iaW5kZXguaHRtbCI+Q29kZU1pcnJvcjwvYT4ncw0KU2NoZW1lIHBhcnNlci4gKDxhIGhyZWY9IkxJQ0VOU0UiPmxpY2Vuc2U8L2E+KTwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Ij4NCjx0ZXh0YXJlYSBpZD0iY29kZSIgY29scz0iMTIwIiByb3dzPSIzMCI+DQooZGVmaW5lIChmYWN0b3JpYWwgeCkNCiAgKGNvbmQNCiAgICBbKD0geCAwKQ0KICAgICAxXQ0KICAgIFtlbHNlDQogICAgICgqIHggKGZhY3RvcmlhbCAoc3ViMSB4KSkpXSkpDQoNCihsaXN0ICJUaGlzIGlzIGEgc3RyaW5nIg0KICAgICAgJ2Jvb2xlYW4NCiAgICAgIHRydWUNCiAgICAgIDMuMTQpDQoNCihsb2NhbCBbKGRlZmluZSB4IDQyKV0NCiAgKHByaW50ZiAib2t+biIpKQ0KPC90ZXh0YXJlYT4NCjwvZGl2Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogIGZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkgew0KICAgIGlmICghZWRpdG9yLndpbi5oYXNDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpKSB7DQogICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICgoZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoIiAiKSkuY29uY2F0KFtjbGFzc05hbWVdKSkuam9pbigiICIpOw0KICAgIH0NCiAgfQ0KDQogIGZ1bmN0aW9uIHJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkgew0KICAgIGlmIChlZGl0b3Iud2luLmhhc0NsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkpIHsNCiAgICAgIHZhciBjbGFzc2VzID0gZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoIiAiKTsNCiAgICAgIGZvciAodmFyIGkgPSBjbGFzc2VzLmxlbmd0aCAtIDEgOyBpID49IDA7IGktLSkgew0KICAgICAgICBpZiAoY2xhc3Nlc1tpXSA9PT0gY2xhc3NOYW1lKSB7DQogICAgICAgICAgICBjbGFzc2VzLnNwbGljZShpLCAxKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc2VzLmpvaW4oIiAiKTsNCiAgICB9DQogIH0NCg0KICB2YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29kZScpOw0KICB2YXIgZWRpdG9yID0gbmV3IENvZGVNaXJyb3IoQ29kZU1pcnJvci5yZXBsYWNlKHRleHRhcmVhKSwgew0KICAgIGhlaWdodDogIjM1MHB4IiwNCiAgICBjb250ZW50OiB0ZXh0YXJlYS52YWx1ZSwNCiAgICBwYXRoOiAiLi4vLi4vanMvIiwNCiAgICBwYXJzZXJmaWxlOiBbIi4uL2NvbnRyaWIvc2NoZW1lL2pzL3Rva2VuaXplc2NoZW1lLmpzIiwNCiAgICAgICAgICAgICAgICAgIi4uL2NvbnRyaWIvc2NoZW1lL2pzL3BhcnNlc2NoZW1lLmpzIl0sDQogICAgc3R5bGVzaGVldDogICJjc3Mvc2NoZW1lY29sb3JzLmNzcyIsDQogICAgYXV0b01hdGNoUGFyZW5zOiB0cnVlLA0KICAgIGRpc2FibGVTcGVsbGNoZWNrOiB0cnVlLA0KICAgIGxpbmVOdW1iZXJzOiB0cnVlLA0KICAgIG1hcmtQYXJlbjogZnVuY3Rpb24oc3BhbiwgZ29vZCkge2FkZENsYXNzKHNwYW4sIGdvb2QgPyAiZ29vZC1tYXRjaGluZy1wYXJlbiIgOiAiYmFkLW1hdGNoaW5nLXBhcmVuIik7fSwNCiAgICB1bm1hcmtQYXJlbjogZnVuY3Rpb24oc3Bhbikge3JlbW92ZUNsYXNzKHNwYW4sICJnb29kLW1hdGNoaW5nLXBhcmVuIik7IHJlbW92ZUNsYXNzKHNwYW4sICJiYWQtbWF0Y2hpbmctcGFyZW4iKTt9DQogIH0pOw0KPC9zY3JpcHQ+DQoNCiAgPC9ib2R5Pg0KPC9odG1sPg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/js/parsescheme.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIFNjaGVtZVBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQoNCg0KICAgIC8vIGlzTHBhcmVuOiBjaGFyIC0+IGJvb2xlYW4NCiAgICB2YXIgaXNMcGFyZW4gPSBmdW5jdGlvbihjaCkgew0KCXJldHVybiBjaCA9PT0gJygnIHx8IGNoID09PSAnWycgfHwgY2ggPT09ICd7JzsNCiAgICB9Ow0KDQogICAgLy8gaXNScGFyZW46IGNoYXIgLT4gYm9vbGVhbg0KICAgIHZhciBpc1JwYXJlbiA9IGZ1bmN0aW9uKGNoKSB7DQoJcmV0dXJuIGNoID09PSAnKScgfHwgY2ggPT09ICddJyB8fCBjaCA9PT0gJ30nOw0KICAgIH07DQoNCiAgICAvLyBpc01hdGNoaW5nUGFyZW5zOiBjaGFyIGNoYXIgLT4gYm9vbGVhbg0KICAgIHZhciBpc01hdGNoaW5nUGFyZW5zID0gZnVuY3Rpb24obHBhcmVuLCBycGFyZW4pIHsNCglyZXR1cm4gKChscGFyZW4gPT09ICcoJyAmJiBycGFyZW4gPT09ICcpJykgfHwNCgkJKGxwYXJlbiA9PT0gJ1snICYmIHJwYXJlbiA9PT0gJ10nKSB8fA0KCQkobHBhcmVuID09PSAneycgJiYgcnBhcmVuID09PSAnfScpKTsNCiAgICB9Ow0KDQoNCiAgICAvLyBDb21wdXRlIHRoZSBpbmRlbnRhdGlvbiBjb250ZXh0IGVuY2xvc2luZyB0aGUgZW5kIG9mIHRoZSB0b2tlbg0KICAgIC8vIHNlcXVlbmNlIHRva2Vucy4NCiAgICAvLyBUaGUgY29udGV4dCBpcyB0aGUgdG9rZW4gc2VxdWVuY2Ugb2YgdGhlIGVuY2xvc2luZyBzLWV4cHJlc3Npb24sDQogICAgLy8gYXVnbWVudGVkIHdpdGggY29sdW1uIGluZm9ybWF0aW9uLg0KICAgIHZhciBnZXRJbmRlbnRhdGlvbkNvbnRleHQgPSBmdW5jdGlvbih0b2tlblN0YWNrKSB7DQoJdmFyIEVNUFRZX0NPTlRFWFQgPSBbXTsNCg0KCXZhciBwZW5kaW5nUGFyZW5zID0gW10sIGkgPSAwLCBqLCBsaW5lLCBjb2x1bW4sIGNvbnRleHQ7DQoJdmFyIHRva2VucyA9IFtdOw0KDQoJLy8gU2NhbiBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBpbmRlbnRhdGlvbiBjb250ZXh0LCBhY2N1bXVsYXRpbmcgdG9rZW5zLg0KCXdoaWxlICghIGlzRW1wdHlQYWlyKHRva2VuU3RhY2spKSB7DQoJICAgIGkrKzsNCgkgICAgdG9rZW5zLnB1c2gocGFpckZpcnN0KHRva2VuU3RhY2spKTsNCgkgICAgaWYgKGlzTHBhcmVuKHBhaXJGaXJzdCh0b2tlblN0YWNrKS50eXBlKSkgew0KCQlpZiAocGVuZGluZ1BhcmVucy5sZW5ndGggPT09IDApIHsNCgkJICAgIGJyZWFrOw0KCQl9IGVsc2Ugew0KCQkgICAgaWYgKGlzTWF0Y2hpbmdQYXJlbnMocGFpckZpcnN0KHRva2VuU3RhY2spLnZhbHVlLA0KCQkJCQkgcGVuZGluZ1BhcmVuc1twZW5kaW5nUGFyZW5zLmxlbmd0aCAtIDFdKSkgew0KCQkJcGVuZGluZ1BhcmVucy5wb3AoKTsNCgkJICAgIH0gZWxzZSB7DQoJCQkvLyBFcnJvciBjb25kaXRpb246IHdlIHNlZSBtaXNtYXRjaGluZyBwYXJlbnMsDQoJCQkvLyBzbyB3ZSBleGl0IHdpdGggbm8ga25vd24gaW5kZW50YXRpb24gY29udGV4dC4NCgkJCXJldHVybiBFTVBUWV9DT05URVhUOw0KCQkgICAgfQ0KCQl9DQoJICAgIH0gZWxzZSBpZiAoaXNScGFyZW4ocGFpckZpcnN0KHRva2VuU3RhY2spLnR5cGUpKSAgew0KCQlwZW5kaW5nUGFyZW5zLnB1c2gocGFpckZpcnN0KHRva2VuU3RhY2spLnR5cGUpOw0KCSAgICB9DQoJICAgIHRva2VuU3RhY2sgPSBwYWlyUmVzdCh0b2tlblN0YWNrKTsNCgl9DQoNCgkvLyBJZiB3ZSBzY2FubmVkIGJhY2t3YXJkIHRvbyBmYXIsIHdlIGNvdWxkbid0IGZpbmQgYSBjb250ZXh0LiAgSnVzdA0KCS8vIHJldHVybiB0aGUgZW1wdHkgY29udGV4dC4NCglpZiAoaXNFbXB0eVBhaXIodG9rZW5TdGFjaykpIHsgDQoJICAgIHJldHVybiBFTVBUWV9DT05URVhUOyANCgl9DQoNCgkvLyBQb3NpdGlvbiB0b2tlblN0YWNrIHRvIHRoZSBuZXh0IHRva2VuIGJleW9uZC4NCgl0b2tlblN0YWNrID0gcGFpclJlc3QodG9rZW5TdGFjayk7DQoNCgkvLyBXZSBub3cgc2NhbiBiYWNrd2FyZHMgdG8gY2xvc2VzdCBuZXdsaW5lIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbHVtbg0KCS8vIG51bWJlcjoNCgl3aGlsZSAoISBpc0VtcHR5UGFpcih0b2tlblN0YWNrKSkgew0KCSAgICBpZihwYWlyRmlyc3QodG9rZW5TdGFjaykudHlwZSA9PT0gJ3doaXRlc3BhY2UnICYmIA0KCSAgICAgICBwYWlyRmlyc3QodG9rZW5TdGFjaykudmFsdWUgPT09ICdcbicpIHsNCgkJYnJlYWs7DQoJICAgIH0NCgkgICAgdG9rZW5zLnB1c2gocGFpckZpcnN0KHRva2VuU3RhY2spKTsNCgkgICAgdG9rZW5TdGFjayA9IHBhaXJSZXN0KHRva2VuU3RhY2spOw0KCX0NCg0KCWxpbmUgPSAwOw0KCWNvbHVtbiA9IDA7DQoJY29udGV4dCA9IFtdOw0KCS8vIFN0YXJ0IGdlbmVyYXRpbmcgdGhlIGNvbnRleHQsIHdhbGtpbmcgZm9yd2FyZC4NCglmb3IgKGogPSB0b2tlbnMubGVuZ3RoLTE7IGogPj0gMDsgai0tKSB7DQoJICAgIGlmIChqIDwgaSkgew0KCQljb250ZXh0LnB1c2goeyB0eXBlOiB0b2tlbnNbal0udHlwZSwNCgkJCSAgICAgICB2YWx1ZTogdG9rZW5zW2pdLnZhbHVlLA0KCQkJICAgICAgIGxpbmU6IGxpbmUsDQoJCQkgICAgICAgY29sdW1uOiBjb2x1bW4gfSk7DQoJICAgIH0NCg0KCSAgICBpZiAodG9rZW5zW2pdLnR5cGUgPT09ICd3aGl0ZXNwYWNlJyAmJiANCgkJdG9rZW5zW2pdLnZhbHVlID09PSAnXG4nKSB7DQoJCWNvbHVtbiA9IDA7DQoJCWxpbmUrKzsNCgkgICAgfSBlbHNlIHsNCgkJY29sdW1uICs9IHRva2Vuc1tqXS52YWx1ZS5sZW5ndGg7DQoJICAgIH0NCgl9DQoJcmV0dXJuIGNvbnRleHQ7DQoNCg0KICAgIH07DQoNCg0KDQoNCg0KICAgIC8vIGNhbGN1bGF0ZUluZGVudGF0aW9uRnJvbUNvbnRleHQ6IGluZGVudGF0aW9uLWNvbnRleHQgbnVtYmVyIC0+IG51bWJlcg0KICAgIHZhciBjYWxjdWxhdGVJbmRlbnRhdGlvbkZyb21Db250ZXh0ID0gZnVuY3Rpb24oY29udGV4dCwgY3VycmVudEluZGVudGF0aW9uKSB7DQoJaWYgKGNvbnRleHQubGVuZ3RoID09PSAwKSB7DQoJICAgIHJldHVybiAwOw0KCX0NCiAJaWYgKGlzQmVnaW5MaWtlQ29udGV4dChjb250ZXh0KSkgew0KCSAgICByZXR1cm4gYmVnaW5MaWtlSW5kZW50YXRpb24oY29udGV4dCk7DQogCX0NCglpZiAoaXNEZWZpbmVMaWtlQ29udGV4dChjb250ZXh0KSkgew0KCSAgICByZXR1cm4gZGVmaW5lTGlrZUluZGVudGF0aW9uKGNvbnRleHQpOw0KCX0NCiAgCWlmIChpc0xhbWJkYUxpa2VDb250ZXh0KGNvbnRleHQpKSB7DQoJICAgIHJldHVybiBsYW1iZGFMaWtlSW5kZW50YXRpb24oY29udGV4dCk7DQogIAl9DQoJcmV0dXJuIGJlZ2luTGlrZUluZGVudGF0aW9uKGNvbnRleHQsIDApOw0KICAgIH07DQoNCg0KDQogICAgLy8gZmluZENvbnRleHRFbGVtZW50OiBpbmRlbnRhdGlvbi1jb250ZXh0IG51bWJlciAtPiBpbmRleCBvciAtMQ0KICAgIHZhciBmaW5kQ29udGV4dEVsZW1lbnQgPSBmdW5jdGlvbihjb250ZXh0LCBpbmRleCkgew0KCXZhciBkZXB0aCA9IDA7DQoJZm9yKHZhciBpID0gMDsgaSA8IGNvbnRleHQubGVuZ3RoOyBpKyspIHsNCgkgICAgaWYgKGNvbnRleHRbaV0udHlwZSAhPT0gJ3doaXRlc3BhY2UnICYmIGRlcHRoID09PSAxKSB7DQoJCWlmIChpbmRleCA9PT0gMCkNCgkJICAgIHJldHVybiBpOw0KCQllbHNlDQoJCSAgICBpbmRleC0tOw0KCSAgICB9DQoNCgkgICAgaWYgKGlzTHBhcmVuKGNvbnRleHRbaV0udHlwZSkpIHsNCgkJZGVwdGgrKzsNCgkgICAgfQ0KCSAgICBpZiAoaXNScGFyZW4oY29udGV4dFtpXS50eXBlKSkgew0KCQlkZXB0aCA9IE1hdGgubWF4KGRlcHRoIC0gMSwgMCk7DQoJICAgIH0NCgl9DQoJcmV0dXJuIC0xOw0KICAgIH07DQoNCiAgICAvLyBjb250ZXh0RWxlbWVudDogY29udGV4dCAtPiAoYXJyYXlvZiBpbmRleCkNCiAgICB2YXIgY29udGV4dEVsZW1lbnRzID0gZnVuY3Rpb24oY29udGV4dCkgew0KCXZhciBpID0gMCwgaW5kZXgsIHJlc3VsdHMgPSBbXTsNCgkNCgl3aGlsZSAoKGluZGV4ID0gZmluZENvbnRleHRFbGVtZW50KGNvbnRleHQsIGkrKykpICE9IC0xKSB7DQoJICAgIHJlc3VsdHMucHVzaChpbmRleCk7DQoJfQ0KCXJldHVybiByZXN1bHRzOw0KICAgIH07DQoNCg0KDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQogICAgdmFyIEJFR0lOX0xJS0VfS0VZV09SRFMgPSBbImNhc2UtbGFtYmRhIiwgDQoJCQkgICAgICAgImNvbXBvdW5kLXVuaXQiLA0KCQkJICAgICAgICJjb21wb3VuZC11bml0L3NpZyIsDQoJCQkgICAgICAgImNvbmQiLA0KCQkJICAgICAgICJkZWxheSIsDQoJCQkgICAgICAgImluaGVyaXQiLA0KCQkJICAgICAgICJtYXRjaC1sYW1iZGEiLA0KCQkJICAgICAgICJtYXRjaC1sYW1iZGEqIiwNCgkJCSAgICAgICAib3ZlcnJpZGUiLA0KCQkJICAgICAgICJwcml2YXRlIiwNCgkJCSAgICAgICAicHVibGljIiwNCgkJCSAgICAgICAic2VxdWVuY2UiLA0KCQkJICAgICAgICJ1bml0Il07DQoNCiAgICB2YXIgaXNCZWdpbkxpa2VDb250ZXh0ID0gZnVuY3Rpb24oY29udGV4dCkgew0KCXZhciBqID0gZmluZENvbnRleHRFbGVtZW50KGNvbnRleHQsIDApOw0KCWlmIChqID09PSAtMSkgeyByZXR1cm4gZmFsc2U7IH0NCglyZXR1cm4gKC9eYmVnaW4vLnRlc3QoY29udGV4dFtqXS52YWx1ZSkgfHwNCgkJaXNNZW1iZXIoY29udGV4dFtqXS52YWx1ZSwgQkVHSU5fTElLRV9LRVlXT1JEUykpOw0KICAgIH07DQoNCg0KICAgIC8vIEJlZ2luOiBpZiB0aGVyZSdzIG5vIGVsZW1lbnRzIHdpdGhpbiB0aGUgYmVnaW4gY29udGV4dCwNCiAgICAvLyB0aGUgaW5kZW50YXRpb24gaXMgdGhhdCBvZiB0aGUgYmVnaW4ga2V5d29yZCdzIGNvbHVtbiArIG9mZnNldC4NCiAgICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIGxlYWRpbmcgZWxlbWVudCBvbiB0aGUgbGFzdCBsaW5lLg0KICAgIC8vIEFsc28gdXNlZCBmb3IgZGVmYXVsdCBpbmRlbnRhdGlvbi4NCiAgICB2YXIgYmVnaW5MaWtlSW5kZW50YXRpb24gPSBmdW5jdGlvbihjb250ZXh0LCBvZmZzZXQpIHsNCglpZiAodHlwZW9mKG9mZnNldCkgPT09ICd1bmRlZmluZWQnKSB7IG9mZnNldCA9IDE7IH0NCg0KCXZhciBpbmRpY2VzID0gY29udGV4dEVsZW1lbnRzKGNvbnRleHQpLCBqOw0KCWlmIChpbmRpY2VzLmxlbmd0aCA9PT0gMCkgew0KCSAgICByZXR1cm4gY29udGV4dFswXS5jb2x1bW4gKyAxOw0KCX0gZWxzZSBpZiAoaW5kaWNlcy5sZW5ndGggPT09IDEpIHsNCgkgICAgLy8gaWYgd2Ugb25seSBzZWUgdGhlIGJlZ2luIGtleXdvcmQsIGluZGVudGF0aW9uIGlzIGJhc2VkDQoJICAgIC8vIG9mZiB0aGUga2V5d29yZC4NCgkgICAgcmV0dXJuIGNvbnRleHRbaW5kaWNlc1swXV0uY29sdW1uICsgb2Zmc2V0Ow0KCX0gZWxzZSB7DQoJICAgIC8vIE90aGVyd2lzZSwgd2Ugc2NhbiBmb3IgdGhlIGNvbnRleHRFbGVtZW50IG9mIHRoZSBsYXN0IGxpbmUNCgkgICAgZm9yIChqID0gaW5kaWNlcy5sZW5ndGggLTE7IGogPiAxOyBqLS0pIHsNCgkJaWYgKGNvbnRleHRbaW5kaWNlc1tqXV0ubGluZSAhPT0NCgkJICAgIGNvbnRleHRbaW5kaWNlc1tqLTFdXS5saW5lKSB7DQoJCSAgICByZXR1cm4gY29udGV4dFtpbmRpY2VzW2pdXS5jb2x1bW47DQoJCX0NCgkgICAgfQ0KCSAgICByZXR1cm4gY29udGV4dFtpbmRpY2VzW2pdXS5jb2x1bW47DQoJfQ0KICAgIH07DQoNCg0KDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQoNCiAgICB2YXIgREVGSU5FX0xJS0VfS0VZV09SRFMgPSBbImxvY2FsIl07DQoNCiAgICB2YXIgaXNEZWZpbmVMaWtlQ29udGV4dCA9IGZ1bmN0aW9uKGNvbnRleHQpIHsNCgl2YXIgaiA9IGZpbmRDb250ZXh0RWxlbWVudChjb250ZXh0LCAwKTsNCglpZiAoaiA9PT0gLTEpIHsgcmV0dXJuIGZhbHNlOyB9DQoJcmV0dXJuICgvXmRlZi8udGVzdChjb250ZXh0W2pdLnZhbHVlKSB8fA0KCQlpc01lbWJlcihjb250ZXh0W2pdLnZhbHVlLCBERUZJTkVfTElLRV9LRVlXT1JEUykpOw0KICAgIH07DQoNCg0KICAgIHZhciBkZWZpbmVMaWtlSW5kZW50YXRpb24gPSBmdW5jdGlvbihjb250ZXh0KSB7DQoJdmFyIGkgPSBmaW5kQ29udGV4dEVsZW1lbnQoY29udGV4dCwgMCk7DQoJaWYgKGkgPT09IC0xKSB7IHJldHVybiAwOyB9DQoJcmV0dXJuIGNvbnRleHRbaV0uY29sdW1uICsxOyANCiAgICB9Ow0KDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQogICAgdmFyIExBTUJEQV9MSUtFX0tFWVdPUkRTID0gWyJjYXNlcyIsDQoJCQkJImluc3RhbnRpYXRlIiwNCgkJCQkic3VwZXItaW5zdGFudGlhdGUiLA0KCQkJCSJzeW50YXgvbG9jIiwNCgkJCQkicXVhc2lzeW50YXgvbG9jIiwNCgkJCQkibGFtYmRhIiwNCgkJCQkibGV0IiwNCgkJCQkibGV0KiIsDQoJCQkJImxldHJlYyIsDQoJCQkJInJlY3VyIiwNCgkJCQkibGFtYmRhL2t3IiwNCgkJCQkibGV0cmVjLXZhbHVlcyIsDQoJCQkJIndpdGgtc3ludGF4IiwNCgkJCQkid2l0aC1jb250aW51YXRpb24tbWFyayIsDQoJCQkJIm1vZHVsZSIsDQoJCQkJIm1hdGNoIiwNCgkJCQkibWF0Y2gtbGV0IiwNCgkJCQkibWF0Y2gtbGV0KiIsDQoJCQkJIm1hdGNoLWxldHJlYyIsDQoJCQkJImxldC9jYyIsDQoJCQkJImxldC9lYyIsDQoJCQkJImxldGNjIiwNCgkJCQkiY2F0Y2giLA0KCQkJCSJsZXQtc3ludGF4IiwNCgkJCQkibGV0cmVjLXN5bnRheCIsDQoJCQkJImZsdWlkLWxldC1zeW50YXgiLA0KCQkJCSJsZXRyZWMtc3ludGF4ZXMrdmFsdWVzIiwNCgkJCQkiZm9yIiwNCgkJCQkiZm9yL2xpc3QiLA0KCQkJCSJmb3IvaGFzaCIsDQoJCQkJImZvci9oYXNoZXEiLA0KCQkJCSJmb3IvYW5kIiwNCgkJCQkiZm9yL29yIiwNCgkJCQkiZm9yL2xpc3RzIiwNCgkJCQkiZm9yL2ZpcnN0IiwNCgkJCQkiZm9yL2xhc3QiLA0KCQkJCSJmb3IvZm9sZCIsDQoJCQkJImZvcioiLA0KCQkJCSJmb3IqL2xpc3QiLA0KCQkJCSJmb3IqL2hhc2giLA0KCQkJCSJmb3IqL2hhc2hlcSIsDQoJCQkJImZvciovYW5kIiwNCgkJCQkiZm9yKi9vciIsDQoJCQkJImZvciovbGlzdHMiLA0KCQkJCSJmb3IqL2ZpcnN0IiwNCgkJCQkiZm9yKi9sYXN0IiwNCgkJCQkiZm9yKi9mb2xkIiwNCgkJCQkia2VybmVsLXN5bnRheC1jYXNlIiwNCgkJCQkic3ludGF4LWNhc2UiLA0KCQkJCSJzeW50YXgtY2FzZSoiLA0KCQkJCSJzeW50YXgtcnVsZXMiLA0KCQkJCSJzeW50YXgtaWQtcnVsZXMiLA0KCQkJCSJsZXQtc2lnbmF0dXJlIiwNCgkJCQkiZmx1aWQtbGV0IiwNCgkJCQkibGV0LXN0cnVjdCIsDQoJCQkJImxldC1tYWNybyIsDQoJCQkJImxldC12YWx1ZXMiLA0KCQkJCSJsZXQqLXZhbHVlcyIsDQoJCQkJImNhc2UiLA0KCQkJCSJ3aGVuIiwNCgkJCQkidW5sZXNzIiwNCgkJCQkibGV0LWVudW1lcmF0ZSIsDQoJCQkJImNsYXNzIiwNCgkJCQkiY2xhc3MqIiwNCgkJCQkiY2xhc3MtYXNpIiwNCgkJCQkiY2xhc3MtYXNpKiIsDQoJCQkJImNsYXNzKi9uYW1lcyIsDQoJCQkJImNsYXNzMTAwIiwNCgkJCQkiY2xhc3MxMDAqIiwNCgkJCQkiY2xhc3MxMDAtYXNpIiwNCgkJCQkiY2xhc3MxMDAtYXNpKiIsDQoJCQkJImNsYXNzMTAwKi9uYW1lcyIsDQoJCQkJInJlYyIsDQoJCQkJIm1ha2Utb2JqZWN0IiwNCgkJCQkibWl4aW4iLA0KCQkJCSJkZWZpbmUtc29tZSIsDQoJCQkJImRvIiwNCgkJCQkib3B0LWxhbWJkYSIsDQoJCQkJInNlbmQqIiwNCgkJCQkid2l0aC1tZXRob2QiLA0KCQkJCSJkZWZpbmUtcmVjb3JkIiwNCgkJCQkiY2F0Y2giLA0KCQkJCSJzaGFyZWQiLA0KCQkJCSJ1bml0L3NpZyIsDQoJCQkJInVuaXQvbGFuZyIsDQoJCQkJIndpdGgtaGFuZGxlcnMiLA0KCQkJCSJpbnRlcmZhY2UiLA0KCQkJCSJwYXJhbWV0ZXJpemUiLA0KCQkJCSJjYWxsLXdpdGgtaW5wdXQtZmlsZSIsDQoJCQkJImNhbGwtd2l0aC1pbnB1dC1maWxlKiIsDQoJCQkJIndpdGgtaW5wdXQtZnJvbS1maWxlIiwNCgkJCQkid2l0aC1pbnB1dC1mcm9tLXBvcnQiLA0KCQkJCSJjYWxsLXdpdGgtb3V0cHV0LWZpbGUiLA0KCQkJCSJ3aXRoLW91dHB1dC10by1maWxlIiwNCgkJCQkid2l0aC1vdXRwdXQtdG8tcG9ydCIsDQoJCQkJImZvci1hbGwiXTsNCg0KDQogICAgdmFyIGlzTGFtYmRhTGlrZUNvbnRleHQgPSBmdW5jdGlvbihjb250ZXh0KSB7DQoJdmFyIGogPSBmaW5kQ29udGV4dEVsZW1lbnQoY29udGV4dCwgMCk7DQoJaWYgKGogPT09IC0xKSB7IHJldHVybiBmYWxzZTsgfQ0KCXJldHVybiAoaXNNZW1iZXIoY29udGV4dFtqXS52YWx1ZSwgTEFNQkRBX0xJS0VfS0VZV09SRFMpKTsNCiAgICB9Ow0KDQoNCiAgICB2YXIgbGFtYmRhTGlrZUluZGVudGF0aW9uID0gZnVuY3Rpb24oY29udGV4dCkgew0KCXZhciBpID0gZmluZENvbnRleHRFbGVtZW50KGNvbnRleHQsIDApOw0KCWlmIChpID09PSAtMSkgeyByZXR1cm4gMDsgfQ0KCXZhciBqID0gZmluZENvbnRleHRFbGVtZW50KGNvbnRleHQsIDEpOw0KCWlmIChqID09PSAtMSkgeyANCgkgICAgcmV0dXJuIGNvbnRleHRbaV0uY29sdW1uICsgNDsgDQoJfSBlbHNlIHsNCgkgICAgcmV0dXJuIGNvbnRleHRbaV0uY29sdW1uICsgMTsNCgl9DQogICAgfTsNCg0KDQoNCg0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiAgICAvLyBIZWxwZXJzDQogICAgdmFyIGlzTWVtYmVyID0gZnVuY3Rpb24oeCwgbCkgew0KCWZvciAodmFyIGkgPSAwOyBpIDwgbC5sZW5ndGg7IGkrKykgew0KCSAgICBpZiAoeCA9PT0gbFtpXSkgeyByZXR1cm4gdHJ1ZTsgfQ0KCX0NCglyZXR1cm4gZmFsc2U7DQogICAgfTsNCg0KDQoNCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCiAgICB2YXIgcGFpciA9IGZ1bmN0aW9uKHgsIHkpIHsNCglyZXR1cm4gW3gseV07DQogICAgfTsNCiAgICB2YXIgRU1QVFlfUEFJUiA9IFtdOw0KICAgIHZhciBwYWlyRmlyc3QgPSBmdW5jdGlvbihwKSB7IHJldHVybiBwWzBdOyB9DQogICAgdmFyIHBhaXJSZXN0ID0gZnVuY3Rpb24ocCkgeyByZXR1cm4gcFsxXTsgfQ0KICAgIHZhciBpc0VtcHR5UGFpciA9IGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAgPT09IEVNUFRZX1BBSVI7IH0NCiAgICB2YXIgcGFpckxlbmd0aCA9IGZ1bmN0aW9uKHApIHsNCgl2YXIgbCA9IDA7DQoJd2hpbGUgKCEgaXNFbXB0eVBhaXIocCkpIHsNCgkgICAgcCA9IHBhaXJSZXN0KHApOw0KCX0NCglyZXR1cm4gbDsNCiAgICB9Ow0KDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQoNCg0KDQogICAgdmFyIGluZGVudFRvID0gZnVuY3Rpb24odG9rZW5TdGFjaykgew0KCXJldHVybiBmdW5jdGlvbih0b2tlblRleHQsIGN1cnJlbnRJbmRlbnRhdGlvbiwgZGlyZWN0aW9uKSB7DQoNCgkgICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhbiB1bmNsb3NlZCB0b2tlbiwNCgkgICAgLy8gZG8gbm90IGNoYW5nZSBpbmRlbnRhdGlvbi4NCgkgICAgaWYgKCghIGlzRW1wdHlQYWlyKHRva2VuU3RhY2spKSAmJg0KCQkoISBpc0VtcHR5UGFpcihwYWlyUmVzdCh0b2tlblN0YWNrKSkpICYmDQoJCShwYWlyRmlyc3QocGFpclJlc3QodG9rZW5TdGFjaykpLmlzVW5jbG9zZWQpKSB7DQoJCXJldHVybiBjdXJyZW50SW5kZW50YXRpb247DQoJICAgIH0NCg0KCSAgICB2YXIgaW5kZW50YXRpb25Db250ZXh0ID0gDQoJCWdldEluZGVudGF0aW9uQ29udGV4dCh0b2tlblN0YWNrKTsNCgkgICAgcmV0dXJuIGNhbGN1bGF0ZUluZGVudGF0aW9uRnJvbUNvbnRleHQoaW5kZW50YXRpb25Db250ZXh0LA0KCQkJCQkJICAgY3VycmVudEluZGVudGF0aW9uKTsJCQ0KCX07DQogICAgfTsNCg0KDQogICAgdmFyIHN0YXJ0UGFyc2UgPSBmdW5jdGlvbihzb3VyY2UpIHsNCglzb3VyY2UgPSB0b2tlbml6ZVNjaGVtZShzb3VyY2UpOwkNCgl2YXIgdG9rZW5TdGFjayA9IEVNUFRZX1BBSVI7DQoJdmFyIGl0ZXIgPSB7DQoJICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdG9rID0gc291cmNlLm5leHQoKTsNCgkJdG9rZW5TdGFjayA9IHBhaXIodG9rLCB0b2tlblN0YWNrKTsNCgkJaWYgKHRvay50eXBlID09PSAid2hpdGVzcGFjZSIpIHsNCgkJICAgIGlmICh0b2sudmFsdWUgPT09ICJcbiIpIHsNCgkJCXRvay5pbmRlbnRhdGlvbiA9IGluZGVudFRvKHRva2VuU3RhY2spOw0KCQkgICAgfQ0KCQl9DQoJCXJldHVybiB0b2s7DQoJICAgIH0sDQoNCgkgICAgY29weTogZnVuY3Rpb24oKSB7DQoJCXZhciBfdG9rZW5TdGFjayA9IHRva2VuU3RhY2s7DQoJCXZhciBfdG9rZW5TdGF0ZSA9IHNvdXJjZS5zdGF0ZTsNCgkJcmV0dXJuIGZ1bmN0aW9uKF9zb3VyY2UpIHsNCgkJICAgIHRva2VuU3RhY2sgPSBfdG9rZW5TdGFjazsNCgkJICAgIHNvdXJjZSA9IHRva2VuaXplU2NoZW1lKF9zb3VyY2UsIF90b2tlblN0YXRlKTsNCgkJICAgIHJldHVybiBpdGVyOw0KCQl9Ow0KCSAgICB9DQoJfTsNCglyZXR1cm4gaXRlcjsNCiAgICB9Ow0KICAgIHJldHVybiB7IG1ha2U6IHN0YXJ0UGFyc2UgfTsNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/js/tokenizescheme.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogVG9rZW5pemVyIGZvciBTY2hlbWUgY29kZSAqLw0KDQoNCg0KDQovKioNCiAgVE9ETzogZm9sbG93IHRoZSBkZWZpbml0aW9ucyBpbjoNCg0KICAgICAgaHR0cDovL2RvY3MucmFja2V0LWxhbmcub3JnL3JlZmVyZW5jZS9yZWFkZXIuaHRtbA0KDQogIHRvIHRoZSBsZXR0ZXI7IGF0IHRoZSBtb21lbnQsIHdlJ3ZlIGp1c3QgZG9uZSBzb21ldGhpbmcgcXVpY2stYW5kLWRpcnR5Lg0KDQoqLw0KDQoNCnZhciB0b2tlbml6ZVNjaGVtZSA9IChmdW5jdGlvbigpIHsNCiAgICB2YXIgaXNXaGl0ZVNwYWNlID0gZnVuY3Rpb24oY2gpIHsNCgkvLyBUaGUgbWVzc3kgcmVnZXhwIGlzIGJlY2F1c2UgSUUncyByZWdleHAgbWF0Y2hlciBpcyBvZiB0aGUNCgkvLyBvcGluaW9uIHRoYXQgbm9uLWJyZWFraW5nIHNwYWNlcyBhcmUgbm8gd2hpdGVzcGFjZS4NCglyZXR1cm4gY2ggIT0gIlxuIiAmJiAvXltcc1x1MDBhMF0qJC8udGVzdChjaCk7DQogICAgfTsNCg0KDQogICAgLy8gc2NhblVudGlsVW5lc2NhcGVkOiBzdHJpbmctc3RyZWFtIGNoYXIgLT4gYm9vbGVhbg0KICAgIC8vIEFkdmFuY2VzIHRoZSBzdHJlYW0gdW50aWwgdGhlIGdpdmVuIGNoYXJhY3RlciAobm90IHByZWNlZGVkIGJ5IGENCiAgICAvLyBiYWNrc2xhc2gpIGlzIGVuY291bnRlcmVkLg0KICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBoaXQgZW5kIG9mIGxpbmUgd2l0aG91dCBjbG9zaW5nLg0KICAgIC8vIFJldHVybnMgZmFsc2Ugb3RoZXJ3aXNlLg0KICAgIHZhciBzY2FuVW50aWxVbmVzY2FwZWQgPSBmdW5jdGlvbihzb3VyY2UsIGVuZCkgew0KCXZhciBlc2NhcGVkID0gZmFsc2U7DQoJd2hpbGUgKHRydWUpIHsNCgkgICAgaWYgKHNvdXJjZS5lbmRPZkxpbmUoKSkgew0KCQlyZXR1cm4gdHJ1ZTsNCgkgICAgfQ0KCSAgICB2YXIgbmV4dCA9IHNvdXJjZS5uZXh0KCk7DQoJICAgIGlmIChuZXh0ID09IGVuZCAmJiAhZXNjYXBlZCkNCgkJcmV0dXJuIGZhbHNlOw0KCSAgICBlc2NhcGVkID0gIWVzY2FwZWQgJiYgbmV4dCA9PSAiXFwiOw0KCX0NCglyZXR1cm4gZmFsc2U7DQogICAgfQ0KICAgIA0KDQogICAgLy8gQWR2YW5jZSB0aGUgc3RyZWFtIHVudGlsIGVuZGxpbmUuDQogICAgdmFyIHNjYW5VbnRpbEVuZGxpbmUgPSBmdW5jdGlvbihzb3VyY2UsIGVuZCkgew0KCXdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQoJICAgIHNvdXJjZS5uZXh0KCk7DQoJfQ0KICAgIH0NCg0KICAgIA0KICAgIC8vIFNvbWUgaGVscGVyIHJlZ2V4cHMNCiAgICB2YXIgaXNIZXhEaWdpdCA9IC9bMC05QS1GYS1mXS87DQogICAgDQoNCiAgICB2YXIgd2hpdGVzcGFjZUNoYXIgPSBuZXcgUmVnRXhwKCJbXFxzXFx1MDBhMF0iKTsNCiAgICANCiAgICB2YXIgaXNEZWxpbWl0ZXJDaGFyID0gDQoJbmV3IFJlZ0V4cCgiW1xcc1xcXChcXFwpXFxcW1xcXF1cXFx7XFxcfVxcXCJcXFwsXFxcJ1xcXGBcXFw7XSIpOw0KDQogICAgdmFyIGlzTm90RGVsaW1pdGVyQ2hhciA9IA0KCW5ldyBSZWdFeHAoIlteXFxzXFxcKFxcXClcXFxbXFxcXVxcXHtcXFx9XFxcIlxcXCxcXFwnXFxcYFxcXDtdIik7DQoNCg0KICAgIHZhciBudW1iZXJIZWFkZXIgPSAoIig/Oig/OlxcZCtcXC9cXGQrKXwiKw0KCQkJKCAgIig/Oig/OlxcZCtcXC5cXGQrfFxcZCtcXC58XFwuXFxkKykoPzpbZUVdWytcXC1dP1xcZCspPyl8IikrDQoJCQkoICAiKD86XFxkKyg/OltlRV1bK1xcLV0/XFxkKyk/KSkiKSk7DQogICAgdmFyIG51bWJlclBhdHRlcm5zID0gWw0KCS8vIGNvbXBsZXggbnVtYmVycw0KCW5ldyBSZWdFeHAoIl4oKD86KD86XFwjW2VpXSk/WytcXC1dPyIgKyBudW1iZXJIZWFkZXIgKyIpPyINCgkJICAgKyAiKD86WytcXC1dIiArIG51bWJlckhlYWRlciArICIpaSQpIiksDQoJICAgIC9eKCg/OlwjW2VpXSk/WystXWluZi4wKSQvLA0KCSAgICAvXigoPzpcI1tlaV0pP1srLV1uYW4uMCkkLywNCgluZXcgUmVnRXhwKCJeKCg/OlxcI1tlaV0pP1srXFwtXT8iICsgbnVtYmVySGVhZGVyICsgIiQpIiksDQoJbmV3IFJlZ0V4cCgiXjBbeFhdWzAtOUEtRmEtZl0rJCIpXTsNCiAgIA0KDQogICAgLy8gbG9va3NMaWtlTnVtYmVyOiBzdHJpbmcgLT4gYm9vbGVhbg0KICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzdHJpbmcgcyBsb29rcyBsaWtlIGEgbnVtYmVyLg0KICAgIHZhciBsb29rc0xpa2VOdW1iZXIgPSBmdW5jdGlvbihzKSB7DQoJZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJQYXR0ZXJucy5sZW5ndGg7IGkrKykgew0KCSAgICBpZiAobnVtYmVyUGF0dGVybnNbaV0udGVzdChzKSkgew0KCQlyZXR1cm4gdHJ1ZTsNCgkgICAgfQ0KCX0NCglyZXR1cm4gZmFsc2U7DQogICAgfTsNCg0KDQoNCiAgICB2YXIgVU5DTE9TRURfU1RSSU5HID0gZnVuY3Rpb24oc291cmNlLCBzZXRTdGF0ZSkgew0KCXZhciByZWFkTmV3bGluZSA9IGZ1bmN0aW9uKCkgew0KCSAgICB2YXIgY29udGVudCA9IHNvdXJjZS5nZXQoKTsNCgkgICAgcmV0dXJuIHsgdHlwZTond2hpdGVzcGFjZScsIHN0eWxlOid3aGl0ZXNwYWNlJywgY29udGVudDogY29udGVudCB9Ow0KCX07DQoNCgl2YXIgY2ggPSBzb3VyY2UucGVlaygpOw0KCWlmIChjaCA9PT0gJ1xuJykgew0KCSAgICBzb3VyY2UubmV4dCgpOw0KCSAgICByZXR1cm4gcmVhZE5ld2xpbmUoKTsNCgl9IGVsc2Ugew0KCSAgICB2YXIgaXNVbmNsb3NlZFN0cmluZyA9IHNjYW5VbnRpbFVuZXNjYXBlZChzb3VyY2UsICciJyk7DQoJICAgIGlmIChpc1VuY2xvc2VkU3RyaW5nKSB7DQoJCXNldFN0YXRlKFVOQ0xPU0VEX1NUUklORyk7DQoJICAgIH0gZWxzZSB7DQoJCXNldFN0YXRlKFNUQVJUKTsNCgkgICAgfQ0KCSAgICB2YXIgY29udGVudCA9IHNvdXJjZS5nZXQoKTsNCgkgICAgcmV0dXJuIHt0eXBlOiAic3RyaW5nIiwgc3R5bGU6ICJzY2hlbWUtc3RyaW5nIiwgY29udGVudDogY29udGVudCwNCgkJICAgIGlzVW5jbG9zZWQ6IGlzVW5jbG9zZWRTdHJpbmd9Ow0KCX0NCiAgICB9Ow0KDQoNCg0KICAgIHZhciBTVEFSVCA9IGZ1bmN0aW9uKHNvdXJjZSwgc2V0U3RhdGUpIHsNCgkvLyBSZWFkIGEgd29yZCwgbG9vayBpdCB1cCBpbiBrZXl3b3Jkcy4gSWYgbm90IGZvdW5kLCBpdCBpcyBhDQoJLy8gdmFyaWFibGUsIG90aGVyd2lzZSBpdCBpcyBhIGtleXdvcmQgb2YgdGhlIHR5cGUgZm91bmQuDQoJdmFyIHJlYWRXb3JkT3JOdW1iZXIgPSBmdW5jdGlvbigpIHsNCgkgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoaXNOb3REZWxpbWl0ZXJDaGFyKTsNCgkgICAgdmFyIHdvcmQgPSBzb3VyY2UuZ2V0KCk7DQoJICAgIGlmIChsb29rc0xpa2VOdW1iZXIod29yZCkpIHsNCgkJcmV0dXJuIHt0eXBlOiAibnVtYmVyIiwgc3R5bGU6ICJzY2hlbWUtbnVtYmVyIiwgY29udGVudDogd29yZH07DQoJICAgIH0gZWxzZSB7DQoJCXJldHVybiB7dHlwZTogInZhcmlhYmxlIiwgc3R5bGU6ICJzY2hlbWUtc3ltYm9sIiwgY29udGVudDogd29yZH07DQoJICAgIH0NCgl9Ow0KDQoNCgl2YXIgcmVhZFN0cmluZyA9IGZ1bmN0aW9uKHF1b3RlKSB7DQoJICAgIHZhciBpc1VuY2xvc2VkU3RyaW5nID0gc2NhblVudGlsVW5lc2NhcGVkKHNvdXJjZSwgcXVvdGUpOw0KCSAgICBpZiAoaXNVbmNsb3NlZFN0cmluZykgew0KCQlzZXRTdGF0ZShVTkNMT1NFRF9TVFJJTkcpOw0KCSAgICB9DQoJICAgIHZhciB3b3JkID0gc291cmNlLmdldCgpOw0KCSAgICByZXR1cm4ge3R5cGU6ICJzdHJpbmciLCBzdHlsZTogInNjaGVtZS1zdHJpbmciLCBjb250ZW50OiB3b3JkLA0KCQkgICAgaXNVbmNsb3NlZDogaXNVbmNsb3NlZFN0cmluZ307DQoJfTsNCg0KDQoJdmFyIHJlYWRQb3VuZCA9IGZ1bmN0aW9uKCkgew0KCSAgICB2YXIgdGV4dDsNCgkgICAgLy8gRklYTUU6IGhhbmRsZSBzcGVjaWFsIHRoaW5ncyBoZXJlDQoJICAgIGlmIChzb3VyY2UuZXF1YWxzKCI7IikpIHsNCgkJc291cmNlLm5leHQoKTsNCgkJdGV4dCA9IHNvdXJjZS5nZXQoKTsNCgkJcmV0dXJuIHt0eXBlOiB0ZXh0LCANCgkJCXN0eWxlOiJzY2hlbWUtc3ltYm9sIiwNCgkJCWNvbnRlbnQ6IHRleHR9Ow0KCSAgICB9IGVsc2Ugew0KCQl0ZXh0ID0gc291cmNlLmdldCgpOw0KDQoJCXJldHVybiB7dHlwZSA6ICJzeW1ib2wiLA0KCQkJc3R5bGU6ICJzY2hlbWUtc3ltYm9sIiwNCgkJCWNvbnRlbnQ6IHRleHR9Ow0KCSAgICB9DQoNCgl9Ow0KCQ0KCXZhciByZWFkTGluZUNvbW1lbnQgPSBmdW5jdGlvbigpIHsNCgkgICAgc2NhblVudGlsRW5kbGluZShzb3VyY2UpOw0KCSAgICB2YXIgdGV4dCA9IHNvdXJjZS5nZXQoKTsNCgkgICAgcmV0dXJuIHsgdHlwZTogImNvbW1lbnQiLCBzdHlsZTogInNjaGVtZS1jb21tZW50IiwgY29udGVudDogdGV4dH07CQ0KCX07DQoNCg0KCXZhciByZWFkV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKCkgew0KCSAgICBzb3VyY2UubmV4dFdoaWxlKGlzV2hpdGVTcGFjZSk7DQoJICAgIHZhciBjb250ZW50ID0gc291cmNlLmdldCgpOw0KCSAgICByZXR1cm4geyB0eXBlOiAnd2hpdGVzcGFjZScsIHN0eWxlOid3aGl0ZXNwYWNlJywgY29udGVudDogY29udGVudCB9Ow0KCX07DQoNCgl2YXIgcmVhZE5ld2xpbmUgPSBmdW5jdGlvbigpIHsNCgkgICAgdmFyIGNvbnRlbnQgPSBzb3VyY2UuZ2V0KCk7DQoJICAgIHJldHVybiB7IHR5cGU6J3doaXRlc3BhY2UnLCBzdHlsZTond2hpdGVzcGFjZScsIGNvbnRlbnQ6IGNvbnRlbnQgfTsNCgl9Ow0KDQoNCgkvLyBGZXRjaCB0aGUgbmV4dCB0b2tlbi4gRGlzcGF0Y2hlcyBvbiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlDQoJLy8gc3RyZWFtLCBvciBmaXJzdCB0d28gY2hhcmFjdGVycyB3aGVuIHRoZSBmaXJzdCBpcyBhIHNsYXNoLg0KCXZhciBjaCA9IHNvdXJjZS5uZXh0KCk7DQoJaWYgKGNoID09PSAnXG4nKSB7DQoJICAgIHJldHVybiByZWFkTmV3bGluZSgpOw0KCX0gZWxzZSBpZiAod2hpdGVzcGFjZUNoYXIudGVzdChjaCkpIHsNCgkgICAgcmV0dXJuIHJlYWRXaGl0ZXNwYWNlKCk7DQoJfSBlbHNlIGlmIChjaCA9PT0gIiMiKSB7DQoJICAgIHJldHVybiByZWFkUG91bmQoKTsNCgl9IGVsc2UgaWYgKGNoID09PSc7Jykgew0KCSAgICByZXR1cm4gcmVhZExpbmVDb21tZW50KCk7DQoJfSBlbHNlIGlmIChjaCA9PT0gIlwiIikgew0KCSAgICByZXR1cm4gcmVhZFN0cmluZyhjaCk7DQoJfSBlbHNlIGlmIChpc0RlbGltaXRlckNoYXIudGVzdChjaCkpIHsNCgkgICAgcmV0dXJuIHt0eXBlOiBjaCwgc3R5bGU6ICJzY2hlbWUtcHVuY3R1YXRpb24ifTsNCgl9IGVsc2Ugew0KCSAgICByZXR1cm4gcmVhZFdvcmRPck51bWJlcigpOw0KCX0NCiAgICB9DQoNCg0KDQoNCg0KDQoNCiAgICB2YXIgbWFrZVRva2VuaXplciA9IGZ1bmN0aW9uKHNvdXJjZSwgc3RhdGUpIHsNCgkvLyBOZXdsaW5lcyBhcmUgYWx3YXlzIGEgc2VwYXJhdGUgdG9rZW4uDQoNCgl2YXIgdG9rZW5pemVyID0gew0KCSAgICBzdGF0ZTogc3RhdGUsDQoNCgkgICAgdGFrZTogZnVuY3Rpb24odHlwZSkgew0KIAkJaWYgKHR5cGVvZih0eXBlKSA9PSAic3RyaW5nIikNCiAJCSAgICB0eXBlID0ge3N0eWxlOiB0eXBlLCB0eXBlOiB0eXBlfTsNCg0KIAkJdHlwZS5jb250ZW50ID0gKHR5cGUuY29udGVudCB8fCAiIikgKyBzb3VyY2UuZ2V0KCk7DQoJCXR5cGUudmFsdWUgPSB0eXBlLmNvbnRlbnQ7DQoJCXJldHVybiB0eXBlOw0KCSAgICB9LA0KDQoJICAgIG5leHQ6IGZ1bmN0aW9uICgpIHsNCgkJaWYgKCFzb3VyY2UubW9yZSgpKSB0aHJvdyBTdG9wSXRlcmF0aW9uOw0KDQoJCXZhciB0eXBlOw0KCQl3aGlsZSAoIXR5cGUpIHsNCgkJICAgIHR5cGUgPSB0b2tlbml6ZXIuc3RhdGUoc291cmNlLCBmdW5jdGlvbihzKSB7DQoJCQl0b2tlbml6ZXIuc3RhdGUgPSBzOw0KCQkgICAgfSk7DQoJCX0NCgkJdmFyIHJlc3VsdCA9IHRoaXMudGFrZSh0eXBlKTsNCgkJcmV0dXJuIHJlc3VsdDsJCSAgICANCgkgICAgfQ0KCX07DQoJcmV0dXJuIHRva2VuaXplcjsNCiAgICB9Ow0KDQoNCiAgICAvLyBUaGUgZXh0ZXJuYWwgaW50ZXJmYWNlIHRvIHRoZSB0b2tlbml6ZXIuDQogICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc3RhcnRTdGF0ZSkgew0KCXJldHVybiBtYWtlVG9rZW5pemVyKHNvdXJjZSwgc3RhcnRTdGF0ZSB8fCBTVEFSVCk7DQogICAgfTsNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/scheme/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IENvcHlyaWdodCAoYykgMjAxMCBEYW5ueSBZb28NCg0KIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkDQogd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueQ0KIGRhbWFnZXMgYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4NCg0KIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueQ0KIHB1cnBvc2UsIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZA0KIHJlZGlzdHJpYnV0ZSBpdCBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6DQoNCiAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0DQogICAgbm90IGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzDQogICAgc29mdHdhcmUgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdA0KICAgIGRvY3VtZW50YXRpb24gd291bGQgYmUgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4NCg0KIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3QNCiAgICBub3QgYmUgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLg0KDQogMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlDQogICAgZGlzdHJpYnV0aW9uLg0KDQogRGFubnkgWW9vDQogZHlvb0Bjcy53cGkuZWR1DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/css/sqlcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICBtYXJnaW46IC40ZW07DQogIHBhZGRpbmc6IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpzcGFuLnNxbC1rZXl3b3JkIHsNCiAgY29sb3I6IGJsdWU7DQp9DQoNCnNwYW4uc3FsLXZhciB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCnNwYW4uc3FsLWNvbW1lbnQgew0KICBjb2xvcjogI0FBNzcwMDsNCn0NCg0Kc3Bhbi5zcWwtbGl0ZXJhbCB7DQogIGNvbG9yOiBncmVlbjsNCn0NCg0Kc3Bhbi5zcWwtb3BlcmF0b3Igew0KICBjb2xvcjogYmx1ZTsNCn0NCg0Kc3Bhbi5zcWwtd29yZCB7DQogIGNvbG9yOiBibGFjazsNCn0NCg0Kc3Bhbi5zcWwtcXVvdGVkLXdvcmQgew0KICBjb2xvcjogIzY4MDsNCn0NCg0Kc3Bhbi5zcWwtZnVuY3Rpb24gew0KICBjb2xvcjogZGFya29yYW5nZTsNCn0NCg0Kc3Bhbi5zcWwtdHlwZSB7DQogIGNvbG9yOiBwdXJwbGU7DQp9DQoNCnNwYW4uc3FsLXNlcGFyYXRvciB7DQogIGNvbG9yOiAjNjY2NjY2Ow0KfQ0KDQpzcGFuLnNxbC1udW1iZXIgew0KICBjb2xvcjogZGFya2N5YW47DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KICA8aGVhZD4NCiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvY29kZW1pcnJvci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8dGl0bGU+Q29kZU1pcnJvcjogU1FMIGRlbW9uc3RyYXRpb248L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyIvPg0KICA8L2hlYWQ+DQogIDxib2R5IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+DQoNCjxwPkRlbW9uc3RyYXRpb24gb2YgPGEgaHJlZj0iLi4vLi4vaW5kZXguaHRtbCI+Q29kZU1pcnJvcjwvYT4ncyBTUUwNCmhpZ2hsaWdodGVyLjwvcD4NCg0KPHA+V3JpdHRlbiBieSBKb2huIEJlbmVkaWt0c3NvbiAoPGEgaHJlZj0iTElDRU5TRSI+bGljZW5zZTwvYT4pLjwvcD4NCg0KPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Ij4NCjx0ZXh0YXJlYSBpZD0iY29kZSIgY29scz0iMTIwIiByb3dzPSI1MCI+DQpjcmVhdGUgdGFibGUgaWYgbm90IGV4aXN0cyB0YWJsZTEoDQogIGEgIGJpZ2ludCgxMykgbm90IG51bGwgcHJpbWFyeSBrZXksDQogIGIgIGNoYXIoNCkgICAgbm90IG51bGwsDQogIGMgIGNoYXIoNTApICAgbm90IG51bGwsDQogIGQgIGludCg5KSAgICAgbm90IG51bGwsDQopOw0KDQppbnNlcnQgaW50byB0YWJsZTEgdmFsdWVzICgxMjM0NTY3ODkwMTIzLCAiYiIsICJjIiwgMCk7DQoNCnNlbGVjdCBmcm9tX3VuaXh0aW1lKGEvMTAwMCksIGIsIGMsIG1pbihkKSBhcyBgdXNpbmdgDQogIGZyb20gdGFibGUxIHQxDQogIGxlZnQgam9pbiB0YWJsZTIgdDIgdXNpbmcgKGEpDQogIC0tIGlubmVyIGpvaW4gdGFibGUzIHQzIG9uIHQzLl9hID0gdDEuYQ0KICBqb2luICgNCiAgICBzZWxlY3QgYSwgYiwgYw0KICAgIGZyb20gZGF0YQ0KICApIGFzIGZvbyBvbiBmb28uYSA9IHQxLmENCg0KICB3aGVyZSBhICZndDsgMTANCiAgYW5kIGIgbGlrZSAnJWZvbycNCiAgb3IgYyA9IDMuMTQxNTkNCiAgYW5kIGQgJmx0OyAtMTUuNw0KICBvcmRlciBieSAxIGRlc2MNCjsNCg0Kc2VsZWN0IEB0b3RhbCA6PSBzdW0oZCkgZnJvbSBkYXRhOw0KPC90ZXh0YXJlYT4NCjwvZGl2Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogIHZhciBlZGl0b3IgPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYSgnY29kZScsIHsNCiAgICBoZWlnaHQ6ICI0NTBweCIsDQogICAgcGFyc2VyZmlsZTogIi4uL2NvbnRyaWIvc3FsL2pzL3BhcnNlc3FsLmpzIiwNCiAgICBzdHlsZXNoZWV0OiAiY3NzL3NxbGNvbG9ycy5jc3MiLA0KICAgIHBhdGg6ICIuLi8uLi9qcy8iLA0KICAgIHRleHRXcmFwcGluZzogZmFsc2UNCiAgfSk7DQo8L3NjcmlwdD4NCg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/js/parsesql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIFNxbFBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQoNCiAgZnVuY3Rpb24gd29yZFJlZ2V4cCh3b3Jkcykgew0KICAgIHJldHVybiBuZXcgUmVnRXhwKCJeKD86IiArIHdvcmRzLmpvaW4oInwiKSArICIpJCIsICJpIik7DQogIH0NCg0KICB2YXIgZnVuY3Rpb25zID0gd29yZFJlZ2V4cChbDQogICAgImFicyIsICJhY29zIiwgImFkZGRhdGUiLCAiYWVzX2VuY3J5cHQiLCAiYWVzX2RlY3J5cHQiLCAiYXNjaWkiLA0KICAgICJhc2luIiwgImF0YW4iLCAiYXRhbjIiLCAiYXZnIiwgImJlbmNobWFyayIsICJiaW4iLCAiYml0X2FuZCIsDQogICAgImJpdF9jb3VudCIsICJiaXRfbGVuZ3RoIiwgImJpdF9vciIsICJjYXN0IiwgImNlaWwiLCAiY2VpbGluZyIsDQogICAgImNoYXJfbGVuZ3RoIiwgImNoYXJhY3Rlcl9sZW5ndGgiLCAiY29hbGVzY2UiLCAiY29uY2F0IiwgImNvbmNhdF93cyIsDQogICAgImNvbm5lY3Rpb25faWQiLCAiY29udiIsICJjb252ZXJ0IiwgImNvcyIsICJjb3QiLCAiY291bnQiLCAiY3VyZGF0ZSIsDQogICAgImN1cnJlbnRfZGF0ZSIsICJjdXJyZW50X3RpbWUiLCAiY3VycmVudF90aW1lc3RhbXAiLCAiY3VycmVudF91c2VyIiwNCiAgICAiY3VydGltZSIsICJkYXRhYmFzZSIsICJkYXRlX2FkZCIsICJkYXRlX2Zvcm1hdCIsICJkYXRlX3N1YiIsDQogICAgImRheW5hbWUiLCAiZGF5b2Ztb250aCIsICJkYXlvZndlZWsiLCAiZGF5b2Z5ZWFyIiwgImRlY29kZSIsICJkZWdyZWVzIiwNCiAgICAiZGVzX2VuY3J5cHQiLCAiZGVzX2RlY3J5cHQiLCAiZWx0IiwgImVuY29kZSIsICJlbmNyeXB0IiwgImV4cCIsDQogICAgImV4cG9ydF9zZXQiLCAiZXh0cmFjdCIsICJmaWVsZCIsICJmaW5kX2luX3NldCIsICJmbG9vciIsICJmb3JtYXQiLA0KICAgICJmb3VuZF9yb3dzIiwgImZyb21fZGF5cyIsICJmcm9tX3VuaXh0aW1lIiwgImdldF9sb2NrIiwgImdyZWF0ZXN0IiwNCiAgICAiZ3JvdXBfdW5pcXVlX3VzZXJzIiwgImhleCIsICJpZm51bGwiLCAiaW5ldF9hdG9uIiwgImluZXRfbnRvYSIsICJpbnN0ciIsDQogICAgImludGVydmFsIiwgImlzX2ZyZWVfbG9jayIsICJpc251bGwiLCAibGFzdF9pbnNlcnRfaWQiLCAibGNhc2UiLCAibGVhc3QiLA0KICAgICJsZWZ0IiwgImxlbmd0aCIsICJsbiIsICJsb2FkX2ZpbGUiLCAibG9jYXRlIiwgImxvZyIsICJsb2cyIiwgImxvZzEwIiwNCiAgICAibG93ZXIiLCAibHBhZCIsICJsdHJpbSIsICJtYWtlX3NldCIsICJtYXN0ZXJfcG9zX3dhaXQiLCAibWF4IiwgIm1kNSIsDQogICAgIm1pZCIsICJtaW4iLCAibW9kIiwgIm1vbnRobmFtZSIsICJub3ciLCAibnVsbGlmIiwgIm9jdCIsICJvY3RldF9sZW5ndGgiLA0KICAgICJvcmQiLCAicGFzc3dvcmQiLCAicGVyaW9kX2FkZCIsICJwZXJpb2RfZGlmZiIsICJwaSIsICJwb3NpdGlvbiIsDQogICAgInBvdyIsICJwb3dlciIsICJxdWFydGVyIiwgInF1b3RlIiwgInJhZGlhbnMiLCAicmFuZCIsICJyZWxlYXNlX2xvY2siLA0KICAgICJyZXBlYXQiLCAicmV2ZXJzZSIsICJyaWdodCIsICJyb3VuZCIsICJycGFkIiwgInJ0cmltIiwgInNlY190b190aW1lIiwNCiAgICAic2Vzc2lvbl91c2VyIiwgInNoYSIsICJzaGExIiwgInNpZ24iLCAic2luIiwgInNvdW5kZXgiLCAic3BhY2UiLCAic3FydCIsDQogICAgInN0ZCIsICJzdGRkZXYiLCAic3RyY21wIiwgInN1YmRhdGUiLCAic3Vic3RyaW5nIiwgInN1YnN0cmluZ19pbmRleCIsDQogICAgInN1bSIsICJzeXNkYXRlIiwgInN5c3RlbV91c2VyIiwgInRhbiIsICJ0aW1lX2Zvcm1hdCIsICJ0aW1lX3RvX3NlYyIsDQogICAgInRvX2RheXMiLCAidHJpbSIsICJ1Y2FzZSIsICJ1bmlxdWVfdXNlcnMiLCAidW5peF90aW1lc3RhbXAiLCAidXBwZXIiLA0KICAgICJ1c2VyIiwgInZlcnNpb24iLCAid2VlayIsICJ3ZWVrZGF5IiwgInllYXJ3ZWVrIg0KICBdKTsNCg0KICB2YXIga2V5d29yZHMgPSB3b3JkUmVnZXhwKFsNCiAgICAiYWx0ZXIiLCAiZ3JhbnQiLCAicmV2b2tlIiwgInByaW1hcnkiLCAia2V5IiwgInRhYmxlIiwgInN0YXJ0IiwgInRvcCIsDQogICAgInRyYW5zYWN0aW9uIiwgInNlbGVjdCIsICJ1cGRhdGUiLCAiaW5zZXJ0IiwgImRlbGV0ZSIsICJjcmVhdGUiLCAiZGVzY3JpYmUiLA0KICAgICJmcm9tIiwgImludG8iLCAidmFsdWVzIiwgIndoZXJlIiwgImpvaW4iLCAiaW5uZXIiLCAibGVmdCIsICJuYXR1cmFsIiwgImFuZCIsDQogICAgIm9yIiwgImluIiwgIm5vdCIsICJ4b3IiLCAibGlrZSIsICJ1c2luZyIsICJvbiIsICJvcmRlciIsICJncm91cCIsICJieSIsDQogICAgImFzYyIsICJkZXNjIiwgImxpbWl0IiwgIm9mZnNldCIsICJ1bmlvbiIsICJhbGwiLCAiYXMiLCAiZGlzdGluY3QiLCAic2V0IiwNCiAgICAiY29tbWl0IiwgInJvbGxiYWNrIiwgInJlcGxhY2UiLCAidmlldyIsICJkYXRhYmFzZSIsICJzZXBhcmF0b3IiLCAiaWYiLA0KICAgICJleGlzdHMiLCAibnVsbCIsICJ0cnVuY2F0ZSIsICJzdGF0dXMiLCAic2hvdyIsICJsb2NrIiwgInVuaXF1ZSIsICJoYXZpbmciLA0KICAgICJkcm9wIiwgInByb2NlZHVyZSIsICJiZWdpbiIsICJlbmQiLCAiZGVsaW1pdGVyIiwgImNhbGwiLCAiZWxzZSIsICJsZWF2ZSIsIA0KICAgICJkZWNsYXJlIiwgInRlbXBvcmFyeSIsICJ0aGVuIg0KICBdKTsNCg0KICB2YXIgdHlwZXMgPSB3b3JkUmVnZXhwKFsNCiAgICAiYmlnaW50IiwgImJpbmFyeSIsICJiaXQiLCAiYmxvYiIsICJib29sIiwgImNoYXIiLCAiY2hhcmFjdGVyIiwgImRhdGUiLA0KICAgICJkYXRldGltZSIsICJkZWMiLCAiZGVjaW1hbCIsICJkb3VibGUiLCAiZW51bSIsICJmbG9hdCIsICJmbG9hdDQiLCAiZmxvYXQ4IiwNCiAgICAiaW50IiwgImludDEiLCAiaW50MiIsICJpbnQzIiwgImludDQiLCAiaW50OCIsICJpbnRlZ2VyIiwgImxvbmciLCAibG9uZ2Jsb2IiLA0KICAgICJsb25ndGV4dCIsICJtZWRpdW1ibG9iIiwgIm1lZGl1bWludCIsICJtZWRpdW10ZXh0IiwgIm1pZGRsZWludCIsICJuY2hhciIsDQogICAgIm51bWVyaWMiLCAicmVhbCIsICJzZXQiLCAic21hbGxpbnQiLCAidGV4dCIsICJ0aW1lIiwgInRpbWVzdGFtcCIsICJ0aW55YmxvYiIsDQogICAgInRpbnlpbnQiLCAidGlueXRleHQiLCAidmFyYmluYXJ5IiwgInZhcmNoYXIiLCAieWVhciINCiAgXSk7DQoNCiAgdmFyIG9wZXJhdG9ycyA9IHdvcmRSZWdleHAoWw0KICAgICI6PSIsICI8IiwgIjw9IiwgIj09IiwgIjw+IiwgIj4iLCAiPj0iLCAibGlrZSIsICJybGlrZSIsICJpbiIsICJ4b3IiLCAiYmV0d2VlbiINCiAgXSk7DQoNCiAgdmFyIG9wZXJhdG9yQ2hhcnMgPSAvWyorXC08Pj0mfDpcL10vOw0KDQogIHZhciBDRkcgPSB7fTsNCg0KICB2YXIgdG9rZW5pemVTcWwgPSAoZnVuY3Rpb24oKSB7DQogICAgZnVuY3Rpb24gbm9ybWFsKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgIHZhciBjaCA9IHNvdXJjZS5uZXh0KCk7DQogICAgICBpZiAoY2ggPT0gIkAiIHx8IGNoID09ICIkIikgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW1x3XGRdLyk7DQogICAgICAgIHJldHVybiAic3FsLXZhciI7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAiWyIpew0KCSAgICBzZXRTdGF0ZShpbkFsaWFzKGNoKSkNCgkgIAlyZXR1cm4gbnVsbDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICJcIiIgfHwgY2ggPT0gIiciIHx8IGNoID09ICJgIikgew0KICAgICAgICBzZXRTdGF0ZShpbkxpdGVyYWwoY2gpKTsNCiAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAiLCIgfHwgY2ggPT0gIjsiKSB7DQogICAgICAgIHJldHVybiAic3FsLXNlcGFyYXRvciINCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICcjJykgew0KICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgc291cmNlLm5leHQoKTsNCiAgICAgICAgcmV0dXJuICJzcWwtY29tbWVudCI7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAnLScpIHsNCiAgICAgICAgaWYgKHNvdXJjZS5wZWVrKCkgPT0gIi0iKSB7DQogICAgICAgICAgd2hpbGUgKCFzb3VyY2UuZW5kT2ZMaW5lKCkpIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgcmV0dXJuICJzcWwtY29tbWVudCI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAoL1xkLy50ZXN0KHNvdXJjZS5wZWVrKCkpKSB7DQogICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1xkLyk7DQogICAgICAgICAgaWYgKHNvdXJjZS5wZWVrKCkgPT0gJy4nKSB7DQogICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1xkLyk7DQogICAgICAgICAgfQ0KICAgICAgICAgIHJldHVybiAic3FsLW51bWJlciI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICAgIHJldHVybiAic3FsLW9wZXJhdG9yIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKG9wZXJhdG9yQ2hhcnMudGVzdChjaCkpIHsNCg0KICAgICAgICBpZihjaCA9PSAiLyIgJiYgc291cmNlLnBlZWsoKSA9PSAiKiIpew0KICAgICAgICAgIHNldFN0YXRlKGluQmxvY2soInNxbC1jb21tZW50IiwgIiovIikpOw0KICAgICAgICAgIHJldHVybiBudWxsOw0KICAgICAgICB9DQogICAgICAgIGVsc2V7DQogICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMob3BlcmF0b3JDaGFycyk7DQogICAgICAgICAgcmV0dXJuICJzcWwtb3BlcmF0b3IiOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoL1xkLy50ZXN0KGNoKSkgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvXGQvKTsNCiAgICAgICAgaWYgKHNvdXJjZS5wZWVrKCkgPT0gJy4nKSB7DQogICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvXGQvKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gInNxbC1udW1iZXIiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoL1soKV0vLnRlc3QoY2gpKSB7DQogICAgICAgIHJldHVybiAic3FsLXB1bmN0dWF0aW9uIjsNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW19cd1xkXS8pOw0KICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKSwgdHlwZTsNCiAgICAgICAgaWYgKG9wZXJhdG9ycy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAic3FsLW9wZXJhdG9yIjsNCiAgICAgICAgZWxzZSBpZiAoa2V5d29yZHMudGVzdCh3b3JkKSkNCiAgICAgICAgICB0eXBlID0gInNxbC1rZXl3b3JkIjsNCiAgICAgICAgZWxzZSBpZiAoZnVuY3Rpb25zLnRlc3Qod29yZCkpDQogICAgICAgICAgdHlwZSA9ICJzcWwtZnVuY3Rpb24iOw0KICAgICAgICBlbHNlIGlmICh0eXBlcy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAic3FsLXR5cGUiOw0KICAgICAgICBlbHNlDQogICAgICAgICAgdHlwZSA9ICJzcWwtd29yZCI7DQogICAgICAgIHJldHVybiB7c3R5bGU6IHR5cGUsIGNvbnRlbnQ6IHdvcmR9Ow0KICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGluQWxpYXMocXVvdGUpIHsNCgkgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQoJICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQoJCSAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCgkJICBpZiAoY2ggPT0gJ10nKSB7DQoJCSAgICBzZXRTdGF0ZShub3JtYWwpOw0KCQkgICAgYnJlYWs7DQoJCSAgfQ0KCSAgICB9DQoJICAgIHJldHVybiAic3FsLXdvcmQiOw0KCSAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGluTGl0ZXJhbChxdW90ZSkgew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgICAgdmFyIGVzY2FwZWQgPSBmYWxzZTsNCiAgICAgICAgd2hpbGUgKCFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICB2YXIgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIGlmIChjaCA9PSBxdW90ZSAmJiAhZXNjYXBlZCkgew0KICAgICAgICAgICAgc2V0U3RhdGUobm9ybWFsKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlc2NhcGVkID0gQ0ZHLmV4dGVuc2lvbiA9PSAnVC1TUUwnID8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZXNjYXBlZCAmJiBxdW90ZSA9PSBjaCAmJiBzb3VyY2UuZXF1YWxzKHF1b3RlKSA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWVzY2FwZWQgJiYgY2ggPT0gIlxcIjsNCiAgICAgICAgfSAgICAgICAgDQogICAgICAgIHJldHVybiBxdW90ZSA9PSAiYCIgPyAic3FsLXF1b3RlZC13b3JkIiA6ICJzcWwtbGl0ZXJhbCI7DQogICAgICB9Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGluQmxvY2soc3R5bGUsIHRlcm1pbmF0b3IpIHsNCiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQogICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWQodGVybWluYXRvciwgdHJ1ZSkpIHsNCiAgICAgICAgICAgIHNldFN0YXRlKG5vcm1hbCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc3R5bGU7DQogICAgICB9Ow0KICAgIH0NCg0KICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN0YXJ0U3RhdGUpIHsNCiAgICAgIHJldHVybiB0b2tlbml6ZXIoc291cmNlLCBzdGFydFN0YXRlIHx8IG5vcm1hbCk7DQogICAgfTsNCiAgfSkoKTsNCg0KICBmdW5jdGlvbiBpbmRlbnRTcWwoY29udGV4dCkgew0KICAgIHJldHVybiBmdW5jdGlvbihuZXh0Q2hhcnMpIHsNCiAgICAgIHZhciBmaXJzdENoYXIgPSBuZXh0Q2hhcnMgJiYgbmV4dENoYXJzLmNoYXJBdCgwKTsNCiAgICAgIHZhciBjbG9zaW5nID0gY29udGV4dCAmJiBmaXJzdENoYXIgPT0gY29udGV4dC50eXBlOw0KICAgICAgaWYgKCFjb250ZXh0KQ0KICAgICAgICByZXR1cm4gMDsNCiAgICAgIGVsc2UgaWYgKGNvbnRleHQuYWxpZ24pDQogICAgICAgIHJldHVybiBjb250ZXh0LmNvbCAtIChjbG9zaW5nID8gY29udGV4dC53aWR0aCA6IDApOw0KICAgICAgZWxzZQ0KICAgICAgICByZXR1cm4gY29udGV4dC5pbmRlbnQgKyAoY2xvc2luZyA/IDAgOiBpbmRlbnRVbml0KTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBwYXJzZVNxbChzb3VyY2UpIHsNCiAgICB2YXIgdG9rZW5zID0gdG9rZW5pemVTcWwoc291cmNlKTsNCiAgICB2YXIgY29udGV4dCA9IG51bGwsIGluZGVudCA9IDAsIGNvbCA9IDA7DQogICAgZnVuY3Rpb24gcHVzaENvbnRleHQodHlwZSwgd2lkdGgsIGFsaWduKSB7DQogICAgICBjb250ZXh0ID0ge3ByZXY6IGNvbnRleHQsIGluZGVudDogaW5kZW50LCBjb2w6IGNvbCwgdHlwZTogdHlwZSwgd2lkdGg6IHdpZHRoLCBhbGlnbjogYWxpZ259Ow0KICAgIH0NCiAgICBmdW5jdGlvbiBwb3BDb250ZXh0KCkgew0KICAgICAgY29udGV4dCA9IGNvbnRleHQucHJldjsNCiAgICB9DQoNCiAgICB2YXIgaXRlciA9IHsNCiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnMubmV4dCgpOw0KICAgICAgICB2YXIgdHlwZSA9IHRva2VuLnN0eWxlLCBjb250ZW50ID0gdG9rZW4uY29udGVudCwgd2lkdGggPSB0b2tlbi52YWx1ZS5sZW5ndGg7DQoNCiAgICAgICAgaWYgKGNvbnRlbnQgPT0gIlxuIikgew0KICAgICAgICAgIHRva2VuLmluZGVudGF0aW9uID0gaW5kZW50U3FsKGNvbnRleHQpOw0KICAgICAgICAgIGluZGVudCA9IGNvbCA9IDA7DQogICAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5hbGlnbiA9PSBudWxsKSBjb250ZXh0LmFsaWduID0gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAodHlwZSA9PSAid2hpdGVzcGFjZSIgJiYgY29sID09IDApIHsNCiAgICAgICAgICBpbmRlbnQgPSB3aWR0aDsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICghY29udGV4dCAmJiB0eXBlICE9ICJzcWwtY29tbWVudCIpIHsNCiAgICAgICAgICBwdXNoQ29udGV4dCgiOyIsIDAsIGZhbHNlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChjb250ZW50ICE9ICJcbiIpIGNvbCArPSB3aWR0aDsNCg0KICAgICAgICBpZiAodHlwZSA9PSAic3FsLXB1bmN0dWF0aW9uIikgew0KICAgICAgICAgIGlmIChjb250ZW50ID09ICIoIikNCiAgICAgICAgICAgIHB1c2hDb250ZXh0KCIpIiwgd2lkdGgpOw0KICAgICAgICAgIGVsc2UgaWYgKGNvbnRlbnQgPT0gIikiKQ0KICAgICAgICAgICAgcG9wQ29udGV4dCgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInNxbC1zZXBhcmF0b3IiICYmIGNvbnRlbnQgPT0gIjsiICYmIGNvbnRleHQgJiYgIWNvbnRleHQucHJldikgew0KICAgICAgICAgIHBvcENvbnRleHQoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgIH0sDQoNCiAgICAgIGNvcHk6IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgX2NvbnRleHQgPSBjb250ZXh0LCBfaW5kZW50ID0gaW5kZW50LCBfY29sID0gY29sLCBfdG9rZW5TdGF0ZSA9IHRva2Vucy5zdGF0ZTsNCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgew0KICAgICAgICAgIHRva2VucyA9IHRva2VuaXplU3FsKHNvdXJjZSwgX3Rva2VuU3RhdGUpOw0KICAgICAgICAgIGNvbnRleHQgPSBfY29udGV4dDsNCiAgICAgICAgICBpbmRlbnQgPSBfaW5kZW50Ow0KICAgICAgICAgIGNvbCA9IF9jb2w7DQogICAgICAgICAgcmV0dXJuIGl0ZXI7DQogICAgICAgIH07DQogICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gaXRlcjsNCiAgfQ0KDQogIGZ1bmN0aW9uIGNvbmZpZ3VyZSAocGFyc2VyQ29uZmlnKSB7DQogICAgZm9yICh2YXIgcCBpbiBwYXJzZXJDb25maWcpIHsNCiAgICAgIGlmIChwYXJzZXJDb25maWcuaGFzT3duUHJvcGVydHkocCkpIHsNCiAgICAgICAgQ0ZHW3BdID0gcGFyc2VyQ29uZmlnW3BdOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KDQogIHJldHVybiB7bWFrZTogcGFyc2VTcWwsIGVsZWN0cmljQ2hhcnM6ICIpIiwgY29uZmlndXJlOiBjb25maWd1cmV9Ow0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/sql/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IENvcHlyaWdodCAoYykgMjAwOSBKb2huIEJlbmVkaWt0c3Nvbg0KDQogVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQNCiB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55DQogZGFtYWdlcyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLg0KDQogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogcHVycG9zZSwgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kDQogcmVkaXN0cmlidXRlIGl0IGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoNCg0KIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3QNCiAgICBub3QgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMNCiAgICBzb2Z0d2FyZSBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0DQogICAgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZSBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLg0KDQogMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdA0KICAgIG5vdCBiZSBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuDQoNCiAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UNCiAgICBkaXN0cmlidXRpb24uDQoNCiBKb2huIEJlbmVkaWt0c3Nvbg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/css/xqcolors-dark.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQouZWRpdGJveCB7DQogIG1hcmdpbjogLjRlbTsNCiAgcGFkZGluZzogMDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMHB0Ow0KICBjb2xvcjogd2hpdGU7DQogIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOw0KICBsaW5lLWhlaWdodDogMTZweDsNCn0NCg0Kc3Bhbi53b3JkIHsNCiAgICBjb2xvcjp3aGl0ZTsNCn0NCg0Kc3Bhbi54cXVlcnlLZXl3b3JkIHsNCiAgY29sb3I6ICNmZmJkNDA7IA0KICAvKiBmb250LXdlaWdodDogYm9sZDsgKi8NCn0NCg0Kc3Bhbi54cXVlcnlDb21tZW50IHsNCiAgY29sb3I6ICNDRENEQ0Q7DQogIGZvbnQtc3R5bGU6aXRhbGljOw0KfQ0KDQpzcGFuLnhxdWVyeU1vZGlmaWVyIHsNCmNvbG9yOiM2YzhjZDU7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpzcGFuLnhxdWVyeVR5cGUgew0KICBjb2xvcjojNmM4Y2Q1Ow0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0Kc3Bhbi54cXVlcnlBdG9tIHsNCiAgY29sb3I6IzZjOGNkNTsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7ICANCn0NCg0Kc3Bhbi54cXVlcnlTdHJpbmcgew0KICBjb2xvcjogIzlmZWUwMDsNCn0NCg0Kc3Bhbi54cXVlcnlSZWdleHAgew0KICBjb2xvcjogcmdiKDEyOCwwLDY0KTsNCn0NCg0Kc3Bhbi54cXVlcnlOdW1iZXIgew0KICBjb2xvcjogcmdiKDI1NSwwLDApOyANCn0NCg0Kc3Bhbi54cXVlcnlWYXJpYWJsZSB7DQoNCn0NCg0Kc3Bhbi54cXVlcnlGdW5jdGlvbiB7DQogICAgY29sb3I6I0ZGRjcwMDsNCn0NCg0Kc3Bhbi54cXVlcnlMb2NhbHZhcmlhYmxlIHsNCiAgICBjb2xvcjogd2hpdGU7DQp9DQoNCnNwYW4ueHF1ZXJ5UHJvcGVydHkNCnsNCiAgY29sb3I6IHdoaXRlOw0KfQ0KDQpzcGFuLnhxdWVyeU9wZXJhdG9yIHsNCiAgY29sb3I6IG9yYW5nZTsNCn0NCg0Kc3Bhbi54cXVlcnlQdW5jdHVhdGlvbiB7DQogICAgY29sb3I6IHdoaXRlOw0KfQ0KDQpzcGFuLnhxdWVyeS1kb2MtZGlyZWN0aXZlIHsNCiAgICBjb2xvcjogd2hpdGU7IA0KfQ0KDQpzcGFuLnhtbC10YWduYW1lIHsNCiAgICBjb2xvcjogI2ZmYmQ0MDsgOw0KfQ0KDQpzcGFuLnhtbC1hdHRyaWJ1dGUgew0KICAgIGNvbG9yOiAjRkZGNzAwOw0KfQ0KDQpzcGFuLnhtbC1hdHRyaWJ1dGUtdmFsdWUgew0KICAgIGNvbG9yOiAjRkZGNzAwOw0KICAgIGZvbnQtc3R5bGU6aXRhbGljOw0KfQ==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/css/xqcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAyMDEwIE1pa2UgQnJldm9vcnQgaHR0cDovL21pa2UuYnJldm9vcnQuY29tICh0d2l0dGVyOkBtYnJldm9vcnQpDQoNCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQoNCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCg0KVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQoNClRoaXMgaXMgYW4gaW5kaXJlY3QgY29sbGVjdGl2ZSBkZXJpdmF0aXZlIG9mIHRoZSBvdGhlciBwYXJzZXMgaW4gdGhpcyBwYWNrYWdlDQoNCiovDQouZWRpdGJveCB7DQogIG1hcmdpbjogLjRlbTsNCiAgcGFkZGluZzogMDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMHB0Ow0KICBjb2xvcjogYmxhY2s7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBsaW5lLWhlaWdodDogMTZweDsNCn0NCg0Kc3Bhbi53b3JkIHsNCn0NCg0Kc3Bhbi54cXVlcnlLZXl3b3JkIHsNCiAgY29sb3I6IHJlZDsgLyogIzEyNDBBQjsgKi8NCiAgLyogZm9udC13ZWlnaHQ6IGJvbGQ7ICovDQp9DQoNCnNwYW4ueHF1ZXJ5Q29tbWVudCB7DQogIGNvbG9yOiBncmF5Ow0KICBmb250LXN0eWxlOiBpdGFsaWM7DQp9DQoNCnNwYW4ueHF1ZXJ5TW9kaWZpZXIgew0KICBjb2xvcjogcmdiKDAsMTAyLDE1Myk7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpzcGFuLnhxdWVyeVR5cGUgew0KICBjb2xvcjogcHVycGxlOw0KICBmb250LXdlaWdodDogYm9sZDsNCn0NCg0Kc3Bhbi54cXVlcnlBdG9tIHsNCiAgY29sb3I6IHJnYigwLDEwMiwxNTMpOw0KICBmb250LXdlaWdodDogYm9sZDsgIA0KfQ0KDQpzcGFuLnhxdWVyeVN0cmluZyB7DQogIGNvbG9yOiBncmVlbjsNCn0NCg0Kc3Bhbi54cXVlcnlSZWdleHAgew0KICBjb2xvcjogcmdiKDEyOCwwLDY0KTsNCn0NCg0Kc3Bhbi54cXVlcnlOdW1iZXIgew0KICBjb2xvcjogIzEyNDBBQjsNCn0NCg0Kc3Bhbi54cXVlcnlWYXJpYWJsZSB7DQogICAgLyogY29sb3I6IHJlZDsgKi8NCn0NCg0Kc3Bhbi54cXVlcnlGdW5jdGlvbiB7DQogICAgY29sb3I6ICMxMjQwQUI7ICAgICANCiAgICAvKiBmb250LXdlaWdodDpib2xkOyAqLyANCn0NCg0KDQpzcGFuLnhxdWVyeU9wZXJhdG9yIHsNCiAgICBjb2xvcjogcmVkOw0KfQ0KDQpzcGFuLnhxdWVyeVB1bmN0dWF0aW9uIHsNCiAgICBjb2xvcjogRElNR3JheTsNCn0NCg0Kc3Bhbi54bWwtdGFnbmFtZSB7DQogICAgY29sb3I6IHB1cnBsZTsNCn0NCg0Kc3Bhbi54bWwtYXR0cmlidXRlIHsNCiAgICBjb2xvcjogcHVycGxlOw0KICAgIGZvbnQtc3R5bGU6aXRhbGljOw0KfQ0KDQpzcGFuLnhtbC1hdHRyaWJ1dGUtdmFsdWUgew0KICAgIGNvbG9yOiBwdXJwbGU7DQogICAgZm9udC1zdHlsZTppdGFsaWM7DQp9]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/css/xqcolors2.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAyMDEwIE1pa2UgQnJldm9vcnQgaHR0cDovL21pa2UuYnJldm9vcnQuY29tICh0d2l0dGVyOkBtYnJldm9vcnQpDQoNCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQoNCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCg0KVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQoNClRoaXMgaXMgYW4gaW5kaXJlY3QgY29sbGVjdGl2ZSBkZXJpdmF0aXZlIG9mIHRoZSBvdGhlciBwYXJzZXMgaW4gdGhpcyBwYWNrYWdlDQoNCiovDQouZWRpdGJveCB7DQogIG1hcmdpbjogLjRlbTsNCiAgcGFkZGluZzogMDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZm9udC1zaXplOiAxMHB0Ow0KICBjb2xvcjogYmxhY2s7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBsaW5lLWhlaWdodDogMTZweDsNCn0NCg0Kc3Bhbi53b3JkIHsNCn0NCg0Kc3Bhbi54cXVlcnlLZXl3b3JkIHsNCiAgY29sb3I6IGJsdWU7IA0KICAvKiBmb250LXdlaWdodDogYm9sZDsgKi8NCn0NCg0Kc3Bhbi54cXVlcnlDb21tZW50IHsNCiAgY29sb3I6IGdyYXk7DQp9DQoNCnNwYW4ueHF1ZXJ5TW9kaWZpZXIgew0KICBjb2xvcjogcmdiKDAsMTAyLDE1Myk7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpzcGFuLnhxdWVyeVR5cGUgew0KICBjb2xvcjogcmdiKDAsMTM1LDI1NSk7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpzcGFuLnhxdWVyeUF0b20gew0KICBjb2xvcjogcmdiKDAsMTAyLDE1Myk7DQogIGZvbnQtd2VpZ2h0OiBib2xkOyAgDQp9DQoNCnNwYW4ueHF1ZXJ5U3RyaW5nIHsNCiAgY29sb3I6IGdyZWVuOw0KfQ0KDQpzcGFuLnhxdWVyeVJlZ2V4cCB7DQogIGNvbG9yOiByZ2IoMTI4LDAsNjQpOw0KfQ0KDQpzcGFuLnhxdWVyeU51bWJlciB7DQogIGNvbG9yOiByZ2IoMjU1LDAsMCk7IA0KfQ0KDQpzcGFuLnhxdWVyeVZhcmlhYmxlIHsNCiAgICBjb2xvcjogcmVkOw0KfQ0KDQpzcGFuLnhxdWVyeUZ1bmN0aW9uIHsNCiAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lDQp9DQoNCg0Kc3Bhbi54cXVlcnlPcGVyYXRvciB7DQogICAgY29sb3I6IERpbUdyYXk7DQp9DQoNCnNwYW4ueHF1ZXJ5UHVuY3R1YXRpb24gew0KfQ0KDQpzcGFuLnhtbC10YWduYW1lIHsNCiAgICBjb2xvcjogcHVycGxlOw0KfQ0KDQpzcGFuLnhtbC1hdHRyaWJ1dGUgew0KICAgIGNvbG9yOiBwdXJwbGU7DQogICAgZm9udC1zdHlsZTppdGFsaWM7DQp9DQoNCnNwYW4ueG1sLWF0dHJpYnV0ZS12YWx1ZSB7DQogICAgY29sb3I6IHB1cnBsZTsNCiAgICBmb250LXN0eWxlOml0YWxpYzsNCn0=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KICA8aGVhZD4NCiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvY29kZW1pcnJvci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjQuMi9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4NCiAgICA8dGl0bGU+Q29kZU1pcnJvcjogWFF1ZXJ5IGhpZ2hsaWdodGluZyBkZW1vbnN0cmF0aW9uPC90aXRsZT4NCiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAgICAgLkNvZGVNaXJyb3ItbGluZS1udW1iZXJzIHsNCiAgICAgICAgd2lkdGg6IDIuMmVtOw0KICAgICAgICBjb2xvcjogI2FhYTsNCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsNCiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7DQogICAgICAgIHBhZGRpbmctcmlnaHQ6IC4zZW07DQogICAgICAgIGZvbnQtc2l6ZTogMTBwdDsNCiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgICAgICAgcGFkZGluZy10b3A6IC40ZW07DQogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7DQogICAgICB9DQogICAgICBib2R5IHsNCiAgICAgICAgICBmb250LWZhbWlseTogaGVsdmV0aWNhOw0KICAgICAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7DQogICAgICAgICAgbWF4LXdpZHRoOjQwMDBweDsNCiAgICAgIH0NCiAgICAgIGEgew0KICAgICAgICAgIGNvbG9yOiAjRUIxRDFEOw0KICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIH0gICAgIA0KICAgICAgYTpob3ZlciB7DQogICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgICB9DQogICAgICBkaXYuYm9yZGVyIHsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7DQogICAgICB9DQogICAgICAuY3NzLXN3aXRjaCB7DQogICAgICAgICAgbWFyZ2luLXJpZ2h0OjE1cHg7DQogICAgICAgICAgcGFkZGluZy1ib3R0b206NXB4Ow0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogIDwvaGVhZD4NCiAgPGJvZHkgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4NCg0KPGRpdiBzdHlsZT0ibWFyZ2luOmF1dG87IHdpZHRoOjkyMHB4OyBib3JkZXItd2lkdGg6MXB4OyI+DQo8aDI+WFF1ZXJ5IFN5bnRheCBTdXBwb3J0IGZvciBDb2RlTWlycm9yPC9oMj4NCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5OyAgd29yZC1zcGFjaW5nOiAzcHg7Ij5UaGlzIGlzIGEgZGVtb25zdHJhdGlvbiBvZiB0aGUgWFF1ZXJ5IGhpZ2hsaWdodGluZyBtb2R1bGUNCmZvciA8YSBocmVmPSJpbmRleC5odG1sIj5Db2RlTWlycm9yPC9hPi4gVGhlIGZvcm1hdHRpbmcgaXMgQ1NTIGRyaXZlbiBhbmQgdmVyeSBlYXN5IHRvIGN1c3RvbWl6ZSB0byB5b3VyIGxpa2luZy4NClRoZXJlIGFyZSB0aHJlZSBzYW1wbGUgc3R5bGVzIHNldHMgYmVsb3cuDQpZb3UgY2FuIGVkaXQgb3IgcGFzdGUgaW4gYW55IGNvZGUgYmVsb3cgdG8gZ2l2ZSBpdCBhIHRlc3QgcnVuLg0KPC9wPg0KDQo8YSBocmVmPSIjIiByZWw9InhxY29sb3JzLmNzcyIgY2xhc3M9ImNzcy1zd2l0Y2giPkxpZ2h0IDE8L2E+ICA8YSBocmVmPSIjIiByZWw9InhxY29sb3JzMi5jc3MiIGNsYXNzPSJjc3Mtc3dpdGNoIj5MaWdodCAyPC9hPiA8YSBocmVmPSIjIiByZWw9InhxY29sb3JzLWRhcmsuY3NzIiBjbGFzcz0iY3NzLXN3aXRjaCI+RGFyazwvYT4gDQoNCjxkaXYgY2xhc3M9ImJvcmRlciI+DQo8dGV4dGFyZWEgaWQ9ImNvZGUiIGNvbHM9IjEyMCIgcm93cz0iNTAiPg0KeHF1ZXJ5IHZlcnNpb24gJnF1b3Q7MS4wLW1sJnF1b3Q7Ow0KKDogdGhpcyBpcw0KIDogYSANCiAgICJjb21tZW50IiA6KQ0KbGV0ICRsZXQgOj0gJmx0O3ggYXR0cj0mcXVvdDt2YWx1ZSZxdW90OyZndDsmcXVvdDt0ZXN0JnF1b3Q7Jmx0Oy94Jmd0Ow0KbGV0ICRqb2U6PTENCnJldHVybiBlbGVtZW50IGVsZW1lbnQgew0KICBhdHRyaWJ1dGUgYXR0cmlidXRlIHsgMSB9LA0KICBlbGVtZW50IHRlc3QgeyAmIzM5O2EmIzM5OyB9LCANCiAgYXR0cmlidXRlIGZvbyB7ICZxdW90O2JhciZxdW90OyB9LA0KICBmbjpkb2MoKVsgZm9vL0BiYXIgZXEgJGxldCBdLA0KICAvL3ggfSAgICANCiAgDQogIA0KICBtb2R1bGUgbmFtZXNwYWNlIGNvbW9tcy1kbHMgPSAmcXVvdDtodHRwOi8vbWFya2xvZ2ljLmNvbS9jb21vbXMtZGxzJnF1b3Q7Ow0KICBpbXBvcnQgbW9kdWxlIG5hbWVzcGFjZSBkbHMgPSAmcXVvdDtodHRwOi8vbWFya2xvZ2ljLmNvbS94ZG1wL2RscyZxdW90OyBhdCAmcXVvdDsvTWFya0xvZ2ljL2Rscy54cXkmcXVvdDs7DQogIGltcG9ydCBtb2R1bGUgbmFtZXNwYWNlIGNvbW9tcy11dGlsID0gJnF1b3Q7aHR0cDovL21hcmtsb2dpYy5jb20vY29tb21zLXV0aWwmcXVvdDsgYXQgJnF1b3Q7L2xpYi9jb21vbXMtdXRpbC54cXkmcXVvdDs7DQogIGltcG9ydCBtb2R1bGUgbmFtZXNwYWNlIGNvbW9tcy11c2VyID0gJnF1b3Q7aHR0cDovL21hcmtsb2dpYy5jb20vY29tb21zLXVzZXImcXVvdDsgYXQgJnF1b3Q7L2xpYi9jb21vbXMtdXNlci54cXkmcXVvdDs7DQoNCg0KDQoNCiAgKDp+DQogICA6IE1ha2UgYSBjYWxsIHRvIGluc2VydCBhbmQgTWFuYWdlLiBUaGlzIElTIE5PVCBET05FIFdJVEhJTiBBTiBFVkFMIGJlY3Vhc2UNCiAgIDogaGF2ZW4mIzM5O3QgZmlndXJlZCBvdXQgaG93IHRvIHBhc3MgdGhlIHBlcm1pc3Npb25zIHZhcmlhYmxlIHRocm91Z2ggdG8gYmUgYm91bmQNCiAgIDopDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczppbnNlcnQoJHVyaSBhcyB4czpzdHJpbmcsICRkb2MgYXMgbm9kZSgpLCAgJG5vdGUgYXMgeHM6c3RyaW5nKXsNCiAgICAgIGxldCAkbG9nIDo9IHhkbXA6bG9nKCZxdW90O2luIGNvbW9tcy1kbHM6aW5zZXJ0LiZxdW90OykNCiAgICAgIGxldCAkY29sbGVjdGlvbiA6PSAmcXVvdDtEUkFGVFMmcXVvdDsNCiAgICAgIGxldCAkcGVybWlzc2lvbnMgOj0gKHhkbXA6cGVybWlzc2lvbigmIzM5O21rcC1hZG1pbiYjMzk7LCAmIzM5O3VwZGF0ZSYjMzk7KSwgeGRtcDpwZXJtaXNzaW9uKCYjMzk7bWtwLWFkbWluJiMzOTssICYjMzk7cmVhZCYjMzk7KSkgDQogICAgICByZXR1cm4gZGxzOmRvY3VtZW50LWluc2VydC1hbmQtbWFuYWdlKCR1cmksIGZuOmZhbHNlKCksICRkb2MsICRub3RlLCAkcGVybWlzc2lvbnMsICRjb2xsZWN0aW9uKQ0KDQogICAgICAoOg0KICAgICAgbGV0ICRjb2xsZWN0aW9uIDo9ICZxdW90O0RSQUZUUyZxdW90Ow0KICAgICAgcmV0dXJuDQogICAgICAgICAgeGRtcDpldmFsKA0KICAgICAgICAgICAgICBmbjpjb25jYXQoDQogICAgICAgICAgICAgICAgICBjb21vbXMtZGxzOl9pbXBvcnQoKSwgDQogICAgICAgICAgICAgICAgICAmcXVvdDsNCiAgICAgICAgICAgICAgICAgIGRlY2xhcmUgdmFyaWFibGUgJHVyaSBhcyB4czpzdHJpbmcgZXh0ZXJuYWw7DQogICAgICAgICAgICAgICAgICBkZWNsYXJlIHZhcmlhYmxlICRkb2MgYXMgbm9kZSgpIGV4dGVybmFsOw0KICAgICAgICAgICAgICAgICAgZGVjbGFyZSB2YXJpYWJsZSAkY29sbGVjdGlvbiBhcyB4czpzdHJpbmcgZXh0ZXJuYWw7DQogICAgICAgICAgICAgICAgICBkZWNsYXJlIHZhcmlhYmxlICRub3RlIGFzIHhzOnN0cmluZyBleHRlcm5hbDsNCiAgICAgICAgICAgICAgICAgIGRsczpkb2N1bWVudC1pbnNlcnQtYW5kLW1hbmFnZSgkdXJpLCBmbjp0cnVlKCksICRkb2MsICRub3RlLCANCiAgICAgICAgICAgICAgICAgICAgICAoeGRtcDpwZXJtaXNzaW9uKCYjMzk7bWtwLWFub24mIzM5OywgJiMzOTtyZWFkJiMzOTspLCB4ZG1wOnBlcm1pc3Npb24oJiMzOTtta3AtYWRtaW4mIzM5OywgJiMzOTt1cGRhdGUmIzM5OykpICwgJGNvbGxlY3Rpb24pDQogICAgICAgICAgICAgICAgICAmcXVvdDsNCiAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgKHhzOlFOYW1lKCZxdW90O3VyaSZxdW90OyksICR1cmksIHhzOlFOYW1lKCZxdW90O2RvYyZxdW90OyksICRkb2MsIHhzOlFOYW1lKCZxdW90O25vdGUmcXVvdDspLCAkbm90ZSwgeHM6UU5hbWUoJnF1b3Q7Y29sbGVjdGlvbiZxdW90OyksICRjb2xsZWN0aW9uKQ0KICAgICAgICAgICkgICAgDQogICAgICA6KSAgICANCg0KICB9Ow0KDQoNCg0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6bWFuYWdlKCR1cmksICRtYW5hZ2VOb3RlKXsNCiAgICAgIGxldCAkbG9nIDo9IHhkbXA6bG9nKCZxdW90O2luIGNvbW9tcy1kbHM6bWFuYWdlIHdpdGggbm90ZS4mcXVvdDspDQogICAgICByZXR1cm4gKA0KICAgICAgICAgIHhkbXA6ZXZhbCgNCiAgICAgICAgICAgICAgZm46Y29uY2F0KA0KICAgICAgICAgICAgICAgICAgY29tb21zLWRsczpfaW1wb3J0KCksIA0KICAgICAgICAgICAgICAgICAgJnF1b3Q7DQogICAgICAgICAgICAgICAgICBkZWNsYXJlIHZhcmlhYmxlICR1cmkgYXMgeHM6c3RyaW5nIGV4dGVybmFsOw0KICAgICAgICAgICAgICAgICAgZGVjbGFyZSB2YXJpYWJsZSAkbWFuYWdlTm90ZSBhcyB4czpzdHJpbmcgZXh0ZXJuYWw7DQogICAgICAgICAgICAgICAgICBkbHM6ZG9jdW1lbnQtbWFuYWdlKCR1cmksIGZuOmZhbHNlKCksICRtYW5hZ2VOb3RlKQ0KICAgICAgICAgICAgICAgICAgJnF1b3Q7DQogICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICh4czpRTmFtZSgmcXVvdDt1cmkmcXVvdDspLCAkdXJpLCB4czpRTmFtZSgmcXVvdDttYW5hZ2VOb3RlJnF1b3Q7KSwgJG1hbmFnZU5vdGUpDQogICAgICAgICAgKQ0KICAgICAgKSAgICANCiAgfTsNCg0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6dXBkYXRlKCR1cmkgYXMgeHM6c3RyaW5nLCAkZG9jIGFzIG5vZGUoKSwgJG5vdGUgYXMgeHM6c3RyaW5nKXsNCg0KICAgICAgeGRtcDpldmFsKA0KICAgICAgICAgIGZuOmNvbmNhdCgNCiAgICAgICAgICAgICAgY29tb21zLWRsczpfaW1wb3J0KCksIA0KICAgICAgICAgICAgICAmcXVvdDsNCiAgICAgICAgICAgICAgZGVjbGFyZSB2YXJpYWJsZSAkdXJpIGFzIHhzOnN0cmluZyBleHRlcm5hbDsNCiAgICAgICAgICAgICAgZGVjbGFyZSB2YXJpYWJsZSAkZG9jIGFzIG5vZGUoKSBleHRlcm5hbDsNCiAgICAgICAgICAgICAgZGVjbGFyZSB2YXJpYWJsZSAkbm90ZSBhcyB4czpzdHJpbmcgZXh0ZXJuYWw7DQogICAgICAgICAgICAgIGRsczpkb2N1bWVudC11cGRhdGUoJHVyaSwgJGRvYywgJG5vdGUsIGZuOnRydWUoKSwgKHhkbXA6cGVybWlzc2lvbigmIzM5O21rcC1hZG1pbiYjMzk7LCAmIzM5O3VwZGF0ZSYjMzk7KSwgeGRtcDpwZXJtaXNzaW9uKCYjMzk7bWtwLWFkbWluJiMzOTssICYjMzk7cmVhZCYjMzk7KSkgKQ0KICAgICAgICAgICAgICAmcXVvdDsNCiAgICAgICAgICApLA0KICAgICAgICAgICh4czpRTmFtZSgmcXVvdDt1cmkmcXVvdDspLCAkdXJpLCB4czpRTmFtZSgmcXVvdDtkb2MmcXVvdDspLCAkZG9jLCB4czpRTmFtZSgmcXVvdDtub3RlJnF1b3Q7KSwgJG5vdGUpDQogICAgICApDQoNCiAgfTsNCg0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczptYW5hZ2UoJHVyaSl7DQogICAgICBsZXQgJGxvZyA6PSB4ZG1wOmxvZygmcXVvdDtpbiBjb21vbXMtZGxzOm1hbmFnZSB3aXRob3V0IG5vdGUuJnF1b3Q7KQ0KICAgICAgcmV0dXJuICh4ZG1wOmV2YWwoDQogICAgICAgICAgZm46Y29uY2F0KGNvbW9tcy1kbHM6X2ltcG9ydCgpLCAmcXVvdDtkbHM6ZG9jdW1lbnQtbWFuYWdlKCYjMzk7JnF1b3Q7LCAkdXJpLCAmcXVvdDsmIzM5OywgZm46ZmFsc2UoKSkmcXVvdDspKQ0KICAgICAgKQ0KICB9Ow0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczp1bm1hbmFnZUFuZERlbGV0ZSgkdXJpcyl7DQogICAgICBmb3IgJHVyaSBpbiAkdXJpcw0KICAgICAgbGV0ICR1bnB1Ymxpc2ggOj0gKHhkbXA6ZXZhbCgNCiAgICAgICAgICBmbjpjb25jYXQoY29tb21zLWRsczpfaW1wb3J0KCksIA0KICAgICAgICAgICAgICAmcXVvdDtpbXBvcnQgbW9kdWxlIG5hbWVzcGFjZSBjb21vbXMtZGxzID0gJiMzOTtodHRwOi8vbWFya2xvZ2ljLmNvbS9jb21vbXMtZGxzJiMzOTsgYXQgJiMzOTsvbGliL2NvbW9tcy1kbHMueHF5JiMzOTs7IGNvbW9tcy1kbHM6dW5wdWJsaXNoKCYjMzk7JnF1b3Q7LCANCiAgICAgICAgICAgICAgJHVyaSwgJnF1b3Q7JiMzOTspJnF1b3Q7KSkpDQogICAgICBsZXQgJHVubWFuYWdlIDo9ICAoeGRtcDpldmFsKA0KICAgICAgICAgIGZuOmNvbmNhdChjb21vbXMtZGxzOl9pbXBvcnQoKSwgJnF1b3Q7ZGxzOmRvY3VtZW50LXVubWFuYWdlKCYjMzk7JnF1b3Q7LCAkdXJpLCAmcXVvdDsmIzM5OywgZm46ZmFsc2UoKSwgZm46dHJ1ZSgpKSZxdW90OykpDQogICAgICApDQogICAgICByZXR1cm4NCiAgICAgICAgICB4ZG1wOmRvY3VtZW50LWRlbGV0ZSgkdXJpKQ0KICB9Ow0KDQoNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOmNoZWNrb3V0KCR1cmkpIHsNCiAgICAgIHhkbXA6ZXZhbCgNCiAgICAgICAgICBmbjpjb25jYXQoY29tb21zLWRsczpfaW1wb3J0KCksICZxdW90O2Rsczpkb2N1bWVudC1jaGVja291dCgmIzM5OyZxdW90OywgJHVyaSwgJnF1b3Q7JiMzOTssIGZuOmZhbHNlKCkpJnF1b3Q7KSkNCiAgfTsgDQoNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOmNoZWNraW4oJHVyaSkgew0KICAgICAgeGRtcDpldmFsKA0KICAgICAgICAgIGZuOmNvbmNhdChjb21vbXMtZGxzOl9pbXBvcnQoKSwgJnF1b3Q7ZGxzOmRvY3VtZW50LWNoZWNraW4oJiMzOTsmcXVvdDssICR1cmksICZxdW90OyYjMzk7LCBmbjpmYWxzZSgpKSZxdW90OykpDQogIH07IA0KDQoNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOmFkZCgkdXJpKSB7DQogICAgICB4ZG1wOmV2YWwoDQogICAgICAgICAgZm46Y29uY2F0KGNvbW9tcy1kbHM6X2ltcG9ydCgpLCAmcXVvdDtkbHM6ZG9jdW1lbnQtbWFuYWdlKCYjMzk7JnF1b3Q7LCAkdXJpLCAmcXVvdDsmIzM5OywgZm46ZmFsc2UoKSkmcXVvdDspDQogICAgICApICAgIA0KICB9OyANCg0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpkb2N1bWVudEhpc3RvcnkoJHVyaSkgew0KICAgICAgeGRtcDpldmFsKA0KICAgICAgICAgIGZuOmNvbmNhdChjb21vbXMtZGxzOl9pbXBvcnQoKSwgJnF1b3Q7ZGxzOmRvY3VtZW50LWhpc3RvcnkoJiMzOTsmcXVvdDssICR1cmksICZxdW90OyYjMzk7KSZxdW90OykNCiAgICAgICkNCiAgfTsNCg0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6Y2hlY2tvdXRTdGF0dXMoJHVyaSkgew0KICAgICAgeGRtcDpldmFsKA0KICAgICAgICAgIGZuOmNvbmNhdChjb21vbXMtZGxzOl9pbXBvcnQoKSwgJnF1b3Q7ZGxzOmRvY3VtZW50LWNoZWNrb3V0LXN0YXR1cygmIzM5OyZxdW90OywgJHVyaSwgJnF1b3Q7JiMzOTspJnF1b3Q7KQ0KICAgICAgKQ0KICB9Ow0KDQogICg6fg0KICAgOiBjYWxsIGZuOmRvYyBidXQgd3JhcHBlZCBpbiBhbiBldmFsIA0KICAgOikNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOmRvY0luRXZhbCgkdXJpKSB7DQogICAgICB4ZG1wOmV2YWwoDQogICAgICAgICAgZm46Y29uY2F0KGNvbW9tcy1kbHM6X2ltcG9ydCgpLCAmcXVvdDtmbjpkb2MoJiMzOTsmcXVvdDssICR1cmksICZxdW90OyYjMzk7KSZxdW90OykNCiAgICAgICkNCiAgfTsNCg0KICAoOiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgOikNCiAgKDogUFVCTElTSElORyBGVU5DVElPTlMgOikNCiAgKDogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIDopDQoNCiAgKDp+DQogICA6IEdpdmVuIGEgc2VxdWVuY2Ugb2YgdmVyc2lvbiBVUklzLCBwdWJsaXNoIGFsbCBvZiB0aGVzZSB2ZXJzaW9ucyBvZiBlYWNoIGRvY3VtZW50DQogICA6IElmIHRoZXJlIGlzIGEgdmVyc2lvbiBvZiB0aGUgc2FtZSBkb2N1bWVudCBhbHJlYWR5IHB1Ymxpc2hlZCwgdW5wdWJsaXNoIGl0IDFzdA0KICAgOiANCiAgIDogV2hlbiAmcXVvdDtwdWJsaXNoJnF1b3Q7IGlzIHJlZmVycmVkIHRvLCB3ZSBtZWFuIHRoYXQgaXQgaXMgcHV0IGludG8gdGhlIFBVQkxJU0hFRCBjb2xsZWN0aW9uDQogICA6IHVucHVibGlzaCByZW1vdmVzIGNvbnRlbnQgZnJvbSB0aGlzIGNvbGxlY3Rpb24NCiAgIDogQHBhcmFtICR2ZXJzaW9uX3VyaXMgLSBzZXF1ZW5jZSBvZiB1cmlzIG9mIHZlcnNpb25zIG9mIG1hbmFnZWQgZG9jdW1lbnRzIHRvIHB1Ymxpc2gNCiAgIDopDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpwdWJsaXNoKCR2ZXJzaW9uX3VyaXMgYXMgaXRlbSgpKikgew0KICAgICAgZm9yICR1cmkgaW4gJHZlcnNpb25fdXJpcw0KICAgICAgbGV0ICRkb2MgOj0gZm46ZG9jKCR1cmkpDQogICAgICBsZXQgJG1hbmFnZWRfYmFzZV91cmkgOj0gJGRvYy9ub2RlKCkvcHJvcGVydHk6OmRsczp2ZXJzaW9uL2Rsczpkb2N1bWVudC11cmkvdGV4dCgpDQogICAgICBsZXQgJGV4aXN0aW5nIDo9ICBjb21vbXMtZGxzOnB1Ymxpc2hlZERvYygkbWFuYWdlZF9iYXNlX3VyaSkNCiAgICAgIGxldCAkdW5wdWJsaXNoRXhpc3RpbmcgOj0gaWYoJGV4aXN0aW5nKSB0aGVuIGNvbW9tcy1kbHM6dW5wdWJsaXNoVmVyc2lvbigoeGRtcDpub2RlLXVyaSgkZXhpc3RpbmcpKSkgIGVsc2UgKCkNCiAgICAgIGxldCAkYWRkUGVybWlzc2lvbnMgOj0gZGxzOmRvY3VtZW50LWFkZC1wZXJtaXNzaW9ucygkdXJpLCAoeGRtcDpwZXJtaXNzaW9uKCYjMzk7bWtwLWFub24mIzM5OywgJiMzOTtyZWFkJiMzOTspKSkNCiAgICAgIHJldHVybg0KICAgICAgICAgIGRsczpkb2N1bWVudC1hZGQtY29sbGVjdGlvbnMoJHVyaSwgKCZxdW90O1BVQkxJU0hFRCZxdW90OykpICAgIA0KICB9Ow0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpwdWJsaXNoTGF0ZXN0KCR1cmkpIHsNCiAgICAgICg6IFRPRE8gY2hlY2sgaWYgaXQmIzM5O3MgaW4gdGhlIGRyYWZ0IGNvbGxlY3Rpb24gcHJvYmFibHkgOikNCg0KICAgICAgbGV0ICRsYXRlc3RfdmVyc2lvbl91cmkgOj0gY29tb21zLWRsczpsYXRlc3RWZXJzaW9uVXJpKCR1cmkpDQogICAgICBsZXQgJGxvZzo9IHhkbXA6bG9nKGZuOmNvbmNhdCgmcXVvdDtsYXRlc3Q6ICZxdW90OywgJGxhdGVzdF92ZXJzaW9uX3VyaSkpICAgIA0KICAgICAgbGV0ICRsb2c6PSB4ZG1wOmxvZyhmbjpjb25jYXQoJnF1b3Q7dXJpOiAmcXVvdDssICR1cmkpKSAgICAgICAgICAgIA0KICAgICAgcmV0dXJuIGNvbW9tcy1kbHM6cHVibGlzaCgkbGF0ZXN0X3ZlcnNpb25fdXJpKSAgICANCg0KICB9Ow0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpsYXRlc3RWZXJzaW9uVXJpKCR1cmkpIHsNCiAgICAgIGxldCAkbGF0ZXN0X3ZlcnNpb25fbnVtIDo9DQogICAgICAgICAgKA0KICAgICAgICAgIGZvciAkdmVyc2lvbiBpbiBkbHM6ZG9jdW1lbnQtaGlzdG9yeSgkdXJpKS9kbHM6dmVyc2lvbg0KICAgICAgICAgIG9yZGVyIGJ5IGZuOm51bWJlcigkdmVyc2lvbi8vZGxzOnZlcnNpb24taWQvdGV4dCgpKSBkZXNjZW5kaW5nDQogICAgICAgICAgcmV0dXJuICR2ZXJzaW9uLy9kbHM6dmVyc2lvbi1pZC90ZXh0KCkNCiAgICAgICAgICApWzFdDQoNCg0KICAgICAgcmV0dXJuIGRsczpkb2N1bWVudC12ZXJzaW9uLXVyaSgkdXJpLCAkbGF0ZXN0X3ZlcnNpb25fbnVtKQ0KICB9Ow0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczp1bnB1Ymxpc2goJHVyaXMgYXMgaXRlbSgpKikgew0KICAgICAgZm9yICR1cmkgaW4gJHVyaXMNCiAgICAgIHJldHVybg0KICAgICAgICAgIGxldCAkcHVibGlzaGVkX2RvYyA6PSBjb21vbXMtZGxzOnB1Ymxpc2hlZERvYygkdXJpKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgICAgICAgICBpZigkcHVibGlzaGVkX2RvYykgdGhlbg0KICAgICAgICAgICAgICAgICAgbGV0ICRwdWJsaXNoZWRfdmVyc2lvbl91cmkgOj0geGRtcDpub2RlLXVyaSgkcHVibGlzaGVkX2RvYykNCiAgICAgICAgICAgICAgICAgIHJldHVybiBjb21vbXMtZGxzOnVucHVibGlzaFZlcnNpb24oJHB1Ymxpc2hlZF92ZXJzaW9uX3VyaSkgICAgICAgIA0KICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAoKQ0KICB9Ow0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpsYXRlc3RQdWJsaXNoZWREb2NBdXRob3IoJHVyaSkgew0KICAgICAgbGV0ICRhdXRob3JfaWQgOj0gZG9jKCR1cmkpL3Byb3BlcnR5OjpkbHM6dmVyc2lvbi9kbHM6YXV0aG9yL3RleHQoKQ0KICAgICAgcmV0dXJuDQogICAgICAgICAgaWYoJGF1dGhvcl9pZCkgdGhlbg0KICAgICAgICAgICAgICBjb21vbXMtdXNlcjpnZXRVc2VybmFtZSgkYXV0aG9yX2lkKQ0KICAgICAgICAgIGVsc2UgDQogICAgICAgICAgICAgICgpDQoNCiAgfTsNCg0KICAoOn4NCiAgIDogR2l2ZW4gYSBzZXF1ZW5jZSBvZiB2ZXJzaW9uIFVSSXMsIHVucHVibGlzaCBhbGwgb2YgdGhlc2UgdmVyc2lvbnMgb2YgZWFjaCBkb2N1bWVudA0KICAgOikNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOnVucHVibGlzaFZlcnNpb24oJHZlcnNpb25fdXJpcyBhcyBpdGVtKCkqKSB7DQogICAgICBmb3IgJHVyaSBpbiAkdmVyc2lvbl91cmlzDQogICAgICByZXR1cm4NCiAgICAgICAgICBsZXQgJHJlbW92ZVBlcm1pc3Npb25zIDo9IGRsczpkb2N1bWVudC1yZW1vdmUtcGVybWlzc2lvbnMoJHVyaSwgKHhkbXA6cGVybWlzc2lvbigmIzM5O21rcC1hbm9uJiMzOTssICYjMzk7cmVhZCYjMzk7KSkpDQogICAgICAgICAgcmV0dXJuIGRsczpkb2N1bWVudC1yZW1vdmUtY29sbGVjdGlvbnMoJHVyaSwgKCZxdW90O1BVQkxJU0hFRCZxdW90OykpICAgICAgICANCiAgfTsNCg0KICAoOn4NCiAgIDogR2l2ZW4gdGhlIGJhc2UgVVJJIG9mIGEgbWFuYWdlZCBwaWVjZSBvZiBjb250ZW50LCByZXR1cm4gdGhlIGRvY3VtZW50IG9mIHRoZSBub2RlDQogICA6IG9mIHRoZSB2ZXJzaW9uIHRoYXQgaXMgcHVibGlzaGVkDQogICA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6cHVibGlzaGVkRG9jKCR1cmkpIHsNCiAgICAgIGZuOmNvbGxlY3Rpb24oJnF1b3Q7UFVCTElTSEVEJnF1b3Q7KVtwcm9wZXJ0eTo6ZGxzOnZlcnNpb24vZGxzOmRvY3VtZW50LXVyaSA9ICR1cmldIA0KICB9Ow0KDQoNCiAgKDp+DQogICA6IFRlc3QgaWYgYW55IHZlcnNpb24gb2YgdGhlIG1hbmFnZWQgZG9jdW1lbnQgaXMgcHVibGlzaGVkDQogICA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6aXNQdWJsaXNoZWQoJHVyaSkgew0KICAgICAgaWYoIGNvbW9tcy1kbHM6cHVibGlzaGVkRG9jKCR1cmkpKSB0aGVuDQogICAgICAgICAgZm46dHJ1ZSgpDQogICAgICBlbHNlDQogICAgICAgICAgZm46ZmFsc2UoKQ0KICB9Ow0KDQoNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOnB1Ymxpc2hlZFN0YXRlKCR1cmkpIHsNCiAgICAgIGxldCAkZG9jIDo9IGNvbW9tcy1kbHM6cHVibGlzaGVkRG9jKCR1cmkpDQogICAgICBsZXQgJHB1Ymxpc2hlZF91cmkgOj0gaWYoJGRvYykgdGhlbiB4ZG1wOm5vZGUtdXJpKCRkb2MpIGVsc2UgKCkNCiAgICAgIGxldCAkbGF0ZXN0IDo9IGNvbW9tcy1kbHM6bGF0ZXN0VmVyc2lvblVyaSgkdXJpKQ0KICAgICAgcmV0dXJuDQogICAgICAgICAgaWYoJGRvYykgdGhlbg0KICAgICAgICAgICAgICBpZigkbGF0ZXN0IG5lICRwdWJsaXNoZWRfdXJpKSB0aGVuDQogICAgICAgICAgICAgICAgICAmcXVvdDtzdGFsZSZxdW90Ow0KICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAmcXVvdDtwdWJsaXNoZWQmcXVvdDsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICZxdW90O3VucHVibGlzaGVkJnF1b3Q7DQogIH07DQoNCg0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6Z2V0TWFuYWdlZERvY1VyaSgkdXJpKSB7DQogICAgICBsZXQgJGRvYyA6PSBmbjpkb2MoJHVyaSkNCiAgICAgIGxldCAkbWFuYWdlZF91cmkgOj0gJGRvYy9wcm9wZXJ0eTo6ZGxzOnZlcnNpb24vZGxzOmRvY3VtZW50LXVyaS90ZXh0KCkNCiAgICAgIGxldCAkbWFuYWdlZF91cmkgOj0gaWYoJG1hbmFnZWRfdXJpKSB0aGVuICRtYW5hZ2VkX3VyaSBlbHNlICR1cmkNCiAgICAgIHJldHVybiAkbWFuYWdlZF91cmkNCiAgfTsNCg0KICAoOn4NCiAgIDogR2l2ZW4gYSBtYW5hZ2UgY29udGVudCB1cmwgKGUuZy4gL2NvbnRlbnQvMTIzNDU2LnhtbCkgcmV0dXJuIHRoZSBhcHByb3ByaWF0ZQ0KICAgOiB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCBiYXNlZCBvbiB3aGF0IHN0YWdlIGNvbGxlY3Rpb24gaXMgYmVpbmcgdmlld2VkIGFuZCANCiAgIDogd2hhdCYjMzk7cyBwdWJsaXNoZWQNCiAgIDoNCiAgIDogQHBhcmFtICR1cmkgYSBtYW5hZ2UgY29udGVudCB1cmwgKGUuZy4gL2NvbnRlbnQvMTIzNDU2LnhtbCkgLSBOT1QgQSBWRVJTSU9ORUQgVVJJDQogICA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6ZG9jKCR1cmkpIHsNCiAgICAgIGxldCAkZG9jIDo9IGZuOnJvb3QoY29tb21zLWRsczpjb2xsZWN0aW9uKClbcHJvcGVydHk6OmRsczp2ZXJzaW9uL2Rsczpkb2N1bWVudC11cmkgPSAkdXJpXVsxXSkNCiAgICAgIHJldHVybg0KICAgICAgICAgIGlmKCRkb2MpIHRoZW4gDQogICAgICAgICAgICAgICRkb2MgDQogICAgICAgICAgZWxzZSANCiAgICAgICAgICAgICAgbGV0ICRtYW5hZ2VkRG9jSW5Db2xsZWN0aW9uIDo9IGNvbW9tcy1kbHM6Y29sbGVjdGlvbi1uYW1lKCkgPSB4ZG1wOmRvY3VtZW50LWdldC1jb2xsZWN0aW9ucygkdXJpKQ0KICAgICAgICAgICAgICByZXR1cm4NCiAgICAgICAgICAgICAgICAgIGlmKCRtYW5hZ2VkRG9jSW5Db2xsZWN0aW9uKSB0aGVuDQogICAgICAgICAgICAgICAgICAgICAgZm46ZG9jKCR1cmkpDQogICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgKCkNCiAgfTsNCg0KICAoOn4gDQogICA6IEdldCB0aGUgY29sbGVjdGlvbiB0byBiZSB1c2VkIHdoZW4gcXVlcnlpbmcgZm9yIGNvbnRlbnQNCiAgIDogVEhJUyBvciBjb21vbXMtZGxzOmNvbGxlY3Rpb24tbmFtZSgpIFNIT1VMRCBCRSBVU0VEIFdIRU4gQlVJTERJTkcgQU5ZIFFVRVJZIEZPUiBNQU5BR0VEIENPTlRFTlQNCiAgIDopDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpjb2xsZWN0aW9uKCkgIHsNCiAgICAgIGZuOmNvbGxlY3Rpb24oIGNvbW9tcy1kbHM6Y29sbGVjdGlvbi1uYW1lKCkgKQ0KICB9Ow0KDQogICg6fiANCiAgIDogR2V0IHRoZSBjb2xsZWN0aW9uIG5hbWV0byBiZSB1c2VkIHdoZW4gcXVlcnlpbmcgZm9yIGNvbnRlbnQNCiAgIDogVEhJUyBvciBjb21vbXMtZGxzOmNvbGxlY3Rpb24oKSBTSE9VTEQgQkUgVVNFRCBXSEVOIEJVSUxESU5HIEFOWSBRVUVSWSBGT1IgTUFOQUdFRCBDT05URU5UIA0KICAgOikNCiAgZGVjbGFyZSBmdW5jdGlvbiBjb21vbXMtZGxzOmNvbGxlY3Rpb24tbmFtZSgpIGFzIHhzOnN0cmluZyB7DQogICAgICBsZXQgJGRlZmF1bHRfY29sbGVjdGlvbiA6PSAmcXVvdDtQVUJMSVNIRUQmcXVvdDsNCiAgICAgIHJldHVybg0KICAgICAgICAgIGlmKGNvbW9tcy11c2VyOmlzQWRtaW4oKSkgdGhlbiANCiAgICAgICAgICAgICAgbGV0ICRwdWJfc3RhZ2VfY29sbGVjdGlvbl9jb29raWUgOj0gY29tb21zLXV0aWw6Z2V0Q29va2llKCZxdW90O0NPTU9NU19DT0xMRUNUSU9OJnF1b3Q7KQ0KICAgICAgICAgICAgICByZXR1cm4NCiAgICAgICAgICAgICAgICAgIGlmKCRwdWJfc3RhZ2VfY29sbGVjdGlvbl9jb29raWUpIHRoZW4NCiAgICAgICAgICAgICAgICAgICAgICAkcHViX3N0YWdlX2NvbGxlY3Rpb25fY29va2llDQogICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRfY29sbGVjdGlvbg0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgJGRlZmF1bHRfY29sbGVjdGlvbg0KICB9Ow0KDQogICg6fg0KICAgOiBDaGVjayBpZiB0aGUgcHVibGlzaGVkIGNvbGxlY3Rpb24gaXMgYmVpbmcgdmlld2VkDQogICA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6aXNWaWV3aW5nUHVibGlzaGVkKCkgew0KICAgICAgaWYoY29tb21zLWRsczpjb2xsZWN0aW9uLW5hbWUoKSA9ICZxdW90O1BVQkxJU0hFRCZxdW90OykgdGhlbg0KICAgICAgICAgIGZuOnRydWUoKQ0KICAgICAgZWxzZQ0KICAgICAgICAgIGZuOmZhbHNlKCkNCiAgfTsNCg0KICAoOn4NCiAgIDogR2V0IHRoZSBiZXN0IFVSTCBmb3IgdGhlIGNvbnRlbnQgVVJJLiANCiAgIDogVGhpcyBpcyBlaXRoZXIgdGhlIGRlZmF1bHQgVVJJIGJhc2VkIG9uIGRldGFpbCB0eXBlIG9yIHNob3VsZCBhbHNvIHRha2UNCiAgIDogaW50byBhY2NvdW50IGZyaWVuZGx5IHVybHMgYW5kIG5hdmlnYXRpb24gc3RydWN0dXJlcyB0byBmaWd1cmUgb3V0IHRoZSANCiAgIDogYmVzdCBjaG9pY2UNCiAgIDopDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpjb250ZW50VXJsKCR1cmkpIHsNCg0KICAgICAgKDogVE9ETzogYWRkIGZyaWVuZGx5IFVSTCBhbmQgbmF2IHN0cnVjdHVyZSBsb2dpYyAxc3QgOikNCg0KICAgICAgbGV0ICRkb2MgOj0gZm46ZG9jKCR1cmkpDQogICAgICBsZXQgJG1hbmFnZWREb2NVcmkgOj0gJGRvYy9wcm9wZXJ0eTo6ZGxzOnZlcnNpb24vZGxzOmRvY3VtZW50LXVyaQ0KICAgICAgbGV0ICR1cmkgOj0gaWYoJG1hbmFnZWREb2NVcmkpIHRoZW4gJG1hbmFnZWREb2NVcmkgZWxzZSAkdXJpDQogICAgICBsZXQgJHR5cGUgOj0gJGRvYy9ub2RlKCkvZm46bmFtZSgpDQogICAgICBsZXQgJGNvbnRlbnRfaWQgOj0gZm46dG9rZW5pemUoIGZuOnRva2VuaXplKCR1cmksICZxdW90Oy8mcXVvdDspWzNdLCAmcXVvdDtcLiZxdW90OylbMV0NCiAgICAgIHJldHVybg0KICAgICAgICAgIGZuOmNvbmNhdCgmcXVvdDsvJnF1b3Q7LCAkdHlwZSwgJnF1b3Q7LyZxdW90OywgJGNvbnRlbnRfaWQpDQogIH07DQoNCiAgKDoNCiAgIDoNCiAgIDogIGdldHMgbGlzdCBvZiBkb2MgdmVyc2lvbnMgYW5kIHVyaS4gDQogICA6DQogICA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGNvbW9tcy1kbHM6dmVyc2lvbkhpc3RvcnkoJHVyaSkgew0KICAgICAgbGV0ICRwdWJsaXNoZWRfZG9jIDo9IGNvbW9tcy1kbHM6cHVibGlzaGVkRG9jKCR1cmkpDQogICAgICBsZXQgJHB1Ymxpc2hlZF91cmkgOj0gaWYoJHB1Ymxpc2hlZF9kb2MpIHRoZW4geGRtcDpub2RlLXVyaSgkcHVibGlzaGVkX2RvYykgZWxzZSAoKQ0KICAgICAgcmV0dXJuDQogICAgICAmbHQ7dmVyc2lvbnMmZ3Q7DQogICAgICAgICAgew0KICAgICAgICAgIGZvciAkdmVyc2lvbiBpbiBkbHM6ZG9jdW1lbnQtaGlzdG9yeSgkdXJpKS9kbHM6dmVyc2lvbg0KICAgICAgICAgICAgbGV0ICR2ZXJzaW9uX251bSA6PSAkdmVyc2lvbi9kbHM6dmVyc2lvbi1pZC90ZXh0KCkNCiAgICAgICAgICAgIGxldCAkY3JlYXRlZCA6PSAkdmVyc2lvbi9kbHM6Y3JlYXRlZC90ZXh0KCkNCiAgICAgICAgICAgIGxldCAkYXV0aG9yX2lkIDo9ICR2ZXJzaW9uL2RsczphdXRob3IvdGV4dCgpDQogICAgICAgICAgICBsZXQgJGF1dGhvciA6PSBjb21vbXMtdXNlcjpnZXRVc2VybmFtZSgkYXV0aG9yX2lkKQ0KDQoNCiAgICAgICAgICAgIGxldCAkbm90ZSA6PSAkdmVyc2lvbi9kbHM6YW5ub3RhdGlvbi90ZXh0KCkNCiAgICAgICAgICAgIGxldCAkdmVyc2lvbl91cmkgOj0geGRtcDpub2RlLXVyaShkbHM6ZG9jdW1lbnQtdmVyc2lvbigkdXJpLCAkdmVyc2lvbl9udW0pKQ0KICAgICAgICAgICAgbGV0ICRwdWJsaXNoZWQgOj0gJHB1Ymxpc2hlZF91cmkgZXEgJHZlcnNpb25fdXJpDQogICAgICAgICAgICByZXR1cm4gDQogICAgICAgICAgICAgICZsdDt2ZXJzaW9uJmd0Ow0KICAgICAgICAgICAgICAgICAgJmx0O3ZlcnNpb24tbnVtYmVyJmd0O3skdmVyc2lvbl9udW19Jmx0Oy92ZXJzaW9uLW51bWJlciZndDsNCiAgICAgICAgICAgICAgICAgICZsdDtjcmVhdGVkJmd0O3skY3JlYXRlZH0mbHQ7L2NyZWF0ZWQmZ3Q7ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgJmx0O2F1dGhvciZndDt7JGF1dGhvcn0mbHQ7L2F1dGhvciZndDsNCiAgICAgICAgICAgICAgICAgICZsdDtwdWJsaXNoZWQmZ3Q7eyRwdWJsaXNoZWR9Jmx0Oy9wdWJsaXNoZWQmZ3Q7DQogICAgICAgICAgICAgICAgICAmbHQ7dmVyc2lvbi11cmkmZ3Q7eyR2ZXJzaW9uX3VyaX0mbHQ7L3ZlcnNpb24tdXJpJmd0Ow0KICAgICAgICAgICAgICAmbHQ7L3ZlcnNpb24mZ3Q7ICANCiAgICAgICAgICB9ICAgICAgICANCiAgICAgICZsdDsvdmVyc2lvbnMmZ3Q7DQogIH07DQoNCg0KDQoNCiAgKDogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIDopDQogICg6IFBSSVZBVEUgRlVOQ1RJT05TIDopDQogICg6ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyA6KQ0KDQogIGRlY2xhcmUgZnVuY3Rpb24gY29tb21zLWRsczpfaW1wb3J0KCkgew0KICAgICAgJnF1b3Q7eHF1ZXJ5IHZlcnNpb24gJiMzOTsxLjAtbWwmIzM5OzsNCiAgICAgICBpbXBvcnQgbW9kdWxlIG5hbWVzcGFjZSBkbHMgPSAmIzM5O2h0dHA6Ly9tYXJrbG9naWMuY29tL3hkbXAvZGxzJiMzOTsgYXQgJiMzOTsvTWFya0xvZ2ljL2Rscy54cXkmIzM5OzsgJnF1b3Q7IA0KICB9OyAgDQogIA0KICAoOiBDT0RFIFNBTVBMRSBCRUxPVyBCT1JST1dFRCBGUk9NIFBBUlRJQ0sgV0lFRCA6KQ0KICBkZWNsYXJlIGZ1bmN0aW9uIGxvY2FsOmRvY3VtZW50LW1vdmUtZm9yZXN0KCR1cmkgYXMgeHM6c3RyaW5nLCAkZm9yZXN0LWlkcyBhcyB4czp1bnNpZ25lZExvbmcqKQ0KICB7DQogICAgeGRtcDpkb2N1bWVudC1pbnNlcnQoDQogICAgICAkdXJpLA0KICAgICAgZm46ZG9jKCR1cmkpLA0KICAgICAgeGRtcDpkb2N1bWVudC1nZXQtcGVybWlzc2lvbnMoJHVyaSksDQogICAgICB4ZG1wOmRvY3VtZW50LWdldC1jb2xsZWN0aW9ucygkdXJpKSwNCiAgICAgIHhkbXA6ZG9jdW1lbnQtZ2V0LXF1YWxpdHkoJHVyaSksDQogICAgICAkZm9yZXN0LWlkcw0KICAgICkNCiAgfTsNCg0KICBsZXQgJHhtbCA6PQ0KICAgICZsdDt4bWwgYXR0PSZxdW90O2JsYWgmcXVvdDsgYXR0Mj0mcXVvdDtibGFoJnF1b3Q7Jmd0Ow0KICAgICAgc2Rhc2QmbHQ7YiZndDthc2Rhc2QmbHQ7L2ImZ3Q7DQogICAgJmx0Oy94bWwmZ3Q7DQogICg6IC0tLS0tLS0tIDopDQogIGZvciAkZCBpbiBmbjpkb2MoJnF1b3Q7ZGVwdHMueG1sJnF1b3Q7KS9kZXB0cy9kZXB0bm8NCiAgbGV0ICRlIDo9IGZuOmRvYygmcXVvdDtlbXBzLnhtbCZxdW90OykvZW1wcy9lbXBbZGVwdG5vID0gJGRdDQogIHdoZXJlIGZuOmNvdW50KCRlKSAmZ3Q7PSAxMA0KICBvcmRlciBieSBmbjphdmcoJGUvc2FsYXJ5KSBkZXNjZW5kaW5nDQogIHJldHVybg0KICAgICAmbHQ7YmlnLWRlcHQmZ3Q7DQogICAgICAgIHsNCiAgICAgICAgJGQsDQogICAgICAgICZsdDtoZWFkY291bnQmZ3Q7e2ZuOmNvdW50KCRlKX0mbHQ7L2hlYWRjb3VudCZndDssDQogICAgICAgICZsdDthdmdzYWwmZ3Q7e2ZuOmF2ZygkZS9zYWxhcnkpfSZsdDsvYXZnc2FsJmd0Ow0KICAgICAgICB9DQogICAgICZsdDsvYmlnLWRlcHQmZ3Q7DQogICg6IC0tLS0tLS0tIDopDQogIGRlY2xhcmUgZnVuY3Rpb24gbG9jYWw6ZGVwdGgoJGUgYXMgbm9kZSgpKSBhcyB4czppbnRlZ2VyDQogIHsNCiAgICAgKDogQSBub2RlIHdpdGggbm8gY2hpbGRyZW4gaGFzIGRlcHRoIDEgOikNCiAgICAgKDogT3RoZXJ3aXNlLCBhZGQgMSB0byBtYXggZGVwdGggb2YgY2hpbGRyZW4gOikNCiAgICAgaWYgKGZuOmVtcHR5KCRlLyopKSB0aGVuIDENCiAgICAgZWxzZSBmbjptYXgoZm9yICRjIGluICRlLyogcmV0dXJuIGxvY2FsOmRlcHRoKCRjKSkgKyAxDQogIH07DQoNCiAgbG9jYWw6ZGVwdGgoZm46ZG9jKCZxdW90O3BhcnRsaXN0LnhtbCZxdW90OykpDQoNCiAgKDogLS0tLS0tLS0gOikNCiAgJmx0O2h0bWwmZ3Q7Jmx0O2hlYWQvJmd0OyZsdDtib2R5Jmd0Ow0KICB7DQogICAgZm9yICRhY3QgaW4gZG9jKCZxdW90O2hhbWxldC54bWwmcXVvdDspLy9BQ1QNCiAgICBsZXQgJHNwZWFrZXJzIDo9IGRpc3RpbmN0LXZhbHVlcygkYWN0Ly9TUEVBS0VSKQ0KICAgIHJldHVybg0KICAgICAgJmx0O2RpdiZndDt7IHN0cmluZygkYWN0L1RJVExFKSB9Jmx0Oy9oMSZndDsNCiAgICAgICAgJmx0O3VsJmd0Ow0KICAgICAgICB7DQogICAgICAgICAgZm9yICRzcGVha2VyIGluICRzcGVha2Vycw0KICAgICAgICAgIHJldHVybiAmbHQ7bGkmZ3Q7eyAkc3BlYWtlciB9Jmx0Oy9saSZndDsNCiAgICAgICAgfQ0KICAgICAgICAmbHQ7L3VsJmd0Ow0KICAgICAgJmx0Oy9kaXYmZ3Q7DQogIH0NCiAgJmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDsNCiAgKDogLS0tLS0tLS0gOikNCiAgew0KICAgICAgICAgIGZvciAkYm9vayBpbiBkb2MoJnF1b3Q7Ym9va3MueG1sJnF1b3Q7KS8vYm9vaw0KICAgICAgICAgIHJldHVybg0KICAgICAgICAgIGlmIChjb250YWlucygkYm9vay9hdXRob3IvdGV4dCgpLCZxdW90O0hlcmJlcnQmcXVvdDspIG9yIGNvbnRhaW5zKCRib29rL2F1dGhvci90ZXh0KCksJnF1b3Q7QXNpbW92JnF1b3Q7KSkNCiAgICAgICAgICAgICAgICAgIHRoZW4gJGJvb2sNCiAgICAgICAgICBlbHNlICRib29rL3RleHQoKQ0KDQogICAgICAgICAgbGV0ICRsZXQgOj0gJmx0O3gmZ3Q7JnF1b3Q7dGVzdCZxdW90OyZsdDsveCZndDsNCiAgICAgICAgICByZXR1cm4gZWxlbWVudCBlbGVtZW50IHsNCiAgICAgICAgICBhdHRyaWJ1dGUgYXR0cmlidXRlIHsgMSB9LA0KICAgICAgICAgIGVsZW1lbnQgdGVzdCB7ICYjMzk7YSYjMzk7IH0sDQogICAgICAgICAgYXR0cmlidXRlIGZvbyB7ICZxdW90O2JhciZxdW90OyB9LA0KICAgICAgICAgIGZuOmRvYygpWyBmb28vQGJhciBlcSAkbGV0IF0sDQogICAgICAgICAgLy94IH0NCiAgfQ0KICAoOiAtLS0tLS0tLSA6KQ0KICAmbHQ7YmliJmd0Ow0KICAgew0KICAgIGZvciAkYiBpbiBkb2MoJnF1b3Q7aHR0cDovL2JzdG9yZTEuZXhhbXBsZS5jb20vYmliLnhtbCZxdW90OykvYmliL2Jvb2sNCiAgICB3aGVyZSAkYi9wdWJsaXNoZXIgPSAmcXVvdDtBZGRpc29uLVdlc2xleSZxdW90OyBhbmQgJGIvQHllYXIgJmd0OyAxOTkxDQogICAgcmV0dXJuDQogICAgICAmbHQ7Ym9vayB5ZWFyPSZxdW90O3sgJGIvQHllYXIgfSZxdW90OyZndDsNCiAgICAgICB7ICRiL3RpdGxlIH0NCiAgICAgICZsdDsvYm9vayZndDsNCiAgIH0NCiAgJmx0Oy9iaWImZ3Q7DQogICg6IC0tLS0tLS0tIDopDQo8L3RleHRhcmVhPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctdG9wOjE1cHg7Ij4NCiAgICBEZXZlbG9wZWQgYnkgPGEgaHJlZj0iaHR0cDovL21pa2UuYnJldm9vcnQuY29tIj5NaWtlIEJyZXZvb3J0PC9hPiAoPGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tIj5AbWJyZXZvb3J0PC9hPikgDQogICAgPGJyLz48c21hbGw+PGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLmh0bWwiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT48L3NtYWxsPjwvZGl2Pg0KDQo8L2Rpdj4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgdmFyIGVkaXRvciA9IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKCdjb2RlJywgew0KICAgIGhlaWdodDogIjU1MHB4IiwNCiAgICBwYXJzZXJmaWxlOiBbIi4uL2NvbnRyaWIveHF1ZXJ5L2pzL3Rva2VuaXpleHF1ZXJ5LmpzIiwgIi4uL2NvbnRyaWIveHF1ZXJ5L2pzL3BhcnNleHF1ZXJ5LmpzIiBdLA0KICAgIHN0eWxlc2hlZXQ6IFsiY3NzL3hxY29sb3JzLmNzcyJdLA0KICAgIHBhdGg6ICIuLi8uLi9qcy8iLA0KICAgIGNvbnRpbnVvdXNTY2FubmluZzogZmFsc2UsIC8vNTAwLA0KICAgIGxpbmVOdW1iZXJzOiB0cnVlDQogIH0pOw0KICANCiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAgICAkKCIuY3NzLXN3aXRjaCIpLmNsaWNrKGZ1bmN0aW9uKCkgew0KICAgICAgICAgZWRpdG9yLnNldFN0eWxlc2hlZXQoImNzcy8iICsgJCh0aGlzKS5hdHRyKCJyZWwiKSk7DQogICAgICB9KTsNCiAgfSk7DQo8L3NjcmlwdD4NCiAgPC9ib2R5Pg0KPC9odG1sPg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/js/parsexquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAyMDEwIE1pa2UgQnJldm9vcnQgaHR0cDovL21pa2UuYnJldm9vcnQuY29tICh0d2l0dGVyOkBtYnJldm9vcnQpDQoNCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQoNCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCg0KVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQoNClRoaXMgaXMgYW4gaW5kaXJlY3QgY29sbGVjdGl2ZSBkZXJpdmF0aXZlIG9mIHRoZSBvdGhlciBwYXJzZXMgaW4gdGhpcyBwYWNrYWdlDQoNCiovDQoNCi8vIFRoZSBYUXVlcnkgcGFyc2VyIHVzZXMgdGhlIHhxdWVyeSB0b2tlbml6ZXIgaW4gdG9rZW5pemV4cXVlcnkuanMuIEdpdmVuIHRoZQ0KLy8gc3RyZWFtIG9mIHRva2VucywgaXQgbWFrZXMgZGVjaXNpb25zIHRvIG92ZXJyaWRlIHRoZSB0b2tlbnMgc3R5bGVzIGJ5IGV2YWx1YXRpbmcNCi8vIGl0J3MgY29udGV4dCB3aXRoIHJlc3BlY3QgdG8gdGhlIG90aGVyIHRva2Vucy4gDQoNCnZhciBYcXVlcnlQYXJzZXIgPSBFZGl0b3IuUGFyc2VyID0gKGZ1bmN0aW9uKCkgew0KICAgIGZ1bmN0aW9uIHhxdWVyeUxleGljYWwoc3RhcnRDb2x1bW4sIGN1cnJlbnRUb2tlbiwgYWxpZ24sIHByZXZpb3VzVG9rZW4sIGVuY2xvc2VMZXZlbCkgew0KICAgICAgICB0aGlzLnN0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47DQogICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gY3VycmVudFRva2VuOw0KICAgICAgICBpZiAoYWxpZ24gIT0gbnVsbCkNCiAgICAgICAgdGhpcy5hbGlnbiA9IGFsaWduOw0KICAgICAgICB0aGlzLnByZXZpb3VzVG9rZW4gPSBwcmV2aW91c1Rva2VuOw0KICAgICAgICB0aGlzLmVuY2xvc2VMZXZlbCA9IGVuY2xvc2VMZXZlbDsNCiAgICB9DQoNCiAgICAvLyBYcXVlcnkgaW5kZW50YXRpb24gcnVsZXMuDQogICAgZnVuY3Rpb24gaW5kZW50WHF1ZXJ5KGxleGljYWwpIHsNCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZpcnN0Q2hhcnMsIGN1ckluZGVudCwgZGlyZWN0aW9uKSB7DQogICAgICAgICAgICAvLyB0ZXN0IGlmIHRoaXMgaXMgbmV4dCByb3cgYWZ0ZXIgdGhlIG9wZW4gYnJhY2UNCiAgICAgICAgICAgIGlmIChsZXhpY2FsLmVuY2xvc2VMZXZlbCAhPT0gMCAmJiBmaXJzdENoYXJzID09PSAifSIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gbGV4aWNhbC5zdGFydENvbHVtbiAtIGluZGVudFVuaXQ7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHJldHVybiBsZXhpY2FsLnN0YXJ0Q29sdW1uOw0KICAgICAgICB9Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHBhcnNlWHF1ZXJ5KHNvdXJjZSkgew0KICAgICAgICB2YXIgdG9rZW5zID0gdG9rZW5pemVYcXVlcnkoc291cmNlKTsNCg0KICAgICAgICB2YXIgY29sdW1uID0gMDsNCiAgICAgICAgLy8gdGVsbHMgdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIHN5bWJvbCBmcm9tIHRoZQ0KICAgICAgICAvLyBzdGFydCBvZiByb3cuDQogICAgICAgIHZhciBwcmV2aW91c1Rva2VuID0gbnVsbDsNCiAgICAgICAgdmFyIHByZXZpb3VzVG9rZW5zID0gW107DQogICAgICAgIC8vbWINCiAgICAgICAgdmFyIGFsaWduID0gZmFsc2U7DQogICAgICAgIC8vIHRlbGxzIGlmIHRoZSB0ZXh0IGFmdGVyIHRoZSBvcGVuIGJyYWNlDQogICAgICAgIHZhciBlbmNsb3NlTGV2ZWwgPSAwOw0KICAgICAgICAvLyB0ZWxscyBjdXJlbnQgb3BlbmVkIGJyYWNlcyBxdWFudGl0eQ0KICAgICAgICB2YXIgY2MgPSBbc3RhdGVtZW50c107DQogICAgICAgIHZhciBjb25zdW1lLA0KICAgICAgICBtYXJrZWQ7DQoNCiAgICAgICAgdmFyIGl0ZXIgPSB7DQogICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnMubmV4dCgpOw0KICAgICAgICAgICAgICAgIC8vIHNpbmNlIGF0dHJpYnV0ZSBhbmQgZWxlbWVudHMgY2FuIGJlIG5hbWVkIHRoZSBzYW1lLCBhc3N1bWUgdGhlDQogICAgICAgICAgICAgICAgLy8gZm9sbG93aW5nIHdvcmQgb2YgZWFjaCBpcyBhIHZhcmlhYmxlDQogICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVG9rZW4gJiYgKHByZXZpb3VzVG9rZW4uY29udGVudCA9PSAiYXR0cmlidXRlIiB8fCBwcmV2aW91c1Rva2VuLmNvbnRlbnQgPT0gImVsZW1lbnQiKSAmJiBwcmV2aW91c1Rva2VuLnR5cGUgPT0gInhxdWVyeUtleXdvcmRDIikgew0KICAgICAgICAgICAgICAgICAgICB0b2tlbi50eXBlID0gInZhcmlhYmxlIjsNCiAgICAgICAgICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSAieHF1ZXJ5VmFyaWFibGUiOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHByZXZpb3VzVG9rZW4gJiYgcHJldmlvdXNUb2tlbi5jb250ZW50ID09ICJ4cXVlcnkiICYmIHRva2VuLmNvbnRlbnQgPT0gInZlcnNpb24iKSB7DQogICAgICAgICAgICAgICAgICAgIC8vdG9rZW4udHlwZT0idmFyaWFibGUiOw0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9ICJ4cXVlcnlNb2RpZmllciI7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PSAid29yZCIgJiYgKGdldFByZXZpb3VzKDMpLnN0eWxlID09ICJ4bWwtYXR0cmlidXRlIiB8fCAocHJldmlvdXNUb2tlbiAmJiBwcmV2aW91c1Rva2VuLnR5cGUgPT0gInhtbC10YWctb3BlbiIpKSAmJg0KICAgICAgICAgICAgICAgIHByZXZpb3VzVG9rZW4uY29udGVudC5zdWJzdHJpbmcocHJldmlvdXNUb2tlbi5jb250ZW50Lmxlbmd0aCAtIDEpICE9ICI+Iikgew0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZSA9ICJ4bWwtYXR0cmlidXRlIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZiAocHJldmlvdXNUb2tlbiAmJiBwcmV2aW91c1Rva2VuLmNvbnRlbnQgPT0gIj0iICYmIHByZXZpb3VzVG9rZW5zLmxlbmd0aCA+IDINCiAgICAgICAgICAgICAgICAmJiBnZXRQcmV2aW91cygyKS5zdHlsZSA9PSAieG1sLWF0dHJpYnV0ZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSAieG1sLWF0dHJpYnV0ZS12YWx1ZSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2UgaWYodG9rZW4udHlwZSA9PSAic3RyaW5nIiAmJiBwcmV2aW91c1Rva2VuICYmIHByZXZpb3VzVG9rZW4udHlwZSA9PSAifSIpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gbG9va2luZyBmb3IgZXhwcmVzc2lvbnMgd2l0aGluIGEgc3RyaW5nIGFuZCBkZXRlY3RpbmcgaWYgdGhlIGV4cHJlc3Npb24gaXMgd2l0aGluIGFuIGF0dHJpYnV0ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgaT0wOw0KICAgICAgICAgICAgICAgICAgICB3aGlsZShpKysgPCBwcmV2aW91c1Rva2Vucy5sZW5ndGgtMSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoZ2V0UHJldmlvdXMoaSkuc3R5bGUgPT0gInhtbC1hdHRyaWJ1dGUtdmFsdWUiICkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlID0gInhtbC1hdHRyaWJ1dGUtdmFsdWUiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZ2V0UHJldmlvdXMoaSkudHlwZSA9PSAic3RyaW5nIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gICAgDQogICAgICAgICAgICAgICAgZWxzZSBpZih0b2tlbi50eXBlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIC8vIGJydXRlIGZvcmNlIGNoZWNrIGZvciBzdHJpbmdzIGluc2lkZSBYTUwgVE9ETy4uLiBzb21ldGhpbmcgZWxzZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgaT0wOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2xvc2VDb3VudCA9IDA7DQogICAgICAgICAgICAgICAgICAgIHdoaWxlKGkrKyA8IHByZXZpb3VzVG9rZW5zLmxlbmd0aC0xKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJldiA9IGdldFByZXZpb3VzKGkpOyAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYocHJldi50eXBlID09ICJ4bWwtdGFnLW9wZW4iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2xvc2VDb3VudCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlID0gIndvcmQiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUNvdW50LS07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYocHJldi50eXBlID09ICJ4bWwtdGFnLWNsb3NlIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlQ291bnQrKzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYocHJldi5jb250ZW50ID09ICI6PSIgfHwgcHJldi5jb250ZW50ID09ICJyZXR1cm4iIHx8IHByZXYuY29udGVudCA9PSAieyIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSBpZihnZXRQcmV2aW91cygyKS5jb250ZW50ID09ICJtb2R1bGUiICYmIGdldFByZXZpb3VzKDEpLmNvbnRlbnQgPT0gIm5hbWVzcGFjZSIpIA0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZT0ieHF1ZXJ5RnVuY3Rpb24iOw0KICAgICAgICAgICAgICAgIGVsc2UgaWYodG9rZW4uY29udGVudCA9PSAiPSIgJiYgZ2V0UHJldmlvdXMoMSkuc3R5bGUgPT0gInhtbC1hdHRyaWJ1dGUiKQ0KICAgICAgICAgICAgICAgICAgICB0b2tlbi5zdHlsZT0ieG1sLWF0dHJpYnV0ZSINCg0KICAgICAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09ICJ3aGl0ZXNwYWNlIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT0gIlxuIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiB0aGlzIGlzIGVuZCBvZiBsaW5lDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNUb2tlbiAhPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1Rva2VuLnR5cGUgPT09ICJ7Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IGlmIHRoZXJlIGlzIG9wZW4gYnJhY2UgYXQgdGhlIGVuZCBvZiBsaW5lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uICs9IGluZGVudFVuaXQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY2xvc2VMZXZlbCsrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVG9rZW4udHlwZSA9PT0gIn0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgdGhlcmUgaXMgY2xvc2UgYnJhY2UgYXQgdGhlIGVuZCBvZiBsaW5lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmNsb3NlTGV2ZWwgPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNsb3NlTGV2ZWwtLTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY2xvc2VMZXZlbCA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxleGljYWwgPSBuZXcgeHF1ZXJ5TGV4aWNhbChjb2x1bW4sIHRva2VuLCBhbGlnbiwgcHJldmlvdXNUb2tlbiwgZW5jbG9zZUxldmVsKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5pbmRlbnRhdGlvbiA9IGluZGVudFhxdWVyeShsZXhpY2FsKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IHRva2VuLnZhbHVlLmxlbmd0aDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvLyBtYWludGFpbiB0aGUgcHJldmlvdXMgdG9rZW5zIGFycmF5IHNvIHRoYXQgaXQgZG9lc24ndCBjb250aW51ZSB0byBsZWFrDQogICAgICAgICAgICAgICAgLy8ga2VlcCBvbmx5IHRoZSBsYXN0IDUwMDANCiAgICAgICAgICAgICAgICBpZihwcmV2aW91c1Rva2Vucy5sZW5ndGggPiA1MDAwKSBwcmV2aW91c1Rva2Vucy5zaGlmdCgpOw0KDQogICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3VtZSA9IG1hcmtlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAvLyBUYWtlIGFuZCBleGVjdXRlIHRoZSB0b3Btb3N0IGFjdGlvbi4NCiAgICAgICAgICAgICAgICAgICAgY2MucG9wKCkodG9rZW4udHlwZSwgdG9rZW4uY29udGVudCk7DQogICAgICAgICAgICAgICAgICAgIGlmIChjb25zdW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBNYXJrZWQgaXMgdXNlZCB0byBjaGFuZ2UgdGhlIHN0eWxlIG9mIHRoZSBjdXJyZW50IHRva2VuLg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcmtlZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnN0eWxlID0gbWFya2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGVyZSB3ZSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbG9jYWwgYW5kIGdsb2JhbCB2YXJpYWJsZXMuDQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Rva2VuID0gdG9rZW47DQogICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Rva2Vuc1twcmV2aW91c1Rva2Vucy5sZW5ndGhdID0gdG9rZW47DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIH0sDQoNCiAgICAgICAgICAgIGNvcHk6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHZhciBfY2MgPSBjYy5jb25jYXQoW10pLA0KICAgICAgICAgICAgICAgIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlLA0KICAgICAgICAgICAgICAgIF9jb2x1bW4gPSBjb2x1bW47DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gY29weVBhcnNlcihfc291cmNlKSB7DQogICAgICAgICAgICAgICAgICAgIGNjID0gX2NjLmNvbmNhdChbXSk7DQogICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IGluZGVudGVkID0gX2NvbHVtbjsNCiAgICAgICAgICAgICAgICAgICAgdG9rZW5zID0gdG9rZW5pemVYcXVlcnkoX3NvdXJjZSwgX3Rva2VuU3RhdGUpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB9LA0KDQogICAgICAgIH07DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhdGVtZW50cyh0eXBlKSB7DQogICAgICAgICAgICByZXR1cm4gcGFzcyhzdGF0ZW1lbnQsIHN0YXRlbWVudHMpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhdGVtZW50KHR5cGUpIHsNCiAgICAgICAgICAgIGNvbnQoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHB1c2goZnMpIHsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSBmcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkNCiAgICAgICAgICAgIGNjLnB1c2goZnNbaV0pOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY29udCgpIHsNCiAgICAgICAgICAgIHB1c2goYXJndW1lbnRzKTsNCiAgICAgICAgICAgIGNvbnN1bWUgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcGFzcygpIHsNCiAgICAgICAgICAgIHB1c2goYXJndW1lbnRzKTsNCiAgICAgICAgICAgIGNvbnN1bWUgPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICANCg0KICAgICAgICBmdW5jdGlvbiBnZXRQcmV2aW91cyhudW1iZXJGcm9tQ3VycmVudCkgew0KICAgICAgICAgICAgdmFyIGwgPSBwcmV2aW91c1Rva2Vucy5sZW5ndGg7DQogICAgICAgICAgICBpZiAobCAtIG51bWJlckZyb21DdXJyZW50ID49IDApDQogICAgICAgICAgICByZXR1cm4gcHJldmlvdXNUb2tlbnNbbCAtIG51bWJlckZyb21DdXJyZW50XTsNCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogIiIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICIiLA0KICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIGl0ZXI7DQoNCg0KICAgIH0NCiAgICByZXR1cm4gew0KICAgICAgICBtYWtlOiBwYXJzZVhxdWVyeQ0KICAgIH07DQp9KSgpOw==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/js/tokenizexquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCkNvcHlyaWdodCAyMDEwIE1pa2UgQnJldm9vcnQgaHR0cDovL21pa2UuYnJldm9vcnQuY29tICh0d2l0dGVyOkBtYnJldm9vcnQpDQoNCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQoNCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCg0KVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQoNClRoaXMgaXMgYW4gaW5kaXJlY3QgY29sbGVjdGl2ZSBkZXJpdmF0aXZlIG9mIHRoZSBvdGhlciBwYXJzZXMgaW4gdGhpcyBwYWNrYWdlDQoNCiovDQoNCi8vIEEgdG9rZW5pemVyIGZvciB4UXVlcnksIGxvb2tzIGF0IHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCB0b2tlbml6ZXMsIGFwcGx5aW5nDQovLyBtZXRhZGF0YSB0byBiZSBhYmxlIHRvIGFwcGx5IHRoZSBwcm9wZXIgQ1NTIGNsYXNzZXMgaW4gdGhlIHBhcnNlci4NCg0KdmFyIHRva2VuaXplWHF1ZXJ5ID0gKGZ1bmN0aW9uKCkgew0KICAgIC8vIEFkdmFuY2UgdGhlIHN0cmVhbSB1bnRpbCB0aGUgZ2l2ZW4gY2hhcmFjdGVyIChub3QgcHJlY2VkZWQgYnkgYQ0KICAgIC8vIGJhY2tzbGFzaCkgaXMgZW5jb3VudGVyZWQsIG9yIHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgcmVhY2hlZC4NCiAgICBmdW5jdGlvbiBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCBlbmQpIHsNCiAgICAgICAgdmFyIGVzY2FwZWQgPSBmYWxzZTsNCiAgICAgICAgd2hpbGUgKCFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICAgIHZhciBuZXh0ID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIGlmIChuZXh0ID09IGVuZCAmJiAhZXNjYXBlZCkNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZCAmJiBuZXh0ID09ICJcXCI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIGVzY2FwZWQ7DQogICAgfQ0KDQogICAgLy8gQSBtYXAgb2YgWHF1ZXJ5J3Mga2V5d29yZHMuIFRoZSBhL2IvYyBrZXl3b3JkIGRpc3RpbmN0aW9uIGlzDQogICAgLy8gdmVyeSByb3VnaCwgYnV0IGl0IGdpdmVzIHRoZSBwYXJzZXIgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHBhcnNlDQogICAgLy8gY29ycmVjdCBjb2RlIGNvcnJlY3RseSAod2UgZG9uJ3QgY2FyZSB0aGF0IG11Y2ggaG93IHdlIHBhcnNlDQogICAgLy8gaW5jb3JyZWN0IGNvZGUpLiBUaGUgc3R5bGUgaW5mb3JtYXRpb24gaW5jbHVkZWQgaW4gdGhlc2Ugb2JqZWN0cw0KICAgIC8vIGlzIHVzZWQgYnkgdGhlIGhpZ2hsaWdodGVyIHRvIHBpY2sgdGhlIGNvcnJlY3QgQ1NTIHN0eWxlIGZvciBhDQogICAgLy8gdG9rZW4uDQogICAgdmFyIGtleXdvcmRzID0gZnVuY3Rpb24oKSB7DQogICAgICAgIGZ1bmN0aW9uIHJlc3VsdCh0eXBlLCBzdHlsZSkgew0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLA0KICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZQ0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIHZhciBhbGxLZXl3b3JkcyA9IHt9Ow0KICAgICAgICB2YXIga2V5d29yZHNMaXN0ID0ge307DQogICAgICAgIA0KICAgICAgICAvLyBhbiBhcnJheSBvZiBhbGwgb2YgdGhlIGtleXdvcmRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQsIG90aGVyd2lzZSBrZXl3b3JkcyB3aWxsIGJlIG1vcmUgc3BlY2lmaWNhbGx5IHNwZWNpZmllZCBhbmQgb3ZlcnJpZGRlbiBiZWxvdw0KICAgICAgICB2YXIgYWxsS2V5d29yZHNBcnJheSA9IG5ldyBBcnJheSgnYWZ0ZXInLCdhbmNlc3RvcicsJ2FuY2VzdG9yLW9yLXNlbGYnLCdhbmQnLCdhcycsJ2FzY2VuZGluZycsJ2Fzc2VydCcsJ2F0dHJpYnV0ZScsJ2JlZm9yZScsJ2J5JywnY2FzZScsJ2Nhc3QnLCdjaGlsZCcsJ2NvbW1lbnQnLCdjb21tZW50JywnZGVjbGFyZScsJ2RlZmF1bHQnLCdkZWZpbmUnLCdkZXNjZW5kYW50JywnZGVzY2VuZGFudC1vci1zZWxmJywnZGVzY2VuZGluZycsJ2RvY3VtZW50LW5vZGUnLCdlbGVtZW50JywnZWxlbWVudCcsJ2Vsc2UnLCdlcScsJ2V2ZXJ5JywnZXhjZXB0JywnZXh0ZXJuYWwnLCdmb2xsb3dpbmcnLCdmb2xsb3dpbmctc2libGluZycsJ2ZvbGxvd3MnLCdmb3InLCdmdW5jdGlvbicsJ2lmJywnaW1wb3J0JywnaW4nLCdpbnN0YW5jZScsJ2ludGVyc2VjdCcsJ2l0ZW0nLCdsZXQnLCdtb2R1bGUnLCduYW1lc3BhY2UnLCdub2RlJywnbm9kZScsJ29mJywnb25seScsJ29yJywnb3JkZXInLCdwYXJlbnQnLCdwcmVjZWRlcycsJ3ByZWNlZGluZycsJ3ByZWNlZGluZy1zaWJsaW5nJywncHJvY2Vzc2luZy1pbnN0cnVjdGlvbicsJ3JlZicsJ3JldHVybicsJ3JldHVybnMnLCdzYXRpc2ZpZXMnLCdzY2hlbWEnLCdzY2hlbWEtZWxlbWVudCcsJ3NlbGYnLCdzb21lJywnc29ydGJ5Jywnc3RhYmxlJywndGV4dCcsJ3RoZW4nLCd0bycsJ3RyZWF0JywndHlwZXN3aXRjaCcsJ3VuaW9uJywndmFyaWFibGUnLCd2ZXJzaW9uJywnd2hlcmUnLCd4cXVlcnknKTsNCg0KICAgICAgICBmb3IodmFyIGkgaW4gYWxsS2V5d29yZHNBcnJheSkgew0KICAgICAgICAgICAgYWxsS2V5d29yZHNbYWxsS2V5d29yZHNBcnJheVtpXV0gPSByZXN1bHQoImtleXdvcmQiLCAieHF1ZXJ5S2V5d29yZCIpOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVGhpcyBuZXh0IGJpdCBpcyBicm9rZW4gZG93biB0aGlzIHdhcyBmb3IgZnV0dXJlIGluZGVudGF0aW9uIHN1cHBvcnQgKi8NCiAgICAgICAgLy8ga2V5d29yZHMgdGhhdCB0YWtlIGEgcGFyZW50aGlzZWQgZXhwcmVzc2lvbiwgYW5kIHRoZW4gYSBzdGF0ZW1lbnQgKGlmKQ0KICAgICAgICBrZXl3b3Jkc0xpc3RbJ3hxdWVyeUtleXdvcmRBJ10gPSBuZXcgQXJyYXkoJ2lmJywgJ3N3aXRjaCcsICd3aGlsZScsICdmb3InKTsNCg0KICAgICAgICAvLyBrZXl3b3JkcyB0aGF0IHRha2UganVzdCBhIHN0YXRlbWVudCAoZWxzZSkNCiAgICAgICAga2V5d29yZHNMaXN0Wyd4cXVlcnlLZXl3b3JkQiddID0gbmV3IEFycmF5KCdlbHNlJywgJ3RoZW4nLCAndHJ5JywgJ2ZpbmFsbHknKTsNCg0KICAgICAgICAvLyBrZXl3b3JkcyB0aGF0IG9wdGlvbmFsbHkgdGFrZSBhbiBleHByZXNzaW9uLCBhbmQgZm9ybSBhIHN0YXRlbWVudCAocmV0dXJuKQ0KICAgICAgICBrZXl3b3Jkc0xpc3RbJ3hxdWVyeUtleXdvcmRDJ10gPSBuZXcgQXJyYXkoJ2VsZW1lbnQnLCAnYXR0cmlidXRlJywgJ2xldCcsICdpbXBsZW1lbnRzJywgJ2ltcG9ydCcsICdtb2R1bGUnLCAnbmFtZXNwYWNlJywgJ3JldHVybicsICdzdXBlcicsICd0aGlzJywgJ3Rocm93cycsICd3aGVyZScpOw0KDQogICAgICAgIGtleXdvcmRzTGlzdFsneHF1ZXJ5T3BlcmF0b3InXSA9IG5ldyBBcnJheSgnZXEnLCAnbmUnLCAnbHQnLCAnbGUnLCAnZ3QnLCAnZ2UnKTsNCg0KICAgICAgICBmb3IgKHZhciBrZXl3b3JkVHlwZSBpbiBrZXl3b3Jkc0xpc3QpIHsNCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5d29yZHNMaXN0W2tleXdvcmRUeXBlXS5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgIGFsbEtleXdvcmRzW2tleXdvcmRzTGlzdFtrZXl3b3JkVHlwZV1baV1dID0gcmVzdWx0KGtleXdvcmRUeXBlLCAieHF1ZXJ5S2V5d29yZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAga2V5d29yZHNMaXN0ID0ge307DQoNCiAgICAgICAga2V5d29yZHNMaXN0Wyd4cXVlcnlBdG9tJ10gPSBuZXcgQXJyYXkoJ251bGwnLCAnZm46ZmFsc2UoKScsICdmbjp0cnVlKCknKTsNCiAgICAgICAgZm9yICh2YXIga2V5d29yZFR5cGUgaW4ga2V5d29yZHNMaXN0KSB7DQogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXdvcmRzTGlzdFtrZXl3b3JkVHlwZV0ubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICBhbGxLZXl3b3Jkc1trZXl3b3Jkc0xpc3Rba2V5d29yZFR5cGVdW2ldXSA9IHJlc3VsdChrZXl3b3JkVHlwZSwga2V5d29yZFR5cGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAga2V5d29yZHNMaXN0ID0ge307DQogICAgICAgIGtleXdvcmRzTGlzdFsneHF1ZXJ5TW9kaWZpZXInXSA9IG5ldyBBcnJheSgneHF1ZXJ5JywgJ2FzY2VuZGluZycsICdkZXNjZW5kaW5nJyk7DQogICAgICAgIGtleXdvcmRzTGlzdFsneHF1ZXJ5VHlwZSddID0gbmV3IEFycmF5KCd4czpzdHJpbmcnLCAneHM6ZmxvYXQnLCAneHM6ZGVjaW1hbCcsICd4czpkb3VibGUnLCAneHM6aW50ZWdlcicsICd4czpib29sZWFuJywgJ3hzOmRhdGUnLCAneHM6ZGF0ZVRpbWUnLCAneHM6dGltZScsICd4czpkdXJhdGlvbicsICd4czpkYXlUaW1lRHVyYXRpb24nLCAneHM6dGltZScsICd4czp5ZWFyTW9udGhEdXJhdGlvbicsICdudW1lcmljJywgJ3hzOmhleEJpbmFyeScsICd4czpiYXNlNjRCaW5hcnknLCAneHM6YW55VVJJJywgJ3hzOlFOYW1lJywgJ3hzOmJ5dGUnLCd4czpib29sZWFuJywneHM6YW55VVJJJywneGY6eWVhck1vbnRoRHVyYXRpb24nKTsNCiAgICAgICAgZm9yICh2YXIga2V5d29yZFR5cGUgaW4ga2V5d29yZHNMaXN0KSB7DQogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXdvcmRzTGlzdFtrZXl3b3JkVHlwZV0ubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICBhbGxLZXl3b3Jkc1trZXl3b3Jkc0xpc3Rba2V5d29yZFR5cGVdW2ldXSA9IHJlc3VsdCgnZnVuY3Rpb24nLCBrZXl3b3JkVHlwZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBhbGxLZXl3b3JkcyA9IG9iamVjdENvbmNhdChhbGxLZXl3b3Jkcywgew0KICAgICAgICAgICAgImNhdGNoIjogcmVzdWx0KCJjYXRjaCIsICJ4cXVlcnlLZXl3b3JkIiksDQogICAgICAgICAgICAiZm9yIjogcmVzdWx0KCJmb3IiLCAieHF1ZXJ5S2V5d29yZCIpLA0KICAgICAgICAgICAgImNhc2UiOiByZXN1bHQoImNhc2UiLCAieHF1ZXJ5S2V5d29yZCIpLA0KICAgICAgICAgICAgImRlZmF1bHQiOiByZXN1bHQoImRlZmF1bHQiLCAieHF1ZXJ5S2V5d29yZCIpLA0KICAgICAgICAgICAgImluc3RhbmNlb2YiOiByZXN1bHQoIm9wZXJhdG9yIiwgInhxdWVyeUtleXdvcmQiKQ0KICAgICAgICB9KTsNCg0KICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIHhxdWVyeSBrZXl3b3Jkcw0KICAgICAgICB2YXIga2V5d29yZHNMaXN0ID0ge307DQoNCiAgICAgICAgLy8ga2V5d29yZHMgdGhhdCBvcHRpb25hbGx5IHRha2UgYW4gZXhwcmVzc2lvbiwgYW5kIGZvcm0gYSBzdGF0ZW1lbnQgKHJldHVybikNCiAgICAgICAga2V5d29yZHNMaXN0Wyd4cXVlcnlLZXl3b3JkQyddID0gbmV3IEFycmF5KCdhc3NlcnQnLCAncHJvcGVydHknKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXl3b3Jkc0xpc3RbJ3hxdWVyeUtleXdvcmRDJ10ubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGFsbEtleXdvcmRzW2tleXdvcmRzTGlzdFsneHF1ZXJ5S2V5d29yZEMnXVtpXV0gPSByZXN1bHQoInhxdWVyeUtleXdvcmRDIiwgInhxdWVyeUtleXdvcmQiKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIG90aGVyIHhxdWVyeSBrZXl3b3Jkcw0KICAgICAgICBhbGxLZXl3b3JkcyA9IG9iamVjdENvbmNhdChhbGxLZXl3b3Jkcywgew0KICAgICAgICAgICAgImFzIjogcmVzdWx0KCJvcGVyYXRvciIsICJ4cXVlcnlLZXl3b3JkIiksDQogICAgICAgICAgICAiaW4iOiByZXN1bHQoIm9wZXJhdG9yIiwgInhxdWVyeUtleXdvcmQiKSwNCiAgICAgICAgICAgICJhdCI6IHJlc3VsdCgib3BlcmF0b3IiLCAieHF1ZXJ5S2V5d29yZCIpLA0KICAgICAgICAgICAgImRlY2xhcmUiOiByZXN1bHQoImZ1bmN0aW9uIiwgInhxdWVyeUtleXdvcmQiKSwNCiAgICAgICAgICAgICJmdW5jdGlvbiI6IHJlc3VsdCgiZnVuY3Rpb24iLCAieHF1ZXJ5S2V5d29yZCIpDQogICAgICAgIH0pOw0KICAgICAgICByZXR1cm4gYWxsS2V5d29yZHM7DQogICAgfSAoKTsNCg0KICAgIC8vIHRoZXJlIGFyZSBzb21lIHNwZWNpYWwgY2FzZXMgd2hlcmUgb3JkaW5hcmlseSB0ZXh0IGxpa2UgeHM6c3RyaW5nKCkgd291bGQNCiAgICAvLyBsb29rIGxpa2UgYSBmdW5jdGlvbiBjYWxsIHdoZW4gaXQgaXMgcmVhbGx5IGEgdHlwZSwgZXRjLg0KICAgIGZ1bmN0aW9uIHNwZWNpYWxDYXNlcyhzb3VyY2UsIHdvcmQpIHsNCiAgICAgICAgaWYgKHdvcmQgaW4gew0KICAgICAgICAgICAgImZuOnRydWUiOiAiIiwNCiAgICAgICAgICAgICJmbjpmYWxzZSI6ICIiDQogICAgICAgIH0gJiYgc291cmNlLmxvb2tBaGVhZCgiKCkiLCBmYWxzZSkpIHsNCiAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgc291cmNlLmdldCgpOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiAiZnVuY3Rpb24iLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAieHF1ZXJ5QXRvbSIsDQogICAgICAgICAgICAgICAgY29udGVudDogd29yZCArICIoKSINCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAod29yZCBpbiB7DQogICAgICAgICAgICAibm9kZSI6ICIiLA0KICAgICAgICAgICAgIml0ZW0iOiAiIiwNCiAgICAgICAgICAgICJ0ZXh0IjogIiINCiAgICAgICAgfSAmJiBzb3VyY2UubG9va0FoZWFkKCIoKSIsIGZhbHNlKSkgew0KICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgICBzb3VyY2UuZ2V0KCk7DQogICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgIHR5cGU6ICJmdW5jdGlvbiIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICJ4cXVlcnlUeXBlIiwNCiAgICAgICAgICAgICAgICBjb250ZW50OiB3b3JkICsgIigpIg0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChzb3VyY2UubG9va0FoZWFkKCIoIikpIHsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogImZ1bmN0aW9uIiwNCiAgICAgICAgICAgICAgICBzdHlsZTogInhxdWVyeUZ1bmN0aW9uIiwNCiAgICAgICAgICAgICAgICBjb250ZW50OiB3b3JkDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2UgcmV0dXJuIG51bGw7DQogICAgfQ0KDQogICAgLy8gU29tZSBoZWxwZXIgcmVnZXhwIG1hdGNoZXJzLg0KICAgIHZhciBpc09wZXJhdG9yQ2hhciA9IC9bPStcLSomJSE/QFwvXS87IA0KICAgIHZhciBpc0RpZ2l0ID0gL1swLTldLzsNCiAgICB2YXIgaXNIZXhEaWdpdCA9IC9eWzAtOUEtRmEtZl0kLzsNCiAgICB2YXIgaXNXb3JkQ2hhciA9IC9bXHdcOlwtXCRfXS87DQogICAgdmFyIGlzVmFyaWFibGVDaGFyID0gL1tcd1wkXy1dLzsNCiAgICB2YXIgaXNYcXVlcnlWYXJpYWJsZUNoYXIgPSAvW1x3XC4oKVxbXF17fV0vOw0KICAgIHZhciBpc1B1bmN0dWF0aW9uID0gL1tcW1xde31cKFwpLDtcLl0vOw0KICAgIHZhciBpc1N0cmluZ0RlbGltZXRlciA9IC9eW1wvJyJdJC87DQogICAgdmFyIGlzUmVnZXhwRGVsaW1ldGVyID0gL15bXC8nJF0vOw0KICAgIHZhciB0YWduYW1lQ2hhciA9IC9bPFx3XDpcLVwvX10vOw0KDQogICAgLy8gV3JhcHBlciBhcm91bmQgeHF1ZXJ5VG9rZW4gdGhhdCBoZWxwcyBtYWludGFpbiBwYXJzZXIgc3RhdGUgKHdoZXRoZXINCiAgICAvLyB3ZSBhcmUgaW5zaWRlIG9mIGEgbXVsdGktbGluZSBjb21tZW50IGFuZCB3aGV0aGVyIHRoZSBuZXh0IHRva2VuDQogICAgLy8gY291bGQgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24pLg0KICAgIGZ1bmN0aW9uIHhxdWVyeVRva2VuU3RhdGUoaW5zaWRlLCByZWdleHApIHsNCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgICAgICAgIHZhciBuZXdJbnNpZGUgPSBpbnNpZGU7DQogICAgICAgICAgICB2YXIgdHlwZSA9IHhxdWVyeVRva2VuKGluc2lkZSwgcmVnZXhwLCBzb3VyY2UsDQogICAgICAgICAgICBmdW5jdGlvbihjKSB7DQogICAgICAgICAgICAgICAgbmV3SW5zaWRlID0gYzsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdmFyIG5ld1JlZ2V4cCA9IHR5cGUudHlwZSA9PSAib3BlcmF0b3IiIHx8IHR5cGUudHlwZSA9PSAieHF1ZXJ5S2V5d29yZEMiIHx8IHR5cGUudHlwZSA9PSAieHF1ZXJ5S2V5d29yZEMiIHx8IHR5cGUudHlwZS5tYXRjaCgvXltcW3t9XCgsOzpdJC8pOw0KICAgICAgICAgICAgaWYgKG5ld1JlZ2V4cCAhPSByZWdleHAgfHwgbmV3SW5zaWRlICE9IGluc2lkZSkNCiAgICAgICAgICAgIHNldFN0YXRlKHhxdWVyeVRva2VuU3RhdGUobmV3SW5zaWRlLCBuZXdSZWdleHApKTsNCiAgICAgICAgICAgIHJldHVybiB0eXBlOw0KICAgICAgICB9Ow0KICAgIH0NCg0KICAgIC8vIFRoZSB0b2tlbiByZWFkZXIsIGludGVkZWQgdG8gYmUgdXNlZCBieSB0aGUgdG9rZW5pemVyIGZyb20NCiAgICAvLyB0b2tlbml6ZS5qcyAodGhyb3VnaCB4cXVlcnlUb2tlblN0YXRlKS4gQWR2YW5jZXMgdGhlIHNvdXJjZSBzdHJlYW0NCiAgICAvLyBvdmVyIGEgdG9rZW4sIGFuZCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB0eXBlIGFuZCBzdHlsZQ0KICAgIC8vIG9mIHRoYXQgdG9rZW4uDQogICAgZnVuY3Rpb24geHF1ZXJ5VG9rZW4oaW5zaWRlLCByZWdleHAsIHNvdXJjZSwgc2V0SW5zaWRlKSB7DQogICAgICAgIGZ1bmN0aW9uIHJlYWRIZXhOdW1iZXIoKSB7DQogICAgICAgICAgICBzZXRJbnNpZGUobnVsbCk7DQogICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgLy8gc2tpcCB0aGUgJ3gnDQogICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhpc0hleERpZ2l0KTsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogIm51bWJlciIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICJ4cXVlcnlOdW1iZXIiDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVhZE51bWJlcigpIHsNCiAgICAgICAgICAgIHNldEluc2lkZShudWxsKTsNCiAgICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzRGlnaXQpOw0KICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIi4iKSkgew0KICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQoNCiAgICAgICAgICAgICAgICAvLyByZWFkIHJhbmdlcw0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCIuIikpDQogICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCg0KICAgICAgICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzRGlnaXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoImUiKSB8fCBzb3VyY2UuZXF1YWxzKCJFIikpIHsNCiAgICAgICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCItIikpDQogICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhpc0RpZ2l0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogIm51bWJlciIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICJ4cXVlcnlOdW1iZXIiDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIC8vIFJlYWQgYSB3b3JkLCBsb29rIGl0IHVwIGluIGtleXdvcmRzLiBJZiBub3QgZm91bmQsIGl0IGlzIGENCiAgICAgICAgLy8gdmFyaWFibGUsIG90aGVyd2lzZSBpdCBpcyBhIGtleXdvcmQgb2YgdGhlIHR5cGUgZm91bmQuDQogICAgICAgIGZ1bmN0aW9uIHJlYWRXb3JkKCkgew0KICAgICAgICAgICAgLy9zZXRJbnNpZGUobnVsbCk7DQogICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhpc1dvcmRDaGFyKTsNCiAgICAgICAgICAgIHZhciB3b3JkID0gc291cmNlLmdldCgpOw0KICAgICAgICAgICAgdmFyIHNwZWNpYWxDYXNlID0gc3BlY2lhbENhc2VzKHNvdXJjZSwgd29yZCk7DQogICAgICAgICAgICBpZiAoc3BlY2lhbENhc2UpIHJldHVybiBzcGVjaWFsQ2FzZTsNCiAgICAgICAgICAgIHZhciBrbm93biA9IGtleXdvcmRzLmhhc093blByb3BlcnR5KHdvcmQpICYmIGtleXdvcmRzLnByb3BlcnR5SXNFbnVtZXJhYmxlKHdvcmQpICYmIGtleXdvcmRzW3dvcmRdOw0KICAgICAgICAgICAgaWYgKGtub3duKSByZXR1cm4gew0KICAgICAgICAgICAgICAgIHR5cGU6IGtub3duLnR5cGUsDQogICAgICAgICAgICAgICAgc3R5bGU6IGtub3duLnN0eWxlLA0KICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHdvcmQNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogIndvcmQiLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAid29yZCIsDQogICAgICAgICAgICAgICAgY29udGVudDogd29yZA0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQoNCiAgICAgICAgLy8gcmVhZCByZWdleHAgbGlrZSAvXHd7MX06XFwuK1xcLisvDQogICAgICAgIGZ1bmN0aW9uIHJlYWRSZWdleHAoKSB7DQogICAgICAgICAgICAvLyBnbyB0byB0aGUgZW5kIC8gbm90IFwvDQogICAgICAgICAgICBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCAiLyIpOw0KDQogICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgIHR5cGU6ICJyZWdleHAiLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAieHF1ZXJ5UmVnZXhwIg0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIE11dGxpLWxpbmUgY29tbWVudHMgYXJlIHRyaWNreS4gV2Ugd2FudCB0byByZXR1cm4gdGhlIG5ld2xpbmVzDQogICAgICAgIC8vIGVtYmVkZGVkIGluIHRoZW0gYXMgcmVndWxhciBuZXdsaW5lIHRva2VucywgYW5kIHRoZW4gY29udGludWUNCiAgICAgICAgLy8gcmV0dXJuaW5nIGEgY29tbWVudCB0b2tlbiBmb3IgZXZlcnkgbGluZSBvZiB0aGUgY29tbWVudC4gU28NCiAgICAgICAgLy8gc29tZSBzdGF0ZSBoYXMgdG8gYmUgc2F2ZWQgKGluc2lkZSkgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSBhcmUNCiAgICAgICAgLy8gaW5zaWRlIGEgKDogOikgc2VxdWVuY2UuDQogICAgICAgIGZ1bmN0aW9uIHJlYWRNdWx0aWxpbmVDb21tZW50KHN0YXJ0KSB7DQogICAgICAgICAgICB2YXIgbmV3SW5zaWRlID0gIig6IjsNCiAgICAgICAgICAgIHZhciBtYXliZUVuZCA9IChzdGFydCA9PSAiOiIpOw0KICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgICAgICAgICBpZiAoc291cmNlLmVuZE9mTGluZSgpKQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAiKSIgJiYgbWF5YmVFbmQpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3SW5zaWRlID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIG1heWJlRW5kID0gKG5leHQgPT0gIjoiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNldEluc2lkZShuZXdJbnNpZGUpOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiAiY29tbWVudCIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICJ4cXVlcnlDb21tZW50Ig0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHJlYWRPcGVyYXRvcigpIHsNCiAgICAgICAgICAgIGlmIChjaCA9PSAiPSIpDQogICAgICAgICAgICBzZXRJbnNpZGUoIj0iKQ0KICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gIn4iKQ0KICAgICAgICAgICAgc2V0SW5zaWRlKCJ+IikNCiAgICAgICAgICAgIGVsc2UgaWYgKGNoID09ICI6IiAmJiBzb3VyY2UuZXF1YWxzKCI9IikpIHsNCiAgICAgICAgICAgICAgICBzZXRJbnNpZGUobnVsbCk7DQogICAgICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1s6PV0vKTsNCiAgICAgICAgICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgICAgICAgICB0eXBlOiAib3BlcmF0b3IiLA0KICAgICAgICAgICAgICAgICAgICBzdHlsZTogInhxdWVyeU9wZXJhdG9yIiwNCiAgICAgICAgICAgICAgICAgICAgY29udGVudDogd29yZA0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHNldEluc2lkZShudWxsKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiAib3BlcmF0b3IiLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAieHF1ZXJ5T3BlcmF0b3IiDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8gcmVhZCBhIHN0cmluZywgYnV0IGxvb2sgZm9yIGVtYmVkZGVkIGV4cHJlc3Npb25zIHdyYXBwZWQgaW4gY3VybHkNCiAgICAgICAgLy8gYnJhY2tldHMuIA0KICAgICAgICBmdW5jdGlvbiByZWFkU3RyaW5nKHF1b3RlKSB7DQogICAgICAgICAgICB2YXIgbmV3SW5zaWRlID0gcXVvdGU7DQogICAgICAgICAgICB2YXIgcHJldmlvdXMgPSAiIjsNCiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7DQogICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5lbmRPZkxpbmUoKSkNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBpZihzb3VyY2UubG9va0FoZWFkKCJ7IiwgZmFsc2UpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld0luc2lkZSA9IHF1b3RlICsgInsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9ICAgIA0KICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSBxdW90ZSAmJiBwcmV2aW91cyAhPSAiXFwiKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld0luc2lkZSA9IG51bGw7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBwcmV2aW91cyA9IG5leHQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzZXRJbnNpZGUobmV3SW5zaWRlKTsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogInN0cmluZyIsDQogICAgICAgICAgICAgICAgc3R5bGU6ICJ4cXVlcnlTdHJpbmciDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvLyBHaXZlbiBhbiBleHByZXNzaW9uIGVuZCBieSBhIGNsb3NpbmcgY3VybHkgYnJhY2tldCwgbWFyayB0aGUgfSBhcw0KICAgICAgICAvLyBwdW5jdHVhdGlvbiBhbiByZXN1bWUgdGhlIHN0cmluZyBwcm9jZXNzaW5nIGJ5IHNldHRpbmcgImluc2lkZSIgdG8NCiAgICAgICAgLy8gdGhlIHR5cGUgb2Ygc3RyaW5nIGl0J3MgZW1iZWRkZWQgaW4uIA0KICAgICAgICAvLyBUaGlzIGlzIGtub3duIGJlY2F1c2UgdGhlIHJlYWRTdHJpbmcoKSBmdW5jdGlvbiBzZXRzIGluc2lkZSB0byB0aGUgDQogICAgICAgIC8vIHF1b3RlIHR5cGUgdGhlbiBhbiBvcGVuIGN1cmx5IGJyYWNrZXQgbGlrZSAieyAgb3IgJ3sNCiAgICAgICAgZnVuY3Rpb24gcmVhZEV4cHJlc3Npb25FbmRJblN0cmluZyhpbnNpZGUpIHsNCiAgICAgICAgICAgIHZhciBxdW90ZSA9IGluc2lkZS5zdWJzdHIoMCwxKTsNCiAgICAgICAgICAgIHNldEluc2lkZShxdW90ZSk7DQogICAgICAgICAgICByZXR1cm4geyB0eXBlOiBjaCwgc3R5bGU6ICJ4cXVlcnlQdW5jdHVhdGlvbiJ9OyAgICAgICAgICAgIA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVhZFZhcmlhYmxlKCkgew0KICAgICAgICAgICAgLy9zZXRJbnNpZGUobnVsbCk7DQogICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhpc1ZhcmlhYmxlQ2hhcik7DQogICAgICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKTsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogInZhcmlhYmxlIiwNCiAgICAgICAgICAgICAgICBzdHlsZTogInhxdWVyeVZhcmlhYmxlIiwNCiAgICAgICAgICAgICAgICBjb250ZW50OiB3b3JkDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8gcmVhZCBhbiBYTUwgVGFnbmFtZSwgYm90aCBjbG9zaW5nIGFuZCBvcGVuaW5nDQogICAgICAgIGZ1bmN0aW9uIHJlYWRUYWduYW1lKGx0KSB7DQogICAgICAgICAgICB2YXIgdGFndHlwZSA9IChzb3VyY2UubG9va0FoZWFkKCIvIiwgZmFsc2UpKSA/ICJ4bWwtdGFnLWNsb3NlIjogInhtbC10YWctb3BlbiI7DQogICAgICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyh0YWduYW1lQ2hhcik7DQogICAgICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKTsNCiAgICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKCI+IiwgZmFsc2UpKSB7DQogICAgICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogdGFndHlwZSwNCiAgICAgICAgICAgICAgICBzdHlsZTogInhtbC10YWduYW1lIiwNCiAgICAgICAgICAgICAgICBjb250ZW50OiB3b3JkDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgLy8gRmV0Y2ggdGhlIG5leHQgdG9rZW4uIERpc3BhdGNoZXMgb24gZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBzdHJlYW0NCiAgICAgICAgLy8gd2hhdCBmb2xsb3dzIGlzIGEgYmlnIGlmIHN0YXRlbWVudCB0aGF0IG1ha2VzIGRlY2lzaW9ucyBiYXNlZCBvbiB0aGUgDQogICAgICAgIC8vIGNoYXJhY3RlciwgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgYW5kIHRoZSBpbnNpZGUgdmFyaWFibGUNCg0KICAgICAgICBpZiAoaW5zaWRlID09ICJcIiIgfHwgaW5zaWRlID09ICInIikNCiAgICAgICAgICAgIHJldHVybiByZWFkU3RyaW5nKGluc2lkZSk7DQogICAgICAgICAgICANCiAgICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgaWYgKGluc2lkZSAmJiBpbnNpZGUuaW5kZXhPZigieyIpID09IDEgJiYgY2ggPT0gIn0iKSB7DQogICAgICAgICAgICByZXR1cm4gcmVhZEV4cHJlc3Npb25FbmRJblN0cmluZyhpbnNpZGUpOw0KICAgICAgICB9ICAgIA0KICAgICAgICBpZiAoaW5zaWRlID09ICIoOiIpDQogICAgICAgICAgICByZXR1cm4gcmVhZE11bHRpbGluZUNvbW1lbnQoY2gpOw0KICAgICAgICBlbHNlIGlmIChjaCA9PSAiXCIiIHx8IGNoID09ICInIikNCiAgICAgICAgICAgIHJldHVybiByZWFkU3RyaW5nKGNoKTsNCg0KDQogICAgICAgIC8vIHRlc3QgaWYgdGhpcyBpcyByYW5nZQ0KICAgICAgICBlbHNlIGlmIChjaCA9PSAiLiIgJiYgc291cmNlLmVxdWFscygiLiIpKSB7DQogICAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiAiLi4iLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAieHF1ZXJ5T3BlcmF0b3IiDQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgZWxzZSBpZiAoY2ggPT0gIigiICYmIHNvdXJjZS5lcXVhbHMoIjoiKSkgew0KICAgICAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgICAgIHJldHVybiByZWFkTXVsdGlsaW5lQ29tbWVudChjaCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAoY2ggPT0gIiQiKQ0KICAgICAgICAgICAgcmV0dXJuIHJlYWRWYXJpYWJsZSgpOw0KICAgICAgICBlbHNlIGlmIChjaCA9PSAiOiIgJiYgc291cmNlLmVxdWFscygiPSIpKQ0KICAgICAgICAgICAgcmV0dXJuIHJlYWRPcGVyYXRvcigpOw0KDQogICAgICAgIC8vIHdpdGggcHVuY3R1YXRpb24sIHRoZSB0eXBlIG9mIHRoZSB0b2tlbiBpcyB0aGUgc3ltYm9sIGl0c2VsZg0KICAgICAgICBlbHNlIGlmIChpc1B1bmN0dWF0aW9uLnRlc3QoY2gpKQ0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICB0eXBlOiBjaCwNCiAgICAgICAgICAgICAgICBzdHlsZTogInhxdWVyeVB1bmN0dWF0aW9uIg0KICAgICAgICAgICAgfTsNCiAgICAgICAgZWxzZSBpZiAoY2ggPT0gIjAiICYmIChzb3VyY2UuZXF1YWxzKCJ4IikgfHwgc291cmNlLmVxdWFscygiWCIpKSkNCiAgICAgICAgICAgIHJldHVybiByZWFkSGV4TnVtYmVyKCk7DQogICAgICAgIGVsc2UgaWYgKGlzRGlnaXQudGVzdChjaCkpDQogICAgICAgICAgICByZXR1cm4gcmVhZE51bWJlcigpOw0KDQogICAgICAgIGVsc2UgaWYgKGNoID09ICJ+Iikgew0KICAgICAgICAgICAgc2V0SW5zaWRlKCJ+Iik7DQogICAgICAgICAgICAvLyBwcmVwYXJlIHRvIHJlYWQgc2xhc2h5IHN0cmluZyBsaWtlIH4gL1x3ezF9OlxcLitcXC4rLw0KICAgICAgICAgICAgcmV0dXJuIHJlYWRPcGVyYXRvcihjaCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAoaXNPcGVyYXRvckNoYXIudGVzdChjaCkpIHsNCiAgICAgICAgICAgIHJldHVybiByZWFkT3BlcmF0b3IoY2gpOyAgICAgICAgICAgIA0KICAgICAgICB9DQogICAgICAgIC8vIHNvbWUgeG1sIGhhbmRsaW5nIHN0dWZmDQogICAgICAgIGVsc2UgaWYgKGNoID09ICI8IikNCiAgICAgICAgICAgIHJldHVybiByZWFkVGFnbmFtZShjaCk7DQogICAgICAgIGVsc2UgaWYgKGNoID09ICI+IikNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgdHlwZTogInhtbC10YWciLA0KICAgICAgICAgICAgICAgIHN0eWxlOiAieG1sLXRhZ25hbWUiDQogICAgICAgICAgICB9Ow0KICAgICAgICBlbHNlDQogICAgICAgICAgICByZXR1cm4gcmVhZFdvcmQoKTsNCiAgICB9DQoNCiAgICAvLyByZXR1cm5zIG5ldyBvYmplY3QgPSBvYmplY3QxICsgb2JqZWN0Mg0KICAgIGZ1bmN0aW9uIG9iamVjdENvbmNhdChvYmplY3QxLCBvYmplY3QyKSB7DQogICAgICAgIGZvciAodmFyIG5hbWUgaW4gb2JqZWN0Mikgew0KICAgICAgICAgICAgaWYgKCFvYmplY3QyLmhhc093blByb3BlcnR5KG5hbWUpKSBjb250aW51ZTsNCiAgICAgICAgICAgIGlmIChvYmplY3QxLmhhc093blByb3BlcnR5KG5hbWUpKSBjb250aW51ZTsNCiAgICAgICAgICAgIG9iamVjdDFbbmFtZV0gPSBvYmplY3QyW25hbWVdOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBvYmplY3QxOw0KICAgIH0NCg0KICAgIC8vIFRoZSBleHRlcm5hbCBpbnRlcmZhY2UgdG8gdGhlIHRva2VuaXplci4NCiAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzdGFydFN0YXRlKSB7DQogICAgICAgIHJldHVybiB0b2tlbml6ZXIoc291cmNlLCBzdGFydFN0YXRlIHx8IHhxdWVyeVRva2VuU3RhdGUoZmFsc2UsIHRydWUpKTsNCiAgICB9Ow0KfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/contrib/xquery/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IDIwMTAgTWlrZSBCcmV2b29ydA0KDQpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KDQogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQoNClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQpXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/csscolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICAvKm1hcmdpbjogLjRlbTsqLw0KICBwYWRkaW5nOiAwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICBmb250LXNpemU6IDEwcHQ7DQogIGNvbG9yOiBibGFjazsNCn0NCg0KcHJlLmNvZGUsIC5lZGl0Ym94IHsNCiAgY29sb3I6ICM2NjY7DQp9DQoNCi5lZGl0Ym94IHAgew0KICBtYXJnaW46IDA7DQp9DQoNCnNwYW4uY3NzLWF0IHsNCiAgY29sb3I6ICM3MDg7DQp9DQoNCnNwYW4uY3NzLXVuaXQgew0KICBjb2xvcjogIzI4MTsNCn0NCg0Kc3Bhbi5jc3MtdmFsdWUgew0KICBjb2xvcjogIzcwODsNCn0NCg0Kc3Bhbi5jc3MtaWRlbnRpZmllciB7DQogIGNvbG9yOiBibGFjazsNCn0NCg0Kc3Bhbi5jc3Mtc2VsZWN0b3Igew0KICBjb2xvcjogIzExQjsNCn0NCg0Kc3Bhbi5jc3MtaW1wb3J0YW50IHsNCiAgY29sb3I6ICMwMEY7DQp9DQoNCnNwYW4uY3NzLWNvbG9yY29kZSB7DQogIGNvbG9yOiAjMjk5Ow0KfQ0KDQpzcGFuLmNzcy1jb21tZW50IHsNCiAgY29sb3I6ICNBNzA7DQp9DQoNCnNwYW4uY3NzLXN0cmluZyB7DQogIGNvbG9yOiAjQTIyOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/docs.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ym9keSB7CiAgZm9udC1mYW1pbHk6IERyb2lkIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwogIGxpbmUtaGVpZ2h0OiAxLjU7CiAgbWF4LXdpZHRoOiA2NC4zZW07CiAgbWFyZ2luOiAzZW0gYXV0bzsKICBwYWRkaW5nOiAwIDFlbTsKfQoKaDEgewogIGxldHRlci1zcGFjaW5nOiAtM3B4OwogIGZvbnQtc2l6ZTogMy4yM2VtOwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIG1hcmdpbjogMDsKfQoKaDIgewogIGZvbnQtc2l6ZTogMS4yM2VtOwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIG1hcmdpbjogLjVlbSAwOwogIGxldHRlci1zcGFjaW5nOiAtMXB4Owp9CgpoMyB7CiAgZm9udC1zaXplOiAxZW07CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgbWFyZ2luOiAuNGVtIDA7Cn0KCnByZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAtbW96LWJvcmRlci1yYWRpdXM6IDZweDsKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweDsKICBib3JkZXItcmFkaXVzOiA2cHg7CiAgcGFkZGluZzogMWVtOwp9CgpwcmUuY29kZSB7CiAgbWFyZ2luOiAwIDFlbTsKfQoKLmdyZXkgewogIGZvbnQtc2l6ZTogMi4yZW07CiAgcGFkZGluZzogLjVlbSAxZW07CiAgbGluZS1oZWlnaHQ6IDEuMmVtOwogIG1hcmdpbi10b3A6IC41ZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgppbWcubG9nbyB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAtMjVweDsKICBib3R0b206IDRweDsKfQoKYTpsaW5rLCBhOnZpc2l0ZWQsIC5xdWFzaWxpbmsgewogIGNvbG9yOiAjZGYwMDE5OwogIGN1cnNvcjogcG9pbnRlcjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCmE6aG92ZXIsIC5xdWFzaWxpbms6aG92ZXIgewogIGNvbG9yOiAjODAwMDA0Owp9CgpoMSBhOmxpbmssIGgxIGE6dmlzaXRlZCwgaDEgYTpob3ZlciB7CiAgY29sb3I6IGJsYWNrOwp9Cgp1bCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmctbGVmdDogMS4yZW07Cn0KCmEuZG93bmxvYWQgewogIGNvbG9yOiB3aGl0ZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGYwMDE5OwogIHdpZHRoOiAxMDAlOwogIGRpc3BsYXk6IGJsb2NrOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBmb250LXNpemU6IDEuMjNlbTsKICBmb250LXdlaWdodDogYm9sZDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgLW1vei1ib3JkZXItcmFkaXVzOiA2cHg7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA2cHg7CiAgYm9yZGVyLXJhZGl1czogNnB4OwogIHBhZGRpbmc6IC41ZW0gMDsKICBtYXJnaW4tYm90dG9tOiAxZW07Cn0KCmEuZG93bmxvYWQ6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICNiYjAwMTA7Cn0KCi5yZWwgewogIG1hcmdpbi1ib3R0b206IDA7Cn0KCi5yZWwtbm90ZSB7CiAgY29sb3I6ICM3Nzc7CiAgZm9udC1zaXplOiAuOWVtOwogIG1hcmdpbi10b3A6IC4xZW07Cn0KCi5sb2dvLWJyYWNlcyB7CiAgY29sb3I6ICNkZjAwMTk7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHRvcDogLTRweDsKfQoKLmJsayB7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sZWZ0IHsKICB3aWR0aDogMzdlbTsKICBwYWRkaW5nLXJpZ2h0OiA2LjUzZW07CiAgcGFkZGluZy1ib3R0b206IDFlbTsKfQoKLmxlZnQxIHsKICB3aWR0aDogMTUuMjRlbTsKICBwYWRkaW5nLXJpZ2h0OiA2LjQ1ZW07Cn0KCi5sZWZ0MiB7CiAgd2lkdGg6IDE1LjI0ZW07Cn0KCi5yaWdodCB7CiAgd2lkdGg6IDIwLjY4ZW07Cn0KCi5sZWZ0YmlnIHsKICB3aWR0aDogNDIuNDRlbTsKICBwYWRkaW5nLXJpZ2h0OiA2LjUzZW07Cn0KCi5yaWdodHNtYWxsIHsKICB3aWR0aDogMTUuMjRlbTsKfQoKLmNsZWFyOmFmdGVyIHsKICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiAwOwogIGNvbnRlbnQ6ICIgIjsKICBjbGVhcjogYm90aDsKICBoZWlnaHQ6IDA7Cn0KLmNsZWFyIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9Ci8qIHN0YXJ0IGNvbW1lbnRlZCBiYWNrc2xhc2ggaGFjayBcKi8KKiBodG1sIC5jbGVhciB7IGhlaWdodDogMSU7IH0KLmNsZWFyIHsgZGlzcGxheTogYmxvY2s7IH0KLyogY2xvc2UgY29tbWVudGVkIGJhY2tzbGFzaCBoYWNrICovCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/jscolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICAvKm1hcmdpbjogLjRlbTsqLw0KICBwYWRkaW5nOiAwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICBmb250LXNpemU6IDEwcHQ7DQogIGNvbG9yOiBibGFjazsNCn0NCg0KcHJlLmNvZGUsIC5lZGl0Ym94IHsNCiAgY29sb3I6ICM2NjY2NjY7DQp9DQoNCi5lZGl0Ym94IHAgew0KICBtYXJnaW46IDA7DQp9DQoNCnNwYW4uanMtcHVuY3R1YXRpb24gew0KICBjb2xvcjogIzY2NjY2NjsNCn0NCg0Kc3Bhbi5qcy1vcGVyYXRvciB7DQogIGNvbG9yOiAjNjY2NjY2Ow0KfQ0KDQpzcGFuLmpzLWtleXdvcmQgew0KICBjb2xvcjogIzc3MDA4ODsNCn0NCg0Kc3Bhbi5qcy1hdG9tIHsNCiAgY29sb3I6ICMyMjg4MTE7DQp9DQoNCnNwYW4uanMtdmFyaWFibGUgew0KICBjb2xvcjogYmxhY2s7DQp9DQoNCnNwYW4uanMtdmFyaWFibGVkZWYgew0KICBjb2xvcjogIzAwMDBGRjsNCn0NCg0Kc3Bhbi5qcy1sb2NhbHZhcmlhYmxlIHsNCiAgY29sb3I6ICMwMDQ0OTk7DQp9DQoNCnNwYW4uanMtcHJvcGVydHkgew0KICBjb2xvcjogYmxhY2s7DQp9DQoNCnNwYW4uanMtY29tbWVudCB7DQogIGNvbG9yOiAjQUE3NzAwOw0KfQ0KDQpzcGFuLmpzLXN0cmluZyB7DQogIGNvbG9yOiAjQUEyMjIyOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/sparqlcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICBtYXJnaW46IC40ZW07DQogIHBhZGRpbmc6IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpzcGFuLnNwLWtleXdvcmQgew0KICBjb2xvcjogIzcwODsNCn0NCg0Kc3Bhbi5zcC1wcmVmaXhlZCB7DQogIGNvbG9yOiAjNWQxOw0KfQ0KDQpzcGFuLnNwLXZhciB7DQogIGNvbG9yOiAjMDBjOw0KfQ0KDQpzcGFuLnNwLWNvbW1lbnQgew0KICBjb2xvcjogI2E3MDsNCn0NCg0Kc3Bhbi5zcC1saXRlcmFsIHsNCiAgY29sb3I6ICNhMjI7DQp9DQoNCnNwYW4uc3AtdXJpIHsNCiAgY29sb3I6ICMyOTI7DQp9DQoNCnNwYW4uc3Atb3BlcmF0b3Igew0KICBjb2xvcjogIzA4ODsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/css/xmlcolors.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[aHRtbCB7DQogIGN1cnNvcjogdGV4dDsNCn0NCg0KLmVkaXRib3ggew0KICBtYXJnaW46IC40ZW07DQogIHBhZGRpbmc6IDA7DQogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7DQogIGZvbnQtc2l6ZTogMTBwdDsNCiAgY29sb3I6IGJsYWNrOw0KfQ0KDQouZWRpdGJveCBwIHsNCiAgbWFyZ2luOiAwOw0KfQ0KDQpzcGFuLnhtbC10YWduYW1lIHsNCiAgY29sb3I6ICNBMEI7DQp9DQoNCnNwYW4ueG1sLWF0dHJpYnV0ZSB7DQogIGNvbG9yOiAjMjgxOw0KfQ0KDQpzcGFuLnhtbC1wdW5jdHVhdGlvbiB7DQogIGNvbG9yOiBibGFjazsNCn0NCg0Kc3Bhbi54bWwtYXR0bmFtZSB7DQogIGNvbG9yOiAjMDBGOw0KfQ0KDQpzcGFuLnhtbC1jb21tZW50IHsNCiAgY29sb3I6ICNBNzA7DQp9DQoNCnNwYW4ueG1sLWNkYXRhIHsNCiAgY29sb3I6ICM0OEE7DQp9DQoNCnNwYW4ueG1sLXByb2Nlc3Npbmcgew0KICBjb2xvcjogIzk5OTsNCn0NCg0Kc3Bhbi54bWwtZW50aXR5IHsNCiAgY29sb3I6ICNBMjI7DQp9DQoNCnNwYW4ueG1sLWVycm9yIHsNCiBjb2xvcjogI0YwMCAhaW1wb3J0YW50Ow0KfQ0KDQpzcGFuLnhtbC10ZXh0IHsNCiAgY29sb3I6IGJsYWNrOw0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/codemirror.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQ29kZU1pcnJvciBtYWluIG1vZHVsZSAoaHR0cDovL2NvZGVtaXJyb3IubmV0LykNCiAqDQogKiBJbXBsZW1lbnRzIHRoZSBDb2RlTWlycm9yIGNvbnN0cnVjdG9yIGFuZCBwcm90b3R5cGUsIHdoaWNoIHRha2UgY2FyZQ0KICogb2YgaW5pdGlhbGl6aW5nIHRoZSBlZGl0b3IgZnJhbWUsIGFuZCBwcm92aWRpbmcgdGhlIG91dHNpZGUgaW50ZXJmYWNlLg0KICovDQoNCi8vIFRoZSBDb2RlTWlycm9yQ29uZmlnIG9iamVjdCBpcyB1c2VkIHRvIHNwZWNpZnkgYSBkZWZhdWx0DQovLyBjb25maWd1cmF0aW9uLiBJZiB5b3Ugc3BlY2lmeSBzdWNoIGFuIG9iamVjdCBiZWZvcmUgbG9hZGluZyB0aGlzDQovLyBmaWxlLCB0aGUgdmFsdWVzIHlvdSBwdXQgaW50byBpdCB3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBnaXZlbg0KLy8gYmVsb3cuIFlvdSBjYW4gYWxzbyBhc3NpZ24gdG8gaXQgYWZ0ZXIgbG9hZGluZy4NCnZhciBDb2RlTWlycm9yQ29uZmlnID0gd2luZG93LkNvZGVNaXJyb3JDb25maWcgfHwge307DQoNCnZhciBDb2RlTWlycm9yID0gKGZ1bmN0aW9uKCl7DQogIGZ1bmN0aW9uIHNldERlZmF1bHRzKG9iamVjdCwgZGVmYXVsdHMpIHsNCiAgICBmb3IgKHZhciBvcHRpb24gaW4gZGVmYXVsdHMpIHsNCiAgICAgIGlmICghb2JqZWN0Lmhhc093blByb3BlcnR5KG9wdGlvbikpDQogICAgICAgIG9iamVjdFtvcHRpb25dID0gZGVmYXVsdHNbb3B0aW9uXTsNCiAgICB9DQogIH0NCiAgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgYWN0aW9uKSB7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykNCiAgICAgIGFjdGlvbihhcnJheVtpXSk7DQogIH0NCiAgZnVuY3Rpb24gY3JlYXRlSFRNTEVsZW1lbnQoZWwpIHsNCiAgICBpZiAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkkgIT09IG51bGwpDQogICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgZWwpDQogICAgZWxzZQ0KICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWwpDQogIH0NCg0KICAvLyBUaGVzZSBkZWZhdWx0IG9wdGlvbnMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgcGFzc2luZyBhIHNldCBvZg0KICAvLyBvcHRpb25zIHRvIGEgc3BlY2lmaWMgQ29kZU1pcnJvciBjb25zdHJ1Y3Rvci4gU2VlIG1hbnVhbC5odG1sIGZvcg0KICAvLyB0aGVpciBtZWFuaW5nLg0KICBzZXREZWZhdWx0cyhDb2RlTWlycm9yQ29uZmlnLCB7DQogICAgc3R5bGVzaGVldDogW10sDQogICAgcGF0aDogIiIsDQogICAgcGFyc2VyZmlsZTogW10sDQogICAgYmFzZWZpbGVzOiBbInV0aWwuanMiLCAic3RyaW5nc3RyZWFtLmpzIiwgInNlbGVjdC5qcyIsICJ1bmRvLmpzIiwgImVkaXRvci5qcyIsICJ0b2tlbml6ZS5qcyJdLA0KICAgIGlmcmFtZUNsYXNzOiBudWxsLA0KICAgIHBhc3NEZWxheTogMjAwLA0KICAgIHBhc3NUaW1lOiA1MCwNCiAgICBsaW5lTnVtYmVyRGVsYXk6IDIwMCwNCiAgICBsaW5lTnVtYmVyVGltZTogNTAsDQogICAgY29udGludW91c1NjYW5uaW5nOiBmYWxzZSwNCiAgICBzYXZlRnVuY3Rpb246IG51bGwsDQogICAgb25Mb2FkOiBudWxsLA0KICAgIG9uQ2hhbmdlOiBudWxsLA0KICAgIHVuZG9EZXB0aDogNTAsDQogICAgdW5kb0RlbGF5OiA4MDAsDQogICAgZGlzYWJsZVNwZWxsY2hlY2s6IHRydWUsDQogICAgdGV4dFdyYXBwaW5nOiB0cnVlLA0KICAgIHJlYWRPbmx5OiBmYWxzZSwNCiAgICB3aWR0aDogIiIsDQogICAgaGVpZ2h0OiAiMzAwcHgiLA0KICAgIG1pbkhlaWdodDogMTAwLA0KICAgIGF1dG9NYXRjaFBhcmVuczogZmFsc2UsDQogICAgbWFya1BhcmVuOiBudWxsLA0KICAgIHVubWFya1BhcmVuOiBudWxsLA0KICAgIHBhcnNlckNvbmZpZzogbnVsbCwNCiAgICB0YWJNb2RlOiAiaW5kZW50IiwgLy8gb3IgInNwYWNlcyIsICJkZWZhdWx0IiwgInNoaWZ0Ig0KICAgIGVudGVyTW9kZTogImluZGVudCIsIC8vIG9yICJrZWVwIiwgImZsYXQiDQogICAgZWxlY3RyaWNDaGFyczogdHJ1ZSwNCiAgICByZWluZGVudE9uTG9hZDogZmFsc2UsDQogICAgYWN0aXZlVG9rZW5zOiBudWxsLA0KICAgIG9uQ3Vyc29yQWN0aXZpdHk6IG51bGwsDQogICAgbGluZU51bWJlcnM6IGZhbHNlLA0KICAgIGZpcnN0TGluZU51bWJlcjogMSwNCiAgICBvbkxpbmVOdW1iZXJDbGljazogbnVsbCwNCiAgICBpbmRlbnRVbml0OiAyLA0KICAgIGRvbWFpbjogbnVsbCwNCiAgICBub1NjcmlwdENhY2hpbmc6IGZhbHNlLA0KICAgIGluY3JlbWVudGFsTG9hZGluZzogZmFsc2UNCiAgfSk7DQoNCiAgZnVuY3Rpb24gYWRkTGluZU51bWJlckRpdihjb250YWluZXIsIGZpcnN0TnVtKSB7DQogICAgdmFyIG51bXMgPSBjcmVhdGVIVE1MRWxlbWVudCgiZGl2IiksDQogICAgICAgIHNjcm9sbGVyID0gY3JlYXRlSFRNTEVsZW1lbnQoImRpdiIpOw0KICAgIG51bXMuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOw0KICAgIG51bXMuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOw0KICAgIGlmIChudW1zLnN0eWxlLnNldEV4cHJlc3Npb24pIHsNCiAgICAgIHRyeSB7bnVtcy5zdHlsZS5zZXRFeHByZXNzaW9uKCJoZWlnaHQiLCAidGhpcy5wcmV2aW91c1NpYmxpbmcub2Zmc2V0SGVpZ2h0ICsgJ3B4JyIpO30NCiAgICAgIGNhdGNoKGUpIHt9IC8vIFNlZW1zIHRvIHRocm93ICdOb3QgSW1wbGVtZW50ZWQnIG9uIHNvbWUgSUU4IHZlcnNpb25zDQogICAgfQ0KCS8qICBqZXJlbXlCYXNzIFJlbW92ZWQgLS0gQWxsIHN0eWxlcyBzaG91ZCBiZSBpbiBhIGNzcyBkb2MgKi8NCiAgICAvKm51bXMuc3R5bGUudG9wID0gIjBweCI7DQogICAgbnVtcy5zdHlsZS5sZWZ0ID0gIjBweCI7Ki8NCgludW1zLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdDTV9saW5lTnVtYmVycycpOw0KCQ0KICAgIG51bXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsNCiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobnVtcyk7DQogICAgc2Nyb2xsZXIuY2xhc3NOYW1lID0gIkNvZGVNaXJyb3ItbGluZS1udW1iZXJzIjsNCiAgICBudW1zLmFwcGVuZENoaWxkKHNjcm9sbGVyKTsNCiAgICBzY3JvbGxlci5pbm5lckhUTUwgPSAiPGRpdj4iICsgZmlyc3ROdW0gKyAiPC9kaXY+IjsNCiAgICByZXR1cm4gbnVtczsNCiAgfQ0KDQogIGZ1bmN0aW9uIGZyYW1lSFRNTChvcHRpb25zKSB7DQogICAgaWYgKHR5cGVvZiBvcHRpb25zLnBhcnNlcmZpbGUgPT0gInN0cmluZyIpDQogICAgICBvcHRpb25zLnBhcnNlcmZpbGUgPSBbb3B0aW9ucy5wYXJzZXJmaWxlXTsNCiAgICBpZiAodHlwZW9mIG9wdGlvbnMuYmFzZWZpbGVzID09ICJzdHJpbmciKQ0KICAgICAgb3B0aW9ucy5iYXNlZmlsZXMgPSBbb3B0aW9ucy5iYXNlZmlsZXNdOw0KICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdHlsZXNoZWV0ID09ICJzdHJpbmciKQ0KICAgICAgb3B0aW9ucy5zdHlsZXNoZWV0ID0gW29wdGlvbnMuc3R5bGVzaGVldF07DQoNCiAgICB2YXIgc3AgPSAiIHNwZWxsY2hlY2s9XCIiICsgKG9wdGlvbnMuZGlzYWJsZVNwZWxsY2hlY2sgPyAiZmFsc2UiIDogInRydWUiKSArICJcIiI7DQogICAgdmFyIGh0bWwgPSBbIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU5cIiBcImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZFwiPjxodG1sIiArIHNwICsgIj48aGVhZD4iXTsNCiAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVuY2ggb2YgSUU4LXNwZWNpZmljIHByb2JsZW1zLg0KICAgIGh0bWwucHVzaCgiPG1ldGEgaHR0cC1lcXVpdj1cIlgtVUEtQ29tcGF0aWJsZVwiIGNvbnRlbnQ9XCJJRT1FbXVsYXRlSUU3XCIvPiIpOw0KICAgIHZhciBxdWVyeVN0ciA9IG9wdGlvbnMubm9TY3JpcHRDYWNoaW5nID8gIj9ub2NhY2hlPSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygxNikgOiAiIjsNCiAgICBmb3JFYWNoKG9wdGlvbnMuc3R5bGVzaGVldCwgZnVuY3Rpb24oZmlsZSkgew0KICAgICAgaHRtbC5wdXNoKCI8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cIiIgKyBmaWxlICsgcXVlcnlTdHIgKyAiXCIvPiIpOw0KICAgIH0pOw0KICAgIGZvckVhY2gob3B0aW9ucy5iYXNlZmlsZXMuY29uY2F0KG9wdGlvbnMucGFyc2VyZmlsZSksIGZ1bmN0aW9uKGZpbGUpIHsNCiAgICAgIGlmICghL15odHRwcz86Ly50ZXN0KGZpbGUpKSBmaWxlID0gb3B0aW9ucy5wYXRoICsgZmlsZTsNCiAgICAgIGh0bWwucHVzaCgiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgc3JjPVwiIiArIGZpbGUgKyBxdWVyeVN0ciArICJcIj48IiArICIvc2NyaXB0PiIpOw0KICAgIH0pOw0KICAgIGh0bWwucHVzaCgiPC9oZWFkPjxib2R5IHN0eWxlPVwiYm9yZGVyLXdpZHRoOiAwO1wiIGNsYXNzPVwiZWRpdGJveFwiIiArIHNwICsgIj48L2JvZHk+PC9odG1sPiIpOw0KICAgIHJldHVybiBodG1sLmpvaW4oIiIpOw0KICB9DQoNCiAgdmFyIGludGVybmV0RXhwbG9yZXIgPSBkb2N1bWVudC5zZWxlY3Rpb24gJiYgd2luZG93LkFjdGl2ZVhPYmplY3QgJiYgL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7DQoNCiAgZnVuY3Rpb24gQ29kZU1pcnJvcihwbGFjZSwgb3B0aW9ucykgew0KICAgIC8vIFVzZSBwYXNzZWQgb3B0aW9ucywgaWYgYW55LCB0byBvdmVycmlkZSBkZWZhdWx0cy4NCiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsNCiAgICBzZXREZWZhdWx0cyhvcHRpb25zLCBDb2RlTWlycm9yQ29uZmlnKTsNCg0KICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGRlcHJlY2F0ZWQgb3B0aW9ucy4NCiAgICBpZiAob3B0aW9ucy5kdW1iVGFicykgb3B0aW9ucy50YWJNb2RlID0gInNwYWNlcyI7DQogICAgZWxzZSBpZiAob3B0aW9ucy5ub3JtYWxUYWIpIG9wdGlvbnMudGFiTW9kZSA9ICJkZWZhdWx0IjsNCiAgICBpZiAob3B0aW9ucy5jdXJzb3JBY3Rpdml0eSkgb3B0aW9ucy5vbkN1cnNvckFjdGl2aXR5ID0gb3B0aW9ucy5jdXJzb3JBY3Rpdml0eTsNCg0KICAgIHZhciBmcmFtZSA9IHRoaXMuZnJhbWUgPSBjcmVhdGVIVE1MRWxlbWVudCgiaWZyYW1lIik7DQogICAgaWYgKG9wdGlvbnMuaWZyYW1lQ2xhc3MpIGZyYW1lLmNsYXNzTmFtZSA9IG9wdGlvbnMuaWZyYW1lQ2xhc3M7DQogICAgZnJhbWUuZnJhbWVCb3JkZXIgPSAwOw0KICAgIGZyYW1lLnN0eWxlLmJvcmRlciA9ICIwIjsNCiAgICBmcmFtZS5zdHlsZS53aWR0aCA9ICcxMDAlJzsNCiAgICBmcmFtZS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7DQogICAgLy8gZGlzcGxheTogYmxvY2sgb2NjYXNpb25hbGx5IHN1cHByZXNzZXMgc29tZSBGaXJlZm94IGJ1Z3MsIHNvIHdlDQogICAgLy8gYWx3YXlzIGFkZCBpdCwgcmVkdW5kYW50IGFzIGl0IHNvdW5kcy4NCiAgICBmcmFtZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsNCg0KICAgIHZhciBkaXYgPSB0aGlzLndyYXBwaW5nID0gY3JlYXRlSFRNTEVsZW1lbnQoImRpdiIpOw0KICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJDb2RlTWlycm9yLXdyYXBwaW5nIjsNCiAgICBkaXYuc3R5bGUud2lkdGggPSBvcHRpb25zLndpZHRoOw0KICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAob3B0aW9ucy5oZWlnaHQgPT0gImR5bmFtaWMiKSA/IG9wdGlvbnMubWluSGVpZ2h0ICsgInB4IiA6IG9wdGlvbnMuaGVpZ2h0Ow0KICAgIC8vIFRoaXMgaXMgdXNlZCBieSBFZGl0b3IucmVyb3V0ZVBhc3RlRXZlbnQNCiAgICB2YXIgdGVIYWNrID0gdGhpcy50ZXh0YXJlYUhhY2sgPSBjcmVhdGVIVE1MRWxlbWVudCgidGV4dGFyZWEiKTsNCiAgICBkaXYuYXBwZW5kQ2hpbGQodGVIYWNrKTsNCiAgICB0ZUhhY2suc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOw0KICAgIHRlSGFjay5zdHlsZS5sZWZ0ID0gIi0xMDAwMHB4IjsNCiAgICB0ZUhhY2suc3R5bGUud2lkdGggPSAiMTBweCI7DQogICAgdGVIYWNrLnRhYkluZGV4ID0gMTAwMDAwOw0KDQogICAgLy8gTGluayBiYWNrIHRvIHRoaXMgb2JqZWN0LCBzbyB0aGF0IHRoZSBlZGl0b3IgY2FuIGZldGNoIG9wdGlvbnMNCiAgICAvLyBhbmQgYWRkIGEgcmVmZXJlbmNlIHRvIGl0c2VsZi4NCiAgICBmcmFtZS5Db2RlTWlycm9yID0gdGhpczsNCiAgICBpZiAob3B0aW9ucy5kb21haW4gJiYgaW50ZXJuZXRFeHBsb3Jlcikgew0KICAgICAgdGhpcy5odG1sID0gZnJhbWVIVE1MKG9wdGlvbnMpOw0KICAgICAgZnJhbWUuc3JjID0gImphdmFzY3JpcHQ6KGZ1bmN0aW9uKCl7ZG9jdW1lbnQub3BlbigpOyIgKw0KICAgICAgICAob3B0aW9ucy5kb21haW4gPyAiZG9jdW1lbnQuZG9tYWluPVwiIiArIG9wdGlvbnMuZG9tYWluICsgIlwiOyIgOiAiIikgKw0KICAgICAgICAiZG9jdW1lbnQud3JpdGUod2luZG93LmZyYW1lRWxlbWVudC5Db2RlTWlycm9yLmh0bWwpO2RvY3VtZW50LmNsb3NlKCk7fSkoKSI7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgZnJhbWUuc3JjID0gImphdmFzY3JpcHQ6OyI7DQogICAgfQ0KDQogICAgaWYgKHBsYWNlLmFwcGVuZENoaWxkKSBwbGFjZS5hcHBlbmRDaGlsZChkaXYpOw0KICAgIGVsc2UgcGxhY2UoZGl2KTsNCiAgICBkaXYuYXBwZW5kQ2hpbGQoZnJhbWUpOw0KICAgIGlmIChvcHRpb25zLmxpbmVOdW1iZXJzKSB0aGlzLmxpbmVOdW1iZXJzID0gYWRkTGluZU51bWJlckRpdihkaXYsIG9wdGlvbnMuZmlyc3RMaW5lTnVtYmVyKTsNCg0KICAgIHRoaXMud2luID0gZnJhbWUuY29udGVudFdpbmRvdzsNCiAgICBpZiAoIW9wdGlvbnMuZG9tYWluIHx8ICFpbnRlcm5ldEV4cGxvcmVyKSB7DQogICAgICB0aGlzLndpbi5kb2N1bWVudC5vcGVuKCk7DQogICAgICB0aGlzLndpbi5kb2N1bWVudC53cml0ZShmcmFtZUhUTUwob3B0aW9ucykpOw0KICAgICAgdGhpcy53aW4uZG9jdW1lbnQuY2xvc2UoKTsNCiAgICB9DQogIH0NCg0KICBDb2RlTWlycm9yLnByb3RvdHlwZSA9IHsNCiAgICBpbml0OiBmdW5jdGlvbigpIHsNCiAgICAgIC8vIERlcHJlY2F0ZWQsIGJ1dCBzdGlsbCBzdXBwb3J0ZWQuDQogICAgICBpZiAodGhpcy5vcHRpb25zLmluaXRDYWxsYmFjaykgdGhpcy5vcHRpb25zLmluaXRDYWxsYmFjayh0aGlzKTsNCiAgICAgIGlmICh0aGlzLm9wdGlvbnMub25Mb2FkKSB0aGlzLm9wdGlvbnMub25Mb2FkKHRoaXMpOw0KICAgICAgaWYgKHRoaXMub3B0aW9ucy5saW5lTnVtYmVycykgdGhpcy5hY3RpdmF0ZUxpbmVOdW1iZXJzKCk7DQogICAgICBpZiAodGhpcy5vcHRpb25zLnJlaW5kZW50T25Mb2FkKSB0aGlzLnJlaW5kZW50KCk7DQogICAgICBpZiAodGhpcy5vcHRpb25zLmhlaWdodCA9PSAiZHluYW1pYyIpIHRoaXMuc2V0RHluYW1pY0hlaWdodCgpOw0KICAgIH0sDQoNCiAgICBnZXRDb2RlOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Q29kZSgpO30sDQogICAgc2V0Q29kZTogZnVuY3Rpb24oY29kZSkge3RoaXMuZWRpdG9yLmltcG9ydENvZGUoY29kZSk7fSwNCiAgICBzZWxlY3Rpb246IGZ1bmN0aW9uKCkge3RoaXMuZm9jdXNJZklFKCk7IHJldHVybiB0aGlzLmVkaXRvci5zZWxlY3RlZFRleHQoKTt9LA0KICAgIHJlaW5kZW50OiBmdW5jdGlvbigpIHt0aGlzLmVkaXRvci5yZWluZGVudCgpO30sDQogICAgcmVpbmRlbnRTZWxlY3Rpb246IGZ1bmN0aW9uKCkge3RoaXMuZm9jdXNJZklFKCk7IHRoaXMuZWRpdG9yLnJlaW5kZW50U2VsZWN0aW9uKG51bGwpO30sDQoNCiAgICBmb2N1c0lmSUU6IGZ1bmN0aW9uKCkgew0KICAgICAgLy8gaW4gSUUsIGEgbG90IG9mIHNlbGVjdGlvbi1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkgb25seSB3b3JrcyB3aGVuIHRoZSBmcmFtZSBpcyBmb2N1c2VkDQogICAgICBpZiAodGhpcy53aW4uc2VsZWN0LmllX3NlbGVjdGlvbiAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9IHRoaXMuZnJhbWUpDQogICAgICAgIHRoaXMuZm9jdXMoKTsNCiAgICB9LA0KICAgIGZvY3VzOiBmdW5jdGlvbigpIHsNCiAgICAgIHRoaXMud2luLmZvY3VzKCk7DQogICAgICBpZiAodGhpcy5lZGl0b3Iuc2VsZWN0aW9uU25hcHNob3QpIC8vIElFIGhhY2sNCiAgICAgICAgdGhpcy53aW4uc2VsZWN0LnNldEJvb2ttYXJrKHRoaXMud2luLmRvY3VtZW50LmJvZHksIHRoaXMuZWRpdG9yLnNlbGVjdGlvblNuYXBzaG90KTsNCiAgICB9LA0KICAgIHJlcGxhY2VTZWxlY3Rpb246IGZ1bmN0aW9uKHRleHQpIHsNCiAgICAgIHRoaXMuZm9jdXMoKTsNCiAgICAgIHRoaXMuZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24odGV4dCk7DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KICAgIHJlcGxhY2VDaGFyczogZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCkgew0KICAgICAgdGhpcy5lZGl0b3IucmVwbGFjZUNoYXJzKHRleHQsIHN0YXJ0LCBlbmQpOw0KICAgIH0sDQogICAgZ2V0U2VhcmNoQ3Vyc29yOiBmdW5jdGlvbihzdHJpbmcsIGZyb21DdXJzb3IsIGNhc2VGb2xkKSB7DQogICAgICByZXR1cm4gdGhpcy5lZGl0b3IuZ2V0U2VhcmNoQ3Vyc29yKHN0cmluZywgZnJvbUN1cnNvciwgY2FzZUZvbGQpOw0KICAgIH0sDQoNCiAgICB1bmRvOiBmdW5jdGlvbigpIHt0aGlzLmVkaXRvci5oaXN0b3J5LnVuZG8oKTt9LA0KICAgIHJlZG86IGZ1bmN0aW9uKCkge3RoaXMuZWRpdG9yLmhpc3RvcnkucmVkbygpO30sDQogICAgaGlzdG9yeVNpemU6IGZ1bmN0aW9uKCkge3JldHVybiB0aGlzLmVkaXRvci5oaXN0b3J5Lmhpc3RvcnlTaXplKCk7fSwNCiAgICBjbGVhckhpc3Rvcnk6IGZ1bmN0aW9uKCkge3RoaXMuZWRpdG9yLmhpc3RvcnkuY2xlYXIoKTt9LA0KDQogICAgZ3JhYktleXM6IGZ1bmN0aW9uKGNhbGxiYWNrLCBmaWx0ZXIpIHt0aGlzLmVkaXRvci5ncmFiS2V5cyhjYWxsYmFjaywgZmlsdGVyKTt9LA0KICAgIHVuZ3JhYktleXM6IGZ1bmN0aW9uKCkge3RoaXMuZWRpdG9yLnVuZ3JhYktleXMoKTt9LA0KDQogICAgc2V0UGFyc2VyOiBmdW5jdGlvbihuYW1lLCBwYXJzZXJDb25maWcpIHt0aGlzLmVkaXRvci5zZXRQYXJzZXIobmFtZSwgcGFyc2VyQ29uZmlnKTt9LA0KICAgIHNldFNwZWxsY2hlY2s6IGZ1bmN0aW9uKG9uKSB7dGhpcy53aW4uZG9jdW1lbnQuYm9keS5zcGVsbGNoZWNrID0gb247fSwNCiAgICBzZXRTdHlsZXNoZWV0OiBmdW5jdGlvbihuYW1lcykgew0KICAgICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gInN0cmluZyIpIG5hbWVzID0gW25hbWVzXTsNCiAgICAgIHZhciBhY3RpdmVTdHlsZXNoZWV0cyA9IHt9Ow0KICAgICAgdmFyIG1hdGNoZWROYW1lcyA9IHt9Ow0KICAgICAgdmFyIGxpbmtzID0gdGhpcy53aW4uZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKTsNCiAgICAgIC8vIENyZWF0ZSBoYXNoZXMgb2YgYWN0aXZlIHN0eWxlc2hlZXRzIGFuZCBtYXRjaGVkIG5hbWVzLg0KICAgICAgLy8gVGhpcyBpcyBPKG5eMikgYnV0IG4gaXMgZXhwZWN0ZWQgdG8gYmUgdmVyeSBzbWFsbC4NCiAgICAgIGZvciAodmFyIHggPSAwLCBsaW5rOyBsaW5rID0gbGlua3NbeF07IHgrKykgew0KICAgICAgICBpZiAobGluay5yZWwuaW5kZXhPZigic3R5bGVzaGVldCIpICE9PSAtMSkgew0KICAgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgbmFtZXMubGVuZ3RoOyB5KyspIHsNCiAgICAgICAgICAgIHZhciBuYW1lID0gbmFtZXNbeV07DQogICAgICAgICAgICBpZiAobGluay5ocmVmLnN1YnN0cmluZyhsaW5rLmhyZWYubGVuZ3RoIC0gbmFtZS5sZW5ndGgpID09PSBuYW1lKSB7DQogICAgICAgICAgICAgIGFjdGl2ZVN0eWxlc2hlZXRzW2xpbmsuaHJlZl0gPSB0cnVlOw0KICAgICAgICAgICAgICBtYXRjaGVkTmFtZXNbbmFtZV0gPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLy8gQWN0aXZhdGUgdGhlIHNlbGVjdGVkIHN0eWxlc2hlZXRzIGFuZCBkaXNhYmxlIHRoZSByZXN0Lg0KICAgICAgZm9yICh2YXIgeCA9IDAsIGxpbms7IGxpbmsgPSBsaW5rc1t4XTsgeCsrKSB7DQogICAgICAgIGlmIChsaW5rLnJlbC5pbmRleE9mKCJzdHlsZXNoZWV0IikgIT09IC0xKSB7DQogICAgICAgICAgbGluay5kaXNhYmxlZCA9ICEobGluay5ocmVmIGluIGFjdGl2ZVN0eWxlc2hlZXRzKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLy8gQ3JlYXRlIGFueSBuZXcgc3R5bGVzaGVldHMuDQogICAgICBmb3IgKHZhciB5ID0gMDsgeSA8IG5hbWVzLmxlbmd0aDsgeSsrKSB7DQogICAgICAgIHZhciBuYW1lID0gbmFtZXNbeV07DQogICAgICAgIGlmICghKG5hbWUgaW4gbWF0Y2hlZE5hbWVzKSkgew0KICAgICAgICAgIHZhciBsaW5rID0gdGhpcy53aW4uZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOw0KICAgICAgICAgIGxpbmsucmVsID0gInN0eWxlc2hlZXQiOw0KICAgICAgICAgIGxpbmsudHlwZSA9ICJ0ZXh0L2NzcyI7DQogICAgICAgICAgbGluay5ocmVmID0gbmFtZTsNCiAgICAgICAgICB0aGlzLndpbi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKGxpbmspOw0KICAgICAgICB9DQogICAgICB9DQogICAgfSwNCiAgICBzZXRUZXh0V3JhcHBpbmc6IGZ1bmN0aW9uKG9uKSB7DQogICAgICBpZiAob24gPT0gdGhpcy5vcHRpb25zLnRleHRXcmFwcGluZykgcmV0dXJuOw0KICAgICAgdGhpcy53aW4uZG9jdW1lbnQuYm9keS5zdHlsZS53aGl0ZVNwYWNlID0gb24gPyAiIiA6ICJub3dyYXAiOw0KICAgICAgdGhpcy5vcHRpb25zLnRleHRXcmFwcGluZyA9IG9uOw0KICAgICAgaWYgKHRoaXMubGluZU51bWJlcnMpIHsNCiAgICAgICAgdGhpcy5zZXRMaW5lTnVtYmVycyhmYWxzZSk7DQogICAgICAgIHRoaXMuc2V0TGluZU51bWJlcnModHJ1ZSk7DQogICAgICB9DQogICAgfSwNCiAgICBzZXRJbmRlbnRVbml0OiBmdW5jdGlvbih1bml0KSB7dGhpcy53aW4uaW5kZW50VW5pdCA9IHVuaXQ7fSwNCiAgICBzZXRVbmRvRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7dGhpcy5lZGl0b3IuaGlzdG9yeS5tYXhEZXB0aCA9IGRlcHRoO30sDQogICAgc2V0VGFiTW9kZTogZnVuY3Rpb24obW9kZSkge3RoaXMub3B0aW9ucy50YWJNb2RlID0gbW9kZTt9LA0KICAgIHNldEVudGVyTW9kZTogZnVuY3Rpb24obW9kZSkge3RoaXMub3B0aW9ucy5lbnRlck1vZGUgPSBtb2RlO30sDQogICAgc2V0TGluZU51bWJlcnM6IGZ1bmN0aW9uKG9uKSB7DQogICAgICBpZiAob24gJiYgIXRoaXMubGluZU51bWJlcnMpIHsNCiAgICAgICAgdGhpcy5saW5lTnVtYmVycyA9IGFkZExpbmVOdW1iZXJEaXYodGhpcy53cmFwcGluZyx0aGlzLm9wdGlvbnMuZmlyc3RMaW5lTnVtYmVyKTsNCiAgICAgICAgdGhpcy5hY3RpdmF0ZUxpbmVOdW1iZXJzKCk7DQogICAgICB9DQogICAgICBlbHNlIGlmICghb24gJiYgdGhpcy5saW5lTnVtYmVycykgew0KICAgICAgICB0aGlzLndyYXBwaW5nLnJlbW92ZUNoaWxkKHRoaXMubGluZU51bWJlcnMpOw0KICAgICAgICB0aGlzLndyYXBwaW5nLnN0eWxlLnBhZGRpbmdMZWZ0ID0gIiI7DQogICAgICAgIHRoaXMubGluZU51bWJlcnMgPSBudWxsOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICBjdXJzb3JQb3NpdGlvbjogZnVuY3Rpb24oc3RhcnQpIHt0aGlzLmZvY3VzSWZJRSgpOyByZXR1cm4gdGhpcy5lZGl0b3IuY3Vyc29yUG9zaXRpb24oc3RhcnQpO30sDQogICAgZmlyc3RMaW5lOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5lZGl0b3IuZmlyc3RMaW5lKCk7fSwNCiAgICBsYXN0TGluZTogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZWRpdG9yLmxhc3RMaW5lKCk7fSwNCiAgICBuZXh0TGluZTogZnVuY3Rpb24obGluZSkge3JldHVybiB0aGlzLmVkaXRvci5uZXh0TGluZShsaW5lKTt9LA0KICAgIHByZXZMaW5lOiBmdW5jdGlvbihsaW5lKSB7cmV0dXJuIHRoaXMuZWRpdG9yLnByZXZMaW5lKGxpbmUpO30sDQogICAgbGluZUNvbnRlbnQ6IGZ1bmN0aW9uKGxpbmUpIHtyZXR1cm4gdGhpcy5lZGl0b3IubGluZUNvbnRlbnQobGluZSk7fSwNCiAgICBzZXRMaW5lQ29udGVudDogZnVuY3Rpb24obGluZSwgY29udGVudCkge3RoaXMuZWRpdG9yLnNldExpbmVDb250ZW50KGxpbmUsIGNvbnRlbnQpO30sDQogICAgcmVtb3ZlTGluZTogZnVuY3Rpb24obGluZSl7dGhpcy5lZGl0b3IucmVtb3ZlTGluZShsaW5lKTt9LA0KICAgIGluc2VydEludG9MaW5lOiBmdW5jdGlvbihsaW5lLCBwb3NpdGlvbiwgY29udGVudCkge3RoaXMuZWRpdG9yLmluc2VydEludG9MaW5lKGxpbmUsIHBvc2l0aW9uLCBjb250ZW50KTt9LA0KICAgIHNlbGVjdExpbmVzOiBmdW5jdGlvbihzdGFydExpbmUsIHN0YXJ0T2Zmc2V0LCBlbmRMaW5lLCBlbmRPZmZzZXQpIHsNCiAgICAgIHRoaXMud2luLmZvY3VzKCk7DQogICAgICB0aGlzLmVkaXRvci5zZWxlY3RMaW5lcyhzdGFydExpbmUsIHN0YXJ0T2Zmc2V0LCBlbmRMaW5lLCBlbmRPZmZzZXQpOw0KICAgIH0sDQogICAgbnRoTGluZTogZnVuY3Rpb24obikgew0KICAgICAgdmFyIGxpbmUgPSB0aGlzLmZpcnN0TGluZSgpOw0KICAgICAgZm9yICg7IG4gPiAxICYmIGxpbmUgIT09IGZhbHNlOyBuLS0pDQogICAgICAgIGxpbmUgPSB0aGlzLm5leHRMaW5lKGxpbmUpOw0KICAgICAgcmV0dXJuIGxpbmU7DQogICAgfSwNCiAgICBsaW5lTnVtYmVyOiBmdW5jdGlvbihsaW5lKSB7DQogICAgICB2YXIgbnVtID0gMDsNCiAgICAgIHdoaWxlIChsaW5lICE9PSBmYWxzZSkgew0KICAgICAgICBudW0rKzsNCiAgICAgICAgbGluZSA9IHRoaXMucHJldkxpbmUobGluZSk7DQogICAgICB9DQogICAgICByZXR1cm4gbnVtOw0KICAgIH0sDQogICAganVtcFRvTGluZTogZnVuY3Rpb24obGluZSkgew0KICAgICAgaWYgKHR5cGVvZiBsaW5lID09ICJudW1iZXIiKSBsaW5lID0gdGhpcy5udGhMaW5lKGxpbmUpOw0KICAgICAgdGhpcy5zZWxlY3RMaW5lcyhsaW5lLCAwKTsNCiAgICAgIHRoaXMud2luLmZvY3VzKCk7DQogICAgfSwNCiAgICBjdXJyZW50TGluZTogZnVuY3Rpb24oKSB7IC8vIERlcHJlY2F0ZWQsIGJ1dCBzdGlsbCB0aGVyZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQ0KICAgICAgcmV0dXJuIHRoaXMubGluZU51bWJlcih0aGlzLmN1cnNvckxpbmUoKSk7DQogICAgfSwNCiAgICBjdXJzb3JMaW5lOiBmdW5jdGlvbigpIHsNCiAgICAgIHJldHVybiB0aGlzLmN1cnNvclBvc2l0aW9uKCkubGluZTsNCiAgICB9LA0KICAgIGN1cnNvckNvb3JkczogZnVuY3Rpb24oc3RhcnQpIHtyZXR1cm4gdGhpcy5lZGl0b3IuY3Vyc29yQ29vcmRzKHN0YXJ0KTt9LA0KDQogICAgYWN0aXZhdGVMaW5lTnVtYmVyczogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgZnJhbWUgPSB0aGlzLmZyYW1lLCB3aW4gPSBmcmFtZS5jb250ZW50V2luZG93LCBkb2MgPSB3aW4uZG9jdW1lbnQsIGJvZHkgPSBkb2MuYm9keSwNCiAgICAgICAgICBudW1zID0gdGhpcy5saW5lTnVtYmVycywgc2Nyb2xsZXIgPSBudW1zLmZpcnN0Q2hpbGQsIHNlbGYgPSB0aGlzOw0KICAgICAgdmFyIGJhcldpZHRoID0gbnVsbDsNCg0KICAgICAgbnVtcy5vbmNsaWNrID0gZnVuY3Rpb24oZSkgew0KICAgICAgICB2YXIgaGFuZGxlciA9IHNlbGYub3B0aW9ucy5vbkxpbmVOdW1iZXJDbGljazsNCiAgICAgICAgaWYgKGhhbmRsZXIpIHsNCiAgICAgICAgICB2YXIgZGl2ID0gKGUgfHwgd2luZG93LmV2ZW50KS50YXJnZXQgfHwgKGUgfHwgd2luZG93LmV2ZW50KS5zcmNFbGVtZW50Ow0KICAgICAgICAgIHZhciBudW0gPSBkaXYgPT0gbnVtcyA/IE5hTiA6IE51bWJlcihkaXYuaW5uZXJIVE1MKTsNCiAgICAgICAgICBpZiAoIWlzTmFOKG51bSkpIGhhbmRsZXIobnVtLCBkaXYpOw0KICAgICAgICB9DQogICAgICB9Ow0KDQogICAgICBmdW5jdGlvbiBzaXplQmFyKCkgew0KICAgICAgICBpZiAoZnJhbWUub2Zmc2V0V2lkdGggPT0gMCkgcmV0dXJuOw0KICAgICAgICBmb3IgKHZhciByb290ID0gZnJhbWU7IHJvb3QucGFyZW50Tm9kZTsgcm9vdCA9IHJvb3QucGFyZW50Tm9kZSl7fQ0KICAgICAgICBpZiAoIW51bXMucGFyZW50Tm9kZSB8fCByb290ICE9IGRvY3VtZW50IHx8ICF3aW4uRWRpdG9yKSB7DQogICAgICAgICAgLy8gQ2xlYXIgZXZlbnQgaGFuZGxlcnMgKHRoZWlyIG5vZGVzIG1pZ2h0IGFscmVhZHkgYmUgY29sbGVjdGVkLCBzbyB0cnkvY2F0Y2gpDQogICAgICAgICAgdHJ5e2NsZWFyKCk7fWNhdGNoKGUpe30NCiAgICAgICAgICBjbGVhckludGVydmFsKHNpemVJbnRlcnZhbCk7DQogICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKG51bXMub2Zmc2V0V2lkdGggIT0gYmFyV2lkdGgpIHsNCiAgICAgICAgICBiYXJXaWR0aCA9IG51bXMub2Zmc2V0V2lkdGg7DQogICAgICAgICAgLyogSmVyZW15IGVkaXRlZC4uIFNob3VsZCBiZSBhIHNldCBzaXplIGluIENTUyAxMC04LTEwICovDQogICAgICAgICAgLy9mcmFtZS5wYXJlbnROb2RlLnN0eWxlLnBhZGRpbmdMZWZ0ID0gYmFyV2lkdGggKyAicHgiOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBmdW5jdGlvbiBkb1Njcm9sbCgpIHsNCiAgICAgICAgbnVtcy5zY3JvbGxUb3AgPSBib2R5LnNjcm9sbFRvcCB8fCBkb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCAwOw0KICAgICAgfQ0KICAgICAgLy8gQ2xlYW51cCBmdW5jdGlvbiwgcmVnaXN0ZXJlZCBieSBub25XcmFwcGluZyBhbmQgd3JhcHBpbmcuDQogICAgICB2YXIgY2xlYXIgPSBmdW5jdGlvbigpe307DQogICAgICBzaXplQmFyKCk7DQogICAgICB2YXIgc2l6ZUludGVydmFsID0gc2V0SW50ZXJ2YWwoc2l6ZUJhciwgNTAwKTsNCg0KICAgICAgZnVuY3Rpb24gZW5zdXJlRW5vdWdoTGluZU51bWJlcnMoZmlsbCkgew0KICAgICAgICB2YXIgbGluZUhlaWdodCA9IHNjcm9sbGVyLmZpcnN0Q2hpbGQub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBpZiAobGluZUhlaWdodCA9PSAwKSByZXR1cm47DQogICAgICAgIHZhciB0YXJnZXRIZWlnaHQgPSA1MCArIE1hdGgubWF4KGJvZHkub2Zmc2V0SGVpZ2h0LCBNYXRoLm1heChmcmFtZS5vZmZzZXRIZWlnaHQsIGJvZHkuc2Nyb2xsSGVpZ2h0IHx8IDApKSwNCiAgICAgICAgICAgIGxhc3ROdW1iZXIgPSBNYXRoLmNlaWwodGFyZ2V0SGVpZ2h0IC8gbGluZUhlaWdodCk7DQogICAgICAgIGZvciAodmFyIGkgPSBzY3JvbGxlci5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8PSBsYXN0TnVtYmVyOyBpKyspIHsNCiAgICAgICAgICB2YXIgZGl2ID0gY3JlYXRlSFRNTEVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmaWxsID8gU3RyaW5nKGkgKyBzZWxmLm9wdGlvbnMuZmlyc3RMaW5lTnVtYmVyKSA6ICJcdTAwYTAiKSk7DQogICAgICAgICAgc2Nyb2xsZXIuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBub25XcmFwcGluZygpIHsNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlKCkgew0KICAgICAgICAgIGVuc3VyZUVub3VnaExpbmVOdW1iZXJzKHRydWUpOw0KICAgICAgICAgIGRvU2Nyb2xsKCk7DQogICAgICAgIH0NCiAgICAgICAgc2VsZi51cGRhdGVOdW1iZXJzID0gdXBkYXRlOw0KICAgICAgICB2YXIgb25TY3JvbGwgPSB3aW4uYWRkRXZlbnRIYW5kbGVyKHdpbiwgInNjcm9sbCIsIGRvU2Nyb2xsLCB0cnVlKSwNCiAgICAgICAgICAgIG9uUmVzaXplID0gd2luLmFkZEV2ZW50SGFuZGxlcih3aW4sICJyZXNpemUiLCB1cGRhdGUsIHRydWUpOw0KICAgICAgICBjbGVhciA9IGZ1bmN0aW9uKCl7DQogICAgICAgICAgb25TY3JvbGwoKTsgb25SZXNpemUoKTsNCiAgICAgICAgICBpZiAoc2VsZi51cGRhdGVOdW1iZXJzID09IHVwZGF0ZSkgc2VsZi51cGRhdGVOdW1iZXJzID0gbnVsbDsNCiAgICAgICAgfTsNCiAgICAgICAgdXBkYXRlKCk7DQogICAgICB9DQoNCiAgICAgIGZ1bmN0aW9uIHdyYXBwaW5nKCkgew0KICAgICAgICB2YXIgbm9kZSwgbGluZU51bSwgbmV4dCwgcG9zLCBjaGFuZ2VzID0gW10sIHN0eWxlTnVtcyA9IHNlbGYub3B0aW9ucy5zdHlsZU51bWJlcnM7DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0TnVtKG4sIG5vZGUpIHsNCiAgICAgICAgICAvLyBEb2VzIG5vdCB0eXBpY2FsbHkgaGFwcGVuIChidXQgY2FuLCBpZiB5b3UgbWVzcyB3aXRoIHRoZQ0KICAgICAgICAgIC8vIGRvY3VtZW50IGR1cmluZyB0aGUgbnVtYmVyaW5nKQ0KICAgICAgICAgIGlmICghbGluZU51bSkgbGluZU51bSA9IHNjcm9sbGVyLmFwcGVuZENoaWxkKGNyZWF0ZUhUTUxFbGVtZW50KCJkaXYiKSk7DQogICAgICAgICAgaWYgKHN0eWxlTnVtcykgc3R5bGVOdW1zKGxpbmVOdW0sIG5vZGUsIG4pOw0KICAgICAgICAgIC8vIENoYW5nZXMgYXJlIGFjY3VtdWxhdGVkLCBzbyB0aGF0IHRoZSBkb2N1bWVudCBsYXlvdXQNCiAgICAgICAgICAvLyBkb2Vzbid0IGhhdmUgdG8gYmUgcmVjb21wdXRlZCBkdXJpbmcgdGhlIHBhc3MNCiAgICAgICAgICBjaGFuZ2VzLnB1c2gobGluZU51bSk7IGNoYW5nZXMucHVzaChuKTsNCiAgICAgICAgICBwb3MgPSBsaW5lTnVtLm9mZnNldEhlaWdodCArIGxpbmVOdW0ub2Zmc2V0VG9wOw0KICAgICAgICAgIGxpbmVOdW0gPSBsaW5lTnVtLm5leHRTaWJsaW5nOw0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIGNvbW1pdENoYW5nZXMoKSB7DQogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSArPSAyKQ0KICAgICAgICAgICAgY2hhbmdlc1tpXS5pbm5lckhUTUwgPSBjaGFuZ2VzW2kgKyAxXTsNCiAgICAgICAgICBjaGFuZ2VzID0gW107DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gd29yaygpIHsNCiAgICAgICAgICBpZiAoIXNjcm9sbGVyLnBhcmVudE5vZGUgfHwgc2Nyb2xsZXIucGFyZW50Tm9kZSAhPSBzZWxmLmxpbmVOdW1iZXJzKSByZXR1cm47DQoNCiAgICAgICAgICB2YXIgZW5kVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgc2VsZi5vcHRpb25zLmxpbmVOdW1iZXJUaW1lOw0KICAgICAgICAgIHdoaWxlIChub2RlKSB7DQogICAgICAgICAgICBzZXROdW0obmV4dCsrLCBub2RlLnByZXZpb3VzU2libGluZyk7DQogICAgICAgICAgICBmb3IgKDsgbm9kZSAmJiAhd2luLmlzQlIobm9kZSk7IG5vZGUgPSBub2RlLm5leHRTaWJsaW5nKSB7DQogICAgICAgICAgICAgIHZhciBib3R0ID0gbm9kZS5vZmZzZXRUb3AgKyBub2RlLm9mZnNldEhlaWdodDsNCiAgICAgICAgICAgICAgd2hpbGUgKHNjcm9sbGVyLm9mZnNldEhlaWdodCAmJiBib3R0IC0gMyA+IHBvcykgew0KICAgICAgICAgICAgICAgIHZhciBvbGRQb3MgPSBwb3M7DQogICAgICAgICAgICAgICAgc2V0TnVtKCImbmJzcDsiKTsNCiAgICAgICAgICAgICAgICBpZiAocG9zIDw9IG9sZFBvcykgYnJlYWs7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChub2RlKSBub2RlID0gbm9kZS5uZXh0U2libGluZzsNCiAgICAgICAgICAgIGlmIChuZXcgRGF0ZSgpLmdldFRpbWUoKSA+IGVuZFRpbWUpIHsNCiAgICAgICAgICAgICAgY29tbWl0Q2hhbmdlcygpOw0KICAgICAgICAgICAgICBwZW5kaW5nID0gc2V0VGltZW91dCh3b3JrLCBzZWxmLm9wdGlvbnMubGluZU51bWJlckRlbGF5KTsNCiAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgICB3aGlsZSAobGluZU51bSkgc2V0TnVtKG5leHQrKyk7DQogICAgICAgICAgY29tbWl0Q2hhbmdlcygpOw0KICAgICAgICAgIGRvU2Nyb2xsKCk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gc3RhcnQoZmlyc3RUaW1lKSB7DQogICAgICAgICAgZG9TY3JvbGwoKTsNCiAgICAgICAgICBlbnN1cmVFbm91Z2hMaW5lTnVtYmVycyhmaXJzdFRpbWUpOw0KICAgICAgICAgIG5vZGUgPSBib2R5LmZpcnN0Q2hpbGQ7DQogICAgICAgICAgbGluZU51bSA9IHNjcm9sbGVyLmZpcnN0Q2hpbGQ7DQogICAgICAgICAgcG9zID0gMDsNCiAgICAgICAgICBuZXh0ID0gc2VsZi5vcHRpb25zLmZpcnN0TGluZU51bWJlcjsNCiAgICAgICAgICB3b3JrKCk7DQogICAgICAgIH0NCg0KICAgICAgICBzdGFydCh0cnVlKTsNCiAgICAgICAgdmFyIHBlbmRpbmcgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiB1cGRhdGUoKSB7DQogICAgICAgICAgaWYgKHBlbmRpbmcpIGNsZWFyVGltZW91dChwZW5kaW5nKTsNCiAgICAgICAgICBpZiAoc2VsZi5lZGl0b3IuYWxsQ2xlYW4oKSkgc3RhcnQoKTsNCiAgICAgICAgICBlbHNlIHBlbmRpbmcgPSBzZXRUaW1lb3V0KHVwZGF0ZSwgMjAwKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxmLnVwZGF0ZU51bWJlcnMgPSB1cGRhdGU7DQogICAgICAgIHZhciBvblNjcm9sbCA9IHdpbi5hZGRFdmVudEhhbmRsZXIod2luLCAic2Nyb2xsIiwgZG9TY3JvbGwsIHRydWUpLA0KICAgICAgICAgICAgb25SZXNpemUgPSB3aW4uYWRkRXZlbnRIYW5kbGVyKHdpbiwgInJlc2l6ZSIsIHVwZGF0ZSwgdHJ1ZSk7DQogICAgICAgIGNsZWFyID0gZnVuY3Rpb24oKXsNCiAgICAgICAgICBpZiAocGVuZGluZykgY2xlYXJUaW1lb3V0KHBlbmRpbmcpOw0KICAgICAgICAgIGlmIChzZWxmLnVwZGF0ZU51bWJlcnMgPT0gdXBkYXRlKSBzZWxmLnVwZGF0ZU51bWJlcnMgPSBudWxsOw0KICAgICAgICAgIG9uU2Nyb2xsKCk7DQogICAgICAgICAgb25SZXNpemUoKTsNCiAgICAgICAgfTsNCiAgICAgIH0NCiAgICAgICh0aGlzLm9wdGlvbnMudGV4dFdyYXBwaW5nIHx8IHRoaXMub3B0aW9ucy5zdHlsZU51bWJlcnMgPyB3cmFwcGluZyA6IG5vbldyYXBwaW5nKSgpOw0KICAgIH0sDQoNCiAgICBzZXREeW5hbWljSGVpZ2h0OiBmdW5jdGlvbigpIHsNCiAgICAgIHZhciBzZWxmID0gdGhpcywgYWN0aXZpdHkgPSBzZWxmLm9wdGlvbnMub25DdXJzb3JBY3Rpdml0eSwgd2luID0gc2VsZi53aW4sIGJvZHkgPSB3aW4uZG9jdW1lbnQuYm9keSwNCiAgICAgICAgICBsaW5lSGVpZ2h0ID0gbnVsbCwgdGltZW91dCA9IG51bGwsIHZtYXJnaW4gPSAyICogc2VsZi5mcmFtZS5vZmZzZXRUb3A7DQogICAgICBib2R5LnN0eWxlLm92ZXJmbG93WSA9ICJoaWRkZW4iOw0KICAgICAgd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvd1kgPSAiaGlkZGVuIjsNCiAgICAgIHRoaXMuZnJhbWUuc2Nyb2xsaW5nID0gIm5vIjsNCg0KICAgICAgZnVuY3Rpb24gdXBkYXRlSGVpZ2h0KCkgew0KICAgICAgICB2YXIgdHJhaWxpbmdMaW5lcyA9IDAsIG5vZGUgPSBib2R5Lmxhc3RDaGlsZCwgY29tcHV0ZWRIZWlnaHQ7DQogICAgICAgIHdoaWxlIChub2RlICYmIHdpbi5pc0JSKG5vZGUpKSB7DQogICAgICAgICAgaWYgKCFub2RlLmhhY2tCUikgdHJhaWxpbmdMaW5lcysrOw0KICAgICAgICAgIG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZzsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobm9kZSkgew0KICAgICAgICAgIGxpbmVIZWlnaHQgPSBub2RlLm9mZnNldEhlaWdodDsNCiAgICAgICAgICBjb21wdXRlZEhlaWdodCA9IG5vZGUub2Zmc2V0VG9wICsgKDEgKyB0cmFpbGluZ0xpbmVzKSAqIGxpbmVIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAobGluZUhlaWdodCkgew0KICAgICAgICAgIGNvbXB1dGVkSGVpZ2h0ID0gdHJhaWxpbmdMaW5lcyAqIGxpbmVIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNvbXB1dGVkSGVpZ2h0KQ0KICAgICAgICAgIHNlbGYud3JhcHBpbmcuc3R5bGUuaGVpZ2h0ID0gTWF0aC5tYXgodm1hcmdpbiArIGNvbXB1dGVkSGVpZ2h0LCBzZWxmLm9wdGlvbnMubWluSGVpZ2h0KSArICJweCI7DQogICAgICB9DQogICAgICBzZXRUaW1lb3V0KHVwZGF0ZUhlaWdodCwgMzAwKTsNCiAgICAgIHNlbGYub3B0aW9ucy5vbkN1cnNvckFjdGl2aXR5ID0gZnVuY3Rpb24oeCkgew0KICAgICAgICBpZiAoYWN0aXZpdHkpIGFjdGl2aXR5KHgpOw0KICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7DQogICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KHVwZGF0ZUhlaWdodCwgMTAwKTsNCiAgICAgIH07DQogICAgfQ0KICB9Ow0KDQogIENvZGVNaXJyb3IuSW52YWxpZExpbmVIYW5kbGUgPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCl7cmV0dXJuICJDb2RlTWlycm9yLkludmFsaWRMaW5lSGFuZGxlIjt9fTsNCg0KICBDb2RlTWlycm9yLnJlcGxhY2UgPSBmdW5jdGlvbihlbGVtZW50KSB7DQogICAgaWYgKHR5cGVvZiBlbGVtZW50ID09ICJzdHJpbmciKQ0KICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpOw0KICAgIHJldHVybiBmdW5jdGlvbihuZXdFbGVtZW50KSB7DQogICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5ld0VsZW1lbnQsIGVsZW1lbnQpOw0KICAgIH07DQogIH07DQoNCiAgQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEgPSBmdW5jdGlvbihhcmVhLCBvcHRpb25zKSB7DQogICAgaWYgKHR5cGVvZiBhcmVhID09ICJzdHJpbmciKQ0KICAgICAgYXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFyZWEpOw0KDQogICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307DQogICAgaWYgKGFyZWEuc3R5bGUud2lkdGggJiYgb3B0aW9ucy53aWR0aCA9PSBudWxsKQ0KICAgICAgb3B0aW9ucy53aWR0aCA9IGFyZWEuc3R5bGUud2lkdGg7DQogICAgaWYgKGFyZWEuc3R5bGUuaGVpZ2h0ICYmIG9wdGlvbnMuaGVpZ2h0ID09IG51bGwpDQogICAgICBvcHRpb25zLmhlaWdodCA9IGFyZWEuc3R5bGUuaGVpZ2h0Ow0KICAgIGlmIChvcHRpb25zLmNvbnRlbnQgPT0gbnVsbCkgb3B0aW9ucy5jb250ZW50ID0gYXJlYS52YWx1ZTsNCg0KICAgIGZ1bmN0aW9uIHVwZGF0ZUZpZWxkKCkgew0KICAgICAgYXJlYS52YWx1ZSA9IG1pcnJvci5nZXRDb2RlKCk7DQogICAgfQ0KICAgIGlmIChhcmVhLmZvcm0pIHsNCiAgICAgIGlmICh0eXBlb2YgYXJlYS5mb3JtLmFkZEV2ZW50TGlzdGVuZXIgPT0gImZ1bmN0aW9uIikNCiAgICAgICAgYXJlYS5mb3JtLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIHVwZGF0ZUZpZWxkLCBmYWxzZSk7DQogICAgICBlbHNlDQogICAgICAgIGFyZWEuZm9ybS5hdHRhY2hFdmVudCgib25zdWJtaXQiLCB1cGRhdGVGaWVsZCk7DQogICAgICB2YXIgcmVhbFN1Ym1pdCA9IGFyZWEuZm9ybS5zdWJtaXQ7DQogICAgICBmdW5jdGlvbiB3cmFwU3VibWl0KCkgew0KICAgICAgICB1cGRhdGVGaWVsZCgpOw0KICAgICAgICAvLyBDYW4ndCB1c2UgcmVhbFN1Ym1pdC5hcHBseSBiZWNhdXNlIElFNiBpcyB0b28gc3R1cGlkDQogICAgICAgIGFyZWEuZm9ybS5zdWJtaXQgPSByZWFsU3VibWl0Ow0KICAgICAgICBhcmVhLmZvcm0uc3VibWl0KCk7DQogICAgICAgIGFyZWEuZm9ybS5zdWJtaXQgPSB3cmFwU3VibWl0Ow0KICAgICAgfQ0KICAgICAgdHJ5IHthcmVhLmZvcm0uc3VibWl0ID0gd3JhcFN1Ym1pdDt9IGNhdGNoKGUpe30NCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpbnNlcnQoZnJhbWUpIHsNCiAgICAgIGlmIChhcmVhLm5leHRTaWJsaW5nKQ0KICAgICAgICBhcmVhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGZyYW1lLCBhcmVhLm5leHRTaWJsaW5nKTsNCiAgICAgIGVsc2UNCiAgICAgICAgYXJlYS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGZyYW1lKTsNCiAgICB9DQoNCiAgICBhcmVhLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgdmFyIG1pcnJvciA9IG5ldyBDb2RlTWlycm9yKGluc2VydCwgb3B0aW9ucyk7DQogICAgbWlycm9yLnNhdmUgPSB1cGRhdGVGaWVsZDsNCiAgICBtaXJyb3IudG9UZXh0QXJlYSA9IGZ1bmN0aW9uKCkgew0KICAgICAgdXBkYXRlRmllbGQoKTsNCiAgICAgIGFyZWEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtaXJyb3Iud3JhcHBpbmcpOw0KICAgICAgYXJlYS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICBpZiAoYXJlYS5mb3JtKSB7DQogICAgICAgIHRyeSB7YXJlYS5mb3JtLnN1Ym1pdCA9IHJlYWxTdWJtaXQ7fSBjYXRjaChlKSB7fQ0KICAgICAgICBpZiAodHlwZW9mIGFyZWEuZm9ybS5yZW1vdmVFdmVudExpc3RlbmVyID09ICJmdW5jdGlvbiIpDQogICAgICAgICAgYXJlYS5mb3JtLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIHVwZGF0ZUZpZWxkLCBmYWxzZSk7DQogICAgICAgIGVsc2UNCiAgICAgICAgICBhcmVhLmZvcm0uZGV0YWNoRXZlbnQoIm9uc3VibWl0IiwgdXBkYXRlRmllbGQpOw0KICAgICAgfQ0KICAgIH07DQoNCiAgICByZXR1cm4gbWlycm9yOw0KICB9Ow0KDQogIENvZGVNaXJyb3IuaXNQcm9iYWJseVN1cHBvcnRlZCA9IGZ1bmN0aW9uKCkgew0KICAgIC8vIFRoaXMgaXMgcmF0aGVyIGF3ZnVsLCBidXQgY2FuIGJlIHVzZWZ1bC4NCiAgICB2YXIgbWF0Y2g7DQogICAgaWYgKHdpbmRvdy5vcGVyYSkNCiAgICAgIHJldHVybiBOdW1iZXIod2luZG93Lm9wZXJhLnZlcnNpb24oKSkgPj0gOS41MjsNCiAgICBlbHNlIGlmICgvQXBwbGUgQ29tcHV0ZXIsIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSAmJiAobWF0Y2ggPSBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9WZXJzaW9uXC8oXGQrKD86XC5cZCspPylcLi8pKSkNCiAgICAgIHJldHVybiBOdW1iZXIobWF0Y2hbMV0pID49IDM7DQogICAgZWxzZSBpZiAoZG9jdW1lbnQuc2VsZWN0aW9uICYmIHdpbmRvdy5BY3RpdmVYT2JqZWN0ICYmIChtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL01TSUUgKFxkKyg/OlwuXGQqKT8pXGIvKSkpDQogICAgICByZXR1cm4gTnVtYmVyKG1hdGNoWzFdKSA+PSA2Ow0KICAgIGVsc2UgaWYgKG1hdGNoID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvZ2Vja29cLyhcZHs4fSkvaSkpDQogICAgICByZXR1cm4gTnVtYmVyKG1hdGNoWzFdKSA+PSAyMDA1MDkwMTsNCiAgICBlbHNlIGlmIChtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrKS8pKQ0KICAgICAgcmV0dXJuIE51bWJlcihtYXRjaFsxXSkgPj0gNTI1Ow0KICAgIGVsc2UNCiAgICAgIHJldHVybiBudWxsOw0KICB9Ow0KDQogIHJldHVybiBDb2RlTWlycm9yOw0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/editor.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogVGhlIEVkaXRvciBvYmplY3QgbWFuYWdlcyB0aGUgY29udGVudCBvZiB0aGUgZWRpdGFibGUgZnJhbWUuIEl0DQogKiBjYXRjaGVzIGV2ZW50cywgY29sb3VycyBub2RlcywgYW5kIGluZGVudHMgbGluZXMuIFRoaXMgZmlsZSBhbHNvDQogKiBob2xkcyBzb21lIGZ1bmN0aW9ucyBmb3IgdHJhbnNmb3JtaW5nIGFyYml0cmFyeSBET00gc3RydWN0dXJlcyBpbnRvDQogKiBwbGFpbiBzZXF1ZW5jZXMgb2YgPHNwYW4+IGFuZCA8YnI+IGVsZW1lbnRzDQogKi8NCg0KdmFyIGludGVybmV0RXhwbG9yZXIgPSBkb2N1bWVudC5zZWxlY3Rpb24gJiYgd2luZG93LkFjdGl2ZVhPYmplY3QgJiYgL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7DQp2YXIgd2Via2l0ID0gL0FwcGxlV2ViS2l0Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOw0KdmFyIHNhZmFyaSA9IC9BcHBsZSBDb21wdXRlciwgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpOw0KdmFyIGdlY2tvID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvZ2Vja29cLyhcZHs4fSkvaSk7DQppZiAoZ2Vja28pIGdlY2tvID0gTnVtYmVyKGdlY2tvWzFdKTsNCnZhciBtYWMgPSAvTWFjLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk7DQoNCi8vIFRPRE8gdGhpcyBpcyByZWxhdGVkIHRvIHRoZSBiYWNrc3BhY2UtYXQtZW5kLW9mLWxpbmUgYnVnLiBSZW1vdmUNCi8vIHRoaXMgaWYgT3BlcmEgZ2V0cyB0aGVpciBhY3QgdG9nZXRoZXIsIG1ha2UgdGhlIHZlcnNpb24gY2hlY2sgbW9yZQ0KLy8gYnJvYWQgaWYgdGhleSBkb24ndC4NCnZhciBicm9rZW5PcGVyYSA9IHdpbmRvdy5vcGVyYSAmJiAvVmVyc2lvblwvMTAuWzU2XS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsNCi8vIFRPRE8gcmVtb3ZlIHRoaXMgb25jZSBXZWJLaXQgNTMzIGJlY29tZXMgbGVzcyBjb21tb24uDQp2YXIgc2xvd1dlYmtpdCA9IC9BcHBsZVdlYktpdFwvNTMzLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOw0KDQovLyBNYWtlIHN1cmUgYSBzdHJpbmcgZG9lcyBub3QgY29udGFpbiB0d28gY29uc2VjdXRpdmUgJ2NvbGxhcHNlYWJsZScNCi8vIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4NCmZ1bmN0aW9uIG1ha2VXaGl0ZVNwYWNlKG4pIHsNCiAgdmFyIGJ1ZmZlciA9IFtdLCBuYiA9IHRydWU7DQogIGZvciAoOyBuID4gMDsgbi0tKSB7DQogICAgYnVmZmVyLnB1c2goKG5iIHx8IG4gPT0gMSkgPyBuYnNwIDogIiAiKTsNCiAgICBuYiBePSB0cnVlOw0KICB9DQogIHJldHVybiBidWZmZXIuam9pbigiIik7DQp9DQoNCi8vIENyZWF0ZSBhIHNldCBvZiB3aGl0ZS1zcGFjZSBjaGFyYWN0ZXJzIHRoYXQgd2lsbCBub3QgYmUgY29sbGFwc2VkDQovLyBieSB0aGUgYnJvd3NlciwgYnV0IHdpbGwgbm90IGJyZWFrIHRleHQtd3JhcHBpbmcgZWl0aGVyLg0KZnVuY3Rpb24gZml4U3BhY2VzKHN0cmluZykgew0KICBpZiAoc3RyaW5nLmNoYXJBdCgwKSA9PSAiICIpIHN0cmluZyA9IG5ic3AgKyBzdHJpbmcuc2xpY2UoMSk7DQogIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXHQvZywgZnVuY3Rpb24oKSB7cmV0dXJuIG1ha2VXaGl0ZVNwYWNlKGluZGVudFVuaXQpO30pDQogICAgLnJlcGxhY2UoL1sgXHUwMGEwXXsyLH0vZywgZnVuY3Rpb24ocykge3JldHVybiBtYWtlV2hpdGVTcGFjZShzLmxlbmd0aCk7fSk7DQp9DQoNCmZ1bmN0aW9uIGNsZWFuVGV4dCh0ZXh0KSB7DQogIHJldHVybiB0ZXh0LnJlcGxhY2UoL1x1MDBhMC9nLCAiICIpLnJlcGxhY2UoL1x1MjAwYi9nLCAiIik7DQp9DQoNCi8vIENyZWF0ZSBhIFNQQU4gbm9kZSB3aXRoIHRoZSBleHBlY3RlZCBwcm9wZXJ0aWVzIGZvciBkb2N1bWVudCBwYXJ0DQovLyBzcGFucy4NCmZ1bmN0aW9uIG1ha2VQYXJ0U3Bhbih2YWx1ZSkgew0KICB2YXIgdGV4dCA9IHZhbHVlOw0KICBpZiAodmFsdWUubm9kZVR5cGUgPT0gMykgdGV4dCA9IHZhbHVlLm5vZGVWYWx1ZTsNCiAgZWxzZSB2YWx1ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOw0KDQogIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOw0KICBzcGFuLmlzUGFydCA9IHRydWU7DQogIHNwYW4uYXBwZW5kQ2hpbGQodmFsdWUpOw0KICBzcGFuLmN1cnJlbnRUZXh0ID0gdGV4dDsNCiAgcmV0dXJuIHNwYW47DQp9DQoNCmZ1bmN0aW9uIGFsd2F5c1plcm8oKSB7cmV0dXJuIDA7fQ0KDQovLyBPbiB3ZWJraXQsIHdoZW4gdGhlIGxhc3QgQlIgb2YgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgdGV4dA0KLy8gYmVoaW5kIGl0LCB0aGUgY3Vyc29yIGNhbiBub3QgYmUgcHV0IG9uIHRoZSBsaW5lIGFmdGVyIGl0LiBUaGlzDQovLyBtYWtlcyBwcmVzc2luZyBlbnRlciBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBvY2Nhc2lvbmFsbHkgZG8NCi8vIG5vdGhpbmcgKG9yIGF0IGxlYXN0IHNlZW0gdG8gZG8gbm90aGluZykuIFRvIHdvcmsgYXJvdW5kIGl0LCB0aGlzDQovLyBmdW5jdGlvbiBtYWtlcyBzdXJlIHRoZSBkb2N1bWVudCBlbmRzIHdpdGggYSBzcGFuIGNvbnRhaW5pbmcgYQ0KLy8gemVyby13aWR0aCBzcGFjZSBjaGFyYWN0ZXIuIFRoZSB0cmF2ZXJzZURPTSBpdGVyYXRvciBmaWx0ZXJzIHN1Y2gNCi8vIGNoYXJhY3RlciBvdXQgYWdhaW4sIHNvIHRoYXQgdGhlIHBhcnNlcnMgd29uJ3Qgc2VlIHRoZW0uIFRoaXMNCi8vIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIGEgZmV3IHN0cmF0ZWdpYyBwbGFjZXMgdG8gbWFrZSBzdXJlIHRoZQ0KLy8gendzcCBpcyByZXN0b3JlZCBhZnRlciB0aGUgaGlnaGxpZ2h0aW5nIHByb2Nlc3MgZWF0cyBpdC4NCnZhciB3ZWJraXRMYXN0TGluZUhhY2sgPSB3ZWJraXQgPw0KICBmdW5jdGlvbihjb250YWluZXIpIHsNCiAgICB2YXIgbGFzdCA9IGNvbnRhaW5lci5sYXN0Q2hpbGQ7DQogICAgaWYgKCFsYXN0IHx8ICFsYXN0LmhhY2tCUikgew0KICAgICAgdmFyIGJyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKTsNCiAgICAgIGJyLmhhY2tCUiA9IHRydWU7DQogICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYnIpOw0KICAgIH0NCiAgfSA6IGZ1bmN0aW9uKCkge307DQoNCmZ1bmN0aW9uIGFzRWRpdG9yTGluZXMoc3RyaW5nKSB7DQogIHZhciB0YWIgPSBtYWtlV2hpdGVTcGFjZShpbmRlbnRVbml0KTsNCiAgcmV0dXJuIG1hcChzdHJpbmcucmVwbGFjZSgvXHQvZywgdGFiKS5yZXBsYWNlKC9cdTAwYTAvZywgIiAiKS5yZXBsYWNlKC9cclxuPy9nLCAiXG4iKS5zcGxpdCgiXG4iKSwgZml4U3BhY2VzKTsNCn0NCg0KdmFyIEVkaXRvciA9IChmdW5jdGlvbigpew0KICAvLyBUaGUgSFRNTCBlbGVtZW50cyB3aG9zZSBjb250ZW50IHNob3VsZCBiZSBzdWZmaXhlZCBieSBhIG5ld2xpbmUNCiAgLy8gd2hlbiBjb252ZXJ0aW5nIHRoZW0gdG8gZmxhdCB0ZXh0Lg0KICB2YXIgbmV3bGluZUVsZW1lbnRzID0geyJQIjogdHJ1ZSwgIkRJViI6IHRydWUsICJMSSI6IHRydWV9Ow0KDQogIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdHJhdmVyc2VET00uIEZsYXR0ZW5zIGFuIGFyYml0cmFyeSBET00gbm9kZQ0KICAvLyBpbnRvIGFuIGFycmF5IG9mIHRleHRub2RlcyBhbmQgPGJyPiB0YWdzLg0KICBmdW5jdGlvbiBzaW1wbGlmeURPTShyb290LCBhdEVuZCkgew0KICAgIHZhciByZXN1bHQgPSBbXTsNCiAgICB2YXIgbGVhdmluZyA9IHRydWU7DQoNCiAgICBmdW5jdGlvbiBzaW1wbGlmeU5vZGUobm9kZSwgdG9wKSB7DQogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAzKSB7DQogICAgICAgIHZhciB0ZXh0ID0gbm9kZS5ub2RlVmFsdWUgPSBmaXhTcGFjZXMobm9kZS5ub2RlVmFsdWUucmVwbGFjZSgvW1xyXHUyMDBiXS9nLCAiIikucmVwbGFjZSgvXG4vZywgIiAiKSk7DQogICAgICAgIGlmICh0ZXh0Lmxlbmd0aCkgbGVhdmluZyA9IGZhbHNlOw0KICAgICAgICByZXN1bHQucHVzaChub2RlKTsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGlzQlIobm9kZSkgJiYgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGxlYXZpbmcgPSB0cnVlOw0KICAgICAgICByZXN1bHQucHVzaChub2RlKTsNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICBmb3IgKHZhciBuID0gbm9kZS5maXJzdENoaWxkOyBuOyBuID0gbi5uZXh0U2libGluZykgc2ltcGxpZnlOb2RlKG4pOw0KICAgICAgICBpZiAoIWxlYXZpbmcgJiYgbmV3bGluZUVsZW1lbnRzLmhhc093blByb3BlcnR5KG5vZGUubm9kZU5hbWUudG9VcHBlckNhc2UoKSkpIHsNCiAgICAgICAgICBsZWF2aW5nID0gdHJ1ZTsNCiAgICAgICAgICBpZiAoIWF0RW5kIHx8ICF0b3ApDQogICAgICAgICAgICByZXN1bHQucHVzaChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCg0KICAgIHNpbXBsaWZ5Tm9kZShyb290LCB0cnVlKTsNCiAgICByZXR1cm4gcmVzdWx0Ow0KICB9DQoNCiAgLy8gQ3JlYXRlcyBhIE1vY2hpS2l0LXN0eWxlIGl0ZXJhdG9yIHRoYXQgZ29lcyBvdmVyIGEgc2VyaWVzIG9mIERPTQ0KICAvLyBub2Rlcy4gVGhlIHZhbHVlcyBpdCB5aWVsZHMgYXJlIHN0cmluZ3MsIHRoZSB0ZXh0dWFsIGNvbnRlbnQgb2YNCiAgLy8gdGhlIG5vZGVzLiBJdCBtYWtlcyBzdXJlIHRoYXQgYWxsIG5vZGVzIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlDQogIC8vIG9uZSB3aG9zZSB0ZXh0IGlzIGJlaW5nIHlpZWxkZWQgaGF2ZSBiZWVuICdub3JtYWxpemVkJyB0byBiZSBqdXN0DQogIC8vIDxzcGFuPiBhbmQgPGJyPiBlbGVtZW50cy4NCiAgZnVuY3Rpb24gdHJhdmVyc2VET00oc3RhcnQpew0KICAgIHZhciBub2RlUXVldWUgPSBbXTsNCg0KICAgIC8vIENyZWF0ZSBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zZXJ0IG5vZGVzIGFmdGVyIHRoZQ0KICAgIC8vIG9uZSBnaXZlbiBhcyBhcmd1bWVudC4NCiAgICBmdW5jdGlvbiBwb2ludEF0KG5vZGUpew0KICAgICAgdmFyIHBhcmVudCA9IG5vZGUucGFyZW50Tm9kZTsNCiAgICAgIHZhciBuZXh0ID0gbm9kZS5uZXh0U2libGluZzsNCiAgICAgIHJldHVybiBmdW5jdGlvbihuZXdub2RlKSB7DQogICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobmV3bm9kZSwgbmV4dCk7DQogICAgICB9Ow0KICAgIH0NCiAgICB2YXIgcG9pbnQgPSBudWxsOw0KDQogICAgLy8gVGhpcyBhbiBPcGVyYS1zcGVjaWZpYyBoYWNrIC0tIGFsd2F5cyBpbnNlcnQgYW4gZW1wdHkgc3Bhbg0KICAgIC8vIGJldHdlZW4gdHdvIEJScywgYmVjYXVzZSBPcGVyYSdzIGN1cnNvciBjb2RlIGdldHMgdGVycmlibHkNCiAgICAvLyBjb25mdXNlZCB3aGVuIHRoZSBjdXJzb3IgaXMgYmV0d2VlbiB0d28gQlJzLg0KICAgIHZhciBhZnRlckJSID0gdHJ1ZTsNCg0KICAgIC8vIEluc2VydCBhIG5vcm1hbGl6ZWQgbm9kZSBhdCB0aGUgY3VycmVudCBwb2ludC4gSWYgaXQgaXMgYSB0ZXh0DQogICAgLy8gbm9kZSwgd3JhcCBpdCBpbiBhIDxzcGFuPiwgYW5kIGdpdmUgdGhhdCBzcGFuIGEgY3VycmVudFRleHQNCiAgICAvLyBwcm9wZXJ0eSAtLSB0aGlzIGlzIHVzZWQgdG8gY2FjaGUgdGhlIG5vZGVWYWx1ZSwgYmVjYXVzZQ0KICAgIC8vIGRpcmVjdGx5IGFjY2Vzc2luZyBub2RlVmFsdWUgaXMgaG9ycmlibHkgc2xvdyBvbiBzb21lIGJyb3dzZXJzLg0KICAgIC8vIFRoZSBkaXJ0eSBwcm9wZXJ0eSBpcyB1c2VkIGJ5IHRoZSBoaWdobGlnaHRlciB0byBkZXRlcm1pbmUNCiAgICAvLyB3aGljaCBwYXJ0cyBvZiB0aGUgZG9jdW1lbnQgaGF2ZSB0byBiZSByZS1oaWdobGlnaHRlZC4NCiAgICBmdW5jdGlvbiBpbnNlcnRQYXJ0KHBhcnQpew0KICAgICAgdmFyIHRleHQgPSAiXG4iOw0KICAgICAgaWYgKHBhcnQubm9kZVR5cGUgPT0gMykgew0KICAgICAgICBzZWxlY3Quc25hcHNob3RDaGFuZ2VkKCk7DQogICAgICAgIHBhcnQgPSBtYWtlUGFydFNwYW4ocGFydCk7DQogICAgICAgIHRleHQgPSBwYXJ0LmN1cnJlbnRUZXh0Ow0KICAgICAgICBhZnRlckJSID0gZmFsc2U7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgaWYgKGFmdGVyQlIgJiYgd2luZG93Lm9wZXJhKQ0KICAgICAgICAgIHBvaW50KG1ha2VQYXJ0U3BhbigiIikpOw0KICAgICAgICBhZnRlckJSID0gdHJ1ZTsNCiAgICAgIH0NCiAgICAgIHBhcnQuZGlydHkgPSB0cnVlOw0KICAgICAgbm9kZVF1ZXVlLnB1c2gocGFydCk7DQogICAgICBwb2ludChwYXJ0KTsNCiAgICAgIHJldHVybiB0ZXh0Ow0KICAgIH0NCg0KICAgIC8vIEV4dHJhY3QgdGhlIHRleHQgYW5kIG5ld2xpbmVzIGZyb20gYSBET00gbm9kZSwgaW5zZXJ0IHRoZW0gaW50bw0KICAgIC8vIHRoZSBkb2N1bWVudCwgYW5kIHJldHVybiB0aGUgdGV4dHVhbCBjb250ZW50LiBVc2VkIHRvIHJlcGxhY2UNCiAgICAvLyBub24tbm9ybWFsaXplZCBub2Rlcy4NCiAgICBmdW5jdGlvbiB3cml0ZU5vZGUobm9kZSwgZW5kKSB7DQogICAgICB2YXIgc2ltcGxpZmllZCA9IHNpbXBsaWZ5RE9NKG5vZGUsIGVuZCk7DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpbXBsaWZpZWQubGVuZ3RoOyBpKyspDQogICAgICAgIHNpbXBsaWZpZWRbaV0gPSBpbnNlcnRQYXJ0KHNpbXBsaWZpZWRbaV0pOw0KICAgICAgcmV0dXJuIHNpbXBsaWZpZWQuam9pbigiIik7DQogICAgfQ0KDQogICAgLy8gQ2hlY2sgd2hldGhlciBhIG5vZGUgaXMgYSBub3JtYWxpemVkIDxzcGFuPiBlbGVtZW50Lg0KICAgIGZ1bmN0aW9uIHBhcnROb2RlKG5vZGUpew0KICAgICAgaWYgKG5vZGUuaXNQYXJ0ICYmIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMSAmJiBub2RlLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT0gMykgew0KICAgICAgICB2YXIgdGV4dCA9IG5vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWU7DQogICAgICAgIG5vZGUuZGlydHkgPSBub2RlLmRpcnR5IHx8IHRleHQgIT0gbm9kZS5jdXJyZW50VGV4dDsNCiAgICAgICAgbm9kZS5jdXJyZW50VGV4dCA9IHRleHQ7DQogICAgICAgIHJldHVybiAhL1tcblx0XHJdLy50ZXN0KG5vZGUuY3VycmVudFRleHQpOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCg0KICAgIC8vIEFkdmFuY2UgdG8gbmV4dCBub2RlLCByZXR1cm4gc3RyaW5nIGZvciBjdXJyZW50IG5vZGUuDQogICAgZnVuY3Rpb24gbmV4dCgpIHsNCiAgICAgIGlmICghc3RhcnQpIHRocm93IFN0b3BJdGVyYXRpb247DQogICAgICB2YXIgbm9kZSA9IHN0YXJ0Ow0KICAgICAgc3RhcnQgPSBub2RlLm5leHRTaWJsaW5nOw0KDQogICAgICBpZiAocGFydE5vZGUobm9kZSkpew0KICAgICAgICBub2RlUXVldWUucHVzaChub2RlKTsNCiAgICAgICAgYWZ0ZXJCUiA9IGZhbHNlOw0KICAgICAgICByZXR1cm4gbm9kZS5jdXJyZW50VGV4dDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGlzQlIobm9kZSkpIHsNCiAgICAgICAgaWYgKGFmdGVyQlIgJiYgd2luZG93Lm9wZXJhKQ0KICAgICAgICAgIG5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobWFrZVBhcnRTcGFuKCIiKSwgbm9kZSk7DQogICAgICAgIG5vZGVRdWV1ZS5wdXNoKG5vZGUpOw0KICAgICAgICBhZnRlckJSID0gdHJ1ZTsNCiAgICAgICAgcmV0dXJuICJcbiI7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgdmFyIGVuZCA9ICFub2RlLm5leHRTaWJsaW5nOw0KICAgICAgICBwb2ludCA9IHBvaW50QXQobm9kZSk7DQogICAgICAgIHJlbW92ZUVsZW1lbnQobm9kZSk7DQogICAgICAgIHJldHVybiB3cml0ZU5vZGUobm9kZSwgZW5kKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBNb2NoaUtpdCBpdGVyYXRvcnMgYXJlIG9iamVjdHMgd2l0aCBhIG5leHQgZnVuY3Rpb24gdGhhdA0KICAgIC8vIHJldHVybnMgdGhlIG5leHQgdmFsdWUgb3IgdGhyb3dzIFN0b3BJdGVyYXRpb24gd2hlbiB0aGVyZSBhcmUNCiAgICAvLyBubyBtb3JlIHZhbHVlcy4NCiAgICByZXR1cm4ge25leHQ6IG5leHQsIG5vZGVzOiBub2RlUXVldWV9Ow0KICB9DQoNCiAgLy8gRGV0ZXJtaW5lIHRoZSB0ZXh0IHNpemUgb2YgYSBwcm9jZXNzZWQgbm9kZS4NCiAgZnVuY3Rpb24gbm9kZVNpemUobm9kZSkgew0KICAgIHJldHVybiBpc0JSKG5vZGUpID8gMSA6IG5vZGUuY3VycmVudFRleHQubGVuZ3RoOw0KICB9DQoNCiAgLy8gU2VhcmNoIGJhY2t3YXJkcyB0aHJvdWdoIHRoZSB0b3AtbGV2ZWwgbm9kZXMgdW50aWwgdGhlIG5leHQgQlIgb3INCiAgLy8gdGhlIHN0YXJ0IG9mIHRoZSBmcmFtZS4NCiAgZnVuY3Rpb24gc3RhcnRPZkxpbmUobm9kZSkgew0KICAgIHdoaWxlIChub2RlICYmICFpc0JSKG5vZGUpKSBub2RlID0gbm9kZS5wcmV2aW91c1NpYmxpbmc7DQogICAgcmV0dXJuIG5vZGU7DQogIH0NCiAgZnVuY3Rpb24gZW5kT2ZMaW5lKG5vZGUsIGNvbnRhaW5lcikgew0KICAgIGlmICghbm9kZSkgbm9kZSA9IGNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgIGVsc2UgaWYgKGlzQlIobm9kZSkpIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOw0KDQogICAgd2hpbGUgKG5vZGUgJiYgIWlzQlIobm9kZSkpIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgIHJldHVybiBub2RlOw0KICB9DQoNCiAgZnVuY3Rpb24gdGltZSgpIHtyZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7fQ0KDQogIC8vIENsaWVudCBpbnRlcmZhY2UgZm9yIHNlYXJjaGluZyB0aGUgY29udGVudCBvZiB0aGUgZWRpdG9yLiBDcmVhdGUNCiAgLy8gdGhlc2UgYnkgY2FsbGluZyBDb2RlTWlycm9yLmdldFNlYXJjaEN1cnNvci4gVG8gdXNlLCBjYWxsDQogIC8vIGZpbmROZXh0IG9uIHRoZSByZXN1bHRpbmcgb2JqZWN0IC0tIHRoaXMgcmV0dXJucyBhIGJvb2xlYW4NCiAgLy8gaW5kaWNhdGluZyB3aGV0aGVyIGFueXRoaW5nIHdhcyBmb3VuZCwgYW5kIGNhbiBiZSBjYWxsZWQgYWdhaW4gdG8NCiAgLy8gc2tpcCB0byB0aGUgbmV4dCBmaW5kLiBVc2UgdGhlIHNlbGVjdCBhbmQgcmVwbGFjZSBtZXRob2RzIHRvDQogIC8vIGFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIHRoZSBmb3VuZCBsb2NhdGlvbnMuDQogIGZ1bmN0aW9uIFNlYXJjaEN1cnNvcihlZGl0b3IsIHBhdHRlcm4sIGZyb20sIGNhc2VGb2xkKSB7DQogICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7DQogICAgdGhpcy5oaXN0b3J5ID0gZWRpdG9yLmhpc3Rvcnk7DQogICAgdGhpcy5oaXN0b3J5LmNvbW1pdCgpOw0KICAgIHRoaXMudmFsaWQgPSAhIXBhdHRlcm47DQogICAgdGhpcy5hdE9jY3VycmVuY2UgPSBmYWxzZTsNCiAgICBpZiAoY2FzZUZvbGQgPT0gdW5kZWZpbmVkKSBjYXNlRm9sZCA9IHR5cGVvZiBwYXR0ZXJuID09ICJzdHJpbmciICYmIHBhdHRlcm4gPT0gcGF0dGVybi50b0xvd2VyQ2FzZSgpOw0KDQogICAgZnVuY3Rpb24gZ2V0VGV4dChub2RlKXsNCiAgICAgIHZhciBsaW5lID0gY2xlYW5UZXh0KGVkaXRvci5oaXN0b3J5LnRleHRBZnRlcihub2RlKSk7DQogICAgICByZXR1cm4gKGNhc2VGb2xkID8gbGluZS50b0xvd2VyQ2FzZSgpIDogbGluZSk7DQogICAgfQ0KDQogICAgdmFyIHRvcFBvcyA9IHtub2RlOiBudWxsLCBvZmZzZXQ6IDB9LCBzZWxmID0gdGhpczsNCiAgICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PSAib2JqZWN0IiAmJiB0eXBlb2YgZnJvbS5jaGFyYWN0ZXIgPT0gIm51bWJlciIpIHsNCiAgICAgIGVkaXRvci5jaGVja0xpbmUoZnJvbS5saW5lKTsNCiAgICAgIHZhciBwb3MgPSB7bm9kZTogZnJvbS5saW5lLCBvZmZzZXQ6IGZyb20uY2hhcmFjdGVyfTsNCiAgICAgIHRoaXMucG9zID0ge2Zyb206IHBvcywgdG86IHBvc307DQogICAgfQ0KICAgIGVsc2UgaWYgKGZyb20pIHsNCiAgICAgIHRoaXMucG9zID0ge2Zyb206IHNlbGVjdC5jdXJzb3JQb3MoZWRpdG9yLmNvbnRhaW5lciwgdHJ1ZSkgfHwgdG9wUG9zLA0KICAgICAgICAgICAgICAgICAgdG86IHNlbGVjdC5jdXJzb3JQb3MoZWRpdG9yLmNvbnRhaW5lciwgZmFsc2UpIHx8IHRvcFBvc307DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgdGhpcy5wb3MgPSB7ZnJvbTogdG9wUG9zLCB0bzogdG9wUG9zfTsNCiAgICB9DQoNCiAgICBpZiAodHlwZW9mIHBhdHRlcm4gIT0gInN0cmluZyIpIHsgLy8gUmVnZXhwIG1hdGNoDQogICAgICB0aGlzLm1hdGNoZXMgPSBmdW5jdGlvbihyZXZlcnNlLCBub2RlLCBvZmZzZXQpIHsNCiAgICAgICAgaWYgKHJldmVyc2UpIHsNCiAgICAgICAgICB2YXIgbGluZSA9IGdldFRleHQobm9kZSkuc2xpY2UoMCwgb2Zmc2V0KSwgbWF0Y2ggPSBsaW5lLm1hdGNoKHBhdHRlcm4pLCBzdGFydCA9IDA7DQogICAgICAgICAgd2hpbGUgKG1hdGNoKSB7DQogICAgICAgICAgICB2YXIgaW5kID0gbGluZS5pbmRleE9mKG1hdGNoWzBdKTsNCiAgICAgICAgICAgIHN0YXJ0ICs9IGluZDsNCiAgICAgICAgICAgIGxpbmUgPSBsaW5lLnNsaWNlKGluZCArIDEpOw0KICAgICAgICAgICAgdmFyIG5ld21hdGNoID0gbGluZS5tYXRjaChwYXR0ZXJuKTsNCiAgICAgICAgICAgIGlmIChuZXdtYXRjaCkgbWF0Y2ggPSBuZXdtYXRjaDsNCiAgICAgICAgICAgIGVsc2UgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHZhciBsaW5lID0gZ2V0VGV4dChub2RlKS5zbGljZShvZmZzZXQpLCBtYXRjaCA9IGxpbmUubWF0Y2gocGF0dGVybiksDQogICAgICAgICAgICAgIHN0YXJ0ID0gbWF0Y2ggJiYgb2Zmc2V0ICsgbGluZS5pbmRleE9mKG1hdGNoWzBdKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobWF0Y2gpIHsNCiAgICAgICAgICBzZWxmLmN1cnJlbnRNYXRjaCA9IG1hdGNoOw0KICAgICAgICAgIHJldHVybiB7ZnJvbToge25vZGU6IG5vZGUsIG9mZnNldDogc3RhcnR9LA0KICAgICAgICAgICAgICAgICAgdG86IHtub2RlOiBub2RlLCBvZmZzZXQ6IHN0YXJ0ICsgbWF0Y2hbMF0ubGVuZ3RofX07DQogICAgICAgIH0NCiAgICAgIH07DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgaWYgKGNhc2VGb2xkKSBwYXR0ZXJuID0gcGF0dGVybi50b0xvd2VyQ2FzZSgpOw0KICAgIC8vIENyZWF0ZSBhIG1hdGNoZXIgZnVuY3Rpb24gYmFzZWQgb24gdGhlIGtpbmQgb2Ygc3RyaW5nIHdlIGhhdmUuDQogICAgdmFyIHRhcmdldCA9IHBhdHRlcm4uc3BsaXQoIlxuIik7DQogICAgdGhpcy5tYXRjaGVzID0gKHRhcmdldC5sZW5ndGggPT0gMSkgPw0KICAgICAgLy8gRm9yIG9uZS1saW5lIHN0cmluZ3MsIHNlYXJjaGluZyBjYW4gYmUgZG9uZSBzaW1wbHkgYnkgY2FsbGluZw0KICAgICAgLy8gaW5kZXhPZiBvciBsYXN0SW5kZXhPZiBvbiB0aGUgY3VycmVudCBsaW5lLg0KICAgICAgZnVuY3Rpb24ocmV2ZXJzZSwgbm9kZSwgb2Zmc2V0KSB7DQogICAgICAgIHZhciBsaW5lID0gZ2V0VGV4dChub2RlKSwgbGVuID0gcGF0dGVybi5sZW5ndGgsIG1hdGNoOw0KICAgICAgICBpZiAocmV2ZXJzZSA/IChvZmZzZXQgPj0gbGVuICYmIChtYXRjaCA9IGxpbmUubGFzdEluZGV4T2YocGF0dGVybiwgb2Zmc2V0IC0gbGVuKSkgIT0gLTEpDQogICAgICAgICAgICAgICAgICAgIDogKG1hdGNoID0gbGluZS5pbmRleE9mKHBhdHRlcm4sIG9mZnNldCkpICE9IC0xKQ0KICAgICAgICAgIHJldHVybiB7ZnJvbToge25vZGU6IG5vZGUsIG9mZnNldDogbWF0Y2h9LA0KICAgICAgICAgICAgICAgICAgdG86IHtub2RlOiBub2RlLCBvZmZzZXQ6IG1hdGNoICsgbGVufX07DQogICAgICB9IDoNCiAgICAgIC8vIE11bHRpLWxpbmUgc3RyaW5ncyByZXF1aXJlIGludGVybmFsIGl0ZXJhdGlvbiBvdmVyIGxpbmVzLCBhbmQNCiAgICAgIC8vIHNvbWUgY2x1bmt5IGNoZWNrcyB0byBtYWtlIHN1cmUgdGhlIGZpcnN0IG1hdGNoIGVuZHMgYXQgdGhlDQogICAgICAvLyBlbmQgb2YgdGhlIGxpbmUgYW5kIHRoZSBsYXN0IG1hdGNoIHN0YXJ0cyBhdCB0aGUgc3RhcnQuDQogICAgICBmdW5jdGlvbihyZXZlcnNlLCBub2RlLCBvZmZzZXQpIHsNCiAgICAgICAgdmFyIGlkeCA9IChyZXZlcnNlID8gdGFyZ2V0Lmxlbmd0aCAtIDEgOiAwKSwgbWF0Y2ggPSB0YXJnZXRbaWR4XSwgbGluZSA9IGdldFRleHQobm9kZSk7DQogICAgICAgIHZhciBvZmZzZXRBID0gKHJldmVyc2UgPyBsaW5lLmluZGV4T2YobWF0Y2gpICsgbWF0Y2gubGVuZ3RoIDogbGluZS5sYXN0SW5kZXhPZihtYXRjaCkpOw0KICAgICAgICBpZiAocmV2ZXJzZSA/IG9mZnNldEEgPj0gb2Zmc2V0IHx8IG9mZnNldEEgIT0gbWF0Y2gubGVuZ3RoDQogICAgICAgICAgICAgICAgICAgIDogb2Zmc2V0QSA8PSBvZmZzZXQgfHwgb2Zmc2V0QSAhPSBsaW5lLmxlbmd0aCAtIG1hdGNoLmxlbmd0aCkNCiAgICAgICAgICByZXR1cm47DQoNCiAgICAgICAgdmFyIHBvcyA9IG5vZGU7DQogICAgICAgIHdoaWxlICh0cnVlKSB7DQogICAgICAgICAgaWYgKHJldmVyc2UgJiYgIXBvcykgcmV0dXJuOw0KICAgICAgICAgIHBvcyA9IChyZXZlcnNlID8gdGhpcy5oaXN0b3J5Lm5vZGVCZWZvcmUocG9zKSA6IHRoaXMuaGlzdG9yeS5ub2RlQWZ0ZXIocG9zKSApOw0KICAgICAgICAgIGlmICghcmV2ZXJzZSAmJiAhcG9zKSByZXR1cm47DQoNCiAgICAgICAgICBsaW5lID0gZ2V0VGV4dChwb3MpOw0KICAgICAgICAgIG1hdGNoID0gdGFyZ2V0W3JldmVyc2UgPyAtLWlkeCA6ICsraWR4XTsNCg0KICAgICAgICAgIGlmIChpZHggPiAwICYmIGlkeCA8IHRhcmdldC5sZW5ndGggLSAxKSB7DQogICAgICAgICAgICBpZiAobGluZSAhPSBtYXRjaCkgcmV0dXJuOw0KICAgICAgICAgICAgZWxzZSBjb250aW51ZTsNCiAgICAgICAgICB9DQogICAgICAgICAgdmFyIG9mZnNldEIgPSAocmV2ZXJzZSA/IGxpbmUubGFzdEluZGV4T2YobWF0Y2gpIDogbGluZS5pbmRleE9mKG1hdGNoKSArIG1hdGNoLmxlbmd0aCk7DQogICAgICAgICAgaWYgKHJldmVyc2UgPyBvZmZzZXRCICE9IGxpbmUubGVuZ3RoIC0gbWF0Y2gubGVuZ3RoIDogb2Zmc2V0QiAhPSBtYXRjaC5sZW5ndGgpDQogICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgcmV0dXJuIHtmcm9tOiB7bm9kZTogcmV2ZXJzZSA/IHBvcyA6IG5vZGUsIG9mZnNldDogcmV2ZXJzZSA/IG9mZnNldEIgOiBvZmZzZXRBfSwNCiAgICAgICAgICAgICAgICAgIHRvOiB7bm9kZTogcmV2ZXJzZSA/IG5vZGUgOiBwb3MsIG9mZnNldDogcmV2ZXJzZSA/IG9mZnNldEEgOiBvZmZzZXRCfX07DQogICAgICAgIH0NCiAgICAgIH07DQogIH0NCg0KICBTZWFyY2hDdXJzb3IucHJvdG90eXBlID0gew0KICAgIGZpbmROZXh0OiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5maW5kKGZhbHNlKTt9LA0KICAgIGZpbmRQcmV2aW91czogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZmluZCh0cnVlKTt9LA0KDQogICAgZmluZDogZnVuY3Rpb24ocmV2ZXJzZSkgew0KICAgICAgaWYgKCF0aGlzLnZhbGlkKSByZXR1cm4gZmFsc2U7DQoNCiAgICAgIHZhciBzZWxmID0gdGhpcywgcG9zID0gcmV2ZXJzZSA/IHRoaXMucG9zLmZyb20gOiB0aGlzLnBvcy50bywNCiAgICAgICAgICBub2RlID0gcG9zLm5vZGUsIG9mZnNldCA9IHBvcy5vZmZzZXQ7DQogICAgICAvLyBSZXNldCB0aGUgY3Vyc29yIGlmIHRoZSBjdXJyZW50IGxpbmUgaXMgbm8gbG9uZ2VyIGluIHRoZSBET00gdHJlZS4NCiAgICAgIGlmIChub2RlICYmICFub2RlLnBhcmVudE5vZGUpIHsNCiAgICAgICAgbm9kZSA9IG51bGw7IG9mZnNldCA9IDA7DQogICAgICB9DQogICAgICBmdW5jdGlvbiBzYXZlUG9zQW5kRmFpbCgpIHsNCiAgICAgICAgdmFyIHBvcyA9IHtub2RlOiBub2RlLCBvZmZzZXQ6IG9mZnNldH07DQogICAgICAgIHNlbGYucG9zID0ge2Zyb206IHBvcywgdG86IHBvc307DQogICAgICAgIHNlbGYuYXRPY2N1cnJlbmNlID0gZmFsc2U7DQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIH0NCg0KICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgaWYgKHRoaXMucG9zID0gdGhpcy5tYXRjaGVzKHJldmVyc2UsIG5vZGUsIG9mZnNldCkpIHsNCiAgICAgICAgICB0aGlzLmF0T2NjdXJyZW5jZSA9IHRydWU7DQogICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAocmV2ZXJzZSkgew0KICAgICAgICAgIGlmICghbm9kZSkgcmV0dXJuIHNhdmVQb3NBbmRGYWlsKCk7DQogICAgICAgICAgbm9kZSA9IHRoaXMuaGlzdG9yeS5ub2RlQmVmb3JlKG5vZGUpOw0KICAgICAgICAgIG9mZnNldCA9IHRoaXMuaGlzdG9yeS50ZXh0QWZ0ZXIobm9kZSkubGVuZ3RoOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHZhciBuZXh0ID0gdGhpcy5oaXN0b3J5Lm5vZGVBZnRlcihub2RlKTsNCiAgICAgICAgICBpZiAoIW5leHQpIHsNCiAgICAgICAgICAgIG9mZnNldCA9IHRoaXMuaGlzdG9yeS50ZXh0QWZ0ZXIobm9kZSkubGVuZ3RoOw0KICAgICAgICAgICAgcmV0dXJuIHNhdmVQb3NBbmRGYWlsKCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIG5vZGUgPSBuZXh0Ow0KICAgICAgICAgIG9mZnNldCA9IDA7DQogICAgICAgIH0gICAgICAgIA0KICAgICAgfQ0KICAgIH0sDQoNCiAgICBzZWxlY3Q6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMuYXRPY2N1cnJlbmNlKSB7DQogICAgICAgIHNlbGVjdC5zZXRDdXJzb3JQb3ModGhpcy5lZGl0b3IuY29udGFpbmVyLCB0aGlzLnBvcy5mcm9tLCB0aGlzLnBvcy50byk7DQogICAgICAgIHNlbGVjdC5zY3JvbGxUb0N1cnNvcih0aGlzLmVkaXRvci5jb250YWluZXIpOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICByZXBsYWNlOiBmdW5jdGlvbihzdHJpbmcpIHsNCiAgICAgIGlmICh0aGlzLmF0T2NjdXJyZW5jZSkgew0KICAgICAgICB2YXIgZnJhZ21lbnRzID0gdGhpcy5jdXJyZW50TWF0Y2g7DQogICAgICAgIGlmIChmcmFnbWVudHMpDQogICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xcKFxkKS8sIGZ1bmN0aW9uKG0sIGkpe3JldHVybiBmcmFnbWVudHNbaV07fSk7DQogICAgICAgIHZhciBlbmQgPSB0aGlzLmVkaXRvci5yZXBsYWNlUmFuZ2UodGhpcy5wb3MuZnJvbSwgdGhpcy5wb3MudG8sIHN0cmluZyk7DQogICAgICAgIHRoaXMucG9zLnRvID0gZW5kOw0KICAgICAgICB0aGlzLmF0T2NjdXJyZW5jZSA9IGZhbHNlOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICBwb3NpdGlvbjogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5hdE9jY3VycmVuY2UpDQogICAgICAgIHJldHVybiB7bGluZTogdGhpcy5wb3MuZnJvbS5ub2RlLCBjaGFyYWN0ZXI6IHRoaXMucG9zLmZyb20ub2Zmc2V0fTsNCiAgICB9DQogIH07DQoNCiAgLy8gVGhlIEVkaXRvciBvYmplY3QgaXMgdGhlIG1haW4gaW5zaWRlLXRoZS1pZnJhbWUgaW50ZXJmYWNlLg0KICBmdW5jdGlvbiBFZGl0b3Iob3B0aW9ucykgew0KICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7DQogICAgd2luZG93LmluZGVudFVuaXQgPSBvcHRpb25zLmluZGVudFVuaXQ7DQogICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyID0gZG9jdW1lbnQuYm9keTsNCiAgICB0aGlzLmhpc3RvcnkgPSBuZXcgVW5kb0hpc3RvcnkoY29udGFpbmVyLCBvcHRpb25zLnVuZG9EZXB0aCwgb3B0aW9ucy51bmRvRGVsYXksIHRoaXMpOw0KICAgIHZhciBzZWxmID0gdGhpczsNCg0KICAgIGlmICghRWRpdG9yLlBhcnNlcikNCiAgICAgIHRocm93ICJObyBwYXJzZXIgbG9hZGVkLiI7DQogICAgaWYgKG9wdGlvbnMucGFyc2VyQ29uZmlnICYmIEVkaXRvci5QYXJzZXIuY29uZmlndXJlKQ0KICAgICAgRWRpdG9yLlBhcnNlci5jb25maWd1cmUob3B0aW9ucy5wYXJzZXJDb25maWcpOw0KDQogICAgaWYgKCFvcHRpb25zLnJlYWRPbmx5ICYmICFpbnRlcm5ldEV4cGxvcmVyKQ0KICAgICAgc2VsZWN0LnNldEN1cnNvclBvcyhjb250YWluZXIsIHtub2RlOiBudWxsLCBvZmZzZXQ6IDB9KTsNCg0KICAgIHRoaXMuZGlydHkgPSBbXTsNCiAgICB0aGlzLmltcG9ydENvZGUob3B0aW9ucy5jb250ZW50IHx8ICIiKTsNCiAgICB0aGlzLmhpc3Rvcnkub25DaGFuZ2UgPSBvcHRpb25zLm9uQ2hhbmdlOw0KDQogICAgaWYgKCFvcHRpb25zLnJlYWRPbmx5KSB7DQogICAgICBpZiAob3B0aW9ucy5jb250aW51b3VzU2Nhbm5pbmcgIT09IGZhbHNlKSB7DQogICAgICAgIHRoaXMuc2Nhbm5lciA9IHRoaXMuZG9jdW1lbnRTY2FubmVyKG9wdGlvbnMucGFzc1RpbWUpOw0KICAgICAgICB0aGlzLmRlbGF5U2Nhbm5pbmcoKTsNCiAgICAgIH0NCg0KICAgICAgZnVuY3Rpb24gc2V0RWRpdGFibGUoKSB7DQogICAgICAgIC8vIFVzZSBjb250ZW50RWRpdGFibGUgaW5zdGVhZCBvZiBkZXNpZ25Nb2RlIG9uIElFLCBzaW5jZSBkZXNpZ25Nb2RlIGZyYW1lcw0KICAgICAgICAvLyBjYW4gbm90IHJ1biBhbnkgc2NyaXB0cy4gSXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCB1c2UgY29udGVudEVkaXRhYmxlDQogICAgICAgIC8vIGV2ZXJ5d2hlcmUsIGJ1dCBpdCBpcyBzaWduaWZpY2FudGx5IGZsYWtpZXIgdGhhbiBkZXNpZ25Nb2RlIG9uIGV2ZXJ5DQogICAgICAgIC8vIHNpbmdsZSBub24tSUUgYnJvd3Nlci4NCiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGVudEVkaXRhYmxlICE9IHVuZGVmaW5lZCAmJiBpbnRlcm5ldEV4cGxvcmVyKQ0KICAgICAgICAgIGRvY3VtZW50LmJvZHkuY29udGVudEVkaXRhYmxlID0gInRydWUiOw0KICAgICAgICBlbHNlDQogICAgICAgICAgZG9jdW1lbnQuZGVzaWduTW9kZSA9ICJvbiI7DQoNCiAgICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgd2hlcmUgeW91IGhhdmUgdG8gY2xpY2sgb24gdGhlIGFjdHVhbA0KICAgICAgICAvLyBib2R5IG9mIHRoZSBkb2N1bWVudCB0byBmb2N1cyBpdCBpbiBJRSwgbWFraW5nIGZvY3VzaW5nDQogICAgICAgIC8vIGhhcmQgd2hlbiB0aGUgZG9jdW1lbnQgaXMgc21hbGwuDQogICAgICAgIGlmIChpbnRlcm5ldEV4cGxvcmVyICYmIG9wdGlvbnMuaGVpZ2h0ICE9ICJkeW5hbWljIikNCiAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1pbkhlaWdodCA9ICgNCiAgICAgICAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMiAqIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wIC0gNSkgKyAicHgiOw0KDQogICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5ib3JkZXJXaWR0aCA9ICIwIjsNCiAgICAgICAgaWYgKCFvcHRpb25zLnRleHRXcmFwcGluZykNCiAgICAgICAgICBjb250YWluZXIuc3R5bGUud2hpdGVTcGFjZSA9ICJub3dyYXAiOw0KICAgICAgfQ0KDQogICAgICAvLyBJZiBzZXR0aW5nIHRoZSBmcmFtZSBlZGl0YWJsZSBmYWlscywgdHJ5IGFnYWluIHdoZW4gdGhlIHVzZXINCiAgICAgIC8vIGZvY3VzIGl0IChoYXBwZW5zIHdoZW4gdGhlIGZyYW1lIGlzIG5vdCB2aXNpYmxlIG9uDQogICAgICAvLyBpbml0aWFsaXNhdGlvbiwgaW4gRmlyZWZveCkuDQogICAgICB0cnkgew0KICAgICAgICBzZXRFZGl0YWJsZSgpOw0KICAgICAgfQ0KICAgICAgY2F0Y2goZSkgew0KICAgICAgICB2YXIgZm9jdXNFdmVudCA9IGFkZEV2ZW50SGFuZGxlcihkb2N1bWVudCwgImZvY3VzIiwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgZm9jdXNFdmVudCgpOw0KICAgICAgICAgIHNldEVkaXRhYmxlKCk7DQogICAgICAgIH0sIHRydWUpOw0KICAgICAgfQ0KDQogICAgICBhZGRFdmVudEhhbmRsZXIoZG9jdW1lbnQsICJrZXlkb3duIiwgbWV0aG9kKHRoaXMsICJrZXlEb3duIikpOw0KICAgICAgYWRkRXZlbnRIYW5kbGVyKGRvY3VtZW50LCAia2V5cHJlc3MiLCBtZXRob2QodGhpcywgImtleVByZXNzIikpOw0KICAgICAgYWRkRXZlbnRIYW5kbGVyKGRvY3VtZW50LCAia2V5dXAiLCBtZXRob2QodGhpcywgImtleVVwIikpOw0KDQogICAgICBmdW5jdGlvbiBjdXJzb3JBY3Rpdml0eSgpIHtzZWxmLmN1cnNvckFjdGl2aXR5KGZhbHNlKTt9DQogICAgICBhZGRFdmVudEhhbmRsZXIoaW50ZXJuZXRFeHBsb3JlciA/IGRvY3VtZW50LmJvZHkgOiB3aW5kb3csICJtb3VzZXVwIiwgY3Vyc29yQWN0aXZpdHkpOw0KICAgICAgYWRkRXZlbnRIYW5kbGVyKGRvY3VtZW50LmJvZHksICJjdXQiLCBjdXJzb3JBY3Rpdml0eSk7DQoNCiAgICAgIC8vIHdvcmthcm91bmQgZm9yIGEgZ2Vja28gYnVnIFs/XSB3aGVyZSBnb2luZyBmb3J3YXJkIGFuZCB0aGVuDQogICAgICAvLyBiYWNrIGFnYWluIGJyZWFrcyBkZXNpZ25tb2RlIChubyBtb3JlIGN1cnNvcikNCiAgICAgIGlmIChnZWNrbykNCiAgICAgICAgYWRkRXZlbnRIYW5kbGVyKHdpbmRvdywgInBhZ2VoaWRlIiwgZnVuY3Rpb24oKXtzZWxmLnVubG9hZGVkID0gdHJ1ZTt9KTsNCg0KICAgICAgYWRkRXZlbnRIYW5kbGVyKGRvY3VtZW50LmJvZHksICJwYXN0ZSIsIGZ1bmN0aW9uKGV2ZW50KSB7DQogICAgICAgIGN1cnNvckFjdGl2aXR5KCk7DQogICAgICAgIHZhciB0ZXh0ID0gbnVsbDsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICB2YXIgY2xpcGJvYXJkRGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGEgfHwgd2luZG93LmNsaXBib2FyZERhdGE7DQogICAgICAgICAgaWYgKGNsaXBib2FyZERhdGEpIHRleHQgPSBjbGlwYm9hcmREYXRhLmdldERhdGEoJ1RleHQnKTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaChlKSB7fQ0KICAgICAgICBpZiAodGV4dCAhPT0gbnVsbCkgew0KICAgICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgICAgICBzZWxmLnJlcGxhY2VTZWxlY3Rpb24odGV4dCk7DQogICAgICAgICAgc2VsZWN0LnNjcm9sbFRvQ3Vyc29yKHNlbGYuY29udGFpbmVyKTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQoNCiAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b01hdGNoUGFyZW5zKQ0KICAgICAgICBhZGRFdmVudEhhbmRsZXIoZG9jdW1lbnQuYm9keSwgImNsaWNrIiwgbWV0aG9kKHRoaXMsICJzY2hlZHVsZVBhcmVuSGlnaGxpZ2h0IikpOw0KICAgIH0NCiAgICBlbHNlIGlmICghb3B0aW9ucy50ZXh0V3JhcHBpbmcpIHsNCiAgICAgIGNvbnRhaW5lci5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7DQogICAgfQ0KICB9DQoNCiAgZnVuY3Rpb24gaXNTYWZlS2V5KGNvZGUpIHsNCiAgICByZXR1cm4gKGNvZGUgPj0gMTYgJiYgY29kZSA8PSAxOCkgfHwgLy8gc2hpZnQsIGNvbnRyb2wsIGFsdA0KICAgICAgICAgICAoY29kZSA+PSAzMyAmJiBjb2RlIDw9IDQwKTsgLy8gYXJyb3dzLCBob21lLCBlbmQNCiAgfQ0KDQogIEVkaXRvci5wcm90b3R5cGUgPSB7DQogICAgLy8gSW1wb3J0IGEgcGllY2Ugb2YgY29kZSBpbnRvIHRoZSBlZGl0b3IuDQogICAgaW1wb3J0Q29kZTogZnVuY3Rpb24oY29kZSkgew0KICAgICAgdmFyIGxpbmVzID0gYXNFZGl0b3JMaW5lcyhjb2RlKSwgY2h1bmsgPSAxMDAwOw0KICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuaW5jcmVtZW50YWxMb2FkaW5nIHx8IGxpbmVzLmxlbmd0aCA8IGNodW5rKSB7DQogICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKG51bGwsIG51bGwsIGxpbmVzKTsNCiAgICAgICAgdGhpcy5oaXN0b3J5LnJlc2V0KCk7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgdmFyIGN1ciA9IDAsIHNlbGYgPSB0aGlzOw0KICAgICAgICBmdW5jdGlvbiBhZGRDaHVuaygpIHsNCiAgICAgICAgICB2YXIgY2h1bmtsaW5lcyA9IGxpbmVzLnNsaWNlKGN1ciwgY3VyICsgY2h1bmspOw0KICAgICAgICAgIGNodW5rbGluZXMucHVzaCgiIik7DQogICAgICAgICAgc2VsZi5oaXN0b3J5LnB1c2goc2VsZi5oaXN0b3J5Lm5vZGVCZWZvcmUobnVsbCksIG51bGwsIGNodW5rbGluZXMpOw0KICAgICAgICAgIHNlbGYuaGlzdG9yeS5yZXNldCgpOw0KICAgICAgICAgIGN1ciArPSBjaHVuazsNCiAgICAgICAgICBpZiAoY3VyIDwgbGluZXMubGVuZ3RoKQ0KICAgICAgICAgICAgcGFyZW50LnNldFRpbWVvdXQoYWRkQ2h1bmssIDEwMDApOw0KICAgICAgICB9DQogICAgICAgIGFkZENodW5rKCk7DQogICAgICB9DQogICAgfSwNCg0KICAgIC8vIEV4dHJhY3QgdGhlIGNvZGUgZnJvbSB0aGUgZWRpdG9yLg0KICAgIGdldENvZGU6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkKQ0KICAgICAgICByZXR1cm4gIiI7DQoNCiAgICAgIHZhciBhY2N1bSA9IFtdOw0KICAgICAgc2VsZWN0Lm1hcmtTZWxlY3Rpb24oKTsNCiAgICAgIGZvckVhY2godHJhdmVyc2VET00odGhpcy5jb250YWluZXIuZmlyc3RDaGlsZCksIG1ldGhvZChhY2N1bSwgInB1c2giKSk7DQogICAgICBzZWxlY3Quc2VsZWN0TWFya2VkKCk7DQogICAgICAvLyBPbiB3ZWJraXQsIGRvbid0IGNvdW50IGxhc3QgKGVtcHR5KSBsaW5lIGlmIHRoZSB3ZWJraXRMYXN0TGluZUhhY2sgQlIgaXMgcHJlc2VudA0KICAgICAgaWYgKHdlYmtpdCAmJiB0aGlzLmNvbnRhaW5lci5sYXN0Q2hpbGQuaGFja0JSKQ0KICAgICAgICBhY2N1bS5wb3AoKTsNCiAgICAgIHdlYmtpdExhc3RMaW5lSGFjayh0aGlzLmNvbnRhaW5lcik7DQogICAgICByZXR1cm4gY2xlYW5UZXh0KGFjY3VtLmpvaW4oIiIpKTsNCiAgICB9LA0KDQogICAgY2hlY2tMaW5lOiBmdW5jdGlvbihub2RlKSB7DQogICAgICBpZiAobm9kZSA9PT0gZmFsc2UgfHwgIShub2RlID09IG51bGwgfHwgbm9kZS5wYXJlbnROb2RlID09IHRoaXMuY29udGFpbmVyIHx8IG5vZGUuaGFja0JSKSkNCiAgICAgICAgdGhyb3cgcGFyZW50LkNvZGVNaXJyb3IuSW52YWxpZExpbmVIYW5kbGU7DQogICAgfSwNCg0KICAgIGN1cnNvclBvc2l0aW9uOiBmdW5jdGlvbihzdGFydCkgew0KICAgICAgaWYgKHN0YXJ0ID09IG51bGwpIHN0YXJ0ID0gdHJ1ZTsNCiAgICAgIHZhciBwb3MgPSBzZWxlY3QuY3Vyc29yUG9zKHRoaXMuY29udGFpbmVyLCBzdGFydCk7DQogICAgICBpZiAocG9zKSByZXR1cm4ge2xpbmU6IHBvcy5ub2RlLCBjaGFyYWN0ZXI6IHBvcy5vZmZzZXR9Ow0KICAgICAgZWxzZSByZXR1cm4ge2xpbmU6IG51bGwsIGNoYXJhY3RlcjogMH07DQogICAgfSwNCg0KICAgIGZpcnN0TGluZTogZnVuY3Rpb24oKSB7DQogICAgICByZXR1cm4gbnVsbDsNCiAgICB9LA0KDQogICAgbGFzdExpbmU6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGxhc3QgPSB0aGlzLmNvbnRhaW5lci5sYXN0Q2hpbGQ7DQogICAgICBpZiAobGFzdCkgbGFzdCA9IHN0YXJ0T2ZMaW5lKGxhc3QpOw0KICAgICAgaWYgKGxhc3QgJiYgbGFzdC5oYWNrQlIpIGxhc3QgPSBzdGFydE9mTGluZShsYXN0LnByZXZpb3VzU2libGluZyk7DQogICAgICByZXR1cm4gbGFzdDsNCiAgICB9LA0KDQogICAgbmV4dExpbmU6IGZ1bmN0aW9uKGxpbmUpIHsNCiAgICAgIHRoaXMuY2hlY2tMaW5lKGxpbmUpOw0KICAgICAgdmFyIGVuZCA9IGVuZE9mTGluZShsaW5lLCB0aGlzLmNvbnRhaW5lcik7DQogICAgICBpZiAoIWVuZCB8fCBlbmQuaGFja0JSKSByZXR1cm4gZmFsc2U7DQogICAgICBlbHNlIHJldHVybiBlbmQ7DQogICAgfSwNCg0KICAgIHByZXZMaW5lOiBmdW5jdGlvbihsaW5lKSB7DQogICAgICB0aGlzLmNoZWNrTGluZShsaW5lKTsNCiAgICAgIGlmIChsaW5lID09IG51bGwpIHJldHVybiBmYWxzZTsNCiAgICAgIHJldHVybiBzdGFydE9mTGluZShsaW5lLnByZXZpb3VzU2libGluZyk7DQogICAgfSwNCg0KICAgIHZpc2libGVMaW5lQ291bnQ6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGxpbmUgPSB0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgICAgd2hpbGUgKGxpbmUgJiYgaXNCUihsaW5lKSkgbGluZSA9IGxpbmUubmV4dFNpYmxpbmc7IC8vIEJSIGhlaWdodHMgYXJlIHVucmVsaWFibGUNCiAgICAgIGlmICghbGluZSkgcmV0dXJuIGZhbHNlOw0KICAgICAgdmFyIGlubmVySGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodA0KICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQNCiAgICAgICAgICAgICAgICAgICAgICAgICB8fCBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCk7DQogICAgICByZXR1cm4gTWF0aC5mbG9vcihpbm5lckhlaWdodCAvIGxpbmUub2Zmc2V0SGVpZ2h0KTsNCiAgICB9LA0KDQogICAgc2VsZWN0TGluZXM6IGZ1bmN0aW9uKHN0YXJ0TGluZSwgc3RhcnRPZmZzZXQsIGVuZExpbmUsIGVuZE9mZnNldCkgew0KICAgICAgdGhpcy5jaGVja0xpbmUoc3RhcnRMaW5lKTsNCiAgICAgIHZhciBzdGFydCA9IHtub2RlOiBzdGFydExpbmUsIG9mZnNldDogc3RhcnRPZmZzZXR9LCBlbmQgPSBudWxsOw0KICAgICAgaWYgKGVuZE9mZnNldCAhPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRoaXMuY2hlY2tMaW5lKGVuZExpbmUpOw0KICAgICAgICBlbmQgPSB7bm9kZTogZW5kTGluZSwgb2Zmc2V0OiBlbmRPZmZzZXR9Ow0KICAgICAgfQ0KICAgICAgc2VsZWN0LnNldEN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgc3RhcnQsIGVuZCk7DQogICAgICBzZWxlY3Quc2Nyb2xsVG9DdXJzb3IodGhpcy5jb250YWluZXIpOw0KICAgIH0sDQoNCiAgICBsaW5lQ29udGVudDogZnVuY3Rpb24obGluZSkgew0KICAgICAgdmFyIGFjY3VtID0gW107DQogICAgICBmb3IgKGxpbmUgPSBsaW5lID8gbGluZS5uZXh0U2libGluZyA6IHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ7DQogICAgICAgICAgIGxpbmUgJiYgIWlzQlIobGluZSk7IGxpbmUgPSBsaW5lLm5leHRTaWJsaW5nKQ0KICAgICAgICBhY2N1bS5wdXNoKG5vZGVUZXh0KGxpbmUpKTsNCiAgICAgIHJldHVybiBjbGVhblRleHQoYWNjdW0uam9pbigiIikpOw0KICAgIH0sDQoNCiAgICBzZXRMaW5lQ29udGVudDogZnVuY3Rpb24obGluZSwgY29udGVudCkgew0KICAgICAgdGhpcy5oaXN0b3J5LmNvbW1pdCgpOw0KICAgICAgdGhpcy5yZXBsYWNlUmFuZ2Uoe25vZGU6IGxpbmUsIG9mZnNldDogMH0sDQogICAgICAgICAgICAgICAgICAgICAgICB7bm9kZTogbGluZSwgb2Zmc2V0OiB0aGlzLmhpc3RvcnkudGV4dEFmdGVyKGxpbmUpLmxlbmd0aH0sDQogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KTsNCiAgICAgIHRoaXMuYWRkRGlydHlOb2RlKGxpbmUpOw0KICAgICAgdGhpcy5zY2hlZHVsZUhpZ2hsaWdodCgpOw0KICAgIH0sDQoNCiAgICByZW1vdmVMaW5lOiBmdW5jdGlvbihsaW5lKSB7DQogICAgICB2YXIgbm9kZSA9IGxpbmUgPyBsaW5lLm5leHRTaWJsaW5nIDogdGhpcy5jb250YWluZXIuZmlyc3RDaGlsZDsNCiAgICAgIHdoaWxlIChub2RlKSB7DQogICAgICAgIHZhciBuZXh0ID0gbm9kZS5uZXh0U2libGluZzsNCiAgICAgICAgcmVtb3ZlRWxlbWVudChub2RlKTsNCiAgICAgICAgaWYgKGlzQlIobm9kZSkpIGJyZWFrOw0KICAgICAgICBub2RlID0gbmV4dDsNCiAgICAgIH0NCiAgICAgIHRoaXMuYWRkRGlydHlOb2RlKGxpbmUpOw0KICAgICAgdGhpcy5zY2hlZHVsZUhpZ2hsaWdodCgpOw0KICAgIH0sDQoNCiAgICBpbnNlcnRJbnRvTGluZTogZnVuY3Rpb24obGluZSwgcG9zaXRpb24sIGNvbnRlbnQpIHsNCiAgICAgIHZhciBiZWZvcmUgPSBudWxsOw0KICAgICAgaWYgKHBvc2l0aW9uID09ICJlbmQiKSB7DQogICAgICAgIGJlZm9yZSA9IGVuZE9mTGluZShsaW5lLCB0aGlzLmNvbnRhaW5lcik7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgZm9yICh2YXIgY3VyID0gbGluZSA/IGxpbmUubmV4dFNpYmxpbmcgOiB0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkOyBjdXI7IGN1ciA9IGN1ci5uZXh0U2libGluZykgew0KICAgICAgICAgIGlmIChwb3NpdGlvbiA9PSAwKSB7DQogICAgICAgICAgICBiZWZvcmUgPSBjdXI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgICAgdmFyIHRleHQgPSBub2RlVGV4dChjdXIpOw0KICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA+IHBvc2l0aW9uKSB7DQogICAgICAgICAgICBiZWZvcmUgPSBjdXIubmV4dFNpYmxpbmc7DQogICAgICAgICAgICBjb250ZW50ID0gdGV4dC5zbGljZSgwLCBwb3NpdGlvbikgKyBjb250ZW50ICsgdGV4dC5zbGljZShwb3NpdGlvbik7DQogICAgICAgICAgICByZW1vdmVFbGVtZW50KGN1cik7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgICAgcG9zaXRpb24gLT0gdGV4dC5sZW5ndGg7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgdmFyIGxpbmVzID0gYXNFZGl0b3JMaW5lcyhjb250ZW50KTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGkgPiAwKSB0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiQlIiKSwgYmVmb3JlKTsNCiAgICAgICAgdGhpcy5jb250YWluZXIuaW5zZXJ0QmVmb3JlKG1ha2VQYXJ0U3BhbihsaW5lc1tpXSksIGJlZm9yZSk7DQogICAgICB9DQogICAgICB0aGlzLmFkZERpcnR5Tm9kZShsaW5lKTsNCiAgICAgIHRoaXMuc2NoZWR1bGVIaWdobGlnaHQoKTsNCiAgICB9LA0KDQogICAgLy8gUmV0cmlldmUgdGhlIHNlbGVjdGVkIHRleHQuDQogICAgc2VsZWN0ZWRUZXh0OiBmdW5jdGlvbigpIHsNCiAgICAgIHZhciBoID0gdGhpcy5oaXN0b3J5Ow0KICAgICAgaC5jb21taXQoKTsNCg0KICAgICAgdmFyIHN0YXJ0ID0gc2VsZWN0LmN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgdHJ1ZSksDQogICAgICAgICAgZW5kID0gc2VsZWN0LmN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgZmFsc2UpOw0KICAgICAgaWYgKCFzdGFydCB8fCAhZW5kKSByZXR1cm4gIiI7DQoNCiAgICAgIGlmIChzdGFydC5ub2RlID09IGVuZC5ub2RlKQ0KICAgICAgICByZXR1cm4gaC50ZXh0QWZ0ZXIoc3RhcnQubm9kZSkuc2xpY2Uoc3RhcnQub2Zmc2V0LCBlbmQub2Zmc2V0KTsNCg0KICAgICAgdmFyIHRleHQgPSBbaC50ZXh0QWZ0ZXIoc3RhcnQubm9kZSkuc2xpY2Uoc3RhcnQub2Zmc2V0KV07DQogICAgICBmb3IgKHZhciBwb3MgPSBoLm5vZGVBZnRlcihzdGFydC5ub2RlKTsgcG9zICE9IGVuZC5ub2RlOyBwb3MgPSBoLm5vZGVBZnRlcihwb3MpKQ0KICAgICAgICB0ZXh0LnB1c2goaC50ZXh0QWZ0ZXIocG9zKSk7DQogICAgICB0ZXh0LnB1c2goaC50ZXh0QWZ0ZXIoZW5kLm5vZGUpLnNsaWNlKDAsIGVuZC5vZmZzZXQpKTsNCiAgICAgIHJldHVybiBjbGVhblRleHQodGV4dC5qb2luKCJcbiIpKTsNCiAgICB9LA0KDQogICAgLy8gUmVwbGFjZSB0aGUgc2VsZWN0aW9uIHdpdGggYW5vdGhlciBwaWVjZSBvZiB0ZXh0Lg0KICAgIHJlcGxhY2VTZWxlY3Rpb246IGZ1bmN0aW9uKHRleHQpIHsNCiAgICAgIHRoaXMuaGlzdG9yeS5jb21taXQoKTsNCg0KICAgICAgdmFyIHN0YXJ0ID0gc2VsZWN0LmN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgdHJ1ZSksDQogICAgICAgICAgZW5kID0gc2VsZWN0LmN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgZmFsc2UpOw0KICAgICAgaWYgKCFzdGFydCB8fCAhZW5kKSByZXR1cm47DQoNCiAgICAgIGVuZCA9IHRoaXMucmVwbGFjZVJhbmdlKHN0YXJ0LCBlbmQsIHRleHQpOw0KICAgICAgc2VsZWN0LnNldEN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgZW5kKTsNCiAgICAgIHdlYmtpdExhc3RMaW5lSGFjayh0aGlzLmNvbnRhaW5lcik7DQogICAgfSwNCg0KICAgIGN1cnNvckNvb3JkczogZnVuY3Rpb24oc3RhcnQsIGludGVybmFsKSB7DQogICAgICB2YXIgc2VsID0gc2VsZWN0LmN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwgc3RhcnQpOw0KICAgICAgaWYgKCFzZWwpIHJldHVybiBudWxsOw0KICAgICAgdmFyIG9mZiA9IHNlbC5vZmZzZXQsIG5vZGUgPSBzZWwubm9kZSwgc2VsZiA9IHRoaXM7DQogICAgICBmdW5jdGlvbiBtZWFzdXJlRnJvbU5vZGUobm9kZSwgeE9mZnNldCkgew0KICAgICAgICB2YXIgeSA9IC0oZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCAwKSwNCiAgICAgICAgICAgIHggPSAtKGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCAwKSArIHhPZmZzZXQ7DQogICAgICAgIGZvckVhY2goW25vZGUsIGludGVybmFsID8gbnVsbCA6IHdpbmRvdy5mcmFtZUVsZW1lbnRdLCBmdW5jdGlvbihuKSB7DQogICAgICAgICAgd2hpbGUgKG4pIHt4ICs9IG4ub2Zmc2V0TGVmdDsgeSArPSBuLm9mZnNldFRvcDtuID0gbi5vZmZzZXRQYXJlbnQ7fQ0KICAgICAgICB9KTsNCiAgICAgICAgcmV0dXJuIHt4OiB4LCB5OiB5LCB5Qm90OiB5ICsgbm9kZS5vZmZzZXRIZWlnaHR9Ow0KICAgICAgfQ0KICAgICAgZnVuY3Rpb24gd2l0aFRlbXBOb2RlKHRleHQsIGYpIHsNCiAgICAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTUEFOIik7DQogICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOw0KICAgICAgICB0cnkge3JldHVybiBmKG5vZGUpO30NCiAgICAgICAgZmluYWxseSB7aWYgKG5vZGUucGFyZW50Tm9kZSkgbm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO30NCiAgICAgIH0NCg0KICAgICAgd2hpbGUgKG9mZikgew0KICAgICAgICBub2RlID0gbm9kZSA/IG5vZGUubmV4dFNpYmxpbmcgOiB0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgICAgICB2YXIgdHh0ID0gbm9kZVRleHQobm9kZSk7DQogICAgICAgIGlmIChvZmYgPCB0eHQubGVuZ3RoKQ0KICAgICAgICAgIHJldHVybiB3aXRoVGVtcE5vZGUodHh0LnN1YnN0cigwLCBvZmYpLCBmdW5jdGlvbih0bXApIHsNCiAgICAgICAgICAgIHRtcC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7IHRtcC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7DQogICAgICAgICAgICB0bXAuY2xhc3NOYW1lID0gbm9kZS5jbGFzc05hbWU7DQogICAgICAgICAgICBzZWxmLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0bXApOw0KICAgICAgICAgICAgcmV0dXJuIG1lYXN1cmVGcm9tTm9kZShub2RlLCB0bXAub2Zmc2V0V2lkdGgpOw0KICAgICAgICAgIH0pOw0KICAgICAgICBvZmYgLT0gdHh0Lmxlbmd0aDsNCiAgICAgIH0NCiAgICAgIGlmIChub2RlICYmIGlzU3Bhbihub2RlKSkNCiAgICAgICAgcmV0dXJuIG1lYXN1cmVGcm9tTm9kZShub2RlLCBub2RlLm9mZnNldFdpZHRoKTsNCiAgICAgIGVsc2UgaWYgKG5vZGUgJiYgbm9kZS5uZXh0U2libGluZyAmJiBpc1NwYW4obm9kZS5uZXh0U2libGluZykpDQogICAgICAgIHJldHVybiBtZWFzdXJlRnJvbU5vZGUobm9kZS5uZXh0U2libGluZywgMCk7DQogICAgICBlbHNlDQogICAgICAgIHJldHVybiB3aXRoVGVtcE5vZGUoIlx1MjAwYiIsIGZ1bmN0aW9uKHRtcCkgew0KICAgICAgICAgIGlmIChub2RlKSBub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRtcCwgbm9kZS5uZXh0U2libGluZyk7DQogICAgICAgICAgZWxzZSBzZWxmLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUodG1wLCBzZWxmLmNvbnRhaW5lci5maXJzdENoaWxkKTsNCiAgICAgICAgICByZXR1cm4gbWVhc3VyZUZyb21Ob2RlKHRtcCwgMCk7DQogICAgICAgIH0pOw0KICAgIH0sDQoNCiAgICByZXJvdXRlUGFzdGVFdmVudDogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5jYXB0dXJpbmdQYXN0ZSB8fCB3aW5kb3cub3BlcmEgfHwgKGdlY2tvICYmIGdlY2tvID49IDIwMTAxMDI2KSkgcmV0dXJuOw0KICAgICAgdGhpcy5jYXB0dXJpbmdQYXN0ZSA9IHRydWU7DQogICAgICB2YXIgdGUgPSB3aW5kb3cuZnJhbWVFbGVtZW50LkNvZGVNaXJyb3IudGV4dGFyZWFIYWNrOw0KICAgICAgdmFyIGNvb3JkcyA9IHRoaXMuY3Vyc29yQ29vcmRzKHRydWUsIHRydWUpOw0KICAgICAgdGUuc3R5bGUudG9wID0gY29vcmRzLnkgKyAicHgiOw0KICAgICAgaWYgKGludGVybmV0RXhwbG9yZXIpIHsNCiAgICAgICAgdmFyIHNuYXBzaG90ID0gc2VsZWN0LmdldEJvb2ttYXJrKHRoaXMuY29udGFpbmVyKTsNCiAgICAgICAgaWYgKHNuYXBzaG90KSB0aGlzLnNlbGVjdGlvblNuYXBzaG90ID0gc25hcHNob3Q7DQogICAgICB9DQogICAgICBwYXJlbnQuZm9jdXMoKTsNCiAgICAgIHRlLnZhbHVlID0gIiI7DQogICAgICB0ZS5mb2N1cygpOw0KDQogICAgICB2YXIgc2VsZiA9IHRoaXM7DQogICAgICBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgc2VsZi5jYXB0dXJpbmdQYXN0ZSA9IGZhbHNlOw0KICAgICAgICB3aW5kb3cuZm9jdXMoKTsNCiAgICAgICAgaWYgKHNlbGYuc2VsZWN0aW9uU25hcHNob3QpIC8vIElFIGhhY2sNCiAgICAgICAgICB3aW5kb3cuc2VsZWN0LnNldEJvb2ttYXJrKHNlbGYuY29udGFpbmVyLCBzZWxmLnNlbGVjdGlvblNuYXBzaG90KTsNCiAgICAgICAgdmFyIHRleHQgPSB0ZS52YWx1ZTsNCiAgICAgICAgaWYgKHRleHQpIHsNCiAgICAgICAgICBzZWxmLnJlcGxhY2VTZWxlY3Rpb24odGV4dCk7DQogICAgICAgICAgc2VsZWN0LnNjcm9sbFRvQ3Vyc29yKHNlbGYuY29udGFpbmVyKTsNCiAgICAgICAgfQ0KICAgICAgfSwgMTApOw0KICAgIH0sDQoNCiAgICByZXBsYWNlUmFuZ2U6IGZ1bmN0aW9uKGZyb20sIHRvLCB0ZXh0KSB7DQogICAgICB2YXIgbGluZXMgPSBhc0VkaXRvckxpbmVzKHRleHQpOw0KICAgICAgbGluZXNbMF0gPSB0aGlzLmhpc3RvcnkudGV4dEFmdGVyKGZyb20ubm9kZSkuc2xpY2UoMCwgZnJvbS5vZmZzZXQpICsgbGluZXNbMF07DQogICAgICB2YXIgbGFzdExpbmUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXTsNCiAgICAgIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdID0gbGFzdExpbmUgKyB0aGlzLmhpc3RvcnkudGV4dEFmdGVyKHRvLm5vZGUpLnNsaWNlKHRvLm9mZnNldCk7DQogICAgICB2YXIgZW5kID0gdGhpcy5oaXN0b3J5Lm5vZGVBZnRlcih0by5ub2RlKTsNCiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKGZyb20ubm9kZSwgZW5kLCBsaW5lcyk7DQogICAgICByZXR1cm4ge25vZGU6IHRoaXMuaGlzdG9yeS5ub2RlQmVmb3JlKGVuZCksDQogICAgICAgICAgICAgIG9mZnNldDogbGFzdExpbmUubGVuZ3RofTsNCiAgICB9LA0KDQogICAgZ2V0U2VhcmNoQ3Vyc29yOiBmdW5jdGlvbihzdHJpbmcsIGZyb21DdXJzb3IsIGNhc2VGb2xkKSB7DQogICAgICByZXR1cm4gbmV3IFNlYXJjaEN1cnNvcih0aGlzLCBzdHJpbmcsIGZyb21DdXJzb3IsIGNhc2VGb2xkKTsNCiAgICB9LA0KDQogICAgLy8gUmUtaW5kZW50IHRoZSB3aG9sZSBidWZmZXINCiAgICByZWluZGVudDogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5jb250YWluZXIuZmlyc3RDaGlsZCkNCiAgICAgICAgdGhpcy5pbmRlbnRSZWdpb24obnVsbCwgdGhpcy5jb250YWluZXIubGFzdENoaWxkKTsNCiAgICB9LA0KDQogICAgcmVpbmRlbnRTZWxlY3Rpb246IGZ1bmN0aW9uKGRpcmVjdGlvbikgew0KICAgICAgaWYgKCFzZWxlY3Quc29tZXRoaW5nU2VsZWN0ZWQoKSkgew0KICAgICAgICB0aGlzLmluZGVudEF0Q3Vyc29yKGRpcmVjdGlvbik7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgdmFyIHN0YXJ0ID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUodGhpcy5jb250YWluZXIsIHRydWUpLA0KICAgICAgICAgICAgZW5kID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUodGhpcy5jb250YWluZXIsIGZhbHNlKTsNCiAgICAgICAgaWYgKHN0YXJ0ID09PSBmYWxzZSB8fCBlbmQgPT09IGZhbHNlKSByZXR1cm47DQogICAgICAgIHRoaXMuaW5kZW50UmVnaW9uKHN0YXJ0LCBlbmQsIGRpcmVjdGlvbiwgdHJ1ZSk7DQogICAgICB9DQogICAgfSwNCg0KICAgIGdyYWJLZXlzOiBmdW5jdGlvbihldmVudEhhbmRsZXIsIGZpbHRlcikgew0KICAgICAgdGhpcy5mcm96ZW4gPSBldmVudEhhbmRsZXI7DQogICAgICB0aGlzLmtleUZpbHRlciA9IGZpbHRlcjsNCiAgICB9LA0KICAgIHVuZ3JhYktleXM6IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5mcm96ZW4gPSAibGVhdmUiOw0KICAgIH0sDQoNCiAgICBzZXRQYXJzZXI6IGZ1bmN0aW9uKG5hbWUsIHBhcnNlckNvbmZpZykgew0KICAgICAgRWRpdG9yLlBhcnNlciA9IHdpbmRvd1tuYW1lXTsNCiAgICAgIHBhcnNlckNvbmZpZyA9IHBhcnNlckNvbmZpZyB8fCB0aGlzLm9wdGlvbnMucGFyc2VyQ29uZmlnOw0KICAgICAgaWYgKHBhcnNlckNvbmZpZyAmJiBFZGl0b3IuUGFyc2VyLmNvbmZpZ3VyZSkNCiAgICAgICAgRWRpdG9yLlBhcnNlci5jb25maWd1cmUocGFyc2VyQ29uZmlnKTsNCg0KICAgICAgaWYgKHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgZm9yRWFjaCh0aGlzLmNvbnRhaW5lci5jaGlsZE5vZGVzLCBmdW5jdGlvbihuKSB7DQogICAgICAgICAgaWYgKG4ubm9kZVR5cGUgIT0gMykgbi5kaXJ0eSA9IHRydWU7DQogICAgICAgIH0pOw0KICAgICAgICB0aGlzLmFkZERpcnR5Tm9kZSh0aGlzLmZpcnN0Q2hpbGQpOw0KICAgICAgICB0aGlzLnNjaGVkdWxlSGlnaGxpZ2h0KCk7DQogICAgICB9DQogICAgfSwNCg0KICAgIC8vIEludGVyY2VwdCBlbnRlciBhbmQgdGFiLCBhbmQgYXNzaWduIHRoZWlyIG5ldyBmdW5jdGlvbnMuDQogICAga2V5RG93bjogZnVuY3Rpb24oZXZlbnQpIHsNCiAgICAgIGlmICh0aGlzLmZyb3plbiA9PSAibGVhdmUiKSB7dGhpcy5mcm96ZW4gPSBudWxsOyB0aGlzLmtleUZpbHRlciA9IG51bGw7fQ0KICAgICAgaWYgKHRoaXMuZnJvemVuICYmICghdGhpcy5rZXlGaWx0ZXIgfHwgdGhpcy5rZXlGaWx0ZXIoZXZlbnQua2V5Q29kZSwgZXZlbnQpKSkgew0KICAgICAgICBldmVudC5zdG9wKCk7DQogICAgICAgIHRoaXMuZnJvemVuKGV2ZW50KTsNCiAgICAgICAgcmV0dXJuOw0KICAgICAgfQ0KDQogICAgICB2YXIgY29kZSA9IGV2ZW50LmtleUNvZGU7DQogICAgICAvLyBEb24ndCBzY2FuIHdoZW4gdGhlIHVzZXIgaXMgdHlwaW5nLg0KICAgICAgdGhpcy5kZWxheVNjYW5uaW5nKCk7DQogICAgICAvLyBTY2hlZHVsZSBhIHBhcmVuLWhpZ2hsaWdodCBldmVudCwgaWYgY29uZmlndXJlZC4NCiAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b01hdGNoUGFyZW5zKQ0KICAgICAgICB0aGlzLnNjaGVkdWxlUGFyZW5IaWdobGlnaHQoKTsNCg0KICAgICAgLy8gVGhlIHZhcmlvdXMgY2hlY2tzIGZvciAhYWx0S2V5IGFyZSB0aGVyZSBiZWNhdXNlIEFsdEdyIHNldHMgYm90aA0KICAgICAgLy8gY3RybEtleSBhbmQgYWx0S2V5IHRvIHRydWUsIGFuZCBzaG91bGQgbm90IGJlIHJlY29nbmlzZWQgYXMNCiAgICAgIC8vIENvbnRyb2wuDQogICAgICBpZiAoY29kZSA9PSAxMykgeyAvLyBlbnRlcg0KICAgICAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAhZXZlbnQuYWx0S2V5KSB7DQogICAgICAgICAgdGhpcy5yZXBhcnNlQnVmZmVyKCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgc2VsZWN0Lmluc2VydE5ld2xpbmVBdEN1cnNvcigpOw0KICAgICAgICAgIHZhciBtb2RlID0gdGhpcy5vcHRpb25zLmVudGVyTW9kZTsNCiAgICAgICAgICBpZiAobW9kZSAhPSAiZmxhdCIpIHRoaXMuaW5kZW50QXRDdXJzb3IobW9kZSA9PSAia2VlcCIgPyAia2VlcCIgOiB1bmRlZmluZWQpOw0KICAgICAgICAgIHNlbGVjdC5zY3JvbGxUb0N1cnNvcih0aGlzLmNvbnRhaW5lcik7DQogICAgICAgIH0NCiAgICAgICAgZXZlbnQuc3RvcCgpOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY29kZSA9PSA5ICYmIHRoaXMub3B0aW9ucy50YWJNb2RlICE9ICJkZWZhdWx0IiAmJiAhZXZlbnQuY3RybEtleSkgeyAvLyB0YWINCiAgICAgICAgdGhpcy5oYW5kbGVUYWIoIWV2ZW50LnNoaWZ0S2V5KTsNCiAgICAgICAgZXZlbnQuc3RvcCgpOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY29kZSA9PSAzMiAmJiBldmVudC5zaGlmdEtleSAmJiB0aGlzLm9wdGlvbnMudGFiTW9kZSA9PSAiZGVmYXVsdCIpIHsgLy8gc3BhY2UNCiAgICAgICAgdGhpcy5oYW5kbGVUYWIodHJ1ZSk7DQogICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNvZGUgPT0gMzYgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmICFldmVudC5jdHJsS2V5KSB7IC8vIGhvbWUNCiAgICAgICAgaWYgKHRoaXMuaG9tZSgpKSBldmVudC5zdG9wKCk7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjb2RlID09IDM1ICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuY3RybEtleSkgeyAvLyBlbmQNCiAgICAgICAgaWYgKHRoaXMuZW5kKCkpIGV2ZW50LnN0b3AoKTsNCiAgICAgIH0NCiAgICAgIC8vIE9ubHkgaW4gRmlyZWZveCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgUGdVcC9QZ0RuIGNvcnJlY3QuDQogICAgICBlbHNlIGlmIChjb2RlID09IDMzICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhZ2Vja28pIHsgLy8gUGdVcA0KICAgICAgICBpZiAodGhpcy5wYWdlVXAoKSkgZXZlbnQuc3RvcCgpOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY29kZSA9PSAzNCAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWdlY2tvKSB7ICAvLyBQZ0RuDQogICAgICAgIGlmICh0aGlzLnBhZ2VEb3duKCkpIGV2ZW50LnN0b3AoKTsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKChjb2RlID09IDIxOSB8fCBjb2RlID09IDIyMSkgJiYgZXZlbnQuY3RybEtleSAmJiAhZXZlbnQuYWx0S2V5KSB7IC8vIFssIF0NCiAgICAgICAgdGhpcy5oaWdobGlnaHRQYXJlbnMoZXZlbnQuc2hpZnRLZXksIHRydWUpOw0KICAgICAgICBldmVudC5zdG9wKCk7DQogICAgICB9DQogICAgICBlbHNlIGlmIChldmVudC5tZXRhS2V5ICYmICFldmVudC5zaGlmdEtleSAmJiAoY29kZSA9PSAzNyB8fCBjb2RlID09IDM5KSkgeyAvLyBNZXRhLWxlZnQvcmlnaHQNCiAgICAgICAgdmFyIGN1cnNvciA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyKTsNCiAgICAgICAgaWYgKGN1cnNvciA9PT0gZmFsc2UgfHwgIXRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQpIHJldHVybjsNCg0KICAgICAgICBpZiAoY29kZSA9PSAzNykgc2VsZWN0LmZvY3VzQWZ0ZXJOb2RlKHN0YXJ0T2ZMaW5lKGN1cnNvciksIHRoaXMuY29udGFpbmVyKTsNCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgdmFyIGVuZCA9IGVuZE9mTGluZShjdXJzb3IsIHRoaXMuY29udGFpbmVyKTsNCiAgICAgICAgICBzZWxlY3QuZm9jdXNBZnRlck5vZGUoZW5kID8gZW5kLnByZXZpb3VzU2libGluZyA6IHRoaXMuY29udGFpbmVyLmxhc3RDaGlsZCwgdGhpcy5jb250YWluZXIpOw0KICAgICAgICB9DQogICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmICFldmVudC5hbHRLZXkpIHsNCiAgICAgICAgaWYgKChldmVudC5zaGlmdEtleSAmJiBjb2RlID09IDkwKSB8fCBjb2RlID09IDg5KSB7IC8vIHNoaWZ0LVosIFkNCiAgICAgICAgICBzZWxlY3Quc2Nyb2xsVG9Ob2RlKHRoaXMuaGlzdG9yeS5yZWRvKCkpOw0KICAgICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChjb2RlID09IDkwIHx8IChzYWZhcmkgJiYgY29kZSA9PSA4KSkgeyAvLyBaLCBiYWNrc3BhY2UNCiAgICAgICAgICBzZWxlY3Quc2Nyb2xsVG9Ob2RlKHRoaXMuaGlzdG9yeS51bmRvKCkpOw0KICAgICAgICAgIGV2ZW50LnN0b3AoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChjb2RlID09IDgzICYmIHRoaXMub3B0aW9ucy5zYXZlRnVuY3Rpb24pIHsgLy8gUw0KICAgICAgICAgIHRoaXMub3B0aW9ucy5zYXZlRnVuY3Rpb24oKTsNCiAgICAgICAgICBldmVudC5zdG9wKCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAoY29kZSA9PSA4NiAmJiAhbWFjKSB7IC8vIFYNCiAgICAgICAgICB0aGlzLnJlcm91dGVQYXN0ZUV2ZW50KCk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KDQogICAgLy8gQ2hlY2sgZm9yIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgcmUtaW5kZW50IHRoZSBjdXJyZW50IGxpbmUsDQogICAgLy8gYW5kIHByZXZlbnQgT3BlcmEgZnJvbSBoYW5kbGluZyBlbnRlciBhbmQgdGFiIGFueXdheS4NCiAgICBrZXlQcmVzczogZnVuY3Rpb24oZXZlbnQpIHsNCiAgICAgIHZhciBlbGVjdHJpYyA9IHRoaXMub3B0aW9ucy5lbGVjdHJpY0NoYXJzICYmIEVkaXRvci5QYXJzZXIuZWxlY3RyaWNDaGFycywgc2VsZiA9IHRoaXM7DQogICAgICAvLyBIYWNrIGZvciBPcGVyYSwgYW5kIEZpcmVmb3ggb24gT1MgWCwgaW4gd2hpY2ggc3RvcHBpbmcgYQ0KICAgICAgLy8ga2V5ZG93biBldmVudCBkb2VzIG5vdCBwcmV2ZW50IHRoZSBhc3NvY2lhdGVkIGtleXByZXNzIGV2ZW50DQogICAgICAvLyBmcm9tIGhhcHBlbmluZywgc28gd2UgaGF2ZSB0byBjYW5jZWwgZW50ZXIgYW5kIHRhYiBhZ2Fpbg0KICAgICAgLy8gaGVyZS4NCiAgICAgIGlmICgodGhpcy5mcm96ZW4gJiYgKCF0aGlzLmtleUZpbHRlciB8fCB0aGlzLmtleUZpbHRlcihldmVudC5rZXlDb2RlIHx8IGV2ZW50LmNvZGUsIGV2ZW50KSkpIHx8DQogICAgICAgICAgZXZlbnQuY29kZSA9PSAxMyB8fCAoZXZlbnQuY29kZSA9PSA5ICYmIHRoaXMub3B0aW9ucy50YWJNb2RlICE9ICJkZWZhdWx0IikgfHwNCiAgICAgICAgICAoZXZlbnQuY29kZSA9PSAzMiAmJiBldmVudC5zaGlmdEtleSAmJiB0aGlzLm9wdGlvbnMudGFiTW9kZSA9PSAiZGVmYXVsdCIpKQ0KICAgICAgICBldmVudC5zdG9wKCk7DQogICAgICBlbHNlIGlmIChtYWMgJiYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQuY2hhcmFjdGVyID09ICJ2Iikgew0KICAgICAgICB0aGlzLnJlcm91dGVQYXN0ZUV2ZW50KCk7DQogICAgICB9DQogICAgICBlbHNlIGlmIChlbGVjdHJpYyAmJiBlbGVjdHJpYy5pbmRleE9mKGV2ZW50LmNoYXJhY3RlcikgIT0gLTEpDQogICAgICAgIHBhcmVudC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2VsZi5pbmRlbnRBdEN1cnNvcihudWxsKTt9LCAwKTsNCiAgICAgIC8vIFdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIHByZXNzaW5nIGJhY2tzcGFjZSBhdCB0aGUgZW5kIG9mIGENCiAgICAgIC8vIGxpbmUsIG9yIGRlbGV0ZSBhdCB0aGUgc3RhcnQsIG9mdGVuIGNhdXNlcyB0aGUgY3Vyc29yIHRvIGp1bXANCiAgICAgIC8vIHRvIHRoZSBzdGFydCBvZiB0aGUgbGluZSBpbiBPcGVyYSAxMC42MC4NCiAgICAgIGVsc2UgaWYgKGJyb2tlbk9wZXJhKSB7DQogICAgICAgIGlmIChldmVudC5jb2RlID09IDgpIHsgLy8gYmFja3NwYWNlDQogICAgICAgICAgdmFyIHNlbCA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyKSwgc2VsZiA9IHRoaXMsDQogICAgICAgICAgICAgIG5leHQgPSBzZWwgPyBzZWwubmV4dFNpYmxpbmcgOiB0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgICAgICAgIGlmIChzZWwgIT09IGZhbHNlICYmIG5leHQgJiYgaXNCUihuZXh0KSkNCiAgICAgICAgICAgIHBhcmVudC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgIGlmIChzZWxlY3Quc2VsZWN0aW9uVG9wTm9kZShzZWxmLmNvbnRhaW5lcikgPT0gbmV4dCkNCiAgICAgICAgICAgICAgICBzZWxlY3QuZm9jdXNBZnRlck5vZGUobmV4dC5wcmV2aW91c1NpYmxpbmcsIHNlbGYuY29udGFpbmVyKTsNCiAgICAgICAgICAgIH0sIDIwKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChldmVudC5jb2RlID09IDQ2KSB7IC8vIGRlbGV0ZQ0KICAgICAgICAgIHZhciBzZWwgPSBzZWxlY3Quc2VsZWN0aW9uVG9wTm9kZSh0aGlzLmNvbnRhaW5lciksIHNlbGYgPSB0aGlzOw0KICAgICAgICAgIGlmIChzZWwgJiYgaXNCUihzZWwpKSB7DQogICAgICAgICAgICBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgICBpZiAoc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUoc2VsZi5jb250YWluZXIpICE9IHNlbCkNCiAgICAgICAgICAgICAgICBzZWxlY3QuZm9jdXNBZnRlck5vZGUoc2VsLCBzZWxmLmNvbnRhaW5lcik7DQogICAgICAgICAgICB9LCAyMCk7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICAvLyBJbiA1MzMuKiBXZWJLaXQgdmVyc2lvbnMsIHdoZW4gdGhlIGRvY3VtZW50IGlzIGJpZywgdHlwaW5nDQogICAgICAvLyBzb21ldGhpbmcgYXQgdGhlIGVuZCBvZiBhIGxpbmUgY2F1c2VzIHRoZSBicm93c2VyIHRvIGRvIHNvbWUNCiAgICAgIC8vIGtpbmQgb2Ygc3R1cGlkIGhlYXZ5IG9wZXJhdGlvbiwgY3JlYXRpbmcgZGVsYXlzIG9mIHNldmVyYWwNCiAgICAgIC8vIHNlY29uZHMgYmVmb3JlIHRoZSB0eXBlZCBjaGFyYWN0ZXJzIGFwcGVhci4gVGhpcyB2ZXJ5IGNydWRlDQogICAgICAvLyBoYWNrIGluc2VydHMgYSB0ZW1wb3JhcnkgemVyby13aWR0aCBzcGFjZSBhZnRlciB0aGUgY3Vyc29yIHRvDQogICAgICAvLyBtYWtlIGl0IG5vdCBiZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLg0KICAgICAgZWxzZSBpZiAoc2xvd1dlYmtpdCkgew0KICAgICAgICB2YXIgc2VsID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUodGhpcy5jb250YWluZXIpLA0KICAgICAgICAgICAgbmV4dCA9IHNlbCA/IHNlbC5uZXh0U2libGluZyA6IHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ7DQogICAgICAgIC8vIERvZXNuJ3Qgd29yayBvbiBlbXB0eSBsaW5lcywgZm9yIHNvbWUgcmVhc29uIHRob3NlIGFsd2F5cw0KICAgICAgICAvLyB0cmlnZ2VyIHRoZSBkZWxheS4NCiAgICAgICAgaWYgKHNlbCAmJiBuZXh0ICYmIGlzQlIobmV4dCkgJiYgIWlzQlIoc2VsKSkgew0KICAgICAgICAgIHZhciBjaGVhdCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMGIiKTsNCiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hlYXQsIG5leHQpOw0KICAgICAgICAgIHBhcmVudC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKGNoZWF0Lm5vZGVWYWx1ZSA9PSAiXHUyMDBiIikgcmVtb3ZlRWxlbWVudChjaGVhdCk7DQogICAgICAgICAgICBlbHNlIGNoZWF0Lm5vZGVWYWx1ZSA9IGNoZWF0Lm5vZGVWYWx1ZS5yZXBsYWNlKCJcdTIwMGIiLCAiIik7DQogICAgICAgICAgfSwgMjApOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIC8vIE1hZ2ljIGluY2FudGF0aW9uIHRoYXQgd29ya3MgYWJvdW5kIGEgd2Via2l0IGJ1ZyB3aGVuIHlvdQ0KICAgICAgLy8gY2FuJ3QgdHlwZSBvbiBhIGJsYW5rIGxpbmUgZm9sbG93aW5nIGEgbGluZSB0aGF0J3Mgd2lkZXIgdGhhbg0KICAgICAgLy8gdGhlIHdpbmRvdy4NCiAgICAgIGlmICh3ZWJraXQgJiYgIXRoaXMub3B0aW9ucy50ZXh0V3JhcHBpbmcpDQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICAgIHZhciBub2RlID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUoc2VsZi5jb250YWluZXIsIHRydWUpOw0KICAgICAgICAgIGlmIChub2RlICYmIG5vZGUubm9kZVR5cGUgPT0gMyAmJiBub2RlLnByZXZpb3VzU2libGluZyAmJiBpc0JSKG5vZGUucHJldmlvdXNTaWJsaW5nKQ0KICAgICAgICAgICAgICAmJiBub2RlLm5leHRTaWJsaW5nICYmIGlzQlIobm9kZS5uZXh0U2libGluZykpDQogICAgICAgICAgICBub2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkJSIiksIG5vZGUucHJldmlvdXNTaWJsaW5nKTsNCiAgICAgICAgfSwgNTApOw0KICAgIH0sDQoNCiAgICAvLyBNYXJrIHRoZSBub2RlIGF0IHRoZSBjdXJzb3IgZGlydHkgd2hlbiBhIG5vbi1zYWZlIGtleSBpcw0KICAgIC8vIHJlbGVhc2VkLg0KICAgIGtleVVwOiBmdW5jdGlvbihldmVudCkgew0KICAgICAgdGhpcy5jdXJzb3JBY3Rpdml0eShpc1NhZmVLZXkoZXZlbnQua2V5Q29kZSkpOw0KICAgIH0sDQoNCiAgICAvLyBJbmRlbnQgdGhlIGxpbmUgZm9sbG93aW5nIGEgZ2l2ZW4gPGJyPiwgb3IgbnVsbCBmb3IgdGhlIGZpcnN0DQogICAgLy8gbGluZS4gSWYgZ2l2ZW4gYSA8YnI+IGVsZW1lbnQsIHRoaXMgbXVzdCBoYXZlIGJlZW4gaGlnaGxpZ2h0ZWQNCiAgICAvLyBzbyB0aGF0IGl0IGhhcyBhbiBpbmRlbnRhdGlvbiBtZXRob2QuIFJldHVybnMgdGhlIHdoaXRlc3BhY2UNCiAgICAvLyBlbGVtZW50IHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgY3JlYXRlZCAoaWYgYW55KS4NCiAgICBpbmRlbnRMaW5lQWZ0ZXI6IGZ1bmN0aW9uKHN0YXJ0LCBkaXJlY3Rpb24pIHsNCiAgICAgIGZ1bmN0aW9uIHdoaXRlU3BhY2VBZnRlcihub2RlKSB7DQogICAgICAgIHZhciB3cyA9IG5vZGUgPyBub2RlLm5leHRTaWJsaW5nIDogc2VsZi5jb250YWluZXIuZmlyc3RDaGlsZDsNCiAgICAgICAgaWYgKCF3cyB8fCAhaGFzQ2xhc3Mod3MsICJ3aGl0ZXNwYWNlIikpIHJldHVybiBudWxsOw0KICAgICAgICByZXR1cm4gd3M7DQogICAgICB9DQoNCiAgICAgIC8vIHdoaXRlU3BhY2UgaXMgdGhlIHdoaXRlc3BhY2Ugc3BhbiBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUsDQogICAgICAvLyBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbm9kZS4NCiAgICAgIHZhciBzZWxmID0gdGhpcywgd2hpdGVTcGFjZSA9IHdoaXRlU3BhY2VBZnRlcihzdGFydCk7DQogICAgICB2YXIgbmV3SW5kZW50ID0gMCwgY3VySW5kZW50ID0gd2hpdGVTcGFjZSA/IHdoaXRlU3BhY2UuY3VycmVudFRleHQubGVuZ3RoIDogMDsNCg0KICAgICAgdmFyIGZpcnN0VGV4dCA9IHdoaXRlU3BhY2UgPyB3aGl0ZVNwYWNlLm5leHRTaWJsaW5nIDogKHN0YXJ0ID8gc3RhcnQubmV4dFNpYmxpbmcgOiB0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkKTsNCiAgICAgIGlmIChkaXJlY3Rpb24gPT0gImtlZXAiKSB7DQogICAgICAgIGlmIChzdGFydCkgew0KICAgICAgICAgIHZhciBwcmV2V1MgPSB3aGl0ZVNwYWNlQWZ0ZXIoc3RhcnRPZkxpbmUoc3RhcnQucHJldmlvdXNTaWJsaW5nKSkNCiAgICAgICAgICBpZiAocHJldldTKSBuZXdJbmRlbnQgPSBwcmV2V1MuY3VycmVudFRleHQubGVuZ3RoOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgLy8gU29tZXRpbWVzIHRoZSBzdGFydCBvZiB0aGUgbGluZSBjYW4gaW5mbHVlbmNlIHRoZSBjb3JyZWN0DQogICAgICAgIC8vIGluZGVudGF0aW9uLCBzbyB3ZSByZXRyaWV2ZSBpdC4NCiAgICAgICAgdmFyIG5leHRDaGFycyA9IChzdGFydCAmJiBmaXJzdFRleHQgJiYgZmlyc3RUZXh0LmN1cnJlbnRUZXh0KSA/IGZpcnN0VGV4dC5jdXJyZW50VGV4dCA6ICIiOw0KDQogICAgICAgIC8vIEFzayB0aGUgbGV4aWNhbCBjb250ZXh0IGZvciB0aGUgY29ycmVjdCBpbmRlbnRhdGlvbiwgYW5kDQogICAgICAgIC8vIGNvbXB1dGUgaG93IG11Y2ggdGhpcyBkaWZmZXJzIGZyb20gdGhlIGN1cnJlbnQgaW5kZW50YXRpb24uDQogICAgICAgIGlmIChkaXJlY3Rpb24gIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMudGFiTW9kZSAhPSAiaW5kZW50IikNCiAgICAgICAgICBuZXdJbmRlbnQgPSBkaXJlY3Rpb24gPyBjdXJJbmRlbnQgKyBpbmRlbnRVbml0IDogTWF0aC5tYXgoMCwgY3VySW5kZW50IC0gaW5kZW50VW5pdCkNCiAgICAgICAgZWxzZSBpZiAoc3RhcnQpDQogICAgICAgICAgbmV3SW5kZW50ID0gc3RhcnQuaW5kZW50YXRpb24obmV4dENoYXJzLCBjdXJJbmRlbnQsIGRpcmVjdGlvbiwgZmlyc3RUZXh0KTsNCiAgICAgICAgZWxzZSBpZiAoRWRpdG9yLlBhcnNlci5maXJzdEluZGVudGF0aW9uKQ0KICAgICAgICAgIG5ld0luZGVudCA9IEVkaXRvci5QYXJzZXIuZmlyc3RJbmRlbnRhdGlvbihuZXh0Q2hhcnMsIGN1ckluZGVudCwgZGlyZWN0aW9uLCBmaXJzdFRleHQpOw0KICAgICAgfQ0KICAgICAgDQogICAgICB2YXIgaW5kZW50RGlmZiA9IG5ld0luZGVudCAtIGN1ckluZGVudDsNCg0KICAgICAgLy8gSWYgdGhlcmUgaXMgdG9vIG11Y2gsIHRoaXMgaXMganVzdCBhIG1hdHRlciBvZiBzaHJpbmtpbmcgYSBzcGFuLg0KICAgICAgaWYgKGluZGVudERpZmYgPCAwKSB7DQogICAgICAgIGlmIChuZXdJbmRlbnQgPT0gMCkgew0KICAgICAgICAgIGlmIChmaXJzdFRleHQpIHNlbGVjdC5zbmFwc2hvdE1vdmUod2hpdGVTcGFjZS5maXJzdENoaWxkLCBmaXJzdFRleHQuZmlyc3RDaGlsZCB8fCBmaXJzdFRleHQsIDApOw0KICAgICAgICAgIHJlbW92ZUVsZW1lbnQod2hpdGVTcGFjZSk7DQogICAgICAgICAgd2hpdGVTcGFjZSA9IG51bGw7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgc2VsZWN0LnNuYXBzaG90TW92ZSh3aGl0ZVNwYWNlLmZpcnN0Q2hpbGQsIHdoaXRlU3BhY2UuZmlyc3RDaGlsZCwgaW5kZW50RGlmZiwgdHJ1ZSk7DQogICAgICAgICAgd2hpdGVTcGFjZS5jdXJyZW50VGV4dCA9IG1ha2VXaGl0ZVNwYWNlKG5ld0luZGVudCk7DQogICAgICAgICAgd2hpdGVTcGFjZS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IHdoaXRlU3BhY2UuY3VycmVudFRleHQ7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIC8vIE5vdCBlbm91Z2guLi4NCiAgICAgIGVsc2UgaWYgKGluZGVudERpZmYgPiAwKSB7DQogICAgICAgIC8vIElmIHRoZXJlIGlzIHdoaXRlc3BhY2UsIHdlIGdyb3cgaXQuDQogICAgICAgIGlmICh3aGl0ZVNwYWNlKSB7DQogICAgICAgICAgd2hpdGVTcGFjZS5jdXJyZW50VGV4dCA9IG1ha2VXaGl0ZVNwYWNlKG5ld0luZGVudCk7DQogICAgICAgICAgd2hpdGVTcGFjZS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IHdoaXRlU3BhY2UuY3VycmVudFRleHQ7DQogICAgICAgICAgc2VsZWN0LnNuYXBzaG90TW92ZSh3aGl0ZVNwYWNlLmZpcnN0Q2hpbGQsIHdoaXRlU3BhY2UuZmlyc3RDaGlsZCwgaW5kZW50RGlmZiwgdHJ1ZSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlIHRvIGFkZCBhIG5ldyB3aGl0ZXNwYWNlIG5vZGUuDQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHdoaXRlU3BhY2UgPSBtYWtlUGFydFNwYW4obWFrZVdoaXRlU3BhY2UobmV3SW5kZW50KSk7DQogICAgICAgICAgd2hpdGVTcGFjZS5jbGFzc05hbWUgPSAid2hpdGVzcGFjZSI7DQogICAgICAgICAgaWYgKHN0YXJ0KSBpbnNlcnRBZnRlcih3aGl0ZVNwYWNlLCBzdGFydCk7DQogICAgICAgICAgZWxzZSB0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUod2hpdGVTcGFjZSwgdGhpcy5jb250YWluZXIuZmlyc3RDaGlsZCk7DQogICAgICAgICAgc2VsZWN0LnNuYXBzaG90TW92ZShmaXJzdFRleHQgJiYgKGZpcnN0VGV4dC5maXJzdENoaWxkIHx8IGZpcnN0VGV4dCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlLmZpcnN0Q2hpbGQsIG5ld0luZGVudCwgZmFsc2UsIHRydWUpOw0KICAgICAgICB9DQogICAgICB9DQogICAgICAvLyBNYWtlIHN1cmUgY3Vyc29yIGVuZHMgdXAgYWZ0ZXIgdGhlIHdoaXRlc3BhY2UNCiAgICAgIGVsc2UgaWYgKHdoaXRlU3BhY2UpIHsNCglzZWxlY3Quc25hcHNob3RNb3ZlKHdoaXRlU3BhY2UuZmlyc3RDaGlsZCwgd2hpdGVTcGFjZS5maXJzdENoaWxkLCBuZXdJbmRlbnQsIGZhbHNlKTsNCiAgICAgIH0NCiAgICAgIGlmIChpbmRlbnREaWZmICE9IDApIHRoaXMuYWRkRGlydHlOb2RlKHN0YXJ0KTsNCiAgICB9LA0KDQogICAgLy8gUmUtaGlnaGxpZ2h0IHRoZSBzZWxlY3RlZCBwYXJ0IG9mIHRoZSBkb2N1bWVudC4NCiAgICBoaWdobGlnaHRBdEN1cnNvcjogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgcG9zID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUodGhpcy5jb250YWluZXIsIHRydWUpOw0KICAgICAgdmFyIHRvID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUodGhpcy5jb250YWluZXIsIGZhbHNlKTsNCiAgICAgIGlmIChwb3MgPT09IGZhbHNlIHx8IHRvID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlOw0KDQogICAgICBzZWxlY3QubWFya1NlbGVjdGlvbigpOw0KICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0KHBvcywgZW5kT2ZMaW5lKHRvLCB0aGlzLmNvbnRhaW5lciksIHRydWUsIDIwKSA9PT0gZmFsc2UpDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIHNlbGVjdC5zZWxlY3RNYXJrZWQoKTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICAvLyBXaGVuIHRhYiBpcyBwcmVzc2VkIHdpdGggdGV4dCBzZWxlY3RlZCwgdGhlIHdob2xlIHNlbGVjdGlvbiBpcw0KICAgIC8vIHJlLWluZGVudGVkLCB3aGVuIG5vdGhpbmcgaXMgc2VsZWN0ZWQsIHRoZSBsaW5lIHdpdGggdGhlIGN1cnNvcg0KICAgIC8vIGlzIHJlLWluZGVudGVkLg0KICAgIGhhbmRsZVRhYjogZnVuY3Rpb24oZGlyZWN0aW9uKSB7DQogICAgICBpZiAodGhpcy5vcHRpb25zLnRhYk1vZGUgPT0gInNwYWNlcyIgJiYgIXNlbGVjdC5zb21ldGhpbmdTZWxlY3RlZCgpKQ0KICAgICAgICBzZWxlY3QuaW5zZXJ0VGFiQXRDdXJzb3IoKTsNCiAgICAgIGVsc2UNCiAgICAgICAgdGhpcy5yZWluZGVudFNlbGVjdGlvbihkaXJlY3Rpb24pOw0KICAgIH0sDQoNCiAgICAvLyBDdXN0b20gaG9tZSBiZWhhdmlvdXIgdGhhdCBkb2Vzbid0IGxhbmQgdGhlIGN1cnNvciBpbiBmcm9udCBvZg0KICAgIC8vIGxlYWRpbmcgd2hpdGVzcGFjZSB1bmxlc3MgcHJlc3NlZCB0d2ljZS4NCiAgICBob21lOiBmdW5jdGlvbigpIHsNCiAgICAgIHZhciBjdXIgPSBzZWxlY3Quc2VsZWN0aW9uVG9wTm9kZSh0aGlzLmNvbnRhaW5lciwgdHJ1ZSksIHN0YXJ0ID0gY3VyOw0KICAgICAgaWYgKGN1ciA9PT0gZmFsc2UgfHwgISghY3VyIHx8IGN1ci5pc1BhcnQgfHwgaXNCUihjdXIpKSB8fCAhdGhpcy5jb250YWluZXIuZmlyc3RDaGlsZCkNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KDQogICAgICB3aGlsZSAoY3VyICYmICFpc0JSKGN1cikpIGN1ciA9IGN1ci5wcmV2aW91c1NpYmxpbmc7DQogICAgICB2YXIgbmV4dCA9IGN1ciA/IGN1ci5uZXh0U2libGluZyA6IHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ7DQogICAgICBpZiAobmV4dCAmJiBuZXh0ICE9IHN0YXJ0ICYmIG5leHQuaXNQYXJ0ICYmIGhhc0NsYXNzKG5leHQsICJ3aGl0ZXNwYWNlIikpDQogICAgICAgIHNlbGVjdC5mb2N1c0FmdGVyTm9kZShuZXh0LCB0aGlzLmNvbnRhaW5lcik7DQogICAgICBlbHNlDQogICAgICAgIHNlbGVjdC5mb2N1c0FmdGVyTm9kZShjdXIsIHRoaXMuY29udGFpbmVyKTsNCg0KICAgICAgc2VsZWN0LnNjcm9sbFRvQ3Vyc29yKHRoaXMuY29udGFpbmVyKTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICAvLyBTb21lIGJyb3dzZXJzIChPcGVyYSkgZG9uJ3QgbWFuYWdlIHRvIGhhbmRsZSB0aGUgZW5kIGtleQ0KICAgIC8vIHByb3Blcmx5IGluIHRoZSBmYWNlIG9mIHZlcnRpY2FsIHNjcm9sbGluZy4NCiAgICBlbmQ6IGZ1bmN0aW9uKCkgew0KICAgICAgdmFyIGN1ciA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyLCB0cnVlKTsNCiAgICAgIGlmIChjdXIgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7DQogICAgICBjdXIgPSBlbmRPZkxpbmUoY3VyLCB0aGlzLmNvbnRhaW5lcik7DQogICAgICBpZiAoIWN1cikgcmV0dXJuIGZhbHNlOw0KICAgICAgc2VsZWN0LmZvY3VzQWZ0ZXJOb2RlKGN1ci5wcmV2aW91c1NpYmxpbmcsIHRoaXMuY29udGFpbmVyKTsNCiAgICAgIHNlbGVjdC5zY3JvbGxUb0N1cnNvcih0aGlzLmNvbnRhaW5lcik7DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgcGFnZVVwOiBmdW5jdGlvbigpIHsNCiAgICAgIHZhciBsaW5lID0gdGhpcy5jdXJzb3JQb3NpdGlvbigpLmxpbmUsIHNjcm9sbEFtb3VudCA9IHRoaXMudmlzaWJsZUxpbmVDb3VudCgpOw0KICAgICAgaWYgKGxpbmUgPT09IGZhbHNlIHx8IHNjcm9sbEFtb3VudCA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTsNCiAgICAgIC8vIFRyeSB0byBrZWVwIG9uZSBsaW5lIG9uIHRoZSBzY3JlZW4uDQogICAgICBzY3JvbGxBbW91bnQgLT0gMjsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Nyb2xsQW1vdW50OyBpKyspIHsNCiAgICAgICAgbGluZSA9IHRoaXMucHJldkxpbmUobGluZSk7DQogICAgICAgIGlmIChsaW5lID09PSBmYWxzZSkgYnJlYWs7DQogICAgICB9DQogICAgICBpZiAoaSA9PSAwKSByZXR1cm4gZmFsc2U7IC8vIEFscmVhZHkgYXQgZmlyc3QgbGluZQ0KICAgICAgc2VsZWN0LnNldEN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwge25vZGU6IGxpbmUsIG9mZnNldDogMH0pOw0KICAgICAgc2VsZWN0LnNjcm9sbFRvQ3Vyc29yKHRoaXMuY29udGFpbmVyKTsNCiAgICAgIHJldHVybiB0cnVlOw0KICAgIH0sDQoNCiAgICBwYWdlRG93bjogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgbGluZSA9IHRoaXMuY3Vyc29yUG9zaXRpb24oKS5saW5lLCBzY3JvbGxBbW91bnQgPSB0aGlzLnZpc2libGVMaW5lQ291bnQoKTsNCiAgICAgIGlmIChsaW5lID09PSBmYWxzZSB8fCBzY3JvbGxBbW91bnQgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7DQogICAgICAvLyBUcnkgdG8gbW92ZSB0byB0aGUgbGFzdCBsaW5lIG9mIHRoZSBjdXJyZW50IHBhZ2UuDQogICAgICBzY3JvbGxBbW91bnQgLT0gMjsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Nyb2xsQW1vdW50OyBpKyspIHsNCiAgICAgICAgdmFyIG5leHRMaW5lID0gdGhpcy5uZXh0TGluZShsaW5lKTsNCiAgICAgICAgaWYgKG5leHRMaW5lID09PSBmYWxzZSkgYnJlYWs7DQogICAgICAgIGxpbmUgPSBuZXh0TGluZTsNCiAgICAgIH0NCiAgICAgIGlmIChpID09IDApIHJldHVybiBmYWxzZTsgLy8gQWxyZWFkeSBhdCBsYXN0IGxpbmUNCiAgICAgIHNlbGVjdC5zZXRDdXJzb3JQb3ModGhpcy5jb250YWluZXIsIHtub2RlOiBsaW5lLCBvZmZzZXQ6IDB9KTsNCiAgICAgIHNlbGVjdC5zY3JvbGxUb0N1cnNvcih0aGlzLmNvbnRhaW5lcik7DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9LA0KDQogICAgLy8gRGVsYXkgKG9yIGluaXRpYXRlKSB0aGUgbmV4dCBwYXJlbiBoaWdobGlnaHQgZXZlbnQuDQogICAgc2NoZWR1bGVQYXJlbkhpZ2hsaWdodDogZnVuY3Rpb24oKSB7DQogICAgICBpZiAodGhpcy5wYXJlbkV2ZW50KSBwYXJlbnQuY2xlYXJUaW1lb3V0KHRoaXMucGFyZW5FdmVudCk7DQogICAgICB2YXIgc2VsZiA9IHRoaXM7DQogICAgICB0aGlzLnBhcmVuRXZlbnQgPSBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpe3NlbGYuaGlnaGxpZ2h0UGFyZW5zKCk7fSwgMzAwKTsNCiAgICB9LA0KDQogICAgLy8gVGFrZSB0aGUgdG9rZW4gYmVmb3JlIHRoZSBjdXJzb3IuIElmIGl0IGNvbnRhaW5zIGEgY2hhcmFjdGVyIGluDQogICAgLy8gJygpW117fScsIHNlYXJjaCBmb3IgdGhlIG1hdGNoaW5nIHBhcmVuL2JyYWNlL2JyYWNrZXQsIGFuZA0KICAgIC8vIGhpZ2hsaWdodCB0aGVtIGluIGdyZWVuIGZvciBhIG1vbWVudCwgb3IgcmVkIGlmIG5vIHByb3BlciBtYXRjaA0KICAgIC8vIHdhcyBmb3VuZC4NCiAgICBoaWdobGlnaHRQYXJlbnM6IGZ1bmN0aW9uKGp1bXAsIGZyb21LZXkpIHsNCiAgICAgIHZhciBzZWxmID0gdGhpcywgbWFyayA9IHRoaXMub3B0aW9ucy5tYXJrUGFyZW47DQogICAgICBpZiAodHlwZW9mIG1hcmsgPT0gInN0cmluZyIpIG1hcmsgPSBbbWFyaywgbWFya107DQogICAgICAvLyBnaXZlIHRoZSByZWxldmFudCBub2RlcyBhIGNvbG91ci4NCiAgICAgIGZ1bmN0aW9uIGhpZ2hsaWdodChub2RlLCBvaykgew0KICAgICAgICBpZiAoIW5vZGUpIHJldHVybjsNCiAgICAgICAgaWYgKCFtYXJrKSB7DQogICAgICAgICAgbm9kZS5zdHlsZS5mb250V2VpZ2h0ID0gImJvbGQiOw0KICAgICAgICAgIG5vZGUuc3R5bGUuY29sb3IgPSBvayA/ICIjOEY4IiA6ICIjRjg4IjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChtYXJrLmNhbGwpIG1hcmsobm9kZSwgb2spOw0KICAgICAgICBlbHNlIG5vZGUuY2xhc3NOYW1lICs9ICIgIiArIG1hcmtbb2sgPyAwIDogMV07DQogICAgICB9DQogICAgICBmdW5jdGlvbiB1bmhpZ2hsaWdodChub2RlKSB7DQogICAgICAgIGlmICghbm9kZSkgcmV0dXJuOw0KICAgICAgICBpZiAobWFyayAmJiAhbWFyay5jYWxsKQ0KICAgICAgICAgIHJlbW92ZUNsYXNzKHJlbW92ZUNsYXNzKG5vZGUsIG1hcmtbMF0pLCBtYXJrWzFdKTsNCiAgICAgICAgZWxzZSBpZiAoc2VsZi5vcHRpb25zLnVubWFya1BhcmVuKQ0KICAgICAgICAgIHNlbGYub3B0aW9ucy51bm1hcmtQYXJlbihub2RlKTsNCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgbm9kZS5zdHlsZS5mb250V2VpZ2h0ID0gIiI7DQogICAgICAgICAgbm9kZS5zdHlsZS5jb2xvciA9ICIiOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBpZiAoIWZyb21LZXkgJiYgc2VsZi5oaWdobGlnaHRlZCkgew0KICAgICAgICB1bmhpZ2hsaWdodChzZWxmLmhpZ2hsaWdodGVkWzBdKTsNCiAgICAgICAgdW5oaWdobGlnaHQoc2VsZi5oaWdobGlnaHRlZFsxXSk7DQogICAgICB9DQoNCiAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cucGFyZW50IHx8ICF3aW5kb3cuc2VsZWN0KSByZXR1cm47DQogICAgICAvLyBDbGVhciB0aGUgZXZlbnQgcHJvcGVydHkuDQogICAgICBpZiAodGhpcy5wYXJlbkV2ZW50KSBwYXJlbnQuY2xlYXJUaW1lb3V0KHRoaXMucGFyZW5FdmVudCk7DQogICAgICB0aGlzLnBhcmVuRXZlbnQgPSBudWxsOw0KDQogICAgICAvLyBFeHRyYWN0IGEgJ3BhcmVuJyBmcm9tIGEgcGllY2Ugb2YgdGV4dC4NCiAgICAgIGZ1bmN0aW9uIHBhcmVuKG5vZGUpIHsNCiAgICAgICAgaWYgKG5vZGUuY3VycmVudFRleHQpIHsNCiAgICAgICAgICB2YXIgbWF0Y2ggPSBub2RlLmN1cnJlbnRUZXh0Lm1hdGNoKC9eW1xzXHUwMGEwXSooW1woXClcW1xde31dKVtcc1x1MDBhMF0qJC8pOw0KICAgICAgICAgIHJldHVybiBtYXRjaCAmJiBtYXRjaFsxXTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBkaXJlY3Rpb24gYSBwYXJlbiBpcyBmYWNpbmcuDQogICAgICBmdW5jdGlvbiBmb3J3YXJkKGNoKSB7DQogICAgICAgIHJldHVybiAvW1woXFtce10vLnRlc3QoY2gpOw0KICAgICAgfQ0KDQogICAgICB2YXIgY2gsIGN1cnNvciA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyLCB0cnVlKTsNCiAgICAgIGlmICghY3Vyc29yIHx8ICF0aGlzLmhpZ2hsaWdodEF0Q3Vyc29yKCkpIHJldHVybjsNCiAgICAgIGN1cnNvciA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyLCB0cnVlKTsNCiAgICAgIGlmICghKGN1cnNvciAmJiAoKGNoID0gcGFyZW4oY3Vyc29yKSkgfHwgKGN1cnNvciA9IGN1cnNvci5uZXh0U2libGluZykgJiYgKGNoID0gcGFyZW4oY3Vyc29yKSkpKSkNCiAgICAgICAgcmV0dXJuOw0KICAgICAgLy8gV2Ugb25seSBsb29rIGZvciB0b2tlbnMgd2l0aCB0aGUgc2FtZSBjbGFzc05hbWUuDQogICAgICB2YXIgY2xhc3NOYW1lID0gY3Vyc29yLmNsYXNzTmFtZSwgZGlyID0gZm9yd2FyZChjaCksIG1hdGNoID0gbWF0Y2hpbmdbY2hdOw0KDQogICAgICAvLyBTaW5jZSBwYXJ0cyBvZiB0aGUgZG9jdW1lbnQgbWlnaHQgbm90IGhhdmUgYmVlbiBwcm9wZXJseQ0KICAgICAgLy8gaGlnaGxpZ2h0ZWQsIGFuZCBpdCBpcyBoYXJkIHRvIGtub3cgaW4gYWR2YW5jZSB3aGljaCBwYXJ0IHdlDQogICAgICAvLyBoYXZlIHRvIHNjYW4sIHdlIGp1c3QgdHJ5LCBhbmQgd2hlbiB3ZSBmaW5kIGRpcnR5IG5vZGVzIHdlDQogICAgICAvLyBhYm9ydCwgcGFyc2UgdGhlbSwgYW5kIHJlLXRyeS4NCiAgICAgIGZ1bmN0aW9uIHRyeUZpbmRNYXRjaCgpIHsNCiAgICAgICAgdmFyIHN0YWNrID0gW10sIGNoLCBvayA9IHRydWU7DQogICAgICAgIGZvciAodmFyIHJ1bm5lciA9IGN1cnNvcjsgcnVubmVyOyBydW5uZXIgPSBkaXIgPyBydW5uZXIubmV4dFNpYmxpbmcgOiBydW5uZXIucHJldmlvdXNTaWJsaW5nKSB7DQogICAgICAgICAgaWYgKHJ1bm5lci5jbGFzc05hbWUgPT0gY2xhc3NOYW1lICYmIGlzU3BhbihydW5uZXIpICYmIChjaCA9IHBhcmVuKHJ1bm5lcikpKSB7DQogICAgICAgICAgICBpZiAoZm9yd2FyZChjaCkgPT0gZGlyKQ0KICAgICAgICAgICAgICBzdGFjay5wdXNoKGNoKTsNCiAgICAgICAgICAgIGVsc2UgaWYgKCFzdGFjay5sZW5ndGgpDQogICAgICAgICAgICAgIG9rID0gZmFsc2U7DQogICAgICAgICAgICBlbHNlIGlmIChzdGFjay5wb3AoKSAhPSBtYXRjaGluZ1tjaF0pDQogICAgICAgICAgICAgIG9rID0gZmFsc2U7DQogICAgICAgICAgICBpZiAoIXN0YWNrLmxlbmd0aCkgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UgaWYgKHJ1bm5lci5kaXJ0eSB8fCAhaXNTcGFuKHJ1bm5lcikgJiYgIWlzQlIocnVubmVyKSkgew0KICAgICAgICAgICAgcmV0dXJuIHtub2RlOiBydW5uZXIsIHN0YXR1czogImRpcnR5In07DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB7bm9kZTogcnVubmVyLCBzdGF0dXM6IHJ1bm5lciAmJiBva307DQogICAgICB9DQoNCiAgICAgIHdoaWxlICh0cnVlKSB7DQogICAgICAgIHZhciBmb3VuZCA9IHRyeUZpbmRNYXRjaCgpOw0KICAgICAgICBpZiAoZm91bmQuc3RhdHVzID09ICJkaXJ0eSIpIHsNCiAgICAgICAgICB0aGlzLmhpZ2hsaWdodChmb3VuZC5ub2RlLCBlbmRPZkxpbmUoZm91bmQubm9kZSkpOw0KICAgICAgICAgIC8vIE5lZWRlZCBiZWNhdXNlIGluIHNvbWUgY29ybmVyIGNhc2VzIGEgaGlnaGxpZ2h0IGRvZXMgbm90DQogICAgICAgICAgLy8gcmVhY2ggYSBub2RlLg0KICAgICAgICAgIGZvdW5kLm5vZGUuZGlydHkgPSBmYWxzZTsNCiAgICAgICAgICBjb250aW51ZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICBoaWdobGlnaHQoY3Vyc29yLCBmb3VuZC5zdGF0dXMpOw0KICAgICAgICAgIGhpZ2hsaWdodChmb3VuZC5ub2RlLCBmb3VuZC5zdGF0dXMpOw0KICAgICAgICAgIGlmIChmcm9tS2V5KQ0KICAgICAgICAgICAgcGFyZW50LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7dW5oaWdobGlnaHQoY3Vyc29yKTsgdW5oaWdobGlnaHQoZm91bmQubm9kZSk7fSwgNTAwKTsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICBzZWxmLmhpZ2hsaWdodGVkID0gW2N1cnNvciwgZm91bmQubm9kZV07DQogICAgICAgICAgaWYgKGp1bXAgJiYgZm91bmQubm9kZSkNCiAgICAgICAgICAgIHNlbGVjdC5mb2N1c0FmdGVyTm9kZShmb3VuZC5ub2RlLnByZXZpb3VzU2libGluZywgdGhpcy5jb250YWluZXIpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICB9DQogICAgfSwNCg0KICAgIC8vIEFkanVzdCB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHRoYXQNCiAgICAvLyB0aGUgY3Vyc29yIGlzIG9uIHNvIHRoYXQgaXQgaXMgaW5kZW50ZWQgcHJvcGVybHkuDQogICAgaW5kZW50QXRDdXJzb3I6IGZ1bmN0aW9uKGRpcmVjdGlvbikgew0KICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lci5maXJzdENoaWxkKSByZXR1cm47DQogICAgICAvLyBUaGUgbGluZSBoYXMgdG8gaGF2ZSB1cC10by1kYXRlIGxleGljYWwgaW5mb3JtYXRpb24sIHNvIHdlDQogICAgICAvLyBoaWdobGlnaHQgaXQgZmlyc3QuDQogICAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0QXRDdXJzb3IoKSkgcmV0dXJuOw0KICAgICAgdmFyIGN1cnNvciA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKHRoaXMuY29udGFpbmVyLCBmYWxzZSk7DQogICAgICAvLyBJZiB3ZSBjb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHBsYWNlIG9mIHRoZSBjdXJzb3IsDQogICAgICAvLyB0aGVyZSdzIG5vdGhpbmcgdG8gaW5kZW50Lg0KICAgICAgaWYgKGN1cnNvciA9PT0gZmFsc2UpDQogICAgICAgIHJldHVybjsNCiAgICAgIHNlbGVjdC5tYXJrU2VsZWN0aW9uKCk7DQogICAgICB0aGlzLmluZGVudExpbmVBZnRlcihzdGFydE9mTGluZShjdXJzb3IpLCBkaXJlY3Rpb24pOw0KICAgICAgc2VsZWN0LnNlbGVjdE1hcmtlZCgpOw0KICAgIH0sDQoNCiAgICAvLyBJbmRlbnQgYWxsIGxpbmVzIHdob3NlIHN0YXJ0IGZhbGxzIGluc2lkZSBvZiB0aGUgY3VycmVudA0KICAgIC8vIHNlbGVjdGlvbi4NCiAgICBpbmRlbnRSZWdpb246IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIGRpcmVjdGlvbiwgc2VsZWN0QWZ0ZXIpIHsNCiAgICAgIHZhciBjdXJyZW50ID0gKHN0YXJ0ID0gc3RhcnRPZkxpbmUoc3RhcnQpKSwgYmVmb3JlID0gc3RhcnQgJiYgc3RhcnRPZkxpbmUoc3RhcnQucHJldmlvdXNTaWJsaW5nKTsNCiAgICAgIGlmICghaXNCUihlbmQpKSBlbmQgPSBlbmRPZkxpbmUoZW5kLCB0aGlzLmNvbnRhaW5lcik7DQogICAgICB0aGlzLmFkZERpcnR5Tm9kZShzdGFydCk7DQoNCiAgICAgIGRvIHsNCiAgICAgICAgdmFyIG5leHQgPSBlbmRPZkxpbmUoY3VycmVudCwgdGhpcy5jb250YWluZXIpOw0KICAgICAgICBpZiAoY3VycmVudCkgdGhpcy5oaWdobGlnaHQoYmVmb3JlLCBuZXh0LCB0cnVlKTsNCiAgICAgICAgdGhpcy5pbmRlbnRMaW5lQWZ0ZXIoY3VycmVudCwgZGlyZWN0aW9uKTsNCiAgICAgICAgYmVmb3JlID0gY3VycmVudDsNCiAgICAgICAgY3VycmVudCA9IG5leHQ7DQogICAgICB9IHdoaWxlIChjdXJyZW50ICE9IGVuZCk7DQogICAgICBpZiAoc2VsZWN0QWZ0ZXIpDQogICAgICAgIHNlbGVjdC5zZXRDdXJzb3JQb3ModGhpcy5jb250YWluZXIsIHtub2RlOiBzdGFydCwgb2Zmc2V0OiAwfSwge25vZGU6IGVuZCwgb2Zmc2V0OiAwfSk7DQogICAgfSwNCg0KICAgIC8vIEZpbmQgdGhlIG5vZGUgdGhhdCB0aGUgY3Vyc29yIGlzIGluLCBtYXJrIGl0IGFzIGRpcnR5LCBhbmQgbWFrZQ0KICAgIC8vIHN1cmUgYSBoaWdobGlnaHQgcGFzcyBpcyBzY2hlZHVsZWQuDQogICAgY3Vyc29yQWN0aXZpdHk6IGZ1bmN0aW9uKHNhZmUpIHsNCiAgICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGhhY2sgYWJvdmUNCiAgICAgIGlmICh0aGlzLnVubG9hZGVkKSB7DQogICAgICAgIHdpbmRvdy5kb2N1bWVudC5kZXNpZ25Nb2RlID0gIm9mZiI7DQogICAgICAgIHdpbmRvdy5kb2N1bWVudC5kZXNpZ25Nb2RlID0gIm9uIjsNCiAgICAgICAgdGhpcy51bmxvYWRlZCA9IGZhbHNlOw0KICAgICAgfQ0KDQogICAgICBpZiAoaW50ZXJuZXRFeHBsb3Jlcikgew0KICAgICAgICB0aGlzLmNvbnRhaW5lci5jcmVhdGVUZXh0UmFuZ2UoKS5leGVjQ29tbWFuZCgidW5saW5rIik7DQogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNhdmVTZWxlY3Rpb25TbmFwc2hvdCk7DQogICAgICAgIHZhciBzZWxmID0gdGhpczsNCiAgICAgICAgdGhpcy5zYXZlU2VsZWN0aW9uU25hcHNob3QgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgIHZhciBzbmFwc2hvdCA9IHNlbGVjdC5nZXRCb29rbWFyayhzZWxmLmNvbnRhaW5lcik7DQogICAgICAgICAgaWYgKHNuYXBzaG90KSBzZWxmLnNlbGVjdGlvblNuYXBzaG90ID0gc25hcHNob3Q7DQogICAgICAgIH0sIDIwMCk7DQogICAgICB9DQoNCiAgICAgIHZhciBhY3Rpdml0eSA9IHRoaXMub3B0aW9ucy5vbkN1cnNvckFjdGl2aXR5Ow0KICAgICAgaWYgKCFzYWZlIHx8IGFjdGl2aXR5KSB7DQogICAgICAgIHZhciBjdXJzb3IgPSBzZWxlY3Quc2VsZWN0aW9uVG9wTm9kZSh0aGlzLmNvbnRhaW5lciwgZmFsc2UpOw0KICAgICAgICBpZiAoY3Vyc29yID09PSBmYWxzZSB8fCAhdGhpcy5jb250YWluZXIuZmlyc3RDaGlsZCkgcmV0dXJuOw0KICAgICAgICBjdXJzb3IgPSBjdXJzb3IgfHwgdGhpcy5jb250YWluZXIuZmlyc3RDaGlsZDsNCiAgICAgICAgaWYgKGFjdGl2aXR5KSBhY3Rpdml0eShjdXJzb3IpOw0KICAgICAgICBpZiAoIXNhZmUpIHsNCiAgICAgICAgICB0aGlzLnNjaGVkdWxlSGlnaGxpZ2h0KCk7DQogICAgICAgICAgdGhpcy5hZGREaXJ0eU5vZGUoY3Vyc29yKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0sDQoNCiAgICByZXBhcnNlQnVmZmVyOiBmdW5jdGlvbigpIHsNCiAgICAgIGZvckVhY2godGhpcy5jb250YWluZXIuY2hpbGROb2RlcywgZnVuY3Rpb24obm9kZSkge25vZGUuZGlydHkgPSB0cnVlO30pOw0KICAgICAgaWYgKHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQpDQogICAgICAgIHRoaXMuYWRkRGlydHlOb2RlKHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQpOw0KICAgIH0sDQoNCiAgICAvLyBBZGQgYSBub2RlIHRvIHRoZSBzZXQgb2YgZGlydHkgbm9kZXMsIGlmIGl0IGlzbid0IGFscmVhZHkgaW4NCiAgICAvLyB0aGVyZS4NCiAgICBhZGREaXJ0eU5vZGU6IGZ1bmN0aW9uKG5vZGUpIHsNCiAgICAgIG5vZGUgPSBub2RlIHx8IHRoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ7DQogICAgICBpZiAoIW5vZGUpIHJldHVybjsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRpcnR5Lmxlbmd0aDsgaSsrKQ0KICAgICAgICBpZiAodGhpcy5kaXJ0eVtpXSA9PSBub2RlKSByZXR1cm47DQoNCiAgICAgIGlmIChub2RlLm5vZGVUeXBlICE9IDMpDQogICAgICAgIG5vZGUuZGlydHkgPSB0cnVlOw0KICAgICAgdGhpcy5kaXJ0eS5wdXNoKG5vZGUpOw0KICAgIH0sDQoNCiAgICBhbGxDbGVhbjogZnVuY3Rpb24oKSB7DQogICAgICByZXR1cm4gIXRoaXMuZGlydHkubGVuZ3RoOw0KICAgIH0sDQoNCiAgICAvLyBDYXVzZSBhIGhpZ2hsaWdodCBwYXNzIHRvIGhhcHBlbiBpbiBvcHRpb25zLnBhc3NEZWxheQ0KICAgIC8vIG1pbGxpc2Vjb25kcy4gQ2xlYXIgdGhlIGV4aXN0aW5nIHRpbWVvdXQsIGlmIG9uZSBleGlzdHMuIFRoaXMNCiAgICAvLyB3YXksIHRoZSBwYXNzZXMgZG8gbm90IGhhcHBlbiB3aGlsZSB0aGUgdXNlciBpcyB0eXBpbmcsIGFuZA0KICAgIC8vIHNob3VsZCBhcyB1bm9idHJ1c2l2ZSBhcyBwb3NzaWJsZS4NCiAgICBzY2hlZHVsZUhpZ2hsaWdodDogZnVuY3Rpb24oKSB7DQogICAgICAvLyBUaW1lb3V0cyBhcmUgcm91dGVkIHRocm91Z2ggdGhlIHBhcmVudCB3aW5kb3csIGJlY2F1c2Ugb24NCiAgICAgIC8vIHNvbWUgYnJvd3NlcnMgZGVzaWduTW9kZSB3aW5kb3dzIGRvIG5vdCBmaXJlIHRpbWVvdXRzLg0KICAgICAgdmFyIHNlbGYgPSB0aGlzOw0KICAgICAgcGFyZW50LmNsZWFyVGltZW91dCh0aGlzLmhpZ2hsaWdodFRpbWVvdXQpOw0KICAgICAgdGhpcy5oaWdobGlnaHRUaW1lb3V0ID0gcGFyZW50LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzZWxmLmhpZ2hsaWdodERpcnR5KCk7fSwgdGhpcy5vcHRpb25zLnBhc3NEZWxheSk7DQogICAgfSwNCg0KICAgIC8vIEZldGNoIG9uZSBkaXJ0eSBub2RlLCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIGRpcnR5IHNldC4NCiAgICBnZXREaXJ0eU5vZGU6IGZ1bmN0aW9uKCkgew0KICAgICAgd2hpbGUgKHRoaXMuZGlydHkubGVuZ3RoID4gMCkgew0KICAgICAgICB2YXIgZm91bmQgPSB0aGlzLmRpcnR5LnBvcCgpOw0KICAgICAgICAvLyBJRTggc29tZXRpbWVzIHRocm93cyBhbiB1bmV4cGxhaW5hYmxlICdpbnZhbGlkIGFyZ3VtZW50Jw0KICAgICAgICAvLyBleGNlcHRpb24gZm9yIGZvdW5kLnBhcmVudE5vZGUNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAvLyBJZiB0aGUgbm9kZSBoYXMgYmVlbiBjb2xvdXJlZCBpbiB0aGUgbWVhbnRpbWUsIG9yIGlzIG5vDQogICAgICAgICAgLy8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCwgaXQgc2hvdWxkIG5vdCBiZSByZXR1cm5lZC4NCiAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgZm91bmQucGFyZW50Tm9kZSAhPSB0aGlzLmNvbnRhaW5lcikNCiAgICAgICAgICAgIGZvdW5kID0gZm91bmQucGFyZW50Tm9kZTsNCiAgICAgICAgICBpZiAoZm91bmQgJiYgKGZvdW5kLmRpcnR5IHx8IGZvdW5kLm5vZGVUeXBlID09IDMpKQ0KICAgICAgICAgICAgcmV0dXJuIGZvdW5kOw0KICAgICAgICB9IGNhdGNoIChlKSB7fQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIG51bGw7DQogICAgfSwNCg0KICAgIC8vIFBpY2sgZGlydHkgbm9kZXMsIGFuZCBoaWdobGlnaHQgdGhlbSwgdW50aWwgb3B0aW9ucy5wYXNzVGltZQ0KICAgIC8vIG1pbGxpc2Vjb25kcyBoYXZlIGdvbmUgYnkuIFRoZSBoaWdobGlnaHQgbWV0aG9kIHdpbGwgY29udGludWUNCiAgICAvLyB0byBuZXh0IGxpbmVzIGFzIGxvbmcgYXMgaXQgZmluZHMgZGlydHkgbm9kZXMuIEl0IHJldHVybnMNCiAgICAvLyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGxhY2Ugd2hlcmUgaXQgc3RvcHBlZC4gSWYgdGhlcmUgYXJlDQogICAgLy8gZGlydHkgbm9kZXMgbGVmdCBhZnRlciB0aGlzIGZ1bmN0aW9uIGhhcyBzcGVudCBhbGwgaXRzIGxpbmVzLA0KICAgIC8vIGl0IHNoZWR1bGVzIGFub3RoZXIgaGlnaGxpZ2h0IHRvIGZpbmlzaCB0aGUgam9iLg0KICAgIGhpZ2hsaWdodERpcnR5OiBmdW5jdGlvbihmb3JjZSkgew0KICAgICAgLy8gUHJldmVudCBGRiBmcm9tIHJhaXNpbmcgYW4gZXJyb3Igd2hlbiBpdCBpcyBmaXJpbmcgdGltZW91dHMNCiAgICAgIC8vIG9uIGEgcGFnZSB0aGF0J3Mgbm8gbG9uZ2VyIGxvYWRlZC4NCiAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cucGFyZW50IHx8ICF3aW5kb3cuc2VsZWN0KSByZXR1cm4gZmFsc2U7DQoNCiAgICAgIGlmICghdGhpcy5vcHRpb25zLnJlYWRPbmx5KSBzZWxlY3QubWFya1NlbGVjdGlvbigpOw0KICAgICAgdmFyIHN0YXJ0LCBlbmRUaW1lID0gZm9yY2UgPyBudWxsIDogdGltZSgpICsgdGhpcy5vcHRpb25zLnBhc3NUaW1lOw0KICAgICAgd2hpbGUgKCh0aW1lKCkgPCBlbmRUaW1lIHx8IGZvcmNlKSAmJiAoc3RhcnQgPSB0aGlzLmdldERpcnR5Tm9kZSgpKSkgew0KICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5oaWdobGlnaHQoc3RhcnQsIGVuZFRpbWUpOw0KICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5ub2RlICYmIHJlc3VsdC5kaXJ0eSkNCiAgICAgICAgICB0aGlzLmFkZERpcnR5Tm9kZShyZXN1bHQubm9kZS5uZXh0U2libGluZyk7DQogICAgICB9DQogICAgICBpZiAoIXRoaXMub3B0aW9ucy5yZWFkT25seSkgc2VsZWN0LnNlbGVjdE1hcmtlZCgpOw0KICAgICAgaWYgKHN0YXJ0KSB0aGlzLnNjaGVkdWxlSGlnaGxpZ2h0KCk7DQogICAgICByZXR1cm4gdGhpcy5kaXJ0eS5sZW5ndGggPT0gMDsNCiAgICB9LA0KDQogICAgLy8gQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkIHRocm91Z2ggYSB0aW1lb3V0LCB3aWxsDQogICAgLy8gY29udGludW91c2x5IHJlLXBhcnNlIHRoZSBkb2N1bWVudC4NCiAgICBkb2N1bWVudFNjYW5uZXI6IGZ1bmN0aW9uKHBhc3NUaW1lKSB7DQogICAgICB2YXIgc2VsZiA9IHRoaXMsIHBvcyA9IG51bGw7DQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7DQogICAgICAgIC8vIEZGIHRpbWVvdXQgd2VpcmRuZXNzIHdvcmthcm91bmQuDQogICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cucGFyZW50IHx8ICF3aW5kb3cuc2VsZWN0KSByZXR1cm47DQogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IG5vZGUgaXMgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudC4uLiBvaA0KICAgICAgICAvLyB3ZWxsLCB3ZSBzdGFydCBvdmVyLg0KICAgICAgICBpZiAocG9zICYmIHBvcy5wYXJlbnROb2RlICE9IHNlbGYuY29udGFpbmVyKQ0KICAgICAgICAgIHBvcyA9IG51bGw7DQogICAgICAgIHNlbGVjdC5tYXJrU2VsZWN0aW9uKCk7DQogICAgICAgIHZhciByZXN1bHQgPSBzZWxmLmhpZ2hsaWdodChwb3MsIHRpbWUoKSArIHBhc3NUaW1lLCB0cnVlKTsNCiAgICAgICAgc2VsZWN0LnNlbGVjdE1hcmtlZCgpOw0KICAgICAgICB2YXIgbmV3UG9zID0gcmVzdWx0ID8gKHJlc3VsdC5ub2RlICYmIHJlc3VsdC5ub2RlLm5leHRTaWJsaW5nKSA6IG51bGw7DQogICAgICAgIHBvcyA9IChwb3MgPT0gbmV3UG9zKSA/IG51bGwgOiBuZXdQb3M7DQogICAgICAgIHNlbGYuZGVsYXlTY2FubmluZygpOw0KICAgICAgfTsNCiAgICB9LA0KDQogICAgLy8gU3RhcnRzIHRoZSBjb250aW51b3VzIHNjYW5uaW5nIHByb2Nlc3MgZm9yIHRoaXMgZG9jdW1lbnQgYWZ0ZXINCiAgICAvLyBhIGdpdmVuIGludGVydmFsLg0KICAgIGRlbGF5U2Nhbm5pbmc6IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKHRoaXMuc2Nhbm5lcikgew0KICAgICAgICBwYXJlbnQuY2xlYXJUaW1lb3V0KHRoaXMuZG9jdW1lbnRTY2FuKTsNCiAgICAgICAgdGhpcy5kb2N1bWVudFNjYW4gPSBwYXJlbnQuc2V0VGltZW91dCh0aGlzLnNjYW5uZXIsIHRoaXMub3B0aW9ucy5jb250aW51b3VzU2Nhbm5pbmcpOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICAvLyBUaGUgZnVuY3Rpb24gdGhhdCBkb2VzIHRoZSBhY3R1YWwgaGlnaGxpZ2h0aW5nL2NvbG91cmluZyAod2l0aA0KICAgIC8vIGhlbHAgZnJvbSB0aGUgcGFyc2VyIGFuZCB0aGUgRE9NIG5vcm1hbGl6ZXIpLiBJdHMgaW50ZXJmYWNlIGlzDQogICAgLy8gcmF0aGVyIG92ZXJjb21wbGljYXRlZCwgYmVjYXVzZSBpdCBpcyB1c2VkIGluIGRpZmZlcmVudA0KICAgIC8vIHNpdHVhdGlvbnM6IGVuc3VyaW5nIHRoYXQgYSBjZXJ0YWluIGxpbmUgaXMgaGlnaGxpZ2h0ZWQsIG9yDQogICAgLy8gaGlnaGxpZ2h0aW5nIHVwIHRvIFggbWlsbGlzZWNvbmRzIHN0YXJ0aW5nIGZyb20gYSBjZXJ0YWluDQogICAgLy8gcG9pbnQuIFRoZSAnZnJvbScgYXJndW1lbnQgZ2l2ZXMgdGhlIG5vZGUgYXQgd2hpY2ggaXQgc2hvdWxkDQogICAgLy8gc3RhcnQuIElmIHRoaXMgaXMgbnVsbCwgaXQgd2lsbCBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQ0KICAgIC8vIGRvY3VtZW50LiBXaGVuIGEgdGltZXN0YW1wIGlzIGdpdmVuIHdpdGggdGhlICd0YXJnZXQnIGFyZ3VtZW50LA0KICAgIC8vIGl0IHdpbGwgc3RvcCBoaWdobGlnaHRpbmcgYXQgdGhhdCB0aW1lLiBJZiB0aGlzIGFyZ3VtZW50IGhvbGRzDQogICAgLy8gYSBET00gbm9kZSwgaXQgd2lsbCBoaWdobGlnaHQgdW50aWwgaXQgcmVhY2hlcyB0aGF0IG5vZGUuIElmIGF0DQogICAgLy8gYW55IHRpbWUgaXQgY29tZXMgYWNyb3NzIHR3byAnY2xlYW4nIGxpbmVzIChubyBkaXJ0eSBub2RlcyksIGl0DQogICAgLy8gd2lsbCBzdG9wLCBleGNlcHQgd2hlbiAnY2xlYW5MaW5lcycgaXMgdHJ1ZS4gbWF4QmFja3RyYWNrIGlzDQogICAgLy8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIGJhY2t0cmFjayB0byBmaW5kIGFuIGV4aXN0aW5nDQogICAgLy8gcGFyc2VyIGluc3RhbmNlLiBUaGlzIGlzIHVzZWQgdG8gZ2l2ZSB1cCBpbiBzaXR1YXRpb25zIHdoZXJlIGENCiAgICAvLyBoaWdobGlnaHQgd291bGQgdGFrZSB0b28gbG9uZyBhbmQgZnJlZXplIHRoZSBicm93c2VyIGludGVyZmFjZS4NCiAgICBoaWdobGlnaHQ6IGZ1bmN0aW9uKGZyb20sIHRhcmdldCwgY2xlYW5MaW5lcywgbWF4QmFja3RyYWNrKXsNCiAgICAgIHZhciBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lciwgc2VsZiA9IHRoaXMsIGFjdGl2ZSA9IHRoaXMub3B0aW9ucy5hY3RpdmVUb2tlbnM7DQogICAgICB2YXIgZW5kVGltZSA9ICh0eXBlb2YgdGFyZ2V0ID09ICJudW1iZXIiID8gdGFyZ2V0IDogbnVsbCk7DQoNCiAgICAgIGlmICghY29udGFpbmVyLmZpcnN0Q2hpbGQpDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIC8vIEJhY2t0cmFjayB0byB0aGUgZmlyc3Qgbm9kZSBiZWZvcmUgZnJvbSB0aGF0IGhhcyBhIHBhcnRpYWwNCiAgICAgIC8vIHBhcnNlIHN0b3JlZC4NCiAgICAgIHdoaWxlIChmcm9tICYmICghZnJvbS5wYXJzZXJGcm9tSGVyZSB8fCBmcm9tLmRpcnR5KSkgew0KICAgICAgICBpZiAobWF4QmFja3RyYWNrICE9IG51bGwgJiYgaXNCUihmcm9tKSAmJiAoLS1tYXhCYWNrdHJhY2spIDwgMCkNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIGZyb20gPSBmcm9tLnByZXZpb3VzU2libGluZzsNCiAgICAgIH0NCiAgICAgIC8vIElmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCwgZG8gbm90aGluZy4NCiAgICAgIGlmIChmcm9tICYmICFmcm9tLm5leHRTaWJsaW5nKQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQoNCiAgICAgIC8vIENoZWNrIHdoZXRoZXIgYSBwYXJ0ICg8c3Bhbj4gbm9kZSkgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHRva2VuDQogICAgICAvLyBtYXRjaC4NCiAgICAgIGZ1bmN0aW9uIGNvcnJlY3RQYXJ0KHRva2VuLCBwYXJ0KXsNCiAgICAgICAgcmV0dXJuICFwYXJ0LnJlZHVjZWQgJiYgcGFydC5jdXJyZW50VGV4dCA9PSB0b2tlbi52YWx1ZSAmJiBwYXJ0LmNsYXNzTmFtZSA9PSB0b2tlbi5zdHlsZTsNCiAgICAgIH0NCiAgICAgIC8vIFNob3J0ZW4gdGhlIHRleHQgYXNzb2NpYXRlZCB3aXRoIGEgcGFydCBieSBjaG9wcGluZyBvZmYNCiAgICAgIC8vIGNoYXJhY3RlcnMgZnJvbSB0aGUgZnJvbnQuIE5vdGUgdGhhdCBvbmx5IHRoZSBjdXJyZW50VGV4dA0KICAgICAgLy8gcHJvcGVydHkgZ2V0cyBjaGFuZ2VkLiBGb3IgZWZmaWNpZW5jeSByZWFzb25zLCB3ZSBsZWF2ZSB0aGUNCiAgICAgIC8vIG5vZGVWYWx1ZSBhbG9uZSAtLSB3ZSBzZXQgdGhlIHJlZHVjZWQgZmxhZyB0byBpbmRpY2F0ZSB0aGF0DQogICAgICAvLyB0aGlzIHBhcnQgbXVzdCBiZSByZXBsYWNlZC4NCiAgICAgIGZ1bmN0aW9uIHNob3J0ZW5QYXJ0KHBhcnQsIG1pbnVzKXsNCiAgICAgICAgcGFydC5jdXJyZW50VGV4dCA9IHBhcnQuY3VycmVudFRleHQuc3Vic3RyaW5nKG1pbnVzKTsNCiAgICAgICAgcGFydC5yZWR1Y2VkID0gdHJ1ZTsNCiAgICAgIH0NCiAgICAgIC8vIENyZWF0ZSBhIHBhcnQgY29ycmVzcG9uZGluZyB0byBhIGdpdmVuIHRva2VuLg0KICAgICAgZnVuY3Rpb24gdG9rZW5QYXJ0KHRva2VuKXsNCiAgICAgICAgdmFyIHBhcnQgPSBtYWtlUGFydFNwYW4odG9rZW4udmFsdWUpOyAgICAgDQogICAgICAgIHBhcnQuY2xhc3NOYW1lID0gdG9rZW4uc3R5bGU7DQogICAgICAgIHJldHVybiBwYXJ0Ow0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBtYXliZVRvdWNoKG5vZGUpIHsNCiAgICAgICAgaWYgKG5vZGUpIHsNCiAgICAgICAgICB2YXIgb2xkID0gbm9kZS5vbGROZXh0U2libGluZzsNCiAgICAgICAgICBpZiAobGluZURpcnR5IHx8IG9sZCA9PT0gdW5kZWZpbmVkIHx8IG5vZGUubmV4dFNpYmxpbmcgIT0gb2xkKQ0KICAgICAgICAgICAgc2VsZi5oaXN0b3J5LnRvdWNoKG5vZGUpOw0KICAgICAgICAgIG5vZGUub2xkTmV4dFNpYmxpbmcgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHZhciBvbGQgPSBzZWxmLmNvbnRhaW5lci5vbGRGaXJzdENoaWxkOw0KICAgICAgICAgIGlmIChsaW5lRGlydHkgfHwgb2xkID09PSB1bmRlZmluZWQgfHwgc2VsZi5jb250YWluZXIuZmlyc3RDaGlsZCAhPSBvbGQpDQogICAgICAgICAgICBzZWxmLmhpc3RvcnkudG91Y2gobnVsbCk7DQogICAgICAgICAgc2VsZi5jb250YWluZXIub2xkRmlyc3RDaGlsZCA9IHNlbGYuY29udGFpbmVyLmZpcnN0Q2hpbGQ7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgLy8gR2V0IHRoZSB0b2tlbiBzdHJlYW0uIElmIGZyb20gaXMgbnVsbCwgd2Ugc3RhcnQgd2l0aCBhIG5ldw0KICAgICAgLy8gcGFyc2VyIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmcmFtZSwgb3RoZXJ3aXNlIGEgcGFydGlhbCBwYXJzZQ0KICAgICAgLy8gaXMgcmVzdW1lZC4NCiAgICAgIHZhciB0cmF2ZXJzYWwgPSB0cmF2ZXJzZURPTShmcm9tID8gZnJvbS5uZXh0U2libGluZyA6IGNvbnRhaW5lci5maXJzdENoaWxkKSwNCiAgICAgICAgICBzdHJlYW0gPSBzdHJpbmdTdHJlYW0odHJhdmVyc2FsKSwNCiAgICAgICAgICBwYXJzZWQgPSBmcm9tID8gZnJvbS5wYXJzZXJGcm9tSGVyZShzdHJlYW0pIDogRWRpdG9yLlBhcnNlci5tYWtlKHN0cmVhbSk7DQoNCiAgICAgIGZ1bmN0aW9uIHN1cnJvdW5kZWRCeUJScyhub2RlKSB7DQogICAgICAgIHJldHVybiAobm9kZS5wcmV2aW91c1NpYmxpbmcgPT0gbnVsbCB8fCBpc0JSKG5vZGUucHJldmlvdXNTaWJsaW5nKSkgJiYNCiAgICAgICAgICAgICAgIChub2RlLm5leHRTaWJsaW5nID09IG51bGwgfHwgaXNCUihub2RlLm5leHRTaWJsaW5nKSk7DQogICAgICB9DQoNCiAgICAgIC8vIHBhcnRzIGlzIGFuIGludGVyZmFjZSB0byBtYWtlIGl0IHBvc3NpYmxlIHRvICdkZWxheScgZmV0Y2hpbmcNCiAgICAgIC8vIHRoZSBuZXh0IERPTSBub2RlIHVudGlsIHdlIGFyZSBjb21wbGV0ZWx5IGRvbmUgd2l0aCB0aGUgb25lDQogICAgICAvLyBiZWZvcmUgaXQuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb2Z0ZW4gdGhlIG5leHQgbm9kZSBpcw0KICAgICAgLy8gbm90IHlldCBhdmFpbGFibGUgd2hlbiB3ZSB3YW50IHRvIHByb2NlZWQgcGFzdCB0aGUgY3VycmVudA0KICAgICAgLy8gb25lLg0KICAgICAgdmFyIHBhcnRzID0gew0KICAgICAgICBjdXJyZW50OiBudWxsLA0KICAgICAgICAvLyBGZXRjaCBjdXJyZW50IG5vZGUuDQogICAgICAgIGdldDogZnVuY3Rpb24oKXsNCiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudCkNCiAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IHRyYXZlcnNhbC5ub2Rlcy5zaGlmdCgpOw0KICAgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7DQogICAgICAgIH0sDQogICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgcGFydCAoZG8gbm90IGZldGNoIGl0IHlldCkuDQogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCl7DQogICAgICAgICAgdGhpcy5jdXJyZW50ID0gbnVsbDsNCiAgICAgICAgfSwNCiAgICAgICAgLy8gUmVtb3ZlIHRoZSBjdXJyZW50IHBhcnQgZnJvbSB0aGUgRE9NIHRyZWUsIGFuZCBtb3ZlIHRvIHRoZQ0KICAgICAgICAvLyBuZXh0Lg0KICAgICAgICByZW1vdmU6IGZ1bmN0aW9uKCl7DQogICAgICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuZ2V0KCkpOw0KICAgICAgICAgIHRoaXMuY3VycmVudCA9IG51bGw7DQogICAgICAgIH0sDQogICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgcGFydCB0aGF0IGlzIG5vdCBlbXB0eSwgZGlzY2FyZGluZyBlbXB0eQ0KICAgICAgICAvLyBwYXJ0cy4NCiAgICAgICAgZ2V0Tm9uRW1wdHk6IGZ1bmN0aW9uKCl7DQogICAgICAgICAgdmFyIHBhcnQgPSB0aGlzLmdldCgpOw0KICAgICAgICAgIC8vIEFsbG93IGVtcHR5IG5vZGVzIHdoZW4gdGhleSBhcmUgYWxvbmUgb24gYSBsaW5lLCBuZWVkZWQNCiAgICAgICAgICAvLyBmb3IgdGhlIEZGIGN1cnNvciBidWcgd29ya2Fyb3VuZCAoc2VlIHNlbGVjdC5qcywNCiAgICAgICAgICAvLyBpbnNlcnROZXdsaW5lQXRDdXJzb3IpLg0KICAgICAgICAgIHdoaWxlIChwYXJ0ICYmIGlzU3BhbihwYXJ0KSAmJiBwYXJ0LmN1cnJlbnRUZXh0ID09ICIiKSB7DQogICAgICAgICAgICAvLyBMZWF2ZSBlbXB0eSBub2RlcyB0aGF0IGFyZSBhbG9uZSBvbiBhIGxpbmUgYWxvbmUgaW4NCiAgICAgICAgICAgIC8vIE9wZXJhLCBzaW5jZSB0aGF0IGJyb3dzZXJzIGRvZXNuJ3QgZGVhbCB3ZWxsIHdpdGgNCiAgICAgICAgICAgIC8vIGhhdmluZyAyIEJScyBpbiBhIHJvdy4NCiAgICAgICAgICAgIGlmICh3aW5kb3cub3BlcmEgJiYgc3Vycm91bmRlZEJ5QlJzKHBhcnQpKSB7DQogICAgICAgICAgICAgIHRoaXMubmV4dCgpOw0KICAgICAgICAgICAgICBwYXJ0ID0gdGhpcy5nZXQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICB2YXIgb2xkID0gcGFydDsNCiAgICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgcGFydCA9IHRoaXMuZ2V0KCk7DQogICAgICAgICAgICAgIC8vIEFkanVzdCBzZWxlY3Rpb24gaW5mb3JtYXRpb24sIGlmIGFueS4gU2VlIHNlbGVjdC5qcyBmb3IgZGV0YWlscy4NCiAgICAgICAgICAgICAgc2VsZWN0LnNuYXBzaG90TW92ZShvbGQuZmlyc3RDaGlsZCwgcGFydCAmJiAocGFydC5maXJzdENoaWxkIHx8IHBhcnQpLCAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgcmV0dXJuIHBhcnQ7DQogICAgICAgIH0NCiAgICAgIH07DQoNCiAgICAgIHZhciBsaW5lRGlydHkgPSBmYWxzZSwgcHJldkxpbmVEaXJ0eSA9IHRydWUsIGxpbmVOb2RlcyA9IDA7DQoNCiAgICAgIC8vIFRoaXMgZm9yRWFjaCBsb29wcyBvdmVyIHRoZSB0b2tlbnMgZnJvbSB0aGUgcGFyc2VkIHN0cmVhbSwgYW5kDQogICAgICAvLyBhdCB0aGUgc2FtZSB0aW1lIHVzZXMgdGhlIHBhcnRzIG9iamVjdCB0byBwcm9jZWVkIHRocm91Z2ggdGhlDQogICAgICAvLyBjb3JyZXNwb25kaW5nIERPTSBub2Rlcy4NCiAgICAgIGZvckVhY2gocGFyc2VkLCBmdW5jdGlvbih0b2tlbil7DQogICAgICAgIHZhciBwYXJ0ID0gcGFydHMuZ2V0Tm9uRW1wdHkoKTsNCg0KICAgICAgICBpZiAodG9rZW4udmFsdWUgPT0gIlxuIil7DQogICAgICAgICAgLy8gVGhlIGlkZWEgb2YgdGhlIHR3byBzdHJlYW1zIGFjdHVhbGx5IHN0YXlpbmcgc3luY2hyb25pemVkDQogICAgICAgICAgLy8gaXMgc3VjaCBhIGxvbmcgc2hvdCB0aGF0IHdlIGV4cGxpY2l0bHkgY2hlY2suDQogICAgICAgICAgaWYgKCFpc0JSKHBhcnQpKQ0KICAgICAgICAgICAgdGhyb3cgIlBhcnNlciBvdXQgb2Ygc3luYy4gRXhwZWN0ZWQgQlIuIjsNCg0KICAgICAgICAgIGlmIChwYXJ0LmRpcnR5IHx8ICFwYXJ0LmluZGVudGF0aW9uKSBsaW5lRGlydHkgPSB0cnVlOw0KICAgICAgICAgIG1heWJlVG91Y2goZnJvbSk7DQogICAgICAgICAgZnJvbSA9IHBhcnQ7DQoNCiAgICAgICAgICAvLyBFdmVyeSA8YnI+IGdldHMgYSBjb3B5IG9mIHRoZSBwYXJzZXIgc3RhdGUgYW5kIGEgbGV4aWNhbA0KICAgICAgICAgIC8vIGNvbnRleHQgYXNzaWduZWQgdG8gaXQuIFRoZSBmaXJzdCBpcyB1c2VkIHRvIGJlIGFibGUgdG8NCiAgICAgICAgICAvLyBsYXRlciByZXN1bWUgcGFyc2luZyBmcm9tIHRoaXMgcG9pbnQsIHRoZSBzZWNvbmQgaXMgdXNlZA0KICAgICAgICAgIC8vIGZvciBpbmRlbnRhdGlvbi4NCiAgICAgICAgICBwYXJ0LnBhcnNlckZyb21IZXJlID0gcGFyc2VkLmNvcHkoKTsNCiAgICAgICAgICBwYXJ0LmluZGVudGF0aW9uID0gdG9rZW4uaW5kZW50YXRpb24gfHwgYWx3YXlzWmVybzsNCiAgICAgICAgICBwYXJ0LmRpcnR5ID0gZmFsc2U7DQoNCiAgICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGFyZ3VtZW50IHdhc24ndCBhbiBpbnRlZ2VyLCBnbyBhdCBsZWFzdA0KICAgICAgICAgIC8vIHVudGlsIHRoYXQgbm9kZS4NCiAgICAgICAgICBpZiAoZW5kVGltZSA9PSBudWxsICYmIHBhcnQgPT0gdGFyZ2V0KSB0aHJvdyBTdG9wSXRlcmF0aW9uOw0KDQogICAgICAgICAgLy8gQSBjbGVhbiBsaW5lIHdpdGggbW9yZSB0aGFuIG9uZSBub2RlIG1lYW5zIHdlIGFyZSBkb25lLg0KICAgICAgICAgIC8vIFRocm93aW5nIGEgU3RvcEl0ZXJhdGlvbiBpcyB0aGUgd2F5IHRvIGJyZWFrIG91dCBvZiBhDQogICAgICAgICAgLy8gTW9jaGlLaXQgZm9yRWFjaCBsb29wLg0KICAgICAgICAgIGlmICgoZW5kVGltZSAhPSBudWxsICYmIHRpbWUoKSA+PSBlbmRUaW1lKSB8fCAoIWxpbmVEaXJ0eSAmJiAhcHJldkxpbmVEaXJ0eSAmJiBsaW5lTm9kZXMgPiAxICYmICFjbGVhbkxpbmVzKSkNCiAgICAgICAgICAgIHRocm93IFN0b3BJdGVyYXRpb247DQogICAgICAgICAgcHJldkxpbmVEaXJ0eSA9IGxpbmVEaXJ0eTsgbGluZURpcnR5ID0gZmFsc2U7IGxpbmVOb2RlcyA9IDA7DQogICAgICAgICAgcGFydHMubmV4dCgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIGlmICghaXNTcGFuKHBhcnQpKQ0KICAgICAgICAgICAgdGhyb3cgIlBhcnNlciBvdXQgb2Ygc3luYy4gRXhwZWN0ZWQgU1BBTi4iOw0KICAgICAgICAgIGlmIChwYXJ0LmRpcnR5KQ0KICAgICAgICAgICAgbGluZURpcnR5ID0gdHJ1ZTsNCiAgICAgICAgICBsaW5lTm9kZXMrKzsNCg0KICAgICAgICAgIC8vIElmIHRoZSBwYXJ0IG1hdGNoZXMgdGhlIHRva2VuLCB3ZSBjYW4gbGVhdmUgaXQgYWxvbmUuDQogICAgICAgICAgaWYgKGNvcnJlY3RQYXJ0KHRva2VuLCBwYXJ0KSl7DQogICAgICAgICAgICBpZiAoYWN0aXZlICYmIHBhcnQuZGlydHkpIGFjdGl2ZShwYXJ0LCB0b2tlbiwgc2VsZik7DQogICAgICAgICAgICBwYXJ0LmRpcnR5ID0gZmFsc2U7DQogICAgICAgICAgICBwYXJ0cy5uZXh0KCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSB0byBmaXggaXQuDQogICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsaW5lRGlydHkgPSB0cnVlOw0KICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSBjb3JyZWN0IHBhcnQuDQogICAgICAgICAgICB2YXIgbmV3UGFydCA9IHRva2VuUGFydCh0b2tlbik7DQogICAgICAgICAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKG5ld1BhcnQsIHBhcnQpOw0KICAgICAgICAgICAgaWYgKGFjdGl2ZSkgYWN0aXZlKG5ld1BhcnQsIHRva2VuLCBzZWxmKTsNCiAgICAgICAgICAgIHZhciB0b2tlbnNpemUgPSB0b2tlbi52YWx1ZS5sZW5ndGg7DQogICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMDsNCiAgICAgICAgICAgIC8vIEVhdCB1cCBwYXJ0cyB1bnRpbCB0aGUgdGV4dCBmb3IgdGhpcyB0b2tlbiBoYXMgYmVlbg0KICAgICAgICAgICAgLy8gcmVtb3ZlZCwgYWRqdXN0aW5nIHRoZSBzdG9yZWQgc2VsZWN0aW9uIGluZm8gKHNlZQ0KICAgICAgICAgICAgLy8gc2VsZWN0LmpzKSBpbiB0aGUgcHJvY2Vzcy4NCiAgICAgICAgICAgIHdoaWxlICh0b2tlbnNpemUgPiAwKSB7DQogICAgICAgICAgICAgIHBhcnQgPSBwYXJ0cy5nZXQoKTsNCiAgICAgICAgICAgICAgdmFyIHBhcnRzaXplID0gcGFydC5jdXJyZW50VGV4dC5sZW5ndGg7DQogICAgICAgICAgICAgIHNlbGVjdC5zbmFwc2hvdFJlcGxhY2VOb2RlKHBhcnQuZmlyc3RDaGlsZCwgbmV3UGFydC5maXJzdENoaWxkLCB0b2tlbnNpemUsIG9mZnNldCk7DQogICAgICAgICAgICAgIGlmIChwYXJ0c2l6ZSA+IHRva2Vuc2l6ZSl7DQogICAgICAgICAgICAgICAgc2hvcnRlblBhcnQocGFydCwgdG9rZW5zaXplKTsNCiAgICAgICAgICAgICAgICB0b2tlbnNpemUgPSAwOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHRva2Vuc2l6ZSAtPSBwYXJ0c2l6ZTsNCiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gcGFydHNpemU7DQogICAgICAgICAgICAgICAgcGFydHMucmVtb3ZlKCk7DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgICAgbWF5YmVUb3VjaChmcm9tKTsNCiAgICAgIHdlYmtpdExhc3RMaW5lSGFjayh0aGlzLmNvbnRhaW5lcik7DQoNCiAgICAgIC8vIFRoZSBmdW5jdGlvbiByZXR1cm5zIHNvbWUgc3RhdHVzIGluZm9ybWF0aW9uIHRoYXQgaXMgdXNlZCBieQ0KICAgICAgLy8gaGlnaHRsaWdodERpcnR5IHRvIGRldGVybWluZSB3aGV0aGVyIGFuZCB3aGVyZSBpdCBoYXMgdG8NCiAgICAgIC8vIGNvbnRpbnVlLg0KICAgICAgcmV0dXJuIHtub2RlOiBwYXJ0cy5nZXROb25FbXB0eSgpLA0KICAgICAgICAgICAgICBkaXJ0eTogbGluZURpcnR5fTsNCiAgICB9DQogIH07DQoNCiAgcmV0dXJuIEVkaXRvcjsNCn0pKCk7DQoNCmFkZEV2ZW50SGFuZGxlcih3aW5kb3csICJsb2FkIiwgZnVuY3Rpb24oKSB7DQogIHZhciBDb2RlTWlycm9yID0gd2luZG93LmZyYW1lRWxlbWVudC5Db2RlTWlycm9yOw0KICB2YXIgZSA9IENvZGVNaXJyb3IuZWRpdG9yID0gbmV3IEVkaXRvcihDb2RlTWlycm9yLm9wdGlvbnMpOw0KICBwYXJlbnQuc2V0VGltZW91dChtZXRob2QoQ29kZU1pcnJvciwgImluaXQiKSwgMCk7DQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/highlight.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gTWluaW1hbCBmcmFtaW5nIG5lZWRlZCB0byB1c2UgQ29kZU1pcnJvci1zdHlsZSBwYXJzZXJzIHRvIGhpZ2hsaWdodA0KLy8gY29kZS4gTG9hZCB0aGlzIGFsb25nIHdpdGggdG9rZW5pemUuanMsIHN0cmluZ3N0cmVhbS5qcywgYW5kIHlvdXINCi8vIHBhcnNlci4gVGhlbiBjYWxsIGhpZ2hsaWdodFRleHQsIHBhc3NpbmcgYSBzdHJpbmcgYXMgdGhlIGZpcnN0DQovLyBhcmd1bWVudCwgYW5kIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgZWl0aGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24NCi8vIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbiBhcnJheSBvZiBTUEFOIG5vZGVzIGZvciBldmVyeSBsaW5lIGluDQovLyB0aGUgY29kZSwgb3IgYSBET00gbm9kZSB0byB3aGljaCB0byBhcHBlbmQgdGhlc2Ugc3BhbnMsIGFuZA0KLy8gb3B0aW9uYWxseSAobm90IG5lZWRlZCBpZiB5b3Ugb25seSBsb2FkZWQgb25lIHBhcnNlcikgYSBwYXJzZXINCi8vIG9iamVjdC4NCg0KLy8gU3R1ZmYgZnJvbSB1dGlsLmpzIHRoYXQgdGhlIHBhcnNlcnMgYXJlIHVzaW5nLg0KdmFyIFN0b3BJdGVyYXRpb24gPSB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkge3JldHVybiAiU3RvcEl0ZXJhdGlvbiJ9fTsNCg0KdmFyIEVkaXRvciA9IHt9Ow0KdmFyIGluZGVudFVuaXQgPSAyOw0KDQooZnVuY3Rpb24oKXsNCiAgZnVuY3Rpb24gbm9ybWFsaXNlU3RyaW5nKHN0cmluZykgew0KICAgIHZhciB0YWIgPSAiIjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudFVuaXQ7IGkrKykgdGFiICs9ICIgIjsNCg0KICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cdC9nLCB0YWIpLnJlcGxhY2UoL1x1MDBhMC9nLCAiICIpLnJlcGxhY2UoL1xyXG4/L2csICJcbiIpOw0KICAgIHZhciBwb3MgPSAwLCBwYXJ0cyA9IFtdLCBsaW5lcyA9IHN0cmluZy5zcGxpdCgiXG4iKTsNCiAgICBmb3IgKHZhciBsaW5lID0gMDsgbGluZSA8IGxpbmVzLmxlbmd0aDsgbGluZSsrKSB7DQogICAgICBpZiAobGluZSAhPSAwKSBwYXJ0cy5wdXNoKCJcbiIpOw0KICAgICAgcGFydHMucHVzaChsaW5lc1tsaW5lXSk7DQogICAgfQ0KDQogICAgcmV0dXJuIHsNCiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICBpZiAocG9zIDwgcGFydHMubGVuZ3RoKSByZXR1cm4gcGFydHNbcG9zKytdOw0KICAgICAgICBlbHNlIHRocm93IFN0b3BJdGVyYXRpb247DQogICAgICB9DQogICAgfTsNCiAgfQ0KDQogIHdpbmRvdy5oaWdobGlnaHRUZXh0ID0gZnVuY3Rpb24oc3RyaW5nLCBjYWxsYmFjaywgcGFyc2VyKSB7DQogICAgcGFyc2VyID0gKHBhcnNlciB8fCBFZGl0b3IuUGFyc2VyKS5tYWtlKHN0cmluZ1N0cmVhbShub3JtYWxpc2VTdHJpbmcoc3RyaW5nKSkpOw0KICAgIHZhciBsaW5lID0gW107DQogICAgaWYgKGNhbGxiYWNrLm5vZGVUeXBlID09IDEpIHsNCiAgICAgIHZhciBub2RlID0gY2FsbGJhY2s7DQogICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uKGxpbmUpIHsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKQ0KICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQobGluZVtpXSk7DQogICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7DQogICAgICB9Ow0KICAgIH0NCg0KICAgIHRyeSB7DQogICAgICB3aGlsZSAodHJ1ZSkgew0KICAgICAgICB2YXIgdG9rZW4gPSBwYXJzZXIubmV4dCgpOw0KICAgICAgICBpZiAodG9rZW4udmFsdWUgPT0gIlxuIikgew0KICAgICAgICAgIGNhbGxiYWNrKGxpbmUpOw0KICAgICAgICAgIGxpbmUgPSBbXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCiAgICAgICAgICBzcGFuLmNsYXNzTmFtZSA9IHRva2VuLnN0eWxlOw0KICAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodG9rZW4udmFsdWUpKTsNCiAgICAgICAgICBsaW5lLnB1c2goc3Bhbik7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgY2F0Y2ggKGUpIHsNCiAgICAgIGlmIChlICE9IFN0b3BJdGVyYXRpb24pIHRocm93IGU7DQogICAgfQ0KICAgIGlmIChsaW5lLmxlbmd0aCkgY2FsbGJhY2sobGluZSk7DQogIH0NCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/mirrorframe.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogRGVtb25zdHJhdGlvbiBvZiBlbWJlZGRpbmcgQ29kZU1pcnJvciBpbiBhIGJpZ2dlciBhcHBsaWNhdGlvbi4gVGhlDQogKiBpbnRlcmZhY2UgZGVmaW5lZCBoZXJlIGlzIGEgbWVzcyBvZiBwcm9tcHRzIGFuZCBjb25maXJtcywgYW5kDQogKiBzaG91bGQgcHJvYmFibHkgbm90IGJlIHVzZWQgaW4gYSByZWFsIHByb2plY3QuDQogKi8NCg0KZnVuY3Rpb24gTWlycm9yRnJhbWUocGxhY2UsIG9wdGlvbnMpIHsNCiAgdGhpcy5ob21lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogIGlmIChwbGFjZS5hcHBlbmRDaGlsZCkNCiAgICBwbGFjZS5hcHBlbmRDaGlsZCh0aGlzLmhvbWUpOw0KICBlbHNlDQogICAgcGxhY2UodGhpcy5ob21lKTsNCg0KICB2YXIgc2VsZiA9IHRoaXM7DQogIGZ1bmN0aW9uIG1ha2VCdXR0b24obmFtZSwgYWN0aW9uKSB7DQogICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7DQogICAgYnV0dG9uLnR5cGUgPSAiYnV0dG9uIjsNCiAgICBidXR0b24udmFsdWUgPSBuYW1lOw0KICAgIHNlbGYuaG9tZS5hcHBlbmRDaGlsZChidXR0b24pOw0KICAgIGJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKXtzZWxmW2FjdGlvbl0uY2FsbChzZWxmKTt9Ow0KICB9DQoNCiAgbWFrZUJ1dHRvbigiU2VhcmNoIiwgInNlYXJjaCIpOw0KICBtYWtlQnV0dG9uKCJSZXBsYWNlIiwgInJlcGxhY2UiKTsNCiAgbWFrZUJ1dHRvbigiQ3VycmVudCBsaW5lIiwgImxpbmUiKTsNCiAgbWFrZUJ1dHRvbigiSnVtcCB0byBsaW5lIiwgImp1bXAiKTsNCiAgbWFrZUJ1dHRvbigiSW5zZXJ0IGNvbnN0cnVjdG9yIiwgIm1hY3JvIik7DQogIG1ha2VCdXR0b24oIkluZGVudCBhbGwiLCAicmVpbmRlbnQiKTsNCg0KICB0aGlzLm1pcnJvciA9IG5ldyBDb2RlTWlycm9yKHRoaXMuaG9tZSwgb3B0aW9ucyk7DQp9DQoNCk1pcnJvckZyYW1lLnByb3RvdHlwZSA9IHsNCiAgc2VhcmNoOiBmdW5jdGlvbigpIHsNCiAgICB2YXIgdGV4dCA9IHByb21wdCgiRW50ZXIgc2VhcmNoIHRlcm06IiwgIiIpOw0KICAgIGlmICghdGV4dCkgcmV0dXJuOw0KDQogICAgdmFyIGZpcnN0ID0gdHJ1ZTsNCiAgICBkbyB7DQogICAgICB2YXIgY3Vyc29yID0gdGhpcy5taXJyb3IuZ2V0U2VhcmNoQ3Vyc29yKHRleHQsIGZpcnN0KTsNCiAgICAgIGZpcnN0ID0gZmFsc2U7DQogICAgICB3aGlsZSAoY3Vyc29yLmZpbmROZXh0KCkpIHsNCiAgICAgICAgY3Vyc29yLnNlbGVjdCgpOw0KICAgICAgICBpZiAoIWNvbmZpcm0oIlNlYXJjaCBhZ2Fpbj8iKSkNCiAgICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfSB3aGlsZSAoY29uZmlybSgiRW5kIG9mIGRvY3VtZW50IHJlYWNoZWQuIFN0YXJ0IG92ZXI/IikpOw0KICB9LA0KDQogIHJlcGxhY2U6IGZ1bmN0aW9uKCkgew0KICAgIC8vIFRoaXMgaXMgYSByZXBsYWNlLWFsbCwgYnV0IGl0IGlzIHBvc3NpYmxlIHRvIGltcGxlbWVudCBhDQogICAgLy8gcHJvbXB0aW5nIHJlcGxhY2UuDQogICAgdmFyIGZyb20gPSBwcm9tcHQoIkVudGVyIHNlYXJjaCBzdHJpbmc6IiwgIiIpLCB0bzsNCiAgICBpZiAoZnJvbSkgdG8gPSBwcm9tcHQoIldoYXQgc2hvdWxkIGl0IGJlIHJlcGxhY2VkIHdpdGg/IiwgIiIpOw0KICAgIGlmICh0byA9PSBudWxsKSByZXR1cm47DQoNCiAgICB2YXIgY3Vyc29yID0gdGhpcy5taXJyb3IuZ2V0U2VhcmNoQ3Vyc29yKGZyb20sIGZhbHNlKTsNCiAgICB3aGlsZSAoY3Vyc29yLmZpbmROZXh0KCkpDQogICAgICBjdXJzb3IucmVwbGFjZSh0byk7DQogIH0sDQoNCiAganVtcDogZnVuY3Rpb24oKSB7DQogICAgdmFyIGxpbmUgPSBwcm9tcHQoIkp1bXAgdG8gbGluZToiLCAiIik7DQogICAgaWYgKGxpbmUgJiYgIWlzTmFOKE51bWJlcihsaW5lKSkpDQogICAgICB0aGlzLm1pcnJvci5qdW1wVG9MaW5lKE51bWJlcihsaW5lKSk7DQogIH0sDQoNCiAgbGluZTogZnVuY3Rpb24oKSB7DQogICAgYWxlcnQoIlRoZSBjdXJzb3IgaXMgY3VycmVudGx5IGF0IGxpbmUgIiArIHRoaXMubWlycm9yLmN1cnJlbnRMaW5lKCkpOw0KICAgIHRoaXMubWlycm9yLmZvY3VzKCk7DQogIH0sDQoNCiAgbWFjcm86IGZ1bmN0aW9uKCkgew0KICAgIHZhciBuYW1lID0gcHJvbXB0KCJOYW1lIHlvdXIgY29uc3RydWN0b3I6IiwgIiIpOw0KICAgIGlmIChuYW1lKQ0KICAgICAgdGhpcy5taXJyb3IucmVwbGFjZVNlbGVjdGlvbigiZnVuY3Rpb24gIiArIG5hbWUgKyAiKCkge1xuICBcbn1cblxuIiArIG5hbWUgKyAiLnByb3RvdHlwZSA9IHtcbiAgXG59O1xuIik7DQogIH0sDQoNCiAgcmVpbmRlbnQ6IGZ1bmN0aW9uKCkgew0KICAgIHRoaXMubWlycm9yLnJlaW5kZW50KCk7DQogIH0NCn07DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsecss.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU2ltcGxlIHBhcnNlciBmb3IgQ1NTICovDQoNCnZhciBDU1NQYXJzZXIgPSBFZGl0b3IuUGFyc2VyID0gKGZ1bmN0aW9uKCkgew0KICB2YXIgdG9rZW5pemVDU1MgPSAoZnVuY3Rpb24oKSB7DQogICAgZnVuY3Rpb24gbm9ybWFsKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgIHZhciBjaCA9IHNvdXJjZS5uZXh0KCk7DQogICAgICBpZiAoY2ggPT0gIkAiKSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cdy8pOw0KICAgICAgICByZXR1cm4gImNzcy1hdCI7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAiLyIgJiYgc291cmNlLmVxdWFscygiKiIpKSB7DQogICAgICAgIHNldFN0YXRlKGluQ0NvbW1lbnQpOw0KICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICI8IiAmJiBzb3VyY2UuZXF1YWxzKCIhIikpIHsNCiAgICAgICAgc2V0U3RhdGUoaW5TR01MQ29tbWVudCk7DQogICAgICAgIHJldHVybiBudWxsOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIj0iKSB7DQogICAgICAgIHJldHVybiAiY3NzLWNvbXBhcmUiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoc291cmNlLmVxdWFscygiPSIpICYmIChjaCA9PSAifiIgfHwgY2ggPT0gInwiKSkgew0KICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICByZXR1cm4gImNzcy1jb21wYXJlIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICJcIiIgfHwgY2ggPT0gIiciKSB7DQogICAgICAgIHNldFN0YXRlKGluU3RyaW5nKGNoKSk7DQogICAgICAgIHJldHVybiBudWxsOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIiMiKSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9cdy8pOw0KICAgICAgICByZXR1cm4gImNzcy1oYXNoIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICIhIikgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvWyBcdF0vKTsNCiAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1x3Lyk7DQogICAgICAgIHJldHVybiAiY3NzLWltcG9ydGFudCI7DQogICAgICB9DQogICAgICBlbHNlIGlmICgvXGQvLnRlc3QoY2gpKSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bXHcuJV0vKTsNCiAgICAgICAgcmV0dXJuICJjc3MtdW5pdCI7DQogICAgICB9DQogICAgICBlbHNlIGlmICgvWywuKz4qXC9dLy50ZXN0KGNoKSkgew0KICAgICAgICByZXR1cm4gImNzcy1zZWxlY3Qtb3AiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoL1s7e306XFtcXV0vLnRlc3QoY2gpKSB7DQogICAgICAgIHJldHVybiAiY3NzLXB1bmN0dWF0aW9uIjsNCiAgICAgIH0NCiAgICAgIGVsc2Ugew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW1x3XFxcLV9dLyk7DQogICAgICAgIHJldHVybiAiY3NzLWlkZW50aWZpZXIiOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGluQ0NvbW1lbnQoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgdmFyIG1heWJlRW5kID0gZmFsc2U7DQogICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgICB2YXIgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICBpZiAobWF5YmVFbmQgJiYgY2ggPT0gIi8iKSB7DQogICAgICAgICAgc2V0U3RhdGUobm9ybWFsKTsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBtYXliZUVuZCA9IChjaCA9PSAiKiIpOw0KICAgICAgfQ0KICAgICAgcmV0dXJuICJjc3MtY29tbWVudCI7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaW5TR01MQ29tbWVudChzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICB2YXIgZGFzaGVzID0gMDsNCiAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQogICAgICAgIHZhciBjaCA9IHNvdXJjZS5uZXh0KCk7DQogICAgICAgIGlmIChkYXNoZXMgPj0gMiAmJiBjaCA9PSAiPiIpIHsNCiAgICAgICAgICBzZXRTdGF0ZShub3JtYWwpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGRhc2hlcyA9IChjaCA9PSAiLSIpID8gZGFzaGVzICsgMSA6IDA7DQogICAgICB9DQogICAgICByZXR1cm4gImNzcy1jb21tZW50IjsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpblN0cmluZyhxdW90ZSkgew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgICAgdmFyIGVzY2FwZWQgPSBmYWxzZTsNCiAgICAgICAgd2hpbGUgKCFzb3VyY2UuZW5kT2ZMaW5lKCkpIHsNCiAgICAgICAgICB2YXIgY2ggPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIGlmIChjaCA9PSBxdW90ZSAmJiAhZXNjYXBlZCkNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZCAmJiBjaCA9PSAiXFwiOw0KICAgICAgICB9DQogICAgICAgIGlmICghZXNjYXBlZCkNCiAgICAgICAgICBzZXRTdGF0ZShub3JtYWwpOw0KICAgICAgICByZXR1cm4gImNzcy1zdHJpbmciOw0KICAgICAgfTsNCiAgICB9DQoNCiAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzdGFydFN0YXRlKSB7DQogICAgICByZXR1cm4gdG9rZW5pemVyKHNvdXJjZSwgc3RhcnRTdGF0ZSB8fCBub3JtYWwpOw0KICAgIH07DQogIH0pKCk7DQoNCiAgZnVuY3Rpb24gaW5kZW50Q1NTKGluQnJhY2VzLCBpblJ1bGUsIGJhc2UpIHsNCiAgICByZXR1cm4gZnVuY3Rpb24obmV4dENoYXJzKSB7DQogICAgICBpZiAoIWluQnJhY2VzIHx8IC9eXH0vLnRlc3QobmV4dENoYXJzKSkgcmV0dXJuIGJhc2U7DQogICAgICBlbHNlIGlmIChpblJ1bGUpIHJldHVybiBiYXNlICsgaW5kZW50VW5pdCAqIDI7DQogICAgICBlbHNlIHJldHVybiBiYXNlICsgaW5kZW50VW5pdDsNCiAgICB9Ow0KICB9DQoNCiAgLy8gVGhpcyBpcyBhIHZlcnkgc2ltcGxpc3RpYyBwYXJzZXIgLS0gc2luY2UgQ1NTIGRvZXMgbm90IHJlYWxseQ0KICAvLyBuZXN0LCBpdCB3b3JrcyBhY2NlcHRhYmx5IHdlbGwsIGJ1dCBzb21lIG5pY2VyIGNvbG91cm9pbmcgY291bGQNCiAgLy8gYmUgcHJvdmlkZWQgd2l0aCBhIG1vcmUgY29tcGxpY2F0ZWQgcGFyc2VyLg0KICBmdW5jdGlvbiBwYXJzZUNTUyhzb3VyY2UsIGJhc2Vjb2x1bW4pIHsNCiAgICBiYXNlY29sdW1uID0gYmFzZWNvbHVtbiB8fCAwOw0KICAgIHZhciB0b2tlbnMgPSB0b2tlbml6ZUNTUyhzb3VyY2UpOw0KICAgIHZhciBpbkJyYWNlcyA9IGZhbHNlLCBpblJ1bGUgPSBmYWxzZSwgaW5EZWNsID0gZmFsc2U7Ow0KDQogICAgdmFyIGl0ZXIgPSB7DQogICAgICBuZXh0OiBmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIHRva2VuID0gdG9rZW5zLm5leHQoKSwgc3R5bGUgPSB0b2tlbi5zdHlsZSwgY29udGVudCA9IHRva2VuLmNvbnRlbnQ7DQoNCiAgICAgICAgaWYgKHN0eWxlID09ICJjc3MtaGFzaCIpDQogICAgICAgICAgc3R5bGUgPSB0b2tlbi5zdHlsZSA9ICBpblJ1bGUgPyAiY3NzLWNvbG9yY29kZSIgOiAiY3NzLWlkZW50aWZpZXIiOw0KICAgICAgICBpZiAoc3R5bGUgPT0gImNzcy1pZGVudGlmaWVyIikgew0KICAgICAgICAgIGlmIChpblJ1bGUpIHRva2VuLnN0eWxlID0gImNzcy12YWx1ZSI7DQogICAgICAgICAgZWxzZSBpZiAoIWluQnJhY2VzICYmICFpbkRlY2wpIHRva2VuLnN0eWxlID0gImNzcy1zZWxlY3RvciI7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoY29udGVudCA9PSAiXG4iKQ0KICAgICAgICAgIHRva2VuLmluZGVudGF0aW9uID0gaW5kZW50Q1NTKGluQnJhY2VzLCBpblJ1bGUsIGJhc2Vjb2x1bW4pOw0KDQogICAgICAgIGlmIChjb250ZW50ID09ICJ7IiAmJiBpbkRlY2wgPT0gIkBtZWRpYSIpDQogICAgICAgICAgaW5EZWNsID0gZmFsc2U7DQogICAgICAgIGVsc2UgaWYgKGNvbnRlbnQgPT0gInsiKQ0KICAgICAgICAgIGluQnJhY2VzID0gdHJ1ZTsNCiAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PSAifSIpDQogICAgICAgICAgaW5CcmFjZXMgPSBpblJ1bGUgPSBpbkRlY2wgPSBmYWxzZTsNCiAgICAgICAgZWxzZSBpZiAoY29udGVudCA9PSAiOyIpDQogICAgICAgICAgaW5SdWxlID0gaW5EZWNsID0gZmFsc2U7DQogICAgICAgIGVsc2UgaWYgKGluQnJhY2VzICYmIHN0eWxlICE9ICJjc3MtY29tbWVudCIgJiYgc3R5bGUgIT0gIndoaXRlc3BhY2UiKQ0KICAgICAgICAgIGluUnVsZSA9IHRydWU7DQogICAgICAgIGVsc2UgaWYgKCFpbkJyYWNlcyAmJiBzdHlsZSA9PSAiY3NzLWF0IikNCiAgICAgICAgICBpbkRlY2wgPSBjb250ZW50Ow0KDQogICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgIH0sDQoNCiAgICAgIGNvcHk6IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgX2luQnJhY2VzID0gaW5CcmFjZXMsIF9pblJ1bGUgPSBpblJ1bGUsIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlOw0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7DQogICAgICAgICAgdG9rZW5zID0gdG9rZW5pemVDU1Moc291cmNlLCBfdG9rZW5TdGF0ZSk7DQogICAgICAgICAgaW5CcmFjZXMgPSBfaW5CcmFjZXM7DQogICAgICAgICAgaW5SdWxlID0gX2luUnVsZTsNCiAgICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgICAgfTsNCiAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybiBpdGVyOw0KICB9DQoNCiAgcmV0dXJuIHttYWtlOiBwYXJzZUNTUywgZWxlY3RyaWNDaGFyczogIn0ifTsNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsedummy.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIER1bW15UGFyc2VyID0gRWRpdG9yLlBhcnNlciA9IChmdW5jdGlvbigpIHsNCiAgZnVuY3Rpb24gdG9rZW5pemVEdW1teShzb3VyY2UpIHsNCiAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgc291cmNlLm5leHQoKTsNCiAgICByZXR1cm4gInRleHQiOw0KICB9DQogIGZ1bmN0aW9uIHBhcnNlRHVtbXkoc291cmNlKSB7DQogICAgZnVuY3Rpb24gaW5kZW50VG8obikge3JldHVybiBmdW5jdGlvbigpIHtyZXR1cm4gbjt9fQ0KICAgIHNvdXJjZSA9IHRva2VuaXplcihzb3VyY2UsIHRva2VuaXplRHVtbXkpOw0KICAgIHZhciBzcGFjZSA9IDA7DQoNCiAgICB2YXIgaXRlciA9IHsNCiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgdG9rID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgaWYgKHRvay50eXBlID09ICJ3aGl0ZXNwYWNlIikgew0KICAgICAgICAgIGlmICh0b2sudmFsdWUgPT0gIlxuIikgdG9rLmluZGVudGF0aW9uID0gaW5kZW50VG8oc3BhY2UpOw0KICAgICAgICAgIGVsc2Ugc3BhY2UgPSB0b2sudmFsdWUubGVuZ3RoOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0b2s7DQogICAgICB9LA0KICAgICAgY29weTogZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBfc3BhY2UgPSBzcGFjZTsNCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKF9zb3VyY2UpIHsNCiAgICAgICAgICBzcGFjZSA9IF9zcGFjZTsNCiAgICAgICAgICBzb3VyY2UgPSB0b2tlbml6ZXIoX3NvdXJjZSwgdG9rZW5pemVEdW1teSk7DQogICAgICAgICAgcmV0dXJuIGl0ZXI7DQogICAgICAgIH07DQogICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gaXRlcjsNCiAgfQ0KICByZXR1cm4ge21ha2U6IHBhcnNlRHVtbXl9Ow0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsehtmlmixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIEhUTUxNaXhlZFBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQoNCiAgLy8gdGFncyB0aGF0IHRyaWdnZXIgc2VwZXJhdGUgcGFyc2Vycw0KICB2YXIgdHJpZ2dlcnMgPSB7DQogICAgInNjcmlwdCI6ICJKU1BhcnNlciIsDQogICAgInN0eWxlIjogICJDU1NQYXJzZXIiDQogIH07DQoNCiAgZnVuY3Rpb24gY2hlY2tEZXBlbmRlbmNpZXMoKSB7DQogICAgdmFyIHBhcnNlcnMgPSBbJ1hNTFBhcnNlciddOw0KICAgIGZvciAodmFyIHAgaW4gdHJpZ2dlcnMpIHBhcnNlcnMucHVzaCh0cmlnZ2Vyc1twXSk7DQogICAgZm9yICh2YXIgaSBpbiBwYXJzZXJzKSB7DQogICAgICBpZiAoIXdpbmRvd1twYXJzZXJzW2ldXSkgdGhyb3cgbmV3IEVycm9yKHBhcnNlcnNbaV0gKyAiIHBhcnNlciBtdXN0IGJlIGxvYWRlZCBmb3IgSFRNTCBtaXhlZCBtb2RlIHRvIHdvcmsuIik7DQogICAgfQ0KICAgIFhNTFBhcnNlci5jb25maWd1cmUoe3VzZUhUTUxLbHVkZ2VzOiB0cnVlfSk7DQogIH0NCg0KICBmdW5jdGlvbiBwYXJzZU1peGVkKHN0cmVhbSkgew0KICAgIGNoZWNrRGVwZW5kZW5jaWVzKCk7DQogICAgdmFyIGh0bWxQYXJzZXIgPSBYTUxQYXJzZXIubWFrZShzdHJlYW0pLCBsb2NhbFBhcnNlciA9IG51bGwsIGluVGFnID0gZmFsc2U7DQogICAgdmFyIGl0ZXIgPSB7bmV4dDogdG9wLCBjb3B5OiBjb3B5fTsNCg0KICAgIGZ1bmN0aW9uIHRvcCgpIHsNCiAgICAgIHZhciB0b2tlbiA9IGh0bWxQYXJzZXIubmV4dCgpOw0KICAgICAgaWYgKHRva2VuLmNvbnRlbnQgPT0gIjwiKQ0KICAgICAgICBpblRhZyA9IHRydWU7DQogICAgICBlbHNlIGlmICh0b2tlbi5zdHlsZSA9PSAieG1sLXRhZ25hbWUiICYmIGluVGFnID09PSB0cnVlKQ0KICAgICAgICBpblRhZyA9IHRva2VuLmNvbnRlbnQudG9Mb3dlckNhc2UoKTsNCiAgICAgIGVsc2UgaWYgKHRva2VuLmNvbnRlbnQgPT0gIj4iKSB7DQogICAgICAgIGlmICh0cmlnZ2Vyc1tpblRhZ10pIHsNCiAgICAgICAgICB2YXIgcGFyc2VyID0gd2luZG93W3RyaWdnZXJzW2luVGFnXV07DQogICAgICAgICAgaXRlci5uZXh0ID0gbG9jYWwocGFyc2VyLCAiPC8iICsgaW5UYWcpOw0KICAgICAgICB9DQogICAgICAgIGluVGFnID0gZmFsc2U7DQogICAgICB9DQogICAgICByZXR1cm4gdG9rZW47DQogICAgfQ0KICAgIGZ1bmN0aW9uIGxvY2FsKHBhcnNlciwgdGFnKSB7DQogICAgICB2YXIgYmFzZUluZGVudCA9IGh0bWxQYXJzZXIuaW5kZW50YXRpb24oKTsNCiAgICAgIGxvY2FsUGFyc2VyID0gcGFyc2VyLm1ha2Uoc3RyZWFtLCBiYXNlSW5kZW50ICsgaW5kZW50VW5pdCk7DQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7DQogICAgICAgIGlmIChzdHJlYW0ubG9va0FoZWFkKHRhZywgZmFsc2UsIGZhbHNlLCB0cnVlKSkgew0KICAgICAgICAgIGxvY2FsUGFyc2VyID0gbnVsbDsNCiAgICAgICAgICBpdGVyLm5leHQgPSB0b3A7DQogICAgICAgICAgcmV0dXJuIHRvcCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIHRva2VuID0gbG9jYWxQYXJzZXIubmV4dCgpOw0KICAgICAgICB2YXIgbHQgPSB0b2tlbi52YWx1ZS5sYXN0SW5kZXhPZigiPCIpLCBzeiA9IE1hdGgubWluKHRva2VuLnZhbHVlLmxlbmd0aCAtIGx0LCB0YWcubGVuZ3RoKTsNCiAgICAgICAgaWYgKGx0ICE9IC0xICYmIHRva2VuLnZhbHVlLnNsaWNlKGx0LCBsdCArIHN6KS50b0xvd2VyQ2FzZSgpID09IHRhZy5zbGljZSgwLCBzeikgJiYNCiAgICAgICAgICAgIHN0cmVhbS5sb29rQWhlYWQodGFnLnNsaWNlKHN6KSwgZmFsc2UsIGZhbHNlLCB0cnVlKSkgew0KICAgICAgICAgIHN0cmVhbS5wdXNoKHRva2VuLnZhbHVlLnNsaWNlKGx0KSk7DQogICAgICAgICAgdG9rZW4udmFsdWUgPSB0b2tlbi52YWx1ZS5zbGljZSgwLCBsdCk7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAodG9rZW4uaW5kZW50YXRpb24pIHsNCiAgICAgICAgICB2YXIgb2xkSW5kZW50ID0gdG9rZW4uaW5kZW50YXRpb247DQogICAgICAgICAgdG9rZW4uaW5kZW50YXRpb24gPSBmdW5jdGlvbihjaGFycykgew0KICAgICAgICAgICAgaWYgKGNoYXJzID09ICI8LyIpDQogICAgICAgICAgICAgIHJldHVybiBiYXNlSW5kZW50Ow0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICByZXR1cm4gb2xkSW5kZW50KGNoYXJzKTsNCiAgICAgICAgICB9Ow0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuIHRva2VuOw0KICAgICAgfTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb3B5KCkgew0KICAgICAgdmFyIF9odG1sID0gaHRtbFBhcnNlci5jb3B5KCksIF9sb2NhbCA9IGxvY2FsUGFyc2VyICYmIGxvY2FsUGFyc2VyLmNvcHkoKSwNCiAgICAgICAgICBfbmV4dCA9IGl0ZXIubmV4dCwgX2luVGFnID0gaW5UYWc7DQogICAgICByZXR1cm4gZnVuY3Rpb24oX3N0cmVhbSkgew0KICAgICAgICBzdHJlYW0gPSBfc3RyZWFtOw0KICAgICAgICBodG1sUGFyc2VyID0gX2h0bWwoX3N0cmVhbSk7DQogICAgICAgIGxvY2FsUGFyc2VyID0gX2xvY2FsICYmIF9sb2NhbChfc3RyZWFtKTsNCiAgICAgICAgaXRlci5uZXh0ID0gX25leHQ7DQogICAgICAgIGluVGFnID0gX2luVGFnOw0KICAgICAgICByZXR1cm4gaXRlcjsNCiAgICAgIH07DQogICAgfQ0KICAgIHJldHVybiBpdGVyOw0KICB9DQoNCiAgcmV0dXJuIHsNCiAgICBtYWtlOiBwYXJzZU1peGVkLA0KICAgIGVsZWN0cmljQ2hhcnM6ICJ7fS86IiwNCiAgICBjb25maWd1cmU6IGZ1bmN0aW9uKG9iaikgew0KICAgICAgaWYgKG9iai50cmlnZ2VycykgdHJpZ2dlcnMgPSBvYmoudHJpZ2dlcnM7DQogICAgfQ0KICB9Ow0KDQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsejavascript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogUGFyc2UgZnVuY3Rpb24gZm9yIEphdmFTY3JpcHQuIE1ha2VzIHVzZSBvZiB0aGUgdG9rZW5pemVyIGZyb20NCiAqIHRva2VuaXplamF2YXNjcmlwdC5qcy4gTm90ZSB0aGF0IHlvdXIgcGFyc2VycyBkbyBub3QgaGF2ZSB0byBiZQ0KICogdGhpcyBjb21wbGljYXRlZCAtLSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZWNvZ25pemUgbG9jYWwgdmFyaWFibGVzLA0KICogaW4gbWFueSBsYW5ndWFnZXMgaXQgaXMgZW5vdWdoIHRvIGp1c3QgbG9vayBmb3IgYnJhY2VzLCBzZW1pY29sb25zLA0KICogcGFyZW50aGVzZXMsIGV0YywgYW5kIGtub3cgd2hlbiB5b3UgYXJlIGluc2lkZSBhIHN0cmluZyBvciBjb21tZW50Lg0KICoNCiAqIFNlZSBtYW51YWwuaHRtbCBmb3IgbW9yZSBpbmZvIGFib3V0IHRoZSBwYXJzZXIgaW50ZXJmYWNlLg0KICovDQoNCnZhciBKU1BhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQogIC8vIFRva2VuIHR5cGVzIHRoYXQgY2FuIGJlIGNvbnNpZGVyZWQgdG8gYmUgYXRvbXMuDQogIHZhciBhdG9taWNUeXBlcyA9IHsiYXRvbSI6IHRydWUsICJudW1iZXIiOiB0cnVlLCAidmFyaWFibGUiOiB0cnVlLCAic3RyaW5nIjogdHJ1ZSwgInJlZ2V4cCI6IHRydWV9Ow0KICAvLyBTZXR0aW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gaGF2ZSBKU09OIGRhdGEgaW5kZW50IHByb3Blcmx5Lg0KICB2YXIganNvbiA9IGZhbHNlOw0KICAvLyBDb25zdHJ1Y3RvciBmb3IgdGhlIGxleGljYWwgY29udGV4dCBvYmplY3RzLg0KICBmdW5jdGlvbiBKU0xleGljYWwoaW5kZW50ZWQsIGNvbHVtbiwgdHlwZSwgYWxpZ24sIHByZXYsIGluZm8pIHsNCiAgICAvLyBpbmRlbnRhdGlvbiBhdCBzdGFydCBvZiB0aGlzIGxpbmUNCiAgICB0aGlzLmluZGVudGVkID0gaW5kZW50ZWQ7DQogICAgLy8gY29sdW1uIGF0IHdoaWNoIHRoaXMgc2NvcGUgd2FzIG9wZW5lZA0KICAgIHRoaXMuY29sdW1uID0gY29sdW1uOw0KICAgIC8vIHR5cGUgb2Ygc2NvcGUgKCd2YXJkZWYnLCAnc3RhdCcgKHN0YXRlbWVudCksICdmb3JtJyAoc3BlY2lhbCBmb3JtKSwgJ1snLCAneycsIG9yICcoJykNCiAgICB0aGlzLnR5cGUgPSB0eXBlOw0KICAgIC8vICdbJywgJ3snLCBvciAnKCcgYmxvY2tzIHRoYXQgaGF2ZSBhbnkgdGV4dCBhZnRlciB0aGVpciBvcGVuaW5nDQogICAgLy8gY2hhcmFjdGVyIGFyZSBzYWlkIHRvIGJlICdhbGlnbmVkJyAtLSBhbnkgbGluZXMgYmVsb3cgYXJlDQogICAgLy8gaW5kZW50ZWQgYWxsIHRoZSB3YXkgdG8gdGhlIG9wZW5pbmcgY2hhcmFjdGVyLg0KICAgIGlmIChhbGlnbiAhPSBudWxsKQ0KICAgICAgdGhpcy5hbGlnbiA9IGFsaWduOw0KICAgIC8vIFBhcmVudCBzY29wZSwgaWYgYW55Lg0KICAgIHRoaXMucHJldiA9IHByZXY7DQogICAgdGhpcy5pbmZvID0gaW5mbzsNCiAgfQ0KDQogIC8vIE15IGZhdm91cml0ZSBKYXZhU2NyaXB0IGluZGVudGF0aW9uIHJ1bGVzLg0KICBmdW5jdGlvbiBpbmRlbnRKUyhsZXhpY2FsKSB7DQogICAgcmV0dXJuIGZ1bmN0aW9uKGZpcnN0Q2hhcnMpIHsNCiAgICAgIHZhciBmaXJzdENoYXIgPSBmaXJzdENoYXJzICYmIGZpcnN0Q2hhcnMuY2hhckF0KDApLCB0eXBlID0gbGV4aWNhbC50eXBlOw0KICAgICAgdmFyIGNsb3NpbmcgPSBmaXJzdENoYXIgPT0gdHlwZTsNCiAgICAgIGlmICh0eXBlID09ICJ2YXJkZWYiKQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArIDQ7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJmb3JtIiAmJiBmaXJzdENoYXIgPT0gInsiKQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZDsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInN0YXQiIHx8IHR5cGUgPT0gImZvcm0iKQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArIGluZGVudFVuaXQ7DQogICAgICBlbHNlIGlmIChsZXhpY2FsLmluZm8gPT0gInN3aXRjaCIgJiYgIWNsb3NpbmcpDQogICAgICAgIHJldHVybiBsZXhpY2FsLmluZGVudGVkICsgKC9eKD86Y2FzZXxkZWZhdWx0KVxiLy50ZXN0KGZpcnN0Q2hhcnMpID8gaW5kZW50VW5pdCA6IDIgKiBpbmRlbnRVbml0KTsNCiAgICAgIGVsc2UgaWYgKGxleGljYWwuYWxpZ24pDQogICAgICAgIHJldHVybiBsZXhpY2FsLmNvbHVtbiAtIChjbG9zaW5nID8gMSA6IDApOw0KICAgICAgZWxzZQ0KICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArIChjbG9zaW5nID8gMCA6IGluZGVudFVuaXQpOw0KICAgIH07DQogIH0NCg0KICAvLyBUaGUgcGFyc2VyLWl0ZXJhdG9yLXByb2R1Y2luZyBmdW5jdGlvbiBpdHNlbGYuDQogIGZ1bmN0aW9uIHBhcnNlSlMoaW5wdXQsIGJhc2Vjb2x1bW4pIHsNCiAgICAvLyBXcmFwIHRoZSBpbnB1dCBpbiBhIHRva2VuIHN0cmVhbQ0KICAgIHZhciB0b2tlbnMgPSB0b2tlbml6ZUphdmFTY3JpcHQoaW5wdXQpOw0KICAgIC8vIFRoZSBwYXJzZXIgc3RhdGUuIGNjIGlzIGEgc3RhY2sgb2YgYWN0aW9ucyB0aGF0IGhhdmUgdG8gYmUNCiAgICAvLyBwZXJmb3JtZWQgdG8gZmluaXNoIHRoZSBjdXJyZW50IHN0YXRlbWVudC4gRm9yIGV4YW1wbGUgd2UgbWlnaHQNCiAgICAvLyBrbm93IHRoYXQgd2Ugc3RpbGwgbmVlZCB0byBmaW5kIGEgY2xvc2luZyBwYXJlbnRoZXNpcyBhbmQgYQ0KICAgIC8vIHNlbWljb2xvbi4gQWN0aW9ucyBhdCB0aGUgZW5kIG9mIHRoZSBzdGFjayBnbyBmaXJzdC4gSXQgaXMNCiAgICAvLyBpbml0aWFsaXplZCB3aXRoIGFuIGluZmluaXRlbHkgbG9vcGluZyBhY3Rpb24gdGhhdCBjb25zdW1lcw0KICAgIC8vIHdob2xlIHN0YXRlbWVudHMuDQogICAgdmFyIGNjID0gW2pzb24gPyBleHByZXNzaW9ucyA6IHN0YXRlbWVudHNdOw0KICAgIC8vIENvbnRleHQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgbG9jYWwgc2NvcGUsIHRoZQ0KICAgIC8vIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoYXQsIGFuZCB0aGUgc2NvcGVzIGFib3ZlIGl0Lg0KICAgIHZhciBjb250ZXh0ID0gbnVsbDsNCiAgICAvLyBUaGUgbGV4aWNhbCBzY29wZSwgdXNlZCBtb3N0bHkgZm9yIGluZGVudGF0aW9uLg0KICAgIHZhciBsZXhpY2FsID0gbmV3IEpTTGV4aWNhbCgoYmFzZWNvbHVtbiB8fCAwKSAtIGluZGVudFVuaXQsIDAsICJibG9jayIsIGZhbHNlKTsNCiAgICAvLyBDdXJyZW50IGNvbHVtbiwgYW5kIHRoZSBpbmRlbnRhdGlvbiBhdCB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQNCiAgICAvLyBsaW5lLiBVc2VkIHRvIGNyZWF0ZSBsZXhpY2FsIHNjb3BlIG9iamVjdHMuDQogICAgdmFyIGNvbHVtbiA9IDA7DQogICAgdmFyIGluZGVudGVkID0gMDsNCiAgICAvLyBWYXJpYWJsZXMgd2hpY2ggYXJlIHVzZWQgYnkgdGhlIG1hcmssIGNvbnQsIGFuZCBwYXNzIGZ1bmN0aW9ucw0KICAgIC8vIGJlbG93IHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGRyaXZlciBsb29wIGluIHRoZSAnbmV4dCcNCiAgICAvLyBmdW5jdGlvbi4NCiAgICB2YXIgY29uc3VtZSwgbWFya2VkOw0KICANCiAgICAvLyBUaGUgaXRlcmF0b3Igb2JqZWN0Lg0KICAgIHZhciBwYXJzZXIgPSB7bmV4dDogbmV4dCwgY29weTogY29weX07DQoNCiAgICBmdW5jdGlvbiBuZXh0KCl7DQogICAgICAvLyBTdGFydCBieSBwZXJmb3JtaW5nIGFueSAnbGV4aWNhbCcgYWN0aW9ucyAoYWRqdXN0aW5nIHRoZQ0KICAgICAgLy8gbGV4aWNhbCB2YXJpYWJsZSksIG9yIHRoZSBvcGVyYXRpb25zIGJlbG93IHdpbGwgYmUgd29ya2luZw0KICAgICAgLy8gd2l0aCB0aGUgd3JvbmcgbGV4aWNhbCBzdGF0ZS4NCiAgICAgIHdoaWxlKGNjW2NjLmxlbmd0aCAtIDFdLmxleCkNCiAgICAgICAgY2MucG9wKCkoKTsNCg0KICAgICAgLy8gRmV0Y2ggYSB0b2tlbi4NCiAgICAgIHZhciB0b2tlbiA9IHRva2Vucy5uZXh0KCk7DQoNCiAgICAgIC8vIEFkanVzdCBjb2x1bW4gYW5kIGluZGVudGVkLg0KICAgICAgaWYgKHRva2VuLnR5cGUgPT0gIndoaXRlc3BhY2UiICYmIGNvbHVtbiA9PSAwKQ0KICAgICAgICBpbmRlbnRlZCA9IHRva2VuLnZhbHVlLmxlbmd0aDsNCiAgICAgIGNvbHVtbiArPSB0b2tlbi52YWx1ZS5sZW5ndGg7DQogICAgICBpZiAodG9rZW4uY29udGVudCA9PSAiXG4iKXsNCiAgICAgICAgaW5kZW50ZWQgPSBjb2x1bW4gPSAwOw0KICAgICAgICAvLyBJZiB0aGUgbGV4aWNhbCBzY29wZSdzIGFsaWduIHByb3BlcnR5IGlzIHN0aWxsIHVuZGVmaW5lZCBhdA0KICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBsaW5lLCBpdCBpcyBhbiB1bi1hbGlnbmVkIHNjb3BlLg0KICAgICAgICBpZiAoISgiYWxpZ24iIGluIGxleGljYWwpKQ0KICAgICAgICAgIGxleGljYWwuYWxpZ24gPSBmYWxzZTsNCiAgICAgICAgLy8gTmV3bGluZSB0b2tlbnMgZ2V0IGFuIGluZGVudGF0aW9uIGZ1bmN0aW9uIGFzc29jaWF0ZWQgd2l0aA0KICAgICAgICAvLyB0aGVtLg0KICAgICAgICB0b2tlbi5pbmRlbnRhdGlvbiA9IGluZGVudEpTKGxleGljYWwpOw0KICAgICAgfQ0KICAgICAgLy8gTm8gbW9yZSBwcm9jZXNzaW5nIGZvciBtZWFuaW5nbGVzcyB0b2tlbnMuDQogICAgICBpZiAodG9rZW4udHlwZSA9PSAid2hpdGVzcGFjZSIgfHwgdG9rZW4udHlwZSA9PSAiY29tbWVudCIpDQogICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgIC8vIFdoZW4gYSBtZWFuaW5nZnVsIHRva2VuIGlzIGZvdW5kIGFuZCB0aGUgbGV4aWNhbCBzY29wZSdzDQogICAgICAvLyBhbGlnbiBpcyB1bmRlZmluZWQsIGl0IGlzIGFuIGFsaWduZWQgc2NvcGUuDQogICAgICBpZiAoISgiYWxpZ24iIGluIGxleGljYWwpKQ0KICAgICAgICBsZXhpY2FsLmFsaWduID0gdHJ1ZTsNCg0KICAgICAgLy8gRXhlY3V0ZSBhY3Rpb25zIHVudGlsIG9uZSAnY29uc3VtZXMnIHRoZSB0b2tlbiBhbmQgd2UgY2FuDQogICAgICAvLyByZXR1cm4gaXQuDQogICAgICB3aGlsZSh0cnVlKSB7DQogICAgICAgIGNvbnN1bWUgPSBtYXJrZWQgPSBmYWxzZTsNCiAgICAgICAgLy8gVGFrZSBhbmQgZXhlY3V0ZSB0aGUgdG9wbW9zdCBhY3Rpb24uDQogICAgICAgIGNjLnBvcCgpKHRva2VuLnR5cGUsIHRva2VuLmNvbnRlbnQpOw0KICAgICAgICBpZiAoY29uc3VtZSl7DQogICAgICAgICAgLy8gTWFya2VkIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBzdHlsZSBvZiB0aGUgY3VycmVudCB0b2tlbi4NCiAgICAgICAgICBpZiAobWFya2VkKQ0KICAgICAgICAgICAgdG9rZW4uc3R5bGUgPSBtYXJrZWQ7DQogICAgICAgICAgLy8gSGVyZSB3ZSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbG9jYWwgYW5kIGdsb2JhbCB2YXJpYWJsZXMuDQogICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PSAidmFyaWFibGUiICYmIGluU2NvcGUodG9rZW4uY29udGVudCkpDQogICAgICAgICAgICB0b2tlbi5zdHlsZSA9ICJqcy1sb2NhbHZhcmlhYmxlIjsNCiAgICAgICAgICByZXR1cm4gdG9rZW47DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBUaGlzIG1ha2VzIGEgY29weSBvZiB0aGUgcGFyc2VyIHN0YXRlLiBJdCBzdG9yZXMgYWxsIHRoZQ0KICAgIC8vIHN0YXRlZnVsIHZhcmlhYmxlcyBpbiBhIGNsb3N1cmUsIGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdA0KICAgIC8vIHdpbGwgcmVzdG9yZSB0aGVtIHdoZW4gY2FsbGVkIHdpdGggYSBuZXcgaW5wdXQgc3RyZWFtLiBOb3RlDQogICAgLy8gdGhhdCB0aGUgY2MgYXJyYXkgaGFzIHRvIGJlIGNvcGllZCwgYmVjYXVzZSBpdCBpcyBjb250YW50bHkNCiAgICAvLyBiZWluZyBtb2RpZmllZC4gTGV4aWNhbCBvYmplY3RzIGFyZSBub3QgbXV0YXRlZCwgYW5kIGNvbnRleHQNCiAgICAvLyBvYmplY3RzIGFyZSBub3QgbXV0YXRlZCBpbiBhIGhhcm1mdWwgd2F5LCBzbyB0aGV5IGNhbiBiZSBzaGFyZWQNCiAgICAvLyBiZXR3ZWVuIHJ1bnMgb2YgdGhlIHBhcnNlci4NCiAgICBmdW5jdGlvbiBjb3B5KCl7DQogICAgICB2YXIgX2NvbnRleHQgPSBjb250ZXh0LCBfbGV4aWNhbCA9IGxleGljYWwsIF9jYyA9IGNjLmNvbmNhdChbXSksIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlOw0KICANCiAgICAgIHJldHVybiBmdW5jdGlvbiBjb3B5UGFyc2VyKGlucHV0KXsNCiAgICAgICAgY29udGV4dCA9IF9jb250ZXh0Ow0KICAgICAgICBsZXhpY2FsID0gX2xleGljYWw7DQogICAgICAgIGNjID0gX2NjLmNvbmNhdChbXSk7IC8vIGNvcGllcyB0aGUgYXJyYXkNCiAgICAgICAgY29sdW1uID0gaW5kZW50ZWQgPSAwOw0KICAgICAgICB0b2tlbnMgPSB0b2tlbml6ZUphdmFTY3JpcHQoaW5wdXQsIF90b2tlblN0YXRlKTsNCiAgICAgICAgcmV0dXJuIHBhcnNlcjsNCiAgICAgIH07DQogICAgfQ0KDQogICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBwdXNoaW5nIGEgbnVtYmVyIG9mIGFjdGlvbnMgb250byB0aGUgY2MNCiAgICAvLyBzdGFjayBpbiByZXZlcnNlIG9yZGVyLg0KICAgIGZ1bmN0aW9uIHB1c2goZnMpew0KICAgICAgZm9yICh2YXIgaSA9IGZzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKQ0KICAgICAgICBjYy5wdXNoKGZzW2ldKTsNCiAgICB9DQogICAgLy8gY29udCBhbmQgcGFzcyBhcmUgdXNlZCBieSB0aGUgYWN0aW9uIGZ1bmN0aW9ucyB0byBhZGQgb3RoZXINCiAgICAvLyBhY3Rpb25zIHRvIHRoZSBzdGFjay4gY29udCB3aWxsIGNhdXNlIHRoZSBjdXJyZW50IHRva2VuIHRvIGJlDQogICAgLy8gY29uc3VtZWQsIHBhc3Mgd2lsbCBsZWF2ZSBpdCBmb3IgdGhlIG5leHQgYWN0aW9uLg0KICAgIGZ1bmN0aW9uIGNvbnQoKXsNCiAgICAgIHB1c2goYXJndW1lbnRzKTsNCiAgICAgIGNvbnN1bWUgPSB0cnVlOw0KICAgIH0NCiAgICBmdW5jdGlvbiBwYXNzKCl7DQogICAgICBwdXNoKGFyZ3VtZW50cyk7DQogICAgICBjb25zdW1lID0gZmFsc2U7DQogICAgfQ0KICAgIC8vIFVzZWQgdG8gY2hhbmdlIHRoZSBzdHlsZSBvZiB0aGUgY3VycmVudCB0b2tlbi4NCiAgICBmdW5jdGlvbiBtYXJrKHN0eWxlKXsNCiAgICAgIG1hcmtlZCA9IHN0eWxlOw0KICAgIH0NCg0KICAgIC8vIFB1c2ggYSBuZXcgc2NvcGUuIFdpbGwgYXV0b21hdGljYWxseSBsaW5rIHRoZSBjdXJyZW50IHNjb3BlLg0KICAgIGZ1bmN0aW9uIHB1c2hjb250ZXh0KCl7DQogICAgICBjb250ZXh0ID0ge3ByZXY6IGNvbnRleHQsIHZhcnM6IHsidGhpcyI6IHRydWUsICJhcmd1bWVudHMiOiB0cnVlfX07DQogICAgfQ0KICAgIC8vIFBvcCBvZmYgdGhlIGN1cnJlbnQgc2NvcGUuDQogICAgZnVuY3Rpb24gcG9wY29udGV4dCgpew0KICAgICAgY29udGV4dCA9IGNvbnRleHQucHJldjsNCiAgICB9DQogICAgLy8gUmVnaXN0ZXIgYSB2YXJpYWJsZSBpbiB0aGUgY3VycmVudCBzY29wZS4NCiAgICBmdW5jdGlvbiByZWdpc3Rlcih2YXJuYW1lKXsNCiAgICAgIGlmIChjb250ZXh0KXsNCiAgICAgICAgbWFyaygianMtdmFyaWFibGVkZWYiKTsNCiAgICAgICAgY29udGV4dC52YXJzW3Zhcm5hbWVdID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgLy8gQ2hlY2sgd2hldGhlciBhIHZhcmlhYmxlIGlzIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgc2NvcGUuDQogICAgZnVuY3Rpb24gaW5TY29wZSh2YXJuYW1lKXsNCiAgICAgIHZhciBjdXJzb3IgPSBjb250ZXh0Ow0KICAgICAgd2hpbGUgKGN1cnNvcikgew0KICAgICAgICBpZiAoY3Vyc29yLnZhcnNbdmFybmFtZV0pDQogICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIGN1cnNvciA9IGN1cnNvci5wcmV2Ow0KICAgICAgfQ0KICAgICAgcmV0dXJuIGZhbHNlOw0KICAgIH0NCiAgDQogICAgLy8gUHVzaCBhIG5ldyBsZXhpY2FsIGNvbnRleHQgb2YgdGhlIGdpdmVuIHR5cGUuDQogICAgZnVuY3Rpb24gcHVzaGxleCh0eXBlLCBpbmZvKSB7DQogICAgICB2YXIgcmVzdWx0ID0gZnVuY3Rpb24oKXsNCiAgICAgICAgbGV4aWNhbCA9IG5ldyBKU0xleGljYWwoaW5kZW50ZWQsIGNvbHVtbiwgdHlwZSwgbnVsbCwgbGV4aWNhbCwgaW5mbykNCiAgICAgIH07DQogICAgICByZXN1bHQubGV4ID0gdHJ1ZTsNCiAgICAgIHJldHVybiByZXN1bHQ7DQogICAgfQ0KICAgIC8vIFBvcCBvZmYgdGhlIGN1cnJlbnQgbGV4aWNhbCBjb250ZXh0Lg0KICAgIGZ1bmN0aW9uIHBvcGxleCgpew0KICAgICAgaWYgKGxleGljYWwudHlwZSA9PSAiKSIpDQogICAgICAgIGluZGVudGVkID0gbGV4aWNhbC5pbmRlbnRlZDsNCiAgICAgIGxleGljYWwgPSBsZXhpY2FsLnByZXY7DQogICAgfQ0KICAgIHBvcGxleC5sZXggPSB0cnVlOw0KICAgIC8vIFRoZSAnbGV4JyBmbGFnIG9uIHRoZXNlIGFjdGlvbnMgaXMgdXNlZCBieSB0aGUgJ25leHQnIGZ1bmN0aW9uDQogICAgLy8gdG8ga25vdyB0aGV5IGNhbiAoYW5kIGhhdmUgdG8pIGJlIHJhbiBiZWZvcmUgbW92aW5nIG9uIHRvIHRoZQ0KICAgIC8vIG5leHQgdG9rZW4uDQogIA0KICAgIC8vIENyZWF0ZXMgYW4gYWN0aW9uIHRoYXQgZGlzY2FyZHMgdG9rZW5zIHVudGlsIGl0IGZpbmRzIG9uZSBvZg0KICAgIC8vIHRoZSBnaXZlbiB0eXBlLg0KICAgIGZ1bmN0aW9uIGV4cGVjdCh3YW50ZWQpew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGV4cGVjdGluZyh0eXBlKXsNCiAgICAgICAgaWYgKHR5cGUgPT0gd2FudGVkKSBjb250KCk7DQogICAgICAgIGVsc2UgaWYgKHdhbnRlZCA9PSAiOyIpIHBhc3MoKTsNCiAgICAgICAgZWxzZSBjb250KGFyZ3VtZW50cy5jYWxsZWUpOw0KICAgICAgfTsNCiAgICB9DQoNCiAgICAvLyBMb29rcyBmb3IgYSBzdGF0ZW1lbnQsIGFuZCB0aGVuIGNhbGxzIGl0c2VsZi4NCiAgICBmdW5jdGlvbiBzdGF0ZW1lbnRzKHR5cGUpew0KICAgICAgcmV0dXJuIHBhc3Moc3RhdGVtZW50LCBzdGF0ZW1lbnRzKTsNCiAgICB9DQogICAgZnVuY3Rpb24gZXhwcmVzc2lvbnModHlwZSl7DQogICAgICByZXR1cm4gcGFzcyhleHByZXNzaW9uLCBleHByZXNzaW9ucyk7DQogICAgfQ0KICAgIC8vIERpc3BhdGNoZXMgdmFyaW91cyB0eXBlcyBvZiBzdGF0ZW1lbnRzIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZQ0KICAgIC8vIGN1cnJlbnQgdG9rZW4uDQogICAgZnVuY3Rpb24gc3RhdGVtZW50KHR5cGUpew0KICAgICAgaWYgKHR5cGUgPT0gInZhciIpIGNvbnQocHVzaGxleCgidmFyZGVmIiksIHZhcmRlZjEsIGV4cGVjdCgiOyIpLCBwb3BsZXgpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAia2V5d29yZCBhIikgY29udChwdXNobGV4KCJmb3JtIiksIGV4cHJlc3Npb24sIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImtleXdvcmQgYiIpIGNvbnQocHVzaGxleCgiZm9ybSIpLCBzdGF0ZW1lbnQsIHBvcGxleCk7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJ7IikgY29udChwdXNobGV4KCJ9IiksIGJsb2NrLCBwb3BsZXgpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiOyIpIGNvbnQoKTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImZ1bmN0aW9uIikgY29udChmdW5jdGlvbmRlZik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJmb3IiKSBjb250KHB1c2hsZXgoImZvcm0iKSwgZXhwZWN0KCIoIiksIHB1c2hsZXgoIikiKSwgZm9yc3BlYzEsIGV4cGVjdCgiKSIpLCBwb3BsZXgsIHN0YXRlbWVudCwgcG9wbGV4KTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikgY29udChwdXNobGV4KCJzdGF0IiksIG1heWJlbGFiZWwpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAic3dpdGNoIikgY29udChwdXNobGV4KCJmb3JtIiksIGV4cHJlc3Npb24sIHB1c2hsZXgoIn0iLCAic3dpdGNoIiksIGV4cGVjdCgieyIpLCBibG9jaywgcG9wbGV4LCBwb3BsZXgpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiY2FzZSIpIGNvbnQoZXhwcmVzc2lvbiwgZXhwZWN0KCI6IikpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiZGVmYXVsdCIpIGNvbnQoZXhwZWN0KCI6IikpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiY2F0Y2giKSBjb250KHB1c2hsZXgoImZvcm0iKSwgcHVzaGNvbnRleHQsIGV4cGVjdCgiKCIpLCBmdW5hcmcsIGV4cGVjdCgiKSIpLCBzdGF0ZW1lbnQsIHBvcGxleCwgcG9wY29udGV4dCk7DQogICAgICBlbHNlIHBhc3MocHVzaGxleCgic3RhdCIpLCBleHByZXNzaW9uLCBleHBlY3QoIjsiKSwgcG9wbGV4KTsNCiAgICB9DQogICAgLy8gRGlzcGF0Y2ggZXhwcmVzc2lvbiB0eXBlcy4NCiAgICBmdW5jdGlvbiBleHByZXNzaW9uKHR5cGUpew0KICAgICAgaWYgKGF0b21pY1R5cGVzLmhhc093blByb3BlcnR5KHR5cGUpKSBjb250KG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiZnVuY3Rpb24iKSBjb250KGZ1bmN0aW9uZGVmKTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gImtleXdvcmQgYyIpIGNvbnQoZXhwcmVzc2lvbik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICIoIikgY29udChwdXNobGV4KCIpIiksIGV4cHJlc3Npb24sIGV4cGVjdCgiKSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAib3BlcmF0b3IiKSBjb250KGV4cHJlc3Npb24pOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiWyIpIGNvbnQocHVzaGxleCgiXSIpLCBjb21tYXNlcChleHByZXNzaW9uLCAiXSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAieyIpIGNvbnQocHVzaGxleCgifSIpLCBjb21tYXNlcChvYmpwcm9wLCAifSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBjb250KCk7DQogICAgfQ0KICAgIC8vIENhbGxlZCBmb3IgcGxhY2VzIHdoZXJlIG9wZXJhdG9ycywgZnVuY3Rpb24gY2FsbHMsIG9yDQogICAgLy8gc3Vic2NyaXB0cyBhcmUgdmFsaWQuIFdpbGwgc2tpcCBvbiB0byB0aGUgbmV4dCBhY3Rpb24gaWYgbm9uZQ0KICAgIC8vIGlzIGZvdW5kLg0KICAgIGZ1bmN0aW9uIG1heWJlb3BlcmF0b3IodHlwZSwgdmFsdWUpew0KICAgICAgaWYgKHR5cGUgPT0gIm9wZXJhdG9yIiAmJiAvXCtcK3wtLS8udGVzdCh2YWx1ZSkpIGNvbnQobWF5YmVvcGVyYXRvcik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJvcGVyYXRvciIpIGNvbnQoZXhwcmVzc2lvbik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICI7IikgcGFzcygpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiKCIpIGNvbnQocHVzaGxleCgiKSIpLCBjb21tYXNlcChleHByZXNzaW9uLCAiKSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiLiIpIGNvbnQocHJvcGVydHksIG1heWJlb3BlcmF0b3IpOw0KICAgICAgZWxzZSBpZiAodHlwZSA9PSAiWyIpIGNvbnQocHVzaGxleCgiXSIpLCBleHByZXNzaW9uLCBleHBlY3QoIl0iKSwgcG9wbGV4LCBtYXliZW9wZXJhdG9yKTsNCiAgICB9DQogICAgLy8gV2hlbiBhIHN0YXRlbWVudCBzdGFydHMgd2l0aCBhIHZhcmlhYmxlIG5hbWUsIGl0IG1pZ2h0IGJlIGENCiAgICAvLyBsYWJlbC4gSWYgbm8gY29sb24gZm9sbG93cywgaXQncyBhIHJlZ3VsYXIgc3RhdGVtZW50Lg0KICAgIGZ1bmN0aW9uIG1heWJlbGFiZWwodHlwZSl7DQogICAgICBpZiAodHlwZSA9PSAiOiIpIGNvbnQocG9wbGV4LCBzdGF0ZW1lbnQpOw0KICAgICAgZWxzZSBwYXNzKG1heWJlb3BlcmF0b3IsIGV4cGVjdCgiOyIpLCBwb3BsZXgpOw0KICAgIH0NCiAgICAvLyBQcm9wZXJ0eSBuYW1lcyBuZWVkIHRvIGhhdmUgdGhlaXIgc3R5bGUgYWRqdXN0ZWQgLS0gdGhlDQogICAgLy8gdG9rZW5pemVyIHRoaW5rcyB0aGV5IGFyZSB2YXJpYWJsZXMuDQogICAgZnVuY3Rpb24gcHJvcGVydHkodHlwZSl7DQogICAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiKSB7bWFyaygianMtcHJvcGVydHkiKTsgY29udCgpO30NCiAgICB9DQogICAgLy8gVGhpcyBwYXJzZXMgYSBwcm9wZXJ0eSBhbmQgaXRzIHZhbHVlIGluIGFuIG9iamVjdCBsaXRlcmFsLg0KICAgIGZ1bmN0aW9uIG9ianByb3AodHlwZSl7DQogICAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiKSBtYXJrKCJqcy1wcm9wZXJ0eSIpOw0KICAgICAgaWYgKGF0b21pY1R5cGVzLmhhc093blByb3BlcnR5KHR5cGUpKSBjb250KGV4cGVjdCgiOiIpLCBleHByZXNzaW9uKTsNCiAgICB9DQogICAgLy8gUGFyc2VzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIHRoaW5ncyB0aGF0IGFyZSByZWNvZ25pemVkDQogICAgLy8gYnkgdGhlICd3aGF0JyBhcmd1bWVudC4NCiAgICBmdW5jdGlvbiBjb21tYXNlcCh3aGF0LCBlbmQpew0KICAgICAgZnVuY3Rpb24gcHJvY2VlZCh0eXBlKSB7DQogICAgICAgIGlmICh0eXBlID09ICIsIikgY29udCh3aGF0LCBwcm9jZWVkKTsNCiAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBlbmQpIGNvbnQoKTsNCiAgICAgICAgZWxzZSBjb250KGV4cGVjdChlbmQpKTsNCiAgICAgIH0NCiAgICAgIHJldHVybiBmdW5jdGlvbiBjb21tYVNlcGFyYXRlZCh0eXBlKSB7DQogICAgICAgIGlmICh0eXBlID09IGVuZCkgY29udCgpOw0KICAgICAgICBlbHNlIHBhc3Mod2hhdCwgcHJvY2VlZCk7DQogICAgICB9Ow0KICAgIH0NCiAgICAvLyBMb29rIGZvciBzdGF0ZW1lbnRzIHVudGlsIGEgY2xvc2luZyBicmFjZSBpcyBmb3VuZC4NCiAgICBmdW5jdGlvbiBibG9jayh0eXBlKXsNCiAgICAgIGlmICh0eXBlID09ICJ9IikgY29udCgpOw0KICAgICAgZWxzZSBwYXNzKHN0YXRlbWVudCwgYmxvY2spOw0KICAgIH0NCiAgICAvLyBWYXJpYWJsZSBkZWZpbml0aW9ucyBhcmUgc3BsaXQgaW50byB0d28gYWN0aW9ucyAtLSAxIGxvb2tzIGZvcg0KICAgIC8vIGEgbmFtZSBvciB0aGUgZW5kIG9mIHRoZSBkZWZpbml0aW9uLCAyIGxvb2tzIGZvciBhbiAnPScgc2lnbiBvcg0KICAgIC8vIGEgY29tbWEuDQogICAgZnVuY3Rpb24gdmFyZGVmMSh0eXBlLCB2YWx1ZSl7DQogICAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiKXtyZWdpc3Rlcih2YWx1ZSk7IGNvbnQodmFyZGVmMik7fQ0KICAgICAgZWxzZSBjb250KCk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIHZhcmRlZjIodHlwZSwgdmFsdWUpew0KICAgICAgaWYgKHZhbHVlID09ICI9IikgY29udChleHByZXNzaW9uLCB2YXJkZWYyKTsNCiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gIiwiKSBjb250KHZhcmRlZjEpOw0KICAgIH0NCiAgICAvLyBGb3IgbG9vcHMuDQogICAgZnVuY3Rpb24gZm9yc3BlYzEodHlwZSl7DQogICAgICBpZiAodHlwZSA9PSAidmFyIikgY29udCh2YXJkZWYxLCBmb3JzcGVjMik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICI7IikgcGFzcyhmb3JzcGVjMik7DQogICAgICBlbHNlIGlmICh0eXBlID09ICJ2YXJpYWJsZSIpIGNvbnQoZm9ybWF5YmVpbik7DQogICAgICBlbHNlIHBhc3MoZm9yc3BlYzIpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBmb3JtYXliZWluKHR5cGUsIHZhbHVlKXsNCiAgICAgIGlmICh2YWx1ZSA9PSAiaW4iKSBjb250KGV4cHJlc3Npb24pOw0KICAgICAgZWxzZSBjb250KG1heWJlb3BlcmF0b3IsIGZvcnNwZWMyKTsNCiAgICB9DQogICAgZnVuY3Rpb24gZm9yc3BlYzIodHlwZSwgdmFsdWUpew0KICAgICAgaWYgKHR5cGUgPT0gIjsiKSBjb250KGZvcnNwZWMzKTsNCiAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJpbiIpIGNvbnQoZXhwcmVzc2lvbik7DQogICAgICBlbHNlIGNvbnQoZXhwcmVzc2lvbiwgZXhwZWN0KCI7IiksIGZvcnNwZWMzKTsNCiAgICB9DQogICAgZnVuY3Rpb24gZm9yc3BlYzModHlwZSkgew0KICAgICAgaWYgKHR5cGUgPT0gIikiKSBwYXNzKCk7DQogICAgICBlbHNlIGNvbnQoZXhwcmVzc2lvbik7DQogICAgfQ0KICAgIC8vIEEgZnVuY3Rpb24gZGVmaW5pdGlvbiBjcmVhdGVzIGEgbmV3IGNvbnRleHQsIGFuZCB0aGUgdmFyaWFibGVzDQogICAgLy8gaW4gaXRzIGFyZ3VtZW50IGxpc3QgaGF2ZSB0byBiZSBhZGRlZCB0byB0aGlzIGNvbnRleHQuDQogICAgZnVuY3Rpb24gZnVuY3Rpb25kZWYodHlwZSwgdmFsdWUpew0KICAgICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIil7cmVnaXN0ZXIodmFsdWUpOyBjb250KGZ1bmN0aW9uZGVmKTt9DQogICAgICBlbHNlIGlmICh0eXBlID09ICIoIikgY29udChwdXNoY29udGV4dCwgY29tbWFzZXAoZnVuYXJnLCAiKSIpLCBzdGF0ZW1lbnQsIHBvcGNvbnRleHQpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBmdW5hcmcodHlwZSwgdmFsdWUpew0KICAgICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIil7cmVnaXN0ZXIodmFsdWUpOyBjb250KCk7fQ0KICAgIH0NCiAgDQogICAgcmV0dXJuIHBhcnNlcjsNCiAgfQ0KDQogIHJldHVybiB7DQogICAgbWFrZTogcGFyc2VKUywNCiAgICBlbGVjdHJpY0NoYXJzOiAie306IiwNCiAgICBjb25maWd1cmU6IGZ1bmN0aW9uKG9iaikgew0KICAgICAgaWYgKG9iai5qc29uICE9IG51bGwpIGpzb24gPSBvYmouanNvbjsNCiAgICB9DQogIH07DQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsesparql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIFNwYXJxbFBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQogIGZ1bmN0aW9uIHdvcmRSZWdleHAod29yZHMpIHsNCiAgICByZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIgKyB3b3Jkcy5qb2luKCJ8IikgKyAiKSQiLCAiaSIpOw0KICB9DQogIHZhciBvcHMgPSB3b3JkUmVnZXhwKFsic3RyIiwgImxhbmciLCAibGFuZ21hdGNoZXMiLCAiZGF0YXR5cGUiLCAiYm91bmQiLCAic2FtZXRlcm0iLCAiaXNpcmkiLCAiaXN1cmkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgImlzYmxhbmsiLCAiaXNsaXRlcmFsIiwgInVuaW9uIiwgImEiXSk7DQogIHZhciBrZXl3b3JkcyA9IHdvcmRSZWdleHAoWyJiYXNlIiwgInByZWZpeCIsICJzZWxlY3QiLCAiZGlzdGluY3QiLCAicmVkdWNlZCIsICJjb25zdHJ1Y3QiLCAiZGVzY3JpYmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXNrIiwgImZyb20iLCAibmFtZWQiLCAid2hlcmUiLCAib3JkZXIiLCAibGltaXQiLCAib2Zmc2V0IiwgImZpbHRlciIsICJvcHRpb25hbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmFwaCIsICJieSIsICJhc2MiLCAiZGVzYyJdKTsNCiAgdmFyIG9wZXJhdG9yQ2hhcnMgPSAvWyorXC08Pj0mfF0vOw0KDQogIHZhciB0b2tlbml6ZVNwYXJxbCA9IChmdW5jdGlvbigpIHsNCiAgICBmdW5jdGlvbiBub3JtYWwoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgIGlmIChjaCA9PSAiJCIgfHwgY2ggPT0gIj8iKSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bXHdcZF0vKTsNCiAgICAgICAgcmV0dXJuICJzcC12YXIiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIjwiICYmICFzb3VyY2UubWF0Y2hlcygvW1xzXHUwMGEwPV0vKSkgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcygvW15cc1x1MDBhMD5dLyk7DQogICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCI+IikpIHNvdXJjZS5uZXh0KCk7DQogICAgICAgIHJldHVybiAic3AtdXJpIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICJcIiIgfHwgY2ggPT0gIiciKSB7DQogICAgICAgIHNldFN0YXRlKGluTGl0ZXJhbChjaCkpOw0KICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKC9be31cKFwpLFwuO1xbXF1dLy50ZXN0KGNoKSkgew0KICAgICAgICByZXR1cm4gInNwLXB1bmMiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIiMiKSB7DQogICAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSBzb3VyY2UubmV4dCgpOw0KICAgICAgICByZXR1cm4gInNwLWNvbW1lbnQiOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAob3BlcmF0b3JDaGFycy50ZXN0KGNoKSkgew0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlTWF0Y2hlcyhvcGVyYXRvckNoYXJzKTsNCiAgICAgICAgcmV0dXJuICJzcC1vcGVyYXRvciI7DQogICAgICB9DQogICAgICBlbHNlIGlmIChjaCA9PSAiOiIpIHsNCiAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tcd1xkXC5fXC1dLyk7DQogICAgICAgIHJldHVybiAic3AtcHJlZml4ZWQiOw0KICAgICAgfQ0KICAgICAgZWxzZSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bX1x3XGRdLyk7DQogICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCI6IikpIHsNCiAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bXHdcZF9cLV0vKTsNCiAgICAgICAgICByZXR1cm4gInNwLXByZWZpeGVkIjsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgd29yZCA9IHNvdXJjZS5nZXQoKSwgdHlwZTsNCiAgICAgICAgaWYgKG9wcy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAic3Atb3BlcmF0b3IiOw0KICAgICAgICBlbHNlIGlmIChrZXl3b3Jkcy50ZXN0KHdvcmQpKQ0KICAgICAgICAgIHR5cGUgPSAic3Ata2V5d29yZCI7DQogICAgICAgIGVsc2UNCiAgICAgICAgICB0eXBlID0gInNwLXdvcmQiOw0KICAgICAgICByZXR1cm4ge3N0eWxlOiB0eXBlLCBjb250ZW50OiB3b3JkfTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpbkxpdGVyYWwocXVvdGUpIHsNCiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgIHZhciBlc2NhcGVkID0gZmFsc2U7DQogICAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQogICAgICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgICAgICBpZiAoY2ggPT0gcXVvdGUgJiYgIWVzY2FwZWQpIHsNCiAgICAgICAgICAgIHNldFN0YXRlKG5vcm1hbCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICB9DQogICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkICYmIGNoID09ICJcXCI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICJzcC1saXRlcmFsIjsNCiAgICAgIH07DQogICAgfQ0KDQogICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc3RhcnRTdGF0ZSkgew0KICAgICAgcmV0dXJuIHRva2VuaXplcihzb3VyY2UsIHN0YXJ0U3RhdGUgfHwgbm9ybWFsKTsNCiAgICB9Ow0KICB9KSgpOw0KDQogIGZ1bmN0aW9uIGluZGVudFNwYXJxbChjb250ZXh0KSB7DQogICAgcmV0dXJuIGZ1bmN0aW9uKG5leHRDaGFycykgew0KICAgICAgdmFyIGZpcnN0Q2hhciA9IG5leHRDaGFycyAmJiBuZXh0Q2hhcnMuY2hhckF0KDApOw0KICAgICAgaWYgKC9bXF1cfV0vLnRlc3QoZmlyc3RDaGFyKSkNCiAgICAgICAgd2hpbGUgKGNvbnRleHQgJiYgY29udGV4dC50eXBlID09ICJwYXR0ZXJuIikgY29udGV4dCA9IGNvbnRleHQucHJldjsNCg0KICAgICAgdmFyIGNsb3NpbmcgPSBjb250ZXh0ICYmIGZpcnN0Q2hhciA9PSBtYXRjaGluZ1tjb250ZXh0LnR5cGVdOw0KICAgICAgaWYgKCFjb250ZXh0KQ0KICAgICAgICByZXR1cm4gMDsNCiAgICAgIGVsc2UgaWYgKGNvbnRleHQudHlwZSA9PSAicGF0dGVybiIpDQogICAgICAgIHJldHVybiBjb250ZXh0LmNvbDsNCiAgICAgIGVsc2UgaWYgKGNvbnRleHQuYWxpZ24pDQogICAgICAgIHJldHVybiBjb250ZXh0LmNvbCAtIChjbG9zaW5nID8gY29udGV4dC53aWR0aCA6IDApOw0KICAgICAgZWxzZQ0KICAgICAgICByZXR1cm4gY29udGV4dC5pbmRlbnQgKyAoY2xvc2luZyA/IDAgOiBpbmRlbnRVbml0KTsNCiAgICB9DQogIH0NCg0KICBmdW5jdGlvbiBwYXJzZVNwYXJxbChzb3VyY2UpIHsNCiAgICB2YXIgdG9rZW5zID0gdG9rZW5pemVTcGFycWwoc291cmNlKTsNCiAgICB2YXIgY29udGV4dCA9IG51bGwsIGluZGVudCA9IDAsIGNvbCA9IDA7DQogICAgZnVuY3Rpb24gcHVzaENvbnRleHQodHlwZSwgd2lkdGgpIHsNCiAgICAgIGNvbnRleHQgPSB7cHJldjogY29udGV4dCwgaW5kZW50OiBpbmRlbnQsIGNvbDogY29sLCB0eXBlOiB0eXBlLCB3aWR0aDogd2lkdGh9Ow0KICAgIH0NCiAgICBmdW5jdGlvbiBwb3BDb250ZXh0KCkgew0KICAgICAgY29udGV4dCA9IGNvbnRleHQucHJldjsNCiAgICB9DQoNCiAgICB2YXIgaXRlciA9IHsNCiAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnMubmV4dCgpLCB0eXBlID0gdG9rZW4uc3R5bGUsIGNvbnRlbnQgPSB0b2tlbi5jb250ZW50LCB3aWR0aCA9IHRva2VuLnZhbHVlLmxlbmd0aDsNCg0KICAgICAgICBpZiAoY29udGVudCA9PSAiXG4iKSB7DQogICAgICAgICAgdG9rZW4uaW5kZW50YXRpb24gPSBpbmRlbnRTcGFycWwoY29udGV4dCk7DQogICAgICAgICAgaW5kZW50ID0gY29sID0gMDsNCiAgICAgICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LmFsaWduID09IG51bGwpIGNvbnRleHQuYWxpZ24gPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICh0eXBlID09ICJ3aGl0ZXNwYWNlIiAmJiBjb2wgPT0gMCkgew0KICAgICAgICAgIGluZGVudCA9IHdpZHRoOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKHR5cGUgIT0gInNwLWNvbW1lbnQiICYmIGNvbnRleHQgJiYgY29udGV4dC5hbGlnbiA9PSBudWxsKSB7DQogICAgICAgICAgY29udGV4dC5hbGlnbiA9IHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoY29udGVudCAhPSAiXG4iKSBjb2wgKz0gd2lkdGg7DQoNCiAgICAgICAgaWYgKC9bXFtce1woXS8udGVzdChjb250ZW50KSkgew0KICAgICAgICAgIHB1c2hDb250ZXh0KGNvbnRlbnQsIHdpZHRoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmICgvW1xdXH1cKV0vLnRlc3QoY29udGVudCkpIHsNCiAgICAgICAgICB3aGlsZSAoY29udGV4dCAmJiBjb250ZXh0LnR5cGUgPT0gInBhdHRlcm4iKQ0KICAgICAgICAgICAgcG9wQ29udGV4dCgpOw0KICAgICAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRlbnQgPT0gbWF0Y2hpbmdbY29udGV4dC50eXBlXSkNCiAgICAgICAgICAgIHBvcENvbnRleHQoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChjb250ZW50ID09ICIuIiAmJiBjb250ZXh0ICYmIGNvbnRleHQudHlwZSA9PSAicGF0dGVybiIpIHsNCiAgICAgICAgICBwb3BDb250ZXh0KCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSBpZiAoKHR5cGUgPT0gInNwLXdvcmQiIHx8IHR5cGUgPT0gInNwLXByZWZpeGVkIiB8fCB0eXBlID09ICJzcC11cmkiIHx8IHR5cGUgPT0gInNwLXZhciIgfHwgdHlwZSA9PSAic3AtbGl0ZXJhbCIpICYmDQogICAgICAgICAgICAgICAgIGNvbnRleHQgJiYgL1tce1xbXS8udGVzdChjb250ZXh0LnR5cGUpKSB7DQogICAgICAgICAgcHVzaENvbnRleHQoInBhdHRlcm4iLCB3aWR0aCk7DQogICAgICAgIH0NCg0KICAgICAgICByZXR1cm4gdG9rZW47DQogICAgICB9LA0KDQogICAgICBjb3B5OiBmdW5jdGlvbigpIHsNCiAgICAgICAgdmFyIF9jb250ZXh0ID0gY29udGV4dCwgX2luZGVudCA9IGluZGVudCwgX2NvbCA9IGNvbCwgX3Rva2VuU3RhdGUgPSB0b2tlbnMuc3RhdGU7DQogICAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsNCiAgICAgICAgICB0b2tlbnMgPSB0b2tlbml6ZVNwYXJxbChzb3VyY2UsIF90b2tlblN0YXRlKTsNCiAgICAgICAgICBjb250ZXh0ID0gX2NvbnRleHQ7DQogICAgICAgICAgaW5kZW50ID0gX2luZGVudDsNCiAgICAgICAgICBjb2wgPSBfY29sOw0KICAgICAgICAgIHJldHVybiBpdGVyOw0KICAgICAgICB9Ow0KICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuIGl0ZXI7DQogIH0NCg0KICByZXR1cm4ge21ha2U6IHBhcnNlU3BhcnFsLCBlbGVjdHJpY0NoYXJzOiAifV0ifTsNCn0pKCk7DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/parsexml.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogVGhpcyBmaWxlIGRlZmluZXMgYW4gWE1MIHBhcnNlciwgd2l0aCBhIGZldyBrbHVkZ2VzIHRvIG1ha2UgaXQNCiAqIHVzZWFibGUgZm9yIEhUTUwuIGF1dG9TZWxmQ2xvc2VycyBkZWZpbmVzIGEgc2V0IG9mIHRhZyBuYW1lcyB0aGF0DQogKiBhcmUgZXhwZWN0ZWQgdG8gbm90IGhhdmUgYSBjbG9zaW5nIHRhZywgYW5kIGRvTm90SW5kZW50IHNwZWNpZmllcw0KICogdGhlIHRhZ3MgaW5zaWRlIG9mIHdoaWNoIG5vIGluZGVudGF0aW9uIHNob3VsZCBoYXBwZW4gKHNlZSBDb25maWcNCiAqIG9iamVjdCkuIFRoZXNlIGNhbiBiZSBkaXNhYmxlZCBieSBwYXNzaW5nIHRoZSBlZGl0b3IgYW4gb2JqZWN0IGxpa2UNCiAqIHt1c2VIVE1MS2x1ZGdlczogZmFsc2V9IGFzIHBhcnNlckNvbmZpZyBvcHRpb24uDQogKi8NCg0KdmFyIFhNTFBhcnNlciA9IEVkaXRvci5QYXJzZXIgPSAoZnVuY3Rpb24oKSB7DQogIHZhciBLbHVkZ2VzID0gew0KICAgIGF1dG9TZWxmQ2xvc2VyczogeyJiciI6IHRydWUsICJpbWciOiB0cnVlLCAiaHIiOiB0cnVlLCAibGluayI6IHRydWUsICJpbnB1dCI6IHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgIm1ldGEiOiB0cnVlLCAiY29sIjogdHJ1ZSwgImZyYW1lIjogdHJ1ZSwgImJhc2UiOiB0cnVlLCAiYXJlYSI6IHRydWV9LA0KICAgIGRvTm90SW5kZW50OiB7InByZSI6IHRydWUsICIhY2RhdGEiOiB0cnVlfQ0KICB9Ow0KICB2YXIgTm9LbHVkZ2VzID0ge2F1dG9TZWxmQ2xvc2Vyczoge30sIGRvTm90SW5kZW50OiB7IiFjZGF0YSI6IHRydWV9fTsNCiAgdmFyIFVzZUtsdWRnZXMgPSBLbHVkZ2VzOw0KICB2YXIgYWxpZ25DREFUQSA9IGZhbHNlOw0KDQogIC8vIFNpbXBsZSBzdGF0ZWZ1bCB0b2tlbml6ZXIgZm9yIFhNTCBkb2N1bWVudHMuIFJldHVybnMgYQ0KICAvLyBNb2NoaUtpdC1zdHlsZSBpdGVyYXRvciwgd2l0aCBhIHN0YXRlIHByb3BlcnR5IHRoYXQgY29udGFpbnMgYQ0KICAvLyBmdW5jdGlvbiBlbmNhcHN1bGF0aW5nIHRoZSBjdXJyZW50IHN0YXRlLiBTZWUgdG9rZW5pemUuanMuDQogIHZhciB0b2tlbml6ZVhNTCA9IChmdW5jdGlvbigpIHsNCiAgICBmdW5jdGlvbiBpblRleHQoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgIGlmIChjaCA9PSAiPCIpIHsNCiAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIiEiKSkgew0KICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIlsiKSkgew0KICAgICAgICAgICAgaWYgKHNvdXJjZS5sb29rQWhlYWQoIltDREFUQVsiLCB0cnVlKSkgew0KICAgICAgICAgICAgICBzZXRTdGF0ZShpbkJsb2NrKCJ4bWwtY2RhdGEiLCAiXV0+IikpOw0KICAgICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICByZXR1cm4gInhtbC10ZXh0IjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZSBpZiAoc291cmNlLmxvb2tBaGVhZCgiLS0iLCB0cnVlKSkgew0KICAgICAgICAgICAgc2V0U3RhdGUoaW5CbG9jaygieG1sLWNvbW1lbnQiLCAiLS0+IikpOw0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZS5sb29rQWhlYWQoIkRPQ1RZUEUiLCB0cnVlKSkgew0KICAgICAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tcd1wuX1wtXS8pOw0KICAgICAgICAgICAgc2V0U3RhdGUoaW5CbG9jaygieG1sLWRvY3R5cGUiLCAiPiIpKTsNCiAgICAgICAgICAgIHJldHVybiAieG1sLWRvY3R5cGUiOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHJldHVybiAieG1sLXRleHQiOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChzb3VyY2UuZXF1YWxzKCI/IikpIHsNCiAgICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bXHdcLl9cLV0vKTsNCiAgICAgICAgICBzZXRTdGF0ZShpbkJsb2NrKCJ4bWwtcHJvY2Vzc2luZyIsICI/PiIpKTsNCiAgICAgICAgICByZXR1cm4gInhtbC1wcm9jZXNzaW5nIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICBpZiAoc291cmNlLmVxdWFscygiLyIpKSBzb3VyY2UubmV4dCgpOw0KICAgICAgICAgIHNldFN0YXRlKGluVGFnKTsNCiAgICAgICAgICByZXR1cm4gInhtbC1wdW5jdHVhdGlvbiI7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKGNoID09ICImIikgew0KICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgICAgIGlmIChzb3VyY2UubmV4dCgpID09ICI7IikNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAieG1sLWVudGl0eSI7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1teJjxcbl0vKTsNCiAgICAgICAgcmV0dXJuICJ4bWwtdGV4dCI7DQogICAgICB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaW5UYWcoc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgdmFyIGNoID0gc291cmNlLm5leHQoKTsNCiAgICAgIGlmIChjaCA9PSAiPiIpIHsNCiAgICAgICAgc2V0U3RhdGUoaW5UZXh0KTsNCiAgICAgICAgcmV0dXJuICJ4bWwtcHVuY3R1YXRpb24iOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoL1s/XC9dLy50ZXN0KGNoKSAmJiBzb3VyY2UuZXF1YWxzKCI+IikpIHsNCiAgICAgICAgc291cmNlLm5leHQoKTsNCiAgICAgICAgc2V0U3RhdGUoaW5UZXh0KTsNCiAgICAgICAgcmV0dXJuICJ4bWwtcHVuY3R1YXRpb24iOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZiAoY2ggPT0gIj0iKSB7DQogICAgICAgIHJldHVybiAieG1sLXB1bmN0dWF0aW9uIjsNCiAgICAgIH0NCiAgICAgIGVsc2UgaWYgKC9bXCdcIl0vLnRlc3QoY2gpKSB7DQogICAgICAgIHNldFN0YXRlKGluQXR0cmlidXRlKGNoKSk7DQogICAgICAgIHJldHVybiBudWxsOw0KICAgICAgfQ0KICAgICAgZWxzZSB7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bXlxzXHUwMGEwPTw+XCJcJ1wvP10vKTsNCiAgICAgICAgcmV0dXJuICJ4bWwtbmFtZSI7DQogICAgICB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gaW5BdHRyaWJ1dGUocXVvdGUpIHsNCiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHNldFN0YXRlKSB7DQogICAgICAgIHdoaWxlICghc291cmNlLmVuZE9mTGluZSgpKSB7DQogICAgICAgICAgaWYgKHNvdXJjZS5uZXh0KCkgPT0gcXVvdGUpIHsNCiAgICAgICAgICAgIHNldFN0YXRlKGluVGFnKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gInhtbC1hdHRyaWJ1dGUiOw0KICAgICAgfTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBpbkJsb2NrKHN0eWxlLCB0ZXJtaW5hdG9yKSB7DQogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzZXRTdGF0ZSkgew0KICAgICAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgICAgIGlmIChzb3VyY2UubG9va0FoZWFkKHRlcm1pbmF0b3IsIHRydWUpKSB7DQogICAgICAgICAgICBzZXRTdGF0ZShpblRleHQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHN0eWxlOw0KICAgICAgfTsNCiAgICB9DQoNCiAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlLCBzdGFydFN0YXRlKSB7DQogICAgICByZXR1cm4gdG9rZW5pemVyKHNvdXJjZSwgc3RhcnRTdGF0ZSB8fCBpblRleHQpOw0KICAgIH07DQogIH0pKCk7DQoNCiAgLy8gVGhlIHBhcnNlci4gVGhlIHN0cnVjdHVyZSBvZiB0aGlzIGZ1bmN0aW9uIGxhcmdlbHkgZm9sbG93cyB0aGF0IG9mDQogIC8vIHBhcnNlSmF2YVNjcmlwdCBpbiBwYXJzZWphdmFzY3JpcHQuanMgKHRoZXJlIGlzIGFjdHVhbGx5IGEgYml0IG1vcmUNCiAgLy8gc2hhcmVkIGNvZGUgdGhhbiBJJ2QgbGlrZSksIGJ1dCBpdCBpcyBxdWl0ZSBhIGJpdCBzaW1wbGVyLg0KICBmdW5jdGlvbiBwYXJzZVhNTChzb3VyY2UpIHsNCiAgICB2YXIgdG9rZW5zID0gdG9rZW5pemVYTUwoc291cmNlKSwgdG9rZW47DQogICAgdmFyIGNjID0gW2Jhc2VdOw0KICAgIHZhciB0b2tlbk5yID0gMCwgaW5kZW50ZWQgPSAwOw0KICAgIHZhciBjdXJyZW50VGFnID0gbnVsbCwgY29udGV4dCA9IG51bGw7DQogICAgdmFyIGNvbnN1bWU7DQogICAgDQogICAgZnVuY3Rpb24gcHVzaChmcykgew0KICAgICAgZm9yICh2YXIgaSA9IGZzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKQ0KICAgICAgICBjYy5wdXNoKGZzW2ldKTsNCiAgICB9DQogICAgZnVuY3Rpb24gY29udCgpIHsNCiAgICAgIHB1c2goYXJndW1lbnRzKTsNCiAgICAgIGNvbnN1bWUgPSB0cnVlOw0KICAgIH0NCiAgICBmdW5jdGlvbiBwYXNzKCkgew0KICAgICAgcHVzaChhcmd1bWVudHMpOw0KICAgICAgY29uc3VtZSA9IGZhbHNlOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIG1hcmtFcnIoKSB7DQogICAgICB0b2tlbi5zdHlsZSArPSAiIHhtbC1lcnJvciI7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGV4cGVjdCh0ZXh0KSB7DQogICAgICByZXR1cm4gZnVuY3Rpb24oc3R5bGUsIGNvbnRlbnQpIHsNCiAgICAgICAgaWYgKGNvbnRlbnQgPT0gdGV4dCkgY29udCgpOw0KICAgICAgICBlbHNlIHttYXJrRXJyKCk7IGNvbnQoYXJndW1lbnRzLmNhbGxlZSk7fQ0KICAgICAgfTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBwdXNoQ29udGV4dCh0YWduYW1lLCBzdGFydE9mTGluZSkgew0KICAgICAgdmFyIG5vSW5kZW50ID0gVXNlS2x1ZGdlcy5kb05vdEluZGVudC5oYXNPd25Qcm9wZXJ0eSh0YWduYW1lKSB8fCAoY29udGV4dCAmJiBjb250ZXh0Lm5vSW5kZW50KTsNCiAgICAgIGNvbnRleHQgPSB7cHJldjogY29udGV4dCwgbmFtZTogdGFnbmFtZSwgaW5kZW50OiBpbmRlbnRlZCwgc3RhcnRPZkxpbmU6IHN0YXJ0T2ZMaW5lLCBub0luZGVudDogbm9JbmRlbnR9Ow0KICAgIH0NCiAgICBmdW5jdGlvbiBwb3BDb250ZXh0KCkgew0KICAgICAgY29udGV4dCA9IGNvbnRleHQucHJldjsNCiAgICB9DQogICAgZnVuY3Rpb24gY29tcHV0ZUluZGVudGF0aW9uKGJhc2VDb250ZXh0KSB7DQogICAgICByZXR1cm4gZnVuY3Rpb24obmV4dENoYXJzLCBjdXJyZW50KSB7DQogICAgICAgIHZhciBjb250ZXh0ID0gYmFzZUNvbnRleHQ7DQogICAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQubm9JbmRlbnQpDQogICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7DQogICAgICAgIGlmIChhbGlnbkNEQVRBICYmIC88IVxbQ0RBVEFcWy8udGVzdChuZXh0Q2hhcnMpKQ0KICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICBpZiAoY29udGV4dCAmJiAvXjxcLy8udGVzdChuZXh0Q2hhcnMpKQ0KICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnByZXY7DQogICAgICAgIHdoaWxlIChjb250ZXh0ICYmICFjb250ZXh0LnN0YXJ0T2ZMaW5lKQ0KICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnByZXY7DQogICAgICAgIGlmIChjb250ZXh0KQ0KICAgICAgICAgIHJldHVybiBjb250ZXh0LmluZGVudCArIGluZGVudFVuaXQ7DQogICAgICAgIGVsc2UNCiAgICAgICAgICByZXR1cm4gMDsNCiAgICAgIH07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gYmFzZSgpIHsNCiAgICAgIHJldHVybiBwYXNzKGVsZW1lbnQsIGJhc2UpOw0KICAgIH0NCiAgICB2YXIgaGFybWxlc3NUb2tlbnMgPSB7InhtbC10ZXh0IjogdHJ1ZSwgInhtbC1lbnRpdHkiOiB0cnVlLCAieG1sLWNvbW1lbnQiOiB0cnVlLCAieG1sLXByb2Nlc3NpbmciOiB0cnVlLCAieG1sLWRvY3R5cGUiOiB0cnVlfTsNCiAgICBmdW5jdGlvbiBlbGVtZW50KHN0eWxlLCBjb250ZW50KSB7DQogICAgICBpZiAoY29udGVudCA9PSAiPCIpIGNvbnQodGFnbmFtZSwgYXR0cmlidXRlcywgZW5kdGFnKHRva2VuTnIgPT0gMSkpOw0KICAgICAgZWxzZSBpZiAoY29udGVudCA9PSAiPC8iKSBjb250KGNsb3NldGFnbmFtZSwgZXhwZWN0KCI+IikpOw0KICAgICAgZWxzZSBpZiAoc3R5bGUgPT0gInhtbC1jZGF0YSIpIHsNCiAgICAgICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQubmFtZSAhPSAiIWNkYXRhIikgcHVzaENvbnRleHQoIiFjZGF0YSIpOw0KICAgICAgICBpZiAoL1xdXF0+JC8udGVzdChjb250ZW50KSkgcG9wQ29udGV4dCgpOw0KICAgICAgICBjb250KCk7DQogICAgICB9DQogICAgICBlbHNlIGlmIChoYXJtbGVzc1Rva2Vucy5oYXNPd25Qcm9wZXJ0eShzdHlsZSkpIGNvbnQoKTsNCiAgICAgIGVsc2Uge21hcmtFcnIoKTsgY29udCgpO30NCiAgICB9DQogICAgZnVuY3Rpb24gdGFnbmFtZShzdHlsZSwgY29udGVudCkgew0KICAgICAgaWYgKHN0eWxlID09ICJ4bWwtbmFtZSIpIHsNCiAgICAgICAgY3VycmVudFRhZyA9IGNvbnRlbnQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgdG9rZW4uc3R5bGUgPSAieG1sLXRhZ25hbWUiOw0KICAgICAgICBjb250KCk7DQogICAgICB9DQogICAgICBlbHNlIHsNCiAgICAgICAgY3VycmVudFRhZyA9IG51bGw7DQogICAgICAgIHBhc3MoKTsNCiAgICAgIH0NCiAgICB9DQogICAgZnVuY3Rpb24gY2xvc2V0YWduYW1lKHN0eWxlLCBjb250ZW50KSB7DQogICAgICBpZiAoc3R5bGUgPT0gInhtbC1uYW1lIikgew0KICAgICAgICB0b2tlbi5zdHlsZSA9ICJ4bWwtdGFnbmFtZSI7DQogICAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRlbnQudG9Mb3dlckNhc2UoKSA9PSBjb250ZXh0Lm5hbWUpIHBvcENvbnRleHQoKTsNCiAgICAgICAgZWxzZSBtYXJrRXJyKCk7DQogICAgICB9DQogICAgICBjb250KCk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGVuZHRhZyhzdGFydE9mTGluZSkgew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0eWxlLCBjb250ZW50KSB7DQogICAgICAgIGlmIChjb250ZW50ID09ICIvPiIgfHwgKGNvbnRlbnQgPT0gIj4iICYmIFVzZUtsdWRnZXMuYXV0b1NlbGZDbG9zZXJzLmhhc093blByb3BlcnR5KGN1cnJlbnRUYWcpKSkgY29udCgpOw0KICAgICAgICBlbHNlIGlmIChjb250ZW50ID09ICI+Iikge3B1c2hDb250ZXh0KGN1cnJlbnRUYWcsIHN0YXJ0T2ZMaW5lKTsgY29udCgpO30NCiAgICAgICAgZWxzZSB7bWFya0VycigpOyBjb250KGFyZ3VtZW50cy5jYWxsZWUpO30NCiAgICAgIH07DQogICAgfQ0KICAgIGZ1bmN0aW9uIGF0dHJpYnV0ZXMoc3R5bGUpIHsNCiAgICAgIGlmIChzdHlsZSA9PSAieG1sLW5hbWUiKSB7dG9rZW4uc3R5bGUgPSAieG1sLWF0dG5hbWUiOyBjb250KGF0dHJpYnV0ZSwgYXR0cmlidXRlcyk7fQ0KICAgICAgZWxzZSBwYXNzKCk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGF0dHJpYnV0ZShzdHlsZSwgY29udGVudCkgew0KICAgICAgaWYgKGNvbnRlbnQgPT0gIj0iKSBjb250KHZhbHVlKTsNCiAgICAgIGVsc2UgaWYgKGNvbnRlbnQgPT0gIj4iIHx8IGNvbnRlbnQgPT0gIi8+IikgcGFzcyhlbmR0YWcpOw0KICAgICAgZWxzZSBwYXNzKCk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIHZhbHVlKHN0eWxlKSB7DQogICAgICBpZiAoc3R5bGUgPT0gInhtbC1hdHRyaWJ1dGUiKSBjb250KHZhbHVlKTsNCiAgICAgIGVsc2UgcGFzcygpOw0KICAgIH0NCg0KICAgIHJldHVybiB7DQogICAgICBpbmRlbnRhdGlvbjogZnVuY3Rpb24oKSB7cmV0dXJuIGluZGVudGVkO30sDQoNCiAgICAgIG5leHQ6IGZ1bmN0aW9uKCl7DQogICAgICAgIHRva2VuID0gdG9rZW5zLm5leHQoKTsNCiAgICAgICAgaWYgKHRva2VuLnN0eWxlID09ICJ3aGl0ZXNwYWNlIiAmJiB0b2tlbk5yID09IDApDQogICAgICAgICAgaW5kZW50ZWQgPSB0b2tlbi52YWx1ZS5sZW5ndGg7DQogICAgICAgIGVsc2UNCiAgICAgICAgICB0b2tlbk5yKys7DQogICAgICAgIGlmICh0b2tlbi5jb250ZW50ID09ICJcbiIpIHsNCiAgICAgICAgICBpbmRlbnRlZCA9IHRva2VuTnIgPSAwOw0KICAgICAgICAgIHRva2VuLmluZGVudGF0aW9uID0gY29tcHV0ZUluZGVudGF0aW9uKGNvbnRleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKHRva2VuLnN0eWxlID09ICJ3aGl0ZXNwYWNlIiB8fCB0b2tlbi50eXBlID09ICJ4bWwtY29tbWVudCIpDQogICAgICAgICAgcmV0dXJuIHRva2VuOw0KDQogICAgICAgIHdoaWxlKHRydWUpew0KICAgICAgICAgIGNvbnN1bWUgPSBmYWxzZTsNCiAgICAgICAgICBjYy5wb3AoKSh0b2tlbi5zdHlsZSwgdG9rZW4uY29udGVudCk7DQogICAgICAgICAgaWYgKGNvbnN1bWUpIHJldHVybiB0b2tlbjsNCiAgICAgICAgfQ0KICAgICAgfSwNCg0KICAgICAgY29weTogZnVuY3Rpb24oKXsNCiAgICAgICAgdmFyIF9jYyA9IGNjLmNvbmNhdChbXSksIF90b2tlblN0YXRlID0gdG9rZW5zLnN0YXRlLCBfY29udGV4dCA9IGNvbnRleHQ7DQogICAgICAgIHZhciBwYXJzZXIgPSB0aGlzOw0KICAgICAgICANCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGlucHV0KXsNCiAgICAgICAgICBjYyA9IF9jYy5jb25jYXQoW10pOw0KICAgICAgICAgIHRva2VuTnIgPSBpbmRlbnRlZCA9IDA7DQogICAgICAgICAgY29udGV4dCA9IF9jb250ZXh0Ow0KICAgICAgICAgIHRva2VucyA9IHRva2VuaXplWE1MKGlucHV0LCBfdG9rZW5TdGF0ZSk7DQogICAgICAgICAgcmV0dXJuIHBhcnNlcjsNCiAgICAgICAgfTsNCiAgICAgIH0NCiAgICB9Ow0KICB9DQoNCiAgcmV0dXJuIHsNCiAgICBtYWtlOiBwYXJzZVhNTCwNCiAgICBlbGVjdHJpY0NoYXJzOiAiLyIsDQogICAgY29uZmlndXJlOiBmdW5jdGlvbihjb25maWcpIHsNCiAgICAgIGlmIChjb25maWcudXNlSFRNTEtsdWRnZXMgIT0gbnVsbCkNCiAgICAgICAgVXNlS2x1ZGdlcyA9IGNvbmZpZy51c2VIVE1MS2x1ZGdlcyA/IEtsdWRnZXMgOiBOb0tsdWRnZXM7DQogICAgICBpZiAoY29uZmlnLmFsaWduQ0RBVEEpDQogICAgICAgIGFsaWduQ0RBVEEgPSBjb25maWcuYWxpZ25DREFUQTsNCiAgICB9DQogIH07DQp9KSgpOw0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/select.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogRnVuY3Rpb25hbGl0eSBmb3IgZmluZGluZywgc3RvcmluZywgYW5kIHJlc3RvcmluZyBzZWxlY3Rpb25zDQogKg0KICogVGhpcyBkb2VzIG5vdCBwcm92aWRlIGEgZ2VuZXJpYyBBUEksIGp1c3QgdGhlIG1pbmltYWwgZnVuY3Rpb25hbGl0eQ0KICogcmVxdWlyZWQgYnkgdGhlIENvZGVNaXJyb3Igc3lzdGVtLg0KICovDQoNCi8vIE5hbWVzcGFjZSBvYmplY3QuDQp2YXIgc2VsZWN0ID0ge307DQoNCihmdW5jdGlvbigpIHsNCiAgc2VsZWN0LmllX3NlbGVjdGlvbiA9IGRvY3VtZW50LnNlbGVjdGlvbiAmJiBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2VDb2xsZWN0aW9uOw0KDQogIC8vIEZpbmQgdGhlICd0b3AtbGV2ZWwnIChkZWZpbmVkIGFzICdhIGRpcmVjdCBjaGlsZCBvZiB0aGUgbm9kZQ0KICAvLyBwYXNzZWQgYXMgdGhlIHRvcCBhcmd1bWVudCcpIG5vZGUgdGhhdCB0aGUgZ2l2ZW4gbm9kZSBpcw0KICAvLyBjb250YWluZWQgaW4uIFJldHVybiBudWxsIGlmIHRoZSBnaXZlbiBub2RlIGlzIG5vdCBpbnNpZGUgdGhlIHRvcA0KICAvLyBub2RlLg0KICBmdW5jdGlvbiB0b3BMZXZlbE5vZGVBdChub2RlLCB0b3ApIHsNCiAgICB3aGlsZSAobm9kZSAmJiBub2RlLnBhcmVudE5vZGUgIT0gdG9wKQ0KICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsNCiAgICByZXR1cm4gbm9kZTsNCiAgfQ0KDQogIC8vIEZpbmQgdGhlIHRvcC1sZXZlbCBub2RlIHRoYXQgY29udGFpbnMgdGhlIG5vZGUgYmVmb3JlIHRoaXMgb25lLg0KICBmdW5jdGlvbiB0b3BMZXZlbE5vZGVCZWZvcmUobm9kZSwgdG9wKSB7DQogICAgd2hpbGUgKCFub2RlLnByZXZpb3VzU2libGluZyAmJiBub2RlLnBhcmVudE5vZGUgIT0gdG9wKQ0KICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsNCiAgICByZXR1cm4gdG9wTGV2ZWxOb2RlQXQobm9kZS5wcmV2aW91c1NpYmxpbmcsIHRvcCk7DQogIH0NCg0KICB2YXIgZm91clNwYWNlcyA9ICJcdTAwYTBcdTAwYTBcdTAwYTBcdTAwYTAiOw0KDQogIHNlbGVjdC5zY3JvbGxUb05vZGUgPSBmdW5jdGlvbihub2RlLCBjdXJzb3IpIHsNCiAgICBpZiAoIW5vZGUpIHJldHVybjsNCiAgICB2YXIgZWxlbWVudCA9IG5vZGUsIGJvZHkgPSBkb2N1bWVudC5ib2R5LA0KICAgICAgICBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LA0KICAgICAgICBhdEVuZCA9ICFlbGVtZW50Lm5leHRTaWJsaW5nIHx8ICFlbGVtZW50Lm5leHRTaWJsaW5nLm5leHRTaWJsaW5nDQogICAgICAgICAgICAgICAgfHwgIWVsZW1lbnQubmV4dFNpYmxpbmcubmV4dFNpYmxpbmcubmV4dFNpYmxpbmc7DQogICAgLy8gSW4gT3BlcmEgKGFuZCByZWNlbnQgV2Via2l0IHZlcnNpb25zKSwgQlIgZWxlbWVudHMgKmFsd2F5cyoNCiAgICAvLyBoYXZlIGEgb2Zmc2V0VG9wIHByb3BlcnR5IG9mIHplcm8uDQogICAgdmFyIGNvbXBlbnNhdGVIYWNrID0gMDsNCiAgICB3aGlsZSAoZWxlbWVudCAmJiAhZWxlbWVudC5vZmZzZXRUb3ApIHsNCiAgICAgIGNvbXBlbnNhdGVIYWNrKys7DQogICAgICBlbGVtZW50ID0gZWxlbWVudC5wcmV2aW91c1NpYmxpbmc7DQogICAgfQ0KICAgIC8vIGF0RW5kIGlzIGFub3RoZXIga2x1ZGdlIGZvciB0aGVzZSBicm93c2VycyAtLSBpZiB0aGUgY3Vyc29yIGlzDQogICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQsIGFuZCB0aGUgbm9kZSBkb2Vzbid0IGhhdmUgYW4NCiAgICAvLyBvZmZzZXQsIGp1c3Qgc2Nyb2xsIHRvIHRoZSBlbmQuDQogICAgaWYgKGNvbXBlbnNhdGVIYWNrID09IDApIGF0RW5kID0gZmFsc2U7DQoNCiAgICAvLyBXZWJLaXQgaGFzIGEgYmFkIGhhYml0IG9mIChzb21ldGltZXMpIGhhcHBpbHkgcmV0dXJuaW5nIGJvZ3VzDQogICAgLy8gb2Zmc2V0cyB3aGVuIHRoZSBkb2N1bWVudCBoYXMganVzdCBiZWVuIGNoYW5nZWQuIFRoaXMgc2VlbXMgdG8NCiAgICAvLyBhbHdheXMgYmUgNS81LCBzbyB3ZSBkb24ndCB1c2UgdGhvc2UuDQogICAgaWYgKHdlYmtpdCAmJiBlbGVtZW50ICYmIGVsZW1lbnQub2Zmc2V0VG9wID09IDUgJiYgZWxlbWVudC5vZmZzZXRMZWZ0ID09IDUpDQogICAgICByZXR1cm47DQoNCiAgICB2YXIgeSA9IGNvbXBlbnNhdGVIYWNrICogKGVsZW1lbnQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IDApLCB4ID0gMCwNCiAgICAgICAgd2lkdGggPSAobm9kZSA/IG5vZGUub2Zmc2V0V2lkdGggOiAwKSwgcG9zID0gZWxlbWVudDsNCiAgICB3aGlsZSAocG9zICYmIHBvcy5vZmZzZXRQYXJlbnQpIHsNCiAgICAgIHkgKz0gcG9zLm9mZnNldFRvcDsNCiAgICAgIC8vIERvbid0IGNvdW50IFggb2Zmc2V0IGZvciA8YnI+IG5vZGVzDQogICAgICBpZiAoIWlzQlIocG9zKSkNCiAgICAgICAgeCArPSBwb3Mub2Zmc2V0TGVmdDsNCiAgICAgIHBvcyA9IHBvcy5vZmZzZXRQYXJlbnQ7DQogICAgfQ0KDQogICAgdmFyIHNjcm9sbF94ID0gYm9keS5zY3JvbGxMZWZ0IHx8IGh0bWwuc2Nyb2xsTGVmdCB8fCAwLA0KICAgICAgICBzY3JvbGxfeSA9IGJvZHkuc2Nyb2xsVG9wIHx8IGh0bWwuc2Nyb2xsVG9wIHx8IDAsDQogICAgICAgIHNjcm9sbCA9IGZhbHNlLCBzY3JlZW5fd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCBodG1sLmNsaWVudFdpZHRoIHx8IDA7DQoNCiAgICBpZiAoY3Vyc29yIHx8IHdpZHRoIDwgc2NyZWVuX3dpZHRoKSB7DQogICAgICBpZiAoY3Vyc29yKSB7DQogICAgICAgIHZhciBvZmYgPSBzZWxlY3Qub2Zmc2V0SW5Ob2RlKG5vZGUpLCBzaXplID0gbm9kZVRleHQobm9kZSkubGVuZ3RoOw0KICAgICAgICBpZiAoc2l6ZSkgeCArPSB3aWR0aCAqIChvZmYgLyBzaXplKTsNCiAgICAgIH0NCiAgICAgIHZhciBzY3JlZW5feCA9IHggLSBzY3JvbGxfeDsNCiAgICAgIGlmIChzY3JlZW5feCA8IDAgfHwgc2NyZWVuX3ggPiBzY3JlZW5fd2lkdGgpIHsNCiAgICAgICAgc2Nyb2xsX3ggPSB4Ow0KICAgICAgICBzY3JvbGwgPSB0cnVlOw0KICAgICAgfQ0KICAgIH0NCiAgICB2YXIgc2NyZWVuX3kgPSB5IC0gc2Nyb2xsX3k7DQogICAgaWYgKHNjcmVlbl95IDwgMCB8fCBhdEVuZCB8fCBzY3JlZW5feSA+ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgaHRtbC5jbGllbnRIZWlnaHQgfHwgMCkgLSA1MCkgew0KICAgICAgc2Nyb2xsX3kgPSBhdEVuZCA/IDFlNiA6IHk7DQogICAgICBzY3JvbGwgPSB0cnVlOw0KICAgIH0NCiAgICBpZiAoc2Nyb2xsKSB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsX3gsIHNjcm9sbF95KTsNCiAgfTsNCg0KICBzZWxlY3Quc2Nyb2xsVG9DdXJzb3IgPSBmdW5jdGlvbihjb250YWluZXIpIHsNCiAgICBzZWxlY3Quc2Nyb2xsVG9Ob2RlKHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKGNvbnRhaW5lciwgdHJ1ZSkgfHwgY29udGFpbmVyLmZpcnN0Q2hpbGQsIHRydWUpOw0KICB9Ow0KDQogIC8vIFVzZWQgdG8gcHJldmVudCByZXN0b3JpbmcgYSBzZWxlY3Rpb24gd2hlbiB3ZSBkbyBub3QgbmVlZCB0by4NCiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBudWxsOw0KDQogIHNlbGVjdC5zbmFwc2hvdENoYW5nZWQgPSBmdW5jdGlvbigpIHsNCiAgICBpZiAoY3VycmVudFNlbGVjdGlvbikgY3VycmVudFNlbGVjdGlvbi5jaGFuZ2VkID0gdHJ1ZTsNCiAgfTsNCg0KICAvLyBGaW5kIHRoZSAnbGVhZicgbm9kZSAoQlIgb3IgdGV4dCkgYWZ0ZXIgdGhlIGdpdmVuIG9uZS4NCiAgZnVuY3Rpb24gYmFzZU5vZGVBZnRlcihub2RlKSB7DQogICAgdmFyIG5leHQgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgIGlmIChuZXh0KSB7DQogICAgICB3aGlsZSAobmV4dC5maXJzdENoaWxkKSBuZXh0ID0gbmV4dC5maXJzdENoaWxkOw0KICAgICAgaWYgKG5leHQubm9kZVR5cGUgPT0gMyB8fCBpc0JSKG5leHQpKSByZXR1cm4gbmV4dDsNCiAgICAgIGVsc2UgcmV0dXJuIGJhc2VOb2RlQWZ0ZXIobmV4dCk7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgdmFyIHBhcmVudCA9IG5vZGUucGFyZW50Tm9kZTsNCiAgICAgIHdoaWxlIChwYXJlbnQgJiYgIXBhcmVudC5uZXh0U2libGluZykgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7DQogICAgICByZXR1cm4gcGFyZW50ICYmIGJhc2VOb2RlQWZ0ZXIocGFyZW50KTsNCiAgICB9DQogIH0NCg0KICAvLyBUaGlzIGlzIGNhbGxlZCBieSB0aGUgY29kZSBpbiBlZGl0b3IuanMgd2hlbmV2ZXIgaXQgaXMgcmVwbGFjaW5nDQogIC8vIGEgdGV4dCBub2RlLiBUaGUgZnVuY3Rpb24gc2VlcyB3aGV0aGVyIHRoZSBnaXZlbiBvbGROb2RlIGlzIHBhcnQNCiAgLy8gb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLCBhbmQgdXBkYXRlcyB0aGlzIHNlbGVjdGlvbiBpZiBpdCBpcy4NCiAgLy8gQmVjYXVzZSBub2RlcyBhcmUgb2Z0ZW4gb25seSBwYXJ0aWFsbHkgcmVwbGFjZWQsIHRoZSBsZW5ndGggb2YNCiAgLy8gdGhlIHBhcnQgdGhhdCBnZXRzIHJlcGxhY2VkIGhhcyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQgLS0gdGhlDQogIC8vIHNlbGVjdGlvbiBtaWdodCBzdGF5IGluIHRoZSBvbGROb2RlIGlmIHRoZSBuZXdOb2RlIGlzIHNtYWxsZXINCiAgLy8gdGhhbiB0aGUgc2VsZWN0aW9uJ3Mgb2Zmc2V0LiBUaGUgb2Zmc2V0IGFyZ3VtZW50IGlzIG5lZWRlZCBpbg0KICAvLyBjYXNlIHRoZSBzZWxlY3Rpb24gZG9lcyBtb3ZlIHRvIHRoZSBuZXcgb2JqZWN0LCBhbmQgdGhlIGdpdmVuDQogIC8vIGxlbmd0aCBpcyBub3QgdGhlIHdob2xlIGxlbmd0aCBvZiB0aGUgbmV3IG5vZGUgKHBhcnQgb2YgaXQgbWlnaHQNCiAgLy8gaGF2ZSBiZWVuIHVzZWQgdG8gcmVwbGFjZSBhbm90aGVyIG5vZGUpLg0KICBzZWxlY3Quc25hcHNob3RSZXBsYWNlTm9kZSA9IGZ1bmN0aW9uKGZyb20sIHRvLCBsZW5ndGgsIG9mZnNldCkgew0KICAgIGlmICghY3VycmVudFNlbGVjdGlvbikgcmV0dXJuOw0KDQogICAgZnVuY3Rpb24gcmVwbGFjZShwb2ludCkgew0KICAgICAgaWYgKGZyb20gPT0gcG9pbnQubm9kZSkgew0KICAgICAgICBjdXJyZW50U2VsZWN0aW9uLmNoYW5nZWQgPSB0cnVlOw0KICAgICAgICBpZiAobGVuZ3RoICYmIHBvaW50Lm9mZnNldCA+IGxlbmd0aCkgew0KICAgICAgICAgIHBvaW50Lm9mZnNldCAtPSBsZW5ndGg7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgcG9pbnQubm9kZSA9IHRvOw0KICAgICAgICAgIHBvaW50Lm9mZnNldCArPSAob2Zmc2V0IHx8IDApOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlIGlmIChzZWxlY3QuaWVfc2VsZWN0aW9uICYmIHBvaW50Lm9mZnNldCA9PSAwICYmIHBvaW50Lm5vZGUgPT0gYmFzZU5vZGVBZnRlcihmcm9tKSkgew0KICAgICAgICBjdXJyZW50U2VsZWN0aW9uLmNoYW5nZWQgPSB0cnVlOw0KICAgICAgfQ0KICAgIH0NCiAgICByZXBsYWNlKGN1cnJlbnRTZWxlY3Rpb24uc3RhcnQpOw0KICAgIHJlcGxhY2UoY3VycmVudFNlbGVjdGlvbi5lbmQpOw0KICB9Ow0KDQogIHNlbGVjdC5zbmFwc2hvdE1vdmUgPSBmdW5jdGlvbihmcm9tLCB0bywgZGlzdGFuY2UsIHJlbGF0aXZlLCBpZkF0U3RhcnQpIHsNCiAgICBpZiAoIWN1cnJlbnRTZWxlY3Rpb24pIHJldHVybjsNCg0KICAgIGZ1bmN0aW9uIG1vdmUocG9pbnQpIHsNCiAgICAgIGlmIChmcm9tID09IHBvaW50Lm5vZGUgJiYgKCFpZkF0U3RhcnQgfHwgcG9pbnQub2Zmc2V0ID09IDApKSB7DQogICAgICAgIGN1cnJlbnRTZWxlY3Rpb24uY2hhbmdlZCA9IHRydWU7DQogICAgICAgIHBvaW50Lm5vZGUgPSB0bzsNCiAgICAgICAgaWYgKHJlbGF0aXZlKSBwb2ludC5vZmZzZXQgPSBNYXRoLm1heCgwLCBwb2ludC5vZmZzZXQgKyBkaXN0YW5jZSk7DQogICAgICAgIGVsc2UgcG9pbnQub2Zmc2V0ID0gZGlzdGFuY2U7DQogICAgICB9DQogICAgfQ0KICAgIG1vdmUoY3VycmVudFNlbGVjdGlvbi5zdGFydCk7DQogICAgbW92ZShjdXJyZW50U2VsZWN0aW9uLmVuZCk7DQogIH07DQoNCiAgLy8gTW9zdCBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gdHdvIHdheXMsIG9uZSBmb3IgdGhlIElFIHNlbGVjdGlvbg0KICAvLyBtb2RlbCwgb25lIGZvciB0aGUgVzNDIG9uZS4NCiAgaWYgKHNlbGVjdC5pZV9zZWxlY3Rpb24pIHsNCiAgICBmdW5jdGlvbiBzZWxSYW5nZSgpIHsNCiAgICAgIHZhciBzZWwgPSBkb2N1bWVudC5zZWxlY3Rpb247DQogICAgICBpZiAoIXNlbCkgcmV0dXJuIG51bGw7DQogICAgICBpZiAoc2VsLmNyZWF0ZVJhbmdlKSByZXR1cm4gc2VsLmNyZWF0ZVJhbmdlKCk7DQogICAgICBlbHNlIHJldHVybiBzZWwuY3JlYXRlVGV4dFJhbmdlKCk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2VsZWN0aW9uTm9kZShzdGFydCkgew0KICAgICAgdmFyIHJhbmdlID0gc2VsUmFuZ2UoKTsNCiAgICAgIHJhbmdlLmNvbGxhcHNlKHN0YXJ0KTsNCg0KICAgICAgZnVuY3Rpb24gbm9kZUFmdGVyKG5vZGUpIHsNCiAgICAgICAgdmFyIGZvdW5kID0gbnVsbDsNCiAgICAgICAgd2hpbGUgKCFmb3VuZCAmJiBub2RlKSB7DQogICAgICAgICAgZm91bmQgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG5vZGVBdFN0YXJ0T2YoZm91bmQpOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBub2RlQXRTdGFydE9mKG5vZGUpIHsNCiAgICAgICAgd2hpbGUgKG5vZGUgJiYgbm9kZS5maXJzdENoaWxkKSBub2RlID0gbm9kZS5maXJzdENoaWxkOw0KICAgICAgICByZXR1cm4ge25vZGU6IG5vZGUsIG9mZnNldDogMH07DQogICAgICB9DQoNCiAgICAgIHZhciBjb250YWluaW5nID0gcmFuZ2UucGFyZW50RWxlbWVudCgpOw0KICAgICAgaWYgKCFpc0FuY2VzdG9yKGRvY3VtZW50LmJvZHksIGNvbnRhaW5pbmcpKSByZXR1cm4gbnVsbDsNCiAgICAgIGlmICghY29udGFpbmluZy5maXJzdENoaWxkKSByZXR1cm4gbm9kZUF0U3RhcnRPZihjb250YWluaW5nKTsNCg0KICAgICAgdmFyIHdvcmtpbmcgPSByYW5nZS5kdXBsaWNhdGUoKTsNCiAgICAgIHdvcmtpbmcubW92ZVRvRWxlbWVudFRleHQoY29udGFpbmluZyk7DQogICAgICB3b3JraW5nLmNvbGxhcHNlKHRydWUpOw0KICAgICAgZm9yICh2YXIgY3VyID0gY29udGFpbmluZy5maXJzdENoaWxkOyBjdXI7IGN1ciA9IGN1ci5uZXh0U2libGluZykgew0KICAgICAgICBpZiAoY3VyLm5vZGVUeXBlID09IDMpIHsNCiAgICAgICAgICB2YXIgc2l6ZSA9IGN1ci5ub2RlVmFsdWUubGVuZ3RoOw0KICAgICAgICAgIHdvcmtpbmcubW92ZSgiY2hhcmFjdGVyIiwgc2l6ZSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgd29ya2luZy5tb3ZlVG9FbGVtZW50VGV4dChjdXIpOw0KICAgICAgICAgIHdvcmtpbmcuY29sbGFwc2UoZmFsc2UpOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGRpciA9IHJhbmdlLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9TdGFydCIsIHdvcmtpbmcpOw0KICAgICAgICBpZiAoZGlyID09IDApIHJldHVybiBub2RlQWZ0ZXIoY3VyKTsNCiAgICAgICAgaWYgKGRpciA9PSAxKSBjb250aW51ZTsNCiAgICAgICAgaWYgKGN1ci5ub2RlVHlwZSAhPSAzKSByZXR1cm4gbm9kZUF0U3RhcnRPZihjdXIpOw0KDQogICAgICAgIHdvcmtpbmcuc2V0RW5kUG9pbnQoIlN0YXJ0VG9FbmQiLCByYW5nZSk7DQogICAgICAgIHJldHVybiB7bm9kZTogY3VyLCBvZmZzZXQ6IHNpemUgLSB3b3JraW5nLnRleHQubGVuZ3RofTsNCiAgICAgIH0NCiAgICAgIHJldHVybiBub2RlQWZ0ZXIoY29udGFpbmluZyk7DQogICAgfQ0KDQogICAgc2VsZWN0Lm1hcmtTZWxlY3Rpb24gPSBmdW5jdGlvbigpIHsNCiAgICAgIGN1cnJlbnRTZWxlY3Rpb24gPSBudWxsOw0KICAgICAgdmFyIHNlbCA9IGRvY3VtZW50LnNlbGVjdGlvbjsNCiAgICAgIGlmICghc2VsKSByZXR1cm47DQogICAgICB2YXIgc3RhcnQgPSBzZWxlY3Rpb25Ob2RlKHRydWUpLA0KICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbk5vZGUoZmFsc2UpOw0KICAgICAgaWYgKCFzdGFydCB8fCAhZW5kKSByZXR1cm47DQogICAgICBjdXJyZW50U2VsZWN0aW9uID0ge3N0YXJ0OiBzdGFydCwgZW5kOiBlbmQsIGNoYW5nZWQ6IGZhbHNlfTsNCiAgICB9Ow0KDQogICAgc2VsZWN0LnNlbGVjdE1hcmtlZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgaWYgKCFjdXJyZW50U2VsZWN0aW9uIHx8ICFjdXJyZW50U2VsZWN0aW9uLmNoYW5nZWQpIHJldHVybjsNCg0KICAgICAgZnVuY3Rpb24gbWFrZVJhbmdlKHBvaW50KSB7DQogICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCksDQogICAgICAgICAgICBub2RlID0gcG9pbnQubm9kZTsNCiAgICAgICAgaWYgKCFub2RlKSB7DQogICAgICAgICAgcmFuZ2UubW92ZVRvRWxlbWVudFRleHQoZG9jdW1lbnQuYm9keSk7DQogICAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpOw0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT0gMykgew0KICAgICAgICAgIHJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KG5vZGUucGFyZW50Tm9kZSk7DQogICAgICAgICAgdmFyIG9mZnNldCA9IHBvaW50Lm9mZnNldDsNCiAgICAgICAgICB3aGlsZSAobm9kZS5wcmV2aW91c1NpYmxpbmcpIHsNCiAgICAgICAgICAgIG5vZGUgPSBub2RlLnByZXZpb3VzU2libGluZzsNCiAgICAgICAgICAgIG9mZnNldCArPSAobm9kZS5pbm5lclRleHQgfHwgIiIpLmxlbmd0aDsNCiAgICAgICAgICB9DQogICAgICAgICAgcmFuZ2UubW92ZSgiY2hhcmFjdGVyIiwgb2Zmc2V0KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChub2RlKTsNCiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmFuZ2U7DQogICAgICB9DQoNCiAgICAgIHZhciBzdGFydCA9IG1ha2VSYW5nZShjdXJyZW50U2VsZWN0aW9uLnN0YXJ0KSwgZW5kID0gbWFrZVJhbmdlKGN1cnJlbnRTZWxlY3Rpb24uZW5kKTsNCiAgICAgIHN0YXJ0LnNldEVuZFBvaW50KCJTdGFydFRvRW5kIiwgZW5kKTsNCiAgICAgIHN0YXJ0LnNlbGVjdCgpOw0KICAgIH07DQoNCiAgICBzZWxlY3Qub2Zmc2V0SW5Ob2RlID0gZnVuY3Rpb24obm9kZSkgew0KICAgICAgdmFyIHJhbmdlID0gc2VsUmFuZ2UoKTsNCiAgICAgIGlmICghcmFuZ2UpIHJldHVybiAwOw0KICAgICAgdmFyIHJhbmdlMiA9IHJhbmdlLmR1cGxpY2F0ZSgpOw0KICAgICAgdHJ5IHtyYW5nZTIubW92ZVRvRWxlbWVudFRleHQobm9kZSk7fSBjYXRjaChlKXtyZXR1cm4gMDt9DQogICAgICByYW5nZS5zZXRFbmRQb2ludCgiU3RhcnRUb1N0YXJ0IiwgcmFuZ2UyKTsNCiAgICAgIHJldHVybiByYW5nZS50ZXh0Lmxlbmd0aDsNCiAgICB9Ow0KDQogICAgLy8gR2V0IHRoZSB0b3AtbGV2ZWwgbm9kZSB0aGF0IG9uZSBlbmQgb2YgdGhlIGN1cnNvciBpcyBpbnNpZGUgb3INCiAgICAvLyBhZnRlci4gTm90ZSB0aGF0IHRoaXMgcmV0dXJucyBmYWxzZSBmb3IgJ25vIGN1cnNvcicsIGFuZCBudWxsDQogICAgLy8gZm9yICdzdGFydCBvZiBkb2N1bWVudCcuDQogICAgc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUgPSBmdW5jdGlvbihjb250YWluZXIsIHN0YXJ0KSB7DQogICAgICB2YXIgcmFuZ2UgPSBzZWxSYW5nZSgpOw0KICAgICAgaWYgKCFyYW5nZSkgcmV0dXJuIGZhbHNlOw0KICAgICAgdmFyIHJhbmdlMiA9IHJhbmdlLmR1cGxpY2F0ZSgpOw0KICAgICAgcmFuZ2UuY29sbGFwc2Uoc3RhcnQpOw0KICAgICAgdmFyIGFyb3VuZCA9IHJhbmdlLnBhcmVudEVsZW1lbnQoKTsNCiAgICAgIGlmIChhcm91bmQgJiYgaXNBbmNlc3Rvcihjb250YWluZXIsIGFyb3VuZCkpIHsNCiAgICAgICAgLy8gT25seSB1c2UgdGhpcyBub2RlIGlmIHRoZSBzZWxlY3Rpb24gaXMgbm90IGF0IGl0cyBzdGFydC4NCiAgICAgICAgcmFuZ2UyLm1vdmVUb0VsZW1lbnRUZXh0KGFyb3VuZCk7DQogICAgICAgIGlmIChyYW5nZS5jb21wYXJlRW5kUG9pbnRzKCJTdGFydFRvU3RhcnQiLCByYW5nZTIpID09IDEpDQogICAgICAgICAgcmV0dXJuIHRvcExldmVsTm9kZUF0KGFyb3VuZCwgY29udGFpbmVyKTsNCiAgICAgIH0NCg0KICAgICAgLy8gTW92ZSB0aGUgc3RhcnQgb2YgYSByYW5nZSB0byB0aGUgc3RhcnQgb2YgYSBub2RlLA0KICAgICAgLy8gY29tcGVuc2F0aW5nIGZvciB0aGUgZmFjdCB0aGF0IHlvdSBjYW4ndCBjYWxsDQogICAgICAvLyBtb3ZlVG9FbGVtZW50VGV4dCB3aXRoIHRleHQgbm9kZXMuDQogICAgICBmdW5jdGlvbiBtb3ZlVG9Ob2RlU3RhcnQocmFuZ2UsIG5vZGUpIHsNCiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMykgew0KICAgICAgICAgIHZhciBjb3VudCA9IDAsIGN1ciA9IG5vZGUucHJldmlvdXNTaWJsaW5nOw0KICAgICAgICAgIHdoaWxlIChjdXIgJiYgY3VyLm5vZGVUeXBlID09IDMpIHsNCiAgICAgICAgICAgIGNvdW50ICs9IGN1ci5ub2RlVmFsdWUubGVuZ3RoOw0KICAgICAgICAgICAgY3VyID0gY3VyLnByZXZpb3VzU2libGluZzsNCiAgICAgICAgICB9DQogICAgICAgICAgaWYgKGN1cikgew0KICAgICAgICAgICAgdHJ5e3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KGN1cik7fQ0KICAgICAgICAgICAgY2F0Y2goZSl7cmV0dXJuIGZhbHNlO30NCiAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKTsNCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZSByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChub2RlLnBhcmVudE5vZGUpOw0KICAgICAgICAgIGlmIChjb3VudCkgcmFuZ2UubW92ZSgiY2hhcmFjdGVyIiwgY291bnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHRyeXtyYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChub2RlKTt9DQogICAgICAgICAgY2F0Y2goZSl7cmV0dXJuIGZhbHNlO30NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgIH0NCg0KICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoIHRocm91Z2ggdGhlIGNvbnRhaW5lciBvYmplY3QsIGNvbXBhcmluZw0KICAgICAgLy8gdGhlIHN0YXJ0IG9mIGVhY2ggbm9kZSB0byB0aGUgc2VsZWN0aW9uDQogICAgICB2YXIgc3RhcnQgPSAwLCBlbmQgPSBjb250YWluZXIuY2hpbGROb2Rlcy5sZW5ndGggLSAxOw0KICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7DQogICAgICAgIHZhciBtaWRkbGUgPSBNYXRoLmNlaWwoKGVuZCArIHN0YXJ0KSAvIDIpLCBub2RlID0gY29udGFpbmVyLmNoaWxkTm9kZXNbbWlkZGxlXTsNCiAgICAgICAgaWYgKCFub2RlKSByZXR1cm4gZmFsc2U7IC8vIERvbid0IGFzay4gSUU2IG1hbmFnZXMgdGhpcyBzb21ldGltZXMuDQogICAgICAgIGlmICghbW92ZVRvTm9kZVN0YXJ0KHJhbmdlMiwgbm9kZSkpIHJldHVybiBmYWxzZTsNCiAgICAgICAgaWYgKHJhbmdlLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9TdGFydCIsIHJhbmdlMikgPT0gMSkNCiAgICAgICAgICBzdGFydCA9IG1pZGRsZTsNCiAgICAgICAgZWxzZQ0KICAgICAgICAgIGVuZCA9IG1pZGRsZSAtIDE7DQogICAgICB9DQogICAgICANCiAgICAgIGlmIChzdGFydCA9PSAwKSB7DQogICAgICAgIHZhciB0ZXN0MSA9IHNlbFJhbmdlKCksIHRlc3QyID0gdGVzdDEuZHVwbGljYXRlKCk7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgdGVzdDIubW92ZVRvRWxlbWVudFRleHQoY29udGFpbmVyKTsNCiAgICAgICAgfSBjYXRjaChleGNlcHRpb24pIHsNCiAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGVzdDEuY29tcGFyZUVuZFBvaW50cygiU3RhcnRUb1N0YXJ0IiwgdGVzdDIpID09IDApDQogICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgICB9DQogICAgICByZXR1cm4gY29udGFpbmVyLmNoaWxkTm9kZXNbc3RhcnRdIHx8IG51bGw7DQogICAgfTsNCg0KICAgIC8vIFBsYWNlIHRoZSBjdXJzb3IgYWZ0ZXIgdGhpcy5zdGFydC4gVGhpcyBpcyBvbmx5IHVzZWZ1bCB3aGVuDQogICAgLy8gbWFudWFsbHkgbW92aW5nIHRoZSBjdXJzb3IgaW5zdGVhZCBvZiByZXN0b3JpbmcgaXQgdG8gaXRzIG9sZA0KICAgIC8vIHBvc2l0aW9uLg0KICAgIHNlbGVjdC5mb2N1c0FmdGVyTm9kZSA9IGZ1bmN0aW9uKG5vZGUsIGNvbnRhaW5lcikgew0KICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKTsNCiAgICAgIHJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KG5vZGUgfHwgY29udGFpbmVyKTsNCiAgICAgIHJhbmdlLmNvbGxhcHNlKCFub2RlKTsNCiAgICAgIHJhbmdlLnNlbGVjdCgpOw0KICAgIH07DQoNCiAgICBzZWxlY3Quc29tZXRoaW5nU2VsZWN0ZWQgPSBmdW5jdGlvbigpIHsNCiAgICAgIHZhciByYW5nZSA9IHNlbFJhbmdlKCk7DQogICAgICByZXR1cm4gcmFuZ2UgJiYgKHJhbmdlLnRleHQgIT0gIiIpOw0KICAgIH07DQoNCiAgICBmdW5jdGlvbiBpbnNlcnRBdEN1cnNvcihodG1sKSB7DQogICAgICB2YXIgcmFuZ2UgPSBzZWxSYW5nZSgpOw0KICAgICAgaWYgKHJhbmdlKSB7DQogICAgICAgIHJhbmdlLnBhc3RlSFRNTChodG1sKTsNCiAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpOw0KICAgICAgICByYW5nZS5zZWxlY3QoKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBVc2VkIHRvIG5vcm1hbGl6ZSB0aGUgZWZmZWN0IG9mIHRoZSBlbnRlciBrZXksIHNpbmNlIGJyb3dzZXJzDQogICAgLy8gZG8gd2lkZWx5IGRpZmZlcmVudCB0aGluZ3Mgd2hlbiBwcmVzc2luZyBlbnRlciBpbiBkZXNpZ25Nb2RlLg0KICAgIHNlbGVjdC5pbnNlcnROZXdsaW5lQXRDdXJzb3IgPSBmdW5jdGlvbigpIHsNCiAgICAgIGluc2VydEF0Q3Vyc29yKCI8YnI+Iik7DQogICAgfTsNCg0KICAgIHNlbGVjdC5pbnNlcnRUYWJBdEN1cnNvciA9IGZ1bmN0aW9uKCkgew0KICAgICAgaW5zZXJ0QXRDdXJzb3IoZm91clNwYWNlcyk7DQogICAgfTsNCg0KICAgIC8vIEdldCB0aGUgQlIgbm9kZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUgb24gd2hpY2ggdGhlIGN1cnNvcg0KICAgIC8vIGN1cnJlbnRseSBpcywgYW5kIHRoZSBvZmZzZXQgaW50byB0aGUgbGluZS4gUmV0dXJucyBudWxsIGFzDQogICAgLy8gbm9kZSBpZiBjdXJzb3IgaXMgb24gZmlyc3QgbGluZS4NCiAgICBzZWxlY3QuY3Vyc29yUG9zID0gZnVuY3Rpb24oY29udGFpbmVyLCBzdGFydCkgew0KICAgICAgdmFyIHJhbmdlID0gc2VsUmFuZ2UoKTsNCiAgICAgIGlmICghcmFuZ2UpIHJldHVybiBudWxsOw0KDQogICAgICB2YXIgdG9wTm9kZSA9IHNlbGVjdC5zZWxlY3Rpb25Ub3BOb2RlKGNvbnRhaW5lciwgc3RhcnQpOw0KICAgICAgd2hpbGUgKHRvcE5vZGUgJiYgIWlzQlIodG9wTm9kZSkpDQogICAgICAgIHRvcE5vZGUgPSB0b3BOb2RlLnByZXZpb3VzU2libGluZzsNCg0KICAgICAgdmFyIHJhbmdlMiA9IHJhbmdlLmR1cGxpY2F0ZSgpOw0KICAgICAgcmFuZ2UuY29sbGFwc2Uoc3RhcnQpOw0KICAgICAgaWYgKHRvcE5vZGUpIHsNCiAgICAgICAgcmFuZ2UyLm1vdmVUb0VsZW1lbnRUZXh0KHRvcE5vZGUpOw0KICAgICAgICByYW5nZTIuY29sbGFwc2UoZmFsc2UpOw0KICAgICAgfQ0KICAgICAgZWxzZSB7DQogICAgICAgIC8vIFdoZW4gbm90aGluZyBpcyBzZWxlY3RlZCwgd2UgY2FuIGdldCBhbGwga2luZHMgb2YgZnVua3kgZXJyb3JzIGhlcmUuDQogICAgICAgIHRyeSB7IHJhbmdlMi5tb3ZlVG9FbGVtZW50VGV4dChjb250YWluZXIpOyB9DQogICAgICAgIGNhdGNoIChlKSB7IHJldHVybiBudWxsOyB9DQogICAgICAgIHJhbmdlMi5jb2xsYXBzZSh0cnVlKTsNCiAgICAgIH0NCiAgICAgIHJhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvU3RhcnQiLCByYW5nZTIpOw0KDQogICAgICByZXR1cm4ge25vZGU6IHRvcE5vZGUsIG9mZnNldDogcmFuZ2UudGV4dC5sZW5ndGh9Ow0KICAgIH07DQoNCiAgICBzZWxlY3Quc2V0Q3Vyc29yUG9zID0gZnVuY3Rpb24oY29udGFpbmVyLCBmcm9tLCB0bykgew0KICAgICAgZnVuY3Rpb24gcmFuZ2VBdChwb3MpIHsNCiAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKTsNCiAgICAgICAgaWYgKCFwb3Mubm9kZSkgew0KICAgICAgICAgIHJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KGNvbnRhaW5lcik7DQogICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgcmFuZ2UubW92ZVRvRWxlbWVudFRleHQocG9zLm5vZGUpOw0KICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKTsNCiAgICAgICAgfQ0KICAgICAgICByYW5nZS5tb3ZlKCJjaGFyYWN0ZXIiLCBwb3Mub2Zmc2V0KTsNCiAgICAgICAgcmV0dXJuIHJhbmdlOw0KICAgICAgfQ0KDQogICAgICB2YXIgcmFuZ2UgPSByYW5nZUF0KGZyb20pOw0KICAgICAgaWYgKHRvICYmIHRvICE9IGZyb20pDQogICAgICAgIHJhbmdlLnNldEVuZFBvaW50KCJFbmRUb0VuZCIsIHJhbmdlQXQodG8pKTsNCiAgICAgIHJhbmdlLnNlbGVjdCgpOw0KICAgIH0NCg0KICAgIC8vIFNvbWUgaGFja3MgZm9yIHN0b3JpbmcgYW5kIHJlLXN0b3JpbmcgdGhlIHNlbGVjdGlvbiB3aGVuIHRoZSBlZGl0b3IgbG9zZXMgYW5kIHJlZ2FpbnMgZm9jdXMuDQogICAgc2VsZWN0LmdldEJvb2ttYXJrID0gZnVuY3Rpb24gKGNvbnRhaW5lcikgew0KICAgICAgdmFyIGZyb20gPSBzZWxlY3QuY3Vyc29yUG9zKGNvbnRhaW5lciwgdHJ1ZSksIHRvID0gc2VsZWN0LmN1cnNvclBvcyhjb250YWluZXIsIGZhbHNlKTsNCiAgICAgIGlmIChmcm9tICYmIHRvKSByZXR1cm4ge2Zyb206IGZyb20sIHRvOiB0b307DQogICAgfTsNCg0KICAgIC8vIFJlc3RvcmUgYSBzdG9yZWQgc2VsZWN0aW9uLg0KICAgIHNlbGVjdC5zZXRCb29rbWFyayA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgbWFyaykgew0KICAgICAgaWYgKCFtYXJrKSByZXR1cm47DQogICAgICBzZWxlY3Quc2V0Q3Vyc29yUG9zKGNvbnRhaW5lciwgbWFyay5mcm9tLCBtYXJrLnRvKTsNCiAgICB9Ow0KICB9DQogIC8vIFczQyBtb2RlbA0KICBlbHNlIHsNCiAgICAvLyBGaW5kIHRoZSBub2RlIHJpZ2h0IGF0IHRoZSBjdXJzb3IsIG5vdCBvbmUgb2YgaXRzDQogICAgLy8gYW5jZXN0b3JzIHdpdGggYSBzdWl0YWJsZSBvZmZzZXQuIFRoaXMgZ29lcyBkb3duIHRoZSBET00gdHJlZQ0KICAgIC8vIHVudGlsIGEgJ2xlYWYnIGlzIHJlYWNoZWQgKG9yIGlzIGl0ICp1cCogdGhlIERPTSB0cmVlPykuDQogICAgZnVuY3Rpb24gaW5uZXJOb2RlKG5vZGUsIG9mZnNldCkgew0KICAgICAgd2hpbGUgKG5vZGUubm9kZVR5cGUgIT0gMyAmJiAhaXNCUihub2RlKSkgew0KICAgICAgICB2YXIgbmV3Tm9kZSA9IG5vZGUuY2hpbGROb2Rlc1tvZmZzZXRdIHx8IG5vZGUubmV4dFNpYmxpbmc7DQogICAgICAgIG9mZnNldCA9IDA7DQogICAgICAgIHdoaWxlICghbmV3Tm9kZSAmJiBub2RlLnBhcmVudE5vZGUpIHsNCiAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlOw0KICAgICAgICAgIG5ld05vZGUgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgICAgICB9DQogICAgICAgIG5vZGUgPSBuZXdOb2RlOw0KICAgICAgICBpZiAoIW5ld05vZGUpIGJyZWFrOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIHtub2RlOiBub2RlLCBvZmZzZXQ6IG9mZnNldH07DQogICAgfQ0KDQogICAgLy8gU3RvcmUgc3RhcnQgYW5kIGVuZCBub2RlcywgYW5kIG9mZnNldHMgd2l0aGluIHRoZXNlLCBhbmQgcmVmZXINCiAgICAvLyBiYWNrIHRvIHRoZSBzZWxlY3Rpb24gb2JqZWN0IGZyb20gdGhvc2Ugbm9kZXMsIHNvIHRoYXQgdGhpcw0KICAgIC8vIG9iamVjdCBjYW4gYmUgdXBkYXRlZCB3aGVuIHRoZSBub2RlcyBhcmUgcmVwbGFjZWQgYmVmb3JlIHRoZQ0KICAgIC8vIHNlbGVjdGlvbiBpcyByZXN0b3JlZC4NCiAgICBzZWxlY3QubWFya1NlbGVjdGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7DQogICAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PSAwKQ0KICAgICAgICByZXR1cm4gKGN1cnJlbnRTZWxlY3Rpb24gPSBudWxsKTsNCiAgICAgIHZhciByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApOw0KDQogICAgICBjdXJyZW50U2VsZWN0aW9uID0gew0KICAgICAgICBzdGFydDogaW5uZXJOb2RlKHJhbmdlLnN0YXJ0Q29udGFpbmVyLCByYW5nZS5zdGFydE9mZnNldCksDQogICAgICAgIGVuZDogaW5uZXJOb2RlKHJhbmdlLmVuZENvbnRhaW5lciwgcmFuZ2UuZW5kT2Zmc2V0KSwNCiAgICAgICAgY2hhbmdlZDogZmFsc2UNCiAgICAgIH07DQogICAgfTsNCg0KICAgIHNlbGVjdC5zZWxlY3RNYXJrZWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICB2YXIgY3MgPSBjdXJyZW50U2VsZWN0aW9uOw0KICAgICAgLy8gb24gd2Via2l0LWJhc2VkIGJyb3dzZXJzLCBpdCBpcyBhcHBhcmVudGx5IHBvc3NpYmxlIHRoYXQgdGhlDQogICAgICAvLyBzZWxlY3Rpb24gZ2V0cyByZXNldCBldmVuIHdoZW4gYSBub2RlIHRoYXQgaXMgbm90IG9uZSBvZiB0aGUNCiAgICAgIC8vIGVuZHBvaW50cyBnZXQgbWVzc2VkIHdpdGguIHRoZSBtb3N0IGNvbW1vbiBzaXR1YXRpb24gd2hlcmUNCiAgICAgIC8vIHRoaXMgb2NjdXJzIGlzIHdoZW4gYSBzZWxlY3Rpb24gaXMgZGVsZXRlZCBvciBvdmVyd2l0dGVuLiB3ZQ0KICAgICAgLy8gY2hlY2sgZm9yIHRoYXQgaGVyZS4NCiAgICAgIGZ1bmN0aW9uIGZvY3VzSXNzdWUoKSB7DQogICAgICAgIGlmIChjcy5zdGFydC5ub2RlID09IGNzLmVuZC5ub2RlICYmIGNzLnN0YXJ0Lm9mZnNldCA9PSBjcy5lbmQub2Zmc2V0KSB7DQogICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCiAgICAgICAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PSAwKSByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICB2YXIgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSwgcG9pbnQgPSBpbm5lck5vZGUocmFuZ2Uuc3RhcnRDb250YWluZXIsIHJhbmdlLnN0YXJ0T2Zmc2V0KTsNCiAgICAgICAgICByZXR1cm4gY3Muc3RhcnQubm9kZSAhPSBwb2ludC5ub2RlIHx8IGNzLnN0YXJ0Lm9mZnNldCAhPSBwb2ludC5vZmZzZXQ7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmICghY3MgfHwgIShjcy5jaGFuZ2VkIHx8ICh3ZWJraXQgJiYgZm9jdXNJc3N1ZSgpKSkpIHJldHVybjsNCiAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7DQoNCiAgICAgIGZ1bmN0aW9uIHNldFBvaW50KHBvaW50LCB3aGljaCkgew0KICAgICAgICBpZiAocG9pbnQubm9kZSkgew0KICAgICAgICAgIC8vIFNvbWUgbWFnaWMgdG8gZ2VuZXJhbGl6ZSB0aGUgc2V0dGluZyBvZiB0aGUgc3RhcnQgYW5kIGVuZA0KICAgICAgICAgIC8vIG9mIGEgcmFuZ2UuDQogICAgICAgICAgaWYgKHBvaW50Lm9mZnNldCA9PSAwKQ0KICAgICAgICAgICAgcmFuZ2VbInNldCIgKyB3aGljaCArICJCZWZvcmUiXShwb2ludC5ub2RlKTsNCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICByYW5nZVsic2V0IiArIHdoaWNoXShwb2ludC5ub2RlLCBwb2ludC5vZmZzZXQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgIHJhbmdlLnNldFN0YXJ0QWZ0ZXIoZG9jdW1lbnQuYm9keS5sYXN0Q2hpbGQgfHwgZG9jdW1lbnQuYm9keSk7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgc2V0UG9pbnQoY3MuZW5kLCAiRW5kIik7DQogICAgICBzZXRQb2ludChjcy5zdGFydCwgIlN0YXJ0Iik7DQogICAgICBzZWxlY3RSYW5nZShyYW5nZSk7DQogICAgfTsNCg0KICAgIC8vIEhlbHBlciBmb3Igc2VsZWN0aW5nIGEgcmFuZ2Ugb2JqZWN0Lg0KICAgIGZ1bmN0aW9uIHNlbGVjdFJhbmdlKHJhbmdlKSB7DQogICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOw0KICAgICAgaWYgKCFzZWxlY3Rpb24pIHJldHVybjsNCiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsNCiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7DQogICAgfQ0KICAgIGZ1bmN0aW9uIHNlbGVjdGlvblJhbmdlKCkgew0KICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09IDApDQogICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgIGVsc2UNCiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApOw0KICAgIH0NCg0KICAgIC8vIEZpbmRpbmcgdGhlIHRvcC1sZXZlbCBub2RlIGF0IHRoZSBjdXJzb3IgaW4gdGhlIFczQyBpcywgYXMgeW91DQogICAgLy8gY2FuIHNlZSwgcXVpdGUgYW4gaW52b2x2ZWQgcHJvY2Vzcy4NCiAgICBzZWxlY3Quc2VsZWN0aW9uVG9wTm9kZSA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgc3RhcnQpIHsNCiAgICAgIHZhciByYW5nZSA9IHNlbGVjdGlvblJhbmdlKCk7DQogICAgICBpZiAoIXJhbmdlKSByZXR1cm4gZmFsc2U7DQoNCiAgICAgIHZhciBub2RlID0gc3RhcnQgPyByYW5nZS5zdGFydENvbnRhaW5lciA6IHJhbmdlLmVuZENvbnRhaW5lcjsNCiAgICAgIHZhciBvZmZzZXQgPSBzdGFydCA/IHJhbmdlLnN0YXJ0T2Zmc2V0IDogcmFuZ2UuZW5kT2Zmc2V0Ow0KICAgICAgLy8gV29yayBhcm91bmQgKHlldCBhbm90aGVyKSBidWcgaW4gT3BlcmEncyBzZWxlY3Rpb24gbW9kZWwuDQogICAgICBpZiAod2luZG93Lm9wZXJhICYmICFzdGFydCAmJiByYW5nZS5lbmRDb250YWluZXIgPT0gY29udGFpbmVyICYmIHJhbmdlLmVuZE9mZnNldCA9PSByYW5nZS5zdGFydE9mZnNldCArIDEgJiYNCiAgICAgICAgICBjb250YWluZXIuY2hpbGROb2Rlc1tyYW5nZS5zdGFydE9mZnNldF0gJiYgaXNCUihjb250YWluZXIuY2hpbGROb2Rlc1tyYW5nZS5zdGFydE9mZnNldF0pKQ0KICAgICAgICBvZmZzZXQtLTsNCg0KICAgICAgLy8gRm9yIHRleHQgbm9kZXMsIHdlIGxvb2sgYXQgdGhlIG5vZGUgaXRzZWxmIGlmIHRoZSBjdXJzb3IgaXMNCiAgICAgIC8vIGluc2lkZSwgb3IgYXQgdGhlIG5vZGUgYmVmb3JlIGl0IGlmIHRoZSBjdXJzb3IgaXMgYXQgdGhlDQogICAgICAvLyBzdGFydC4NCiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDMpew0KICAgICAgICBpZiAob2Zmc2V0ID4gMCkNCiAgICAgICAgICByZXR1cm4gdG9wTGV2ZWxOb2RlQXQobm9kZSwgY29udGFpbmVyKTsNCiAgICAgICAgZWxzZQ0KICAgICAgICAgIHJldHVybiB0b3BMZXZlbE5vZGVCZWZvcmUobm9kZSwgY29udGFpbmVyKTsNCiAgICAgIH0NCiAgICAgIC8vIE9jY2FzaW9uYWxseSwgYnJvd3NlcnMgd2lsbCByZXR1cm4gdGhlIEhUTUwgbm9kZSBhcw0KICAgICAgLy8gc2VsZWN0aW9uLiBJZiB0aGUgb2Zmc2V0IGlzIDAsIHdlIHRha2UgdGhlIHN0YXJ0IG9mIHRoZSBmcmFtZQ0KICAgICAgLy8gKCdhZnRlciBudWxsJyksIG90aGVyd2lzZSwgd2UgdGFrZSB0aGUgbGFzdCBub2RlLg0KICAgICAgZWxzZSBpZiAobm9kZS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09ICJIVE1MIikgew0KICAgICAgICByZXR1cm4gKG9mZnNldCA9PSAxID8gbnVsbCA6IGNvbnRhaW5lci5sYXN0Q2hpbGQpOw0KICAgICAgfQ0KICAgICAgLy8gSWYgdGhlIGdpdmVuIG5vZGUgaXMgb3VyICdjb250YWluZXInLCB3ZSBqdXN0IGxvb2sgdXAgdGhlDQogICAgICAvLyBjb3JyZWN0IG5vZGUgYnkgdXNpbmcgdGhlIG9mZnNldC4NCiAgICAgIGVsc2UgaWYgKG5vZGUgPT0gY29udGFpbmVyKSB7DQogICAgICAgIHJldHVybiAob2Zmc2V0ID09IDApID8gbnVsbCA6IG5vZGUuY2hpbGROb2Rlc1tvZmZzZXQgLSAxXTsNCiAgICAgIH0NCiAgICAgIC8vIEluIGFueSBvdGhlciBjYXNlLCB3ZSBoYXZlIGEgcmVndWxhciBub2RlLiBJZiB0aGUgY3Vyc29yIGlzDQogICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBub2RlLCB3ZSB1c2UgdGhlIG5vZGUgaXRzZWxmLCBpZiBpdCBpcyBhdA0KICAgICAgLy8gdGhlIHN0YXJ0LCB3ZSB1c2UgdGhlIG5vZGUgYmVmb3JlIGl0LCBhbmQgaW4gYW55IG90aGVyDQogICAgICAvLyBjYXNlLCB3ZSBsb29rIHVwIHRoZSBjaGlsZCBiZWZvcmUgdGhlIGN1cnNvciBhbmQgdXNlIHRoYXQuDQogICAgICBlbHNlIHsNCiAgICAgICAgaWYgKG9mZnNldCA9PSBub2RlLmNoaWxkTm9kZXMubGVuZ3RoKQ0KICAgICAgICAgIHJldHVybiB0b3BMZXZlbE5vZGVBdChub2RlLCBjb250YWluZXIpOw0KICAgICAgICBlbHNlIGlmIChvZmZzZXQgPT0gMCkNCiAgICAgICAgICByZXR1cm4gdG9wTGV2ZWxOb2RlQmVmb3JlKG5vZGUsIGNvbnRhaW5lcik7DQogICAgICAgIGVsc2UNCiAgICAgICAgICByZXR1cm4gdG9wTGV2ZWxOb2RlQXQobm9kZS5jaGlsZE5vZGVzW29mZnNldCAtIDFdLCBjb250YWluZXIpOw0KICAgICAgfQ0KICAgIH07DQoNCiAgICBzZWxlY3QuZm9jdXNBZnRlck5vZGUgPSBmdW5jdGlvbihub2RlLCBjb250YWluZXIpIHsNCiAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7DQogICAgICByYW5nZS5zZXRTdGFydEJlZm9yZShjb250YWluZXIuZmlyc3RDaGlsZCB8fCBjb250YWluZXIpOw0KICAgICAgLy8gSW4gT3BlcmEsIHNldHRpbmcgdGhlIGVuZCBvZiBhIHJhbmdlIGF0IHRoZSBlbmQgb2YgYSBsaW5lDQogICAgICAvLyAoYmVmb3JlIGEgQlIpIHdpbGwgY2F1c2UgdGhlIGN1cnNvciB0byBhcHBlYXIgb24gdGhlIG5leHQNCiAgICAgIC8vIGxpbmUsIHNvIHdlIHNldCB0aGUgZW5kIGluc2lkZSBvZiB0aGUgc3RhcnQgbm9kZSB3aGVuDQogICAgICAvLyBwb3NzaWJsZS4NCiAgICAgIGlmIChub2RlICYmICFub2RlLmZpcnN0Q2hpbGQpDQogICAgICAgIHJhbmdlLnNldEVuZEFmdGVyKG5vZGUpOw0KICAgICAgZWxzZSBpZiAobm9kZSkNCiAgICAgICAgcmFuZ2Uuc2V0RW5kKG5vZGUsIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpOw0KICAgICAgZWxzZQ0KICAgICAgICByYW5nZS5zZXRFbmRCZWZvcmUoY29udGFpbmVyLmZpcnN0Q2hpbGQgfHwgY29udGFpbmVyKTsNCiAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKTsNCiAgICAgIHNlbGVjdFJhbmdlKHJhbmdlKTsNCiAgICB9Ow0KDQogICAgc2VsZWN0LnNvbWV0aGluZ1NlbGVjdGVkID0gZnVuY3Rpb24oKSB7DQogICAgICB2YXIgcmFuZ2UgPSBzZWxlY3Rpb25SYW5nZSgpOw0KICAgICAgcmV0dXJuIHJhbmdlICYmICFyYW5nZS5jb2xsYXBzZWQ7DQogICAgfTsNCg0KICAgIHNlbGVjdC5vZmZzZXRJbk5vZGUgPSBmdW5jdGlvbihub2RlKSB7DQogICAgICB2YXIgcmFuZ2UgPSBzZWxlY3Rpb25SYW5nZSgpOw0KICAgICAgaWYgKCFyYW5nZSkgcmV0dXJuIDA7DQogICAgICByYW5nZSA9IHJhbmdlLmNsb25lUmFuZ2UoKTsNCiAgICAgIHJhbmdlLnNldFN0YXJ0QmVmb3JlKG5vZGUpOw0KICAgICAgcmV0dXJuIHJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoOw0KICAgIH07DQoNCiAgICBzZWxlY3QuaW5zZXJ0Tm9kZUF0Q3Vyc29yID0gZnVuY3Rpb24obm9kZSkgew0KICAgICAgdmFyIHJhbmdlID0gc2VsZWN0aW9uUmFuZ2UoKTsNCiAgICAgIGlmICghcmFuZ2UpIHJldHVybjsNCg0KICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTsNCiAgICAgIHJhbmdlLmluc2VydE5vZGUobm9kZSk7DQogICAgICB3ZWJraXRMYXN0TGluZUhhY2soZG9jdW1lbnQuYm9keSk7DQoNCiAgICAgIC8vIHdvcmsgYXJvdW5kIHdlaXJkbmVzcyB3aGVyZSBPcGVyYSB3aWxsIG1hZ2ljYWxseSBpbnNlcnQgYSBuZXcNCiAgICAgIC8vIEJSIG5vZGUgd2hlbiBhIEJSIG5vZGUgaW5zaWRlIGEgc3BhbiBpcyBtb3ZlZCBhcm91bmQuIG1ha2VzDQogICAgICAvLyBzdXJlIHRoZSBCUiBlbmRzIHVwIG91dHNpZGUgb2Ygc3BhbnMuDQogICAgICBpZiAod2luZG93Lm9wZXJhICYmIGlzQlIobm9kZSkgJiYgaXNTcGFuKG5vZGUucGFyZW50Tm9kZSkpIHsNCiAgICAgICAgdmFyIG5leHQgPSBub2RlLm5leHRTaWJsaW5nLCBwID0gbm9kZS5wYXJlbnROb2RlLCBvdXRlciA9IHAucGFyZW50Tm9kZTsNCiAgICAgICAgb3V0ZXIuaW5zZXJ0QmVmb3JlKG5vZGUsIHAubmV4dFNpYmxpbmcpOw0KICAgICAgICB2YXIgdGV4dEFmdGVyID0gIiI7DQogICAgICAgIGZvciAoOyBuZXh0ICYmIG5leHQubm9kZVR5cGUgPT0gMzsgbmV4dCA9IG5leHQubmV4dFNpYmxpbmcpIHsNCiAgICAgICAgICB0ZXh0QWZ0ZXIgKz0gbmV4dC5ub2RlVmFsdWU7DQogICAgICAgICAgcmVtb3ZlRWxlbWVudChuZXh0KTsNCiAgICAgICAgfQ0KICAgICAgICBvdXRlci5pbnNlcnRCZWZvcmUobWFrZVBhcnRTcGFuKHRleHRBZnRlciwgZG9jdW1lbnQpLCBub2RlLm5leHRTaWJsaW5nKTsNCiAgICAgIH0NCiAgICAgIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsNCiAgICAgIHJhbmdlLnNlbGVjdE5vZGUobm9kZSk7DQogICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSk7DQogICAgICBzZWxlY3RSYW5nZShyYW5nZSk7DQogICAgfQ0KDQogICAgc2VsZWN0Lmluc2VydE5ld2xpbmVBdEN1cnNvciA9IGZ1bmN0aW9uKCkgew0KICAgICAgc2VsZWN0Lmluc2VydE5vZGVBdEN1cnNvcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJCUiIpKTsNCiAgICB9Ow0KDQogICAgc2VsZWN0Lmluc2VydFRhYkF0Q3Vyc29yID0gZnVuY3Rpb24oKSB7DQogICAgICBzZWxlY3QuaW5zZXJ0Tm9kZUF0Q3Vyc29yKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGZvdXJTcGFjZXMpKTsNCiAgICB9Ow0KDQogICAgc2VsZWN0LmN1cnNvclBvcyA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgc3RhcnQpIHsNCiAgICAgIHZhciByYW5nZSA9IHNlbGVjdGlvblJhbmdlKCk7DQogICAgICBpZiAoIXJhbmdlKSByZXR1cm47DQoNCiAgICAgIHZhciB0b3BOb2RlID0gc2VsZWN0LnNlbGVjdGlvblRvcE5vZGUoY29udGFpbmVyLCBzdGFydCk7DQogICAgICB3aGlsZSAodG9wTm9kZSAmJiAhaXNCUih0b3BOb2RlKSkNCiAgICAgICAgdG9wTm9kZSA9IHRvcE5vZGUucHJldmlvdXNTaWJsaW5nOw0KDQogICAgICByYW5nZSA9IHJhbmdlLmNsb25lUmFuZ2UoKTsNCiAgICAgIHJhbmdlLmNvbGxhcHNlKHN0YXJ0KTsNCiAgICAgIGlmICh0b3BOb2RlKQ0KICAgICAgICByYW5nZS5zZXRTdGFydEFmdGVyKHRvcE5vZGUpOw0KICAgICAgZWxzZQ0KICAgICAgICByYW5nZS5zZXRTdGFydEJlZm9yZShjb250YWluZXIpOw0KDQogICAgICB2YXIgdGV4dCA9IHJhbmdlLnRvU3RyaW5nKCk7DQogICAgICByZXR1cm4ge25vZGU6IHRvcE5vZGUsIG9mZnNldDogdGV4dC5sZW5ndGh9Ow0KICAgIH07DQoNCiAgICBzZWxlY3Quc2V0Q3Vyc29yUG9zID0gZnVuY3Rpb24oY29udGFpbmVyLCBmcm9tLCB0bykgew0KICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsNCg0KICAgICAgZnVuY3Rpb24gc2V0UG9pbnQobm9kZSwgb2Zmc2V0LCBzaWRlKSB7DQogICAgICAgIGlmIChvZmZzZXQgPT0gMCAmJiBub2RlICYmICFub2RlLm5leHRTaWJsaW5nKSB7DQogICAgICAgICAgcmFuZ2VbInNldCIgKyBzaWRlICsgIkFmdGVyIl0obm9kZSk7DQogICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIW5vZGUpDQogICAgICAgICAgbm9kZSA9IGNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgICAgICBlbHNlDQogICAgICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7DQoNCiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47DQoNCiAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7DQogICAgICAgICAgcmFuZ2VbInNldCIgKyBzaWRlICsgIkJlZm9yZSJdKG5vZGUpOw0KICAgICAgICAgIHJldHVybiB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIGJhY2tsb2cgPSBbXQ0KICAgICAgICBmdW5jdGlvbiBkZWNvbXBvc2Uobm9kZSkgew0KICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDMpDQogICAgICAgICAgICBiYWNrbG9nLnB1c2gobm9kZSk7DQogICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgZm9yRWFjaChub2RlLmNoaWxkTm9kZXMsIGRlY29tcG9zZSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgICB3aGlsZSAobm9kZSAmJiAhYmFja2xvZy5sZW5ndGgpIHsNCiAgICAgICAgICAgIGRlY29tcG9zZShub2RlKTsNCiAgICAgICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOw0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgY3VyID0gYmFja2xvZy5zaGlmdCgpOw0KICAgICAgICAgIGlmICghY3VyKSByZXR1cm4gZmFsc2U7DQoNCiAgICAgICAgICB2YXIgbGVuZ3RoID0gY3VyLm5vZGVWYWx1ZS5sZW5ndGg7DQogICAgICAgICAgaWYgKGxlbmd0aCA+PSBvZmZzZXQpIHsNCiAgICAgICAgICAgIHJhbmdlWyJzZXQiICsgc2lkZV0oY3VyLCBvZmZzZXQpOw0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgfQ0KICAgICAgICAgIG9mZnNldCAtPSBsZW5ndGg7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgdG8gPSB0byB8fCBmcm9tOw0KICAgICAgaWYgKHNldFBvaW50KHRvLm5vZGUsIHRvLm9mZnNldCwgIkVuZCIpICYmIHNldFBvaW50KGZyb20ubm9kZSwgZnJvbS5vZmZzZXQsICJTdGFydCIpKQ0KICAgICAgICBzZWxlY3RSYW5nZShyYW5nZSk7DQogICAgfTsNCiAgfQ0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/stringstream.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogU3RyaW5nIHN0cmVhbXMgYXJlIHRoZSB0aGluZ3MgZmVkIHRvIHBhcnNlcnMgKHdoaWNoIGNhbiBmZWVkIHRoZW0NCiAqIHRvIGEgdG9rZW5pemVyIGlmIHRoZXkgd2FudCkuIFRoZXkgcHJvdmlkZSBwZWVrIGFuZCBuZXh0IG1ldGhvZHMNCiAqIGZvciBsb29raW5nIGF0IHRoZSBjdXJyZW50IGNoYXJhY3RlciAobmV4dCAnY29uc3VtZXMnIHRoaXMNCiAqIGNoYXJhY3RlciwgcGVlayBkb2VzIG5vdCksIGFuZCBhIGdldCBtZXRob2QgZm9yIHJldHJpZXZpbmcgYWxsIHRoZQ0KICogdGV4dCB0aGF0IHdhcyBjb25zdW1lZCBzaW5jZSB0aGUgbGFzdCB0aW1lIGdldCB3YXMgY2FsbGVkLg0KICoNCiAqIEFuIGVhc3kgbWlzdGFrZSB0byBtYWtlIGlzIHRvIGxldCBhIFN0b3BJdGVyYXRpb24gZXhjZXB0aW9uIGZpbmlzaA0KICogdGhlIHRva2VuIHN0cmVhbSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgY2hhcmFjdGVycyBwZW5kaW5nIGluIHRoZQ0KICogc3RyaW5nIHN0cmVhbSAoaGl0dGluZyB0aGUgZW5kIG9mIHRoZSBidWZmZXIgd2hpbGUgcGFyc2luZyBhDQogKiB0b2tlbikuIFRvIG1ha2UgaXQgZWFzaWVyIHRvIGRldGVjdCBzdWNoIGVycm9ycywgdGhlIHN0cmluZ3N0cmVhbXMNCiAqIHRocm93IGFuIGV4Y2VwdGlvbiB3aGVuIHRoaXMgaGFwcGVucy4NCiAqLw0KDQovLyBNYWtlIGEgc3RyaW5nc3RyZWFtIHN0cmVhbSBvdXQgb2YgYW4gaXRlcmF0b3IgdGhhdCByZXR1cm5zIHN0cmluZ3MuDQovLyBUaGlzIGlzIGFwcGxpZWQgdG8gdGhlIHJlc3VsdCBvZiB0cmF2ZXJzZURPTSAoc2VlIGNvZGVtaXJyb3IuanMpLA0KLy8gYW5kIHRoZSByZXN1bHRpbmcgc3RyZWFtIGlzIGZlZCB0byB0aGUgcGFyc2VyLg0KdmFyIHN0cmluZ1N0cmVhbSA9IGZ1bmN0aW9uKHNvdXJjZSl7DQogIC8vIFN0cmluZyB0aGF0J3MgY3VycmVudGx5IGJlaW5nIGl0ZXJhdGVkIG92ZXIuDQogIHZhciBjdXJyZW50ID0gIiI7DQogIC8vIFBvc2l0aW9uIGluIHRoYXQgc3RyaW5nLg0KICB2YXIgcG9zID0gMDsNCiAgLy8gQWNjdW11bGF0b3IgZm9yIHN0cmluZ3MgdGhhdCBoYXZlIGJlZW4gaXRlcmF0ZWQgb3ZlciBidXQgbm90DQogIC8vIGdldCgpLWVkIHlldC4NCiAgdmFyIGFjY3VtID0gIiI7DQogIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0ZXJzIHJlYWR5LCBvciB0aHJvdw0KICAvLyBTdG9wSXRlcmF0aW9uLg0KICBmdW5jdGlvbiBlbnN1cmVDaGFycygpIHsNCiAgICB3aGlsZSAocG9zID09IGN1cnJlbnQubGVuZ3RoKSB7DQogICAgICBhY2N1bSArPSBjdXJyZW50Ow0KICAgICAgY3VycmVudCA9ICIiOyAvLyBJbiBjYXNlIHNvdXJjZS5uZXh0KCkgdGhyb3dzDQogICAgICBwb3MgPSAwOw0KICAgICAgdHJ5IHtjdXJyZW50ID0gc291cmNlLm5leHQoKTt9DQogICAgICBjYXRjaCAoZSkgew0KICAgICAgICBpZiAoZSAhPSBTdG9wSXRlcmF0aW9uKSB0aHJvdyBlOw0KICAgICAgICBlbHNlIHJldHVybiBmYWxzZTsNCiAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIHRydWU7DQogIH0NCg0KICByZXR1cm4gew0KICAgIC8vIHBlZWs6IC0+IGNoYXJhY3Rlcg0KICAgIC8vIFJldHVybiB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmVhbS4NCiAgICBwZWVrOiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICghZW5zdXJlQ2hhcnMoKSkgcmV0dXJuIG51bGw7DQogICAgICByZXR1cm4gY3VycmVudC5jaGFyQXQocG9zKTsNCiAgICB9LA0KICAgIC8vIG5leHQ6IC0+IGNoYXJhY3Rlcg0KICAgIC8vIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIsIHRocm93IFN0b3BJdGVyYXRpb24gaWYgYXQgZW5kLCBjaGVjaw0KICAgIC8vIGZvciB1bnVzZWQgY29udGVudC4NCiAgICBuZXh0OiBmdW5jdGlvbigpIHsNCiAgICAgIGlmICghZW5zdXJlQ2hhcnMoKSkgew0KICAgICAgICBpZiAoYWNjdW0ubGVuZ3RoID4gMCkNCiAgICAgICAgICB0aHJvdyAiRW5kIG9mIHN0cmluZ3N0cmVhbSByZWFjaGVkIHdpdGhvdXQgZW1wdHlpbmcgYnVmZmVyICgnIiArIGFjY3VtICsgIicpLiI7DQogICAgICAgIGVsc2UNCiAgICAgICAgICB0aHJvdyBTdG9wSXRlcmF0aW9uOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGN1cnJlbnQuY2hhckF0KHBvcysrKTsNCiAgICB9LA0KICAgIC8vIGdldCgpOiAtPiBzdHJpbmcNCiAgICAvLyBSZXR1cm4gdGhlIGNoYXJhY3RlcnMgaXRlcmF0ZWQgb3ZlciBzaW5jZSB0aGUgbGFzdCBjYWxsIHRvDQogICAgLy8gLmdldCgpLg0KICAgIGdldDogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgdGVtcCA9IGFjY3VtOw0KICAgICAgYWNjdW0gPSAiIjsNCiAgICAgIGlmIChwb3MgPiAwKXsNCiAgICAgICAgdGVtcCArPSBjdXJyZW50LnNsaWNlKDAsIHBvcyk7DQogICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnNsaWNlKHBvcyk7DQogICAgICAgIHBvcyA9IDA7DQogICAgICB9DQogICAgICByZXR1cm4gdGVtcDsNCiAgICB9LA0KICAgIC8vIFB1c2ggYSBzdHJpbmcgYmFjayBpbnRvIHRoZSBzdHJlYW0uDQogICAgcHVzaDogZnVuY3Rpb24oc3RyKSB7DQogICAgICBjdXJyZW50ID0gY3VycmVudC5zbGljZSgwLCBwb3MpICsgc3RyICsgY3VycmVudC5zbGljZShwb3MpOw0KICAgIH0sDQogICAgbG9va0FoZWFkOiBmdW5jdGlvbihzdHIsIGNvbnN1bWUsIHNraXBTcGFjZXMsIGNhc2VJbnNlbnNpdGl2ZSkgew0KICAgICAgZnVuY3Rpb24gY2FzZWQoc3RyKSB7cmV0dXJuIGNhc2VJbnNlbnNpdGl2ZSA/IHN0ci50b0xvd2VyQ2FzZSgpIDogc3RyO30NCiAgICAgIHN0ciA9IGNhc2VkKHN0cik7DQogICAgICB2YXIgZm91bmQgPSBmYWxzZTsNCg0KICAgICAgdmFyIF9hY2N1bSA9IGFjY3VtLCBfcG9zID0gcG9zOw0KICAgICAgaWYgKHNraXBTcGFjZXMpIHRoaXMubmV4dFdoaWxlTWF0Y2hlcygvW1xzXHUwMGEwXS8pOw0KDQogICAgICB3aGlsZSAodHJ1ZSkgew0KICAgICAgICB2YXIgZW5kID0gcG9zICsgc3RyLmxlbmd0aCwgbGVmdCA9IGN1cnJlbnQubGVuZ3RoIC0gcG9zOw0KICAgICAgICBpZiAoZW5kIDw9IGN1cnJlbnQubGVuZ3RoKSB7DQogICAgICAgICAgZm91bmQgPSBzdHIgPT0gY2FzZWQoY3VycmVudC5zbGljZShwb3MsIGVuZCkpOw0KICAgICAgICAgIHBvcyA9IGVuZDsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChzdHIuc2xpY2UoMCwgbGVmdCkgPT0gY2FzZWQoY3VycmVudC5zbGljZShwb3MpKSkgew0KICAgICAgICAgIGFjY3VtICs9IGN1cnJlbnQ7IGN1cnJlbnQgPSAiIjsNCiAgICAgICAgICB0cnkge2N1cnJlbnQgPSBzb3VyY2UubmV4dCgpO30NCiAgICAgICAgICBjYXRjaCAoZSkge2lmIChlICE9IFN0b3BJdGVyYXRpb24pIHRocm93IGU7IGJyZWFrO30NCiAgICAgICAgICBwb3MgPSAwOw0KICAgICAgICAgIHN0ciA9IHN0ci5zbGljZShsZWZ0KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICBpZiAoIShmb3VuZCAmJiBjb25zdW1lKSkgew0KICAgICAgICBjdXJyZW50ID0gYWNjdW0uc2xpY2UoX2FjY3VtLmxlbmd0aCkgKyBjdXJyZW50Ow0KICAgICAgICBwb3MgPSBfcG9zOw0KICAgICAgICBhY2N1bSA9IF9hY2N1bTsNCiAgICAgIH0NCg0KICAgICAgcmV0dXJuIGZvdW5kOw0KICAgIH0sDQogICAgLy8gV29udCd0IG1hdGNoIHBhc3QgZW5kIG9mIGxpbmUuDQogICAgbG9va0FoZWFkUmVnZXg6IGZ1bmN0aW9uKHJlZ2V4LCBjb25zdW1lKSB7DQogICAgICBpZiAocmVnZXguc291cmNlLmNoYXJBdCgwKSAhPSAiXiIpDQogICAgICAgIHRocm93IG5ldyBFcnJvcigiUmVnZXhwcyBwYXNzZWQgdG8gbG9va0FoZWFkUmVnZXggbXVzdCBzdGFydCB3aXRoIF4iKTsNCg0KICAgICAgLy8gRmV0Y2ggdGhlIHJlc3Qgb2YgdGhlIGxpbmUNCiAgICAgIHdoaWxlIChjdXJyZW50LmluZGV4T2YoIlxuIiwgcG9zKSA9PSAtMSkgew0KICAgICAgICB0cnkge2N1cnJlbnQgKz0gc291cmNlLm5leHQoKTt9DQogICAgICAgIGNhdGNoIChlKSB7aWYgKGUgIT0gU3RvcEl0ZXJhdGlvbikgdGhyb3cgZTsgYnJlYWs7fQ0KICAgICAgfQ0KICAgICAgdmFyIG1hdGNoZWQgPSBjdXJyZW50LnNsaWNlKHBvcykubWF0Y2gocmVnZXgpOw0KICAgICAgaWYgKG1hdGNoZWQgJiYgY29uc3VtZSkgcG9zICs9IG1hdGNoZWRbMF0ubGVuZ3RoOw0KICAgICAgcmV0dXJuIG1hdGNoZWQ7DQogICAgfSwNCg0KICAgIC8vIFV0aWxzIGJ1aWx0IG9uIHRvcCBvZiB0aGUgYWJvdmUNCiAgICAvLyBtb3JlOiAtPiBib29sZWFuDQogICAgLy8gUHJvZHVjZSB0cnVlIGlmIHRoZSBzdHJlYW0gaXNuJ3QgZW1wdHkuDQogICAgbW9yZTogZnVuY3Rpb24oKSB7DQogICAgICByZXR1cm4gdGhpcy5wZWVrKCkgIT09IG51bGw7DQogICAgfSwNCiAgICBhcHBsaWVzOiBmdW5jdGlvbih0ZXN0KSB7DQogICAgICB2YXIgbmV4dCA9IHRoaXMucGVlaygpOw0KICAgICAgcmV0dXJuIChuZXh0ICE9PSBudWxsICYmIHRlc3QobmV4dCkpOw0KICAgIH0sDQogICAgbmV4dFdoaWxlOiBmdW5jdGlvbih0ZXN0KSB7DQogICAgICB2YXIgbmV4dDsNCiAgICAgIHdoaWxlICgobmV4dCA9IHRoaXMucGVlaygpKSAhPT0gbnVsbCAmJiB0ZXN0KG5leHQpKQ0KICAgICAgICB0aGlzLm5leHQoKTsNCiAgICB9LA0KICAgIG1hdGNoZXM6IGZ1bmN0aW9uKHJlKSB7DQogICAgICB2YXIgbmV4dCA9IHRoaXMucGVlaygpOw0KICAgICAgcmV0dXJuIChuZXh0ICE9PSBudWxsICYmIHJlLnRlc3QobmV4dCkpOw0KICAgIH0sDQogICAgbmV4dFdoaWxlTWF0Y2hlczogZnVuY3Rpb24ocmUpIHsNCiAgICAgIHZhciBuZXh0Ow0KICAgICAgd2hpbGUgKChuZXh0ID0gdGhpcy5wZWVrKCkpICE9PSBudWxsICYmIHJlLnRlc3QobmV4dCkpDQogICAgICAgIHRoaXMubmV4dCgpOw0KICAgIH0sDQogICAgZXF1YWxzOiBmdW5jdGlvbihjaCkgew0KICAgICAgcmV0dXJuIGNoID09PSB0aGlzLnBlZWsoKTsNCiAgICB9LA0KICAgIGVuZE9mTGluZTogZnVuY3Rpb24oKSB7DQogICAgICB2YXIgbmV4dCA9IHRoaXMucGVlaygpOw0KICAgICAgcmV0dXJuIG5leHQgPT0gbnVsbCB8fCBuZXh0ID09ICJcbiI7DQogICAgfQ0KICB9Ow0KfTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/tokenize.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQSBmcmFtZXdvcmsgZm9yIHNpbXBsZSB0b2tlbml6ZXJzLiBUYWtlcyBjYXJlIG9mIG5ld2xpbmVzIGFuZA0KLy8gd2hpdGUtc3BhY2UsIGFuZCBvZiBnZXR0aW5nIHRoZSB0ZXh0IGZyb20gdGhlIHNvdXJjZSBzdHJlYW0gaW50bw0KLy8gdGhlIHRva2VuIG9iamVjdC4gQSBzdGF0ZSBpcyBhIGZ1bmN0aW9uIG9mIHR3byBhcmd1bWVudHMgLS0gYQ0KLy8gc3RyaW5nIHN0cmVhbSBhbmQgYSBzZXRTdGF0ZSBmdW5jdGlvbi4gVGhlIHNlY29uZCBjYW4gYmUgdXNlZCB0bw0KLy8gY2hhbmdlIHRoZSB0b2tlbml6ZXIncyBzdGF0ZSwgYW5kIGNhbiBiZSBpZ25vcmVkIGZvciBzdGF0ZWxlc3MNCi8vIHRva2VuaXplcnMuIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGFkdmFuY2UgdGhlIHN0cmVhbSBvdmVyIGEgdG9rZW4NCi8vIGFuZCByZXR1cm4gYSBzdHJpbmcgb3Igb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5leHQNCi8vIHRva2VuLCBvciBudWxsIHRvIHBhc3MgYW5kIGhhdmUgdGhlIChuZXcpIHN0YXRlIGJlIGNhbGxlZCB0byBmaW5pc2gNCi8vIHRoZSB0b2tlbi4gV2hlbiBhIHN0cmluZyBpcyBnaXZlbiwgaXQgaXMgd3JhcHBlZCBpbiBhIHtzdHlsZSwgdHlwZX0NCi8vIG9iamVjdC4gSW4gdGhlIHJlc3VsdGluZyBvYmplY3QsIHRoZSBjaGFyYWN0ZXJzIGNvbnN1bWVkIGFyZSBzdG9yZWQNCi8vIHVuZGVyIHRoZSBjb250ZW50IHByb3BlcnR5LiBBbnkgd2hpdGVzcGFjZSBmb2xsb3dpbmcgdGhlbSBpcyBhbHNvDQovLyBhdXRvbWF0aWNhbGx5IGNvbnN1bWVkLCBhbmQgYWRkZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5LiAoVGh1cywNCi8vIGNvbnRlbnQgaXMgdGhlIGFjdHVhbCBtZWFuaW5nZnVsIHBhcnQgb2YgdGhlIHRva2VuLCB3aGlsZSB2YWx1ZQ0KLy8gY29udGFpbnMgYWxsIHRoZSB0ZXh0IGl0IHNwYW5zLikNCg0KZnVuY3Rpb24gdG9rZW5pemVyKHNvdXJjZSwgc3RhdGUpIHsNCiAgLy8gTmV3bGluZXMgYXJlIGFsd2F5cyBhIHNlcGFyYXRlIHRva2VuLg0KICBmdW5jdGlvbiBpc1doaXRlU3BhY2UoY2gpIHsNCiAgICAvLyBUaGUgbWVzc3kgcmVnZXhwIGlzIGJlY2F1c2UgSUUncyByZWdleHAgbWF0Y2hlciBpcyBvZiB0aGUNCiAgICAvLyBvcGluaW9uIHRoYXQgbm9uLWJyZWFraW5nIHNwYWNlcyBhcmUgbm8gd2hpdGVzcGFjZS4NCiAgICByZXR1cm4gY2ggIT0gIlxuIiAmJiAvXltcc1x1MDBhMF0qJC8udGVzdChjaCk7DQogIH0NCg0KICB2YXIgdG9rZW5pemVyID0gew0KICAgIHN0YXRlOiBzdGF0ZSwNCg0KICAgIHRha2U6IGZ1bmN0aW9uKHR5cGUpIHsNCiAgICAgIGlmICh0eXBlb2YodHlwZSkgPT0gInN0cmluZyIpDQogICAgICAgIHR5cGUgPSB7c3R5bGU6IHR5cGUsIHR5cGU6IHR5cGV9Ow0KDQogICAgICB0eXBlLmNvbnRlbnQgPSAodHlwZS5jb250ZW50IHx8ICIiKSArIHNvdXJjZS5nZXQoKTsNCiAgICAgIGlmICghL1xuJC8udGVzdCh0eXBlLmNvbnRlbnQpKQ0KICAgICAgICBzb3VyY2UubmV4dFdoaWxlKGlzV2hpdGVTcGFjZSk7DQogICAgICB0eXBlLnZhbHVlID0gdHlwZS5jb250ZW50ICsgc291cmNlLmdldCgpOw0KICAgICAgcmV0dXJuIHR5cGU7DQogICAgfSwNCg0KICAgIG5leHQ6IGZ1bmN0aW9uICgpIHsNCiAgICAgIGlmICghc291cmNlLm1vcmUoKSkgdGhyb3cgU3RvcEl0ZXJhdGlvbjsNCg0KICAgICAgdmFyIHR5cGU7DQogICAgICBpZiAoc291cmNlLmVxdWFscygiXG4iKSkgew0KICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICByZXR1cm4gdGhpcy50YWtlKCJ3aGl0ZXNwYWNlIik7DQogICAgICB9DQogICAgICANCiAgICAgIGlmIChzb3VyY2UuYXBwbGllcyhpc1doaXRlU3BhY2UpKQ0KICAgICAgICB0eXBlID0gIndoaXRlc3BhY2UiOw0KICAgICAgZWxzZQ0KICAgICAgICB3aGlsZSAoIXR5cGUpDQogICAgICAgICAgdHlwZSA9IHRoaXMuc3RhdGUoc291cmNlLCBmdW5jdGlvbihzKSB7dG9rZW5pemVyLnN0YXRlID0gczt9KTsNCg0KICAgICAgcmV0dXJuIHRoaXMudGFrZSh0eXBlKTsNCiAgICB9DQogIH07DQogIHJldHVybiB0b2tlbml6ZXI7DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/tokenizejavascript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogVG9rZW5pemVyIGZvciBKYXZhU2NyaXB0IGNvZGUgKi8NCg0KdmFyIHRva2VuaXplSmF2YVNjcmlwdCA9IChmdW5jdGlvbigpIHsNCiAgLy8gQWR2YW5jZSB0aGUgc3RyZWFtIHVudGlsIHRoZSBnaXZlbiBjaGFyYWN0ZXIgKG5vdCBwcmVjZWRlZCBieSBhDQogIC8vIGJhY2tzbGFzaCkgaXMgZW5jb3VudGVyZWQsIG9yIHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgcmVhY2hlZC4NCiAgZnVuY3Rpb24gbmV4dFVudGlsVW5lc2NhcGVkKHNvdXJjZSwgZW5kKSB7DQogICAgdmFyIGVzY2FwZWQgPSBmYWxzZTsNCiAgICB3aGlsZSAoIXNvdXJjZS5lbmRPZkxpbmUoKSkgew0KICAgICAgdmFyIG5leHQgPSBzb3VyY2UubmV4dCgpOw0KICAgICAgaWYgKG5leHQgPT0gZW5kICYmICFlc2NhcGVkKQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICBlc2NhcGVkID0gIWVzY2FwZWQgJiYgbmV4dCA9PSAiXFwiOw0KICAgIH0NCiAgICByZXR1cm4gZXNjYXBlZDsNCiAgfQ0KDQogIC8vIEEgbWFwIG9mIEphdmFTY3JpcHQncyBrZXl3b3Jkcy4gVGhlIGEvYi9jIGtleXdvcmQgZGlzdGluY3Rpb24gaXMNCiAgLy8gdmVyeSByb3VnaCwgYnV0IGl0IGdpdmVzIHRoZSBwYXJzZXIgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHBhcnNlDQogIC8vIGNvcnJlY3QgY29kZSBjb3JyZWN0bHkgKHdlIGRvbid0IGNhcmUgdGhhdCBtdWNoIGhvdyB3ZSBwYXJzZQ0KICAvLyBpbmNvcnJlY3QgY29kZSkuIFRoZSBzdHlsZSBpbmZvcm1hdGlvbiBpbmNsdWRlZCBpbiB0aGVzZSBvYmplY3RzDQogIC8vIGlzIHVzZWQgYnkgdGhlIGhpZ2hsaWdodGVyIHRvIHBpY2sgdGhlIGNvcnJlY3QgQ1NTIHN0eWxlIGZvciBhDQogIC8vIHRva2VuLg0KICB2YXIga2V5d29yZHMgPSBmdW5jdGlvbigpew0KICAgIGZ1bmN0aW9uIHJlc3VsdCh0eXBlLCBzdHlsZSl7DQogICAgICByZXR1cm4ge3R5cGU6IHR5cGUsIHN0eWxlOiAianMtIiArIHN0eWxlfTsNCiAgICB9DQogICAgLy8ga2V5d29yZHMgdGhhdCB0YWtlIGEgcGFyZW50aGlzZWQgZXhwcmVzc2lvbiwgYW5kIHRoZW4gYQ0KICAgIC8vIHN0YXRlbWVudCAoaWYpDQogICAgdmFyIGtleXdvcmRBID0gcmVzdWx0KCJrZXl3b3JkIGEiLCAia2V5d29yZCIpOw0KICAgIC8vIGtleXdvcmRzIHRoYXQgdGFrZSBqdXN0IGEgc3RhdGVtZW50IChlbHNlKQ0KICAgIHZhciBrZXl3b3JkQiA9IHJlc3VsdCgia2V5d29yZCBiIiwgImtleXdvcmQiKTsNCiAgICAvLyBrZXl3b3JkcyB0aGF0IG9wdGlvbmFsbHkgdGFrZSBhbiBleHByZXNzaW9uLCBhbmQgZm9ybSBhDQogICAgLy8gc3RhdGVtZW50IChyZXR1cm4pDQogICAgdmFyIGtleXdvcmRDID0gcmVzdWx0KCJrZXl3b3JkIGMiLCAia2V5d29yZCIpOw0KICAgIHZhciBvcGVyYXRvciA9IHJlc3VsdCgib3BlcmF0b3IiLCAia2V5d29yZCIpOw0KICAgIHZhciBhdG9tID0gcmVzdWx0KCJhdG9tIiwgImF0b20iKTsNCiAgICByZXR1cm4gew0KICAgICAgImlmIjoga2V5d29yZEEsICJ3aGlsZSI6IGtleXdvcmRBLCAid2l0aCI6IGtleXdvcmRBLA0KICAgICAgImVsc2UiOiBrZXl3b3JkQiwgImRvIjoga2V5d29yZEIsICJ0cnkiOiBrZXl3b3JkQiwgImZpbmFsbHkiOiBrZXl3b3JkQiwNCiAgICAgICJyZXR1cm4iOiBrZXl3b3JkQywgImJyZWFrIjoga2V5d29yZEMsICJjb250aW51ZSI6IGtleXdvcmRDLCAibmV3Ijoga2V5d29yZEMsICJkZWxldGUiOiBrZXl3b3JkQywgInRocm93Ijoga2V5d29yZEMsDQogICAgICAiaW4iOiBvcGVyYXRvciwgInR5cGVvZiI6IG9wZXJhdG9yLCAiaW5zdGFuY2VvZiI6IG9wZXJhdG9yLA0KICAgICAgInZhciI6IHJlc3VsdCgidmFyIiwgImtleXdvcmQiKSwgImZ1bmN0aW9uIjogcmVzdWx0KCJmdW5jdGlvbiIsICJrZXl3b3JkIiksICJjYXRjaCI6IHJlc3VsdCgiY2F0Y2giLCAia2V5d29yZCIpLA0KICAgICAgImZvciI6IHJlc3VsdCgiZm9yIiwgImtleXdvcmQiKSwgInN3aXRjaCI6IHJlc3VsdCgic3dpdGNoIiwgImtleXdvcmQiKSwNCiAgICAgICJjYXNlIjogcmVzdWx0KCJjYXNlIiwgImtleXdvcmQiKSwgImRlZmF1bHQiOiByZXN1bHQoImRlZmF1bHQiLCAia2V5d29yZCIpLA0KICAgICAgInRydWUiOiBhdG9tLCAiZmFsc2UiOiBhdG9tLCAibnVsbCI6IGF0b20sICJ1bmRlZmluZWQiOiBhdG9tLCAiTmFOIjogYXRvbSwgIkluZmluaXR5IjogYXRvbQ0KICAgIH07DQogIH0oKTsNCg0KICAvLyBTb21lIGhlbHBlciByZWdleHBzDQogIHZhciBpc09wZXJhdG9yQ2hhciA9IC9bK1wtKiYlPTw+IT98XS87DQogIHZhciBpc0hleERpZ2l0ID0gL1swLTlBLUZhLWZdLzsNCiAgdmFyIGlzV29yZENoYXIgPSAvW1x3XCRfXS87DQoNCiAgLy8gV3JhcHBlciBhcm91bmQganNUb2tlbiB0aGF0IGhlbHBzIG1haW50YWluIHBhcnNlciBzdGF0ZSAod2hldGhlcg0KICAvLyB3ZSBhcmUgaW5zaWRlIG9mIGEgbXVsdGktbGluZSBjb21tZW50IGFuZCB3aGV0aGVyIHRoZSBuZXh0IHRva2VuDQogIC8vIGNvdWxkIGJlIGEgcmVndWxhciBleHByZXNzaW9uKS4NCiAgZnVuY3Rpb24ganNUb2tlblN0YXRlKGluc2lkZSwgcmVnZXhwKSB7DQogICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc2V0U3RhdGUpIHsNCiAgICAgIHZhciBuZXdJbnNpZGUgPSBpbnNpZGU7DQogICAgICB2YXIgdHlwZSA9IGpzVG9rZW4oaW5zaWRlLCByZWdleHAsIHNvdXJjZSwgZnVuY3Rpb24oYykge25ld0luc2lkZSA9IGM7fSk7DQogICAgICB2YXIgbmV3UmVnZXhwID0gdHlwZS50eXBlID09ICJvcGVyYXRvciIgfHwgdHlwZS50eXBlID09ICJrZXl3b3JkIGMiIHx8IHR5cGUudHlwZS5tYXRjaCgvXltcW3t9XCgsOzpdJC8pOw0KICAgICAgaWYgKG5ld1JlZ2V4cCAhPSByZWdleHAgfHwgbmV3SW5zaWRlICE9IGluc2lkZSkNCiAgICAgICAgc2V0U3RhdGUoanNUb2tlblN0YXRlKG5ld0luc2lkZSwgbmV3UmVnZXhwKSk7DQogICAgICByZXR1cm4gdHlwZTsNCiAgICB9Ow0KICB9DQoNCiAgLy8gVGhlIHRva2VuIHJlYWRlciwgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSB0aGUgdG9rZW5pemVyIGZyb20NCiAgLy8gdG9rZW5pemUuanMgKHRocm91Z2gganNUb2tlblN0YXRlKS4gQWR2YW5jZXMgdGhlIHNvdXJjZSBzdHJlYW0NCiAgLy8gb3ZlciBhIHRva2VuLCBhbmQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgdHlwZSBhbmQgc3R5bGUNCiAgLy8gb2YgdGhhdCB0b2tlbi4NCiAgZnVuY3Rpb24ganNUb2tlbihpbnNpZGUsIHJlZ2V4cCwgc291cmNlLCBzZXRJbnNpZGUpIHsNCiAgICBmdW5jdGlvbiByZWFkSGV4TnVtYmVyKCl7DQogICAgICBzb3VyY2UubmV4dCgpOyAvLyBza2lwIHRoZSAneCcNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzSGV4RGlnaXQpOw0KICAgICAgcmV0dXJuIHt0eXBlOiAibnVtYmVyIiwgc3R5bGU6ICJqcy1hdG9tIn07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVhZE51bWJlcigpIHsNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bMC05XS8pOw0KICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIi4iKSl7DQogICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bMC05XS8pOw0KICAgICAgfQ0KICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoImUiKSB8fCBzb3VyY2UuZXF1YWxzKCJFIikpew0KICAgICAgICBzb3VyY2UubmV4dCgpOw0KICAgICAgICBpZiAoc291cmNlLmVxdWFscygiLSIpKQ0KICAgICAgICAgIHNvdXJjZS5uZXh0KCk7DQogICAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKC9bMC05XS8pOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIHt0eXBlOiAibnVtYmVyIiwgc3R5bGU6ICJqcy1hdG9tIn07DQogICAgfQ0KICAgIC8vIFJlYWQgYSB3b3JkLCBsb29rIGl0IHVwIGluIGtleXdvcmRzLiBJZiBub3QgZm91bmQsIGl0IGlzIGENCiAgICAvLyB2YXJpYWJsZSwgb3RoZXJ3aXNlIGl0IGlzIGEga2V5d29yZCBvZiB0aGUgdHlwZSBmb3VuZC4NCiAgICBmdW5jdGlvbiByZWFkV29yZCgpIHsNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzV29yZENoYXIpOw0KICAgICAgdmFyIHdvcmQgPSBzb3VyY2UuZ2V0KCk7DQogICAgICB2YXIga25vd24gPSBrZXl3b3Jkcy5oYXNPd25Qcm9wZXJ0eSh3b3JkKSAmJiBrZXl3b3Jkcy5wcm9wZXJ0eUlzRW51bWVyYWJsZSh3b3JkKSAmJiBrZXl3b3Jkc1t3b3JkXTsNCiAgICAgIHJldHVybiBrbm93biA/IHt0eXBlOiBrbm93bi50eXBlLCBzdHlsZToga25vd24uc3R5bGUsIGNvbnRlbnQ6IHdvcmR9IDoNCiAgICAgIHt0eXBlOiAidmFyaWFibGUiLCBzdHlsZTogImpzLXZhcmlhYmxlIiwgY29udGVudDogd29yZH07DQogICAgfQ0KICAgIGZ1bmN0aW9uIHJlYWRSZWdleHAoKSB7DQogICAgICBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCAiLyIpOw0KICAgICAgc291cmNlLm5leHRXaGlsZU1hdGNoZXMoL1tnaW15XS8pOyAvLyAneScgaXMgInN0aWNreSIgb3B0aW9uIGluIE1vemlsbGENCiAgICAgIHJldHVybiB7dHlwZTogInJlZ2V4cCIsIHN0eWxlOiAianMtc3RyaW5nIn07DQogICAgfQ0KICAgIC8vIE11dGxpLWxpbmUgY29tbWVudHMgYXJlIHRyaWNreS4gV2Ugd2FudCB0byByZXR1cm4gdGhlIG5ld2xpbmVzDQogICAgLy8gZW1iZWRkZWQgaW4gdGhlbSBhcyByZWd1bGFyIG5ld2xpbmUgdG9rZW5zLCBhbmQgdGhlbiBjb250aW51ZQ0KICAgIC8vIHJldHVybmluZyBhIGNvbW1lbnQgdG9rZW4gZm9yIGV2ZXJ5IGxpbmUgb2YgdGhlIGNvbW1lbnQuIFNvDQogICAgLy8gc29tZSBzdGF0ZSBoYXMgdG8gYmUgc2F2ZWQgKGluc2lkZSkgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSBhcmUNCiAgICAvLyBpbnNpZGUgYSAvKiAqLyBzZXF1ZW5jZS4NCiAgICBmdW5jdGlvbiByZWFkTXVsdGlsaW5lQ29tbWVudChzdGFydCl7DQogICAgICB2YXIgbmV3SW5zaWRlID0gIi8qIjsNCiAgICAgIHZhciBtYXliZUVuZCA9IChzdGFydCA9PSAiKiIpOw0KICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgaWYgKHNvdXJjZS5lbmRPZkxpbmUoKSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgdmFyIG5leHQgPSBzb3VyY2UubmV4dCgpOw0KICAgICAgICBpZiAobmV4dCA9PSAiLyIgJiYgbWF5YmVFbmQpew0KICAgICAgICAgIG5ld0luc2lkZSA9IG51bGw7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgbWF5YmVFbmQgPSAobmV4dCA9PSAiKiIpOw0KICAgICAgfQ0KICAgICAgc2V0SW5zaWRlKG5ld0luc2lkZSk7DQogICAgICByZXR1cm4ge3R5cGU6ICJjb21tZW50Iiwgc3R5bGU6ICJqcy1jb21tZW50In07DQogICAgfQ0KICAgIGZ1bmN0aW9uIHJlYWRPcGVyYXRvcigpIHsNCiAgICAgIHNvdXJjZS5uZXh0V2hpbGVNYXRjaGVzKGlzT3BlcmF0b3JDaGFyKTsNCiAgICAgIHJldHVybiB7dHlwZTogIm9wZXJhdG9yIiwgc3R5bGU6ICJqcy1vcGVyYXRvciJ9Ow0KICAgIH0NCiAgICBmdW5jdGlvbiByZWFkU3RyaW5nKHF1b3RlKSB7DQogICAgICB2YXIgZW5kQmFja1NsYXNoID0gbmV4dFVudGlsVW5lc2NhcGVkKHNvdXJjZSwgcXVvdGUpOw0KICAgICAgc2V0SW5zaWRlKGVuZEJhY2tTbGFzaCA/IHF1b3RlIDogbnVsbCk7DQogICAgICByZXR1cm4ge3R5cGU6ICJzdHJpbmciLCBzdHlsZTogImpzLXN0cmluZyJ9Ow0KICAgIH0NCg0KICAgIC8vIEZldGNoIHRoZSBuZXh0IHRva2VuLiBEaXNwYXRjaGVzIG9uIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUNCiAgICAvLyBzdHJlYW0sIG9yIGZpcnN0IHR3byBjaGFyYWN0ZXJzIHdoZW4gdGhlIGZpcnN0IGlzIGEgc2xhc2guDQogICAgaWYgKGluc2lkZSA9PSAiXCIiIHx8IGluc2lkZSA9PSAiJyIpDQogICAgICByZXR1cm4gcmVhZFN0cmluZyhpbnNpZGUpOw0KICAgIHZhciBjaCA9IHNvdXJjZS5uZXh0KCk7DQogICAgaWYgKGluc2lkZSA9PSAiLyoiKQ0KICAgICAgcmV0dXJuIHJlYWRNdWx0aWxpbmVDb21tZW50KGNoKTsNCiAgICBlbHNlIGlmIChjaCA9PSAiXCIiIHx8IGNoID09ICInIikNCiAgICAgIHJldHVybiByZWFkU3RyaW5nKGNoKTsNCiAgICAvLyB3aXRoIHB1bmN0dWF0aW9uLCB0aGUgdHlwZSBvZiB0aGUgdG9rZW4gaXMgdGhlIHN5bWJvbCBpdHNlbGYNCiAgICBlbHNlIGlmICgvW1xbXF17fVwoXCksO1w6XC5dLy50ZXN0KGNoKSkNCiAgICAgIHJldHVybiB7dHlwZTogY2gsIHN0eWxlOiAianMtcHVuY3R1YXRpb24ifTsNCiAgICBlbHNlIGlmIChjaCA9PSAiMCIgJiYgKHNvdXJjZS5lcXVhbHMoIngiKSB8fCBzb3VyY2UuZXF1YWxzKCJYIikpKQ0KICAgICAgcmV0dXJuIHJlYWRIZXhOdW1iZXIoKTsNCiAgICBlbHNlIGlmICgvWzAtOV0vLnRlc3QoY2gpKQ0KICAgICAgcmV0dXJuIHJlYWROdW1iZXIoKTsNCiAgICBlbHNlIGlmIChjaCA9PSAiLyIpew0KICAgICAgaWYgKHNvdXJjZS5lcXVhbHMoIioiKSkNCiAgICAgIHsgc291cmNlLm5leHQoKTsgcmV0dXJuIHJlYWRNdWx0aWxpbmVDb21tZW50KGNoKTsgfQ0KICAgICAgZWxzZSBpZiAoc291cmNlLmVxdWFscygiLyIpKQ0KICAgICAgeyBuZXh0VW50aWxVbmVzY2FwZWQoc291cmNlLCBudWxsKTsgcmV0dXJuIHt0eXBlOiAiY29tbWVudCIsIHN0eWxlOiAianMtY29tbWVudCJ9O30NCiAgICAgIGVsc2UgaWYgKHJlZ2V4cCkNCiAgICAgICAgcmV0dXJuIHJlYWRSZWdleHAoKTsNCiAgICAgIGVsc2UNCiAgICAgICAgcmV0dXJuIHJlYWRPcGVyYXRvcigpOw0KICAgIH0NCiAgICBlbHNlIGlmIChpc09wZXJhdG9yQ2hhci50ZXN0KGNoKSkNCiAgICAgIHJldHVybiByZWFkT3BlcmF0b3IoKTsNCiAgICBlbHNlDQogICAgICByZXR1cm4gcmVhZFdvcmQoKTsNCiAgfQ0KDQogIC8vIFRoZSBleHRlcm5hbCBpbnRlcmZhY2UgdG8gdGhlIHRva2VuaXplci4NCiAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSwgc3RhcnRTdGF0ZSkgew0KICAgIHJldHVybiB0b2tlbml6ZXIoc291cmNlLCBzdGFydFN0YXRlIHx8IGpzVG9rZW5TdGF0ZShmYWxzZSwgdHJ1ZSkpOw0KICB9Ow0KfSkoKTsNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/undo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBTdG9yYWdlIGFuZCBjb250cm9sIGZvciB1bmRvIGluZm9ybWF0aW9uIHdpdGhpbiBhIENvZGVNaXJyb3INCiAqIGVkaXRvci4gJ1doeSBvbiBlYXJ0aCBpcyBzdWNoIGEgY29tcGxpY2F0ZWQgbWVzcyByZXF1aXJlZCBmb3INCiAqIHRoYXQ/JywgSSBoZWFyIHlvdSBhc2suIFRoZSBnb2FsLCBpbiBpbXBsZW1lbnRpbmcgdGhpcywgd2FzIHRvIG1ha2UNCiAqIHRoZSBjb21wbGV4aXR5IG9mIHN0b3JpbmcgYW5kIHJldmVydGluZyB1bmRvIGluZm9ybWF0aW9uIGRlcGVuZA0KICogb25seSBvbiB0aGUgc2l6ZSBvZiB0aGUgZWRpdGVkIG9yIHJlc3RvcmVkIGNvbnRlbnQsIG5vdCBvbiB0aGUgc2l6ZQ0KICogb2YgdGhlIHdob2xlIGRvY3VtZW50LiBUaGlzIG1ha2VzIGl0IG5lY2Vzc2FyeSB0byB1c2UgYSBraW5kIG9mDQogKiAnZGlmZicgc3lzdGVtLCB3aGljaCwgd2hlbiBhcHBsaWVkIHRvIGEgRE9NIHRyZWUsIGNhdXNlcyBzb21lDQogKiBjb21wbGV4aXR5IGFuZCBoYWNrZXJ5Lg0KICoNCiAqIEluIHNob3J0LCB0aGUgZWRpdG9yICd0b3VjaGVzJyBCUiBlbGVtZW50cyBhcyBpdCBwYXJzZXMgdGhlbSwgYW5kDQogKiB0aGUgVW5kb0hpc3Rvcnkgc3RvcmVzIHRoZXNlLiBXaGVuIG5vdGhpbmcgaXMgdG91Y2hlZCBpbiBjb21taXREZWxheQ0KICogbWlsbGlzZWNvbmRzLCB0aGUgY2hhbmdlcyBhcmUgY29tbWl0dGVkOiBJdCBnb2VzIG92ZXIgYWxsIHRvdWNoZWQNCiAqIG5vZGVzLCB0aHJvd3Mgb3V0IHRoZSBvbmVzIHRoYXQgZGlkIG5vdCBjaGFuZ2Ugc2luY2UgbGFzdCBjb21taXQgb3INCiAqIGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50LCBhbmQgYXNzZW1ibGVzIHRoZSByZXN0IGludG8gemVybyBvcg0KICogbW9yZSAnY2hhaW5zJyAtLSBhcnJheXMgb2YgYWRqYWNlbnQgbGluZXMuIExpbmtzIGJhY2sgdG8gdGhlc2UNCiAqIGNoYWlucyBhcmUgYWRkZWQgdG8gdGhlIEJSIG5vZGVzLCB3aGlsZSB0aGUgY2hhaW4gdGhhdCBwcmV2aW91c2x5DQogKiBzcGFubmVkIHRoZXNlIG5vZGVzIGlzIGFkZGVkIHRvIHRoZSB1bmRvIGhpc3RvcnkuIFVuZG9pbmcgYSBjaGFuZ2UNCiAqIG1lYW5zIHRha2luZyBzdWNoIGEgY2hhaW4gb2ZmIHRoZSB1bmRvIGhpc3RvcnksIHJlc3RvcmluZyBpdHMNCiAqIGNvbnRlbnQgKHRleHQgaXMgc2F2ZWQgcGVyIGxpbmUpIGFuZCBsaW5raW5nIGl0IGJhY2sgaW50byB0aGUNCiAqIGRvY3VtZW50Lg0KICovDQoNCi8vIEEgaGlzdG9yeSBvYmplY3QgbmVlZHMgdG8ga25vdyBhYm91dCB0aGUgRE9NIGNvbnRhaW5lciBob2xkaW5nIHRoZQ0KLy8gZG9jdW1lbnQsIHRoZSBtYXhpbXVtIGFtb3VudCBvZiB1bmRvIGxldmVscyBpdCBzaG91bGQgc3RvcmUsIHRoZQ0KLy8gZGVsYXkgKG9mIG5vIGlucHV0KSBhZnRlciB3aGljaCBpdCBjb21taXRzIGEgc2V0IG9mIGNoYW5nZXMsIGFuZCwNCi8vIHVuZm9ydHVuYXRlbHksIHRoZSAncGFyZW50JyB3aW5kb3cgLS0gYSB3aW5kb3cgdGhhdCBpcyBub3QgaW4NCi8vIGRlc2lnbk1vZGUsIGFuZCBvbiB3aGljaCBzZXRUaW1lb3V0IHdvcmtzIGluIGV2ZXJ5IGJyb3dzZXIuDQpmdW5jdGlvbiBVbmRvSGlzdG9yeShjb250YWluZXIsIG1heERlcHRoLCBjb21taXREZWxheSwgZWRpdG9yKSB7DQogIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyOw0KICB0aGlzLm1heERlcHRoID0gbWF4RGVwdGg7IHRoaXMuY29tbWl0RGVsYXkgPSBjb21taXREZWxheTsNCiAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7DQogIC8vIFRoaXMgbGluZSBvYmplY3QgcmVwcmVzZW50cyB0aGUgaW5pdGlhbCwgZW1wdHkgZWRpdG9yLg0KICB2YXIgaW5pdGlhbCA9IHt0ZXh0OiAiIiwgZnJvbTogbnVsbCwgdG86IG51bGx9Ow0KICAvLyBBcyB0aGUgYm9yZGVycyBiZXR3ZWVuIGxpbmVzIGFyZSByZXByZXNlbnRlZCBieSBCUiBlbGVtZW50cywgdGhlDQogIC8vIHN0YXJ0IG9mIHRoZSBmaXJzdCBsaW5lIGFuZCB0aGUgZW5kIG9mIHRoZSBsYXN0IG9uZSBhcmUNCiAgLy8gcmVwcmVzZW50ZWQgYnkgbnVsbC4gU2luY2UgeW91IGNhbiBub3Qgc3RvcmUgYW55IHByb3BlcnRpZXMNCiAgLy8gKGxpbmtzIHRvIGxpbmUgb2JqZWN0cykgaW4gbnVsbCwgdGhlc2UgcHJvcGVydGllcyBhcmUgdXNlZCBpbg0KICAvLyB0aG9zZSBjYXNlcy4NCiAgdGhpcy5maXJzdCA9IGluaXRpYWw7IHRoaXMubGFzdCA9IGluaXRpYWw7DQogIC8vIFNpbWlsYXJseSwgYSAnaGlzdG9yeVRvdWNoZWQnIHByb3BlcnR5IGlzIGFkZGVkIHRvIHRoZSBCUiBpbg0KICAvLyBmcm9udCBvZiBsaW5lcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHRvdWNoZWQsIGFuZCAnZmlyc3RUb3VjaGVkJw0KICAvLyBpcyB1c2VkIGZvciB0aGUgZmlyc3QgbGluZS4NCiAgdGhpcy5maXJzdFRvdWNoZWQgPSBmYWxzZTsNCiAgLy8gSGlzdG9yeSBpcyB0aGUgc2V0IG9mIGNvbW1pdHRlZCBjaGFuZ2VzLCB0b3VjaGVkIGlzIHRoZSBzZXQgb2YNCiAgLy8gbm9kZXMgdG91Y2hlZCBzaW5jZSB0aGUgbGFzdCBjb21taXQuDQogIHRoaXMuaGlzdG9yeSA9IFtdOyB0aGlzLnJlZG9IaXN0b3J5ID0gW107IHRoaXMudG91Y2hlZCA9IFtdOyB0aGlzLmxvc3R1bmRvID0gMDsNCn0NCg0KVW5kb0hpc3RvcnkucHJvdG90eXBlID0gew0KICAvLyBTY2hlZHVsZSBhIGNvbW1pdCAoaWYgbm8gb3RoZXIgdG91Y2hlcyBjb21lIGluIGZvciBjb21taXREZWxheQ0KICAvLyBtaWxsaXNlY29uZHMpLg0KICBzY2hlZHVsZUNvbW1pdDogZnVuY3Rpb24oKSB7DQogICAgdmFyIHNlbGYgPSB0aGlzOw0KICAgIHBhcmVudC5jbGVhclRpbWVvdXQodGhpcy5jb21taXRUaW1lb3V0KTsNCiAgICB0aGlzLmNvbW1pdFRpbWVvdXQgPSBwYXJlbnQuc2V0VGltZW91dChmdW5jdGlvbigpe3NlbGYudHJ5Q29tbWl0KCk7fSwgdGhpcy5jb21taXREZWxheSk7DQogIH0sDQoNCiAgLy8gTWFyayBhIG5vZGUgYXMgdG91Y2hlZC4gTnVsbCBpcyBhIHZhbGlkIGFyZ3VtZW50Lg0KICB0b3VjaDogZnVuY3Rpb24obm9kZSkgew0KICAgIHRoaXMuc2V0VG91Y2hlZChub2RlKTsNCiAgICB0aGlzLnNjaGVkdWxlQ29tbWl0KCk7DQogIH0sDQoNCiAgLy8gVW5kbyB0aGUgbGFzdCBjaGFuZ2UuDQogIHVuZG86IGZ1bmN0aW9uKCkgew0KICAgIC8vIE1ha2Ugc3VyZSBwZW5kaW5nIGNoYW5nZXMgaGF2ZSBiZWVuIGNvbW1pdHRlZC4NCiAgICB0aGlzLmNvbW1pdCgpOw0KDQogICAgaWYgKHRoaXMuaGlzdG9yeS5sZW5ndGgpIHsNCiAgICAgIC8vIFRha2UgdGhlIHRvcCBkaWZmIGZyb20gdGhlIGhpc3RvcnksIGFwcGx5IGl0LCBhbmQgc3RvcmUgaXRzDQogICAgICAvLyBzaGFkb3cgaW4gdGhlIHJlZG8gaGlzdG9yeS4NCiAgICAgIHZhciBpdGVtID0gdGhpcy5oaXN0b3J5LnBvcCgpOw0KICAgICAgdGhpcy5yZWRvSGlzdG9yeS5wdXNoKHRoaXMudXBkYXRlVG8oaXRlbSwgImFwcGx5Q2hhaW4iKSk7DQogICAgICB0aGlzLm5vdGlmeUVudmlyb25tZW50KCk7DQogICAgICByZXR1cm4gdGhpcy5jaGFpbk5vZGUoaXRlbSk7DQogICAgfQ0KICB9LA0KDQogIC8vIFJlZG8gdGhlIGxhc3QgdW5kb25lIGNoYW5nZS4NCiAgcmVkbzogZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jb21taXQoKTsNCiAgICBpZiAodGhpcy5yZWRvSGlzdG9yeS5sZW5ndGgpIHsNCiAgICAgIC8vIFRoZSBpbnZlcnNlIG9mIHVuZG8sIGJhc2ljYWxseS4NCiAgICAgIHZhciBpdGVtID0gdGhpcy5yZWRvSGlzdG9yeS5wb3AoKTsNCiAgICAgIHRoaXMuYWRkVW5kb0xldmVsKHRoaXMudXBkYXRlVG8oaXRlbSwgImFwcGx5Q2hhaW4iKSk7DQogICAgICB0aGlzLm5vdGlmeUVudmlyb25tZW50KCk7DQogICAgICByZXR1cm4gdGhpcy5jaGFpbk5vZGUoaXRlbSk7DQogICAgfQ0KICB9LA0KDQogIGNsZWFyOiBmdW5jdGlvbigpIHsNCiAgICB0aGlzLmhpc3RvcnkgPSBbXTsNCiAgICB0aGlzLnJlZG9IaXN0b3J5ID0gW107DQogICAgdGhpcy5sb3N0dW5kbyA9IDA7DQogIH0sDQoNCiAgLy8gQXNrIGZvciB0aGUgc2l6ZSBvZiB0aGUgdW4vcmVkbyBoaXN0b3JpZXMuDQogIGhpc3RvcnlTaXplOiBmdW5jdGlvbigpIHsNCiAgICByZXR1cm4ge3VuZG86IHRoaXMuaGlzdG9yeS5sZW5ndGgsIHJlZG86IHRoaXMucmVkb0hpc3RvcnkubGVuZ3RoLCBsb3N0dW5kbzogdGhpcy5sb3N0dW5kb307DQogIH0sDQoNCiAgLy8gUHVzaCBhIGNoYW5nZXNldCBpbnRvIHRoZSBkb2N1bWVudC4NCiAgcHVzaDogZnVuY3Rpb24oZnJvbSwgdG8sIGxpbmVzKSB7DQogICAgdmFyIGNoYWluID0gW107DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgICAgdmFyIGVuZCA9IChpID09IGxpbmVzLmxlbmd0aCAtIDEpID8gdG8gOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpOw0KICAgICAgY2hhaW4ucHVzaCh7ZnJvbTogZnJvbSwgdG86IGVuZCwgdGV4dDogY2xlYW5UZXh0KGxpbmVzW2ldKX0pOw0KICAgICAgZnJvbSA9IGVuZDsNCiAgICB9DQogICAgdGhpcy5wdXNoQ2hhaW5zKFtjaGFpbl0sIGZyb20gPT0gbnVsbCAmJiB0byA9PSBudWxsKTsNCiAgICB0aGlzLm5vdGlmeUVudmlyb25tZW50KCk7DQogIH0sDQoNCiAgcHVzaENoYWluczogZnVuY3Rpb24oY2hhaW5zLCBkb05vdEhpZ2hsaWdodCkgew0KICAgIHRoaXMuY29tbWl0KGRvTm90SGlnaGxpZ2h0KTsNCiAgICB0aGlzLmFkZFVuZG9MZXZlbCh0aGlzLnVwZGF0ZVRvKGNoYWlucywgImFwcGx5Q2hhaW4iKSk7DQogICAgdGhpcy5yZWRvSGlzdG9yeSA9IFtdOw0KICB9LA0KDQogIC8vIFJldHJpZXZlIGEgRE9NIG5vZGUgZnJvbSBhIGNoYWluIChmb3Igc2Nyb2xsaW5nIHRvIGl0IGFmdGVyIHVuZG8vcmVkbykuDQogIGNoYWluTm9kZTogZnVuY3Rpb24oY2hhaW5zKSB7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbnMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBzdGFydCA9IGNoYWluc1tpXVswXSwgbm9kZSA9IHN0YXJ0ICYmIChzdGFydC5mcm9tIHx8IHN0YXJ0LnRvKTsNCiAgICAgIGlmIChub2RlKSByZXR1cm4gbm9kZTsNCiAgICB9DQogIH0sDQoNCiAgLy8gQ2xlYXIgdGhlIHVuZG8gaGlzdG9yeSwgbWFrZSB0aGUgY3VycmVudCBkb2N1bWVudCB0aGUgc3RhcnQNCiAgLy8gcG9zaXRpb24uDQogIHJlc2V0OiBmdW5jdGlvbigpIHsNCiAgICB0aGlzLmhpc3RvcnkgPSBbXTsgdGhpcy5yZWRvSGlzdG9yeSA9IFtdOyB0aGlzLmxvc3R1bmRvID0gMDsNCiAgfSwNCg0KICB0ZXh0QWZ0ZXI6IGZ1bmN0aW9uKGJyKSB7DQogICAgcmV0dXJuIHRoaXMuYWZ0ZXIoYnIpLnRleHQ7DQogIH0sDQoNCiAgbm9kZUFmdGVyOiBmdW5jdGlvbihicikgew0KICAgIHJldHVybiB0aGlzLmFmdGVyKGJyKS50bzsNCiAgfSwNCg0KICBub2RlQmVmb3JlOiBmdW5jdGlvbihicikgew0KICAgIHJldHVybiB0aGlzLmJlZm9yZShicikuZnJvbTsNCiAgfSwNCg0KICAvLyBDb21taXQgdW5sZXNzIHRoZXJlIGFyZSBwZW5kaW5nIGRpcnR5IG5vZGVzLg0KICB0cnlDb21taXQ6IGZ1bmN0aW9uKCkgew0KICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cucGFyZW50IHx8ICF3aW5kb3cuVW5kb0hpc3RvcnkpIHJldHVybjsgLy8gU3RvcCB3aGVuIGZyYW1lIGhhcyBiZWVuIHVubG9hZGVkDQogICAgaWYgKHRoaXMuZWRpdG9yLmhpZ2hsaWdodERpcnR5KCkpIHRoaXMuY29tbWl0KHRydWUpOw0KICAgIGVsc2UgdGhpcy5zY2hlZHVsZUNvbW1pdCgpOw0KICB9LA0KDQogIC8vIENoZWNrIHdoZXRoZXIgdGhlIHRvdWNoZWQgbm9kZXMgaG9sZCBhbnkgY2hhbmdlcywgaWYgc28sIGNvbW1pdA0KICAvLyB0aGVtLg0KICBjb21taXQ6IGZ1bmN0aW9uKGRvTm90SGlnaGxpZ2h0KSB7DQogICAgcGFyZW50LmNsZWFyVGltZW91dCh0aGlzLmNvbW1pdFRpbWVvdXQpOw0KICAgIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gcGVuZGluZyBkaXJ0eSBub2Rlcy4NCiAgICBpZiAoIWRvTm90SGlnaGxpZ2h0KSB0aGlzLmVkaXRvci5oaWdobGlnaHREaXJ0eSh0cnVlKTsNCiAgICAvLyBCdWlsZCBzZXQgb2YgY2hhaW5zLg0KICAgIHZhciBjaGFpbnMgPSB0aGlzLnRvdWNoZWRDaGFpbnMoKSwgc2VsZiA9IHRoaXM7DQoNCiAgICBpZiAoY2hhaW5zLmxlbmd0aCkgew0KICAgICAgdGhpcy5hZGRVbmRvTGV2ZWwodGhpcy51cGRhdGVUbyhjaGFpbnMsICJsaW5rQ2hhaW4iKSk7DQogICAgICB0aGlzLnJlZG9IaXN0b3J5ID0gW107DQogICAgICB0aGlzLm5vdGlmeUVudmlyb25tZW50KCk7DQogICAgfQ0KICB9LA0KDQogIC8vIFsgZW5kIG9mIHB1YmxpYyBpbnRlcmZhY2UgXQ0KDQogIC8vIFVwZGF0ZSB0aGUgZG9jdW1lbnQgd2l0aCBhIGdpdmVuIHNldCBvZiBjaGFpbnMsIHJldHVybiBpdHMNCiAgLy8gc2hhZG93LiB1cGRhdGVGdW5jIHNob3VsZCBiZSAiYXBwbHlDaGFpbiIgb3IgImxpbmtDaGFpbiIuIEluIHRoZQ0KICAvLyBzZWNvbmQgY2FzZSwgdGhlIGNoYWlucyBhcmUgdGFrZW4gdG8gY29ycmVzcG9uZCB0aGUgdGhlIGN1cnJlbnQNCiAgLy8gZG9jdW1lbnQsIGFuZCBvbmx5IHRoZSBzdGF0ZSBvZiB0aGUgbGluZSBkYXRhIGlzIHVwZGF0ZWQuIEluIHRoZQ0KICAvLyBmaXJzdCBjYXNlLCB0aGUgY29udGVudCBvZiB0aGUgY2hhaW5zIGlzIGFsc28gcHVzaGVkIGlpbnRvIHRoZQ0KICAvLyBkb2N1bWVudC4NCiAgdXBkYXRlVG86IGZ1bmN0aW9uKGNoYWlucywgdXBkYXRlRnVuYykgew0KICAgIHZhciBzaGFkb3dzID0gW10sIGRpcnR5ID0gW107DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFpbnMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHNoYWRvd3MucHVzaCh0aGlzLnNoYWRvd0NoYWluKGNoYWluc1tpXSkpOw0KICAgICAgZGlydHkucHVzaCh0aGlzW3VwZGF0ZUZ1bmNdKGNoYWluc1tpXSkpOw0KICAgIH0NCiAgICBpZiAodXBkYXRlRnVuYyA9PSAiYXBwbHlDaGFpbiIpDQogICAgICB0aGlzLm5vdGlmeURpcnR5KGRpcnR5KTsNCiAgICByZXR1cm4gc2hhZG93czsNCiAgfSwNCg0KICAvLyBOb3RpZnkgdGhlIGVkaXRvciB0aGF0IHNvbWUgbm9kZXMgaGF2ZSBjaGFuZ2VkLg0KICBub3RpZnlEaXJ0eTogZnVuY3Rpb24obm9kZXMpIHsNCiAgICBmb3JFYWNoKG5vZGVzLCBtZXRob2QodGhpcy5lZGl0b3IsICJhZGREaXJ0eU5vZGUiKSkNCiAgICB0aGlzLmVkaXRvci5zY2hlZHVsZUhpZ2hsaWdodCgpOw0KICB9LA0KDQogIG5vdGlmeUVudmlyb25tZW50OiBmdW5jdGlvbigpIHsNCiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLmVkaXRvcik7DQogICAgLy8gVXNlZCBieSB0aGUgbGluZS13cmFwcGluZyBsaW5lLW51bWJlcmluZyBjb2RlLg0KICAgIGlmICh3aW5kb3cuZnJhbWVFbGVtZW50ICYmIHdpbmRvdy5mcmFtZUVsZW1lbnQuQ29kZU1pcnJvci51cGRhdGVOdW1iZXJzKQ0KICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5Db2RlTWlycm9yLnVwZGF0ZU51bWJlcnMoKTsNCiAgfSwNCg0KICAvLyBMaW5rIGEgY2hhaW4gaW50byB0aGUgRE9NIG5vZGVzIChvciB0aGUgZmlyc3QvbGFzdCBsaW5rcyBmb3IgbnVsbA0KICAvLyBub2RlcykuDQogIGxpbmtDaGFpbjogZnVuY3Rpb24oY2hhaW4pIHsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYWluLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbGluZSA9IGNoYWluW2ldOw0KICAgICAgaWYgKGxpbmUuZnJvbSkgbGluZS5mcm9tLmhpc3RvcnlBZnRlciA9IGxpbmU7DQogICAgICBlbHNlIHRoaXMuZmlyc3QgPSBsaW5lOw0KICAgICAgaWYgKGxpbmUudG8pIGxpbmUudG8uaGlzdG9yeUJlZm9yZSA9IGxpbmU7DQogICAgICBlbHNlIHRoaXMubGFzdCA9IGxpbmU7DQogICAgfQ0KICB9LA0KDQogIC8vIEdldCB0aGUgbGluZSBvYmplY3QgYWZ0ZXIvYmVmb3JlIGEgZ2l2ZW4gbm9kZS4NCiAgYWZ0ZXI6IGZ1bmN0aW9uKG5vZGUpIHsNCiAgICByZXR1cm4gbm9kZSA/IG5vZGUuaGlzdG9yeUFmdGVyIDogdGhpcy5maXJzdDsNCiAgfSwNCiAgYmVmb3JlOiBmdW5jdGlvbihub2RlKSB7DQogICAgcmV0dXJuIG5vZGUgPyBub2RlLmhpc3RvcnlCZWZvcmUgOiB0aGlzLmxhc3Q7DQogIH0sDQoNCiAgLy8gTWFyayBhIG5vZGUgYXMgdG91Y2hlZCBpZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBtYXJrZWQuDQogIHNldFRvdWNoZWQ6IGZ1bmN0aW9uKG5vZGUpIHsNCiAgICBpZiAobm9kZSkgew0KICAgICAgaWYgKCFub2RlLmhpc3RvcnlUb3VjaGVkKSB7DQogICAgICAgIHRoaXMudG91Y2hlZC5wdXNoKG5vZGUpOw0KICAgICAgICBub2RlLmhpc3RvcnlUb3VjaGVkID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgZWxzZSB7DQogICAgICB0aGlzLmZpcnN0VG91Y2hlZCA9IHRydWU7DQogICAgfQ0KICB9LA0KDQogIC8vIFN0b3JlIGEgbmV3IHNldCBvZiB1bmRvIGluZm8sIHRocm93IGF3YXkgaW5mbyBpZiB0aGVyZSBpcyBtb3JlIG9mDQogIC8vIGl0IHRoYW4gYWxsb3dlZC4NCiAgYWRkVW5kb0xldmVsOiBmdW5jdGlvbihkaWZmcykgew0KICAgIHRoaXMuaGlzdG9yeS5wdXNoKGRpZmZzKTsNCiAgICBpZiAodGhpcy5oaXN0b3J5Lmxlbmd0aCA+IHRoaXMubWF4RGVwdGgpIHsNCiAgICAgIHRoaXMuaGlzdG9yeS5zaGlmdCgpOw0KICAgICAgbG9zdHVuZG8gKz0gMTsNCiAgICB9DQogIH0sDQoNCiAgLy8gQnVpbGQgY2hhaW5zIGZyb20gYSBzZXQgb2YgdG91Y2hlZCBub2Rlcy4NCiAgdG91Y2hlZENoYWluczogZnVuY3Rpb24oKSB7DQogICAgdmFyIHNlbGYgPSB0aGlzOw0KDQogICAgLy8gVGhlIHRlbXAgc3lzdGVtIGlzIGEgY3J1bW15IGhhY2sgdG8gc3BlZWQgdXAgZGV0ZXJtaW5pbmcNCiAgICAvLyB3aGV0aGVyIGEgKGN1cnJlbnRseSB0b3VjaGVkKSBub2RlIGhhcyBhIGxpbmUgb2JqZWN0IGFzc29jaWF0ZWQNCiAgICAvLyB3aXRoIGl0LiBudWxsVGVtcCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBvYmplY3QgZm9yIHRoZSBmaXJzdA0KICAgIC8vIGxpbmUsIG90aGVyIG5vZGVzIGdldCBpdCBzdG9yZWQgaW4gdGhlaXIgaGlzdG9yeVRlbXAgcHJvcGVydHkuDQogICAgdmFyIG51bGxUZW1wID0gbnVsbDsNCiAgICBmdW5jdGlvbiB0ZW1wKG5vZGUpIHtyZXR1cm4gbm9kZSA/IG5vZGUuaGlzdG9yeVRlbXAgOiBudWxsVGVtcDt9DQogICAgZnVuY3Rpb24gc2V0VGVtcChub2RlLCBsaW5lKSB7DQogICAgICBpZiAobm9kZSkgbm9kZS5oaXN0b3J5VGVtcCA9IGxpbmU7DQogICAgICBlbHNlIG51bGxUZW1wID0gbGluZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBidWlsZExpbmUobm9kZSkgew0KICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgIGZvciAodmFyIGN1ciA9IG5vZGUgPyBub2RlLm5leHRTaWJsaW5nIDogc2VsZi5jb250YWluZXIuZmlyc3RDaGlsZDsNCiAgICAgICAgICAgY3VyICYmICghaXNCUihjdXIpIHx8IGN1ci5oYWNrQlIpOyBjdXIgPSBjdXIubmV4dFNpYmxpbmcpDQogICAgICAgIGlmICghY3VyLmhhY2tCUiAmJiBjdXIuY3VycmVudFRleHQpIHRleHQucHVzaChjdXIuY3VycmVudFRleHQpOw0KICAgICAgcmV0dXJuIHtmcm9tOiBub2RlLCB0bzogY3VyLCB0ZXh0OiBjbGVhblRleHQodGV4dC5qb2luKCIiKSl9Ow0KICAgIH0NCg0KICAgIC8vIEZpbHRlciBvdXQgdW5jaGFuZ2VkIGxpbmVzIGFuZCBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlDQogICAgLy8gZG9jdW1lbnQuIEJ1aWxkIHVwIGxpbmUgb2JqZWN0cyBmb3IgcmVtYWluaW5nIG5vZGVzLg0KICAgIHZhciBsaW5lcyA9IFtdOw0KICAgIGlmIChzZWxmLmZpcnN0VG91Y2hlZCkgc2VsZi50b3VjaGVkLnB1c2gobnVsbCk7DQogICAgZm9yRWFjaChzZWxmLnRvdWNoZWQsIGZ1bmN0aW9uKG5vZGUpIHsNCiAgICAgIGlmIChub2RlICYmIChub2RlLnBhcmVudE5vZGUgIT0gc2VsZi5jb250YWluZXIgfHwgbm9kZS5oYWNrQlIpKSByZXR1cm47DQoNCiAgICAgIGlmIChub2RlKSBub2RlLmhpc3RvcnlUb3VjaGVkID0gZmFsc2U7DQogICAgICBlbHNlIHNlbGYuZmlyc3RUb3VjaGVkID0gZmFsc2U7DQoNCiAgICAgIHZhciBsaW5lID0gYnVpbGRMaW5lKG5vZGUpLCBzaGFkb3cgPSBzZWxmLmFmdGVyKG5vZGUpOw0KICAgICAgaWYgKCFzaGFkb3cgfHwgc2hhZG93LnRleHQgIT0gbGluZS50ZXh0IHx8IHNoYWRvdy50byAhPSBsaW5lLnRvKSB7DQogICAgICAgIGxpbmVzLnB1c2gobGluZSk7DQogICAgICAgIHNldFRlbXAobm9kZSwgbGluZSk7DQogICAgICB9DQogICAgfSk7DQoNCiAgICAvLyBHZXQgdGhlIEJSIGVsZW1lbnQgYWZ0ZXIvYmVmb3JlIHRoZSBnaXZlbiBub2RlLg0KICAgIGZ1bmN0aW9uIG5leHRCUihub2RlLCBkaXIpIHsNCiAgICAgIHZhciBsaW5rID0gZGlyICsgIlNpYmxpbmciLCBzZWFyY2ggPSBub2RlW2xpbmtdOw0KICAgICAgd2hpbGUgKHNlYXJjaCAmJiAhaXNCUihzZWFyY2gpKQ0KICAgICAgICBzZWFyY2ggPSBzZWFyY2hbbGlua107DQogICAgICByZXR1cm4gc2VhcmNoOw0KICAgIH0NCg0KICAgIC8vIEFzc2VtYmxlIGxpbmUgb2JqZWN0cyBpbnRvIGNoYWlucyBieSBzY2FubmluZyB0aGUgRE9NIHRyZWUNCiAgICAvLyBhcm91bmQgdGhlbS4NCiAgICB2YXIgY2hhaW5zID0gW107IHNlbGYudG91Y2hlZCA9IFtdOw0KICAgIGZvckVhY2gobGluZXMsIGZ1bmN0aW9uKGxpbmUpIHsNCiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIG1ha2VzIHRoZSBsb29wIHNraXAgbGluZSBvYmplY3RzIHRoYXQgaGF2ZQ0KICAgICAgLy8gYmVlbiBwdWxsZWQgaW50byBjaGFpbnMgYnkgbGluZXMgYmVmb3JlIHRoZW0uDQogICAgICBpZiAoIXRlbXAobGluZS5mcm9tKSkgcmV0dXJuOw0KDQogICAgICB2YXIgY2hhaW4gPSBbXSwgY3VyTm9kZSA9IGxpbmUuZnJvbSwgc2FmZSA9IHRydWU7DQogICAgICAvLyBQdXQgYW55IGxpbmUgb2JqZWN0cyAocmVmZXJyZWQgdG8gYnkgdGVtcCBpbmZvKSBiZWZvcmUgdGhpcw0KICAgICAgLy8gb25lIG9uIHRoZSBmcm9udCBvZiB0aGUgYXJyYXkuDQogICAgICB3aGlsZSAodHJ1ZSkgew0KICAgICAgICB2YXIgY3VyTGluZSA9IHRlbXAoY3VyTm9kZSk7DQogICAgICAgIGlmICghY3VyTGluZSkgew0KICAgICAgICAgIGlmIChzYWZlKSBicmVhazsNCiAgICAgICAgICBlbHNlIGN1ckxpbmUgPSBidWlsZExpbmUoY3VyTm9kZSk7DQogICAgICAgIH0NCiAgICAgICAgY2hhaW4udW5zaGlmdChjdXJMaW5lKTsNCiAgICAgICAgc2V0VGVtcChjdXJOb2RlLCBudWxsKTsNCiAgICAgICAgaWYgKCFjdXJOb2RlKSBicmVhazsNCiAgICAgICAgc2FmZSA9IHNlbGYuYWZ0ZXIoY3VyTm9kZSk7DQogICAgICAgIGN1ck5vZGUgPSBuZXh0QlIoY3VyTm9kZSwgInByZXZpb3VzIik7DQogICAgICB9DQogICAgICBjdXJOb2RlID0gbGluZS50bzsgc2FmZSA9IHNlbGYuYmVmb3JlKGxpbmUuZnJvbSk7DQogICAgICAvLyBBZGQgbGluZXMgYWZ0ZXIgdGhpcyBvbmUgYXQgZW5kIG9mIGFycmF5Lg0KICAgICAgd2hpbGUgKHRydWUpIHsNCiAgICAgICAgaWYgKCFjdXJOb2RlKSBicmVhazsNCiAgICAgICAgdmFyIGN1ckxpbmUgPSB0ZW1wKGN1ck5vZGUpOw0KICAgICAgICBpZiAoIWN1ckxpbmUpIHsNCiAgICAgICAgICBpZiAoc2FmZSkgYnJlYWs7DQogICAgICAgICAgZWxzZSBjdXJMaW5lID0gYnVpbGRMaW5lKGN1ck5vZGUpOw0KICAgICAgICB9DQogICAgICAgIGNoYWluLnB1c2goY3VyTGluZSk7DQogICAgICAgIHNldFRlbXAoY3VyTm9kZSwgbnVsbCk7DQogICAgICAgIHNhZmUgPSBzZWxmLmJlZm9yZShjdXJOb2RlKTsNCiAgICAgICAgY3VyTm9kZSA9IG5leHRCUihjdXJOb2RlLCAibmV4dCIpOw0KICAgICAgfQ0KICAgICAgY2hhaW5zLnB1c2goY2hhaW4pOw0KICAgIH0pOw0KDQogICAgcmV0dXJuIGNoYWluczsNCiAgfSwNCg0KICAvLyBGaW5kIHRoZSAnc2hhZG93JyBvZiBhIGdpdmVuIGNoYWluIGJ5IGZvbGxvd2luZyB0aGUgbGlua3MgaW4gdGhlDQogIC8vIERPTSBub2RlcyBhdCBpdHMgc3RhcnQgYW5kIGVuZC4NCiAgc2hhZG93Q2hhaW46IGZ1bmN0aW9uKGNoYWluKSB7DQogICAgdmFyIHNoYWRvd3MgPSBbXSwgbmV4dCA9IHRoaXMuYWZ0ZXIoY2hhaW5bMF0uZnJvbSksIGVuZCA9IGNoYWluW2NoYWluLmxlbmd0aCAtIDFdLnRvOw0KICAgIHdoaWxlICh0cnVlKSB7DQogICAgICBzaGFkb3dzLnB1c2gobmV4dCk7DQogICAgICB2YXIgbmV4dE5vZGUgPSBuZXh0LnRvOw0KICAgICAgaWYgKCFuZXh0Tm9kZSB8fCBuZXh0Tm9kZSA9PSBlbmQpDQogICAgICAgIGJyZWFrOw0KICAgICAgZWxzZQ0KICAgICAgICBuZXh0ID0gbmV4dE5vZGUuaGlzdG9yeUFmdGVyIHx8IHRoaXMuYmVmb3JlKGVuZCk7DQogICAgICAvLyAoVGhlIHRoaXMuYmVmb3JlKGVuZCkgaXMgYSBoYWNrIC0tIEZGIHNvbWV0aW1lcyByZW1vdmVzDQogICAgICAvLyBwcm9wZXJ0aWVzIGZyb20gQlIgbm9kZXMsIGluIHdoaWNoIGNhc2UgdGhlIGJlc3Qgd2UgY2FuIGhvcGUNCiAgICAgIC8vIGZvciBpcyB0byBub3QgYnJlYWsuKQ0KICAgIH0NCiAgICByZXR1cm4gc2hhZG93czsNCiAgfSwNCg0KICAvLyBVcGRhdGUgdGhlIERPTSB0cmVlIHRvIGNvbnRhaW4gdGhlIGxpbmVzIHNwZWNpZmllZCBpbiBhIGdpdmVuDQogIC8vIGNoYWluLCBsaW5rIHRoaXMgY2hhaW4gaW50byB0aGUgRE9NIG5vZGVzLg0KICBhcHBseUNoYWluOiBmdW5jdGlvbihjaGFpbikgew0KICAgIC8vIFNvbWUgYXR0ZW1wdCBpcyBtYWRlIHRvIHByZXZlbnQgdGhlIGN1cnNvciBmcm9tIGp1bXBpbmcNCiAgICAvLyByYW5kb21seSB3aGVuIGFuIHVuZG8gb3IgcmVkbyBoYXBwZW5zLiBJdCBzdGlsbCBiZWhhdmVzIGEgYml0DQogICAgLy8gc3RyYW5nZSBzb21ldGltZXMuDQogICAgdmFyIGN1cnNvciA9IHNlbGVjdC5jdXJzb3JQb3ModGhpcy5jb250YWluZXIsIGZhbHNlKSwgc2VsZiA9IHRoaXM7DQoNCiAgICAvLyBSZW1vdmUgYWxsIG5vZGVzIGluIHRoZSBET00gdHJlZSBiZXR3ZWVuIGZyb20gYW5kIHRvIChudWxsIGZvcg0KICAgIC8vIHN0YXJ0L2VuZCBvZiBjb250YWluZXIpLg0KICAgIGZ1bmN0aW9uIHJlbW92ZVJhbmdlKGZyb20sIHRvKSB7DQogICAgICB2YXIgcG9zID0gZnJvbSA/IGZyb20ubmV4dFNpYmxpbmcgOiBzZWxmLmNvbnRhaW5lci5maXJzdENoaWxkOw0KICAgICAgd2hpbGUgKHBvcyAhPSB0bykgew0KICAgICAgICB2YXIgdGVtcCA9IHBvcy5uZXh0U2libGluZzsNCiAgICAgICAgcmVtb3ZlRWxlbWVudChwb3MpOw0KICAgICAgICBwb3MgPSB0ZW1wOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIHZhciBzdGFydCA9IGNoYWluWzBdLmZyb20sIGVuZCA9IGNoYWluW2NoYWluLmxlbmd0aCAtIDFdLnRvOw0KICAgIC8vIENsZWFyIHRoZSBzcGFjZSB3aGVyZSB0aGlzIGNoYW5nZSBoYXMgdG8gYmUgbWFkZS4NCiAgICByZW1vdmVSYW5nZShzdGFydCwgZW5kKTsNCg0KICAgIC8vIEluc2VydCB0aGUgY29udGVudCBzcGVjaWZpZWQgYnkgdGhlIGNoYWluIGludG8gdGhlIERPTSB0cmVlLg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhaW4ubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBsaW5lID0gY2hhaW5baV07DQogICAgICAvLyBUaGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3BhY2UgYXJlIGFscmVhZHkgY29ycmVjdCwgYnV0IEJSDQogICAgICAvLyB0YWdzIGluc2lkZSBpdCBoYXZlIHRvIGJlIHB1dCBiYWNrLg0KICAgICAgaWYgKGkgPiAwKQ0KICAgICAgICBzZWxmLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUobGluZS5mcm9tLCBlbmQpOw0KDQogICAgICAvLyBBZGQgdGhlIHRleHQuDQogICAgICB2YXIgbm9kZSA9IG1ha2VQYXJ0U3BhbihmaXhTcGFjZXMobGluZS50ZXh0KSk7DQogICAgICBzZWxmLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUobm9kZSwgZW5kKTsNCiAgICAgIC8vIFNlZSBpZiB0aGUgY3Vyc29yIHdhcyBvbiB0aGlzIGxpbmUuIFB1dCBpdCBiYWNrLCBhZGp1c3RpbmcNCiAgICAgIC8vIGZvciBjaGFuZ2VkIGxpbmUgbGVuZ3RoLCBpZiBpdCB3YXMuDQogICAgICBpZiAoY3Vyc29yICYmIGN1cnNvci5ub2RlID09IGxpbmUuZnJvbSkgew0KICAgICAgICB2YXIgY3Vyc29yZGlmZiA9IDA7DQogICAgICAgIHZhciBwcmV2ID0gdGhpcy5hZnRlcihsaW5lLmZyb20pOw0KICAgICAgICBpZiAocHJldiAmJiBpID09IGNoYWluLmxlbmd0aCAtIDEpIHsNCiAgICAgICAgICAvLyBPbmx5IGFkanVzdCBpZiB0aGUgY3Vyc29yIGlzIGFmdGVyIHRoZSB1bmNoYW5nZWQgcGFydCBvZg0KICAgICAgICAgIC8vIHRoZSBsaW5lLg0KICAgICAgICAgIGZvciAodmFyIG1hdGNoID0gMDsgbWF0Y2ggPCBjdXJzb3Iub2Zmc2V0ICYmDQogICAgICAgICAgICAgICBsaW5lLnRleHQuY2hhckF0KG1hdGNoKSA9PSBwcmV2LnRleHQuY2hhckF0KG1hdGNoKTsgbWF0Y2grKyl7fQ0KICAgICAgICAgIGlmIChjdXJzb3Iub2Zmc2V0ID4gbWF0Y2gpDQogICAgICAgICAgICBjdXJzb3JkaWZmID0gbGluZS50ZXh0Lmxlbmd0aCAtIHByZXYudGV4dC5sZW5ndGg7DQogICAgICAgIH0NCiAgICAgICAgc2VsZWN0LnNldEN1cnNvclBvcyh0aGlzLmNvbnRhaW5lciwge25vZGU6IGxpbmUuZnJvbSwgb2Zmc2V0OiBNYXRoLm1heCgwLCBjdXJzb3Iub2Zmc2V0ICsgY3Vyc29yZGlmZil9KTsNCiAgICAgIH0NCiAgICAgIC8vIEN1cnNvciB3YXMgaW4gcmVtb3ZlZCBsaW5lLCB0aGlzIGlzIGxhc3QgbmV3IGxpbmUuDQogICAgICBlbHNlIGlmIChjdXJzb3IgJiYgKGkgPT0gY2hhaW4ubGVuZ3RoIC0gMSkgJiYgY3Vyc29yLm5vZGUgJiYgY3Vyc29yLm5vZGUucGFyZW50Tm9kZSAhPSB0aGlzLmNvbnRhaW5lcikgew0KICAgICAgICBzZWxlY3Quc2V0Q3Vyc29yUG9zKHRoaXMuY29udGFpbmVyLCB7bm9kZTogbGluZS5mcm9tLCBvZmZzZXQ6IGxpbmUudGV4dC5sZW5ndGh9KTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBBbmNob3IgdGhlIGNoYWluIGluIHRoZSBET00gdHJlZS4NCiAgICB0aGlzLmxpbmtDaGFpbihjaGFpbik7DQogICAgcmV0dXJuIHN0YXJ0Ow0KICB9DQp9Ow0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/unittests.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBUZXN0IEhhcm5lc3MgZm9yIENvZGVNaXJyb3INCiAqIEpTLXVuaXQgY29tcGF0aWJsZSB0ZXN0cyBoZXJlLiAgVGhlIHR3byBhdmFpbGFibGUgYXNzZXJ0aW9ucyBhcmUNCiAqIGFzc2VydEVxdWFscyAoc3RyaWN0IGVxdWFsaXR5KSBhbmQgYXNzZXJ0RXF1aXZhbGVudCAobG9vc2VyIGVxdWl2YWxlbmN5KS4NCiAqDQogKiAnZWRpdG9yJyBpcyBhIGdsb2JhbCBvYmplY3QgZm9yIHRoZSBDb2RlTWlycm9yIGVkaXRvciBzaGFyZWQgYmV0d2VlbiBhbGwNCiAqIHRlc3RzLiAgQWZ0ZXIgbWFuaXB1bGF0aW5nIGl0IGluIGVhY2ggdGVzdCwgdHJ5IHRvIHJlc3RvcmUgaXQgdG8NCiAqIGFwcHJveGltYXRlbHkgaXRzIG9yaWdpbmFsIHN0YXRlLg0KICovDQoNCmZ1bmN0aW9uIHRlc3RTZXRHZXQoKSB7DQogIHZhciBjb2RlID0gJ0l0IHdhcyB0aGUgYmVzdCBvZiB0aW1lcy5cbkl0IHdhcyB0aGUgd29yc3Qgb2YgdGltZXMuJzsNCiAgZWRpdG9yLnNldENvZGUoY29kZSk7DQogIGFzc2VydEVxdWFscyhjb2RlLCBlZGl0b3IuZ2V0Q29kZSgpKTsNCiAgZWRpdG9yLnNldENvZGUoJycpOw0KICBhc3NlcnRFcXVhbHMoJycsIGVkaXRvci5nZXRDb2RlKCkpOw0KfQ0KDQpmdW5jdGlvbiB0ZXN0U2V0U3R5bGVzaGVldCgpIHsNCiAgZnVuY3Rpb24gY3NzU3RhdHVzKCkgew0KICAgIC8vIFJldHVybnMgYSBsaXN0IG9mIHR1cGxlcywgZm9yIGVhY2ggQ1NTIGxpbmsgcmV0dXJuIHRoZSBmaWxlbmFtZSBhbmQNCiAgICAvLyB3aGV0aGVyIGl0IGlzIGVuYWJsZWQuDQogICAgbGlua3MgPSBlZGl0b3Iud2luLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaW5rJyk7DQogICAgY3NzID0gW107DQogICAgZm9yICh2YXIgeCA9IDAsIGxpbms7IGxpbmsgPSBsaW5rc1t4XTsgeCsrKSB7DQogICAgICBpZiAobGluay5yZWwuaW5kZXhPZigic3R5bGVzaGVldCIpICE9PSAtMSkgew0KICAgICAgICBjc3MucHVzaChbbGluay5ocmVmLnN1YnN0cmluZyhsaW5rLmhyZWYubGFzdEluZGV4T2YoJy8nKSArIDEpLA0KICAgICAgICAgICAgICAgICAhbGluay5kaXNhYmxlZF0pDQogICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjc3M7DQogIH0NCiAgYXNzZXJ0RXF1aXZhbGVudChbXSwgY3NzU3RhdHVzKCkpOw0KICBlZGl0b3Iuc2V0U3R5bGVzaGVldCgnY3NzL2pzY29sb3JzLmNzcycpOw0KICBhc3NlcnRFcXVpdmFsZW50KFtbJ2pzY29sb3JzLmNzcycsIHRydWVdXSwgY3NzU3RhdHVzKCkpOw0KICBlZGl0b3Iuc2V0U3R5bGVzaGVldChbJ2Nzcy9jc3Njb2xvcnMuY3NzJywgJ2Nzcy94bWxjb2xvcnMuY3NzJ10pOw0KICBhc3NlcnRFcXVpdmFsZW50KFtbJ2pzY29sb3JzLmNzcycsIGZhbHNlXSwgWydjc3Njb2xvcnMuY3NzJywgdHJ1ZV0sIFsneG1sY29sb3JzLmNzcycsIHRydWVdXSwgY3NzU3RhdHVzKCkpOw0KICBlZGl0b3Iuc2V0U3R5bGVzaGVldChbXSk7DQogIGFzc2VydEVxdWl2YWxlbnQoW1snanNjb2xvcnMuY3NzJywgZmFsc2VdLCBbJ2Nzc2NvbG9ycy5jc3MnLCBmYWxzZV0sIFsneG1sY29sb3JzLmNzcycsIGZhbHNlXV0sIGNzc1N0YXR1cygpKTsNCn0NCg0KLy8gVXBkYXRlIHRoaXMgbGlzdCBvZiB0ZXN0cyBhcyBuZXcgb25lcyBhcmUgYWRkZWQuDQp2YXIgdGVzdHMgPSBbJ3Rlc3RTZXRHZXQnLCAndGVzdFNldFN0eWxlc2hlZXQnXTsNCg0K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/js/util.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQSBmZXcgdXNlZnVsIHV0aWxpdHkgZnVuY3Rpb25zLiAqLw0KDQovLyBDYXB0dXJlIGEgbWV0aG9kIG9uIGFuIG9iamVjdC4NCmZ1bmN0aW9uIG1ldGhvZChvYmosIG5hbWUpIHsNCiAgcmV0dXJuIGZ1bmN0aW9uKCkge29ialtuYW1lXS5hcHBseShvYmosIGFyZ3VtZW50cyk7fTsNCn0NCg0KLy8gVGhlIHZhbHVlIHVzZWQgdG8gc2lnbmFsIHRoZSBlbmQgb2YgYSBzZXF1ZW5jZSBpbiBpdGVyYXRvcnMuDQp2YXIgU3RvcEl0ZXJhdGlvbiA9IHt0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJTdG9wSXRlcmF0aW9uIn19Ow0KDQovLyBBcHBseSBhIGZ1bmN0aW9uIHRvIGVhY2ggZWxlbWVudCBpbiBhIHNlcXVlbmNlLg0KZnVuY3Rpb24gZm9yRWFjaChpdGVyLCBmKSB7DQogIGlmIChpdGVyLm5leHQpIHsNCiAgICB0cnkge3doaWxlICh0cnVlKSBmKGl0ZXIubmV4dCgpKTt9DQogICAgY2F0Y2ggKGUpIHtpZiAoZSAhPSBTdG9wSXRlcmF0aW9uKSB0aHJvdyBlO30NCiAgfQ0KICBlbHNlIHsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXIubGVuZ3RoOyBpKyspDQogICAgICBmKGl0ZXJbaV0pOw0KICB9DQp9DQoNCi8vIE1hcCBhIGZ1bmN0aW9uIG92ZXIgYSBzZXF1ZW5jZSwgcHJvZHVjaW5nIGFuIGFycmF5IG9mIHJlc3VsdHMuDQpmdW5jdGlvbiBtYXAoaXRlciwgZikgew0KICB2YXIgYWNjdW0gPSBbXTsNCiAgZm9yRWFjaChpdGVyLCBmdW5jdGlvbih2YWwpIHthY2N1bS5wdXNoKGYodmFsKSk7fSk7DQogIHJldHVybiBhY2N1bTsNCn0NCg0KLy8gQ3JlYXRlIGEgcHJlZGljYXRlIGZ1bmN0aW9uIHRoYXQgdGVzdHMgYSBzdHJpbmcgYWdhaW5zdHMgYSBnaXZlbg0KLy8gcmVndWxhciBleHByZXNzaW9uLiBObyBsb25nZXIgdXNlZCBidXQgbWlnaHQgYmUgdXNlZCBieSAzcmQgcGFydHkNCi8vIHBhcnNlcnMuDQpmdW5jdGlvbiBtYXRjaGVyKHJlZ2V4cCl7DQogIHJldHVybiBmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHJlZ2V4cC50ZXN0KHZhbHVlKTt9Ow0KfQ0KDQovLyBUZXN0IHdoZXRoZXIgYSBET00gbm9kZSBoYXMgYSBjZXJ0YWluIENTUyBjbGFzcy4NCmZ1bmN0aW9uIGhhc0NsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkgew0KICB2YXIgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NOYW1lOw0KICByZXR1cm4gY2xhc3NlcyAmJiBuZXcgUmVnRXhwKCIoXnwgKSIgKyBjbGFzc05hbWUgKyAiKCR8ICkiKS50ZXN0KGNsYXNzZXMpOw0KfQ0KZnVuY3Rpb24gcmVtb3ZlQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7DQogIGVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudC5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIgIiArIGNsYXNzTmFtZSArICJcXGIiLCAiZyIpLCAiIik7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQovLyBJbnNlcnQgYSBET00gbm9kZSBhZnRlciBhbm90aGVyIG5vZGUuDQpmdW5jdGlvbiBpbnNlcnRBZnRlcihuZXdOb2RlLCBvbGROb2RlKSB7DQogIHZhciBwYXJlbnQgPSBvbGROb2RlLnBhcmVudE5vZGU7DQogIHBhcmVudC5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgb2xkTm9kZS5uZXh0U2libGluZyk7DQogIHJldHVybiBuZXdOb2RlOw0KfQ0KDQpmdW5jdGlvbiByZW1vdmVFbGVtZW50KG5vZGUpIHsNCiAgaWYgKG5vZGUucGFyZW50Tm9kZSkNCiAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7DQp9DQoNCmZ1bmN0aW9uIGNsZWFyRWxlbWVudChub2RlKSB7DQogIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpDQogICAgbm9kZS5yZW1vdmVDaGlsZChub2RlLmZpcnN0Q2hpbGQpOw0KfQ0KDQovLyBDaGVjayB3aGV0aGVyIGEgbm9kZSBpcyBjb250YWluZWQgaW4gYW5vdGhlciBvbmUuDQpmdW5jdGlvbiBpc0FuY2VzdG9yKG5vZGUsIGNoaWxkKSB7DQogIHdoaWxlIChjaGlsZCA9IGNoaWxkLnBhcmVudE5vZGUpIHsNCiAgICBpZiAobm9kZSA9PSBjaGlsZCkNCiAgICAgIHJldHVybiB0cnVlOw0KICB9DQogIHJldHVybiBmYWxzZTsNCn0NCg0KLy8gVGhlIG5vbi1icmVha2luZyBzcGFjZSBjaGFyYWN0ZXIuDQp2YXIgbmJzcCA9ICJcdTAwYTAiOw0KdmFyIG1hdGNoaW5nID0geyJ7IjogIn0iLCAiWyI6ICJdIiwgIigiOiAiKSIsDQogICAgICAgICAgICAgICAgIn0iOiAieyIsICJdIjogIlsiLCAiKSI6ICIoIn07DQoNCi8vIFN0YW5kYXJkaXplIGEgZmV3IHVucG9ydGFibGUgZXZlbnQgcHJvcGVydGllcy4NCmZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50KGV2ZW50KSB7DQogIGlmICghZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7DQogICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uID0gZnVuY3Rpb24oKSB7dGhpcy5jYW5jZWxCdWJibGUgPSB0cnVlO307DQogICAgZXZlbnQucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbigpIHt0aGlzLnJldHVyblZhbHVlID0gZmFsc2U7fTsNCiAgfQ0KICBpZiAoIWV2ZW50LnN0b3ApIHsNCiAgICBldmVudC5zdG9wID0gZnVuY3Rpb24oKSB7DQogICAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbigpOw0KICAgICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgpOw0KICAgIH07DQogIH0NCg0KICBpZiAoZXZlbnQudHlwZSA9PSAia2V5cHJlc3MiKSB7DQogICAgZXZlbnQuY29kZSA9IChldmVudC5jaGFyQ29kZSA9PSBudWxsKSA/IGV2ZW50LmtleUNvZGUgOiBldmVudC5jaGFyQ29kZTsNCiAgICBldmVudC5jaGFyYWN0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNvZGUpOw0KICB9DQogIHJldHVybiBldmVudDsNCn0NCg0KLy8gUG9ydGFibHkgcmVnaXN0ZXIgZXZlbnQgaGFuZGxlcnMuDQpmdW5jdGlvbiBhZGRFdmVudEhhbmRsZXIobm9kZSwgdHlwZSwgaGFuZGxlciwgcmVtb3ZlRnVuYykgew0KICBmdW5jdGlvbiB3cmFwSGFuZGxlcihldmVudCkgew0KICAgIGhhbmRsZXIobm9ybWFsaXplRXZlbnQoZXZlbnQgfHwgd2luZG93LmV2ZW50KSk7DQogIH0NCiAgaWYgKHR5cGVvZiBub2RlLmFkZEV2ZW50TGlzdGVuZXIgPT0gImZ1bmN0aW9uIikgew0KICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCB3cmFwSGFuZGxlciwgZmFsc2UpOw0KICAgIGlmIChyZW1vdmVGdW5jKSByZXR1cm4gZnVuY3Rpb24oKSB7bm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIHdyYXBIYW5kbGVyLCBmYWxzZSk7fTsNCiAgfQ0KICBlbHNlIHsNCiAgICBub2RlLmF0dGFjaEV2ZW50KCJvbiIgKyB0eXBlLCB3cmFwSGFuZGxlcik7DQogICAgaWYgKHJlbW92ZUZ1bmMpIHJldHVybiBmdW5jdGlvbigpIHtub2RlLmRldGFjaEV2ZW50KCJvbiIgKyB0eXBlLCB3cmFwSGFuZGxlcik7fTsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBub2RlVGV4dChub2RlKSB7DQogIHJldHVybiBub2RlLnRleHRDb250ZW50IHx8IG5vZGUuaW5uZXJUZXh0IHx8IG5vZGUubm9kZVZhbHVlIHx8ICIiOw0KfQ0KDQpmdW5jdGlvbiBub2RlVG9wKG5vZGUpIHsNCiAgdmFyIHRvcCA9IDA7DQogIHdoaWxlIChub2RlLm9mZnNldFBhcmVudCkgew0KICAgIHRvcCArPSBub2RlLm9mZnNldFRvcDsNCiAgICBub2RlID0gbm9kZS5vZmZzZXRQYXJlbnQ7DQogIH0NCiAgcmV0dXJuIHRvcDsNCn0NCg0KZnVuY3Rpb24gaXNCUihub2RlKSB7DQogIHZhciBubiA9IG5vZGUubm9kZU5hbWU7DQogIHJldHVybiBubiA9PSAiQlIiIHx8IG5uID09ICJiciI7DQp9DQpmdW5jdGlvbiBpc1NwYW4obm9kZSkgew0KICB2YXIgbm4gPSBub2RlLm5vZGVOYW1lOw0KICByZXR1cm4gbm4gPT0gIlNQQU4iIHx8IG5uID09ICJzcGFuIjsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/lib/codemirror.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LkNvZGVNaXJyb3Igew0KICBsaW5lLWhlaWdodDogMWVtOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KfQ0KDQouQ29kZU1pcnJvci1zY3JvbGwgew0KICBvdmVyZmxvdzogYXV0bzsNCiAgaGVpZ2h0OiBhdXRvLyozMDBweCovOw0KICAvKiBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IGFuIElFWzY3XSBidWcgd2hlcmUgdGhlIHNjcm9sbGVkIGNvbnRlbnQNCiAgICAgaXMgdmlzaWJsZSBvdXRzaWRlIG9mIHRoZSBzY3JvbGxpbmcgYm94LiAqLw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQoNCi5Db2RlTWlycm9yLWd1dHRlciB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3Ow0KICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWVlOw0KICBtaW4td2lkdGg6IDJlbTsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KLkNvZGVNaXJyb3ItZ3V0dGVyLXRleHQgew0KICBjb2xvcjogI2FhYTsNCiAgdGV4dC1hbGlnbjogcmlnaHQ7DQogIHBhZGRpbmc6IC40ZW0gLjJlbSAuNGVtIC40ZW07DQp9DQouQ29kZU1pcnJvci1saW5lcyB7DQogIHBhZGRpbmc6IC40ZW07DQp9DQoNCi5Db2RlTWlycm9yIHByZSB7DQogIC1tb3otYm9yZGVyLXJhZGl1czogMDsNCiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOw0KICAtby1ib3JkZXItcmFkaXVzOiAwOw0KICBib3JkZXItcmFkaXVzOiAwOw0KICBib3JkZXItd2lkdGg6IDA7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogIGZvbnQtZmFtaWx5OiBpbmhlcml0Ow0KICBmb250LXNpemU6IGluaGVyaXQ7DQogIHBhZGRpbmc6IDA7IG1hcmdpbjogMDsNCiAgd2hpdGUtc3BhY2U6IHByZTsNCiAgd29yZC13cmFwOiBub3JtYWw7DQp9DQoNCi5Db2RlTWlycm9yIHRleHRhcmVhIHsNCiAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDsNCiAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7DQp9DQoNCi5Db2RlTWlycm9yLWN1cnNvciB7DQogIHotaW5kZXg6IDEwOw0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50Ow0KfQ0KLkNvZGVNaXJyb3ItZm9jdXNlZCAuQ29kZU1pcnJvci1jdXJzb3Igew0KICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KfQ0KDQpzcGFuLkNvZGVNaXJyb3Itc2VsZWN0ZWQgew0KICBiYWNrZ3JvdW5kOiAjY2NjICFpbXBvcnRhbnQ7DQogIGNvbG9yOiBIaWdobGlnaHRUZXh0ICFpbXBvcnRhbnQ7DQp9DQouQ29kZU1pcnJvci1mb2N1c2VkIHNwYW4uQ29kZU1pcnJvci1zZWxlY3RlZCB7DQogIGJhY2tncm91bmQ6IEhpZ2hsaWdodCAhaW1wb3J0YW50Ow0KfQ0KDQouQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXQge2NvbG9yOiAjMGYwICFpbXBvcnRhbnQ7fQ0KLkNvZGVNaXJyb3Itbm9ubWF0Y2hpbmdicmFja2V0IHtjb2xvcjogI2YyMiAhaW1wb3J0YW50O30NCg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/lib/codemirror.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQWxsIGZ1bmN0aW9ucyB0aGF0IG5lZWQgYWNjZXNzIHRvIHRoZSBlZGl0b3IncyBzdGF0ZSBsaXZlIGluc2lkZQovLyB0aGUgQ29kZU1pcnJvciBmdW5jdGlvbi4gQmVsb3cgdGhhdCwgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZSwKLy8gc29tZSB1dGlsaXRpZXMgYXJlIGRlZmluZWQuCgovLyBDb2RlTWlycm9yIGlzIHRoZSBvbmx5IGdsb2JhbCB2YXIgd2UgY2xhaW0KdmFyIENvZGVNaXJyb3IgPSAoZnVuY3Rpb24oKSB7CiAgLy8gVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBlZGl0b3IgaW5zdGFuY2UuIEl0J3MKICAvLyBjbG9zdXJlIGlzIHVzZWQgdG8gc3RvcmUgdGhlIGVkaXRvciBzdGF0ZS4KICBmdW5jdGlvbiBDb2RlTWlycm9yKHBsYWNlLCBnaXZlbk9wdGlvbnMpIHsKICAgIC8vIERldGVybWluZSBlZmZlY3RpdmUgb3B0aW9ucyBiYXNlZCBvbiBnaXZlbiB2YWx1ZXMgYW5kIGRlZmF1bHRzLgogICAgdmFyIG9wdGlvbnMgPSB7fSwgZGVmYXVsdHMgPSBDb2RlTWlycm9yLmRlZmF1bHRzOwogICAgZm9yICh2YXIgb3B0IGluIGRlZmF1bHRzKQogICAgICBpZiAoZGVmYXVsdHMuaGFzT3duUHJvcGVydHkob3B0KSkKICAgICAgICBvcHRpb25zW29wdF0gPSAoZ2l2ZW5PcHRpb25zICYmIGdpdmVuT3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShvcHQpID8gZ2l2ZW5PcHRpb25zIDogZGVmYXVsdHMpW29wdF07CgogICAgdmFyIHRhcmdldERvY3VtZW50ID0gb3B0aW9uc1siZG9jdW1lbnQiXTsKICAgIC8vIFRoZSBlbGVtZW50IGluIHdoaWNoIHRoZSBlZGl0b3IgbGl2ZXMuCiAgICB2YXIgd3JhcHBlciA9IHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgd3JhcHBlci5jbGFzc05hbWUgPSAiQ29kZU1pcnJvciI7CiAgICAvLyBUaGlzIG1lc3MgY3JlYXRlcyB0aGUgYmFzZSBET00gc3RydWN0dXJlIGZvciB0aGUgZWRpdG9yLgogICAgd3JhcHBlci5pbm5lckhUTUwgPQogICAgICAnPGRpdiBzdHlsZT0ib3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDBweDsiPicgKyAvLyBXcmFwcyBhbmQgaGlkZXMgaW5wdXQgdGV4dGFyZWEKICAgICAgICAnPHRleHRhcmVhIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAycHg7IiB3cmFwPSJvZmYiPjwvdGV4dGFyZWE+PC9kaXY+JyArCiAgICAgICc8ZGl2IGNsYXNzPSJDb2RlTWlycm9yLXNjcm9sbCBjbS1zLScgKyBvcHRpb25zLnRoZW1lICsgJyI+JyArCiAgICAgICAgJzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+JyArIC8vIFNldCB0byB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXh0LCBjYXVzZXMgc2Nyb2xsaW5nCiAgICAgICAgICAnPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBoZWlnaHQ6IDA7IHdpZHRoOiAwOyBvdmVyZmxvdzogaGlkZGVuOyI+PC9kaXY+JyArCiAgICAgICAgICAnPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4nICsgLy8gTW92ZWQgYXJvdW5kIGl0cyBwYXJlbnQgdG8gY292ZXIgdmlzaWJsZSB2aWV3CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJDb2RlTWlycm9yLWd1dHRlciI+PGRpdiBjbGFzcz0iQ29kZU1pcnJvci1ndXR0ZXItdGV4dCI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgIC8vIFByb3ZpZGVzIHBvc2l0aW9uaW5nIHJlbGF0aXZlIHRvICh2aXNpYmxlKSB0ZXh0IG9yaWdpbgogICAgICAgICAgICAnPGRpdiBjbGFzcz0iQ29kZU1pcnJvci1saW5lcyI+PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4nICsKICAgICAgICAgICAgICAnPHByZSBjbGFzcz0iQ29kZU1pcnJvci1jdXJzb3IiPiYjMTYwOzwvcHJlPicgKyAvLyBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQgYmxpbmt5IGN1cnNvcgogICAgICAgICAgICAgICc8ZGl2PjwvZGl2PicgKyAvLyBUaGlzIERJViBjb250YWlucyB0aGUgYWN0dWFsIGNvZGUKICAgICAgICAgICAgJzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pic7CiAgICBpZiAocGxhY2UuYXBwZW5kQ2hpbGQpIHBsYWNlLmFwcGVuZENoaWxkKHdyYXBwZXIpOyBlbHNlIHBsYWNlKHdyYXBwZXIpOwogICAgLy8gSSd2ZSBuZXZlciBzZWVuIG1vcmUgZWxlZ2FudCBjb2RlIGluIG15IGxpZmUuCiAgICB2YXIgaW5wdXREaXYgPSB3cmFwcGVyLmZpcnN0Q2hpbGQsIGlucHV0ID0gaW5wdXREaXYuZmlyc3RDaGlsZCwKICAgICAgICBzY3JvbGxlciA9IHdyYXBwZXIubGFzdENoaWxkLCBjb2RlID0gc2Nyb2xsZXIuZmlyc3RDaGlsZCwKICAgICAgICBtZWFzdXJlID0gY29kZS5maXJzdENoaWxkLCBtb3ZlciA9IG1lYXN1cmUubmV4dFNpYmxpbmcsCiAgICAgICAgZ3V0dGVyID0gbW92ZXIuZmlyc3RDaGlsZCwgZ3V0dGVyVGV4dCA9IGd1dHRlci5maXJzdENoaWxkLAogICAgICAgIGxpbmVTcGFjZSA9IGd1dHRlci5uZXh0U2libGluZy5maXJzdENoaWxkLAogICAgICAgIGN1cnNvciA9IGxpbmVTcGFjZS5maXJzdENoaWxkLCBsaW5lRGl2ID0gY3Vyc29yLm5leHRTaWJsaW5nOwogICAgaWYgKG9wdGlvbnMudGFiaW5kZXggIT0gbnVsbCkgaW5wdXQudGFiaW5kZXggPSBvcHRpb25zLnRhYmluZGV4OwogICAgaWYgKCFvcHRpb25zLmd1dHRlciAmJiAhb3B0aW9ucy5saW5lTnVtYmVycykgZ3V0dGVyLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgogICAgLy8gRGVsYXllZCBvYmplY3Qgd3JhcCB0aW1lb3V0cywgbWFraW5nIHN1cmUgb25seSBvbmUgaXMgYWN0aXZlLiBibGlua2VyIGhvbGRzIGFuIGludGVydmFsLgogICAgdmFyIHBvbGwgPSBuZXcgRGVsYXllZCgpLCBoaWdobGlnaHQgPSBuZXcgRGVsYXllZCgpLCBibGlua2VyOwoKICAgIC8vIG1vZGUgaG9sZHMgYSBtb2RlIEFQSSBvYmplY3QuIGxpbmVzIGFuIGFycmF5IG9mIExpbmUgb2JqZWN0cwogICAgLy8gKHNlZSBMaW5lIGNvbnN0cnVjdG9yKSwgd29yayBhbiBhcnJheSBvZiBsaW5lcyB0aGF0IHNob3VsZCBiZQogICAgLy8gcGFyc2VkLCBhbmQgaGlzdG9yeSB0aGUgdW5kbyBoaXN0b3J5IChpbnN0YW5jZSBvZiBIaXN0b3J5CiAgICAvLyBjb25zdHJ1Y3RvcikuCiAgICB2YXIgbW9kZSwgbGluZXMgPSBbbmV3IExpbmUoIiIpXSwgd29yaywgaGlzdG9yeSA9IG5ldyBIaXN0b3J5KCksIGZvY3VzZWQ7CiAgICBsb2FkTW9kZSgpOwogICAgLy8gVGhlIHNlbGVjdGlvbi4gVGhlc2UgYXJlIGFsd2F5cyBtYWludGFpbmVkIHRvIHBvaW50IGF0IHZhbGlkCiAgICAvLyBwb3NpdGlvbnMuIEludmVydGVkIGlzIHVzZWQgdG8gcmVtZW1iZXIgdGhhdCB0aGUgdXNlciBpcwogICAgLy8gc2VsZWN0aW5nIGJvdHRvbS10by10b3AuCiAgICB2YXIgc2VsID0ge2Zyb206IHtsaW5lOiAwLCBjaDogMH0sIHRvOiB7bGluZTogMCwgY2g6IDB9LCBpbnZlcnRlZDogZmFsc2V9OwogICAgLy8gU2VsZWN0aW9uLXJlbGF0ZWQgZmxhZ3MuIHNoaWZ0U2VsZWN0aW5nIG9idmlvdXNseSB0cmFja3MKICAgIC8vIHdoZXRoZXIgdGhlIHVzZXIgaXMgaG9sZGluZyBzaGlmdC4gcmVkdWNlZFNlbGVjdGlvbiBpcyBhIGhhY2sKICAgIC8vIHRvIGdldCBhcm91bmQgdGhlIGZhY3QgdGhhdCB3ZSBjYW4ndCBjcmVhdGUgaW52ZXJ0ZWQKICAgIC8vIHNlbGVjdGlvbnMuIFNlZSBiZWxvdy4KICAgIHZhciBzaGlmdFNlbGVjdGluZywgcmVkdWNlZFNlbGVjdGlvbiwgbGFzdERvdWJsZUNsaWNrOwogICAgLy8gVmFyaWFibGVzIHVzZWQgYnkgc3RhcnRPcGVyYXRpb24vZW5kT3BlcmF0aW9uIHRvIHRyYWNrIHdoYXQKICAgIC8vIGhhcHBlbmVkIGR1cmluZyB0aGUgb3BlcmF0aW9uLgogICAgdmFyIHVwZGF0ZUlucHV0LCBjaGFuZ2VzLCB0ZXh0Q2hhbmdlZCwgc2VsZWN0aW9uQ2hhbmdlZCwgbGVhdmVJbnB1dEFsb25lOwogICAgLy8gQ3VycmVudCB2aXNpYmxlIHJhbmdlIChtYXkgYmUgYmlnZ2VyIHRoYW4gdGhlIHZpZXcgd2luZG93KS4KICAgIHZhciBzaG93aW5nRnJvbSA9IDAsIHNob3dpbmdUbyA9IDAsIGxhc3RIZWlnaHQgPSAwLCBjdXJLZXlJZCA9IG51bGw7CiAgICAvLyBlZGl0aW5nIHdpbGwgaG9sZCBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgdGhpbmdzIHdlIHB1dCBpbiB0aGUKICAgIC8vIHRleHRhcmVhLCB0byBoZWxwIGZpZ3VyZSBvdXQgd2hldGhlciBzb21ldGhpbmcgY2hhbmdlZC4KICAgIC8vIGJyYWNrZXRIaWdobGlnaHRlZCBpcyB1c2VkIHRvIHJlbWVtYmVyIHRoYXQgYSBiYWNrZXQgaGFzIGJlZW4KICAgIC8vIG1hcmtlZC4KICAgIHZhciBlZGl0aW5nLCBicmFja2V0SGlnaGxpZ2h0ZWQ7CiAgICAvLyBUcmFja3MgdGhlIG1heGltdW0gbGluZSBsZW5ndGggc28gdGhhdCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIKICAgIC8vIGNhbiBiZSBrZXB0IHN0YXRpYyB3aGVuIHNjcm9sbGluZy4KICAgIHZhciBtYXhMaW5lID0gIiIsIG1heFdpZHRoOwoKICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbnRlbnQuCiAgICBvcGVyYXRpb24oZnVuY3Rpb24oKXtzZXRWYWx1ZShvcHRpb25zLnZhbHVlIHx8ICIiKTsgdXBkYXRlSW5wdXQgPSBmYWxzZTt9KSgpOwoKICAgIC8vIFJlZ2lzdGVyIG91ciBldmVudCBoYW5kbGVycy4KICAgIGNvbm5lY3Qoc2Nyb2xsZXIsICJtb3VzZWRvd24iLCBvcGVyYXRpb24ob25Nb3VzZURvd24pKTsKICAgIC8vIEdlY2tvIGJyb3dzZXJzIGZpcmUgY29udGV4dG1lbnUgKmFmdGVyKiBvcGVuaW5nIHRoZSBtZW51LCBhdAogICAgLy8gd2hpY2ggcG9pbnQgd2UgY2FuJ3QgbWVzcyB3aXRoIGl0IGFueW1vcmUuIENvbnRleHQgbWVudSBpcwogICAgLy8gaGFuZGxlZCBpbiBvbk1vdXNlRG93biBmb3IgR2Vja28uCiAgICBpZiAoIWdlY2tvKSBjb25uZWN0KHNjcm9sbGVyLCAiY29udGV4dG1lbnUiLCBvbkNvbnRleHRNZW51KTsKICAgIGNvbm5lY3QoY29kZSwgImRibGNsaWNrIiwgb3BlcmF0aW9uKG9uRGJsQ2xpY2spKTsKICAgIGNvbm5lY3Qoc2Nyb2xsZXIsICJzY3JvbGwiLCBmdW5jdGlvbigpIHt1cGRhdGVEaXNwbGF5KFtdKTsgaWYgKG9wdGlvbnMub25TY3JvbGwpIG9wdGlvbnMub25TY3JvbGwoaW5zdGFuY2UpO30pOwogICAgY29ubmVjdCh3aW5kb3csICJyZXNpemUiLCBmdW5jdGlvbigpIHt1cGRhdGVEaXNwbGF5KHRydWUpO30pOwogICAgY29ubmVjdChpbnB1dCwgImtleXVwIiwgb3BlcmF0aW9uKG9uS2V5VXApKTsKICAgIGNvbm5lY3QoaW5wdXQsICJrZXlkb3duIiwgb3BlcmF0aW9uKG9uS2V5RG93bikpOwogICAgY29ubmVjdChpbnB1dCwgImtleXByZXNzIiwgb3BlcmF0aW9uKG9uS2V5UHJlc3MpKTsKICAgIGNvbm5lY3QoaW5wdXQsICJmb2N1cyIsIG9uRm9jdXMpOwogICAgY29ubmVjdChpbnB1dCwgImJsdXIiLCBvbkJsdXIpOwoKICAgIGNvbm5lY3Qoc2Nyb2xsZXIsICJkcmFnZW50ZXIiLCBlX3N0b3ApOwogICAgY29ubmVjdChzY3JvbGxlciwgImRyYWdvdmVyIiwgZV9zdG9wKTsKICAgIGNvbm5lY3Qoc2Nyb2xsZXIsICJkcm9wIiwgb3BlcmF0aW9uKG9uRHJvcCkpOwogICAgY29ubmVjdChzY3JvbGxlciwgInBhc3RlIiwgZnVuY3Rpb24oKXtmb2N1c0lucHV0KCk7IGZhc3RQb2xsKCk7fSk7CiAgICBjb25uZWN0KGlucHV0LCAicGFzdGUiLCBmdW5jdGlvbigpe2Zhc3RQb2xsKCk7fSk7CiAgICBjb25uZWN0KGlucHV0LCAiY3V0IiwgZnVuY3Rpb24oKXtmYXN0UG9sbCgpO30pOwogICAgCiAgICAvLyBJRSB0aHJvd3MgdW5zcGVjaWZpZWQgZXJyb3IgaW4gY2VydGFpbiBjYXNlcywgd2hlbiAKICAgIC8vIHRyeWluZyB0byBhY2Nlc3MgYWN0aXZlRWxlbWVudCBiZWZvcmUgb25sb2FkCiAgICB2YXIgaGFzRm9jdXM7IHRyeSB7IGhhc0ZvY3VzID0gKHRhcmdldERvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gaW5wdXQpOyB9IGNhdGNoKGUpIHsgfQogICAgaWYgKGhhc0ZvY3VzKSBzZXRUaW1lb3V0KG9uRm9jdXMsIDIwKTsKICAgIGVsc2Ugb25CbHVyKCk7CgogICAgZnVuY3Rpb24gaXNMaW5lKGwpIHtyZXR1cm4gbCA+PSAwICYmIGwgPCBsaW5lcy5sZW5ndGg7fQogICAgLy8gVGhlIGluc3RhbmNlIG9iamVjdCB0aGF0IHdlJ2xsIHJldHVybi4gTW9zdGx5IGNhbGxzIG91dCB0bwogICAgLy8gbG9jYWwgZnVuY3Rpb25zIGluIHRoZSBDb2RlTWlycm9yIGZ1bmN0aW9uLiBTb21lIGRvIHNvbWUgZXh0cmEKICAgIC8vIHJhbmdlIGNoZWNraW5nIGFuZC9vciBjbGlwcGluZy4gb3BlcmF0aW9uIGlzIHVzZWQgdG8gd3JhcCB0aGUKICAgIC8vIGNhbGwgc28gdGhhdCBjaGFuZ2VzIGl0IG1ha2VzIGFyZSB0cmFja2VkLCBhbmQgdGhlIGRpc3BsYXkgaXMKICAgIC8vIHVwZGF0ZWQgYWZ0ZXJ3YXJkcy4KICAgIHZhciBpbnN0YW5jZSA9IHsKICAgICAgZ2V0VmFsdWU6IGdldFZhbHVlLAogICAgICBzZXRWYWx1ZTogb3BlcmF0aW9uKHNldFZhbHVlKSwKICAgICAgZ2V0U2VsZWN0aW9uOiBnZXRTZWxlY3Rpb24sCiAgICAgIHJlcGxhY2VTZWxlY3Rpb246IG9wZXJhdGlvbihyZXBsYWNlU2VsZWN0aW9uKSwKICAgICAgZm9jdXM6IGZ1bmN0aW9uKCl7Zm9jdXNJbnB1dCgpOyBvbkZvY3VzKCk7IGZhc3RQb2xsKCk7fSwKICAgICAgc2V0T3B0aW9uOiBmdW5jdGlvbihvcHRpb24sIHZhbHVlKSB7CiAgICAgICAgb3B0aW9uc1tvcHRpb25dID0gdmFsdWU7CiAgICAgICAgaWYgKG9wdGlvbiA9PSAibGluZU51bWJlcnMiIHx8IG9wdGlvbiA9PSAiZ3V0dGVyIiB8fCBvcHRpb24gPT0gImZpcnN0TGluZU51bWJlciIpIGd1dHRlckNoYW5nZWQoKTsKICAgICAgICBlbHNlIGlmIChvcHRpb24gPT0gIm1vZGUiIHx8IG9wdGlvbiA9PSAiaW5kZW50VW5pdCIpIGxvYWRNb2RlKCk7CiAgICAgICAgZWxzZSBpZiAob3B0aW9uID09ICJyZWFkT25seSIgJiYgdmFsdWUgPT0gIm5vY3Vyc29yIikgaW5wdXQuYmx1cigpOwogICAgICAgIGVsc2UgaWYgKG9wdGlvbiA9PSAidGhlbWUiKSBzY3JvbGxlci5jbGFzc05hbWUgPSBzY3JvbGxlci5jbGFzc05hbWUucmVwbGFjZSgvY20tcy1cdysvLCAiY20tcy0iICsgdmFsdWUpOwogICAgICB9LAogICAgICBnZXRPcHRpb246IGZ1bmN0aW9uKG9wdGlvbikge3JldHVybiBvcHRpb25zW29wdGlvbl07fSwKICAgICAgdW5kbzogb3BlcmF0aW9uKHVuZG8pLAogICAgICByZWRvOiBvcGVyYXRpb24ocmVkbyksCiAgICAgIGluZGVudExpbmU6IG9wZXJhdGlvbihmdW5jdGlvbihuLCBkaXIpIHsKICAgICAgICBpZiAoaXNMaW5lKG4pKSBpbmRlbnRMaW5lKG4sIGRpciA9PSBudWxsID8gInNtYXJ0IiA6IGRpciA/ICJhZGQiIDogInN1YnRyYWN0Iik7CiAgICAgIH0pLAogICAgICBoaXN0b3J5U2l6ZTogZnVuY3Rpb24oKSB7cmV0dXJuIHt1bmRvOiBoaXN0b3J5LmRvbmUubGVuZ3RoLCByZWRvOiBoaXN0b3J5LnVuZG9uZS5sZW5ndGh9O30sCiAgICAgIG1hdGNoQnJhY2tldHM6IG9wZXJhdGlvbihmdW5jdGlvbigpe21hdGNoQnJhY2tldHModHJ1ZSk7fSksCiAgICAgIGdldFRva2VuQXQ6IGZ1bmN0aW9uKHBvcykgewogICAgICAgIHBvcyA9IGNsaXBQb3MocG9zKTsKICAgICAgICByZXR1cm4gbGluZXNbcG9zLmxpbmVdLmdldFRva2VuQXQobW9kZSwgZ2V0U3RhdGVCZWZvcmUocG9zLmxpbmUpLCBwb3MuY2gpOwogICAgICB9LAogICAgICBnZXRTdGF0ZUFmdGVyOiBmdW5jdGlvbihsaW5lKSB7CiAgICAgICAgbGluZSA9IGNsaXBMaW5lKGxpbmUgPT0gbnVsbCA/IGxpbmVzLmxlbmd0aCAtIDE6IGxpbmUpOwogICAgICAgIHJldHVybiBnZXRTdGF0ZUJlZm9yZShsaW5lICsgMSk7CiAgICAgIH0sCiAgICAgIGN1cnNvckNvb3JkczogZnVuY3Rpb24oc3RhcnQpewogICAgICAgIGlmIChzdGFydCA9PSBudWxsKSBzdGFydCA9IHNlbC5pbnZlcnRlZDsKICAgICAgICByZXR1cm4gcGFnZUNvb3JkcyhzdGFydCA/IHNlbC5mcm9tIDogc2VsLnRvKTsKICAgICAgfSwKICAgICAgY2hhckNvb3JkczogZnVuY3Rpb24ocG9zKXtyZXR1cm4gcGFnZUNvb3JkcyhjbGlwUG9zKHBvcykpO30sCiAgICAgIGNvb3Jkc0NoYXI6IGZ1bmN0aW9uKGNvb3JkcykgewogICAgICAgIHZhciBvZmYgPSBlbHRPZmZzZXQobGluZVNwYWNlKTsKICAgICAgICB2YXIgbGluZSA9IGNsaXBMaW5lKE1hdGgubWluKGxpbmVzLmxlbmd0aCAtIDEsIHNob3dpbmdGcm9tICsgTWF0aC5mbG9vcigoY29vcmRzLnkgLSBvZmYudG9wKSAvIGxpbmVIZWlnaHQoKSkpKTsKICAgICAgICByZXR1cm4gY2xpcFBvcyh7bGluZTogbGluZSwgY2g6IGNoYXJGcm9tWChjbGlwTGluZShsaW5lKSwgY29vcmRzLnggLSBvZmYubGVmdCl9KTsKICAgICAgfSwKICAgICAgZ2V0U2VhcmNoQ3Vyc29yOiBmdW5jdGlvbihxdWVyeSwgcG9zLCBjYXNlRm9sZCkge3JldHVybiBuZXcgU2VhcmNoQ3Vyc29yKHF1ZXJ5LCBwb3MsIGNhc2VGb2xkKTt9LAogICAgICBtYXJrVGV4dDogb3BlcmF0aW9uKGZ1bmN0aW9uKGEsIGIsIGMpe3JldHVybiBvcGVyYXRpb24obWFya1RleHQoYSwgYiwgYykpO30pLAogICAgICBzZXRNYXJrZXI6IGFkZEd1dHRlck1hcmtlciwKICAgICAgY2xlYXJNYXJrZXI6IHJlbW92ZUd1dHRlck1hcmtlciwKICAgICAgc2V0TGluZUNsYXNzOiBvcGVyYXRpb24oc2V0TGluZUNsYXNzKSwKICAgICAgbGluZUluZm86IGxpbmVJbmZvLAogICAgICBhZGRXaWRnZXQ6IGZ1bmN0aW9uKHBvcywgbm9kZSwgc2Nyb2xsLCB3aGVyZSkgewogICAgICAgIHBvcyA9IGxvY2FsQ29vcmRzKGNsaXBQb3MocG9zKSk7CiAgICAgICAgdmFyIHRvcCA9IHBvcy55Qm90LCBsZWZ0ID0gcG9zLng7CiAgICAgICAgbm9kZS5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgICAgY29kZS5hcHBlbmRDaGlsZChub2RlKTsKICAgICAgICBub2RlLnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKICAgICAgICBpZiAod2hlcmUgPT0gIm92ZXIiKSB0b3AgPSBwb3MueTsKICAgICAgICBlbHNlIGlmICh3aGVyZSA9PSAibmVhciIpIHsKICAgICAgICAgIHZhciB2c3BhY2UgPSBNYXRoLm1heChzY3JvbGxlci5vZmZzZXRIZWlnaHQsIGxpbmVzLmxlbmd0aCAqIGxpbmVIZWlnaHQoKSksCiAgICAgICAgICAgICAgaHNwYWNlID0gTWF0aC5tYXgoY29kZS5jbGllbnRXaWR0aCwgbGluZVNwYWNlLmNsaWVudFdpZHRoKSAtIHBhZGRpbmdMZWZ0KCk7CiAgICAgICAgICBpZiAocG9zLnlCb3QgKyBub2RlLm9mZnNldEhlaWdodCA+IHZzcGFjZSAmJiBwb3MueSA+IG5vZGUub2Zmc2V0SGVpZ2h0KQogICAgICAgICAgICB0b3AgPSBwb3MueSAtIG5vZGUub2Zmc2V0SGVpZ2h0OwogICAgICAgICAgaWYgKGxlZnQgKyBub2RlLm9mZnNldFdpZHRoID4gaHNwYWNlKQogICAgICAgICAgICBsZWZ0ID0gaHNwYWNlIC0gbm9kZS5vZmZzZXRXaWR0aDsKICAgICAgICB9CiAgICAgICAgbm9kZS5zdHlsZS50b3AgPSAodG9wICsgcGFkZGluZ1RvcCgpKSArICJweCI7CiAgICAgICAgbm9kZS5zdHlsZS5sZWZ0ID0gKGxlZnQgKyBwYWRkaW5nTGVmdCgpKSArICJweCI7CiAgICAgICAgaWYgKHNjcm9sbCkKICAgICAgICAgIHNjcm9sbEludG9WaWV3KGxlZnQsIHRvcCwgbGVmdCArIG5vZGUub2Zmc2V0V2lkdGgsIHRvcCArIG5vZGUub2Zmc2V0SGVpZ2h0KTsKICAgICAgfSwKCiAgICAgIGxpbmVDb3VudDogZnVuY3Rpb24oKSB7cmV0dXJuIGxpbmVzLmxlbmd0aDt9LAogICAgICBnZXRDdXJzb3I6IGZ1bmN0aW9uKHN0YXJ0KSB7CiAgICAgICAgaWYgKHN0YXJ0ID09IG51bGwpIHN0YXJ0ID0gc2VsLmludmVydGVkOwogICAgICAgIHJldHVybiBjb3B5UG9zKHN0YXJ0ID8gc2VsLmZyb20gOiBzZWwudG8pOwogICAgICB9LAogICAgICBzb21ldGhpbmdTZWxlY3RlZDogZnVuY3Rpb24oKSB7cmV0dXJuICFwb3NFcShzZWwuZnJvbSwgc2VsLnRvKTt9LAogICAgICBzZXRDdXJzb3I6IG9wZXJhdGlvbihmdW5jdGlvbihsaW5lLCBjaCkgewogICAgICAgIGlmIChjaCA9PSBudWxsICYmIHR5cGVvZiBsaW5lLmxpbmUgPT0gIm51bWJlciIpIHNldEN1cnNvcihsaW5lLmxpbmUsIGxpbmUuY2gpOwogICAgICAgIGVsc2Ugc2V0Q3Vyc29yKGxpbmUsIGNoKTsKICAgICAgfSksCiAgICAgIHNldFNlbGVjdGlvbjogb3BlcmF0aW9uKGZ1bmN0aW9uKGZyb20sIHRvKSB7c2V0U2VsZWN0aW9uKGNsaXBQb3MoZnJvbSksIGNsaXBQb3ModG8gfHwgZnJvbSkpO30pLAogICAgICBnZXRMaW5lOiBmdW5jdGlvbihsaW5lKSB7aWYgKGlzTGluZShsaW5lKSkgcmV0dXJuIGxpbmVzW2xpbmVdLnRleHQ7fSwKICAgICAgc2V0TGluZTogb3BlcmF0aW9uKGZ1bmN0aW9uKGxpbmUsIHRleHQpIHsKICAgICAgICBpZiAoaXNMaW5lKGxpbmUpKSByZXBsYWNlUmFuZ2UodGV4dCwge2xpbmU6IGxpbmUsIGNoOiAwfSwge2xpbmU6IGxpbmUsIGNoOiBsaW5lc1tsaW5lXS50ZXh0Lmxlbmd0aH0pOwogICAgICB9KSwKICAgICAgcmVtb3ZlTGluZTogb3BlcmF0aW9uKGZ1bmN0aW9uKGxpbmUpIHsKICAgICAgICBpZiAoaXNMaW5lKGxpbmUpKSByZXBsYWNlUmFuZ2UoIiIsIHtsaW5lOiBsaW5lLCBjaDogMH0sIGNsaXBQb3Moe2xpbmU6IGxpbmUrMSwgY2g6IDB9KSk7CiAgICAgIH0pLAogICAgICByZXBsYWNlUmFuZ2U6IG9wZXJhdGlvbihyZXBsYWNlUmFuZ2UpLAogICAgICBnZXRSYW5nZTogZnVuY3Rpb24oZnJvbSwgdG8pIHtyZXR1cm4gZ2V0UmFuZ2UoY2xpcFBvcyhmcm9tKSwgY2xpcFBvcyh0bykpO30sCgogICAgICBvcGVyYXRpb246IGZ1bmN0aW9uKGYpe3JldHVybiBvcGVyYXRpb24oZikoKTt9LAogICAgICByZWZyZXNoOiBmdW5jdGlvbigpe3VwZGF0ZURpc3BsYXkodHJ1ZSk7fSwKICAgICAgZ2V0SW5wdXRGaWVsZDogZnVuY3Rpb24oKXtyZXR1cm4gaW5wdXQ7fSwKICAgICAgZ2V0V3JhcHBlckVsZW1lbnQ6IGZ1bmN0aW9uKCl7cmV0dXJuIHdyYXBwZXI7fSwKICAgICAgZ2V0U2Nyb2xsZXJFbGVtZW50OiBmdW5jdGlvbigpe3JldHVybiBzY3JvbGxlcjt9LAogICAgICBnZXRHdXR0ZXJFbGVtZW50OiBmdW5jdGlvbigpe3JldHVybiBndXR0ZXI7fQogICAgfTsKCiAgICBmdW5jdGlvbiBzZXRWYWx1ZShjb2RlKSB7CiAgICAgIGhpc3RvcnkgPSBudWxsOwogICAgICB2YXIgdG9wID0ge2xpbmU6IDAsIGNoOiAwfTsKICAgICAgdXBkYXRlTGluZXModG9wLCB7bGluZTogbGluZXMubGVuZ3RoIC0gMSwgY2g6IGxpbmVzW2xpbmVzLmxlbmd0aC0xXS50ZXh0Lmxlbmd0aH0sCiAgICAgICAgICAgICAgICAgIHNwbGl0TGluZXMoY29kZSksIHRvcCwgdG9wKTsKICAgICAgaGlzdG9yeSA9IG5ldyBIaXN0b3J5KCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRWYWx1ZShjb2RlKSB7CiAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgKytpKQogICAgICAgIHRleHQucHVzaChsaW5lc1tpXS50ZXh0KTsKICAgICAgcmV0dXJuIHRleHQuam9pbigiXG4iKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvbk1vdXNlRG93bihlKSB7CiAgICAgIC8vIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhIGNsaWNrIGluIGEgd2lkZ2V0CiAgICAgIGZvciAodmFyIG4gPSBlX3RhcmdldChlKTsgbiAhPSB3cmFwcGVyOyBuID0gbi5wYXJlbnROb2RlKQogICAgICAgIGlmIChuLnBhcmVudE5vZGUgPT0gY29kZSAmJiBuICE9IG1vdmVyKSByZXR1cm47CiAgICAgIHZhciBsZCA9IGxhc3REb3VibGVDbGljazsgbGFzdERvdWJsZUNsaWNrID0gbnVsbDsKICAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGlzIGlzIGEgY2xpY2sgaW4gdGhlIGd1dHRlcgogICAgICBmb3IgKHZhciBuID0gZV90YXJnZXQoZSk7IG4gIT0gd3JhcHBlcjsgbiA9IG4ucGFyZW50Tm9kZSkKICAgICAgICBpZiAobi5wYXJlbnROb2RlID09IGd1dHRlclRleHQpIHsKICAgICAgICAgIGlmIChvcHRpb25zLm9uR3V0dGVyQ2xpY2spCiAgICAgICAgICAgIG9wdGlvbnMub25HdXR0ZXJDbGljayhpbnN0YW5jZSwgaW5kZXhPZihndXR0ZXJUZXh0LmNoaWxkTm9kZXMsIG4pICsgc2hvd2luZ0Zyb20pOwogICAgICAgICAgcmV0dXJuIGVfcHJldmVudERlZmF1bHQoZSk7CiAgICAgICAgfQoKICAgICAgdmFyIHN0YXJ0ID0gcG9zRnJvbU1vdXNlKGUpOwogICAgICAKICAgICAgc3dpdGNoIChlX2J1dHRvbihlKSkgewogICAgICBjYXNlIDM6CiAgICAgICAgaWYgKGdlY2tvICYmICFtYWMpIG9uQ29udGV4dE1lbnUoZSk7CiAgICAgICAgcmV0dXJuOwogICAgICBjYXNlIDI6CiAgICAgICAgaWYgKHN0YXJ0KSBzZXRDdXJzb3Ioc3RhcnQubGluZSwgc3RhcnQuY2gsIHRydWUpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAvLyBGb3IgYnV0dG9uIDEsIGlmIGl0IHdhcyBjbGlja2VkIGluc2lkZSB0aGUgZWRpdG9yCiAgICAgIC8vIChwb3NGcm9tTW91c2UgcmV0dXJuaW5nIG5vbi1udWxsKSwgd2UgaGF2ZSB0byBhZGp1c3QgdGhlCiAgICAgIC8vIHNlbGVjdGlvbi4KICAgICAgaWYgKCFzdGFydCkge2lmIChlX3RhcmdldChlKSA9PSBzY3JvbGxlcikgZV9wcmV2ZW50RGVmYXVsdChlKTsgcmV0dXJuO30KCiAgICAgIGlmICghZm9jdXNlZCkgb25Gb2N1cygpOwogICAgICBlX3ByZXZlbnREZWZhdWx0KGUpOwogICAgICBpZiAobGQgJiYgK25ldyBEYXRlIC0gbGQgPCA0MDApIHJldHVybiBzZWxlY3RMaW5lKHN0YXJ0LmxpbmUpOwoKICAgICAgc2V0Q3Vyc29yKHN0YXJ0LmxpbmUsIHN0YXJ0LmNoLCB0cnVlKTsKICAgICAgdmFyIGxhc3QgPSBzdGFydCwgZ29pbmc7CiAgICAgIC8vIEFuZCB0aGVuIHdlIGhhdmUgdG8gc2VlIGlmIGl0J3MgYSBkcmFnIGV2ZW50LCBpbiB3aGljaCBjYXNlCiAgICAgIC8vIHRoZSBkcmFnZ2VkLW92ZXIgdGV4dCBtdXN0IGJlIHNlbGVjdGVkLgogICAgICBmdW5jdGlvbiBlbmQoKSB7CiAgICAgICAgZm9jdXNJbnB1dCgpOwogICAgICAgIHVwZGF0ZUlucHV0ID0gdHJ1ZTsKICAgICAgICBtb3ZlKCk7IHVwKCk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZXh0ZW5kKGUpIHsKICAgICAgICB2YXIgY3VyID0gcG9zRnJvbU1vdXNlKGUsIHRydWUpOwogICAgICAgIGlmIChjdXIgJiYgIXBvc0VxKGN1ciwgbGFzdCkpIHsKICAgICAgICAgIGlmICghZm9jdXNlZCkgb25Gb2N1cygpOwogICAgICAgICAgbGFzdCA9IGN1cjsKICAgICAgICAgIHNldFNlbGVjdGlvblVzZXIoc3RhcnQsIGN1cik7CiAgICAgICAgICB1cGRhdGVJbnB1dCA9IGZhbHNlOwogICAgICAgICAgdmFyIHZpc2libGUgPSB2aXNpYmxlTGluZXMoKTsKICAgICAgICAgIGlmIChjdXIubGluZSA+PSB2aXNpYmxlLnRvIHx8IGN1ci5saW5lIDwgdmlzaWJsZS5mcm9tKQogICAgICAgICAgICBnb2luZyA9IHNldFRpbWVvdXQob3BlcmF0aW9uKGZ1bmN0aW9uKCl7ZXh0ZW5kKGUpO30pLCAxNTApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgdmFyIG1vdmUgPSBjb25uZWN0KHRhcmdldERvY3VtZW50LCAibW91c2Vtb3ZlIiwgb3BlcmF0aW9uKGZ1bmN0aW9uKGUpIHsKICAgICAgICBjbGVhclRpbWVvdXQoZ29pbmcpOwogICAgICAgIGVfcHJldmVudERlZmF1bHQoZSk7CiAgICAgICAgZXh0ZW5kKGUpOwogICAgICB9KSwgdHJ1ZSk7CiAgICAgIHZhciB1cCA9IGNvbm5lY3QodGFyZ2V0RG9jdW1lbnQsICJtb3VzZXVwIiwgb3BlcmF0aW9uKGZ1bmN0aW9uKGUpIHsKICAgICAgICBjbGVhclRpbWVvdXQoZ29pbmcpOwogICAgICAgIHZhciBjdXIgPSBwb3NGcm9tTW91c2UoZSk7CiAgICAgICAgaWYgKGN1cikgc2V0U2VsZWN0aW9uVXNlcihzdGFydCwgY3VyKTsKICAgICAgICBlX3ByZXZlbnREZWZhdWx0KGUpOwogICAgICAgIGVuZCgpOwogICAgICB9KSwgdHJ1ZSk7CiAgICB9CiAgICBmdW5jdGlvbiBvbkRibENsaWNrKGUpIHsKICAgICAgdmFyIHBvcyA9IHBvc0Zyb21Nb3VzZShlKTsKICAgICAgaWYgKCFwb3MpIHJldHVybjsKICAgICAgc2VsZWN0V29yZEF0KHBvcyk7CiAgICAgIGVfcHJldmVudERlZmF1bHQoZSk7CiAgICAgIGxhc3REb3VibGVDbGljayA9ICtuZXcgRGF0ZTsKICAgIH0KICAgIGZ1bmN0aW9uIG9uRHJvcChlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdmFyIHBvcyA9IHBvc0Zyb21Nb3VzZShlLCB0cnVlKSwgZmlsZXMgPSBlLmRhdGFUcmFuc2Zlci5maWxlczsKICAgICAgaWYgKCFwb3MgfHwgb3B0aW9ucy5yZWFkT25seSkgcmV0dXJuOwogICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoICYmIHdpbmRvdy5GaWxlUmVhZGVyICYmIHdpbmRvdy5GaWxlKSB7CiAgICAgICAgZnVuY3Rpb24gbG9hZEZpbGUoZmlsZSwgaSkgewogICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOwogICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0ZXh0W2ldID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgaWYgKCsrcmVhZCA9PSBuKSByZXBsYWNlUmFuZ2UodGV4dC5qb2luKCIiKSwgY2xpcFBvcyhwb3MpLCBjbGlwUG9zKHBvcykpOwogICAgICAgICAgfTsKICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpOwogICAgICAgIH0KICAgICAgICB2YXIgbiA9IGZpbGVzLmxlbmd0aCwgdGV4dCA9IEFycmF5KG4pLCByZWFkID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSkgbG9hZEZpbGUoZmlsZXNbaV0sIGkpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgdGV4dCA9IGUuZGF0YVRyYW5zZmVyLmdldERhdGEoIlRleHQiKTsKICAgICAgICAgIGlmICh0ZXh0KSByZXBsYWNlUmFuZ2UodGV4dCwgcG9zLCBwb3MpOwogICAgICAgIH0KICAgICAgICBjYXRjaChlKXt9CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIG9uS2V5RG93bihlKSB7CiAgICAgIGlmICghZm9jdXNlZCkgb25Gb2N1cygpOwoKICAgICAgdmFyIGNvZGUgPSBlLmtleUNvZGU7CiAgICAgIC8vIElFIGRvZXMgc3RyYW5nZSB0aGluZ3Mgd2l0aCBlc2NhcGUuCiAgICAgIGlmIChpZSAmJiBjb2RlID09IDI3KSB7IGUucmV0dXJuVmFsdWUgPSBmYWxzZTsgfQogICAgICAvLyBUcmllcyB0byBkZXRlY3QgY3RybCBvbiBub24tbWFjLCBjbWQgb24gbWFjLgogICAgICB2YXIgbW9kID0gKG1hYyA/IGUubWV0YUtleSA6IGUuY3RybEtleSkgJiYgIWUuYWx0S2V5LCBhbnlNb2QgPSBlLmN0cmxLZXkgfHwgZS5hbHRLZXkgfHwgZS5tZXRhS2V5OwogICAgICBpZiAoY29kZSA9PSAxNiB8fCBlLnNoaWZ0S2V5KSBzaGlmdFNlbGVjdGluZyA9IHNoaWZ0U2VsZWN0aW5nIHx8IChzZWwuaW52ZXJ0ZWQgPyBzZWwudG8gOiBzZWwuZnJvbSk7CiAgICAgIGVsc2Ugc2hpZnRTZWxlY3RpbmcgPSBudWxsOwogICAgICAvLyBGaXJzdCBnaXZlIG9uS2V5RXZlbnQgb3B0aW9uIGEgY2hhbmNlIHRvIGhhbmRsZSB0aGlzLgogICAgICBpZiAob3B0aW9ucy5vbktleUV2ZW50ICYmIG9wdGlvbnMub25LZXlFdmVudChpbnN0YW5jZSwgYWRkU3RvcChlKSkpIHJldHVybjsKCiAgICAgIGlmIChjb2RlID09IDMzIHx8IGNvZGUgPT0gMzQpIHtzY3JvbGxQYWdlKGNvZGUgPT0gMzQpOyByZXR1cm4gZV9wcmV2ZW50RGVmYXVsdChlKTt9IC8vIHBhZ2UgdXAvZG93bgogICAgICBpZiAobW9kICYmICgoY29kZSA9PSAzNiB8fCBjb2RlID09IDM1KSB8fCAvLyBjdHJsLWhvbWUvZW5kCiAgICAgICAgICAgICAgICAgIG1hYyAmJiAoY29kZSA9PSAzOCB8fCBjb2RlID09IDQwKSkpIHsgLy8gY21kLXVwL2Rvd24KICAgICAgICBzY3JvbGxFbmQoY29kZSA9PSAzNiB8fCBjb2RlID09IDM4KTsgcmV0dXJuIGVfcHJldmVudERlZmF1bHQoZSk7CiAgICAgIH0KICAgICAgaWYgKG1vZCAmJiBjb2RlID09IDY1KSB7c2VsZWN0QWxsKCk7IHJldHVybiBlX3ByZXZlbnREZWZhdWx0KGUpO30gLy8gY3RybC1hCiAgICAgIGlmICghb3B0aW9ucy5yZWFkT25seSkgewogICAgICAgIGlmICghYW55TW9kICYmIGNvZGUgPT0gMTMpIHtyZXR1cm47fSAvLyBlbnRlcgogICAgICAgIGlmICghYW55TW9kICYmIGNvZGUgPT0gOSAmJiBoYW5kbGVUYWIoZS5zaGlmdEtleSkpIHJldHVybiBlX3ByZXZlbnREZWZhdWx0KGUpOyAvLyB0YWIKICAgICAgICBpZiAobW9kICYmIGNvZGUgPT0gOTApIHt1bmRvKCk7IHJldHVybiBlX3ByZXZlbnREZWZhdWx0KGUpO30gLy8gY3RybC16CiAgICAgICAgaWYgKG1vZCAmJiAoKGUuc2hpZnRLZXkgJiYgY29kZSA9PSA5MCkgfHwgY29kZSA9PSA4OSkpIHtyZWRvKCk7IHJldHVybiBlX3ByZXZlbnREZWZhdWx0KGUpO30gLy8gY3RybC1zaGlmdC16LCBjdHJsLXkKICAgICAgfQogICAgICBpZiAoY29kZSA9PSAzNikgeyBpZiAob3B0aW9ucy5zbWFydEhvbWUpIHsgc21hcnRIb21lKCk7IHJldHVybiBlX3ByZXZlbnREZWZhdWx0KGUpOyB9IH0KCiAgICAgIC8vIEtleSBpZCB0byB1c2UgaW4gdGhlIG1vdmVtZW50S2V5cyBtYXAuIFdlIGFsc28gcGFzcyBpdCB0bwogICAgICAvLyBmYXN0UG9sbCBpbiBvcmRlciB0byAnc2VsZiBsZWFybicuIFdlIG5lZWQgdGhpcyBiZWNhdXNlCiAgICAgIC8vIHJlZHVjZWRTZWxlY3Rpb24sIHRoZSBoYWNrIHdoZXJlIHdlIGNvbGxhcHNlIHRoZSBzZWxlY3Rpb24gdG8KICAgICAgLy8gaXRzIHN0YXJ0IHdoZW4gaXQgaXMgaW52ZXJ0ZWQgYW5kIGEgbW92ZW1lbnQga2V5IGlzIHByZXNzZWQKICAgICAgLy8gKGFuZCBsYXRlciByZXN0b3JlIGl0IGFnYWluKSwgc2hvdWxkbid0IGJlIHVzZWQgZm9yCiAgICAgIC8vIG5vbi1tb3ZlbWVudCBrZXlzLgogICAgICBjdXJLZXlJZCA9IChtb2QgPyAiYyIgOiAiIikgKyAoZS5hbHRLZXkgPyAiYSIgOiAiIikgKyBjb2RlOwogICAgICBpZiAoc2VsLmludmVydGVkICYmIG1vdmVtZW50S2V5c1tjdXJLZXlJZF0gPT09IHRydWUpIHsKICAgICAgICB2YXIgcmFuZ2UgPSBzZWxSYW5nZShpbnB1dCk7CiAgICAgICAgaWYgKHJhbmdlKSB7CiAgICAgICAgICByZWR1Y2VkU2VsZWN0aW9uID0ge2FuY2hvcjogcmFuZ2Uuc3RhcnR9OwogICAgICAgICAgc2V0U2VsUmFuZ2UoaW5wdXQsIHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIERvbid0IHNhdmUgdGhlIGtleSBhcyBhIG1vdmVtZW50a2V5IHVubGVzcyBpdCBoYWQgYSBtb2RpZmllcgogICAgICBpZiAoIW1vZCAmJiAhZS5hbHRLZXkpIGN1cktleUlkID0gbnVsbDsKICAgICAgZmFzdFBvbGwoY3VyS2V5SWQpOwogICAgfQogICAgZnVuY3Rpb24gb25LZXlVcChlKSB7CiAgICAgIGlmIChvcHRpb25zLm9uS2V5RXZlbnQgJiYgb3B0aW9ucy5vbktleUV2ZW50KGluc3RhbmNlLCBhZGRTdG9wKGUpKSkgcmV0dXJuOwogICAgICBpZiAocmVkdWNlZFNlbGVjdGlvbikgewogICAgICAgIHJlZHVjZWRTZWxlY3Rpb24gPSBudWxsOwogICAgICAgIHVwZGF0ZUlucHV0ID0gdHJ1ZTsKICAgICAgfQogICAgICBpZiAoZS5rZXlDb2RlID09IDE2KSBzaGlmdFNlbGVjdGluZyA9IG51bGw7CiAgICB9CiAgICBmdW5jdGlvbiBvbktleVByZXNzKGUpIHsKICAgICAgaWYgKG9wdGlvbnMub25LZXlFdmVudCAmJiBvcHRpb25zLm9uS2V5RXZlbnQoaW5zdGFuY2UsIGFkZFN0b3AoZSkpKSByZXR1cm47CiAgICAgIGlmIChvcHRpb25zLmVsZWN0cmljQ2hhcnMgJiYgbW9kZS5lbGVjdHJpY0NoYXJzKSB7CiAgICAgICAgdmFyIGNoID0gU3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlID09IG51bGwgPyBlLmtleUNvZGUgOiBlLmNoYXJDb2RlKTsKICAgICAgICBpZiAobW9kZS5lbGVjdHJpY0NoYXJzLmluZGV4T2YoY2gpID4gLTEpCiAgICAgICAgICBzZXRUaW1lb3V0KG9wZXJhdGlvbihmdW5jdGlvbigpIHtpbmRlbnRMaW5lKHNlbC50by5saW5lLCAic21hcnQiKTt9KSwgNTApOwogICAgICB9CiAgICAgIHZhciBjb2RlID0gZS5rZXlDb2RlOwogICAgICAvLyBSZS1zdG9wIHRhYiBhbmQgZW50ZXIuIE5lY2Vzc2FyeSBvbiBzb21lIGJyb3dzZXJzLgogICAgICBpZiAoY29kZSA9PSAxMykge2lmICghb3B0aW9ucy5yZWFkT25seSkgaGFuZGxlRW50ZXIoKTsgZV9wcmV2ZW50RGVmYXVsdChlKTt9CiAgICAgIGVsc2UgaWYgKCFlLmN0cmxLZXkgJiYgIWUuYWx0S2V5ICYmICFlLm1ldGFLZXkgJiYgY29kZSA9PSA5ICYmIG9wdGlvbnMudGFiTW9kZSAhPSAiZGVmYXVsdCIpIGVfcHJldmVudERlZmF1bHQoZSk7CiAgICAgIGVsc2UgZmFzdFBvbGwoY3VyS2V5SWQpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uRm9jdXMoKSB7CiAgICAgIGlmIChvcHRpb25zLnJlYWRPbmx5ID09ICJub2N1cnNvciIpIHJldHVybjsKICAgICAgaWYgKCFmb2N1c2VkKSB7CiAgICAgICAgaWYgKG9wdGlvbnMub25Gb2N1cykgb3B0aW9ucy5vbkZvY3VzKGluc3RhbmNlKTsKICAgICAgICBmb2N1c2VkID0gdHJ1ZTsKICAgICAgICBpZiAod3JhcHBlci5jbGFzc05hbWUuc2VhcmNoKC9cYkNvZGVNaXJyb3ItZm9jdXNlZFxiLykgPT0gLTEpCiAgICAgICAgICB3cmFwcGVyLmNsYXNzTmFtZSArPSAiIENvZGVNaXJyb3ItZm9jdXNlZCI7CiAgICAgICAgaWYgKCFsZWF2ZUlucHV0QWxvbmUpIHByZXBhcmVJbnB1dCgpOwogICAgICB9CiAgICAgIHNsb3dQb2xsKCk7CiAgICAgIHJlc3RhcnRCbGluaygpOwogICAgfQogICAgZnVuY3Rpb24gb25CbHVyKCkgewogICAgICBpZiAoZm9jdXNlZCkgewogICAgICAgIGlmIChvcHRpb25zLm9uQmx1cikgb3B0aW9ucy5vbkJsdXIoaW5zdGFuY2UpOwogICAgICAgIGZvY3VzZWQgPSBmYWxzZTsKICAgICAgICB3cmFwcGVyLmNsYXNzTmFtZSA9IHdyYXBwZXIuY2xhc3NOYW1lLnJlcGxhY2UoIiBDb2RlTWlycm9yLWZvY3VzZWQiLCAiIik7CiAgICAgIH0KICAgICAgY2xlYXJJbnRlcnZhbChibGlua2VyKTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtpZiAoIWZvY3VzZWQpIHNoaWZ0U2VsZWN0aW5nID0gbnVsbDt9LCAxNTApOwogICAgfQoKICAgIC8vIFJlcGxhY2UgdGhlIHJhbmdlIGZyb20gZnJvbSB0byB0byBieSB0aGUgc3RyaW5ncyBpbiBuZXdUZXh0LgogICAgLy8gQWZ0ZXJ3YXJkcywgc2V0IHRoZSBzZWxlY3Rpb24gdG8gc2VsRnJvbSwgc2VsVG8uCiAgICBmdW5jdGlvbiB1cGRhdGVMaW5lcyhmcm9tLCB0bywgbmV3VGV4dCwgc2VsRnJvbSwgc2VsVG8pIHsKICAgICAgaWYgKGhpc3RvcnkpIHsKICAgICAgICB2YXIgb2xkID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IGZyb20ubGluZSwgZSA9IHRvLmxpbmUgKyAxOyBpIDwgZTsgKytpKSBvbGQucHVzaChsaW5lc1tpXS50ZXh0KTsKICAgICAgICBoaXN0b3J5LmFkZENoYW5nZShmcm9tLmxpbmUsIG5ld1RleHQubGVuZ3RoLCBvbGQpOwogICAgICAgIHdoaWxlIChoaXN0b3J5LmRvbmUubGVuZ3RoID4gb3B0aW9ucy51bmRvRGVwdGgpIGhpc3RvcnkuZG9uZS5zaGlmdCgpOwogICAgICB9CiAgICAgIHVwZGF0ZUxpbmVzTm9VbmRvKGZyb20sIHRvLCBuZXdUZXh0LCBzZWxGcm9tLCBzZWxUbyk7CiAgICB9CiAgICBmdW5jdGlvbiB1bnJlZG9IZWxwZXIoZnJvbSwgdG8pIHsKICAgICAgdmFyIGNoYW5nZSA9IGZyb20ucG9wKCk7CiAgICAgIGlmIChjaGFuZ2UpIHsKICAgICAgICB2YXIgcmVwbGFjZWQgPSBbXSwgZW5kID0gY2hhbmdlLnN0YXJ0ICsgY2hhbmdlLmFkZGVkOwogICAgICAgIGZvciAodmFyIGkgPSBjaGFuZ2Uuc3RhcnQ7IGkgPCBlbmQ7ICsraSkgcmVwbGFjZWQucHVzaChsaW5lc1tpXS50ZXh0KTsKICAgICAgICB0by5wdXNoKHtzdGFydDogY2hhbmdlLnN0YXJ0LCBhZGRlZDogY2hhbmdlLm9sZC5sZW5ndGgsIG9sZDogcmVwbGFjZWR9KTsKICAgICAgICB2YXIgcG9zID0gY2xpcFBvcyh7bGluZTogY2hhbmdlLnN0YXJ0ICsgY2hhbmdlLm9sZC5sZW5ndGggLSAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjaDogZWRpdEVuZChyZXBsYWNlZFtyZXBsYWNlZC5sZW5ndGgtMV0sIGNoYW5nZS5vbGRbY2hhbmdlLm9sZC5sZW5ndGgtMV0pfSk7CiAgICAgICAgdXBkYXRlTGluZXNOb1VuZG8oe2xpbmU6IGNoYW5nZS5zdGFydCwgY2g6IDB9LCB7bGluZTogZW5kIC0gMSwgY2g6IGxpbmVzW2VuZC0xXS50ZXh0Lmxlbmd0aH0sIGNoYW5nZS5vbGQsIHBvcywgcG9zKTsKICAgICAgICB1cGRhdGVJbnB1dCA9IHRydWU7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVuZG8oKSB7dW5yZWRvSGVscGVyKGhpc3RvcnkuZG9uZSwgaGlzdG9yeS51bmRvbmUpO30KICAgIGZ1bmN0aW9uIHJlZG8oKSB7dW5yZWRvSGVscGVyKGhpc3RvcnkudW5kb25lLCBoaXN0b3J5LmRvbmUpO30KCiAgICBmdW5jdGlvbiB1cGRhdGVMaW5lc05vVW5kbyhmcm9tLCB0bywgbmV3VGV4dCwgc2VsRnJvbSwgc2VsVG8pIHsKICAgICAgdmFyIHJlY29tcHV0ZU1heExlbmd0aCA9IGZhbHNlLCBtYXhMaW5lTGVuZ3RoID0gbWF4TGluZS5sZW5ndGg7CiAgICAgIGZvciAodmFyIGkgPSBmcm9tLmxpbmU7IGkgPD0gdG8ubGluZTsgKytpKSB7CiAgICAgICAgaWYgKGxpbmVzW2ldLnRleHQubGVuZ3RoID09IG1heExpbmVMZW5ndGgpIHtyZWNvbXB1dGVNYXhMZW5ndGggPSB0cnVlOyBicmVhazt9CiAgICAgIH0KCiAgICAgIHZhciBubGluZXMgPSB0by5saW5lIC0gZnJvbS5saW5lLCBmaXJzdExpbmUgPSBsaW5lc1tmcm9tLmxpbmVdLCBsYXN0TGluZSA9IGxpbmVzW3RvLmxpbmVdOwogICAgICAvLyBGaXJzdCBhZGp1c3QgdGhlIGxpbmUgc3RydWN0dXJlLCB0YWtpbmcgc29tZSBjYXJlIHRvIGxlYXZlIGhpZ2hsaWdodGluZyBpbnRhY3QuCiAgICAgIGlmIChmaXJzdExpbmUgPT0gbGFzdExpbmUpIHsKICAgICAgICBpZiAobmV3VGV4dC5sZW5ndGggPT0gMSkKICAgICAgICAgIGZpcnN0TGluZS5yZXBsYWNlKGZyb20uY2gsIHRvLmNoLCBuZXdUZXh0WzBdKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIGxhc3RMaW5lID0gZmlyc3RMaW5lLnNwbGl0KHRvLmNoLCBuZXdUZXh0W25ld1RleHQubGVuZ3RoLTFdKTsKICAgICAgICAgIHZhciBzcGxpY2VhcmdzID0gW2Zyb20ubGluZSArIDEsIG5saW5lc107CiAgICAgICAgICBmaXJzdExpbmUucmVwbGFjZShmcm9tLmNoLCBmaXJzdExpbmUudGV4dC5sZW5ndGgsIG5ld1RleHRbMF0pOwogICAgICAgICAgZm9yICh2YXIgaSA9IDEsIGUgPSBuZXdUZXh0Lmxlbmd0aCAtIDE7IGkgPCBlOyArK2kpIHNwbGljZWFyZ3MucHVzaChuZXcgTGluZShuZXdUZXh0W2ldKSk7CiAgICAgICAgICBzcGxpY2VhcmdzLnB1c2gobGFzdExpbmUpOwogICAgICAgICAgbGluZXMuc3BsaWNlLmFwcGx5KGxpbmVzLCBzcGxpY2VhcmdzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSBpZiAobmV3VGV4dC5sZW5ndGggPT0gMSkgewogICAgICAgIGZpcnN0TGluZS5yZXBsYWNlKGZyb20uY2gsIGZpcnN0TGluZS50ZXh0Lmxlbmd0aCwgbmV3VGV4dFswXSArIGxhc3RMaW5lLnRleHQuc2xpY2UodG8uY2gpKTsKICAgICAgICBsaW5lcy5zcGxpY2UoZnJvbS5saW5lICsgMSwgbmxpbmVzKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICB2YXIgc3BsaWNlYXJncyA9IFtmcm9tLmxpbmUgKyAxLCBubGluZXMgLSAxXTsKICAgICAgICBmaXJzdExpbmUucmVwbGFjZShmcm9tLmNoLCBmaXJzdExpbmUudGV4dC5sZW5ndGgsIG5ld1RleHRbMF0pOwogICAgICAgIGxhc3RMaW5lLnJlcGxhY2UoMCwgdG8uY2gsIG5ld1RleHRbbmV3VGV4dC5sZW5ndGgtMV0pOwogICAgICAgIGZvciAodmFyIGkgPSAxLCBlID0gbmV3VGV4dC5sZW5ndGggLSAxOyBpIDwgZTsgKytpKSBzcGxpY2VhcmdzLnB1c2gobmV3IExpbmUobmV3VGV4dFtpXSkpOwogICAgICAgIGxpbmVzLnNwbGljZS5hcHBseShsaW5lcywgc3BsaWNlYXJncyk7CiAgICAgIH0KCgogICAgICBmb3IgKHZhciBpID0gZnJvbS5saW5lLCBlID0gaSArIG5ld1RleHQubGVuZ3RoOyBpIDwgZTsgKytpKSB7CiAgICAgICAgdmFyIGwgPSBsaW5lc1tpXS50ZXh0OwogICAgICAgIGlmIChsLmxlbmd0aCA+IG1heExpbmVMZW5ndGgpIHsKICAgICAgICAgIG1heExpbmUgPSBsOyBtYXhMaW5lTGVuZ3RoID0gbC5sZW5ndGg7IG1heFdpZHRoID0gbnVsbDsKICAgICAgICAgIHJlY29tcHV0ZU1heExlbmd0aCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAocmVjb21wdXRlTWF4TGVuZ3RoKSB7CiAgICAgICAgbWF4TGluZUxlbmd0aCA9IDA7IG1heExpbmUgPSAiIjsgbWF4V2lkdGggPSBudWxsOwogICAgICAgIGZvciAodmFyIGkgPSAwLCBlID0gbGluZXMubGVuZ3RoOyBpIDwgZTsgKytpKSB7CiAgICAgICAgICB2YXIgbCA9IGxpbmVzW2ldLnRleHQ7CiAgICAgICAgICBpZiAobC5sZW5ndGggPiBtYXhMaW5lTGVuZ3RoKSB7CiAgICAgICAgICAgIG1heExpbmVMZW5ndGggPSBsLmxlbmd0aDsgbWF4TGluZSA9IGw7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBBZGQgdGhlc2UgbGluZXMgdG8gdGhlIHdvcmsgYXJyYXksIHNvIHRoYXQgdGhleSB3aWxsIGJlCiAgICAgIC8vIGhpZ2hsaWdodGVkLiBBZGp1c3Qgd29yayBsaW5lcyBpZiBsaW5lcyB3ZXJlIGFkZGVkL3JlbW92ZWQuCiAgICAgIHZhciBuZXdXb3JrID0gW10sIGxlbmRpZmYgPSBuZXdUZXh0Lmxlbmd0aCAtIG5saW5lcyAtIDE7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gd29yay5sZW5ndGg7IGkgPCBsOyArK2kpIHsKICAgICAgICB2YXIgdGFzayA9IHdvcmtbaV07CiAgICAgICAgaWYgKHRhc2sgPCBmcm9tLmxpbmUpIG5ld1dvcmsucHVzaCh0YXNrKTsKICAgICAgICBlbHNlIGlmICh0YXNrID4gdG8ubGluZSkgbmV3V29yay5wdXNoKHRhc2sgKyBsZW5kaWZmKTsKICAgICAgfQogICAgICBpZiAobmV3VGV4dC5sZW5ndGggPCA1KSB7CiAgICAgICAgaGlnaGxpZ2h0TGluZXMoZnJvbS5saW5lLCBmcm9tLmxpbmUgKyBuZXdUZXh0Lmxlbmd0aCk7CiAgICAgICAgbmV3V29yay5wdXNoKGZyb20ubGluZSArIG5ld1RleHQubGVuZ3RoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBuZXdXb3JrLnB1c2goZnJvbS5saW5lKTsKICAgICAgfQogICAgICB3b3JrID0gbmV3V29yazsKICAgICAgc3RhcnRXb3JrZXIoMTAwKTsKICAgICAgLy8gUmVtZW1iZXIgdGhhdCB0aGVzZSBsaW5lcyBjaGFuZ2VkLCBmb3IgdXBkYXRpbmcgdGhlIGRpc3BsYXkKICAgICAgY2hhbmdlcy5wdXNoKHtmcm9tOiBmcm9tLmxpbmUsIHRvOiB0by5saW5lICsgMSwgZGlmZjogbGVuZGlmZn0pOwogICAgICB0ZXh0Q2hhbmdlZCA9IHtmcm9tOiBmcm9tLCB0bzogdG8sIHRleHQ6IG5ld1RleHR9OwoKICAgICAgLy8gVXBkYXRlIHRoZSBzZWxlY3Rpb24KICAgICAgZnVuY3Rpb24gdXBkYXRlTGluZShuKSB7cmV0dXJuIG4gPD0gTWF0aC5taW4odG8ubGluZSwgdG8ubGluZSArIGxlbmRpZmYpID8gbiA6IG4gKyBsZW5kaWZmO30KICAgICAgc2V0U2VsZWN0aW9uKHNlbEZyb20sIHNlbFRvLCB1cGRhdGVMaW5lKHNlbC5mcm9tLmxpbmUpLCB1cGRhdGVMaW5lKHNlbC50by5saW5lKSk7CgogICAgICAvLyBNYWtlIHN1cmUgdGhlIHNjcm9sbC1zaXplIGRpdiBoYXMgdGhlIGNvcnJlY3QgaGVpZ2h0LgogICAgICBjb2RlLnN0eWxlLmhlaWdodCA9IChsaW5lcy5sZW5ndGggKiBsaW5lSGVpZ2h0KCkgKyAyICogcGFkZGluZ1RvcCgpKSArICJweCI7CiAgICB9CgogICAgZnVuY3Rpb24gcmVwbGFjZVJhbmdlKGNvZGUsIGZyb20sIHRvKSB7CiAgICAgIGZyb20gPSBjbGlwUG9zKGZyb20pOwogICAgICBpZiAoIXRvKSB0byA9IGZyb207IGVsc2UgdG8gPSBjbGlwUG9zKHRvKTsKICAgICAgY29kZSA9IHNwbGl0TGluZXMoY29kZSk7CiAgICAgIGZ1bmN0aW9uIGFkanVzdFBvcyhwb3MpIHsKICAgICAgICBpZiAocG9zTGVzcyhwb3MsIGZyb20pKSByZXR1cm4gcG9zOwogICAgICAgIGlmICghcG9zTGVzcyh0bywgcG9zKSkgcmV0dXJuIGVuZDsKICAgICAgICB2YXIgbGluZSA9IHBvcy5saW5lICsgY29kZS5sZW5ndGggLSAodG8ubGluZSAtIGZyb20ubGluZSkgLSAxOwogICAgICAgIHZhciBjaCA9IHBvcy5jaDsKICAgICAgICBpZiAocG9zLmxpbmUgPT0gdG8ubGluZSkKICAgICAgICAgIGNoICs9IGNvZGVbY29kZS5sZW5ndGgtMV0ubGVuZ3RoIC0gKHRvLmNoIC0gKHRvLmxpbmUgPT0gZnJvbS5saW5lID8gZnJvbS5jaCA6IDApKTsKICAgICAgICByZXR1cm4ge2xpbmU6IGxpbmUsIGNoOiBjaH07CiAgICAgIH0KICAgICAgdmFyIGVuZDsKICAgICAgcmVwbGFjZVJhbmdlMShjb2RlLCBmcm9tLCB0bywgZnVuY3Rpb24oZW5kMSkgewogICAgICAgIGVuZCA9IGVuZDE7CiAgICAgICAgcmV0dXJuIHtmcm9tOiBhZGp1c3RQb3Moc2VsLmZyb20pLCB0bzogYWRqdXN0UG9zKHNlbC50byl9OwogICAgICB9KTsKICAgICAgcmV0dXJuIGVuZDsKICAgIH0KICAgIGZ1bmN0aW9uIHJlcGxhY2VTZWxlY3Rpb24oY29kZSwgY29sbGFwc2UpIHsKICAgICAgcmVwbGFjZVJhbmdlMShzcGxpdExpbmVzKGNvZGUpLCBzZWwuZnJvbSwgc2VsLnRvLCBmdW5jdGlvbihlbmQpIHsKICAgICAgICBpZiAoY29sbGFwc2UgPT0gImVuZCIpIHJldHVybiB7ZnJvbTogZW5kLCB0bzogZW5kfTsKICAgICAgICBlbHNlIGlmIChjb2xsYXBzZSA9PSAic3RhcnQiKSByZXR1cm4ge2Zyb206IHNlbC5mcm9tLCB0bzogc2VsLmZyb219OwogICAgICAgIGVsc2UgcmV0dXJuIHtmcm9tOiBzZWwuZnJvbSwgdG86IGVuZH07CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gcmVwbGFjZVJhbmdlMShjb2RlLCBmcm9tLCB0bywgY29tcHV0ZVNlbCkgewogICAgICB2YXIgZW5kY2ggPSBjb2RlLmxlbmd0aCA9PSAxID8gY29kZVswXS5sZW5ndGggKyBmcm9tLmNoIDogY29kZVtjb2RlLmxlbmd0aC0xXS5sZW5ndGg7CiAgICAgIHZhciBuZXdTZWwgPSBjb21wdXRlU2VsKHtsaW5lOiBmcm9tLmxpbmUgKyBjb2RlLmxlbmd0aCAtIDEsIGNoOiBlbmRjaH0pOwogICAgICB1cGRhdGVMaW5lcyhmcm9tLCB0bywgY29kZSwgbmV3U2VsLmZyb20sIG5ld1NlbC50byk7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0UmFuZ2UoZnJvbSwgdG8pIHsKICAgICAgdmFyIGwxID0gZnJvbS5saW5lLCBsMiA9IHRvLmxpbmU7CiAgICAgIGlmIChsMSA9PSBsMikgcmV0dXJuIGxpbmVzW2wxXS50ZXh0LnNsaWNlKGZyb20uY2gsIHRvLmNoKTsKICAgICAgdmFyIGNvZGUgPSBbbGluZXNbbDFdLnRleHQuc2xpY2UoZnJvbS5jaCldOwogICAgICBmb3IgKHZhciBpID0gbDEgKyAxOyBpIDwgbDI7ICsraSkgY29kZS5wdXNoKGxpbmVzW2ldLnRleHQpOwogICAgICBjb2RlLnB1c2gobGluZXNbbDJdLnRleHQuc2xpY2UoMCwgdG8uY2gpKTsKICAgICAgcmV0dXJuIGNvZGUuam9pbigiXG4iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFNlbGVjdGlvbigpIHsKICAgICAgcmV0dXJuIGdldFJhbmdlKHNlbC5mcm9tLCBzZWwudG8pOwogICAgfQoKICAgIHZhciBwb2xsaW5nRmFzdCA9IGZhbHNlOyAvLyBFbnN1cmVzIHNsb3dQb2xsIGRvZXNuJ3QgY2FuY2VsIGZhc3RQb2xsCiAgICBmdW5jdGlvbiBzbG93UG9sbCgpIHsKICAgICAgaWYgKHBvbGxpbmdGYXN0KSByZXR1cm47CiAgICAgIHBvbGwuc2V0KDIwMDAsIGZ1bmN0aW9uKCkgewogICAgICAgIHN0YXJ0T3BlcmF0aW9uKCk7CiAgICAgICAgcmVhZElucHV0KCk7CiAgICAgICAgaWYgKGZvY3VzZWQpIHNsb3dQb2xsKCk7CiAgICAgICAgZW5kT3BlcmF0aW9uKCk7CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gZmFzdFBvbGwoa2V5SWQpIHsKICAgICAgdmFyIG1pc3NlZCA9IGZhbHNlOwogICAgICBwb2xsaW5nRmFzdCA9IHRydWU7CiAgICAgIGZ1bmN0aW9uIHAoKSB7CiAgICAgICAgc3RhcnRPcGVyYXRpb24oKTsKICAgICAgICB2YXIgY2hhbmdlZCA9IHJlYWRJbnB1dCgpOwogICAgICAgIGlmIChjaGFuZ2VkICYmIGtleUlkKSB7CiAgICAgICAgICBpZiAoY2hhbmdlZCA9PSAibW92ZWQiICYmIG1vdmVtZW50S2V5c1trZXlJZF0gPT0gbnVsbCkgbW92ZW1lbnRLZXlzW2tleUlkXSA9IHRydWU7CiAgICAgICAgICBpZiAoY2hhbmdlZCA9PSAiY2hhbmdlZCIpIG1vdmVtZW50S2V5c1trZXlJZF0gPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCFjaGFuZ2VkICYmICFtaXNzZWQpIHttaXNzZWQgPSB0cnVlOyBwb2xsLnNldCg4MCwgcCk7fQogICAgICAgIGVsc2Uge3BvbGxpbmdGYXN0ID0gZmFsc2U7IHNsb3dQb2xsKCk7fQogICAgICAgIGVuZE9wZXJhdGlvbigpOwogICAgICB9CiAgICAgIHBvbGwuc2V0KDIwLCBwKTsKICAgIH0KCiAgICAvLyBJbnNwZWN0cyB0aGUgdGV4dGFyZWEsIGNvbXBhcmVzIGl0cyBzdGF0ZSAoY29udGVudCwgc2VsZWN0aW9uKQogICAgLy8gdG8gdGhlIGRhdGEgaW4gdGhlIGVkaXRpbmcgdmFyaWFibGUsIGFuZCB1cGRhdGVzIHRoZSBlZGl0b3IKICAgIC8vIGNvbnRlbnQgb3IgY3Vyc29yIGlmIHNvbWV0aGluZyBjaGFuZ2VkLgogICAgZnVuY3Rpb24gcmVhZElucHV0KCkgewogICAgICBpZiAobGVhdmVJbnB1dEFsb25lIHx8ICFmb2N1c2VkKSByZXR1cm47CiAgICAgIHZhciBjaGFuZ2VkID0gZmFsc2UsIHRleHQgPSBpbnB1dC52YWx1ZSwgc3IgPSBzZWxSYW5nZShpbnB1dCk7CiAgICAgIGlmICghc3IpIHJldHVybiBmYWxzZTsKICAgICAgdmFyIGNoYW5nZWQgPSBlZGl0aW5nLnRleHQgIT0gdGV4dCwgcnMgPSByZWR1Y2VkU2VsZWN0aW9uOwogICAgICB2YXIgbW92ZWQgPSBjaGFuZ2VkIHx8IHNyLnN0YXJ0ICE9IGVkaXRpbmcuc3RhcnQgfHwgc3IuZW5kICE9IChycyA/IGVkaXRpbmcuc3RhcnQgOiBlZGl0aW5nLmVuZCk7CiAgICAgIGlmICghbW92ZWQgJiYgIXJzKSByZXR1cm4gZmFsc2U7CiAgICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgc2hpZnRTZWxlY3RpbmcgPSByZWR1Y2VkU2VsZWN0aW9uID0gbnVsbDsKICAgICAgICBpZiAob3B0aW9ucy5yZWFkT25seSkge3VwZGF0ZUlucHV0ID0gdHJ1ZTsgcmV0dXJuICJjaGFuZ2VkIjt9CiAgICAgIH0KCiAgICAgIC8vIENvbXB1dGUgc2VsZWN0aW9uIHN0YXJ0IGFuZCBlbmQgYmFzZWQgb24gc3RhcnQvZW5kIG9mZnNldHMgaW4gdGV4dGFyZWEKICAgICAgZnVuY3Rpb24gY29tcHV0ZU9mZnNldChuLCBzdGFydExpbmUpIHsKICAgICAgICB2YXIgcG9zID0gMDsKICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICB2YXIgZm91bmQgPSB0ZXh0LmluZGV4T2YoIlxuIiwgcG9zKTsKICAgICAgICAgIGlmIChmb3VuZCA9PSAtMSB8fCAodGV4dC5jaGFyQXQoZm91bmQtMSkgPT0gIlxyIiA/IGZvdW5kIC0gMSA6IGZvdW5kKSA+PSBuKQogICAgICAgICAgICByZXR1cm4ge2xpbmU6IHN0YXJ0TGluZSwgY2g6IG4gLSBwb3N9OwogICAgICAgICAgKytzdGFydExpbmU7CiAgICAgICAgICBwb3MgPSBmb3VuZCArIDE7CiAgICAgICAgfQogICAgICB9CiAgICAgIHZhciBmcm9tID0gY29tcHV0ZU9mZnNldChzci5zdGFydCwgZWRpdGluZy5mcm9tKSwKICAgICAgICAgIHRvID0gY29tcHV0ZU9mZnNldChzci5lbmQsIGVkaXRpbmcuZnJvbSk7CiAgICAgIC8vIEhlcmUgd2UgaGF2ZSB0byB0YWtlIHRoZSByZWR1Y2VkU2VsZWN0aW9uIGhhY2sgaW50byBhY2NvdW50LAogICAgICAvLyBzbyB0aGF0IHlvdSBjYW4sIGZvciBleGFtcGxlLCBwcmVzcyBzaGlmdC11cCBhdCB0aGUgc3RhcnQgb2YKICAgICAgLy8geW91ciBzZWxlY3Rpb24gYW5kIGhhdmUgdGhlIHJpZ2h0IHRoaW5nIGhhcHBlbi4KICAgICAgaWYgKHJzKSB7CiAgICAgICAgdmFyIGhlYWQgPSBzci5zdGFydCA9PSBycy5hbmNob3IgPyB0byA6IGZyb207CiAgICAgICAgdmFyIHRhaWwgPSBzaGlmdFNlbGVjdGluZyA/IHNlbC50byA6IHNyLnN0YXJ0ID09IHJzLmFuY2hvciA/IGZyb20gOiB0bzsKICAgICAgICBpZiAoc2VsLmludmVydGVkID0gcG9zTGVzcyhoZWFkLCB0YWlsKSkgeyBmcm9tID0gaGVhZDsgdG8gPSB0YWlsOyB9CiAgICAgICAgZWxzZSB7IHJlZHVjZWRTZWxlY3Rpb24gPSBudWxsOyBmcm9tID0gdGFpbDsgdG8gPSBoZWFkOyB9CiAgICAgIH0KCiAgICAgIC8vIEluIHNvbWUgY2FzZXMgKGN1cnNvciBvbiBzYW1lIGxpbmUgYXMgYmVmb3JlKSwgd2UgZG9uJ3QgaGF2ZQogICAgICAvLyB0byB1cGRhdGUgdGhlIHRleHRhcmVhIGNvbnRlbnQgYXQgYWxsLgogICAgICBpZiAoZnJvbS5saW5lID09IHRvLmxpbmUgJiYgZnJvbS5saW5lID09IHNlbC5mcm9tLmxpbmUgJiYgZnJvbS5saW5lID09IHNlbC50by5saW5lICYmICFzaGlmdFNlbGVjdGluZykKICAgICAgICB1cGRhdGVJbnB1dCA9IGZhbHNlOwoKICAgICAgLy8gTWFnaWMgbWVzcyB0byBleHRyYWN0IHByZWNpc2UgZWRpdGVkIHJhbmdlIGZyb20gdGhlIGNoYW5nZWQKICAgICAgLy8gc3RyaW5nLgogICAgICBpZiAoY2hhbmdlZCkgewogICAgICAgIHZhciBzdGFydCA9IDAsIGVuZCA9IHRleHQubGVuZ3RoLCBsZW4gPSBNYXRoLm1pbihlbmQsIGVkaXRpbmcudGV4dC5sZW5ndGgpOwogICAgICAgIHZhciBjLCBsaW5lID0gZWRpdGluZy5mcm9tLCBubCA9IC0xOwogICAgICAgIHdoaWxlIChzdGFydCA8IGxlbiAmJiAoYyA9IHRleHQuY2hhckF0KHN0YXJ0KSkgPT0gZWRpdGluZy50ZXh0LmNoYXJBdChzdGFydCkpIHsKICAgICAgICAgICsrc3RhcnQ7CiAgICAgICAgICBpZiAoYyA9PSAiXG4iKSB7bGluZSsrOyBubCA9IHN0YXJ0O30KICAgICAgICB9CiAgICAgICAgdmFyIGNoID0gbmwgPiAtMSA/IHN0YXJ0IC0gbmwgOiBzdGFydCwgZW5kbGluZSA9IGVkaXRpbmcudG8gLSAxLCBlZGVuZCA9IGVkaXRpbmcudGV4dC5sZW5ndGg7CiAgICAgICAgZm9yICg7OykgewogICAgICAgICAgYyA9IGVkaXRpbmcudGV4dC5jaGFyQXQoZWRlbmQpOwogICAgICAgICAgaWYgKHRleHQuY2hhckF0KGVuZCkgIT0gYykgeysrZW5kOyArK2VkZW5kOyBicmVhazt9CiAgICAgICAgICBpZiAoYyA9PSAiXG4iKSBlbmRsaW5lLS07CiAgICAgICAgICBpZiAoZWRlbmQgPD0gc3RhcnQgfHwgZW5kIDw9IHN0YXJ0KSBicmVhazsKICAgICAgICAgIC0tZW5kOyAtLWVkZW5kOwogICAgICAgIH0KICAgICAgICB2YXIgbmwgPSBlZGl0aW5nLnRleHQubGFzdEluZGV4T2YoIlxuIiwgZWRlbmQgLSAxKSwgZW5kY2ggPSBubCA9PSAtMSA/IGVkZW5kIDogZWRlbmQgLSBubCAtIDE7CiAgICAgICAgdXBkYXRlTGluZXMoe2xpbmU6IGxpbmUsIGNoOiBjaH0sIHtsaW5lOiBlbmRsaW5lLCBjaDogZW5kY2h9LCBzcGxpdExpbmVzKHRleHQuc2xpY2Uoc3RhcnQsIGVuZCkpLCBmcm9tLCB0byk7CiAgICAgICAgaWYgKGxpbmUgIT0gZW5kbGluZSB8fCBmcm9tLmxpbmUgIT0gbGluZSkgdXBkYXRlSW5wdXQgPSB0cnVlOwogICAgICB9CiAgICAgIGVsc2Ugc2V0U2VsZWN0aW9uKGZyb20sIHRvKTsKCiAgICAgIGVkaXRpbmcudGV4dCA9IHRleHQ7IGVkaXRpbmcuc3RhcnQgPSBzci5zdGFydDsgZWRpdGluZy5lbmQgPSBzci5lbmQ7CiAgICAgIHJldHVybiBjaGFuZ2VkID8gImNoYW5nZWQiIDogbW92ZWQgPyAibW92ZWQiIDogZmFsc2U7CiAgICB9CgogICAgLy8gU2V0IHRoZSB0ZXh0YXJlYSBjb250ZW50IGFuZCBzZWxlY3Rpb24gcmFuZ2UgdG8gbWF0Y2ggdGhlCiAgICAvLyBlZGl0b3Igc3RhdGUuCiAgICBmdW5jdGlvbiBwcmVwYXJlSW5wdXQoKSB7CiAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgIHZhciBmcm9tID0gTWF0aC5tYXgoMCwgc2VsLmZyb20ubGluZSAtIDEpLCB0byA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgc2VsLnRvLmxpbmUgKyAyKTsKICAgICAgZm9yICh2YXIgaSA9IGZyb207IGkgPCB0bzsgKytpKSB0ZXh0LnB1c2gobGluZXNbaV0udGV4dCk7CiAgICAgIHRleHQgPSBpbnB1dC52YWx1ZSA9IHRleHQuam9pbihsaW5lU2VwKTsKICAgICAgdmFyIHN0YXJ0Y2ggPSBzZWwuZnJvbS5jaCwgZW5kY2ggPSBzZWwudG8uY2g7CiAgICAgIGZvciAodmFyIGkgPSBmcm9tOyBpIDwgc2VsLmZyb20ubGluZTsgKytpKQogICAgICAgIHN0YXJ0Y2ggKz0gbGluZVNlcC5sZW5ndGggKyBsaW5lc1tpXS50ZXh0Lmxlbmd0aDsKICAgICAgZm9yICh2YXIgaSA9IGZyb207IGkgPCBzZWwudG8ubGluZTsgKytpKQogICAgICAgIGVuZGNoICs9IGxpbmVTZXAubGVuZ3RoICsgbGluZXNbaV0udGV4dC5sZW5ndGg7CiAgICAgIGVkaXRpbmcgPSB7dGV4dDogdGV4dCwgZnJvbTogZnJvbSwgdG86IHRvLCBzdGFydDogc3RhcnRjaCwgZW5kOiBlbmRjaH07CiAgICAgIHNldFNlbFJhbmdlKGlucHV0LCBzdGFydGNoLCByZWR1Y2VkU2VsZWN0aW9uID8gc3RhcnRjaCA6IGVuZGNoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGZvY3VzSW5wdXQoKSB7CiAgICAgIGlmIChvcHRpb25zLnJlYWRPbmx5ICE9ICJub2N1cnNvciIpIGlucHV0LmZvY3VzKCk7CiAgICB9CgogICAgZnVuY3Rpb24gc2Nyb2xsRWRpdG9ySW50b1ZpZXcoKSB7CiAgICAgIGlmICghY3Vyc29yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkgcmV0dXJuOwogICAgICB2YXIgcmVjdCA9IGN1cnNvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgdmFyIHdpbkggPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDsKICAgICAgaWYgKHJlY3QudG9wIDwgMCB8fCByZWN0LmJvdHRvbSA+IHdpbkgpIGN1cnNvci5zY3JvbGxJbnRvVmlldygpOwogICAgfQogICAgZnVuY3Rpb24gc2Nyb2xsQ3Vyc29ySW50b1ZpZXcoKSB7CiAgICAgIHZhciBjdXJzb3IgPSBsb2NhbENvb3JkcyhzZWwuaW52ZXJ0ZWQgPyBzZWwuZnJvbSA6IHNlbC50byk7CiAgICAgIHJldHVybiBzY3JvbGxJbnRvVmlldyhjdXJzb3IueCwgY3Vyc29yLnksIGN1cnNvci54LCBjdXJzb3IueUJvdCk7CiAgICB9CiAgICBmdW5jdGlvbiBzY3JvbGxJbnRvVmlldyh4MSwgeTEsIHgyLCB5MikgewogICAgICB2YXIgcGwgPSBwYWRkaW5nTGVmdCgpLCBwdCA9IHBhZGRpbmdUb3AoKSwgbGggPSBsaW5lSGVpZ2h0KCk7CiAgICAgIHkxICs9IHB0OyB5MiArPSBwdDsgeDEgKz0gcGw7IHgyICs9IHBsOwogICAgICB2YXIgc2NyZWVuID0gc2Nyb2xsZXIuY2xpZW50SGVpZ2h0LCBzY3JlZW50b3AgPSBzY3JvbGxlci5zY3JvbGxUb3AsIHNjcm9sbGVkID0gZmFsc2UsIHJlc3VsdCA9IHRydWU7CiAgICAgIGlmICh5MSA8IHNjcmVlbnRvcCkge3Njcm9sbGVyLnNjcm9sbFRvcCA9IE1hdGgubWF4KDAsIHkxIC0gMipsaCk7IHNjcm9sbGVkID0gdHJ1ZTt9CiAgICAgIGVsc2UgaWYgKHkyID4gc2NyZWVudG9wICsgc2NyZWVuKSB7c2Nyb2xsZXIuc2Nyb2xsVG9wID0geTIgKyBsaCAtIHNjcmVlbjsgc2Nyb2xsZWQgPSB0cnVlO30KCiAgICAgIHZhciBzY3JlZW53ID0gc2Nyb2xsZXIuY2xpZW50V2lkdGgsIHNjcmVlbmxlZnQgPSBzY3JvbGxlci5zY3JvbGxMZWZ0OwogICAgICBpZiAoeDEgPCBzY3JlZW5sZWZ0KSB7CiAgICAgICAgaWYgKHgxIDwgNTApIHgxID0gMDsKICAgICAgICBzY3JvbGxlci5zY3JvbGxMZWZ0ID0gTWF0aC5tYXgoMCwgeDEgLSAxMCk7CiAgICAgICAgc2Nyb2xsZWQgPSB0cnVlOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHgyID4gc2NyZWVudyArIHNjcmVlbmxlZnQpIHsKICAgICAgICBzY3JvbGxlci5zY3JvbGxMZWZ0ID0geDIgKyAxMCAtIHNjcmVlbnc7CiAgICAgICAgc2Nyb2xsZWQgPSB0cnVlOwogICAgICAgIGlmICh4MiA+IGNvZGUuY2xpZW50V2lkdGgpIHJlc3VsdCA9IGZhbHNlOwogICAgICB9CiAgICAgIGlmIChzY3JvbGxlZCAmJiBvcHRpb25zLm9uU2Nyb2xsKSBvcHRpb25zLm9uU2Nyb2xsKGluc3RhbmNlKTsKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBmdW5jdGlvbiB2aXNpYmxlTGluZXMoKSB7CiAgICAgIHZhciBsaCA9IGxpbmVIZWlnaHQoKSwgdG9wID0gc2Nyb2xsZXIuc2Nyb2xsVG9wIC0gcGFkZGluZ1RvcCgpOwogICAgICByZXR1cm4ge2Zyb206IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgTWF0aC5tYXgoMCwgTWF0aC5mbG9vcih0b3AgLyBsaCkpKSwKICAgICAgICAgICAgICB0bzogTWF0aC5taW4obGluZXMubGVuZ3RoLCBNYXRoLmNlaWwoKHRvcCArIHNjcm9sbGVyLmNsaWVudEhlaWdodCkgLyBsaCkpfTsKICAgIH0KICAgIC8vIFVzZXMgYSBzZXQgb2YgY2hhbmdlcyBwbHVzIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiB0bwogICAgLy8gZGV0ZXJtaW5lIHdoaWNoIERPTSB1cGRhdGVzIGhhdmUgdG8gYmUgbWFkZSwgYW5kIG1ha2VzIHRoZQogICAgLy8gdXBkYXRlcy4KICAgIGZ1bmN0aW9uIHVwZGF0ZURpc3BsYXkoY2hhbmdlcykgewogICAgICBpZiAoIXNjcm9sbGVyLmNsaWVudFdpZHRoKSB7CiAgICAgICAgc2hvd2luZ0Zyb20gPSBzaG93aW5nVG8gPSAwOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAvLyBGaXJzdCBjcmVhdGUgYSByYW5nZSBvZiB0aGVvcmV0aWNhbGx5IGludGFjdCBsaW5lcywgYW5kIHB1bmNoCiAgICAgIC8vIGhvbGVzIGluIHRoYXQgdXNpbmcgdGhlIGNoYW5nZSBpbmZvLgogICAgICB2YXIgaW50YWN0ID0gY2hhbmdlcyA9PT0gdHJ1ZSA/IFtdIDogW3tmcm9tOiBzaG93aW5nRnJvbSwgdG86IHNob3dpbmdUbywgZG9tU3RhcnQ6IDB9XTsKICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBjaGFuZ2VzLmxlbmd0aCB8fCAwOyBpIDwgbDsgKytpKSB7CiAgICAgICAgdmFyIGNoYW5nZSA9IGNoYW5nZXNbaV0sIGludGFjdDIgPSBbXSwgZGlmZiA9IGNoYW5nZS5kaWZmIHx8IDA7CiAgICAgICAgZm9yICh2YXIgaiA9IDAsIGwyID0gaW50YWN0Lmxlbmd0aDsgaiA8IGwyOyArK2opIHsKICAgICAgICAgIHZhciByYW5nZSA9IGludGFjdFtqXTsKICAgICAgICAgIGlmIChjaGFuZ2UudG8gPD0gcmFuZ2UuZnJvbSkKICAgICAgICAgICAgaW50YWN0Mi5wdXNoKHtmcm9tOiByYW5nZS5mcm9tICsgZGlmZiwgdG86IHJhbmdlLnRvICsgZGlmZiwgZG9tU3RhcnQ6IHJhbmdlLmRvbVN0YXJ0fSk7CiAgICAgICAgICBlbHNlIGlmIChyYW5nZS50byA8PSBjaGFuZ2UuZnJvbSkKICAgICAgICAgICAgaW50YWN0Mi5wdXNoKHJhbmdlKTsKICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoY2hhbmdlLmZyb20gPiByYW5nZS5mcm9tKQogICAgICAgICAgICAgIGludGFjdDIucHVzaCh7ZnJvbTogcmFuZ2UuZnJvbSwgdG86IGNoYW5nZS5mcm9tLCBkb21TdGFydDogcmFuZ2UuZG9tU3RhcnR9KQogICAgICAgICAgICBpZiAoY2hhbmdlLnRvIDwgcmFuZ2UudG8pCiAgICAgICAgICAgICAgaW50YWN0Mi5wdXNoKHtmcm9tOiBjaGFuZ2UudG8gKyBkaWZmLCB0bzogcmFuZ2UudG8gKyBkaWZmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tU3RhcnQ6IHJhbmdlLmRvbVN0YXJ0ICsgKGNoYW5nZS50byAtIHJhbmdlLmZyb20pfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGludGFjdCA9IGludGFjdDI7CiAgICAgIH0KCiAgICAgIC8vIFRoZW4sIGRldGVybWluZSB3aGljaCBsaW5lcyB3ZSdkIHdhbnQgdG8gc2VlLCBhbmQgd2hpY2gKICAgICAgLy8gdXBkYXRlcyBoYXZlIHRvIGJlIG1hZGUgdG8gZ2V0IHRoZXJlLgogICAgICB2YXIgdmlzaWJsZSA9IHZpc2libGVMaW5lcygpOwogICAgICB2YXIgZnJvbSA9IE1hdGgubWluKHNob3dpbmdGcm9tLCBNYXRoLm1heCh2aXNpYmxlLmZyb20gLSAzLCAwKSksCiAgICAgICAgICB0byA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgTWF0aC5tYXgoc2hvd2luZ1RvLCB2aXNpYmxlLnRvICsgMykpLAogICAgICAgICAgdXBkYXRlcyA9IFtdLCBkb21Qb3MgPSAwLCBkb21FbmQgPSBzaG93aW5nVG8gLSBzaG93aW5nRnJvbSwgcG9zID0gZnJvbSwgY2hhbmdlZExpbmVzID0gMDsKCiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gaW50YWN0Lmxlbmd0aDsgaSA8IGw7ICsraSkgewogICAgICAgIHZhciByYW5nZSA9IGludGFjdFtpXTsKICAgICAgICBpZiAocmFuZ2UudG8gPD0gZnJvbSkgY29udGludWU7CiAgICAgICAgaWYgKHJhbmdlLmZyb20gPj0gdG8pIGJyZWFrOwogICAgICAgIGlmIChyYW5nZS5kb21TdGFydCA+IGRvbVBvcyB8fCByYW5nZS5mcm9tID4gcG9zKSB7CiAgICAgICAgICB1cGRhdGVzLnB1c2goe2Zyb206IHBvcywgdG86IHJhbmdlLmZyb20sIGRvbVNpemU6IHJhbmdlLmRvbVN0YXJ0IC0gZG9tUG9zLCBkb21TdGFydDogZG9tUG9zfSk7CiAgICAgICAgICBjaGFuZ2VkTGluZXMgKz0gcmFuZ2UuZnJvbSAtIHBvczsKICAgICAgICB9CiAgICAgICAgcG9zID0gcmFuZ2UudG87CiAgICAgICAgZG9tUG9zID0gcmFuZ2UuZG9tU3RhcnQgKyAocmFuZ2UudG8gLSByYW5nZS5mcm9tKTsKICAgICAgfQogICAgICBpZiAoZG9tUG9zICE9IGRvbUVuZCB8fCBwb3MgIT0gdG8pIHsKICAgICAgICBjaGFuZ2VkTGluZXMgKz0gTWF0aC5hYnModG8gLSBwb3MpOwogICAgICAgIHVwZGF0ZXMucHVzaCh7ZnJvbTogcG9zLCB0bzogdG8sIGRvbVNpemU6IGRvbUVuZCAtIGRvbVBvcywgZG9tU3RhcnQ6IGRvbVBvc30pOwogICAgICB9CgogICAgICBpZiAoIXVwZGF0ZXMubGVuZ3RoKSByZXR1cm47CiAgICAgIGxpbmVEaXYuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgLy8gSWYgbW9yZSB0aGFuIDMwJSBvZiB0aGUgc2NyZWVuIG5lZWRzIHVwZGF0ZSwganVzdCBkbyBhIGZ1bGwKICAgICAgLy8gcmVkcmF3ICh3aGljaCBpcyBxdWlja2VyIHRoYW4gcGF0Y2hpbmcpCiAgICAgIGlmIChjaGFuZ2VkTGluZXMgPiAodmlzaWJsZS50byAtIHZpc2libGUuZnJvbSkgKiAuMykKICAgICAgICByZWZyZXNoRGlzcGxheShmcm9tID0gTWF0aC5tYXgodmlzaWJsZS5mcm9tIC0gMTAsIDApLCB0byA9IE1hdGgubWluKHZpc2libGUudG8gKyA3LCBsaW5lcy5sZW5ndGgpKTsKICAgICAgLy8gT3RoZXJ3aXNlLCBvbmx5IHVwZGF0ZSB0aGUgc3R1ZmYgdGhhdCBuZWVkcyB1cGRhdGluZy4KICAgICAgZWxzZQogICAgICAgIHBhdGNoRGlzcGxheSh1cGRhdGVzKTsKICAgICAgbGluZURpdi5zdHlsZS5kaXNwbGF5ID0gIiI7CgogICAgICAvLyBQb3NpdGlvbiB0aGUgbW92ZXIgZGl2IHRvIGFsaWduIHdpdGggdGhlIGxpbmVzIGl0J3Mgc3VwcG9zZWQKICAgICAgLy8gdG8gYmUgc2hvd2luZyAod2hpY2ggd2lsbCBjb3ZlciB0aGUgdmlzaWJsZSBkaXNwbGF5KQogICAgICB2YXIgZGlmZmVyZW50ID0gZnJvbSAhPSBzaG93aW5nRnJvbSB8fCB0byAhPSBzaG93aW5nVG8gfHwgbGFzdEhlaWdodCAhPSBzY3JvbGxlci5jbGllbnRIZWlnaHQ7CiAgICAgIHNob3dpbmdGcm9tID0gZnJvbTsgc2hvd2luZ1RvID0gdG87CiAgICAgIG1vdmVyLnN0eWxlLnRvcCA9IChmcm9tICogbGluZUhlaWdodCgpKSArICJweCI7CiAgICAgIGlmIChkaWZmZXJlbnQpIHsKICAgICAgICBsYXN0SGVpZ2h0ID0gc2Nyb2xsZXIuY2xpZW50SGVpZ2h0OwogICAgICAgIGNvZGUuc3R5bGUuaGVpZ2h0ID0gKGxpbmVzLmxlbmd0aCAqIGxpbmVIZWlnaHQoKSArIDIgKiBwYWRkaW5nVG9wKCkpICsgInB4IjsKICAgICAgfQogICAgICBpZiAoZGlmZmVyZW50IHx8IHVwZGF0ZXMubGVuZ3RoKSB1cGRhdGVHdXR0ZXIoKTsKCiAgICAgIGlmIChtYXhXaWR0aCA9PSBudWxsKSBtYXhXaWR0aCA9IHN0cmluZ1dpZHRoKG1heExpbmUpOwogICAgICBpZiAobWF4V2lkdGggPiBzY3JvbGxlci5jbGllbnRXaWR0aCkgewogICAgICAgIGxpbmVTcGFjZS5zdHlsZS53aWR0aCA9IG1heFdpZHRoICsgInB4IjsKICAgICAgICAvLyBOZWVkZWQgdG8gcHJldmVudCBvZGQgd3JhcHBpbmcvaGlkaW5nIG9mIHdpZGdldHMgcGxhY2VkIGluIGhlcmUuCiAgICAgICAgY29kZS5zdHlsZS53aWR0aCA9ICIiOwogICAgICAgIGNvZGUuc3R5bGUud2lkdGggPSBzY3JvbGxlci5zY3JvbGxXaWR0aCArICJweCI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbGluZVNwYWNlLnN0eWxlLndpZHRoID0gY29kZS5zdHlsZS53aWR0aCA9ICIiOwogICAgICB9CgogICAgICAvLyBTaW5jZSB0aGlzIGlzIGFsbCByYXRoZXIgZXJyb3IgcHJvbmUsIGl0IGlzIGhvbm91cmVkIHdpdGggdGhlCiAgICAgIC8vIG9ubHkgYXNzZXJ0aW9uIGluIHRoZSB3aG9sZSBmaWxlLgogICAgICBpZiAobGluZURpdi5jaGlsZE5vZGVzLmxlbmd0aCAhPSBzaG93aW5nVG8gLSBzaG93aW5nRnJvbSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJBRCBQQVRDSCEgIiArIEpTT04uc3RyaW5naWZ5KHVwZGF0ZXMpICsgIiBzaXplPSIgKyAoc2hvd2luZ1RvIC0gc2hvd2luZ0Zyb20pICsKICAgICAgICAgICAgICAgICAgICAgICAgIiBub2Rlcz0iICsgbGluZURpdi5jaGlsZE5vZGVzLmxlbmd0aCk7CiAgICAgIHVwZGF0ZUN1cnNvcigpOwogICAgfQoKICAgIGZ1bmN0aW9uIHJlZnJlc2hEaXNwbGF5KGZyb20sIHRvKSB7CiAgICAgIHZhciBodG1sID0gW10sIHN0YXJ0ID0ge2xpbmU6IGZyb20sIGNoOiAwfSwgaW5TZWwgPSBwb3NMZXNzKHNlbC5mcm9tLCBzdGFydCkgJiYgIXBvc0xlc3Moc2VsLnRvLCBzdGFydCk7CiAgICAgIGZvciAodmFyIGkgPSBmcm9tOyBpIDwgdG87ICsraSkgewogICAgICAgIHZhciBjaDEgPSBudWxsLCBjaDIgPSBudWxsOwogICAgICAgIGlmIChpblNlbCkgewogICAgICAgICAgY2gxID0gMDsKICAgICAgICAgIGlmIChzZWwudG8ubGluZSA9PSBpKSB7aW5TZWwgPSBmYWxzZTsgY2gyID0gc2VsLnRvLmNoO30KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoc2VsLmZyb20ubGluZSA9PSBpKSB7CiAgICAgICAgICBpZiAoc2VsLnRvLmxpbmUgPT0gaSkge2NoMSA9IHNlbC5mcm9tLmNoOyBjaDIgPSBzZWwudG8uY2g7fQogICAgICAgICAgZWxzZSB7aW5TZWwgPSB0cnVlOyBjaDEgPSBzZWwuZnJvbS5jaDt9CiAgICAgICAgfQogICAgICAgIGh0bWwucHVzaChsaW5lc1tpXS5nZXRIVE1MKGNoMSwgY2gyLCB0cnVlKSk7CiAgICAgIH0KICAgICAgbGluZURpdi5pbm5lckhUTUwgPSBodG1sLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gcGF0Y2hEaXNwbGF5KHVwZGF0ZXMpIHsKICAgICAgLy8gU2xpZ2h0bHkgZGlmZmVyZW50IGFsZ29yaXRobSBmb3IgSUUgKGJhZElubmVySFRNTCksIHNpbmNlCiAgICAgIC8vIHRoZXJlIC5pbm5lckhUTUwgb24gUFJFIG5vZGVzIGlzIGR1bWIsIGFuZCBkaXNjYXJkcwogICAgICAvLyB3aGl0ZXNwYWNlLgogICAgICB2YXIgc2Zyb20gPSBzZWwuZnJvbS5saW5lLCBzdG8gPSBzZWwudG8ubGluZSwgb2ZmID0gMCwKICAgICAgICAgIHNjcmF0Y2ggPSBiYWRJbm5lckhUTUwgJiYgdGFyZ2V0RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIGZvciAodmFyIGkgPSAwLCBlID0gdXBkYXRlcy5sZW5ndGg7IGkgPCBlOyArK2kpIHsKICAgICAgICB2YXIgcmVjID0gdXBkYXRlc1tpXTsKICAgICAgICB2YXIgZXh0cmEgPSAocmVjLnRvIC0gcmVjLmZyb20pIC0gcmVjLmRvbVNpemU7CiAgICAgICAgdmFyIG5vZGVBZnRlciA9IGxpbmVEaXYuY2hpbGROb2Rlc1tyZWMuZG9tU3RhcnQgKyByZWMuZG9tU2l6ZSArIG9mZl0gfHwgbnVsbDsKICAgICAgICBpZiAoYmFkSW5uZXJIVE1MKQogICAgICAgICAgZm9yICh2YXIgaiA9IE1hdGgubWF4KC1leHRyYSwgcmVjLmRvbVNpemUpOyBqID4gMDsgLS1qKQogICAgICAgICAgICBsaW5lRGl2LnJlbW92ZUNoaWxkKG5vZGVBZnRlciA/IG5vZGVBZnRlci5wcmV2aW91c1NpYmxpbmcgOiBsaW5lRGl2Lmxhc3RDaGlsZCk7CiAgICAgICAgZWxzZSBpZiAoZXh0cmEpIHsKICAgICAgICAgIGZvciAodmFyIGogPSBNYXRoLm1heCgwLCBleHRyYSk7IGogPiAwOyAtLWopCiAgICAgICAgICAgIGxpbmVEaXYuaW5zZXJ0QmVmb3JlKHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpLCBub2RlQWZ0ZXIpOwogICAgICAgICAgZm9yICh2YXIgaiA9IE1hdGgubWF4KDAsIC1leHRyYSk7IGogPiAwOyAtLWopCiAgICAgICAgICAgIGxpbmVEaXYucmVtb3ZlQ2hpbGQobm9kZUFmdGVyID8gbm9kZUFmdGVyLnByZXZpb3VzU2libGluZyA6IGxpbmVEaXYubGFzdENoaWxkKTsKICAgICAgICB9CiAgICAgICAgdmFyIG5vZGUgPSBsaW5lRGl2LmNoaWxkTm9kZXNbcmVjLmRvbVN0YXJ0ICsgb2ZmXSwgaW5TZWwgPSBzZnJvbSA8IHJlYy5mcm9tICYmIHN0byA+PSByZWMuZnJvbTsKICAgICAgICBmb3IgKHZhciBqID0gcmVjLmZyb207IGogPCByZWMudG87ICsraikgewogICAgICAgICAgdmFyIGNoMSA9IG51bGwsIGNoMiA9IG51bGw7CiAgICAgICAgICBpZiAoaW5TZWwpIHsKICAgICAgICAgICAgY2gxID0gMDsKICAgICAgICAgICAgaWYgKHN0byA9PSBqKSB7aW5TZWwgPSBmYWxzZTsgY2gyID0gc2VsLnRvLmNoO30KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKHNmcm9tID09IGopIHsKICAgICAgICAgICAgaWYgKHN0byA9PSBqKSB7Y2gxID0gc2VsLmZyb20uY2g7IGNoMiA9IHNlbC50by5jaDt9CiAgICAgICAgICAgIGVsc2Uge2luU2VsID0gdHJ1ZTsgY2gxID0gc2VsLmZyb20uY2g7fQogICAgICAgICAgfQogICAgICAgICAgaWYgKGJhZElubmVySFRNTCkgewogICAgICAgICAgICBzY3JhdGNoLmlubmVySFRNTCA9IGxpbmVzW2pdLmdldEhUTUwoY2gxLCBjaDIsIHRydWUpOwogICAgICAgICAgICBsaW5lRGl2Lmluc2VydEJlZm9yZShzY3JhdGNoLmZpcnN0Q2hpbGQsIG5vZGVBZnRlcik7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBsaW5lc1tqXS5nZXRIVE1MKGNoMSwgY2gyLCBmYWxzZSk7CiAgICAgICAgICAgIG5vZGUuY2xhc3NOYW1lID0gbGluZXNbal0uY2xhc3NOYW1lIHx8ICIiOwogICAgICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgb2ZmICs9IGV4dHJhOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlR3V0dGVyKCkgewogICAgICBpZiAoIW9wdGlvbnMuZ3V0dGVyICYmICFvcHRpb25zLmxpbmVOdW1iZXJzKSByZXR1cm47CiAgICAgIHZhciBoVGV4dCA9IG1vdmVyLm9mZnNldEhlaWdodCwgaEVkaXRvciA9IHNjcm9sbGVyLmNsaWVudEhlaWdodDsKICAgICAgZ3V0dGVyLnN0eWxlLmhlaWdodCA9IChoVGV4dCAtIGhFZGl0b3IgPCAyID8gaEVkaXRvciA6IGhUZXh0KSArICJweCI7CiAgICAgIHZhciBodG1sID0gW107CiAgICAgIGZvciAodmFyIGkgPSBzaG93aW5nRnJvbTsgaSA8IE1hdGgubWF4KHNob3dpbmdUbywgc2hvd2luZ0Zyb20gKyAxKTsgKytpKSB7CiAgICAgICAgdmFyIG1hcmtlciA9IGxpbmVzW2ldLmd1dHRlck1hcmtlcjsKICAgICAgICB2YXIgdGV4dCA9IG9wdGlvbnMubGluZU51bWJlcnMgPyBpICsgb3B0aW9ucy5maXJzdExpbmVOdW1iZXIgOiBudWxsOwogICAgICAgIGlmIChtYXJrZXIgJiYgbWFya2VyLnRleHQpCiAgICAgICAgICB0ZXh0ID0gbWFya2VyLnRleHQucmVwbGFjZSgiJU4lIiwgdGV4dCAhPSBudWxsID8gdGV4dCA6ICIiKTsKICAgICAgICBlbHNlIGlmICh0ZXh0ID09IG51bGwpCiAgICAgICAgICB0ZXh0ID0gIlx1MDBhMCI7CiAgICAgICAgaHRtbC5wdXNoKChtYXJrZXIgJiYgbWFya2VyLnN0eWxlID8gJzxwcmUgY2xhc3M9IicgKyBtYXJrZXIuc3R5bGUgKyAnIj4nIDogIjxwcmU+IiksIHRleHQsICI8L3ByZT4iKTsKICAgICAgfQogICAgICBndXR0ZXIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgZ3V0dGVyVGV4dC5pbm5lckhUTUwgPSBodG1sLmpvaW4oIiIpOwogICAgICB2YXIgbWlud2lkdGggPSBTdHJpbmcobGluZXMubGVuZ3RoKS5sZW5ndGgsIGZpcnN0Tm9kZSA9IGd1dHRlclRleHQuZmlyc3RDaGlsZCwgdmFsID0gZWx0VGV4dChmaXJzdE5vZGUpLCBwYWQgPSAiIjsKICAgICAgd2hpbGUgKHZhbC5sZW5ndGggKyBwYWQubGVuZ3RoIDwgbWlud2lkdGgpIHBhZCArPSAiXHUwMGEwIjsKICAgICAgaWYgKHBhZCkgZmlyc3ROb2RlLmluc2VydEJlZm9yZSh0YXJnZXREb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShwYWQpLCBmaXJzdE5vZGUuZmlyc3RDaGlsZCk7CiAgICAgIGd1dHRlci5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgIGxpbmVTcGFjZS5zdHlsZS5tYXJnaW5MZWZ0ID0gZ3V0dGVyLm9mZnNldFdpZHRoICsgInB4IjsKICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUN1cnNvcigpIHsKICAgICAgdmFyIGhlYWQgPSBzZWwuaW52ZXJ0ZWQgPyBzZWwuZnJvbSA6IHNlbC50bywgbGggPSBsaW5lSGVpZ2h0KCk7CiAgICAgIHZhciB4ID0gY2hhclgoaGVhZC5saW5lLCBoZWFkLmNoKTsKICAgICAgaW5wdXREaXYuc3R5bGUudG9wID0gKGhlYWQubGluZSAqIGxoIC0gc2Nyb2xsZXIuc2Nyb2xsVG9wKSArICJweCI7CiAgICAgIGlucHV0RGl2LnN0eWxlLmxlZnQgPSAoeCAtIHNjcm9sbGVyLnNjcm9sbExlZnQpICsgInB4IjsKICAgICAgaWYgKHBvc0VxKHNlbC5mcm9tLCBzZWwudG8pKSB7CiAgICAgICAgY3Vyc29yLnN0eWxlLnRvcCA9IChoZWFkLmxpbmUgLSBzaG93aW5nRnJvbSkgKiBsaCArICJweCI7CiAgICAgICAgY3Vyc29yLnN0eWxlLmxlZnQgPSB4ICsgInB4IjsKICAgICAgICBjdXJzb3Iuc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICB9CiAgICAgIGVsc2UgY3Vyc29yLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICB9CgogICAgZnVuY3Rpb24gc2V0U2VsZWN0aW9uVXNlcihmcm9tLCB0bykgewogICAgICB2YXIgc2ggPSBzaGlmdFNlbGVjdGluZyAmJiBjbGlwUG9zKHNoaWZ0U2VsZWN0aW5nKTsKICAgICAgaWYgKHNoKSB7CiAgICAgICAgaWYgKHBvc0xlc3Moc2gsIGZyb20pKSBmcm9tID0gc2g7CiAgICAgICAgZWxzZSBpZiAocG9zTGVzcyh0bywgc2gpKSB0byA9IHNoOwogICAgICB9CiAgICAgIHNldFNlbGVjdGlvbihmcm9tLCB0byk7CiAgICB9CiAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGlvbi4gTGFzdCB0d28gYXJncyBhcmUgb25seSB1c2VkIGJ5CiAgICAvLyB1cGRhdGVMaW5lcywgc2luY2UgdGhleSBoYXZlIHRvIGJlIGV4cHJlc3NlZCBpbiB0aGUgbGluZQogICAgLy8gbnVtYmVycyBiZWZvcmUgdGhlIHVwZGF0ZS4KICAgIGZ1bmN0aW9uIHNldFNlbGVjdGlvbihmcm9tLCB0bywgb2xkRnJvbSwgb2xkVG8pIHsKICAgICAgaWYgKHBvc0VxKHNlbC5mcm9tLCBmcm9tKSAmJiBwb3NFcShzZWwudG8sIHRvKSkgcmV0dXJuOwogICAgICBpZiAocG9zTGVzcyh0bywgZnJvbSkpIHt2YXIgdG1wID0gdG87IHRvID0gZnJvbTsgZnJvbSA9IHRtcDt9CgogICAgICBpZiAocG9zRXEoZnJvbSwgdG8pKSBzZWwuaW52ZXJ0ZWQgPSBmYWxzZTsKICAgICAgZWxzZSBpZiAocG9zRXEoZnJvbSwgc2VsLnRvKSkgc2VsLmludmVydGVkID0gZmFsc2U7CiAgICAgIGVsc2UgaWYgKHBvc0VxKHRvLCBzZWwuZnJvbSkpIHNlbC5pbnZlcnRlZCA9IHRydWU7CgogICAgICAvLyBTb21lIHVnbHkgbG9naWMgdXNlZCB0byBvbmx5IG1hcmsgdGhlIGxpbmVzIHRoYXQgYWN0dWFsbHkgZGlkCiAgICAgIC8vIHNlZSBhIGNoYW5nZSBpbiBzZWxlY3Rpb24gYXMgY2hhbmdlZCwgcmF0aGVyIHRoYW4gdGhlIHdob2xlCiAgICAgIC8vIHNlbGVjdGVkIHJhbmdlLgogICAgICBpZiAob2xkRnJvbSA9PSBudWxsKSB7b2xkRnJvbSA9IHNlbC5mcm9tLmxpbmU7IG9sZFRvID0gc2VsLnRvLmxpbmU7fQogICAgICBpZiAocG9zRXEoZnJvbSwgdG8pKSB7CiAgICAgICAgaWYgKCFwb3NFcShzZWwuZnJvbSwgc2VsLnRvKSkKICAgICAgICAgIGNoYW5nZXMucHVzaCh7ZnJvbTogb2xkRnJvbSwgdG86IG9sZFRvICsgMX0pOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHBvc0VxKHNlbC5mcm9tLCBzZWwudG8pKSB7CiAgICAgICAgY2hhbmdlcy5wdXNoKHtmcm9tOiBmcm9tLmxpbmUsIHRvOiB0by5saW5lICsgMX0pOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIGlmICghcG9zRXEoZnJvbSwgc2VsLmZyb20pKSB7CiAgICAgICAgICBpZiAoZnJvbS5saW5lIDwgb2xkRnJvbSkKICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHtmcm9tOiBmcm9tLmxpbmUsIHRvOiBNYXRoLm1pbih0by5saW5lLCBvbGRGcm9tKSArIDF9KTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHtmcm9tOiBvbGRGcm9tLCB0bzogTWF0aC5taW4ob2xkVG8sIGZyb20ubGluZSkgKyAxfSk7CiAgICAgICAgfQogICAgICAgIGlmICghcG9zRXEodG8sIHNlbC50bykpIHsKICAgICAgICAgIGlmICh0by5saW5lIDwgb2xkVG8pCiAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7ZnJvbTogTWF0aC5tYXgob2xkRnJvbSwgZnJvbS5saW5lKSwgdG86IG9sZFRvICsgMX0pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICBjaGFuZ2VzLnB1c2goe2Zyb206IE1hdGgubWF4KGZyb20ubGluZSwgb2xkVG8pLCB0bzogdG8ubGluZSArIDF9KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgc2VsLmZyb20gPSBmcm9tOyBzZWwudG8gPSB0bzsKICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBzZXRDdXJzb3IobGluZSwgY2gsIHVzZXIpIHsKICAgICAgdmFyIHBvcyA9IGNsaXBQb3Moe2xpbmU6IGxpbmUsIGNoOiBjaCB8fCAwfSk7CiAgICAgICh1c2VyID8gc2V0U2VsZWN0aW9uVXNlciA6IHNldFNlbGVjdGlvbikocG9zLCBwb3MpOwogICAgfQoKICAgIGZ1bmN0aW9uIGNsaXBMaW5lKG4pIHtyZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4obiwgbGluZXMubGVuZ3RoLTEpKTt9CiAgICBmdW5jdGlvbiBjbGlwUG9zKHBvcykgewogICAgICBpZiAocG9zLmxpbmUgPCAwKSByZXR1cm4ge2xpbmU6IDAsIGNoOiAwfTsKICAgICAgaWYgKHBvcy5saW5lID49IGxpbmVzLmxlbmd0aCkgcmV0dXJuIHtsaW5lOiBsaW5lcy5sZW5ndGgtMSwgY2g6IGxpbmVzW2xpbmVzLmxlbmd0aC0xXS50ZXh0Lmxlbmd0aH07CiAgICAgIHZhciBjaCA9IHBvcy5jaCwgbGluZWxlbiA9IGxpbmVzW3Bvcy5saW5lXS50ZXh0Lmxlbmd0aDsKICAgICAgaWYgKGNoID09IG51bGwgfHwgY2ggPiBsaW5lbGVuKSByZXR1cm4ge2xpbmU6IHBvcy5saW5lLCBjaDogbGluZWxlbn07CiAgICAgIGVsc2UgaWYgKGNoIDwgMCkgcmV0dXJuIHtsaW5lOiBwb3MubGluZSwgY2g6IDB9OwogICAgICBlbHNlIHJldHVybiBwb3M7CiAgICB9CgogICAgZnVuY3Rpb24gc2Nyb2xsUGFnZShkb3duKSB7CiAgICAgIHZhciBsaW5lc1BlclBhZ2UgPSBNYXRoLmZsb29yKHNjcm9sbGVyLmNsaWVudEhlaWdodCAvIGxpbmVIZWlnaHQoKSksIGhlYWQgPSBzZWwuaW52ZXJ0ZWQgPyBzZWwuZnJvbSA6IHNlbC50bzsKICAgICAgc2V0Q3Vyc29yKGhlYWQubGluZSArIChNYXRoLm1heChsaW5lc1BlclBhZ2UgLSAxLCAxKSAqIChkb3duID8gMSA6IC0xKSksIGhlYWQuY2gsIHRydWUpOwogICAgfQogICAgZnVuY3Rpb24gc2Nyb2xsRW5kKHRvcCkgewogICAgICB2YXIgcG9zID0gdG9wID8ge2xpbmU6IDAsIGNoOiAwfSA6IHtsaW5lOiBsaW5lcy5sZW5ndGggLSAxLCBjaDogbGluZXNbbGluZXMubGVuZ3RoLTFdLnRleHQubGVuZ3RofTsKICAgICAgc2V0U2VsZWN0aW9uVXNlcihwb3MsIHBvcyk7CiAgICB9CiAgICBmdW5jdGlvbiBzZWxlY3RBbGwoKSB7CiAgICAgIHZhciBlbmRMaW5lID0gbGluZXMubGVuZ3RoIC0gMTsKICAgICAgc2V0U2VsZWN0aW9uKHtsaW5lOiAwLCBjaDogMH0sIHtsaW5lOiBlbmRMaW5lLCBjaDogbGluZXNbZW5kTGluZV0udGV4dC5sZW5ndGh9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHNlbGVjdFdvcmRBdChwb3MpIHsKICAgICAgdmFyIGxpbmUgPSBsaW5lc1twb3MubGluZV0udGV4dDsKICAgICAgdmFyIHN0YXJ0ID0gcG9zLmNoLCBlbmQgPSBwb3MuY2g7CiAgICAgIHdoaWxlIChzdGFydCA+IDAgJiYgL1x3Ly50ZXN0KGxpbmUuY2hhckF0KHN0YXJ0IC0gMSkpKSAtLXN0YXJ0OwogICAgICB3aGlsZSAoZW5kIDwgbGluZS5sZW5ndGggJiYgL1x3Ly50ZXN0KGxpbmUuY2hhckF0KGVuZCkpKSArK2VuZDsKICAgICAgc2V0U2VsZWN0aW9uVXNlcih7bGluZTogcG9zLmxpbmUsIGNoOiBzdGFydH0sIHtsaW5lOiBwb3MubGluZSwgY2g6IGVuZH0pOwogICAgfQogICAgZnVuY3Rpb24gc2VsZWN0TGluZShsaW5lKSB7CiAgICAgIHNldFNlbGVjdGlvblVzZXIoe2xpbmU6IGxpbmUsIGNoOiAwfSwge2xpbmU6IGxpbmUsIGNoOiBsaW5lc1tsaW5lXS50ZXh0Lmxlbmd0aH0pOwogICAgfQogICAgZnVuY3Rpb24gaGFuZGxlRW50ZXIoKSB7CiAgICAgIHJlcGxhY2VTZWxlY3Rpb24oIlxuIiwgImVuZCIpOwogICAgICBpZiAob3B0aW9ucy5lbnRlck1vZGUgIT0gImZsYXQiKQogICAgICAgIGluZGVudExpbmUoc2VsLmZyb20ubGluZSwgb3B0aW9ucy5lbnRlck1vZGUgPT0gImtlZXAiID8gInByZXYiIDogInNtYXJ0Iik7CiAgICB9CiAgICBmdW5jdGlvbiBoYW5kbGVUYWIoc2hpZnQpIHsKICAgICAgZnVuY3Rpb24gaW5kZW50U2VsZWN0ZWQobW9kZSkgewogICAgICAgIGlmIChwb3NFcShzZWwuZnJvbSwgc2VsLnRvKSkgcmV0dXJuIGluZGVudExpbmUoc2VsLmZyb20ubGluZSwgbW9kZSk7CiAgICAgICAgdmFyIGUgPSBzZWwudG8ubGluZSAtIChzZWwudG8uY2ggPyAwIDogMSk7CiAgICAgICAgZm9yICh2YXIgaSA9IHNlbC5mcm9tLmxpbmU7IGkgPD0gZTsgKytpKSBpbmRlbnRMaW5lKGksIG1vZGUpOwogICAgICB9CiAgICAgIHNoaWZ0U2VsZWN0aW5nID0gbnVsbDsKICAgICAgc3dpdGNoIChvcHRpb25zLnRhYk1vZGUpIHsKICAgICAgY2FzZSAiZGVmYXVsdCI6CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICBjYXNlICJpbmRlbnQiOgogICAgICAgIGluZGVudFNlbGVjdGVkKCJzbWFydCIpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlICJjbGFzc2ljIjoKICAgICAgICBpZiAocG9zRXEoc2VsLmZyb20sIHNlbC50bykpIHsKICAgICAgICAgIGlmIChzaGlmdCkgaW5kZW50TGluZShzZWwuZnJvbS5saW5lLCAic21hcnQiKTsKICAgICAgICAgIGVsc2UgcmVwbGFjZVNlbGVjdGlvbigiXHQiLCAiZW5kIik7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIGNhc2UgInNoaWZ0IjoKICAgICAgICBpbmRlbnRTZWxlY3RlZChzaGlmdCA/ICJzdWJ0cmFjdCIgOiAiYWRkIik7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBzbWFydEhvbWUoKSB7CiAgICAgIHZhciBmaXJzdE5vbldTID0gTWF0aC5tYXgoMCwgbGluZXNbc2VsLmZyb20ubGluZV0udGV4dC5zZWFyY2goL1xTLykpOwogICAgICBzZXRDdXJzb3Ioc2VsLmZyb20ubGluZSwgc2VsLmZyb20uY2ggPD0gZmlyc3ROb25XUyAmJiBzZWwuZnJvbS5jaCA/IDAgOiBmaXJzdE5vbldTLCB0cnVlKTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbmRlbnRMaW5lKG4sIGhvdykgewogICAgICBpZiAoaG93ID09ICJzbWFydCIpIHsKICAgICAgICBpZiAoIW1vZGUuaW5kZW50KSBob3cgPSAicHJldiI7CiAgICAgICAgZWxzZSB2YXIgc3RhdGUgPSBnZXRTdGF0ZUJlZm9yZShuKTsKICAgICAgfQoKICAgICAgdmFyIGxpbmUgPSBsaW5lc1tuXSwgY3VyU3BhY2UgPSBsaW5lLmluZGVudGF0aW9uKCksIGN1clNwYWNlU3RyaW5nID0gbGluZS50ZXh0Lm1hdGNoKC9eXHMqLylbMF0sIGluZGVudGF0aW9uOwogICAgICBpZiAoaG93ID09ICJwcmV2IikgewogICAgICAgIGlmIChuKSBpbmRlbnRhdGlvbiA9IGxpbmVzW24tMV0uaW5kZW50YXRpb24oKTsKICAgICAgICBlbHNlIGluZGVudGF0aW9uID0gMDsKICAgICAgfQogICAgICBlbHNlIGlmIChob3cgPT0gInNtYXJ0IikgaW5kZW50YXRpb24gPSBtb2RlLmluZGVudChzdGF0ZSwgbGluZS50ZXh0LnNsaWNlKGN1clNwYWNlU3RyaW5nLmxlbmd0aCkpOwogICAgICBlbHNlIGlmIChob3cgPT0gImFkZCIpIGluZGVudGF0aW9uID0gY3VyU3BhY2UgKyBvcHRpb25zLmluZGVudFVuaXQ7CiAgICAgIGVsc2UgaWYgKGhvdyA9PSAic3VidHJhY3QiKSBpbmRlbnRhdGlvbiA9IGN1clNwYWNlIC0gb3B0aW9ucy5pbmRlbnRVbml0OwogICAgICBpbmRlbnRhdGlvbiA9IE1hdGgubWF4KDAsIGluZGVudGF0aW9uKTsKICAgICAgdmFyIGRpZmYgPSBpbmRlbnRhdGlvbiAtIGN1clNwYWNlOwoKICAgICAgaWYgKCFkaWZmKSB7CiAgICAgICAgaWYgKHNlbC5mcm9tLmxpbmUgIT0gbiAmJiBzZWwudG8ubGluZSAhPSBuKSByZXR1cm47CiAgICAgICAgdmFyIGluZGVudFN0cmluZyA9IGN1clNwYWNlU3RyaW5nOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHZhciBpbmRlbnRTdHJpbmcgPSAiIiwgcG9zID0gMDsKICAgICAgICBpZiAob3B0aW9ucy5pbmRlbnRXaXRoVGFicykKICAgICAgICAgIGZvciAodmFyIGkgPSBNYXRoLmZsb29yKGluZGVudGF0aW9uIC8gdGFiU2l6ZSk7IGk7IC0taSkge3BvcyArPSB0YWJTaXplOyBpbmRlbnRTdHJpbmcgKz0gIlx0Ijt9CiAgICAgICAgd2hpbGUgKHBvcyA8IGluZGVudGF0aW9uKSB7Kytwb3M7IGluZGVudFN0cmluZyArPSAiICI7fQogICAgICB9CgogICAgICByZXBsYWNlUmFuZ2UoaW5kZW50U3RyaW5nLCB7bGluZTogbiwgY2g6IDB9LCB7bGluZTogbiwgY2g6IGN1clNwYWNlU3RyaW5nLmxlbmd0aH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIGxvYWRNb2RlKCkgewogICAgICBtb2RlID0gQ29kZU1pcnJvci5nZXRNb2RlKG9wdGlvbnMsIG9wdGlvbnMubW9kZSk7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgKytpKQogICAgICAgIGxpbmVzW2ldLnN0YXRlQWZ0ZXIgPSBudWxsOwogICAgICB3b3JrID0gWzBdOwogICAgICBzdGFydFdvcmtlcigpOwogICAgfQogICAgZnVuY3Rpb24gZ3V0dGVyQ2hhbmdlZCgpIHsKICAgICAgdmFyIHZpc2libGUgPSBvcHRpb25zLmd1dHRlciB8fCBvcHRpb25zLmxpbmVOdW1iZXJzOwogICAgICBndXR0ZXIuc3R5bGUuZGlzcGxheSA9IHZpc2libGUgPyAiIiA6ICJub25lIjsKICAgICAgaWYgKHZpc2libGUpIHVwZGF0ZUd1dHRlcigpOwogICAgICBlbHNlIGxpbmVEaXYucGFyZW50Tm9kZS5zdHlsZS5tYXJnaW5MZWZ0ID0gMDsKICAgIH0KCiAgICBmdW5jdGlvbiBtYXJrVGV4dChmcm9tLCB0bywgY2xhc3NOYW1lKSB7CiAgICAgIGZyb20gPSBjbGlwUG9zKGZyb20pOyB0byA9IGNsaXBQb3ModG8pOwogICAgICB2YXIgYWNjdW0gPSBbXTsKICAgICAgZnVuY3Rpb24gYWRkKGxpbmUsIGZyb20sIHRvLCBjbGFzc05hbWUpIHsKICAgICAgICB2YXIgbGluZSA9IGxpbmVzW2xpbmVdLCBtYXJrID0gbGluZS5hZGRNYXJrKGZyb20sIHRvLCBjbGFzc05hbWUpOwogICAgICAgIG1hcmsubGluZSA9IGxpbmU7CiAgICAgICAgYWNjdW0ucHVzaChtYXJrKTsKICAgICAgfQogICAgICBpZiAoZnJvbS5saW5lID09IHRvLmxpbmUpIGFkZChmcm9tLmxpbmUsIGZyb20uY2gsIHRvLmNoLCBjbGFzc05hbWUpOwogICAgICBlbHNlIHsKICAgICAgICBhZGQoZnJvbS5saW5lLCBmcm9tLmNoLCBudWxsLCBjbGFzc05hbWUpOwogICAgICAgIGZvciAodmFyIGkgPSBmcm9tLmxpbmUgKyAxLCBlID0gdG8ubGluZTsgaSA8IGU7ICsraSkKICAgICAgICAgIGFkZChpLCAwLCBudWxsLCBjbGFzc05hbWUpOwogICAgICAgIGFkZCh0by5saW5lLCAwLCB0by5jaCwgY2xhc3NOYW1lKTsKICAgICAgfQogICAgICBjaGFuZ2VzLnB1c2goe2Zyb206IGZyb20ubGluZSwgdG86IHRvLmxpbmUgKyAxfSk7CiAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgc3RhcnQsIGVuZDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY3VtLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICB2YXIgbWFyayA9IGFjY3VtW2ldLCBmb3VuZCA9IGluZGV4T2YobGluZXMsIG1hcmsubGluZSk7CiAgICAgICAgICBtYXJrLmxpbmUucmVtb3ZlTWFyayhtYXJrKTsKICAgICAgICAgIGlmIChmb3VuZCA+IC0xKSB7CiAgICAgICAgICAgIGlmIChzdGFydCA9PSBudWxsKSBzdGFydCA9IGZvdW5kOwogICAgICAgICAgICBlbmQgPSBmb3VuZDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHN0YXJ0ICE9IG51bGwpIGNoYW5nZXMucHVzaCh7ZnJvbTogc3RhcnQsIHRvOiBlbmQgKyAxfSk7CiAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gYWRkR3V0dGVyTWFya2VyKGxpbmUsIHRleHQsIGNsYXNzTmFtZSkgewogICAgICBpZiAodHlwZW9mIGxpbmUgPT0gIm51bWJlciIpIGxpbmUgPSBsaW5lc1tjbGlwTGluZShsaW5lKV07CiAgICAgIGxpbmUuZ3V0dGVyTWFya2VyID0ge3RleHQ6IHRleHQsIHN0eWxlOiBjbGFzc05hbWV9OwogICAgICB1cGRhdGVHdXR0ZXIoKTsKICAgICAgcmV0dXJuIGxpbmU7CiAgICB9CiAgICBmdW5jdGlvbiByZW1vdmVHdXR0ZXJNYXJrZXIobGluZSkgewogICAgICBpZiAodHlwZW9mIGxpbmUgPT0gIm51bWJlciIpIGxpbmUgPSBsaW5lc1tjbGlwTGluZShsaW5lKV07CiAgICAgIGxpbmUuZ3V0dGVyTWFya2VyID0gbnVsbDsKICAgICAgdXBkYXRlR3V0dGVyKCk7CiAgICB9CiAgICBmdW5jdGlvbiBzZXRMaW5lQ2xhc3MobGluZSwgY2xhc3NOYW1lKSB7CiAgICAgIGlmICh0eXBlb2YgbGluZSA9PSAibnVtYmVyIikgewogICAgICAgIHZhciBubyA9IGxpbmU7CiAgICAgICAgbGluZSA9IGxpbmVzW2NsaXBMaW5lKGxpbmUpXTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICB2YXIgbm8gPSBpbmRleE9mKGxpbmVzLCBsaW5lKTsKICAgICAgICBpZiAobm8gPT0gLTEpIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGlmIChsaW5lLmNsYXNzTmFtZSAhPSBjbGFzc05hbWUpIHsKICAgICAgICBsaW5lLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKICAgICAgICBjaGFuZ2VzLnB1c2goe2Zyb206IG5vLCB0bzogbm8gKyAxfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpbmU7CiAgICB9CgogICAgZnVuY3Rpb24gbGluZUluZm8obGluZSkgewogICAgICBpZiAodHlwZW9mIGxpbmUgPT0gIm51bWJlciIpIHsKICAgICAgICB2YXIgbiA9IGxpbmU7CiAgICAgICAgbGluZSA9IGxpbmVzW2xpbmVdOwogICAgICAgIGlmICghbGluZSkgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgdmFyIG4gPSBpbmRleE9mKGxpbmVzLCBsaW5lKTsKICAgICAgICBpZiAobiA9PSAtMSkgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgdmFyIG1hcmtlciA9IGxpbmUuZ3V0dGVyTWFya2VyOwogICAgICByZXR1cm4ge2xpbmU6IG4sIHRleHQ6IGxpbmUudGV4dCwgbWFya2VyVGV4dDogbWFya2VyICYmIG1hcmtlci50ZXh0LCBtYXJrZXJDbGFzczogbWFya2VyICYmIG1hcmtlci5zdHlsZX07CiAgICB9CgogICAgZnVuY3Rpb24gc3RyaW5nV2lkdGgoc3RyKSB7CiAgICAgIG1lYXN1cmUuaW5uZXJIVE1MID0gIjxwcmU+PHNwYW4+eDwvc3Bhbj48L3ByZT4iOwogICAgICBtZWFzdXJlLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IHN0cjsKICAgICAgcmV0dXJuIG1lYXN1cmUuZmlyc3RDaGlsZC5maXJzdENoaWxkLm9mZnNldFdpZHRoIHx8IDEwOwogICAgfQogICAgLy8gVGhlc2UgYXJlIHVzZWQgdG8gZ28gZnJvbSBwaXhlbCBwb3NpdGlvbnMgdG8gY2hhcmFjdGVyCiAgICAvLyBwb3NpdGlvbnMsIHRha2luZyB2YXJ5aW5nIGNoYXJhY3RlciB3aWR0aHMgaW50byBhY2NvdW50LgogICAgZnVuY3Rpb24gY2hhclgobGluZSwgcG9zKSB7CiAgICAgIGlmIChwb3MgPT0gMCkgcmV0dXJuIDA7CiAgICAgIG1lYXN1cmUuaW5uZXJIVE1MID0gIjxwcmU+PHNwYW4+IiArIGxpbmVzW2xpbmVdLmdldEhUTUwobnVsbCwgbnVsbCwgZmFsc2UsIHBvcykgKyAiPC9zcGFuPjwvcHJlPiI7CiAgICAgIHJldHVybiBtZWFzdXJlLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5vZmZzZXRXaWR0aDsKICAgIH0KICAgIGZ1bmN0aW9uIGNoYXJGcm9tWChsaW5lLCB4KSB7CiAgICAgIGlmICh4IDw9IDApIHJldHVybiAwOwogICAgICB2YXIgbGluZU9iaiA9IGxpbmVzW2xpbmVdLCB0ZXh0ID0gbGluZU9iai50ZXh0OwogICAgICBmdW5jdGlvbiBnZXRYKGxlbikgewogICAgICAgIG1lYXN1cmUuaW5uZXJIVE1MID0gIjxwcmU+PHNwYW4+IiArIGxpbmVPYmouZ2V0SFRNTChudWxsLCBudWxsLCBmYWxzZSwgbGVuKSArICI8L3NwYW4+PC9wcmU+IjsKICAgICAgICByZXR1cm4gbWVhc3VyZS5maXJzdENoaWxkLmZpcnN0Q2hpbGQub2Zmc2V0V2lkdGg7CiAgICAgIH0KICAgICAgdmFyIGZyb20gPSAwLCBmcm9tWCA9IDAsIHRvID0gdGV4dC5sZW5ndGgsIHRvWDsKICAgICAgLy8gR3Vlc3MgYSBzdWl0YWJsZSB1cHBlciBib3VuZCBmb3Igb3VyIHNlYXJjaC4KICAgICAgdmFyIGVzdGltYXRlZCA9IE1hdGgubWluKHRvLCBNYXRoLmNlaWwoeCAvIHN0cmluZ1dpZHRoKCJ4IikpKTsKICAgICAgZm9yICg7OykgewogICAgICAgIHZhciBlc3RYID0gZ2V0WChlc3RpbWF0ZWQpOwogICAgICAgIGlmIChlc3RYIDw9IHggJiYgZXN0aW1hdGVkIDwgdG8pIGVzdGltYXRlZCA9IE1hdGgubWluKHRvLCBNYXRoLmNlaWwoZXN0aW1hdGVkICogMS4yKSk7CiAgICAgICAgZWxzZSB7dG9YID0gZXN0WDsgdG8gPSBlc3RpbWF0ZWQ7IGJyZWFrO30KICAgICAgfQogICAgICBpZiAoeCA+IHRvWCkgcmV0dXJuIHRvOwogICAgICAvLyBUcnkgdG8gZ3Vlc3MgYSBzdWl0YWJsZSBsb3dlciBib3VuZCBhcyB3ZWxsLgogICAgICBlc3RpbWF0ZWQgPSBNYXRoLmZsb29yKHRvICogMC44KTsgZXN0WCA9IGdldFgoZXN0aW1hdGVkKTsKICAgICAgaWYgKGVzdFggPCB4KSB7ZnJvbSA9IGVzdGltYXRlZDsgZnJvbVggPSBlc3RYO30KICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoIGJldHdlZW4gdGhlc2UgYm91bmRzLgogICAgICBmb3IgKDs7KSB7CiAgICAgICAgaWYgKHRvIC0gZnJvbSA8PSAxKSByZXR1cm4gKHRvWCAtIHggPiB4IC0gZnJvbVgpID8gZnJvbSA6IHRvOwogICAgICAgIHZhciBtaWRkbGUgPSBNYXRoLmNlaWwoKGZyb20gKyB0bykgLyAyKSwgbWlkZGxlWCA9IGdldFgobWlkZGxlKTsKICAgICAgICBpZiAobWlkZGxlWCA+IHgpIHt0byA9IG1pZGRsZTsgdG9YID0gbWlkZGxlWDt9CiAgICAgICAgZWxzZSB7ZnJvbSA9IG1pZGRsZTsgZnJvbVggPSBtaWRkbGVYO30KICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGxvY2FsQ29vcmRzKHBvcywgaW5MaW5lV3JhcCkgewogICAgICB2YXIgbGggPSBsaW5lSGVpZ2h0KCksIGxpbmUgPSBwb3MubGluZSAtIChpbkxpbmVXcmFwID8gc2hvd2luZ0Zyb20gOiAwKTsKICAgICAgcmV0dXJuIHt4OiBjaGFyWChwb3MubGluZSwgcG9zLmNoKSwgeTogbGluZSAqIGxoLCB5Qm90OiAobGluZSArIDEpICogbGh9OwogICAgfQogICAgZnVuY3Rpb24gcGFnZUNvb3Jkcyhwb3MpIHsKICAgICAgdmFyIGxvY2FsID0gbG9jYWxDb29yZHMocG9zLCB0cnVlKSwgb2ZmID0gZWx0T2Zmc2V0KGxpbmVTcGFjZSk7CiAgICAgIHJldHVybiB7eDogb2ZmLmxlZnQgKyBsb2NhbC54LCB5OiBvZmYudG9wICsgbG9jYWwueSwgeUJvdDogb2ZmLnRvcCArIGxvY2FsLnlCb3R9OwogICAgfQoKICAgIGZ1bmN0aW9uIGxpbmVIZWlnaHQoKSB7CiAgICAgIHZhciBubGluZXMgPSBsaW5lRGl2LmNoaWxkTm9kZXMubGVuZ3RoOwogICAgICBpZiAobmxpbmVzKSByZXR1cm4gKGxpbmVEaXYub2Zmc2V0SGVpZ2h0IC8gbmxpbmVzKSB8fCAxOwogICAgICBtZWFzdXJlLmlubmVySFRNTCA9ICI8cHJlPng8L3ByZT4iOwogICAgICByZXR1cm4gbWVhc3VyZS5maXJzdENoaWxkLm9mZnNldEhlaWdodCB8fCAxOwogICAgfQogICAgZnVuY3Rpb24gcGFkZGluZ1RvcCgpIHtyZXR1cm4gbGluZVNwYWNlLm9mZnNldFRvcDt9CiAgICBmdW5jdGlvbiBwYWRkaW5nTGVmdCgpIHtyZXR1cm4gbGluZVNwYWNlLm9mZnNldExlZnQ7fQoKICAgIGZ1bmN0aW9uIHBvc0Zyb21Nb3VzZShlLCBsaWJlcmFsKSB7CiAgICAgIHZhciBvZmZXID0gZWx0T2Zmc2V0KHNjcm9sbGVyLCB0cnVlKSwgeCwgeTsKICAgICAgLy8gRmFpbHMgdW5wcmVkaWN0YWJseSBvbiBJRVs2N10gd2hlbiBtb3VzZSBpcyBkcmFnZ2VkIGFyb3VuZCBxdWlja2x5LgogICAgICB0cnkgeyB4ID0gZS5jbGllbnRYOyB5ID0gZS5jbGllbnRZOyB9IGNhdGNoIChlKSB7IHJldHVybiBudWxsOyB9CiAgICAgIC8vIFRoaXMgaXMgYSBtZXNzIG9mIGEgaGV1cmlzdGljIHRvIHRyeSBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgYQogICAgICAvLyBzY3JvbGwtYmFyIHdhcyBjbGlja2VkIG9yIG5vdCwgYW5kIHRvIHJldHVybiBudWxsIGlmIG9uZSB3YXMKICAgICAgLy8gKGFuZCAhbGliZXJhbCkuCiAgICAgIGlmICghbGliZXJhbCAmJiAoeCAtIG9mZlcubGVmdCA+IHNjcm9sbGVyLmNsaWVudFdpZHRoIHx8IHkgLSBvZmZXLnRvcCA+IHNjcm9sbGVyLmNsaWVudEhlaWdodCkpCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIHZhciBvZmZMID0gZWx0T2Zmc2V0KGxpbmVTcGFjZSwgdHJ1ZSk7CiAgICAgIHZhciBsaW5lID0gc2hvd2luZ0Zyb20gKyBNYXRoLmZsb29yKCh5IC0gb2ZmTC50b3ApIC8gbGluZUhlaWdodCgpKTsKICAgICAgcmV0dXJuIGNsaXBQb3Moe2xpbmU6IGxpbmUsIGNoOiBjaGFyRnJvbVgoY2xpcExpbmUobGluZSksIHggLSBvZmZMLmxlZnQpfSk7CiAgICB9CiAgICBmdW5jdGlvbiBvbkNvbnRleHRNZW51KGUpIHsKICAgICAgdmFyIHBvcyA9IHBvc0Zyb21Nb3VzZShlKTsKICAgICAgaWYgKCFwb3MgfHwgd2luZG93Lm9wZXJhKSByZXR1cm47IC8vIE9wZXJhIGlzIGRpZmZpY3VsdC4KICAgICAgaWYgKHBvc0VxKHNlbC5mcm9tLCBzZWwudG8pIHx8IHBvc0xlc3MocG9zLCBzZWwuZnJvbSkgfHwgIXBvc0xlc3MocG9zLCBzZWwudG8pKQogICAgICAgIG9wZXJhdGlvbihzZXRDdXJzb3IpKHBvcy5saW5lLCBwb3MuY2gpOwoKICAgICAgdmFyIG9sZENTUyA9IGlucHV0LnN0eWxlLmNzc1RleHQ7CiAgICAgIGlucHV0RGl2LnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKICAgICAgaW5wdXQuc3R5bGUuY3NzVGV4dCA9ICJwb3NpdGlvbjogZml4ZWQ7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IHRvcDogIiArIChlLmNsaWVudFkgLSA1KSArCiAgICAgICAgInB4OyBsZWZ0OiAiICsgKGUuY2xpZW50WCAtIDUpICsgInB4OyB6LWluZGV4OiAxMDAwOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgIiArCiAgICAgICAgImJvcmRlci13aWR0aDogMDsgb3V0bGluZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgb3BhY2l0eTogLjA1OyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NSk7IjsKICAgICAgbGVhdmVJbnB1dEFsb25lID0gdHJ1ZTsKICAgICAgdmFyIHZhbCA9IGlucHV0LnZhbHVlID0gZ2V0U2VsZWN0aW9uKCk7CiAgICAgIGZvY3VzSW5wdXQoKTsKICAgICAgc2V0U2VsUmFuZ2UoaW5wdXQsIDAsIGlucHV0LnZhbHVlLmxlbmd0aCk7CiAgICAgIGZ1bmN0aW9uIHJlaGlkZSgpIHsKICAgICAgICB2YXIgbmV3VmFsID0gc3BsaXRMaW5lcyhpbnB1dC52YWx1ZSkuam9pbigiXG4iKTsKICAgICAgICBpZiAobmV3VmFsICE9IHZhbCkgb3BlcmF0aW9uKHJlcGxhY2VTZWxlY3Rpb24pKG5ld1ZhbCwgImVuZCIpOwogICAgICAgIGlucHV0RGl2LnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKICAgICAgICBpbnB1dC5zdHlsZS5jc3NUZXh0ID0gb2xkQ1NTOwogICAgICAgIGxlYXZlSW5wdXRBbG9uZSA9IGZhbHNlOwogICAgICAgIHByZXBhcmVJbnB1dCgpOwogICAgICAgIHNsb3dQb2xsKCk7CiAgICAgIH0KICAgICAgCiAgICAgIGlmIChnZWNrbykgewogICAgICAgIGVfc3RvcChlKTsKICAgICAgICB2YXIgbW91c2V1cCA9IGNvbm5lY3Qod2luZG93LCAibW91c2V1cCIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgbW91c2V1cCgpOwogICAgICAgICAgc2V0VGltZW91dChyZWhpZGUsIDIwKTsKICAgICAgICB9LCB0cnVlKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzZXRUaW1lb3V0KHJlaGlkZSwgNTApOwogICAgICB9CiAgICB9CgogICAgLy8gQ3Vyc29yLWJsaW5raW5nCiAgICBmdW5jdGlvbiByZXN0YXJ0QmxpbmsoKSB7CiAgICAgIGNsZWFySW50ZXJ2YWwoYmxpbmtlcik7CiAgICAgIHZhciBvbiA9IHRydWU7CiAgICAgIGN1cnNvci5zdHlsZS52aXNpYmlsaXR5ID0gIiI7CiAgICAgIGJsaW5rZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICBjdXJzb3Iuc3R5bGUudmlzaWJpbGl0eSA9IChvbiA9ICFvbikgPyAiIiA6ICJoaWRkZW4iOwogICAgICB9LCA2NTApOwogICAgfQoKICAgIHZhciBtYXRjaGluZyA9IHsiKCI6ICIpPiIsICIpIjogIig8IiwgIlsiOiAiXT4iLCAiXSI6ICJbPCIsICJ7IjogIn0+IiwgIn0iOiAiezwifTsKICAgIGZ1bmN0aW9uIG1hdGNoQnJhY2tldHMoYXV0b2NsZWFyKSB7CiAgICAgIHZhciBoZWFkID0gc2VsLmludmVydGVkID8gc2VsLmZyb20gOiBzZWwudG8sIGxpbmUgPSBsaW5lc1toZWFkLmxpbmVdLCBwb3MgPSBoZWFkLmNoIC0gMTsKICAgICAgdmFyIG1hdGNoID0gKHBvcyA+PSAwICYmIG1hdGNoaW5nW2xpbmUudGV4dC5jaGFyQXQocG9zKV0pIHx8IG1hdGNoaW5nW2xpbmUudGV4dC5jaGFyQXQoKytwb3MpXTsKICAgICAgaWYgKCFtYXRjaCkgcmV0dXJuOwogICAgICB2YXIgY2ggPSBtYXRjaC5jaGFyQXQoMCksIGZvcndhcmQgPSBtYXRjaC5jaGFyQXQoMSkgPT0gIj4iLCBkID0gZm9yd2FyZCA/IDEgOiAtMSwgc3QgPSBsaW5lLnN0eWxlczsKICAgICAgZm9yICh2YXIgb2ZmID0gcG9zICsgMSwgaSA9IDAsIGUgPSBzdC5sZW5ndGg7IGkgPCBlOyBpKz0yKQogICAgICAgIGlmICgob2ZmIC09IHN0W2ldLmxlbmd0aCkgPD0gMCkge3ZhciBzdHlsZSA9IHN0W2krMV07IGJyZWFrO30KCiAgICAgIHZhciBzdGFjayA9IFtsaW5lLnRleHQuY2hhckF0KHBvcyldLCByZSA9IC9bKCl7fVtcXV0vOwogICAgICBmdW5jdGlvbiBzY2FuKGxpbmUsIGZyb20sIHRvKSB7CiAgICAgICAgaWYgKCFsaW5lLnRleHQpIHJldHVybjsKICAgICAgICB2YXIgc3QgPSBsaW5lLnN0eWxlcywgcG9zID0gZm9yd2FyZCA/IDAgOiBsaW5lLnRleHQubGVuZ3RoIC0gMSwgY3VyOwogICAgICAgIGZvciAodmFyIGkgPSBmb3J3YXJkID8gMCA6IHN0Lmxlbmd0aCAtIDIsIGUgPSBmb3J3YXJkID8gc3QubGVuZ3RoIDogLTI7IGkgIT0gZTsgaSArPSAyKmQpIHsKICAgICAgICAgIHZhciB0ZXh0ID0gc3RbaV07CiAgICAgICAgICBpZiAoc3RbaSsxXSAhPSBudWxsICYmIHN0W2krMV0gIT0gc3R5bGUpIHtwb3MgKz0gZCAqIHRleHQubGVuZ3RoOyBjb250aW51ZTt9CiAgICAgICAgICBmb3IgKHZhciBqID0gZm9yd2FyZCA/IDAgOiB0ZXh0Lmxlbmd0aCAtIDEsIHRlID0gZm9yd2FyZCA/IHRleHQubGVuZ3RoIDogLTE7IGogIT0gdGU7IGogKz0gZCwgcG9zKz1kKSB7CiAgICAgICAgICAgIGlmIChwb3MgPj0gZnJvbSAmJiBwb3MgPCB0byAmJiByZS50ZXN0KGN1ciA9IHRleHQuY2hhckF0KGopKSkgewogICAgICAgICAgICAgIHZhciBtYXRjaCA9IG1hdGNoaW5nW2N1cl07CiAgICAgICAgICAgICAgaWYgKG1hdGNoLmNoYXJBdCgxKSA9PSAiPiIgPT0gZm9yd2FyZCkgc3RhY2sucHVzaChjdXIpOwogICAgICAgICAgICAgIGVsc2UgaWYgKHN0YWNrLnBvcCgpICE9IG1hdGNoLmNoYXJBdCgwKSkgcmV0dXJuIHtwb3M6IHBvcywgbWF0Y2g6IGZhbHNlfTsKICAgICAgICAgICAgICBlbHNlIGlmICghc3RhY2subGVuZ3RoKSByZXR1cm4ge3BvczogcG9zLCBtYXRjaDogdHJ1ZX07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZm9yICh2YXIgaSA9IGhlYWQubGluZSwgZSA9IGZvcndhcmQgPyBNYXRoLm1pbihpICsgMTAwLCBsaW5lcy5sZW5ndGgpIDogTWF0aC5tYXgoLTEsIGkgLSAxMDApOyBpICE9IGU7IGkrPWQpIHsKICAgICAgICB2YXIgbGluZSA9IGxpbmVzW2ldLCBmaXJzdCA9IGkgPT0gaGVhZC5saW5lOwogICAgICAgIHZhciBmb3VuZCA9IHNjYW4obGluZSwgZmlyc3QgJiYgZm9yd2FyZCA/IHBvcyArIDEgOiAwLCBmaXJzdCAmJiAhZm9yd2FyZCA/IHBvcyA6IGxpbmUudGV4dC5sZW5ndGgpOwogICAgICAgIGlmIChmb3VuZCkgYnJlYWs7CiAgICAgIH0KICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSB7cG9zOiBudWxsLCBtYXRjaDogZmFsc2V9OwogICAgICB2YXIgc3R5bGUgPSBmb3VuZC5tYXRjaCA/ICJDb2RlTWlycm9yLW1hdGNoaW5nYnJhY2tldCIgOiAiQ29kZU1pcnJvci1ub25tYXRjaGluZ2JyYWNrZXQiOwogICAgICB2YXIgb25lID0gbWFya1RleHQoe2xpbmU6IGhlYWQubGluZSwgY2g6IHBvc30sIHtsaW5lOiBoZWFkLmxpbmUsIGNoOiBwb3MrMX0sIHN0eWxlKSwKICAgICAgICAgIHR3byA9IGZvdW5kLnBvcyAhPSBudWxsCiAgICAgICAgICAgID8gbWFya1RleHQoe2xpbmU6IGksIGNoOiBmb3VuZC5wb3N9LCB7bGluZTogaSwgY2g6IGZvdW5kLnBvcyArIDF9LCBzdHlsZSkKICAgICAgICAgICAgOiBmdW5jdGlvbigpIHt9OwogICAgICB2YXIgY2xlYXIgPSBvcGVyYXRpb24oZnVuY3Rpb24oKXtvbmUoKTsgdHdvKCk7fSk7CiAgICAgIGlmIChhdXRvY2xlYXIpIHNldFRpbWVvdXQoY2xlYXIsIDgwMCk7CiAgICAgIGVsc2UgYnJhY2tldEhpZ2hsaWdodGVkID0gY2xlYXI7CiAgICB9CgogICAgLy8gRmluZHMgdGhlIGxpbmUgdG8gc3RhcnQgd2l0aCB3aGVuIHN0YXJ0aW5nIGEgcGFyc2UuIFRyaWVzIHRvCiAgICAvLyBmaW5kIGEgbGluZSB3aXRoIGEgc3RhdGVBZnRlciwgc28gdGhhdCBpdCBjYW4gc3RhcnQgd2l0aCBhCiAgICAvLyB2YWxpZCBzdGF0ZS4gSWYgdGhhdCBmYWlscywgaXQgcmV0dXJucyB0aGUgbGluZSB3aXRoIHRoZQogICAgLy8gc21hbGxlc3QgaW5kZW50YXRpb24sIHdoaWNoIHRlbmRzIHRvIG5lZWQgdGhlIGxlYXN0IGNvbnRleHQgdG8KICAgIC8vIHBhcnNlIGNvcnJlY3RseS4KICAgIGZ1bmN0aW9uIGZpbmRTdGFydExpbmUobikgewogICAgICB2YXIgbWluaW5kZW50LCBtaW5saW5lOwogICAgICBmb3IgKHZhciBzZWFyY2ggPSBuLCBsaW0gPSBuIC0gNDA7IHNlYXJjaCA+IGxpbTsgLS1zZWFyY2gpIHsKICAgICAgICBpZiAoc2VhcmNoID09IDApIHJldHVybiAwOwogICAgICAgIHZhciBsaW5lID0gbGluZXNbc2VhcmNoLTFdOwogICAgICAgIGlmIChsaW5lLnN0YXRlQWZ0ZXIpIHJldHVybiBzZWFyY2g7CiAgICAgICAgdmFyIGluZGVudGVkID0gbGluZS5pbmRlbnRhdGlvbigpOwogICAgICAgIGlmIChtaW5saW5lID09IG51bGwgfHwgbWluaW5kZW50ID4gaW5kZW50ZWQpIHsKICAgICAgICAgIG1pbmxpbmUgPSBzZWFyY2ggLSAxOwogICAgICAgICAgbWluaW5kZW50ID0gaW5kZW50ZWQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBtaW5saW5lOwogICAgfQogICAgZnVuY3Rpb24gZ2V0U3RhdGVCZWZvcmUobikgewogICAgICB2YXIgc3RhcnQgPSBmaW5kU3RhcnRMaW5lKG4pLCBzdGF0ZSA9IHN0YXJ0ICYmIGxpbmVzW3N0YXJ0LTFdLnN0YXRlQWZ0ZXI7CiAgICAgIGlmICghc3RhdGUpIHN0YXRlID0gc3RhcnRTdGF0ZShtb2RlKTsKICAgICAgZWxzZSBzdGF0ZSA9IGNvcHlTdGF0ZShtb2RlLCBzdGF0ZSk7CiAgICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IG47ICsraSkgewogICAgICAgIHZhciBsaW5lID0gbGluZXNbaV07CiAgICAgICAgbGluZS5oaWdobGlnaHQobW9kZSwgc3RhdGUpOwogICAgICAgIGxpbmUuc3RhdGVBZnRlciA9IGNvcHlTdGF0ZShtb2RlLCBzdGF0ZSk7CiAgICAgIH0KICAgICAgaWYgKG4gPCBsaW5lcy5sZW5ndGggJiYgIWxpbmVzW25dLnN0YXRlQWZ0ZXIpIHdvcmsucHVzaChuKTsKICAgICAgcmV0dXJuIHN0YXRlOwogICAgfQogICAgZnVuY3Rpb24gaGlnaGxpZ2h0TGluZXMoc3RhcnQsIGVuZCkgewogICAgICB2YXIgc3RhdGUgPSBnZXRTdGF0ZUJlZm9yZShzdGFydCk7CiAgICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CiAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tpXTsKICAgICAgICBsaW5lLmhpZ2hsaWdodChtb2RlLCBzdGF0ZSk7CiAgICAgICAgbGluZS5zdGF0ZUFmdGVyID0gY29weVN0YXRlKG1vZGUsIHN0YXRlKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gaGlnaGxpZ2h0V29ya2VyKCkgewogICAgICB2YXIgZW5kID0gK25ldyBEYXRlICsgb3B0aW9ucy53b3JrVGltZTsKICAgICAgdmFyIGZvdW5kV29yayA9IHdvcmsubGVuZ3RoOwogICAgICB3aGlsZSAod29yay5sZW5ndGgpIHsKICAgICAgICBpZiAoIWxpbmVzW3Nob3dpbmdGcm9tXS5zdGF0ZUFmdGVyKSB2YXIgdGFzayA9IHNob3dpbmdGcm9tOwogICAgICAgIGVsc2UgdmFyIHRhc2sgPSB3b3JrLnBvcCgpOwogICAgICAgIGlmICh0YXNrID49IGxpbmVzLmxlbmd0aCkgY29udGludWU7CiAgICAgICAgdmFyIHN0YXJ0ID0gZmluZFN0YXJ0TGluZSh0YXNrKSwgc3RhdGUgPSBzdGFydCAmJiBsaW5lc1tzdGFydC0xXS5zdGF0ZUFmdGVyOwogICAgICAgIGlmIChzdGF0ZSkgc3RhdGUgPSBjb3B5U3RhdGUobW9kZSwgc3RhdGUpOwogICAgICAgIGVsc2Ugc3RhdGUgPSBzdGFydFN0YXRlKG1vZGUpOwoKICAgICAgICB2YXIgdW5jaGFuZ2VkID0gMCwgY29tcGFyZSA9IG1vZGUuY29tcGFyZVN0YXRlcywgcmVhbENoYW5nZSA9IGZhbHNlOwogICAgICAgIGZvciAodmFyIGkgPSBzdGFydCwgbCA9IGxpbmVzLmxlbmd0aDsgaSA8IGw7ICsraSkgewogICAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1tpXSwgaGFkU3RhdGUgPSBsaW5lLnN0YXRlQWZ0ZXI7CiAgICAgICAgICBpZiAoK25ldyBEYXRlID4gZW5kKSB7CiAgICAgICAgICAgIHdvcmsucHVzaChpKTsKICAgICAgICAgICAgc3RhcnRXb3JrZXIob3B0aW9ucy53b3JrRGVsYXkpOwogICAgICAgICAgICBpZiAocmVhbENoYW5nZSkgY2hhbmdlcy5wdXNoKHtmcm9tOiB0YXNrLCB0bzogaSArIDF9KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGNoYW5nZWQgPSBsaW5lLmhpZ2hsaWdodChtb2RlLCBzdGF0ZSk7CiAgICAgICAgICBpZiAoY2hhbmdlZCkgcmVhbENoYW5nZSA9IHRydWU7CiAgICAgICAgICBsaW5lLnN0YXRlQWZ0ZXIgPSBjb3B5U3RhdGUobW9kZSwgc3RhdGUpOwogICAgICAgICAgaWYgKGNvbXBhcmUpIHsKICAgICAgICAgICAgaWYgKGhhZFN0YXRlICYmIGNvbXBhcmUoaGFkU3RhdGUsIHN0YXRlKSkgYnJlYWs7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoY2hhbmdlZCAhPT0gZmFsc2UgfHwgIWhhZFN0YXRlKSB1bmNoYW5nZWQgPSAwOwogICAgICAgICAgICBlbHNlIGlmICgrK3VuY2hhbmdlZCA+IDMpIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAocmVhbENoYW5nZSkgY2hhbmdlcy5wdXNoKHtmcm9tOiB0YXNrLCB0bzogaSArIDF9KTsKICAgICAgfQogICAgICBpZiAoZm91bmRXb3JrICYmIG9wdGlvbnMub25IaWdobGlnaHRDb21wbGV0ZSkKICAgICAgICBvcHRpb25zLm9uSGlnaGxpZ2h0Q29tcGxldGUoaW5zdGFuY2UpOwogICAgfQogICAgZnVuY3Rpb24gc3RhcnRXb3JrZXIodGltZSkgewogICAgICBpZiAoIXdvcmsubGVuZ3RoKSByZXR1cm47CiAgICAgIGhpZ2hsaWdodC5zZXQodGltZSwgb3BlcmF0aW9uKGhpZ2hsaWdodFdvcmtlcikpOwogICAgfQoKICAgIC8vIE9wZXJhdGlvbnMgYXJlIHVzZWQgdG8gd3JhcCBjaGFuZ2VzIGluIHN1Y2ggYSB3YXkgdGhhdCBlYWNoCiAgICAvLyBjaGFuZ2Ugd29uJ3QgaGF2ZSB0byB1cGRhdGUgdGhlIGN1cnNvciBhbmQgZGlzcGxheSAod2hpY2ggd291bGQKICAgIC8vIGJlIGF3a3dhcmQsIHNsb3csIGFuZCBlcnJvci1wcm9uZSksIGJ1dCBpbnN0ZWFkIHVwZGF0ZXMgYXJlCiAgICAvLyBiYXRjaGVkIGFuZCB0aGVuIGFsbCBjb21iaW5lZCBhbmQgZXhlY3V0ZWQgYXQgb25jZS4KICAgIGZ1bmN0aW9uIHN0YXJ0T3BlcmF0aW9uKCkgewogICAgICB1cGRhdGVJbnB1dCA9IG51bGw7IGNoYW5nZXMgPSBbXTsgdGV4dENoYW5nZWQgPSBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CiAgICB9CiAgICBmdW5jdGlvbiBlbmRPcGVyYXRpb24oKSB7CiAgICAgIHZhciByZVNjcm9sbCA9IGZhbHNlOwogICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZCkgcmVTY3JvbGwgPSAhc2Nyb2xsQ3Vyc29ySW50b1ZpZXcoKTsKICAgICAgaWYgKGNoYW5nZXMubGVuZ3RoKSB1cGRhdGVEaXNwbGF5KGNoYW5nZXMpOwogICAgICBlbHNlIGlmIChzZWxlY3Rpb25DaGFuZ2VkKSB1cGRhdGVDdXJzb3IoKTsKICAgICAgaWYgKHJlU2Nyb2xsKSBzY3JvbGxDdXJzb3JJbnRvVmlldygpOwogICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZCkge3Njcm9sbEVkaXRvckludG9WaWV3KCk7IHJlc3RhcnRCbGluaygpO30KCiAgICAgIC8vIHVwZGF0ZUlucHV0IGNhbiBiZSBzZXQgdG8gYSBib29sZWFuIHZhbHVlIHRvIGZvcmNlL3ByZXZlbnQgYW4KICAgICAgLy8gdXBkYXRlLgogICAgICBpZiAoZm9jdXNlZCAmJiAhbGVhdmVJbnB1dEFsb25lICYmCiAgICAgICAgICAodXBkYXRlSW5wdXQgPT09IHRydWUgfHwgKHVwZGF0ZUlucHV0ICE9PSBmYWxzZSAmJiBzZWxlY3Rpb25DaGFuZ2VkKSkpCiAgICAgICAgcHJlcGFyZUlucHV0KCk7CgogICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZCAmJiBvcHRpb25zLm1hdGNoQnJhY2tldHMpCiAgICAgICAgc2V0VGltZW91dChvcGVyYXRpb24oZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoYnJhY2tldEhpZ2hsaWdodGVkKSB7YnJhY2tldEhpZ2hsaWdodGVkKCk7IGJyYWNrZXRIaWdobGlnaHRlZCA9IG51bGw7fQogICAgICAgICAgbWF0Y2hCcmFja2V0cyhmYWxzZSk7CiAgICAgICAgfSksIDIwKTsKICAgICAgdmFyIHRjID0gdGV4dENoYW5nZWQ7IC8vIHRleHRDaGFuZ2VkIGNhbiBiZSByZXNldCBieSBjdXJzb3JhY3Rpdml0eSBjYWxsYmFjawogICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZCAmJiBvcHRpb25zLm9uQ3Vyc29yQWN0aXZpdHkpCiAgICAgICAgb3B0aW9ucy5vbkN1cnNvckFjdGl2aXR5KGluc3RhbmNlKTsKICAgICAgaWYgKHRjICYmIG9wdGlvbnMub25DaGFuZ2UgJiYgaW5zdGFuY2UpCiAgICAgICAgb3B0aW9ucy5vbkNoYW5nZShpbnN0YW5jZSwgdGMpOwogICAgfQogICAgdmFyIG5lc3RlZE9wZXJhdGlvbiA9IDA7CiAgICBmdW5jdGlvbiBvcGVyYXRpb24oZikgewogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCFuZXN0ZWRPcGVyYXRpb24rKykgc3RhcnRPcGVyYXRpb24oKTsKICAgICAgICB0cnkge3ZhciByZXN1bHQgPSBmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7fQogICAgICAgIGZpbmFsbHkge2lmICghLS1uZXN0ZWRPcGVyYXRpb24pIGVuZE9wZXJhdGlvbigpO30KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfQoKICAgIGZ1bmN0aW9uIFNlYXJjaEN1cnNvcihxdWVyeSwgcG9zLCBjYXNlRm9sZCkgewogICAgICB0aGlzLmF0T2NjdXJyZW5jZSA9IGZhbHNlOwogICAgICBpZiAoY2FzZUZvbGQgPT0gbnVsbCkgY2FzZUZvbGQgPSB0eXBlb2YgcXVlcnkgPT0gInN0cmluZyIgJiYgcXVlcnkgPT0gcXVlcnkudG9Mb3dlckNhc2UoKTsKCiAgICAgIGlmIChwb3MgJiYgdHlwZW9mIHBvcyA9PSAib2JqZWN0IikgcG9zID0gY2xpcFBvcyhwb3MpOwogICAgICBlbHNlIHBvcyA9IHtsaW5lOiAwLCBjaDogMH07CiAgICAgIHRoaXMucG9zID0ge2Zyb206IHBvcywgdG86IHBvc307CgogICAgICAvLyBUaGUgbWF0Y2hlcyBtZXRob2QgaXMgZmlsbGVkIGluIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHF1ZXJ5LgogICAgICAvLyBJdCB0YWtlcyBhIHBvc2l0aW9uIGFuZCBhIGRpcmVjdGlvbiwgYW5kIHJldHVybnMgYW4gb2JqZWN0CiAgICAgIC8vIGRlc2NyaWJpbmcgdGhlIG5leHQgb2NjdXJyZW5jZSBvZiB0aGUgcXVlcnksIG9yIG51bGwgaWYgbm8KICAgICAgLy8gbW9yZSBtYXRjaGVzIHdlcmUgZm91bmQuCiAgICAgIGlmICh0eXBlb2YgcXVlcnkgIT0gInN0cmluZyIpIC8vIFJlZ2V4cCBtYXRjaAogICAgICAgIHRoaXMubWF0Y2hlcyA9IGZ1bmN0aW9uKHJldmVyc2UsIHBvcykgewogICAgICAgICAgaWYgKHJldmVyc2UpIHsKICAgICAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1twb3MubGluZV0udGV4dC5zbGljZSgwLCBwb3MuY2gpLCBtYXRjaCA9IGxpbmUubWF0Y2gocXVlcnkpLCBzdGFydCA9IDA7CiAgICAgICAgICAgIHdoaWxlIChtYXRjaCkgewogICAgICAgICAgICAgIHZhciBpbmQgPSBsaW5lLmluZGV4T2YobWF0Y2hbMF0pOwogICAgICAgICAgICAgIHN0YXJ0ICs9IGluZDsKICAgICAgICAgICAgICBsaW5lID0gbGluZS5zbGljZShpbmQgKyAxKTsKICAgICAgICAgICAgICB2YXIgbmV3bWF0Y2ggPSBsaW5lLm1hdGNoKHF1ZXJ5KTsKICAgICAgICAgICAgICBpZiAobmV3bWF0Y2gpIG1hdGNoID0gbmV3bWF0Y2g7CiAgICAgICAgICAgICAgZWxzZSBicmVhazsKICAgICAgICAgICAgICBzdGFydCsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdmFyIGxpbmUgPSBsaW5lc1twb3MubGluZV0udGV4dC5zbGljZShwb3MuY2gpLCBtYXRjaCA9IGxpbmUubWF0Y2gocXVlcnkpLAogICAgICAgICAgICAgICAgc3RhcnQgPSBtYXRjaCAmJiBwb3MuY2ggKyBsaW5lLmluZGV4T2YobWF0Y2hbMF0pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG1hdGNoKQogICAgICAgICAgICByZXR1cm4ge2Zyb206IHtsaW5lOiBwb3MubGluZSwgY2g6IHN0YXJ0fSwKICAgICAgICAgICAgICAgICAgICB0bzoge2xpbmU6IHBvcy5saW5lLCBjaDogc3RhcnQgKyBtYXRjaFswXS5sZW5ndGh9LAogICAgICAgICAgICAgICAgICAgIG1hdGNoOiBtYXRjaH07CiAgICAgICAgfTsKICAgICAgZWxzZSB7IC8vIFN0cmluZyBxdWVyeQogICAgICAgIGlmIChjYXNlRm9sZCkgcXVlcnkgPSBxdWVyeS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHZhciBmb2xkID0gY2FzZUZvbGQgPyBmdW5jdGlvbihzdHIpe3JldHVybiBzdHIudG9Mb3dlckNhc2UoKTt9IDogZnVuY3Rpb24oc3RyKXtyZXR1cm4gc3RyO307CiAgICAgICAgdmFyIHRhcmdldCA9IHF1ZXJ5LnNwbGl0KCJcbiIpOwogICAgICAgIC8vIERpZmZlcmVudCBtZXRob2RzIGZvciBzaW5nbGUtbGluZSBhbmQgbXVsdGktbGluZSBxdWVyaWVzCiAgICAgICAgaWYgKHRhcmdldC5sZW5ndGggPT0gMSkKICAgICAgICAgIHRoaXMubWF0Y2hlcyA9IGZ1bmN0aW9uKHJldmVyc2UsIHBvcykgewogICAgICAgICAgICB2YXIgbGluZSA9IGZvbGQobGluZXNbcG9zLmxpbmVdLnRleHQpLCBsZW4gPSBxdWVyeS5sZW5ndGgsIG1hdGNoOwogICAgICAgICAgICBpZiAocmV2ZXJzZSA/IChwb3MuY2ggPj0gbGVuICYmIChtYXRjaCA9IGxpbmUubGFzdEluZGV4T2YocXVlcnksIHBvcy5jaCAtIGxlbikpICE9IC0xKQogICAgICAgICAgICAgICAgICAgICAgICA6IChtYXRjaCA9IGxpbmUuaW5kZXhPZihxdWVyeSwgcG9zLmNoKSkgIT0gLTEpCiAgICAgICAgICAgICAgcmV0dXJuIHtmcm9tOiB7bGluZTogcG9zLmxpbmUsIGNoOiBtYXRjaH0sCiAgICAgICAgICAgICAgICAgICAgICB0bzoge2xpbmU6IHBvcy5saW5lLCBjaDogbWF0Y2ggKyBsZW59fTsKICAgICAgICAgIH07CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5tYXRjaGVzID0gZnVuY3Rpb24ocmV2ZXJzZSwgcG9zKSB7CiAgICAgICAgICAgIHZhciBsbiA9IHBvcy5saW5lLCBpZHggPSAocmV2ZXJzZSA/IHRhcmdldC5sZW5ndGggLSAxIDogMCksIG1hdGNoID0gdGFyZ2V0W2lkeF0sIGxpbmUgPSBmb2xkKGxpbmVzW2xuXS50ZXh0KTsKICAgICAgICAgICAgdmFyIG9mZnNldEEgPSAocmV2ZXJzZSA/IGxpbmUuaW5kZXhPZihtYXRjaCkgKyBtYXRjaC5sZW5ndGggOiBsaW5lLmxhc3RJbmRleE9mKG1hdGNoKSk7CiAgICAgICAgICAgIGlmIChyZXZlcnNlID8gb2Zmc2V0QSA+PSBwb3MuY2ggfHwgb2Zmc2V0QSAhPSBtYXRjaC5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgOiBvZmZzZXRBIDw9IHBvcy5jaCB8fCBvZmZzZXRBICE9IGxpbmUubGVuZ3RoIC0gbWF0Y2gubGVuZ3RoKQogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgIGlmIChyZXZlcnNlID8gIWxuIDogbG4gPT0gbGluZXMubGVuZ3RoIC0gMSkgcmV0dXJuOwogICAgICAgICAgICAgIGxpbmUgPSBmb2xkKGxpbmVzW2xuICs9IHJldmVyc2UgPyAtMSA6IDFdLnRleHQpOwogICAgICAgICAgICAgIG1hdGNoID0gdGFyZ2V0W3JldmVyc2UgPyAtLWlkeCA6ICsraWR4XTsKICAgICAgICAgICAgICBpZiAoaWR4ID4gMCAmJiBpZHggPCB0YXJnZXQubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgaWYgKGxpbmUgIT0gbWF0Y2gpIHJldHVybjsKICAgICAgICAgICAgICAgIGVsc2UgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBvZmZzZXRCID0gKHJldmVyc2UgPyBsaW5lLmxhc3RJbmRleE9mKG1hdGNoKSA6IGxpbmUuaW5kZXhPZihtYXRjaCkgKyBtYXRjaC5sZW5ndGgpOwogICAgICAgICAgICAgIGlmIChyZXZlcnNlID8gb2Zmc2V0QiAhPSBsaW5lLmxlbmd0aCAtIG1hdGNoLmxlbmd0aCA6IG9mZnNldEIgIT0gbWF0Y2gubGVuZ3RoKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIHZhciBzdGFydCA9IHtsaW5lOiBwb3MubGluZSwgY2g6IG9mZnNldEF9LCBlbmQgPSB7bGluZTogbG4sIGNoOiBvZmZzZXRCfTsKICAgICAgICAgICAgICByZXR1cm4ge2Zyb206IHJldmVyc2UgPyBlbmQgOiBzdGFydCwgdG86IHJldmVyc2UgPyBzdGFydCA6IGVuZH07CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgIH0KICAgIH0KCiAgICBTZWFyY2hDdXJzb3IucHJvdG90eXBlID0gewogICAgICBmaW5kTmV4dDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZmluZChmYWxzZSk7fSwKICAgICAgZmluZFByZXZpb3VzOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5maW5kKHRydWUpO30sCgogICAgICBmaW5kOiBmdW5jdGlvbihyZXZlcnNlKSB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBwb3MgPSBjbGlwUG9zKHJldmVyc2UgPyB0aGlzLnBvcy5mcm9tIDogdGhpcy5wb3MudG8pOwogICAgICAgIGZ1bmN0aW9uIHNhdmVQb3NBbmRGYWlsKGxpbmUpIHsKICAgICAgICAgIHZhciBwb3MgPSB7bGluZTogbGluZSwgY2g6IDB9OwogICAgICAgICAgc2VsZi5wb3MgPSB7ZnJvbTogcG9zLCB0bzogcG9zfTsKICAgICAgICAgIHNlbGYuYXRPY2N1cnJlbmNlID0gZmFsc2U7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICBpZiAodGhpcy5wb3MgPSB0aGlzLm1hdGNoZXMocmV2ZXJzZSwgcG9zKSkgewogICAgICAgICAgICB0aGlzLmF0T2NjdXJyZW5jZSA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvcy5tYXRjaCB8fCB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHJldmVyc2UpIHsKICAgICAgICAgICAgaWYgKCFwb3MubGluZSkgcmV0dXJuIHNhdmVQb3NBbmRGYWlsKDApOwogICAgICAgICAgICBwb3MgPSB7bGluZTogcG9zLmxpbmUtMSwgY2g6IGxpbmVzW3Bvcy5saW5lLTFdLnRleHQubGVuZ3RofTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAocG9zLmxpbmUgPT0gbGluZXMubGVuZ3RoIC0gMSkgcmV0dXJuIHNhdmVQb3NBbmRGYWlsKGxpbmVzLmxlbmd0aCk7CiAgICAgICAgICAgIHBvcyA9IHtsaW5lOiBwb3MubGluZSsxLCBjaDogMH07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAoKICAgICAgZnJvbTogZnVuY3Rpb24oKSB7aWYgKHRoaXMuYXRPY2N1cnJlbmNlKSByZXR1cm4gY29weVBvcyh0aGlzLnBvcy5mcm9tKTt9LAogICAgICB0bzogZnVuY3Rpb24oKSB7aWYgKHRoaXMuYXRPY2N1cnJlbmNlKSByZXR1cm4gY29weVBvcyh0aGlzLnBvcy50byk7fSwKCiAgICAgIHJlcGxhY2U6IGZ1bmN0aW9uKG5ld1RleHQpIHsKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgaWYgKHRoaXMuYXRPY2N1cnJlbmNlKQogICAgICAgICAgb3BlcmF0aW9uKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWxmLnBvcy50byA9IHJlcGxhY2VSYW5nZShuZXdUZXh0LCBzZWxmLnBvcy5mcm9tLCBzZWxmLnBvcy50byk7CiAgICAgICAgICB9KSgpOwogICAgICB9CiAgICB9OwoKICAgIGZvciAodmFyIGV4dCBpbiBleHRlbnNpb25zKQogICAgICBpZiAoZXh0ZW5zaW9ucy5wcm9wZXJ0eUlzRW51bWVyYWJsZShleHQpICYmCiAgICAgICAgICAhaW5zdGFuY2UucHJvcGVydHlJc0VudW1lcmFibGUoZXh0KSkKICAgICAgICBpbnN0YW5jZVtleHRdID0gZXh0ZW5zaW9uc1tleHRdOwogICAgcmV0dXJuIGluc3RhbmNlOwogIH0gLy8gKGVuZCBvZiBmdW5jdGlvbiBDb2RlTWlycm9yKQoKICAvLyBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgQ29kZU1pcnJvci5kZWZhdWx0cyA9IHsKICAgIHZhbHVlOiAiIiwKICAgIG1vZGU6IG51bGwsCiAgICB0aGVtZTogImRlZmF1bHQiLAogICAgaW5kZW50VW5pdDogMiwKICAgIGluZGVudFdpdGhUYWJzOiBmYWxzZSwKICAgIHRhYk1vZGU6ICJjbGFzc2ljIiwKICAgIGVudGVyTW9kZTogImluZGVudCIsCiAgICBlbGVjdHJpY0NoYXJzOiB0cnVlLAogICAgb25LZXlFdmVudDogbnVsbCwKICAgIGxpbmVOdW1iZXJzOiBmYWxzZSwKICAgIGd1dHRlcjogZmFsc2UsCiAgICBmaXJzdExpbmVOdW1iZXI6IDEsCiAgICByZWFkT25seTogZmFsc2UsCiAgICBzbWFydEhvbWU6IHRydWUsCiAgICBvbkNoYW5nZTogbnVsbCwKICAgIG9uQ3Vyc29yQWN0aXZpdHk6IG51bGwsCiAgICBvbkd1dHRlckNsaWNrOiBudWxsLAogICAgb25IaWdobGlnaHRDb21wbGV0ZTogbnVsbCwKICAgIG9uRm9jdXM6IG51bGwsIG9uQmx1cjogbnVsbCwgb25TY3JvbGw6IG51bGwsCiAgICBtYXRjaEJyYWNrZXRzOiBmYWxzZSwKICAgIHdvcmtUaW1lOiAxMDAsCiAgICB3b3JrRGVsYXk6IDIwMCwKICAgIHVuZG9EZXB0aDogNDAsCiAgICB0YWJpbmRleDogbnVsbCwKICAgIGRvY3VtZW50OiB3aW5kb3cuZG9jdW1lbnQKICB9OwoKICAvLyBLbm93biBtb2RlcywgYnkgbmFtZSBhbmQgYnkgTUlNRQogIHZhciBtb2RlcyA9IHt9LCBtaW1lTW9kZXMgPSB7fTsKICBDb2RlTWlycm9yLmRlZmluZU1vZGUgPSBmdW5jdGlvbihuYW1lLCBtb2RlKSB7CiAgICBpZiAoIUNvZGVNaXJyb3IuZGVmYXVsdHMubW9kZSAmJiBuYW1lICE9ICJudWxsIikgQ29kZU1pcnJvci5kZWZhdWx0cy5tb2RlID0gbmFtZTsKICAgIG1vZGVzW25hbWVdID0gbW9kZTsKICB9OwogIENvZGVNaXJyb3IuZGVmaW5lTUlNRSA9IGZ1bmN0aW9uKG1pbWUsIHNwZWMpIHsKICAgIG1pbWVNb2Rlc1ttaW1lXSA9IHNwZWM7CiAgfTsKICBDb2RlTWlycm9yLmdldE1vZGUgPSBmdW5jdGlvbihvcHRpb25zLCBzcGVjKSB7CiAgICBpZiAodHlwZW9mIHNwZWMgPT0gInN0cmluZyIgJiYgbWltZU1vZGVzLmhhc093blByb3BlcnR5KHNwZWMpKQogICAgICBzcGVjID0gbWltZU1vZGVzW3NwZWNdOwogICAgaWYgKHR5cGVvZiBzcGVjID09ICJzdHJpbmciKQogICAgICB2YXIgbW5hbWUgPSBzcGVjLCBjb25maWcgPSB7fTsKICAgIGVsc2UgaWYgKHNwZWMgIT0gbnVsbCkKICAgICAgdmFyIG1uYW1lID0gc3BlYy5uYW1lLCBjb25maWcgPSBzcGVjOwogICAgdmFyIG1mYWN0b3J5ID0gbW9kZXNbbW5hbWVdOwogICAgaWYgKCFtZmFjdG9yeSkgewogICAgICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUud2FybigiTm8gbW9kZSAiICsgbW5hbWUgKyAiIGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gcGxhaW4gdGV4dC4iKTsKICAgICAgcmV0dXJuIENvZGVNaXJyb3IuZ2V0TW9kZShvcHRpb25zLCAidGV4dC9wbGFpbiIpOwogICAgfQogICAgcmV0dXJuIG1mYWN0b3J5KG9wdGlvbnMsIGNvbmZpZyB8fCB7fSk7CiAgfTsKICBDb2RlTWlycm9yLmxpc3RNb2RlcyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGxpc3QgPSBbXTsKICAgIGZvciAodmFyIG0gaW4gbW9kZXMpCiAgICAgIGlmIChtb2Rlcy5wcm9wZXJ0eUlzRW51bWVyYWJsZShtKSkgbGlzdC5wdXNoKG0pOwogICAgcmV0dXJuIGxpc3Q7CiAgfTsKICBDb2RlTWlycm9yLmxpc3RNSU1FcyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGxpc3QgPSBbXTsKICAgIGZvciAodmFyIG0gaW4gbWltZU1vZGVzKQogICAgICBpZiAobWltZU1vZGVzLnByb3BlcnR5SXNFbnVtZXJhYmxlKG0pKSBsaXN0LnB1c2gobSk7CiAgICByZXR1cm4gbGlzdDsKICB9OwoKICB2YXIgZXh0ZW5zaW9ucyA9IHt9OwogIENvZGVNaXJyb3IuZGVmaW5lRXh0ZW5zaW9uID0gZnVuY3Rpb24obmFtZSwgZnVuYykgewogICAgZXh0ZW5zaW9uc1tuYW1lXSA9IGZ1bmM7CiAgfTsKCiAgQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEgPSBmdW5jdGlvbih0ZXh0YXJlYSwgb3B0aW9ucykgewogICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307CiAgICBvcHRpb25zLnZhbHVlID0gdGV4dGFyZWEudmFsdWU7CiAgICBpZiAoIW9wdGlvbnMudGFiaW5kZXggJiYgdGV4dGFyZWEudGFiaW5kZXgpCiAgICAgIG9wdGlvbnMudGFiaW5kZXggPSB0ZXh0YXJlYS50YWJpbmRleDsKCiAgICBmdW5jdGlvbiBzYXZlKCkge3RleHRhcmVhLnZhbHVlID0gaW5zdGFuY2UuZ2V0VmFsdWUoKTt9CiAgICBpZiAodGV4dGFyZWEuZm9ybSkgewogICAgICAvLyBEZXBsb3JhYmxlIGhhY2sgdG8gbWFrZSB0aGUgc3VibWl0IG1ldGhvZCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgIHZhciBybVN1Ym1pdCA9IGNvbm5lY3QodGV4dGFyZWEuZm9ybSwgInN1Ym1pdCIsIHNhdmUsIHRydWUpOwogICAgICBpZiAodHlwZW9mIHRleHRhcmVhLmZvcm0uc3VibWl0ID09ICJmdW5jdGlvbiIpIHsKICAgICAgICB2YXIgcmVhbFN1Ym1pdCA9IHRleHRhcmVhLmZvcm0uc3VibWl0OwogICAgICAgIGZ1bmN0aW9uIHdyYXBwZWRTdWJtaXQoKSB7CiAgICAgICAgICBzYXZlKCk7CiAgICAgICAgICB0ZXh0YXJlYS5mb3JtLnN1Ym1pdCA9IHJlYWxTdWJtaXQ7CiAgICAgICAgICB0ZXh0YXJlYS5mb3JtLnN1Ym1pdCgpOwogICAgICAgICAgdGV4dGFyZWEuZm9ybS5zdWJtaXQgPSB3cmFwcGVkU3VibWl0OwogICAgICAgIH0KICAgICAgICB0ZXh0YXJlYS5mb3JtLnN1Ym1pdCA9IHdyYXBwZWRTdWJtaXQ7CiAgICAgIH0KICAgIH0KCiAgICB0ZXh0YXJlYS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgdmFyIGluc3RhbmNlID0gQ29kZU1pcnJvcihmdW5jdGlvbihub2RlKSB7CiAgICAgIHRleHRhcmVhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIHRleHRhcmVhLm5leHRTaWJsaW5nKTsKICAgIH0sIG9wdGlvbnMpOwogICAgaW5zdGFuY2Uuc2F2ZSA9IHNhdmU7CiAgICBpbnN0YW5jZS50b1RleHRBcmVhID0gZnVuY3Rpb24oKSB7CiAgICAgIHNhdmUoKTsKICAgICAgdGV4dGFyZWEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpbnN0YW5jZS5nZXRXcmFwcGVyRWxlbWVudCgpKTsKICAgICAgdGV4dGFyZWEuc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICBpZiAodGV4dGFyZWEuZm9ybSkgewogICAgICAgIHJtU3VibWl0KCk7CiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0YXJlYS5mb3JtLnN1Ym1pdCA9PSAiZnVuY3Rpb24iKQogICAgICAgICAgdGV4dGFyZWEuZm9ybS5zdWJtaXQgPSByZWFsU3VibWl0OwogICAgICB9CiAgICB9OwogICAgcmV0dXJuIGluc3RhbmNlOwogIH07CgogIC8vIFV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggc3RhdGUuIEV4cG9ydGVkIGJlY2F1c2UgbW9kZXMKICAvLyBzb21ldGltZXMgbmVlZCB0byBkbyB0aGlzLgogIGZ1bmN0aW9uIGNvcHlTdGF0ZShtb2RlLCBzdGF0ZSkgewogICAgaWYgKHN0YXRlID09PSB0cnVlKSByZXR1cm4gc3RhdGU7CiAgICBpZiAobW9kZS5jb3B5U3RhdGUpIHJldHVybiBtb2RlLmNvcHlTdGF0ZShzdGF0ZSk7CiAgICB2YXIgbnN0YXRlID0ge307CiAgICBmb3IgKHZhciBuIGluIHN0YXRlKSB7CiAgICAgIHZhciB2YWwgPSBzdGF0ZVtuXTsKICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIEFycmF5KSB2YWwgPSB2YWwuY29uY2F0KFtdKTsKICAgICAgbnN0YXRlW25dID0gdmFsOwogICAgfQogICAgcmV0dXJuIG5zdGF0ZTsKICB9CiAgQ29kZU1pcnJvci5zdGFydFN0YXRlID0gc3RhcnRTdGF0ZTsKICBmdW5jdGlvbiBzdGFydFN0YXRlKG1vZGUsIGExLCBhMikgewogICAgcmV0dXJuIG1vZGUuc3RhcnRTdGF0ZSA/IG1vZGUuc3RhcnRTdGF0ZShhMSwgYTIpIDogdHJ1ZTsKICB9CiAgQ29kZU1pcnJvci5jb3B5U3RhdGUgPSBjb3B5U3RhdGU7CgogIC8vIFRoZSBjaGFyYWN0ZXIgc3RyZWFtIHVzZWQgYnkgYSBtb2RlJ3MgcGFyc2VyLgogIGZ1bmN0aW9uIFN0cmluZ1N0cmVhbShzdHJpbmcpIHsKICAgIHRoaXMucG9zID0gdGhpcy5zdGFydCA9IDA7CiAgICB0aGlzLnN0cmluZyA9IHN0cmluZzsKICB9CiAgU3RyaW5nU3RyZWFtLnByb3RvdHlwZSA9IHsKICAgIGVvbDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMucG9zID49IHRoaXMuc3RyaW5nLmxlbmd0aDt9LAogICAgc29sOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5wb3MgPT0gMDt9LAogICAgcGVlazogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuc3RyaW5nLmNoYXJBdCh0aGlzLnBvcyk7fSwKICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICBpZiAodGhpcy5wb3MgPCB0aGlzLnN0cmluZy5sZW5ndGgpCiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nLmNoYXJBdCh0aGlzLnBvcysrKTsKICAgIH0sCiAgICBlYXQ6IGZ1bmN0aW9uKG1hdGNoKSB7CiAgICAgIHZhciBjaCA9IHRoaXMuc3RyaW5nLmNoYXJBdCh0aGlzLnBvcyk7CiAgICAgIGlmICh0eXBlb2YgbWF0Y2ggPT0gInN0cmluZyIpIHZhciBvayA9IGNoID09IG1hdGNoOwogICAgICBlbHNlIHZhciBvayA9IGNoICYmIChtYXRjaC50ZXN0ID8gbWF0Y2gudGVzdChjaCkgOiBtYXRjaChjaCkpOwogICAgICBpZiAob2spIHsrK3RoaXMucG9zOyByZXR1cm4gY2g7fQogICAgfSwKICAgIGVhdFdoaWxlOiBmdW5jdGlvbihtYXRjaCkgewogICAgICB2YXIgc3RhcnQgPSB0aGlzLnBvczsKICAgICAgd2hpbGUgKHRoaXMuZWF0KG1hdGNoKSl7fQogICAgICByZXR1cm4gdGhpcy5wb3MgPiBzdGFydDsKICAgIH0sCiAgICBlYXRTcGFjZTogZnVuY3Rpb24oKSB7CiAgICAgIHZhciBzdGFydCA9IHRoaXMucG9zOwogICAgICB3aGlsZSAoL1tcc1x1MDBhMF0vLnRlc3QodGhpcy5zdHJpbmcuY2hhckF0KHRoaXMucG9zKSkpICsrdGhpcy5wb3M7CiAgICAgIHJldHVybiB0aGlzLnBvcyA+IHN0YXJ0OwogICAgfSwKICAgIHNraXBUb0VuZDogZnVuY3Rpb24oKSB7dGhpcy5wb3MgPSB0aGlzLnN0cmluZy5sZW5ndGg7fSwKICAgIHNraXBUbzogZnVuY3Rpb24oY2gpIHsKICAgICAgdmFyIGZvdW5kID0gdGhpcy5zdHJpbmcuaW5kZXhPZihjaCwgdGhpcy5wb3MpOwogICAgICBpZiAoZm91bmQgPiAtMSkge3RoaXMucG9zID0gZm91bmQ7IHJldHVybiB0cnVlO30KICAgIH0sCiAgICBiYWNrVXA6IGZ1bmN0aW9uKG4pIHt0aGlzLnBvcyAtPSBuO30sCiAgICBjb2x1bW46IGZ1bmN0aW9uKCkge3JldHVybiBjb3VudENvbHVtbih0aGlzLnN0cmluZywgdGhpcy5zdGFydCk7fSwKICAgIGluZGVudGF0aW9uOiBmdW5jdGlvbigpIHtyZXR1cm4gY291bnRDb2x1bW4odGhpcy5zdHJpbmcpO30sCiAgICBtYXRjaDogZnVuY3Rpb24ocGF0dGVybiwgY29uc3VtZSwgY2FzZUluc2Vuc2l0aXZlKSB7CiAgICAgIGlmICh0eXBlb2YgcGF0dGVybiA9PSAic3RyaW5nIikgewogICAgICAgIGZ1bmN0aW9uIGNhc2VkKHN0cikge3JldHVybiBjYXNlSW5zZW5zaXRpdmUgPyBzdHIudG9Mb3dlckNhc2UoKSA6IHN0cjt9CiAgICAgICAgaWYgKGNhc2VkKHRoaXMuc3RyaW5nKS5pbmRleE9mKGNhc2VkKHBhdHRlcm4pLCB0aGlzLnBvcykgPT0gdGhpcy5wb3MpIHsKICAgICAgICAgIGlmIChjb25zdW1lICE9PSBmYWxzZSkgdGhpcy5wb3MgKz0gcGF0dGVybi5sZW5ndGg7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgdmFyIG1hdGNoID0gdGhpcy5zdHJpbmcuc2xpY2UodGhpcy5wb3MpLm1hdGNoKHBhdHRlcm4pOwogICAgICAgIGlmIChtYXRjaCAmJiBjb25zdW1lICE9PSBmYWxzZSkgdGhpcy5wb3MgKz0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgfQogICAgfSwKICAgIGN1cnJlbnQ6IGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RyaW5nLnNsaWNlKHRoaXMuc3RhcnQsIHRoaXMucG9zKTt9CiAgfTsKICBDb2RlTWlycm9yLlN0cmluZ1N0cmVhbSA9IFN0cmluZ1N0cmVhbTsKCiAgLy8gTGluZSBvYmplY3RzLiBUaGVzZSBob2xkIHN0YXRlIHJlbGF0ZWQgdG8gYSBsaW5lLCBpbmNsdWRpbmcKICAvLyBoaWdobGlnaHRpbmcgaW5mbyAodGhlIHN0eWxlcyBhcnJheSkuCiAgZnVuY3Rpb24gTGluZSh0ZXh0LCBzdHlsZXMpIHsKICAgIHRoaXMuc3R5bGVzID0gc3R5bGVzIHx8IFt0ZXh0LCBudWxsXTsKICAgIHRoaXMuc3RhdGVBZnRlciA9IG51bGw7CiAgICB0aGlzLnRleHQgPSB0ZXh0OwogICAgdGhpcy5tYXJrZWQgPSB0aGlzLmd1dHRlck1hcmtlciA9IHRoaXMuY2xhc3NOYW1lID0gbnVsbDsKICB9CiAgTGluZS5wcm90b3R5cGUgPSB7CiAgICAvLyBSZXBsYWNlIGEgcGllY2Ugb2YgYSBsaW5lLCBrZWVwaW5nIHRoZSBzdHlsZXMgYXJvdW5kIGl0IGludGFjdC4KICAgIHJlcGxhY2U6IGZ1bmN0aW9uKGZyb20sIHRvLCB0ZXh0KSB7CiAgICAgIHZhciBzdCA9IFtdLCBtayA9IHRoaXMubWFya2VkOwogICAgICBjb3B5U3R5bGVzKDAsIGZyb20sIHRoaXMuc3R5bGVzLCBzdCk7CiAgICAgIGlmICh0ZXh0KSBzdC5wdXNoKHRleHQsIG51bGwpOwogICAgICBjb3B5U3R5bGVzKHRvLCB0aGlzLnRleHQubGVuZ3RoLCB0aGlzLnN0eWxlcywgc3QpOwogICAgICB0aGlzLnN0eWxlcyA9IHN0OwogICAgICB0aGlzLnRleHQgPSB0aGlzLnRleHQuc2xpY2UoMCwgZnJvbSkgKyB0ZXh0ICsgdGhpcy50ZXh0LnNsaWNlKHRvKTsKICAgICAgdGhpcy5zdGF0ZUFmdGVyID0gbnVsbDsKICAgICAgaWYgKG1rKSB7CiAgICAgICAgdmFyIGRpZmYgPSB0ZXh0Lmxlbmd0aCAtICh0byAtIGZyb20pLCBlbmQgPSB0aGlzLnRleHQubGVuZ3RoOwogICAgICAgIGZ1bmN0aW9uIGZpeChuKSB7cmV0dXJuIG4gPD0gTWF0aC5taW4odG8sIHRvICsgZGlmZikgPyBuIDogbiArIGRpZmY7fQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWsubGVuZ3RoOyArK2kpIHsKICAgICAgICAgIHZhciBtYXJrID0gbWtbaV0sIGRlbCA9IGZhbHNlOwogICAgICAgICAgaWYgKG1hcmsuZnJvbSA+PSBlbmQpIGRlbCA9IHRydWU7CiAgICAgICAgICBlbHNlIHttYXJrLmZyb20gPSBmaXgobWFyay5mcm9tKTsgaWYgKG1hcmsudG8gIT0gbnVsbCkgbWFyay50byA9IGZpeChtYXJrLnRvKTt9CiAgICAgICAgICBpZiAoZGVsIHx8IG1hcmsuZnJvbSA+PSBtYXJrLnRvKSB7bWsuc3BsaWNlKGksIDEpOyBpLS07fQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIFNwbGl0IGEgbGluZSBpbiB0d28sIGFnYWluIGtlZXBpbmcgc3R5bGVzIGludGFjdC4KICAgIHNwbGl0OiBmdW5jdGlvbihwb3MsIHRleHRCZWZvcmUpIHsKICAgICAgdmFyIHN0ID0gW3RleHRCZWZvcmUsIG51bGxdOwogICAgICBjb3B5U3R5bGVzKHBvcywgdGhpcy50ZXh0Lmxlbmd0aCwgdGhpcy5zdHlsZXMsIHN0KTsKICAgICAgcmV0dXJuIG5ldyBMaW5lKHRleHRCZWZvcmUgKyB0aGlzLnRleHQuc2xpY2UocG9zKSwgc3QpOwogICAgfSwKICAgIGFkZE1hcms6IGZ1bmN0aW9uKGZyb20sIHRvLCBzdHlsZSkgewogICAgICB2YXIgbWsgPSB0aGlzLm1hcmtlZCwgbWFyayA9IHtmcm9tOiBmcm9tLCB0bzogdG8sIHN0eWxlOiBzdHlsZX07CiAgICAgIGlmICh0aGlzLm1hcmtlZCA9PSBudWxsKSB0aGlzLm1hcmtlZCA9IFtdOwogICAgICB0aGlzLm1hcmtlZC5wdXNoKG1hcmspOwogICAgICB0aGlzLm1hcmtlZC5zb3J0KGZ1bmN0aW9uKGEsIGIpe3JldHVybiBhLmZyb20gLSBiLmZyb207fSk7CiAgICAgIHJldHVybiBtYXJrOwogICAgfSwKICAgIHJlbW92ZU1hcms6IGZ1bmN0aW9uKG1hcmspIHsKICAgICAgdmFyIG1rID0gdGhpcy5tYXJrZWQ7CiAgICAgIGlmICghbWspIHJldHVybjsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtay5sZW5ndGg7ICsraSkKICAgICAgICBpZiAobWtbaV0gPT0gbWFyaykge21rLnNwbGljZShpLCAxKTsgYnJlYWs7fQogICAgfSwKICAgIC8vIFJ1biB0aGUgZ2l2ZW4gbW9kZSdzIHBhcnNlciBvdmVyIGEgbGluZSwgdXBkYXRlIHRoZSBzdHlsZXMKICAgIC8vIGFycmF5LCB3aGljaCBjb250YWlucyBhbHRlcm5hdGluZyBmcmFnbWVudHMgb2YgdGV4dCBhbmQgQ1NTCiAgICAvLyBjbGFzc2VzLgogICAgaGlnaGxpZ2h0OiBmdW5jdGlvbihtb2RlLCBzdGF0ZSkgewogICAgICB2YXIgc3RyZWFtID0gbmV3IFN0cmluZ1N0cmVhbSh0aGlzLnRleHQpLCBzdCA9IHRoaXMuc3R5bGVzLCBwb3MgPSAwOwogICAgICB2YXIgY2hhbmdlZCA9IGZhbHNlLCBjdXJXb3JkID0gc3RbMF0sIHByZXZXb3JkOwogICAgICBpZiAodGhpcy50ZXh0ID09ICIiICYmIG1vZGUuYmxhbmtMaW5lKSBtb2RlLmJsYW5rTGluZShzdGF0ZSk7CiAgICAgIHdoaWxlICghc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgdmFyIHN0eWxlID0gbW9kZS50b2tlbihzdHJlYW0sIHN0YXRlKTsKICAgICAgICB2YXIgc3Vic3RyID0gdGhpcy50ZXh0LnNsaWNlKHN0cmVhbS5zdGFydCwgc3RyZWFtLnBvcyk7CiAgICAgICAgc3RyZWFtLnN0YXJ0ID0gc3RyZWFtLnBvczsKICAgICAgICBpZiAocG9zICYmIHN0W3Bvcy0xXSA9PSBzdHlsZSkKICAgICAgICAgIHN0W3Bvcy0yXSArPSBzdWJzdHI7CiAgICAgICAgZWxzZSBpZiAoc3Vic3RyKSB7CiAgICAgICAgICBpZiAoIWNoYW5nZWQgJiYgKHN0W3BvcysxXSAhPSBzdHlsZSB8fCAocG9zICYmIHN0W3Bvcy0yXSAhPSBwcmV2V29yZCkpKSBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgIHN0W3BvcysrXSA9IHN1YnN0cjsgc3RbcG9zKytdID0gc3R5bGU7CiAgICAgICAgICBwcmV2V29yZCA9IGN1cldvcmQ7IGN1cldvcmQgPSBzdFtwb3NdOwogICAgICAgIH0KICAgICAgICAvLyBHaXZlIHVwIHdoZW4gbGluZSBpcyByaWRpY3Vsb3VzbHkgbG9uZwogICAgICAgIGlmIChzdHJlYW0ucG9zID4gNTAwMCkgewogICAgICAgICAgc3RbcG9zKytdID0gdGhpcy50ZXh0LnNsaWNlKHN0cmVhbS5wb3MpOyBzdFtwb3MrK10gPSBudWxsOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChzdC5sZW5ndGggIT0gcG9zKSB7c3QubGVuZ3RoID0gcG9zOyBjaGFuZ2VkID0gdHJ1ZTt9CiAgICAgIGlmIChwb3MgJiYgc3RbcG9zLTJdICE9IHByZXZXb3JkKSBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgLy8gU2hvcnQgbGluZXMgd2l0aCBzaW1wbGUgaGlnaGxpZ2h0cyByZXR1cm4gbnVsbCwgYW5kIGFyZQogICAgICAvLyBjb3VudGVkIGFzIGNoYW5nZWQgYnkgdGhlIGRyaXZlciBiZWNhdXNlIHRoZXkgYXJlIGxpa2VseSB0bwogICAgICAvLyBoaWdobGlnaHQgdGhlIHNhbWUgd2F5IGluIHZhcmlvdXMgY29udGV4dHMuCiAgICAgIHJldHVybiBjaGFuZ2VkIHx8IChzdC5sZW5ndGggPCA1ICYmIHRoaXMudGV4dC5sZW5ndGggPCAxMCA/IG51bGwgOiBmYWxzZSk7CiAgICB9LAogICAgLy8gRmV0Y2ggdGhlIHBhcnNlciB0b2tlbiBmb3IgYSBnaXZlbiBjaGFyYWN0ZXIuIFVzZWZ1bCBmb3IgaGFja3MKICAgIC8vIHRoYXQgd2FudCB0byBpbnNwZWN0IHRoZSBtb2RlIHN0YXRlIChzYXksIGZvciBjb21wbGV0aW9uKS4KICAgIGdldFRva2VuQXQ6IGZ1bmN0aW9uKG1vZGUsIHN0YXRlLCBjaCkgewogICAgICB2YXIgdHh0ID0gdGhpcy50ZXh0LCBzdHJlYW0gPSBuZXcgU3RyaW5nU3RyZWFtKHR4dCk7CiAgICAgIHdoaWxlIChzdHJlYW0ucG9zIDwgY2ggJiYgIXN0cmVhbS5lb2woKSkgewogICAgICAgIHN0cmVhbS5zdGFydCA9IHN0cmVhbS5wb3M7CiAgICAgICAgdmFyIHN0eWxlID0gbW9kZS50b2tlbihzdHJlYW0sIHN0YXRlKTsKICAgICAgfQogICAgICByZXR1cm4ge3N0YXJ0OiBzdHJlYW0uc3RhcnQsCiAgICAgICAgICAgICAgZW5kOiBzdHJlYW0ucG9zLAogICAgICAgICAgICAgIHN0cmluZzogc3RyZWFtLmN1cnJlbnQoKSwKICAgICAgICAgICAgICBjbGFzc05hbWU6IHN0eWxlIHx8IG51bGwsCiAgICAgICAgICAgICAgc3RhdGU6IHN0YXRlfTsKICAgIH0sCiAgICBpbmRlbnRhdGlvbjogZnVuY3Rpb24oKSB7cmV0dXJuIGNvdW50Q29sdW1uKHRoaXMudGV4dCk7fSwKICAgIC8vIFByb2R1Y2VzIGFuIEhUTUwgZnJhZ21lbnQgZm9yIHRoZSBsaW5lLCB0YWtpbmcgc2VsZWN0aW9uLAogICAgLy8gbWFya2luZywgYW5kIGhpZ2hsaWdodGluZyBpbnRvIGFjY291bnQuCiAgICBnZXRIVE1MOiBmdW5jdGlvbihzZnJvbSwgc3RvLCBpbmNsdWRlUHJlLCBlbmRBdCkgewogICAgICB2YXIgaHRtbCA9IFtdOwogICAgICBpZiAoaW5jbHVkZVByZSkKICAgICAgICBodG1sLnB1c2godGhpcy5jbGFzc05hbWUgPyAnPHByZSBjbGFzcz0iJyArIHRoaXMuY2xhc3NOYW1lICsgJyI+JzogIjxwcmU+Iik7CiAgICAgIGZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGUpIHsKICAgICAgICBpZiAoIXRleHQpIHJldHVybjsKICAgICAgICBpZiAoc3R5bGUpIGh0bWwucHVzaCgnPHNwYW4gY2xhc3M9IicsIHN0eWxlLCAnIj4nLCBodG1sRXNjYXBlKHRleHQpLCAiPC9zcGFuPiIpOwogICAgICAgIGVsc2UgaHRtbC5wdXNoKGh0bWxFc2NhcGUodGV4dCkpOwogICAgICB9CiAgICAgIHZhciBzdCA9IHRoaXMuc3R5bGVzLCBhbGxUZXh0ID0gdGhpcy50ZXh0LCBtYXJrZWQgPSB0aGlzLm1hcmtlZDsKICAgICAgaWYgKHNmcm9tID09IHN0bykgc2Zyb20gPSBudWxsOwogICAgICB2YXIgbGVuID0gYWxsVGV4dC5sZW5ndGg7CiAgICAgIGlmIChlbmRBdCAhPSBudWxsKSBsZW4gPSBNYXRoLm1pbihlbmRBdCwgbGVuKTsKCiAgICAgIGlmICghYWxsVGV4dCAmJiBlbmRBdCA9PSBudWxsKQogICAgICAgIHNwYW4oIiAiLCBzZnJvbSAhPSBudWxsICYmIHN0byA9PSBudWxsID8gIkNvZGVNaXJyb3Itc2VsZWN0ZWQiIDogbnVsbCk7CiAgICAgIGVsc2UgaWYgKCFtYXJrZWQgJiYgc2Zyb20gPT0gbnVsbCkKICAgICAgICBmb3IgKHZhciBpID0gMCwgY2ggPSAwOyBjaCA8IGxlbjsgaSs9MikgewogICAgICAgICAgdmFyIHN0ciA9IHN0W2ldLCBsID0gc3RyLmxlbmd0aDsKICAgICAgICAgIGlmIChjaCArIGwgPiBsZW4pIHN0ciA9IHN0ci5zbGljZSgwLCBsZW4gLSBjaCk7CiAgICAgICAgICBjaCArPSBsOwogICAgICAgICAgc3BhbihzdHIsICJjbS0iICsgc3RbaSsxXSk7CiAgICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICB2YXIgcG9zID0gMCwgaSA9IDAsIHRleHQgPSAiIiwgc3R5bGUsIHNnID0gMDsKICAgICAgICB2YXIgbWFya3BvcyA9IC0xLCBtYXJrID0gbnVsbDsKICAgICAgICBmdW5jdGlvbiBuZXh0TWFyaygpIHsKICAgICAgICAgIGlmIChtYXJrZWQpIHsKICAgICAgICAgICAgbWFya3BvcyArPSAxOwogICAgICAgICAgICBtYXJrID0gKG1hcmtwb3MgPCBtYXJrZWQubGVuZ3RoKSA/IG1hcmtlZFttYXJrcG9zXSA6IG51bGw7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG5leHRNYXJrKCk7CiAgICAgICAgd2hpbGUgKHBvcyA8IGxlbikgewogICAgICAgICAgdmFyIHVwdG8gPSBsZW47CiAgICAgICAgICB2YXIgZXh0cmFTdHlsZSA9ICIiOwogICAgICAgICAgaWYgKHNmcm9tICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKHNmcm9tID4gcG9zKSB1cHRvID0gc2Zyb207CiAgICAgICAgICAgIGVsc2UgaWYgKHN0byA9PSBudWxsIHx8IHN0byA+IHBvcykgewogICAgICAgICAgICAgIGV4dHJhU3R5bGUgPSAiIENvZGVNaXJyb3Itc2VsZWN0ZWQiOwogICAgICAgICAgICAgIGlmIChzdG8gIT0gbnVsbCkgdXB0byA9IE1hdGgubWluKHVwdG8sIHN0byk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHdoaWxlIChtYXJrICYmIG1hcmsudG8gIT0gbnVsbCAmJiBtYXJrLnRvIDw9IHBvcykgbmV4dE1hcmsoKTsKICAgICAgICAgIGlmIChtYXJrKSB7CiAgICAgICAgICAgIGlmIChtYXJrLmZyb20gPiBwb3MpIHVwdG8gPSBNYXRoLm1pbih1cHRvLCBtYXJrLmZyb20pOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBleHRyYVN0eWxlICs9ICIgIiArIG1hcmsuc3R5bGU7CiAgICAgICAgICAgICAgaWYgKG1hcmsudG8gIT0gbnVsbCkgdXB0byA9IE1hdGgubWluKHVwdG8sIG1hcmsudG8pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgIHZhciBlbmQgPSBwb3MgKyB0ZXh0Lmxlbmd0aDsKICAgICAgICAgICAgdmFyIGFwcGxpZWRTdHlsZSA9IHN0eWxlOwogICAgICAgICAgICBpZiAoZXh0cmFTdHlsZSkgYXBwbGllZFN0eWxlID0gc3R5bGUgPyBzdHlsZSArIGV4dHJhU3R5bGUgOiBleHRyYVN0eWxlOwogICAgICAgICAgICBzcGFuKGVuZCA+IHVwdG8gPyB0ZXh0LnNsaWNlKDAsIHVwdG8gLSBwb3MpIDogdGV4dCwgYXBwbGllZFN0eWxlKTsKICAgICAgICAgICAgaWYgKGVuZCA+PSB1cHRvKSB7dGV4dCA9IHRleHQuc2xpY2UodXB0byAtIHBvcyk7IHBvcyA9IHVwdG87IGJyZWFrO30KICAgICAgICAgICAgcG9zID0gZW5kOwogICAgICAgICAgICB0ZXh0ID0gc3RbaSsrXTsgc3R5bGUgPSAiY20tIiArIHN0W2krK107CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzZnJvbSAhPSBudWxsICYmIHN0byA9PSBudWxsKSBzcGFuKCIgIiwgIkNvZGVNaXJyb3Itc2VsZWN0ZWQiKTsKICAgICAgfQogICAgICBpZiAoaW5jbHVkZVByZSkgaHRtbC5wdXNoKCI8L3ByZT4iKTsKICAgICAgcmV0dXJuIGh0bWwuam9pbigiIik7CiAgICB9CiAgfTsKICAvLyBVdGlsaXR5IHVzZWQgYnkgcmVwbGFjZSBhbmQgc3BsaXQgYWJvdmUKICBmdW5jdGlvbiBjb3B5U3R5bGVzKGZyb20sIHRvLCBzb3VyY2UsIGRlc3QpIHsKICAgIGZvciAodmFyIGkgPSAwLCBwb3MgPSAwLCBzdGF0ZSA9IDA7IHBvcyA8IHRvOyBpKz0yKSB7CiAgICAgIHZhciBwYXJ0ID0gc291cmNlW2ldLCBlbmQgPSBwb3MgKyBwYXJ0Lmxlbmd0aDsKICAgICAgaWYgKHN0YXRlID09IDApIHsKICAgICAgICBpZiAoZW5kID4gZnJvbSkgZGVzdC5wdXNoKHBhcnQuc2xpY2UoZnJvbSAtIHBvcywgTWF0aC5taW4ocGFydC5sZW5ndGgsIHRvIC0gcG9zKSksIHNvdXJjZVtpKzFdKTsKICAgICAgICBpZiAoZW5kID49IGZyb20pIHN0YXRlID0gMTsKICAgICAgfQogICAgICBlbHNlIGlmIChzdGF0ZSA9PSAxKSB7CiAgICAgICAgaWYgKGVuZCA+IHRvKSBkZXN0LnB1c2gocGFydC5zbGljZSgwLCB0byAtIHBvcyksIHNvdXJjZVtpKzFdKTsKICAgICAgICBlbHNlIGRlc3QucHVzaChwYXJ0LCBzb3VyY2VbaSsxXSk7CiAgICAgIH0KICAgICAgcG9zID0gZW5kOwogICAgfQogIH0KCiAgLy8gVGhlIGhpc3Rvcnkgb2JqZWN0ICdjaHVua3MnIGNoYW5nZXMgdGhhdCBhcmUgbWFkZSBjbG9zZSB0b2dldGhlcgogIC8vIGFuZCBhdCBhbG1vc3QgdGhlIHNhbWUgdGltZSBpbnRvIGJpZ2dlciB1bmRvYWJsZSB1bml0cy4KICBmdW5jdGlvbiBIaXN0b3J5KCkgewogICAgdGhpcy50aW1lID0gMDsKICAgIHRoaXMuZG9uZSA9IFtdOyB0aGlzLnVuZG9uZSA9IFtdOwogIH0KICBIaXN0b3J5LnByb3RvdHlwZSA9IHsKICAgIGFkZENoYW5nZTogZnVuY3Rpb24oc3RhcnQsIGFkZGVkLCBvbGQpIHsKICAgICAgdGhpcy51bmRvbmUubGVuZ3RoID0gMDsKICAgICAgdmFyIHRpbWUgPSArbmV3IERhdGUsIGxhc3QgPSB0aGlzLmRvbmVbdGhpcy5kb25lLmxlbmd0aCAtIDFdOwogICAgICBpZiAodGltZSAtIHRoaXMudGltZSA+IDQwMCB8fCAhbGFzdCB8fAogICAgICAgICAgbGFzdC5zdGFydCA+IHN0YXJ0ICsgYWRkZWQgfHwgbGFzdC5zdGFydCArIGxhc3QuYWRkZWQgPCBzdGFydCAtIGxhc3QuYWRkZWQgKyBsYXN0Lm9sZC5sZW5ndGgpCiAgICAgICAgdGhpcy5kb25lLnB1c2goe3N0YXJ0OiBzdGFydCwgYWRkZWQ6IGFkZGVkLCBvbGQ6IG9sZH0pOwogICAgICBlbHNlIHsKICAgICAgICB2YXIgb2xkb2ZmID0gMDsKICAgICAgICBpZiAoc3RhcnQgPCBsYXN0LnN0YXJ0KSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gbGFzdC5zdGFydCAtIHN0YXJ0IC0gMTsgaSA+PSAwOyAtLWkpCiAgICAgICAgICAgIGxhc3Qub2xkLnVuc2hpZnQob2xkW2ldKTsKICAgICAgICAgIGxhc3QuYWRkZWQgKz0gbGFzdC5zdGFydCAtIHN0YXJ0OwogICAgICAgICAgbGFzdC5zdGFydCA9IHN0YXJ0OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsYXN0LnN0YXJ0IDwgc3RhcnQpIHsKICAgICAgICAgIG9sZG9mZiA9IHN0YXJ0IC0gbGFzdC5zdGFydDsKICAgICAgICAgIGFkZGVkICs9IG9sZG9mZjsKICAgICAgICB9CiAgICAgICAgZm9yICh2YXIgaSA9IGxhc3QuYWRkZWQgLSBvbGRvZmYsIGUgPSBvbGQubGVuZ3RoOyBpIDwgZTsgKytpKQogICAgICAgICAgbGFzdC5vbGQucHVzaChvbGRbaV0pOwogICAgICAgIGlmIChsYXN0LmFkZGVkIDwgYWRkZWQpIGxhc3QuYWRkZWQgPSBhZGRlZDsKICAgICAgfQogICAgICB0aGlzLnRpbWUgPSB0aW1lOwogICAgfQogIH07CgogIGZ1bmN0aW9uIHN0b3BNZXRob2QoKSB7ZV9zdG9wKHRoaXMpO30KICAvLyBFbnN1cmUgYW4gZXZlbnQgaGFzIGEgc3RvcCBtZXRob2QuCiAgZnVuY3Rpb24gYWRkU3RvcChldmVudCkgewogICAgaWYgKCFldmVudC5zdG9wKSBldmVudC5zdG9wID0gc3RvcE1ldGhvZDsKICAgIHJldHVybiBldmVudDsKICB9CgogIGZ1bmN0aW9uIGVfcHJldmVudERlZmF1bHQoZSkgewogICAgaWYgKGUucHJldmVudERlZmF1bHQpIGUucHJldmVudERlZmF1bHQoKTsKICAgIGVsc2UgZS5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogIH0KICBmdW5jdGlvbiBlX3N0b3BQcm9wYWdhdGlvbihlKSB7CiAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICBlbHNlIGUuY2FuY2VsQnViYmxlID0gdHJ1ZTsKICB9CiAgZnVuY3Rpb24gZV9zdG9wKGUpIHtlX3ByZXZlbnREZWZhdWx0KGUpOyBlX3N0b3BQcm9wYWdhdGlvbihlKTt9CiAgZnVuY3Rpb24gZV90YXJnZXQoZSkge3JldHVybiBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQ7fQogIGZ1bmN0aW9uIGVfYnV0dG9uKGUpIHsKICAgIGlmIChlLndoaWNoKSByZXR1cm4gZS53aGljaDsKICAgIGVsc2UgaWYgKGUuYnV0dG9uICYgMSkgcmV0dXJuIDE7CiAgICBlbHNlIGlmIChlLmJ1dHRvbiAmIDIpIHJldHVybiAzOwogICAgZWxzZSBpZiAoZS5idXR0b24gJiA0KSByZXR1cm4gMjsKICB9CgogIC8vIEV2ZW50IGhhbmRsZXIgcmVnaXN0cmF0aW9uLiBJZiBkaXNjb25uZWN0IGlzIHRydWUsIGl0J2xsIHJldHVybiBhCiAgLy8gZnVuY3Rpb24gdGhhdCB1bnJlZ2lzdGVycyB0aGUgaGFuZGxlci4KICBmdW5jdGlvbiBjb25uZWN0KG5vZGUsIHR5cGUsIGhhbmRsZXIsIGRpc2Nvbm5lY3QpIHsKICAgIGZ1bmN0aW9uIHdyYXBIYW5kbGVyKGV2ZW50KSB7aGFuZGxlcihldmVudCB8fCB3aW5kb3cuZXZlbnQpO30KICAgIGlmICh0eXBlb2Ygbm9kZS5hZGRFdmVudExpc3RlbmVyID09ICJmdW5jdGlvbiIpIHsKICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIHdyYXBIYW5kbGVyLCBmYWxzZSk7CiAgICAgIGlmIChkaXNjb25uZWN0KSByZXR1cm4gZnVuY3Rpb24oKSB7bm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIHdyYXBIYW5kbGVyLCBmYWxzZSk7fTsKICAgIH0KICAgIGVsc2UgewogICAgICBub2RlLmF0dGFjaEV2ZW50KCJvbiIgKyB0eXBlLCB3cmFwSGFuZGxlcik7CiAgICAgIGlmIChkaXNjb25uZWN0KSByZXR1cm4gZnVuY3Rpb24oKSB7bm9kZS5kZXRhY2hFdmVudCgib24iICsgdHlwZSwgd3JhcEhhbmRsZXIpO307CiAgICB9CiAgfQoKICBmdW5jdGlvbiBEZWxheWVkKCkge3RoaXMuaWQgPSBudWxsO30KICBEZWxheWVkLnByb3RvdHlwZSA9IHtzZXQ6IGZ1bmN0aW9uKG1zLCBmKSB7Y2xlYXJUaW1lb3V0KHRoaXMuaWQpOyB0aGlzLmlkID0gc2V0VGltZW91dChmLCBtcyk7fX07CgogIC8vIFNvbWUgSUUgdmVyc2lvbnMgZG9uJ3QgcHJlc2VydmUgd2hpdGVzcGFjZSB3aGVuIHNldHRpbmcgdGhlCiAgLy8gaW5uZXJIVE1MIG9mIGEgUFJFIHRhZy4KICB2YXIgYmFkSW5uZXJIVE1MID0gKGZ1bmN0aW9uKCkgewogICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwogICAgcHJlLmlubmVySFRNTCA9ICIgIjsgcmV0dXJuICFwcmUuaW5uZXJIVE1MOwogIH0pKCk7CgogIHZhciBnZWNrbyA9IC9nZWNrb1wvXGR7N30vaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOwogIHZhciBpZSA9IC9NU0lFIFxkLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOwogIHZhciBzYWZhcmkgPSAvQXBwbGUgQ29tcHV0ZXIvLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7CgogIHZhciBsaW5lU2VwID0gIlxuIjsKICAvLyBGZWF0dXJlLWRldGVjdCB3aGV0aGVyIG5ld2xpbmVzIGluIHRleHRhcmVhcyBhcmUgY29udmVydGVkIHRvIFxyXG4KICAoZnVuY3Rpb24gKCkgewogICAgdmFyIHRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKICAgIHRlLnZhbHVlID0gImZvb1xuYmFyIjsKICAgIGlmICh0ZS52YWx1ZS5pbmRleE9mKCJcciIpID4gLTEpIGxpbmVTZXAgPSAiXHJcbiI7CiAgfSgpKTsKCiAgdmFyIHRhYlNpemUgPSA4OwogIHZhciBtYWMgPSAvTWFjLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk7CiAgdmFyIG1vdmVtZW50S2V5cyA9IHt9OwogIGZvciAodmFyIGkgPSAzNTsgaSA8PSA0MDsgKytpKQogICAgbW92ZW1lbnRLZXlzW2ldID0gbW92ZW1lbnRLZXlzWyJjIiArIGldID0gdHJ1ZTsKCiAgLy8gQ291bnRzIHRoZSBjb2x1bW4gb2Zmc2V0IGluIGEgc3RyaW5nLCB0YWtpbmcgdGFicyBpbnRvIGFjY291bnQuCiAgLy8gVXNlZCBtb3N0bHkgdG8gZmluZCBpbmRlbnRhdGlvbi4KICBmdW5jdGlvbiBjb3VudENvbHVtbihzdHJpbmcsIGVuZCkgewogICAgaWYgKGVuZCA9PSBudWxsKSB7CiAgICAgIGVuZCA9IHN0cmluZy5zZWFyY2goL1teXHNcdTAwYTBdLyk7CiAgICAgIGlmIChlbmQgPT0gLTEpIGVuZCA9IHN0cmluZy5sZW5ndGg7CiAgICB9CiAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCBlbmQ7ICsraSkgewogICAgICBpZiAoc3RyaW5nLmNoYXJBdChpKSA9PSAiXHQiKSBuICs9IHRhYlNpemUgLSAobiAlIHRhYlNpemUpOwogICAgICBlbHNlICsrbjsKICAgIH0KICAgIHJldHVybiBuOwogIH0KCiAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlbHQpIHsKICAgIGlmIChlbHQuY3VycmVudFN0eWxlKSByZXR1cm4gZWx0LmN1cnJlbnRTdHlsZTsKICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbHQsIG51bGwpOwogIH0KICAvLyBGaW5kIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGZvbGxvd2luZyB0aGUgb2Zmc2V0UGFyZW50IGNoYWluLgogIC8vIElmIHNjcmVlbj09dHJ1ZSwgaXQgcmV0dXJucyBzY3JlZW4gKHJhdGhlciB0aGFuIHBhZ2UpIGNvb3JkaW5hdGVzLgogIGZ1bmN0aW9uIGVsdE9mZnNldChub2RlLCBzY3JlZW4pIHsKICAgIHZhciBkb2MgPSBub2RlLm93bmVyRG9jdW1lbnQuYm9keTsKICAgIHZhciB4ID0gMCwgeSA9IDAsIHNraXBEb2MgPSBmYWxzZTsKICAgIGZvciAodmFyIG4gPSBub2RlOyBuOyBuID0gbi5vZmZzZXRQYXJlbnQpIHsKICAgICAgeCArPSBuLm9mZnNldExlZnQ7IHkgKz0gbi5vZmZzZXRUb3A7CiAgICAgIGlmIChzY3JlZW4gJiYgY29tcHV0ZWRTdHlsZShuKS5wb3NpdGlvbiA9PSAiZml4ZWQiKQogICAgICAgIHNraXBEb2MgPSB0cnVlOwogICAgfQogICAgdmFyIGUgPSBzY3JlZW4gJiYgIXNraXBEb2MgPyBudWxsIDogZG9jOwogICAgZm9yICh2YXIgbiA9IG5vZGUucGFyZW50Tm9kZTsgbiAhPSBlOyBuID0gbi5wYXJlbnROb2RlKQogICAgICBpZiAobi5zY3JvbGxMZWZ0ICE9IG51bGwpIHsgeCAtPSBuLnNjcm9sbExlZnQ7IHkgLT0gbi5zY3JvbGxUb3A7fQogICAgcmV0dXJuIHtsZWZ0OiB4LCB0b3A6IHl9OwogIH0KICAvLyBHZXQgYSBub2RlJ3MgdGV4dCBjb250ZW50LgogIGZ1bmN0aW9uIGVsdFRleHQobm9kZSkgewogICAgcmV0dXJuIG5vZGUudGV4dENvbnRlbnQgfHwgbm9kZS5pbm5lclRleHQgfHwgbm9kZS5ub2RlVmFsdWUgfHwgIiI7CiAgfQoKICAvLyBPcGVyYXRpb25zIG9uIHtsaW5lLCBjaH0gb2JqZWN0cy4KICBmdW5jdGlvbiBwb3NFcShhLCBiKSB7cmV0dXJuIGEubGluZSA9PSBiLmxpbmUgJiYgYS5jaCA9PSBiLmNoO30KICBmdW5jdGlvbiBwb3NMZXNzKGEsIGIpIHtyZXR1cm4gYS5saW5lIDwgYi5saW5lIHx8IChhLmxpbmUgPT0gYi5saW5lICYmIGEuY2ggPCBiLmNoKTt9CiAgZnVuY3Rpb24gY29weVBvcyh4KSB7cmV0dXJuIHtsaW5lOiB4LmxpbmUsIGNoOiB4LmNofTt9CgogIHZhciBlc2NhcGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgZnVuY3Rpb24gaHRtbEVzY2FwZShzdHIpIHsKICAgIGVzY2FwZUVsZW1lbnQuaW5uZXJUZXh0ID0gZXNjYXBlRWxlbWVudC50ZXh0Q29udGVudCA9IHN0cjsKICAgIHJldHVybiBlc2NhcGVFbGVtZW50LmlubmVySFRNTDsKICB9CiAgQ29kZU1pcnJvci5odG1sRXNjYXBlID0gaHRtbEVzY2FwZTsKCiAgLy8gVXNlZCB0byBwb3NpdGlvbiB0aGUgY3Vyc29yIGFmdGVyIGFuIHVuZG8vcmVkbyBieSBmaW5kaW5nIHRoZQogIC8vIGxhc3QgZWRpdGVkIGNoYXJhY3Rlci4KICBmdW5jdGlvbiBlZGl0RW5kKGZyb20sIHRvKSB7CiAgICBpZiAoIXRvKSByZXR1cm4gZnJvbSA/IGZyb20ubGVuZ3RoIDogMDsKICAgIGlmICghZnJvbSkgcmV0dXJuIHRvLmxlbmd0aDsKICAgIGZvciAodmFyIGkgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA+PSAwICYmIGogPj0gMDsgLS1pLCAtLWopCiAgICAgIGlmIChmcm9tLmNoYXJBdChpKSAhPSB0by5jaGFyQXQoaikpIGJyZWFrOwogICAgcmV0dXJuIGogKyAxOwogIH0KCiAgZnVuY3Rpb24gaW5kZXhPZihjb2xsZWN0aW9uLCBlbHQpIHsKICAgIGlmIChjb2xsZWN0aW9uLmluZGV4T2YpIHJldHVybiBjb2xsZWN0aW9uLmluZGV4T2YoZWx0KTsKICAgIGZvciAodmFyIGkgPSAwLCBlID0gY29sbGVjdGlvbi5sZW5ndGg7IGkgPCBlOyArK2kpCiAgICAgIGlmIChjb2xsZWN0aW9uW2ldID09IGVsdCkgcmV0dXJuIGk7CiAgICByZXR1cm4gLTE7CiAgfQoKICAvLyBTZWUgaWYgIiIuc3BsaXQgaXMgdGhlIGJyb2tlbiBJRSB2ZXJzaW9uLCBpZiBzbywgcHJvdmlkZSBhbgogIC8vIGFsdGVybmF0aXZlIHdheSB0byBzcGxpdCBsaW5lcy4KICB2YXIgc3BsaXRMaW5lcywgc2VsUmFuZ2UsIHNldFNlbFJhbmdlOwogIGlmICgiXG5cbmIiLnNwbGl0KC9cbi8pLmxlbmd0aCAhPSAzKQogICAgc3BsaXRMaW5lcyA9IGZ1bmN0aW9uKHN0cmluZykgewogICAgICB2YXIgcG9zID0gMCwgbmwsIHJlc3VsdCA9IFtdOwogICAgICB3aGlsZSAoKG5sID0gc3RyaW5nLmluZGV4T2YoIlxuIiwgcG9zKSkgPiAtMSkgewogICAgICAgIHJlc3VsdC5wdXNoKHN0cmluZy5zbGljZShwb3MsIHN0cmluZy5jaGFyQXQobmwtMSkgPT0gIlxyIiA/IG5sIC0gMSA6IG5sKSk7CiAgICAgICAgcG9zID0gbmwgKyAxOwogICAgICB9CiAgICAgIHJlc3VsdC5wdXNoKHN0cmluZy5zbGljZShwb3MpKTsKICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH07CiAgZWxzZQogICAgc3BsaXRMaW5lcyA9IGZ1bmN0aW9uKHN0cmluZyl7cmV0dXJuIHN0cmluZy5zcGxpdCgvXHI/XG4vKTt9OwogIENvZGVNaXJyb3Iuc3BsaXRMaW5lcyA9IHNwbGl0TGluZXM7CgogIC8vIFNhbmUgbW9kZWwgb2YgZmluZGluZyBhbmQgc2V0dGluZyB0aGUgc2VsZWN0aW9uIGluIGEgdGV4dGFyZWEKICBpZiAod2luZG93LmdldFNlbGVjdGlvbikgewogICAgc2VsUmFuZ2UgPSBmdW5jdGlvbih0ZSkgewogICAgICB0cnkge3JldHVybiB7c3RhcnQ6IHRlLnNlbGVjdGlvblN0YXJ0LCBlbmQ6IHRlLnNlbGVjdGlvbkVuZH07fQogICAgICBjYXRjaChlKSB7cmV0dXJuIG51bGw7fQogICAgfTsKICAgIGlmIChzYWZhcmkpCiAgICAgIC8vIE9uIFNhZmFyaSwgc2VsZWN0aW9uIHNldCB3aXRoIHNldFNlbGVjdGlvblJhbmdlIGFyZSBpbiBhIHNvcnQKICAgICAgLy8gb2YgbGltYm8gd3J0IHRoZWlyIGFuY2hvci4gSWYgeW91IHByZXNzIHNoaWZ0LWxlZnQgaW4gdGhlbSwKICAgICAgLy8gdGhlIGFuY2hvciBpcyBwdXQgYXQgdGhlIGVuZCwgYW5kIHRoZSBzZWxlY3Rpb24gZXhwYW5kZWQgdG8KICAgICAgLy8gdGhlIGxlZnQuIElmIHlvdSBwcmVzcyBzaGlmdC1yaWdodCwgdGhlIGFuY2hvciBlbmRzIHVwIGF0IHRoZQogICAgICAvLyBmcm9udC4gVGhpcyBpcyBub3Qgd2hhdCBDb2RlTWlycm9yIHdhbnRzLCBzbyBpdCBkb2VzIGEKICAgICAgLy8gc3B1cmlvdXMgbW9kaWZ5KCkgY2FsbCB0byBnZXQgb3V0IG9mIGxpbWJvLgogICAgICBzZXRTZWxSYW5nZSA9IGZ1bmN0aW9uKHRlLCBzdGFydCwgZW5kKSB7CiAgICAgICAgaWYgKHN0YXJ0ID09IGVuZCkKICAgICAgICAgIHRlLnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOwogICAgICAgIGVsc2UgewogICAgICAgICAgdGUuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCAtIDEpOwogICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7CiAgICAgICAgfQogICAgICB9OwogICAgZWxzZQogICAgICBzZXRTZWxSYW5nZSA9IGZ1bmN0aW9uKHRlLCBzdGFydCwgZW5kKSB7CiAgICAgICAgdHJ5IHt0ZS5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTt9CiAgICAgICAgY2F0Y2goZSkge30gLy8gRmFpbHMgb24gRmlyZWZveCB3aGVuIHRleHRhcmVhIGlzbid0IHBhcnQgb2YgdGhlIGRvY3VtZW50CiAgICAgIH07CiAgfQogIC8vIElFIG1vZGVsLiBEb24ndCBhc2suCiAgZWxzZSB7CiAgICBzZWxSYW5nZSA9IGZ1bmN0aW9uKHRlKSB7CiAgICAgIHRyeSB7dmFyIHJhbmdlID0gdGUub3duZXJEb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTt9CiAgICAgIGNhdGNoKGUpIHtyZXR1cm4gbnVsbDt9CiAgICAgIGlmICghcmFuZ2UgfHwgcmFuZ2UucGFyZW50RWxlbWVudCgpICE9IHRlKSByZXR1cm4gbnVsbDsKICAgICAgdmFyIHZhbCA9IHRlLnZhbHVlLCBsZW4gPSB2YWwubGVuZ3RoLCBsb2NhbFJhbmdlID0gdGUuY3JlYXRlVGV4dFJhbmdlKCk7CiAgICAgIGxvY2FsUmFuZ2UubW92ZVRvQm9va21hcmsocmFuZ2UuZ2V0Qm9va21hcmsoKSk7CiAgICAgIHZhciBlbmRSYW5nZSA9IHRlLmNyZWF0ZVRleHRSYW5nZSgpOwogICAgICBlbmRSYW5nZS5jb2xsYXBzZShmYWxzZSk7CgogICAgICBpZiAobG9jYWxSYW5nZS5jb21wYXJlRW5kUG9pbnRzKCJTdGFydFRvRW5kIiwgZW5kUmFuZ2UpID4gLTEpCiAgICAgICAgcmV0dXJuIHtzdGFydDogbGVuLCBlbmQ6IGxlbn07CgogICAgICB2YXIgc3RhcnQgPSAtbG9jYWxSYW5nZS5tb3ZlU3RhcnQoImNoYXJhY3RlciIsIC1sZW4pOwogICAgICBmb3IgKHZhciBpID0gdmFsLmluZGV4T2YoIlxyIik7IGkgPiAtMSAmJiBpIDwgc3RhcnQ7IGkgPSB2YWwuaW5kZXhPZigiXHIiLCBpKzEpLCBzdGFydCsrKSB7fQoKICAgICAgaWYgKGxvY2FsUmFuZ2UuY29tcGFyZUVuZFBvaW50cygiRW5kVG9FbmQiLCBlbmRSYW5nZSkgPiAtMSkKICAgICAgICByZXR1cm4ge3N0YXJ0OiBzdGFydCwgZW5kOiBsZW59OwoKICAgICAgdmFyIGVuZCA9IC1sb2NhbFJhbmdlLm1vdmVFbmQoImNoYXJhY3RlciIsIC1sZW4pOwogICAgICBmb3IgKHZhciBpID0gdmFsLmluZGV4T2YoIlxyIik7IGkgPiAtMSAmJiBpIDwgZW5kOyBpID0gdmFsLmluZGV4T2YoIlxyIiwgaSsxKSwgZW5kKyspIHt9CiAgICAgIHJldHVybiB7c3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZH07CiAgICB9OwogICAgc2V0U2VsUmFuZ2UgPSBmdW5jdGlvbih0ZSwgc3RhcnQsIGVuZCkgewogICAgICB2YXIgcmFuZ2UgPSB0ZS5jcmVhdGVUZXh0UmFuZ2UoKTsKICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7CiAgICAgIHZhciBlbmRyYW5nZSA9IHJhbmdlLmR1cGxpY2F0ZSgpOwogICAgICB2YXIgbmV3bGluZXMgPSAwLCB0eHQgPSB0ZS52YWx1ZTsKICAgICAgZm9yICh2YXIgcG9zID0gdHh0LmluZGV4T2YoIlxuIik7IHBvcyA+IC0xICYmIHBvcyA8IHN0YXJ0OyBwb3MgPSB0eHQuaW5kZXhPZigiXG4iLCBwb3MgKyAxKSkKICAgICAgICArK25ld2xpbmVzOwogICAgICByYW5nZS5tb3ZlKCJjaGFyYWN0ZXIiLCBzdGFydCAtIG5ld2xpbmVzKTsKICAgICAgZm9yICg7IHBvcyA+IC0xICYmIHBvcyA8IGVuZDsgcG9zID0gdHh0LmluZGV4T2YoIlxuIiwgcG9zICsgMSkpCiAgICAgICAgKytuZXdsaW5lczsKICAgICAgZW5kcmFuZ2UubW92ZSgiY2hhcmFjdGVyIiwgZW5kIC0gbmV3bGluZXMpOwogICAgICByYW5nZS5zZXRFbmRQb2ludCgiRW5kVG9FbmQiLCBlbmRyYW5nZSk7CiAgICAgIHJhbmdlLnNlbGVjdCgpOwogICAgfTsKICB9CgogIENvZGVNaXJyb3IuZGVmaW5lTW9kZSgibnVsbCIsIGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHt0b2tlbjogZnVuY3Rpb24oc3RyZWFtKSB7c3RyZWFtLnNraXBUb0VuZCgpO319OwogIH0pOwogIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgidGV4dC9wbGFpbiIsICJudWxsIik7CgogIHJldHVybiBDb2RlTWlycm9yOwp9KSgpCjs=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/lib/overlay.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gVXRpbGl0eSBmdW5jdGlvbiB0aGF0IGFsbG93cyBtb2RlcyB0byBiZSBjb21iaW5lZC4gVGhlIG1vZGUgZ2l2ZW4KLy8gYXMgdGhlIGJhc2UgYXJndW1lbnQgdGFrZXMgY2FyZSBvZiBtb3N0IG9mIHRoZSBub3JtYWwgbW9kZQovLyBmdW5jdGlvbmFsaXR5LCBidXQgYSBzZWNvbmQgKHR5cGljYWxseSBzaW1wbGUpIG1vZGUgaXMgdXNlZCwgd2hpY2gKLy8gY2FuIG92ZXJyaWRlIHRoZSBzdHlsZSBvZiB0ZXh0LiBCb3RoIG1vZGVzIGdldCB0byBwYXJzZSBhbGwgb2YgdGhlCi8vIHRleHQsIGJ1dCB3aGVuIGJvdGggYXNzaWduIGEgbm9uLW51bGwgc3R5bGUgdG8gYSBwaWVjZSBvZiBjb2RlLCB0aGUKLy8gb3ZlcmxheSB3aW5zLCB1bmxlc3MgdGhlIGNvbWJpbmUgYXJndW1lbnQgd2FzIHRydWUsIGluIHdoaWNoIGNhc2UKLy8gdGhlIHN0eWxlcyBhcmUgY29tYmluZWQuCgpDb2RlTWlycm9yLm92ZXJsYXlQYXJzZXIgPSBmdW5jdGlvbihiYXNlLCBvdmVybGF5LCBjb21iaW5lKSB7CiAgcmV0dXJuIHsKICAgIHN0YXJ0U3RhdGU6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gewogICAgICAgIGJhc2U6IENvZGVNaXJyb3Iuc3RhcnRTdGF0ZShiYXNlKSwKICAgICAgICBvdmVybGF5OiBDb2RlTWlycm9yLnN0YXJ0U3RhdGUob3ZlcmxheSksCiAgICAgICAgYmFzZVBvczogMCwgYmFzZUN1cjogbnVsbCwKICAgICAgICBvdmVybGF5UG9zOiAwLCBvdmVybGF5Q3VyOiBudWxsCiAgICAgIH07CiAgICB9LAogICAgY29weVN0YXRlOiBmdW5jdGlvbihzdGF0ZSkgewogICAgICByZXR1cm4gewogICAgICAgIGJhc2U6IENvZGVNaXJyb3IuY29weVN0YXRlKGJhc2UsIHN0YXRlLmJhc2UpLAogICAgICAgIG92ZXJsYXk6IENvZGVNaXJyb3IuY29weVN0YXRlKG92ZXJsYXksIHN0YXRlLm92ZXJsYXkpLAogICAgICAgIGJhc2VQb3M6IHN0YXRlLmJhc2VQb3MsIGJhc2VDdXI6IG51bGwsCiAgICAgICAgb3ZlcmxheVBvczogc3RhdGUub3ZlcmxheVBvcywgb3ZlcmxheUN1cjogbnVsbAogICAgICB9OwogICAgfSwKCiAgICB0b2tlbjogZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICBpZiAoc3RyZWFtLnN0YXJ0ID09IHN0YXRlLmJhc2VQb3MpIHsKICAgICAgICBzdGF0ZS5iYXNlQ3VyID0gYmFzZS50b2tlbihzdHJlYW0sIHN0YXRlLmJhc2UpOwogICAgICAgIHN0YXRlLmJhc2VQb3MgPSBzdHJlYW0ucG9zOwogICAgICB9CiAgICAgIGlmIChzdHJlYW0uc3RhcnQgPT0gc3RhdGUub3ZlcmxheVBvcykgewogICAgICAgIHN0cmVhbS5wb3MgPSBzdHJlYW0uc3RhcnQ7CiAgICAgICAgc3RhdGUub3ZlcmxheUN1ciA9IG92ZXJsYXkudG9rZW4oc3RyZWFtLCBzdGF0ZS5vdmVybGF5KTsKICAgICAgICBzdGF0ZS5vdmVybGF5UG9zID0gc3RyZWFtLnBvczsKICAgICAgfQogICAgICBzdHJlYW0ucG9zID0gTWF0aC5taW4oc3RhdGUuYmFzZVBvcywgc3RhdGUub3ZlcmxheVBvcyk7CiAgICAgIGlmIChzdHJlYW0uZW9sKCkpIHN0YXRlLmJhc2VQb3MgPSBzdGF0ZS5vdmVybGF5UG9zID0gMDsKCiAgICAgIGlmIChzdGF0ZS5vdmVybGF5Q3VyID09IG51bGwpIHJldHVybiBzdGF0ZS5iYXNlQ3VyOwogICAgICBpZiAoc3RhdGUuYmFzZUN1ciAhPSBudWxsICYmIGNvbWJpbmUpIHJldHVybiBzdGF0ZS5iYXNlQ3VyICsgIiAiICsgc3RhdGUub3ZlcmxheUN1cjsKICAgICAgZWxzZSByZXR1cm4gc3RhdGUub3ZlcmxheUN1cjsKICAgIH0sCiAgICAKICAgIGluZGVudDogZnVuY3Rpb24oc3RhdGUsIHRleHRBZnRlcikgewogICAgICByZXR1cm4gYmFzZS5pbmRlbnQoc3RhdGUuYmFzZSwgdGV4dEFmdGVyKTsKICAgIH0sCiAgICBlbGVjdHJpY0NoYXJzOiBiYXNlLmVsZWN0cmljQ2hhcnMKICB9Owp9Owo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/lib/runmode.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5ydW5Nb2RlID0gZnVuY3Rpb24oc3RyaW5nLCBtb2Rlc3BlYywgY2FsbGJhY2spIHsKICB2YXIgbW9kZSA9IENvZGVNaXJyb3IuZ2V0TW9kZSh7aW5kZW50VW5pdDogMn0sIG1vZGVzcGVjKTsKICB2YXIgaXNOb2RlID0gY2FsbGJhY2subm9kZVR5cGUgPT0gMTsKICBpZiAoaXNOb2RlKSB7CiAgICB2YXIgbm9kZSA9IGNhbGxiYWNrLCBhY2N1bSA9IFtdOwogICAgY2FsbGJhY2sgPSBmdW5jdGlvbihzdHJpbmcsIHN0eWxlKSB7CiAgICAgIGlmIChzdHJpbmcgPT0gIlxuIikKICAgICAgICBhY2N1bS5wdXNoKCI8YnI+Iik7CiAgICAgIGVsc2UgaWYgKHN0eWxlKQogICAgICAgIGFjY3VtLnB1c2goIjxzcGFuIGNsYXNzPVwiY20tIiArIENvZGVNaXJyb3IuaHRtbEVzY2FwZShzdHlsZSkgKyAiXCI+IiArIENvZGVNaXJyb3IuaHRtbEVzY2FwZShzdHJpbmcpICsgIjwvc3Bhbj4iKTsKICAgICAgZWxzZQogICAgICAgIGFjY3VtLnB1c2goQ29kZU1pcnJvci5odG1sRXNjYXBlKHN0cmluZykpOwogICAgfQogIH0KICB2YXIgbGluZXMgPSBDb2RlTWlycm9yLnNwbGl0TGluZXMoc3RyaW5nKSwgc3RhdGUgPSBDb2RlTWlycm9yLnN0YXJ0U3RhdGUobW9kZSk7CiAgZm9yICh2YXIgaSA9IDAsIGUgPSBsaW5lcy5sZW5ndGg7IGkgPCBlOyArK2kpIHsKICAgIGlmIChpKSBjYWxsYmFjaygiXG4iKTsKICAgIHZhciBzdHJlYW0gPSBuZXcgQ29kZU1pcnJvci5TdHJpbmdTdHJlYW0obGluZXNbaV0pOwogICAgd2hpbGUgKCFzdHJlYW0uZW9sKCkpIHsKICAgICAgdmFyIHN0eWxlID0gbW9kZS50b2tlbihzdHJlYW0sIHN0YXRlKTsKICAgICAgY2FsbGJhY2soc3RyZWFtLmN1cnJlbnQoKSwgc3R5bGUpOwogICAgICBzdHJlYW0uc3RhcnQgPSBzdHJlYW0ucG9zOwogICAgfQogIH0KICBpZiAoaXNOb2RlKQogICAgbm9kZS5pbm5lckhUTUwgPSBhY2N1bS5qb2luKCIiKTsKfTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChDKSAyMDExIGJ5IE1hcmlqbiBIYXZlcmJla2UgPG1hcmlqbmhAZ21haWwuY29tPgoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgphbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOClRIRSBTT0ZUV0FSRS4K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/coffeescript/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/coffeescript/coffeescript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIExpbmsgdG8gdGhlIHByb2plY3QncyBHaXRIdWIgcGFnZToKICogaHR0cHM6Ly9naXRodWIuY29tL3BpY2toYXJkdC9jb2ZmZWVzY3JpcHQtY29kZW1pcnJvci1tb2RlCiAqLwpDb2RlTWlycm9yLmRlZmluZU1vZGUoJ2NvZmZlZXNjcmlwdCcsIGZ1bmN0aW9uKGNvbmYpIHsKICAgIHZhciBFUlJPUkNMQVNTID0gJ2Vycm9yJzsKICAgIAogICAgZnVuY3Rpb24gd29yZFJlZ2V4cCh3b3JkcykgewogICAgICAgIHJldHVybiBuZXcgUmVnRXhwKCJeKCgiICsgd29yZHMuam9pbigiKXwoIikgKyAiKSlcXGIiKTsKICAgIH0KICAgIAogICAgdmFyIHNpbmdsZU9wZXJhdG9ycyA9IG5ldyBSZWdFeHAoIl5bXFwrXFwtXFwqLyUmfFxcXn48PiFcP10iKTsKICAgIHZhciBzaW5nbGVEZWxpbWl0ZXJzID0gbmV3IFJlZ0V4cCgnXltcXChcXClcXFtcXF1cXHtcXH1ALDpgPTtcXC5dJyk7CiAgICB2YXIgZG91YmxlT3BlcmF0b3JzID0gbmV3IFJlZ0V4cCgiXigoXFwrXFwrKXwoXFwrXFw9KXwoXFwtXFwtKXwoXFwtXFw9KXwoXFwqXFwqKXwoXFwqXFw9KXwoXFwvXFwvKXwoXFwvXFw9KXwoPT0pfCghPSl8KDw9KXwoPj0pfCg8Pil8KDw8KXwoPj4pfCgvLykpIik7CiAgICB2YXIgZG91YmxlRGVsaW1pdGVycyA9IG5ldyBSZWdFeHAoIl4oKFwtPil8KFxcLlxcLil8KFxcKz0pfChcXC09KXwoXFwqPSl8KCU9KXwoLz0pfCgmPSl8KFxcfD0pfChcXF49KSkiKTsKICAgIHZhciB0cmlwbGVEZWxpbWl0ZXJzID0gbmV3IFJlZ0V4cCgiXigoXFwuXFwuXFwuKXwoLy89KXwoPj49KXwoPDw9KXwoXFwqXFwqPSkpIik7CiAgICB2YXIgaWRlbnRpZmllcnMgPSBuZXcgUmVnRXhwKCJeW19BLVphLXpdW19BLVphLXowLTldKiIpOwoKICAgIHZhciB3b3JkT3BlcmF0b3JzID0gd29yZFJlZ2V4cChbJ2FuZCcsICdvcicsICdub3QnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMnLCAnaXNudCcsICdpbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YW5jZW9mJywgJ3R5cGVvZiddKTsKICAgIHZhciBjb21tb25LZXl3b3JkcyA9IFsnYnJlYWsnLCAnYnknLCAnY2F0Y2gnLCAnY2xhc3MnLCAnY29udGludWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdkZWJ1Z2dlcicsICdkZWxldGUnLCAnZG8nLCAnZWxzZScsICdmaW5hbGx5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9yJywgJ2luJywgJ29mJywgJ2lmJywgJ25ldycsICdyZXR1cm4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gnLCAndGhlbicsICd0aGlzJywgJ3Rocm93JywgJ3RyeScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VubGVzcycsICd3aGVuJywgJ3doaWxlJywgJ3VudGlsJywgJ2xvb3AnXTsKICAgIHZhciBrZXl3b3JkcyA9IHdvcmRSZWdleHAoY29tbW9uS2V5d29yZHMpOwoKCiAgICB2YXIgc3RyaW5nUHJlZml4ZXMgPSBuZXcgUmVnRXhwKCJeKChbcnViXXwodXIpfChicikpPygnezN9fFwiezN9fFsnXCJdKSkiLCAiaSIpOwogICAgdmFyIGNvbW1vbkNvbnN0YW50cyA9IFsnSW5maW5pdHknLCAnTmFOJywgJ3VuZGVmaW5lZCcsICd0cnVlJywgJ2ZhbHNlJ107CiAgICB2YXIgY29uc3RhbnRzID0gd29yZFJlZ2V4cChjb21tb25Db25zdGFudHMpOwoKICAgIC8vIFRva2VuaXplcnMKICAgIGZ1bmN0aW9uIHRva2VuQmFzZShzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgLy8gSGFuZGxlIHNjb3BlIGNoYW5nZXMKICAgICAgICBpZiAoc3RyZWFtLnNvbCgpKSB7CiAgICAgICAgICAgIHZhciBzY29wZU9mZnNldCA9IHN0YXRlLnNjb3Blc1swXS5vZmZzZXQ7CiAgICAgICAgICAgIGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgewogICAgICAgICAgICAgICAgdmFyIGxpbmVPZmZzZXQgPSBzdHJlYW0uaW5kZW50YXRpb24oKTsKICAgICAgICAgICAgICAgIGlmIChsaW5lT2Zmc2V0ID4gc2NvcGVPZmZzZXQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2luZGVudCc7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmVPZmZzZXQgPCBzY29wZU9mZnNldCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGVkZW50JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKHNjb3BlT2Zmc2V0ID4gMCkgewogICAgICAgICAgICAgICAgICAgIGRlZGVudChzdHJlYW0sIHN0YXRlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RyZWFtLmVhdFNwYWNlKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHZhciBjaCA9IHN0cmVhbS5wZWVrKCk7CiAgICAgICAgCiAgICAgICAgLy8gSGFuZGxlIGNvbW1lbnRzCiAgICAgICAgaWYgKGNoID09PSAnIycpIHsKICAgICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwogICAgICAgICAgICByZXR1cm4gJ2NvbW1lbnQnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBIYW5kbGUgbnVtYmVyIGxpdGVyYWxzCiAgICAgICAgaWYgKHN0cmVhbS5tYXRjaCgvXi0/WzAtOVwuXS8sIGZhbHNlKSkgewogICAgICAgICAgICB2YXIgZmxvYXRMaXRlcmFsID0gZmFsc2U7CiAgICAgICAgICAgIC8vIEZsb2F0cwogICAgICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC9eLT9cZCpcLlxkKyhlW1wrXC1dP1xkKyk/L2kpKSB7CiAgICAgICAgICAgICAgZmxvYXRMaXRlcmFsID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC9eLT9cZCtcLlxkKi8pKSB7CiAgICAgICAgICAgICAgZmxvYXRMaXRlcmFsID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC9eLT9cLlxkKy8pKSB7CiAgICAgICAgICAgICAgZmxvYXRMaXRlcmFsID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZmxvYXRMaXRlcmFsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSW50ZWdlcnMKICAgICAgICAgICAgdmFyIGludExpdGVyYWwgPSBmYWxzZTsKICAgICAgICAgICAgLy8gSGV4CiAgICAgICAgICAgIGlmIChzdHJlYW0ubWF0Y2goL14tPzB4WzAtOWEtZl0rL2kpKSB7CiAgICAgICAgICAgICAgaW50TGl0ZXJhbCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRGVjaW1hbAogICAgICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC9eLT9bMS05XVxkKihlW1wrXC1dP1xkKyk/LykpIHsKICAgICAgICAgICAgICAgIGludExpdGVyYWwgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFplcm8gYnkgaXRzZWxmIHdpdGggbm8gb3RoZXIgcGllY2Ugb2YgbnVtYmVyLgogICAgICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC9eLT8wKD8hW1xkeF0pL2kpKSB7CiAgICAgICAgICAgICAgaW50TGl0ZXJhbCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGludExpdGVyYWwpIHsKICAgICAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBIYW5kbGUgc3RyaW5ncwogICAgICAgIGlmIChzdHJlYW0ubWF0Y2goc3RyaW5nUHJlZml4ZXMpKSB7CiAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gdG9rZW5TdHJpbmdGYWN0b3J5KHN0cmVhbS5jdXJyZW50KCkpOwogICAgICAgICAgICByZXR1cm4gc3RhdGUudG9rZW5pemUoc3RyZWFtLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEhhbmRsZSBvcGVyYXRvcnMgYW5kIGRlbGltaXRlcnMKICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKHRyaXBsZURlbGltaXRlcnMpIHx8IHN0cmVhbS5tYXRjaChkb3VibGVEZWxpbWl0ZXJzKSkgewogICAgICAgICAgICByZXR1cm4gJ3B1bmN0dWF0aW9uJzsKICAgICAgICB9CiAgICAgICAgaWYgKHN0cmVhbS5tYXRjaChkb3VibGVPcGVyYXRvcnMpCiAgICAgICAgICAgIHx8IHN0cmVhbS5tYXRjaChzaW5nbGVPcGVyYXRvcnMpCiAgICAgICAgICAgIHx8IHN0cmVhbS5tYXRjaCh3b3JkT3BlcmF0b3JzKSkgewogICAgICAgICAgICByZXR1cm4gJ29wZXJhdG9yJzsKICAgICAgICB9CiAgICAgICAgaWYgKHN0cmVhbS5tYXRjaChzaW5nbGVEZWxpbWl0ZXJzKSkgewogICAgICAgICAgICByZXR1cm4gJ3B1bmN0dWF0aW9uJzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYgKHN0cmVhbS5tYXRjaChjb25zdGFudHMpKSB7CiAgICAgICAgICAgIHJldHVybiAnYXRvbSc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChzdHJlYW0ubWF0Y2goa2V5d29yZHMpKSB7CiAgICAgICAgICAgIHJldHVybiAna2V5d29yZCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChzdHJlYW0ubWF0Y2goaWRlbnRpZmllcnMpKSB7CiAgICAgICAgICAgIHJldHVybiAndmFyaWFibGUnOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBIYW5kbGUgbm9uLWRldGVjdGVkIGl0ZW1zCiAgICAgICAgc3RyZWFtLm5leHQoKTsKICAgICAgICByZXR1cm4gRVJST1JDTEFTUzsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gdG9rZW5TdHJpbmdGYWN0b3J5KGRlbGltaXRlcikgewogICAgICAgIHdoaWxlICgncnViJy5pbmRleE9mKGRlbGltaXRlclswXS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7CiAgICAgICAgICAgIGRlbGltaXRlciA9IGRlbGltaXRlci5zdWJzdHIoMSk7CiAgICAgICAgfQogICAgICAgIHZhciBkZWxpbV9yZSA9IG5ldyBSZWdFeHAoZGVsaW1pdGVyKTsKICAgICAgICB2YXIgc2luZ2xlbGluZSA9IGRlbGltaXRlci5sZW5ndGggPT0gMTsKICAgICAgICB2YXIgT1VUQ0xBU1MgPSAnc3RyaW5nJzsKICAgICAgICAKICAgICAgICByZXR1cm4gZnVuY3Rpb24gdG9rZW5TdHJpbmcoc3RyZWFtLCBzdGF0ZSkgewogICAgICAgICAgICB3aGlsZSAoIXN0cmVhbS5lb2woKSkgewogICAgICAgICAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXiciXFxdLyk7CiAgICAgICAgICAgICAgICBpZiAoc3RyZWFtLmVhdCgnXFwnKSkgewogICAgICAgICAgICAgICAgICAgIHN0cmVhbS5uZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNpbmdsZWxpbmUgJiYgc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPVVRDTEFTUzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbS5tYXRjaChkZWxpbV9yZSkpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHRva2VuQmFzZTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1VUQ0xBU1M7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHN0cmVhbS5lYXQoL1snIl0vKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc2luZ2xlbGluZSkgewogICAgICAgICAgICAgICAgaWYgKGNvbmYubW9kZS5zaW5nbGVMaW5lU3RyaW5nRXJyb3JzKSB7CiAgICAgICAgICAgICAgICAgICAgT1VUQ0xBU1MgPSBFUlJPUkNMQVNTCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gdG9rZW5CYXNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBPVVRDTEFTUzsKICAgICAgICB9OwogICAgfQogICAgCiAgICBmdW5jdGlvbiBpbmRlbnQoc3RyZWFtLCBzdGF0ZSwgdHlwZSkgewogICAgICAgIHR5cGUgPSB0eXBlIHx8ICdjb2ZmZWUnOwogICAgICAgIHZhciBpbmRlbnRVbml0ID0gMDsKICAgICAgICBpZiAodHlwZSA9PT0gJ2NvZmZlZScpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0ZS5zY29wZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zY29wZXNbaV0udHlwZSA9PT0gJ2NvZmZlZScpIHsKICAgICAgICAgICAgICAgICAgICBpbmRlbnRVbml0ID0gc3RhdGUuc2NvcGVzW2ldLm9mZnNldCArIGNvbmYuaW5kZW50VW5pdDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGluZGVudFVuaXQgPSBzdHJlYW0uY29sdW1uKCkgKyBzdHJlYW0uY3VycmVudCgpLmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgc3RhdGUuc2NvcGVzLnVuc2hpZnQoewogICAgICAgICAgICBvZmZzZXQ6IGluZGVudFVuaXQsCiAgICAgICAgICAgIHR5cGU6IHR5cGUKICAgICAgICB9KTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gZGVkZW50KHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUuc2NvcGVzLmxlbmd0aCA9PSAxKSByZXR1cm47CiAgICAgICAgaWYgKHN0YXRlLnNjb3Blc1swXS50eXBlID09PSAnY29mZmVlJykgewogICAgICAgICAgICB2YXIgX2luZGVudCA9IHN0cmVhbS5pbmRlbnRhdGlvbigpOwogICAgICAgICAgICB2YXIgX2luZGVudF9pbmRleCA9IC0xOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXRlLnNjb3Blcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgaWYgKF9pbmRlbnQgPT09IHN0YXRlLnNjb3Blc1tpXS5vZmZzZXQpIHsKICAgICAgICAgICAgICAgICAgICBfaW5kZW50X2luZGV4ID0gaTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoX2luZGVudF9pbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlIChzdGF0ZS5zY29wZXNbMF0ub2Zmc2V0ICE9PSBfaW5kZW50KSB7CiAgICAgICAgICAgICAgICBzdGF0ZS5zY29wZXMuc2hpZnQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdGF0ZS5zY29wZXMuc2hpZnQoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiB0b2tlbkxleGVyKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICB2YXIgc3R5bGUgPSBzdGF0ZS50b2tlbml6ZShzdHJlYW0sIHN0YXRlKTsKICAgICAgICB2YXIgY3VycmVudCA9IHN0cmVhbS5jdXJyZW50KCk7CgogICAgICAgIC8vIEhhbmRsZSAnLicgY29ubmVjdGVkIGlkZW50aWZpZXJzCiAgICAgICAgaWYgKGN1cnJlbnQgPT09ICcuJykgewogICAgICAgICAgICBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgICAgICAgICBjdXJyZW50ID0gc3RyZWFtLmN1cnJlbnQoKTsKICAgICAgICAgICAgaWYgKHN0eWxlID09PSAndmFyaWFibGUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcmlhYmxlJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUkNMQVNTOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEhhbmRsZSBkZWNvcmF0b3JzCiAgICAgICAgaWYgKGN1cnJlbnQgPT09ICdAJykgewogICAgICAgICAgICBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgICAgICAgICBjdXJyZW50ID0gc3RyZWFtLmN1cnJlbnQoKTsKICAgICAgICAgICAgaWYgKHN0eWxlID09PSAndmFyaWFibGUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcmlhYmxlLTInOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SQ0xBU1M7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gSGFuZGxlIHNjb3BlIGNoYW5nZXMuCiAgICAgICAgaWYgKGN1cnJlbnQgPT09ICdwYXNzJyB8fCBjdXJyZW50ID09PSAncmV0dXJuJykgewogICAgICAgICAgICBzdGF0ZS5kZWRlbnQgKz0gMTsKICAgICAgICB9CiAgICAgICAgaWYgKChjdXJyZW50ID09PSAnLT4nICYmCiAgICAgICAgICAgICAgICAgICFzdGF0ZS5sYW1iZGEgJiYKICAgICAgICAgICAgICAgICAgc3RhdGUuc2NvcGVzWzBdLnR5cGUgPT0gJ2NvZmZlZScgJiYKICAgICAgICAgICAgICAgICAgc3RyZWFtLnBlZWsoKSA9PT0gJycpCiAgICAgICAgICAgICAgIHx8IHN0eWxlID09PSAnaW5kZW50JykgewogICAgICAgICAgICBpbmRlbnQoc3RyZWFtLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHZhciBkZWxpbWl0ZXJfaW5kZXggPSAnWyh7Jy5pbmRleE9mKGN1cnJlbnQpOwogICAgICAgIGlmIChkZWxpbWl0ZXJfaW5kZXggIT09IC0xKSB7CiAgICAgICAgICAgIGluZGVudChzdHJlYW0sIHN0YXRlLCAnXSl9Jy5zbGljZShkZWxpbWl0ZXJfaW5kZXgsIGRlbGltaXRlcl9pbmRleCsxKSk7CiAgICAgICAgfQogICAgICAgIGlmIChzdHlsZSA9PT0gJ2RlZGVudCcpIHsKICAgICAgICAgICAgaWYgKGRlZGVudChzdHJlYW0sIHN0YXRlKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SQ0xBU1M7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZGVsaW1pdGVyX2luZGV4ID0gJ10pfScuaW5kZXhPZihjdXJyZW50KTsKICAgICAgICBpZiAoZGVsaW1pdGVyX2luZGV4ICE9PSAtMSkgewogICAgICAgICAgICBpZiAoZGVkZW50KHN0cmVhbSwgc3RhdGUpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JDTEFTUzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuZGVkZW50ID4gMCAmJiBzdHJlYW0uZW9sKCkgJiYgc3RhdGUuc2NvcGVzWzBdLnR5cGUgPT0gJ2NvZmZlZScpIHsKICAgICAgICAgICAgaWYgKHN0YXRlLnNjb3Blcy5sZW5ndGggPiAxKSBzdGF0ZS5zY29wZXMuc2hpZnQoKTsKICAgICAgICAgICAgc3RhdGUuZGVkZW50IC09IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBzdHlsZTsKICAgIH0KCiAgICB2YXIgZXh0ZXJuYWwgPSB7CiAgICAgICAgc3RhcnRTdGF0ZTogZnVuY3Rpb24oYmFzZWNvbHVtbikgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHRva2VuaXplOiB0b2tlbkJhc2UsCiAgICAgICAgICAgICAgc2NvcGVzOiBbe29mZnNldDpiYXNlY29sdW1uIHx8IDAsIHR5cGU6J2NvZmZlZSd9XSwKICAgICAgICAgICAgICBsYXN0VG9rZW46IG51bGwsCiAgICAgICAgICAgICAgbGFtYmRhOiBmYWxzZSwKICAgICAgICAgICAgICBkZWRlbnQ6IDAKICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICAKICAgICAgICB0b2tlbjogZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICAgICAgICB2YXIgc3R5bGUgPSB0b2tlbkxleGVyKHN0cmVhbSwgc3RhdGUpOwogICAgICAgICAgICAKICAgICAgICAgICAgc3RhdGUubGFzdFRva2VuID0ge3N0eWxlOnN0eWxlLCBjb250ZW50OiBzdHJlYW0uY3VycmVudCgpfTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChzdHJlYW0uZW9sKCkgJiYgc3RyZWFtLmxhbWJkYSkgewogICAgICAgICAgICAgICAgc3RhdGUubGFtYmRhID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiBzdHlsZTsKICAgICAgICB9LAogICAgICAgIAogICAgICAgIGluZGVudDogZnVuY3Rpb24oc3RhdGUsIHRleHRBZnRlcikgewogICAgICAgICAgICBpZiAoc3RhdGUudG9rZW5pemUgIT0gdG9rZW5CYXNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIHN0YXRlLnNjb3Blc1swXS5vZmZzZXQ7CiAgICAgICAgfQogICAgICAgIAogICAgfTsKICAgIHJldHVybiBleHRlcm5hbDsKfSk7CgpDb2RlTWlycm9yLmRlZmluZU1JTUUoJ3RleHQveC1jb2ZmZWVzY3JpcHQnLCAnY29mZmVlc2NyaXB0Jyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/coffeescript/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogQ29mZmVlU2NyaXB0IG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJjb2ZmZWVzY3JpcHQuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JvcmRlci10b3A6IDFweCBzb2xpZCBzaWx2ZXI7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzaWx2ZXI7fTwvc3R5bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGgxPkNvZGVNaXJyb3IgMjogQ29mZmVlU2NyaXB0IG1vZGU8L2gxPgogICAgPGZvcm0+PHRleHRhcmVhIGlkPSJjb2RlIiBuYW1lPSJjb2RlIj4KIyBDb2ZmZWVTY3JpcHQgbW9kZSBmb3IgQ29kZU1pcnJvcgojIENvcHlyaWdodCAoYykgMjAxMSBKZWZmIFBpY2toYXJkdCwgcmVsZWFzZWQgdW5kZXIKIyB0aGUgTUlUIExpY2Vuc2UuCiMKIyBNb2RpZmllZCBmcm9tIHRoZSBQeXRob24gQ29kZU1pcnJvciBtb2RlLCB3aGljaCBhbHNvIGlzIAojIHVuZGVyIHRoZSBNSVQgTGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMTAgVGltb3RoeSBGYXJyZWxsLgojCiMgVGhlIGZvbGxvd2luZyBzY3JpcHQsIFVuZGVyc2NvcmUuY29mZmVlLCBpcyB1c2VkIHRvIAojIGRlbW9uc3RyYXRlIENvZmZlZVNjcmlwdCBtb2RlIGZvciBDb2RlTWlycm9yLgojCiMgVG8gZG93bmxvYWQgQ29mZmVlU2NyaXB0IG1vZGUgZm9yIENvZGVNaXJyb3IsIGdvIHRvOgojIGh0dHBzOi8vZ2l0aHViLmNvbS9waWNraGFyZHQvY29mZmVlc2NyaXB0LWNvZGVtaXJyb3ItbW9kZQoKIyAqKlVuZGVyc2NvcmUuY29mZmVlCiMgKGMpIDIwMTEgSmVyZW15IEFzaGtlbmFzLCBEb2N1bWVudENsb3VkIEluYy4qKgojIFVuZGVyc2NvcmUgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQojIFtNSVQgbGljZW5zZV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSkuCiMgUG9ydGlvbnMgb2YgVW5kZXJzY29yZSBhcmUgaW5zcGlyZWQgYnkgb3IgYm9ycm93ZWQgZnJvbQojIFtQcm90b3R5cGUuanNdKGh0dHA6Ly9wcm90b3R5cGVqcy5vcmcvYXBpKSwgT2xpdmVyIFN0ZWVsZSdzCiMgW0Z1bmN0aW9uYWxdKGh0dHA6Ly9vc3RlZWxlLmNvbSksIGFuZCBKb2huIFJlc2lnJ3MKIyBbTWljcm8tVGVtcGxhdGluZ10oaHR0cDovL2Vqb2huLm9yZykuCiMgRm9yIGFsbCBkZXRhaWxzIGFuZCBkb2N1bWVudGF0aW9uOgojIGh0dHA6Ly9kb2N1bWVudGNsb3VkLmdpdGh1Yi5jb20vdW5kZXJzY29yZS8KCgojIEJhc2VsaW5lIHNldHVwCiMgLS0tLS0tLS0tLS0tLS0KCiMgRXN0YWJsaXNoIHRoZSByb290IG9iamVjdCwgYHdpbmRvd2AgaW4gdGhlIGJyb3dzZXIsIG9yIGBnbG9iYWxgIG9uIHRoZSBzZXJ2ZXIuCnJvb3QgPSB0aGlzCgoKIyBTYXZlIHRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgYF9gIHZhcmlhYmxlLgpwcmV2aW91c1VuZGVyc2NvcmUgPSByb290Ll8KCgojIEVzdGFibGlzaCB0aGUgb2JqZWN0IHRoYXQgZ2V0cyB0aHJvd24gdG8gYnJlYWsgb3V0IG9mIGEgbG9vcCBpdGVyYXRpb24uCiMgYFN0b3BJdGVyYXRpb25gIGlzIFNPUCBvbiBNb3ppbGxhLgpicmVha2VyID0gaWYgdHlwZW9mKFN0b3BJdGVyYXRpb24pIGlzICd1bmRlZmluZWQnIHRoZW4gJ19fYnJlYWtfXycgZWxzZSBTdG9wSXRlcmF0aW9uCgoKIyBIZWxwZXIgZnVuY3Rpb24gdG8gZXNjYXBlICoqUmVnRXhwKiogY29udGVudHMsIGJlY2F1c2UgSlMgZG9lc24ndCBoYXZlIG9uZS4KZXNjYXBlUmVnRXhwID0gKHN0cmluZykgLT4gc3RyaW5nLnJlcGxhY2UoLyhbLiorP14ke30oKXxbXF1cL1xcXSkvZywgJ1xcJDEnKQoKCiMgU2F2ZSBieXRlcyBpbiB0aGUgbWluaWZpZWQgKGJ1dCBub3QgZ3ppcHBlZCkgdmVyc2lvbjoKQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZQpPYmpQcm90byA9IE9iamVjdC5wcm90b3R5cGUKCgojIENyZWF0ZSBxdWljayByZWZlcmVuY2UgdmFyaWFibGVzIGZvciBzcGVlZCBhY2Nlc3MgdG8gY29yZSBwcm90b3R5cGVzLgpzbGljZSA9IEFycmF5UHJvdG8uc2xpY2UKdW5zaGlmdCA9IEFycmF5UHJvdG8udW5zaGlmdAp0b1N0cmluZyA9IE9ialByb3RvLnRvU3RyaW5nCmhhc093blByb3BlcnR5ID0gT2JqUHJvdG8uaGFzT3duUHJvcGVydHkKcHJvcGVydHlJc0VudW1lcmFibGUgPSBPYmpQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZQoKCiMgQWxsICoqRUNNQTUqKiBuYXRpdmUgaW1wbGVtZW50YXRpb25zIHdlIGhvcGUgdG8gdXNlIGFyZSBkZWNsYXJlZCBoZXJlLgpuYXRpdmVGb3JFYWNoID0gQXJyYXlQcm90by5mb3JFYWNoCm5hdGl2ZU1hcCA9IEFycmF5UHJvdG8ubWFwCm5hdGl2ZVJlZHVjZSA9IEFycmF5UHJvdG8ucmVkdWNlCm5hdGl2ZVJlZHVjZVJpZ2h0ID0gQXJyYXlQcm90by5yZWR1Y2VSaWdodApuYXRpdmVGaWx0ZXIgPSBBcnJheVByb3RvLmZpbHRlcgpuYXRpdmVFdmVyeSA9IEFycmF5UHJvdG8uZXZlcnkKbmF0aXZlU29tZSA9IEFycmF5UHJvdG8uc29tZQpuYXRpdmVJbmRleE9mID0gQXJyYXlQcm90by5pbmRleE9mCm5hdGl2ZUxhc3RJbmRleE9mID0gQXJyYXlQcm90by5sYXN0SW5kZXhPZgpuYXRpdmVJc0FycmF5ID0gQXJyYXkuaXNBcnJheQpuYXRpdmVLZXlzID0gT2JqZWN0LmtleXMKCgojIENyZWF0ZSBhIHNhZmUgcmVmZXJlbmNlIHRvIHRoZSBVbmRlcnNjb3JlIG9iamVjdCBmb3IgdXNlIGJlbG93LgpfID0gKG9iaikgLT4gbmV3IHdyYXBwZXIob2JqKQoKCiMgRXhwb3J0IHRoZSBVbmRlcnNjb3JlIG9iamVjdCBmb3IgKipDb21tb25KUyoqLgppZiB0eXBlb2YoZXhwb3J0cykgIT0gJ3VuZGVmaW5lZCcgdGhlbiBleHBvcnRzLl8gPSBfCgoKIyBFeHBvcnQgVW5kZXJzY29yZSB0byBnbG9iYWwgc2NvcGUuCnJvb3QuXyA9IF8KCgojIEN1cnJlbnQgdmVyc2lvbi4KXy5WRVJTSU9OID0gJzEuMS4wJwoKCiMgQ29sbGVjdGlvbiBGdW5jdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBUaGUgY29ybmVyc3RvbmUsIGFuICoqZWFjaCoqIGltcGxlbWVudGF0aW9uLgojIEhhbmRsZXMgb2JqZWN0cyBpbXBsZW1lbnRpbmcgKipmb3JFYWNoKiosIGFycmF5cywgYW5kIHJhdyBvYmplY3RzLgpfLmVhY2ggPSAob2JqLCBpdGVyYXRvciwgY29udGV4dCkgLT4KICB0cnkKICAgIGlmIG5hdGl2ZUZvckVhY2ggYW5kIG9iai5mb3JFYWNoIGlzIG5hdGl2ZUZvckVhY2gKICAgICAgb2JqLmZvckVhY2ggaXRlcmF0b3IsIGNvbnRleHQKICAgIGVsc2UgaWYgXy5pc051bWJlciBvYmoubGVuZ3RoCiAgICAgIGl0ZXJhdG9yLmNhbGwgY29udGV4dCwgb2JqW2ldLCBpLCBvYmogZm9yIGkgaW4gWzAuLi5vYmoubGVuZ3RoXQogICAgZWxzZQogICAgICBpdGVyYXRvci5jYWxsIGNvbnRleHQsIHZhbCwga2V5LCBvYmogZm9yIG93biBrZXksIHZhbCBvZiBvYmoKICBjYXRjaCBlCiAgICB0aHJvdyBlIGlmIGUgaXNudCBicmVha2VyCiAgb2JqCgoKIyBSZXR1cm4gdGhlIHJlc3VsdHMgb2YgYXBwbHlpbmcgdGhlIGl0ZXJhdG9yIHRvIGVhY2ggZWxlbWVudC4gVXNlIEphdmFTY3JpcHQKIyAxLjYncyB2ZXJzaW9uIG9mICoqbWFwKiosIGlmIHBvc3NpYmxlLgpfLm1hcCA9IChvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSAtPgogIHJldHVybiBvYmoubWFwKGl0ZXJhdG9yLCBjb250ZXh0KSBpZiBuYXRpdmVNYXAgYW5kIG9iai5tYXAgaXMgbmF0aXZlTWFwCiAgcmVzdWx0cyA9IFtdCiAgXy5lYWNoIG9iaiwgKHZhbHVlLCBpbmRleCwgbGlzdCkgLT4KICAgIHJlc3VsdHMucHVzaCBpdGVyYXRvci5jYWxsIGNvbnRleHQsIHZhbHVlLCBpbmRleCwgbGlzdAogIHJlc3VsdHMKCgojICoqUmVkdWNlKiogYnVpbGRzIHVwIGEgc2luZ2xlIHJlc3VsdCBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMuIEFsc28ga25vd24gYXMKIyAqKmluamVjdCoqLCBvciAqKmZvbGRsKiouIFVzZXMgSmF2YVNjcmlwdCAxLjgncyB2ZXJzaW9uIG9mICoqcmVkdWNlKiosIGlmIHBvc3NpYmxlLgpfLnJlZHVjZSA9IChvYmosIGl0ZXJhdG9yLCBtZW1vLCBjb250ZXh0KSAtPgogIGlmIG5hdGl2ZVJlZHVjZSBhbmQgb2JqLnJlZHVjZSBpcyBuYXRpdmVSZWR1Y2UKICAgIGl0ZXJhdG9yID0gXy5iaW5kIGl0ZXJhdG9yLCBjb250ZXh0IGlmIGNvbnRleHQKICAgIHJldHVybiBvYmoucmVkdWNlIGl0ZXJhdG9yLCBtZW1vCiAgXy5lYWNoIG9iaiwgKHZhbHVlLCBpbmRleCwgbGlzdCkgLT4KICAgIG1lbW8gPSBpdGVyYXRvci5jYWxsIGNvbnRleHQsIG1lbW8sIHZhbHVlLCBpbmRleCwgbGlzdAogIG1lbW8KCgojIFRoZSByaWdodC1hc3NvY2lhdGl2ZSB2ZXJzaW9uIG9mICoqcmVkdWNlKiosIGFsc28ga25vd24gYXMgKipmb2xkcioqLiBVc2VzCiMgSmF2YVNjcmlwdCAxLjgncyB2ZXJzaW9uIG9mICoqcmVkdWNlUmlnaHQqKiwgaWYgYXZhaWxhYmxlLgpfLnJlZHVjZVJpZ2h0ID0gKG9iaiwgaXRlcmF0b3IsIG1lbW8sIGNvbnRleHQpIC0+CiAgaWYgbmF0aXZlUmVkdWNlUmlnaHQgYW5kIG9iai5yZWR1Y2VSaWdodCBpcyBuYXRpdmVSZWR1Y2VSaWdodAogICAgaXRlcmF0b3IgPSBfLmJpbmQgaXRlcmF0b3IsIGNvbnRleHQgaWYgY29udGV4dAogICAgcmV0dXJuIG9iai5yZWR1Y2VSaWdodCBpdGVyYXRvciwgbWVtbwogIHJldmVyc2VkID0gXy5jbG9uZShfLnRvQXJyYXkob2JqKSkucmV2ZXJzZSgpCiAgXy5yZWR1Y2UgcmV2ZXJzZWQsIGl0ZXJhdG9yLCBtZW1vLCBjb250ZXh0CgoKIyBSZXR1cm4gdGhlIGZpcnN0IHZhbHVlIHdoaWNoIHBhc3NlcyBhIHRydXRoIHRlc3QuCl8uZGV0ZWN0ID0gKG9iaiwgaXRlcmF0b3IsIGNvbnRleHQpIC0+CiAgcmVzdWx0ID0gbnVsbAogIF8uZWFjaCBvYmosICh2YWx1ZSwgaW5kZXgsIGxpc3QpIC0+CiAgICBpZiBpdGVyYXRvci5jYWxsIGNvbnRleHQsIHZhbHVlLCBpbmRleCwgbGlzdAogICAgICByZXN1bHQgPSB2YWx1ZQogICAgICBfLmJyZWFrTG9vcCgpCiAgcmVzdWx0CgoKIyBSZXR1cm4gYWxsIHRoZSBlbGVtZW50cyB0aGF0IHBhc3MgYSB0cnV0aCB0ZXN0LiBVc2UgSmF2YVNjcmlwdCAxLjYncwojICoqZmlsdGVyKiosIGlmIGl0IGV4aXN0cy4KXy5maWx0ZXIgPSAob2JqLCBpdGVyYXRvciwgY29udGV4dCkgLT4KICByZXR1cm4gb2JqLmZpbHRlciBpdGVyYXRvciwgY29udGV4dCBpZiBuYXRpdmVGaWx0ZXIgYW5kIG9iai5maWx0ZXIgaXMgbmF0aXZlRmlsdGVyCiAgcmVzdWx0cyA9IFtdCiAgXy5lYWNoIG9iaiwgKHZhbHVlLCBpbmRleCwgbGlzdCkgLT4KICAgIHJlc3VsdHMucHVzaCB2YWx1ZSBpZiBpdGVyYXRvci5jYWxsIGNvbnRleHQsIHZhbHVlLCBpbmRleCwgbGlzdAogIHJlc3VsdHMKCgojIFJldHVybiBhbGwgdGhlIGVsZW1lbnRzIGZvciB3aGljaCBhIHRydXRoIHRlc3QgZmFpbHMuCl8ucmVqZWN0ID0gKG9iaiwgaXRlcmF0b3IsIGNvbnRleHQpIC0+CiAgcmVzdWx0cyA9IFtdCiAgXy5lYWNoIG9iaiwgKHZhbHVlLCBpbmRleCwgbGlzdCkgLT4KICAgIHJlc3VsdHMucHVzaCB2YWx1ZSBpZiBub3QgaXRlcmF0b3IuY2FsbCBjb250ZXh0LCB2YWx1ZSwgaW5kZXgsIGxpc3QKICByZXN1bHRzCgoKIyBEZXRlcm1pbmUgd2hldGhlciBhbGwgb2YgdGhlIGVsZW1lbnRzIG1hdGNoIGEgdHJ1dGggdGVzdC4gRGVsZWdhdGUgdG8KIyBKYXZhU2NyaXB0IDEuNidzICoqZXZlcnkqKiwgaWYgaXQgaXMgcHJlc2VudC4KXy5ldmVyeSA9IChvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSAtPgogIGl0ZXJhdG9yIHx8PSBfLmlkZW50aXR5CiAgcmV0dXJuIG9iai5ldmVyeSBpdGVyYXRvciwgY29udGV4dCBpZiBuYXRpdmVFdmVyeSBhbmQgb2JqLmV2ZXJ5IGlzIG5hdGl2ZUV2ZXJ5CiAgcmVzdWx0ID0gdHJ1ZQogIF8uZWFjaCBvYmosICh2YWx1ZSwgaW5kZXgsIGxpc3QpIC0+CiAgICBfLmJyZWFrTG9vcCgpIHVubGVzcyAocmVzdWx0ID0gcmVzdWx0IGFuZCBpdGVyYXRvci5jYWxsKGNvbnRleHQsIHZhbHVlLCBpbmRleCwgbGlzdCkpCiAgcmVzdWx0CgoKIyBEZXRlcm1pbmUgaWYgYXQgbGVhc3Qgb25lIGVsZW1lbnQgaW4gdGhlIG9iamVjdCBtYXRjaGVzIGEgdHJ1dGggdGVzdC4gVXNlCiMgSmF2YVNjcmlwdCAxLjYncyAqKnNvbWUqKiwgaWYgaXQgZXhpc3RzLgpfLnNvbWUgPSAob2JqLCBpdGVyYXRvciwgY29udGV4dCkgLT4KICBpdGVyYXRvciB8fD0gXy5pZGVudGl0eQogIHJldHVybiBvYmouc29tZSBpdGVyYXRvciwgY29udGV4dCBpZiBuYXRpdmVTb21lIGFuZCBvYmouc29tZSBpcyBuYXRpdmVTb21lCiAgcmVzdWx0ID0gZmFsc2UKICBfLmVhY2ggb2JqLCAodmFsdWUsIGluZGV4LCBsaXN0KSAtPgogICAgXy5icmVha0xvb3AoKSBpZiAocmVzdWx0ID0gaXRlcmF0b3IuY2FsbChjb250ZXh0LCB2YWx1ZSwgaW5kZXgsIGxpc3QpKQogIHJlc3VsdAoKCiMgRGV0ZXJtaW5lIGlmIGEgZ2l2ZW4gdmFsdWUgaXMgaW5jbHVkZWQgaW4gdGhlIGFycmF5IG9yIG9iamVjdCwKIyBiYXNlZCBvbiBgPT09YC4KXy5pbmNsdWRlID0gKG9iaiwgdGFyZ2V0KSAtPgogIHJldHVybiBfLmluZGV4T2Yob2JqLCB0YXJnZXQpIGlzbnQgLTEgaWYgbmF0aXZlSW5kZXhPZiBhbmQgb2JqLmluZGV4T2YgaXMgbmF0aXZlSW5kZXhPZgogIHJldHVybiB0cnVlIGZvciBvd24ga2V5LCB2YWwgb2Ygb2JqIHdoZW4gdmFsIGlzIHRhcmdldAogIGZhbHNlCgoKIyBJbnZva2UgYSBtZXRob2Qgd2l0aCBhcmd1bWVudHMgb24gZXZlcnkgaXRlbSBpbiBhIGNvbGxlY3Rpb24uCl8uaW52b2tlID0gKG9iaiwgbWV0aG9kKSAtPgogIGFyZ3MgPSBfLnJlc3QgYXJndW1lbnRzLCAyCiAgKGlmIG1ldGhvZCB0aGVuIHZhbFttZXRob2RdIGVsc2UgdmFsKS5hcHBseSh2YWwsIGFyZ3MpIGZvciB2YWwgaW4gb2JqCgoKIyBDb252ZW5pZW5jZSB2ZXJzaW9uIG9mIGEgY29tbW9uIHVzZSBjYXNlIG9mICoqbWFwKio6IGZldGNoaW5nIGEgcHJvcGVydHkuCl8ucGx1Y2sgPSAob2JqLCBrZXkpIC0+CiAgXy5tYXAob2JqLCAodmFsKSAtPiB2YWxba2V5XSkKCgojIFJldHVybiB0aGUgbWF4aW11bSBpdGVtIG9yIChpdGVtLWJhc2VkIGNvbXB1dGF0aW9uKS4KXy5tYXggPSAob2JqLCBpdGVyYXRvciwgY29udGV4dCkgLT4KICByZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCwgb2JqKSBpZiBub3QgaXRlcmF0b3IgYW5kIF8uaXNBcnJheShvYmopCiAgcmVzdWx0ID0gY29tcHV0ZWQ6IC1JbmZpbml0eQogIF8uZWFjaCBvYmosICh2YWx1ZSwgaW5kZXgsIGxpc3QpIC0+CiAgICBjb21wdXRlZCA9IGlmIGl0ZXJhdG9yIHRoZW4gaXRlcmF0b3IuY2FsbChjb250ZXh0LCB2YWx1ZSwgaW5kZXgsIGxpc3QpIGVsc2UgdmFsdWUKICAgIGNvbXB1dGVkID49IHJlc3VsdC5jb21wdXRlZCBhbmQgKHJlc3VsdCA9IHt2YWx1ZTogdmFsdWUsIGNvbXB1dGVkOiBjb21wdXRlZH0pCiAgcmVzdWx0LnZhbHVlCgoKIyBSZXR1cm4gdGhlIG1pbmltdW0gZWxlbWVudCAob3IgZWxlbWVudC1iYXNlZCBjb21wdXRhdGlvbikuCl8ubWluID0gKG9iaiwgaXRlcmF0b3IsIGNvbnRleHQpIC0+CiAgcmV0dXJuIE1hdGgubWluLmFwcGx5KE1hdGgsIG9iaikgaWYgbm90IGl0ZXJhdG9yIGFuZCBfLmlzQXJyYXkob2JqKQogIHJlc3VsdCA9IGNvbXB1dGVkOiBJbmZpbml0eQogIF8uZWFjaCBvYmosICh2YWx1ZSwgaW5kZXgsIGxpc3QpIC0+CiAgICBjb21wdXRlZCA9IGlmIGl0ZXJhdG9yIHRoZW4gaXRlcmF0b3IuY2FsbChjb250ZXh0LCB2YWx1ZSwgaW5kZXgsIGxpc3QpIGVsc2UgdmFsdWUKICAgIGNvbXB1dGVkIDwgcmVzdWx0LmNvbXB1dGVkIGFuZCAocmVzdWx0ID0ge3ZhbHVlOiB2YWx1ZSwgY29tcHV0ZWQ6IGNvbXB1dGVkfSkKICByZXN1bHQudmFsdWUKCgojIFNvcnQgdGhlIG9iamVjdCdzIHZhbHVlcyBieSBhIGNyaXRlcmlvbiBwcm9kdWNlZCBieSBhbiBpdGVyYXRvci4KXy5zb3J0QnkgPSAob2JqLCBpdGVyYXRvciwgY29udGV4dCkgLT4KICBfLnBsdWNrKCgoXy5tYXAgb2JqLCAodmFsdWUsIGluZGV4LCBsaXN0KSAtPgogICAge3ZhbHVlOiB2YWx1ZSwgY3JpdGVyaWE6IGl0ZXJhdG9yLmNhbGwoY29udGV4dCwgdmFsdWUsIGluZGV4LCBsaXN0KX0KICApLnNvcnQoKGxlZnQsIHJpZ2h0KSAtPgogICAgYSA9IGxlZnQuY3JpdGVyaWE7IGIgPSByaWdodC5jcml0ZXJpYQogICAgaWYgYSA8IGIgdGhlbiAtMSBlbHNlIGlmIGEgPiBiIHRoZW4gMSBlbHNlIDAKICApKSwgJ3ZhbHVlJykKCgojIFVzZSBhIGNvbXBhcmF0b3IgZnVuY3Rpb24gdG8gZmlndXJlIG91dCBhdCB3aGF0IGluZGV4IGFuIG9iamVjdCBzaG91bGQKIyBiZSBpbnNlcnRlZCBzbyBhcyB0byBtYWludGFpbiBvcmRlci4gVXNlcyBiaW5hcnkgc2VhcmNoLgpfLnNvcnRlZEluZGV4ID0gKGFycmF5LCBvYmosIGl0ZXJhdG9yKSAtPgogIGl0ZXJhdG9yIHx8PSBfLmlkZW50aXR5CiAgbG93ID0gMAogIGhpZ2ggPSBhcnJheS5sZW5ndGgKICB3aGlsZSBsb3cgPCBoaWdoCiAgICBtaWQgPSAobG93ICsgaGlnaCkgPj4gMQogICAgaWYgaXRlcmF0b3IoYXJyYXlbbWlkXSkgPCBpdGVyYXRvcihvYmopIHRoZW4gbG93ID0gbWlkICsgMSBlbHNlIGhpZ2ggPSBtaWQKICBsb3cKCgojIENvbnZlcnQgYW55dGhpbmcgaXRlcmFibGUgaW50byBhIHJlYWwsIGxpdmUgYXJyYXkuCl8udG9BcnJheSA9IChpdGVyYWJsZSkgLT4KICByZXR1cm4gW10gaWYgKCFpdGVyYWJsZSkKICByZXR1cm4gaXRlcmFibGUudG9BcnJheSgpIGlmIChpdGVyYWJsZS50b0FycmF5KQogIHJldHVybiBpdGVyYWJsZSBpZiAoXy5pc0FycmF5KGl0ZXJhYmxlKSkKICByZXR1cm4gc2xpY2UuY2FsbChpdGVyYWJsZSkgaWYgKF8uaXNBcmd1bWVudHMoaXRlcmFibGUpKQogIF8udmFsdWVzKGl0ZXJhYmxlKQoKCiMgUmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYW4gb2JqZWN0LgpfLnNpemUgPSAob2JqKSAtPiBfLnRvQXJyYXkob2JqKS5sZW5ndGgKCgojIEFycmF5IEZ1bmN0aW9ucwojIC0tLS0tLS0tLS0tLS0tLQoKIyBHZXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYW4gYXJyYXkuIFBhc3NpbmcgYG5gIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBOCiMgdmFsdWVzIGluIHRoZSBhcnJheS4gQWxpYXNlZCBhcyAqKmhlYWQqKi4gVGhlIGBndWFyZGAgY2hlY2sgYWxsb3dzIGl0IHRvIHdvcmsKIyB3aXRoICoqbWFwKiouCl8uZmlyc3QgPSAoYXJyYXksIG4sIGd1YXJkKSAtPgogIGlmIG4gYW5kIG5vdCBndWFyZCB0aGVuIHNsaWNlLmNhbGwoYXJyYXksIDAsIG4pIGVsc2UgYXJyYXlbMF0KCgojIFJldHVybnMgZXZlcnl0aGluZyBidXQgdGhlIGZpcnN0IGVudHJ5IG9mIHRoZSBhcnJheS4gQWxpYXNlZCBhcyAqKnRhaWwqKi4KIyBFc3BlY2lhbGx5IHVzZWZ1bCBvbiB0aGUgYXJndW1lbnRzIG9iamVjdC4gUGFzc2luZyBhbiBgaW5kZXhgIHdpbGwgcmV0dXJuCiMgdGhlIHJlc3Qgb2YgdGhlIHZhbHVlcyBpbiB0aGUgYXJyYXkgZnJvbSB0aGF0IGluZGV4IG9ud2FyZC4gVGhlIGBndWFyZGAKIyBjaGVjayBhbGxvd3MgaXQgdG8gd29yayB3aXRoICoqbWFwKiouCl8ucmVzdCA9IChhcnJheSwgaW5kZXgsIGd1YXJkKSAtPgogIHNsaWNlLmNhbGwoYXJyYXksIGlmIF8uaXNVbmRlZmluZWQoaW5kZXgpIG9yIGd1YXJkIHRoZW4gMSBlbHNlIGluZGV4KQoKCiMgR2V0IHRoZSBsYXN0IGVsZW1lbnQgb2YgYW4gYXJyYXkuCl8ubGFzdCA9IChhcnJheSkgLT4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV0KCgojIFRyaW0gb3V0IGFsbCBmYWxzeSB2YWx1ZXMgZnJvbSBhbiBhcnJheS4KXy5jb21wYWN0ID0gKGFycmF5KSAtPiBpdGVtIGZvciBpdGVtIGluIGFycmF5IHdoZW4gaXRlbQoKCiMgUmV0dXJuIGEgY29tcGxldGVseSBmbGF0dGVuZWQgdmVyc2lvbiBvZiBhbiBhcnJheS4KXy5mbGF0dGVuID0gKGFycmF5KSAtPgogIF8ucmVkdWNlIGFycmF5LCAobWVtbywgdmFsdWUpIC0+CiAgICByZXR1cm4gbWVtby5jb25jYXQoXy5mbGF0dGVuKHZhbHVlKSkgaWYgXy5pc0FycmF5IHZhbHVlCiAgICBtZW1vLnB1c2ggdmFsdWUKICAgIG1lbW8KICAsIFtdCgoKIyBSZXR1cm4gYSB2ZXJzaW9uIG9mIHRoZSBhcnJheSB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCB2YWx1ZShzKS4KXy53aXRob3V0ID0gKGFycmF5KSAtPgogIHZhbHVlcyA9IF8ucmVzdCBhcmd1bWVudHMKICB2YWwgZm9yIHZhbCBpbiBfLnRvQXJyYXkoYXJyYXkpIHdoZW4gbm90IF8uaW5jbHVkZSB2YWx1ZXMsIHZhbAoKCiMgUHJvZHVjZSBhIGR1cGxpY2F0ZS1mcmVlIHZlcnNpb24gb2YgdGhlIGFycmF5LiBJZiB0aGUgYXJyYXkgaGFzIGFscmVhZHkKIyBiZWVuIHNvcnRlZCwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiB1c2luZyBhIGZhc3RlciBhbGdvcml0aG0uCl8udW5pcSA9IChhcnJheSwgaXNTb3J0ZWQpIC0+CiAgbWVtbyA9IFtdCiAgZm9yIGVsLCBpIGluIF8udG9BcnJheSBhcnJheQogICAgbWVtby5wdXNoIGVsIGlmIGkgaXMgMCB8fCAoaWYgaXNTb3J0ZWQgaXMgdHJ1ZSB0aGVuIF8ubGFzdChtZW1vKSBpc250IGVsIGVsc2Ugbm90IF8uaW5jbHVkZShtZW1vLCBlbCkpCiAgbWVtbwoKCiMgUHJvZHVjZSBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGV2ZXJ5IGl0ZW0gc2hhcmVkIGJldHdlZW4gYWxsIHRoZQojIHBhc3NlZC1pbiBhcnJheXMuCl8uaW50ZXJzZWN0ID0gKGFycmF5KSAtPgogIHJlc3QgPSBfLnJlc3QgYXJndW1lbnRzCiAgXy5zZWxlY3QgXy51bmlxKGFycmF5KSwgKGl0ZW0pIC0+CiAgICBfLmFsbCByZXN0LCAob3RoZXIpIC0+CiAgICAgIF8uaW5kZXhPZihvdGhlciwgaXRlbSkgPj0gMAoKCiMgWmlwIHRvZ2V0aGVyIG11bHRpcGxlIGxpc3RzIGludG8gYSBzaW5nbGUgYXJyYXkgLS0gZWxlbWVudHMgdGhhdCBzaGFyZQojIGFuIGluZGV4IGdvIHRvZ2V0aGVyLgpfLnppcCA9IC0+CiAgbGVuZ3RoID0gXy5tYXggXy5wbHVjayBhcmd1bWVudHMsICdsZW5ndGgnCiAgcmVzdWx0cyA9IG5ldyBBcnJheSBsZW5ndGgKICBmb3IgaSBpbiBbMC4uLmxlbmd0aF0KICAgIHJlc3VsdHNbaV0gPSBfLnBsdWNrIGFyZ3VtZW50cywgU3RyaW5nIGkKICByZXN1bHRzCgoKIyBJZiB0aGUgYnJvd3NlciBkb2Vzbid0IHN1cHBseSB1cyB3aXRoICoqaW5kZXhPZioqIChJJ20gbG9va2luZyBhdCB5b3UsIE1TSUUpLAojIHdlIG5lZWQgdGhpcyBmdW5jdGlvbi4gUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBhbgojIGl0ZW0gaW4gYW4gYXJyYXksIG9yIC0xIGlmIHRoZSBpdGVtIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgYXJyYXkuCl8uaW5kZXhPZiA9IChhcnJheSwgaXRlbSkgLT4KICByZXR1cm4gYXJyYXkuaW5kZXhPZiBpdGVtIGlmIG5hdGl2ZUluZGV4T2YgYW5kIGFycmF5LmluZGV4T2YgaXMgbmF0aXZlSW5kZXhPZgogIGkgPSAwOyBsID0gYXJyYXkubGVuZ3RoCiAgd2hpbGUgbCAtIGkKICAgIGlmIGFycmF5W2ldIGlzIGl0ZW0gdGhlbiByZXR1cm4gaSBlbHNlIGkrKwogIC0xCgoKIyBQcm92aWRlIEphdmFTY3JpcHQgMS42J3MgKipsYXN0SW5kZXhPZioqLCBkZWxlZ2F0aW5nIHRvIHRoZSBuYXRpdmUgZnVuY3Rpb24sCiMgaWYgcG9zc2libGUuCl8ubGFzdEluZGV4T2YgPSAoYXJyYXksIGl0ZW0pIC0+CiAgcmV0dXJuIGFycmF5Lmxhc3RJbmRleE9mKGl0ZW0pIGlmIG5hdGl2ZUxhc3RJbmRleE9mIGFuZCBhcnJheS5sYXN0SW5kZXhPZiBpcyBuYXRpdmVMYXN0SW5kZXhPZgogIGkgPSBhcnJheS5sZW5ndGgKICB3aGlsZSBpCiAgICBpZiBhcnJheVtpXSBpcyBpdGVtIHRoZW4gcmV0dXJuIGkgZWxzZSBpLS0KICAtMQoKCiMgR2VuZXJhdGUgYW4gaW50ZWdlciBBcnJheSBjb250YWluaW5nIGFuIGFyaXRobWV0aWMgcHJvZ3Jlc3Npb24uIEEgcG9ydCBvZgojIFt0aGUgbmF0aXZlIFB5dGhvbiAqKnJhbmdlKiogZnVuY3Rpb25dKGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9mdW5jdGlvbnMuaHRtbCNyYW5nZSkuCl8ucmFuZ2UgPSAoc3RhcnQsIHN0b3AsIHN0ZXApIC0+CiAgYSA9IGFyZ3VtZW50cwogIHNvbG8gPSBhLmxlbmd0aCA8PSAxCiAgaSA9IHN0YXJ0ID0gaWYgc29sbyB0aGVuIDAgZWxzZSBhWzBdCiAgc3RvcCA9IGlmIHNvbG8gdGhlbiBhWzBdIGVsc2UgYVsxXQogIHN0ZXAgPSBhWzJdIG9yIDEKICBsZW4gPSBNYXRoLmNlaWwoKHN0b3AgLSBzdGFydCkgLyBzdGVwKQogIHJldHVybiBbXSBpZiBsZW4gPD0gMAogIHJhbmdlID0gbmV3IEFycmF5IGxlbgogIGlkeCA9IDAKICBsb29wCiAgICByZXR1cm4gcmFuZ2UgaWYgKGlmIHN0ZXAgPiAwIHRoZW4gaSAtIHN0b3AgZWxzZSBzdG9wIC0gaSkgPj0gMAogICAgcmFuZ2VbaWR4XSA9IGkKICAgIGlkeCsrCiAgICBpKz0gc3RlcAoKCiMgRnVuY3Rpb24gRnVuY3Rpb25zCiMgLS0tLS0tLS0tLS0tLS0tLS0tCgojIENyZWF0ZSBhIGZ1bmN0aW9uIGJvdW5kIHRvIGEgZ2l2ZW4gb2JqZWN0IChhc3NpZ25pbmcgYHRoaXNgLCBhbmQgYXJndW1lbnRzLAojIG9wdGlvbmFsbHkpLiBCaW5kaW5nIHdpdGggYXJndW1lbnRzIGlzIGFsc28ga25vd24gYXMgKipjdXJyeSoqLgpfLmJpbmQgPSAoZnVuYywgb2JqKSAtPgogIGFyZ3MgPSBfLnJlc3QgYXJndW1lbnRzLCAyCiAgLT4gZnVuYy5hcHBseSBvYmogb3Igcm9vdCwgYXJncy5jb25jYXQgYXJndW1lbnRzCgoKIyBCaW5kIGFsbCBvZiBhbiBvYmplY3QncyBtZXRob2RzIHRvIHRoYXQgb2JqZWN0LiBVc2VmdWwgZm9yIGVuc3VyaW5nIHRoYXQKIyBhbGwgY2FsbGJhY2tzIGRlZmluZWQgb24gYW4gb2JqZWN0IGJlbG9uZyB0byBpdC4KXy5iaW5kQWxsID0gKG9iaikgLT4KICBmdW5jcyA9IGlmIGFyZ3VtZW50cy5sZW5ndGggPiAxIHRoZW4gXy5yZXN0KGFyZ3VtZW50cykgZWxzZSBfLmZ1bmN0aW9ucyhvYmopCiAgXy5lYWNoIGZ1bmNzLCAoZikgLT4gb2JqW2ZdID0gXy5iaW5kIG9ialtmXSwgb2JqCiAgb2JqCgoKIyBEZWxheXMgYSBmdW5jdGlvbiBmb3IgdGhlIGdpdmVuIG51bWJlciBvZiBtaWxsaXNlY29uZHMsIGFuZCB0aGVuIGNhbGxzCiMgaXQgd2l0aCB0aGUgYXJndW1lbnRzIHN1cHBsaWVkLgpfLmRlbGF5ID0gKGZ1bmMsIHdhaXQpIC0+CiAgYXJncyA9IF8ucmVzdCBhcmd1bWVudHMsIDIKICBzZXRUaW1lb3V0KCgtPiBmdW5jLmFwcGx5KGZ1bmMsIGFyZ3MpKSwgd2FpdCkKCgojIE1lbW9pemUgYW4gZXhwZW5zaXZlIGZ1bmN0aW9uIGJ5IHN0b3JpbmcgaXRzIHJlc3VsdHMuCl8ubWVtb2l6ZSA9IChmdW5jLCBoYXNoZXIpIC0+CiAgbWVtbyA9IHt9CiAgaGFzaGVyIG9yPSBfLmlkZW50aXR5CiAgLT4KICAgIGtleSA9IGhhc2hlci5hcHBseSB0aGlzLCBhcmd1bWVudHMKICAgIHJldHVybiBtZW1vW2tleV0gaWYga2V5IG9mIG1lbW8KICAgIG1lbW9ba2V5XSA9IGZ1bmMuYXBwbHkgdGhpcywgYXJndW1lbnRzCgoKIyBEZWZlcnMgYSBmdW5jdGlvbiwgc2NoZWR1bGluZyBpdCB0byBydW4gYWZ0ZXIgdGhlIGN1cnJlbnQgY2FsbCBzdGFjayBoYXMKIyBjbGVhcmVkLgpfLmRlZmVyID0gKGZ1bmMpIC0+CiAgXy5kZWxheS5hcHBseSBfLCBbZnVuYywgMV0uY29uY2F0IF8ucmVzdCBhcmd1bWVudHMKCgojIFJldHVybnMgdGhlIGZpcnN0IGZ1bmN0aW9uIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byB0aGUgc2Vjb25kLAojIGFsbG93aW5nIHlvdSB0byBhZGp1c3QgYXJndW1lbnRzLCBydW4gY29kZSBiZWZvcmUgYW5kIGFmdGVyLCBhbmQKIyBjb25kaXRpb25hbGx5IGV4ZWN1dGUgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLgpfLndyYXAgPSAoZnVuYywgd3JhcHBlcikgLT4KICAtPiB3cmFwcGVyLmFwcGx5IHdyYXBwZXIsIFtmdW5jXS5jb25jYXQgYXJndW1lbnRzCgoKIyBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBpcyB0aGUgY29tcG9zaXRpb24gb2YgYSBsaXN0IG9mIGZ1bmN0aW9ucywgZWFjaAojIGNvbnN1bWluZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiB0aGF0IGZvbGxvd3MuCl8uY29tcG9zZSA9IC0+CiAgZnVuY3MgPSBhcmd1bWVudHMKICAtPgogICAgYXJncyA9IGFyZ3VtZW50cwogICAgZm9yIGkgaW4gW2Z1bmNzLmxlbmd0aCAtIDEuLjBdIGJ5IC0xCiAgICAgIGFyZ3MgPSBbZnVuY3NbaV0uYXBwbHkodGhpcywgYXJncyldCiAgICBhcmdzWzBdCgoKIyBPYmplY3QgRnVuY3Rpb25zCiMgLS0tLS0tLS0tLS0tLS0tLQoKIyBSZXRyaWV2ZSB0aGUgbmFtZXMgb2YgYW4gb2JqZWN0J3MgcHJvcGVydGllcy4KXy5rZXlzID0gbmF0aXZlS2V5cyBvciAob2JqKSAtPgogIHJldHVybiBfLnJhbmdlIDAsIG9iai5sZW5ndGggaWYgXy5pc0FycmF5KG9iaikKICBrZXkgZm9yIGtleSwgdmFsIG9mIG9iagoKCiMgUmV0cmlldmUgdGhlIHZhbHVlcyBvZiBhbiBvYmplY3QncyBwcm9wZXJ0aWVzLgpfLnZhbHVlcyA9IChvYmopIC0+CiAgXy5tYXAgb2JqLCBfLmlkZW50aXR5CgoKIyBSZXR1cm4gYSBzb3J0ZWQgbGlzdCBvZiB0aGUgZnVuY3Rpb24gbmFtZXMgYXZhaWxhYmxlIGluIFVuZGVyc2NvcmUuCl8uZnVuY3Rpb25zID0gKG9iaikgLT4KICBfLmZpbHRlcihfLmtleXMob2JqKSwgKGtleSkgLT4gXy5pc0Z1bmN0aW9uKG9ialtrZXldKSkuc29ydCgpCgoKIyBFeHRlbmQgYSBnaXZlbiBvYmplY3Qgd2l0aCBhbGwgb2YgdGhlIHByb3BlcnRpZXMgaW4gYSBzb3VyY2Ugb2JqZWN0LgpfLmV4dGVuZCA9IChvYmopIC0+CiAgZm9yIHNvdXJjZSBpbiBfLnJlc3QoYXJndW1lbnRzKQogICAgb2JqW2tleV0gPSB2YWwgZm9yIGtleSwgdmFsIG9mIHNvdXJjZQogIG9iagoKCiMgQ3JlYXRlIGEgKHNoYWxsb3ctY2xvbmVkKSBkdXBsaWNhdGUgb2YgYW4gb2JqZWN0LgpfLmNsb25lID0gKG9iaikgLT4KICByZXR1cm4gb2JqLnNsaWNlIDAgaWYgXy5pc0FycmF5IG9iagogIF8uZXh0ZW5kIHt9LCBvYmoKCgojIEludm9rZXMgaW50ZXJjZXB0b3Igd2l0aCB0aGUgb2JqLCBhbmQgdGhlbiByZXR1cm5zIG9iai4KIyBUaGUgcHJpbWFyeSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvICJ0YXAgaW50byIgYSBtZXRob2QgY2hhaW4sCiMgaW4gb3JkZXIgdG8gcGVyZm9ybSBvcGVyYXRpb25zIG9uIGludGVybWVkaWF0ZSByZXN1bHRzIHdpdGhpbgogdGhlIGNoYWluLgpfLnRhcCA9IChvYmosIGludGVyY2VwdG9yKSAtPgogIGludGVyY2VwdG9yIG9iagogIG9iagoKCiMgUGVyZm9ybSBhIGRlZXAgY29tcGFyaXNvbiB0byBjaGVjayBpZiB0d28gb2JqZWN0cyBhcmUgZXF1YWwuCl8uaXNFcXVhbCA9IChhLCBiKSAtPgogICMgQ2hlY2sgb2JqZWN0IGlkZW50aXR5LgogIHJldHVybiB0cnVlIGlmIGEgaXMgYgogICMgRGlmZmVyZW50IHR5cGVzPwogIGF0eXBlID0gdHlwZW9mKGEpOyBidHlwZSA9IHR5cGVvZihiKQogIHJldHVybiBmYWxzZSBpZiBhdHlwZSBpc250IGJ0eXBlCiAgIyBCYXNpYyBlcXVhbGl0eSB0ZXN0ICh3YXRjaCBvdXQgZm9yIGNvZXJjaW9ucykuCiAgcmV0dXJuIHRydWUgaWYgYGEgPT0gYmAKICAjIE9uZSBpcyBmYWxzeSBhbmQgdGhlIG90aGVyIHRydXRoeS4KICByZXR1cm4gZmFsc2UgaWYgKCFhIGFuZCBiKSBvciAoYSBhbmQgIWIpCiAgIyBPbmUgb2YgdGhlbSBpbXBsZW1lbnRzIGFuIGBpc0VxdWFsKClgPwogIHJldHVybiBhLmlzRXF1YWwoYikgaWYgYS5pc0VxdWFsCiAgIyBDaGVjayBkYXRlcycgaW50ZWdlciB2YWx1ZXMuCiAgcmV0dXJuIGEuZ2V0VGltZSgpIGlzIGIuZ2V0VGltZSgpIGlmIF8uaXNEYXRlKGEpIGFuZCBfLmlzRGF0ZShiKQogICMgQm90aCBhcmUgTmFOPwogIHJldHVybiBmYWxzZSBpZiBfLmlzTmFOKGEpIGFuZCBfLmlzTmFOKGIpCiAgIyBDb21wYXJlIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCiAgaWYgXy5pc1JlZ0V4cChhKSBhbmQgXy5pc1JlZ0V4cChiKQogICAgcmV0dXJuIGEuc291cmNlIGlzIGIuc291cmNlIGFuZAogICAgICAgICAgIGEuZ2xvYmFsIGlzIGIuZ2xvYmFsIGFuZAogICAgICAgICAgIGEuaWdub3JlQ2FzZSBpcyBiLmlnbm9yZUNhc2UgYW5kCiAgICAgICAgICAgYS5tdWx0aWxpbmUgaXMgYi5tdWx0aWxpbmUKICAjIElmIGEgaXMgbm90IGFuIG9iamVjdCBieSB0aGlzIHBvaW50LCB3ZSBjYW4ndCBoYW5kbGUgaXQuCiAgcmV0dXJuIGZhbHNlIGlmIGF0eXBlIGlzbnQgJ29iamVjdCcKICAjIENoZWNrIGZvciBkaWZmZXJlbnQgYXJyYXkgbGVuZ3RocyBiZWZvcmUgY29tcGFyaW5nIGNvbnRlbnRzLgogIHJldHVybiBmYWxzZSBpZiBhLmxlbmd0aCBhbmQgKGEubGVuZ3RoIGlzbnQgYi5sZW5ndGgpCiAgIyBOb3RoaW5nIGVsc2Ugd29ya2VkLCBkZWVwIGNvbXBhcmUgdGhlIGNvbnRlbnRzLgogIGFLZXlzID0gXy5rZXlzKGEpOyBiS2V5cyA9IF8ua2V5cyhiKQogICMgRGlmZmVyZW50IG9iamVjdCBzaXplcz8KICByZXR1cm4gZmFsc2UgaWYgYUtleXMubGVuZ3RoIGlzbnQgYktleXMubGVuZ3RoCiAgIyBSZWN1cnNpdmUgY29tcGFyaXNvbiBvZiBjb250ZW50cy4KICByZXR1cm4gZmFsc2UgZm9yIGtleSwgdmFsIG9mIGEgd2hlbiAhKGtleSBvZiBiKSBvciAhXy5pc0VxdWFsKHZhbCwgYltrZXldKQogIHRydWUKCgojIElzIGEgZ2l2ZW4gYXJyYXkgb3Igb2JqZWN0IGVtcHR5PwpfLmlzRW1wdHkgPSAob2JqKSAtPgogIHJldHVybiBvYmoubGVuZ3RoIGlzIDAgaWYgXy5pc0FycmF5KG9iaikgb3IgXy5pc1N0cmluZyhvYmopCiAgcmV0dXJuIGZhbHNlIGZvciBvd24ga2V5IG9mIG9iagogIHRydWUKCgojIElzIGEgZ2l2ZW4gdmFsdWUgYSBET00gZWxlbWVudD8KXy5pc0VsZW1lbnQgPSAob2JqKSAtPiBvYmogYW5kIG9iai5ub2RlVHlwZSBpcyAxCgoKIyBJcyBhIGdpdmVuIHZhbHVlIGFuIGFycmF5PwpfLmlzQXJyYXkgPSBuYXRpdmVJc0FycmF5IG9yIChvYmopIC0+ICEhKG9iaiBhbmQgb2JqLmNvbmNhdCBhbmQgb2JqLnVuc2hpZnQgYW5kIG5vdCBvYmouY2FsbGVlKQoKCiMgSXMgYSBnaXZlbiB2YXJpYWJsZSBhbiBhcmd1bWVudHMgb2JqZWN0PwpfLmlzQXJndW1lbnRzID0gKG9iaikgLT4gb2JqIGFuZCBvYmouY2FsbGVlCgoKIyBJcyB0aGUgZ2l2ZW4gdmFsdWUgYSBmdW5jdGlvbj8KXy5pc0Z1bmN0aW9uID0gKG9iaikgLT4gISEob2JqIGFuZCBvYmouY29uc3RydWN0b3IgYW5kIG9iai5jYWxsIGFuZCBvYmouYXBwbHkpCgoKIyBJcyB0aGUgZ2l2ZW4gdmFsdWUgYSBzdHJpbmc/Cl8uaXNTdHJpbmcgPSAob2JqKSAtPiAhIShvYmogaXMgJycgb3IgKG9iaiBhbmQgb2JqLmNoYXJDb2RlQXQgYW5kIG9iai5zdWJzdHIpKQoKCiMgSXMgYSBnaXZlbiB2YWx1ZSBhIG51bWJlcj8KXy5pc051bWJlciA9IChvYmopIC0+IChvYmogaXMgK29iaikgb3IgdG9TdHJpbmcuY2FsbChvYmopIGlzICdbb2JqZWN0IE51bWJlcl0nCgoKIyBJcyBhIGdpdmVuIHZhbHVlIGEgYm9vbGVhbj8KXy5pc0Jvb2xlYW4gPSAob2JqKSAtPiBvYmogaXMgdHJ1ZSBvciBvYmogaXMgZmFsc2UKCgojIElzIGEgZ2l2ZW4gdmFsdWUgYSBEYXRlPwpfLmlzRGF0ZSA9IChvYmopIC0+ICEhKG9iaiBhbmQgb2JqLmdldFRpbWV6b25lT2Zmc2V0IGFuZCBvYmouc2V0VVRDRnVsbFllYXIpCgoKIyBJcyB0aGUgZ2l2ZW4gdmFsdWUgYSByZWd1bGFyIGV4cHJlc3Npb24/Cl8uaXNSZWdFeHAgPSAob2JqKSAtPiAhIShvYmogYW5kIG9iai5leGVjIGFuZCAob2JqLmlnbm9yZUNhc2Ugb3Igb2JqLmlnbm9yZUNhc2UgaXMgZmFsc2UpKQoKCiMgSXMgdGhlIGdpdmVuIHZhbHVlIE5hTiAtLSB0aGlzIG9uZSBpcyBpbnRlcmVzdGluZy4gYE5hTiAhPSBOYU5gLCBhbmQKIyBgaXNOYU4odW5kZWZpbmVkKSA9PSB0cnVlYCwgc28gd2UgbWFrZSBzdXJlIGl0J3MgYSBudW1iZXIgZmlyc3QuCl8uaXNOYU4gPSAob2JqKSAtPiBfLmlzTnVtYmVyKG9iaikgYW5kIHdpbmRvdy5pc05hTihvYmopCgoKIyBJcyBhIGdpdmVuIHZhbHVlIGVxdWFsIHRvIG51bGw/Cl8uaXNOdWxsID0gKG9iaikgLT4gb2JqIGlzIG51bGwKCgojIElzIGEgZ2l2ZW4gdmFyaWFibGUgdW5kZWZpbmVkPwpfLmlzVW5kZWZpbmVkID0gKG9iaikgLT4gdHlwZW9mIG9iaiBpcyAndW5kZWZpbmVkJwoKCiMgVXRpbGl0eSBGdW5jdGlvbnMKIyAtLS0tLS0tLS0tLS0tLS0tLQoKIyBSdW4gVW5kZXJzY29yZS5qcyBpbiBub0NvbmZsaWN0IG1vZGUsIHJldHVybmluZyB0aGUgYF9gIHZhcmlhYmxlIHRvIGl0cwojIHByZXZpb3VzIG93bmVyLiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBVbmRlcnNjb3JlIG9iamVjdC4KXy5ub0NvbmZsaWN0ID0gLT4KICByb290Ll8gPSBwcmV2aW91c1VuZGVyc2NvcmUKICB0aGlzCgoKIyBLZWVwIHRoZSBpZGVudGl0eSBmdW5jdGlvbiBhcm91bmQgZm9yIGRlZmF1bHQgaXRlcmF0b3JzLgpfLmlkZW50aXR5ID0gKHZhbHVlKSAtPiB2YWx1ZQoKCiMgUnVuIGEgZnVuY3Rpb24gYG5gIHRpbWVzLgpfLnRpbWVzID0gKG4sIGl0ZXJhdG9yLCBjb250ZXh0KSAtPgogIGl0ZXJhdG9yLmNhbGwgY29udGV4dCwgaSBmb3IgaSBpbiBbMC4uLm5dCgoKIyBCcmVhayBvdXQgb2YgdGhlIG1pZGRsZSBvZiBhbiBpdGVyYXRpb24uCl8uYnJlYWtMb29wID0gLT4gdGhyb3cgYnJlYWtlcgoKCiMgQWRkIHlvdXIgb3duIGN1c3RvbSBmdW5jdGlvbnMgdG8gdGhlIFVuZGVyc2NvcmUgb2JqZWN0LCBlbnN1cmluZyB0aGF0CiMgdGhleSdyZSBjb3JyZWN0bHkgYWRkZWQgdG8gdGhlIE9PUCB3cmFwcGVyIGFzIHdlbGwuCl8ubWl4aW4gPSAob2JqKSAtPgogIGZvciBuYW1lIGluIF8uZnVuY3Rpb25zKG9iaikKICAgIGFkZFRvV3JhcHBlciBuYW1lLCBfW25hbWVdID0gb2JqW25hbWVdCgoKIyBHZW5lcmF0ZSBhIHVuaXF1ZSBpbnRlZ2VyIGlkICh1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgY2xpZW50IHNlc3Npb24pLgojIFVzZWZ1bCBmb3IgdGVtcG9yYXJ5IERPTSBpZHMuCmlkQ291bnRlciA9IDAKXy51bmlxdWVJZCA9IChwcmVmaXgpIC0+CiAgKHByZWZpeCBvciAnJykgKyBpZENvdW50ZXIrKwoKCiMgQnkgZGVmYXVsdCwgVW5kZXJzY29yZSB1c2VzICoqRVJCKiotc3R5bGUgdGVtcGxhdGUgZGVsaW1pdGVycywgY2hhbmdlIHRoZQojIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2UgYWx0ZXJuYXRpdmUgZGVsaW1pdGVycy4KXy50ZW1wbGF0ZVNldHRpbmdzID0gewogIHN0YXJ0OiAnPCUnCiAgZW5kOiAnJT4nCiAgaW50ZXJwb2xhdGU6IC88JT0oLis/KSU+L2cKfQoKCiMgSmF2YVNjcmlwdCB0ZW1wbGF0aW5nIGEtbGEgKipFUkIqKiwgcGlsZmVyZWQgZnJvbSBKb2huIFJlc2lnJ3MKIyAqU2VjcmV0cyBvZiB0aGUgSmF2YVNjcmlwdCBOaW5qYSosIHBhZ2UgODMuCiMgU2luZ2xlLXF1b3RlIGZpeCBmcm9tIFJpY2sgU3RyYWhsLgojIFdpdGggYWx0ZXJhdGlvbnMgZm9yIGFyYml0cmFyeSBkZWxpbWl0ZXJzLCBhbmQgdG8gcHJlc2VydmUgd2hpdGVzcGFjZS4KXy50ZW1wbGF0ZSA9IChzdHIsIGRhdGEpIC0+CiAgYyA9IF8udGVtcGxhdGVTZXR0aW5ncwogIGVuZE1hdGNoID0gbmV3IFJlZ0V4cCgiJyg/PVteIitjLmVuZC5zdWJzdHIoMCwgMSkrIl0qIitlc2NhcGVSZWdFeHAoYy5lbmQpKyIpIiwiZyIpCiAgZm4gPSBuZXcgRnVuY3Rpb24gJ29iaicsCiAgICAndmFyIHA9W10scHJpbnQ9ZnVuY3Rpb24oKXtwLnB1c2guYXBwbHkocCxhcmd1bWVudHMpO307JyArCiAgICAnd2l0aChvYmp8fHt9KXtwLnB1c2goXCcnICsKICAgIHN0ci5yZXBsYWNlKC9cci9nLCAnXFxyJykKICAgICAgIC5yZXBsYWNlKC9cbi9nLCAnXFxuJykKICAgICAgIC5yZXBsYWNlKC9cdC9nLCAnXFx0JykKICAgICAgIC5yZXBsYWNlKGVuZE1hdGNoLCLvv73vv73vv70iKQogICAgICAgLnNwbGl0KCInIikuam9pbigiXFwnIikKICAgICAgIC5zcGxpdCgi77+977+977+9Iikuam9pbigiJyIpCiAgICAgICAucmVwbGFjZShjLmludGVycG9sYXRlLCAiJywkMSwnIikKICAgICAgIC5zcGxpdChjLnN0YXJ0KS5qb2luKCInKTsiKQogICAgICAgLnNwbGl0KGMuZW5kKS5qb2luKCJwLnB1c2goJyIpICsKICAgICAgICInKTt9cmV0dXJuIHAuam9pbignJyk7IgogIGlmIGRhdGEgdGhlbiBmbihkYXRhKSBlbHNlIGZuCgoKIyBBbGlhc2VzCiMgLS0tLS0tLQoKXy5mb3JFYWNoID0gXy5lYWNoCl8uZm9sZGwgPSBfLmluamVjdCA9IF8ucmVkdWNlCl8uZm9sZHIgPSBfLnJlZHVjZVJpZ2h0Cl8uc2VsZWN0ID0gXy5maWx0ZXIKXy5hbGwgPSBfLmV2ZXJ5Cl8uYW55ID0gXy5zb21lCl8uY29udGFpbnMgPSBfLmluY2x1ZGUKXy5oZWFkID0gXy5maXJzdApfLnRhaWwgPSBfLnJlc3QKXy5tZXRob2RzID0gXy5mdW5jdGlvbnMKCgojIFNldHVwIHRoZSBPT1AgV3JhcHBlcgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBJZiBVbmRlcnNjb3JlIGlzIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLCBpdCByZXR1cm5zIGEgd3JhcHBlZCBvYmplY3QgdGhhdAojIGNhbiBiZSB1c2VkIE9PLXN0eWxlLiBUaGlzIHdyYXBwZXIgaG9sZHMgYWx0ZXJlZCB2ZXJzaW9ucyBvZiBhbGwgdGhlCiMgdW5kZXJzY29yZSBmdW5jdGlvbnMuIFdyYXBwZWQgb2JqZWN0cyBtYXkgYmUgY2hhaW5lZC4Kd3JhcHBlciA9IChvYmopIC0+CiAgdGhpcy5fd3JhcHBlZCA9IG9iagogIHRoaXMKCgojIEhlbHBlciBmdW5jdGlvbiB0byBjb250aW51ZSBjaGFpbmluZyBpbnRlcm1lZGlhdGUgcmVzdWx0cy4KcmVzdWx0ID0gKG9iaiwgY2hhaW4pIC0+CiAgaWYgY2hhaW4gdGhlbiBfKG9iaikuY2hhaW4oKSBlbHNlIG9iagoKCiMgQSBtZXRob2QgdG8gZWFzaWx5IGFkZCBmdW5jdGlvbnMgdG8gdGhlIE9PUCB3cmFwcGVyLgphZGRUb1dyYXBwZXIgPSAobmFtZSwgZnVuYykgLT4KICB3cmFwcGVyLnByb3RvdHlwZVtuYW1lXSA9IC0+CiAgICBhcmdzID0gXy50b0FycmF5IGFyZ3VtZW50cwogICAgdW5zaGlmdC5jYWxsIGFyZ3MsIHRoaXMuX3dyYXBwZWQKICAgIHJlc3VsdCBmdW5jLmFwcGx5KF8sIGFyZ3MpLCB0aGlzLl9jaGFpbgoKCiMgQWRkIGFsbCBvZnRoZSBVbmRlcnNjb3JlIGZ1bmN0aW9ucyB0byB0aGUgd3JhcHBlciBvYmplY3QuCl8ubWl4aW4gXwoKCiMgQWRkIGFsbCBtdXRhdG9yIEFycmF5IGZ1bmN0aW9ucyB0byB0aGUgd3JhcHBlci4KXy5lYWNoIFsncG9wJywgJ3B1c2gnLCAncmV2ZXJzZScsICdzaGlmdCcsICdzb3J0JywgJ3NwbGljZScsICd1bnNoaWZ0J10sIChuYW1lKSAtPgogIG1ldGhvZCA9IEFycmF5LnByb3RvdHlwZVtuYW1lXQogIHdyYXBwZXIucHJvdG90eXBlW25hbWVdID0gLT4KICAgIG1ldGhvZC5hcHBseSh0aGlzLl93cmFwcGVkLCBhcmd1bWVudHMpCiAgICByZXN1bHQodGhpcy5fd3JhcHBlZCwgdGhpcy5fY2hhaW4pCgoKIyBBZGQgYWxsIGFjY2Vzc29yIEFycmF5IGZ1bmN0aW9ucyB0byB0aGUgd3JhcHBlci4KXy5lYWNoIFsnY29uY2F0JywgJ2pvaW4nLCAnc2xpY2UnXSwgKG5hbWUpIC0+CiAgbWV0aG9kID0gQXJyYXkucHJvdG90eXBlW25hbWVdCiAgd3JhcHBlci5wcm90b3R5cGVbbmFtZV0gPSAtPgogICAgcmVzdWx0KG1ldGhvZC5hcHBseSh0aGlzLl93cmFwcGVkLCBhcmd1bWVudHMpLCB0aGlzLl9jaGFpbikKCgojIFN0YXJ0IGNoYWluaW5nIGEgd3JhcHBlZCBVbmRlcnNjb3JlIG9iamVjdC4Kd3JhcHBlcjo6Y2hhaW4gPSAtPgogIHRoaXMuX2NoYWluID0gdHJ1ZQogIHRoaXMKCgojIEV4dHJhY3RzIHRoZSByZXN1bHQgZnJvbSBhIHdyYXBwZWQgYW5kIGNoYWluZWQgb2JqZWN0Lgp3cmFwcGVyOjp2YWx1ZSA9IC0+IHRoaXMuX3dyYXBwZWQKPC90ZXh0YXJlYT48L2Zvcm0+CiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwge30pOwogICAgPC9zY3JpcHQ+CgogICAgPHA+PHN0cm9uZz5NSU1FIHR5cGVzIGRlZmluZWQ6PC9zdHJvbmc+IDxjb2RlPnRleHQveC1jb2ZmZWVzY3JpcHQ8L2NvZGU+LjwvcD4KCiAgICA8cD5UaGUgQ29mZmVlU2NyaXB0IG1vZGUgd2FzIHdyaXR0ZW4gYnkgSmVmZiBQaWNraGFyZHQgKDxhIGhyZWY9IkxJQ0VOU0UiPmxpY2Vuc2U8L2E+KS48L3A+CgogIDwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/coffeescript/LICENSE</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhlIE1JVCBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMTEgSmVmZiBQaWNraGFyZHQKTW9kaWZpZWQgZnJvbSB0aGUgUHl0aG9uIENvZGVNaXJyb3IgbW9kZSwgQ29weXJpZ2h0IChjKSAyMDEwIFRpbW90aHkgRmFycmVsbAoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgphbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOClRIRSBTT0ZUV0FSRS4=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/css/css.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJjc3MiLCBmdW5jdGlvbihjb25maWcpIHsKICB2YXIgaW5kZW50VW5pdCA9IGNvbmZpZy5pbmRlbnRVbml0LCB0eXBlOwogIGZ1bmN0aW9uIHJldChzdHlsZSwgdHApIHt0eXBlID0gdHA7IHJldHVybiBzdHlsZTt9CgogIGZ1bmN0aW9uIHRva2VuQmFzZShzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgY2ggPSBzdHJlYW0ubmV4dCgpOwogICAgaWYgKGNoID09ICJAIikge3N0cmVhbS5lYXRXaGlsZSgvXHcvKTsgcmV0dXJuIHJldCgibWV0YSIsIHN0cmVhbS5jdXJyZW50KCkpO30KICAgIGVsc2UgaWYgKGNoID09ICIvIiAmJiBzdHJlYW0uZWF0KCIqIikpIHsKICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkNDb21tZW50OwogICAgICByZXR1cm4gdG9rZW5DQ29tbWVudChzdHJlYW0sIHN0YXRlKTsKICAgIH0KICAgIGVsc2UgaWYgKGNoID09ICI8IiAmJiBzdHJlYW0uZWF0KCIhIikpIHsKICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlblNHTUxDb21tZW50OwogICAgICByZXR1cm4gdG9rZW5TR01MQ29tbWVudChzdHJlYW0sIHN0YXRlKTsKICAgIH0KICAgIGVsc2UgaWYgKGNoID09ICI9IikgcmV0KG51bGwsICJjb21wYXJlIik7CiAgICBlbHNlIGlmICgoY2ggPT0gIn4iIHx8IGNoID09ICJ8IikgJiYgc3RyZWFtLmVhdCgiPSIpKSByZXR1cm4gcmV0KG51bGwsICJjb21wYXJlIik7CiAgICBlbHNlIGlmIChjaCA9PSAiXCIiIHx8IGNoID09ICInIikgewogICAgICBzdGF0ZS50b2tlbml6ZSA9IHRva2VuU3RyaW5nKGNoKTsKICAgICAgcmV0dXJuIHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgfQogICAgZWxzZSBpZiAoY2ggPT0gIiMiKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZSgvXHcvKTsKICAgICAgcmV0dXJuIHJldCgiYXRvbSIsICJoYXNoIik7CiAgICB9CiAgICBlbHNlIGlmIChjaCA9PSAiISIpIHsKICAgICAgc3RyZWFtLm1hdGNoKC9eXHMqXHcqLyk7CiAgICAgIHJldHVybiByZXQoImtleXdvcmQiLCAiaW1wb3J0YW50Iik7CiAgICB9CiAgICBlbHNlIGlmICgvXGQvLnRlc3QoY2gpKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW1x3LiVdLyk7CiAgICAgIHJldHVybiByZXQoIm51bWJlciIsICJ1bml0Iik7CiAgICB9CiAgICBlbHNlIGlmICgvWywuKz4qXC9dLy50ZXN0KGNoKSkgewogICAgICByZXR1cm4gcmV0KG51bGwsICJzZWxlY3Qtb3AiKTsKICAgIH0KICAgIGVsc2UgaWYgKC9bO3t9OlxbXF1dLy50ZXN0KGNoKSkgewogICAgICByZXR1cm4gcmV0KG51bGwsIGNoKTsKICAgIH0KICAgIGVsc2UgewogICAgICBzdHJlYW0uZWF0V2hpbGUoL1tcd1xcXC1fXS8pOwogICAgICByZXR1cm4gcmV0KCJ2YXJpYWJsZSIsICJ2YXJpYWJsZSIpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gdG9rZW5DQ29tbWVudChzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgbWF5YmVFbmQgPSBmYWxzZSwgY2g7CiAgICB3aGlsZSAoKGNoID0gc3RyZWFtLm5leHQoKSkgIT0gbnVsbCkgewogICAgICBpZiAobWF5YmVFbmQgJiYgY2ggPT0gIi8iKSB7CiAgICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkJhc2U7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgbWF5YmVFbmQgPSAoY2ggPT0gIioiKTsKICAgIH0KICAgIHJldHVybiByZXQoImNvbW1lbnQiLCAiY29tbWVudCIpOwogIH0KCiAgZnVuY3Rpb24gdG9rZW5TR01MQ29tbWVudChzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgZGFzaGVzID0gMCwgY2g7CiAgICB3aGlsZSAoKGNoID0gc3RyZWFtLm5leHQoKSkgIT0gbnVsbCkgewogICAgICBpZiAoZGFzaGVzID49IDIgJiYgY2ggPT0gIj4iKSB7CiAgICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkJhc2U7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgZGFzaGVzID0gKGNoID09ICItIikgPyBkYXNoZXMgKyAxIDogMDsKICAgIH0KICAgIHJldHVybiByZXQoImNvbW1lbnQiLCAiY29tbWVudCIpOwogIH0KCiAgZnVuY3Rpb24gdG9rZW5TdHJpbmcocXVvdGUpIHsKICAgIHJldHVybiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIHZhciBlc2NhcGVkID0gZmFsc2UsIGNoOwogICAgICB3aGlsZSAoKGNoID0gc3RyZWFtLm5leHQoKSkgIT0gbnVsbCkgewogICAgICAgIGlmIChjaCA9PSBxdW90ZSAmJiAhZXNjYXBlZCkKICAgICAgICAgIGJyZWFrOwogICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZCAmJiBjaCA9PSAiXFwiOwogICAgICB9CiAgICAgIGlmICghZXNjYXBlZCkgc3RhdGUudG9rZW5pemUgPSB0b2tlbkJhc2U7CiAgICAgIHJldHVybiByZXQoInN0cmluZyIsICJzdHJpbmciKTsKICAgIH07CiAgfQoKICByZXR1cm4gewogICAgc3RhcnRTdGF0ZTogZnVuY3Rpb24oYmFzZSkgewogICAgICByZXR1cm4ge3Rva2VuaXplOiB0b2tlbkJhc2UsCiAgICAgICAgICAgICAgYmFzZUluZGVudDogYmFzZSB8fCAwLAogICAgICAgICAgICAgIHN0YWNrOiBbXX07CiAgICB9LAoKICAgIHRva2VuOiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgcmV0dXJuIG51bGw7CiAgICAgIHZhciBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwoKICAgICAgdmFyIGNvbnRleHQgPSBzdGF0ZS5zdGFja1tzdGF0ZS5zdGFjay5sZW5ndGgtMV07CiAgICAgIGlmICh0eXBlID09ICJoYXNoIiAmJiBjb250ZXh0ID09ICJydWxlIikgc3R5bGUgPSAiYXRvbSI7CiAgICAgIGVsc2UgaWYgKHN0eWxlID09ICJ2YXJpYWJsZSIpIHsKICAgICAgICBpZiAoY29udGV4dCA9PSAicnVsZSIpIHN0eWxlID0gIm51bWJlciI7CiAgICAgICAgZWxzZSBpZiAoIWNvbnRleHQgfHwgY29udGV4dCA9PSAiQG1lZGlheyIpIHN0eWxlID0gInRhZyI7CiAgICAgIH0KCiAgICAgIGlmIChjb250ZXh0ID09ICJydWxlIiAmJiAvXltce1x9O10kLy50ZXN0KHR5cGUpKQogICAgICAgIHN0YXRlLnN0YWNrLnBvcCgpOwogICAgICBpZiAodHlwZSA9PSAieyIpIHsKICAgICAgICBpZiAoY29udGV4dCA9PSAiQG1lZGlhIikgc3RhdGUuc3RhY2tbc3RhdGUuc3RhY2subGVuZ3RoLTFdID0gIkBtZWRpYXsiOwogICAgICAgIGVsc2Ugc3RhdGUuc3RhY2sucHVzaCgieyIpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gIn0iKSBzdGF0ZS5zdGFjay5wb3AoKTsKICAgICAgZWxzZSBpZiAodHlwZSA9PSAiQG1lZGlhIikgc3RhdGUuc3RhY2sucHVzaCgiQG1lZGlhIik7CiAgICAgIGVsc2UgaWYgKGNvbnRleHQgPT0gInsiICYmIHR5cGUgIT0gImNvbW1lbnQiKSBzdGF0ZS5zdGFjay5wdXNoKCJydWxlIik7CiAgICAgIHJldHVybiBzdHlsZTsKICAgIH0sCgogICAgaW5kZW50OiBmdW5jdGlvbihzdGF0ZSwgdGV4dEFmdGVyKSB7CiAgICAgIHZhciBuID0gc3RhdGUuc3RhY2subGVuZ3RoOwogICAgICBpZiAoL15cfS8udGVzdCh0ZXh0QWZ0ZXIpKQogICAgICAgIG4gLT0gc3RhdGUuc3RhY2tbc3RhdGUuc3RhY2subGVuZ3RoLTFdID09ICJydWxlIiA/IDIgOiAxOwogICAgICByZXR1cm4gc3RhdGUuYmFzZUluZGVudCArIG4gKiBpbmRlbnRVbml0OwogICAgfSwKCiAgICBlbGVjdHJpY0NoYXJzOiAifSIKICB9Owp9KTsKCkNvZGVNaXJyb3IuZGVmaW5lTUlNRSgidGV4dC9jc3MiLCAiY3NzIik7Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogQ1NTIG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJjc3MuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JhY2tncm91bmQ6ICNmOGY4Zjg7fTwvc3R5bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGgxPkNvZGVNaXJyb3IgMjogQ1NTIG1vZGU8L2gxPgogICAgPGZvcm0+PHRleHRhcmVhIGlkPSJjb2RlIiBuYW1lPSJjb2RlIj4KLyogU29tZSBleGFtcGxlIENTUyAqLwoKQGltcG9ydCB1cmwoInNvbWV0aGluZy5jc3MiKTsKCmJvZHkgewogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAzZW0gNmVtOwogIGZvbnQtZmFtaWx5OiB0YWhvbWEsIGFyaWFsLCBzYW5zLXNlcmlmOwogIGNvbG9yOiAjMDAwOwp9CgojbmF2aWdhdGlvbiBhIHsKICBmb250LXdlaWdodDogYm9sZDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKfQoKaDEgewogIGZvbnQtc2l6ZTogMi41ZW07Cn0KCmgyIHsKICBmb250LXNpemU6IDEuN2VtOwp9CgpoMTpiZWZvcmUsIGgyOmJlZm9yZSB7CiAgY29udGVudDogIjo6IjsKfQoKY29kZSB7CiAgZm9udC1mYW1pbHk6IGNvdXJpZXIsIG1vbm9zcGFjZTsKICBmb250LXNpemU6IDgwJTsKICBjb2xvcjogIzQxOEE4QTsKfQo8L3RleHRhcmVhPjwvZm9ybT4KICAgIDxzY3JpcHQ+CiAgICAgIHZhciBlZGl0b3IgPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29kZSIpLCB7fSk7CiAgICA8L3NjcmlwdD4KCiAgICA8cD48c3Ryb25nPk1JTUUgdHlwZXMgZGVmaW5lZDo8L3N0cm9uZz4gPGNvZGU+dGV4dC9jc3M8L2NvZGU+LjwvcD4KCiAgPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/htmlmixed/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/htmlmixed/htmlmixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJodG1sbWl4ZWQiLCBmdW5jdGlvbihjb25maWcsIHBhcnNlckNvbmZpZykgewogIHZhciBodG1sTW9kZSA9IENvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsIHtuYW1lOiAieG1sIiwgaHRtbE1vZGU6IHRydWV9KTsKICB2YXIganNNb2RlID0gQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgImphdmFzY3JpcHQiKTsKICB2YXIgY3NzTW9kZSA9IENvZGVNaXJyb3IuZ2V0TW9kZShjb25maWcsICJjc3MiKTsKCiAgZnVuY3Rpb24gaHRtbChzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgc3R5bGUgPSBodG1sTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmh0bWxTdGF0ZSk7CiAgICBpZiAoc3R5bGUgPT0gInRhZyIgJiYgc3RyZWFtLmN1cnJlbnQoKSA9PSAiPiIgJiYgc3RhdGUuaHRtbFN0YXRlLmNvbnRleHQpIHsKICAgICAgaWYgKC9ec2NyaXB0JC9pLnRlc3Qoc3RhdGUuaHRtbFN0YXRlLmNvbnRleHQudGFnTmFtZSkpIHsKICAgICAgICBzdGF0ZS50b2tlbiA9IGphdmFzY3JpcHQ7CiAgICAgICAgc3RhdGUubG9jYWxTdGF0ZSA9IGpzTW9kZS5zdGFydFN0YXRlKGh0bWxNb2RlLmluZGVudChzdGF0ZS5odG1sU3RhdGUsICIiKSk7CiAgICAgICAgc3RhdGUubW9kZSA9ICJqYXZhc2NyaXB0IjsKICAgICAgfQogICAgICBlbHNlIGlmICgvXnN0eWxlJC9pLnRlc3Qoc3RhdGUuaHRtbFN0YXRlLmNvbnRleHQudGFnTmFtZSkpIHsKICAgICAgICBzdGF0ZS50b2tlbiA9IGNzczsKICAgICAgICBzdGF0ZS5sb2NhbFN0YXRlID0gY3NzTW9kZS5zdGFydFN0YXRlKGh0bWxNb2RlLmluZGVudChzdGF0ZS5odG1sU3RhdGUsICIiKSk7CiAgICAgICAgc3RhdGUubW9kZSA9ICJjc3MiOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gc3R5bGU7CiAgfQogIGZ1bmN0aW9uIG1heWJlQmFja3VwKHN0cmVhbSwgcGF0LCBzdHlsZSkgewogICAgdmFyIGN1ciA9IHN0cmVhbS5jdXJyZW50KCk7CiAgICB2YXIgY2xvc2UgPSBjdXIuc2VhcmNoKHBhdCk7CiAgICBpZiAoY2xvc2UgPiAtMSkgc3RyZWFtLmJhY2tVcChjdXIubGVuZ3RoIC0gY2xvc2UpOwogICAgcmV0dXJuIHN0eWxlOwogIH0KICBmdW5jdGlvbiBqYXZhc2NyaXB0KHN0cmVhbSwgc3RhdGUpIHsKICAgIGlmIChzdHJlYW0ubWF0Y2goL148XC9ccypzY3JpcHRccyo+L2ksIGZhbHNlKSkgewogICAgICBzdGF0ZS50b2tlbiA9IGh0bWw7CiAgICAgIHN0YXRlLmN1clN0YXRlID0gbnVsbDsKICAgICAgc3RhdGUubW9kZSA9ICJodG1sIjsKICAgICAgcmV0dXJuIGh0bWwoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CiAgICByZXR1cm4gbWF5YmVCYWNrdXAoc3RyZWFtLCAvPFwvXHMqc2NyaXB0XHMqPi8sCiAgICAgICAgICAgICAgICAgICAgICAganNNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUubG9jYWxTdGF0ZSkpOwogIH0KICBmdW5jdGlvbiBjc3Moc3RyZWFtLCBzdGF0ZSkgewogICAgaWYgKHN0cmVhbS5tYXRjaCgvXjxcL1xzKnN0eWxlXHMqPi9pLCBmYWxzZSkpIHsKICAgICAgc3RhdGUudG9rZW4gPSBodG1sOwogICAgICBzdGF0ZS5sb2NhbFN0YXRlID0gbnVsbDsKICAgICAgc3RhdGUubW9kZSA9ICJodG1sIjsKICAgICAgcmV0dXJuIGh0bWwoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CiAgICByZXR1cm4gbWF5YmVCYWNrdXAoc3RyZWFtLCAvPFwvXHMqc3R5bGVccyo+LywKICAgICAgICAgICAgICAgICAgICAgICBjc3NNb2RlLnRva2VuKHN0cmVhbSwgc3RhdGUubG9jYWxTdGF0ZSkpOwogIH0KCiAgcmV0dXJuIHsKICAgIHN0YXJ0U3RhdGU6IGZ1bmN0aW9uKCkgewogICAgICB2YXIgc3RhdGUgPSBodG1sTW9kZS5zdGFydFN0YXRlKCk7CiAgICAgIHJldHVybiB7dG9rZW46IGh0bWwsIGxvY2FsU3RhdGU6IG51bGwsIG1vZGU6ICJodG1sIiwgaHRtbFN0YXRlOiBzdGF0ZX07CiAgICB9LAoKICAgIGNvcHlTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKHN0YXRlLmxvY2FsU3RhdGUpCiAgICAgICAgdmFyIGxvY2FsID0gQ29kZU1pcnJvci5jb3B5U3RhdGUoc3RhdGUudG9rZW4gPT0gY3NzID8gY3NzTW9kZSA6IGpzTW9kZSwgc3RhdGUubG9jYWxTdGF0ZSk7CiAgICAgIHJldHVybiB7dG9rZW46IHN0YXRlLnRva2VuLCBsb2NhbFN0YXRlOiBsb2NhbCwgbW9kZTogc3RhdGUubW9kZSwKICAgICAgICAgICAgICBodG1sU3RhdGU6IENvZGVNaXJyb3IuY29weVN0YXRlKGh0bWxNb2RlLCBzdGF0ZS5odG1sU3RhdGUpfTsKICAgIH0sCgogICAgdG9rZW46IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgcmV0dXJuIHN0YXRlLnRva2VuKHN0cmVhbSwgc3RhdGUpOwogICAgfSwKCiAgICBpbmRlbnQ6IGZ1bmN0aW9uKHN0YXRlLCB0ZXh0QWZ0ZXIpIHsKICAgICAgaWYgKHN0YXRlLnRva2VuID09IGh0bWwgfHwgL15ccyo8XC8vLnRlc3QodGV4dEFmdGVyKSkKICAgICAgICByZXR1cm4gaHRtbE1vZGUuaW5kZW50KHN0YXRlLmh0bWxTdGF0ZSwgdGV4dEFmdGVyKTsKICAgICAgZWxzZSBpZiAoc3RhdGUudG9rZW4gPT0gamF2YXNjcmlwdCkKICAgICAgICByZXR1cm4ganNNb2RlLmluZGVudChzdGF0ZS5sb2NhbFN0YXRlLCB0ZXh0QWZ0ZXIpOwogICAgICBlbHNlCiAgICAgICAgcmV0dXJuIGNzc01vZGUuaW5kZW50KHN0YXRlLmxvY2FsU3RhdGUsIHRleHRBZnRlcik7CiAgICB9LAoKICAgIGVsZWN0cmljQ2hhcnM6ICIve306IgogIH0KfSk7CgpDb2RlTWlycm9yLmRlZmluZU1JTUUoInRleHQvaHRtbCIsICJodG1sbWl4ZWQiKTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/htmlmixed/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogSFRNTCBtaXhlZCBtb2RlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vbGliL2NvZGVtaXJyb3IuY3NzIj4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9saWIvY29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4veG1sL3htbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vamF2YXNjcmlwdC9qYXZhc2NyaXB0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9jc3MvY3NzLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vdGhlbWUvZGVmYXVsdC5jc3MiPgogICAgPHNjcmlwdCBzcmM9Imh0bWxtaXhlZC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO308L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxoMT5Db2RlTWlycm9yIDI6IEhUTUwgbWl4ZWQgbW9kZTwvaDE+CiAgICA8Zm9ybT48dGV4dGFyZWEgaWQ9ImNvZGUiIG5hbWU9ImNvZGUiPgo8aHRtbCBzdHlsZT0iY29sb3I6IGdyZWVuIj4KICA8IS0tIHRoaXMgaXMgYSBjb21tZW50IC0tPgogIDxoZWFkPgogICAgPHRpdGxlPk1peGVkIEhUTUwgRXhhbXBsZTwvdGl0bGU+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICBoMSB7Zm9udC1mYW1pbHk6IGNvbWljIHNhbnM7IGNvbG9yOiAjZjBmO30KICAgICAgZGl2IHtiYWNrZ3JvdW5kOiB5ZWxsb3cgIWltcG9ydGFudDt9CiAgICAgIGJvZHkgewogICAgICAgIG1heC13aWR0aDogNTBlbTsKICAgICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDVlbTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+TWl4ZWQgSFRNTCBFeGFtcGxlPC9oMT4KICAgIDxzY3JpcHQ+CiAgICAgIGZ1bmN0aW9uIGpzRnVuYyhhcmcxLCBhcmcyKSB7CiAgICAgICAgaWYgKGFyZzEgJiYgYXJnMikgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiYWNob28iOwogICAgICB9CiAgICA8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4KPC90ZXh0YXJlYT48L2Zvcm0+CiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwge21vZGU6ICJ0ZXh0L2h0bWwiLCB0YWJNb2RlOiAiaW5kZW50In0pOwogICAgPC9zY3JpcHQ+CgogICAgPHA+VGhlIEhUTUwgbWl4ZWQgbW9kZSBkZXBlbmRzIG9uIHRoZSBYTUwsIEphdmFTY3JpcHQsIGFuZCBDU1MgbW9kZXMuPC9wPgoKICAgIDxwPjxzdHJvbmc+TUlNRSB0eXBlcyBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT50ZXh0L2h0bWw8L2NvZGU+CiAgICAocmVkZWZpbmVkLCBvbmx5IHRha2VzIGVmZmVjdCBpZiB5b3UgbG9hZCB0aGlzIHBhcnNlciBhZnRlciB0aGUKICAgIFhNTCBwYXJzZXIpLjwvcD4KCiAgPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/javascript/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/javascript/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogSmF2YVNjcmlwdCBtb2RlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vbGliL2NvZGVtaXJyb3IuY3NzIj4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9saWIvY29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iamF2YXNjcmlwdC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3RoZW1lL2RlZmF1bHQuY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vY3NzL2RvY3MuY3NzIj4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LkNvZGVNaXJyb3Ige2JvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO308L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxoMT5Db2RlTWlycm9yIDI6IEphdmFTY3JpcHQgbW9kZTwvaDE+Cgo8ZGl2Pjx0ZXh0YXJlYSBpZD0iY29kZSIgbmFtZT0iY29kZSI+Ci8vIERlbW8gY29kZSAodGhlIGFjdHVhbCBuZXcgcGFyc2VyIGNoYXJhY3RlciBzdHJlYW0gaW1wbGVtZW50YXRpb24pCgpmdW5jdGlvbiBTdHJpbmdTdHJlYW0oc3RyaW5nKSB7CiAgdGhpcy5wb3MgPSAwOwogIHRoaXMuc3RyaW5nID0gc3RyaW5nOwp9CgpTdHJpbmdTdHJlYW0ucHJvdG90eXBlID0gewogIGRvbmU6IGZ1bmN0aW9uKCkge3JldHVybiB0aGlzLnBvcyA+PSB0aGlzLnN0cmluZy5sZW5ndGg7fSwKICBwZWVrOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5zdHJpbmcuY2hhckF0KHRoaXMucG9zKTt9LAogIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgaWYgKHRoaXMucG9zICZsdDsgdGhpcy5zdHJpbmcubGVuZ3RoKQogICAgICByZXR1cm4gdGhpcy5zdHJpbmcuY2hhckF0KHRoaXMucG9zKyspOwogIH0sCiAgZWF0OiBmdW5jdGlvbihtYXRjaCkgewogICAgdmFyIGNoID0gdGhpcy5zdHJpbmcuY2hhckF0KHRoaXMucG9zKTsKICAgIGlmICh0eXBlb2YgbWF0Y2ggPT0gInN0cmluZyIpIHZhciBvayA9IGNoID09IG1hdGNoOwogICAgZWxzZSB2YXIgb2sgPSBjaCAmYW1wOyZhbXA7IG1hdGNoLnRlc3QgPyBtYXRjaC50ZXN0KGNoKSA6IG1hdGNoKGNoKTsKICAgIGlmIChvaykge3RoaXMucG9zKys7IHJldHVybiBjaDt9CiAgfSwKICBlYXRXaGlsZTogZnVuY3Rpb24obWF0Y2gpIHsKICAgIHZhciBzdGFydCA9IHRoaXMucG9zOwogICAgd2hpbGUgKHRoaXMuZWF0KG1hdGNoKSk7CiAgICBpZiAodGhpcy5wb3MgPiBzdGFydCkgcmV0dXJuIHRoaXMuc3RyaW5nLnNsaWNlKHN0YXJ0LCB0aGlzLnBvcyk7CiAgfSwKICBiYWNrVXA6IGZ1bmN0aW9uKG4pIHt0aGlzLnBvcyAtPSBuO30sCiAgY29sdW1uOiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5wb3M7fSwKICBlYXRTcGFjZTogZnVuY3Rpb24oKSB7CiAgICB2YXIgc3RhcnQgPSB0aGlzLnBvczsKICAgIHdoaWxlICgvXHMvLnRlc3QodGhpcy5zdHJpbmcuY2hhckF0KHRoaXMucG9zKSkpIHRoaXMucG9zKys7CiAgICByZXR1cm4gdGhpcy5wb3MgLSBzdGFydDsKICB9LAogIG1hdGNoOiBmdW5jdGlvbihwYXR0ZXJuLCBjb25zdW1lLCBjYXNlSW5zZW5zaXRpdmUpIHsKICAgIGlmICh0eXBlb2YgcGF0dGVybiA9PSAic3RyaW5nIikgewogICAgICBmdW5jdGlvbiBjYXNlZChzdHIpIHtyZXR1cm4gY2FzZUluc2Vuc2l0aXZlID8gc3RyLnRvTG93ZXJDYXNlKCkgOiBzdHI7fQogICAgICBpZiAoY2FzZWQodGhpcy5zdHJpbmcpLmluZGV4T2YoY2FzZWQocGF0dGVybiksIHRoaXMucG9zKSA9PSB0aGlzLnBvcykgewogICAgICAgIGlmIChjb25zdW1lICE9PSBmYWxzZSkgdGhpcy5wb3MgKz0gc3RyLmxlbmd0aDsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgIHZhciBtYXRjaCA9IHRoaXMuc3RyaW5nLnNsaWNlKHRoaXMucG9zKS5tYXRjaChwYXR0ZXJuKTsKICAgICAgaWYgKG1hdGNoICZhbXA7JmFtcDsgY29uc3VtZSAhPT0gZmFsc2UpIHRoaXMucG9zICs9IG1hdGNoWzBdLmxlbmd0aDsKICAgICAgcmV0dXJuIG1hdGNoOwogICAgfQogIH0KfTsKPC90ZXh0YXJlYT48L2Rpdj4KCiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwgewogICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAogICAgICAgIG1hdGNoQnJhY2tldHM6IHRydWUKICAgICAgfSk7CiAgICA8L3NjcmlwdD4KCiAgICA8cD5KYXZhU2NyaXB0IG1vZGUgc3VwcG9ydHMgYSBzaW5nbGUgY29uZmlndXJhdGlvbgogICAgb3B0aW9uLCA8Y29kZT5qc29uPC9jb2RlPiwgd2hpY2ggd2lsbCBzZXQgdGhlIG1vZGUgdG8gZXhwZWN0IEpTT04KICAgIGRhdGEgcmF0aGVyIHRoYW4gYSBKYXZhU2NyaXB0IHByb2dyYW0uPC9wPgoKICAgIDxwPjxzdHJvbmc+TUlNRSB0eXBlcyBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT50ZXh0L2phdmFzY3JpcHQ8L2NvZGU+LCA8Y29kZT5hcHBsaWNhdGlvbi9qc29uPC9jb2RlPi48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/javascript/javascript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJqYXZhc2NyaXB0IiwgZnVuY3Rpb24oY29uZmlnLCBwYXJzZXJDb25maWcpIHsKICB2YXIgaW5kZW50VW5pdCA9IGNvbmZpZy5pbmRlbnRVbml0OwogIHZhciBqc29uTW9kZSA9IHBhcnNlckNvbmZpZy5qc29uOwoKICAvLyBUb2tlbml6ZXIKCiAgdmFyIGtleXdvcmRzID0gZnVuY3Rpb24oKXsKICAgIGZ1bmN0aW9uIGt3KHR5cGUpIHtyZXR1cm4ge3R5cGU6IHR5cGUsIHN0eWxlOiAia2V5d29yZCJ9O30KICAgIHZhciBBID0ga3coImtleXdvcmQgYSIpLCBCID0ga3coImtleXdvcmQgYiIpLCBDID0ga3coImtleXdvcmQgYyIpOwogICAgdmFyIG9wZXJhdG9yID0ga3coIm9wZXJhdG9yIiksIGF0b20gPSB7dHlwZTogImF0b20iLCBzdHlsZTogImF0b20ifTsKICAgIHJldHVybiB7CiAgICAgICJpZiI6IEEsICJ3aGlsZSI6IEEsICJ3aXRoIjogQSwgImVsc2UiOiBCLCAiZG8iOiBCLCAidHJ5IjogQiwgImZpbmFsbHkiOiBCLAogICAgICAicmV0dXJuIjogQywgImJyZWFrIjogQywgImNvbnRpbnVlIjogQywgIm5ldyI6IEMsICJkZWxldGUiOiBDLCAidGhyb3ciOiBDLAogICAgICAidmFyIjoga3coInZhciIpLCAiZnVuY3Rpb24iOiBrdygiZnVuY3Rpb24iKSwgImNhdGNoIjoga3coImNhdGNoIiksCiAgICAgICJmb3IiOiBrdygiZm9yIiksICJzd2l0Y2giOiBrdygic3dpdGNoIiksICJjYXNlIjoga3coImNhc2UiKSwgImRlZmF1bHQiOiBrdygiZGVmYXVsdCIpLAogICAgICAiaW4iOiBvcGVyYXRvciwgInR5cGVvZiI6IG9wZXJhdG9yLCAiaW5zdGFuY2VvZiI6IG9wZXJhdG9yLAogICAgICAidHJ1ZSI6IGF0b20sICJmYWxzZSI6IGF0b20sICJudWxsIjogYXRvbSwgInVuZGVmaW5lZCI6IGF0b20sICJOYU4iOiBhdG9tLCAiSW5maW5pdHkiOiBhdG9tCiAgICB9OwogIH0oKTsKCiAgdmFyIGlzT3BlcmF0b3JDaGFyID0gL1srXC0qJiU9PD4hP3xdLzsKCiAgZnVuY3Rpb24gY2hhaW4oc3RyZWFtLCBzdGF0ZSwgZikgewogICAgc3RhdGUudG9rZW5pemUgPSBmOwogICAgcmV0dXJuIGYoc3RyZWFtLCBzdGF0ZSk7CiAgfQoKICBmdW5jdGlvbiBuZXh0VW50aWxVbmVzY2FwZWQoc3RyZWFtLCBlbmQpIHsKICAgIHZhciBlc2NhcGVkID0gZmFsc2UsIG5leHQ7CiAgICB3aGlsZSAoKG5leHQgPSBzdHJlYW0ubmV4dCgpKSAhPSBudWxsKSB7CiAgICAgIGlmIChuZXh0ID09IGVuZCAmJiAhZXNjYXBlZCkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZCAmJiBuZXh0ID09ICJcXCI7CiAgICB9CiAgICByZXR1cm4gZXNjYXBlZDsKICB9CgogIC8vIFVzZWQgYXMgc2NyYXRjaCB2YXJpYWJsZXMgdG8gY29tbXVuaWNhdGUgbXVsdGlwbGUgdmFsdWVzIHdpdGhvdXQKICAvLyBjb25zaW5nIHVwIHRvbnMgb2Ygb2JqZWN0cy4KICB2YXIgdHlwZSwgY29udGVudDsKICBmdW5jdGlvbiByZXQodHAsIHN0eWxlLCBjb250KSB7CiAgICB0eXBlID0gdHA7IGNvbnRlbnQgPSBjb250OwogICAgcmV0dXJuIHN0eWxlOwogIH0KCiAgZnVuY3Rpb24ganNUb2tlbkJhc2Uoc3RyZWFtLCBzdGF0ZSkgewogICAgdmFyIGNoID0gc3RyZWFtLm5leHQoKTsKICAgIGlmIChjaCA9PSAnIicgfHwgY2ggPT0gIiciKQogICAgICByZXR1cm4gY2hhaW4oc3RyZWFtLCBzdGF0ZSwganNUb2tlblN0cmluZyhjaCkpOwogICAgZWxzZSBpZiAoL1tcW1xde31cKFwpLDtcOlwuXS8udGVzdChjaCkpCiAgICAgIHJldHVybiByZXQoY2gpOwogICAgZWxzZSBpZiAoY2ggPT0gIjAiICYmIHN0cmVhbS5lYXQoL3gvaSkpIHsKICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXGRhLWZdL2kpOwogICAgICByZXR1cm4gcmV0KCJudW1iZXIiLCAibnVtYmVyIik7CiAgICB9ICAgICAgCiAgICBlbHNlIGlmICgvXGQvLnRlc3QoY2gpKSB7CiAgICAgIHN0cmVhbS5tYXRjaCgvXlxkKig/OlwuXGQqKT8oPzplWytcLV0/XGQrKT8vKTsKICAgICAgcmV0dXJuIHJldCgibnVtYmVyIiwgIm51bWJlciIpOwogICAgfQogICAgZWxzZSBpZiAoY2ggPT0gIi8iKSB7CiAgICAgIGlmIChzdHJlYW0uZWF0KCIqIikpIHsKICAgICAgICByZXR1cm4gY2hhaW4oc3RyZWFtLCBzdGF0ZSwganNUb2tlbkNvbW1lbnQpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHN0cmVhbS5lYXQoIi8iKSkgewogICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICByZXR1cm4gcmV0KCJjb21tZW50IiwgImNvbW1lbnQiKTsKICAgICAgfQogICAgICBlbHNlIGlmIChzdGF0ZS5yZUFsbG93ZWQpIHsKICAgICAgICBuZXh0VW50aWxVbmVzY2FwZWQoc3RyZWFtLCAiLyIpOwogICAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW2dpbXldLyk7IC8vICd5JyBpcyAic3RpY2t5IiBvcHRpb24gaW4gTW96aWxsYQogICAgICAgIHJldHVybiByZXQoInJlZ2V4cCIsICJzdHJpbmciKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzdHJlYW0uZWF0V2hpbGUoaXNPcGVyYXRvckNoYXIpOwogICAgICAgIHJldHVybiByZXQoIm9wZXJhdG9yIiwgbnVsbCwgc3RyZWFtLmN1cnJlbnQoKSk7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKGlzT3BlcmF0b3JDaGFyLnRlc3QoY2gpKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZShpc09wZXJhdG9yQ2hhcik7CiAgICAgIHJldHVybiByZXQoIm9wZXJhdG9yIiwgbnVsbCwgc3RyZWFtLmN1cnJlbnQoKSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXHdcJF9dLyk7CiAgICAgIHZhciB3b3JkID0gc3RyZWFtLmN1cnJlbnQoKSwga25vd24gPSBrZXl3b3Jkcy5wcm9wZXJ0eUlzRW51bWVyYWJsZSh3b3JkKSAmJiBrZXl3b3Jkc1t3b3JkXTsKICAgICAgcmV0dXJuIGtub3duID8gcmV0KGtub3duLnR5cGUsIGtub3duLnN0eWxlLCB3b3JkKSA6CiAgICAgICAgICAgICAgICAgICAgIHJldCgidmFyaWFibGUiLCAidmFyaWFibGUiLCB3b3JkKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGpzVG9rZW5TdHJpbmcocXVvdGUpIHsKICAgIHJldHVybiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIGlmICghbmV4dFVudGlsVW5lc2NhcGVkKHN0cmVhbSwgcXVvdGUpKQogICAgICAgIHN0YXRlLnRva2VuaXplID0ganNUb2tlbkJhc2U7CiAgICAgIHJldHVybiByZXQoInN0cmluZyIsICJzdHJpbmciKTsKICAgIH07CiAgfQoKICBmdW5jdGlvbiBqc1Rva2VuQ29tbWVudChzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgbWF5YmVFbmQgPSBmYWxzZSwgY2g7CiAgICB3aGlsZSAoY2ggPSBzdHJlYW0ubmV4dCgpKSB7CiAgICAgIGlmIChjaCA9PSAiLyIgJiYgbWF5YmVFbmQpIHsKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IGpzVG9rZW5CYXNlOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIG1heWJlRW5kID0gKGNoID09ICIqIik7CiAgICB9CiAgICByZXR1cm4gcmV0KCJjb21tZW50IiwgImNvbW1lbnQiKTsKICB9CgogIC8vIFBhcnNlcgoKICB2YXIgYXRvbWljVHlwZXMgPSB7ImF0b20iOiB0cnVlLCAibnVtYmVyIjogdHJ1ZSwgInZhcmlhYmxlIjogdHJ1ZSwgInN0cmluZyI6IHRydWUsICJyZWdleHAiOiB0cnVlfTsKCiAgZnVuY3Rpb24gSlNMZXhpY2FsKGluZGVudGVkLCBjb2x1bW4sIHR5cGUsIGFsaWduLCBwcmV2LCBpbmZvKSB7CiAgICB0aGlzLmluZGVudGVkID0gaW5kZW50ZWQ7CiAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjsKICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICB0aGlzLnByZXYgPSBwcmV2OwogICAgdGhpcy5pbmZvID0gaW5mbzsKICAgIGlmIChhbGlnbiAhPSBudWxsKSB0aGlzLmFsaWduID0gYWxpZ247CiAgfQoKICBmdW5jdGlvbiBpblNjb3BlKHN0YXRlLCB2YXJuYW1lKSB7CiAgICBmb3IgKHZhciB2ID0gc3RhdGUubG9jYWxWYXJzOyB2OyB2ID0gdi5uZXh0KQogICAgICBpZiAodi5uYW1lID09IHZhcm5hbWUpIHJldHVybiB0cnVlOwogIH0KCiAgZnVuY3Rpb24gcGFyc2VKUyhzdGF0ZSwgc3R5bGUsIHR5cGUsIGNvbnRlbnQsIHN0cmVhbSkgewogICAgdmFyIGNjID0gc3RhdGUuY2M7CiAgICAvLyBDb21tdW5pY2F0ZSBvdXIgY29udGV4dCB0byB0aGUgY29tYmluYXRvcnMuCiAgICAvLyAoTGVzcyB3YXN0ZWZ1bCB0aGFuIGNvbnNpbmcgdXAgYSBodW5kcmVkIGNsb3N1cmVzIG9uIGV2ZXJ5IGNhbGwuKQogICAgY3guc3RhdGUgPSBzdGF0ZTsgY3guc3RyZWFtID0gc3RyZWFtOyBjeC5tYXJrZWQgPSBudWxsLCBjeC5jYyA9IGNjOwogIAogICAgaWYgKCFzdGF0ZS5sZXhpY2FsLmhhc093blByb3BlcnR5KCJhbGlnbiIpKQogICAgICBzdGF0ZS5sZXhpY2FsLmFsaWduID0gdHJ1ZTsKCiAgICB3aGlsZSh0cnVlKSB7CiAgICAgIHZhciBjb21iaW5hdG9yID0gY2MubGVuZ3RoID8gY2MucG9wKCkgOiBqc29uTW9kZSA/IGV4cHJlc3Npb24gOiBzdGF0ZW1lbnQ7CiAgICAgIGlmIChjb21iaW5hdG9yKHR5cGUsIGNvbnRlbnQpKSB7CiAgICAgICAgd2hpbGUoY2MubGVuZ3RoICYmIGNjW2NjLmxlbmd0aCAtIDFdLmxleCkKICAgICAgICAgIGNjLnBvcCgpKCk7CiAgICAgICAgaWYgKGN4Lm1hcmtlZCkgcmV0dXJuIGN4Lm1hcmtlZDsKICAgICAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiICYmIGluU2NvcGUoc3RhdGUsIGNvbnRlbnQpKSByZXR1cm4gInZhcmlhYmxlLTIiOwogICAgICAgIHJldHVybiBzdHlsZTsKICAgICAgfQogICAgfQogIH0KCiAgLy8gQ29tYmluYXRvciB1dGlscwoKICB2YXIgY3ggPSB7c3RhdGU6IG51bGwsIGNvbHVtbjogbnVsbCwgbWFya2VkOiBudWxsLCBjYzogbnVsbH07CiAgZnVuY3Rpb24gcGFzcygpIHsKICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGN4LmNjLnB1c2goYXJndW1lbnRzW2ldKTsKICB9CiAgZnVuY3Rpb24gY29udCgpIHsKICAgIHBhc3MuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKICAgIHJldHVybiB0cnVlOwogIH0KICBmdW5jdGlvbiByZWdpc3Rlcih2YXJuYW1lKSB7CiAgICB2YXIgc3RhdGUgPSBjeC5zdGF0ZTsKICAgIGlmIChzdGF0ZS5jb250ZXh0KSB7CiAgICAgIGN4Lm1hcmtlZCA9ICJkZWYiOwogICAgICBmb3IgKHZhciB2ID0gc3RhdGUubG9jYWxWYXJzOyB2OyB2ID0gdi5uZXh0KQogICAgICAgIGlmICh2Lm5hbWUgPT0gdmFybmFtZSkgcmV0dXJuOwogICAgICBzdGF0ZS5sb2NhbFZhcnMgPSB7bmFtZTogdmFybmFtZSwgbmV4dDogc3RhdGUubG9jYWxWYXJzfTsKICAgIH0KICB9CgogIC8vIENvbWJpbmF0b3JzCgogIHZhciBkZWZhdWx0VmFycyA9IHtuYW1lOiAidGhpcyIsIG5leHQ6IHtuYW1lOiAiYXJndW1lbnRzIn19OwogIGZ1bmN0aW9uIHB1c2hjb250ZXh0KCkgewogICAgaWYgKCFjeC5zdGF0ZS5jb250ZXh0KSBjeC5zdGF0ZS5sb2NhbFZhcnMgPSBkZWZhdWx0VmFyczsKICAgIGN4LnN0YXRlLmNvbnRleHQgPSB7cHJldjogY3guc3RhdGUuY29udGV4dCwgdmFyczogY3guc3RhdGUubG9jYWxWYXJzfTsKICB9CiAgZnVuY3Rpb24gcG9wY29udGV4dCgpIHsKICAgIGN4LnN0YXRlLmxvY2FsVmFycyA9IGN4LnN0YXRlLmNvbnRleHQudmFyczsKICAgIGN4LnN0YXRlLmNvbnRleHQgPSBjeC5zdGF0ZS5jb250ZXh0LnByZXY7CiAgfQogIGZ1bmN0aW9uIHB1c2hsZXgodHlwZSwgaW5mbykgewogICAgdmFyIHJlc3VsdCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgc3RhdGUgPSBjeC5zdGF0ZTsKICAgICAgc3RhdGUubGV4aWNhbCA9IG5ldyBKU0xleGljYWwoc3RhdGUuaW5kZW50ZWQsIGN4LnN0cmVhbS5jb2x1bW4oKSwgdHlwZSwgbnVsbCwgc3RhdGUubGV4aWNhbCwgaW5mbykKICAgIH07CiAgICByZXN1bHQubGV4ID0gdHJ1ZTsKICAgIHJldHVybiByZXN1bHQ7CiAgfQogIGZ1bmN0aW9uIHBvcGxleCgpIHsKICAgIHZhciBzdGF0ZSA9IGN4LnN0YXRlOwogICAgaWYgKHN0YXRlLmxleGljYWwucHJldikgewogICAgICBpZiAoc3RhdGUubGV4aWNhbC50eXBlID09ICIpIikKICAgICAgICBzdGF0ZS5pbmRlbnRlZCA9IHN0YXRlLmxleGljYWwuaW5kZW50ZWQ7CiAgICAgIHN0YXRlLmxleGljYWwgPSBzdGF0ZS5sZXhpY2FsLnByZXY7CiAgICB9CiAgfQogIHBvcGxleC5sZXggPSB0cnVlOwoKICBmdW5jdGlvbiBleHBlY3Qod2FudGVkKSB7CiAgICByZXR1cm4gZnVuY3Rpb24gZXhwZWN0aW5nKHR5cGUpIHsKICAgICAgaWYgKHR5cGUgPT0gd2FudGVkKSByZXR1cm4gY29udCgpOwogICAgICBlbHNlIGlmICh3YW50ZWQgPT0gIjsiKSByZXR1cm4gcGFzcygpOwogICAgICBlbHNlIHJldHVybiBjb250KGFyZ3VtZW50cy5jYWxsZWUpOwogICAgfTsKICB9CgogIGZ1bmN0aW9uIHN0YXRlbWVudCh0eXBlKSB7CiAgICBpZiAodHlwZSA9PSAidmFyIikgcmV0dXJuIGNvbnQocHVzaGxleCgidmFyZGVmIiksIHZhcmRlZjEsIGV4cGVjdCgiOyIpLCBwb3BsZXgpOwogICAgaWYgKHR5cGUgPT0gImtleXdvcmQgYSIpIHJldHVybiBjb250KHB1c2hsZXgoImZvcm0iKSwgZXhwcmVzc2lvbiwgc3RhdGVtZW50LCBwb3BsZXgpOwogICAgaWYgKHR5cGUgPT0gImtleXdvcmQgYiIpIHJldHVybiBjb250KHB1c2hsZXgoImZvcm0iKSwgc3RhdGVtZW50LCBwb3BsZXgpOwogICAgaWYgKHR5cGUgPT0gInsiKSByZXR1cm4gY29udChwdXNobGV4KCJ9IiksIGJsb2NrLCBwb3BsZXgpOwogICAgaWYgKHR5cGUgPT0gIjsiKSByZXR1cm4gY29udCgpOwogICAgaWYgKHR5cGUgPT0gImZ1bmN0aW9uIikgcmV0dXJuIGNvbnQoZnVuY3Rpb25kZWYpOwogICAgaWYgKHR5cGUgPT0gImZvciIpIHJldHVybiBjb250KHB1c2hsZXgoImZvcm0iKSwgZXhwZWN0KCIoIiksIHB1c2hsZXgoIikiKSwgZm9yc3BlYzEsIGV4cGVjdCgiKSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcGxleCwgc3RhdGVtZW50LCBwb3BsZXgpOwogICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikgcmV0dXJuIGNvbnQocHVzaGxleCgic3RhdCIpLCBtYXliZWxhYmVsKTsKICAgIGlmICh0eXBlID09ICJzd2l0Y2giKSByZXR1cm4gY29udChwdXNobGV4KCJmb3JtIiksIGV4cHJlc3Npb24sIHB1c2hsZXgoIn0iLCAic3dpdGNoIiksIGV4cGVjdCgieyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBwb3BsZXgsIHBvcGxleCk7CiAgICBpZiAodHlwZSA9PSAiY2FzZSIpIHJldHVybiBjb250KGV4cHJlc3Npb24sIGV4cGVjdCgiOiIpKTsKICAgIGlmICh0eXBlID09ICJkZWZhdWx0IikgcmV0dXJuIGNvbnQoZXhwZWN0KCI6IikpOwogICAgaWYgKHR5cGUgPT0gImNhdGNoIikgcmV0dXJuIGNvbnQocHVzaGxleCgiZm9ybSIpLCBwdXNoY29udGV4dCwgZXhwZWN0KCIoIiksIGZ1bmFyZywgZXhwZWN0KCIpIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQsIHBvcGxleCwgcG9wY29udGV4dCk7CiAgICByZXR1cm4gcGFzcyhwdXNobGV4KCJzdGF0IiksIGV4cHJlc3Npb24sIGV4cGVjdCgiOyIpLCBwb3BsZXgpOwogIH0KICBmdW5jdGlvbiBleHByZXNzaW9uKHR5cGUpIHsKICAgIGlmIChhdG9taWNUeXBlcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgcmV0dXJuIGNvbnQobWF5YmVvcGVyYXRvcik7CiAgICBpZiAodHlwZSA9PSAiZnVuY3Rpb24iKSByZXR1cm4gY29udChmdW5jdGlvbmRlZik7CiAgICBpZiAodHlwZSA9PSAia2V5d29yZCBjIikgcmV0dXJuIGNvbnQoZXhwcmVzc2lvbik7CiAgICBpZiAodHlwZSA9PSAiKCIpIHJldHVybiBjb250KHB1c2hsZXgoIikiKSwgZXhwcmVzc2lvbiwgZXhwZWN0KCIpIiksIHBvcGxleCwgbWF5YmVvcGVyYXRvcik7CiAgICBpZiAodHlwZSA9PSAib3BlcmF0b3IiKSByZXR1cm4gY29udChleHByZXNzaW9uKTsKICAgIGlmICh0eXBlID09ICJbIikgcmV0dXJuIGNvbnQocHVzaGxleCgiXSIpLCBjb21tYXNlcChleHByZXNzaW9uLCAiXSIpLCBwb3BsZXgsIG1heWJlb3BlcmF0b3IpOwogICAgaWYgKHR5cGUgPT0gInsiKSByZXR1cm4gY29udChwdXNobGV4KCJ9IiksIGNvbW1hc2VwKG9ianByb3AsICJ9IiksIHBvcGxleCwgbWF5YmVvcGVyYXRvcik7CiAgICByZXR1cm4gY29udCgpOwogIH0KICBmdW5jdGlvbiBtYXliZW9wZXJhdG9yKHR5cGUsIHZhbHVlKSB7CiAgICBpZiAodHlwZSA9PSAib3BlcmF0b3IiICYmIC9cK1wrfC0tLy50ZXN0KHZhbHVlKSkgcmV0dXJuIGNvbnQobWF5YmVvcGVyYXRvcik7CiAgICBpZiAodHlwZSA9PSAib3BlcmF0b3IiKSByZXR1cm4gY29udChleHByZXNzaW9uKTsKICAgIGlmICh0eXBlID09ICI7IikgcmV0dXJuOwogICAgaWYgKHR5cGUgPT0gIigiKSByZXR1cm4gY29udChwdXNobGV4KCIpIiksIGNvbW1hc2VwKGV4cHJlc3Npb24sICIpIiksIHBvcGxleCwgbWF5YmVvcGVyYXRvcik7CiAgICBpZiAodHlwZSA9PSAiLiIpIHJldHVybiBjb250KHByb3BlcnR5LCBtYXliZW9wZXJhdG9yKTsKICAgIGlmICh0eXBlID09ICJbIikgcmV0dXJuIGNvbnQocHVzaGxleCgiXSIpLCBleHByZXNzaW9uLCBleHBlY3QoIl0iKSwgcG9wbGV4LCBtYXliZW9wZXJhdG9yKTsKICB9CiAgZnVuY3Rpb24gbWF5YmVsYWJlbCh0eXBlKSB7CiAgICBpZiAodHlwZSA9PSAiOiIpIHJldHVybiBjb250KHBvcGxleCwgc3RhdGVtZW50KTsKICAgIHJldHVybiBwYXNzKG1heWJlb3BlcmF0b3IsIGV4cGVjdCgiOyIpLCBwb3BsZXgpOwogIH0KICBmdW5jdGlvbiBwcm9wZXJ0eSh0eXBlKSB7CiAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiKSB7Y3gubWFya2VkID0gInByb3BlcnR5IjsgcmV0dXJuIGNvbnQoKTt9CiAgfQogIGZ1bmN0aW9uIG9ianByb3AodHlwZSkgewogICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikgY3gubWFya2VkID0gInByb3BlcnR5IjsKICAgIGlmIChhdG9taWNUeXBlcy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgcmV0dXJuIGNvbnQoZXhwZWN0KCI6IiksIGV4cHJlc3Npb24pOwogIH0KICBmdW5jdGlvbiBjb21tYXNlcCh3aGF0LCBlbmQpIHsKICAgIGZ1bmN0aW9uIHByb2NlZWQodHlwZSkgewogICAgICBpZiAodHlwZSA9PSAiLCIpIHJldHVybiBjb250KHdoYXQsIHByb2NlZWQpOwogICAgICBpZiAodHlwZSA9PSBlbmQpIHJldHVybiBjb250KCk7CiAgICAgIHJldHVybiBjb250KGV4cGVjdChlbmQpKTsKICAgIH0KICAgIHJldHVybiBmdW5jdGlvbiBjb21tYVNlcGFyYXRlZCh0eXBlKSB7CiAgICAgIGlmICh0eXBlID09IGVuZCkgcmV0dXJuIGNvbnQoKTsKICAgICAgZWxzZSByZXR1cm4gcGFzcyh3aGF0LCBwcm9jZWVkKTsKICAgIH07CiAgfQogIGZ1bmN0aW9uIGJsb2NrKHR5cGUpIHsKICAgIGlmICh0eXBlID09ICJ9IikgcmV0dXJuIGNvbnQoKTsKICAgIHJldHVybiBwYXNzKHN0YXRlbWVudCwgYmxvY2spOwogIH0KICBmdW5jdGlvbiB2YXJkZWYxKHR5cGUsIHZhbHVlKSB7CiAgICBpZiAodHlwZSA9PSAidmFyaWFibGUiKXtyZWdpc3Rlcih2YWx1ZSk7IHJldHVybiBjb250KHZhcmRlZjIpO30KICAgIHJldHVybiBjb250KCk7CiAgfQogIGZ1bmN0aW9uIHZhcmRlZjIodHlwZSwgdmFsdWUpIHsKICAgIGlmICh2YWx1ZSA9PSAiPSIpIHJldHVybiBjb250KGV4cHJlc3Npb24sIHZhcmRlZjIpOwogICAgaWYgKHR5cGUgPT0gIiwiKSByZXR1cm4gY29udCh2YXJkZWYxKTsKICB9CiAgZnVuY3Rpb24gZm9yc3BlYzEodHlwZSkgewogICAgaWYgKHR5cGUgPT0gInZhciIpIHJldHVybiBjb250KHZhcmRlZjEsIGZvcnNwZWMyKTsKICAgIGlmICh0eXBlID09ICI7IikgcmV0dXJuIHBhc3MoZm9yc3BlYzIpOwogICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikgcmV0dXJuIGNvbnQoZm9ybWF5YmVpbik7CiAgICByZXR1cm4gcGFzcyhmb3JzcGVjMik7CiAgfQogIGZ1bmN0aW9uIGZvcm1heWJlaW4odHlwZSwgdmFsdWUpIHsKICAgIGlmICh2YWx1ZSA9PSAiaW4iKSByZXR1cm4gY29udChleHByZXNzaW9uKTsKICAgIHJldHVybiBjb250KG1heWJlb3BlcmF0b3IsIGZvcnNwZWMyKTsKICB9CiAgZnVuY3Rpb24gZm9yc3BlYzIodHlwZSwgdmFsdWUpIHsKICAgIGlmICh0eXBlID09ICI7IikgcmV0dXJuIGNvbnQoZm9yc3BlYzMpOwogICAgaWYgKHZhbHVlID09ICJpbiIpIHJldHVybiBjb250KGV4cHJlc3Npb24pOwogICAgcmV0dXJuIGNvbnQoZXhwcmVzc2lvbiwgZXhwZWN0KCI7IiksIGZvcnNwZWMzKTsKICB9CiAgZnVuY3Rpb24gZm9yc3BlYzModHlwZSkgewogICAgaWYgKHR5cGUgIT0gIikiKSBjb250KGV4cHJlc3Npb24pOwogIH0KICBmdW5jdGlvbiBmdW5jdGlvbmRlZih0eXBlLCB2YWx1ZSkgewogICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikge3JlZ2lzdGVyKHZhbHVlKTsgcmV0dXJuIGNvbnQoZnVuY3Rpb25kZWYpO30KICAgIGlmICh0eXBlID09ICIoIikgcmV0dXJuIGNvbnQocHVzaGxleCgiKSIpLCBwdXNoY29udGV4dCwgY29tbWFzZXAoZnVuYXJnLCAiKSIpLCBwb3BsZXgsIHN0YXRlbWVudCwgcG9wY29udGV4dCk7CiAgfQogIGZ1bmN0aW9uIGZ1bmFyZyh0eXBlLCB2YWx1ZSkgewogICAgaWYgKHR5cGUgPT0gInZhcmlhYmxlIikge3JlZ2lzdGVyKHZhbHVlKTsgcmV0dXJuIGNvbnQoKTt9CiAgfQoKICAvLyBJbnRlcmZhY2UKCiAgcmV0dXJuIHsKICAgIHN0YXJ0U3RhdGU6IGZ1bmN0aW9uKGJhc2Vjb2x1bW4pIHsKICAgICAgcmV0dXJuIHsKICAgICAgICB0b2tlbml6ZToganNUb2tlbkJhc2UsCiAgICAgICAgcmVBbGxvd2VkOiB0cnVlLAogICAgICAgIGNjOiBbXSwKICAgICAgICBsZXhpY2FsOiBuZXcgSlNMZXhpY2FsKChiYXNlY29sdW1uIHx8IDApIC0gaW5kZW50VW5pdCwgMCwgImJsb2NrIiwgZmFsc2UpLAogICAgICAgIGxvY2FsVmFyczogbnVsbCwKICAgICAgICBjb250ZXh0OiBudWxsLAogICAgICAgIGluZGVudGVkOiAwCiAgICAgIH07CiAgICB9LAoKICAgIHRva2VuOiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIGlmIChzdHJlYW0uc29sKCkpIHsKICAgICAgICBpZiAoIXN0YXRlLmxleGljYWwuaGFzT3duUHJvcGVydHkoImFsaWduIikpCiAgICAgICAgICBzdGF0ZS5sZXhpY2FsLmFsaWduID0gZmFsc2U7CiAgICAgICAgc3RhdGUuaW5kZW50ZWQgPSBzdHJlYW0uaW5kZW50YXRpb24oKTsKICAgICAgfQogICAgICBpZiAoc3RyZWFtLmVhdFNwYWNlKCkpIHJldHVybiBudWxsOwogICAgICB2YXIgc3R5bGUgPSBzdGF0ZS50b2tlbml6ZShzdHJlYW0sIHN0YXRlKTsKICAgICAgaWYgKHR5cGUgPT0gImNvbW1lbnQiKSByZXR1cm4gc3R5bGU7CiAgICAgIHN0YXRlLnJlQWxsb3dlZCA9IHR5cGUgPT0gIm9wZXJhdG9yIiB8fCB0eXBlID09ICJrZXl3b3JkIGMiIHx8IHR5cGUubWF0Y2goL15bXFt7fVwoLDs6XSQvKTsKICAgICAgcmV0dXJuIHBhcnNlSlMoc3RhdGUsIHN0eWxlLCB0eXBlLCBjb250ZW50LCBzdHJlYW0pOwogICAgfSwKCiAgICBpbmRlbnQ6IGZ1bmN0aW9uKHN0YXRlLCB0ZXh0QWZ0ZXIpIHsKICAgICAgaWYgKHN0YXRlLnRva2VuaXplICE9IGpzVG9rZW5CYXNlKSByZXR1cm4gMDsKICAgICAgdmFyIGZpcnN0Q2hhciA9IHRleHRBZnRlciAmJiB0ZXh0QWZ0ZXIuY2hhckF0KDApLCBsZXhpY2FsID0gc3RhdGUubGV4aWNhbCwKICAgICAgICAgIHR5cGUgPSBsZXhpY2FsLnR5cGUsIGNsb3NpbmcgPSBmaXJzdENoYXIgPT0gdHlwZTsKICAgICAgaWYgKHR5cGUgPT0gInZhcmRlZiIpIHJldHVybiBsZXhpY2FsLmluZGVudGVkICsgNDsKICAgICAgZWxzZSBpZiAodHlwZSA9PSAiZm9ybSIgJiYgZmlyc3RDaGFyID09ICJ7IikgcmV0dXJuIGxleGljYWwuaW5kZW50ZWQ7CiAgICAgIGVsc2UgaWYgKHR5cGUgPT0gInN0YXQiIHx8IHR5cGUgPT0gImZvcm0iKSByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArIGluZGVudFVuaXQ7CiAgICAgIGVsc2UgaWYgKGxleGljYWwuaW5mbyA9PSAic3dpdGNoIiAmJiAhY2xvc2luZykKICAgICAgICByZXR1cm4gbGV4aWNhbC5pbmRlbnRlZCArICgvXig/OmNhc2V8ZGVmYXVsdClcYi8udGVzdCh0ZXh0QWZ0ZXIpID8gaW5kZW50VW5pdCA6IDIgKiBpbmRlbnRVbml0KTsKICAgICAgZWxzZSBpZiAobGV4aWNhbC5hbGlnbikgcmV0dXJuIGxleGljYWwuY29sdW1uICsgKGNsb3NpbmcgPyAwIDogMSk7CiAgICAgIGVsc2UgcmV0dXJuIGxleGljYWwuaW5kZW50ZWQgKyAoY2xvc2luZyA/IDAgOiBpbmRlbnRVbml0KTsKICAgIH0sCgogICAgZWxlY3RyaWNDaGFyczogIjp7fSIKICB9Owp9KTsKCkNvZGVNaXJyb3IuZGVmaW5lTUlNRSgidGV4dC9qYXZhc2NyaXB0IiwgImphdmFzY3JpcHQiKTsKQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJhcHBsaWNhdGlvbi9qc29uIiwge25hbWU6ICJqYXZhc2NyaXB0IiwganNvbjogdHJ1ZX0pOwo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/php/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/php/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogUEhQIG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi94bWwveG1sLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qYXZhc2NyaXB0L2phdmFzY3JpcHQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uL2Nzcy9jc3MuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uL2NsaWtlL2NsaWtlLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJwaHAuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5Db2RlTWlycm9yIHtib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazt9PC9zdHlsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vY3NzL2RvY3MuY3NzIj4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+Q29kZU1pcnJvciAyOiBQSFAgbW9kZTwvaDE+Cgo8Zm9ybT48dGV4dGFyZWEgaWQ9ImNvZGUiIG5hbWU9ImNvZGUiPgo8P3BocApmdW5jdGlvbiBoZWxsbygkd2hvKSB7CglyZXR1cm4gIkhlbGxvICIgLiAkd2hvOwp9Cj8+CjxwPlRoZSBwcm9ncmFtIHNheXMgPD89IGhlbGxvKCJXb3JsZCIpID8+LjwvcD4KPHNjcmlwdD4KCWFsZXJ0KCJBbmQgaGVyZSBpcyBzb21lIEpTIGNvZGUiKTsgLy8gYWxzbyBjb2xvcmVkCjwvc2NyaXB0Pgo8L3RleHRhcmVhPjwvZm9ybT4KCiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwgewogICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAogICAgICAgIG1hdGNoQnJhY2tldHM6IHRydWUsCiAgICAgICAgbW9kZTogImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwIiwKICAgICAgICBpbmRlbnRVbml0OiA4LAogICAgICAgIGluZGVudFdpdGhUYWJzOiB0cnVlLAogICAgICAgIGVudGVyTW9kZTogImtlZXAiLAogICAgICAgIHRhYk1vZGU6ICJzaGlmdCIKICAgICAgfSk7CiAgICA8L3NjcmlwdD4KCiAgICA8cD5TaW1wbGUgSFRNTC9QSFAgbW9kZSBiYXNlZCBvbgogICAgdGhlIDxhIGhyZWY9Ii4uL2NsaWtlLyI+Qy1saWtlPC9hPiBtb2RlLiBEZXBlbmRzIG9uIFhNTCwKICAgIEphdmFTY3JpcHQsIENTUywgYW5kIEMtbGlrZSBtb2Rlcy48L3A+CgogICAgPHA+PHN0cm9uZz5NSU1FIHR5cGVzIGRlZmluZWQ6PC9zdHJvbmc+IDxjb2RlPmFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwPC9jb2RlPiAoSFRNTCB3aXRoIFBIUCBjb2RlKSwgPGNvZGU+dGV4dC94LXBocDwvY29kZT4gKHBsYWluLCBub24td3JhcHBlZCBQSFAgY29kZSkuPC9wPgogIDwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/php/php.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIGtleXdvcmRzKHN0cikgewogICAgdmFyIG9iaiA9IHt9LCB3b3JkcyA9IHN0ci5zcGxpdCgiICIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5ndGg7ICsraSkgb2JqW3dvcmRzW2ldXSA9IHRydWU7CiAgICByZXR1cm4gb2JqOwogIH0KICBmdW5jdGlvbiBoZXJlZG9jKGRlbGltKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICBpZiAoc3RyZWFtLm1hdGNoKGRlbGltKSkgc3RhdGUudG9rZW5pemUgPSBudWxsOwogICAgICBlbHNlIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgcmV0dXJuICJzdHJpbmciOwogICAgfQogIH0KICB2YXIgcGhwQ29uZmlnID0gewogICAgbmFtZTogImNsaWtlIiwKICAgIGtleXdvcmRzOiBrZXl3b3JkcygiYWJzdHJhY3QgYW5kIGFycmF5IGFzIGJyZWFrIGNhc2UgY2F0Y2ggY2Z1bmN0aW9uIGNsYXNzIGNsb25lIGNvbnN0IGNvbnRpbnVlIGRlY2xhcmUgIiArCiAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQgZG8gZWxzZSBlbHNlaWYgZW5kZGVjbGFyZSBlbmRmb3IgZW5kZm9yZWFjaCBlbmRpZiBlbmRzd2l0Y2ggZW5kd2hpbGUgZXh0ZW5kcyAiICsKICAgICAgICAgICAgICAgICAgICAgICAiZmluYWwgZm9yIGZvcmVhY2ggZnVuY3Rpb24gZ2xvYmFsIGdvdG8gaWYgaW1wbGVtZW50cyBpbnRlcmZhY2UgaW5zdGFuY2VvZiBuYW1lc3BhY2UgIiArCiAgICAgICAgICAgICAgICAgICAgICAgIm5ldyBvciBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgc3RhdGljIHN3aXRjaCB0aHJvdyB0cnkgdXNlIHZhciB3aGlsZSB4b3IgcmV0dXJuIiksCiAgICBibG9ja0tleXdvcmRzOiBrZXl3b3JkcygiY2F0Y2ggZG8gZWxzZSBlbHNlaWYgZm9yIGZvcmVhY2ggaWYgc3dpdGNoIHRyeSB3aGlsZSIpLAogICAgYXRvbXM6IGtleXdvcmRzKCJ0cnVlIGZhbHNlIG51bGwiKSwKICAgIG11bHRpTGluZVN0cmluZ3M6IHRydWUsCiAgICBob29rczogewogICAgICAiJCI6IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBzdHJlYW0uZWF0V2hpbGUoL1tcd1wkX10vKTsKICAgICAgICByZXR1cm4gInZhcmlhYmxlLTIiOwogICAgICB9LAogICAgICAiPCI6IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBpZiAoc3RyZWFtLm1hdGNoKC88PC8pKSB7CiAgICAgICAgICBzdHJlYW0uZWF0V2hpbGUoL1tcd1wuXS8pOwogICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBoZXJlZG9jKHN0cmVhbS5jdXJyZW50KCkuc2xpY2UoMykpOwogICAgICAgICAgcmV0dXJuIHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9OwoKICBDb2RlTWlycm9yLmRlZmluZU1vZGUoInBocCIsIGZ1bmN0aW9uKGNvbmZpZywgcGFyc2VyQ29uZmlnKSB7CiAgICB2YXIgaHRtbE1vZGUgPSBDb2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCAidGV4dC9odG1sIik7CiAgICB2YXIganNNb2RlID0gQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgInRleHQvamF2YXNjcmlwdCIpOwogICAgdmFyIGNzc01vZGUgPSBDb2RlTWlycm9yLmdldE1vZGUoY29uZmlnLCAidGV4dC9jc3MiKTsKICAgIHZhciBwaHBNb2RlID0gQ29kZU1pcnJvci5nZXRNb2RlKGNvbmZpZywgcGhwQ29uZmlnKTsKCiAgICBmdW5jdGlvbiBkaXNwYXRjaChzdHJlYW0sIHN0YXRlKSB7IC8vIFRPRE8gb3BlbiBQSFAgaW5zaWRlIHRleHQvY3NzCiAgICAgIGlmIChzdGF0ZS5jdXJNb2RlID09IGh0bWxNb2RlKSB7CiAgICAgICAgdmFyIHN0eWxlID0gaHRtbE1vZGUudG9rZW4oc3RyZWFtLCBzdGF0ZS5jdXJTdGF0ZSk7CiAgICAgICAgaWYgKHN0eWxlID09ICJtZXRhIiAmJiAvXjxcPy8udGVzdChzdHJlYW0uY3VycmVudCgpKSkgewogICAgICAgICAgc3RhdGUuY3VyTW9kZSA9IHBocE1vZGU7CiAgICAgICAgICBzdGF0ZS5jdXJTdGF0ZSA9IHN0YXRlLnBocDsKICAgICAgICAgIHN0YXRlLmN1ckNsb3NlID0gL15cPz4vOwoJCSAgc3RhdGUubW9kZSA9ICAncGhwJzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoc3R5bGUgPT0gInRhZyIgJiYgc3RyZWFtLmN1cnJlbnQoKSA9PSAiPiIgJiYgc3RhdGUuY3VyU3RhdGUuY29udGV4dCkgewogICAgICAgICAgaWYgKC9ec2NyaXB0JC9pLnRlc3Qoc3RhdGUuY3VyU3RhdGUuY29udGV4dC50YWdOYW1lKSkgewogICAgICAgICAgICBzdGF0ZS5jdXJNb2RlID0ganNNb2RlOwogICAgICAgICAgICBzdGF0ZS5jdXJTdGF0ZSA9IGpzTW9kZS5zdGFydFN0YXRlKGh0bWxNb2RlLmluZGVudChzdGF0ZS5jdXJTdGF0ZSwgIiIpKTsKICAgICAgICAgICAgc3RhdGUuY3VyQ2xvc2UgPSAvXjxcL1xzKnNjcmlwdFxzKj4vaTsKCQkJc3RhdGUubW9kZSA9ICAnamF2YXNjcmlwdCc7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmICgvXnN0eWxlJC9pLnRlc3Qoc3RhdGUuY3VyU3RhdGUuY29udGV4dC50YWdOYW1lKSkgewogICAgICAgICAgICBzdGF0ZS5jdXJNb2RlID0gY3NzTW9kZTsKICAgICAgICAgICAgc3RhdGUuY3VyU3RhdGUgPSBjc3NNb2RlLnN0YXJ0U3RhdGUoaHRtbE1vZGUuaW5kZW50KHN0YXRlLmN1clN0YXRlLCAiIikpOwogICAgICAgICAgICBzdGF0ZS5jdXJDbG9zZSA9ICAvXjxcL1xzKnN0eWxlXHMqPi9pOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gICdjc3MnOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gc3R5bGU7CiAgICAgIH0KICAgICAgZWxzZSBpZiAoc3RyZWFtLm1hdGNoKHN0YXRlLmN1ckNsb3NlLCBmYWxzZSkpIHsKICAgICAgICBzdGF0ZS5jdXJNb2RlID0gaHRtbE1vZGU7CiAgICAgICAgc3RhdGUuY3VyU3RhdGUgPSBzdGF0ZS5odG1sOwogICAgICAgIHN0YXRlLmN1ckNsb3NlID0gbnVsbDsKCQlzdGF0ZS5tb2RlID0gICdodG1sJzsKICAgICAgICByZXR1cm4gZGlzcGF0Y2goc3RyZWFtLCBzdGF0ZSk7CiAgICAgIH0KICAgICAgZWxzZSByZXR1cm4gc3RhdGUuY3VyTW9kZS50b2tlbihzdHJlYW0sIHN0YXRlLmN1clN0YXRlKTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICBzdGFydFN0YXRlOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgaHRtbCA9IGh0bWxNb2RlLnN0YXJ0U3RhdGUoKTsKICAgICAgICByZXR1cm4ge2h0bWw6IGh0bWwsCiAgICAgICAgICAgICAgICBwaHA6IHBocE1vZGUuc3RhcnRTdGF0ZSgpLAogICAgICAgICAgICAgICAgY3VyTW9kZToJcGFyc2VyQ29uZmlnLnN0YXJ0T3BlbiA/IHBocE1vZGUgOiBodG1sTW9kZSwKICAgICAgICAgICAgICAgIGN1clN0YXRlOglwYXJzZXJDb25maWcuc3RhcnRPcGVuID8gcGhwTW9kZS5zdGFydFN0YXRlKCkgOiBodG1sLAogICAgICAgICAgICAgICAgY3VyQ2xvc2U6CXBhcnNlckNvbmZpZy5zdGFydE9wZW4gPyAvXlw/Pi8gOiBudWxsLAoJCQkJbW9kZToJCXBhcnNlckNvbmZpZy5zdGFydE9wZW4gPyAncGhwJyA6ICdodG1sJ30KICAgICAgfSwKCiAgICAgIGNvcHlTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgICB2YXIgaHRtbCA9IHN0YXRlLmh0bWwsIGh0bWxOZXcgPSBDb2RlTWlycm9yLmNvcHlTdGF0ZShodG1sTW9kZSwgaHRtbCksCiAgICAgICAgICAgIHBocCA9IHN0YXRlLnBocCwgcGhwTmV3ID0gQ29kZU1pcnJvci5jb3B5U3RhdGUocGhwTW9kZSwgcGhwKSwgY3VyOwogICAgICAgIGlmIChzdGF0ZS5jdXJTdGF0ZSA9PSBodG1sKSBjdXIgPSBodG1sTmV3OwogICAgICAgIGVsc2UgaWYgKHN0YXRlLmN1clN0YXRlID09IHBocCkgY3VyID0gcGhwTmV3OwogICAgICAgIGVsc2UgY3VyID0gQ29kZU1pcnJvci5jb3B5U3RhdGUoc3RhdGUuY3VyTW9kZSwgc3RhdGUuY3VyU3RhdGUpOwogICAgICAgIHJldHVybiB7aHRtbDogaHRtbE5ldywgcGhwOiBwaHBOZXcsIGN1ck1vZGU6IHN0YXRlLmN1ck1vZGUsIGN1clN0YXRlOiBjdXIsIGN1ckNsb3NlOiBzdGF0ZS5jdXJDbG9zZX07CiAgICAgIH0sCgogICAgICB0b2tlbjogZGlzcGF0Y2gsCgogICAgICBpbmRlbnQ6IGZ1bmN0aW9uKHN0YXRlLCB0ZXh0QWZ0ZXIpIHsKICAgICAgICBpZiAoKHN0YXRlLmN1ck1vZGUgIT0gcGhwTW9kZSAmJiAvXlxzKjxcLy8udGVzdCh0ZXh0QWZ0ZXIpKSB8fAogICAgICAgICAgICAoc3RhdGUuY3VyTW9kZSA9PSBwaHBNb2RlICYmIC9eXD8+Ly50ZXN0KHRleHRBZnRlcikpKQogICAgICAgICAgcmV0dXJuIGh0bWxNb2RlLmluZGVudChzdGF0ZS5odG1sLCB0ZXh0QWZ0ZXIpOwogICAgICAgIHJldHVybiBzdGF0ZS5jdXJNb2RlLmluZGVudChzdGF0ZS5jdXJTdGF0ZSwgdGV4dEFmdGVyKTsKICAgICAgfSwKCiAgICAgIGVsZWN0cmljQ2hhcnM6ICIve306IgogICAgfQogIH0pOwogIENvZGVNaXJyb3IuZGVmaW5lTUlNRSgiYXBwbGljYXRpb24veC1odHRwZC1waHAiLCAicGhwIik7CiAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocC1vcGVuIiwge25hbWU6ICJwaHAiLCBzdGFydE9wZW46IHRydWV9KTsKICBDb2RlTWlycm9yLmRlZmluZU1JTUUoInRleHQveC1waHAiLCBwaHBDb25maWcpOwp9KSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/plsql/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/plsql/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogT3JhY2xlIFBML1NRTCBtb2RlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vbGliL2NvZGVtaXJyb3IuY3NzIj4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9saWIvY29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0icGxzcWwuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JvcmRlcjogMnB4IGluc2V0ICNkZWU7fTwvc3R5bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGgxPkNvZGVNaXJyb3IgMjogT3JhY2xlIFBML1NRTCBtb2RlPC9oMT4KCjxmb3JtPjx0ZXh0YXJlYSBpZD0iY29kZSIgbmFtZT0iY29kZSI+Ci0tIE9yYWNsZSBQTC9TUUwgQ29kZSBEZW1vCi8qCiAgIGJhc2VkIG9uIGMtbGlrZSBtb2RlLCBhZGFwdGVkIHRvIFBML1NRTCBieSBQZXRlciBSYWdhbml0c2NoICggaHR0cDovL3d3dy5vcmFjbGUtYW5kLWFwZXguY29tLyApCiAgIEFwcmlsIDIwMTEKKi8KREVDTEFSRQogICAgdklkeCAgICBOVU1CRVI7CiAgICB2U3RyaW5nIFZBUkNIQVIyKDEwMCk7CiAgICBjVGV4dCAgIENPTlNUQU5UIFZBUkNIQVIyKDEwMCkgOj0gJ1RoYXQnJ3MgaXQhIEhhdmUgZnVuIHdpdGggQ29kZU1pcnJvciAyJzsKQkVHSU4KICAgIHZJZHggOj0gMDsKICAgIC0tCiAgICBGT1IgckRBVEEgSU4KICAgICAgKCBTRUxFQ1QgKgogICAgICAgICAgRlJPTSBFTVAKICAgICAgICAgT1JERVIgQlkgRU1QTk8KICAgICAgKQogICAgTE9PUAogICAgICAgIHZJZHggICAgOj0gdklkeCArIDE7CiAgICAgICAgdlN0cmluZyA6PSByREFUQS5FTVBOTyB8fCAnIC0gJyB8fCByREFUQS5FTkFNRTsKICAgICAgICAtLQogICAgICAgIFVQREFURSBFTVAKICAgICAgICAgICBTRVQgU0FMICAgPSBTQUwgKiAxMDEvMTAwCiAgICAgICAgIFdIRVJFIEVNUE5PID0gckRBVEEuRU1QTk8KICAgICAgICA7CiAgICBFTkQgTE9PUDsKICAgIC0tCiAgICBTWVMuREJNU19PVVRQVVQuUHV0X0xpbmUgKGNUZXh0KTsKRU5EOwotLQo8L3RleHRhcmVhPjwvZm9ybT4KCiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwgewogICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAogICAgICAgIG1hdGNoQnJhY2tldHM6IHRydWUsCiAgICAgICAgaW5kZW50VW5pdDogNCwKICAgICAgICBtb2RlOiAidGV4dC94LXBsc3FsIgogICAgICB9KTsKICAgIDwvc2NyaXB0PgoKICAgIDxwPgogICAgICAgIFNpbXBsZSBtb2RlIHRoYXQgaGFuZGxlcyBPcmFjbGUgUEwvU1FMIGxhbmd1YWdlIChhbmQgT3JhY2xlIFNRTCwgb2YgY291cnNlKS4KICAgIDwvcD4KCiAgICA8cD48c3Ryb25nPk1JTUUgdHlwZSBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT50ZXh0L3gtcGxzcWw8L2NvZGU+CiAgICAoUExTUUwgY29kZSkKPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/plsql/plsql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJwbHNxbCIsIGZ1bmN0aW9uKGNvbmZpZywgcGFyc2VyQ29uZmlnKSB7CiAgdmFyIGluZGVudFVuaXQgICAgICAgPSBjb25maWcuaW5kZW50VW5pdCwKICAgICAga2V5d29yZHMgICAgICAgICA9IHBhcnNlckNvbmZpZy5rZXl3b3JkcywKICAgICAgZnVuY3Rpb25zICAgICAgICA9IHBhcnNlckNvbmZpZy5mdW5jdGlvbnMsCiAgICAgIHR5cGVzICAgICAgICAgICAgPSBwYXJzZXJDb25maWcudHlwZXMsCiAgICAgIHNxbHBsdXMgICAgICAgICAgPSBwYXJzZXJDb25maWcuc3FscGx1cywKICAgICAgbXVsdGlMaW5lU3RyaW5ncyA9IHBhcnNlckNvbmZpZy5tdWx0aUxpbmVTdHJpbmdzOwogIHZhciBpc09wZXJhdG9yQ2hhciAgID0gL1srXC0qJiU9PD4hPzpcL3xdLzsKICBmdW5jdGlvbiBjaGFpbihzdHJlYW0sIHN0YXRlLCBmKSB7CiAgICBzdGF0ZS50b2tlbml6ZSA9IGY7CiAgICByZXR1cm4gZihzdHJlYW0sIHN0YXRlKTsKICB9CgogIHZhciB0eXBlOwogIGZ1bmN0aW9uIHJldCh0cCwgc3R5bGUpIHsKICAgIHR5cGUgPSB0cDsKICAgIHJldHVybiBzdHlsZTsKICB9CgogIGZ1bmN0aW9uIHRva2VuQmFzZShzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgY2ggPSBzdHJlYW0ubmV4dCgpOwogICAgLy8gc3RhcnQgb2Ygc3RyaW5nPwogICAgaWYgKGNoID09ICciJyB8fCBjaCA9PSAiJyIpCiAgICAgIHJldHVybiBjaGFpbihzdHJlYW0sIHN0YXRlLCB0b2tlblN0cmluZyhjaCkpOwogICAgLy8gaXMgaXQgb25lIG9mIHRoZSBzcGVjaWFsIHNpZ25zIFtde30oKS4sOz8gU2VwZXJhdG9yPwogICAgZWxzZSBpZiAoL1tcW1xde31cKFwpLDtcLl0vLnRlc3QoY2gpKQogICAgICByZXR1cm4gcmV0KGNoKTsKICAgIC8vIHN0YXJ0IG9mIGEgbnVtYmVyIHZhbHVlPwogICAgZWxzZSBpZiAoL1xkLy50ZXN0KGNoKSkgewogICAgICBzdHJlYW0uZWF0V2hpbGUoL1tcd1wuXS8pOwogICAgICByZXR1cm4gcmV0KCJudW1iZXIiLCAibnVtYmVyIik7CiAgICB9CiAgICAvLyBtdWx0aSBsaW5lIGNvbW1lbnQgb3Igc2ltcGxlIG9wZXJhdG9yPwogICAgZWxzZSBpZiAoY2ggPT0gIi8iKSB7CiAgICAgIGlmIChzdHJlYW0uZWF0KCIqIikpIHsKICAgICAgICByZXR1cm4gY2hhaW4oc3RyZWFtLCBzdGF0ZSwgdG9rZW5Db21tZW50KTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzdHJlYW0uZWF0V2hpbGUoaXNPcGVyYXRvckNoYXIpOwogICAgICAgIHJldHVybiByZXQoIm9wZXJhdG9yIiwgIm9wZXJhdG9yIik7CiAgICAgIH0KICAgIH0KICAgIC8vIHNpbmdsZSBsaW5lIGNvbW1lbnQgb3Igc2ltcGxlIG9wZXJhdG9yPwogICAgZWxzZSBpZiAoY2ggPT0gIi0iKSB7CiAgICAgIGlmIChzdHJlYW0uZWF0KCItIikpIHsKICAgICAgICBzdHJlYW0uc2tpcFRvRW5kKCk7CiAgICAgICAgcmV0dXJuIHJldCgiY29tbWVudCIsICJjb21tZW50Iik7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgc3RyZWFtLmVhdFdoaWxlKGlzT3BlcmF0b3JDaGFyKTsKICAgICAgICByZXR1cm4gcmV0KCJvcGVyYXRvciIsICJvcGVyYXRvciIpOwogICAgICB9CiAgICB9CiAgICAvLyBwbC9zcWwgdmFyaWFibGU/CiAgICBlbHNlIGlmIChjaCA9PSAiQCIgfHwgY2ggPT0gIiQiKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW1x3XGRcJF9dLyk7CiAgICAgIHJldHVybiByZXQoIndvcmQiLCAidmFyaWFibGUiKTsKICAgIH0KICAgIC8vIGlzIGl0IGEgb3BlcmF0b3I/CiAgICBlbHNlIGlmIChpc09wZXJhdG9yQ2hhci50ZXN0KGNoKSkgewogICAgICBzdHJlYW0uZWF0V2hpbGUoaXNPcGVyYXRvckNoYXIpOwogICAgICByZXR1cm4gcmV0KCJvcGVyYXRvciIsICJvcGVyYXRvciIpOwogICAgfQogICAgZWxzZSB7CiAgICAgIC8vIGdldCB0aGUgd2hvbGUgd29yZAogICAgICBzdHJlYW0uZWF0V2hpbGUoL1tcd1wkX10vKTsKICAgICAgLy8gaXMgaXQgb25lIG9mIHRoZSBsaXN0ZWQga2V5d29yZHM/CiAgICAgIGlmIChrZXl3b3JkcyAmJiBrZXl3b3Jkcy5wcm9wZXJ0eUlzRW51bWVyYWJsZShzdHJlYW0uY3VycmVudCgpLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcmV0KCJrZXl3b3JkIiwgImtleXdvcmQiKTsKICAgICAgLy8gaXMgaXQgb25lIG9mIHRoZSBsaXN0ZWQgZnVuY3Rpb25zPwogICAgICBpZiAoZnVuY3Rpb25zICYmIGZ1bmN0aW9ucy5wcm9wZXJ0eUlzRW51bWVyYWJsZShzdHJlYW0uY3VycmVudCgpLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcmV0KCJrZXl3b3JkIiwgImJ1aWx0aW4iKTsKICAgICAgLy8gaXMgaXQgb25lIG9mIHRoZSBsaXN0ZWQgdHlwZXM/CiAgICAgIGlmICh0eXBlcyAmJiB0eXBlcy5wcm9wZXJ0eUlzRW51bWVyYWJsZShzdHJlYW0uY3VycmVudCgpLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcmV0KCJrZXl3b3JkIiwgInZhcmlhYmxlLTIiKTsKICAgICAgLy8gaXMgaXQgb25lIG9mIHRoZSBsaXN0ZWQgc3FscGx1cyBrZXl3b3Jkcz8KICAgICAgaWYgKHNxbHBsdXMgJiYgc3FscGx1cy5wcm9wZXJ0eUlzRW51bWVyYWJsZShzdHJlYW0uY3VycmVudCgpLnRvTG93ZXJDYXNlKCkpKSByZXR1cm4gcmV0KCJrZXl3b3JkIiwgInZhcmlhYmxlLTMiKTsKICAgICAgLy8gZGVmYXVsdDoganVzdCBhICJ3b3JkIgogICAgICByZXR1cm4gcmV0KCJ3b3JkIiwgInBsc3FsLXdvcmQiKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHRva2VuU3RyaW5nKHF1b3RlKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICB2YXIgZXNjYXBlZCA9IGZhbHNlLCBuZXh0LCBlbmQgPSBmYWxzZTsKICAgICAgd2hpbGUgKChuZXh0ID0gc3RyZWFtLm5leHQoKSkgIT0gbnVsbCkgewogICAgICAgIGlmIChuZXh0ID09IHF1b3RlICYmICFlc2NhcGVkKSB7ZW5kID0gdHJ1ZTsgYnJlYWs7fQogICAgICAgIGVzY2FwZWQgPSAhZXNjYXBlZCAmJiBuZXh0ID09ICJcXCI7CiAgICAgIH0KICAgICAgaWYgKGVuZCB8fCAhKGVzY2FwZWQgfHwgbXVsdGlMaW5lU3RyaW5ncykpCiAgICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkJhc2U7CiAgICAgIHJldHVybiByZXQoInN0cmluZyIsICJwbHNxbC1zdHJpbmciKTsKICAgIH07CiAgfQoKICBmdW5jdGlvbiB0b2tlbkNvbW1lbnQoc3RyZWFtLCBzdGF0ZSkgewogICAgdmFyIG1heWJlRW5kID0gZmFsc2UsIGNoOwogICAgd2hpbGUgKGNoID0gc3RyZWFtLm5leHQoKSkgewogICAgICBpZiAoY2ggPT0gIi8iICYmIG1heWJlRW5kKSB7CiAgICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkJhc2U7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgbWF5YmVFbmQgPSAoY2ggPT0gIioiKTsKICAgIH0KICAgIHJldHVybiByZXQoImNvbW1lbnQiLCAicGxzcWwtY29tbWVudCIpOwogIH0KCiAgLy8gSW50ZXJmYWNlCgogIHJldHVybiB7CiAgICBzdGFydFN0YXRlOiBmdW5jdGlvbihiYXNlY29sdW1uKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgdG9rZW5pemU6IHRva2VuQmFzZSwKICAgICAgICBzdGFydE9mTGluZTogdHJ1ZQogICAgICB9OwogICAgfSwKCiAgICB0b2tlbjogZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICBpZiAoc3RyZWFtLmVhdFNwYWNlKCkpIHJldHVybiBudWxsOwogICAgICB2YXIgc3R5bGUgPSBzdGF0ZS50b2tlbml6ZShzdHJlYW0sIHN0YXRlKTsKICAgICAgcmV0dXJuIHN0eWxlOwogICAgfQogIH07Cn0pOwoKKGZ1bmN0aW9uKCkgewogIGZ1bmN0aW9uIGtleXdvcmRzKHN0cikgewogICAgdmFyIG9iaiA9IHt9LCB3b3JkcyA9IHN0ci5zcGxpdCgiICIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5ndGg7ICsraSkgb2JqW3dvcmRzW2ldXSA9IHRydWU7CiAgICByZXR1cm4gb2JqOwogIH0KICB2YXIgY0tleXdvcmRzID0gImFib3J0IGFjY2VwdCBhY2Nlc3MgYWRkIGFsbCBhbHRlciBhbmQgYW55IGFycmF5IGFycmF5bGVuIGFzIGFzYyBhc3NlcnQgYXNzaWduIGF0IGF0dHJpYnV0ZXMgYXVkaXQgIiArCiAgICAgICAgImF1dGhvcml6YXRpb24gYXZnICIgKwogICAgICAgICJiYXNlX3RhYmxlIGJlZ2luIGJldHdlZW4gYmluYXJ5X2ludGVnZXIgYm9keSBib29sZWFuIGJ5ICIgKwogICAgICAgICJjYXNlIGNhc3QgY2hhciBjaGFyX2Jhc2UgY2hlY2sgY2xvc2UgY2x1c3RlciBjbHVzdGVycyBjb2xhdXRoIGNvbHVtbiBjb21tZW50IGNvbW1pdCBjb21wcmVzcyBjb25uZWN0ICIgKwogICAgICAgICJjb25uZWN0ZWQgY29uc3RhbnQgY29uc3RyYWludCBjcmFzaCBjcmVhdGUgY3VycmVudCBjdXJydmFsIGN1cnNvciAiICsKICAgICAgICAiZGF0YV9iYXNlIGRhdGFiYXNlIGRhdGUgZGJhIGRlYWxsb2NhdGUgZGVidWdvZmYgZGVidWdvbiBkZWNpbWFsIGRlY2xhcmUgZGVmYXVsdCBkZWZpbml0aW9uIGRlbGF5IGRlbGV0ZSAiICsKICAgICAgICAiZGVzYyBkaWdpdHMgZGlzcG9zZSBkaXN0aW5jdCBkbyBkcm9wICIgKwogICAgICAgICJlbHNlIGVsc2lmIGVuYWJsZSBlbmQgZW50cnkgZXNjYXBlIGV4Y2VwdGlvbiBleGNlcHRpb25faW5pdCBleGNoYW5nZSBleGNsdXNpdmUgZXhpc3RzIGV4aXQgZXh0ZXJuYWwgIiArCiAgICAgICAgImZhc3QgZmV0Y2ggZmlsZSBmb3IgZm9yY2UgZm9ybSBmcm9tIGZ1bmN0aW9uICIgKwogICAgICAgICJnZW5lcmljIGdvdG8gZ3JhbnQgZ3JvdXAgIiArCiAgICAgICAgImhhdmluZyAiICsKICAgICAgICAiaWRlbnRpZmllZCBpZiBpbW1lZGlhdGUgaW4gaW5jcmVtZW50IGluZGV4IGluZGV4ZXMgaW5kaWNhdG9yIGluaXRpYWwgaW5pdHJhbnMgaW5zZXJ0IGludGVyZmFjZSBpbnRlcnNlY3QgIiArCiAgICAgICAgImludG8gaXMgIiArCiAgICAgICAgImtleSAiICsKICAgICAgICAibGV2ZWwgbGlicmFyeSBsaWtlIGxpbWl0ZWQgbG9jYWwgbG9jayBsb2cgbG9nZ2luZyBsb25nIGxvb3AgIiArCiAgICAgICAgIm1hc3RlciBtYXhleHRlbnRzIG1heHRyYW5zIG1lbWJlciBtaW5leHRlbnRzIG1pbnVzIG1pc2xhYmVsIG1vZGUgbW9kaWZ5IG11bHRpc2V0ICIgKwogICAgICAgICJuZXcgbmV4dCBubyBub2F1ZGl0IG5vY29tcHJlc3Mgbm9sb2dnaW5nIG5vcGFyYWxsZWwgbm90IG5vd2FpdCBudW1iZXJfYmFzZSAiICsKICAgICAgICAib2JqZWN0IG9mIG9mZiBvZmZsaW5lIG9uIG9ubGluZSBvbmx5IG9wZW4gb3B0aW9uIG9yIG9yZGVyIG91dCAiICsKICAgICAgICAicGFja2FnZSBwYXJhbGxlbCBwYXJ0aXRpb24gcGN0ZnJlZSBwY3RpbmNyZWFzZSBwY3R1c2VkIHBsc19pbnRlZ2VyIHBvc2l0aXZlIHBvc2l0aXZlbiBwcmFnbWEgcHJpbWFyeSBwcmlvciAiICsKICAgICAgICAicHJpdmF0ZSBwcml2aWxlZ2VzIHByb2NlZHVyZSBwdWJsaWMgIiArCiAgICAgICAgInJhaXNlIHJhbmdlIHJhdyByZWFkIHJlYnVpbGQgcmVjb3JkIHJlZiByZWZlcmVuY2VzIHJlZnJlc2ggcmVsZWFzZSByZW5hbWUgcmVwbGFjZSByZXNvdXJjZSByZXN0cmljdCByZXR1cm4gIiArCiAgICAgICAgInJldHVybmluZyByZXZlcnNlIHJldm9rZSByb2xsYmFjayByb3cgcm93aWQgcm93bGFiZWwgcm93bnVtIHJvd3MgcnVuICIgKwogICAgICAgICJzYXZlcG9pbnQgc2NoZW1hIHNlZ21lbnQgc2VsZWN0IHNlcGFyYXRlIHNlc3Npb24gc2V0IHNoYXJlIHNuYXBzaG90IHNvbWUgc3BhY2Ugc3BsaXQgc3FsIHN0YXJ0IHN0YXRlbWVudCAiICsKICAgICAgICAic3RvcmFnZSBzdWJ0eXBlIHN1Y2Nlc3NmdWwgc3lub255bSAiICsKICAgICAgICAidGFiYXV0aCB0YWJsZSB0YWJsZXMgdGFibGVzcGFjZSB0YXNrIHRlcm1pbmF0ZSB0aGVuIHRvIHRyaWdnZXIgdHJ1bmNhdGUgdHlwZSAiICsKICAgICAgICAidW5pb24gdW5pcXVlIHVubGltaXRlZCB1bnJlY292ZXJhYmxlIHVudXNhYmxlIHVwZGF0ZSB1c2UgdXNpbmcgIiArCiAgICAgICAgInZhbGlkYXRlIHZhbHVlIHZhbHVlcyB2YXJpYWJsZSB2aWV3IHZpZXdzICIgKwogICAgICAgICJ3aGVuIHdoZW5ldmVyIHdoZXJlIHdoaWxlIHdpdGggd29yayI7CgogIHZhciBjRnVuY3Rpb25zID0gImFicyBhY29zIGFkZF9tb250aHMgYXNjaWkgYXNpbiBhdGFuIGF0YW4yIGF2ZXJhZ2UgIiArCiAgICAgICAgImJmaWxlbmFtZSAiICsKICAgICAgICAiY2VpbCBjaGFydG9yb3dpZCBjaHIgY29uY2F0IGNvbnZlcnQgY29zIGNvc2ggY291bnQgIiArCiAgICAgICAgImRlY29kZSBkZXJlZiBkdWFsIGR1bXAgZHVwX3ZhbF9vbl9pbmRleCAiICsKICAgICAgICAiZW1wdHkgZXJyb3IgZXhwICIgKwogICAgICAgICJmYWxzZSBmbG9vciBmb3VuZCAiICsKICAgICAgICAiZ2xiIGdyZWF0ZXN0ICIgKwogICAgICAgICJoZXh0b3JhdyAiICsKICAgICAgICAiaW5pdGNhcCBpbnN0ciBpbnN0cmIgaXNvcGVuICIgKwogICAgICAgICJsYXN0X2RheSBsZWFzdCBsZW5naHQgbGVuZ2h0YiBsbiBsb3dlciBscGFkIGx0cmltIGx1YiAiICsKICAgICAgICAibWFrZV9yZWYgbWF4IG1pbiBtb2QgbW9udGhzX2JldHdlZW4gIiArCiAgICAgICAgIm5ld190aW1lIG5leHRfZGF5IG5leHR2YWwgbmxzX2NoYXJzZXRfZGVjbF9sZW4gbmxzX2NoYXJzZXRfaWQgbmxzX2NoYXJzZXRfbmFtZSBubHNfaW5pdGNhcCBubHNfbG93ZXIgIiArCiAgICAgICAgIm5sc19zb3J0IG5sc191cHBlciBubHNzb3J0IG5vX2RhdGFfZm91bmQgbm90Zm91bmQgbnVsbCBudmwgIiArCiAgICAgICAgIm90aGVycyAiICsKICAgICAgICAicG93ZXIgIiArCiAgICAgICAgInJhd3RvaGV4IHJlZnRvaGV4IHJvdW5kIHJvd2NvdW50IHJvd2lkdG9jaGFyIHJwYWQgcnRyaW0gIiArCiAgICAgICAgInNpZ24gc2luIHNpbmggc291bmRleCBzcWxjb2RlIHNxbGVycm0gc3FydCBzdGRkZXYgc3Vic3RyIHN1YnN0cmIgc3VtIHN5c2RhdGUgIiArCiAgICAgICAgInRhbiB0YW5oIHRvX2NoYXIgdG9fZGF0ZSB0b19sYWJlbCB0b19tdWx0aV9ieXRlIHRvX251bWJlciB0b19zaW5nbGVfYnl0ZSB0cmFuc2xhdGUgdHJ1ZSB0cnVuYyAiICsKICAgICAgICAidWlkIHVwcGVyIHVzZXIgdXNlcmVudiAiICsKICAgICAgICAidmFyaWFuY2UgdnNpemUiOwoKICB2YXIgY1R5cGVzID0gImJmaWxlIGJsb2IgIiArCiAgICAgICAgImNoYXJhY3RlciBjbG9iICIgKwogICAgICAgICJkZWMgIiArCiAgICAgICAgImZsb2F0ICIgKwogICAgICAgICJpbnQgaW50ZWdlciAiICsKICAgICAgICAibWxzbGFiZWwgIiArCiAgICAgICAgIm5hdHVyYWwgbmF0dXJhbG4gbmNoYXIgbmNsb2IgbnVtYmVyIG51bWVyaWMgbnZhcmNoYXIyICIgKwogICAgICAgICJyZWFsIHJvd3R5cGUgIiArCiAgICAgICAgInNpZ250eXBlIHNtYWxsaW50IHN0cmluZyAiICsKICAgICAgICAidmFyY2hhciB2YXJjaGFyMiI7CgogIHZhciBjU3FscGx1cyA9ICJhcHBpbmZvIGFycmF5c2l6ZSBhdXRvY29tbWl0IGF1dG9wcmludCBhdXRvcmVjb3ZlcnkgYXV0b3RyYWNlICIgKwogICAgICAgICJibG9ja3Rlcm1pbmF0b3IgYnJlYWsgYnRpdGxlICIgKwogICAgICAgICJjbWRzZXAgY29sc2VwIGNvbXBhdGliaWxpdHkgY29tcHV0ZSBjb25jYXQgY29weWNvbW1pdCBjb3B5dHlwZWNoZWNrICIgKwogICAgICAgICJkZWZpbmUgZGVzY3JpYmUgIiArCiAgICAgICAgImVjaG8gZWRpdGZpbGUgZW1iZWRkZWQgZXNjYXBlIGV4ZWMgZXhlY3V0ZSAiICsKICAgICAgICAiZmVlZGJhY2sgZmxhZ2dlciBmbHVzaCAiICsKICAgICAgICAiaGVhZGluZyBoZWFkc2VwICIgKwogICAgICAgICJpbnN0YW5jZSAiICsKICAgICAgICAibGluZXNpemUgbG5vIGxvYm9mZnNldCBsb2dzb3VyY2UgbG9uZyBsb25nY2h1bmtzaXplICIgKwogICAgICAgICJtYXJrdXAgIiArCiAgICAgICAgIm5hdGl2ZSBuZXdwYWdlIG51bWZvcm1hdCBudW13aWR0aCAiICsKICAgICAgICAicGFnZXNpemUgcGF1c2UgcG5vICIgKwogICAgICAgICJyZWNzZXAgcmVjc2VwY2hhciByZWxlYXNlIHJlcGZvb3RlciByZXBoZWFkZXIgIiArCiAgICAgICAgInNlcnZlcm91dHB1dCBzaGlmdGlub3V0IHNob3cgc2hvd21vZGUgc2l6ZSBzcG9vbCBzcWxibGFua2xpbmVzIHNxbGNhc2Ugc3FsY29kZSBzcWxjb250aW51ZSBzcWxudW1iZXIgIiArCiAgICAgICAgInNxbHBsdXNjb21wYXRpYmlsaXR5IHNxbHByZWZpeCBzcWxwcm9tcHQgc3FsdGVybWluYXRvciBzdWZmaXggIiArCiAgICAgICAgInRhYiB0ZXJtIHRlcm1vdXQgdGltZSB0aW1pbmcgdHJpbW91dCB0cmltc3Bvb2wgdHRpdGxlICIgKwogICAgICAgICJ1bmRlcmxpbmUgIiArCiAgICAgICAgInZlcmlmeSB2ZXJzaW9uICIgKwogICAgICAgICJ3cmFwIjsKCiAgQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ0ZXh0L3gtcGxzcWwiLCB7CiAgICBuYW1lOiAicGxzcWwiLAogICAga2V5d29yZHM6IGtleXdvcmRzKGNLZXl3b3JkcyksCiAgICBmdW5jdGlvbnM6IGtleXdvcmRzKGNGdW5jdGlvbnMpLAogICAgdHlwZXM6IGtleXdvcmRzKGNUeXBlcyksCiAgICBzcWxwbHVzOiBrZXl3b3JkcyhjU3FscGx1cykKICB9KTsKfSgpKTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/scheme/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/scheme/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogU2NoZW1lIG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJzY2hlbWUuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JhY2tncm91bmQ6ICNmOGY4Zjg7fTwvc3R5bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Nzcy9kb2NzLmNzcyI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGgxPkNvZGVNaXJyb3IgMjogU2NoZW1lIG1vZGU8L2gxPgogICAgPGZvcm0+PHRleHRhcmVhIGlkPSJjb2RlIiBuYW1lPSJjb2RlIj4KOyBTZWUgaWYgdGhlIGlucHV0IHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gc3ltYm9sLgooZGVmaW5lIChtYXRjaC1zeW1ib2wgaW5wdXQgcGF0dGVybikKICAoY29uZCAoKG51bGw/IChyZW1haW4gaW5wdXQpKSAjZikKCSgoZXF2PyAoY2FyIChyZW1haW4gaW5wdXQpKSBwYXR0ZXJuKSAoci1jZHIgaW5wdXQpKQoJKGVsc2UgI2YpKSkKCjsgQWxsb3cgdGhlIGlucHV0IHRvIHN0YXJ0IHdpdGggb25lIG9mIGEgbGlzdCBvZiBwYXR0ZXJucy4KKGRlZmluZSAobWF0Y2gtb3IgaW5wdXQgcGF0dGVybikKICAoY29uZCAoKG51bGw/IHBhdHRlcm4pICNmKQoJKChtYXRjaC1wYXR0ZXJuIGlucHV0IChjYXIgcGF0dGVybikpKQoJKGVsc2UgKG1hdGNoLW9yIGlucHV0IChjZHIgcGF0dGVybikpKSkpCgo7IEFsbG93IGEgc2VxdWVuY2Ugb2YgcGF0dGVybnMuCihkZWZpbmUgKG1hdGNoLXNlcSBpbnB1dCBwYXR0ZXJuKQogIChpZiAobnVsbD8gcGF0dGVybikKICAgICAgaW5wdXQKICAgICAgKGxldCAoKG1hdGNoIChtYXRjaC1wYXR0ZXJuIGlucHV0IChjYXIgcGF0dGVybikpKSkKCShpZiBtYXRjaCAobWF0Y2gtc2VxIG1hdGNoIChjZHIgcGF0dGVybikpICNmKSkpKQoKOyBNYXRjaCB3aXRoIHRoZSBwYXR0ZXJuIGJ1dCBubyBwcm9ibGVtIGlmIGl0IGRvZXMgbm90IG1hdGNoLgooZGVmaW5lIChtYXRjaC1vcHQgaW5wdXQgcGF0dGVybikKICAobGV0ICgobWF0Y2ggKG1hdGNoLXBhdHRlcm4gaW5wdXQgKGNhciBwYXR0ZXJuKSkpKQogICAgKGlmIG1hdGNoIG1hdGNoIGlucHV0KSkpCgo7IE1hdGNoIGFueXRoaW5nIChvdGhlciB0aGFuICcoKSksIHVudGlsIHBhdHRlcm4gaXMgZm91bmQuIFRoZSByYXRoZXIKOyBjbHVtc3kgZm9ybSBvZiByZXF1aXJpbmcgYW4gZW5kaW5nIHBhdHRlcm4gaXMgbmVlZGVkIHRvIGRlY2lkZSB3aGVyZQo7IHRoZSBlbmQgb2YgdGhlIG1hdGNoIGlzLiBJZiBub25lIGlzIGdpdmVuLCB0aGlzIHdpbGwgbWF0Y2ggdGhlIHJlc3QKOyBvZiB0aGUgc2VudGVuY2UuCihkZWZpbmUgKG1hdGNoLWFueSBpbnB1dCBwYXR0ZXJuKQogIChjb25kICgobnVsbD8gKHJlbWFpbiBpbnB1dCkpICNmKQoJKChudWxsPyBwYXR0ZXJuKSAoZi1jb25zIChyZW1haW4gaW5wdXQpIChjbGVhci1yZW1haW4gaW5wdXQpKSkKCShlbHNlCgkgKGxldCAoKGFjY3VtLWFueSAoY29sbGVjdG9yKSkpCgkgICAoZGVmaW5lIChtYXRjaC1wYXR0ZXJuLWFueSBpbnB1dCBwYXR0ZXJuKQoJICAgICAoY29uZCAoKG51bGw/IChyZW1haW4gaW5wdXQpKSAjZikKCQkgICAoZWxzZSAoYWNjdW0tYW55IChjYXIgKHJlbWFpbiBpbnB1dCkpKQoJCQkgKGNvbmQgKChtYXRjaC1wYXR0ZXJuIChyLWNkciBpbnB1dCkgcGF0dGVybikpCgkJCSAgICAgICAoZWxzZSAobWF0Y2gtcGF0dGVybi1hbnkgKHItY2RyIGlucHV0KSBwYXR0ZXJuKSkpKSkpCgkgICAobGV0ICgocmV0dmFsIChtYXRjaC1wYXR0ZXJuLWFueSBpbnB1dCAoY2FyIHBhdHRlcm4pKSkpCgkgICAgIChpZiByZXR2YWwKCQkgKGYtY29ucyAoYWNjdW0tYW55KSByZXR2YWwpCgkJICNmKSkpKSkpCjwvdGV4dGFyZWE+PC9mb3JtPgogICAgPHNjcmlwdD4KICAgICAgdmFyIGVkaXRvciA9IENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb2RlIiksIHt9KTsKICAgIDwvc2NyaXB0PgoKICAgIDxwPjxzdHJvbmc+TUlNRSB0eXBlcyBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT50ZXh0L3gtc2NoZW1lPC9jb2RlPi48L3A+CgogIDwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/scheme/scheme.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEF1dGhvcjogS29oIFppIEhhbiwgYmFzZWQgb24gaW1wbGVtZW50YXRpb24gYnkgS29oIFppIENodW4KICovCkNvZGVNaXJyb3IuZGVmaW5lTW9kZSgic2NoZW1lIiwgZnVuY3Rpb24gKGNvbmZpZywgbW9kZSkgewogICAgdmFyIG51bVJlZ2V4ID0gL1swLTldLzsKICAgIHZhciBCVUlMVElOID0gImJ1aWx0aW4iLCBDT01NRU5UID0gImNvbW1lbnQiLCBTVFJJTkcgPSAic3RyaW5nIiwKICAgICAgICBBVE9NID0gImF0b20iLCBOVU1CRVIgPSAibnVtYmVyIiwgQlJBQ0tFVCA9ICJicmFja2V0IjsKICAgIHZhciBJTkRFTlRfV09SRF9TS0lQID0gMiwgS0VZV09SRFNfU0tJUCA9IDE7CgogICAgZnVuY3Rpb24gbWFrZUtleXdvcmRzKHN0cikgewogICAgICAgIHZhciBvYmogPSB7fSwgd29yZHMgPSBzdHIuc3BsaXQoIiAiKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdvcmRzLmxlbmd0aDsgKytpKSBvYmpbd29yZHNbaV1dID0gdHJ1ZTsKICAgICAgICByZXR1cm4gb2JqOwogICAgfQogICAgdmFyIGtleXdvcmRzID0gbWFrZUtleXdvcmRzKCLOuyBjYXNlLWxhbWJkYSBjYWxsL2NjIGNsYXNzIGRlZmluZS1jbGFzcyBleGl0LWhhbmRsZXIgZmllbGQgaW1wb3J0IGluaGVyaXQgaW5pdC1maWVsZCBpbnRlcmZhY2UgbGV0Ki12YWx1ZXMgbGV0LXZhbHVlcyBsZXQvZWMgbWl4aW4gb3B0LWxhbWJkYSBvdmVycmlkZSBwcm90ZWN0IHByb3ZpZGUgcHVibGljIHJlbmFtZSByZXF1aXJlIHJlcXVpcmUtZm9yLXN5bnRheCBzeW50YXggc3ludGF4LWNhc2Ugc3ludGF4LWVycm9yIHVuaXQvc2lnIHVubGVzcyB3aGVuIHdpdGgtc3ludGF4IGFuZCBiZWdpbiBjYWxsLXdpdGgtY3VycmVudC1jb250aW51YXRpb24gY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlIGNhc2UgY29uZCBkZWZpbmUgZGVmaW5lLXN5bnRheCBkZWxheSBkbyBkeW5hbWljLXdpbmQgZWxzZSBmb3ItZWFjaCBpZiBsYW1iZGEgbGV0IGxldCogbGV0LXN5bnRheCBsZXRyZWMgbGV0cmVjLXN5bnRheCBtYXAgb3Igc3ludGF4LXJ1bGVzIGFicyBhY29zIGFuZ2xlIGFwcGVuZCBhcHBseSBhc2luIGFzc29jIGFzc3EgYXNzdiBhdGFuIGJvb2xlYW4/IGNhYXIgY2FkciBjYWxsLXdpdGgtaW5wdXQtZmlsZSBjYWxsLXdpdGgtb3V0cHV0LWZpbGUgY2FsbC13aXRoLXZhbHVlcyBjYXIgY2RkZGFyIGNkZGRkciBjZHIgY2VpbGluZyBjaGFyLT5pbnRlZ2VyIGNoYXItYWxwaGFiZXRpYz8gY2hhci1jaTw9PyBjaGFyLWNpPD8gY2hhci1jaT0/IGNoYXItY2k+PT8gY2hhci1jaT4/IGNoYXItZG93bmNhc2UgY2hhci1sb3dlci1jYXNlPyBjaGFyLW51bWVyaWM/IGNoYXItcmVhZHk/IGNoYXItdXBjYXNlIGNoYXItdXBwZXItY2FzZT8gY2hhci13aGl0ZXNwYWNlPyBjaGFyPD0/IGNoYXI8PyBjaGFyPT8gY2hhcj49PyBjaGFyPj8gY2hhcj8gY2xvc2UtaW5wdXQtcG9ydCBjbG9zZS1vdXRwdXQtcG9ydCBjb21wbGV4PyBjb25zIGNvcyBjdXJyZW50LWlucHV0LXBvcnQgY3VycmVudC1vdXRwdXQtcG9ydCBkZW5vbWluYXRvciBkaXNwbGF5IGVvZi1vYmplY3Q/IGVxPyBlcXVhbD8gZXF2PyBldmFsIGV2ZW4/IGV4YWN0LT5pbmV4YWN0IGV4YWN0PyBleHAgZXhwdCAjZiBmbG9vciBmb3JjZSBnY2QgaW1hZy1wYXJ0IGluZXhhY3QtPmV4YWN0IGluZXhhY3Q/IGlucHV0LXBvcnQ/IGludGVnZXItPmNoYXIgaW50ZWdlcj8gaW50ZXJhY3Rpb24tZW52aXJvbm1lbnQgbGNtIGxlbmd0aCBsaXN0IGxpc3QtPnN0cmluZyBsaXN0LT52ZWN0b3IgbGlzdC1yZWYgbGlzdC10YWlsIGxpc3Q/IGxvYWQgbG9nIG1hZ25pdHVkZSBtYWtlLXBvbGFyIG1ha2UtcmVjdGFuZ3VsYXIgbWFrZS1zdHJpbmcgbWFrZS12ZWN0b3IgbWF4IG1lbWJlciBtZW1xIG1lbXYgbWluIG1vZHVsbyBuZWdhdGl2ZT8gbmV3bGluZSBub3QgbnVsbC1lbnZpcm9ubWVudCBudWxsPyBudW1iZXItPnN0cmluZyBudW1iZXI/IG51bWVyYXRvciBvZGQ/IG9wZW4taW5wdXQtZmlsZSBvcGVuLW91dHB1dC1maWxlIG91dHB1dC1wb3J0PyBwYWlyPyBwZWVrLWNoYXIgcG9ydD8gcG9zaXRpdmU/IHByb2NlZHVyZT8gcXVhc2lxdW90ZSBxdW90ZSBxdW90aWVudCByYXRpb25hbD8gcmF0aW9uYWxpemUgcmVhZCByZWFkLWNoYXIgcmVhbC1wYXJ0IHJlYWw/IHJlbWFpbmRlciByZXZlcnNlIHJvdW5kIHNjaGVtZS1yZXBvcnQtZW52aXJvbm1lbnQgc2V0ISBzZXQtY2FyISBzZXQtY2RyISBzaW4gc3FydCBzdHJpbmcgc3RyaW5nLT5saXN0IHN0cmluZy0+bnVtYmVyIHN0cmluZy0+c3ltYm9sIHN0cmluZy1hcHBlbmQgc3RyaW5nLWNpPD0/IHN0cmluZy1jaTw/IHN0cmluZy1jaT0/IHN0cmluZy1jaT49PyBzdHJpbmctY2k+PyBzdHJpbmctY29weSBzdHJpbmctZmlsbCEgc3RyaW5nLWxlbmd0aCBzdHJpbmctcmVmIHN0cmluZy1zZXQhIHN0cmluZzw9PyBzdHJpbmc8PyBzdHJpbmc9PyBzdHJpbmc+PT8gc3RyaW5nPj8gc3RyaW5nPyBzdWJzdHJpbmcgc3ltYm9sLT5zdHJpbmcgc3ltYm9sPyAjdCB0YW4gdHJhbnNjcmlwdC1vZmYgdHJhbnNjcmlwdC1vbiB0cnVuY2F0ZSB2YWx1ZXMgdmVjdG9yIHZlY3Rvci0+bGlzdCB2ZWN0b3ItZmlsbCEgdmVjdG9yLWxlbmd0aCB2ZWN0b3ItcmVmIHZlY3Rvci1zZXQhIHdpdGgtaW5wdXQtZnJvbS1maWxlIHdpdGgtb3V0cHV0LXRvLWZpbGUgd3JpdGUgd3JpdGUtY2hhciB6ZXJvPyIpOwogICAgdmFyIGluZGVudEtleXMgPSBtYWtlS2V5d29yZHMoImRlZmluZSBsZXQgbGV0cmVjIGxldCogbGFtYmRhIGJlZ2luIik7CgogICAgZnVuY3Rpb24gc3RhdGVTdGFjayhpbmRlbnQsIHR5cGUsIHByZXYpIHsgLy8gcmVwcmVzZW50cyBhIHN0YXRlIHN0YWNrIG9iamVjdAogICAgICAgIHRoaXMuaW5kZW50ID0gaW5kZW50OwogICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgICAgdGhpcy5wcmV2ID0gcHJldjsKICAgIH0KICAgIGZ1bmN0aW9uIHB1c2hTdGFjayhzdGF0ZSwgaW5kZW50LCB0eXBlKSB7CiAgICAgICAgc3RhdGUuaW5kZW50U3RhY2sgPSBuZXcgc3RhdGVTdGFjayhpbmRlbnQsIHR5cGUsIHN0YXRlLmluZGVudFN0YWNrKTsKICAgIH0KICAgIGZ1bmN0aW9uIHBvcFN0YWNrKHN0YXRlKSB7CiAgICAgICAgc3RhdGUuaW5kZW50U3RhY2sgPSBzdGF0ZS5pbmRlbnRTdGFjay5wcmV2OwogICAgfQogICAgcmV0dXJuIHsKICAgICAgICBzdGFydFN0YXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBpbmRlbnRTdGFjazogbnVsbCwKICAgICAgICAgICAgICAgIGluZGVudGF0aW9uOiAwLAogICAgICAgICAgICAgICAgbW9kZTogZmFsc2UsCiAgICAgICAgICAgICAgICBzRXhwckNvbW1lbnQ6IGZhbHNlCiAgICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICB0b2tlbjogZnVuY3Rpb24gKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICAgICAgaWYgKHN0YXRlLmluZGVudFN0YWNrID09IG51bGwgJiYgc3RyZWFtLnNvbCgpKSB7CiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgaW5kZW50YXRpb24sIGJ1dCBvbmx5IGlmIGluZGVudFN0YWNrIGlzIGVtcHR5CiAgICAgICAgICAgICAgICBzdGF0ZS5pbmRlbnRhdGlvbiA9IHN0cmVhbS5pbmRlbnRhdGlvbigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHNraXAgc3BhY2VzCiAgICAgICAgICAgIGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHJldHVyblR5cGUgPSBudWxsOwoKICAgICAgICAgICAgc3dpdGNoKHN0YXRlLm1vZGUpewogICAgICAgICAgICAgICAgY2FzZSAic3RyaW5nIjogLy8gbXVsdGktbGluZSBzdHJpbmcgcGFyc2luZyBtb2RlCiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQsIGVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKG5leHQgPSBzdHJlYW0ubmV4dCgpKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ID09ICJcIiIgJiYgIWVzY2FwZWQpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWQgJiYgbmV4dCA9PSAiXFwiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gU1RSSU5HOyAvLyBjb250aW51ZSBvbiBpbiBzY2hlbWUtc3RyaW5nIG1vZGUKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImNvbW1lbnQiOiAvLyBjb21tZW50IHBhcnNpbmcgbW9kZQogICAgICAgICAgICAgICAgICAgIHZhciBuZXh0LCBtYXliZUVuZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIHdoaWxlICgobmV4dCA9IHN0cmVhbS5uZXh0KCkpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gIiMiICYmIG1heWJlRW5kKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVFbmQgPSAobmV4dCA9PSAifCIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gQ09NTUVOVDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInMtZXhwci1jb21tZW50IjogLy8gcy1leHByIGNvbW1lbnRpbmcgbW9kZQogICAgICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihzdHJlYW0ucGVlaygpID09ICIoIiB8fCBzdHJlYW0ucGVlaygpID09ICJbIil7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IHN0YXJ0IHNjaGVtZSBzLWV4cHIgY29tbWVudGluZyBtb2RlCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNFeHByQ29tbWVudCA9IDA7CiAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIG5vdCB3ZSBqdXN0IGNvbW1lbnQgdGhlIGVudGlyZSBvZiB0aGUgbmV4dCB0b2tlbgogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uZWF0V2hpbGUoL1teL3NdLyk7IC8vIGVhdCBub24gc3BhY2VzCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGUgPSBDT01NRU5UOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZWZhdWx0OiAvLyBkZWZhdWx0IHBhcnNpbmcgbW9kZQogICAgICAgICAgICAgICAgICAgIHZhciBjaCA9IHN0cmVhbS5uZXh0KCk7CgogICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAiXCIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLm1vZGUgPSAic3RyaW5nIjsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IFNUUklORzsKCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAiJyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IEFUT007CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnIycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmVhbS5lYXQoInwiKSkgeyAgICAgLy8gTXVsdGktbGluZSBjb21tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gImNvbW1lbnQiOyAvLyB0b2dnbGUgdG8gY29tbWVudCBtb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gQ09NTUVOVDsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJlYW0uZWF0KC9bdGZdLykpIHsgICAvLyAjdC8jZiAoYXRvbSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblR5cGUgPSBBVE9NOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbS5lYXQoJzsnKSkgeyAgICAvLyBTLUV4cHIgY29tbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubW9kZSA9ICJzLWV4cHItY29tbWVudCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gQ09NTUVOVDsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICI7IikgeyAvLyBjb21tZW50CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsgLy8gcmVzdCBvZiB0aGUgbGluZSBpcyBhIGNvbW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IENPTU1FTlQ7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAiLSIpewoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RyZWFtLmVhdCgvXGQvKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXC8wLTldLyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gTlVNQkVSOwogICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtUmVnZXguZXhlYyhjaCkgIT0gbnVsbCkgeyAvLyBudW1iZXJzCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW1wvMC05XS8pOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gTlVNQkVSOwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICIoIiB8fCBjaCA9PSAiWyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGtleVdvcmQgPSAnJzsgdmFyIGluZGVudFRlbXAgPSBzdHJlYW0uY29sdW1uKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICAgICAgICBFaXRoZXIKICAgICAgICAgICAgICAgICAgICAgICAgKGluZGVudC13b3JkIC4uCiAgICAgICAgICAgICAgICAgICAgICAgIChub24taW5kZW50LXdvcmQgLi4KICAgICAgICAgICAgICAgICAgICAgICAgKDtzb21ldGhpbmcgZWxzZSwgYnJhY2tldCwgZXRjLgogICAgICAgICAgICAgICAgICAgICAgICAqLwoKICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChsZXR0ZXIgPSBzdHJlYW0uZWF0KC9bXlxzXChcW1w7XClcXV0vKSkgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5V29yZCArPSBsZXR0ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXlXb3JkLmxlbmd0aCA+IDAgJiYgaW5kZW50S2V5cy5wcm9wZXJ0eUlzRW51bWVyYWJsZShrZXlXb3JkKSkgeyAvLyBpbmRlbnQtd29yZAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hTdGFjayhzdGF0ZSwgaW5kZW50VGVtcCArIElOREVOVF9XT1JEX1NLSVAsIGNoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gbm9uLWluZGVudCB3b3JkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBlYXRpbmcgdGhlIHNwYWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmVhdFNwYWNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtLmVvbCgpIHx8IHN0cmVhbS5wZWVrKCkgPT0gIjsiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZyBzaWduaWZpY2FudCBhZnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHJlc3RhcnQgaW5kZW50YXRpb24gMSBzcGFjZSBhZnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hTdGFjayhzdGF0ZSwgaW5kZW50VGVtcCArIDEsIGNoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaFN0YWNrKHN0YXRlLCBpbmRlbnRUZW1wICsgc3RyZWFtLmN1cnJlbnQoKS5sZW5ndGgsIGNoKTsgLy8gZWxzZSB3ZSBtYXRjaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5iYWNrVXAoc3RyZWFtLmN1cnJlbnQoKS5sZW5ndGggLSAxKTsgLy8gdW5kbyBhbGwgdGhlIGVhdGluZwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mIHN0YXRlLnNFeHByQ29tbWVudCA9PSAibnVtYmVyIikgc3RhdGUuc0V4cHJDb21tZW50Kys7CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gQlJBQ0tFVDsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICIpIiB8fCBjaCA9PSAiXSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IEJSQUNLRVQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5pbmRlbnRTdGFjayAhPSBudWxsICYmIHN0YXRlLmluZGVudFN0YWNrLnR5cGUgPT0gKGNoID09ICIpIiA/ICIoIiA6ICJbIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcFN0YWNrKHN0YXRlKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0eXBlb2Ygc3RhdGUuc0V4cHJDb21tZW50ID09ICJudW1iZXIiKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigtLXN0YXRlLnNFeHByQ29tbWVudCA9PSAwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IENPTU1FTlQ7IC8vIGZpbmFsIGNsb3NpbmcgYnJhY2tldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zRXhwckNvbW1lbnQgPSBmYWxzZTsgLy8gdHVybiBvZmYgcy1leHByIGNvbW1lbnRpbmcgbW9kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW1x3XCRfXC1dLyk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5d29yZHMgJiYga2V5d29yZHMucHJvcGVydHlJc0VudW1lcmFibGUoc3RyZWFtLmN1cnJlbnQoKSkpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gQlVJTFRJTjsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHJldHVyblR5cGUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gKHR5cGVvZiBzdGF0ZS5zRXhwckNvbW1lbnQgPT0gIm51bWJlciIpID8gQ09NTUVOVCA6IHJldHVyblR5cGU7CiAgICAgICAgfSwKICAgICAgICBpbmRlbnQ6IGZ1bmN0aW9uIChzdGF0ZSwgdGV4dEFmdGVyKSB7CiAgICAgICAgICAgIGlmIChzdGF0ZS5pbmRlbnRTdGFjayA9PSBudWxsKSByZXR1cm4gc3RhdGUuaW5kZW50YXRpb247CiAgICAgICAgICAgIHJldHVybiBzdGF0ZS5pbmRlbnRTdGFjay5pbmRlbnQ7CiAgICAgICAgfQogICAgfTsKfSk7CkNvZGVNaXJyb3IuZGVmaW5lTUlNRSgidGV4dC94LXNjaGVtZSIsICJzY2hlbWUiKTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/sparql/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/sparql/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogU1BBUlFMIG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJzcGFycWwuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGU+LkNvZGVNaXJyb3Ige2JvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO308L3N0eWxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9jc3MvZG9jcy5jc3MiPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxoMT5Db2RlTWlycm9yIDI6IFNQQVJRTCBtb2RlPC9oMT4KICAgIDxmb3JtPjx0ZXh0YXJlYSBpZD0iY29kZSIgbmFtZT0iY29kZSI+ClBSRUZJWCBhOiAmbHQ7aHR0cDovL3d3dy53My5vcmcvMjAwMC8xMC9hbm5vdGF0aW9uLW5zIz4KUFJFRklYIGRjOiAmbHQ7aHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8+ClBSRUZJWCBmb2FmOiAmbHQ7aHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS8+CgojIENvbW1lbnQhCgpTRUxFQ1QgP2dpdmVuID9mYW1pbHkKV0hFUkUgewogID9hbm5vdCBhOmFubm90YXRlcyAmbHQ7aHR0cDovL3d3dy53My5vcmcvVFIvcmRmLXNwYXJxbC1xdWVyeS8+IC4KICA/YW5ub3QgZGM6Y3JlYXRvciA/YyAuCiAgT1BUSU9OQUwgez9jIGZvYWY6Z2l2ZW4gP2dpdmVuIDsKICAgICAgICAgICAgICAgZm9hZjpmYW1pbHkgP2ZhbWlseSB9IC4KICBGSUxURVIgaXNCbGFuayg/YykKfQo8L3RleHRhcmVhPjwvZm9ybT4KICAgIDxzY3JpcHQ+CiAgICAgIHZhciBlZGl0b3IgPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29kZSIpLCB7CiAgICAgICAgbW9kZTogImFwcGxpY2F0aW9uL3gtc3BhcnFsLXF1ZXJ5IiwKICAgICAgICB0YWJNb2RlOiAiaW5kZW50IiwKICAgICAgICBtYXRjaEJyYWNrZXRzOiB0cnVlCiAgICAgIH0pOwogICAgPC9zY3JpcHQ+CgogICAgPHA+PHN0cm9uZz5NSU1FIHR5cGVzIGRlZmluZWQ6PC9zdHJvbmc+IDxjb2RlPmFwcGxpY2F0aW9uL3gtc3BhcnFsLXF1ZXJ5PC9jb2RlPi48L3A+CgogIDwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/sparql/sparql.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJzcGFycWwiLCBmdW5jdGlvbihjb25maWcpIHsKICB2YXIgaW5kZW50VW5pdCA9IGNvbmZpZy5pbmRlbnRVbml0OwogIHZhciBjdXJQdW5jOwoKICBmdW5jdGlvbiB3b3JkUmVnZXhwKHdvcmRzKSB7CiAgICByZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIgKyB3b3Jkcy5qb2luKCJ8IikgKyAiKSQiLCAiaSIpOwogIH0KICB2YXIgb3BzID0gd29yZFJlZ2V4cChbInN0ciIsICJsYW5nIiwgImxhbmdtYXRjaGVzIiwgImRhdGF0eXBlIiwgImJvdW5kIiwgInNhbWV0ZXJtIiwgImlzaXJpIiwgImlzdXJpIiwKICAgICAgICAgICAgICAgICAgICAgICAgImlzYmxhbmsiLCAiaXNsaXRlcmFsIiwgInVuaW9uIiwgImEiXSk7CiAgdmFyIGtleXdvcmRzID0gd29yZFJlZ2V4cChbImJhc2UiLCAicHJlZml4IiwgInNlbGVjdCIsICJkaXN0aW5jdCIsICJyZWR1Y2VkIiwgImNvbnN0cnVjdCIsICJkZXNjcmliZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFzayIsICJmcm9tIiwgIm5hbWVkIiwgIndoZXJlIiwgIm9yZGVyIiwgImxpbWl0IiwgIm9mZnNldCIsICJmaWx0ZXIiLCAib3B0aW9uYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmFwaCIsICJieSIsICJhc2MiLCAiZGVzYyJdKTsKICB2YXIgb3BlcmF0b3JDaGFycyA9IC9bKitcLTw+PSZ8XS87CgogIGZ1bmN0aW9uIHRva2VuQmFzZShzdHJlYW0sIHN0YXRlKSB7CiAgICB2YXIgY2ggPSBzdHJlYW0ubmV4dCgpOwogICAgY3VyUHVuYyA9IG51bGw7CiAgICBpZiAoY2ggPT0gIiQiIHx8IGNoID09ICI/IikgewogICAgICBzdHJlYW0ubWF0Y2goL15bXHdcZF0qLyk7CiAgICAgIHJldHVybiAidmFyaWFibGUtMiI7CiAgICB9CiAgICBlbHNlIGlmIChjaCA9PSAiPCIgJiYgIXN0cmVhbS5tYXRjaCgvXltcc1x1MDBhMD1dLywgZmFsc2UpKSB7CiAgICAgIHN0cmVhbS5tYXRjaCgvXlteXHNcdTAwYTA+XSo+Py8pOwogICAgICByZXR1cm4gImF0b20iOwogICAgfQogICAgZWxzZSBpZiAoY2ggPT0gIlwiIiB8fCBjaCA9PSAiJyIpIHsKICAgICAgc3RhdGUudG9rZW5pemUgPSB0b2tlbkxpdGVyYWwoY2gpOwogICAgICByZXR1cm4gc3RhdGUudG9rZW5pemUoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CiAgICBlbHNlIGlmICgvW3t9XChcKSxcLjtcW1xdXS8udGVzdChjaCkpIHsKICAgICAgY3VyUHVuYyA9IGNoOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIGVsc2UgaWYgKGNoID09ICIjIikgewogICAgICBzdHJlYW0uc2tpcFRvRW5kKCk7CiAgICAgIHJldHVybiAiY29tbWVudCI7CiAgICB9CiAgICBlbHNlIGlmIChvcGVyYXRvckNoYXJzLnRlc3QoY2gpKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZShvcGVyYXRvckNoYXJzKTsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBlbHNlIGlmIChjaCA9PSAiOiIpIHsKICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXHdcZFwuX1wtXS8pOwogICAgICByZXR1cm4gImF0b20iOwogICAgfQogICAgZWxzZSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW19cd1xkXS8pOwogICAgICBpZiAoc3RyZWFtLmVhdCgiOiIpKSB7CiAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXHdcZF9cLV0vKTsKICAgICAgICByZXR1cm4gImF0b20iOwogICAgICB9CiAgICAgIHZhciB3b3JkID0gc3RyZWFtLmN1cnJlbnQoKSwgdHlwZTsKICAgICAgaWYgKG9wcy50ZXN0KHdvcmQpKQogICAgICAgIHJldHVybiBudWxsOwogICAgICBlbHNlIGlmIChrZXl3b3Jkcy50ZXN0KHdvcmQpKQogICAgICAgIHJldHVybiAia2V5d29yZCI7CiAgICAgIGVsc2UKICAgICAgICByZXR1cm4gInZhcmlhYmxlIjsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHRva2VuTGl0ZXJhbChxdW90ZSkgewogICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgdmFyIGVzY2FwZWQgPSBmYWxzZSwgY2g7CiAgICAgIHdoaWxlICgoY2ggPSBzdHJlYW0ubmV4dCgpKSAhPSBudWxsKSB7CiAgICAgICAgaWYgKGNoID09IHF1b3RlICYmICFlc2NhcGVkKSB7CiAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHRva2VuQmFzZTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlc2NhcGVkID0gIWVzY2FwZWQgJiYgY2ggPT0gIlxcIjsKICAgICAgfQogICAgICByZXR1cm4gInN0cmluZyI7CiAgICB9OwogIH0KCiAgZnVuY3Rpb24gcHVzaENvbnRleHQoc3RhdGUsIHR5cGUsIGNvbCkgewogICAgc3RhdGUuY29udGV4dCA9IHtwcmV2OiBzdGF0ZS5jb250ZXh0LCBpbmRlbnQ6IHN0YXRlLmluZGVudCwgY29sOiBjb2wsIHR5cGU6IHR5cGV9OwogIH0KICBmdW5jdGlvbiBwb3BDb250ZXh0KHN0YXRlKSB7CiAgICBzdGF0ZS5pbmRlbnQgPSBzdGF0ZS5jb250ZXh0LmluZGVudDsKICAgIHN0YXRlLmNvbnRleHQgPSBzdGF0ZS5jb250ZXh0LnByZXY7CiAgfQoKICByZXR1cm4gewogICAgc3RhcnRTdGF0ZTogZnVuY3Rpb24oYmFzZSkgewogICAgICByZXR1cm4ge3Rva2VuaXplOiB0b2tlbkJhc2UsCiAgICAgICAgICAgICAgY29udGV4dDogbnVsbCwKICAgICAgICAgICAgICBpbmRlbnQ6IDAsCiAgICAgICAgICAgICAgY29sOiAwfTsKICAgIH0sCgogICAgdG9rZW46IGZ1bmN0aW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgaWYgKHN0cmVhbS5zb2woKSkgewogICAgICAgIGlmIChzdGF0ZS5jb250ZXh0ICYmIHN0YXRlLmNvbnRleHQuYWxpZ24gPT0gbnVsbCkgc3RhdGUuY29udGV4dC5hbGlnbiA9IGZhbHNlOwogICAgICAgIHN0YXRlLmluZGVudCA9IHN0cmVhbS5pbmRlbnRhdGlvbigpOwogICAgICB9CiAgICAgIGlmIChzdHJlYW0uZWF0U3BhY2UoKSkgcmV0dXJuIG51bGw7CiAgICAgIHZhciBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwoKICAgICAgaWYgKHN0eWxlICE9ICJjb21tZW50IiAmJiBzdGF0ZS5jb250ZXh0ICYmIHN0YXRlLmNvbnRleHQuYWxpZ24gPT0gbnVsbCAmJiBzdGF0ZS5jb250ZXh0LnR5cGUgIT0gInBhdHRlcm4iKSB7CiAgICAgICAgc3RhdGUuY29udGV4dC5hbGlnbiA9IHRydWU7CiAgICAgIH0KCiAgICAgIGlmIChjdXJQdW5jID09ICIoIikgcHVzaENvbnRleHQoc3RhdGUsICIpIiwgc3RyZWFtLmNvbHVtbigpKTsKICAgICAgZWxzZSBpZiAoY3VyUHVuYyA9PSAiWyIpIHB1c2hDb250ZXh0KHN0YXRlLCAiXSIsIHN0cmVhbS5jb2x1bW4oKSk7CiAgICAgIGVsc2UgaWYgKGN1clB1bmMgPT0gInsiKSBwdXNoQ29udGV4dChzdGF0ZSwgIn0iLCBzdHJlYW0uY29sdW1uKCkpOwogICAgICBlbHNlIGlmICgvW1xdXH1cKV0vLnRlc3QoY3VyUHVuYykpIHsKICAgICAgICB3aGlsZSAoc3RhdGUuY29udGV4dCAmJiBzdGF0ZS5jb250ZXh0LnR5cGUgPT0gInBhdHRlcm4iKSBwb3BDb250ZXh0KHN0YXRlKTsKICAgICAgICBpZiAoc3RhdGUuY29udGV4dCAmJiBjdXJQdW5jID09IHN0YXRlLmNvbnRleHQudHlwZSkgcG9wQ29udGV4dChzdGF0ZSk7CiAgICAgIH0KICAgICAgZWxzZSBpZiAoY3VyUHVuYyA9PSAiLiIgJiYgc3RhdGUuY29udGV4dCAmJiBzdGF0ZS5jb250ZXh0LnR5cGUgPT0gInBhdHRlcm4iKSBwb3BDb250ZXh0KHN0YXRlKTsKICAgICAgZWxzZSBpZiAoL2F0b218c3RyaW5nfHZhcmlhYmxlLy50ZXN0KHN0eWxlKSAmJiBzdGF0ZS5jb250ZXh0KSB7CiAgICAgICAgaWYgKC9bXH1cXV0vLnRlc3Qoc3RhdGUuY29udGV4dC50eXBlKSkKICAgICAgICAgIHB1c2hDb250ZXh0KHN0YXRlLCAicGF0dGVybiIsIHN0cmVhbS5jb2x1bW4oKSk7CiAgICAgICAgZWxzZSBpZiAoc3RhdGUuY29udGV4dC50eXBlID09ICJwYXR0ZXJuIiAmJiAhc3RhdGUuY29udGV4dC5hbGlnbikgewogICAgICAgICAgc3RhdGUuY29udGV4dC5hbGlnbiA9IHRydWU7CiAgICAgICAgICBzdGF0ZS5jb250ZXh0LmNvbCA9IHN0cmVhbS5jb2x1bW4oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiBzdHlsZTsKICAgIH0sCgogICAgaW5kZW50OiBmdW5jdGlvbihzdGF0ZSwgdGV4dEFmdGVyKSB7CiAgICAgIHZhciBmaXJzdENoYXIgPSB0ZXh0QWZ0ZXIgJiYgdGV4dEFmdGVyLmNoYXJBdCgwKTsKICAgICAgdmFyIGNvbnRleHQgPSBzdGF0ZS5jb250ZXh0OwogICAgICBpZiAoL1tcXVx9XS8udGVzdChmaXJzdENoYXIpKQogICAgICAgIHdoaWxlIChjb250ZXh0ICYmIGNvbnRleHQudHlwZSA9PSAicGF0dGVybiIpIGNvbnRleHQgPSBjb250ZXh0LnByZXY7CgogICAgICB2YXIgY2xvc2luZyA9IGNvbnRleHQgJiYgZmlyc3RDaGFyID09IGNvbnRleHQudHlwZTsKICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgIHJldHVybiAwOwogICAgICBlbHNlIGlmIChjb250ZXh0LnR5cGUgPT0gInBhdHRlcm4iKQogICAgICAgIHJldHVybiBjb250ZXh0LmNvbDsKICAgICAgZWxzZSBpZiAoY29udGV4dC5hbGlnbikKICAgICAgICByZXR1cm4gY29udGV4dC5jb2wgKyAoY2xvc2luZyA/IDAgOiAxKTsKICAgICAgZWxzZQogICAgICAgIHJldHVybiBjb250ZXh0LmluZGVudCArIChjbG9zaW5nID8gMCA6IGluZGVudFVuaXQpOwogICAgfQogIH07Cn0pOwoKQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJhcHBsaWNhdGlvbi94LXNwYXJxbC1xdWVyeSIsICJzcGFycWwiKTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xml/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xml/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogWE1MIG1vZGU8L3RpdGxlPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9saWIvY29kZW1pcnJvci5jc3MiPgogICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJ4bWwuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5Db2RlTWlycm9yIHtib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazt9PC9zdHlsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vY3NzL2RvY3MuY3NzIj4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+Q29kZU1pcnJvciAyOiBYTUwgbW9kZTwvaDE+CiAgICA8Zm9ybT48dGV4dGFyZWEgaWQ9ImNvZGUiIG5hbWU9ImNvZGUiPgombHQ7aHRtbCBzdHlsZT0iY29sb3I6IGdyZWVuIiZndDsKICAmbHQ7IS0tIHRoaXMgaXMgYSBjb21tZW50IC0tJmd0OwogICZsdDtoZWFkJmd0OwogICAgJmx0O3RpdGxlJmd0O0hUTUwgRXhhbXBsZSZsdDsvdGl0bGUmZ3Q7CiAgJmx0Oy9oZWFkJmd0OwogICZsdDtib2R5Jmd0OwogICAgVGhlIGluZGVudGF0aW9uIHRyaWVzIHRvIGJlICZsdDtlbSZndDtzb21ld2hhdCAmYW1wO3F1b3Q7ZG8gd2hhdAogICAgSSBtZWFuJmFtcDtxdW90OyZsdDsvZW0mZ3Q7Li4uIGJ1dCBtaWdodCBub3QgbWF0Y2ggeW91ciBzdHlsZS4KICAmbHQ7L2JvZHkmZ3Q7CiZsdDsvaHRtbCZndDsKPC90ZXh0YXJlYT48L2Zvcm0+CiAgICA8c2NyaXB0PgogICAgICB2YXIgZWRpdG9yID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKSwge21vZGU6IHtuYW1lOiAieG1sIiwgaHRtbE1vZGU6IHRydWV9fSk7CiAgICA8L3NjcmlwdD4KICAgIDxwPlRoZSBYTUwgbW9kZSBzdXBwb3J0cyB0d28gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzOjwvcD4KICAgIDxkbD4KICAgICAgPGR0Pjxjb2RlPmh0bWxNb2RlIChib29sZWFuKTwvY29kZT48L2R0PgogICAgICA8ZGQ+VGhpcyBzd2l0Y2hlcyB0aGUgbW9kZSB0byBwYXJzZSBIVE1MIGluc3RlYWQgb2YgWE1MLiBUaGlzCiAgICAgIG1lYW5zIGF0dHJpYnV0ZXMgZG8gbm90IGhhdmUgdG8gYmUgcXVvdGVkLCBhbmQgc29tZSBlbGVtZW50cwogICAgICAoc3VjaCBhcyA8Y29kZT5icjwvY29kZT4pIGRvIG5vdCByZXF1aXJlIGEgY2xvc2luZyB0YWcuPC9kZD4KICAgICAgPGR0Pjxjb2RlPmFsaWduQ0RBVEEgKGJvb2xlYW4pPC9jb2RlPjwvZHQ+CiAgICAgIDxkZD5TZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGZvcmNlIHRoZSBvcGVuaW5nIHRhZyBvZiBDREFUQQogICAgICBibG9ja3MgdG8gbm90IGJlIGluZGVudGVkLjwvZGQ+CiAgICA8L2RsPgoKICAgIDxwPjxzdHJvbmc+TUlNRSB0eXBlcyBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT5hcHBsaWNhdGlvbi94bWw8L2NvZGU+LCA8Y29kZT50ZXh0L2h0bWw8L2NvZGU+LjwvcD4KICA8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xml/xml.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29kZU1pcnJvci5kZWZpbmVNb2RlKCJ4bWwiLCBmdW5jdGlvbihjb25maWcsIHBhcnNlckNvbmZpZykgewogIHZhciBpbmRlbnRVbml0ID0gY29uZmlnLmluZGVudFVuaXQ7CiAgdmFyIEtsdWRnZXMgPSBwYXJzZXJDb25maWcuaHRtbE1vZGUgPyB7CiAgICBhdXRvU2VsZkNsb3NlcnM6IHsiYnIiOiB0cnVlLCAiaW1nIjogdHJ1ZSwgImhyIjogdHJ1ZSwgImxpbmsiOiB0cnVlLCAiaW5wdXQiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgIm1ldGEiOiB0cnVlLCAiY29sIjogdHJ1ZSwgImZyYW1lIjogdHJ1ZSwgImJhc2UiOiB0cnVlLCAiYXJlYSI6IHRydWV9LAogICAgZG9Ob3RJbmRlbnQ6IHsicHJlIjogdHJ1ZSwgIiFjZGF0YSI6IHRydWV9LAogICAgYWxsb3dVbnF1b3RlZDogdHJ1ZQogIH0gOiB7YXV0b1NlbGZDbG9zZXJzOiB7fSwgZG9Ob3RJbmRlbnQ6IHsiIWNkYXRhIjogdHJ1ZX0sIGFsbG93VW5xdW90ZWQ6IGZhbHNlfTsKICB2YXIgYWxpZ25DREFUQSA9IHBhcnNlckNvbmZpZy5hbGlnbkNEQVRBOwoKICAvLyBSZXR1cm4gdmFyaWFibGVzIGZvciB0b2tlbml6ZXJzCiAgdmFyIHRhZ05hbWUsIHR5cGU7CgogIGZ1bmN0aW9uIGluVGV4dChzdHJlYW0sIHN0YXRlKSB7CiAgICBmdW5jdGlvbiBjaGFpbihwYXJzZXIpIHsKICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZXI7CiAgICAgIHJldHVybiBwYXJzZXIoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CgogICAgdmFyIGNoID0gc3RyZWFtLm5leHQoKTsKICAgIGlmIChjaCA9PSAiPCIpIHsKICAgICAgaWYgKHN0cmVhbS5lYXQoIiEiKSkgewogICAgICAgIGlmIChzdHJlYW0uZWF0KCJbIikpIHsKICAgICAgICAgIGlmIChzdHJlYW0ubWF0Y2goIkNEQVRBWyIpKSByZXR1cm4gY2hhaW4oaW5CbG9jaygiYXRvbSIsICJdXT4iKSk7CiAgICAgICAgICBlbHNlIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChzdHJlYW0ubWF0Y2goIi0tIikpIHJldHVybiBjaGFpbihpbkJsb2NrKCJjb21tZW50IiwgIi0tPiIpKTsKICAgICAgICBlbHNlIGlmIChzdHJlYW0ubWF0Y2goIkRPQ1RZUEUiLCB0cnVlLCB0cnVlKSkgewogICAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXHdcLl9cLV0vKTsKICAgICAgICAgIHJldHVybiBjaGFpbihpbkJsb2NrKCJtZXRhIiwgIj4iKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgZWxzZSBpZiAoc3RyZWFtLmVhdCgiPyIpKSB7CiAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXHdcLl9cLV0vKTsKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IGluQmxvY2soIm1ldGEiLCAiPz4iKTsKICAgICAgICByZXR1cm4gIm1ldGEiOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHR5cGUgPSBzdHJlYW0uZWF0KCIvIikgPyAiY2xvc2VUYWciIDogIm9wZW5UYWciOwogICAgICAgIHN0cmVhbS5lYXRTcGFjZSgpOwogICAgICAgIHRhZ05hbWUgPSAiIjsKICAgICAgICB2YXIgYzsKICAgICAgICB3aGlsZSAoKGMgPSBzdHJlYW0uZWF0KC9bXlxzXHUwMGEwPTw+XCJcJ1wvP10vKSkpIHRhZ05hbWUgKz0gYzsKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IGluVGFnOwogICAgICAgIHJldHVybiAidGFnIjsKICAgICAgfQogICAgfQogICAgZWxzZSBpZiAoY2ggPT0gIiYiKSB7CiAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW147XS8pOwogICAgICBzdHJlYW0uZWF0KCI7Iik7CiAgICAgIHJldHVybiAiYXRvbSI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXiY8XS8pOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGluVGFnKHN0cmVhbSwgc3RhdGUpIHsKICAgIHZhciBjaCA9IHN0cmVhbS5uZXh0KCk7CiAgICBpZiAoY2ggPT0gIj4iIHx8IChjaCA9PSAiLyIgJiYgc3RyZWFtLmVhdCgiPiIpKSkgewogICAgICBzdGF0ZS50b2tlbml6ZSA9IGluVGV4dDsKICAgICAgdHlwZSA9IGNoID09ICI+IiA/ICJlbmRUYWciIDogInNlbGZjbG9zZVRhZyI7CiAgICAgIHJldHVybiAidGFnIjsKICAgIH0KICAgIGVsc2UgaWYgKGNoID09ICI9IikgewogICAgICB0eXBlID0gImVxdWFscyI7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgZWxzZSBpZiAoL1tcJ1wiXS8udGVzdChjaCkpIHsKICAgICAgc3RhdGUudG9rZW5pemUgPSBpbkF0dHJpYnV0ZShjaCk7CiAgICAgIHJldHVybiBzdGF0ZS50b2tlbml6ZShzdHJlYW0sIHN0YXRlKTsKICAgIH0KICAgIGVsc2UgewogICAgICBzdHJlYW0uZWF0V2hpbGUoL1teXHNcdTAwYTA9PD5cIlwnXC8/XS8pOwogICAgICByZXR1cm4gIndvcmQiOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5BdHRyaWJ1dGUocXVvdGUpIHsKICAgIHJldHVybiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIHdoaWxlICghc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgaWYgKHN0cmVhbS5uZXh0KCkgPT0gcXVvdGUpIHsKICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gaW5UYWc7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICJzdHJpbmciOwogICAgfTsKICB9CgogIGZ1bmN0aW9uIGluQmxvY2soc3R5bGUsIHRlcm1pbmF0b3IpIHsKICAgIHJldHVybiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIHdoaWxlICghc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgaWYgKHN0cmVhbS5tYXRjaCh0ZXJtaW5hdG9yKSkgewogICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBpblRleHQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc3RyZWFtLm5leHQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3R5bGU7CiAgICB9OwogIH0KCiAgdmFyIGN1clN0YXRlLCBzZXRTdHlsZTsKICBmdW5jdGlvbiBwYXNzKCkgewogICAgZm9yICh2YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgY3VyU3RhdGUuY2MucHVzaChhcmd1bWVudHNbaV0pOwogIH0KICBmdW5jdGlvbiBjb250KCkgewogICAgcGFzcy5hcHBseShudWxsLCBhcmd1bWVudHMpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBwdXNoQ29udGV4dCh0YWdOYW1lLCBzdGFydE9mTGluZSkgewogICAgdmFyIG5vSW5kZW50ID0gS2x1ZGdlcy5kb05vdEluZGVudC5oYXNPd25Qcm9wZXJ0eSh0YWdOYW1lKSB8fCAoY3VyU3RhdGUuY29udGV4dCAmJiBjdXJTdGF0ZS5jb250ZXh0Lm5vSW5kZW50KTsKICAgIGN1clN0YXRlLmNvbnRleHQgPSB7CiAgICAgIHByZXY6IGN1clN0YXRlLmNvbnRleHQsCiAgICAgIHRhZ05hbWU6IHRhZ05hbWUsCiAgICAgIGluZGVudDogY3VyU3RhdGUuaW5kZW50ZWQsCiAgICAgIHN0YXJ0T2ZMaW5lOiBzdGFydE9mTGluZSwKICAgICAgbm9JbmRlbnQ6IG5vSW5kZW50CiAgICB9OwogIH0KICBmdW5jdGlvbiBwb3BDb250ZXh0KCkgewogICAgaWYgKGN1clN0YXRlLmNvbnRleHQpIGN1clN0YXRlLmNvbnRleHQgPSBjdXJTdGF0ZS5jb250ZXh0LnByZXY7CiAgfQoKICBmdW5jdGlvbiBlbGVtZW50KHR5cGUpIHsKICAgIGlmICh0eXBlID09ICJvcGVuVGFnIikge2N1clN0YXRlLnRhZ05hbWUgPSB0YWdOYW1lOyByZXR1cm4gY29udChhdHRyaWJ1dGVzLCBlbmR0YWcoY3VyU3RhdGUuc3RhcnRPZkxpbmUpKTt9CiAgICBlbHNlIGlmICh0eXBlID09ICJjbG9zZVRhZyIpIHsKICAgICAgdmFyIGVyciA9IGZhbHNlOwogICAgICBpZiAoY3VyU3RhdGUuY29udGV4dCkgewogICAgICAgIGVyciA9IGN1clN0YXRlLmNvbnRleHQudGFnTmFtZSAhPSB0YWdOYW1lOwogICAgICAgIHBvcENvbnRleHQoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBlcnIgPSB0cnVlOwogICAgICB9CiAgICAgIGlmIChlcnIpIHNldFN0eWxlID0gImVycm9yIjsKICAgICAgcmV0dXJuIGNvbnQoZW5kY2xvc2V0YWcoZXJyKSk7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlID09ICJzdHJpbmciKSB7CiAgICAgIGlmICghY3VyU3RhdGUuY29udGV4dCB8fCBjdXJTdGF0ZS5jb250ZXh0Lm5hbWUgIT0gIiFjZGF0YSIpIHB1c2hDb250ZXh0KCIhY2RhdGEiKTsKICAgICAgaWYgKGN1clN0YXRlLnRva2VuaXplID09IGluVGV4dCkgcG9wQ29udGV4dCgpOwogICAgICByZXR1cm4gY29udCgpOwogICAgfQogICAgZWxzZSByZXR1cm4gY29udCgpOwogIH0KICBmdW5jdGlvbiBlbmR0YWcoc3RhcnRPZkxpbmUpIHsKICAgIHJldHVybiBmdW5jdGlvbih0eXBlKSB7CiAgICAgIGlmICh0eXBlID09ICJzZWxmY2xvc2VUYWciIHx8CiAgICAgICAgICAodHlwZSA9PSAiZW5kVGFnIiAmJiBLbHVkZ2VzLmF1dG9TZWxmQ2xvc2Vycy5oYXNPd25Qcm9wZXJ0eShjdXJTdGF0ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKSkKICAgICAgICByZXR1cm4gY29udCgpOwogICAgICBpZiAodHlwZSA9PSAiZW5kVGFnIikge3B1c2hDb250ZXh0KGN1clN0YXRlLnRhZ05hbWUsIHN0YXJ0T2ZMaW5lKTsgcmV0dXJuIGNvbnQoKTt9CiAgICAgIHJldHVybiBjb250KCk7CiAgICB9OwogIH0KICBmdW5jdGlvbiBlbmRjbG9zZXRhZyhlcnIpIHsKICAgIHJldHVybiBmdW5jdGlvbih0eXBlKSB7CiAgICAgIGlmIChlcnIpIHNldFN0eWxlID0gImVycm9yIjsKICAgICAgaWYgKHR5cGUgPT0gImVuZFRhZyIpIHJldHVybiBjb250KCk7CiAgICAgIHJldHVybiBwYXNzKCk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhdHRyaWJ1dGVzKHR5cGUpIHsKICAgIGlmICh0eXBlID09ICJ3b3JkIikge3NldFN0eWxlID0gImF0dHJpYnV0ZSI7IHJldHVybiBjb250KGF0dHJpYnV0ZXMpO30KICAgIGlmICh0eXBlID09ICJlcXVhbHMiKSByZXR1cm4gY29udChhdHR2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICByZXR1cm4gcGFzcygpOwogIH0KICBmdW5jdGlvbiBhdHR2YWx1ZSh0eXBlKSB7CiAgICBpZiAodHlwZSA9PSAid29yZCIgJiYgS2x1ZGdlcy5hbGxvd1VucXVvdGVkKSB7c2V0U3R5bGUgPSAic3RyaW5nIjsgcmV0dXJuIGNvbnQoKTt9CiAgICBpZiAodHlwZSA9PSAic3RyaW5nIikgcmV0dXJuIGNvbnQoYXR0dmFsdWVtYXliZSk7CiAgICByZXR1cm4gcGFzcygpOwogIH0KICBmdW5jdGlvbiBhdHR2YWx1ZW1heWJlKHR5cGUpIHsKICAgIGlmICh0eXBlID09ICJzdHJpbmciKSByZXR1cm4gY29udChhdHR2YWx1ZW1heWJlKTsKICAgIGVsc2UgcmV0dXJuIHBhc3MoKTsKICB9CgogIHJldHVybiB7CiAgICBzdGFydFN0YXRlOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHt0b2tlbml6ZTogaW5UZXh0LCBjYzogW10sIGluZGVudGVkOiAwLCBzdGFydE9mTGluZTogdHJ1ZSwgdGFnTmFtZTogbnVsbCwgY29udGV4dDogbnVsbH07CiAgICB9LAoKICAgIHRva2VuOiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgIGlmIChzdHJlYW0uc29sKCkpIHsKICAgICAgICBzdGF0ZS5zdGFydE9mTGluZSA9IHRydWU7CiAgICAgICAgc3RhdGUuaW5kZW50ZWQgPSBzdHJlYW0uaW5kZW50YXRpb24oKTsKICAgICAgfQogICAgICBpZiAoc3RyZWFtLmVhdFNwYWNlKCkpIHJldHVybiBudWxsOwoKICAgICAgc2V0U3R5bGUgPSB0eXBlID0gdGFnTmFtZSA9IG51bGw7CiAgICAgIHZhciBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgICBpZiAoKHN0eWxlIHx8IHR5cGUpICYmIHN0eWxlICE9ICJjb21tZW50IikgewogICAgICAgIGN1clN0YXRlID0gc3RhdGU7CiAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgIHZhciBjb21iID0gc3RhdGUuY2MucG9wKCkgfHwgZWxlbWVudDsKICAgICAgICAgIGlmIChjb21iKHR5cGUgfHwgc3R5bGUpKSBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgc3RhdGUuc3RhcnRPZkxpbmUgPSBmYWxzZTsKICAgICAgcmV0dXJuIHNldFN0eWxlIHx8IHN0eWxlOwogICAgfSwKCiAgICBpbmRlbnQ6IGZ1bmN0aW9uKHN0YXRlLCB0ZXh0QWZ0ZXIpIHsKICAgICAgdmFyIGNvbnRleHQgPSBzdGF0ZS5jb250ZXh0OwogICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Lm5vSW5kZW50KSByZXR1cm4gMDsKICAgICAgaWYgKGFsaWduQ0RBVEEgJiYgLzwhXFtDREFUQVxbLy50ZXN0KHRleHRBZnRlcikpIHJldHVybiAwOwogICAgICBpZiAoY29udGV4dCAmJiAvXjxcLy8udGVzdCh0ZXh0QWZ0ZXIpKQogICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnByZXY7CiAgICAgIHdoaWxlIChjb250ZXh0ICYmICFjb250ZXh0LnN0YXJ0T2ZMaW5lKQogICAgICAgIGNvbnRleHQgPSBjb250ZXh0LnByZXY7CiAgICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dC5pbmRlbnQgKyBpbmRlbnRVbml0OwogICAgICBlbHNlIHJldHVybiAwOwogICAgfSwKCiAgICBjb21wYXJlU3RhdGVzOiBmdW5jdGlvbihhLCBiKSB7CiAgICAgIGlmIChhLmluZGVudGVkICE9IGIuaW5kZW50ZWQgfHwgYS50YWdOYW1lICE9IGIudGFnTmFtZSkgcmV0dXJuIGZhbHNlOwogICAgICBmb3IgKHZhciBjYSA9IGEuY29udGV4dCwgY2IgPSBiLmNvbnRleHQ7IDsgY2EgPSBjYS5wcmV2LCBjYiA9IGNiLnByZXYpIHsKICAgICAgICBpZiAoIWNhIHx8ICFjYikgcmV0dXJuIGNhID09IGNiOwogICAgICAgIGlmIChjYS50YWdOYW1lICE9IGNiLnRhZ05hbWUpIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfSwKCiAgICBlbGVjdHJpY0NoYXJzOiAiLyIKICB9Owp9KTsKCkNvZGVNaXJyb3IuZGVmaW5lTUlNRSgiYXBwbGljYXRpb24veG1sIiwgInhtbCIpOwpDb2RlTWlycm9yLmRlZmluZU1JTUUoInRleHQvaHRtbCIsIHtuYW1lOiAieG1sIiwgaHRtbE1vZGU6IHRydWV9KTsK]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xmlpure/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xmlpure/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkNvZGVNaXJyb3IgMjogUHVyZSBYTUwgbW9kZTwvdGl0bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2xpYi9jb2RlbWlycm9yLmNzcyI+CiAgICA8c2NyaXB0IHNyYz0iLi4vLi4vbGliL2NvZGVtaXJyb3IuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9InhtbHB1cmUuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi90aGVtZS9kZWZhdWx0LmNzcyI+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5Db2RlTWlycm9yIHtib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazt9PC9zdHlsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vY3NzL2RvY3MuY3NzIj4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+Q29kZU1pcnJvciAyOiBYTUwgbW9kZTwvaDE+CiAgICA8Zm9ybT48dGV4dGFyZWEgaWQ9ImNvZGUiIG5hbWU9ImNvZGUiPgombHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iID8mZ3Q7CgombHQ7IS0tIFRoaXMgaXMgdGhlIHB1cmUgWE1MIG1vZGUsCmFuZCB3ZSdyZSBpbnNpZGUgYSBjb21tZW50ISAtLSZndDsKCiZsdDtjYXRhbG9nJmd0OwogICZsdDtib29rcyZndDsKICAgICZsdDtib29rIGlkPSJiazAxIiZndDsKICAgICAgJmx0O3RpdGxlJmd0O0xvcmQgb2YgTGlnaHQmbHQ7L3RpdGxlJmd0OwogICAgICAmbHQ7YXV0aG9yJmd0O1JvZ2VyIFplbGF6bnkmbHQ7L2F1dGhvciZndDsKICAgICAgJmx0O3llYXImZ3Q7MTk2NyZsdDsveWVhciZndDsKICAgICAgJmx0O2Rlc2NyaXB0aW9uJmd0OyZsdDshW0NEQVRBW1RoaXMgaXMgYSBncmVhdCBib29rLCByZWFsbHkhIV1dJmd0OyZsdDsvZGVzY3JpcHRpb24mZ3Q7CiAgICAmbHQ7L2Jvb2smZ3Q7CiAgJmx0Oy9ib29rcyZndDsKJmx0Oy9jYXRhbG9nJmd0Owo8L3RleHRhcmVhPjwvZm9ybT4KICAgIDxzY3JpcHQ+CiAgICAgIHZhciBlZGl0b3IgPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29kZSIpLCB7bW9kZToge25hbWU6ICJ4bWxwdXJlIn19KTsKICAgIDwvc2NyaXB0PgoKICAgIDxwPlRoaXMgaXMgbXkgWE1MIHBhcnNlciwgYmFzZWQgb24gdGhlIG9yaWdpbmFsOjwvcD4gCiAgICA8dWw+IAogICAgCTxsaT5ObyBodG1sIG1vZGUgLSB0aGlzIGlzIHB1cmUgeG1sPC9saT4gCiAgICAJPGxpPklsbGVnYWwgYXR0cmlidXRlcyBhbmQgZWxlbWVudCBuYW1lcyBhcmUgZXJyb3JzPC9saT4gCiAgICAJPGxpPkF0dHJpYnV0ZXMgbXVzdCBoYXZlIGEgdmFsdWU8L2xpPiAKICAgIAk8bGk+WE1MIGRlY2xhcmF0aW9uIHN1cHBvcnRlZCAoZS5nLjogPGI+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9Im5vIiA/Jmd0OzwvYj4pPC9saT4gCiAgICAJPGxpPkNEQVRBIGFuZCBjb21tZW50IGJsb2NrcyBhcmUgbm90IGluZGVudGVkIChleGNlcHQgZm9yIHRoZWlyIHN0YXJ0LXRhZyk8L2xpPiAKICAgIAk8bGk+QmV0dGVyIGhhbmRsaW5nIG9mIGVycm9ycyBwZXIgbGluZSB3aXRoIHRoZSBzdGF0ZSBvYmplY3QgLSBwcm92aWRlcyBnb29kIGluZnJhc3RydWN0dXJlIGZvciBleHRlbmRpbmcgaXQ8L2xpPiAKICAgIDwvdWw+IAogCiAgICA8cD5XaGF0J3MgbWlzc2luZzo8L3A+IAogICAgPHVsPiAKICAgIAk8bGk+TWFrZSBzdXJlIG9ubHkgYSBzaW5nbGUgcm9vdCBlbGVtZW50IGV4aXN0cyBhdCB0aGUgZG9jdW1lbnQgbGV2ZWw8L2xpPiAKICAgIAk8bGk+TXVsdGktbGluZSBhdHRyaWJ1dGVzIHNob3VsZCBOT1QgaW5kZW50PC9saT4KICAgIAk8bGk+U3RhcnQgdGFncyBhcmUgbm90IHBhaW50ZWQgcmVkIHdoZW4gdGhleSBoYXZlIG5vIG1hdGNoaW5nIGVuZCB0YWdzIChpcyB0aGlzIHJlYWxseSB3cm9uZz8pPC9saT4gCiAgICA8L3VsPiAKIAogICAgPHA+PHN0cm9uZz5NSU1FIHR5cGVzIGRlZmluZWQ6PC9zdHJvbmc+IDxjb2RlPmFwcGxpY2F0aW9uL3htbDwvY29kZT4sIDxjb2RlPnRleHQveG1sPC9jb2RlPi48L3A+IAogCiAgICA8cD48Yj5AYXV0aG9yPC9iPjogRHJvciBCRyAoPGk+ZGVlYnVnIGRvdCBkZXYgYXQgZ21haWwgZG90IGNvbTwvaT4pPGJyLz4gCiAgICA8cD48Yj5AZGF0ZTwvYj46IEF1Z3VzdCwgMjAxMTxici8+IAogICAgPHA+PGI+QGdpdGh1YjwvYj46IDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9kZWVidWdnZXIvQ29kZU1pcnJvcjInIHRhcmdldD0nYmxhbmsnPmh0dHBzOi8vZ2l0aHViLmNvbS9kZWVidWdnZXIvQ29kZU1pcnJvcjI8L2E+PC9wPgoKICAgIDxwPjxzdHJvbmc+TUlNRSB0eXBlcyBkZWZpbmVkOjwvc3Ryb25nPiA8Y29kZT5hcHBsaWNhdGlvbi94bWw8L2NvZGU+LCA8Y29kZT50ZXh0L3htbDwvY29kZT4uPC9wPgogIDwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/mode/xmlpure/xmlpure.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIHhtbHB1cmUuanMKICogCiAqIEJ1aWxkaW5nIHVwb24gYW5kIGltcHJvdmluZyB0aGUgQ29kZU1pcnJvciAyIFhNTCBwYXJzZXIKICogQGF1dGhvcjogRHJvciBCRyAoZGVlYnVnLmRldkBnbWFpbC5jb20pCiAqIEBkYXRlOiBBdWd1c3QsIDIwMTEKICovCgpDb2RlTWlycm9yLmRlZmluZU1vZGUoInhtbHB1cmUiLCBmdW5jdGlvbihjb25maWcsIHBhcnNlckNvbmZpZykgewogICAgLy8gY29uc3RhbnRzCiAgICB2YXIgU1RZTEVfRVJST1IgPSAiZXJyb3IiOwogICAgdmFyIFNUWUxFX0lOU1RSVUNUSU9OID0gImNvbW1lbnQiOwogICAgdmFyIFNUWUxFX0NPTU1FTlQgPSAiY29tbWVudCI7CiAgICB2YXIgU1RZTEVfRUxFTUVOVF9OQU1FID0gInRhZyI7CiAgICB2YXIgU1RZTEVfQVRUUklCVVRFID0gImF0dHJpYnV0ZSI7CiAgICB2YXIgU1RZTEVfV09SRCA9ICJzdHJpbmciOwogICAgdmFyIFNUWUxFX1RFWFQgPSAiYXRvbSI7CgogICAgdmFyIFRBR19JTlNUUlVDVElPTiA9ICIhaW5zdHJ1Y3Rpb24iOwogICAgdmFyIFRBR19DREFUQSA9ICIhY2RhdGEiOwogICAgdmFyIFRBR19DT01NRU5UID0gIiFjb21tZW50IjsKICAgIHZhciBUQUdfVEVYVCA9ICIhdGV4dCI7CiAgICAKICAgIHZhciBkb05vdEluZGVudCA9IHsKICAgICAgICAiIWNkYXRhIjogdHJ1ZSwKICAgICAgICAiIWNvbW1lbnQiOiB0cnVlLAogICAgICAgICIhdGV4dCI6IHRydWUsCiAgICAgICAgIiFpbnN0cnVjdGlvbiI6IHRydWUKICAgIH07CgogICAgLy8gb3B0aW9ucwogICAgdmFyIGluZGVudFVuaXQgPSBjb25maWcuaW5kZW50VW5pdDsKCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIGhlbHBlciBmdW5jdGlvbnMKICAgIAogICAgLy8gY2hhaW4gYSBwYXJzZXIgdG8gYW5vdGhlciBwYXJzZXIKICAgIGZ1bmN0aW9uIGNoYWluKHN0cmVhbSwgc3RhdGUsIHBhcnNlcikgewogICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VyOwogICAgICAgIHJldHVybiBwYXJzZXIoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CiAgICAKICAgIC8vIHBhcnNlIGEgYmxvY2sgKGNvbW1lbnQsIENEQVRBIG9yIHRleHQpCiAgICBmdW5jdGlvbiBpbkJsb2NrKHN0eWxlLCB0ZXJtaW5hdG9yLCBuZXh0VG9rZW5pemUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3RyZWFtLCBzdGF0ZSkgewogICAgICAgICAgICB3aGlsZSAoIXN0cmVhbS5lb2woKSkgewogICAgICAgICAgICAgICAgaWYgKHN0cmVhbS5tYXRjaCh0ZXJtaW5hdG9yKSkgewogICAgICAgICAgICAgICAgICAgIHBvcENvbnRleHQoc3RhdGUpOwogICAgICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gbmV4dFRva2VuaXplOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RyZWFtLm5leHQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3R5bGU7CiAgICAgICAgfTsKICAgIH0KICAgIAogICAgLy8gZ28gZG93biBhIGxldmVsIGluIHRoZSBkb2N1bWVudAogICAgLy8gKGhpbnQ6IGxvb2sgYXQgd2hvIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8ga25vdyB3aGF0IHRoZSBjb250ZXh0cyBhcmUpCiAgICBmdW5jdGlvbiBwdXNoQ29udGV4dChzdGF0ZSwgdGFnTmFtZSkgewogICAgICAgIHZhciBub0luZGVudCA9IGRvTm90SW5kZW50Lmhhc093blByb3BlcnR5KHRhZ05hbWUpIHx8IChzdGF0ZS5jb250ZXh0ICYmIHN0YXRlLmNvbnRleHQuZG9JbmRlbnQpOwogICAgICAgIHZhciBuZXdDb250ZXh0ID0gewogICAgICAgICAgICB0YWdOYW1lOiB0YWdOYW1lLAogICAgICAgICAgICBwcmV2OiBzdGF0ZS5jb250ZXh0LAogICAgICAgICAgICBpbmRlbnQ6IHN0YXRlLmNvbnRleHQgPyBzdGF0ZS5jb250ZXh0LmluZGVudCArIGluZGVudFVuaXQgOiAwLAogICAgICAgICAgICBsaW5lTnVtYmVyOiBzdGF0ZS5saW5lTnVtYmVyLAogICAgICAgICAgICBpbmRlbnRlZDogc3RhdGUuaW5kZW50ZWQsCiAgICAgICAgICAgIG5vSW5kZW50OiBub0luZGVudAogICAgICAgIH07CiAgICAgICAgc3RhdGUuY29udGV4dCA9IG5ld0NvbnRleHQ7CiAgICB9CiAgICAKICAgIC8vIGdvIHVwIGEgbGV2ZWwgaW4gdGhlIGRvY3VtZW50CiAgICBmdW5jdGlvbiBwb3BDb250ZXh0KHN0YXRlKSB7CiAgICAgICAgaWYgKHN0YXRlLmNvbnRleHQpIHsKICAgICAgICAgICAgdmFyIG9sZENvbnRleHQgPSBzdGF0ZS5jb250ZXh0OwogICAgICAgICAgICBzdGF0ZS5jb250ZXh0ID0gb2xkQ29udGV4dC5wcmV2OwogICAgICAgICAgICByZXR1cm4gb2xkQ29udGV4dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGJlIGhlcmUgLSBpdCBtZWFucyB3ZSBkaWRuJ3QgaGF2ZSBhIGNvbnRleHQgdG8gcG9wCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICAKICAgIC8vIHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHRva2VuIGlzIHNlcGVyYXRlZCBmcm9tIHRoZSB0b2tlbnMgYmVmb3JlIGl0CiAgICAvLyB3aGljaCBtZWFucyBlaXRoZXIgdGhpcyBpcyB0aGUgc3RhcnQgb2YgdGhlIGxpbmUsIG9yIHRoZXJlIGlzIGF0IGxlYXN0CiAgICAvLyBvbmUgc3BhY2Ugb3IgdGFiIGNoYXJhY3RlciBiZWhpbmQgdGhlIHRva2VuCiAgICAvLyBvdGhlcndpc2UgcmV0dXJucyBmYWxzZQogICAgZnVuY3Rpb24gaXNUb2tlblNlcGFyYXRlZChzdHJlYW0pIHsKICAgICAgICByZXR1cm4gc3RyZWFtLnNvbCgpIHx8CiAgICAgICAgICAgIHN0cmVhbS5zdHJpbmcuY2hhckF0KHN0cmVhbS5zdGFydCAtIDEpID09ICIgIiB8fAogICAgICAgICAgICBzdHJlYW0uc3RyaW5nLmNoYXJBdChzdHJlYW0uc3RhcnQgLSAxKSA9PSAiXHQiOwogICAgfQogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIGNvbnRleHQ6IGRvY3VtZW50CiAgICAvLyAKICAgIC8vIGFuIFhNTCBkb2N1bWVudCBjYW4gY29udGFpbjoKICAgIC8vIC0gYSBzaW5nbGUgZGVjbGFyYXRpb24gKGlmIGRlZmluZWQsIGl0IG11c3QgYmUgdGhlIHZlcnkgZmlyc3QgbGluZSkKICAgIC8vIC0gZXhhY3RseSBvbmUgcm9vdCBlbGVtZW50CiAgICAvLyBAdG9kbyB0cnkgdG8gYWN0dWFsbHkgbGltaXQgdGhlIG51bWJlciBvZiByb290IGVsZW1lbnRzIHRvIDEKICAgIC8vIC0gemVybyBvciBtb3JlIGNvbW1lbnRzCiAgICBmdW5jdGlvbiBwYXJzZURvY3VtZW50KHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBpZihzdHJlYW0uZWF0KCI8IikpIHsKICAgICAgICAgICAgaWYoc3RyZWFtLmVhdCgiPyIpKSB7CiAgICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIGluc3RydWN0aW9uCiAgICAgICAgICAgICAgICBwdXNoQ29udGV4dChzdGF0ZSwgVEFHX0lOU1RSVUNUSU9OKTsKICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25TdGFydFRhZzsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9JTlNUUlVDVElPTjsKICAgICAgICAgICAgfSBlbHNlIGlmKHN0cmVhbS5tYXRjaCgiIS0tIikpIHsKICAgICAgICAgICAgICAgIC8vIG5ldyBjb250ZXh0OiBjb21tZW50CiAgICAgICAgICAgICAgICBwdXNoQ29udGV4dChzdGF0ZSwgVEFHX0NPTU1FTlQpOwogICAgICAgICAgICAgICAgcmV0dXJuIGNoYWluKHN0cmVhbSwgc3RhdGUsIGluQmxvY2soU1RZTEVfQ09NTUVOVCwgIi0tPiIsIHBhcnNlRG9jdW1lbnQpKTsKICAgICAgICAgICAgfSBlbHNlIGlmKHN0cmVhbS5lYXRTcGFjZSgpIHx8IHN0cmVhbS5lb2woKSApIHsKICAgICAgICAgICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQKICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50VGFnTmFtZTsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FTEVNRU5UX05BTUU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gZXJyb3Igb24gbGluZQogICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICByZXR1cm4gU1RZTEVfRVJST1I7CiAgICB9CgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvLyBjb250ZXh0OiBYTUwgZWxlbWVudCBzdGFydC10YWcgb3IgZW5kLXRhZwogICAgLy8KICAgIC8vIC0gZWxlbWVudCBzdGFydC10YWcgY2FuIGNvbnRhaW4gYXR0cmlidXRlcwogICAgLy8gLSBlbGVtZW50IHN0YXJ0LXRhZyBtYXkgc2VsZi1jbG9zZSAob3Igc3RhcnQgYW4gZWxlbWVudCBibG9jayBpZiBpdCBkb2Vzbid0KQogICAgLy8gLSBlbGVtZW50IGVuZC10YWcgY2FuIGNvbnRhaW4gb25seSB0aGUgdGFnIG5hbWUKICAgIGZ1bmN0aW9uIHBhcnNlRWxlbWVudFRhZ05hbWUoc3RyZWFtLCBzdGF0ZSkgewogICAgICAgIC8vIGdldCB0aGUgbmFtZSBvZiB0aGUgdGFnCiAgICAgICAgdmFyIHN0YXJ0UG9zID0gc3RyZWFtLnBvczsKICAgICAgICBpZihzdHJlYW0ubWF0Y2goL15bYS16QS1aXzpdWy1hLXpBLVowLTlfOi5dKi8pKSB7CiAgICAgICAgICAgIC8vIGVsZW1lbnQgc3RhcnQtdGFnCiAgICAgICAgICAgIHZhciB0YWdOYW1lID0gc3RyZWFtLnN0cmluZy5zdWJzdHJpbmcoc3RhcnRQb3MsIHN0cmVhbS5wb3MpOwogICAgICAgICAgICBwdXNoQ29udGV4dChzdGF0ZSwgdGFnTmFtZSk7CiAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50OwogICAgICAgICAgICByZXR1cm4gU1RZTEVfRUxFTUVOVF9OQU1FOwogICAgICAgIH0gZWxzZSBpZihzdHJlYW0ubWF0Y2goL15cL1thLXpBLVpfOl1bLWEtekEtWjAtOV86Ll0qKCApKj4vKSkgewogICAgICAgICAgICAvLyBlbGVtZW50IGVuZC10YWcKICAgICAgICAgICAgdmFyIGVuZFRhZ05hbWUgPSBzdHJlYW0uc3RyaW5nLnN1YnN0cmluZyhzdGFydFBvcyArIDEsIHN0cmVhbS5wb3MgLSAxKS50cmltKCk7CiAgICAgICAgICAgIHZhciBvbGRDb250ZXh0ID0gcG9wQ29udGV4dChzdGF0ZSk7CiAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gc3RhdGUuY29udGV4dCA9PSBudWxsID8gcGFyc2VEb2N1bWVudCA6IHBhcnNlRWxlbWVudEJsb2NrOwogICAgICAgICAgICBpZihvbGRDb250ZXh0ID09IG51bGwgfHwgZW5kVGFnTmFtZSAhPSBvbGRDb250ZXh0LnRhZ05hbWUpIHsKICAgICAgICAgICAgICAgIC8vIHRoZSBzdGFydCBhbmQgZW5kIHRhZyBuYW1lcyBzaG91bGQgbWF0Y2ggLSBlcnJvcgogICAgICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VSUk9SOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBTVFlMRV9FTEVNRU5UX05BTUU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gbm8gdGFnIG5hbWUgLSBlcnJvcgogICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHN0YXRlLmNvbnRleHQgPT0gbnVsbCA/IHBhcnNlRG9jdW1lbnQgOiBwYXJzZUVsZW1lbnRCbG9jazsKICAgICAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXj5dLyk7CiAgICAgICAgICAgIHN0cmVhbS5lYXQoIj4iKTsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VSUk9SOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBzdHJlYW0uc2tpcFRvRW5kKCk7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIHBhcnNlRWxlbWVudChzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgaWYoc3RyZWFtLm1hdGNoKC9eXC8+LykpIHsKICAgICAgICAgICAgLy8gc2VsZi1jbG9zaW5nIHRhZwogICAgICAgICAgICBwb3BDb250ZXh0KHN0YXRlKTsKICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBzdGF0ZS5jb250ZXh0ID09IG51bGwgPyBwYXJzZURvY3VtZW50IDogcGFyc2VFbGVtZW50QmxvY2s7CiAgICAgICAgICAgIHJldHVybiBTVFlMRV9FTEVNRU5UX05BTUU7CiAgICAgICAgfSBlbHNlIGlmKHN0cmVhbS5lYXQoL14+LykpIHsKICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZUVsZW1lbnRCbG9jazsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VMRU1FTlRfTkFNRTsKICAgICAgICB9IGVsc2UgaWYoaXNUb2tlblNlcGFyYXRlZChzdHJlYW0pICYmIHN0cmVhbS5tYXRjaCgvXlthLXpBLVpfOl1bLWEtekEtWjAtOV86Ll0qKCApKj0vKSkgewogICAgICAgICAgICAvLyBhdHRyaWJ1dGUKICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZUF0dHJpYnV0ZTsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0FUVFJJQlVURTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gbm8gb3RoZXIgb3B0aW9ucyAtIHRoaXMgaXMgYW4gZXJyb3IKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHN0YXRlLmNvbnRleHQgPT0gbnVsbCA/IHBhcnNlRG9jdW1lbnQgOiBwYXJzZURvY3VtZW50OwogICAgICAgIHN0cmVhbS5lYXRXaGlsZSgvW14+XS8pOwogICAgICAgIHN0cmVhbS5lYXQoIj4iKTsKICAgICAgICByZXR1cm4gU1RZTEVfRVJST1I7CiAgICB9CiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy8gY29udGV4dDogYXR0cmlidXRlCiAgICAvLyAKICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZXMgbWF5IGNvbnRhaW4gZXZlcnl0aGluZywgZXhjZXB0OgogICAgLy8gLSB0aGUgZW5kaW5nIHF1b3RlICh3aXRoICcgb3IgIikgLSB0aGlzIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHZhbHVlCiAgICAvLyAtIHRoZSBjaGFyYWN0ZXIgIjwiIC0gc2hvdWxkIG5ldmVyIGFwcGVhcgogICAgLy8gLSBhbXBlcnNhbmQgKCImIikgLSB1bmxlc3MgaXQgc3RhcnRzIGEgcmVmZXJlbmNlOiBhIHN0cmluZyB0aGF0IGVuZHMgd2l0aCBhIHNlbWktY29sb24gKCI7IikKICAgIC8vIC0tLT4gbm90ZTogdGhpcyBwYXJzZXIgaXMgbGF4IGluIHdoYXQgbWF5IGJlIHB1dCBpbnRvIGEgcmVmZXJlbmNlIHN0cmluZywKICAgIC8vIC0tLT4gY29uc3VsdCBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNOVC1SZWZlcmVuY2UgaWYgeW91IHdhbnQgdG8gbWFrZSBpdCB0aWdodGVyCiAgICBmdW5jdGlvbiBwYXJzZUF0dHJpYnV0ZShzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgdmFyIHF1b3RlID0gc3RyZWFtLm5leHQoKTsKICAgICAgICBpZihxdW90ZSAhPSAiXCIiICYmIHF1b3RlICE9ICInIikgewogICAgICAgICAgICAvLyBhdHRyaWJ1dGUgbXVzdCBiZSBxdW90ZWQKICAgICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwogICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlRWxlbWVudDsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VSUk9SOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBzdGF0ZS50b2tQYXJhbXMucXVvdGUgPSBxdW90ZTsgICAgCiAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZUF0dHJpYnV0ZVZhbHVlOwogICAgICAgIHJldHVybiBTVFlMRV9XT1JEOwogICAgfQoKICAgIC8vIEB0b2RvOiBmaW5kIG91dCB3aGV0aGVyIHRoaXMgYXR0cmlidXRlIHZhbHVlIHNwYW5zIG11bHRpcGxlIGxpbmVzLAogICAgLy8gICAgICAgIGFuZCBpZiBzbywgcHVzaCBhIGNvbnRleHQgZm9yIGl0IGluIG9yZGVyIG5vdCB0byBpbmRlbnQgaXQKICAgIC8vICAgICAgICAob3Igc29tZXRoaW5nIG9mIHRoZSBzb3J0Li4pCiAgICBmdW5jdGlvbiBwYXJzZUF0dHJpYnV0ZVZhbHVlKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICB2YXIgY2ggPSAiIjsKICAgICAgICB3aGlsZSghc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgICAgIGNoID0gc3RyZWFtLm5leHQoKTsKICAgICAgICAgICAgaWYoY2ggPT0gc3RhdGUudG9rUGFyYW1zLnF1b3RlKSB7CiAgICAgICAgICAgICAgICAvLyBlbmQgcXVvdGUgZm91bmQKICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50OwogICAgICAgICAgICAgICAgcmV0dXJuIFNUWUxFX1dPUkQ7CiAgICAgICAgICAgIH0gZWxzZSBpZihjaCA9PSAiPCIpIHsKICAgICAgICAgICAgICAgIC8vIGNhbid0IGhhdmUgbGVzcy10aGFuIHNpZ25zIGluIGFuIGF0dHJpYnV0ZSB2YWx1ZSwgZXZlcgogICAgICAgICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpCiAgICAgICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlRWxlbWVudDsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgfSBlbHNlIGlmKGNoID09ICImIikgewogICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlIC0gbG9vayBmb3IgYSBzZW1pLWNvbG9uLCBvciByZXR1cm4gZXJyb3IgaWYgbm9uZSBmb3VuZAogICAgICAgICAgICAgICAgY2ggPSBzdHJlYW0ubmV4dCgpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzZW1pLWNvbG9uIGlzbid0IHJpZ2h0IGFmdGVyIHRoZSBhbXBlcnNhbmQKICAgICAgICAgICAgICAgIGlmKGNoID09ICc7JykgewogICAgICAgICAgICAgICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKQogICAgICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50OwogICAgICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIG5vIGxlc3MtdGhhbiBjaGFyYWN0ZXJzIHNsaXBwZWQgaW4KICAgICAgICAgICAgICAgIHdoaWxlKCFzdHJlYW0uZW9sKCkgJiYgY2ggIT0gIjsiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY2ggPT0gIjwiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbid0IGhhdmUgbGVzcy10aGFuIHNpZ25zIGluIGFuIGF0dHJpYnV0ZSB2YWx1ZSwgZXZlcgogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uc2tpcFRvRW5kKCkKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZUVsZW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY2ggPSBzdHJlYW0ubmV4dCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoc3RyZWFtLmVvbCgpICYmIGNoICE9ICI7IikgewogICAgICAgICAgICAgICAgICAgIC8vIG5vIGFtcGVyc2FuZCBmb3VuZCAtIGVycm9yCiAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwogICAgICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50OwogICAgICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gYXR0cmlidXRlIHZhbHVlIGNvbnRpbnVlcyB0byBuZXh0IGxpbmUKICAgICAgICByZXR1cm4gU1RZTEVfV09SRDsKICAgIH0KICAgIAogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvLyBjb250ZXh0OiBlbGVtZW50IGJsb2NrCiAgICAvLwogICAgLy8gYSBibG9jayBjYW4gY29udGFpbjoKICAgIC8vIC0gZWxlbWVudHMKICAgIC8vIC0gdGV4dAogICAgLy8gLSBDREFUQSBzZWN0aW9ucwogICAgLy8gLSBjb21tZW50cwogICAgZnVuY3Rpb24gcGFyc2VFbGVtZW50QmxvY2soc3RyZWFtLCBzdGF0ZSkgewogICAgICAgIGlmKHN0cmVhbS5lYXQoIjwiKSkgewogICAgICAgICAgICBpZihzdHJlYW0ubWF0Y2goIj8iKSkgewogICAgICAgICAgICAgICAgcHVzaENvbnRleHQoc3RhdGUsIFRBR19JTlNUUlVDVElPTik7CiAgICAgICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uU3RhcnRUYWc7CiAgICAgICAgICAgICAgICByZXR1cm4gU1RZTEVfSU5TVFJVQ1RJT047CiAgICAgICAgICAgIH0gZWxzZSBpZihzdHJlYW0ubWF0Y2goIiEtLSIpKSB7CiAgICAgICAgICAgICAgICAvLyBuZXcgY29udGV4dDogY29tbWVudAogICAgICAgICAgICAgICAgcHVzaENvbnRleHQoc3RhdGUsIFRBR19DT01NRU5UKTsKICAgICAgICAgICAgICAgIHJldHVybiBjaGFpbihzdHJlYW0sIHN0YXRlLCBpbkJsb2NrKFNUWUxFX0NPTU1FTlQsICItLT4iLAogICAgICAgICAgICAgICAgICAgIHN0YXRlLmNvbnRleHQgPT0gbnVsbCA/IHBhcnNlRG9jdW1lbnQgOiBwYXJzZUVsZW1lbnRCbG9jaykpOwogICAgICAgICAgICB9IGVsc2UgaWYoc3RyZWFtLm1hdGNoKCIhW0NEQVRBWyIpKSB7CiAgICAgICAgICAgICAgICAvLyBuZXcgY29udGV4dDogQ0RBVEEgc2VjdGlvbgogICAgICAgICAgICAgICAgcHVzaENvbnRleHQoc3RhdGUsIFRBR19DREFUQSk7CiAgICAgICAgICAgICAgICByZXR1cm4gY2hhaW4oc3RyZWFtLCBzdGF0ZSwgaW5CbG9jayhTVFlMRV9URVhULCAiXV0+IiwKICAgICAgICAgICAgICAgICAgICBzdGF0ZS5jb250ZXh0ID09IG51bGwgPyBwYXJzZURvY3VtZW50IDogcGFyc2VFbGVtZW50QmxvY2spKTsKICAgICAgICAgICAgfSBlbHNlIGlmKHN0cmVhbS5lYXRTcGFjZSgpIHx8IHN0cmVhbS5lb2woKSApIHsKICAgICAgICAgICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQKICAgICAgICAgICAgICAgIHN0YXRlLnRva2VuaXplID0gcGFyc2VFbGVtZW50VGFnTmFtZTsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9FTEVNRU5UX05BTUU7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBuZXcgY29udGV4dDogdGV4dAogICAgICAgICAgICBwdXNoQ29udGV4dChzdGF0ZSwgVEFHX1RFWFQpOwogICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlVGV4dDsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHN0YXRlLnRva2VuaXplID0gc3RhdGUuY29udGV4dCA9PSBudWxsID8gcGFyc2VEb2N1bWVudCA6IHBhcnNlRWxlbWVudEJsb2NrOwogICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gcGFyc2VUZXh0KHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBzdHJlYW0uZWF0V2hpbGUoL1tePF0vKTsKICAgICAgICBpZighc3RyZWFtLmVvbCgpKSB7CiAgICAgICAgICAgIC8vIHdlIGNhbm5vdCBwb3NzaWJseSBiZSBpbiB0aGUgZG9jdW1lbnQgY29udGV4dCwKICAgICAgICAgICAgLy8ganVzdCBpbnNpZGUgYW4gZWxlbWVudCBibG9jawogICAgICAgICAgICBwb3BDb250ZXh0KHN0YXRlKTsKICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZUVsZW1lbnRCbG9jazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFNUWUxFX1RFWFQ7CiAgICB9CgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvLyBjb250ZXh0OiBYTUwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMKICAgIC8vCiAgICAvLyBYTUwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMgKFBJcykgYWxsb3cgZG9jdW1lbnRzIHRvIGNvbnRhaW4gaW5zdHJ1Y3Rpb25zIGZvciBhcHBsaWNhdGlvbnMuCiAgICAvLyBQSSBmb3JtYXQ6IDw/bmFtZSBkYXRhPz4KICAgIC8vIC0gJ25hbWUnIGNhbiBiZSBhbnl0aGluZyBvdGhlciB0aGFuICd4bWwnIChjYXNlLWluc2Vuc2l0aXZlKQogICAgLy8gLSAnZGF0YScgY2FuIGJlIGFueXRoaW5nIHdoaWNoIGRvZXNuJ3QgY29udGFpbiAnPz4nCiAgICAvLyBYTUwgZGVjbGFyYXRpb24gaXMgYSBzcGVjaWFsIFBJIChzZWUgWE1MIGRlY2xhcmF0aW9uIGNvbnRleHQgYmVsb3cpCiAgICBmdW5jdGlvbiBwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvblN0YXJ0VGFnKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBpZihzdHJlYW0ubWF0Y2goInhtbCIsIHRydWUsIHRydWUpKSB7CiAgICAgICAgICAgIC8vIHhtbCBkZWNsYXJhdGlvbgogICAgICAgICAgICBpZihzdGF0ZS5saW5lTnVtYmVyID4gMSB8fCBzdHJlYW0ucG9zID4gNSkgewogICAgICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZURvY3VtZW50OwogICAgICAgICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VSUk9SOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZURlY2xhcmF0aW9uVmVyc2lvbjsKICAgICAgICAgICAgICAgIHJldHVybiBTVFlMRV9JTlNUUlVDVElPTjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gcmVndWxhciBwcm9jZXNzaW5nIGluc3RydWN0aW9uCiAgICAgICAgaWYoaXNUb2tlblNlcGFyYXRlZChzdHJlYW0pIHx8IHN0cmVhbS5tYXRjaCgiPz4iKSkgewogICAgICAgICAgICAvLyB3ZSBoYXZlIGEgc3BhY2UgYWZ0ZXIgdGhlIHN0YXJ0LXRhZywgb3Igbm90aGluZyBidXQgdGhlIGVuZC10YWcKICAgICAgICAgICAgLy8gZWl0aGVyIHdheSAtIGVycm9yIQogICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlRG9jdW1lbnQ7CiAgICAgICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0VSUk9SOwogICAgICAgIH0KCiAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbkJvZHk7CiAgICAgICAgcmV0dXJuIFNUWUxFX0lOU1RSVUNUSU9OOwogICAgfQoKICAgIGZ1bmN0aW9uIHBhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uQm9keShzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgc3RyZWFtLmVhdFdoaWxlKC9bXj9dLyk7CiAgICAgICAgaWYoc3RyZWFtLmVhdCgiPyIpKSB7CiAgICAgICAgICAgIGlmKHN0cmVhbS5lYXQoIj4iKSkgewogICAgICAgICAgICAgICAgcG9wQ29udGV4dChzdGF0ZSk7CiAgICAgICAgICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHN0YXRlLmNvbnRleHQgPT0gbnVsbCA/IHBhcnNlRG9jdW1lbnQgOiBwYXJzZUVsZW1lbnRCbG9jazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gU1RZTEVfSU5TVFJVQ1RJT047CiAgICB9CgogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIGNvbnRleHQ6IFhNTCBkZWNsYXJhdGlvbgogICAgLy8KICAgIC8vIFhNTCBkZWNsYXJhdGlvbiBpcyBvZiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKICAgIC8vIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyIgPz4KICAgIC8vIC0gbXVzdCBzdGFydCBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBmaXJzdCBsaW5lCiAgICAvLyAtIG1heSBzcGFuIG11bHRpcGxlIGxpbmVzCiAgICAvLyAtIG11c3QgaW5jbHVkZSAndmVyc2lvbicKICAgIC8vIC0gbWF5IGluY2x1ZGUgJ2VuY29kaW5nJyBhbmQgJ3N0YW5kYWxvbmUnIChpbiB0aGF0IG9yZGVyIGFmdGVyICd2ZXJzaW9uJykKICAgIC8vIC0gYXR0cmlidXRlIG5hbWVzIG11c3QgYmUgbG93ZXJjYXNlCiAgICAvLyAtIGNhbm5vdCBjb250YWluIGFueXRoaW5nIGVsc2Ugb24gdGhlIGxpbmUKICAgIGZ1bmN0aW9uIHBhcnNlRGVjbGFyYXRpb25WZXJzaW9uKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlRGVjbGFyYXRpb25FbmNvZGluZzsKICAgICAgICAKICAgICAgICBpZihpc1Rva2VuU2VwYXJhdGVkKHN0cmVhbSkgJiYgc3RyZWFtLm1hdGNoKC9edmVyc2lvbiggKSo9KCApKiIoW2EtekEtWjAtOV8uOl18XC0pKyIvKSkgewogICAgICAgICAgICByZXR1cm4gU1RZTEVfSU5TVFJVQ1RJT047CiAgICAgICAgfQogICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTsKICAgICAgICByZXR1cm4gU1RZTEVfRVJST1I7CiAgICB9CgogICAgZnVuY3Rpb24gcGFyc2VEZWNsYXJhdGlvbkVuY29kaW5nKHN0cmVhbSwgc3RhdGUpIHsKICAgICAgICBzdGF0ZS50b2tlbml6ZSA9IHBhcnNlRGVjbGFyYXRpb25TdGFuZGFsb25lOwogICAgICAgIAogICAgICAgIGlmKGlzVG9rZW5TZXBhcmF0ZWQoc3RyZWFtKSAmJiBzdHJlYW0ubWF0Y2goL15lbmNvZGluZyggKSo9KCApKiJbQS1aYS16XShbQS1aYS16MC05Ll9dfFwtKSoiLykpIHsKICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0lOU1RSVUNUSU9OOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmdW5jdGlvbiBwYXJzZURlY2xhcmF0aW9uU3RhbmRhbG9uZShzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZURlY2xhcmF0aW9uRW5kVGFnOwogICAgICAgIAogICAgICAgIGlmKGlzVG9rZW5TZXBhcmF0ZWQoc3RyZWFtKSAmJiBzdHJlYW0ubWF0Y2goL15zdGFuZGFsb25lKCApKj0oICkqIih5ZXN8bm8pIi8pKSB7CiAgICAgICAgICAgIHJldHVybiBTVFlMRV9JTlNUUlVDVElPTjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgZnVuY3Rpb24gcGFyc2VEZWNsYXJhdGlvbkVuZFRhZyhzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgc3RhdGUudG9rZW5pemUgPSBwYXJzZURvY3VtZW50OwogICAgICAgIAogICAgICAgIGlmKHN0cmVhbS5tYXRjaCgiPz4iKSAmJiBzdHJlYW0uZW9sKCkpIHsKICAgICAgICAgICAgcG9wQ29udGV4dChzdGF0ZSk7CiAgICAgICAgICAgIHJldHVybiBTVFlMRV9JTlNUUlVDVElPTjsKICAgICAgICB9CiAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwogICAgICAgIHJldHVybiBTVFlMRV9FUlJPUjsKICAgIH0KCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vIHJldHVybmVkIG9iamVjdAogICAgcmV0dXJuIHsKICAgICAgICBlbGVjdHJpY0NoYXJzOiAiLyIsCiAgICAgICAgCiAgICAgICAgc3RhcnRTdGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICB0b2tlbml6ZTogcGFyc2VEb2N1bWVudCwKICAgICAgICAgICAgICAgIHRva1BhcmFtczoge30sCiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiAwLAogICAgICAgICAgICAgICAgbGluZUVycm9yOiBmYWxzZSwKICAgICAgICAgICAgICAgIGNvbnRleHQ6IG51bGwsCiAgICAgICAgICAgICAgICBpbmRlbnRlZDogMAogICAgICAgICAgICB9OwogICAgICAgIH0sCgogICAgICAgIHRva2VuOiBmdW5jdGlvbihzdHJlYW0sIHN0YXRlKSB7CiAgICAgICAgICAgIGlmKHN0cmVhbS5zb2woKSkgewogICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBhIG5ldyBsaW5lCiAgICAgICAgICAgICAgICBzdGF0ZS5saW5lTnVtYmVyKys7CiAgICAgICAgICAgICAgICBzdGF0ZS5saW5lRXJyb3IgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHN0YXRlLmluZGVudGVkID0gc3RyZWFtLmluZGVudGF0aW9uKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGVhdCBhbGwgKHRoZSBzcGFjZXMpIHlvdSBjYW4KICAgICAgICAgICAgaWYoc3RyZWFtLmVhdFNwYWNlKCkpIHJldHVybiBudWxsOwoKICAgICAgICAgICAgLy8gcnVuIHRoZSBjdXJyZW50IHRva2VuaXplIGZ1bmN0aW9uLCBhY2NvcmRpbmcgdG8gdGhlIHN0YXRlCiAgICAgICAgICAgIHZhciBzdHlsZSA9IHN0YXRlLnRva2VuaXplKHN0cmVhbSwgc3RhdGUpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gaXMgdGhlcmUgYW4gZXJyb3Igc29tZXdoZXJlIGluIHRoZSBsaW5lPwogICAgICAgICAgICBzdGF0ZS5saW5lRXJyb3IgPSAoc3RhdGUubGluZUVycm9yIHx8IHN0eWxlID09ICJlcnJvciIpOwoKICAgICAgICAgICAgcmV0dXJuIHN0eWxlOwogICAgICAgIH0sCiAgICAgICAgCiAgICAgICAgYmxhbmtMaW5lOiBmdW5jdGlvbihzdGF0ZSkgewogICAgICAgICAgICAvLyBibGFuayBsaW5lcyBhcmUgbGluZXMgdG9vIQogICAgICAgICAgICBzdGF0ZS5saW5lTnVtYmVyKys7CiAgICAgICAgICAgIHN0YXRlLmxpbmVFcnJvciA9IGZhbHNlOwogICAgICAgIH0sCiAgICAgICAgCiAgICAgICAgaW5kZW50OiBmdW5jdGlvbihzdGF0ZSwgdGV4dEFmdGVyKSB7CiAgICAgICAgICAgIGlmKHN0YXRlLmNvbnRleHQpIHsKICAgICAgICAgICAgICAgIGlmKHN0YXRlLmNvbnRleHQubm9JbmRlbnQgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBpbmRlbnQgLSBubyByZXR1cm4gdmFsdWUgYXQgYWxsCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYodGV4dEFmdGVyLm1hdGNoKC9ePFwvLiovKSkgewogICAgICAgICAgICAgICAgICAgIC8vIGVuZy10YWcgLSBpbmRlbnQgYmFjayB0byBsYXN0IGNvbnRleHQKICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUuY29udGV4dC5pbmRlbnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBpbmRlbnQgdG8gbGFzdCBjb250ZXh0ICsgcmVndWxhciBpbmRlbnQgdW5pdAogICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmNvbnRleHQuaW5kZW50ICsgaW5kZW50VW5pdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9LAogICAgICAgIAogICAgICAgIGNvbXBhcmVTdGF0ZXM6IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgICAgaWYgKGEuaW5kZW50ZWQgIT0gYi5pbmRlbnRlZCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICBmb3IgKHZhciBjYSA9IGEuY29udGV4dCwgY2IgPSBiLmNvbnRleHQ7IDsgY2EgPSBjYS5wcmV2LCBjYiA9IGNiLnByZXYpIHsKICAgICAgICAgICAgICAgIGlmICghY2EgfHwgIWNiKSByZXR1cm4gY2EgPT0gY2I7CiAgICAgICAgICAgICAgICBpZiAoY2EudGFnTmFtZSAhPSBjYi50YWdOYW1lKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Owp9KTsKCkNvZGVNaXJyb3IuZGVmaW5lTUlNRSgiYXBwbGljYXRpb24veG1sIiwgInB1cmV4bWwiKTsKQ29kZU1pcnJvci5kZWZpbmVNSU1FKCJ0ZXh0L3htbCIsICJwdXJleG1sIik7Cg==]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyBDb2RlTWlycm9yIDIKCkNvZGVNaXJyb3IgMiBpcyBhIHJld3JpdGUgb2YgW0NvZGVNaXJyb3IKMV0oaHR0cDovL2dpdGh1Yi5jb20vbWFyaWpuaC9Db2RlTWlycm9yKS4gVGhlIGRvY3MgbGl2ZQpbaGVyZV0oaHR0cDovL2NvZGVtaXJyb3IubmV0L21hbnVhbC5odG1sKSwgYW5kIHRoZSBwcm9qZWN0IHBhZ2UgaXMKW2h0dHA6Ly9jb2RlbWlycm9yLm5ldC9dKGh0dHA6Ly9jb2RlbWlycm9yLm5ldC8pLgo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/theme/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/CodeMirror/theme/default.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmNtLXMtZGVmYXVsdCBzcGFuLmNtLWtleXdvcmQge2NvbG9yOiAjNzA4O30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLWF0b20ge2NvbG9yOiAjMjE5O30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLW51bWJlciB7Y29sb3I6ICMxNjQ7fQouY20tcy1kZWZhdWx0IHNwYW4uY20tZGVmIHtjb2xvcjogIzAwZjt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS12YXJpYWJsZSB7Y29sb3I6IGJsYWNrO30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLXZhcmlhYmxlLTIge2NvbG9yOiAjMDVhO30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLXZhcmlhYmxlLTMge2NvbG9yOiAjMGE1O30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLXByb3BlcnR5IHtjb2xvcjogYmxhY2s7fQouY20tcy1kZWZhdWx0IHNwYW4uY20tb3BlcmF0b3Ige2NvbG9yOiBibGFjazt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1jb21tZW50IHtjb2xvcjogI2E1MDt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1zdHJpbmcge2NvbG9yOiAjYTExO30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLXN0cmluZy0yIHtjb2xvcjogI2Y1MDt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1tZXRhIHtjb2xvcjogIzU1NTt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1lcnJvciB7Y29sb3I6ICNmMDA7fQouY20tcy1kZWZhdWx0IHNwYW4uY20tcXVhbGlmaWVyIHtjb2xvcjogIzU1NTt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1idWlsdGluIHtjb2xvcjogIzMwYTt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS1icmFja2V0IHtjb2xvcjogI2NjNzt9Ci5jbS1zLWRlZmF1bHQgc3Bhbi5jbS10YWcge2NvbG9yOiAjMTcwO30KLmNtLXMtZGVmYXVsdCBzcGFuLmNtLWF0dHJpYnV0ZSB7Y29sb3I6ICMwMGM7fQo=]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/theme/elegant.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmNtLXMtZWxlZ2FudCBzcGFuLmNtLW51bWJlciwgLmNtLXMtZWxlZ2FudCBzcGFuLmNtLXN0cmluZywgLmNtLXMtZWxlZ2FudCBzcGFuLmNtLWF0b20ge2NvbG9yOiAjNzYyO30KLmNtLXMtZWxlZ2FudCBzcGFuLmNtLWNvbW1lbnQge2NvbG9yOiAjMjYyO2ZvbnQtc3R5bGU6IGl0YWxpYzt9Ci5jbS1zLWVsZWdhbnQgc3Bhbi5jbS1tZXRhIHtjb2xvcjogIzU1NTtmb250LXN0eWxlOiBpdGFsaWM7fQouY20tcy1lbGVnYW50IHNwYW4uY20tdmFyaWFibGUge2NvbG9yOiBibGFjazt9Ci5jbS1zLWVsZWdhbnQgc3Bhbi5jbS12YXJpYWJsZS0yIHtjb2xvcjogI2IxMTt9Ci5jbS1zLWVsZWdhbnQgc3Bhbi5jbS1xdWFsaWZpZXIge2NvbG9yOiAjNTU1O30KLmNtLXMtZWxlZ2FudCBzcGFuLmNtLWtleXdvcmQge2NvbG9yOiAjNzMwO30KLmNtLXMtZWxlZ2FudCBzcGFuLmNtLWJ1aWx0aW4ge2NvbG9yOiAjMzBhO30KLmNtLXMtZWxlZ2FudCBzcGFuLmNtLWVycm9yIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZmRkO30K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/theme/neat.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmNtLXMtbmVhdCBzcGFuLmNtLWNvbW1lbnQgeyBjb2xvcjogI2E4NjsgfQouY20tcy1uZWF0IHNwYW4uY20ta2V5d29yZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogYmx1ZTsgfQouY20tcy1uZWF0IHNwYW4uY20tc3RyaW5nIHsgY29sb3I6ICNhMjI7IH0KLmNtLXMtbmVhdCBzcGFuLmNtLWJ1aWx0aW4geyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMwNzc7IH0KLmNtLXMtbmVhdCBzcGFuLmNtLXNwZWNpYWwgeyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMwYWE7IH0KLmNtLXMtbmVhdCBzcGFuLmNtLXZhcmlhYmxlIHsgY29sb3I6IGJsYWNrOyB9Ci5jbS1zLW5lYXQgc3Bhbi5jbS1udW1iZXIsIC5jbS1zLW5lYXQgc3Bhbi5jbS1hdG9tIHsgY29sb3I6ICMzYTM7IH0KLmNtLXMtbmVhdCBzcGFuLmNtLW1ldGEge2NvbG9yOiAjNTU1O30K]]></data>
	</file>
	<file>
	  <filename>/includes/CodeMirror/theme/night.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogTG9vc2VseSBiYXNlZCBvbiB0aGUgTWlkbmlnaHQgVGV4dG1hdGUgdGhlbWUgKi8KCi5jbS1zLW5pZ2h0IHsgYmFja2dyb3VuZDogIzBhMDAxZjsgY29sb3I6ICNmOGY4Zjg7IH0KLmNtLXMtbmlnaHQgc3Bhbi5Db2RlTWlycm9yLXNlbGVjdGVkIHsgYmFja2dyb3VuZDogI2E4ZiAhaW1wb3J0YW50OyB9Ci5jbS1zLW5pZ2h0IC5Db2RlTWlycm9yLWd1dHRlciB7IGJhY2tncm91bmQ6ICMwYTAwMWY7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNhYWE7IH0KLmNtLXMtbmlnaHQgLkNvZGVNaXJyb3ItZ3V0dGVyLXRleHQgeyBjb2xvcjogI2Y4ZjhmODsgfQouY20tcy1uaWdodCAuQ29kZU1pcnJvci1jdXJzb3IgeyBib3JkZXItbGVmdDogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7IH0KCi5jbS1zLW5pZ2h0IHNwYW4uY20tY29tbWVudCB7IGNvbG9yOiAjNjkwMGExOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tYXRvbSB7IGNvbG9yOiAjODQ1ZGM0OyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tbnVtYmVyLCAuY20tcy1uaWdodCBzcGFuLmNtLWF0dHJpYnV0ZSB7IGNvbG9yOiAjZmZkNTAwOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20ta2V5d29yZCB7IGNvbG9yOiAjNTk5ZWZmOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tc3RyaW5nIHsgY29sb3I6ICMzN2YxNGE7IH0KLmNtLXMtbmlnaHQgc3Bhbi5jbS1tZXRhIHsgY29sb3I6ICM3Njc4ZTI7IH0KLmNtLXMtbmlnaHQgc3Bhbi5jbS12YXJpYWJsZS0yLCAuY20tcy1uaWdodCBzcGFuLmNtLXRhZyB7IGNvbG9yOiAjOTliMmZmOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tdmFyaWFibGUtMywgLmNtLXMtbmlnaHQgc3Bhbi5jbS1kZWYgeyBjb2xvcjogd2hpdGU7IH0KLmNtLXMtbmlnaHQgc3Bhbi5jbS1lcnJvciB7IGNvbG9yOiAjOWQxZTE1OyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tYnJhY2tldCB7IGNvbG9yOiAjOGRhNmNlOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tY29tbWVudCB7IGNvbG9yOiAjNjkwMGExOyB9Ci5jbS1zLW5pZ2h0IHNwYW4uY20tYnVpbHRpbiwgLmNtLXMtbmlnaHQgc3Bhbi5jbS1zcGVjaWFsIHsgY29sb3I6ICNmZjllNTk7IH0K]]></data>
	</file>
	<file>
	  <filename>/includes/custom_jQueryPlugins.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gY29kZSgpe307alF1ZXJ5LmV4dGVuZChqUXVlcnkuZXhwclsnOiddLHtmb2N1czpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gZWxlbWVudD09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudH19KTsoZnVuY3Rpb24oJCl7JC5mbi5kb3dubG9hZD1mdW5jdGlvbih1cmwsZGF0YSxtZXRob2Qpe2lmKHVybCYmZGF0YSl7ZGF0YT10eXBlb2YgZGF0YT09J3N0cmluZyc/ZGF0YTpqUXVlcnkucGFyYW0oZGF0YSk7dmFyIGlucHV0cz0nJztqUXVlcnkuZWFjaChkYXRhLnNwbGl0KCcmJyksZnVuY3Rpb24oKXt2YXIgcGFpcj10aGlzLnNwbGl0KCc9Jyk7aW5wdXRzKz0nPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJytwYWlyWzBdKyciIHZhbHVlPSInK3BhaXJbMV0rJyIgLz4nfSk7alF1ZXJ5KCc8Zm9ybSBhY3Rpb249IicrdXJsKyciIG1ldGhvZD0iJysobWV0aG9kfHwncG9zdCcpKyciPicraW5wdXRzKyc8L2Zvcm0+JykuYXBwZW5kVG8oJ2JvZHknKS5zdWJtaXQoKS5yZW1vdmUoKX19fSkoalF1ZXJ5KTsoZnVuY3Rpb24oJCl7JC5mbi5saW5lTnVtYmVyPWZ1bmN0aW9uKG8pe2FyZWE9dGhpczt2YXIgcz17bWFya19saW5lOltudWxsXSxtYXJrX2NsYXNzOm51bGwsbWFya19pY29uOm51bGwsbWFya19zdGF0ZTpudWxsLG1hcmtfY3NzOm51bGx9O2lmKG8pJC5leHRlbmQocyxvKTtpZih0eXBlb2YgKHMubWFya19saW5lKT09InN0cmluZyIpcy5tYXJrX2xpbmU9W3MubWFya19saW5lXTtpZih0eXBlb2YgKHMubWFya19jbGFzcyk9PSJzdHJpbmciKXMubWFya19jbGFzcz1bcy5tYXJrX2NsYXNzXTtpZih0eXBlb2YgKHMubWFya19pY29uKT09InN0cmluZyIpcy5tYXJrX2ljb249W3MubWFya19pY29uXTtpZih0eXBlb2YgKHMubWFya19zdGF0ZSk9PSJzdHJpbmciKXMubWFya19zdGF0ZT1bcy5tYXJrX3N0YXRlXTtpZih0eXBlb2YgKHMubWFya19jc3MpPT0ic3RyaW5nIilzLm1hcmtfY3NzPVtzLm1hcmtfY3NzXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdkaXYgLnVpLWljb24nKS5yZW1vdmUoKTt2YXIgJGxpbmVzPSQodGhpcykuZmluZCgnZGl2JykucmVtb3ZlQ2xhc3MoJycrcy5tYXJrX2NsYXNzKycnKS5hdHRyKCdzdHlsZScsJycpOyRsaW5lcy5lYWNoKGZ1bmN0aW9uKCl7dmFyICRsaW5lPSQodGhpcyk7dmFyIG51bT1wYXJzZUludCgkbGluZS50ZXh0KCkpO2lmKCQuaW5BcnJheShudW0scy5tYXJrX2xpbmUpIT09LTEpJGxpbmUuYWRkQ2xhc3MoJycrcy5tYXJrX2NsYXNzKycnKS5jc3Mocy5tYXJrX2Nzcyl9KX0pfX0pKGpRdWVyeSk=]]></data>
	</file>
	<file>
	  <filename>/includes/dialogs_ini.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gdXBkYXRlUHJvZ3MoaWQpe3Byb2dpcz1wcm9naXMrMTskKCIjcHJvZ3Jlc3NiYXIiKS5wcm9ncmVzc2Jhcigib3B0aW9uIiwidmFsdWUiLHByb2dpcyk7c2V0Q291bnQoJ3Byb2dzJytpZCw1MCxmdW5jdGlvbigpe3VwZGF0ZVByb2dzKGlkKX0pfQpmdW5jdGlvbiBwcm9ncyhhcHBseVRvLGlkKXthcHBseVRvLmFwcGVuZCgnPGRpdiBpZD0icHJvZ3Jlc3NiYXIiIHJlbD0iJytpZCsnIiA+PC9kaXY+Jyk7JCgiI3Byb2dyZXNzYmFyW3JlbD0iK2lkKyJdIikucHJvZ3Jlc3NiYXIoe3ZhbHVlOjF9KTtzZXRDb3VudCgnU1VCQ0hFQ0snK2lkLDEwMDAwLGZ1bmN0aW9uKCl7aWYoJCgnI3Byb2dyZXNzYmFyJykuYXR0cigncmVsJyk9PWlkKSQodGhpcykuYXBwZW5kKCc8c3BhbiBjbGFzcz0idWktc3RhdGUtZXJyb3IiIGlkPSJBamF4UkVDT1ZFUiIgcmVsPSInK2lkKyciIHN0eWxlPSJib3R0b206M3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDtjdXJzb3I6IHBvaW50ZXI7ei1pbmRleDo5OTsiPlJFQ09WRVIgJiMxODc7PC9zcGFuPicpfSk7dXBkYXRlUHJvZ3MoaWQpfQpmdW5jdGlvbiBjcmVhdGVEaWFsb2coRElBTE9HLGV2dCxldmVudE9iaixkSUQsdXJsLHVybFRhcmdldCxkV2lkdGgsZGhlaWdodCxmdW5jKXtpZih0eXBlb2YgKGV2dCkhPT0ndW5kZWZpbmVkJyYmZXZ0IT1udWxsKWV2dC5wcmV2ZW50RGVmYXVsdCgpOyQoJ2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9IkRfJytkSUQrJyI+PC9kaXY+Jyk7JCgnI0RfJytkSUQpLmRpYWxvZyhkaWFsb2dPcHRpb24oRElBTE9HLGV2dCxldmVudE9iaixkSUQsdXJsLHVybFRhcmdldCxkV2lkdGgsZGhlaWdodCkpO2lmKHR5cGVvZiAoZnVuYykhPT0ndW5kZWZpbmVkJylmdW5jKCl9CmZ1bmN0aW9uIGZvY3VzRGlhbG9nKG9iail7JCgnLnVpLWRpYWxvZycpLmVhY2goZnVuY3Rpb24oaSl7aWYoJCh0aGlzKS5maW5kKCcudWktd2lkZ2V0LW92ZXJsYXk6Zmlyc3QnKS5sZW5ndGg+MCk7ZWxzZSAkKHRoaXMpLmZpbmQoJy51aS1kaWFsb2ctY29udGVudCcpLnByZXBlbmQoJzxkaXYgY2xhc3M9InVpLXdpZGdldC1vdmVybGF5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjBweDtyaWdodDowcHg7aGVpZ2h0Ojk5OWVtO3dpZHRoOjk5OWVtO2ZpbHRlcjogYWxwaGEob3BhY2l0eT0wMC4wNTUpO29wYWNpdHk6MC4wNTU7Ij48L2Rpdj4nKX0pO29iai5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9CmZ1bmN0aW9uIGRpYWxvZ09wdGlvbihESUFMT0csZXZ0LGV2ZW50T2JqLGRJRCx1cmwsdXJsVGFyZ2V0LGRXaWR0aCxkaGVpZ2h0KXtzd2l0Y2goRElBTE9HKXtjYXNlJ2ltcG9ydF9jbXNtc19jc3MnOntkaWFsb2dPcHRpb25zPXthdXRvT3Blbjp0cnVlLHdpZHRoOmRXaWR0aCxoZWlnaHQ6ZGhlaWdodCxyZXNpemVTdGFydDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLWRpYWxvZy1jb250ZW50JykucHJlcGVuZCgnPGRpdiBjbGFzcz0idWktd2lkZ2V0LW92ZXJsYXkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MHB4O3JpZ2h0OjBweDtoZWlnaHQ6OTk5ZW07d2lkdGg6OTk5ZW07Ij48L2Rpdj4nKX0scmVzaXplU3RvcDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LG9wZW46ZnVuY3Rpb24oZXZlbnQsdWkpeyQoJyNwcm9ncmVzc2JhcicpLnJlbW92ZSgpO2NsZWFyQ291bnQoJ3Byb2dzJytkSUQpO2NsZWFyQ291bnQoJ1NVQkNIRUNLJyk7cHJvZ2lzPTA7Zm9jdXNEaWFsb2coJCh0aGlzKSl9LGZvY3VzOmZ1bmN0aW9uKGV2ZW50LHVpKXtmb2N1c0RpYWxvZygkKHRoaXMpKX0sZHJhZ1N0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktZGlhbG9nLWNvbnRlbnQnKS5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtb3ZlcmxheSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowcHg7cmlnaHQ6MHB4O2hlaWdodDo5OTllbTt3aWR0aDo5OTllbTsiPjwvZGl2PicpfSxkcmFnU3RvcDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LGJ1dHRvbnM6W3todG1sOic8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWRpc2siPjwvc3Bhbj5TdWJtaXQnLGNsaWNrOmZ1bmN0aW9uKCl7YWpheFNjcmlwdFN1Ym1pdCgpOyQoJyNEXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKTskKCcjJytkSUQrJyAuZWRpdFNjcmlwdDpmaXJzdCcpLmNsaWNrKCl9fSx7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJjbGUtY2xvc2UiPjwvc3Bhbj5DYW5jZWwnLGNsaWNrOmZ1bmN0aW9uKCl7JCh0aGlzKS5kaWFsb2coImNsb3NlIik7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX1dLGNsb3NlOmZ1bmN0aW9uKCl7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX07YnJlYWt9O2Nhc2UnYWRkc2NyaXB0Jzp7ZGlhbG9nT3B0aW9ucz17YXV0b09wZW46dHJ1ZSx3aWR0aDpkV2lkdGgsaGVpZ2h0OmRoZWlnaHQscmVzaXplU3RhcnQ6ZnVuY3Rpb24oZXZlbnQsdWkpeyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctY29udGVudCcpLnByZXBlbmQoJzxkaXYgY2xhc3M9InVpLXdpZGdldC1vdmVybGF5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjBweDtyaWdodDowcHg7aGVpZ2h0Ojk5OWVtO3dpZHRoOjk5OWVtOyI+PC9kaXY+Jyl9LHJlc2l6ZVN0b3A6ZnVuY3Rpb24oZXZlbnQsdWkpeyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS13aWRnZXQtb3ZlcmxheScpLnJlbW92ZSgpfSxvcGVuOmZ1bmN0aW9uKGV2ZW50LHVpKXtsb2Fkc2NyaXB0KGV2ZW50T2JqLGRJRCx1cmwsdXJsVGFyZ2V0LGZ1bmN0aW9uKCl7JCgnI0RfJytkSUQpLmFkZENsYXNzKCdhZGRTY3JpcHRzJyk7JCgnI3Byb2dyZXNzYmFyJykucmVtb3ZlKCk7c2NyaXB0T3B0aW9ucyhkSUQpO2NsZWFyQ291bnQoJ3Byb2dzJytkSUQpO2NsZWFyQ291bnQoJ1NVQkNIRUNLJyk7cHJvZ2lzPTA7Zm9jdXNEaWFsb2coJCh0aGlzKSk7c2V0Q3VycmVudFN0YXRlKGRJRCl9KX0sZm9jdXM6ZnVuY3Rpb24oZXZlbnQsdWkpe2ZvY3VzRGlhbG9nKCQodGhpcykpfSxkcmFnU3RhcnQ6ZnVuY3Rpb24oZXZlbnQsdWkpeyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctY29udGVudCcpLnByZXBlbmQoJzxkaXYgY2xhc3M9InVpLXdpZGdldC1vdmVybGF5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjBweDtyaWdodDowcHg7aGVpZ2h0Ojk5OWVtO3dpZHRoOjk5OWVtOyI+PC9kaXY+Jyl9LGRyYWdTdG9wOmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktd2lkZ2V0LW92ZXJsYXknKS5yZW1vdmUoKX0sYnV0dG9uczpbe2h0bWw6JzxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tZGlzayI+PC9zcGFuPlN1Ym1pdCcsY2xpY2s6ZnVuY3Rpb24oKXtkSUQ9JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nLWNvbnRlbnQnKS5hdHRyKCdpZCcpO3ZhciBIQVJEZElEPWRJRDtzZXRDdXJyZW50U3RhdGUoZElEKTtuYW1lPSQoJ2lucHV0W25hbWUkPSJTY3JpcHRTZXRfaW5wdXQiXScpLnZhbCgpO2FqYXhTY3JpcHRTdWJtaXQoJ3Nob3d0ZW1wbGF0ZT1mYWxzZScsZnVuY3Rpb24oZGF0YSl7JCgnIycrSEFSRGRJRCkuZmFkZU91dCgnZmFzdCcsZnVuY3Rpb24oKXskKCcjJytIQVJEZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKX0pO3ZhciB1cmw9QWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0X3NjcmlwdCwwJicrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZtMV9TY3JpcHRTZXQ9JytkYXRhLnJlcGxhY2UoL1teMC05XSsvZywnJykrJyZtMV9hY3RpdmVfdGFiPXNjcmlwdF90ZW1wbGF0ZSZtMV9tb2RlPWVkaXQnO3ZhciBkV2lkdGg9JCh3aW5kb3cpLndpZHRoKCkqMC44O3ZhciBkaGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSowLjg7JCgnI3NjcmlwdF9vZl8nK2RhdGEucmVwbGFjZSgvWzAtOV0rL2csJycpKycgdGJvZHknKS5hcHBlbmQobWFrZU5ld1NjcmlwdFJvdyhkYXRhLnJlcGxhY2UoL1swLTldKy9nLCcnKSxkYXRhLnJlcGxhY2UoL1thLXpdKy9naSwnJyksbmFtZSkpO2NyZWF0ZURpYWxvZygnZWRpdHNjcmlwdCcsbnVsbCxudWxsLGRhdGEsdXJsLCJmb3JtW2lkXj0nbTFfbW9kdWxlZm9ybSddIixkV2lkdGgsZGhlaWdodCxmdW5jdGlvbigpe30pfSl9fSx7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJjbGUtY2xvc2UiPjwvc3Bhbj5DYW5jZWwnLGNsaWNrOmZ1bmN0aW9uKCl7JCh0aGlzKS5kaWFsb2coImNsb3NlIik7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX1dLGNsb3NlOmZ1bmN0aW9uKCl7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX07YnJlYWt9O2Nhc2UnZWRpdHNjcmlwdCc6e2RpYWxvZ09wdGlvbnM9e2F1dG9PcGVuOnRydWUsd2lkdGg6ZFdpZHRoLGhlaWdodDpkaGVpZ2h0LHJlc2l6ZVN0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXtzZXRDdXJyZW50U3RhdGUoJCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nLWNvbnRlbnQnKS5hdHRyKCdpZCcpKTthZGRfaUNvdmVyKCk7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLWRpYWxvZy1jb250ZW50JykucHJlcGVuZCgnPGRpdiBjbGFzcz0idWktd2lkZ2V0LW92ZXJsYXkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MHB4O3JpZ2h0OjBweDtoZWlnaHQ6OTk5ZW07d2lkdGg6OTk5ZW07Ij48L2Rpdj4nKX0scmVzaXplU3RvcDpmdW5jdGlvbihldmVudCx1aSl7cmVtb3ZlX2lDb3ZlcigpOyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS13aWRnZXQtb3ZlcmxheScpLnJlbW92ZSgpO3ZhciB0aWQ9Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2UnLCdmb2N1c2VkJyk7dmFyIGg9JCgnI0RfJyt0aWQpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5jc3MoJ2hlaWdodCcpO2FkZF90b190cmFja2VyKCdpbnN0YW5jZV9zaXplXycrdGlkLCdoZWlnaHQnLGgpO2N1cnJlbnRFZGl0b3I9d2luZG93WydlZGl0b3JfJyt0aWRdO2N1cnJlbnRFZGl0b3IucmVmcmVzaCgpfSxvcGVuOmZ1bmN0aW9uKGV2ZW50LHVpKXtsb2Fkc2NyaXB0KGV2ZW50T2JqLGRJRCx1cmwsdXJsVGFyZ2V0LGZ1bmN0aW9uKCl7QUNUSVZFSUQ9JCgiI0RfIitkSUQrIiBpbnB1dFtuYW1lPSdtMV9TY3JpcHRTZXQnXSIpLnZhbCgpO2FkZF90b190cmFja2VyKCdpbnN0YW5jZV9zaXplXycrZElELCdoZWlnaHQnLGRoZWlnaHQpOyQoJyNEXycrZElEKycgdGV4dGFyZWEnKS5yZWFkeShmdW5jdGlvbigpe2lmKCQoJy5zY3JpcHRBcmVhIC50b29sQmFyLXQnKS5sZW5ndGg+MCl7dmFyIG5vdGljZWJhcj0kKCcjRF8nK2RJRCsnIC5ub3RpY2ViYXInKS5hZGRDbGFzcygndWktY29ybmVyLWJsIHVpLXN0YXRlLWhpZ2hsaWdodCcpLmNzcyh7cmlnaHQ6JzE5cHgnLHRvcDonMzFweCcscGFkZGluZzonNXB4JywncGFkZGluZy10b3AnOicwcHgnfSkuZGV0YWNoKCk7dmFyIGdvdG9Cb3g9JCgnI0RfJytkSUQrJyAuZ290b0JveCcpLmNzcyh7J2Zsb2F0JzonbGVmdCd9KS5kZXRhY2goKTt2YXIgb3BCYXI9JCgnI0RfJytkSUQrJyAub3BCYXInKS5jc3MoeydmbG9hdCc6J2xlZnQnLHBvc2l0aW9uOidhYnNvbHV0ZScsdG9wOicxMHB4Jywnei1pbmRleCc6JzEnLCdwYWRkaW5nLXRvcCc6JzBweCd9KS5kZXRhY2goKTt2YXIgaW5mb3JtYXRpb25CYXI9JCgnI0RfJytkSUQrJyAuaW5mb3JtYXRpb25CYXInKS5jc3MoeydmbG9hdCc6J2xlZnQnLHBvc2l0aW9uOidhYnNvbHV0ZScsdG9wOiczNHB4Jywnei1pbmRleCc6JzEnLCdwYWRkaW5nLXRvcCc6JzBweCd9KS5kZXRhY2goKTt2YXIgdG9vbEJhcmI9JCgnI0RfJytkSUQrJyAudG9vbEJhci1iJykuYWRkQ2xhc3MoJ3VpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLXRsIHVpLWNvcm5lci10cicpLmNzcyh7cmlnaHQ6JzBweCcsdG9wOictMjhweCcscGFkZGluZzonMHB4JywnYm9yZGVyLWJvdHRvbSc6J21lZGl1bSBub25lJ30pLmRldGFjaCgpOyQoJyNEXycrZElEKS5jbG9zZXN0KCcudWktZGlhbG9nJykucHJlcGVuZChub3RpY2ViYXIpLnByZXBlbmQob3BCYXIpLnByZXBlbmQoaW5mb3JtYXRpb25CYXIpOyQoJyNEXycrZElEKS5jc3MoeydtYXJnaW4tYm90dG9tJzonMjdweCd9KTskKCcjRF8nK2RJRCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctYnV0dG9ucGFuZScpLmNzcyh7cG9zaXRpb246J3JlbGF0aXZlJ30pLnByZXBlbmQoZ290b0JveCkucHJlcGVuZCh0b29sQmFyYik7JCgnLnRvb2xCYXItdCcpLnJlbW92ZSgpO2ZvY3VzRGlhbG9nKCQodGhpcykpO3JlcG9ydEVkaXRTdGF0dXMoZElELEFDVElWRUlEKTskKCcjRF8nK2RJRCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctdGl0bGViYXInKS5kYmxjbGljayhmdW5jdGlvbigpe3ZhciBkSUQ9Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2UnLCdmb2N1c2VkJyk7dmFyIG1haW49Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2Vfc2l6ZV8nK2RJRCwnaGVpZ2h0Jyk7dmFyIGg9JCgnI0RfJytkSUQpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5oZWlnaHQoKTskKCcjRF8nK2RJRCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmFuaW1hdGUoe2hlaWdodDpoPjYzPzYyOm1haW59LDUwMCwnc3dpbmcnLGZ1bmN0aW9uKCl7fSl9KTskKCcjRF8nK2RJRCkuY2xvc2VzdCgiLnVpLWRpYWxvZyIpLmZpbmQoIi5zY3JpcHROYW1lX0lTLC5zY3JpcHRPUCIpLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLGlubGluZTp0cnVlLGluaXRpYWxXaWR0aDonMjVweCcsaW5pdGlhbEhlaWdodDonMjVweCcsaHJlZjonI0RfJytkSUQrIiAuc2NyaXB0T3B0aW9ucyIsc2Nyb2xsaW5nOmZhbHNlLG9wYWNpdHk6MC4yNSxvdmVybGF5Q2xvc2U6ZmFsc2Usb25Db21wbGV0ZTpmdW5jdGlvbigpeyQuY29sb3Jib3gucmVzaXplKCk7JCgnI2Nib3hPdmVybGF5JykuYWRkQ2xhc3MoJ3VpLXdpZGdldC1vdmVybGF5Jyl9fSl9O2VkaXRBcmVhX2luaXQoZElEKTskKCcjcHJvZ3Jlc3NiYXInKS5yZW1vdmUoKTtzZXRDdXJyZW50U3RhdGUoZElEKTtjbGVhckNvdW50KCdwcm9ncycrZElEKTtjbGVhckNvdW50KCdTVUJDSEVDSycpO3Byb2dpcz0wO2xpdmVlZGl0KGZ1bmN0aW9uKCl7fSk7YWRkRm9udFNpemVyKGRJRCl9KX0pfSxmb2N1czpmdW5jdGlvbihldmVudCx1aSl7Zm9jdXNEaWFsb2coJCh0aGlzKSk7c2V0Q3VycmVudFN0YXRlKCQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKSl9LGRyYWdTdGFydDpmdW5jdGlvbihldmVudCx1aSl7YWRkX2lDb3ZlcigpO3NldEN1cnJlbnRTdGF0ZSgkKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJykpOyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctY29udGVudCcpLnByZXBlbmQoJzxkaXYgY2xhc3M9InVpLXdpZGdldC1vdmVybGF5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjBweDtyaWdodDowcHg7aGVpZ2h0Ojk5OWVtO3dpZHRoOjk5OWVtOyI+PC9kaXY+Jyl9LGRyYWdTdG9wOmZ1bmN0aW9uKGV2ZW50LHVpKXtyZW1vdmVfaUNvdmVyKCk7c2V0Q3VycmVudFN0YXRlKCQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKSk7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LGJlZm9yZUNsb3NlOmZ1bmN0aW9uKGV2ZW50LHVpKXtzZXRDdXJyZW50U3RhdGUoJCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nLWNvbnRlbnQnKS5hdHRyKCdpZCcpKTtjbGVhckNvdW50KCdSRVBPUlRJTkcnK2RJRCk7YWpheGl0KCd1bmxvY2tfc2NyaXB0JyxkSUQpfSxjbG9zZTpmdW5jdGlvbihldmVudCx1aSl7ZElEPSQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKTtzZXRDdXJyZW50U3RhdGUoZElEKTtleGl0bGl2ZWVkaXQoKTtjbGVhckNvdW50KCdSRVBPUlRJTkcnK2RJRCk7YWpheGl0KCd1bmxvY2tfc2NyaXB0JyxkSUQpfSxidXR0b25zOlt7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1kaXNrIj48L3NwYW4+U3VibWl0JyxjbGljazpmdW5jdGlvbigpe2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJyk7c2V0Q3VycmVudFN0YXRlKGRJRCk7ZGlzYWJsZUNvZGVNaXJyb3IobnVsbCxmdW5jdGlvbigpe2RJRD1nZXRfZnJvbV90cmFja2VyKCdpbnN0YW5jZScsJ2ZvY3VzZWQnKTthamF4U2NyaXB0U3VibWl0KG51bGwsZnVuY3Rpb24oKXskKCcjJytkSUQpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjJytkSUQpLmZpbmQoJy51aS1zdGF0ZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjRF8nK2RJRCkuZGlhbG9nKCJkZXN0cm95IikucmVtb3ZlKCk7Y2xlYXJDb3VudCgnUkVQT1JUSU5HJytkSUQpO2FqYXhpdCgndW5sb2NrX3NjcmlwdCcsZElEKTskKCcjRF8nK2RJRCkuZGlhbG9nKCJkZXN0cm95IikucmVtb3ZlKCk7ZXhpdGxpdmVlZGl0KCl9KX0pfX0se2h0bWw6JzxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tcG93ZXIiPjwvc3Bhbj5SZWxvYWQnLGNsaWNrOmZ1bmN0aW9uKCl7ZElEPSQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKTtzZXRDdXJyZW50U3RhdGUoZElEKTtkaXNhYmxlQ29kZU1pcnJvcihudWxsLGZ1bmN0aW9uKCl7ZElEPWdldF9mcm9tX3RyYWNrZXIoJ2luc3RhbmNlJywnZm9jdXNlZCcpOyQoJyNEXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKTskKCcjJytkSUQrJyAuZWRpdFNjcmlwdDpmaXJzdCcpLmNsaWNrKCk7Y2xlYXJDb3VudCgnUkVQT1JUSU5HJytkSUQpO3JlbG9hZGxpdmVlZGl0KCl9KX19LHtodG1sOic8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLXBlbmNpbCI+PC9zcGFuPkFwcGx5JyxjbGljazpmdW5jdGlvbigpe2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJyk7c2V0Q3VycmVudFN0YXRlKGRJRCk7YWpheFNjcmlwdFN1Ym1pdChudWxsLGZ1bmN0aW9uKCl7cmVsb2FkbGl2ZWVkaXQoKX0pfX0se2h0bWw6JzxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2lyY2xlLWNsb3NlIj48L3NwYW4+Q2FuY2VsJyxjbGljazpmdW5jdGlvbigpe2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJyk7c2V0Q3VycmVudFN0YXRlKGRJRCk7ZGlzYWJsZUNvZGVNaXJyb3IobnVsbCxmdW5jdGlvbigpe2RJRD1nZXRfZnJvbV90cmFja2VyKCdpbnN0YW5jZScsJ2ZvY3VzZWQnKTskKHRoaXMpLmRpYWxvZygiY2xvc2UiKTskKCcjJytkSUQpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjJytkSUQpLmZpbmQoJy51aS1zdGF0ZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjRF8nK2RJRCkuZGlhbG9nKCJkZXN0cm95IikucmVtb3ZlKCk7Y2xlYXJDb3VudCgnUkVQT1JUSU5HJytkSUQpO2FqYXhpdCgndW5sb2NrX3NjcmlwdCcsZElEKTtleGl0bGl2ZWVkaXQoKX0pfX1dLGNsb3NlOmZ1bmN0aW9uKCl7ZElEPSQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKTtzZXRDdXJyZW50U3RhdGUoZElEKTtkaXNhYmxlQ29kZU1pcnJvcihudWxsLGZ1bmN0aW9uKCl7ZElEPWdldF9mcm9tX3RyYWNrZXIoJ2luc3RhbmNlJywnZm9jdXNlZCcpOyQoJyMnK2RJRCkucmVtb3ZlQ2xhc3MoJ0luRWRpdCB1aS1zdGF0ZS1lcnJvcicpOyQoJyMnK2RJRCkuZmluZCgnLnVpLXN0YXRlLWVycm9yJykucmVtb3ZlQ2xhc3MoJ0luRWRpdCB1aS1zdGF0ZS1lcnJvcicpOyQoJyNEXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKTtjbGVhckNvdW50KCdSRVBPUlRJTkcnK2RJRCk7YWpheGl0KCd1bmxvY2tfc2NyaXB0JyxkSUQpO2V4aXRsaXZlZWRpdCgpfSl9fTticmVha307Y2FzZSdBZGRHcm91cCc6e2RpYWxvZ09wdGlvbnM9e2F1dG9PcGVuOnRydWUsd2lkdGg6ZFdpZHRoLGhlaWdodDpkaGVpZ2h0LHJlc2l6ZVN0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktZGlhbG9nLWNvbnRlbnQnKS5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtb3ZlcmxheSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowcHg7cmlnaHQ6MHB4O2hlaWdodDo5OTllbTt3aWR0aDo5OTllbTsiPjwvZGl2PicpfSxyZXNpemVTdG9wOmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktd2lkZ2V0LW92ZXJsYXknKS5yZW1vdmUoKX0sb3BlbjpmdW5jdGlvbihldmVudCx1aSl7bG9hZHNjcmlwdChldmVudE9iaixkSUQsdXJsLHVybFRhcmdldCxmdW5jdGlvbigpeyQoJyNEXycrZElEKS5hZGRDbGFzcygnYWRkU2NyaXB0cycpO3NldEN1cnJlbnRTdGF0ZShkSUQpOyQoJyNwcm9ncmVzc2JhcicpLnJlbW92ZSgpO3NjcmlwdE9wdGlvbnMoZElEKTtjbGVhckNvdW50KCdwcm9ncycrZElEKTtjbGVhckNvdW50KCdTVUJDSEVDSycpO3Byb2dpcz0wO2ZvY3VzRGlhbG9nKCQodGhpcykpfSl9LGZvY3VzOmZ1bmN0aW9uKGV2ZW50LHVpKXtmb2N1c0RpYWxvZygkKHRoaXMpKX0sZHJhZ1N0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktZGlhbG9nLWNvbnRlbnQnKS5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtb3ZlcmxheSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowcHg7cmlnaHQ6MHB4O2hlaWdodDo5OTllbTt3aWR0aDo5OTllbTsiPjwvZGl2PicpfSxkcmFnU3RvcDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LGJ1dHRvbnM6W3todG1sOic8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWRpc2siPjwvc3Bhbj5TdWJtaXQnLGNsaWNrOmZ1bmN0aW9uKCl7bmFtZT0kKCdpbnB1dFtuYW1lJD0iR3JvdXB0U2V0Il0nKS52YWwoKTt0eXBlPSQoJ2lucHV0W25hbWUkPSJHcm91cHRUeXBlIl06Y2hlY2tlZCcpLnZhbCgpO2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJykucmVwbGFjZSgnRF8nLCcnKS5yZXBsYWNlKCdHXycsJycpO2FqYXhTY3JpcHRTdWJtaXQobnVsbCxmdW5jdGlvbihkYXRhKXt2YXIgaWQ9ZGF0YTskKCcjRF8nK2RJRCkuZGlhbG9nKCJkZXN0cm95IikucmVtb3ZlKCk7JCgnI2dyb3VwcyB0Ym9keScpLmFwcGVuZChtYWtlTmV3R3JvdXBSb3coaWQsbmFtZSx0eXBlLDApKTskKCcjR18nK2lkKycgLmVkaXRTY3JpcHQ6Zmlyc3QnKS5jbGljaygpfSl9fSx7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJjbGUtY2xvc2UiPjwvc3Bhbj5DYW5jZWwnLGNsaWNrOmZ1bmN0aW9uKCl7JCh0aGlzKS5kaWFsb2coImNsb3NlIik7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX1dLGNsb3NlOmZ1bmN0aW9uKCl7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX07YnJlYWt9O2Nhc2UnR3JvdXAnOntkaWFsb2dPcHRpb25zPXthdXRvT3Blbjp0cnVlLHdpZHRoOmRXaWR0aCxoZWlnaHQ6ZGhlaWdodCxyZXNpemVTdGFydDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLWRpYWxvZy1jb250ZW50JykucHJlcGVuZCgnPGRpdiBjbGFzcz0idWktd2lkZ2V0LW92ZXJsYXkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MHB4O3JpZ2h0OjBweDtoZWlnaHQ6OTk5ZW07d2lkdGg6OTk5ZW07Ij48L2Rpdj4nKX0scmVzaXplU3RvcDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LG9wZW46ZnVuY3Rpb24oZXZlbnQsdWkpe2xvYWRzY3JpcHQoZXZlbnRPYmosZElELHVybCx1cmxUYXJnZXQsZnVuY3Rpb24oKXskKCcjRF8nK2RJRCkuYWRkQ2xhc3MoJ2FkZFNjcmlwdHMnKTtzZXRDdXJyZW50U3RhdGUoZElEKTskKCcjcHJvZ3Jlc3NiYXInKS5yZW1vdmUoKTtncm91cF9pbml0KCk7Y2xlYXJDb3VudCgncHJvZ3MnK2RJRCk7Y2xlYXJDb3VudCgnU1VCQ0hFQ0snKTtwcm9naXM9MDtmb2N1c0RpYWxvZygkKHRoaXMpKX0pfSxmb2N1czpmdW5jdGlvbihldmVudCx1aSl7Zm9jdXNEaWFsb2coJCh0aGlzKSk7c2V0Q3VycmVudFN0YXRlKGRJRCl9LGRyYWdTdGFydDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLWRpYWxvZy1jb250ZW50JykucHJlcGVuZCgnPGRpdiBjbGFzcz0idWktd2lkZ2V0LW92ZXJsYXkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MHB4O3JpZ2h0OjBweDtoZWlnaHQ6OTk5ZW07d2lkdGg6OTk5ZW07Ij48L2Rpdj4nKX0sZHJhZ1N0b3A6ZnVuY3Rpb24oZXZlbnQsdWkpeyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS13aWRnZXQtb3ZlcmxheScpLnJlbW92ZSgpfSxidXR0b25zOlt7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1kaXNrIj48L3NwYW4+U3VibWl0JyxjbGljazpmdW5jdGlvbigpe2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJykucmVwbGFjZSgnRF8nLCcnKS5yZXBsYWNlKCdHXycsJycpO2FqYXhTY3JpcHRTdWJtaXQobnVsbCxmdW5jdGlvbigpeyQoJyNHXycrZElEKS5yZW1vdmVDbGFzcygnSW5FZGl0IHVpLXN0YXRlLWVycm9yJyk7JCgnI0dfJytkSUQpLmZpbmQoJy51aS1zdGF0ZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjRF9HXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKX0pfX0se2h0bWw6JzxzcGFuIGNsYXNzPSJ1aS1pY29uIHVpLWljb24tY2lyY2xlLWNsb3NlIj48L3NwYW4+Q2FuY2VsJyxjbGljazpmdW5jdGlvbigpe2RJRD0kKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJykucmVwbGFjZSgnRF8nLCcnKS5yZXBsYWNlKCdHXycsJycpOyQoJyNHXycrZElEKS5yZW1vdmVDbGFzcygnSW5FZGl0IHVpLXN0YXRlLWVycm9yJyk7JCgnI0dfJytkSUQpLmZpbmQoJy51aS1zdGF0ZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdJbkVkaXQgdWktc3RhdGUtZXJyb3InKTskKCcjRF9HXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKX19XSxjbG9zZTpmdW5jdGlvbigpeyQoJyNEXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKX19O2JyZWFrfTtkZWZhdWx0OmRpYWxvZ09wdGlvbnM9e2F1dG9PcGVuOnRydWUsd2lkdGg6ZFdpZHRoLGhlaWdodDpkaGVpZ2h0LHJlc2l6ZVN0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktZGlhbG9nLWNvbnRlbnQnKS5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtb3ZlcmxheSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowcHg7cmlnaHQ6MHB4O2hlaWdodDo5OTllbTt3aWR0aDo5OTllbTsiPjwvZGl2PicpfSxyZXNpemVTdG9wOmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktd2lkZ2V0LW92ZXJsYXknKS5yZW1vdmUoKX0sb3BlbjpmdW5jdGlvbihldmVudCx1aSl7bG9hZHNjcmlwdChldmVudE9iaixkSUQsdXJsLHVybFRhcmdldCxmdW5jdGlvbigpeyQoJyNEXycrZElEKS5hZGRDbGFzcygnYWRkU2NyaXB0cycpO3NldEN1cnJlbnRTdGF0ZShkSUQpOyQoJyNwcm9ncmVzc2JhcicpLnJlbW92ZSgpO3NjcmlwdE9wdGlvbnMoZElEKTtjbGVhckNvdW50KCdwcm9ncycrZElEKTtjbGVhckNvdW50KCdTVUJDSEVDSycpO3Byb2dpcz0wO2ZvY3VzRGlhbG9nKCQodGhpcykpfSl9LGZvY3VzOmZ1bmN0aW9uKGV2ZW50LHVpKXtmb2N1c0RpYWxvZygkKHRoaXMpKX0sZHJhZ1N0YXJ0OmZ1bmN0aW9uKGV2ZW50LHVpKXskKHRoaXMpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCcudWktZGlhbG9nLWNvbnRlbnQnKS5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtb3ZlcmxheSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowcHg7cmlnaHQ6MHB4O2hlaWdodDo5OTllbTt3aWR0aDo5OTllbTsiPjwvZGl2PicpfSxkcmFnU3RvcDpmdW5jdGlvbihldmVudCx1aSl7JCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLXdpZGdldC1vdmVybGF5JykucmVtb3ZlKCl9LGJ1dHRvbnM6W3todG1sOic8c3BhbiBjbGFzcz0idWktaWNvbiB1aS1pY29uLWRpc2siPjwvc3Bhbj5TdWJtaXQnLGNsaWNrOmZ1bmN0aW9uKCl7YWpheFNjcmlwdFN1Ym1pdCgpOyQoJyNEXycrZElEKS5kaWFsb2coImRlc3Ryb3kiKS5yZW1vdmUoKTskKCcjJytkSUQrJyAuZWRpdFNjcmlwdDpmaXJzdCcpLmNsaWNrKCl9fSx7aHRtbDonPHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1jaXJjbGUtY2xvc2UiPjwvc3Bhbj5DYW5jZWwnLGNsaWNrOmZ1bmN0aW9uKCl7JCh0aGlzKS5kaWFsb2coImNsb3NlIik7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX1dLGNsb3NlOmZ1bmN0aW9uKCl7JCgnI0RfJytkSUQpLmRpYWxvZygiZGVzdHJveSIpLnJlbW92ZSgpfX19O3JldHVybiBkaWFsb2dPcHRpb25zfQ==]]></data>
	</file>
	<file>
	  <filename>/includes/editor_function.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gc3RhcnRSZWNvdmVyeShvYmope3ZhciBpZD1vYmouYXR0cigncmVsJyk7aWYob2JqLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5sZW5ndGg+MCl7dmFyIGRJRD1vYmouY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJyk7c2V0Q3VycmVudFN0YXRlKGRJRCk7ZGlzYWJsZUNvZGVNaXJyb3IobnVsbCxmdW5jdGlvbigpe3ZhciBkSUQ9Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2UnLCdmb2N1c2VkJyk7dmFyIHJlbGVhc2VFZGl0PW9iai5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkVkaXRpbmciKS50ZXh0KCk7JCgnI0RfJytyZWxlYXNlRWRpdCkuZGlhbG9nKCJkZXN0cm95IikucmVtb3ZlKCk7JCgnIycrcmVsZWFzZUVkaXQrJyAuZWRpdFNjcmlwdDpmaXJzdCcpLmNsaWNrKCk7cmV0dXJufSl9O2lmKG9iai5jbG9zZXN0KCcjcHJvZ3Jlc3NiYXInKS5sZW5ndGg+MCl7b2JqLmNsb3Nlc3QoIiNwcm9ncmVzc2JhcltyZWw9JyIraWQrIiddIikucmVtb3ZlKCk7JCgnIycraWQrJyAuZWRpdFNjcmlwdDpmaXJzdCcpLmNsaWNrKCk7cmV0dXJufX0KZnVuY3Rpb24gZGlzYWJsZUNvZGVNaXJyb3IobW9kZSxmdW5jKXt2YXIgdGlkPWdldF9mcm9tX3RyYWNrZXIoJ2luc3RhbmNlJywnZm9jdXNlZCcpO2N1cnJlbnRFZGl0b3I9d2luZG93WydlZGl0b3JfJyt0aWRdO2lmKHR5cGVvZiAoY3VycmVudEVkaXRvcikhPT0ndW5kZmluZWQnKXt0eXBlb2YgKG1vZGUpIT09J3VuZGZpbmVkJz9jdXJyZW50RWRpdG9yLnNhdmUoKTpjdXJyZW50RWRpdG9yLnRvVGV4dEFyZWEoKTskKCcjRF8nK3RpZCkuZmluZCgndGV4dGFyZWE6dmlzaWJsZScpLnJlYWR5KGZ1bmN0aW9uKCl7aWYodHlwZW9mIChmdW5jKSE9PSd1bmRlZmluZWQnKWZ1bmMoKX0pfX0KZnVuY3Rpb24gY2xlYXJNYXJrcyh3YXJuLGVycm9ycyl7aWYodHlwZW9mICh3YXJuKSE9PSd1bmRmaW5lZCcpZm9yKHZhciBpPTA7aTx3YXJuLmxlbmd0aDtpKyspe3ZhciBsaW5lPXdhcm5baV07Y3VycmVudEVkaXRvci5jbGVhck1hcmtlcihsaW5lKX07aWYodHlwZW9mIChlcnJvcnMpIT09J3VuZGZpbmVkJylmb3IodmFyIGk9MDtpPGVycm9ycy5sZW5ndGg7aSsrKXt2YXIgbGluZT1lcnJvcnNbaV07Y3VycmVudEVkaXRvci5jbGVhck1hcmtlcihsaW5lKX19CmZ1bmN0aW9uIG1hcmtsaW5lTnVtYmVyKGlkKXtjdXJyZW50RWRpdG9yPXdpbmRvd1snZWRpdG9yXycraWRdO3ZhciB3YXJuPWdldF9mcm9tX3RyYWNrZXIoJ2ZvY3VzZWRfJytpZCwnd2FybicpO3ZhciBlcnJvcnM9Z2V0X2Zyb21fdHJhY2tlcignZm9jdXNlZF8nK2lkLCdlcnJvcnMnKTtjbGVhck1hcmtzKHdhcm4sZXJyb3JzKTtpZigkKCcjRF8nK2lkKyIgLndhcm5BcmVhIikubGVuZ3RoPjApe3ZhciBsaW5lcz1bXTskKCcjRF8nK2lkKycgLndhcm5BcmVhIHNwYW4ubGluZScpLmVhY2goZnVuY3Rpb24oaSl7bGluZXMucHVzaChwYXJzZUludCgkKHRoaXMpLnRleHQoKSkpO2N1cnJlbnRFZGl0b3Iuc2V0TWFya2VyKHBhcnNlSW50KCQodGhpcykudGV4dCgpKSwiJmJ1bGw7Iiwnd2FybicpfSk7YWRkX3RvX3RyYWNrZXIoJ2ZvY3VzZWRfJytpZCwnd2FybicsbGluZXMpfTtpZigkKCcjRF8nK2lkKyIgLkVycm9yQXJlYSIpLmxlbmd0aD4wKXt2YXIgbGluZXM9W107JCgnI0RfJytpZCsnIC5FcnJvckFyZWEgc3Bhbi5saW5lJykuZWFjaChmdW5jdGlvbihpKXtsaW5lcy5wdXNoKHBhcnNlSW50KCQodGhpcykudGV4dCgpKSk7Y3VycmVudEVkaXRvci5zZXRNYXJrZXIocGFyc2VJbnQoJCh0aGlzKS50ZXh0KCkpLCImYnVsbDsiLCdlcnJvcicpfSk7YWRkX3RvX3RyYWNrZXIoJ2ZvY3VzZWRfJytpZCwnZXJyb3JzJyxsaW5lcyl9fQpmdW5jdGlvbiB0b2dnbGVGdWxsc2NyZWVuRWRpdGluZyhvYmosZWRpdG9yKXt2YXIgZWRpdG9yRGl2PW9iai5maW5kKCcuQ29kZU1pcnJvci1zY3JvbGwnKTtpZighZWRpdG9yRGl2Lmhhc0NsYXNzKCdmdWxsc2NyZWVuJykpe3RvZ2dsZUZ1bGxzY3JlZW5FZGl0aW5nLmJlZm9yZUZ1bGxzY3JlZW49e2hlaWdodDplZGl0b3JEaXYuaGVpZ2h0KCksd2lkdGg6ZWRpdG9yRGl2LndpZHRoKCl9O2VkaXRvckRpdi5hZGRDbGFzcygnZnVsbHNjcmVlbicpO2VkaXRvckRpdi5oZWlnaHQoJzEwMCUnKTtlZGl0b3JEaXYud2lkdGgoJzEwMCUnKTtlZGl0b3IucmVmcmVzaCgpfWVsc2V7ZWRpdG9yRGl2LnJlbW92ZUNsYXNzKCdmdWxsc2NyZWVuJyk7ZWRpdG9yRGl2LmhlaWdodCh0b2dnbGVGdWxsc2NyZWVuRWRpdGluZy5iZWZvcmVGdWxsc2NyZWVuLmhlaWdodCk7ZWRpdG9yRGl2LndpZHRoKHRvZ2dsZUZ1bGxzY3JlZW5FZGl0aW5nLmJlZm9yZUZ1bGxzY3JlZW4ud2lkdGgpO2VkaXRvci5yZWZyZXNoKCl9fTt2YXIgaGxMaW5lCmZ1bmN0aW9uIGVkaXRBcmVhX2luaXQoaWQpeyQoJyNTSUEnKS5hdHRyKCdpZCcsJ0VfJytpZCkuYWRkQ2xhc3MoJ1NJQScpO2lmKCQoJyNFXycraWQpLmxlbmd0aD09MCl7c2V0VGltZW91dChlZGl0QXJlYV9pbml0KGlkKSw1MDApO3JldHVybn07bW9kZT1pZC5yZXBsYWNlKC9cZCsvaSwiIikudG9Mb3dlckNhc2UoKTtpZihtb2RlLm1hdGNoKC8tLS8pKXttb2RlPW1vZGUuc3BsaXQoJy0tJyk7bW9kZT1tb2RlWzFdfTtpZihtb2RlPT0nanMnKW1vZGU9J2phdmFzY3JpcHQnO2lmKG1vZGU9PSdodG1sJyltb2RlPSd0ZXh0L2h0bWwnOyQoJyNFXycraWQpLnJlYWR5KGZ1bmN0aW9uKCl7d2luZG93WydlZGl0b3JfJytpZF09Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0VfJytpZCkse21vZGU6bW9kZSxsaW5lTnVtYmVyczp0cnVlLHRhYk1vZGU6InNoaWZ0Iix3b3JrVGltZTozMDAsd29ya0RlbGF5OjIwMCxmaXhlZEd1dHRlcjp0cnVlLGF1dG9NYXRjaFBhcmVuczp0cnVlLG9uQ3Vyc29yQWN0aXZpdHk6ZnVuY3Rpb24oKXt3aW5kb3dbJ2VkaXRvcl8nK2lkXS5zZXRMaW5lQ2xhc3MoaGxMaW5lLG51bGwpO2hsTGluZT13aW5kb3dbJ2VkaXRvcl8nK2lkXS5zZXRMaW5lQ2xhc3Mod2luZG93WydlZGl0b3JfJytpZF0uZ2V0Q3Vyc29yKCkubGluZSwiYWN0aXZlbGluZSIpfSxvbkd1dHRlckNsaWNrOmZ1bmN0aW9uKGNtLG4pe3ZhciBpbmZvPWNtLmxpbmVJbmZvKG4pO2lmKGluZm8ubWFya2VyVGV4dCljbS5jbGVhck1hcmtlcihuKTtlbHNlIGNtLnNldE1hcmtlcihuLCI8c3BhbiBzdHlsZT1cImNvbG9yOiAjOTAwXCI+JmJ1bGw7PC9zcGFuPiAlTiUiKX0sb25LZXlFdmVudDpmdW5jdGlvbihpLGUpe2lmKChlLmtleUNvZGU9PTEyMnx8ZS5rZXlDb2RlPT0yNykmJmUudHlwZT09J2tleWRvd24nKXtlLnN0b3AoKTtyZXR1cm4gdG9nZ2xlRnVsbHNjcmVlbkVkaXRpbmcoJCgnI0RfJytpZCksd2luZG93WydlZGl0b3JfJytpZF0pfX19KTt2YXIgaGxMaW5lPXdpbmRvd1snZWRpdG9yXycraWRdLnNldExpbmVDbGFzcygwLCJhY3RpdmVsaW5lIik7YWRkX3RvX3RyYWNrZXIoJ2luc3RhbmNlJywnZm9jdXNlZCcsaWQpO3NldEN1cnJlbnRTdGF0ZShpZCk7JCgnaW5wdXRbbmFtZSQ9ImFwcGx5Il0nKS5jbGljayhmdW5jdGlvbihldmVudCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTthamF4U2NyaXB0U3VibWl0KCl9KTskKCcuQWpheFJFQ09WRVInKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZSl7c3RhcnRSZWNvdmVyeSgkKCcuQWpheFJFQ09WRVInKSl9KTtsb2FkVXNlckludGVyYWN0aW9ucyhTSUQpO3NjcmlwdE9wdGlvbnMoaWQpO2VkaXRvckJhc2VGZWF0dXJlcyhTSUQpOyQoIiNjbG9zZV9vcHRpb25zIikuY2xpY2soZnVuY3Rpb24oKXskLmNvbG9yYm94LmNsb3NlKCk7cmV0dXJuIGZhbHNlfSl9KX0KZnVuY3Rpb24gZWRpdG9yQmFzZUZlYXR1cmVzKFNJRCl7JCgiI2luc2VydENvZGUiKS5jbGljayhmdW5jdGlvbihldnQpe2V2dC5zdG9wUHJvcGFnYXRpb24oKTtldnQucHJldmVudERlZmF1bHQoKTtzZXRDdXJyZW50U3RhdGUoJCh0aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLnVpLWRpYWxvZy1jb250ZW50JykuYXR0cignaWQnKSk7QUNUSVZFSUQ9JCgiI0RfIitjdXJyZW50V29ya2luZ09uKyIgaW5wdXRbbmFtZT0nbTFfU2NyaXB0U2V0J10iKS52YWwoKTskLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLGhyZWY6QWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0X3NjcmlwdCwwJicrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZtMV9TY3JpcHRTZXQ9JytBQ1RJVkVJRCsnJm0xX2FjdGl2ZV90YWI9c2NyaXB0X3RlbXBsYXRlJm0xX21vZGU9ZWRpdCZzaG93dGVtcGxhdGU9ZmFsc2UmaW5zZXJ0Q29kZT10cnVlJyxpZnJhbWU6dHJ1ZSxoZWlnaHQ6JzE3NXB4JyxzY3JvbGxpbmc6ZmFsc2Usb3BhY2l0eTowLjI1LG9uQ29tcGxldGU6ZnVuY3Rpb24oKXskLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpOyQoJyNjYm94TG9hZGVkQ29udGVudCBpZnJhbWUnKS5hdHRyKCdpZCcsJ2Nib3hJZnJhbWUnKTskKCcjY2JveElmcmFtZScpLmxvYWQoZnVuY3Rpb24oKXt4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYm94SWZyYW1lIik7eT0oeC5jb250ZW50V2luZG93fHx4LmNvbnRlbnREb2N1bWVudCk7JCh5LmRvY3VtZW50KS5maW5kKCIucHJvZ3Jlc3MiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpeyQoeS5kb2N1bWVudCkuZmluZCgiLnByb2dyZXNzIikucmVtb3ZlKCl9KTtpZigkKHkuZG9jdW1lbnQpLmZpbmQoJyNpbnNlcnRDaG9pY2UnKS5sZW5ndGg+MCl7JCh5LmRvY3VtZW50KS5maW5kKCcjaW5zZXJ0Q2hvaWNlJykuY2hhbmdlKGZ1bmN0aW9uKCl7dmFyIHNlbGVjdGVkPSQoeS5kb2N1bWVudCkuZmluZCgnI2luc2VydENob2ljZSBvcHRpb246c2VsZWN0ZWQnKS52YWwoKTtpZihzZWxlY3RlZD09JzQnKXskKHkuZG9jdW1lbnQpLmZpbmQoJyNpbnNlcnRBdCcpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7JCh5LmRvY3VtZW50KS5maW5kKCcjaW5zZXJ0Q29kZUF0X2lucHV0JykudmFsKCcnKTskLmNvbG9yYm94LnJlc2l6ZSgpfWVsc2V7JCh5LmRvY3VtZW50KS5maW5kKCcjaW5zZXJ0QXQnKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7JCh5LmRvY3VtZW50KS5maW5kKCcjaW5zZXJ0Q29kZUF0X2lucHV0JykudmFsKHNlbGVjdGVkKTskLmNvbG9yYm94LnJlc2l6ZSgpfX0pfTtpZigkKHkuZG9jdW1lbnQpLmZpbmQoJyNpbnNlcnRpbmdDb2RlJykubGVuZ3RoPjApe3ZhciBmaWxlQ29udGFpbnM9JCh5LmRvY3VtZW50KS5maW5kKCcjaW5zZXJ0aW5nQ29kZScpLnZhbCgpO3ZhciBpbnNlcnRpbmdBdD0kKHkuZG9jdW1lbnQpLmZpbmQoJyNpbnNlcnRpbmdBdCcpLnZhbCgpO2lmKGluc2VydGluZ0F0PT1wYXJzZUludChpbnNlcnRpbmdBdCkpe2hhbmRsZT1jdXJyZW50RWRpdG9yLmp1bXBUb0xpbmUoaW5zZXJ0aW5nQXQpO2N1cnJlbnRFZGl0b3IuaW5zZXJ0SW50b0xpbmUoaGFuZGxlLDAsJ1xyJyl9ZWxzZSBpZihpbnNlcnRpbmdBdC50b0xvd2VyQ2FzZSgpPT0nc3RhcnQnKXtoYW5kbGU9Y3VycmVudEVkaXRvci5qdW1wVG9MaW5lKDEpO2N1cnJlbnRFZGl0b3IuaW5zZXJ0SW50b0xpbmUoaGFuZGxlLDAsJ1xyJyl9ZWxzZSBpZihpbnNlcnRpbmdBdC50b0xvd2VyQ2FzZSgpPT0nZW5kJyl7aGFuZGxlPWN1cnJlbnRFZGl0b3IubGFzdExpbmUoKTtjdXJyZW50RWRpdG9yLmluc2VydEludG9MaW5lKGhhbmRsZSwnZW5kJywnXHInKX07Y3VycmVudEVkaXRvci5pbnNlcnRJbnRvTGluZShoYW5kbGUsJ2VuZCcsZmlsZUNvbnRhaW5zKTskLmNvbG9yYm94LmNsb3NlKCl9fSl9fSl9KTskKCIub3B0aW1pc2UiKS5jbGljayhmdW5jdGlvbihldnQpe2V2dC5zdG9wUHJvcGFnYXRpb24oKTtldnQucHJldmVudERlZmF1bHQoKTskLmNvbG9yYm94KHt3aWR0aDoiNTAwcHgiLGhyZWY6QWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0X3NjcmlwdCwwJicrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZtMV9TY3JpcHRTZXQ9JytBQ1RJVkVJRCsnJm0xX2FjdGl2ZV90YWI9c2NyaXB0X3RlbXBsYXRlJm0xX21vZGU9ZWRpdCZzaG93dGVtcGxhdGU9ZmFsc2Umb3B0aW1pc2U9dHJ1ZScsaWZyYW1lOnRydWUsaGVpZ2h0Oic1MDBweCcsc2Nyb2xsaW5nOmZhbHNlLG9wYWNpdHk6MC4yNSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JCgnI2Nib3hPdmVybGF5JykuYWRkQ2xhc3MoJ3VpLXdpZGdldC1vdmVybGF5Jyk7JCgnI2Nib3hMb2FkZWRDb250ZW50IGlmcmFtZScpLmF0dHIoJ2lkJywnY2JveElmcmFtZScpOyQoJyNjYm94SWZyYW1lJykubG9hZChmdW5jdGlvbigpe3g9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNib3hJZnJhbWUiKTt5PSh4LmNvbnRlbnRXaW5kb3d8fHguY29udGVudERvY3VtZW50KTskKHkuZG9jdW1lbnQpLmZpbmQoJyNjc3NfdGV4dCcpLnZhbChjdXJyZW50RWRpdG9yLmdldENvZGUoKSk7JCh5LmRvY3VtZW50KS5maW5kKCIucHJvZ3Jlc3MiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpeyQoeS5kb2N1bWVudCkuZmluZCgiLnByb2dyZXNzIikucmVtb3ZlKCl9KTtpZigkKHkuZG9jdW1lbnQpLmZpbmQoJyNvcFRlbXBsYXRlJykubGVuZ3RoPjApeyQoeS5kb2N1bWVudCkuZmluZCgnI29wVGVtcGxhdGUnKS5jaGFuZ2UoZnVuY3Rpb24oKXt2YXIgc2VsZWN0ZWQ9JCh5LmRvY3VtZW50KS5maW5kKCcjb3BUZW1wbGF0ZSBvcHRpb246c2VsZWN0ZWQnKS52YWwoKTtpZihzZWxlY3RlZD09JzQnKSQoeS5kb2N1bWVudCkuZmluZCgnI29wY3VzdG9tJykuY3NzKHtkaXNwbGF5OidibG9jayd9KTtlbHNleyQoeS5kb2N1bWVudCkuZmluZCgnI29wY3VzdG9tJykuY3NzKHtkaXNwbGF5Oidub25lJ30pOyQoeS5kb2N1bWVudCkuZmluZCgnI2N1c3RvbScpLnZhbCgnJyl9fSl9O2lmKCQoeS5kb2N1bWVudCkuZmluZCgnI2luc2VydGluZ0NvZGUnKS5sZW5ndGg+MCl7dmFyIGZpbGVDb250YWlucz0kKHkuZG9jdW1lbnQpLmZpbmQoJyNpbnNlcnRpbmdDb2RlJykudmFsKCk7JC5jb2xvcmJveC5yZXNpemUoKTtjdXJyZW50RWRpdG9yLnNldENvZGUoZmlsZUNvbnRhaW5zKTtjdXJyZW50RWRpdG9yLnJlaW5kZW50KCl9OyQuY29sb3Jib3gucmVzaXplKCl9KX19KX0pOyQoIi5ub3RlX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IixodG1sOmZ1bmN0aW9uKCl7dGV4dD0kKCIjTk9URVMiKS52YWwoKTtpZih0ZXh0PT0nJyl0ZXh0PSdObyBOZXcgTm90ZXMnO3JldHVybiAnPHRleHRhcmVhIGlkPSJwb3B1cE5PVEVTIj4nK3RleHQrJzwvdGV4dGFyZWE+J30sb3BhY2l0eTowLjI1LG9uQ29tcGxldGU6ZnVuY3Rpb24oKXskLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpfX0pOyQoIi5FX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IixodG1sOmZ1bmN0aW9uKCl7dGV4dD0kKCIuRXJyb3JBcmVhIikuaHRtbCgpO3JldHVybiAnPGRpdiBpZD0icG9wdXBFcnJvckFyZWEiPicrdGV4dCsnPC9kaXY+J30sb3BhY2l0eTowLjI1LG9uQ29tcGxldGU6ZnVuY3Rpb24oKXskLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpfX0pOyQoIi5XX3RyaWciKS5jb2xvcmJveCh7d2lkdGg6IjUwMHB4IixodG1sOmZ1bmN0aW9uKCl7dGV4dD0kKCIud2FybkFyZWEiKS5odG1sKCk7cmV0dXJuICc8ZGl2IGlkPSJwb3B1cHdhcm5BcmVhIj4nK3RleHQrJzwvZGl2Pid9LG9wYWNpdHk6MC4yNSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKX19KTskKCIucG9wdXAuRVVSTFMiKS5jbGljayhmdW5jdGlvbihldmVudCl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7ZXZlbnQucHJldmVudERlZmF1bHQoKTthc3luY0lTPWZhbHNlO2RhdGE9YWpheGl0KCdjc3NfdXJsX2Rpc3NlY3Rpb24nLFNJRCxudWxsLGZ1bmN0aW9uKGRhdGEpe2lmKGRhdGEhPScnJiZkYXRhIT1mYWxzZSl7JCgnI2xhbmRlcicpLmh0bWwoJzxkaXYgY2xhc3M9InJlcG9ydEFyZWEiPicrZGF0YSsnPC9kaXY+Jyk7JC5jb2xvcmJveCh7d2lkdGg6IjkwJSIsaGVpZ2h0OiI3MCUiLGlubGluZTp0cnVlLGhyZWY6Jy5yZXBvcnRBcmVhJyxvcGVuOnRydWUsc2Nyb2xsaW5nOmZhbHNlLG9wYWNpdHk6MC4yNSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKX19KX19KX0pOyQoIi5wb3B1cC5SQ1NTIikuY2xpY2soZnVuY3Rpb24oZXZlbnQpe2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpO2V2ZW50LnByZXZlbnREZWZhdWx0KCk7YXN5bmNJUz1mYWxzZTtkYXRhPWFqYXhpdCgncmVuZGVyZWRfY3NzX2Rpc3NlY3Rpb24nLFNJRCxudWxsLGZ1bmN0aW9uKGRhdGEpe2lmKGRhdGEhPScnJiZkYXRhIT1mYWxzZSl7JCgnI2xhbmRlcicpLmh0bWwoJzxkaXYgY2xhc3M9InJlcG9ydEFyZWEiPicrZGF0YSsnPC9kaXY+Jyk7JC5jb2xvcmJveCh7d2lkdGg6IjkwJSIsaGVpZ2h0OiI3MCUiLGlubGluZTp0cnVlLGhyZWY6Jy5yZXBvcnRBcmVhJyxvcGVuOnRydWUsc2Nyb2xsaW5nOmZhbHNlLG9wYWNpdHk6MC4yNSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKX19KX19KX0pOyQoJy5nb0xpbmUnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7bGluZT0kKHRoaXMpLmNoaWxkcmVuKCdzcGFuLmxpbmUnKS50ZXh0KCk7bGluZT1saW5lLTU7JC5jb2xvcmJveC5jbG9zZSgpO3ZhciBib3g9JCgnI0RfJytjdXJyZW50V29ya2luZ09uKS5maW5kKCcuQ29kZU1pcnJvci1saW5lLW51bWJlcnMgZGl2JykuZXEobGluZSk7JCgnI0RfJytjdXJyZW50V29ya2luZ09uKS5zY3JvbGxUbyhib3gsODAwKX0pOyQoJy5nb3RvJykuc3RvcCgpLmxpdmUoJ2tleXVwJyxmdW5jdGlvbihldmVudCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtzZXRDb3VudCgnR09JTkdUTycrY3VycmVudFdvcmtpbmdPbiw1MDAsZnVuY3Rpb24oKXt2YXIgdGFyZ0lzPSQoJy5nb3RvOmZvY3VzJykudmFsKCk7aWYoJCgnI0RfJytjdXJyZW50V29ya2luZ09uKS5maW5kKCcuQ29kZU1pcnJvci1saW5lLW51bWJlcnMgZGl2JykuZXEodGFyZ0lzKS5sZW5ndGg+MCl7Y2xlYXJDb3VudCgnR09JTkdUTycrY3VycmVudFdvcmtpbmdPbik7dmFyIGJveD0kKCcjRF8nK2N1cnJlbnRXb3JraW5nT24pLmZpbmQoJy5Db2RlTWlycm9yLWxpbmUtbnVtYmVycyBkaXYnKS5lcSh0YXJnSXMpOyQoJyNEXycrY3VycmVudFdvcmtpbmdPbikuc2Nyb2xsVG8oYm94LDgwMCl9ZWxzZXskKCcuZ290bzpmb2N1cycpLmJsdXIoKTtjbGVhckNvdW50KCdHT0lOR1RPJytjdXJyZW50V29ya2luZ09uKTtpZihkZWJ1ZylhbGVydCgnTGluZSAnK3RhcmdJcysnIGRvZXMgbm90IGV4aXN0XHJcblBsZWFzZSB0cnkgYWdhaW4uJyl9fSl9KTskKCcjcG9wdXBOT1RFUycpLmxpdmUoJ2tleXVwJyxmdW5jdGlvbigpeyQoJyNOT1RFUycpLnZhbCgkKCcjcG9wdXBOT1RFUycpLnZhbCgpKX0pOyQoIiNtMV9yZXZlcnQiKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtpZihzYXZlZD09dHJ1ZSl7aWYoZGVidWcpYWxlcnQocmVsb2FkaW5nKX19KTtpZigkKCIjd2hpY2hGaWx0ZXIiKS5sZW5ndGg+MCkkKCIjd2hpY2hGaWx0ZXIiKS50b29sdGlwKHt0aXA6IiNkZW1vdGlwIixsYXp5OnRydWUscHJlZGVsYXk6NTAsb25CZWZvcmVTaG93OmZ1bmN0aW9uKCl7JCgiI2RlbW90aXAiKS5odG1sKCc8aDE+WW91IGFyZSBmaWx0ZXJpbmc8L2gxPicrJCgiI2ZpbHRlclByb3AiKS52YWwoKSl9LG9uSGlkZTpmdW5jdGlvbigpeyQoIiNkZW1vdGlwIikuZW1wdHkoKX19KX0KZnVuY3Rpb24gYWRkRm9udFNpemVyKGlkKXskKCIjRF8iK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgnLm9wQmFyJykuYXBwZW5kKCcmbmJzcDt8Jm5ic3A7Rm9udC1zaXplPGRpdiBjbGFzcz0iZm9udFNpemVyIj48ZGl2IGlkPSJzbGlkZXInK2lkKyciPjwvZGl2PjwvZGl2PicpOyQoJyNzbGlkZXInK2lkKS5zbGlkZXIoe3JhbmdlOiJtaW4iLHZhbHVlOjE1LG1pbjoxMCxtYXg6MzAsc2xpZGU6ZnVuY3Rpb24oZXZlbnQsdWkpeyQodGhpcykuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoIi5KQl9udW1hcmVhIikuY3NzKHsiZm9udC1zaXplIjp1aS52YWx1ZX0pfX0pfQ==]]></data>
	</file>
	<file>
	  <filename>/includes/init.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBibG9ja2FnZSBmdW5jdGlvbnMNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJZnVuY3Rpb24gYmxvY2tsaW5rcygpew0KCQkkKCcuSW5FZGl0IGEuZWRpdFNjcmlwdCcpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihlKXsNCgkJCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCX0pOw0KCX0NCg0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIHRpcHMgYW5kIGhlbHBzIGZ1bmN0aW9ucw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KCWZ1bmN0aW9uIGdldFRpcCgpew0KCQlUaXBzID0gWyAidGlwX2dlbmVyYWxfc21hcnR5IiwgInRpcF9nZW5lcmFsX2dyb3VwaW5nIiwgInRpcF9lZGl0b3JfdGFiIiwgInRpcF9lZGl0b3Jfc2VhcmNoTnJlcGxhY2UiLCAidGlwX2VkaXRvcl9yZXNldEhpZ2hsaWdodCIsICJ0aXBfdGVtcGxhdGVfc21hcnR5IiwgInRpcF9ncm91cF9kcmFnTmRyb3AiIF07IA0KCQl2YXIgVGlwID0gVGlwc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqVGlwcy5sZW5ndGgpXTsgDQoJCSQoIiN0aXBlZCIpLmh0bWwoJycrYWpheGl0KCdwdWxsVGlwJyxUaXApKycnKTsNCgl9ICAgICANCglmdW5jdGlvbiBoZWxwX2luaXQoKXsNCgkJLyoNCgkJKg0KCQkqDQoJCSoNCgkJKi8NCgkJLy9oZWxwIHRpcHMuLi4gTE9PSyBJTiBUTw0KCQlpZiAoJCgiaW1nLnN5c3RlbWljb24iKS5sZW5ndGggPiAwICYmIHR5cGVvZigkLnRvb2xzKSE9PSd1bmRlZmluZWQnKXsNCgkJCXZhciBvYmo7DQoJCQl2YXIgdG9vbGlkOw0KCQkJJCgiaW1nLnN5c3RlbWljb24iKS5ub3QoIi5oZWxwdGV4dCBpbWcuc3lzdGVtaWNvbiwucGFnZXRhYmxlIGEgaW1nLnN5c3RlbWljb24iKS5lYWNoKGZ1bmN0aW9uKCl7DQoJCQkJCW9iaj0kKHRoaXMpOw0KCQkJCQl0b29saWQ9J3Rvb2xpZF8nKyQoImltZy5zeXN0ZW1pY29uIikubm90KCIuaGVscHRleHQgaW1nLnN5c3RlbWljb24sLnBhZ2V0YWJsZSBhIGltZy5zeXN0ZW1pY29uIikuaW5kZXgob2JqKTsNCgkJCQkJaWYob2JqLm5leHQoJy5kZW1vdGlwJykubGVuZ3RoPT0wKXtvYmouYWZ0ZXIoJzxkaXYgY2xhc3M9ImRlbW90aXAiIGlkPSInK3Rvb2xpZCsnIj48aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9sb2FkaW5nLmdpZiIgYWx0PSIiLz48L2Rpdj4nKTt9DQoJCQkJCW9iai50b29sdGlwKHsNCgkJCQkJCQl0aXA6JyMnK3Rvb2xpZCwNCgkJCQkJCQlsYXp5OnRydWUsDQoJCQkJCQkJcmVsYXRpdmU6dHJ1ZSwNCgkJCQkJCQlvZmZzZXQ6WzQzLC0yOF0sDQoJCQkJCQkJcG9zaXRpb246J3RvcCByaWdodCcsDQoJCQkJCQkJcHJlZGVsYXk6NTAsDQoJCQkJCQkJb25CZWZvcmVTaG93OiBmdW5jdGlvbigpIHsgDQoJCQkJCQkJCXZhciB0aXAgPSB0aGlzLmdldFRpcCgpOw0KCQkJCQkJCQlpZih0aXAuZmluZCgiLlRUX21pZCIpLmxlbmd0aD09MCl7DQoJCQkJCQkJCQl0aXAud3JhcElubmVyKCc8ZGl2IGNsYXNzPSJUVF9taWQiIC8+Jyk7DQoJCQkJCQkJCQl0aXAuYXBwZW5kKCc8ZGl2IGNsYXNzPSJUVF9idG0iID48L2Rpdj4nKTsNCgkJCQkJCQkJCXRpcC5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJUVF90b3AiID48L2Rpdj4nKTsNCgkJCQkJCQkJCWlmKCQoIi5wcm9ncmVzcyIpLmxlbmd0aCA9PSAwKXsNCgkJCQkJCQkJCQkJdGlwLmFwcGVuZCgnPGltZyBjbGFzcz0icHJvZ3Jlc3MiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbG9hZGluZy5naWYiIGFsdD0iIi8+Jyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlwSVM9dGhpcy5nZXRUcmlnZ2VyKCkuYXR0cigicmVsIik7DQoJCQkJCQkJCQl0aXAuZmluZCgiLlRUX21pZCIpLmxvYWQoQWRtaW5kaXIrIi9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxkZXNjcmlwdGlvbiwwJiIrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyI9IitDTVNfVVNFUl9LRVkrIiZzaG93dGVtcGxhdGU9ZmFsc2UmbTFfRGVzY3JpcHRpb249IitwSVMrIiAjRElTQ1JQIg0KCQkJCQkJCQkJCQkJCQksZnVuY3Rpb24oKXsNCgkJCQkJCQkJCQkJCQkJCQkkKCIucHJvZ3Jlc3MiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpeyQoIi5wcm9ncmVzcyIpLnJlbW92ZSgpO30pOw0KCQkJCQkJCQkJCQkJCQl9KTsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0sIA0KCQkJCQkJCW9uSGlkZTogZnVuY3Rpb24oKSB7DQoJCQkJCQkJCXZhciB0aXAgPSB0aGlzLmdldFRpcCgpOw0KCQkJCQkJCQl0aXAuZW1wdHkoKTsvL3Jlc2V0cyB0aGUgc2l6ZSB0byBiYXNlIGJ5IGVtcHR5aW5nIGl0DQoJCQkJCQkJfQ0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJfQ0KCX0NCg0KDQoNCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyB2YWxpZHRpb24gZnVuY3Rpb25zDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCWZ1bmN0aW9uIHJlbG9hZEpTU3R1ZmYoc2lkLGlkKXsNCgkJJCgnI0RfJytpZCkuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoIi5BamF4TWVzc2FnZSBoMiIpLmZhZGVPdXQoInNsb3ciLGZ1bmN0aW9uKCl7DQoJCQkJICQoJyNEXycraWQpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCIgLkFqYXhNZXNzYWdlIikuZW1wdHkoKS5hcHBlbmQoJzxoMj5Eb25lPC9oMj48aW1nIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvc2NyaXB0ZGVwbG95LnBuZyIgYWx0PSIiIGNsYXNzPSJBSkFYbG9nbyIgLz4nKTsNCgkJIH0pOw0KCQkkKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkFqYXhPdmVyTGF5IikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCcjRF8nK2lkKS5jbG9zZXN0KCcudWktZGlhbG9nJykuZmluZCgiLkFqYXhPdmVyTGF5IikucmVtb3ZlKCk7fSk7DQoJCSQoJyNEXycraWQpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCIuQWpheE1lc3NhZ2UiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpeyQoJyNEXycraWQpLmNsb3Nlc3QoJy51aS1kaWFsb2cnKS5maW5kKCIuQWpheE1lc3NhZ2UiKS5yZW1vdmUoKTt9KTsNCgl9DQoJDQoJZnVuY3Rpb24gYmlnUigpew0KCQlyZXR1cm4gdHJ1ZTsgICAgDQoJfQ0KDQoJCQ0KDQoNCg0KDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR3JvdXAgc3BhY2lmaWMgZnVuY3Rpb25zDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCglmdW5jdGlvbiBncm91cF9pbml0KCl7DQoJCSAgJCgidWwudWktc29ydGFibGUubm90dXNlZCIpLnNvcnRhYmxlKHsNCgkJCQkJcGxhY2Vob2xkZXI6ICd1aS1zdGF0ZS1oaWdobGlnaHQnLA0KCQkJCQljb25uZWN0V2l0aDogJy5jb25uZWN0ZWRTb3J0YWJsZScsDQoJCQkJCWNhbmNlbDogJy51aS1zdGF0ZS1kaXNhYmxlZCcsDQoJCQkJCWZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlICwNCgkJCQkJZGlzdGFuY2U6MTAsDQoJCQkJCXJlY2VpdmU6ZnVuY3Rpb24gKGV2ZW50LCB1aSkgew0KCQkJCQkJdmFyIG5tYiAgICAgPSB1aS5pdGVtLmF0dHIoJ2NsYXNzJykubWF0Y2goL3Rhcl8oXGQrKS8pWzFdOw0KCQkJCQkJdmFyIHBvb2xpdGVtPSIudGFyXyIrbm1iOw0KCQkJCQkJJCgndWwubm90dXNlZCBsaScrcG9vbGl0ZW0pLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5maW5kKCdpbnB1dCcpLmF0dHIoJ2NoZWNrZWQnLGZhbHNlKTsNCgkJCQkJCXVpLml0ZW0ucmVtb3ZlKCk7DQoJCQkJCQlpZihkZWJ1ZylhbGVydCgidWwubm90dXNlZCByZW1vdmU6Iitwb29saXRlbSk7DQoJCQkJCQkkLnBvc3QoJCgndWwubm90dXNlZCAgbGknK3Bvb2xpdGVtKS5jbG9zZXN0KCJmb3JtIikuYXR0cignYWN0aW9uJyksJCgndWwubm90dXNlZCBsaScrcG9vbGl0ZW0pLmNsb3Nlc3QoImZvcm0iKS5zZXJpYWxpemUoKSsiJm0xX3N1Ym1pdGJ1dHRvbj1BZGQiKTsNCgkJCQkJCWlmICgkKCd1bC5ub3R1c2VkICBsaSA6Y2hlY2tib3g6Y2hlY2tlZCcpLmxlbmd0aCE9JCgndWwubm90dXNlZCAgbGkgOmNoZWNrYm94JykubGVuZ3RoKXsgDQoJCQkJCQkJCSQoJyNwb29sRW1wdHknKS5hZGRDbGFzcygnaGlkZGVuJyk7DQoJCQkJCQl9ZWxzZSBpZiAoJCgndWwubm90dXNlZCAgbGkgOmNoZWNrZWQnKS5sZW5ndGg8PTApeyANCgkJCQkJCQkJJCgnI3Bvb2xFbXB0eScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsNCgkJCQkJCX0gDQoJCQkJCX0NCgkJCX0pLmRpc2FibGVTZWxlY3Rpb24oKTsNCgkNCgkJCS8vc29ydCBsaXN0cyBqUV9VSQ0KCQkJJCgidWwudWktc29ydGFibGUudXNlZCIpLnNvcnRhYmxlKHsNCgkJCQkJcGxhY2Vob2xkZXI6ICd1aS1zdGF0ZS1oaWdobGlnaHQnLA0KCQkJCQljb25uZWN0V2l0aDogJy5jb25uZWN0ZWRTb3J0YWJsZScsDQoJCQkJCWNhbmNlbDogJy51aS1zdGF0ZS1kaXNhYmxlZCcsDQoJCQkJCWZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLA0KCQkJCQlkaXN0YW5jZToxMCwNCgkJCQkJcmVjZWl2ZTpmdW5jdGlvbiAoZXZlbnQsIHVpKSB7DQoJCQkJCQl2YXIgbm1iID0gdWkuaXRlbS5hdHRyKCdjbGFzcycpLm1hdGNoKC90YXJfKFxkKykvKVsxXTsNCgkJCQkJCXZhciBuYW1lID0gdWkuaXRlbS5jaGlsZHJlbignbGFiZWwnKS50ZXh0KCk7DQoJCQkJCQl2YXIgcG9vbGl0ZW0gPSIudGFyXyIrbm1iOw0KCQkJCQkJdmFyIHRhcmc9dWkuaXRlbTsNCgkJCQkJCXVpLml0ZW0uY2xvbmUoKS5hcHBlbmRUbygnI3NvcnRhYmxlMScpOw0KCQkJCQkJdWkuaXRlbS5yZW1vdmVDbGFzcygndWktc3RhdGUtZGVmYXVsdCcpLnJlbW92ZUNsYXNzKCdTY3JpcHRwb29sJykuYWRkQ2xhc3MoIlNjcmlwdExpc3QiKS5odG1sKG1ha2VMaXN0KG5hbWUsbm1iKSk7DQoJCQkJCQkkKCd1bCNzb3J0YWJsZTEgbGknK3Bvb2xpdGVtKS5maW5kKCdpbnB1dCcpLmF0dHIoJ2NoZWNrZWQnLHRydWUpOw0KCQkJCQkJJCgndWwjc29ydGFibGUxIGxpJytwb29saXRlbSkuYWRkQ2xhc3MoJ2hpZGRlbicpOw0KCQkJCQkJaWYgKCQoJ3VsI3NvcnRhYmxlMSBsaSA6Y2hlY2tib3g6Y2hlY2tlZCcpLmxlbmd0aCE9JCgndWwjc29ydGFibGUxIGxpIDpjaGVja2JveCcpLmxlbmd0aCl7IA0KCQkJCQkJCSQoJyNwb29sRW1wdHknKS5hZGRDbGFzcygnaGlkZGVuJyk7DQoJCQkJCQl9ZWxzZXsgDQoJCQkJCQkJJCgnI3Bvb2xFbXB0eScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsNCgkJCQkJCX0NCgkJCQkJCSQoJ3VsLnVpLXNvcnRhYmxlLnVzZWQgbGkudGFyXycpLnJlbW92ZSgpOw0KCQkJCQkJJC5wb3N0KCQoJ3VsI3NvcnRhYmxlMSBsaScrcG9vbGl0ZW0pLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCdhY3Rpb24nKSwkKCd1bCNzb3J0YWJsZTEgbGknK3Bvb2xpdGVtKS5jbG9zZXN0KCJmb3JtIikuc2VyaWFsaXplKCkrIiZtMV9zdWJtaXRidXR0b249QWRkIik7DQoJCQkJCX0sDQoJCQkJCXVwZGF0ZSA6IGZ1bmN0aW9uIChldmVudCwgdWkpIHsNCgkJCQkJCS8vdmFyIHRvdGFscm93cyA9ICQoInVsLnVpLXNvcnRhYmxlIikuZmluZCgibGkiKS5zaXplKCk7DQoJCQkJCQkkKCJ1bC51aS1zb3J0YWJsZS51c2VkIikuZmluZCgibGkiKS5yZW1vdmVDbGFzcygncm93MScpLnJlbW92ZUNsYXNzKCdyb3cyJyk7DQoJCQkJCQkkKCJ1bC51aS1zb3J0YWJsZS51c2VkIikuZmluZCgibGk6bnRoLWNoaWxkKDJuKzEpIikuYWRkQ2xhc3MoInJvdzEiKTsNCgkJCQkJCSQoInVsLnVpLXNvcnRhYmxlLnVzZWQiKS5maW5kKCJsaTpudGgtY2hpbGQoMm4pIikuYWRkQ2xhc3MoInJvdzIiKTsNCgkJCQkJCSQoInVsLnVpLXNvcnRhYmxlLnVzZWQiKS5maW5kKCJsaSIpLmVhY2goZnVuY3Rpb24oKSB7IA0KCQkJCQkJCQkkKHRoaXMpLmZpbmQoJ2lucHV0JykudmFsKCQodGhpcykuaW5kZXgoKSsxKTsNCgkJCQkJCX0pOw0KCQkJCQkJZElEPSB1aS5pdGVtLmNsb3Nlc3QoJy51aS1kaWFsb2ctY29udGVudCcpLmF0dHIoJ2lkJykucmVwbGFjZSgnRF8nLCcnKS5yZXBsYWNlKCdHXycsJycpOw0KCQkJCQkJJCgnI0dfJytkSUQpLmZpbmQoIi5ncm91bnBjb3VudCIpLnRleHQoJCgidWwudXNlZCBsaSIpLmxlbmd0aCsnIGluJyk7DQoJCQkJCQkkLnBvc3QoJCgidWwudWktc29ydGFibGUiKS5jbG9zZXN0KCJmb3JtIikuYXR0cignYWN0aW9uJyksICQoInVsLnVpLXNvcnRhYmxlIikuY2xvc2VzdCgiZm9ybSIpLnNlcmlhbGl6ZSgpKyImbTFfUkVPUkRFUj1SZW9yZGVyIik7DQoJCQkJCX0NCgkJCX0pLmRpc2FibGVTZWxlY3Rpb24oKTsNCgkJDQoJfQ0KDQoJZnVuY3Rpb24gbWFrZUxpc3QobmFtZSxudW0peyAvLyB0aGlzIGlzIHVzZWQgZm9yIHRoZSBlZGl0IGdyb3VwIGRpYWxvZyBib3ggDQoJCQlyZXR1cm4gJzxzcGFuIGNsYXNzPSJyZU9yMyI+JysNCgkJCQkJJzxpbWcgY2xhc3M9ImhhbmRsZSIgYWx0PSJkcmFnIHRvIHJlb3JkZXIiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbWFya2VyLnBuZyI+JysNCgkJCQkJJzxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjIiIHNpemU9IjMiIHZhbHVlPSInK251bSsnIiBpZD0ibTFfU2NyaXB0T1JERVJbJytudW0rJ10iIG5hbWU9Im0xX1NjcmlwdE9SREVSWycrbnVtKyddIiBjbGFzcz0iY21zX3RleHRmaWVsZCI+JysNCgkJCSc8L3NwYW4+JysNCgkJCSc8c3BhbiBjbGFzcz0icmVPcjQiPjwvc3Bhbj4nKw0KCSAgICcgPHNwYW4gY2xhc3M9InJlT3I1Ij4nKw0KCQkJCQknPGEgaHJlZj0iJytBZG1pbmRpcisnL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRfc2NyaXB0LDAmYW1wOycrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZhbXA7bTFfU2NyaXB0U2V0PScrbnVtKycmYW1wO20xX2FjdGl2ZV90YWI9dGVtcGxhdGVfbWFuZyZhbXA7bTFfbW9kZT1lZGl0IiByZWw9IicrbnVtKyciPicrDQoJCQkJCSc8aW1nIHRpdGxlPSJFZGl0IiBhbHQ9IkVkaXQiIGNsYXNzPSJzeXN0ZW1pY29uIiBzcmM9InRoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vZWRpdC5naWYiPjwvYT4nKw0KCQkJJzwvc3Bhbj4nKw0KCQkJJzxzcGFuIGNsYXNzPSJyZU9yMSI+JysNCgkJCQkJJzxpbWcgY2xhc3M9ImhhbmRsZSIgYWx0PSJkcmFnIHRvIHJlb3JkZXIiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbWFya2VyLnBuZyI+JysNCgkJCSc8L3NwYW4+JysNCgkJCSc8c3BhbiBjbGFzcz0icmVPcjIiPicrDQoJCQkJCSc8c3BhbiBjbGFzcz0ibmFtZSI+JysNCgkJCQkJCQluYW1lKw0KCQkJCQkJCSc8c3Bhbj4nKw0KCQkJCQkJCQkJJyhpZDonK251bSsnKScrDQoJCQkJCQkJJzwvc3Bhbj4nKw0KCQkJCQkgICAnIEAnKw0KCQkJCQknPC9zcGFuPicrDQoJCQkJCSc8c3BhbiBjbGFzcz0iY291bnRTaXplIj4nKw0KCQkJCQkJCScnKw0KCQkJCQknPC9zcGFuPicrDQoJCQknPC9kaXY+JzsNCgl9DQoJDQoJZnVuY3Rpb24gbWFrZU5ld0dyb3VwUm93KGlkLG5hbWUsdHlwZSxudW1iZXIpey8vJytDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSsnK2RpcisnICAvLyB0aGlzIGlzIHVzZWQgd2hlbiBhZGRpbmcgYSBncm91cA0KCQkJcmV0dXJuICc8dHIgaWQ9IkdfJyt0eXBlK2lkKyciIGNsYXNzPSJyb3cxIj4nKw0KCQkJCScgPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGRpdiBzdHlsZT0iIHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MzVweDsiPjxpbWcgaGVpZ2h0PSIzNSIgd2lkdGg9IjM1IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6OTsgdG9wOjBweDsiIHNyYz0iaHR0cDovL2xvY2FsaG9zdC9saWtlcGFpci5jb20vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycrdHlwZSsnLnBuZyI+PC9kaXY+PC90ZD4nKw0KDQogIAkJCQknPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGgyIGNsYXNzPSJncm91bnBjb3VudCIgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+JytudW1iZXIrJyBpbjwvaDI+PGgxIHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPjxhIGNsYXNzPSJlZGl0R3JvdXAiIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0YXNzaWdubWVudCwwJmFtcDsnK0NNU19TRUNVUkVfUEFSQU1fTkFNRSsnPScrQ01TX1VTRVJfS0VZKycmYW1wO20xX0dyb3VwdElEPScraWQrJyZhbXA7bTFfYWN0aXZlX3RhYj1zY3JpcHRfdGVtcGxhdGUmYW1wO20xX21vZGU9ZWRpdCI+JytuYW1lKyc8L2E+PC9oMT48L3RkPicrDQoJCQkJJzx0ZCBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQiPjxhIHRpdGxlPSJHZXQgdGhlIHRhZyB7U2NyaXB0RGVwbG95IGdyb3VwSUQ9JnF1b3Q7JytpZCsnJnF1b3Q7IFN0eXBlPSZxdW90OycrdHlwZSsnJnF1b3Q7fSIgY2xhc3M9ImdldFRhZyIgaHJlZj0iIyI+PGltZyBhbHQ9IkdldCB0aGUgdGFnIHtTY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsnK2lkKycmcXVvdDsgU3R5cGU9JnF1b3Q7Jyt0eXBlKycmcXVvdDt9IiBzcmM9IicrZGlyKycvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL0dldFRhZy5wbmciPkdldCBUYWc8c3BhbiBjbGFzcz0iaGlkZGVuIGNvcHlhcmVhIj57U2NyaXB0RGVwbG95IGdyb3VwSUQ9IicraWQrJyIgU3R5cGU9IicrdHlwZSsnIn08L3NwYW4+PC9hPjwvdGQ+JysNCgkJCQknPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGEgY2xhc3M9ImVkaXRHcm91cCIgaHJlZj0iJytBZG1pbmRpcisnL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGVkaXRhc3NpZ25tZW50LDAmYW1wOycrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZhbXA7bTFfR3JvdXB0SUQ9JytpZCsnJmFtcDttMV9hY3RpdmVfdGFiPXNjcmlwdF90ZW1wbGF0ZSZhbXA7bTFfbW9kZT1lZGl0Ij48aW1nIHRpdGxlPSJFZGl0IiBhbHQ9IkVkaXQiIGNsYXNzPSJzeXN0ZW1pY29uIiBzcmM9InRoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vZWRpdC5naWYiPjwvYT48L3RkPicrDQoJCQkJJzx0ZCBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQiPjxhIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/XCcpOyIgaHJlZj0iJytBZG1pbmRpcisnL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGRlbGV0ZWFzc2lnbm1lbnQsMCZhbXA7JytDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSsnJmFtcDttMV9Hcm91cHRTZXQ9JytpZCsnIj48aW1nIHRpdGxlPSJEZWxldGUiIGFsdD0iRGVsZXRlIiBjbGFzcz0ic3lzdGVtaWNvbiIgc3JjPSJ0aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiPjwvYT48L3RkPicrDQogICAnPC90cj4nOw0KCX0NCgkNCmZ1bmN0aW9uIG1ha2VOZXdTY3JpcHRSb3codHlwZSxpZCxuYW1lKXsvLycrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJytkaXIrJyAgLy8gdGhpcyBpcyB1c2VkIHdoZW4gYWRkaW5nIGEgZ3JvdXANCglpZih0eXBlb2YobmFtZSk9PT0ndW5kZWZpbmVkJyl7bmFtZT0nLS0tLS0tLSc7fQ0KCQkJcmV0dXJuICcnKw0KJzx0ciBpZD0iJyt0eXBlKycnK2lkKyciIGNsYXNzPSJyb3cxICI+JysNCgkJCQknPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGRpdiBzdHlsZT0iIHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MzVweDsiPjxpbWcgd2lkdGg9IjM1IiBoZWlnaHQ9IjM1IiBhbHQ9IiIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk5O3RvcDowcHg7IiBzcmM9IicrZGlyKycvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL01pbi5wbmciPjxpbWcgd2lkdGg9IjM1IiBoZWlnaHQ9IjM1IiBhbHQ9IiIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4Ojk7IHRvcDowcHg7IiBzcmM9IicrZGlyKycvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzLycrdHlwZSsnLnBuZyI+PC9kaXY+PC90ZD4nKw0KCQkJCSc8dGQgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij48aDM+PGEgY2xhc3M9ImVkaXRTY3JpcHQiIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0X3NjcmlwdCwwJmFtcDsnK0NNU19TRUNVUkVfUEFSQU1fTkFNRSsnPScrQ01TX1VTRVJfS0VZKycmYW1wO20xX1NjcmlwdFNldD0nK2lkKycmYW1wO20xX2FjdGl2ZV90YWI9c2NyaXB0X3RlbXBsYXRlJmFtcDttMV9tb2RlPWVkaXQiPicraWQrJzwvYT48L2gzPjwvdGQ+JysNCgkJCQknPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGg0IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPjxhIGNsYXNzPSJlZGl0U2NyaXB0IiBocmVmPSInK0FkbWluZGlyKycvbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PVNjcmlwdERlcGxveSxtMV8sZWRpdF9zY3JpcHQsMCZhbXA7JytDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSsnJmFtcDttMV9TY3JpcHRTZXQ9JytpZCsnJmFtcDttMV9hY3RpdmVfdGFiPXNjcmlwdF90ZW1wbGF0ZSZhbXA7bTFfbW9kZT1lZGl0Ij48c3Ryb25nPicrbmFtZSsnPC9zdHJvbmc+PC9hPiBAIDAgYnl0ZXMgIC0tICBSZXZpc2lvbjo8ZW0+PHNwYW4gY2xhc3M9InJldmVydFZlcnNpb24iPjxhIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxyZXZlcnQsMCZhbXA7JytDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSsnJmFtcDttMV9TY3JpcHRTZXQ9JytpZCsnJmFtcDttMV9hY3RpdmVfdGFiPXNjcmlwdF90ZW1wbGF0ZSZhbXA7bTFfbW9kZT1yZXZlcnQiPjxpbWcgYWx0PSJSZWxvYWQiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyI+PGVtIGNsYXNzPSJyZXZOdW0iPjA8L2VtPjwvYT48L3NwYW4+PC9lbT48L2g0PjwvdGQ+JysNCgkJCQknPHRkIGNsYXNzPSJ1aS13aWRnZXQtY29udGVudCI+PGg0PjxhIHRpdGxlPSJHZXQgdGhlIHRhZyB7U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OycraWQrJyZxdW90OyBTdHlwZT0mcXVvdDsnK3R5cGUrJyZxdW90O30iIGNsYXNzPSJnZXRUYWciIGhyZWY9IiMiPjxpbWcgYWx0PSJHZXQgdGhlIHRhZyB7U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OycraWQrJyZxdW90OyBTdHlwZT0mcXVvdDsnK3R5cGUrJyZxdW90O30iIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvR2V0VGFnLnBuZyI+R2V0IFRhZzxzcGFuIGNsYXNzPSJoaWRkZW4gY29weWFyZWEiPntTY3JpcHREZXBsb3kgc2NyaXB0SUQ9IicraWQrJyIgU3R5cGU9IicrdHlwZSsnIn08L3NwYW4+PC9hPjwvaDQ+PC90ZD4nKw0KCQkJCSc8dGQgY2xhc3M9InVpLXdpZGdldC1jb250ZW50Ij48ZGl2IGNsYXNzPSJlZGl0YmFyICI+PGEgY2xhc3M9ImVkaXRTY3JpcHQiIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxlZGl0X3NjcmlwdCwwJmFtcDsnK0NNU19TRUNVUkVfUEFSQU1fTkFNRSsnPScrQ01TX1VTRVJfS0VZKycmYW1wO20xX1NjcmlwdFNldD0nK2lkKycmYW1wO20xX2FjdGl2ZV90YWI9c2NyaXB0X3RlbXBsYXRlJmFtcDttMV9tb2RlPWVkaXQiPjxpbWcgYWx0PSJFZGl0IiBzcmM9IicrZGlyKycvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2VkaXQucG5nIj48L2E+PGEgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oXCdZb3UgYXJlIG5vdyBnb2luZyB0byBtYWtlIGEgY29weVwnKTsiIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxjb3B5X1NjcmlwdF9TZXR1cCwwJmFtcDsnK0NNU19TRUNVUkVfUEFSQU1fTkFNRSsnPScrQ01TX1VTRVJfS0VZKycmYW1wO20xX3NjcmlwdF9pZD0nK2lkKycmYW1wO20xX2FjdGl2ZV90YWI9c2NyaXB0X3RlbXBsYXRlIj48aW1nIGFsdD0iQ29weSIgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jb3B5LnBuZyI+PC9hPjxhIGhyZWY9IicrQWRtaW5kaXIrJy9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U2NyaXB0RGVwbG95LG0xXyxyZXZlcnQsMCZhbXA7JytDTVNfU0VDVVJFX1BBUkFNX05BTUUrJz0nK0NNU19VU0VSX0tFWSsnJmFtcDttMV9TY3JpcHRTZXQ9JytpZCsnJmFtcDttMV9hY3RpdmVfdGFiPXNjcmlwdF90ZW1wbGF0ZSZhbXA7bTFfbW9kZT1yZXZlcnQiPjxpbWcgYWx0PSJSZWxvYWQiIHNyYz0iJytkaXIrJy9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyI+PC9hPjxhIG9uY2xpY2s9InJldHVybiBjb25maXJtKFwnSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuVGhvdSB0aGUgc2NyaXB0IGlzIG5vdCBpbiBhIGdyb3VwIGl0IHN0aWxsIG1heSBiZSBpbiBhIHRlbXBsYXRlIHNvbWV3aGVyZS4gIFlvdSB3aWxsIGJyZWFrIHRoZSB0aWUgYW5kIHdpbGwgbmVlZCB0byBlZGl0IHRoZSBncm91cC5cbkl0IGlzIGJlc3QgdG8gc3RhcnQgdGhlIGRlbGV0aW9uIHByb2Nlc3MgZnJvbSB0aGUgQXNzaWdubWVudCBhcmVhLlxuXG5ZT1UgQUxTTyBMT1NFIFlPVVIgUkVWSVNJT04gSElTVE9SWSBGT1IgVEhJUyBTQ1JJUFQuLiBBUkUgWU9VIFJFQUxZIFNVUkU/Pz9cJyk7IiBocmVmPSInK0FkbWluZGlyKycvbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PVNjcmlwdERlcGxveSxtMV8sZGVsZXRlX3NjcmlwdCwwJicrQ01TX1NFQ1VSRV9QQVJBTV9OQU1FKyc9JytDTVNfVVNFUl9LRVkrJyZtMV9TY3JpcHRJRD0nK2lkKycmbTFfYWN0aXZlX3RhYj1zY3JpcHRfdGVtcGxhdGUiPicrDQonPGltZyBhbHQ9IkRlbGV0ZSIgc3JjPSInK2RpcisnL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9kZWxldGUucG5nIj4nKw0KJzwvYT48L2Rpdj48L3RkPicrDQonPC90cj4nOw0KCX0JDQoJCWZ1bmN0aW9uIGRvU29tZXRoaW5nKGUpIHsNCgkJCQl2YXIgbGVmdGNsaWNrOw0KCQkJCWlmICghZSkgdmFyIGUgPSB3aW5kb3cuZXZlbnQ7DQoJCQkJaWYgKGUud2hpY2gpIHJpZ2h0Y2xpY2sgPSAoZS53aGljaCA9PSAzKTsNCgkJCQllbHNlIGlmIChlLmJ1dHRvbikgcmlnaHRjbGljayA9IChlLmJ1dHRvbiA9PSAyKTsNCgkJCQlpZihkZWJ1ZylhbGVydCgnUmlnaHRjbGljazogJyArIHJpZ2h0Y2xpY2spOyAvLyB0cnVlIG9yIGZhbHNlDQoJCX0NCgkJDQoJCQ0KCQkNCgkJDQoJCQ0KZnVuY3Rpb24gY2xpcGJvYXJkX2luaSgpew0KICAgICAgICAvL2NvcHkgdG8gY2xpcGJvYXJkDQoJCWlmKHR5cGVvZihaZXJvQ2xpcGJvYXJkKSE9PSd1bmRlZmluZWQnKXsNCgkJCVplcm9DbGlwYm9hcmQuc2V0TW92aWVQYXRoKGRpcisnL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy96ZXJvY2xpcGJvYXJkL1plcm9DbGlwYm9hcmQxMC5zd2YnKTsNCgkJCWNsaXAgPSBuZXcgWmVyb0NsaXBib2FyZC5DbGllbnQoKTsNCgkJCWNsaXAuc2V0SGFuZEN1cnNvciggdHJ1ZSApOw0KCQ0KCQkJJCgnLmdldFRhZycpLm1vdXNlb3ZlciggZnVuY3Rpb24oKSB7DQoJCQkJCWNsaXAuc2V0VGV4dCggJCh0aGlzKS5jaGlsZHJlbignc3BhbicpLnRleHQoKSApOw0KCQkJCQlpZiAoY2xpcC5kaXYpIHsNCgkJCQkJCQljbGlwLnJlY2VpdmVFdmVudCgnbW91c2VvdXQnLCBudWxsKTsNCgkJCQkJCQljbGlwLnJlcG9zaXRpb24odGhpcyk7DQoJCQkJCQkJDQoJCQkJCX0NCgkJCQkJZWxzZSBjbGlwLmdsdWUodGhpcyk7DQoJCQkJCWNsaXAucmVjZWl2ZUV2ZW50KCdtb3VzZW92ZXInLCBudWxsKTsNCgkNCgkJCX0gKTsNCgkJCWNsaXAuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCBmdW5jdGlvbiAoY2xpZW50LCB0ZXh0KSB7DQoJCQkJCQkJYWxlcnQoIkNvcGllZCB0YWcgdG8gY2xpcGJvYXJkOlxyXG4iICsgdGV4dCApOw0KCQkJfSk7DQoJCX0NCgl9CQkNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR2VuZXJhbCBpbml0YWxpemF0aW9uDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0JDQpmdW5jdGlvbiBpbml0KCkgew0KCQljbGlwYm9hcmRfaW5pKCk7DQoJCWdyb3VwX2luaXQoKTsNCi8qDQoqDQoqDQoqDQoqLw0KLy9jbGVhciBhY3Rpb24gbWVzc2FnZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIGlmICgkKCIucGFnZW1lc3NhZ2UiKS5sZW5ndGggPiAwKXsNCgkJCSQoIi5wYWdlbWVzc2FnZSIpLmNsb3Nlc3QoIi5wYWdlbWNvbnRhaW5lciIpDQoJCQkJCS5mYWRlVG8oMzAwMCwgMC45LGZ1bmN0aW9uKCl7DQovLwkJCQkJCSQoIi5wYWdlbWVzc2FnZSIpLmZhZGVUbyg1MDAsIDAuMCxmdW5jdGlvbigpew0KLy8JCQkJCQkJJCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikucmVtb3ZlKCk7DQovLwkJCQkJCX0pOw0KCQkJCQkgJCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikuYW5pbWF0ZSh7DQoJCQkJCSB3aWR0aDonMHB4JywNCgkJCQkJICdyaWdodCc6Jy00MHB4Jw0KCQkJCQkgfSwxNzUwLCdlYXNlSW5PdXRCYWNrJyk7CQ0KCQkJCQl9KTsNCiAgICAgICAgfQ0KLy9hamF4aXQoJ3B1bGxUaXAnLFRpcCk7DQoJCWhlbHBfaW5pdCgpOw0KfQ0KDQoNCg0KDQoNCg0KDQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCgkJbG9hZFVzZXJTY2FwZSgpOw0KCQkNCiQoJ2lucHV0W3R5cGU9c3VibWl0XScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJaGFzQmluZ2luZygkKHRoaXMpKTsJCQkJCQkJCSAgIA0KfSk7CQkNCg0KCQkNCgkJDQoJCQ0KDQoJCQkJCQkgICANCgkJaW5pdCgpOw0KCQlpZih0eXBlb2YoJC50YWJsZXNvcnRlcikhPT0ndW5kZWZpbmVkJyl7DQoJCQkkKCJ0YWJsZSNUUzEiKS50YWJsZXNvcnRlcih7d2lkdGhGaXhlZDpmYWxzZSwgd2lkZ2V0czogWyd6ZWJyYSddfSkudGFibGVzb3J0ZXJQYWdlcih7Y29udGFpbmVyOiAkKCIjcGFnZXIiKSxzaXplOjEwLHNlcGVyYXRvcjogIiBvZiAiLHBvc2l0aW9uRml4ZWQ6IGZhbHNlfSk7IA0KCQkJJCgidGFibGUjVFMyIikudGFibGVzb3J0ZXIoe3dpZHRoRml4ZWQ6ZmFsc2UsIHdpZGdldHM6IFsnemVicmEnXX0pLnRhYmxlc29ydGVyUGFnZXIoe2NvbnRhaW5lcjogJCgiI3BhZ2VyMiIpLHNpemU6NSxzZXBlcmF0b3I6ICIgb2YgIixwb3NpdGlvbkZpeGVkOiBmYWxzZX0pOyANCgkJfQ0KCQkkKCIjYXBwZW5kIikuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkgJCgidGFibGUudGFibGVzb3J0ZXIgdGJvZHkiKS5hcHBlbmQoYWpheGl0KCdwdWxsTG9ncycsJzEsMjAsaXRlbV9uYW1lPVwnU2NyaXB0RGVwbG95XCcnKSk7DQoJCQkkKCJ0YWJsZS50YWJsZXNvcnRlciIpLnRyaWdnZXIoInVwZGF0ZSIpOw0KCQkJdmFyIHNvcnRpbmcgPSBbWzIsMV0sWzAsMF1dOw0KCQkJJCgidGFibGUudGFibGVzb3J0ZXIiKS50cmlnZ2VyKCJzb3J0b24iLFtzb3J0aW5nXSk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0pOw0KCQkkKCIjdmVyc2lvblBsYW5lIHRyIikuY2xpY2soZnVuY3Rpb24oKSB7DQoJCQkkKCIjdmVyc2lvblBsYW5lIHRyIikucmVtb3ZlQ2xhc3MoJ2N1cnJlbnQnKTsNCgkJCXZhciBSaWQgPSAkKHRoaXMpLmF0dHIoJ2lkJyk7IA0KCQkJUmlkID0gUmlkLnJlcGxhY2UoIlIiLCAnJyk7DQoJCQl2YXIgU2lkID0gJCgnI1NpZCcpLmh0bWwoKTsNCgkJCSQoInRleHRhcmVhI2NTY3JpcHRQbGFuZSIpLmFkZENsYXNzKCdwcm9jZXNzaW5nJyk7DQoJCQlhamF4aXQoJ0dldFRoaXNSZXZpc2lvbicsJycrU2lkKycsJytSaWQrJycsbnVsbCxmdW5jdGlvbihkYXRhKXtUaGVEYXRhPWRhdGE7fSk7DQoJCQlzZXRUaW1lb3V0KGRvTmV4dCw1MCx0aGlzKTsNCgkJfSk7DQoJDQoJCWlmKCQoImlucHV0W25hbWU9J20xX3Jlc3RhcnQnXSIpLmxlbmd0aD4wKXsNCgkJCS8qIHRoZSBpbnNlcnQgc2NyaXB0ICovDQoJCQkkKCJpbnB1dFtuYW1lPSdtMV9yZXN0YXJ0J10iKS5jbGljayhmdW5jdGlvbihldnQpeyAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQlldnQuc3RvcFByb3BhZ2F0aW9uKCApOyAgIA0KCQkJCQlldnQucHJldmVudERlZmF1bHQoICk7IA0KCQkJCQl2YXIgdXJsPSQodGhpcykuY2xvc2VzdCgnZm9ybScpLmF0dHIoJ2FjdGlvbicpOw0KCQkJCQkkLnBvc3QoQWRtaW5kaXIrJy8nK3VybCwkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKS5zZXJpYWxpemUoKSsiJm0xX3Jlc3RhcnQ9dHJ1ZSZzaG93dGVtcGxhdGU9ZmFsc2UiLA0KCQkJCQkJZnVuY3Rpb24oZGF0YSl7DQoJCQkJCQkJJC5jb2xvcmJveCh7aW5pdGlhbFdpZHRoOic1MCcsDQoJCQkJCQkJCQkJIGh0bWw6JzxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjJweCA1cHg7Ij4nK2RhdGErJzwvZGl2PicsDQoJCQkJCQkJCQkJIGluaXRpYWxIZWlnaHQ6Jzc1JywNCgkJCQkJCQkJCQkgc2Nyb2xsaW5nOmZhbHNlLA0KCQkJCQkJCQkJCSByZWw6J25vZm9sbG93JywNCgkJCQkJCQkJCQkgb3BhY2l0eTowLjI1LA0KCQkJCQkJCQkJCSBvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkJCSAkLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpOw0KCQkJCQkJCQkJCSB9DQoJCQkJCQkJfSk7DQoJCQkJCX0pOw0KCQkJfSk7DQoJCX0NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoJDQoJaWYoICQoJy5qcXVlcnlGaWxlVHJlZScpLmxlbmd0aCA+IDApew0KCQkkKCcuanF1ZXJ5RmlsZVRyZWUnKS5maWxlVHJlZSh7IA0KCQkJcm9vdDogJy91cGxvYWRzLycsDQoJCQlzY3JpcHQ6IEFkbWluZGlyKyIvbW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PVNjcmlwdERlcGxveSxtMV8sZXhwb3J0LDAmIitDTVNfU0VDVVJFX1BBUkFNX05BTUUrIj0iICsgQ01TX1VTRVJfS0VZICsgIiZtMV9maWxlcz10cnVlJnNob3d0ZW1wbGF0ZT1mYWxzZSIsDQoJCQlmb2xkZXJFdmVudDogJ2NsaWNrJywNCgkJCWV4cGFuZFNwZWVkOiAxMDAwLA0KCQkJY29sbGFwc2VTcGVlZDogNzUwDQoJCX0sZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSk7ICANCgl9DQoJCQ0KCQkNCgkvKg0KCSoNCgkqDQoJKg0KCSovDQoJLy9BY2NvcmRpb24gDQoJCXZhciBpY29ucyA9IHsNCgkJCWhlYWRlcjogInVpLWljb24tY2lyY2xlLWFycm93LWUiLA0KCQkJaGVhZGVyU2VsZWN0ZWQ6ICJ1aS1pY29uLWNpcmNsZS1hcnJvdy1zIg0KCQl9Ow0KCQkkKCAiLmFjY29yZGlvbiIgKS5hY2NvcmRpb24oew0KCQkJCQlhdXRvSGVpZ2h0OiBmYWxzZSwNCgkJCQkJY29sbGFwc2libGU6IHRydWUsDQoJCQkJCWljb25zOiBpY29ucywNCgkJCQkJLy9hY3RpdmU6IGZhbHNlLA0KCQkJCQljaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgew0KCQkJCQkJJCh0aGlzKS5maW5kKCdoMycpLnJlbW92ZUNsYXNzKCd1aS1jb3JuZXItdG9wJyk7DQoJCQkJCQkkKHRoaXMpLmZpbmQoJ2gzJykucmVtb3ZlQ2xhc3MoJ3VpLWNvcm5lci1hbGwnKTsNCgkJCQkJCSQodGhpcykuZmluZCgnaDM6bGFzdCcpLm5vdCgnLnVpLXN0YXRlLWFjdGl2ZScpLmFkZENsYXNzKCd1aS1jb3JuZXItYm90dG9tJyk7DQoJCQkJCQkkKHRoaXMpLmZpbmQoJy51aS13aWRnZXQtY29udGVudCcpLm5vdCgnOmxhc3QnKS5yZW1vdmVDbGFzcygndWktY29ybmVyLWJvdHRvbScpOw0KCQkJCQkJJCh0aGlzKS5maW5kKCcudWktc3RhdGUtYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ3VpLWNvcm5lci1ib3R0b20nKTsNCgkJCQkJfQ0KCQkJCX0pOw0KCQkkKCcjc2NyaXB0Q2hvaWNlIGxpJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CQkJCQkNCgkJCQkkKCAiI3NjcmlwdENob2ljZSB+IC5hY2NvcmRpb24iICkuYWNjb3JkaW9uKCAiYWN0aXZhdGUiICwgJCgnI3NjcmlwdENob2ljZSBsaScpLmluZGV4KCQodGhpcykpICk7DQoJCQl9KTsNCgkJJCgnI3RlbXBsYXRlQ2hvaWNlIGxpJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CQkJCQkNCgkJCSQoICIjdGVtcGxhdGVDaG9pY2UgfiAuYWNjb3JkaW9uIiApLmFjY29yZGlvbiggImFjdGl2YXRlIiAsICQoJyN0ZW1wbGF0ZUNob2ljZSBsaScpLmluZGV4KCQodGhpcykpICk7DQoJCX0pOwkNCgkJDQoJCSQoJy50ZW1wbGF0ZUNob2ljZSBsaScpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbigpewkJCQkJDQoJCQkkKCAiLnRlbXBsYXRlQ2hvaWNlIH4gLmFjY29yZGlvbiIgKS5hY2NvcmRpb24oICJhY3RpdmF0ZSIgLCAkKCcudGVtcGxhdGVDaG9pY2UgbGknKS5pbmRleCgkKHRoaXMpKSApOw0KCQl9KTsJCQ0KCQkNCgkJDQoJCSQoICIuYWNjb3JkaW9uIiApLmVhY2goZnVuY3Rpb24oKXsNCgkJCQkkKHRoaXMpLmZpbmQoJ2gzJykucmVtb3ZlQ2xhc3MoJ3VpLWNvcm5lci10b3AnKTsNCgkJCQkkKHRoaXMpLmZpbmQoJ2gzJykucmVtb3ZlQ2xhc3MoJ3VpLWNvcm5lci1hbGwnKTsNCgkJCQkkKHRoaXMpLmZpbmQoJ2gzOmxhc3QnKS5ub3QoJy51aS1zdGF0ZS1hY3RpdmUnKS5hZGRDbGFzcygndWktY29ybmVyLWJvdHRvbScpOw0KCQkJCSQodGhpcykuZmluZCgnLnVpLXN0YXRlLWFjdGl2ZScpLnJlbW92ZUNsYXNzKCd1aS1jb3JuZXItYm90dG9tJyk7DQoJCQkJJCh0aGlzKS5maW5kKCcudWktd2lkZ2V0LWNvbnRlbnQnKS5ub3QoJzpsYXN0JykucmVtb3ZlQ2xhc3MoJ3VpLWNvcm5lci1ib3R0b20nKTsNCgkJCX0pOw0KDQoNCgkJJCggIi5lZGl0U2NyaXB0IiApLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJdmFyIHVybD0kKHRoaXMpLmF0dHIoJ2hyZWYnKTsNCgkJCXZhciBkSUQ9JCh0aGlzKS5jbG9zZXN0KCd0cicpLmF0dHIoJ2lkJyk7DQoJCQl2YXIgZFdpZHRoID0gNjUwOwkNCgkJCXZhciBkaGVpZ2h0ID0gNDUwOw0KCQkJY3JlYXRlRGlhbG9nKCdlZGl0c2NyaXB0JyxldnQsJCh0aGlzKSxkSUQsdXJsLCJmb3JtW2lkXj0nbTFfbW9kdWxlZm9ybSddIixkV2lkdGgsZGhlaWdodCk7DQoJCX0pOw0KDQoJCSQoICIuZWRpdFRlbXBsYXRlIiApLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJdmFyIHVybD0kKHRoaXMpLmF0dHIoJ2hyZWYnKTsNCgkJCXZhciBkSUQ9JCh0aGlzKS5jbG9zZXN0KCd0cicpLmF0dHIoJ2lkJyk7DQoJCQl2YXIgZFdpZHRoID0gNjUwOwkNCgkJCXZhciBkaGVpZ2h0ID0gNDUwOw0KCQkJY3JlYXRlRGlhbG9nKCdlZGl0c2NyaXB0JyxldnQsJCh0aGlzKSxkSUQsdXJsLCJmb3JtW2lkXj0nbTFfbW9kdWxlZm9ybSddIixkV2lkdGgsZGhlaWdodCk7DQoJCX0pOw0KDQoJCSQoICIuZWRpdF9tb2R1bGVfdGVtcGxhdGUiICkubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKGV2dCl7DQoJCQl2YXIgdXJsPSQodGhpcykuYXR0cignaHJlZicpOw0KCQkJdmFyIGRJRD0kKHRoaXMpLmNsb3Nlc3QoJ3RyJykuYXR0cignaWQnKTsNCgkJCXZhciBkV2lkdGggPSA2NTA7CQ0KCQkJdmFyIGRoZWlnaHQgPSA0NTA7DQoJCQljcmVhdGVEaWFsb2coJ2VkaXRzY3JpcHQnLGV2dCwkKHRoaXMpLGRJRCx1cmwsImZvcm1baWRePSdtMV9tb2R1bGVmb3JtXzInXSIsZFdpZHRoLGRoZWlnaHQpOw0KCQl9KTsNCg0KDQoJCSQoICIuYWRkU2NyaXB0IiApLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJdmFyIGRJRD0nVGVtcCcrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjExKTsNCgkJCXZhciB1cmw9JCh0aGlzKS5hdHRyKCdocmVmJyk7DQoJCQl2YXIgZFdpZHRoID0gMzE1OwkNCgkJCXZhciBkaGVpZ2h0ID0gMzUwOw0KCQkJLy9jZXJhdGVBZGRTY3JpcHREaWFsb2coZXZ0LCQodGhpcyksZElELHVybCk7DQoJCQljcmVhdGVEaWFsb2coJ2FkZHNjcmlwdCcsZXZ0LCQodGhpcyksZElELHVybCwiZm9ybVtpZF49J20xX21vZHVsZWZvcm0nXSIsZFdpZHRoLGRoZWlnaHQpOw0KCQl9KTsJCQ0KDQoJCSQoICIuZWRpdEdyb3VwIiApLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJdmFyIHVybD0kKHRoaXMpLmF0dHIoJ2hyZWYnKTsNCgkJCXZhciBkSUQ9JCh0aGlzKS5jbG9zZXN0KCd0cicpLmF0dHIoJ2lkJyk7DQoJCQkvL2NyZWF0ZUdyb3VwRGlhbG9nKGV2dCwkKHRoaXMpLGRJRCx1cmwpOw0KCQkJY3JlYXRlRGlhbG9nKCdHcm91cCcsZXZ0LCQodGhpcyksZElELHVybCwiZm9ybVtpZF49J20xX21vZHVsZWZvcm0nXSIsZFdpZHRoLGRoZWlnaHQpOw0KCQl9KTsNCg0KCQkkKCAiLnJlT3I1IGEiICkubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKGV2dCl7DQoNCgkJCQl2YXIgdXJsPSQodGhpcykuYXR0cignaHJlZicpOw0KCQkJCXZhciBkV2lkdGggPSAkKHdpbmRvdykud2lkdGgoKSAqIDAuODsJCQkJCQkJCQkJCQkJCQkJCQkgIA0KCQkJCXZhciBkaGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpICogMC44Ow0KCQkJCXZhciBkYXRhID0kKHRoaXMpLmF0dHIoJ3JlbCcpOw0KCQkJCWFsZXJ0KHVybCk7DQoJCQkJYWxlcnQoZGF0YSk7DQoJCQkJZXZ0LnN0b3BQcm9wYWdhdGlvbiggKTsgICANCgkJCQlldnQucHJldmVudERlZmF1bHQoICk7IA0KCQkJCQ0KCQkJCWNyZWF0ZURpYWxvZygnZWRpdHNjcmlwdCcsbnVsbCxudWxsLGRhdGEsdXJsLCJmb3JtW2lkXj0nbTFfbW9kdWxlZm9ybSddIixkV2lkdGgsZGhlaWdodCxmdW5jdGlvbigpe30pOw0KCQkJfSk7DQoNCg0KCQkkKCAiLmFkZEdyb3VwIiApLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJdmFyIGRJRD0nVGVtcCcrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjExKTsNCgkJCXZhciB1cmw9JCh0aGlzKS5hdHRyKCdocmVmJyk7DQoJCQkvL2NlcmF0ZUFkZEdyb3VwRGlhbG9nKGV2dCwkKHRoaXMpLGRJRCx1cmwpOw0KCQkJdmFyIGRXaWR0aCA9IDMxNTsJDQoJCQl2YXIgZGhlaWdodCA9IDM1MDsNCgkJCWNyZWF0ZURpYWxvZygnQWRkR3JvdXAnLGV2dCwkKHRoaXMpLGRJRCx1cmwsImZvcm1baWRePSdtMV9tb2R1bGVmb3JtJ10iLGRXaWR0aCxkaGVpZ2h0KTsNCgkJfSk7DQoJCQ0KCQkNCglpZigkKCIuc2NyaXB0cHJldmlldyIpLmxlbmd0aD4wKXsNCgkJLyogdGhlIGluc2VydCBzY3JpcHQgKi8NCgkJJCgiLnNjcmlwdHByZXZpZXciKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZXZ0KXsgICAgICAgICAgICAgICAgICAgICANCgkJCQlldnQuc3RvcFByb3BhZ2F0aW9uKCApOyAgIA0KCQkJCWV2dC5wcmV2ZW50RGVmYXVsdCggKTsgDQoJCQkJdmFyIHVybD0kKHRoaXMpLmF0dHIoJ2hyZWYnKTsNCgkJCQlpZigkKHRoaXMpLmF0dHIoJ3JlbCcpPT0nY3NzJyl7DQoJCQkJCSQuZ2V0U2NyaXB0KGRpcisnLycrdXJsLnJlcGxhY2UoJy4uLycsJycpLGZ1bmN0aW9uIChkYXRhKXsNCgkJCQkJCWlmKGRlYnVnKWFsZXJ0KGRhdGEpOw0KCQkJCQkJcGF5bG9hZCA9ICc8dGV4dGFyZWEgbmFtZT0iZGF0YSIgY29scz0iIiByb3dzPSIiIHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlOyI+JytkYXRhKyc8L3RleHRhcmVhPic7DQoJCQkJCQ0KCQkJCQkJJC5jb2xvcmJveCh7d2lkdGg6JzkwJScsDQoJCQkJCQkJCQkgaHRtbDpwYXlsb2FkLA0KCQkJCQkJCQkJIGhlaWdodDonOTAlJywNCgkJCQkJCQkJCSBzY3JvbGxpbmc6ZmFsc2UsDQoJCQkJCQkJCQkgcmVsOidub2ZvbGxvdycsDQoJCQkJCQkJCQkgb3BhY2l0eTowLjI1LA0KCQkJCQkJICBvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7JC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKTt9DQoJCQkJCQl9KTsNCgkJCQkJDQoJCQkJCX0pOw0KCQkJCX1lbHNlIGlmKCQodGhpcykuYXR0cigncmVsJyk9PSdqcycpew0KCQkJCQkkLmNvbG9yYm94KHt3aWR0aDonOTAlJywNCgkJCQkJCQkJIGhyZWY6ZGlyKycvJyt1cmwucmVwbGFjZSgnLi4vJywnJyksDQoJCQkJCQkJCSBpZnJhbWU6dHJ1ZSwNCgkJCQkJCQkJIGhlaWdodDonOTAlJywNCgkJCQkJCQkJIHNjcm9sbGluZzp0cnVlLA0KCQkJCQkJCQkgb3BhY2l0eTowLjI1LA0KCQkJCQkJCQkgcmVsOidub2ZvbGxvdycsDQoJCQkJCQkJCSBvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkgJC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKTsNCgkJCQkJCQkJCSAkKCcjY2JveExvYWRlZENvbnRlbnQgaWZyYW1lJykuY3NzKHsnYmFja2dyb3VuZC1jb2xvcic6JyNGRkYnfSk7DQoJCQkJCQkJCX0NCgkJCQkJfSk7DQoJCQkJfQ0KCQl9KTsNCgl9DQoNCglpZigkKCIudmlldyIpLmxlbmd0aD4wKXsNCgkJJCgiLnZpZXciKS5saXZlKCdjbGljaycsZnVuY3Rpb24oZXZ0KXsgICAgICAgICAgICAgICAgICAgICANCgkJCQlldnQuc3RvcFByb3BhZ2F0aW9uKCApOyAgIA0KCQkJCWV2dC5wcmV2ZW50RGVmYXVsdCggKTsgDQoJCQkJdmFyIHVybD0kKHRoaXMpLmF0dHIoJ3JlbCcpOw0KCQkJCWlmKCQodGhpcykuaGFzQ2xhc3MoInRleHQiKSl7DQoJCQkJCSQuZ2V0U2NyaXB0KGRpcisnLycrdXJsLnJlcGxhY2UoJy4uLycsJycpLGZ1bmN0aW9uIChkYXRhKXsNCgkJCQkJCXBheWxvYWQgPSAnPHRleHRhcmVhIG5hbWU9ImRhdGEiIGNvbHM9IiIgcm93cz0iIiBzdHlsZT0id2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsiPicrZGF0YSsnPC90ZXh0YXJlYT4nOw0KCQkJCQkNCgkJCQkJCSQuY29sb3Jib3goew0KCQkJCQkJCQkgIAlpbml0aWFsV2lkdGg6JzMwJywNCgkJCQkJCQkgICBpbml0aWFsSGVpZ2h0Oic2MCcsDQoJCQkJCQkJICAgd2lkdGg6JzkwJScsDQoJCQkJCQkJCQkgaHRtbDpwYXlsb2FkLA0KCQkJCQkJCQkJIGhlaWdodDonOTAlJywNCgkJCQkJCQkJCSBzY3JvbGxpbmc6ZmFsc2UsDQoJCQkJCQkJCQkgcmVsOidub2ZvbGxvdycsDQoJCQkJCQkJCQkgb3BhY2l0eTowLjAsDQoJCQkJCQkgIG9uQ29tcGxldGU6ZnVuY3Rpb24oKXskLmNvbG9yYm94LnJlc2l6ZSgpOyQoJyNjYm94T3ZlcmxheScpLmFkZENsYXNzKCd1aS13aWRnZXQtb3ZlcmxheScpO30NCgkJCQkJCX0pOw0KCQkJCQl9KTsNCgkJCQl9ZWxzZSBpZigkKHRoaXMpLmhhc0NsYXNzKCJsaXZlc2NyaXB0Iikpew0KCQkJCQkkLmNvbG9yYm94KHsNCgkJCQkJCQkgICBpbml0aWFsV2lkdGg6JzUwJywNCgkJCQkJCQkgICBpbml0aWFsSGVpZ2h0OicyNScsDQoJCQkJCQkJICAgd2lkdGg6JzkwJScsDQoJCQkJCQkJCSBocmVmOmRpcisnLycrdXJsLnJlcGxhY2UoJy4uLycsJycpLA0KCQkJCQkJCQkgaWZyYW1lOnRydWUsDQoJCQkJCQkJCSBoZWlnaHQ6JzkwJScsDQoJCQkJCQkJCSBzY3JvbGxpbmc6dHJ1ZSwNCgkJCQkJCQkJIG9wYWNpdHk6MC4wLA0KCQkJCQkJCQkgcmVsOidub2ZvbGxvdycsDQoJCQkJCQkJCSBvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7DQoJCQkJCQkJCQkgJC5jb2xvcmJveC5yZXNpemUoKTskKCcjY2JveE92ZXJsYXknKS5hZGRDbGFzcygndWktd2lkZ2V0LW92ZXJsYXknKTsNCgkJCQkJCQkJCSAkKCcjY2JveExvYWRlZENvbnRlbnQgaWZyYW1lJykuY3NzKHsnYmFja2dyb3VuZC1jb2xvcic6JyNGRkYnfSk7DQoJCQkJCQkJCX0NCgkJCQkJfSk7DQoJCQkJfWVsc2UgaWYoJCh0aGlzKS5oYXNDbGFzcygiaW1hZ2UiKSl7DQoJCQkJCSQuY29sb3Jib3goe2luaXRpYWxXaWR0aDonNTAnLA0KCQkJCQkJCQkgaHJlZjpkaXIrJy8nK3VybC5yZXBsYWNlKCcuLi8nLCcnKSwNCgkJCQkJCQkJIGluaXRpYWxIZWlnaHQ6JzI1JywNCgkJCQkJCQkJIHBob3RvOnRydWUsDQoJCQkJCQkJCSBvcGFjaXR5OjAuMCwNCgkJCQkJCQkJIHJlbDonbm9mb2xsb3cnLA0KCQkJCQkJCQkgb25Db21wbGV0ZTpmdW5jdGlvbigpew0KCQkJCQkJCQkJCSQuY29sb3Jib3gucmVzaXplKCk7JCgnI2Nib3hPdmVybGF5JykuYWRkQ2xhc3MoJ3VpLXdpZGdldC1vdmVybGF5Jyk7DQoJCQkJCQkJCX0NCgkJCQkJfSk7DQoJCQkJfQ0KCQl9KTsNCgl9DQoJDQoJaWYoJCgnI2NvcHlDbXNtc0NzcyAuY21zX3N1Ym1pdCcpLmxlbmd0aD4wKXsNCgkJJCgnI2NvcHlDbXNtc0NzcyAuY21zX3N1Ym1pdCcpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbihldnQpew0KCQkJCWV2dC5zdG9wUHJvcGFnYXRpb24oKTsgICANCgkJCQlldnQucHJldmVudERlZmF1bHQoKTsgDQoJCQkJJC5jb2xvcmJveCh7d2lkdGg6IjMwMHB4IiwNCgkJCQkJaHJlZjpBZG1pbmRpcisnL21vZHVsZWludGVyZmFjZS5waHA/bWFjdD1TY3JpcHREZXBsb3ksbTFfLGltcG9ydF9TY3JpcHRfcG9wdXAsMCYnK0NNU19TRUNVUkVfUEFSQU1fTkFNRSsnPScrQ01TX1VTRVJfS0VZKycmbTFfYWN0aXZlX3RhYj1zY3JpcHRfdGVtcGxhdGUmc2hvd3RlbXBsYXRlPWZhbHNlJm0xX2FqYXg9bWFrZUNob2ljZScsDQoJCQkJCWlmcmFtZTpmYWxzZSwNCgkJCQkJaW5pdGlhbFdpZHRoOicyNXB4JywNCgkJCQkJaW5pdGlhbEhlaWdodDonMjVweCcsDQoJCQkJCWhlaWdodDonMjVweCcsDQoJCQkJCXNjcm9sbGluZzp0cnVlLA0KCQkJCQlvcGFjaXR5OjAuMjUsDQoJCQkJCW9uQ29tcGxldGU6ZnVuY3Rpb24oKXsNCgkJCQkJCSQoJyNjYm94TG9hZGVkQ29udGVudCBpZnJhbWUnKS5hdHRyKCdpZCcsJ2Nib3hJZnJhbWUnKTsNCgkJCQkJCQkkKCcjY2JveElmcmFtZScpLmxvYWQoZnVuY3Rpb24oKXsgDQoJCQkJCQkJCXg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNib3hJZnJhbWUiKTsNCgkJCQkJCQkJeT0oeC5jb250ZW50V2luZG93IHx8IHguY29udGVudERvY3VtZW50KTsNCgkJCQkJCQkJJCh5LmRvY3VtZW50KS5maW5kKCIucHJvZ3Jlc3MiKS5mYWRlT3V0KCJzbG93IixmdW5jdGlvbigpeyQoeS5kb2N1bWVudCkuZmluZCgiLnByb2dyZXNzIikucmVtb3ZlKCk7fSk7DQoJCQkJCQkJfSk7DQoJCQkJCQkgICQuY29sb3Jib3gucmVzaXplKCk7JCgnI2Nib3hPdmVybGF5JykuYWRkQ2xhc3MoJ3VpLXdpZGdldC1vdmVybGF5Jyk7DQoJCQkJCQl9DQoJCQkJfSk7DQoJCX0pOw0KCX0NCg0KfSk7DQpmdW5jdGlvbiBkb05leHQoc2VsZWN0b3Ipew0KICAgICAgICBpZihUaGVEYXRhPT11bmRlZmluZWQpe3NldFRpbWVvdXQoZG9OZXh0LDUwLHNlbGVjdG9yKTtyZXR1cm4gZmFsc2U7fQ0KICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLmFkZENsYXNzKCdjdXJyZW50Jyk7DQogICAgICAgICAgICAgICAgJCgidGV4dGFyZWEjY1NjcmlwdFBsYW5lIikuaHRtbCgnJytUaGVEYXRhKycnKTsgDQogICAgICAgICAgICAgICAgJCgidGV4dGFyZWEjY1NjcmlwdFBsYW5lIikucmVtb3ZlQ2xhc3MoJ3Byb2Nlc3NpbmcnKTsNCn0gIA0KZnVuY3Rpb24gc2V0Q3VycmVudFN0YXRlKHN0cikgeyANCglpZD1zdHIuc3BsaXQoJ18nKTsNCglpZD10eXBlb2YoaWRbMV0pPT09J3VuZGVmaW5lZCc/aWQ6KHR5cGVvZihpZFsyXSk9PT0ndW5kZWZpbmVkJz9pZFsxXTppZFsxXSsiXyIraWRbMl0pOw0KCWN1cnJlbnRFZGl0b3I9d2luZG93WydlZGl0b3JfJytpZF07IA0KCWFkZF90b190cmFja2VyKCdpbnN0YW5jZScsJ2ZvY3VzZWQnLGlkKTsNCn0gDQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKiAgUFJFVklFVw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQpmdW5jdGlvbiBzZXRQSGVpZ2h0KCl7UEhlaWdodD0kKCcjUHJldmlld1dpbmRvdycpLmhlaWdodCgpO30NCmZ1bmN0aW9uIHNldFBXaWR0aCgpe1BXaWR0aD0kKCcjUHJldmlld1dpbmRvdycpLndpZHRoKCk7fQ0KZnVuY3Rpb24gc2V0UHRvcCgpe1B0b3A9JCgnI1ByZXZpZXdXaW5kb3cnKS5jc3MoJ3RvcCcpO30NCmZ1bmN0aW9uIHNldFBsZWZ0KCl7UGxlZnQ9JCgnI1ByZXZpZXdXaW5kb3cnKS5jc3MoJ2xlZnQnKTt9DQpmdW5jdGlvbiBhZGRfaUNvdmVyKCl7aWYoJCgnI2lmcmFtZUNvdmVyJykubGVuZ3RoPT0wKXskKCcjUHJldmlld1dpbmRvdycpLnByZXBlbmQoJzxkaXYgaWQ9ImlmcmFtZUNvdmVyIj4nKTt9fQ0KZnVuY3Rpb24gcmVtb3ZlX2lDb3ZlcigpeyQoJyNpZnJhbWVDb3ZlcicpLnJlbW92ZSgpO30NCg0KZnVuY3Rpb24gY2FsbElmcmFtZSh1cmwsY2FsbGJhY2spIHsgDQoJaWYoJCgnI1ByZXZpZXdXaW5kb3cnKS5sZW5ndGg9PTApew0KCQkkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgnPGRpdiBpZD0iUHJldmlld1dpbmRvdyI+PGRpdiBpZD0icmVsb2FkUCIgY2xhc3M9InVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LW9ubHkiPjxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCI+PHNwYW4gY2xhc3M9InVpLWljb24gdWktaWNvbi1hcnJvd3JlZnJlc2gtMS1uIj48L3NwYW4+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9InBIYW5kbGUiIGNsYXNzPSJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIj48L2Rpdj48SUZSQU1FIGlkPSJQcmV2aWV3RlJBTUUiPicpOyANCgkJdmFyIHByZXZPYmo9JCgnI1ByZXZpZXdXaW5kb3cnKS5wcmV2KCdkaXYnKTsNCgkJaWYocHJldk9iai5jc3MoJ3Bvc2l0aW9uJykhPSdhYnNvbHV0ZScmJnByZXZPYmouY3NzKCdwb3NpdGlvbicpIT0ncmVsYXRpdmUnKXtwcmV2T2JqLmNzcyh7J3Bvc2l0aW9uJzoncmVsYXRpdmUnfSk7fQ0KCQkkKCcjUHJldmlld1dpbmRvdycpLmNzcyh7b3BhY2l0eTowfSk7IA0KCQkkKCcjUHJldmlld0ZSQU1FJykuYXR0cignc3JjJywgdXJsKTsNCgkJJCgnI1ByZXZpZXdGUkFNRScpLmxvYWQoZnVuY3Rpb24oKXsgDQoJCQlpZih0eXBlb2YoY2FsbGJhY2spIT09J3VuZGVmaW5lZCcpe2NhbGxiYWNrKHRoaXMpOyB9DQoJCX0pOyANCgl9ZWxzZXsNCgkJaWYodHlwZW9mKGNhbGxiYWNrKSE9PSd1bmRlZmluZWQnKXtjYWxsYmFjayh0cnVlKTt9DQoJfQ0KfSANCmZ1bmN0aW9uIHNldExpdmVVcmwodXJsKXsNCglpZih1cmwuaW5kZXhPZih1cGxvYWRzX3VybCk+LTF8fHVybC5pbmRleE9mKEFkbWluZGlyKT4tMSl7DQoJfWVsc2V7DQoJCSQuY29va2llKCJTRF9wVXJsIix1cmwpOw0KCQlwcmV2aWV3VXJsPXVybDsNCgl9DQp9DQoNCmZ1bmN0aW9uIHNldExpdmVVcmxDbGljaygpew0KCXg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlByZXZpZXdGUkFNRSIpOw0KCXk9KHguY29udGVudFdpbmRvdyB8fCB4LmNvbnRlbnREb2N1bWVudCk7DQoJJCh5LmRvY3VtZW50KS5maW5kKCdhJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7DQoJCXZhciB1cmw9JCh0aGlzKS5hdHRyKCdocmVmJyk7DQoJCXNldExpdmVVcmwodXJsKTsNCgl9KTsNCn0NCmZ1bmN0aW9uIGNoZWNrUHJldmlld1VybChwcmV2aWV3VXJsKXsNCglpZighcHJldmlld1VybC5tYXRjaCgvXD8vKS8vaGFzIG5vIHF1ZXJpZXMgaW4gdGhlIHVybA0KCQkmJihwcmV2aWV3VXJsLmxhc3RJbmRleE9mKHBhZ2VfZXh0ZW5zaW9uKSE9KHByZXZpZXdVcmwubGVuZ3RoLXBhZ2VfZXh0ZW5zaW9uLmxlbmd0aCkpIC8vIGlzIHRoZSBwYWdlIGV4dGVuc3Rpb24gbm90IGF0IHRoZSBlbmQ/DQoJCSYmKHByZXZpZXdVcmwubGFzdEluZGV4T2YoJy8nKSE9KHByZXZpZXdVcmwubGVuZ3RoLTEpKSAvLyBzZWVtcyB0aGF0IHRoZSB1cmwgbWF5IGJlIGluY29tcGxldGUgc28gZG9lcyBpdCBoYXZlIGl0J3MgdHJhaWxpbmcgLyA/DQoJCSl7DQoJCXByZXZpZXdVcmwrPScvJzsNCgl9DQoJcmV0dXJuIHByZXZpZXdVcmw7CQ0KfQ0KZnVuY3Rpb24gbGl2ZWVkaXQoY2FsbGJhY2spew0KCXZhciB0ZXN0PSQuY29va2llKCJTRF9wVXJsIik7DQoJcHJldmlld1VybD1jaGVja1ByZXZpZXdVcmwodGVzdD09PW51bGw/IHByZXZpZXdVcmw6JC5jb29raWUoIlNEX3BVcmwiKSk7DQoJY2FsbElmcmFtZShwcmV2aWV3VXJsLGZ1bmN0aW9uKHN0YXRlKXsNCgkJaWYoc3RhdGU9PXRydWUpe3JldHVybiB0cnVlO30JCQkJCQkJICANCgkJJCgnI1ByZXZpZXdXaW5kb3cnKS5hbmltYXRlKHsNCgkJCWhlaWdodDpQSGVpZ2h0LA0KCQkJd2lkdGg6UFdpZHRoLA0KCQkJbGVmdDpQbGVmdCwNCgkJCXRvcDpQdG9wLA0KCQkJb3BhY2l0eTogMTAwDQoJCSAgfSwgNTAwLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsNCgkJCSAgLy8kKHRoaXMpLmFmdGVyKCc8ZGl2PkFuaW1hdGlvbiBjb21wbGV0ZS48L2Rpdj4nKTsNCgkJCSAgc2V0TGl2ZVVybENsaWNrKCk7DQoJCQkgICQoJyNQcmV2aWV3V2luZG93JykuZHJhZ2dhYmxlKHsgaGFuZGxlOiAiI3BIYW5kbGUiLGF1dG9IaWRlOiB0cnVlLHN0YWNrOiAiLnVpLWRpYWxvZyIsZHJhZzogZnVuY3Rpb24oZXZlbnQsIHVpKXthZGRfaUNvdmVyKCk7fSxzdG9wOiBmdW5jdGlvbihldmVudCwgdWkpe3JlbW92ZV9pQ292ZXIoKTt9IH0pOw0KCQkJICAkKCcjUHJldmlld1dpbmRvdycpLnJlc2l6YWJsZSh7IGhhbmRsZTogIiNwSGFuZGxlIixyZXNpemU6IGZ1bmN0aW9uKGV2ZW50LCB1aSl7YWRkX2lDb3ZlcigpO30sc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKXtyZW1vdmVfaUNvdmVyKCk7c2V0UEhlaWdodCgpO3NldFBXaWR0aCgpO3NldFB0b3AoKTtzZXRQbGVmdCgpO30gfSk7DQoJCQkgICQoJyNyZWxvYWRQJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7cmVsb2FkbGl2ZWVkaXQoKTt9KTsNCgkJCSAgDQoJCQkJJCgnI3BIYW5kbGUnKS5kYmxjbGljayhmdW5jdGlvbigpew0KCQkJCQl2YXIgaD0kKCcjUHJldmlld1dpbmRvdycpLmhlaWdodCgpOw0KCQkJCQkkKCcjUHJldmlld1dpbmRvdycpLmFuaW1hdGUoew0KCQkJCQkJaGVpZ2h0Omg+MD8wOlBIZWlnaHQNCgkJCQkJICB9LCA1MDAsICdzd2luZycsIGZ1bmN0aW9uKCkgew0KCQkJCQl9KTsNCgkJCQl9KTsNCgkJICB9KTsJCQkgICAJCQkJICAgDQoJfSk7DQp9DQpmdW5jdGlvbiBleGl0bGl2ZWVkaXQoZm9yY2VkKXsNCglpZih0eXBlb2YoZm9yY2VkKT09PSd1bmRlZmluZWQnKXtmb3JjZWQ9ZmFsc2U7fQ0KCWlmKCQoJy51aS1kaWFsb2cnKS5sZW5ndGg+MHx8Zm9yY2VkPT10cnVlKXtyZXR1cm4gZmFsc2U7fQ0KCSQoJyNQcmV2aWV3V2luZG93JykuYW5pbWF0ZSh7DQoJCQloZWlnaHQ6ICcwJScsDQoJCQlsZWZ0OiAtNTAsDQoJCQl0b3A6IC01MCwNCgkJCW9wYWNpdHk6IDEwMA0KCQkgIH0sIDUwMCwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7DQoJCQkgICQoJyNQcmV2aWV3V2luZG93JykucmVtb3ZlKCk7DQoJCSAgfSk7DQp9DQpmdW5jdGlvbiByZWxvYWRsaXZlZWRpdChhdXRvUmVsb2FkKXsNCgl2YXIgdGVzdD0kLmNvb2tpZSgiU0RfcFVybCIpOw0KCXByZXZpZXdVcmw9Y2hlY2tQcmV2aWV3VXJsKHRlc3Q9PT1udWxsPyBwcmV2aWV3VXJsOiQuY29va2llKCJTRF9wVXJsIikpOw0KCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCgkJCSQoJyNQcmV2aWV3RlJBTUUnKS5hdHRyKCdzcmMnLHByZXZpZXdVcmwrJz8nK01hdGgucmFuZG9tKCkpOw0KCQkJJCgnI1ByZXZpZXdXaW5kb3cnKS5hbmltYXRlKHsNCgkJCQloZWlnaHQ6UEhlaWdodCwNCgkJCQl3aWR0aDpQV2lkdGgsDQoJCQkJbGVmdDpQbGVmdCwNCgkJCQl0b3A6UHRvcA0KCQkJCX0pOw0KCQl9LDUwKTsNCglpZih0eXBlb2YoYXV0b3JlbG9hZCkhPT0ndW5kZWZpbmVkJyl7DQoJCQlzZXRUaW1lb3V0KHJlbG9hZGxpdmVlZGl0KGlkLGF1dG9SZWxvYWQpLDUwMCk7DQoJCQlyZXR1cm47DQoJfQ0KfQ0KZnVuY3Rpb24gaGFzQmluZ2luZyhvYmopew0KCSQuZWFjaChvYmouZGF0YSgnZXZlbnRzJyksIGZ1bmN0aW9uKGksIGV2ZW50KXsgDQoJCSQuZWFjaChldmVudCwgZnVuY3Rpb24oaSwgaGFuZGxlcil7IA0KCQkJY29uc29sZS5sb2coIGhhbmRsZXIudG9TdHJpbmcoKSApOyANCgkJfSk7IA0KCX0pOyANCn0=]]></data>
	</file>
	<file>
	  <filename>/includes/script_function.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gc2NyaXB0T3B0aW9ucyhpZCl7aWYoJCgnLnNjcmlwdE5hbWUgaW5wdXQnKS5sZW5ndGg+MCkkKCcuc2NyaXB0TmFtZSBpbnB1dCcpLmtleXVwKGZ1bmN0aW9uKCl7JCgnI0RfJytpZCkuY2xvc2VzdCgiLnVpLWRpYWxvZyIpLmZpbmQoIi5zY3JpcHROYW1lX0lTIikudGV4dCgkKCcuc2NyaXB0TmFtZSBpbnB1dCcpLnZhbCgpKTskKCJ0cltpZCQ9JyIraWQrIiddIikuZmluZCgnLmVkaXRTY3JpcHQnKS5maW5kKCdzdHJvbmcnKS50ZXh0KCQoJy5zY3JpcHROYW1lIGlucHV0JykudmFsKCkpfSk7aWYoJCgiI20xX3NjcmlwdFR5cGVfaW5wdXQyIikuaXMoJzpjaGVja2VkJykpJCgiI01lZGlhVHlwZSIpLmNzcyh7ZGlzcGxheToiYmxvY2siLHZpc2liaWxpdHk6InZpc2libGUifSk7aWYoISQoIi5jbXNfY2hlY2tib3hbbmFtZT1tMV9Vc2VQYXRoT3B0aW9uX2lucHV0XSIpLmlzKCc6Y2hlY2tlZCcpKSQoIiNwYXRoT3B0aW9uIikuY3NzKHtkaXNwbGF5OiJub25lIix2aXNpYmlsaXR5OiJoaWRkZW4ifSk7JCgiLmNtc19jaGVja2JveFtuYW1lPW0xX1VzZVBhdGhPcHRpb25faW5wdXRdIikuY2xpY2soZnVuY3Rpb24oKXtpZigkKCIuY21zX2NoZWNrYm94W25hbWU9bTFfVXNlUGF0aE9wdGlvbl9pbnB1dF0iKS5pcygnOmNoZWNrZWQnKSl7JCgiI3BhdGhPcHRpb24iKS5jc3Moe2Rpc3BsYXk6ImJsb2NrIix2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pOyQuY29sb3Jib3gucmVzaXplKCl9ZWxzZXskKCIjcGF0aE9wdGlvbiIpLmNzcyh7ZGlzcGxheToibm9uZSIsdmlzaWJpbGl0eToiaGlkZGVuIn0pOyQuY29sb3Jib3gucmVzaXplKCl9fSk7aWYoISQoIi5jbXNfY2hlY2tib3hbbmFtZT1tMV9yb290VVJMT3B0aW9uX2lucHV0XSIpLmlzKCc6Y2hlY2tlZCcpKSQoIiNyb290VVJMT3B0aW9uIikuY3NzKHtkaXNwbGF5OiJub25lIix2aXNpYmlsaXR5OiJoaWRkZW4ifSk7JCgiLmNtc19jaGVja2JveFtuYW1lPW0xX3Jvb3RVUkxPcHRpb25faW5wdXRdIikuY2xpY2soZnVuY3Rpb24oKXtpZigkKCIuY21zX2NoZWNrYm94W25hbWU9bTFfcm9vdFVSTE9wdGlvbl9pbnB1dF0iKS5pcygnOmNoZWNrZWQnKSl7JCgiI3Jvb3RVUkxPcHRpb24iKS5jc3Moe2Rpc3BsYXk6ImJsb2NrIix2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pOyQuY29sb3Jib3gucmVzaXplKCl9ZWxzZXskKCIjcm9vdFVSTE9wdGlvbiIpLmNzcyh7ZGlzcGxheToibm9uZSIsdmlzaWJpbGl0eToiaGlkZGVuIn0pOyQuY29sb3Jib3gucmVzaXplKCl9fSl9]]></data>
	</file>
	<file>
	  <filename>/includes/SD_JS_VARS.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIGM9MDt2YXIgbGluZXM9bnVsbDt2YXIgdGV4dD1udWxsO3ZhciBjbGlwPW51bGw7dmFyIHNhdmVkPWZhbHNlO3ZhciBpbnByb2NjZXNzPWZhbHNlO3ZhciBUaGVEYXRhPScnO3ZhciBhc3luY0lTPXRydWU7dmFyIGVkaXRvcj11bmRlZmluZWQ7dmFyIGN1cnJlbnRXb3JraW5nT247dmFyIGN1cnJlbnRFZGl0b3I7dmFyIHByb2dpcz0wO3ZhciBBQ1RJVkVJRD0wO3ZhciBMT0FESU5HO3ZhciBhamF4SW5Vc2U9ZmFsc2U7dmFyIGRlYnVnPWZhbHNlO3ZhciBkV2lkdGg9JCh3aW5kb3cpLndpZHRoKCkqMC44O3ZhciBkaGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSowLjg=]]></data>
	</file>
	<file>
	  <filename>/includes/UI_controllers.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXt9KQ==]]></data>
	</file>
	<file>
	  <filename>/includes/user_controller.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gcmVwb3J0RWRpdFN0YXR1cyhpZCxTSUQpe2lmKGFqYXhJblVzZT09dHJ1ZSlzZXRDb3VudCgnUkVQT1JUSU5HJytpZCw1MCxmdW5jdGlvbigpe3JlcG9ydEVkaXRTdGF0dXMoaWQsU0lEKX0pO2Vsc2V7dmFyIGRhdGE9YWpheGl0KCdjaGVja191c2VyX2VkaXRpbmcnLCdmYWxzZSx0cnVlLCcrU0lEKycsJytVSUQrJycsJ3Bvc3QnLGZ1bmN0aW9uKGRhdGEpe2lmKGRhdGE9PSd0cnVlJylzZXRDb3VudCgnUkVQT1JUSU5HJytpZCwxMDAwMCxmdW5jdGlvbigpe3JlcG9ydEVkaXRTdGF0dXMoaWQsU0lEKX0pO2Vsc2UgaWYoZGF0YSE9J2ZhbHNlJykkLnBhcnNlSlNPTihkYXRhKX0pO0dldFVzZXJTY2FwZShmdW5jdGlvbigpe2RhdGE9Z2V0X2Zyb21fdHJhY2tlcignVXNlclNjYXBlJyxVSUQpfSl9fQpmdW5jdGlvbiBlZGl0U3RhdHVzKCl7dmFyIHdpZD1qUXVlcnkoJyN0MScpLndpZHRoKCk7alF1ZXJ5KCcjdDEnKS53aWR0aCh3aWQrMSl9CmZ1bmN0aW9uIFNldFVzZXJTY2FwZShjYWxsYmFjayl7ZGF0YT1nZXRfZnJvbV90cmFja2VyKCdVc2VyU2NhcGUnLFVJRCk7YWpheGl0KCdTZXRVc2VyU2NhcGUnLGRhdGEsJ3Bvc3QnLGZ1bmN0aW9uKGRhdGEpe2FkZF90b190cmFja2VyKCdVc2VyU2NhcGUnLFVJRCxkYXRhKTtpZih0eXBlb2YgKGNhbGxiYWNrKSE9PSd1bmRlZmluZWQnKWNhbGxiYWNrKGRhdGEpfSl9CmZ1bmN0aW9uIEdldFVzZXJTY2FwZShjYWxsYmFjayl7YWpheGl0KCdHZXRVc2VyU2NhcGUnLFVJRCwnanNvbicsZnVuY3Rpb24oZGF0YSl7YWRkX3RvX3RyYWNrZXIoJ1VzZXJTY2FwZScsVUlELGRhdGEpO2lmKHR5cGVvZiAoY2FsbGJhY2spIT09J3VuZGVmaW5lZCcpY2FsbGJhY2soZGF0YSl9KX0KZnVuY3Rpb24gQ2xlYW5VcFVzZXJTY2FwZShjYWxsYmFjayl7cmVtb3ZlX2Zyb21fdHJhY2tlcignVXNlclNjYXBlJyxVSUQpO2lmKHR5cGVvZiAoY2FsbGJhY2spIT09J3VuZGVmaW5lZCcpY2FsbGJhY2soKX0KZnVuY3Rpb24gbG9hZFVzZXJTY2FwZSgpeyQoJ2Euc3RlYWwnKS5jbGljayhmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO2UucHJldmVudERlZmF1bHQoKTtHZXRVc2VyU2NhcGUoZnVuY3Rpb24oKXtkYXRhPWdldF9mcm9tX3RyYWNrZXIoJ1VzZXJTY2FwZScsVUlEKTthbGVydChkYXRhLnVzZXIudXNlcm5hbWUpfSl9KX0KZnVuY3Rpb24gbG9hZFVzZXJJbnRlcmFjdGlvbnMoU0lEKXskKCIjbmF2IGEiKS5jbGljayhmdW5jdGlvbihlKXtpZighZS5jdHJsS2V5JiYhZS5zaGlmdEtleSlhamF4aXQoJ3VubG9ja19zY3JpcHQnLFNJRCl9KTtzaG9ydGN1dC5hZGQoIkN0cmwrcyIsZnVuY3Rpb24oKXt2YXIgaWQ9Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2UnLCdmb2N1c2VkJyk7aWYoJCgnI0RfJytpZCkuZmluZCgiaW5wdXRbbmFtZSQ9J2FwcGx5J10iKS5sZW5ndGg+MCl7aWYoJCgnI0RfJytpZCkuZmluZCgnI2Nib3hMb2FkZWRDb250ZW50JykudGV4dCgpIT0nJyl7YWxlcnQoJ3BsZWFzZSBmaW5pc2ggdGhpcyB0YXNrIGJlZm9yZSB0cnlpbmcgdG8gc2F2ZScpO3JldHVybiBmYWxzZX1lbHNle2lmKCFpbnByb2NjZXNzKXtkSUQ9Z2V0X2Zyb21fdHJhY2tlcignaW5zdGFuY2UnLCdmb2N1c2VkJyk7YWpheFNjcmlwdFN1Ym1pdChudWxsLGZ1bmN0aW9uKCl7cmVsb2FkbGl2ZWVkaXQoKX0pfTtyZXR1cm4gZmFsc2V9fX0pfQ==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95JzskbGFuZ1sncG9zdGluc3RhbGwnXT0nVGhlIGZpcnN0IHN0b3AgeW91XCdsbCB3YW50IHRvIG1ha2UgaXMgdGhlIGhlbHAnOyRsYW5nWydwb3N0dW5pbnN0YWxsJ109J1BsZWFzZSBmZWVsIGZyZWUgdG8gbGV0IHVzIGtub3cgaWYgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBTY3JpcHREZXBsb3kgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlXCdlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOyRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ109J1VuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIG5vdCBhZmZlY3QgYW55IGV2ZW50IGRhdGEgYW5kIGFsbCBib29rcyB0byBkYXRlIHdpbGwgc3RpbGwgYmUgdGhlcmUuIERvIHlvdSB3aXNoIHRvIGNvbnRpbnVlPyc7JGxhbmdbJ3VuaW5zdGFsbGVkJ109J01vZHVsZSBVbmluc3RhbGxlZC4nOyRsYW5nWydpbnN0YWxsZWQnXT0nTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7JGxhbmdbJ3VwZ3JhZGVkJ109J01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7JGxhbmdbJ21vZHVsZV9vcHRpb25zJ109J01vZHVsZSBPcHRpb25zJzskbGFuZ1sndGVtcGxhdGVfbWFuZyddPSdUZW1wbGF0ZXMnOyRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXT0nRGVwbG95bWVudCBPcHRpb25zJzskbGFuZ1snVmFsc2V0dGluZ3MnXT0nVmFsaWRhdGlvbic7JGxhbmdbImNvcHlDbXNtc0Nzc0FjdGlvbk5vdGUiXT0nQ29waWVkIFN0eWxlc2hlZXRzJzskbGFuZ1siY29weUNtc21zQ3NzVGl0bGUiXT0nQ2FwdHVyZSBTdHlsZXNoZWV0cyc7JGxhbmdbImNvcHlDbXNtc0NzcyJdPSdDb3B5IENNU01TIERlZmF1bHQgU3R5bGVzaGVldHMnOyRsYW5nWyJjb3BpZWRDTVNNUyJdPSdTdWNlc3NmdWx5IENvcGllZCB0aGUgQ01TTVMgRGVmYXVsdCBTdHlsZXNoZWV0cyc7JGxhbmdbInNlbGVjdENtc21zQ3NzIl09J1NlbGVjdCB0aGUgQ01TTVMgc3R5bGUgdG8gY29weSBpbiB0byBTRCAgfHwgY29waWVkJzskbGFuZ1sic2VsZWN0Q21zbXNDc3NfZGlzY3JpcHRpb24iXT0nPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPllvdSB3aWxsIGJlIG9ubHkgYWRkZWQgdG8gYW55dGhpbmcgeW91IGhhdmUgYWxyZWFkeSBpbXBvcnRlZCByZWdyYWRsZXNzIHRvIGlmIGl0IGhhcyBiZWVuIGJlZm9yZS4nOyRsYW5nWyJlbiJdPSdFbmdsaXNoJzskbGFuZ1siZnIiXT0nRnJhbiZjY2VkaWw7YWlzIChGcmVuY2gpJzskbGFuZ1siaXQiXT0nSXRhbGlhbm8gKEl0YWxpYW4pJzskbGFuZ1sia28iXT0nS29yZWFuJzskbGFuZ1siamEiXT0nSmFwYW5lc2UnOyRsYW5nWyJlcyJdPSdFc3BhJm50aWxkZTtvbCAoU3BhbmlzaCknOyRsYW5nWyJ6aC1jbiJdPSdDaGluZXNlJzskbGFuZ1sibmwiXT0nTmVkZXJsYW5kcyAoRHV0Y2gpJzskbGFuZ1siZGUiXT0nRGV1dHNjaCAoR2VybWFuKSc7JGxhbmdbInBsIl09J1BvbHNraSAoUG9saXNoKSc7JGxhbmdbInJvIl09J1JvbWFuaWFuJzskbGFuZ1siY3MiXT0nJiMyMDA7ZSYjMzUzO3RpbmEnOyRsYW5nWyJiZyJdPSdCdWxnYXJpYSc7JGxhbmdbInN2Il09J1N2ZW5za2EnOyRsYW5nWyJmYSJdPSdQZXJzaWFuIChGYXJzaSknOyRsYW5nWyJydSJdPSdSdXNzaWFuICc7JGxhbmdbInB0LUJSIl09JyBCcmF6aWxsaWFuIFBvcnR1Z3Vlc2UgKHN0YW5kYXJkKSc7JGxhbmdbIkxub25lIl09J05vIFdhcm5pbmdzJzskbGFuZ1siTDAiXT0nTGV2ZWwgMCc7JGxhbmdbIkwxIl09J0xldmVsIDEnOyRsYW5nWyJMMiJdPSdMZXZlbCAyJzskbGFuZ1siY3NzMSJdPSdDU1MgMSc7JGxhbmdbImNzczIiXT0nQ1NTIDInOyRsYW5nWyJjc3MyMSJdPSdDU1MgMi4xJzskbGFuZ1siY3NzMyJdPSdDU1MgMyc7JGxhbmdbInN2ZyJdPSdTVkcnOyRsYW5nWyJzdmdiYXNpYyJdPSdTVkcgYmFzaWMnOyRsYW5nWyJzdmd0aW55Il09J1NWRyB0aW55JzskbGFuZ1sibW9iaWxlIl09J21vYmlsZSc7JGxhbmdbImF0c2MtdHYiXT0nYXRzYy10dic7JGxhbmdbInR2Il09J1RWJzskbGFuZ1sibm9uZSJdPSdub25lJzskbGFuZ1snSW5saW5lJ109J2RldGVjdCBhdXRvbWF0aWNhbGx5JzskbGFuZ1snSFRNTDUnXT0nSFRNTDUgKGV4cGVyaW1lbnRhbCknOyRsYW5nWydYSFRNTCAxLjAgU3RyaWN0J109J1hIVE1MIDEuMCBTdHJpY3QnOyRsYW5nWydYSFRNTCAxLjAgVHJhbnNpdGlvbmFsJ109J1hIVE1MIDEuMCBUcmFuc2l0aW9uYWwnOyRsYW5nWydYSFRNTCAxLjAgRnJhbWVzZXQnXT0nWEhUTUwgMS4wIEZyYW1lc2V0JzskbGFuZ1snSFRNTCA0LjAxIFN0cmljdCddPSdIVE1MIDQuMDEgU3RyaWN0JzskbGFuZ1snSFRNTCA0LjAxIFRyYW5zaXRpb25hbCddPSdIVE1MIDQuMDEgVHJhbnNpdGlvbmFsJzskbGFuZ1snSFRNTCA0LjAxIEZyYW1lc2V0J109J0hUTUwgNC4wMSBGcmFtZXNldCc7JGxhbmdbJ0hUTUwgMy4yJ109J0hUTUwgMy4yJzskbGFuZ1snSFRNTCAyLjAnXT0nSFRNTCAyLjAnOyRsYW5nWydJU08vSUVDIDE1NDQ1OjIwMDAgKCZxdW90O0lTTyBIVE1MJnF1b3Q7KSddPSdJU08vSUVDIDE1NDQ1OjIwMDAgKCJJU08gSFRNTCIpJzskbGFuZ1snWEhUTUwgMS4xJ109J1hIVE1MIDEuMSc7JGxhbmdbJ1hIVE1MICsgUkRGYSddPSdYSFRNTCArIFJERmEnOyRsYW5nWydYSFRNTCBCYXNpYyAxLjAnXT0nWEhUTUwgQmFzaWMgMS4wJzskbGFuZ1snWEhUTUwgQmFzaWMgMS4xJ109J1hIVE1MIEJhc2ljIDEuMSc7JGxhbmdbJ1hIVE1MIE1vYmlsZSBQcm9maWxlIDEuMiddPSdYSFRNTCBNb2JpbGUgUHJvZmlsZSAxLjInOyRsYW5nWydYSFRNTC1QcmludCAxLjAnXT0nWEhUTUwtUHJpbnQgMS4wJzskbGFuZ1snWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wICc7JGxhbmdbJ1hIVE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xJ109J1hIVE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xICc7JGxhbmdbJ01hdGhNTCAyLjAnXT0nTWF0aE1MIDIuMCc7JGxhbmdbJ1NWRyAxLjAnXT0nU1ZHIDEuMCc7JGxhbmdbJ1NWRyAxLjEnXT0nU1ZHIDEuMSc7JGxhbmdbJ1NWRyAxLjEgVGlueSddPSdTVkcgMS4xIFRpbnknOyRsYW5nWydTVkcgMS4xIEJhc2ljJ109J1NWRyAxLjEgQmFzaWMnOyRsYW5nWydTTUlMIDEuMCddPSdTTUlMIDEuMCc7JGxhbmdbJ1NNSUwgMi4wJ109J1NNSUwgMi4wJzskbGFuZ1snZGVmYXVsdFBhZ2VfbGFibGUnXT0nQ2hlY2sgYWdhaW5zdCB0aGlzIHBhZ2UnOyRsYW5nWydlbmNvZGluZ19sYWJsZSddPSdFbmNvZGluZyc7JGxhbmdbJ2RldGVjdCddPSdkZXRlY3QgYXV0b21hdGljYWxseSc7JGxhbmdbJ3V0Zi04J109J3V0Zi04IChVbmljb2RlLCB3b3JsZHdpZGUpJzskbGFuZ1sndXRmLTE2J109J3V0Zi0xNiAoVW5pY29kZSwgd29ybGR3aWRlKSc7JGxhbmdbJ2lzby04ODU5LTEnXT0naXNvLTg4NTktMSAoV2VzdGVybiBFdXJvcGUpJzskbGFuZ1snaXNvLTg4NTktMiddPSdpc28tODg1OS0yIChDZW50cmFsIEV1cm9wZSknOyRsYW5nWydpc28tODg1OS0zJ109J2lzby04ODU5LTMgKFNvdXRoZXJuIEV1cm9wZSknOyRsYW5nWydpc28tODg1OS00J109J2lzby04ODU5LTQgKE5vcnRoIEV1cm9wZWFuKSc7JGxhbmdbJ2lzby04ODU5LTUnXT0naXNvLTg4NTktNSAoQ3lyaWxsaWMpJzskbGFuZ1snaXNvLTg4NTktNi1pJ109J2lzby04ODU5LTYtaSAoQXJhYmljKSc7JGxhbmdbJ2lzby04ODU5LTcnXT0naXNvLTg4NTktNyAoR3JlZWspJzskbGFuZ1snaXNvLTg4NTktOCddPSdpc28tODg1OS04IChIZWJyZXcsIHZpc3VhbCknOyRsYW5nWydpc28tODg1OS04LWknXT0naXNvLTg4NTktOC1pIChIZWJyZXcsIGxvZ2ljYWwpJzskbGFuZ1snaXNvLTg4NTktOSddPSdpc28tODg1OS05IChUdXJraXNoKSc7JGxhbmdbJ2lzby04ODU5LTEwJ109J2lzby04ODU5LTEwIChMYXRpbiA2KSc7JGxhbmdbJ2lzby04ODU5LTExJ109J2lzby04ODU5LTExIChMYXRpbi9UaGFpKSc7JGxhbmdbJ2lzby04ODU5LTEzJ109J2lzby04ODU5LTEzIChMYXRpbiA3LCBCYWx0aWMgUmltKSc7JGxhbmdbJ2lzby04ODU5LTE0J109J2lzby04ODU5LTE0IChMYXRpbiA4LCBDZWx0aWMpJzskbGFuZ1snaXNvLTg4NTktMTUnXT0naXNvLTg4NTktMTUgKExhdGluIDkpJzskbGFuZ1snaXNvLTg4NTktMTYnXT0naXNvLTg4NTktMTYgKExhdGluIDEwKSc7JGxhbmdbJ3VzLWFzY2lpJ109J3VzLWFzY2lpIChiYXNpYyBFbmdsaXNoKSc7JGxhbmdbJ2V1Yy1qcCddPSdldWMtanAgKEphcGFuZXNlLCBVbml4KSc7JGxhbmdbJ3NoaWZ0X2ppcyddPSdzaGlmdF9qaXMgKEphcGFuZXNlLCBXaW4vTWFjKSc7JGxhbmdbJ2lzby0yMDIyLWpwJ109J2lzby0yMDIyLWpwIChKYXBhbmVzZSwgZW1haWwpJzskbGFuZ1snZXVjLWtyJ109J2V1Yy1rciAoS29yZWFuKSc7JGxhbmdbJ2diMjMxMiddPSdnYjIzMTIgKENoaW5lc2UsIHNpbXBsaWZpZWQpJzskbGFuZ1snZ2IxODAzMCddPSdnYjE4MDMwIChDaGluZXNlLCBzaW1wbGlmaWVkKSc7JGxhbmdbJ2JpZzUnXT0nYmlnNSAoQ2hpbmVzZSwgdHJhZGl0aW9uYWwpJzskbGFuZ1snYmlnNS1IS1NDUyddPSdCaWc1LUhLU0NTIChDaGluZXNlLCBIb25nIEtvbmcpJzskbGFuZ1sndGlzLTYyMCddPSd0aXMtNjIwIChUaGFpKSc7JGxhbmdbJ2tvaTgtciddPSdrb2k4LXIgKFJ1c3NpYW4pJzskbGFuZ1sna29pOC11J109J2tvaTgtdSAoVWtyYWluaWFuKSc7JGxhbmdbJ2lzby1pci0xMTEnXT0naXNvLWlyLTExMSAoQ3lyaWxsaWMgS09JLTgpICAnOyRsYW5nWydtYWNpbnRvc2gnXT0nbWFjaW50b3NoIChNYWNSb21hbiknOyRsYW5nWyd3aW5kb3dzLTEyNTAnXT0nd2luZG93cy0xMjUwIChDZW50cmFsIEV1cm9wZSknOyRsYW5nWyd3aW5kb3dzLTEyNTEnXT0nd2luZG93cy0xMjUxIChDeXJpbGxpYyknOyRsYW5nWyd3aW5kb3dzLTEyNTInXT0nd2luZG93cy0xMjUyIChXZXN0ZXJuIEV1cm9wZSknOyRsYW5nWyd3aW5kb3dzLTEyNTMnXT0nd2luZG93cy0xMjUzIChHcmVlayknOyRsYW5nWyd3aW5kb3dzLTEyNTQnXT0nd2luZG93cy0xMjU0IChUdXJraXNoKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NSddPSd3aW5kb3dzLTEyNTUgKEhlYnJldyknOyRsYW5nWyd3aW5kb3dzLTEyNTYnXT0nd2luZG93cy0xMjU2IChBcmFiaWMpJzskbGFuZ1snd2luZG93cy0xMjU3J109J3dpbmRvd3MtMTI1NyAoQmFsdGljIFJpbSknOyRsYW5nWydhdXRvJ109J0F1dG8gR2VuZXJhdGVkIENvbnRlbnQnOyRsYW5nWyd1c2VyQ2hvaWNlJ109J0Nob29zZSBhIFBhZ2UnOyRsYW5nWyd1c2VyR2VuZXJhdGVkJ109J1NldCB5b3VyIENvbnRlbnQnOyRsYW5nWyJzYXZlVkFMc2V0dGluZ3MiXT0nU2F2ZSBWYWxpZGF0aW9uIFNldHRpbmdzJzskbGFuZ1sic2V0dGluZ3MiXT0iU2V0dGluZ3MiOyRsYW5nWyJzZXR0aW5nc3NhdmVkIl09J1NldHRpbmdzIHNhdmVkJzskbGFuZ1sibGVhdmVjb2RlIl09IkRvIG5vdCB0b3VjaCBjb2RlIjskbGFuZ1siZm9ybWF0Y29kZSJdPSJGb3JtYXQgdGhlIGNvZGUgbmljZWx5IjskbGFuZ1sic2NyYW1ibGVjb2RlIl09IlNjcmFtYmxlIHRoZSBjb2RlIjskbGFuZ1siY2xlYW5jb2RlIl09IkNsZWFuIHVwIHRoZSBjb2RlIHJlbW92aW5nIHN0dWZmIHRoYXQgZG9lc24ndCBtYXR0ZXIiOyRsYW5nWyJzZXR0aW5nc3NhdmVkIl09IlRoZSBzZXR0aW5ncyB3YXMgc2F2ZWQiOyRsYW5nWyJzYXZlc2V0dGluZ3MiXT0iU2F2ZSBzZXR0aW5ncyI7JGxhbmdbIm1hbmdsZXR5cGV0ZXh0Il09IkhvdyB0byBmb3JtYXQgdGhlIGNvZGUiOyRsYW5nWyJicmllZiJdPSJCcmllZiI7JGxhbmdbInZlcmJvc2UiXT0iVmVyYm9zZSI7JGxhbmdbImNvZGVmaXhlcyJdPSJDb2RlIGZpeGVzIjskbGFuZ1siZm9yY2Vsb3dlcnRhZ3N0ZXh0Il09IkZvcmNlIHRhZ3MgdG8gbG93ZXJjYXNlIjskbGFuZ1siZm9yY2Vsb3dlcnRhZ3NoZWxwIl09IkZvciBiZXR0ZXIgWEhUTUwtY29tcGF0aWJpbGl0eSI7JGxhbmdbImhpZGVtZXNzYWdlc3RleHQiXT0iSGlkZSBtZXNzYWdlcyBpbiBib3R0b20gb2YgKHgpaHRtbC1jb2RlIjskbGFuZ1siaW5kZW50d2lkdGh0ZXh0Il09IldpZHRoIG9mIGluZGVudGF0aW9uIjskbGFuZ1sic3BhY2VzIl09IlNwYWNlcyI7JGxhbmdbImRlYnVnbGV2ZWx0ZXh0Il09IkFtb3VudCBvZiBkZWJ1Z2dpbmcgb3V0cHV0OiAiOyRsYW5nWyJkZWJ1Z3RleHQiXT0iQ29kZSBkZWJ1ZyBtb2RlIjskbGFuZ1snU2NyaXB0X2xpc3QnXT0nU2NyaXB0cyc7JGxhbmdbJ0Fzc19oZWFkZXInXT0nVW5pZmllZCBTY3JpcHRzJzskbGFuZ1snU2FtcGxlVGFnJ109J1NhbXBsZSBUYWcnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J109J0FkZCBzY3JpcHQnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0QXNzJ109J0FkZCBzY3JpcHQgZ3JvdXBpbmcnOyRsYW5nWydwcm9tcHRfYWRkdGVtcGxhdGUnXT0nQWRkIHRlbXBsYXRlJzskbGFuZ1snYWRkTGliX2xhYmVsJ109J0FkZCBhIGxpYnJhcnknOyRsYW5nWydpbnNlcnRDb2RlX2xhYmVsJ109J0ZpbGUnOyRsYW5nWydpbnNlcnRDb2RlQXRfbGFiZWwnXT0nSW5zZXJ0IENvZGUgYXQnOyRsYW5nWyd0aXRsZV9Hcm91cHMnXT0nR3JvdXBlZCBTY3JpcHQgTGlzdCc7JGxhbmdbJ3RpdGxlX1NjcmlwdHMnXT0nU2luZ2xlIFNjcmlwdHMgTGlzdCc7JGxhbmdbJ3NtYXJ0eUhvdyddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdVwnZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9nZW5lcmFsX3NtYXJ0eSddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdVwnZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9nZW5lcmFsX2dyb3VwaW5nJ109J0pvaW5pbmcgeW91ciBDU1MgZmlsZXMgc3BlZWRzIHVwIHlvdXIgdXNlcnMgZXhwZXJpZW5jZSBhbmQgaGVscCB5b3UgZ2V0IGNsb3NlciB0byBhbiAiQSIgaW4gPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20veXNsb3cvIiB0YXJnZXQ9Il9ibGFuayI+eVNsb3c8L2E+JzskbGFuZ1sndGlwX2VkaXRvcl90YWInXT0nRGlkIHlvdSBrbm93IHRoYXQgeW91IGNhbiB1c2UgdGhlIFRhYiBrZXkgdG8gaW5kZW50IHlvdSBjb2RlPyAgVHJ5IGl0IG91dC4nOyRsYW5nWyd0aXBfZWRpdG9yX3NlYXJjaE5yZXBsYWNlJ109J0RpZCB5b3Uga25vdyB0aGF0IHlvdSBjYW4gdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBxdWlja2x5IHNlYXJjaCBhbmQgcmVwbGFjZT8gIFVzZSBDdHJsK2YgaW4gdGhlIGVkaXRvciB0byBicmluZyB1cCB0aGUgYm94Lic7JGxhbmdbJ3RpcF9lZGl0b3JfcmVzZXRIaWdobGlnaHQnXT0nSWYgeW91IGFyZSBzZWVpbmcgZG91YmxlcyBpbiB0aGUgZWRpdG9yLCBpZTogdGhlIGhpZ2hsaWdodCBpcyBkZXN5bmNyb25pemVkIGZyb20gdGV4dCBqdXN0IHVzZSB0aGUgcmVzZXQgaGlnaGxpZ2h0IGJ1dHRvbiA8aW1nIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgb25tb3VzZWRvd249ImVkaXRBcmVhLnJlc3RvcmVBbmRTd2l0Y2hDbGFzcyh0aGlzLFwnZWRpdEFyZWFCdXR0b25Eb3duXCcpOyIgb25tb3VzZW91dD0iZWRpdEFyZWEucmVzdG9yZUNsYXNzKHRoaXMpOyIgb25tb3VzZW92ZXI9ImVkaXRBcmVhLnN3aXRjaENsYXNzKHRoaXMsXCdlZGl0QXJlYUJ1dHRvbk92ZXJcJyk7IiBjbGFzcz0iZWRpdEFyZWFCdXR0b25Ob3JtYWwiIHRpdGxlPSJyZXNldCBoaWdobGlnaHQgKGVkKSIgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9lZGl0X2FyZWEvaW1hZ2VzL3Jlc2V0X2hpZ2hsaWdodC5naWYiIGlkPSJyZXNldF9oaWdobGlnaHQiPic7JGxhbmdbJ3RpcF90ZW1wbGF0ZV9zbWFydHknXT0nU21hcnR5IHN5bnRheCBpcyB0aGUgc2FtZSBhcyBldmVyeXdoZXJlIGVsc2UganVzdCBhIHN0cmFpZ2h0IHskc21hcnR5Lm5vd30uICBUaGUge3sgfX0gaXMgZm9yIHRoZSBDU1MgYW5kIEpTIGFzIHt9IGFyZSBpbiB0aGVpciBzeW50YXguICBTbWFydHkgMyBhY2NvdW50cyBmb3IgdGhpcyBhbmQgc28gQ01TTVMgMi4wIHdpbGwgbm90IG5lZWQgdGhlIHt7IH19JzskbGFuZ1sndGlwX2dyb3VwX2RyYWdOZHJvcCddPSd0byBnZXQgc3RhcnRlZCBqdXN0IGRyYWcgZnJvbSB0aGUgcG9vbCB0byB0aGUgZ3JvdXBcJ3MgbGlzdCc7JGxhbmdbJ2FsbCddPSdTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuJzskbGFuZ1snYXVyYWwnXT0nIEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLic7JGxhbmdbJ2JyYWlsbGUnXT0nSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLic7JGxhbmdbJ2VtYm9zc2VkJ109J0ludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLic7JGxhbmdbJ2hhbmRoZWxkJ109J0ludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzJzskbGFuZ1sncHJpbnQnXT0nSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuJzskbGFuZ1sncHJvamVjdGlvbiddPScgSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLic7JGxhbmdbJ3NjcmVlbiddPSdJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuJzskbGFuZ1sndHR5J109J0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLic7JGxhbmdbJ3R2J109J0ludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4nOyRsYW5nWydtZWRpYSBxdWVyaWVzJ109J01lZGlhIHF1ZXJpZXMgZXh0ZW5kIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG1lZGlhIHR5cGVzIGJ5IGFsbG93aW5nIG1vcmUgcHJlY2lzZSBsYWJlbGluZyBvZiBzdHlsZSBzaGVldHMnOyRsYW5nWydNZWRpYVR5cGUnXT0nYWxsIDogU3VpdGFibGUgZm9yIGFsbCBkZXZpY2VzLjxici8+DQphdXJhbCA6IEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLjxici8+DQpicmFpbGxlIDogSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLjxici8+DQplbWJvc3NlZCA6IEludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLjxici8+DQpoYW5kaGVsZCA6IEludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzPGJyLz4NCnByaW50IDogSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuPGJyLz4NCnByb2plY3Rpb24gOiBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuPGJyLz4NCnNjcmVlbiA6IEludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy48YnIvPg0KdHR5IDogSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuPGJyLz4NCnR2IDogSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7JGxhbmdbJ2N1c3RvbV9tZWRpYSddPSJDdXN0b20gTWVkaWEiOyRsYW5nWydjdXN0b21fbWVkaWFfbm90ZSddPSJVc2UgdGhpcyBmb3IgTWVkaWEgUXVlcmllcy4iOyRsYW5nWydzZXRpbmFjdGl2ZSddPSdTZXQgdGVtcGxhdGUgaW5hY3RpdmUnOyRsYW5nWydzZXRhY3RpdmUnXT0nU2V0IHRlbXBsYXRlIGFjdGl2ZSc7JGxhbmdbJ25vdGRlZmF1bHQnXT0nTm90IHRoZSBkZWZhdWx0IHRlbXBsYXRlLic7JGxhbmdbJ25vdHZhbGlkJ109J1N0eWxlc2hlZXQgYXNzb2NpYXRpb25zIGhhdmUgbm90IGJlZW4gc2V0IHByb3Blcmx5IGZvciB0aGlzIHRlbXBsYXRlJzskbGFuZ1sndGVtcGxhdGVfdGFiJ109J1N0eWxlc3dpdGNoZXIgRm9ybSB0ZW1wbGF0ZSc7JGxhbmdbJ3BhZ2VfdGVtcGxhdGVzX3RhYiddPSdQYWdlIFRlbXBsYXRlcyc7JGxhbmdbJ3N1Ym1pdCddPSdTdWJtaXQnOyRsYW5nWydhcHBseSddPSdBcHBseSc7JGxhbmdbJ2NhbmNlbCddPSdDYW5jZWwnOyRsYW5nWydnbyddPSdHbyc7JGxhbmdbJ3ByZXZpZXcnXT0ncHJldmlldyc7JGxhbmdbJ2lubGluZWhlbHAnXT0nSGVscCc7JGxhbmdbJ3NjaXB0b3B0aW9ucyddPSdPcHRpb25zJzskbGFuZ1sncGVyc2lzdGVudCddPSdQZXJzaXN0ZW50JzskbGFuZ1sncHJlZmVycmVkJ109J1ByZWZlcnJlZCc7JGxhbmdbJ2FsdGVybmF0ZSddPSdBbHRlcm5hdGUnOyRsYW5nWyduYW1lJ109J05hbWUnOyRsYW5nWyd0aXRsZSddPSdUaXRsZSc7JGxhbmdbJ2lkJ109J0lkJzskbGFuZ1snYWN0aXZlJ109J0FjdGl2ZSc7JGxhbmdbJ2RlZmF1bHQnXT0nRGVmYXVsdCc7JGxhbmdbJ3ZhbGlkJ109J1ZhbGlkJzskbGFuZ1sndXNhZ2VfY291bnQnXT0nVXNhZ2UnOyRsYW5nWyd5ZXMnXT0nWWVzJzskbGFuZ1snbm8nXT0nTm8nOyRsYW5nWydlZGl0Y3NzJ109J0VkaXQgc3R5bGVzaGVldCBhc3NvY2lhdGlvbnMnOyRsYW5nWydlZGl0dGVtcGxhdGUnXT0nRWRpdCBUZW1wbGF0ZSBjb250ZW50JzskbGFuZ1snZGVsZXRldGVtcGxhdGUnXT0nRGVsZXRlIFRlbXBsYXRlJzskbGFuZ1snY29weXRlbXBsYXRlJ109J0NvcHkgVGVtcGxhdGUnOyRsYW5nWydwcm9tcHRfc3R5bGVzaGVldCddPSdTZWxlY3QgYSBwYWdlIHN0eWxlJzskbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ109J1RlbXBsYXRlJzskbGFuZ1sncHJvbXB0X2dyb3VwbmFtZSddPSdHcm91cCBOYW1lJzskbGFuZ1sncHJvbXB0X2FkZGdyb3VwJ109J0FkZCBBIEdyb3VwJzskbGFuZ1sncHJvbXB0X2dyb3VwbmFtZSddPSdHcm91cCBOYW1lJzskbGFuZ1sncHJvbXB0X2dyb3VwdHlwZSddPSdHcm91cCBUeXBlJzskbGFuZ1sncHJvbXB0X2FkZCddPSdBZGQnOyRsYW5nWydwcm9tcHRfc2VsZWN0b25lJ109J1NlbGVjdCBPbmUnOyRsYW5nWydwcm9tcHRfYWRkX2FsdGVybmF0ZSddPSdBZGQgYW4gQWx0ZXJuYXRlJzskbGFuZ1snZXJyb3JfcGxlYXNlX3NlbGVjdF9zdHlsZXNoZWV0J109J1BsZWFzZSBTZWxlY3QgYSBTdHlsZXNoZWV0JzskbGFuZ1sndXNlckxvZ3MnXT0nVmlldyBVc2VyIEhpc3RvcnkgTG9ncyc7JGxhbmdbJ1NjcmlwdFNldF9sYWJlbCddPSdTY3JpcHQgSUQnOyRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ109J1NjcmlwdCBUeXBlJzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdTY3JpcHQgTmFtZSc7JGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddPSdUZW1wbGF0ZSBOYW1lJzskbGFuZ1snU2luZ2xlQ29kZV9sYWJlbCddPSdEZWZhdWx0IFRhZyc7JGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXT0nVG90YWwnOyRsYW5nWydub3Rlc19sYWJlbCddPSdOb3Rlcyc7JGxhbmdbImRvY1R5cGVfbGFibGUiXT0nRG9jdHlwZSc7JGxhbmdbIlZhbEhUTUxWZXJib3NlX2xhYmxlIl09J0NoZWNrIFZlcmJvc2VseSc7JGxhbmdbJ1Nob3dWYWxfbGFibGUnXT0nS2VlcCBNZXNzYWdlcyBPcGVuJzskbGFuZ1snVHVybk9OVmFsX2xhYmxlJ109J1R1cm4gPHN0cm9uZz5PTjwvc3Ryb25nPiBWYWxpZGF0aW9uJzskbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ109J0RvIEhvdExpbmsgQ2hlY2snOyRsYW5nWydUcnVuT25ob3RMaW5rQ2hlY2snXT0nWW91IG5lZWQgdG8gdHVybiBvbiB0aGUgSG90TGluayBDaGVjayc7JGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXT0nIEZpbHRlciBvdXQgcHJvcGVydGllcyB0byBoZWxwIHZhbGlkYXRlJzskbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddPScgQ1NTIFByb2ZpbGUnOyRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ109JyBVc2VyIE1lZGl1bSc7JGxhbmdbJ1ZBTExhbmdfbGFibGUnXT0nIExhbmd1YWdlJzskbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddPScgdzNjIENTUyBXYXJuaW5nIExldmVsJzskbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ109J01lZGlhVHlwZSc7JGxhbmdbJ01pbmlmeV9sYWJlbCddPSdNaW5pZnkgb24gT3V0cHV0JzskbGFuZ1sndHVybk9mZlByZWxvYWRfbGFiZWwnXT0nVHVybiBvZmYgdXJsIHByZWxvYWQnOyRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXT0nQ3JlYXRpb24gRGF0ZSc7JGxhbmdbJ01vZGlmZWREYXRlX2xhYmVsJ109J01vZGlmaWVkIERhdGUnOyRsYW5nWydwYXRoT3B0aW9uX2xhYmVsJ109J1VzZSBhIHBhdGg8ZW0+KHVzZSAiL3VwbG9hZHMvLi4uIik8L2VtPic7JGxhbmdbJ3Jvb3RVUkxPcHRpb25fbGFiZWwnXT0nVXNlIGEgc3BlY2lmaWMgcm9vdCBVUkwnOyRsYW5nWydHcm9vdFVSTCddPSdHbG9iYWwgU2NyaXB0IFJvb3QgVVJMJzskbGFuZ1snZW1wdHljYWNoZUVycm9yX2RvQXVkaXQnXT0nZmFpbGVkIHRvIGVtcHR5IHRoZSBjYWNoZSBhdCc7JGxhbmdbJ2VtcHRpZWRDYWNoX2RvQXVkaXQnXT0nZW1wdGllZCB0aGUgc2NyaXB0IGNhY2hlJzskbGFuZ1snY2xlYXJlZFJldmlzaW9uX2RvQXVkaXQnXT0nY2xlYXJlZCB0aGUgcmV2aXNpb24gaGlzdG9yeSBmb3InOyRsYW5nWydDaGVja2VkT3V0X2RvQXVkaXQnXT0nQ2hlY2tlZCBvdXQgc2NyaXB0ICc7JGxhbmdbJ3JlbGVhc2VkX2RvQXVkaXQnXT0ncmVsZWFzZWQgc2NyaXB0ICc7JGxhbmdbJ3dhdGNoRm9sZGVyX2xhYmVsJ109J1dhdGNoIGEgZm9sZGVyIGZvciBmaWxlcy4nOyRsYW5nWyd3YXRjaEZvbGRlciddPSc8aDE+V2F0Y2ggYSBGb2xkZXI8L2gxPg0KPGgzPlRoaXMgd2lsbCBsZXQgeW91IHdhdGNoIGEgZm9sZGVyIHNvIHlvdSBjYW4gdXNlIHRoZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBmdHBcJ2QgdXAgdG8gdGhlIHNlcnZlciB0byB1c2UgZ2FpbiBhY2Nlc3MgdG8gdGhlIHNjcmlwdHMuPC9oMz48aDI+Tk9URTo8L2gyPjxoMz5JZiB5b3Ugc2VlIGEgYnVuY2ggb2YgZm9sZGVycyBsaWtlIHRoZSBhZG1pbiwgdGhlbiB5b3UgbWF5IHdhbnQgdG8gY2hlY2sgYWxsIHlvdSBmb2xkZXIgcGVybWlzc2lvbnMgdG8gc2VjdXJlIHlvdXIgc2l0ZS48L2gzPic7JGxhbmdbJ3dhdGNoZWRGb2xkZXJfbGFiZWwnXT0nUGF0aHMnOyRsYW5nWyd3YXRjaEZvbGRlclRpdGxlJ109J1dhdGNoIEZvbGRlcic7JGxhbmdbJ3dhdGNoZWRjb3VudF9sYWJlbCddPSdZb3UgYXJlIGN1cnJlbnRseSB3YXRjaGluZyAlcyBmb2xkZXJzJzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nVXNlIHRoaXMgc2NyaXB0IDxlbT4oTm90ZTogSWYgYSBwYXRoIGlzIHNldCwgaXQgd2lsbCBvdmVyIHJpZGUgdGhpcyk8L2VtPic7JGxhbmdbJ2RlYnVnSVRfbGFiZWwnXT0nZGVidWdJVCc7JGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ109JzxlbT4oTXVzdCBoYXZlIEZpcmVwaHAgbW9kKTwvZW0+JzskbGFuZ1snZGVidWdUJ109J0RlYnVnaW5nIE9wdGlvbnMnOyRsYW5nWydFZGl0SGlzdG9yeSddPSdVc2VyIEhpc3RvcnkgRWRpdGluZyc7JGxhbmdbJ2VkaXRvckhlaWdodF9vcCddPSc8aDE+RWRpdG9yIEhlaWdodDwvaDE+DQo8aDM+eW91IG1heSBjaG9vc2UgdG8gc2V0IGEgc3RhdGljIGhlaWdodCBmb3IgdGhlIGVkaXRvci4gIElmIG5vdCBpdFwnbGwgZHluYW1pY2FsbHkgZ2FpbiBoZWlnaHQgYXMgeW91IHdyaXRlIHlvdXIgc2NyaXB0LjwvaDM+JzskbGFuZ1snZWRpdG9ySGVpZ2h0X2xhYmVsJ109J1NldCBFZGl0b3IgSGVpZ2h0JzskbGFuZ1snSFRUUFNfUE9SVF9sYWJlbCddPSdDaGFuZ2UgU1NMIHBvcnQnOyRsYW5nWydIVFRQU19QT1JUJ109JzxoMT5IVFRQUyBQT1JUPC9oMT48aDM+U29tZXRpbWVzIGl0XCdzIG5lZWRlZCB0byBjaGFuZ2UgdGhlIHBvcnQgd2hpY2ggdGhlIHNlcnZlciBpcyB1c2luZyBmb3IgU1NMLiAgVGhpcyBpcyB3aGF0IHlvdSBjYW4gdXNlIHRvIG1hdGNoIGl0LjwvaDM+JzskbGFuZ1snbm9uZUluVHlwZSddPSc8aDE+WW91IG11c3QgZmlyc3QgYWRkIDxici8+YSBzY3JpcHQgaW4gdGhpcyB0eXBlPC9oMT4nOyRsYW5nWydncm91cHlUaXRsZSddPSdMaXN0IG9mIFNjcmlwdHMgaW4gZ3JvdXAnOyRsYW5nWyd1bm1lcmdlVGl0bGUnXT0nVW5tZXJnZSB0aGUgZ3JvdXAgaW4gdG8gc2luZ2xlIGZpbGVzJzskbGFuZ1sncmV2aXNpb25UaXRsZSddPSdSZXZpc2lvbiBIaXN0b3J5JzskbGFuZ1sncmV2aXNpb25fbGFiZWwnXT0nPHN0cm9uZz5UdXJuIG9uIHRoZSByZXZpc2lvbiBoaXN0b3J5PC9zdHJvbmc+JzskbGFuZ1sncmV2aXNpb25fb3AnXT0nPGgxPlJldmlzaW9uPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzskbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXT0nU2V0IFJldmlzaW9uIExJTUlUJzskbGFuZ1snY2xlYXJSZXYnXT0nQ2xlYXIgSGlzdG9yeSc7JGxhbmdbJ3VzZXJEZWZhdWx0UGFnZSddPSc8aDE+VXNlciBwaWNrZWQgcGFnZTwvaDE+DQo8aDM+U2luY2UgYSB1c2VyIHBhZ2UgaXMgdGhlIG9wdGlvbiB5b3UgcGlja2VkLCB5b3VcJ2xsIHdhbnQgdG8gY2hvb3NlIGEgcGFnZSBmcm9tIHRoZSBkcm9wIGRvd24gZm9yIHRoZSBjb250ZW50IHRvIHJlbmRlciBvdXQuICBBZ2FpbiB0aGUgY29udGVudCBzaG91bGQgdmFsaWRhdGUuPC9oMz4nOyRsYW5nWydkZWZhdWx0UGFnZSddPSc8aDE+Q2hvb3NlIEhvdzwvaDE+DQo8aDM+V2hhdCB5b3UgYXJlIHBpY2tpbmcgaXMgdGhlIHdheSB0byB2YWxpZGF0ZSB5b3VyIHRlbXBsYXRlcy4gIFRoZSBnb2FsIGlzIHRvIHBpY2sgc29tZXRoaW5nIHRoYXQgZG9lc25cJ3QgaGF2ZSBlcnJvcnMgaW4gdGhlIGNvbnRlbnQgeW91IGFyZSB1c2luZy48L2gzPic7JGxhbmdbJ3VzZXJEZWZhdWx0UGFnZV9sYWJsZSddPSdHaXZlIHRoZSBwYWdlIGFsaWFzJzskbGFuZ1snb3duQ29udGVudCddPSc8aDE+RmlsbCBpdCBpbjwvaDE+DQo8aDM+VGhlIGdvYWwgaGVyZSBpcyB0byBnaXZlIHNvbWV0aGluZyB0byBwcm9jZXNzLiAgQnkgZmlsbGluZyBpdCBpbiB5b3UgY2FuIGNoZWNrIHRvIHNlZSBpZiB5b3UgaGF2ZSB0aGUgY29udGVudCB0YWcgYW5kIGJsb2NrcyBmaWxsZWQgaW4gY29ycmVjdGx5LiAgSUU6IHlvdSBjb3VsZCBwdXQgdGhlIGRlZmF1bHQgb3MgdGhlIGF1dG8gZ2VuZXJhdGVkIG9uZSB3aGVyZSBpdFwncyAmbHQ7ZGl2Jmd0OyZsdDtzcGFuJmd0OyZsdDtwJmd0OyBhbmQgb3RoZXIgZWxlbWVudHMgbGlrZSB0aGF0LjwvaDM+JzskbGFuZ1snb3duQ29udGVudF9sYWJsZSddPSdDcmVhdGUgdGhlIGNvbnRlbnQnOyRsYW5nWydsb2NrZmlsZXNUaXRsZSddPSdQcm90ZWN0IEZpbGVzJzskbGFuZ1snbG9ja2ZpbGVzX2xhYmVsJ109JzxzdHJvbmc+VHVybiBvbiBzZXQgZmlsZXMgdG8gNjQ0PC9zdHJvbmc+JzskbGFuZ1snbG9ja2ZpbGVzX29wJ109JzxoMT5Qcm90ZWN0IEZpbGVzPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb24gc2V0IHRoZSBjcmVhdGVkIGZpbGUgdG8gYmUgY2htb2QgdG8gNjQ0LiAgVGhpcyB3aWxsIGhlbHAgdG8gcHJvdGVjdCB5b3UgZnJvbSBKUyBpbnRydXNpb24gYXR0YWNrcy48L2gzPic7JGxhbmdbJ3VzZUVkaXRvclRpdGxlJ109J0VkaXRvciBzZXR0aW5ncyc7JGxhbmdbJ3VzZUVkaXRvcl9sYWJlbCddPSc8c3Ryb25nPlR1cm4gb24gdGhlIGVkaXRvcjwvc3Ryb25nPic7JGxhbmdbJ3VzZUVkaXRvcl9vcCddPSc8aDE+VHVybiBvbiBFZGl0b3I8L2gxPg0KPGgzPlR1cm5pbmcgdGhpcyBvbiBzd2lsbCBoZWxwIHlvdSBzZWUgdGhlIGNvZGUgeW91ciB3b3JraW5nIHdpdGguICBJdCBoaW50cyB0byBjb3JyZWN0IHN5bnRheCB2aWEgaGlnaGxpZ2h0aW5nLjwvaDM+JzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZVRpdGxlJ109J1ByZWxvYWQgQ3NzIEltYWdlcyc7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VfbGFiZWwnXT0nPHN0cm9uZz5UdXJuIG9uIFByZWxvYWRlZCBDc3MgSW1hZ2VzPC9zdHJvbmc+JzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZSddPSc8aDE+UHJlbG9hZCBDc3MgSW1hZ2VzPC9oMT4NCjxoMz5JZiB5b3UgaGF2ZSB5b3VyIHN5c3RlbSBhbGwgc2V0IHVwIHJpZ2h0LCB0aGlzIHdpbGwgaGVscCB5b3UgZ2V0IGEgZmFzdCBwYXJhbGxlbCBkb3duIGxvYWQgb2YgYWxsIGVsZW1lbnRzLjwvaDM+JzskbGFuZ1snZ2xvYmFsdXJsJ109JzxoMT5TZXQgdGhlIHJvb3QgVVJMPC9oMT4NCjxoMz5Vc2VkIGZvciB3aGVuIHlvdSBuZWVkIFNTTCBzdXBwb3J0IG9yIHdhbnQgdG8gcHVzaCB0aGUgc2NyaXB0cyB0byBhIHN1YmRvbWFpbiB0byBsb3NlIHRoZSBuZWVkbGVzIGNvb2tpZXMuPC9oMz48ZW0+KHVzZSBzY2hlbWEgImh0dHBzOi8vc3ViLmRvbWFpbi50bGQvIik8L2VtPic7JGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ109JzxzdHJvbmc+UHJvY2VzcyBTbWFydHk8L3N0cm9uZz48YnIvPiBkYXRhIGluIGJ1dHRvbiBmaWVsZHMnOyRsYW5nWydzbWFydHlPbiddPSc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7JGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJ109JzxzdHJvbmc+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9zdHJvbmc+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXT0nPGgxPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvaDE+DQo8aDM+VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBhIGZpbGUgY3JlYXRpb24gdGltZSBhdCB0aGUgZW5kIG9mIGEgZmlsZS4gIFR1cm5pbmcgdGhpcyBvbiB3aWxsIGFkZCB0aGlzIHRvIGFsbCBsb2NhbCB1cmxzLiAoQ1NTIG9ubHkgYXRtKSAtTm90aGluZyBpcyBkb25lIHRvIGhvdGxpbmtzPC9oMz4nOyRsYW5nWyd0ZW1wbGF0ZTMnXT0nSGlnaGVzdCAobm8gcmVhZGFiaWxpdHksIHNtYWxsZXN0IHNpemUpJzskbGFuZ1sndGVtcGxhdGUyJ109J0hpZ2ggKG1vZGVyYXRlIHJlYWRhYmlsaXR5LCBzbWFsbGVyIHNpemUpJzskbGFuZ1sndGVtcGxhdGUxJ109J1N0YW5kYXJkIChiYWxhbmNlIGJldHdlZW4gcmVhZGFiaWxpdHkgYW5kIHNpemUpJzskbGFuZ1sndGVtcGxhdGUwJ109J0xvdyAoaGlnaGVyIHJlYWRhYmlsaXR5KSc7JGxhbmdbJ3RlbXBsYXRlQyddPSdDdXN0b20gKGVudGVyIGJlbG93KSc7JGxhbmdbJ21lcmdlX3NlbGVjdG9yczAnXT0nRG8gbm90IGNoYW5nZSBhbnl0aGluZyc7JGxhbmdbJ21lcmdlX3NlbGVjdG9yczEnXT0nT25seSBzZXBlcmF0ZSBzZWxlY3RvcnMgKHNwbGl0IGF0ICwpJzskbGFuZ1snbWVyZ2Vfc2VsZWN0b3JzMiddPSdNZXJnZSBzZWxlY3RvcnMgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIChmYXN0KSc7JGxhbmdbJ29wdGltaXNlX3Nob3J0aGFuZHMwJ109J0RvblwndCBvcHRpbWlzZSc7JGxhbmdbJ29wdGltaXNlX3Nob3J0aGFuZHMxJ109J1NhZmUgb3B0aW1pc2F0aW9ucyc7JGxhbmdbJ29wdGltaXNlX3Nob3J0aGFuZHMyJ109J0FsbCBvcHRpbWlzYXRpb25zJzskbGFuZ1snaW5zZXJ0Y29kZSddPSdJbnNlcnQgQ29kZSc7JGxhbmdbJ29wdGltaXNlY29kZSddPSdPcHRpbWlzZSBDb2RlJzskbGFuZ1snUmVtb3ZlQmFja3NsYXNoZXMnXT0nUmVtb3ZlIHVubmVjZXNzYXJ5IGJhY2tzbGFzaGVzJzskbGFuZ1snVXBwZXJjYXNlJ109J1VwcGVyY2FzZSc7JGxhbmdbJ0xvd2VyY2FzZSddPSdMb3dlcmNhc2UnOyRsYW5nWydOb25lJ109J05vbmUnOyRsYW5nWydDb21wcmVzc0ZvbnQnXT0nQ29tcHJlc3MgZm9udC13ZWlnaHQnOyRsYW5nWydsb3dlcmNhc2VfWEhUTUxfbm90ZSddPSdsb3dlcmNhc2UgZWxlbWVudG5hbWVzIG5lZWRlZCBmb3IgWEhUTUwnOyRsYW5nWydsb3dlcmNhc2VfdGl0bGUnXT0nTG93ZXJjYXNlIHNlbGVjdG9ycyc7JGxhbmdbJ0NvbXByZXNzQ29sb3JzJ109J0NvbXByZXNzIGNvbG9ycyc7JGxhbmdbJ09wdGltaXNlU2hvcnRoYW5kcyddPSdPcHRpbWlzZSBzaG9ydGhhbmRzJzskbGFuZ1snUmVncm91cFNlbGVjdG9ycyddPSdSZWdyb3VwIHNlbGVjdG9ycyc7JGxhbmdbJ1NvcnRQcm9wZXJ0aWVzJ109J1NvcnQgUHJvcGVydGllcyc7JGxhbmdbJ1NvcnRTZWxlY3RvcnNOb3RlJ109J0F0dGVudGlvbjogVGhpcyBtYXkgY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgeW91ciBDU1MgQ29kZSEnOyRsYW5nWydTb3J0U2VsZWN0b3JzJ109J1NvcnQgU2VsZWN0b3JzIChjYXV0aW9uKSc7JGxhbmdbJ1ByZXNlcnZlQ1NTTm90ZSddPSdTYXZlIGNvbW1lbnRzLCBoYWNrcywgZXRjLiBNb3N0IG9wdGltaXNhdGlvbnMgY2FuICpub3QqIGJlIGFwcGxpZWQgaWYgdGhpcyBpcyBlbmFibGVkLic7JGxhbmdbJ1ByZXNlcnZlQ1NTJ109J1ByZXNlcnZlIENTUyc7JGxhbmdbJ0N1c3RvbVRlbXBsYXRlJ109J0N1c3RvbSB0ZW1wbGF0ZSc7JGxhbmdbJ01vcmVJbmZvJ109J01vcmUgaW5mbyc7JGxhbmdbJ0NvbXByZXNzaW9uTGF5b3V0J109J0NvbXByZXNzaW9uJm5ic3A7KGNvZGUmbmJzcDtsYXlvdXQpJzskbGFuZ1snb3Bfbm90ZSddPSc8c3Ryb25nPk5vdGU8L3N0cm9uZz4geW91IGhhdmUgdG8gc2F2ZSB0byBjb21taXQgdGhpcyBjaGFuZ2UuIDxzdHJvbmc+QWxzbzwvc3Ryb25nPiBUaGlzIGhhcyBubyBiZWFyaW5nIG9uIHRoZSBmaW5hbCBjb21wcmVzc2lvbi4gIFRoaXMgaXMgZm9yIHlvdXIgd29ya2FiaWxpdHkgb2YgdGhlIHNjcmlwdCBmb3IgeW91IGFuZCB5b3VyIHRlYW0uJzskbGFuZ1snZWRpdCddPSdFZGl0JzskbGFuZ1snZGVsZXRlJ109J0RlbGV0ZSc7JGxhbmdbJ0Nsb3NlJ109J0Nsb3NlJzskbGFuZ1snT3BlbiddPSdPcGVuJzskbGFuZ1snZGlyRW1wdHknXT0iVGhlIGZvbGRlciB3YXMgZW1wdHkiOyRsYW5nWydjbGVhblRlbXAnXT0nQ2xlYW4gdGhlIHRlbXA/JzskbGFuZ1sndXJUZW1wUGF0aCddPSdZb3VyIGNhY2hlIHBhdGggaXMnOyRsYW5nWydMYXN0TW9kJ109J0xhc3QgTW9kaWZpZWQnOyRsYW5nWydjYWNoZUZlcnJvciddPSdTY3JpcHREZXBsb3kgY291bGQgbm90IG1ha2UgdGhlIGNhY2hlIGZvbGRlciwgY2hlY2sgeW91ciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgVXBsb2FkcyBhcmVhLic7JGxhbmdbJ05hbWUnXT0nTmFtZSc7JGxhbmdbJ0NhbmNlbGVkJ109J1lvdSBDYW5jZWxlZCBvdXQgb2YgdGhlIG9wZXJhdGlvbi4gIEFueSBXb3JrIHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGhhcyBiZWVuIGxvc3QuJzskbGFuZ1snQnRuQURERUQnXT0nWW91IEp1c3QgQWRkZWQgYSBuZXcgU2NyaXB0JzskbGFuZ1snQnRuRURJVEVEJ109J1lvdSBKdXN0IEVkaXRlZCBhbiBleGlzdGluZyBTY3JpcHQnOyRsYW5nWydCdG5ERUxFVEVEJ109J1lvdSBKdXN0IERlbGV0ZWQgYW4gZXhpc3RpbmcgU2NyaXB0JzskbGFuZ1sndHlwZV9sYWJlbCddPSdUeXBlJzskbGFuZ1sncmV2aXNpb24nXT0nUmV2aXNpb24nOyRsYW5nWydpc0VkaXQnXT0naXMgZWRpdGluZyc7JGxhbmdbJ3N0ZWFsJ109J1N0ZWFsIHRoZSBkb2N1bWVudCc7JGxhbmdbJ2dldF90YWcnXT0nR2V0IHRoZSB0YWcnOyRsYW5nWyd0aWVzdG8nXT0nV2hlcmUgaXMgdGhpcyB1c2VkJzskbGFuZ1snZW10cHlHcm91cCddPSJZb3UnbGwgbmVlZCB0byBhZGQgYSBzY3JpcHQgdG8gdGhlIGdyb3VwIGJlZm9yZSBjYWxsaW5nIGl0IjskbGFuZ1snYWxsU2NyaXB0c1VzZWQnXT0iQWxsIHRoZSBzY3JpcHRzIGhhdmUgYmVlbiB1c2VkIjskbGFuZ1snTm9fU2NyaXB0cyddPSJUaGVyZSBjdXJyZW50bHkgbm8gc2NyaXB0cyI7JGxhbmdbJ05vX0dyb3VwcyddPSJUaGVyZSBjdXJyZW50bHkgbm8gZ3JvdXBzIjskbGFuZ1snZmluaXNoZWQnXT0nU2F2ZWQgdGhlIGdyb3VwIHNldHRpbmdzJzskbGFuZ1sncGFzdGluZyddPSdQYXN0aW5nIHlvdXIgY29kZSBub3cnOyRsYW5nWydyZWZvcm1hdGVkJ109J1JlZm9ybWF0ZWQgdGhlIGNvZGUnOyRsYW5nWydmb3JtYXRlTG9nJ109J0Zvcm1hdGluZyBMb2cnOyRsYW5nWydQcm9jY2Vzc2luZyddPSdQcm9jZXNzaW5nJzskbGFuZ1snU2F2ZWQnXT0nU2F2ZWQnOyRsYW5nWydEb25lJ109J0RvbmUnOyRsYW5nWydWYWxpZGF0aW5nJ109J1ZhbGlkYXRpbmcnOyRsYW5nWydHcm91cHRTZXRfbGFiZWwnXT0nR3JvdXAgTmFtZSc7JGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXT0nVHlwZSBvZiBzY3JpcHRzJzskbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ109J1NjcmlwdCBQb29sJzskbGFuZ1snTElORSddPSdMSU5FJzskbGFuZ1snVFlQRSddPSdUWVBFJzskbGFuZ1snU1VCVFlQRSddPSdTVUJUWVBFJzskbGFuZ1snU1RSSU5HJ109J1NUUklORyc7JGxhbmdbJ01FU1NBR0UnXT0nTUVTU0FHRSc7JGxhbmdbJ0xFVkVMJ109J0xFVkVMJzskbGFuZ1snTm90ZXMnXT0nTm90ZXMnOyRsYW5nWydXYXJuaW5ncyddPSdXYXJuaW5ncyc7JGxhbmdbJ0Vycm9ycyddPSdFcnJvcnMnOyRsYW5nWydoaWRkZW4nXT0naGlkZGVuJzskbGFuZ1snU2NyaXB0J109J1NjcmlwdCc7JGxhbmdbJ0VVUkxTJ109J0V4dHJhY3RlZCBVcmxzJzskbGFuZ1snUkNTUyddPSdSZW5kZXJlZCBDU1MnOyRsYW5nWydTQ1NTJ109J0NTUyBTdHJ1Y3R1cmUnOyRsYW5nWydGQ09OVCddPSdGaWxlIGNvbnRlbnQnOyRsYW5nWydpVVJMJ109J2ltYWdlIFVSTCc7JGxhbmdbJ1R5cGUnXT0nVHlwZSc7JGxhbmdbJ1NpemUnXT0nU2l6ZSc7JGxhbmdbJ1N0YXR1cyddPSdTdGF0dXMnOyRsYW5nWydob3RsaW5rJ109JzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gYXBwZWFycyAgdG8gYmUgYSBob3RsaW5rLic7JGxhbmdbJ0Jyb2tlbmxpbmsnXT0nQnJva2VuIExpbmsnOyRsYW5nWydOT2Nzc0knXT0nTm8gY3NzIGltYWdlcyc7JGxhbmdbJ1llc1ZBbGFzdGVyJ109JzxzdHJvbmc+KiogeW91IGFyZSBmaWx0ZXJpbmcgZXJyb3JzIGFuZCBtYXkgaGF2ZSBmaWx0ZXJlZCBhIHJlYWwgZXJyb3IgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBpZD0id2hpY2hGaWx0ZXIiPih3aGljaD8pPC9hPjwvc3Ryb25nPic7JGxhbmdbJ3JlbG9hZF9hbGVydCddPSdZb3UgYXJlIHJlbG9hZGluZyB0aGUgc2NyaXB0IGZyb20gdGhlIGxhc3Qgc2F2ZSBwb2ludC4gIFlvdSBoYXZlIHNhdmVkIHRoZSBzY3JpcHQgYWxyZWFkeSBhbmQgaWYgeW91IG5lZWQgdG8gZ28gYmFjayB0byB0aGUgdmVyc2lvbiB3aGVuIHlvdSBmaXJzdCBjYW1lIGluIHRvIGVkaXQgcGxlYXNlIGNoZWNrIHlvdXIgcmV2aXNpb24gaGlzdG9yeS4nOyRsYW5nWydzaW5nbGVTY3JpcHQnXT0nSXMgaW4gc2luZ2xlIHNjcmlwdHMnOyRsYW5nWydDbGVhckltZyddPSdEZWxldGUgQ3VycmVudCBJbWFnZSc7JGxhbmdbJ0ZpbmlzaCddPSdGaW5pc2gnOyRsYW5nWydyZXZlcnQnXT0nUmVsb2FkJzskbGFuZ1snYXBwbHknXT0nQXBwbHknOyRsYW5nWydjYW5jZWwnXT0nQ2FuY2VsJzskbGFuZ1snZm9ybV9jYW5jZWwnXT0nQ2FuY2VsJzskbGFuZ1sncmVsb2FkX2FsZXJ0J109J3JlbG9hZGluZyBhbGVydCc7JGxhbmdbJ1NhdmUnXT0nU2F2ZSc7JGxhbmdbJ2RvbmUnXT0nRG9uZSc7JGxhbmdbJ2FkZCddPSdBZGQnOyRsYW5nWydzdWJtaXQnXT0nU3VibWl0JzskbGFuZ1snY29weSddPSdDb3B5JzskbGFuZ1snUkVPUkRFUiddPSdSZW9yZGVyJzskbGFuZ1snZm9ybV9zdWJtaXQnXT0nU2F2ZSBQcmVmZXJlbmNlcyc7JGxhbmdbJ21vZF9wcmVmc190aXRsZSddPSdNb2R1bGUgUHJlZmVyZW5jZXMnOyRsYW5nWydwcmVmc3VwZGF0ZWQnXT0nTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzskbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXT0nb3B0aW9ucyB1cGRhdGVkJzskbGFuZ1snYXJleW91c3VyZSddPSdJbXBvcnRhbnQ6XG5cbklmIHRoaXMgaXMgZGVsZXRlZCBhbGwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb3N0IVxuXG5JZiB5b3UgaGF2ZSB0aGlzIHNjcmlwdCBpbiBhIGdyb3VwIHlvdSB3aWxsIGJyZWFrIHRoZSB0aWUgYW5kIHdpbGwgbmVlZCB0byBlZGl0IHRoZSBncm91cC5cbkl0IGlzIGJlc3QgdG8gc3RhcnQgdGhlIGRlbGV0aW9uIHByb2Nlc3MgZnJvbSB0aGUgQXNzaWdubWVudCBhcmVhLlxuXG5ZT1UgQUxTTyBMT1NFIFlPVVIgUkVWSVNJT04gSElTVE9SWSBGT1IgVEhJUyBTQ1JJUFQuLiBBUkUgWU9VIFJFQUxZIFNVUkU/Pz8nOyRsYW5nWydhcmV5b3VzdXJlX0NvcHknXT0nWW91IGFyZSBub3cgZ29pbmcgdG8gbWFrZSBhIGNvcHknOyRsYW5nWydhcmV5b3VzdXJlX3N0ZWFsJ109J1lvdSBhcmUgYWJvdXQgdG8gc3RlYWwgYSBzY3JpcHQgZm9ybSBzb21lb25lIHRoYXQgYXBwZWFycyB0byBiZSBlZGl0aW5nIHRoaXMuJzskbGFuZ1snaW1wb3J0RXhwb3J0J109J0V4cG9ydHMnOyRsYW5nWydzdGFydEV4cG9ydCddPSdTdGFydCBFeHBvcnQnOyRsYW5nWydzdGFydEltcG9ydCddPSdTdGFydCBJbXBvcnQnOyRsYW5nWydzdGFydFB1c2gnXT0nUHVzaCBzaXRlJzskbGFuZ1sndGl0bGVfb3ZlcnZpZXcnXT0nT3ZlcnZpZXcnOyRsYW5nWyd0aXRsZV9leHBvcnQnXT0nRXhwb3J0JzskbGFuZ1sndGl0bGVfaW1wb3J0J109J0luc3RhbGwnOyRsYW5nWydleHBvcnRfZXhwbGFpbiddPSc8cD5NYWtlIHNvbWUgY2hlY2tzIGFuZCBwcmVwYXJhdGlvbnMgYmVmb3JlIHlvdSBzdGFydCB0byBleHBvcnQgeW91ciBzZXR0aW5ncy48L3A+IDx1bD48bGk+MS4gRmlyc3Qgb2YgYWxsIGludmVudCBhIDxzdHJvbmc+dW5pcXVlIG5hbWU8L3N0cm9uZz4gZm9yIHlvdXIgcGFja2FnZS4gRG8gbm90IGNob29zZSA8c3Ryb25nPk15IFBhY2thZ2U8L3N0cm9uZz4uIFRoZSBiZXR0ZXIgZXhhbXBsZSBmb3IgdGhlIHBhY2thZ2UgbmFtZSBjYW4gYmUgPHN0cm9uZz5pQ01TIFRydWUgQ29sb3I8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB0aGF0IGlzIHVuaXF1ZSB0byB5b3UgYW5kIGNhbm5vdCBiZSBvY2Nhc2lvbmFsbHkgdXNlZCBieSBvdGhlciBkZXNpZ25lcnMuPC9saT48bGk+Mi4gQ2hlY2sgdGhhdCBhbGwgZmlsZXMgaW5jbHVkZWQgaW4gcGFja2FnZSBhcmUgcGxhY2VkIGluIHRoZSBzdWItZm9sZGVyIG9mIHRoZSBmb2xkZXIgPHN0cm9uZz4vdXBsb2Fkczwvc3Ryb25nPi4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gZXhwb3J0IGZpbGVzIHRoYXQgYXJlIHN0b3JlZCBpbiBvdGhlciBmb2xkZXJzLiBJdCBpcyBhbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIG9yZ2FuaXplIHlvdXIgZmlsZXMgdGhpcyB3YXkuIERvIG5vdCBzcHJlYWQgeW91ciBjdXN0b20gZmlsZXMgdGhyb3VnaG91dCBpbnN0YWxsYXRpb24gbWFraW5nIGl0IGFsc21vc3QgaW1wb3NzaWJsZSB0byBiYWNrdXAgY3VzdG9tIGNoYW5nZXMuPC9saT48bGk+My4gQ2hlY2sgdGhlIG5hbWUgb2YgYWxsIGVsZW1lbnRzIGludGVuZGVkIGZvciB0aGUgcGFja2FnZTogdGVtcGxhdGVzLCBzdHlsZXNoZWV0cywgcGFnZXMsIGdsb2JhbCBjb250ZW50IGJsb2NrcywgdXNlciBkZWZpbmVkIHRhZ3MsIG1vZHVsZSB0ZW1wbGF0ZXMuIE1ha2Ugc3VyZSB0aGF0IDxzdHJvbmc+YWxsIHRoZW0gaGF2ZSB1bmlxdWUgbmFtZXM8L3N0cm9uZz4gaGVscGluZyB0byBpZGVudGlmeSB0aGUgcGFja2FnZSB0aGV5IGJlbG9uZyB0by4gRS4gZy4gYmFkIG5hbWUgZm9yIGEgc3R5bGVzaGVldCB3b3VsZCBiZSA8c3Ryb25nPkxheW91dDwvc3Ryb25nPiwgYmV0dGVyIDxzdHJvbmc+aUNNUyBMYXlvdXQ8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB1bmlxdWUgdG8geW91ciBhbmQvb3IgdG8gdGhlIHBhY2thZ2UgeW91IGNyZWF0ZS48L2xpPjxsaT40LiBXaGVuIHlvdSBhcmUgcmVhZHkgc3RhcnQgdGhlIGV4cG9ydCBieSBjbGlja2luZyBvbiB0aGUgYnV0dG9uIGJlbG93LjwvbGk+PC91bD4nOyRsYW5nWydpbXBvcnRfZXhwbGFpbiddPSdTZWxlY3QgYSBYTUwgRXhwb3J0IGZpbGUoKikgdG8gdXBsb2FkLic7JGxhbmdbJ2V4YW1wbGVzJ109JygqKSBZb3UgbWF5IGZpbmQgdGVtcGxhdGVzICVzIGhlcmUgJXMhJzskbGFuZ1snc3RhcnRfZXhwb3J0J109J0NyZWF0ZSBuZXcgcGFja2FnZSc7JGxhbmdbJ2NvbnRpbnVlX2V4cG9ydCddPSdDb250aW51ZSc7JGxhbmdbJ2NvbnRpbnVlX2ltcG9ydCddPSdDb250aW51ZSc7JGxhbmdbJ2ltcG9ydCddPSdJbXBvcnQnOyRsYW5nWydmb290ZXJfbm90aWNlJ109JzxoMj5BdHRlbnRpb24hIFBsZWFzZSB1c2UgdGhpcyBiZXRhIHBhY2thZ2Ugd2l0aCBjYXV0aW9uIHVudGlsIHRoZSBzdGFibGUgcmVsZWFzZSBpcyB0aGVyZS4gVGhpcyBwYWNrYWdlIHdpbGwgb3ZlcndyaXRlIGZpbGVzIGFuZCBjYW4gZGFtYWdlIHRhcmdldCBkYXRhYmFzZSE8L2gyPic7JGxhbmdbJ3RpdGxlX2ltcG9ydF9zdGVwMSddPSdFeHBvcnQgZmlsZSBwcmUtaW5zdGFsbCByZXZpZXcnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwMSddPSdUaGUgdXBsb2FkZWQgRXhwb3J0IGZpbGUgY29udGFpbnMgZm9sbG93aW5nOic7JGxhbmdbJ3RpdGxlX2ltcG9ydF9zdGVwMiddPSdTeXN0ZW0gQ2hlY2sgYW5kIFByZXAnOyRsYW5nWydpbXBvcnRfc3RlcDJfY21zbXMnXT0nQmVsb3cgeW91IGNhbiBzZWUgdGhlIHZlcnNpb25zIG9mIENNU01TIGFuZCB0aGUgbW9kdWxlcyB0aGF0IHRoZSBFeHBvcnQgcmVxdWlyZXMuJzskbGFuZ1snaGVscF9pbXBvcnRfc3RlcDInXT0nIElmIG9uZSBvciBtb3JlIG1vZHVsZXMgYXJlIG5vdCBpbnN0YWxsZWQgYW5kIHlvdSBjaG9zZSBub3QgdG8gaW5zdGFsbCB0aGVtLCB0aGVuIHRoZWlyIG1vZHVsZSB0ZW1wbGF0ZXMgYW5kIHNldHRpbmdzIHdpbGwgbm90IGJlIGluc3RhbGxlZC4gSWYgdmVyc2lvbnMgb2YgdGhlIG1vZHVsZSBkaWZmZXIgdGhlcmUgaXMgbm8gd2FycmFudHkgdGhhdCBpbXBvcnQgc3VjY2VlZHMuIDxzdHJvbmc+Q2F1dGlvbiE8L3N0cm9uZz4gSWYgdGhlcmUgYXJlIHdhcm5pbmdzIG9uIHRoaXMgcGFnZSB5b3UgYXJlIDxzdHJvbmc+c3Ryb25nbHk8L3N0cm9uZz4gcmVjb21tZW5kZWQgdG8gYmFja3VwIHlvdXIgZmlsZSBzeXN0ZW0gQU5EIGRhdGFiYXNlIEJFRk9SRSB5b3Ugc3RhcnQgcGFja2FnZSBpbXBvcnQuJzskbGFuZ1sndGl0bGVfaW1wb3J0X3N0ZXAzJ109J0NoZWNrIHNpdGUgY29uZmxpY3RzJzskbGFuZ1snaGVscF9pbXBvcnRfc3RlcDMnXT0nQmVsb3cgeW91IGNhbiBzZWUgYWxsIGNvbXBvbmVudHMgaW5jbHVkZWQgaW4gdGhlIEV4cG9ydC4gSWYgeW91IHNlZSBhIHdhcm5pbmcgc2lnbiBiZXNpZGUgdGhlIGNvbXBvbmVudCwgaXQgbWVhbnMgdGhhdCB5b3UgYWxyZWFkeSBoYXZlIGEgY29tcG9uZW50IHdpdGggdGhpcyBuYW1lIGluIHlvdXIgaW5zdGFsbGF0aW9uLiBJZiB5b3UgcHJvY2VlZCB5b3VyIGNvbXBvbmVudCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIHBhY2thZ2UgdmVyc2lvbi4gQ2F1dGlvbiEgWW91IHdpbGwgbm90IGJlIGFibGUgdG8gcmVzdG9yZSB5b3VyIGNvbXBvbmVudHMuIFBsZWFzZSBjcmVhdGUgYSBmaWxlIEFORCBkYXRhYmFzZSBiYWNrdXAgaWYgeW91IGFyZSBub3Qgc3VyZS4nOyRsYW5nWyd0aXRsZV9pbXBvcnRfc3RlcDQnXT0nSW1wb3J0IGNvbXBsZXRlZCEnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwNCddPScnOyRsYW5nWydpbXBvcnRSZW1vdmFsJ109J1NlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gcmVtb3ZlIGZyb20gdGhlIGltcG9ydCBwcm9jZXNzLiAgJXMgTk9URTolcyBSZW1vdmluZyBhbnl0aGluZyBtYXkgY2F1c2UgdGhlIEV4cG9ydCB0byBiZWNvbWUgdW5zdGFibGUuICBCZSBzdXJlIHlvdVwncmUgYmFja3VwLic7JGxhbmdbJ2luc3RhbGxlZCddPSdpbnN0YWxsJzskbGFuZ1sndXBncmFkZWQnXT0ndXBncmFkZSc7JGxhbmdbJ19wYXNzZWQnXT0nJXMgUGFzc2VkICVzICVzIGNvcnJlY3RseSAlcyc7JGxhbmdbJ19mYWlsJ109JyVzIEZhaWxlZCAlcyAlcyBjaGVjayBsb2dzIChzZXJ2ZXIgYXMgd2VsbCkgJXMnOyRsYW5nWydub2ZpbGUnXT0nVGhlcmUgaXMgbm8gZmlsZSB0byB1cGxvYWQuJzskbGFuZ1sndXBsb2FkZmFpbGVkJ109J1VwbG9hZGluZyBvZiB0aGUgZmlsZSBmYWlsZWQuJzskbGFuZ1snaW1wb3J0T2snXT0nVGhlIGltcG9ydCB3YXMgc3VjY2Vzc2Z1bCEgIERvdWJsZSBjaGVjayBhbGwgdGhlIHBhcnRzIGFuZCBrZWVwIHlvdXIgYmFja3VwIGhhbmR5IHRpbGwgeW91ciBzdXJlIHRoaW5ncyBhcmUgc3RhYmxlLic7JGxhbmdbJ2V4dF9UTVAnXT0nU2VsZWN0aW5nIHRlbXBsYXRlcyc7JGxhbmdbJ2hlbHBfZXh0X1RNUCddPSdTZWxlY3QgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIE5PVEUgYW4gRXhwb3J0IGNhbiBvbmx5IGluY2x1ZGUgcGFnZXMgdGhhdCB1c2VkIGJ5IHRoZSB0ZW1wbGF0ZXMgc2VsZWN0ZWQgaW4gdGhpcyBzdGVwLic7JGxhbmdbJ2V4dF9DU1MnXT0nU2VsZWN0aW5nIHN0eWxlc2hlZXRzJzskbGFuZ1snaGVscF9leHRfQ1NTJ109J1NlbGVjdCBzdHlsZXNoZWV0cyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4geW91ciBFeHBvcnQuIElmIHN0eWxlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRlbXBsYXRlcyBzZWxlY3RlZCBpbiB0aGUgbGFzdCBzdGVwLCB0aGlzIGFzc29jaWF0aW9uIHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiBhcyB3ZWxsLic7JGxhbmdbJ2V4dF9QRyddPSdTZWxlY3RpbmcgcGFnZXMnOyRsYW5nWydoZWxwX2V4dF9QRyddPSdTZWxlY3QgcGFnZXMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIEV4cG9ydC4gIFBhZ2VzIHdpbGwgYmUgaW5zdGFsbGVkIGludG8gdGhlIHRhcmdldCBpbnN0YWxsYXRpb24gd2l0aCBoaWVyYXJjaHkgcGF0aHMgcHJlc2VydmVkLiBUaGVyZSBhcmUgMyBvdXRjb21lczogPHVsPjxsaT4xLiBUaGUgcGFnZSB3aWxsIGJlIGNyZWF0ZWQgaWYgdGhlIGV4YWN0IGhpZXJhcmNoeSBwYXRoIGV4aXN0cyBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiBvciB5b3UgaW5jbHVkZSB0aGUgcGFnZXMgZnJvbSB0aGUgaGllcmFyY2h5IGludG8geW91ciBFeHBvcnQuPC9saT48bGk+Mi4gVGhlIHBhZ2Ugd2lsbCBiZSBvdmVyd3JpdHRlbiBvbiB0aGUgdGFyZ2V0IHN5c3RlbSBpZiBpdCBpcyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgaGllcmFyY2h5IHBhdGggb24gdGhlIHRhcmdldCBzeXN0ZW0uPC9saT48bGk+My4gVGhlIHBhZ2Ugd2lsbCBOT1QgYmUgaW1wb3J0ZWQgaWYgdGhlcmUgaXMgbm8gc3VjaCBoaWVyYXJjaHkgcGF0aCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbi4gVGhlIHVzZXIgd2lsbCBzdGlsbCBiZSBhYmxlIHRvIGNyZWF0ZSB0aGUgcmVxdWlyZWQgaGllcmFyY2h5IHByaW9yIHRvIGltcG9ydGluZyB0aGUgRXhwb3J0LjwvbGk+PC91bD48c3Ryb25nPk5PVEU6IFRoZSBsaXN0IGlzIGZpbGl0ZXJlZCB0byB0aGUgcGFnZXMgd2hlcmUgdGhlIHRlbXBsYXRlcyB0aGV5IHVzZSBhcmUgc2VsZWN0ZWQgZm9yIGV4cG9ydC4gIFlvdSBtYXkgZ28gYmFjayB0byBzZWxlY3QgbW9yZS48L3N0cm9uZz48YnIvPic7JGxhbmdbJ2V4dF9NT0RURU1QTEFURSddPSdTZWxlY3RpbmcgbW9kdWxlIHRlbXBsYXRlcyc7JGxhbmdbJ2hlbHBfZXh0X01PRFRFTVBMQVRFJ109J1NlbGVjdCBtb2R1bGUgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBtb2R1bGVzIGFyZSBub3QgaW5zdGFsbGVkIGluIHRhcmdldCBpbnN0YWxsYXRpb24gb3IgdGhlIHZlcnNpb24gZGV2aWF0ZXMgZnJvbSBvbmUgeW91IHVzZSBoZXJlLCB0aGUgdXNlciB3aWxsIGJlIHByb3ZpZGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIG1lc3NhZ2Ugd2hhdCBtb2R1bGUgaXMgbWlzc2luZyBhbmQgdGhlIHZlcnNpb24gb2YgdGhlIG1vZHVsZSB5b3UgdXNlIGhlcmUuJzskbGFuZ1snZXh0X0dDQiddPSdTZWxlY3RpbmcgZ2xvYmFsIGNvbnRlbnQgYmxvY2tzIChHQ0IpJzskbGFuZ1snaGVscF9leHRfR0NCJ109J1NlbGVjdCBHQ0IgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIEV4cG9ydC4gSWYgdGhlIEdDQiB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgdGFyZ2V0IHN5c3RlbSBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLic7JGxhbmdbJ2V4dF9VRFQnXT0nU2VsZWN0aW5nIHVzZXIgZGVmaW5lZCB0YWdzIChVRFQpJzskbGFuZ1snaGVscF9leHRfVURUJ109J1NlbGVjdCBVRFRzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBVRFQgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMgb24gdGhlIHRhcmdldCBzeXN0ZW0gaXQgd2lsbCBiZSBvdmVyd3JpdHRlbi4nOyRsYW5nWydleHRfRklMRSddPSdTZWxlY3RpbmcgZmlsZXMnOyRsYW5nWydoZWxwX2V4dF9GSUxFJ109J1NlbGVjdCBmaWxlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGlzIEV4cG9ydC4gVGhpcyBsaXN0IGlzIGxpbWl0ZWQgdG8gdGhlIGZpbGVzIGluIHRoZSBmb2xkZXIgPHN0cm9uZz4vdXBsb2Fkczwvc3Ryb25nPi4gIFRoZSBtb3JlIGZpbGVzIGNob29zZW4gdGhlIGxhcmdlciB0aGUgRXhwb3J0LiAgT3ZlcmxvYWRpbmcgd2l0aCBtYW55IGZpbGVzIG1heSBjYXVzZSAib3V0IG9mIG1lbW9yeSIgZXJyb3JzIGR1cmluZyBleHBvcnQgb3IgaW1wb3J0IG9uIHRoZSB0YXJnZXQgaW5zdGFsbGF0aW9uLic7JGxhbmdbJ2V4dF9QUkVGJ109J1NlbGVjdCBtb2R1bGVzXCcgc2V0dGluZ3MnOyRsYW5nWydoZWxwX2V4dF9QUkVGJ109J1NlbGVjdCB0aGUgbW9kdWxlcyBmb3Igd2hpY2ggdGhlIHNldHRpbmdzIHNob3VsZCBiZSBpbmNsdWRlZC4gVXNlIHdpdGggY2F1dGlvbiBhcyBhbGwgbW9kdWxlIHNldHRpbmdzIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaW4gdGhlIHRhcmdldCBpbnN0YWxsYXRpb24uIE9ubHkgIGNob29zZSBtb2R1bGUgc2V0dGluZ3MgaWYgdGhlIEV4cG9ydCByZWxpZXMgb24gY2VydGFpbiBzZXR0aW5nIGFuZCB3aWxsIGZhaWwgaWYgaXQgaXMgbm90IHNldCBhcyByZXF1aXJlZC4nOyRsYW5nWydleHRfSU5GTyddPSdTZXR0aW5nIEV4cG9ydCBpbmZvcm1hdGlvbic7JGxhbmdbJ2hlbHBfZXh0X0lORk8nXT0nRW50ZXIgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBFeHBvcnQuIDxzdHJvbmc+RXhwb3J0IG5hbWUgYW5kIEV4cG9ydCB2ZXJzaW9uIGFyZSByZXF1aXJlZCBmaWVsZHMhPC9zdHJvbmc+IFVzZSBub3RlcyB0byBnaXZlIHVzZXIgaW5zdHJ1Y3Rpb25zIG9yIHN1cHBvcnQgaW5mb3JtYXRpb24uJzskbGFuZ1snZXh0X0ZJTkZPJ109J1NldHRpbmcgRXhwb3J0IGluZm9ybWF0aW9uJzskbGFuZ1snaGVscF9leHRfRklORk8nXT0nRW50ZXIgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBFeHBvcnQgYW5kIGNob29zZSBzb21lIG9wdGlvbnMuIDxzdHJvbmc+RXhwb3J0IHppcCBuYW1lIGFuZCBFeHBvcnQgdmVyc2lvbiBhcmUgcmVxdWlyZWQgZmllbGRzITwvc3Ryb25nPiBVc2Ugbm90ZXMgdG8gY3JlYXRlIGEgcmVhZG1lIGZpbGUgd2l0aCB1c2VyIGluc3RydWN0aW9ucyBvciBzdXBwb3J0IGluZm9ybWF0aW9uLic7JGxhbmdbJ2V4dF9QQUNLJ109J1Jldmlld2luZyBFeHBvcnQnOyRsYW5nWydoZWxwX2V4dF9QQUNLJ109J0V2ZXJ5dGhpbmcgY2hlY2tzIG91dC4gIFBsZWFzZSByZXZpZXcgdGhlIEV4cG9ydCBiZWxvdyBhbmQgY2xpY2sgdG8gZG93bmxvYWQuJzskbGFuZ1sndmlldyddPSd2aWV3JzskbGFuZ1snaWQnXT0nSUQnOyRsYW5nWydub19jb21wb25lbnRzJ109JzxoMyBhbGlnbj0iY2VudGVyIj5Ob3RoaW5nIGhhcyBiZWVuIGZvdW5kLjwvaDM+PHAgYWxpZ249ImNlbnRlciI+Tm90ZTogdGhpcyBsaXN0IGNhbiBiZSBsaW1pdGVkIGJhc2VkIG9uIHRoZSBwcmV2aW91cyBzZWxlY3Rpb25zLjxici8+Q2xpY2sgb24gIkNvbnRpbnVlIiB0byBnZXQgdG8gdGhlIG5leHQgc3RlcC48L3A+JzskbGFuZ1sndGVtcGxhdGVzJ109J1RlbXBsYXRlcyc7JGxhbmdbJ3N0eWxlc2hlZXRzJ109J1N0eWxlc2hlZXRzJzskbGFuZ1snbmFtZSddPSdOYW1lJzskbGFuZ1snYWN0aW9uJ109J1NlbGVjdCBBbGwnOyRsYW5nWydsaXN0J109J0V4cG9ydCBDb250ZW50cyc7JGxhbmdbJ3BhZ2VzJ109J1BhZ2VzJzskbGFuZ1snbW9kdWxldGVtcGxhdGVzJ109J01vZHVsZSB0ZW1wbGF0ZXMnOyRsYW5nWydnYmxzJ109J0dsb2JhbCBDb250ZW50IEJsb2NrcyAoR0NCKSc7JGxhbmdbJ3VkdHMnXT0nVXNlciBEZWZpbmVkIFRhZ3MgKFVEVCknOyRsYW5nWydmaWxlcyddPSdGaWxlcyc7JGxhbmdbJ21vZHVsZXNldHRpbmdzJ109J1NldHRpbmdzIGZvciBtb2R1bGVzJzskbGFuZ1snbW9kdWxlbmFtZSddPSdNb2R1bGUgTmFtZSc7JGxhbmdbJ21vZHVsZSddPSdNb2R1bGUnOyRsYW5nWydub3NlbGVjdGlvbiddPScqIE5vdGhpbmcgaGFzIGJlZW4gc2VsZWN0ZWQuJzskbGFuZ1sncHJvbXB0X3BhY2thZ2VuYW1lJ109J0V4cG9ydCBOYW1lJzskbGFuZ1snaW5mb19wYWNrYWdlbmFtZSddPSdXaXRoIGFuIEV4cG9ydCBuYW1lLCB0cnkgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggYW5vdGhlciBleGlzdGluZyBFeHBvcnQgYnkgdXNpbmcgYSB1bmlxdWUgbmFtZSEgJXMgQ2xpY2sgdG8gY2hlY2sgY3VycmVudCBrbm93ZW4gbmFtZXMgJXMnOyRsYW5nWydwcm9tcHRfcGFja2FnZXZlcnNpb24nXT0nRXhwb3J0IFZlcnNpb24nOyRsYW5nWydpbmZvX3BhY2thZ2V2ZXJzaW9uJ109J0VudGVyIHRoZSB2ZXJzaW9uIG9mIHRoZSBFeHBvcnQuIFRoaXMgd2lsbCBoZWxwIHRvIHRyYWNrIGlzc3VlcyBvciBoYW5kbGUgdXBncmFkZXMuICc7JGxhbmdbJ3Byb21wdF9hdXRob3JuYW1lJ109J0F1dGhvciBOYW1lJzskbGFuZ1snaW5mb19hdXRob3JuYW1lJ109J0VudGVyIHlvdXIgbmFtZSBhbmQgY29weXJpZ2h0LiBpZTogPGk+Sm9obiBEb2UgW2RvbWFpbi5jb21dPC9pPic7JGxhbmdbJ3Byb21wdF9ub3RlcyddPSdOb3Rlcyc7JGxhbmdbJ2luZm9fbm90ZXMnXT0nRW50ZXIgYW55IGFkZGl0aW9uYWwgaW5zdHJ1Y3Rpb25zLiBpZTogaWYgeW91IGRlbGl2ZXIgdGVtcGxhdGVzIGZvciBzcGVjaWFsIG1vZHVsZSwgdGVsbCB0aGUgdXNlciBob3cgdG8gY29uZmlndXJlIGl0LiBPciB0ZWxsIHRoZSB1c2VyIHdoZXJlIGhlIGNhbiBnZXQgaGVscCBmb3IgdGhlIHRoZW1lLiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgc2hvd24gb24gdGhlIGRhc2hib2FyZCBhZnRlciB0aGUgdGhlbWUgaXMgaW5zdGFsbGVkLic7JGxhbmdbJ2FjdGl2ZSddPSdBY3RpdmUnOyRsYW5nWydlbXB0eXBhY2thZ2VuYW1lJ109J1BsZWFzZSBlbnRlciBFeHBvcnQgbmFtZSEnOyRsYW5nWydlbXB0eXBhY2thZ2V2ZXJzaW9uJ109J1BsZWFzZSBlbnRlciBFeHBvcnQgdmVyc2lvbiEnOyRsYW5nWydub2ZpbGUnXT0nUGxlYXNlIHNlbGVjdCBhIHZhbGlkIFhNTCBwYWNrYWdlIGZpbGUhJzskbGFuZ1snbm9maWxlJ109J1RoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcgdXBsb2FkISc7JGxhbmdbJ3BhY2thZ2VpbmNsdWRlcyddPSdUaGlzIEV4cG9ydCBpbmNsdWRlcyc7JGxhbmdbJ2FjY2Vzc2RlbmllZCddPSdUaGUgZm9sZGVyIHRtcC9jYWNoZSBpcyBub3Qgd3JpdGFibGUuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zISc7JGxhbmdbJ3dhcm5pbmcnXT0nQ2F1dGlvbiEnOyRsYW5nWydzdWNjZXNzJ109J09LJzskbGFuZ1snZXJyb3InXT0nRmFpbGVkISc7JGxhbmdbJ3Byb21wdF9jbXNtc3ZlcnNpb24nXT0nQ01TIE1hZGUgU2ltcGxlJzskbGFuZ1sncHJvbXB0X3NkdmVyc2lvbiddPSdTY3JpcHREZXBsb3knOyRsYW5nWydtb2R1bGV2ZXJzaW9ucyddPSdSZXF1aXJlZCBtb2R1bGVzIGFuZCB2ZXJzaW9ucyc7JGxhbmdbJ3JlY29tbWVuZGVkJ109IiVzIEV4cG9ydCB3YXMgY3JlYXRlZCB3aXRoIHZlcnNpb24gJXMgJXMiOyRsYW5nWydyZXF1aXJlZCddPSIlcyBFeHBvcnQgcmVxdWlyZXMgdGhlIG1vZHVsZSB2ZXJzaW9uICVzLiAlcyBUSElTIFdJTEwgYmUgaW5zdGFsbGVkICVzICVzIjskbGFuZ1snVE1QJ109J1RlbXBsYXRlcyc7JGxhbmdbJ0NTUyddPSdTdHlsZXNoZWV0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydKUyddPSdKYXZhc2NyaXB0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydQRyddPSdQYWdlcyc7JGxhbmdbJ01PRFRFTVBMQVRFJ109J01vZHVsZSB0ZW1wbGF0ZXMnOyRsYW5nWydHQ0InXT0nR2xvYmFsIENvbnRlbnQgQmxvY2sgKEdDQiknOyRsYW5nWydVRFQnXT0nVXNlciBEZWZpbmVkIFRhZ3MgKFVEVCknOyRsYW5nWydGSUxFJ109J0ZpbGVzJzskbGFuZ1snUFJFRiddPSdNb2R1bGUgc2V0dGluZ3MnOyRsYW5nWydJTkZPJ109J1hNTCBiYXNlZCBFeHBvcnQgaW5mb3JtYXRpb24nOyRsYW5nWydGSU5GTyddPSdaSVAgYmFzZWQgRXhwb3J0IGluZm9ybWF0aW9uJzskbGFuZ1snUEFDSyddPSdDcmVhdGUgdGhlIEV4cG9ydCc7JGxhbmdbJ1dSVCddPSdXcml0ZSB0aGUgRXhwb3J0JzskbGFuZ1snVE1QX2Zyb250J109J1RlbXBsYXRlcyc7JGxhbmdbJ0NTU19mcm9udCddPSdTdHlsZXNoZWV0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydKU19mcm9udCddPSdKYXZhc2NyaXB0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydQR19mcm9udCddPSdQYWdlcyc7JGxhbmdbJ01PRFRFTVBMQVRFX2Zyb250J109J01vZHVsZSB0ZW1wbGF0ZXMnOyRsYW5nWydHQ0JfZnJvbnQnXT0nR2xvYmFsIENvbnRlbnQgQmxvY2sgKEdDQiknOyRsYW5nWydVRFRfZnJvbnQnXT0nVXNlciBEZWZpbmVkIFRhZ3MgKFVEVCknOyRsYW5nWydGSUxFX2Zyb250J109J0ZpbGVzJzskbGFuZ1snUFJFRl9mcm9udCddPSdNb2R1bGUgc2V0dGluZ3MnOyRsYW5nWydJTkZPX2Zyb250J109J2EgWE1MIGJhc2VkIEV4cG9ydCc7JGxhbmdbJ0ZJTkZPX2Zyb250J109J2EgWklQIGJhc2VkIEV4cG9ydCc7JGxhbmdbJ1BBQ0tfZnJvbnQnXT0nQ3JlYXRlIHRoZSBFeHBvcnQnOyRsYW5nWydXUlRfZnJvbnQnXT0nV3JpdGUgdGhlIEV4cG9ydCc7JGxhbmdbJ3N0ZXBBcnJheSddPSdFeHBvcnQgY29udGFpbnRzJzskbGFuZ1snaW5mb0FycmF5J109J0V4cG9ydCB0eXBlcyc7JGxhbmdbJ0Z1bGxTaXRlUHVzaCddPSdTdGFydCBhIGZ1bGwgcHVzaCB0byBhIG5ldyBzZXJ2ZXIuIGllOiBwdXNoIGZyb20gYSBkZXZlbG9wbWVudCBzZXJ2ZXIgdG8gYSBzdGFnaW5nIHNlcnZlci4nOyRsYW5nWydtb2RkZXNjcmlwdGlvbiddPSdTUEVFRCBZT1VSIFNJVEUgVVAgLi4uISEhISAqKn5+ICMxIHJlcGxhY2VtZW50IGZvciB7Y21zX3N0eWxlc2hlZXR9IH5+KiogJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzskbGFuZ1snd2VsY29tZV90ZXh0J109JzxwPkhlbGxvITwvcD4nOyRsYW5nWydoZWxwJ109JzxsaW5rIG1lZGlhPSJzY3JlZW4iIGhyZWY9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ii8+DQo8aDMgY2xhc3M9IkJhY2tMaW5rIj48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPiZsdDsmbHQ7IEJhY2s8L2E+PC9oMz4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4NCjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+DQo8L2Zvcm0+PGJyLz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz88L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyFcJ3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJnF1b3Q7UHJvYmxlbSBEb21haW4mcXVvdDsgYmVsb3cgZm9yIG1vcmUgaW5mby4pIDwvcD4NCjxoMz5UaGUgU2hvcnQgb2YgaXQ8L2gzPg0KPHA+V3JpdGUgeW91ciBzY3JpcHRzLCBzZXQgdGhlIG9yZGVyLCBjaGFuZ2Ugc29tZSBvcHRpb25zIGFuZCBTY3JpcHREZXBsb3kgd2lsbCBkbyB0aGUgcmVzdCE8L3A+DQo8dGFibGU+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9IkJPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkIj48IS0tPGltZyBzcmM9Imh0dHA6Ly9tcmNsYXkub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDA4LzA5L2ZpZGRsZXJfYmVmb3JlLnBuZyIgYWx0PSJhZnRlciIgLz4tLT4NCgkgIDxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvaGVscF8xLnBuZyIgYWx0PSJhZnRlciIgLz4NCgkgIA0KCSAgPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjxzdHJvbmc+QWZ0ZXI8L3N0cm9uZz48L3RkPg0KICAgICAgPHRkIHN0eWxlPSJCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCI+PCEtLTxpbWcgc3JjPSJodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyIgYWx0PSJiZWZvcmUiIC8+LS0+DQoJICA8aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2hlbHBfMi5wbmciIGFsdD0iYWZ0ZXIiIC8+DQoJICA8L3RkPg0KICAgIDwvdHI+DQoJDQoJDQoJPHRyPg0KICAgICAgPHRkIHN0eWxlPSJCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCI+PHN0cm9uZz5EaWZmZXJlbmNlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0iQk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQiPjwhLS08aW1nIHNyYz0iaHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmciIGFsdD0iYmVmb3JlIiAvPi0tPg0KCSAgPGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9oZWxwXzMucG5nIiBhbHQ9ImFmdGVyIiAvPg0KCSAgPC90ZD4NCiAgICA8L3RyPg0KCQ0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KPHA+V2hhdCBkb2VzIHRoaXMgYWRkIHVwIHRvPyBvdmVyIGEgdGltZSB0aGUgc2F2aW5ncyBhZGRzIHVwLiAgSSB0aGUgdXBwZXIgZXhhbXBsZSB0aGVyZSBpcyAxLjYgc2Vjb25kcyBvZiBwYXJhbGxlbCB0aW1lIHRoYXQgY291bGQgaGF2ZSBiZWVuIHVzZWQgZm9yIHNvbWUgaGVhdnkgaW1hZ2UuICBBcyB5b3UgY29uZmlndXJlIFNjcmlwdERlcGxveSB3aXRoIG9wdGlvbnMgc3VjaCBhcyBzdWJkb21haW5zIGFuZCBpbWFnZSBwcmVsb2FkaW5nIHlvdSBnYWluIGEgdG90YWwgZWZmZWN0IHNhdmluZyB0aGUgdXNlciBpbiBkb3duIGxvYWQgdGltZSBvZiB5b3VyIHBhZ2UgYXMgd2VsbCBhcyBjb3N0IHRvIHlvdXIgc2VydmVyOyBhbmQgZXZlbiBkb3duIHRvIHRoZSAgYmFzaWNzIG9mIGhvdyBmYXN0IHRoZSBET00gYnVpbGRzIHRocnUgY3NzIGltYWdlIHByZWxvYWRpbmc8L3A+DQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlcyA8ZW0+KEp1c3QgYSBmZXchKTwvZW0+PC9oMj4NCjx1bD4NCiAgPGxpPiZidWxsOyZuYnNwO0NvbWJpbmVzIGFuZCBtaW5pZmllcyBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBpbnRvIGEgc2luZ2xlIGRvd25sb2FkIDwvbGk+DQogIDxsaT4mYnVsbDsmbmJzcDtSZXZpc29uIGhpc3RvcnksIHVzZXIgZWRpdGluZyBsb2dnaW5nLCB0byB1c2VyIGxvY2tvdXRzIGxldCBhbnkgbnVtYmVyIG9mIGVkaXRvcnMgd29yayB0b2dldGhlciE8L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7VXNlcyBhbiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9KU01pbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5lbmhhbmNlZCBwb3J0PC9hPiBvZiBEb3VnbGFzIENyb2NrZm9yZFwncyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO0JyZWFrIGV2ZW4gdGhlIG1vc3Qgc3R1YmJvcm4gYnJvd3NlclwncyBjYWNoZSB3aGVuIHlvdSBtYWtlIGFuIGVkaXQuPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO1Jlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO01vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+JmJ1bGw7Jm5ic3A7U2V0IGEgcGF0aCB0byB3YXRjaCBmb3IgRlRQXCdkIGZpbGVzIHRvIGNvbWJpbmVkPC9saT4NCiAgPGxpPiZidWxsOyZuYnNwO1dpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT4mYnVsbDsmbmJzcDtDb250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlXCdzIG1vZF9kZWZsYXRlIG9wdGlvbiEgPC9saT4NCjwvdWw+DQo8aDM+PGVtPjxzdHJvbmc+KiogTm90ZTo8L3N0cm9uZz4gSXQgaXMgYmVzdCB0byB1c2UgYSAuaHRhY2Nlc3Mgc2NyaXB0IHRvIHNldCB0aGUgYWdlIHRpbWVzLiBTY3JpcHREZXBsb3kgaXMgZGVzaWduZWQgZm9yIGVmZmljaWVuY3ksIGJ1dCBmb3IgdmVyeSBoaWdoIHRyYWZmaWMgc2l0ZXMsIFNjcmlwdERlcGxveSBtYXkgc2VydmUgZmlsZXMgc2xvd2VyIHRoYW4geW91ciBIVFRQZCBkdWUgdG8gdGhlIENHSSBvdmVyaGVhZCBvZiBQSFAuICBUbyBvdmVyY29tZSB0aGlzIEp1c3QgY2hlY2sgInVzZSAuaHRhY2Nlc3MgaW4gb3B0aW9ucyI8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e1NjcmlwdERlcGxveSBzY3JpcHRJRD0iMSIgU3R5cGU9IkNTUyJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntTY3JpcHREZXBsb3kgZ3JvdXBJRD0iMSIgU3R5cGU9IkpTIn0gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPjxici8+PGJyLz4NCg0KPGgzPlVzZSBhIHNjcmlwdCBmcm9tIGEgZm9sZGVyPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e1NjcmlwdERlcGxveSBwYXRoPSIvZm9sZGVybmFtZS9maWxlLmNzcyJ9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgyPlRoaXMgd2lsbCBsZXQgeW91IGZ0cCB1cCBmaWxlcyB0byB3b3JrIHdpdGguICBHcmVhdCBmb3IgdGhvc2UgdXNpbmcgcHJvZ3JhbXMgbGlrZSBEcmVhbXdlYXZlci48L2gyPg0KDQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiAgfCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkIG9yIHBhdGggaXMgdXNlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPmdyb3VwSUQ9IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiAgfCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZCBvciBwYXRoIGlzIHVzZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gIHwgc2V0cyB0aGUgZXh0ZW50aW9uIG9mIHRoZSBzY3JpcHQgPHN0cm9uZz5OT1RFOjwvc3Ryb25nPiBpZiBwYXRoIGlzIHVzZSB0aGlzIHdpbGwgbm90IGhhcm0gYW55dGhpbmcgYnV0IGlzIG5vdCB1c2VkLjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+c21hcnR5PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiAgfCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPm1pbmlmeT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gIHwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+dW5tZXJnZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+ICB8IEZvcmNlIG91dHB1dCBvZiBhIGdyb3VwIHRvIGJlIGluIHNpZ25sZSBzY3JpcHRzLiBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+cGF0aD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSBDU1Ygb3Igc2luZ2xlIHBhdGggdmFsdWU8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+ICB8IFRoaXMgd2lsbCBsZXQgeW91IGZ0cCB1cCBmaWxlcyB0byB3b3JrIHdpdGguICBHcmVhdCBmb3IgdGhvc2UgdXNpbmcgcHJvZ3JhbXMgbGlrZSBEcmVhbXdlYXZlci48YnIvPjwvbGk+DQoNCg0KDQo8bGk+PHN0cm9uZz5tZWRpYV90eXBlPSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gIHwgc2V0IE1lZGlhIHR5cGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLjxici8+PC9saT4NCjxsaT48c3Ryb25nPmltcG9ydD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gIHwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXR0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5AaW1wb3J0IHVybCgidXJsL2Nzc2ZpbGUuY3NzIikgc2NyZWVuOzwvc3R5bGU+PGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5jYWNoZV9idXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT4gIHwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0icmVkIj48c3Ryb25nPiggdHJ1ZS9mYWxzZSApPC9zdHJvbmc+PC9mb250PjwvbGk+DQo8bGk+PHN0cm9uZz5hc3NpZ249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiAgfCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+ICB8IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290PSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gIHwgU2NyaXB0RGVwbG95IGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yIGluIHRoZSB1cGxvYWQgZm9sZGVyLiAgSWYgeW91IG1vdmUgdGhlIHBhdGggdG8gdGhlIHVwbG9hZCBmb2xkZXIgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9Imxpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyI+PGxpPjxzdHJvbmc+RXhhbXBsZTo8L3N0cm9uZz4geW91IGNoYW5nZWQgPENPREU+JGNvbmZpZ1tcJ3VwbG9hZHNfcGF0aFwnXSA9IFwnL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvaHR0cGRvY3MvdXBsb2Fkc1wnOzwvQ09ERT4gPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPnRvPC9zdHJvbmc+IDxDT0RFPiRjb25maWdbXCd1cGxvYWRzX3BhdGhcJ10gPSBcL3Zhci93d3cvdmhvc3RzL2RvbWFpbi5vcmcvc3ViZG9tYWlucy9tZWRpYS9odHRwZG9jcy91cGxvYWRzXCc7PC9DT0RFPjwvbGk+DQogICAgICAgICAgICA8bGk+bm93IHRoZSB1cGxvYWRzIHVybCB3b3VsZCBub3Qgd29yayBhcyBpdCB3b3VsZCBiZSA8dT5odHRwOi8vd3d3LmRvbWFpbi5vcmcvdXBsb2FkczwvdT48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+U288L3N0cm9uZz4gaXQgY2FuIGJlIGNoYW5nZWQgaGVyZSB0byA8dT5odHRwOi8vbWVkaWEuZG9tYWluLm9yZy91cGxvYWRzPC91PiAgPGZvbnQgY29sb3I9InJlZCI+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCgkJCTxsaT48c3Ryb25nPk5PVEU6PC9zdHJvbmc+IFRoZSBtb2R1bGUgY3JlYXRvciBzdWdnZXN0cyB0byBub3QgbWVzcyB3aXRoIHRoZSB1cGxvYWRzIHBhdGgsIHBvaW50IGEgc3ViZG9tYWluIEEgcmVjb3JkIHRvIHRoZSByb290IG9mIHlvdXIgQ01TTVMgaW5zdGFsbCB3aGljaCBnaXZlcyB5b3UgdGhlIHNhbWUgZWZmZWN0IHdpdGggb3V0IHRoZSBlZGl0cyB0byB0aGUgY29uZmlnIGZpbGUuPC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPnVybD0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+ICB8b3V0cHV0cyB0aGUgdXJsLjwvbGk+DQoNCjwvdWw+DQo8YnIvPg0KDQo8YnIvPjxici8+DQo8aDI+PGEgaWQ9IlByb2JsZW1fRG9tYWluIj48L2E+UHJvYmxlbSBEb21haW48L2gyPg0KPHA+UGFnZXMgdGhhdCByZWZlciB0byBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBvZnRlbiBzdWZmZXIgZnJvbSBzbG93ZXIgICBwYWdlIGxvYWRzLCBkdWUgdG8gdGhlIGJyb3dzZXIgcmVxdWVzdGluZyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LiBNYW55IGJyb3dzZXJzICAgYWxzbyBhcmUgbGltaXRlZCB0byBhIGZldyBzaW11bHRhbmVvdXMgcmVxdWVzdHMgcGVyIGRvbWFpbi4gVGhlIHdhaXQgZm9yIGEgICBzZXJpZXMgb2YgcmVxdWVzdHMgYW5kIHRoZSB0cmFuc2ZlciBvZiB1bm9wdGltaXplZCBmaWxlcyBjYW4gZHJhbWF0aWNhbGx5IHJlZHVjZSAgIHRoZSBjbGllbnQtc2lkZSBwZXJmb3JtYW5jZSBvZiB5b3VyIHNpdGUuIDwvcD4NCjxwPkhlcmUgYXJlIGEgaGFuZGZ1bCBvZiBZYWhvbyFcJ3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxmaWVsZHNldD48bGVnZW5kPjxoMz5QYWNrZWQgd2l0aD88L2gzPjwvbGVnZW5kPg0KPGgzPlBhY2tpbmdfc2ltcGx5IGZvciBDTVNNUzwvaDM+DQo8aDQ+SnVzdCBjb250YWN0IEplcmVteSBCYXNzIGZvciBtb3JlIGRldGFpbHMgb24gcHVyY2hhc2luZyByaWdodHMgdG8gdXNlLjwvaDQ+DQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0PjxsZWdlbmQ+PGgzPlN1cHBvcnQ/PC9oMz48L2xlZ2VuZD4NCjxoMz5UaGlzIGlzIGEgZnJlZSBtb2R1bGUhIFBsZWFzZSBkb25hdGUgdG8gaGVscCBwdXNoIGl0IGZvcndhcmQgYW5kIGltcHJvdmUgdGhlIGRvY3MuPC9oMz4NCjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4NCjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+DQo8L2Zvcm0+PGJyLz48aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmb2xsb3ctLS0gb24gdGhlIFRPRE88L2g0Pg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zY3JpcHRkZXBsb3kiPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KPC9maWVsZHNldD4NCjxmaWVsZHNldD48bGVnZW5kPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPjwvbGVnZW5kPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDExLCBqZXJlbXlCYXNzICZsdDs8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4mZ3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+DQo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhIj4NCjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8aDM+VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLjwvaDM+DQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0Pg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8aDQ+VGhpcmQgcGFydHkgY29kZSB1c2VkOjwvaDQ+DQo8aDU+Q29kZSBNaXJyb3I8L2g1Pg0KPHA+Q29weXJpZ2h0IChDKSAyMDExIGJ5IE1hcmlqbiBIYXZlcmJla2UgPG1hcmlqbmhAZ21haWwuY29tPjwvcD4NCjxwPlBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkNCm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsDQppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzDQp0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsDQpjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMNCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6PC9wPg0KPHA+VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4NCmFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLjwvcD4NCjxwPlRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SDQpJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwNCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQ0KQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUg0KTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwNCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4NClRIRSBTT0ZUV0FSRS48L3A+DQo8aDU+TWluaWZ5PC9oNT4NCjxwPk1pbmlmeSB3YXMgaW5zcGlyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzY3NzY29tcC8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5qc2Nzc2NvbXA8L2E+IGJ5IE1heGltIE1hcnR5bnl1ayBhbmQgYnkgdGhlIGFydGljbGUgXCc8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+XCcgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LjwvcD4NCjwvZmllbGRzZXQ+DQonOyA/Pg0K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95ICc7JGxhbmdbJ3Bvc3RpbnN0YWxsJ109J1p1biZhdW1sO2Noc3Qgc29sbHRlbiBTaWUgZGllIEhpbGZlIGFuc2VoZW4uJzskbGFuZ1sncG9zdHVuaW5zdGFsbCddPSdMYXNzZW4gU2llIHVucyB3aXNzZW4sIHdpZSB3aXIgU2NyaXB0RGVwbG95IGJlc3NlciBtYWNoZW4gayZvdW1sO25uZW4uIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPlNjaHJlaWJlbiBTaWUgdW5zLCB3aXIgZnJldWVuIHVucyB2b24gSWhuZW4genUgaCZvdW1sO3Jlbi48L2E+JzskbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddPSdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGFuZCBhbGwgYm9va3MgdG8gZGF0ZSB3aWxsIHN0aWxsIGJlIHRoZXJlLiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOyRsYW5nWyd1bmluc3RhbGxlZCddPSdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7JGxhbmdbJ2luc3RhbGxlZCddPSdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzskbGFuZ1sndXBncmFkZWQnXT0nTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7JGxhbmdbJ21vZHVsZV9vcHRpb25zJ109J01vZHVsb3B0aW9uZW4nOyRsYW5nWyd0ZW1wbGF0ZV9tYW5nJ109J1RlbXBsYXRlLVZlcndhbHR1bmcnOyRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXT0nRW50d2lja2x1bmdzb3B0aW9uZW4nOyRsYW5nWydWYWxzZXR0aW5ncyddPSdWYWxpZGllcnVuZyc7JGxhbmdbJ2VuJ109J0VuZ2xpc2NoIChFbmdsaXNoKSc7JGxhbmdbJ2ZyJ109J0ZyYW4mY2NlZGlsO2FpcyAoRnJhbnomb3VtbDtzaXNjaCknOyRsYW5nWydpdCddPSdJdGFsaWFubyAoSXRhbGllbmlzY2gpJzskbGFuZ1sna28nXT0nS29yZWFuIChLb3JlYW5pc2NoKSc7JGxhbmdbJ2phJ109J0phcGFuZXNlIChKYXBhbmlzY2gpJzskbGFuZ1snZXMnXT0nRXNwYSZudGlsZGU7b2wgKFNwYW5pc2NoKSc7JGxhbmdbJ3poLWNuJ109J0NoaW5lc2UgKENoaW5lc2lzY2gpJzskbGFuZ1snbmwnXT0nTmVkZXJsYW5kcyAoSG9sbCZhdW1sO25kaXNjaCknOyRsYW5nWydkZSddPSdEZXV0c2NoJzskbGFuZ1sncGwnXT0nUG9sc2tpIChQb2xuaXNjaCknOyRsYW5nWydybyddPSdSb21hbmlhbiAoUnVtJmF1bWw7bmlzY2gpJzskbGFuZ1snY3MnXT0nJkVncmF2ZTtlJnNjYXJvbjt0aW5hIChFc3Rpc2NoKSc7JGxhbmdbJ2JnJ109J0J1bGdhcmlhIChCdWxnYXJpc2NoKSc7JGxhbmdbJ3N2J109J1N2ZW5za2EgKFNjaHdlZGlzY2gpJzskbGFuZ1snZmEnXT0nUGVyc2lhbiAoUGVyc2lzY2gpJzskbGFuZ1sncnUnXT0nUnVzc2lhbiAoUnVzc2lzY2gpJzskbGFuZ1sncHQtQlInXT0nQnJhc2lsaWFuaXNjaGVzIFBvcnR1Z2llc2lzY2ggKHN0YW5kYXJkKSc7JGxhbmdbJ0xub25lJ109J0tlaW5lIFdhcm51bmdlbic7JGxhbmdbJ0wwJ109J1N0dWZlIDAnOyRsYW5nWydMMSddPSdTdHVmZSAxJzskbGFuZ1snTDInXT0nU3R1ZmUgMic7JGxhbmdbJ2NzczEnXT0nQ1NTIDEgJzskbGFuZ1snY3NzMiddPSdDU1MgMiAnOyRsYW5nWydjc3MyMSddPSdDU1MgMi4xICc7JGxhbmdbJ2NzczMnXT0nQ1NTIDMgJzskbGFuZ1snc3ZnJ109J1NWRyAgJzskbGFuZ1snc3ZnYmFzaWMnXT0nU1ZHIGJhc2ljICc7JGxhbmdbJ3N2Z3RpbnknXT0nU1ZHIHRpbnkgJzskbGFuZ1snbW9iaWxlJ109J21vYmlsZSAnOyRsYW5nWydhdHNjLXR2J109J2F0c2MtdHYgJzskbGFuZ1sndHYnXT0nVm9yZ2VzZWhlbiBmJnV1bWw7ciBUVi0mYXVtbDtobmxpY2hlIEdlciZhdW1sO3RlLic7JGxhbmdbJ25vbmUnXT0nbmljaHRzJzskbGFuZ1snSW5saW5lJ109J2F1dG9tYXRpc2NoIGVya2VubmVuJzskbGFuZ1snSFRNTDUnXT0nSFRNTDUgKGV4cGVyaW1lbnRlbGwpJzskbGFuZ1snWEhUTUxfMV8wX1N0cmljdCddPSdYSFRNTCAxLjAgU3RyaWN0ICc7JGxhbmdbJ1hIVE1MXzFfMF9UcmFuc2l0aW9uYWwnXT0nWEhUTUwgMS4wIFRyYW5zaXRpb25hbCAnOyRsYW5nWydYSFRNTF8xXzBfRnJhbWVzZXQnXT0nWEhUTUwgMS4wIEZyYW1lc2V0ICc7JGxhbmdbJ0hUTUxfNF8wMV9TdHJpY3QnXT0nSFRNTCA0LjAxIFN0cmljdCAnOyRsYW5nWydIVE1MXzRfMDFfVHJhbnNpdGlvbmFsJ109J0hUTUwgNC4wMSBUcmFuc2l0aW9uYWwgJzskbGFuZ1snSFRNTF80XzAxX0ZyYW1lc2V0J109J0hUTUwgNC4wMSBGcmFtZXNldCAnOyRsYW5nWydIVE1MXzNfMiddPSdIVE1MIDMuMiAnOyRsYW5nWydIVE1MXzJfMCddPSdIVE1MIDIuMCAnOyRsYW5nWydJU08vSUVDXzE1NDQ1OjIwMDBfKCJJU09fSFRNTCIpJ109J0lTTy9JRUMgMTU0NDU6MjAwMCAoJnF1b3Q7SVNPIEhUTUwmcXVvdDspICc7JGxhbmdbJ1hIVE1MXzFfMSddPSdYSFRNTCAxLjEgJzskbGFuZ1snWEhUTUxfK19SREZhJ109J1hIVE1MICsgUkRGYSAnOyRsYW5nWydYSFRNTF9CYXNpY18xXzAnXT0nWEhUTUwgQmFzaWMgMS4wICc7JGxhbmdbJ1hIVE1MX0Jhc2ljXzFfMSddPSdYSFRNTCBCYXNpYyAxLjEgJzskbGFuZ1snWEhUTUxfTW9iaWxlX1Byb2ZpbGVfMV8yJ109J1hIVE1MIE1vYmlsZSBQcm9maWxlIDEuMiAnOyRsYW5nWydYSFRNTC1QcmludF8xXzAnXT0nWEhUTUwtUHJpbnQgMS4wICc7JGxhbmdbJ1hIVE1MXzFfMV9wbHVzX01hdGhNTF8yXzAnXT0nWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCAnOyRsYW5nWydYSFRNTF8xXzFfcGx1c19NYXRoTUxfMl8wX3BsdXNfU1ZHXzFfMSddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMSAgJzskbGFuZ1snTWF0aE1MXzJfMCddPSdNYXRoTUwgMi4wICc7JGxhbmdbJ1NWR18xXzAnXT0nU1ZHIDEuMCAnOyRsYW5nWydTVkdfMV8xJ109J1NWRyAxLjEgJzskbGFuZ1snU1ZHXzFfMV9UaW55J109J1NWRyAxLjEgVGlueSAnOyRsYW5nWydTVkdfMV8xX0Jhc2ljJ109J1NWRyAxLjEgQmFzaWMgJzskbGFuZ1snU01JTF8xXzAnXT0nU01JTCAxLjAgJzskbGFuZ1snU01JTF8yXzAnXT0nU01JTCAyLjAgJzskbGFuZ1snZGVmYXVsdFBhZ2VfbGFibGUnXT0nRGllc2UgU2VpdGUgbm9jaCBlaW5tYWwgcHImdXVtbDtmZW4nOyRsYW5nWydlbmNvZGluZ19sYWJsZSddPSdLb2RpZXJ1bmcnOyRsYW5nWydkZXRlY3QnXT0nYXV0b21hdGlzY2ggZXJrZW5uZW4nOyRsYW5nWyd1dGYtOCddPSd1dGYtOCAoVW5pY29kZSwgV2VsdHdlaXQpJzskbGFuZ1sndXRmLTE2J109J3V0Zi0xNiAoVW5pY29kZSwgV2VsdHdlaXQpJzskbGFuZ1snaXNvLTg4NTktMSddPSdpc28tODg1OS0xIChXZXN0ZXVyb3BhKSc7JGxhbmdbJ2lzby04ODU5LTInXT0naXNvLTg4NTktMiAoWmVudHJhbGV1cm9wYSknOyRsYW5nWydpc28tODg1OS0zJ109J2lzby04ODU5LTMgKFMmdXVtbDtkZXVyb3BhKSc7JGxhbmdbJ2lzby04ODU5LTQnXT0naXNvLTg4NTktNCAoTm9yZGV1cm9wYSknOyRsYW5nWydpc28tODg1OS01J109J2lzby04ODU5LTUgKEt5cmlsbGlzY2gpJzskbGFuZ1snaXNvLTg4NTktNi1pJ109J2lzby04ODU5LTYtaSAoQXJhYmlzY2gpJzskbGFuZ1snaXNvLTg4NTktNyddPSdpc28tODg1OS03IChHcmllY2hpc2NoKSc7JGxhbmdbJ2lzby04ODU5LTgnXT0naXNvLTg4NTktOCAoSGViciZhdW1sO2lzY2gsIHZpc3VlbGwpJzskbGFuZ1snaXNvLTg4NTktOC1pJ109J2lzby04ODU5LTgtaSAoSGViciZhdW1sO2lzY2gsIGxvZ2lzY2gpJzskbGFuZ1snaXNvLTg4NTktOSddPSdpc28tODg1OS05IChUJnV1bWw7cmtpc2NoKSc7JGxhbmdbJ2lzby04ODU5LTEwJ109J2lzby04ODU5LTEwIChMYXRpbiA2KSAnOyRsYW5nWydpc28tODg1OS0xMSddPSdpc28tODg1OS0xMSAoTGF0aW4vVGhhaSkgJzskbGFuZ1snaXNvLTg4NTktMTMnXT0naXNvLTg4NTktMTMgKExhdGluIDcsIEJhbHRpYyBSaW0pICc7JGxhbmdbJ2lzby04ODU5LTE0J109J2lzby04ODU5LTE0IChMYXRpbiA4LCBLZWx0aXNjaCknOyRsYW5nWydpc28tODg1OS0xNSddPSdpc28tODg1OS0xNSAoTGF0aW4gOSkgJzskbGFuZ1snaXNvLTg4NTktMTYnXT0naXNvLTg4NTktMTYgKExhdGluIDEwKSAnOyRsYW5nWyd1cy1hc2NpaSddPSd1cy1hc2NpaSAoYmFzaWMgRW5nbGlzaCkgJzskbGFuZ1snZXVjLWpwJ109J2V1Yy1qcCAoSmFwYW5pc2NoLCBVbml4KSc7JGxhbmdbJ3NoaWZ0X2ppcyddPSdzaGlmdF9qaXMgKEphcGFuaXNjaCwgV2luL01hYyknOyRsYW5nWydpc28tMjAyMi1qcCddPSdpc28tMjAyMi1qcCAoSmFwYW5pc2NoLCBFbWFpbCknOyRsYW5nWydldWMta3InXT0nZXVjLWtyIChLb3JlYW5pc2NoKSc7JGxhbmdbJ2diMjMxMiddPSdnYjIzMTIgKENoaW5lc2lzY2gsIHZlcmVpbmZhY2h0KSc7JGxhbmdbJ2diMTgwMzAnXT0nZ2IxODAzMCAoQ2hpbmVzaXNjaCwgdmVyZWluZmFjaHQpJzskbGFuZ1snYmlnNSddPSdiaWc1IChDaGluZXNpc2NoLCB0cmFkaXRpb25lbGwpJzskbGFuZ1snYmlnNS1IS1NDUyddPSdCaWc1LUhLU0NTIChDaGluZXNpc2NoLCBIb25nIEtvbmcpJzskbGFuZ1sndGlzLTYyMCddPSd0aXMtNjIwIChUaGFpKSAnOyRsYW5nWydrb2k4LXInXT0na29pOC1yIChSdXNzaXNjaCknOyRsYW5nWydrb2k4LXUnXT0na29pOC11IChVa3JhaW5pc2NoKSc7JGxhbmdbJ2lzby1pci0xMTEnXT0naXNvLWlyLTExMSAoS3lyaWxsaXNjaCBLT0ktOCkgICc7JGxhbmdbJ21hY2ludG9zaCddPSdtYWNpbnRvc2ggKE1hY1JvbWFuKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTAnXT0nd2luZG93cy0xMjUwIChaZW50cmFsZXVyb3BhKSc7JGxhbmdbJ3dpbmRvd3MtMTI1MSddPSd3aW5kb3dzLTEyNTEgKEt5cmlsbGlzY2gpJzskbGFuZ1snd2luZG93cy0xMjUyJ109J3dpbmRvd3MtMTI1MiAoV2VzdGV1cm9wYSknOyRsYW5nWyd3aW5kb3dzLTEyNTMnXT0nd2luZG93cy0xMjUzIChHcmllY2hpc2NoKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NCddPSd3aW5kb3dzLTEyNTQgKFQmdXVtbDtya2lzY2gpJzskbGFuZ1snd2luZG93cy0xMjU1J109J3dpbmRvd3MtMTI1NSAoSGViciZhdW1sO2lzY2gpJzskbGFuZ1snd2luZG93cy0xMjU2J109J3dpbmRvd3MtMTI1NiAoQXJhYmlzY2gpJzskbGFuZ1snd2luZG93cy0xMjU3J109J3dpbmRvd3MtMTI1NyAoQmFsdGljIFJpbSkgJzskbGFuZ1snYXV0byddPSdBdXRvbWF0aXNjaCBlcnN0ZWxsdGVyIEluaGFsdCc7JGxhbmdbJ3VzZXJDaG9pY2UnXT0nVyZhdW1sO2hsZW4gU2llIGVpbmUgU2VpdGUnOyRsYW5nWyd1c2VyR2VuZXJhdGVkJ109J0luaGFsdCBmZXN0bGVnZW4nOyRsYW5nWydzYXZlVkFMc2V0dGluZ3MnXT0nVmFsaWRpZXJ1bmdzZWluc3RlbGx1bmdlbiBzcGVpY2hlcm4nOyRsYW5nWydzZXR0aW5ncyddPSdFaW5zdGVsbHVuZ2VuJzskbGFuZ1snc2V0dGluZ3NzYXZlZCddPSdFaW5zdGVsbHVuZ2VuIGdlc3BlaWNoZXJ0JzskbGFuZ1snbGVhdmVjb2RlJ109J0NvZGUgbmljaHQgdmVyJmF1bWw7bmRlcm4nOyRsYW5nWydmb3JtYXRjb2RlJ109J0NvZGUgc2NoJm91bWw7biBmb3JtYXRpZXJlbic7JGxhbmdbJ3NjcmFtYmxlY29kZSddPSdDb2RlIHp1c2FtbWVuc2NocmVpYmVuJzskbGFuZ1snY2xlYW5jb2RlJ109J0NvZGUgYmVyZWluaWdlbiB1bmQgaXJyZWxldmFudGUgU3RlbGxlbiBlbnRmZXJuZW4nOyRsYW5nWydzYXZlc2V0dGluZ3MnXT0nRWluc3RlbGx1bmdlbiBzcGVpY2hlcm4nOyRsYW5nWydtYW5nbGV0eXBldGV4dCddPSdDb2RlLUZvcm1hdGllcnVuZyc7JGxhbmdbJ2JyaWVmJ109J0t1cnonOyRsYW5nWyd2ZXJib3NlJ109J0F1c2YmdXVtbDtocmxpY2gnOyRsYW5nWydjb2RlZml4ZXMnXT0nQ29kZS1Lb3JyZWt0dXJlbic7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddPSdLbGVpbmJ1Y2hzdGFiZW4gaW4gVGFncyBlcnp3aW5nZW4nOyRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXT0nWnVyIGJlc3NlcmVuIFhIVE1MLUtvbXBhdGliaWxpdCZhdW1sO3QnOyRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J109J05hY2hyaWNodGVuIGFtIEVuZGUgZGVzIChYKUhUTUwtQ29kZXMgdmVyYmVyZ2VuJzskbGFuZ1snaW5kZW50d2lkdGh0ZXh0J109J0JyZWl0ZSBkZXIgRWluciZ1dW1sO2NrdW5nJzskbGFuZ1snc3BhY2VzJ109J0xlZXJ6ZWljaGVuJzskbGFuZ1snZGVidWdsZXZlbHRleHQnXT0nQW56YWhsIGRlciBEZWJ1Z2dpbmctQXVzZ2FiZTogJzskbGFuZ1snZGVidWd0ZXh0J109J0NvZGUgRGVidWctTW9kdXMnOyRsYW5nWydTY3JpcHRfbGlzdCddPSdTY3JpcHRlJzskbGFuZ1snQXNzX2hlYWRlciddPSdLb21iaW5pZXJ0ZSBTY3JpcHRlJzskbGFuZ1snU2FtcGxlVGFnJ109J0JlaXNwaWVsLVRhZyc7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHQnXT0nTmV1ZXMgU2NyaXB0IGhpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXT0nTmV1ZSBTY3JpcHQtR3J1cHBpZXJ1bmcgaGluenVmJnV1bWw7Z2VuJzskbGFuZ1sncHJvbXB0X2FkZHRlbXBsYXRlJ109J05ldWVzIFRlbXBsYXRlIGhpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ2FkZExpYl9sYWJlbCddPSdMaWJyYXJ5IGhpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ2luc2VydENvZGVfbGFiZWwnXT0nRGF0ZWknOyRsYW5nWydpbnNlcnRDb2RlQXRfbGFiZWwnXT0nQ29kZSBlaW5mJnV1bWw7Z2VuIGluJzskbGFuZ1sndGl0bGVfR3JvdXBzJ109J0xpc3RlIGdydXBwaWVydGVyIFNjcmlwdGUnOyRsYW5nWyd0aXRsZV9TY3JpcHRzJ109J0xpc3RlIGVpbnplbG5lciBTY3JpcHRlJzskbGFuZ1snc21hcnR5SG93J109J1NtYXJ0eSBrYW5uIGZvbGdlbmRlcm1hJnN6bGlnO2VuIHZlcndlbmRldCB3ZXJkZW4uLi4gVmVyd2VuZGUge3skc21hcnR5Lm5vd319IGFuc3RlbGxlIHZvbiB7JHNtYXJ0eS5ub3d9Lic7JGxhbmdbJ3RpcF9nZW5lcmFsX3NtYXJ0eSddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZi4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOyRsYW5nWyd0aXBfZ2VuZXJhbF9ncm91cGluZyddPSdKb2luaW5nIHlvdXIgQ1NTIGZpbGVzIHNwZWVkcyB1cCB5b3VyIHVzZXJzIGV4cGVyaWVuY2UgYW5kIGhlbHAgeW91IGdldCBjbG9zZXIgdG8gYW4gJnF1b3Q7QSZxdW90OyBpbiA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95c2xvdy8iIHRhcmdldD0iX2JsYW5rIj55U2xvdzwvYT4nOyRsYW5nWyd0aXBfZWRpdG9yX3RhYiddPSdXdXNzdGVuIFNpZSwgZGFzcyBTaWUgZGllIFRhYi1UYXN0ZSB2ZXJ3ZW5kZW4gayZvdW1sO25uZW4sIHVtIElocmVuIENvZGUgZWluenVyJnV1bWw7Y2tlbj8gUHJvYmllcmVuIFNpZSBlcyBhdXMuJzskbGFuZ1sndGlwX2VkaXRvcl9zZWFyY2hOcmVwbGFjZSddPSdXdXNzdGVuIFNpZSwgZGFzcyBTaWUgJnF1b3Q7U3VjaGVuICZhbXA7IEVyc2V0emVuJnF1b3Q7IG1pdCByZWd1bCZhdW1sO3JlbiBBdXNkciZ1dW1sO2NrZW4gdmVyd2VuZGVuIGsmb3VtbDtubmVuPyBWZXJ3ZW5kZW4gU2llIFN0cmcrZiBpbSBFZGl0b3IsIHVtIGRpZSBGdW5rdGlvbiBhdWZ6dXJ1ZmVuLic7JGxhbmdbJ3RpcF9lZGl0b3JfcmVzZXRIaWdobGlnaHQnXT0nSWYgeW91IGFyZSBzZWVpbmcgZG91YmxlcyBpbiB0aGUgZWRpdG9yLCBpZTogdGhlIGhpZ2hsaWdodCBpcyBkZXN5bmNyb25pemVkIGZyb20gdGV4dCBqdXN0IHVzZSB0aGUgcmVzZXQgaGlnaGxpZ2h0IGJ1dHRvbiA8aW1nIHdpZHRoPSZxdW90OzIwJnF1b3Q7IGhlaWdodD0mcXVvdDsyMCZxdW90OyBvbm1vdXNlZG93bj0mcXVvdDtlZGl0QXJlYS5yZXN0b3JlQW5kU3dpdGNoQ2xhc3ModGhpcywmIzAzOTtlZGl0QXJlYUJ1dHRvbkRvd24mIzAzOTspOyZxdW90OyBvbm1vdXNlb3V0PSZxdW90O2VkaXRBcmVhLnJlc3RvcmVDbGFzcyh0aGlzKTsmcXVvdDsgb25tb3VzZW92ZXI9JnF1b3Q7ZWRpdEFyZWEuc3dpdGNoQ2xhc3ModGhpcywmIzAzOTtlZGl0QXJlYUJ1dHRvbk92ZXImIzAzOTspOyZxdW90OyBjbGFzcz0mcXVvdDtlZGl0QXJlYUJ1dHRvbk5vcm1hbCZxdW90OyB0aXRsZT0mcXVvdDtyZXNldCBoaWdobGlnaHQgKGVkKSZxdW90OyBzcmM9JnF1b3Q7Li4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvZWRpdF9hcmVhL2ltYWdlcy9yZXNldF9oaWdobGlnaHQuZ2lmJnF1b3Q7IGlkPSZxdW90O3Jlc2V0X2hpZ2hsaWdodCZxdW90Oz4nOyRsYW5nWyd0aXBfdGVtcGxhdGVfc21hcnR5J109J1NtYXJ0eSBzeW50YXggaXMgdGhlIHNhbWUgYXMgZXZlcnl3aGVyZSBlbHNlIGp1c3QgYSBzdHJhaWdodCB7JHNtYXJ0eS5ub3d9LiAgVGhlIHt7IH19IGlzIGZvciB0aGUgQ1NTIGFuZCBKUyBhcyB7fSBhcmUgaW4gdGhlaXIgc3ludGF4LiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9ncm91cF9kcmFnTmRyb3AnXT0ndG8gZ2V0IHN0YXJ0ZWQganVzdCBkcmFnIGZyb20gdGhlIHBvb2wgdG8gdGhlIGdyb3VwJiMwMzk7cyBsaXN0JzskbGFuZ1snYWxsJ109J0dlZWlnbmV0IGYmdXVtbDtyIGFsbGUgR2VyJmF1bWw7dGUuJzskbGFuZ1snYXVyYWwnXT0nSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuJzskbGFuZ1snYnJhaWxsZSddPSdJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuJzskbGFuZ1snZW1ib3NzZWQnXT0nSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuJzskbGFuZ1snaGFuZGhlbGQnXT0nSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXMnOyRsYW5nWydwcmludCddPSdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4nOyRsYW5nWydwcm9qZWN0aW9uJ109JyBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuJzskbGFuZ1snc2NyZWVuJ109J0ludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy4nOyRsYW5nWyd0dHknXT0nSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuJzskbGFuZ1snTWVkaWFUeXBlJ109J2FsbCA6IFN1aXRhYmxlIGZvciBhbGwgZGV2aWNlcy48YnIvPg0KYXVyYWwgOiBJbnRlbmRlZCBmb3Igc3BlZWNoIHN5bnRoZXNpemVycy48YnIvPg0KYnJhaWxsZSA6IEludGVuZGVkIGZvciBicmFpbGxlIHRhY3RpbGUgZmVlZGJhY2sgZGV2aWNlcy48YnIvPg0KZW1ib3NzZWQgOiBJbnRlbmRlZCBmb3IgcGFnZWQgYnJhaWxsZSBwcmludGVycy48YnIvPg0KaGFuZGhlbGQgOiBJbnRlbmRlZCBmb3IgaGFuZGhlbGQgZGV2aWNlczxici8+DQpwcmludCA6IEludGVuZGVkIGZvciBwYWdlZCwgb3BhcXVlIG1hdGVyaWFsIGFuZCBmb3IgZG9jdW1lbnRzIHZpZXdlZCBvbiBzY3JlZW4gaW4gcHJpbnQgcHJldmlldyBtb2RlLjxici8+DQpwcm9qZWN0aW9uIDogSW50ZW5kZWQgZm9yIHByb2plY3RlZCBwcmVzZW50YXRpb25zLCBmb3IgZXhhbXBsZSBwcm9qZWN0b3JzIG9yIHByaW50IHRvIHRyYW5zcGFyZW5jaWVzLjxici8+DQpzY3JlZW4gOiBJbnRlbmRlZCBwcmltYXJpbHkgZm9yIGNvbG9yIGNvbXB1dGVyIHNjcmVlbnMuPGJyLz4NCnR0eSA6IEludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLjxici8+DQp0diA6IEludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4nOyRsYW5nWydzZXRpbmFjdGl2ZSddPSdUZW1wbGF0ZSBkZWFrdGl2aWVyZW4nOyRsYW5nWydzZXRhY3RpdmUnXT0nVGVtcGxhdGUgYWt0aXZpZXJlbic7JGxhbmdbJ25vdGRlZmF1bHQnXT0nTmljaHQgU3RhbmRhcmQtVGVtcGxhdGUuJzskbGFuZ1snbm90dmFsaWQnXT0nU3R5bGVzaGVldCBhc3NvY2lhdGlvbnMgaGF2ZSBub3QgYmVlbiBzZXQgcHJvcGVybHkgZm9yIHRoaXMgdGVtcGxhdGUnOyRsYW5nWyd0ZW1wbGF0ZV90YWInXT0nU3R5bGVzd2l0Y2hlci1Gb3JtdWxhci1UZW1wbGF0ZSc7JGxhbmdbJ3BhZ2VfdGVtcGxhdGVzX3RhYiddPSdTZWl0ZW4tVGVtcGxhdGVzJzskbGFuZ1snc3VibWl0J109J0Fic2VuZGVuJzskbGFuZ1snYXBwbHknXT0nJlV1bWw7YmVybmVobWVuJzskbGFuZ1snY2FuY2VsJ109J0FiYnJlY2hlbic7JGxhbmdbJ2dvJ109J0xvcyc7JGxhbmdbJ3ByZXZpZXcnXT0nVm9yc2NoYXUnOyRsYW5nWydpbmxpbmVoZWxwJ109J0hpbGZlJzskbGFuZ1snc2NpcHRvcHRpb25zJ109J09wdGlvbmVuJzskbGFuZ1sncGVyc2lzdGVudCddPSdTdCZhdW1sO25kaWcnOyRsYW5nWydwcmVmZXJyZWQnXT0nQmV2b3J6dWd0JzskbGFuZ1snYWx0ZXJuYXRlJ109J0FsdGVybmF0aXZlJzskbGFuZ1snbmFtZSddPSdOYW1lICc7JGxhbmdbJ3RpdGxlJ109J1RpdGVsJzskbGFuZ1snaWQnXT0nSWQnOyRsYW5nWydhY3RpdmUnXT0nQWt0aXYnOyRsYW5nWydkZWZhdWx0J109J1ZvcmVpbnN0ZWxsdW5nJzskbGFuZ1sndmFsaWQnXT0nVmFsaWRlJzskbGFuZ1sndXNhZ2VfY291bnQnXT0nVmVyd2VuZHVuZyc7JGxhbmdbJ3llcyddPSdKYSc7JGxhbmdbJ25vJ109J05laW4nOyRsYW5nWydlZGl0Y3NzJ109J1N0eWxlc2hlZXQtWnVvcmRudW5nYmVhcmJlaXRlbic7JGxhbmdbJ2VkaXR0ZW1wbGF0ZSddPSdUZW1wbGF0ZS1JbmhhbHQgYmVhcmJlaXRlbic7JGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ109J1RlbXBsYXRlIGwmb3VtbDtzY2hlbic7JGxhbmdbJ2NvcHl0ZW1wbGF0ZSddPSdUZW1wbGF0ZSBrb3BpZXJlbic7JGxhbmdbJ3Byb21wdF9zdHlsZXNoZWV0J109J1NlaXRlbnN0aWwgYXVzdyZhdW1sO2hsZW4nOyRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXT0nVGVtcGxhdGUgJzskbGFuZ1sncHJvbXB0X2dyb3VwbmFtZSddPSdHcnVwcGVuLU5hbWUnOyRsYW5nWydwcm9tcHRfYWRkZ3JvdXAnXT0nR3J1cHBlIGhpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ3Byb21wdF9ncm91cHR5cGUnXT0nR3J1cHBlbi1UeXAnOyRsYW5nWydwcm9tcHRfYWRkJ109J0hpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ3Byb21wdF9zZWxlY3RvbmUnXT0nRWluZW4gYXVzdyZhdW1sO2hsZW4nOyRsYW5nWydwcm9tcHRfYWRkX2FsdGVybmF0ZSddPSdBbHRlcm5hdGl2ZSBoaW56dWYmdXVtbDtnZW4nOyRsYW5nWydlcnJvcl9wbGVhc2Vfc2VsZWN0X3N0eWxlc2hlZXQnXT0nQml0dGUgU3R5bGVzaGVldCBhdXN3JmF1bWw7aGxlbic7JGxhbmdbJ3VzZXJMb2dzJ109J0JlbnV0emVyIFZlcmxhdWZzcHJvdG9rb2xsIGFuc2VoZW4nOyRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXT0nU2NyaXB0LUlEJzskbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddPSdTY3JpcHQtVHlwJzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdTY3JpcHQtTmFtZSc7JGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddPSdUZW1wbGF0ZS1OYW1lJzskbGFuZ1snU2luZ2xlQ29kZV9sYWJlbCddPSdTdGFuZGFyZC1UYWcnOyRsYW5nWydHcm91cHRTaXplX2xhYmVsJ109J0dlc2FtdCc7JGxhbmdbJ25vdGVzX2xhYmVsJ109J0hpbndlaXNlJzskbGFuZ1snZG9jVHlwZV9sYWJsZSddPSdEb2N0eXBlICc7JGxhbmdbJ1ZhbEhUTUxWZXJib3NlX2xhYmxlJ109J0F1c2YmdXVtbDtocmxpY2ggJnV1bWw7YmVycHImdXVtbDtmZW4nOyRsYW5nWydTaG93VmFsX2xhYmxlJ109J05hY2hyaWNodGVuIG9mZmVuIGhhbHRlbic7JGxhbmdbJ1R1cm5PTlZhbF9sYWJsZSddPSdWYWxpZGllcnVuZyA8c3Ryb25nPkVJTjwvc3Ryb25nPic7JGxhbmdbJ2hvdExpbmtDaGVja19sYWJsZSddPSdIb3RMaW5rLVByJnV1bWw7ZnVuZyBhdXNmJnV1bWw7aHJlbic7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdTaWUgbSZ1dW1sO3NzZW4gZGllIEhvdExpbmstUHImdXVtbDtmdW5nIGVpbnNjaGFsdGVuJzskbGFuZ1snZmlsdGVyUHJvcF9sYWJsZSddPSdFaWdlbnNjaGFmdGVuIGF1c2ZpbHRlcm4gKGYmdXVtbDtyIFZhbGlkaWVydW5nKSc7JGxhbmdbJ0NTU3Byb2ZpbGVfbGFibGUnXT0nQ1NTLVByb2ZpbCc7JGxhbmdbJ3VzZXJtZWRpdW1fbGFibGUnXT0nQmVudXR6ZXItTWVkaXVtJzskbGFuZ1snVkFMTGFuZ19sYWJsZSddPSdTcHJhY2hlJzskbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddPSdXM0MtQ1NTLVdhcm5zdHVmZSc7JGxhbmdbJ01lZGlhVHlwZV9sYWJlbCddPSdNZWRpZW50eXAnOyRsYW5nWydNaW5pZnlfbGFiZWwnXT0nQmVpIEF1c2dhYmUgenVzYW1tZW5zY2hyZWliZW4nOyRsYW5nWyd0dXJuT2ZmUHJlbG9hZF9sYWJlbCddPSdVUkwgcHJlbG9hZCBhdXNzY2hhbHRlbic7JGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddPSdFcnN0ZWxsdW5nc2RhdHVtJzskbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXT0nJkF1bWw7bmRlcnVuZ3NkYXR1bSc7JGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXT0nUGZhZCB2ZXJ3ZW5kZW4gPGVtPih2ZXJ3ZW5kZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOyRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ109J0VpZ2VuZSBVUkwgdmVyd2VuZGVuIDxlbT4oU2NoZW1hICZxdW90O2h0dHBzOi8vc3ViLmRvbWFpbi50bGQvJnF1b3Q7KTwvZW0+JzskbGFuZ1snR3Jvb3RVUkwnXT0nR2xvYmFsZSBSb290LVVSTCBmJnV1bWw7ciBTY3JpcHRlJzskbGFuZ1snZW1wdHljYWNoZUVycm9yX2RvQXVkaXQnXT0nRmVobGVyIGJlaW0gTCZvdW1sO3NjaGVuIGRlcyBDYWNoZXMnOyRsYW5nWydlbXB0aWVkQ2FjaF9kb0F1ZGl0J109J1NjcmlwdC1DYWNoZSBnZWwmb3VtbDtzY2h0JzskbGFuZ1snY2xlYXJlZFJldmlzaW9uX2RvQXVkaXQnXT0nVmVyc2lvbnNoaXN0b3JpZSB6dXImdXVtbDtja2dlc2V0enQgZiZ1dW1sO3InOyRsYW5nWydDaGVja2VkT3V0X2RvQXVkaXQnXT0nQXVzZ2VjaGVja3RlcyBTY3JpcHQnOyRsYW5nWydyZWxlYXNlZF9kb0F1ZGl0J109J1ZlciZvdW1sO2ZmZW50bGljaHRlcyBTY3JpcHQnOyRsYW5nWyd3YXRjaEZvbGRlcl9sYWJlbCddPSdCZW9iYWNodGUgVmVyemVpY2huaXMgZiZ1dW1sO3IgRGF0ZWllbi4nOyRsYW5nWyd3YXRjaEZvbGRlciddPSc8aDE+V2F0Y2ggYSBGb2xkZXI8L2gxPg0KPGgzPlRoaXMgd2lsbCBsZXQgeW91IHdhdGNoIGEgZm9sZGVyIHNvIHlvdSBjYW4gdXNlIGZpbGUgdGhlIGFyZSBmdHAmIzAzOTtkIHVwIHRvIHRoZSBzZXJ2ZXIgYW5kIHVzZSB0aGVtIGluIGdyb3Vwcy48L2gzPic7JGxhbmdbJ3dhdGNoZWRGb2xkZXJfbGFiZWwnXT0nUGZhZCc7JGxhbmdbJ3dhdGNoRm9sZGVyVGl0bGUnXT0nVmVyemVpY2huaXMgYmVvYmFjaHRlbiAnOyRsYW5nWyd3YXRjaGVkY291bnRfbGFiZWwnXT0nU2llIGJlb2JhY2h0ZW4gZGVyemVpdCAlcyBWZXJ6ZWljaG5pc3NlJzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nQmVudXR6ZSBkaWVzZXMgU2NyaXB0IDxlbT4oSGlud2VpczogV2VubiBlaW4gUGZhZCBnZXNldHp0IGlzdCwgJnV1bWw7YmVyc2NocmVpYnQgZXMgZGllc2VuKTwvZW0+JzskbGFuZ1snZGVidWdJVF9sYWJlbCddPSdkZWJ1Z2dlbic7JGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ109JzxlbT4oRmlyZXBocCBtb2QgbXVzcyBha3RpdmllcnQgc2Vpbik8L2VtPic7JGxhbmdbJ2RlYnVnVCddPSdEZWJ1Z2dpbmctT3B0aW9uZW4nOyRsYW5nWydFZGl0SGlzdG9yeSddPSdCZW51dHplcnZlcmxhdWYgYmVhcmJlaXRlbic7JGxhbmdbJ2VkaXRvckhlaWdodF9vcCddPSc8aDE+RWRpdG9yIEhlaWdodDwvaDE+DQo8aDM+eW91IG1heSBjaG9vc2UgdG8gc2V0IGEgc3RhdGljIGhlaWdodCBmb3IgdGhlIGVkaXRvci4gIElmIG5vdCBpdCYjMDM5O2xsIGR5bmFtaWNseSBnYWluIGhlaWdodCBhcyB5b3Ugd3JpdGUgeW91ciBzY3JpcHQuPC9oMz4nOyRsYW5nWydlZGl0b3JIZWlnaHRfbGFiZWwnXT0nRWRpdG9yaCZvdW1sO2hlIGZlc3RsZWdlbic7JGxhbmdbJ0hUVFBTX1BPUlRfbGFiZWwnXT0nU1NMLVBvcnQgJmF1bWw7bmRlcm4nOyRsYW5nWydIVFRQU19QT1JUJ109JzxoMT5IVFRQUyBQT1JUPC9oMT48aDM+U29tZSB0aW1lcyBpdCYjMDM5O3MgbmVlZGVkIHRvIGNoYW5nZSB0aGUgcG9ydCB3aGljaCB0aGUgc2VydmVyIGlzIHVzaW5nIGZvciBTU0wuICBUaGlzIGlzIHdoYXQgeW91IGNhbiB1c2UgdG8gbWF0Y2ggaXQuPC9oMz4nOyRsYW5nWydub25lSW5UeXBlJ109JzxoMT5TaWUgbSZ1dW1sO3NzZW4genVlcnN0IGVpbjxici8+U2NyaXB0IGRpZXNlcyBUeXBzIGhpbnp1ZiZ1dW1sO2dlbjwvaDE+JzskbGFuZ1snZ3JvdXB5VGl0bGUnXT0nTGlzdGUgZGVyIFNjcmlwdGUgaW4gZGVyIEdydXBwZSc7JGxhbmdbJ3VubWVyZ2VUaXRsZSddPSdUZWlsZW4gZGVyIEdydXBwZSBpbiBlaW56ZWxuZSBEYXRlaWVuJzskbGFuZ1sncmV2aXNpb25UaXRsZSddPSdSZXZpc2lvbnN2ZXJsYXVmJzskbGFuZ1sncmV2aXNpb25fbGFiZWwnXT0nPHN0cm9uZz5UdXJuIG9uIHRoZSByZXZpc2lvbiBoaXN0b3J5PC9zdHJvbmc+JzskbGFuZ1sncmV2aXNpb25fb3AnXT0nPGgxPlJldmlzaW9uPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzskbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXT0nUmV2aXNpb25zLUxpbWl0IGVpbnN0ZWxsZW4nOyRsYW5nWydjbGVhclJldiddPSdWZXJsYXVmIGxlZXJlbic7JGxhbmdbJ3VzZXJEZWZhdWx0UGFnZSddPSc8aDE+VXNlciBwaWNrZWQgcGFnZTwvaDE+DQo8aDM+U2luY2UgYSB1c2VyIHBhZ2UgaXMgdGhlIG9wdGlvbiB5b3UgcGlja2VkLCB5b3UmIzAzOTtsbCB3YW50IHRvIGNob29zZSBhIHBhZ2UgZnJvbSB0aGUgZHJvcCBkb3duIGZvciB0aGUgY29udGVudCB0byByZW5kZXIgb3V0LiAgQWdhaW4gdGhlIGNvbnRlbnQgc2hvdWxkIHZhbGlkYXRlLjwvaDM+JzskbGFuZ1snZGVmYXVsdFBhZ2UnXT0nPGgxPkNob29zZSBIb3c8L2gxPg0KPGgzPldoYXQgeW91IGFyZSBwaWNraW5nIGlzIHRoZSB3YXkgdG8gdmFsaWRhdGUgeW91ciB0ZW1wbGF0ZXMuICBUaGUgZ29hbCBpcyB0byBwaWNrIHNvbWV0aGluZyB0aGF0IGRvZXNuJiMwMzk7dCBoYXZlIGVycm9ycyBpbiB0aGUgY29udGVudCB5b3UgYXJlIHVzaW5nLjwvaDM+JzskbGFuZ1sndXNlckRlZmF1bHRQYWdlX2xhYmxlJ109J1NlaXRlbi1BbGlhcyB2ZXJnZWJlbic7JGxhbmdbJ293bkNvbnRlbnQnXT0nPGgxPkZpbGwgaXQgaW48L2gxPg0KPGgzPlRoZSBnb2FsIGhlcmUgaXMgdG8gZ2l2ZSBzb21lIHRoaW5nIHRvIHByb2Nlc3MuICBCeSBmaWxsaW5nIGl0IGluIHlvdSBjYW4gY2hlYWNrIHRvIHNlZSBpZiB5b3UgaGF2ZSB0aGUgY29udGVudCB0YWcgYW5kIGJsb2NrcyBmaWxsZWQgaW4gY29ycmVjdGx5LiAgSUU6IHlvdSBjb3VsZCBwdXQgdGhlIGRlZmF1bHQgb3MgdGhlIGF1dG8gZ2VuZXJhdGVkIG9uZSB3aGVyZSBpdCYjMDM5O3MgPGRpdj48c3Bhbj48cD4gYW5kIG90aGVyIGVsZW1lbnRzIGxpa2UgdGhhdC48L2gzPic7JGxhbmdbJ293bkNvbnRlbnRfbGFibGUnXT0nSW5oYWx0IGVyc3RlbGxlbic7JGxhbmdbJ2xvY2tmaWxlc1RpdGxlJ109J0RhdGVpZW4gc2NoJnV1bWw7dHplbic7JGxhbmdbJ2xvY2tmaWxlc19sYWJlbCddPSc8c3Ryb25nPlR1cm4gb24gc2V0IGZpbGVzIHRvIDY0NDwvc3Ryb25nPic7JGxhbmdbJ2xvY2tmaWxlc19vcCddPSc8aDE+UHJvdGVjdCBGaWxlczwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHNldCB0aGUgY3JlYXRlZCBmaWxlIHRvIGJlIGNobW9kIHRvIDY0NC4gIFRoaXMgd2lsbCBoZWxwIHRvIHByb3RlY3QgeW91IGZyb20gSlMgaW50cnVzaW9uIGF0dGFja3MuPC9oMz4nOyRsYW5nWyd1c2VFZGl0b3JUaXRsZSddPSdFZGl0b3ItRWluc3RlbGx1bmdlbic7JGxhbmdbJ3VzZUVkaXRvcl9sYWJlbCddPSc8c3Ryb25nPkVkaXRvciBha3RpdmllcmVuPC9zdHJvbmc+JzskbGFuZ1sndXNlRWRpdG9yX29wJ109JzxoMT5UdXJuIG9uIEVkaXRvcjwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHN3aWxsIGhlbHAgeW91IHNlZSB0aGUgY29kZSB5b3VyIHdvcmtpbmcgd2l0aC4gIEl0IGhpbnRzIHRvIGNvcnJlY3Qgc3ludGF4IHZpYSBoaWdobGlnaHRpbmcuPC9oMz4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlVGl0bGUnXT0nQ1NTLUJpbGRlciB2b3JsYWRlbic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VfbGFiZWwnXT0nPHN0cm9uZz5DU1MgQmlsZGVyIHZvcmxhZGVuIGFrdGl2ZXJlbjwvc3Ryb25nPic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXT0nPGgxPkNTUyBCaWxkZXIgdm9ybGFkZW48L2gxPg0KPGgzPldlbm4gU2llIElociBTeXN0ZW0ga29ycmVrdCBlaW5nZXN0ZWxsdCBoYWJlbiwgZXJyZWljaHQgZGllc2UgT3B0aW9uIGVpbmVuIHNjaG5lbGxlbiBwYXJhbGxlbGVuIERvd25sb2FkIGFsbGVyIEVsZW1lbnRlLjwvaDM+JzskbGFuZ1snZ2xvYmFsdXJsJ109JzxoMT5TZXQgdGhlIHJvb3QgVVJMPC9oMT4NCjxoMz5Vc2VkIGZvciB3aGVuIHlvdSBuZWVkIFNTTCBzdXBwb3J0IG9yIHdhbnQgdG8gcHVzaCB0aGUgc2NyaXB0cyB0byBhIHN1YmRvbWFpbiB0byBsb3NlIHRoZSBuZWVkbGVzIGNvb2tpZXMuPC9oMz4nOyRsYW5nWydzbWFydHlPbl9sYWJlbCddPSc8c3Ryb25nPlByb2Nlc3MgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gZmllbGRzJzskbGFuZ1snc21hcnR5T24nXT0nPGgxPlByb2Nlc3MgU21hcnR5IGRhdGE8L2gxPg0KPGgzPldpdGggdGhpcyB0dXJuZWQgb24geW91IGNhbiBzZXQgdGhlIGJ1dHRvbiBmaWVsZHMgd2l0aCB0aGUgdmFsdWVzIHBhc3NlZCBieSBvdGhlciBtb2R1bGVzIHN1Y2ggYXMgUHJvZHVjdHMgb3IgQ2F0YWxvZ2VyPC9oMz4nOyRsYW5nWydmaWxlVGltZV9jc3NfdXJsc19sYWJlbCddPSc8c3Ryb25nPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvc3Ryb25nPic7JGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzJ109JzxoMT5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L2gxPg0KPGgzPlRoaXMgaXMgZG9uZSBieSBhZGRpbmcgYSBmaWxlIGNyZWF0aW9uIHRpbWUgYXQgdGhlIGVuZCBvZiBhIGZpbGUuICBUdXJuaW5nIHRoaXMgb24gd2lsbCBhZGQgdGhpcyB0byBhbGwgbG9jYWwgdXJscy4gKENTUyBvbmx5IGF0bSkgLU5vdGhpbmcgaXMgZG9uZSB0byBob3RsaW5rczwvaDM+JzskbGFuZ1sndGVtcGxhdGUzJ109J0hpZ2hlc3QgKG5vIHJlYWRhYmlsaXR5LCBzbWFsbGVzdCBzaXplKSc7JGxhbmdbJ3RlbXBsYXRlMiddPSdIaWdoIChtb2RlcmF0ZSByZWFkYWJpbGl0eSwgc21hbGxlciBzaXplKSc7JGxhbmdbJ3RlbXBsYXRlMSddPSdTdGFuZGFyZCAoYmFsYW5jZSBiZXR3ZWVuIHJlYWRhYmlsaXR5IGFuZCBzaXplKSc7JGxhbmdbJ3RlbXBsYXRlMCddPSdMb3cgKGhpZ2hlciByZWFkYWJpbGl0eSknOyRsYW5nWyd0ZW1wbGF0ZUMnXT0nQ3VzdG9tIChlbnRlciBiZWxvdyknOyRsYW5nWydtZXJnZV9zZWxlY3RvcnMwJ109J0RvIG5vdCBjaGFuZ2UgYW55dGhpbmcnOyRsYW5nWydtZXJnZV9zZWxlY3RvcnMxJ109J09ubHkgc2VwZXJhdGUgc2VsZWN0b3JzIChzcGxpdCBhdCAsKSc7JGxhbmdbJ21lcmdlX3NlbGVjdG9yczInXT0nTWVyZ2Ugc2VsZWN0b3JzIHdpdGggdGhlIHNhbWUgcHJvcGVydGllcyAoZmFzdCknOyRsYW5nWydvcHRpbWlzZV9zaG9ydGhhbmRzMCddPSdEb24mIzAzOTt0IG9wdGltaXNlJzskbGFuZ1snb3B0aW1pc2Vfc2hvcnRoYW5kczEnXT0nU2FmZSBvcHRpbWlzYXRpb25zJzskbGFuZ1snb3B0aW1pc2Vfc2hvcnRoYW5kczInXT0nQWxsIG9wdGltaXNhdGlvbnMnOyRsYW5nWydpbnNlcnRjb2RlJ109J0luc2VydCBDb2RlJzskbGFuZ1snb3B0aW1pc2Vjb2RlJ109J09wdGltaXNlIENvZGUnOyRsYW5nWydSZW1vdmVCYWNrc2xhc2hlcyddPSdSZW1vdmUgdW5uZWNlc3NhcnkgYmFja3NsYXNoZXMnOyRsYW5nWydVcHBlcmNhc2UnXT0nVXBwZXJjYXNlJzskbGFuZ1snTG93ZXJjYXNlJ109J0xvd2VyY2FzZSc7JGxhbmdbJ05vbmUnXT0nTm9uZSc7JGxhbmdbJ0NvbXByZXNzRm9udCddPSdDb21wcmVzcyBmb250LXdlaWdodCc7JGxhbmdbJ2xvd2VyY2FzZV9YSFRNTF9ub3RlJ109J2xvd2VyY2FzZSBlbGVtZW50bmFtZXMgbmVlZGVkIGZvciBYSFRNTCc7JGxhbmdbJ2xvd2VyY2FzZV90aXRsZSddPSdMb3dlcmNhc2Ugc2VsZWN0b3JzJzskbGFuZ1snQ29tcHJlc3NDb2xvcnMnXT0nQ29tcHJlc3MgY29sb3JzJzskbGFuZ1snT3B0aW1pc2VTaG9ydGhhbmRzJ109J09wdGltaXNlIHNob3J0aGFuZHMnOyRsYW5nWydSZWdyb3VwU2VsZWN0b3JzJ109J1JlZ3JvdXAgc2VsZWN0b3JzJzskbGFuZ1snU29ydFByb3BlcnRpZXMnXT0nU29ydCBQcm9wZXJ0aWVzJzskbGFuZ1snU29ydFNlbGVjdG9yc05vdGUnXT0nQXR0ZW50aW9uOiBUaGlzIG1heSBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB5b3VyIENTUyBDb2RlISc7JGxhbmdbJ1NvcnRTZWxlY3RvcnMnXT0nU29ydCBTZWxlY3RvcnMgKGNhdXRpb24pJzskbGFuZ1snUHJlc2VydmVDU1NOb3RlJ109J1NhdmUgY29tbWVudHMsIGhhY2tzLCBldGMuIE1vc3Qgb3B0aW1pc2F0aW9ucyBjYW4gKm5vdCogYmUgYXBwbGllZCBpZiB0aGlzIGlzIGVuYWJsZWQuJzskbGFuZ1snUHJlc2VydmVDU1MnXT0nUHJlc2VydmUgQ1NTJzskbGFuZ1snQ3VzdG9tVGVtcGxhdGUnXT0nQ3VzdG9tIHRlbXBsYXRlJzskbGFuZ1snTW9yZUluZm8nXT0nTW9yZSBpbmZvJzskbGFuZ1snQ29tcHJlc3Npb25MYXlvdXQnXT0nQ29tcHJlc3Npb24mbmJzcDsoY29kZSZuYnNwO2xheW91dCknOyRsYW5nWydvcF9ub3RlJ109JzxzdHJvbmc+Tm90ZTwvc3Ryb25nPiB5b3UgaGF2ZSB0byBzYXZlIHRvIGNvbW1pdCB0aGlzIGNoYW5nZS4gPHN0cm9uZz5BbHNvPC9zdHJvbmc+IFRoaXMgaGFzIG5vIGJlYXJpbmcgb24gdGhlIGZpbmFsIGNvbXByZXNzaW9uLiAgVGhpcyBpcyBmb3IgeW91ciB3b3JrYWJpbGl0eSBvZiB0aGUgc2NyaXB0IGZvciB5b3UgYW5kIHlvdXIgdGVhbS4nOyRsYW5nWydlZGl0J109J0JlYXJiZWl0ZW4nOyRsYW5nWydkZWxldGUnXT0nTCZvdW1sO3NjaGVuJzskbGFuZ1snQ2xvc2UnXT0nU2NobGllJnN6bGlnO2VuJzskbGFuZ1snT3BlbiddPScmT3VtbDtmZm5lbic7JGxhbmdbJ2RpckVtcHR5J109J09yZG5lciB3YXIgbGVlcic7JGxhbmdbJ2NsZWFuVGVtcCddPSdUZW1wLVZlcnplaWNobmlzIGJlcmVpbmlnZW4/JzskbGFuZ1sndXJUZW1wUGF0aCddPSdJaHIgQ2FjaGUtUGZhZCBpc3QnOyRsYW5nWydMYXN0TW9kJ109J1p1bGV0enQgZ2UmYXVtbDtuZGVydCc7JGxhbmdbJ2NhY2hlRmVycm9yJ109J1NjcmlwdERlcGxveSBrb25udGUgbmljaHQgZGVuIENhY2hlLU9yZG5lciBlcnN0ZWxsZW4sICZ1dW1sO2JlcnByJnV1bWw7ZmVuIFNpZSBkaWUgRGF0ZWliZXJlY2h0aWd1bmdlbiBmJnV1bWw7ciBkYXMgL3VwbG9hZHMtVmVyemVpY2huaXMuJzskbGFuZ1snTmFtZSddPSdOYW1lICc7JGxhbmdbJ0NhbmNlbGVkJ109J1NpZSBoYWJlbiBkZW4gVm9yZ2FuZyBhYmdlYnJvY2hlbi4gQXJiZWl0LCBkaWUgU2llIGVpbmdlZ2ViZW4gaGFiZW4sIGlzdCB2ZXJsb3JlbiBnZWdhbmdlbi4nOyRsYW5nWydCdG5BRERFRCddPSdTaWUgaGFiZW4gc29lYmVuIGVpbiBuZXVlcyBTY3JpcHQgaGluenVnZWYmdXVtbDtndCc7JGxhbmdbJ0J0bkVESVRFRCddPSdTaWUgaGFiZW4gc29lYmVuIGVpbiBleGlzdGllcmVuZGVzIFNjcmlwdCBiZWFyYmVpdGV0JzskbGFuZ1snQnRuREVMRVRFRCddPSdTaWUgaGFiZW4gc29lYmVuIGVpbiBleGlzdGllcmVuZGVzIFNjcmlwdCBlbnRmZXJudCc7JGxhbmdbJ3R5cGVfbGFiZWwnXT0nVHlwJzskbGFuZ1sncmV2aXNpb24nXT0nUmV2aXNpb24gJzskbGFuZ1snaXNFZGl0J109J2JlYXJiZWl0ZXQnOyRsYW5nWydzdGVhbCddPSdTdGVobGVuIFNpZSBkYXMgRG9rdW1lbnQnOyRsYW5nWydnZXRfdGFnJ109J0hvbGVuIFNpZSBzaWNoIGRlbiBUYWcnOyRsYW5nWyd0aWVzdG8nXT0nV2hlcmUgaXMgdGhpcyB1c2VkJzskbGFuZ1snZW10cHlHcm91cCddPSdTaWUgbSZ1dW1sO3NzZW4gZGVyIEdydXBwZSBlaW4gU2NyaXB0IGhpbnp1ZiZ1dW1sO2dlbiwgYmV2b3IgU2llIGVzIGF1ZnJ1ZmVuJzskbGFuZ1snYWxsU2NyaXB0c1VzZWQnXT0nQWxsZSBTY3JpcHRlIHd1cmRlbiB2ZXJ3ZW5kZXQnOyRsYW5nWydOb19TY3JpcHRzJ109J0VzIGV4aXN0aWVyZW4ga2VpbmUgU2NyaXB0ZSc7JGxhbmdbJ05vX0dyb3VwcyddPSdFcyBleGlzdGllcmVuIGtlaW5lIEdydXBwZW4nOyRsYW5nWydmaW5pc2hlZCddPSdHcnVwcGVuZWluc3RlbGx1bmdlbiB3dXJkZW4gZ2VzcGVpY2hlcnQnOyRsYW5nWydwYXN0aW5nJ109J1Bhc3RpbmcgeW91ciBjb2RlIG5vdyc7JGxhbmdbJ3JlZm9ybWF0ZWQnXT0nUmVmb3JtYXRlZCB0aGUgY29kZSc7JGxhbmdbJ2Zvcm1hdGVMb2cnXT0nRm9ybWF0aW5nIExvZyc7JGxhbmdbJ1Byb2NjZXNzaW5nJ109J1ZlcmFyYmVpdHVuZyc7JGxhbmdbJ1NhdmVkJ109J0dlc3BlaWNoZXJ0JzskbGFuZ1snRG9uZSddPSdGZXJ0aWcnOyRsYW5nWydWYWxpZGF0aW5nJ109J1ZhbGlkaWVyZSc7JGxhbmdbJ0dyb3VwdFNldF9sYWJlbCddPSdHcnVwcGVuLU5hbWUnOyRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ109J0FydCBkZXIgU2NyaXB0ZSc7JGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddPSdadXNhbW1lbmdlbGVndGUgU2NyaXB0ZSc7JGxhbmdbJ0xJTkUnXT0nWkVJTEUnOyRsYW5nWydUWVBFJ109J1RZUCc7JGxhbmdbJ1NVQlRZUEUnXT0nVU5URVJUWVAnOyRsYW5nWydTVFJJTkcnXT0nU1RSSU5HICc7JGxhbmdbJ01FU1NBR0UnXT0nTkFDSFJJQ0hUJzskbGFuZ1snTEVWRUwnXT0nU1RVRkUnOyRsYW5nWydOb3RlcyddPSdIaW53ZWlzZSc7JGxhbmdbJ1dhcm5pbmdzJ109J1dhcm51bmdlbic7JGxhbmdbJ0Vycm9ycyddPSdGZWhsZXInOyRsYW5nWydoaWRkZW4nXT0ndmVyc3RlY2t0JzskbGFuZ1snU2NyaXB0J109J1NjcmlwdCAnOyRsYW5nWydFVVJMUyddPSdFeHRyYWhpZXJ0ZSBVUkxzJzskbGFuZ1snUkNTUyddPSdHZXJlbmRlcnRlcyBDU1MnOyRsYW5nWydTQ1NTJ109J0NTUy1TdHJ1a3R1cic7JGxhbmdbJ0ZDT05UJ109J0RhdGVpLUluaGFsdCc7JGxhbmdbJ2lVUkwnXT0nQmlsZC1VUkwnOyRsYW5nWydUeXBlJ109J1R5cCc7JGxhbmdbJ1NpemUnXT0nR3Imb3VtbDsmc3psaWc7ZSc7JGxhbmdbJ1N0YXR1cyddPSdTdGF0dXMnOyRsYW5nWydob3RsaW5rJ109JzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gc2NoZWludCBlaW4gSG90bGluayB6dSBzZWluLic7JGxhbmdbJ0Jyb2tlbmxpbmsnXT0nVW5nJnV1bWw7bHRpZ2VyIExpbmsnOyRsYW5nWydOT2Nzc0knXT0nS2VpbmUgQ1NTLUJpbGRlcic7JGxhbmdbJ1llc1ZBbGFzdGVyJ109JzxzdHJvbmc+KiogeW91IGFyZSBmaWx0ZXJpbmcgZXJyb3JzIGFuZCBtYXkgaGF2ZSBmaWx0ZXJlZCBhIHJlYWwgZXJyb3IgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBpZD0id2hpY2hGaWx0ZXIiPih3aGljaD8pPC9hPjwvc3Ryb25nPic7JGxhbmdbJ3JlbG9hZF9hbGVydCddPSdZb3UgYXJlIHJlbG9hZGluZyB0aGUgc3JjaXB0IGZyb20gdGhlIGxhc3Qgc2F2ZSBwb2ludC4gIFlvdSBoYXZlIHNhdmVkIHRoZSBzY3JpcHQgYWxyZWFkeSBhbmQgaWYgeW91IG5lZWQgdG8gZ28gYmFjayB0byB0aGUgdmVyc2lvbiB3aGVuIHlvdSBmaXJzdCBjYW1lIGluIHRvIGVkaXQgcGxlYXNlIGNoZWNrIHlvdXIgcmV2aXNpb24gaGlzdG9yeS4nOyRsYW5nWydzaW5nbGVTY3JpcHQnXT0nSXN0IGluIGVpbnplbG5lbiBTY3JpcHRlbic7JGxhbmdbJ0NsZWFySW1nJ109J0FrdHVlbGxlcyBCaWxkIGwmb3VtbDtzY2hlbic7JGxhbmdbJ0ZpbmlzaCddPSdGZXJ0aWdzdGVsbGVuJzskbGFuZ1sncmV2ZXJ0J109J0FrdHVhbGlzaWVyZW4nOyRsYW5nWydmb3JtX2NhbmNlbCddPSdBYmJyZWNoZW4nOyRsYW5nWydTYXZlJ109J1NwZWljaGVybic7JGxhbmdbJ2RvbmUnXT0nRmVydGlnJzskbGFuZ1snYWRkJ109J0hpbnp1ZiZ1dW1sO2dlbic7JGxhbmdbJ2NvcHknXT0nS29waWVyZW4nOyRsYW5nWydSRU9SREVSJ109J05ldSBvcmRuZW4nOyRsYW5nWydmb3JtX3N1Ym1pdCddPSdFaW5zdGVsbHVuZ2VuIHNwZWljaGVybic7JGxhbmdbJ21vZF9wcmVmc190aXRsZSddPSdNb2R1bC1FaW5zdGVsbHVuZ2VuJzskbGFuZ1sncHJlZnN1cGRhdGVkJ109J01vZHVsLUVpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJ0Lic7JGxhbmdbJ29wdGlvbnN1cGRhdGVkJ109J09wdGlvbmVuIGFrdHVhbGlzaWVydCc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzskbGFuZ1snYXJleW91c3VyZV9Db3B5J109J0R1IGJpc3QgZGFiZWksIGVpbmUgS29waWUgenUgZXJzdGVsbGVuJzskbGFuZ1snYXJleW91c3VyZV9zdGVhbCddPSdZb3UgYXJlIGFib3V0IHRvIHN0ZWFsIGEgc2NyaXB0IGZvcm0gc29tZW9uZSB0aGF0IGFwcGVhcnMgdG8gYmUgZWRpdGluZyB0aGlzLic7JGxhbmdbJ2ltcG9ydEV4cG9ydCddPSdJbXBvcnQvRXhwb3J0JzskbGFuZ1snc3RhcnRFeHBvcnQnXT0nRXhwb3J0IHN0YXJ0ZW4nOyRsYW5nWydzdGFydEltcG9ydCddPSdJbXBvcnQgc3RhcnRlbic7JGxhbmdbJ3N0YXJ0UHVzaCddPSdQdXNoIHNpdGUnOyRsYW5nWyd0aXRsZV9vdmVydmlldyddPScmVXVtbDtiZXJzaWNodCc7JGxhbmdbJ3RpdGxlX2V4cG9ydCddPSdFeHBvcnRpZXJlbic7JGxhbmdbJ3RpdGxlX2ltcG9ydCddPSdJbnN0YWxsaWVyZW4nOyRsYW5nWydleHBvcnRfZXhwbGFpbiddPSc8cD5NYWtlIHNvbWUgY2hlY2tzIGFuZCBwcmVwYXJhdGlvbnMgYmVmb3JlIHlvdSBzdGFydCB0byBleHBvcnQgeW91ciBzZXR0aW5ncy48L3A+IDx1bD48bGk+MS4gRmlyc3Qgb2YgYWxsIGludmVudCBhIDxzdHJvbmc+dW5pcXVlIG5hbWU8L3N0cm9uZz4gZm9yIHlvdXIgcGFja2FnZS4gRG8gbm90IGNob29zZSA8c3Ryb25nPk15IFBhY2thZ2U8L3N0cm9uZz4uIFRoZSBiZXR0ZXIgZXhhbXBsZSBmb3IgdGhlIHBhY2thZ2UgbmFtZSBjYW4gYmUgPHN0cm9uZz5pQ01TIFRydWUgQ29sb3I8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB0aGF0IGlzIHVuaXF1ZSB0byB5b3UgYW5kIGNhbm5vdCBiZSBvY2Nhc2lvbmFsbHkgdXNlZCBieSBvdGhlciBkZXNpZ25lcnMuPC9saT48bGk+Mi4gQ2hlY2sgdGhhdCBhbGwgZmlsZXMgaW5jbHVkZWQgaW4gcGFja2FnZSBhcmUgcGxhY2VkIGluIHRoZSBzdWItZm9sZGVyIG9mIHRoZSBmb2xkZXIgPHN0cm9uZz4vdXBsb2Fkczwvc3Ryb25nPi4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gZXhwb3J0IGZpbGVzIHRoYXQgYXJlIHN0b3JlZCBpbiBvdGhlciBmb2xkZXJzLiBJdCBpcyBhbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIG9yZ2FuaXplIHlvdXIgZmlsZXMgdGhpcyB3YXkuIERvIG5vdCBzcHJlYWQgeW91ciBjdXN0b20gZmlsZXMgdGhyb3VnaG91dCBpbnN0YWxsYXRpb24gbWFraW5nIGl0IGFsc21vc3QgaW1wb3NzaWJsZSB0byBiYWNrdXAgY3VzdG9tIGNoYW5nZXMuPC9saT48bGk+My4gQ2hlY2sgdGhlIG5hbWUgb2YgYWxsIGVsZW1lbnRzIGludGVuZGVkIGZvciB0aGUgcGFja2FnZTogdGVtcGxhdGVzLCBzdHlsZXNoZWV0cywgcGFnZXMsIGdsb2JhbCBjb250ZW50IGJsb2NrcywgdXNlciBkZWZpbmVkIHRhZ3MsIG1vZHVsZSB0ZW1wbGF0ZXMuIE1ha2Ugc3VyZSB0aGF0IDxzdHJvbmc+YWxsIHRoZW0gaGF2ZSB1bmlxdWUgbmFtZXM8L3N0cm9uZz4gaGVscGluZyB0byBpZGVudGlmeSB0aGUgcGFja2FnZSB0aGV5IGJlbG9uZyB0by4gRS4gZy4gYmFkIG5hbWUgZm9yIGEgc3R5bGVzaGVldCB3b3VsZCBiZSA8c3Ryb25nPkxheW91dDwvc3Ryb25nPiwgYmV0dGVyIDxzdHJvbmc+aUNNUyBMYXlvdXQ8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB1bmlxdWUgdG8geW91ciBhbmQvb3IgdG8gdGhlIHBhY2thZ2UgeW91IGNyZWF0ZS48L2xpPjxsaT40LiBXaGVuIHlvdSBhcmUgcmVhZHkgc3RhcnQgdGhlIGV4cG9ydCBieSBjbGlja2luZyBvbiB0aGUgYnV0dG9uIGJlbG93LjwvbGk+PC91bD4nOyRsYW5nWydpbXBvcnRfZXhwbGFpbiddPSdTZWxlY3QgYSBYTUwgRXhwb3J0IGZpbGUoKikgdG8gdXBsb2FkLic7JGxhbmdbJ2V4YW1wbGVzJ109JygqKSBZb3UgbWF5IGZpbmQgdGVtcGxhdGVzICVzIGhlcmUgJXMhJzskbGFuZ1snc3RhcnRfZXhwb3J0J109J0NyZWF0ZSBuZXcgcGFja2FnZSc7JGxhbmdbJ2NvbnRpbnVlX2V4cG9ydCddPSdDb250aW51ZSc7JGxhbmdbJ2NvbnRpbnVlX2ltcG9ydCddPSdDb250aW51ZSc7JGxhbmdbJ2ltcG9ydCddPSdJbXBvcnRpZXJlbic7JGxhbmdbJ2Zvb3Rlcl9ub3RpY2UnXT0nPGgyPkF0dGVudGlvbiEgUGxlYXNlIHVzZSB0aGlzIGJldGEgcGFja2FnZSB3aXRoIGNhdXRpb24gdW50aWwgdGhlIHN0YWJsZSByZWxlYXNlIGlzIHRoZXJlLiBUaGlzIHBhY2thZ2Ugd2lsbCBvdmVyd3JpdGUgZmlsZXMgYW5kIGNhbiBkYW1hZ2UgdGFyZ2V0IGRhdGFiYXNlITwvaDI+JzskbGFuZ1sndGl0bGVfaW1wb3J0X3N0ZXAxJ109J0V4cG9ydCBmaWxlIHByZS1pbnN0YWxsIHJldmlldyc7JGxhbmdbJ2hlbHBfaW1wb3J0X3N0ZXAxJ109J1RoZSB1cGxvYWRlZCBFeHBvcnQgZmlsZSBjb250YWlucyBmb2xsb3dpbmc6JzskbGFuZ1sndGl0bGVfaW1wb3J0X3N0ZXAyJ109J1N5c3RlbSBDaGVjayBhbmQgUHJlcCc7JGxhbmdbJ2ltcG9ydF9zdGVwMl9jbXNtcyddPSdCZWxvdyB5b3UgY2FuIHNlZSB0aGUgdmVyc2lvbnMgb2YgQ01TTVMgYW5kIHRoZSBtb2R1bGVzIHRoYXQgdGhlIEV4cG9ydCByZXF1aXJlcy4nOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwMiddPScgSWYgb25lIG9yIG1vcmUgbW9kdWxlcyBhcmUgbm90IGluc3RhbGxlZCBhbmQgeW91IGNob3NlIG5vdCB0byBpbnN0YWxsIHRoZW0sIHRoZW4gdGhlaXIgbW9kdWxlIHRlbXBsYXRlcyBhbmQgc2V0dGluZ3Mgd2lsbCBub3QgYmUgaW5zdGFsbGVkLiBJZiB2ZXJzaW9ucyBvZiB0aGUgbW9kdWxlIGRpZmZlciB0aGVyZSBpcyBubyB3YXJyYW50eSB0aGF0IGltcG9ydCBzdWNjZWVkcy4gPHN0cm9uZz5DYXV0aW9uITwvc3Ryb25nPiBJZiB0aGVyZSBhcmUgd2FybmluZ3Mgb24gdGhpcyBwYWdlIHlvdSBhcmUgPHN0cm9uZz5zdHJvbmdseTwvc3Ryb25nPiByZWNvbW1lbmRlZCB0byBiYWNrdXAgeW91ciBmaWxlIHN5c3RlbSBBTkQgZGF0YWJhc2UgQkVGT1JFIHlvdSBzdGFydCBwYWNrYWdlIGltcG9ydC4nOyRsYW5nWyd0aXRsZV9pbXBvcnRfc3RlcDMnXT0nQ2hlY2sgc2l0ZSBjb25mbGljdHMnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwMyddPSdCZWxvdyB5b3UgY2FuIHNlZSBhbGwgY29tcG9uZW50cyBpbmNsdWRlZCBpbiB0aGUgRXhwb3J0LiBJZiB5b3Ugc2VlIGEgd2FybmluZyBzaWduIGJlc2lkZSB0aGUgY29tcG9uZW50LCBpdCBtZWFucyB0aGF0IHlvdSBhbHJlYWR5IGhhdmUgYSBjb21wb25lbnQgd2l0aCB0aGlzIG5hbWUgaW4geW91ciBpbnN0YWxsYXRpb24uIElmIHlvdSBwcm9jZWVkIHlvdXIgY29tcG9uZW50IHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgcGFja2FnZSB2ZXJzaW9uLiBDYXV0aW9uISBZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byByZXN0b3JlIHlvdXIgY29tcG9uZW50cy4gUGxlYXNlIGNyZWF0ZSBhIGZpbGUgQU5EIGRhdGFiYXNlIGJhY2t1cCBpZiB5b3UgYXJlIG5vdCBzdXJlLic7JGxhbmdbJ3RpdGxlX2ltcG9ydF9zdGVwNCddPSdJbXBvcnQgYmVlbmRldCEnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwNCddPScnOyRsYW5nWydpbXBvcnRSZW1vdmFsJ109J1NlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gcmVtb3ZlIGZyb20gdGhlIGltcG9ydCBwcm9jZXNzLiAgJXMgTk9URTolcyBSZW1vdmluZyBhbnl0aGluZyBtYXkgY2F1c2UgdGhlIEV4cG9ydCB0byBiZWNvbWUgdW5zdGFibGUuICBCZSBzdXJlIHlvdSYjMDM5O3JlIGJhY2t1cC4nOyRsYW5nWydwYXNzZWQnXT0nJXMgUGFzc2VkICVzICVzIGNvcnJlY3RseSAlcyc7JGxhbmdbJ2ZhaWwnXT0nJXMgRmFpbGVkICVzICVzIGNoZWNrIGxvZ3MgKHNlcnZlciBhcyB3ZWxsKSAlcyc7JGxhbmdbJ25vZmlsZSddPSdLZWluIEZlaGxlciB3JmF1bWw7aHJlbmQgZGVzIFVwbG9hZHMhJzskbGFuZ1sndXBsb2FkZmFpbGVkJ109J1VwbG9hZGluZyBvZiB0aGUgZmlsZSBmYWlsZWQuJzskbGFuZ1snaW1wb3J0T2snXT0nVGhlIGltcG9ydCB3YXMgc3VjY2Vzc2Z1bCEgIERvdWJsZSBjaGVjayBhbGwgdGhlIHBhcnRzIGFuZCBrZWVwIHlvdXIgYmFja3VwIGhhbmR5IHRpbGwgeW91ciBzdXJlIHRoaW5ncyBhcmUgc3RhYmxlLic7JGxhbmdbJ2V4dF9UTVAnXT0nU2VsZWN0aW5nIHRlbXBsYXRlcyc7JGxhbmdbJ2hlbHBfZXh0X1RNUCddPSdTZWxlY3QgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIE5PVEUgYW4gRXhwb3J0IGNhbiBvbmx5IGluY2x1ZGUgcGFnZXMgdGhhdCB1c2VkIGJ5IHRoZSB0ZW1wbGF0ZXMgc2VsZWN0ZWQgaW4gdGhpcyBzdGVwLic7JGxhbmdbJ2V4dF9DU1MnXT0nU2VsZWN0aW5nIHN0eWxlc2hlZXRzJzskbGFuZ1snaGVscF9leHRfQ1NTJ109J1NlbGVjdCBzdHlsZXNoZWV0cyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4geW91ciBFeHBvcnQuIElmIHN0eWxlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRlbXBsYXRlcyBzZWxlY3RlZCBpbiB0aGUgbGFzdCBzdGVwLCB0aGlzIGFzc29jaWF0aW9uIHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiBhcyB3ZWxsLic7JGxhbmdbJ2V4dF9QRyddPSdTZWxlY3RpbmcgcGFnZXMnOyRsYW5nWydoZWxwX2V4dF9QRyddPSdTZWxlY3QgcGFnZXMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIEV4cG9ydC4gIFBhZ2VzIHdpbGwgYmUgaW5zdGFsbGVkIGludG8gdGhlIHRhcmdldCBpbnN0YWxsYXRpb24gd2l0aCBoaWVyYXJjaHkgcGF0aHMgcHJlc2VydmVkLiBUaGVyZSBhcmUgMyBvdXRjb21lczogPHVsPjxsaT4xLiBUaGUgcGFnZSB3aWxsIGJlIGNyZWF0ZWQgaWYgdGhlIGV4YWN0IGhpZXJhcmNoeSBwYXRoIGV4aXN0cyBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiBvciB5b3UgaW5jbHVkZSB0aGUgcGFnZXMgZnJvbSB0aGUgaGllcmFyY2h5IGludG8geW91ciBFeHBvcnQuPC9saT48bGk+Mi4gVGhlIHBhZ2Ugd2lsbCBiZSBvdmVyd3JpdHRlbiBvbiB0aGUgdGFyZ2V0IHN5c3RlbSBpZiBpdCBpcyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgaGllcmFyY2h5IHBhdGggb24gdGhlIHRhcmdldCBzeXN0ZW0uPC9saT48bGk+My4gVGhlIHBhZ2Ugd2lsbCBOT1QgYmUgaW1wb3J0ZWQgaWYgdGhlcmUgaXMgbm8gc3VjaCBoaWVyYXJjaHkgcGF0aCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbi4gVGhlIHVzZXIgd2lsbCBzdGlsbCBiZSBhYmxlIHRvIGNyZWF0ZSB0aGUgcmVxdWlyZWQgaGllcmFyY2h5IHByaW9yIHRvIGltcG9ydGluZyB0aGUgRXhwb3J0LjwvbGk+PC91bD48c3Ryb25nPk5PVEU6IFRoZSBsaXN0IGlzIGZpbGl0ZXJlZCB0byB0aGUgcGFnZXMgd2hlcmUgdGhlIHRlbXBsYXRlcyB0aGV5IHVzZSBhcmUgc2VsZWN0ZWQgZm9yIGV4cG9ydC4gIFlvdSBtYXkgZ28gYmFjayB0byBzZWxlY3QgbW9yZS48L3N0cm9uZz48YnIvPic7JGxhbmdbJ2V4dF9NT0RURU1QTEFURSddPSdTZWxlY3RpbmcgbW9kdWxlIHRlbXBsYXRlcyc7JGxhbmdbJ2hlbHBfZXh0X01PRFRFTVBMQVRFJ109J1NlbGVjdCBtb2R1bGUgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBtb2R1bGVzIGFyZSBub3QgaW5zdGFsbGVkIGluIHRhcmdldCBpbnN0YWxsYXRpb24gb3IgdGhlIHZlcnNpb24gZGV2aWF0ZXMgZnJvbSBvbmUgeW91IHVzZSBoZXJlLCB0aGUgdXNlciB3aWxsIGJlIHByb3ZpZGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIG1lc3NhZ2Ugd2hhdCBtb2R1bGUgaXMgbWlzc2luZyBhbmQgdGhlIHZlcnNpb24gb2YgdGhlIG1vZHVsZSB5b3UgdXNlIGhlcmUuJzskbGFuZ1snZXh0X0dDQiddPSdTZWxlY3RpbmcgZ2xvYmFsIGNvbnRlbnQgYmxvY2tzIChHQ0IpJzskbGFuZ1snaGVscF9leHRfR0NCJ109J1NlbGVjdCBHQ0IgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIEV4cG9ydC4gSWYgdGhlIEdDQiB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgdGFyZ2V0IHN5c3RlbSBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLic7JGxhbmdbJ2V4dF9VRFQnXT0nU2VsZWN0aW5nIHVzZXIgZGVmaW5lZCB0YWdzIChVRFQpJzskbGFuZ1snaGVscF9leHRfVURUJ109J1NlbGVjdCBVRFRzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBVRFQgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMgb24gdGhlIHRhcmdldCBzeXN0ZW0gaXQgd2lsbCBiZSBvdmVyd3JpdHRlbi4nOyRsYW5nWydleHRfRklMRSddPSdTZWxlY3RpbmcgZmlsZXMnOyRsYW5nWydoZWxwX2V4dF9GSUxFJ109J1NlbGVjdCBmaWxlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGlzIEV4cG9ydC4gVGhpcyBsaXN0IGlzIGxpbWl0ZWQgdG8gdGhlIGZpbGVzIGluIHRoZSBmb2xkZXIgPHN0cm9uZz4vdXBsb2Fkczwvc3Ryb25nPi4gIFRoZSBtb3JlIGZpbGVzIGNob29zZW4gdGhlIGxhcmdlciB0aGUgRXhwb3J0LiAgT3ZlcmxvYWRpbmcgd2l0aCBtYW55IGZpbGVzIG1heSBjYXVzZSAmcXVvdDtvdXQgb2YgbWVtb3J5JnF1b3Q7IGVycm9ycyBkdXJpbmcgZXhwb3J0IG9yIGltcG9ydCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbi4nOyRsYW5nWydleHRfUFJFRiddPSdTZWxlY3QgbW9kdWxlcyYjMDM5OyBzZXR0aW5ncyc7JGxhbmdbJ2hlbHBfZXh0X1BSRUYnXT0nU2VsZWN0IHRoZSBtb2R1bGVzIGZvciB3aGljaCB0aGUgc2V0dGluZ3Mgc2hvdWxkIGJlIGluY2x1ZGVkLiBVc2Ugd2l0aCBjYXV0aW9uIGFzIGFsbCBtb2R1bGUgc2V0dGluZ3Mgd2lsbCBiZSBvdmVyd3JpdHRlbiBpbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbi4gT25seSAgY2hvb3NlIG1vZHVsZSBzZXR0aW5ncyBpZiB0aGUgRXhwb3J0IHJlbGllcyBvbiBjZXJ0YWluIHNldHRpbmcgYW5kIHdpbGwgZmFpbCBpZiBpdCBpcyBub3Qgc2V0IGFzIHJlcXVpcmVkLic7JGxhbmdbJ2V4dF9JTkZPJ109J1NldHRpbmcgRXhwb3J0IGluZm9ybWF0aW9uJzskbGFuZ1snaGVscF9leHRfSU5GTyddPSdFbnRlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIEV4cG9ydC4gPHN0cm9uZz5FeHBvcnQgbmFtZSBhbmQgRXhwb3J0IHZlcnNpb24gYXJlIHJlcXVpcmVkIGZpZWxkcyE8L3N0cm9uZz4gVXNlIG5vdGVzIHRvIGdpdmUgdXNlciBpbnN0cnVjdGlvbnMgb3Igc3VwcG9ydCBpbmZvcm1hdGlvbi4nOyRsYW5nWydleHRfRklORk8nXT0nU2V0dGluZyBFeHBvcnQgaW5mb3JtYXRpb24nOyRsYW5nWydoZWxwX2V4dF9GSU5GTyddPSdFbnRlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIEV4cG9ydCBhbmQgY2hvb3NlIHNvbWUgb3B0aW9ucy4gPHN0cm9uZz5FeHBvcnQgemlwIG5hbWUgYW5kIEV4cG9ydCB2ZXJzaW9uIGFyZSByZXF1aXJlZCBmaWVsZHMhPC9zdHJvbmc+IFVzZSBub3RlcyB0byBjcmVhdGUgYSByZWFkbWUgZmlsZSB3aXRoIHVzZXIgaW5zdHJ1Y3Rpb25zIG9yIHN1cHBvcnQgaW5mb3JtYXRpb24uJzskbGFuZ1snZXh0X1BBQ0snXT0nUmV2aWV3aW5nIEV4cG9ydCc7JGxhbmdbJ2hlbHBfZXh0X1BBQ0snXT0nRXZlcnl0aGluZyBjaGVja3Mgb3V0LiAgUGxlYXNlIHJldmlldyB0aGUgRXhwb3J0IGJlbG93IGFuZCBjbGljayB0byBkb3dubG9hZC4nOyRsYW5nWyd2aWV3J109J3ZpZXcnOyRsYW5nWydub19jb21wb25lbnRzJ109JzxoMyBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDs+Tm90aGluZyBoYXMgYmVlbiBmb3VuZC48L2gzPjxwIGFsaWduPSZxdW90O2NlbnRlciZxdW90Oz5Ob3RlOiB0aGlzIGxpc3QgY2FuIGJlIGxpbWl0ZWQgYmFzZWQgb24gdGhlIHByZXZpb3VzIHNlbGVjdGlvbnMuPGJyLz5DbGljayBvbiAmcXVvdDtDb250aW51ZSZxdW90OyB0byBnZXQgdG8gdGhlIG5leHQgc3RlcC48L3A+JzskbGFuZ1sndGVtcGxhdGVzJ109J1RlbXBsYXRlcyAnOyRsYW5nWydzdHlsZXNoZWV0cyddPSdTdHlsZXNoZWV0cyAnOyRsYW5nWydhY3Rpb24nXT0nU2VsZWN0IEFsbCc7JGxhbmdbJ2xpc3QnXT0nRXhwb3J0IENvbnRlbnRzJzskbGFuZ1sncGFnZXMnXT0nU2VpdGVuJzskbGFuZ1snbW9kdWxldGVtcGxhdGVzJ109J01vZHVsZSB0ZW1wbGF0ZXMnOyRsYW5nWydnYmxzJ109J0dsb2JhbCBDb250ZW50IEJsb2NrcyAoR0NCKSc7JGxhbmdbJ3VkdHMnXT0nVXNlciBEZWZpbmVkIFRhZ3MgKFVEVCknOyRsYW5nWydmaWxlcyddPSdGaWxlcyc7JGxhbmdbJ21vZHVsZXNldHRpbmdzJ109J1NldHRpbmdzIGZvciBtb2R1bGVzJzskbGFuZ1snbW9kdWxlbmFtZSddPSdNb2R1bGUgTmFtZSc7JGxhbmdbJ21vZHVsZSddPSdNb2R1bGUnOyRsYW5nWydub3NlbGVjdGlvbiddPScqIE5vdGhpbmcgaGFzIGJlZW4gc2VsZWN0ZWQuJzskbGFuZ1sncHJvbXB0X3BhY2thZ2VuYW1lJ109J0V4cG9ydCBOYW1lJzskbGFuZ1snaW5mb19wYWNrYWdlbmFtZSddPSdXaXRoIGFuIEV4cG9ydCBuYW1lLCB0cnkgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggYW5vdGhlciBleGlzdGluZyBFeHBvcnQgYnkgdXNpbmcgYSB1bmlxdWUgbmFtZSEgJXMgQ2xpY2sgdG8gY2hlY2sgY3VycmVudCBrbm93ZW4gbmFtZXMgJXMnOyRsYW5nWydwcm9tcHRfcGFja2FnZXZlcnNpb24nXT0nRXhwb3J0IFZlcnNpb24nOyRsYW5nWydpbmZvX3BhY2thZ2V2ZXJzaW9uJ109J0VudGVyIHRoZSB2ZXJzaW9uIG9mIHRoZSBFeHBvcnQuIFRoaXMgd2lsbCBoZWxwIHRvIHRyYWNrIGlzc3VlcyBvciBoYW5kbGUgdXBncmFkZXMuICc7JGxhbmdbJ3Byb21wdF9hdXRob3JuYW1lJ109J0F1dG9yIE5hbWUnOyRsYW5nWydpbmZvX2F1dGhvcm5hbWUnXT0nRW50ZXIgeW91ciBuYW1lIGFuZCBjb3B5cmlnaHQuIGllOiA8aT5Kb2huIERvZSBbZG9tYWluLmNvbV08L2k+JzskbGFuZ1sncHJvbXB0X25vdGVzJ109J05vdGl6ZW4nOyRsYW5nWydpbmZvX25vdGVzJ109J0VudGVyIGFueSBhZGRpdGlvbmFsIGluc3RydWN0aW9ucy4gaWU6IGlmIHlvdSBkZWxpdmVyIHRlbXBsYXRlcyBmb3Igc3BlY2lhbCBtb2R1bGUsIHRlbGwgdGhlIHVzZXIgaG93IHRvIGNvbmZpZ3VyZSBpdC4gT3IgdGVsbCB0aGUgdXNlciB3aGVyZSBoZSBjYW4gZ2V0IGhlbHAgZm9yIHRoZSB0aGVtZS4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIHNob3duIG9uIHRoZSBkYXNoYm9hcmQgYWZ0ZXIgdGhlIHRoZW1lIGlzIGluc3RhbGxlZC4nOyRsYW5nWydlbXB0eXBhY2thZ2VuYW1lJ109J0JpdHRlIEV4cG9ydCBOYW1lIGVpbmdlYmVuISc7JGxhbmdbJ2VtcHR5cGFja2FnZXZlcnNpb24nXT0nQml0dGUgRXhwb3J0IFZlcnNpb24gZWluZ2ViZW4hJzskbGFuZ1sncGFja2FnZWluY2x1ZGVzJ109J1RoaXMgRXhwb3J0IGluY2x1ZGVzJzskbGFuZ1snYWNjZXNzZGVuaWVkJ109J1RoZSBmb2xkZXIgdG1wL2NhY2hlIGlzIG5vdCB3cml0YWJsZS4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMhJzskbGFuZ1snd2FybmluZyddPSdDYXV0aW9uISc7JGxhbmdbJ3N1Y2Nlc3MnXT0nT0snOyRsYW5nWydlcnJvciddPSdGYWlsZWQhJzskbGFuZ1sncHJvbXB0X2Ntc21zdmVyc2lvbiddPSdDTVMgTWFkZSBTaW1wbGUnOyRsYW5nWydwcm9tcHRfc2R2ZXJzaW9uJ109J1NjcmlwdERlcGxveSc7JGxhbmdbJ21vZHVsZXZlcnNpb25zJ109J1JlcXVpcmVkIG1vZHVsZXMgYW5kIHZlcnNpb25zJzskbGFuZ1sncmVjb21tZW5kZWQnXT0nJXMgRXhwb3J0IHdhcyBjcmVhdGVkIHdpdGggdmVyc2lvbiAlcyAlcyc7JGxhbmdbJ3JlcXVpcmVkJ109JyVzIEV4cG9ydCByZXF1aXJlcyB0aGUgbW9kdWxlIHZlcnNpb24gJXMuICVzIFRISVMgV0lMTCBiZSBpbnN0YWxsZWQgJXMgJXMnOyRsYW5nWydUTVAnXT0nVGVtcGxhdGVzJzskbGFuZ1snQ1NTJ109J1N0eWxlc2hlZXRzIChhbmQvb3IgZ3JvdXBzKSc7JGxhbmdbJ0pTJ109J0phdmFzY3JpcHRzIChhbmQvb3IgZ3JvdXBzKSc7JGxhbmdbJ1BHJ109J1BhZ2VzJzskbGFuZ1snTU9EVEVNUExBVEUnXT0nTW9kdWxlIHRlbXBsYXRlcyc7JGxhbmdbJ0dDQiddPSdHbG9iYWwgQ29udGVudCBCbG9jayAoR0NCKSc7JGxhbmdbJ1VEVCddPSdVc2VyIERlZmluZWQgVGFncyAoVURUKSc7JGxhbmdbJ0ZJTEUnXT0nRmlsZXMnOyRsYW5nWydQUkVGJ109J01vZHVsZSBzZXR0aW5ncyc7JGxhbmdbJ0lORk8nXT0nWE1MIGJhc2VkIEV4cG9ydCBpbmZvcm1hdGlvbic7JGxhbmdbJ0ZJTkZPJ109J1pJUCBiYXNlZCBFeHBvcnQgaW5mb3JtYXRpb24nOyRsYW5nWydQQUNLJ109J0NyZWF0ZSB0aGUgRXhwb3J0JzskbGFuZ1snV1JUJ109J1dyaXRlIHRoZSBFeHBvcnQnOyRsYW5nWydUTVBfZnJvbnQnXT0nVGVtcGxhdGVzICc7JGxhbmdbJ0NTU19mcm9udCddPSdTdHlsZXNoZWV0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydKU19mcm9udCddPSdKYXZhc2NyaXB0cyAoYW5kL29yIGdyb3VwcyknOyRsYW5nWydQR19mcm9udCddPSdQYWdlcyc7JGxhbmdbJ01PRFRFTVBMQVRFX2Zyb250J109J01vZHVsZSB0ZW1wbGF0ZXMnOyRsYW5nWydHQ0JfZnJvbnQnXT0nR2xvYmFsIENvbnRlbnQgQmxvY2sgKEdDQiknOyRsYW5nWydVRFRfZnJvbnQnXT0nVXNlciBEZWZpbmVkIFRhZ3MgKFVEVCknOyRsYW5nWydGSUxFX2Zyb250J109J0ZpbGVzJzskbGFuZ1snUFJFRl9mcm9udCddPSdNb2R1bGUgc2V0dGluZ3MnOyRsYW5nWydJTkZPX2Zyb250J109J2EgWE1MIGJhc2VkIEV4cG9ydCc7JGxhbmdbJ0ZJTkZPX2Zyb250J109J2EgWklQIGJhc2VkIEV4cG9ydCc7JGxhbmdbJ1BBQ0tfZnJvbnQnXT0nQ3JlYXRlIHRoZSBFeHBvcnQnOyRsYW5nWydXUlRfZnJvbnQnXT0nV3JpdGUgdGhlIEV4cG9ydCc7JGxhbmdbJ3N0ZXBBcnJheSddPSdFeHBvcnQgY29udGFpbnRzJzskbGFuZ1snaW5mb0FycmF5J109J0V4cG9ydCB0eXBlcyc7JGxhbmdbJ0Z1bGxTaXRlUHVzaCddPSdTdGFydCBhIGZ1bGwgcHVzaCB0byBhIG5ldyBzZXJ2ZXIuIGllOiBwdXNoIGZyb20gYSBkZXZlbG9wbWVudCBzZXJ2ZXIgdG8gYSBzdGFnaW5nIHNlcnZlci4nOyRsYW5nWydtb2RkZXNjcmlwdGlvbiddPSdTUEVFRCBZT1VSIFNJVEUgVVAgLi4uISEhISAmYnVsbDsgT3V0cHV0IGR5bmFtaWMgSlMgZmlsZXMgYW5kIENTUyBXSVRIIHNtYXJ0eS4uLiAmYnVsbDsgU2V0IHRoZSBmaWxlcyB0byB1c2UgYSBzdWJkb21haW4uLi4gJmJ1bGw7IGNhY2hlZC4uLiAmYnVsbDsgbWluaWZpZWQuLi4gJmJ1bGw7IERpZCBJIG1lbnRpb24geW91IGNhbiB1c2Ugc21hcnR5IGluIHlvdXIgSlMgYW5kIENTUyBzY3JpcHQhISEhIC0gU2ltcGxlLCBmbGV4aWJsZSEnOyRsYW5nWyd3ZWxjb21lX3RleHQnXT0nPHA+SGFsbG8hPC9wPic7JGxhbmdbJ2hlbHAnXT0nPGxpbmsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IGhyZWY9JnF1b3Q7Li4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyByZWw9JnF1b3Q7c3R5bGVzaGVldCZxdW90Oy8+PGRpdiBjbGFzcz0mcXVvdDtTaW1XcmFwJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PC9iPg0KDQo8ZGl2IGNsYXNzPSZxdW90O1NpbWNvbiZxdW90Oz4gPGgzIGNsYXNzPSZxdW90O0JhY2tMaW5rJnF1b3Q7PjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+PDwgQmFjazwvYT48L2gzPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMT4NCjxoMj5Xcml0ZSBtYW5hZ2UgYW5kIGRlcGxveSBKUyBhbmQgQ1NTPC9oMj4NCjxhIGlkPSJTY3JpcHREZXBsb3kiPjwvYT4NCjxwPlNjcmlwdERlcGxveSBtb2R1bGUgdGhhdCBjYW4gY29tYmluZSBtdWx0aXBsZSBDU1Mgb3IgSmF2YXNjcmlwdCBmaWxlcywgY29tcHJlc3MgdGhlaXIgY29udGVudHMgKGkuZS4gcmVtb3ZhbCBvZiB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlL2NvbW1lbnRzKSwgYW5kIHNlcnZlIHRoZSByZXN1bHRzIHdpdGggSFRUUCBlbmNvZGluZyAoZ3ppcC9kZWZsYXRlKSBhbmQgaGVhZGVycyB0aGF0IGFsbG93IG9wdGltYWwgY2xpZW50LXNpZGUgY2FjaGluZy4gVGhpcyBoZWxwcyB5b3UgZm9sbG93IHNldmVyYWwgb2YgWWFob28hJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9pbmRleC5odG1sI3J1bGVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+UnVsZXMgZm9yIEhpZ2ggUGVyZm9ybWFuY2UgV2ViIFNpdGVzPC9hPi4gKFNlZSAmcXVvdDtQcm9ibGVtIERvbWFpbiZxdW90OyBiZWxvdyBmb3IgbW9yZSBpbmZvLikgPC9wPg0KPGgzPlRoZSBTaG9ydCBvZiBpdDwvaDM+DQo8cD5XaXJ0ZSB5b3VyIHNjcmlwdHMsIHNldCB0aGUgb3JkZXIgYW5kIFNjcmlwdERlcGxveSB3aWxsIGRvIHRoZSByZXN0ITwvcD4NCjx0YWJsZT4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nJnF1b3Q7IGFsdD0mcXVvdDthZnRlciZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5BZnRlcjwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmcmcXVvdDsgYWx0PSZxdW90O2JlZm9yZSZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQoNCg0KDQo8aDI+PGEgaWQ9IkZlYXR1cmVzIj48L2E+RmVhdHVyZXM8L2gyPg0KPHVsPg0KICA8bGk+Q29tYmluZXMgYW5kIG1pbmlmaWVzIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIGludG8gYSBzaW5nbGUgICBkb3dubG9hZCA8L2xpPg0KICA8bGk+VXNlcyBhbiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9KU01pbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5lbmhhbmNlZCBwb3J0PC9hPiBvZiBEb3VnbGFzIENyb2NrZm9yZCYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluICAgbGlicmFyeTwvYT4gYW5kIGN1c3RvbSBjbGFzc2VzIHRvIG1pbmlmeSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvQ1NTLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNTUzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9IVE1MLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkhUTUw8L2E+PC9saT4NCiAgPGxpPkNhY2hlcyBzZXJ2ZXItc2lkZSB0byBhdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSB3b3JrIDwvbGk+DQogIDxsaT5SZXNwb25kcyB3aXRoIGFuIEhUVFAgMzA0IChOb3QgTW9kaWZpZWQpIHJlc3BvbnNlIHdoZW4gdGhlIGJyb3dzZXIgaGFzIGFuICAgdXAtdG8tZGF0ZSBjYWNoZSBjb3B5ICoqIDwvbGk+DQogIDxsaT5Nb3N0IG1vZHVsZXMgYXJlIGxhenktbG9hZGVkIGFzIG5lZWRlZCAoMzA0IHJlc3BvbnNlcyB1c2UgbWluaW1hbCBjb2RlKSAgKiogPC9saT4NCiAgPGxpPkF1dG9tYXRpY2FsbHkgcmV3cml0ZXMgcmVsYXRpdmUgVVJJcyBpbiBjb21iaW5lZCBDU1MgZmlsZXMgdG8gcG9pbnQgdG8gdmFsaWQgbG9jYXRpb25zIDwvbGk+DQogIDxsaT5XaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSYjMDM5O3MgbW9kX2RlZmxhdGUgb3B0aW9uISA8L2xpPg0KPC91bD4NCjxoMz48ZW0+PHN0cm9uZz4qKiBOb3RlOjwvc3Ryb25nPiBJdCBpcyBiZXN0IHRvIHVzZSBhIC5odGFjY2VzcyBzY3JpcHQgdG8gc2V0IHRoZSBhZ2UgdGltZXMuIFNjcmlwdERlcGxveSBpcyBkZXNpZ25lZCBmb3IgZWZmaWNpZW5jeSwgYnV0IGZvciB2ZXJ5IGhpZ2ggdHJhZmZpYyBzaXRlcywgU2NyaXB0RGVwbG95IG1heSBzZXJ2ZSBmaWxlcyBzbG93ZXIgdGhhbiB5b3VyIEhUVFBkIGR1ZSB0byB0aGUgQ0dJIG92ZXJoZWFkIG9mIFBIUC4gIFRvIG92ZXIgY29tZSB0aGlzIEp1c3QgY2hlY2sgJnF1b3Q7dXNlIC5odGFjY2VzcyBpbiBvcHRpb25zJnF1b3Q7PC9lbT48L2gzPg0KPGgyPjxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPlJlcXVpcmVtZW50czwvaDI+DQo8dWw+DQogIDxsaT5UaGUgY29tbW9ubHkgaW5zdGFsbGVkIDxhIGhyZWY9Imh0dHA6Ly91czMucGhwLm5ldC9tYW51YWwvZW4vemxpYi5pbnN0YWxsYXRpb24ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+emxpYiAgIGV4dGVuc2lvbjwvYT4gaXMgcmVjb21tZW5kZWQgZm9yIEhUVFAgZW5jb2RpbmcgZnVuY3Rpb25hbGl0eS4gPC9saT4NCjwvdWw+DQo8YnIvPjxici8+DQo8aDE+SG93IERvIEkgVXNlIEl0PC9oMT4NCg0KDQo8aDM+R2V0IGEgc2luZ2xlIHNjcmlwdDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPg0KDQo8YnIvPjxici8+DQo8aDQ+UGFyYW1zPC9oND4NCjx1bD4NCjxsaT48c3Ryb25nPnNjcmlwdElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+Z3JvdXBJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC8pIEpTL0NTUzwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+U21hcnR5T249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiA8YnIvPnwgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5NaW5pZnk9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0OnRydWU8L3N0cm9uZz48L2VtPiA8YnIvPnwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KDQoNCg0KDQoNCg0KPGxpPjxzdHJvbmc+TWVkaWFUeXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgTWVkaWEgdHlwZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+aW1wb3J0PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gPGJyLz58IHNldCB0aGUgaW5jbHVzaW9uIHN0eWxlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwmcXVvdDt0ZXh0L2Nzc1wmcXVvdDs+QGltcG9ydCB1cmwoJnF1b3Q7dXJsL2Nzc2ZpbGUuY3NzJnF1b3Q7KSBzY3JlZW47PC9zdHlsZT48YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPmNhY2hlQnVzdGVyPC9zdHJvbmc+IDxlbT4ob3B0aW9uYWwpIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+PGJyLz58IFRoaXMgaXMgdG8gaW5zdGFudGx5IHVuY2FjaGUgYW4gc2NyaXB0IG9uIHRoZSBjbGllbnQgc2lkZSBhZnRlciBhIG5ldyB1cGxvYWRlZCBzY3JpcHQgaXMgY3JlYXRlZC4uLiBpZTogMTIuanM/MTI1NTIyNTAwNyAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KCB0cnVlL2ZhbHNlICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCjxsaT48c3Ryb25nPmFzc2lnbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgQXNzaWduIHRoZSBvdXRwdXQgKHJldHVybiB0aGUgc21hcnR5IGFzc2lnbm1lbnQpICBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdXQgd2l0aG91dCBVUkw8L2xpPg0KPGxpPjxzdHJvbmc+ZnNpemU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290VXJsPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBTY3JpcHREZXBsb3kgY3JlYXRlcyBhIHRlbXAgZGlyZWN0b3IgaW4gdGhlIHVwbG9hZCBmb2xkZXIuICBJZiB5b3UgbW92ZSB0aGUgcGF0aCB0byB0aGUgdXBsYW9kIHRvIGEgc3ViZG9tYWluIHlvdSBtYXkgZ3VpZGUgdGhlIG91dHB1dCB3aXRoIHRoaXMuPC9saT4NCiAgICAgICAgPHVsIHN0eWxlPSZxdW90O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyZxdW90Oz48bGk+PHN0cm9uZz5FeGFwbWxlOjwvc3Ryb25nPiB5b3UgY2hhbmdlZCA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSAmIzAzOTsvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT4gPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPnRvPC9zdHJvbmc+IDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9IFwvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9zdWJkb21haW5zL21lZGlhL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPjwvbGk+DQogICAgICAgICAgICA8bGk+bm93IHRoZSB1cGxvYWRzIHVybCB3b3VsZCBub3Qgd29yayBhcyBpdCB3b3VsZCBiZSA8dT5odHRwOi8vd3d3LmRvbWFpbi5vcmcvdXBsb2FkczwvdT48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+U288L3N0cm9uZz4gaXQgY2FuIGJlIGNoYW5nZWQgaGVyZSB0byA8dT5odHRwOi8vbWVkaWEuZG9tYWluLm9yZy91cGxvYWRzPC91PiAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz5VUkw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58b3V0cHV0cyB0aGUgdXJsLjwvbGk+DQoNCg0KDQoNCgkJDQoNCg0KDQoNCg0KDQoNCg0KPCEtLTxsaT48c3Ryb25nPlNhbmRCb3g9dHJ1ZSA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBmYWxzZTxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+UlVOYWN0aW9uPSZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVc2UgQ291bnRyeSBDb2RlcyBUbyBkeW5hbWljbHkgc2V0IHRoZSBsYW5ndWFnZSBvZiB0aGUgUGF5UGFsIHBhZ2U8YnIvPjwvbGk+LS0+DQoNCjwvdWw+DQo8YnIvPg0KDQo8YnIvPjxici8+DQo8aDI+PGEgaWQ9IlByb2JsZW1fRG9tYWluIj48L2E+UHJvYmxlbSBEb21haW48L2gyPg0KPHA+UGFnZXMgdGhhdCByZWZlciB0byBtdWx0aXBsZSBDU1Mgb3IgSmF2YVNjcmlwdCBmaWxlcyBvZnRlbiBzdWZmZXIgZnJvbSBzbG93ZXIgICBwYWdlIGxvYWRzLCBkdWUgdG8gdGhlIGJyb3dzZXIgcmVxdWVzdGluZyBlYWNoIGZpbGUgaW5kaXZpZHVhbGx5LiBNYW55IGJyb3dzZXJzICAgYWxzbyBhcmUgbGltaXRlZCB0byBhIGZldyBzaW11bHRhbmVvdXMgcmVxdWVzdHMgcGVyIGRvbWFpbi4gVGhlIHdhaXQgZm9yIGEgICBzZXJpZXMgb2YgcmVxdWVzdHMgYW5kIHRoZSB0cmFuc2ZlciBvZiB1bm9wdGltaXplZCBmaWxlcyBjYW4gZHJhbWF0aWNhbGx5IHJlZHVjZSAgIHRoZSBjbGllbnQtc2lkZSBwZXJmb3JtYW5jZSBvZiB5b3VyIHNpdGUuIDwvcD4NCjxwPkhlcmUgYXJlIGEgaGFuZGZ1bCBvZiBZYWhvbyEmIzAzOTtzIGJlc3QgcHJhY3RpY2VzIHRoYXQgYXJlIGFkZHJlc3NlZCBieSB0aGUgdXNlIG9mIFNjcmlwdERlcGxveS4gPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNudW1faHR0cCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1ha2UgRmV3ZXIgSFRUUCBSZXF1ZXN0czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNleHBpcmVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+QWRkIGFuIEV4cGlyZXMgb3IgYSBDYWNoZS1Db250cm9sIEhlYWRlcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNnemlwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+R3ppcCBDb21wb25lbnRzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI21pbmlmeSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPk1pbmlmeSBKYXZhU2NyaXB0IGFuZCBDU1M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXRhZ3MiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5Db25maWd1cmUgRVRhZ3M8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjdW5kZXIyNSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPktlZXAgQ29tcG9uZW50cyB1bmRlciAyNUs8L2E+PC9saT4NCjwvdWw+DQo8aDM+PGEgbmFtZT0iQWNrbm93bGVkZ21lbnRzIj48L2E+QWNrbm93bGVkZ21lbnRzPC9oMz4NCjxwPk1pbmlmeSB3YXMgaW5zcGlyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzY3NzY29tcC8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5qc2Nzc2NvbXA8L2E+IGJ5IE1heGltIE1hcnR5bnl1ayBhbmQgYnkgdGhlIGFydGljbGUgJiMwMzk7PGEgaHJlZj0iaHR0cDovL3d3dy5odW5sb2NrLmNvbS9ibG9ncy9TdXBlcmNoYXJnZWRfSmF2YXNjcmlwdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlN1cGVyY2hhcmdlZCBKYXZhU2NyaXB0PC9hPiYjMDM5OyBieSBQYXRyaWNrIEh1bmxvY2suIDwvcD4NCjxwPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gbGlicmFyeTwvYT4gdXNlZCBmb3IgSmF2YVNjcmlwdCBtaW5pZmljYXRpb24gd2FzIG9yaWdpbmFsbHkgICB3cml0dGVuIGJ5IERvdWdsYXMgQ3JvY2tmb3JkIGFuZCB3YXMgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pzbWluLXBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPnBvcnRlZCB0byBQSFA8L2E+IGJ5IFJ5YW4gICBHcm92ZSBzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiBNaW5pZnkuIDwvcD4NCg0KDQo8aDM+U3VwcG9ydDwvaDM+DQo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zY3JpcHRkZXBsb3kiPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyA8PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+PiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtob3N0ZWRfYnV0dG9uX2lkJnF1b3Q7IHZhbHVlPSZxdW90Ozg4MTc2NzUmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPC9mb3JtPjxici8+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPC9kaXYgPjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+PC9iPg0KDQo8L2Rpdj4NCic7JGxhbmdbJ3V0bWEnXT0nMTU2ODYxMzUzLjU0MzE2MzM4MS4xMzAyNjAzNDMwLjEzMDY2MjE3MzQuMTMwNjY1OTc2OS4xNic7JGxhbmdbJ3V0bXonXT0nMTU2ODYxMzUzLjEzMDY2MTE0NjguMTQuMi51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzskbGFuZ1sndXRtYyddPScxNTY4NjEzNTMnOyRsYW5nWyd1dG1iJ109JzE1Njg2MTM1Myc7ID8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95IChJbXBsZW1lbnRhZG9yIGRlIFNjcmlwdHMpJzskbGFuZ1sncG9zdGluc3RhbGwnXT0nRXMgcmVjb21lbmRhZG8gdmlzaXRhciBsYSBzZWNjaSZvYWN1dGU7biBkZSBBeXVkYSBhbnRlcyBkZSBjb21lbnphcic7JGxhbmdbJ3Bvc3R1bmluc3RhbGwnXT0nUG9yIGZhdm9yIGVudmlhciBjb21lbnRhcmlvcyBhY2VyY2EgZGUgZXN0ZSBtJm9hY3V0ZTtkdWxvIChmYXZvciBlc2NyaWJpciBlbiBpbmdsJmVhY3V0ZTtzLCBlbCBpZGlvbWEgZGVsIGF1dG9yKTxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPkplcmVteSBCYXNzPC9hPic7JGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXT0nVW5pbnN0YWxsaW5nIHRoaXMgbW9kdWxlIHdpbGwgbm90IGFmZmVjdCBhbnkgZXZlbnQgZGF0YSBhbmQgYWxsIGJvb2tzIHRvIGRhdGUgd2lsbCBzdGlsbCBiZSB0aGVyZS4gRG8geW91IHdpc2ggdG8gY29udGludWU/JzskbGFuZ1sndW5pbnN0YWxsZWQnXT0nTW9kdWxvIGRlc2luc3RhbGFkbyc7JGxhbmdbJ2luc3RhbGxlZCddPSdWZXJzaSZvYWN1dGU7biAlcyBpbnN0YWxhZGEnOyRsYW5nWyd1cGdyYWRlZCddPSdNb2R1bG8gYWN0dWFsaXphZG8gYSBsYSB2ZXJzaSZvYWN1dGU7biAlcy4nOyRsYW5nWydBQ1RvcHRpb25zJ109J09wY2lvbmVzIGRlIEltcGxlbWVudGFjaSZvYWN1dGU7bic7JGxhbmdbJ21hbnVhbGFzc2lnbm1lbnQnXT0nQWdydXBhY2lvbmVzIGRlIFNjcmlwdHMnOyRsYW5nWydIVE1Mc2V0dGluZ3MnXT0nSW1wbGVtZW50YWNpJm9hY3V0ZTtuIEhUTUwnOyRsYW5nWydWYWxzZXR0aW5ncyddPSdBanVzdGVzIGRlIHZhbGlkYWNpJm9hY3V0ZTtuJzskbGFuZ1snZW4nXT0nSW5nbCZlYWN1dGU7cyc7JGxhbmdbJ2ZyJ109J0ZyYW4mY2NlZGlsO2FpcyAoRnJhbmMmZWFjdXRlO3MpJzskbGFuZ1snaXQnXT0nSXRhbGlhbm8nOyRsYW5nWydrbyddPSdLb3JlYW4gKENvcmVhbm8pJzskbGFuZ1snamEnXT0nSmFwYW5lc2UgKEphcG9uJmVhY3V0ZTtzKSc7JGxhbmdbJ2VzJ109J0VzcGEmbnRpbGRlO29sJzskbGFuZ1snemgtY24nXT0nQ2hpbmVzZSAoQ2hpbm8pJzskbGFuZ1snbmwnXT0nTmVkZXJsYW5kcyAoTmVlcmxhbmQmZWFjdXRlO3MpJzskbGFuZ1snZGUnXT0nRGV1dHNjaCAoQWxlbSZhYWN1dGU7biknOyRsYW5nWydwbCddPSdQb2xza2kgKFBvbGFjbyknOyRsYW5nWydMbm9uZSddPSdObyBoYXkgYWR2ZXJ0ZW5jaWFzJzskbGFuZ1snTDAnXT0nTml2ZWwgMCc7JGxhbmdbJ0wxJ109J05pdmVsIDEnOyRsYW5nWydMMiddPSdOaXZlbCAyJzskbGFuZ1snY3NzMSddPSdDU1MgMSAnOyRsYW5nWydjc3MyJ109J0NTUyAyICc7JGxhbmdbJ2NzczIxJ109J0NTUyAyLjEgJzskbGFuZ1snY3NzMyddPSdDU1MgMyAnOyRsYW5nWydzdmcnXT0nU1ZHICc7JGxhbmdbJ3N2Z2Jhc2ljJ109J1NWRyBiYXNpY28nOyRsYW5nWydzdmd0aW55J109J1NWRyBtaW5pbW8nOyRsYW5nWydtb2JpbGUnXT0nbW9iaWxlICc7JGxhbmdbJ2F0c2MtdHYnXT0nYXRzYy10diAnOyRsYW5nWyd0diddPSdBZGVjdWFkbyBwYXJhIGRpc3Bvc2l0aXZvcyBkZSB0aXBvIFRWJzskbGFuZ1snbm9uZSddPSduaW5ndW5vJzskbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ109J0d1YXJkYXIgYWp1c3RlcyBkZSB2YWxpZGFjaSZvYWN1dGU7bic7JGxhbmdbJ3NldHRpbmdzJ109J0FqdXN0ZXMnOyRsYW5nWydzZXR0aW5nc3NhdmVkJ109J0xvcyBhanVzdGVzIGhhbiBzaWRvIGd1YXJkYWRvcyc7JGxhbmdbJ2xlYXZlY29kZSddPSdObyB0b2NhciBlbCBjJm9hY3V0ZTtkaWdvJzskbGFuZ1snZm9ybWF0Y29kZSddPSdNZWpvciBmb3JtYXRlbyBkZSBjJm9hY3V0ZTtkaWdvJzskbGFuZ1snc2NyYW1ibGVjb2RlJ109J1Jldm9sdmVyIGVsIGMmb2FjdXRlO2RpZ28nOyRsYW5nWydjbGVhbmNvZGUnXT0nTGltcGlhciBlbCBjJm9hY3V0ZTtkaWdvLCByZW1vdmllbmRvIGNvZGlnbyBpbm5lY2VzYXJpbyc7JGxhbmdbJ3NhdmVzZXR0aW5ncyddPSdHdWFyZGFyIGFqdXN0ZXMnOyRsYW5nWydtYW5nbGV0eXBldGV4dCddPSdDb21vIGZvcm1hdGVhciBlbCBjJm9hY3V0ZTtkaWdvJzskbGFuZ1snYnJpZWYnXT0nQ29ydG8nOyRsYW5nWyd2ZXJib3NlJ109J1ZlcmJvc28nOyRsYW5nWydjb2RlZml4ZXMnXT0nUmVwYXJhY2lvbmVzIGRlIGMmb2FjdXRlO2RpZ28nOyRsYW5nWydmb3JjZWxvd2VydGFnc3RleHQnXT0nRm9yemFyIGxvcyB0YWdzIGEgbWluJnVhY3V0ZTtzY3VsYXMnOyRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXT0nUGFyYSBtZWpvciBjb21wYXRpYmlsaWRhZCBYSFRNTCc7JGxhbmdbJ2hpZGVtZXNzYWdlc3RleHQnXT0nRXNjb25kZXIgbWVuc2FqZXMgZGUgQ29kZU1hbmdsZXIgYWwgZnVuYWwgZGVsIGMmb2FjdXRlO2RpZ28gKHgpaHRtbCc7JGxhbmdbJ2luZGVudHdpZHRodGV4dCddPSdBbmNobyBkZSBsYSBzYW5nciZpYWN1dGU7YSc7JGxhbmdbJ3NwYWNlcyddPSdFc3BhY2lvcyc7JGxhbmdbJ2RlYnVnbGV2ZWx0ZXh0J109J0NhbnRpZGFkIGRlIG1vZG8gZGUgZGVwdXJhY2kmb2FjdXRlO246JzskbGFuZ1snZGVidWd0ZXh0J109J01vZG8gZGUgZGVwdXJhY2kmb2FjdXRlO24gZGUgYyZvYWN1dGU7ZGlnbyc7JGxhbmdbJ1NjcmlwdF9saXN0J109J1NjcmlwdHMgJzskbGFuZ1snQXNzX2hlYWRlciddPSdTY3JpcHRzIHVuaWZpY2Fkb3MnOyRsYW5nWydTYW1wbGVUYWcnXT0nVGFnIGRlIG11ZXN0cmEnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J109J0FncmVnYXIgbnVldm8gc2NyaXB0JzskbGFuZ1sncHJvbXB0X25ld1NjcmlwdEFzcyddPSdOdWV2YSBhc2lnbmFjaSZvYWN1dGU7biBkZSBzY3JpcHQnOyRsYW5nWyd0aXRsZV9Hcm91cHMnXT0nTGlzdGEgZGUgZ3J1cG9zIGRlIHNjcmlwdHMnOyRsYW5nWyd0aXRsZV9TY3JpcHRzJ109J0xpc3RhIGRlIHNjcmlwdHMgc3VlbHRvcyc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS4nOyRsYW5nWydzbWFydHlIb3cnXT0nVGhlIHNtYXJ0eSB3b3JrcyBsaWtlIHRoaXMuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmJzskbGFuZ1snYWxsJ109J0FkZWN1YWRvIHBhcmEgdG9kb3MgbG9zIGRpc3Bvc2l0aXZvcyc7JGxhbmdbJ2F1cmFsJ109J0FkZWN1YWRvIHBhcmEgc2ludGV0aXphZG9yZXMgZGUgcGFsYWJyYXMnOyRsYW5nWydicmFpbGxlJ109J0FkZWN1YWRvIHBhcmEgZGlzcG9zaXRpdm9zIHRhY3RpbGVzIGRlIGJyYWlsZSc7JGxhbmdbJ2VtYm9zc2VkJ109J0FkZWN1YWRvIHBhcmEgaW1wcmVzb3JhcyBkZSBicmFpbGUnOyRsYW5nWydoYW5kaGVsZCddPSdBZGVjdWFkbyBwYXJhIGRpc3Bvc2l0aXZvcyBwb3J0JmFhY3V0ZTt0aWxlcyBkZSBtYW5vJzskbGFuZ1sncHJpbnQnXT0nQWRlY3VhZG8gcGFyYSBtYXRlcmlhbCBwYWdpbmFkbywgb3BhY28geSBkb2N1bWVudG9zIHZpc3RvcyBlbiBwYW50YWxsYSBlbiBtb2RvIHByZWxpbWluYXIgZGUgaW1wcmVzaSZvYWN1dGU7bic7JGxhbmdbJ3Byb2plY3Rpb24nXT0nQWRlY3VhZG8gcGFyYSBwcmVzZW50YWNpb25lcyBwcm95ZWN0YWRhcyc7JGxhbmdbJ3NjcmVlbiddPSdBZGVjdWFkbyBwcmltb3JkaWFsbWVudGUgcGFyYSBwYW50YWxsYXMgZGUgY29sb3IgZGUgY29tcHV0YWRvcmVzJzskbGFuZ1sndHR5J109J0FkZWN1YWRvIHBhcmEgbWVkaW9zIHRhbGVzIGNvbW8gdGVsZXRpcG9zIHkgdGVybWluYWxlcyc7JGxhbmdbJ01lZGlhVHlwZSddPSdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuPGJyLz4NCmF1cmFsIDogSW50ZW5kZWQgZm9yIHNwZWVjaCBzeW50aGVzaXplcnMuPGJyLz4NCmJyYWlsbGUgOiBJbnRlbmRlZCBmb3IgYnJhaWxsZSB0YWN0aWxlIGZlZWRiYWNrIGRldmljZXMuPGJyLz4NCmVtYm9zc2VkIDogSW50ZW5kZWQgZm9yIHBhZ2VkIGJyYWlsbGUgcHJpbnRlcnMuPGJyLz4NCmhhbmRoZWxkIDogSW50ZW5kZWQgZm9yIGhhbmRoZWxkIGRldmljZXM8YnIvPg0KcHJpbnQgOiBJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS48YnIvPg0KcHJvamVjdGlvbiA6IEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy48YnIvPg0Kc2NyZWVuIDogSW50ZW5kZWQgcHJpbWFyaWx5IGZvciBjb2xvciBjb21wdXRlciBzY3JlZW5zLjxici8+DQp0dHkgOiBJbnRlbmRlZCBmb3IgbWVkaWEgdXNpbmcgYSBmaXhlZC1waXRjaCBjaGFyYWN0ZXIgZ3JpZCwgc3VjaCBhcyB0ZWxldHlwZXMgYW5kIHRlcm1pbmFscy48YnIvPg0KdHYgOiBJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzskbGFuZ1snQ2FuY2VsZWQnXT0nT3BlcmlhY2kmb2FjdXRlO24gY2FuY2VsYWRhLiBMYSBpbmZvcm1hY2kmb2FjdXRlO24gcXVlIHNlIGhheWEgaW5ncmVzYWRvIG8gYWN0dWFsaXphZG8gbm8gc2UgZ3VhcmQmb2FjdXRlOy4nOyRsYW5nWydCdG5BRERFRCddPSdTZSBhZ3JlZyZvYWN1dGU7IHVuIG51ZXZvIHNjcmlwdCc7JGxhbmdbJ0J0bkVESVRFRCddPSdTZSBlZGl0Jm9hY3V0ZTsgdW4gc2NyaXB0IGV4aXN0ZW50ZSc7JGxhbmdbJ0J0bkRFTEVURUQnXT0nU2UgZWxpbWluJm9hY3V0ZTsgdW4gc2NyaXB0IGV4aXN0ZW50ZSc7JGxhbmdbJ3R5cGVfbGFiZWwnXT0nVGlwbyc7JGxhbmdbJ2VtdHB5R3JvdXAnXT0nWW91JiMwMzk7bGwgbmVlZCB0byBhZGQgYSBzY3JpcHQgdG8gdGhlIGdyb3VwIGJlZm9yZSBjYWxsaW5nIGl0JzskbGFuZ1snU2NyaXB0U2V0X2xhYmVsJ109J0lEIGRlbCBzY3JpcHQnOyRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ109J1RpcG8gZGUgc2NyaXB0JzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdOb21icmUgZGVsIHNjcmlwdCAnOyRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ109J0xsYW1hZGEgcHJlZGV0ZXJtaW5hZGEgcGFyYSBlbCBzY3JpcHQnOyRsYW5nWydHcm91cHRTaXplX2xhYmVsJ109J1RvdGFsICc7JGxhbmdbJ25vdGVzX2xhYmVsJ109J05vdGFzJzskbGFuZ1snU2hvd1ZhbF9sYWJsZSddPSdNYW50ZW5lciBtZW5zYWplcyBhYmllcnRvcyc7JGxhbmdbJ1R1cm5PTlZhbF9sYWJsZSddPSdEZXNhYmlsaXRhciB2YWxpZGFjaSZvYWN1dGU7bic7JGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXT0nRmlsdHJhciBwcm9waWVkYWRlcyBwYXJhIGF5dWRhciBjb24gbGEgdmFsaWRhY2kmb2FjdXRlO24nOyRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ109J1BlcmZpbCBDU1MnOyRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ109J1VzYXIgbWVkaW8nOyRsYW5nWydWQUxMYW5nX2xhYmxlJ109J0xlbmd1YWplJzskbGFuZ1sndzNjQ1NTd2FybmluZ19sYWJsZSddPSdOaXZlbCBkZSBhZHZlcnRlbmNpYSBwYXJhIHczYyBDU1MnOyRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXT0nVGlwbyBkZSBtZWRpbzonOyRsYW5nWydNaW5pZnlfbGFiZWwnXT0nUHJlIE1pbmltaXphZG8nOyRsYW5nWydtYXhBZ2VfbGFiZWwnXT0nVGllbXBvIG0mYWFjdXRlO3hpbW8nOyRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXT0nRmVjaGEgZGUgY3JlYWNpJm9hY3V0ZTtuJzskbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXT0nRmVjaGEgZGUgbW9kaWZpY2FjaSZvYWN1dGU7bic7JGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXT0nVXNhciB1bmEgcnV0YSA8ZW0+KGRlYmUgZGUgaW5pY2lhciBjb24gJnF1b3Q7L3VwbG9hZHMvLi4uJnF1b3Q7KTwvZW0+JzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nVXNhciBlc3RlIHNjcmlwdCA8ZW0+KE5vdGE6IHNlIGhhcmEgY2FzbyBvbWlzbyBzaSBzZSBlc3BlZmljJm9hY3V0ZTsgdW5hIHJ1dGEpPC9lbT4nOyRsYW5nWydkZWJ1Z0lUX2xhYmVsJ109J2RlYnVnSVQnOyRsYW5nWydkZWJ1Z0lUbm90ZV9sYWJlbCddPSc8ZW0+KE1vZG8gRmlyZXBocCBkZWJlciZhYWN1dGU7IGVzdGFyIGRpc3BvbmlibGUpPC9lbT4nOyRsYW5nWydkZWJ1Z1QnXT0nT3BjaW9uZXMgZGUgZGVwdXJhY2kmb2FjdXRlO24nOyRsYW5nWydub25lSW5UeXBlJ109JzxoMT5BZ3JlZ2FyIHByaW1lcm88YnIvPnVuIHNjcmlwdCBlbiBlc3RlIHRpcG88L2gxPic7JGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ109JzxzdHJvbmc+UHJvY2VzbyBTbWFydHk8L3N0cm9uZz48YnIvPiBjb250ZW5pZG8gZW4gbG9zIGNhbXBvcyAmcXVvdDtidXR0b24mcXVvdDsnOyRsYW5nWydzbWFydHlPbiddPSc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7JGxhbmdbJ2VkaXQnXT0nRWRpdGFyJzskbGFuZ1snZGVsZXRlJ109J0JvcnJhcic7JGxhbmdbJ0Nsb3NlJ109J0NlcnJhcic7JGxhbmdbJ09wZW4nXT0nQWJyaXInOyRsYW5nWydjbGVhblRlbXAnXT0nTGltcGlhciBsYSBjYXJwZXRhIHRlbXA/JzskbGFuZ1sndXJUZW1wUGF0aCddPSdMYSBydXRhIGNhY2hlIGVzJzskbGFuZ1snTGFzdE1vZCddPSdVbHRpbWEgbW9kaWZpY2FjaSZvYWN1dGU7bic7JGxhbmdbJ2NhY2hlRmVycm9yJ109J1NjcmlwdERlcGxveSBubyBwdWRvIGNyZWFyIGxhIGNhcnBldGEgZGUgY2FjaGUsIHJldmlzYXIgcGVybWlzb3MgZGUgYXJjaGl2b3MgcGFyYSBsYSBjYXJwZXRhIFVwbG9hZHMuJzskbGFuZ1snTmFtZSddPSdOb21icmUgJzskbGFuZ1snUHJvY2Nlc3NpbmcnXT0nUHJvY2VzYW5kbyc7JGxhbmdbJ1NhdmVkJ109J0d1YXJkYWRvJzskbGFuZ1snRG9uZSddPSdDb21wbGV0byc7JGxhbmdbJ1ZhbGlkYXRpbmcnXT0nVmFsaWRhbmRvJzskbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ109J05vbWJyZSBkZSBncnVwbyc7JGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXT0nVGlwbyBkZSBzY3JpcHRzJzskbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ109J0xpc3RhIGRlIHNjcmlwdHMnOyRsYW5nWydMSU5FJ109J0xJTkUnOyRsYW5nWydUWVBFJ109J1RZUEUgJzskbGFuZ1snU1VCVFlQRSddPSdTVUJUWVBFICc7JGxhbmdbJ1NUUklORyddPSdTVFJJTkcgJzskbGFuZ1snTUVTU0FHRSddPSdNRVNTQUdFICc7JGxhbmdbJ0xFVkVMJ109J0xFVkVMICc7JGxhbmdbJ05vdGVzJ109J05vdGFzJzskbGFuZ1snV2FybmluZ3MnXT0nQWR2ZXJ0ZW5jaWEnOyRsYW5nWydFcnJvcnMnXT0nRXJyb3Jlcyc7JGxhbmdbJ2hpZGRlbiddPSdlc2NvbmRpZG8nOyRsYW5nWydTY3JpcHQnXT0nU2NyaXB0ICc7JGxhbmdbJ0VVUkxTJ109J1VybHMgZXh0cmFpZGFzJzskbGFuZ1snUkNTUyddPSdDU1MgZWplY3V0YWRvJzskbGFuZ1snU0NTUyddPSdFc3RydWN0dXJhIENTUyAnOyRsYW5nWydGQ09OVCddPSdDb250ZW5pZG8gZGUgYXJjaGl2byc7JGxhbmdbJ2lVUkwnXT0nVVJMIGRlIGltYWdlbic7JGxhbmdbJ1R5cGUnXT0nVHlwbyc7JGxhbmdbJ1NpemUnXT0nVGFtYSZudGlsZGU7byc7JGxhbmdbJ1N0YXR1cyddPSdTdGF0dXMgJzskbGFuZ1snaG90bGluayddPSc8c3Ryb25nPkhvdGxpbmtpbmc6PC9zdHJvbmc+IHBhcmVjZSBzZXIgdW4gZW5sYWNlIGRpcmVjdG8gKGFjdGl2bykuJzskbGFuZ1snQnJva2VubGluayddPSdFbmxhY2Ugcm90byc7JGxhbmdbJ05PY3NzSSddPSdObyBoYXkgaW1hZ2VuZXMgY3NzJzskbGFuZ1snWWVzVkFsYXN0ZXInXT0nPGgyPllvdSB2YWxpZGF0ZWQhICoqPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz48YnIvPiA8c3Ryb25nPioqIHlvdSBhcmUgZmlsdGVyaW5nIGVycm9ycyBhbmQgbWF5IGhhdmUgZmlsdGVyZWQgYSByZWFsIGVycm9yPC9zdHJvbmc+JzskbGFuZ1snWWVzVkFsJ109JzxoMj5Zb3UgdmFsaWRhdGVkITwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+JzskbGFuZ1snQ2xlYXJJbWcnXT0nQm9ycmFyIGltYWdlbiBhY3R1YWwnOyRsYW5nWydGaW5pc2gnXT0nVGVybWluYXInOyRsYW5nWydyZXZlcnQnXT0nUmV2ZXJ0aXInOyRsYW5nWydhcHBseSddPSdBcHBsaWNhcic7JGxhbmdbJ2NhbmNlbCddPSdDYW5jZWxhcic7JGxhbmdbJ2Zvcm1fY2FuY2VsJ109J0NhbmNlbGFyJzskbGFuZ1snU2F2ZSddPSdHdWFyZGFyJzskbGFuZ1snZG9uZSddPSdDb21wbGV0byc7JGxhbmdbJ2FkZCddPSdBZ3JlZ2FyJzskbGFuZ1snc3VibWl0J109J0Vudmlhcic7JGxhbmdbJ1JFT1JERVInXT0nUmVvcmRlbmFyJzskbGFuZ1snZm9ybV9zdWJtaXQnXT0nR3VhcmRhciBwcmVmZXJlbmNpYXMnOyRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXT0nUHJlZmVyZW5jaWFzIGRlIE1vZHVsbyc7JGxhbmdbJ3ByZWZzdXBkYXRlZCddPSdQcmVmZXJlbmNpYXMgZGUgTW9kdWxvIGFjdHVhbGl6YWRhcyc7JGxhbmdbJ29wdGlvbnN1cGRhdGVkJ109J29wY2lvbmVzIGFjdHVhbGl6YWRhcyc7JGxhbmdbJ21vZGRlc2NyaXB0aW9uJ109J1NQRUVEIFlPVVIgU0lURSBVUCAuLi4hISEhICZidWxsOyBPdXRwdXQgZHluYW1pYyBKUyBmaWxlcyBhbmQgQ1NTIFdJVEggc21hcnR5Li4uICZidWxsOyBTZXQgdGhlIGZpbGVzIHRvIHVzZSBhIHN1YmRvbWFpbi4uLiAmYnVsbDsgY2FjaGVkLi4uICZidWxsOyBtaW5pZmllZC4uLiAmYnVsbDsgRGlkIEkgbWVudGlvbiB5b3UgY2FuIHVzZSBzbWFydHkgaW4geW91ciBKUyBhbmQgQ1NTIHNjcmlwdCEhISEgLSBTaW1wbGUsIGZsZXhpYmxlISc7JGxhbmdbJ3dlbGNvbWVfdGV4dCddPSc8cD5Ib2xhITwvcD4nOyRsYW5nWydjaGFuZ2Vsb2cnXT0nPHVsPg0KDQogIDxsaT5WZXJzaW9uIDAuMSBCZXRhIHJlbGVhc2UuPC9saT4NCiAgPGxpPlZlcnNpb24gMC4yIGxvdHMgb2YgY2hhbmdlcyB0byBmaXggYnVnLi4uPC9saT4NCiAgIDxsaT5WZXJzaW9uIDAuMyBzZXQgdGhlIHNtYXJ0eSB0byB1c2Uge3sgfX08L2xpPg0KICAgIDxsaT5WZXJzaW9uIDAuNCBmaXhlZCBidWcuLiBpbXByb3ZlZCB0aGUgbWluaWFmY2F0aW9uIHRvIGEgc2F2ZXMgb2YgdXAgdG8gNjAlPC9saT4NCjwvdWw+JzskbGFuZ1snaGVscCddPSc8bGluayBtZWRpYT0mcXVvdDtzY3JlZW4mcXVvdDsgaHJlZj0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7Lz48ZGl2IGNsYXNzPSZxdW90O1NpbVdyYXAmcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9JnF1b3Q7U2ltY29uJnF1b3Q7PiA8aDMgY2xhc3M9JnF1b3Q7QmFja0xpbmsmcXVvdDs+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij48PCBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyEmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZxdW90O1Byb2JsZW0gRG9tYWluJnF1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldpcnRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QmVmb3JlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmcmcXVvdDsgYWx0PSZxdW90O2FmdGVyJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YmVmb3JlJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPlJlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPk1vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+QXV0b21hdGljYWxseSByZXdyaXRlcyByZWxhdGl2ZSBVUklzIGluIGNvbWJpbmVkIENTUyBmaWxlcyB0byBwb2ludCB0byB2YWxpZCBsb2NhdGlvbnMgPC9saT4NCiAgPGxpPldpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT5Db250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlJiMwMzk7cyBtb2RfZGVmbGF0ZSBvcHRpb24hIDwvbGk+DQo8L3VsPg0KPGgzPjxlbT48c3Ryb25nPioqIE5vdGU6PC9zdHJvbmc+IEl0IGlzIGJlc3QgdG8gdXNlIGEgLmh0YWNjZXNzIHNjcmlwdCB0byBzZXQgdGhlIGFnZSB0aW1lcy4gU2NyaXB0RGVwbG95IGlzIGRlc2lnbmVkIGZvciBlZmZpY2llbmN5LCBidXQgZm9yIHZlcnkgaGlnaCB0cmFmZmljIHNpdGVzLCBTY3JpcHREZXBsb3kgbWF5IHNlcnZlIGZpbGVzIHNsb3dlciB0aGFuIHlvdXIgSFRUUGQgZHVlIHRvIHRoZSBDR0kgb3ZlcmhlYWQgb2YgUEhQLiAgVG8gb3ZlciBjb21lIHRoaXMgSnVzdCBjaGVjayAmcXVvdDt1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMmcXVvdDs8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDM+R2V0IGEgc2NyaXB0IGdyb3VwPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBncm91cElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5ncm91cElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5TbWFydHlPbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPk1pbmlmeT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCAgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQoNCg0KDQoNCg0KDQo8bGk+PHN0cm9uZz5NZWRpYVR5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVCdXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oIHRydWUvZmFsc2UgKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KPGxpPjxzdHJvbmc+YXNzaWduPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3RVcmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFNjcmlwdERlcGxveSBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvciBpbiB0aGUgdXBsb2FkIGZvbGRlci4gIElmIHlvdSBtb3ZlIHRoZSBwYXRoIHRvIHRoZSB1cGxhb2QgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9JnF1b3Q7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7JnF1b3Q7PjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9ICYjMDM5Oy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPlVSTD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249JmFtcDthbXA7cXVvdDsmYW1wO2FtcDtxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVRFQ8YnIvPnwgVVJMIDxlbT4oLi4vcGx1Z2lucy9mdW5jdGlvbi5maWxlbmFtZS5waHApPC9lbT48YnIvPnwgKk1vcmUgY29taW5nIFNvb24qPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+TGFuZz0mYW1wO2FtcDtxdW90OyZhbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3BwYm0iPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyA8PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+PiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtob3N0ZWRfYnV0dG9uX2lkJnF1b3Q7IHZhbHVlPSZxdW90Ozg4MTc2NzUmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPC9mb3JtPjxici8+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPC9kaXYgPjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+PC9iPg0KDQo8L2Rpdj4NCic7JGxhbmdbJ3FjYSddPSdQMC0yMDk2MDU0MzcwLTEyNTk4MDM2MTU5MzknOyRsYW5nWyd1dG1hJ109JzE1Njg2MTM1My4yMzg2MDY4NTQuMTI1OTgwNDM2OC4xMjY1Nzc0MDkzLjEyNjY3ODIxODQuNDUnOyRsYW5nWyd1dG16J109JzE1Njg2MTM1My4xMjY2NzgyMTg0LjQ1LjIxLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywyNjM5LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOyRsYW5nWyd1dG1iJ109JzE1Njg2MTM1My4xLjEwLjEyNjY3ODIxODQnOyRsYW5nWyd1dG1jJ109JzE1Njg2MTM1Myc7ID8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95JzskbGFuZ1sncG9zdGluc3RhbGwnXT0nRW5zaW1tJmF1bWw7aW5lbiBhc2tlbCBqb25rYSBoYWx1YXQgb3R0YWEgb24gaGVscCc7JGxhbmdbJ3Bvc3R1bmluc3RhbGwnXT0nTWlrJmF1bWw7bGkgc2ludWxsYSBvbiBwYXJhbm51cyBlaGRvdHVrc2lhIFNjcmlwdERlcGxveXQmYXVtbDsga29odGFhbiwgPGEgaHJlZj0iaHR0cDovL2hlbHAuY29yYmVuc3Byb2R1Y3RzLmNvbS9tYWtlLWNvbnRhY3QuaHRtbCI+T3RhIHlodGV5dHQmYXVtbDsuPC9hPic7JGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXT0nUG9pc3RhbWFsbGEgdCZhdW1sO20mYXVtbDtuIG1vZHV1bGluIGFzZW5udXMgZWkgdmFpa3V0YSBldmVudHRlaWhpbiBqYSBrYWlra2kga2lyamF0IG92YXQgZWRlbGxlZW4gYWphbnRhc2FsbGEuIEhhbHVhdGtvIGphdGthYT8nOyRsYW5nWyd1bmluc3RhbGxlZCddPSdNb2R1dWxpIHBvaXN0ZXR0dS4nOyRsYW5nWydpbnN0YWxsZWQnXT0nR2FsbGVyeSBtb2R1dWxpbiB2ZXJzaW8gJXMgYXNlbm5ldHR1Lic7JGxhbmdbJ3VwZ3JhZGVkJ109J01vZHV1bGkgcCZhdW1sO2l2aXRldHR5IHZlcnNpb29uICVzLic7JGxhbmdbJ0FDVG9wdGlvbnMnXT0nSyZhdW1sO3l0dCZvdW1sOyZvdW1sO25vdHRvIGFzZXR1a3NldC4nOyRsYW5nWydtYW51YWxhc3NpZ25tZW50J109J1NjcmlwdGllbiByeWhtaXR0ZWx5Lic7JGxhbmdbJ0hUTUxzZXR0aW5ncyddPSdIVE1MIGsmYXVtbDt5dHQmb3VtbDsmb3VtbDtub3R0by4nOyRsYW5nWydWYWxzZXR0aW5ncyddPSdWYWxpZG9pbnRpIGFzZXR1a3NldC4nOyRsYW5nWydlbiddPSdFbmdsYW50aSc7JGxhbmdbJ2ZyJ109J0ZyYW4mY2NlZGlsO2FpcyAoUmFuc2thKSc7JGxhbmdbJ2l0J109J0l0YWxpYW5vIChJdGFsaWEpJzskbGFuZ1sna28nXT0nS29yZWEnOyRsYW5nWydqYSddPSdKYXBhbmknOyRsYW5nWydlcyddPSdFc3BhJm50aWxkZTtvbCAoRXNwYW5qYSknOyRsYW5nWyd6aC1jbiddPSdLaWluYSc7JGxhbmdbJ25sJ109J05lZGVybGFuZHMgKEhvbGxhbnRpKSc7JGxhbmdbJ2RlJ109J0RldXRzY2ggKFNha3NhKSc7JGxhbmdbJ3BsJ109J1BvbHNraSAoUHVvbGEpJzskbGFuZ1sncm8nXT0nUm9tYW5pYSc7JGxhbmdbJ2NzJ109JyZFZ3JhdmU7ZSZzY2Fyb247dGluYSc7JGxhbmdbJ2JnJ109J0J1bGdhYXJpYSc7JGxhbmdbJ3N2J109J1J1b3RzaSc7JGxhbmdbJ2ZhJ109J1BlcnNpYSAoRmFyc2kpJzskbGFuZ1sncnUnXT0nVmVuJmF1bWw7aiZhdW1sOyc7JGxhbmdbJ3B0LUJSJ109J0JyYXNpbGlhbiBwb3J0dWdhbGkgKHlsZWluZW4pJzskbGFuZ1snTG5vbmUnXT0nRWkgVmFyb2l0dWtzaWEnOyRsYW5nWydMMCddPSdUYXNvIDAnOyRsYW5nWydMMSddPSdUYXNvIDEnOyRsYW5nWydMMiddPSdUYXNvIDInOyRsYW5nWydjc3MxJ109J0NTUyAxJzskbGFuZ1snY3NzMiddPSdDU1MgMic7JGxhbmdbJ2NzczIxJ109J0NTUyAyLjEnOyRsYW5nWydjc3MzJ109J0NTUyAzJzskbGFuZ1snc3ZnJ109J1NWRyc7JGxhbmdbJ3N2Z2Jhc2ljJ109J1NWRyBiYXNpYyc7JGxhbmdbJ3N2Z3RpbnknXT0nU1ZHIHRpbnknOyRsYW5nWydtb2JpbGUnXT0nbW9iaWxlJzskbGFuZ1snYXRzYy10diddPSdhdHNjLXR2JzskbGFuZ1sndHYnXT0nVGFya29pdGV0dHUgdGVsZXZpc2lvIHR5eXBwaXNpbGxlIGxhaXR0ZWlsbGUuJzskbGFuZ1snbm9uZSddPSdFaSBtaXQmYXVtbDsmYXVtbDtuJzskbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ109J1RhbGxlbm5hIHZhbGlkYWF0aW8gYXNldHVrc2V0JzskbGFuZ1snc2V0dGluZ3MnXT0nQXNldHVrc2V0JzskbGFuZ1snc2V0dGluZ3NzYXZlZCddPSdBc2V0dWtzZXQgdGFsbGVubmV0dHUnOyRsYW5nWydsZWF2ZWNvZGUnXT0nJkF1bWw7bCZhdW1sOyBrb3NrZSBrb29kaWluJzskbGFuZ1snZm9ybWF0Y29kZSddPSdNdW90b2lsZSBrb29kaSc7JGxhbmdbJ3NjcmFtYmxlY29kZSddPSdTZWtvaXRhIGtvb2RpJzskbGFuZ1snY2xlYW5jb2RlJ109J1BvaXN0YSBrb29kaXN0YSBrYWlra2kgdHVyaGEnOyRsYW5nWydzYXZlc2V0dGluZ3MnXT0nVGFsbGVubmEgYXNldHVrc2V0JzskbGFuZ1snbWFuZ2xldHlwZXRleHQnXT0nS29vZGluIG11b3RvaWx1JzskbGFuZ1snYnJpZWYnXT0nTHloeXQnOyRsYW5nWyd2ZXJib3NlJ109J01vbmlzYW5haW5lbic7JGxhbmdbJ2NvZGVmaXhlcyddPSdLb29kaW4ga29yamF1a3NldCc7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddPSdQYWtvdGEgdGFnaXQgbG93ZXJjYXNlaWtzaSc7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddPSdQYXJlbW1hbiBYSFRNTC15aHRlZW5zb3BpdnV1ZGVuIHB1b2xlc3RhJzskbGFuZ1snaGlkZW1lc3NhZ2VzdGV4dCddPSdQaWlsb3RhIHZpZXN0aXQgKHgpaHRtbC1rb29kaW4gbG9wcHVvc2Fzc2EnOyRsYW5nWydpbmRlbnR3aWR0aHRleHQnXT0nU2lzZW5ueWtzZW4gbGV2ZXlzJzskbGFuZ1snc3BhY2VzJ109J1YmYXVtbDtsaXQnOyRsYW5nWydkZWJ1Z2xldmVsdGV4dCddPSdEZWJ1ZyByaXZpZW4gbSZhdW1sOyZhdW1sO3ImYXVtbDs6JzskbGFuZ1snZGVidWd0ZXh0J109J0tvb2RpbiBkZWJ1ZyBtb2RlJzskbGFuZ1snU2NyaXB0X2xpc3QnXT0nU2NyaXB0aXQnOyRsYW5nWydBc3NfaGVhZGVyJ109J1lodGVuJmF1bWw7aXNldCBTY3JpcHRpdCc7JGxhbmdbJ1NhbXBsZVRhZyddPSdFc2ltZXJra2kgdGFnaSc7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHQnXT0nTGlzJmF1bWw7JmF1bWw7IFV1c2kgU2NyaXB0aSc7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXT0nTGlzJmF1bWw7JmF1bWw7IFV1c2kgU2NyaXB0aSB0ZWh0JmF1bWw7diZhdW1sOyc7JGxhbmdbJ3RpdGxlX0dyb3VwcyddPSdTY3JpcHRpZW4gcnlobSZhdW1sOyBsaXN0YXVzJzskbGFuZ1sndGl0bGVfU2NyaXB0cyddPSdZa3NpdHQmYXVtbDtpc3RlbiBzY3JpcHRpZW4gbGlzdGF1cyc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nVCZhdW1sO3JrZSZhdW1sOyZhdW1sOzpcblxuSm9zIHQmYXVtbDttJmF1bWw7IHBvaXN0ZXRhYW4sIG5paW4ga2Fpa2tpIGRhdGEgdHVob3V0dXUhXG5cbkpvcyB0JmF1bWw7bSZhdW1sOyBzY3JpcHRpIGt1dWx1dSByeWhtJmF1bWw7JmF1bWw7biwgcmlra29vIHNlIHNpZG9rc2VuIG1pc3QmYXVtbDsgam9odHVlbiBqb3VkdXQgbXVva2thYW1hYW4gdCZhdW1sO3QmYXVtbDsgcnlobSZhdW1sOyZhdW1sOy5cblBhcmFzdGEgYWxvaXR0YWEgcG9pc3RhbWlzIHByb3Nlc3NpIHRlaHQmYXVtbDt2aWVuIGhhbGxpbnRhIGFsdWVlbHRhLlxuXG5SRVZJU0lPIEhJU1RPUklBIFRVSE9VVFVVIFQmQXVtbDtNJkF1bWw7TiBUT0lNRU4gUElURUVOIFNFVVJBVUtTRU5BLi4gT0xFVEtPIFZBUk1BPyc7JGxhbmdbJ3NtYXJ0eUhvdyddPSdTbWFydHkgdG9pbWlpIHNldXJhYXZhc3RpLi4uIEpvcyBoYWx1YXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyB7JHNtYXJ0eS5ub3d9LCBzZW4gc2lqYWFuIGsmYXVtbDt5dCZhdW1sOyB7eyRzbWFydHkubm93fX0uIE4mYXVtbDtpbiB2b2l0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgU21hcnR5JmF1bWw7JzskbGFuZ1snYWxsJ109J1lodGVlbnNvcGl2YSBrYWlraWxsZSBsYWl0dGVpbGxlLic7JGxhbmdbJ2F1cmFsJ109J1RhcmtvaXRldHR1IHB1aGUgc3ludGVudGlzYWF0dG9yZWlsbGUuJzskbGFuZ1snYnJhaWxsZSddPSdUYXJrb2l0ZXR0dSBzb2tlYW5raXJqb2l0dXMga29uZWlsbGUuJzskbGFuZ1snZW1ib3NzZWQnXT0nVGFya29pdGV0dHUgc29rZWFua2lyam9pdHVzIHR1bG9zdGltaWxsZS4nOyRsYW5nWydoYW5kaGVsZCddPSdUYXJrb2l0ZXR0dSBoYW5kaGVsZCBsYWl0dGVpbGxlLic7JGxhbmdbJ3ByaW50J109J1RhcmtvaXRldHR1IHNpdnVqZW4sIGwmYXVtbDtwaW4mYXVtbDtreW0mYXVtbDt0dCZvdW1sO20mYXVtbDtuIG1hdGVyaWFhbGluIGphIGFzaWFraXJqb2plbiBrYXRzb21pc2VlbiBrb25lZWx0YSBlc2lrYXRzZWx1c3NhIHRpbGFzc2EuJzskbGFuZ1sncHJvamVjdGlvbiddPSdUYXJrb2l0ZXR0dSBwcm9qZWN0ZWQgZXNpdHlrc2kmYXVtbDsgdmFydGVuLCBlc2ltZXJraWtzIHByb2pla3RvcmllbiB0YWkgdHVsb3N0ZXR0dWplbiBrYWx2b2plbi4nOyRsYW5nWydzY3JlZW4nXT0nVGFya29pdGV0dHUgcCZhdW1sOyZhdW1sO2FzaWFzc2EgdiZhdW1sO3JpbGxpc2lsbGUgdGlldG9rb25lZW4gbiZhdW1sO3l0Jm91bWw7aWxsZS4nOyRsYW5nWyd0dHknXT0nVGFya29pdGV0dHUgbWVkaWFhIHZhcnRlbiBrJmF1bWw7eXRldHQmYXVtbDt2JmF1bWw7a3NpIGtpaW50ZSZhdW1sO24gbWVya2tpcnV1ZHVra29uIGthbnNzYSwga3V0ZW4gdGVsZXR5eXBwaXNldCBqYSB0ZXJtaW5hYWxpdC4nOyRsYW5nWydNZWRpYVR5cGUnXT0nYWxsIDogWWh0ZWVuc29waXZhIGthaWtpbGxlIGxhaXR0ZWlsbGUuPGJyLz4NCmF1cmFsIDogVGFya29pdGV0dHUgcHVoZSBzeW50ZW50aXNhYXR0b3JlaWxsZS48YnIvPg0KYnJhaWxsZSA6IFRhcmtvaXRldHR1IHNva2VhbmtpcmpvaXR1cyBrb25laWxsZS48YnIvPg0KZW1ib3NzZWQgOiBUYXJrb2l0ZXR0dSBzb2tlYW5raXJqb2l0dXMgdHVsb3N0aW1pbGxlLjxici8+DQpoYW5kaGVsZCA6IFRhcmtvaXRldHR1IGhhbmRoZWxkIGxhaXR0ZWlsbGUuPGJyLz4NCnByaW50IDogVGFya29pdGV0dHUgc2l2dWplbiwgbCZhdW1sO3BpbiZhdW1sO2t5bSZhdW1sO3R0Jm91bWw7bSZhdW1sO24gbWF0ZXJpYWFsaW4gamEgYXNpYWtpcmpvamVuIGthdHNvbWlzZWVuIGtvbmVlbHRhIGVzaWthdHNlbHVzc2EgdGlsYXNzYS48YnIvPg0KcHJvamVjdGlvbiA6IFRhcmtvaXRldHR1IHByb2plY3RlZCBlc2l0eWtzaSZhdW1sOyB2YXJ0ZW4sIGVzaW1lcmtpa3MgcHJvamVrdG9yaWVuIHRhaSB0dWxvc3RldHR1amVuIGthbHZvamVuLjxici8+DQpzY3JlZW4gOiBUYXJrb2l0ZXR0dSBwJmF1bWw7JmF1bWw7YXNpYXNzYSB2JmF1bWw7cmlsbGlzaWxsZSB0aWV0b2tvbmVlbiBuJmF1bWw7eXQmb3VtbDtpbGxlLjxici8+DQp0dHkgOiBUYXJrb2l0ZXR0dSBtZWRpYWEgdmFydGVuIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDtrc2kga2lpbnRlJmF1bWw7biBtZXJra2lydXVkdWtrb24ga2Fuc3NhLCBrdXRlbiB0ZWxldHl5cHBpc2V0IGphIHRlcm1pbmFhbGl0Ljxici8+DQp0diA6IFRhcmtvaXRldHR1IHRlbGV2aXNpbyB0eXlwcGlzaWxsZSBsYWl0dGVpbGxlLic7JGxhbmdbJ0NhbmNlbGVkJ109J1BlcnV1dGl0IHRvaW1pbm5vbi4gS2Fpa2tpIGRhdGEgbWVuZXRldCZhdW1sOyZhdW1sO24uJzskbGFuZ1snQnRuQURERUQnXT0nVXVzaSBTY3JpcHRpIGxpcyZhdW1sO3R0eS4nOyRsYW5nWydCdG5FRElURUQnXT0nU2NyaXB0aSZhdW1sOyBtdW9rYXR0dS4nOyRsYW5nWydCdG5ERUxFVEVEJ109J1NjcmlwdGkgcG9pc3RldHR1JzskbGFuZ1sndHlwZV9sYWJlbCddPSdUeXlwcGknOyRsYW5nWydyZXZpc2lvbiddPSdSZXZpc2lvJzskbGFuZ1snaXNFZGl0J109J2VkaXRvaSc7JGxhbmdbJ2VtdHB5R3JvdXAnXT0nU2ludW4gcGl0JmF1bWw7JmF1bWw7IGxpcyZhdW1sO3QmYXVtbDsgc2NyaXB0aSByeWhtJmF1bWw7JmF1bWw7biB2b2lkYWtzZXNpIGt1dHN1YSBzaXQmYXVtbDsnOyRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXT0nU2NyaXB0aW4gSUQnOyRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ109J1NjcmlwdGluIFR5eXBwaSc7JGxhbmdbJ1NjcmlwdE5hbWVfbGFiZWwnXT0nU2NyaXB0aW4gTmltaSc7JGxhbmdbJ1NpbmdsZUNvZGVfbGFiZWwnXT0nWWtzaXR0JmF1bWw7aXNlbiBTY3JpcHRpbiBPbGV0dXMgS3V0c3UnOyRsYW5nWydHcm91cHRTaXplX2xhYmVsJ109J1lodGVlbnMmYXVtbDsnOyRsYW5nWydub3Rlc19sYWJlbCddPSdNdWlzdGlpbnBhbm90JzskbGFuZ1snU2hvd1ZhbF9sYWJsZSddPSdQaWQmYXVtbDsgVmllc3RpdCBBdWtpJzskbGFuZ1snVHVybk9OVmFsX2xhYmxlJ109J1BpZCZhdW1sOyBWYWxpZG9pbnRpIDxzdHJvbmc+UCZBdW1sOyZBdW1sO0xMJkF1bWw7PC9zdHJvbmc+JzskbGFuZ1snaG90TGlua0NoZWNrX2xhYmxlJ109J1Rhcmthc3RhIEt1dW1hdExpbmtpdCc7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdTaW51biBwaXQmYXVtbDsmYXVtbDsgcGlzdCZhdW1sOyZhdW1sOyBLdXVtaWVuTGlua2tpZW4gdGFya2lzdHVzIHAmYXVtbDsmYXVtbDtsbGUnOyRsYW5nWydmaWx0ZXJQcm9wX2xhYmxlJ109J0ZpbHR0ZXImb3VtbDtpIHZhbGludG9qYSBlZGlzdCZhdW1sO20mYXVtbDsmYXVtbDtuIHZhbGlkb2ludGlhJzskbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddPSdDU1MgUHJvZmlpbGknOyRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ109J01lZGlhIHR5eXBwaSc7JGxhbmdbJ1ZBTExhbmdfbGFibGUnXT0nS2llbGknOyRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ109JyB3M2MgQ1NTIFZhcm9pdHVzIFRhc28nOyRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXT0nTWVkaWEgdHl5cHBpJzskbGFuZ1snTWluaWZ5X2xhYmVsJ109J01pbmlmeSB0dWxvc3RldHRhZXNzYSc7JGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddPSdMdW9udGkgcCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDsnOyRsYW5nWydNb2RpZmVkRGF0ZV9sYWJlbCddPSdNdW9ra2F1cyBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sOyc7JGxhbmdbJ3BhdGhPcHRpb25fbGFiZWwnXT0nSyZhdW1sO3l0JmF1bWw7IHBvbGt1YTxlbT4oZXNpbTogJnF1b3Q7L3VwbG9hZHMvLi4uJnF1b3Q7KTwvZW0+JzskbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddPSdLJmF1bWw7eXQmYXVtbDsgdGFya2VubmV0dHVhIGp1dXJpIFVSTDppYTxlbT4oZXNpbTogJnF1b3Q7aHR0cHM6Ly9zdWIuZG9tYWluLnRsZC8mcXVvdDspPC9lbT4nOyRsYW5nWydHcm9vdFVSTCddPSdZbGVpbmVuIFNjcmlwdGllbiBKdXVyaSBVUkwnOyRsYW5nWydlbXB0eWNhY2hlRXJyb3JfZG9BRFVJVCddPSd2JmF1bWw7bGltdWlzdGluIHR5aGplbm55cyBlcCZhdW1sO29ubmlzdHVpJzskbGFuZ1snZW1wdGllZENhY2hfZG9BRFVJVCddPSd0eWhqZW5zaSBzY3JpcHRpbiB2JmF1bWw7bGltdWlzdGluJzskbGFuZ1snY2xlYXJlZFJldmlzaW9uX2RvQURVSVQnXT0ncmV2aXNpbyBoaXN0b3JpYSB0eWhqJmF1bWw7dHR5JzskbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ109J1Rhcmtpc3RldHR1IHNjcmlwdGknOyRsYW5nWydyZWxlYXNlZF9kb0FEVUlUJ109J2p1bGthaXN0dSBzY3JpcHRpJzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nSyZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IHNjcmlwdGkmYXVtbDsgPGVtPihIdW9taTogSm9zIHBvbGt1IG9uIGFzZXRldHR1LCB0JmF1bWw7bSZhdW1sOyBvaGl0dGFhIHNlbik8L2VtPic7JGxhbmdbJ2RlYnVnSVRfbGFiZWwnXT0nZGVidWdJVCc7JGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ109JzxlbT4oRmlyZXBocCBtb2QgcGl0JmF1bWw7JmF1bWw7IG9sbGEgYXNlbm5ldHR1bmEpPC9lbT4nOyRsYW5nWydkZWJ1Z1QnXT0nRGVidWdnYXVzIGFzZXR1a3NldCc7JGxhbmdbJ0VkaXRIaXN0b3J5J109J0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7IEhpc3RvcmlhbiBNdW9ra2F1cyc7JGxhbmdbJ25vbmVJblR5cGUnXT0nPGgxPlNpbnVuIHBpdCZhdW1sOyZhdW1sOyBlbnNpa3NpIGxpcyZhdW1sO3QmYXVtbDsgPGJyLz50JmF1bWw7bSZhdW1sO24gdHl5cHBpbmVuIHNjcmlwdGk8L2gxPic7JGxhbmdbJ3JldmlzaW9uVGl0bGUnXT0nUmV2aXNpbyBIaXN0b3JpYSc7JGxhbmdbJ3JldmlzaW9uX2xhYmVsJ109JzxzdHJvbmc+SyZhdW1sO3l0JmF1bWw7IHJldmlzaW8gaGlzdG9yaWFhPC9zdHJvbmc+JzskbGFuZ1sncmV2aXNpb25fb3AnXT0nPGgxPlJldmlzaW88L2gxPg0KPGgzPlBvaXN0YW1hbGxhIHQmYXVtbDttJmF1bWw7IGsmYXVtbDt5dCZvdW1sO3N0JmF1bWw7LCBlaSBub2xsYWEgcmV2aXNpbyBoaXN0b3JpYWEuIFQmYXVtbDttJmF1bWw7IHRvaW1paSBrdXRlbiBwYXVzZTwvaDM+JzskbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXT0nQXNldGEgUmV2aXNpb2lkZW4gTSZBdW1sOyZBdW1sO1ImQXVtbDsnOyRsYW5nWydjbGVhclJldiddPSdUeWhqZW5uJmF1bWw7IEhpc3RvcmlhJzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZVRpdGxlJ109J0VubmFsdGEgbGF0YWEgQ3NzIEt1dmF0JzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCddPSc8c3Ryb25nPksmYXVtbDt5dCZhdW1sOyBDc3Mga3V2aWVuIGVubmFsdGEgbGF0YXVzdGE8L3N0cm9uZz4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ109JzxoMT5Fbm5hbHRhIGxhdGFhIENzcyBLdXZhdDwvaDE+DQo8aDM+Sm9zIGomYXVtbDtyamVzdGVsbSZhdW1sO3NpIG9uIG9pa2VpbiBjb25maWd1cm9pdHUsIHQmYXVtbDttJmF1bWw7IG5vcGV1dHRhYSBrdXZpZW4gbGF0YWFtaXN0YSBlbGVtZW50ZWlzcyZhdW1sOy48L2gzPic7JGxhbmdbJ2dsb2JhbHVybCddPSc8aDE+QXNldGEganV1cmkgVVJMPC9oMT4NCjxoMz5LJmF1bWw7eXRldCZhdW1sOyZhdW1sO24ga3VuIHRhcnZpdGFhbiBTU0wgdHVraSB0YWkgaGFsdXRhYW4gdHkmb3VtbDtudCZhdW1sOyZhdW1sOyBzY3JpcHRpdCBhbGFkb21haW5laWhpbi48L2gzPic7JGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ109JzxzdHJvbmc+UHJvc2Vzc29pIFNtYXJ0eTwvc3Ryb25nPjxici8+IGRhdGEgcGFpbmlrZSBrZW50aXNzJmF1bWw7JzskbGFuZ1snc21hcnR5T24nXT0nPGgxPlByb3Nlc3NvaSBTbWFydHkgZGF0YTwvaDE+DQo8aDM+S3VuIHQmYXVtbDttJmF1bWw7IG9uIHAmYXVtbDsmYXVtbDtsbCZhdW1sOywgdm9pdCBhc2V0dGFhIHBhaW5pa2Uga2VudGlsbGUgYXJ2b2phIG11aWx0YSBtb2R1dWxlaWx0YSBrdXRlIFByb2R1Y3RzIHRhaSBDYXRhbG9nZXI8L2gzPic7JGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJ109JzxzdHJvbmc+YXV0dGFhIHJpa2tvbWFhbiBhc2lha2FzIHB1b2xlbiB2JmF1bWw7bGltdWlzdGluPC9zdHJvbmc+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXT0nPGgxPmF1dHRhYSByaWtrb21hYW4gYXNpYWthcyBwdW9sZW4gdiZhdW1sO2xpbXVpc3RpbjwvaDE+DQo8aDM+VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBhIGZpbGUgY3JlYXRpb24gdGltZSBhdCB0aGUgZW5kIG9mIGEgZmlsZS4gIFR1cm5pbmcgdGhpcyBvbiB3aWxsIGFkZCB0aGlzIHRvIGFsbCBsb2NhbCB1cmxzLiAoQ1NTIG9ubHkgYXRtKSAtTm90aGluZyBpcyBkb25lIHRvIGhvdGxpbmtzPC9oMz4nOyRsYW5nWydlZGl0J109J011b2trYWEnOyRsYW5nWydkZWxldGUnXT0nUG9pc3RhJzskbGFuZ1snQ2xvc2UnXT0nU3VsamUnOyRsYW5nWydPcGVuJ109J0F2YWEnOyRsYW5nWydkaXJFbXB0eSddPSdIYWtlbWlzdG8gb2xpIHR5aGomYXVtbDsnOyRsYW5nWydjbGVhblRlbXAnXT0nVHloamVubiZhdW1sOyB0ZW1wPyc7JGxhbmdbJ3VyVGVtcFBhdGgnXT0nViZhdW1sO2xpbXVpc3RpIHBvbGt1c2knOyRsYW5nWydMYXN0TW9kJ109J1ZpaW1la3NpIE11b2thdHR1JzskbGFuZ1snY2FjaGVGZXJyb3InXT0nU2NyaXB0RGVwbG95IGVpIHZvaW51dCBsdW9kYSB2JmF1bWw7bGltdWlzdGkgaGFrZW1pc3RvYSwgdGFya2FzdGEgYXNldHVrc2VzaS4nOyRsYW5nWydOYW1lJ109J05pbWknOyRsYW5nWydQcm9jY2Vzc2luZyddPSdQcm9zZXNzb2knOyRsYW5nWydTYXZlZCddPSdUYWxsZW5uZXR0dSc7JGxhbmdbJ0RvbmUnXT0nVmFsbWlzJzskbGFuZ1snVmFsaWRhdGluZyddPSdWYWxpZG9pJzskbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ109J1J5aG0mYXVtbDtuIE5pbWknOyRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ109J1NjcmlwdGluIHR5eXBwaSc7JGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddPSdTY3JpcHRpbiBwb29saSc7JGxhbmdbJ0xJTkUnXT0nUklWSSc7JGxhbmdbJ1RZUEUnXT0nVFlZUFBJJzskbGFuZ1snU1VCVFlQRSddPSdBTEFUWVlQUEknOyRsYW5nWydTVFJJTkcnXT0nSk9OTyc7JGxhbmdbJ01FU1NBR0UnXT0nVklFU1RJJzskbGFuZ1snTEVWRUwnXT0nVEFTTyc7JGxhbmdbJ05vdGVzJ109J011aXN0aWlucGFub3QnOyRsYW5nWydXYXJuaW5ncyddPSdWYXJvaXR1a3NldCc7JGxhbmdbJ0Vycm9ycyddPSdWaXJoZWV0JzskbGFuZ1snaGlkZGVuJ109J3BpaWxvdGV0dHUnOyRsYW5nWydTY3JpcHQnXT0nU2NyaXB0aSc7JGxhbmdbJ0VVUkxTJ109J1B1cmV0dXQgVVJMOml0JzskbGFuZ1snUkNTUyddPSdSZW5kZXImb3VtbDtpZHl0IENTUzomYXVtbDt0JzskbGFuZ1snU0NTUyddPSdDU1MgUmFrZW5uZSc7JGxhbmdbJ0ZDT05UJ109J1RpZWRvc3RvIHNpcyZhdW1sO2x0Jm91bWw7JzskbGFuZ1snaVVSTCddPSdrdXZhbiBVUkwnOyRsYW5nWydUeXBlJ109J1R5eXBwaSc7JGxhbmdbJ1NpemUnXT0nS29rbyc7JGxhbmdbJ1N0YXR1cyddPSdUaWxhJzskbGFuZ1snaG90bGluayddPSc8c3Ryb25nPkxpbmtpdGV0JmF1bWw7JmF1bWw7bjo8L3N0cm9uZz4gbiZhdW1sO3l0dCZhdW1sOyZhdW1sOyBvbGV2YW4ga3V1bWFsaW5ra2kuJzskbGFuZ1snQnJva2VubGluayddPSdSaWtraW4mYXVtbDtpbmVuIExpbmtraSc7JGxhbmdbJ05PY3NzSSddPSdFaSBjc3Mga3V2aWEnOyRsYW5nWydZZXNWQWxhc3RlciddPSc8aDI+WW91IHZhbGlkYXRlZCEgKio8L2gyPjxpbWcgc3R5bGU9JnF1b3Q7Ym9yZGVyOjA7d2lkdGg6ODhweDtoZWlnaHQ6MzFweCZxdW90O3NyYz0mcXVvdDtodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUmcXVvdDthbHQ9JnF1b3Q7VmFsaWQgQ1NTISZxdW90OyAvPjxici8+IDxzdHJvbmc+KiogeW91IGFyZSBmaWx0ZXJpbmcgZXJyb3JzIGFuZCBtYXkgaGF2ZSBmaWx0ZXJlZCBhIHJlYWwgZXJyb3I8L3N0cm9uZz4nOyRsYW5nWydZZXNWQWwnXT0nPGgyPllvdSB2YWxpZGF0ZWQhPC9oMj48aW1nIHN0eWxlPSZxdW90O2JvcmRlcjowO3dpZHRoOjg4cHg7aGVpZ2h0OjMxcHgmcXVvdDtzcmM9JnF1b3Q7aHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcy1ibHVlJnF1b3Q7YWx0PSZxdW90O1ZhbGlkIENTUyEmcXVvdDsgLz4nOyRsYW5nWydDbGVhckltZyddPSdQb2lzdGEgS3V2YSc7JGxhbmdbJ0ZpbmlzaCddPSdWYWxtaXMnOyRsYW5nWydyZXZlcnQnXT0nUGFsYXV0YSc7JGxhbmdbJ2FwcGx5J109J0smYXVtbDt5dCZhdW1sOyc7JGxhbmdbJ2NhbmNlbCddPSdQZXJ1dXRhJzskbGFuZ1snZm9ybV9jYW5jZWwnXT0nUGVydXV0YSc7JGxhbmdbJ1NhdmUnXT0nVGFsbGVubmEnOyRsYW5nWydkb25lJ109J1ZhbG1pcyc7JGxhbmdbJ2FkZCddPSdMaXMmYXVtbDsmYXVtbDsnOyRsYW5nWydzdWJtaXQnXT0nTCZhdW1sO2hldCZhdW1sOyc7JGxhbmdbJ1JFT1JERVInXT0nVXVkZWxsZWVuIGomYXVtbDtyamVzdCZhdW1sOyc7JGxhbmdbJ2Zvcm1fc3VibWl0J109J1RhbGxlbm5hIEFzZXR1a3NldCc7JGxhbmdbJ21vZF9wcmVmc190aXRsZSddPSdNb2R1dWxpbiBBc2V0dWtzZXQnOyRsYW5nWydwcmVmc3VwZGF0ZWQnXT0nTW9kdXVsaW4gYXNldHVrc2V0IHAmYXVtbDtpdml0ZXR0eS4nOyRsYW5nWydvcHRpb25zdXBkYXRlZCddPSd2YWxpbm5hdCBwJmF1bWw7aXZpdGV0dHknOyRsYW5nWydtb2RkZXNjcmlwdGlvbiddPSdOT1BFVVRBIFNBSVRUSUFTSSAuLi4hISEhICZidWxsOyBUdWxvc3RhIGR5bmFhbWlzdGEgSlM6JmF1bWw7JmF1bWw7IHNlayZhdW1sOyBDU1M6JmF1bWw7JmF1bWw7IHNtYXJ0eW4ga2Fuc3NhLi4uICZidWxsOyBBc2V0YSB0aWVkb3N0b3QgayZhdW1sO3l0dCZhdW1sO20mYXVtbDsmYXVtbDtuIGFsYWRvbWFpbmVqYS4uLiAmYnVsbDsgdiZhdW1sO2xpbXVpc3RpLi4uICZidWxsOyBtaW5pZmllZC4uLiAmYnVsbDsgTXVpc3RpbmtvIG1haW5pdGEgZXR0JmF1bWw7IHZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBzbWFydHlhIEpTIGphIENTUyBzY3JpcHRlaXNzJmF1bWw7c2khISEhIC0gWWtzaW5rZXJ0YWluZW4sIGpvdXN0YXZhISc7JGxhbmdbJ3dlbGNvbWVfdGV4dCddPSc8cD5IZWkhPC9wPic7JGxhbmdbJ2NoYW5nZWxvZyddPSc8dWw+DQoNCiAgPGxpPlZlcnNpb24gMC4xIEJldGEgcmVsZWFzZS48L2xpPg0KICA8bGk+VmVyc2lvbiAwLjIgbG90cyBvZiBjaGFuZ2VzIHRvIGZpeCBidWcuLi48L2xpPg0KICAgPGxpPlZlcnNpb24gMC4zIHNldCB0aGUgc21hcnR5IHRvIHVzZSB7eyB9fTwvbGk+DQogICAgPGxpPlZlcnNpb24gMC40IGZpeGVkIGJ1Zy4uIGltcHJvdmVkIHRoZSBtaW5pYWZjYXRpb24gdG8gYSBzYXZlcyBvZiB1cCB0byA2MCU8L2xpPg0KCTxsaT5WZXJzaW9uIDAuNy4xIG1hbnkgY2hhbmdlcy4uLiA8c3Ryb25nPkJSRUFLUyBVUEdSQURFPC9zdHJvbmc+IENvcHkgc2NyaXB0cywgaW5zdGFsbCBhbmQgdGhlIHVwbG9hZCBhbmQgcmVpbnN0YWxsLi4uIFNvcnJ5IGJ1dCBpdCB3YXMgbmVlZGVkIGZvciBWRVJTSU9OIEhJU1RPUlkgZml4ZWQgYnVncy4uIG1hbnkgaW1wcm92ZW1lbnRzPC9saT4NCjwvdWw+JzskbGFuZ1snaGVscCddPSc8bGluayBtZWRpYT0mcXVvdDtzY3JlZW4mcXVvdDsgaHJlZj0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7Lz48ZGl2IGNsYXNzPSZxdW90O1NpbVdyYXAmcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9JnF1b3Q7U2ltY29uJnF1b3Q7PiA8aDMgY2xhc3M9JnF1b3Q7QmFja0xpbmsmcXVvdDs+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij48PCBCYWNrPC9hPjwvaDM+DQo8aDE+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gxPg0KPGgyPldyaXRlIG1hbmFnZSBhbmQgZGVwbG95IEpTIGFuZCBDU1M8L2gyPg0KPGEgaWQ9IlNjcmlwdERlcGxveSI+PC9hPg0KPHA+U2NyaXB0RGVwbG95IG1vZHVsZSB0aGF0IGNhbiBjb21iaW5lIG11bHRpcGxlIENTUyBvciBKYXZhc2NyaXB0IGZpbGVzLCBjb21wcmVzcyB0aGVpciBjb250ZW50cyAoaS5lLiByZW1vdmFsIG9mIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UvY29tbWVudHMpLCBhbmQgc2VydmUgdGhlIHJlc3VsdHMgd2l0aCBIVFRQIGVuY29kaW5nIChnemlwL2RlZmxhdGUpIGFuZCBoZWFkZXJzIHRoYXQgYWxsb3cgb3B0aW1hbCBjbGllbnQtc2lkZSBjYWNoaW5nLiBUaGlzIGhlbHBzIHlvdSBmb2xsb3cgc2V2ZXJhbCBvZiBZYWhvbyEmIzAzOTtzIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL2luZGV4Lmh0bWwjcnVsZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5SdWxlcyBmb3IgSGlnaCBQZXJmb3JtYW5jZSBXZWIgU2l0ZXM8L2E+LiAoU2VlICZxdW90O1Byb2JsZW0gRG9tYWluJnF1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldpcnRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QmVmb3JlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmcmcXVvdDsgYWx0PSZxdW90O2FmdGVyJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YmVmb3JlJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPlJlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPk1vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+QXV0b21hdGljYWxseSByZXdyaXRlcyByZWxhdGl2ZSBVUklzIGluIGNvbWJpbmVkIENTUyBmaWxlcyB0byBwb2ludCB0byB2YWxpZCBsb2NhdGlvbnMgPC9saT4NCiAgPGxpPldpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT5Db250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlJiMwMzk7cyBtb2RfZGVmbGF0ZSBvcHRpb24hIDwvbGk+DQo8L3VsPg0KPGgzPjxlbT48c3Ryb25nPioqIE5vdGU6PC9zdHJvbmc+IEl0IGlzIGJlc3QgdG8gdXNlIGEgLmh0YWNjZXNzIHNjcmlwdCB0byBzZXQgdGhlIGFnZSB0aW1lcy4gU2NyaXB0RGVwbG95IGlzIGRlc2lnbmVkIGZvciBlZmZpY2llbmN5LCBidXQgZm9yIHZlcnkgaGlnaCB0cmFmZmljIHNpdGVzLCBTY3JpcHREZXBsb3kgbWF5IHNlcnZlIGZpbGVzIHNsb3dlciB0aGFuIHlvdXIgSFRUUGQgZHVlIHRvIHRoZSBDR0kgb3ZlcmhlYWQgb2YgUEhQLiAgVG8gb3ZlciBjb21lIHRoaXMgSnVzdCBjaGVjayAmcXVvdDt1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMmcXVvdDs8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDM+R2V0IGEgc2NyaXB0IGdyb3VwPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBncm91cElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5ncm91cElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5TbWFydHlPbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPk1pbmlmeT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6dHJ1ZTwvc3Ryb25nPjwvZW0+IDxici8+fCAgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQoNCg0KDQoNCg0KDQo8bGk+PHN0cm9uZz5NZWRpYVR5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVCdXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oIHRydWUvZmFsc2UgKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KPGxpPjxzdHJvbmc+YXNzaWduPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3RVcmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFNjcmlwdERlcGxveSBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvciBpbiB0aGUgdXBsb2FkIGZvbGRlci4gIElmIHlvdSBtb3ZlIHRoZSBwYXRoIHRvIHRoZSB1cGxhb2QgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9JnF1b3Q7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7JnF1b3Q7PjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9ICYjMDM5Oy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPlVSTD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9JmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDtxdW90OyZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJiMwMzk7cyBiZXN0IHByYWN0aWNlcyB0aGF0IGFyZSBhZGRyZXNzZWQgYnkgdGhlIHVzZSBvZiBTY3JpcHREZXBsb3kuIDwvcD4NCjx1bD4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbnVtX2h0dHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NYWtlIEZld2VyIEhUVFAgUmVxdWVzdHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXhwaXJlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkFkZCBhbiBFeHBpcmVzIG9yIGEgQ2FjaGUtQ29udHJvbCBIZWFkZXI8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZ3ppcCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkd6aXAgQ29tcG9uZW50czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNtaW5pZnkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NaW5pZnkgSmF2YVNjcmlwdCBhbmQgQ1NTPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V0YWdzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q29uZmlndXJlIEVUYWdzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI3VuZGVyMjUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5LZWVwIENvbXBvbmVudHMgdW5kZXIgMjVLPC9hPjwvbGk+DQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICYjMDM5OzxhIGhyZWY9Imh0dHA6Ly93d3cuaHVubG9jay5jb20vYmxvZ3MvU3VwZXJjaGFyZ2VkX0phdmFzY3JpcHQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5TdXBlcmNoYXJnZWQgSmF2YVNjcmlwdDwvYT4mIzAzOTsgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHBibSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzskbGFuZ1sndXRtYSddPScxNTY4NjEzNTMuMTQ0ODIzODExLjEyNTEzNzU0MzkuMTI3NDI4Mjg2NC4xMjc0Mjk1Njg2LjIzMCc7JGxhbmdbJ3V0bXonXT0nMTU2ODYxMzUzLjEyNzQxMDI4MjkuMjIzLjI4LnV0bWNjbj0ob3JnYW5pYyl8dXRtY3NyPWdvb2dsZXx1dG1jdHI9Y21zbXMgbG9nZ2VkIGluIHVzZXJpZHx1dG1jbWQ9b3JnYW5pYyc7JGxhbmdbJ3FjYSddPSdQMC0xMzc5ODkzMTA1LTEyNTIwNjc3Nzk2OTQnOyRsYW5nWyd1dG1jJ109JzE1Njg2MTM1Myc7JGxhbmdbJ3V0bWInXT0nMTU2ODYxMzUzLjEuMTAuMTI3NDI5NTY4Nic7ID8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95ICc7JGxhbmdbJ3Bvc3RpbnN0YWxsJ109J0xhIHByZW1pJmVncmF2ZTtyZSAmZWFjdXRlO3RhcGUgJmFncmF2ZTsgZmFpcmUgZXN0IGwmIzAzOTthaWRlJzskbGFuZ1sncG9zdHVuaW5zdGFsbCddPSdOJiMwMzk7aCZlYWN1dGU7c2l0ZXogcGFzICZhZ3JhdmU7IG5vdXMgZGlyZSBzaSB2b3VzIHRyb3V2ZXIgdW4gbW95ZW4gZCYjMDM5O2FtJmVhY3V0ZTtsaW9yZXIgU2NyaXB0RGVwbG95LCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0ZXotbm91cywgbm91cyBzb21tZXMgaGV1cmV1eCBkJiMwMzk7YXZvaXIgZGUgdm9zIG5vdXZlbGxlcy48L2E+JzskbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddPSdMYSBkJmVhY3V0ZTtzaW5zdGFsbGF0aW9uIGRlIGNlIG1vZHVsZSBuZSBwb3J0ZXJhIHBhcyBhdHRlaW50ZSBhdXggZG9ubiZlYWN1dGU7ZXMgZXQgYXV4ICZlYWN1dGU7diZlYWN1dGU7bmVtZW50cy4gVm91bGV6LXZvdXMgY29udGludWVyID8nOyRsYW5nWyd1bmluc3RhbGxlZCddPSdMZSBtb2R1bGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGU7Lic7JGxhbmdbJ2luc3RhbGxlZCddPSdMZSBtb2R1bGUgIHZlcnNpb24gJXMgYSAmZWFjdXRlO3QmZWFjdXRlOyBpbnN0YWxsJmVhY3V0ZTsuJzskbGFuZ1sndXBncmFkZWQnXT0nTGUgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgbWlzICZhZ3JhdmU7IGpvdXIgJmFncmF2ZTsgbGEgdmVyc2lvbiAlcy4nOyRsYW5nWydtb2R1bGVfb3B0aW9ucyddPSdPcHRpb25zIGR1IG1vZHVsZSc7JGxhbmdbJ3RlbXBsYXRlX21hbmcnXT0nR2FiYXJpdCc7JGxhbmdbJ0RlcGxveW1lbnRzZXR0aW5ncyddPSdPcHRpb25zIGRlIGQmZWFjdXRlO3Bsb2llbWVudCc7JGxhbmdbJ1ZhbHNldHRpbmdzJ109J1BhcmFtJmVncmF2ZTt0cmVzIGRlIHZhbGlkYXRpb24nOyRsYW5nWydlbiddPSdBbmdsYWlzJzskbGFuZ1snZnInXT0nRnJhbiZjY2VkaWw7YWlzJm5ic3A7KEZyZW5jaCknOyRsYW5nWydpdCddPSdJdGFsaWVuIChJdGFsaWFuKSc7JGxhbmdbJ2tvJ109J0NvciZlYWN1dGU7ZW4nOyRsYW5nWydqYSddPSdKYXBvbmFpcyc7JGxhbmdbJ2VzJ109J0VzcGFnbm9sIChTcGFuaXNoKSc7JGxhbmdbJ3poLWNuJ109J0NoaW5vaXMnOyRsYW5nWydubCddPSdIb2xsYW5kYWlzIChEdXRjaCknOyRsYW5nWydkZSddPSdBbGxlbWFuZCAoR2VybWFuKSc7JGxhbmdbJ3BsJ109J1BvbG9uYWlzIChQb2xpc2gpJzskbGFuZ1sncm8nXT0nUm91bWFpbiAoUm9tYW5pYW4pJzskbGFuZ1snY3MnXT0nRXN0b25pZW4gKCZFZ3JhdmU7ZSZzY2Fyb247dGluYSknOyRsYW5nWydiZyddPSdCdWxnYXJpZSAoQnVsZ2FyaWEpJzskbGFuZ1snc3YnXT0nU3UmZWFjdXRlO2RvaXMgKFN2ZW5za2EpJzskbGFuZ1snZmEnXT0nUGVyc2FuIChGYXJzaSknOyRsYW5nWydydSddPSdSdXNzZSAoUnVzc2lhbiknOyRsYW5nWydwdC1CUiddPSdQb3J0dWdhaXMgQnImZWFjdXRlO3NpbGllbiAoQnJhemlsbGlhbiBQb3J0dWd1ZXNlIC0gc3RhbmRhcmQpJzskbGFuZ1snTG5vbmUnXT0nQXVjdW4gYXZlcnRpc3NlbWVudCc7JGxhbmdbJ0wwJ109J05pdmVhdSAwJzskbGFuZ1snTDEnXT0nTml2ZWF1IDEnOyRsYW5nWydMMiddPSdOaXZlYXUgMic7JGxhbmdbJ2NzczEnXT0nQ1NTIDEgJzskbGFuZ1snY3NzMiddPSdDU1MgMiAnOyRsYW5nWydjc3MyMSddPSdDU1MgMi4xICc7JGxhbmdbJ2NzczMnXT0nQ1NTIDMgJzskbGFuZ1snc3ZnJ109J1NWRyAnOyRsYW5nWydzdmdiYXNpYyddPSdTVkcgYmFzaWMgJzskbGFuZ1snc3ZndGlueSddPSdTVkcgdGlueSAnOyRsYW5nWydtb2JpbGUnXT0nbW9iaWxlICc7JGxhbmdbJ2F0c2MtdHYnXT0nYXRzYy10diAnOyRsYW5nWyd0diddPSdBIGwmIzAzOTthdHRlbnRpb24gZGVzIGFwcGFyZWlscyBkZSB0eXBlIHQmZWFjdXRlO2wmZWFjdXRlO3Zpc2lvbi4nOyRsYW5nWydub25lJ109J2F1Y3VuJzskbGFuZ1snSW5saW5lJ109J2QmZWFjdXRlO3RlY3Rpb24gYXV0b21hdGlxdWUnOyRsYW5nWydIVE1MNSddPSdIVE1MNSAoZXhwZXJpbWVudGFsKSAnOyRsYW5nWydYSFRNTF8xXzBfU3RyaWN0J109J1hIVE1MIDEuMCBTdHJpY3QnOyRsYW5nWydYSFRNTF8xXzBfVHJhbnNpdGlvbmFsJ109J1hIVE1MIDEuMCBUcmFuc2l0aW9uYWwnOyRsYW5nWydYSFRNTF8xXzBfRnJhbWVzZXQnXT0nWEhUTUwgMS4wIEZyYW1lc2V0JzskbGFuZ1snSFRNTF80XzAxX1N0cmljdCddPSdIVE1MIDQuMDEgU3RyaWN0JzskbGFuZ1snSFRNTF80XzAxX1RyYW5zaXRpb25hbCddPSdIVE1MIDQuMDEgVHJhbnNpdGlvbmFsJzskbGFuZ1snSFRNTF80XzAxX0ZyYW1lc2V0J109J0hUTUwgNC4wMSBGcmFtZXNldCc7JGxhbmdbJ0hUTUxfM18yJ109J0hUTUwgMy4yJzskbGFuZ1snSFRNTF8yXzAnXT0nSFRNTCAyLjAnOyRsYW5nWydJU08vSUVDXzE1NDQ1OjIwMDBfKCJJU09fSFRNTCIpJ109J0lTTy9JRUMgMTU0NDU6MjAwMCAoJnF1b3Q7SVNPIEhUTUwmcXVvdDspJzskbGFuZ1snWEhUTUxfMV8xJ109J1hIVE1MIDEuMSc7JGxhbmdbJ1hIVE1MXytfUkRGYSddPSdYSFRNTCArIFJERmEnOyRsYW5nWydYSFRNTF9CYXNpY18xXzAnXT0nWEhUTUwgQmFzaWMgMS4wJzskbGFuZ1snWEhUTUxfQmFzaWNfMV8xJ109J1hIVE1MIEJhc2ljIDEuMSc7JGxhbmdbJ1hIVE1MX01vYmlsZV9Qcm9maWxlXzFfMiddPSdYSFRNTCBNb2JpbGUgUHJvZmlsZSAxLjInOyRsYW5nWydYSFRNTC1QcmludF8xXzAnXT0nWEhUTUwtUHJpbnQgMS4wJzskbGFuZ1snWEhUTUxfMV8xX3BsdXNfTWF0aE1MXzJfMCddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wICc7JGxhbmdbJ1hIVE1MXzFfMV9wbHVzX01hdGhNTF8yXzBfcGx1c19TVkdfMV8xJ109J1hIVE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xICc7JGxhbmdbJ01hdGhNTF8yXzAnXT0nTWF0aE1MIDIuMCc7JGxhbmdbJ1NWR18xXzAnXT0nU1ZHIDEuMCc7JGxhbmdbJ1NWR18xXzEnXT0nU1ZHIDEuMSc7JGxhbmdbJ1NWR18xXzFfVGlueSddPSdTVkcgMS4xIFRpbnknOyRsYW5nWydTVkdfMV8xX0Jhc2ljJ109J1NWRyAxLjEgQmFzaWMnOyRsYW5nWydTTUlMXzFfMCddPSdTTUlMIDEuMCc7JGxhbmdbJ1NNSUxfMl8wJ109J1NNSUwgMi4wJzskbGFuZ1snZGVmYXVsdFBhZ2VfbGFibGUnXT0nUmV2JmVhY3V0ZTtyaWZpZXIgY2V0dGUgcGFnZSc7JGxhbmdbJ2VuY29kaW5nX2xhYmxlJ109J0VuY29kYWdlJzskbGFuZ1snZGV0ZWN0J109J2QmZWFjdXRlO3RlY3Rpb24gYXV0b21hdGlxdWUnOyRsYW5nWyd1dGYtOCddPSd1dGYtOCAoVW5pY29kZSwgd29ybGR3aWRlKSAnOyRsYW5nWyd1dGYtMTYnXT0ndXRmLTE2IChVbmljb2RlLCB3b3JsZHdpZGUpICc7JGxhbmdbJ2lzby04ODU5LTEnXT0naXNvLTg4NTktMSAoV2VzdGVybiBFdXJvcGUpICc7JGxhbmdbJ2lzby04ODU5LTInXT0naXNvLTg4NTktMiAoQ2VudHJhbCBFdXJvcGUpICc7JGxhbmdbJ2lzby04ODU5LTMnXT0naXNvLTg4NTktMyAoU291dGhlcm4gRXVyb3BlKSAnOyRsYW5nWydpc28tODg1OS00J109J2lzby04ODU5LTQgKE5vcnRoIEV1cm9wZWFuKSAnOyRsYW5nWydpc28tODg1OS01J109J2lzby04ODU5LTUgKEN5cmlsbGljKSAnOyRsYW5nWydpc28tODg1OS02LWknXT0naXNvLTg4NTktNi1pIChBcmFiaWMpICc7JGxhbmdbJ2lzby04ODU5LTcnXT0naXNvLTg4NTktNyAoR3JlZWspICc7JGxhbmdbJ2lzby04ODU5LTgnXT0naXNvLTg4NTktOCAoSGVicmV3LCB2aXN1YWwpICc7JGxhbmdbJ2lzby04ODU5LTgtaSddPSdpc28tODg1OS04LWkgKEhlYnJldywgbG9naWNhbCkgJzskbGFuZ1snaXNvLTg4NTktOSddPSdpc28tODg1OS05IChUdXJraXNoKSAnOyRsYW5nWydpc28tODg1OS0xMCddPSdpc28tODg1OS0xMCAoTGF0aW4gNikgJzskbGFuZ1snaXNvLTg4NTktMTEnXT0naXNvLTg4NTktMTEgKExhdGluL1RoYWkpICc7JGxhbmdbJ2lzby04ODU5LTEzJ109J2lzby04ODU5LTEzIChMYXRpbiA3LCBCYWx0aWMgUmltKSAnOyRsYW5nWydpc28tODg1OS0xNCddPSdpc28tODg1OS0xNCAoTGF0aW4gOCwgQ2VsdGljKSAnOyRsYW5nWydpc28tODg1OS0xNSddPSdpc28tODg1OS0xNSAoTGF0aW4gOSkgICc7JGxhbmdbJ2lzby04ODU5LTE2J109J2lzby04ODU5LTE2IChMYXRpbiAxMCkgICc7JGxhbmdbJ3VzLWFzY2lpJ109J3VzLWFzY2lpIChiYXNpYyBFbmdsaXNoKSAgJzskbGFuZ1snZXVjLWpwJ109J2V1Yy1qcCAoSmFwYW5lc2UsIFVuaXgpICAnOyRsYW5nWydzaGlmdF9qaXMnXT0nc2hpZnRfamlzIChKYXBhbmVzZSwgV2luL01hYykgJzskbGFuZ1snaXNvLTIwMjItanAnXT0naXNvLTIwMjItanAgKEphcGFuZXNlLCBlbWFpbCkgJzskbGFuZ1snZXVjLWtyJ109J2V1Yy1rciAoS29yZWFuKSAnOyRsYW5nWydnYjIzMTInXT0nZ2IyMzEyIChDaGluZXNlLCBzaW1wbGlmaWVkKSAnOyRsYW5nWydnYjE4MDMwJ109J2diMTgwMzAgKENoaW5lc2UsIHNpbXBsaWZpZWQpICc7JGxhbmdbJ2JpZzUnXT0nYmlnNSAoQ2hpbmVzZSwgdHJhZGl0aW9uYWwpICc7JGxhbmdbJ2JpZzUtSEtTQ1MnXT0nQmlnNS1IS1NDUyAoQ2hpbmVzZSwgSG9uZyBLb25nKSAnOyRsYW5nWyd0aXMtNjIwJ109J3Rpcy02MjAgKFRoYWkpICc7JGxhbmdbJ2tvaTgtciddPSdrb2k4LXIgKFJ1c3NpYW4pICc7JGxhbmdbJ2tvaTgtdSddPSdrb2k4LXUgKFVrcmFpbmlhbikgJzskbGFuZ1snaXNvLWlyLTExMSddPSdpc28taXItMTExIChDeXJpbGxpYyBLT0ktOCkgICAnOyRsYW5nWydtYWNpbnRvc2gnXT0nbWFjaW50b3NoIChNYWNSb21hbikgJzskbGFuZ1snd2luZG93cy0xMjUwJ109J3dpbmRvd3MtMTI1MCAoQ2VudHJhbCBFdXJvcGUpICc7JGxhbmdbJ3dpbmRvd3MtMTI1MSddPSd3aW5kb3dzLTEyNTEgKEN5cmlsbGljKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTInXT0nd2luZG93cy0xMjUyIChXZXN0ZXJuIEV1cm9wZSkgJzskbGFuZ1snd2luZG93cy0xMjUzJ109J3dpbmRvd3MtMTI1MyAoR3JlZWspICc7JGxhbmdbJ3dpbmRvd3MtMTI1NCddPSd3aW5kb3dzLTEyNTQgKFR1cmtpc2gpICc7JGxhbmdbJ3dpbmRvd3MtMTI1NSddPSd3aW5kb3dzLTEyNTUgKEhlYnJldykgJzskbGFuZ1snd2luZG93cy0xMjU2J109J3dpbmRvd3MtMTI1NiAoQXJhYmljKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTcnXT0nd2luZG93cy0xMjU3IChCYWx0aWMgUmltKSAnOyRsYW5nWydhdXRvJ109J0F1dG8tZyZlYWN1dGU7biZlYWN1dGU7ciZlYWN1dGU7JzskbGFuZ1sndXNlckNob2ljZSddPSdDaG9pc2lzc2V6IHVuZSBwYWdlJzskbGFuZ1sndXNlckdlbmVyYXRlZCddPSdEJmVhY3V0ZTtmaW5pc3NleiB2b3RyZSBjb250ZW51JzskbGFuZ1snc2F2ZVZBTHNldHRpbmdzJ109J0VucmVnaXN0cmVyIGxlcyBwYXJhbSZlZ3JhdmU7dHJlcyBkZSB2YWxpZGF0aW9uJzskbGFuZ1snc2V0dGluZ3MnXT0nUGFyYW0mZWdyYXZlO3RyZXMnOyRsYW5nWydzZXR0aW5nc3NhdmVkJ109J1BhcmFtJmVncmF2ZTt0cmVzIHNhdXZlZ2FyZCZlYWN1dGU7cyc7JGxhbmdbJ2xlYXZlY29kZSddPSdOZSB0b3VjaGV6IHBhcyBhdSBjb2RlJzskbGFuZ1snZm9ybWF0Y29kZSddPSdGb3JtYXR0ZXogYmllbiBsZSBjb2RlJzskbGFuZ1snc2NyYW1ibGVjb2RlJ109J0Jyb3VpbGxleiBsZSBjb2RlJzskbGFuZ1snY2xlYW5jb2RlJ109J05ldHRveWVyIGxlIGNvZGUgZW4gc3VwcHJpbWFudCBjZSBxdWkgbiYjMDM5O2ltcG9ydGUgcGFzJzskbGFuZ1snc2F2ZXNldHRpbmdzJ109J1NhdXZlZ2FyZGVyIGxlcyBwYXJhbSZlZ3JhdmU7dHJlcyAnOyRsYW5nWydtYW5nbGV0eXBldGV4dCddPSdDb21tZW50IGZhaXJlIHBvdXIgZm9ybWF0ZXIgbGUgY29kZSc7JGxhbmdbJ2JyaWVmJ109J0JyJmVncmF2ZTt2ZSc7JGxhbmdbJ3ZlcmJvc2UnXT0nVmVyYmV1eCc7JGxhbmdbJ2NvZGVmaXhlcyddPSdDb2RlcyBmaXhlcyc7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddPSdGb3JjZXIgbGVzIGJhbGlzZXMgZW4gbWludXNjdWxlcyc7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddPSdQb3VyIHVuZSBtZWlsbGV1cmUgY29tcGF0aWJpbGl0JmVhY3V0ZTsgWEhUTUwnOyRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J109J0NhY2hlciBsZXMgbWVzc2FnZXMgQ29kZU1hbmdsZXIgZW4gYmFzIGR1IGNvZGUgKHgpaHRtbCc7JGxhbmdbJ2luZGVudHdpZHRodGV4dCddPSdMYXJnZXVyIGRlIGwmIzAzOTtpbmRlbnRhdGlvbic7JGxhbmdbJ3NwYWNlcyddPSdFc3BhY2VzJzskbGFuZ1snZGVidWdsZXZlbHRleHQnXT0nTml2ZWF1IGR1IGQmZWFjdXRlO2J1ZyBlbiBzb3J0aWU6JzskbGFuZ1snZGVidWd0ZXh0J109J01vZGUgZCZlYWN1dGU7YnVnIGR1IGNvZGUnOyRsYW5nWydTY3JpcHRfbGlzdCddPSdTY3JpcHRzICc7JGxhbmdbJ0Fzc19oZWFkZXInXT0nU2NyaXB0cyB1bmlmaSZlYWN1dGU7cyc7JGxhbmdbJ1NhbXBsZVRhZyddPSdFeGVtcGxlIGRlIGJhbGlzZSc7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHQnXT0nQWpvdXRlciB1bmUgbm91dmVhdSBzY3JpcHQnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0QXNzJ109J0FkZCBOZXcgU2NyaXB0IEFzc2lnbm1lbnQnOyRsYW5nWydwcm9tcHRfYWRkdGVtcGxhdGUnXT0nQWpvdXRlciB1biBnYWJhcml0JzskbGFuZ1snYWRkTGliX2xhYmVsJ109J0Fqb3V0ZXIgdW5lIGxpYnJhaXJpZSc7JGxhbmdbJ3RpdGxlX0dyb3VwcyddPSdMaXN0ZSBkZSBzY3JpcHRzIGdyb3VwJmVhY3V0ZTtzJzskbGFuZ1sndGl0bGVfU2NyaXB0cyddPSdMaXN0ZSBkZSBzY3JpcHRzIHVuaXF1ZSc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nSW1wb3J0YW50OlxuXG5TaSBjJiMwMzk7ZXN0IHN1cHByaW0mZWFjdXRlOywgdG91dGVzIGxlcyBpbmZvcm1hdGlvbnMgc2Vyb250IHBlcmR1ZXMhXG5cblNpIHZvdXMgYXZleiBjZSBzY3JpcHQgZGFucyB1biBncm91cGUgdm91cyBhbGxleiBjYXNzZXIgbGUgbGllbiBldCBkZXZyZXogJmVhY3V0ZTtkaXRlciBsZSBncm91cGUuXG5JbCBlc3QgbWlldXggZGUgZCZlYWN1dGU7bWFycmVyIGxlIHByb2Nlc3N1cyBkZSBzdXBwcmVzc2lvbiBkZXB1aXMgbGEgbGlzdGUgZGVzIGFzc29jaWF0aW9ucy5cblxuVk9VUyBBTExFWiAmRWFjdXRlO0dBTEVNRU5UIFBFUkRSRSBWT1RSRSBISVNUT1JJUVVFIERFUyBNT0RJRklDQVRJT05TIFBPVVIgQ0UgU0NSSVBULiAmRWNpcmM7VEVTIFZPVVMgUiZFYWN1dGU7RUxMRU1FTlQgU1VSPz8/JzskbGFuZ1snc21hcnR5SG93J109J1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzIGluIEpTIGFuZCBDU1MuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9nZW5lcmFsX3NtYXJ0eSddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZi4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOyRsYW5nWyd0aXBfZ2VuZXJhbF9ncm91cGluZyddPSdGdXNpb25uZXIgbGVzIGZpY2hpZXJzIENTUyBhdWdtZW50ZSBsYSB2aXRlc3NlIGMmb2NpcmM7dCZlYWN1dGU7IHV0aWxpc2F0ZXVyIGV0IHZvdXMgYWlkZSAmYWdyYXZlOyB2b3VzIHJhcHByb2NoZXIgZGUgbGEgbm90cmUgJnF1b3Q7QSZxdW90OyBkJiMwMzk7PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20veXNsb3cvIiB0YXJnZXQ9Il9ibGFuayI+eVNsb3c8L2E+JzskbGFuZ1sndGlwX2VkaXRvcl90YWInXT0nU2F2aWV6IHZvdXMgcXVlIHZvdXMgcG91dmV6IHV0aWxpc2VyIGxhIHRvdWNoZSBUYWIgcG91ciBpbmRlbnRlciB2b3RyZSBjb2RlID8gRXNzYXlleiBsZS4nOyRsYW5nWyd0aXBfZWRpdG9yX3NlYXJjaE5yZXBsYWNlJ109J1NhdmlleiB2b3VzIHF1ZSB2b3VzIHBvdXZleiB1dGlsaXNlciBsZXMgZXhwcmVzc2lvbnMgciZlYWN1dGU7Z3VsaSZlZ3JhdmU7cmVzIHBvdXIgcmFwaWRlbWVudCByZWNoZXJjaGVyIGV0IHJlbXBsYWNlciA/IFV0aWxpc2V6IEN0cmwrZiBkYW5zIGwmIzAzOTsmZWFjdXRlO2RpdGV1ciBwb3VyIGFmZmljaGVyIGxhIGZlbiZlY2lyYzt0cmUnOyRsYW5nWyd0aXBfZWRpdG9yX3Jlc2V0SGlnaGxpZ2h0J109J0lmIHlvdSBhcmUgc2VlaW5nIGRvdWJsZXMgaW4gdGhlIGVkaXRvciwgaWU6IHRoZSBoaWdobGlnaHQgaXMgZGVzeW5jcm9uaXplZCBmcm9tIHRleHQganVzdCB1c2UgdGhlIHJlc2V0IGhpZ2hsaWdodCBidXR0b24gPGltZyB3aWR0aD0mcXVvdDsyMCZxdW90OyBoZWlnaHQ9JnF1b3Q7MjAmcXVvdDsgb25tb3VzZWRvd249JnF1b3Q7ZWRpdEFyZWEucmVzdG9yZUFuZFN3aXRjaENsYXNzKHRoaXMsJiMwMzk7ZWRpdEFyZWFCdXR0b25Eb3duJiMwMzk7KTsmcXVvdDsgb25tb3VzZW91dD0mcXVvdDtlZGl0QXJlYS5yZXN0b3JlQ2xhc3ModGhpcyk7JnF1b3Q7IG9ubW91c2VvdmVyPSZxdW90O2VkaXRBcmVhLnN3aXRjaENsYXNzKHRoaXMsJiMwMzk7ZWRpdEFyZWFCdXR0b25PdmVyJiMwMzk7KTsmcXVvdDsgY2xhc3M9JnF1b3Q7ZWRpdEFyZWFCdXR0b25Ob3JtYWwmcXVvdDsgdGl0bGU9JnF1b3Q7cmVzZXQgaGlnaGxpZ2h0IChlZCkmcXVvdDsgc3JjPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2VkaXRfYXJlYS9pbWFnZXMvcmVzZXRfaGlnaGxpZ2h0LmdpZiZxdW90OyBpZD0mcXVvdDtyZXNldF9oaWdobGlnaHQmcXVvdDs+JzskbGFuZ1sndGlwX3RlbXBsYXRlX3NtYXJ0eSddPSdTbWFydHkgc3ludGF4IGlzIHRoZSBzYW1lIGFzIGV2ZXJ5d2hlcmUgZWxzZSBqdXN0IGEgc3RyYWlnaHQgeyRzbWFydHkubm93fS4gIFRoZSB7eyB9fSBpcyBmb3IgdGhlIENTUyBhbmQgSlMgYXMge30gYXJlIGluIHRoZWlyIHN5bnRheC4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOyRsYW5nWyd0aXBfZ3JvdXBfZHJhZ05kcm9wJ109J3RvIGdldCBzdGFydGVkIGp1c3QgZHJhZyBmcm9tIHRoZSBwb29sIHRvIHRoZSBncm91cCYjMDM5O3MgbGlzdCc7JGxhbmdbJ2FsbCddPSdDb21wYXRpYmxlIHBvdXIgdG91cyBsZXMgYXBwYXJlaWxzLic7JGxhbmdbJ2F1cmFsJ109J0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgc3ludGgmZWFjdXRlO3Rpc2V1cnMgZGUgdm9peC4nOyRsYW5nWydicmFpbGxlJ109J0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgYXBwYXJlaWxzIHRhY3RpbGVzIGVuIGJyYWlsbGUuJzskbGFuZ1snZW1ib3NzZWQnXT0nQSBsJiMwMzk7YXR0ZW50aW9uIGRlcyBpbXByaW1hbnRlcyBicmFpbGxlLic7JGxhbmdbJ2hhbmRoZWxkJ109J0EgbCYjMDM5O2F0dGVudGlvbiBkZXMgYXBwYXJlaWxzIGRlIHBvY2hlIChQREEpJzskbGFuZ1sncHJpbnQnXT0nQSBsJiMwMzk7YXR0ZW50aW9uIGRlIGRvY3VtZW50cyBpbXByaW0mZWFjdXRlO3Mgc3VyIGR1IG1hdCZlYWN1dGU7cmllbCBvcGFxdWUsIGV0IHBvdXIgbGVzIGRvY3VtZW50cyB2aXN1YWxpcyZlYWN1dGU7cyAmYWdyYXZlOyBsJiMwMzk7JmVhY3V0ZTtjcmFuIGVuIHByJmVhY3V0ZTt2aXN1YWxpc2F0aW9uIGQmIzAzOTtpbXByZXNzaW9uJzskbGFuZ1sncHJvamVjdGlvbiddPSdBIGwmIzAzOTthdHRlbnRpb24gZGVzIHByJmVhY3V0ZTtzZW50YXRpb25zIHByb2pldCZlYWN1dGU7ZXMsIHBhciBleGVtcGxlIHByb2plY3RldXJzIG91IGltcHJlc3Npb25zIHN1ciB0cmFuc3BhcmVudHMnOyRsYW5nWydzY3JlZW4nXT0nQSBsJiMwMzk7YXR0ZW50aW9uIHByaW5jaXBhbGVtZW50IGRlcyAmZWFjdXRlO2NyYW5zIGQmIzAzOTtvcmRpbmF0ZXVycyc7JGxhbmdbJ3R0eSddPSdBIGwmIzAzOTthdHRlbnRpb24gZGVzIG0mZWFjdXRlO2RpYSB1dGlsaXNhbnQgZGVzIGNhcmFjdCZlZ3JhdmU7cmVzIGZpeGVzLCB0ZWxzIHF1ZSB0JmVhY3V0ZTtsJmVhY3V0ZTt0eXBlcyBldCB0ZXJtaW5hdXguJzskbGFuZ1snTWVkaWFUeXBlJ109J1RvdXMgOiBjb21wYXRpYmxlIHBvdXIgdG91cyBsZXMgYXBwYXJlaWxzLjxici8+DQphdXJhbCA6ICZhZ3JhdmU7IGwmIzAzOTthdHRlbnRpb24gZGVzIHN5bnRoJmVhY3V0ZTt0aXNldXJzIGRlIHZvaXguPGJyLz4NCmJyYWlsbGUgOiAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIGRlcyBhcHBhcmVpbHMgdGFjdGlsZXMgZW4gYnJhaWxsZS48YnIvPg0KZW1ib3NzZWQgOiAgJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZXMgaW1wcmltYW50ZXMgYnJhaWxsZS48YnIvPg0KaGFuZGhlbGQgOiAmYWdyYXZlOyBsJiMwMzk7YXR0ZW50aW9uIGRlcyBhcHBhcmVpbHMgZGUgcG9jaGUgKFBEQSkuPGJyLz4NCnByaW50IDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZSBkb2N1bWVudHMgaW1wcmltJmVhY3V0ZTtzIHN1ciBkdSBtYXQmZWFjdXRlO3JpZWwgb3BhcXVlLCBldCBwb3VyIGxlcyBkb2N1bWVudHMgdmlzdWFsaXMmZWFjdXRlO3MgJmFncmF2ZTsgbCYjMDM5OyZlYWN1dGU7Y3JhbiBlbiBwciZlYWN1dGU7dmlzdWFsaXNhdGlvbiBkJiMwMzk7aW1wcmVzc2lvbi48YnIvPg0KcHJvamVjdGlvbiA6ICZhZ3JhdmU7IGwmIzAzOTthdHRlbnRpb24gZGVzIHByJmVhY3V0ZTtzZW50YXRpb25zIHByb2pldCZlYWN1dGU7ZXMsIHBhciBleGVtcGxlIHByb2plY3RldXJzIG91IGltcHJlc3Npb25zIHN1ciB0cmFuc3BhcmVudHM8YnIvPg0Kc2NyZWVuIDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBwcmluY2lwYWxlbWVudCBkZXMgJmVhY3V0ZTtjcmFucyBkJiMwMzk7b3JkaW5hdGV1cnMuPGJyLz4NCnR0eSA6ICZhZ3JhdmU7IGwmIzAzOTthdHRlbnRpb24gZGVzIG0mZWFjdXRlO2RpYSB1dGlsaXNhbnQgZGVzIGNhcmFjdCZlZ3JhdmU7cmVzIGZpeGVzLCB0ZWxzIHF1ZSB0JmVhY3V0ZTtsJmVhY3V0ZTt0eXBlcyBldCB0ZXJtaW5hdXguPGJyLz4NCnR2IDogJmFncmF2ZTsgbCYjMDM5O2F0dGVudGlvbiBkZXMgYXBwYXJlaWxzIGRlIHR5cGUgdCZlYWN1dGU7bCZlYWN1dGU7dmlzaW9uLic7JGxhbmdbJ0NhbmNlbGVkJ109J1lvdSBDYW5jZWxlZCBvdXQgb2YgdGhlIG9wZXJhdGlvbi4gIEFueSBXb3JrIHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGhhcyBiZWVuIGxvc3QuJzskbGFuZ1snQnRuQURERUQnXT0nVm91cyB2ZW5leiBkJiMwMzk7YWpvdXRlciB1biBub3V2ZWF1IHNjcmlwdCc7JGxhbmdbJ0J0bkVESVRFRCddPSdWb3VzIHZlbmV6IGRlIG1vZGlmaWVyIHVuIHNjcmlwdCBleGlzdGFudCc7JGxhbmdbJ0J0bkRFTEVURUQnXT0nVm91cyB2ZW5leiBkZSBzdXBwcmltZXIgdW4gc2NyaXB0IGV4aXN0YW50JzskbGFuZ1sndHlwZV9sYWJlbCddPSdUeXBlJm5ic3A7JzskbGFuZ1sncmV2aXNpb24nXT0nUiZlYWN1dGU7dmlzaW9uJzskbGFuZ1snaXNFZGl0J109J2VzdCBtb2RpZmkmZWFjdXRlOyc7JGxhbmdbJ3N0ZWFsJ109J1ZvbGV6IGxlIGRvY3VtZW50JzskbGFuZ1snZ2V0X3RhZyddPSdPYnRlbmV6IGNldHRlIGJhbGlzZSc7JGxhbmdbJ2VtdHB5R3JvdXAnXT0nVm91cyBkZXZyZXogYWpvdXRlciB1biBzY3JpcHQgYXUgZ3JvdXAgYXZhbnQgZGUgcG91dm9pciBsJiMwMzk7YXBwZWxlcic7JGxhbmdbJ2FsbFNjcmlwdHNVc2VkJ109J1RvdXMgbGVzIHNjcmlwdCBzb250IHV0aWxpcyZlYWN1dGU7cyc7JGxhbmdbJ05vX1NjcmlwdHMnXT0nSWwgbiYjMDM5O3kgYSBhY3R1ZWxsZW1lbnQgYXVjdW4gc2NyaXB0JzskbGFuZ1snTm9fR3JvdXBzJ109J0lsIG4mIzAzOTt5IGEgYWN0dWVsbGVtZW50IGF1Y3VuIGdyb3VwZSc7JGxhbmdbJ3NldGluYWN0aXZlJ109J0QmZWFjdXRlO3NhY3RpdmVyIGxlIGdhYmFyaXQnOyRsYW5nWydzZXRhY3RpdmUnXT0nQWN0aXZlciBsZSBnYWJhcml0JzskbGFuZ1snbm90ZGVmYXVsdCddPSdOJiMwMzk7ZXN0IHBhcyBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0Lic7JGxhbmdbJ25vdHZhbGlkJ109J0xlcyBmZXVpbGxlcyBkZSBzdHlsZXMgYXNzb2NpJmVhY3V0ZTtlcyBuJiMwMzk7b250IHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBjb3JyZWN0ZW1lbnQgcGFyYW0mZWFjdXRlO3RyJmVhY3V0ZTsgcG91ciBjZSBnYWJhcml0JzskbGFuZ1sndGVtcGxhdGVfdGFiJ109J2dhYmFyaXQgZGUgZm9ybXVsYWlyZSBkZSBjaGFuZ2VtZW50IGRlIHN0eWxlJzskbGFuZ1sncGFnZV90ZW1wbGF0ZXNfdGFiJ109J0dhYmFyaXQgZGUgcGFnZSc7JGxhbmdbJ3N1Ym1pdCddPSdTb3VtZXR0cmUnOyRsYW5nWydhcHBseSddPSdBcHBsaXF1ZXInOyRsYW5nWydjYW5jZWwnXT0nQW5udWxlcic7JGxhbmdbJ2dvJ109J0FsbGVyJzskbGFuZ1sncHJldmlldyddPSdQciZlYWN1dGU7dmlzdWFsaXNhdGlvbic7JGxhbmdbJ2lubGluZWhlbHAnXT0nQWlkZSc7JGxhbmdbJ3NjaXB0b3B0aW9ucyddPSdPcHRpb25zJzskbGFuZ1sncGVyc2lzdGVudCddPSdQZXJzaXN0YW50JzskbGFuZ1sncHJlZmVycmVkJ109J1ByJmVhY3V0ZTtmJmVhY3V0ZTtyJmVhY3V0ZTsnOyRsYW5nWydhbHRlcm5hdGUnXT0nQWx0ZXJuYXRpZic7JGxhbmdbJ25hbWUnXT0nTm9tJzskbGFuZ1sndGl0bGUnXT0nVGl0cmUnOyRsYW5nWydpZCddPSdJRCc7JGxhbmdbJ2FjdGl2ZSddPSdBY3RpZic7JGxhbmdbJ2RlZmF1bHQnXT0nRCZlYWN1dGU7ZmF1bHQnOyRsYW5nWyd2YWxpZCddPSdWYWxpZGUnOyRsYW5nWyd1c2FnZV9jb3VudCddPSdVc2FnZSc7JGxhbmdbJ3llcyddPSdPdWknOyRsYW5nWydubyddPSdOb24nOyRsYW5nWydlZGl0Y3NzJ109J01vZGlmaWVyIGwmIzAzOTthc3NvY2lhdGlvbiBkZXMgZmV1aWxsZXMgZGUgc3R5bGUnOyRsYW5nWydlZGl0dGVtcGxhdGUnXT0nTW9kaWZpZXIgbGUgZ2FiYXJpdCBkZSBjb250ZW51JzskbGFuZ1snZGVsZXRldGVtcGxhdGUnXT0nU3VwcHJpbWVyIGxlIGdhYmFyaXQnOyRsYW5nWydjb3B5dGVtcGxhdGUnXT0nRHVwcGxpcXVlciBsZSBnYWJhcml0JzskbGFuZ1sncHJvbXB0X3N0eWxlc2hlZXQnXT0nUyZlYWN1dGU7bGVjdGlvbm5lciB1biBzdHlsZSBkZSBwYWdlJzskbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ109J0dhYmFyaXQnOyRsYW5nWydwcm9tcHRfZ3JvdXBuYW1lJ109J05vbSBkdSBncm91cGUnOyRsYW5nWydwcm9tcHRfYWRkZ3JvdXAnXT0nQWpvdXRlciB1biBncm91cGUgJzskbGFuZ1sncHJvbXB0X2dyb3VwdHlwZSddPSdUeXBlIGRlIEdyb3VwZSc7JGxhbmdbJ3Byb21wdF9hZGQnXT0nQWpvdXRlcic7JGxhbmdbJ3Byb21wdF9zZWxlY3RvbmUnXT0nUyZlYWN1dGU7bGVjdGlvbm5lciB1bic7JGxhbmdbJ3Byb21wdF9hZGRfYWx0ZXJuYXRlJ109J0Fqb3V0ZXIgdW5lIGFsdGVybmF0aXZlJzskbGFuZ1snZXJyb3JfcGxlYXNlX3NlbGVjdF9zdHlsZXNoZWV0J109J1ZldWlsbGV6IHNlbGVjdGlvbm5lciB1bmUgZmV1aWxsZSBkZSBzdHlsZSc7JGxhbmdbJ3VzZXJMb2dzJ109J1ZvaXIgbCYjMDM5O2hpc3RvcmlxdWUgZCYjMDM5O3V0aWxpc2F0aW9uJzskbGFuZ1snU2NyaXB0U2V0X2xhYmVsJ109J0lEIGR1IHNjcmlwdCAnOyRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ109J1R5cGUgZGUgc2NyaXB0ICc7JGxhbmdbJ1NjcmlwdE5hbWVfbGFiZWwnXT0nTm9tIGR1IHNjcmlwdCc7JGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddPSdOb20gZHUgZ2FiYXJpdCc7JGxhbmdbJ1NpbmdsZUNvZGVfbGFiZWwnXT0nQXBwZWwgZHUgc2NyaXB0IHNpbXBsZSBwYXIgZCZlYWN1dGU7ZmF1dCc7JGxhbmdbJ0dyb3VwdFNpemVfbGFiZWwnXT0nVG90YWwnOyRsYW5nWydub3Rlc19sYWJlbCddPSdOb3Rlcyc7JGxhbmdbJ2RvY1R5cGVfbGFibGUnXT0nRG9jdHlwZSc7JGxhbmdbJ1ZhbEhUTUxWZXJib3NlX2xhYmxlJ109J0NoZWNrIFZlcmJvc2VseSc7JGxhbmdbJ1Nob3dWYWxfbGFibGUnXT0nR2FyZGUgbGVzIG1lc3NhZ2VzIG91dmVydHMnOyRsYW5nWydUdXJuT05WYWxfbGFibGUnXT0nTWV0dHJlIGxhIHZhbGlkYXRpb24gc3VyIDxzdHJvbmc+T048L3N0cm9uZz4nOyRsYW5nWydob3RMaW5rQ2hlY2tfbGFibGUnXT0nRG8gSG90TGluayBDaGVjayc7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdZb3UgbmVlZCB0byB0dXJuIG9uIHRoZSBIb3RMaW5rIENoZWNrJzskbGFuZ1snZmlsdGVyUHJvcF9sYWJsZSddPScgRmlsdGVyIG91dCBwcm9wZXJ0aWVzIHRvIGhlbHAgdmFsaWRhdGUnOyRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ109J1Byb2ZpbCBDU1MnOyRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ109JyBVc2VyIE1lZGl1bSc7JGxhbmdbJ1ZBTExhbmdfbGFibGUnXT0nIExhbmdhZ2UnOyRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ109JyBOaXZlYXUgZCYjMDM5O2F2ZXJ0aXNzZW1lbnQgdzNjIENTUyc7JGxhbmdbJ01lZGlhVHlwZV9sYWJlbCddPSdUeXBlIGRlIG0mZWFjdXRlO2RpYSc7JGxhbmdbJ01pbmlmeV9sYWJlbCddPSdQcmUgTWluaWZpZWQnOyRsYW5nWyd0dXJuT2ZmUHJlbG9hZF9sYWJlbCddPSdUdXJuIG9mZiB1cmwgcHJlbG9hZCc7JGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddPSdEYXRlIGRlIGNyJmVhY3V0ZTthdGlvbic7JGxhbmdbJ01vZGlmZWREYXRlX2xhYmVsJ109J0RhdGUgZGUgbW9kaWZpY2F0aW9uJzskbGFuZ1sncGF0aE9wdGlvbl9sYWJlbCddPSdVdGlsaXNlIHVuIGNoZW1pbiA8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOyRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ109J1V0aWxpc2UgdW4gVVJMIHJhY2luZSBzcCZlYWN1dGU7Y2lmaXF1ZSA8ZW0+KHVzZSBzY2hlbWEgJnF1b3Q7aHR0cHM6Ly9zdWIuZG9tYWluLnRsZC8mcXVvdDspPC9lbT4nOyRsYW5nWydHcm9vdFVSTCddPSdHbG9iYWwgU2NyaXB0IFJvb3QgVVJMJzskbGFuZ1snZW1wdHljYWNoZUVycm9yX2RvQXVkaXQnXT0nZmFpbGVkIHRvIGVtcHR5IHRoZSBjYWNoZSBhdCc7JGxhbmdbJ2VtcHRpZWRDYWNoX2RvQXVkaXQnXT0nZW1wdGllZCB0aGUgc2NyaXB0IGNhY2hlJzskbGFuZ1snY2xlYXJlZFJldmlzaW9uX2RvQXVkaXQnXT0nY2xlYXJlZCB0aGUgcmV2aXNpb24gaGlzdG9yeSBmb3InOyRsYW5nWydDaGVja2VkT3V0X2RvQXVkaXQnXT0nQ2hlY2tlZCBvdXQgc2NyaXB0ICc7JGxhbmdbJ3JlbGVhc2VkX2RvQXVkaXQnXT0ncmVsZWFzZWQgc2NyaXB0ICc7JGxhbmdbJ1NjcmlwdElzX2xhYmVsJ109J1VzZSB0aGlzIHNjcmlwdCA8ZW0+KE5vdGU6IElmIGEgcGF0aCBpcyBzZXQsIGl0IHdpbGwgb3ZlciByaWRlIHRoaXMpPC9lbT4nOyRsYW5nWydkZWJ1Z0lUX2xhYmVsJ109J2RlYnVnSVQnOyRsYW5nWydkZWJ1Z0lUbm90ZV9sYWJlbCddPSc8ZW0+KE11c3QgaGF2ZSBGaXJlcGhwIG1vZCk8L2VtPic7JGxhbmdbJ2RlYnVnVCddPSdEZWJ1Z2luZyBPcHRpb25zJzskbGFuZ1snRWRpdEhpc3RvcnknXT0nVXNlciBIaXN0b3J5IEVkaXRpbmcnOyRsYW5nWydub25lSW5UeXBlJ109JzxoMT5Zb3UgbXVzdCBmaXJzdCBhZGQgPGJyLz5hIHNjcmlwdCBpbiB0aGlzIHR5cGU8L2gxPic7JGxhbmdbJ2dyb3VweVRpdGxlJ109J0xpc3Qgb2YgU2NyaXB0cyBpbiBncm91cCc7JGxhbmdbJ3JldmlzaW9uVGl0bGUnXT0nUmV2aXNpb24gSGlzdG9yeSc7JGxhbmdbJ3JldmlzaW9uX2xhYmVsJ109JzxzdHJvbmc+VHVybiBvbiB0aGUgcmV2aXNpb24gaGlzdG9yeTwvc3Ryb25nPic7JGxhbmdbJ3JldmlzaW9uX29wJ109JzxoMT5SZXZpc2lvbjwvaDE+DQo8aDM+VHJ1bmluZyB0aGlzIG9mZiBkb2VzIG5vdCBjbGVhciB0aGUgaGlzdG9yeSBpZiBpdCB3YXMgb24gYmVmb3JlLiAgTGlrZSBpdCB0byBwYXVzZS48L2gzPic7JGxhbmdbJ3JldmlzaW9uX0xJTUlUX2xhYmVsJ109J1NldCBSZXZpc2lvbiBMSU1JVCc7JGxhbmdbJ2NsZWFyUmV2J109J1ZpZGVyIGwmIzAzOTtIaXN0b3JpcXVlJzskbGFuZ1sndXNlckRlZmF1bHRQYWdlJ109JzxoMT5Vc2VyIHBpY2tlZCBwYWdlPC9oMT4NCjxoMz5TaW5jZSBhIHVzZXIgcGFnZSBpcyB0aGUgb3B0aW9uIHlvdSBwaWNrZWQsIHlvdSYjMDM5O2xsIHdhbnQgdG8gY2hvb3NlIGEgcGFnZSBmcm9tIHRoZSBkcm9wIGRvd24gZm9yIHRoZSBjb250ZW50IHRvIHJlbmRlciBvdXQuICBBZ2FpbiB0aGUgY29udGVudCBzaG91bGQgdmFsaWRhdGUuPC9oMz4nOyRsYW5nWydkZWZhdWx0UGFnZSddPSc8aDE+Q2hvb3NlIEhvdzwvaDE+DQo8aDM+V2hhdCB5b3UgYXJlIHBpY2tpbmcgaXMgdGhlIHdheSB0byB2YWxpZGF0ZSB5b3VyIHRlbXBsYXRlcy4gIFRoZSBnb2FsIGlzIHRvIHBpY2sgc29tZXRoaW5nIHRoYXQgZG9lc24mIzAzOTt0IGhhdmUgZXJyb3JzIGluIHRoZSBjb250ZW50IHlvdSBhcmUgdXNpbmcuPC9oMz4nOyRsYW5nWyd1c2VyRGVmYXVsdFBhZ2VfbGFibGUnXT0nR2l2ZSB0aGUgcGFnZSBhbGlhcyc7JGxhbmdbJ293bkNvbnRlbnQnXT0nPGgxPkZpbGwgaXQgaW48L2gxPg0KPGgzPlRoZSBnb2FsIGhlcmUgaXMgdG8gZ2l2ZSBzb21lIHRoaW5nIHRvIHByb2Nlc3MuICBCeSBmaWxsaW5nIGl0IGluIHlvdSBjYW4gY2hlYWNrIHRvIHNlZSBpZiB5b3UgaGF2ZSB0aGUgY29udGVudCB0YWcgYW5kIGJsb2NrcyBmaWxsZWQgaW4gY29ycmVjdGx5LiAgSUU6IHlvdSBjb3VsZCBwdXQgdGhlIGRlZmF1bHQgb3MgdGhlIGF1dG8gZ2VuZXJhdGVkIG9uZSB3aGVyZSBpdCYjMDM5O3MgPGRpdj48c3Bhbj48cD4gYW5kIG90aGVyIGVsZW1lbnRzIGxpa2UgdGhhdC48L2gzPic7JGxhbmdbJ293bkNvbnRlbnRfbGFibGUnXT0nQ3JlYXRlIHRoZSBjb250ZW50JzskbGFuZ1snbG9ja2ZpbGVzVGl0bGUnXT0nRmljaGllcnMgcHJvdCZlYWN1dGU7ZyZlYWN1dGU7cyc7JGxhbmdbJ2xvY2tmaWxlc19sYWJlbCddPSc8c3Ryb25nPlR1cm4gb24gc2V0IGZpbGVzIHRvIDY0NDwvc3Ryb25nPic7JGxhbmdbJ2xvY2tmaWxlc19vcCddPSc8aDE+UHJvdGVjdCBGaWxlczwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHNldCB0aGUgY3JlYXRlZCBmaWxlIHRvIGJlIGNobW9kIHRvIDY0NC4gIFRoaXMgd2lsbCBoZWxwIHRvIHByb3RlY3QgeW91IGZyb20gSlMgaW50cnVzaW9uIGF0dGFja3MuPC9oMz4nOyRsYW5nWyd1c2VFZGl0b3JUaXRsZSddPSdQYXJhbSZlZ3JhdmU7dHJlcyBkZSBsJiMwMzk7JmVhY3V0ZTtkaXRldXInOyRsYW5nWyd1c2VFZGl0b3JfbGFiZWwnXT0nPHN0cm9uZz5UdXJuIG9uIHRoZSBlZGl0b3I8L3N0cm9uZz4nOyRsYW5nWyd1c2VFZGl0b3Jfb3AnXT0nPGgxPlR1cm4gb24gRWRpdG9yPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb24gc3dpbGwgaGVscCB5b3Ugc2VlIHRoZSBjb2RlIHlvdXIgd29ya2luZyB3aXRoLiAgSXQgaGludHMgdG8gY29ycmVjdCBzeW50YXggdmlhIGhpZ2hsaWdodGluZy48L2gzPic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VUaXRsZSddPSdQcmVsb2FkIENzcyBJbWFnZXMnOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ109JzxzdHJvbmc+VHVybiBvbiBQcmVsb2FkZWQgQ3NzIEltYWdlczwvc3Ryb25nPic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXT0nPGgxPlByZWxvYWQgQ3NzIEltYWdlczwvaDE+DQo8aDM+SWYgeW91IGhhdmUgeW91ciBzeXN0ZW0gYWxsIHNldCB1cCByaWdodCwgdGhpcyB3aWxsIGhlbHAgeW91IGdldCBhIGZhc3QgcGFyYWxsZWwgZG93biBsb2FkIG9mIGFsbCBlbGVtZW50cy48L2gzPic7JGxhbmdbJ2dsb2JhbHVybCddPSc8aDE+U2V0IHRoZSByb290IFVSTDwvaDE+DQo8aDM+VXNlZCBmb3Igd2hlbiB5b3UgbmVlZCBTU0wgc3VwcG9ydCBvciB3YW50IHRvIHB1c2ggdGhlIHNjcmlwdHMgdG8gYSBzdWJkb21haW4gdG8gbG9zZSB0aGUgbmVlZGxlcyBjb29raWVzLjwvaDM+JzskbGFuZ1snc21hcnR5T25fbGFiZWwnXT0nPHN0cm9uZz5Qcm9jZXNzIFNtYXJ0eTwvc3Ryb25nPjxici8+IGRhdGEgaW4gYnV0dG9uIGZpZWxkcyc7JGxhbmdbJ3NtYXJ0eU9uJ109JzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXT0nPHN0cm9uZz5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L3N0cm9uZz4nOyRsYW5nWydmaWxlVGltZV9jc3NfdXJscyddPSc8aDE+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9oMT4NCjxoMz5UaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgZmlsZSBjcmVhdGlvbiB0aW1lIGF0IHRoZSBlbmQgb2YgYSBmaWxlLiAgVHVybmluZyB0aGlzIG9uIHdpbGwgYWRkIHRoaXMgdG8gYWxsIGxvY2FsIHVybHMuIChDU1Mgb25seSBhdG0pIC1Ob3RoaW5nIGlzIGRvbmUgdG8gaG90bGlua3M8L2gzPic7JGxhbmdbJ2VkaXQnXT0nRWRpdGVyJzskbGFuZ1snZGVsZXRlJ109J1N1cHByaW1lcic7JGxhbmdbJ0Nsb3NlJ109J0Zlcm1lcic7JGxhbmdbJ09wZW4nXT0nT3V2cmlyJzskbGFuZ1snZGlyRW1wdHknXT0nTGUgciZlYWN1dGU7cGVydG9pcmUgJmVhY3V0ZTt0YWl0IHZpZGUnOyRsYW5nWydjbGVhblRlbXAnXT0nVmlkZXIgbGUgciZlYWN1dGU7cGVydG9pcmUgdGVtcD8nOyRsYW5nWyd1clRlbXBQYXRoJ109J1ZvdHJlIHImZWFjdXRlO3BlcnRvaXJlIGR1IGNhY2hlIGVzdCc7JGxhbmdbJ0xhc3RNb2QnXT0nRGVybmkmZWdyYXZlO3JlIG1vZGlmaWNhdGlvbic7JGxhbmdbJ2NhY2hlRmVycm9yJ109J1NjcmlwdERlcGxveSBjb3VsZCBub3QgbWFrZSB0aGUgY2FjaGUgZm9sZGVyLCBjaGVjayB5b3VyIGZpbGUgcGVybWlzc2lvbnMgZm9yIHRoZSBVcGxvYWRzIGFyZWEuJzskbGFuZ1snTmFtZSddPSdOb20nOyRsYW5nWydQcm9jY2Vzc2luZyddPSdQcm9jY2Vzc2luZyc7JGxhbmdbJ1NhdmVkJ109J1NhdXZlZ2FyZCZlYWN1dGU7JzskbGFuZ1snRG9uZSddPSdGYWl0JzskbGFuZ1snVmFsaWRhdGluZyddPSdWYWxpZGF0aW9uJzskbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ109J05vbSBkdSBncm91cGUnOyRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ109J1R5cGUgZHUgc2NyaXB0cyc7JGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddPSdTY3JpcHQgUG9vbCc7JGxhbmdbJ0xJTkUnXT0nTElHTkUnOyRsYW5nWydUWVBFJ109J1RZUEUnOyRsYW5nWydTVUJUWVBFJ109J1NPVVNUWVBFJzskbGFuZ1snU1RSSU5HJ109J1RFWFRFJzskbGFuZ1snTUVTU0FHRSddPSdNRVNTQUdFJzskbGFuZ1snTEVWRUwnXT0nTklWRUFVJzskbGFuZ1snTm90ZXMnXT0nTm90ZXMnOyRsYW5nWydXYXJuaW5ncyddPSdBdmVydGlzc2VtZW50cyc7JGxhbmdbJ0Vycm9ycyddPSdFcnJldXJzJzskbGFuZ1snaGlkZGVuJ109J2NhY2gmZWFjdXRlOyc7JGxhbmdbJ1NjcmlwdCddPSdTY3JpcHQnOyRsYW5nWydFVVJMUyddPSdVcmxzIGV4dHJhaXRlcyc7JGxhbmdbJ1JDU1MnXT0nUmVuZGVyZWQgQ1NTJzskbGFuZ1snU0NTUyddPSdDU1MgU3RydWN0dXJlJzskbGFuZ1snRkNPTlQnXT0nQ29udGVudSBkdSBmaWNoaWVyJzskbGFuZ1snaVVSTCddPSdVUkwgZGUgbCYjMDM5O2ltYWdlJzskbGFuZ1snVHlwZSddPSdUeXBlJzskbGFuZ1snU2l6ZSddPSdUYWlsbGUnOyRsYW5nWydTdGF0dXMnXT0nU3RhdHV0cyc7JGxhbmdbJ2hvdGxpbmsnXT0nPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBhcHByZWFzIHRvIGJlIGEgaG90bGluay4nOyRsYW5nWydCcm9rZW5saW5rJ109J0xpZW4gYnJpcyZlYWN1dGU7JzskbGFuZ1snTk9jc3NJJ109J0F1Y3VuZSBpbWFnZSBDU1MnOyRsYW5nWydZZXNWQWxhc3RlciddPSc8aDI+WW91IHZhbGlkYXRlZCEgKio8L2gyPjxpbWcgc3R5bGU9JnF1b3Q7Ym9yZGVyOjA7d2lkdGg6ODhweDtoZWlnaHQ6MzFweCZxdW90O3NyYz0mcXVvdDtodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUmcXVvdDthbHQ9JnF1b3Q7VmFsaWQgQ1NTISZxdW90OyAvPjxici8+IDxzdHJvbmc+KiogeW91IGFyZSBmaWx0ZXJpbmcgZXJyb3JzIGFuZCBtYXkgaGF2ZSBmaWx0ZXJlZCBhIHJlYWwgZXJyb3I8L3N0cm9uZz4nOyRsYW5nWydyZWxvYWRfYWxlcnQnXT0nWW91IGFyZSByZWxvYWRpbmcgdGhlIHNyY2lwdCBmcm9tIHRoZSBsYXN0IHNhdmUgcG9pbnQuICBZb3UgaGF2ZSBzYXZlZCB0aGUgc2NyaXB0IGFscmVhZHkgYW5kIGlmIHlvdSBuZWVkIHRvIGdvIGJhY2sgdG8gdGhlIHZlcnNpb24gd2hlbiB5b3UgZmlyc3QgY2FtZSBpbiB0byBlZGl0IHBsZWFzZSBjaGVjayB5b3VyIHJldmlzaW9uIGhpc3RvcnkuJzskbGFuZ1snaW1wb3J0RXhwb3J0J109J0ltcG9ydC9FeHBvcnQnOyRsYW5nWydzdGFydEV4cG9ydCddPSdTdGFydCBFeHBvcnQnOyRsYW5nWydzdGFydEltcG9ydCddPSdTdGFydCBJbXBvcnQnOyRsYW5nWydDbGVhckltZyddPSdTdXBwcmltZXIgbCYjMDM5O2ltYWdlIGVuIGNvdXJzJzskbGFuZ1snRmluaXNoJ109J1Rlcm1pbmVyJzskbGFuZ1sncmV2ZXJ0J109J1JldG91cm5lcic7JGxhbmdbJ2Zvcm1fY2FuY2VsJ109J0FubnVsZXInOyRsYW5nWydTYXZlJ109J1NhdXZlZ2FyZGVyJzskbGFuZ1snZG9uZSddPSdGYWl0JzskbGFuZ1snYWRkJ109J0Fqb3V0ZXInOyRsYW5nWydSRU9SREVSJ109J1ImZWFjdXRlO29yZG9ubmVyJzskbGFuZ1snZm9ybV9zdWJtaXQnXT0nU2F1dmVnYXJkZXIgbGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMnOyRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXT0nUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBkdSBtb2R1bGUnOyRsYW5nWydwcmVmc3VwZGF0ZWQnXT0nTGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMgZHUgbW9kdWxlIG9udCAmZWFjdXRlO3QmZWFjdXRlO2VzIG1pc2UgJmFncmF2ZTsgam91ci4nOyRsYW5nWydvcHRpb25zdXBkYXRlZCddPSdPcHRpb25zIG1pc2UgJmFncmF2ZTsgam91cic7JGxhbmdbJ21vZGRlc2NyaXB0aW9uJ109J1NQRUVEIFlPVVIgU0lURSBVUCAuLi4hISEhICZhbXA7YnVsbDsgT3V0cHV0IGR5bmFtaWMgSlMgZmlsZXMgYW5kIENTUyBXSVRIIHNtYXJ0eS4uLiAmYW1wO2J1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZhbXA7YnVsbDsgY2FjaGVkLi4uICZhbXA7YnVsbDsgbWluaWZpZWQuLi4gJmFtcDtidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzskbGFuZ1snd2VsY29tZV90ZXh0J109JzxwPlNhbHV0ICE8L3A+JzskbGFuZ1snaGVscCddPSc8bGluayBtZWRpYT0mcXVvdDtzY3JlZW4mcXVvdDsgaHJlZj0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1MvTWFzdGVyQ1NTLmNzcyZxdW90OyB0eXBlPSZxdW90O3RleHQvY3NzJnF1b3Q7IHJlbD0mcXVvdDtzdHlsZXNoZWV0JnF1b3Q7Lz48ZGl2IGNsYXNzPSZxdW90O1NpbVdyYXAmcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48L2I+DQoNCjxkaXYgY2xhc3M9JnF1b3Q7U2ltY29uJnF1b3Q7PiA8aDMgY2xhc3M9JnF1b3Q7QmFja0xpbmsmcXVvdDs+PGEgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij4mYW1wO2x0OyZhbXA7bHQ7IEJhY2s8L2E+PC9oMz4NCjxoMT5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDE+DQo8aDI+V3JpdGUgbWFuYWdlIGFuZCBkZXBsb3kgSlMgYW5kIENTUzwvaDI+DQo8YSBpZD0iU2NyaXB0RGVwbG95Ij48L2E+DQo8cD5TY3JpcHREZXBsb3kgbW9kdWxlIHRoYXQgY2FuIGNvbWJpbmUgbXVsdGlwbGUgQ1NTIG9yIEphdmFzY3JpcHQgZmlsZXMsIGNvbXByZXNzIHRoZWlyIGNvbnRlbnRzIChpLmUuIHJlbW92YWwgb2YgdW5uZWNlc3Nhcnkgd2hpdGVzcGFjZS9jb21tZW50cyksIGFuZCBzZXJ2ZSB0aGUgcmVzdWx0cyB3aXRoIEhUVFAgZW5jb2RpbmcgKGd6aXAvZGVmbGF0ZSkgYW5kIGhlYWRlcnMgdGhhdCBhbGxvdyBvcHRpbWFsIGNsaWVudC1zaWRlIGNhY2hpbmcuIFRoaXMgaGVscHMgeW91IGZvbGxvdyBzZXZlcmFsIG9mIFlhaG9vISYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvaW5kZXguaHRtbCNydWxlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPlJ1bGVzIGZvciBIaWdoIFBlcmZvcm1hbmNlIFdlYiBTaXRlczwvYT4uIChTZWUgJmFtcDtxdW90O1Byb2JsZW0gRG9tYWluJmFtcDtxdW90OyBiZWxvdyBmb3IgbW9yZSBpbmZvLikgPC9wPg0KPGgzPlRoZSBTaG9ydCBvZiBpdDwvaDM+DQo8cD5XaXJ0ZSB5b3VyIHNjcmlwdHMsIHNldCB0aGUgb3JkZXIgYW5kIFNjcmlwdERlcGxveSB3aWxsIGRvIHRoZSByZXN0ITwvcD4NCjx0YWJsZT4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nJnF1b3Q7IGFsdD0mcXVvdDthZnRlciZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5BZnRlcjwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmcmcXVvdDsgYWx0PSZxdW90O2JlZm9yZSZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQoNCg0KDQo8aDI+PGEgaWQ9IkZlYXR1cmVzIj48L2E+RmVhdHVyZXM8L2gyPg0KPHVsPg0KICA8bGk+Q29tYmluZXMgYW5kIG1pbmlmaWVzIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIGludG8gYSBzaW5nbGUgICBkb3dubG9hZCA8L2xpPg0KICA8bGk+VXNlcyBhbiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9KU01pbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5lbmhhbmNlZCBwb3J0PC9hPiBvZiBEb3VnbGFzIENyb2NrZm9yZCYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluICAgbGlicmFyeTwvYT4gYW5kIGN1c3RvbSBjbGFzc2VzIHRvIG1pbmlmeSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvQ1NTLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNTUzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9IVE1MLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkhUTUw8L2E+PC9saT4NCiAgPGxpPkNhY2hlcyBzZXJ2ZXItc2lkZSB0byBhdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSB3b3JrIDwvbGk+DQogIDxsaT5SZXNwb25kcyB3aXRoIGFuIEhUVFAgMzA0IChOb3QgTW9kaWZpZWQpIHJlc3BvbnNlIHdoZW4gdGhlIGJyb3dzZXIgaGFzIGFuICAgdXAtdG8tZGF0ZSBjYWNoZSBjb3B5ICoqIDwvbGk+DQogIDxsaT5Nb3N0IG1vZHVsZXMgYXJlIGxhenktbG9hZGVkIGFzIG5lZWRlZCAoMzA0IHJlc3BvbnNlcyB1c2UgbWluaW1hbCBjb2RlKSAgKiogPC9saT4NCiAgPGxpPkF1dG9tYXRpY2FsbHkgcmV3cml0ZXMgcmVsYXRpdmUgVVJJcyBpbiBjb21iaW5lZCBDU1MgZmlsZXMgdG8gcG9pbnQgdG8gdmFsaWQgbG9jYXRpb25zIDwvbGk+DQogIDxsaT5XaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSYjMDM5O3MgbW9kX2RlZmxhdGUgb3B0aW9uISA8L2xpPg0KPC91bD4NCjxoMz48ZW0+PHN0cm9uZz4qKiBOb3RlOjwvc3Ryb25nPiBJdCBpcyBiZXN0IHRvIHVzZSBhIC5odGFjY2VzcyBzY3JpcHQgdG8gc2V0IHRoZSBhZ2UgdGltZXMuIFNjcmlwdERlcGxveSBpcyBkZXNpZ25lZCBmb3IgZWZmaWNpZW5jeSwgYnV0IGZvciB2ZXJ5IGhpZ2ggdHJhZmZpYyBzaXRlcywgU2NyaXB0RGVwbG95IG1heSBzZXJ2ZSBmaWxlcyBzbG93ZXIgdGhhbiB5b3VyIEhUVFBkIGR1ZSB0byB0aGUgQ0dJIG92ZXJoZWFkIG9mIFBIUC4gIFRvIG92ZXIgY29tZSB0aGlzIEp1c3QgY2hlY2sgJnF1b3Q7dXNlIC5odGFjY2VzcyBpbiBvcHRpb25zJnF1b3Q7PC9lbT48L2gzPg0KPGgyPjxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPlJlcXVpcmVtZW50czwvaDI+DQo8dWw+DQogIDxsaT5UaGUgY29tbW9ubHkgaW5zdGFsbGVkIDxhIGhyZWY9Imh0dHA6Ly91czMucGhwLm5ldC9tYW51YWwvZW4vemxpYi5pbnN0YWxsYXRpb24ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+emxpYiAgIGV4dGVuc2lvbjwvYT4gaXMgcmVjb21tZW5kZWQgZm9yIEhUVFAgZW5jb2RpbmcgZnVuY3Rpb25hbGl0eS4gPC9saT4NCjwvdWw+DQo8YnIvPjxici8+DQo8aDE+SG93IERvIEkgVXNlIEl0PC9oMT4NCg0KDQo8aDM+R2V0IGEgc2luZ2xlIHNjcmlwdDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPg0KDQo8YnIvPjxici8+DQo8aDQ+UGFyYW1zPC9oND4NCjx1bD4NCjxsaT48c3Ryb25nPnNjcmlwdElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+Z3JvdXBJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC8pIEpTL0NTUzwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+c21hcnR5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDpudWxsPC9zdHJvbmc+PC9lbT4gPGJyLz58IFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+bWluaWZ5PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlIDxzdHJvbmc+RGVmYXVsdDp0cnVlPC9zdHJvbmc+PC9lbT4gPGJyLz58ICBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCg0KDQoNCg0KDQoNCjxsaT48c3Ryb25nPm1lZGlhX3R5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVfYnVzdGVyPC9zdHJvbmc+IDxlbT4ob3B0aW9uYWwpIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+PGJyLz58IFRoaXMgaXMgdG8gaW5zdGFudGx5IHVuY2FjaGUgYW4gc2NyaXB0IG9uIHRoZSBjbGllbnQgc2lkZSBhZnRlciBhIG5ldyB1cGxvYWRlZCBzY3JpcHQgaXMgY3JlYXRlZC4uLiBpZTogMTIuanM/MTI1NTIyNTAwNyAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KCB0cnVlL2ZhbHNlICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCjxsaT48c3Ryb25nPmFzc2lnbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgQXNzaWduIHRoZSBvdXRwdXQgKHJldHVybiB0aGUgc21hcnR5IGFzc2lnbm1lbnQpICBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdXQgd2l0aG91dCBVUkw8L2xpPg0KPGxpPjxzdHJvbmc+ZnNpemU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBTY3JpcHREZXBsb3kgY3JlYXRlcyBhIHRlbXAgZGlyZWN0b3IgaW4gdGhlIHVwbG9hZCBmb2xkZXIuICBJZiB5b3UgbW92ZSB0aGUgcGF0aCB0byB0aGUgdXBsYW9kIHRvIGEgc3ViZG9tYWluIHlvdSBtYXkgZ3VpZGUgdGhlIG91dHB1dCB3aXRoIHRoaXMuPC9saT4NCiAgICAgICAgPHVsIHN0eWxlPSZxdW90O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyZxdW90Oz48bGk+PHN0cm9uZz5FeGFwbWxlOjwvc3Ryb25nPiB5b3UgY2hhbmdlZCA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSAmIzAzOTsvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT4gPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPnRvPC9zdHJvbmc+IDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9IFwvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9zdWJkb21haW5zL21lZGlhL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPjwvbGk+DQogICAgICAgICAgICA8bGk+bm93IHRoZSB1cGxvYWRzIHVybCB3b3VsZCBub3Qgd29yayBhcyBpdCB3b3VsZCBiZSA8dT5odHRwOi8vd3d3LmRvbWFpbi5vcmcvdXBsb2FkczwvdT48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+U288L3N0cm9uZz4gaXQgY2FuIGJlIGNoYW5nZWQgaGVyZSB0byA8dT5odHRwOi8vbWVkaWEuZG9tYWluLm9yZy91cGxvYWRzPC91PiAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz51cmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58b3V0cHV0cyB0aGUgdXJsLjwvbGk+DQoNCg0KDQoNCgkJDQoNCg0KDQoNCg0KDQoNCg0KPCEtLTxsaT48c3Ryb25nPlNhbmRCb3g9dHJ1ZSA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBmYWxzZTxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+UlVOYWN0aW9uPSZhbXA7cXVvdDsmYW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCBVUkwgPGVtPiguLi9wbHVnaW5zL2Z1bmN0aW9uLmZpbGVuYW1lLnBocCk8L2VtPjxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSZhbXA7cXVvdDsmYW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NjcmlwdGRlcGxveSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOSwgamVyZW15QmFzcyAmYW1wO2x0OzxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPiZhbXA7Z3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzskbGFuZ1sndXRtYSddPScxNTY4NjEzNTMuMTk0OTY3MzExMi4xMjY1MjEwNzY5LjEyODc0NzMyMDcuMTI4NzQ3Njk4OS4yMzInOyRsYW5nWyd1dG16J109JzE1Njg2MTM1My4xMjg3MDcwNDEwLjIyMi40My51dG1jc3I9Y21zbWFkZXNpbXBsZS5mcnx1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9mb3J1bS92aWV3dG9waWMucGhwJzskbGFuZ1sncWNhJ109J1AwLTEwNzU4MjA1NTEtMTI2NTIxMDc2ODc2NCc7JGxhbmdbJ3V0bWInXT0nMTU2ODYxMzUzLjIuMTAuMTI4NzQ3Njk4OSc7JGxhbmdbJ3V0bWMnXT0nMTU2ODYxMzUzJzsgPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95ICc7JGxhbmdbJ3Bvc3RpbnN0YWxsJ109J0Ymb3NsYXNoO3JzdGUgc3RvcHAgZHUgdmlsIGdqJm9zbGFzaDtyZSBuJmFyaW5nOyBlciBpIEhqZWxwZXNla3Nqb25lbic7JGxhbmdbJ3Bvc3R1bmluc3RhbGwnXT0nUGxlYXNlIGZlZWwgZnJlZSB0byBsZXQgdXMga25vdyBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIFNjcmlwdERlcGxveSBiZXR0ZXIsIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPkNvbnRhY3QgdXMgd2UmIzAzOTtlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOyRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ109J1VuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIG5vdCBhZmZlY3QgYW55IGV2ZW50IGRhdGEgYW5kIGFsbCBib29rcyB0byBkYXRlIHdpbGwgc3RpbGwgYmUgdGhlcmUuIERvIHlvdSB3aXNoIHRvIGNvbnRpbnVlPyc7JGxhbmdbJ3VuaW5zdGFsbGVkJ109J01vZHVsZW4gYmxlIGF2aW5zdGFsbGVydCc7JGxhbmdbJ2luc3RhbGxlZCddPSdNb2R1bGUgdmVyc2pvbiAlcyBlciBpbnN0YWxsZXJ0JzskbGFuZ1sndXBncmFkZWQnXT0nTW9kdWwgb3BwZ3JhZGVydCB0aWwgdmVyc2pvbiAlcyc7JGxhbmdbJ21vZHVsZV9vcHRpb25zJ109J01vZHVsdmFsZyc7JGxhbmdbJ3RlbXBsYXRlX21hbmcnXT0nTWFsZXInOyRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXT0nRGVwbG95bWVudCB2YWxnJzskbGFuZ1snVmFsc2V0dGluZ3MnXT0nVmFsaWRlcmluZ3Npbm5zdGlsbGluZ2VyJzskbGFuZ1snZW4nXT0nRW5nZWxzayc7JGxhbmdbJ2ZyJ109J2ZyYW5zayc7JGxhbmdbJ2l0J109J0l0YWxpYW5zayc7JGxhbmdbJ2tvJ109J0tvcmVhbnNrJzskbGFuZ1snamEnXT0nSmFwYW5lc2lzayc7JGxhbmdbJ2VzJ109J1NwYW5zayc7JGxhbmdbJ3poLWNuJ109J0tpbmVzaXNrJzskbGFuZ1snbmwnXT0nTmVkZXJsYW5zayc7JGxhbmdbJ2RlJ109J1R5c2snOyRsYW5nWydwbCddPSdQb2xzayc7JGxhbmdbJ3JvJ109J1J1bWVuc2snOyRsYW5nWydjcyddPSdFc3Rvbmlzayc7JGxhbmdbJ2JnJ109J0J1bGdhcnNrJzskbGFuZ1snc3YnXT0nU3ZlbnNrJzskbGFuZ1snZmEnXT0nUGVyc2lzayAoRmFyc2kpJzskbGFuZ1sncnUnXT0nUnVzc2lzayc7JGxhbmdbJ3B0LUJSJ109JyBCcmFzaWxpYW5zayBQb3J0dWdpc2lzayAoc3RhbmRhcmQpJzskbGFuZ1snTG5vbmUnXT0nSW5nZW4gYWR2YXJzbGVyJzskbGFuZ1snTDAnXT0nTml2JmFyaW5nOyAwJzskbGFuZ1snTDEnXT0nTml2JmFyaW5nOyAxJzskbGFuZ1snTDInXT0nTml2JmFyaW5nOyAyJzskbGFuZ1snY3NzMSddPSdDU1MgMSAnOyRsYW5nWydjc3MyJ109J0NTUyAyICc7JGxhbmdbJ2NzczIxJ109J0NTUyAyLjEgJzskbGFuZ1snY3NzMyddPSdDU1MgMyAnOyRsYW5nWydzdmcnXT0nU1ZHICc7JGxhbmdbJ3N2Z2Jhc2ljJ109J1NWRyBiYXNpYyAnOyRsYW5nWydzdmd0aW55J109J1NWRyB0aW55ICc7JGxhbmdbJ21vYmlsZSddPSdtb2JpbGUgJzskbGFuZ1snYXRzYy10diddPSdhdHNjLXR2ICc7JGxhbmdbJ3R2J109J0ludGVuZGVkIGZvciB0ZWxldmlzaW9uLXR5cGUgZGV2aWNlcy4gJzskbGFuZ1snbm9uZSddPSdpbmdlbic7JGxhbmdbJ0lubGluZSddPSdvcHBkYWcgYXV0b21hdGlzayc7JGxhbmdbJ0hUTUw1J109J0hUTUw1IChla3NwZXJpbWVudGVsbCknOyRsYW5nWydYSFRNTF8xXzBfU3RyaWN0J109J1hIVE1MIDEuMCBTdHJpY3QgJzskbGFuZ1snWEhUTUxfMV8wX1RyYW5zaXRpb25hbCddPSdYSFRNTCAxLjAgVHJhbnNpdGlvbmFsICc7JGxhbmdbJ1hIVE1MXzFfMF9GcmFtZXNldCddPSdYSFRNTCAxLjAgRnJhbWVzZXQgJzskbGFuZ1snSFRNTF80XzAxX1N0cmljdCddPSdIVE1MIDQuMDEgU3RyaWN0ICc7JGxhbmdbJ0hUTUxfNF8wMV9UcmFuc2l0aW9uYWwnXT0nSFRNTCA0LjAxIFRyYW5zaXRpb25hbCAnOyRsYW5nWydIVE1MXzRfMDFfRnJhbWVzZXQnXT0nSFRNTCA0LjAxIEZyYW1lc2V0ICc7JGxhbmdbJ0hUTUxfM18yJ109J0hUTUwgMy4yICc7JGxhbmdbJ0hUTUxfMl8wJ109J0hUTUwgMi4wICc7JGxhbmdbJ0lTTy9JRUNfMTU0NDU6MjAwMF8oIklTT19IVE1MIiknXT0nSVNPL0lFQyAxNTQ0NToyMDAwICgmcXVvdDtJU08gSFRNTCZxdW90OykgJzskbGFuZ1snWEhUTUxfMV8xJ109J1hIVE1MIDEuMSAnOyRsYW5nWydYSFRNTF8rX1JERmEnXT0nWEhUTUwgKyBSREZhICc7JGxhbmdbJ1hIVE1MX0Jhc2ljXzFfMCddPSdYSFRNTCBCYXNpYyAxLjAgJzskbGFuZ1snWEhUTUxfQmFzaWNfMV8xJ109J1hIVE1MIEJhc2ljIDEuMSAnOyRsYW5nWydYSFRNTF9Nb2JpbGVfUHJvZmlsZV8xXzInXT0nWEhUTUwgTW9iaWxlIFByb2ZpbGUgMS4yICc7JGxhbmdbJ1hIVE1MLVByaW50XzFfMCddPSdYSFRNTC1QcmludCAxLjAgJzskbGFuZ1snWEhUTUxfMV8xX3BsdXNfTWF0aE1MXzJfMCddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wJzskbGFuZ1snWEhUTUxfMV8xX3BsdXNfTWF0aE1MXzJfMF9wbHVzX1NWR18xXzEnXT0nWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCBwbHVzIFNWRyAxLjEnOyRsYW5nWydNYXRoTUxfMl8wJ109J01hdGhNTCAyLjAgJzskbGFuZ1snU1ZHXzFfMCddPSdTVkcgMS4wICc7JGxhbmdbJ1NWR18xXzEnXT0nU1ZHIDEuMSAnOyRsYW5nWydTVkdfMV8xX1RpbnknXT0nU1ZHIDEuMSBUaW55ICc7JGxhbmdbJ1NWR18xXzFfQmFzaWMnXT0nU1ZHIDEuMSBCYXNpYyAnOyRsYW5nWydTTUlMXzFfMCddPSdTTUlMIDEuMCAnOyRsYW5nWydTTUlMXzJfMCddPSdTTUlMIDIuMCAnOyRsYW5nWydkZWZhdWx0UGFnZV9sYWJsZSddPSdTamVrayBtb3QgZGVubmUgc2lkZW4nOyRsYW5nWydlbmNvZGluZ19sYWJsZSddPSdFbmtvZGluZyc7JGxhbmdbJ2RldGVjdCddPSdvcHBkYWcgYXV0b21hdGlzayc7JGxhbmdbJ3V0Zi04J109J3V0Zi04IChVbmljb2RlLCB3b3JsZHdpZGUpICc7JGxhbmdbJ3V0Zi0xNiddPSd1dGYtMTYgKFVuaWNvZGUsIHdvcmxkd2lkZSkgJzskbGFuZ1snaXNvLTg4NTktMSddPSdpc28tODg1OS0xIChXZXN0ZXJuIEV1cm9wZSkgJzskbGFuZ1snaXNvLTg4NTktMiddPSdpc28tODg1OS0yIChDZW50cmFsIEV1cm9wZSkgJzskbGFuZ1snaXNvLTg4NTktMyddPSdpc28tODg1OS0zIChTb3V0aGVybiBFdXJvcGUpICc7JGxhbmdbJ2lzby04ODU5LTQnXT0naXNvLTg4NTktNCAoTm9ydGggRXVyb3BlYW4pICc7JGxhbmdbJ2lzby04ODU5LTUnXT0naXNvLTg4NTktNSAoQ3lyaWxsaWMpICc7JGxhbmdbJ2lzby04ODU5LTYtaSddPSdpc28tODg1OS02LWkgKEFyYWJpYykgJzskbGFuZ1snaXNvLTg4NTktNyddPSdpc28tODg1OS03IChHcmVlaykgJzskbGFuZ1snaXNvLTg4NTktOCddPSdpc28tODg1OS04IChIZWJyZXcsIHZpc3VhbCkgJzskbGFuZ1snaXNvLTg4NTktOC1pJ109J2lzby04ODU5LTgtaSAoSGVicmV3LCBsb2dpY2FsKSAnOyRsYW5nWydpc28tODg1OS05J109J2lzby04ODU5LTkgKFR1cmtpc2gpICc7JGxhbmdbJ2lzby04ODU5LTEwJ109J2lzby04ODU5LTEwIChMYXRpbiA2KSAnOyRsYW5nWydpc28tODg1OS0xMSddPSdpc28tODg1OS0xMSAoTGF0aW4vVGhhaSkgJzskbGFuZ1snaXNvLTg4NTktMTMnXT0naXNvLTg4NTktMTMgKExhdGluIDcsIEJhbHRpYyBSaW0pICc7JGxhbmdbJ2lzby04ODU5LTE0J109J2lzby04ODU5LTE0IChMYXRpbiA4LCBDZWx0aWMpICc7JGxhbmdbJ2lzby04ODU5LTE1J109J2lzby04ODU5LTE1IChMYXRpbiA5KSAnOyRsYW5nWydpc28tODg1OS0xNiddPSdpc28tODg1OS0xNiAoTGF0aW4gMTApICc7JGxhbmdbJ3VzLWFzY2lpJ109J3VzLWFzY2lpIChiYXNpYyBFbmdsaXNoKSAnOyRsYW5nWydldWMtanAnXT0nZXVjLWpwIChKYXBhbmVzZSwgVW5peCkgJzskbGFuZ1snc2hpZnRfamlzJ109J3NoaWZ0X2ppcyAoSmFwYW5lc2UsIFdpbi9NYWMpICc7JGxhbmdbJ2lzby0yMDIyLWpwJ109J2lzby0yMDIyLWpwIChKYXBhbmVzZSwgZW1haWwpICc7JGxhbmdbJ2V1Yy1rciddPSdldWMta3IgKEtvcmVhbikgJzskbGFuZ1snZ2IyMzEyJ109J2diMjMxMiAoQ2hpbmVzZSwgc2ltcGxpZmllZCkgJzskbGFuZ1snZ2IxODAzMCddPSdnYjE4MDMwIChDaGluZXNlLCBzaW1wbGlmaWVkKSAnOyRsYW5nWydiaWc1J109J2JpZzUgKENoaW5lc2UsIHRyYWRpdGlvbmFsKSAnOyRsYW5nWydiaWc1LUhLU0NTJ109J0JpZzUtSEtTQ1MgKENoaW5lc2UsIEhvbmcgS29uZykgJzskbGFuZ1sndGlzLTYyMCddPSd0aXMtNjIwIChUaGFpKSAnOyRsYW5nWydrb2k4LXInXT0na29pOC1yIChSdXNzaWFuKSAnOyRsYW5nWydrb2k4LXUnXT0na29pOC11IChVa3JhaW5pYW4pICc7JGxhbmdbJ2lzby1pci0xMTEnXT0naXNvLWlyLTExMSAoQ3lyaWxsaWMgS09JLTgpJzskbGFuZ1snbWFjaW50b3NoJ109J21hY2ludG9zaCAoTWFjUm9tYW4pICc7JGxhbmdbJ3dpbmRvd3MtMTI1MCddPSd3aW5kb3dzLTEyNTAgKENlbnRyYWwgRXVyb3BlKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTEnXT0nd2luZG93cy0xMjUxIChDeXJpbGxpYykgJzskbGFuZ1snd2luZG93cy0xMjUyJ109J3dpbmRvd3MtMTI1MiAoV2VzdGVybiBFdXJvcGUpICc7JGxhbmdbJ3dpbmRvd3MtMTI1MyddPSd3aW5kb3dzLTEyNTMgKEdyZWVrKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTQnXT0nd2luZG93cy0xMjU0IChUdXJraXNoKSAnOyRsYW5nWyd3aW5kb3dzLTEyNTUnXT0nd2luZG93cy0xMjU1IChIZWJyZXcpICc7JGxhbmdbJ3dpbmRvd3MtMTI1NiddPSd3aW5kb3dzLTEyNTYgKEFyYWJpYykgJzskbGFuZ1snd2luZG93cy0xMjU3J109J3dpbmRvd3MtMTI1NyAoQmFsdGljIFJpbSkgJzskbGFuZ1snYXV0byddPSdBdXRvZ2VuZXJlcnQnOyRsYW5nWydhc3NpZ25lZCddPSdTaWRlIG1lZCB0aWxrbnl0dGV0IG1hbCc7JGxhbmdbJ3VzZXJDaG9pY2UnXT0nVmVsZyBlbiBzaWRlJzskbGFuZ1sndXNlckdlbmVyYXRlZCddPSdTZXR0IGRpdHQgaW5uaG9sZCc7JGxhbmdbJ3NhdmVWQUxzZXR0aW5ncyddPSdMYWdyZSB2YWxpZGVyaW5nc2lubnN0aWxsaW5nZXInOyRsYW5nWydzZXR0aW5ncyddPSdJbm5zdGlsbGluZ2VyJzskbGFuZ1snc2V0dGluZ3NzYXZlZCddPSdJbm5zdGlsbGluZ2VyIGxhZ3JldCc7JGxhbmdbJ2xlYXZlY29kZSddPSdJa2tlIHImb3NsYXNoO3Iga29kZSc7JGxhbmdbJ2Zvcm1hdGNvZGUnXT0nRm9ybWF0ZXIga29kZSBwZW50JzskbGFuZ1snc2NyYW1ibGVjb2RlJ109J1NjcmFtYmxlIHRoZSBjb2RlJzskbGFuZ1snY2xlYW5jb2RlJ109J1JFbnMgb3BwIGkga29kZW4gdmVkICZhcmluZzsgZmplcm5lIHRpbmcgc29tIGlrZWsgaGFyIGJldHlkbmluZyc7JGxhbmdbJ3NhdmVzZXR0aW5ncyddPSdMYWdyZSBpbm5zdGlsbGluZ2VyJzskbGFuZ1snbWFuZ2xldHlwZXRleHQnXT0nSHZvcmRhbiBmb3JtYXRlcmUga29kZSc7JGxhbmdbJ2JyaWVmJ109J0tvcnQnOyRsYW5nWyd2ZXJib3NlJ109J0Z5bGRpZyc7JGxhbmdbJ2NvZGVmaXhlcyddPSdLb2RlZmlrc2VyJzskbGFuZ1snZm9yY2Vsb3dlcnRhZ3N0ZXh0J109J1R2aW5nIHRhZ2dlciB0aWwgc20mYXJpbmc7IGJva3N0YXZlcic7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzaGVscCddPSdGb3IgYmVkcmUgWEhUTUwta29tcGF0aWJpbGl0ZXQnOyRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J109J0dqZW0gbWVsZGluZ2VyIGkgYnVubmVuIHAmYXJpbmc7ICh4KWh0bWwta29kZSc7JGxhbmdbJ2luZGVudHdpZHRodGV4dCddPSdCcmVkZGUgcCZhcmluZzsgaW5ucnlrayc7JGxhbmdbJ3NwYWNlcyddPSdNZWxsb21yb20nOyRsYW5nWydkZWJ1Z2xldmVsdGV4dCddPSdNZW5nZGUgYXYgZmVpbHMmb3NsYXNoO2tpbmdzaW5mb3JtYXNqb246ICc7JGxhbmdbJ2RlYnVndGV4dCddPSdLb2RlIGZlaWxzJm9zbGFzaDtraW5nc21vZHVzJzskbGFuZ1snU2NyaXB0X2xpc3QnXT0nU2tyaXB0JzskbGFuZ1snQXNzX2hlYWRlciddPSdVbmlmaWVkIHNrcmlwdCc7JGxhbmdbJ1NhbXBsZVRhZyddPSdFa3NlbXBlbHRhZ2cnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J109J0xlZ2cgdGlsIG55dHQgc2tyaXB0JzskbGFuZ1sncHJvbXB0X25ld1NjcmlwdEFzcyddPSdMZWdnIHRpbCBza3JpcHQgZ3J1cHBlcmluZyc7JGxhbmdbJ3Byb21wdF9hZGR0ZW1wbGF0ZSddPSdMZWdnIHRpbCBtYWwnOyRsYW5nWydhZGRMaWJfbGFiZWwnXT0nTGVnZyB0aWwgYmlibGlvdGVrJzskbGFuZ1sndGl0bGVfR3JvdXBzJ109J0dydXBwZSBza3JpcHQgbGlzdGUnOyRsYW5nWyd0aXRsZV9TY3JpcHRzJ109J0Vua2xlIHNrcmlwdCBsaXN0ZSc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/JzskbGFuZ1snc21hcnR5SG93J109J1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzIGluIEpTIGFuZCBDU1MuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9nZW5lcmFsX3NtYXJ0eSddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcyBpbiBKUyBhbmQgQ1NTLi4uIFdoZXJlIHlvdSYjMDM5O2QgaGF2ZSB7JHNtYXJ0eS5ub3d9IHlvdSBkbyB7eyRzbWFydHkubm93fX0gIC4gIE5vdyB5b3UgY2FuIGRvIHNtYXJ0eSBzdHVmZi4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOyRsYW5nWyd0aXBfZ2VuZXJhbF9ncm91cGluZyddPSdKb2luaW5nIHlvdXIgQ1NTIGZpbGVzIHNwZWVkcyB1cCB5b3VyIHVzZXJzIGV4cGVyaWVuY2UgYW5kIGhlbHAgeW91IGdldCBjbG9zZXIgdG8gYW4gJnF1b3Q7QSZxdW90OyBpbiA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95c2xvdy8iIHRhcmdldD0iX2JsYW5rIj55U2xvdzwvYT4nOyRsYW5nWyd0aXBfZWRpdG9yX3RhYiddPSdEaWQgeW91IGtub3cgdGhhdCB5b3UgY2FuIHVzZSB0aGUgVGFiIGtleSB0byBpbmRlbnQgeW91IGNvZGU/ICBUcnkgaXQgb3V0Lic7JGxhbmdbJ3RpcF9lZGl0b3Jfc2VhcmNoTnJlcGxhY2UnXT0nRGlkIHlvdSBrbm93IHRoYXQgeW91IGNhbiB1c2UgcmVndWxhciBleHByZXNzaW9uIHRvIHF1aWNrbHkgc2VhcmNoIGFuZCByZXBsYWNlPyAgVXNlIEN0cmwrZiBpbiB0aGUgZWRpdG9yIHRvIGJyaW5nIHVwIHRoZSBib3guJzskbGFuZ1sndGlwX2VkaXRvcl9yZXNldEhpZ2hsaWdodCddPSdJZiB5b3UgYXJlIHNlZWluZyBkb3VibGVzIGluIHRoZSBlZGl0b3IsIGllOiB0aGUgaGlnaGxpZ2h0IGlzIGRlc3luY3Jvbml6ZWQgZnJvbSB0ZXh0IGp1c3QgdXNlIHRoZSByZXNldCBoaWdobGlnaHQgYnV0dG9uIDxpbWcgd2lkdGg9JnF1b3Q7MjAmcXVvdDsgaGVpZ2h0PSZxdW90OzIwJnF1b3Q7IG9ubW91c2Vkb3duPSZxdW90O2VkaXRBcmVhLnJlc3RvcmVBbmRTd2l0Y2hDbGFzcyh0aGlzLCYjMDM5O2VkaXRBcmVhQnV0dG9uRG93biYjMDM5Oyk7JnF1b3Q7IG9ubW91c2VvdXQ9JnF1b3Q7ZWRpdEFyZWEucmVzdG9yZUNsYXNzKHRoaXMpOyZxdW90OyBvbm1vdXNlb3Zlcj0mcXVvdDtlZGl0QXJlYS5zd2l0Y2hDbGFzcyh0aGlzLCYjMDM5O2VkaXRBcmVhQnV0dG9uT3ZlciYjMDM5Oyk7JnF1b3Q7IGNsYXNzPSZxdW90O2VkaXRBcmVhQnV0dG9uTm9ybWFsJnF1b3Q7IHRpdGxlPSZxdW90O3Jlc2V0IGhpZ2hsaWdodCAoZWQpJnF1b3Q7IHNyYz0mcXVvdDsuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9lZGl0X2FyZWEvaW1hZ2VzL3Jlc2V0X2hpZ2hsaWdodC5naWYmcXVvdDsgaWQ9JnF1b3Q7cmVzZXRfaGlnaGxpZ2h0JnF1b3Q7Pic7JGxhbmdbJ3RpcF90ZW1wbGF0ZV9zbWFydHknXT0nU21hcnR5IHN5bnRheCBpcyB0aGUgc2FtZSBhcyBldmVyeXdoZXJlIGVsc2UganVzdCBhIHN0cmFpZ2h0IHskc21hcnR5Lm5vd30uICBUaGUge3sgfX0gaXMgZm9yIHRoZSBDU1MgYW5kIEpTIGFzIHt9IGFyZSBpbiB0aGVpciBzeW50YXguICBTbWFydHkgMyBhY2NvdW50cyBmb3IgdGhpcyBhbmQgc28gQ01TTVMgMi4wIHdpbGwgbm90IG5lZWQgdGhlIHt7IH19JzskbGFuZ1sndGlwX2dyb3VwX2RyYWdOZHJvcCddPSd0byBnZXQgc3RhcnRlZCBqdXN0IGRyYWcgZnJvbSB0aGUgcG9vbCB0byB0aGUgZ3JvdXAmIzAzOTtzIGxpc3QnOyRsYW5nWydhbGwnXT0nRWduZXQgZm9yIGFsbGUgZW5oZXRlcic7JGxhbmdbJ2F1cmFsJ109J0JlcmVnbmV0IGZvciBzeW50ZXRpc2sgdGFsZSc7JGxhbmdbJ2JyYWlsbGUnXT0nQmVyZWduZXQgZm9yIGJyYWlsbGUnOyRsYW5nWydlbWJvc3NlZCddPSdCZXJlZ25ldCBmb3IgYnJhaWxsZSBza3JpdmVyZSc7JGxhbmdbJ2hhbmRoZWxkJ109J0JlcmVnbmV0IGZvciBoJmFyaW5nO25kaG9sZHRlIGVuaGV0ZXInOyRsYW5nWydwcmludCddPSdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4gJzskbGFuZ1sncHJvamVjdGlvbiddPSdJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuJzskbGFuZ1snc2NyZWVuJ109J0ludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy4gJzskbGFuZ1sndHR5J109J0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLiAnOyRsYW5nWydNZWRpYVR5cGUnXT0nYWxsIDogU3VpdGFibGUgZm9yIGFsbCBkZXZpY2VzLjxici8+DQphdXJhbCA6IEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLjxici8+DQpicmFpbGxlIDogSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLjxici8+DQplbWJvc3NlZCA6IEludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLjxici8+DQpoYW5kaGVsZCA6IEludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzPGJyLz4NCnByaW50IDogSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuPGJyLz4NCnByb2plY3Rpb24gOiBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuPGJyLz4NCnNjcmVlbiA6IEludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy48YnIvPg0KdHR5IDogSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuPGJyLz4NCnR2IDogSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7JGxhbmdbJ0NhbmNlbGVkJ109J1lvdSBDYW5jZWxlZCBvdXQgb2YgdGhlIG9wZXJhdGlvbi4gIEFueSBXb3JrIHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGhhcyBiZWVuIGxvc3QuJzskbGFuZ1snQnRuQURERUQnXT0nRHUgbGEgYWtrdXJhdCB0aWwgZXQgbnl0dCBza3JwdCc7JGxhbmdbJ0J0bkVESVRFRCddPSdEdSByZWRpZ2VydGUgZXQgZWtzaXN0ZXJlbmRlIHNrcmlwdCc7JGxhbmdbJ0J0bkRFTEVURUQnXT0nRHUgc2xldHRldCBldCBla3Npc3RlcmVuZGUgc2tycHQnOyRsYW5nWyd0eXBlX2xhYmVsJ109J1R5cGUgJzskbGFuZ1sncmV2aXNpb24nXT0nUmV2aXNqb24nOyRsYW5nWydpc0VkaXQnXT0ncmVkaWdlcmVyJzskbGFuZ1snc3RlYWwnXT0nVGplbCBkb2t1bWVudGV0JzskbGFuZ1snZ2V0X3RhZyddPSdGJmFyaW5nOyB0YWdnZW4nOyRsYW5nWydlbXRweUdyb3VwJ109J0R1IG0mYXJpbmc7IGxlZ2dlIHRpbGUgZXQgc2tyaXB0IHRpbCBncnVwcGVuIGYmb3NsYXNoO3IgZHUga2FsbGVyIGRlbic7JGxhbmdbJ2FsbFNjcmlwdHNVc2VkJ109J0FsbGUgc2tyaXB0ZW5lIGVyIGJlbnl0dGV0JzskbGFuZ1snTm9fU2NyaXB0cyddPSdEZXQgZmlubmVzIGFra3VyYXQgbiZhcmluZzsgaW5nZW4gc2tyaXB0JzskbGFuZ1snTm9fR3JvdXBzJ109J0RldCBlciBha2t1cmF0IG4mYXJpbmc7IGluZ2VuIGdydXBwZXInOyRsYW5nWydzZXRpbmFjdGl2ZSddPSdTZXQgbWFsIGluYWt0aXYnOyRsYW5nWydzZXRhY3RpdmUnXT0nU2V0IG1hbCBha3Rpdic7JGxhbmdbJ25vdGRlZmF1bHQnXT0nSWtrZSBzdGFuZGFyZG1hbGVuLic7JGxhbmdbJ25vdHZhbGlkJ109J1N0aWxhcmt0aWxrb2JsaW5nZXIgZXIgaWtrZSBzYXR0IGtvcnJla3QgZm9yIGRlbm5lIG1hbGVuJzskbGFuZ1sndGVtcGxhdGVfdGFiJ109J1N0eWxlc3dpdGNoZXIgc2tqZW1hbWFsJzskbGFuZ1sncGFnZV90ZW1wbGF0ZXNfdGFiJ109J1NpZGVtYWxlcic7JGxhbmdbJ3N1Ym1pdCddPSdVdGYmb3NsYXNoO3InOyRsYW5nWydhcHBseSddPSdCcnVrJzskbGFuZ1snY2FuY2VsJ109J0F2YnJ5dCc7JGxhbmdbJ2dvJ109J0cmYXJpbmc7JzskbGFuZ1sncHJldmlldyddPSdmb3JoJmFyaW5nO25kc3Zpcyc7JGxhbmdbJ2lubGluZWhlbHAnXT0nSGplbHAnOyRsYW5nWydzY2lwdG9wdGlvbnMnXT0nVmFsZyc7JGxhbmdbJ3BlcnNpc3RlbnQnXT0nVmVkdmFyZW5kZSc7JGxhbmdbJ3ByZWZlcnJlZCddPSdGb3JldHJ1a2tldCc7JGxhbmdbJ2FsdGVybmF0ZSddPSdBbHRlcm5hdGl2JzskbGFuZ1snbmFtZSddPSdOYXZuJzskbGFuZ1sndGl0bGUnXT0nVGl0dGVsJzskbGFuZ1snaWQnXT0nSUQnOyRsYW5nWydhY3RpdmUnXT0nQWt0aXYnOyRsYW5nWydkZWZhdWx0J109J1N0YW5kYXJkJzskbGFuZ1sndmFsaWQnXT0nR3lsZGlnJzskbGFuZ1sndXNhZ2VfY291bnQnXT0nQnJ1ayc7JGxhbmdbJ3llcyddPSdKYSc7JGxhbmdbJ25vJ109J05laSc7JGxhbmdbJ2VkaXRjc3MnXT0nUmVkaWdlciBzdGlsYXJrc2FtbWVua29ibGluZ2VyJzskbGFuZ1snZWRpdHRlbXBsYXRlJ109J1JFZGlnZXIgbWFsaW5uaG9sZCc7JGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ109J1NsZXR0IG1hbCc7JGxhbmdbJ2NvcHl0ZW1wbGF0ZSddPSdLb3BpZXIgbWFsJzskbGFuZ1sncHJvbXB0X3N0eWxlc2hlZXQnXT0nVmVsZyBlbiBzaWRlc3RpbCc7JGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddPSdNYWwnOyRsYW5nWydwcm9tcHRfZ3JvdXBuYW1lJ109J0dydXBwZW5hdm4nOyRsYW5nWydwcm9tcHRfYWRkZ3JvdXAnXT0nTGVnZyB0aWwgZW4gZ3J1cHBlJzskbGFuZ1sncHJvbXB0X2dyb3VwdHlwZSddPSdHcnVwcGV0eXBlJzskbGFuZ1sncHJvbXB0X2FkZCddPSdMZWdnIHRpbCc7JGxhbmdbJ3Byb21wdF9zZWxlY3RvbmUnXT0nVmVsZyBlbic7JGxhbmdbJ3Byb21wdF9hZGRfYWx0ZXJuYXRlJ109J0xlZ2cgdGlsIGV0IGFsdGVybmF0aXYnOyRsYW5nWydlcnJvcl9wbGVhc2Vfc2VsZWN0X3N0eWxlc2hlZXQnXT0nVmVubmxpZ3N0IHZlbGcgZXQgc3RpbGFyayc7JGxhbmdbJ3VzZXJMb2dzJ109J1ZpcyBicnVrZXJoaXN0b3Jpa2sgbG9nZ2VuZSc7JGxhbmdbJ1NjcmlwdFNldF9sYWJlbCddPSdTa3JpcHQgSUQnOyRsYW5nWydzY3JpcHRUeXBlX2xhYmVsJ109J1NrcmlwdCB0eXBlJzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdTa3JpcHRuYXZuJzskbGFuZ1sndGVtcGxhdGVuYW1lX2xhYmVsJ109J01hbG5hdm4nOyRsYW5nWydTaW5nbGVDb2RlX2xhYmVsJ109J1N0YW5kYXJkIHRhZ2cnOyRsYW5nWydHcm91cHRTaXplX2xhYmVsJ109J1RvdGFsICc7JGxhbmdbJ25vdGVzX2xhYmVsJ109J01lcmtuYWRlcic7JGxhbmdbJ2RvY1R5cGVfbGFibGUnXT0nRG9jdHlwZSAnOyRsYW5nWydWYWxIVE1MVmVyYm9zZV9sYWJsZSddPSdDaGVjayBWZXJib3NlbHknOyRsYW5nWydTaG93VmFsX2xhYmxlJ109J0hvbGQgbWVsZGluZ2VyICZhcmluZztwbmUnOyRsYW5nWydUdXJuT05WYWxfbGFibGUnXT0nU2tydSA8c3Ryb25nPlAmQXJpbmc7PC9zdHJvbmc+IHZhbGlkZXJpbmcnOyRsYW5nWydob3RMaW5rQ2hlY2tfbGFibGUnXT0nRG8gSG90TGluayBDaGVjayc7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdZb3UgbmVlZCB0byB0dXJuIG9uIHRoZSBIb3RMaW5rIENoZWNrJzskbGFuZ1snZmlsdGVyUHJvcF9sYWJsZSddPScgRmlsdGVyIG91dCBwcm9wZXJ0aWVzIHRvIGhlbHAgdmFsaWRhdGUnOyRsYW5nWydDU1Nwcm9maWxlX2xhYmxlJ109JyBDU1MgUHJvZmlsZSc7JGxhbmdbJ3VzZXJtZWRpdW1fbGFibGUnXT0nIFVzZXIgTWVkaXVtJzskbGFuZ1snVkFMTGFuZ19sYWJsZSddPSdTcHImYXJpbmc7ayc7JGxhbmdbJ3czY0NTU3dhcm5pbmdfbGFibGUnXT0nIHczYyBDU1MgYWR2YXJzZWxzbml2JmFyaW5nOyc7JGxhbmdbJ01lZGlhVHlwZV9sYWJlbCddPSdNZWRpYXR5cGUnOyRsYW5nWydNaW5pZnlfbGFiZWwnXT0nTWluaWZ5IG9uIE91dHB1dCc7JGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddPSdPcHByZXR0ZWxzZXNkYXRvJzskbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXT0nRW5kcmV0IGRhdG8nOyRsYW5nWydwYXRoT3B0aW9uX2xhYmVsJ109J1VzZSBhIHBhdGg8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOyRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ109J1VzZSBhIHNwZWNpZmljIHJvb3QgVVJMPGVtPih1c2Ugc2NoZW1hICZxdW90O2h0dHBzOi8vc3ViLmRvbWFpbi50bGQvJnF1b3Q7KTwvZW0+JzskbGFuZ1snR3Jvb3RVUkwnXT0nR2xvYmFsIFNjcmlwdCBSb290IFVSTCc7JGxhbmdbJ2VtcHR5Y2FjaGVFcnJvcl9kb0FEVUlUJ109J2ZhaWxlZCB0byBlbXB0eSB0aGUgY2FjaGUgYXQnOyRsYW5nWydlbXB0aWVkQ2FjaF9kb0FEVUlUJ109J2VtcHRpZWQgdGhlIHNjcmlwdCBjYWNoZSc7JGxhbmdbJ2NsZWFyZWRSZXZpc2lvbl9kb0FEVUlUJ109J2NsZWFyZWQgdGhlIHJldmlzaW9uIGhpc3RvcnkgZm9yJzskbGFuZ1snQ2hlY2tlZE91dF9kb0FEVUlUJ109J0NoZWNrZWQgb3V0IHNjcmlwdCAnOyRsYW5nWydyZWxlYXNlZF9kb0FEVUlUJ109J3JlbGVhc2VkIHNjcmlwdCAnOyRsYW5nWydTY3JpcHRJc19sYWJlbCddPSdVc2UgdGhpcyBzY3JpcHQgPGVtPihOb3RlOiBJZiBhIHBhdGggaXMgc2V0LCBpdCB3aWxsIG92ZXIgcmlkZSB0aGlzKTwvZW0+JzskbGFuZ1snZGVidWdJVF9sYWJlbCddPSdkZWJ1Z0lUJzskbGFuZ1snZGVidWdJVG5vdGVfbGFiZWwnXT0nPGVtPihNdXN0IGhhdmUgRmlyZXBocCBtb2QpPC9lbT4nOyRsYW5nWydkZWJ1Z1QnXT0nRGVidWdpbmcgT3B0aW9ucyc7JGxhbmdbJ0VkaXRIaXN0b3J5J109J1VzZXIgSGlzdG9yeSBFZGl0aW5nJzskbGFuZ1snbm9uZUluVHlwZSddPSc8aDE+WW91IG11c3QgZmlyc3QgYWRkIDxici8+YSBzY3JpcHQgaW4gdGhpcyB0eXBlPC9oMT4nOyRsYW5nWydncm91cHlUaXRsZSddPSdMaXN0IG9mIFNjcmlwdHMgaW4gZ3JvdXAnOyRsYW5nWydyZXZpc2lvblRpdGxlJ109J1JldmlzaW9uIEhpc3RvcnknOyRsYW5nWydyZXZpc2lvbl9sYWJlbCddPSc8c3Ryb25nPlR1cm4gb24gdGhlIHJldmlzaW9uIGhpc3Rvcnk8L3N0cm9uZz4nOyRsYW5nWydyZXZpc2lvbl9vcCddPSc8aDE+UmV2aXNpb248L2gxPg0KPGgzPlR1cm5pbmcgdGhpcyBvZmYgZG9lcyBub3QgY2xlYXIgdGhlIGhpc3RvcnkgaWYgaXQgd2FzIG9uIGJlZm9yZS4gIExpa2UgaXQgdG8gcGF1c2UuPC9oMz4nOyRsYW5nWydyZXZpc2lvbl9MSU1JVF9sYWJlbCddPSdTZXQgUmV2aXNpb24gTElNSVQnOyRsYW5nWydjbGVhclJldiddPSdDbGVhciBIaXN0b3J5JzskbGFuZ1snbG9ja2ZpbGVzVGl0bGUnXT0nUHJvdGVjdCBGaWxlcyc7JGxhbmdbJ2xvY2tmaWxlc19sYWJlbCddPSc8c3Ryb25nPlR1cm4gb24gc2V0IGZpbGVzIHRvIDY0NDwvc3Ryb25nPic7JGxhbmdbJ2xvY2tmaWxlc19vcCddPSc8aDE+UHJvdGVjdCBGaWxlczwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHNldCB0aGUgY3JlYXRlZCBmaWxlIHRvIGJlIGNobW9kIHRvIDY0NC4gIFRoaXMgd2lsbCBoZWxwIHRvIHByb3RlY3QgeW91IGZyb20gSlMgaW50cnVzaW9uIGF0dGFja3MuPC9oMz4nOyRsYW5nWyd1c2VFZGl0b3JUaXRsZSddPSdFZGl0b3Igc2V0dGluZ3MnOyRsYW5nWyd1c2VFZGl0b3JfbGFiZWwnXT0nPHN0cm9uZz5UdXJuIG9uIHRoZSBlZGl0b3I8L3N0cm9uZz4nOyRsYW5nWyd1c2VFZGl0b3Jfb3AnXT0nPGgxPlR1cm4gb24gRWRpdG9yPC9oMT4NCjxoMz5UdXJuaW5nIHRoaXMgb24gc3dpbGwgaGVscCB5b3Ugc2VlIHRoZSBjb2RlIHlvdXIgd29ya2luZyB3aXRoLiAgSXQgaGludHMgdG8gY29ycmVjdCBzeW50YXggdmlhIGhpZ2hsaWdodGluZy48L2gzPic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2VUaXRsZSddPSdQcmVsb2FkIENzcyBJbWFnZXMnOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlX2xhYmVsJ109JzxzdHJvbmc+VHVybiBvbiBQcmVsb2FkZWQgQ3NzIEltYWdlczwvc3Ryb25nPic7JGxhbmdbJ3ByZWxvYWRfQ1NTaW1hZ2UnXT0nPGgxPlByZWxvYWQgQ3NzIEltYWdlczwvaDE+DQo8aDM+SWYgeW91IGhhdmUgeW91ciBzeXN0ZW0gYWxsIHNldCB1cCByaWdodCwgdGhpcyB3aWxsIGhlbHAgeW91IGdldCBhIGZhc3QgcGFyYWxsZWwgZG93biBsb2FkIG9mIGFsbCBlbGVtZW50cy48L2gzPic7JGxhbmdbJ2dsb2JhbHVybCddPSc8aDE+U2V0IHRoZSByb290IFVSTDwvaDE+DQo8aDM+VXNlZCBmb3Igd2hlbiB5b3UgbmVlZCBTU0wgc3VwcG9ydCBvciB3YW50IHRvIHB1c2ggdGhlIHNjcmlwdHMgdG8gYSBzdWJkb21haW4gdG8gbG9zZSB0aGUgbmVlZGxlcyBjb29raWVzLjwvaDM+JzskbGFuZ1snc21hcnR5T25fbGFiZWwnXT0nPHN0cm9uZz5Qcm9jZXNzIFNtYXJ0eTwvc3Ryb25nPjxici8+IGRhdGEgaW4gYnV0dG9uIGZpZWxkcyc7JGxhbmdbJ3NtYXJ0eU9uJ109JzxoMT5Qcm9jZXNzIFNtYXJ0eSBkYXRhPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXT0nPHN0cm9uZz5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L3N0cm9uZz4nOyRsYW5nWydmaWxlVGltZV9jc3NfdXJscyddPSc8aDE+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9oMT4NCjxoMz5UaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGEgZmlsZSBjcmVhdGlvbiB0aW1lIGF0IHRoZSBlbmQgb2YgYSBmaWxlLiAgVHVybmluZyB0aGlzIG9uIHdpbGwgYWRkIHRoaXMgdG8gYWxsIGxvY2FsIHVybHMuIChDU1Mgb25seSBhdG0pIC1Ob3RoaW5nIGlzIGRvbmUgdG8gaG90bGlua3M8L2gzPic7JGxhbmdbJ2VkaXQnXT0nRWRpdCc7JGxhbmdbJ2RlbGV0ZSddPSdEZWxldGUnOyRsYW5nWydDbG9zZSddPSdDbG9zZSc7JGxhbmdbJ09wZW4nXT0nT3Blbic7JGxhbmdbJ2RpckVtcHR5J109J1RoZSBmb2xkZXIgd2FzIGVtcHR5JzskbGFuZ1snY2xlYW5UZW1wJ109J0NsZWFuIHRoZSB0ZW1wPyc7JGxhbmdbJ3VyVGVtcFBhdGgnXT0nWW91ciBjYWNoZSBwYXRoIGlzJzskbGFuZ1snTGFzdE1vZCddPSdMYXN0IE1vZGlmaWVkJzskbGFuZ1snY2FjaGVGZXJyb3InXT0nU2NyaXB0RGVwbG95IGNvdWxkIG5vdCBtYWtlIHRoZSBjYWNoZSBmb2xkZXIsIGNoZWNrIHlvdXIgZmlsZSBwZXJtaXNzaW9ucyBmb3IgdGhlIFVwbG9hZHMgYXJlYS4nOyRsYW5nWydOYW1lJ109J05hbWUnOyRsYW5nWydQcm9jY2Vzc2luZyddPSdQcm9jZXNzaW5nJzskbGFuZ1snU2F2ZWQnXT0nU2F2ZWQnOyRsYW5nWydEb25lJ109J0RvbmUnOyRsYW5nWydWYWxpZGF0aW5nJ109J1ZhbGlkYXRpbmcnOyRsYW5nWydHcm91cHRTZXRfbGFiZWwnXT0nR3JvdXAgTmFtZSc7JGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXT0nVHlwZSBvZiBzY3JpcHRzJzskbGFuZ1snU2NyaXB0UGlja2VyX2xhYmVsJ109J1NjcmlwdCBQb29sJzskbGFuZ1snTElORSddPSdMSU5FJzskbGFuZ1snVFlQRSddPSdUWVBFJzskbGFuZ1snU1VCVFlQRSddPSdTVUJUWVBFJzskbGFuZ1snU1RSSU5HJ109J1NUUklORyc7JGxhbmdbJ01FU1NBR0UnXT0nTUVTU0FHRSc7JGxhbmdbJ0xFVkVMJ109J0xFVkVMJzskbGFuZ1snTm90ZXMnXT0nTm90ZXMnOyRsYW5nWydXYXJuaW5ncyddPSdXYXJuaW5ncyc7JGxhbmdbJ0Vycm9ycyddPSdFcnJvcnMnOyRsYW5nWydoaWRkZW4nXT0naGlkZGVuJzskbGFuZ1snU2NyaXB0J109J1NjcmlwdCc7JGxhbmdbJ0VVUkxTJ109J0V4dHJhY3RlZCBVcmxzJzskbGFuZ1snUkNTUyddPSdSZW5kZXJlZCBDU1MnOyRsYW5nWydTQ1NTJ109J0NTUyBTdHJ1Y3R1cmUnOyRsYW5nWydGQ09OVCddPSdGaWxlIGNvbnRlbnQnOyRsYW5nWydpVVJMJ109J2ltYWdlIFVSTCc7JGxhbmdbJ1R5cGUnXT0nVHlwZSc7JGxhbmdbJ1NpemUnXT0nU2l6ZSc7JGxhbmdbJ1N0YXR1cyddPSdTdGF0dXMnOyRsYW5nWydob3RsaW5rJ109JzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gYXBwZWFycyAgdG8gYmUgYSBob3RsaW5rLic7JGxhbmdbJ0Jyb2tlbmxpbmsnXT0nQnJva2VuIExpbmsnOyRsYW5nWydOT2Nzc0knXT0nTm8gY3NzIGltYWdlcyc7JGxhbmdbJ1llc1ZBbGFzdGVyJ109JzxoMj5Zb3UgdmFsaWRhdGVkISAqKjwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+PGJyLz4gPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvcjwvc3Ryb25nPic7JGxhbmdbJ3JlbG9hZF9hbGVydCddPSdZb3UgYXJlIHJlbG9hZGluZyB0aGUgc3JjaXB0IGZyb20gdGhlIGxhc3Qgc2F2ZSBwb2ludC4gIFlvdSBoYXZlIHNhdmVkIHRoZSBzY3JpcHQgYWxyZWFkeSBhbmQgaWYgeW91IG5lZWQgdG8gZ28gYmFjayB0byB0aGUgdmVyc2lvbiB3aGVuIHlvdSBmaXJzdCBjYW1lIGluIHRvIGVkaXQgcGxlYXNlIGNoZWNrIHlvdXIgcmV2aXNpb24gaGlzdG9yeS4nOyRsYW5nWydpbXBvcnRFeHBvcnQnXT0nSW1wb3J0L0V4cG9ydCc7JGxhbmdbJ3N0YXJ0RXhwb3J0J109J1N0YXJ0IEV4cG9ydCc7JGxhbmdbJ3N0YXJ0SW1wb3J0J109J1N0YXJ0IEltcG9ydCc7JGxhbmdbJ0NsZWFySW1nJ109J0RlbGV0ZSBDdXJyZW50IEltYWdlJzskbGFuZ1snRmluaXNoJ109J0ZpbmlzaCc7JGxhbmdbJ3JldmVydCddPSdSZXZlcnQnOyRsYW5nWydmb3JtX2NhbmNlbCddPSdDYW5jZWwnOyRsYW5nWydTYXZlJ109J1NhdmUnOyRsYW5nWydkb25lJ109J0RvbmUnOyRsYW5nWydhZGQnXT0nQWRkJzskbGFuZ1snUkVPUkRFUiddPSdSZW9yZGVyJzskbGFuZ1snZm9ybV9zdWJtaXQnXT0nU2F2ZSBQcmVmZXJlbmNlcyc7JGxhbmdbJ21vZF9wcmVmc190aXRsZSddPSdNb2R1bGUgUHJlZmVyZW5jZXMnOyRsYW5nWydwcmVmc3VwZGF0ZWQnXT0nTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzskbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXT0nb3B0aW9ucyB1cGRhdGVkJzskbGFuZ1snbW9kZGVzY3JpcHRpb24nXT0nU1BFRUQgWU9VUiBTSVRFIFVQIC4uLiEhISEgJmJ1bGw7IE91dHB1dCBkeW5hbWljIEpTIGZpbGVzIGFuZCBDU1MgV0lUSCBzbWFydHkuLi4gJmJ1bGw7IFNldCB0aGUgZmlsZXMgdG8gdXNlIGEgc3ViZG9tYWluLi4uICZidWxsOyBjYWNoZWQuLi4gJmJ1bGw7IG1pbmlmaWVkLi4uICZidWxsOyBEaWQgSSBtZW50aW9uIHlvdSBjYW4gdXNlIHNtYXJ0eSBpbiB5b3VyIEpTIGFuZCBDU1Mgc2NyaXB0ISEhISAtIFNpbXBsZSwgZmxleGlibGUhJzskbGFuZ1snd2VsY29tZV90ZXh0J109JzxwPkhlbGxvITwvcD4nOyRsYW5nWydoZWxwJ109JzxsaW5rIG1lZGlhPSZxdW90O3NjcmVlbiZxdW90OyBocmVmPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsvPjxkaXYgY2xhc3M9JnF1b3Q7U2ltV3JhcCZxdW90Oz48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0mcXVvdDtTaW1jb24mcXVvdDs+IDxoMyBjbGFzcz0mcXVvdDtCYWNrTGluayZxdW90Oz48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPiZhbXA7bHQ7JmFtcDtsdDsgQmFjazwvYT48L2gzPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMT4NCjxoMj5Xcml0ZSBtYW5hZ2UgYW5kIGRlcGxveSBKUyBhbmQgQ1NTPC9oMj4NCjxhIGlkPSJTY3JpcHREZXBsb3kiPjwvYT4NCjxwPlNjcmlwdERlcGxveSBtb2R1bGUgdGhhdCBjYW4gY29tYmluZSBtdWx0aXBsZSBDU1Mgb3IgSmF2YXNjcmlwdCBmaWxlcywgY29tcHJlc3MgdGhlaXIgY29udGVudHMgKGkuZS4gcmVtb3ZhbCBvZiB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlL2NvbW1lbnRzKSwgYW5kIHNlcnZlIHRoZSByZXN1bHRzIHdpdGggSFRUUCBlbmNvZGluZyAoZ3ppcC9kZWZsYXRlKSBhbmQgaGVhZGVycyB0aGF0IGFsbG93IG9wdGltYWwgY2xpZW50LXNpZGUgY2FjaGluZy4gVGhpcyBoZWxwcyB5b3UgZm9sbG93IHNldmVyYWwgb2YgWWFob28hJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9pbmRleC5odG1sI3J1bGVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+UnVsZXMgZm9yIEhpZ2ggUGVyZm9ybWFuY2UgV2ViIFNpdGVzPC9hPi4gKFNlZSAmYW1wO3F1b3Q7UHJvYmxlbSBEb21haW4mYW1wO3F1b3Q7IGJlbG93IGZvciBtb3JlIGluZm8uKSA8L3A+DQo8aDM+VGhlIFNob3J0IG9mIGl0PC9oMz4NCjxwPldpcnRlIHlvdXIgc2NyaXB0cywgc2V0IHRoZSBvcmRlciBhbmQgU2NyaXB0RGVwbG95IHdpbGwgZG8gdGhlIHJlc3QhPC9wPg0KPHRhYmxlPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSZxdW90O0JPUkRFUi1SSUdIVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctUklHSFQ6IDVweDsgQk9SREVSLVRPUDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctTEVGVDogNXB4OyBQQURESU5HLUJPVFRPTTogNXB4OyBCT1JERVItTEVGVDogI2FhYSAxcHggc29saWQ7IFBBRERJTkctVE9QOiA1cHg7IEJPUkRFUi1CT1RUT006ICNhYWEgMXB4IHNvbGlkJnF1b3Q7PjxzdHJvbmc+QmVmb3JlPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2JlZm9yZS5wbmcmcXVvdDsgYWx0PSZxdW90O2FmdGVyJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkFmdGVyPC9zdHJvbmc+PC90ZD4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48aW1nIHNyYz0mcXVvdDtodHRwOi8vbXJjbGF5Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAwOC8wOS9maWRkbGVyX2FmdGVyLnBuZyZxdW90OyBhbHQ9JnF1b3Q7YmVmb3JlJnF1b3Q7IC8+PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQoNCjxoMj48YSBpZD0iRmVhdHVyZXMiPjwvYT5GZWF0dXJlczwvaDI+DQo8dWw+DQogIDxsaT5Db21iaW5lcyBhbmQgbWluaWZpZXMgbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgaW50byBhIHNpbmdsZSAgIGRvd25sb2FkIDwvbGk+DQogIDxsaT5Vc2VzIGFuIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL0pTTWluLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmVuaGFuY2VkIHBvcnQ8L2E+IG9mIERvdWdsYXMgQ3JvY2tmb3JkJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vd3d3LmNyb2NrZm9yZC5jb20vamF2YXNjcmlwdC9qc21pbi5odG1sIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SlNNaW4gICBsaWJyYXJ5PC9hPiBhbmQgY3VzdG9tIGNsYXNzZXMgdG8gbWluaWZ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9DU1MucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q1NTPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL21pbmlmeS9zb3VyY2UvYnJvd3NlL3RydW5rL21pbi9saWIvTWluaWZ5L0hUTUwucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+SFRNTDwvYT48L2xpPg0KICA8bGk+Q2FjaGVzIHNlcnZlci1zaWRlIHRvIGF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHdvcmsgPC9saT4NCiAgPGxpPlJlc3BvbmRzIHdpdGggYW4gSFRUUCAzMDQgKE5vdCBNb2RpZmllZCkgcmVzcG9uc2Ugd2hlbiB0aGUgYnJvd3NlciBoYXMgYW4gICB1cC10by1kYXRlIGNhY2hlIGNvcHkgKiogPC9saT4NCiAgPGxpPk1vc3QgbW9kdWxlcyBhcmUgbGF6eS1sb2FkZWQgYXMgbmVlZGVkICgzMDQgcmVzcG9uc2VzIHVzZSBtaW5pbWFsIGNvZGUpICAqKiA8L2xpPg0KICA8bGk+QXV0b21hdGljYWxseSByZXdyaXRlcyByZWxhdGl2ZSBVUklzIGluIGNvbWJpbmVkIENTUyBmaWxlcyB0byBwb2ludCB0byB2YWxpZCBsb2NhdGlvbnMgPC9saT4NCiAgPGxpPldpdGggY2FjaGluZyBlbmFibGVkLCBTY3JpcHREZXBsb3kgaXMgY2FwYWJsZSBvZiBoYW5kbGluZyBodW5kcmVkcyBvZiByZXF1ZXN0cyBwZXIgc2Vjb25kIG9uIGEgbW9kZXJhdGVseSBwb3dlcmZ1bCBzZXJ2ZXIuIDwvbGk+DQogIDxsaT5Db250ZW50LUVuY29kaW5nOiBnemlwLCBiYXNlZCBvbiByZXF1ZXN0IGhlYWRlcnMuIENhY2hpbmcgYWxsb3dzIGl0IHNvIHNlcnZlIGd6aXBwZWQgZmlsZXMgZmFzdGVyIHRoYW4gQXBhY2hlJiMwMzk7cyBtb2RfZGVmbGF0ZSBvcHRpb24hIDwvbGk+DQo8L3VsPg0KPGgzPjxlbT48c3Ryb25nPioqIE5vdGU6PC9zdHJvbmc+IEl0IGlzIGJlc3QgdG8gdXNlIGEgLmh0YWNjZXNzIHNjcmlwdCB0byBzZXQgdGhlIGFnZSB0aW1lcy4gU2NyaXB0RGVwbG95IGlzIGRlc2lnbmVkIGZvciBlZmZpY2llbmN5LCBidXQgZm9yIHZlcnkgaGlnaCB0cmFmZmljIHNpdGVzLCBTY3JpcHREZXBsb3kgbWF5IHNlcnZlIGZpbGVzIHNsb3dlciB0aGFuIHlvdXIgSFRUUGQgZHVlIHRvIHRoZSBDR0kgb3ZlcmhlYWQgb2YgUEhQLiAgVG8gb3ZlciBjb21lIHRoaXMgSnVzdCBjaGVjayAmcXVvdDt1c2UgLmh0YWNjZXNzIGluIG9wdGlvbnMmcXVvdDs8L2VtPjwvaDM+DQo8aDI+PGEgbmFtZT0iUmVxdWlyZW1lbnRzIj48L2E+UmVxdWlyZW1lbnRzPC9oMj4NCjx1bD4NCiAgPGxpPlRoZSBjb21tb25seSBpbnN0YWxsZWQgPGEgaHJlZj0iaHR0cDovL3VzMy5waHAubmV0L21hbnVhbC9lbi96bGliLmluc3RhbGxhdGlvbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij56bGliICAgZXh0ZW5zaW9uPC9hPiBpcyByZWNvbW1lbmRlZCBmb3IgSFRUUCBlbmNvZGluZyBmdW5jdGlvbmFsaXR5LiA8L2xpPg0KPC91bD4NCjxici8+PGJyLz4NCjxoMT5Ib3cgRG8gSSBVc2UgSXQ8L2gxPg0KDQoNCjxoMz5HZXQgYSBzaW5nbGUgc2NyaXB0PC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgc2NyaXB0SUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDM+R2V0IGEgc2NyaXB0IGdyb3VwPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0mcXVvdDtjb2RlSElHSExJR0hUJnF1b3Q7PntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0mcXVvdDsxJnF1b3Q7fSA8L3NwYW4+IDxici8+PGJyLz4NCjxoMj5BbGwgb3V0cHV0IGlzIGluIHRoZSBYSFRNTCBmb3JtYXQsIHlvdSBzaG91bGQgd29yayBpbiB0aGF0LjwvaDI+DQoNCjxici8+PGJyLz4NCjxoND5QYXJhbXM8L2g0Pg0KPHVsPg0KPGxpPjxzdHJvbmc+c2NyaXB0SUQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4oUmVxdWlyZWQvb3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBncm91cElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5ncm91cElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCjxsaT48c3Ryb25nPlN0eXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkLykgSlMvQ1NTPC9lbT4gPGJyLz58IHNldCB0aGUgSUQgUmVxdWlyZWQgb25seSBpZiBzY3JpcHRJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5TbWFydHlPbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6bnVsbDwvc3Ryb25nPjwvZW0+IDxici8+fCBUaGlzIGxldHMgeW91IG92ZXIgcmlkZSB0aGUgZ2xvYmxlczxici8+PC9saT4NCjxsaT48c3Ryb25nPk1pbmlmeT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCkgdHJ1ZS9mYWxzZSA8c3Ryb25nPkRlZmF1bHQ6dHJ1ZTwvc3Ryb25nPjwvZW0+IDxici8+fCAgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQoNCg0KDQoNCg0KDQo8bGk+PHN0cm9uZz5NZWRpYVR5cGU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IHNldCBNZWRpYSB0eXBlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy48YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5pbXBvcnQ9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2U8L2VtPiA8YnIvPnwgc2V0IHRoZSBpbmNsdXNpb24gc3R5bGUgZm9yIENTUyBmaWxlcyBoZXJlLi4uIG92ZXJyaWRlcyBkYiBzZXRpbmdzLiBFeDogdHJ1ZSAgZ2l2ZXMgPHN0eWxlIHR5cGU9XCZxdW90O3RleHQvY3NzXCZxdW90Oz5AaW1wb3J0IHVybCgmcXVvdDt1cmwvY3NzZmlsZS5jc3MmcXVvdDspIHNjcmVlbjs8L3N0eWxlPjxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+Y2FjaGVCdXN0ZXI8L3N0cm9uZz4gPGVtPihvcHRpb25hbCkgPHN0cm9uZz5EZWZhdWx0OmZhbHNlPC9zdHJvbmc+PC9lbT48YnIvPnwgVGhpcyBpcyB0byBpbnN0YW50bHkgdW5jYWNoZSBhbiBzY3JpcHQgb24gdGhlIGNsaWVudCBzaWRlIGFmdGVyIGEgbmV3IHVwbG9hZGVkIHNjcmlwdCBpcyBjcmVhdGVkLi4uIGllOiAxMi5qcz8xMjU1MjI1MDA3ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oIHRydWUvZmFsc2UgKTwvc3Ryb25nPjwvZm9udD48L2xpPg0KPGxpPjxzdHJvbmc+YXNzaWduPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBBc3NpZ24gdGhlIG91dHB1dCAocmV0dXJuIHRoZSBzbWFydHkgYXNzaWdubWVudCkgIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIG91dCB3aXRob3V0IFVSTDwvbGk+DQo8bGk+PHN0cm9uZz5mc2l6ZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZ2V0IHRoZSBzaXplPC9saT4NCjxsaT48c3Ryb25nPnJvb3RVcmw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFNjcmlwdERlcGxveSBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvciBpbiB0aGUgdXBsb2FkIGZvbGRlci4gIElmIHlvdSBtb3ZlIHRoZSBwYXRoIHRvIHRoZSB1cGxhb2QgdG8gYSBzdWJkb21haW4geW91IG1heSBndWlkZSB0aGUgb3V0cHV0IHdpdGggdGhpcy48L2xpPg0KICAgICAgICA8dWwgc3R5bGU9JnF1b3Q7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7JnF1b3Q7PjxsaT48c3Ryb25nPkV4YXBtbGU6PC9zdHJvbmc+IHlvdSBjaGFuZ2VkIDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9ICYjMDM5Oy92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPiA8L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+dG88L3N0cm9uZz4gPENPREU+JGNvbmZpZ1smIzAzOTt1cGxvYWRzX3BhdGgmIzAzOTtdID0gXC92YXIvd3d3L3Zob3N0cy9kb21haW4ub3JnL3N1YmRvbWFpbnMvbWVkaWEvaHR0cGRvY3MvdXBsb2FkcyYjMDM5Ozs8L0NPREU+PC9saT4NCiAgICAgICAgICAgIDxsaT5ub3cgdGhlIHVwbG9hZHMgdXJsIHdvdWxkIG5vdCB3b3JrIGFzIGl0IHdvdWxkIGJlIDx1Pmh0dHA6Ly93d3cuZG9tYWluLm9yZy91cGxvYWRzPC91PjwvbGk+DQogICAgICAgICAgICA8bGk+PHN0cm9uZz5Tbzwvc3Ryb25nPiBpdCBjYW4gYmUgY2hhbmdlZCBoZXJlIHRvIDx1Pmh0dHA6Ly9tZWRpYS5kb21haW4ub3JnL3VwbG9hZHM8L3U+ICA8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PHN0cm9uZz4oTk9URTogd2F0Y2ggeW91ciAvICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCiAgICAgICAgPC91bD4NCjxsaT48c3Ryb25nPlVSTD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnxvdXRwdXRzIHRoZSB1cmwuPC9saT4NCg0KDQoNCg0KCQkNCg0KDQoNCg0KDQoNCg0KDQo8IS0tPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249JmFtcDtxdW90OyZhbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9JmFtcDtxdW90OyZhbXA7cXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPi0tPg0KDQo8L3VsPg0KPGJyLz4NCg0KPGJyLz48YnIvPg0KPGgyPjxhIGlkPSJQcm9ibGVtX0RvbWFpbiI+PC9hPlByb2JsZW0gRG9tYWluPC9oMj4NCjxwPlBhZ2VzIHRoYXQgcmVmZXIgdG8gbXVsdGlwbGUgQ1NTIG9yIEphdmFTY3JpcHQgZmlsZXMgb2Z0ZW4gc3VmZmVyIGZyb20gc2xvd2VyICAgcGFnZSBsb2FkcywgZHVlIHRvIHRoZSBicm93c2VyIHJlcXVlc3RpbmcgZWFjaCBmaWxlIGluZGl2aWR1YWxseS4gTWFueSBicm93c2VycyAgIGFsc28gYXJlIGxpbWl0ZWQgdG8gYSBmZXcgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciBkb21haW4uIFRoZSB3YWl0IGZvciBhICAgc2VyaWVzIG9mIHJlcXVlc3RzIGFuZCB0aGUgdHJhbnNmZXIgb2YgdW5vcHRpbWl6ZWQgZmlsZXMgY2FuIGRyYW1hdGljYWxseSByZWR1Y2UgICB0aGUgY2xpZW50LXNpZGUgcGVyZm9ybWFuY2Ugb2YgeW91ciBzaXRlLiA8L3A+DQo8cD5IZXJlIGFyZSBhIGhhbmRmdWwgb2YgWWFob28hJiMwMzk7cyBiZXN0IHByYWN0aWNlcyB0aGF0IGFyZSBhZGRyZXNzZWQgYnkgdGhlIHVzZSBvZiBTY3JpcHREZXBsb3kuIDwvcD4NCjx1bD4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbnVtX2h0dHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NYWtlIEZld2VyIEhUVFAgUmVxdWVzdHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZXhwaXJlcyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkFkZCBhbiBFeHBpcmVzIG9yIGEgQ2FjaGUtQ29udHJvbCBIZWFkZXI8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjZ3ppcCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkd6aXAgQ29tcG9uZW50czwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNtaW5pZnkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5NaW5pZnkgSmF2YVNjcmlwdCBhbmQgQ1NTPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V0YWdzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+Q29uZmlndXJlIEVUYWdzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI3VuZGVyMjUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5LZWVwIENvbXBvbmVudHMgdW5kZXIgMjVLPC9hPjwvbGk+DQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFja25vd2xlZGdtZW50cyI+PC9hPkFja25vd2xlZGdtZW50czwvaDM+DQo8cD5NaW5pZnkgd2FzIGluc3BpcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc2Nzc2NvbXAvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+anNjc3Njb21wPC9hPiBieSBNYXhpbSBNYXJ0eW55dWsgYW5kIGJ5IHRoZSBhcnRpY2xlICYjMDM5OzxhIGhyZWY9Imh0dHA6Ly93d3cuaHVubG9jay5jb20vYmxvZ3MvU3VwZXJjaGFyZ2VkX0phdmFzY3JpcHQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5TdXBlcmNoYXJnZWQgSmF2YVNjcmlwdDwvYT4mIzAzOTsgYnkgUGF0cmljayBIdW5sb2NrLiA8L3A+DQo8cD5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluIGxpYnJhcnk8L2E+IHVzZWQgZm9yIEphdmFTY3JpcHQgbWluaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5ICAgd3JpdHRlbiBieSBEb3VnbGFzIENyb2NrZm9yZCBhbmQgd2FzIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9qc21pbi1waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5wb3J0ZWQgdG8gUEhQPC9hPiBieSBSeWFuICAgR3JvdmUgc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4gTWluaWZ5LiA8L3A+DQoNCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPGg0PlNjcmVlbmNhc3RzIGZvciBleHRyYSBoZWxwIHdpbGwgZmFsbG93LS0tIG9uIHRoZSBUT0RPPC9oND4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2NyaXB0ZGVwbG95Ij50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA5LCBqZXJlbXlCYXNzICZhbXA7bHQ7PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+JmFtcDtndDsgQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3ImcXVvdDsgbWV0aG9kPSZxdW90O3Bvc3QmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjbWQmcXVvdDsgdmFsdWU9JnF1b3Q7X3MteGNsaWNrJnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7aG9zdGVkX2J1dHRvbl9pZCZxdW90OyB2YWx1ZT0mcXVvdDs4ODE3Njc1JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aW1hZ2UmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgbmFtZT0mcXVvdDtzdWJtaXQmcXVvdDsgYWx0PSZxdW90O1BheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lISZxdW90Oz4NCjxpbWcgYWx0PSZxdW90OyZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYmcXVvdDsgd2lkdGg9JnF1b3Q7MSZxdW90OyBoZWlnaHQ9JnF1b3Q7MSZxdW90Oz4NCjwvZm9ybT48YnIvPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID48YiBjbGFzcz0mcXVvdDtyYm90dG9tJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3I0JnF1b3Q7PjwvYj48YiBjbGFzcz0mcXVvdDtyMyZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IyJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPjwvYj4NCg0KPC9kaXY+JzskbGFuZ1sndXRteiddPScxNTY4NjEzNTMuMTI4MzI4NzM0OS4zMjAyLjc0LnV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9pbmRleC5waHAnOyRsYW5nWyd1dG1hJ109JzE1Njg2MTM1My4xNzkwNTI2MjMwODQxMTAxMDAuMTIxMDQyMzU3Ny4xMjg0MjQxOTA0LjEyODQyNDY3MjEuMzI1MSc7JGxhbmdbJ3FjYSddPScxMjEwOTcxNjkwLTI3MzA4MDczLTgxOTUyODMyJzskbGFuZ1sndXRtYyddPScxNTY4NjEzNTMnOyRsYW5nWyd1dG1iJ109JzE1Njg2MTM1My4xLjEwLjEyODQyNDY3MjEnOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95ICc7JGxhbmdbJ3Bvc3RpbnN0YWxsJ109J1Uga3VudCBoZXQgYmVzdGUgbnUgZWVyc3QgZGUgaGVscCBwYWdpbmEgbGV6ZW4uLi4nOyRsYW5nWydwb3N0dW5pbnN0YWxsJ109J1BsZWFzZSBmZWVsIGZyZWUgdG8gbGV0IHVzIGtub3cgaWYgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBTY3JpcHREZXBsb3kgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlJiMwMzk7ZXIgaGFwcHkgdG8gaGVhciBmcm9tIHlvdS48L2E+JzskbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddPSdIZXQgZGUmaXVtbDtuc3RhbGxlcmVuIHZhbiBkZXplIG1vZHVsZSB6YWwgZ2VlbiBlZmZlY3QgaGViYmVuIG9wIGRlIGdlYmV1cnRlbmlzc2VuIGRhdGEgZW4gYWxsZSAmcXVvdDtib29rcyBkYXRhJnF1b3Q7IHphbCBuaWV0IHdvcmRlbiB2ZXJ3aWpkZXJkLiBXaWx0IHUgZG9vcmdhYW4/JzskbGFuZ1sndW5pbnN0YWxsZWQnXT0nTW9kdWxlIGdlZGUmaXVtbDtuc3RhbGxlZXJkLic7JGxhbmdbJ2luc3RhbGxlZCddPSdNb2R1bGUgdmVyc2llICVzIGdlJml1bWw7bnN0YWxsZWVyZC4nOyRsYW5nWyd1cGdyYWRlZCddPSdNb2R1bGUgYmlqZ2V3ZXJrdCBuYWFyIHZlcnNpZSAlcy4nOyRsYW5nWydtb2R1bGVfb3B0aW9ucyddPSdNb2R1bGUgT3B0aWVzJzskbGFuZ1sndGVtcGxhdGVfbWFuZyddPSdTamFibG9vbiBiZWhlZXInOyRsYW5nWydEZXBsb3ltZW50c2V0dGluZ3MnXT0nRGVwbG95bWVudCBPcHRpZXMnOyRsYW5nWydWYWxzZXR0aW5ncyddPSdWYWxpZGF0aWUgaW5zdGVsbGluZ2VuJzskbGFuZ1snY29weUNtc21zQ3NzQWN0aW9uTm90ZSddPSdHZWtvcGllZXJkZSBTdHlsZXNoZWV0cyc7JGxhbmdbJ2NvcHlDbXNtc0Nzc1RpdGxlJ109J09wZ2Vub21lbiBTdHlsZXNoZWV0cyc7JGxhbmdbJ2NvcHlDbXNtc0NzcyddPSdLb3BpZWVyIENNU01TIHN0YW5kYWFyZCBzamFibG9uZW4nOyRsYW5nWydjb3BpZWRDTVNNUyddPSdEZSBDTVNNUyBzdGFuZGFhcmQgc2phYmxvbmVuIHppam4gc3VjY2Vzdm9sIGdla29waWVlcmQnOyRsYW5nWydzZWxlY3RDbXNtc0NzcyddPSdTZWxlY3RlZXIgZGUgQ01TTVMgc3RpamwgZGllIG1vZXQgd29yZGVuIGdla29waWVlcmQgbmFhciBkZSBTRHx8IGNvcGllZCc7JGxhbmdbJ3NlbGVjdENtc21zQ3NzX2Rpc2NyaXB0aW9uJ109JzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPllvdSB3aWxsIGJlIG9ubHkgYWRkZWQgdG8gYW55dGhpbmcgeW91IGhhdmUgYWxyZWFkeSBpbXBvcnRlZCByZWdyYWRsZXNzIHRvIGlmIGl0IGhhcyBiZWVuIGJlZm9yZS4nOyRsYW5nWydlbiddPSdFbmdlbHMnOyRsYW5nWydmciddPSdGcmFucyc7JGxhbmdbJ2l0J109J0l0YWxpYWFucyc7JGxhbmdbJ2tvJ109J0tvcmVhYW5zJzskbGFuZ1snamEnXT0nSmFwYW5zJzskbGFuZ1snZXMnXT0nU3BhYW5zJzskbGFuZ1snemgtY24nXT0nQ2hpbmVlcyc7JGxhbmdbJ25sJ109J05lZGVybGFuZHMnOyRsYW5nWydkZSddPSdEdWl0cyc7JGxhbmdbJ3BsJ109J1Bvb2xzJzskbGFuZ1sncm8nXT0nUm9lbWVlbnMnOyRsYW5nWydjcyddPSdFc3RzJzskbGFuZ1snYmcnXT0nQnVsZ2FhcnMnOyRsYW5nWydzdiddPSdad2VlZHMnOyRsYW5nWydmYSddPSdQZXJzaXNjaCAoRmFyc2kpJzskbGFuZ1sncnUnXT0nUnVzc2lzY2gnOyRsYW5nWydwdC1CUiddPSdQb3J0dWdlZXMnOyRsYW5nWydMbm9uZSddPSdHZWVuIHdhYXJzY2h1d2luZ2VuJzskbGFuZ1snTDAnXT0nTGV2ZWwgMCAnOyRsYW5nWydMMSddPSdMZXZlbCAxICc7JGxhbmdbJ0wyJ109J0xldmVsIDIgJzskbGFuZ1snY3NzMSddPSdDc3MgMSc7JGxhbmdbJ2NzczInXT0nQ3NzIDInOyRsYW5nWydjc3MyMSddPSdDc3MgMi4xJzskbGFuZ1snY3NzMyddPSdDc3MgMyc7JGxhbmdbJ3N2ZyddPSdTdmcnOyRsYW5nWydzdmdiYXNpYyddPSdTdmQgc3RhbmRhYXJkJzskbGFuZ1snc3ZndGlueSddPSdTdmcgdGlueSc7JGxhbmdbJ21vYmlsZSddPSdtb2JpZWwnOyRsYW5nWydhdHNjLXR2J109J0F0c2MtVHYnOyRsYW5nWyd0diddPSdUdic7JGxhbmdbJ25vbmUnXT0nZ2Vlbic7JGxhbmdbJ0lubGluZSddPSdBdXRvbWF0aXNjaCBkZXRlY3RlcmVuJzskbGFuZ1snSFRNTDUnXT0nSFRNTDUgKGV4cGVyaW1lbnRlZWwpJzskbGFuZ1snWEhUTUxfMV8wX1N0cmljdCddPSdYSFRNTCAxLjAgU3RyaWN0JzskbGFuZ1snWEhUTUxfMV8wX1RyYW5zaXRpb25hbCddPSdYSFRNTCAxLjAgVHJhbnNpdGlvbmFsJzskbGFuZ1snWEhUTUxfMV8wX0ZyYW1lc2V0J109J1hIVE1MIDEuMCBGcmFtZXNldCc7JGxhbmdbJ0hUTUxfNF8wMV9TdHJpY3QnXT0nSFRNTCA0LjAxIFN0cmljdCc7JGxhbmdbJ0hUTUxfNF8wMV9UcmFuc2l0aW9uYWwnXT0nSFRNTCA0LjAxIFRyYW5zaXRpb25hbCc7JGxhbmdbJ0hUTUxfNF8wMV9GcmFtZXNldCddPSdIVE1MIDQuMDEgRnJhbWVzZXQnOyRsYW5nWydIVE1MXzNfMiddPSdIVE1MIDMuMic7JGxhbmdbJ0hUTUxfMl8wJ109J0hUTUwgMi4wJzskbGFuZ1snSVNPL0lFQ18xNTQ0NToyMDAwXygiSVNPX0hUTUwiKSddPSdJU08vSUVDIDE1NDQ1OjIwMDAgKCZxdW90O0lTTyBIVE1MJnF1b3Q7KSc7JGxhbmdbJ1hIVE1MXzFfMSddPSdYSFRNTCAxLjEnOyRsYW5nWydYSFRNTF8rX1JERmEnXT0nWEhUTUwgKyBSREZhJzskbGFuZ1snWEhUTUxfQmFzaWNfMV8wJ109J1hIVE1MIEJhc2ljIDEuMCc7JGxhbmdbJ1hIVE1MX0Jhc2ljXzFfMSddPSdYSFRNTCBCYXNpYyAxLjEnOyRsYW5nWydYSFRNTF9Nb2JpbGVfUHJvZmlsZV8xXzInXT0nWEhUTUwgTW9iaWxlIFByb2ZpbGUgMS4yJzskbGFuZ1snWEhUTUwtUHJpbnRfMV8wJ109J1hIVE1MLVByaW50IDEuMCc7JGxhbmdbJ1hIVE1MXzFfMV9wbHVzX01hdGhNTF8yXzAnXT0nWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMCAnOyRsYW5nWydYSFRNTF8xXzFfcGx1c19NYXRoTUxfMl8wX3BsdXNfU1ZHXzFfMSddPSdYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZHIDEuMSAnOyRsYW5nWydNYXRoTUxfMl8wJ109J01hdGhNTCAyLjAnOyRsYW5nWydTVkdfMV8wJ109J1NWRyAxLjAnOyRsYW5nWydTVkdfMV8xJ109J1NWRyAxLjEnOyRsYW5nWydTVkdfMV8xX1RpbnknXT0nU1ZHIDEuMSBUaW55JzskbGFuZ1snU1ZHXzFfMV9CYXNpYyddPSdTVkcgMS4xIEJhc2ljJzskbGFuZ1snU01JTF8xXzAnXT0nU01JTCAxLjAnOyRsYW5nWydTTUlMXzJfMCddPSdTTUlMIDIuMCc7JGxhbmdbJ2RlZmF1bHRQYWdlX2xhYmxlJ109J0NvbnRyb2xlZXIgdGVuIG9wemljaHRlIHZhbiBkZXplIHBhZ2luYSc7JGxhbmdbJ2VuY29kaW5nX2xhYmxlJ109J0NvZGVyaW5nJzskbGFuZ1snZGV0ZWN0J109J0F1dG9tYXRpc2NoIGRldGVjdGVyZW4nOyRsYW5nWyd1dGYtOCddPSd1dGYtOCAoVW5pY29kZSwgd2VyZWxkd2lqZCknOyRsYW5nWyd1dGYtMTYnXT0ndXRmLTE2IChVbmljb2RlLCB3ZXJlbGR3aWpkKSc7JGxhbmdbJ2lzby04ODU5LTEnXT0naXNvLTg4NTktMSAoV2VzdCBFdXJvcGEpJzskbGFuZ1snaXNvLTg4NTktMiddPSdpc28tODg1OS0yIChDZW50cmFhbCBFdXJvcGEpJzskbGFuZ1snaXNvLTg4NTktMyddPSdpc28tODg1OS0zIChadWlkIEV1cm9wYSknOyRsYW5nWydpc28tODg1OS00J109J2lzby04ODU5LTQgKE5vb3JkIEV1cm9wYSknOyRsYW5nWydpc28tODg1OS01J109J2lzby04ODU5LTUgKEN5cmlsbGljKSAnOyRsYW5nWydpc28tODg1OS02LWknXT0naXNvLTg4NTktNi1pIChBcmFiaXNjaCknOyRsYW5nWydpc28tODg1OS03J109J2lzby04ODU5LTcgKEdyaWVrcyknOyRsYW5nWydpc28tODg1OS04J109J2lzby04ODU5LTggKEhlYnJlZXdzLCB2aXN1YWwpJzskbGFuZ1snaXNvLTg4NTktOC1pJ109J2lzby04ODU5LTgtaSAoSGVicmVld3MsIGxvZ2ljYWwpJzskbGFuZ1snaXNvLTg4NTktOSddPSdpc28tODg1OS05IChUdXJrcyknOyRsYW5nWydpc28tODg1OS0xMCddPSdpc28tODg1OS0xMCAoTGF0aW4gNikgJzskbGFuZ1snaXNvLTg4NTktMTEnXT0naXNvLTg4NTktMTEgKExhdGluL1RoYWlzKSc7JGxhbmdbJ2lzby04ODU5LTEzJ109J2lzby04ODU5LTEzIChMYXRpbiA3LCBCYWx0aWMgUmltKSAnOyRsYW5nWydpc28tODg1OS0xNCddPSdpc28tODg1OS0xNCAoTGF0aW4gOCwgQ2VsdGljKSAnOyRsYW5nWydpc28tODg1OS0xNSddPSdpc28tODg1OS0xNSAoTGF0aW4gOSkgJzskbGFuZ1snaXNvLTg4NTktMTYnXT0naXNvLTg4NTktMTYgKExhdGluIDEwKSAnOyRsYW5nWyd1cy1hc2NpaSddPSd1cy1hc2NpaSAoYmFzaXMgRW5nZWxzKSc7JGxhbmdbJ2V1Yy1qcCddPSdldWMtanAgKEphcGFucywgVW5peCknOyRsYW5nWydzaGlmdF9qaXMnXT0nc2hpZnRfamlzIChKYXBhbnMsIFdpbi9NYWMpJzskbGFuZ1snaXNvLTIwMjItanAnXT0naXNvLTIwMjItanAgKEphcGFucywgZS1tYWlsKSc7JGxhbmdbJ2V1Yy1rciddPSdldWMta3IgKEtvcmVhYW5zKSc7JGxhbmdbJ2diMjMxMiddPSdnYjIzMTIgKENoaW5lZXMsIGVlbnZvdWRpZyknOyRsYW5nWydnYjE4MDMwJ109J2diMTgwMzAgKENoaW5lZWUsIGVlbnZvdWRpZyknOyRsYW5nWydiaWc1J109J2JpZzUgKENoaW5lZXMsIHRyYWRpdGlvbmVlbCknOyRsYW5nWydiaWc1LUhLU0NTJ109J0JpZzUtSEtTQ1MgKENoaW5lZXMsIEhvbmcgS29uZyknOyRsYW5nWyd0aXMtNjIwJ109J3Rpcy02MjAgKFRoYWlzKSc7JGxhbmdbJ2tvaTgtciddPSdrb2k4LXIgKFJ1c3Npc2NoKSc7JGxhbmdbJ2tvaTgtdSddPSdrb2k4LXUgKFVrcmEmaXVtbDtucyc7JGxhbmdbJ2lzby1pci0xMTEnXT0naXNvLWlyLTExMSAoQ3lyaWxsaWMgS09JLTgpICAgJzskbGFuZ1snbWFjaW50b3NoJ109J21hY2ludG9zaCAoTWFjUm9tYW4pICc7JGxhbmdbJ3dpbmRvd3MtMTI1MCddPSd3aW5kb3dzLTEyNTAgKENlbnRyYWFsIEV1cm9wYSknOyRsYW5nWyd3aW5kb3dzLTEyNTEnXT0nd2luZG93cy0xMjUxIChDeXJpbGxpYykgJzskbGFuZ1snd2luZG93cy0xMjUyJ109J3dpbmRvd3MtMTI1MiAoV2VzdCBFdXJvcGEpJzskbGFuZ1snd2luZG93cy0xMjUzJ109J3dpbmRvd3MtMTI1MyAoR3JpZWtzKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NCddPSd3aW5kb3dzLTEyNTQgKFR1cmtzKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NSddPSd3aW5kb3dzLTEyNTUgKEhlYnJlZXdzKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NiddPSd3aW5kb3dzLTEyNTYgKEFyYWJpc2NoKSc7JGxhbmdbJ3dpbmRvd3MtMTI1NyddPSd3aW5kb3dzLTEyNTcgKEJhbHRpYyBSaW0pICc7JGxhbmdbJ2F1dG8nXT0nQXV0b21hdGlzY2ggR2VuZXJlcmVuJzskbGFuZ1sndXNlckNob2ljZSddPSdLaWVzIGVlbiBwYWdpbmEnOyRsYW5nWyd1c2VyR2VuZXJhdGVkJ109J1N0ZWwgdXcgQ29udGVudCBpbic7JGxhbmdbJ3NhdmVWQUxzZXR0aW5ncyddPSdWYWxpZGF0aWUgaW5zdGVsbGluZ2VuIG9wc2xhYW4nOyRsYW5nWydzZXR0aW5ncyddPSdJbnN0ZWxsaW5nZW4nOyRsYW5nWydzZXR0aW5nc3NhdmVkJ109J0RlIGluc3RlbGxpbmdlbiB6aWpuIG9wZ2VzbGFnZW4nOyRsYW5nWydsZWF2ZWNvZGUnXT0nQ29kZSBuaWV0IGFhbnBhc3Nlbic7JGxhbmdbJ2Zvcm1hdGNvZGUnXT0nRm9ybWF0IGRlIGNvZGUgbmV0amVzJzskbGFuZ1snc2NyYW1ibGVjb2RlJ109J1NjcmFtYmxlIGRlIGNvZGUnOyRsYW5nWydjbGVhbmNvZGUnXT0nQ2xlYW4gdXAgdGhlIGNvZGUgcmVtb3Zpbmcgc3R1ZmYgdGhhdCBkb2VzbiYjMDM5O3QgbWF0dGVyJzskbGFuZ1snc2F2ZXNldHRpbmdzJ109J0luc3RlbGxpbmdlbiBvcHNsYWFuJzskbGFuZ1snbWFuZ2xldHlwZXRleHQnXT0nSG9lIG1vZXQgZGUgY29kZSB3b3JkZW4gd2VlcmdlZ2V2ZW4nOyRsYW5nWydicmllZiddPSdLb3J0JzskbGFuZ1sndmVyYm9zZSddPSdVaXRnZWJyZWlkdCc7JGxhbmdbJ2NvZGVmaXhlcyddPSdDb2RlIHJlcGFyYXRpZXMnOyRsYW5nWydmb3JjZWxvd2VydGFnc3RleHQnXT0nTWFhayB0YWdzIGluIGtsZWluZSBsZXR0ZXJzJzskbGFuZ1snZm9yY2Vsb3dlcnRhZ3NoZWxwJ109J1Zvb3IgYmV0ZXJlIFhIVE1MLWNvbXBhdGliaWxpdGVpdCc7JGxhbmdbJ2hpZGVtZXNzYWdlc3RleHQnXT0nVmVyYmVyZyBDb2RlTWFuZ2xlciBiZXJpY2h0ZW4gYWFubiBoZXQgZWluZCB2YW4gZGUgKHgpaHRtbC1jb2RlJzskbGFuZ1snaW5kZW50d2lkdGh0ZXh0J109J0JyZWVkdGUgdmFuICYjMDM5O2luZGVudGF0aW9uJiMwMzk7JzskbGFuZ1snc3BhY2VzJ109J1NwYXRpZXMnOyRsYW5nWydkZWJ1Z2xldmVsdGV4dCddPSdIb2V2ZWVsaGVpZCBkZWJ1Z2dpbmcgb3V0cHV0OiAnOyRsYW5nWydkZWJ1Z3RleHQnXT0nQ29kZSBkZWJ1ZyBtb2R1cyc7JGxhbmdbJ1NjcmlwdF9saXN0J109J1NjcmlwdHMgJzskbGFuZ1snQXNzX2hlYWRlciddPSdVbmlmaWVkIFNjcmlwdHMgJzskbGFuZ1snU2FtcGxlVGFnJ109J1Zvb3JiZWVsZCBUYWcnOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0J109J05pZXV3IFNjcmlwdCBUb2V2b2VnZW4nOyRsYW5nWydwcm9tcHRfbmV3U2NyaXB0QXNzJ109J05pZXV3ZSBTY3JpcHQgVmVyYmluZGluZyBUb2V2b2VnZW4nOyRsYW5nWydwcm9tcHRfYWRkdGVtcGxhdGUnXT0nTmlldXcgc2phYmxvb24gdG9ldm9lZ2VuJzskbGFuZ1snYWRkTGliX2xhYmVsJ109J0JpYmxpb3RoZWVrIHRvZXZvZWdlbic7JGxhbmdbJ2luc2VydENvZGVfbGFiZWwnXT0nQmVzdGFuZCc7JGxhbmdbJ2luc2VydENvZGVBdF9sYWJlbCddPSdWb29yIGNvZGUgaW4gb3AnOyRsYW5nWyd0aXRsZV9Hcm91cHMnXT0nU2NyaXB0IEdyb2VwZW4gTGlqc3QnOyRsYW5nWyd0aXRsZV9TY3JpcHRzJ109J0Vua2VsZSBTY3JpcHQgTGlqc3QnOyRsYW5nWydzbWFydHlIb3cnXT0ndGhlIHNtYXJ0eSB3b3JrcyBsaWtlIHRoaXMuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmJzskbGFuZ1sndGlwX2dlbmVyYWxfc21hcnR5J109J1RoZSBzbWFydHkgd29ya3MgbGlrZSB0aGlzIGluIEpTIGFuZCBDU1MuLi4gV2hlcmUgeW91JiMwMzk7ZCBoYXZlIHskc21hcnR5Lm5vd30geW91IGRvIHt7JHNtYXJ0eS5ub3d9fSAgLiAgTm93IHlvdSBjYW4gZG8gc21hcnR5IHN0dWZmLiAgU21hcnR5IDMgYWNjb3VudHMgZm9yIHRoaXMgYW5kIHNvIENNU01TIDIuMCB3aWxsIG5vdCBuZWVkIHRoZSB7eyB9fSc7JGxhbmdbJ3RpcF9nZW5lcmFsX2dyb3VwaW5nJ109J0pvaW5pbmcgeW91ciBDU1MgZmlsZXMgc3BlZWRzIHVwIHlvdXIgdXNlcnMgZXhwZXJpZW5jZSBhbmQgaGVscCB5b3UgZ2V0IGNsb3NlciB0byBhbiAmcXVvdDtBJnF1b3Q7IGluIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3lzbG93LyIgdGFyZ2V0PSJfYmxhbmsiPnlTbG93PC9hPic7JGxhbmdbJ3RpcF9lZGl0b3JfdGFiJ109J1dpc3QgdSBkYXQgdSBkZSB0YWJrZXkga2FuIGdlYnJ1aWtlbiBvbSBjb2RlIGFhbiB0ZSB2dWxsZW4/ICBQcm9iZWVyIGhldCEnOyRsYW5nWyd0aXBfZWRpdG9yX3NlYXJjaE5yZXBsYWNlJ109J1dpc3QgdSBkYXQgdSBlZW4gc3RhbmRhYXJkZnVuY3RpZSBrdW50IGdlYnJ1aWtlbiB2b29yIHpvZWtlbiBlbiB2ZXJ2YW5nZW4/ICBHZWJydWlrIENUUkwrRiBpbiBkZSBlZGl0b3Igb20gZGl0IHZlbnN0ZXIgd2VlciB0ZSBnZXZlbi4nOyRsYW5nWyd0aXBfZWRpdG9yX3Jlc2V0SGlnaGxpZ2h0J109J0lmIHlvdSBhcmUgc2VlaW5nIGRvdWJsZXMgaW4gdGhlIGVkaXRvciwgaWU6IHRoZSBoaWdobGlnaHQgaXMgZGVzeW5jcm9uaXplZCBmcm9tIHRleHQganVzdCB1c2UgdGhlIHJlc2V0IGhpZ2hsaWdodCBidXR0b24gPGltZyB3aWR0aD0mcXVvdDsyMCZxdW90OyBoZWlnaHQ9JnF1b3Q7MjAmcXVvdDsgb25tb3VzZWRvd249JnF1b3Q7ZWRpdEFyZWEucmVzdG9yZUFuZFN3aXRjaENsYXNzKHRoaXMsJiMwMzk7ZWRpdEFyZWFCdXR0b25Eb3duJiMwMzk7KTsmcXVvdDsgb25tb3VzZW91dD0mcXVvdDtlZGl0QXJlYS5yZXN0b3JlQ2xhc3ModGhpcyk7JnF1b3Q7IG9ubW91c2VvdmVyPSZxdW90O2VkaXRBcmVhLnN3aXRjaENsYXNzKHRoaXMsJiMwMzk7ZWRpdEFyZWFCdXR0b25PdmVyJiMwMzk7KTsmcXVvdDsgY2xhc3M9JnF1b3Q7ZWRpdEFyZWFCdXR0b25Ob3JtYWwmcXVvdDsgdGl0bGU9JnF1b3Q7cmVzZXQgaGlnaGxpZ2h0IChlZCkmcXVvdDsgc3JjPSZxdW90Oy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2VkaXRfYXJlYS9pbWFnZXMvcmVzZXRfaGlnaGxpZ2h0LmdpZiZxdW90OyBpZD0mcXVvdDtyZXNldF9oaWdobGlnaHQmcXVvdDs+JzskbGFuZ1sndGlwX3RlbXBsYXRlX3NtYXJ0eSddPSdTbWFydHkgc3ludGF4IGlzIHRoZSBzYW1lIGFzIGV2ZXJ5d2hlcmUgZWxzZSBqdXN0IGEgc3RyYWlnaHQgeyRzbWFydHkubm93fS4gIFRoZSB7eyB9fSBpcyBmb3IgdGhlIENTUyBhbmQgSlMgYXMge30gYXJlIGluIHRoZWlyIHN5bnRheC4gIFNtYXJ0eSAzIGFjY291bnRzIGZvciB0aGlzIGFuZCBzbyBDTVNNUyAyLjAgd2lsbCBub3QgbmVlZCB0aGUge3sgfX0nOyRsYW5nWyd0aXBfZ3JvdXBfZHJhZ05kcm9wJ109J3RvIGdldCBzdGFydGVkIGp1c3QgZHJhZyBmcm9tIHRoZSBwb29sIHRvIHRoZSBncm91cCYjMDM5O3MgbGlzdCc7JGxhbmdbJ2FsbCddPSdUb2VwYXNiYWFyIHZvb3IgYWxsZSBhcHBhcmF0ZW4uJzskbGFuZ1snYXVyYWwnXT0nQmVkb2VsZCB2b29yIHNwcmFhayBzeW50aGVzaXplcnMuJzskbGFuZ1snYnJhaWxsZSddPSdCZWRvZWxkIHZvb3IgYnJhaWxsZWFwcGFyYXR1dXIuJzskbGFuZ1snZW1ib3NzZWQnXT0nQmVkb2VsZCB2b29yIGJyYWlsbGUgcHJpbnRlcnMuJzskbGFuZ1snaGFuZGhlbGQnXT0nQmVkb2VsZCB2b29yIGhhbmRoZWxkIGFwcGFyYXR1dXInOyRsYW5nWydwcmludCddPSdJbnRlbmRlZCBmb3IgcGFnZWQsIG9wYXF1ZSBtYXRlcmlhbCBhbmQgZm9yIGRvY3VtZW50cyB2aWV3ZWQgb24gc2NyZWVuIGluIHByaW50IHByZXZpZXcgbW9kZS4nOyRsYW5nWydwcm9qZWN0aW9uJ109J0JlZG9lbGQgdm9vciBwcm9qZWN0aWVzJzskbGFuZ1snc2NyZWVuJ109J0JlZG9lbGQgdm9vciBrbGV1cmVuIGNvbXB1dGVyIGJlZWxkc2NoZXJtZW4uJzskbGFuZ1sndHR5J109J0ludGVuZGVkIGZvciBtZWRpYSB1c2luZyBhIGZpeGVkLXBpdGNoIGNoYXJhY3RlciBncmlkLCBzdWNoIGFzIHRlbGV0eXBlcyBhbmQgdGVybWluYWxzLic7JGxhbmdbJ01lZGlhVHlwZSddPSdhbGwgOiBTdWl0YWJsZSBmb3IgYWxsIGRldmljZXMuIDxici8+DQphdXJhbCA6IEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLjxici8+DQpicmFpbGxlIDogSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLjxici8+DQplbWJvc3NlZCA6IEludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLjxici8+DQpoYW5kaGVsZCA6IEludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzPGJyLz4NCnByaW50IDogSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuPGJyLz4NCnByb2plY3Rpb24gOiBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuPGJyLz4NCnNjcmVlbiA6IEludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy48YnIvPg0KdHR5IDogSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuPGJyLz4NCnR2IDogSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7JGxhbmdbJ3NldGluYWN0aXZlJ109J01hYWsgc2phYmxvb24gaW5hY3RpZWYnOyRsYW5nWydzZXRhY3RpdmUnXT0nTWFhayBzamFibG9vbiBhY3RpZWYnOyRsYW5nWydub3RkZWZhdWx0J109J05pZXQgaGV0IHN0YW5kYWFyZCBzamFibG9vbi4nOyRsYW5nWydub3R2YWxpZCddPSdTdHlsZXNoZWV0IGtvcHBlbGluZ2VuIHppam4gbmlldCBzdWNjZXN2b2wgaW5nZXN0ZWxkIHZvb3IgZGl0IHNqYWJsb29uJzskbGFuZ1sndGVtcGxhdGVfdGFiJ109J1N0eWxlc3dpdGNoZXIgRm9ybXVsaWVyIHNqYWJsb29uJzskbGFuZ1sncGFnZV90ZW1wbGF0ZXNfdGFiJ109J1BhZ2luYSBTamFibG9uZW4nOyRsYW5nWydzdWJtaXQnXT0nVmVyc3R1cmVuJzskbGFuZ1snYXBwbHknXT0nVG9lcGFzc2VuJzskbGFuZ1snY2FuY2VsJ109J0FubnVsZWVyJzskbGFuZ1snZ28nXT0nVmVyZGVyJzskbGFuZ1sncHJldmlldyddPSdWb29yYmVlbGQnOyRsYW5nWydpbmxpbmVoZWxwJ109J0hlbHAgJzskbGFuZ1snc2NpcHRvcHRpb25zJ109J09wdGllcyc7JGxhbmdbJ3BlcnNpc3RlbnQnXT0nUGVyc2lzdGVudCc7JGxhbmdbJ3ByZWZlcnJlZCddPSdWb29ya2V1cic7JGxhbmdbJ2FsdGVybmF0ZSddPSdBbHRlcm5hdGllZic7JGxhbmdbJ25hbWUnXT0nTmFhbSc7JGxhbmdbJ3RpdGxlJ109J1RpdGVsJzskbGFuZ1snaWQnXT0nSUQgJzskbGFuZ1snYWN0aXZlJ109J0FjdGllZic7JGxhbmdbJ2RlZmF1bHQnXT0nU3RhbmRhYXJkJzskbGFuZ1sndmFsaWQnXT0nQ29ycmVjdCc7JGxhbmdbJ3VzYWdlX2NvdW50J109J0dlYnJ1aWsnOyRsYW5nWyd5ZXMnXT0nSmEnOyRsYW5nWydubyddPSdOZWUnOyRsYW5nWydlZGl0Y3NzJ109J1BhcyBzdHlsZXNoZWV0IGFzc29jaWF0aWVzIGFhbic7JGxhbmdbJ2VkaXR0ZW1wbGF0ZSddPSdXaWp6aWcgc2phYmxvb25pbmhvdWQnOyRsYW5nWydkZWxldGV0ZW1wbGF0ZSddPSdWZXJ3aWpkZXIgU2phYmxvb24nOyRsYW5nWydjb3B5dGVtcGxhdGUnXT0nS29waWVlciBTamFibG9vbic7JGxhbmdbJ3Byb21wdF9zdHlsZXNoZWV0J109J1NlbGVjdGVlciBlZW4gcGFnaW5hIHN0aWpsJzskbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ109J1NqYWJsb29uJzskbGFuZ1sncHJvbXB0X2dyb3VwbmFtZSddPSdHcm9lcHNuYWFtJzskbGFuZ1sncHJvbXB0X2FkZGdyb3VwJ109J0dyb2VwIFRvZXZvZWdlbic7JGxhbmdbJ3Byb21wdF9ncm91cHR5cGUnXT0nR3JvZXAgVHlwZSc7JGxhbmdbJ3Byb21wdF9hZGQnXT0nVG9ldm9lZ2VuJzskbGFuZ1sncHJvbXB0X3NlbGVjdG9uZSddPSdLaWVzICZlYWN1dGU7JmVhY3V0ZTtuJzskbGFuZ1sncHJvbXB0X2FkZF9hbHRlcm5hdGUnXT0nVm9lZyBlZW4gYWx0ZXJuYXRpZWYgdG9lJzskbGFuZ1snZXJyb3JfcGxlYXNlX3NlbGVjdF9zdHlsZXNoZWV0J109J1NlbGVjdGVlciBlZW4gU3R5bGVzaGVldCc7JGxhbmdbJ3VzZXJMb2dzJ109J0Jla2lqayBnZWJydWlrZXJzZ2VzY2hpZWRlbmlzJzskbGFuZ1snU2NyaXB0U2V0X2xhYmVsJ109J1NjcmlwdCBJZCc7JGxhbmdbJ3NjcmlwdFR5cGVfbGFiZWwnXT0nU2NyaXB0IFR5cGUgJzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdTY3JpcHQgTmFhbSc7JGxhbmdbJ3RlbXBsYXRlbmFtZV9sYWJlbCddPSdTamFibG9vbiBuYWFtJzskbGFuZ1snU2luZ2xlQ29kZV9sYWJlbCddPSdEZWZhdWx0IFNpbmdsZSBTY3JpcHQgQ2FsbCAnOyRsYW5nWydHcm91cHRTaXplX2xhYmVsJ109J1RvdGFhbCc7JGxhbmdbJ25vdGVzX2xhYmVsJ109J09wbWVya2luZ2VuJzskbGFuZ1snZG9jVHlwZV9sYWJsZSddPSdEb2N0eXBlICc7JGxhbmdbJ1ZhbEhUTUxWZXJib3NlX2xhYmxlJ109J0NvbnRyb2xlZXIgYnJlZWRzcHJha2lnaGVpZCc7JGxhbmdbJ1Nob3dWYWxfbGFibGUnXT0nTGFhdCBCZXJpY2h0ZW4gT3Blbic7JGxhbmdbJ1R1cm5PTlZhbF9sYWJsZSddPScgWmV0IFZhbGlkYXRpZSA8c3Ryb25nPkFBTjwvc3Ryb25nPic7JGxhbmdbJ2hvdExpbmtDaGVja19sYWJsZSddPSdWb2VyIGVlbiBIb3RMaW5rIENvbnRyb2xlIHVpdCc7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdVIG1vZXQgZGUgSG90TGluayBDb250cm9sZSBpbnNjaGFrZWxlbic7JGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXT0nIEZpbHRlciBvdXQgcHJvcGVydGllcyB0byBoZWxwIHZhbGlkYXRlJzskbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddPScgQ3NzIFByb2ZpZWwnOyRsYW5nWyd1c2VybWVkaXVtX2xhYmxlJ109JyBHZWJydWlrZXIgTWVkaWEnOyRsYW5nWydWQUxMYW5nX2xhYmxlJ109J1RhYWwnOyRsYW5nWyd3M2NDU1N3YXJuaW5nX2xhYmxlJ109JyB3M2MgQ1NTIFdhYXJzY2h1d2luZ3MgTGV2ZWwnOyRsYW5nWydNZWRpYVR5cGVfbGFiZWwnXT0nTWVkaWEgVHlwZSc7JGxhbmdbJ01pbmlmeV9sYWJlbCddPSdQcmUgTWluaWZpZWQnOyRsYW5nWyd0dXJuT2ZmUHJlbG9hZF9sYWJlbCddPSdUdXJuIG9mZiB1cmwgcHJlbG9hZCc7JGxhbmdbJ0NyZWF0aW9uRGF0ZV9sYWJlbCddPSdBYW5tYWFrIERhdHVtJzskbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXT0nV2lqemlnIERhdHVtJzskbGFuZ1sncGF0aE9wdGlvbl9sYWJlbCddPSdVc2UgYSBwYXRoPGVtPih1c2UgJnF1b3Q7L3VwbG9hZHMvLi4uJnF1b3Q7KTwvZW0+JzskbGFuZ1sncm9vdFVSTE9wdGlvbl9sYWJlbCddPSdVc2UgYSBzcGVjaWZpYyByb290IFVSTDxlbT4odXNlIHNjaGVtYSAmcXVvdDtodHRwczovL3N1Yi5kb21haW4udGxkLyZxdW90Oyk8L2VtPic7JGxhbmdbJ0dyb290VVJMJ109J0dsb2JhbCBTY3JpcHQgUm9vdCBVUkwgJzskbGFuZ1snZW1wdHljYWNoZUVycm9yX2RvQXVkaXQnXT0nZm91dCBiaWogaGV0IGxlZ2VuIHZhbiBkZSBjYWNoZSBvcCc7JGxhbmdbJ2VtcHRpZWRDYWNoX2RvQXVkaXQnXT0nc2NyaXB0IGNhY2hlIGlzIGdlbGVlZ2QnOyRsYW5nWydjbGVhcmVkUmV2aXNpb25fZG9BdWRpdCddPSdyZXZpc2llZ2VzY2hpZWRlbmlzIHZlcndpamRlcmQgdm9vcic7JGxhbmdbJ0NoZWNrZWRPdXRfZG9BdWRpdCddPSdDaGVja2VkIG91dCBzY3JpcHQgJzskbGFuZ1sncmVsZWFzZWRfZG9BdWRpdCddPSd2cmlqZ2VnZXZlbiBzY3JpcHQnOyRsYW5nWyd3YXRjaEZvbGRlcl9sYWJlbCddPSdNb25pdG9vciBlZW4gbWFwIHZvb3IgYmVzdGFuZGVuJzskbGFuZ1snd2F0Y2hGb2xkZXInXT0nPGgxPldhdGNoIGEgRm9sZGVyPC9oMT4NCjxoMz5UaGlzIHdpbGwgbGV0IHlvdSB3YXRjaCBhIGZvbGRlciBzbyB5b3UgY2FuIHVzZSB0aGUgZmlsZXMgdGhhdCBoYXZlIGJlZW4gZnRwJiMwMzk7ZCB1cCB0byB0aGUgc2VydmVyIHRvIHVzZSBnYWluIGFjY2VzcyB0byB0aGUgc2NyaXB0cy48L2gzPjxoMj5OT1RFOjwvaDI+PGgzPklmIHlvdSBzZWUgYSBidW5jaCBvZiBmb2xkZXJzIGxpa2UgdGhlIGFkbWluLCB0aGVuIHlvdSBtYXkgd2FudCB0byBjaGVjayBhbGwgeW91IGZvbGRlciBwZXJtaXNzaW9ucyB0byBzZWN1cmUgeW91ciBzaXRlLjwvaDM+JzskbGFuZ1snd2F0Y2hlZEZvbGRlcl9sYWJlbCddPSdQYWQnOyRsYW5nWyd3YXRjaEZvbGRlclRpdGxlJ109J01vbml0b29yIG1hcCc7JGxhbmdbJ3dhdGNoZWRjb3VudF9sYWJlbCddPSdVIG1vbml0b29ydCBtb21lbnRlZWwgJXMgbWFwcGVuJzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nR2VicnVpayBkaXQgc2NyaXB0IDxlbT4oT3BtLjogQWxzIGVlbiBwYWQgaXMgaW5nZXN0ZWxkLCBkYW4gemFsIGhldCBkZXplIG92ZXJzY2hyaWp2ZW4pPC9lbT4nOyRsYW5nWydkZWJ1Z0lUX2xhYmVsJ109J2RlYnVnIElUJzskbGFuZ1snZGVidWdJVG5vdGVfbGFiZWwnXT0nPGVtPihNb2V0IEZpcmVwaHAgbW9kIGhlYmJlbik8L2VtPic7JGxhbmdbJ2RlYnVnVCddPSdEZWJ1ZyBPcHRpZXMnOyRsYW5nWydFZGl0SGlzdG9yeSddPSdHZWJydWlrZXJzd2lqemlnaW5nZW4gZ2VzY2hpZWRlbmlzJzskbGFuZ1snZWRpdG9ySGVpZ2h0X29wJ109JzxoMT5FZGl0b3IgSGVpZ2h0PC9oMT4NCjxoMz55b3UgbWF5IGNob29zZSB0byBzZXQgYSBzdGF0aWMgaGVpZ2h0IGZvciB0aGUgZWRpdG9yLiAgSWYgbm90IGl0JiMwMzk7bGwgZHluYW1pY2FsbHkgZ2FpbiBoZWlnaHQgYXMgeW91IHdyaXRlIHlvdXIgc2NyaXB0LjwvaDM+JzskbGFuZ1snZWRpdG9ySGVpZ2h0X2xhYmVsJ109J0NvbnRyb2xlZXIgZWRpdG9yaG9vZ3RlJzskbGFuZ1snSFRUUFNfUE9SVF9sYWJlbCddPSdXaWp6aWcgU1NMIHBvb3J0JzskbGFuZ1snSFRUUFNfUE9SVCddPSc8aDE+SFRUUFMgUE9SVDwvaDE+PGgzPlNvbWV0aW1lcyBpdCYjMDM5O3MgbmVlZGVkIHRvIGNoYW5nZSB0aGUgcG9ydCB3aGljaCB0aGUgc2VydmVyIGlzIHVzaW5nIGZvciBTU0wuICBUaGlzIGlzIHdoYXQgeW91IGNhbiB1c2UgdG8gbWF0Y2ggaXQuPC9oMz4nOyRsYW5nWydub25lSW5UeXBlJ109JzxoMT5VIG1vZXQgaW4gZGl0IHR5cGUgZWVyc3Q8YnIvPmVlbiBzY3JpcHQgdG9ldm9lZ2VuPC9oMT4nOyRsYW5nWydncm91cHlUaXRsZSddPSdMaWpzdCB2YW4gU2NyaXB0cyBpbiBncm9lcCc7JGxhbmdbJ3VubWVyZ2VUaXRsZSddPSdVbm1lcmdlIGRlIGdyb2VwIGluIGdlc3BsaXRzdGUgYmVzdGFuZGVuJzskbGFuZ1sncmV2aXNpb25UaXRsZSddPSdXaWp6aWdpbmdlbiBnZXNjaGllZGVuaXMnOyRsYW5nWydyZXZpc2lvbl9sYWJlbCddPSc8c3Ryb25nPktvcnQgZGUgd2lqemlnaW5nZW5nZXNjaGllZGVuaXMgaW48L3N0cm9uZz4nOyRsYW5nWydyZXZpc2lvbl9vcCddPSc8aDE+UmV2aXNpb24gPC9oMT4NCjxoMz5UcnVuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzskbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXT0nU3RlbCBlZW4gcmV2aXNpZSBsaW1pZXQgaW4nOyRsYW5nWydjbGVhclJldiddPSdXaXMgZ2VzY2hpZWRlbmlzJzskbGFuZ1sndXNlckRlZmF1bHRQYWdlJ109JzxoMT5Vc2VyIHBpY2tlZCBwYWdlPC9oMT4NCjxoMz5TaW5jZSBhIHVzZXIgcGFnZSBpcyB0aGUgb3B0aW9uIHlvdSBwaWNrZWQsIHlvdSYjMDM5O2xsIHdhbnQgdG8gY2hvb3NlIGEgcGFnZSBmcm9tIHRoZSBkcm9wIGRvd24gZm9yIHRoZSBjb250ZW50IHRvIHJlbmRlciBvdXQuICBBZ2FpbiB0aGUgY29udGVudCBzaG91bGQgdmFsaWRhdGUuPC9oMz4nOyRsYW5nWydkZWZhdWx0UGFnZSddPSc8aDE+Q2hvb3NlIEhvdzwvaDE+DQo8aDM+V2hhdCB5b3UgYXJlIHBpY2tpbmcgaXMgdGhlIHdheSB0byB2YWxpZGF0ZSB5b3VyIHRlbXBsYXRlcy4gIFRoZSBnb2FsIGlzIHRvIHBpY2sgc29tZXRoaW5nIHRoYXQgZG9lc24mIzAzOTt0IGhhdmUgZXJyb3JzIGluIHRoZSBjb250ZW50IHlvdSBhcmUgdXNpbmcuPC9oMz4nOyRsYW5nWyd1c2VyRGVmYXVsdFBhZ2VfbGFibGUnXT0nR2VlZiBkZSBwYWdpbmEgYWxpYXMnOyRsYW5nWydvd25Db250ZW50J109JzxoMT5GaWxsIGl0IGluPC9oMT4NCjxoMz5UaGUgZ29hbCBoZXJlIGlzIHRvIGdpdmUgc29tZXRoaW5nIHRvIHByb2Nlc3MuICBCeSBmaWxsaW5nIGl0IGluIHlvdSBjYW4gY2hlY2sgdG8gc2VlIGlmIHlvdSBoYXZlIHRoZSBjb250ZW50IHRhZyBhbmQgYmxvY2tzIGZpbGxlZCBpbiBjb3JyZWN0bHkuICBJRTogeW91IGNvdWxkIHB1dCB0aGUgZGVmYXVsdCBvcyB0aGUgYXV0byBnZW5lcmF0ZWQgb25lIHdoZXJlIGl0JiMwMzk7cyA8ZGl2PjxzcGFuPjxwPiBhbmQgb3RoZXIgZWxlbWVudHMgbGlrZSB0aGF0LjwvaDM+JzskbGFuZ1snb3duQ29udGVudF9sYWJsZSddPSdNYWFrIGNvbnRlbnQgYWFuJzskbGFuZ1snbG9ja2ZpbGVzVGl0bGUnXT0nQmV2ZWlsaWcgYmVzdGFuZGVuJzskbGFuZ1snbG9ja2ZpbGVzX2xhYmVsJ109JzxzdHJvbmc+WmV0IGJlc3RhbmRlbiBuYWFyIDY0NDwvc3Ryb25nPic7JGxhbmdbJ2xvY2tmaWxlc19vcCddPSc8aDE+UHJvdGVjdCBGaWxlczwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHNldCB0aGUgY3JlYXRlZCBmaWxlIHRvIGJlIGNobW9kIHRvIDY0NC4gIFRoaXMgd2lsbCBoZWxwIHRvIHByb3RlY3QgeW91IGZyb20gSlMgaW50cnVzaW9uIGF0dGFja3MuPC9oMz4nOyRsYW5nWyd1c2VFZGl0b3JUaXRsZSddPSdFZGl0b3IgaW5zdGVsbGluZ2VuJzskbGFuZ1sndXNlRWRpdG9yX2xhYmVsJ109JzxzdHJvbmc+RWRpdG9yIGluc2NoYWtlbGVuPC9zdHJvbmc+JzskbGFuZ1sndXNlRWRpdG9yX29wJ109JzxoMT5UdXJuIG9uIEVkaXRvcjwvaDE+DQo8aDM+VHVybmluZyB0aGlzIG9uIHN3aWxsIGhlbHAgeW91IHNlZSB0aGUgY29kZSB5b3VyIHdvcmtpbmcgd2l0aC4gIEl0IGhpbnRzIHRvIGNvcnJlY3Qgc3ludGF4IHZpYSBoaWdobGlnaHRpbmcuPC9oMz4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlVGl0bGUnXT0nUHJlbG9hZCBDU1MgQWZiZWVsZGluZ2VuJzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCddPSc8c3Ryb25nPlRydW4gb24gUHJlbG9hZGVkIENzcyBJbWFnZXM8L3N0cm9uZz4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ109JzxoMT5QcmVsb2FkIENzcyBJbWFnZXMgPC9oMT4NCjxoMz5JZiB5b3UgaGF2ZSB5b3VyIHN5c3RlbSBhbGwgc2V0IHVwIHJpZ2h0LCB0aGlzIHdpbGwgaGVscCB5b3UgZ2V0IGEgZmFzdCBwYXJhbGxlbCBkb3duIGxvYWQgb2YgYWxsIGVsZW1lbnRzLjwvaDM+JzskbGFuZ1snZ2xvYmFsdXJsJ109JzxoMT5TZXQgdGhlIHJvb3QgVVJMIDwvaDE+DQo8aDM+VXNlZCBmb3Igd2hlbiB5b3UgbmVlZCBTU0wgc3VwcG9ydCBvciB3YW50IHRvIHB1c2ggdGhlIHNjcmlwdHMgdG8gYSBzdWJkb21haW4gdG8gbG9zZSB0aGUgbmVlZGxlcyBjb29raWVzLjwvaDM+JzskbGFuZ1snc21hcnR5T25fbGFiZWwnXT0nPHN0cm9uZz5TbWFydHkgVWl0dm9lcmVuPC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gdmVsZGVuJzskbGFuZ1snc21hcnR5T24nXT0nPGgxPlByb2Nlc3MgU21hcnR5IGRhdGEgPC9oMT4NCjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHNfbGFiZWwnXT0nPHN0cm9uZz5oZWxwIGJyZWFrIGEgY2xpZW50IHNpZGUgY2FjaGU8L3N0cm9uZz4nOyRsYW5nWydmaWxlVGltZV9jc3NfdXJscyddPSc8aDE+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlIDwvaDE+DQo8aDM+VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBhIGZpbGUgY3JlYXRpb24gdGltZSBhdCB0aGUgZW5kIG9mIGEgZmlsZS4gIFR1cm5pbmcgdGhpcyBvbiB3aWxsIGFkZCB0aGlzIHRvIGFsbCBsb2NhbCB1cmxzLiAoQ1NTIG9ubHkgYXRtKSAtTm90aGluZyBpcyBkb25lIHRvIGhvdGxpbmtzPC9oMz4nOyRsYW5nWyd0ZW1wbGF0ZTMnXT0nSG9vZ3N0IChnZWVuIGxlZXNiYWFyaGVpZCwga2xlaW5zdGUgZ3Jvb3R0ZSknOyRsYW5nWyd0ZW1wbGF0ZTInXT0nSG9vZyAoZ2VtaWRkZWxkZSBsZWVzYmFhcmhlaWQsIGtsZWluZXJlIGdyb290dGUpJzskbGFuZ1sndGVtcGxhdGUxJ109J1N0YW5kYWFyZCAoYmFsYW5zIHR1c3NlbiBsZWVzYmFhcmhlaWQgZW4gZ3Jvb3R0ZSknOyRsYW5nWyd0ZW1wbGF0ZTAnXT0nTGFhZyAobWVlciBsZWVzYmFhcmhlaWQpJzskbGFuZ1sndGVtcGxhdGVDJ109J0dlYXZhbmNlZXJkICh2b2VyIGhpZXJvbmRlciBpbiknOyRsYW5nWydtZXJnZV9zZWxlY3RvcnMwJ109J1dpanppZyBuaWV0cyc7JGxhbmdbJ21lcmdlX3NlbGVjdG9yczEnXT0nQWxsZWVuIHNjaGVpZGluZ3N0ZWtlbnMgKHNwbGl0IGJpaiAsKSc7JGxhbmdbJ21lcmdlX3NlbGVjdG9yczInXT0nVm9lZyB0ZWtlbnMgbWV0IGRlemVsZmRlIGVpZ2Vuc2NoYXBwZW4gc2FtZW4gKHNuZWwpJzskbGFuZ1snb3B0aW1pc2Vfc2hvcnRoYW5kczAnXT0nR2VlbiBvcHRpbWFsaXNhdGllcyc7JGxhbmdbJ29wdGltaXNlX3Nob3J0aGFuZHMxJ109J1ZlaWxpZ2Ugb3B0aW1hbGlzYXRpZXMnOyRsYW5nWydvcHRpbWlzZV9zaG9ydGhhbmRzMiddPSdBbGxlIG9wdGltYWxpc2F0aWVzJzskbGFuZ1snaW5zZXJ0Y29kZSddPSdWb2VnIGNvZGUgaW4nOyRsYW5nWydvcHRpbWlzZWNvZGUnXT0nT3B0aW1hbGlzZWVyIGNvZGUnOyRsYW5nWydSZW1vdmVCYWNrc2xhc2hlcyddPSdWZXJ3aWpkZXIgb25ub2RpZ2UgYmFja3NsYXNoZXMnOyRsYW5nWydVcHBlcmNhc2UnXT0nS2xlaW5lIGxldHRlcnMnOyRsYW5nWydMb3dlcmNhc2UnXT0nR3JvdGUgbGV0dGVycyc7JGxhbmdbJ05vbmUnXT0nR2Vlbic7JGxhbmdbJ0NvbXByZXNzRm9udCddPSdWZXJrbGVpbiBmb250LWdld2ljaHQnOyRsYW5nWydsb3dlcmNhc2VfWEhUTUxfbm90ZSddPSdhbGxlZW4ga2xlaW5lIHRla2VucyB2ZXJlaXN0IHZvb3IgZWxlbWVudG5hbWVuIGluIFhIVE1MJzskbGFuZ1snbG93ZXJjYXNlX3RpdGxlJ109J0xvd2VyY2FzZSB0ZWtlbnMnOyRsYW5nWydDb21wcmVzc0NvbG9ycyddPSdDb21wcmltZWVyIGtsZXVyZW4nOyRsYW5nWydPcHRpbWlzZVNob3J0aGFuZHMnXT0nT3B0aW1hbGlzZWVyIHNob3J0aGFuZHMnOyRsYW5nWydSZWdyb3VwU2VsZWN0b3JzJ109J0hlcmdyb2VwZWVyIHNlbGVjdG9ycyc7JGxhbmdbJ1NvcnRQcm9wZXJ0aWVzJ109J1NvcnRlZXIgZWlnZW5zY2hhcHBlbic7JGxhbmdbJ1NvcnRTZWxlY3RvcnNOb3RlJ109J0F0dGVudGllOiBEaXQgd2lqemlndCBtb2dlbGlqayBoZXQgZ2VkcmFnIHZhbiB1dyBDU1MtY29kZSc7JGxhbmdbJ1NvcnRTZWxlY3RvcnMnXT0nS29ydGUgc2VsZWN0b3JzICh3YWFyc2NodXdpbmcpJzskbGFuZ1snUHJlc2VydmVDU1NOb3RlJ109J1NhdmUgY29tbWVudHMsIGhhY2tzLCBldGMuIE1vc3Qgb3B0aW1pc2F0aW9ucyBjYW4gKm5vdCogYmUgYXBwbGllZCBpZiB0aGlzIGlzIGVuYWJsZWQuJzskbGFuZ1snUHJlc2VydmVDU1MnXT0nUHJlc2VydmUgQ1NTJzskbGFuZ1snQ3VzdG9tVGVtcGxhdGUnXT0nR2V2YW5jZWVyZCBzamFibG9vbic7JGxhbmdbJ01vcmVJbmZvJ109J01lZXIgaW5mb3JtYXRpZSc7JGxhbmdbJ0NvbXByZXNzaW9uTGF5b3V0J109J0NvbXByZXNzaW9uJm5ic3A7KGNvZGUmbmJzcDtsYXlvdXQpJzskbGFuZ1snb3Bfbm90ZSddPSc8c3Ryb25nPk5vdGU8L3N0cm9uZz4geW91IGhhdmUgdG8gc2F2ZSB0byBjb21taXQgdGhpcyBjaGFuZ2UuIDxzdHJvbmc+QWxzbzwvc3Ryb25nPiBUaGlzIGhhcyBubyBiZWFyaW5nIG9uIHRoZSBmaW5hbCBjb21wcmVzc2lvbi4gIFRoaXMgaXMgZm9yIHlvdXIgd29ya2FiaWxpdHkgb2YgdGhlIHNjcmlwdCBmb3IgeW91IGFuZCB5b3VyIHRlYW0uJzskbGFuZ1snZWRpdCddPSdXaWp6aWcnOyRsYW5nWydkZWxldGUnXT0nVmVyd2lqZGVyZW4nOyRsYW5nWydDbG9zZSddPSdTbHVpdGVuJzskbGFuZ1snT3BlbiddPSdPcGVuZW4nOyRsYW5nWydkaXJFbXB0eSddPSdEZSBuZXR3ZXJrbWFwIHdhcyBsZWVnJzskbGFuZ1snY2xlYW5UZW1wJ109J0xlZWcgZGUgdGVtcD8nOyRsYW5nWyd1clRlbXBQYXRoJ109J1V3IGJ1ZmZlciBwYWQgaXMnOyRsYW5nWydMYXN0TW9kJ109J0xhYXRzdCBnZXdpanppZ2QnOyRsYW5nWydjYWNoZUZlcnJvciddPSdTY3JpcHREZXBsb3kga2FuIGdlZW4gYnVmZmVybWFwIGFhbm1ha2VuLCBjb250cm9sZWVyIGRlIHJlY2h0ZW4gaW4gZGUgVXBsb2Fkc21hcCBvcCBkZSBzZXJ2ZXIuJzskbGFuZ1snTmFtZSddPSdOYWFtJzskbGFuZ1snQ2FuY2VsZWQnXT0nVXcgaGVlZnQgZGUgYmV3ZXJraW5nIGdlYW5udWxlZXJkLiBBbGxlIGFhbmdlYnJhY2h0ZSB3aWp6aWdpbmdlbiB6aWpuIGhpZXJkb29yIHZlcmxvcmVuIGdlZ2Fhbi4nOyRsYW5nWydCdG5BRERFRCddPSdVIGhlZWZ0IGVlbiBuaWV1dyBzY3JpcHQgdG9lZ2V2b2VnZCc7JGxhbmdbJ0J0bkVESVRFRCddPSdVIGhlZWZ0IGVlbiBiZXN0YWFuZCBzY3JpcHQgZ2V3aWp6aWdkJzskbGFuZ1snQnRuREVMRVRFRCddPSdVIGhlZWZ0IGVlbiBiZXN0YWFuZCBzY3JpcHQgYWFuZ2VwYXN0JzskbGFuZ1sndHlwZV9sYWJlbCddPSdUeXBlICc7JGxhbmdbJ3JldmlzaW9uJ109J1JldmlzaWUnOyRsYW5nWydpc0VkaXQnXT0nd29yZHQgZ2V3aWp6aWdkJzskbGFuZ1snc3RlYWwnXT0nU3RlYWwgdGhlIGRvY3VtZW50JzskbGFuZ1snZ2V0X3RhZyddPSdWZXJrcmlqZyBkZSB0YWcnOyRsYW5nWyd0aWVzdG8nXT0nV2FhciB3b3JkdCBkaXQgZ2VicnVpa3QnOyRsYW5nWydlbXRweUdyb3VwJ109J1lvdSYjMDM5O2xsIG5lZWQgdG8gYWRkIGEgc2NyaXB0IHRvIHRoZSBncm91cCBiZWZvcmUgY2FsbGluZyBpdCc7JGxhbmdbJ2FsbFNjcmlwdHNVc2VkJ109J0FsbGUgc2NyaXB0cyB6aWpuIGdlYnJ1aWt0JzskbGFuZ1snTm9fU2NyaXB0cyddPSdFciB6aWpuIG5vZyBnZWVuIHNjcmlwdHMnOyRsYW5nWydOb19Hcm91cHMnXT0nRXIgemlqbiBub2cgZ2VlbiBncm9lcGVuJzskbGFuZ1snZmluaXNoZWQnXT0nR3JvZXBzaW5zdGVsbGluZ2VuIHppam4gb3BnZXNsYWdlbic7JGxhbmdbJ3Bhc3RpbmcnXT0nUGxhayB1dyBjb2RlIG51JzskbGFuZ1sncmVmb3JtYXRlZCddPSdDb2RlIGlzIGdlaGVyZm9ybWF0ZWVyZCc7JGxhbmdbJ2Zvcm1hdGVMb2cnXT0nRm9ybWF0aWVsb2cnOyRsYW5nWydQcm9jY2Vzc2luZyddPSdCZXdlcmtlbic7JGxhbmdbJ1NhdmVkJ109J09wZ2VzbGFnZW4nOyRsYW5nWydEb25lJ109J0dlcmVlZCc7JGxhbmdbJ1ZhbGlkYXRpbmcnXT0nVmFsaWRlcmVuJzskbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ109J0dyb2VwIE5hYW0nOyRsYW5nWydHcm91cHRUeXBlX2xhYmVsJ109J1R5cGUgc2NyaXB0cyc7JGxhbmdbJ1NjcmlwdFBpY2tlcl9sYWJlbCddPSdTY3JpcHQgUG9vbCAnOyRsYW5nWydMSU5FJ109J0xJTkUgJzskbGFuZ1snVFlQRSddPSdUWVBFICc7JGxhbmdbJ1NVQlRZUEUnXT0nU1VCVFlQRSAnOyRsYW5nWydTVFJJTkcnXT0nU1RSSU5HICc7JGxhbmdbJ01FU1NBR0UnXT0nQkVSSUNIVCc7JGxhbmdbJ0xFVkVMJ109J0xFVkVMICc7JGxhbmdbJ05vdGVzJ109J05vdGl0aWVzJzskbGFuZ1snV2FybmluZ3MnXT0nV2FhcnNjaHV3aW5nZW4nOyRsYW5nWydFcnJvcnMnXT0nRm91dGVuJzskbGFuZ1snaGlkZGVuJ109J1ZlcmJvcmdlbic7JGxhbmdbJ1NjcmlwdCddPSdTY3JpcHQgJzskbGFuZ1snRVVSTFMnXT0nVWl0Z2VwYWt0ZSBVUkwmIzAzOTtzJzskbGFuZ1snUkNTUyddPSdHZWdlbmVyZWVyZGUgQ1NTJzskbGFuZ1snU0NTUyddPSdDU1MgU3RydWN0dXVyJzskbGFuZ1snRkNPTlQnXT0nQmVzdGFuZHNpbmhvdWQnOyRsYW5nWydpVVJMJ109J2FmYmVlbGRpbmcgVVJMJzskbGFuZ1snVHlwZSddPSdUeXBlICc7JGxhbmdbJ1NpemUnXT0nQWZtZXRpbmcnOyRsYW5nWydTdGF0dXMnXT0nU3RhdHVzICc7JGxhbmdbJ2hvdGxpbmsnXT0nPHN0cm9uZz5Ib3RsaW5raW5nOjwvc3Ryb25nPiBsaWprdCBlZW4gaG90bGluay4nOyRsYW5nWydCcm9rZW5saW5rJ109J1ZlcmJyb2tlbiBMaW5rJzskbGFuZ1snTk9jc3NJJ109J0dlZW4gY3NzIGFmYmVlbGRpbmdlbic7JGxhbmdbJ1llc1ZBbGFzdGVyJ109JzxoMj5Zb3UgdmFsaWRhdGVkISAqKjwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+PGJyLz4gPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvcjwvc3Ryb25nPic7JGxhbmdbJ3JlbG9hZF9hbGVydCddPSdZb3UgYXJlIHJlbG9hZGluZyB0aGUgc3JjaXB0IGZyb20gdGhlIGxhc3Qgc2F2ZSBwb2ludC4gIFlvdSBoYXZlIHNhdmVkIHRoZSBzY3JpcHQgYWxyZWFkeSBhbmQgaWYgeW91IG5lZWQgdG8gZ28gYmFjayB0byB0aGUgdmVyc2lvbiB3aGVuIHlvdSBmaXJzdCBjYW1lIGluIHRvIGVkaXQgcGxlYXNlIGNoZWNrIHlvdXIgcmV2aXNpb24gaGlzdG9yeS4nOyRsYW5nWydzaW5nbGVTY3JpcHQnXT0nSXMgaW4gc2luZ2xlIHNjcmlwdHMnOyRsYW5nWydDbGVhckltZyddPSdWZXJ3aWpkZXIgaHVpZGlnZSBhZmJlZWxkaW5nJzskbGFuZ1snRmluaXNoJ109J0dlcmVlZCc7JGxhbmdbJ3JldmVydCddPSdUZXJ1Z3pldHRlbic7JGxhbmdbJ2Zvcm1fY2FuY2VsJ109J0FubnVsZWVyJzskbGFuZ1snU2F2ZSddPSdPcHNsYWFuJzskbGFuZ1snZG9uZSddPSdHZXJlZWQnOyRsYW5nWydhZGQnXT0nVG9ldm9lZ2VuJzskbGFuZ1snY29weSddPSdLb3BpZWVyJzskbGFuZ1snUkVPUkRFUiddPSdSZW9yZ2FuaXNlcmVuJzskbGFuZ1snZm9ybV9zdWJtaXQnXT0nSW5zdGVsbGluZ2VuIG9wc2xhYW4nOyRsYW5nWydtb2RfcHJlZnNfdGl0bGUnXT0nTW9kdWxlIGluc3RlbGxpbmdlbic7JGxhbmdbJ3ByZWZzdXBkYXRlZCddPSdNb2R1bGUgaW5zdGVsbGluZ2VuIGJpamdld2Vya3QnOyRsYW5nWydvcHRpb25zdXBkYXRlZCddPSdvcHRpZXMgYmlqZ2V3ZXJrdCc7JGxhbmdbJ2FyZXlvdXN1cmUnXT0nSW1wb3J0YW50OlxuXG5JZiB0aGlzIGlzIGRlbGV0ZWQgYWxsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCFcblxuSWYgeW91IGhhdmUgdGhpcyBzY3JpcHQgaW4gYSBncm91cCB5b3Ugd2lsbCBicmVhayB0aGUgdGllIGFuZCB3aWxsIG5lZWQgdG8gZWRpdCB0aGUgZ3JvdXAuXG5JdCBpcyBiZXN0IHRvIHN0YXJ0IHRoZSBkZWxldGlvbiBwcm9jZXNzIGZyb20gdGhlIEFzc2lnbm1lbnQgYXJlYS5cblxuWU9VIEFMU08gTE9TRSBZT1VSIFJFVklTSU9OIEhJU1RPUlkgRk9SIFRISVMgU0NSSVBULi4gQVJFIFlPVSBSRUFMWSBTVVJFPz8/ICc7JGxhbmdbJ2FyZXlvdXN1cmVfQ29weSddPSdVIGdhYXQgbnUgZWVuIGtvcGllIG1ha2VuJzskbGFuZ1snYXJleW91c3VyZV9zdGVhbCddPSdZb3UgYXJlIGFib3V0IHRvIHN0ZWFsIGEgc2NyaXB0IGZvcm0gc29tZW9uZSB0aGF0IGFwcGVhcnMgdG8gYmUgZWRpdGluZyB0aGlzLic7JGxhbmdbJ2ltcG9ydEV4cG9ydCddPSdJbXBvcnRlZXIgLyBFeHBvcnRlZXInOyRsYW5nWydzdGFydEV4cG9ydCddPSdTdGFydCBFeHBvcnRlcmVuJzskbGFuZ1snc3RhcnRJbXBvcnQnXT0nU3RhcnQgSW1wb3J0ZXJlbic7JGxhbmdbJ3N0YXJ0UHVzaCddPSdQdXNoIHNpdGUnOyRsYW5nWyd0aXRsZV9vdmVydmlldyddPSdPdmVydmlldyc7JGxhbmdbJ3RpdGxlX2V4cG9ydCddPSdFeHBvcnRlcmVuJzskbGFuZ1sndGl0bGVfaW1wb3J0J109J0luc3RhbGxlZXInOyRsYW5nWydleHBvcnRfZXhwbGFpbiddPSc8cD5NYWtlIHNvbWUgY2hlY2tzIGFuZCBwcmVwYXJhdGlvbnMgYmVmb3JlIHlvdSBzdGFydCB0byBleHBvcnQgeW91ciBzZXR0aW5ncy48L3A+IDx1bD48bGk+MS4gRmlyc3Qgb2YgYWxsIGludmVudCBhIDxzdHJvbmc+dW5pcXVlIG5hbWU8L3N0cm9uZz4gZm9yIHlvdXIgcGFja2FnZS4gRG8gbm90IGNob29zZSA8c3Ryb25nPk15IFBhY2thZ2U8L3N0cm9uZz4uIFRoZSBiZXR0ZXIgZXhhbXBsZSBmb3IgdGhlIHBhY2thZ2UgbmFtZSBjYW4gYmUgPHN0cm9uZz5pQ01TIFRydWUgQ29sb3I8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB0aGF0IGlzIHVuaXF1ZSB0byB5b3UgYW5kIGNhbm5vdCBiZSBvY2Nhc2lvbmFsbHkgdXNlZCBieSBvdGhlciBkZXNpZ25lcnMuPC9saT48bGk+Mi4gQ2hlY2sgdGhhdCBhbGwgZmlsZXMgaW5jbHVkZWQgaW4gcGFja2FnZSBhcmUgcGxhY2VkIGluIHRoZSBzdWItZm9sZGVyIG9mIHRoZSBmb2xkZXIgPHN0cm9uZz4vdXBsb2Fkczwvc3Ryb25nPi4gWW91IHdpbGwgbm90IGJlIGFibGUgdG8gZXhwb3J0IGZpbGVzIHRoYXQgYXJlIHN0b3JlZCBpbiBvdGhlciBmb2xkZXJzLiBJdCBpcyBhbHdheXMgYSBnb29kIHByYWN0aWNlIHRvIG9yZ2FuaXplIHlvdXIgZmlsZXMgdGhpcyB3YXkuIERvIG5vdCBzcHJlYWQgeW91ciBjdXN0b20gZmlsZXMgdGhyb3VnaG91dCBpbnN0YWxsYXRpb24gbWFraW5nIGl0IGFsc21vc3QgaW1wb3NzaWJsZSB0byBiYWNrdXAgY3VzdG9tIGNoYW5nZXMuPC9saT48bGk+My4gQ2hlY2sgdGhlIG5hbWUgb2YgYWxsIGVsZW1lbnRzIGludGVuZGVkIGZvciB0aGUgcGFja2FnZTogdGVtcGxhdGVzLCBzdHlsZXNoZWV0cywgcGFnZXMsIGdsb2JhbCBjb250ZW50IGJsb2NrcywgdXNlciBkZWZpbmVkIHRhZ3MsIG1vZHVsZSB0ZW1wbGF0ZXMuIE1ha2Ugc3VyZSB0aGF0IDxzdHJvbmc+YWxsIHRoZW0gaGF2ZSB1bmlxdWUgbmFtZXM8L3N0cm9uZz4gaGVscGluZyB0byBpZGVudGlmeSB0aGUgcGFja2FnZSB0aGV5IGJlbG9uZyB0by4gRS4gZy4gYmFkIG5hbWUgZm9yIGEgc3R5bGVzaGVldCB3b3VsZCBiZSA8c3Ryb25nPkxheW91dDwvc3Ryb25nPiwgYmV0dGVyIDxzdHJvbmc+aUNNUyBMYXlvdXQ8L3N0cm9uZz4gd2hlcmUgPHN0cm9uZz5pQ01TPC9zdHJvbmc+IGlzIHNvbWV0aGluZyB1bmlxdWUgdG8geW91ciBhbmQvb3IgdG8gdGhlIHBhY2thZ2UgeW91IGNyZWF0ZS48L2xpPjxsaT40LiBXaGVuIHlvdSBhcmUgcmVhZHkgc3RhcnQgdGhlIGV4cG9ydCBieSBjbGlja2luZyBvbiB0aGUgYnV0dG9uIGJlbG93LjwvbGk+PC91bD4nOyRsYW5nWydpbXBvcnRfZXhwbGFpbiddPSdTZWxlY3RlZXIgZWVuIFhNTCBFeHBvcnQgYmVzdGFuZCgqKSBvbSB0ZSB1cGxvYWRlbi4nOyRsYW5nWydleGFtcGxlcyddPScoKikgVSBrdW50IHNqYWJsb25lbiAlcyBoaWVyICVzISc7JGxhbmdbJ3N0YXJ0X2V4cG9ydCddPSdNYWFrIGVlbiBuaWV1dyBwYWtrZXQgYWFuJzskbGFuZ1snY29udGludWVfZXhwb3J0J109J1ZvbGdlbmRlJzskbGFuZ1snY29udGludWVfaW1wb3J0J109J1ZvbGdlbmRlJzskbGFuZ1snaW1wb3J0J109J0ltcG9ydGVyZW4nOyRsYW5nWydmb290ZXJfbm90aWNlJ109JzxoMj5BdHRlbnRpb24hIFBsZWFzZSB1c2UgdGhpcyBiZXRhIHBhY2thZ2Ugd2l0aCBjYXV0aW9uIHVudGlsIHRoZSBzdGFibGUgcmVsZWFzZSBpcyB0aGVyZS4gVGhpcyBwYWNrYWdlIHdpbGwgb3ZlcndyaXRlIGZpbGVzIGFuZCBjYW4gZGFtYWdlIHRhcmdldCBkYXRhYmFzZSE8L2gyPic7JGxhbmdbJ3RpdGxlX2ltcG9ydF9zdGVwMSddPSdFeHBvcnRlZXIgYmVzdGFuZCB2b29yZ2VpbnN0YWxsZWVyZCc7JGxhbmdbJ2hlbHBfaW1wb3J0X3N0ZXAxJ109J0hldCBnZSZ1dW1sO3Bsb2FkZSBleHBvcnRiZXN0YW5kIGJldmF0IGhldCB2b2xnZW5kZTonOyRsYW5nWyd0aXRsZV9pbXBvcnRfc3RlcDInXT0nU3lzdGVlbWNvbnRyb2xlIGVuIHByZXBhcmF0aWUnOyRsYW5nWydpbXBvcnRfc3RlcDJfY21zbXMnXT0nSGllcm9uZGVyIGt1bnQgdSB6aWVuIHdlbGtlIHZlcnNpZXMgdmFuIENNU01TIGVuIGRlIG1vZHVsZXMgZXIgd29yZGVuIHZlcmVpc3Qgdm9vciBkZSBleHBvcnQnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwMiddPScgSWYgb25lIG9yIG1vcmUgbW9kdWxlcyBhcmUgbm90IGluc3RhbGxlZCBhbmQgeW91IGNob3NlIG5vdCB0byBpbnN0YWxsIHRoZW0sIHRoZW4gdGhlaXIgbW9kdWxlIHRlbXBsYXRlcyBhbmQgc2V0dGluZ3Mgd2lsbCBub3QgYmUgaW5zdGFsbGVkLiBJZiB2ZXJzaW9ucyBvZiB0aGUgbW9kdWxlIGRpZmZlciB0aGVyZSBpcyBubyB3YXJyYW50eSB0aGF0IGltcG9ydCBzdWNjZWVkcy4gPHN0cm9uZz5DYXV0aW9uITwvc3Ryb25nPiBJZiB0aGVyZSBhcmUgd2FybmluZ3Mgb24gdGhpcyBwYWdlIHlvdSBhcmUgPHN0cm9uZz5zdHJvbmdseTwvc3Ryb25nPiByZWNvbW1lbmRlZCB0byBiYWNrdXAgeW91ciBmaWxlIHN5c3RlbSBBTkQgZGF0YWJhc2UgQkVGT1JFIHlvdSBzdGFydCBwYWNrYWdlIGltcG9ydC4nOyRsYW5nWyd0aXRsZV9pbXBvcnRfc3RlcDMnXT0nQ29udHJvbGVlciBzaXRlY29uZmxpY3Rlbic7JGxhbmdbJ2hlbHBfaW1wb3J0X3N0ZXAzJ109J0JlbG93IHlvdSBjYW4gc2VlIGFsbCBjb21wb25lbnRzIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHlvdSBzZWUgYSB3YXJuaW5nIHNpZ24gYmVzaWRlIHRoZSBjb21wb25lbnQsIGl0IG1lYW5zIHRoYXQgeW91IGFscmVhZHkgaGF2ZSBhIGNvbXBvbmVudCB3aXRoIHRoaXMgbmFtZSBpbiB5b3VyIGluc3RhbGxhdGlvbi4gSWYgeW91IHByb2NlZWQgeW91ciBjb21wb25lbnQgd2lsbCBiZSBvdmVyd3JpdHRlbiB3aXRoIHRoZSBwYWNrYWdlIHZlcnNpb24uIENhdXRpb24hIFlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIHJlc3RvcmUgeW91ciBjb21wb25lbnRzLiBQbGVhc2UgY3JlYXRlIGEgZmlsZSBBTkQgZGF0YWJhc2UgYmFja3VwIGlmIHlvdSBhcmUgbm90IHN1cmUuJzskbGFuZ1sndGl0bGVfaW1wb3J0X3N0ZXA0J109J0ltcG9ydCBnZXNsYWFnZCEnOyRsYW5nWydoZWxwX2ltcG9ydF9zdGVwNCddPScgJzskbGFuZ1snaW1wb3J0UmVtb3ZhbCddPSdTZWxlY3QgdGhlIGl0ZW1zIHlvdSB3YW50IHRvIHJlbW92ZSBmcm9tIHRoZSBpbXBvcnQgcHJvY2Vzcy4gICVzIE5PVEU6JXMgUmVtb3ZpbmcgYW55dGhpbmcgbWF5IGNhdXNlIHRoZSBFeHBvcnQgdG8gYmVjb21lIHVuc3RhYmxlLiAgQmUgc3VyZSB5b3UmIzAzOTtyZSBiYWNrdXAuJzskbGFuZ1sncGFzc2VkJ109JyVzIHNsYWFnZGVuICVzICVzIGNvcnJlY3RseSAlcyc7JGxhbmdbJ2ZhaWwnXT0nJXMgbWlzbHVrdGUgJXMgJXMgY29udHJvbGVlciBkZSBsb2diZXN0YW5kZW4gKG9vayBkaWUgdmFuIGRlIHNlcnZlcikgJXMnOyRsYW5nWydub2ZpbGUnXT0nRXIgd2FzIGVlbiBmb3V0IGJpaiBoZXQgdXBsb2FkZW4hJzskbGFuZ1sndXBsb2FkZmFpbGVkJ109J0hldCB1cGxvYWRlbiB2YW4gaGV0IGJlc3RhbmQgaXMgbWlzbHVrdC4nOyRsYW5nWydpbXBvcnRPayddPSdEZSBpbXBvcnQgd2FzIHN1Y2Nlc3ZvbC4gQ29udHJvbGVlciBhbGxlIGRlbGVuIGVuIGhvdWQgZGUgYmFja3VwIGJpaiBkZSBoYW5kIHRvdGRhdCBqZSB6ZWtlciBiZW50IGRhdCBhbGxlcyBzdGFiaWVsIGlzLic7JGxhbmdbJ2V4dF9UTVAnXT0nU2VsZWN0ZWVyIHNqYWJsb25lbic7JGxhbmdbJ2hlbHBfZXh0X1RNUCddPSdTZWxlY3QgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIE5PVEUgYW4gRXhwb3J0IGNhbiBvbmx5IGluY2x1ZGUgcGFnZXMgdGhhdCB1c2VkIGJ5IHRoZSB0ZW1wbGF0ZXMgc2VsZWN0ZWQgaW4gdGhpcyBzdGVwLic7JGxhbmdbJ2V4dF9DU1MnXT0nU2VsZWN0ZWVyIHN0eWxlc2hlZXRzJzskbGFuZ1snaGVscF9leHRfQ1NTJ109J1NlbGVjdCBzdHlsZXNoZWV0cyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4geW91ciBFeHBvcnQuIElmIHN0eWxlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRlbXBsYXRlcyBzZWxlY3RlZCBpbiB0aGUgbGFzdCBzdGVwLCB0aGlzIGFzc29jaWF0aW9uIHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiBhcyB3ZWxsLic7JGxhbmdbJ2V4dF9QRyddPSdTZWxlY3RlZXIgcGFnaW5hJiMwMzk7cyc7JGxhbmdbJ2hlbHBfZXh0X1BHJ109J1NlbGVjdCBwYWdlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgRXhwb3J0LiAgUGFnZXMgd2lsbCBiZSBpbnN0YWxsZWQgaW50byB0aGUgdGFyZ2V0IGluc3RhbGxhdGlvbiB3aXRoIGhpZXJhcmNoeSBwYXRocyBwcmVzZXJ2ZWQuIFRoZXJlIGFyZSAzIG91dGNvbWVzOiA8dWw+PGxpPjEuIFRoZSBwYWdlIHdpbGwgYmUgY3JlYXRlZCBpZiB0aGUgZXhhY3QgaGllcmFyY2h5IHBhdGggZXhpc3RzIG9uIHRoZSB0YXJnZXQgaW5zdGFsbGF0aW9uIG9yIHlvdSBpbmNsdWRlIHRoZSBwYWdlcyBmcm9tIHRoZSBoaWVyYXJjaHkgaW50byB5b3VyIEV4cG9ydC48L2xpPjxsaT4yLiBUaGUgcGFnZSB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uIHRoZSB0YXJnZXQgc3lzdGVtIGlmIGl0IGlzIGFscmVhZHkgZXhpc3RzIGluIHRoZSBoaWVyYXJjaHkgcGF0aCBvbiB0aGUgdGFyZ2V0IHN5c3RlbS48L2xpPjxsaT4zLiBUaGUgcGFnZSB3aWxsIE5PVCBiZSBpbXBvcnRlZCBpZiB0aGVyZSBpcyBubyBzdWNoIGhpZXJhcmNoeSBwYXRoIG9uIHRoZSB0YXJnZXQgaW5zdGFsbGF0aW9uLiBUaGUgdXNlciB3aWxsIHN0aWxsIGJlIGFibGUgdG8gY3JlYXRlIHRoZSByZXF1aXJlZCBoaWVyYXJjaHkgcHJpb3IgdG8gaW1wb3J0aW5nIHRoZSBFeHBvcnQuPC9saT48L3VsPjxzdHJvbmc+Tk9URTogVGhlIGxpc3QgaXMgZmlsaXRlcmVkIHRvIHRoZSBwYWdlcyB3aGVyZSB0aGUgdGVtcGxhdGVzIHRoZXkgdXNlIGFyZSBzZWxlY3RlZCBmb3IgZXhwb3J0LiAgWW91IG1heSBnbyBiYWNrIHRvIHNlbGVjdCBtb3JlLjwvc3Ryb25nPjxici8+JzskbGFuZ1snZXh0X01PRFRFTVBMQVRFJ109J1NlbGVjdGVlciBtb2R1bGVzamFibG9uZW4nOyRsYW5nWydoZWxwX2V4dF9NT0RURU1QTEFURSddPSdTZWxlY3QgbW9kdWxlIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgRXhwb3J0LiBJZiB0aGUgbW9kdWxlcyBhcmUgbm90IGluc3RhbGxlZCBpbiB0YXJnZXQgaW5zdGFsbGF0aW9uIG9yIHRoZSB2ZXJzaW9uIGRldmlhdGVzIGZyb20gb25lIHlvdSB1c2UgaGVyZSwgdGhlIHVzZXIgd2lsbCBiZSBwcm92aWRlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBtZXNzYWdlIHdoYXQgbW9kdWxlIGlzIG1pc3NpbmcgYW5kIHRoZSB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgeW91IHVzZSBoZXJlLic7JGxhbmdbJ2V4dF9HQ0InXT0nU2VsZWN0ZWVyIEhUTUwtYmxva2tlbiAoR0NCKSc7JGxhbmdbJ2hlbHBfZXh0X0dDQiddPSdTZWxlY3QgR0NCIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBHQ0Igd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMgb24gdGhlIHRhcmdldCBzeXN0ZW0gaXQgd2lsbCBiZSBvdmVyd3JpdHRlbi4nOyRsYW5nWydleHRfVURUJ109J1NlbGVjdGVlciBnZWJydWlrZXJzZ2VkZWZpbmllZXJkZSB0YWdzIChVRFQpJzskbGFuZ1snaGVscF9leHRfVURUJ109J1NlbGVjdCBVRFRzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBFeHBvcnQuIElmIHRoZSBVRFQgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMgb24gdGhlIHRhcmdldCBzeXN0ZW0gaXQgd2lsbCBiZSBvdmVyd3JpdHRlbi4nOyRsYW5nWydleHRfRklMRSddPSdTZWxlY3RlZXIgYmVzdGFuZGVuJzskbGFuZ1snaGVscF9leHRfRklMRSddPSdTZWxlY3QgZmlsZXMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhpcyBFeHBvcnQuIFRoaXMgbGlzdCBpcyBsaW1pdGVkIHRvIHRoZSBmaWxlcyBpbiB0aGUgZm9sZGVyIDxzdHJvbmc+L3VwbG9hZHM8L3N0cm9uZz4uICBUaGUgbW9yZSBmaWxlcyBjaG9vc2VuIHRoZSBsYXJnZXIgdGhlIEV4cG9ydC4gIE92ZXJsb2FkaW5nIHdpdGggbWFueSBmaWxlcyBtYXkgY2F1c2UgJnF1b3Q7b3V0IG9mIG1lbW9yeSZxdW90OyBlcnJvcnMgZHVyaW5nIGV4cG9ydCBvciBpbXBvcnQgb24gdGhlIHRhcmdldCBpbnN0YWxsYXRpb24uJzskbGFuZ1snZXh0X1BSRUYnXT0nU2VsZWN0IG1vZHVsZXMmIzAzOTsgc2V0dGluZ3MnOyRsYW5nWydoZWxwX2V4dF9QUkVGJ109J1NlbGVjdCB0aGUgbW9kdWxlcyBmb3Igd2hpY2ggdGhlIHNldHRpbmdzIHNob3VsZCBiZSBpbmNsdWRlZC4gVXNlIHdpdGggY2F1dGlvbiBhcyBhbGwgbW9kdWxlIHNldHRpbmdzIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaW4gdGhlIHRhcmdldCBpbnN0YWxsYXRpb24uIE9ubHkgIGNob29zZSBtb2R1bGUgc2V0dGluZ3MgaWYgdGhlIEV4cG9ydCByZWxpZXMgb24gY2VydGFpbiBzZXR0aW5nIGFuZCB3aWxsIGZhaWwgaWYgaXQgaXMgbm90IHNldCBhcyByZXF1aXJlZC4nOyRsYW5nWydleHRfSU5GTyddPSdJbnN0ZWxsZW4gdmFuIGV4cG9ydGluZm9ybWF0aWUnOyRsYW5nWydoZWxwX2V4dF9JTkZPJ109J0VudGVyIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgRXhwb3J0LiA8c3Ryb25nPkV4cG9ydCBuYW1lIGFuZCBFeHBvcnQgdmVyc2lvbiBhcmUgcmVxdWlyZWQgZmllbGRzITwvc3Ryb25nPiBVc2Ugbm90ZXMgdG8gZ2l2ZSB1c2VyIGluc3RydWN0aW9ucyBvciBzdXBwb3J0IGluZm9ybWF0aW9uLic7JGxhbmdbJ2V4dF9GSU5GTyddPSdJbnN0ZWxsZW4gdmFuIGV4cG9ydGluZm9ybWF0aWUnOyRsYW5nWydoZWxwX2V4dF9GSU5GTyddPSdFbnRlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIEV4cG9ydCBhbmQgY2hvb3NlIHNvbWUgb3B0aW9ucy4gPHN0cm9uZz5FeHBvcnQgemlwIG5hbWUgYW5kIEV4cG9ydCB2ZXJzaW9uIGFyZSByZXF1aXJlZCBmaWVsZHMhPC9zdHJvbmc+IFVzZSBub3RlcyB0byBjcmVhdGUgYSByZWFkbWUgZmlsZSB3aXRoIHVzZXIgaW5zdHJ1Y3Rpb25zIG9yIHN1cHBvcnQgaW5mb3JtYXRpb24uJzskbGFuZ1snZXh0X1BBQ0snXT0nSGVyemllIGV4cG9ydCc7JGxhbmdbJ2hlbHBfZXh0X1BBQ0snXT0nRXZlcnl0aGluZyBjaGVja3Mgb3V0LiAgUGxlYXNlIHJldmlldyB0aGUgRXhwb3J0IGJlbG93IGFuZCBjbGljayB0byBkb3dubG9hZC4nOyRsYW5nWyd2aWV3J109J3ZpZXcnOyRsYW5nWydub19jb21wb25lbnRzJ109JzxoMyBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDs+Tm90aGluZyBoYXMgYmVlbiBmb3VuZC48L2gzPjxwIGFsaWduPSZxdW90O2NlbnRlciZxdW90Oz5Ob3RlOiB0aGlzIGxpc3QgY2FuIGJlIGxpbWl0ZWQgYmFzZWQgb24gdGhlIHByZXZpb3VzIHNlbGVjdGlvbnMuPGJyLz5DbGljayBvbiAmcXVvdDtDb250aW51ZSZxdW90OyB0byBnZXQgdG8gdGhlIG5leHQgc3RlcC48L3A+JzskbGFuZ1sndGVtcGxhdGVzJ109J1NqYWJsb25lbic7JGxhbmdbJ3N0eWxlc2hlZXRzJ109J1N0eWxlc2hlZXRzICc7JGxhbmdbJ2FjdGlvbiddPSdTZWxlY3RlZXIgYWxsZXMnOyRsYW5nWydsaXN0J109J0V4cG9ydGVlciBpbmhvdWQnOyRsYW5nWydwYWdlcyddPSdQYWdpbmEmIzAzOTtzJzskbGFuZ1snbW9kdWxldGVtcGxhdGVzJ109J01vZHVsZSBzamFibG9uZW4nOyRsYW5nWydnYmxzJ109J0hUTUwtYmxva2tlbiAoR0NCKSc7JGxhbmdbJ3VkdHMnXT0nR2VicnVpa2Vyc2dlZGVmaW5pZWVyZGUgdGFncyAoVURUKSc7JGxhbmdbJ2ZpbGVzJ109J0Jlc3RhbmRlbic7JGxhbmdbJ21vZHVsZXNldHRpbmdzJ109J0luc3RlbGxpbmdlbiB2b29yIG1vZHVsZXMnOyRsYW5nWydtb2R1bGVuYW1lJ109J01vZHVsZW5hYW0nOyRsYW5nWydtb2R1bGUnXT0nTW9kdWxlICc7JGxhbmdbJ25vc2VsZWN0aW9uJ109JyogRXIgaXMgbmlldHMgZ2VzZWxlY3RlZXJkJzskbGFuZ1sncHJvbXB0X3BhY2thZ2VuYW1lJ109J0V4cG9ydGVlciBuYWFtJzskbGFuZ1snaW5mb19wYWNrYWdlbmFtZSddPSdXaXRoIGFuIEV4cG9ydCBuYW1lLCB0cnkgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggYW5vdGhlciBleGlzdGluZyBFeHBvcnQgYnkgdXNpbmcgYSB1bmlxdWUgbmFtZSEgJXMgQ2xpY2sgdG8gY2hlY2sgY3VycmVudCBrbm93ZW4gbmFtZXMgJXMnOyRsYW5nWydwcm9tcHRfcGFja2FnZXZlcnNpb24nXT0nRXhwb3J0dmVyc2llJzskbGFuZ1snaW5mb19wYWNrYWdldmVyc2lvbiddPSdFbnRlciB0aGUgdmVyc2lvbiBvZiB0aGUgRXhwb3J0LiBUaGlzIHdpbGwgaGVscCB0byB0cmFjayBpc3N1ZXMgb3IgaGFuZGxlIHVwZ3JhZGVzLiAnOyRsYW5nWydwcm9tcHRfYXV0aG9ybmFtZSddPSdBdXRldXJzbmFhbSc7JGxhbmdbJ2luZm9fYXV0aG9ybmFtZSddPSdWb29yIHV3IG5hYW0gZW4gY29weXJpZ2h0IGluLiBpZTogPGk+Sm9vc3QgZGUgQnJ1aWpuIFt3ZWJzaXRlLm5sXTwvaT4nOyRsYW5nWydwcm9tcHRfbm90ZXMnXT0nTm90aXRpZXMnOyRsYW5nWydpbmZvX25vdGVzJ109J0VudGVyIGFueSBhZGRpdGlvbmFsIGluc3RydWN0aW9ucy4gaWU6IGlmIHlvdSBkZWxpdmVyIHRlbXBsYXRlcyBmb3Igc3BlY2lhbCBtb2R1bGUsIHRlbGwgdGhlIHVzZXIgaG93IHRvIGNvbmZpZ3VyZSBpdC4gT3IgdGVsbCB0aGUgdXNlciB3aGVyZSBoZSBjYW4gZ2V0IGhlbHAgZm9yIHRoZSB0aGVtZS4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIHNob3duIG9uIHRoZSBkYXNoYm9hcmQgYWZ0ZXIgdGhlIHRoZW1lIGlzIGluc3RhbGxlZC4nOyRsYW5nWydlbXB0eXBhY2thZ2VuYW1lJ109J1ZvZXIgYWxzdHVibGllZnQgZGUgZXhwb3J0bmFhbSBpbiEnOyRsYW5nWydlbXB0eXBhY2thZ2V2ZXJzaW9uJ109J1ZvZXIgYWxzdHVibGllZnQgZGUgZXhwb3J0dmVyc2llIGluISc7JGxhbmdbJ3BhY2thZ2VpbmNsdWRlcyddPSdEZXplIGV4cG9ydCBiZXZhdCc7JGxhbmdbJ2FjY2Vzc2RlbmllZCddPSdEZSBtYXAgdG1wL2NhY2hlIGlzIG5pZXQgYmVzY2hyaWpmYmFhci4gQ29udHJvbGVlciB1dyByZWNodGVuISc7JGxhbmdbJ3dhcm5pbmcnXT0nV2FhcnNjaHV3aW5nISc7JGxhbmdbJ3N1Y2Nlc3MnXT0nT0sgJzskbGFuZ1snZXJyb3InXT0nTWlzbHVrdCEnOyRsYW5nWydwcm9tcHRfY21zbXN2ZXJzaW9uJ109J0NNUyBNYWRlIFNpbXBsZSAnOyRsYW5nWydwcm9tcHRfc2R2ZXJzaW9uJ109J1NjcmlwdERlcGxveSAnOyRsYW5nWydtb2R1bGV2ZXJzaW9ucyddPSdWZXJlaXN0ZSBtb2R1bGVzIGVuIHZlcnNpZXMnOyRsYW5nWydyZWNvbW1lbmRlZCddPSclcyBFeHBvcnQgd2FzIGdlbWFha3QgbWV0IHZlcnNpZSAlcyAlcyc7JGxhbmdbJ3JlcXVpcmVkJ109JyVzIEV4cG9ydCB2ZXJlaXN0IG1vZHVsZSB2ZXJzaWUgJXMuICVzIERFWkUgWkFMIHdvcmRlbiBnZSZpdW1sO25zdGFsbGVlcmQgJXMgJXMnOyRsYW5nWydUTVAnXT0nU2phYmxvbmVuJzskbGFuZ1snQ1NTJ109J1N0eWxlc2hlZXRzIChlbi9vZiBncm9lcGVuKSc7JGxhbmdbJ0pTJ109J0phdmFzY3JpcHRzIChlbi9vZiBncm9lcGVuKSc7JGxhbmdbJ1BHJ109J1BhZ2luYSYjMDM5O3MnOyRsYW5nWydNT0RURU1QTEFURSddPSdNb2R1bGUgc2phYmxvbmVuJzskbGFuZ1snR0NCJ109J0hUTUwtYmxvayAoR0NCKSc7JGxhbmdbJ1VEVCddPSdHZWJydWlrZXJzZ2VkZWZpbmllZXJkZSB0YWcgKFVEVCknOyRsYW5nWydGSUxFJ109J0Jlc3RhbmRlbic7JGxhbmdbJ1BSRUYnXT0nTW9kdWxlIGluc3RlbGxpbmdlbic7JGxhbmdbJ0lORk8nXT0nWE1MIGdlYmFzc2VlcmRlIGV4cG9ydGluZm9ybWF0aWUnOyRsYW5nWydGSU5GTyddPSdaSVAgZ2ViYXNzZWVyZGUgZXhwb3J0aW5mb3JtYXRpZSc7JGxhbmdbJ1BBQ0snXT0nQ3JlZSZldW1sO3IgZWVuIGV4cG9ydCc7JGxhbmdbJ1dSVCddPSdTY2hyaWpmIGRlIGV4cG9ydCc7JGxhbmdbJ1RNUF9mcm9udCddPSdTamFibG9uZW4nOyRsYW5nWydDU1NfZnJvbnQnXT0nU3R5bGVzaGVldHMgKGVuL29mIGdyb2VwZW4pJzskbGFuZ1snSlNfZnJvbnQnXT0nSmF2YXNjcmlwdHMgKGVuL29mIGdyb2VwZW4pJzskbGFuZ1snUEdfZnJvbnQnXT0nUGFnaW5hJiMwMzk7cyc7JGxhbmdbJ01PRFRFTVBMQVRFX2Zyb250J109J01vZHVsZSBzamFibG9uZW4nOyRsYW5nWydHQ0JfZnJvbnQnXT0nSFRNTC1ibG9rIChHQ0IpJzskbGFuZ1snVURUX2Zyb250J109J0dlYnJ1aWtlcnNnZWRlZmluaWVlcmRlIHRhZyAoVURUKSc7JGxhbmdbJ0ZJTEVfZnJvbnQnXT0nQmVzdGFuZGVuJzskbGFuZ1snUFJFRl9mcm9udCddPSdNb2R1bGUgaW5zdGVsbGluZ2VuJzskbGFuZ1snSU5GT19mcm9udCddPSdlZW4gWE1MIGdlYmFzc2VlcmRlIGV4cG9ydCc7JGxhbmdbJ0ZJTkZPX2Zyb250J109J2VlbiBaSVAgZ2ViYXNzZWVyZGUgZXhwb3J0JzskbGFuZ1snUEFDS19mcm9udCddPSdDcmVlJmV1bWw7ciBlZW4gZXhwb3J0JzskbGFuZ1snV1JUX2Zyb250J109J1NjaHJpamYgZWVuIGV4cG9ydCc7JGxhbmdbJ3N0ZXBBcnJheSddPSdFeHBvcnQgYmV2YXQnOyRsYW5nWydpbmZvQXJyYXknXT0nRXhwb3J0IHR5cGVuJzskbGFuZ1snRnVsbFNpdGVQdXNoJ109J1N0YXJ0IGVlbiB2b2xsZWRpZ2UgcHVzaCBuYWFyIGVlbiBuaWV1d2Ugc2VydmVyLiBiaWp2b29yYmVlbGQ6IHB1c2ggdmFuIGVlbiB0ZXN0c2VydmVyIG5hYXIgZWVuIHByb2R1Y3RpZXNlcnZlcic7JGxhbmdbJ21vZGRlc2NyaXB0aW9uJ109J1NQRUVEIFlPVVIgU0lURSBVUCAuLi4hISEhICZidWxsOyBPdXRwdXQgZHluYW1pYyBKUyBmaWxlcyBhbmQgQ1NTIFdJVEggc21hcnR5Li4uICZidWxsOyBTZXQgdGhlIGZpbGVzIHRvIHVzZSBhIHN1YmRvbWFpbi4uLiAmYnVsbDsgY2FjaGVkLi4uICZidWxsOyBtaW5pZmllZC4uLiAmYnVsbDsgRGlkIEkgbWVudGlvbiB5b3UgY2FuIHVzZSBzbWFydHkgaW4geW91ciBKUyBhbmQgQ1NTIHNjcmlwdCEhISEgLSBTaW1wbGUsIGZsZXhpYmxlISAnOyRsYW5nWyd3ZWxjb21lX3RleHQnXT0nPHA+SGFsbG8hPC9wPic7JGxhbmdbJ2hlbHAnXT0nPGxpbmsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IGhyZWY9JnF1b3Q7Li4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyByZWw9JnF1b3Q7c3R5bGVzaGVldCZxdW90Oy8+PGRpdiBjbGFzcz0mcXVvdDtTaW1XcmFwJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PC9iPg0KDQo8ZGl2IGNsYXNzPSZxdW90O1NpbWNvbiZxdW90Oz4gPGgzIGNsYXNzPSZxdW90O0JhY2tMaW5rJnF1b3Q7PjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+PDwgQmFjazwvYT48L2gzPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMT4NCjxoMj5Xcml0ZSBtYW5hZ2UgYW5kIGRlcGxveSBKUyBhbmQgQ1NTPC9oMj4NCjxhIGlkPSJTY3JpcHREZXBsb3kiPjwvYT4NCjxwPlNjcmlwdERlcGxveSBtb2R1bGUgdGhhdCBjYW4gY29tYmluZSBtdWx0aXBsZSBDU1Mgb3IgSmF2YXNjcmlwdCBmaWxlcywgY29tcHJlc3MgdGhlaXIgY29udGVudHMgKGkuZS4gcmVtb3ZhbCBvZiB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlL2NvbW1lbnRzKSwgYW5kIHNlcnZlIHRoZSByZXN1bHRzIHdpdGggSFRUUCBlbmNvZGluZyAoZ3ppcC9kZWZsYXRlKSBhbmQgaGVhZGVycyB0aGF0IGFsbG93IG9wdGltYWwgY2xpZW50LXNpZGUgY2FjaGluZy4gVGhpcyBoZWxwcyB5b3UgZm9sbG93IHNldmVyYWwgb2YgWWFob28hJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9pbmRleC5odG1sI3J1bGVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+UnVsZXMgZm9yIEhpZ2ggUGVyZm9ybWFuY2UgV2ViIFNpdGVzPC9hPi4gKFNlZSAmcXVvdDtQcm9ibGVtIERvbWFpbiZxdW90OyBiZWxvdyBmb3IgbW9yZSBpbmZvLikgPC9wPg0KPGgzPlRoZSBTaG9ydCBvZiBpdDwvaDM+DQo8cD5XaXJ0ZSB5b3VyIHNjcmlwdHMsIHNldCB0aGUgb3JkZXIgYW5kIFNjcmlwdERlcGxveSB3aWxsIGRvIHRoZSByZXN0ITwvcD4NCjx0YWJsZT4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nJnF1b3Q7IGFsdD0mcXVvdDthZnRlciZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5BZnRlcjwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmcmcXVvdDsgYWx0PSZxdW90O2JlZm9yZSZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQoNCg0KDQo8aDI+PGEgaWQ9IkZlYXR1cmVzIj48L2E+RmVhdHVyZXM8L2gyPg0KPHVsPg0KICA8bGk+Q29tYmluZXMgYW5kIG1pbmlmaWVzIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIGludG8gYSBzaW5nbGUgICBkb3dubG9hZCA8L2xpPg0KICA8bGk+VXNlcyBhbiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9KU01pbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5lbmhhbmNlZCBwb3J0PC9hPiBvZiBEb3VnbGFzIENyb2NrZm9yZCYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluICAgbGlicmFyeTwvYT4gYW5kIGN1c3RvbSBjbGFzc2VzIHRvIG1pbmlmeSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvQ1NTLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNTUzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9IVE1MLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkhUTUw8L2E+PC9saT4NCiAgPGxpPkNhY2hlcyBzZXJ2ZXItc2lkZSB0byBhdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSB3b3JrIDwvbGk+DQogIDxsaT5SZXNwb25kcyB3aXRoIGFuIEhUVFAgMzA0IChOb3QgTW9kaWZpZWQpIHJlc3BvbnNlIHdoZW4gdGhlIGJyb3dzZXIgaGFzIGFuICAgdXAtdG8tZGF0ZSBjYWNoZSBjb3B5ICoqIDwvbGk+DQogIDxsaT5Nb3N0IG1vZHVsZXMgYXJlIGxhenktbG9hZGVkIGFzIG5lZWRlZCAoMzA0IHJlc3BvbnNlcyB1c2UgbWluaW1hbCBjb2RlKSAgKiogPC9saT4NCiAgPGxpPkF1dG9tYXRpY2FsbHkgcmV3cml0ZXMgcmVsYXRpdmUgVVJJcyBpbiBjb21iaW5lZCBDU1MgZmlsZXMgdG8gcG9pbnQgdG8gdmFsaWQgbG9jYXRpb25zIDwvbGk+DQogIDxsaT5XaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSYjMDM5O3MgbW9kX2RlZmxhdGUgb3B0aW9uISA8L2xpPg0KPC91bD4NCjxoMz48ZW0+PHN0cm9uZz4qKiBOb3RlOjwvc3Ryb25nPiBJdCBpcyBiZXN0IHRvIHVzZSBhIC5odGFjY2VzcyBzY3JpcHQgdG8gc2V0IHRoZSBhZ2UgdGltZXMuIFNjcmlwdERlcGxveSBpcyBkZXNpZ25lZCBmb3IgZWZmaWNpZW5jeSwgYnV0IGZvciB2ZXJ5IGhpZ2ggdHJhZmZpYyBzaXRlcywgU2NyaXB0RGVwbG95IG1heSBzZXJ2ZSBmaWxlcyBzbG93ZXIgdGhhbiB5b3VyIEhUVFBkIGR1ZSB0byB0aGUgQ0dJIG92ZXJoZWFkIG9mIFBIUC4gIFRvIG92ZXIgY29tZSB0aGlzIEp1c3QgY2hlY2sgJnF1b3Q7dXNlIC5odGFjY2VzcyBpbiBvcHRpb25zJnF1b3Q7PC9lbT48L2gzPg0KPGgyPjxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPlJlcXVpcmVtZW50czwvaDI+DQo8dWw+DQogIDxsaT5UaGUgY29tbW9ubHkgaW5zdGFsbGVkIDxhIGhyZWY9Imh0dHA6Ly91czMucGhwLm5ldC9tYW51YWwvZW4vemxpYi5pbnN0YWxsYXRpb24ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+emxpYiAgIGV4dGVuc2lvbjwvYT4gaXMgcmVjb21tZW5kZWQgZm9yIEhUVFAgZW5jb2RpbmcgZnVuY3Rpb25hbGl0eS4gPC9saT4NCjwvdWw+DQo8YnIvPjxici8+DQo8aDE+SG93IERvIEkgVXNlIEl0PC9oMT4NCg0KDQo8aDM+R2V0IGEgc2luZ2xlIHNjcmlwdDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPg0KDQo8YnIvPjxici8+DQo8aDQ+UGFyYW1zPC9oND4NCjx1bD4NCjxsaT48c3Ryb25nPnNjcmlwdElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+Z3JvdXBJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC8pIEpTL0NTUzwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+U21hcnR5T249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiA8YnIvPnwgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5NaW5pZnk9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiA8YnIvPnwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KDQoNCg0KDQoNCg0KPGxpPjxzdHJvbmc+TWVkaWFUeXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgTWVkaWEgdHlwZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+aW1wb3J0PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gPGJyLz58IHNldCB0aGUgaW5jbHVzaW9uIHN0eWxlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwmcXVvdDt0ZXh0L2Nzc1wmcXVvdDs+QGltcG9ydCB1cmwoJnF1b3Q7dXJsL2Nzc2ZpbGUuY3NzJnF1b3Q7KSBzY3JlZW47PC9zdHlsZT48YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPmNhY2hlQnVzdGVyPC9zdHJvbmc+IDxlbT4ob3B0aW9uYWwpIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+PGJyLz58IFRoaXMgaXMgdG8gaW5zdGFudGx5IHVuY2FjaGUgYW4gc2NyaXB0IG9uIHRoZSBjbGllbnQgc2lkZSBhZnRlciBhIG5ldyB1cGxvYWRlZCBzY3JpcHQgaXMgY3JlYXRlZC4uLiBpZTogMTIuanM/MTI1NTIyNTAwNyAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KCB0cnVlL2ZhbHNlICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCjxsaT48c3Ryb25nPmFzc2lnbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgQXNzaWduIHRoZSBvdXRwdXQgKHJldHVybiB0aGUgc21hcnR5IGFzc2lnbm1lbnQpICBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdXQgd2l0aG91dCBVUkw8L2xpPg0KPGxpPjxzdHJvbmc+ZnNpemU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290VXJsPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBTY3JpcHREZXBsb3kgY3JlYXRlcyBhIHRlbXAgZGlyZWN0b3IgaW4gdGhlIHVwbG9hZCBmb2xkZXIuICBJZiB5b3UgbW92ZSB0aGUgcGF0aCB0byB0aGUgdXBsYW9kIHRvIGEgc3ViZG9tYWluIHlvdSBtYXkgZ3VpZGUgdGhlIG91dHB1dCB3aXRoIHRoaXMuPC9saT4NCiAgICAgICAgPHVsIHN0eWxlPSZxdW90O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyZxdW90Oz48bGk+PHN0cm9uZz5FeGFwbWxlOjwvc3Ryb25nPiB5b3UgY2hhbmdlZCA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSAmIzAzOTsvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT4gPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPnRvPC9zdHJvbmc+IDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9IFwvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9zdWJkb21haW5zL21lZGlhL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPjwvbGk+DQogICAgICAgICAgICA8bGk+bm93IHRoZSB1cGxvYWRzIHVybCB3b3VsZCBub3Qgd29yayBhcyBpdCB3b3VsZCBiZSA8dT5odHRwOi8vd3d3LmRvbWFpbi5vcmcvdXBsb2FkczwvdT48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+U288L3N0cm9uZz4gaXQgY2FuIGJlIGNoYW5nZWQgaGVyZSB0byA8dT5odHRwOi8vbWVkaWEuZG9tYWluLm9yZy91cGxvYWRzPC91PiAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz5VUkw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58b3V0cHV0cyB0aGUgdXJsLjwvbGk+DQoNCg0KDQoNCgkJDQoNCg0KDQoNCg0KDQoNCg0KPCEtLTxsaT48c3Ryb25nPlNhbmRCb3g9dHJ1ZSA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBmYWxzZTxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+UlVOYWN0aW9uPSZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCBVUkwgPGVtPiguLi9wbHVnaW5zL2Z1bmN0aW9uLmZpbGVuYW1lLnBocCk8L2VtPjxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSZhbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDthbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NjcmlwdGRlcGxveSI+dGhlIENNUyBGb3JnZTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzIDw8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4+IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxzdHJvbmc+U3VwcG9ydCBtb3JlIG1vZHMgbGlrZSB0aGlzOjwvc3Ryb25nPjxmb3JtIGFjdGlvbj0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJnF1b3Q7IG1ldGhvZD0mcXVvdDtwb3N0JnF1b3Q7Pg0KPGlucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7Y21kJnF1b3Q7IHZhbHVlPSZxdW90O19zLXhjbGljayZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2hvc3RlZF9idXR0b25faWQmcXVvdDsgdmFsdWU9JnF1b3Q7ODgxNzY3NSZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2ltYWdlJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmJnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IG5hbWU9JnF1b3Q7c3VibWl0JnF1b3Q7IGFsdD0mcXVvdDtQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEmcXVvdDs+DQo8aW1nIGFsdD0mcXVvdDsmcXVvdDsgYm9yZGVyPSZxdW90OzAmcXVvdDsgc3JjPSZxdW90O2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9zY3IvcGl4ZWwuZ2lmJnF1b3Q7IHdpZHRoPSZxdW90OzEmcXVvdDsgaGVpZ2h0PSZxdW90OzEmcXVvdDs+DQo8L2Zvcm0+PGJyLz4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8L2RpdiA+PGIgY2xhc3M9JnF1b3Q7cmJvdHRvbSZxdW90Oz48YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+IDxiIGNsYXNzPSZxdW90O3IxJnF1b3Q7PjwvYj48L2I+DQoNCjwvZGl2Pg0KJzskbGFuZ1sndXRtYSddPScxNTY4NjEzNTMuNDMzNjIxMzcwLjEzMTMxODc3MjYuMTMxMzMyNjAyOC4xMzEzNDAxODQ4LjMnOyRsYW5nWyd1dG16J109JzE1Njg2MTM1My4xMzEzMTg3NzI2LjEuMS51dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXgucGhwJzskbGFuZ1sncWNhJ109J1AwLTE0MDg5MjY2NjEtMTMwOTUyODQ3NTI1Nic7JGxhbmdbJ3V0bWInXT0nMTU2ODYxMzUzJzskbGFuZ1sndXRtYyddPScxNTY4NjEzNTMnOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGxhbmdbJ2ZyaWVuZGx5bmFtZSddPSdTY3JpcHQgRGVwbG95JzskbGFuZ1sncG9zdGluc3RhbGwnXT0nRiZvdW1sO3JzdGEgc3RvcHAgZHUgdmlsbCBnJm91bWw7cmEgJmF1bWw7ciBhdHQgbCZhdW1sO3NhIGhqJmF1bWw7bHAnOyRsYW5nWydwb3N0dW5pbnN0YWxsJ109J1BsZWFzZSBmZWVsIGZyZWUgdG8gbGV0IHVzIGtub3cgaWYgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBTY3JpcHREZXBsb3kgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlJiMwMzk7ZXIgaGFwcHkgdG8gaGVhciBmcm9tIHlvdS48L2E+JzskbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddPSdBdmluc3RhbGxhdGlvbiBhdiBkZW5uYSBtb2R1bCBrb21tZXIgaW50ZSBwJmFyaW5nO3ZlcmthIG4mYXJpbmc7Z29uIGRhdGEuIFZpbGwgZHUgZm9ydHMmYXVtbDt0dGE/JzskbGFuZ1sndW5pbnN0YWxsZWQnXT0nTW9kdWxlbiBhdmluc3RhbGxlcmFkJzskbGFuZ1snaW5zdGFsbGVkJ109J01vZHVsIHZlcnNpb24gJXMgaW5zdGFsbGVyYWQuJzskbGFuZ1sndXBncmFkZWQnXT0nTW9kdWxlbiB1cHBncmFkZXJhZCB0aWxsIHZlcnNpb24gJXMuJzskbGFuZ1snQUNUb3B0aW9ucyddPSdEaXN0cmlidXRpb25zIEFsdGVybmF0aXYnOyRsYW5nWydtYW51YWxhc3NpZ25tZW50J109J1NrcmlwdCBncnVwcGVyaW5nYXInOyRsYW5nWydIVE1Mc2V0dGluZ3MnXT0nSFRNTCBhbHRlcm5hdGl2JzskbGFuZ1snVmFsc2V0dGluZ3MnXT0nVmFsaWRhdGlvbnMgaW5zdCZhdW1sO2xsbmluZ2FyJzskbGFuZ1snZW4nXT0nRW5nZWxza2EnOyRsYW5nWydmciddPSdGcmFuc2thJzskbGFuZ1snaXQnXT0nSXRhbGllbnNrYSc7JGxhbmdbJ2tvJ109J0tvcmVhbnNrYSc7JGxhbmdbJ2phJ109J0phcGFuc2thJzskbGFuZ1snZXMnXT0nU3BhbnNrYSc7JGxhbmdbJ3poLWNuJ109J0tpbmVzaXNrYSc7JGxhbmdbJ25sJ109J0hvbGwmYXVtbDtuZHNrYSc7JGxhbmdbJ2RlJ109J1R5c2thJzskbGFuZ1sncGwnXT0nUG9sc2thJzskbGFuZ1snTG5vbmUnXT0nSW5nYSB2YXJuaW5nYXInOyRsYW5nWydMMCddPSdMZXZlbCAwJzskbGFuZ1snTDEnXT0nTGV2ZWwgMSc7JGxhbmdbJ0wyJ109J0xldmVsIDInOyRsYW5nWydjc3MxJ109J0NTUyAxJzskbGFuZ1snY3NzMiddPSdDU1MgMic7JGxhbmdbJ2NzczIxJ109J0NTUyAyLjEnOyRsYW5nWydjc3MzJ109J0NTUyAzJzskbGFuZ1snc3ZnJ109J1NWRyc7JGxhbmdbJ3N2Z2Jhc2ljJ109J1NWRyBiYXNpYyc7JGxhbmdbJ3N2Z3RpbnknXT0nU1ZHIHRpbnknOyRsYW5nWydtb2JpbGUnXT0nbW9iaWwnOyRsYW5nWydhdHNjLXR2J109J2F0c2MtdHYnOyRsYW5nWyd0diddPSdJbnRlbmRlZCBmb3IgdGVsZXZpc2lvbi10eXBlIGRldmljZXMuJzskbGFuZ1snbm9uZSddPSdpbmdlbic7JGxhbmdbJ3NhdmVWQUxzZXR0aW5ncyddPSdTcGFyYSB2YWxpZGVyaW5ncyBpbnN0JmF1bWw7bGxuaW5nYXInOyRsYW5nWydzZXR0aW5ncyddPSdJbnN0JmF1bWw7bGxuaW5nYXInOyRsYW5nWydzZXR0aW5nc3NhdmVkJ109J0luc3QmYXVtbDtsbG5pbmdhcm5hIGJsZXYgc3BhcmFkZSc7JGxhbmdbJ2xlYXZlY29kZSddPSdSJm91bWw7ciBpbnRlIGtvZGVuJzskbGFuZ1snZm9ybWF0Y29kZSddPSdGb3JtYXRlcmEga29kZW4gZmludCc7JGxhbmdbJ3NjcmFtYmxlY29kZSddPSdTY3JhbWJsZSB0aGUgY29kZSc7JGxhbmdbJ2NsZWFuY29kZSddPSdDbGVhbiB1cCB0aGUgY29kZSByZW1vdmluZyBzdHVmZiB0aGF0IGRvZXNuJiMwMzk7dCBtYXR0ZXInOyRsYW5nWydzYXZlc2V0dGluZ3MnXT0nU3BhcmEgaW5zdCZhdW1sO2xsbmluZ2FyJzskbGFuZ1snbWFuZ2xldHlwZXRleHQnXT0nSHVyIG1hbiBmb3JtYXRlcmFyIGtvZGVuJzskbGFuZ1snYnJpZWYnXT0nQnJpZWYnOyRsYW5nWyd2ZXJib3NlJ109J1ZlcmJvc2UnOyRsYW5nWydjb2RlZml4ZXMnXT0nQ29kZSBmaXhlcyc7JGxhbmdbJ2ZvcmNlbG93ZXJ0YWdzdGV4dCddPSdGb3JjZXJhIHRhZ2dhciB0aWxsIGdlbWVuZXInOyRsYW5nWydmb3JjZWxvd2VydGFnc2hlbHAnXT0nRiZvdW1sO3IgYiZhdW1sO3R0cmUgWEhUTUwta29tcGF0aWJpbGl0ZXQnOyRsYW5nWydoaWRlbWVzc2FnZXN0ZXh0J109J0hpZGUgQ29kZU1hbmdsZXIgbWVzc2FnZXMgaW4gYm90dG9tIG9mICh4KWh0bWwtY29kZSc7JGxhbmdbJ2luZGVudHdpZHRodGV4dCddPSdXaWR0aCBvZiBpbmRlbnRhdGlvbic7JGxhbmdbJ3NwYWNlcyddPSdCbGFua3N0ZWcnOyRsYW5nWydkZWJ1Z2xldmVsdGV4dCddPSdNJmF1bWw7bmdkIGRlYnVnIG91dHB1dDogJzskbGFuZ1snZGVidWd0ZXh0J109J0tvZCBkZWJ1Z2wmYXVtbDtnZSc7JGxhbmdbJ1NjcmlwdF9saXN0J109J1NrcmlwdCc7JGxhbmdbJ0Fzc19oZWFkZXInXT0nR3J1cHBlcmFkZSBza3JpcHQnOyRsYW5nWydTYW1wbGVUYWcnXT0nRXhlbXBlbCB0YWdnJzskbGFuZ1sncHJvbXB0X25ld1NjcmlwdCddPSdMJmF1bWw7Z2cgdGlsbCBldHQgbnl0dCBza3JwdCc7JGxhbmdbJ3Byb21wdF9uZXdTY3JpcHRBc3MnXT0nQWRkIE5ldyBTY3JpcHQgQXNzaWdubWVudCc7JGxhbmdbJ3RpdGxlX0dyb3VwcyddPSdTa3JpcHQgbGlzdGFuICZvdW1sO3ZlciBncnVwcGVyJzskbGFuZ1sndGl0bGVfU2NyaXB0cyddPSdFbmtlbCBza3JpcHQgbGlzdGEnOyRsYW5nWydhcmV5b3VzdXJlJ109J0ltcG9ydGFudDpcblxuSWYgdGhpcyBpcyBkZWxldGVkIGFsbCBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvc3QhXG5cbklmIHlvdSBoYXZlIHRoaXMgc2NyaXB0IGluIGEgZ3JvdXAgeW91IHdpbGwgYnJlYWsgdGhlIHRpZSBhbmQgd2lsbCBuZWVkIHRvIGVkaXQgdGhlIGdyb3VwLlxuSXQgaXMgYmVzdCB0byBzdGFydCB0aGUgZGVsZXRpb24gcHJvY2VzcyBmcm9tIHRoZSBBc3NpZ25tZW50IGFyZWEuXG5cbllPVSBBTFNPIExPU0UgWU9VUiBSRVZJU0lPTiBISVNUT1JZIEZPUiBUSElTIFNDUklQVC4uIEFSRSBZT1UgUkVBTFkgU1VSRT8/Pyc7JGxhbmdbJ3NtYXJ0eUhvdyddPSdUaGUgc21hcnR5IHdvcmtzIGxpa2UgdGhpcy4uLiBXaGVyZSB5b3UmIzAzOTtkIGhhdmUgeyRzbWFydHkubm93fSB5b3UgZG8ge3skc21hcnR5Lm5vd319ICAuICBOb3cgeW91IGNhbiBkbyBzbWFydHkgc3R1ZmYnOyRsYW5nWydhbGwnXT0nUGFzc2FyIGFsbGEgZW5oZXRlcic7JGxhbmdbJ2F1cmFsJ109JyBJbnRlbmRlZCBmb3Igc3BlZWNoIHN5bnRoZXNpemVycy4nOyRsYW5nWydicmFpbGxlJ109J0ludGVuZGVkIGZvciBicmFpbGxlIHRhY3RpbGUgZmVlZGJhY2sgZGV2aWNlcy4nOyRsYW5nWydlbWJvc3NlZCddPSdJbnRlbmRlZCBmb3IgcGFnZWQgYnJhaWxsZSBwcmludGVycy4nOyRsYW5nWydoYW5kaGVsZCddPSdJbnRlbmRlZCBmb3IgaGFuZGhlbGQgZGV2aWNlcyc7JGxhbmdbJ3ByaW50J109J0ludGVuZGVkIGZvciBwYWdlZCwgb3BhcXVlIG1hdGVyaWFsIGFuZCBmb3IgZG9jdW1lbnRzIHZpZXdlZCBvbiBzY3JlZW4gaW4gcHJpbnQgcHJldmlldyBtb2RlLic7JGxhbmdbJ3Byb2plY3Rpb24nXT0nIEludGVuZGVkIGZvciBwcm9qZWN0ZWQgcHJlc2VudGF0aW9ucywgZm9yIGV4YW1wbGUgcHJvamVjdG9ycyBvciBwcmludCB0byB0cmFuc3BhcmVuY2llcy4nOyRsYW5nWydzY3JlZW4nXT0nSW50ZW5kZWQgcHJpbWFyaWx5IGZvciBjb2xvciBjb21wdXRlciBzY3JlZW5zLic7JGxhbmdbJ3R0eSddPSdJbnRlbmRlZCBmb3IgbWVkaWEgdXNpbmcgYSBmaXhlZC1waXRjaCBjaGFyYWN0ZXIgZ3JpZCwgc3VjaCBhcyB0ZWxldHlwZXMgYW5kIHRlcm1pbmFscy4nOyRsYW5nWydNZWRpYVR5cGUnXT0nYWxsIDogU3VpdGFibGUgZm9yIGFsbCBkZXZpY2VzLjxici8+DQphdXJhbCA6IEludGVuZGVkIGZvciBzcGVlY2ggc3ludGhlc2l6ZXJzLjxici8+DQpicmFpbGxlIDogSW50ZW5kZWQgZm9yIGJyYWlsbGUgdGFjdGlsZSBmZWVkYmFjayBkZXZpY2VzLjxici8+DQplbWJvc3NlZCA6IEludGVuZGVkIGZvciBwYWdlZCBicmFpbGxlIHByaW50ZXJzLjxici8+DQpoYW5kaGVsZCA6IEludGVuZGVkIGZvciBoYW5kaGVsZCBkZXZpY2VzPGJyLz4NCnByaW50IDogSW50ZW5kZWQgZm9yIHBhZ2VkLCBvcGFxdWUgbWF0ZXJpYWwgYW5kIGZvciBkb2N1bWVudHMgdmlld2VkIG9uIHNjcmVlbiBpbiBwcmludCBwcmV2aWV3IG1vZGUuPGJyLz4NCnByb2plY3Rpb24gOiBJbnRlbmRlZCBmb3IgcHJvamVjdGVkIHByZXNlbnRhdGlvbnMsIGZvciBleGFtcGxlIHByb2plY3RvcnMgb3IgcHJpbnQgdG8gdHJhbnNwYXJlbmNpZXMuPGJyLz4NCnNjcmVlbiA6IEludGVuZGVkIHByaW1hcmlseSBmb3IgY29sb3IgY29tcHV0ZXIgc2NyZWVucy48YnIvPg0KdHR5IDogSW50ZW5kZWQgZm9yIG1lZGlhIHVzaW5nIGEgZml4ZWQtcGl0Y2ggY2hhcmFjdGVyIGdyaWQsIHN1Y2ggYXMgdGVsZXR5cGVzIGFuZCB0ZXJtaW5hbHMuPGJyLz4NCnR2IDogSW50ZW5kZWQgZm9yIHRlbGV2aXNpb24tdHlwZSBkZXZpY2VzLic7JGxhbmdbJ0NhbmNlbGVkJ109J04mYXJpbmc7Z290IGdpY2sgZmVsLiBBcmJldGV0IGthbiBoYSBmJm91bWw7cmxvcmF0cy4nOyRsYW5nWydCdG5BRERFRCddPSdEdSBsYWRlIG55c3MgdGlsbCBldHQgbnl0dCBza3JpcHQnOyRsYW5nWydCdG5FRElURUQnXT0nRHUgcmVkaWdlcmFkZSBldHQgYmVmaW50bGlndCBza3JpcHQnOyRsYW5nWydCdG5ERUxFVEVEJ109J0R1IHJhZGVyYWRlIGV0dCBiZWZpbnRsaWd0IHNrcmlwdCc7JGxhbmdbJ3R5cGVfbGFiZWwnXT0nVHlwJzskbGFuZ1sncmV2aXNpb24nXT0nUmV2aXNpb24nOyRsYW5nWydpc0VkaXQnXT0nJmF1bWw7ciByZWRpZ2VyaW5nJzskbGFuZ1snZW10cHlHcm91cCddPSdEdSBtJmFyaW5nO3N0ZSBsJmF1bWw7Z2dhIHRpbGwgZXR0IHNrcmlwdCB0aWxsIGdydXBwZW4gaW5uYW4gZHUgYW5yb3BhciBkZXQnOyRsYW5nWydTY3JpcHRTZXRfbGFiZWwnXT0nU2tyaXB0IElEJzskbGFuZ1snc2NyaXB0VHlwZV9sYWJlbCddPSdTa3JpcHQgdHlwJzskbGFuZ1snU2NyaXB0TmFtZV9sYWJlbCddPSdTa3JpcHQgbmFtbic7JGxhbmdbJ1NpbmdsZUNvZGVfbGFiZWwnXT0nU3RhbmRhcmQgU2luZ2VsIHNrcmlwdGFucm9wJzskbGFuZ1snR3JvdXB0U2l6ZV9sYWJlbCddPSdUb3RhbHQnOyRsYW5nWydub3Rlc19sYWJlbCddPSdBbnRlY2tuaW5nYXInOyRsYW5nWydTaG93VmFsX2xhYmxlJ109J0gmYXJpbmc7bGwgbWVkZGVsYW5kZW4gJm91bWw7cHBhJzskbGFuZ1snVHVybk9OVmFsX2xhYmxlJ109J1NsJmFyaW5nOyA8c3Ryb25nPiBQJkFyaW5nOyA8LyBzdHJvbmc+IFZhbGlkZXJpbmcnOyRsYW5nWydob3RMaW5rQ2hlY2tfbGFibGUnXT0nRyZvdW1sO3IgZW4gSG90TGluayBDaGVjayc7JGxhbmdbJ1RydW5PbmhvdExpbmtDaGVjayddPSdEdSBtJmFyaW5nO3N0ZSBzbCZhcmluZzsgcCZhcmluZzsgSG90bGluayBDaGVjayc7JGxhbmdbJ2ZpbHRlclByb3BfbGFibGUnXT0nIEZpbHRlciBvdXQgcHJvcGVydGllcyB0byBoZWxwIHZhbGlkYXRlJzskbGFuZ1snQ1NTcHJvZmlsZV9sYWJsZSddPScgQ1NTIFByb2ZpbCc7JGxhbmdbJ3VzZXJtZWRpdW1fbGFibGUnXT0nIFVzZXIgTWVkaXVtJzskbGFuZ1snVkFMTGFuZ19sYWJsZSddPSdTcHImYXJpbmc7ayc7JGxhbmdbJ3czY0NTU3dhcm5pbmdfbGFibGUnXT0nVzNDIENTUyBWYXJuaW5nIExldmVsJzskbGFuZ1snTWVkaWFUeXBlX2xhYmVsJ109J01lZGlhVHlwJzskbGFuZ1snTWluaWZ5X2xhYmVsJ109J01pbmlmeSBvbiBPdXRwdXQnOyRsYW5nWydDcmVhdGlvbkRhdGVfbGFiZWwnXT0nU2thcGF0IGRhdHVtJzskbGFuZ1snTW9kaWZlZERhdGVfbGFiZWwnXT0nJkF1bWw7bmRyYXQgZGF0dW0nOyRsYW5nWydwYXRoT3B0aW9uX2xhYmVsJ109J1VzZSBhIHBhdGg8ZW0+KHVzZSAmcXVvdDsvdXBsb2Fkcy8uLi4mcXVvdDspPC9lbT4nOyRsYW5nWydyb290VVJMT3B0aW9uX2xhYmVsJ109J1VzZSBhIHNwZWNpZmljIHJvb3QgVVJMPGVtPih1c2Ugc2NoZW1hICZxdW90O2h0dHBzOi8vc3ViLmRvbWFpbi50bGQvJnF1b3Q7KTwvZW0+JzskbGFuZ1snR3Jvb3RVUkwnXT0nR2xvYmFsIFNjcmlwdCBSb290IFVSTCc7JGxhbmdbJ2VtcHR5Y2FjaGVFcnJvcl9kb0FEVUlUJ109J2ZhaWxlZCB0byBlbXB0eSB0aGUgY2FjaGUgYXQnOyRsYW5nWydlbXB0aWVkQ2FjaF9kb0FEVUlUJ109J3Qmb3VtbDttZGUgY2FjaGUgc2tyaXB0ZXQnOyRsYW5nWydjbGVhcmVkUmV2aXNpb25fZG9BRFVJVCddPSdjbGVhcmVkIHRoZSByZXZpc2lvbiBoaXN0b3J5IGZvcic7JGxhbmdbJ0NoZWNrZWRPdXRfZG9BRFVJVCddPSdDaGVja2VkIG91dCBzY3JpcHQgJzskbGFuZ1sncmVsZWFzZWRfZG9BRFVJVCddPSdyZWxlYXNlZCBzY3JpcHQgJzskbGFuZ1snU2NyaXB0SXNfbGFiZWwnXT0nVXNlIHRoaXMgc2NyaXB0IDxlbT4oTm90ZTogSWYgYSBwYXRoIGlzIHNldCwgaXQgd2lsbCBvdmVyIHJpZGUgdGhpcyk8L2VtPic7JGxhbmdbJ2RlYnVnSVRfbGFiZWwnXT0nZGVidWdJVCc7JGxhbmdbJ2RlYnVnSVRub3RlX2xhYmVsJ109JzxlbT4oTSZhcmluZztzdGUgaGEgRmlyZXBocCBtb2QpPC9lbT4nOyRsYW5nWydkZWJ1Z1QnXT0nRGVidWdpbmcgT3B0aW9ucyc7JGxhbmdbJ0VkaXRIaXN0b3J5J109J1VzZXIgSGlzdG9yeSBFZGl0aW5nJzskbGFuZ1snbm9uZUluVHlwZSddPSc8aDE+ICBEdSBtJmFyaW5nO3N0ZSBmJm91bWw7cnN0IGwmYXVtbDtnZ2EgPGJyLz4gZXR0IHNrcmlwdCBpIGRlbiBoJmF1bWw7ciB0eXBlbiA8LyBoMT4nOyRsYW5nWydyZXZpc2lvblRpdGxlJ109J1JldmlzaW9ucyBIaXN0b3JpYSc7JGxhbmdbJ3JldmlzaW9uX2xhYmVsJ109JzxzdHJvbmc+U2wmYXJpbmc7IHAmYXJpbmc7IHJldmlzaW9ucyBoaXN0b3Jpa2VuPC9zdHJvbmc+JzskbGFuZ1sncmV2aXNpb25fb3AnXT0nPGgxPlJldmlzaW9uPC9oMT4NCjxoMz5UcnVuaW5nIHRoaXMgb2ZmIGRvZXMgbm90IGNsZWFyIHRoZSBoaXN0b3J5IGlmIGl0IHdhcyBvbiBiZWZvcmUuICBMaWtlIGl0IHRvIHBhdXNlLjwvaDM+JzskbGFuZ1sncmV2aXNpb25fTElNSVRfbGFiZWwnXT0nUyZhdW1sO3R0IHJldmlzaW9ucyBnciZhdW1sO25zJzskbGFuZ1snY2xlYXJSZXYnXT0nUmFkZXJhIGhpc3RvcmlrZW4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlVGl0bGUnXT0nUHJlbG9hZCBDc3MgSW1hZ2VzJzskbGFuZ1sncHJlbG9hZF9DU1NpbWFnZV9sYWJlbCddPSc8c3Ryb25nPlRydW4gb24gUHJlbG9hZGVkIENzcyBJbWFnZXM8L3N0cm9uZz4nOyRsYW5nWydwcmVsb2FkX0NTU2ltYWdlJ109JzxoMT5QcmVsb2FkIENzcyBJbWFnZXM8L2gxPg0KPGgzPklmIHlvdSBoYXZlIHlvdXIgc3lzdGVtIGFsbCBzZXQgdXAgcmlnaHQsIHRoaXMgd2lsbCBoZWxwIHlvdSBnZXQgYSBmYXN0IHBhcmFsbGVsIGRvd24gbG9hZCBvZiBhbGwgZWxlbWVudHMuPC9oMz4nOyRsYW5nWydnbG9iYWx1cmwnXT0nPGgxPlNldCB0aGUgcm9vdCBVUkw8L2gxPg0KPGgzPlVzZWQgZm9yIHdoZW4geW91IG5lZWQgU1NMIHN1cHBvcnQgb3Igd2FudCB0byBwdXNoIHRoZSBzY3JpcHRzIHRvIGEgc3ViZG9tYWluIHRvIGxvc2UgdGhlIG5lZWRsZXMgY29va2llcy48L2gzPic7JGxhbmdbJ3NtYXJ0eU9uX2xhYmVsJ109JzxzdHJvbmc+UHJvY2VzcyBTbWFydHk8L3N0cm9uZz48YnIvPiBkYXRhIGluIGJ1dHRvbiBmaWVsZHMnOyRsYW5nWydzbWFydHlPbiddPSc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+DQo8aDM+V2l0aCB0aGlzIHR1cm5lZCBvbiB5b3UgY2FuIHNldCB0aGUgYnV0dG9uIGZpZWxkcyB3aXRoIHRoZSB2YWx1ZXMgcGFzc2VkIGJ5IG90aGVyIG1vZHVsZXMgc3VjaCBhcyBQcm9kdWN0cyBvciBDYXRhbG9nZXI8L2gzPic7JGxhbmdbJ2ZpbGVUaW1lX2Nzc191cmxzX2xhYmVsJ109JzxzdHJvbmc+aGVscCBicmVhayBhIGNsaWVudCBzaWRlIGNhY2hlPC9zdHJvbmc+JzskbGFuZ1snZmlsZVRpbWVfY3NzX3VybHMnXT0nPGgxPmhlbHAgYnJlYWsgYSBjbGllbnQgc2lkZSBjYWNoZTwvaDE+DQo8aDM+VGhpcyBpcyBkb25lIGJ5IGFkZGluZyBhIGZpbGUgY3JlYXRpb24gdGltZSBhdCB0aGUgZW5kIG9mIGEgZmlsZS4gIFR1cm5pbmcgdGhpcyBvbiB3aWxsIGFkZCB0aGlzIHRvIGFsbCBsb2NhbCB1cmxzLiAoQ1NTIG9ubHkgYXRtKSAtTm90aGluZyBpcyBkb25lIHRvIGhvdGxpbmtzPC9oMz4nOyRsYW5nWydlZGl0J109J1JlZGlnZXJhJzskbGFuZ1snZGVsZXRlJ109J1JhZGVyYSc7JGxhbmdbJ0Nsb3NlJ109J1N0JmF1bWw7bmcnOyRsYW5nWydPcGVuJ109JyZPdW1sO3BwbmEnOyRsYW5nWydkaXJFbXB0eSddPSdNYXBwZW4gdmFyIHRvbSc7JGxhbmdbJ2NsZWFuVGVtcCddPSdSYWRlcmEgdGVtcCBtYXBwZW4/JzskbGFuZ1sndXJUZW1wUGF0aCddPSdEaW4gY2FjaGUgcyZvdW1sO2t2JmF1bWw7ZyAmYXVtbDtyJzskbGFuZ1snTGFzdE1vZCddPSdTZW5hc3QgbW9kaWZlcmFkJzskbGFuZ1snY2FjaGVGZXJyb3InXT0nU2NyaXB0RGVwbG95IGNvdWxkIG5vdCBtYWtlIHRoZSBjYWNoZSBmb2xkZXIsIGNoZWNrIHlvdXIgZmlsZSBwcmVtaXNzaW9ucyBmb3IgdGhlIFVwbGFvZHMgYXJlYS4nOyRsYW5nWydOYW1lJ109J05hbW4nOyRsYW5nWydQcm9jY2Vzc2luZyddPSdCZWFyYmV0bmluZyc7JGxhbmdbJ1NhdmVkJ109J1NwYXJhZCc7JGxhbmdbJ0RvbmUnXT0nS2xhcic7JGxhbmdbJ1ZhbGlkYXRpbmcnXT0nVmFsaWRlcmFyJzskbGFuZ1snR3JvdXB0U2V0X2xhYmVsJ109J0dydXBwbmFtbic7JGxhbmdbJ0dyb3VwdFR5cGVfbGFiZWwnXT0nVHlwIGF2IHNrcmlwdHMnOyRsYW5nWydTY3JpcHRQaWNrZXJfbGFiZWwnXT0nU2tyaXB0IFBvb2wnOyRsYW5nWydMSU5FJ109J0xJTkUnOyRsYW5nWydUWVBFJ109J1RZUEUnOyRsYW5nWydTVUJUWVBFJ109J1NVQlRZUEUnOyRsYW5nWydTVFJJTkcnXT0nU1RSSU5HJzskbGFuZ1snTUVTU0FHRSddPSdNRVNTQUdFJzskbGFuZ1snTEVWRUwnXT0nTEVWRUwnOyRsYW5nWydOb3RlcyddPSdBbnRlY2tuaW5nYXInOyRsYW5nWydXYXJuaW5ncyddPSdWYXJuaW5nYXInOyRsYW5nWydFcnJvcnMnXT0nRmVsbWVkZGVsYW5kZW4nOyRsYW5nWydoaWRkZW4nXT0nZyZvdW1sO21kYSc7JGxhbmdbJ1NjcmlwdCddPSdTa3JpcHQnOyRsYW5nWydFVVJMUyddPSdFeHRyYWhlcmFkZSBVUkxlcic7JGxhbmdbJ1JDU1MnXT0nUmVuZGVyZWQgQ1NTJzskbGFuZ1snU0NTUyddPSdDU1MgU3RydWt0dXInOyRsYW5nWydGQ09OVCddPSdGaWxpbm5laCZhcmluZztsbCc7JGxhbmdbJ2lVUkwnXT0nYmlsZCBVUkwnOyRsYW5nWydUeXBlJ109J1R5cCc7JGxhbmdbJ1NpemUnXT0nU3Rvcmxlayc7JGxhbmdbJ1N0YXR1cyddPSdTdGF0dXMnOyRsYW5nWydob3RsaW5rJ109JzxzdHJvbmc+SG90bGlua2luZzo8L3N0cm9uZz4gYXBwcmVhcyB0byBiZSBhIGhvdGxpbmsuJzskbGFuZ1snQnJva2VubGluayddPSdCcnV0ZW4gbCZhdW1sO25rJzskbGFuZ1snTk9jc3NJJ109J0luZ2EgQ1NTIGJpbGRlcic7JGxhbmdbJ1llc1ZBbGFzdGVyJ109JzxoMj5Zb3UgdmFsaWRhdGVkISAqKjwvaDI+PGltZyBzdHlsZT0mcXVvdDtib3JkZXI6MDt3aWR0aDo4OHB4O2hlaWdodDozMXB4JnF1b3Q7c3JjPSZxdW90O2h0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MtYmx1ZSZxdW90O2FsdD0mcXVvdDtWYWxpZCBDU1MhJnF1b3Q7IC8+PGJyLz4gPHN0cm9uZz4qKiB5b3UgYXJlIGZpbHRlcmluZyBlcnJvcnMgYW5kIG1heSBoYXZlIGZpbHRlcmVkIGEgcmVhbCBlcnJvcjwvc3Ryb25nPic7JGxhbmdbJ1llc1ZBbCddPSc8aDI+WW91IHZhbGlkYXRlZCE8L2gyPjxpbWcgc3R5bGU9JnF1b3Q7Ym9yZGVyOjA7d2lkdGg6ODhweDtoZWlnaHQ6MzFweCZxdW90O3NyYz0mcXVvdDtodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUmcXVvdDthbHQ9JnF1b3Q7VmFsaWQgQ1NTISZxdW90OyAvPic7JGxhbmdbJ0NsZWFySW1nJ109J1RhIGJvcnQgYWt0dWVsbCBiaWxkJzskbGFuZ1snRmluaXNoJ109J0tsYXInOyRsYW5nWydyZXZlcnQnXT0nJkFyaW5nO3RlcnN0JmF1bWw7bGwnOyRsYW5nWydhcHBseSddPSdWZXJrc3QmYXVtbDtsbCc7JGxhbmdbJ2NhbmNlbCddPScmQXJpbmc7bmdyYSc7JGxhbmdbJ2Zvcm1fY2FuY2VsJ109JyZBcmluZztuZ3JhJzskbGFuZ1snU2F2ZSddPSdTcGFyYSc7JGxhbmdbJ2RvbmUnXT0nS2xhcic7JGxhbmdbJ2FkZCddPSdMJmF1bWw7Z2d0aWxsJzskbGFuZ1snc3VibWl0J109J1NraWNrYSc7JGxhbmdbJ1JFT1JERVInXT0nUmVvcmRlcic7JGxhbmdbJ2Zvcm1fc3VibWl0J109J1NwYXJhIGluc3QmYXVtbDtsbG5pbmdhcic7JGxhbmdbJ21vZF9wcmVmc190aXRsZSddPSdNb2R1bCBpbnN0JmF1bWw7bGxuaW5nYXInOyRsYW5nWydwcmVmc3VwZGF0ZWQnXT0nTW9kdWwgaW5zdCZhdW1sO2xsbmluZ2FybmEgJmF1bWw7ciB1cHBkYXRlcmFkZSc7JGxhbmdbJ29wdGlvbnN1cGRhdGVkJ109J3VwcGRhdGVyYWRlIGFsdGVybmF0aXYnOyRsYW5nWydtb2RkZXNjcmlwdGlvbiddPSdTUEVFRCBZT1VSIFNJVEUgVVAgLi4uISEhISAmYnVsbDsgT3V0cHV0IGR5bmFtaWMgSlMgZmlsZXMgYW5kIENTUyBXSVRIIHNtYXJ0eS4uLiAmYnVsbDsgU2V0IHRoZSBmaWxlcyB0byB1c2UgYSBzdWJkb21haW4uLi4gJmJ1bGw7IGNhY2hlZC4uLiAmYnVsbDsgbWluaWZpZWQuLi4gJmJ1bGw7IERpZCBJIG1lbnRpb24geW91IGNhbiB1c2Ugc21hcnR5IGluIHlvdXIgSlMgYW5kIENTUyBzY3JpcHQhISEhIC0gU2ltcGxlLCBmbGV4aWJsZSEnOyRsYW5nWyd3ZWxjb21lX3RleHQnXT0nPHA+SGVqITwvcD4nOyRsYW5nWydjaGFuZ2Vsb2cnXT0nPHVsPg0KDQogIDxsaT5WZXJzaW9uIDAuMSBCZXRhIHJlbGVhc2UuPC9saT4NCiAgPGxpPlZlcnNpb24gMC4yIGxvdHMgb2YgY2hhbmdlcyB0byBmaXggYnVnLi4uPC9saT4NCiAgIDxsaT5WZXJzaW9uIDAuMyBzZXQgdGhlIHNtYXJ0eSB0byB1c2Uge3sgfX08L2xpPg0KICAgIDxsaT5WZXJzaW9uIDAuNCBmaXhlZCBidWcuLiBpbXByb3ZlZCB0aGUgbWluaWFmY2F0aW9uIHRvIGEgc2F2ZXMgb2YgdXAgdG8gNjAlPC9saT4NCgk8bGk+VmVyc2lvbiAwLjcuMSBtYW55IGNoYW5nZXMuLi4gPHN0cm9uZz5CUkVBS1MgVVBHUkFERTwvc3Ryb25nPiBDb3B5IHNjcmlwdHMsIGluc3RhbGwgYW5kIHRoZSB1cGxvYWQgYW5kIHJlaW5zdGFsbC4uLiBTb3JyeSBidXQgaXQgd2FzIG5lZWRlZCBmb3IgVkVSU0lPTiBISVNUT1JZIGZpeGVkIGJ1Z3MuLiBtYW55IGltcHJvdmVtZW50czwvbGk+DQo8L3VsPic7JGxhbmdbJ2hlbHAnXT0nPGxpbmsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IGhyZWY9JnF1b3Q7Li4vbW9kdWxlcy9TY3JpcHREZXBsb3kvQ1NTL01hc3RlckNTUy5jc3MmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyByZWw9JnF1b3Q7c3R5bGVzaGVldCZxdW90Oy8+PGRpdiBjbGFzcz0mcXVvdDtTaW1XcmFwJnF1b3Q7PjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjEmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMiZxdW90Oz48L2I+PGIgY2xhc3M9JnF1b3Q7cjMmcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyNCZxdW90Oz48L2I+PC9iPg0KDQo8ZGl2IGNsYXNzPSZxdW90O1NpbWNvbiZxdW90Oz4gPGgzIGNsYXNzPSZxdW90O0JhY2tMaW5rJnF1b3Q7PjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+PDwgQmFjazwvYT48L2gzPg0KPGgxPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMT4NCjxoMj5Xcml0ZSBtYW5hZ2UgYW5kIGRlcGxveSBKUyBhbmQgQ1NTPC9oMj4NCjxhIGlkPSJTY3JpcHREZXBsb3kiPjwvYT4NCjxwPlNjcmlwdERlcGxveSBtb2R1bGUgdGhhdCBjYW4gY29tYmluZSBtdWx0aXBsZSBDU1Mgb3IgSmF2YXNjcmlwdCBmaWxlcywgY29tcHJlc3MgdGhlaXIgY29udGVudHMgKGkuZS4gcmVtb3ZhbCBvZiB1bm5lY2Vzc2FyeSB3aGl0ZXNwYWNlL2NvbW1lbnRzKSwgYW5kIHNlcnZlIHRoZSByZXN1bHRzIHdpdGggSFRUUCBlbmNvZGluZyAoZ3ppcC9kZWZsYXRlKSBhbmQgaGVhZGVycyB0aGF0IGFsbG93IG9wdGltYWwgY2xpZW50LXNpZGUgY2FjaGluZy4gVGhpcyBoZWxwcyB5b3UgZm9sbG93IHNldmVyYWwgb2YgWWFob28hJiMwMzk7cyA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9pbmRleC5odG1sI3J1bGVzIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+UnVsZXMgZm9yIEhpZ2ggUGVyZm9ybWFuY2UgV2ViIFNpdGVzPC9hPi4gKFNlZSAmcXVvdDtQcm9ibGVtIERvbWFpbiZxdW90OyBiZWxvdyBmb3IgbW9yZSBpbmZvLikgPC9wPg0KPGgzPlRoZSBTaG9ydCBvZiBpdDwvaDM+DQo8cD5XaXJ0ZSB5b3VyIHNjcmlwdHMsIHNldCB0aGUgb3JkZXIgYW5kIFNjcmlwdERlcGxveSB3aWxsIGRvIHRoZSByZXN0ITwvcD4NCjx0YWJsZT4NCiAgPHRib2R5Pg0KICAgIDx0cj4NCiAgICAgIDx0ZCBzdHlsZT0mcXVvdDtCT1JERVItUklHSFQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVJJR0hUOiA1cHg7IEJPUkRFUi1UT1A6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLUxFRlQ6IDVweDsgUEFERElORy1CT1RUT006IDVweDsgQk9SREVSLUxFRlQ6ICNhYWEgMXB4IHNvbGlkOyBQQURESU5HLVRPUDogNXB4OyBCT1JERVItQk9UVE9NOiAjYWFhIDFweCBzb2xpZCZxdW90Oz48c3Ryb25nPkJlZm9yZTwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9iZWZvcmUucG5nJnF1b3Q7IGFsdD0mcXVvdDthZnRlciZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PHN0cm9uZz5BZnRlcjwvc3Ryb25nPjwvdGQ+DQogICAgICA8dGQgc3R5bGU9JnF1b3Q7Qk9SREVSLVJJR0hUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1SSUdIVDogNXB4OyBCT1JERVItVE9QOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1MRUZUOiA1cHg7IFBBRERJTkctQk9UVE9NOiA1cHg7IEJPUkRFUi1MRUZUOiAjYWFhIDFweCBzb2xpZDsgUEFERElORy1UT1A6IDVweDsgQk9SREVSLUJPVFRPTTogI2FhYSAxcHggc29saWQmcXVvdDs+PGltZyBzcmM9JnF1b3Q7aHR0cDovL21yY2xheS5vcmcvd3AtY29udGVudC91cGxvYWRzLzIwMDgvMDkvZmlkZGxlcl9hZnRlci5wbmcmcXVvdDsgYWx0PSZxdW90O2JlZm9yZSZxdW90OyAvPjwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQoNCg0KDQo8aDI+PGEgaWQ9IkZlYXR1cmVzIj48L2E+RmVhdHVyZXM8L2gyPg0KPHVsPg0KICA8bGk+Q29tYmluZXMgYW5kIG1pbmlmaWVzIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIGludG8gYSBzaW5nbGUgICBkb3dubG9hZCA8L2xpPg0KICA8bGk+VXNlcyBhbiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9KU01pbi5waHAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5lbmhhbmNlZCBwb3J0PC9hPiBvZiBEb3VnbGFzIENyb2NrZm9yZCYjMDM5O3MgPGEgaHJlZj0iaHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQvanNtaW4uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkpTTWluICAgbGlicmFyeTwvYT4gYW5kIGN1c3RvbSBjbGFzc2VzIHRvIG1pbmlmeSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvbWluaWZ5L3NvdXJjZS9icm93c2UvdHJ1bmsvbWluL2xpYi9NaW5pZnkvQ1NTLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNTUzwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9taW5pZnkvc291cmNlL2Jyb3dzZS90cnVuay9taW4vbGliL01pbmlmeS9IVE1MLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkhUTUw8L2E+PC9saT4NCiAgPGxpPkNhY2hlcyBzZXJ2ZXItc2lkZSB0byBhdm9pZCBkb2luZyB1bm5lY2Vzc2FyeSB3b3JrIDwvbGk+DQogIDxsaT5SZXNwb25kcyB3aXRoIGFuIEhUVFAgMzA0IChOb3QgTW9kaWZpZWQpIHJlc3BvbnNlIHdoZW4gdGhlIGJyb3dzZXIgaGFzIGFuICAgdXAtdG8tZGF0ZSBjYWNoZSBjb3B5ICoqIDwvbGk+DQogIDxsaT5Nb3N0IG1vZHVsZXMgYXJlIGxhenktbG9hZGVkIGFzIG5lZWRlZCAoMzA0IHJlc3BvbnNlcyB1c2UgbWluaW1hbCBjb2RlKSAgKiogPC9saT4NCiAgPGxpPkF1dG9tYXRpY2FsbHkgcmV3cml0ZXMgcmVsYXRpdmUgVVJJcyBpbiBjb21iaW5lZCBDU1MgZmlsZXMgdG8gcG9pbnQgdG8gdmFsaWQgbG9jYXRpb25zIDwvbGk+DQogIDxsaT5XaXRoIGNhY2hpbmcgZW5hYmxlZCwgU2NyaXB0RGVwbG95IGlzIGNhcGFibGUgb2YgaGFuZGxpbmcgaHVuZHJlZHMgb2YgcmVxdWVzdHMgcGVyIHNlY29uZCBvbiBhIG1vZGVyYXRlbHkgcG93ZXJmdWwgc2VydmVyLiA8L2xpPg0KICA8bGk+Q29udGVudC1FbmNvZGluZzogZ3ppcCwgYmFzZWQgb24gcmVxdWVzdCBoZWFkZXJzLiBDYWNoaW5nIGFsbG93cyBpdCBzbyBzZXJ2ZSBnemlwcGVkIGZpbGVzIGZhc3RlciB0aGFuIEFwYWNoZSYjMDM5O3MgbW9kX2RlZmxhdGUgb3B0aW9uISA8L2xpPg0KPC91bD4NCjxoMz48ZW0+PHN0cm9uZz4qKiBOb3RlOjwvc3Ryb25nPiBJdCBpcyBiZXN0IHRvIHVzZSBhIC5odGFjY2VzcyBzY3JpcHQgdG8gc2V0IHRoZSBhZ2UgdGltZXMuIFNjcmlwdERlcGxveSBpcyBkZXNpZ25lZCBmb3IgZWZmaWNpZW5jeSwgYnV0IGZvciB2ZXJ5IGhpZ2ggdHJhZmZpYyBzaXRlcywgU2NyaXB0RGVwbG95IG1heSBzZXJ2ZSBmaWxlcyBzbG93ZXIgdGhhbiB5b3VyIEhUVFBkIGR1ZSB0byB0aGUgQ0dJIG92ZXJoZWFkIG9mIFBIUC4gIFRvIG92ZXIgY29tZSB0aGlzIEp1c3QgY2hlY2sgJnF1b3Q7dXNlIC5odGFjY2VzcyBpbiBvcHRpb25zJnF1b3Q7PC9lbT48L2gzPg0KPGgyPjxhIG5hbWU9IlJlcXVpcmVtZW50cyI+PC9hPlJlcXVpcmVtZW50czwvaDI+DQo8dWw+DQogIDxsaT5UaGUgY29tbW9ubHkgaW5zdGFsbGVkIDxhIGhyZWY9Imh0dHA6Ly91czMucGhwLm5ldC9tYW51YWwvZW4vemxpYi5pbnN0YWxsYXRpb24ucGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+emxpYiAgIGV4dGVuc2lvbjwvYT4gaXMgcmVjb21tZW5kZWQgZm9yIEhUVFAgZW5jb2RpbmcgZnVuY3Rpb25hbGl0eS4gPC9saT4NCjwvdWw+DQo8YnIvPjxici8+DQo8aDE+SG93IERvIEkgVXNlIEl0PC9oMT4NCg0KDQo8aDM+R2V0IGEgc2luZ2xlIHNjcmlwdDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IHNjcmlwdElEPSZxdW90OzEmcXVvdDt9IDwvc3Bhbj4gPGJyLz48YnIvPg0KPGgzPkdldCBhIHNjcmlwdCBncm91cDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9JnF1b3Q7Y29kZUhJR0hMSUdIVCZxdW90Oz57Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9JnF1b3Q7MSZxdW90O30gPC9zcGFuPiA8YnIvPjxici8+DQo8aDI+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gyPg0KDQo8YnIvPjxici8+DQo8aDQ+UGFyYW1zPC9oND4NCjx1bD4NCjxsaT48c3Ryb25nPnNjcmlwdElEPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkL29wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgZ3JvdXBJRCBub3QgY2FsbGVkPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+Z3JvdXBJRD0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC9vcHRpb25hbCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBJRCBSZXF1aXJlZCBvbmx5IGlmIHNjcmlwdElEIG5vdCBjYWxsZWQ8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5TdHlwZT0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihSZXF1aXJlZC8pIEpTL0NTUzwvZW0+IDxici8+fCBzZXQgdGhlIElEIFJlcXVpcmVkIG9ubHkgaWYgc2NyaXB0SUQgbm90IGNhbGxlZDxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+U21hcnR5T249JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0Om51bGw8L3N0cm9uZz48L2VtPiA8YnIvPnwgVGhpcyBsZXRzIHlvdSBvdmVyIHJpZGUgdGhlIGdsb2JsZXM8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5NaW5pZnk9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpIHRydWUvZmFsc2UgPHN0cm9uZz5EZWZhdWx0OnRydWU8L3N0cm9uZz48L2VtPiA8YnIvPnwgIFRoaXMgbGV0cyB5b3Ugb3ZlciByaWRlIHRoZSBnbG9ibGVzPGJyLz48L2xpPg0KDQoNCg0KDQoNCg0KPGxpPjxzdHJvbmc+TWVkaWFUeXBlPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBzZXQgTWVkaWEgdHlwZSBmb3IgQ1NTIGZpbGVzIGhlcmUuLi4gb3ZlcnJpZGVzIGRiIHNldGluZ3MuPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+aW1wb3J0PSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKSB0cnVlL2ZhbHNlPC9lbT4gPGJyLz58IHNldCB0aGUgaW5jbHVzaW9uIHN0eWxlIGZvciBDU1MgZmlsZXMgaGVyZS4uLiBvdmVycmlkZXMgZGIgc2V0aW5ncy4gRXg6IHRydWUgIGdpdmVzIDxzdHlsZSB0eXBlPVwmcXVvdDt0ZXh0L2Nzc1wmcXVvdDs+QGltcG9ydCB1cmwoJnF1b3Q7dXJsL2Nzc2ZpbGUuY3NzJnF1b3Q7KSBzY3JlZW47PC9zdHlsZT48YnIvPjwvbGk+DQoNCjxsaT48c3Ryb25nPmNhY2hlQnVzdGVyPC9zdHJvbmc+IDxlbT4ob3B0aW9uYWwpIDxzdHJvbmc+RGVmYXVsdDpmYWxzZTwvc3Ryb25nPjwvZW0+PGJyLz58IFRoaXMgaXMgdG8gaW5zdGFudGx5IHVuY2FjaGUgYW4gc2NyaXB0IG9uIHRoZSBjbGllbnQgc2lkZSBhZnRlciBhIG5ldyB1cGxvYWRlZCBzY3JpcHQgaXMgY3JlYXRlZC4uLiBpZTogMTIuanM/MTI1NTIyNTAwNyAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KCB0cnVlL2ZhbHNlICk8L3N0cm9uZz48L2ZvbnQ+PC9saT4NCjxsaT48c3Ryb25nPmFzc2lnbj0mcXVvdDsmcXVvdDsgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgQXNzaWduIHRoZSBvdXRwdXQgKHJldHVybiB0aGUgc21hcnR5IGFzc2lnbm1lbnQpICBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCBvdXQgd2l0aG91dCBVUkw8L2xpPg0KPGxpPjxzdHJvbmc+ZnNpemU9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGdldCB0aGUgc2l6ZTwvbGk+DQo8bGk+PHN0cm9uZz5yb290VXJsPSZxdW90OyZxdW90OyA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBTY3JpcHREZXBsb3kgY3JlYXRlcyBhIHRlbXAgZGlyZWN0b3IgaW4gdGhlIHVwbG9hZCBmb2xkZXIuICBJZiB5b3UgbW92ZSB0aGUgcGF0aCB0byB0aGUgdXBsYW9kIHRvIGEgc3ViZG9tYWluIHlvdSBtYXkgZ3VpZGUgdGhlIG91dHB1dCB3aXRoIHRoaXMuPC9saT4NCiAgICAgICAgPHVsIHN0eWxlPSZxdW90O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyZxdW90Oz48bGk+PHN0cm9uZz5FeGFwbWxlOjwvc3Ryb25nPiB5b3UgY2hhbmdlZCA8Q09ERT4kY29uZmlnWyYjMDM5O3VwbG9hZHNfcGF0aCYjMDM5O10gPSAmIzAzOTsvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9odHRwZG9jcy91cGxvYWRzJiMwMzk7OzwvQ09ERT4gPC9saT4NCiAgICAgICAgICAgIDxsaT48c3Ryb25nPnRvPC9zdHJvbmc+IDxDT0RFPiRjb25maWdbJiMwMzk7dXBsb2Fkc19wYXRoJiMwMzk7XSA9IFwvdmFyL3d3dy92aG9zdHMvZG9tYWluLm9yZy9zdWJkb21haW5zL21lZGlhL2h0dHBkb2NzL3VwbG9hZHMmIzAzOTs7PC9DT0RFPjwvbGk+DQogICAgICAgICAgICA8bGk+bm93IHRoZSB1cGxvYWRzIHVybCB3b3VsZCBub3Qgd29yayBhcyBpdCB3b3VsZCBiZSA8dT5odHRwOi8vd3d3LmRvbWFpbi5vcmcvdXBsb2FkczwvdT48L2xpPg0KICAgICAgICAgICAgPGxpPjxzdHJvbmc+U288L3N0cm9uZz4gaXQgY2FuIGJlIGNoYW5nZWQgaGVyZSB0byA8dT5odHRwOi8vbWVkaWEuZG9tYWluLm9yZy91cGxvYWRzPC91PiAgPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxzdHJvbmc+KE5PVEU6IHdhdGNoIHlvdXIgLyApPC9zdHJvbmc+PC9mb250PjwvbGk+DQogICAgICAgIDwvdWw+DQo8bGk+PHN0cm9uZz5VUkw9JnF1b3Q7JnF1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58b3V0cHV0cyB0aGUgdXJsLjwvbGk+DQoNCg0KDQoNCgkJDQoNCg0KDQoNCg0KDQoNCg0KPCEtLTxsaT48c3Ryb25nPlNhbmRCb3g9dHJ1ZSA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBmYWxzZTxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+UlVOYWN0aW9uPSZhbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCBVUkwgPGVtPiguLi9wbHVnaW5zL2Z1bmN0aW9uLmZpbGVuYW1lLnBocCk8L2VtPjxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSZhbXA7YW1wO2FtcDthbXA7cXVvdDsmYW1wO2FtcDthbXA7YW1wO3F1b3Q7IDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4tLT4NCg0KPC91bD4NCjxici8+DQoNCjxici8+PGJyLz4NCjxoMj48YSBpZD0iUHJvYmxlbV9Eb21haW4iPjwvYT5Qcm9ibGVtIERvbWFpbjwvaDI+DQo8cD5QYWdlcyB0aGF0IHJlZmVyIHRvIG11bHRpcGxlIENTUyBvciBKYXZhU2NyaXB0IGZpbGVzIG9mdGVuIHN1ZmZlciBmcm9tIHNsb3dlciAgIHBhZ2UgbG9hZHMsIGR1ZSB0byB0aGUgYnJvd3NlciByZXF1ZXN0aW5nIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkuIE1hbnkgYnJvd3NlcnMgICBhbHNvIGFyZSBsaW1pdGVkIHRvIGEgZmV3IHNpbXVsdGFuZW91cyByZXF1ZXN0cyBwZXIgZG9tYWluLiBUaGUgd2FpdCBmb3IgYSAgIHNlcmllcyBvZiByZXF1ZXN0cyBhbmQgdGhlIHRyYW5zZmVyIG9mIHVub3B0aW1pemVkIGZpbGVzIGNhbiBkcmFtYXRpY2FsbHkgcmVkdWNlICAgdGhlIGNsaWVudC1zaWRlIHBlcmZvcm1hbmNlIG9mIHlvdXIgc2l0ZS4gPC9wPg0KPHA+SGVyZSBhcmUgYSBoYW5kZnVsIG9mIFlhaG9vISYjMDM5O3MgYmVzdCBwcmFjdGljZXMgdGhhdCBhcmUgYWRkcmVzc2VkIGJ5IHRoZSB1c2Ugb2YgU2NyaXB0RGVwbG95LiA8L3A+DQo8dWw+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI251bV9odHRwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWFrZSBGZXdlciBIVFRQIFJlcXVlc3RzPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2V4cGlyZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5BZGQgYW4gRXhwaXJlcyBvciBhIENhY2hlLUNvbnRyb2wgSGVhZGVyPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9wZXJmb3JtYW5jZS9ydWxlcy5odG1sI2d6aXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5HemlwIENvbXBvbmVudHM8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3BlcmZvcm1hbmNlL3J1bGVzLmh0bWwjbWluaWZ5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+TWluaWZ5IEphdmFTY3JpcHQgYW5kIENTUzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCNldGFncyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPkNvbmZpZ3VyZSBFVGFnczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci55YWhvby5jb20vcGVyZm9ybWFuY2UvcnVsZXMuaHRtbCN1bmRlcjI1IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+S2VlcCBDb21wb25lbnRzIHVuZGVyIDI1SzwvYT48L2xpPg0KPC91bD4NCjxoMz48YSBuYW1lPSJBY2tub3dsZWRnbWVudHMiPjwvYT5BY2tub3dsZWRnbWVudHM8L2gzPg0KPHA+TWluaWZ5IHdhcyBpbnNwaXJlZCBieSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNjc3Njb21wLyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciPmpzY3NzY29tcDwvYT4gYnkgTWF4aW0gTWFydHlueXVrIGFuZCBieSB0aGUgYXJ0aWNsZSAmIzAzOTs8YSBocmVmPSJodHRwOi8vd3d3Lmh1bmxvY2suY29tL2Jsb2dzL1N1cGVyY2hhcmdlZF9KYXZhc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+U3VwZXJjaGFyZ2VkIEphdmFTY3JpcHQ8L2E+JiMwMzk7IGJ5IFBhdHJpY2sgSHVubG9jay4gPC9wPg0KPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3JvY2tmb3JkLmNvbS9qYXZhc2NyaXB0L2pzbWluLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij5KU01pbiBsaWJyYXJ5PC9hPiB1c2VkIGZvciBKYXZhU2NyaXB0IG1pbmlmaWNhdGlvbiB3YXMgb3JpZ2luYWxseSAgIHdyaXR0ZW4gYnkgRG91Z2xhcyBDcm9ja2ZvcmQgYW5kIHdhcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvanNtaW4tcGhwIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub2ZvbGxvdyI+cG9ydGVkIHRvIFBIUDwvYT4gYnkgUnlhbiAgIEdyb3ZlIHNwZWNpZmljYWxseSBmb3IgdXNlIGluIE1pbmlmeS4gPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3BwYm0iPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyA8PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+PiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8c3Ryb25nPlN1cHBvcnQgbW9yZSBtb2RzIGxpa2UgdGhpczo8L3N0cm9uZz48Zm9ybSBhY3Rpb249JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciZxdW90OyBtZXRob2Q9JnF1b3Q7cG9zdCZxdW90Oz4NCjxpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2NtZCZxdW90OyB2YWx1ZT0mcXVvdDtfcy14Y2xpY2smcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtob3N0ZWRfYnV0dG9uX2lkJnF1b3Q7IHZhbHVlPSZxdW90Ozg4MTc2NzUmcXVvdDs+DQo8aW5wdXQgdHlwZT0mcXVvdDtpbWFnZSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fZG9uYXRlX0xHLmdpZiZxdW90OyBib3JkZXI9JnF1b3Q7MCZxdW90OyBuYW1lPSZxdW90O3N1Ym1pdCZxdW90OyBhbHQ9JnF1b3Q7UGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5IHRvIHBheSBvbmxpbmUhJnF1b3Q7Pg0KPGltZyBhbHQ9JnF1b3Q7JnF1b3Q7IGJvcmRlcj0mcXVvdDswJnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiZxdW90OyB3aWR0aD0mcXVvdDsxJnF1b3Q7IGhlaWdodD0mcXVvdDsxJnF1b3Q7Pg0KPC9mb3JtPjxici8+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPC9kaXYgPjxiIGNsYXNzPSZxdW90O3Jib3R0b20mcXVvdDs+PGIgY2xhc3M9JnF1b3Q7cjQmcXVvdDs+PC9iPjxiIGNsYXNzPSZxdW90O3IzJnF1b3Q7PjwvYj4gPGIgY2xhc3M9JnF1b3Q7cjImcXVvdDs+PC9iPiA8YiBjbGFzcz0mcXVvdDtyMSZxdW90Oz48L2I+PC9iPg0KDQo8L2Rpdj4NCic7JGxhbmdbJ3V0bWEnXT0nMTU2ODYxMzUzLjkwNjA1MjY0Mi4xMjY3ODM1NzM0LjEyODA0MjQ5OTAuMTI4MDQ0MTE1OS4xNDgnOyRsYW5nWyd1dG16J109JzE1Njg2MTM1My4xMjgwNDI0OTkwLjE0Ny45LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOyRsYW5nWydxY2EnXT0nUDAtMTYwNTE4MzA3MC0xMjY3ODM1NzMzODY1JzskbGFuZ1sndXRtYyddPScxNTY4NjEzNTMnOyRsYW5nWyd1dG1iJ109JzE1Njg2MTM1Myc7ID8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.adminHeaderScripts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgYWRtaW5IZWFkZXJTY3JpcHRzIGV4dGVuZHMgU2NyaXB0RGVwbG95e2Z1bmN0aW9uIGpzTmNzcygkcGFja2FnZT0nJyl7JGRpcj1jbXNtcygpLT5jb25maWdbJ3Jvb3RfdXJsJ107JGFIUz1uZXcgYWRtaW5IZWFkZXJTY3JpcHRzKCk7JHVpVGhlbWVjaG9pY2U9YXJyYXkoJ2JsYWNrLXRpZScsJ3VpLWRhcmtuZXNzJywndWktbGlnaHRuZXNzJywnYmxhY2stdGllJywnYmxpdHplcicsJ2N1cGVydGlubycsJ2RhcmstaGl2ZScsJ2RvdC1sdXYnLCdlZ2dwbGFudCcsJ2V4Y2l0ZS1iaWtlJywnZmxpY2snLCdob3Qtc25lYWtzJywnaHVtYW5pdHknLCdsZS1mcm9nJywnbWludC1jaG9jJywnb3ZlcmNhc3QnLCdwZXBwZXItZ3JpbmRlcicsJ3JlZG1vbmQnLCdzbW9vdGhuZXNzJywnc291dGgtc3RyZWV0Jywnc3RhcnQnLCdzdW5ueScsJ3N3YW5reS1wdXJzZScsJ3Ryb250YXN0aWMnLCd2YWRlcicpOyR1aVRoZW1lY2hvaWNlPSdyZWRtb25kJzskZWRpdG9yVGhlbWU9J2RlZmF1bHQnOyRhSFNfU1U9bmV3IGFkbWluSGVhZGVyU2NyaXB0c19TVSgpOyRtYXN0ZXJMaWJzPSRhSFNfU1UtPmpzQWRtaW5MaWJzKHVpVGhlbWVjaG9pY2VfbW9kdWxlX1BNKTtyZXR1cm4iDQoNCiRtYXN0ZXJMaWJzDQoNCg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9TRF9KU19WQVJTLmpzJz48L3NjcmlwdD4NCg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvanF1ZXJ5LmVhc2luZy4xLjMuanMnPjwvc2NyaXB0PgkNCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL2pxdWVyeS5jb29raWUuanMnPjwvc2NyaXB0Pg0KDQo8bGluayBtZWRpYT0nc2NyZWVuJyBocmVmPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L0NTUy9NYXN0ZXJDU1MuY3NzJyB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyAvPg0KPGxpbmsgbWVkaWE9J3NjcmVlbicgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9DU1Mvc3R5bGUuY3NzJyB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyAvPg0KDQoNCjwhLS0gdXRpbGl0aWVzIC0tPg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvdXRpbGl0aWVzLmpzJz48L3NjcmlwdD4NCg0KPGxpbmsgbWVkaWE9J3NjcmVlbicgaHJlZj0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvanF1ZXJ5RmlsZVRyZWUuY3NzJyB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyAvPg0KPGxpbmsgbWVkaWE9J3NjcmVlbicgaHJlZj0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2pxdWVyeS50YWJsZXNvcnRlci5wYWdlci5jc3MnIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIC8+DQoNCg0KDQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy90b29sdGlwLmpzJz48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL3plcm9jbGlwYm9hcmQvWmVyb0NsaXBib2FyZC5qcyc+PC9zY3JpcHQ+IA0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvanF1ZXJ5LmNvbG9yYm94LW1pbi5qcyc+PC9zY3JpcHQ+DQo8IS0tICAtLT48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9zaG9ydGN1dC5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9qcXVlcnkudGV4dGFyZWEuanMnPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvanF1ZXJ5LnNjcm9sbFRvLW1pbi5qcyc+PC9zY3JpcHQ+DQoNCg0KDQoNCjwhLS0gZGlzcGxheSAtLT4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TaXRlVXRpbGl0aWVzL2luY2x1ZGVzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanMnPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NpdGVVdGlsaXRpZXMvaW5jbHVkZXMvYWRkb25zL3BhZ2VyL2pxdWVyeS50YWJsZXNvcnRlci5wYWdlci5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9qcXVlcnkudXBsb2FkLTEuMC4yLm1pbi5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2l0ZVV0aWxpdGllcy9pbmNsdWRlcy9qcXVlcnlGaWxlVHJlZS5qcyc+PC9zY3JpcHQ+DQoNCjwhLS0gZWRpdG9yDQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL0NvZGVNaXJyb3IvanMvY29kZW1pcnJvci5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL0NvZGVNaXJyb3IvanMvbWlycm9yZnJhbWUuanMnPjwvc2NyaXB0Pg0KIC0tPg0KDQo8c2NyaXB0IHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2xpYi9jb2RlbWlycm9yLmpzJz48L3NjcmlwdD4NCjwhLS08c2NyaXB0IHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2xpYi9vdmVybGF5LmpzJz48L3NjcmlwdD4tLT4NCjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2xpYi9jb2RlbWlycm9yLmNzcyc+DQoNCjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL3RoZW1lLyRlZGl0b3JUaGVtZS5jc3MnPg0KDQo8c2NyaXB0IHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL21vZGUveG1sL3htbC5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL21vZGUvamF2YXNjcmlwdC9qYXZhc2NyaXB0LmpzJz48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL0NvZGVNaXJyb3IvbW9kZS9jc3MvY3NzLmpzJz48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL0NvZGVNaXJyb3IvbW9kZS9odG1sbWl4ZWQvaHRtbG1peGVkLmpzJz48L3NjcmlwdD4NCg0KPCEtLTxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2Nzcy9jc3Njb2xvcnMuY3NzJz4NCjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2Nzcy9qc2NvbG9ycy5jc3MnPi0tPg0Ke2xpdGVyYWx9PHN0eWxlPi5hY3RpdmVsaW5le2JhY2tncm91bmQtY29sb3I6ICNDRUVDRjggIWltcG9ydGFudDt9PC9zdHlsZT57L2xpdGVyYWx9DQo8IS0tIFNEIHNjcmlwdHMgLS0+DQoNCg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9jdXN0b21falF1ZXJ5UGx1Z2lucy5qcyc+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSckZGlyL21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL2FqYXhfZnVuY3Rpb25zLmpzJz48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvdXNlcl9jb250cm9sbGVyLmpzJz48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyRkaXIvbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvZGlhbG9nc19pbmkuanMnPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9lZGl0b3JfZnVuY3Rpb24uanMnPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9zY3JpcHRfZnVuY3Rpb24uanMnPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9VSV9jb250cm9sbGVycy5qcyc+PC9zY3JpcHQ+DQoNCg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nJGRpci9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9pbml0LmpzJz48L3NjcmlwdD4NCg0KDQoNCiIuJGFIUy0+YnVpbGRBamF4SlMoKS4kYUhTLT5idWlsZHRhYmxlSlMoJ0lTTycpLiIiO31mdW5jdGlvbiBidWlsZEFqYXhKUygpeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskZGI9Y21zbXMoKS0+R2V0RGIoKTskZGlyPWNtc21zKCktPmNvbmZpZ1sncm9vdF91cmwnXTskQWRtaW5kaXI9JGRpci4nLycuY21zbXMoKS0+Y29uZmlnWydhZG1pbl9kaXInXTskdXNlRWRpdG9yPSRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZUVkaXRvcicsMSk7JGVkaXRvckhlaWdodD0kbW9kLT5HZXRQcmVmZXJlbmNlKCdlZGl0b3JIZWlnaHQnLCcnKTtpZigkZWRpdG9ySGVpZ2h0PT0wfHwkZWRpdG9ySGVpZ2h0PT0nJyl7JGVkaXRvckhlaWdodD0nZHluYW1pYyc7fSRsYW5ndWFnZT0nZW4nOyR1c2VyaWQ9Z2V0X3VzZXJpZChmYWxzZSk7aWYoJHVzZXJpZCE9JycpeyRsYW5ndWFnZT1zdWJzdHIoZ2V0X3ByZWZlcmVuY2UoJHVzZXJpZCwnZGVmYXVsdF9jbXNfbGFuZ3VhZ2UnKSwwLDIpO30kdT1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygpOyR1SUQ9JHVbJ1VzZXJpZCddO29iX3N0YXJ0KCk7ID8+DQogICAgICAgICAgICAgICAgDQp7bGl0ZXJhbH0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIENNU01TIGRlcGVuZGVkIFZhcnMNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnZhciBVSUQ9PD9waHAgZWNobyAkdUlEICA/PjsNCnZhciBTSUQ9Jyc7DQp2YXIgTU9EVUxFPSdTY3JpcHRfZGVwbG95JzsNCnZhciBzeW50YXhfaXM9ImNzcyI7DQp2YXIgVGlwPSJ0aXBfZ2VuZXJhbF9ncm91cGluZyI7DQp2YXIgdXNlRWRpdG9yPTw/cGhwIGVjaG8gJHVzZUVkaXRvciAgPz47DQp2YXIgZWRpdG9ySGVpZ2h0PSc8P3BocCBlY2hvICRlZGl0b3JIZWlnaHQgID8+JzsNCnZhciBDTVNfVVNFUl9LRVkgPSAnPD9waHAgZWNobyAkX1NFU1NJT05bQ01TX1VTRVJfS0VZXSA/Pic7DQp2YXIgQ01TX1NFQ1VSRV9QQVJBTV9OQU1FID0gJzw/cGhwIGVjaG8gQ01TX1NFQ1VSRV9QQVJBTV9OQU1FICA/Pic7DQp2YXIgQWRtaW5kaXIgPSAnPD9waHAgZWNobyAkQWRtaW5kaXIgID8+JzsNCnZhciBkaXIgPSAnPD9waHAgZWNobyAkZGlyICA/Pic7DQp2YXIgdXBsb2Fkc191cmwgPSAnPD9waHAgZWNobyBjbXNtcygpLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10gPz4nOw0KdmFyIHBhZ2VfZXh0ZW5zaW9uID0gJzw/cGhwIGVjaG8gY21zbXMoKS0+Y29uZmlnWydwYWdlX2V4dGVuc2lvbiddID8+JzsNCnZhciByZWxvYWRpbmcgPSAnPD9waHAgZWNobyAkbW9kLT5MYW5nKCdyZWxvYWRfYWxlcnQnKTsgPz4nOw0KdmFyIGxhbmcgPSAnPD9waHAgZWNobyAkbGFuZ3VhZ2UgID8+JzsNCnZhciBQSGVpZ2h0PTUwMDsNCnZhciBQV2lkdGg9NjUwOw0KdmFyIFB0b3A9NTA7DQp2YXIgUGxlZnQ9NTA7DQp2YXIgcHJldmlld1VybCA9ICc8P3BocCBlY2hvICRkaXIgID8+JzsNCg0KDQp2YXIgUHJldmlldz10cnVlOw0KDQo8L3NjcmlwdD4gDQp7L2xpdGVyYWx9DQp7KiAgDQo8P3BocCBpZigkdXNlRWRpdG9yKXsgPz4NCntjbXNfbW9kdWxlIG1vZHVsZT0nU2NyaXB0RGVwbG95JyBwYXRoPSI8P3BocCBlY2hvICRkaXIgID8+L21vZHVsZXMvU2NyaXB0RGVwbG95L2luY2x1ZGVzL0NvZGVNaXJyb3IvanMvY29kZW1pcnJvci5qcyJ9DQp7Y21zX21vZHVsZSBtb2R1bGU9J1NjcmlwdERlcGxveScgcGF0aD0iPD9waHAgZWNobyAkZGlyICA/Pi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbmNsdWRlcy9Db2RlTWlycm9yL2pzL21pcnJvcmZyYW1lLmpzIn0NCjw/cGhwIH0gPz4NCg0Ke2Ntc19tb2R1bGUgbW9kdWxlPSdTY3JpcHREZXBsb3knIHBhdGg9Ijw/cGhwIGVjaG8gJGRpciAgPz4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW5jbHVkZXMvaW5pdC5qcyJ9DQoqfQ0KICAgICAgICAgICAgICAgIDw/cGhwICRpbnB1dD1vYl9nZXRfY29udGVudHMoKTtvYl9lbmRfY2xlYW4oKTtyZXR1cm4gJGlucHV0O31mdW5jdGlvbiBidWlsZHRhYmxlSlMoJFRSKXtvYl9zdGFydCgpOyA/Pg0Ke2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgDQo8L3NjcmlwdD57L2xpdGVyYWx9DQoJCTw/cGhwICRpbnB1dD1vYl9nZXRfY29udGVudHMoKTtvYl9lbmRfY2xlYW4oKTtyZXR1cm4gJGlucHV0O319ID8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.csstidy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgcmVxdWlyZSgnZGF0YS5pbmMucGhwJyk7cmVxdWlyZSgnY2xhc3MuY3NzdGlkeV9wcmludC5waHAnKTtyZXF1aXJlKCdjbGFzcy5jc3N0aWR5X29wdGltaXNlLnBocCcpO2NsYXNzIGNzc3RpZHl7dmFyICRjc3M9YXJyYXkoKTt2YXIgJHRva2Vucz1hcnJheSgpO3ZhciAkcHJpbnQ7dmFyICRvcHRpbWlzZTt2YXIgJGNoYXJzZXQ9Jyc7dmFyICRpbXBvcnQ9YXJyYXkoKTt2YXIgJG5hbWVzcGFjZT0nJzt2YXIgJHZlcnNpb249JzEuMyc7dmFyICRzZXR0aW5ncz1hcnJheSgpO3ZhciAkc3RhdHVzPSdpcyc7dmFyICRhdD0nJzt2YXIgJHNlbGVjdG9yPScnO3ZhciAkcHJvcGVydHk9Jyc7dmFyICRzZWxfc2VwYXJhdGU9YXJyYXkoKTt2YXIgJHZhbHVlPScnO3ZhciAkc3ViX3ZhbHVlPScnO3ZhciAkc3ViX3ZhbHVlX2Fycj1hcnJheSgpO3ZhciAkc3RyX2NoYXI9Jyc7dmFyICRjdXJfc3RyaW5nPScnO3ZhciAkZnJvbT0nJzt2YXIgJHN0cl9pbl9zdHI9ZmFsc2U7dmFyICRpbnZhbGlkX2F0PWZhbHNlO3ZhciAkYWRkZWQ9ZmFsc2U7dmFyICRsb2c9YXJyYXkoKTt2YXIgJGxpbmU9MTtmdW5jdGlvbiBjc3N0aWR5KCl7JHRoaXMtPnNldHRpbmdzWydyZW1vdmVfYnNsYXNoJ109dHJ1ZTskdGhpcy0+c2V0dGluZ3NbJ2NvbXByZXNzX2NvbG9ycyddPXRydWU7JHRoaXMtPnNldHRpbmdzWydjb21wcmVzc19mb250LXdlaWdodCddPXRydWU7JHRoaXMtPnNldHRpbmdzWydsb3dlcmNhc2VfcyddPWZhbHNlOyR0aGlzLT5zZXR0aW5nc1snb3B0aW1pc2Vfc2hvcnRoYW5kcyddPTE7JHRoaXMtPnNldHRpbmdzWydyZW1vdmVfbGFzdF87J109ZmFsc2U7JHRoaXMtPnNldHRpbmdzWydjYXNlX3Byb3BlcnRpZXMnXT0xOyR0aGlzLT5zZXR0aW5nc1snc29ydF9wcm9wZXJ0aWVzJ109ZmFsc2U7JHRoaXMtPnNldHRpbmdzWydzb3J0X3NlbGVjdG9ycyddPWZhbHNlOyR0aGlzLT5zZXR0aW5nc1snbWVyZ2Vfc2VsZWN0b3JzJ109MjskdGhpcy0+c2V0dGluZ3NbJ2Rpc2NhcmRfaW52YWxpZF9wcm9wZXJ0aWVzJ109ZmFsc2U7JHRoaXMtPnNldHRpbmdzWydjc3NfbGV2ZWwnXT0nQ1NTMi4xJzskdGhpcy0+c2V0dGluZ3NbJ3ByZXNlcnZlX2NzcyddPWZhbHNlOyR0aGlzLT5zZXR0aW5nc1sndGltZXN0YW1wJ109ZmFsc2U7JHRoaXMtPmxvYWRfdGVtcGxhdGUoJ2RlZmF1bHQnKTskdGhpcy0+cHJpbnQ9bmV3IGNzc3RpZHlfcHJpbnQoJHRoaXMpOyR0aGlzLT5vcHRpbWlzZT1uZXcgY3NzdGlkeV9vcHRpbWlzZSgkdGhpcyk7fWZ1bmN0aW9uIGdldF9jZmcoJHNldHRpbmcpe2lmKGlzc2V0KCR0aGlzLT5zZXR0aW5nc1skc2V0dGluZ10pKXtyZXR1cm4gJHRoaXMtPnNldHRpbmdzWyRzZXR0aW5nXTt9cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBzZXRfY2ZnKCRzZXR0aW5nLCR2YWx1ZSl7aWYoaXNzZXQoJHRoaXMtPnNldHRpbmdzWyRzZXR0aW5nXSkmJiR2YWx1ZSE9PScnKXskdGhpcy0+c2V0dGluZ3NbJHNldHRpbmddPSR2YWx1ZTtyZXR1cm4gdHJ1ZTt9cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBfYWRkX3Rva2VuKCR0eXBlLCRkYXRhLCRkbz1mYWxzZSl7aWYoJHRoaXMtPmdldF9jZmcoJ3ByZXNlcnZlX2NzcycpfHwkZG8peyR0aGlzLT50b2tlbnNbXT1hcnJheSgkdHlwZSwoJHR5cGU9PUNPTU1FTlQpPyRkYXRhOnRyaW0oJGRhdGEpKTt9fWZ1bmN0aW9uIGxvZygkbWVzc2FnZSwkdHlwZSwkbGluZT0tMSl7aWYoJGxpbmU9PT0tMSl7JGxpbmU9JHRoaXMtPmxpbmU7fSRsaW5lPWludHZhbCgkbGluZSk7JGFkZD1hcnJheSgnbSc9PiRtZXNzYWdlLCd0Jz0+JHR5cGUpO2lmKCFpc3NldCgkdGhpcy0+bG9nWyRsaW5lXSl8fCFpbl9hcnJheSgkYWRkLCR0aGlzLT5sb2dbJGxpbmVdKSl7JHRoaXMtPmxvZ1skbGluZV1bXT0kYWRkO319ZnVuY3Rpb24gX3VuaWNvZGUoJiRzdHJpbmcsJiRpKXsrKyRpOyRhZGQ9Jyc7JHRva2Vucz0mJEdMT0JBTFNbJ2Nzc3RpZHknXVsndG9rZW5zJ107JHJlcGxhY2VkPWZhbHNlO3doaWxlKCRpPHN0cmxlbigkc3RyaW5nKSYmKGN0eXBlX3hkaWdpdCgkc3RyaW5neyRpfSl8fGN0eXBlX3NwYWNlKCRzdHJpbmd7JGl9KSkmJnN0cmxlbigkYWRkKTw2KXskYWRkLj0kc3RyaW5neyRpfTtpZihjdHlwZV9zcGFjZSgkc3RyaW5neyRpfSkpe2JyZWFrO30kaSsrO31pZihoZXhkZWMoJGFkZCk+NDcmJmhleGRlYygkYWRkKTw1OHx8aGV4ZGVjKCRhZGQpPjY0JiZoZXhkZWMoJGFkZCk8OTF8fGhleGRlYygkYWRkKT45NiYmaGV4ZGVjKCRhZGQpPDEyMyl7JHRoaXMtPmxvZygnUmVwbGFjZWQgdW5pY29kZSBub3RhdGlvbjogQ2hhbmdlZCBcXCcuJGFkZC4nIHRvICcuY2hyKGhleGRlYygkYWRkKSksJ0luZm9ybWF0aW9uJyk7JGFkZD1jaHIoaGV4ZGVjKCRhZGQpKTskcmVwbGFjZWQ9dHJ1ZTt9ZWxzZXskYWRkPXRyaW0oJ1xcJy4kYWRkKTt9aWYoQGN0eXBlX3hkaWdpdCgkc3RyaW5neyRpKzF9KSYmY3R5cGVfc3BhY2UoJHN0cmluZ3skaX0pJiYhJHJlcGxhY2VkfHwhY3R5cGVfc3BhY2UoJHN0cmluZ3skaX0pKXskaS0tO31pZigkYWRkIT0nXFwnfHwhJHRoaXMtPmdldF9jZmcoJ3JlbW92ZV9ic2xhc2gnKXx8c3RycG9zKCR0b2tlbnMsJHN0cmluZ3skaSsxfSkhPT1mYWxzZSl7cmV0dXJuICRhZGQ7fWlmKCRhZGQ9PSdcXCcpeyR0aGlzLT5sb2coJ1JlbW92ZWQgdW5uZWNlc3NhcnkgYmFja3NsYXNoJywnSW5mb3JtYXRpb24nKTt9cmV0dXJuICcnO31mdW5jdGlvbiBsb2FkX3RlbXBsYXRlKCRjb250ZW50LCRmcm9tX2ZpbGU9dHJ1ZSl7JHByZWRlZmluZWRfdGVtcGxhdGVzPSYkR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddO2lmKCRjb250ZW50PT0naGlnaF9jb21wcmVzc2lvbid8fCRjb250ZW50PT0nZGVmYXVsdCd8fCRjb250ZW50PT0naGlnaGVzdF9jb21wcmVzc2lvbid8fCRjb250ZW50PT0nbG93X2NvbXByZXNzaW9uJyl7JHRoaXMtPnRlbXBsYXRlPSRwcmVkZWZpbmVkX3RlbXBsYXRlc1skY29udGVudF07cmV0dXJuO31pZigkZnJvbV9maWxlKXskY29udGVudD1zdHJpcF90YWdzKGZpbGVfZ2V0X2NvbnRlbnRzKCRjb250ZW50KSwnPHNwYW4+Jyk7fSRjb250ZW50PXN0cl9yZXBsYWNlKCJcclxuIiwiXG4iLCRjb250ZW50KTskdGVtcGxhdGU9ZXhwbG9kZSgnfCcsJGNvbnRlbnQpO2ZvcigkaT0wOyRpPGNvdW50KCR0ZW1wbGF0ZSk7JGkrKyl7JHRoaXMtPnRlbXBsYXRlWyRpXT0kdGVtcGxhdGVbJGldO319ZnVuY3Rpb24gcGFyc2VfZnJvbV91cmwoJHVybCl7cmV0dXJuICR0aGlzLT5wYXJzZShAZmlsZV9nZXRfY29udGVudHMoJHVybCkpO31mdW5jdGlvbiBpc190b2tlbigmJHN0cmluZywkaSl7JHRva2Vucz0mJEdMT0JBTFNbJ2Nzc3RpZHknXVsndG9rZW5zJ107cmV0dXJuKHN0cnBvcygkdG9rZW5zLCRzdHJpbmd7JGl9KSE9PWZhbHNlJiYhY3NzdGlkeTo6ZXNjYXBlZCgkc3RyaW5nLCRpKSk7fWZ1bmN0aW9uIHBhcnNlKCRzdHJpbmcpeyR0aGlzLT5wcmludD1uZXcgY3NzdGlkeV9wcmludCgkdGhpcyk7JHRoaXMtPm9wdGltaXNlPW5ldyBjc3N0aWR5X29wdGltaXNlKCR0aGlzKTskYWxsX3Byb3BlcnRpZXM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ107JGF0X3J1bGVzPSYkR0xPQkFMU1snY3NzdGlkeSddWydhdF9ydWxlcyddOyR0aGlzLT5jc3M9YXJyYXkoKTskdGhpcy0+cHJpbnQtPmlucHV0X2Nzcz0kc3RyaW5nOyRzdHJpbmc9c3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJHN0cmluZykuJyAnOyRjdXJfY29tbWVudD0nJztmb3IoJGk9MCwkc2l6ZT1zdHJsZW4oJHN0cmluZyk7JGk8JHNpemU7JGkrKyl7aWYoJHN0cmluZ3skaX09PSJcbiJ8fCRzdHJpbmd7JGl9PT0iXHIiKXsrKyR0aGlzLT5saW5lO31zd2l0Y2goJHRoaXMtPnN0YXR1cyl7Y2FzZSAnYXQnOmlmKGNzc3RpZHk6OmlzX3Rva2VuKCRzdHJpbmcsJGkpKXtpZigkc3RyaW5neyRpfT09Jy8nJiZAJHN0cmluZ3skaSsxfT09JyonKXskdGhpcy0+c3RhdHVzPSdpYyc7KyskaTskdGhpcy0+ZnJvbT0nYXQnO31lbHNlaWYoJHN0cmluZ3skaX09PSd7Jyl7JHRoaXMtPnN0YXR1cz0naXMnOyR0aGlzLT5fYWRkX3Rva2VuKEFUX1NUQVJULCR0aGlzLT5hdCk7fWVsc2VpZigkc3RyaW5neyRpfT09JywnKXskdGhpcy0+YXQ9dHJpbSgkdGhpcy0+YXQpLicsJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nXFwnKXskdGhpcy0+YXQuPSR0aGlzLT5fdW5pY29kZSgkc3RyaW5nLCRpKTt9fWVsc2V7JGxhc3Rwb3M9c3RybGVuKCR0aGlzLT5hdCktMTtpZighKChjdHlwZV9zcGFjZSgkdGhpcy0+YXR7JGxhc3Rwb3N9KXx8Y3NzdGlkeTo6aXNfdG9rZW4oJHRoaXMtPmF0LCRsYXN0cG9zKSYmJHRoaXMtPmF0eyRsYXN0cG9zfT09JywnKSYmY3R5cGVfc3BhY2UoJHN0cmluZ3skaX0pKSl7JHRoaXMtPmF0Lj0kc3RyaW5neyRpfTt9fWJyZWFrO2Nhc2UgJ2lzJzppZihjc3N0aWR5Ojppc190b2tlbigkc3RyaW5nLCRpKSl7aWYoJHN0cmluZ3skaX09PScvJyYmQCRzdHJpbmd7JGkrMX09PScqJyYmdHJpbSgkdGhpcy0+c2VsZWN0b3IpPT0nJyl7JHRoaXMtPnN0YXR1cz0naWMnOysrJGk7JHRoaXMtPmZyb209J2lzJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nQCcmJnRyaW0oJHRoaXMtPnNlbGVjdG9yKT09JycpeyR0aGlzLT5pbnZhbGlkX2F0PXRydWU7Zm9yZWFjaCgkYXRfcnVsZXMgYXMgJG5hbWU9PiR0eXBlKXtpZighc3RyY2FzZWNtcChzdWJzdHIoJHN0cmluZywkaSsxLHN0cmxlbigkbmFtZSkpLCRuYW1lKSl7KCR0eXBlPT0nYXQnKT8kdGhpcy0+YXQ9J0AnLiRuYW1lOiR0aGlzLT5zZWxlY3Rvcj0nQCcuJG5hbWU7JHRoaXMtPnN0YXR1cz0kdHlwZTskaSs9c3RybGVuKCRuYW1lKTskdGhpcy0+aW52YWxpZF9hdD1mYWxzZTt9fWlmKCR0aGlzLT5pbnZhbGlkX2F0KXskdGhpcy0+c2VsZWN0b3I9J0AnOyRpbnZhbGlkX2F0X25hbWU9Jyc7Zm9yKCRqPSRpKzE7JGo8JHNpemU7Kyskail7aWYoIWN0eXBlX2FscGhhKCRzdHJpbmd7JGp9KSl7YnJlYWs7fSRpbnZhbGlkX2F0X25hbWUuPSRzdHJpbmd7JGp9O30kdGhpcy0+bG9nKCdJbnZhbGlkIEAtcnVsZTogJy4kaW52YWxpZF9hdF9uYW1lLicgKHJlbW92ZWQpJywnV2FybmluZycpO319ZWxzZWlmKCgkc3RyaW5neyRpfT09JyInfHwkc3RyaW5neyRpfT09IiciKSl7JHRoaXMtPmN1cl9zdHJpbmc9JHN0cmluZ3skaX07JHRoaXMtPnN0YXR1cz0naW5zdHInOyR0aGlzLT5zdHJfY2hhcj0kc3RyaW5neyRpfTskdGhpcy0+ZnJvbT0naXMnO31lbHNlaWYoJHRoaXMtPmludmFsaWRfYXQmJiRzdHJpbmd7JGl9PT0nOycpeyR0aGlzLT5pbnZhbGlkX2F0PWZhbHNlOyR0aGlzLT5zdGF0dXM9J2lzJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0neycpeyR0aGlzLT5zdGF0dXM9J2lwJzskdGhpcy0+X2FkZF90b2tlbihTRUxfU1RBUlQsJHRoaXMtPnNlbGVjdG9yKTskdGhpcy0+YWRkZWQ9ZmFsc2U7fWVsc2VpZigkc3RyaW5neyRpfT09J30nKXskdGhpcy0+X2FkZF90b2tlbihBVF9FTkQsJHRoaXMtPmF0KTskdGhpcy0+YXQ9Jyc7JHRoaXMtPnNlbGVjdG9yPScnOyR0aGlzLT5zZWxfc2VwYXJhdGU9YXJyYXkoKTt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nLCcpeyR0aGlzLT5zZWxlY3Rvcj10cmltKCR0aGlzLT5zZWxlY3RvcikuJywnOyR0aGlzLT5zZWxfc2VwYXJhdGVbXT1zdHJsZW4oJHRoaXMtPnNlbGVjdG9yKTt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nXFwnKXskdGhpcy0+c2VsZWN0b3IuPSR0aGlzLT5fdW5pY29kZSgkc3RyaW5nLCRpKTt9ZWxzZSBpZighKCRzdHJpbmd7JGl9PT0nKicmJkBpbl9hcnJheSgkc3RyaW5neyRpKzF9LGFycmF5KCcuJywnIycsJ1snLCc6JykpKSl7JHRoaXMtPnNlbGVjdG9yLj0kc3RyaW5neyRpfTt9fWVsc2V7JGxhc3Rwb3M9c3RybGVuKCR0aGlzLT5zZWxlY3RvciktMTtpZigkbGFzdHBvcz09LTF8fCEoKGN0eXBlX3NwYWNlKCR0aGlzLT5zZWxlY3RvcnskbGFzdHBvc30pfHxjc3N0aWR5Ojppc190b2tlbigkdGhpcy0+c2VsZWN0b3IsJGxhc3Rwb3MpJiYkdGhpcy0+c2VsZWN0b3J7JGxhc3Rwb3N9PT0nLCcpJiZjdHlwZV9zcGFjZSgkc3RyaW5neyRpfSkpKXskdGhpcy0+c2VsZWN0b3IuPSRzdHJpbmd7JGl9O319YnJlYWs7Y2FzZSAnaXAnOmlmKGNzc3RpZHk6OmlzX3Rva2VuKCRzdHJpbmcsJGkpKXtpZigoJHN0cmluZ3skaX09PSc6J3x8JHN0cmluZ3skaX09PSc9JykmJiR0aGlzLT5wcm9wZXJ0eSE9JycpeyR0aGlzLT5zdGF0dXM9J2l2JztpZighJHRoaXMtPmdldF9jZmcoJ2Rpc2NhcmRfaW52YWxpZF9wcm9wZXJ0aWVzJyl8fGNzc3RpZHk6OnByb3BlcnR5X2lzX3ZhbGlkKCR0aGlzLT5wcm9wZXJ0eSkpeyR0aGlzLT5fYWRkX3Rva2VuKFBST1BFUlRZLCR0aGlzLT5wcm9wZXJ0eSk7fX1lbHNlaWYoJHN0cmluZ3skaX09PScvJyYmQCRzdHJpbmd7JGkrMX09PScqJyYmJHRoaXMtPnByb3BlcnR5PT0nJyl7JHRoaXMtPnN0YXR1cz0naWMnOysrJGk7JHRoaXMtPmZyb209J2lwJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nfScpeyR0aGlzLT5leHBsb2RlX3NlbGVjdG9ycygpOyR0aGlzLT5zdGF0dXM9J2lzJzskdGhpcy0+aW52YWxpZF9hdD1mYWxzZTskdGhpcy0+X2FkZF90b2tlbihTRUxfRU5ELCR0aGlzLT5zZWxlY3Rvcik7JHRoaXMtPnNlbGVjdG9yPScnOyR0aGlzLT5wcm9wZXJ0eT0nJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nOycpeyR0aGlzLT5wcm9wZXJ0eT0nJzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nXFwnKXskdGhpcy0+cHJvcGVydHkuPSR0aGlzLT5fdW5pY29kZSgkc3RyaW5nLCRpKTt9fWVsc2VpZighY3R5cGVfc3BhY2UoJHN0cmluZ3skaX0pKXskdGhpcy0+cHJvcGVydHkuPSRzdHJpbmd7JGl9O31icmVhaztjYXNlICdpdic6JHBuPSgoJHN0cmluZ3skaX09PSJcbiJ8fCRzdHJpbmd7JGl9PT0iXHIiKSYmJHRoaXMtPnByb3BlcnR5X2lzX25leHQoJHN0cmluZywkaSsxKXx8JGk9PXN0cmxlbigkc3RyaW5nKS0xKTtpZihjc3N0aWR5Ojppc190b2tlbigkc3RyaW5nLCRpKXx8JHBuKXtpZigkc3RyaW5neyRpfT09Jy8nJiZAJHN0cmluZ3skaSsxfT09JyonKXskdGhpcy0+c3RhdHVzPSdpYyc7KyskaTskdGhpcy0+ZnJvbT0naXYnO31lbHNlaWYoKCRzdHJpbmd7JGl9PT0nIid8fCRzdHJpbmd7JGl9PT0iJyJ8fCRzdHJpbmd7JGl9PT0nKCcpKXskdGhpcy0+Y3VyX3N0cmluZz0kc3RyaW5neyRpfTskdGhpcy0+c3RyX2NoYXI9KCRzdHJpbmd7JGl9PT0nKCcpPycpJzokc3RyaW5neyRpfTskdGhpcy0+c3RhdHVzPSdpbnN0cic7JHRoaXMtPmZyb209J2l2Jzt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nLCcpeyR0aGlzLT5zdWJfdmFsdWU9dHJpbSgkdGhpcy0+c3ViX3ZhbHVlKS4nLCc7fWVsc2VpZigkc3RyaW5neyRpfT09J1xcJyl7JHRoaXMtPnN1Yl92YWx1ZS49JHRoaXMtPl91bmljb2RlKCRzdHJpbmcsJGkpO31lbHNlaWYoJHN0cmluZ3skaX09PSc7J3x8JHBuKXtpZigkdGhpcy0+c2VsZWN0b3J7MH09PSdAJyYmaXNzZXQoJGF0X3J1bGVzW3N1YnN0cigkdGhpcy0+c2VsZWN0b3IsMSldKSYmJGF0X3J1bGVzW3N1YnN0cigkdGhpcy0+c2VsZWN0b3IsMSldPT0naXYnKXskdGhpcy0+c3ViX3ZhbHVlX2FycltdPXRyaW0oJHRoaXMtPnN1Yl92YWx1ZSk7JHRoaXMtPnN0YXR1cz0naXMnO3N3aXRjaCgkdGhpcy0+c2VsZWN0b3Ipe2Nhc2UgJ0BjaGFyc2V0JzokdGhpcy0+Y2hhcnNldD0kdGhpcy0+c3ViX3ZhbHVlX2FyclswXTticmVhaztjYXNlICdAbmFtZXNwYWNlJzokdGhpcy0+bmFtZXNwYWNlPWltcGxvZGUoJyAnLCR0aGlzLT5zdWJfdmFsdWVfYXJyKTticmVhaztjYXNlICdAaW1wb3J0JzokdGhpcy0+aW1wb3J0W109aW1wbG9kZSgnICcsJHRoaXMtPnN1Yl92YWx1ZV9hcnIpO2JyZWFrO30kdGhpcy0+c3ViX3ZhbHVlX2Fycj1hcnJheSgpOyR0aGlzLT5zdWJfdmFsdWU9Jyc7JHRoaXMtPnNlbGVjdG9yPScnOyR0aGlzLT5zZWxfc2VwYXJhdGU9YXJyYXkoKTt9ZWxzZXskdGhpcy0+c3RhdHVzPSdpcCc7fX1lbHNlaWYoJHN0cmluZ3skaX0hPSd9Jyl7JHRoaXMtPnN1Yl92YWx1ZS49JHN0cmluZ3skaX07fWlmKCgkc3RyaW5neyRpfT09J30nfHwkc3RyaW5neyRpfT09JzsnfHwkcG4pJiYhZW1wdHkoJHRoaXMtPnNlbGVjdG9yKSl7aWYoJHRoaXMtPmF0PT0nJyl7JHRoaXMtPmF0PURFRkFVTFRfQVQ7fWlmKCR0aGlzLT5nZXRfY2ZnKCdsb3dlcmNhc2VfcycpKXskdGhpcy0+c2VsZWN0b3I9c3RydG9sb3dlcigkdGhpcy0+c2VsZWN0b3IpO30kdGhpcy0+cHJvcGVydHk9c3RydG9sb3dlcigkdGhpcy0+cHJvcGVydHkpOyR0aGlzLT5vcHRpbWlzZS0+c3VidmFsdWUoKTtpZigkdGhpcy0+c3ViX3ZhbHVlIT0nJyl7JHRoaXMtPnN1Yl92YWx1ZV9hcnJbXT0kdGhpcy0+c3ViX3ZhbHVlOyR0aGlzLT5zdWJfdmFsdWU9Jyc7fSR0aGlzLT52YWx1ZT1pbXBsb2RlKCcgJywkdGhpcy0+c3ViX3ZhbHVlX2Fycik7JHRoaXMtPnNlbGVjdG9yPXRyaW0oJHRoaXMtPnNlbGVjdG9yKTskdGhpcy0+b3B0aW1pc2UtPnZhbHVlKCk7JHZhbGlkPWNzc3RpZHk6OnByb3BlcnR5X2lzX3ZhbGlkKCR0aGlzLT5wcm9wZXJ0eSk7aWYoKCEkdGhpcy0+aW52YWxpZF9hdHx8JHRoaXMtPmdldF9jZmcoJ3ByZXNlcnZlX2NzcycpKSYmKCEkdGhpcy0+Z2V0X2NmZygnZGlzY2FyZF9pbnZhbGlkX3Byb3BlcnRpZXMnKXx8JHZhbGlkKSl7JHRoaXMtPmNzc19hZGRfcHJvcGVydHkoJHRoaXMtPmF0LCR0aGlzLT5zZWxlY3RvciwkdGhpcy0+cHJvcGVydHksJHRoaXMtPnZhbHVlKTskdGhpcy0+X2FkZF90b2tlbihWQUxVRSwkdGhpcy0+dmFsdWUpOyR0aGlzLT5vcHRpbWlzZS0+c2hvcnRoYW5kcygpO31pZighJHZhbGlkKXtpZigkdGhpcy0+Z2V0X2NmZygnZGlzY2FyZF9pbnZhbGlkX3Byb3BlcnRpZXMnKSl7JHRoaXMtPmxvZygnUmVtb3ZlZCBpbnZhbGlkIHByb3BlcnR5OiAnLiR0aGlzLT5wcm9wZXJ0eSwnV2FybmluZycpO31lbHNleyR0aGlzLT5sb2coJ0ludmFsaWQgcHJvcGVydHkgaW4gJy5zdHJ0b3VwcGVyKCR0aGlzLT5nZXRfY2ZnKCdjc3NfbGV2ZWwnKSkuJzogJy4kdGhpcy0+cHJvcGVydHksJ1dhcm5pbmcnKTt9fSR0aGlzLT5wcm9wZXJ0eT0nJzskdGhpcy0+c3ViX3ZhbHVlX2Fycj1hcnJheSgpOyR0aGlzLT52YWx1ZT0nJzt9aWYoJHN0cmluZ3skaX09PSd9Jyl7JHRoaXMtPmV4cGxvZGVfc2VsZWN0b3JzKCk7JHRoaXMtPl9hZGRfdG9rZW4oU0VMX0VORCwkdGhpcy0+c2VsZWN0b3IpOyR0aGlzLT5zdGF0dXM9J2lzJzskdGhpcy0+aW52YWxpZF9hdD1mYWxzZTskdGhpcy0+c2VsZWN0b3I9Jyc7fX1lbHNlaWYoISRwbil7JHRoaXMtPnN1Yl92YWx1ZS49JHN0cmluZ3skaX07aWYoY3R5cGVfc3BhY2UoJHN0cmluZ3skaX0pKXskdGhpcy0+b3B0aW1pc2UtPnN1YnZhbHVlKCk7aWYoJHRoaXMtPnN1Yl92YWx1ZSE9JycpeyR0aGlzLT5zdWJfdmFsdWVfYXJyW109JHRoaXMtPnN1Yl92YWx1ZTskdGhpcy0+c3ViX3ZhbHVlPScnO319fWJyZWFrO2Nhc2UgJ2luc3RyJzppZigkdGhpcy0+c3RyX2NoYXI9PScpJyYmKCRzdHJpbmd7JGl9PT0nIid8fCRzdHJpbmd7JGl9PT0nXCcnKSYmISR0aGlzLT5zdHJfaW5fc3RyJiYhY3NzdGlkeTo6ZXNjYXBlZCgkc3RyaW5nLCRpKSl7JHRoaXMtPnN0cl9pbl9zdHI9dHJ1ZTt9ZWxzZWlmKCR0aGlzLT5zdHJfY2hhcj09JyknJiYoJHN0cmluZ3skaX09PSciJ3x8JHN0cmluZ3skaX09PSdcJycpJiYkdGhpcy0+c3RyX2luX3N0ciYmIWNzc3RpZHk6OmVzY2FwZWQoJHN0cmluZywkaSkpeyR0aGlzLT5zdHJfaW5fc3RyPWZhbHNlO30kdGVtcF9hZGQ9JHN0cmluZ3skaX07aWYoKCRzdHJpbmd7JGl9PT0iXG4ifHwkc3RyaW5neyRpfT09IlxyIikmJiEoJHN0cmluZ3skaS0xfT09J1xcJyYmIWNzc3RpZHk6OmVzY2FwZWQoJHN0cmluZywkaS0xKSkpeyR0ZW1wX2FkZD0iXFxBICI7JHRoaXMtPmxvZygnRml4ZWQgaW5jb3JyZWN0IG5ld2xpbmUgaW4gc3RyaW5nJywnV2FybmluZycpO31pZighKCR0aGlzLT5zdHJfY2hhcj09JyknJiZpbl9hcnJheSgkc3RyaW5neyRpfSwkR0xPQkFMU1snY3NzdGlkeSddWyd3aGl0ZXNwYWNlJ10pJiYhJHRoaXMtPnN0cl9pbl9zdHIpKXskdGhpcy0+Y3VyX3N0cmluZy49JHRlbXBfYWRkO31pZigkc3RyaW5neyRpfT09JHRoaXMtPnN0cl9jaGFyJiYhY3NzdGlkeTo6ZXNjYXBlZCgkc3RyaW5nLCRpKSYmISR0aGlzLT5zdHJfaW5fc3RyKXskdGhpcy0+c3RhdHVzPSR0aGlzLT5mcm9tO2lmKCFwcmVnX21hdGNoKCd8WycuaW1wbG9kZSgnJywkR0xPQkFMU1snY3NzdGlkeSddWyd3aGl0ZXNwYWNlJ10pLiddfHVpcycsJHRoaXMtPmN1cl9zdHJpbmcpJiYkdGhpcy0+cHJvcGVydHkhPSdjb250ZW50Jyl7aWYoJHRoaXMtPnN0cl9jaGFyPT0nIid8fCR0aGlzLT5zdHJfY2hhcj09J1wnJyl7JHRoaXMtPmN1cl9zdHJpbmc9c3Vic3RyKCR0aGlzLT5jdXJfc3RyaW5nLDEsLTEpO31lbHNlIGlmKHN0cmxlbigkdGhpcy0+Y3VyX3N0cmluZyk+MyYmKCR0aGlzLT5jdXJfc3RyaW5nWzFdPT0nIid8fCR0aGlzLT5jdXJfc3RyaW5nWzFdPT0nXCcnKSl7JHRoaXMtPmN1cl9zdHJpbmc9JHRoaXMtPmN1cl9zdHJpbmdbMF0uc3Vic3RyKCR0aGlzLT5jdXJfc3RyaW5nLDIsLTIpLnN1YnN0cigkdGhpcy0+Y3VyX3N0cmluZywtMSk7fX1pZigkdGhpcy0+ZnJvbT09J2l2Jyl7JHRoaXMtPnN1Yl92YWx1ZS49JHRoaXMtPmN1cl9zdHJpbmc7fWVsc2VpZigkdGhpcy0+ZnJvbT09J2lzJyl7JHRoaXMtPnNlbGVjdG9yLj0kdGhpcy0+Y3VyX3N0cmluZzt9fWJyZWFrO2Nhc2UgJ2ljJzppZigkc3RyaW5neyRpfT09JyonJiYkc3RyaW5neyRpKzF9PT0nLycpeyR0aGlzLT5zdGF0dXM9JHRoaXMtPmZyb207JGkrKzskdGhpcy0+X2FkZF90b2tlbihDT01NRU5ULCRjdXJfY29tbWVudCk7JGN1cl9jb21tZW50PScnO31lbHNleyRjdXJfY29tbWVudC49JHN0cmluZ3skaX07fWJyZWFrO319JHRoaXMtPm9wdGltaXNlLT5wb3N0cGFyc2UoKTskdGhpcy0+cHJpbnQtPl9yZXNldCgpO3JldHVybiEoZW1wdHkoJHRoaXMtPmNzcykmJmVtcHR5KCR0aGlzLT5pbXBvcnQpJiZlbXB0eSgkdGhpcy0+Y2hhcnNldCkmJmVtcHR5KCR0aGlzLT50b2tlbnMpJiZlbXB0eSgkdGhpcy0+bmFtZXNwYWNlKSk7fWZ1bmN0aW9uIGV4cGxvZGVfc2VsZWN0b3JzKCl7aWYoJHRoaXMtPmdldF9jZmcoJ21lcmdlX3NlbGVjdG9ycycpPT0xKXskbmV3X3NlbHM9YXJyYXkoKTskbGFzdHBvcz0wOyR0aGlzLT5zZWxfc2VwYXJhdGVbXT1zdHJsZW4oJHRoaXMtPnNlbGVjdG9yKTtmb3JlYWNoKCR0aGlzLT5zZWxfc2VwYXJhdGUgYXMgJG51bT0+JHBvcyl7aWYoJG51bT09Y291bnQoJHRoaXMtPnNlbF9zZXBhcmF0ZSktMSl7JHBvcys9MTt9JG5ld19zZWxzW109c3Vic3RyKCR0aGlzLT5zZWxlY3RvciwkbGFzdHBvcywkcG9zLSRsYXN0cG9zLTEpOyRsYXN0cG9zPSRwb3M7fWlmKGNvdW50KCRuZXdfc2Vscyk+MSl7Zm9yZWFjaCgkbmV3X3NlbHMgYXMgJHNlbGVjdG9yKXskdGhpcy0+bWVyZ2VfY3NzX2Jsb2NrcygkdGhpcy0+YXQsJHNlbGVjdG9yLCR0aGlzLT5jc3NbJHRoaXMtPmF0XVskdGhpcy0+c2VsZWN0b3JdKTt9dW5zZXQoJHRoaXMtPmNzc1skdGhpcy0+YXRdWyR0aGlzLT5zZWxlY3Rvcl0pO319JHRoaXMtPnNlbF9zZXBhcmF0ZT1hcnJheSgpO31mdW5jdGlvbiBlc2NhcGVkKCYkc3RyaW5nLCRwb3Mpe3JldHVybiEoQCgkc3RyaW5neyRwb3MtMX0hPSdcXCcpfHxjc3N0aWR5Ojplc2NhcGVkKCRzdHJpbmcsJHBvcy0xKSk7fWZ1bmN0aW9uIGNzc19hZGRfcHJvcGVydHkoJG1lZGlhLCRzZWxlY3RvciwkcHJvcGVydHksJG5ld192YWwpe2lmKCR0aGlzLT5nZXRfY2ZnKCdwcmVzZXJ2ZV9jc3MnKXx8dHJpbSgkbmV3X3ZhbCk9PScnKXtyZXR1cm47fSR0aGlzLT5hZGRlZD10cnVlO2lmKGlzc2V0KCR0aGlzLT5jc3NbJG1lZGlhXVskc2VsZWN0b3JdWyRwcm9wZXJ0eV0pKXtpZigoY3NzdGlkeTo6aXNfaW1wb3J0YW50KCR0aGlzLT5jc3NbJG1lZGlhXVskc2VsZWN0b3JdWyRwcm9wZXJ0eV0pJiZjc3N0aWR5Ojppc19pbXBvcnRhbnQoJG5ld192YWwpKXx8IWNzc3RpZHk6OmlzX2ltcG9ydGFudCgkdGhpcy0+Y3NzWyRtZWRpYV1bJHNlbGVjdG9yXVskcHJvcGVydHldKSl7dW5zZXQoJHRoaXMtPmNzc1skbWVkaWFdWyRzZWxlY3Rvcl1bJHByb3BlcnR5XSk7JHRoaXMtPmNzc1skbWVkaWFdWyRzZWxlY3Rvcl1bJHByb3BlcnR5XT10cmltKCRuZXdfdmFsKTt9fWVsc2V7JHRoaXMtPmNzc1skbWVkaWFdWyRzZWxlY3Rvcl1bJHByb3BlcnR5XT10cmltKCRuZXdfdmFsKTt9fWZ1bmN0aW9uIG1lcmdlX2Nzc19ibG9ja3MoJG1lZGlhLCRzZWxlY3RvciwkY3NzX2FkZCl7Zm9yZWFjaCgkY3NzX2FkZCBhcyAkcHJvcGVydHk9PiR2YWx1ZSl7JHRoaXMtPmNzc19hZGRfcHJvcGVydHkoJG1lZGlhLCRzZWxlY3RvciwkcHJvcGVydHksJHZhbHVlLGZhbHNlKTt9fWZ1bmN0aW9uIGlzX2ltcG9ydGFudCgmJHZhbHVlKXtyZXR1cm4oIXN0cmNhc2VjbXAoc3Vic3RyKHN0cl9yZXBsYWNlKCRHTE9CQUxTWydjc3N0aWR5J11bJ3doaXRlc3BhY2UnXSwnJywkdmFsdWUpLC0xMCwxMCksJyFpbXBvcnRhbnQnKSk7fWZ1bmN0aW9uIGd2d19pbXBvcnRhbnQoJHZhbHVlKXtpZihjc3N0aWR5Ojppc19pbXBvcnRhbnQoJHZhbHVlKSl7JHZhbHVlPXRyaW0oJHZhbHVlKTskdmFsdWU9c3Vic3RyKCR2YWx1ZSwwLC05KTskdmFsdWU9dHJpbSgkdmFsdWUpOyR2YWx1ZT1zdWJzdHIoJHZhbHVlLDAsLTEpOyR2YWx1ZT10cmltKCR2YWx1ZSk7cmV0dXJuICR2YWx1ZTt9cmV0dXJuICR2YWx1ZTt9ZnVuY3Rpb24gcHJvcGVydHlfaXNfbmV4dCgkaXN0cmluZywkcG9zKXskYWxsX3Byb3BlcnRpZXM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ107JGlzdHJpbmc9c3Vic3RyKCRpc3RyaW5nLCRwb3Msc3RybGVuKCRpc3RyaW5nKS0kcG9zKTskcG9zPXN0cnBvcygkaXN0cmluZywnOicpO2lmKCRwb3M9PT1mYWxzZSl7cmV0dXJuIGZhbHNlO30kaXN0cmluZz1zdHJ0b2xvd2VyKHRyaW0oc3Vic3RyKCRpc3RyaW5nLDAsJHBvcykpKTtpZihpc3NldCgkYWxsX3Byb3BlcnRpZXNbJGlzdHJpbmddKSl7JHRoaXMtPmxvZygnQWRkZWQgc2VtaWNvbG9uIHRvIHRoZSBlbmQgb2YgZGVjbGFyYXRpb24nLCdXYXJuaW5nJyk7cmV0dXJuIHRydWU7fXJldHVybiBmYWxzZTt9ZnVuY3Rpb24gcHJvcGVydHlfaXNfdmFsaWQoJHByb3BlcnR5KXskYWxsX3Byb3BlcnRpZXM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ107cmV0dXJuKGlzc2V0KCRhbGxfcHJvcGVydGllc1skcHJvcGVydHldKSYmc3RycG9zKCRhbGxfcHJvcGVydGllc1skcHJvcGVydHldLHN0cnRvdXBwZXIoJHRoaXMtPmdldF9jZmcoJ2Nzc19sZXZlbCcpKSkhPT1mYWxzZSk7fX0gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.csstidy_optimise.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgY3NzdGlkeV9vcHRpbWlzZXtmdW5jdGlvbiBjc3N0aWR5X29wdGltaXNlKCYkY3NzKXskdGhpcy0+cGFyc2VyPSYkY3NzOyR0aGlzLT5jc3M9JiRjc3MtPmNzczskdGhpcy0+c3ViX3ZhbHVlPSYkY3NzLT5zdWJfdmFsdWU7JHRoaXMtPmF0PSYkY3NzLT5hdDskdGhpcy0+c2VsZWN0b3I9JiRjc3MtPnNlbGVjdG9yOyR0aGlzLT5wcm9wZXJ0eT0mJGNzcy0+cHJvcGVydHk7JHRoaXMtPnZhbHVlPSYkY3NzLT52YWx1ZTt9ZnVuY3Rpb24gcG9zdHBhcnNlKCl7aWYoJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygncHJlc2VydmVfY3NzJykpe3JldHVybjt9aWYoJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygnbWVyZ2Vfc2VsZWN0b3JzJyk9PTIpe2ZvcmVhY2goJHRoaXMtPmNzcyBhcyAkbWVkaXVtPT4kdmFsdWUpeyR0aGlzLT5tZXJnZV9zZWxlY3RvcnMoJHRoaXMtPmNzc1skbWVkaXVtXSk7fX1pZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdvcHRpbWlzZV9zaG9ydGhhbmRzJyk+MCl7Zm9yZWFjaCgkdGhpcy0+Y3NzIGFzICRtZWRpdW09PiR2YWx1ZSl7Zm9yZWFjaCgkdmFsdWUgYXMgJHNlbGVjdG9yPT4kdmFsdWUxKXskdGhpcy0+Y3NzWyRtZWRpdW1dWyRzZWxlY3Rvcl09Y3NzdGlkeV9vcHRpbWlzZTo6bWVyZ2VfNHZhbHVlX3Nob3J0aGFuZHMoJHRoaXMtPmNzc1skbWVkaXVtXVskc2VsZWN0b3JdKTtpZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdvcHRpbWlzZV9zaG9ydGhhbmRzJyk8Mil7Y29udGludWU7fSR0aGlzLT5jc3NbJG1lZGl1bV1bJHNlbGVjdG9yXT1jc3N0aWR5X29wdGltaXNlOjptZXJnZV9iZygkdGhpcy0+Y3NzWyRtZWRpdW1dWyRzZWxlY3Rvcl0pO2lmKGVtcHR5KCR0aGlzLT5jc3NbJG1lZGl1bV1bJHNlbGVjdG9yXSkpe3Vuc2V0KCR0aGlzLT5jc3NbJG1lZGl1bV1bJHNlbGVjdG9yXSk7fX19fX1mdW5jdGlvbiB2YWx1ZSgpeyRzaG9ydGhhbmRzPSYkR0xPQkFMU1snY3NzdGlkeSddWydzaG9ydGhhbmRzJ107aWYoaXNzZXQoJHNob3J0aGFuZHNbJHRoaXMtPnByb3BlcnR5XSkpeyR0ZW1wPWNzc3RpZHlfb3B0aW1pc2U6OnNob3J0aGFuZCgkdGhpcy0+dmFsdWUpO2lmKCR0ZW1wIT0kdGhpcy0+dmFsdWUpeyR0aGlzLT5wYXJzZXItPmxvZygnT3B0aW1pc2VkIHNob3J0aGFuZCBub3RhdGlvbiAoJy4kdGhpcy0+cHJvcGVydHkuJyk6IENoYW5nZWQgIicuJHRoaXMtPnZhbHVlLiciIHRvICInLiR0ZW1wLiciJywnSW5mb3JtYXRpb24nKTt9JHRoaXMtPnZhbHVlPSR0ZW1wO31pZigkdGhpcy0+dmFsdWUhPSR0aGlzLT5jb21wcmVzc19pbXBvcnRhbnQoJHRoaXMtPnZhbHVlKSl7JHRoaXMtPnBhcnNlci0+bG9nKCdPcHRpbWlzZWQgIWltcG9ydGFudCcsJ0luZm9ybWF0aW9uJyk7fX1mdW5jdGlvbiBzaG9ydGhhbmRzKCl7JHNob3J0aGFuZHM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ3Nob3J0aGFuZHMnXTtpZighJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygnb3B0aW1pc2Vfc2hvcnRoYW5kcycpfHwkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdwcmVzZXJ2ZV9jc3MnKSl7cmV0dXJuO31pZigkdGhpcy0+cHJvcGVydHk9PSdiYWNrZ3JvdW5kJyYmJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygnb3B0aW1pc2Vfc2hvcnRoYW5kcycpPjEpe3Vuc2V0KCR0aGlzLT5jc3NbJHRoaXMtPmF0XVskdGhpcy0+c2VsZWN0b3JdWydiYWNrZ3JvdW5kJ10pOyR0aGlzLT5wYXJzZXItPm1lcmdlX2Nzc19ibG9ja3MoJHRoaXMtPmF0LCR0aGlzLT5zZWxlY3Rvcixjc3N0aWR5X29wdGltaXNlOjpkaXNzb2x2ZV9zaG9ydF9iZygkdGhpcy0+dmFsdWUpKTt9aWYoaXNzZXQoJHNob3J0aGFuZHNbJHRoaXMtPnByb3BlcnR5XSkpeyR0aGlzLT5wYXJzZXItPm1lcmdlX2Nzc19ibG9ja3MoJHRoaXMtPmF0LCR0aGlzLT5zZWxlY3Rvcixjc3N0aWR5X29wdGltaXNlOjpkaXNzb2x2ZV80dmFsdWVfc2hvcnRoYW5kcygkdGhpcy0+cHJvcGVydHksJHRoaXMtPnZhbHVlKSk7aWYoaXNfYXJyYXkoJHNob3J0aGFuZHNbJHRoaXMtPnByb3BlcnR5XSkpe3Vuc2V0KCR0aGlzLT5jc3NbJHRoaXMtPmF0XVskdGhpcy0+c2VsZWN0b3JdWyR0aGlzLT5wcm9wZXJ0eV0pO319fWZ1bmN0aW9uIHN1YnZhbHVlKCl7JHJlcGxhY2VfY29sb3JzPSYkR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddOyR0aGlzLT5zdWJfdmFsdWU9dHJpbSgkdGhpcy0+c3ViX3ZhbHVlKTtpZigkdGhpcy0+c3ViX3ZhbHVlPT0nJyl7cmV0dXJuO30kaW1wb3J0YW50PScnO2lmKGNzc3RpZHk6OmlzX2ltcG9ydGFudCgkdGhpcy0+c3ViX3ZhbHVlKSl7JGltcG9ydGFudD0nIWltcG9ydGFudCc7fSR0aGlzLT5zdWJfdmFsdWU9Y3NzdGlkeTo6Z3Z3X2ltcG9ydGFudCgkdGhpcy0+c3ViX3ZhbHVlKTtpZigkdGhpcy0+cHJvcGVydHk9PSdmb250LXdlaWdodCcmJiR0aGlzLT5wYXJzZXItPmdldF9jZmcoJ2NvbXByZXNzX2ZvbnQtd2VpZ2h0Jykpe2lmKCR0aGlzLT5zdWJfdmFsdWU9PSdib2xkJyl7JHRoaXMtPnN1Yl92YWx1ZT0nNzAwJzskdGhpcy0+cGFyc2VyLT5sb2coJ09wdGltaXNlZCBmb250LXdlaWdodDogQ2hhbmdlZCAiYm9sZCIgdG8gIjcwMCInLCdJbmZvcm1hdGlvbicpO31lbHNlIGlmKCR0aGlzLT5zdWJfdmFsdWU9PSdub3JtYWwnKXskdGhpcy0+c3ViX3ZhbHVlPSc0MDAnOyR0aGlzLT5wYXJzZXItPmxvZygnT3B0aW1pc2VkIGZvbnQtd2VpZ2h0OiBDaGFuZ2VkICJub3JtYWwiIHRvICI0MDAiJywnSW5mb3JtYXRpb24nKTt9fSR0ZW1wPSR0aGlzLT5jb21wcmVzc19udW1iZXJzKCR0aGlzLT5zdWJfdmFsdWUpO2lmKCR0ZW1wIT0kdGhpcy0+c3ViX3ZhbHVlKXtpZihzdHJsZW4oJHRlbXApPnN0cmxlbigkdGhpcy0+c3ViX3ZhbHVlKSl7JHRoaXMtPnBhcnNlci0+bG9nKCdGaXhlZCBpbnZhbGlkIG51bWJlcjogQ2hhbmdlZCAiJy4kdGhpcy0+c3ViX3ZhbHVlLiciIHRvICInLiR0ZW1wLiciJywnV2FybmluZycpO31lbHNleyR0aGlzLT5wYXJzZXItPmxvZygnT3B0aW1pc2VkIG51bWJlcjogQ2hhbmdlZCAiJy4kdGhpcy0+c3ViX3ZhbHVlLiciIHRvICInLiR0ZW1wLiciJywnSW5mb3JtYXRpb24nKTt9JHRoaXMtPnN1Yl92YWx1ZT0kdGVtcDt9aWYoJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygnY29tcHJlc3NfY29sb3JzJykpeyR0ZW1wPSR0aGlzLT5jdXRfY29sb3IoJHRoaXMtPnN1Yl92YWx1ZSk7aWYoJHRlbXAhPT0kdGhpcy0+c3ViX3ZhbHVlKXtpZihpc3NldCgkcmVwbGFjZV9jb2xvcnNbJHRoaXMtPnN1Yl92YWx1ZV0pKXskdGhpcy0+cGFyc2VyLT5sb2coJ0ZpeGVkIGludmFsaWQgY29sb3IgbmFtZTogQ2hhbmdlZCAiJy4kdGhpcy0+c3ViX3ZhbHVlLiciIHRvICInLiR0ZW1wLiciJywnV2FybmluZycpO31lbHNleyR0aGlzLT5wYXJzZXItPmxvZygnT3B0aW1pc2VkIGNvbG9yOiBDaGFuZ2VkICInLiR0aGlzLT5zdWJfdmFsdWUuJyIgdG8gIicuJHRlbXAuJyInLCdJbmZvcm1hdGlvbicpO30kdGhpcy0+c3ViX3ZhbHVlPSR0ZW1wO319JHRoaXMtPnN1Yl92YWx1ZS49JGltcG9ydGFudDt9ZnVuY3Rpb24gc2hvcnRoYW5kKCR2YWx1ZSl7JGltcG9ydGFudD0nJztpZihjc3N0aWR5Ojppc19pbXBvcnRhbnQoJHZhbHVlKSl7JHZhbHVlcz1jc3N0aWR5OjpndndfaW1wb3J0YW50KCR2YWx1ZSk7JGltcG9ydGFudD0nIWltcG9ydGFudCc7fWVsc2UgJHZhbHVlcz0kdmFsdWU7JHZhbHVlcz1leHBsb2RlKCcgJywkdmFsdWVzKTtzd2l0Y2goY291bnQoJHZhbHVlcykpe2Nhc2UgNDppZigkdmFsdWVzWzBdPT0kdmFsdWVzWzFdJiYkdmFsdWVzWzBdPT0kdmFsdWVzWzJdJiYkdmFsdWVzWzBdPT0kdmFsdWVzWzNdKXtyZXR1cm4gJHZhbHVlc1swXS4kaW1wb3J0YW50O31lbHNlaWYoJHZhbHVlc1sxXT09JHZhbHVlc1szXSYmJHZhbHVlc1swXT09JHZhbHVlc1syXSl7cmV0dXJuICR2YWx1ZXNbMF0uJyAnLiR2YWx1ZXNbMV0uJGltcG9ydGFudDt9ZWxzZWlmKCR2YWx1ZXNbMV09PSR2YWx1ZXNbM10pe3JldHVybiAkdmFsdWVzWzBdLicgJy4kdmFsdWVzWzFdLicgJy4kdmFsdWVzWzJdLiRpbXBvcnRhbnQ7fWJyZWFrO2Nhc2UgMzppZigkdmFsdWVzWzBdPT0kdmFsdWVzWzFdJiYkdmFsdWVzWzBdPT0kdmFsdWVzWzJdKXtyZXR1cm4gJHZhbHVlc1swXS4kaW1wb3J0YW50O31lbHNlaWYoJHZhbHVlc1swXT09JHZhbHVlc1syXSl7cmV0dXJuICR2YWx1ZXNbMF0uJyAnLiR2YWx1ZXNbMV0uJGltcG9ydGFudDt9YnJlYWs7Y2FzZSAyOmlmKCR2YWx1ZXNbMF09PSR2YWx1ZXNbMV0pe3JldHVybiAkdmFsdWVzWzBdLiRpbXBvcnRhbnQ7fWJyZWFrO31yZXR1cm4gJHZhbHVlO31mdW5jdGlvbiBjb21wcmVzc19pbXBvcnRhbnQoJiRzdHJpbmcpe2lmKGNzc3RpZHk6OmlzX2ltcG9ydGFudCgkc3RyaW5nKSl7JHN0cmluZz1jc3N0aWR5OjpndndfaW1wb3J0YW50KCRzdHJpbmcpLichaW1wb3J0YW50Jzt9cmV0dXJuICRzdHJpbmc7fWZ1bmN0aW9uIGN1dF9jb2xvcigkY29sb3IpeyRyZXBsYWNlX2NvbG9ycz0mJEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXTtpZihzdHJ0b2xvd2VyKHN1YnN0cigkY29sb3IsMCw0KSk9PSdyZ2IoJyl7JGNvbG9yX3RtcD1zdWJzdHIoJGNvbG9yLDQsc3RybGVuKCRjb2xvciktNSk7JGNvbG9yX3RtcD1leHBsb2RlKCcsJywkY29sb3JfdG1wKTtmb3IoJGk9MDskaTxjb3VudCgkY29sb3JfdG1wKTskaSsrKXskY29sb3JfdG1wWyRpXT10cmltKCRjb2xvcl90bXBbJGldKTtpZihzdWJzdHIoJGNvbG9yX3RtcFskaV0sLTEpPT0nJScpeyRjb2xvcl90bXBbJGldPXJvdW5kKCgyNTUqJGNvbG9yX3RtcFskaV0pLzEwMCk7fWlmKCRjb2xvcl90bXBbJGldPjI1NSkkY29sb3JfdG1wWyRpXT0yNTU7fSRjb2xvcj0nIyc7Zm9yKCRpPTA7JGk8MzskaSsrKXtpZigkY29sb3JfdG1wWyRpXTwxNil7JGNvbG9yLj0nMCcuZGVjaGV4KCRjb2xvcl90bXBbJGldKTt9ZWxzZXskY29sb3IuPWRlY2hleCgkY29sb3JfdG1wWyRpXSk7fX19aWYoaXNzZXQoJHJlcGxhY2VfY29sb3JzW3N0cnRvbG93ZXIoJGNvbG9yKV0pKXskY29sb3I9JHJlcGxhY2VfY29sb3JzW3N0cnRvbG93ZXIoJGNvbG9yKV07fWlmKHN0cmxlbigkY29sb3IpPT03KXskY29sb3JfdGVtcD1zdHJ0b2xvd2VyKCRjb2xvcik7aWYoJGNvbG9yX3RlbXB7MH09PScjJyYmJGNvbG9yX3RlbXB7MX09PSRjb2xvcl90ZW1wezJ9JiYkY29sb3JfdGVtcHszfT09JGNvbG9yX3RlbXB7NH0mJiRjb2xvcl90ZW1wezV9PT0kY29sb3JfdGVtcHs2fSl7JGNvbG9yPScjJy4kY29sb3J7MX0uJGNvbG9yezN9LiRjb2xvcns1fTt9fXN3aXRjaChzdHJ0b2xvd2VyKCRjb2xvcikpe2Nhc2UgJ2JsYWNrJzpyZXR1cm4gJyMwMDAnO2Nhc2UgJ2Z1Y2hzaWEnOnJldHVybiAnI0YwRic7Y2FzZSAnd2hpdGUnOnJldHVybiAnI0ZGRic7Y2FzZSAneWVsbG93JzpyZXR1cm4gJyNGRjAnO2Nhc2UgJyM4MDAwMDAnOnJldHVybiAnbWFyb29uJztjYXNlICcjZmZhNTAwJzpyZXR1cm4gJ29yYW5nZSc7Y2FzZSAnIzgwODAwMCc6cmV0dXJuICdvbGl2ZSc7Y2FzZSAnIzgwMDA4MCc6cmV0dXJuICdwdXJwbGUnO2Nhc2UgJyMwMDgwMDAnOnJldHVybiAnZ3JlZW4nO2Nhc2UgJyMwMDAwODAnOnJldHVybiAnbmF2eSc7Y2FzZSAnIzAwODA4MCc6cmV0dXJuICd0ZWFsJztjYXNlICcjYzBjMGMwJzpyZXR1cm4gJ3NpbHZlcic7Y2FzZSAnIzgwODA4MCc6cmV0dXJuICdncmF5JztjYXNlICcjZjAwJzpyZXR1cm4gJ3JlZCc7fXJldHVybiAkY29sb3I7fWZ1bmN0aW9uIGNvbXByZXNzX251bWJlcnMoJHN1YnZhbHVlKXskdW5pdHM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ3VuaXRzJ107JHVuaXRfdmFsdWVzPSYkR0xPQkFMU1snY3NzdGlkeSddWyd1bml0X3ZhbHVlcyddOyRjb2xvcl92YWx1ZXM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ2NvbG9yX3ZhbHVlcyddO2lmKCR0aGlzLT5wcm9wZXJ0eT09J2ZvbnQnKXskdGVtcD1leHBsb2RlKCcvJywkc3VidmFsdWUpO31lbHNleyR0ZW1wPWFycmF5KCRzdWJ2YWx1ZSk7fWZvcigkbD0wOyRsPGNvdW50KCR0ZW1wKTskbCsrKXtpZighKHN0cmxlbigkdGVtcFskbF0pPjAmJihpc19udW1lcmljKCR0ZW1wWyRsXXswfSl8fCR0ZW1wWyRsXXswfT09JysnfHwkdGVtcFskbF17MH09PSctJykpKXtjb250aW51ZTt9aWYoaW5fYXJyYXkoJHRoaXMtPnByb3BlcnR5LCRjb2xvcl92YWx1ZXMpKXskdGVtcFskbF09JyMnLiR0ZW1wWyRsXTt9aWYoZmxvYXR2YWwoJHRlbXBbJGxdKT09MCl7JHRlbXBbJGxdPScwJzt9ZWxzZXskdW5pdF9mb3VuZD1GQUxTRTtmb3IoJG09MCwkc2l6ZV80PWNvdW50KCR1bml0cyk7JG08JHNpemVfNDskbSsrKXtpZihzdHJwb3Moc3RydG9sb3dlcigkdGVtcFskbF0pLCR1bml0c1skbV0pIT09RkFMU0UpeyR0ZW1wWyRsXT1mbG9hdHZhbCgkdGVtcFskbF0pLiR1bml0c1skbV07JHVuaXRfZm91bmQ9VFJVRTticmVhazt9fWlmKCEkdW5pdF9mb3VuZCYmaW5fYXJyYXkoJHRoaXMtPnByb3BlcnR5LCR1bml0X3ZhbHVlcyxUUlVFKSl7JHRlbXBbJGxdPWZsb2F0dmFsKCR0ZW1wWyRsXSkuJ3B4Jzt9ZWxzZSBpZighJHVuaXRfZm91bmQpeyR0ZW1wWyRsXT1mbG9hdHZhbCgkdGVtcFskbF0pO31pZihhYnMoZmxvYXR2YWwoJHRlbXBbJGxdKSk8MSl7aWYoZmxvYXR2YWwoJHRlbXBbJGxdKTwwKXskdGVtcFskbF09Jy0nLnN1YnN0cigkdGVtcFskbF0sMik7fWVsc2V7JHRlbXBbJGxdPXN1YnN0cigkdGVtcFskbF0sMSk7fX19fXJldHVybigoY291bnQoJHRlbXApPjEpPyR0ZW1wWzBdLicvJy4kdGVtcFsxXTokdGVtcFswXSk7fWZ1bmN0aW9uIG1lcmdlX3NlbGVjdG9ycygmJGFycmF5KXskY3NzPSRhcnJheTtmb3JlYWNoKCRjc3MgYXMgJGtleT0+JHZhbHVlKXtpZighaXNzZXQoJGNzc1ska2V5XSkpe2NvbnRpbnVlO30kbmV3c2VsPScnOyRrZXlzPWFycmF5KCk7Zm9yZWFjaCgkY3NzIGFzICRzZWxlY3Rvcj0+JHZhbGkpe2lmKCRzZWxlY3Rvcj09JGtleSl7Y29udGludWU7fWlmKCRjc3NbJGtleV09PT0kdmFsaSl7JGtleXNbXT0kc2VsZWN0b3I7fX1pZighZW1wdHkoJGtleXMpKXskbmV3c2VsPSRrZXk7dW5zZXQoJGNzc1ska2V5XSk7Zm9yZWFjaCgka2V5cyBhcyAkc2VsZWN0b3Ipe3Vuc2V0KCRjc3NbJHNlbGVjdG9yXSk7JG5ld3NlbC49JywnLiRzZWxlY3Rvcjt9JGNzc1skbmV3c2VsXT0kdmFsdWU7fX0kYXJyYXk9JGNzczt9ZnVuY3Rpb24gZGlzc29sdmVfNHZhbHVlX3Nob3J0aGFuZHMoJHByb3BlcnR5LCR2YWx1ZSl7JHNob3J0aGFuZHM9JiRHTE9CQUxTWydjc3N0aWR5J11bJ3Nob3J0aGFuZHMnXTtpZighaXNfYXJyYXkoJHNob3J0aGFuZHNbJHByb3BlcnR5XSkpeyRyZXR1cm5bJHByb3BlcnR5XT0kdmFsdWU7cmV0dXJuICRyZXR1cm47fSRpbXBvcnRhbnQ9Jyc7aWYoY3NzdGlkeTo6aXNfaW1wb3J0YW50KCR2YWx1ZSkpeyR2YWx1ZT1jc3N0aWR5OjpndndfaW1wb3J0YW50KCR2YWx1ZSk7JGltcG9ydGFudD0nIWltcG9ydGFudCc7fSR2YWx1ZXM9ZXhwbG9kZSgnICcsJHZhbHVlKTskcmV0dXJuPWFycmF5KCk7aWYoY291bnQoJHZhbHVlcyk9PTQpe2ZvcigkaT0wOyRpPDQ7JGkrKyl7JHJldHVyblskc2hvcnRoYW5kc1skcHJvcGVydHldWyRpXV09JHZhbHVlc1skaV0uJGltcG9ydGFudDt9fWVsc2VpZihjb3VudCgkdmFsdWVzKT09Myl7JHJldHVyblskc2hvcnRoYW5kc1skcHJvcGVydHldWzBdXT0kdmFsdWVzWzBdLiRpbXBvcnRhbnQ7JHJldHVyblskc2hvcnRoYW5kc1skcHJvcGVydHldWzFdXT0kdmFsdWVzWzFdLiRpbXBvcnRhbnQ7JHJldHVyblskc2hvcnRoYW5kc1skcHJvcGVydHldWzNdXT0kdmFsdWVzWzFdLiRpbXBvcnRhbnQ7JHJldHVyblskc2hvcnRoYW5kc1skcHJvcGVydHldWzJdXT0kdmFsdWVzWzJdLiRpbXBvcnRhbnQ7fWVsc2VpZihjb3VudCgkdmFsdWVzKT09Mil7Zm9yKCRpPTA7JGk8NDskaSsrKXskcmV0dXJuWyRzaG9ydGhhbmRzWyRwcm9wZXJ0eV1bJGldXT0oKCRpJTIhPTApKT8kdmFsdWVzWzFdLiRpbXBvcnRhbnQ6JHZhbHVlc1swXS4kaW1wb3J0YW50O319ZWxzZXtmb3IoJGk9MDskaTw0OyRpKyspeyRyZXR1cm5bJHNob3J0aGFuZHNbJHByb3BlcnR5XVskaV1dPSR2YWx1ZXNbMF0uJGltcG9ydGFudDt9fXJldHVybiAkcmV0dXJuO31mdW5jdGlvbiBleHBsb2RlX3dzKCRzZXAsJHN0cmluZyl7JHN0YXR1cz0nc3QnOyR0bz0nJzskb3V0cHV0PWFycmF5KCk7JG51bT0wO2ZvcigkaT0wLCRsZW49c3RybGVuKCRzdHJpbmcpOyRpPCRsZW47JGkrKyl7c3dpdGNoKCRzdGF0dXMpe2Nhc2UgJ3N0JzppZigkc3RyaW5neyRpfT09JHNlcCYmIWNzc3RpZHk6OmVzY2FwZWQoJHN0cmluZywkaSkpeysrJG51bTt9ZWxzZWlmKCRzdHJpbmd7JGl9PT0nIid8fCRzdHJpbmd7JGl9PT0nXCcnfHwkc3RyaW5neyRpfT09JygnJiYhY3NzdGlkeTo6ZXNjYXBlZCgkc3RyaW5nLCRpKSl7JHN0YXR1cz0nc3RyJzskdG89KCRzdHJpbmd7JGl9PT0nKCcpPycpJzokc3RyaW5neyRpfTsoaXNzZXQoJG91dHB1dFskbnVtXSkpPyRvdXRwdXRbJG51bV0uPSRzdHJpbmd7JGl9OiRvdXRwdXRbJG51bV09JHN0cmluZ3skaX07fWVsc2V7KGlzc2V0KCRvdXRwdXRbJG51bV0pKT8kb3V0cHV0WyRudW1dLj0kc3RyaW5neyRpfTokb3V0cHV0WyRudW1dPSRzdHJpbmd7JGl9O31icmVhaztjYXNlICdzdHInOmlmKCRzdHJpbmd7JGl9PT0kdG8mJiFjc3N0aWR5Ojplc2NhcGVkKCRzdHJpbmcsJGkpKXskc3RhdHVzPSdzdCc7fShpc3NldCgkb3V0cHV0WyRudW1dKSk/JG91dHB1dFskbnVtXS49JHN0cmluZ3skaX06JG91dHB1dFskbnVtXT0kc3RyaW5neyRpfTticmVhazt9fWlmKGlzc2V0KCRvdXRwdXRbMF0pKXtyZXR1cm4gJG91dHB1dDt9ZWxzZXtyZXR1cm4gYXJyYXkoJG91dHB1dCk7fX1mdW5jdGlvbiBtZXJnZV80dmFsdWVfc2hvcnRoYW5kcygkYXJyYXkpeyRyZXR1cm49JGFycmF5OyRzaG9ydGhhbmRzPSYkR0xPQkFMU1snY3NzdGlkeSddWydzaG9ydGhhbmRzJ107Zm9yZWFjaCgkc2hvcnRoYW5kcyBhcyAka2V5PT4kdmFsdWUpe2lmKGlzc2V0KCRhcnJheVskdmFsdWVbMF1dKSYmaXNzZXQoJGFycmF5WyR2YWx1ZVsxXV0pJiZpc3NldCgkYXJyYXlbJHZhbHVlWzJdXSkmJmlzc2V0KCRhcnJheVskdmFsdWVbM11dKSYmJHZhbHVlIT09MCl7JHJldHVyblska2V5XT0nJzskaW1wb3J0YW50PScnO2ZvcigkaT0wOyRpPDQ7JGkrKyl7JHZhbD0kYXJyYXlbJHZhbHVlWyRpXV07aWYoY3NzdGlkeTo6aXNfaW1wb3J0YW50KCR2YWwpKXskaW1wb3J0YW50PSchaW1wb3J0YW50JzskcmV0dXJuWyRrZXldLj1jc3N0aWR5OjpndndfaW1wb3J0YW50KCR2YWwpLicgJzt9ZWxzZXskcmV0dXJuWyRrZXldLj0kdmFsLicgJzt9dW5zZXQoJHJldHVyblskdmFsdWVbJGldXSk7fSRyZXR1cm5bJGtleV09Y3NzdGlkeV9vcHRpbWlzZTo6c2hvcnRoYW5kKHRyaW0oJHJldHVyblska2V5XS4kaW1wb3J0YW50KSk7fX1yZXR1cm4gJHJldHVybjt9ZnVuY3Rpb24gZGlzc29sdmVfc2hvcnRfYmcoJHN0cl92YWx1ZSl7JGJhY2tncm91bmRfcHJvcF9kZWZhdWx0PSYkR0xPQkFMU1snY3NzdGlkeSddWydiYWNrZ3JvdW5kX3Byb3BfZGVmYXVsdCddOyRyZXBlYXQ9YXJyYXkoJ3JlcGVhdCcsJ3JlcGVhdC14JywncmVwZWF0LXknLCduby1yZXBlYXQnLCdzcGFjZScpOyRhdHRhY2htZW50PWFycmF5KCdzY3JvbGwnLCdmaXhlZCcsJ2xvY2FsJyk7JGNsaXA9YXJyYXkoJ2JvcmRlcicsJ3BhZGRpbmcnKTskb3JpZ2luPWFycmF5KCdib3JkZXInLCdwYWRkaW5nJywnY29udGVudCcpOyRwb3M9YXJyYXkoJ3RvcCcsJ2NlbnRlcicsJ2JvdHRvbScsJ2xlZnQnLCdyaWdodCcpOyRpbXBvcnRhbnQ9Jyc7JHJldHVybj1hcnJheSgnYmFja2dyb3VuZC1pbWFnZSc9Pk5VTEwsJ2JhY2tncm91bmQtc2l6ZSc9Pk5VTEwsJ2JhY2tncm91bmQtcmVwZWF0Jz0+TlVMTCwnYmFja2dyb3VuZC1wb3NpdGlvbic9Pk5VTEwsJ2JhY2tncm91bmQtYXR0YWNobWVudCc9Pk5VTEwsJ2JhY2tncm91bmQtY2xpcCc9Pk5VTEwsJ2JhY2tncm91bmQtb3JpZ2luJz0+TlVMTCwnYmFja2dyb3VuZC1jb2xvcic9Pk5VTEwpO2lmKGNzc3RpZHk6OmlzX2ltcG9ydGFudCgkc3RyX3ZhbHVlKSl7JGltcG9ydGFudD0nICFpbXBvcnRhbnQnOyRzdHJfdmFsdWU9Y3NzdGlkeTo6Z3Z3X2ltcG9ydGFudCgkc3RyX3ZhbHVlKTt9JHN0cl92YWx1ZT1jc3N0aWR5X29wdGltaXNlOjpleHBsb2RlX3dzKCcsJywkc3RyX3ZhbHVlKTtmb3IoJGk9MDskaTxjb3VudCgkc3RyX3ZhbHVlKTskaSsrKXskaGF2ZVsnY2xpcCddPUZBTFNFOyRoYXZlWydwb3MnXT1GQUxTRTskaGF2ZVsnY29sb3InXT1GQUxTRTskaGF2ZVsnYmcnXT1GQUxTRTskc3RyX3ZhbHVlWyRpXT1jc3N0aWR5X29wdGltaXNlOjpleHBsb2RlX3dzKCcgJyx0cmltKCRzdHJfdmFsdWVbJGldKSk7Zm9yKCRqPTA7JGo8Y291bnQoJHN0cl92YWx1ZVskaV0pOyRqKyspe2lmKCRoYXZlWydiZyddPT09RkFMU0UmJihzdWJzdHIoJHN0cl92YWx1ZVskaV1bJGpdLDAsNCk9PSd1cmwoJ3x8JHN0cl92YWx1ZVskaV1bJGpdPT09J25vbmUnKSl7JHJldHVyblsnYmFja2dyb3VuZC1pbWFnZSddLj0kc3RyX3ZhbHVlWyRpXVskal0uJywnOyRoYXZlWydiZyddPVRSVUU7fWVsc2VpZihpbl9hcnJheSgkc3RyX3ZhbHVlWyRpXVskal0sJHJlcGVhdCxUUlVFKSl7JHJldHVyblsnYmFja2dyb3VuZC1yZXBlYXQnXS49JHN0cl92YWx1ZVskaV1bJGpdLicsJzt9ZWxzZWlmKGluX2FycmF5KCRzdHJfdmFsdWVbJGldWyRqXSwkYXR0YWNobWVudCxUUlVFKSl7JHJldHVyblsnYmFja2dyb3VuZC1hdHRhY2htZW50J10uPSRzdHJfdmFsdWVbJGldWyRqXS4nLCc7fWVsc2VpZihpbl9hcnJheSgkc3RyX3ZhbHVlWyRpXVskal0sJGNsaXAsVFJVRSkmJiEkaGF2ZVsnY2xpcCddKXskcmV0dXJuWydiYWNrZ3JvdW5kLWNsaXAnXS49JHN0cl92YWx1ZVskaV1bJGpdLicsJzskaGF2ZVsnY2xpcCddPVRSVUU7fWVsc2VpZihpbl9hcnJheSgkc3RyX3ZhbHVlWyRpXVskal0sJG9yaWdpbixUUlVFKSl7JHJldHVyblsnYmFja2dyb3VuZC1vcmlnaW4nXS49JHN0cl92YWx1ZVskaV1bJGpdLicsJzt9ZWxzZWlmKCRzdHJfdmFsdWVbJGldWyRqXXswfT09JygnKXskcmV0dXJuWydiYWNrZ3JvdW5kLXNpemUnXS49c3Vic3RyKCRzdHJfdmFsdWVbJGldWyRqXSwxLC0xKS4nLCc7fWVsc2VpZihpbl9hcnJheSgkc3RyX3ZhbHVlWyRpXVskal0sJHBvcyxUUlVFKXx8aXNfbnVtZXJpYygkc3RyX3ZhbHVlWyRpXVskal17MH0pfHwkc3RyX3ZhbHVlWyRpXVskal17MH09PT1OVUxMKXskcmV0dXJuWydiYWNrZ3JvdW5kLXBvc2l0aW9uJ10uPSRzdHJfdmFsdWVbJGldWyRqXTtpZighJGhhdmVbJ3BvcyddKSRyZXR1cm5bJ2JhY2tncm91bmQtcG9zaXRpb24nXS49JyAnO2Vsc2UgJHJldHVyblsnYmFja2dyb3VuZC1wb3NpdGlvbiddLj0nLCc7JGhhdmVbJ3BvcyddPVRSVUU7fWVsc2VpZighJGhhdmVbJ2NvbG9yJ10peyRyZXR1cm5bJ2JhY2tncm91bmQtY29sb3InXS49JHN0cl92YWx1ZVskaV1bJGpdLicsJzskaGF2ZVsnY29sb3InXT1UUlVFO319fWZvcmVhY2goJGJhY2tncm91bmRfcHJvcF9kZWZhdWx0IGFzICRiZ19wcm9wPT4kZGVmYXVsdF92YWx1ZSl7aWYoJHJldHVyblskYmdfcHJvcF0hPT1OVUxMKXskcmV0dXJuWyRiZ19wcm9wXT1zdWJzdHIoJHJldHVyblskYmdfcHJvcF0sMCwtMSkuJGltcG9ydGFudDt9ZWxzZSAkcmV0dXJuWyRiZ19wcm9wXT0kZGVmYXVsdF92YWx1ZS4kaW1wb3J0YW50O31yZXR1cm4gJHJldHVybjt9ZnVuY3Rpb24gbWVyZ2VfYmcoJGlucHV0X2Nzcyl7JGJhY2tncm91bmRfcHJvcF9kZWZhdWx0PSYkR0xPQkFMU1snY3NzdGlkeSddWydiYWNrZ3JvdW5kX3Byb3BfZGVmYXVsdCddOyRudW1iZXJfb2ZfdmFsdWVzPUBtYXgoY291bnQoY3NzdGlkeV9vcHRpbWlzZTo6ZXhwbG9kZV93cygnLCcsJGlucHV0X2Nzc1snYmFja2dyb3VuZC1pbWFnZSddKSksY291bnQoY3NzdGlkeV9vcHRpbWlzZTo6ZXhwbG9kZV93cygnLCcsJGlucHV0X2Nzc1snYmFja2dyb3VuZC1jb2xvciddKSksMSk7JGJnX2ltZ19hcnJheT1AY3NzdGlkeV9vcHRpbWlzZTo6ZXhwbG9kZV93cygnLCcsY3NzdGlkeTo6Z3Z3X2ltcG9ydGFudCgkaW5wdXRfY3NzWydiYWNrZ3JvdW5kLWltYWdlJ10pKTskbmV3X2JnX3ZhbHVlPScnOyRpbXBvcnRhbnQ9Jyc7Zm9yKCRpPTA7JGk8JG51bWJlcl9vZl92YWx1ZXM7JGkrKyl7Zm9yZWFjaCgkYmFja2dyb3VuZF9wcm9wX2RlZmF1bHQgYXMgJGJnX3Byb3BlcnR5PT4kZGVmYXVsdF92YWx1ZSl7aWYoIWlzc2V0KCRpbnB1dF9jc3NbJGJnX3Byb3BlcnR5XSkpe2NvbnRpbnVlO30kY3VyX3ZhbHVlPSRpbnB1dF9jc3NbJGJnX3Byb3BlcnR5XTtpZigoIWlzc2V0KCRiZ19pbWdfYXJyYXlbJGldKXx8JGJnX2ltZ19hcnJheVskaV09PT0nbm9uZScpJiYoJGJnX3Byb3BlcnR5PT09J2JhY2tncm91bmQtc2l6ZSd8fCRiZ19wcm9wZXJ0eT09PSdiYWNrZ3JvdW5kLXBvc2l0aW9uJ3x8JGJnX3Byb3BlcnR5PT09J2JhY2tncm91bmQtYXR0YWNobWVudCd8fCRiZ19wcm9wZXJ0eT09PSdiYWNrZ3JvdW5kLXJlcGVhdCcpKXtjb250aW51ZTt9aWYoY3NzdGlkeTo6aXNfaW1wb3J0YW50KCRjdXJfdmFsdWUpKXskaW1wb3J0YW50PScgIWltcG9ydGFudCc7JGN1cl92YWx1ZT1jc3N0aWR5OjpndndfaW1wb3J0YW50KCRjdXJfdmFsdWUpO31pZigkY3VyX3ZhbHVlPT09JGRlZmF1bHRfdmFsdWUpe2NvbnRpbnVlO30kdGVtcD1jc3N0aWR5X29wdGltaXNlOjpleHBsb2RlX3dzKCcsJywkY3VyX3ZhbHVlKTtpZihpc3NldCgkdGVtcFskaV0pKXtpZigkYmdfcHJvcGVydHk9PSdiYWNrZ3JvdW5kLXNpemUnKXskbmV3X2JnX3ZhbHVlLj0nKCcuJHRlbXBbJGldLicpICc7fWVsc2V7JG5ld19iZ192YWx1ZS49JHRlbXBbJGldLicgJzt9fX0kbmV3X2JnX3ZhbHVlPXRyaW0oJG5ld19iZ192YWx1ZSk7aWYoJGkhPSRudW1iZXJfb2ZfdmFsdWVzLTEpJG5ld19iZ192YWx1ZS49JywnO31mb3JlYWNoKCRiYWNrZ3JvdW5kX3Byb3BfZGVmYXVsdCBhcyAkYmdfcHJvcGVydHk9PiRkZWZhdWx0X3ZhbHVlKXt1bnNldCgkaW5wdXRfY3NzWyRiZ19wcm9wZXJ0eV0pO31pZigkbmV3X2JnX3ZhbHVlIT09JycpJGlucHV0X2Nzc1snYmFja2dyb3VuZCddPSRuZXdfYmdfdmFsdWUuJGltcG9ydGFudDtyZXR1cm4gJGlucHV0X2Nzczt9fSA/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.csstidy_print.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgY3NzdGlkeV9wcmludHt2YXIgJGlucHV0X2Nzcz0nJzt2YXIgJG91dHB1dF9jc3M9Jyc7dmFyICRvdXRwdXRfY3NzX3BsYWluPScnO2Z1bmN0aW9uIGNzc3RpZHlfcHJpbnQoJiRjc3MpeyR0aGlzLT5wYXJzZXI9JiRjc3M7JHRoaXMtPmNzcz0mJGNzcy0+Y3NzOyR0aGlzLT50ZW1wbGF0ZT0mJGNzcy0+dGVtcGxhdGU7JHRoaXMtPnRva2Vucz0mJGNzcy0+dG9rZW5zOyR0aGlzLT5jaGFyc2V0PSYkY3NzLT5jaGFyc2V0OyR0aGlzLT5pbXBvcnQ9JiRjc3MtPmltcG9ydDskdGhpcy0+bmFtZXNwYWNlPSYkY3NzLT5uYW1lc3BhY2U7fWZ1bmN0aW9uIF9yZXNldCgpeyR0aGlzLT5vdXRwdXRfY3NzPScnOyR0aGlzLT5vdXRwdXRfY3NzX3BsYWluPScnO31mdW5jdGlvbiBwbGFpbigpeyR0aGlzLT5fcHJpbnQodHJ1ZSk7cmV0dXJuICR0aGlzLT5vdXRwdXRfY3NzX3BsYWluO31mdW5jdGlvbiBmb3JtYXR0ZWQoKXskdGhpcy0+X3ByaW50KGZhbHNlKTtyZXR1cm4gJHRoaXMtPm91dHB1dF9jc3M7fWZ1bmN0aW9uIF9wcmludCgkcGxhaW49ZmFsc2Upe2lmKCR0aGlzLT5vdXRwdXRfY3NzJiYkdGhpcy0+b3V0cHV0X2Nzc19wbGFpbil7cmV0dXJuO30kb3V0cHV0PScnO2lmKCEkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdwcmVzZXJ2ZV9jc3MnKSl7JHRoaXMtPl9jb252ZXJ0X3Jhd19jc3MoKTt9JHRlbXBsYXRlPSYkdGhpcy0+dGVtcGxhdGU7aWYoJHBsYWluKXskdGVtcGxhdGU9YXJyYXlfbWFwKCdzdHJpcF90YWdzJywkdGVtcGxhdGUpO31pZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCd0aW1lc3RhbXAnKSl7YXJyYXlfdW5zaGlmdCgkdGhpcy0+dG9rZW5zLGFycmF5KENPTU1FTlQsJyBDU1NUaWR5ICcuJHRoaXMtPnBhcnNlci0+dmVyc2lvbi4nOiAnLmRhdGUoJ3InKS4nICcpKTt9aWYoIWVtcHR5KCR0aGlzLT5jaGFyc2V0KSl7JG91dHB1dC49JHRlbXBsYXRlWzBdLidAY2hhcnNldCAnLiR0ZW1wbGF0ZVs1XS4kdGhpcy0+Y2hhcnNldC4kdGVtcGxhdGVbNl07fWlmKCFlbXB0eSgkdGhpcy0+aW1wb3J0KSl7Zm9yKCRpPTAsJHNpemU9Y291bnQoJHRoaXMtPmltcG9ydCk7JGk8JHNpemU7JGkrKyl7JG91dHB1dC49JHRlbXBsYXRlWzBdLidAaW1wb3J0ICcuJHRlbXBsYXRlWzVdLiR0aGlzLT5pbXBvcnRbJGldLiR0ZW1wbGF0ZVs2XTt9fWlmKCFlbXB0eSgkdGhpcy0+bmFtZXNwYWNlKSl7JG91dHB1dC49JHRlbXBsYXRlWzBdLidAbmFtZXNwYWNlICcuJHRlbXBsYXRlWzVdLiR0aGlzLT5uYW1lc3BhY2UuJHRlbXBsYXRlWzZdO30kb3V0cHV0Lj0kdGVtcGxhdGVbMTNdOyRpbl9hdF9vdXQ9Jyc7JG91dD0mJG91dHB1dDtmb3JlYWNoKCR0aGlzLT50b2tlbnMgYXMgJGtleT0+JHRva2VuKXtzd2l0Y2goJHRva2VuWzBdKXtjYXNlIEFUX1NUQVJUOiRvdXQuPSR0ZW1wbGF0ZVswXS4kdGhpcy0+X2h0bWxzcCgkdG9rZW5bMV0sJHBsYWluKS4kdGVtcGxhdGVbMV07JG91dD0mJGluX2F0X291dDticmVhaztjYXNlIFNFTF9TVEFSVDppZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdsb3dlcmNhc2VfcycpKSR0b2tlblsxXT1zdHJ0b2xvd2VyKCR0b2tlblsxXSk7JG91dC49KCR0b2tlblsxXXswfSE9PSdAJyk/JHRlbXBsYXRlWzJdLiR0aGlzLT5faHRtbHNwKCR0b2tlblsxXSwkcGxhaW4pOiR0ZW1wbGF0ZVswXS4kdGhpcy0+X2h0bWxzcCgkdG9rZW5bMV0sJHBsYWluKTskb3V0Lj0kdGVtcGxhdGVbM107YnJlYWs7Y2FzZSBQUk9QRVJUWTppZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdjYXNlX3Byb3BlcnRpZXMnKT09MikkdG9rZW5bMV09c3RydG91cHBlcigkdG9rZW5bMV0pO2lmKCR0aGlzLT5wYXJzZXItPmdldF9jZmcoJ2Nhc2VfcHJvcGVydGllcycpPT0xKSR0b2tlblsxXT1zdHJ0b2xvd2VyKCR0b2tlblsxXSk7JG91dC49JHRlbXBsYXRlWzRdLiR0aGlzLT5faHRtbHNwKCR0b2tlblsxXSwkcGxhaW4pLic6Jy4kdGVtcGxhdGVbNV07YnJlYWs7Y2FzZSBWQUxVRTokb3V0Lj0kdGhpcy0+X2h0bWxzcCgkdG9rZW5bMV0sJHBsYWluKTtpZigkdGhpcy0+X3NlZWtub2NvbW1lbnQoJGtleSwxKT09U0VMX0VORCYmJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygncmVtb3ZlX2xhc3RfOycpKXskb3V0Lj1zdHJfcmVwbGFjZSgnOycsJycsJHRlbXBsYXRlWzZdKTt9ZWxzZXskb3V0Lj0kdGVtcGxhdGVbNl07fWJyZWFrO2Nhc2UgU0VMX0VORDokb3V0Lj0kdGVtcGxhdGVbN107aWYoJHRoaXMtPl9zZWVrbm9jb21tZW50KCRrZXksMSkhPUFUX0VORCkkb3V0Lj0kdGVtcGxhdGVbOF07YnJlYWs7Y2FzZSBBVF9FTkQ6JG91dD0mJG91dHB1dDskb3V0Lj0kdGVtcGxhdGVbMTBdLnN0cl9yZXBsYWNlKCJcbiIsIlxuIi4kdGVtcGxhdGVbMTBdLCRpbl9hdF9vdXQpOyRpbl9hdF9vdXQ9Jyc7JG91dC49JHRlbXBsYXRlWzldO2JyZWFrO2Nhc2UgQ09NTUVOVDokb3V0Lj0kdGVtcGxhdGVbMTFdLicvKicuJHRoaXMtPl9odG1sc3AoJHRva2VuWzFdLCRwbGFpbikuJyovJy4kdGVtcGxhdGVbMTJdO2JyZWFrO319JG91dHB1dD10cmltKCRvdXRwdXQpO2lmKCEkcGxhaW4peyR0aGlzLT5vdXRwdXRfY3NzPSRvdXRwdXQ7JHRoaXMtPl9wcmludCh0cnVlKTt9ZWxzZXskdGhpcy0+b3V0cHV0X2Nzc19wbGFpbj0kb3V0cHV0O319ZnVuY3Rpb24gX3NlZWtub2NvbW1lbnQoJGtleSwkbW92ZSl7JGdvPSgkbW92ZT4wKT8xOi0xO2ZvcigkaT0ka2V5KzE7YWJzKCRrZXktJGkpLTE8YWJzKCRtb3ZlKTskaSs9JGdvKXtpZighaXNzZXQoJHRoaXMtPnRva2Vuc1skaV0pKXtyZXR1cm47fWlmKCR0aGlzLT50b2tlbnNbJGldWzBdPT1DT01NRU5UKXskbW92ZSs9MTtjb250aW51ZTt9cmV0dXJuICR0aGlzLT50b2tlbnNbJGldWzBdO319ZnVuY3Rpb24gX2NvbnZlcnRfcmF3X2NzcygpeyR0aGlzLT50b2tlbnM9YXJyYXkoKTtmb3JlYWNoKCR0aGlzLT5jc3MgYXMgJG1lZGl1bT0+JHZhbCl7aWYoJHRoaXMtPnBhcnNlci0+Z2V0X2NmZygnc29ydF9zZWxlY3RvcnMnKSlrc29ydCgkdmFsKTtpZigkbWVkaXVtIT1ERUZBVUxUX0FUKXskdGhpcy0+cGFyc2VyLT5fYWRkX3Rva2VuKEFUX1NUQVJULCRtZWRpdW0sdHJ1ZSk7fWZvcmVhY2goJHZhbCBhcyAkc2VsZWN0b3I9PiR2YWxpKXtpZigkdGhpcy0+cGFyc2VyLT5nZXRfY2ZnKCdzb3J0X3Byb3BlcnRpZXMnKSlrc29ydCgkdmFsaSk7JHRoaXMtPnBhcnNlci0+X2FkZF90b2tlbihTRUxfU1RBUlQsJHNlbGVjdG9yLHRydWUpO2ZvcmVhY2goJHZhbGkgYXMgJHByb3BlcnR5PT4kdmFsail7JHRoaXMtPnBhcnNlci0+X2FkZF90b2tlbihQUk9QRVJUWSwkcHJvcGVydHksdHJ1ZSk7JHRoaXMtPnBhcnNlci0+X2FkZF90b2tlbihWQUxVRSwkdmFsaix0cnVlKTt9JHRoaXMtPnBhcnNlci0+X2FkZF90b2tlbihTRUxfRU5ELCRzZWxlY3Rvcix0cnVlKTt9aWYoJG1lZGl1bSE9REVGQVVMVF9BVCl7JHRoaXMtPnBhcnNlci0+X2FkZF90b2tlbihBVF9FTkQsJG1lZGl1bSx0cnVlKTt9fX1mdW5jdGlvbiBfaHRtbHNwKCRzdHJpbmcsJHBsYWluKXtpZighJHBsYWluKXtyZXR1cm4gaHRtbHNwZWNpYWxjaGFycygkc3RyaW5nKTt9cmV0dXJuICRzdHJpbmc7fWZ1bmN0aW9uIGdldF9yYXRpbygpe2lmKCEkdGhpcy0+b3V0cHV0X2Nzc19wbGFpbil7JHRoaXMtPmZvcm1hdHRlZCgpO31yZXR1cm4gcm91bmQoKHN0cmxlbigkdGhpcy0+aW5wdXRfY3NzKS1zdHJsZW4oJHRoaXMtPm91dHB1dF9jc3NfcGxhaW4pKS9zdHJsZW4oJHRoaXMtPmlucHV0X2NzcyksMykqMTAwO31mdW5jdGlvbiBnZXRfZGlmZigpe2lmKCEkdGhpcy0+b3V0cHV0X2Nzc19wbGFpbil7JHRoaXMtPmZvcm1hdHRlZCgpO30kZGlmZj1zdHJsZW4oJHRoaXMtPm91dHB1dF9jc3NfcGxhaW4pLXN0cmxlbigkdGhpcy0+aW5wdXRfY3NzKTtpZigkZGlmZj4wKXtyZXR1cm4gJysnLiRkaWZmO31lbHNlaWYoJGRpZmY9PTApe3JldHVybiAnKy0nLiRkaWZmO31yZXR1cm4gJGRpZmY7fWZ1bmN0aW9uIHNpemUoJGxvYz0nb3V0cHV0Jyl7aWYoJGxvYz09J291dHB1dCcmJiEkdGhpcy0+b3V0cHV0X2Nzcyl7JHRoaXMtPmZvcm1hdHRlZCgpO31pZigkbG9jPT0naW5wdXQnKXtyZXR1cm4oc3RybGVuKCR0aGlzLT5pbnB1dF9jc3MpLzEwMDApO31lbHNle3JldHVybihzdHJsZW4oJHRoaXMtPm91dHB1dF9jc3NfcGxhaW4pLzEwMDApO319fSA/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.scriptdeploy_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZmluYWwgY2xhc3Mgc2NyaXB0ZGVwbG95X3V0aWxze3Byb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe31wdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoJHNjcmlwdFR5cGUsJHNJRCwkYWpheCl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRUdXJuT05WYWw9JG1vZC0+R2V0UHJlZmVyZW5jZSgnVHVybk9OVmFsJywxKTtpZigkVHVybk9OVmFsKXskdmFsSXQ9bmV3IHNkVmFsKCk7cmV0dXJuICR2YWxJdC0+dmFsX0l0KCRzY3JpcHRUeXBlLCRzSUQsJGFqYXgpO31lbHNle3JldHVybiBmYWxzZTt9ZXhpdCgpO31wdWJsaWMgZnVuY3Rpb24gcHVsbExvZ3MoJHBhZ2UsJGxpbWl0LCR3aGVyZUFSRyl7JGxvZ2dpbj1uZXcgbG9nZ2luKCk7cmV0dXJuICRsb2dnaW4tPnB1bGxMb2coJHBhZ2UsJGxpbWl0LCR3aGVyZUFSRyk7ZXhpdCgpO31wdWJsaWMgZnVuY3Rpb24gY3NzX3VybF9kaXNzZWN0aW9uKCRzSUQpe3JldHVybiBzY3JpcHRfZGlzc2VjdGlvbjo6Y3NzX3VybF9kaXNzZWN0aW9uKCRzSUQpO2V4aXQoKTt9cHVibGljIGZ1bmN0aW9uIHVubG9jaygkcGFyYW1zKXtyZXR1cm4gc2NyaXB0X2Rpc3NlY3Rpb246OmNzc191cmxfZGlzc2VjdGlvbigkc0lEKTtleGl0KCk7fXB1YmxpYyBmdW5jdGlvbiBwdWxsVGlwKCR0aXApeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTtyZXR1cm4gJG1vZC0+TGFuZygkdGlwKTt9cHVibGljIGZ1bmN0aW9uIGlzX2VkaXRhYmxlKCRTaWQsJHVpZD0nJyl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRzdGF0dXM9JG1vZC0+R2V0UHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLVNEJywnMCcpO3JldHVybiAkc3RhdHVzPT0nMCc/dHJ1ZTooc2NyaXB0ZGVwbG95X3V0aWxzOjpTVEFSVHVubG9ja19zY3JpcHQoJFNpZCk/dHJ1ZTpmYWxzZSk7fXB1YmxpYyBmdW5jdGlvbiBsb2NrX3NjcmlwdCgkU2lkLCR1aWQpeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskbW9kLT5TZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtU0QnLCcxJyk7JG1vZC0+U2V0UHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLUVkaXRvci1TRCcsJHVpZCk7JG5vdz1kYXRlKCJZLW0tZCBIOmk6cyIpOyRtb2QtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1FZGl0ZWRUaW1lLVNEJywkbm93KTt9cHVibGljIGZ1bmN0aW9uIHVubG9ja19zY3JpcHQoJFNpZCl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRtb2QtPlNldFByZWZlcmVuY2UoJFNpZC4nLUxvY2tlZC1TRCcsJzAnKTskbW9kLT5TZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdG9yLVNEJywnJyk7JG1vZC0+U2V0UHJlZmVyZW5jZSgkU2lkLictTG9ja2VkLUVkaXRlZFRpbWUtU0QnLCcnKTskbG9nZ2luPW5ldyBsb2dnaW4oKTskbG9nZ2luLT5fZG9BdWRpdCgnZWRpdCcsJ29rJywkbW9kLT5MYW5nKCdyZWxlYXNlZF9kb0F1ZGl0JykuIiBpZDokU2lkIiwnJywnU2NyaXB0RGVwbG95Jyk7fXB1YmxpYyBmdW5jdGlvbiBTVEFSVHVubG9ja19zY3JpcHQoJFNpZCl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRsYXN0X3VwZGF0ZT0kbW9kLT5HZXRQcmVmZXJlbmNlKCRTaWQuJy1Mb2NrZWQtRWRpdGVkVGltZS1TRCcpOyRsYXN0X3VwZGF0ZT1zdHJ0b3RpbWUoJGxhc3RfdXBkYXRlKTskaG93X2xvbmdfYWdvPXRpbWUoKS0kbGFzdF91cGRhdGU7aWYoJGhvd19sb25nX2Fnbz4yMSl7c2NyaXB0ZGVwbG95X3V0aWxzOjp1bmxvY2tfc2NyaXB0KCRTaWQpO3JldHVybiB0cnVlO31lbHNle3JldHVybiBmYWxzZTt9fXB1YmxpYyBmdW5jdGlvbiBjaGVja191c2VyX2VkaXRpbmcoJGV4aXQ9dHJ1ZSwkYWxpdmU9ZmFsc2UsJFNpZCwkdWlkPScnKXtpZigkYWxpdmU9PXRydWUpe3NjcmlwdGRlcGxveV91dGlsczo6bG9ja19zY3JpcHQoJFNpZCwkdWlkKTtwcmludCgndHJ1ZScpO319cHVibGljIGZ1bmN0aW9uIFNldFVzZXJTY2FwZSgkdWlkLCRkYXRhPScnKXtpZigkdWlkPT0nJyl7cmV0dXJuO30kZGF0YT1zY3JpcHRkZXBsb3lfdXRpbHM6OmJ1aWxkVXNlclNjYXBlKCRkYXRhKTtlY2hvICRkYXRhO31wdWJsaWMgZnVuY3Rpb24gR2V0VXNlclNjYXBlKCR1aWQpe2lmKCR1aWQ9PScnKXtyZXR1cm47fSRkYXRhPXNjcmlwdGRlcGxveV91dGlsczo6YnVpbGRVc2VyU2NhcGUoKTtlY2hvICRkYXRhO31wdWJsaWMgZnVuY3Rpb24gYnVpbGRVc2VyU2NhcGUoJGRhdGE9Jycpe2lmKCRkYXRhIT0nJyl7anNvbl9kZWNvZGUoJGRhdGEpO30kdT1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7cmV0dXJuIGpzb25fZW5jb2RlKCR1KTt9cHVibGljIGZ1bmN0aW9uIEdldF9Ob3Rlcygkc2lkKXskbm90ZT0nJzskZGI9Y21zbXMoKS0+R2V0RGIoKTskcXVlcnk9IlNFTEVDVCBub3RlcyBGUk9NICIuU0RfU0NSSVBUT1BUSU9OUy4iIFdIRVJFIElEPT8gTElNSVQgMSI7JG5vdGU9JGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRzaWQpKTtyZXR1cm4gJG5vdGU7fXB1YmxpYyBmdW5jdGlvbiBfSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCRwZXJtPScnKXskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7JHAxPSRtb2QtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNjcmlwdERlcGxveSBPcHRpb25zJyk7JHAyPSRtb2QtPkNoZWNrUGVybWlzc2lvbignUmVtb3ZlIFNjcmlwdERlcGxveSBTY3JpcHQnKTskcDM9JG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdSZW1vdmUgU2NyaXB0RGVwbG95IEdyb3VwJyk7JHA0PSRtb2QtPkNoZWNrUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3kgU2NyaXB0Jyk7JHA1PSRtb2QtPkNoZWNrUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3kgR3JvdXAnKTskcDY9JG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdTdGVhbCBTY3JpcHREZXBsb3kgU2NyaXB0Jyk7JHJldD0wO3N3aXRjaCgkcGVybSl7Y2FzZSAnJzokcmV0PSgkcDF8fCRwMnx8JHAzfHwkcDR8fCRwNXx8JHA2KTticmVhaztjYXNlICdhZGRncm91cCc6JHJldD0oJHA0KTticmVhaztjYXNlICdhZGR1c2VyJzokcmV0PSgkcDEpO2JyZWFrO2Nhc2UgJ2FkZHByb3AnOmNhc2UgJ2FkZHByb3AyJzpjYXNlICdlZGl0cHJvcCc6Y2FzZSAnZGVsZXRlcHJvcCc6Y2FzZSAncHJvcGVydGllcyc6JHJldD0oJHA5KTticmVhaztjYXNlICdsaXN0dXNlcnMnOiRyZXQ9KCRwMnx8JHAzKTticmVhaztjYXNlICdsaXN0Z3JvdXBzJzokcmV0PSgkcDV8fCRwNik7YnJlYWs7Y2FzZSAnZWRpdGdyb3Vwcyc6JHJldD0oJHA1fHwkcDYpO2JyZWFrO2Nhc2UgJ2VkaXR1c2Vycyc6JHJldD0oJHAyKTticmVhaztjYXNlICdyZW1vdmVncm91cHMnOiRyZXQ9KCRwNyk7YnJlYWs7Y2FzZSAncmVtb3ZldXNlcnMnOiRyZXQ9KCRwMyk7YnJlYWs7Y2FzZSAnZWRpdHByZWZzJzpjYXNlICdzaXRlcHJlZnMnOiRyZXQ9KCRwOCk7YnJlYWs7Y2FzZSAndXNlcnNuZ3JvdXBzJzokcmV0PSgkcDF8fCRwMnx8JHAzfHwkcDR8fCRwNXx8JHA2fHwkcDcpO2JyZWFrO2Nhc2UgJ3RlbXBsYXRlcyc6JHJldD0oJHAxMCk7YnJlYWs7ZGVmYXVsdDokcmV0PTA7YnJlYWs7fXJldHVybiAkcmV0O31wdWJsaWMgZnVuY3Rpb24gZ2V0U2NyaXB0RnVsbCgkc2NyaXB0SUQpeyRkYj1jbXNtcygpLT5HZXREYigpOyRyZXRyZXN1bHQ9YXJyYXkoKTskcmVzdWx0cz1hcnJheSgpOyRxdWVyeT0nU0VMRUNUICogRlJPTSAnLlNEX1NDUklQVE5BTUVTLicgQVMgc24gJy4nTEVGVCBKT0lOICcuU0RfU0NSSVBUT1BUSU9OUy4nIEFTIHNvIE9OIHNuLklEID0gc28uSUQgJy4nTEVGVCBKT0lOICcuU0RfU0NSSVBUUEFSVFMuJyBBUyBzcCBPTiBzbi5JRCA9IHNwLklEICcuJ1dIRVJFIHNuLklEID0/JzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNjcmlwdElEKSk7d2hpbGUoJHJlc3VsdCYmISRyZXN1bHQtPkVPRil7JGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snSUQnXTskcmVzdWx0c1snU2NyaXB0SUQnXT0kcmVzdWx0LT5maWVsZHNbJ0lEJ107JHJlc3VsdHNbJ1NjcmlwdFNldCddPSRyZXN1bHQtPmZpZWxkc1snU2NyaXB0U2V0J107JHJlc3VsdHNbJ3BhdGhPcHRpb24nXT0kcmVzdWx0LT5maWVsZHNbJ3BhdGhPcHRpb24nXTskcmVzdWx0c1snU2NyaXB0SXMnXT0kcmVzdWx0LT5maWVsZHNbJ1NjcmlwdElzJ107JHJlc3VsdHNbJ3NjcmlwdFR5cGUnXT0kcmVzdWx0LT5maWVsZHNbJ3NjcmlwdFR5cGUnXTskcmVzdWx0c1snc2NyaXB0U2l6ZSddPSRyZXN1bHQtPmZpZWxkc1snc2NyaXB0U2l6ZSddOyRyZXN1bHRzWydub3RlcyddPSRyZXN1bHQtPmZpZWxkc1snbm90ZXMnXTskcmV0cmVzdWx0WyRkYUtleV09JHJlc3VsdHM7JHJlc3VsdC0+TW92ZU5leHQoKTt9cmV0dXJuICRyZXRyZXN1bHRbJHNjcmlwdElEXTt9cHVibGljIGZ1bmN0aW9uIEdldFNjcmlwdE5hbWUoJFNjcmlwdElEKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskcXVlcnk9IlNFTEVDVCBTY3JpcHRTZXQgRlJPTSAiLlNEX1NDUklQVE5BTUVTLiIgV0hFUkUgSUQgPT8iOyRTY3JpcHRTZXQ9JGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRTY3JpcHRJRCkpO3JldHVybiAkU2NyaXB0U2V0O31wdWJsaWMgZnVuY3Rpb24gZ2V0U2NyaXB0c0xpc3QoKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskcmV0cmVzdWx0PWFycmF5KCk7JHJlc3VsdHM9YXJyYXkoKTskcXVlcnk9J1NFTEVDVCBzby5JRCxzbi5TY3JpcHRTZXQsc28ucGF0aE9wdGlvbixzby5zY3JpcHRUeXBlLHNvLnNjcmlwdFNpemUsc28ubm90ZXMgRlJPTSAnLlNEX1NDUklQVE5BTUVTLicgQVMgc24gJy4nTEVGVCBKT0lOICcuU0RfU0NSSVBUT1BUSU9OUy4nIEFTIHNvIE9OIHNuLklEID0gc28uSUQnOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSk7d2hpbGUoJHJlc3VsdCYmISRyZXN1bHQtPkVPRil7JGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snSUQnXTskcmVzdWx0c1snU2NyaXB0U2V0J109JHJlc3VsdC0+ZmllbGRzWydTY3JpcHRTZXQnXTskcmVzdWx0c1sncGF0aE9wdGlvbiddPSRyZXN1bHQtPmZpZWxkc1sncGF0aE9wdGlvbiddOyRyZXN1bHRzWydzY3JpcHRUeXBlJ109JHJlc3VsdC0+ZmllbGRzWydzY3JpcHRUeXBlJ107JHJlc3VsdHNbJ3NjcmlwdFNpemUnXT0kcmVzdWx0LT5maWVsZHNbJ3NjcmlwdFNpemUnXTskcmVzdWx0c1snbm90ZXMnXT0kcmVzdWx0LT5maWVsZHNbJ25vdGVzJ107JHJldHJlc3VsdFskZGFLZXldPSRyZXN1bHRzOyRyZXN1bHQtPk1vdmVOZXh0KCk7fXJldHVybiAkcmV0cmVzdWx0O31wdWJsaWMgZnVuY3Rpb24gZ2V0R3JvdXBzTGlzdCgpeyRkYj1jbXNtcygpLT5HZXREYigpOyRyZXRyZXN1bHQ9YXJyYXkoKTskcmVzdWx0cz1hcnJheSgpOyRxdWVyeT0nU0VMRUNUICogRlJPTSAnLlNEX0dST1VQLicgQVMgc2RHICcuJ0xFRlQgSk9JTiAnLlNEX0dST1VQQVNTSUdOTUVOVC4nIEFTIHNkR20gT04gc2RHLklEID0gc2RHbS5Hcm91cHRTZXRJRCc7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTt3aGlsZSgkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskZGFLZXk9JHJlc3VsdC0+ZmllbGRzWydJRCddOyRyZXN1bHRzWydHcm91cHRTZXQnXT0kcmVzdWx0LT5maWVsZHNbJ0dyb3VwdFNldCddOyRyZXN1bHRzWydHcm91cHRUeXBlJ109JHJlc3VsdC0+ZmllbGRzWydHcm91cHRUeXBlJ107aWYoaXNzZXQoJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJRCddKSl7JHJlc3VsdHNbJ1NjcmlwdElEJ109Jyc7fWVsc2V7JHJlc3VsdHNbJ1NjcmlwdElEJ109Jyc7fSRyZXRyZXN1bHRbJGRhS2V5XT0kcmVzdWx0czskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJldHJlc3VsdDt9cHVibGljIGZ1bmN0aW9uIEdldEdyb3VwRGF0YSgkR3JvdXBJRCl7JGRiPWNtc21zKCktPkdldERiKCk7JHJldHJlc3VsdD1hcnJheSgpOyRyZXN1bHRzPWFycmF5KCk7JHF1ZXJ5PSdTRUxFQ1QgKiBGUk9NICcuU0RfR1JPVVAuJyBBUyBzZEcgJy4nV0hFUkUgc2RHLklEID0/JzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwSUQpKTt3aGlsZSgkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskZGFLZXk9JHJlc3VsdC0+ZmllbGRzWydJRCddOyRyZXN1bHRzWydHcm91cHRTZXQnXT0kcmVzdWx0LT5maWVsZHNbJ0dyb3VwdFNldCddOyRyZXN1bHRzWydHcm91cHRUeXBlJ109JHJlc3VsdC0+ZmllbGRzWydHcm91cHRUeXBlJ107JHJldHJlc3VsdFskZGFLZXldPSRyZXN1bHRzOyRyZXN1bHQtPk1vdmVOZXh0KCk7fXJldHVybiAkcmV0cmVzdWx0WyRHcm91cElEXTt9cHVibGljIGZ1bmN0aW9uIEdldEdyb3Vwc1NjcmlwdE5VTSgkR3JvdXBJRCl7JGRiPWNtc21zKCktPkdldERiKCk7JHJldHJlc3VsdD1hcnJheSgpOyRyZXN1bHRzPWFycmF5KCk7JHF1ZXJ5PSdTRUxFQ1QgU2NyaXB0SUQgRlJPTSAnLlNEX0dST1VQQVNTSUdOTUVOVC4nIEFTIHNkR20gJy4nV0hFUkUgc2RHbS5Hcm91cHRTZXRJRD0/JzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwSUQpKTskc2NpcHRudW1iZXI9MDt3aGlsZSgkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskc2NpcHRudW1iZXI9JHNjaXB0bnVtYmVyKzE7JHJlc3VsdC0+TW92ZU5leHQoKTt9cmV0dXJuICRzY2lwdG51bWJlcjt9cHVibGljIGZ1bmN0aW9uIHNlbGVjdEdyb3Vwc0xpc3RpbmdzKCRHcm91cElEKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskcmV0cmVzdWx0PWFycmF5KCk7JHJlc3VsdHM9YXJyYXkoKTskcXVlcnk9J1NFTEVDVCBzbi5TY3JpcHRTZXQsc28uc2NyaXB0U2l6ZSxzZEdtLlNjcmlwdElELHNkR20uU2NyaXB0T1JERVIgRlJPTSAnLlNEX0dST1VQLicgQVMgc2RHICcuJ0xFRlQgSk9JTiAnLlNEX0dST1VQQVNTSUdOTUVOVC4nIEFTIHNkR20gT04gc2RHLklEID0gc2RHbS5Hcm91cHRTZXRJRCAnLidMRUZUIEpPSU4gJy5TRF9TQ1JJUFRPUFRJT05TLicgQVMgc28gT04gc28uSUQgPSBzZEdtLlNjcmlwdElEICcuJ0xFRlQgSk9JTiAnLlNEX1NDUklQVE5BTUVTLicgQVMgc24gT04gc28uSUQgPSBzbi5JRCAnLidXSEVSRSBzZEcuSUQgPSA/IE9SREVSIEJZIHNkR20uU2NyaXB0T1JERVIgQVNDJzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJEdyb3VwSUQpKTt3aGlsZSgkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskZGFLZXk9JHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJRCddOyRyZXN1bHRzWydTY3JpcHRTZXQnXT0kcmVzdWx0LT5maWVsZHNbJ1NjcmlwdFNldCddOyRyZXN1bHRzWydzY3JpcHRTaXplJ109JHJlc3VsdC0+ZmllbGRzWydzY3JpcHRTaXplJ107JHJlc3VsdHNbJ1NjcmlwdE9SREVSJ109JHJlc3VsdC0+ZmllbGRzWydTY3JpcHRPUkRFUiddOyRyZXRyZXN1bHRbJGRhS2V5XT0kcmVzdWx0czskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJldHJlc3VsdDt9cHVibGljIGZ1bmN0aW9uIHNlbGVjdEdyb3VwSXRlbXMoJEdyb3VwSUQpeyRkYj1jbXNtcygpLT5HZXREYigpOyRyZXRyZXN1bHQ9YXJyYXkoKTskcmVzdWx0cz1hcnJheSgpOyRxdWVyeT0nU0VMRUNUIFNjcmlwdElEIEZST00gJy5TRF9HUk9VUEFTU0lHTk1FTlQuJyBBUyBzZEdtICcuJ1dIRVJFIHNkR20uR3JvdXB0U2V0SUQ9PyBPUkRFUiBCWSBTY3JpcHRPUkRFUiBBU0MnOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkR3JvdXBJRCkpO3doaWxlKCRyZXN1bHQmJiEkcmVzdWx0LT5FT0Ype2FycmF5X3B1c2goJHJlc3VsdHMsJHJlc3VsdC0+ZmllbGRzWydTY3JpcHRJRCddKTskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJlc3VsdHM7fXB1YmxpYyBmdW5jdGlvbiBDaGVja1NjcmlwdCgkc2NyaXB0SUQsJEdyb3VwSUQpeyRkYj1jbXNtcygpLT5HZXREYigpOyRxdWVyeT0nU0VMRUNUICogRlJPTSAnLlNEX0dST1VQQVNTSUdOTUVOVC4nICcuJ1dIRVJFIFNjcmlwdElEPT8gQU5EIEdyb3VwdFNldElEPT8nOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkc2NyaXB0SUQsJEdyb3VwSUQpKTtpZigkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskcj0kc2NyaXB0SUQ7fWVsc2V7JHI9Jyc7fXJldHVybiAkcjt9cHVibGljIGZ1bmN0aW9uIEdldFNjcmlwdEdyb3VwSW5mbygkc0lEKXskR3JvdXBzPXNjcmlwdGRlcGxveV91dGlsczo6R2V0U2NyaXB0R3JvdXBzKCRzSUQpOyRSZz0nJzskbGFzdD0nJztmb3JlYWNoKCRHcm91cHMgYXMgJGtleT0+JEdyb3VwKXtpZigka2V5PT0wKXskUmcuPScnLnNjcmlwdGRlcGxveV91dGlsczo6R2V0R3JvdXBOYW1lKCRHcm91cCk7fWVsc2V7JFJnLj0nLCcuc2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRHcm91cE5hbWUoJEdyb3VwKTt9JGxhc3Q9JGtleSsxO31pZigkUmchPScnJiYkbGFzdCE9Jycpe3JldHVybiBhcnJheSgkbGFzdCwkUmcpO31lbHNle3JldHVybiBmYWxzZTt9fXB1YmxpYyBmdW5jdGlvbiBHZXRTY3JpcHRHcm91cHMoJHNjcmlwdElEKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskcmVzdWx0cz1hcnJheSgpOyRxdWVyeT0nU0VMRUNUIEdyb3VwdFNldElEIEZST00gJy5TRF9HUk9VUEFTU0lHTk1FTlQuJyAnLidXSEVSRSBTY3JpcHRJRD0/ICc7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzY3JpcHRJRCkpO3doaWxlKCRyZXN1bHQmJiEkcmVzdWx0LT5FT0Ype2FycmF5X3B1c2goJHJlc3VsdHMsJHJlc3VsdC0+ZmllbGRzWydHcm91cHRTZXRJRCddKTskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJlc3VsdHM7fXB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cElEKCRncm91cE5hbWUpeyRkYj1jbXNtcygpLT5HZXREYigpOyRxdWVyeT0nU0VMRUNUIElEIEZST00gJy5TRF9HUk9VUC4nICcuJ1dIRVJFIEdyb3VwdFNldD0/JzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGdyb3VwTmFtZSkpO3doaWxlKCRyZXN1bHQmJiEkcmVzdWx0LT5FT0YpeyRyZXN1bHRzPSRyZXN1bHQtPmZpZWxkc1snSUQnXTskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJlc3VsdHM7fXB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cE5hbWUoJGdJRCl7JGRiPWNtc21zKCktPkdldERiKCk7JHF1ZXJ5PSdTRUxFQ1QgR3JvdXB0U2V0IEZST00gJy5TRF9HUk9VUC4nICcuJ1dIRVJFIElEPT8nOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZ0lEKSk7d2hpbGUoJHJlc3VsdCYmISRyZXN1bHQtPkVPRil7JHJlc3VsdHM9JHJlc3VsdC0+ZmllbGRzWydHcm91cHRTZXQnXTskcmVzdWx0LT5Nb3ZlTmV4dCgpO31yZXR1cm4gJHJlc3VsdHM7fXB1YmxpYyBmdW5jdGlvbiBHZXRTY3JpcHRCYWNrdXAoJElELCRyZXZpc2lvbil7JGRiPWNtc21zKCktPkdldERiKCk7JHJldHJlc3VsdD1hcnJheSgpOyRyZXN1bHRzPWFycmF5KCk7JHF1ZXJ5PSdTRUxFQ1QgU2NyaXB0SXNCS1VQIEZST00gJy5TRF9TQ1JJUFRVTkRPLicgJy4nV0hFUkUgSUQ9PyBBTkQgcmV2aXNpb249Pyc7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRJRCwkcmV2aXNpb24pKTt3aGlsZSgkcmVzdWx0JiYhJHJlc3VsdC0+RU9GKXskcmVzdWx0cz0kcmVzdWx0LT5maWVsZHNbJ1NjcmlwdElzQktVUCddOyRyZXN1bHQtPk1vdmVOZXh0KCk7fXJldHVybiAkcmVzdWx0czt9cHVibGljIGZ1bmN0aW9uIGdldFNjcmlwdEJLdXAoJHNjcmlwdElELCRyZXZpc2lvbil7JGRiPWNtc21zKCktPkdldERiKCk7JHE9J1NFTEVDVCBTY3JpcHRJc0JLVVAgRlJPTSAnLlNEX1NDUklQVFVORE8uJyAnLidXSEVSRSBzY3JpcHRJRCA9PyBBTkQgcmV2aXNpb249Pyc7JGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkcSxhcnJheSgkc2NyaXB0SUQsJHJldmlzaW9uKSk7aWYoISRkYnJlc3VsdCl7cmV0dXJuIGFycmF5KEZBTFNFLCRkYi0+RXJyb3JNc2coKSk7fSRyb3c9JGRicmVzdWx0LT5GZXRjaFJvdygpOyRkYnJlc3VsdC0+Q2xvc2UoKTtyZXR1cm4gJHJvdzt9cHVibGljIGZ1bmN0aW9uIEdldFJldmlzaW9ucygkU2NyaXB0SUQsJHBhZ2U9MSwkbGltaXQ9OTk5OTksJHdoZXJlQVJHPScnKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskdHJzPScnOyRwYWdlX3N0cmluZz0iIjskZnJvbT0oJHBhZ2UqJGxpbWl0KS0kbGltaXQ7JHdoZXJlPScnO2lmKCR3aGVyZUFSRyE9JycpJHdoZXJlPSdXaGVyZSAnLiR3aGVyZUFSRzskcmVzdWx0PSRkYi0+U2VsZWN0TGltaXQoJ1NFTEVDVCAqIGZyb20gJy5TRF9TQ1JJUFRVTkRPLicgJy4kd2hlcmUuJyBPUkRFUiBCWSByZXZpc2lvbiBERVNDJywkbGltaXQsJGZyb20pO2lmKCRyZXN1bHQmJiRyZXN1bHQtPlJlY29yZENvdW50KCk+MCl7JGY9dHJ1ZTt3aGlsZSgkcm93PSRyZXN1bHQtPkZldGNoUm93KCkpeyRVaW5mbz1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygkcm93Wyd1c2VySUQnXSk7aWYoJGY9PXRydWUpeyR0PScgY2xhc3M9ImN1cnJlbnQiJzt9JHRycy49Jzx0ciBpZD0iUicuJHJvd1sncmV2aXNpb24nXS4nIiAnLiR0Lic+PHRkPicuJFVpbmZvWyd1c2VybmFtZSddLic8L3RkPjx0ZD4nLiRyb3dbJ3JldmlzaW9uJ10uJzwvdGQ+PHRkPicuJHJvd1snY3JlYXRlZCddLic8L3RkPjwvdHI+JzskZj1mYWxzZTskdD0nJzt9fWVsc2V7JHRycy49Jzx0cj48dGQ+RW1wdHk8L3RkPjx0ZD4tLTwvdGQ+PHRkPi0tPC90ZD48dGQ+LS08L3RkPjwvdHI+Jzt9cmV0dXJuICR0cnM7fXB1YmxpYyBmdW5jdGlvbiBHZXRUaGlzUmV2aXNpb24oJHNJRCwkcmV2aXNpb24peyRkYj1jbXNtcygpLT5HZXREYigpOyRxdWVyeT0nU0VMRUNUIFNjcmlwdElzQktVUCBmcm9tICcuU0RfU0NSSVBUVU5ETy4iIFdIRVJFIHNjcmlwdElEPT8gQU5EIHJldmlzaW9uPT8iOyR2ZXJzaW9uPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc0lELCRyZXZpc2lvbikpO3JldHVybiAkdmVyc2lvbjt9cHVibGljIGZ1bmN0aW9uIENsZWFyVGhpc1JldmlzaW9uKCRzSUQsJExJTUlUPTEpeyRkYj1jbXNtcygpLT5HZXREYigpOyRsb2dnaW49bmV3IGxvZ2dpbigpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskcXVlcnk9J0RFTEVURSBGUk9NICcuU0RfU0NSSVBUVU5ETy4nIFdIRVJFIHNjcmlwdElEPT8gQU5EIHJldmlzaW9uIDwgKCBTRUxFQ1QgbWluKHJldmlzaW9uKSBGUk9NICggU0VMRUNUIHJldmlzaW9uIEZST00gJy5TRF9TQ1JJUFRVTkRPLicgV0hFUkUgc2NyaXB0SUQ9PyBPUkRFUiBCWSByZXZpc2lvbiBERVNDIExJTUlUICcuJExJTUlULicgKSBBUyBteXNlbGVjdCApJzskcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNJRCwkc0lEKSk7JFNjcmlwdE5hbWU9c2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRTY3JpcHROYW1lKCRzSUQpOyRsb2dnaW4tPl9kb0F1ZGl0KCdkZXN0cm95Jywnb2snLCRtb2QtPkxhbmcoJ2NsZWFyZWRSZXZpc2lvbl9kb0F1ZGl0JykuIiAkU2NyaXB0TmFtZSAtIHNjcmlwdCBpZDokc0lEIiwnJywnU2NyaXB0RGVwbG95Jyk7cmV0dXJuICRyZXN1bHQ7fXB1YmxpYyBmdW5jdGlvbiBHZXRMYXN0UmV2aXNpb24oJHNJRCl7JGRiPWNtc21zKCktPkdldERiKCk7JHF1ZXJ5PSJTRUxFQ1QgcmV2aXNpb24gRlJPTSAiLlNEX1NDUklQVFVORE8uIiBXSEVSRSBzY3JpcHRJRD0/IE9SREVSIEJZIHJldmlzaW9uIERFU0MgTElNSVQgMSI7JFJldmlzaW9uPSRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkc0lEKSk7cmV0dXJuICRSZXZpc2lvbjt9cHVibGljIGZ1bmN0aW9uIFNldFNjcmlwdEJhY2t1cCgkc0lELCRTY3JpcHRJc0JLVVAsJHJldmlzaW9uPTEpeyRkYj1jbXNtcygpLT5HZXREYigpOyRub3c9dHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKTskcXVlcnk9IklOU0VSVCBJTlRPICIuU0RfU0NSSVBUVU5ETy4iICIuIih1c2VySUQsc2NyaXB0SUQscmV2aXNpb24sU2NyaXB0SXNCS1VQLGNyZWF0ZWQpICIuIlZBTFVFUyAoPyw/LD8sPyw/KSI7JFVzZXJpZD1zaXRlX3V0aWxzOjpnZXRVc2VySW5mbygpOyR1SUQ9JFVzZXJpZFsnVXNlcmlkJ107JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR1SUQsJHNJRCwkcmV2aXNpb24sJFNjcmlwdElzQktVUCwkbm93KSk7aWYoISRyZXN1bHQpeyRwYXJhbXNbJ21lc3NhZ2UnXT1teXNxbF9lcnJvcigpO31lbHNleyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskcGFyYW1zWydtZXNzYWdlJ109JG1vZC0+TGFuZygncHJlZnN1cGRhdGVkJyk7fX1wdWJsaWMgZnVuY3Rpb24gSG90bGlua0NoZWNrKCRrZXksJGNzc191cmwpeyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JHJlcG9ydD1hcnJheSgpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskbW9kLT5hZGpLZXk9JGtleSsxOyRtb2QtPmNzc191cmxfVz0nJzskbW9kLT5mU2l6ZT0nLS0nOyRtb2QtPmJhc2VVUkw9JGNzc191cmw7aWYoKHN1YnN0cigkY3NzX3VybCwwLDUpKT09Imh0dHA6Inx8KHN1YnN0cigkY3NzX3VybCwwLDYpKT09Imh0dHBzOiIpe2lmKHN0cnBvcygkY3NzX3VybCwkY29uZmlnWydyb290X3VybCddKT09PWZhbHNlKXskbW9kLT5jc3NfdXJsX1cuPSRtb2QtPkxhbmcoJ2hvdGxpbmsnKTt9fWVsc2V7aWYoKHN1YnN0cigkY3NzX3VybCwwLDUpKT09Imh0dHA6Iil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRjc3NfdXJsPXN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCcnLDAsJEwpO31pZigoc3Vic3RyKCRjc3NfdXJsLDAsMSkpPT0nLycpeyRjc3NfdXJsPXN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCcnLDAsMSk7fSRjc3NfcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4nLycuJGNzc191cmw7JGNzc191cmw9JGNvbmZpZ1sncm9vdF91cmwnXS4nLycuJGNzc191cmw7JG1vZC0+Y3NzX3VybF9XPSdPSyc7fSRodHRwPW5ldyBjbXNtc19odHRwKCk7JGhlYWRlcnM9JGh0dHAtPmdldF9oZWFkZXIoJGNzc191cmwsMSk7aWYoJGhlYWRlcnNbMF09PSdIVFRQLzEuMSAyMDAgT0snJiYkaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSE9JycpeyRtb2QtPmNzc191cmxfVy49Jyc7fWVsc2V7aWYoJG1vZC0+Y3NzX3VybF9XPT0nT0snKXskbW9kLT5jc3NfdXJsX1c9JzxzdHJvbmc+Jy4kbW9kLT5MYW5nKCdCcm9rZW5saW5rJykuJzo8L3N0cm9uZz4gJy4kaGVhZGVyc1swXTt9ZWxzZXskbW9kLT5jc3NfdXJsX1cuPSc8c3Ryb25nPlZhbGlkIExpbms6PC9zdHJvbmc+ICcuJGhlYWRlcnNbMF07fX1pZihpc3NldCgkaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSkmJiRoZWFkZXJzWydDb250ZW50LUxlbmd0aCddIT0nJyl7JGZoPW5ldyBmaWxlaGFuZGxpbmcoKTskbW9kLT5mU2l6ZT0kZmgtPlNpemVJdFVwKCRoZWFkZXJzWydDb250ZW50LUxlbmd0aCddKTt9JHJlcG9ydD1hcnJheSgkbW9kLT5jc3NfdXJsX1csJG1vZC0+YWRqS2V5LCRjc3NfdXJsLCRtb2QtPmZTaXplLCRtb2QtPmJhc2VVUkwsJG1vZC0+Y3NzX3BhdGgsJG1vZC0+ZXJyb3IpO3JldHVybiAkcmVwb3J0O31wdWJsaWMgZnVuY3Rpb24gZmlsZVRpbWVfY3NzX3VybHMoJHRleHQpeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOyRob3RMaW5rQ2hlY2s9JG1vZC0+R2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywxKTskY3NzX3VybHM9c2NyaXB0ZGVwbG95X3V0aWxzOjpleHRyYWN0X2Nzc191cmxzKCR0ZXh0KTtpZighZW1wdHkoJGNzc191cmxzKSl7JGNzc191cmxzPSRjc3NfdXJsc1sncHJvcGVydHknXTtpZihpc19hcnJheSgkY3NzX3VybHMpKXskY3NzX3VybHM9YXJyYXlfdW5pcXVlKCRjc3NfdXJscyk7Zm9yZWFjaCgkY3NzX3VybHMgYXMgJGtleT0+JGNzc191cmwpe2lmKCRob3RMaW5rQ2hlY2speyRyZXN1bHQ9c2NyaXB0ZGVwbG95X3V0aWxzOjpIb3RsaW5rQ2hlY2soJGtleSwkY3NzX3VybCk7aWYoJHJlc3VsdFswXT09J09LJyl7JGNzc19wYXRoPSRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kcmVzdWx0WzRdOyR0ZXh0PXN0cl9yZXBsYWNlKCRyZXN1bHRbNF0sJHJlc3VsdFs0XS4iPyIuQGZpbGVtdGltZSgkY3NzX3BhdGgpLCR0ZXh0KTt9fWVsc2V7JGJhc2VVUkw9JGNzc191cmw7aWYoKHN1YnN0cigkY3NzX3VybCwwLDUpKT09Imh0dHA6Iil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRjc3NfdXJsPXN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCcnLDAsJEwpO31pZigoc3Vic3RyKCRjc3NfdXJsLDAsMSkpPT0nLycpeyRjc3NfdXJsPXN1YnN0cl9yZXBsYWNlKCRjc3NfdXJsLCcnLDAsMSk7fSRjc3NfcGF0aD0kY29uZmlnWydyb290X3BhdGgnXS4nLycuJGNzc191cmw7JGNzc191cmw9JGNvbmZpZ1sncm9vdF91cmwnXS4nLycuJGNzc191cmw7JEZUPUBmaWxlbXRpbWUoJGNzc19wYXRoKT8iPyIuZmlsZW10aW1lKCRjc3NfcGF0aCk6Jyc7JHRleHQ9c3RyX3JlcGxhY2UoJGJhc2VVUkwsJGJhc2VVUkwuJEZULCR0ZXh0KTt9fX19cmV0dXJuICR0ZXh0O31wdWJsaWMgZnVuY3Rpb24gYnVpbGRfcHJlbG9hZCgkdGV4dCwkSUQsJGZpbGVBcnJheT1mYWxzZSl7JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskY3NzX3VybHM9c2NyaXB0ZGVwbG95X3V0aWxzOjpleHRyYWN0X2Nzc191cmxzKCR0ZXh0KTskdXJsUGFja2FnZT0nJztpZighZW1wdHkoJGNzc191cmxzKSl7JGNzc191cmxzPSRjc3NfdXJsc1sncHJvcGVydHknXTtpZihpc19hcnJheSgkY3NzX3VybHMpKXskY3NzX3VybHM9YXJyYXlfdW5pcXVlKCRjc3NfdXJscyk7Zm9yZWFjaCgkY3NzX3VybHMgYXMgJGtleT0+JGNzc191cmwpeyRiYXNlVVJMPSRjc3NfdXJsO2lmKHN0cnBvcygkYmFzZVVSTCwnLmpwZycpfHxzdHJwb3MoJGJhc2VVUkwsJy5naWYnKXx8c3RycG9zKCRiYXNlVVJMLCcucG5nJykpe2lmKChzdWJzdHIoJGNzc191cmwsMCw1KSk9PSJodHRwOiIpeyRMPXN0cmxlbigkY29uZmlnWydyb290X3VybCddKTskY3NzX3VybD1zdWJzdHJfcmVwbGFjZSgkY3NzX3VybCwnJywwLCRMKTt9aWYoKHN1YnN0cigkY3NzX3VybCwwLDEpKT09Jy8nKXskY3NzX3VybD1zdWJzdHJfcmVwbGFjZSgkY3NzX3VybCwnJywwLDEpO30kY3NzX3BhdGg9JGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiRjc3NfdXJsOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskRlQ9QGZpbGVtdGltZSgkY3NzX3BhdGgpPyI/Ii5maWxlbXRpbWUoJGNzc19wYXRoKTonJzskR3Jvb3RVUkw9JG1vZC0+R2V0UHJlZmVyZW5jZSgncm9vdFVSTCcsJGNvbmZpZ1sncm9vdF91cmwnXSk7JHJvb3RVcmw9JG1vZC0+R2V0UHJlZmVyZW5jZSgkSUQuJy1yb290VVJMLVNEJywnJyk7aWYoJHJvb3RVcmwhPScnKXtpZihzdWJzdHIoJHJvb3RVcmwsLTEpPT0iLyIpeyRyb290VXJsPXJ0cmltKCRyb290VXJsLCcvJyk7fSRyb290VXJsPSRyb290VXJsO31lbHNlaWYoJEdyb290VVJMIT0nJyl7aWYoc3Vic3RyKCRHcm9vdFVSTCwtMSk9PSIvIil7JEdyb290VVJMPXJ0cmltKCRHcm9vdFVSTCwnLycpO30kcm9vdFVybD0kR3Jvb3RVUkw7fWVsc2V7JHJvb3RVcmw9JGNvbmZpZ1sncm9vdF91cmwnXTt9JGJhc2VVUkw9JHJvb3RVcmwuJy8nLiRjc3NfdXJsO2lmKCRmaWxlQXJyYXkpe2lmKCFpc19hcnJheSgkdXJsUGFja2FnZSkpeyR1cmxQYWNrYWdlPWFycmF5KCk7fSR1cmxQYWNrYWdlW109JGJhc2VVUkw7fWVsc2V7JHVybFBhY2thZ2UuPSc8aW1nIHNyYz0iJy4kYmFzZVVSTC4kRlQuJyIgYWx0PSIiIC8+Jzt9fX19fXJldHVybiAkdXJsUGFja2FnZTt9cHVibGljIGZ1bmN0aW9uIGV4dHJhY3RfY3NzX3VybHMoJHRleHQpeyR1cmxzPWFycmF5KCk7JHVybF9wYXR0ZXJuPScoKFteXFxcXFwnIiwgXChcKV0qKFxcXFwuKT8pKyknOyR1cmxmdW5jX3BhdHRlcm49J3VybFwoXHMqW1wnIl0/Jy4kdXJsX3BhdHRlcm4uJ1tcJyJdP1xzKlwpJzskcGF0dGVybj0nLygnLicoQGltcG9ydFxzKltcJyJdJy4kdXJsX3BhdHRlcm4uJ1tcJyJdKScuJ3woQGltcG9ydFxzKicuJHVybGZ1bmNfcGF0dGVybi4nKScuJ3woJy4kdXJsZnVuY19wYXR0ZXJuLicpJy4nKS9pdSc7aWYoIXByZWdfbWF0Y2hfYWxsKCRwYXR0ZXJuLCR0ZXh0LCRtYXRjaGVzKSl7cmV0dXJuICR1cmxzO31mb3JlYWNoKCRtYXRjaGVzWzNdYXMgJG1hdGNoKXtpZighZW1wdHkoJG1hdGNoKSl7JHVybHNbJ2ltcG9ydCddW109cHJlZ19yZXBsYWNlKCcvXFxcXCguKS91JywnXFwxJywkbWF0Y2gpO319Zm9yZWFjaCgkbWF0Y2hlc1s3XWFzICRtYXRjaCl7aWYoIWVtcHR5KCRtYXRjaCkpeyR1cmxzWydpbXBvcnQnXVtdPXByZWdfcmVwbGFjZSgnL1xcXFwoLikvdScsJ1xcMScsJG1hdGNoKTt9fWZvcmVhY2goJG1hdGNoZXNbMTFdYXMgJG1hdGNoKXtpZighZW1wdHkoJG1hdGNoKSl7JHVybHNbJ3Byb3BlcnR5J11bXT1wcmVnX3JlcGxhY2UoJy9cXFxcKC4pL3UnLCdcXDEnLCRtYXRjaCk7fX1yZXR1cm4gJHVybHM7fXB1YmxpYyBmdW5jdGlvbiBfQWRtaW5DcmVhdGVTY3JpcHRMaXN0KCRpZCwkcmV0dXJuaWQsJGRlZmF1bHR0ZW1wbGF0ZXByZWYsJGFjdGl2ZV90YWIsJGRlZmF1bHRwcmVmbmFtZSwkdGl0bGUsJHR5cGVJUyl7aW5jbHVkZShzdHJfcmVwbGFjZSgnLy8nLCcvJyxkaXJuYW1lKF9fRklMRV9fKS4nLycpLicuLi9hZG1pbi9mdW5jdGlvbi5hZG1pbl9zY3JpcHRsaXN0X3RhYi5waHAnKTt9cHVibGljIGZ1bmN0aW9uIGdldFRlbXBsYXRlSWQoKXskZGI9Y21zbXMoKS0+R2V0RGIoKTskcmVzdWx0cz1hcnJheSgpOyRxdWVyeT0nU0VMRUNUIHRlbXBsYXRlX2lkIEZST00gJy5TRF9URU1QOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSk7d2hpbGUoJHJlc3VsdCYmISRyZXN1bHQtPkVPRil7JHJlc3VsdHNbXT0kcmVzdWx0LT5maWVsZHNbJ3RlbXBsYXRlX2lkJ107JHJlc3VsdC0+TW92ZU5leHQoKTt9cmV0dXJuICRyZXN1bHRzO31wdWJsaWMgZnVuY3Rpb24gdGVtcGxhdGVfcHJldmlldygkcGFyYW1zKXskZ0Ntcz1jbXNtcygpOyRkaXJwYXRoPWNtc21zKCktPmNvbmZpZ1sncm9vdF9wYXRoJ107JEFkbWluZGlyPSRkaXJwYXRoLicvJy5jbXNtcygpLT5jb25maWdbJ2FkbWluX2RpciddO3JlcXVpcmVfb25jZSgkQWRtaW5kaXIuJy9lZGl0Y29udGVudF9leHRyYS5waHAnKTskdXJsZXh0PSc/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGNvbnRlbnRvcHM9Y21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTskY29udGVudF90eXBlPSdDb250ZW50JzskY29udGVudG9iaj0kY29udGVudG9wcy0+TG9hZENvbnRlbnRUeXBlKCRjb250ZW50X3R5cGUpOyR0ZW1wbGF0ZW9wcz1jbXNtcygpLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKTskZGF0YVsiY29udGVudF9pZCJdPTk5OTk7JGRhdGFbJ2NvbnRlbnRfdHlwZSddPSdDb250ZW50JzskZGF0YVsidGl0bGUiXT0nUHJldmlldyc7JGRhdGFbIm1lbnV0ZXh0Il09J1ByZXZpZXcnOyRkYXRhWyJjb250ZW50Il09dW5zZXJpYWxpemUoJHBhcmFtc1sic2VyaWFsaXplZF9jb250ZW50Il0pOyRkYXRhWyJ0ZW1wbGF0ZV9pZCJdPTk5OTk7JGRhdGFbImhpZXJhcmNoeSJdPTk5OTk7JHRlbXBsYXRlb2JqPSR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJZCgkcGFyYW1zWyd0ZW1wbGF0ZV9pZCddKTskZGF0YVsndGVtcGxhdGUnXT0kdGVtcGxhdGVvYmotPmNvbnRlbnQ7JHN0eWxlc2hlZXRvYmo9Z2V0X3N0eWxlc2hlZXQoJHBhcmFtc1sndGVtcGxhdGVfaWQnXSk7JGRhdGFbJ2VuY29kaW5nJ109JHN0eWxlc2hlZXRvYmpbJ2VuY29kaW5nJ107JGRhdGFbJ3NlcmlhbGl6ZWRfY29udGVudCddPXNlcmlhbGl6ZSgkcGFyYW1zWyJzZXJpYWxpemVkX2NvbnRlbnQiXSk7JHRtcGZuYW1lPScnO2lmKGlzX3dyaXRhYmxlKCRjb25maWdbInByZXZpZXdzX3BhdGgiXSkpeyR0bXBmbmFtZT10ZW1wbmFtKCRjb25maWdbInByZXZpZXdzX3BhdGgiXSwiY21zcHJldmlldyIpO31lbHNleyR0bXBmbmFtZT10ZW1wbmFtKFRNUF9DQUNIRV9MT0NBVElPTiwiY21zcHJldmlldyIpO30kaGFuZGxlPWZvcGVuKCR0bXBmbmFtZSwidyIpO2Z3cml0ZSgkaGFuZGxlLHNlcmlhbGl6ZSgkZGF0YSkpO2ZjbG9zZSgkaGFuZGxlKTskX1NFU1NJT05bJ2Ntc19wcmV2aWV3J109c3RyX3JlcGxhY2UoJ1xcJywnLycsJHRtcGZuYW1lKTskdG1wdmFyPXN1YnN0cihzdHJfc2h1ZmZsZShtZDUoJHRtcGZuYW1lKSksLTMpOyR1cmw9JGNvbmZpZ1sicm9vdF91cmwiXS4nL2luZGV4LnBocD8nLiRjb25maWdbJ3F1ZXJ5X3ZhciddLiI9X19DTVNfUFJFVklFV19QQUdFX18mcj0kdG1wdmFyIjtyZXR1cm4gJHVybDt9cHVibGljIGZ1bmN0aW9uIGFkZF90ZW1wbGF0ZSgkcGFyYW1zKXskZm49ZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvb3JpZ19uZXdfdGVtcGxhdGUudHBsJzskZGZsdF9jb250ZW50PUBmaWxlX2dldF9jb250ZW50cygkZm4pOyR0ZW1wbGF0ZT0iIjtpZihpc3NldCgkX1BPU1RbInRlbXBsYXRlIl0pKSR0ZW1wbGF0ZT0kX1BPU1RbInRlbXBsYXRlIl07JGNvbnRlbnQ9JGRmbHRfY29udGVudDtpZihpc3NldCgkX1BPU1RbImNvbnRlbnQiXSkpJGNvbnRlbnQ9JF9QT1NUWyJjb250ZW50Il07JHN0eWxlc2hlZXQ9IiI7aWYoaXNzZXQoJF9QT1NUWyJzdHlsZXNoZWV0Il0pKSRzdHlsZXNoZWV0PSRfUE9TVFsic3R5bGVzaGVldCJdOyRhY3RpdmU9MTtpZighaXNzZXQoJF9QT1NUWyJhY3RpdmUiXSkmJmlzc2V0KCRfUE9TVFsiYWRkc2VjdGlvbiJdKSkkYWN0aXZlPTA7JGRiPWNtc21zKCktPkdldERiKCk7JHRlbXBsYXRlb3BzPWNtc21zKCktPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOyR1c2VyaWQ9Z2V0X3VzZXJpZCgpOyRhY2Nlc3M9Y2hlY2tfcGVybWlzc2lvbigkdXNlcmlkLCdBZGQgVGVtcGxhdGVzJyk7JHVzZV9qYXZhc3ludGF4PWZhbHNlO2lmKGdldF9wcmVmZXJlbmNlKCR1c2VyaWQsJ3VzZV9qYXZhc3ludGF4Jyk9PSIxIikkdXNlX2phdmFzeW50YXg9dHJ1ZTtpZigkYWNjZXNzKXtpZihpc3NldCgkX1BPU1RbImFkZHRlbXBsYXRlIl0pJiYhJHByZXZpZXcpeyR2YWxpZGluZm89dHJ1ZTtpZigkdGVtcGxhdGU9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCJub2ZpZWxkZ2l2ZW4iLGFycmF5KGxhbmcoJ25hbWUnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9ZWxzZXskcXVlcnk9IlNFTEVDVCB0ZW1wbGF0ZV9pZCBmcm9tICIuY21zX2RiX3ByZWZpeCgpLiJ0ZW1wbGF0ZXMgV0hFUkUgdGVtcGxhdGVfbmFtZSA9ICIuJGRiLT5xc3RyKCR0ZW1wbGF0ZSk7JHJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTtpZigkcmVzdWx0JiYkcmVzdWx0LT5SZWNvcmRDb3VudCgpPjApeyRlcnJvci49IjxsaT4iLmxhbmcoJ3RlbXBsYXRlZXhpc3RzJykuIjwvbGk+IjskdmFsaWRpbmZvPWZhbHNlO319aWYoJGNvbnRlbnQ9PSIiKXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdub2ZpZWxkZ2l2ZW4nLGFycmF5KGxhbmcoJ2NvbnRlbnQnKSkpLiI8L2xpPiI7JHZhbGlkaW5mbz1mYWxzZTt9aWYoJHZhbGlkaW5mbyl7JG5ld3RlbXBsYXRlPW5ldyBUZW1wbGF0ZSgpOyRuZXd0ZW1wbGF0ZS0+bmFtZT0kdGVtcGxhdGU7JG5ld3RlbXBsYXRlLT5jb250ZW50PSRjb250ZW50OyRuZXd0ZW1wbGF0ZS0+c3R5bGVzaGVldD0kc3R5bGVzaGVldDskbmV3dGVtcGxhdGUtPmFjdGl2ZT0kYWN0aXZlOyRuZXd0ZW1wbGF0ZS0+ZGVmYXVsdD0wO2ZvcmVhY2goY21zbXMoKS0+bW9kdWxlcyBhcyAka2V5PT4kdmFsdWUpe2lmKGNtc21zKCktPm1vZHVsZXNbJGtleV1bJ2luc3RhbGxlZCddPT10cnVlJiZjbXNtcygpLT5tb2R1bGVzWyRrZXldWydhY3RpdmUnXT09dHJ1ZSl7Y21zbXMoKS0+bW9kdWxlc1ska2V5XVsnb2JqZWN0J10tPkFkZFRlbXBsYXRlUHJlKCRuZXd0ZW1wbGF0ZSk7fX1FdmVudHM6OlNlbmRFdmVudCgnQ29yZScsJ0FkZFRlbXBsYXRlUHJlJyxhcnJheSgndGVtcGxhdGUnPT4mJG5ld3RlbXBsYXRlKSk7JHJlc3VsdD0kbmV3dGVtcGxhdGUtPnNhdmUoKTtpZigkcmVzdWx0KXtmb3JlYWNoKGNtc21zKCktPm1vZHVsZXMgYXMgJGtleT0+JHZhbHVlKXtpZihjbXNtcygpLT5tb2R1bGVzWyRrZXldWydpbnN0YWxsZWQnXT09dHJ1ZSYmY21zbXMoKS0+bW9kdWxlc1ska2V5XVsnYWN0aXZlJ109PXRydWUpe2Ntc21zKCktPm1vZHVsZXNbJGtleV1bJ29iamVjdCddLT5BZGRUZW1wbGF0ZVBvc3QoJG5ld3RlbXBsYXRlKTt9fUV2ZW50czo6U2VuZEV2ZW50KCdDb3JlJywnQWRkVGVtcGxhdGVQb3N0JyxhcnJheSgndGVtcGxhdGUnPT4mJG5ld3RlbXBsYXRlKSk7YXVkaXQoJG5ld3RlbXBsYXRlLT5pZCwkdGVtcGxhdGUsJ0FkZGVkIFRlbXBsYXRlJyk7cmVkaXJlY3QoJGZyb20pO3JldHVybjt9ZWxzZXskZXJyb3IuPSI8bGk+Ii5sYW5nKCdlcnJvcmluc2VydGluZ3RlbXBsYXRlJykuIiRxdWVyeTwvbGk+Ijt9fX19fXB1YmxpYyBmdW5jdGlvbiBkZWZlckpTKCRzY3JpcHQpeyRyZXN1bHQ9JzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgl2YXIgc2NyaXB0PSInLiRzY3JpcHQuJyI7DQoJZnVuY3Rpb24gZGVmZXJKUygpIHt2YXIgdG1wPXNjcmlwdC50b1N0cmluZygpLnNwbGl0KCIsIik7aWYodHlwZW9mIEFycmF5LnByb3RvdHlwZS50bXApe3ZhciB0bXBfc2NyaXB0PXRtcFswXS50b1N0cmluZygpO31lbHNle3ZhciB0bXBfc2NyaXB0PXNjcmlwdC50b1N0cmluZygpO312YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOyBlbGVtZW50LnNyYyA9IHRtcF9zY3JpcHQ7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7aWYodHlwZW9mIEFycmF5LnByb3RvdHlwZS50bXAgJiYgKHRtcFsxXSE9IiIgJiYgdHlwZW9mKHRtcFsxXSkgIT0gInVuZGVmaW5lZCIpKXtzY3JpcHQ9dG1wLnNwbGljZSgxKTtkZWZlckpTKCk7fX0NCglpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZGVmZXJKUywgZmFsc2UpO31lbHNlIGlmICh3aW5kb3cuYXR0YWNoRXZlbnQpe3dpbmRvdy5hdHRhY2hFdmVudCgib25sb2FkIiwgZGVmZXJKUyk7fWVsc2V7d2luZG93Lm9ubG9hZCA9IGRlZmVySlM7fQ0KPC9zY3JpcHQ+DQoJCQkJCSc7cmV0dXJuICRyZXN1bHQ7fX0gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.scriptProcessing.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3Mgc2NyaXB0UHJvY2Vzc2luZ3twdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXt9cHVibGljIGZ1bmN0aW9uIFByb2NjZXNzU0QoJElELCRncm91cGVkLCRTbWFydHk9dHJ1ZSwkTWluaWZ5PW51bGwsJGV4dD0nJywkdmFsX21ldGg9ZmFsc2UsJENNU21vZHM9JycsJHBhdGg9JycsJHVubWVyZ2U9ZmFsc2UsJHBhcmFtcz1hcnJheSgpKXskY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOyRjb2RlVG9GaWxlPScnOyRjb2RlPScnOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskc21hcnR5T249JG1vZC0+R2V0UHJlZmVyZW5jZSgnc21hcnR5T24nLCcwJyk7JGZpbGVUaW1lX2Nzc191cmxzPSRtb2QtPkdldFByZWZlcmVuY2UoJ2ZpbGVUaW1lX2Nzc191cmxzJywnMCcpOyRQcm9jY2Vzcz1uZXcgc2NyaXB0UHJvY2Vzc2luZygpO2lmKCEkU21hcnR5KXskc21hcnR5T249MDt9aWYoJGdyb3VwZWQ9PSJzY3JpcHRJRCJ8fCRncm91cGVkPT0ic2luZ2xlIil7QGV4dHJhY3Qoc2NyaXB0ZGVwbG95X3V0aWxzOjpnZXRTY3JpcHRGdWxsKCRJRCkpOyRNaW5pZnk9aXNzZXQoJHBhcmFtc1snbWluaWZ5J10pPyRwYXJhbXNbJ21pbmlmeSddOiRtb2QtPkdldFByZWZlcmVuY2UoJElELictTWluaWZ5LVNEJyxmYWxzZSk7aWYoJHZhbF9tZXRoPT10cnVlKXskTWluaWZ5PWZhbHNlO31pZigkZXh0PT0iaHRtbCIpeyRTY3JpcHRJcz0kUHJvY2Nlc3MtPnNtYXJ0eU9uKCRTY3JpcHRJcywwLCdodG1sJyk7fWVsc2UgaWYoJHNtYXJ0eU9uJiYkQ01TbW9kcyE9JycpeyRTY3JpcHRJcz0kUHJvY2Nlc3MtPnNtYXJ0eU9uKCRTY3JpcHRJcywwKTt9ZWxzZXskU2NyaXB0SXM9JFByb2NjZXNzLT5zbWFydHlPbigkU2NyaXB0SXMpO31pZigkU2NyaXB0SXMhPScnKXtpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskU2NyaXB0SXM9JFByb2NjZXNzLT5NaW5pZnlJdCgkU2NyaXB0SXMsJGV4dCk7fWlmKCR2YWxfbWV0aD09ZmFsc2UmJiRleHQhPSJodG1sIil7JGNvZGU9IlxyXG4gLyogbWluaWZpZWQgJE1pbmlmeSByXG4gc2NyaXB0ICRJRCBcclxuIFRPRE8gLS0gcHJvZmlsZSBcclxuIi5zY3JpcHRkZXBsb3lfdXRpbHM6OkdldF9Ob3RlcygkSUQpLiJcclxuICovIFxyXG4iO30kY29kZVRvRmlsZT0kY29kZS4kU2NyaXB0SXM7fWlmKCRwYXRoT3B0aW9uJiYkZXh0IT0iaHRtbCIpe2lmKChzdWJzdHIoJHBhdGhPcHRpb24sMCw0KSk9PSJodHRwIil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRwYXRoT3B0aW9uPXN1YnN0cl9yZXBsYWNlKCRwYXRoT3B0aW9uLCcnLDAsJEwpO30kcGF0aE9wdGlvbj1ydHJpbSgkcGF0aE9wdGlvbiwnLycpOyRwYXRoT3B0aW9uPSRjb25maWdbJ3Jvb3RfcGF0aCddLiRwYXRoT3B0aW9uOyRjb2RlVG9GaWxlPWZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoT3B0aW9uKTtpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskY29kZVRvRmlsZT0kUHJvY2Nlc3MtPk1pbmlmeUl0KCRjb2RlVG9GaWxlLCRleHQpO31pZigkdmFsX21ldGg9PWZhbHNlKXskY29kZT0iXHJcbiAvKiBtaW5pZmllZCAkTWluaWZ5ICBcclxuIHNjcmlwdCAkSUQgXHJcbiBwYXRoICRwYXRoT3B0aW9uIFxyXG4gVE9ETyAtLSBwcm9maWxlIFxyXG4iLnNjcmlwdGRlcGxveV91dGlsczo6R2V0X05vdGVzKCRJRCkuIlxyXG4gKi8gXHJcbiI7fSRjb2RlVG9GaWxlPSRjb2RlLiRjb2RlVG9GaWxlO31pZigkc2NyaXB0VHlwZT09IkNTUyImJiRleHQhPSJodG1sIil7aWYoJG1vZC0+R2V0UHJlZmVyZW5jZSgicHJlbG9hZF9DU1NpbWFnZSIpKXskbW9kLT5TZXRQcmVmZXJlbmNlKCRJRC4nLXByZWxvYWRfQ1NTaW1hZ2Utc2NyaXB0LVNEJyxzY3JpcHRkZXBsb3lfdXRpbHM6OmJ1aWxkX3ByZWxvYWQoJGNvZGVUb0ZpbGUsJElEKSk7JG1vZC0+RmlyZURlYnVnKCdlcnJvcicsJ3ByZWxvYWRfQ1NTaW1hZ2U6ICcuJHNjcmlwdFR5cGUpO319fWVsc2VpZigkZ3JvdXBlZD09Imdyb3VwSUQiKXskR3JvdXBBcnJheT1zY3JpcHRkZXBsb3lfdXRpbHM6OnNlbGVjdEdyb3VwSXRlbXMoJElEKTskZ0lEPSRJRDskcGFzcz0nJztmb3JlYWNoKCRHcm91cEFycmF5IGFzICRrZXk9PiRJRCl7QGV4dHJhY3Qoc2NyaXB0ZGVwbG95X3V0aWxzOjpnZXRTY3JpcHRGdWxsKCRJRCkpOyRNaW5pZnk9aXNzZXQoJHBhcmFtc1snbWluaWZ5J10pPyRwYXJhbXNbJ21pbmlmeSddOiRtb2QtPkdldFByZWZlcmVuY2UoJElELictTWluaWZ5LVNEJyxmYWxzZSk7aWYoJHZhbF9tZXRoPT10cnVlKXskTWluaWZ5PWZhbHNlO31pZigkc21hcnR5T24peyRTY3JpcHRJcz0kUHJvY2Nlc3MtPnNtYXJ0eU9uKCRTY3JpcHRJcyk7fSR0dXJuT2ZmUHJlbG9hZD0kbW9kLT5HZXRQcmVmZXJlbmNlKCRJRC4nLXR1cm5PZmZQcmVsb2FkLVNEJywnMCcpO2lmKCRTY3JpcHRJcyE9Jycpe2lmKCgkTWluaWZ5PT10cnVlfHwkTWluaWZ5PT0nMScpJiYkTWluaWZ5IT0nJyYmJE1pbmlmeSE9ZmFsc2UpeyRTY3JpcHRJcz0kUHJvY2Nlc3MtPk1pbmlmeUl0KCRTY3JpcHRJcywkZXh0KTt9aWYoJHZhbF9tZXRoPT1mYWxzZSl7JGNvZGU9IlxyXG4gLyogbWluaWZpZWQgJE1pbmlmeSBcclxuIHNjcmlwdCAkSUQgXHJcbiBUT0RPIC0tIHByb2ZpbGUgXHJcbiIuc2NyaXB0ZGVwbG95X3V0aWxzOjpHZXRfTm90ZXMoJElEKS4iXHJcbiAqLyBcclxuIjt9aWYoISR0dXJuT2ZmUHJlbG9hZCl7JHBhc3MuPXNjcmlwdGRlcGxveV91dGlsczo6YnVpbGRfcHJlbG9hZCgkU2NyaXB0SXMsJElEKTt9JGNvZGVUb0ZpbGUuPSRjb2RlLiRTY3JpcHRJczt9aWYoJHBhdGhPcHRpb24pe2lmKChzdWJzdHIoJHBhdGhPcHRpb24sMCw0KSk9PSJodHRwIil7JEw9c3RybGVuKCRjb25maWdbJ3Jvb3RfdXJsJ10pOyRwYXRoT3B0aW9uPXN1YnN0cl9yZXBsYWNlKCRwYXRoT3B0aW9uLCcnLDAsJEwpO30kcGF0aE9wdGlvbj1ydHJpbSgkcGF0aE9wdGlvbiwnLycpOyRwYXRoT3B0aW9uPSRjb25maWdbJ3Jvb3RfcGF0aCddLiRwYXRoT3B0aW9uOyRjb2RlVG9GaWxlRnJvbVBhdGg9ZmlsZV9nZXRfY29udGVudHMoJHBhdGhPcHRpb24pO2lmKCgkTWluaWZ5PT10cnVlfHwkTWluaWZ5PT0nMScpJiYkTWluaWZ5IT0nJyYmJE1pbmlmeSE9ZmFsc2UpeyRjb2RlVG9GaWxlRnJvbVBhdGg9JFByb2NjZXNzLT5NaW5pZnlJdCgkY29kZVRvRmlsZUZyb21QYXRoLCRleHQpO31pZigkdmFsX21ldGg9PWZhbHNlKXskY29kZT0iXHJcbiAvKiBtaW5pZmllZCAkTWluaWZ5ICBcclxuIHNjcmlwdCAkSUQgXHJcbiAgcGF0aCAkcGF0aE9wdGlvbiBcclxuIFRPRE8gLS0gcHJvZmlsZSBcclxuIi5zY3JpcHRkZXBsb3lfdXRpbHM6OkdldF9Ob3RlcygkSUQpLiJcclxuICovIFxyXG4iO31pZighJHR1cm5PZmZQcmVsb2FkKXskcGFzcy49c2NyaXB0ZGVwbG95X3V0aWxzOjpidWlsZF9wcmVsb2FkKCRjb2RlVG9GaWxlRnJvbVBhdGgsJElEKTt9JGNvZGVUb0ZpbGUuPSRjb2RlLiRjb2RlVG9GaWxlRnJvbVBhdGg7fWlmKCR1bm1lcmdlKXskaW1wb3J0PWlzc2V0KCRwYXJhbXNbJ2ltcG9ydCddKT8kcGFyYW1zWydpbXBvcnQnXTpmYWxzZTskZHVtcD1pc3NldCgkcGFyYW1zWydkdW1wJ10pPyRwYXJhbXNbJ2R1bXAnXTpmYWxzZTskb3VwdXQ9Jyc7JGZpbGVuYW1lPSRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC9nU2luZ2xlLyIuJFNjcmlwdFNldC4iXyIuJElELiIuIi5zdHJ0b2xvd2VyKCRleHQpOyRQcm9jY2Vzcy0+Y3JlYXRlVW5tZXJnZSgkU2NyaXB0SXMsJGV4dCwkZmlsZW5hbWUpOyRwYXRoPWlzc2V0KCRwYXJhbXNbJ3BhdGgnXSk/JHBhcmFtc1sncGF0aCddOicnOyRub091dFB1dD1pc3NldCgkcGFyYW1zWydub091dFB1dCddKT8kcGFyYW1zWydub091dFB1dCddOmZhbHNlO2lmKCRwYXRoIT0nJyl7JGV4dD1zdHJ0b3VwcGVyKCRleHQpO31pZigkbm9PdXRQdXQ9PWZhbHNlKXskY2FjaGVCdXN0ZXI9aXNzZXQoJHBhcmFtc1snY2FjaGVfYnVzdGVyJ10pPyRwYXJhbXNbJ2NhY2hlX2J1c3RlciddOiRtb2QtPkdldFByZWZlcmVuY2UoJ2NhY2hlQnVzdGVyJyx0cnVlKTskZnNpemU9aXNzZXQoJHBhcmFtc1snZnNpemUnXSk/JHBhcmFtc1snZnNpemUnXTpmYWxzZTskR3Jvb3RVUkw9JG1vZC0+R2V0UHJlZmVyZW5jZSgncm9vdFVSTCcsJGNvbmZpZ1sncm9vdF91cmwnXSk7JFRBR3Jvb3RVcmw9aXNzZXQoJHBhcmFtc1sncm9vdCddKT8kcGFyYW1zWydyb290J106Jyc7JHJvb3RVcmw9JG1vZC0+R2V0UHJlZmVyZW5jZSgkSUQuJy1yb290VVJMLVNEJywnJyk7aWYoJFRBR3Jvb3RVcmwhPScnKXskcm9vdFVybD0kVEFHcm9vdFVybDt9ZWxzZWlmKCRyb290VXJsIT0nJyl7aWYoc3Vic3RyKCRyb290VXJsLC0xKT09Ii8iKXskcm9vdFVybD1ydHJpbSgkcm9vdFVybCwnLycpO30kcm9vdFVybD0kcm9vdFVybDt9ZWxzZWlmKCRHcm9vdFVSTCE9Jycpe2lmKHN1YnN0cigkR3Jvb3RVUkwsLTEpPT0iLyIpeyRHcm9vdFVSTD1ydHJpbSgkR3Jvb3RVUkwsJy8nKTt9JHJvb3RVcmw9JEdyb290VVJMO31lbHNleyRyb290VXJsPSRjb25maWdbJ3Jvb3RfdXJsJ107fWlmKHN1YnN0cigkcm9vdFVybCwtMSk9PSIvIil7JHJvb3RVcmw9cnRyaW0oJHJvb3RVcmwsJy8nKTt9JEhUVFBTX1BPUlQ9JG1vZC0+R2V0UHJlZmVyZW5jZSgnSFRUUFNfUE9SVCcsJzQ0MycpO2lmKCRfU0VSVkVSWydIVFRQUyddfHwkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXT09JEhUVFBTX1BPUlQpeyRyb290VXJsPXN0cl9yZXBsYWNlKCdodHRwJywnaHR0cHMnLCRyb290VXJsKTt9JFVSTD1pc3NldCgkcGFyYW1zWyd1cmwnXSk/JHBhcmFtc1sndXJsJ106ZmFsc2U7JGZpbGVMSU5LPSRyb290VXJsLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC9nU2luZ2xlLyIucmF3dXJsZW5jb2RlKCRTY3JpcHRTZXQpLiJfIi4kSUQuIi4iLnN0cnRvbG93ZXIoJGV4dCk7aWYoJGNhY2hlQnVzdGVyPT10cnVlKXskZmlsZUxJTks9JGZpbGVMSU5LLiI/Ii5maWxlbXRpbWUoJGZpbGVuYW1lKTt9JFRhZz0nJzskaW1wb3J0PWlzc2V0KCRwYXJhbXNbJ2ltcG9ydCddKT8kcGFyYW1zWydpbXBvcnQnXTpmYWxzZTskZHVtcD1pc3NldCgkcGFyYW1zWydkdW1wJ10pPyRwYXJhbXNbJ2R1bXAnXTpmYWxzZTtpZigkZXh0PT0nSlMnKXtlY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRmaWxlTElOSy4nIj48L3NjcmlwdD4nO31lbHNlaWYoJGV4dD09J0NTUycpeyRNZWRpYVR5cGU9aXNzZXQoJHBhcmFtc1snbWVkaWFfdHlwZSddKT8kcGFyYW1zWydtZWRpYV90eXBlJ106JG1vZC0+R2V0UHJlZmVyZW5jZSgkSUQuJy1NZWRpYVR5cGUtU0QnLCRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJtZWRpdW0nLCdBbGwnKSk7aWYoJGR1bXApe2VjaG8gZmlsZV9nZXRfY29udGVudHMoJGZpbGVMSU5LKTt9ZWxzZXtpZighJGltcG9ydCl7ZWNobyAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iJy4kTWVkaWFUeXBlLiciIHR5cGU9InRleHQvY3NzIiBocmVmPSInLiRmaWxlTElOSy4nIiAvPic7fWVsc2VpZigkaW1wb3J0PT0naW5fc2NyaXB0Jyl7ZWNobyAnQGltcG9ydCAiJy4kZmlsZUxJTksuJyI7Jzt9ZWxzZXtlY2hvICc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPkBpbXBvcnQgdXJsKCcuJGZpbGVMSU5LLicpICcuJE1lZGlhVHlwZS4nOzwvc3R5bGU+Jzt9fX1pZighJFVSTCl7JG91cHV0Lj0kZmlsZUxJTks7fX19bWVtb3J5X2dldF91c2FnZSh0cnVlKTt9aWYoJGV4dD09IkNTUyIpe2lmKCRtb2QtPkdldFByZWZlcmVuY2UoInByZWxvYWRfQ1NTaW1hZ2UiKSl7JG1vZC0+U2V0UHJlZmVyZW5jZSgkZ0lELictcHJlbG9hZF9DU1NpbWFnZS1ncm91cC1TRCcsJHBhc3MpOyRtb2QtPkZpcmVEZWJ1ZygnZXJyb3InLCdwcmVsb2FkX0NTU2ltYWdlOiAnLiRleHQpO319fWVsc2UgaWYoJGdyb3VwZWQ9PSJJbmxpbmUiKXtpZihjb3VudCgkcGF0aCk+MSl7Zm9yZWFjaCgkcGF0aCBhcyAka2V5PT4kcGF0aElzKXskU2NyaXB0SXM9ZmlsZV9nZXRfY29udGVudHMoJHBhdGhJcyk7aWYoJHZhbF9tZXRoPT10cnVlKXskTWluaWZ5PWZhbHNlO31pZigkc21hcnR5T24mJiRDTVNtb2RzIT0nJyl7JFNjcmlwdElzPSRQcm9jY2Vzcy0+c21hcnR5T24oJFNjcmlwdElzLDApO31lbHNleyRTY3JpcHRJcz0kUHJvY2Nlc3MtPnNtYXJ0eU9uKCRTY3JpcHRJcyk7fWlmKCRTY3JpcHRJcyE9Jycpe2lmKCgkTWluaWZ5PT10cnVlfHwkTWluaWZ5PT0nMScpJiYkTWluaWZ5IT0nJyYmJE1pbmlmeSE9ZmFsc2UpeyRTY3JpcHRJcz0kUHJvY2Nlc3MtPk1pbmlmeUl0KCRTY3JpcHRJcyxzdHJ0b3VwcGVyKCRleHQpKTt9aWYoJHZhbF9tZXRoPT1mYWxzZSl7JGNvZGU9IlxyXG4gLyogbWluaWZpZWQ6JE1pbmlmeSBcclxuIHNjcmlwdDokSUQgXHJcbiBvcmdhaW5hbCBwYXRoOiRwYXRoICBcclxuVE9ETyAtLSBwcm9maWxlIFxyXG4gKi8gXHJcbiI7fSRjb2RlVG9GaWxlLj0kY29kZS4kU2NyaXB0SXM7fWlmKGlzc2V0KCRzY3JpcHRUeXBlKSYmJHNjcmlwdFR5cGU9PSJDU1MiKXtpZigkbW9kLT5HZXRQcmVmZXJlbmNlKCJwcmVsb2FkX0NTU2ltYWdlIikpeyRtb2QtPlNldFByZWZlcmVuY2UoJElELictcHJlbG9hZF9DU1NpbWFnZS1zY3JpcHQtU0QnLHNjcmlwdGRlcGxveV91dGlsczo6YnVpbGRfcHJlbG9hZCgkY29kZVRvRmlsZSwkSUQpKTt9fX19ZWxzZXskU2NyaXB0SXM9ZmlsZV9nZXRfY29udGVudHMoJHBhdGgpO2lmKCR2YWxfbWV0aD09dHJ1ZSl7JE1pbmlmeT1mYWxzZTt9aWYoJHNtYXJ0eU9uJiYkQ01TbW9kcyE9JycpeyRTY3JpcHRJcz0kUHJvY2Nlc3MtPnNtYXJ0eU9uKCRTY3JpcHRJcywwKTt9ZWxzZXskU2NyaXB0SXM9JFByb2NjZXNzLT5zbWFydHlPbigkU2NyaXB0SXMpO31pZigkU2NyaXB0SXMhPScnKXtpZigoJE1pbmlmeT09dHJ1ZXx8JE1pbmlmeT09JzEnKSYmJE1pbmlmeSE9JycmJiRNaW5pZnkhPWZhbHNlKXskU2NyaXB0SXM9JFByb2NjZXNzLT5NaW5pZnlJdCgkU2NyaXB0SXMsc3RydG91cHBlcigkZXh0KSk7fWlmKCR2YWxfbWV0aD09ZmFsc2UpeyRjb2RlPSJcclxuIC8qIG1pbmlmaWVkOiRNaW5pZnkgXHJcbiBzY3JpcHQ6JElEIFxyXG4gb3JnYWluYWwgcGF0aDokcGF0aCAgXHJcblRPRE8gLS0gcHJvZmlsZSBcclxuICovIFxyXG4iO30kY29kZVRvRmlsZT0kY29kZS4kU2NyaXB0SXM7fWlmKGlzc2V0KCRzY3JpcHRUeXBlKSYmJHNjcmlwdFR5cGU9PSJDU1MiKXtpZigkbW9kLT5HZXRQcmVmZXJlbmNlKCJwcmVsb2FkX0NTU2ltYWdlIikpeyRtb2QtPlNldFByZWZlcmVuY2UoJElELictcHJlbG9hZF9DU1NpbWFnZS1zY3JpcHQtU0QnLHNjcmlwdGRlcGxveV91dGlsczo6YnVpbGRfcHJlbG9hZCgkY29kZVRvRmlsZSwkSUQpKTt9fX19aWYoJGV4dD09IkNTUyImJiRleHQhPSJodG1sIil7aWYoJGZpbGVUaW1lX2Nzc191cmxzJiYhJHZhbF9tZXRoKXskY29kZVRvRmlsZT1zY3JpcHRkZXBsb3lfdXRpbHM6OmZpbGVUaW1lX2Nzc191cmxzKCRjb2RlVG9GaWxlKTt9fSRvdXB1dD1hcnJheSgkY29kZVRvRmlsZSwkZXh0KTtyZXR1cm4gJG91cHV0O31wdWJsaWMgZnVuY3Rpb24gY3JlYXRlVW5tZXJnZSgkY29kZVRvRmlsZSwkZXh0LCRmaWxlbmFtZSl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7aWYoIWZpbGVfZXhpc3RzKCRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC9nU2luZ2xlIikpe21rZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLiIvdXBsb2Fkcy9saWIvU0QtdGVtcC9nU2luZ2xlIiwwNzc3LHRydWUpO30kb3VyRmlsZUhhbmRsZT1mb3BlbigkZmlsZW5hbWUsJ3cnKW9yIGRpZSgiY2FuJ3Qgb3BlbiBmaWxlIik7ZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTskbGVuPXN0cmxlbigkY29kZVRvRmlsZSk7JGNoaz1maWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsJGNvZGVUb0ZpbGUpO2lmKCRsZW4hPSRjaGspZGllKCJMRU5HVEggTUlTTUFUQ0giKTtpZigkbW9kLT5HZXRQcmVmZXJlbmNlKCdsb2NrZmlsZXMnKSl7Y2htb2QoJGZpbGVuYW1lLDA2NDQpO319cHVibGljIGZ1bmN0aW9uIGRvUGFnZSgkY29kZVRvRmlsZSl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRtb2QtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRQYWdlJyk7JG1vZC0+R2V0UHJlZmVyZW5jZSgnYXV0b0NvbnRlbnQnKTskbW9kLT5HZXRQcmVmZXJlbmNlKCdvd25Db250ZW50Jyk7JG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlckRlZmF1bHRQYWdlJyk7cmV0dXJuICRjb2RlVG9GaWxlO31wdWJsaWMgZnVuY3Rpb24gc21hcnR5T24oJGNvZGVUb0ZpbGUsJGFuaXREZWxpbT0xLCRleHQ9JycpeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskUHJvY2Nlc3M9bmV3IHNjcmlwdFByb2Nlc3NpbmcoKTtpZigkYW5pdERlbGltKXskbW9kLT5zbWFydHktPmxlZnRfZGVsaW1pdGVyPSd7eyc7JG1vZC0+c21hcnR5LT5yaWdodF9kZWxpbWl0ZXI9J319JzskY29kZVRvRmlsZT0kbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY29kZVRvRmlsZSk7JG1vZC0+c21hcnR5LT5sZWZ0X2RlbGltaXRlcj0neyc7JG1vZC0+c21hcnR5LT5yaWdodF9kZWxpbWl0ZXI9J30nO31lbHNlaWYoJGV4dD0naHRtbCcpeyRjb2RlVG9GaWxlPSRQcm9jY2Vzcy0+ZG9QYWdlKCRjb2RlVG9GaWxlKTt9ZWxzZXskY29kZVRvRmlsZT0kbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY29kZVRvRmlsZSk7fXJldHVybiAkY29kZVRvRmlsZTt9cHVibGljIGZ1bmN0aW9uIE1pbmlmeUl0KCRkYXRhLCRleHQpeyRhcmcyPW51bGw7JHR5cGVJUz0nJztzd2l0Y2goJGV4dCl7Y2FzZSAnSlMnOiR0eXBlSVM9J0phdmFzY3JpcHQnO2JyZWFrO2Nhc2UgJ0NTUyc6JHR5cGVJUz0nQ1NTJzticmVhaztjYXNlICdodG1sJzokdHlwZUlTPSdIVE1MJzskYXJnMj1hcnJheSgnY3NzTWluaWZpZXInPT5hcnJheSgnTWluaWZ5X0NTUycsJ21pbmlmeScpLCdqc01pbmlmaWVyJz0+YXJyYXkoJ01pbmlmeV9KYXZhc2NyaXB0JywnbWluaWZ5JykpO30kZnVuYz1hcnJheSgnTWluaWZ5XycuJHR5cGVJUywnbWluaWZ5Jyk7cmV0dXJuQGNhbGxfdXNlcl9mdW5jKCRmdW5jLCRkYXRhLCRhcmcyKTt9fQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.script_dissection.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3Mgc2NyaXB0X2Rpc3NlY3Rpb24gZXh0ZW5kcyBTY3JpcHREZXBsb3l7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7cGFyZW50OjpfX2NvbnN0cnVjdCgpOyR0aGlzLT5fZGF0YT1hcnJheSgpO31wdWJsaWMgZnVuY3Rpb24gY3NzX3VybF9kaXNzZWN0aW9uKCRzSUQpeyRQcm9jY2Vzcz1uZXcgc2NyaXB0UHJvY2Vzc2luZygpOyRjb25maWc9Y21zbXMoKS0+R2V0Q29uZmlnKCk7JGhvdExpbmtDaGVjaz0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnaG90TGlua0NoZWNrJywxKTskZGF0YT0kUHJvY2Nlc3MtPlByb2NjZXNzU0QoJHNJRCwnc2NyaXB0SUQnLHRydWUsZmFsc2UsJ0NTUycpOyRwYXlsb2FkPScnOyRjc3M9JGRhdGFbMF07JHBheWxvYWQuPSc8ZGl2IGlkPSJFVVJMUyI+PGgyPicuJHRoaXMtPkxhbmcoJ0VVUkxTJykuJzwvaDI+JzskcGF5bG9hZC49Jzx0YWJsZSBjbGFzcz0iY2FjaGVUYWJsZSI+JzskcGF5bG9hZC49Jzx0cj48dGg+IzwvdGg+PHRoPicuJHRoaXMtPkxhbmcoJ2lVUkwnKS4nPC90aD48IS0tPHRoPicuJHRoaXMtPkxhbmcoJ1R5cGUnKS4nPC90aD4tLT48dGg+Jy4kdGhpcy0+TGFuZygnU2l6ZScpLic8L3RoPjx0aD4nLiR0aGlzLT5MYW5nKCdTdGF0dXMnKS4nPC90aD48L3RyPic7JGNzc191cmxzPXNjcmlwdGRlcGxveV91dGlsczo6ZXh0cmFjdF9jc3NfdXJscygkY3NzKTtpZighZW1wdHkoJGNzc191cmxzKSl7aWYoISRob3RMaW5rQ2hlY2speyRwYXlsb2FkLj0nPHRyPic7JHBheWxvYWQuPSc8dGQ+MDwvdGQ+JzskcGF5bG9hZC49Jzx0ZD48aDM+Jy4kdGhpcy0+TGFuZygnVHJ1bk9uaG90TGlua0NoZWNrJykuJzwvaDM+PC90ZD4nOyRwYXlsb2FkLj0nPHRkPjwvdGQ+JzskcGF5bG9hZC49Jzx0ZD48L3RkPic7JHBheWxvYWQuPSc8L3RyPic7fWVsc2V7Zm9yZWFjaCgkY3NzX3VybHNbJ3Byb3BlcnR5J11hcyAka2V5PT4kY3NzX3VybCl7JHJlcG9ydEFycmF5PXNjcmlwdGRlcGxveV91dGlsczo6SG90bGlua0NoZWNrKCRrZXksJGNzc191cmwpOyRwYXlsb2FkLj0iPHRyPiI7JHBheWxvYWQuPSI8dGQ+Ii4kcmVwb3J0QXJyYXlbMV0uIjwvdGQ+IjskcGF5bG9hZC49Jzx0ZD48YSBocmVmPSInLiRyZXBvcnRBcnJheVsyXS4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kcmVwb3J0QXJyYXlbNF0uJzwvYT48L3RkPic7JHBheWxvYWQuPSI8dGQ+Ii4kcmVwb3J0QXJyYXlbM10uIjwvdGQ+IjskcGF5bG9hZC49Jzx0ZD4nLiRyZXBvcnRBcnJheVswXS4nIDwvdGQ+JzskcGF5bG9hZC49JzwvdHI+Jzt9fX1lbHNleyRwYXlsb2FkLj0nPHRyPic7JHBheWxvYWQuPSc8dGQ+MDwvdGQ+JzskcGF5bG9hZC49Jzx0ZD48aDM+Jy4kdGhpcy0+TGFuZygnTk9jc3NJJykuJzwvaDM+PC90ZD4nOyRwYXlsb2FkLj0nPHRkPjwvdGQ+JzskcGF5bG9hZC49Jzx0ZD48L3RkPic7JHBheWxvYWQuPSc8L3RyPic7fSRwYXlsb2FkLj0nPC90YWJsZT48L2Rpdj4nO3JldHVybiAkcGF5bG9hZDt9cHVibGljIGZ1bmN0aW9uIHJlbmRlcmVkX2Nzc19kaXNzZWN0aW9uKCRzSUQpeyRQcm9jY2Vzcz1uZXcgc2NyaXB0UHJvY2Vzc2luZygpOyRkYXRhPSRQcm9jY2Vzcy0+UHJvY2Nlc3NTRCgkc0lELCdzY3JpcHRJRCcsdHJ1ZSxmYWxzZSwnQ1NTJyk7aW5jbHVkZV9vbmNlKCIuLi9DU1NUcmVlLmluYy5waHAiKTskcGF5bG9hZD0nJzskbnVsbD1udWxsOyR0cmVlPW5ldyBDU1NUcmVlKCRudWxsLCIiKTskY3NzPSRkYXRhWzBdOyR0cmVlPSR0cmVlLT5wYXJzZUZpbGUoJGNzc2ZpbGUpOyRwYXlsb2FkLj0nPGRpdiBpZD0iUkNTUyI+PGgyPicuJHRoaXMtPkxhbmcoJ1JDU1MnKS4nPC9oMj4nOyRwYXlsb2FkLj0nPHByZT4nOyRwYXlsb2FkLj0kdHJlZS0+cmVuZGVyQ1NTQWxsKCk7JHBheWxvYWQuPSc8L3ByZT48L2Rpdj4nO3JldHVybiAkcGF5bG9hZDt9fQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.sdVal.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3Mgc2RWYWx7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7fXB1YmxpYyBmdW5jdGlvbiByZXRyaWV2ZUNTU1ZhbCgkaWQsJHByb2ZpbGU9ImNzczIxIiwkbGFuZz0iZW4iLCR3YXJuaW5nPSIyIiwkdXNlcm1lZGl1bT0iYWxsIil7JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7JElEPSRpZDskU0R0eXBlPSJzY3JpcHRJRCI7JGZpbGViYXNlbmFtZT0kSUQ7JFN0eXBlPSdjc3MnOyRmaWxlbmFtZT0kY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1ZBTC8kU0R0eXBlLyRJRC5jc3MiO2lmKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpe3VubGluaygkZmlsZW5hbWUpO30kU21hcnR5T249dHJ1ZTskUHJvY2Nlc3M9bmV3IHNjcmlwdFByb2Nlc3NpbmcoKTskZGF0YT0kUHJvY2Nlc3MtPlByb2NjZXNzU0QoJElELCRTRHR5cGUsJFNtYXJ0eU9uLGZhbHNlLCdDU1MnLHRydWUpOyRldmVudD0kZGF0YVswXTtpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9WQUwvIi4kU0R0eXBlKSl7bWtkaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9WQUwvIi4kU0R0eXBlLDA3NzcsdHJ1ZSk7fSRvdXJGaWxlTmFtZT0kZmlsZW5hbWU7JG91ckZpbGVIYW5kbGU9Zm9wZW4oJG91ckZpbGVOYW1lLCd3JylvciBkaWUoImNhbid0IG9wZW4gZmlsZSIpO2ZjbG9zZSgkb3VyRmlsZUhhbmRsZSk7JGxlbj1zdHJsZW4oJGV2ZW50KTskY2hrPWZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkZXZlbnQpO2lmKCRsZW4hPSRjaGspZGllKCJMRU5HVEggTUlTTUFUQ0giKTskZmlsZUxJTks9JGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iL2xpYi9TRC10ZW1wL1ZBTC8kU0R0eXBlLyRJRC5jc3MiOyRldmVudD11cmxlbmNvZGUodXRmOF9lbmNvZGUoJGV2ZW50KSk7JGppZ3Nhd1VybD0iaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci92YWxpZGF0b3I/b3V0cHV0PXNvYXAxMiZwcm9maWxlPSRwcm9maWxlJmFtcDtsYW5nPSRsYW5nJndhcm5pbmc9JHdhcm5pbmcmdXNlcm1lZGl1bT0kdXNlcm1lZGl1bSZ0ZXh0PSRldmVudCI7JGhlYWRlcnM9YXJyYXkoKTskbWV0aG9kPSdHRVQnOyRyZXRyeT0zOyRkYXRhPScnOyRodHRwPW5ldyBjbXNtc19odHRwKCk7JG9iaj0kaHR0cC0+Y21zbXNfaHR0cF9yZXF1ZXN0KCRqaWdzYXdVcmwsJGhlYWRlcnMsJG1ldGhvZCwkZGF0YSwkcmV0cnkpO2lmKCRtb2QtPkdldFByZWZlcmVuY2UoJ2RlYnVnSVQnKT09dHJ1ZSlwcmludCgiVmFsaWRhdGlvbiBTdGF0dXMgQ29kZSIuJG9iai0+Y29kZS4iPGJyLz4iKTtpZigkb2JqLT5jb2RlIT0yMDApcmV0dXJuOyRDU1N2YWxYbWxPYmplY3Q9bmV3IFNpbXBsZVhNTEVsZW1lbnQoJG9iai0+ZGF0YSk7JHA9eG1sX3BhcnNlcl9jcmVhdGUoKTt4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHAsJG9iai0+ZGF0YSwkdmFscywkaW5kZXgpO3htbF9wYXJzZXJfZnJlZSgkcCk7JGVycm9ybGlzdD1hcnJheSgpOyR3YXJuaW5nbGlzdD1hcnJheSgpO2ZvcmVhY2goJHZhbHMgYXMgJGl0ZW0pe2lmKCRpdGVtWyd0YWcnXT09J006RVJST1JDT1VOVCcpeyRFUlJPUkNPVU5UPSRpdGVtWyd2YWx1ZSddOyRjb3VudD0wO31pZigkaXRlbVsndGFnJ109PSdNOldBUk5JTkdDT1VOVCcpeyRXQVJOSU5HQ09VTlQ9JGl0ZW1bJ3ZhbHVlJ107JGNvdW50PTA7fWlmKCFpc3NldCgkV0FSTklOR0NPVU5UKSl7aWYoJGl0ZW1bJ3RhZyddPT0nTTpMSU5FJyl7JGNvdW50PSRjb3VudCsxOyRlcnJvcmxpc3RbJGNvdW50XVsnTElORSddPSRpdGVtWyd2YWx1ZSddO31pZigkaXRlbVsndGFnJ109PSdNOkVSUk9SVFlQRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnRVJST1JUWVBFJ109JGl0ZW1bJ3ZhbHVlJ107fWlmKCRpdGVtWyd0YWcnXT09J006RVJST1JTVUJUWVBFJyl7JGVycm9ybGlzdFskY291bnRdWydFUlJPUlNVQlRZUEUnXT0kaXRlbVsndmFsdWUnXTt9aWYoJGl0ZW1bJ3RhZyddPT0nTTpTS0lQUEVEU1RSSU5HJyl7JGVycm9ybGlzdFskY291bnRdWydTS0lQUEVEU1RSSU5HJ109JGl0ZW1bJ3ZhbHVlJ107fWlmKCRpdGVtWyd0YWcnXT09J006TUVTU0FHRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnTUVTU0FHRSddPSRpdGVtWyd2YWx1ZSddO319ZWxzZWlmKGlzc2V0KCRXQVJOSU5HQ09VTlQpKXtpZigkaXRlbVsndGFnJ109PSdNOkxJTkUnKXskY291bnQ9JGNvdW50KzE7JHdhcm5pbmdsaXN0WyRjb3VudF1bJ0xJTkUnXT0kaXRlbVsndmFsdWUnXTt9aWYoJGl0ZW1bJ3RhZyddPT0nTTpMRVZFTCcpeyR3YXJuaW5nbGlzdFskY291bnRdWydMRVZFTCddPSRpdGVtWyd2YWx1ZSddO31pZigkaXRlbVsndGFnJ109PSdNOk1FU1NBR0UnKXskd2FybmluZ2xpc3RbJGNvdW50XVsnTUVTU0FHRSddPSRpdGVtWyd2YWx1ZSddO319fSRWYWxBcnJheT1hcnJheSgkRVJST1JDT1VOVCwkZXJyb3JsaXN0LCRXQVJOSU5HQ09VTlQsJHdhcm5pbmdsaXN0KTtyZXR1cm4gJFZhbEFycmF5O31wdWJsaWMgZnVuY3Rpb24gVmFsQ1NTd2FybmluZ3MoJHNJRCl7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpOyRwcm9maWxlPSRtb2QtPkdldFByZWZlcmVuY2UoJ0NTU3Byb2ZpbGUnLCJjc3MyMSIpOyRsYW5nPSRtb2QtPkdldFByZWZlcmVuY2UoJ1ZBTExhbmcnLCJlbiIpOyR3YXJuaW5nPSRtb2QtPkdldFByZWZlcmVuY2UoJ3czY0NTU3dhcm5pbmcnLCIyIik7JHVzZXJtZWRpdW09JG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsImFsbCIpOyRkaXNwbGF5PSRtb2QtPkdldFByZWZlcmVuY2UoJ1Nob3dWYWwnLCcwJyk7JFZhbEFycmF5PXNlbGY6OnJldHJpZXZlQ1NTVmFsKCRzSUQsJHByb2ZpbGUsJGxhbmcsJHdhcm5pbmcsJHVzZXJtZWRpdW0pO3NsZWVwKDEpOyR2ZXJkaWN0PScnO2lmKCRWYWxBcnJheVsyXSE9MCl7JHZlcmRpY3Q9Jzxici8+Jy4kVmFsQXJyYXlbMl0uJyAnLiRtb2QtPkxhbmcoJ1dhcm5pbmdzJykuJzxici8+JzskY291bnQ9MTtmb3JlYWNoKCRWYWxBcnJheVszXWFzICRpdGVtKXskdmVyZGljdC49IjxoMz5XYXJuaW5nICMkY291bnQ8L2gzPiI7JHZlcmRpY3QuPSI8YSBocmVmPVwiI1wiIGNsYXNzPVwiZ29MaW5lXCI+PHN0cm9uZz4iLiRtb2QtPkxhbmcoJ0xJTkUnKS4iIDogfiA8L3N0cm9uZz48c3BhbiBjbGFzcz1cImxpbmVcIj4iLiRpdGVtWydMSU5FJ10uIjwvc3Bhbj48L2E+PGJyLz4iOyR2ZXJkaWN0Lj0iPHN0cm9uZz4iLiRtb2QtPkxhbmcoJ0xFVkVMJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ0xFVkVMJ10uIjxici8+IjskdmVyZGljdC49IjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCdNRVNTQUdFJykuIiA6IDwvc3Ryb25nPiIuJGl0ZW1bJ01FU1NBR0UnXS4iPGJyLz4iOyRjb3VudCsrO319cmV0dXJuICR2ZXJkaWN0O31wdWJsaWMgZnVuY3Rpb24gVmFsQ1NTZXJyb3JzKCRzSUQpeyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskcHJvZmlsZT0kbW9kLT5HZXRQcmVmZXJlbmNlKCdDU1Nwcm9maWxlJywiY3NzMjEiKTskbGFuZz0kbW9kLT5HZXRQcmVmZXJlbmNlKCdWQUxMYW5nJywiZW4iKTskd2FybmluZz0kbW9kLT5HZXRQcmVmZXJlbmNlKCd3M2NDU1N3YXJuaW5nJywiMiIpOyR1c2VybWVkaXVtPSRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJtZWRpdW0nLCJhbGwiKTskZGlzcGxheT0kbW9kLT5HZXRQcmVmZXJlbmNlKCdTaG93VmFsJywnMCcpOyR2ZXJkaWN0PScnOyRjb3VudD0xOyRza2lwQ291bnQ9MDskdmVyZGljdE1BU1M9Jyc7JHZhbEl0PW5ldyBzZFZhbCgpOyRWYWxBcnJheT0kdmFsSXQtPnJldHJpZXZlQ1NTVmFsKCRzSUQsJHByb2ZpbGUsJGxhbmcsJHdhcm5pbmcsJHVzZXJtZWRpdW0pO3NsZWVwKDEpOyRTS0lQUEVEU1RSSU5HPScnOyRFUlJPUlNVQlRZUEU9Jyc7aWYoJFZhbEFycmF5WzBdIT0wKXtmb3JlYWNoKCRWYWxBcnJheVsxXWFzICRpdGVtKXskc2tpcD1mYWxzZTskZmlsdGVyUHJvcD0kbW9kLT5HZXRQcmVmZXJlbmNlKCJmaWx0ZXJQcm9wIiwnJyk7aWYoaXNzZXQoJGl0ZW1bJ1NLSVBQRURTVFJJTkcnXSkpeyRTS0lQUEVEU1RSSU5HPSRpdGVtWydTS0lQUEVEU1RSSU5HJ107fSRNRVNTQUdFPSRpdGVtWydNRVNTQUdFJ107aWYoaXNzZXQoJGl0ZW1bJ0VSUk9SU1VCVFlQRSddKSl7JEVSUk9SU1VCVFlQRT0kaXRlbVsnRVJST1JTVUJUWVBFJ107fSRFUlJPUlRZUEU9JGl0ZW1bJ0VSUk9SVFlQRSddOyRmaWx0ZXJQcm9wQXJyYXk9ZXhwbG9kZSgnLCcsJGZpbHRlclByb3ApO2ZvcmVhY2goJGZpbHRlclByb3BBcnJheSBhcyAkUHJvcCl7JHBvcz1Ac3RycG9zKCRTS0lQUEVEU1RSSU5HLCRQcm9wKTskcG9zMj1Ac3RycG9zKCRNRVNTQUdFLCRQcm9wKTtpZihAc3RycG9zKCRTS0lQUEVEU1RSSU5HLCRQcm9wKSE9PWZhbHNlKXskc2tpcD10cnVlOyRza2lwQ291bnQrPTE7fWlmKEBzdHJwb3MoJE1FU1NBR0UsJFByb3ApIT09ZmFsc2UpeyRza2lwPXRydWU7JHNraXBDb3VudCs9MTt9fWlmKCRza2lwPT1mYWxzZSl7JHZlcmRpY3RNQVNTLj0iPGgzPkVycm9yICMkY291bnQ8L2gzPiI7JHZlcmRpY3RNQVNTLj0iPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ29MaW5lXCI+PHN0cm9uZz4iLiRtb2QtPkxhbmcoJ0xJTkUnKS4iIDogfiA8L3N0cm9uZz48c3BhbiBjbGFzcz1cImxpbmVcIj4iLiRpdGVtWydMSU5FJ10uIjwvc3Bhbj48L2E+PGJyLz4iOyR2ZXJkaWN0TUFTUy49IjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCdUWVBFJykuIiA6IDwvc3Ryb25nPiIuJEVSUk9SVFlQRS4iPGJyLz4iOyR2ZXJkaWN0TUFTUy49IjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCdTVUJUWVBFJykuIiA6IDwvc3Ryb25nPiIuJEVSUk9SU1VCVFlQRS4iPGJyLz4iOyR2ZXJkaWN0TUFTUy49IjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCdTVFJJTkcnKS4iIDogPC9zdHJvbmc+Ii4kU0tJUFBFRFNUUklORy4iPGJyLz4iOyR2ZXJkaWN0TUFTUy49IjxzdHJvbmc+Ii4kbW9kLT5MYW5nKCdNRVNTQUdFJykuIiA6IDwvc3Ryb25nPiIuJE1FU1NBR0UuIjxici8+IjskY291bnQrKzt9fSR2ZXJkaWN0PSRWYWxBcnJheVswXS4nICcuJG1vZC0+TGFuZygnRXJyb3JzJyk7aWYoJHNraXBDb3VudCE9MCl7JHZlcmRpY3QuPScoJy4kc2tpcENvdW50LicgJy4kbW9kLT5MYW5nKCdoaWRkZW4nKS4nKVxyXG4nO30kdmVyZGljdC49JHZlcmRpY3RNQVNTO31pZigkc2tpcENvdW50PT0kVmFsQXJyYXlbMF0peyR2ZXJkaWN0PScnO31yZXR1cm4gJHZlcmRpY3Q7fXB1YmxpYyBmdW5jdGlvbiB2YWxfSXQoJGV4dCwkc0lELCRhamF4PWZhbHNlKXskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ1dfaW5wdXQnLCcnKTskbW9kLT5zbWFydHktPmFzc2lnbignRV9pbnB1dCcsJycpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdub3RlZCcsJycpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZXBvcnQnLCcnKTskbW9kLT5zbWFydHktPmFzc2lnbignbW9kZScsJ2VkaXQnKTtpZigkZXh0PT0nQ1NTJyl7JHdhcm5pbmc9JG1vZC0+R2V0UHJlZmVyZW5jZSgndzNjQ1NTd2FybmluZycsIjIiKTtpZigkd2FybmluZyE9J25vJyl7JFdfaW5wdXQ9c2VsZjo6VmFsQ1NTd2FybmluZ3MoJHNJRCk7fWVsc2V7JFdfaW5wdXQ9Jyc7fSRFX2lucHV0PXNlbGY6OlZhbENTU2Vycm9ycygkc0lEKTtpZigkV19pbnB1dCE9Jyd8fCRFX2lucHV0IT0nJyl7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ1dfaW5wdXQnLCRXX2lucHV0KTskbW9kLT5zbWFydHktPmFzc2lnbignRV9pbnB1dCcsJEVfaW5wdXQpO31lbHNlaWYoJFdfaW5wdXQ9PScnJiYkRV9pbnB1dD09JycpeyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdWQWxlZCcsJzxpbWcgc3JjPSJodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzLWJsdWUiIGFsdD0iVmFsaWQgQ1NTISIgaWQ9InZhbFNpZ24iLz4nKTtpZigkbW9kLT5HZXRQcmVmZXJlbmNlKCJmaWx0ZXJQcm9wIiwnJykhPScnKXskbW9kLT5zbWFydHktPmFzc2lnbignbm90ZWQnLCRtb2QtPkxhbmcoJ1llc1ZBbGFzdGVyJykpO319fWlmKCRhamF4PT10cnVlKXtyZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCd2YWxfdGVtcGxhdGUudHBsJyk7fX1wdWJsaWMgZnVuY3Rpb24gcmV0cmlldmVIVE1MVmFsKCRpZCwkbGFuZz0iZW4iLCRkb2N0eXBlPSJYSFRNTCAxLjAgVHJhbnNpdGlvbmFsIiwkdmVyYm9zZT0xKXskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7JGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskSUQ9JGlkOyRmaWxlYmFzZW5hbWU9JElEOyRmaWxlbmFtZT0kY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4iL2xpYi9TRC10ZW1wL1ZBTC90ZW1wbGF0ZXMvJElELmh0bWwiO2lmKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpe3VubGluaygkZmlsZW5hbWUpO30kU21hcnR5T249dHJ1ZTskUHJvY2Nlc3M9bmV3IHNjcmlwdFByb2Nlc3NpbmcoKTskZGF0YT0kUHJvY2Nlc3MtPlByb2NjZXNzU0QoJElELCdzaW5nbGUnLCRTbWFydHlPbixmYWxzZSwnaHRtbCcsdHJ1ZSwnY29yZScpOyRldmVudD0kZGF0YVswXTtpZighZmlsZV9leGlzdHMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcC9WQUwvdGVtcGxhdGVzIikpe21rZGlyKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvVkFML3RlbXBsYXRlcyIsMDc3Nyx0cnVlKTt9JG91ckZpbGVOYW1lPSRmaWxlbmFtZTskb3VyRmlsZUhhbmRsZT1mb3Blbigkb3VyRmlsZU5hbWUsJ3cnKW9yIGRpZSgiY2FuJ3Qgb3BlbiBmaWxlIik7ZmNsb3NlKCRvdXJGaWxlSGFuZGxlKTskbGVuPXN0cmxlbigkZXZlbnQpOyRjaGs9ZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRldmVudCk7aWYoJGxlbiE9JGNoaylkaWUoIkxFTkdUSCBNSVNNQVRDSCIpOyRmaWxlTElOSz0kY29uZmlnWyd1cGxvYWRzX3VybCddLiIvbGliL1NELXRlbXAvVkFML3RlbXBsYXRlcy8kSUQuaHRtbCI7JGV2ZW50PXVybGVuY29kZSh1dGY4X2VuY29kZSgkZXZlbnQpKTskdzNjVXJsPSJodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL3ZhbGlkYXRvcj9vdXRwdXQ9c29hcDEyJnByb2ZpbGU9JHByb2ZpbGUmYW1wO2xhbmc9JGxhbmcmd2FybmluZz0kd2FybmluZyZ1c2VybWVkaXVtPSR1c2VybWVkaXVtJnRleHQ9JGV2ZW50IjskaGVhZGVycz1hcnJheSgpOyRyZXRyeT0zOyRkYXRhPScnOyRodHRwPW5ldyBjbXNtc19odHRwKCk7JG9iaj0kaHR0cC0+Y21zbXNfaHR0cF9yZXF1ZXN0KCR3M2NVcmwsJGhlYWRlcnMsJ0dFVCcsJGRhdGEsJHJldHJ5KTtpZigkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJyk9PXRydWUpcHJpbnQoIlZhbGlkYXRpb24gU3RhdHVzIENvZGUiLiRvYmotPmNvZGUuIjxici8+Iik7aWYoJG9iai0+Y29kZSE9MjAwKXJldHVybjskQ1NTdmFsWG1sT2JqZWN0PW5ldyBTaW1wbGVYTUxFbGVtZW50KCRvYmotPmRhdGEpOyRwPXhtbF9wYXJzZXJfY3JlYXRlKCk7eG1sX3BhcnNlX2ludG9fc3RydWN0KCRwLCRvYmotPmRhdGEsJHZhbHMsJGluZGV4KTt4bWxfcGFyc2VyX2ZyZWUoJHApOyRlcnJvcmxpc3Q9YXJyYXkoKTskd2FybmluZ2xpc3Q9YXJyYXkoKTtmb3JlYWNoKCR2YWxzIGFzICRpdGVtKXtpZigkaXRlbVsndGFnJ109PSdNOkVSUk9SQ09VTlQnKXskRVJST1JDT1VOVD0kaXRlbVsndmFsdWUnXTskY291bnQ9MDt9aWYoJGl0ZW1bJ3RhZyddPT0nTTpXQVJOSU5HQ09VTlQnKXskV0FSTklOR0NPVU5UPSRpdGVtWyd2YWx1ZSddOyRjb3VudD0wO31pZighaXNzZXQoJFdBUk5JTkdDT1VOVCkpe2lmKCRpdGVtWyd0YWcnXT09J006TElORScpeyRjb3VudD0kY291bnQrMTskZXJyb3JsaXN0WyRjb3VudF1bJ0xJTkUnXT0kaXRlbVsndmFsdWUnXTt9aWYoJGl0ZW1bJ3RhZyddPT0nTTpFUlJPUlRZUEUnKXskZXJyb3JsaXN0WyRjb3VudF1bJ0VSUk9SVFlQRSddPSRpdGVtWyd2YWx1ZSddO31pZigkaXRlbVsndGFnJ109PSdNOkVSUk9SU1VCVFlQRScpeyRlcnJvcmxpc3RbJGNvdW50XVsnRVJST1JTVUJUWVBFJ109JGl0ZW1bJ3ZhbHVlJ107fWlmKCRpdGVtWyd0YWcnXT09J006U0tJUFBFRFNUUklORycpeyRlcnJvcmxpc3RbJGNvdW50XVsnU0tJUFBFRFNUUklORyddPSRpdGVtWyd2YWx1ZSddO31pZigkaXRlbVsndGFnJ109PSdNOk1FU1NBR0UnKXskZXJyb3JsaXN0WyRjb3VudF1bJ01FU1NBR0UnXT0kaXRlbVsndmFsdWUnXTt9fWVsc2VpZihpc3NldCgkV0FSTklOR0NPVU5UKSl7aWYoJGl0ZW1bJ3RhZyddPT0nTTpMSU5FJyl7JGNvdW50PSRjb3VudCsxOyR3YXJuaW5nbGlzdFskY291bnRdWydMSU5FJ109JGl0ZW1bJ3ZhbHVlJ107fWlmKCRpdGVtWyd0YWcnXT09J006TEVWRUwnKXskd2FybmluZ2xpc3RbJGNvdW50XVsnTEVWRUwnXT0kaXRlbVsndmFsdWUnXTt9aWYoJGl0ZW1bJ3RhZyddPT0nTTpNRVNTQUdFJyl7JHdhcm5pbmdsaXN0WyRjb3VudF1bJ01FU1NBR0UnXT0kaXRlbVsndmFsdWUnXTt9fX0kVmFsQXJyYXk9YXJyYXkoJEVSUk9SQ09VTlQsJGVycm9ybGlzdCwkV0FSTklOR0NPVU5ULCR3YXJuaW5nbGlzdCk7cmV0dXJuICRWYWxBcnJheTt9fQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.sd_export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3Mgc2RfZXhwb3J0IGV4dGVuZHMgU2NyaXB0RGVwbG95e3B1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe31wdWJsaWMgZnVuY3Rpb24gcmVzZXRWYXJzKCl7JG1vZC0+VE1QPWFycmF5KCk7JG1vZC0+Q1NTPWFycmF5KCk7JG1vZC0+SlM9YXJyYXkoKTskbW9kLT5QRz1hcnJheSgpOyRtb2QtPk1PRFRFTVBMQVRFPWFycmF5KCk7JG1vZC0+TU9EREFUQT1hcnJheSgpOyRtb2QtPkdDQj1hcnJheSgpOyRtb2QtPlVEVD1hcnJheSgpOyRtb2QtPkZJTEU9YXJyYXkoKTskbW9kLT5QUkVGPWFycmF5KCk7JG1vZC0+SU5GTz1hcnJheSgpOyRtb2QtPkZJTkZPPWFycmF5KCk7JF9TRVNTSU9OWydTRGV4cG9ydCddPWFycmF5KCk7aWYoIWVtcHR5KCRtb2QtPnByb2ZpbGUpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ3Byb2ZpbGUnXT0kbW9kLT5wcm9maWxlO319cHVibGljIGZ1bmN0aW9uIHJlYWRTRVNTSU9OKCl7aWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjktYmV0YTEnKT49MCl7JGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7fWVsc2V7Z2xvYmFsICRnQ21zOyRtb2Q9JGdDbXMtPm1vZHVsZXNbJ1NjcmlwdERlcGxveSddWydvYmplY3QnXTt9JG1vZC0+VE1QPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsnVE1QJ10pPyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnVE1QJ106YXJyYXkoKTskbW9kLT5DU1M9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydDU1MnXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydDU1MnXTphcnJheSgpOyRtb2QtPkpTPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsnSlMnXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydKUyddOmFycmF5KCk7JG1vZC0+UEc9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydQRyddKT8kX1NFU1NJT05bJ1NEZXhwb3J0J11bJ1BHJ106YXJyYXkoKTskbW9kLT5NT0RURU1QTEFURT1pc3NldCgkX1NFU1NJT05bJ1NEZXhwb3J0J11bJ01PRFRFTVBMQVRFJ10pPyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnTU9EVEVNUExBVEUnXTphcnJheSgpOyRtb2QtPk1PRERBVEE9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydNT0REQVRBJ10pPyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnTU9EREFUQSddOmFycmF5KCk7JG1vZC0+R0NCPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsnR0NCJ10pPyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnR0NCJ106YXJyYXkoKTskbW9kLT5VRFQ9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydVRFQnXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydVRFQnXTphcnJheSgpOyRtb2QtPkZJTEU9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydGSUxFJ10pPyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnRklMRSddOmFycmF5KCk7JG1vZC0+UFJFRj1pc3NldCgkX1NFU1NJT05bJ1NEZXhwb3J0J11bJ1BSRUYnXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydQUkVGJ106YXJyYXkoKTskbW9kLT5JTkZPPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsnaW5mbyddKT8kX1NFU1NJT05bJ1NEZXhwb3J0J11bJ2luZm8nXTphcnJheSgpOyRtb2QtPkZJTkZPPWlzc2V0KCRfU0VTU0lPTlsnU0RleHBvcnQnXVsnZmluZm8nXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydmaW5mbyddOmFycmF5KCk7JG1vZC0+cHJvZmlsZT1pc3NldCgkX1NFU1NJT05bJ1NEZXhwb3J0J11bJ3Byb2ZpbGUnXSk/JF9TRVNTSU9OWydTRGV4cG9ydCddWydwcm9maWxlJ106YXJyYXkoKTt9cHVibGljIGZ1bmN0aW9uIHVwZGF0ZVNFU1NJT04oKXtpZih2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sJzEuOS1iZXRhMScpPj0wKXskZ0Ntcz1jbXNtcygpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTt9ZWxzZXtnbG9iYWwgJGdDbXM7JG1vZD0kZ0Ntcy0+bW9kdWxlc1snU2NyaXB0RGVwbG95J11bJ29iamVjdCddO31pZighZW1wdHkoJG1vZC0+VE1QKSl7JF9TRVNTSU9OWydTRGV4cG9ydCddWydUTVAnXT0kbW9kLT5UTVA7fWlmKCFlbXB0eSgkbW9kLT5DU1MpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ0NTUyddPSRtb2QtPkNTUzt9aWYoIWVtcHR5KCRtb2QtPkpTKSl7JF9TRVNTSU9OWydTRGV4cG9ydCddWydKUyddPSRtb2QtPkpTO31pZighZW1wdHkoJG1vZC0+UEcpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ1BHJ109JG1vZC0+UEc7fWlmKCFlbXB0eSgkbW9kLT5NT0RURU1QTEFURSkpeyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnTU9EVEVNUExBVEUnXT0kbW9kLT5NT0RURU1QTEFURTt9aWYoIWVtcHR5KCRtb2QtPk1PRERBVEEpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ01PRFRFTVBMQVRFJ109JG1vZC0+TU9EREFUQTt9aWYoIWVtcHR5KCRtb2QtPkdDQikpeyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnR0NCJ109JG1vZC0+R0NCO31pZighZW1wdHkoJG1vZC0+VURUKSl7JF9TRVNTSU9OWydTRGV4cG9ydCddWydVRFQnXT0kbW9kLT5VRFQ7fWlmKCFlbXB0eSgkbW9kLT5GSUxFKSl7JF9TRVNTSU9OWydTRGV4cG9ydCddWydGSUxFJ109JG1vZC0+RklMRTt9aWYoIWVtcHR5KCRtb2QtPlBSRUYpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ1BSRUYnXT0kbW9kLT5QUkVGO31pZighZW1wdHkoJG1vZC0+SU5GTykpeyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnaW5mbyddPSRtb2QtPklORk87fWlmKCFlbXB0eSgkbW9kLT5GSU5GTykpeyRfU0VTU0lPTlsnU0RleHBvcnQnXVsnZmluZm8nXT0kbW9kLT5GSU5GTzt9aWYoIWVtcHR5KCRtb2QtPnByb2ZpbGUpKXskX1NFU1NJT05bJ1NEZXhwb3J0J11bJ3Byb2ZpbGUnXT0kbW9kLT5wcm9maWxlO319cHVibGljIGZ1bmN0aW9uIHB1c2hEYXRhKCRpZCwkcGFyYW1zKXskZ0Ntcz1jbXNtcygpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTtzd2l0Y2goJG1vZC0+bGFzdGFjdCl7Y2FzZSAnVE1QJzokdG1wPWFycmF5KCk7JHRlbXBsYXRlb3BzPSRnQ21zLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKTtmb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXtpZighcHJlZ19tYXRjaCgnL15UTVAvaScsJGtleSkpe2NvbnRpbnVlO30kaXRlbV9pZD1zdWJzdHIoJGtleSxzdHJsZW4oJ1RNUCcpKTskdGVtcGxhdGVzX2NvbnRlbnQ9aXNzZXQoJHRlbXBsYXRlX2lkKSYmJHRlbXBsYXRlX2lkPjA/JHRlbXBsYXRlb3BzLT5Mb2FkVGVtcGxhdGVCeUlEKCR0ZW1wbGF0ZV9pZCk6YXJyYXkoKTtpZighZW1wdHkoJHRlbXBsYXRlc19jb250ZW50KSl7JHVzZWQ9ZmFsc2U7Zm9yZWFjaCgkbW9kLT5UTVAgYXMgJGtleT0+JHYpe2lmKCR2WydpZCddPT0kaXRlbV9pZCYmJHZbJ25hbWUnXT09JHRlbXBsYXRlc19jb250ZW50LT5uYW1lKXskdXNlZD10cnVlO319aWYoISR1c2VkKXskdG1wWydpZCddPSRpdGVtX2lkOyR0bXBbJ25hbWUnXT0kdGVtcGxhdGVzX2NvbnRlbnQtPm5hbWU7JG1vZC0+VE1QW109JHRtcDt9fX1icmVhaztjYXNlICdDU1MnOiR0bXA9YXJyYXkoKTskc3R5bGVvcHM9JGdDbXMtPkdldFN0eWxlc2hlZXRPcGVyYXRpb25zKCk7Zm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7aWYoIXByZWdfbWF0Y2goJy9eQ1NTL2knLCRrZXkpKXtjb250aW51ZTt9JGl0ZW1faWQ9c3Vic3RyKCRrZXksc3RybGVuKCdDU1MnKSk7JGNzcz0kc3R5bGVvcHMtPkxvYWRTdHlsZXNoZWV0QnlJRCgkaXRlbV9pZCk7JHVzZWQ9ZmFsc2U7Zm9yZWFjaCgkbW9kLT5DU1MgYXMgJGtleT0+JHYpe2lmKCR2WydpZCddPT0kaXRlbV9pZCYmJHZbJ25hbWUnXT09JGNzcy0+bmFtZSl7JHVzZWQ9dHJ1ZTt9fWlmKCEkdXNlZCl7JHRtcFsnaWQnXT0kaXRlbV9pZDskdG1wWyduYW1lJ109JGNzcy0+bmFtZTskdG1wWydTRCddPWZhbHNlOyRtb2QtPkNTU1tdPSR0bXA7fX1mb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXtpZighcHJlZ19tYXRjaCgnL15TRC1DU1MvaScsJGtleSkpe2NvbnRpbnVlO30kaXRlbV9pZD1zdWJzdHIoJGtleSxzdHJsZW4oJ1NELUNTUycpKTskY3NzPXNjcmlwdGRlcGxveV91dGlsczo6R2V0U2NyaXB0TmFtZSgkaXRlbV9pZCk7JHVzZWQ9ZmFsc2U7Zm9yZWFjaCgkbW9kLT5DU1MgYXMgJGtleT0+JHYpe2lmKCR2WydpZCddPT0kaXRlbV9pZCYmJHZbJ25hbWUnXT09JGNzcyl7JHVzZWQ9dHJ1ZTt9fWlmKCEkdXNlZCl7JHRtcFsnaWQnXT0kaXRlbV9pZDskdG1wWyduYW1lJ109JGNzczskdG1wWydTRCddPXRydWU7JG1vZC0+Q1NTW109JHRtcDt9fWJyZWFrO2Nhc2UgJ0pTJzpicmVhaztjYXNlICdQRyc6JHRtcD1hcnJheSgpOyRkYj0kZ0Ntcy0+R2V0RGIoKTtmb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXtpZighcHJlZ19tYXRjaCgnL15QRy9pJywka2V5KSl7Y29udGludWU7fSRpdGVtX2lkPXN1YnN0cigka2V5LHN0cmxlbignUEcnKSk7JHJlc3VsdD1hcnJheSgpOyRxdWVyeT0iU0VMRUNUIGMuY29udGVudF9pZCwgYy5jb250ZW50X25hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY29udGVudCBjIFdIRVJFIGMuY29udGVudF9pZCA9ID8iOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpdGVtX2lkKSk7d2hpbGUoJGRicmVzdWx0JiYhJGRicmVzdWx0LT5FT0YpeyR1c2VkPWZhbHNlO2ZvcmVhY2goJG1vZC0+UEcgYXMgJGtleT0+JHYpe2lmKCR2WydpZCddPT0kZGJyZXN1bHQtPmZpZWxkc1snY29udGVudF9pZCddKXskdXNlZD10cnVlO319aWYoISR1c2VkKXskdG1wWydpZCddPSRkYnJlc3VsdC0+ZmllbGRzWydjb250ZW50X2lkJ107JHRtcFsnbmFtZSddPSRkYnJlc3VsdC0+ZmllbGRzWydjb250ZW50X25hbWUnXTskbW9kLT5QR1tdPSR0bXA7fSRkYnJlc3VsdC0+TW92ZU5leHQoKTt9fWJyZWFrO2Nhc2UgJ01PRFRFTVBMQVRFJzpmb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXtpZighcHJlZ19tYXRjaCgnL15NT0RURU1QTEFURS9pJywka2V5KSl7Y29udGludWU7fSRtb2RPcD1leHBsb2RlKCcjJywkdmFsdWUpOyR1c2VkPWZhbHNlO2ZvcmVhY2goJG1vZC0+R0NCIGFzICRrZXk9PiR2KXtpZigkdlsnaWQnXT09JG1vZE9wWzBdJiYkdlsnbmFtZSddPT0kbW9kT3BbMV0peyR1c2VkPXRydWU7fX1pZighJHVzZWQpeyR0bXBbJ2lkJ109JG1vZE9wWzBdOyR0bXBbJ25hbWUnXT0kbW9kT3BbMV07JG1vZC0+TU9EVEVNUExBVEVbXT0kdG1wO319YnJlYWs7Y2FzZSAnTU9EREFUQSc6Zm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7aWYoIXByZWdfbWF0Y2goJy9eTU9EREFUQS9pJywka2V5KSl7Y29udGludWU7fSRtb2RPcD1leHBsb2RlKCcjJywkdmFsdWUpOyR1c2VkPWZhbHNlO2ZvcmVhY2goJG1vZC0+R0NCIGFzICRrZXk9PiR2KXtpZigkdlsnaWQnXT09JG1vZE9wWzBdJiYkdlsnbmFtZSddPT0kbW9kT3BbMV0peyR1c2VkPXRydWU7fX1pZighJHVzZWQpeyR0bXBbJ2lkJ109JG1vZE9wWzBdOyR0bXBbJ25hbWUnXT0kbW9kT3BbMV07JG1vZC0+TU9EREFUQVtdPSR0bXA7fX1icmVhaztjYXNlICdHQ0InOmZvcmVhY2goJHBhcmFtcyBhcyAka2V5PT4kdmFsdWUpe2lmKCFwcmVnX21hdGNoKCcvXkdDQi9pJywka2V5KSl7Y29udGludWU7fSRpdGVtX2lkPXN1YnN0cigka2V5LHN0cmxlbignR0NCJykpOyR1c2VkPWZhbHNlO2ZvcmVhY2goJG1vZC0+R0NCIGFzICRrZXk9PiR2KXtpZigkdlsnaWQnXT09JGl0ZW1faWQmJiR2WyduYW1lJ109PSR2YWx1ZSl7JHVzZWQ9dHJ1ZTt9fWlmKCEkdXNlZCl7JHRtcD1hcnJheSgpOyR0bXBbJ2lkJ109JGl0ZW1faWQ7JHRtcFsnbmFtZSddPSR2YWx1ZTskbW9kLT5HQ0JbXT0kdG1wO319YnJlYWs7Y2FzZSAnVURUJzpmb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXtpZighcHJlZ19tYXRjaCgnL15VRFQvaScsJGtleSkpe2NvbnRpbnVlO30kaXRlbV9pZD1zdWJzdHIoJGtleSxzdHJsZW4oJ1VEVCcpKTskdXNlZD1mYWxzZTtpZighZW1wdHkoJG1vZC0+VURUKSl7Zm9yZWFjaCgkbW9kLT5VRFQgYXMgJGtleT0+JHYpe2lmKCR2WydpZCddPT0kaXRlbV9pZCYmJHZbJ25hbWUnXT09JHZhbHVlKXskdXNlZD10cnVlO319fWlmKCEkdXNlZCl7JHRtcD1hcnJheSgpOyR0bXBbJ2lkJ109JGl0ZW1faWQ7JHRtcFsnbmFtZSddPSR2YWx1ZTskbW9kLT5VRFRbXT0kdG1wO319YnJlYWs7Y2FzZSAnRklMRSc6Zm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7aWYoIXByZWdfbWF0Y2goJy9eRklMRS9pJywka2V5KSl7Y29udGludWU7fSRpdGVtX2lkPXN1YnN0cigka2V5LHN0cmxlbignRklMRScpKTskdXNlZD1mYWxzZTtpZighZW1wdHkoJG1vZC0+RklMRSkpe2ZvcmVhY2goJG1vZC0+RklMRSBhcyAka2V5PT4kdil7aWYoJHZbJ2lkJ109PSRpdGVtX2lkJiYkdlsnbmFtZSddPT0kdmFsdWUpeyR1c2VkPXRydWU7fX19aWYoISR1c2VkKXskdG1wPWFycmF5KCk7JHRtcFsnaWQnXT0kaXRlbV9pZDskdG1wWyduYW1lJ109JHZhbHVlOyRtb2QtPkZJTEVbXT0kdG1wO319YnJlYWs7Y2FzZSAnUFJFRic6Zm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7aWYoIXByZWdfbWF0Y2goJy9eUFJFRi9pJywka2V5KSl7Y29udGludWU7fSRpdGVtX2lkPXN1YnN0cigka2V5LHN0cmxlbignUFJFRicpKTskdXNlZD1mYWxzZTtpZighZW1wdHkoJG1vZC0+UFJFRikpe2ZvcmVhY2goJG1vZC0+UFJFRiBhcyAka2V5PT4kdil7aWYoJHZbJ2lkJ109PSRpdGVtX2lkJiYkdlsnbmFtZSddPT0kdmFsdWUpeyR1c2VkPXRydWU7fX19aWYoISR1c2VkKXskdG1wPWFycmF5KCk7JHRtcFsnaWQnXT0kaXRlbV9pZDskdG1wWyduYW1lJ109JHZhbHVlOyRtb2QtPlBSRUZbXT0kdG1wO319YnJlYWs7Y2FzZSAnSU5GTyc6aWYoZW1wdHkoJHBhcmFtc1sncGFja2FnZW5hbWUnXSkpeyRwYXJhbXNbJ21lc3NhZ2UnXT0nZW1wdHlwYWNrYWdlbmFtZSc7JHBhcmFtc1snYWN0J109J0lORk8nOyRtb2QtPlJlZGlyZWN0KCRpZCwnZXhwb3J0JywkcmV0dXJuaWQsJHBhcmFtcyk7fWlmKGVtcHR5KCRwYXJhbXNbJ3BhY2thZ2V2ZXJzaW9uJ10pKXskcGFyYW1zWydtZXNzYWdlJ109J2VtcHR5cGFja2FnZXZlcnNpb24nOyRwYXJhbXNbJ2FjdCddPSdJTkZPJzskbW9kLT5SZWRpcmVjdCgkaWQsJ2V4cG9ydCcsJHJldHVybmlkLCRwYXJhbXMpO30kbW9kLT5JTkZPPWFycmF5KCdwYWNrYWdlbmFtZSc9PiRwYXJhbXNbJ3BhY2thZ2VuYW1lJ10sJ3BhY2thZ2V2ZXJzaW9uJz0+JHBhcmFtc1sncGFja2FnZXZlcnNpb24nXSwnYXV0aG9ybmFtZSc9PiRwYXJhbXNbJ2F1dGhvcm5hbWUnXSwnbm90ZXMnPT4kcGFyYW1zWydub3RlcyddKTskbW9kLT5zbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ2luZm8nLCRtb2QtPklORk8pO2JyZWFrO2Nhc2UgJ0ZJTkZPJzppZihlbXB0eSgkcGFyYW1zWydwYWNrYWdlbmFtZSddKSl7JHBhcmFtc1snbWVzc2FnZSddPSdlbXB0eXBhY2thZ2VuYW1lJzskcGFyYW1zWydhY3QnXT0nRklORk8nOyRtb2QtPlJlZGlyZWN0KCRpZCwnZXhwb3J0JywkcmV0dXJuaWQsJHBhcmFtcyk7fWlmKGVtcHR5KCRwYXJhbXNbJ3BhY2thZ2V2ZXJzaW9uJ10pKXskcGFyYW1zWydtZXNzYWdlJ109J2VtcHR5cGFja2FnZXZlcnNpb24nOyRwYXJhbXNbJ2FjdCddPSdGSU5GTyc7JG1vZC0+UmVkaXJlY3QoJGlkLCdleHBvcnQnLCRyZXR1cm5pZCwkcGFyYW1zKTt9JG1vZC0+RklORk89YXJyYXkoJ3BhY2thZ2VuYW1lJz0+JHBhcmFtc1sncGFja2FnZW5hbWUnXSwncGFja2FnZXZlcnNpb24nPT4kcGFyYW1zWydwYWNrYWdldmVyc2lvbiddLCdhdXRob3JuYW1lJz0+JHBhcmFtc1snYXV0aG9ybmFtZSddLCdub3Rlcyc9PiRwYXJhbXNbJ25vdGVzJ10pOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaW5mbycsJG1vZC0+RklORk8pO2JyZWFrO319cHVibGljIGZ1bmN0aW9uIHNlbGVjdEl0ZW1zKCRpZCwkcGFyYW1zKXskZ0Ntcz1jbXNtcygpOyRtb2Q9Y21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTY3JpcHREZXBsb3knKTskY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOyRmaD1uZXcgZmlsZWhhbmRsaW5nKCk7c2RfZXhwb3J0OjpyZWFkU0VTU0lPTigpO3NkX2V4cG9ydDo6cHVzaERhdGEoJGlkLCRwYXJhbXMpO3NkX2V4cG9ydDo6dXBkYXRlU0VTU0lPTigpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtb2QnLCR0aGlzKTtzd2l0Y2goJG1vZC0+YWN0KXtjYXNlICdUTVAnOiRyb3djbGFzcz0ncm93MSc7JHJvd2FycmF5PWFycmF5KCk7JGV4cF90ZW1wbHM9YXJyYXkoKTskdGVtcGxhdGVvcHM9JGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOyRhbGx0ZW1wbGF0ZXM9JHRlbXBsYXRlb3BzLT5Mb2FkVGVtcGxhdGVzKCk7Zm9yZWFjaCgkYWxsdGVtcGxhdGVzIGFzICR0ZW1wbCl7JHRtcFsnaWQnXT0kdGVtcGwtPmlkOyR0bXBbJ25hbWUnXT0kdGVtcGwtPm5hbWU7JHRtcFsnaW5wdXQnXT0kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnVE1QJy4kdGVtcGwtPmlkLCR0ZW1wbC0+aWQpOyRtb2QtPmV4cF90ZW1wbHNbXT0kdG1wO30kbW9kLT5zbWFydHktPmFzc2lnbigndGFibGVfaXRlbXMnLiRtb2QtPmFjdCwkbW9kLT5leHBfdGVtcGxzKTticmVhaztjYXNlICdDU1MnOiRzdHlsZW9wcz0kZ0Ntcy0+R2V0U3R5bGVzaGVldE9wZXJhdGlvbnMoKTskc3R5bGVzPSRzdHlsZW9wcy0+TG9hZFN0eWxlc2hlZXRzKCk7JHRtcD1hcnJheSgpO2ZvcmVhY2goJHN0eWxlcyBhcyAkc3R5bGUpeyR0bXBbJ2lkJ109JHN0eWxlLT5pZDskdG1wWyduYW1lJ109JHN0eWxlLT5uYW1lOyR0bXBbJ2lucHV0J109JG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ0NTUycuJHN0eWxlLT5pZCwkc3R5bGUtPmlkKTskbW9kLT5DU1NbXT0kdG1wO30kbW9kLT5zbWFydHktPmFzc2lnbigndGFibGVfaXRlbXMnLiRtb2QtPmFjdCwkbW9kLT5DU1MpOyRhbGxkYlByb2ZpbGVzPXNjcmlwdGRlcGxveV91dGlsczo6Z2V0U2NyaXB0c0xpc3QoKTskcm93YXJyYXk9YXJyYXkoKTskcm93Y2xhc3M9J3JvdzEnOyR3YXRjaGVkRm9sZGVyPXVuc2VyaWFsaXplKCRtb2QtPkdldFByZWZlcmVuY2UoJ3dhdGNoZWRGb2xkZXInLHNlcmlhbGl6ZShhcnJheSgnbm9uZScpKSkpO2ZvcmVhY2goJHdhdGNoZWRGb2xkZXIgYXMgJGs9PiR2KXskd2F0Y2hhYmxlRmlsZXM9JGZoLT5wcm9jZXNzX2RpcigkY29uZmlnWydyb290X3BhdGgnXS4nLycuQGx0cmltKCR2LCcuLi8nKSx0cnVlLCdkaXInLCcwNzU1Jyx0cnVlLCdTRC10ZW1wJyk7aWYoJHdhdGNoYWJsZUZpbGVzIT1mYWxzZSl7Zm9yZWFjaCgkd2F0Y2hhYmxlRmlsZXMgYXMgJGZpbGUpeyRTdHlwZT1zdHJ0b2xvd2VyKHN1YnN0cihsdHJpbSgkZmlsZVsibmFtZSJdLCcvJyksKHN0cnJwb3MobHRyaW0oJGZpbGVbIm5hbWUiXSwnLycpLCIuIikrMSkpKTtpZigkU3R5cGU9J2NzcycpeyR0bXBhcmVhPWFycmF5KCdTY3JpcHRTZXQnPT5iYXNlbmFtZSgkY29uZmlnWydyb290X3BhdGgnXS5sdHJpbSgkZmlsZVsibmFtZSJdLCcvJykpLCdwYXRoT3B0aW9uJz0+JGZpbGVbIm5hbWUiXSwnaW5wdXQnPT4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnc2Qtc3R5bGUnLCcnKSk7aWYoIWVtcHR5KCR0bXBhcmVhKSl7YXJyYXlfcHVzaCgkYWxsZGJQcm9maWxlcywkdG1wYXJlYSk7fX19fX1mb3JlYWNoKCRhbGxkYlByb2ZpbGVzIGFzICRrZXk9PiRvbmVkYlByb2ZpbGUpeyRTY3JpcHRTZXQ9JG9uZWRiUHJvZmlsZVsnU2NyaXB0U2V0J107JHBhdGhPcHRpb249JG9uZWRiUHJvZmlsZVsncGF0aE9wdGlvbiddOyRzY3JpcHRUeXBlPSRvbmVkYlByb2ZpbGVbJ3NjcmlwdFR5cGUnXTtpZigkc2NyaXB0VHlwZT09J0NTUycpeyRyb3c9bmV3IFN0ZENsYXNzKCk7JHJvdy0+bmFtZT0kU2NyaXB0U2V0OyRyb3ctPmlucHV0PSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdTRC1DU1MnLiRrZXksJGtleSk7JHJvdy0+aWQ9JGtleTskcm93LT5yb3djbGFzcz0kcm93Y2xhc3M7YXJyYXlfcHVzaCgkcm93YXJyYXksJHJvdyk7KCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7fX0kbW9kLT5zbWFydHktPmFzc2lnbigndGFibGVfaXRlbXMnLiRtb2QtPmFjdC4nLVNEJywkcm93YXJyYXkpO2JyZWFrO2Nhc2UgJ0pTJzokYWxsZGJQcm9maWxlcz1zY3JpcHRkZXBsb3lfdXRpbHM6OmdldFNjcmlwdHNMaXN0KCk7JHJvd2FycmF5PWFycmF5KCk7JHJvd2NsYXNzPSdyb3cxJztmb3JlYWNoKCRhbGxkYlByb2ZpbGVzIGFzICRrZXk9PiRvbmVkYlByb2ZpbGUpeyRTY3JpcHRTZXQ9JG9uZWRiUHJvZmlsZVsnU2NyaXB0U2V0J107JHBhdGhPcHRpb249JG9uZWRiUHJvZmlsZVsncGF0aE9wdGlvbiddOyRzY3JpcHRUeXBlPSRvbmVkYlByb2ZpbGVbJ3NjcmlwdFR5cGUnXTtpZigkc2NyaXB0VHlwZT09J0pTJyl7JHJvdz1uZXcgU3RkQ2xhc3MoKTskcm93LT5uYW1lPSRTY3JpcHRTZXQ7JHJvdy0+aW5wdXQ9JG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3NkLXN0eWxlXycuJGtleSwka2V5KTskcm93LT5pZD0ka2V5OyRyb3ctPnJvd2NsYXNzPSRyb3djbGFzczthcnJheV9wdXNoKCRyb3dhcnJheSwkcm93KTsoJHJvd2NsYXNzPT0icm93MSI/JHJvd2NsYXNzPSJyb3cyIjokcm93Y2xhc3M9InJvdzEiKTt9fSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJsZV9pdGVtcycuJG1vZC0+YWN0LictU0QnLCRyb3dhcnJheSk7YnJlYWs7Y2FzZSAnUEcnOiRkYj0kZ0Ntcy0+R2V0RGIoKTskdG1wPWFycmF5KCk7Zm9yZWFjaCgkbW9kLT5UTVAgYXMgJHRlbXBsYXRlKXskcmVzdWx0PWFycmF5KCk7JHF1ZXJ5PSJTRUxFQ1QgYy5jb250ZW50X2lkLCBjLmNvbnRlbnRfbmFtZSwgYy5oaWVyYXJjaHlfcGF0aCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IGMgV0hFUkUgYy50ZW1wbGF0ZV9pZCA9ID8gQU5EIGMudHlwZT0nY29udGVudCciOyRkYnJlc3VsdD0mJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGVtcGxhdGVbJ2lkJ10pKTt3aGlsZSgkZGJyZXN1bHQmJiEkZGJyZXN1bHQtPkVPRil7JHRtcFsnaWQnXT0kZGJyZXN1bHQtPmZpZWxkc1snY29udGVudF9pZCddOyR0bXBbJ25hbWUnXT0kZGJyZXN1bHQtPmZpZWxkc1snY29udGVudF9uYW1lJ10uJyAoJy4kZGJyZXN1bHQtPmZpZWxkc1snaGllcmFyY2h5X3BhdGgnXS4nKSc7JHRtcFsnaW5wdXQnXT0kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnUEcnLiRkYnJlc3VsdC0+ZmllbGRzWydjb250ZW50X2lkJ10sJGRicmVzdWx0LT5maWVsZHNbJ2NvbnRlbnRfaWQnXSk7JG1vZC0+UEdbXT0kdG1wOyRkYnJlc3VsdC0+TW92ZU5leHQoKTt9fSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJsZV9pdGVtcycuJG1vZC0+YWN0LCRtb2QtPlBHKTticmVhaztjYXNlICdNT0RURU1QTEFURSc6JG1vZC0+TU9EVEVNUExBVEU9aXNzZXQoJF9TRVNTSU9OWydTRGV4cG9ydCddWydNT0RURU1QTEFURSddKT8kX1NFU1NJT05bJ1NEZXhwb3J0J11bJ01PRFRFTVBMQVRFJ106YXJyYXkoKTskYWxsX21vZHVsZXM9YXJyYXkoKTtmb3JlYWNoKCRnQ21zLT5tb2R1bGVzIGFzICRtb2R1bGVfbmFtZT0+JGRldGFpbHMpeyRhbGxfbW9kdWxlc1tdPSRtb2R1bGVfbmFtZTt9JHRtcD1hcnJheSgpOyRpPTE7Zm9yZWFjaCgkYWxsX21vZHVsZXMgYXMgJG1vZHVsZV9uYW1lKXskdGVzdD1DbXNNb2R1bGU6OkdldE1vZHVsZUluc3RhbmNlKCRtb2R1bGVfbmFtZSk7JHRlbXBzPSR0ZXN0LT5MaXN0VGVtcGxhdGVzKCRtb2R1bGVfbmFtZSk7aWYoIWVtcHR5KCR0ZW1wcykpe2ZvcmVhY2goJHRlbXBzIGFzICR0ZW1wbGF0ZV9uYW1lKXskdG1wWydpZCddPSRtb2R1bGVfbmFtZTskdG1wWyduYW1lJ109JHRlbXBsYXRlX25hbWU7JHRtcFsnaW5wdXQnXT0kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnTU9EVEVNUExBVEUnLiRpLCRtb2R1bGVfbmFtZS4nIycuJHRlbXBsYXRlX25hbWUsIWVtcHR5KCRtb2QtPk1PRFRFTVBMQVRFWydpbnB1dCddKSYmIWVtcHR5KCRtb2QtPk1PRFRFTVBMQVRFWyduYW1lJ10pP3RydWU6ZmFsc2UpOyRtb2QtPk1PRFRFTVBMQVRFW109JHRtcDskaSsrO319fSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpZHRleHQnLCRtb2QtPkxhbmcoJ21vZHVsZW5hbWUnKSk7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYmxlX2l0ZW1zJy4kbW9kLT5hY3QsJG1vZC0+TU9EVEVNUExBVEUpO2JyZWFrO2Nhc2UgJ01PRERBVEEnOmJyZWFrO2Nhc2UgJ0dDQic6JGJsb2Nrb3BzPSYkZ0Ntcy0+R2V0R2xvYmFsQ29udGVudE9wZXJhdGlvbnMoKTskYWxsX2dibHM9JGJsb2Nrb3BzLT5Mb2FkSHRtbEJsb2JzKCk7JHRtcD1hcnJheSgpO2ZvcmVhY2goJGFsbF9nYmxzIGFzICRibG9jayl7JHRtcFsnaWQnXT0kYmxvY2stPmlkOyR0bXBbJ25hbWUnXT0kYmxvY2stPm5hbWU7JHRtcFsnaW5wdXQnXT0kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnR0NCJy4kYmxvY2stPmlkLCRibG9jay0+bmFtZSk7JG1vZC0+R0NCW109JHRtcDt9JG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYmxlX2l0ZW1zJy4kbW9kLT5hY3QsJG1vZC0+R0NCKTticmVhaztjYXNlICdVRFQnOiR0bXA9YXJyYXkoKTskZGI9JGdDbXMtPkdldERiKCk7JHF1ZXJ5PSJTRUxFQ1QgdS51c2VycGx1Z2luX2lkLCB1LnVzZXJwbHVnaW5fbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJ1c2VycGx1Z2lucyB1IjskZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSk7d2hpbGUoJGRicmVzdWx0JiYhJGRicmVzdWx0LT5FT0YpeyR0bXBbJ2lkJ109JGRicmVzdWx0LT5maWVsZHNbJ3VzZXJwbHVnaW5faWQnXTskdG1wWyduYW1lJ109JGRicmVzdWx0LT5maWVsZHNbJ3VzZXJwbHVnaW5fbmFtZSddOyR0bXBbJ2lucHV0J109JG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ1VEVCcuJGRicmVzdWx0LT5maWVsZHNbJ3VzZXJwbHVnaW5faWQnXSwkZGJyZXN1bHQtPmZpZWxkc1sndXNlcnBsdWdpbl9uYW1lJ10pOyRtb2QtPlVEVFtdPSR0bXA7JGRicmVzdWx0LT5Nb3ZlTmV4dCgpO30kbW9kLT5zbWFydHktPmFzc2lnbigndGFibGVfaXRlbXMnLiRtb2QtPmFjdCwkbW9kLT5VRFQpO2JyZWFrO2Nhc2UgJ0ZJTEUnOiRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJsZScsdXBsb2Fkc0xpc3QoJGlkKSk7YnJlYWs7Y2FzZSAnUFJFRic6JGFsbF9tb2R1bGVzPWFycmF5KCk7Zm9yZWFjaCgkZ0Ntcy0+bW9kdWxlcyBhcyAkbW9kdWxlX25hbWU9PiRkZXRhaWxzKXskYWxsX21vZHVsZXNbXT0kbW9kdWxlX25hbWU7fSRpPTE7Zm9yZWFjaCgkYWxsX21vZHVsZXMgYXMgJG1vZHVsZV9uYW1lKXskdG1wPWFycmF5KCk7JHRtcFsnaWQnXT0kbW9kdWxlX25hbWU7JHRtcFsnbmFtZSddPSRtb2R1bGVfbmFtZTskdG1wWydpbnB1dCddPSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdQUkVGJy4kaSwkbW9kdWxlX25hbWUpOyRtb2QtPlBSRUZbXT0kdG1wOyRpKys7fSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJsZV9pdGVtcycuJG1vZC0+YWN0LCRtb2QtPlBSRUYpO2JyZWFrO2Nhc2UgJ0lORk8nOiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYWNrYWdlbmFtZScsJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwncGFja2FnZW5hbWUnLGlzc2V0KCRwYXJhbXNbJ3BhY2thZ2VuYW1lJ10pPyRwYXJhbXNbJ3BhY2thZ2VuYW1lJ106JycsMjAsMjApKTskbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfcGFja2FnZXZlcnNpb24nLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3BhY2thZ2V2ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydwYWNrYWdldmVyc2lvbiddKT8kcGFyYW1zWydwYWNrYWdldmVyc2lvbiddOicnLDIwLDIwKSk7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2F1dGhvcm5hbWUnLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2F1dGhvcm5hbWUnLGlzc2V0KCRwYXJhbXNbJ2F1dGhvcm5hbWUnXSk/JHBhcmFtc1snYXV0aG9ybmFtZSddOicnLDIwKSk7JG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X25vdGVzJywkbW9kLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCRpZCxpc3NldCgkcGFyYW1zWydub3RlcyddKT8kcGFyYW1zWydub3RlcyddOicnLCdub3RlcycpKTticmVhaztjYXNlICdGSU5GTyc6JG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3BhY2thZ2VuYW1lJywkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdwYWNrYWdlbmFtZScsaXNzZXQoJHBhcmFtc1sncGFja2FnZW5hbWUnXSk/JHBhcmFtc1sncGFja2FnZW5hbWUnXTonJywyMCwyMCkpOyRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYWNrYWdldmVyc2lvbicsJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwncGFja2FnZXZlcnNpb24nLGlzc2V0KCRwYXJhbXNbJ3BhY2thZ2V2ZXJzaW9uJ10pPyRwYXJhbXNbJ3BhY2thZ2V2ZXJzaW9uJ106JycsMjAsMjApKTskbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfYXV0aG9ybmFtZScsJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYXV0aG9ybmFtZScsaXNzZXQoJHBhcmFtc1snYXV0aG9ybmFtZSddKT8kcGFyYW1zWydhdXRob3JuYW1lJ106JycsMjApKTskbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbm90ZXMnLCRtb2QtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLGlzc2V0KCRwYXJhbXNbJ25vdGVzJ10pPyRwYXJhbXNbJ25vdGVzJ106JycsJ25vdGVzJykpO2JyZWFrO319cHVibGljIGZ1bmN0aW9uIHNldFBhY2soJGlkLCRwYXJhbXMpe2lmKHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwnMS45LWJldGExJyk+PTApeyRnQ21zPWNtc21zKCk7JG1vZD1jbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NjcmlwdERlcGxveScpO31lbHNle2dsb2JhbCAkZ0NtczskbW9kPSRnQ21zLT5tb2R1bGVzWydTY3JpcHREZXBsb3knXVsnb2JqZWN0J107fXNkX2V4cG9ydDo6cmVhZFNFU1NJT04oKTtzZF9leHBvcnQ6OnB1c2hEYXRhKCRpZCwkcGFyYW1zKTtzZF9leHBvcnQ6OnVwZGF0ZVNFU1NJT04oKTt9cHVibGljIGZ1bmN0aW9uIHdyaXRlUGFjaygkaWQsJHBhcmFtcyl7aWYodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjktYmV0YTEnKT49MCl7JGdDbXM9Y21zbXMoKTskbW9kPWNtc191dGlsczo6Z2V0X21vZHVsZSgnU2NyaXB0RGVwbG95Jyk7fWVsc2V7Z2xvYmFsICRnQ21zOyRtb2Q9JGdDbXMtPm1vZHVsZXNbJ1NjcmlwdERlcGxveSddWydvYmplY3QnXTt9Z2xvYmFsICRjb25maWc7JGRiPSRnQ21zLT5HZXREYigpO3NkX2V4cG9ydDo6cmVhZFNFU1NJT04oKTskbW9kLT5zbWFydHktPmFzc2lnbignbW9kJywkbW9kKTskZG9jPW5ldyBEb21Eb2N1bWVudCgnMS4wJyk7JHBhY2thZ2U9JGRvYy0+Y3JlYXRlRWxlbWVudCgncGFja2FnZScpOyRwYWNrYWdlPSRkb2MtPmFwcGVuZENoaWxkKCRwYWNrYWdlKTskaW5mb3M9JGRvYy0+Y3JlYXRlRWxlbWVudCgnaW5mb3MnKTskcGFja2FnZS0+YXBwZW5kQ2hpbGQoJGluZm9zKTtmb3JlYWNoKCRtb2QtPklORk8gYXMgJGw9PiR2KXskaW5mbz0kZG9jLT5jcmVhdGVFbGVtZW50KCRsKTskaW5mb3MtPmFwcGVuZENoaWxkKCRpbmZvKTskdGV4dD0kZG9jLT5jcmVhdGVUZXh0Tm9kZSgkdik7JGluZm8tPmFwcGVuZENoaWxkKCR0ZXh0KTt9JGluZm89JGRvYy0+Y3JlYXRlRWxlbWVudCgnY21zbXN2ZXJzaW9uJyk7JGluZm9zLT5hcHBlbmRDaGlsZCgkaW5mbyk7JHRleHQ9JGRvYy0+Y3JlYXRlVGV4dE5vZGUoJEdMT0JBTFNbJ0NNU19WRVJTSU9OJ10pOyRpbmZvLT5hcHBlbmRDaGlsZCgkdGV4dCk7JGluZm89JGRvYy0+Y3JlYXRlRWxlbWVudCgnc2R2ZXJzaW9uJyk7JGluZm9zLT5hcHBlbmRDaGlsZCgkaW5mbyk7JHRleHQ9JGRvYy0+Y3JlYXRlVGV4dE5vZGUoJG1vZC0+R2V0VmVyc2lvbigpKTskaW5mby0+YXBwZW5kQ2hpbGQoJHRleHQpOyRtb2R1bGVzPWFycmF5KCk7aWYoIWVtcHR5KCRtb2QtPk1PRFRFTVBMQVRFKSl7Zm9yZWFjaCgkbW9kLT5NT0RURU1QTEFURSBhcyAka2V5PT4kZGF0YSl7JG1vZHVsZXNbXT0kZGF0YVsnaWQnXTt9fWlmKCFlbXB0eSgkbW9kLT5QUkVGKSl7Zm9yZWFjaCgkbW9kLT5QUkVGIGFzICRrZXk9PiRkYXRhKXskbW9kdWxlc1tdPSRkYXRhWyduYW1lJ107fX0kbW9kdWxlcz1hcnJheV91bmlxdWUoJG1vZHVsZXMpOyRtb2R1bGV2ZXJzaW9ucz0kZG9jLT5jcmVhdGVFbGVtZW50KCdtb2R1bGV2ZXJzaW9ucycpOyRwYWNrYWdlLT5hcHBlbmRDaGlsZCgkbW9kdWxldmVyc2lvbnMpO2ZvcmVhY2goJG1vZHVsZXMgYXMgJG1vZHVsZW5hbWUpeyRtb2R1bGU9JGRvYy0+Y3JlYXRlRWxlbWVudCgnbW9kdWxldmVyc2lvbicpOyRtb2R1bGV2ZXJzaW9ucy0+YXBwZW5kQ2hpbGQoJG1vZHVsZSk7JG5hbWU9JGRvYy0+Y3JlYXRlRWxlbWVudCgnbmFtZScpOyRtb2R1bGUtPmFwcGVuZENoaWxkKCRuYW1lKTskdGV4dD0kZG9jLT5jcmVhdGVUZXh0Tm9kZSgkbW9kdWxlbmFtZSk7JG5hbWUtPmFwcGVuZENoaWxkKCR0ZXh0KTskdmVyc2lvbj0kZG9jLT5jcmVhdGVFbGVtZW50KCd2ZXJzaW9uJyk7JG1vZHVsZS0+YXBwZW5kQ2hpbGQoJHZlcnNpb24pOyR0ZXN0PUNtc01vZHVsZTo6R2V0TW9kdWxlSW5zdGFuY2UoJG1vZHVsZW5hbWUpOyR0ZXh0PSRkb2MtPkNyZWF0ZVRleHROb2RlKCR0ZXN0LT5HZXRWZXJzaW9uKCkpOyR2ZXJzaW9uLT5hcHBlbmRDaGlsZCgkdGV4dCk7fWlmKCFlbXB0eSgkbW9kLT5UTVApKXskdGVtcGxhdGVzPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlcycpOyRwYWNrYWdlLT5hcHBlbmRDaGlsZCgkdGVtcGxhdGVzKTskaWRzPWFycmF5KCk7Zm9yZWFjaCgkbW9kLT5UTVAgYXMgJHRlbXBsYXRlKXskaWRzW109JHRlbXBsYXRlWydpZCddO30kcXVlcnk9IlNFTEVDVCB0ZW1wbGF0ZV9uYW1lLCB0ZW1wbGF0ZV9jb250ZW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuInRlbXBsYXRlcyBXSEVSRSB0ZW1wbGF0ZV9pZCBJTiAoIi5pbXBsb2RlKCcsJywkaWRzKS4iKSI7JGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnkpO3doaWxlKCRkYnJlc3VsdCYmJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpeyR0YWJsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpOyR0ZW1wbGF0ZXMtPmFwcGVuZENoaWxkKCR0YWJsZSk7Zm9yZWFjaCgkcm93IGFzICRmaWVsZG5hbWU9PiRmaWVsZHZhbHVlKXskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgkZmllbGRuYW1lKTskdGFibGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkZmllbGR2YWx1ZSk7JGNoaWxkLT5hcHBlbmRDaGlsZCgkdmFsdWUpO319fWlmKCFlbXB0eSgkbW9kLT5DU1MpKXskc3R5bGVzaGVldHM9JGRvYy0+Y3JlYXRlRWxlbWVudCgnc3R5bGVzaGVldHMnKTskcGFja2FnZS0+YXBwZW5kQ2hpbGQoJHN0eWxlc2hlZXRzKTskaWRzPWFycmF5KCk7Zm9yZWFjaCgkbW9kLT5DU1MgYXMgJHN0eWxlKXskaWRzW109JHN0eWxlWydpZCddO30kcXVlcnk9IlNFTEVDVCBjc3NfbmFtZSwgY3NzX3RleHQsIG1lZGlhX3R5cGUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4iY3NzIFdIRVJFIGNzc19pZCBJTiAoIi5pbXBsb2RlKCcsJywkaWRzKS4iKSI7JGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnkpO3doaWxlKCRkYnJlc3VsdCYmJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpeyR0YWJsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCdjc3MnKTskc3R5bGVzaGVldHMtPmFwcGVuZENoaWxkKCR0YWJsZSk7Zm9yZWFjaCgkcm93IGFzICRmaWVsZG5hbWU9PiRmaWVsZHZhbHVlKXskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgkZmllbGRuYW1lKTskdGFibGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkZmllbGR2YWx1ZSk7JGNoaWxkLT5hcHBlbmRDaGlsZCgkdmFsdWUpO319fWlmKCFlbXB0eSgkbW9kLT5UTVApJiYhZW1wdHkoJG1vZC0+Q1NTKSl7JGFzc29jcz0kZG9jLT5jcmVhdGVFbGVtZW50KCdhc3NvY3MnKTskcGFja2FnZS0+YXBwZW5kQ2hpbGQoJGFzc29jcyk7JGlkcz1hcnJheSgpO2ZvcmVhY2goJG1vZC0+VE1QIGFzICR0ZW1wbGF0ZSl7JHRwbF9pZHNbXT0kdGVtcGxhdGVbJ2lkJ107fWZvcmVhY2goJG1vZC0+Q1NTIGFzICRzdHlsZSl7JGNzc19pZHNbXT0kc3R5bGVbJ2lkJ107fSRxdWVyeT0iU0VMRUNUIGNzc19uYW1lLCB0ZW1wbGF0ZV9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNzcywgIi5jbXNfZGJfcHJlZml4KCkuInRlbXBsYXRlcywgIi5jbXNfZGJfcHJlZml4KCkuImNzc19hc3NvYyAiLiIgV0hFUkUgY3NzX2lkPWFzc29jX2Nzc19pZCBhbmQgdGVtcGxhdGVfaWQ9YXNzb2NfdG9faWQiLiIgQU5EIHRlbXBsYXRlX2lkIElOICgiLmltcGxvZGUoJywnLCR0cGxfaWRzKS4iKSBBTkQgY3NzX2lkIElOICgiLmltcGxvZGUoJywnLCRjc3NfaWRzKS4iKSI7JGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnkpO3doaWxlKCRkYnJlc3VsdCYmJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpeyR0YWJsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCdhc3NvYycpOyRhc3NvY3MtPmFwcGVuZENoaWxkKCR0YWJsZSk7Zm9yZWFjaCgkcm93IGFzICRmaWVsZG5hbWU9PiRmaWVsZHZhbHVlKXskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgkZmllbGRuYW1lKTskdGFibGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkZmllbGR2YWx1ZSk7JGNoaWxkLT5hcHBlbmRDaGlsZCgkdmFsdWUpO319fWlmKCFlbXB0eSgkbW9kLT5KUykpe31pZighZW1wdHkoJG1vZC0+UEcpKXskY29udGVudHM9JGRvYy0+Y3JlYXRlRWxlbWVudCgncGFnZXMnKTskcGFja2FnZS0+YXBwZW5kQ2hpbGQoJGNvbnRlbnRzKTskaWRzPWFycmF5KCk7Zm9yZWFjaCgkbW9kLT5QRyBhcyAkcGFnZSl7JGlkc1tdPSRwYWdlWydpZCddO30kcXVlcnk9IlNFTEVDVCBjb250ZW50X25hbWUsIHR5cGUsIHQudGVtcGxhdGVfaWQsIHRlbXBsYXRlX25hbWUsIG1lbnVfdGV4dCwgY29udGVudF9hbGlhcywgc2hvd19pbl9tZW51LFxyXG4gICAgICAgICAgICAgICAgbWFya3VwLCBjYWNoYWJsZSwgcHJvcF9uYW1lcywgbWV0YWRhdGEsIGhpZXJhcmNoeV9wYXRoICBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IGMsICIuY21zX2RiX3ByZWZpeCgpLiJ0ZW1wbGF0ZXMgdCBXSEVSRSB0LnRlbXBsYXRlX2lkPWMudGVtcGxhdGVfaWQiLiIgQU5EIGNvbnRlbnRfaWQgSU4gKCIuaW1wbG9kZSgnLCcsJGlkcykuIikiOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTt3aGlsZSgkZGJyZXN1bHQmJiRyb3c9JGRicmVzdWx0LT5GZXRjaFJvdygpKXskY29udGVudD0kZG9jLT5jcmVhdGVFbGVtZW50KCdwYWdlJyk7JGNvbnRlbnRzLT5hcHBlbmRDaGlsZCgkY29udGVudCk7Zm9yZWFjaCgkcm93IGFzICRmaWVsZG5hbWU9PiRmaWVsZHZhbHVlKXskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgkZmllbGRuYW1lKTskY29udGVudC0+YXBwZW5kQ2hpbGQoJGNoaWxkKTskdmFsdWU9JGRvYy0+Y3JlYXRlQ0RBVEFTZWN0aW9uKCRmaWVsZHZhbHVlKTskY2hpbGQtPmFwcGVuZENoaWxkKCR2YWx1ZSk7fSRjb250ZW50X3Byb3BzPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2NvbnRlbnRfcHJvcHMnKTskY29udGVudC0+YXBwZW5kQ2hpbGQoJGNvbnRlbnRfcHJvcHMpOyRxdWVyeT0iU0VMRUNUIGMuY29udGVudF9hbGlhcywgcC50eXBlLCBwLnByb3BfbmFtZSwgcC5wYXJhbTEsIHAucGFyYW0yLCBwLnBhcmFtMyxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnRfcHJvcHMgcCwgIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYy5jb250ZW50X2lkID0gcC5jb250ZW50X2lkIi4iIEFORCBjLmNvbnRlbnRfYWxpYXMgPSA/IjskZGJyZXN1bHQyPSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJvd1snY29udGVudF9hbGlhcyddKSk7d2hpbGUoJGRicmVzdWx0MiYmJHJvdzI9JGRicmVzdWx0Mi0+RmV0Y2hSb3coKSl7JGNvbnRlbnRfcHJvcD0kZG9jLT5jcmVhdGVFbGVtZW50KCdjb250ZW50X3Byb3AnKTskY29udGVudF9wcm9wcy0+YXBwZW5kQ2hpbGQoJGNvbnRlbnRfcHJvcCk7Zm9yZWFjaCgkcm93MiBhcyAkZmllbGRuYW1lPT4kZmllbGR2YWx1ZSl7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJGZpZWxkbmFtZSk7JGNvbnRlbnRfcHJvcC0+YXBwZW5kQ2hpbGQoJGNoaWxkKTskdmFsdWU9JGRvYy0+Y3JlYXRlQ0RBVEFTZWN0aW9uKCRmaWVsZHZhbHVlKTskY2hpbGQtPmFwcGVuZENoaWxkKCR2YWx1ZSk7fX19fWlmKCFlbXB0eSgkbW9kLT5NT0RURU1QTEFURSkpeyRtb2R1bGVfdGVtcGxhdGVzPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ21vZHVsZV90ZW1wbGF0ZXMnKTskcGFja2FnZS0+YXBwZW5kQ2hpbGQoJG1vZHVsZV90ZW1wbGF0ZXMpO2ZvcmVhY2goJG1vZC0+TU9EVEVNUExBVEUgYXMgJGV4cF9tb2R1bGUpeyRtb2R1bGVfdGVtcGxhdGU9JGRvYy0+Y3JlYXRlRWxlbWVudCgnbW9kdWxlX3RlbXBsYXRlJyk7JG1vZHVsZV90ZW1wbGF0ZXMtPmFwcGVuZENoaWxkKCRtb2R1bGVfdGVtcGxhdGUpOyR0ZXN0PUNtc01vZHVsZTo6R2V0TW9kdWxlSW5zdGFuY2UoJGV4cF9tb2R1bGVbJ2lkJ10pOyRjb250ZW50PSR0ZXN0LT5HZXRUZW1wbGF0ZSgkZXhwX21vZHVsZVsnbmFtZSddLCRleHBfbW9kdWxlWydpZCddKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgnbW9kdWxlX25hbWUnKTskbW9kdWxlX3RlbXBsYXRlLT5hcHBlbmRDaGlsZCgkY2hpbGQpOyR2YWx1ZT0kZG9jLT5jcmVhdGVDREFUQVNlY3Rpb24oJGV4cF9tb2R1bGVbJ2lkJ10pOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgndGVtcGxhdGVfbmFtZScpOyRtb2R1bGVfdGVtcGxhdGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkZXhwX21vZHVsZVsnbmFtZSddKTskY2hpbGQtPmFwcGVuZENoaWxkKCR2YWx1ZSk7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2NvbnRlbnQnKTskbW9kdWxlX3RlbXBsYXRlLT5hcHBlbmRDaGlsZCgkY2hpbGQpOyR2YWx1ZT0kZG9jLT5jcmVhdGVDREFUQVNlY3Rpb24oJGNvbnRlbnQpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTt9fWlmKCFlbXB0eSgkbW9kLT5NT0REQVRBKSl7fWlmKCFlbXB0eSgkbW9kLT5HQ0IpKXskaHRtbGJsb2JzPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2h0bWxibG9icycpOyRwYWNrYWdlLT5hcHBlbmRDaGlsZCgkaHRtbGJsb2JzKTskYmxvY2tvcHM9JGdDbXMtPkdldEdsb2JhbENvbnRlbnRPcGVyYXRpb25zKCk7Zm9yZWFjaCgkbW9kLT5HQ0IgYXMgJGJsb2NrKXskaHRtbGJsb2I9JGJsb2Nrb3BzLT5Mb2FkSHRtbEJsb2JCeU5hbWUoJGJsb2NrWyduYW1lJ10pOyR0YWJsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCdodG1sYmxvYicpOyRodG1sYmxvYnMtPmFwcGVuZENoaWxkKCR0YWJsZSk7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2h0bWxibG9iX25hbWUnKTskdGFibGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkaHRtbGJsb2ItPm5hbWUpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgnaHRtbCcpOyR0YWJsZS0+YXBwZW5kQ2hpbGQoJGNoaWxkKTskdmFsdWU9JGRvYy0+Y3JlYXRlQ0RBVEFTZWN0aW9uKCRodG1sYmxvYi0+Y29udGVudCk7JGNoaWxkLT5hcHBlbmRDaGlsZCgkdmFsdWUpOyRjaGlsZD0kZG9jLT5jcmVhdGVFbGVtZW50KCd1c2Vfd3lzaXd5ZycpOyR0YWJsZS0+YXBwZW5kQ2hpbGQoJGNoaWxkKTskdmFsdWU9JGRvYy0+Y3JlYXRlQ0RBVEFTZWN0aW9uKCRodG1sYmxvYi0+dXNlX3d5c2l3eWcpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgnZGVzY3JpcHRpb24nKTskdGFibGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkaHRtbGJsb2ItPmRlc2NyaXB0aW9uKTskY2hpbGQtPmFwcGVuZENoaWxkKCR2YWx1ZSk7fX1pZighZW1wdHkoJG1vZC0+VURUKSl7JHVzZXJwbHVnaW5zPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ3VzZXJwbHVnaW5zJyk7JHBhY2thZ2UtPmFwcGVuZENoaWxkKCR1c2VycGx1Z2lucyk7JHVkdG9wcz0kZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTtmb3JlYWNoKCRtb2QtPlVEVCBhcyAkdWR0KXskY29kZT0kdWR0b3BzLT5HZXRVc2VyVGFnKCR1ZHRbJ25hbWUnXSk7JHVzZXJwbHVnaW49JGRvYy0+Y3JlYXRlRWxlbWVudCgndXNlcnBsdWdpbicpOyR1c2VycGx1Z2lucy0+YXBwZW5kQ2hpbGQoJHVzZXJwbHVnaW4pOyRjaGlsZD0kZG9jLT5jcmVhdGVFbGVtZW50KCd1c2VycGx1Z2luX25hbWUnKTskdXNlcnBsdWdpbi0+YXBwZW5kQ2hpbGQoJGNoaWxkKTskdmFsdWU9JGRvYy0+Y3JlYXRlQ0RBVEFTZWN0aW9uKCR1ZHRbJ25hbWUnXSk7JGNoaWxkLT5hcHBlbmRDaGlsZCgkdmFsdWUpOyRjaGlsZD0kZG9jLT5jcmVhdGVFbGVtZW50KCdjb2RlJyk7JHVzZXJwbHVnaW4tPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkY29kZVsnY29kZSddKTskY2hpbGQtPmFwcGVuZENoaWxkKCR2YWx1ZSk7fX1pZighZW1wdHkoJG1vZC0+RklMRSkpeyRmaWxlcz0kZG9jLT5jcmVhdGVFbGVtZW50KCdmaWxlcycpOyRwYWNrYWdlLT5hcHBlbmRDaGlsZCgkZmlsZXMpO2ZvcmVhY2goJG1vZC0+RklMRSBhcyAkcmVmKXskZmg9bmV3IGZpbGVoYW5kbGluZygpOyRkaXJsaXN0PSRmaC0+cHJvY2Vzc19kaXIoJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLnRyaW0oJHJlZlsnbmFtZSddLCcvJykuJy8nLHRydWUsJ2RpcicpO2lmKCRkaXJsaXN0IT1mYWxzZSl7Zm9yZWFjaCgkZGlybGlzdCBhcyAkZmlsZSl7JGNvbnRlbnRzPWZpbGVfZ2V0X2NvbnRlbnRzKCRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy50cmltKHN0cl9yZXBsYWNlKCcuLi4nLCcnLCRmaWxlWyduYW1lJ10pLCcvJykpO2lmKCEkY29udGVudHMpe2NvbnRpbnVlO30kbG9jYXRpb249dHJpbShzdHJfcmVwbGFjZSgnLi4uJywnJywkZmlsZVsnbmFtZSddKSwnLycpOyRlbmNvZGVkPWJhc2U2NF9lbmNvZGUoJGNvbnRlbnRzKTskZmlsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCdmaWxlJyk7JGZpbGVzLT5hcHBlbmRDaGlsZCgkZmlsZSk7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2xvY2F0aW9uJyk7JGZpbGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkbG9jYXRpb24pOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgnZW5jb2RlZCcpOyRmaWxlLT5hcHBlbmRDaGlsZCgkY2hpbGQpOyR2YWx1ZT0kZG9jLT5jcmVhdGVDREFUQVNlY3Rpb24oJGVuY29kZWQpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTt9fWVsc2V7JGNvbnRlbnRzPWZpbGVfZ2V0X2NvbnRlbnRzKCRjb25maWdbJ3Jvb3RfcGF0aCddLiRyZWZbJ25hbWUnXSk7aWYoISRjb250ZW50cyl7Y29udGludWU7fSRlbmNvZGVkPWJhc2U2NF9lbmNvZGUoJGNvbnRlbnRzKTskZmlsZT0kZG9jLT5jcmVhdGVFbGVtZW50KCdmaWxlJyk7JGZpbGVzLT5hcHBlbmRDaGlsZCgkZmlsZSk7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJ2xvY2F0aW9uJyk7JGZpbGUtPmFwcGVuZENoaWxkKCRjaGlsZCk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkcmVmWyduYW1lJ10pOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTskY2hpbGQ9JGRvYy0+Y3JlYXRlRWxlbWVudCgnZW5jb2RlZCcpOyRmaWxlLT5hcHBlbmRDaGlsZCgkY2hpbGQpOyR2YWx1ZT0kZG9jLT5jcmVhdGVDREFUQVNlY3Rpb24oJGVuY29kZWQpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTt9fX1pZighZW1wdHkoJG1vZC0+UFJFRikpeyRzZXR0aW5ncz0kZG9jLT5jcmVhdGVFbGVtZW50KCdzZXR0aW5ncycpOyRwYWNrYWdlLT5hcHBlbmRDaGlsZCgkc2V0dGluZ3MpO2ZvcmVhY2goJG1vZC0+UFJFRiBhcyAkbW9kdWxlKXskcXVlcnk9IlNFTEVDVCBzaXRlcHJlZl9uYW1lLCBzaXRlcHJlZl92YWx1ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJzaXRlcHJlZnMgIi4iIFdIRVJFIHNpdGVwcmVmX25hbWUgTElLRSAnIi4kbW9kdWxlWyduYW1lJ10uIl9tYXBpX3ByZWZfJSciOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5KTskc2V0dGluZz0kZG9jLT5jcmVhdGVFbGVtZW50KCdzZXR0aW5nJyk7JHNldHRpbmdzLT5hcHBlbmRDaGlsZCgkc2V0dGluZyk7JG1vZHVsZW5hbWU9JGRvYy0+Y3JlYXRlRWxlbWVudCgnbW9kdWxlbmFtZScpOyRzZXR0aW5nLT5hcHBlbmRDaGlsZCgkbW9kdWxlbmFtZSk7JHZhbHVlPSRkb2MtPmNyZWF0ZUNEQVRBU2VjdGlvbigkbW9kdWxlWyduYW1lJ10pOyRtb2R1bGVuYW1lLT5hcHBlbmRDaGlsZCgkdmFsdWUpO3doaWxlKCRkYnJlc3VsdCYmJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpeyRzaXRlcHJlZj0kZG9jLT5jcmVhdGVFbGVtZW50KCdzaXRlcHJlZicpOyRzZXR0aW5nLT5hcHBlbmRDaGlsZCgkc2l0ZXByZWYpO2ZvcmVhY2goJHJvdyBhcyAkZmllbGRuYW1lPT4kZmllbGR2YWx1ZSl7JGNoaWxkPSRkb2MtPmNyZWF0ZUVsZW1lbnQoJGZpZWxkbmFtZSk7JHNpdGVwcmVmLT5hcHBlbmRDaGlsZCgkY2hpbGQpOyR2YWx1ZT0kZG9jLT5jcmVhdGVDREFUQVNlY3Rpb24oJGZpZWxkdmFsdWUpOyRjaGlsZC0+YXBwZW5kQ2hpbGQoJHZhbHVlKTt9fX19JHhtbF9zdHJpbmc9JGRvYy0+c2F2ZVhNTCgpO2hlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpO2hlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCcpO2hlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Jy5tdW5nZV9zdHJpbmdfdG9fdXJsKCRtb2QtPklORk9bJ3BhY2thZ2VuYW1lJ10uJy4nLiRtb2QtPklORk9bJ3BhY2thZ2V2ZXJzaW9uJ10pLicueG1sJyk7d2hpbGUoQG9iX2VuZF9jbGVhbigpKTtlY2hvICR4bWxfc3RyaW5nO2V4aXQoKTt9fQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Stylesheet_Record.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgU3R5bGVzaGVldF9SZWNvcmQgZXh0ZW5kcyBTY3JpcHREZXBsb3l7dmFyICRncm91cGlkO3ZhciAkdGVtcGxhdGVfaWQ7dmFyICRwcmVmZXJyZWRfc3M7dmFyICRwZXJzaXN0ZW50O3ZhciAkYWx0ZXJuYXRlO3B1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe3BhcmVudDo6X19jb25zdHJ1Y3QoKTskdGhpcy0+X2RhdGE9YXJyYXkoKTt9ZnVuY3Rpb24gU3R5bGVzaGVldF9SZWNvcmQoJHRlbXBsYXRlaWQ9LTEpeyR0aGlzLT50ZW1wbGF0ZV9pZD0kdGVtcGxhdGVpZDskdGhpcy0+cGVyc2lzdGVudD1hcnJheSgpOyR0aGlzLT5hbHRlcm5hdGU9YXJyYXkoKTt9ZnVuY3Rpb24gUmV0cmlldmUoJHN0cil7JG9iaj11bnNlcmlhbGl6ZSgkc3RyKTtyZXR1cm4gJG9iajt9ZnVuY3Rpb24gU3RvcmUoKXtyZXR1cm4gc2VyaWFsaXplKCR0aGlzKTt9ZnVuY3Rpb24gTG9hZCgkdGVtcGxhdGVpZCl7JGRiPWNtc21zKCktPkdldERiKCk7JHF1ZXJ5PSdTRUxFQ1QgKiBGUk9NICcuU0RfVEFCTEUuJw0KICAgICAgICAgICAgICAgIFdIRVJFIHRlbXBsYXRlX2lkID0gPyc7JGRicmVzdWx0PSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRlbXBsYXRlaWQpKTtpZighJGRicmVzdWx0KXJldHVybjskcm93PSRkYnJlc3VsdC0+RmV0Y2hSb3coKTtpZighJHJvdylyZXR1cm47JHRoaXMtPmdyb3VwaWQ9JHJvd1snZ3JvdXBpZCddOyR0aGlzLT50ZW1wbGF0ZV9pZD0kcm93Wyd0ZW1wbGF0ZV9pZCddOyR0aGlzLT5wcmVmZXJyZWRfc3M9JHJvd1sncHJlZmVycmVkX3NzJ107JHF1ZXJ5PSdTRUxFQ1QgKiBGUk9NICcuU0RfUEVSU0lTVEVOVC4nDQogICAgICAgICAgICAgICAgIFdIRVJFIGdyb3VwaWQgPSA/JzskZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+Z3JvdXBpZCkpOyR0aGlzLT5wZXJzaXN0ZW50PWFycmF5KCk7d2hpbGUoJGRicmVzdWx0JiYoJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpKXskdGhpcy0+cGVyc2lzdGVudFtdPSRyb3dbJ3N0eWxlc2hlZXRfaWQnXTt9JHF1ZXJ5PSdTRUxFQ1QgKiBGUk9NICcuU0RfQUxURVJOQVRFLicNCiAgICAgICAgICAgICAgICAgV0hFUkUgZ3JvdXBpZCA9ID8nOyRkYnJlc3VsdD0kZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5ncm91cGlkKSk7JHRoaXMtPmFsdGVybmF0ZT1hcnJheSgpO3doaWxlKCRkYnJlc3VsdCYmKCRyb3c9JGRicmVzdWx0LT5GZXRjaFJvdygpKSl7JHRoaXMtPmFsdGVybmF0ZVtdPSRyb3dbJ3N0eWxlc2hlZXRfaWQnXTt9fWZ1bmN0aW9uIFNhdmUoKXtpZigkdGhpcy0+dGVtcGxhdGVfaWQ8PTApcmV0dXJuOyRkYj1jbXNtcygpLT5HZXREYigpO2lmKCR0aGlzLT5ncm91cGlkPjApeyRxPSdERUxFVEUgRlJPTSAlcyBXSEVSRSBncm91cGlkID0gPyc7JHExPXNwcmludGYoJHEsU0RfVEFCTEUpOyRkYi0+RXhlY3V0ZSgkcTEsYXJyYXkoJHRoaXMtPmdyb3VwaWQpKTskcTE9c3ByaW50ZigkcSxTRF9QRVJTSVNURU5UKTskZGItPkV4ZWN1dGUoJHExLGFycmF5KCR0aGlzLT5ncm91cGlkKSk7JHExPXNwcmludGYoJHEsU0RfQUxURVJOQVRFKTskZGItPkV4ZWN1dGUoJHExLGFycmF5KCR0aGlzLT5ncm91cGlkKSk7fSRxPSdJTlNFUlQgSU5UTyAnLlNEX1RBQkxFLicNCiAgICAgICAgICAgICh0ZW1wbGF0ZV9pZCxwcmVmZXJyZWRfc3MpDQogICAgICAgICAgVkFMVUVTICg/LD8pJzskZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxLGFycmF5KCR0aGlzLT50ZW1wbGF0ZV9pZCwkdGhpcy0+cHJlZmVycmVkX3NzKSk7aWYoISRkYnJlc3VsdClkaWUoJGRiLT5FcnJvck1zZygpKTskcT0nU0VMRUNUIGdyb3VwaWQgRlJPTSAnLlNEX1RBQkxFLicNCiAgICAgICAgICAgV0hFUkUgdGVtcGxhdGVfaWQgPSA/JzskZ3JvdXBpZD0kZGItPkdldE9uZSgkcSxhcnJheSgkdGhpcy0+dGVtcGxhdGVfaWQpKTskcT0nSU5TRVJUIElOVE8gJy5TRF9QRVJTSVNURU5ULicNCiAgICAgICAgICAgICAgKGdyb3VwaWQsc3R5bGVzaGVldF9pZCkgVkFMVUVTICg/LD8pJztmb3JlYWNoKCR0aGlzLT5wZXJzaXN0ZW50IGFzICRzdHlsZXNoZWV0X2lkKXskZGItPkV4ZWN1dGUoJHEsYXJyYXkoJGdyb3VwaWQsJHN0eWxlc2hlZXRfaWQpKTt9JHE9J0lOU0VSVCBJTlRPICcuU0RfQUxURVJOQVRFLicNCiAgICAgICAgICAgICAgKGdyb3VwaWQsc3R5bGVzaGVldF9pZCkgVkFMVUVTICg/LD8pJztmb3JlYWNoKCR0aGlzLT5hbHRlcm5hdGUgYXMgJHN0eWxlc2hlZXRfaWQpeyRkYi0+RXhlY3V0ZSgkcSxhcnJheSgkZ3JvdXBpZCwkc3R5bGVzaGVldF9pZCkpO319fSA/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/data.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZGVmaW5lKCdBVF9TVEFSVCcsMSk7ZGVmaW5lKCdBVF9FTkQnLDIpO2RlZmluZSgnU0VMX1NUQVJUJywzKTtkZWZpbmUoJ1NFTF9FTkQnLDQpO2RlZmluZSgnUFJPUEVSVFknLDUpO2RlZmluZSgnVkFMVUUnLDYpO2RlZmluZSgnQ09NTUVOVCcsNyk7ZGVmaW5lKCdERUZBVUxUX0FUJyw0MSk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnd2hpdGVzcGFjZSddPWFycmF5KCcgJywiXG4iLCJcdCIsIlxyIiwiXHgwQiIpOyRHTE9CQUxTWydjc3N0aWR5J11bJ3Rva2VucyddPScvQH17Ozo9XCciKCxcXCEkJSYpKisuPD4/W11eYHx+JzskR0xPQkFMU1snY3NzdGlkeSddWyd1bml0cyddPWFycmF5KCdpbicsJ2NtJywnbW0nLCdwdCcsJ3BjJywncHgnLCdyZW0nLCdlbScsJyUnLCdleCcsJ2dkJywndncnLCd2aCcsJ3ZtJywnZGVnJywnZ3JhZCcsJ3JhZCcsJ21zJywncycsJ2toeicsJ2h6Jyk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYXRfcnVsZXMnXT1hcnJheSgncGFnZSc9PidpcycsJ2ZvbnQtZmFjZSc9PidpcycsJ2NoYXJzZXQnPT4naXYnLCdpbXBvcnQnPT4naXYnLCduYW1lc3BhY2UnPT4naXYnLCdtZWRpYSc9PidhdCcpOyRHTE9CQUxTWydjc3N0aWR5J11bJ3VuaXRfdmFsdWVzJ109YXJyYXkoJ2JhY2tncm91bmQnLCdiYWNrZ3JvdW5kLXBvc2l0aW9uJywnYm9yZGVyJywnYm9yZGVyLXRvcCcsJ2JvcmRlci1yaWdodCcsJ2JvcmRlci1ib3R0b20nLCdib3JkZXItbGVmdCcsJ2JvcmRlci13aWR0aCcsJ2JvcmRlci10b3Atd2lkdGgnLCdib3JkZXItcmlnaHQtd2lkdGgnLCdib3JkZXItbGVmdC13aWR0aCcsJ2JvcmRlci1ib3R0b20td2lkdGgnLCdib3R0b20nLCdib3JkZXItc3BhY2luZycsJ2ZvbnQtc2l6ZScsJ2hlaWdodCcsJ2xlZnQnLCdtYXJnaW4nLCdtYXJnaW4tdG9wJywnbWFyZ2luLXJpZ2h0JywnbWFyZ2luLWJvdHRvbScsJ21hcmdpbi1sZWZ0JywnbWF4LWhlaWdodCcsJ21heC13aWR0aCcsJ21pbi1oZWlnaHQnLCdtaW4td2lkdGgnLCdvdXRsaW5lLXdpZHRoJywncGFkZGluZycsJ3BhZGRpbmctdG9wJywncGFkZGluZy1yaWdodCcsJ3BhZGRpbmctYm90dG9tJywncGFkZGluZy1sZWZ0JywncG9zaXRpb24nLCdyaWdodCcsJ3RvcCcsJ3RleHQtaW5kZW50JywnbGV0dGVyLXNwYWNpbmcnLCd3b3JkLXNwYWNpbmcnLCd3aWR0aCcpOyRHTE9CQUxTWydjc3N0aWR5J11bJ2NvbG9yX3ZhbHVlcyddPWFycmF5KCk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnY29sb3JfdmFsdWVzJ11bXT0nYmFja2dyb3VuZC1jb2xvcic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnY29sb3JfdmFsdWVzJ11bXT0nYm9yZGVyLWNvbG9yJzskR0xPQkFMU1snY3NzdGlkeSddWydjb2xvcl92YWx1ZXMnXVtdPSdib3JkZXItdG9wLWNvbG9yJzskR0xPQkFMU1snY3NzdGlkeSddWydjb2xvcl92YWx1ZXMnXVtdPSdib3JkZXItcmlnaHQtY29sb3InOyRHTE9CQUxTWydjc3N0aWR5J11bJ2NvbG9yX3ZhbHVlcyddW109J2JvcmRlci1ib3R0b20tY29sb3InOyRHTE9CQUxTWydjc3N0aWR5J11bJ2NvbG9yX3ZhbHVlcyddW109J2JvcmRlci1sZWZ0LWNvbG9yJzskR0xPQkFMU1snY3NzdGlkeSddWydjb2xvcl92YWx1ZXMnXVtdPSdjb2xvcic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnY29sb3JfdmFsdWVzJ11bXT0nb3V0bGluZS1jb2xvcic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYmFja2dyb3VuZF9wcm9wX2RlZmF1bHQnXT1hcnJheSgpOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtaW1hZ2UnXT0nbm9uZSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYmFja2dyb3VuZF9wcm9wX2RlZmF1bHQnXVsnYmFja2dyb3VuZC1zaXplJ109J2F1dG8nOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtcmVwZWF0J109J3JlcGVhdCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYmFja2dyb3VuZF9wcm9wX2RlZmF1bHQnXVsnYmFja2dyb3VuZC1wb3NpdGlvbiddPScwIDAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtYXR0YWNobWVudCddPSdzY3JvbGwnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtY2xpcCddPSdib3JkZXInOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtb3JpZ2luJ109J3BhZGRpbmcnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2JhY2tncm91bmRfcHJvcF9kZWZhdWx0J11bJ2JhY2tncm91bmQtY29sb3InXT0ndHJhbnNwYXJlbnQnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ109YXJyYXkoKTskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydhbGljZWJsdWUnXT0nI0YwRjhGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYW50aXF1ZXdoaXRlJ109JyNGQUVCRDcnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2FxdWFtYXJpbmUnXT0nIzdGRkZENCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYXp1cmUnXT0nI0YwRkZGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYmVpZ2UnXT0nI0Y1RjVEQyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYmlzcXVlJ109JyNGRkU0QzQnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2JsYW5jaGVkYWxtb25kJ109JyNGRkVCQ0QnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2JsdWV2aW9sZXQnXT0nIzhBMkJFMic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYnJvd24nXT0nI0E1MkEyQSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnYnVybHl3b29kJ109JyNERUI4ODcnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2NhZGV0Ymx1ZSddPScjNUY5RUEwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydjaGFydHJldXNlJ109JyM3RkZGMDAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2Nob2NvbGF0ZSddPScjRDI2OTFFJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydjb3JhbCddPScjRkY3RjUwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydjb3JuZmxvd2VyYmx1ZSddPScjNjQ5NUVEJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydjb3Juc2lsayddPScjRkZGOERDJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydjcmltc29uJ109JyNEQzE0M0MnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2N5YW4nXT0nIzAwRkZGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya2JsdWUnXT0nIzAwMDA4Qic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya2N5YW4nXT0nIzAwOEI4Qic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya2dvbGRlbnJvZCddPScjQjg4NjBCJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydkYXJrZ3JheSddPScjQTlBOUE5JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydkYXJrZ3JlZW4nXT0nIzAwNjQwMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya2toYWtpJ109JyNCREI3NkInOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2RhcmttYWdlbnRhJ109JyM4QjAwOEInOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2RhcmtvbGl2ZWdyZWVuJ109JyM1NTZCMkYnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2RhcmtvcmFuZ2UnXT0nI0ZGOEMwMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya29yY2hpZCddPScjOTkzMkNDJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydkYXJrcmVkJ109JyM4QjAwMDAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2RhcmtzYWxtb24nXT0nI0U5OTY3QSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya3NlYWdyZWVuJ109JyM4RkJDOEYnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2RhcmtzbGF0ZWJsdWUnXT0nIzQ4M0Q4Qic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGFya3NsYXRlZ3JheSddPScjMkY0RjRGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydkYXJrdHVycXVvaXNlJ109JyMwMENFRDEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2Rhcmt2aW9sZXQnXT0nIzk0MDBEMyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGVlcHBpbmsnXT0nI0ZGMTQ5Myc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGVlcHNreWJsdWUnXT0nIzAwQkZGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZGltZ3JheSddPScjNjk2OTY5JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydkb2RnZXJibHVlJ109JyMxRTkwRkYnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2ZlbGRzcGFyJ109JyNEMTkyNzUnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2ZpcmVicmljayddPScjQjIyMjIyJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydmbG9yYWx3aGl0ZSddPScjRkZGQUYwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydmb3Jlc3RncmVlbiddPScjMjI4QjIyJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydnYWluc2Jvcm8nXT0nI0RDRENEQyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnZ2hvc3R3aGl0ZSddPScjRjhGOEZGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydnb2xkJ109JyNGRkQ3MDAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2dvbGRlbnJvZCddPScjREFBNTIwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydncmVlbnllbGxvdyddPScjQURGRjJGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydob25leWRldyddPScjRjBGRkYwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydob3RwaW5rJ109JyNGRjY5QjQnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2luZGlhbnJlZCddPScjQ0Q1QzVDJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydpbmRpZ28nXT0nIzRCMDA4Mic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnaXZvcnknXT0nI0ZGRkZGMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsna2hha2knXT0nI0YwRTY4Qyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGF2ZW5kZXInXT0nI0U2RTZGQSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGF2ZW5kZXJibHVzaCddPScjRkZGMEY1JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsYXduZ3JlZW4nXT0nIzdDRkMwMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGVtb25jaGlmZm9uJ109JyNGRkZBQ0QnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2xpZ2h0Ymx1ZSddPScjQUREOEU2JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsaWdodGNvcmFsJ109JyNGMDgwODAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2xpZ2h0Y3lhbiddPScjRTBGRkZGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsaWdodGdvbGRlbnJvZHllbGxvdyddPScjRkFGQUQyJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsaWdodGdyZXknXT0nI0QzRDNEMyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRncmVlbiddPScjOTBFRTkwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsaWdodHBpbmsnXT0nI0ZGQjZDMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRzYWxtb24nXT0nI0ZGQTA3QSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRzZWFncmVlbiddPScjMjBCMkFBJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydsaWdodHNreWJsdWUnXT0nIzg3Q0VGQSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRzbGF0ZWJsdWUnXT0nIzg0NzBGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRzbGF0ZWdyYXknXT0nIzc3ODg5OSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHRzdGVlbGJsdWUnXT0nI0IwQzRERSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGlnaHR5ZWxsb3cnXT0nI0ZGRkZFMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbGltZWdyZWVuJ109JyMzMkNEMzInOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ2xpbmVuJ109JyNGQUYwRTYnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ21hZ2VudGEnXT0nI0ZGMDBGRic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbWVkaXVtYXF1YW1hcmluZSddPScjNjZDREFBJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydtZWRpdW1ibHVlJ109JyMwMDAwQ0QnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ21lZGl1bW9yY2hpZCddPScjQkE1NUQzJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydtZWRpdW1wdXJwbGUnXT0nIzkzNzBEOCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbWVkaXVtc2VhZ3JlZW4nXT0nIzNDQjM3MSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbWVkaXVtc2xhdGVibHVlJ109JyM3QjY4RUUnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ21lZGl1bXNwcmluZ2dyZWVuJ109JyMwMEZBOUEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ21lZGl1bXR1cnF1b2lzZSddPScjNDhEMUNDJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydtZWRpdW12aW9sZXRyZWQnXT0nI0M3MTU4NSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbWlkbmlnaHRibHVlJ109JyMxOTE5NzAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ21pbnRjcmVhbSddPScjRjVGRkZBJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydtaXN0eXJvc2UnXT0nI0ZGRTRFMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbW9jY2FzaW4nXT0nI0ZGRTRCNSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnbmF2YWpvd2hpdGUnXT0nI0ZGREVBRCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnb2xkbGFjZSddPScjRkRGNUU2JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydvbGl2ZWRyYWInXT0nIzZCOEUyMyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnb3JhbmdlcmVkJ109JyNGRjQ1MDAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ29yY2hpZCddPScjREE3MEQ2JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydwYWxlZ29sZGVucm9kJ109JyNFRUU4QUEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3BhbGVncmVlbiddPScjOThGQjk4JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydwYWxldHVycXVvaXNlJ109JyNBRkVFRUUnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3BhbGV2aW9sZXRyZWQnXT0nI0Q4NzA5Myc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsncGFwYXlhd2hpcCddPScjRkZFRkQ1JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydwZWFjaHB1ZmYnXT0nI0ZGREFCOSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsncGVydSddPScjQ0Q4NTNGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydwaW5rJ109JyNGRkMwQ0InOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3BsdW0nXT0nI0REQTBERCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsncG93ZGVyYmx1ZSddPScjQjBFMEU2JzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydyb3N5YnJvd24nXT0nI0JDOEY4Ric7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsncm95YWxibHVlJ109JyM0MTY5RTEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NhZGRsZWJyb3duJ109JyM4QjQ1MTMnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NhbG1vbiddPScjRkE4MDcyJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydzYW5keWJyb3duJ109JyNGNEE0NjAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NlYWdyZWVuJ109JyMyRThCNTcnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NlYXNoZWxsJ109JyNGRkY1RUUnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NpZW5uYSddPScjQTA1MjJEJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydza3libHVlJ109JyM4N0NFRUInOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3NsYXRlYmx1ZSddPScjNkE1QUNEJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydzbGF0ZWdyYXknXT0nIzcwODA5MCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsnc25vdyddPScjRkZGQUZBJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydzcHJpbmdncmVlbiddPScjMDBGRjdGJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWydzdGVlbGJsdWUnXT0nIzQ2ODJCNCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsndGFuJ109JyNEMkI0OEMnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3RoaXN0bGUnXT0nI0Q4QkZEOCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsndG9tYXRvJ109JyNGRjYzNDcnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3R1cnF1b2lzZSddPScjNDBFMEQwJzskR0xPQkFMU1snY3NzdGlkeSddWydyZXBsYWNlX2NvbG9ycyddWyd2aW9sZXQnXT0nI0VFODJFRSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsndmlvbGV0cmVkJ109JyNEMDIwOTAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3doZWF0J109JyNGNURFQjMnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3JlcGxhY2VfY29sb3JzJ11bJ3doaXRlc21va2UnXT0nI0Y1RjVGNSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncmVwbGFjZV9jb2xvcnMnXVsneWVsbG93Z3JlZW4nXT0nIzlBQ0QzMic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnc2hvcnRoYW5kcyddPWFycmF5KCk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnc2hvcnRoYW5kcyddWydib3JkZXItY29sb3InXT1hcnJheSgnYm9yZGVyLXRvcC1jb2xvcicsJ2JvcmRlci1yaWdodC1jb2xvcicsJ2JvcmRlci1ib3R0b20tY29sb3InLCdib3JkZXItbGVmdC1jb2xvcicpOyRHTE9CQUxTWydjc3N0aWR5J11bJ3Nob3J0aGFuZHMnXVsnYm9yZGVyLXN0eWxlJ109YXJyYXkoJ2JvcmRlci10b3Atc3R5bGUnLCdib3JkZXItcmlnaHQtc3R5bGUnLCdib3JkZXItYm90dG9tLXN0eWxlJywnYm9yZGVyLWxlZnQtc3R5bGUnKTskR0xPQkFMU1snY3NzdGlkeSddWydzaG9ydGhhbmRzJ11bJ2JvcmRlci13aWR0aCddPWFycmF5KCdib3JkZXItdG9wLXdpZHRoJywnYm9yZGVyLXJpZ2h0LXdpZHRoJywnYm9yZGVyLWJvdHRvbS13aWR0aCcsJ2JvcmRlci1sZWZ0LXdpZHRoJyk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnc2hvcnRoYW5kcyddWydtYXJnaW4nXT1hcnJheSgnbWFyZ2luLXRvcCcsJ21hcmdpbi1yaWdodCcsJ21hcmdpbi1ib3R0b20nLCdtYXJnaW4tbGVmdCcpOyRHTE9CQUxTWydjc3N0aWR5J11bJ3Nob3J0aGFuZHMnXVsncGFkZGluZyddPWFycmF5KCdwYWRkaW5nLXRvcCcsJ3BhZGRpbmctcmlnaHQnLCdwYWRkaW5nLWJvdHRvbScsJ3BhZGRpbmctbGVmdCcpOyRHTE9CQUxTWydjc3N0aWR5J11bJ3Nob3J0aGFuZHMnXVsnLW1vei1ib3JkZXItcmFkaXVzJ109MDskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddPWFycmF5KCk7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYmFja2dyb3VuZCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYmFja2dyb3VuZC1jb2xvciddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYmFja2dyb3VuZC1pbWFnZSddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYmFja2dyb3VuZC1yZXBlYXQnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JhY2tncm91bmQtYXR0YWNobWVudCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYmFja2dyb3VuZC1wb3NpdGlvbiddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItdG9wJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItcmlnaHQnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci1ib3R0b20nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci1sZWZ0J109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItY29sb3InXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci10b3AtY29sb3InXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLWJvdHRvbS1jb2xvciddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItbGVmdC1jb2xvciddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItcmlnaHQtY29sb3InXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLXN0eWxlJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItdG9wLXN0eWxlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci1yaWdodC1zdHlsZSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItbGVmdC1zdHlsZSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItYm90dG9tLXN0eWxlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci13aWR0aCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLXRvcC13aWR0aCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLXJpZ2h0LXdpZHRoJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydib3JkZXItbGVmdC13aWR0aCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLWJvdHRvbS13aWR0aCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYm9yZGVyLWNvbGxhcHNlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvcmRlci1zcGFjaW5nJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2JvdHRvbSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydjYXB0aW9uLXNpZGUnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY29udGVudCddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydjbGVhciddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY2xpcCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY29sb3InXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2NvdW50ZXItcmVzZXQnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY291bnRlci1pbmNyZW1lbnQnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY3Vyc29yJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2VtcHR5LWNlbGxzJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2Rpc3BsYXknXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2RpcmVjdGlvbiddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydmbG9hdCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnZm9udCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnZm9udC1mYW1pbHknXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2ZvbnQtc3R5bGUnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2ZvbnQtdmFyaWFudCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnZm9udC13ZWlnaHQnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2ZvbnQtc3RyZXRjaCddPSdDU1MyLjAnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2ZvbnQtc2l6ZS1hZGp1c3QnXT0nQ1NTMi4wJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydmb250LXNpemUnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2hlaWdodCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbGVmdCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbGluZS1oZWlnaHQnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2xpc3Qtc3R5bGUnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ2xpc3Qtc3R5bGUtdHlwZSddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbGlzdC1zdHlsZS1pbWFnZSddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbGlzdC1zdHlsZS1wb3NpdGlvbiddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbWFyZ2luJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtYXJnaW4tdG9wJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtYXJnaW4tcmlnaHQnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ21hcmdpbi1ib3R0b20nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ21hcmdpbi1sZWZ0J109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtYXJrcyddPSdDU1MxLjAsQ1NTMi4wJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtYXJrZXItb2Zmc2V0J109J0NTUzIuMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbWF4LWhlaWdodCddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtYXgtd2lkdGgnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbWluLWhlaWdodCddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydtaW4td2lkdGgnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnb3ZlcmZsb3cnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ29ycGhhbnMnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnb3V0bGluZSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydvdXRsaW5lLXdpZHRoJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ291dGxpbmUtc3R5bGUnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnb3V0bGluZS1jb2xvciddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydwYWRkaW5nJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydwYWRkaW5nLXRvcCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsncGFkZGluZy1yaWdodCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsncGFkZGluZy1ib3R0b20nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhZGRpbmctbGVmdCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsncGFnZS1icmVhay1iZWZvcmUnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhZ2UtYnJlYWstYWZ0ZXInXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhZ2UtYnJlYWstaW5zaWRlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhZ2UnXT0nQ1NTMi4wJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydwb3NpdGlvbiddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsncXVvdGVzJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3JpZ2h0J109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3NpemUnXT0nQ1NTMS4wLENTUzIuMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnc3BlYWstaGVhZGVyJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3RhYmxlLWxheW91dCddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWyd0b3AnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3RleHQtaW5kZW50J109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWyd0ZXh0LWFsaWduJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWyd0ZXh0LWRlY29yYXRpb24nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3RleHQtc2hhZG93J109J0NTUzIuMCc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnbGV0dGVyLXNwYWNpbmcnXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3dvcmQtc3BhY2luZyddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsndGV4dC10cmFuc2Zvcm0nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3doaXRlLXNwYWNlJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWyd1bmljb2RlLWJpZGknXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsndmVydGljYWwtYWxpZ24nXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3Zpc2liaWxpdHknXT0nQ1NTMS4wLENTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3dpZHRoJ109J0NTUzEuMCxDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWyd3aWRvd3MnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnei1pbmRleCddPSdDU1MxLjAsQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsndm9sdW1lJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3NwZWFrJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhdXNlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BhdXNlLWJlZm9yZSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydwYXVzZS1hZnRlciddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydjdWUnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnY3VlLWJlZm9yZSddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydjdWUtYWZ0ZXInXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsncGxheS1kdXJpbmcnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnYXppbXV0aCddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydlbGV2YXRpb24nXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsnc3BlZWNoLXJhdGUnXT0nQ1NTMi4wLENTUzIuMSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsnYWxsX3Byb3BlcnRpZXMnXVsndm9pY2UtZmFtaWx5J109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BpdGNoJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3BpdGNoLXJhbmdlJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ2FsbF9wcm9wZXJ0aWVzJ11bJ3N0cmVzcyddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydyaWNobmVzcyddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydzcGVhay1wdW5jdHVhdGlvbiddPSdDU1MyLjAsQ1NTMi4xJzskR0xPQkFMU1snY3NzdGlkeSddWydhbGxfcHJvcGVydGllcyddWydzcGVhay1udW1lcmFsJ109J0NTUzIuMCxDU1MyLjEnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2RlZmF1bHQnXVtdPSc8c3BhbiBjbGFzcz0iYXQiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109Jzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZvcm1hdCI+ezwvc3Bhbj4nLiJcbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109JzxzcGFuIGNsYXNzPSJzZWxlY3RvciI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydkZWZhdWx0J11bXT0nPC9zcGFuPiA8c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPicuIlxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydkZWZhdWx0J11bXT0nPHNwYW4gY2xhc3M9InByb3BlcnR5Ij4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2RlZmF1bHQnXVtdPSc8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIj4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2RlZmF1bHQnXVtdPSc8L3NwYW4+PHNwYW4gY2xhc3M9ImZvcm1hdCI+Ozwvc3Bhbj4nLiJcbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109JzxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydkZWZhdWx0J11bXT0iXG5cbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109IlxuIi4nPHNwYW4gY2xhc3M9ImZvcm1hdCI+fTwvc3Bhbj4nLiJcblxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydkZWZhdWx0J11bXT0nJzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydkZWZhdWx0J11bXT0nPHNwYW4gY2xhc3M9ImNvbW1lbnQiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109Jzwvc3Bhbj4nLiJcbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnZGVmYXVsdCddW109IlxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoX2NvbXByZXNzaW9uJ11bXT0nPHNwYW4gY2xhc3M9ImF0Ij4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+IDxzcGFuIGNsYXNzPSJmb3JtYXQiPns8L3NwYW4+Jy4iXG4iOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hfY29tcHJlc3Npb24nXVtdPSc8c3BhbiBjbGFzcz0ic2VsZWN0b3IiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaF9jb21wcmVzc2lvbiddW109Jzwvc3Bhbj48c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaF9jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJwcm9wZXJ0eSI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoX2NvbXByZXNzaW9uJ11bXT0nPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWx1ZSI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoX2NvbXByZXNzaW9uJ11bXT0nPC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPjs8L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoX2NvbXByZXNzaW9uJ11bXT0nPHNwYW4gY2xhc3M9ImZvcm1hdCI+fTwvc3Bhbj4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hfY29tcHJlc3Npb24nXVtdPSJcbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaF9jb21wcmVzc2lvbiddW109IlxuIi4nPHNwYW4gY2xhc3M9ImZvcm1hdCI+fScuIlxuIi4nPC9zcGFuPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaF9jb21wcmVzc2lvbiddW109Jyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaF9jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJjb21tZW50Ij4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoX2NvbXByZXNzaW9uJ11bXT0iXG4iOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hlc3RfY29tcHJlc3Npb24nXVtdPSc8c3BhbiBjbGFzcz0iYXQiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaGVzdF9jb21wcmVzc2lvbiddW109Jzwvc3Bhbj48c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaGVzdF9jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJzZWxlY3RvciI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoZXN0X2NvbXByZXNzaW9uJ11bXT0nPC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPns8L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoZXN0X2NvbXByZXNzaW9uJ11bXT0nPHNwYW4gY2xhc3M9InByb3BlcnR5Ij4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hlc3RfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIj4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hlc3RfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+PHNwYW4gY2xhc3M9ImZvcm1hdCI+Ozwvc3Bhbj4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hlc3RfY29tcHJlc3Npb24nXVtdPSc8c3BhbiBjbGFzcz0iZm9ybWF0Ij59PC9zcGFuPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaGVzdF9jb21wcmVzc2lvbiddW109Jyc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaGVzdF9jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoZXN0X2NvbXByZXNzaW9uJ11bXT0nJzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydoaWdoZXN0X2NvbXByZXNzaW9uJ11bXT0nPHNwYW4gY2xhc3M9ImNvbW1lbnQiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnaGlnaGVzdF9jb21wcmVzc2lvbiddW109Jzwvc3Bhbj4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2hpZ2hlc3RfY29tcHJlc3Npb24nXVtdPScnOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2xvd19jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJhdCI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+IDxzcGFuIGNsYXNzPSJmb3JtYXQiPns8L3NwYW4+Jy4iXG4iOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2xvd19jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJzZWxlY3RvciI+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPSc8L3NwYW4+Jy4iXG4iLic8c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPicuIlxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPScJPHNwYW4gY2xhc3M9InByb3BlcnR5Ij4nOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2xvd19jb21wcmVzc2lvbiddW109Jzwvc3Bhbj48c3BhbiBjbGFzcz0idmFsdWUiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnbG93X2NvbXByZXNzaW9uJ11bXT0nPC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPjs8L3NwYW4+Jy4iXG4iOyRHTE9CQUxTWydjc3N0aWR5J11bJ3ByZWRlZmluZWRfdGVtcGxhdGVzJ11bJ2xvd19jb21wcmVzc2lvbiddW109JzxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+JzskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPSJcblxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPSJcbiIuJzxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+Jy4iXG5cbiI7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnbG93X2NvbXByZXNzaW9uJ11bXT0nCSc7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnbG93X2NvbXByZXNzaW9uJ11bXT0nPHNwYW4gY2xhc3M9ImNvbW1lbnQiPic7JEdMT0JBTFNbJ2Nzc3RpZHknXVsncHJlZGVmaW5lZF90ZW1wbGF0ZXMnXVsnbG93X2NvbXByZXNzaW9uJ11bXT0nPC9zcGFuPicuIlxuIjskR0xPQkFMU1snY3NzdGlkeSddWydwcmVkZWZpbmVkX3RlbXBsYXRlcyddWydsb3dfY29tcHJlc3Npb24nXVtdPSJcbiI7ID8+]]></data>
	</file>
	<file>
	  <filename>/lib/JSMinPlus.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgZGVmaW5lKCdUT0tFTl9FTkQnLDEpO2RlZmluZSgnVE9LRU5fTlVNQkVSJywyKTtkZWZpbmUoJ1RPS0VOX0lERU5USUZJRVInLDMpO2RlZmluZSgnVE9LRU5fU1RSSU5HJyw0KTtkZWZpbmUoJ1RPS0VOX1JFR0VYUCcsNSk7ZGVmaW5lKCdUT0tFTl9ORVdMSU5FJyw2KTtkZWZpbmUoJ1RPS0VOX0NPTkRDT01NRU5UX01VTFRJTElORScsNyk7ZGVmaW5lKCdKU19TQ1JJUFQnLDEwMCk7ZGVmaW5lKCdKU19CTE9DSycsMTAxKTtkZWZpbmUoJ0pTX0xBQkVMJywxMDIpO2RlZmluZSgnSlNfRk9SX0lOJywxMDMpO2RlZmluZSgnSlNfQ0FMTCcsMTA0KTtkZWZpbmUoJ0pTX05FV19XSVRIX0FSR1MnLDEwNSk7ZGVmaW5lKCdKU19JTkRFWCcsMTA2KTtkZWZpbmUoJ0pTX0FSUkFZX0lOSVQnLDEwNyk7ZGVmaW5lKCdKU19PQkpFQ1RfSU5JVCcsMTA4KTtkZWZpbmUoJ0pTX1BST1BFUlRZX0lOSVQnLDEwOSk7ZGVmaW5lKCdKU19HRVRURVInLDExMCk7ZGVmaW5lKCdKU19TRVRURVInLDExMSk7ZGVmaW5lKCdKU19HUk9VUCcsMTEyKTtkZWZpbmUoJ0pTX0xJU1QnLDExMyk7ZGVmaW5lKCdERUNMQVJFRF9GT1JNJywwKTtkZWZpbmUoJ0VYUFJFU1NFRF9GT1JNJywxKTtkZWZpbmUoJ1NUQVRFTUVOVF9GT1JNJywyKTtjbGFzcyBKU01pblBsdXN7cHJpdmF0ZSAkcGFyc2VyO3ByaXZhdGUgJHJlc2VydmVkPWFycmF5KCdicmVhaycsJ2Nhc2UnLCdjYXRjaCcsJ2NvbnRpbnVlJywnZGVmYXVsdCcsJ2RlbGV0ZScsJ2RvJywnZWxzZScsJ2ZpbmFsbHknLCdmb3InLCdmdW5jdGlvbicsJ2lmJywnaW4nLCdpbnN0YW5jZW9mJywnbmV3JywncmV0dXJuJywnc3dpdGNoJywndGhpcycsJ3Rocm93JywndHJ5JywndHlwZW9mJywndmFyJywndm9pZCcsJ3doaWxlJywnd2l0aCcsJ2Fic3RyYWN0JywnYm9vbGVhbicsJ2J5dGUnLCdjaGFyJywnY2xhc3MnLCdjb25zdCcsJ2RlYnVnZ2VyJywnZG91YmxlJywnZW51bScsJ2V4cG9ydCcsJ2V4dGVuZHMnLCdmaW5hbCcsJ2Zsb2F0JywnZ290bycsJ2ltcGxlbWVudHMnLCdpbXBvcnQnLCdpbnQnLCdpbnRlcmZhY2UnLCdsb25nJywnbmF0aXZlJywncGFja2FnZScsJ3ByaXZhdGUnLCdwcm90ZWN0ZWQnLCdwdWJsaWMnLCdzaG9ydCcsJ3N0YXRpYycsJ3N1cGVyJywnc3luY2hyb25pemVkJywndGhyb3dzJywndHJhbnNpZW50Jywndm9sYXRpbGUnLCdhcmd1bWVudHMnLCdldmFsJywndHJ1ZScsJ2ZhbHNlJywnSW5maW5pdHknLCdOYU4nLCdudWxsJywndW5kZWZpbmVkJyk7cHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpeyR0aGlzLT5wYXJzZXI9bmV3IEpTUGFyc2VyKCk7fXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWluaWZ5KCRqcywkZmlsZW5hbWU9Jycpe3N0YXRpYyAkaW5zdGFuY2U7aWYoISRpbnN0YW5jZSkkaW5zdGFuY2U9bmV3IEpTTWluUGx1cygpO3JldHVybiAkaW5zdGFuY2UtPm1pbigkanMsJGZpbGVuYW1lKTt9cHJpdmF0ZSBmdW5jdGlvbiBtaW4oJGpzLCRmaWxlbmFtZSl7dHJ5eyRuPSR0aGlzLT5wYXJzZXItPnBhcnNlKCRqcywkZmlsZW5hbWUsMSk7cmV0dXJuICR0aGlzLT5wYXJzZVRyZWUoJG4pO31jYXRjaChFeGNlcHRpb24gJGUpe2VjaG8gJGUtPmdldE1lc3NhZ2UoKS4iXG4iO31yZXR1cm4gZmFsc2U7fXByaXZhdGUgZnVuY3Rpb24gcGFyc2VUcmVlKCRuLCRub0Jsb2NrR3JvdXBpbmc9ZmFsc2UpeyRzPScnO3N3aXRjaCgkbi0+dHlwZSl7Y2FzZSBLRVlXT1JEX0ZVTkNUSU9OOiRzLj0nZnVuY3Rpb24nLigkbi0+bmFtZT8nICcuJG4tPm5hbWU6JycpLicoJzskcGFyYW1zPSRuLT5wYXJhbXM7Zm9yKCRpPTAsJGo9Y291bnQoJHBhcmFtcyk7JGk8JGo7JGkrKykkcy49KCRpPycsJzonJykuJHBhcmFtc1skaV07JHMuPScpeycuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Ym9keSx0cnVlKS4nfSc7YnJlYWs7Y2FzZSBKU19TQ1JJUFQ6JG5vQmxvY2tHcm91cGluZz10cnVlO2Nhc2UgSlNfQkxPQ0s6JGNoaWxkcz0kbi0+dHJlZU5vZGVzO2ZvcigkYz0wLCRpPTAsJGo9Y291bnQoJGNoaWxkcyk7JGk8JGo7JGkrKyl7JHQ9JHRoaXMtPnBhcnNlVHJlZSgkY2hpbGRzWyRpXSk7aWYoc3RybGVuKCR0KSl7aWYoJGMpe2lmKCRjaGlsZHNbJGldLT50eXBlPT1LRVlXT1JEX0ZVTkNUSU9OJiYkY2hpbGRzWyRpXS0+ZnVuY3Rpb25Gb3JtPT1ERUNMQVJFRF9GT1JNKSRzLj0iXG4iO2Vsc2UgJHMuPSc7Jzt9JHMuPSR0OyRjKys7fX1pZigkYz4xJiYhJG5vQmxvY2tHcm91cGluZyl7JHM9J3snLiRzLid9Jzt9YnJlYWs7Y2FzZSBLRVlXT1JEX0lGOiRzPSdpZignLiR0aGlzLT5wYXJzZVRyZWUoJG4tPmNvbmRpdGlvbikuJyknOyR0aGVuUGFydD0kdGhpcy0+cGFyc2VUcmVlKCRuLT50aGVuUGFydCk7JGVsc2VQYXJ0PSRuLT5lbHNlUGFydD8kdGhpcy0+cGFyc2VUcmVlKCRuLT5lbHNlUGFydCk6bnVsbDtpZigkdGhlblBhcnRbMF0hPSd7Jyl7aWYoc3RycG9zKCR0aGVuUGFydCwnaWYoJykhPT1mYWxzZSkkdGhlblBhcnQ9J3snLiR0aGVuUGFydC4nfSc7ZWxzZWlmKCRlbHNlUGFydCkkdGhlblBhcnQuPSc7Jzt9JHMuPSR0aGVuUGFydDtpZigkZWxzZVBhcnQpeyRzLj0nZWxzZSc7aWYoJGVsc2VQYXJ0WzBdIT0neycpJHMuPScgJzskcy49JGVsc2VQYXJ0O31icmVhaztjYXNlIEtFWVdPUkRfU1dJVENIOiRzPSdzd2l0Y2goJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT5kaXNjcmltaW5hbnQpLicpeyc7JGNhc2VzPSRuLT5jYXNlcztmb3IoJGk9MCwkaj1jb3VudCgkY2FzZXMpOyRpPCRqOyRpKyspeyRjYXNlPSRjYXNlc1skaV07aWYoJGNhc2UtPnR5cGU9PUtFWVdPUkRfQ0FTRSkkcy49J2Nhc2UnLigkY2FzZS0+Y2FzZUxhYmVsLT50eXBlIT1UT0tFTl9TVFJJTkc/JyAnOicnKS4kdGhpcy0+cGFyc2VUcmVlKCRjYXNlLT5jYXNlTGFiZWwpLic6JztlbHNlICRzLj0nZGVmYXVsdDonOyRzdGF0ZW1lbnQ9JHRoaXMtPnBhcnNlVHJlZSgkY2FzZS0+c3RhdGVtZW50cyk7aWYoJHN0YXRlbWVudCkkcy49JHN0YXRlbWVudC4nOyc7fSRzPXJ0cmltKCRzLCc7JykuJ30nO2JyZWFrO2Nhc2UgS0VZV09SRF9GT1I6JHM9J2ZvcignLigkbi0+c2V0dXA/JHRoaXMtPnBhcnNlVHJlZSgkbi0+c2V0dXApOicnKS4nOycuKCRuLT5jb25kaXRpb24/JHRoaXMtPnBhcnNlVHJlZSgkbi0+Y29uZGl0aW9uKTonJykuJzsnLigkbi0+dXBkYXRlPyR0aGlzLT5wYXJzZVRyZWUoJG4tPnVwZGF0ZSk6JycpLicpJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT5ib2R5KTticmVhaztjYXNlIEtFWVdPUkRfV0hJTEU6JHM9J3doaWxlKCcuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Y29uZGl0aW9uKS4nKScuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Ym9keSk7YnJlYWs7Y2FzZSBKU19GT1JfSU46JHM9J2ZvcignLigkbi0+dmFyRGVjbD8kdGhpcy0+cGFyc2VUcmVlKCRuLT52YXJEZWNsKTokdGhpcy0+cGFyc2VUcmVlKCRuLT5pdGVyYXRvcikpLicgaW4gJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT5vYmplY3QpLicpJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT5ib2R5KTticmVhaztjYXNlIEtFWVdPUkRfRE86JHM9J2RveycuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Ym9keSx0cnVlKS4nfXdoaWxlKCcuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Y29uZGl0aW9uKS4nKSc7YnJlYWs7Y2FzZSBLRVlXT1JEX0JSRUFLOmNhc2UgS0VZV09SRF9DT05USU5VRTokcz0kbi0+dmFsdWUuKCRuLT5sYWJlbD8nICcuJG4tPmxhYmVsOicnKTticmVhaztjYXNlIEtFWVdPUkRfVFJZOiRzPSd0cnl7Jy4kdGhpcy0+cGFyc2VUcmVlKCRuLT50cnlCbG9jayx0cnVlKS4nfSc7JGNhdGNoQ2xhdXNlcz0kbi0+Y2F0Y2hDbGF1c2VzO2ZvcigkaT0wLCRqPWNvdW50KCRjYXRjaENsYXVzZXMpOyRpPCRqOyRpKyspeyR0PSRjYXRjaENsYXVzZXNbJGldOyRzLj0nY2F0Y2goJy4kdC0+dmFyTmFtZS4oJHQtPmd1YXJkPycgaWYgJy4kdGhpcy0+cGFyc2VUcmVlKCR0LT5ndWFyZCk6JycpLicpeycuJHRoaXMtPnBhcnNlVHJlZSgkdC0+YmxvY2ssdHJ1ZSkuJ30nO31pZigkbi0+ZmluYWxseUJsb2NrKSRzLj0nZmluYWxseXsnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPmZpbmFsbHlCbG9jayx0cnVlKS4nfSc7YnJlYWs7Y2FzZSBLRVlXT1JEX1RIUk9XOiRzPSd0aHJvdyAnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPmV4Y2VwdGlvbik7YnJlYWs7Y2FzZSBLRVlXT1JEX1JFVFVSTjokcz0ncmV0dXJuJy4oJG4tPnZhbHVlPycgJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT52YWx1ZSk6JycpO2JyZWFrO2Nhc2UgS0VZV09SRF9XSVRIOiRzPSd3aXRoKCcuJHRoaXMtPnBhcnNlVHJlZSgkbi0+b2JqZWN0KS4nKScuJHRoaXMtPnBhcnNlVHJlZSgkbi0+Ym9keSk7YnJlYWs7Y2FzZSBLRVlXT1JEX1ZBUjpjYXNlIEtFWVdPUkRfQ09OU1Q6JHM9JG4tPnZhbHVlLicgJzskY2hpbGRzPSRuLT50cmVlTm9kZXM7Zm9yKCRpPTAsJGo9Y291bnQoJGNoaWxkcyk7JGk8JGo7JGkrKyl7JHQ9JGNoaWxkc1skaV07JHMuPSgkaT8nLCc6JycpLiR0LT5uYW1lOyR1PSR0LT5pbml0aWFsaXplcjtpZigkdSkkcy49Jz0nLiR0aGlzLT5wYXJzZVRyZWUoJHUpO31icmVhaztjYXNlIEtFWVdPUkRfREVCVUdHRVI6dGhyb3cgbmV3IEV4Y2VwdGlvbignTk9UIElNUExFTUVOVEVEOiBERUJVR0dFUicpO2JyZWFrO2Nhc2UgVE9LRU5fQ09ORENPTU1FTlRfTVVMVElMSU5FOiRzPSRuLT52YWx1ZS4nICc7JGNoaWxkcz0kbi0+dHJlZU5vZGVzO2ZvcigkaT0wLCRqPWNvdW50KCRjaGlsZHMpOyRpPCRqOyRpKyspJHMuPSR0aGlzLT5wYXJzZVRyZWUoJGNoaWxkc1skaV0pO2JyZWFrO2Nhc2UgT1BfU0VNSUNPTE9OOmlmKCRleHByZXNzaW9uPSRuLT5leHByZXNzaW9uKSRzPSR0aGlzLT5wYXJzZVRyZWUoJGV4cHJlc3Npb24pO2JyZWFrO2Nhc2UgSlNfTEFCRUw6JHM9JG4tPmxhYmVsLic6Jy4kdGhpcy0+cGFyc2VUcmVlKCRuLT5zdGF0ZW1lbnQpO2JyZWFrO2Nhc2UgT1BfQ09NTUE6JGNoaWxkcz0kbi0+dHJlZU5vZGVzO2ZvcigkaT0wLCRqPWNvdW50KCRjaGlsZHMpOyRpPCRqOyRpKyspJHMuPSgkaT8nLCc6JycpLiR0aGlzLT5wYXJzZVRyZWUoJGNoaWxkc1skaV0pO2JyZWFrO2Nhc2UgT1BfQVNTSUdOOiRzPSR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJG4tPnZhbHVlLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSk7YnJlYWs7Y2FzZSBPUF9IT09LOiRzPSR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJz8nLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSkuJzonLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1syXSk7YnJlYWs7Y2FzZSBPUF9PUjpjYXNlIE9QX0FORDpjYXNlIE9QX0JJVFdJU0VfT1I6Y2FzZSBPUF9CSVRXSVNFX1hPUjpjYXNlIE9QX0JJVFdJU0VfQU5EOmNhc2UgT1BfRVE6Y2FzZSBPUF9ORTpjYXNlIE9QX1NUUklDVF9FUTpjYXNlIE9QX1NUUklDVF9ORTpjYXNlIE9QX0xUOmNhc2UgT1BfTEU6Y2FzZSBPUF9HRTpjYXNlIE9QX0dUOmNhc2UgT1BfTFNIOmNhc2UgT1BfUlNIOmNhc2UgT1BfVVJTSDpjYXNlIE9QX01VTDpjYXNlIE9QX0RJVjpjYXNlIE9QX01PRDokcz0kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pLiRuLT50eXBlLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSk7YnJlYWs7Y2FzZSBPUF9QTFVTOmNhc2UgT1BfTUlOVVM6JHM9JHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzBdKS4kbi0+dHlwZTskbmV4dFRva2VuVHlwZT0kbi0+dHJlZU5vZGVzWzFdLT50eXBlO2lmKCRuZXh0VG9rZW5UeXBlPT1PUF9QTFVTfHwkbmV4dFRva2VuVHlwZT09T1BfTUlOVVN8fCRuZXh0VG9rZW5UeXBlPT1PUF9JTkNSRU1FTlR8fCRuZXh0VG9rZW5UeXBlPT1PUF9ERUNSRU1FTlR8fCRuZXh0VG9rZW5UeXBlPT1PUF9VTkFSWV9QTFVTfHwkbmV4dFRva2VuVHlwZT09T1BfVU5BUllfTUlOVVMpJHMuPScgJzskcy49JHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzFdKTticmVhaztjYXNlIEtFWVdPUkRfSU46JHM9JHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzBdKS4nIGluICcuJHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzFdKTticmVhaztjYXNlIEtFWVdPUkRfSU5TVEFOQ0VPRjokcz0kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pLicgaW5zdGFuY2VvZiAnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSk7YnJlYWs7Y2FzZSBLRVlXT1JEX0RFTEVURTokcz0nZGVsZXRlICcuJHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzBdKTticmVhaztjYXNlIEtFWVdPUkRfVk9JRDokcz0ndm9pZCgnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJyknO2JyZWFrO2Nhc2UgS0VZV09SRF9UWVBFT0Y6JHM9J3R5cGVvZiAnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSk7YnJlYWs7Y2FzZSBPUF9OT1Q6Y2FzZSBPUF9CSVRXSVNFX05PVDpjYXNlIE9QX1VOQVJZX1BMVVM6Y2FzZSBPUF9VTkFSWV9NSU5VUzokcz0kbi0+dmFsdWUuJHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzBdKTticmVhaztjYXNlIE9QX0lOQ1JFTUVOVDpjYXNlIE9QX0RFQ1JFTUVOVDppZigkbi0+cG9zdGZpeCkkcz0kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pLiRuLT52YWx1ZTtlbHNlICRzPSRuLT52YWx1ZS4kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pO2JyZWFrO2Nhc2UgT1BfRE9UOiRzPSR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJy4nLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSk7YnJlYWs7Y2FzZSBKU19JTkRFWDokcz0kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pO2lmKCRuLT50cmVlTm9kZXNbMF0tPnR5cGU9PVRPS0VOX0lERU5USUZJRVImJiRuLT50cmVlTm9kZXNbMV0tPnR5cGU9PVRPS0VOX1NUUklORyYmJHRoaXMtPmlzVmFsaWRJZGVudGlmaWVyKHN1YnN0cigkbi0+dHJlZU5vZGVzWzFdLT52YWx1ZSwxLC0xKSkpJHMuPScuJy5zdWJzdHIoJG4tPnRyZWVOb2Rlc1sxXS0+dmFsdWUsMSwtMSk7ZWxzZSAkcy49J1snLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSkuJ10nO2JyZWFrO2Nhc2UgSlNfTElTVDokY2hpbGRzPSRuLT50cmVlTm9kZXM7Zm9yKCRpPTAsJGo9Y291bnQoJGNoaWxkcyk7JGk8JGo7JGkrKykkcy49KCRpPycsJzonJykuJHRoaXMtPnBhcnNlVHJlZSgkY2hpbGRzWyRpXSk7YnJlYWs7Y2FzZSBKU19DQUxMOiRzPSR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJygnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1sxXSkuJyknO2JyZWFrO2Nhc2UgS0VZV09SRF9ORVc6Y2FzZSBKU19ORVdfV0lUSF9BUkdTOiRzPSduZXcgJy4kdGhpcy0+cGFyc2VUcmVlKCRuLT50cmVlTm9kZXNbMF0pLicoJy4oJG4tPnR5cGU9PUpTX05FV19XSVRIX0FSR1M/JHRoaXMtPnBhcnNlVHJlZSgkbi0+dHJlZU5vZGVzWzFdKTonJykuJyknO2JyZWFrO2Nhc2UgSlNfQVJSQVlfSU5JVDokcz0nWyc7JGNoaWxkcz0kbi0+dHJlZU5vZGVzO2ZvcigkaT0wLCRqPWNvdW50KCRjaGlsZHMpOyRpPCRqOyRpKyspeyRzLj0oJGk/JywnOicnKS4kdGhpcy0+cGFyc2VUcmVlKCRjaGlsZHNbJGldKTt9JHMuPSddJzticmVhaztjYXNlIEpTX09CSkVDVF9JTklUOiRzPSd7JzskY2hpbGRzPSRuLT50cmVlTm9kZXM7Zm9yKCRpPTAsJGo9Y291bnQoJGNoaWxkcyk7JGk8JGo7JGkrKyl7JHQ9JGNoaWxkc1skaV07aWYoJGkpJHMuPScsJztpZigkdC0+dHlwZT09SlNfUFJPUEVSVFlfSU5JVCl7aWYoJHQtPnRyZWVOb2Rlc1swXS0+dHlwZT09VE9LRU5fU1RSSU5HJiYkdGhpcy0+aXNWYWxpZElkZW50aWZpZXIoc3Vic3RyKCR0LT50cmVlTm9kZXNbMF0tPnZhbHVlLDEsLTEpKSkkcy49c3Vic3RyKCR0LT50cmVlTm9kZXNbMF0tPnZhbHVlLDEsLTEpO2Vsc2UgJHMuPSR0LT50cmVlTm9kZXNbMF0tPnZhbHVlOyRzLj0nOicuJHRoaXMtPnBhcnNlVHJlZSgkdC0+dHJlZU5vZGVzWzFdKTt9ZWxzZXskcy49JHQtPnR5cGU9PUpTX0dFVFRFUj8nZ2V0Jzonc2V0Jzskcy49JyAnLiR0LT5uYW1lLicoJzskcGFyYW1zPSR0LT5wYXJhbXM7Zm9yKCRpPTAsJGo9Y291bnQoJHBhcmFtcyk7JGk8JGo7JGkrKykkcy49KCRpPycsJzonJykuJHBhcmFtc1skaV07JHMuPScpeycuJHRoaXMtPnBhcnNlVHJlZSgkdC0+Ym9keSx0cnVlKS4nfSc7fX0kcy49J30nO2JyZWFrO2Nhc2UgS0VZV09SRF9OVUxMOmNhc2UgS0VZV09SRF9USElTOmNhc2UgS0VZV09SRF9UUlVFOmNhc2UgS0VZV09SRF9GQUxTRTpjYXNlIFRPS0VOX0lERU5USUZJRVI6Y2FzZSBUT0tFTl9OVU1CRVI6Y2FzZSBUT0tFTl9TVFJJTkc6Y2FzZSBUT0tFTl9SRUdFWFA6JHM9JG4tPnZhbHVlO2JyZWFrO2Nhc2UgSlNfR1JPVVA6JHM9JygnLiR0aGlzLT5wYXJzZVRyZWUoJG4tPnRyZWVOb2Rlc1swXSkuJyknO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEV4Y2VwdGlvbignVU5LTk9XTiBUT0tFTiBUWVBFOiAnLiRuLT50eXBlKTt9cmV0dXJuICRzO31wcml2YXRlIGZ1bmN0aW9uIGlzVmFsaWRJZGVudGlmaWVyKCRzdHJpbmcpe3JldHVybiBwcmVnX21hdGNoKCcvXlthLXpBLVpfXVthLXpBLVowLTlfXSokLycsJHN0cmluZykmJiFpbl9hcnJheSgkc3RyaW5nLCR0aGlzLT5yZXNlcnZlZCk7fX1jbGFzcyBKU1BhcnNlcntwcml2YXRlICR0O3ByaXZhdGUgJG9wUHJlY2VkZW5jZT1hcnJheSgnOyc9PjAsJywnPT4xLCc9Jz0+MiwnPyc9PjIsJzonPT4yLCd8fCc9PjQsJyYmJz0+NSwnfCc9PjYsJ14nPT43LCcmJz0+OCwnPT0nPT45LCchPSc9PjksJz09PSc9PjksJyE9PSc9PjksJzwnPT4xMCwnPD0nPT4xMCwnPj0nPT4xMCwnPic9PjEwLCdpbic9PjEwLCdpbnN0YW5jZW9mJz0+MTAsJzw8Jz0+MTEsJz4+Jz0+MTEsJz4+Pic9PjExLCcrJz0+MTIsJy0nPT4xMiwnKic9PjEzLCcvJz0+MTMsJyUnPT4xMywnZGVsZXRlJz0+MTQsJ3ZvaWQnPT4xNCwndHlwZW9mJz0+MTQsJyEnPT4xNCwnfic9PjE0LCdVKyc9PjE0LCdVLSc9PjE0LCcrKyc9PjE1LCctLSc9PjE1LCduZXcnPT4xNiwnLic9PjE3LEpTX05FV19XSVRIX0FSR1M9PjAsSlNfSU5ERVg9PjAsSlNfQ0FMTD0+MCxKU19BUlJBWV9JTklUPT4wLEpTX09CSkVDVF9JTklUPT4wLEpTX0dST1VQPT4wKTtwcml2YXRlICRvcEFyaXR5PWFycmF5KCcsJz0+LTIsJz0nPT4yLCc/Jz0+MywnfHwnPT4yLCcmJic9PjIsJ3wnPT4yLCdeJz0+MiwnJic9PjIsJz09Jz0+MiwnIT0nPT4yLCc9PT0nPT4yLCchPT0nPT4yLCc8Jz0+MiwnPD0nPT4yLCc+PSc9PjIsJz4nPT4yLCdpbic9PjIsJ2luc3RhbmNlb2YnPT4yLCc8PCc9PjIsJz4+Jz0+MiwnPj4+Jz0+MiwnKyc9PjIsJy0nPT4yLCcqJz0+MiwnLyc9PjIsJyUnPT4yLCdkZWxldGUnPT4xLCd2b2lkJz0+MSwndHlwZW9mJz0+MSwnISc9PjEsJ34nPT4xLCdVKyc9PjEsJ1UtJz0+MSwnKysnPT4xLCctLSc9PjEsJ25ldyc9PjEsJy4nPT4yLEpTX05FV19XSVRIX0FSR1M9PjIsSlNfSU5ERVg9PjIsSlNfQ0FMTD0+MixKU19BUlJBWV9JTklUPT4xLEpTX09CSkVDVF9JTklUPT4xLEpTX0dST1VQPT4xLFRPS0VOX0NPTkRDT01NRU5UX01VTFRJTElORT0+MSk7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCl7JHRoaXMtPnQ9bmV3IEpTVG9rZW5pemVyKCk7fXB1YmxpYyBmdW5jdGlvbiBwYXJzZSgkcywkZiwkbCl7JHRoaXMtPnQtPmluaXQoJHMsJGYsJGwpOyR4PW5ldyBKU0NvbXBpbGVyQ29udGV4dChmYWxzZSk7JG49JHRoaXMtPlNjcmlwdCgkeCk7aWYoISR0aGlzLT50LT5pc0RvbmUoKSl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ1N5bnRheCBlcnJvcicpO3JldHVybiAkbjt9cHJpdmF0ZSBmdW5jdGlvbiBTY3JpcHQoJHgpeyRuPSR0aGlzLT5TdGF0ZW1lbnRzKCR4KTskbi0+dHlwZT1KU19TQ1JJUFQ7JG4tPmZ1bkRlY2xzPSR4LT5mdW5EZWNsczskbi0+dmFyRGVjbHM9JHgtPnZhckRlY2xzO3JldHVybiAkbjt9cHJpdmF0ZSBmdW5jdGlvbiBTdGF0ZW1lbnRzKCR4KXskbj1uZXcgSlNOb2RlKCR0aGlzLT50LEpTX0JMT0NLKTthcnJheV9wdXNoKCR4LT5zdG10U3RhY2ssJG4pO3doaWxlKCEkdGhpcy0+dC0+aXNEb25lKCkmJiR0aGlzLT50LT5wZWVrKCkhPU9QX1JJR0hUX0NVUkxZKSRuLT5hZGROb2RlKCR0aGlzLT5TdGF0ZW1lbnQoJHgpKTthcnJheV9wb3AoJHgtPnN0bXRTdGFjayk7cmV0dXJuICRuO31wcml2YXRlIGZ1bmN0aW9uIEJsb2NrKCR4KXskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX0xFRlRfQ1VSTFkpOyRuPSR0aGlzLT5TdGF0ZW1lbnRzKCR4KTskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX1JJR0hUX0NVUkxZKTtyZXR1cm4gJG47fXByaXZhdGUgZnVuY3Rpb24gU3RhdGVtZW50KCR4KXskdHQ9JHRoaXMtPnQtPmdldCgpOyRuMj1udWxsO3N3aXRjaCgkdHQpe2Nhc2UgS0VZV09SRF9GVU5DVElPTjpyZXR1cm4gJHRoaXMtPkZ1bmN0aW9uRGVmaW5pdGlvbigkeCx0cnVlLGNvdW50KCR4LT5zdG10U3RhY2spPjE/U1RBVEVNRU5UX0ZPUk06REVDTEFSRURfRk9STSk7YnJlYWs7Y2FzZSBPUF9MRUZUX0NVUkxZOiRuPSR0aGlzLT5TdGF0ZW1lbnRzKCR4KTskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX1JJR0hUX0NVUkxZKTtyZXR1cm4gJG47Y2FzZSBLRVlXT1JEX0lGOiRuPW5ldyBKU05vZGUoJHRoaXMtPnQpOyRuLT5jb25kaXRpb249JHRoaXMtPlBhcmVuRXhwcmVzc2lvbigkeCk7YXJyYXlfcHVzaCgkeC0+c3RtdFN0YWNrLCRuKTskbi0+dGhlblBhcnQ9JHRoaXMtPlN0YXRlbWVudCgkeCk7JG4tPmVsc2VQYXJ0PSR0aGlzLT50LT5tYXRjaChLRVlXT1JEX0VMU0UpPyR0aGlzLT5TdGF0ZW1lbnQoJHgpOm51bGw7YXJyYXlfcG9wKCR4LT5zdG10U3RhY2spO3JldHVybiAkbjtjYXNlIEtFWVdPUkRfU1dJVENIOiRuPW5ldyBKU05vZGUoJHRoaXMtPnQpOyR0aGlzLT50LT5tdXN0TWF0Y2goT1BfTEVGVF9QQVJFTik7JG4tPmRpc2NyaW1pbmFudD0kdGhpcy0+RXhwcmVzc2lvbigkeCk7JHRoaXMtPnQtPm11c3RNYXRjaChPUF9SSUdIVF9QQVJFTik7JG4tPmNhc2VzPWFycmF5KCk7JG4tPmRlZmF1bHRJbmRleD0tMTthcnJheV9wdXNoKCR4LT5zdG10U3RhY2ssJG4pOyR0aGlzLT50LT5tdXN0TWF0Y2goT1BfTEVGVF9DVVJMWSk7d2hpbGUoKCR0dD0kdGhpcy0+dC0+Z2V0KCkpIT1PUF9SSUdIVF9DVVJMWSl7c3dpdGNoKCR0dCl7Y2FzZSBLRVlXT1JEX0RFRkFVTFQ6aWYoJG4tPmRlZmF1bHRJbmRleD49MCl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ01vcmUgdGhhbiBvbmUgc3dpdGNoIGRlZmF1bHQnKTtjYXNlIEtFWVdPUkRfQ0FTRTokbjI9bmV3IEpTTm9kZSgkdGhpcy0+dCk7aWYoJHR0PT1LRVlXT1JEX0RFRkFVTFQpJG4tPmRlZmF1bHRJbmRleD1jb3VudCgkbi0+Y2FzZXMpO2Vsc2UgJG4yLT5jYXNlTGFiZWw9JHRoaXMtPkV4cHJlc3Npb24oJHgsT1BfQ09MT04pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbnZhbGlkIHN3aXRjaCBjYXNlJyk7fSR0aGlzLT50LT5tdXN0TWF0Y2goT1BfQ09MT04pOyRuMi0+c3RhdGVtZW50cz1uZXcgSlNOb2RlKCR0aGlzLT50LEpTX0JMT0NLKTt3aGlsZSgoJHR0PSR0aGlzLT50LT5wZWVrKCkpIT1LRVlXT1JEX0NBU0UmJiR0dCE9S0VZV09SRF9ERUZBVUxUJiYkdHQhPU9QX1JJR0hUX0NVUkxZKSRuMi0+c3RhdGVtZW50cy0+YWRkTm9kZSgkdGhpcy0+U3RhdGVtZW50KCR4KSk7YXJyYXlfcHVzaCgkbi0+Y2FzZXMsJG4yKTt9YXJyYXlfcG9wKCR4LT5zdG10U3RhY2spO3JldHVybiAkbjtjYXNlIEtFWVdPUkRfRk9SOiRuPW5ldyBKU05vZGUoJHRoaXMtPnQpOyRuLT5pc0xvb3A9dHJ1ZTskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX0xFRlRfUEFSRU4pO2lmKCgkdHQ9JHRoaXMtPnQtPnBlZWsoKSkhPU9QX1NFTUlDT0xPTil7JHgtPmluRm9yTG9vcEluaXQ9dHJ1ZTtpZigkdHQ9PUtFWVdPUkRfVkFSfHwkdHQ9PUtFWVdPUkRfQ09OU1QpeyR0aGlzLT50LT5nZXQoKTskbjI9JHRoaXMtPlZhcmlhYmxlcygkeCk7fWVsc2V7JG4yPSR0aGlzLT5FeHByZXNzaW9uKCR4KTt9JHgtPmluRm9yTG9vcEluaXQ9ZmFsc2U7fWlmKCRuMiYmJHRoaXMtPnQtPm1hdGNoKEtFWVdPUkRfSU4pKXskbi0+dHlwZT1KU19GT1JfSU47aWYoJG4yLT50eXBlPT1LRVlXT1JEX1ZBUil7aWYoY291bnQoJG4yLT50cmVlTm9kZXMpIT0xKXt0aHJvdyAkdGhpcy0+dC0+U3ludGF4RXJyb3IoJ0ludmFsaWQgZm9yLi5pbiBsZWZ0LWhhbmQgc2lkZScsJHRoaXMtPnQtPmZpbGVuYW1lLCRuMi0+bGluZW5vKTt9JG4tPml0ZXJhdG9yPSRuMi0+dHJlZU5vZGVzWzBdOyRuLT52YXJEZWNsPSRuMjt9ZWxzZXskbi0+aXRlcmF0b3I9JG4yOyRuLT52YXJEZWNsPW51bGw7fSRuLT5vYmplY3Q9JHRoaXMtPkV4cHJlc3Npb24oJHgpO31lbHNleyRuLT5zZXR1cD0kbjI/JG4yOm51bGw7JHRoaXMtPnQtPm11c3RNYXRjaChPUF9TRU1JQ09MT04pOyRuLT5jb25kaXRpb249JHRoaXMtPnQtPnBlZWsoKT09T1BfU0VNSUNPTE9OP251bGw6JHRoaXMtPkV4cHJlc3Npb24oJHgpOyR0aGlzLT50LT5tdXN0TWF0Y2goT1BfU0VNSUNPTE9OKTskbi0+dXBkYXRlPSR0aGlzLT50LT5wZWVrKCk9PU9QX1JJR0hUX1BBUkVOP251bGw6JHRoaXMtPkV4cHJlc3Npb24oJHgpO30kdGhpcy0+dC0+bXVzdE1hdGNoKE9QX1JJR0hUX1BBUkVOKTskbi0+Ym9keT0kdGhpcy0+bmVzdCgkeCwkbik7cmV0dXJuICRuO2Nhc2UgS0VZV09SRF9XSElMRTokbj1uZXcgSlNOb2RlKCR0aGlzLT50KTskbi0+aXNMb29wPXRydWU7JG4tPmNvbmRpdGlvbj0kdGhpcy0+UGFyZW5FeHByZXNzaW9uKCR4KTskbi0+Ym9keT0kdGhpcy0+bmVzdCgkeCwkbik7cmV0dXJuICRuO2Nhc2UgS0VZV09SRF9ETzokbj1uZXcgSlNOb2RlKCR0aGlzLT50KTskbi0+aXNMb29wPXRydWU7JG4tPmJvZHk9JHRoaXMtPm5lc3QoJHgsJG4sS0VZV09SRF9XSElMRSk7JG4tPmNvbmRpdGlvbj0kdGhpcy0+UGFyZW5FeHByZXNzaW9uKCR4KTtpZighJHgtPmVjbWFTdHJpY3RNb2RlKXskdGhpcy0+dC0+bWF0Y2goT1BfU0VNSUNPTE9OKTtyZXR1cm4gJG47fWJyZWFrO2Nhc2UgS0VZV09SRF9CUkVBSzpjYXNlIEtFWVdPUkRfQ09OVElOVUU6JG49bmV3IEpTTm9kZSgkdGhpcy0+dCk7aWYoJHRoaXMtPnQtPnBlZWtPblNhbWVMaW5lKCk9PVRPS0VOX0lERU5USUZJRVIpeyR0aGlzLT50LT5nZXQoKTskbi0+bGFiZWw9JHRoaXMtPnQtPmN1cnJlbnRUb2tlbigpLT52YWx1ZTt9JHNzPSR4LT5zdG10U3RhY2s7JGk9Y291bnQoJHNzKTskbGFiZWw9JG4tPmxhYmVsO2lmKCRsYWJlbCl7ZG97aWYoLS0kaTwwKXRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignTGFiZWwgbm90IGZvdW5kJyk7fXdoaWxlKCRzc1skaV0tPmxhYmVsIT0kbGFiZWwpO31lbHNle2Rve2lmKC0tJGk8MCl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ0ludmFsaWQgJy4kdHQpO313aGlsZSghJHNzWyRpXS0+aXNMb29wJiYoJHR0IT1LRVlXT1JEX0JSRUFLfHwkc3NbJGldLT50eXBlIT1LRVlXT1JEX1NXSVRDSCkpO30kbi0+dGFyZ2V0PSRzc1skaV07YnJlYWs7Y2FzZSBLRVlXT1JEX1RSWTokbj1uZXcgSlNOb2RlKCR0aGlzLT50KTskbi0+dHJ5QmxvY2s9JHRoaXMtPkJsb2NrKCR4KTskbi0+Y2F0Y2hDbGF1c2VzPWFycmF5KCk7d2hpbGUoJHRoaXMtPnQtPm1hdGNoKEtFWVdPUkRfQ0FUQ0gpKXskbjI9bmV3IEpTTm9kZSgkdGhpcy0+dCk7JHRoaXMtPnQtPm11c3RNYXRjaChPUF9MRUZUX1BBUkVOKTskbjItPnZhck5hbWU9JHRoaXMtPnQtPm11c3RNYXRjaChUT0tFTl9JREVOVElGSUVSKS0+dmFsdWU7aWYoJHRoaXMtPnQtPm1hdGNoKEtFWVdPUkRfSUYpKXtpZigkeC0+ZWNtYVN0cmljdE1vZGUpdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbGxlZ2FsIGNhdGNoIGd1YXJkJyk7aWYoY291bnQoJG4tPmNhdGNoQ2xhdXNlcykmJiFlbmQoJG4tPmNhdGNoQ2xhdXNlcyktPmd1YXJkKXRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignR3VhcmRlZCBjYXRjaCBhZnRlciB1bmd1YXJkZWQnKTskbjItPmd1YXJkPSR0aGlzLT5FeHByZXNzaW9uKCR4KTt9ZWxzZXskbjItPmd1YXJkPW51bGw7fSR0aGlzLT50LT5tdXN0TWF0Y2goT1BfUklHSFRfUEFSRU4pOyRuMi0+YmxvY2s9JHRoaXMtPkJsb2NrKCR4KTthcnJheV9wdXNoKCRuLT5jYXRjaENsYXVzZXMsJG4yKTt9aWYoJHRoaXMtPnQtPm1hdGNoKEtFWVdPUkRfRklOQUxMWSkpJG4tPmZpbmFsbHlCbG9jaz0kdGhpcy0+QmxvY2soJHgpO2lmKCFjb3VudCgkbi0+Y2F0Y2hDbGF1c2VzKSYmISRuLT5maW5hbGx5QmxvY2spdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbnZhbGlkIHRyeSBzdGF0ZW1lbnQnKTtyZXR1cm4gJG47Y2FzZSBLRVlXT1JEX0NBVENIOmNhc2UgS0VZV09SRF9GSU5BTExZOnRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcigkdHQrJyB3aXRob3V0IHByZWNlZGluZyB0cnknKTtjYXNlIEtFWVdPUkRfVEhST1c6JG49bmV3IEpTTm9kZSgkdGhpcy0+dCk7JG4tPmV4Y2VwdGlvbj0kdGhpcy0+RXhwcmVzc2lvbigkeCk7YnJlYWs7Y2FzZSBLRVlXT1JEX1JFVFVSTjppZighJHgtPmluRnVuY3Rpb24pdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbnZhbGlkIHJldHVybicpOyRuPW5ldyBKU05vZGUoJHRoaXMtPnQpOyR0dD0kdGhpcy0+dC0+cGVla09uU2FtZUxpbmUoKTtpZigkdHQhPVRPS0VOX0VORCYmJHR0IT1UT0tFTl9ORVdMSU5FJiYkdHQhPU9QX1NFTUlDT0xPTiYmJHR0IT1PUF9SSUdIVF9DVVJMWSkkbi0+dmFsdWU9JHRoaXMtPkV4cHJlc3Npb24oJHgpO2Vsc2UgJG4tPnZhbHVlPW51bGw7YnJlYWs7Y2FzZSBLRVlXT1JEX1dJVEg6JG49bmV3IEpTTm9kZSgkdGhpcy0+dCk7JG4tPm9iamVjdD0kdGhpcy0+UGFyZW5FeHByZXNzaW9uKCR4KTskbi0+Ym9keT0kdGhpcy0+bmVzdCgkeCwkbik7cmV0dXJuICRuO2Nhc2UgS0VZV09SRF9WQVI6Y2FzZSBLRVlXT1JEX0NPTlNUOiRuPSR0aGlzLT5WYXJpYWJsZXMoJHgpO2JyZWFrO2Nhc2UgVE9LRU5fQ09ORENPTU1FTlRfTVVMVElMSU5FOiRuPW5ldyBKU05vZGUoJHRoaXMtPnQpO3JldHVybiAkbjtjYXNlIEtFWVdPUkRfREVCVUdHRVI6JG49bmV3IEpTTm9kZSgkdGhpcy0+dCk7YnJlYWs7Y2FzZSBUT0tFTl9ORVdMSU5FOmNhc2UgT1BfU0VNSUNPTE9OOiRuPW5ldyBKU05vZGUoJHRoaXMtPnQsT1BfU0VNSUNPTE9OKTskbi0+ZXhwcmVzc2lvbj1udWxsO3JldHVybiAkbjtkZWZhdWx0OmlmKCR0dD09VE9LRU5fSURFTlRJRklFUil7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPWZhbHNlOyR0dD0kdGhpcy0+dC0+cGVlaygpOyR0aGlzLT50LT5zY2FuT3BlcmFuZD10cnVlO2lmKCR0dD09T1BfQ09MT04peyRsYWJlbD0kdGhpcy0+dC0+Y3VycmVudFRva2VuKCktPnZhbHVlOyRzcz0keC0+c3RtdFN0YWNrO2ZvcigkaT1jb3VudCgkc3MpLTE7JGk+PTA7LS0kaSl7aWYoJHNzWyRpXS0+bGFiZWw9PSRsYWJlbCl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ0R1cGxpY2F0ZSBsYWJlbCcpO30kdGhpcy0+dC0+Z2V0KCk7JG49bmV3IEpTTm9kZSgkdGhpcy0+dCxKU19MQUJFTCk7JG4tPmxhYmVsPSRsYWJlbDskbi0+c3RhdGVtZW50PSR0aGlzLT5uZXN0KCR4LCRuKTtyZXR1cm4gJG47fX0kbj1uZXcgSlNOb2RlKCR0aGlzLT50LE9QX1NFTUlDT0xPTik7JHRoaXMtPnQtPnVuZ2V0KCk7JG4tPmV4cHJlc3Npb249JHRoaXMtPkV4cHJlc3Npb24oJHgpOyRuLT5lbmQ9JG4tPmV4cHJlc3Npb24tPmVuZDticmVhazt9aWYoJHRoaXMtPnQtPmxpbmVubz09JHRoaXMtPnQtPmN1cnJlbnRUb2tlbigpLT5saW5lbm8peyR0dD0kdGhpcy0+dC0+cGVla09uU2FtZUxpbmUoKTtpZigkdHQhPVRPS0VOX0VORCYmJHR0IT1UT0tFTl9ORVdMSU5FJiYkdHQhPU9QX1NFTUlDT0xPTiYmJHR0IT1PUF9SSUdIVF9DVVJMWSl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ01pc3NpbmcgOyBiZWZvcmUgc3RhdGVtZW50Jyk7fSR0aGlzLT50LT5tYXRjaChPUF9TRU1JQ09MT04pO3JldHVybiAkbjt9cHJpdmF0ZSBmdW5jdGlvbiBGdW5jdGlvbkRlZmluaXRpb24oJHgsJHJlcXVpcmVOYW1lLCRmdW5jdGlvbkZvcm0peyRmPW5ldyBKU05vZGUoJHRoaXMtPnQpO2lmKCRmLT50eXBlIT1LRVlXT1JEX0ZVTkNUSU9OKSRmLT50eXBlPSgkZi0+dmFsdWU9PSdnZXQnKT9KU19HRVRURVI6SlNfU0VUVEVSO2lmKCR0aGlzLT50LT5tYXRjaChUT0tFTl9JREVOVElGSUVSKSkkZi0+bmFtZT0kdGhpcy0+dC0+Y3VycmVudFRva2VuKCktPnZhbHVlO2Vsc2VpZigkcmVxdWlyZU5hbWUpdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdNaXNzaW5nIGZ1bmN0aW9uIGlkZW50aWZpZXInKTskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX0xFRlRfUEFSRU4pOyRmLT5wYXJhbXM9YXJyYXkoKTt3aGlsZSgoJHR0PSR0aGlzLT50LT5nZXQoKSkhPU9QX1JJR0hUX1BBUkVOKXtpZigkdHQhPVRPS0VOX0lERU5USUZJRVIpdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdNaXNzaW5nIGZvcm1hbCBwYXJhbWV0ZXInKTthcnJheV9wdXNoKCRmLT5wYXJhbXMsJHRoaXMtPnQtPmN1cnJlbnRUb2tlbigpLT52YWx1ZSk7aWYoJHRoaXMtPnQtPnBlZWsoKSE9T1BfUklHSFRfUEFSRU4pJHRoaXMtPnQtPm11c3RNYXRjaChPUF9DT01NQSk7fSR0aGlzLT50LT5tdXN0TWF0Y2goT1BfTEVGVF9DVVJMWSk7JHgyPW5ldyBKU0NvbXBpbGVyQ29udGV4dCh0cnVlKTskZi0+Ym9keT0kdGhpcy0+U2NyaXB0KCR4Mik7JHRoaXMtPnQtPm11c3RNYXRjaChPUF9SSUdIVF9DVVJMWSk7JGYtPmVuZD0kdGhpcy0+dC0+Y3VycmVudFRva2VuKCktPmVuZDskZi0+ZnVuY3Rpb25Gb3JtPSRmdW5jdGlvbkZvcm07aWYoJGZ1bmN0aW9uRm9ybT09REVDTEFSRURfRk9STSlhcnJheV9wdXNoKCR4LT5mdW5EZWNscywkZik7cmV0dXJuICRmO31wcml2YXRlIGZ1bmN0aW9uIFZhcmlhYmxlcygkeCl7JG49bmV3IEpTTm9kZSgkdGhpcy0+dCk7ZG97JHRoaXMtPnQtPm11c3RNYXRjaChUT0tFTl9JREVOVElGSUVSKTskbjI9bmV3IEpTTm9kZSgkdGhpcy0+dCk7JG4yLT5uYW1lPSRuMi0+dmFsdWU7aWYoJHRoaXMtPnQtPm1hdGNoKE9QX0FTU0lHTikpe2lmKCR0aGlzLT50LT5jdXJyZW50VG9rZW4oKS0+YXNzaWduT3ApdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbnZhbGlkIHZhcmlhYmxlIGluaXRpYWxpemF0aW9uJyk7JG4yLT5pbml0aWFsaXplcj0kdGhpcy0+RXhwcmVzc2lvbigkeCxPUF9DT01NQSk7fSRuMi0+cmVhZE9ubHk9JG4tPnR5cGU9PUtFWVdPUkRfQ09OU1Q7JG4tPmFkZE5vZGUoJG4yKTthcnJheV9wdXNoKCR4LT52YXJEZWNscywkbjIpO313aGlsZSgkdGhpcy0+dC0+bWF0Y2goT1BfQ09NTUEpKTtyZXR1cm4gJG47fXByaXZhdGUgZnVuY3Rpb24gRXhwcmVzc2lvbigkeCwkc3RvcD1mYWxzZSl7JG9wZXJhdG9ycz1hcnJheSgpOyRvcGVyYW5kcz1hcnJheSgpOyRuPWZhbHNlOyRibD0keC0+YnJhY2tldExldmVsOyRjbD0keC0+Y3VybHlMZXZlbDskcGw9JHgtPnBhcmVuTGV2ZWw7JGhsPSR4LT5ob29rTGV2ZWw7d2hpbGUoKCR0dD0kdGhpcy0+dC0+Z2V0KCkpIT1UT0tFTl9FTkQpe2lmKCR0dD09JHN0b3AmJiR4LT5icmFja2V0TGV2ZWw9PSRibCYmJHgtPmN1cmx5TGV2ZWw9PSRjbCYmJHgtPnBhcmVuTGV2ZWw9PSRwbCYmJHgtPmhvb2tMZXZlbD09JGhsKXticmVhazt9c3dpdGNoKCR0dCl7Y2FzZSBPUF9TRU1JQ09MT046YnJlYWsgMjtjYXNlIE9QX0FTU0lHTjpjYXNlIE9QX0hPT0s6Y2FzZSBPUF9DT0xPTjppZigkdGhpcy0+dC0+c2Nhbk9wZXJhbmQpYnJlYWsgMjt3aGlsZSghZW1wdHkoJG9wZXJhdG9ycykmJigkdGhpcy0+b3BQcmVjZWRlbmNlW2VuZCgkb3BlcmF0b3JzKS0+dHlwZV0+JHRoaXMtPm9wUHJlY2VkZW5jZVskdHRdfHwoJHR0PT1PUF9DT0xPTiYmZW5kKCRvcGVyYXRvcnMpLT50eXBlPT1PUF9BU1NJR04pKSkkdGhpcy0+cmVkdWNlKCRvcGVyYXRvcnMsJG9wZXJhbmRzKTtpZigkdHQ9PU9QX0NPTE9OKXskbj1lbmQoJG9wZXJhdG9ycyk7aWYoJG4tPnR5cGUhPU9QX0hPT0spdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdJbnZhbGlkIGxhYmVsJyk7LS0keC0+aG9va0xldmVsO31lbHNle2FycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50KSk7aWYoJHR0PT1PUF9BU1NJR04pZW5kKCRvcGVyYW5kcyktPmFzc2lnbk9wPSR0aGlzLT50LT5jdXJyZW50VG9rZW4oKS0+YXNzaWduT3A7ZWxzZSsrJHgtPmhvb2tMZXZlbDt9JHRoaXMtPnQtPnNjYW5PcGVyYW5kPXRydWU7YnJlYWs7Y2FzZSBLRVlXT1JEX0lOOmlmKCR4LT5pbkZvckxvb3BJbml0JiYhJHgtPmhvb2tMZXZlbCYmISR4LT5icmFja2V0TGV2ZWwmJiEkeC0+Y3VybHlMZXZlbCYmISR4LT5wYXJlbkxldmVsKXticmVhayAyO31jYXNlIE9QX0NPTU1BOmNhc2UgT1BfT1I6Y2FzZSBPUF9BTkQ6Y2FzZSBPUF9CSVRXSVNFX09SOmNhc2UgT1BfQklUV0lTRV9YT1I6Y2FzZSBPUF9CSVRXSVNFX0FORDpjYXNlIE9QX0VROmNhc2UgT1BfTkU6Y2FzZSBPUF9TVFJJQ1RfRVE6Y2FzZSBPUF9TVFJJQ1RfTkU6Y2FzZSBPUF9MVDpjYXNlIE9QX0xFOmNhc2UgT1BfR0U6Y2FzZSBPUF9HVDpjYXNlIEtFWVdPUkRfSU5TVEFOQ0VPRjpjYXNlIE9QX0xTSDpjYXNlIE9QX1JTSDpjYXNlIE9QX1VSU0g6Y2FzZSBPUF9QTFVTOmNhc2UgT1BfTUlOVVM6Y2FzZSBPUF9NVUw6Y2FzZSBPUF9ESVY6Y2FzZSBPUF9NT0Q6Y2FzZSBPUF9ET1Q6aWYoJHRoaXMtPnQtPnNjYW5PcGVyYW5kKWJyZWFrIDI7d2hpbGUoIWVtcHR5KCRvcGVyYXRvcnMpJiYkdGhpcy0+b3BQcmVjZWRlbmNlW2VuZCgkb3BlcmF0b3JzKS0+dHlwZV0+PSR0aGlzLT5vcFByZWNlZGVuY2VbJHR0XSkkdGhpcy0+cmVkdWNlKCRvcGVyYXRvcnMsJG9wZXJhbmRzKTtpZigkdHQ9PU9QX0RPVCl7JHRoaXMtPnQtPm11c3RNYXRjaChUT0tFTl9JREVOVElGSUVSKTthcnJheV9wdXNoKCRvcGVyYW5kcyxuZXcgSlNOb2RlKCR0aGlzLT50LE9QX0RPVCxhcnJheV9wb3AoJG9wZXJhbmRzKSxuZXcgSlNOb2RlKCR0aGlzLT50KSkpO31lbHNle2FycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50KSk7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPXRydWU7fWJyZWFrO2Nhc2UgS0VZV09SRF9ERUxFVEU6Y2FzZSBLRVlXT1JEX1ZPSUQ6Y2FzZSBLRVlXT1JEX1RZUEVPRjpjYXNlIE9QX05PVDpjYXNlIE9QX0JJVFdJU0VfTk9UOmNhc2UgT1BfVU5BUllfUExVUzpjYXNlIE9QX1VOQVJZX01JTlVTOmNhc2UgS0VZV09SRF9ORVc6aWYoISR0aGlzLT50LT5zY2FuT3BlcmFuZClicmVhayAyO2FycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50KSk7YnJlYWs7Y2FzZSBPUF9JTkNSRU1FTlQ6Y2FzZSBPUF9ERUNSRU1FTlQ6aWYoJHRoaXMtPnQtPnNjYW5PcGVyYW5kKXthcnJheV9wdXNoKCRvcGVyYXRvcnMsbmV3IEpTTm9kZSgkdGhpcy0+dCkpO31lbHNleyR0PSR0aGlzLT50LT50b2tlbnNbKCR0aGlzLT50LT50b2tlbkluZGV4KyR0aGlzLT50LT5sb29rYWhlYWQtMSkmM107aWYoJHQmJiR0LT5saW5lbm8hPSR0aGlzLT50LT5saW5lbm8pYnJlYWsgMjtpZighZW1wdHkoJG9wZXJhdG9ycykpe3doaWxlKCR0aGlzLT5vcFByZWNlZGVuY2VbZW5kKCRvcGVyYXRvcnMpLT50eXBlXT4kdGhpcy0+b3BQcmVjZWRlbmNlWyR0dF0pJHRoaXMtPnJlZHVjZSgkb3BlcmF0b3JzLCRvcGVyYW5kcyk7fSRuPW5ldyBKU05vZGUoJHRoaXMtPnQsJHR0LGFycmF5X3BvcCgkb3BlcmFuZHMpKTskbi0+cG9zdGZpeD10cnVlO2FycmF5X3B1c2goJG9wZXJhbmRzLCRuKTt9YnJlYWs7Y2FzZSBLRVlXT1JEX0ZVTkNUSU9OOmlmKCEkdGhpcy0+dC0+c2Nhbk9wZXJhbmQpYnJlYWsgMjthcnJheV9wdXNoKCRvcGVyYW5kcywkdGhpcy0+RnVuY3Rpb25EZWZpbml0aW9uKCR4LGZhbHNlLEVYUFJFU1NFRF9GT1JNKSk7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPWZhbHNlO2JyZWFrO2Nhc2UgS0VZV09SRF9OVUxMOmNhc2UgS0VZV09SRF9USElTOmNhc2UgS0VZV09SRF9UUlVFOmNhc2UgS0VZV09SRF9GQUxTRTpjYXNlIFRPS0VOX0lERU5USUZJRVI6Y2FzZSBUT0tFTl9OVU1CRVI6Y2FzZSBUT0tFTl9TVFJJTkc6Y2FzZSBUT0tFTl9SRUdFWFA6aWYoISR0aGlzLT50LT5zY2FuT3BlcmFuZClicmVhayAyO2FycmF5X3B1c2goJG9wZXJhbmRzLG5ldyBKU05vZGUoJHRoaXMtPnQpKTskdGhpcy0+dC0+c2Nhbk9wZXJhbmQ9ZmFsc2U7YnJlYWs7Y2FzZSBUT0tFTl9DT05EQ09NTUVOVF9NVUxUSUxJTkU6aWYoJHRoaXMtPnQtPnNjYW5PcGVyYW5kKWFycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50KSk7ZWxzZSBhcnJheV9wdXNoKCRvcGVyYW5kcyxuZXcgSlNOb2RlKCR0aGlzLT50KSk7YnJlYWs7Y2FzZSBPUF9MRUZUX0JSQUNLRVQ6aWYoJHRoaXMtPnQtPnNjYW5PcGVyYW5kKXskbj1uZXcgSlNOb2RlKCR0aGlzLT50LEpTX0FSUkFZX0lOSVQpO3doaWxlKCgkdHQ9JHRoaXMtPnQtPnBlZWsoKSkhPU9QX1JJR0hUX0JSQUNLRVQpe2lmKCR0dD09T1BfQ09NTUEpeyR0aGlzLT50LT5nZXQoKTskbi0+YWRkTm9kZShudWxsKTtjb250aW51ZTt9JG4tPmFkZE5vZGUoJHRoaXMtPkV4cHJlc3Npb24oJHgsT1BfQ09NTUEpKTtpZighJHRoaXMtPnQtPm1hdGNoKE9QX0NPTU1BKSlicmVhazt9JHRoaXMtPnQtPm11c3RNYXRjaChPUF9SSUdIVF9CUkFDS0VUKTthcnJheV9wdXNoKCRvcGVyYW5kcywkbik7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPWZhbHNlO31lbHNle2FycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50LEpTX0lOREVYKSk7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPXRydWU7KyskeC0+YnJhY2tldExldmVsO31icmVhaztjYXNlIE9QX1JJR0hUX0JSQUNLRVQ6aWYoJHRoaXMtPnQtPnNjYW5PcGVyYW5kfHwkeC0+YnJhY2tldExldmVsPT0kYmwpYnJlYWsgMjt3aGlsZSgkdGhpcy0+cmVkdWNlKCRvcGVyYXRvcnMsJG9wZXJhbmRzKS0+dHlwZSE9SlNfSU5ERVgpY29udGludWU7LS0keC0+YnJhY2tldExldmVsO2JyZWFrO2Nhc2UgT1BfTEVGVF9DVVJMWTppZighJHRoaXMtPnQtPnNjYW5PcGVyYW5kKWJyZWFrIDI7KyskeC0+Y3VybHlMZXZlbDskbj1uZXcgSlNOb2RlKCR0aGlzLT50LEpTX09CSkVDVF9JTklUKTt3aGlsZSghJHRoaXMtPnQtPm1hdGNoKE9QX1JJR0hUX0NVUkxZKSl7ZG97JHR0PSR0aGlzLT50LT5nZXQoKTskdHY9JHRoaXMtPnQtPmN1cnJlbnRUb2tlbigpLT52YWx1ZTtpZigoJHR2PT0nZ2V0J3x8JHR2PT0nc2V0JykmJiR0aGlzLT50LT5wZWVrKCk9PVRPS0VOX0lERU5USUZJRVIpe2lmKCR4LT5lY21hU3RyaWN0TW9kZSl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ0lsbGVnYWwgcHJvcGVydHkgYWNjZXNzb3InKTskbi0+YWRkTm9kZSgkdGhpcy0+RnVuY3Rpb25EZWZpbml0aW9uKCR4LHRydWUsRVhQUkVTU0VEX0ZPUk0pKTt9ZWxzZXtzd2l0Y2goJHR0KXtjYXNlIFRPS0VOX0lERU5USUZJRVI6Y2FzZSBUT0tFTl9OVU1CRVI6Y2FzZSBUT0tFTl9TVFJJTkc6JGlkPW5ldyBKU05vZGUoJHRoaXMtPnQpO2JyZWFrO2Nhc2UgT1BfUklHSFRfQ1VSTFk6aWYoJHgtPmVjbWFTdHJpY3RNb2RlKXRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignSWxsZWdhbCB0cmFpbGluZyAsJyk7YnJlYWsgMztkZWZhdWx0OnRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignSW52YWxpZCBwcm9wZXJ0eSBuYW1lJyk7fSR0aGlzLT50LT5tdXN0TWF0Y2goT1BfQ09MT04pOyRuLT5hZGROb2RlKG5ldyBKU05vZGUoJHRoaXMtPnQsSlNfUFJPUEVSVFlfSU5JVCwkaWQsJHRoaXMtPkV4cHJlc3Npb24oJHgsT1BfQ09NTUEpKSk7fX13aGlsZSgkdGhpcy0+dC0+bWF0Y2goT1BfQ09NTUEpKTskdGhpcy0+dC0+bXVzdE1hdGNoKE9QX1JJR0hUX0NVUkxZKTticmVhazt9YXJyYXlfcHVzaCgkb3BlcmFuZHMsJG4pOyR0aGlzLT50LT5zY2FuT3BlcmFuZD1mYWxzZTstLSR4LT5jdXJseUxldmVsO2JyZWFrO2Nhc2UgT1BfUklHSFRfQ1VSTFk6aWYoISR0aGlzLT50LT5zY2FuT3BlcmFuZCYmJHgtPmN1cmx5TGV2ZWwhPSRjbCl0aHJvdyBuZXcgRXhjZXB0aW9uKCdQQU5JQzogcmlnaHQgY3VybHkgYm90Y2gnKTticmVhayAyO2Nhc2UgT1BfTEVGVF9QQVJFTjppZigkdGhpcy0+dC0+c2Nhbk9wZXJhbmQpe2FycmF5X3B1c2goJG9wZXJhdG9ycyxuZXcgSlNOb2RlKCR0aGlzLT50LEpTX0dST1VQKSk7fWVsc2V7d2hpbGUoIWVtcHR5KCRvcGVyYXRvcnMpJiYkdGhpcy0+b3BQcmVjZWRlbmNlW2VuZCgkb3BlcmF0b3JzKS0+dHlwZV0+JHRoaXMtPm9wUHJlY2VkZW5jZVtLRVlXT1JEX05FV10pJHRoaXMtPnJlZHVjZSgkb3BlcmF0b3JzLCRvcGVyYW5kcyk7JG49ZW5kKCRvcGVyYXRvcnMpOyR0aGlzLT50LT5zY2FuT3BlcmFuZD10cnVlO2lmKCR0aGlzLT50LT5tYXRjaChPUF9SSUdIVF9QQVJFTikpe2lmKCRuJiYkbi0+dHlwZT09S0VZV09SRF9ORVcpe2FycmF5X3BvcCgkb3BlcmF0b3JzKTskbi0+YWRkTm9kZShhcnJheV9wb3AoJG9wZXJhbmRzKSk7fWVsc2V7JG49bmV3IEpTTm9kZSgkdGhpcy0+dCxKU19DQUxMLGFycmF5X3BvcCgkb3BlcmFuZHMpLG5ldyBKU05vZGUoJHRoaXMtPnQsSlNfTElTVCkpO31hcnJheV9wdXNoKCRvcGVyYW5kcywkbik7JHRoaXMtPnQtPnNjYW5PcGVyYW5kPWZhbHNlO2JyZWFrO31pZigkbiYmJG4tPnR5cGU9PUtFWVdPUkRfTkVXKSRuLT50eXBlPUpTX05FV19XSVRIX0FSR1M7ZWxzZSBhcnJheV9wdXNoKCRvcGVyYXRvcnMsbmV3IEpTTm9kZSgkdGhpcy0+dCxKU19DQUxMKSk7fSsrJHgtPnBhcmVuTGV2ZWw7YnJlYWs7Y2FzZSBPUF9SSUdIVF9QQVJFTjppZigkdGhpcy0+dC0+c2Nhbk9wZXJhbmR8fCR4LT5wYXJlbkxldmVsPT0kcGwpYnJlYWsgMjt3aGlsZSgoJHR0PSR0aGlzLT5yZWR1Y2UoJG9wZXJhdG9ycywkb3BlcmFuZHMpLT50eXBlKSE9SlNfR1JPVVAmJiR0dCE9SlNfQ0FMTCYmJHR0IT1KU19ORVdfV0lUSF9BUkdTKXtjb250aW51ZTt9aWYoJHR0IT1KU19HUk9VUCl7JG49ZW5kKCRvcGVyYW5kcyk7aWYoJG4tPnRyZWVOb2Rlc1sxXS0+dHlwZSE9T1BfQ09NTUEpJG4tPnRyZWVOb2Rlc1sxXT1uZXcgSlNOb2RlKCR0aGlzLT50LEpTX0xJU1QsJG4tPnRyZWVOb2Rlc1sxXSk7ZWxzZSAkbi0+dHJlZU5vZGVzWzFdLT50eXBlPUpTX0xJU1Q7fS0tJHgtPnBhcmVuTGV2ZWw7YnJlYWs7ZGVmYXVsdDpicmVhayAyO319aWYoJHgtPmhvb2tMZXZlbCE9JGhsKXRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignTWlzc2luZyA6IGFmdGVyID8nKTtpZigkeC0+cGFyZW5MZXZlbCE9JHBsKXRocm93ICR0aGlzLT50LT5uZXdTeW50YXhFcnJvcignTWlzc2luZyApIGluIHBhcmVudGhldGljYWwnKTtpZigkeC0+YnJhY2tldExldmVsIT0kYmwpdGhyb3cgJHRoaXMtPnQtPm5ld1N5bnRheEVycm9yKCdNaXNzaW5nIF0gaW4gaW5kZXggZXhwcmVzc2lvbicpO2lmKCR0aGlzLT50LT5zY2FuT3BlcmFuZCl0aHJvdyAkdGhpcy0+dC0+bmV3U3ludGF4RXJyb3IoJ01pc3Npbmcgb3BlcmFuZCcpOyR0aGlzLT50LT5zY2FuT3BlcmFuZD10cnVlOyR0aGlzLT50LT51bmdldCgpO3doaWxlKGNvdW50KCRvcGVyYXRvcnMpKSR0aGlzLT5yZWR1Y2UoJG9wZXJhdG9ycywkb3BlcmFuZHMpO3JldHVybiBhcnJheV9wb3AoJG9wZXJhbmRzKTt9cHJpdmF0ZSBmdW5jdGlvbiBQYXJlbkV4cHJlc3Npb24oJHgpeyR0aGlzLT50LT5tdXN0TWF0Y2goT1BfTEVGVF9QQVJFTik7JG49JHRoaXMtPkV4cHJlc3Npb24oJHgpOyR0aGlzLT50LT5tdXN0TWF0Y2goT1BfUklHSFRfUEFSRU4pO3JldHVybiAkbjt9cHJpdmF0ZSBmdW5jdGlvbiBuZXN0KCR4LCRub2RlLCRlbmQ9ZmFsc2Upe2FycmF5X3B1c2goJHgtPnN0bXRTdGFjaywkbm9kZSk7JG49JHRoaXMtPnN0YXRlbWVudCgkeCk7YXJyYXlfcG9wKCR4LT5zdG10U3RhY2spO2lmKCRlbmQpJHRoaXMtPnQtPm11c3RNYXRjaCgkZW5kKTtyZXR1cm4gJG47fXByaXZhdGUgZnVuY3Rpb24gcmVkdWNlKCYkb3BlcmF0b3JzLCYkb3BlcmFuZHMpeyRuPWFycmF5X3BvcCgkb3BlcmF0b3JzKTskb3A9JG4tPnR5cGU7JGFyaXR5PSR0aGlzLT5vcEFyaXR5WyRvcF07JGM9Y291bnQoJG9wZXJhbmRzKTtpZigkYXJpdHk9PS0yKXtpZigkYz49Mil7JGxlZnQ9JG9wZXJhbmRzWyRjLTJdO2lmKCRsZWZ0LT50eXBlPT0kb3ApeyRyaWdodD1hcnJheV9wb3AoJG9wZXJhbmRzKTskbGVmdC0+YWRkTm9kZSgkcmlnaHQpO3JldHVybiAkbGVmdDt9fSRhcml0eT0yO30kYT1hcnJheV9zcGxpY2UoJG9wZXJhbmRzLCRjLSRhcml0eSk7Zm9yKCRpPTA7JGk8JGFyaXR5OyRpKyspJG4tPmFkZE5vZGUoJGFbJGldKTskdGU9JHRoaXMtPnQtPmN1cnJlbnRUb2tlbigpLT5lbmQ7aWYoJG4tPmVuZDwkdGUpJG4tPmVuZD0kdGU7YXJyYXlfcHVzaCgkb3BlcmFuZHMsJG4pO3JldHVybiAkbjt9fWNsYXNzIEpTQ29tcGlsZXJDb250ZXh0e3B1YmxpYyAkaW5GdW5jdGlvbj1mYWxzZTtwdWJsaWMgJGluRm9yTG9vcEluaXQ9ZmFsc2U7cHVibGljICRlY21hU3RyaWN0TW9kZT1mYWxzZTtwdWJsaWMgJGJyYWNrZXRMZXZlbD0wO3B1YmxpYyAkY3VybHlMZXZlbD0wO3B1YmxpYyAkcGFyZW5MZXZlbD0wO3B1YmxpYyAkaG9va0xldmVsPTA7cHVibGljICRzdG10U3RhY2s9YXJyYXkoKTtwdWJsaWMgJGZ1bkRlY2xzPWFycmF5KCk7cHVibGljICR2YXJEZWNscz1hcnJheSgpO3B1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5GdW5jdGlvbil7JHRoaXMtPmluRnVuY3Rpb249JGluRnVuY3Rpb247fX1jbGFzcyBKU05vZGV7cHJpdmF0ZSAkdHlwZTtwcml2YXRlICR2YWx1ZTtwcml2YXRlICRsaW5lbm87cHJpdmF0ZSAkc3RhcnQ7cHJpdmF0ZSAkZW5kO3B1YmxpYyAkdHJlZU5vZGVzPWFycmF5KCk7cHVibGljICRmdW5EZWNscz1hcnJheSgpO3B1YmxpYyAkdmFyRGVjbHM9YXJyYXkoKTtwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHQsJHR5cGU9MCl7aWYoJHRva2VuPSR0LT5jdXJyZW50VG9rZW4oKSl7JHRoaXMtPnR5cGU9JHR5cGU/JHR5cGU6JHRva2VuLT50eXBlOyR0aGlzLT52YWx1ZT0kdG9rZW4tPnZhbHVlOyR0aGlzLT5saW5lbm89JHRva2VuLT5saW5lbm87JHRoaXMtPnN0YXJ0PSR0b2tlbi0+c3RhcnQ7JHRoaXMtPmVuZD0kdG9rZW4tPmVuZDt9ZWxzZXskdGhpcy0+dHlwZT0kdHlwZTskdGhpcy0+bGluZW5vPSR0LT5saW5lbm87fWlmKCgkbnVtYXJncz1mdW5jX251bV9hcmdzKCkpPjIpeyRhcmdzPWZ1bmNfZ2V0X2FyZ3MoKTtmb3IoJGk9MjskaTwkbnVtYXJnczskaSsrKSR0aGlzLT5hZGROb2RlKCRhcmdzWyRpXSk7fX1wdWJsaWMgZnVuY3Rpb24gX19zZXQoJG5hbWUsJHZhbHVlKXskdGhpcy0+JG5hbWU9JHZhbHVlO31wdWJsaWMgZnVuY3Rpb24gX19nZXQoJG5hbWUpe2lmKGlzc2V0KCR0aGlzLT4kbmFtZSkpcmV0dXJuICR0aGlzLT4kbmFtZTtyZXR1cm4gbnVsbDt9cHVibGljIGZ1bmN0aW9uIGFkZE5vZGUoJG5vZGUpeyR0aGlzLT50cmVlTm9kZXNbXT0kbm9kZTt9fWNsYXNzIEpTVG9rZW5pemVye3ByaXZhdGUgJGN1cnNvcj0wO3ByaXZhdGUgJHNvdXJjZTtwdWJsaWMgJHRva2Vucz1hcnJheSgpO3B1YmxpYyAkdG9rZW5JbmRleD0wO3B1YmxpYyAkbG9va2FoZWFkPTA7cHVibGljICRzY2FuTmV3bGluZXM9ZmFsc2U7cHVibGljICRzY2FuT3BlcmFuZD10cnVlO3B1YmxpYyAkZmlsZW5hbWU7cHVibGljICRsaW5lbm87cHJpdmF0ZSAka2V5d29yZHM9YXJyYXkoJ2JyZWFrJywnY2FzZScsJ2NhdGNoJywnY29uc3QnLCdjb250aW51ZScsJ2RlYnVnZ2VyJywnZGVmYXVsdCcsJ2RlbGV0ZScsJ2RvJywnZWxzZScsJ2VudW0nLCdmYWxzZScsJ2ZpbmFsbHknLCdmb3InLCdmdW5jdGlvbicsJ2lmJywnaW4nLCdpbnN0YW5jZW9mJywnbmV3JywnbnVsbCcsJ3JldHVybicsJ3N3aXRjaCcsJ3RoaXMnLCd0aHJvdycsJ3RydWUnLCd0cnknLCd0eXBlb2YnLCd2YXInLCd2b2lkJywnd2hpbGUnLCd3aXRoJyk7cHJpdmF0ZSAkb3BUeXBlTmFtZXM9YXJyYXkoJzsnPT4nU0VNSUNPTE9OJywnLCc9PidDT01NQScsJz8nPT4nSE9PSycsJzonPT4nQ09MT04nLCd8fCc9PidPUicsJyYmJz0+J0FORCcsJ3wnPT4nQklUV0lTRV9PUicsJ14nPT4nQklUV0lTRV9YT1InLCcmJz0+J0JJVFdJU0VfQU5EJywnPT09Jz0+J1NUUklDVF9FUScsJz09Jz0+J0VRJywnPSc9PidBU1NJR04nLCchPT0nPT4nU1RSSUNUX05FJywnIT0nPT4nTkUnLCc8PCc9PidMU0gnLCc8PSc9PidMRScsJzwnPT4nTFQnLCc+Pj4nPT4nVVJTSCcsJz4+Jz0+J1JTSCcsJz49Jz0+J0dFJywnPic9PidHVCcsJysrJz0+J0lOQ1JFTUVOVCcsJy0tJz0+J0RFQ1JFTUVOVCcsJysnPT4nUExVUycsJy0nPT4nTUlOVVMnLCcqJz0+J01VTCcsJy8nPT4nRElWJywnJSc9PidNT0QnLCchJz0+J05PVCcsJ34nPT4nQklUV0lTRV9OT1QnLCcuJz0+J0RPVCcsJ1snPT4nTEVGVF9CUkFDS0VUJywnXSc9PidSSUdIVF9CUkFDS0VUJywneyc9PidMRUZUX0NVUkxZJywnfSc9PidSSUdIVF9DVVJMWScsJygnPT4nTEVGVF9QQVJFTicsJyknPT4nUklHSFRfUEFSRU4nLCdAKi8nPT4nQ09ORENPTU1FTlRfRU5EJyk7cHJpdmF0ZSAkYXNzaWduT3BzPWFycmF5KCd8JywnXicsJyYnLCc8PCcsJz4+JywnPj4+JywnKycsJy0nLCcqJywnLycsJyUnKTtwcml2YXRlICRvcFJlZ0V4cDtwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXskdGhpcy0+b3BSZWdFeHA9JyNeKCcuaW1wbG9kZSgnfCcsYXJyYXlfbWFwKCdwcmVnX3F1b3RlJyxhcnJheV9rZXlzKCR0aGlzLT5vcFR5cGVOYW1lcykpKS4nKSMnO2ZvcmVhY2goJHRoaXMtPm9wVHlwZU5hbWVzIGFzICRvcGVyYW5kPT4kbmFtZSlkZWZpbmUoJ09QXycuJG5hbWUsJG9wZXJhbmQpO2RlZmluZSgnT1BfVU5BUllfUExVUycsJ1UrJyk7ZGVmaW5lKCdPUF9VTkFSWV9NSU5VUycsJ1UtJyk7Zm9yZWFjaCgkdGhpcy0+a2V5d29yZHMgYXMgJGtleXdvcmQpZGVmaW5lKCdLRVlXT1JEXycuc3RydG91cHBlcigka2V5d29yZCksJGtleXdvcmQpO31wdWJsaWMgZnVuY3Rpb24gaW5pdCgkc291cmNlLCRmaWxlbmFtZT0nJywkbGluZW5vPTEpeyR0aGlzLT5zb3VyY2U9JHNvdXJjZTskdGhpcy0+ZmlsZW5hbWU9JGZpbGVuYW1lPyRmaWxlbmFtZTonW2lubGluZV0nOyR0aGlzLT5saW5lbm89JGxpbmVubzskdGhpcy0+Y3Vyc29yPTA7JHRoaXMtPnRva2Vucz1hcnJheSgpOyR0aGlzLT50b2tlbkluZGV4PTA7JHRoaXMtPmxvb2thaGVhZD0wOyR0aGlzLT5zY2FuTmV3bGluZXM9ZmFsc2U7JHRoaXMtPnNjYW5PcGVyYW5kPXRydWU7fXB1YmxpYyBmdW5jdGlvbiBnZXRJbnB1dCgkY2h1bmtzaXplKXtpZigkY2h1bmtzaXplKXJldHVybiBzdWJzdHIoJHRoaXMtPnNvdXJjZSwkdGhpcy0+Y3Vyc29yLCRjaHVua3NpemUpO3JldHVybiBzdWJzdHIoJHRoaXMtPnNvdXJjZSwkdGhpcy0+Y3Vyc29yKTt9cHVibGljIGZ1bmN0aW9uIGlzRG9uZSgpe3JldHVybiAkdGhpcy0+cGVlaygpPT1UT0tFTl9FTkQ7fXB1YmxpYyBmdW5jdGlvbiBtYXRjaCgkdHQpe3JldHVybiAkdGhpcy0+Z2V0KCk9PSR0dHx8JHRoaXMtPnVuZ2V0KCk7fXB1YmxpYyBmdW5jdGlvbiBtdXN0TWF0Y2goJHR0KXtpZighJHRoaXMtPm1hdGNoKCR0dCkpdGhyb3cgJHRoaXMtPm5ld1N5bnRheEVycm9yKCdVbmV4cGVjdGVkIHRva2VuOyB0b2tlbiAnLiR0dC4nIGV4cGVjdGVkJyk7cmV0dXJuICR0aGlzLT5jdXJyZW50VG9rZW4oKTt9cHVibGljIGZ1bmN0aW9uIHBlZWsoKXtpZigkdGhpcy0+bG9va2FoZWFkKXskbmV4dD0kdGhpcy0+dG9rZW5zWygkdGhpcy0+dG9rZW5JbmRleCskdGhpcy0+bG9va2FoZWFkKSYzXTtpZigkdGhpcy0+c2Nhbk5ld2xpbmVzJiYkbmV4dC0+bGluZW5vIT0kdGhpcy0+bGluZW5vKSR0dD1UT0tFTl9ORVdMSU5FO2Vsc2UgJHR0PSRuZXh0LT50eXBlO31lbHNleyR0dD0kdGhpcy0+Z2V0KCk7JHRoaXMtPnVuZ2V0KCk7fXJldHVybiAkdHQ7fXB1YmxpYyBmdW5jdGlvbiBwZWVrT25TYW1lTGluZSgpeyR0aGlzLT5zY2FuTmV3bGluZXM9dHJ1ZTskdHQ9JHRoaXMtPnBlZWsoKTskdGhpcy0+c2Nhbk5ld2xpbmVzPWZhbHNlO3JldHVybiAkdHQ7fXB1YmxpYyBmdW5jdGlvbiBjdXJyZW50VG9rZW4oKXtpZighZW1wdHkoJHRoaXMtPnRva2VucykpcmV0dXJuICR0aGlzLT50b2tlbnNbJHRoaXMtPnRva2VuSW5kZXhdO31wdWJsaWMgZnVuY3Rpb24gZ2V0KCRjaHVua3NpemU9MTAwMCl7d2hpbGUoJHRoaXMtPmxvb2thaGVhZCl7JHRoaXMtPmxvb2thaGVhZC0tOyR0aGlzLT50b2tlbkluZGV4PSgkdGhpcy0+dG9rZW5JbmRleCsxKSYzOyR0b2tlbj0kdGhpcy0+dG9rZW5zWyR0aGlzLT50b2tlbkluZGV4XTtpZigkdG9rZW4tPnR5cGUhPVRPS0VOX05FV0xJTkV8fCR0aGlzLT5zY2FuTmV3bGluZXMpcmV0dXJuICR0b2tlbi0+dHlwZTt9JGNvbmRpdGlvbmFsX2NvbW1lbnQ9ZmFsc2U7d2hpbGUodHJ1ZSl7JGlucHV0PSR0aGlzLT5nZXRJbnB1dCgkY2h1bmtzaXplKTskcmU9JHRoaXMtPnNjYW5OZXdsaW5lcz8nL15bIFxyXHRdKy8nOicvXlxzKy8nO2lmKHByZWdfbWF0Y2goJHJlLCRpbnB1dCwkbWF0Y2gpKXskc3BhY2VzPSRtYXRjaFswXTskc3BhY2VsZW49c3RybGVuKCRzcGFjZXMpOyR0aGlzLT5jdXJzb3IrPSRzcGFjZWxlbjtpZighJHRoaXMtPnNjYW5OZXdsaW5lcykkdGhpcy0+bGluZW5vKz1zdWJzdHJfY291bnQoJHNwYWNlcywiXG4iKTtpZigkc3BhY2VsZW49PSRjaHVua3NpemUpY29udGludWU7JGlucHV0PSR0aGlzLT5nZXRJbnB1dCgkY2h1bmtzaXplKTtpZigkaW5wdXQ9PScnfHwkaW5wdXRbMF0hPScvJylicmVhazt9aWYoIXByZWdfbWF0Y2goJy9eXC8oPzpcKihAKD86Y2Nfb258aWZ8ZWxpZnxlbHNlfGVuZCkpPyg/Oi58XG4pKj9cKlwvfFwvLiopLycsJGlucHV0LCRtYXRjaCkpe2lmKCEkY2h1bmtzaXplKWJyZWFrOyRjaHVua3NpemU9bnVsbDtjb250aW51ZTt9aWYoIWVtcHR5KCRtYXRjaFsxXSkpeyRjb25kaXRpb25hbF9jb21tZW50PXRydWU7YnJlYWs7fWVsc2V7JHRoaXMtPmN1cnNvcis9c3RybGVuKCRtYXRjaFswXSk7JHRoaXMtPmxpbmVubys9c3Vic3RyX2NvdW50KCRtYXRjaFswXSwiXG4iKTt9fWlmKCRpbnB1dD09JycpeyR0dD1UT0tFTl9FTkQ7JG1hdGNoPWFycmF5KCcnKTt9ZWxzZWlmKCRjb25kaXRpb25hbF9jb21tZW50KXskdHQ9VE9LRU5fQ09ORENPTU1FTlRfTVVMVElMSU5FO31lbHNle3N3aXRjaCgkaW5wdXRbMF0pe2Nhc2UgJzAnOmNhc2UgJzEnOmNhc2UgJzInOmNhc2UgJzMnOmNhc2UgJzQnOmNhc2UgJzUnOmNhc2UgJzYnOmNhc2UgJzcnOmNhc2UgJzgnOmNhc2UgJzknOmlmKHByZWdfbWF0Y2goJy9eXGQrXC5cZCooPzpbZUVdWy0rXT9cZCspP3xeXGQrKD86XC5cZCopP1tlRV1bLStdP1xkKy8nLCRpbnB1dCwkbWF0Y2gpKXskdHQ9VE9LRU5fTlVNQkVSO31lbHNlaWYocHJlZ19tYXRjaCgnL14wW3hYXVtcZGEtZkEtRl0rfF4wWzAtN10qfF5cZCsvJywkaW5wdXQsJG1hdGNoKSl7JHR0PVRPS0VOX05VTUJFUjt9YnJlYWs7Y2FzZSAnIic6Y2FzZSAiJyI6aWYocHJlZ19tYXRjaCgnL14iKD86XFxcXCg/Oi58XHI/XG4pfFteXFxcXCJcclxuXSkqInxeXCcoPzpcXFxcKD86Lnxccj9cbil8W15cXFxcXCdcclxuXSkqXCcvJywkaW5wdXQsJG1hdGNoKSl7JHR0PVRPS0VOX1NUUklORzt9ZWxzZXtpZigkY2h1bmtzaXplKXJldHVybiAkdGhpcy0+Z2V0KG51bGwpO3Rocm93ICR0aGlzLT5uZXdTeW50YXhFcnJvcignVW50ZXJtaW5hdGVkIHN0cmluZyBsaXRlcmFsJyk7fWJyZWFrO2Nhc2UgJy8nOmlmKCR0aGlzLT5zY2FuT3BlcmFuZCYmcHJlZ19tYXRjaCgnL15cLygoPzpcXFxcLnxcWyg/OlxcXFwufFteXF1dKSpcXXxbXlwvXSkrKVwvKFtnaW15XSopLycsJGlucHV0LCRtYXRjaCkpeyR0dD1UT0tFTl9SRUdFWFA7YnJlYWs7fWNhc2UgJ3wnOmNhc2UgJ14nOmNhc2UgJyYnOmNhc2UgJzwnOmNhc2UgJz4nOmNhc2UgJysnOmNhc2UgJy0nOmNhc2UgJyonOmNhc2UgJyUnOmNhc2UgJz0nOmNhc2UgJyEnOnByZWdfbWF0Y2goJHRoaXMtPm9wUmVnRXhwLCRpbnB1dCwkbWF0Y2gpOyRvcD0kbWF0Y2hbMF07aWYoaW5fYXJyYXkoJG9wLCR0aGlzLT5hc3NpZ25PcHMpJiYkaW5wdXRbc3RybGVuKCRvcCldPT0nPScpeyR0dD1PUF9BU1NJR047JG1hdGNoWzBdLj0nPSc7fWVsc2V7JHR0PSRvcDtpZigkdGhpcy0+c2Nhbk9wZXJhbmQpe2lmKCRvcD09T1BfUExVUykkdHQ9T1BfVU5BUllfUExVUztlbHNlaWYoJG9wPT1PUF9NSU5VUykkdHQ9T1BfVU5BUllfTUlOVVM7fSRvcD1udWxsO31icmVhaztjYXNlICcuJzppZihwcmVnX21hdGNoKCcvXlwuXGQrKD86W2VFXVstK10/XGQrKT8vJywkaW5wdXQsJG1hdGNoKSl7JHR0PVRPS0VOX05VTUJFUjticmVhazt9Y2FzZSAnOyc6Y2FzZSAnLCc6Y2FzZSAnPyc6Y2FzZSAnOic6Y2FzZSAnfic6Y2FzZSAnWyc6Y2FzZSAnXSc6Y2FzZSAneyc6Y2FzZSAnfSc6Y2FzZSAnKCc6Y2FzZSAnKSc6JG1hdGNoPWFycmF5KCRpbnB1dFswXSk7JHR0PSRpbnB1dFswXTticmVhaztjYXNlICdAJzp0aHJvdyAkdGhpcy0+bmV3U3ludGF4RXJyb3IoJ0lsbGVnYWwgdG9rZW4nKTticmVhaztjYXNlICJcbiI6aWYoJHRoaXMtPnNjYW5OZXdsaW5lcyl7JG1hdGNoPWFycmF5KCJcbiIpOyR0dD1UT0tFTl9ORVdMSU5FO31lbHNlIHRocm93ICR0aGlzLT5uZXdTeW50YXhFcnJvcignSWxsZWdhbCB0b2tlbicpO2JyZWFrO2RlZmF1bHQ6aWYocHJlZ19tYXRjaCgnL15bJFx3XSsvJywkaW5wdXQsJG1hdGNoKSl7JHR0PWluX2FycmF5KCRtYXRjaFswXSwkdGhpcy0+a2V5d29yZHMpPyRtYXRjaFswXTpUT0tFTl9JREVOVElGSUVSO31lbHNlIHRocm93ICR0aGlzLT5uZXdTeW50YXhFcnJvcignSWxsZWdhbCB0b2tlbicpO319JHRoaXMtPnRva2VuSW5kZXg9KCR0aGlzLT50b2tlbkluZGV4KzEpJjM7aWYoIWlzc2V0KCR0aGlzLT50b2tlbnNbJHRoaXMtPnRva2VuSW5kZXhdKSkkdGhpcy0+dG9rZW5zWyR0aGlzLT50b2tlbkluZGV4XT1uZXcgSlNUb2tlbigpOyR0b2tlbj0kdGhpcy0+dG9rZW5zWyR0aGlzLT50b2tlbkluZGV4XTskdG9rZW4tPnR5cGU9JHR0O2lmKCR0dD09T1BfQVNTSUdOKSR0b2tlbi0+YXNzaWduT3A9JG9wOyR0b2tlbi0+c3RhcnQ9JHRoaXMtPmN1cnNvcjskdG9rZW4tPnZhbHVlPSRtYXRjaFswXTskdGhpcy0+Y3Vyc29yKz1zdHJsZW4oJG1hdGNoWzBdKTskdG9rZW4tPmVuZD0kdGhpcy0+Y3Vyc29yOyR0b2tlbi0+bGluZW5vPSR0aGlzLT5saW5lbm87cmV0dXJuICR0dDt9cHVibGljIGZ1bmN0aW9uIHVuZ2V0KCl7aWYoKyskdGhpcy0+bG9va2FoZWFkPT00KXRocm93ICR0aGlzLT5uZXdTeW50YXhFcnJvcignUEFOSUM6IHRvbyBtdWNoIGxvb2thaGVhZCEnKTskdGhpcy0+dG9rZW5JbmRleD0oJHRoaXMtPnRva2VuSW5kZXgtMSkmMzt9cHVibGljIGZ1bmN0aW9uIG5ld1N5bnRheEVycm9yKCRtKXtyZXR1cm4gbmV3IEV4Y2VwdGlvbignUGFyc2UgZXJyb3I6ICcuJG0uJyBpbiBmaWxlIFwnJy4kdGhpcy0+ZmlsZW5hbWUuJ1wnIG9uIGxpbmUgJy4kdGhpcy0+bGluZW5vKTt9fWNsYXNzIEpTVG9rZW57cHVibGljICR0eXBlO3B1YmxpYyAkdmFsdWU7cHVibGljICRzdGFydDtwdWJsaWMgJGVuZDtwdWJsaWMgJGxpbmVubztwdWJsaWMgJGFzc2lnbk9wO30gPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/Minify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgcmVxdWlyZV9vbmNlICdNaW5pZnkvU291cmNlLnBocCc7Y2xhc3MgTWluaWZ5e2NvbnN0IFRZUEVfQ1NTPSd0ZXh0L2Nzcyc7Y29uc3QgVFlQRV9IVE1MPSd0ZXh0L2h0bWwnO2NvbnN0IFRZUEVfSlM9J2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCc7cHVibGljIHN0YXRpYyBmdW5jdGlvbiB1c2VTZXJ2ZXJDYWNoZSgkcGF0aD1udWxsKXtzZWxmOjpzZXRDYWNoZSgkcGF0aCk7fXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0Q2FjaGUoJGNhY2hlPScnKXtpZihpc19zdHJpbmcoJGNhY2hlKSl7cmVxdWlyZV9vbmNlICdNaW5pZnkvQ2FjaGUvRmlsZS5waHAnO3NlbGY6OiRfY2FjaGU9bmV3IE1pbmlmeV9DYWNoZV9GaWxlKCRjYWNoZSk7fWVsc2V7c2VsZjo6JF9jYWNoZT0kY2FjaGU7fX1wcml2YXRlIHN0YXRpYyAkX2NhY2hlPW51bGw7cHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXJ2ZSgkY29udHJvbGxlciwkb3B0aW9ucz1hcnJheSgpKXtpZihpc19zdHJpbmcoJGNvbnRyb2xsZXIpKXskY2xhc3M9J01pbmlmeV9Db250cm9sbGVyXycuJGNvbnRyb2xsZXI7aWYoIWNsYXNzX2V4aXN0cygkY2xhc3MsZmFsc2UpKXtyZXF1aXJlX29uY2UiTWluaWZ5L0NvbnRyb2xsZXIveyRjb250cm9sbGVyfS5waHAiO30kY29udHJvbGxlcj1uZXcgJGNsYXNzKCk7fSRvcHRpb25zPSRjb250cm9sbGVyLT5zZXR1cFNvdXJjZXMoJG9wdGlvbnMpOyRvcHRpb25zPSRjb250cm9sbGVyLT5hbmFseXplU291cmNlcygkb3B0aW9ucyk7c2VsZjo6JF9vcHRpb25zPSRjb250cm9sbGVyLT5taXhJbkRlZmF1bHRPcHRpb25zKCRvcHRpb25zKTtpZighJGNvbnRyb2xsZXItPnNvdXJjZXMpe2lmKCFzZWxmOjokX29wdGlvbnNbJ3F1aWV0J10pe2hlYWRlcihzZWxmOjokX29wdGlvbnNbJ2JhZFJlcXVlc3RIZWFkZXInXSk7ZWNobyBzZWxmOjokX29wdGlvbnNbJ2JhZFJlcXVlc3RIZWFkZXInXTtyZXR1cm47fWVsc2V7bGlzdCgsJHN0YXR1c0NvZGUpPWV4cGxvZGUoJyAnLHNlbGY6OiRfb3B0aW9uc1snYmFkUmVxdWVzdEhlYWRlciddKTtyZXR1cm4gYXJyYXkoJ3N1Y2Nlc3MnPT5mYWxzZSwnc3RhdHVzQ29kZSc9PihpbnQpJHN0YXR1c0NvZGUsJ2NvbnRlbnQnPT4nJywnaGVhZGVycyc9PmFycmF5KCkpO319c2VsZjo6JF9jb250cm9sbGVyPSRjb250cm9sbGVyO2lmKG51bGw9PT1zZWxmOjokX29wdGlvbnNbJ3NldEV4cGlyZXMnXSl7cmVxdWlyZV9vbmNlICdIVFRQL0NvbmRpdGlvbmFsR2V0LnBocCc7JGNnPW5ldyBIVFRQX0NvbmRpdGlvbmFsR2V0KGFycmF5KCdsYXN0TW9kaWZpZWRUaW1lJz0+c2VsZjo6JF9vcHRpb25zWydsYXN0TW9kaWZpZWRUaW1lJ10sJ2lzUHVibGljJz0+c2VsZjo6JF9vcHRpb25zWydpc1B1YmxpYyddKSk7aWYoJGNnLT5jYWNoZUlzVmFsaWQpe2lmKCFzZWxmOjokX29wdGlvbnNbJ3F1aWV0J10peyRjZy0+c2VuZEhlYWRlcnMoKTtyZXR1cm47fWVsc2V7cmV0dXJuIGFycmF5KCdzdWNjZXNzJz0+dHJ1ZSwnc3RhdHVzQ29kZSc9PjMwNCwnY29udGVudCc9PicnLCdoZWFkZXJzJz0+YXJyYXkoKSk7fX1lbHNleyRoZWFkZXJzPSRjZy0+Z2V0SGVhZGVycygpO3Vuc2V0KCRjZyk7fX1lbHNleyRwcml2YWN5PXNlbGY6OiRfb3B0aW9uc1snaXNQdWJsaWMnXT8ncHVibGljJzoncHJpdmF0ZSc7JGhlYWRlcnM9YXJyYXkoJ0NhY2hlLUNvbnRyb2wnPT4kcHJpdmFjeS4nLCBtYXgtYWdlPScuKHNlbGY6OiRfb3B0aW9uc1snc2V0RXhwaXJlcyddLSRfU0VSVkVSWydSRVFVRVNUX1RJTUUnXSksJ0V4cGlyZXMnPT5nbWRhdGUoJ0QsIGQgTSBZIEg6aTpzIFxHXE1cVCcsc2VsZjo6JF9vcHRpb25zWydzZXRFeHBpcmVzJ10pKTt9aWYoc2VsZjo6JF9vcHRpb25zWydlbmNvZGVPdXRwdXQnXSl7aWYoc2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXSE9PW51bGwpeyRjb250ZW50RW5jb2Rpbmc9c2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXTt9ZWxzZXtyZXF1aXJlX29uY2UgJ0hUVFAvRW5jb2Rlci5waHAnO2xpc3Qoc2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXSwkY29udGVudEVuY29kaW5nKT1IVFRQX0VuY29kZXI6OmdldEFjY2VwdGVkRW5jb2RpbmcoZmFsc2UpO319ZWxzZXtzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddPScnO31pZihudWxsIT09c2VsZjo6JF9jYWNoZSl7JGNhY2hlSWQ9J21pbmlmeV8nLnNlbGY6Ol9nZXRDYWNoZUlkKCk7JGVuY29kaW5nRXh0ZW5zaW9uPXNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTWV0aG9kJ10/KCdkZWZsYXRlJz09PXNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTWV0aG9kJ10/Jy56ZCc6Jy56ZycpOicnOyRmdWxsQ2FjaGVJZD0kY2FjaGVJZC4kZW5jb2RpbmdFeHRlbnNpb247JGNhY2hlSXNSZWFkeT1zZWxmOjokX2NhY2hlLT5pc1ZhbGlkKCRmdWxsQ2FjaGVJZCxzZWxmOjokX29wdGlvbnNbJ2xhc3RNb2RpZmllZFRpbWUnXSk7aWYoJGNhY2hlSXNSZWFkeSl7JGNhY2hlQ29udGVudExlbmd0aD1zZWxmOjokX2NhY2hlLT5nZXRTaXplKCRmdWxsQ2FjaGVJZCk7fWVsc2V7JGNvbnRlbnQ9c2VsZjo6X2NvbWJpbmVNaW5pZnkoKTtzZWxmOjokX2NhY2hlLT5zdG9yZSgkY2FjaGVJZCwkY29udGVudCk7c2VsZjo6JF9jYWNoZS0+c3RvcmUoJGNhY2hlSWQuJy56ZCcsZ3pkZWZsYXRlKCRjb250ZW50LHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTGV2ZWwnXSkpO3NlbGY6OiRfY2FjaGUtPnN0b3JlKCRjYWNoZUlkLicuemcnLGd6ZW5jb2RlKCRjb250ZW50LHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTGV2ZWwnXSkpO319ZWxzZXskY2FjaGVJc1JlYWR5PWZhbHNlOyRjb250ZW50PXNlbGY6Ol9jb21iaW5lTWluaWZ5KCk7fWlmKCEkY2FjaGVJc1JlYWR5JiZzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddKXskY29udGVudD0oJ2RlZmxhdGUnPT09c2VsZjo6JF9vcHRpb25zWydlbmNvZGVNZXRob2QnXSk/Z3pkZWZsYXRlKCRjb250ZW50LHNlbGY6OiRfb3B0aW9uc1snZW5jb2RlTGV2ZWwnXSk6Z3plbmNvZGUoJGNvbnRlbnQsc2VsZjo6JF9vcHRpb25zWydlbmNvZGVMZXZlbCddKTt9JGhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ109JGNhY2hlSXNSZWFkeT8kY2FjaGVDb250ZW50TGVuZ3RoOnN0cmxlbigkY29udGVudCk7JGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddPXNlbGY6OiRfb3B0aW9uc1snY29udGVudFR5cGVDaGFyc2V0J10/c2VsZjo6JF9vcHRpb25zWydjb250ZW50VHlwZSddLic7IGNoYXJzZXQ9Jy5zZWxmOjokX29wdGlvbnNbJ2NvbnRlbnRUeXBlQ2hhcnNldCddOnNlbGY6OiRfb3B0aW9uc1snY29udGVudFR5cGUnXTtpZihzZWxmOjokX29wdGlvbnNbJ2VuY29kZU1ldGhvZCddIT09JycpeyRoZWFkZXJzWydDb250ZW50LUVuY29kaW5nJ109JGNvbnRlbnRFbmNvZGluZzskaGVhZGVyc1snVmFyeSddPSdBY2NlcHQtRW5jb2RpbmcnO31pZighc2VsZjo6JF9vcHRpb25zWydxdWlldCddKXtmb3JlYWNoKCRoZWFkZXJzIGFzICRuYW1lPT4kdmFsKXtoZWFkZXIoJG5hbWUuJzogJy4kdmFsKTt9aWYoJGNhY2hlSXNSZWFkeSl7c2VsZjo6JF9jYWNoZS0+ZGlzcGxheSgkZnVsbENhY2hlSWQpO31lbHNle2VjaG8gJGNvbnRlbnQ7fX1lbHNle3JldHVybiBhcnJheSgnc3VjY2Vzcyc9PnRydWUsJ3N0YXR1c0NvZGUnPT4yMDAsJ2NvbnRlbnQnPT4kY2FjaGVJc1JlYWR5P3NlbGY6OiRfY2FjaGUtPmZldGNoKCRmdWxsQ2FjaGVJZCk6JGNvbnRlbnQsJ2hlYWRlcnMnPT4kaGVhZGVycyk7fX1wcm90ZWN0ZWQgc3RhdGljICRfY29udHJvbGxlcj1udWxsO3Byb3RlY3RlZCBzdGF0aWMgJF9vcHRpb25zPW51bGw7cHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfY29tYmluZU1pbmlmeSgpeyR0eXBlPXNlbGY6OiRfb3B0aW9uc1snY29udGVudFR5cGUnXTskaW1wbG9kZVNlcGFyYXRvcj0oJHR5cGU9PT1zZWxmOjpUWVBFX0pTKT8nOyc6Jyc7JGRlZmF1bHRPcHRpb25zPWlzc2V0KHNlbGY6OiRfb3B0aW9uc1snbWluaWZpZXJPcHRpb25zJ11bJHR5cGVdKT9zZWxmOjokX29wdGlvbnNbJ21pbmlmaWVyT3B0aW9ucyddWyR0eXBlXTphcnJheSgpOyRkZWZhdWx0TWluaWZpZXI9aXNzZXQoc2VsZjo6JF9vcHRpb25zWydtaW5pZmllcnMnXVskdHlwZV0pP3NlbGY6OiRfb3B0aW9uc1snbWluaWZpZXJzJ11bJHR5cGVdOmZhbHNlO2lmKE1pbmlmeV9Tb3VyY2U6OmhhdmVOb01pbmlmeVByZWZzKHNlbGY6OiRfY29udHJvbGxlci0+c291cmNlcykpe2ZvcmVhY2goc2VsZjo6JF9jb250cm9sbGVyLT5zb3VyY2VzIGFzICRzb3VyY2UpeyRwaWVjZXNbXT0kc291cmNlLT5nZXRDb250ZW50KCk7fSRjb250ZW50PWltcGxvZGUoJGltcGxvZGVTZXBhcmF0b3IsJHBpZWNlcyk7aWYoJGRlZmF1bHRNaW5pZmllcil7c2VsZjo6JF9jb250cm9sbGVyLT5sb2FkTWluaWZpZXIoJGRlZmF1bHRNaW5pZmllcik7JGNvbnRlbnQ9Y2FsbF91c2VyX2Z1bmMoJGRlZmF1bHRNaW5pZmllciwkY29udGVudCwkZGVmYXVsdE9wdGlvbnMpO319ZWxzZXtmb3JlYWNoKHNlbGY6OiRfY29udHJvbGxlci0+c291cmNlcyBhcyAkc291cmNlKXskbWluaWZpZXI9KG51bGwhPT0kc291cmNlLT5taW5pZmllcik/JHNvdXJjZS0+bWluaWZpZXI6JGRlZmF1bHRNaW5pZmllcjskb3B0aW9ucz0obnVsbCE9PSRzb3VyY2UtPm1pbmlmeU9wdGlvbnMpP2FycmF5X21lcmdlKCRkZWZhdWx0T3B0aW9ucywkc291cmNlLT5taW5pZnlPcHRpb25zKTokZGVmYXVsdE9wdGlvbnM7aWYoJGRlZmF1bHRNaW5pZmllcil7c2VsZjo6JF9jb250cm9sbGVyLT5sb2FkTWluaWZpZXIoJG1pbmlmaWVyKTskcGllY2VzW109Y2FsbF91c2VyX2Z1bmMoJG1pbmlmaWVyLCRzb3VyY2UtPmdldENvbnRlbnQoKSwkb3B0aW9ucyk7fWVsc2V7JHBpZWNlc1tdPSRzb3VyY2UtPmdldENvbnRlbnQoKTt9fSRjb250ZW50PWltcGxvZGUoJGltcGxvZGVTZXBhcmF0b3IsJHBpZWNlcyk7fWlmKHNlbGY6OiRfb3B0aW9uc1sncG9zdHByb2Nlc3NvclJlcXVpcmUnXSl7cmVxdWlyZV9vbmNlIHNlbGY6OiRfb3B0aW9uc1sncG9zdHByb2Nlc3NvclJlcXVpcmUnXTt9aWYoc2VsZjo6JF9vcHRpb25zWydwb3N0cHJvY2Vzc29yJ10peyRjb250ZW50PWNhbGxfdXNlcl9mdW5jKHNlbGY6OiRfb3B0aW9uc1sncG9zdHByb2Nlc3NvciddLCRjb250ZW50LCR0eXBlKTt9cmV0dXJuICRjb250ZW50O31wcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9nZXRDYWNoZUlkKCl7cmV0dXJuIG1kNShzZXJpYWxpemUoYXJyYXkoTWluaWZ5X1NvdXJjZTo6Z2V0RGlnZXN0KHNlbGY6OiRfY29udHJvbGxlci0+c291cmNlcyksc2VsZjo6JF9vcHRpb25zWydtaW5pZmllcnMnXSxzZWxmOjokX29wdGlvbnNbJ21pbmlmaWVyT3B0aW9ucyddKSkpO319]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Minify/CSS.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgTWluaWZ5X0NTU3twdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1pbmlmeSgkY3NzLCRvcHRpb25zPWFycmF5KCkpe2lmKGlzc2V0KCRvcHRpb25zWydwcmVzZXJ2ZUNvbW1lbnRzJ10pJiYhJG9wdGlvbnNbJ3ByZXNlcnZlQ29tbWVudHMnXSl7cmV0dXJuIHNlbGY6Ol9taW5pZnkoJGNzcywkb3B0aW9ucyk7fSRyZXQ9Jyc7d2hpbGUoMSl7bGlzdCgkYmVmb3JlQ29tbWVudCwkY29tbWVudCwkYWZ0ZXJDb21tZW50KT1zZWxmOjpfbmV4dFl1aUNvbW1lbnQoJGNzcyk7JHJldC49c2VsZjo6X21pbmlmeSgkYmVmb3JlQ29tbWVudCwkb3B0aW9ucyk7aWYoZmFsc2U9PT0kY29tbWVudCl7YnJlYWs7fSRyZXQuPSRjb21tZW50OyRjc3M9JGFmdGVyQ29tbWVudDt9cmV0dXJuICRyZXQ7fXByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9uZXh0WXVpQ29tbWVudCgkaW4pe3JldHVybigoZmFsc2UhPT0oJHN0YXJ0PXN0cnBvcygkaW4sJy8qIScpKSkmJihmYWxzZSE9PSgkZW5kPXN0cnBvcygkaW4sJyovJywkc3RhcnQrMykpKSk/YXJyYXkoc3Vic3RyKCRpbiwwLCRzdGFydCksIlxuLyoiLnN1YnN0cigkaW4sJHN0YXJ0KzMsJGVuZC0kc3RhcnQtMSkuIlxuIixzdWJzdHIoJGluLC0oc3RybGVuKCRpbiktJGVuZC0yKSkpOmFycmF5KCRpbixmYWxzZSxmYWxzZSk7fXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX21pbmlmeSgkY3NzLCRvcHRpb25zKXskY3NzPXByZWdfcmVwbGFjZSgnLz5cXC9cXCpcXHMqXFwqXFwvLycsJz4vKmtlZXAqLycsJGNzcyk7JGNzcz1wcmVnX3JlcGxhY2UoJy9cXC9cXCpcXHMqXFwqXFwvXFxzKjovJywnLyprZWVwKi86JywkY3NzKTskY3NzPXByZWdfcmVwbGFjZSgnLzpcXHMqXFwvXFwqXFxzKlxcKlxcLy8nLCc6LyprZWVwKi8nLCRjc3MpO3NlbGY6OiRfaW5IYWNrPWZhbHNlOyRjc3M9cHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXFxzKlxcL1xcKihbXFxzXFxTXSo/KVxcKlxcL1xccyovJyxhcnJheSgnTWluaWZ5X0NTUycsJ19jb21tZW50Q0InKSwkY3NzKTskY3NzPXByZWdfcmVwbGFjZSgnL1xzKy8nLCcgJywkY3NzKTskY3NzPXN0cl9yZXBsYWNlKCcvKmtlZXAqLycsJy8qKi8nLCRjc3MpOyRjc3M9cHJlZ19yZXBsYWNlKCcvXFxzKntcXHMqLycsJ3snLCRjc3MpOyRjc3M9cHJlZ19yZXBsYWNlKCcvOz9cXHMqfVxccyovJywnfScsJGNzcyk7JGNzcz1wcmVnX3JlcGxhY2UoJy9cXHMqO1xccyovJywnOycsJGNzcyk7JGNzcz1wcmVnX3JlcGxhY2UoJy91cmxcXChbXFxzXSooW15cXCldKz8pW1xcc10qXFwpLycsJ3VybCgkMSknLCRjc3MpOyRjc3M9cHJlZ19yZXBsYWNlKCcvXFxzKihbeztdKVxccyooW1xcd1xcLV0rKVxccyo6XFxzKlxcYi8nLCckMSQyOicsJGNzcyk7JGNzcz1wcmVnX3JlcGxhY2VfY2FsbGJhY2soJy8oPzpcXHMqW15+PissXFxzXStcXHMqWyw+K35dKStcXHMqW15+PissXFxzXSt7LycsYXJyYXkoJ01pbmlmeV9DU1MnLCdfc2VsZWN0b3JzQ0InKSwkY3NzKTskY3NzPXByZWdfcmVwbGFjZSgnLyhbXj1dKSMoW2EtZlxcZF0pXFwyKFthLWZcXGRdKVxcMyhbYS1mXFxkXSlcXDQoW1xccztcXH1dKS9pJywnJDEjJDIkMyQ0JDUnLCRjc3MpOyRyZXdyaXRlPWZhbHNlO2lmKGlzc2V0KCRvcHRpb25zWydwcmVwZW5kUmVsYXRpdmVQYXRoJ10pKXtzZWxmOjokX3RlbXBQcmVwZW5kPSRvcHRpb25zWydwcmVwZW5kUmVsYXRpdmVQYXRoJ107JHJld3JpdGU9dHJ1ZTt9ZWxzZWlmKGlzc2V0KCRvcHRpb25zWydjdXJyZW50UGF0aCddKSl7c2VsZjo6JF90ZW1wQ3VycmVudFBhdGg9JG9wdGlvbnNbJ2N1cnJlbnRQYXRoJ107JHJld3JpdGU9dHJ1ZTt9aWYoJHJld3JpdGUpeyRjc3M9cHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvQGltcG9ydCAoW1wnIl0pKC4qPylbXCciXVxccyo7LycsYXJyYXkoJ01pbmlmeV9DU1MnLCdfdXJsQ0InKSwkY3NzKTskY3NzPXByZWdfcmVwbGFjZV9jYWxsYmFjaygnL3VybFxcKChbXlxcKV0rKVxcKS8nLGFycmF5KCdNaW5pZnlfQ1NTJywnX3VybENCJyksJGNzcyk7fXNlbGY6OiRfdGVtcFByZXBlbmQ9c2VsZjo6JF90ZW1wQ3VycmVudFBhdGg9Jyc7cmV0dXJuIHRyaW0oJGNzcyk7fXByb3RlY3RlZCBzdGF0aWMgJF9pbkhhY2s9ZmFsc2U7cHJvdGVjdGVkIHN0YXRpYyAkX3RlbXBQcmVwZW5kPScnO3Byb3RlY3RlZCBzdGF0aWMgJF90ZW1wQ3VycmVudFBhdGg9Jyc7cHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfY29tbWVudENCKCRtKXskbT0kbVsxXTtpZigkbT09PSdrZWVwJyl7cmV0dXJuICcvKmtlZXAqLyc7fWlmKHNlbGY6OiRfaW5IYWNrKXtpZihwcmVnX21hdGNoKCcvXlxcL1xccyooXFxTW1xcc1xcU10rPylcXHMqXFwvXFwqLycsJG0sJG4pKXtzZWxmOjokX2luSGFjaz1mYWxzZTtyZXR1cm4iLyoveyRuWzFdfS8qa2VlcCovIjt9fWlmKHN1YnN0cigkbSwtMSk9PT0nXFwnKXtzZWxmOjokX2luSGFjaz10cnVlO3JldHVybiAnLypcXCovJzt9aWYoJG1bMF09PT0nLycpe3NlbGY6OiRfaW5IYWNrPXRydWU7cmV0dXJuICcvKi8qLyc7fWlmKHNlbGY6OiRfaW5IYWNrKXtzZWxmOjokX2luSGFjaz1mYWxzZTtyZXR1cm4gJy8qa2VlcCovJzt9cmV0dXJuICcnO31wcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9zZWxlY3RvcnNDQigkbSl7cmV0dXJuIHByZWdfcmVwbGFjZSgnL1xccyooWyw+K35dKVxccyovJywnJDEnLCRtWzBdKTt9cHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfdXJsQ0IoJG0peyRpc0ltcG9ydD0oMD09PXN0cnBvcygkbVswXSwnQGltcG9ydCcpKTtpZigkaXNJbXBvcnQpeyRxdW90ZT0kbVsxXTskdXJsPSRtWzJdO31lbHNleyRxdW90ZT0oJG1bMV1bMF09PT0nXCcnfHwkbVsxXVswXT09PSciJyk/JG1bMV1bMF06Jyc7JHVybD0oJHF1b3RlPT09JycpPyRtWzFdOnN1YnN0cigkbVsxXSwxLHN0cmxlbigkbVsxXSktMik7fWlmKCcvJyE9PSR1cmxbMF0pe2lmKHN0cnBvcygkdXJsLCcvLycpPjApe31lbHNle2lmKHNlbGY6OiRfdGVtcFByZXBlbmQpeyR1cmw9c2VsZjo6JF90ZW1wUHJlcGVuZC4kdXJsO31lbHNleyRwYXRoPXNlbGY6OiRfdGVtcEN1cnJlbnRQYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1Iuc3RydHIoJHVybCwnLycsRElSRUNUT1JZX1NFUEFSQVRPUik7JHBhdGg9c3Vic3RyKCRwYXRoLHN0cmxlbigkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKSk7JHVybD1zdHJ0cigkcGF0aCxESVJFQ1RPUllfU0VQQVJBVE9SLCcvJyk7JHVybD1zdHJfcmVwbGFjZSgnLy4vJywnLycsJHVybCk7fX19aWYoJGlzSW1wb3J0KXtyZXR1cm4iQGltcG9ydCB7JHF1b3RlfXskdXJsfXskcXVvdGV9OyI7fWVsc2V7cmV0dXJuInVybCh7JHF1b3RlfXskdXJsfXskcXVvdGV9KSI7fX19]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/HTML.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgTWluaWZ5X0hUTUx7cHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW5pZnkoJHN0cmluZywkb3B0aW9ucz1hcnJheSgpKXtpZihpc3NldCgkb3B0aW9uc1snY3NzTWluaWZpZXInXSkpe3NlbGY6OiRfY3NzTWluaWZpZXI9JG9wdGlvbnNbJ2Nzc01pbmlmaWVyJ107fWlmKGlzc2V0KCRvcHRpb25zWydqc01pbmlmaWVyJ10pKXtzZWxmOjokX2pzTWluaWZpZXI9JG9wdGlvbnNbJ2pzTWluaWZpZXInXTt9JGh0bWw9dHJpbSgkc3RyaW5nKTtzZWxmOjokX2lzWGh0bWw9KGZhbHNlIT09c3RycG9zKCRodG1sLCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MJykpO3NlbGY6OiRfcmVwbGFjZW1lbnRIYXNoPSdNSU5JRllIVE1MJy5tZDUodGltZSgpKTskaHRtbD1wcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cXHMqKDxzY3JpcHRcXGJbXj5dKj8+KShbXFxzXFxTXSo/KTxcXC9zY3JpcHQ+XFxzKi9pJyxhcnJheSgnTWluaWZ5X0hUTUwnLCdfcmVtb3ZlU2NyaXB0Q0InKSwkaHRtbCk7JGh0bWw9cHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXFxzKig8c3R5bGVcXGJbXj5dKj8+KShbXFxzXFxTXSo/KTxcXC9zdHlsZT5cXHMqL2knLGFycmF5KCdNaW5pZnlfSFRNTCcsJ19yZW1vdmVTdHlsZUNCJyksJGh0bWwpOyRodG1sPXByZWdfcmVwbGFjZSgnLzwhLS1bXlxcW11bXFxzXFxTXSo/LS0+LycsJycsJGh0bWwpO3NlbGY6OiRfcHJlcz1hcnJheSgpOyRodG1sPXByZWdfcmVwbGFjZV9jYWxsYmFjaygnL1xccyooPHByZVxcYltePl0qPz5bXFxzXFxTXSo/PFxcL3ByZT4pXFxzKi9pJyxhcnJheSgnTWluaWZ5X0hUTUwnLCdfcmVtb3ZlUHJlQ0InKSwkaHRtbCk7JGh0bWw9cHJlZ19yZXBsYWNlKCcvXlxccyooLio/KVxccyokL20nLCIkMSIsJGh0bWwpOyRodG1sPXByZWdfcmVwbGFjZSgnL1xccyooPFxcLz8oPzphcmVhfGJhc2UoPzpmb250KT98YmxvY2txdW90ZXxib2R5Jy4nfGNhcHRpb258Y2VudGVyfGNpdGV8Y29sKD86Z3JvdXApP3xkZHxkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZvcm0nLid8ZnJhbWUoPzpzZXQpP3xoWzEtNl18aGVhZHxocnxodG1sfGxlZ2VuZHxsaXxsaW5rfG1hcHxtZW51fG1ldGEnLid8b2x8b3B0KD86Z3JvdXB8aW9uKXxwfHBhcmFtfHQoPzphYmxlfGJvZHl8aGVhZHxkfGh8fHJ8Zm9vdCl8dGl0bGUnLid8dWwpXFxiW14+XSo+KS9pJywnJDEnLCRodG1sKTskaHRtbD1wcmVnX3JlcGxhY2UoJy8+XFxzKyhcXFNbXFxzXFxTXSo/KT88LycsIj4gJDE8IiwkaHRtbCk7JGh0bWw9cHJlZ19yZXBsYWNlKCcvPihcXFNbXFxzXFxTXSo/KT9cXHMrPC8nLCI+JDEgPCIsJGh0bWwpOyRodG1sPXByZWdfcmVwbGFjZSgnLz5cXHMrPC8nLCI+IDwiLCRodG1sKTskaT1jb3VudChzZWxmOjokX3ByZXMpO3doaWxlKCRpPjApeyRyZXA9YXJyYXlfcG9wKHNlbGY6OiRfcHJlcyk7JGh0bWw9c3RyX3JlcGxhY2Uoc2VsZjo6JF9yZXBsYWNlbWVudEhhc2guJ1BSRScuJGksJHJlcCwkaHRtbCk7JGktLTt9JGk9Y291bnQoc2VsZjo6JF9zY3JpcHRzKTt3aGlsZSgkaT4wKXskcmVwPWFycmF5X3BvcChzZWxmOjokX3NjcmlwdHMpOyRodG1sPXN0cl9yZXBsYWNlKHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoLidTQ1JJUFQnLiRpLCRyZXAsJGh0bWwpOyRpLS07fSRpPWNvdW50KHNlbGY6OiRfc3R5bGVzKTt3aGlsZSgkaT4wKXskcmVwPWFycmF5X3BvcChzZWxmOjokX3N0eWxlcyk7JGh0bWw9c3RyX3JlcGxhY2Uoc2VsZjo6JF9yZXBsYWNlbWVudEhhc2guJ1NUWUxFJy4kaSwkcmVwLCRodG1sKTskaS0tO31zZWxmOjokX2Nzc01pbmlmaWVyPXNlbGY6OiRfanNNaW5pZmllcj1udWxsO3JldHVybiAkaHRtbDt9cHJvdGVjdGVkIHN0YXRpYyAkX2lzWGh0bWw9ZmFsc2U7cHJvdGVjdGVkIHN0YXRpYyAkX3JlcGxhY2VtZW50SGFzaD1udWxsO3Byb3RlY3RlZCBzdGF0aWMgJF9wcmVzPWFycmF5KCk7cHJvdGVjdGVkIHN0YXRpYyAkX3NjcmlwdHM9YXJyYXkoKTtwcm90ZWN0ZWQgc3RhdGljICRfc3R5bGVzPWFycmF5KCk7cHJvdGVjdGVkIHN0YXRpYyAkX2Nzc01pbmlmaWVyPW51bGw7cHJvdGVjdGVkIHN0YXRpYyAkX2pzTWluaWZpZXI9bnVsbDtwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9yZW1vdmVQcmVDQigkbSl7c2VsZjo6JF9wcmVzW109JG1bMV07cmV0dXJuIHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoLidQUkUnLmNvdW50KHNlbGY6OiRfcHJlcyk7fXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX3JlbW92ZVN0eWxlQ0IoJG0peyRvcGVuU3R5bGU9JG1bMV07JGNzcz0kbVsyXTskY3NzPXByZWdfcmVwbGFjZSgnLyg/Ol5cXHMqPCEtLXwtLT5cXHMqJCkvJywnJywkY3NzKTskY3NzPXNlbGY6Ol9yZW1vdmVDZGF0YSgkY3NzKTskbWluaWZpZXI9c2VsZjo6JF9jc3NNaW5pZmllcj9zZWxmOjokX2Nzc01pbmlmaWVyOid0cmltJzskY3NzPWNhbGxfdXNlcl9mdW5jKCRtaW5pZmllciwkY3NzKTtzZWxmOjokX3N0eWxlc1tdPXNlbGY6Ol9uZWVkc0NkYXRhKCRjc3MpPyJ7JG9wZW5TdHlsZX0vKjwhW0NEQVRBWyoveyRjc3N9LypdXT4qLzwvc3R5bGU+IjoieyRvcGVuU3R5bGV9eyRjc3N9PC9zdHlsZT4iO3JldHVybiBzZWxmOjokX3JlcGxhY2VtZW50SGFzaC4nU1RZTEUnLmNvdW50KHNlbGY6OiRfc3R5bGVzKTt9cHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcmVtb3ZlU2NyaXB0Q0IoJG0peyRvcGVuU2NyaXB0PSRtWzFdOyRqcz0kbVsyXTskanM9cHJlZ19yZXBsYWNlKCcvKD86Xlxccyo8IS0tXFxzKnxcXHMqKD86XFwvXFwvKT9cXHMqLS0+XFxzKiQpLycsJycsJGpzKTskanM9c2VsZjo6X3JlbW92ZUNkYXRhKCRqcyk7JG1pbmlmaWVyPXNlbGY6OiRfanNNaW5pZmllcj9zZWxmOjokX2pzTWluaWZpZXI6J3RyaW0nOyRqcz1jYWxsX3VzZXJfZnVuYygkbWluaWZpZXIsJGpzKTtzZWxmOjokX3NjcmlwdHNbXT1zZWxmOjpfbmVlZHNDZGF0YSgkanMpPyJ7JG9wZW5TY3JpcHR9Lyo8IVtDREFUQVsqL3skanN9LypdXT4qLzwvc2NyaXB0PiI6Inskb3BlblNjcmlwdH17JGpzfTwvc2NyaXB0PiI7cmV0dXJuIHNlbGY6OiRfcmVwbGFjZW1lbnRIYXNoLidTQ1JJUFQnLmNvdW50KHNlbGY6OiRfc2NyaXB0cyk7fXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX3JlbW92ZUNkYXRhKCRzdHIpe3JldHVybihmYWxzZSE9PXN0cnBvcygkc3RyLCc8IVtDREFUQVsnKSk/c3RyX3JlcGxhY2UoYXJyYXkoJzwhW0NEQVRBWycsJ11dPicpLCcnLCRzdHIpOiRzdHI7fXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX25lZWRzQ2RhdGEoJHN0cil7cmV0dXJuKHNlbGY6OiRfaXNYaHRtbCYmcHJlZ19tYXRjaCgnLyg/Ols8Jl18XFwtXFwtfFxcXVxcXT4pLycsJHN0cikpO319]]></data>
	</file>
	<file>
	  <filename>/lib/Minify/Javascript.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgaWYoIWNsYXNzX2V4aXN0cygnSlNNaW5QbHVzJykpeyRKU01pbj1jbXNfam9pbl9wYXRoKGNtc21zKCktPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLCdTY3JpcHREZXBsb3knLCdsaWInLCdKU01pblBsdXMucGhwJyk7cmVxdWlyZV9vbmNlKCRKU01pbik7fWNsYXNzIE1pbmlmeV9KYXZhc2NyaXB0e3B1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWluaWZ5KCRqcywkb3B0aW9ucz1hcnJheSgpKXtpZihpc3NldCgkb3B0aW9uc1sncHJlc2VydmVDb21tZW50cyddKSYmISRvcHRpb25zWydwcmVzZXJ2ZUNvbW1lbnRzJ10pe3JldHVybiB0cmltKEpTTWluUGx1czo6bWluaWZ5KCRqcykpO30kcmV0PScnO3doaWxlKDEpe2xpc3QoJGJlZm9yZUNvbW1lbnQsJGNvbW1lbnQsJGFmdGVyQ29tbWVudCk9c2VsZjo6X25leHRZdWlDb21tZW50KCRqcyk7JHJldC49dHJpbShKU01pblBsdXM6Om1pbmlmeSgkYmVmb3JlQ29tbWVudCkpO2lmKGZhbHNlPT09JGNvbW1lbnQpe2JyZWFrO30kcmV0Lj0kY29tbWVudDskanM9JGFmdGVyQ29tbWVudDt9cmV0dXJuICRyZXQ7fXByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9uZXh0WXVpQ29tbWVudCgkaW4pe3JldHVybigoZmFsc2UhPT0oJHN0YXJ0PXN0cnBvcygkaW4sJy8qIScpKSkmJihmYWxzZSE9PSgkZW5kPXN0cnBvcygkaW4sJyovJywkc3RhcnQrMykpKSk/YXJyYXkoc3Vic3RyKCRpbiwwLCRzdGFydCksIlxuLyoiLnN1YnN0cigkaW4sJHN0YXJ0KzMsJGVuZC0kc3RhcnQtMSkuIlxuIixzdWJzdHIoJGluLC0oc3RybGVuKCRpbiktJGVuZC0yKSkpOmFycmF5KCRpbixmYWxzZSxmYWxzZSk7fX0=]]></data>
	</file>
	<file>
	  <filename>/lib/necho.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9QSFAgaWYoIWlzc2V0KCRHTE9CQUxTWyJuZWNob19odG1sc3RhdGUiXSkpJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdPSJmb3JtYXQiOyRHTE9CQUxTWyJuZWNob19pbmRlbnR3aWR0aCJdPTI7JEdMT0JBTFNbIm5lY2hvX2ZvcmNlbG93ZXJ0YWdzIl09ZmFsc2U7JEdMT0JBTFNbIm5lY2hvX2RlYnVnbW9kZSJdPWZhbHNlOyRHTE9CQUxTWyJuZWNob19kZWJ1Z2xldmVsIl09ImJyaWVmIjskR0xPQkFMU1sibmVjaG9fZXJyb3JzIl09MDskR0xPQkFMU1sibmVjaG9fdmVyc2lvbiJdPSJuRWNobyAwLjMuMiBbIi4kR0xPQkFMU1sibmVjaG9faHRtbHN0YXRlIl0uIl0gLSBhIE5pY2UgSFRNTCBlY2hvIGZ1bmN0aW9uIjskR0xPQkFMU1sibmVjaG9faW5kZW50bGV2ZWwiXT0wOyRHTE9CQUxTWyJuZWNob190aW1lciJdPTA7aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9faXNyYXciKSl7ZnVuY3Rpb24gbmVjaG9faXNyYXcoKXtyZXR1cm4oJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdPT0icmF3Iik7fX1pZighZnVuY3Rpb25fZXhpc3RzKCJfbmVjaG9fY2xlYW4iKSl7ZnVuY3Rpb24gX25lY2hvX2NsZWFuKCRzKXskcmVzdWx0PXN0cl9yZXBsYWNlKCJcdCIsIiAiLCRzKTskcmVzdWx0PXN0cl9yZXBsYWNlKCJcciIsIiAiLCRyZXN1bHQpOyRyZXN1bHQ9c3RyX3JlcGxhY2UoIlxuIiwiICIsJHJlc3VsdCk7d2hpbGUoc3RycG9zKCRyZXN1bHQsJyAgJykhPT1mYWxzZSkkcmVzdWx0PXN0cl9yZXBsYWNlKCcgICcsJyAnLCRyZXN1bHQpO3JldHVybiAkcmVzdWx0O319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fY2xlYW4iKSl7ZnVuY3Rpb24gbmVjaG9fY2xlYW4oJHMpeyRyZXN1bHQ9X25lY2hvX2NsZWFuKCRzKTtyZXR1cm4gJHJlc3VsdDt9fWlmKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2ZpbmRzY3JpcHRzIikpe2Z1bmN0aW9uIG5lY2hvX2ZpbmRzY3JpcHRzKCRfcywkb2Zmc2V0PTApe2lmKCRvZmZzZXQ+c3RybGVuKCRfcykpcmV0dXJuIGZhbHNlOyRwPXN0cnBvcygkX3MsIjxzY3JpcHQiLCRvZmZzZXQpO2lmKCRwPT09ZmFsc2UpJHA9c3RycG9zKCRfcywiPFNDUklQVCIsJG9mZnNldCk7aWYoJHA9PT1mYWxzZSkkcD1zdHJwb3MoJF9zLCI8cHJlIiwkb2Zmc2V0KTtpZigkcD09PWZhbHNlKSRwPXN0cnBvcygkX3MsIjxQUkUiLCRvZmZzZXQpO3JldHVybiAkcDt9fWlmKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2ZpbmRlbmRzY3JpcHRzIikpe2Z1bmN0aW9uIG5lY2hvX2ZpbmRlbmRzY3JpcHRzKCRfcywkb2Zmc2V0PTApe2lmKCRvZmZzZXQ+c3RybGVuKCRfcykpcmV0dXJuIGZhbHNlOyRwPXN0cnBvcygkX3MsIjwvc2NyaXB0PiIsJG9mZnNldCk7aWYoJHA9PT1mYWxzZSkkcD1zdHJwb3MoJF9zLCI8L1NDUklQVD4iLCRvZmZzZXQpO2Vsc2UgJHArPTk7aWYoJHA9PT1mYWxzZSkkcD1zdHJwb3MoJF9zLCI8L3ByZT4iLCRvZmZzZXQpO2Vsc2UgJHArPTk7aWYoJHA9PT1mYWxzZSkkcD1zdHJwb3MoJF9zLCI8L1BSRT4iLCRvZmZzZXQpO2Vsc2UgJHArPTY7aWYoJHApJHArPTY7cmV0dXJuICRwO319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fdWdseWZ5Iikpe2Z1bmN0aW9uIG5lY2hvX3VnbHlmeSgkX3Mpe2lmKG5lY2hvX2ZpbmRzY3JpcHRzKCRfcyk9PT1mYWxzZSlyZXR1cm4gbmVjaG9fY2xlYW4oJF9zKTskcz0kX3M7JHJlc3VsdD0iIjskaW5zaWRlPWZhbHNlOyRwPW5lY2hvX2ZpbmRzY3JpcHRzKCRzKTt3aGlsZSgkcCE9ZmFsc2Upe2lmKCRpbnNpZGUpeyRyZXN1bHQuPXN1YnN0cigkcywwLCRwKTskcz1zdWJzdHIoJHMsJHAsMTAwMDAwKTskcD1uZWNob19maW5kc2NyaXB0cygkcyk7JGluc2lkZT1mYWxzZTt9ZWxzZXskcmVzdWx0Lj1uZWNob19jbGVhbihzdWJzdHIoJHMsMCwkcCkpOyRzPXN1YnN0cigkcywkcCwxMDAwMDApOyRwPW5lY2hvX2ZpbmRlbmRzY3JpcHRzKCRzKTskaW5zaWRlPXRydWU7fX1pZigkcyE9IiIpe2lmKCRpbnNpZGUpeyRyZXN1bHQuPSRzO31lbHNleyRyZXN1bHQuPW5lY2hvX2NsZWFuKCRzKTt9fXJldHVybiAkcmVzdWx0O319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fbWtpbmRlbnQiKSl7ZnVuY3Rpb24gbmVjaG9fbWtpbmRlbnQoJGluZCwkcmV0dXJuPXRydWUpe2lmKCRyZXR1cm4pJHJlc3VsdD0iXG4iO2Vsc2UgJHJlc3VsdD0iIjtmb3IoJGk9MDskaTwkaW5kOyRpKyspeyRyZXN1bHQuPXN1YnN0cigiICAgICAgICAgICAgICAgICAiLDAsJEdMT0JBTFNbIm5lY2hvX2luZGVudHdpZHRoIl0pO31zdGF0aWMgJGxldmVsPTA7aWYoJGluZD09JGxldmVsKzEpeyRHTE9CQUxTWyJuZWNob19pbmRlbnRsZXZlbCJdKys7JGxldmVsKys7fWVsc2V7aWYoJGluZD09JGxldmVsLTEpeyRHTE9CQUxTWyJuZWNob19pbmRlbnRsZXZlbCJdLS07JGxldmVsLS07fX1yZXR1cm4gJHJlc3VsdDt9fWlmKCFmdW5jdGlvbl9leGlzdHMoIm5lY2hvX2FkZHRhZyIpKXtmdW5jdGlvbiBuZWNob19hZGR0YWcoJHRhZyl7JHJlc3VsdD10cmltKCR0YWcpO2lmKCRHTE9CQUxTWyJuZWNob19mb3JjZWxvd2VydGFncyJdKXskcmVzdWx0PXN0cnRvbG93ZXIoJHJlc3VsdCk7fXJldHVybiAkcmVzdWx0O319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fZm9ybWF0Iikpe2Z1bmN0aW9uIG5lY2hvX2Zvcm1hdCgkcyl7JHN0YXJ0dGltZT1taWNyb3RpbWUodHJ1ZSk7c3RhdGljICRpbmRlbnRhcnJheT1hcnJheSgpO3N0YXRpYyAkaW5kZW50bWVzc2FnZT0iIjtzdGF0aWMgJGluZD0wOyRyZXN1bHQ9IiI7JHA9MDskaW5kZW50cz1hcnJheSgiPFREIiwiPFRSIiwiPFRIIiwiPFRBQkxFIiwiPERJViIsIjxTUEFOIiwiPEEiLCI8UCIsIjxCT0RZIiwiPEhUTUwiLCI8SEVBRCIsIjxDRU5URVIiLCI8VElUTEUiLCI8U0VMRUNUIiwiPE9QVElPTiIsIjxGT1JNIiwiPExJIiwiPE9MIiwiPFVMIiwiPERGTiIsIjxUSEVBRCIsIjxUQk9EWSIsIjxIMSIsIjxIMiIsIjxIMyIsIjxINCIsIjxMQUJFTCIsIjxTVFlMRSIpOyRhbnRpbmRlbnRzPWFycmF5KCI8L1REIiwiPC9UUiIsIjwvVEgiLCI8L1RBQkxFIiwiPC9ESVYiLCI8L1NQQU4iLCI8L0EiLCI8L1AiLCI8L0JPRFkiLCI8L0hUTUwiLCI8L0hFQUQiLCI8L0NFTlRFUiIsIjwvVElUTEUiLCI8L1NFTEVDVCIsIjwvT1BUSU9OIiwiPC9GT1JNIiwiPC9MSSIsIjwvT0wiLCI8L1VMIiwiPC9ERk4iLCI8L1RIRUFEIiwiPC9UQk9EWSIsIjwvSDEiLCI8L0gyIiwiPC9IMyIsIjwvSDQiLCI8L0xBQkVMIiwiPC9TVFlMRSIpOyRzdGFuZGFsb25lPWFycmF5KCI8SU1HIiwiPEhSIiwiPEJSIiwiPExJTksiLCI8TUVUQSIsIjxJTlBVVCIsIjxCQVNFIik7JGxlZnRzPWFycmF5KCI8IS0tIiwiPCFET0NUWVBFIiwiPD9YTUwiKTskcmF3c3RhcnRzPWFycmF5KCI8VEVYVEFSRUEiLCI8UFJFIik7JHJhd2VuZHM9YXJyYXkoIjwvVEVYVEFSRUEiLCI8L1BSRSIpOyRzY3JpcHRzdGFydHM9YXJyYXkoIjxTQ1JJUFQiLCI8Tk9TQ1JJUFQiKTskc2NyaXB0ZW5kcz1hcnJheSgiPC9TQ1JJUFQiLCI8L05PU0NSSVBUIik7JHN0YXRlPSJvdXRzaWRlIjskdGFnPSIiOyRyZXR1cm5zZW50PWZhbHNlOyRuZWVkcmV0dXJuPWZhbHNlOyRyYXdvdXRwdXQ9ZmFsc2U7JGluc2lkZXN0YW5kYWxvbmU9ZmFsc2U7JGFscmVhZHlpbmRlbnRlZD1mYWxzZTskaW5zaWRlX3Ffc2luZ2xlPWZhbHNlOyRpbnNpZGVfcV9kb3VibGU9ZmFsc2U7d2hpbGUoJHA8c3RybGVuKCRzKSl7c3dpdGNoKCRzdGF0ZSl7Y2FzZSAib3V0c2lkZSI6e2lmKCRzWyRwXT09IjwiKXskc3RhdGU9InNlYXJjaGluZyI7JHRhZz0iPCI7fWVsc2V7aWYoISRyYXdvdXRwdXQpe2lmKCEkcmV0dXJuc2VudCl7aWYoJHNbJHBdIT0iICIpeyRyZXN1bHQuPShuZWNob19ta2luZGVudCgkaW5kLHRydWUpKTskcmV0dXJuc2VudD10cnVlOyRuZWVkcmV0dXJuPWZhbHNlOyRhbHJlYWR5aW5kZW50ZWQ9dHJ1ZTt9fWlmKHN0cnBvcygiXG5cdFxyIiwkc1skcF0pPT09ZmFsc2UpJHJlc3VsdC49JHNbJHBdO31lbHNleyRyZXN1bHQuPSRzWyRwXTt9fWJyZWFrO31jYXNlICJzZWFyY2hpbmciOntpZigkc1skcF09PSI+Iil7JHRhZy49Ij4iOyRyZXN1bHQuPW5lY2hvX2FkZHRhZygkdGFnKTskc3RhdGU9Im91dHNpZGUiOyRyZXR1cm5zZW50PXRydWU7fWVsc2UgaWYoJHNbJHBdPT0iPCIpeyR0YWcuPSI8Ijt9ZWxzZXskdGFnLj0kc1skcF07JHBlZWs9IiI7aWYoJHA8c3RybGVuKCRzKSl7JHBlZWs9JHNbJHArMV07fSRmb3VuZD1mYWxzZTskdXRhZz1zdHJ0b3VwcGVyKCR0YWcpO2ZvcigkaT0wOyRpPGNvdW50KCRpbmRlbnRzKTskaSsrKXtpZigkdXRhZz09JGluZGVudHNbJGldJiYoJHBlZWs9PSIgInx8JHBlZWs9PSI+Inx8JHBlZWs9PSIvIikpeyRyZXN1bHQuPShuZWNob19ta2luZGVudCgkaW5kLHRydWUpLm5lY2hvX2FkZHRhZygkdGFnKSk7aWYoJEdMT0JBTFNbIm5lY2hvX2RlYnVnbW9kZSJdKXthcnJheV9wdXNoKCRpbmRlbnRhcnJheSwkdXRhZyk7aWYoJEdMT0JBTFNbIm5lY2hvX2RlYnVnbGV2ZWwiXT09InZlcmJvc2UiKXskaW5kZW50bWVzc2FnZT0iIDwhLS0gYWRkZWQgdG8gc3RhY2sgIi5zdWJzdHIoJHV0YWcsMSkuIiAtLT4iO319JHN0YXRlPSJpbnNpZGUiOyRmb3VuZD10cnVlOyRpbmQrKzticmVhazt9fWlmKCEkZm91bmQpe2ZvcigkaT0wOyRpPGNvdW50KCRhbnRpbmRlbnRzKTskaSsrKXtpZigkdXRhZz09JGFudGluZGVudHNbJGldKXskaW5kLS07aWYoJEdMT0JBTFNbIm5lY2hvX2RlYnVnbW9kZSJdKXskZXhwZWN0ZWQ9YXJyYXlfcG9wKCRpbmRlbnRhcnJheSk7JGV4cGVjdGVkPSRleHBlY3RlZFswXS4iLyIuc3Vic3RyKCRleHBlY3RlZCwxKTtpZigkdXRhZz09JGV4cGVjdGVkKXtpZigkR0xPQkFMU1sibmVjaG9fZGVidWdsZXZlbCJdPT0idmVyYm9zZSIpeyRpbmRlbnRtZXNzYWdlPSIgPCEtLSByZW1vdmVkIHRvIHN0YWNrICIuc3Vic3RyKCR1dGFnLDEpLiIgLS0+Ijt9fWVsc2V7JGluZGVudG1lc3NhZ2U9IiA8IS0tIGVycm9yOiByZW1vdmVkIGZyb20gc3RhY2sgIi5zdWJzdHIoJHV0YWcsMSkuIiwgZXhwZWN0ZWQgIi5zdWJzdHIoJGV4cGVjdGVkLDEpLiIgLS0+IjskR0xPQkFMU1sibmVjaG9fZXJyb3JzIl0rKzt9fSRyZXN1bHQuPShuZWNob19ta2luZGVudCgkaW5kKS5uZWNob19hZGR0YWcoJHRhZykpOyRzdGF0ZT0iaW5zaWRlIjskZm91bmQ9dHJ1ZTskbmVlZHJldHVybj10cnVlO2JyZWFrO319fWlmKCEkZm91bmQpe2ZvcigkaT0wOyRpPGNvdW50KCRsZWZ0cyk7JGkrKyl7aWYoJHV0YWc9PSRsZWZ0c1skaV0peyRyZXN1bHQuPShuZWNob19ta2luZGVudCgwKS5uZWNob19hZGR0YWcoJHRhZykpOyRzdGF0ZT0iaW5zaWRlIjskZm91bmQ9dHJ1ZTticmVhazt9fX1pZighJGZvdW5kKXtmb3IoJGk9MDskaTxjb3VudCgkc3RhbmRhbG9uZSk7JGkrKyl7aWYoJHV0YWc9PSRzdGFuZGFsb25lWyRpXSl7JHJlc3VsdC49KG5lY2hvX21raW5kZW50KCRpbmQpLm5lY2hvX2FkZHRhZygkdGFnKSk7JHN0YXRlPSJpbnNpZGUiOyRmb3VuZD10cnVlOyRpbnNpZGVzdGFuZGFsb25lPXRydWU7YnJlYWs7fX19aWYoISRmb3VuZCl7Zm9yKCRpPTA7JGk8Y291bnQoJHJhd3N0YXJ0cyk7JGkrKyl7aWYoJHV0YWc9PSRyYXdzdGFydHNbJGldKXskcmVzdWx0Lj1uZWNob19hZGR0YWcoJHRhZyk7JHN0YXRlPSJpbnNpZGUiOyRmb3VuZD10cnVlOyRyYXdvdXRwdXQ9dHJ1ZTt9fX1pZighJGZvdW5kKXtmb3IoJGk9MDskaTxjb3VudCgkcmF3ZW5kcyk7JGkrKyl7aWYoJHV0YWc9PSRyYXdlbmRzWyRpXSl7JHJlc3VsdC49bmVjaG9fYWRkdGFnKCR0YWcpOyRzdGF0ZT0iaW5zaWRlIjskZm91bmQ9dHJ1ZTskcmF3b3V0cHV0PWZhbHNlO319fWlmKCEkZm91bmQpe2ZvcigkaT0wOyRpPGNvdW50KCRzY3JpcHRzdGFydHMpOyRpKyspe2lmKCR1dGFnPT0kc2NyaXB0c3RhcnRzWyRpXSl7JHJlc3VsdC49KG5lY2hvX21raW5kZW50KCRpbmQpLm5lY2hvX2FkZHRhZygkdGFnKSk7JHN0YXRlPSJpbnNpZGUiOyRmb3VuZD10cnVlOyRyYXdvdXRwdXQ9dHJ1ZTt9fX1pZighJGZvdW5kKXtmb3IoJGk9MDskaTxjb3VudCgkc2NyaXB0ZW5kcyk7JGkrKyl7aWYoJHV0YWc9PSRzY3JpcHRlbmRzWyRpXSl7JHJlc3VsdC49KG5lY2hvX21raW5kZW50KCRpbmQpLm5lY2hvX2FkZHRhZygkdGFnKSk7JHN0YXRlPSJpbnNpZGUiOyRmb3VuZD10cnVlOyRyYXdvdXRwdXQ9ZmFsc2U7fX19fWJyZWFrO31jYXNlICJpbnNpZGUiOntpZigkc1skcF09PSI+Iil7aWYoKCRpbnNpZGVfcV9zaW5nbGU9PXRydWUpfHwoJGluc2lkZV9xX2RvdWJsZT09dHJ1ZSkpeyRyZXN1bHQuPSI+Ijt9ZWxzZXskcmVzdWx0Lj0iPiI7JHJldHVybnNlbnQ9ZmFsc2U7JHN0YXRlPSJvdXRzaWRlIjtpZigkR0xPQkFMU1sibmVjaG9fZGVidWdtb2RlIl0pe2lmKCRpbmRlbnRtZXNzYWdlIT0iIil7JHJlc3VsdC49JGluZGVudG1lc3NhZ2U7JGluZGVudG1lc3NhZ2U9IiI7fWVsc2V7aWYoJGluc2lkZXN0YW5kYWxvbmUpe2lmKHN1YnN0cigkcmVzdWx0LC0yLDEpIT0iLyIpeyRyZXN1bHQuPSIgPCEtLSBlcnJvcjogRGlkIHlvdSByZW1lbWJlciB0byBhZGQgLyB0byBzdGFuZGFsb25lIHRhZz8gLS0+IjskR0xPQkFMU1sibmVjaG9fZXJyb3JzIl0rKzt9fX19JGluc2lkZXN0YW5kYWxvbmU9ZmFsc2U7fX1lbHNlIGlmKCRzWyRwXT09IjwiKXskcmVzdWx0Lj0iPCI7fWVsc2UgaWYoJHNbJHBdPT0iXCIiKXtpZigkaW5zaWRlX3FfZG91YmxlPT10cnVlKXskaW5zaWRlX3FfZG91YmxlPWZhbHNlO31lbHNleyRpbnNpZGVfcV9kb3VibGU9dHJ1ZTt9JHJlc3VsdC49JHNbJHBdO31lbHNlIGlmKCRzWyRwXT09IlwnIil7aWYoJGluc2lkZV9xX3NpbmdsZT09dHJ1ZSl7JGluc2lkZV9xX3NpbmdsZT1mYWxzZTt9ZWxzZXskaW5zaWRlX3Ffc2luZ2xlPXRydWU7fSRyZXN1bHQuPSRzWyRwXTt9ZWxzZXskcmVzdWx0Lj0kc1skcF07fWJyZWFrO319JHArKzt9JEdMT0JBTFNbIm5lY2hvX3RpbWVyIl0rPShtaWNyb3RpbWUodHJ1ZSktJHN0YXJ0dGltZSk7cmV0dXJuICRyZXN1bHQ7fX1pZighZnVuY3Rpb25fZXhpc3RzKCJuZWNob19zdGFydCIpKXtmdW5jdGlvbiBuZWNob19zdGFydCgpe29iX3N0YXJ0KCJnel9oYW5kbGVyIik7aWYoIW5lY2hvX2lzcmF3KCkpe29iX3N0YXJ0KCk7bmVjaG8oIjwhLS0gTkVDSE8gT1VUUFVUIFNUQVJUICIuJEdMT0JBTFNbIm5lY2hvX3ZlcnNpb24iXS4iIC0tPlxuIik7fX19aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG8iKSl7ZnVuY3Rpb24gbmVjaG8oJHMxLCRmbHVzaD1mYWxzZSwkcmVjdXJzZT10cnVlKXtpZihuZWNob19pc3JhdygpKXtlY2hvICRzMS4iXG4iO3JldHVybjt9O3N0YXRpYyAkX3M7aWYoJHJlY3Vyc2UpeyRfYnVmZmVyPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO29iX3N0YXJ0KCk7bmVjaG8oJF9idWZmZXIsZmFsc2UsZmFsc2UpO30kczE9dHJpbSgkczEpO2lmKCRzMSE9IiIpJF9zLj0oJHMxLiJcbiIpO2lmKChzdHJsZW4oJF9zKT4xMDI0KXx8JGZsdXNoKXtzd2l0Y2goJEdMT0JBTFNbIm5lY2hvX2h0bWxzdGF0ZSJdKXtjYXNlICJ1Z2x5IjokX3M9bmVjaG9fdWdseWZ5KCRfcyk7YnJlYWs7Y2FzZSAiZHVsbCI6JF9zPW5lY2hvX2NsZWFuKCRfcyk7YnJlYWs7Y2FzZSAiZm9ybWF0IjokX3M9bmVjaG9fdWdseWZ5KCRfcyk7JF9zPW5lY2hvX2Zvcm1hdCgkX3MpO2JyZWFrO2RlZmF1bHQ6O31lY2hvICRfcztvYl9lbmRfZmx1c2goKTtvYl9zdGFydCgpOyRfcz0iIjt9fX1pZighZnVuY3Rpb25fZXhpc3RzKCJuZWNob19yYXciKSl7ZnVuY3Rpb24gbmVjaG9fcmF3KCRzMSl7aWYoIW5lY2hvX2lzcmF3KCkpe25lY2hvX2ZsdXNoKCk7b2JfZW5kX2NsZWFuKCk7ZWNobyAkczEuIlxuIjtvYl9zdGFydCgpO31lbHNle25lY2hvKCRzMSk7fX19aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fbmJzcCIpKXtmdW5jdGlvbiBuZWNob19uYnNwKCRzMSl7bmVjaG8oc3RyX3JlcGxhY2UoIiAiLCImbmJzcDsiLCRzMSkpO319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmJzcCIpKXtmdW5jdGlvbiBuYnNwKCRzMSl7cmV0dXJuIHN0cl9yZXBsYWNlKCIgIiwiJm5ic3A7IiwkczEpO319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fZW5kIikpe2Z1bmN0aW9uIG5lY2hvX2VuZCgpe2lmKCFuZWNob19pc3JhdygpKXtuZWNobygiPCEtLSBORUNITyBPVVRQVVQgRU5EIFtlbmQgaW5kZW50IGxldmVsIGlzICIuJEdMT0JBTFNbIm5lY2hvX2luZGVudGxldmVsIl0uIiBzaG91bGQgYmUgMF0gR2VuZXJhdGlvbiB0aW1lOiAiLmRhdGUoIkg6aTpzIGQvbS95IikuIi0tPiIpO25lY2hvKCIiLHRydWUsdHJ1ZSk7b2JfZW5kX2ZsdXNoKCk7fW9iX2VuZF9mbHVzaCgpO319aWYoIWZ1bmN0aW9uX2V4aXN0cygibmVjaG9fZmx1c2giKSl7ZnVuY3Rpb24gbmVjaG9fZmx1c2goKXtpZighbmVjaG9faXNyYXcoKSl7bmVjaG8oIiIsdHJ1ZSx0cnVlKTtvYl9lbmRfZmx1c2goKTt9b2JfZW5kX2ZsdXNoKCk7b2Jfc3RhcnQoImd6X2hhbmRsZXIiKTtpZighbmVjaG9faXNyYXcoKSl7b2Jfc3RhcnQoKTt9fX0gPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGNvbmZpZz1jbXNtcygpLT5HZXRDb25maWcoKTskdGFib3B0YXJyYXk9YXJyYXkoJ215c3FsJz0+J1RZUEU9TXlJU0FNJyk7JGRpY3Q9TmV3RGF0YURpY3Rpb25hcnkoJGRiKTskZmxkcz0iXHJcblx0XHRJRCBJIEtFWSBBVVRPLFxyXG5cdFx0U2NyaXB0U2V0IEMoMjU1KVxyXG5cdFx0Ijskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1NDUklQVE5BTUVTLCRmbGRzLCR0YWJvcHRhcnJheSk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRmbGRzPSJcclxuXHRcdElEIEkgS0VZIE5PVCBOVUxMLFxyXG5cdFx0dXNlcklEIEksXHJcblx0XHRyZXZpc2lvbiBJLFxyXG5cdFx0bGl2ZXZlcnNpb24gSSxcclxuXHRcdHBhdGhPcHRpb24gQygyNTUpLFxyXG5cdFx0bm90ZXMgQygxMDI0KSxcclxuXHRcdHNjcmlwdFR5cGUgQygzKSxcclxuXHRcdHZhbGlkIEksXHJcblx0XHRzY3JpcHRTaXplIEksXHJcblx0XHRDdXJyZW50cmV2aXNpb24gSSxcclxuXHRcdGNyZWF0ZWQgIi5DTVNfQURPREJfRFQuIixcclxuXHRcdGxhc3RfZWRpdCAiLkNNU19BRE9EQl9EVC4iXHJcblx0XHQiOyRzcWxhcnJheT0kZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfU0NSSVBUT1BUSU9OUywkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iXHJcblx0XHRJRCBJLFxyXG5cdFx0U2NyaXB0SXMgWDJcclxuXHRcdCI7JHNxbGFycmF5PSRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9TQ1JJUFRQQVJUUywkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iXHJcblx0XHR1c2VySUQgSSxcclxuXHRcdHNjcmlwdElEIEksXHJcblx0XHRyZXZpc2lvbiBJLFxyXG5cdFx0U2NyaXB0SXNCS1VQIFgyLFxyXG5cdFx0Y3JlYXRlZCAiLkNNU19BRE9EQl9EVC4iXHJcblx0XHQiOyRzcWxhcnJheT0kZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfU0NSSVBUVU5ETywkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iXHJcblx0XHRJRCBJIEtFWSBBVVRPLFxyXG5cdFx0R3JvdXB0U2V0IEMoMjU1KSxcclxuXHRcdEdyb3VwdFR5cGUgQygzKVxyXG5cdFx0Ijskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0dST1VQLCRmbGRzLCR0YWJvcHRhcnJheSk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRmbGRzPSJcclxuXHRcdEdyb3VwdFNldElEIEksXHJcblx0XHRTY3JpcHRJRCBJLFxyXG5cdFx0U2NyaXB0T1JERVIgSVxyXG5cdFx0Ijskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0dST1VQQVNTSUdOTUVOVCwkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iXHJcblx0XHRcdCBncm91cGlkIEkgS0VZIEFVVE8sXHJcblx0XHRcdCB0ZW1wbGF0ZV9pZCBJIEtFWSxcclxuXHRcdFx0IHByZWZlcnJlZF9zcyBJXHJcblx0XHRcdCI7JHNxbGFycmF5PSRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9UQUJMRSwkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iZ3JvdXBpZCBJLFxyXG5cdFx0XHQgc3R5bGVzaGVldF9pZCBJIjskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1BFUlNJU1RFTlQsJGZsZHMsJHRhYm9wdGFycmF5KTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JGZsZHM9IlxyXG5cdFx0XHRpZCBJKDExKSBOT1ROVUxMIEtFWSxcclxuXHRcdFx0bmFtZSBDKDE2MCkgTk9UTlVMTCxcclxuXHRcdFx0bm90ZXMgWCxcclxuXHRcdFx0dmVyc2lvbiBDKDI1NSksXHJcblx0XHRcdGF1dGhvciBDKDI1NSlcclxuXHRcdFx0Ijskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0VYUE9SVFMsJGZsZHMsJHRhYm9wdGFycmF5KTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JGRiLT5DcmVhdGVTZXF1ZW5jZShTRF9FWFBPUlRTLiJfc2VxIik7JGZsZHM9IlxyXG5cdFx0XHR0aGVtZV9pZCBJKDExKSBOT1ROVUxMLFxyXG5cdFx0XHR0eXBlIEMoMjU1KSBOT1ROVUxMLFxyXG5cdFx0XHRzeXN0ZW1faWQgSSxcclxuXHRcdFx0bmFtZSBDKDI1NSkgTk9UTlVMTCxcclxuXHRcdFx0bW9kdWxlIEMoMTYwKSxcclxuXHRcdFx0bG9jYXRpb24gWFxyXG5cdFx0XHQiOyRzcWxhcnJheT0kZGljdC0+Q3JlYXRlVGFibGVTUUwoU0RfRVhQT1JUUy4iX2NvbXAiLCRmbGRzLCR0YWJvcHRhcnJheSk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJywwKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnU2hvd1ZhbCcsMCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ1R1cm5PTlZhbCcsMSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZpbGVUaW1lX2Nzc191cmxzJywwKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnQ1NTcHJvZmlsZScsJ2NzczIxJyk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ1ZBTExhbmcnLCdlbicpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCd3M2NDU1N3YXJuaW5nJywwKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcm1lZGl1bScsJ2FsbCcpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmaWx0ZXJQcm9wJywnYm9yZGVyLXJhZGl1cyxvcGFjaXR5Jyk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ2hvdExpbmtDaGVjaycsMCk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywxKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgncmV2aXNpb24nLDEpOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXZpc2lvbl9MSU1JVCcsMTApOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcmVsb2FkX0NTU2ltYWdlJywwKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnbG9ja2ZpbGVzJywxKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlRWRpdG9yJywxKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnVHVybk9OVmFsSFRNTCcsMSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ2RvY1R5cGUnLCdYSFRNTCAxLjAgVHJhbnNpdGlvbmFsJyk7JHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuY29kaW5nJywndXRmLTgnKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnVmFsSFRNTFZlcmJvc2UnLDApOyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0UGFnZScsJ2F1dG8nKTskdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b0NvbnRlbnQnLGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvb3JpZ2lucy90ZXN0X2RlZmF1bHQudHBsJyx0cnVlKSk7aW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvYWN0aW9uLmRlZmF1bHRDU1MucGhwJyk7JHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnRQb3N0UmVuZGVyJyxmYWxzZSk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBTY3JpcHREZXBsb3knLCdNb2RpZnkgU2NyaXB0RGVwbG95IE9wdGlvbnMnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignUmVtb3ZlIFNjcmlwdERlcGxveVNjcmlwdCcsJ1JlbW92ZSBTY3JpcHREZXBsb3kgU2NyaXB0Jyk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1JlbW92ZSBTY3JpcHREZXBsb3lHcm91cCcsJ1JlbW92ZSBTY3JpcHREZXBsb3kgR3JvdXAnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3lTY3JpcHQnLCdFZGl0IFNjcmlwdERlcGxveSBTY3JpcHQnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3lHcm91cCcsJ0VkaXQgU2NyaXB0RGVwbG95IEdyb3VwJyk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1N0ZWFsIFNjcmlwdERlcGxveVNjcmlwdCcsJ1N0ZWFsIFNjcmlwdERlcGxveSBTY3JpcHQnKTskdGhpcy0+U2V0VGVtcGxhdGUoJ2Zvcm1fdGVtcGxhdGUnLCR0aGlzLT5kZmx0X2Zvcm1fdGVtcGxhdGUpOyR0aGlzLT5BdWRpdCgwLCR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7aWYoIWZpbGVfZXhpc3RzKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAiKSl7bWtkaXIoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uIi9saWIvU0QtdGVtcCIsMDc3Nyx0cnVlKTt9JHRoaXMtPkF1ZGl0KDEsJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLiIvbGliL1NELXRlbXAvIHdhcyBjcmVhdGVkIG9uIHRoZSBpbnN0YWxsIik7ID8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGRiPWNtc21zKCktPkdldERiKCk7JGRpY3Q9TmV3RGF0YURpY3Rpb25hcnkoJGRiKTskc3FsYXJyYXk9JGRpY3QtPkRyb3BUYWJsZVNRTChTRF9TQ1JJUFROQU1FUyk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKFNEX1NDUklQVE9QVElPTlMpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskc3FsYXJyYXk9JGRpY3QtPkRyb3BUYWJsZVNRTChTRF9TQ1JJUFRQQVJUUyk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKFNEX0dST1VQKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHNxbGFycmF5PSRkaWN0LT5Ecm9wVGFibGVTUUwoU0RfR1JPVVBBU1NJR05NRU5UKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHNxbGFycmF5PSRkaWN0LT5Ecm9wVGFibGVTUUwoU0RfU0NSSVBUVU5ETyk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKFNEX1RBQkxFKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHNxbGFycmF5PSRkaWN0LT5Ecm9wVGFibGVTUUwoU0RfUEVSU0lTVEVOVCk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKFNEX0FMVEVSTkFURSk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHRsb2dnaW4iKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHNxbGFycmF5PSRkaWN0LT5Ecm9wVGFibGVTUUwoU0RfRVhQT1JUUyk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRzcWxhcnJheT0kZGljdC0+RHJvcFRhYmxlU1FMKFNEX0VYUE9SVFMuIl9zZXEiKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHNxbGFycmF5PSRkaWN0LT5Ecm9wVGFibGVTUUwoU0RfRVhQT1JUUy4iX2NvbXAiKTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTskdGhpcy0+QXVkaXQoMCwkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOyA/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJGRiPSR0aGlzLT5HZXREYigpOyRjdXJyZW50X3ZlcnNpb249JG9sZHZlcnNpb247JGN1cnJlbnRfdmVyc2lvbj0kdGhpcy0+R2V0VmVyc2lvbigpOyRkaWN0PU5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7JHRhYm9wdGFycmF5PWFycmF5KCdteXNxbCc9PidUWVBFPU15SVNBTScpO3N3aXRjaCgkY3VycmVudF92ZXJzaW9uKXtjYXNlICIwLjEiOmNhc2UgIjAuMiI6Y2FzZSAiMC4zIjpjYXNlICIwLjQiOmNhc2UgIjAuNSI6Y2FzZSAiMC42IjpjYXNlICIwLjciOmNhc2UgIjAuNy4xIjpjYXNlICIwLjcuMiI6Y2FzZSAiMC43LjMiOmNhc2UgIjAuNy4zIjokZmxkcz0iXHJcblx0XHRcdFx0XHRcdCBncm91cGlkIEkgS0VZIEFVVE8sXHJcblx0XHRcdFx0XHRcdCB0ZW1wbGF0ZV9pZCBJIEtFWSxcclxuXHRcdFx0XHRcdFx0IHByZWZlcnJlZF9zcyBJXHJcblx0XHRcdFx0XHRcdCI7JHNxbGFycmF5PSRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9UQUJMRSwkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskZmxkcz0iZ3JvdXBpZCBJLFxyXG5cdFx0XHRcdFx0XHQgc3R5bGVzaGVldF9pZCBJIjskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX1BFUlNJU1RFTlQsJGZsZHMsJHRhYm9wdGFycmF5KTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JGZsZHM9Imdyb3VwaWQgSSxcclxuXHRcdFx0XHRcdFx0IHN0eWxlc2hlZXRfaWQgSSI7JHNxbGFycmF5PSRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9BTFRFUk5BVEUsJGZsZHMsJHRhYm9wdGFycmF5KTskZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBTY3JpcHREZXBsb3knLCdNb2RpZnkgU2NyaXB0RGVwbG95IE9wdGlvbnMnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignUmVtb3ZlIFNjcmlwdERlcGxveVNjcmlwdCcsJ1JlbW92ZSBTY3JpcHREZXBsb3kgU2NyaXB0Jyk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1JlbW92ZSBTY3JpcHREZXBsb3lHcm91cCcsJ1JlbW92ZSBTY3JpcHREZXBsb3kgR3JvdXAnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3lTY3JpcHQnLCdFZGl0IFNjcmlwdERlcGxveSBTY3JpcHQnKTskdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRWRpdCBTY3JpcHREZXBsb3lHcm91cCcsJ0VkaXQgU2NyaXB0RGVwbG95IEdyb3VwJyk7JHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1N0ZWFsIFNjcmlwdERlcGxveVNjcmlwdCcsJ1N0ZWFsIFNjcmlwdERlcGxveSBTY3JpcHQnKTtjYXNlICIwLjguMSI6JHF1ZXJ5PSdTRUxFQ1QgSUQgRlJPTSAnLlNEX1NDUklQVE5BTUVTOyRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxdWVyeSk7d2hpbGUoJHJlc3VsdCYmISRyZXN1bHQtPkVPRil7JEtleT0kcmVzdWx0LT5maWVsZHNbJ0lEJ107JHNjcmlwdFByZWY9YXJyYXkoKTskc2NyaXB0UHJlZlsnTWluaWZ5J109JHRoaXMtPkdldFByZWZlcmVuY2UoJEtleS4nLU1pbmlmeS1TRCcpOyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRLZXkuJy1NaW5pZnktU0QnKTskc2NyaXB0UHJlZlsnUGF0aE9wJ109JHRoaXMtPkdldFByZWZlcmVuY2UoJEtleS4nLVBhdGhPcC1TRCcpOyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRLZXkuJy1QYXRoT3AtU0QnKTskc2NyaXB0UHJlZlsncm9vdFVSTCddPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCRLZXkuJy1yb290VVJMLVNEJyk7JHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJEtleS4nLXJvb3RVUkwtU0QnKTskc2NyaXB0UHJlZlsndHVybk9mZlByZWxvYWQnXT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgkS2V5LictdHVybk9mZlByZWxvYWQtU0QnKTskdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgkS2V5LictdHVybk9mZlByZWxvYWQtU0QnKTskc2NyaXB0UHJlZlsnTWVkaWFUeXBlJ109JHRoaXMtPkdldFByZWZlcmVuY2UoJEtleS4nLU1lZGlhVHlwZS1TRCcpOyR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCRLZXkuJy1NZWRpYVR5cGUtU0QnKTtkZWJ1Z190b19sb2cocHJpbnRfcigkc2NyaXB0UHJlZix0cnVlKSk7JHRoaXMtPlNldFByZWZlcmVuY2UoJEtleS4nLXNjcmlwdFByZWYtU0QnLHNlcmlhbGl6ZSgkc2NyaXB0UHJlZikpOyRyZXN1bHQtPk1vdmVOZXh0KCk7fSRmbGRzPSJcclxuXHRcdFx0XHRcdFx0aWQgSSgxMSkgTk9UTlVMTCBLRVksXHJcblx0XHRcdFx0XHRcdG5hbWUgQygxNjApIE5PVE5VTEwsXHJcblx0XHRcdFx0XHRcdG5vdGVzIFgsXHJcblx0XHRcdFx0XHRcdHZlcnNpb24gQygyNTUpLFxyXG5cdFx0XHRcdFx0XHRhdXRob3IgQygyNTUpXHJcblx0XHRcdFx0XHRcdCI7JHNxbGFycmF5PSRkaWN0LT5DcmVhdGVUYWJsZVNRTChTRF9FWFBPUlRTLCRmbGRzLCR0YWJvcHRhcnJheSk7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOyRkYi0+Q3JlYXRlU2VxdWVuY2UoU0RfRVhQT1JUUy4iX3NlcSIpOyRmbGRzPSJcclxuXHRcdFx0XHRcdFx0dGhlbWVfaWQgSSgxMSkgTk9UTlVMTCxcclxuXHRcdFx0XHRcdFx0dHlwZSBDKDI1NSkgTk9UTlVMTCxcclxuXHRcdFx0XHRcdFx0c3lzdGVtX2lkIEksXHJcblx0XHRcdFx0XHRcdG5hbWUgQygyNTUpIE5PVE5VTEwsXHJcblx0XHRcdFx0XHRcdG1vZHVsZSBDKDE2MCksXHJcblx0XHRcdFx0XHRcdGxvY2F0aW9uIFhcclxuXHRcdFx0XHRcdFx0Ijskc3FsYXJyYXk9JGRpY3QtPkNyZWF0ZVRhYmxlU1FMKFNEX0VYUE9SVFMuIl9jb21wIiwkZmxkcywkdGFib3B0YXJyYXkpOyRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTskc3FsYXJyYXk9JGRpY3QtPkFkZENvbHVtblNRTChTRF9TQ1JJUFRPUFRJT05TLCJsaXZldmVyc2lvbiBJIik7JGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpO30kdGhpcy0+QXVkaXQoMCwkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7ID8+]]></data>
	</file>
	<file>
	  <filename>/origins/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/origins/test_default.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPlN0eWxlczwvaDE+PCEtLSBIZWFkaW5ncyAtLT48aDI+SGVhZGluZyBIMjwvaDI+PGgzPkhlYWRpbmcgSDM8L2gzPjxoND5IZWFkaW5nIEg0PC9oND48aDU+SGVhZGluZyBINTwvaDU+PCEtLSBTeXN0ZW0gTWVzc2FnZXMgLS0+PGgzIGNsYXNzPSJ0aXQiPlN5c3RlbSBNZXNzYWdlczwvaDM+PHAgY2xhc3M9Im1zZyB3YXJuaW5nIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LjwvcD48cCBjbGFzcz0ibXNnIGluZm8iPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuPC9wPjxwIGNsYXNzPSJtc2cgZG9uZSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+PHAgY2xhc3M9Im1zZyBlcnJvciI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC48L3A+PCEtLSBUYWJzIC0tPjxoMyBjbGFzcz0idGl0Ij5UYWJzPC9oMz48ZGl2IGNsYXNzPSJ0YWJzIGJveCI+PHVsPjxsaT48YSBocmVmPSIjdGFiMDEiPjxzcGFuPkxvcmVtIGlwc3VtPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIjdGFiMDIiPjxzcGFuPkxvcmVtIGlwc3VtPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIjdGFiMDMiPjxzcGFuPkxvcmVtIGlwc3VtPC9zcGFuPjwvYT48L2xpPjwvdWw+PC9kaXY+PCEtLSAvdGFicyAtLT48IS0tIFRhYjAxIC0tPjxkaXYgaWQ9InRhYjAxIj48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LjwvcD48L2Rpdj48IS0tIC90YWIwMSAtLT48IS0tIFRhYjAyIC0tPjxkaXYgaWQ9InRhYjAyIj48cD5Eb25lYyBvcm5hcmUsIGxpYmVybyB2aXRhZSBmYWNpbGlzaXMgbW9sZXN0aWUsIG1pIHNhcGllbiB2ZW5lbmF0aXMgZmVsaXMsIHNlZCBtYXR0aXMgbGVjdHVzIG5pc2kgYWMgbWFzc2EuPC9wPjwvZGl2PjwhLS0gL3RhYjAyIC0tPjwhLS0gVGFiMDMgLS0+PGRpdiBpZD0idGFiMDMiPjxwPk5hbSB1dCBsb3JlbSBldSBvcmNpIHBsYWNlcmF0IGlhY3VsaXMuPC9wPjwvZGl2PjwhLS0gL3RhYjAzIC0tPjwhLS0gMiBjb2x1bW5zIC0tPjxoMyBjbGFzcz0idGl0Ij4yIENvbHVtbnMgKDUwLTUwKTwvaDM+PGRpdiBjbGFzcz0iY29sNTAiPjxwIGNsYXNzPSJ0LWp1c3RpZnkiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBoYXNlbGx1cyBldCByaXN1cy4gTWFlY2VuYXMgbm9uIG51bmMuIFByb2luIGVsZWlmZW5kIHZpdmVycmEgc2FwaWVuLiBEb25lYyBpZCBhdWd1ZS4gRHVpcyBlcmF0IG51bmMsIHZvbHV0cGF0IGEsIGJpYmVuZHVtIHF1aXMsIHBsYWNlcmF0IHZpdGFlLCBlbmltLiBFdGlhbSBjb25zZWN0ZXR1ciwgdmVsaXQgaW4gdml2ZXJyYSB0ZW1wdXMsIHVybmEgYXVndWUgc29sbGljaXR1ZGluIHRlbGx1cywgdml0YWUgaW50ZXJkdW0gYXJjdSBtaSBhdCBlc3QuIERvbmVjIG9ybmFyZSwgbGliZXJvIHZpdGFlIGZhY2lsaXNpcyBtb2xlc3RpZSwgbWkgc2FwaWVuIHZlbmVuYXRpcyBmZWxpcywgc2VkIG1hdHRpcyBsZWN0dXMgbmlzaSBhYyBtYXNzYS4gQ3JhcyBzdXNjaXBpdCwgbmVxdWUgYWMgYXVjdG9yIGludGVyZHVtLCBwZWRlIG5pYmggcG9ydGEgbGVjdHVzLCBuZWMgYWxpcXVldCBudWxsYSBpcHN1bSBhYyBuaWJoLiBNb3JiaSBmZXVnaWF0IGlwc3VtIGlkIG1ldHVzLiBJbiB1cm5hIHNhcGllbiwgcG9ydHRpdG9yIHNlZCwgY29uc2VjdGV0dXIgcXVpcywgbGFjaW5pYSBldSwgYW50ZS4gRG9uZWMgYXQgaXBzdW0uIFNlZCBhcmN1IHRlbGx1cywgZGFwaWJ1cyBzaXQgYW1ldCwgYXVjdG9yIG5lYywgcnV0cnVtIG5vbiwgbGFjdXMuIE5hbSB1dCBsb3JlbSBldSBvcmNpIHBsYWNlcmF0IGlhY3VsaXMuIFByb2luIGJpYmVuZHVtLiBTdXNwZW5kaXNzZSBjb25zZXF1YXQuPC9wPjwvZGl2PjwhLS0gL2NvbDUwIC0tPjxkaXYgY2xhc3M9ImNvbDUwIGYtcmlnaHQiPjxwIGNsYXNzPSJ0LWp1c3RpZnkiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFBoYXNlbGx1cyBldCByaXN1cy4gTWFlY2VuYXMgbm9uIG51bmMuIFByb2luIGVsZWlmZW5kIHZpdmVycmEgc2FwaWVuLiBEb25lYyBpZCBhdWd1ZS4gRHVpcyBlcmF0IG51bmMsIHZvbHV0cGF0IGEsIGJpYmVuZHVtIHF1aXMsIHBsYWNlcmF0IHZpdGFlLCBlbmltLiBFdGlhbSBjb25zZWN0ZXR1ciwgdmVsaXQgaW4gdml2ZXJyYSB0ZW1wdXMsIHVybmEgYXVndWUgc29sbGljaXR1ZGluIHRlbGx1cywgdml0YWUgaW50ZXJkdW0gYXJjdSBtaSBhdCBlc3QuIERvbmVjIG9ybmFyZSwgbGliZXJvIHZpdGFlIGZhY2lsaXNpcyBtb2xlc3RpZSwgbWkgc2FwaWVuIHZlbmVuYXRpcyBmZWxpcywgc2VkIG1hdHRpcyBsZWN0dXMgbmlzaSBhYyBtYXNzYS4gQ3JhcyBzdXNjaXBpdCwgbmVxdWUgYWMgYXVjdG9yIGludGVyZHVtLCBwZWRlIG5pYmggcG9ydGEgbGVjdHVzLCBuZWMgYWxpcXVldCBudWxsYSBpcHN1bSBhYyBuaWJoLiBNb3JiaSBmZXVnaWF0IGlwc3VtIGlkIG1ldHVzLiBJbiB1cm5hIHNhcGllbiwgcG9ydHRpdG9yIHNlZCwgY29uc2VjdGV0dXIgcXVpcywgbGFjaW5pYSBldSwgYW50ZS4gRG9uZWMgYXQgaXBzdW0uIFNlZCBhcmN1IHRlbGx1cywgZGFwaWJ1cyBzaXQgYW1ldCwgYXVjdG9yIG5lYywgcnV0cnVtIG5vbiwgbGFjdXMuIE5hbSB1dCBsb3JlbSBldSBvcmNpIHBsYWNlcmF0IGlhY3VsaXMuIFByb2luIGJpYmVuZHVtLiBTdXNwZW5kaXNzZSBjb25zZXF1YXQuPC9wPjwvZGl2PjwhLS0gL2NvbDUwIC0tPjxkaXYgY2xhc3M9ImZpeCI+PC9kaXY+PCEtLSAzIGNvbHVtbnMgLS0+PGgzIGNsYXNzPSJ0aXQiPjMgQ29sdW1ucyAoMzMtMzMtMzMpPC9oMz48ZGl2IGNsYXNzPSJjb2wzMyI+PHAgY2xhc3M9InQtanVzdGlmeSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGhhc2VsbHVzIGV0IHJpc3VzLiBNYWVjZW5hcyBub24gbnVuYy4gUHJvaW4gZWxlaWZlbmQgdml2ZXJyYSBzYXBpZW4uIERvbmVjIGlkIGF1Z3VlLiBEdWlzIGVyYXQgbnVuYywgdm9sdXRwYXQgYSwgYmliZW5kdW0gcXVpcywgcGxhY2VyYXQgdml0YWUsIGVuaW0uIEV0aWFtIGNvbnNlY3RldHVyLCB2ZWxpdCBpbiB2aXZlcnJhIHRlbXB1cywgdXJuYSBhdWd1ZSBzb2xsaWNpdHVkaW4gdGVsbHVzLCB2aXRhZSBpbnRlcmR1bSBhcmN1IG1pIGF0IGVzdC4gRG9uZWMgb3JuYXJlLCBsaWJlcm8gdml0YWUgZmFjaWxpc2lzIG1vbGVzdGllLCBtaSBzYXBpZW4gdmVuZW5hdGlzIGZlbGlzLCBzZWQgbWF0dGlzIGxlY3R1cyBuaXNpIGFjIG1hc3NhLiBDcmFzIHN1c2NpcGl0LCBuZXF1ZSBhYyBhdWN0b3IgaW50ZXJkdW0sIHBlZGUgbmliaCBwb3J0YSBsZWN0dXMsIG5lYyBhbGlxdWV0IG51bGxhIGlwc3VtIGFjIG5pYmguIE1vcmJpIGZldWdpYXQgaXBzdW0gaWQgbWV0dXMuIEluIHVybmEgc2FwaWVuLCBwb3J0dGl0b3Igc2VkLCBjb25zZWN0ZXR1ciBxdWlzLCBsYWNpbmlhIGV1LCBhbnRlLiBEb25lYyBhdCBpcHN1bS4gU2VkIGFyY3UgdGVsbHVzLCBkYXBpYnVzIHNpdCBhbWV0LCBhdWN0b3IgbmVjLCBydXRydW0gbm9uLCBsYWN1cy4gTmFtIHV0IGxvcmVtIGV1IG9yY2kgcGxhY2VyYXQgaWFjdWxpcy4gUHJvaW4gYmliZW5kdW0uIFN1c3BlbmRpc3NlIGNvbnNlcXVhdC48L3A+PC9kaXY+PCEtLSAvY29sMzMgLS0+PGRpdiBjbGFzcz0iY29sMzMgY2VudGVyIj48cCBjbGFzcz0idC1qdXN0aWZ5Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBQaGFzZWxsdXMgZXQgcmlzdXMuIE1hZWNlbmFzIG5vbiBudW5jLiBQcm9pbiBlbGVpZmVuZCB2aXZlcnJhIHNhcGllbi4gRG9uZWMgaWQgYXVndWUuIER1aXMgZXJhdCBudW5jLCB2b2x1dHBhdCBhLCBiaWJlbmR1bSBxdWlzLCBwbGFjZXJhdCB2aXRhZSwgZW5pbS4gRXRpYW0gY29uc2VjdGV0dXIsIHZlbGl0IGluIHZpdmVycmEgdGVtcHVzLCB1cm5hIGF1Z3VlIHNvbGxpY2l0dWRpbiB0ZWxsdXMsIHZpdGFlIGludGVyZHVtIGFyY3UgbWkgYXQgZXN0LiBEb25lYyBvcm5hcmUsIGxpYmVybyB2aXRhZSBmYWNpbGlzaXMgbW9sZXN0aWUsIG1pIHNhcGllbiB2ZW5lbmF0aXMgZmVsaXMsIHNlZCBtYXR0aXMgbGVjdHVzIG5pc2kgYWMgbWFzc2EuIENyYXMgc3VzY2lwaXQsIG5lcXVlIGFjIGF1Y3RvciBpbnRlcmR1bSwgcGVkZSBuaWJoIHBvcnRhIGxlY3R1cywgbmVjIGFsaXF1ZXQgbnVsbGEgaXBzdW0gYWMgbmliaC4gTW9yYmkgZmV1Z2lhdCBpcHN1bSBpZCBtZXR1cy4gSW4gdXJuYSBzYXBpZW4sIHBvcnR0aXRvciBzZWQsIGNvbnNlY3RldHVyIHF1aXMsIGxhY2luaWEgZXUsIGFudGUuIERvbmVjIGF0IGlwc3VtLiBTZWQgYXJjdSB0ZWxsdXMsIGRhcGlidXMgc2l0IGFtZXQsIGF1Y3RvciBuZWMsIHJ1dHJ1bSBub24sIGxhY3VzLiBOYW0gdXQgbG9yZW0gZXUgb3JjaSBwbGFjZXJhdCBpYWN1bGlzLiBQcm9pbiBiaWJlbmR1bS4gU3VzcGVuZGlzc2UgY29uc2VxdWF0LjwvcD48L2Rpdj48IS0tIC9jb2wzMyAtLT48ZGl2IGNsYXNzPSJjb2wzMyI+PHAgY2xhc3M9InQtanVzdGlmeSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gUGhhc2VsbHVzIGV0IHJpc3VzLiBNYWVjZW5hcyBub24gbnVuYy4gUHJvaW4gZWxlaWZlbmQgdml2ZXJyYSBzYXBpZW4uIERvbmVjIGlkIGF1Z3VlLiBEdWlzIGVyYXQgbnVuYywgdm9sdXRwYXQgYSwgYmliZW5kdW0gcXVpcywgcGxhY2VyYXQgdml0YWUsIGVuaW0uIEV0aWFtIGNvbnNlY3RldHVyLCB2ZWxpdCBpbiB2aXZlcnJhIHRlbXB1cywgdXJuYSBhdWd1ZSBzb2xsaWNpdHVkaW4gdGVsbHVzLCB2aXRhZSBpbnRlcmR1bSBhcmN1IG1pIGF0IGVzdC4gRG9uZWMgb3JuYXJlLCBsaWJlcm8gdml0YWUgZmFjaWxpc2lzIG1vbGVzdGllLCBtaSBzYXBpZW4gdmVuZW5hdGlzIGZlbGlzLCBzZWQgbWF0dGlzIGxlY3R1cyBuaXNpIGFjIG1hc3NhLiBDcmFzIHN1c2NpcGl0LCBuZXF1ZSBhYyBhdWN0b3IgaW50ZXJkdW0sIHBlZGUgbmliaCBwb3J0YSBsZWN0dXMsIG5lYyBhbGlxdWV0IG51bGxhIGlwc3VtIGFjIG5pYmguIE1vcmJpIGZldWdpYXQgaXBzdW0gaWQgbWV0dXMuIEluIHVybmEgc2FwaWVuLCBwb3J0dGl0b3Igc2VkLCBjb25zZWN0ZXR1ciBxdWlzLCBsYWNpbmlhIGV1LCBhbnRlLiBEb25lYyBhdCBpcHN1bS4gU2VkIGFyY3UgdGVsbHVzLCBkYXBpYnVzIHNpdCBhbWV0LCBhdWN0b3IgbmVjLCBydXRydW0gbm9uLCBsYWN1cy4gTmFtIHV0IGxvcmVtIGV1IG9yY2kgcGxhY2VyYXQgaWFjdWxpcy4gUHJvaW4gYmliZW5kdW0uIFN1c3BlbmRpc3NlIGNvbnNlcXVhdC48L3A+PC9kaXY+PCEtLSAvY29sMzMgLS0+PGRpdiBjbGFzcz0iZml4Ij48L2Rpdj48IS0tIFRleHQgQWxpZ25tZW50IC0tPjxoMyBjbGFzcz0idGl0Ij5UZXh0IEFsaWdubWVudDwvaDM+PHAgY2xhc3M9InQtbGVmdCI+TGVmdCA8c3BhbiBjbGFzcz0idGFnIj4oLnQtbGVmdCk8L3NwYW4+PC9wPjxwIGNsYXNzPSJ0LWNlbnRlciI+Q2VudGVyIDxzcGFuIGNsYXNzPSJ0YWciPigudC1jZW50ZXIpPC9zcGFuPjwvcD48cCBjbGFzcz0idC1yaWdodCI+UmlnaHQgPHNwYW4gY2xhc3M9InRhZyI+KC50LXJpZ2h0KTwvc3Bhbj48L3A+PCEtLSBTaXplIGFuZCBIaWdobGlnaHQgLS0+PGgzIGNsYXNzPSJ0aXQiPlRleHQgU2l6ZSBhbmQgSGlnaGxpZ2h0PC9oMz48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvcD48cD48c3Ryb25nPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9zdHJvbmc+IDxzcGFuIGNsYXNzPSJ0YWciPigmbHQ7c3Ryb25nJmd0Oyk8L3NwYW4+PC9wPjxwPjxlbT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvZW0+IDxzcGFuIGNsYXNzPSJ0YWciPigmbHQ7ZW0mZ3Q7KTwvc3Bhbj48L3A+PHA+PGFiYnI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2FiYnI+IDxzcGFuIGNsYXNzPSJ0YWciPigmbHQ7YWJiciZndDspPC9zcGFuPjwvcD48cD48YWNyb255bT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvYWNyb255bT4gPHNwYW4gY2xhc3M9InRhZyI+KCZsdDthY3JvbnltJmd0Oyk8L3NwYW4+PC9wPjxwPjxjb2RlPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9jb2RlPiA8c3BhbiBjbGFzcz0idGFnIj4oJmx0O2NvZGUmZ3Q7KTwvc3Bhbj48L3A+PHA+PHNwYW4gY2xhc3M9ImhlbHAiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9zcGFuPiA8c3BhbiBjbGFzcz0idGFnIj4oLmhlbHApPC9zcGFuPjwvcD48cD48c3BhbiBjbGFzcz0iaGlnaCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0YWciPiguaGlnaCk8L3NwYW4+PC9wPjxwPjxzcGFuIGNsYXNzPSJsb3ciPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9zcGFuPiA8c3BhbiBjbGFzcz0idGFnIj4oLmxvdyk8L3NwYW4+PC9wPjxwPjxzcGFuIGNsYXNzPSJiaWdnZXIiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9zcGFuPiA8c3BhbiBjbGFzcz0idGFnIj4oLmJpZ2dlcik8L3NwYW4+PC9wPjxwPjxzcGFuIGNsYXNzPSJzbWFsbGVyIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvc3Bhbj4gPHNwYW4gY2xhc3M9InRhZyI+KC5zbWFsbGVyKTwvc3Bhbj48L3A+PCEtLSBVbm9yZGVyZWQgTGlzdCAtLT48aDMgY2xhc3M9InRpdCI+VW5vcmRlcmVkIExpc3QgLSA8c3BhbiBjbGFzcz0idGFnIj4odWwubm9zdHlsZSk8L3NwYW4+PC9oMz48dWwgY2xhc3M9Im5vc3R5bGUiPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8dWw+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDx1bD48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PC91bD48L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48L3VsPjwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjwvdWw+PCEtLSBVbm9yZGVyZWQgTGlzdCAtLT48aDMgY2xhc3M9InRpdCI+VW5vcmRlcmVkIExpc3Q8L2gzPjx1bD48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PHVsPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8dWw+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjwvdWw+PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PC91bD48L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48L3VsPjwhLS0gT3JkZXJlZCBMaXN0IChPTCkgLS0+PGgzIGNsYXNzPSJ0aXQiPk9yZGVyZWQgTGlzdDwvaDM+PG9sPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8b2w+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDxvbD48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PC9vbD48L2xpPjxsaT5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldDwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48L29sPjwvbGk+PGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT48bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPjwvb2w+PCEtLSBUYWJsZSAtLT48aDMgY2xhc3M9InRpdCI+VGFibGUgPHNwYW4gY2xhc3M9InRhZyI+KHRhYmxlLm5vc3R5bGUpPC9zcGFuPjwvaDM+PHRhYmxlIGNsYXNzPSJub3N0eWxlIj48dHI+PHRoPkxvcmVtIGlwc3VtPC90aD48dGg+TG9yZW0gaXBzdW08L3RoPjx0aD5Mb3JlbSBpcHN1bTwvdGg+PHRoPkxvcmVtIGlwc3VtPC90aD48dGg+TG9yZW0gaXBzdW08L3RoPjwvdHI+PHRyPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48L3RyPjx0cj48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PC90cj48dHI+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjwvdHI+PHRyPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48L3RyPjx0cj48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PC90cj48L3RhYmxlPjwhLS0gVGFibGUgKFRBQkxFKSAtLT48aDMgY2xhc3M9InRpdCI+VGFibGU8L2gzPjx0YWJsZT48dHI+PHRoPkxvcmVtIGlwc3VtPC90aD48dGg+TG9yZW0gaXBzdW08L3RoPjx0aD5Mb3JlbSBpcHN1bTwvdGg+PHRoPkxvcmVtIGlwc3VtPC90aD48dGg+TG9yZW0gaXBzdW08L3RoPjwvdHI+PHRyPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48L3RyPjx0ciBjbGFzcz0iYmciPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48L3RyPjx0cj48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PC90cj48dHIgY2xhc3M9ImJnIj48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PC90cj48dHI+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjx0ZD5Mb3JlbSBpcHN1bTwvdGQ+PHRkPkxvcmVtIGlwc3VtPC90ZD48dGQ+TG9yZW0gaXBzdW08L3RkPjwvdHI+PC90YWJsZT48IS0tIEZvcm0gLS0+PGgzIGNsYXNzPSJ0aXQiPkZvcm08L2gzPjxmaWVsZHNldD48bGVnZW5kPkxlZ2VuZDwvbGVnZW5kPjx0YWJsZSBjbGFzcz0ibm9zdHlsZSI+PHRyPjx0ZCBzdHlsZT0id2lkdGg6NzBweDsiPklucHV0OjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iIiBjbGFzcz0iaW5wdXQtdGV4dCIgLz48L3RkPjwvdHI+PHRyPjx0ZD5JbnB1dDo8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9IiIgY2xhc3M9ImlucHV0LXRleHQiIGRpc2FibGVkPSJkaXNhYmxlZCIgLz48L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0idmEtdG9wIj5JbnB1dDo8L3RkPjx0ZD48dGV4dGFyZWEgY29scz0iNzUiIHJvd3M9IjciIGNsYXNzPSJpbnB1dC10ZXh0Ij48L3RleHRhcmVhPjwvdGQ+PC90cj48dHI+PHRkPklucHV0OjwvdGQ+PHRkPjxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIC8+TG9yZW0gaXBzdW08L2xhYmVsPiZuYnNwOzxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIC8+TG9yZW0gaXBzdW08L2xhYmVsPiZuYnNwOzxsYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIC8+TG9yZW0gaXBzdW08L2xhYmVsPjwvdGQ+PC90cj48dHI+PHRkPklucHV0OjwvdGQ+PHRkPjxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIC8+TG9yZW0gaXBzdW08L2xhYmVsPiZuYnNwOzxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIC8+TG9yZW0gaXBzdW08L2xhYmVsPiZuYnNwOzxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIC8+TG9yZW0gaXBzdW08L2xhYmVsPjwvdGQ+PC90cj48dHI+PHRkIGNvbHNwYW49IjIiIGNsYXNzPSJ0LXJpZ2h0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iaW5wdXQtc3VibWl0IiB2YWx1ZT0iU3VibWl0IiAvPjwvdGQ+PC90cj48L3RhYmxlPjwvZmllbGRzZXQ+PCEtLSBEZWZpbml0aW9uIExpc3QgLS0+PGgzIGNsYXNzPSJ0aXQiPkRlZmluaXRpb24gTGlzdCA8c3BhbiBjbGFzcz0idGFnIj4oZGwubm9zdHlsZSk8L3NwYW4+PC9oMz48ZGwgY2xhc3M9Im5vc3R5bGUiPjxkdD5Mb3JlbSBpcHN1bTwvZHQ+PGRkPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGQ+PGR0PkxvcmVtIGlwc3VtPC9kdD48ZGQ+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuPC9kZD48ZHQ+TG9yZW0gaXBzdW08L2R0PjxkZD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC48L2RkPjwvZGw+PCEtLSBEZWZpbml0aW9uIExpc3QgLS0+PGgzIGNsYXNzPSJ0aXQiPkRlZmluaXRpb24gTGlzdDwvaDM+PGRsPjxkdD5Mb3JlbSBpcHN1bTwvZHQ+PGRkPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGQ+PGR0PkxvcmVtIGlwc3VtPC9kdD48ZGQ+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQuPC9kZD48ZHQ+TG9yZW0gaXBzdW08L2R0PjxkZD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC48L2RkPjwvZGw+PC9kaXY+PCEtLSAvY29udGVudCAtLT4=]]></data>
	</file>
	<file>
	  <filename>/ScriptDeploy.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgJFNpdGVVdGlsaXRpZXM9Y21zX2pvaW5fcGF0aChjbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddLCdtb2R1bGVzJywnU2l0ZVV0aWxpdGllcycsJ1NpdGVVdGlsaXRpZXMubW9kdWxlLnBocCcpO2lmKCFpc19yZWFkYWJsZSgkU2l0ZVV0aWxpdGllcykpe3JldHVybjt9JG5lY2hvPWNtc19qb2luX3BhdGgoY21zbXMoKS0+Y29uZmlnWydyb290X3BhdGgnXSwnbW9kdWxlcycsJ1NjcmlwdERlcGxveScsJ2xpYicsJ25lY2hvLnBocCcpOyRDU1M9Y21zX2pvaW5fcGF0aChjbXNtcygpLT5jb25maWdbJ3Jvb3RfcGF0aCddLCdtb2R1bGVzJywnU2NyaXB0RGVwbG95JywnbGliJywnTWluaWZ5JywnQ1NTLnBocCcpOyRKYXZhc2NyaXB0PWNtc19qb2luX3BhdGgoY21zbXMoKS0+Y29uZmlnWydyb290X3BhdGgnXSwnbW9kdWxlcycsJ1NjcmlwdERlcGxveScsJ2xpYicsJ01pbmlmeScsJ0phdmFzY3JpcHQucGhwJyk7cmVxdWlyZV9vbmNlKCRTaXRlVXRpbGl0aWVzKTtyZXF1aXJlX29uY2UoJG5lY2hvKTtyZXF1aXJlX29uY2UoJENTUyk7cmVxdWlyZV9vbmNlKCRKYXZhc2NyaXB0KTtkZWZpbmUoJ1NEX1RBQkxFJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3knKTtkZWZpbmUoJ1NEX1BFUlNJU1RFTlQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9wZXJzaXN0ZW50Jyk7ZGVmaW5lKCdTRF9BTFRFUk5BVEUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9hbHRlcm5hdGUnKTtkZWZpbmUoJ1NEX0dST1VQQVNTSUdOTUVOVCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X2dyb3VwYXNzaWdubWVudCcpO2RlZmluZSgnU0RfR1JPVVAnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9ncm91cCcpO2RlZmluZSgnU0RfU0NSSVBUTkFNRVMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHRuYW1lcycpO2RlZmluZSgnU0RfU0NSSVBUT1BUSU9OUycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X3NjcmlwdG9wdGlvbnMnKTtkZWZpbmUoJ1NEX1NDUklQVFBBUlRTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zY3JpcHRkZXBsb3lfc2NyaXB0cGFydHMnKTtkZWZpbmUoJ1NEX1NDUklQVFVORE8nLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3NjcmlwdGRlcGxveV9zY3JpcHR1bmRvJyk7ZGVmaW5lKCdTRF9URU1QJyxjbXNfZGJfcHJlZml4KCkuJ3RlbXBsYXRlcycpO2RlZmluZSgnU0RfRVhQT1JUUycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2NyaXB0ZGVwbG95X2V4cG9ydHMnKTtjbGFzcyBTY3JpcHREZXBsb3kgZXh0ZW5kcyBTaXRlVXRpbGl0aWVze3B1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe3BhcmVudDo6X19jb25zdHJ1Y3QoKTskZ0Ntcz1jbXNtcygpOyRjb25maWc9JmNtc21zKCktPkdldENvbmZpZygpOyRzbWFydHk9JmNtc21zKCktPkdldFNtYXJ0eSgpOyRzbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7aWYoZGVmaW5lZCgnTUQnKSkkc21hcnR5LT5hc3NpZ24oJ01EJyxNRCk7aWYoZGVmaW5lZCgnRk9OVFMnKSkkc21hcnR5LT5hc3NpZ24oJ0ZPTlRTJyxGT05UUyk7aWYoIWRlZmluZWQoJ3VpVGhlbWVjaG9pY2VfbW9kdWxlX1BNJykpZGVmaW5lKCd1aVRoZW1lY2hvaWNlX21vZHVsZV9QTScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VpVGhlbWVjaG9pY2VfbW9kdWxlX1BNJyx1aVRoZW1lY2hvaWNlX0dMT0JBTCkpOyRzbWFydHktPmFzc2lnbigndWlUaGVtZWNob2ljZV9tb2R1bGVfUE0nLHVpVGhlbWVjaG9pY2VfbW9kdWxlX1BNKTtpZighZGVmaW5lZCgnU0NSSVBUX1RFTVBfUEFUSCcpKWRlZmluZSgnU0NSSVBUX1RFTVBfUEFUSCcsJGNvbmZpZ1sncm9vdF9wYXRoJ10uIi8iLmx0cmltKGdldF9zaXRlX3ByZWZlcmVuY2UoJ1VTRV9DTVNNU19URU1QX1BBVEgnLDApPyJ0bXAvdGVtcGxhdGVzX2MvTUQvIjpnZXRfc2l0ZV9wcmVmZXJlbmNlKCdTQ1JJUFRfVEVNUF9QQVRIJywidXBsb2Fkcy9NRF9URU1QLyIpKSwnLycpO2lmKCFkZWZpbmVkKCdTQ1JJUFRfVVJMX0JBU0UnKSlkZWZpbmUoJ1NDUklQVF9VUkxfQkFTRScsJGNvbmZpZ1sncm9vdF91cmwnXS4iLyIubHRyaW0oZ2V0X3NpdGVfcHJlZmVyZW5jZSgnVVNFX0NNU01TX1RFTVBfUEFUSCcsMCk/InRtcC90ZW1wbGF0ZXNfYy9NRC8iOmdldF9zaXRlX3ByZWZlcmVuY2UoJ1NDUklQVF9URU1QX1BBVEgnLCJ1cGxvYWRzL01EX1RFTVAvIikpLCcvJyk7fXZhciAkd29ya2luZ1dpdGg9YXJyYXkoKTt2YXIgJGNzc191cmxfVz0nJzt2YXIgJGFkaktleT0nJzt2YXIgJGNzc191cmw9Jyc7dmFyICRmU2l6ZT0nJzt2YXIgJGJhc2VVUkw9Jyc7dmFyICRjc3NfcGF0aD0nJzt2YXIgJGVycm9yPScnO3ZhciAkcmVwb3J0PScnO3ZhciAkV19pbnB1dD0nJzt2YXIgJEVfaW5wdXQ9Jyc7dmFyICRTQ1JJUFRfUEFDS0FHRT0nJzt2YXIgJGdldG1vZHVsZT0nJzt2YXIgJFRNUD1hcnJheSgpO3ZhciAkQ1NTPWFycmF5KCk7dmFyICRleHBfanM9YXJyYXkoKTt2YXIgJFBHPWFycmF5KCk7dmFyICRNT0RURU1QTEFURT1hcnJheSgpO3ZhciAkR0NCPWFycmF5KCk7dmFyICRVRFQ9YXJyYXkoKTt2YXIgJEZJTEU9YXJyYXkoKTt2YXIgJFBSRUY9YXJyYXkoKTt2YXIgJElORk89YXJyYXkoKTt2YXIgJEZJTkZPPWFycmF5KCk7dmFyICRhY3Q9Jyc7dmFyICRsYXN0YWN0PScnO3ZhciAkcHJvZmlsZT1hcnJheSgpO3ZhciAkZXhwX3RlbXBscz1hcnJheSgpO3B1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCl7cmV0dXJuIGdldF9jbGFzcygkdGhpcyk7fXB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKXtyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpO31wdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpe3JldHVybiAnMC44LjEnO31wdWJsaWMgZnVuY3Rpb24gR2V0SGVscCgpe3JldHVybiAkdGhpcy0+TGFuZygnaGVscCcpO31wdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCl7cmV0dXJuICdqZXJlbXlCYXNzJzt9cHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCl7cmV0dXJuICdqZXJlbXliYXNzQGNhYmxlb25lLm5ldCc7fXB1YmxpYyBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKXtyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaW5jJyk7fXB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpe3JldHVybiB0cnVlO31wdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKXtyZXR1cm4gdHJ1ZTt9cHVibGljIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpe3JldHVybiAnbGF5b3V0Jzt9cHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKXtyZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7fXB1YmxpYyBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKXtyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFN0eWxlc2hlZXQgQXNzb2NpYXRpb25zJyl8fCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1tcGxhdGVzJyl8fCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkZCBTdHlsZXNoZWV0IEFzc29jaWF0aW9ucycpfHwkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgVGVtcGxhdGVzJyl8fCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1JlbW92ZSBUZW1wbGF0ZXMnKTt9cHVibGljIGZ1bmN0aW9uIEhhc1Blcm1pc3Npb24oJHBlcm09J01hbmFnZSBUaGVtZXMnKXtyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7fXB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCl7cmV0dXJuIGZhbHNlO31wdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpe3JldHVybiBmYWxzZTt9cHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpe3JldHVybiBhcnJheSgnU2l0ZVV0aWxpdGllcyc9PicwLjEnKTt9cHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCl7cmV0dXJuICIxLjgiO31wdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCl7cmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpO31wdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKXtyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTt9cHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKXtyZXR1cm4gZmFsc2U7fXB1YmxpYyBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCl7JG1vZD0kdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ1NjcmlwdERlcGxveScpO2lmKGlzX29iamVjdCgkbW9kKSl7JGFIUz1uZXcgYWRtaW5IZWFkZXJTY3JpcHRzKCk7cmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkYUhTLT5qc05jc3MoKSk7fX1wdWJsaWMgZnVuY3Rpb24gc3RhcnRBZG1pbkJ1aWxkKCRwYWNrYWdlPScnKXt9cHVibGljIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKXskdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTskdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGVtcGxhdGVJZCcsJycsJycpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0ZW1wbGF0ZUlkJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2dldG1vZHVsZScsJycsJycpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdnZXRtb2R1bGUnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignU3R5cGUnLCcnLCdDU1MnKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnU3R5cGUnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGF0aCcsJycsJycpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYXRoJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2tlZXBuYW1lJywnJywnJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2tlZXBuYW1lJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3VubWVyZ2UnLCcnLCdUYWtlIGEgZ3JvdXAgYW5kIGJyZWFrIHRoZW0gaW50byBzaWdubGUgc2NyaXB0cyBmb3IgcHJvZHVjdGlvbicpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1bm1lcmdlJyxDTEVBTl9OT05FKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZWZlcicsJycsJ3VzZSBhIGRlZmVyc2NyaXB0IHRvIGxvYWQganMgKE5vdGU6IHVzZSB3aXRoIHBhdGggb3IgZ3JvdXBzIG5vdCBncmVhdCBmb3Igc2lnbmxlIHNjcmlwdHMpJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RlZmVyJyxDTEVBTl9OT05FKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhamF4JywnJywnJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FqYXgnLENMRUFOX05PTkUpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FqYXhzYXZlJywnJywnJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FqYXhzYXZlJyxDTEVBTl9OT05FKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdleGNsdWRlJywnJywnJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2V4Y2x1ZGUnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaW5jbHVkZScsJycsJycpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmNsdWRlJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21vZHVsZScsJycsJycpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtb2R1bGUnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc21hcnR5JywnJywndHVybiBzbWFydHkgb24nKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc21hcnR5JyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21pbmlmeScsJycsJ3RydW4gbWluaWZ5IG9uJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21pbmlmeScsQ0xFQU5fU1RSSU5HKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdtZWRpYV90eXBlJywnJywnc2V0IGEgbWVkaWEgdHlwZSBpZTogbW9yZSB0aGVuIG9uZScpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtZWRpYV90eXBlJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhY2hlX2J1c3RlcicsJycsJ3R1cm4gb2ZmJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhY2hlX2J1c3RlcicsQ0xFQU5fU1RSSU5HKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmc2l6ZScsJycsJ2dldCBzaXplJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZzaXplJyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Jvb3QnLCcnLCdzZXQgdGhlIHJvb3QgdXJsJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Jvb3QnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZHluYW1pYycsJycsJ2ZvcmNlIGl0IHRvIGFsd2F5cyByZWJ1aWxkJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2R5bmFtaWMnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2RfaGVhZGVycycsJycsJ3NlbmRzIGhlYWRlcnMnKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2RfaGVhZGVycycsQ0xFQU5fU1RSSU5HKTskdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbXBvcnQnLCcnLCdzZXQsIHdoZW4gY3NzLCB0byB1c2UgaW1wb3J0IGZvciBpbmxpbmUnKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW1wb3J0JyxDTEVBTl9TVFJJTkcpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2R1bXAnLCcnLCdkdW1wIG91dCB0aGUgY29udGFpbnRzJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2R1bXAnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndXJsJywnJywnZ2V0IG9ubHkgdGhlIHVybCB0byB0aGUgZmlsZScpOyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1cmwnLENMRUFOX1NUUklORyk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZ3JvdXBJRCcsJycsJ3doYXQgaXMgdGhlIGdyb3VwIGlkJyk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2dyb3VwSUQnLENMRUFOX0lOVCk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2NyaXB0SUQnLCcnLCd3aGF0IGlzIHRoZSBzY3JpcHQgaWQnKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2NyaXB0SUQnLENMRUFOX0lOVCk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWN0aW9uJywnZGVmYXVsdCcsJHRoaXMtPkxhbmcoJ2hlbHBfYWN0aW9uJykpOyR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2R1cmF0aW9uJywnJywkdGhpcy0+TGFuZygnaGVscF9kdXJhdGlvbicpKTskdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZHVyYXRpb24nLENMRUFOX0lOVCk7JHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY29va2llbmFtZScsJ2Ntc19zdHlsZW5hbWUnLCR0aGlzLT5MYW5nKCdoZWxwX2Nvb2tpZW5hbWUnKSk7JHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Nvb2tpZW5hbWUnLENMRUFOX1NUUklORyk7JHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bU3NdY3JpcHRbRGRdZXBsb3lcLyg/UDxwYXRoPi4qPykkLycsYXJyYXkoJ2FjdGlvbic9PidkZWZhdWx0Jywnc2RfaGVhZGVycyc9Pid0cnVlJywnZHVtcCc9Pid0cnVlJykpO31wdWJsaWMgZnVuY3Rpb24gYXJyYXlfcmVtb3ZlX2VtcHR5KCRhcnIpeyRuYXJyPWFycmF5KCk7d2hpbGUobGlzdCgka2V5LCR2YWwpPWVhY2goJGFycikpe2lmKGlzX2FycmF5KCR2YWwpKXskdmFsPSR0aGlzLT5hcnJheV9yZW1vdmVfZW1wdHkoJHZhbCk7aWYoY291bnQoJHZhbCkhPTApeyRuYXJyWyRrZXldPSR2YWw7fX1lbHNle2lmKHRyaW0oJHZhbCkhPSIiKXskbmFyclska2V5XT0kdmFsO319fXVuc2V0KCRhcnIpO3JldHVybiAkbmFycjt9ZnVuY3Rpb24gbW9kdWxlSW50ZXJmYWNlKCRyZXF1ZXN0PScnKXtyZXR1cm4gJ2xpYixTRC10ZW1wLFN1cGVyU2l6ZXJUbXAsZm9udGluLXRlbXAnO319ID8+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin/admin_area.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iYWRtaW5fdGFicyB1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiAgc3R5bGU9Im1pbi13aWR0aDogODA2cHg7Ij4NCiAgICA8dWwgY2xhc3M9InVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiBzdHlsZT0ibWluLXdpZHRoOjgwNnB4O2Rpc3BsYXk6YmxvY2s7Ij4NCiAgICAgICAge2ZvcmVhY2ggZnJvbT0kdGFic19hcnJheSBpdGVtPXRhYn0NCiAgICAgICAgICAgIHtpZiAkdGFiLT50YWJfcGVybWlzc2lvbn08bGkgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXRvcCI+PGEgaHJlZj0iI3skdGFiLT50YWJfaWR9IiA+eyRtb2QtPkxhbmcoJHRhYi0+dGFiX2xhbmcpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgIHsvZm9yZWFjaH0NCiAgICA8L3VsPg0KCXtmb3JlYWNoIGZyb209JHRhYnNfYXJyYXkgaXRlbT10YWJ9DQogICAgICAgIHtpZiAkdGFiLT50YWJfcGVybWlzc2lvbn0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUge2lmIGlzc2V0KCR0YWItPnRhYl9wYW5lbF9jbGFzc2VzKX17JHRhYi0+dGFiX3BhbmVsX2NsYXNzZXN9ey9pZn0gdWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIiBpZD0ieyR0YWItPnRhYl9pZH0iPg0KICAgICAgICAgICAgICAgIHskdGFiLT50YWJfaHRtbH0NCiAgICAgICAgICAgIDwvZGl2PiANCiAgICAgICAgey9pZn0NCgl7L2ZvcmVhY2h9DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin/deployment_settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7JGZvcm1zdGFydH0NCg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkdlbmVyYWw8L2xlZ2VuZD4NCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7IG1pbi13aWR0aDoxMTBweDsgaGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JEdyb290VVJMfTwvaDE+DQogICAgICAgIDxwPnskcm9vdFVSTE9wdGlvbl9pbnB1dH17JHJvb3RVUkxPcHRpb25fbGFiZWx9OjwvcD4NCgkJPHAgaWQ9InJvb3RVUkxPcHRpb24iPnskcm9vdFVSTF9pbnB1dH08L3A+DQogICAgICAgIDxici8+PC9kaXY+DQoNCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBoZWlnaHQ6MTEwcHg7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE1MywgMTUzLCAxNTMpOyBmbG9hdDpsZWZ0OyI+PGgxPnNtYXJ0eU9uPC9oMT4NCiAgICAgICAgPHA+eyRzbWFydHlPbl9sYWJlbH06PC9wPg0KCQk8cD57JHNtYXJ0eU9uX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz48L2Rpdj4NCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBoZWlnaHQ6MTEwcHg7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE1MywgMTUzLCAxNTMpOyBmbG9hdDpsZWZ0OyI+PGgxPkhUVFBTIFBPUlQ8L2gxPg0KICAgICAgICA8cD57JEhUVFBTX1BPUlRfbGFiZWx9OjwvcD4NCgkJPHA+eyRIVFRQU19QT1JUX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz48L2Rpdj4NCg0KDQoNCg0KPC9maWVsZHNldD4NCg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkNTUzwvbGVnZW5kPg0KPGRpdiBzdHlsZT0id2lkdGg6IDMwJTttaW4td2lkdGg6MTEwcHg7IGhlaWdodDoxMTBweDtwYWRkaW5nOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTUzLCAxNTMsIDE1Myk7IGZsb2F0OmxlZnQ7Ij48aDE+ZmlsZVRpbWVfY3NzX3VybHM8L2gxPg0KICAgICAgICA8cD57JGZpbGVUaW1lX2Nzc191cmxzX2xhYmVsfTo8L3A+DQoJCTxwPnskZmlsZVRpbWVfY3NzX3VybHNfaW5wdXR9PC9wPg0KICAgICAgICA8YnIvPiAgPC9kaXY+ICAgICAgDQo8ZGl2IHN0eWxlPSJ3aWR0aDogMzAlO21pbi13aWR0aDoxMTBweDsgaGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JHByZWxvYWRfQ1NTaW1hZ2VUaXRsZX08L2gxPg0KICAgICAgICA8cD57JHByZWxvYWRfQ1NTaW1hZ2VfbGFiZWx9OjwvcD4NCgkJPHA+eyRwcmVsb2FkX0NTU2ltYWdlX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz4gIDwvZGl2PiAgDQo8L2ZpZWxkc2V0Pg0KDQo8ZmllbGRzZXQ+DQo8bGVnZW5kPkhUTUw8L2xlZ2VuZD4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskbWFuZ2xldHlwZXRleHR9OjwvcD4NCgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1hbmdsZXR5cGV9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRoaWRlbWVzc2FnZXN0ZXh0fTo8L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRlbWVzc2FnZXNpbnB1dH08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlYnVndGV4dH06PC9wPg0KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVidWdpbnB1dH0geyRkZWJ1Z2xldmVsdGV4dH0geyRkZWJ1Z2xldmVsaW5wdXR9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbmRlbnR3aWR0aHRleHR9OjwvcD4NCgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGluZGVudHdpZHRoaW5wdXR9IHskc3BhY2VzfTwvcD4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8cCBjbGFzcz0icGFnZXRleHQiPnskZm9yY2Vsb3dlcnRhZ3N0ZXh0fTo8L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JjZWxvd2VydGFnc2lucHV0fSB7JGZvcmNlbG93ZXJ0YWdzaGVscH08L3A+DQo8L2Rpdj4NCjwvZmllbGRzZXQ+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+DQoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR8cmVnZXhfcmVwbGFjZTonL2lkPVwiKC4qPykiLyc6Jyd9PC9wPg0KPC9kaXY+DQp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin/group_assignment_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSB1aV9ncmlkIj4NCiAgPHRoZWFkPg0KICAgIDx0cj4NCiAgICA8dGg+eyR0eXBlX2xhYmVsfTwvdGg+DQogICAgICA8dGg+eyRBc3NfaGVhZGVyfTwvdGg+DQogICAgICA8dGg+eyRTYW1wbGVDb2RlfTwvdGg+DQoNCiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgIDwvdHI+DQogIDwvdGhlYWQ+DQogIDx0Ym9keT4NCiAge2lmIGVtcHR5KCRBc3NfaXRlbXMpfTx0cj48dGQgY29sc3Bhbj0iNSI+eyROb19Hcm91cHN9PC90ZD48L3RyPntlbHNlfQ0Ke2ZvcmVhY2ggZnJvbT0kQXNzX2l0ZW1zIGl0ZW09ZW50cnl9DQogICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgIGlkPSdHX3skZW50cnktPnR5cGV9eyRlbnRyeS0+aWR9Jz4NCiAgDQogICAgPHRkPnskZW50cnktPnR5cGVJY29ufTwvdGQ+DQoNCiAgICAgPHRkPjxoMiBzdHlsZT0iZGlzcGxheTppbmxpbmU7IiBjbGFzcz0iZ3JvdW5wY291bnQiPnskZW50cnktPk51bWJlck9mfSBpbiAgPC9oMj48aDEgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+eyRlbnRyeS0+ZGVmYXVsdH08L2gxPntpZiAkZW50cnktPnVubWVyZ2U9PSdmYWxzZSd8fCRlbnRyeS0+dW5tZXJnZT09Jyd9PGg0IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPkB7KntjbXNfbW9kdWxlIG1vZHVsZT1TY3JpcHREZXBsb3kgZ3JvdXBJRD0kZW50cnktPkJ0biBTdHlwZT0kZW50cnktPkdyb3VwdFR5cGUgdXJsPXRydWUgZnNpemU9dHJ1ZX0qfTwvaDQ+PGg2IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPihtaW5pZmllZCk8L2g2PntlbHNlaWYgJGVudHJ5LT51bm1lcmdlPT0ndHJ1ZSd9eyp7Y21zX21vZHVsZSBtb2R1bGU9U2NyaXB0RGVwbG95IGdyb3VwSUQ9JGVudHJ5LT5CdG4gU3R5cGU9JGVudHJ5LT5Hcm91cHRUeXBlIHVubWVyZ2U9dHJ1ZSBub091dFB1dD10cnVlfSp9PGg2IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPnskc2luZ2xlU2NyaXB0fTwvaDY+ey9pZn08L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+U2FtcGxlfTwvdGQ+DQogICAgIDx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KICAgPC90cj4NCnsvZm9yZWFjaH17L2lmfQ0KPC90Ym9keT4NCjwvdGFibGU+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdTY3JpcHRBc3NsaW5rfTwvcD4NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin/import_export.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8ZmllbGRzZXQgc3R5bGU9IndpZHRoOjEwMCU7Ij48bGVnZW5kPjxmb250IHNpemU9IiszIj5GdWxsIHB1c2g8L2ZvbnQ+PC9sZWdlbmQ+DQp7JGZvcm1zdGFydFB1c2h9DQp7JFB1c2hPcHRpb25zfQ0KPGRpdj4NCiAgICA8cD48L3A+DQogICAgPHA+eyRzdWJtaXRQdXNofHJlZ2V4X3JlcGxhY2U6Jy9pZD1cIiguKj8pIi8nOicnfTwvcD4NCjwvZGl2Pg0KeyRmb3JtZW5kfQ0KPC9maWVsZHNldD4NCg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDo0OCU7IGZsb2F0OnJpZ2h0OyI+PGxlZ2VuZD48Zm9udCBzaXplPSIrMiI+bWFrZSBhbiA8L2ZvbnQ+PGZvbnQgc2l6ZT0iKzMiPkV4cG9ydDwvZm9udD48L2xlZ2VuZD4NCnskZm9ybXN0YXJ0RXhwb3J0fQ0KeyRFeHBvcnRPcHRpb25zfQ0KPGRpdj4NCiAgICA8cD48L3A+DQogICAgPHA+eyRzdWJtaXRFeHBvcnR8cmVnZXhfcmVwbGFjZTonL2lkPVwiKC4qPykiLyc6Jyd9PC9wPg0KPC9kaXY+DQp7JGZvcm1lbmR9DQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDo0OCU7IGZsb2F0OmxlZnQ7Ij48bGVnZW5kPjxmb250IHNpemU9IisyIj5JbnN0YWxsIGFuIDwvZm9udD48Zm9udCBzaXplPSIrMyI+RXhwb3J0PC9mb250PjwvbGVnZW5kPg0KeyRmb3Jtc3RhcnRJbXBvcnR9DQp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9Jyd9DQo8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPg0KICAgIHskbW9kLT5MYW5nKCRtZXNzYWdlKX0NCjwvZGl2Pg0Key9pZn0NCjxwPnskbW9kLT5MYW5nKCdpbXBvcnRfZXhwbGFpbicpfTwvcD4NCnskZm9ybWltcG9ydH0NCjxwPnskaW1wb3J0ZmlsZX08L3A+DQp7JHN1Ym1pdGltcG9ydH0NCnskZW5kZm9ybX0NCjxwPjwvcD4NCjxwPnskbW9kLT5MYW5nKCdleGFtcGxlcycsJzxhIGhyZWY9IiMiPicsJzwvYT4nKX08L3A+DQp7JGZvcm1lbmR9DQo8L2ZpZWxkc2V0Pg0KPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin/MODTEMPLATE_listing.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgIDwhLS0gPGRpdiBjbGFzcz0iYWNjb3JkaW9uIj4NCiAgICAgICAgICAgICAgICA8aDMgaWQ9IlRBQlNfSFRNTCI+PHNwYW4gY2xhc3M9InR4dCI+TWFpbiBUZW1wbGF0ZXMgKEhUTUwpPC9zcGFuPjwvaDM+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8aDMgaWQ9IlRBQlNfTUMiPjxzcGFuIGNsYXNzPSJ0eHQiPk1vZHVsZSBDdXN0b20gVGVtcGxhdGVzIChBZG1pbiBUZW1wbGF0ZXMgb25seSk8L3NwYW4+PC9oMz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+IC0tPg0KDQo8ZGl2IGNsYXNzPSJwYW5lIGFjb3IgIHVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIgaWQ9InRlbXBsYXRlcyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij4NCiAgICANCiAgICA8aDI+VGVtcGxhdGVzPC9oMj4NCiAgICB7aWYgZW1wdHkoJG91dHB1dCl8fCRvdXRwdXQ9PScnfXtlbHNlfQ0KICAgICAgICA8dWwgY2xhc3M9InRlbXBsYXRlQ2hvaWNlIiBjbGFzcz0idWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci10b3AiPg0KICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kb3V0cHV0IGtleT1uYW1lIGl0ZW09ZW50cnkgbmFtZT1mb299DQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0idWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIj57JG5hbWV9PC9saT4NCiAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgPC91bD4NCiAgICB7L2lmfQ0KICAgIA0KICAgIHtpZiBlbXB0eSgkb3V0cHV0KXx8JG91dHB1dD09Jyd9eyRtb2QtPkxhbmcoJ05vX1NjcmlwdHMnKX17ZWxzZX0NCiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uIj4NCiAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JG91dHB1dCBrZXk9bmFtZSBpdGVtPWVudHJ5IG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxoMyBpZD0iVEFCU19NVHskc21hcnR5LmZvcmVhY2guZm9vLmluZGV4fSI+PHNwYW4gY2xhc3M9InR4dCI+eyRuYW1lfTwvc3Bhbj48L2gzPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHtpZiAhJHNtYXJ0eS5mb3JlYWNoLmZvby5maXJzdH1zdHlsZT0nZGlzcGxheTpub25lOyd7L2lmfT4NCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIHVpX2dyaWQiPg0KICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskU2NyaXB0TmFtZV9sYWJlbH08L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjI1JSI+UmV2aXNpb25zPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHdpZHRoPSI3NXB4Ij4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICB7YXNzaWduIHZhcj1NIHZhbHVlPSRuYW1lfQ0KICAgICAgICAgICAgICAgICAgICAgICAge2lmIGVtcHR5KCRlbnRyeSl9PHRyPjx0ZCBjb2xzcGFuPSIzIj57JE5vX1NjcmlwdHN9PC90ZD48L3RyPntlbHNlfQ0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGVudHJ5IGtleT1uYW1lIGl0ZW09aXRlbX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0ieyRNfXskaXRlbS5uYW1lfS0tSFRNTCIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSB7aWYgJGl0ZW0uc3RhdHVzLmVkaXRvciE9Jyd9SW5FZGl0IHVpLXN0YXRlLWVycm9yey9pZn0iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IntpZiAkaXRlbS5zdGF0dXMuZWRpdG9yIT0nJ31JbkVkaXQgdWktc3RhdGUtZXJyb3J7L2lmfSI+PGgzPnskaXRlbS5uYW1lfXtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yIT0nJ30gPGVtPiggPGltZyBzcmM9InskZGlyfS9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvaW4tZWRpdC5wbmciIGFsdD0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0gYnkgeyRpdGVtLnN0YXR1cy5lZGl0b3J9IiAvPnskaXRlbS5zdGF0dXMuZWRpdG9yfSBpcyBFZGl0aW5nIHRoaXMgKTwvZW0+ey9pZn08L2gzPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ie2lmICRpdGVtLnN0YXR1cy5lZGl0b3IhPScnfUluRWRpdCB1aS1zdGF0ZS1lcnJvcnsvaWZ9Ij48aDQgc3R5bGU9ImRpc3BsYXk6aW5saW5lOyI+IHsqe2lmICRpdGVtLnZlcnNpb24hPScnfUxpdmUgVmVyc2lvbjp7JGl0ZW0ubGl2ZXZlcnNpb259IC0tIFdvcmtpbmcgUmV2aXNpb246eyRpdGVtLnZlcnNpb24ucmV2aXNpb259ey9pZn0qfSB7JGl0ZW0uZGVmYXVsdH08L2g0PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAgY2xhc3M9IntpZiAkaXRlbS5zdGF0dXMuZWRpdG9yIT0nJ31JbkVkaXQgdWktc3RhdGUtZXJyb3J7L2lmfSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0YmFyIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yIT0nJ31JbkVkaXQgIHVpLXN0YXRlLWVycm9yey9pZn0iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yIT0nJ30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSd7JGl0ZW0uYWN0aW9ucy5zdGVhbH0nPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0ieyRkaXJ9L21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9zdGVhbC5wbmciIGFsdD0ieyRtb2QtPkxhbmcoJ3N0ZWFsJyl9IiBjbGFzcz0ic3RlYWwiLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5hY3Rpb25zLmVkaXQhPScnfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yPT0nJ308YSBocmVmPSd7JGl0ZW0uYWN0aW9ucy5lZGl0fScgY2xhc3M9ImVkaXRfbW9kdWxlX3RlbXBsYXRlIj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0ieyRkaXJ9L21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9lZGl0LnBuZyIgYWx0PSJ7JG1vZC0+TGFuZygnZWRpdCcpfSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGl0ZW0uc3RhdHVzLmVkaXRvcj09Jyd9PC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KntpZiAkaXRlbS5hY3Rpb25zLmNvcHkhPScnfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yPT0nJ308YSBocmVmPSd7JGl0ZW0uYWN0aW9ucy5jb3B5fSc+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9InskZGlyfS9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvY29weS5wbmciIGFsdD0ieyRtb2QtPkxhbmcoJ2NvcHknKX0iIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRpdGVtLnN0YXR1cy5lZGl0b3I9PScnfTwvYT57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRpdGVtLmFjdGlvbnMudGllc3RvIT0nJ30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGl0ZW0uc3RhdHVzLmVkaXRvcj09Jyd9PGEgaHJlZj0neyRpdGVtLmFjdGlvbnMudGllc3RvfSc+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9InskZGlyfS9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvdGllc3RvLnBuZyIgYWx0PSJ7JG1vZC0+TGFuZygndGllc3RvJyl9IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yPT0nJ308L2E+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS52ZXJzaW9uIT0nJ30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGl0ZW0uc3RhdHVzLmVkaXRvcj09Jyd9PGEgaHJlZj0neyRpdGVtLmFjdGlvbnMucmV2ZXJ0fSc+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9InskZGlyfS9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvcmV2ZXJ0LnBuZyIgYWx0PSJ7JG1vZC0+TGFuZygncmV2ZXJ0Jyl9IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yPT0nJ308L2E+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfSp9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRpdGVtLmFjdGlvbnMuZGVsZXRlIT0nJ30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGl0ZW0uc3RhdHVzLmVkaXRvcj09Jyd9PGEgaHJlZj0neyRpdGVtLmFjdGlvbnMuZGVsZXRlfSc+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9InskZGlyfS9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvZGVsZXRlLnBuZyIgYWx0PSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZiAkaXRlbS5zdGF0dXMuZWRpdG9yPT0nJ308L2E+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48cCBjbGFzcz0icGFnZW9wdGlvbnMiPm5ld19zY3JpcHRfbGlua3sqJG5ld19zY3JpcHRfbGluayp9PC9wPiA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgPC9kaXY+DQogICAgey9pZn0NCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin/options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8aDM+eyRtb2RfcHJlZnNfdGl0bGV9PC9oMz4NCjxoci8+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQo8ZGl2IHN0eWxlPSJ3aWR0aDogMzAlO21pbi13aWR0aDoxMTBweDsgbWF4LXdpZHRoOjM1MHB4OyBoZWlnaHQ6MTEwcHg7cGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDE1MywgMTUzLCAxNTMpOyBmbG9hdDpsZWZ0OyI+PGgxPnskbG9ja2ZpbGVzVGl0bGV9PC9oMT4NCiAgICAgICAgPHA+eyRsb2NrZmlsZXNfbGFiZWx9OjwvcD4NCgkJPHA+eyRsb2NrZmlsZXNfaW5wdXR9PC9wPiAgICAgIA0KICAgICAgICA8YnIvPjwvZGl2Pg0KICAgICAgICANCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBtYXgtd2lkdGg6MzUwcHg7aGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JHJldmlzaW9uVGl0bGV9PC9oMT4NCiAgICAgICAgPHA+eyRyZXZpc2lvbl9sYWJlbH06PC9wPg0KCQk8cD57JHJldmlzaW9uX2lucHV0fTwvcD4NCiAgICAgICAgPHA+eyRyZXZpc2lvbl9MSU1JVF9sYWJlbH06eyRyZXZpc2lvbl9MSU1JVF9pbnB1dH08L3A+ICAgICAgICANCiAgICAgICAgPGJyLz48L2Rpdj4NCiAgDQogDQogDQogPGRpdiBzdHlsZT0id2lkdGg6IDMwJTttaW4td2lkdGg6MTEwcHg7ICBtYXgtd2lkdGg6MzUwcHg7aGVpZ2h0OjExMHB4O3BhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxNTMsIDE1MywgMTUzKTsgZmxvYXQ6bGVmdDsiPjxoMT57JHdhdGNoRm9sZGVyVGl0bGV9PC9oMT4NCiAgICAgICAgPHA+eyR3YXRjaEZvbGRlcl9sYWJlbH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0nd2F0Y2hlZCc+eyR3YXRjaGVkRm9sZGVyX2xhYmVsfTp7JHdhdGNoZWRGb2xkZXJzQ291bnR9eyR3YXRjaGVkRm9sZGVyX2lucHV0fTwvcD4gICAgICAgIA0KICAgICAgICA8YnIvPjwvZGl2Pg0KIA0KIA0KICAgICAgICANCjxkaXYgc3R5bGU9IndpZHRoOiAzMCU7bWluLXdpZHRoOjExMHB4OyBtYXgtd2lkdGg6MzUwcHg7aGVpZ2h0OjExMHB4OyBwYWRkaW5nOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTUzLCAxNTMsIDE1Myk7IGZsb2F0OmxlZnQ7Ij48aDE+eyRkZWJ1Z1R9PC9oMT4NCgk8ZGl2Pg0KICAgICAgICA8cD57JGRlYnVnSVRfbGFiZWx9OjwvcD4NCiAgICAgICAgPHA+eyRkZWJ1Z0lUX2lucHV0fTwvcD48YnIvPjxici8+DQoJPC9kaXY+PC9kaXY+DQoNCjxoci8+DQoJPGRpdiBzdHlsZT0iY2xlYXI6bGVmdDsiPg0KCQk8cD57JGZvcm1fc3VibWl0fHJlZ2V4X3JlcGxhY2U6Jy9pZD1cIiguKj8pIi8nOicnfTwvcD4NCgk8L2Rpdj4NCg0KPGRpdiAgc3R5bGU9ImNsZWFyOmxlZnQ7Ij4NCjxoMT57JHVzZUVkaXRvclRpdGxlfTwvaDE+DQoNCjxwPnskdXNlRWRpdG9yX2xhYmVsfTp7JHVzZUVkaXRvcl9pbnB1dH08L3A+ICANCjwhLS08cD57JGVkaXRvckhlaWdodF9sYWJlbH06eyRlZGl0b3JIZWlnaHRfaW5wdXR9PC9wPi0tPg0KDQo8L2Rpdj4NCg0KPGRpdiAgc3R5bGU9ImNsZWFyOmxlZnQ7IiBpZD0iY29weUNtc21zQ3NzIj4NCjxoMT57JG1vZC0+TGFuZygnY29weUNtc21zQ3NzVGl0bGUnKX08L2gxPg0KDQo8cD57JG1vZC0+TGFuZygnY29weUNtc21zQ3NzJyl9OnskZm9ybV9zdWJtaXR8cmVnZXhfcmVwbGFjZTonL2lkPVwiKC4qPykiLyc6Jyd8cmVnZXhfcmVwbGFjZTonL3ZhbHVlPVwiKC4qPykiLyc6J3ZhbHVlPSJDb3B5IEZpbGVzIid9PC9wPiAgDQo8IS0tPHA+eyRlZGl0b3JIZWlnaHRfbGFiZWx9OnskZWRpdG9ySGVpZ2h0X2lucHV0fTwvcD4tLT4NCg0KPC9kaXY+DQoNCg0KDQoJPGRpdiBzdHlsZT0iY2xlYXI6bGVmdDsiPg0KCQk8cD57JGZvcm1fc3VibWl0fHJlZ2V4X3JlcGxhY2U6Jy9pZD1cIiguKj8pIi8nOicnfTwvcD4NCgk8L2Rpdj4NCjxoci8+DQoNCg0KDQo8ZGl2ICBzdHlsZT0iIHRleHQtYWxpZ246Y2VudGVyOyBjbGVhcjpsZWZ0OyI+PGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij57JENsZWFyX2lucHV0fTwvZGl2PjxoMSAgc3R5bGU9ImZsb2F0OmxlZnQ7Ij5DYWNoZSBJbmZvPC9oMT57JGNsZWFyZWRfbGFiZWx9PC9kaXY+DQoNCnskY2FjaGVJbmZvfQ0KICAgICAJDQp7JGZvcm1fZW5kfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin/script_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQogICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIHVpX2dyaWQiPg0KICAgICAgICA8dGhlYWQ+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgPHRoPnskdHlwZV9sYWJlbH08L3RoPg0KICAgICAgICAgICAgICAgIDx0aD57JE5hbWVfbGFiZWx9PC90aD4NCiAgICAgICAgICAgICAgICA8dGg+eyRTY3JpcHROYW1lX2xhYmVsfTwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskU2luZ2xlQ29kZV9sYWJlbH08L3RoPg0KICAgICAgICAgICAgICAgIDx0aD4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgPC90cj4NCiAgICAgICAgPC90aGVhZD4NCiAgICAgICAgPHRib2R5Pg0KICAgICAgICAgICAge2lmIGVtcHR5KCRpdGVtcyl9DQogICAgICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI1Ij57JE5vX1NjcmlwdHN9PC90ZD48L3RyPg0KICAgICAgICAgICAge2Vsc2V9DQogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSB7JGVudHJ5LT5lZGl0TW9kZX0iIGlkPSd7JGVudHJ5LT50eXBlfXskZW50cnktPmlkfSc+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ieyRlbnRyeS0+ZWRpdE1vZGV9Ij57JGVudHJ5LT50eXBlSWNvbn08L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InskZW50cnktPmVkaXRNb2RlfSI+PGgzPnskZW50cnktPm5hbWV9PC9oMz48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InskZW50cnktPmVkaXRNb2RlfSI+PGg0IHN0eWxlPSJkaXNwbGF5OmlubGluZTsiPnskZW50cnktPmRlZmF1bHR9IEAgeyRlbnRyeS0+c2NyaXB0U2l6ZX0ge2lmICRlbnRyeS0+UmV2aXNpb24hPScnfSAtLSAgeyRlbnRyeS0+UmV2aXNpb259ey9pZn08L2g0PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0ieyRlbnRyeS0+ZWRpdE1vZGV9Ij48aDQ+eyRlbnRyeS0+Z2V0VGFnfTwvaDQ+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ7JGVudHJ5LT5lZGl0TW9kZX0iPjxkaXYgY2xhc3M9ImVkaXRiYXIgeyRlbnRyeS0+ZWRpdE1vZGV9Ij57JGVudHJ5LT5zdGVhbH17JGVudHJ5LT5lZGl0bGlua317JGVudHJ5LT5jb3B5bGlua317JGVudHJ5LT5yZXZlcnR9eyRlbnRyeS0+ZGVsZXRlbGlua308L2Rpdj48L3RkPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgPC90Ym9keT4NCiAgICA8L3RhYmxlPg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXdfc2NyaXB0X2xpbmt9PC9wPjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin/validation_settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDoyNTBweDsgZmxvYXQ6bGVmdDsiPjxsZWdlbmQ+PGZvbnQgc2l6ZT0iKzMiPkNTUzwvZm9udD48L2xlZ2VuZD4NCnskZm9ybXN0YXJ0fQ0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVHVybk9OVmFsX2xhYmxlfTogeyRUdXJuT05WYWxfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskaG90TGlua0NoZWNrX2xhYmxlfTogeyRob3RMaW5rQ2hlY2tfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskU2hvd1ZhbF9sYWJsZX06IHskU2hvd1ZhbF9pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRDU1Nwcm9maWxlX2xhYmxlfTogeyRDU1Nwcm9maWxlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JHVzZXJtZWRpdW1fbGFibGV9OiB7JHVzZXJtZWRpdW1faW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVkFMTGFuZ19sYWJsZX06IHskVkFMTGFuZ19pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyR3M2NDU1N3YXJuaW5nX2xhYmxlfTogeyR3M2NDU1N3YXJuaW5nX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2Pg0KICAgICAgICA8cD57JGZpbHRlclByb3BfbGFibGV9OjwvcD4NCiAgICAgICAgPHA+eyRmaWx0ZXJQcm9wX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCg0KDQogICAgPGRpdj4NCiAgICAgICAgPHA+PC9wPg0KICAgICAgICA8cD57JHN1Ym1pdH08L3A+DQogICAgPC9kaXY+DQp7JGZvcm1lbmR9DQo8L2ZpZWxkc2V0Pg0KDQoNCg0KPGZpZWxkc2V0IHN0eWxlPSJ3aWR0aDoyNTBweDsgZmxvYXQ6bGVmdDsiPjxsZWdlbmQ+PGZvbnQgc2l6ZT0iKzMiPkhUTUw8L2ZvbnQ+IDxmb250IHNpemU9Ii0xIiBjb2xvcj0iIzk5MDAwMCI+Q29taW5nIHNvb248L2ZvbnQ+PC9sZWdlbmQ+DQp7JGZvcm1zdGFydEhUTUx9DQogICAgPGRpdj4NCiAgICAgICAgPHA+eyRUdXJuT05WYWxfbGFibGV9OiB7JFR1cm5PTlZhbEhUTUxfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskZG9jVHlwZV9sYWJsZX06PC9wPg0KICAgICAgICA8cD57JGRvY1R5cGVfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgICA8ZGl2Pg0KICAgICAgICA8cD57JGVuY29kaW5nX2xhYmxlfTo8L3A+DQogICAgICAgIDxwPnskZW5jb2RpbmdfaW5wdXR9PC9wPg0KICAgIDwvZGl2PiAgIA0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVkFMTGFuZ19sYWJsZX06PC9wPg0KICAgICAgICA8cD57JFZBTExhbmdfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXY+DQogICAgICAgIDxwPnskVmFsSFRNTFZlcmJvc2VfbGFibGV9OiB7JFZhbEhUTUxWZXJib3NlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJzZWxlY3QgZGVmYXVsdENvbnRlbnQiPg0KICAgICAgICA8cD57JGRlZmF1bHRQYWdlX2xhYmxlfTo8L3A+DQogICAgICAgIDxwPnskZGVmYXVsdFBhZ2VfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIA0KICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMgZGVmYXVsdENvbnRlbnQgb3AxIiB7aWYgJGRlZmF1bHRQYWdlX2lzIT0ndXNlckNob2ljZSd9c3R5bGU9ImRpc3BsYXk6bm9uZTsiey9pZn0+DQogICAgICAgIDxwPnskdXNlckRlZmF1bHRQYWdlX2xhYmxlfTo8L3A+DQogICAgICAgIDxwPnskdXNlckRlZmF1bHRQYWdlX2lucHV0fTwvcD4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Im9wdGlvbnMgZGVmYXVsdENvbnRlbnQgb3AyIiB7aWYgJGRlZmF1bHRQYWdlX2lzIT0ndXNlckdlbmVyYXRlZCd9c3R5bGU9ImRpc3BsYXk6bm9uZTsiey9pZn0+DQogICAgICAgIDxwPnskb3duQ29udGVudF9sYWJsZX06PC9wPg0KICAgICAgICA8cD57JG93bkNvbnRlbnRfaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdj4NCiAgICAgICAgPHA+PC9wPg0KICAgICAgICA8cD57JHN1Ym1pdEhUTUx8cmVnZXhfcmVwbGFjZTonL2lkPVwiKC4qPykiLyc6Jyd9PC9wPg0KICAgIDwvZGl2Pg0KeyRmb3JtZW5kfQ0KPC9maWVsZHNldD4NCg0KPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/associations.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGZvbnQgc2l6ZT0iLTEiIGNvbG9yPSIjOTkwMDAwIj5Db21pbmcgc29vbjwvZm9udD4NCg0KDQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgdWlfZ3JpZCI+DQogIDx0aGVhZD4NCiAgICAgIDx0cj4NCiAgICAgICAgIDx0aD57JGlkdGV4dH08L3RoPg0KICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4NCiAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPnskYWN0aXZldGV4dH0mbmJzcDs8L3RoPg0KICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRkZWZhdWx0dGV4dH0mbmJzcDs8L3RoPg0KICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyR2YWxpZHRleHR9PC90aD4NCiAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwO3skdXNlZHRleHR9PC90aD4NCiAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDsmbmJzcDs8L3RoPg0KICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7Jm5ic3A7PC90aD4NCiAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOyZuYnNwOzwvdGg+DQogICAgIDwvdHI+DQogIDwvdGhlYWQ+DQogIDx0Ym9keT4NCiAgICB7Zm9yZWFjaCBmcm9tPSR0ZW1wbGF0ZXMgaXRlbT0nZW50cnknfQ0KICAgICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIGlkPSJ7JGVudHJ5LT5yb3dJZH0iPg0KICAgICAgICA8dGQ+eyRlbnRyeS0+aWR9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPm5hbWV9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPmFjdGl2ZV9mbGFnfTwvdGQ+DQogICAgICAgIDx0ZD57JGVudHJ5LT5kZWZhdWx0X2ZsYWd9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPnZhbGlkX2ZsYWd9PC90ZD4NCiAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPnskZW50cnktPnVzZWRfY291bnR9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPmVkaXRjc3NfbGlua308L3RkPg0KICAgICAgICA8dGQ+eyRlbnRyeS0+Y29weV9saW5rfTwvdGQ+DQogICAgICAgIDx0ZD57JGVudHJ5LT5lZGl0X2xpbmt9PC90ZD4NCiAgICAgICAgPHRkPnskZW50cnktPmRlbGV0ZV9saW5rfTwvdGQ+DQogICAgICA8L3RyPg0KICAgIHsvZm9yZWFjaH0NCiAgICA8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHNwYW4gc3R5bGU9ImZsb2F0OiBsZWZ0OyI+eyRhZGRfbGlua308L3NwYW4+DQo8L2Rpdj4NCg0K]]></data>
	</file>
	<file>
	  <filename>/templates/css_to_import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0iY3NzX3NlbGVjdGlvbl9hcmVhIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkZGO3BhZGRpbmc6MjBweCAxMHB4OyI+DQogICAgPGgyPnskbW9kLT5sYW5nKCdzZWxlY3RDbXNtc0NzcycpfTwvaDI+DQogICAgPGg1PnskbW9kLT5sYW5nKCdzZWxlY3RDbXNtc0Nzc19kaXNjcmlwdGlvbicpfTwvaDU+PGJyLz4NCiAgICB7JGZvcm1zdGFydH0NCiAgICAgICAgPHVsIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDVweDsiPg0KICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjc3NfdG9faW1wb3J0IGl0ZW09Y3NzfQ0KICAgICAgICAgICAgPGxpPjxsYWJlbD57JGNzcy5pbnB1dH0gLSB7JGNzcy5uYW1lfSh7JGNzcy5jc3NpZH0pPC9sYWJlbD48L2xpPg0KICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgIDwvdWw+DQogICAgICAgIDxici8+DQogICAgICAgIHskc3VibWl0fXskY2FuY2VsfQ0KICAgIHskZm9ybWVuZH0NCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/editAssignment.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9eyokaGlkZGVuKn17JGhpZGRlbk1vZGV9DQo8ZmllbGRzZXQgc3R5bGU9IndpZHRoOjEwMCU7Ij4NCiAgICB7aWYgKCRTY3JpcHRQaWNrZXIhPScnKX08aDEgY2xhc3M9ImluaVNpemUiIHN0eWxlPSJmbG9hdDpyaWdodDsiPnskZmluaXNofXskY2FuY2VsfTwvaDE+ey9pZn0NCiAgICB7aWYgKCRTY3JpcHRQaWNrZXI9PScnKX08c3BhbiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij57JFNhdmV9PC9zcGFuPnsvaWZ9DQoNCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDozMyU7ZmxvYXQ6bGVmdDsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNjY2OyI+DQogICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzo1cHg7Ij4gPGgyPnskbW9kLT5MYW5nKCdHcm91cHRTZXRfbGFiZWwnKX08L2gyPg0KICAgICAgICB7JEdyb3VwdFNldH08L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDozMyU7ZmxvYXQ6bGVmdDsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjNjY2OyI+DQogICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzo1cHg7Ij4gPGgyPnskbW9kLT5MYW5nKCdHcm91cHRUeXBlX2xhYmVsJyl9PC9oMj4NCiAgICAgICAgeyRHcm91cHRUeXBlfTwvZGl2Pg0KICAgIDwvZGl2PiANCiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDozMyU7ZmxvYXQ6bGVmdDsiPiAgIA0KICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjVweDsiPiA8aDI+eyRtb2QtPkxhbmcoJ3VubWVyZ2VUaXRsZScpfTwvaDI+DQogICAgICAgIHskdW5tZXJnZX0gPC9kaXY+IA0KICAgIDwvZGl2PiANCiAgICA8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+DQo8L2ZpZWxkc2V0PiANCjxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0ie2lmICFpc3NldCgkU2NyaXB0TGlzdCl9ZGlzcGxheTpub25lO3svaWZ9Ij4NCiAgICA8ZGl2IGNsYXNzPSJwYWdldGFibGUiIHN0eWxlPSJ3aWR0aDoxMDAlOyI+DQoJCTxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7IG1heC13aWR0aDozMCU7d2lkdGg6MTAwJTsiPg0KICAgICAgICAgICAgPGRpdiBzdHlsZT0iIHBhZGRpbmc6NXB4OyAiPg0KICAgICAgICAgICAgICAgIDxoMT57JG1vZC0+TGFuZygnU2NyaXB0UGlja2VyX2xhYmVsJyl9PC9oMT4NCiAgICAgICAgICAgICAgICA8dWwgaWQ9InNvcnRhYmxlMSIgY2xhc3M9J3sqZHJvcGZhbHNlKn0gY29ubmVjdGVkU29ydGFibGUgdWktc29ydGFibGUgbm90dXNlZCc+DQogICAgICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JFNjcmlwdFBpY2tlciBpdGVtPWVudHJ5IG5hbWU9U2l0fQ0KICAgICAgICAgICAgICAgICAgICAgICAge2lmICEkYWxsU2NyaXB0c1VzZWR9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IHRhcl97JGVudHJ5LT5TY3JpcHRpZH0gU2NyaXB0cG9vbCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPScuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbWFya2VyLnBuZycgYWx0PSdkcmFnIHRvIHJlb3JkZXInIGNsYXNzPSdoYW5kbGUnIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHskZW50cnktPlNjcmlwdG5hbWV9PGxhYmVsPnskZW50cnktPlNjcmlwdG5hbWVMYWJsZX08L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT53YXRjaEFibGV9PGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy93YXRjaGVkLnBuZycgYWx0PScnIGNsYXNzPScnIC8+ey9pZn08YnIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICB7L2lmfSAgDQogICAgICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSdwb29sRW1wdHknIGNsYXNzPSd1aS1zdGF0ZS1kaXNhYmxlZCB7aWYgISRhbGxTY3JpcHRzVXNlZH1oaWRkZW57L2lmfSc+eyRtb2QtPkxhbmcoJ2FsbFNjcmlwdHNVc2VkJyl9PC9saT4NCiAgICAgICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kU2NyaXB0UGlja2VyaGlkZGVuIGl0ZW09ZW50cnl9DQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9J3VpLXN0YXRlLWRlZmF1bHQgaGlkZGVuIHRhcl97JGVudHJ5LT5TY3JpcHRpZH0gU2NyaXB0cG9vbCc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9tYXJrZXIucG5nJyBhbHQ9J2RyYWcgdG8gcmVvcmRlcicgY2xhc3M9J2hhbmRsZScgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JGVudHJ5LT5TY3JpcHRuYW1lfTxsYWJlbD57JGVudHJ5LT5TY3JpcHRuYW1lTGFibGV9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT53YXRjaEFibGV9PGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy93YXRjaGVkLnBuZycgYWx0PScnIGNsYXNzPScnIC8+ey9pZn08YnIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofSAgIA0KICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2hpZGRlbic+IHskYWRkfTwvc3Bhbj4NCiAgICAgICAgICAgIDwvZGl2Pg0KCQk8L2Rpdj4NCiAgICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsgbWF4LXdpZHRoOjY1JTsgd2lkdGg6MTAwJTsiPg0KICAgICAgICAJPGRpdiBzdHlsZT0iIHBhZGRpbmc6NXB4OyI+DQogICAgICAgICAgICAgICAgPGgxPnskbW9kLT5MYW5nKCdncm91cHlUaXRsZScpfSA8L2gxPg0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idWktc29ydGFibGUgY29ubmVjdGVkU29ydGFibGUgdXNlZCIgPg0KICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRTY3JpcHRMaXN0IGl0ZW09ZW50cnl9DQogICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IHskZW50cnktPmVkaXRNb2RlfSB0YXJfeyRlbnRyeS0+U2NyaXB0aWR9IFNjcmlwdExpc3QiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdyZU9yMyc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPScuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbWFya2VyLnBuZycgYWx0PSdkcmFnIHRvIHJlb3JkZXInIGNsYXNzPSdoYW5kbGUnIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJTY3JpcHRPUkRFUlt7JGVudHJ5LT5TY3JpcHRpZH1dIiB2YWx1ZT0ieyRlbnRyeS0+U2NyaXB0T1JERVJ9IiAgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIyIiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ncmVPcjQnPjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ncmVPcjUnPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JGVudHJ5LT5lZGl0bGlua30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3JlT3IxJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9tYXJrZXIucG5nJyBhbHQ9J2RyYWcgdG8gcmVvcmRlcicgY2xhc3M9J2hhbmRsZScgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3JlT3IyJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J25hbWUnPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRlbnRyeS0+ZGVmYXVsdH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZDp7JGVudHJ5LT5uYW1lfSB7aWYgJGVudHJ5LT53YXRjaEFibGV9PGltZyBzcmM9Jy4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy93YXRjaGVkLnBuZycgYWx0PScnIGNsYXNzPScnIC8+ey9pZn0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBADQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50U2l6ZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JGVudHJ5LT5zY3JpcHRTaXplfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICA8L2Rpdj4NCiAgICANCiAgICA8aDEgc3R5bGU9ImZsb2F0OnJpZ2h0OyBkaXNwbGF5OmlubGluZTsiPnskUkVPUkRFUn08L2gxPg0KICAgIDxoMSBzdHlsZT0iZmxvYXQ6bGVmdDsgZGlzcGxheTppbmxpbmU7Ij57JG1vZC0+TGFuZygnR3JvdXB0U2l6ZV9sYWJlbCcpfTogPHNwYW4+eyRHcm91cHRTaXplfTwvc3Bhbj48L2gxPg0KCTxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4NCjwvZGl2PnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/editcssassoc.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRlcnJvcil9DQogIDxoND48Zm9udCBjb2xvcj0icmVkIj5FcnJvcjogeyRlcnJvcn08L2ZvbnQ+PC9oND4NCnsvaWZ9DQp7JHN0YXJ0Zm9ybX17JGhpZGRlbn0NCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRsYWJlbF90ZW1wbGF0ZX08L3A+DQogIDwvZGl2Pg0KICANCiAgPGZpZWxkc2V0Pg0KICAgIDxsZWdlbmQ+eyRwcm9tcHRfcGVyc2lzdGVudH08L2xlZ2VuZD4NCiAgICB7aWYgaXNzZXQoJHBlcnNpc3RlbnRzKSAmJiBjb3VudCgkcGVyc2lzdGVudHMpID4gMH0NCiAgICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgdWlfZ3JpZCI+DQogICAgICA8dGhlYWQ+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4NCiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgIDwvdHI+DQogICAgICA8L3RoZWFkPg0KICAgICAgPHRib2R5PiANCiAgICAgICAge2ZvcmVhY2ggZnJvbT0kcGVyc2lzdGVudHMgaXRlbT0ncGVyc2lzdCd9DQoJICAJCTx0ciBjbGFzcz0ieyRwZXJzaXN0LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRwZXJzaXN0LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRwZXJzaXN0LT5yb3djbGFzc30nOyI+DQogICAgICAgICAgICA8dGQ+eyRwZXJzaXN0LT5uYW1lfTwvdGQ+DQogICAgICAgICAgICA8dGQ+eyRwZXJzaXN0LT5lZGl0bGlua308L3RkPg0KICAgICAgICAgICAgPHRkPnskcGVyc2lzdC0+bW92ZXVwbGlua308L3RkPg0KICAgICAgICAgICAgPHRkPnskcGVyc2lzdC0+bW92ZWRvd25saW5rfTwvdGQ+DQogICAgICAgICAgICA8dGQ+eyRwZXJzaXN0LT5yZW1vdmVsaW5rfTwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgey9mb3JlYWNofQ0KICAgICAgPC90Ym9keT4NCiAgICA8L3RhYmxlPg0KICAgIHsvaWZ9DQoNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hZGR9PC9wPg0KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hZGRwZXJzaXN0fXskYnV0dG9uX2FkZHBlcnNpc3R9PC9wPg0KICAgIDwvZGl2Pg0KICA8L2ZpZWxkc2V0Pg0KDQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9wcmVmZXJyZWR9PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcHJlZmVycmVkX3N0eWxlc2hlZXR9PC9wPg0KICA8L2Rpdj4NCg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfYWx0ZXJuYXRlX3N0eWxlc2hlZXR9PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWx0ZXJuYXRlX3N0eWxlc2hlZXR9PC9wPg0KICA8L2Rpdj4NCg0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskYXBwbHl9eyRjYW5jZWx9PC9wPg0KICA8L2Rpdj4NCnskZW5kZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/templates/edit_script.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtb2RlPT0nYWRkJ30NCnskZm9ybXN0YXJ0fQ0KeyR1c2VyaW5mb30NCgk8ZGl2IGlkPSdoaWRkZW5JbnB1dHMnPnskaGlkZGVufTwvZGl2Pg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxwID57JG1vZC0+TGFuZygnU2NyaXB0TmFtZV9sYWJlbCcpfTo8L3A+DQogICAgICAgICAgPHAgaWQ9InNjcmlwdE5hbWUiPnskU2NyaXB0U2V0X2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCdzY3JpcHRUeXBlX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICA8cCA+eyRzY3JpcHRUeXBlX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAge2lmIGlzc2V0KCRNZWRpYVR5cGVfaW5wdXQpfQ0KICAgICAgIDxkaXYgaWQ9Ik1lZGlhVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgIDxwID57JG1vZC0+TGFuZygnTWVkaWFUeXBlX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICA8cCA+eyRNZWRpYVR5cGVfaW5wdXR9PC9wPg0KICAgICAgICAgIA0KICAgICAgICAgIA0KICAgICAgICAgIDxkaXYgY2xhc3M9ImN1c3RvbV9tZWRpYV9hcmVhIj4NCiAgICAgICAgICA8cD57JG1vZC0+TGFuZygnY3VzdG9tX21lZGlhJyl9PC9wPg0KICAgICAgICAgIDxwPnskbW9kLT5MYW5nKCdjdXN0b21fbWVkaWFfbm90ZScpfTwvcD4NCiAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25JRH1jdXN0b21fbWVkaWEiIGNsYXNzPSJjdXN0b21fbWVkaWEiID57JGN1c3RvbV9tZWRpYX08L3RleHRhcmVhPg0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIA0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgey9pZn0NCiAgICAgICAgPGRpdiA+DQogICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCdNaW5pZnlfbGFiZWwnKX06PC9wPg0KICAgICAgICAgIDxwID57JE1pbmlmeV9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2ID4NCiAgICAgICAgICA8cCA+eyRtb2QtPkxhbmcoJ3R1cm5PZmZQcmVsb2FkX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICA8cCA+eyR0dXJuT2ZmUHJlbG9hZF9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxwID57JHJvb3RVUkxPcHRpb25faW5wdXR9eyRtb2QtPkxhbmcoJ3Jvb3RVUkxPcHRpb25fbGFiZWwnKX06PC9wPg0KICAgICAgICAgIDxwIGlkPSJyb290VVJMT3B0aW9uIiBzdHlsZT0iZGlzcGxheTpub25lOyI+eyRyb290VVJMX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgPHAgPnskVXNlUGF0aE9wdGlvbl9pbnB1dH17JG1vZC0+TGFuZygncGF0aE9wdGlvbl9sYWJlbCcpfTo8L3A+DQogICAgICAgICAgPHAgaWQ9InBhdGhPcHRpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij57JHBhdGhPcHRpb25faW5wdXR9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgYnV0dG9ucyI+DQogICAgeyRzdWJtaXR9eyRjYW5jZWx9DQogICAgPC9kaXY+DQp7JGZvcm1lbmR9DQoNCntlbHNlfQ0KDQoNCg0KDQoNCg0KDQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+eyRzY3JpcHRUeXBlSlN9PC9kaXY+DQp7aWYgJHNtYXJ0eS5nZXQuaW5zZXJ0Q29kZT09J3RydWUnfHwkc21hcnR5LmdldC5vcHRpbWlzZT09J3RydWUnfXskZm9ybXN0YXJ0fHJlZ2V4X3JlcGxhY2U6Ii8oLio/KWFjdGlvbj1cIiguKj8pXCIoLio/KS8iOickMWFjdGlvbj0iJDI/c2hvd3RlbXBsYXRlPWZhbHNlIiQzIG1ldGhvZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSInfQ0Ke2Vsc2V9eyRmb3Jtc3RhcnR9eyR1c2VyaW5mb308ZGl2IGlkPSdoaWRkZW5JbnB1dHMnPnskaGlkZGVufTwvZGl2Pg0Key9pZn0NCg0KDQo8ZGl2IHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBjbGFzcz0nRWRpdGluZyc+eyR0eXBlfXskaWR9PC9kaXY+DQp7aWYgJHNtYXJ0eS5nZXQuaW5zZXJ0Q29kZT09J3RydWUnfTxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjtoZWlnaHQ6MTE0cHg7bWFyZ2luLXRvcDowO3BhZGRpbmc6MTVweDsiPjxkaXYgaWQ9Imluc2VydEJsb2NrIj4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cD57JG1vZC0+TGFuZygnaW5zZXJ0Q29kZV9sYWJlbCcpfXskaW5zZXJ0Q29kZV9pbnB1dH08L3A+DQogICAgICAgICAgICAgICAgICAgICAgPHA+eyRtb2QtPkxhbmcoJ2luc2VydENvZGVBdF9sYWJlbCcpfSA8c2VsZWN0IG5hbWU9IndoZXJlIiBpZD0naW5zZXJ0Q2hvaWNlJz4NCiAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InN0YXJ0Ij5TdGFydDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImVuZCI+RW5kPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhdExpbmUiPkF0IGxpbmU8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9J2luc2VydEF0JyBzdHlsZT0nZGlzcGxheTpub25lOyc+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJzdGFydCIgbmFtZT0nbTFfaW5zZXJ0Q29kZUF0X2lucHV0JyBpZD0iaW5zZXJ0Q29kZUF0X2lucHV0Ii8+PC9zcGFuPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iSW5zZXJ0IiBuYW1lPSdtMV9kb0luc2VydENvZGUnIGlkPSJkb0luc2VydENvZGUiLz48L3A+DQogICAgICAgICAgICAgICAgIDwvZGl2Pg0KPC9kaXY+PC9kaXY+e2xpdGVyYWx9PHN0eWxlPmJvZHksaHRtbHttYXJnaW46MHB4O3BhZGRpbmc6MHB4O308L3N0eWxlPnsvbGl0ZXJhbH0NCg0Ke2Vsc2VpZiAkc21hcnR5LmdldC5vcHRpbWlzZT09J3RydWUnfTxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjtoZWlnaHQ6NTM1cHg7bWFyZ2luLXRvcDowO3BhZGRpbmc6MTVweDsiPjxkaXYgaWQ9Imluc2VydEJsb2NrIj4NCntsaXRlcmFsfQ0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICBmdW5jdGlvbiBlbmFibGVfZGlzYWJsZV9wcmVzZXJ2ZSgpDQogICAgew0KICAgICAgICB2YXIgaW5wdXRzID0gICBuZXcgQXJyYXkoJ3NvcnRfc2VsJywgJ3NvcnRfZGUnLCAnb3B0aW1pc2Vfc2hvcnRoYW5kcycsICdtZXJnZV9zZWxlY3RvcnMnLCAnbm9uZScpOw0KICAgICAgICB2YXIgaW5wdXRzX3YgPSBuZXcgQXJyYXkoIHRydWUsICAgICAgIHRydWUsICAgICAgdHJ1ZSwgICAgICAgICAgICAgICAgICB0cnVlLCAgICAgICAgICAgICAgZmFsc2UpOw0KICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlc2VydmVfY3NzJykuY2hlY2tlZCkgIHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dHNbaV0pLmRpc2FibGVkID0gaW5wdXRzX3ZbaV07DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0c1tpXSkuZGlzYWJsZWQgPSAhaW5wdXRzX3ZbaV07DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICA8L3NjcmlwdD4NCiAgICB7L2xpdGVyYWx9DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNzc190ZXh0IiBuYW1lPSJtMV9jc3NfdGV4dCIgdmFsdWU9Jyc+DQoNCiAgICAgICANCiAgICAgICAgICA8ZmllbGRzZXQgaWQ9ImNvZGVfbGF5b3V0Ij4NCiAgICAgICAgICAgIDxsZWdlbmQ+Q29kZSBMYXlvdXQ8L2xlZ2VuZD4gPGxhYmVsIGZvcj0ibTFfdGVtcGxhdGUiDQogICAgICAgICAgICBjbGFzcz0iYmxvY2siPnskbW9kLT5MYW5nKCdDb21wcmVzc2lvbkxheW91dCcpfTo8L2xhYmVsPg0KICAgICAgICAgIA0KICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJtMV90ZW1wbGF0ZSIgaWQ9J29wVGVtcGxhdGUnPg0KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kT1B0ZW1wbGF0ZSBzZWxlY3RlZD0nMSd9DQogICAgICAgICAgICA8L3NlbGVjdD48YnIvPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSdvcGN1c3RvbScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnPg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0iY3VzdG9tIiBjbGFzcz0iYmxvY2siPnskbW9kLT5MYW5nKCdDdXN0b21UZW1wbGF0ZScpfTwvbGFiZWw+DQogICAgICAgICAgICA8dGV4dGFyZWEgaWQ9ImN1c3RvbSIgbmFtZT0ibTFfY3VzdG9tIiBjb2xzPSIyMCIgcm93cz0iMyIgc3R5bGU9IndpZHRoOjM1MHB4OyBoZWlnaHQ6NzVweDsiID48L3RleHRhcmVhPg0KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Nzc3RpZHkuc291cmNlZm9yZ2UubmV0L3RlbXBsYXRlcy5waHAiIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0iZm9udC1zaXplOjEycHg7Ij57JG1vZC0+TGFuZygnTW9yZUluZm8nKX08L2E+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgICAgIDxmaWVsZHNldCBpZD0ib3B0aW9ucyI+DQogICAgICAgICA8bGVnZW5kPk9wdGlvbnM8L2xlZ2VuZD4NCg0KICAgICAgICAgICAgPGlucHV0IG9uY2hhbmdlPSJlbmFibGVfZGlzYWJsZV9wcmVzZXJ2ZSgpIiB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfcHJlc2VydmVfY3NzIiBpZD0icHJlc2VydmVfY3NzIiAvPg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0icHJlc2VydmVfY3NzIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ1ByZXNlcnZlQ1NTTm90ZScpfSIgY2xhc3M9ImhlbHAiPnskbW9kLT5MYW5nKCdQcmVzZXJ2ZUNTUycpfTwvbGFiZWw+PGJyIC8+DQoNCg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtMV9zb3J0X3NlbCIgaWQ9InNvcnRfc2VsIiAgLz4NCiAgICAgICAgICAgIDxsYWJlbCBmb3I9InNvcnRfc2VsIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ1NvcnRTZWxlY3RvcnNOb3RlJyl9IiBjbGFzcz0iaGVscCI+eyRtb2QtPkxhbmcoJ1NvcnRTZWxlY3RvcnMnKX08L2xhYmVsPjxiciAvPg0KDQoNCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfc29ydF9kZSIgaWQ9InNvcnRfZGUiIC8+DQogICAgICAgICAgICA8bGFiZWwgZm9yPSJzb3J0X2RlIj57JG1vZC0+TGFuZygnU29ydFByb3BlcnRpZXMnKX08L2xhYmVsPjxiciAvPg0KDQoNCiAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1lcmdlX3NlbGVjdG9ycyI+eyRtb2QtPkxhbmcoJ1JlZ3JvdXBTZWxlY3RvcnMnKX08L2xhYmVsPg0KICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJtMV9tZXJnZV9zZWxlY3RvcnMiIHN0eWxlPSJ3aWR0aDoxNWVtOyIgaWQ9Im1lcmdlX3NlbGVjdG9ycyI+DQogICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRtZXJnZV9zZWxlY3RvcnMgc2VsZWN0ZWQ9JzInfQ0KICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICA8YnIgLz4NCg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0ib3B0aW1pc2Vfc2hvcnRoYW5kcyI+eyRtb2QtPkxhbmcoJ09wdGltaXNlU2hvcnRoYW5kcycpfTwvbGFiZWw+DQogICAgICAgICAgICA8c2VsZWN0IG5hbWU9Im0xX29wdGltaXNlX3Nob3J0aGFuZHMiIHN0eWxlPSJ3aWR0aDoxNWVtOyIgaWQ9Im9wdGltaXNlX3Nob3J0aGFuZHMiPg0KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0aW1pc2Vfc2hvcnRoYW5kcyBzZWxlY3RlZD0nMid9DQogICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgIDxiciAvPg0KDQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im0xX2NvbXByZXNzX2MiIGlkPSJjb21wcmVzc19jIiAvPg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0iY29tcHJlc3NfYyI+eyRtb2QtPkxhbmcoJ0NvbXByZXNzQ29sb3JzJyl9PC9sYWJlbD48YnIgLz4NCg0KDQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im0xX2NvbXByZXNzX2Z3IiBpZD0iY29tcHJlc3NfZnciIC8+DQogICAgICAgICAgICA8bGFiZWwgZm9yPSJjb21wcmVzc19mdyI+eyRtb2QtPkxhbmcoJ0NvbXByZXNzRm9udCcpfTwvbGFiZWw+PGJyIC8+DQoNCg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtMV9sb3dlcmNhc2UiIGlkPSJsb3dlcmNhc2UiIHZhbHVlPSJsb3dlcmNhc2UiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+DQogICAgICAgICAgICA8bGFiZWwgdGl0bGU9InskbW9kLT5MYW5nKCdsb3dlcmNhc2VfWEhUTUxfbm90ZScpfSIgY2xhc3M9ImhlbHAiIGZvcj0ibG93ZXJjYXNlIj57JG1vZC0+TGFuZygnbG93ZXJjYXNlX3RpdGxlJyl9PC9sYWJlbD48YnIgLz4NCg0KDQogICAgICAgICAgICBDYXNlIGZvciBwcm9wZXJ0aWVzOjxiciAvPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtMV9jYXNlX3Byb3BlcnRpZXMiIGlkPSJub25lIiB2YWx1ZT0iMCIgLz4NCiAgICAgICAgICAgIDxsYWJlbCBmb3I9Im5vbmUiPnskbW9kLT5MYW5nKCdOb25lJyl9PC9sYWJlbD4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ibTFfY2FzZV9wcm9wZXJ0aWVzIiBpZD0ibG93ZXJfeWVzIiB2YWx1ZT0iMSIgIC8+DQogICAgICAgICAgICA8bGFiZWwgZm9yPSJsb3dlcl95ZXMiPnskbW9kLT5MYW5nKCdMb3dlcmNhc2UnKX08L2xhYmVsPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtMV9jYXNlX3Byb3BlcnRpZXMiIGlkPSJ1cHBlcl95ZXMiIHZhbHVlPSIyIiAgLz4NCiAgICAgICAgICAgIDxsYWJlbCBmb3I9InVwcGVyX3llcyI+eyRtb2QtPkxhbmcoJ1VwcGVyY2FzZScpfTwvbGFiZWw+PGJyIC8+DQoNCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfcmJzIiBpZD0icmJzIiAvPg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0icmJzIj57JG1vZC0+TGFuZygnUmVtb3ZlQmFja3NsYXNoZXMnKX08L2xhYmVsPjxiciAvPg0KDQoNCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InJlbW92ZV9sYXN0X3NlbSIgbmFtZT0ibTFfcmVtb3ZlX2xhc3Rfc2VtIiAgLz4NCiAgIAkJCTxsYWJlbCBmb3I9InJlbW92ZV9sYXN0X3NlbSI+UmVtb3ZlIGxhc3QgOzwvbGFiZWw+PGJyIC8+DQogICAgICAgICAgPC9maWVsZHNldD4NCiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibTFfcG9zdCIgLz4NCgkJPGg1IHN0eWxlPSdsaW5lLWhlaWdodDoxNXB4O21hcmdpbjowcHg7cGFkZGluZzowcHg7Zm9udC13ZWlnaHQ6bm9ybWFsOyc+eyRtb2QtPkxhbmcoJ29wX25vdGUnKX08L2g1Pg0KICAgICAgICA8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iSW5zZXJ0IiBuYW1lPSdtMV9vcHRpbWlzZScgaWQ9Im9wdGltaXNlIi8+PC9wPg0KICAgICA8L2Rpdj48L2Rpdj4gICAgICAgICAgICANCjwvZGl2PjwvZGl2PntsaXRlcmFsfTxzdHlsZT5ib2R5LGh0bWx7bWFyZ2luOjBweDtwYWRkaW5nOjBweDt9PC9zdHlsZT57L2xpdGVyYWx9DQoNCntlbHNlfQ0KDQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGJ1dHRvbnMiPg0KICAgICB7JHN1Ym1pdH17JGNhbmNlbH17aWYgJG1vZGU9PSdlZGl0J317JHJldmVydH17JGFwcGx5fXsvaWZ9DQogICAgPC9kaXY+DQoNCg0KDQogICAgPGRpdiBjbGFzcz0iaGlkZGVuIiA+DQogICAgICAgIDxkaXYgc3R5bGU9IiIgY2xhc3M9InNjcmlwdE9wdGlvbnMiPg0KICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCdTY3JpcHROYW1lX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICAgICAgPHAgY2xhc3M9InNjcmlwdE5hbWUiPnskU2NyaXB0U2V0X2lucHV0fTwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCdzY3JpcHRUeXBlX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICAgICAgPHAgPnskc2NyaXB0VHlwZV9pbnB1dH08L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAge2lmIGlzc2V0KCRNZWRpYVR5cGVfaW5wdXQpfQ0KICAgICAgICAgICA8ZGl2IGlkPSJNZWRpYVR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCiAgICAgICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCdNZWRpYVR5cGVfbGFiZWwnKX06PC9wPg0KICAgICAgICAgICAgICA8cCA+eyRNZWRpYVR5cGVfaW5wdXR9PC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgPGRpdiA+DQogICAgICAgICAgICAgIDxwID57JG1vZC0+TGFuZygnTWluaWZ5X2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICAgICAgPHAgPnskTWluaWZ5X2lucHV0fTwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiA+DQogICAgICAgICAgICAgIDxwID57JG1vZC0+TGFuZygndHVybk9mZlByZWxvYWRfbGFiZWwnKX06PC9wPg0KICAgICAgICAgICAgICA8cCA+eyR0dXJuT2ZmUHJlbG9hZF9pbnB1dH08L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgIDxwID57JHJvb3RVUkxPcHRpb25faW5wdXR9eyRtb2QtPkxhbmcoJ3Jvb3RVUkxPcHRpb25fbGFiZWwnKX06PC9wPg0KICAgICAgICAgICAgICA8cCBpZD0icm9vdFVSTE9wdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPnskcm9vdFVSTF9pbnB1dH08L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgIDxwID57JFVzZVBhdGhPcHRpb25faW5wdXR9eyRtb2QtPkxhbmcoJ3BhdGhPcHRpb25fbGFiZWwnKX06PC9wPg0KICAgICAgICAgICAgICA8cCBpZD0icGF0aE9wdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPnskcGF0aE9wdGlvbl9pbnB1dH08L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJjbG9zZV9vcHRpb25zIj5DbG9zZTwvYT4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDx0ZXh0YXJlYSBpZD0iZmlsdGVyUHJvcCIgcm93cz0iMSIgY29scz0iMSI+eyRmaWx0ZXJQcm9wfTwvdGV4dGFyZWE+DQogICAgPC9kaXY+DQoNCjxkaXYgY2xhc3M9ImRpYWxvZyIgc3R5bGU9InsqbWFyZ2luLXJpZ2h0OjI3MHB4Oyp9Ij4NCiAgICA8IS0tIGNvbnRlbnQgYXJlYSAtLT4NCiAgICA8ZGl2IGNsYXNzPSJub3RpY2ViYXIiPg0KICAgICAgICAgIHtpZiAkbW9kZT09J2VkaXQnfQ0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWQWxlZEJsb2NrIj4NCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJWQWxlZCI+eyRWQWxlZH08L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICB7aWYgJEVfaW5wdXQhPScnfTxhIGhyZWY9IiMiIGNsYXNzPSJFX3RyaWciPjxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvY3NzLWVycm9yLnBuZyIgYWx0PSIiLz5FcnJvcnM8L2E+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxhIGhyZWY9IiMiIGNsYXNzPSJXX3RyaWciPjxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvY3NzLXdhcm4ucG5nIiBhbHQ9IiIvPldhcm5pbmdzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICB7L2lmfQ0KICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJub3RlX3RyaWciPjxpbWcgc3JjPSIuLi9tb2R1bGVzL1NjcmlwdERlcGxveS9pbWFnZXMvbm90ZXMucG5nIiBhbHQ9IiIvPk5vdGU8L2E+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb25CYXIgdWktd2lkZ2V0LWNvbnRlbnQiPjxoMSBjbGFzcz0ic2NyaXB0TmFtZV9JUyIgY2xhc3M9ImV4dGVybmFsIj57aWYgJHNjcmlwdHNfbmFtZSE9Jyd9eyRzY3JpcHRzX25hbWV9e2Vsc2V9VW5zZXR7L2lmfTwvaDE+e2lmIGlzc2V0KCRzY3JpcHRzR3JvdXApJiYkc2NyaXB0c0dyb3VwIT0nJ308c3BhbiBpZD0iU2NyaXB0X2dyb3VwcyI+R3JvdXBzOiB7JHNjcmlwdHNHcm91cE51bWJlcn0gKHskc2NyaXB0c0dyb3VwfSk8L3NwYW4+ey9pZn08L2Rpdj4NCiAgICA8ZGl2IHN0eWxlPSJjbGVhcjpyaWdodDtwYWRkaW5nOiA3OHB4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZTsiIGNsYXNzPSdzY3JpcHRBcmVhJz4NCiAgICAgICAgPGRpdiBjbGFzcz0idG9vbEJhci10Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdvdG9Cb3giPkdvIHRvIExpbmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgY2xhc3M9ImdvdG8iIC8+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcEJhciI+eyRvcHRpb25iYXJ9IDwvZGl2Pg0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9IkpCX251bWFyZWEiPg0KICAgICAgICAgICAgeyRTY3JpcHRJc19pbnB1dH0NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InRvb2xCYXItYiI+PGRpdiBjbGFzcz0iaW5uZXIiPnskcmVwb3J0YmFyfTwvZGl2PjwvZGl2Pg0KICAgIDwvZGl2Pg0KDQoNCiAgICA8IS0tIGNvbnRlbnQgYXJlYSAtLT4NCg0KDQoNCg0KICAgICAgICAgICAgICAgICAJCTxkaXYgaWQ9ImxhbmRlciIgY2xhc3M9ImhpZGRlbiIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTk5OTllbTsgbGVmdDotOTk5OWVtOyI+DQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVkFsZWRCbG9jayI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+DQogICAgICAgICAgICAgICAgIAkJPGRpdiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JHJlcG9ydH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGNsYXNzPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgY2xhc3M9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIHsvaWZ9DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGJ1dHRvbnMiID4NCnskc3VibWl0fXskY2FuY2VsfXtpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0NCjwvZGl2Pg0KeyRub3Rlc19pbnB1dH0NCnsvaWZ9DQp7JGZvcm1lbmR9DQoNCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/edit_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IHtpZiAkbW9kZT09J2FkZCd9DQp7JGZvcm1zdGFydH0NCnskdXNlcmluZm99DQoJPGRpdiBpZD0naGlkZGVuSW5wdXRzJz57JGhpZGRlbn08L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICA8cCA+eyRtb2QtPkxhbmcoJ1NjcmlwdE5hbWVfbGFiZWwnKX06PC9wPg0KICAgICAgICAgIDxwIGlkPSJzY3JpcHROYW1lIj57JFNjcmlwdFNldF9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxwID57JG1vZC0+TGFuZygnc2NyaXB0VHlwZV9sYWJlbCcpfTo8L3A+DQogICAgICAgICAgPHAgPnskc2NyaXB0VHlwZV9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgIHtpZiBpc3NldCgkTWVkaWFUeXBlX2lucHV0KX0NCiAgICAgICA8ZGl2IGlkPSJNZWRpYVR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCiAgICAgICAgICA8cCA+eyRtb2QtPkxhbmcoJ01lZGlhVHlwZV9sYWJlbCcpfTo8L3A+DQogICAgICAgICAgPHAgPnskTWVkaWFUeXBlX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIHsvaWZ9DQogICAgICAgIDxkaXYgPg0KICAgICAgICAgIDxwID57JG1vZC0+TGFuZygnTWluaWZ5X2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICA8cCA+eyRNaW5pZnlfaW5wdXR9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiA+DQogICAgICAgICAgPHAgPnskbW9kLT5MYW5nKCd0dXJuT2ZmUHJlbG9hZF9sYWJlbCcpfTo8L3A+DQogICAgICAgICAgPHAgPnskdHVybk9mZlByZWxvYWRfaW5wdXR9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgPGRpdj4NCiAgICAgICAgICA8cCA+eyRyb290VVJMT3B0aW9uX2lucHV0fXskbW9kLT5MYW5nKCdyb290VVJMT3B0aW9uX2xhYmVsJyl9OjwvcD4NCiAgICAgICAgICA8cCBpZD0icm9vdFVSTE9wdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPnskcm9vdFVSTF9pbnB1dH08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxwID57JFVzZVBhdGhPcHRpb25faW5wdXR9eyRtb2QtPkxhbmcoJ3BhdGhPcHRpb25fbGFiZWwnKX06PC9wPg0KICAgICAgICAgIDxwIGlkPSJwYXRoT3B0aW9uIiBzdHlsZT0iZGlzcGxheTpub25lOyI+eyRwYXRoT3B0aW9uX2lucHV0fTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGJ1dHRvbnMiPg0KICAgIHskc3VibWl0fXskY2FuY2VsfQ0KICAgIDwvZGl2Pg0KeyRmb3JtZW5kfQ0KDQp7ZWxzZX0NCg0KDQoNCg0KDQoNCg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPnskc2NyaXB0VHlwZUpTfTwvZGl2Pg0Ke2lmICRzbWFydHkuZ2V0Lmluc2VydENvZGU9PSd0cnVlJ3x8JHNtYXJ0eS5nZXQub3B0aW1pc2U9PSd0cnVlJ30NCnskZm9ybXN0YXJ0fHJlZ2V4X3JlcGxhY2U6Ii8oLio/KWFjdGlvbj1cIiguKj8pXCIoLio/KS8iOickMWFjdGlvbj0iJDI/c2hvd3RlbXBsYXRlPWZhbHNlIiQzIG1ldGhvZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSInfQ0Ke2Vsc2V9DQp7JGZvcm1zdGFydH17JHVzZXJpbmZvfTxkaXYgaWQ9J2hpZGRlbklucHV0cyc+eyRoaWRkZW59PC9kaXY+DQp7L2lmfQ0KDQoNCjxkaXYgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIGNsYXNzPSdFZGl0aW5nJz57JHR5cGV9eyRpZH08L2Rpdj4NCntpZiAkc21hcnR5LmdldC5pbnNlcnRDb2RlPT0ndHJ1ZSd9DQoJPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO2hlaWdodDoxMTRweDttYXJnaW4tdG9wOjA7cGFkZGluZzoxNXB4OyI+DQogICAgCTxkaXYgaWQ9Imluc2VydEJsb2NrIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyIj4NCiAgICAgICAgICAgICAgICA8cD57JG1vZC0+TGFuZygnaW5zZXJ0Q29kZV9sYWJlbCcpfXskaW5zZXJ0Q29kZV9pbnB1dH08L3A+DQogICAgICAgICAgICAgICAgPHA+eyRtb2QtPkxhbmcoJ2luc2VydENvZGVBdF9sYWJlbCcpfQ0KICAgICAgICAgICAgICAgIAk8c2VsZWN0IG5hbWU9IndoZXJlIiBpZD0naW5zZXJ0Q2hvaWNlJz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InN0YXJ0Ij5TdGFydDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZW5kIj5FbmQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImF0TGluZSI+QXQgbGluZTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAJPHNwYW4gaWQ9J2luc2VydEF0JyBzdHlsZT0nZGlzcGxheTpub25lOyc+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJzdGFydCIgbmFtZT0nbTFfaW5zZXJ0Q29kZUF0X2lucHV0JyBpZD0iaW5zZXJ0Q29kZUF0X2lucHV0Ii8+PC9zcGFuPg0KICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iSW5zZXJ0IiBuYW1lPSdtMV9kb0luc2VydENvZGUnIGlkPSJkb0luc2VydENvZGUiLz48L3A+DQogICAgICAgICAgICA8L2Rpdj4NCgkJPC9kaXY+DQogICAgPC9kaXY+e2xpdGVyYWx9PHN0eWxlPmJvZHksaHRtbHttYXJnaW46MHB4O3BhZGRpbmc6MHB4O308L3N0eWxlPnsvbGl0ZXJhbH0NCg0Ke2Vsc2VpZiAkc21hcnR5LmdldC5vcHRpbWlzZT09J3RydWUnfQ0KPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO2hlaWdodDo1MzVweDttYXJnaW4tdG9wOjA7cGFkZGluZzoxNXB4OyI+DQoJPGRpdiBpZD0iaW5zZXJ0QmxvY2siPg0KICAgICAgICAgICAge2xpdGVyYWx9DQogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbmFibGVfZGlzYWJsZV9wcmVzZXJ2ZSgpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dHMgPSAgIG5ldyBBcnJheSgnc29ydF9zZWwnLCAnc29ydF9kZScsICdvcHRpbWlzZV9zaG9ydGhhbmRzJywgJ21lcmdlX3NlbGVjdG9ycycsICdub25lJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXRzX3YgPSBuZXcgQXJyYXkoIHRydWUsICAgICAgIHRydWUsICAgICAgdHJ1ZSwgICAgICAgICAgICAgICAgICB0cnVlLCAgICAgICAgICAgICAgZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlc2VydmVfY3NzJykuY2hlY2tlZCkgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRzW2ldKS5kaXNhYmxlZCA9IGlucHV0c192W2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0c1tpXSkuZGlzYWJsZWQgPSAhaW5wdXRzX3ZbaV07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgPC9zY3JpcHQ+DQogICAgICAgICAgICB7L2xpdGVyYWx9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+DQogICAgICAgICAgICAgICAgPGRpdj4gICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjc3NfdGV4dCIgbmFtZT0ibTFfY3NzX3RleHQiIHZhbHVlPScnPg0KICAgICAgICANCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGlkPSJjb2RlX2xheW91dCI+DQogICAgICAgICAgICAgICAgICAgIDxsZWdlbmQ+Q29kZSBMYXlvdXQ8L2xlZ2VuZD4gPGxhYmVsIGZvcj0ibTFfdGVtcGxhdGUiDQogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJibG9jayI+eyRtb2QtPkxhbmcoJ0NvbXByZXNzaW9uTGF5b3V0Jyl9OjwvbGFiZWw+DQogICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJtMV90ZW1wbGF0ZSIgaWQ9J29wVGVtcGxhdGUnPg0KICAgICAgICAgICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRPUHRlbXBsYXRlIHNlbGVjdGVkPScxJ30NCiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+PGJyLz4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J29wY3VzdG9tJyBzdHlsZT0nZGlzcGxheTpub25lOyc+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjdXN0b20iIGNsYXNzPSJibG9jayI+eyRtb2QtPkxhbmcoJ0N1c3RvbVRlbXBsYXRlJyl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iY3VzdG9tIiBuYW1lPSJtMV9jdXN0b20iIGNvbHM9IjIwIiByb3dzPSIzIiBzdHlsZT0id2lkdGg6MzUwcHg7IGhlaWdodDo3NXB4OyIgPjwvdGV4dGFyZWE+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vY3NzdGlkeS5zb3VyY2Vmb3JnZS5uZXQvdGVtcGxhdGVzLnBocCIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJmb250LXNpemU6MTJweDsiPnskbW9kLT5MYW5nKCdNb3JlSW5mbycpfTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0Pg0KICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGlkPSJvcHRpb25zIj4NCiAgICAgICAgICAgICAgICAgPGxlZ2VuZD5PcHRpb25zPC9sZWdlbmQ+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgb25jaGFuZ2U9ImVuYWJsZV9kaXNhYmxlX3ByZXNlcnZlKCkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtMV9wcmVzZXJ2ZV9jc3MiIGlkPSJwcmVzZXJ2ZV9jc3MiIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InByZXNlcnZlX2NzcyIgdGl0bGU9InskbW9kLT5MYW5nKCdQcmVzZXJ2ZUNTU05vdGUnKX0iIGNsYXNzPSJoZWxwIj57JG1vZC0+TGFuZygnUHJlc2VydmVDU1MnKX08L2xhYmVsPjxiciAvPg0KICAgICAgICANCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfc29ydF9zZWwiIGlkPSJzb3J0X3NlbCIgIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InNvcnRfc2VsIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ1NvcnRTZWxlY3RvcnNOb3RlJyl9IiBjbGFzcz0iaGVscCI+eyRtb2QtPkxhbmcoJ1NvcnRTZWxlY3RvcnMnKX08L2xhYmVsPjxiciAvPg0KICAgICAgICANCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfc29ydF9kZSIgaWQ9InNvcnRfZGUiIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9InNvcnRfZGUiPnskbW9kLT5MYW5nKCdTb3J0UHJvcGVydGllcycpfTwvbGFiZWw+PGJyIC8+DQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVyZ2Vfc2VsZWN0b3JzIj57JG1vZC0+TGFuZygnUmVncm91cFNlbGVjdG9ycycpfTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ibTFfbWVyZ2Vfc2VsZWN0b3JzIiBzdHlsZT0id2lkdGg6MTVlbTsiIGlkPSJtZXJnZV9zZWxlY3RvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRtZXJnZV9zZWxlY3RvcnMgc2VsZWN0ZWQ9JzInfQ0KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgPGJyIC8+DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJvcHRpbWlzZV9zaG9ydGhhbmRzIj57JG1vZC0+TGFuZygnT3B0aW1pc2VTaG9ydGhhbmRzJyl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJtMV9vcHRpbWlzZV9zaG9ydGhhbmRzIiBzdHlsZT0id2lkdGg6MTVlbTsiIGlkPSJvcHRpbWlzZV9zaG9ydGhhbmRzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0aW1pc2Vfc2hvcnRoYW5kcyBzZWxlY3RlZD0nMid9DQogICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICA8YnIgLz4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfY29tcHJlc3NfYyIgaWQ9ImNvbXByZXNzX2MiIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImNvbXByZXNzX2MiPnskbW9kLT5MYW5nKCdDb21wcmVzc0NvbG9ycycpfTwvbGFiZWw+PGJyIC8+DQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtMV9jb21wcmVzc19mdyIgaWQ9ImNvbXByZXNzX2Z3IiAvPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjb21wcmVzc19mdyI+eyRtb2QtPkxhbmcoJ0NvbXByZXNzRm9udCcpfTwvbGFiZWw+PGJyIC8+DQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJtMV9sb3dlcmNhc2UiIGlkPSJsb3dlcmNhc2UiIHZhbHVlPSJsb3dlcmNhc2UiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCB0aXRsZT0ieyRtb2QtPkxhbmcoJ2xvd2VyY2FzZV9YSFRNTF9ub3RlJyl9IiBjbGFzcz0iaGVscCIgZm9yPSJsb3dlcmNhc2UiPnskbW9kLT5MYW5nKCdsb3dlcmNhc2VfdGl0bGUnKX08L2xhYmVsPjxiciAvPg0KICAgICAgICANCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIENhc2UgZm9yIHByb3BlcnRpZXM6PGJyIC8+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ibTFfY2FzZV9wcm9wZXJ0aWVzIiBpZD0ibm9uZSIgdmFsdWU9IjAiIC8+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im5vbmUiPnskbW9kLT5MYW5nKCdOb25lJyl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtMV9jYXNlX3Byb3BlcnRpZXMiIGlkPSJsb3dlcl95ZXMiIHZhbHVlPSIxIiAgLz4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibG93ZXJfeWVzIj57JG1vZC0+TGFuZygnTG93ZXJjYXNlJyl9PC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtMV9jYXNlX3Byb3BlcnRpZXMiIGlkPSJ1cHBlcl95ZXMiIHZhbHVlPSIyIiAgLz4NCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0idXBwZXJfeWVzIj57JG1vZC0+TGFuZygnVXBwZXJjYXNlJyl9PC9sYWJlbD48YnIgLz4NCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibTFfcmJzIiBpZD0icmJzIiAvPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJyYnMiPnskbW9kLT5MYW5nKCdSZW1vdmVCYWNrc2xhc2hlcycpfTwvbGFiZWw+PGJyIC8+DQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icmVtb3ZlX2xhc3Rfc2VtIiBuYW1lPSJtMV9yZW1vdmVfbGFzdF9zZW0iICAvPg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJyZW1vdmVfbGFzdF9zZW0iPlJlbW92ZSBsYXN0IDs8L2xhYmVsPjxiciAvPg0KICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4NCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtMV9wb3N0IiAvPg0KICAgICAgICAgICAgICAgIDxoNSBzdHlsZT0nbGluZS1oZWlnaHQ6MTVweDttYXJnaW46MHB4O3BhZGRpbmc6MHB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDsnPnskbW9kLT5MYW5nKCdvcF9ub3RlJyl9PC9oNT4NCiAgICAgICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iSW5zZXJ0IiBuYW1lPSdtMV9vcHRpbWlzZScgaWQ9Im9wdGltaXNlIi8+PC9wPg0KICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgDQogICAgPC9kaXY+DQo8L2Rpdj4NCntsaXRlcmFsfTxzdHlsZT5ib2R5LGh0bWx7bWFyZ2luOjBweDtwYWRkaW5nOjBweDt9PC9zdHlsZT57L2xpdGVyYWx9DQoNCntlbHNlfQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBidXR0b25zIj4NCiAgICAgeyRzdWJtaXR9eyRjYW5jZWx9e2lmICRtb2RlPT0nZWRpdCd9eyRyZXZlcnR9eyRhcHBseX17L2lmfQ0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgY2xhc3M9ImhpZGRlbiIgPg0KICAgICAgICA8ZGl2IHN0eWxlPSIiIGNsYXNzPSJzY3JpcHRPcHRpb25zIj4NCiAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgIDxwID57JHRlbXBsYXRlbmFtZV9sYWJlbH06PC9wPg0KICAgICAgICAgICAgICA8cCBjbGFzcz0ic2NyaXB0TmFtZSI+eyR0ZW1wbGF0ZW5hbWVfaW5wdXR9PC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8YnIvPjxici8+DQogICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iY2xvc2Vfb3B0aW9ucyI+Q2xvc2U8L2E+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImZpbHRlclByb3AiIHJvd3M9IjEiIGNvbHM9IjEiPnskZmlsdGVyUHJvcH08L3RleHRhcmVhPg0KICAgIDwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJkaWFsb2ciIHN0eWxlPSJ7Km1hcmdpbi1yaWdodDoyNzBweDsqfSI+DQogICAgPCEtLSBjb250ZW50IGFyZWEgLS0+DQogICAgPGRpdiBjbGFzcz0ibm90aWNlYmFyIj4NCiAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVkFsZWRCbG9jayI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+DQogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVkFsZWQiPnskVkFsZWR9PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308YSBocmVmPSIjIiBjbGFzcz0iRV90cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy1lcnJvci5wbmciIGFsdD0iIi8+RXJyb3JzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAge2lmICRXX2lucHV0IT0nJ308YSBocmVmPSIjIiBjbGFzcz0iV190cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy13YXJuLnBuZyIgYWx0PSIiLz5XYXJuaW5nczwvYT57L2lmfQ0KICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgey9pZn0NCiAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0ibm90ZV90cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL25vdGVzLnBuZyIgYWx0PSIiLz5Ob3RlPC9hPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uQmFyIHVpLXdpZGdldC1jb250ZW50Ij4NCiAgICAgICAgPGgxIGNsYXNzPSJzY3JpcHROYW1lX0lTIiBjbGFzcz0iZXh0ZXJuYWwiPntpZiAkc2NyaXB0c19uYW1lIT0nJ317JHNjcmlwdHNfbmFtZX17ZWxzZX1VbnNldHsvaWZ9PC9oMT4NCiAgICAgICAge2lmIGlzc2V0KCRzY3JpcHRzR3JvdXApJiYkc2NyaXB0c0dyb3VwIT0nJ308c3BhbiBpZD0iU2NyaXB0X2dyb3VwcyI+R3JvdXBzOiB7JHNjcmlwdHNHcm91cE51bWJlcn0gKHskc2NyaXB0c0dyb3VwfSk8L3NwYW4+ey9pZn0NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IHN0eWxlPSJjbGVhcjpyaWdodDtwYWRkaW5nOiA3OHB4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZTsiIGNsYXNzPSdzY3JpcHRBcmVhJz4NCiAgICAgICAgPGRpdiBjbGFzcz0idG9vbEJhci10Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdvdG9Cb3giPkdvIHRvIExpbmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgY2xhc3M9ImdvdG8iIC8+PC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcEJhciI+eyRvcHRpb25iYXJ9IHtpZiBpc3NldCgkYXBwX2pzX2xpYil9fCB7JGFwcF9qc19saWJ9ey9pZn08L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9IkpCX251bWFyZWEiPg0KICAgICAgICAgICAge2lmIGlzc2V0KCRjb2RlKXx8JGNvZGUhPSIifQ0KICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJTSUEiIG5hbWU9Im0xX2NvbnRlbnQiPnskY29kZX08L3RleHRhcmVhPg0KICAgICAgICAgICAge2Vsc2V9eyRTY3JpcHRJc19pbnB1dH17L2lmfQ0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idG9vbEJhci1iIj48ZGl2IGNsYXNzPSJpbm5lciI+eyRyZXBvcnRiYXJ9PC9kaXY+PC9kaXY+DQogICAgPC9kaXY+DQogICAgICAgICAgIDxkaXYgaWQ9ImxhbmRlciIgY2xhc3M9ImhpZGRlbiIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTk5OTllbTsgbGVmdDotOTk5OWVtOyI+PC9kaXY+DQoNCiAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVkFsZWRCbG9jayI+DQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lciI+DQogICAgICAgICAgICAgICAgIAkJPGRpdiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JHJlcG9ydH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGNsYXNzPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgY2xhc3M9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgIHsvaWZ9DQo8L2Rpdj4NCg0Ke2lmIGlzc2V0KCRtb2R1bGVfbmFtZSkmJiRtb2R1bGVfbmFtZSE9Jyd9PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1tb2R1bGUiIHZhbHVlPSJ7JG1vZHVsZV9uYW1lfSIgLz57L2lmfQ0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1fc2NyaXB0VHlwZSIgdmFsdWU9IntpZiBpc3NldCgkYXBwX2pzX2xpYil9SFRNTHtlbHNlfU1PRFVMRXsvaWZ9IiAvPg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGJ1dHRvbnMiID4NCnskc3VibWl0fXskY2FuY2VsfXtpZiAkbW9kZT09J2VkaXQnfXskcmV2ZXJ0fXskYXBwbHl9ey9pZn0NCjwvZGl2Pg0KeyRub3Rlc19pbnB1dH0NCnsvaWZ9DQp7JGZvcm1lbmR9DQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/export.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZGlwbGF5YXJlYSI+DQp7bGl0ZXJhbH0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCgkJJCgidWwudGFiZXJzIikudGFicygiZGl2LlRhYnBhbmVzID4gZGl2LnBhbmUiLCB7DQoJCQkJCWVmZmVjdDogImRlZmF1bHQiLA0KCQkJCQlmYWRlT3V0U3BlZWQ6IDIwMCwNCgkJCQkJb25DbGljazpmdW5jdGlvbihldmVudCwgdGFiSW5kZXgpIHsNCgkNCgkJCQl9DQoJCX0pOw0KCX0pOw0KPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCnskc3RhcnRmb3JtfQ0KDQo8ZGl2IGNsYXNzPSJpbmZvIiBzdHlsZT0nd2lkdGg6MjMlO2Zsb2F0OmxlZnQ7Jz4NCiAgICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+DQogICAgICAgIDx0cj48dGg+eyRtb2QtPkxhbmcoJ2xpc3QnKX08L3RoPjwvdHI+DQogICAgPC90YWJsZT4NCgl7aWYgJHN0ZXA+MX0NCiAgICAgICAge3NlY3Rpb24gbmFtZT1mb28gc3RhcnQ9MCBsb29wPSRzdGVwLTF9DQogICAgICAgIAl7YXNzaWduIHZhcj1pIHZhbHVlPSRzbWFydHkuc2VjdGlvbi5mb28uaW5kZXh9DQogICAgICAgIAl7YXNzaWduIHZhcj1wQUNUIHZhbHVlPSRwcm9maWxlLiRpfQ0KCQkJe2lmICFlbXB0eSgkbW9kLT5zbWFydHktPl90cGxfdmFycy4kcEFDVCkgJiYgJG1vZC0+c21hcnR5LT5fdHBsX3ZhcnMuJHBBQ1QhPScnICYmICRwQUNUIT0nSU5GTycgJiYgJHBBQ1QhPSdGSU5GTyd9DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZWlucHV0IGRldGFpbHMiIHN0eWxlPSdtYXJnaW46MWVtIDAgMC4yZW0gMHB4Jz4NCiAgICAgICAgICAgICAgICAJPHAgY2xhc3M9InBhZ2V0ZXh0IiBzdHlsZT0nbWFyZ2luOjFlbSAwIDAuMmVtIDBweCc+PGEgaHJlZj0nJyBjbGFzcz0nYWNvcmQge2lmICRsYXN0YWN0PT0kcEFDVH1jdXJyZW50ey9pZn0nPjxlbT48L2VtPnskbW9kLT5MYW5nKCRwQUNUKX08L2E+PC9wPg0KICAgICAgICAgICAgICAgICAgICA8dWwgc3R5bGU9J3BhZGRpbmctbGVmdDogMTBweDtsaXN0LXN0eWxlOiBkZWNpbWFsLWxlYWRpbmctemVybyBpbnNpZGUgbm9uZTsge2lmICRsYXN0YWN0PT0kcEFDVH1kaXNwbGF5OmJsb2NrO3svaWZ9Jz4NCiAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JG1vZC0+c21hcnR5LT5fdHBsX3ZhcnMuJHBBQ1QgaXRlbT1pdGVtfQ0KICAgICAgICAgICAgICAgICAgICAgICAgCXsqe2lmIGlzX2FycmF5KCRpdGVtLm5hbWUpfTxwcmU+eyRpdGVtLm5hbWV8QHByaW50X3J9PC9wcmU+ey9pZn0qfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0nbGlzdC1zdHlsZTpkZWNpbWFsLWxlYWRpbmctemVybyBpbnNpZGUgbm9uZTttYXJnaW46MCAwIDAgNXB4O2ZvbnQtc2l6ZToxMnB4Oyc+eyRpdGVtLm5hbWV9IDxzcGFuIHN0eWxlPSJjb2xvcjojOTk5O2ZvbnQtc2l6ZTo5cHg7Ij48c3Ryb25nPntpZiBpc3NldCgkaXRlbS5pZCl9KHskbW9kLT5MYW5nKCdpZCcpfTo8c3BhbiBjbGFzcz0iaXRlbUlkIj57JGl0ZW0uaWR9PC9zcGFuPil7L2lmfTwvc3Ryb25nPjwvc3Bhbj4ge2lmICRwQUNUPT0nRklMRScgJiYgISgkaXRlbS5uYW1lfHN0cnBvczoiLyIgPiAkaXRlbS5uYW1lfHN0cmxlbiAtIDEpfTxhIGhyZWY9JyMnIGNsYXNzPSd2aWV3SXRlbSc+dmlldzwvYT57L2lmfTwhLS08YSBocmVmPScjJyBjbGFzcz0nZGVsZXRlSXRlbSc+ZGVsZXRlPC9hPi0tPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9J2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCAwIDAgNXB4O2ZvbnQtc2l6ZToxMnB4Oyc+PGEgaHJlZj0nIycgY2xhc3M9J2FkZEl0ZW0nPmFkZCBhbiBpdGVtPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCgkJCXtpZiAoJHBBQ1Q9PSdJTkZPJyB8fCAkcEFDVD09J0ZJTkZPJyl9DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZWlucHV0IGRldGFpbHMiIHN0eWxlPSdtYXJnaW46MWVtIDAgMC4yZW0gMHB4Jz4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiIHN0eWxlPSdtYXJnaW46MWVtIDAgMC4yZW0gMHB4Jz48YSBocmVmPScnIGNsYXNzPSdhY29yZCB7aWYgJGxhc3RhY3Q9PSRwQUNUfWN1cnJlbnR7L2lmfSc+PGVtPjwvZW0+eyRtb2QtPkxhbmcoJHBBQ1QpfTwvYT48L3A+DQogICAgICAgICAgICAgICAgPHVsIHN0eWxlPSdwYWRkaW5nLWxlZnQ6IDEwcHg7bGlzdC1zdHlsZTpub25lOyB7aWYgJGxhc3RhY3Q9PSRwQUNUfHwkbGFzdGFjdD09Jyd9ZGlzcGxheTpibG9jazt7L2lmfSc+DQogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kbW9kLT5zbWFydHktPl90cGxfdmFycy4kcEFDVCBrZXk9bGFiZWwgaXRlbT1maWVsZH0NCiAgICAgICAgICAgICAgICAJe2Fzc2lnbiB2YXI9InRyIiB2YWx1ZT1wcm9tcHRfJGxhYmVsfQ0KCQkJCQk8bGkgc3R5bGU9J2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCAwIDAgNXB4O2ZvbnQtc2l6ZToxMnB4Oyc+PHN0cm9uZz57JG1vZC0+TGFuZygkdHIpfSA8L3N0cm9uZz46ICB7JGZpZWxkfTwvbGk+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgIDwvdWw+DQoJCQkJPC9kaXY+DQogICAgICAgICAgICAgICAgDQoJCQl7L2lmfQ0KCQkJe2lmIChlbXB0eSgkbW9kLT5zbWFydHktPl90cGxfdmFycy4kcEFDVCl8fCRtb2QtPnNtYXJ0eS0+X3RwbF92YXJzLiRwQUNUPT0nJykgJiYgJHBBQ1QhPSdJTkZPJyAmJiAkcEFDVCE9J0ZJTkZPJyAmJiAkYWN0ICE9ICdQQUNLJyAmJiAkYWN0ICE9ICdXUlQnfQ0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VpbnB1dCBkZXRhaWxzIiBzdHlsZT0nbWFyZ2luOjFlbSAwIDAuMmVtIDBweCc+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCIgc3R5bGU9J21hcmdpbjoxZW0gMCAwLjJlbSAwcHgnPjxhIGhyZWY9JycgY2xhc3M9J2Fjb3JkIHtpZiAkbGFzdGFjdD09JHBBQ1R9Y3VycmVudHsvaWZ9Jz48ZW0+PC9lbT57JG1vZC0+TGFuZygkcEFDVCl9PC9hPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHVsIHN0eWxlPSdwYWRkaW5nLWxlZnQ6IDEwcHg7bGlzdC1zdHlsZTpub25lOyB7aWYgJGxhc3RhY3Q9PSRwQUNUfWRpc3BsYXk6YmxvY2s7ey9pZn0nPg0KICAgICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9J2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCAwIDAgNXB4O2ZvbnQtc2l6ZToxMnB4Oyc+eyRtb2QtPkxhbmcoJ25vc2VsZWN0aW9uJyl9IDwvbGk+DQogICAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT0nbGlzdC1zdHlsZTpub25lO21hcmdpbjowIDAgMCA1cHg7Zm9udC1zaXplOjEycHg7Jz48YSBocmVmPScjJyBjbGFzcz0nYWRkSXRlbSc+YWRkIGFuIGl0ZW08L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgIDwvZGl2Pg0KCQkJey9pZn0NCiAgICAgICAgey9zZWN0aW9ufQ0KCXsvaWZ9DQo8L2Rpdj4NCjxkaXYgc3R5bGU9J3dpZHRoOjc0JTsgZmxvYXQ6cmlnaHQ7Jz48aDEgc3R5bGU9J2Rpc3BsYXk6aW5saW5lOyc+eyR0aXRsZX0gPC9oMT48aDMgc3R5bGU9J2Rpc3BsYXk6aW5saW5lOyc+PGVtPlN0ZXAgeyRzdGVwfSBvZiB7YXNzaWduIHZhcj1jIHZhbHVlPSRwcm9maWxlfEBjb3VudH17JGMtMX08L2VtPjwvaDM+DQp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9Jyd9DQogICAgPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4NCiAgICAJeyRtb2QtPkxhbmcoJG1lc3NhZ2UpfQ0KICAgIDwvZGl2Pg0Key9pZn0NCjxwPnskaGVscH08L3A+DQogIHtpZiAkc3RlcD4xfSAgPGRpdiBzdHlsZT0nZmxvYXQ6cmlnaHQ7Jz4NCiAgICAgICAgeyRyZXN0YXJ0fQ0KICAgICAgICB7JGNhbmNlbH0NCiAgICAgICAgeyRuZXh0c3RlcH17JHN1Ym1pdH0NCiAgICA8L2Rpdj4gey9pZn0NCjwvZGl2Pg0KPGRpdiBzdHlsZT0nd2lkdGg6NzQlOyBmbG9hdDpyaWdodDsnPg0KDQp7aWYgJGFjdD09J0NTUyd9DQogICAgPHVsIGNsYXNzPSJ0YWJlcnMiPg0KICAgICAgICA8bGk+PGEgaHJlZj0iI3RlbXBsYXRlcyIgY2xhc3M9ImN1cnJlbnQiPlNjcmlwdERlcGxveSBTY3JpcHRzPC9hPjwvbGk+DQogICAgICAgIDxsaT48YSBocmVmPSIjY29yZXN0eWxlc2hlZXRzIiA+Q29yZSBDU1M8L2E+PC9saT4NCiAgICA8L3VsPg0KICAgIA0KICAgIDxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSIgPg0KICAgICAgICA8ZGl2IGNsYXNzPSdwYW5lJyBzdHlsZT0iZGlzcGxheTpibG9jazsiPg0KICAgICAgICAJCXthc3NpZ24gdmFyPWl0cyB2YWx1ZT0idGFibGVfaXRlbXMkYWN0LVNEIn0NCiAgICAgICAgICAgICAgICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+DQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskaWR0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PGlucHV0IGlkPSJzZWxlY3RhbGwiIHR5cGU9ImNoZWNrYm94IiBvbmNsaWNrPSJzZWxlY3RfYWxsKCk7IiAvPiB7JGFjdGlvbnRleHR9PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+DQogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JG1vZC0+c21hcnR5LT5fdHBsX3ZhcnMuJGl0cyBpdGVtPWVudHJ5fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9ICI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5pZH08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+aW5wdXR9PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSdwYW5lJz4NCnsvaWZ9DQoNCnthc3NpZ24gdmFyPWl0IHZhbHVlPSJ0YWJsZV9pdGVtcyRhY3QifQ0KDQogICAge2lmICRhY3QhPSdGSUxFJyAmJiAkYWN0ICE9ICdJTkZPJyAmJiAkYWN0ICE9ICdGSU5GTycgJiYgJGFjdCAhPSAnUEFDSycgJiYgJGFjdCAhPSAnV1JUJ30NCiAgICAgICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCiAgICAgICAgICAgIDx0aGVhZD4NCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0aD57JGlkdGV4dH08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGg+eyRuYW1ldGV4dH08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGg+PGlucHV0IGlkPSJzZWxlY3RhbGwiIHR5cGU9ImNoZWNrYm94IiBvbmNsaWNrPSJzZWxlY3RfYWxsKCk7IiAvPiB7JGFjdGlvbnRleHR9PC90aD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPC90aGVhZD4NCiAgICAgICAgICAgIDx0Ym9keT4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHtpZiAkbW9kLT5zbWFydHktPl90cGxfdmFycy4kaXR9DQogICAgICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JG1vZC0+c21hcnR5LT5fdHBsX3ZhcnMuJGl0IGl0ZW09ZW50cnl9DQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS5pZH08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5Lm5hbWV9PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS5pbnB1dH08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgIHtlbHNlfQ0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPnskbW9kLT5MYW5nKCdub19jb21wb25lbnRzJyl9PC90ZD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICA8L3Rib2R5Pg0KICAgICAgICA8L3RhYmxlPg0KICAgIHtlbHNlIGlmKCRhY3Q9PSdGSUxFJyl9DQogICAgICAgIHskdGFibGV9DQogICAgey9pZn0NCiAgICB7aWYgJGFjdD09J0NTUyd9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgey9pZn0NCiAgICB7aWYgJGFjdCA9PSAnSU5GTyd9DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aDM+eyRtb2QtPkxhbmcoJ3Byb21wdF9wYWNrYWdlbmFtZScpfSAqOjwvaDM+DQogICAgICAgICAgICA8cD57JGlucHV0X3BhY2thZ2VuYW1lfSZuYnNwO3skbW9kLT5MYW5nKCdpbmZvX3BhY2thZ2VuYW1lJywnPGEgaHJlZj0iIyIgY2xhc3M9ImNoZWNrTmFtZSI+JywnPC9hPicpfTwvcD4NCiAgICAgICAgICAgIDxoMz57JG1vZC0+TGFuZygncHJvbXB0X3BhY2thZ2V2ZXJzaW9uJyl9ICo6PC9oMz4NCiAgICAgICAgICAgIDxwPnskaW5wdXRfcGFja2FnZXZlcnNpb259Jm5ic3A7eyRtb2QtPkxhbmcoJ2luZm9fcGFja2FnZXZlcnNpb24nKX08L3A+DQogICAgICAgICAgICA8aDM+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRob3JuYW1lJyl9OjwvaDM+DQogICAgICAgICAgICA8cD57JGlucHV0X2F1dGhvcm5hbWV9Jm5ic3A7eyRtb2QtPkxhbmcoJ2luZm9fYXV0aG9ybmFtZScpfTwvcD4NCiAgICAgICAgICAgIDxoMz57JG1vZC0+TGFuZygncHJvbXB0X25vdGVzJyl9OiB7JG1vZC0+TGFuZygnaW5mb19ub3RlcycpfTwvaDM+DQogICAgICAgICAgICA8cD57JGlucHV0X25vdGVzfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgey9pZn0NCiAgICB7aWYgJGFjdCA9PSAnRklORk8nfQ0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgPGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfcGFja2FnZW5hbWUnKX0gKjo8L2gzPg0KICAgICAgICAgICAgPHA+eyRpbnB1dF9wYWNrYWdlbmFtZX0mbmJzcDt7JG1vZC0+TGFuZygnaW5mb19wYWNrYWdlbmFtZScsJzxhIGhyZWY9IiMiIGNsYXNzPSJjaGVja05hbWUiPicsJzwvYT4nKX08L3A+DQogICAgICAgICAgICA8aDM+eyRtb2QtPkxhbmcoJ3Byb21wdF9wYWNrYWdldmVyc2lvbicpfSAqOjwvaDM+DQogICAgICAgICAgICA8cD57JGlucHV0X3BhY2thZ2V2ZXJzaW9ufSZuYnNwO3skbW9kLT5MYW5nKCdpbmZvX3BhY2thZ2V2ZXJzaW9uJyl9PC9wPg0KICAgICAgICAgICAgPGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfYXV0aG9ybmFtZScpfTo8L2gzPg0KICAgICAgICAgICAgPHA+eyRpbnB1dF9hdXRob3JuYW1lfSZuYnNwO3skbW9kLT5MYW5nKCdpbmZvX2F1dGhvcm5hbWUnKX08L3A+DQogICAgICAgICAgICA8aDM+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3RlcycpfTogeyRtb2QtPkxhbmcoJ2luZm9fbm90ZXMnKX08L2gzPg0KICAgICAgICAgICAgPHA+eyRpbnB1dF9ub3Rlc308L3A+DQogICAgICAgIDwvZGl2Pg0KICAgIHsvaWZ9DQogICAge2lmICRhY3QgPT0gJ1BBQ0snfQ0KICAgICAgICB7aWYgIWVtcHR5KCRJTkZPKX0NCiAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JElORk8ga2V5PWxhYmVsIGl0ZW09ZmllbGR9DQogICAgICAgICAgICAgICAge2Fzc2lnbiB2YXI9InRyIiB2YWx1ZT1wcm9tcHRfJGxhYmVsfQ0KICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJHRyKX06PC9wPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpZWxkfTwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAge2Vsc2V9DQogICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRGSU5GTyBrZXk9bGFiZWwgaXRlbT1maWVsZH0NCiAgICAgICAgICAgICAgICB7YXNzaWduIHZhcj0idHIiIHZhbHVlPXByb21wdF8kbGFiZWx9DQogICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygkdHIpfTo8L3A+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGR9PC9wPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9mb3JlYWNofQ0KDQogICAgICAgIHsvaWZ9DQogICAgey9pZn0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgIHskcmVzdGFydH0NCiAgICAgICAgeyRjYW5jZWx9DQogICAgICAgIHskbmV4dHN0ZXB9eyRzdWJtaXR9PC9wPg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCg0KPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg0KeyRlbmRmb3JtfQ0KPC9kaXY+DQp7bGl0ZXJhbH0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAvLzwhW0NEQVRBWw0KICAgIGZ1bmN0aW9uIHNlbGVjdF9hbGwoKQ0KICAgIHsNCiAgICAgICAgY2hlY2tib3hlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpOw0KICAgICAgICBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGFsbCcpOw0KICAgICAgICBzdGF0ZSA9IGVsZW0uY2hlY2tlZDsNCiAgICAgICAgZm9yIChpPTA7IGk8Y2hlY2tib3hlcy5sZW5ndGggOyBpKyspDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmIChjaGVja2JveGVzW2ldLnR5cGUgPT0gImNoZWNrYm94IikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjaGVja2JveGVzW2ldLmNoZWNrZWQ9c3RhdGU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgLy9dXT4NCjwvc2NyaXB0Pg0Key9saXRlcmFsfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/function/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/function/revert.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRjbGVhclJldl9zdGFydH0NCnskaGlkZGVufQ0KeyRjbGVhclJldn0NCnskY2xlYXJSZXZfZW5kfQ0KDQo8cCA+DQoNCg0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQp7JHRhYmxlfQ0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/function/view_logs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8YSBocmVmPSJqYXZhc2NyaXB0OiBoaXN0b3J5LmdvKC0xKSIgaWQ9IkV4aXQiPkV4aXQ8L2E+IDwvcD4NCnskY2FjaGVJbmZvfQ0KPGEgaHJlZj0iamF2YXNjcmlwdDogaGlzdG9yeS5nbygtMSkiIGlkPSJFeGl0Ij5FeGl0PC9hPiA8L3A+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/html_val_wrap.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRodG1sX3N5bnRheD09IlhIVE1MIDEuMCBUcmFuc2l0aW9uYWwifTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj48aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+PHRpdGxlPlVudGl0bGVkIERvY3VtZW50PC90aXRsZT48L2hlYWQ+PGJvZHk+eyRmYWtlQ29udGVudH08L2JvZHk+PC9odG1sPg0Ke2Vsc2UgaWYoJGh0bWxfc3ludGF4PT0iSFRNTDUiKX0NCjwhRE9DVFlQRSBIVE1MPjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+VW50aXRsZWQgRG9jdW1lbnQ8L3RpdGxlPjwvaGVhZD48Ym9keT57JGZha2VDb250ZW50fTwvYm9keT48L2h0bWw+DQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZGlwbGF5YXJlYSI+e2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQoJCSQoInVsLnRhYmVycyIpLnRhYnMoImRpdi5UYWJwYW5lcyA+IGRpdi5wYW5lIiwgew0KCQkJCQllZmZlY3Q6ICJkZWZhdWx0IiwNCgkJCQkJZmFkZU91dFNwZWVkOiAyMDAsDQoJCQkJCW9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQsIHRhYkluZGV4KSB7DQoJDQoJCQkJfQ0KCQl9KTsNCgl9KTsNCjwvc2NyaXB0Pg0Key9saXRlcmFsfQ0KDQoNCjxoMz57JHRpdGxlX3NlY3Rpb259PC9oMz4NCnskc3RhcnRmb3JtfQ0KDQogICAgPHA+eyRoZWxwX3NlY3Rpb259PC9wPg0KICAgIA0KICAgIHtpZiAkc3RlcCA9PSAxfQ0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgPHA+PHN0cm9uZz57JHByb21wdF9wYWNrYWdlbmFtZX08L3N0cm9uZz4mbmJzcDt7JGlucHV0X3BhY2thZ2VuYW1lfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8cD48c3Ryb25nPnskcHJvbXB0X3BhY2thZ2V2ZXJzaW9ufTwvc3Ryb25nPiZuYnNwO3skaW5wdXRfcGFja2FnZXZlcnNpb259PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwPjxzdHJvbmc+eyRwcm9tcHRfYXV0aG9ybmFtZX08L3N0cm9uZz4mbmJzcDt7JGlucHV0X2F1dGhvcm5hbWV9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwPnskcHJvbXB0X25vdGVzfTwvcD4NCiAgICAgICAgICAgIDxwPnskaW5wdXRfbm90ZXN9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxoMz57JG1vZC0+TGFuZygncGFja2FnZWluY2x1ZGVzJyl9OjwvaDM+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCg0KICAgICAgICA8dWwgY2xhc3M9InRhYmVycyIgIHN0eWxlPSJtaW4td2lkdGg6ODA2cHg7bWFyZ2luLXJpZ2h0OjI3MHB4O2Rpc3BsYXk6YmxvY2s7Ij4NCiAgICAgICAgICAgIHtpZiAkZm91bmRfdGVtcGxhdGVzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjdGVtcGxhdGVzIiBjbGFzcz0iY3VycmVudCI+eyRtb2QtPkxhbmcoJ3RlbXBsYXRlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX3N0eWxlc3xAc2l6ZW9mID4gMH08bGk+PGEgaHJlZj0iI3N0eWxlc2hlZXRzIiA+eyRtb2QtPkxhbmcoJ3N0eWxlc2hlZXRzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfcGFnZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNwYWdlcyIgPnskbW9kLT5MYW5nKCdwYWdlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX21vZHVsZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNtb2R1bGV0ZW1wbGF0ZXMiID57JG1vZC0+TGFuZygnbW9kdWxldGVtcGxhdGVzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfYmxvY2tzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjZ2NiIiA+eyRtb2QtPkxhbmcoJ2dibHMnKX08L2E+PC9saT57L2lmfQ0KICAgICAgICAgICAge2lmICRmb3VuZF91ZHRzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjdWR0cyIgPnskbW9kLT5MYW5nKCd1ZHRzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfZmlsZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNmaWxlcyIgPnskbW9kLT5MYW5nKCdmaWxlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX3NldHRpbmdzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjbW9kdWxlc2V0dGluZ3MiID57JG1vZC0+TGFuZygnbW9kdWxlc2V0dGluZ3MnKX08L2E+PC9saT57L2lmfQ0KICAgICAgICA8L3VsPiANCiAgICAgICAgPGRpdiBjbGFzcz0iVGFicGFuZXMiIGlkPSJQUEJNIiAgc3R5bGU9Im1hcmdpbi1yaWdodDoyNzBweDttaW4td2lkdGg6IDgwNnB4OyI+DQogICAgICAgICAgICB7aWYgJGZvdW5kX3RlbXBsYXRlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX3RlbXBsYXRlcyBpdGVtPXRlbXBsYXRlIG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Inskc21hcnR5LmZvcmVhY2guZm9vLml0ZXJhdGlvbn0iIG5hbWU9InRlbXBsYXRlc1tdIiAvPnskdGVtcGxhdGUudGVtcGxhdGVfbmFtZX08L3A+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICB7aWYgJGZvdW5kX3N0eWxlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX3N0eWxlcyBpdGVtPXN0eWxlIG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Inskc21hcnR5LmZvcmVhY2guZm9vLml0ZXJhdGlvbn0iIG5hbWU9InN0eWxlc1tdIiAvPnskc3R5bGUuY3NzX25hbWV9PC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF9wYWdlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX3BhZ2VzIGl0ZW09cGFnZSBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJwYWdlc1tdIiAvPnskcGFnZS5jb250ZW50X25hbWV9ICh7JHBhZ2UuaGllcmFyY2h5X3BhdGh9KTwvcD4NCiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICANCiAgICAgICAgICAgIHtpZiAkZm91bmRfbW9kdWxlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX21vZHVsZXMgaXRlbT1tb2R1bGVfdGVtcGxhdGUgbmFtZT1mb299DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRzbWFydHkuZm9yZWFjaC5mb28uaXRlcmF0aW9ufSIgbmFtZT0ibW9kdWxlc1tdIiAvPnskbW9kdWxlX3RlbXBsYXRlLnRlbXBsYXRlX25hbWV9ICh7JG1vZHVsZV90ZW1wbGF0ZS5tb2R1bGVfbmFtZX0pPC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF9ibG9ja3N8QHNpemVvZiA+IDB9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiA+PHA+eyRtb2QtPkxhbmcoJ2ltcG9ydFJlbW92YWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicpfTwvcD4NCiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmb3VuZF9ibG9ja3MgaXRlbT1ibG9jayBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJibG9ja3NbXSIgLz57JGJsb2NrLmh0bWxibG9iX25hbWV9PC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF91ZHRzfEBzaXplb2YgPiAwfQ0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZSIgPjxwPnskbW9kLT5MYW5nKCdpbXBvcnRSZW1vdmFsJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nKX08L3A+DQogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kZm91bmRfdWR0cyBpdGVtPXVkdCBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJ1ZHRzW10iIC8+eyR1ZHQudXNlcnBsdWdpbl9uYW1lfTwvcD4NCiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICANCiAgICAgICAgICAgIHtpZiAkZm91bmRfZmlsZXN8QHNpemVvZiA+IDB9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiA+PHA+eyRtb2QtPkxhbmcoJ2ltcG9ydFJlbW92YWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicpfTwvcD4NCiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmb3VuZF9maWxlcyBpdGVtPWZpbGUgbmFtZT1mb299DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRzbWFydHkuZm9yZWFjaC5mb28uaXRlcmF0aW9ufSIgbmFtZT0iZmlsZXNbXSIgLz57JGZpbGUubG9jYXRpb259PC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF9zZXR0aW5nc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX3NldHRpbmdzIGl0ZW09c2V0dGluZyBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJzZXR0aW5nc1tdIiAvPnskc2V0dGluZy5tb2R1bGVuYW1lfTwvcD4NCiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgIDwvZGl2Pg0KICAgIHsvaWZ9DQogICAgDQogICAge2lmICRzdGVwID09IDJ9DQogICAgICAgIA0KICAgICAgICB7JG1vZC0+TGFuZygnaW1wb3J0X3N0ZXAyX2Ntc21zJyl9IA0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjbXNtc1N0YXR9IHskbW9kLT5MYW5nKCdwcm9tcHRfY21zbXN2ZXJzaW9uJyl9IHskY2hlY2tfY21zbXN2ZXJzaW9ufTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JFNEU3RhdH0geyRtb2QtPkxhbmcoJ3Byb21wdF9zZHZlcnNpb24nKX0geyRjaGVja19zZHZlcnNpb259PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAge2lmICRtb2R1bGVfdmVyc2lvbnN8QHNpemVvZiA+IDB9IA0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgPGgzPnskbW9kLT5MYW5nKCdtb2R1bGV2ZXJzaW9ucycpfTwvaDM+DQogICAgICAgIA0KICAgICAgICA8L2Rpdj4NCiAgICAgICAge2ZvcmVhY2ggZnJvbT0kbW9kdWxlX3ZlcnNpb25zIGl0ZW09bW9kdWxlfQ0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtb2R1bGUuc3RhdH0geyRtb2R1bGUubmFtZX0ge2lmIGlzc2V0KCRtb2R1bGUuaW5zdGFsbGVkX3ZlcnNpb24pfXskbW9kdWxlLmluc3RhbGxlZF92ZXJzaW9ufXsvaWZ9IHsqeyRtb2R1bGUudmVyc2lvbn0qfSB7JG1vZHVsZS5pbmZvfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgey9pZn0NCiAgICANCiAgICB7L2lmfQ0KICAgIA0KICAgIHtpZiAkc3RlcCA9PSAzfQ0KICAgICAgICA8dWwgY2xhc3M9InRhYmVycyIgIHN0eWxlPSJtaW4td2lkdGg6ODA2cHg7bWFyZ2luLXJpZ2h0OjI3MHB4O2Rpc3BsYXk6YmxvY2s7Ij4NCiAgICAgICAgICAgIHtpZiAkZm91bmRfdGVtcGxhdGVzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjdGVtcGxhdGVzIiBjbGFzcz0iY3VycmVudCI+eyRtb2QtPkxhbmcoJ3RlbXBsYXRlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX3N0eWxlc3xAc2l6ZW9mID4gMH08bGk+PGEgaHJlZj0iI3N0eWxlc2hlZXRzIiBjbGFzcz0iY3VycmVudCI+eyRtb2QtPkxhbmcoJ3N0eWxlc2hlZXRzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfcGFnZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNwYWdlcyIgY2xhc3M9ImN1cnJlbnQiPnskbW9kLT5MYW5nKCdwYWdlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX21vZHVsZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNtb2R1bGV0ZW1wbGF0ZXMiIGNsYXNzPSJjdXJyZW50Ij57JG1vZC0+TGFuZygnbW9kdWxldGVtcGxhdGVzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfYmxvY2tzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjZ2NiIiBjbGFzcz0iY3VycmVudCI+eyRtb2QtPkxhbmcoJ2dibHMnKX08L2E+PC9saT57L2lmfQ0KICAgICAgICAgICAge2lmICRmb3VuZF91ZHRzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjdWR0cyIgY2xhc3M9ImN1cnJlbnQiPnskbW9kLT5MYW5nKCd1ZHRzJyl9PC9hPjwvbGk+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkZm91bmRfZmlsZXN8QHNpemVvZiA+IDB9PGxpPjxhIGhyZWY9IiNmaWxlcyIgY2xhc3M9ImN1cnJlbnQiPnskbW9kLT5MYW5nKCdmaWxlcycpfTwvYT48L2xpPnsvaWZ9DQogICAgICAgICAgICB7aWYgJGZvdW5kX3NldHRpbmdzfEBzaXplb2YgPiAwfTxsaT48YSBocmVmPSIjbW9kdWxlc2V0dGluZ3MiIGNsYXNzPSJjdXJyZW50Ij57JG1vZC0+TGFuZygnbW9kdWxlc2V0dGluZ3MnKX08L2E+PC9saT57L2lmfQ0KICAgICAgICA8L3VsPiANCiAgICAgICAgDQogICAgICAgIDxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSIgIHN0eWxlPSJtYXJnaW4tcmlnaHQ6MjcwcHg7bWluLXdpZHRoOiA4MDZweDsiPg0KICAgICAgICAgICAge2lmICRmb3VuZF90ZW1wbGF0ZXN8QHNpemVvZiA+IDB9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiA+PHA+eyRtb2QtPkxhbmcoJ2ltcG9ydFJlbW92YWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicpfTwvcD4NCiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmb3VuZF90ZW1wbGF0ZXMgaXRlbT10ZW1wbGF0ZSBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJ0ZW1wbGF0ZXNbXSIgLz57JHRlbXBsYXRlLmluZm99IHskdGVtcGxhdGUudGVtcGxhdGVfbmFtZX08L3A+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICB7aWYgJGZvdW5kX3N0eWxlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX3N0eWxlcyBpdGVtPXN0eWxlIG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Inskc21hcnR5LmZvcmVhY2guZm9vLml0ZXJhdGlvbn0iIG5hbWU9InN0eWxlc1tdIiAvPnskc3R5bGUuaW5mb30geyRzdHlsZS5jc3NfbmFtZX08L3A+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICB7aWYgJGZvdW5kX3BhZ2VzfEBzaXplb2YgPiAwfQ0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZSIgPjxwPnskbW9kLT5MYW5nKCdpbXBvcnRSZW1vdmFsJywnPHN0cm9uZz4nLCc8L3N0cm9uZz4nKX08L3A+DQogICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kZm91bmRfcGFnZXMgaXRlbT1wYWdlIG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Inskc21hcnR5LmZvcmVhY2guZm9vLml0ZXJhdGlvbn0iIG5hbWU9InBhZ2VzW10iIC8+eyRwYWdlLmluZm99IHskcGFnZS5jb250ZW50X25hbWV9ICh7JHBhZ2UuaGllcmFyY2h5X3BhdGh9KTwvcD4NCiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICANCiAgICAgICAgICAgIHtpZiAkZm91bmRfbW9kdWxlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX21vZHVsZXMgaXRlbT1tb2R1bGUgbmFtZT1mb299DQogICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ieyRzbWFydHkuZm9yZWFjaC5mb28uaXRlcmF0aW9ufSIgbmFtZT0ibW9kdWxlc1tdIiAvPnskbW9kdWxlLmluZm99IHskbW9kdWxlLnRlbXBsYXRlX25hbWV9ICh7JG1vZHVsZS5tb2R1bGVfbmFtZX0pPC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF9ibG9ja3N8QHNpemVvZiA+IDB9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiA+PHA+eyRtb2QtPkxhbmcoJ2ltcG9ydFJlbW92YWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicpfTwvcD4NCiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmb3VuZF9ibG9ja3MgaXRlbT1ibG9jayBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJibG9ja3NbXSIgLz57JGJsb2NrLmluZm99IHskYmxvY2suaHRtbGJsb2JfbmFtZX08L3A+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICB7aWYgJGZvdW5kX3VkdHN8QHNpemVvZiA+IDB9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lIiA+PHA+eyRtb2QtPkxhbmcoJ2ltcG9ydFJlbW92YWwnLCc8c3Ryb25nPicsJzwvc3Ryb25nPicpfTwvcD4NCiAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRmb3VuZF91ZHRzIGl0ZW09dWR0IG5hbWU9Zm9vfQ0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Inskc21hcnR5LmZvcmVhY2guZm9vLml0ZXJhdGlvbn0iIG5hbWU9InVkdHNbXSIgLz57JHVkdC5pbmZvfSB7JHVkdC51c2VycGx1Z2luX25hbWV9PC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAge2lmICRmb3VuZF9maWxlc3xAc2l6ZW9mID4gMH0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmUiID48cD57JG1vZC0+TGFuZygnaW1wb3J0UmVtb3ZhbCcsJzxzdHJvbmc+JywnPC9zdHJvbmc+Jyl9PC9wPg0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGZvdW5kX2ZpbGVzIGl0ZW09ZmlsZSBuYW1lPWZvb30NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ7JHNtYXJ0eS5mb3JlYWNoLmZvby5pdGVyYXRpb259IiBuYW1lPSJmaWxlc1tdIiAvPnskZmlsZS5pbmZvfSB7JGZpbGUubG9jYXRpb259PC9wPg0KICAgICAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgPC9kaXY+DQoNCiAgICB7L2lmfQ0Ke2lmICRzdGVwID09IDR9DQp7aWYgaXNzZXQoJHJlcG9ydCl9eyRyZXBvcnR9ey9pZn0NCnsvaWZ9DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuZXh0c3RlcH17JHN1Ym1pdH08L3A+DQo8L2Rpdj4NCnskZW5kZm9ybX0NCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4NCjxwPnskbWVzc2FnZX08L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/optmise_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNwYW4gY2xhc3M9ImF0Ij58PC9zcGFuPiA8c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPg0KfDxzcGFuIGNsYXNzPSJzZWxlY3RvciI+fDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImZvcm1hdCI+ezwvc3Bhbj4NCnw8c3BhbiBjbGFzcz0icHJvcGVydHkiPnw8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIj58PC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPjs8L3NwYW4+DQp8PHNwYW4gY2xhc3M9ImZvcm1hdCI+fTwvc3Bhbj58DQoNCnwNCjxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+DQoNCnx8PHNwYW4gY2xhc3M9ImNvbW1lbnQiPnw8L3NwYW4+DQp8DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/optmise_template1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNwYW4gY2xhc3M9ImF0Ij58PC9zcGFuPiA8c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPg0KfDxzcGFuIGNsYXNzPSJzZWxlY3RvciI+fDwvc3Bhbj4NCjxzcGFuIGNsYXNzPSJmb3JtYXQiPns8L3NwYW4+DQp8CTxzcGFuIGNsYXNzPSJwcm9wZXJ0eSI+fDwvc3Bhbj48c3BhbiBjbGFzcz0idmFsdWUiPnw8L3NwYW4+PHNwYW4gY2xhc3M9ImZvcm1hdCI+Ozwvc3Bhbj4NCnw8c3BhbiBjbGFzcz0iZm9ybWF0Ij59PC9zcGFuPnwNCg0KfA0KDQo8c3BhbiBjbGFzcz0iZm9ybWF0Ij59PC9zcGFuPg0KDQp8CXw8c3BhbiBjbGFzcz0iY29tbWVudCI+fDwvc3Bhbj4NCnwNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/optmise_template2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNwYW4gY2xhc3M9ImF0Ij58PC9zcGFuPiA8c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPg0KfDxzcGFuIGNsYXNzPSJzZWxlY3RvciI+fDwvc3Bhbj48c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPnw8c3BhbiBjbGFzcz0icHJvcGVydHkiPnw8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIj58PC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPjs8L3NwYW4+fDxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+fA0KfA0KPHNwYW4gY2xhc3M9ImZvcm1hdCI+fQ0KPC9zcGFuPnx8PHNwYW4gY2xhc3M9ImNvbW1lbnQiPnw8L3NwYW4+fA0K]]></data>
	</file>
	<file>
	  <filename>/templates/optmise_template3.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNwYW4gY2xhc3M9ImF0Ij58PC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPns8L3NwYW4+fDxzcGFuIGNsYXNzPSJzZWxlY3RvciI+fDwvc3Bhbj48c3BhbiBjbGFzcz0iZm9ybWF0Ij57PC9zcGFuPnw8c3BhbiBjbGFzcz0icHJvcGVydHkiPnw8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIj58PC9zcGFuPjxzcGFuIGNsYXNzPSJmb3JtYXQiPjs8L3NwYW4+fDxzcGFuIGNsYXNzPSJmb3JtYXQiPn08L3NwYW4+fHw8c3BhbiBjbGFzcz0iZm9ybWF0Ij59PC9zcGFuPnx8PHNwYW4gY2xhc3M9ImNvbW1lbnQiPnw8L3NwYW4+fA==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBFTUFJTC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/push.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZGlwbGF5YXJlYSI+DQp7bGl0ZXJhbH0NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNCgkJJCgidWwudGFiZXJzIikudGFicygiZGl2LlRhYnBhbmVzID4gZGl2LnBhbmUiLCB7DQoJCQkJCWVmZmVjdDogImRlZmF1bHQiLA0KCQkJCQlmYWRlT3V0U3BlZWQ6IDIwMCwNCgkJCQkJb25DbGljazpmdW5jdGlvbihldmVudCwgdGFiSW5kZXgpIHsNCgkNCgkJCQl9DQoJCX0pOw0KCX0pOw0KPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCnskc3RhcnRmb3JtfQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgeyRyZXN0YXJ0fQ0KICAgICAgICB7JGNhbmNlbH0NCiAgICAgICAgeyRuZXh0c3RlcH17JHN1Ym1pdH08L3A+DQogICAgPC9kaXY+DQoNCjxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4NCnskZW5kZm9ybX0NCjwvZGl2Pg0Ke2xpdGVyYWx9DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgLy88IVtDREFUQVsNCiAgICBmdW5jdGlvbiBzZWxlY3RfYWxsKCkNCiAgICB7DQogICAgICAgIGNoZWNrYm94ZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsNCiAgICAgICAgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RhbGwnKTsNCiAgICAgICAgc3RhdGUgPSBlbGVtLmNoZWNrZWQ7DQogICAgICAgIGZvciAoaT0wOyBpPGNoZWNrYm94ZXMubGVuZ3RoIDsgaSsrKQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAoY2hlY2tib3hlc1tpXS50eXBlID09ICJjaGVja2JveCIpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY2hlY2tib3hlc1tpXS5jaGVja2VkPXN0YXRlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIC8vXV0+DQo8L3NjcmlwdD4NCnsvbGl0ZXJhbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/val_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZBbGVkIj57JFZBbGVkfTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgIHtpZiAkRV9pbnB1dCE9Jyd9PGEgaHJlZj0iIyIgaWQ9IkVfdHJpZyI+PGltZyBzcmM9Ii4uL21vZHVsZXMvU2NyaXB0RGVwbG95L2ltYWdlcy9jc3MtZXJyb3IucG5nIiBhbHQ9IiIvPjxici8+RXJyb3JzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAge2lmICRXX2lucHV0IT0nJ308YSBocmVmPSIjIiBpZD0iV190cmlnIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9TY3JpcHREZXBsb3kvaW1hZ2VzL2Nzcy13YXJuLnBuZyIgYWx0PSIiLz48YnIvPldhcm5pbmdzPC9hPnsvaWZ9DQogICAgICAgICAgICAgICAgIAkJPGRpdiBjbGFzcz0iaGlkZGVuIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDotOTk5OWVtOyBsZWZ0Oi05OTk5ZW07Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JHJlcG9ydH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZGU9PSdlZGl0J30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRFX2lucHV0IT0nJ308ZGl2IGNsYXNzPSJoaWRkZW4iID48ZGl2IGlkPSJFcnJvckFyZWEiPnskRV9pbnB1dH08L2Rpdj48L2Rpdj57L2lmfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJFdfaW5wdXQhPScnfTxkaXYgY2xhc3M9ImhpZGRlbiIgPjxkaXYgaWQ9Indhcm5BcmVhIj57JFdfaW5wdXR9PC9kaXY+PC9kaXY+IHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/Tree.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgY2xhc3MgVHJlZXt2YXIgJF9pZDt2YXIgJF9sZXZlbDt2YXIgJF9wYXJlbnQ7dmFyICRfY2hpbGRyZW47dmFyICRkYXRhO2Z1bmN0aW9uIFRyZWUoJiRfcGFyZW50LCRkYXRhPW51bGwpe2lmKCRfcGFyZW50PT09bnVsbCl7JHRoaXMtPl9sZXZlbD0wO30kdGhpcy0+ZGF0YT0kZGF0YTskdGhpcy0+X2NoaWxkcmVuPWFycmF5KCk7JHRoaXMtPl9wYXJlbnQ9JiRfcGFyZW50O31mdW5jdGlvbiZhZGRDaGlsZCgkZGF0YSl7JHRoaXMtPl9jaGlsZHJlbltdPW5ldyBUcmVlKCR0aGlzLCRkYXRhKTtlbmQoJHRoaXMtPl9jaGlsZHJlbik7JGtleT1rZXkoJHRoaXMtPl9jaGlsZHJlbik7JHRoaXMtPl9jaGlsZHJlblska2V5XS0+X3NldElkKCRrZXkpOyR0aGlzLT5fY2hpbGRyZW5bJGtleV0tPmxldmVsPSR0aGlzLT5fbGV2ZWwrMTtyZXR1cm4gJHRoaXMtPl9jaGlsZHJlblska2V5XTt9ZnVuY3Rpb24gcmVtb3ZlQ2hpbGQoJGlkKXtpZighYXJyYXlfa2V5X2V4aXN0cygkaWQsJHRoaXMtPl9jaGlsZHJlbikpe3JldHVybiBmYWxzZTt9ZWxzZXt1bnNldCgkdGhpcy0+X2NoaWxkcmVuWyRpZF0pO3JldHVybiB0cnVlO319ZnVuY3Rpb24gZGVsZXRlKCl7aWYoISR0aGlzLT5pc1Jvb3Qpe3JldHVybiAkdGhpcy0+X3BhcmVudC0+cmVtb3ZlQ2hpbGQoJHRoaXMtPl9pZCk7fWVsc2V7dW5zZXQoJHRoaXMpO3JldHVybiB0cnVlO319ZnVuY3Rpb24gZ2V0SWQoKXtyZXR1cm4gJHRoaXMtPl9pZDt9ZnVuY3Rpb24gX3NldElkKCRpZCl7JHRoaXMtPl9pZD0kaWQ7fWZ1bmN0aW9uIG51bUNoaWxkcmVuKCl7cmV0dXJuIGNvdW50KCR0aGlzLT5fY2hpbGRyZW4pO31mdW5jdGlvbiBnZXRDaGlsZHJlbklkcygpe3JldHVybiBhcnJheV9rZXlzKCR0aGlzLT5fY2hpbGRyZW4pO31mdW5jdGlvbiBpc1Jvb3QoKXtpZigkdGhpcy0+X3BhcmVudD09bnVsbCl7cmV0dXJuIHRydWU7fWVsc2V7cmV0dXJuIGZhbHNlO319ZnVuY3Rpb24mZ2V0Um9vdCgpeyR0bXA9JiR0aGlzO3doaWxlKCEkdG1wLT5pc1Jvb3QoKSl7JHRtcD0mJHRtcC0+X3BhcmVudDt9cmV0dXJuICR0bXA7fWZ1bmN0aW9uIGdldFBhdGgoKXskaWRhcnJheT1hcnJheSgpOyR0bXA9JiR0aGlzO3doaWxlKCEkdG1wLT5pc1Jvb3QoKSl7YXJyYXlfdW5zaGlmdCgkaWRhcnJheSwkdG1wLT5faWQpOyR0bXA9JiR0bXAtPl9wYXJlbnQ7fXJldHVybiAkaWRhcnJheTt9ZnVuY3Rpb24gZ2V0TGV2ZWwoKXskbGV2ZWw9MDskdG1wPSYkdGhpczt3aGlsZSghJHRtcC0+aXNSb290KCkpeyR0bXA9JiR0bXAtPl9wYXJlbnQ7JGxldmVsKys7fXJldHVybiAkbGV2ZWw7fWZ1bmN0aW9uIGVjaG9TdHJ1Y3R1cmUoJHByZT0nJyl7Zm9yKCRpPTA7JGk8JHRoaXMtPmdldExldmVsKCk7JGkrKyl7JHByZS49J3wnO31lY2hvICRwcmUuIitbIi4kdGhpcy0+X2lkLiddJztpZihpc19hcnJheSgkdGhpcy0+ZGF0YSkpe2ZvcmVhY2goJHRoaXMtPmRhdGEgYXMgJGtleT0+JHZhbHVlKXtlY2hvICcoJy4ka2V5Lid8Jy4kdmFsdWUuJyknO319ZWNobyAiXG4iO2lmKCR0aGlzLT5udW1DaGlsZHJlbigpPjApe2ZvcmVhY2goJHRoaXMtPl9jaGlsZHJlbiBhcyAkY2hpbGQpeyRjaGlsZC0+ZWNob1N0cnVjdHVyZSgkcHJlZml4KTt9fX19ID8+DQo=]]></data>
	</file>
</module>
