<?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>MAMSRegistration</name>
	<version>1.0</version>
    <mincmsversion>2.2.5</mincmsversion>
	<help><![CDATA[PHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvY21zbXMyMjE0bWFtcy9tb2R1bGVzL01BTVNSZWdpc3RyYXRpb24vanMvanMuY29va2llLmpzIj48L3NjcmlwdD4KPHNjcmlwdD4KICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgICB2YXIgYWN0aXZlX3RhYiA9IENvb2tpZXMuZ2V0KCdtYW1zcmVnX3RhYl9hY3RpdmUnKTsKCiAgICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpCiAgICB7CiAgICAgIF9zZXRfYWN0aXZlX3RhYignZ2VuZXJhbCcpOwogICAgfQogICAgZWxzZQogICAgewogICAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7CiAgICB9CgogICAgJCgnI3BhZ2VfdGFicyA+IGRpdicpCiAgICAgIC5lYWNoKGZ1bmN0aW9uKCkKICAgICAgewogICAgICAgICQodGhpcykuY2xpY2soZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgIENvb2tpZXMuc2V0KCdtYW1zcmVnX3RhYl9hY3RpdmUnLCB0aGlzLmlkKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgfSk7CgogIGZ1bmN0aW9uIF9zZXRfYWN0aXZlX3RhYih0YWJfbmFtZSkKICB7CiAgICAkKCcjcGFnZV90YWJzID4gZGl2JykKICAgICAgLmVhY2goZnVuY3Rpb24oKQogICAgICB7CiAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CiAgICAgIH0pOwoKICAgICQoJyNwYWdlX2NvbnRlbnQgPiBkaXYnKQogICAgICAuZWFjaChmdW5jdGlvbigpCiAgICAgIHsKICAgICAgICAkKHRoaXMpLmhpZGUoKTsKICAgICAgfSk7CgogICAgJCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgJCgnIycgKyB0YWJfbmFtZSArICdfYycpLnNob3coKTsKICAgIENvb2tpZXMuc2V0KCdtYW1zcmVnX3RhYl9hY3RpdmUnLCB0YWJfbmFtZSk7CiAgfQo8L3NjcmlwdD4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc2NvcGVkPgpoNXsKICAgIG1hcmdpbi10b3A6IDAuNzVlbTsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsKICB9CiAgbGkudG9wIHsKICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICB9CiAgY29kZS50YWcgewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6IGdyZWVuOwogIH0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KCjxkaXYgaWQ9InBhZ2VfdGFicyI+CgogIDxkaXYgIGlkPSJnZW5lcmFsIj4KICAgIEdlbmVyYWwKICA8L2Rpdj4KICA8ZGl2IGlkPSJ1c2luZyI+CiAgICBIb3cgRG8gSSBVc2UgSXQKICA8L2Rpdj4KICA8ZGl2IGlkPSJwYXJhbXMiPgogICAgUGFyYW1ldGVycwogIDwvZGl2PgogIDxkaXYgaWQ9Imhvb2tzIj4KICAgIEhvb2tzCiAgPC9kaXY+CiAgPGRpdiBpZD0iYWJvdXQiPgogICAgQWJvdXQKICA8L2Rpdj4KCjwvZGl2PgoKPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4KCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4KICAgIDxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBkZXNpZ25lZCB0byBhbGxvdyBzaXRlIHZpc2l0b3JzIHRvIGNyZWF0ZSBhbiBhY2NvdW50IHRvIHlvdXIgd2Vic2l0ZSBieSBmaWxsaW5nIGluIHRoZWlyIG93biBwZXJzb25hbCBkZXRhaWxzLiAgVGhpcyBtb2R1bGUgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKDxzdHJvbmc+PGk+TWVtYmVycyBBcmVhIE1hZGUgU2ltcGxlPC9pPjwvc3Ryb25nPikgbW9kdWxlLjwvcD4KPGg0PkZlYXR1cmVzOjwvaDQ+Cjx1bD4KICA8bGk+U3VwcG9ydHMgc2VuZGluZyBhIGNvbmZpcm1hdGlvbiBlbWFpbCAod2l0aCBhIHVuaXF1ZWx5IGdlbmVyYXRlZCBjb2RlKSB0byB2ZXJpZnkgdXNlciBpbmZvcm1hdGlvbjs8L2xpPgoKICA8bGk+SGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB1c2VycyBoYXZlIGF0dGVtcHRlZCB0byByZWdpc3RlciwgYnV0IGxvc3Qgb3IgZGlkIG5vdCByZWNlaXZlIHRoZSBjb25maXJtYXRpb24gZW1haWwuPC9saT4KICA8bGk+SGFuZGxlcyByZWdpc3RlcmluZyB0aGUgdXNlciBhbmQgYWRkaW5nIHRoZW0gdG8gPHN0cm9uZz5NQU1TPC9zdHJvbmc+IGRpcmVjdGx5LjwvbGk+CiAgPGxpPkhhbmRsZXMgYXV0b21hdGljYWxseSBub3RpZnlpbmcgYW4gYWRtaW4gd2hlbiBzb21lb25lIHJlZ2lzdGVycy48L2xpPgogIDxsaT5IYW5kbGVzIGFkdmFuY2VkIHNlY3VyaXR5PC9saT4KICA8bGk+U3VwcG9ydHMgY2FwdGNoYTwvbGk+CiAgPGxpPlN1cHBvcnRzIGFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciB0byBhbiBhZGRpdGlvbmFsIGdyb3VwLjwvbGk+CjwvdWw+CiAgPC9kaXY+CiAgPGRpdiBpZD0idXNpbmdfYyI+CiAgICA8aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+CjxoND5Ob3JtYWwgUmVnaXN0cmF0aW9uPC9oND4KPHVsPgogIDxsaT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgbW9kdWxlIHJlcXVpcmVzIHRoYXQgdGhlIDxzdHJvbmc+TUFNUzwvc3Ryb25nPiAoPHN0cm9uZz48aT5NZW1iZXJzIEFyZWEgTWFkZSBTaW1wbGU8L2k+PC9zdHJvbmc+KSBtb2R1bGUgYmUgcHJvcGVybHkgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkLjwvbGk+CiAgPGxpPlBsYWNlIGEgdGFnIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBvbiBhIGNvbnRlbnQgcGFnZToKICAgICA8Y29kZT4mbGJyYWNlO01BTVNSZWdpc3RyYXRpb24gZ3JvdXA9YWdyb3VwbmFtZX08L2NvZGU+CiAgICAgPHA+PGNvZGU+YWdyb3VwbmFtZTwvY29kZT4gaXMgYSBncm91cCBuYW1lIHRoYXQgZXhpc3RzIGFuZCBoYXMgYmVlbiBjb25maWd1cmVkIGluIHRoZSA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gbW9kdWxlLjwvcD4KICA8L2xpPgo8L3VsPgo8aDQ+QWxsb3dpbmcgYSB1c2VyIHRvIHJlZ2lzdGVyIGZvciBhbm90aGVyIGdyb3VwLjwvaDQ+CjxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlIHJlZ2lzdGVyIGZvciBhbm90aGVyIGdyb3VwIGFjdGlvbiByZXF1aXJlcyB0aGF0IGEgdXNlciBiZSBsb2dnZWQgaW4gdG8gPHN0cm9uZz5NQU1TPC9zdHJvbmc+IHRvIHV0aWxpemUgdGhpcyBhY3Rpb24uICBJZiB0aGUgdXNlciBpcyBhbHJlYWR5IGEgbWVtYmVyIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSBvciBhbm90aGVyIGVycm9yIG9jY3VycyBubyBvdXRwdXQgd2lsbCBiZSBkaXNwbGF5ZWQuPC9wPgo8cD5UbyBhbGxvdyBhIHVzZXIgdG8gcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgZm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4KPHVsPgogIDxsaT5FbmFibGUgdGhlIG9wdGlvbiBpbiB0aGUgTUFNU1JlZ2lzdHJhdGlvbiBtb2R1bGUgc2V0dGluZ3MuPC9saT4KICA8bGk+QWRkIGEgY2FsbCBzdWNoIGFzIDxjb2RlPiZsYnJhY2U7TUFNU1JlZ2lzdHJhdGlvbiBhY3Rpb249YW5vdGhlcmdyb3VwIGdyb3VwPW90aGVyZ3JvdXBuYW1lfTwvY29kZT4gdG8gYSBjb250ZW50IHBhZ2UuCjwvbGk+PC91bD4KCgogIDwvZGl2PgogIDxkaXYgaWQ9InBhcmFtc19jIj4KICAgIDxoMz5QYXJhbWV0ZXJzPC9oMz4KPHVsPgo8bGk+CiAgPGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gVGhpcyBwYXJhbWV0ZXIgZGljdGF0ZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLgogIDx1bD4KICAgIDxsaT4KICAgICAgPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CiAgICAgIDxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgYWN0aW9uLiAgQmFzZWQgb24gdGhlIDxlbT4oZGVwcmVjYXRlZCZndDs8L2VtPiBtb2RlIHBhcmFtZXRlciA8ZW0+KHNlZSBiZWxvdyk8L2VtPiBpdCB3aWxsIGRpc3BsYXkgZWl0aGVyIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLCB0aGUgdmVyaWZ5IGZvcm0sIG9yIGFub3RoZXIgZm9ybS48L3A+CiAgICA8L2xpPgogICAgPGxpPgogICAgICByZWdpc3Rlcl9saW5rCiAgICAgIDxwPkRpc3BsYXkgYSBsaW5rIHRvIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLiA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT48L3A+CiAgICA8L2xpPgogICAgPGxpPmFub3RoZXJncm91cCAtIEZvciB1c2VycyB3aG8gYXJlIGxvZ2dlZCBpbiB0byB0aGUgTUFNUyBtb2R1bGUsIHRoaXMgYWN0aW9uIGFsbG93cyB0aGVtIChzdWJqZWN0IHRvIHBlcm1pc3Npb24pIHRvIHNpZ24gdXAgdG8gYW5vdGhlciBuYW1lZCBNQU1TIGdyb3VwLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzdHBhZ2U9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1yZWdpc3Rlcl9saW5rLCBhbmQgdGhlIGRlZmF1bHQgYWN0aW9uLiB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyAoYnkgYWxpYXMgb3IgcGFnZSBpZCkgYSBkZXN0aW5hdGlvbiBwYWdlIGZvciB0aGUgbGluayBvciB0byByZWRpcmVjdCB0byBhZnRlciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZ3JvdXA9IiIgLSBBcHBsaWNhYmxlIHRvIChhbmQgcmVxdWlyZWQgZm9yKSB0aGUgcmVnaXN0ZXJfbGluaywgcmVnaXN0ZXIsIG9yIGFub3RoZXJncm91cCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGdyb3VwIGluIHdoaWNoIHRoZSB1c2VyIHdpbGwgYmUgcmVnaXN0ZXJlZDwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG9ubHlocmVmPSIiIC0gVXNlZCBvbmx5IGluIHRoZSBhY3Rpb249cmVnaXN0ZXJfbGluaywgc2V0dGluZyB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgb3V0cHV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdGhlIHVybCBwb3J0aW9uIG9mIHRoZSBsaW5rPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGlua3RleHQ9IiIgLSBVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbl9yZWdpc3Rlcl9saW5rIGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSB0ZXh0IGZvciB0aGUgZ2VuZXJhdGVkIGxpbmsuICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHRoZSBvbmx5aHJlZiBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vaW5saW5lPSIiIC0gQXBwbGljYWJsZSB0byBtYW55IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIG92ZXJyaWRlcyB0aGUgcHJlZmVyZW5jZSBpbiB0aGUgYWRtaW4gcGFuZWwgdG8gaW5kaWNhdGUgdGhhdCB0aGUgb3V0cHV0IGZyb20gdGhlIGdlbmVyYXRlZCBsaW5rIG9yIGZvcm0gc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgaW5saW5lLiAgaS5lOiBub2lubGluZT0xIG9uIHRoZSBkZWZhdWx0IGFjdGlvbiB3aWxsIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCB0ZXh0IHdpbGwgcmVwbGFjZSB0aGUgJmxicmFjZTtjb250ZW50fSB0YWcuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWxsb3dvdmVyd3JpdGU9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcndyaXRpbmcgZXhpc3RpbmcgTUFNUyB1c2Vycy4gSW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJlZmVyZW5jZXMgaW4gdGhlIFNlbGZSZWdpc3RyYXRpb24gYWRtaW4gcGFuZWwgeW91IGNhbiBzcGVjaWZ5IHdoYXQgZGF0YSB3aWxsIGJlIHVzZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYSB1c2VyIGFjY291bnQnOzwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZmluYWxtZXNzYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0LCBzaWdudXAgYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgaW5kaWNhdGluZyB0aGF0IHRoZSBmaW5hbCByZWdpc3RyYXRpb24gY29uZmlybWF0aW9uIG1lc3NhZ2Ugc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdmVyaWZ5dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHZlcmlmeSBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIG5hbWUgb2YgYSBub24tZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UuPC9saT4KCiAgPC9kaXY+CiAgPGRpdiBpZD0iaG9va3NfYyI+CiAgICA8aDM+SG9va3M8L2gzPgo8cD5UaGlzIG1vZHVsZSB1c2VzIEV2ZW50cyBhbmQgSG9va3MgdG8gdGllIGluIGV4dGVybmFsIGZ1bmN0aW9uYWxpdHkuICBUaGUgZm9sbG93aW5nIGhvb2tzIGFyZSBhdmFpbGFibGU6PC9wPgo8dWw+CiAgIDxsaT48Y29kZT5NQU1TUmVnaXN0cmF0aW9uOjpiZWZvcmVOZXdVc2VyPC9jb2RlPiAtIENhbGxlZCBiZWZvcmUgYSBuZXcgdGVtcG9yYXJ5IHVzZXIgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBmb3JtIHByb2Nlc3NpbmcsIGFmdGVyIHZhbGlkYXRpbmcgYWxsIHVzZXIgaW5mb3JtYXRpb24sIGJ1dCBiZWZvcmUgYWRkaW5nIHRoZSB0ZW1wb3JhcnkgdXNlciBpbmZvcm1hdGlvbi4gIEl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gZnVydGhlciB2YWxpZGF0aW9ucyBvbiB0aGUgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uLjwvcD4KICAgICAgIDxwPkhhbmRsZXJzIHRoYXQgYXJlIHVzaW5nIHRoaXMgaG9vayBjYW4gdGhyb3cgdGhlIDxjb2RlPk1BTVNSRUdWYWxpZGF0aW9uRXJyb3I8L2NvZGU+IEV4Y2VwdGlvbiBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT51c2VybmFtZTwvY29kZT46IHN0cmluZzwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+OiBzdHJpbmc8L2xpPgogICAgICAgICAgPGxpPjxjb2RlPnBhc3N3b3JkPC9jb2RlPjogc3RyaW5nIC0gVGhlIHBsYWluIHRleHQgdXNlciBwYXNzd29yZDwvbGk+CiAgICAgICA8L3VsPgogICAgICAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+XENNU01TXEhvb2tNYW5hZ2VyOjphZGRfaG9vayggJ01BTVNSZWdpc3RyYXRpb246OmJlZm9yZU5ld1VzZXInLCBmdW5jdGlvbiggJHBhcmFtcyApIHsKICAgIGlmKCBzdHJsZW4oICRwYXJhbXNbJ3Bhc3N3b3JkJ10gKSAmbHQ7IDQgKSB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJ1lvdXIgcGFzc3dvcmQgaXMgdG9vIHNob3J0Jyk7Cn0pOzwvY29kZT48L3ByZT4KICAgPC9saT4KCiAgIDxsaT48Y29kZT5NQU1TUmVnaXN0cmF0aW9uOjpvbk5ld1VzZXI8L2NvZGU+IC0gVHJpZ2dlcmVkIHdoZW4gYSBuZXcgdGVtcG9yYXJ5IHVzZXIgaXMgY3JlYXRlZCBpbiBNQU1TUmVnaXN0cmF0aW9uLgogICAgICAgPHA+VGhpcyBob29rIGlzIGNhbGxlZCBhZnRlciB0aGUgTUFNU1JlZ2lzdHJhdGlvbiB0ZW1wb3JhcnkgdXNlciBpcyBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZSwgYnV0IGJlZm9yZSB2ZXJpZmljYXRpb24sIG9yIGFkZGluZyB0byBNQU1TIGV0Yy48L3A+CiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPgogICAgICAgPHVsPgogICAgICAgICAgPGxpPjxjb2RlPnVzZXJuYW1lPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+IDogc3RyaW5nPC9saT4KICAgICAgIDwvdWw+CiAgIDwvbGk+CgogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6b25Vc2VyUmVnaXN0ZXJlZDwvY29kZT4gLSBUcmlnZ2VyZWQgYWZ0ZXIgYSB0ZW1wb3JhcnkgdXNlciBhY2NvdW50IGhhcyBiZWVuIGNvbnZlcnRlZCBpbnRvIGFuIE1BTVMgdXNlciBhY2NvdW50LgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT5pZDwvY29kZT4gOiBpbnQgLSBUaGUgTUFNUyB1aWQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdXNlci48L2xpPgogICAgICAgICAgPGxpPjxjb2RlPnVzZXJuYW1lPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICA8L3VsPgogICA8L2xpPgoKPC91bD4KICA8L2Rpdj4KICA8ZGl2IGlkPSJhYm91dF9jIj4KICAgIDxoMz5BYm91dCB0aGlzIG1vZHVsZTwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGEgZm9yayBvZiA8c3Ryb25nPlNlbGZSZWdpc3RyYXRpb248L3N0cm9uZz4gZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Ozwvc3Ryb25nPi48YnIgLz4KICBUaGlzIGlzIGEgMXN0IGdlbmVyYXRpb24gZm9yayBvZiB0aGUgbW9kdWxlLiBDb25zaWRlciB0aGlzIGFzIGFub3RoZXIgZmxhdm91ciBvZiB0aGUgb3JpZ2luYWwgbW9kdWxlLiBIb3dldmVyIHRoZXJlIGFyZSBzb21lIHN1YnN0YW50aWFsIGRpZmZlcmVuY2VzLCB0aGVtIG1haW4gb25lIGJlaW5nIHRoYXQgaXQgcmVxdWlyZXMgPHN0cm9uZz5NQU1TPC9zdHJvbmc+IChhIGZvcmsgb2YgPHN0cm9uZz5GRVU8L3N0cm9uZz4gYWxzbyBmcm9tIHRoZSBzYW1lIGF1dGhvcikuIDxzdHJvbmc+VGhpcyBtb2R1bGUgd2lsIG5vdCB3b3JrIHdpdGggRkVVPC9zdHJvbmc+LjwvcD4KCjxwPklmIHlvdSBmaW5kIGFueSBidWdzIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgYnVnIHJlcG9ydCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzE0NjYiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPiBvciBmb3IgYW55IGdvb2QgaWRlYXMgY29uc2lkZXIgc3VibWl0aW5nIGEgZmVhdHVyZSByZXF1ZXN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTQ2NiIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+LjwvcD4KPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuCjwvcD4KCgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoZSBtb2R1bGUgYXV0aG9yIC8gbWFpbnRhaW5lcnMgb3IgcHJvamVjdCBtYW5hZ2VycyBhcmUgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL21hbXNyZWciPmhlcmU8L2E+LiBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8L3VsPgoKPHA+VGhlIG1haW50YWluZXJzIHdpbGwgZG8gdGhlaXIgYmVzdCB0byBrZWVwIHRoZSBtb2R1bGUgYW5kIGFsbCB0aGUgbGlicmFyaWVzIGl0IHVzZXMgdXAgdG8gZGF0ZS48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDIwIC0gMjAyMSwgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gPGEgaHJlZj0ibWFpbHRvOmluZm9AY21zbWFkZXNpbXBsZS5vcmciPiZsdDtpbmZvQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDAmZ3Q7LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+Cjxocj4KPHA+PHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD48c3Ryb25nPk1BTVNSZWdpc3RyYXRpb248L3N0cm9uZz4gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IDxzdHJvbmc+V0lUSE9VVCBBTlkgV0FSUkFOVFk8L3N0cm9uZz47PGJyIC8+IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiA8c3Ryb25nPk1FUkNIQU5UQUJJTElUWTwvc3Ryb25nPiBvciA8c3Ryb25nPkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFPC9zdHJvbmc+LjwvcD4KPHA+U2VlIHRoZUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPC9wPgogPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+CjxwPjxzdHJvbmc+WW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyA8c3Ryb25nPk1BTVNSZWdpc3RyYXRpb248L3N0cm9uZz4uPC9zdHJvbmc+PC9wPgo8aHI+CjxoND5DdXJyZW50IE1haW50YWluZXJzPC9oND4KPHVsPgogIDxsaSBjbGFzcz0icF9ib3R0b21fMTUiPjxzdHJvbmc+RmVybmFuZG8gTW9yZ2FkbyAoSm8gTW9yZyk8L3N0cm9uZz48L2xpPgo8L3VsPgoKPGg0PlBhc3QgTWFpbnRhaW5lcnM8L2g0Pgo8dWw+CiAgPGxpPjxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwKTwvc3Ryb25nPiA8YnIgLz53d3cuY2FsZ3V5MTAwMC5jb208L2xpPgo8L3VsPgoKPGg0Pktub3duIENvbnRyaWJ1dG9yczwvaDQ+Cjx1bD4KICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+PGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4KPC91bD4KCgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNNU01TRXh0ID0mZ3Q7IDEuMC4xPC9saT48bGk+TUFNUyA9Jmd0OyAxLjA8L2xpPjxsaT5TbWFydHlFeHQgPSZndDsgMS4wPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKbyBNb3JnICZsdDtqb21vcmdAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PCEtLSBlcnJvcjogbWlzc2luZyBjaGFuZ2Vsb2cgZmlsZSEgLS0+PGJyIC8+]]></about>
	<description><![CDATA[A module that allows front end users to register themselves.]]></description>
	<requires>
	  <requiredname>CMSMSExt</requiredname>
	  <requiredversion>1.0.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>MAMS</requiredname>
	  <requiredversion>1.0</requiredversion>
	</requires>
	<requires>
	  <requiredname>SmartyExt</requiredname>
	  <requiredversion>1.0</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/moduledata.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtb2R1bGVkYXRhIHZlcnNpb249JzEuMCc+DQo8TW9kdWxlTmFtZT5NQU1TUmVnaXN0cmF0aW9uPC9Nb2R1bGVOYW1lPg0KPE1vZHVsZUZyaWVuZGx5TmFtZT48L01vZHVsZUZyaWVuZGx5TmFtZT4NCjxWZXJzaW9uPjEuMC5iLjI8L1ZlcnNpb24+DQo8QXV0aG9yPkpvIE1vcmc8L0F1dGhvcj4NCjxBdXRob3JFbWFpbD5qb21vcmdAY21zbWFkZXNpbXBsZS5vcmc8L0F1dGhvckVtYWlsPg0KPFN0YXJ0RGF0ZT48L1N0YXJ0RGF0ZT4NCjxQSFBIZWFkZXI+PCFbQ0RBVEFbSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNpTWdleVJ0YjJSMWJHVmZibUZ0WlgwZ0xTQjdKRzF2WkhWc1pWOW1jbWxsYm1Sc2VWOXVZVzFsZlEwS0l5QldaWEp6YVc5dUlIc2tiVzlrZFd4bFgzWmxjbk5wYjI1OURRb2pJSHNrYlc5a2RXeGxYMlJsYzJOeWFYQjBhVzl1ZlEwS0l5QW9ZeWtnZXlSemRHRnlkR1JoZEdWOUxYc2taVzVrWkdGMFpYMGdZbmtnZXlSdGIyUjFiR1ZmWVhWMGFHOXlmUTBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNpTU5DaU1nZXlSdGIyUjFiR1ZmYm1GdFpYMGdhWE1nWVNCRFRWTWdUV0ZrWlNCVGFXMXdiR1VnYlc5a2RXeGxJSFJvWVhRZ1pXNWhZbXhsY3lCMGFHVWdkMlZpSUdSbGRtVnNiM0JsY2lCMGJ5QmpjbVZoZEdVTkNpTWdiWFZzZEdsd2JHVWdiR2x6ZEhNZ2RHaHliM1ZuYUc5MWRDQmhJSE5wZEdVdUlFbDBJR05oYmlCaVpTQmtkWEJzYVdOaGRHVmtJR0Z1WkNCbmFYWmxiaUJtY21sbGJtUnNlUTBLSXlCdVlXMWxjeUJtYjNJZ1pXRnphV1Z5SUdOc2FXVnVkQ0J0WVdsdWRHVnVZVzVqWlM0TkNpTU5DaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0RFFvaklFTk5VeUF0SUVOTlV5Qk5ZV1JsSUZOcGJYQnNaU0JwY3lBb1l5a2dNakF3TlNCaWVTQlVaV1FnUzNWc2NDQW9kMmx6YUhsQVkyMXpiV0ZrWlhOcGJYQnNaUzV2Y21jcERRb2pJRlpwYzJsMElIUm9aU0JEVFZOTlV5Qm9iMjFsY0dGblpTQmhkRG9nYUhSMGNEb3ZMM2QzZHk1amJYTnRZV1JsYzJsdGNHeGxMbTl5WncwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTME5DaU1nUWtWSFNVNWZURWxEUlU1VFJRMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ2lNZ1ZHaHBjeUJtYVd4bElHbHpJSEJoY25RZ2IyWWdleVJ0YjJSMWJHVmZibUZ0WlgwTkNpTWdleVJ0YjJSMWJHVmZibUZ0WlgwZ2NISnZaM0poYlNCcGN5Qm1jbVZsSUhOdlpuUjNZWEpsT3lCNWIzVWdZMkZ1SUhKbFpHbHpkSEpwWW5WMFpTQnBkQ0JoYm1RdmIzSWdiVzlrYVdaNURRb2pJR2wwSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdSMDVWSUVkbGJtVnlZV3dnVUhWaWJHbGpJRXhwWTJWdWMyVWdZWE1nY0hWaWJHbHphR1ZrSUdKNURRb2pJSFJvWlNCR2NtVmxJRk52Wm5SM1lYSmxJRVp2ZFc1a1lYUnBiMjQ3SUdWcGRHaGxjaUIyWlhKemFXOXVJRElnYjJZZ2RHaGxJRXhwWTJWdWMyVXNJRzl5RFFvaklDaGhkQ0I1YjNWeUlHOXdkR2x2YmlrZ1lXNTVJR3hoZEdWeUlIWmxjbk5wYjI0dURRb2pEUW9qSUhza2JXOWtkV3hsWDI1aGJXVjlJSEJ5YjJkeVlXMGdhWE1nWkdsemRISnBZblYwWldRZ2FXNGdkR2hsSUdodmNHVWdkR2hoZENCcGRDQjNhV3hzSUdKbElIVnpaV1oxYkN3TkNpTWdZblYwSUZkSlZFaFBWVlFnUVU1WklGZEJVbEpCVGxSWk95QjNhWFJvYjNWMElHVjJaVzRnZEdobElHbHRjR3hwWldRZ2QyRnljbUZ1ZEhrZ2IyWU5DaU1nVFVWU1EwaEJUbFJCUWtsTVNWUlpJRzl5SUVaSlZFNUZVMU1nUms5U0lFRWdVRUZTVkVsRFZVeEJVaUJRVlZKUVQxTkZMaUFnVTJWbElIUm9aUTBLSXlCSFRsVWdSMlZ1WlhKaGJDQlFkV0pzYVdNZ1RHbGpaVzV6WlNCbWIzSWdiVzl5WlNCa1pYUmhhV3h6TGcwS0l5QlpiM1VnYzJodmRXeGtJR2hoZG1VZ2NtVmpaV2wyWldRZ1lTQmpiM0I1SUc5bUlIUm9aU0JIVGxVZ1IyVnVaWEpoYkNCUWRXSnNhV01nVEdsalpXNXpaUTBLSXlCaGJHOXVaeUIzYVhSb0lIUm9hWE1nY0hKdlozSmhiVHNnYVdZZ2JtOTBMQ0IzY21sMFpTQjBieUIwYUdVZ1JuSmxaU0JUYjJaMGQyRnlaUTBLSXlCR2IzVnVaR0YwYVc5dUxDQkpibU11TENBMU9TQlVaVzF3YkdVZ1VHeGhZMlVzSUZOMWFYUmxJRE16TUN3Z1FtOXpkRzl1TENCTlFTQXdNakV4TVMweE16QTNJRlZUUVEwS0l5QlBjaUJ5WldGa0lHbDBJRzl1YkdsdVpUb2dhSFIwY0RvdkwzZDNkeTVuYm5VdWIzSm5MMnhwWTJWdWMyVnpMMnhwWTJWdWMyVnpMbWgwYld3alIxQk1EUW9qRFFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRMEtJeUJGVGtSZlRFbERSVTVUUlEwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMD1dXT48L1BIUEhlYWRlcj4NCjxMaWNlbmNlPkdQTCBWMzwvTGljZW5jZT4NCjxGaWxsSGVhZGVyPjA8L0ZpbGxIZWFkZXI+DQo8L21vZHVsZWRhdGE+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_addpaidpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFpc3NldCgkZ0NtcykpCnsKICBleGl0Owp9CmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKQp7CiAgcmV0dXJuOwp9CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCEkbWFtcykKewogIHJldHVybjsKfQoKJG1vZG5hbWUgICAgICA9IHN0cnRvbG93ZXIoJHRoaXMtPkdldE5hbWUoKSk7CiR0YWJsZV9wcmVmaXggPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kbmFtZTsKCi8vIGluaXRpYWxpemF0aW9uCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdyZWdwa2dzJyk7CiRlcnJvciAgICAgICAgICAgICAgPSAkcGtnaWQgPSBOVUxMOwokcmVjICAgICAgICAgICAgICAgID0gYXJyYXkoKTsKJHJlY1snbmFtZSddICAgICAgICA9ICcnOwokcmVjWydwcm9tcHQnXSAgICAgID0gJyc7CiRyZWNbJ2Rlc2NyaXB0aW9uJ10gPSAnJzsKJHJlY1snZ2lkJ10gICAgICAgICA9ICcnOwokcmVjWydzdWJzY3JfbnVtJ10gID0gMTsKJHJlY1snc3Vic2NyX3R5cGUnXSA9ICd5ZWFybHknOwokcmVjWydjb3N0J10gICAgICAgID0gJyc7CiRncm91cHMgICAgICAgICAgICAgPSBhcnJheV9mbGlwKCRtYW1zLT5HZXRHcm91cExpc3QoKSk7CgovLyBoYW5kbGUgaW5jb21pbmcgcGFyYW1zCmlmKGlzc2V0KCRwYXJhbXNbJ3BrZ2lkJ10pKQp7CiAgJHBrZ2lkID0gKGludCkkcGFyYW1zWydwa2dpZCddOwogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiAkdGFibGVfcHJlZml4IC4gJ19wYWlkcGtncyBXSEVSRSBpZCA9ID8nOwogICR0bXAgICA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHBrZ2lkKSk7CiAgaWYoJHRtcCkKICB7CiAgICAkcmVjID0gJHRtcDsKICB9Cn0KCi8vIGhhbmRsZSBmb3JtIHN1Ym1pdAppZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCnsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKewogIHRyeQogIHsKICAgIC8vIGZpbGwgaW4gdGhlIHJlY29yZAogICAgJHJlY1snbmFtZSddICAgICAgICA9IHRyaW0oJHBhcmFtc1sncGtnX25hbWUnXSk7CiAgICAkcmVjWydwcm9tcHQnXSAgICAgID0gdHJpbSgkcGFyYW1zWydwa2dfcHJvbXB0J10pOwogICAgJHJlY1snZGVzY3JpcHRpb24nXSA9IHRyaW0oJHBhcmFtc1sncGtnX2Rlc2NyaXB0aW9uJ10pOwogICAgJHJlY1snZ2lkJ10gICAgICAgICA9IChpbnQpJHBhcmFtc1sncGtnX2dpZCddOwogICAgaWYoaXNzZXQoJHBhcmFtc1sncGtnX2Nvc3QnXSkpCiAgICB7CiAgICAgICRyZWNbJ2Nvc3QnXSA9IChmbG9hdCkkcGFyYW1zWydwa2dfY29zdCddOwogICAgfQogICAgaWYoaXNzZXQoJHBhcmFtc1snc3Vic2NyX251bSddKSkKICAgIHsKICAgICAgJHJlY1snc3Vic2NyX251bSddID0gKGludCkkcGFyYW1zWydzdWJzY3JfbnVtJ107CiAgICB9CiAgICBpZihpc3NldCgkcGFyYW1zWydzdWJzY3JfdHlwZSddKSkKICAgIHsKICAgICAgJHJlY1snc3Vic2NyX3R5cGUnXSA9IHRyaW0oJHBhcmFtc1snc3Vic2NyX3R5cGUnXSk7CiAgICB9CiAgICAKICAgIC8vIGNoZWNrIGZvciBlcnJvcnMuCiAgICBpZigkcmVjWydjb3N0J10gPCAwKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9zdWJzY3Jjb3N0JykpOwogICAgfQogICAgc3dpdGNoKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcmVjLCAnc3Vic2NyX3R5cGUnKSkKICAgIHsKICAgICAgY2FzZSAnbW9udGgnOgogICAgICAgIHN3aXRjaCgkcmVjWydzdWJzY3JfbnVtJ10pCiAgICAgICAgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgY2FzZSA2OgogICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgLy8gdGhlc2UgYXJlIGFsbCBva2F5LgogICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Vycl9zdWJzY3Jtb250aCcpKTsKICAgICAgICB9CiAgICAgIGJyZWFrOwogICAgICBjYXNlICd5ZWFyJzoKICAgICAgICBpZigkcmVjWydzdWJzY3JfbnVtJ10gIT0gMSkKICAgICAgICB7CiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9zdWJzY3J5ZWFyJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICAKICAgICRmbGRzID0gYXJyYXkoJ25hbWUnID0+ICR0aGlzLT5MYW5nKCduYW1lJyksICdwcm9tcHQnID0+ICR0aGlzLT5MYW5nKCdwcm9tcHQnKSk7CiAgICBmb3JlYWNoKCRmbGRzIGFzICRmbGQgPT4gJGxibCkKICAgIHsKICAgICAgJHF1ZXJ5ID0gc3ByaW50ZignU0VMRUNUIGlkIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzIFdIRVJFICVzID0gPycsICRmbGQpOwogICAgICAkcGFybXMgPSBhcnJheSgkcmVjWyRmbGRdKTsKICAgICAgaWYoJHBrZ2lkKQogICAgICB7CiAgICAgICAgJHF1ZXJ5ID0gc3ByaW50ZignU0VMRUNUIGlkIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzIFdIRVJFICVzID0gPyBBTkQgaWQgIT0gPycsICRmbGQpOwogICAgICAgICRwYXJtcyA9IGFycmF5KCRyZWNbJGZsZF0sICRwa2dpZCk7CiAgICAgIH0KICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgJHBhcm1zKTsKICAgICAgaWYoJHRtcCkKICAgICAgewogICAgICAgICR2YWwgPSAkcmVjWyRmbGRdOwogICAgICAgIGlmKCRmbGQgPT0gJ2dpZCcpCiAgICAgICAgewogICAgICAgICAgJHZhbCA9ICRncm91cHNbJHJlY1skZmxkXV07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcGtnZXhpc3RzJywgJGxibCwgJHZhbCkpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIHdlJ3JlIHJlYWR5IHRvIGluc2VydCBvciB1cGRhdGUuCiAgICAkcmVzID0gJyc7CiAgICBpZighJHBrZ2lkKQogICAgewogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzCiAgICAgICAgICAgICAgICAobmFtZSxwcm9tcHQsZGVzY3JpcHRpb24sZ2lkLGNvc3Qsc3Vic2NyX251bSxzdWJzY3JfdHlwZSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOwogICAgICAkcmVzICAgPSAkZGItPkV4ZWN1dGUoCiAgICAgICAgJHF1ZXJ5LAogICAgICAgIGFycmF5KAogICAgICAgICAgJHJlY1snbmFtZSddLCAkcmVjWydwcm9tcHQnXSwgJHJlY1snZGVzY3JpcHRpb24nXSwKICAgICAgICAgICRyZWNbJ2dpZCddLCAkcmVjWydjb3N0J10sCiAgICAgICAgICAkcmVjWydzdWJzY3JfbnVtJ10sICRyZWNbJ3N1YnNjcl90eXBlJ10KICAgICAgICApCiAgICAgICk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICRxdWVyeSA9ICdVUERBVEUgJyAuICR0YWJsZV9wcmVmaXggLiAnX3BhaWRwa2dzCiAgICAgICAgICAgICAgICBTRVQgbmFtZSA9ID8sIHByb21wdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgZ2lkID0gPywgY29zdCA9ID8sCiAgICAgICAgICAgICAgICAgICAgc3Vic2NyX251bSA9ID8sIHN1YnNjcl90eXBlID0gPwogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICAgJHJlcyAgID0gJGRiLT5FeGVjdXRlKAogICAgICAgICRxdWVyeSwKICAgICAgICBhcnJheSgKICAgICAgICAgICRyZWNbJ25hbWUnXSwgJHJlY1sncHJvbXB0J10sICRyZWNbJ2Rlc2NyaXB0aW9uJ10sCiAgICAgICAgICAkcmVjWydnaWQnXSwgJHJlY1snY29zdCddLAogICAgICAgICAgJHJlY1snc3Vic2NyX251bSddLCAkcmVjWydzdWJzY3JfdHlwZSddLAogICAgICAgICAgJHBrZ2lkCiAgICAgICAgKQogICAgICApOwogICAgfQogICAgCiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KICBjYXRjaChcRXhjZXB0aW9uICRlKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgfQp9CgovLyBidWlsZCB0aGUgZm9ybQokc21hcnR5LT5hc3NpZ24oJ2dyb3VwbGlzdCcsICRncm91cHMpOwokc21hcnR5LT5hc3NpZ24oJ3BrZ2RhdGEnLCAkcmVjKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCAkdGhpcy0+WFRDcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkcGFpZHBrZycsICRyZXR1cm5pZCwgJHBhcmFtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXNjcmlwdGlvbicsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShUUlVFLCAkaWQsICRyZWNbJ2Rlc2NyaXB0aW9uJ10sICdwa2dfZGVzY3JpcHRpb24nKSk7CiRzdWJzY3JfdHlwZSAgICAgICAgICA9IGFycmF5KCk7CiRzdWJzY3JfdHlwZVsnbm9uZSddICA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiRzdWJzY3JfdHlwZVsnbW9udGgnXSA9ICR0aGlzLT5MYW5nKCdtb250aCcpOwokc3Vic2NyX3R5cGVbJ3llYXInXSAgPSAkdGhpcy0+TGFuZygneWVhcicpOwokc21hcnR5LT5hc3NpZ24oJ3N1YnNjcl90eXBlcycsICRzdWJzY3JfdHlwZSk7CgokdG1wID0gWzEgPT4gMSwgMyA9PiAzLCA2ID0+IDYsIDEyID0+IDEyXTsKJHNtYXJ0eS0+YXNzaWduKCdudW1zJywgJHRtcCk7CgppZigkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHRWNvbW1lcmNlQmFzZScpKQp7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGUnLCBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKSk7Cn0KCiRvYmogPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwppZihpc19vYmplY3QoJG9iaikpCnsKICAkc21hcnR5LT5hc3NpZ24oJ2Nhbl9lZGl0X2Nvc3QnLCAxKTsKfQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2FkZHBhaWRwa2cudHBsJyk7CgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delpaidpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCAhJG1hbXMgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYigncmVncGtncycpOwoKaWYoICFpc3NldCgkcGFyYW1zWydwa2dpZCddKSApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MKICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwokcmVzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgoaW50KSRwYXJhbXNbJ3BrZ2lkJ10pKTsKaWYoICEkcmVzICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reg1template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzCiMgIHdpdGggYSB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnICkgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdyZWcxdGVtcGxhdGUnKTsKCmlmKFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsICdzdWJtaXQnKSkKewogICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcxdGVtcGxhdGUnLCAkcGFyYW1zWydyZWcxX3RlbXBsYXRlY29udGVudCddKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcG9zdHJlZzFfdGVtcGxhdGUnLCAkcGFyYW1zWydwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnQnXSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQplbHNlIGlmKFx4dF9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsICdyZXNldCcpKQp7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3JlZzF0ZW1wbGF0ZScsIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3JlZ2lzdHJhdGlvbjEudHBsJykpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0cmVnMV90ZW1wbGF0ZScsIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9vcmlnX3Bvc3RyZWcxLnRwbCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwp9CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9yZWcxdGVtcGxhdGVfdGFiLnRwbCcpOwokdHBsLT5hc3NpZ24oJ3JlZzFfdGVtcGxhdGVjb250ZW50JywgJHRoaXMtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3JlZzF0ZW1wbGF0ZScpKTsKJHRwbC0+YXNzaWduKCdwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnQnLCAkdGhpcy0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfcG9zdHJlZzFfdGVtcGxhdGUnKSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_anothergroup_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScpOwoKdHJ5IHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0cyddKSApIHsKICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScsQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19hbm90aGVyZ3JvdXBfdGVtcGxhdGUudHBsJykpOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnYW5vdGhlcmdyb3VwX3RlbXBsYXRlJyx0cmltKHh0X3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndGVtcGxhdGUnKSkpOwogICAgfQogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3RlbXBsYXRlX3NhdmVkJykpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.anothergroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVnX2FkZGl0aW9uYWxncm91cHMnKSApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0F0dGVtcHQgdG8gdXNlIHRoZSBhbm90aGVyZ3JvdXAgYWN0aW9uIHdoZW4gdGhlIG9wdGlvbiBpcyBkaXNhYmxlZCcpOwogICAgcmV0dXJuOwp9CgokbWFtcyA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfTUFNUyk7CiR1aWQgPSAkbWFtcy0+TG9nZ2VkSW5JZCgpOwppZiggJHVpZCA8IDEgKSB7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBdHRlbXB0IHRvIHVzZSB0aGUgYW5vdGhlcmdyb3VwIGFjdGlvbiB3aGVuIG5vdCBsb2dnZWQgaW4gdG8gRkVVJyk7CiAgICByZXR1cm47Cn0KJHRtcCA9ICRtYW1zLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdWlkKTsKJG1lbWJlcmdyb3VwcyA9IFx4dF9hcnJheTo6ZXh0cmFjdF9maWVsZCgkdG1wLCdncm91cGlkJyk7CgokaW5saW5lID0gKGludCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsMCk7CiR0bXAgPSB4dF9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdub2lubGluZScpOwppZiggJHRtcCApICRpbmxpbmUgPSAwOwoKJGdyb3VwbmFtZSA9IHRyaW0oeHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZ3JvdXAnKSk7CiRncnBpZHMgPSByZWdfdXRpbHM6OmV4cGFuZF9ncm91cCgkZ3JvdXBuYW1lKTsKaWYoICFjb3VudCgkZ3JwaWRzKSApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ25vIHZhbGlkIGdyb3VwcyBmb3VuZCBpbiBjYWxsIHRvIGFub3RoZXJncm91cCBhY3Rpb24uJyk7CiAgICByZXR1cm47Cn0KJGdycGlkcyA9IGFycmF5X2RpZmYoJGdycGlkcywkbWVtYmVyZ3JvdXBzKTsKaWYoICEkZ3JwaWRzICkgewogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnYW5vdGhlcmdyb3VwOiBubyBuZXcgZ3JvdXAgaWRzIHRvIHJlZ2lzdGVyIHRvJyk7CiAgICByZXR1cm47Cn0KJHVpbmZvID0gJG1hbXMtPkdldFVzZXJJbmZvKCR1aWQsVFJVRSk7CgovLyBub3cgd2UgaGF2ZSBncm91cCBpZHMsIGdldCBhIGxpc3Qgb2YgdGhlIGdyb3VwcyBwcm9wZXJ0aWVzLgokcmVsYXRpb25zID0gYXJyYXkoKTsKZm9yZWFjaCggJGdycGlkcyBhcyAkZ2lkICkgewogICAgJGdyZWxucyA9ICRtYW1zLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZ2lkICk7CiAgICAkcmVsYXRpb25zID0gUlJVdGlsczo6YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCgkcmVsYXRpb25zLCRncmVsbnMpOwogICAgdWFzb3J0KCAkcmVsYXRpb25zLCAneHRfYXJyYXk6OmNvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpOwp9Ci8vIG5vdyB3ZSBtZXJnZSBpbiBwcm9wZXJ0eSBpbmZvCiRkZWZucyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7CmZvcmVhY2goICRyZWxhdGlvbnMgYXMgJiRvbmVwcm9wICkgewogICAgZm9yZWFjaCggJGRlZm5zIGFzICRvbmVkZWZuICkgewogICAgICAgIGlmKCAkb25lZGVmblsnbmFtZSddID09ICRvbmVwcm9wWyduYW1lJ10gKSB7CiAgICAgICAgICAgICRvbmVwcm9wWydwcm9tcHQnXSA9ICRvbmVkZWZuWydwcm9tcHQnXTsKICAgICAgICAgICAgJG9uZXByb3BbJ3R5cGUnXSA9ICRvbmVkZWZuWyd0eXBlJ107CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQoKLy8gZmlsdGVyIG91dCBzb21lIG9mIHRoZSByZWxhdGlvbnMKJHJlbGF0aW9uczIgPSBhcnJheSgpOwpmb3JlYWNoKCAkcmVsYXRpb25zIGFzICRyZWxuICkgewogICAgaWYoICRyZWxuWyd0eXBlJ10gPT0gIDkgKSB7CiAgICAgICAgLy8gZGF0YSBmaWVsZHMgYXJlIGlnbm9yZWQuCiAgICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiggJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMyApIGNvbnRpbnVlOyAvLyBpZ25vcmUgaGlkZGVuIGZpZWxkcy4KICAgICRyZWxhdGlvbnMyW10gPSAkcmVsbjsKfQoKJGdldF91c2VyX3Byb3B2YWwgPSBmdW5jdGlvbigkbmFtZSkgdXNlICgkdWluZm8pCnsKICAgIGlmKCAhaXNzZXQoJHVpbmZvWzFdWydmcHJvcHMnXSkgKSByZXR1cm47CiAgICBmb3JlYWNoKCAkdWluZm9bMV1bJ2Zwcm9wcyddIGFzICRyZWMgKSB7CiAgICAgICAgaWYoICRuYW1lID09ICRyZWNbJ3RpdGxlJ10gKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVjWydkYXRhJ107CiAgICAgICAgfQogICAgfQp9OwoKJHJvd2FycmF5ID0gbnVsbDsKZm9yZWFjaCggJHJlbGF0aW9uczIgYXMgJHJlbG4gKSB7CiAgICAkZGVmbiA9IG51bGw7CiAgICBpZiggaXNzZXQoJHJlbG5bJ21hcHRvJ10pICkgewogICAgICAgICRkZWZuID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbiggJHJlbG5bJ21hcHRvJ10gKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJGRlZm4gPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZuKCAkcmVsblsnbmFtZSddICk7CiAgICB9CgogICAgJGF0dHJpYnMgPSBudWxsOwogICAgaWYoIGlzc2V0KCRkZWZuWydhdHRyaWJzJ10pICkgJGF0dHJpYnMgPSB1bnNlcmlhbGl6ZSgkZGVmblsnYXR0cmlicyddKTsKCiAgICAkb25lcm93ID0gbmV3IFN0ZENsYXNzOwogICAgJG9uZXJvdy0+Y29sb3IgPSAkb25lcm93LT5tYXJrZXIgPSBudWxsOwogICAgaWYoICRkZWZuWydlbmNyeXB0J10gKSB7CiAgICAgICAgJG9uZXJvdy0+Y29sb3IgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VjdXJlX2ZpZWxkX2NvbG9yJywneWVsbG93Jyk7CiAgICAgICAgJG9uZXJvdy0+bWFya2VyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9tYXJrZXInLCdeXicpOwogICAgfQogICAgaWYoICRyZWxuWydyZXF1aXJlZCddID09IDIgKSAkb25lcm93LT5jb2xvciA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsJ2JsdWUnKTsKICAgIGlmKCAkcmVsblsncmVxdWlyZWQnXSA9PSAyICkgJG9uZXJvdy0+bWFya2VyID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJyonKTsKICAgICRuYW1lID0gJHJlbG5bJ25hbWUnXTsKICAgICRvbmVyb3ctPnJlcXVpcmVkID0gJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMjsKICAgICRvbmVyb3ctPm5hbWUgPSAkbmFtZTsKICAgICRvbmVyb3ctPnR5cGUgPSAkZGVmblsndHlwZSddOwogICAgJG9uZXJvdy0+cmVxdWlyZWQgPSAoJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMik7CiAgICAkb25lcm93LT5wcm9tcHQgPSAkcmVsblsncHJvbXB0J107CgogICAgLy8gZ2V0IGluaXRpYWwgdmFsdWUgZnJvbSBGRVUgaWYgcG9zc2libGUKICAgICRvbmVyb3ctPnZhbCA9ICRnZXRfdXNlcl9wcm9wdmFsKCRuYW1lKTsKICAgIGlmKCAkZGVmblsndHlwZSddID09IDEgJiYgaXNzZXQoJGF0dHJpYnNbJ2NoZWNrZWQnXSkgKSAkb25lcm93LT52YWwgPSAkYXR0cmlic1snY2hlY2tlZCddOwoKICAgIHN3aXRjaCggJG9uZXJvdy0+dHlwZSApIHsKICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgIGNhc2UgNTogLy8gbXVsdGlzZWxlY3QKICAgIGNhc2UgNzogLy8gcmFkaW8gYnV0dG9ucwogICAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRtYW1zLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sIDEpKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgNjogLy8gaW1hZ2UKICAgICAgICAkZGVzdF9kaXIgPSAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXS4nLycuJG1hbXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnLCdmZXVzZXJzJykuJy8nOwogICAgICAgICRkZXN0X3VybCA9ICRjb25maWdbJ3VwbG9hZHNfdXJsJ10uJy8nLiRtYW1zLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnZmV1c2VycycpLicvJzsKICAgICAgICAkZmlsZW5hbWUgPSAkZGVzdF9kaXIuJG9uZXJvdy0+dmFsOwogICAgICAgICRmaWxldXJsICA9ICRkZXN0X3VybC4kb25lcm93LT52YWw7CiAgICAgICAgaWYoIGlzX2ZpbGUoJGZpbGVuYW1lKSAmJiBpc19yZWFkYWJsZSgkZmlsZW5hbWUpICkgewogICAgICAgICAgICAkb25lcm93LT5pbWFnZV91cmwgPSAkZmlsZXVybDsKICAgICAgICAgICAgJG9uZXJvdy0+bWltZXR5cGUgPSBceHRfdXRpbHM6OmdldF9taW1lX3R5cGUoJGZpbGVuYW1lKTsKICAgICAgICAgICAgJG9uZXJvdy0+aXNfaW1hZ2UgPSAoIHN0YXJ0c3dpdGgoJG9uZXJvdy0+bWltZXR5cGUsJ2ltYWdlLycpICkgPyBUUlVFIDogRkFMU0U7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIH0KCiAgICAvLyBmaWxsIHRoZSByZWMtPnZhbHVlIHByb3Blcmx5LgogICAgJGtleSA9ICdtcl9jdGxfJy4kcmVsblsnbmFtZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ21yX3N1Ym1pdCddKSAmJiAoaXNzZXQoJHBhcmFtc1ska2V5XSkgfHwgJG9uZXJvdy0+dHlwZSA9PSAkbWFtczo6RklFTERUWVBFX0lNQUdFKSApIHsKICAgICAgICAkdmFsID0gbnVsbDsKCiAgICAgICAgc3dpdGNoKCAkb25lcm93LT50eXBlICkgewogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9NVUxUSVNFTEVDVDoKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRwYXJhbXNbJGtleV0pICkgewogICAgICAgICAgICAgICAgJHZhbCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZ19hcnJheSgkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHZhbCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfREFURToKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfRFJPUERPV046CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX1JBRElPQlVUTlM6CiAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0NIRUNLQk9YOgogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9URVhUOgogICAgICAgICAgICAkdmFsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJGtleSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9FTUFJTDoKICAgICAgICAgICAgJHZhbCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfVEVYVEFSRUE6CiAgICAgICAgICAgICR2YWwgPSBceHRfcGFyYW06OmdldF9odG1sKCRwYXJhbXMsJGtleSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9JTUFHRToKICAgICAgICAgICAgLy8gZ2V0IHRoZSBpbWFnZSBmcm9tICRfRklMRVMKICAgICAgICAgICAgJGZrZXkgPSAkaWQuJGtleTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRfRklMRVNbJGZrZXldKSAmJiAkX0ZJTEVTWyRma2V5XVsnc2l6ZSddID4gMCApIHsKICAgICAgICAgICAgICAgIC8vIGZvdW5kIGEgZmlsZS4uLiBvdmVyd3JpdGUgZXhpc3RpbmcgdmFsdWUgd2l0aCBhIHNwZWNpYWwgdmFsdWUKICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgaGFuZGxlIHRoZSBmaWxlIHVwbG9hZCBzdHVmZiBiZWxvdwogICAgICAgICAgICAgICAgJG9uZXJvdy0+aGF2ZV9maWxlID0gJGZrZXk7CiAgICAgICAgICAgICAgICAkdmFsID0gJF9GSUxFU1skZmtleV1bJ25hbWUnXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIG5vIGZpbGUsIGJ1dCBpZiB0aGVyZSdzIGFscmVhZHkgYSB2YWx1ZS4uLiB3ZSB1c2UgaXQKICAgICAgICAgICAgICAgIGlmKCAkb25lcm93LT52YWwgKSAkdmFsID0gJG9uZXJvdy0+dmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfREFUQToKICAgICAgICAgICAgLy8gZG8gbm90aGluZwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgJG9uZXJvdy0+dmFsID0gJHZhbDsKICAgIH0KICAgICRvbmVyb3ctPnZhbHVlID0gJG9uZXJvdy0+dmFsOyAgLy8gZm9yIGNvbnZlbmllbmNlCiAgICAkb25lcm93LT5mbGRuYW1lID0gJGlkLidtcl9jdGxfJy4kb25lcm93LT5uYW1lOwoKICAgICRyb3dhcnJheVskb25lcm93LT5uYW1lXSA9ICRvbmVyb3c7Cn0KaWYoIGNvdW50KCRyb3dhcnJheSkgPT0gMCApIHsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ2Fub3RoZXJncm91cCBhY3Rpb24gZm91bmQgbm8gZGlzcGxheWFibGUgcHJvcGVydGllcyBmb3IgJy4kbWFtcy0+TG9nZ2VkSW5OYW1lKCkpOwogICAgcmV0dXJuOwp9CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhbm90aGVyZ3JvdXBfdGVtcGxhdGUnKTsKJHBhcm1zID0gYXJyYXkoJ2dyb3VwJz0+JGdyb3VwbmFtZSk7CiR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+WFRDcmVhdGVGb3JtU3RhcnQoJGlkLCdhbm90aGVyZ3JvdXAnLCRyZXR1cm5pZCwkcGFybXMsJGlubGluZSkpOwokdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdHBsLT5hc3NpZ24oJ3Byb3BlcnRpZXMnLCRyb3dhcnJheSk7CiR0cGwtPmFzc2lnbigncHdmbGRsZW4nLCRtYW1zLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcsNTApKTsKJHRwbC0+YXNzaWduKCdncm91cG5hbWUnLCRncm91cG5hbWUpOwokdHBsLT5hc3NpZ24oJ2dyb3VwaWRzJywkZ3JwaWRzKTsKJHRwbC0+YXNzaWduKCdyZXFfY29sb3InLCRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsJ2JsdWUnKSk7CiR0cGwtPmFzc2lnbigncmVxX21hcmtlcicsJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJyonKSk7CgppZiggaXNzZXQoJHBhcmFtc1snbXJfc3VibWl0J10pICkgewogICAgdHJ5IHsKICAgICAgICAvLyB2YWxpZGF0ZSB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkCiAgICAgICAgJHB3MSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtcl9wYXNzd29yZCcpOwogICAgICAgICRwdzIgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbXJfcGFzc3dvcmQyJyk7CiAgICAgICAgaWYoIHRyaW0oJHB3MSkgPT0gJycgfHwgJHB3MSAhPSAkcHcyICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3Bhc3N3b3Jkc2RvbnRtYXRjaCcpKTsKICAgICAgICB9CgogICAgICAgICR1c2VybmFtZSA9ICRtYW1zLT5Mb2dnZWRJbk5hbWUoKTsKICAgICAgICBpZiggISRtYW1zLT5DaGVja1Bhc3N3b3JkKCR1c2VybmFtZSwkcHcxKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbmNvcnJlY3RwYXNzd29yZCcpKTsKICAgICAgICB9CgogICAgICAgIC8vIHZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzCiAgICAgICAgZm9yZWFjaCggJHJvd2FycmF5IGFzICRuYW1lID0+ICRyZWMgKSB7CiAgICAgICAgICAgIC8vIHZhbGlkYXRlIG91ciBwcm9wZXJ0aWVzIChyZXF1aXJlZCwgdW5pcXVlLC4uLikKICAgICAgICAgICAgaWYoICRyZWMtPnJlcXVpcmVkICYmICEkcmVjLT52YWwgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCRuYW1lKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHZhbGlkYXRlIHZhbHVlcwogICAgICAgICAgICBzd2l0Y2goICRyZWMtPnR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9NVUxUSVNFTEVDVDoKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkcmVjLT52YWwpICkgJHJlYy0+dmFsID0gaW1wbG9kZSgnLCcsJHJlYy0+dmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0RST1BET1dOOgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfUkFESU9CVVROUzoKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0NIRUNLQk9YOgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfVEVYVDoKICAgICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0RBVEU6CiAgICAgICAgICAgICAgICAkcmVjLT52YWwgPSBzdHJ0b3RpbWUoJHJlYy0+dmFsKTsgLy8gZGF0ZXMgYXJlIHN0b3JlZCBhcyB0aW1lc3RhbXBzLgogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfRU1BSUw6CiAgICAgICAgICAgICAgICBpZiggJHJlYy0+dmFsICYmICFpc19lbWFpbCgkcmVjLT52YWwpICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZW1haWxpbnZhbGlkJykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICRtYW1zOjpGSUVMRFRZUEVfSU1BR0U6CiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9URVhUQVJFQToKICAgICAgICAgICAgY2FzZSAkbWFtczo6RklFTERUWVBFX0RBVEE6CiAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gaGFuZGxlIGFkZGluZyB0aGUgdXNlciB0byB0aGUgZ3J1b3AKICAgICAgICBmb3JlYWNoKCAkZ3JwaWRzIGFzICRnaWQgKSB7CiAgICAgICAgICAgICRtYW1zLT5Bc3NpZ25Vc2VyVG9Hcm91cCgkdWlkLCRnaWQpOwogICAgICAgIH0KCiAgICAgICAgLy8gaGFuZGxlIHNldHRpbmcgdGhlIHVzZXIgcHJvZXBydGllcwogICAgICAgIGZvcmVhY2goICRyb3dhcnJheSBhcyAkbmFtZSA9PiAkcmVjICkgewogICAgICAgICAgICBzd2l0Y2goICRyZWMtPnR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJG1hbXM6OkZJRUxEVFlQRV9JTUFHRToKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcmVjLT5oYXZlX2ZpbGUpICYmICRyZWMtPmhhdmVfZmlsZSApIHsKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGEgZmlsZSBpbiAkX0ZJTEVTIHRoYXQgd2UgbmVlZCB0byB1cGxvYWQKICAgICAgICAgICAgICAgICAgICBpZiggISRtYW1zLT5pc19hbGxvd2VkX3VwbG9hZCgkcmVjLT52YWwpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtYW1zLT5MYW5nKCdlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbicpKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBnZXQgdGhlIHByb3BlciBsb2NhdGlvbiwgYW5kIG1vdmUgaXQuCiAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRpbmcgdGhlIGRpcmVjdG9yeSBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICAgICAgICAgJGRlc3RuYW1lID0gJG1hbXMtPmdldF91cGxvYWRfZmlsZW5hbWUoJHVpZCwkcmVjLT5uYW1lLCRyZWMtPnZhbCk7CiAgICAgICAgICAgICAgICAgICAgJGRlc3RkaXIgPSAgJG1hbXMtPmdldF91cGxvYWRfZGlybmFtZSgkdWlkKTsKICAgICAgICAgICAgICAgICAgICBAbWtkaXIoJGRlc3RkaXIsMDc3NyxUUlVFKTsKICAgICAgICAgICAgICAgICAgICBAdG91Y2goJGRlc3RkaXIuJy9pbmRleC5odG1sJyk7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc193cml0YWJsZSgkZGVzdGRpcikgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1hbXMtPkxhbmcoJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnKSk7CiAgICAgICAgICAgICAgICAgICAgJGRlc3QgPSAkZGVzdGRpci4nLycuJGRlc3RuYW1lOwogICAgICAgICAgICAgICAgICAgIEBjbXNfbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJHJlYy0+aGF2ZV9maWxlXVsndG1wX25hbWUnXSwgJGRlc3QpOwogICAgICAgICAgICAgICAgICAgICRyZWMtPnZhbCA9ICRkZXN0bmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRtYW1zLT5TZXRVc2VyUHJvcGVydHlGdWxsKCRuYW1lLCRyZWMtPnZhbCwkdWlkKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICRtYW1zLT5TZXRVc2VyUHJvcGVydHlGdWxsKCRuYW1lLCRyZWMtPnZhbCwkdWlkKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBhbmQuLi4gZG9uZS4KICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpbmFsX21lc3NhZ2UnLCR0aGlzLT5MYW5nKCdtc2dfYWRkZWRvdGhlcmdyb3VwJykpOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlcnJvcl9tZXNzYWdlJywkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfQoKJHRwbC0+ZGlzcGxheSgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokbW9kZSA9IE5VTEw7Ci8vaWYoICFpc3NldCggJHBhcmFtc1snZ3JvdXAnXSApICkgewovLyAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93c2VsZWN0cGtnJykgPiAwICkgJG1vZGUgPSAnc2VscGtnJzsKLy99CmlmKGlzc2V0KCRwYXJhbXNbJ21yX2RhdGEnXSkpCnsKICAgICRtb2RlID0gJ3ZlcmlmeSc7Cn0KaWYoaXNzZXQoJHBhcmFtc1snbW9kZSddKSkKewogICAgJG1vZGUgPSAkcGFyYW1zWydtb2RlJ107Cn0KaWYoISRtb2RlKQp7CiAgICAkbW9kZSA9ICdzaWdudXAnOwp9Cgpzd2l0Y2goJG1vZGUpCnsKICAgIC8vY2FzZSAnc2VscGtnJzoKICAgIGNhc2UgJ3NpZ251cCc6CiAgICAgICAgJHRoaXMtPkRvQWN0aW9uKCRtb2RlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAndmVyaWZ5JzoKICAgICAgICBpbmNsdWRlKF9fRElSX18gLiAnL2FjdGlvbi52ZXJpZnkucGhwJyk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSAnbG9zdGVtYWlsJzoKICAgIGNhc2UgJ3NlbmRhbm90aGVyZW1haWwnOgogICAgY2FzZSAnc2VuZG1vcmVtYWlsJzoKICAgICAgICBpbmNsdWRlKF9fRElSX18gLiAnL2FjdGlvbi5sb3N0ZW1haWwucGhwJyk7CiAgICAgICAgLy9fVXNlckRpc3BsYXlMb3N0UmVnRW1haWxGb3JtKCAkdGhpcywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgKTsKICAgIGJyZWFrOwogICAgCiAgICBkZWZhdWx0OgogICAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICcnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbW9kZScpKTsKICAgIGJyZWFrOwp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpICkgZXhpdDsKCnJlcXVpcmVfb25jZShfX0RJUl9fLicvZnVuY3Rpb25zLmFkbWlucGFuZWwucGhwJyk7CgovLyB0aGUgdGFicwoKLy8gY3J1ZGUgaGFjayAoSk06IFdURj8/PykKJHR4dCA9IDw8PEVPVAo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgp0ZXh0YXJlYS5jbXNfdGV4dGFyZWEgewogICB3aWR0aDogMTAlOwogICBoZWlnaHQ6IDFlbTsKfQo8L3N0eWxlPgpFT1Q7Ci8vZWNobyAkdHh0OwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJyApICkgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbnVzZXJzJywkdGhpcy0+TGFuZygndXNlcnMnKSk7Cn0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJyApICkgewogICAgLyplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlbHBrZ3RlbXBsYXRlJywkdGhpcy0+TGFuZygnc2VscGtnX3RlbXBsYXRlJykpOyovCiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3JlZzF0ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdyZWdpc3RyYXRpb24xX3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdyZWcydGVtcGxhdGUnLCAkdGhpcy0+TGFuZygndmVyaWZpY2F0aW9uX3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnZW1haWxjb25maXJtX3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmaW5hbG1lc3NhZ2VfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdmaW5hbG1lc3NhZ2VfdGVtcGxhdGUnKSk7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpKTsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYW5vdGhlcmdyb3VwX3RlbXBsYXRlJywkdGhpcy0+TGFuZygnYW5vdGhlcmdyb3VwX3RlbXBsYXRlJykpOwp9CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncHJlZmVyZW5jZXMnLCAkdGhpcy0+TGFuZygncHJlZmVyZW5jZXMnKSk7CiAgICAvKmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVncGtncycsJHRoaXMtPkxhbmcoJ3JlZ3BrZ3NfdGFiJykpOyovCn0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKLy8gdGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJyApICkgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2FkbWludXNlcnMnLCRwYXJhbXMpOwogICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fdXNlcnN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnICkgKSB7Ci8vICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdzZWxwa2d0ZW1wbGF0ZScsJHBhcmFtcyk7Ci8vICAgIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3NlbHBrZ190ZW1wbGF0ZV90YWIucGhwJyk7Ci8vICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdyZWcxdGVtcGxhdGUnLCRwYXJhbXMpOwogICAgaW5jbHVkZShfX0RJUl9fLicvYWN0aW9uLmFkbWluX3JlZzF0ZW1wbGF0ZV90YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYigncmVnMnRlbXBsYXRlJywkcGFyYW1zKTsKICAgIF9EaXNwbGF5QWRtaW5SZWcyVGVtcGxhdGVUYWIoICR0aGlzLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2VtYWlsY29uZmlybV90ZW1wbGF0ZScsJHBhcmFtcyk7CiAgICBfRGlzcGxheUFkbWluRW1haWxDb25maXJtYXRpb25UZW1wbGF0ZVRhYiggJHRoaXMsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywkcGFyYW1zKTsKICAgIF9EaXNwbGF5QWRtaW5FbWFpbFVzZXJFZGl0ZWRUZW1wbGF0ZVRhYiggJHRoaXMsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignZmluYWxtZXNzYWdlX3RlbXBsYXRlJywkcGFyYW1zKTsKICAgIF9EaXNwbGF5QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZVRhYiggJHRoaXMsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScsJHBhcmFtcyk7CiAgICBfRGlzcGxheUFkbWluU2VuZEFub3RoZXJFbWFpbFRlbXBsYXRlVGFiKCAkdGhpcywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdhbm90aGVyZ3JvdXBfdGVtcGxhdGUnLCRwYXJhbXMpOwogICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYW5vdGhlcmdyb3VwX3RlbXBsYXRlLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZlcmVuY2VzJywkcGFyYW1zKTsKICAgIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3ByZWZzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgovLyAgICBlY2hvICR0aGlzLT5TdGFydFRhYigncmVncGtncycsJHBhcmFtcyk7Ci8vICAgIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3BhaWRyZWdpc3RyYXRpb25fdGFiLnBocCcpOwovLyAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKCgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_edituser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFpc3NldCgkZ0NtcykpCnsKICBleGl0Owp9CmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKSkKewogIHJldHVybjsKfQoKaWYoIWlzc2V0KCRwYXJhbXNbJ3VzZXJfaWQnXSkpCnsKICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgCiAgcmV0dXJuOwp9CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwppZighJG1hbXMpCnsKICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAnJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXVzZXJzbW9kdWxlJykpOwogIAogIHJldHVybjsKfQoKLy8gY2hlY2sgZm9yIHJlcXVpcmVkIHBhcmFtZXRlcnMKaWYoIWlzc2V0KCRwYXJhbXNbJ2dyb3VwX2lkJ10pKQp7CiAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogIAogIHJldHVybjsKfQoKLy8gQ2hlY2sgdG8gZW5zdXJlIGFsbCByZXF1aXJlZCBmaWVsZHMgaGF2ZSBzb21lIGNvbnRlbnQKLy8gYW5kIHZhbGlkYXRlIGVtYWlsIGZpZWxkcwpmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsKQp7CiAgaWYocHJlZ19tYXRjaCgnL15oaWRkZW5fLycsICRrZXkpKQogIHsKICAgICRwcm9wbmFtZSA9IHN1YnN0cigka2V5LCBzdHJsZW4oJ2hpZGRlbl8nKSk7CiAgICBpZigkcHJvcG5hbWUgPT0gJ3Bhc3N3b3JkJyB8fCAkcHJvcG5hbWUgPT0gJ3JlcGVhdHBhc3N3b3JkJykKICAgIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICAKICAgICRhcnIgICAgICA9IGV4cGxvZGUoIjsiLCAkcGFyYW1zWyRrZXldKTsKICAgICRyZXF1aXJlZCA9ICRhcnJbM107CiAgICBpZigkcmVxdWlyZWQgPT0gMikKICAgIHsKICAgICAgaWYoJGFyclsxXSA9PSAnOCcpCiAgICAgIHsKICAgICAgICBpZigKICAgICAgICAgICFpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ01vbnRoJ10pIHx8CiAgICAgICAgICAhaXNzZXQoJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdEYXknXSkgfHwKICAgICAgICAgICFpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ1llYXInXSkKICAgICAgICApCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJHByb3BuYW1lKSk7CiAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlIGlmKCFpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkgfHwgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0gPT0gJycpCiAgICAgIHsKICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCAkcHJvcG5hbWUpKTsKICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogICAgICB9CiAgICB9CiAgICAKICAgIGlmKAogICAgICAkYXJyWzFdID09ICcyJyAmJiBpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkgJiYKICAgICAgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0gIT0gJycKICAgICkKICAgIHsKICAgICAgJHJlc3VsdCA9ICRtYW1zLT5Jc1ZhbGlkRW1haWxBZGRyZXNzKCRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdKTsKICAgICAgaWYoJHJlc3VsdFswXSA9PSBGQUxTRSkKICAgICAgewogICAgICAgICR0aGlzLT5TZXRFcnJvcigkcmVzdWx0WzFdKTsKICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogICAgICB9CiAgICB9CiAgfQp9CgovLyBnZXQgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZAokdXNlcm5hbWUgICAgICAgPSB0cmltKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnaW5wdXRfdXNlcm5hbWUnKSk7CiRwYXNzd29yZCAgICAgICA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9wYXNzd29yZCcpKTsKJHJlcGVhdHBhc3N3b3JkID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2lucHV0X3JlcGVhdHBhc3N3b3JkJykpOwoKLy8gY2hlY2sgaWYgdGhlIHVzZXJuYW1lIGlzIHZhbGlkIG9yIHRha2VuCmlmKCR1c2VybmFtZSA9PSAnJykKewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfZW1wdHl1c2VybmFtZScpKTsKICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogIAogIHJldHVybjsKfQppZighJG1hbXMtPklzVmFsaWRVc2VybmFtZSgkdXNlcm5hbWUpKQp7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXNlcm5hbWUnKSk7CiAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAKICByZXR1cm47Cn0KCiRkZXRhaWxzID0gJHRoaXMtPkdldFRlbXBVc2VyRGV0YWlscygoaW50KSRwYXJhbXNbJ3VzZXJfaWQnXSk7CmlmKCFpc19hcnJheSgkZGV0YWlscykpCnsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9CiR1aWQgPSAkZGV0YWlsc1snaWQnXTsKaWYoJGRldGFpbHNbJ3VzZXJuYW1lJ10gIT0gJHVzZXJuYW1lKQp7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl91c2VybmFtZXRha2VuJykpOwogICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2VkaXR0ZW1wdXNlcicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KCi8vIGNoZWNrIGlmIHRoZSBwYXNzd29yZHMgbWF0Y2ggb3IgaWYgdGhleSdyZSB2YWxpZAovLyBpZiB0aGV5J3JlIHNldCBhdGFsbAppZigkcGFzc3dvcmQgIT0gJycpCnsKICBpZigkcGFzc3dvcmQgIT0gJHJlcGVhdHBhc3N3b3JkKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGFzc3dvcmRzZG9udG1hdGNoJykpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KICBpZighJG1hbXMtPklzVmFsaWRQYXNzd29yZCgkcGFzc3dvcmQpKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhc3N3b3JkJykpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KfQoKLy8gZmluZCBhbiBlbWFpbCBmaWVsZC4uLiBzb21ldGhpbmcgdGhhdCdzIG5hbWUgaGFzIGVtYWlsIGluIGl0Ci8vIG9yIGlzIG9mIHR5cGUgMgokZW1haWxfZmllbGQgPSAnaW5wdXRfdXNlcm5hbWUnOwppZighJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpCnsKICBmb3JlYWNoKCRwYXJhbXMgYXMgJGtleSA9PiAkdmFsKQogIHsKICAgIGlmKHByZWdfbWF0Y2goJy9eaGlkZGVuXy8nLCAka2V5KSkKICAgIHsKICAgICAgJHByb3BuYW1lID0gc3Vic3RyKCRrZXksIHN0cmxlbignaGlkZGVuXycpKTsKICAgICAgJGFyciAgICAgID0gZXhwbG9kZSgiOyIsICRwYXJhbXNbJGtleV0pOwogICAgICAKICAgICAgaWYocHJlZ19tYXRjaCgnL2VtYWlsL2knLCAkYXJyWzBdKSB8fCAkYXJyWzFdID09IDIpCiAgICAgIHsKICAgICAgICAvLyBmb3VuZCBzb21ldGhpbmcgcmVzZW1ibGluZyBhbiBlbWFpbCBmaWVsZAogICAgICAgICRlbWFpbF9maWVsZCA9ICdpbnB1dF8nIC4gJHByb3BuYW1lOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfQogIGlmKCRlbWFpbF9maWVsZCA9PSAnJykKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vZW1haWxhZGRyZXNzJykpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgIAogICAgcmV0dXJuOwogIH0KfQoKZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCkKewogIGlmKHByZWdfbWF0Y2goJy9eaGlkZGVuXy8nLCAka2V5KSkKICB7CiAgICAkcHJvcG5hbWUgPSBzdWJzdHIoJGtleSwgc3RybGVuKCdoaWRkZW5fJykpOwogICAgJGFyciAgICAgID0gZXhwbG9kZSgiOyIsICRwYXJhbXNbJGtleV0pOwogICAgaWYoCiAgICAgICRhcnJbMV0gPT0gNSAmJiBpc3NldCgkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSkgJiYKICAgICAgaXNfYXJyYXkoJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0pCiAgICApCiAgICB7CiAgICAgIC8vIGZvciBhbnkgdHlwZSA1IHByb3BlcnRpZXMsIHdlIGNoYW5nZSB0aGUgYXJyYXkgcmVzdWx0IGludG8gYW4gZW5jb2RlZCBzdHJpbmcKICAgICAgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0gPSBpbXBsb2RlKCcsJywgJHBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZV0pOwogICAgfQogICAgZWxzZSBpZigkYXJyWzFdID09IDgpCiAgICB7CiAgICAgIC8vIGZvciBhbnkgZGF0ZSBwcm9wZXJ0aWVzLCB3ZSBnb3R0YSBhc3NlbWJsZSB0aGVtLgogICAgICAkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSA9IG1rdGltZSgKICAgICAgICAwLCAwLCAwLAogICAgICAgICRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnTW9udGgnXSwKICAgICAgICAkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ0RheSddLAogICAgICAgICRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnWWVhciddCiAgICAgICk7CiAgICB9CiAgfQp9CgovLyBoYXZlIHRvIGFkZCB0aGUgcmVjb3JkIHRvIHRoZSBkYXRhYmFzZSBzbyB0aGF0IHdlIGtub3cgd2hvIHRoaXMgZ3V5IGlzCi8vIHdoZW4gaGUgY29tZXMgYmFjawokcmV0dXJuID0gJHRoaXMtPkVkaXRUZW1wVXNlcigkcGFyYW1zWyd1c2VyX2lkJ10sICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZGV0YWlsc1snY29kZSddKTsKaWYoJHJldHVyblswXSA9PSBGQUxTRSkKewogICR0aGlzLT5TZXRFcnJvcigkcmV0dXJuWzFdKTsKICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsICRwYXJhbXMpOwogIAogIHJldHVybjsKfQoKLy8gcmVtb3ZlIGFueSBleGlzdGluZyBwcm9wZXJ0aWVzCiR0aGlzLT5EZWxldGVUZW1wVXNlclByb3BlcnRpZXMoJHBhcmFtc1sndXNlcl9pZCddKTsKCi8vIGFuZCBhZGQgaGlzIHByb3BlcnRpZXMgdG9vCi8vIGJ1dCBmaXJzdCB3ZSByZW1vdmUgdGhlIG9uZXMgd2UndmUgaGFuZGxlZCBhbHJlYWR5CiR0bXB1aWQgPSAkcGFyYW1zWyd1c2VyX2lkJ107Ci8qCnVuc2V0KCRwYXJhbXNbJ2lucHV0X3VzZXJuYW1lJ10gKTsKKi8KdW5zZXQoJHBhcmFtc1snaGlkZGVuX3VzZXJuYW1lJ10pOwp1bnNldCgkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddKTsKdW5zZXQoJHBhcmFtc1snaGlkZGVuX3Bhc3N3b3JkJ10pOwp1bnNldCgkcGFyYW1zWydpbnB1dF9yZXBlYXRwYXNzd29yZCddKTsKdW5zZXQoJHBhcmFtc1snaGlkZGVuX3JlcGVhdHBhc3N3b3JkJ10pOwoKZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCkKewogIGlmKHByZWdfbWF0Y2goJy9eaGlkZGVuXy8nLCAka2V5KSkKICB7CiAgICAkcHJvcG5hbWUgPSBzdWJzdHIoJGtleSwgc3RybGVuKCdoaWRkZW5fJykpOwogICAgaWYoIWlzc2V0KCRwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdKSkKICAgIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICAkcmV0dXJuID0gJHRoaXMtPkFkZFRlbXBVc2VyUHJvcGVydHkoJHRtcHVpZCwgJHByb3BuYW1lLCAkcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSk7CiAgICBpZigkcmV0dXJuWzBdID09IEZBTFNFKQogICAgewogICAgICAvLyBub3cgd2UgaGF2ZSBhbiBpc3N1ZSB0byBmaWd1cmUgb3V0CiAgICAgICR0aGlzLT5TZXRFcnJvcigkcmV0dXJuWzFdKTsKICAgICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnZWRpdHRlbXB1c2VyJywgJHJldHVybmlkLCAkcGFyYW1zKTsKICAgICAgCiAgICAgIHJldHVybjsKICAgIH0KICB9Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2FkanVzdG1lbnRlbWFpbCddKSAmJiAkcGFyYW1zWydpbnB1dF9hZGp1c3RtZW50ZW1haWwnXSA9PSAxKQp7CiAgLy8gb2theSwgd2UncmUgbm93IHJlYWR5IHRvIHNlbmQgdGhlIGVtYWlsLCB5YWhvbywgeWFob28sIHlhaG9vCiAgCiAgLy8gbm93IHdlIGhhdmUgdG8gZGVjaWRlIHdoYXQgZ29lcyBpbiBpdC4KICAkY21zbWFpbGVyID0gbmV3IFxjbXNfbWFpbGVyOwogICRjbXNtYWlsZXItPkFkZEFkZHJlc3MoJHBhcmFtc1skZW1haWxfZmllbGRdKTsKICAkc21hcnR5LT5hc3NpZ24oJ25hbWUnLCAkdXNlcm5hbWUpOwogIGlmKCRwYXNzd29yZCAhPSAnJykKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Bhc3N3b3JkJywgJHBhc3N3b3JkKTsKICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdjb2RlJywgJGRldGFpbHNbJ2NvZGUnXSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdzaXRlbmFtZScsICRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10pOwogICRwYXJtcyA9IGFycmF5KAogICAgJ2lucHV0X3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsCiAgICAnaW5wdXRfZ3JvdXBfaWQnID0+ICRwYXJhbXNbJ2dyb3VwX2lkJ10sCiAgICAnaW5wdXRfY29kZScgICAgID0+ICRkZXRhaWxzWydjb2RlJ10KICApOwogICRwYXJtcyA9IFsnbXJfZGF0YScgPT4gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHBhcm1zKSldOwogIAogICR2ZXJpZnlwYWdlID0gcmVnX3V0aWxzOjpnZXRfdmVyaWZ5cGFnZSgpOwogICRjb2RlICAgICAgID0gJGRldGFpbHNbJ2NvZGUnXTsKICAkcHJldHR5dXJsICA9ICJtYW1zL2NvbmZpcm0vJHZlcmlmeXBhZ2UveyRwYXJtc1snbXJfZGF0YSddfSI7CiAgJHVybCAgICAgICAgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsICd2ZXJpZnknLCAkdmVyaWZ5cGFnZSwgW10sIEZBTFNFLCBGQUxTRSwgJHByZXR0eXVybCk7CiAgJHNtYXJ0eS0+YXNzaWduKCd1cmwnLCAkdXJsKTsKICAKICAkaHRtbGJvZHkgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZScpOwogICRjbXNtYWlsZXItPklzSFRNTChUUlVFKTsgIC8vIHdlJ3JlIHNlbmRpbmcgYW4gaHRtbCBtYWlsCiAgJGNtc21haWxlci0+U2V0Qm9keSgkaHRtbGJvZHkpOwogICRjbXNtYWlsZXItPlNldFN1YmplY3QoCiAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19lbWFpbHVzZXJlZGl0ZWRfc3ViamVjdCcsICR0aGlzLT5MYW5nKCdyZWdpc3RyYXRpb25faW5mb19lZGl0ZWQnKSkKICApOwogICRjbXNtYWlsZXItPlNlbmQoKTsKICAKICAvKgogIC8vIHdlJ3JlIG5vdCByZWRpcmVjdGluZyBhbnl3aGVyZSB3ZSBuZWVkIHRvIGRpc3BsYXkgc29tZSBuaWNlIG1lc3NhZ2UKICAvLyBhYm91dCB3ZSBqdXN0IHNwYW1tZWQgeW91ciBpbmJveCwgZXRjLCBldGMuCiAgJHNtYXJ0eS0+YXNzaWduKCd1c2VybmFtZScsJHVzZXJuYW1lKTsKICAkc21hcnR5LT5hc3NpZ24oJ2VtYWlsJywgJHBhcmFtc1skZW1haWxfZmllbGRdICk7CiAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdtYW1zcmVnX3Bvc3RyZWcxX3RlbXBsYXRlJyk7CiAgKi8KfQoKJHB1c2hsaXZlID0gXHh0X3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCAncHVzaGxpdmUnKTsKaWYoJHB1c2hsaXZlKQp7CiAgJHRoaXMtPnJlZGlyZWN0KCRpZCwgJ3B1c2h1c2VybGl2ZScsICRyZXR1cm5pZCwgWyd1c2VyX2lkJyA9PiAkcGFyYW1zWyd1c2VyX2lkJ11dKTsKICAKICByZXR1cm47Cn0KCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCd1c2VyX21vZGlmaWVkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdhZG1pbnVzZXJzJyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edittempuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJyApICkgcmV0dXJuOwoKaWYoICFpc3NldCggJHBhcmFtc1sndXNlcl9pZCddICkgKSB7CiAgICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogICAgLy8gYnV0IGF0IGxlYXN0IHRoZSBhZG1pbiB3aWxsIGJlIGFibGUgdG8gZmlndXJlIGl0IG91dAogICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgIHJldHVybjsKfQoKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKaWYoICEkbWFtcyApIHsKICAgIC8vIHRoaXMgaXMgdWdseSBmb3IgdGhlIHVzZXIgdG8gc2VlCiAgICAvLyBidXQgYXQgbGVhc3QgdGhlIGFkbWluIHdpbGwgYmUgYWJsZSB0byBmaWd1cmUgaXQgb3V0CiAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9mZXVzZXJzbW9kdWxlJykpOwogICAgcmV0dXJuOwp9CgokdWlkID0gJHBhcmFtc1sndXNlcl9pZCddOwokdXNlcmRldGFpbHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJEZXRhaWxzKCAkdWlkICk7CmlmKCAhJHVzZXJkZXRhaWxzICkgewogICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykgKTsKICAgcmV0dXJuOwp9CgovLyBnZXQgdGhlIHVzZXIncyBncm91cChzKS4KJHNxbCA9ICdTRUxFQ1QgRElTVElOQ1QgZ2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnX2dycHMgV0hFUkUgdXNlciA9ID8nOwokZ3JwX2lkcyA9ICRkYi0+R2V0Q29sKCRzcWwsYXJyYXkoJHVpZCkpOwokYWxsX2dyb3VwcyA9ICRtYW1zLT5HZXRHcm91cExpc3RGdWxsKCk7CgoKJHByb3BlcnRpZXMgPSBhcnJheSgpOwp7CiAgJHRtcCA9IGFycmF5KCk7CiAgZm9yZWFjaCggJGdycF9pZHMgYXMgJGdpZCApIHsKICAgICRncmVsbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdpZCApOwogICAgJHRtcCA9IFJSVXRpbHM6OmFycmF5X21lcmdlX2J5X25hbWVfcmVxdWlyZWQoJHRtcCwkZ3JlbG5zKTsKICAgIHVhc29ydCggJHRtcCwgJ3h0X2FycmF5Ojpjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKTsKICB9CiAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgJHByb3BlcnRpZXNbJG9uZVsnbmFtZSddXSA9ICRvbmU7CiAgfQp9CgovLyBnZXQgdGhlIHVzZXJzJyBwcm9wZXJ0aWVzCiRwcm9wcyA9IGFycmF5KCk7CnsKICAkdF9wcm9wcyA9ICR0aGlzLT5HZXRUZW1wVXNlclByb3BlcnRpZXMoICR1aWQgKTsKICBpZiggISR0X3Byb3BzICkgewogICAgICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogICAgICAvLyBidXQgYXQgbGVhc3QgdGhlIGFkbWluIHdpbGwgYmUgYWJsZSB0byBmaWd1cmUgaXQgb3V0CiAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Byb3BlcnRpZXMnKSk7CiAgICAgIHJldHVybjsKICB9CgogIC8vIGEgbGl0dGxlIHJlLXNvcnRpbmcKICBmb3JlYWNoKCAkdF9wcm9wcyBhcyAkcHJvcCApIHsKICAgICAgJHByb3BzWyRwcm9wWyd0aXRsZSddXSA9ICRwcm9wOwogIH0KfQoKLy8gaGVyZSB3ZSdsbCBkaXNwbGF5IGEgZm9ybSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhlIHJlZ2lzdHJhdGlvbiBmb3JtIGluCi8vIGV2ZXJ5IHdheSwKaWYoIGlzc2V0KCAkcGFyYW1zWydlcnJvciddICkgKSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHBhcmFtc1snZXJyb3InXSk7CmlmKCBpc3NldCggJHBhcmFtc1snbWVzc2FnZSddICkgKSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCAkcGFyYW1zWydtZXNzYWdlJ10pOwoKJHJvd2FycmF5ID0gYXJyYXkoKTsKCi8vIG1ha2Ugc3VyZSB1c2VybmFtZSBpcyBpbiB0aGVyZQokb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPmNvbG9yID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpOwokb25lcm93LT5yZXF1aXJlZCA9IDE7CiR2YWwgPSAkdXNlcmRldGFpbHNbJ3VzZXJuYW1lJ107CiRvbmVyb3ctPmhpZGRlbiA9IE1BTVNVdGlsczo6bXlDcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAnaGlkZGVuX3VzZXJuYW1lJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsb2RlKCI7IixhcnJheSgndXNlcm5hbWUnLDAsMzAsMikpKTsKJG9uZXJvdy0+cHJvbXB0ID0gJHRoaXMtPkxhbmcoJ3VzZXJuYW1lJyk7CiRvbmVyb3ctPmNvbnRyb2wgPSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW5wdXRfdXNlcm5hbWUnLCAkdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiRyb3dhcnJheVtdID0gJG9uZXJvdzsKCi8vIGFuZCBwYXNzd29yZAokb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPmNvbG9yID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpOwokb25lcm93LT5leHRyYXRleHQgPSAkdGhpcy0+TGFuZygndHh0X2NoYW5nZXBhc3N3b3JkJyk7CiRvbmVyb3ctPnJlcXVpcmVkID0gMTsKJHZhbCA9ICcnOwokb25lcm93LT5oaWRkZW4gPSBNQU1TVXRpbHM6Om15Q3JlYXRlSW5wdXRIaWRkZW4oICRpZCwgJ2hpZGRlbl9wYXNzd29yZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbG9kZSgiOyIsYXJyYXkoJ3Bhc3N3b3JkJywwLDMwLDIpKSk7CiRvbmVyb3ctPnByb21wdCA9ICR0aGlzLT5MYW5nKCdwYXNzd29yZCcpOwokb25lcm93LT5jb250cm9sID0kdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgkaWQsICdpbnB1dF9wYXNzd29yZCcsICR2YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJykpOwokcm93YXJyYXlbXSA9ICRvbmVyb3c7CgovLyBhbmQgbWFrZSBoaW0gcmVwZWF0IHRoZSBwYXNzd29yZAokb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPmNvbG9yID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpOwokb25lcm93LT5yZXF1aXJlZCA9IDE7CiR2YWwgPSAnJzsKJG9uZXJvdy0+aGlkZGVuID0gTUFNU1V0aWxzOjpteUNyZWF0ZUlucHV0SGlkZGVuKCAkaWQsICdoaWRkZW5fcmVwZWF0cGFzc3dvcmQnLAoJCQkJICAgICAgIGltcGxvZGUoIjsiLGFycmF5KCdyZXBlYXRwYXNzd29yZCcsMCwzMCwyKSkpOwokb25lcm93LT5wcm9tcHQgPSAkdGhpcy0+TGFuZygncmVwZWF0cGFzc3dvcmQnKTsKJG9uZXJvdy0+Y29udHJvbCA9JHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAnaW5wdXRfcmVwZWF0cGFzc3dvcmQnLCAkdmFsLAoJCQkJCSAgICAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCgkJCQkJICAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJykpOwokcm93YXJyYXlbXSA9ICRvbmVyb3c7CgovLyBhbiBvcHRpb24gdG8gc2VuZCBhbm90aGVyIGNvbmZpcm1hdGlvbiBtZXNzYWdlCi8vIGJ1dCBhIGRpZmZlcmVudCBvbmUgZnJvbSB0aGUgbm9ybWFsCiRvbmVyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKJG9uZXJvdy0+Y29sb3IgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCdibHVlJyk7CiRvbmVyb3ctPm1hcmtlciA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkID0gMTsKJG9uZXJvdy0+cHJvbXB0ID0gJHRoaXMtPkxhbmcoJ3NlbmRfYWRqdXN0bWVudGVtYWlsJyk7CiRvbmVyb3ctPmV4dHJhdGV4dCA9ICR0aGlzLT5MYW5nKCd0eHRfYWRqdXN0bWVudGVtYWlsJyk7CiRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpbnB1dF9hZGp1c3RtZW50ZW1haWwnLCAxLCAxKTsKJHJvd2FycmF5W10gPSAkb25lcm93OwoKZm9yZWFjaCggJHByb3BlcnRpZXMgYXMgJHJlbG4gKSB7CiAgLy8gZG9uJ3QgcHJvY2VzcyBoaWRkZW4gZmllbGRzIGhlcmUKICBpZiggJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMyApIGNvbnRpbnVlOwoKICAvLyBnZXQgdGhlIHByb3BlcnR5IGRlZmluaXRpb24KICAkZGVmbiA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm4oICRyZWxuWyduYW1lJ10gKTsKCiAgaWYoICRkZWZuWyd0eXBlJ10gPT0gNiApIHsKICAgICAgLy8gaW1hZ2VzIGFyZSBpZ25vcmVkIHRvbwogICAgICBjb250aW51ZTsKICB9CgogICRvbmVyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCiAgJGNvbG9yID0gJyc7CiAgaWYoICRyZWxuWydyZXF1aXJlZCddID09IDIgKSAkY29sb3IgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCdibHVlJyk7CiAgJG1hcmtlciA9ICcnOwogIGlmKCAkcmVsblsncmVxdWlyZWQnXSA9PSAyICkgJG1hcmtlciA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCcqJyk7CiAgJG9uZXJvdy0+cmVxdWlyZWQgPSAoJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMik7CiAgJG9uZXJvdy0+Y29sb3IgICAgPSAkY29sb3I7CiAgJG9uZXJvdy0+bWFya2VyICAgPSAkbWFya2VyOwogICRvbmVyb3ctPmhpZGRlbiA9IE1BTVNVdGlsczo6bXlDcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAnaGlkZGVuXycuJHJlbG5bJ25hbWUnXSwKCQkJCQkgaW1wbG9kZSgiOyIsYXJyYXkoJHJlbG5bJ25hbWUnXSwkZGVmblsndHlwZSddLAoJCQkJCQkJICAgJGRlZm5bJ2xlbmd0aCddLCRyZWxuWydyZXF1aXJlZCddKSkpOwoKICAkdmFsID0gaXNzZXQoJHByb3BzWyRyZWxuWyduYW1lJ11dWydkYXRhJ10pID8gJHByb3BzWyRyZWxuWyduYW1lJ11dWydkYXRhJ10gOiAnJzsKICAkb25lcm93LT5wcm9tcHQgPSAkZGVmblsncHJvbXB0J107CiAgJG9uZXJvdy0+bGFiZWxmb3IgPSAkaWQuJGRlZm5bJ25hbWUnXTsKICBzd2l0Y2goICRkZWZuWyd0eXBlJ10gKSB7CiAgICBjYXNlIDA6IC8vIHRleHQKICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2lucHV0XycuJHJlbG5bJ25hbWUnXSwKCQkJCQkJICR2YWwsICRkZWZuWydsZW5ndGgnXSwgJGRlZm5bJ21heGxlbmd0aCddICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMTogLy8gY2hlY2tib3gKICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF8nLiRyZWxuWyduYW1lJ10sIDEsICR2YWwgKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAyOiAvLyBlbWFpbAogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnaW5wdXRfJy4kcmVsblsnbmFtZSddLAoJCQkJCQkgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAoJGRlZm5bJ21heGxlbmd0aCddKSApOwogICAgICBicmVhazsKCiAgICBjYXNlIDM6IC8vIHRleHRhcmVhCiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJHZhbCwgJ2lucHV0XycuJGRlZm5bJ25hbWUnXSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwKCQkJCQkJICAgICdpbnB1dF8nLiRkZWZuWyduYW1lJ10sCgkJCQkJCSAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKCQkJCQkJICAgIC0xLAoJCQkJCQkgICAgJHZhbCk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgNTogLy8gbXVsdGlzZWxlY3QKICAgICAgaWYoICEkdmFsICkgJHZhbCA9IGFycmF5KCk7CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwKCQkJCQkJICAgICAgJ2lucHV0XycuJGRlZm5bJ25hbWUnXS4nW10nLAoJCQkJCQkgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKCQkJCQkJICAgICAgJHZhbCk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgNjogLy8gaW1hZ2UKICAgICAgLy8gc2tpcHBlZCBpbnRlbnRpb25hbGx5CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgNzogLy8gcmFkaW9idXR0b25zCiAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2lucHV0XycuJGRlZm5bJ25hbWUnXSwKCQkJCQkJICAgICAgJG1hbXMtPkdldFNlbGVjdE9wdGlvbnMoJGRlZm5bJ25hbWUnXSwgMSksCgkJCQkJCSAgICAgICR2YWwsICcnLCAnPGJyLz4nKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSA4OiAvLyBkYXRlCiAgICAgIHsKICAgICAgICAgICRhdHRyaWJzID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CiAgICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICAgJHBhcm1zWydwcmVmaXgnXSA9ICRpZC4naW5wdXRfJy4kZGVmblsnbmFtZSddOwogICAgICAgICAgaWYoICR2YWwgKSAkcGFybXNbJ3RpbWUnXSA9ICR2YWw7CiAgICAgICAgICAkcGFybXNbJ3N0YXJ0X3llYXInXSA9IChpc3NldCgkYXR0cmlic1snc3RhcnR5ZWFyJ10pKT8kYXR0cmlic1snc3RhcnR5ZWFyJ106Ii01IjsKICAgICAgICAgICRwYXJtc1snZW5kX3llYXInXSA9IChpc3NldCgkYXR0cmlic1snZW5keWVhciddKSk/JGF0dHJpYnNbJ2VuZHllYXInXToiKzEwIjsKICAgICAgICAgICRzdHIgPSAne2h0bWxfc2VsZWN0X2RhdGUgJzsKICAgICAgICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5PT4kdmFsdWUgKSB7CiAgICAgICAgICAgICAgJHN0ci49JGtleS4nPSInLiR2YWx1ZS4nIiAnOwogICAgICAgICAgfQogICAgICAgICAgJHN0ciAuPSAnfSc7CiAgICAgICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzdHIpOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgfQoKICAkcm93YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JwX2lkcycsJGdycF9pZHMpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsbGdyb3VwcycsJGFsbF9ncm91cHMpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdkb19lZGl0dXNlcicsICRyZXR1cm5pZCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywkdGhpcy0+TGFuZygnZWRpdHVzZXInKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3VzZXJfaWQnLCAkdXNlcmRldGFpbHNbJ2lkJ10gKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuMicsICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdncm91cF9pZCcsICR1c2VyZGV0YWlsc1snZ3JvdXBfaWQnXSApKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb250cm9scycsICRyb3dhcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY29udHJvbGNvdW50JywgY291bnQoJHJvd2FycmF5KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dXNlci50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.lostemail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwppZiggISRtYW1zICkgcmV0dXJuOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnbWFtc3JlZ19zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbXJfc3VibWl0J10pICkgewogICAgdHJ5IHsKICAgICAgICAkdXNlcm5hbWUgPSB0cmltKFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtcl91c2VybmFtZScpKTsKICAgICAgICBpZiggISR1c2VybmFtZSApICR1c2VybmFtZSA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2lucHV0X3VzZXJuYW1lJykpOyAvLyBiYwogICAgICAgIGlmKCAhJHVzZXJuYW1lICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CgogICAgICAgICR0ZW1wdXNlcmlkID0gJHRoaXMtPkdldFRlbXBVc2VySUQoICR1c2VybmFtZSApOwogICAgICAgIGlmKCAhJHRlbXB1c2VyaWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKCiAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJEZXRhaWxzKCR0ZW1wdXNlcmlkKTsKICAgICAgICBpZiggISRkZXRhaWxzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CgogICAgICAgICRlbWFpbCA9IG51bGw7CiAgICAgICAgaWYoICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICYmIGlzX2VtYWlsKCR1c2VybmFtZSkgKSB7CiAgICAgICAgICAgICRlbWFpbCA9ICR1c2VybmFtZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGdvdHRhIGZpbmQgYW4gZW1haWwgYWRkcmVzcyBwcm9wZXJ0eSBmb3IgdGhpcyB1c2VyLgogICAgICAgICAgICAkdGVtcHVzZXJwcm9wcyA9ICR0aGlzLT5HZXRUZW1wVXNlclByb3BlcnRpZXMoICR0ZW1wdXNlcmlkICk7CiAgICAgICAgICAgIGlmKCAkdGVtcHVzZXJwcm9wcyA9PSBmYWxzZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfbm9wcm9wZXJ0aWVzJykpOwoKICAgICAgICAgICAgJHJlbGF0aW9ucyA9ICRtYW1zLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZGV0YWlsc1snZ3JvdXBfaWQnXSApOwogICAgICAgICAgICBpZiggJHJlbGF0aW9uc1swXSA9PSBmYWxzZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmVsYXRpb25zWzFdKTsKCiAgICAgICAgICAgICRwcm9wcyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgIGlmKCAkcHJvcHMgPT0gZmFsc2UgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKSk7CgogICAgICAgICAgICAvLyBub3cgd2UgZmluZCBhbiBlbWFpbCBhZGRyZXNzIHByb3BlcnR5CiAgICAgICAgICAgICRmb3VuZCA9IG51bGw7CiAgICAgICAgICAgIGZvcmVhY2goICRyZWxhdGlvbnMgYXMgJHJlbG4gKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRwcm9wWyd0eXBlJ10gPT0gMiAmJiAkcmVsbnNbJ25hbWUnXSA9PSAkcHJvcFsnbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCBhbiBlbWFpbCBwcm9wZXJ0eQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdGVtcHVzZXJwcm9wcyBhcyAkdGVtcHByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlbG5bJ25hbWUnXSA9PSAkdGVtcHByb3BbJ3RpdGxlJ10gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kID0gJHRlbXBwcm9wWydkYXRhJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoICRmb3VuZCApIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICRmb3VuZCApIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkZm91bmQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX25vZW1haWxhZGRyZXNzJykpOwogICAgICAgICAgICAkZW1haWwgPSAkZm91bmQ7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+X1NlbmRVc2VyQ29uZmlybWF0aW9uRW1haWwoICRpZCwkcmV0dXJuaWQsJGVtYWlsLCAkdXNlcm5hbWUsICRkZXRhaWxzWydjb2RlJ10gKTsKCiAgICAgICAgLy8gbm93IHdlJ3JlIGdvbm5hIGRpc3BsYXkgYSBtZXNzYWdlLgogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpOwogICAgICAgICR0cGwtPmFzc2lnbignc2l0ZW5hbWUnLCRjb25maWdbJ3Jvb3RfdXJsJ10pOwogICAgICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlbWFpbCcsJGVtYWlsKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlcnJvcicsMSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIC8vIHByb2Nlc3MgdGhlIGZvcm0uCn0KCi8vIGJ1aWxkIG91dHB1dAppZiggaXNzZXQoICRwYXJhbXNbJ2Vycm9yJ10gKSApICR0cGwtPmFzc2lnbignZXJyb3InLCAkcGFyYW1zWydlcnJvciddKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydtZXNzYWdlJ10gKSApICR0cGwtPmFzc2lnbignbWVzc2FnZScsICRwYXJhbXNbJ21lc3NhZ2UnXSk7CgokaW5saW5lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsdHJ1ZSk7CmlmKCBpc3NldCgkcGFyYW1zWydub2lubGluZSddKSApICRpbmxpbmUgPSBmYWxzZTsKCiR0cGwtPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAnbG9zdGVtYWlsJywgJHJldHVybmlkLCAncG9zdCcsICcnLCAkaW5saW5lKSk7CiR0cGwtPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kICgpKTsKJHRwbC0+YXNzaWduKCdwcm9tcHQnLCR0aGlzLT5MYW5nKCd1c2VybmFtZScpKTsKaWYoICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpICkgJHRwbC0+YXNzaWduKCdwcm9tcHQnLCR0aGlzLT5MYW5nKCdlbWFpbCcpKTsKJHRwbC0+YXNzaWduKCdtYXhfdXNlcm5hbWVsZW5ndGgnLCRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiR0cGwtPmFzc2lnbiAoJ2lucHV0X3VzZXJuYW1lJywKICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lucHV0X3VzZXJuYW1lJywgJycsIDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpKSk7CiR0cGwtPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdtcl9zdWJtaXQnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHRwbC0+ZGlzcGxheSgpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.post_createuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokcGFyYW1zID0gcmVnX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcyk7CgppZiggaXNzZXQoJHBhcmFtc1sndXNlcm5hbWUnXSkgKSAkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkcGFyYW1zWyd1c2VybmFtZSddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2VtYWlsJ10pICkgJHNtYXJ0eS0+YXNzaWduKCdlbWFpbCcsJHBhcmFtc1snZW1haWwnXSk7CiRzbWFydHktPmFzc2lnbignaXNjcmVhdGVkJywxKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbWFtc3JlZ19maW5hbG1lc3NhZ2VfdGVtcGxhdGUnKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.post_registeruser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX3Bvc3RyZWcxX3RlbXBsYXRlJyk7CmlmKCBpc3NldCgkcGFyYW1zWydtcl91c2VybmFtZSddKSApICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCRwYXJhbXNbJ21yX3VzZXJuYW1lJ10pOwppZiggaXNzZXQoJHBhcmFtc1snbXJfZW1haWwnXSkgKSAkdHBsLT5hc3NpZ24oJ2VtYWlsJywkcGFyYW1zWydtcl9lbWFpbCddKTsKJHRwbC0+YXNzaWduKCdsb2dpbl9hZnRlcnZlcmlmeScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykpOwokdHBsLT5kaXNwbGF5KCk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.pushuserlive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykgKSBleGl0OwppZiggIWlzc2V0KCRwYXJhbXNbJ3VzZXJfaWQnXSkgKSB7CiAgICBlY2hvICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsJHBhcmFtcywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKfQokdG1wdXNlcl9pZCA9IChpbnQpJHBhcmFtc1sndXNlcl9pZCddOwoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGlkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJHRtcHVzZXJfaWQpKTsKJGtleSA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHJvd1sndXNlcm5hbWUnXSk7CiRyb3dbJ3Bhc3N3b3JkJ10gPSAkdGhpcy0+ZGVjcnlwdCgka2V5LGJhc2U2NF9kZWNvZGUoJHJvd1sncGFzc3dvcmQnXSkpOwoKJHRoaXMtPl9DcmVhdGVGcm9udGVuZFVzZXIoICR0bXB1c2VyX2lkLCAkcm93Wyd1c2VybmFtZSddLCAkcm93WydwYXNzd29yZCddLCAnJyApOwoKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFdIRVJFIHVzZXIgPSA/JzsKJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdG1wdXNlcl9pZCkpOwokcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGlkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRtcHVzZXJfaWQpKTsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdhZG1pbnVzZXJzJyk7CiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfdXNlcnB1c2hlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.register_link.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiRvbmx5aHJlZiA9IGZhbHNlOwokbGlua3RleHQgPSAkdGhpcy0+TGFuZygndXNlcl9yZWdpc3RyYXRpb24nKTsKJGlubGluZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLHRydWUpOwoKaWYoICFpc3NldCgkcGFyYW1zWydncm91cCddKSApIHJldHVybjsKCmlmKCBpc3NldCgkcGFyYW1zWydkZXN0cGFnZSddKSApCiAgewogICAgJGRlc3RwYWdlID0gdHJpbSgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgICRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAkZGVzdHBhZ2VpZCA9ICRjb250ZW50b3BzLT5HZXRQYWdlSURGcm9tQWxpYXMoJGRlc3RwYWdlKTsKICAgIGlmKCAkZGVzdHBhZ2VpZCApICRyZXR1cm5pZCA9ICRkZXN0cGFnZWlkOwogICAgdW5zZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snb25seWhyZWYnXSkgKQogIHsKICAgICRvbmx5aHJlZiA9IChpbnQpJHBhcmFtc1snb25seWhyZWYnXTsKICAgIHVuc2V0KCRwYXJhbXNbJ29ubHlocmVmJ10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3JldHVybmlkJ10pICkKICB7CiAgICAkcmV0dXJuaWQgPSAoaW50KSRwYXJhbXNbJ3JldHVybmlkJ107CiAgICB1bnNldCgkcGFyYW1zWydyZXR1cm5pZCddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydsaW5rdGV4dCddKSApCiAgewogICAgJGxpbmt0ZXh0ID0gdHJpbSgkcGFyYW1zWydsaW5rdGV4dCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2xpbmt0ZXh0J10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ25vaW5saW5lJ10pICkKICB7CiAgICAkaW5saW5lID0gZmFsc2U7CiAgICB1bnNldCgkcGFyYW1zWydub2lubGluZSddKTsKICB9CgokcGFyYW1zWydtb2RlJ10gPSAnc2lnbnVwJzsKJHByZXR0eV91cmwgPSAibWFtcy9yZWdpc3Rlci97JHJldHVybmlkfS97JHBhcmFtc1snZ3JvdXAnXX0iOwokb3V0cHV0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJGxpbmt0ZXh0LCRwYXJhbXMsJycsJG9ubHlocmVmLCRpbmxpbmUsJycsZmFsc2UsJHByZXR0eV91cmwpOwplY2hvICRvdXRwdXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.reguser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBcTUFNU1xSUlV0aWxzIGFzIFJSVXRpbHM7Ci8vCi8vIHRoaXMgZmlsZSBkb2VzIGFsbCBvZiB0aGUgcmVnaXN0cmF0aW9uIHBvcnRpb25zLi4uIGFzc3VtaW5nIHRoYXQgYWxsIGlucHV0IGRhdGEKLy8gaGFzIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQuCi8vCiRtYW1zID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfTUFNUyk7Cgp0cnkKewogICRwYXJhbXMgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3NpZ251cCcpOwogIAogIC8vIGNoZWNrIGZvciByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgLy8gaWYoICFpc3NldCggJHBhcmFtc1snZ3JvdXAnXSApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgLy9pZiggIWlzc2V0KCAkcGFyYW1zWydwa2cnXSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAKICAvLyBHZXQgcHJvcGVydHkgZGVmaW5pdGlvbnMKICAkZ3JwaWRzICAgICA9IHJlZ191dGlsczo6ZXhwYW5kX2dyb3VwKCRwYXJhbXNbJ2dyb3VwJ10pOwogICRkZWZucyAgICAgID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICAkcHJvcGVydGllcyA9IFtdOwogIAogIHsKICAgICR0bXAgPSBbXTsKICAgIGZvcmVhY2goJGdycGlkcyBhcyAkZ2lkKQogICAgewogICAgICAkZ3JlbG5zID0gJG1hbXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoJGdpZCk7CiAgICAgICR0bXAgICAgPSBSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCR0bXAsICRncmVsbnMpOwogICAgICB1YXNvcnQoJHRtcCwgJ3h0X2FycmF5Ojpjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKTsKICAgIH0KICAgIGZvcmVhY2goJHRtcCBhcyAkb25lKQogICAgewogICAgICAkcHJvcGVydGllc1skb25lWyduYW1lJ11dID0gJG9uZTsKICAgIH0KICB9CiAgCiAgCiAgICAvLwogICAgLy8gYWxsIHZhbGlkYXRpb24gaXMgZG9uZQogICAgLy8gd2VyZSByZWFkeSB0byBkbyB3b3JrIG5vdy4KICAgIC8vCiAgICAkdXNlcm5hbWUgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnaW5wdXRfdXNlcm5hbWUnKTsKICAgICRwYXNzd29yZCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdpbnB1dF9wYXNzd29yZCcpOwogICAgJG92ZXJ3cml0ZV91aWQgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnb3ZlcndyaXRlX3VpZCcpOwogICAgJGVtYWlsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3VzZV9lbWFpbCcpOwoKICAgIC8vIGdlbmVyYXRlIGEgdW5pcXVlIGNvZGUgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXIgdG8gZG91YmxlIGNvbmZpcm0gaGlzIGxvZ2luLgogICAgJGNvZGUgPSBzdWJzdHIoc3RydG91cHBlcihtZDUoX19GSUxFX18ubWljcm90aW1lKCkuJHVzZXJuYW1lKSksMCwyMCk7CgogICAgLy8gaGF2ZSB0byBhZGQgdGhlIHJlY29yZCB0byB0aGUgZGF0YWJhc2Ugc28gdGhhdCB3ZSBrbm93IHdobyB0aGlzIGd1eSBpcyB3aGVuIGhlIGNvbWVzIGJhY2sKICAgICRyZXR1cm4gPSAkdGhpcy0+Q3JlYXRlVGVtcFVzZXIoICRncnBpZHMsICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkY29kZSwgJG92ZXJ3cml0ZV91aWQgKTsKICAgIGlmKCAkcmV0dXJuWzBdID09IGZhbHNlICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXR1cm5bMV0pOwoKICAgIC8vIGFuZCBhZGQgaGlzIHByb3BlcnRpZXMgdG9vCiAgICAkdG1wdWlkID0gJHJldHVyblsxXTsKICAgIGZvcmVhY2goICRwcm9wZXJ0aWVzIGFzICRwcm9wbmFtZSA9PiAkcHJvcCApIHsKICAgICAgICAvLyBjaGVjayBpZiB0aGUgdmFsdWUgZXhpc3RzIChpdCBtYXkgYmUgYW4gb3B0aW9uYWwgZmllbGQpCiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydpbnB1dF8nLiRwcm9wbmFtZV0pICkgY29udGludWU7CgogICAgICAgICR2YWx1ZSA9ICRwYXJhbXNbJ2lucHV0XycuJHByb3BuYW1lXTsKICAgICAgICAkcmV0dXJuID0gJHRoaXMtPkFkZFRlbXBVc2VyUHJvcGVydHkoICR0bXB1aWQsICRwcm9wbmFtZSwgJHBhcmFtc1snaW5wdXRfJy4kcHJvcG5hbWVdICk7CgogICAgICAgIGlmKCAkcmV0dXJuWzBdID09IGZhbHNlICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXN1bHRbMV0pOwogICAgfQoKICAgIC8vIHNlbmQgYW4gZXZlbnQKICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vayggJ01BTVNSZWdpc3RyYXRpb246Om9uTmV3VXNlcicsIFsgJ3VzZXJuYW1lJz0+JHVzZXJuYW1lLCAnZW1haWwnPT4kZW1haWwgXSApOwoKICAgIC8vCiAgICAvLyBva2F5IHdlJ3JlIGRvbmUgY3JlYXRpbmcgdGVtcG9yYXJ5IHVzZXJzCiAgICAvLwogICAgJHJlZGlyZWN0X3ByZWYgPSAncmVkaXJlY3RfYWZ0ZXJyZWdpc3Rlcic7CiAgICAkYWN0aW9uID0gJ3Bvc3RfcmVnaXN0ZXJ1c2VyJzsKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAkcGFybXNbJ21yX3VzZXJuYW1lJ10gPSAkdXNlcm5hbWU7CiAgICAkcGFybXNbJ21yX2VtYWlsJ10gPSAkZW1haWw7CiAgICAkZXhwaXJlc19tb250aHMgPSAoaW50KSBtYXgoMSwkbWFtcy0+R2V0UHJlZmVyZW5jZSgnZXhwaXJlYWdlX21vbnRocycsNTIwKSk7CiAgICAkZXhwaXJlcyA9IHN0cnRvdGltZShzcHJpbnRmKCIrICVkIG1vbnRocyIsJGV4cGlyZXNfbW9udGhzKSk7CiAgICAkZG9jcmVhdGVmZXUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b2NyZWF0ZV9mZXUnLDEpOwoKICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dwYWlkcmVnaXN0cmF0aW9uJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHBrZyA9ICRncm91cF9pZCA9IG51bGw7CiAgICAgICAgICAgICRwa2dpZCA9ICRwYXJhbXNbJ3BrZyddOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHBrZ2lkKSApIHsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkcGtnaWQpID4gMSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3Jfc3Vic2NyaWJlX211bHRpcGxlJykpOwogICAgICAgICAgICAgICAgJHBrZ2lkID0gKGludCkgJHBrZ2lkWzBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkcGtnaWQgKSB7CiAgICAgICAgICAgICAgICAkZ3JvdXBfaWQgPSAkcGFyYW1zWydncm91cCddOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRncm91cF9pZCkgKSAkZ3JvdXBfaWQgPSAkZ3JvdXBfaWRbMF07CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgV0hFUkUgZ2lkID0gPyBBTkQgaWQgPSA/JzsKICAgICAgICAgICAgICAgICRwa2cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGdyb3VwX2lkLCRwa2dpZCkpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkcGtnKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ2ludGVybmFsIGVycm9yOiBwYWNrYWdlICcuJHBrZ2lkLicgd2FzIG5vdCBmb3VuZCBmb3IgdGhlIHNwZWNpZmllZCBncm91cCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJHBrZyAmJiAkcGtnWydjb3N0J10gPiAwICkgewogICAgICAgICAgICAgICAgLy8gdGhpcyBwYWNrYWdlIGNvc3RzIG1vbmV5LgogICAgICAgICAgICAgICAgJGV4cGlyZXMgPSByZWdfdXRpbHM6OnBrZ19zdWJzY3JfdG9fZXhwaXJ5ZGF0ZSgkcGtnKTsKICAgICAgICAgICAgICAgICRjYXJ0ID0gY2dfZWNvbW06OmdldF9jYXJ0X21vZHVsZSgpOwogICAgICAgICAgICAgICAgaWYoICEkY2FydCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ2ludGVybmFsIGVycm9yOiBubyBjYXJ0IG1vZHVsZSBmb3VuZCcpOwoKICAgICAgICAgICAgICAgICRyZWRpcmVjdF9wcmVmID0gJ3JlZGlyZWN0X3BhaWRwa2cnOwogICAgICAgICAgICAgICAgJGRvY3JlYXRlZmV1ID0gMDsKCiAgICAgICAgICAgICAgICAvLyBub3cgd2UgZ290dGEgYWRkIGFuIGl0ZW0gdG8gdGhlIGNhcnQuCiAgICAgICAgICAgICAgICAkaXRlbSA9IG5ldyBjZ19lY29tbV9jYXJ0aXRlbSgnJywkdG1wdWlkLDEsJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X3R5cGUoY2dfZWNvbW1fY2FydGl0ZW06OlRZUEVfU0VSVklDRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2FsbG93X3F1YW50aXR5X2FkanVzdChGQUxTRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2FsbG93X2R1cGxpY2F0ZShGQUxTRSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X2Jhc2VfcHJpY2UoJHBrZ1snY29zdCddKTsKCiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3RtcHVpZCcsJHRtcHVpZCk7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwogICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwa2cnLCRwa2cpOwogICAgICAgICAgICAgICAgJHNrdSA9ICdzci0nLnNwcmludGYoJyUwM2QtJTA1ZCcsJHBrZ1snaWQnXSwkdG1wdWlkKTsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignc2t1Jywkc2t1KTsKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+WFRHZXRQcmVmZXJlbmNlKCdjYXJ0aXRlbV9zdW1tYXJ5X3RwbCcsJ3tzaXRlbmFtZX0gbWVtYmVyc2hpcCBmb3IgeyR1c2VybmFtZX0nKTsKICAgICAgICAgICAgICAgICRpdGVtLT5zZXRfc2t1KCRza3UpOwogICAgICAgICAgICAgICAgJGl0ZW0tPnNldF9zdW1tYXJ5KCR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wKSk7CgogICAgICAgICAgICAgICAgJGl0ZW0tPnNldF9pdGVtX3RvdGFsKCRwa2dbJ2Nvc3QnXSk7CiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0aW9uID0gbmV3IGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAgc3dpdGNoKCAkcGtnWydzdWJzY3JfdHlwZSddICkgewogICAgICAgICAgICAgICAgY2FzZSAneWVhcic6CiAgICAgICAgICAgICAgICAgICAgaWYoICRwa2dbJ3N1YnNjcl9udW0nXSAhPSAxICkgJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ludmFsaWQgU3Vic2NyaXB0aW9uIHBhY2thZ2UgKG1vcmUgdGhhbiBvbmUgeWVyKScpOwogICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWSk7CiAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9ZRUFSTFkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHBrZ1snc3Vic2NyX251bSddICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X3BheXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfTU9OVEhMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9kZWxpdmVyeXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfTU9OVEhMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X3BheXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfUVVBUlRFUkxZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9RVUFSVEVSTFkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1NFTUlBTlVBTExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9TRU1JQU5VQUxMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9wYXlwZXJpb2QoY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHRpb24tPnNldF9kZWxpdmVyeXBlcmlvZChjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb246OlNVQlNDUl9QRVJJT0RfWUVBUkxZKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXJyb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdJbnZhbGlkIFN1YnNjcmlwdGlvbiBwYWNrYWdlICh3aWVyZCBudW1iZXIgb2YgbW9udGhzKScpOwogICAgICAgICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0aW9uLT5zZXRfcGF5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9NT05USExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2RlbGl2ZXJ5cGVyaW9kKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9NT05USExZKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi0+c2V0X2V4cGlyeSgtMSk7CiAgICAgICAgICAgICAgICAkaXRlbS0+c2V0X3N1YnNjcmlwdGlvbigkc3Vic2NyaXB0aW9uKTsKCiAgICAgICAgICAgICAgICAvLyBjb3VsZCB0aHJvdyBhbiBleGNlcHRpb24sIG9yIHJldHVybiBmYWxzZS4KICAgICAgICAgICAgICAgICRyZXMgPSAkY2FydC0+QWRkQ2FydEl0ZW0oJGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIGFkZGluZyByZWdpc3RyYXRpb24gdG8gY2FydCcpOwogICAgICAgICAgICBceHRfdXRpbHM6OmxvZ19leGNlcHRpb24oICRlICk7CgogICAgICAgICAgICAvLyBjb3VsZG4ndCBhZGQgdGhpcyBpdGVtIHRvIHRoZSBjYXJ0IChtYXliZSB0aGUgcG9saWN5IGdvdCBpbiB0aGUgd2F5KQogICAgICAgICAgICAvLyBzbyByZWRpcmVjdCBiYWNrIHRvIHRoZSBzdGFydC4KICAgICAgICAgICAgLy8gYW5kIGRpc3BsYXkgYSBtZXNzYWdlPwogICAgICAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoICR0bXB1aWQgKTsKICAgICAgICAgICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyUHJvcGVydGllcyggJHRtcHVpZCApOwoKICAgICAgICAgICAgJG1zZyA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICAgICAgICAgIGlmKCAhJG1zZyApICRtc2cgPSAkdGhpcy0+TGFuZygnZXJyb3JfcG9saWN5Y2FudGFkZCcpOwogICAgICAgICAgICAkdGhpcy0+c2Vzc2lvbl9wdXQoJ3JlZ3VzZXJfZXJyb3InLCRtc2cpOwoKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0Q29udGVudCggJHJldHVybmlkICk7CiAgICAgICAgfQoKICAgICAgICAvLyBpZiB3ZSBnZXQgaGVyZSBlaXRoZXIgdGhlIGNvc3QgaXMgMCBvciB0aGVyZSBpcyBzb21lIHByb2JsZW0gd2l0aCB0aGUgY2FydAogICAgICAgIC8vIHNvIHdlIGp1c3QgcHJvY2VlZCBsaWtlIG5vcm1hbC4KICAgIH0KCiAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJywxKSApIHsKICAgICAgICAvLyBva2F5LCB3ZSdyZSBub3cgcmVhZHkgdG8gc2VuZCB0aGUgZW1haWwsIHlhaG9vLCB5YWhvbywgeWFob28KICAgICAgICAvLyBub3cgd2UgaGF2ZSB0byBkZWNpZGUgd2hhdCBnb2VzIGluIGl0LgogICAgICAgICR0aGlzLT5fU2VuZFVzZXJDb25maXJtYXRpb25FbWFpbCgkaWQsJHJldHVybmlkLCRlbWFpbCwgJHVzZXJuYW1lLCAkY29kZSApOwogICAgfQogICAgZWxzZSBpZiAoJGRvY3JlYXRlZmV1KSB7CiAgICAgICAgJGFjdGlvbiA9ICdwb3N0X2NyZWF0ZXVzZXInOwoKICAgICAgICAvLyBpdCBhcHBlYXJzIHdlJ3JlIGFsbG93aW5nIGluc3RhbnQgcmVnaXN0cmF0aW9uCiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5fQ3JlYXRlRnJvbnRlbmRVc2VyKCAkdG1wdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgKTsKICAgICAgICBpZiggJHJlc3VsdFswXSA9PSBGQUxTRSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmVzdWx0WzFdKTsKCiAgICAgICAgLy8gd29vaG9vbywgdGhlIHVzZXIgYmUgY3JlYXRlZCAoaG9wZWZ1bGx5KS4KICAgICAgICAvLyBkZWxldGUgdGhlIHJlY29yZHMgZnJvbSB0aGUgU2VsZlJlZyB0YWJsZXMKICAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXJQcm9wZXJ0aWVzKCAkdG1wdWlkICk7CiAgICAgICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyKCAkdG1wdWlkICk7CgogICAgICAgIC8vIGRvIHdlIGF1dG9tYXRpY2FsbHkgbG9nIHRoaXMgdXNlciBpbj8KICAgICAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykgKSB7CiAgICAgICAgICAgICRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CiAgICAgICAgICAgIGlmKCAkcmVzdWx0WzFdICE9ICRtYW1zLT5Mb2dnZWRJbklkKCkgKSB7CiAgICAgICAgICAgICAgICAkcmVzID0gJG1hbXMtPkxvZ2luKCAkdXNlcm5hbWUsICRwYXNzd29yZCApOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRyZXMpICYmICRyZXNbMF0gPT0gRkFMU0UgKSBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIHdpdGggYXV0by1sb2dpbjogJy4kcmVzWzFdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRvIHJlZGlyZWN0IHRvIGEgcGFnZSBvciBub3QKICAgICRkZXN0cGFnZXN0ciA9IG51bGw7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVzdHBhZ2UnXSkgKSB7CiAgICAgICAgJGRlc3RwYWdlc3RyID0gdHJpbSgkcGFyYW1zWydkZXN0cGFnZSddKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRkZXN0cGFnZXN0ciA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgkcmVkaXJlY3RfcHJlZikpOwogICAgfQogICAgaWYoICRkZXN0cGFnZXN0ciApIHsKICAgICAgICAkZGVzdHBhZ2VpZCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRkZXN0cGFnZXN0cik7CiAgICAgICAgaWYoICRkZXN0cGFnZWlkICkgJHJldHVybmlkID0gJGRlc3RwYWdlaWQ7CiAgICB9CgogICAgaWYoIChpc3NldCgkcGFyYW1zWydub2ZpbmFsbWVzc2FnZSddKSAmJiAkcGFyYW1zWydub2ZpbmFsbWVzc2FnZSddKSB8fAogICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX3NraXBfZmluYWxfbXNnJykgfHwKICAgICAgICAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicpICYmIGlzc2V0KCRwYXJhbXNbJ3BrZyddKSAmJiAkcGFyYW1zWydwa2cnXSkgKSB7CiAgICAgICAgLy8gcmVkaXJlY3QgYmFjayB0byB0aGUgY29udGVudCBwYWdlIHdlIHN0YXJ0ZWQgdGhlIGZvcm0gb24uCiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ21yX29yaWdfdXJsJ10pICYmIGVtcHR5KCRkZXN0cGFnZXN0cikgKSB7CiAgICAgICAgICAgIHJlZGlyZWN0KCRwYXJhbXNbJ21yX29yaWdfdXJsJ10pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJHRoaXMtPnNlc3Npb25fY2xlYXIoJ3NpZ251cCcpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkcGFybXMpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgLy8gd2UgZ290IGFuIGV4Y2VwdGlvbgogICAgLy8gc28gd2UncmUgZ29pbmcgdG8gc2V0IGFuIGVycm9yIGluIHRoZSBzZXNzaW9uCiAgICAvLyBhbmQgcmVkaXJlY3QgYmFjayB0byB0aGUgc2lnbnVwIGFjdGlvbgogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkZS0+R2V0TWVzc2FnZSgpKTsKICAgIFx4dF91dGlsczo6bG9nX2V4Y2VwdGlvbiggJGUgKTsKICAgICR0aGlzLT5zZXNzaW9uX3B1dCgncmVndXNlcl9lcnJvcicsJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7Cn0KCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.selpkg.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwppZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycpICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc29uIERlbmllZCcpOwoKLy8gd2UncmUgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGhpcyBvd24gcGFja2FnZSAoZ3JvdXAocykpLgppZiggXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnbXJfc3VibWl0JykgJiYgXHh0X3BhcmFtOjpleGlzdHMoJHBhcmFtcywnbXJfc2VscGtnJykgKSB7CiAgICB0cnkgewogICAgICAgICRwa2dpZHMgPSBhcnJheSgpOwogICAgICAgIGlmKCBpc19hcnJheSgkcGFyYW1zWydtcl9zZWxwa2cnXSkgKSB7CiAgICAgICAgICAgICRwa2dpZHMgPSAkcGFyYW1zWydtcl9zZWxwa2cnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRwa2dpZHMgPSBbICRwYXJhbXNbJ21yX3NlbHBrZyddIF07CiAgICAgICAgfQogICAgICAgICRteWZpbHRlciA9IGZ1bmN0aW9uKCBhcnJheSAkbGlzdCApIHsKICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IChpbnQpICRvbmU7CiAgICAgICAgICAgICAgICBpZiggJG9uZSA+IDAgJiYgIWluX2FycmF5KCRvbmUsJG91dCkgKSAkb3V0W10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgICAgIH07CiAgICAgICAgJHBrZ2lkcyA9ICRteWZpbHRlciggJHBrZ2lkcyApOwoKICAgICAgICBpZiggY291bnQoJHBrZ2lkcykgPiAxICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycpIDwgMiApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9tdWx0aXBsZXBrZ3MnKSk7CiAgICAgICAgfQoKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgV0hFUkUgaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHBrZ2lkcykuJyknOwogICAgICAgICRwa2dzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHBrZ3MpIHx8IGNvdW50KCRwa2dzKSA9PSAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRGF0YWJhc2UgZXJyb3InKTsKCiAgICAgICAgJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoTU9EX01BTVMpOwogICAgICAgICRnaWRzID0gYXJyYXlfdW5pcXVlKHh0X2FycmF5OjpleHRyYWN0X2ZpZWxkKCRwa2dzLCdnaWQnKSk7CiAgICAgICAgJGFsbGdyb3VwcyA9ICRtYW1zLT5HZXRHcm91cExpc3RGdWxsKCk7CiAgICAgICAgJGFsbGdyb3VwcyA9IGFycmF5X2tleXMoJGFsbGdyb3Vwcyk7CiAgICAgICAgZm9yZWFjaCggJGdpZHMgYXMgJGdpZCApIHsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkZ2lkLCRhbGxncm91cHMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRGF0YWJhc2UgZXJyb3InKTsKICAgICAgICB9CgogICAgICAgICRwYXJtcyA9IFsgJ21yX2dyb3VwJz0+JGdpZHMsJ21yX3BrZyc9PiRwa2dpZHMgXTsKICAgICAgICAkcGFybXMgPSBbICdtcl9kYXRhJyA9PiBiYXNlNjRfZW5jb2RlKCBzZXJpYWxpemUoICRwYXJtcyApICkgXTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ3NpZ251cCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICBlY2hvICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGUtPkdldE1lc3NhZ2UoKSApOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKLy8gYnVpbGQgdGhlIHRlbXBsYXRlCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wYWlkcGtncyBPUkRFUiBCWSBuYW1lJzsKJHBwa2dzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwppZiggISRwcGtncyApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsJHBhcmFtcywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub3BrZ3MnKSk7Cn0KCiRwa2dzID0gYXJyYXkoKTsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHBwa2dzKTsgJGkrKyApIHsKICAgICRyZWMgPSYgJHBwa2dzWyRpXTsKICAgICRwa2dzWyRyZWNbJ2lkJ11dID0gJHJlY1sncHJvbXB0J107Cn0KCgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzZWxwa2d0ZW1wbGF0ZScpOwokbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKJHRwbC0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCckJyk7CiR0cGwtPmFzc2lnbignY3VycmVuY3lfY29kZScsJ1VTRCcpOwppZiggJG1vZCApIHsKICAgICR0cGwtPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxcY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGUnLFxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKSk7Cn0KCiR0cGwtPmFzc2lnbignZXJyb3JfbXNnJywkdGhpcy0+c2Vzc2lvbl9nZXQoJ3JlZ3VzZXJfZXJyb3InKSk7CiR0aGlzLT5zZXNzaW9uX2NsZWFyKCdyZWd1c2VyX2Vycm9yJyk7CiR0cGwtPmFzc2lnbigncGtncycsJHBwa2dzKTsKJHRwbC0+YXNzaWduKCdwa2dsaXN0JywkcGtncyk7CiR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+WFRDcmVhdGVGb3JtU3RhcnQoJGlkLCdzZWxwa2cnLCRyZXR1cm5pZCwkcGFyYW1zKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dzZWxlY3Rwa2cnKSA9PSAyICkgJHRwbC0+YXNzaWduKCdpbnB1dHR5cGUnLCdjaGVja2JveCcpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.sendanotheremail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgovLyB3ZSBoYXZlIHRoZSB1c2VybmFtZSAodGhlb3JldGljYWxseSkgaW4gdGhlICRwYXJhbXMKaWYoICFpc3NldCggJHBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSApICkgewogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICRwYXJtc1snZXJyb3InXSA9IDE7CiAgJHBhcm1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcyApOwogIHJldHVybjsKfQokdXNlcm5hbWUgPSAkcGFyYW1zWydpbnB1dF91c2VybmFtZSddOwoKLy8gbG9vayB1cCB0aGUgdXNlcm5hbWUgYW5kIGdldCBhbiBpZAokdGVtcHVzZXJpZCA9ICR0aGlzLT5HZXRUZW1wVXNlcklEKCAkdXNlcm5hbWUgKTsKaWYoICEkdGVtcHVzZXJpZCApIHsKICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMgKTsKICByZXR1cm47Cn0KCi8vIGFuZCB3aGF0ZXZlciBkZXRhaWxzIHdlIGNhbiBmcm9tIHRoZSB1c2VycyB0YWJsZQokZGV0YWlscyA9ICR0aGlzLT5HZXRUZW1wVXNlckRldGFpbHMoICR0ZW1wdXNlcmlkICk7CmlmKCAkZGV0YWlscyA9PSBmYWxzZSApIHsKICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMgKTsKICByZXR1cm47Cn0KCiRlbWFpbCA9ICcnOwppZiggaXNfZW1haWwoJHVzZXJuYW1lKSApIHsKICAkZW1haWwgPSAkdXNlcm5hbWU7Cn0KZWxzZSB7CiAgLy8gbm93IGdldCBwcm9wZXJ0aWVzCiAgJHRlbXB1c2VycHJvcHMgPSAkdGhpcy0+R2V0VGVtcFVzZXJQcm9wZXJ0aWVzKCAkdGVtcHVzZXJpZCApOwogIGlmKCAkdGVtcHVzZXJwcm9wcyA9PSBmYWxzZSApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Byb3BlcnRpZXMnKTsKICAgICRwYXJtc1snbW9kZSddID0gJ3NlbmRhbm90aGVyZW1haWwnOwogICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcyApOwogICAgcmV0dXJuOwogIH0KCiAgJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKICBpZiggISRtYW1zICkgewogICAgJHBhcm1zWydlcnJvciddID0gMTsKICAgICRwYXJtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAvLyBoYXZlIHRoZSBncm91cCBpZCwgZ2V0IHRoZSBncm91cCBwcm9wZXJ0eSByZWxhdGlvbnMKICAkcmVsYXRpb25zID0gJG1hbXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRkZXRhaWxzWydncm91cF9pZCddICk7CiAgaWYoICRyZWxhdGlvbnNbMF0gPT0gZmFsc2UgKSB7CiAgICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICAgJHBhcm1zWydtZXNzYWdlJ10gPSAkcmVsYXRpb25zWzFdOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAkcHJvcHMgPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZucygpOwogIGlmKCAkcHJvcHMgPT0gZmFsc2UgKSB7CiAgICAkcGFybXNbJ2Vycm9yJ10gPSAxOwogICAgJHBhcm1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQoKICAvLyBub3cgZmluZCBhbiBlbWFpbCBhZGRyZXNzIHByb3BlcnR5CiAgLy8gYW5kIG1ha2Ugc3VyZSBpdCdzIG9mIHR5cGUgMgogICRmb3VuZCA9ICcnOwogIGZvcmVhY2goICRyZWxhdGlvbnMgYXMgJHJlbG4gKSB7CiAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgIGlmKCAkcHJvcFsndHlwZSddID09IDIgJiYgJHJlbG5bJ25hbWUnXSA9PSAkcHJvcFsnbmFtZSddICkgewoJLy8gZm91bmQgYW4gZW1haWwgcHJvcGVydHkKCWZvcmVhY2goICR0ZW1wdXNlcnByb3BzIGFzICR0ZW1wcHJvcCApIHsKCSAgaWYoICRyZWxuWyduYW1lJ10gPT0gJHRlbXBwcm9wWyd0aXRsZSddICkgewoJICAgICRmb3VuZCA9ICR0ZW1wcHJvcFsnZGF0YSddOwoJICAgIGJyZWFrOwoJICB9Cgl9CiAgICAgIH0KICAgICAgaWYoICRmb3VuZCAhPSAnJyApIGJyZWFrOwogICAgfQogICAgaWYoICRmb3VuZCAhPSAnJyApIGJyZWFrOwogIH0KICBpZiggISRmb3VuZCApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2VtYWlsYWRkcmVzcycpOwogICAgJHBhcm1zWydtb2RlJ10gPSAnc2VuZGFub3RoZXJlbWFpbCc7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zICk7CiAgICByZXR1cm47CiAgfQogICRlbWFpbCA9ICRmb3VuZDsKfQoKJHRoaXMtPl9TZW5kVXNlckNvbmZpcm1hdGlvbkVtYWlsKCAkaWQsJHJldHVybmlkLCRlbWFpbCwgJHVzZXJuYW1lLCAkZGV0YWlsc1snY29kZSddICk7CgovLyB3ZSdyZSBub3QgcmVkaXJlY3RpbmcgYW55d2hlcmUgd2UgbmVlZCB0byBkaXNwbGF5IHNvbWUgbmljZSBtZXNzYWdlCi8vIGFib3V0IHdlIGp1c3Qgc3BhbW1lZCB5b3VyIGluYm94LCBldGMsIGV0Yy4KJHNtYXJ0eS0+YXNzaWduKCdzaXRlbmFtZScsICRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10pOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwokc21hcnR5LT5hc3NpZ24oJ2VtYWlsJywgJGVtYWlsICk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.setprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyApICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ByZWZlcmVuY2VzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydzZXR1cF9jYXJ0X2V2ZW50cyddKSApIHsKICAgIC8vIHNldHVwIHRoZSBjYXJ0IGV2ZW50cwogICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnQ2FydEFkanVzdGVkJyxmYWxzZSk7CiAgICAkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckNyZWF0ZWQnLGZhbHNlKTsKICAgICR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsZmFsc2UpOwogICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJEZWxldGVkJyxmYWxzZSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnZXZlbnRoYW5kbGVyc19hZGRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9ub3JlZ2lzdGVyJ10pICkKICB7CiAgICAkdG1wID0gaW1wbG9kZSgnLCcsJHBhcmFtc1snaW5wdXRfbm9yZWdpc3RlciddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub3JlZ2lzdGVyX2dyb3VwcycsJHRtcCk7CiAgfQplbHNlCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJywnJyk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9yZW1vdmVhbGwnXSApICkKICB7CiAgICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctNSB5ZWFycycpOwogICAgcmV0dXJuOwogIH0KCmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcmVtb3ZlMXdlZWsnXSApICkKICB7CiAgICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctMSB3ZWVrJyk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcmVtb3ZlMW1vbnRoJ10gKSApCiAgewogICAgJHRoaXMtPkV4cGlyZU9sZFRlbXBVc2VycygnLTEgbW9udGgnKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9yZW1vdmUxbW9udGgnXSApICkKICB7CiAgICAkdGhpcy0+RXhwaXJlT2xkVGVtcFVzZXJzKCctMjQgaG91cnMnKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9saXN0MWRheSddICkgKQogIHsKIyBjcmVhdGUgYSBjc3YgZmlsZSBmb3IgdGVtcCB1c2VycyB0aGF0IGhhdmUKIyBiZWVuIGluIHRoZXJlIG1vcmUgdGhhbiBvbmUgZGF5CiAgICAkcmVzdWx0ID0gJHRoaXMtPkNTVk9sZFRlbXBVc2VycygnLTI0IGhvdXJzJyk7CiAgICBpZiggJHJlc3VsdCA9PSAnJyApCiAgICAgIHsKCWVjaG8gIjxoMz5ObyByZXN1bHRzIHJldHVybmVkPC9oMz4iOwoJcmV0dXJuOwogICAgICB9CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXInKTsKICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCcpOwogICAgaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT10cmFwcGVkaW5tYW1zcmVnLmNzdicpOwogICAgd2hpbGUoQG9iX2VuZF9jbGVhbigpKTsKICAgIGVjaG8gJHJlc3VsdDsKICAgIGV4aXQoKTsKICB9CgppZiggaXNzZXQoICRwYXJhbXNbJ2lucHV0X2lubGluZSddICkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLCAkcGFyYW1zWydpbnB1dF9pbmxpbmUnXSk7CiAgfQplbHNlCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsIDApOwogIH0KCmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfbm90aWZ5J10gKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmeV9vbl9yZWdpc3RyYXRpb24nLAoJCQkgJHBhcmFtc1snaW5wdXRfbm90aWZ5J10pOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub3RpZnlfb25fcmVnaXN0cmF0aW9uJywgMCk7CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9lbWFpbF9jb25maXJtYXRpb24nXSApICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVxdWlyZV9lbWFpbF9jb25maXJtYXRpb24nLAoJCQkgJHBhcmFtc1snaW5wdXRfZW1haWxfY29uZmlybWF0aW9uJ10pOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbicsIDApOwogIH0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycsIHRyaW0oJHBhcmFtc1snaW5wdXRfY29uZmlybW1haWxfdG8nXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRtaW5fbm90aWZ5X3N1YmplY3QnLHRyaW0oJHBhcmFtc1snYWRtaW5fbm90aWZ5X3N1YmplY3QnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b2NyZWF0ZV9mZXUnLFx4dF9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnYXV0b2NyZWF0ZV9mZXUnKSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fbm90aWZ5X2VtYWlsJyx0cmltKCRwYXJhbXNbJ2FkbWluX25vdGlmeV9lbWFpbCddKSk7CmlmKCBpc3NldCgkcGFyYW1zWydyZXNldF9ub3RpZnlfdGVtcGxhdGUnXSkgKSB7CiAgICAkdHBsID0gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL3RlbXBsYXRlcy9hZG1pbl9ub3RpZnlfZW1haWwudHBsJyk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2FkbWluX25vdGlmeV9lbWFpbCcsJHRwbCk7Cn0KCmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZm9yY2VfZW1haWxfdHdpY2UnXSApICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZm9yY2VfZW1haWxfdHdpY2UnLCAxKTsKfQplbHNlIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2ZvcmNlX2VtYWlsX3R3aWNlJywgMCk7Cn0KCmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfc2tpcF9maW5hbF9tc2cnXSApICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfc2tpcF9maW5hbF9tc2cnLCAxKTsKICB9CmVsc2UgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfc2tpcF9maW5hbF9tc2cnLCAwKTsKICB9CgppZiggaXNzZXQoICRwYXJhbXNbJ2lucHV0X2VuYWJsZV93aGl0ZWxpc3QnXSApICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV93aGl0ZWxpc3QnLCRwYXJhbXNbJ2lucHV0X2VuYWJsZV93aGl0ZWxpc3QnXSk7CgppZiggaXNzZXQoICRwYXJhbXNbJ2lucHV0X3doaXRlbGlzdCddICkgKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0JywgJHBhcmFtc1snaW5wdXRfd2hpdGVsaXN0J10pOwoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF93aGl0ZWxpc3RfdHJpZ2dlcl9tZXNzYWdlJ10gKSApICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsICRwYXJhbXNbJ2lucHV0X3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnXSk7CgppZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVnX2FkZGl0aW9uYWxncm91cHMnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWdfYWRkaXRpb25hbGdyb3VwcycsKGludCkkcGFyYW1zWydpbnB1dF9yZWdfYWRkaXRpb25hbGdyb3VwcyddKTsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snYWxsb3dzZWxlY3Rwa2cnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd3NlbGVjdHBrZycsKGludCkkcGFyYW1zWydhbGxvd3NlbGVjdHBrZyddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydhbGxvd3BhaWRyZWdpc3RyYXRpb24nXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd3BhaWRyZWdpc3RyYXRpb24nLChpbnQpJHBhcmFtc1snYWxsb3dwYWlkcmVnaXN0cmF0aW9uJ10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhcnRpdGVtX3N1bW1hcnlfdHBsJ10pICkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FydGl0ZW1fc3VtbWFyeV90cGwnLHRyaW0oJHBhcmFtc1snY2FydGl0ZW1fc3VtbWFyeV90cGwnXSkpOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3JlZGlyZWN0X3BhaWRwa2cnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9wYWlkcGtnJyx0cmltKCRwYXJhbXNbJ3JlZGlyZWN0X3BhaWRwa2cnXSkpOwogIH0KCiRsb2dpbl9hZnRlcnZlcmlmeSA9IDA7CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9sb2dpbl9hZnRlcnZlcmlmeSddKSApICAkbG9naW5fYWZ0ZXJ2ZXJpZnkgPSAxOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknLCRsb2dpbl9hZnRlcnZlcmlmeSk7CgokaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlciA9ICcnOwppZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlciddKSApCiAgewogICAgJGlucHV0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXIgPSB0cmltKCRwYXJhbXNbJ2lucHV0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXInXSk7CiAgfQokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicsJGlucHV0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXIpOwoKJGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5ID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeSddKSApCiAgewogICAgJGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5ID0gdHJpbSgkcGFyYW1zWydpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeSddKTsKICB9CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9hZnRlcnZlcmlmeScsJGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5KTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ZlcmlmeXBhZ2UnLCBceHRfcGFyYW06OmdldF9pbnQoICRwYXJhbXMsICd2ZXJpZnlwYWdlJykgKTsKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzX3VwZGF0ZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgovLyBFT0YK]]></data>
	</file>
	<file>
	  <filename>/action.signup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBcTUFNU1xSUlV0aWxzIGFzIFJSVXRpbHM7CgppZighaXNzZXQoJGdDbXMpKQp7CiAgZXhpdDsKfQoKLy8KLy8gdGhpcyBmaWxlIGRpc3BsYXlzIHRoZSBmb3JtIGZvciByZWdpc3RyYXRpb24gYW5kIGhhbmRsZXMgdmFsaWRhdGluZyB0aGUgZGF0YQovLyBidXQgZG9lcyBub3QgZG8gcmVnaXN0cmF0aW9uIGl0c2VsZi4KLy8KJGVycm9yICAgICAgICAgICAgICAgID0gJG1lc3NhZ2UgPSBOVUxMOwokZXBhcmFtcyAgICAgICAgICAgICAgPSByZWdfdXRpbHM6OmNsZWFuX3BhcmFtcygkcGFyYW1zKTsKJG1hbXMgICAgICAgICAgICAgICAgID0gXHh0X3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKJHVzZXJuYW1lX2lzX2VtYWlsICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJyk7CiRub2NhcHRjaGEgICAgICAgICAgICA9IFx4dF9wYXJhbTo6Z2V0X2Jvb2woJGVwYXJhbXMsICdub2NhcHRjaGEnLCAwKTsKJGFsbG93X292ZXJ3cml0ZSAgICAgID0gXHh0X3BhcmFtOjpnZXRfYm9vbCgkZXBhcmFtcywgJ2FsbG93b3ZlcndyaXRlJyk7CiRyZWdfYWRkaXRpb25hbGdyb3VwcyA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZ19hZGRpdGlvbmFsZ3JvdXBzJywgMCk7Cgp1bnNldCgkZXBhcmFtc1snYWN0aW9uJ10sICRlcGFyYW1zWydtb2R1bGUnXSwgJGVwYXJhbXNbJ3JldHVybmlkJ10pOwoKLy8gZ2V0IGRhdGEgcGFzc2VkIGludG8gdGhlIHNlc3Npb24gYnkgdGhlIHJlZ3VzZXIgYWN0aW9uCi8vIHRoaXMgb25seSBvY2N1cnMgaWYgdGhlcmUgaXMgYW4gZXJyb3IgaW4gdGhhdCBhY3Rpb24uCiR0bXAgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3JlZ3VzZXJfZXJyb3InKTsKJHRoaXMtPnNlc3Npb25fY2xlYXIoJ3JlZ3VzZXJfZXJyb3InKTsKaWYoJHRtcCkKewogICR0X3BhcmFtcyA9ICR0aGlzLT5zZXNzaW9uX2dldCgnc2lnbnVwJyk7CiAgJHRoaXMtPnNlc3Npb25fY2xlYXIoJ3NpZ251cCcpOwogIGlmKCR0X3BhcmFtcykKICB7CiAgICAkZXBhcmFtcyA9IGFycmF5X21lcmdlKCRlcGFyYW1zLCAkdF9wYXJhbXMpOwogIH0KICB1bnNldCgkZXBhcmFtc1snc3VibWl0J10pOwogICRtZXNzYWdlID0gJHRtcDsKICAkZXJyb3IgICA9IDE7Cn0KCi8vaWYoICFpc3NldCggJGVwYXJhbXNbJ2dyb3VwJ10gKSApCi8vewovLyAgICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQovLyAgICAvLyBidXQgYXQgbGVhc3QgdGhlIGFkbWluIHdpbGwgYmUgYWJsZSB0byBmaWd1cmUgaXQgb3V0Ci8vICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ25vIGdyb3VwIHBhcmFtZXRlciBzcGVjaWZpZWQgZm9yIHRoZSBzaWdudXAgYWN0aW9uJyk7Ci8vICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkZXBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwovLyAgICByZXR1cm47Ci8vfQoKLy8geWVwLCBhbGwgdGhlIG1vZHVsZXMgYXJlIGhlcmUsIG5vdyB3ZSBjb252ZXJ0IGEgc2luZ2xlIG5hbWUgdG8gYW4gaW50ZWdlciBpZAovLyBvciBhbiBhcnJheSBvZiBpbnRlZ2VyIGlkcy4uLiB0aGVuIHdlIHZhbGlkYXRlIHRoZW0uCiRncnBpZHMgPSByZWdfdXRpbHM6OmV4cGFuZF9ncm91cCgkZXBhcmFtc1snZ3JvdXAnXSk7Ci8vaWYoICFjb3VudCgkZ3JwaWRzKSApCi8vewovLyAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJGVwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vdmFsaWRncm91cHMnKSk7Ci8vICAgIHJldHVybjsKLy99CgovLyBub3cgd2UgaGF2ZSBncm91cCBpZHMuLi4gaGF2ZSB0byBnZXQgYSBsaXN0IG9mIHRoZSBwcm9wZXJ0aWVzLCBhbmQgcHJvcGVydHkgZGVmaW5pdGlvbnMuCiR0bXAgICA9ICRwcm9wZXJ0aWVzID0gW107CiRkZWZucyA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm5zKCk7Cgpmb3JlYWNoKCRncnBpZHMgYXMgJGdpZCkKewogICRncmVsbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ2lkKTsKICBpZihjb3VudCgkZ3JlbG5zKSA9PSAyICYmICRncmVsbnNbMF0gPT09IEZBTFNFKQogIHsKICAgIGNvbnRpbnVlOwogIH0KICAkdG1wID0gUlJVdGlsczo6YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCgkdG1wLCAkZ3JlbG5zKTsKICB1YXNvcnQoJHRtcCwgJ3h0X2FycmF5Ojpjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKTsKfQoKZm9yZWFjaCgkdG1wIGFzICRvbmUpCnsKICAkbmFtZSA9ICRvbmVbJ25hbWUnXTsKICBpZighaXNzZXQoJGRlZm5zWyRuYW1lXSkpCiAgewogICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKICB9CiAgJG9uZSAgICAgICAgICAgICAgICAgICAgICA9IGFycmF5X21lcmdlKCRvbmUsICRkZWZuc1skbmFtZV0pOwogICRwcm9wZXJ0aWVzWyRvbmVbJ25hbWUnXV0gPSAkb25lOwp9Cgp1bnNldCgkdG1wKTsKCgovLwovLyBoYW5kbGUgc3VibWl0Ci8vCmNsYXNzIE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBcUnVudGltZUV4Y2VwdGlvbgp7Cn0KCmlmKGlzc2V0KCRlcGFyYW1zWydzdWJtaXQnXSkpCnsKICB0cnkKICB7CiAgICBpZighXHh0X3V0aWxzOjp2YWxpZF9mb3JtX2NzcmYoKSkKICAgIHsKICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9zZWN1cml0eScpKTsKICAgIH0KICAgIAogICAgLy8gZm9yIGZpZWxkIHR5cGVzIHRoYXQgaGF2ZSB0byBiZSAnYnVpbHQnIHdlIGRvIHRoYXQgZmlyc3QsIHNvIHdlIGRvbid0IGxvc2UgdGhlaXIgZGF0YQogICAgLy8gaWYgYW5vdGhlciBlcnJvciBvY2N1cnMuCiAgICBmb3JlYWNoKCRwcm9wZXJ0aWVzIGFzICRwcm9wbmFtZSA9PiAkcHJvcCkKICAgIHsKICAgICAgJGRlZm4gICAgID0gJGRlZm5zWyRwcm9wbmFtZV07CiAgICAgICR0eXBlICAgICA9ICRkZWZuWyd0eXBlJ107CiAgICAgICRyZXF1aXJlZCA9ICgkcHJvcFsncmVxdWlyZWQnXSA9PSAyKTsKICAgICAgJHZhbCAgICAgID0gXHh0X3V0aWxzOjpnZXRfcGFyYW0oJGVwYXJhbXMsICdpbnB1dF8nIC4gJHByb3BuYW1lKTsKICAgICAgCiAgICAgIHN3aXRjaCgkdHlwZSkKICAgICAgewogICAgICAgIGNhc2UgNTogLy8gbXVsdGlzZWxlY3QKICAgICAgICAgIGlmKCRyZXF1aXJlZCAmJiAhJHZhbCkKICAgICAgICAgIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJGRlZm5bJ3Byb21wdCddKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZigkdmFsKQogICAgICAgICAgewogICAgICAgICAgICAkdmFsID0gJGVwYXJhbXNbJ2lucHV0XycgLiAkcHJvcG5hbWVdID0gaW1wbG9kZSgnLCcsICR2YWwpOwogICAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICAgIAogICAgICAgIGNhc2UgODogLy8gZGF0ZQogICAgICAgICAgaWYoJHJlcXVpcmVkICYmICFpc3NldCgkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCddKSkKICAgICAgICAgIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJGRlZm5bJ3Byb21wdCddKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZihpc3NldCgkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdNb250aCddKSkKICAgICAgICAgIHsKICAgICAgICAgICAgJHZhbCA9ICRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lXSA9CiAgICAgICAgICAgICAgbWt0aW1lKAogICAgICAgICAgICAgICAgMCwgMCwgMCwKICAgICAgICAgICAgICAgIFx4dF9wYXJhbTo6Z2V0X2ludCgkZXBhcmFtcywgJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnTW9udGgnKSwKICAgICAgICAgICAgICAgIFx4dF9wYXJhbTo6Z2V0X2ludCgkZXBhcmFtcywgJ2lucHV0XycgLiAkcHJvcG5hbWUgLiAnRGF5JyksCiAgICAgICAgICAgICAgICBceHRfcGFyYW06OmdldF9pbnQoJGVwYXJhbXMsICdpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ1llYXInKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIHVuc2V0KCRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ01vbnRoJ10pOwogICAgICAgICAgICB1bnNldCgkZXBhcmFtc1snaW5wdXRfJyAuICRwcm9wbmFtZSAuICdEYXknXSk7CiAgICAgICAgICAgIHVuc2V0KCRlcGFyYW1zWydpbnB1dF8nIC4gJHByb3BuYW1lIC4gJ1llYXInXSk7CiAgICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gYXR0ZW1wdCB0byByZWdpc3RlciB0byBhbiBhYnNvbHV0ZWx5IHZlcmJvdGVuIGdyb3VwCiAgICAkdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJyk7CiAgICBpZigkdG1wKQogICAgewogICAgICAkdmVyYm90ZW4gPSBleHBsb2RlKCcsJywgJHRtcCk7CiAgICAgICR0bXAgICAgICA9IGFycmF5X2ludGVyc2VjdCgkZ3JwaWRzLCAkdmVyYm90ZW4pOwogICAgICAKICAgICAgaWYoY291bnQoJHRtcCkpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vcmVnaXN0ZXInKSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gZ2V0IHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQKICAgICR1c2VybmFtZV8xID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF91c2VybmFtZScpKTsKICAgICR1c2VybmFtZV8yID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF91c2VybmFtZV9hZ2FpbicpKTsKICAgICRwYXNzd29yZF8xID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF9wYXNzd29yZCcpKTsKICAgICRwYXNzd29yZF8yID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShceHRfcGFyYW06OmdldF9zdHJpbmcoJGVwYXJhbXMsICdpbnB1dF9yZXBlYXRwYXNzd29yZCcpKTsKICAgIAogICAgaWYoISR1c2VybmFtZV8xKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oCiAgICAgICAgKCR1c2VybmFtZV9pc19lbWFpbCkgPyAkdGhpcy0+TGFuZygnZXJyb3JfZW1wdHllbWFpbCcpIDogJHRoaXMtPkxhbmcoJ2Vycm9yX2VtcHR5dXNlcm5hbWUnKQogICAgICApOwogICAgfQogICAgCiAgICAvLyBjaGVjayB0aGUgcGFzc3dvcmRzCiAgICBpZighJHBhc3N3b3JkXzEpCiAgICB7CiAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhc3N3b3JkJykpOwogICAgfQogICAgaWYoISRtYW1zLT5Jc1ZhbGlkUGFzc3dvcmQoJHBhc3N3b3JkXzEpKQogICAgewogICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKICAgIH0KICAgIGlmKCRwYXNzd29yZF8xICE9ICRwYXNzd29yZF8yKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3Bhc3N3b3Jkc2RvbnRtYXRjaCcpKTsKICAgIH0KICAgIAogICAgLy8gZ2V0IGFuIGVtYWlsIGZpZWxkLCBzbyB0aGF0IHdlIGNhbiBkbyBzb21lIGVtYWlsaW5nCiAgICAkZW1haWxfZmllbGQgPSBOVUxMOwogICAgCiAgICBpZigkdXNlcm5hbWVfaXNfZW1haWwpCiAgICB7CiAgICAgICRlbWFpbF9maWVsZCA9ICdpbnB1dF91c2VybmFtZSc7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIGZvcmVhY2goJHByb3BlcnRpZXMgYXMgJHByb3BuYW1lID0+ICRkZWZuKQogICAgICB7CiAgICAgICAgaWYoJGRlZm5bJ3R5cGUnXSA9PSAyKQogICAgICAgIHsKICAgICAgICAgICRlbWFpbF9maWVsZCA9ICdpbnB1dF8nIC4gJHByb3BuYW1lOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICAKICAgIGlmKCEkZW1haWxfZmllbGQpCiAgICB7CiAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX25vZW1haWxhZGRyZXNzJykpOwogICAgfQogICAgJGVtYWlsID0gXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRlcGFyYW1zLCAkZW1haWxfZmllbGQpOwogICAgJHJlcyAgID0gJG1hbXMtPklzVmFsaWRFbWFpbEFkZHJlc3MoJGVtYWlsLCAtMSwgRkFMU0UpOwogICAgaWYoIWlzX2FycmF5KCRyZXMpIHx8ICRyZXNbMF0gPT0gRkFMU0UpCiAgICB7CiAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGVtYWlsJykpOwogICAgfQogICAgJGVwYXJhbXNbJ3VzZV9lbWFpbCddID0gJGVtYWlsOyAgLy8gdGhpcyBpcyB1c2VkIGJ5IHRoZSByZWd1c2VyIGFjdGlvbgogICAgCiAgICAvLyBjaGVjayB0aGUgcmVwZWF0ZWQgZW1haWwgZmllbGQuCiAgICBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScpKQogICAgewogICAgICBpZighaXNzZXQoJGVwYXJhbXNbJGVtYWlsX2ZpZWxkIC4gJ19hZ2FpbiddKSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm9zZWNvbmRlbWFpbGFkZHJlc3MnKSk7CiAgICAgIH0KICAgICAgaWYoJGVwYXJhbXNbJGVtYWlsX2ZpZWxkXSAhPSAkZXBhcmFtc1skZW1haWxfZmllbGQgLiAnX2FnYWluJ10pCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2VtYWlsZG9lc25vdG1hdGNoJykpOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGNoZWNrIHRoZSBjYXB0Y2hhCiAgICBpZighJG5vY2FwdGNoYSkKICAgIHsKICAgICAgJGNhcHRjaGEgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDYXB0Y2hhJyk7CiAgICAgIGlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRlcGFyYW1zLCAnaW5wdXRfY2FwdGNoYScpKSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY2FwdGNoYW1pc21hdGNoJykpOwogICAgICB9CiAgICB9CiAgICAKICAgICRvdmVyd3JpdGVfdWlkID0gTlVMTDsKICAgIGlmKCRyZWdfYWRkaXRpb25hbGdyb3VwcyAmJiAkYWxsb3dfb3ZlcndyaXRlKQogICAgewogICAgICAvLyBhbGxvdyByZWdpc3RyYXRpb24gdG8gYWRkaXRpb25hbCBncm91cHMKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHVzZXIgaXMgY3VycmVudGx5IGxvZ2dlZCBpbi4KICAgICAgJG1hbXNfdWlkID0gJG1hbXMtPkxvZ2dlZEluSWQoKTsKICAgICAgaWYoJG1hbXNfdWlkIDwgMSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWRkaXRpb25hbGdyb3Vwc19ub3Rsb2dnZWRpbicpKTsKICAgICAgfQogICAgICAKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHVzZXJuYW1lIGhlIGVudGVyZWQgbWF0Y2hlcyB0aGUgb25lIG9uIGZpbGUuCiAgICAgICRxdWVyeSA9IG5ldyBmZXVfdXNlcl9xdWVyeSgpOwogICAgICAkcXVlcnktPnNldF9wYWdlbGltaXQoMSk7CiAgICAgICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTElTVCwgJG1hbXNfdWlkKTsKICAgICAgJHJzICA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICAkY250ID0gJHJzLT5nZXRfZm91bmRfcm93cygpOwogICAgICBpZigkY250ID09IDEpCiAgICAgIHsKICAgICAgICAvLyBvbmx5IG9uZSBtYXRjaCBmb3VuZC4KICAgICAgICAkZGF0YSA9ICRycy0+ZmllbGRzOwogICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSB1c2VybmFtZSB3ZSBhcmUgbG9nZ2VkIGluIGFzLCBtYXRjaGVzIHRoaXMgZm9ybSBzdWJtaXNzaW9uLgogICAgICAgIGlmKCRkYXRhWyd1c2VybmFtZSddICE9ICR1c2VybmFtZV8xKQogICAgICAgIHsKICAgICAgICAgIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5hbWVtaXNtYXRjaCcpKTsKICAgICAgICB9CiAgICAgICAgJG92ZXJ3cml0ZV91aWQgPSAkbWFtc191aWQ7CiAgICAgIH0KICAgIH0KICAgIAogICAgCiAgICAvLyBjaGVjayBpZiB0aGUgdXNlcm5hbWUgaXMgdGFrZW4KICAgIGlmKCEkb3ZlcndyaXRlX3VpZCkKICAgIHsKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhpcyB1c2VybmFtZSBpcyBub3QgYWxyZWFkeSB1c2VkIGluIHRoaXMgbW9kdWxlCiAgICAgIGlmKCR0aGlzLT5HZXRUZW1wVXNlcklEKCR1c2VybmFtZV8xKSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5hbWV0YWtlbl9uZWVkdmFsaWRhdGlvbicpKTsKICAgICAgfQogICAgICAKICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhpcyB1c2VybmFtZSBpcyBub3QgYWxyZWFkeSB1c2VkIGluIEZFVQogICAgICBpZigkbWFtcy0+R2V0VXNlcklEKCR1c2VybmFtZV8xKSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5hbWV0YWtlbicpKTsKICAgICAgfQogICAgfQogICAgCiAgICAvLyBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHVzZXJuYW1lLi4uCiAgICBpZighJG1hbXMtPklzVmFsaWRVc2VybmFtZSgkdXNlcm5hbWVfMSwgKCRvdmVyd3JpdGVfdWlkIDwgMSkgPyBUUlVFIDogRkFMU0UpKQogICAgewogICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoCiAgICAgICAgJHVzZXJuYW1lX2lzX2VtYWlsID8gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRlbWFpbCcpIDogJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1c2VybmFtZScpCiAgICAgICk7CiAgICB9CiAgICAKICAgIC8vIHZhbGlkYXRlIHRoZSBpbmRpdmlkdWFsIGZpZWxkcy4KICAgICRtYXRjaGZpZWxkc19zdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbGdyb3Vwc19tYXRjaGZpZWxkcycsICcnKTsKICAgIAogICAgCiAgICAkbWF0Y2hmaWVsZHMgPSBleHBsb2RlKCc6OicsICRtYXRjaGZpZWxkc19zdHIpOwogICAgZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcG5hbWUgPT4gJHByb3ApCiAgICB7CiAgICAgICRkZWZuICAgICAgICAgPSAkZGVmbnNbJHByb3BuYW1lXTsKICAgICAgJHR5cGUgICAgICAgICA9ICRkZWZuWyd0eXBlJ107CiAgICAgICRyZXF1aXJlZCAgICAgPSAoJHByb3BbJ3JlcXVpcmVkJ10gPT0gMik7CiAgICAgICRmb3JjZV91bmlxdWUgPSAkZGVmblsnZm9yY2VfdW5pcXVlJ107CiAgICAgICR2YWwgICAgICAgICAgPSBceHRfdXRpbHM6OmdldF9wYXJhbSgkZXBhcmFtcywgJ2lucHV0XycgLiAkcHJvcG5hbWUpOwogICAgICAKICAgICAgaWYoJHJlcXVpcmVkICYmICEkdmFsKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywgJGRlZm5bJ3Byb21wdCddKSk7CiAgICAgIH0KICAgICAgCiAgICAgIHN3aXRjaCgkdHlwZSkKICAgICAgewogICAgICAgIGNhc2UgMjogLy8gZW1haWwKICAgICAgICAgIGlmKCR2YWwpCiAgICAgICAgICB7CiAgICAgICAgICAgICR0bXAgPSAkbWFtcy0+SXNWYWxpZEVtYWlsQWRkcmVzcygkdmFsKTsKICAgICAgICAgICAgaWYoISR0bXBbMF0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRtcFsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgfQogICAgICAKICAgICAgaWYoJGZvcmNlX3VuaXF1ZSAmJiAoISRhbGxvd19vdmVyd3JpdGUgfHwgIWluX2FycmF5KCRwcm9wbmFtZSwgJG1hdGNoZmllbGRzKSkpCiAgICAgIHsKICAgICAgICBpZigkdmFsICYmICEkbWFtcy0+SXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSgtMSwgJHByb3BuYW1lLCAkdmFsKSkKICAgICAgICB7CiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VuaXF1ZWZpZWxkJywgJGRlZm5bJ3Byb21wdCddKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICAKICAgIGlmKCgkZmxhZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfd2hpdGVsaXN0JykpKQogICAgewogICAgICAvLyB0aGlzIGNvdWxkIGdvIGludG8gYSBob29rIGhhbmRsZXIKICAgICAgJG1hdGNoZWQgPSBGQUxTRTsKICAgICAgJGxpc3QgICAgPSBwcmVnX3NwbGl0KCIvKChccig/IVxuKSl8KCg/PCFccilcbil8KFxyXG4pKS8iLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2hpdGVsaXN0JywgJycpKTsKICAgICAgaWYoY291bnQoJGxpc3QpKQogICAgICB7CiAgICAgICAgZm9yZWFjaCgkbGlzdCBhcyAkb25lX2xpbmUpCiAgICAgICAgewogICAgICAgICAgJHJlZ2V4ID0gJy9eJyAuIHN0cl9yZXBsYWNlKCJAIiwgIlxAIiwgc3RyX3JlcGxhY2UoIlwqIiwgIi4qIiwgcHJlZ19xdW90ZSgkb25lX2xpbmUpKSkgLiAnJC8nOwogICAgICAgICAgaWYocHJlZ19tYXRjaCgkcmVnZXgsICR1c2VybmFtZV8xKSA+IDApCiAgICAgICAgICB7CiAgICAgICAgICAgICRtYXRjaGVkID0gVFJVRTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZigoJGZsYWcgPT0gJ2V4Y2x1ZGUnICYmICRtYXRjaGVkKSB8fCAoJGZsYWcgPT0gJ2luY2x1ZGUnICYmICEkbWF0Y2hlZCkpCiAgICAgIHsKICAgICAgICAvLyBAdG9kbzogdXNlIGxhbmcgc3RyaW5nIGFuZCBnZXQgcmlkIG9mIHRoaXMgcHJlZmVyZW5jZS4KICAgICAgICB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnLCAnV2hpdGVsaXN0IE1hdGNoZWQnKSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gb25lIGZ1cnRoZXIgZXZlbnQKICAgICRwYXNzICAgID0gVFJVRTsKICAgICRtZXNzYWdlID0gTlVMTDsKICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygKICAgICAgJ01BTVNSZWdpc3RyYXRpb246OmJlZm9yZU5ld1VzZXInLAogICAgICBbCiAgICAgICAgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWVfMSwgJ2VtYWlsJyA9PiAkZW1haWwsICdwYXNzd29yZCcgPT4gJHBhc3N3b3JkXzEsICdwYXNzJyA9PiAmJHBhc3MsCiAgICAgICAgJ21lc3NhZ2UnICA9PiAmJG1lc3NhZ2UKICAgICAgXQogICAgKTsKICAgIAogICAgJHBhc3MgPSBcY21zX3RvX2Jvb2woJHBhc3MpOwogICAgCiAgICBpZighJHBhc3MpCiAgICB7CiAgICAgIGlmKCEkbWVzc2FnZSkKICAgICAgewogICAgICAgICRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3ZhbGlkYXRpb25fb3RoZXInKTsKICAgICAgfQogICAgICB0aHJvdyBuZXcgTUFNU1JFR1ZhbGlkYXRpb25FcnJvcigkbWVzc2FnZSk7CiAgICB9CiAgICAKICAgIC8vCiAgICAvLyBkb25lIGFsbCB2YWxpZGF0aW9uCiAgICAvLwogICAgJGVwYXJhbXNbJ292ZXJ3cml0ZV91aWQnXSA9ICRvdmVyd3JpdGVfdWlkOwogICAgJHRoaXMtPnNlc3Npb25fcHV0KCdzaWdudXAnLCAkZXBhcmFtcyk7IC8vIHNhdmUgdGhlIGRhdGEgaW5jYXNlIG9mIGVycm9yLgogICAgJHRoaXMtPnJlZGlyZWN0KCdjbnRudDAxJywgJ3JlZ3VzZXInLCAkcmV0dXJuaWQpOwogIH0KICBjYXRjaChcTUFNU1JFR1ZhbGlkYXRpb25FcnJvciAkZSkKICB7CiAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJ1NpZ251cCBWYWxpZGF0aW9uIEVycm9yOiAnIC4gJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkZXJyb3IgICA9IDE7CiAgICAkbWVzc2FnZSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgfQogIGNhdGNoKFxFeGNlcHRpb24gJGUpCiAgewogICAgJGVycm9yICAgPSAxOwogICAgJG1lc3NhZ2UgPSAkZS0+R2V0TWVzc2FnZSgpOwogIH0KfQoKLy8KLy8gc2hvdyBzb21ldGhpbmcgdG8gdGhlIHVzZXIKLy8KCi8vIG5vdyB3ZSdyZSByZWFkeSB0byBwb3B1bGF0ZSB0aGUgdGVtcGxhdGUKLy8gZmlyc3Qgd2UgcHV0IGluIHN0dWZmIHRoYXQgaXMgcmVxdWlyZWQgKHVzZXJuYW1lLCBwYXNzd29yZCwgZXRjLCBldGMpCiRyb3dhcnJheSA9IFtdOwoKLy8gbWFrZSBzdXJlIHVzZXJuYW1lIGlzIGluIHRoZXJlCiRvbmVyb3cgICAgICAgICAgICAgICAgICA9IG5ldyBTdGRDbGFzcygpOwokb25lcm93LT5jb2xvciAgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywgJyonKTsKJG9uZXJvdy0+cmVxdWlyZWQgICAgICAgID0gMTsKJHZhbCAgICAgICAgICAgICAgICAgICAgID0gKGlzc2V0KCRlcGFyYW1zWydpbnB1dF91c2VybmFtZSddKSkgPyAkZXBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSA6ICcnOwokb25lcm93LT5wcm9tcHQgICAgICAgICAgPSAkbWFtcy0+R2V0VXNlcm5hbWVQcm9tcHQoKTsKJG9uZXJvdy0+bmFtZSAgICAgICAgICAgID0gJ3VzZXJuYW1lJzsKJG9uZXJvdy0+aW5wdXRfbmFtZSAgICAgID0gJGlkIC4gJ21yX2lucHV0X3VzZXJuYW1lJzsKJG9uZXJvdy0+dHlwZSAgICAgICAgICAgID0gKCR1c2VybmFtZV9pc19lbWFpbCkgPyAnZW1haWwnIDogJ3RleHQnOwokb25lcm93LT5sYWJlbGZvciAgICAgICAgPSAkaWQgLiAndXNlcm5hbWUnOwokb25lcm93LT5zaXplICAgICAgICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKTsKJG9uZXJvdy0+bWF4bGVuZ3RoICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpOwokb25lcm93LT5yZWFkb25seSAgICAgICAgPSBGQUxTRTsKJG9uZXJvdy0+dmFsICAgICAgICAgICAgID0gJHZhbDsKJG9uZXJvdy0+Y29udHJvbCAgICAgICAgID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgKICAkaWQsICdtcl9pbnB1dF91c2VybmFtZScsICR2YWwsCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJyksCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpCik7CiRyb3dhcnJheVskb25lcm93LT5uYW1lXSA9ICRvbmVyb3c7CgppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScpICYmICR1c2VybmFtZV9pc19lbWFpbCkKewogIC8vIGFkZCBpdCBhZ2FpbgogICRvbmVyb3cgICAgICAgICAgID0gbmV3IFN0ZENsYXNzKCk7CiAgJG9uZXJvdy0+Y29sb3IgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwogICRvbmVyb3ctPm1hcmtlciAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiAgJG9uZXJvdy0+cmVxdWlyZWQgPSAxOwogICR2YWwgICAgICAgICAgICAgID0gKGlzc2V0KCRlcGFyYW1zWydpbnB1dF91c2VybmFtZV9hZ2FpbiddKSkgPyAkZXBhcmFtc1snaW5wdXRfdXNlcm5hbWVfYWdhaW4nXSA6ICcnOwogIAogIGlmKCRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKQogIHsKICAgICRvbmVyb3ctPnByb21wdCA9ICR0aGlzLT5MYW5nKCdlbWFpbCcpOwogIH0KICBlbHNlCiAgewogICAgJG9uZXJvdy0+cHJvbXB0ID0gJHRoaXMtPkxhbmcoJ3VzZXJuYW1lJyk7CiAgfQogICRvbmVyb3ctPnByb21wdCAgICAgICAgICAuPSAnICgnIC4gJHRoaXMtPkxhbmcoJ2FnYWluJykgLiAnKSc7CiAgJG9uZXJvdy0+bmFtZSAgICAgICAgICAgID0gJ3VzZXJuYW1lX2FnYWluJzsKICAkb25lcm93LT5sYWJlbGZvciAgICAgICAgPSAkaWQgLiAndXNlcm5hbWVfYWdhaW4nOwogICRvbmVyb3ctPmlucHV0X25hbWUgICAgICA9ICRpZCAuICdtcl9pbnB1dF91c2VybmFtZV9hZ2Fpbic7CiAgJG9uZXJvdy0+dHlwZSAgICAgICAgICAgID0gKCR1c2VybmFtZV9pc19lbWFpbCkgPyAnZW1haWwnIDogJ3RleHQnOwogICRvbmVyb3ctPnNpemUgICAgICAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpOwogICRvbmVyb3ctPm1heGxlbmd0aCAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKTsKICAkb25lcm93LT5yZWFkb25seSAgICAgICAgPSBGQUxTRTsKICAkb25lcm93LT52YWwgICAgICAgICAgICAgPSAkdmFsOwogICRvbmVyb3ctPmNvbnRyb2wgICAgICAgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgICAkaWQsICdtcl9pbnB1dF91c2VybmFtZV9hZ2FpbicsICR2YWwsCiAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSwKICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKQogICk7CiAgJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKfQoKCi8vIGFuZCBwYXNzd29yZAokb25lcm93ICAgICAgICAgICAgICAgICAgPSBuZXcgU3RkQ2xhc3MoKTsKJG9uZXJvdy0+Y29sb3IgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKJG9uZXJvdy0+bWFya2VyICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkICAgICAgICA9IDE7CiR2YWwgICAgICAgICAgICAgICAgICAgICA9IChpc3NldCgkZXBhcmFtc1snaW5wdXRfcGFzc3dvcmQnXSkpID8gJGVwYXJhbXNbJ2lucHV0X3Bhc3N3b3JkJ10gOiAnJzsKJG9uZXJvdy0+cHJvbXB0ICAgICAgICAgID0gJHRoaXMtPkxhbmcoJ3Bhc3N3b3JkJyk7CiRvbmVyb3ctPm5hbWUgICAgICAgICAgICA9ICdwYXNzd29yZCc7CiRvbmVyb3ctPmxhYmVsZm9yICAgICAgICA9ICRpZCAuICdwYXNzd29yZCc7CiRvbmVyb3ctPmlucHV0X25hbWUgICAgICA9ICRpZCAuICdtcl9pbnB1dF9wYXNzd29yZCc7CiRvbmVyb3ctPnR5cGUgICAgICAgICAgICA9ICdwYXNzd29yZCc7CiRvbmVyb3ctPnNpemUgICAgICAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpOwokb25lcm93LT5tYXhsZW5ndGggICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJyk7CiRvbmVyb3ctPnJlYWRvbmx5ICAgICAgICA9IEZBTFNFOwokb25lcm93LT52YWwgICAgICAgICAgICAgPSAkdmFsOwokb25lcm93LT5jb250cm9sICAgICAgICAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgKICAkaWQsICdtcl9pbnB1dF9wYXNzd29yZCcsICR2YWwsCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpCik7CiRyb3dhcnJheVskb25lcm93LT5uYW1lXSA9ICRvbmVyb3c7CgovLyBhbmQgbWFrZSBoaW0gcmVwZWF0IHRoZSBwYXNzd29yZAokb25lcm93ICAgICAgICAgICAgICAgICAgPSBuZXcgU3RkQ2xhc3MoKTsKJG9uZXJvdy0+Y29sb3IgICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywgJ2JsdWUnKTsKJG9uZXJvdy0+bWFya2VyICAgICAgICAgID0gJG1hbXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsICcqJyk7CiRvbmVyb3ctPnJlcXVpcmVkICAgICAgICA9IDE7CiR2YWwgICAgICAgICAgICAgICAgICAgICA9IChpc3NldCgkZXBhcmFtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSkpID8gJGVwYXJhbXNbJ2lucHV0X3JlcGVhdHBhc3N3b3JkJ10gOiAnJzsKJG9uZXJvdy0+cHJvbXB0ICAgICAgICAgID0gJHRoaXMtPkxhbmcoJ3JlcGVhdHBhc3N3b3JkJyk7CiRvbmVyb3ctPm5hbWUgICAgICAgICAgICA9ICdyZXBlYXRwYXNzd29yZCc7CiRvbmVyb3ctPmxhYmVsZm9yICAgICAgICA9ICRpZCAuICdyZXBlYXRwYXNzd29yZCc7CiRvbmVyb3ctPmlucHV0X25hbWUgICAgICA9ICRpZCAuICdtcl9pbnB1dF9yZXBlYXRwYXNzd29yZCc7CiRvbmVyb3ctPnR5cGUgICAgICAgICAgICA9ICdwYXNzd29yZCc7CiRvbmVyb3ctPnNpemUgICAgICAgICAgICA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpOwokb25lcm93LT5tYXhsZW5ndGggICAgICAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJyk7CiRvbmVyb3ctPnJlYWRvbmx5ICAgICAgICA9IEZBTFNFOwokb25lcm93LT52YWwgICAgICAgICAgICAgPSAkdmFsOwokb25lcm93LT5jb250cm9sICAgICAgICAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRQYXNzd29yZCgKICAkaWQsICdtcl9pbnB1dF9yZXBlYXRwYXNzd29yZCcsICR2YWwsCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpCik7CiRyb3dhcnJheVskb25lcm93LT5uYW1lXSA9ICRvbmVyb3c7CgokcmVsYXRpb25zMiAgICAgID0gW107CiRkb25lX2VtYWlsX3JlcWQgPSBGQUxTRTsKZm9yZWFjaCgkcHJvcGVydGllcyBhcyAkcHJvcG5hbWUgPT4gJHJlbG4pCnsKICBpZigkcmVsblsndHlwZSddID09IDYgfHwgJHJlbG5bJ3R5cGUnXSA9PSA5KQogIHsKICAgIC8vIGltYWdlcyBhbmQgZGF0YSBmaWVsZHMgYXJlIGlnbm9yZWQuIHVzZXIgY2FuIGZpbGwgdGhlbSBpbiBhZnRlciByZWdpc3RyYXRpb24KICAgIGNvbnRpbnVlOwogIH0KICBpZigkcmVsblsncmVxdWlyZWQnXSA9PSAzKQogIHsKICAgIGNvbnRpbnVlOwogIH0gLy8gaWdub3JlIGhpZGRlbiBmaWVsZHMuCiAgCiAgaWYoJHJlbG5bJ3R5cGUnXSA9PSAyICYmICEkZG9uZV9lbWFpbF9yZXFkKQogIHsKICAgIC8vIGVtYWlsCiAgICAkZG9uZV9lbWFpbF9yZXFkID0gVFJVRTsKICAgIGlmKCEkdXNlcm5hbWVfaXNfZW1haWwpCiAgICB7CiAgICAgIC8vIGdvdHRhIGhhdmUgYW4gZW1haWwgYWRkcmVzcywgZm9yY2UgaXQgdG8gYmUgcmVxdWlyZWQuCiAgICAgICRyZWxuWydyZXF1aXJlZCddID0gMjsKICAgIH0KICAgICRyZWxhdGlvbnMyW10gPSAkcmVsbjsKICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2ZvcmNlX2VtYWlsX3R3aWNlJykpCiAgICB7CiAgICAgICRyZWxuWydtYXB0byddID0gJHJlbG5bJ25hbWUnXTsKICAgICAgJHJlbG5bJ25hbWUnXSAgPSAkcmVsblsnbmFtZSddIC4gJ19hZ2Fpbic7CiAgICAgICRyZWxhdGlvbnMyW10gID0gJHJlbG47CiAgICB9CiAgICBjb250aW51ZTsKICB9CiAgZWxzZQogIHsKICAgICRyZWxhdGlvbnMyW10gPSAkcmVsbjsKICB9Cn0KCi8vIGNvbnZlcnQgcmVsYXRpb25zIHRvIHByb3BlcnRpZXMuCmZvcmVhY2goJHJlbGF0aW9uczIgYXMgJHJlbG4pCnsKICAvLyBnZXQgdGhlIHByb3BlcnR5IGRlZmluaXRpb24KICAkZGVmbiA9IE5VTEw7CiAgaWYoaXNzZXQoJHJlbG5bJ21hcHRvJ10pKQogIHsKICAgICRkZWZuID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbigkcmVsblsnbWFwdG8nXSk7CiAgfQogIGVsc2UKICB7CiAgICAkZGVmbiA9ICRtYW1zLT5HZXRQcm9wZXJ0eURlZm4oJHJlbG5bJ25hbWUnXSk7CiAgfQogICRhdHRyaWJzID0gTlVMTDsKICBpZihpc3NldCgkZGVmblsnYXR0cmlicyddKSAmJiAkZGVmblsnYXR0cmlicyddKQogIHsKICAgICRhdHRyaWJzID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CiAgfQogIAogICRjb2xvciAgPSAnJzsKICAkbWFya2VyID0gJyc7CiAgaWYoJGRlZm5bJ2VuY3J5cHQnXSkKICB7CiAgICAkY29sb3IgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9jb2xvcicsICd5ZWxsb3cnKTsKICAgICRtYXJrZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VjdXJlX2ZpZWxkX21hcmtlcicsICdeXicpOwogIH0KICBpZigkcmVsblsncmVxdWlyZWQnXSA9PSAyKQogIHsKICAgICRjb2xvciAgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwogICAgJG1hcmtlciA9ICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCAnKicpOwogIH0KICAkb25lcm93ICAgICAgICAgICAgID0gbmV3IFN0ZENsYXNzKCk7CiAgJG9uZXJvdy0+cmVxdWlyZWQgICA9ICgkcmVsblsncmVxdWlyZWQnXSA9PSAyKTsKICAkb25lcm93LT5jb2xvciAgICAgID0gJGNvbG9yOwogICRvbmVyb3ctPm1hcmtlciAgICAgPSAkbWFya2VyOwogICRvbmVyb3ctPnByb21wdCAgICAgPSAkcmVsblsncHJvbXB0J107CiAgJG9uZXJvdy0+bmFtZSAgICAgICA9ICRyZWxuWyduYW1lJ107CiAgJG9uZXJvdy0+bGFiZWxmb3IgICA9ICRpZCAuICRyZWxuWyduYW1lJ107CiAgJG9uZXJvdy0+cmVhZG9ubHkgICA9ICgkcmVsblsncmVxdWlyZWQnXSA9PSA0KTsKICAkb25lcm93LT5pbnB1dF9uYW1lID0gJGlkIC4gJ21yX2lucHV0XycgLiAkcmVsblsnbmFtZSddOwogIAogICR2YWwgPSBOVUxMOwogIC8vIGRlZmF1bHQgdmFsdWVzIGZvciBmaWVsZHMuLi4KICBzd2l0Y2goJGRlZm5bJ3R5cGUnXSkKICB7CiAgICBjYXNlIDE6CiAgICAgIGlmKGlzc2V0KCRhdHRyaWJzWydjaGVja2VkJ10pKQogICAgICB7CiAgICAgICAgJHZhbCA9ICRhdHRyaWJzWydjaGVja2VkJ107CiAgICAgIH0KICAgIGJyZWFrOwogIH0KICAkdmFsICAgICAgICAgPSBpc3NldCgkZXBhcmFtc1snaW5wdXRfJyAuICRyZWxuWyduYW1lJ11dKSA/ICRlcGFyYW1zWydpbnB1dF8nIC4gJHJlbG5bJ25hbWUnXV0gOiAkdmFsOwogICRvbmVyb3ctPnZhbCA9ICR2YWw7CiAgCiAgc3dpdGNoKCRkZWZuWyd0eXBlJ10pCiAgewogICAgY2FzZSAwOiAvLyB0ZXh0CiAgICAgICRvbmVyb3ctPnR5cGUgICAgICA9ICd0ZXh0JzsKICAgICAgJG9uZXJvdy0+c2l6ZSAgICAgID0gJGRlZm5bJ2xlbmd0aCddOwogICAgICAkb25lcm93LT5tYXhsZW5ndGggPSAkZGVmblsnbWF4bGVuZ3RoJ107CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgICAgICAgJGlkLCAnbXJfaW5wdXRfJyAuICRyZWxuWyduYW1lJ10sCiAgICAgICAgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAkZGVmblsnbWF4bGVuZ3RoJ10KICAgICAgKTsKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAgICRvbmVyb3ctPnR5cGUgICAgPSAnY2hlY2tib3gnOwogICAgICAkb25lcm93LT5jb250cm9sID0gTUFNU1V0aWxzOjpteUNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnbXJfaW5wdXRfJyAuICRyZWxuWyduYW1lJ10sIDEsICR2YWwpOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgMjogLy8gZW1haWwKICAgICAgJG9uZXJvdy0+dHlwZSAgICAgID0gJ2VtYWlsJzsKICAgICAgJG9uZXJvdy0+c2l6ZSAgICAgID0gJGRlZm5bJ2xlbmd0aCddOwogICAgICAkb25lcm93LT5tYXhsZW5ndGggPSAkZGVmblsnbWF4bGVuZ3RoJ107CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgICA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoCiAgICAgICAgJGlkLCAnbXJfaW5wdXRfJyAuICRyZWxuWyduYW1lJ10sCiAgICAgICAgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAoJGRlZm5bJ21heGxlbmd0aCddKQogICAgICApOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgMzogLy8gdGV4dGFyZWEKICAgICAgJG9uZXJvdy0+dHlwZSAgICAgID0gJ3RleHRhcmVhJzsKICAgICAgJG9uZXJvdy0+bWF4bGVuZ3RoID0gaXNzZXQoJGRlZm5bJ21heGxlbmd0aCddKSA/ICRkZWZuWydtYXhsZW5ndGgnXSA6IE5VTEw7CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgICA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYShGQUxTRSwgJGlkLCAkdmFsLCAnbXJfaW5wdXRfJyAuICRyZWxuWyduYW1lJ10pOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgICAgJG9uZXJvdy0+dHlwZSAgICA9ICdkcm9wZG93bic7CiAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRtYW1zLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sIDEpKTsKICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKAogICAgICAgICRpZCwgJ21yX2lucHV0XycgLiAkcmVsblsnbmFtZSddLAogICAgICAgICRtYW1zLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sIDEpLAogICAgICAgIC0xLCAkdmFsCiAgICAgICk7CiAgICBicmVhazsKICAgIAogICAgY2FzZSA1OiAvLyBtdWx0aXNlbGVjdAogICAgICAkb25lcm93LT50eXBlID0gJ211bHRpc2VsZWN0JzsKICAgICAgJHRtcCAgICAgICAgICA9ICRtYW1zLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sIDEpOwogICAgICBpZighaXNfYXJyYXkoJHZhbCkpCiAgICAgIHsKICAgICAgICAkdmFsID0gZXhwbG9kZSgnLCcsICR2YWwpOwogICAgICB9CiAgICAgICRvbmVyb3ctPm9wdGlvbnMgICAgPSBhcnJheV9mbGlwKCR0bXApOwogICAgICAkb25lcm93LT5pbnB1dF9uYW1lID0gJG9uZXJvdy0+aW5wdXRfbmFtZSAuICdbXSc7CiAgICAgICRvbmVyb3ctPnZhbCAgICAgICAgPSAkdmFsOwogICAgICAkb25lcm93LT5jb250cm9sICAgID0gJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgKICAgICAgICAkaWQsICdtcl9pbnB1dF8nIC4gJGRlZm5bJ25hbWUnXSAuICdbXScsICR0bXAsICR2YWwsIG1pbihjb3VudCgkdG1wKSwgNSkKICAgICAgKTsKICAgIGJyZWFrOwogICAgCiAgICBjYXNlIDc6IC8vIHJhZGlvIGJ1dHRvbnMKICAgICAgJG9uZXJvdy0+dHlwZSAgICA9ICdyYWRpb2dyb3VwJzsKICAgICAgJG9uZXJvdy0+b3B0aW9ucyA9IGFycmF5X2ZsaXAoJG1hbXMtPkdldFNlbGVjdE9wdGlvbnMoJGRlZm5bJ25hbWUnXSwgMSkpOwogICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgKICAgICAgICAkaWQsICdtcl9pbnB1dF8nIC4gJGRlZm5bJ25hbWUnXSwKICAgICAgICAkbWFtcy0+R2V0U2VsZWN0T3B0aW9ucygkZGVmblsnbmFtZSddLCAxKSwKICAgICAgICAkdmFsLCAnJywgJzxici8+JwogICAgICApOwogICAgYnJlYWs7CiAgICAKICAgIGNhc2UgODogLy8gZGF0ZSBmaWVsZAogICAgICAkb25lcm93LT50eXBlICAgID0gJ2RhdGUnOwogICAgICAkYXR0cmlicyAgICAgICAgID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CiAgICAgICRwYXJtcyAgICAgICAgICAgPSBbXTsKICAgICAgJHBhcm1zWydwcmVmaXgnXSA9ICRpZCAuICdtcl9pbnB1dF8nIC4gJGRlZm5bJ25hbWUnXTsKICAgICAgaWYoJHZhbCkKICAgICAgewogICAgICAgICRwYXJtc1sndGltZSddID0gJHZhbDsKICAgICAgfQogICAgICAkcGFybXNbJ3N0YXJ0X3llYXInXSA9IChpc3NldCgkYXR0cmlic1snc3RhcnR5ZWFyJ10pKSA/ICRhdHRyaWJzWydzdGFydHllYXInXSA6ICItNSI7CiAgICAgICRwYXJtc1snZW5kX3llYXInXSAgID0gKGlzc2V0KCRhdHRyaWJzWydlbmR5ZWFyJ10pKSA/ICRhdHRyaWJzWydlbmR5ZWFyJ10gOiAiKzEwIjsKICAgICAgJHN0ciAgICAgICAgICAgICAgICAgPSAne2h0bWxfc2VsZWN0X2RhdGUgJzsKICAgICAgZm9yZWFjaCgkcGFybXMgYXMgJGtleSA9PiAkdmFsdWUpCiAgICAgIHsKICAgICAgICAkc3RyIC49ICRrZXkgLiAnPSInIC4gJHZhbHVlIC4gJyIgJzsKICAgICAgfQogICAgICAkc3RyICAgICAgICAgICAgICAgIC49ICd9JzsKICAgICAgJG9uZXJvdy0+c3RhcnRfeWVhciA9IGlzc2V0KCRhdHRyaWJzWydzdGFydHllYXInXSkgPyAkYXR0cmlic1snc3RhcnR5ZWFyJ10gOiAnLTUnOwogICAgICAkb25lcm93LT5lbmRfeWVhciAgID0gaXNzZXQoJGF0dHJpYnNbJ2VuZHllYXInXSkgPyAkYXR0cmlic1snZW5keWVhciddIDogJysxMCc7CiAgICAgICRvbmVyb3ctPmNvbnRyb2wgICAgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHN0cik7CiAgICBicmVhazsKICB9CiAgCiAgJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKfQoKJGlubGluZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbmxpbmVfZm9ybXMnLCBUUlVFKTsKaWYoaXNzZXQoJGVwYXJhbXNbJ25vaW5saW5lJ10pKQp7CiAgJGlubGluZSA9IEZBTFNFOwp9CgokdHBsbmFtZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAncmVndGVtcGxhdGUnKTsKaWYoJHRwbG5hbWUpCnsKICAkdHBsbmFtZSA9ICc6OicgLiAkdHBsbmFtZTsKfQplbHNlCnsKICAkdHBsbmFtZSA9ICdtYW1zcmVnX3JlZzF0ZW1wbGF0ZSc7Cn0KJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdHBsbmFtZSk7CgovLyBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN0dWZmCiRlcGFyYW1zWydtcl9vcmlnX3VybCddICAgID0gKGlzc2V0KCRlcGFyYW1zWydtcl9vcmlnX3VybCddKSkgPyAkZXBhcmFtc1snbXJfb3JpZ191cmwnXSA6IHh0X3VybDo6Y3VycmVudF91cmwoKTsKJGVwYXJhbXNbJ2FsbG93b3ZlcndyaXRlJ10gPSAkYWxsb3dfb3ZlcndyaXRlOwokdG1wICAgICAgICAgICAgICAgICAgICAgICA9IFsnbXJfZGF0YScgPT4gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJGVwYXJhbXMpKV07CiR0cGwtPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPlhUQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NpZ251cCcsICRyZXR1cm5pZCwgJHRtcCwgJGlubGluZSkpOwokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdjb250cm9scycsICRyb3dhcnJheSk7CiR0cGwtPmFzc2lnbignY29udHJvbGNvdW50JywgY291bnQoJHJvd2FycmF5KSk7CiR0cGwtPmFzc2lnbignZXJyb3InLCAkZXJyb3IpOwokdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgokY2FwdGNoYSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwppZihpc19vYmplY3QoJGNhcHRjaGEpICYmICEkbm9jYXB0Y2hhKQp7CiAgJHRlc3QgPSBtZXRob2RfZXhpc3RzKCRjYXB0Y2hhLCAnTmVlZHNJbnB1dEZpZWxkJykgPyAkY2FwdGNoYS0+TmVlZHNJbnB1dEZpZWxkKCkgOiBUUlVFOwogICR0cGwtPmFzc2lnbignY2FwdGNoYV90aXRsZScsICR0aGlzLT5MYW5nKCdjYXB0Y2hhX3RpdGxlJykpOwogICR0cGwtPmFzc2lnbignY2FwdGNoYScsICRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICR0cGwtPmFzc2lnbignaW5wdXRfY2FwdGNoYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbXJfaW5wdXRfY2FwdGNoYScsICcnLCAxMCkpOwogICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywgJHRlc3QpOwp9CgovLyB0b2RvLCBwdXQgdGhpcyBpbnRvIHRoZSBkYXRhYmFzZSBhbmQgbGV0IHRoZSBhZG1pbiBwbGF5IHdpdGggaXQuCiR0cGwtPmRpc3BsYXkoKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.verify.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCFkZWZpbmVkKCdDTVNfVkVSU0lPTicpKQp7CiAgZXhpdDsKfQoKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoTU9EX01BTVMpOwppZighJG1hbXMpCnsKICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZldXNlcnNtb2R1bGUnKSk7CiAgCiAgcmV0dXJuOwp9CgokdHBsbmFtZSA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAndmVyaWZ5dGVtcGxhdGUnKTsKaWYoJHRwbG5hbWUpCnsKICAkdHBsbmFtZSA9ICc6OicgLiAkdHBsbmFtZTsKfQplbHNlCnsKICAkdHBsbmFtZSA9ICdtYW1zcmVnX3JlZzJ0ZW1wbGF0ZSc7Cn0KJHRwbCAgICAgICA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdHBsbmFtZSk7CiRub2NhcHRjaGEgPSBceHRfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsICdub2NhcHRjaGEnLCAwKTsKJGNhcHRjaGEgICA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwppZihpc3NldCgkcGFyYW1zWydlcnJvciddKSkKewogICR0cGwtPmFzc2lnbignZXJyb3InLCAkcGFyYW1zWydlcnJvciddKTsKfQppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQp7CiAgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywgJHBhcmFtc1snbWVzc2FnZSddKTsKfQoKJHBhcmFtcyAgICAgICAgID0gcmVnX3V0aWxzOjpjbGVhbl9wYXJhbXMoJHBhcmFtcyk7CiR1c2VybmFtZSAgICAgICA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF91c2VybmFtZScpKTsKJHVzZXJuYW1lICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3VzZXJuYW1lJywgJHVzZXJuYW1lKSk7CiRwYXNzd29yZCAgICAgICA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9wYXNzd29yZCcpKTsKJHBhc3N3b3JkICAgICAgID0gdHJpbShceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ3Bhc3N3b3JkJywgJHBhc3N3b3JkKSk7CiRjb2RlICAgICAgICAgICA9IHRyaW0oXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9jb2RlJykpOwokbm9pbmxpbmUgICAgICAgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywgJ25vaW5saW5lJywgMCk7CiRub2ZpbmFsbWVzc2FnZSA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfc2tpcF9maW5hbF9tc2cnKTsKCiRub2ZpbmFsbWVzc2FnZSA9IFx4dF9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCAnbm9maW5hbG1lc3NhZ2UnLCAkbm9maW5hbG1lc3NhZ2UpOwoKaWYoaXNzZXQoJHBhcmFtc1snZmluYWwnXSkpCnsKICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScpOwogICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCAkdXNlcm5hbWUpOwogICR0cGwtPmFzc2lnbignaXNfbG9nZ2VkX2luJywgKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2dpbl9hZnRlcnZlcmlmeScpKTsKICAkdHBsLT5kaXNwbGF5KCk7CiAgCiAgcmV0dXJuOwp9CmVsc2UgaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKQp7CiAgdHJ5CiAgewogICAgaWYoISR1c2VybmFtZSkKICAgIHsKICAgICAgaWYoJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdlbWFpbCcpKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3Npbmd1c2VybmFtZScpKTsKICAgICAgfQogICAgfQogICAgCiAgICBpZighJHBhc3N3b3JkKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXNzd29yZCcpKTsKICAgIH0KICAgIGlmKCEkY29kZSkKICAgIHsKICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5nY29kZScpKTsKICAgIH0KICAgIAogICAgLy8gZ2V0IGFuZCB2ZXJpZnkgdXNlciBkZXRhaWxzLgogICAgJHRfdWlkID0gJHRoaXMtPkdldFRlbXBVc2VySUQoJHVzZXJuYW1lKTsKICAgIGlmKCEkdF91aWQpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykpOwogICAgfQogICAgCiAgICAkdF9kZXRhaWxzID0gJHRoaXMtPkdldFRlbXBVc2VyRGV0YWlscygkdF91aWQpOwogICAgaWYoISR0X2RldGFpbHMpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykpOwogICAgfQogICAgaWYoJGNvZGUgIT0gJHRfZGV0YWlsc1snY29kZSddKQogICAgewogICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NvZGVzZG9udG1hdGNoJykpOwogICAgfQogIAovLyAgICBpZighJG5vY2FwdGNoYSkKLy8gICAgewovLyAgICAgICRjYXB0Y2hhID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ2FwdGNoYScpOwovLyAgICAgIGlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoXHh0X3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdpbnB1dF9jYXB0Y2hhJykpKQovLyAgICAgIHsKLy8gICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FwdGNoYW1pc21hdGNoJykpOwovLyAgICAgIH0KLy8gICAgfQogICAgCiAgICAvLyBhbmQgdmVyaWZ5IHRoZSBwYXNzd29yZCB0b28KICAgICRlX2tleSA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHVzZXJuYW1lKTsKICAgICRkX3B3ICA9ICR0aGlzLT5kZWNyeXB0KCRlX2tleSwgYmFzZTY0X2RlY29kZSgkdF9kZXRhaWxzWydwYXNzd29yZCddKSk7CiAgICBpZigkZF9wdyAhPSAkcGFzc3dvcmQpCiAgICB7CiAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5jb3JyZWN0cGFzc3dvcmQnKSk7CiAgICB9CiAgICAKICAgIC8vIGFsbCBnb29kLCBub3cgZG8gdGhlIHdvcmsKICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvY3JlYXRlX2ZldScsIDEpKQogICAgewogICAgICAkcmVzID0gJHRoaXMtPl9DcmVhdGVGcm9udGVuZFVzZXIoJHRfZGV0YWlsc1snaWQnXSwgJHVzZXJuYW1lLCAkcGFzc3dvcmQpOwogICAgICAKICAgICAgaWYoJHJlc1swXSA9PT0gRkFMU0UpCiAgICAgIHsKICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigkcmVzWzFdKTsKICAgICAgfQogICAgICAKICAgICAgJG1hbXNfdWlkID0gJHJlc1sxXTsKICAgICAgJHRoaXMtPkRlbGV0ZVRlbXBVc2VyKCR0X2RldGFpbHNbJ2lkJ10pOwogICAgICBhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJHVzZXJuYW1lIC4gJyB2YWxpZGF0ZWQgdGhlaXIgYWNjb3VudCcpOwogICAgICAKICAgICAgLy8gd2hlcmUgYXJlIHdlIGdvaW5nIGFmdGVyIHRoaXM/CiAgICAgICR0cGwyID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJ3N0cmluZzonIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X2FmdGVydmVyaWZ5JykpOwogICAgICAkdHBsMi0+YXNzaWduKCd1aWQnLCAkbWFtc191aWQpOwogICAgICAkdHBsMi0+YXNzaWduKCd1c2VybmFtZScsICR1c2VybmFtZSk7CiAgICAgICR0bXAgPSB0cmltKCR0cGwyLT5mZXRjaCgpKTsKICAgICAgCiAgICAgIGlmKCR0bXApCiAgICAgIHsKICAgICAgICAkZGVzdF9wYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCk7CiAgICAgICAgaWYoJGRlc3RfcGFnZSkKICAgICAgICB7CiAgICAgICAgICAkcmV0dXJuaWQgPSAkZGVzdF9wYWdlOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAjIHRyeSBidXQgZG9uJ3QgbWFrZSBhIGJpZyBmdXNzIGFib3V0IGl0IChKTSkKICAgICAgdHJ5CiAgICAgIHsKICAgICAgICAvLyB1c2VyIGlzIHZlcmlmaWVkLCBidXQgaXMgbm90IGF1dG8gY3JlYXRlZC4gIHNlbmQgYWRtaW4gYW4gZW1haWwuCiAgICAgICAgJHRoaXMtPl9TZW5kUmVnaXN0cmF0aW9uTm90aWZpY2F0aW9uKCR1c2VybmFtZSk7CiAgICAgIH0KICAgICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSkKICAgICAgewogICAgICAgIFxhdWRpdCgnJywgJHRoaXMtPkdldE5hbWUoKSwgJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gZG8gd2UgYXV0b21hdGljYWxseSBsb2cgdGhpcyB1c2VyIGluPwogICAgaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykpCiAgICB7CiAgICAgICRyZXMgPSAkbWFtcy0+TG9naW4oJHVzZXJuYW1lLCAkcGFzc3dvcmQpOwogICAgICBpZighJHJlc1swXSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkcmVzWzFdKTsKICAgICAgfQogICAgfQogICAgCiAgICBpZigkbm9maW5hbG1lc3NhZ2UpCiAgICB7CiAgICAgIC8vIHJlZGlyZWN0IG91dAogICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7CiAgICAgIAogICAgICByZXR1cm47CiAgICB9CiAgICAKICAgIC8vIHJlZGlyZWN0IG91dCBvZiBoZXJlIHRvIGRpc3BsYXkgdGhlIGZpbmFsIG1lc3NhZ2UKICAgICRwYXJtcyAgICAgICAgICAgICAgICA9IFtdOwogICAgJHBhcm1zWydtcl91c2VybmFtZSddID0gJHVzZXJuYW1lOwogICAgJHBhcm1zWydtcl9maW5hbCddICAgID0gMTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsICd2ZXJpZnknLCAkcmV0dXJuaWQsICRwYXJtcyk7CiAgfQogIGNhdGNoKFxFeGNlcHRpb24gJGUpCiAgewogICAgJHRwbC0+YXNzaWduKCdlcnJvcicsIDEpOwogICAgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywgJGUtPkdldE1lc3NhZ2UoKSk7CiAgfQp9CiR0cGwtPmFzc2lnbigndW5mbGRsZW4nLCAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSk7CiR0cGwtPmFzc2lnbignbWF4dW5sZW4nLCAkbWFtcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJykpOwokdHBsLT5hc3NpZ24oJ3B3ZmxkbGVuJywgJG1hbXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJykpOwokdHBsLT5hc3NpZ24oJ21heHB3bGVuJywgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKJHRwbC0+YXNzaWduKCd1c2VybmFtZScsICR1c2VybmFtZSk7CiR0cGwtPmFzc2lnbigncGFzc3dvcmQnLCAkcGFzc3dvcmQpOwokdHBsLT5hc3NpZ24oJ2NvZGUnLCAkY29kZSk7CmlmKGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRub2NhcHRjaGEpCnsKICAkdGVzdCA9IG1ldGhvZF9leGlzdHMoJGNhcHRjaGEsICdOZWVkc0lucHV0RmllbGQnKSA/ICRjYXB0Y2hhLT5OZWVkc0lucHV0RmllbGQoKSA6IFRSVUU7CiAgJHRwbC0+YXNzaWduKCdjYXB0Y2hhX3RpdGxlJywgJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7CiAgLy8kdHBsLT5hc3NpZ24oJ2NhcHRjaGEnLCAkY2FwdGNoYS0+Z2V0Q2FwdGNoYSgpKTsKICAvLyR0cGwtPmFzc2lnbignaW5wdXRfY2FwdGNoYScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbXJfaW5wdXRfY2FwdGNoYScsICcnLCAxMCkpOwogICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywgJHRlc3QpOwp9CgokaW5saW5lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsIFRSVUUpOwppZigkbm9pbmxpbmUpCnsKICAkaW5saW5lID0gRkFMU0U7Cn0KCiRwYXJtcyA9IFtdOwppZihpc3NldCgkcGFyYW1zWydub2lubGluZSddKSkKewogICRwYXJtc1snbm9pbmxpbmUnXSA9ICRwYXJhbXNbJ25vaW5saW5lJ107Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ25vZmluYWxtZXNzYWdlJ10pKQp7CiAgJHBhcm1zWydub2ZpbmFsbWVzc2FnZSddID0gJHBhcmFtc1snbm9maW5hbG1lc3NhZ2UnXTsKfQoKJHRwbC0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+WFRDcmVhdGVGcm9udGVuZEZvcm1TdGFydCgkaWQsICd2ZXJpZnknLCAkcmV0dXJuaWQsICRwYXJtcywgJGlubGluZSkpOwokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0cGwtPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygndGl0bGVfdmVyaWZ5cmVnaXN0cmF0aW9uJykpOwoKaWYoJG1hbXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpCnsKICAkdHBsLT5hc3NpZ24oJ3Byb21wdF91c2VybmFtZScsICR0aGlzLT5MYW5nKCdlbWFpbCcpKTsKfQplbHNlCnsKICAkdHBsLT5hc3NpZ24oJ3Byb21wdF91c2VybmFtZScsICR0aGlzLT5MYW5nKCd1c2VybmFtZScpKTsKfQoKLyogZG9uJ3QgbmVlZCB0aGlzIHN0dWZmIGFueSBtb3JlLCBidXQga2VlcCBpdCBmb3IgYSB3aGlsZSwgZm9yIGJhY2t3YXJkcyBjb21wYXQgKi8KJHRwbC0+YXNzaWduKAogICdpbnB1dF91c2VybmFtZScsCiAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgKICAgICRpZCwgJ21yX2lucHV0X3VzZXJuYW1lJywKICAgICR1c2VybmFtZSwKICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpLAogICAgJG1hbXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpCiAgKQopOwokdHBsLT5hc3NpZ24oJ3Byb21wdF9wYXNzd29yZCcsICR0aGlzLT5MYW5nKCdwYXNzd29yZCcpKTsKJHRwbC0+YXNzaWduKAogICdpbnB1dF9wYXNzd29yZCcsCiAgJHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoCiAgICAkaWQsICdtcl9pbnB1dF9wYXNzd29yZCcsCiAgICAkcGFzc3dvcmQsCiAgICAkbWFtcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSwKICAgICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKQogICkKKTsKJHRwbC0+YXNzaWduKCdwcm9tcHRfY29kZScsICR0aGlzLT5MYW5nKCdjb2RlJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0X2NvZGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21yX2lucHV0X2NvZGUnLCAkY29kZSwgMzAsIDMwKSk7CiR0cGwtPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ21yX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiM/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.verifyuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmRpZSgnbm8gbG9uZ2VyIHVzZWQnKTsKJHBhcmFtcyA9IHJlZ191dGlsczo6Y2xlYW5fcGFyYW1zKCRwYXJhbXMpOwoKJG1hbXMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ01BTVMnKTsKaWYoICEkbWFtcyApIHsKICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQogIC8vIGJ1dCBhdCBsZWFzdCB0aGUgYWRtaW4gd2lsbCBiZSBhYmxlIHRvIGZpZ3VyZSBpdCBvdXQKICAkbW9kdWxlLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtb2R1bGUtPkxhbmcoJ2Vycm9yX25vZmV1c2Vyc21vZHVsZScpKTsKICByZXR1cm47Cn0KCmlmKCAhXHh0X3V0aWxzOjp2YWxpZF9mb3JtX2NzcmYoKSApIHsKICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAkcGFybXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9zZWN1cml0eScpOwogICAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KCi8vIG5vdyBhbGwgd2UgaGF2ZSB0byBkbyBpcyBnZXQgdGhlIHVzZXJuYW1lLCBjb2RlLCBhbmQgcGFzc3dvcmQKLy8gYW5kIG1ha2Ugc3VyZSBpdCBhbGwgbWF0Y2hlcwppZiggIWlzc2V0KCAkcGFyYW1zWydpbnB1dF91c2VybmFtZSddICkgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgaWYgKCRtYW1zLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKSB7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ2VtYWlsJyk7CiAgfQogIGVsc2UgewogICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3Npbmd1c2VybmFtZScpOwogIH0KICAkcGFyYW1zWydlcnJvciddID0gMTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQokdXNlcm5hbWUgPSB0cmltKCRwYXJhbXNbJ2lucHV0X3VzZXJuYW1lJ10pOwppZiggIWlzc2V0KCAkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddICkgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXNzd29yZCcpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogIHJldHVybiAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9CiRwYXNzd29yZCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUodHJpbSgkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddKSk7CmlmKCAhaXNzZXQoICRwYXJhbXNbJ2lucHV0X2NvZGUnXSApICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5nY29kZScpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogIHJldHVybiAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9CiRjb2RlID0gdHJpbSgkcGFyYW1zWydpbnB1dF9jb2RlJ10pOwoKLy8gbm93IGdldCB0aGUgZGV0YWlscyBvdXQgb2YgdGhlIGRhdGFiYXNlIGZvciB0aHMgdXNlcgokcSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHVzZXJuYW1lICkgKTsKaWYoICEkZGJyZXN1bHQgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKTsKICAkcGFyYW1zWydlcnJvciddID0gMTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQppZiggJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpICE9IDEgKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpOwogICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICR0aGlzLT5BdWRpdCggJycsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpLiI6ICIuJHVzZXJuYW1lKTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQoKJHRtcHVzZXIgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiRtYW1zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TJyk7CiRrZXkgPSAkdGhpcy0+Z2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSk7CiRlbmNyeXB0ZWQgPSBiYXNlNjRfZW5jb2RlKCR0aGlzLT5lbmNyeXB0KCRrZXksJHBhc3N3b3JkKSk7CmlmKCAkZW5jcnlwdGVkICE9ICR0bXB1c2VyWydwYXNzd29yZCddICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZHNkb250bWF0Y2gnKTsKICAkcGFyYW1zWydlcnJvciddID0gMTsKICAkdGhpcy0+QXVkaXQoICcnLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZHNkb250bWF0Y2gnKS4iOiAiLiR1c2VybmFtZSk7CiAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KaWYoICRjb2RlICE9ICR0bXB1c2VyWydjb2RlJ10gKSB7CiAgJHBhcmFtc1snbW9kZSddID0gJ3ZlcmlmeSc7CiAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2NvZGVzZG9udG1hdGNoJyk7CiAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdlcnJvcl9jb2Rlc2RvbnRtYXRjaCcpLiI6ICIuJHVzZXJuYW1lKTsKICByZXR1cm4gJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKfQoKJHJlc3VsdCA9ICR0aGlzLT5fQ3JlYXRlRnJvbnRlbmRVc2VyKCAkdG1wdXNlclsnaWQnXSwgJHVzZXJuYW1lLCAkcGFzc3dvcmQgKTsKaWYoICRyZXN1bHRbMF0gPT09IEZBTFNFICkgewogICRwYXJhbXNbJ21vZGUnXSA9ICd2ZXJpZnknOwogICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICRyZXN1bHRbMV07CiAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgcmV0dXJuICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFyYW1zICk7Cn0KCi8vIHdvb2hvb28sIHRoZSB1c2VyIGJlIGNyZWF0ZWQgKGhvcGVmdWxseSkuCi8vIGRlbGV0ZSB0aGUgcmVjb3JkcyBmcm9tIHRoZSBTZWxmUmVnIHRhYmxlcwokdGhpcy0+RGVsZXRlVGVtcFVzZXIoICR0bXB1c2VyWydpZCddICk7Cgp1bnNldCgkcGFyYW1zWydtb2RlJ10pOwp1bnNldCgkcGFyYW1zWydhY3Rpb24nXSk7CgovLyBkbyB3ZSBhdXRvbWF0aWNhbGx5IGxvZyB0aGlzIHVzZXIgaW4/CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbG9naW5fYWZ0ZXJ2ZXJpZnknKSApIHsKICAkbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwogICRtYW1zLT5Mb2dpbiggJHVzZXJuYW1lLCAkcGFzc3dvcmQgKTsKfQoKLy8gQ2hlY2sgaWYgd2UgaGF2ZSB0byByZWRpcmVjdCB0byBhIHBhZ2Ugb3Igbm90CiRkZXN0cGFnZXN0ciA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknKSk7CmlmKCAhZW1wdHkoJGRlc3RwYWdlc3RyKSApIHsKICAkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICRkZXN0cGFnZWlkID0gJGNvbnRlbnRvcHMtPkdldFBhZ2VJREZyb21BbGlhcygkZGVzdHBhZ2VzdHIpOwogIGlmKCAkZGVzdHBhZ2VpZCA9PSBGQUxTRSApIHsKICAgICR0bXBhbGlhcyA9ICRjb250ZW50b3BzLT5HZXRQYWdlQWxpYXNGcm9tSUQoJGRlc3RwYWdlc3RyKTsKICAgIGlmKCAhJHRtcGFsaWFzICkgJGRlc3RwYWdlaWQgPSAkdG1wYWxpYXM7CiAgfQogICRyZXR1cm5pZCA9ICRkZXN0cGFnZWlkOwp9CiRwYXJtcyA9IGFycmF5KCk7CiRwYXJtc1snbXJfdXNlcm5hbWUnXSA9ICR1c2VybmFtZTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwncG9zdF9jcmVhdGV1c2VyJywkcmV0dXJuaWQsJHBhcm1zKTsK]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.CartAdjusted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydzdGF0dXMnXSkgKSByZXR1cm47CmlmKCAhaXNzZXQoJHBhcmFtc1snZXh0cmEnXSkgfHwgJHBhcmFtc1snZXh0cmEnXSA9PSAnZ2F0ZXdheS1jb21wbGF0ZScgKSByZXR1cm47Cgokc3RhdHVzID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ29yZGVyc19nYXRld2F5X2NvbXBsZXRlJyk7CmlmKCAkc3RhdHVzID09IDEgKSB7CiAgLy8gY2FsbGVkIHZpYSB0aGUgb3JkZXJzIGdhdGV3YXkgY29tcGxldGUgc3R1ZmYuLi4gCiAgLy8gY2FydCBwcm9iYWJseSBiZWluZyBlbXB0aWVkLgogIC8vIGxldHMgbm90IGRvIGFueXRoaW5nLgogIHJldHVybjsKfQoKc3dpdGNoKCRwYXJhbXNbJ3N0YXR1cyddKSB7CiBjYXNlICdiZWZvcmUnOgogICAkc2VzcyA9IG5ldyB4dF9zZXNzaW9uKCR0aGlzLT5HZXROYW1lKCkpOwogICBpZiggY291bnQoJHBhcmFtc1snY2FydF9pdGVtcyddKSA+IDEgKSB7CiAgICAgLy8gdGhlcmUncyBtb3JlIHRoYW4gb25lIGl0ZW0KICAgICByZXR1cm47CiAgIH0KICAgJHRtcCA9IHNlcmlhbGl6ZSgkcGFyYW1zWydjYXJ0X2l0ZW1zJ10pOwogICAkc2Vzcy0+cHV0KCdjYXJ0X2JlZm9yZScsJHRtcCk7CiAgIGJyZWFrOwoKIGNhc2UgJ2FmdGVyJzoKICAgJHNlc3MgPSBuZXcgeHRfc2Vzc2lvbigkdGhpcy0+R2V0TmFtZSgpKTsKICAgJGJlZm9yZSA9ICRzZXNzLT5nZXQoJ2NhcnRfYmVmb3JlJyk7CiAgICRzZXNzLT5jbGVhcignY2FydF9iZWZvcmUnKTsKICAgaWYoIGVtcHR5KCRiZWZvcmUpICkgcmV0dXJuOyAvLyB3ZSBvbmx5IGNhcmUgaWYgc29tZXRoaW5nIHdhcyBkZWxldGVkLgoKICAgJGJlZm9yZSA9IHVuc2VyaWFsaXplKCRiZWZvcmUpOwogICAkYWZ0ZXIgPSAkcGFyYW1zWydjYXJ0X2l0ZW1zJ107CgogICAvLyBub3cgd2UgZ290dGEgZmlndXJlIG91dCB3aGF0IGNoYW5nZWQuCiAgICR0bXAgPSBhcnJheV9rZXlzKCRiZWZvcmUpOwogICAkY2FydG5hbWUgPSAkdG1wWzBdOwoKICAgJGFmdGVyX3NlciA9IGFycmF5KCk7CiAgIGlmKCBpc19hcnJheSgkYWZ0ZXIpICYmIGNvdW50KCRhZnRlcikgKSB7CiAgICAgJGFmdGVyX3NlciA9IGFycmF5KCk7CiAgICAgZm9yZWFjaCggJGFmdGVyIGFzICRvbmUgKSB7CiAgICAgICAkYWZ0ZXJfc2VyW10gPSBzZXJpYWxpemUoJG9uZSk7CiAgICAgfQogICB9CgogICAkaXRlbXMgPSAkYmVmb3JlWyRjYXJ0bmFtZV1bJ2l0ZW1zJ107CiAgICRiZWZvcmVfc2VyID0gYXJyYXkoKTsKICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGl0ZW1zKTsgJGkrKyApIHsKICAgICAkYmVmb3JlX3NlcltdID0gc2VyaWFsaXplKCRpdGVtc1skaV0pOwogICB9CgogICAkZGVsZXRlZF9zZXIgPSBhcnJheV9kaWZmKCRiZWZvcmVfc2VyLCRhZnRlcl9zZXIpOwoKICAgLy8gbm93IGRlc2VyaWFsaXplIGV2ZXJ5dGhpbmcKICAgLy8gYW5kIGNhdGNoIHRoZSBvbmVzIHRoYXQgb3JpZ2luYXRlZCBmcm9tIHRoaXMgbW9kdWxlCiAgICRkZWxldGVkID0gYXJyYXkoKTsKICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRlbGV0ZWRfc2VyKTsgJGkrKyApIHsKICAgICAkdG1wID0gdW5zZXJpYWxpemUoJGRlbGV0ZWRfc2VyWyRpXSk7CiAgICAgaWYoICEoJHRtcCBpbnN0YW5jZW9mIGNnX2Vjb21tX2NhcnRpdGVtKSApIGNvbnRpbnVlOwogICAgIGlmKCAkdG1wLT5nZXRfc291cmNlKCkgIT0gJHRoaXMtPkdldE5hbWUoKSApIGNvbnRpbnVlOwogICAgICRkZWxldGVkW10gPSAkdG1wOwogICB9CgogICBpZiggY291bnQoJGRlbGV0ZWQpICkgewogICAgIC8vIHdlIGhhdmUgYSBsaXN0IG9mIGRlbGV0ZWQgbWFtc3JlZyBpdGVtcy4KICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGVsZXRlZCk7ICRpKysgKSB7CiAgICAgICAkdGVtcF91c2VyX2lkID0gJGRlbGV0ZWRbJGldLT5nZXRfcHJvZHVjdF9pZCgpOwoKICAgICAgIC8vIGRlbGV0ZSB0aGlzIHRlbXBvcmFyeSB1c2VyLgogICAgICAgLy8gd2UgZG9uJ3QgdHJhY2sgZXJyb3JzLCBiZWNhdXNlIHRoaXMgZXZlbnQgaXMgYWxzbyBjYWxsZWQKICAgICAgIC8vIGZyb20gdGhlIGdhdGV3YXkgY29tcGxldGUgcHJvY2VzcyAod2hpY2ggZXJhc2VzIHRoZSBjYXJ0KQogICAgICAgLy8gdGhlcmVmb3JlIHRoZSB1c2VyIG1heSBoYXZlIGFscmVhZHkgYmVlbiBwdXNoZWQgbGl2ZQogICAgICAgLy8gYnkgdGhlIGNoZWNrb3V0IHByb2Nlc3MuCiAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXJQcm9wZXJ0aWVzKCAkdGVtcF91c2VyX2lkICk7CiAgICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoICR0ZW1wX3VzZXJfaWQgKTsKICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0RlbGV0ZWQgdGVtcCB1c2VyICcuJHRlbXBfdXNlcl9pZCk7CiAgICAgfQogICB9CiAgIGJyZWFrOwogfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderCreated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderDeleted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4yCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLy8gYW4gb3JkZXIgaGFzIGJlZW4gdXBkYXRlZC4KaWYoIWlzc2V0KCRwYXJhbXNbJ29yZGVyX2lkJ10pKSByZXR1cm47CgppZighJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicpKSByZXR1cm47CgovLyBoYW5kbGUgdGhlIGNhc2Ugb2YgYXR0ZW1wdGVkIHJlY3Vyc2lvbi4KaWYoeHRfdG1wZGF0YTo6ZXhpc3RzKF9fRklMRV9fKSkgcmV0dXJuOwoKeHRfdG1wZGF0YTo6c2V0KF9fRklMRV9fLCAxKTsKCiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gJHRhYmxlX3ByZWZpeCAuICdtb2R1bGVfJyAuICRtb2RuYW1lOwoKLy8gaGVyZSB3ZSBncmFiIHRoZSBvcmRlciBkaXJlY3RseS4KJG9yZGVyX21vZGlmaWVkID0gRkFMU0U7CiRvcmRlcl9pZCAgICAgICA9IChpbnQpJHBhcmFtc1snb3JkZXJfaWQnXTsKJG9yZGVyX29iaiAgICAgID0gb3JkZXJzX29wczo6bG9hZF9ieV9pZCgkb3JkZXJfaWQpOwoKaWYoISRvcmRlcl9vYmopIHJldHVybjsKCmlmKCRvcmRlcl9vYmotPmdldF9zdGF0dXMoKSAhPSBPUkRFUlNUQVRVU19TVUJTQ1JJQkVEICYmICRvcmRlcl9vYmotPmdldF9zdGF0dXMoKSAhPSBPUkRFUlNUQVRVU19QQUlEKQp7CiAgLy8gZG9uJ3QgZG8gYW55dGhpbmcgdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1YnNjcmliZWQgb3JkZXIuCiAgcmV0dXJuOwp9CgovLyBnZXQgdGhlIGxpc3Qgb2YgcGFja2FnZXMKJHBrZ3MgPSAnJzsKewogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiAkdGFibGVfcHJlZml4IC4gJ19wYWlkcGtncyc7CiAgJHRtcCAgID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCEkdG1wKQogIHsKICAgIHJldHVybjsKICB9IC8vIG5vIHBhY2thZ2VzCiAgJHBrZ3MgPSB4dF9hcnJheTo6dG9faGFzaCgkdG1wLCAnaWQnKTsKfQoKLy8gZmluZCB0aGUgbGluZSBpdGVtIHdpdGggYSBTZWxmUmVnIFN1YnNjcmlwdGlvbi4KZm9yKCRzID0gMDsgJHMgPCAkb3JkZXJfb2JqLT5jb3VudF9kZXN0aW5hdGlvbnMoKTsgJHMrKykKewogICRzaGlwcGluZyA9ICRvcmRlcl9vYmotPmdldF9zaGlwcGluZygkcyk7CiAgZm9yKCRpID0gMDsgJGkgPCAkc2hpcHBpbmctPmNvdW50X2FsbF9pdGVtcygpOyAkaSsrKQogIHsKICAgICRpdGVtID0gJHNoaXBwaW5nLT5nZXRfaXRlbSgkaSk7CiAgICBpZigkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICR0aGlzLT5HZXROYW1lKCkpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgaWYoJGl0ZW0tPmdldF9pdGVtX3R5cGUoKSAhPSBsaW5lX2l0ZW06OklURU1UWVBFX1NFUlZJQ0UpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgCiAgICAkdGVtcF91aWQgPSAkaXRlbS0+Z2V0X2l0ZW1faWQoKTsKICAgICRza3UgICAgICA9ICRpdGVtLT5nZXRfc2t1KCk7CiAgICBpZighJHNrdSkKICAgIHsKICAgICAgY29udGludWU7CiAgICB9IC8vIG5vIHNrdQogICAgCiAgICBsaXN0KCRjb2RlLCAkcGtnaWQsICR0bXB1aWQpID0gZXhwbG9kZSgnLScsICRza3UsIDMpOwogICAgJHBrZ2lkICA9IChpbnQpJHBrZ2lkOwogICAgJHRtcHVpZCA9IChpbnQpJHRtcHVpZDsKICAgIGlmKCRjb2RlICE9ICdzcicgJiYgJHRtcHVpZCAhPSAkdGVtcF91aWQpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfSAvLyBiYWQgc2t1CiAgICBpZighaXNzZXQoJHBrZ3NbJHBrZ2lkXSkpCiAgICB7CiAgICAgIGNvbnRpbnVlOwogICAgfSAvLyBwYWNrYWdlIGRlbGV0ZWQ/CiAgICAKICAgIC8vIHNlZSBpZiB3ZSBjYW4gZmluZCB0aGlzIHRlbXAgdXNlcgogICAgJHF1ZXJ5ICAgID0gJ1NFTEVDVCAqIEZST00gJyAuICR0YWJsZV9wcmVmaXggLiAnX3VzZXJzIFdIRVJFIGlkID0gPyc7CiAgICAkdG1wX3VzZXIgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCR0ZW1wX3VpZCkpOwogICAgaWYoISR0bXBfdXNlcikKICAgIHsKICAgICAgY29udGludWU7CiAgICB9IC8vIG5vIHRlbXAgdXNlciBmb3VuZC4KICAgIAogICAgLy8gcHVzaCB0aGUgdXNlciBsaXZlLi4uLgogICAgLy8gc2V0IGV4cGlyeSBhcyBsYXRlIGFzIHBvc3NpYmxlLgogICAgLy8gcmVseSBvbiB0aGUgb3JkZXJzL2Vjb21tIHN0dWZmIHRvIGRpc2FibGUgdGhlIHVzZXIgZXRjLiAgaWYgdGhlIHN1YnNjcmlwdGlvbiBpcyBjYW5jZWxsZWQsIGV0Yy4KICAgICRwa2cgICAgID0gJHBrZ3NbJHBrZ2lkXTsKICAgICRleHBpcmVzID0gTlVMTDsKICAgIAogICAgJGtleSAgICAgICAgICAgICAgICAgICA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHRtcF91c2VyWyd1c2VybmFtZSddKTsKICAgICR0bXBfdXNlclsncGFzc3dvcmQnXSA9ICR0aGlzLT5kZWNyeXB0KCRrZXksIGJhc2U2NF9kZWNvZGUoJHRtcF91c2VyWydwYXNzd29yZCddKSk7CiAgICAkcmVzICAgICAgICAgICAgICAgICAgID0gJHRoaXMtPl9DcmVhdGVGcm9udGVuZFVzZXIoCiAgICAgICR0ZW1wX3VpZCwgJHRtcF91c2VyWyd1c2VybmFtZSddLCAkdG1wX3VzZXJbJ3Bhc3N3b3JkJ10sICRleHBpcmVzCiAgICApOwogICAgJG1hbXNfdWlkICAgICAgICAgICAgICA9ICcnOwogICAgaWYoaXNfYXJyYXkoJHJlcykgJiYgJHJlc1swXSAhPT0gRkFMU0UpCiAgICB7CiAgICAgICRtYW1zX3VpZCA9ICRyZXNbMV07CiAgICB9CiAgICBpZigkbWFtc191aWQpCiAgICB7CiAgICAgIC8vIHNldCB0aGUgb3JkZXIgaWQgaW50byB0aGUgZmV1IHVzZXIgYWNjb3VudAogICAgICAkbWFtcyA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX01BTVMpOwogICAgICAkZGF0YSA9IFsnb3JkZXJfaWQnID0+ICRvcmRlcl9pZF07CiAgICAgICRtYW1zLT5TZXRVc2VyUHJvcGVydHlGdWxsKE1BTVNSZWdpc3RyYXRpb246Ok1BTVNfUFJPUE5BTUUsIHNlcmlhbGl6ZSgkZGF0YSksICRtYW1zX3VpZCk7CiAgICB9CiAgICBhdWRpdCgKICAgICAgJHRlbXBfdWlkLCAkdGhpcy0+R2V0TmFtZSgpLAogICAgICBzcHJpbnRmKAogICAgICAgICdNb3ZlZCBNQU1TUmVzZ2lzdHJhdGlvbiBUZW1wb3JhcnkgVXNlciAlZCB0byBNQU1TIHdpdGggdWlkICVkIHRvIGV4cGlyZSBvbiAlcycsICR0ZW1wX3VpZCwgJG1hbXNfdWlkLAogICAgICAgIHN0cmZ0aW1lKCcleCAlWCcsICRleHBpcmVzKQogICAgICApCiAgICApOwogICAgCiAgICAvLyBkZWxldGUgdGhlIHRlbXAgdXNlci4KICAgICR0aGlzLT5EZWxldGVUZW1wVXNlclByb3BlcnRpZXMoJHRlbXBfdWlkKTsKICAgICR0aGlzLT5EZWxldGVUZW1wVXNlcigkdGVtcF91aWQpOwogICAgCiAgICAvLyB1cGRhdGUgdGhlIGxpbmUgaXRlbSB3aXRoIHRoZSBGRVUgdWlkCiAgICAkaXRlbS0+c2V0X2V4dHJhKCdmZXVfdWlkJywgJG1hbXNfdWlkKTsKICAgICRvcmRlcl9tb2RpZmllZCA9IFRSVUU7CiAgfQp9CgovLyBhbmQgc2F2ZSB0aGUgb3JkZXIuCmlmKCRvcmRlcl9tb2RpZmllZCkKewogICRvcmRlcl9vYmotPnNhdmUoKTsKfQoKLy8gc2V0dXAgZm9yIGFub3RoZXIgb3JkZXIuLi4gc2hvdWxkbid0IGhhcHBlbiwgYnV0IGp1c3QgaW4gY2FzZS4KeHRfdG1wZGF0YTo6ZXJhc2UoX19GSUxFX18pOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleInstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyxmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsZmFsc2UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnLGZhbHNlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUninstalled.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ModuleUpgraded.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggJHBhcmFtc1snbmFtZSddICE9ICdDR0Vjb21tZXJjZUJhc2UnICkgcmV0dXJuOwoKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJDcmVhdGVkJyxmYWxzZSk7CiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsZmFsc2UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnLGZhbHNlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_anothergroup_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgZXhpdDsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2Fub3RoZXJncm91cF90ZW1wbGF0ZS50cGwnKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5YVENyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfYW5vdGhlcmdyb3VwX3RlbXBsYXRlJywkcmV0dXJuaWQpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCd0ZW1wbGF0ZScsJHRoaXMtPkdldFRlbXBsYXRlKCdhbm90aGVyZ3JvdXBfdGVtcGxhdGUnKSk7CiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/function.admin_paidregistration_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CmlmKCAhJG1hbXMgKSByZXR1cm47CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcGFpZHBrZ3MgT1JERVIgQlkgbmFtZSc7CiRwYWNrYWdlbGlzdCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCmlmKCBpc19hcnJheSgkcGFja2FnZWxpc3QpICkgewogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYWNrYWdlbGlzdCk7ICRpKysgKSB7CiAgICAkcmVjID0mICRwYWNrYWdlbGlzdFskaV07CiAgICAkcmVjWydlZGl0X3VybCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2FkbWluX2FkZHBhaWRwa2cnLCRyZXR1cm5pZCwgYXJyYXkoJ3BrZ2lkJz0+JHJlY1snaWQnXSkpOwogICAgJHJlY1snZGVsZXRlX2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9kZWxwYWlkcGtnJywkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwKCQkJCQkJICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsIGFycmF5KCdwa2dpZCc9PiRyZWNbJ2lkJ10pKTsKICAgICRyZWNbJ2VkaXRfbGluayddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2FkZHBhaWRwa2cnLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2VkaXQnKSwKCQkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGFycmF5KCdwa2dpZCc9PiRyZWNbJ2lkJ10pKTsKICB9Cn0KLy8gYnVpbGQgdGhlIHRlbXBsYXRlJwokc21hcnR5LT5hc3NpZ24oJ3BhY2thZ2VsaXN0JywkcGFja2FnZWxpc3QpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPlhUQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdHJlZ2lzdHJhdGlvbnMnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignYWRkbGluaycsJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2FkZHBhaWRwa2cnLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FkZF9wYWlkcGtnJyksCgkJCQkJCSAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCBhcnJheSgpLCcnLCcnLGZhbHNlKSk7CgppZiggJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0Vjb21tZXJjZUJhc2UnKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9jb2RlJyxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdncm91cGxpc3QnLGFycmF5X2ZsaXAoJG1hbXMtPkdldEdyb3VwTGlzdCgpKSk7CgkJCQkJCQkgICAgIAplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3BhaWRyZWdpc3RyYXRpb25fdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAnc2V0cHJlZnMnLCAkcmV0dXJuaWQgKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgokbWFtcyA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnTUFNUycpOwokZ3JvdXBsaXN0ID0gJG1hbXMtPkdldEdyb3VwTGlzdCgpOwokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vcmVnaXN0ZXJfZ3JvdXBzJyk7CiRub3JlZ2lzdGVyX2dyb3VwcyA9IGFycmF5KCk7CmlmKCAhZW1wdHkoJHRtcCkgKSAkbm9yZWdpc3Rlcl9ncm91cHMgPSBleHBsb2RlKCcsJywkdG1wKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ub3JlZ2lzdGVyJywkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnaW5wdXRfbm9yZWdpc3RlcltdJywkZ3JvdXBsaXN0LCRub3JlZ2lzdGVyX2dyb3VwcywzKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pbmxpbmUnLCR0aGlzLT5MYW5nKCd1c2VfaW5saW5lX2Zvcm1zJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2lubGluZScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbnB1dF9pbmxpbmUnLDEsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lubGluZV9mb3JtcycsMSkpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbm90aWZ5JywkdGhpcy0+TGFuZygnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ub3RpZnknLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF9ub3RpZnknLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2VtYWlsX2NvbmZpcm1hdGlvbicsJHRoaXMtPkxhbmcoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2VtYWlsX2NvbmZpcm1hdGlvbicsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goICRpZCwgJ2lucHV0X2VtYWlsX2NvbmZpcm1hdGlvbicsIDEsCgkJCQkJICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbicpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3NlbmRfZW1haWxzX3RvJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VuZF9lbWFpbHNfdG8nKSk7CiRzbWFydHktPmFzc2lnbignYWRtaW5fbm90aWZ5X3N1YmplY3QnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9ub3RpZnlfc3ViamVjdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdhZG1pbl9ub3RpZnlfZW1haWwnLCR0aGlzLT5HZXRUZW1wbGF0ZSgnYWRtaW5fbm90aWZ5X2VtYWlsJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSwgJycsICcnLAoJCQkJCQkgICR0aGlzLT5MYW5nKCdjb25maXJtX3N1Ym1pdHByZWZzJykpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2ZvcmNlX2VtYWlsX3R3aWNlJywkdGhpcy0+TGFuZygnZm9yY2VfZW1haWxfdHdpY2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZm9yY2VfZW1haWxfdHdpY2UnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF9mb3JjZV9lbWFpbF90d2ljZScsIDEsCgkJCQkJCQkJICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfZm9yY2VfZW1haWxfdHdpY2UnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc2tpcF9maW5hbF9tc2cnLCR0aGlzLT5MYW5nKCdza2lwX2ZpbmFsX21zZycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9za2lwX2ZpbmFsX21zZycsCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsJ2lucHV0X3NraXBfZmluYWxfbXNnJywgMSwKCQkJCQkJCQkgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfc2tpcF9maW5hbF9tc2cnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicsJHRoaXMtPkxhbmcoJ3JlZGlyZWN0X2FmdGVycmVnaXN0ZXInKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcmVkaXJlY3RfYWZ0ZXJyZWdpc3RlcicsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXInLAoJCQkJCQkJCSAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9hZnRlcnJlZ2lzdGVyJyksCgkJCQkJCQkJICAgICAgNTApKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2xvZ2luX2FmdGVydmVyaWZ5JywkdGhpcy0+TGFuZygnbG9naW5fYWZ0ZXJ2ZXJpZnknKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbG9naW5fYWZ0ZXJ2ZXJpZnknLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW5wdXRfbG9naW5fYWZ0ZXJ2ZXJpZnknLDEsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xvZ2luX2FmdGVydmVyaWZ5JykpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3JlZGlyZWN0X2FmdGVydmVyaWZ5JywkdGhpcy0+TGFuZygncmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9yZWRpcmVjdF9hZnRlcnZlcmlmeScsCgkJCQkJCQkJICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9hZnRlcnZlcmlmeScpLAoJCQkJCQkJCSAgICA1MCkpOwoKJGFyeSA9IGFycmF5KCR0aGlzLT5MYW5nKCdkb250X3VzZScpID0+ICcnLCAkdGhpcy0+TGFuZygnbm9fbWF0Y2hlcycpID0+ICdleGNsdWRlJywgJHRoaXMtPkxhbmcoJ29ubHlfbWF0Y2hlcycpID0+ICdpbmNsdWRlJyk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2VuYWJsZV93aGl0ZWxpc3QnLCR0aGlzLT5MYW5nKCdlbmFibGVfd2hpdGVsaXN0JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV93aGl0ZWxpc3QnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfZW5hYmxlX3doaXRlbGlzdCcsICRhcnksIC0xLAoJCQkJCQkJCSAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX3doaXRlbGlzdCcsICcnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfd2hpdGVsaXN0JywkdGhpcy0+TGFuZygnd2hpdGVsaXN0JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3doaXRlbGlzdCcsCgkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3doaXRlbGlzdCcsICcnKSwKCQkJCQknaW5wdXRfd2hpdGVsaXN0JykpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsJHRoaXMtPkxhbmcoJ3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnLAoJCQkJCQkJCQkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3doaXRlbGlzdF90cmlnZ2VyX21lc3NhZ2UnLCAnJyksCgkJCQkJCQkJCSA1MCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWdfYWRkaXRpb25hbGdyb3VwcycsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2lucHV0X3JlZ19hZGRpdGlvbmFsZ3JvdXBzJywKCQkJCQkJCQkJICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVnX2FkZGl0aW9uYWxncm91cHMnLDApKSk7CiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CiRwcm9wZGVmbnMgPSAkbWFtcy0+R2V0UHJvcGVydHlEZWZucygpOwokbGlzdCA9IGFycmF5KCk7CmlmKCAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSApIHsKICAkbGlzdFsnKnVzZXJuYW1lLXBhc3N3b3JkKiddID0gJHRoaXMtPkxhbmcoJ2VtYWlsLXBhc3N3b3JkJykuJyonOwp9CmVsc2UgewogICRsaXN0WycqdXNlcm5hbWUtcGFzc3dvcmQqJ10gPSAkdGhpcy0+TGFuZygndXNlcm5hbWUtcGFzc3dvcmQnKS4nKic7Cn0KaWYoIGlzX2FycmF5KCRwcm9wZGVmbnMpICYmIGNvdW50KCRwcm9wZGVmbnMpICkgewogIGZvcmVhY2goICRwcm9wZGVmbnMgYXMgJHByb3BuYW1lID0+ICRkZWZuICkgewogICAgaWYoICRkZWZuWyd0eXBlJ10gIT0gNiAmJiAkZGVmblsncHJvbXB0J10gICE9ICcnICkgewogICAgICAkbGlzdFskcHJvcG5hbWVdID0gJGRlZm5bJ3Byb21wdCddOwogICAgfQogIH0KfQokc21hcnR5LT5hc3NpZ24oJ21hdGNoZmllbGRfb3B0aW9ucycsJGxpc3QpOwoKJG9wdHMgPSBhcnJheSgnMCc9PiR0aGlzLT5MYW5nKCdubycpLCcxJz0+JHRoaXMtPkxhbmcoJ3NpbmdsZWdyb3VwJyksJzInPT4kdGhpcy0+TGFuZygnbXVsdGlwbGVncm91cHMnKSk7CiRzbWFydHktPmFzc2lnbignc2VsZWN0cGtnb3B0cycsJG9wdHMpOwokc21hcnR5LT5hc3NpZ24oJ2FsbG93c2VsZWN0cGtnJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dzZWxlY3Rwa2cnKSk7CiRzbWFydHktPmFzc2lnbignYXV0b2NyZWF0ZV9mZXUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvY3JlYXRlX2ZldScsMSkpOwoKJGNnZWNiID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0Vjb21tZXJjZUJhc2UnKTsKaWYoICRjZ2VjYiApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93cGFpZHJlZ2lzdHJhdGlvbicsCgkJICAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnYWxsb3dwYWlkcmVnaXN0cmF0aW9uJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dwYWlkcmVnaXN0cmF0aW9uJywwKSkpOwogICRzbWFydHktPmFzc2lnbignY2FydGl0ZW1fc3VtbWFyeV90cGwnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYXJ0aXRlbV9zdW1tYXJ5X3RwbCcpKTsKICAkc21hcnR5LT5hc3NpZ24oJ3JlZGlyZWN0X3BhaWRwa2cnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9wYWlkcGtnJywnJykpOwp9CgoKJG51bSA9ICR0aGlzLT5Db3VudFRlbXBVc2VycygpOwppZiggJG51bSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9udW1yZXNldHJlY29yZHMnLCR0aGlzLT5MYW5nKCdwcm9tcHRfbnVtcmVzZXRyZWNvcmQnKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdkYXRhX251bXJlc2V0cmVjb3JkcycsICRudW0pOyAvL3RvZG8KICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlbW92ZWFsbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnaW5wdXRfcmVtb3ZlYWxsJywkdGhpcy0+TGFuZygncmVtb3ZlYWxsJyksJ29uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy4kdGhpcy0+TGFuZygnYXJleW91c3VyZScpLidcJykiJykpOwogICRzbWFydHktPmFzc2lnbignaW5wdXRfcmVtb3ZlMXdlZWsnLAoJCSAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnaW5wdXRfcmVtb3ZlMXdlZWsnLAoJCQkJCSAgICR0aGlzLT5MYW5nKCdyZW1vdmUxd2VlaycpLCdvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKS4nXCcpIicpKTsKCiAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZW1vdmUxbW9udGgnLAoJCSAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnaW5wdXRfcmVtb3ZlMW1vbnRoJywKCQkJCQkgICAkdGhpcy0+TGFuZygncmVtb3ZlMW1vbnRoJyksCgkJCQkJICAgJ29uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy4kdGhpcy0+TGFuZygnYXJleW91c3VyZScpLidcJykiJykpOwogICRzbWFydHktPmFzc2lnbignaW5wdXRfcmVtb3ZlMWRheScsCgkJICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdpbnB1dF9yZW1vdmUxZGF5JywKCQkJCQkgICAkdGhpcy0+TGFuZygncmVtb3ZlMWRheScpLAoJCQkJCSAgICdvbmNsaWNrPSJyZXR1cm4gY29uZmlybShcJycuJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmUnKS4nXCcpIicpKTsKICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2xpc3QxZGF5JywKCQkgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X2xpc3QxZGF5JywKCQkJCQkgICAkdGhpcy0+TGFuZygnbGlzdDFkYXknKSkpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3ZlcmlmeXBhZ2UnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd2ZXJpZnlwYWdlJykpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3ByZWZzLnRwbCcpOwoKLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_selpkg_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgplY2hvICR0aGlzLT5HZXRTaW5nbGVUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwnc2VscGtndGVtcGxhdGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWxwa2d0ZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3NlbHBrZ190ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnX3NlbHBrZ190ZW1wbGF0ZS50cGwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3NlbHBrZ190ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0YWRtaW4nLCAxKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_userstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMKIyAgd2l0aCBhIHdlYnNpdGUuCiMgCiMgVmVyc2lvbjogMS4xLjUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwoKJGdDbXMgPSBjbXNtcygpOwokZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKLy8gZGlzcGxheSBhIHRhYmxlIHdpdGggdXNlcmlkLCBncm91cF9pZCAobmFtZT8pLCB1c2VybmFtZSwgY3JlYXRlZGF0ZSwgPGVtYWlsIGFkZHJlc3M+Ci8vIGFuZCBhbGxvdyB0aGUgYWRtaW4gdG8gZWRpdCwgZGVsZXRlLCBhbmQgb3Igb3B0aW9uYWxseSBzZW5kIHRoYXQgdXNlciBhIG1lc3NhZ2UKLy8gc2hvdWxkIGFsc28gaGF2ZSBhIGNoZWNrYm94IHNvIHRoYXQgdGhlIGFkbWluIGNhbiBkZWxldGUgYSBidW5jaCBvIHVzZXJzIGF0IHRoZSBzYW1lIHRpbWUKLy8gYW5kIGEgc2VsZWN0IGFsbCB3b3VsZCBiZSBjb29sLgoKLy8gZ2V0IGEgbGlzdCBvZiBhbGwgb2YgdGhlIGdydXBzCiRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CgppZighJG1hbXMpCnsKICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2ZldXNlcnNtb2R1bGUnKSk7CiAgCiAgcmV0dXJuOwp9CgokdXNlcm5hbWVfaXNfZW1haWwgPSAkbWFtcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKTsKCiRncnBsaXN0ID0gYXJyYXkoKTsKewogICR0X2dycGxpc3QgPSAkbWFtcy0+R2V0R3JvdXBMaXN0RnVsbCgpOwogIAogIGlmKCFpc19hcnJheSgkdF9ncnBsaXN0KSB8fCBjb3VudCgkdF9ncnBsaXN0KSA9PSAwKQogIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ3JvdXBzJykpOwogICAgcmV0dXJuOwogIH0KICAvLyBmb3Igb3VyIHB1cnBvc2VzIGhlcmUsIHdlJ2xsIHJlLW9yZyB0X2dyb3VwbGlzdCB0byBiZSBrZXllZCBieSBpZAogIGZvcmVhY2goJHRfZ3JwbGlzdCBhcyAkZ3JwKQogIHsKICAgICRncnBsaXN0WyRncnBbJ2lkJ11dID0gJGdycDsKICB9Cn0KCi8vIGFuIGFycmF5IGZvciB0aGUgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb25zICh3ZSdyZSBnb25uYSBjYWNoZSBlbSkKJHJlbGF0aW9ucyA9IGFycmF5KCk7CgovLyBhbiBhcnJheSBmb3IgdGhlIGVtYWlsIGZpZWxkIG5hbWVzLCBieSBncm91cCBpZCAod2UncmUgZ29ubmEgY2FjaGUgZW0gdG9vKQokZW1haWxmbGRzID0gYXJyYXkoKTsKCi8vIGdldCB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbnMKJHByb3BzID0gJG1hbXMtPkdldFByb3BlcnR5RGVmbnMoKTsKCiMgd2UgYXJlIG5vdCBlbmZvcmNpbmcgcHJvcGVydGllcwovL2lmKCRwcm9wcyA9PSBGQUxTRSkKLy97Ci8vICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Byb3BkZWZucycpKTsKLy8KLy8gIHJldHVybjsKLy99CgovLyBzb21lIGxhYmVscwokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RvX2RlbGV0ZXVzZXJzYnVsaycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2RlbGV0ZScsJHRoaXMtPkxhbmcoJ2RlbGV0ZXNlbHVzZXJzJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd1c2VyaWR0ZXh0JywkdGhpcy0+TGFuZygnaGRyX3VzZXJpZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd1c2VybmFtZXRleHQnLCR0aGlzLT5MYW5nKCdoZHJfdXNlcm5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignZ3JwbmFtZXRleHQnLCR0aGlzLT5MYW5nKCdoZHJfZ3JwbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjcmVhdGVkdGV4dCcsJHRoaXMtPkxhbmcoJ2hkcl9jcmVhdGVkJykpOwokc21hcnR5LT5hc3NpZ24oJ2VtYWlsdGV4dCcsJHRoaXMtPkxhbmcoJ2hkcl9lbWFpbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZWxldGV0ZXh0JywkdGhpcy0+TGFuZygnc2VsZWN0JykpOwokc21hcnR5LT5hc3NpZ24oJ2NoZWNrYWxsYm94JywKCQkgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLAoJCQkJCSR0aGlzLT5MYW5nKCdjaGVja19hbGwnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwKCQkJCQknb25DbGljaygpPSJjaGVja0FsbChkb2N1bWVudC5mb3Jtc1swXSx0cnVlKTtyZXR1cm4gZmFsc2UiJykuCgkJICAgICAgIiZuYnNwOyZuYnNwOyIuCgkJICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwKCQkJCQkkdGhpcy0+TGFuZygndW5jaGVja19hbGwnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwKCQkJCQknb25DbGljaygpPSJjaGVja0FsbChkb2N1bWVudC5mb3Jtc1swXSxmYWxzZSk7cmV0dXJuIGZhbHNlIicpKTsKICAgIAovLyBzZWxlY3QgYWxsIHRoZSB1c2Vycwokcm93YXJyYXkgPSBhcnJheSgpOwovLyB0b2RvLCBhZGQgc29tZSByZWFsIGZpbHRlcmluZyBoZXJlCiRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIExJTUlUIDI1MCI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEgKTsKaWYoICRkYnJlc3VsdCAmJiAoJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgKSB7CiAgLy8gd2UgaGF2ZSByb3dzCiAgJHJvd2NsYXNzID0gJ3JvdzEnOwogIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkgewogICAgJHEyID0gJ1NFTEVDVCBnaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fZ3JwcyBXSEVSRSB1c2VyID0gPyc7CiAgICAkZ2lkcyA9ICRkYi0+R2V0Q29sKCRxMixhcnJheSgkcm93WydpZCddKSk7CgogICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzcygpOwogICAgJG9uZXJvdy0+dXNlcmlkID0gJHJvd1snaWQnXTsKICAgICRvbmVyb3ctPnVzZXJuYW1lID0gJHJvd1sndXNlcm5hbWUnXTsKICAgICRvbmVyb3ctPmNyZWF0ZWQgPSAkcm93WydjcmVhdGVkYXRlJ107CiAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKICAgIGlmKCBpc19hcnJheSgkZ2lkcykgJiYgY291bnQoJGdpZHMpICkgewogICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCggJGdpZHMgYXMgJGdpZCApIHsKCWlmKCBpc3NldCgkZ3JwbGlzdFskZ2lkXSkgKSAkdG1wW10gPSAkZ3JwbGlzdFskZ2lkXVsnZ3JvdXBuYW1lJ107CiAgICAgIH0KICAgICAgJG9uZXJvdy0+Z3JwbmFtZSA9IGltcGxvZGUoJywnLCR0bXApOwoKICAgICAgLy8gbm93IHdlIGhhdmUgYSBncm91cCBpZC4uLiBoYXZlIHRvIGdldCBhIGxpc3Qgb2YgdGhlIGdyb3VwcyBwcm9wZXJ0aWVzCiAgICAgIGlmKCAhJHVzZXJuYW1lX2lzX2VtYWlsICkgewoJZm9yZWFjaCggJGdpZHMgYXMgJGdpZCApIHsKCSAgaWYoICFpc3NldCggJHJlbGF0aW9uc1sgJGdpZCBdICkgKSB7CgkgICAgLy8gbm90IGluIHRoZSBjYWNoZSwgc28gZ2V0IHRoZW0KCSAgICAkdF9yZWxhdGlvbnMgPSAkbWFtcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdpZCApOwoJICAgIGlmKCAkdF9yZWxhdGlvbnNbMF0gPT0gZmFsc2UgKSB7CgkgICAgICAvLyB0aGlzIGlzIHVnbHkgZm9yIHRoZSB1c2VyIHRvIHNlZQoJICAgICAgLy8gYnV0IGF0IGxlYXN0IHRoZSBhZG1pbiB3aWxsIGJlIGFibGUgdG8gZmlndXJlIGl0IG91dAoJICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnLCR0X3JlbGF0aW9uc1sxXSkgKTsKCSAgICAgIHJldHVybjsKCSAgICB9CgoJICAgIC8vIGFuZCBjYWNoZSB0aGVtCgkgICAgJHJlbGF0aW9uc1sgJGdpZCBdID0gJHRfcmVsYXRpb25zOwoJICB9Cgl9CgoJLy8gbm93LCBnbyB0aHJvdWdoIGFsbCBvZiB0aGUgcmVsYXRpb25zLCB4cmVmIHdpdGggdGhlIHByb3BlcnRpZXMgZmllbGQKCS8vIGFuZCB0cnkgdG8gZmluZCBvbmUgdGhhdCdzIGFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgZ3JvdXAKCS8vIHdlJ2xsIGNhY2hlIHRoYXQgdG9vCglpZiggIWlzc2V0KCAkZW1haWxmbGRzWyAkZ2lkIF0gKSApIHsKCSAgJGZvdW5kID0gZmFsc2U7CgkgIC8vIG5vdCBpbiB0aGUgY2FjaGUsIHNvIHdlJ2xsIGZpbmQgb25lCgkgIGZvcmVhY2goICRyZWxhdGlvbnNbICRnaWQgXSBhcyAkcmVsbiApIHsKCSAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJG9uZXByb3AgKSB7CgkgICAgICBpZiggJHJlbG5bJ25hbWUnXSA9PSAkb25lcHJvcFsnbmFtZSddICYmICRvbmVwcm9wWyd0eXBlJ10gPT0gMiApIHsKCQkvLyBlbWFpbCAKCQkvLyB3b29ob28sIHdlIGZvdW5kIGFuIGVtYWlsIGZpZWxkIGluIHRoZSBwcm9wZXJ0eSByZWxhdGlvbnMgZm9yIHRoaXMKCQkvLyBncm91cAoJCSRlbWFpbGZsZHNbJHJvd1snZ3JvdXBfaWQnXV0gPSAkcmVsblsnbmFtZSddOwoJCSRmb3VuZCA9IHRydWU7CgkJYnJlYWs7CgkgICAgICB9CgkgICAgfQoJICB9CgkJCgkgIGlmKCAhJGZvdW5kICkgewoJICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZW1haWxhZGRyZXNzJykpOwoJICAgIHJldHVybjsKCSAgfQoJfQogICAgICAKCS8vIG5vdywgZ2V0IHRoZSBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIHVzZXIKCSRvbmVyb3ctPmVtYWlsID0gJHRoaXMtPkdldFRlbXBVc2VyUHJvcGVydHkoJHJvd1snaWQnXSwkZW1haWxmbGRzWyRyb3dbJ2dyb3VwX2lkJ11dLCAkdGhpcy0+TGFuZygndW5rbm93bicpKTsKICAgICAgfSAvLyB1c2VybmFtZSBpcyBub3QgZW1haWwuCiAgICB9IC8vIGhhdmUgZ3JvdXBzCgoKICAgICRvbmVyb3ctPmVkaXRfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdlZGl0dGVtcHVzZXInLCRyZXR1cm5pZCxhcnJheSgndXNlcl9pZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdlZGl0dGVtcHVzZXInLCAkcmV0dXJuaWQsCgkJCQkJICAgY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCktPkRpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkJCQkJCQkJJHRoaXMtPkxhbmcgKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkgICBhcnJheSAoJ3VzZXJfaWQnID0+ICRyb3dbJ2lkJ10pKTsKICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPQogICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZGVsZXRldGVtcHVzZXInLCAkcmV0dXJuaWQsCgkJCSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKS0+RGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLAoJCQkJCQkJCSAgICAgICR0aGlzLT5MYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJIGFycmF5ICgndXNlcl9pZCcgPT4gJHJvd1snaWQnXSksCgkJCSAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmVfZGVsZXRldXNlcicpKTsKICAgICRvbmVyb3ctPnB1c2hsaW5rID0gCiAgICAgICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsJ3B1c2h1c2VybGl2ZScsJHJldHVybmlkLAoJCQkgY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCktPkRpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJywKCQkJCQkJCQkgICAgICAkdGhpcy0+TGFuZygncHVzaF9saXZlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJIGFycmF5ICgndXNlcl9pZCcgPT4gJHJvd1snaWQnXSksCgkJCSAkdGhpcy0+TGFuZygnYXJleW91c3VyZV9wdXNodXNlcicpKTsKCiAgICAkb25lcm93LT5tYXJrZGVsZXRlYm94ID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdtYXJrZGVsZXRlXycuJHJvd1snaWQnXSwkcm93WydpZCddKTsKICAgICRyb3dhcnJheVtdID0gJG9uZXJvdzsKICAgICgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKICB9Cn0KaWYoICR1c2VybmFtZV9pc19lbWFpbCApICRzbWFydHktPmFzc2lnbigndXNlcm5hbWVfaXNfZW1haWwnLDEpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5KTsKJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRyb3dhcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zZm91bmQnLCR0aGlzLT5MYW5nKCd1c2Vyc2ZvdW5kJykpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3VzZXJsaXN0LnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/functions.adminpanel.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byByZWdpc3RlciB0aGVtc2VsdmVzCiMgIHdpdGggYSB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5SZWcyVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluUmVnMlRlbXBsYXRlVGFiKCRtb2R1bGUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKewogICAgJHRwbCA9ICRtb2R1bGUtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzZXRfcmVnMnRlbXBsYXRlLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCRtb2R1bGUtPlhUQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2V0X3JlZzJ0ZW1wbGF0ZScpKTsKICAgICR0cGwtPmFzc2lnbigncmVnMnRlbXBsYXRlJywkbW9kdWxlLT5HZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcydGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIERpc3BsYXlBZG1pbkVtYWlsQ29uZmlybWF0aW9uVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluRW1haWxDb25maXJtYXRpb25UZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZW1haWxjb25maXJtX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfZW1haWxjb25maXJtX3RlbXBsYXRlJykpOwogICAgJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkbW9kdWxlLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCdzdWJqZWN0JywkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtYW1zcmVnX2VtYWlsY29uZmlybV9zdWJqZWN0JykpOwogICAgJHRwbC0+YXNzaWduKCdib2R5X3RwbCcsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWxjb25maXJtX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZVRhYigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmZ1bmN0aW9uIF9EaXNwbGF5QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZmluYWxtZXNzYWdlX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfZmluYWxtZXNzYWdlX3RlbXBsYXRlJykpOwogICAgJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkbW9kdWxlLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCd0ZW1wbGF0ZScsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZmluYWxtZXNzYWdlX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5FbWFpbFVzZXJFZGl0ZWRUZW1wbGF0ZVRhYigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmZ1bmN0aW9uIF9EaXNwbGF5QWRtaW5FbWFpbFVzZXJFZGl0ZWRUZW1wbGF0ZVRhYigkbW9kdWxlLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCnsKICAgICR0cGwgPSAkbW9kdWxlLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fdXNlcmluZm9lZGl0ZWRfdGFiLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1zdGFydCgkaWQsJ3NldF9lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3N1YmplY3QnLCRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3N1YmplY3QnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2h0bWx0ZW1wbGF0ZScsJG1vZHVsZS0+R2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5QWRtaW5TZW5kQW5vdGhlckVtYWlsVGVtcGxhdGVUYWIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpmdW5jdGlvbiBfRGlzcGxheUFkbWluU2VuZEFub3RoZXJFbWFpbFRlbXBsYXRlVGFiKCRtb2R1bGUsICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKewogICAgJHRwbCA9ICRtb2R1bGUtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9zZW5kYW5vdGhlcmVtYWlsX3RhYi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpKTsKICAgICR0cGwtPmFzc2lnbignZm9ybWVuZCcsJG1vZHVsZS0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICR0cGwtPmFzc2lnbigndGVtcGxhdGUnLCRtb2R1bGUtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3Bvc3RfdGVtcGxhdGUnLCRtb2R1bGUtPkdldFRlbXBsYXRlKCdtYW1zcmVnX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/functions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlbGZSZWdpc3RyYXRpb24gKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcwojICB3aXRoIGEgd2Vic2l0ZS4KIwojIFZlcnNpb246IDEuMS41CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBNQU1TVXRpbHMKewogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgZnVuY3Rpb24gYXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCggJGFycjEsICRhcnIyICkKICAgIHsKICAgICAgICAkeHhyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIC8vIGFkZCBpdGVtcyBjb21tb24gdG8gYXJyMSBhbmQgYXJyMgogICAgICAgIC8vIGJ1dCBmYXZvciByZXF1aXJlZCBpdGVtcwogICAgICAgIGlmKCAhaXNfYXJyYXkoICRhcnIxICkgfHwgIWlzX2FycmF5KCAkYXJyMiApICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGFycjIgYXMgJGEyICkgewogICAgICAgICAgICAgICAgaWYoICRhMVsnbmFtZSddID09ICRhMlsnbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkYTFbJ3JlcXVpcmVkJ10gPT0gMiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHh4cmVzdWx0W10gPSAkYTE7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHh4cmVzdWx0W10gPSAkYTI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gYWRkIGl0ZW1zIGluIGFycjEgbm90IGluIHJlc3VsdAogICAgICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApIHsKICAgICAgICAgICAgJGZvdW5kID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2goICR4eHJlc3VsdCBhcyAkcmVzICkgewogICAgICAgICAgICAgICAgaWYoICRhMVsnbmFtZSddID09ICRyZXNbJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICAgICAkZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJGZvdW5kICkgJHh4cmVzdWx0W10gPSAkYTE7CiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgaXRlbXMgaW4gYXJyMiBub3QgaW4gcmVzdWx0CiAgICAgICAgZm9yZWFjaCggJGFycjIgYXMgJGEyICkgewogICAgICAgICAgICAkZm91bmQgPSBmYWxzZTsKICAgICAgICAgICAgZm9yZWFjaCggJHh4cmVzdWx0IGFzICRyZXMgKSB7CiAgICAgICAgICAgICAgICBpZiggJGEyWyduYW1lJ10gPT0gJHJlc1snbmFtZSddICkgewogICAgICAgICAgICAgICAgICAgICRmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkZm91bmQgKSAkeHhyZXN1bHRbXSA9ICRhMjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR4eHJlc3VsdDsKICAgIH0KCiAgICBzdGF0aWMgZnVuY3Rpb24gY29tcGFyZV9lbGVtZW50c19ieV9zb3J0b3JkZXJfa2V5KCAkZTEsICRlMiApCiAgICB7CiAgICAgICAgaWYoICRlMVsnc29ydF9rZXknXSA8ICRlMlsnc29ydF9rZXknXSApIHsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAkZTFbJ3NvcnRfa2V5J10gPiAkZTJbJ3NvcnRfa2V5J10gKSB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGltcGxvZGVfd2l0aF9rZXkoJGFzc29jLCAkaW5nbHVlID0gJz0nLCAkb3V0Z2x1ZSA9ICcmJykKICAgIHsKICAgICAgICAkcmV0dXJuID0gbnVsbDsKICAgICAgICBmb3JlYWNoICgkYXNzb2MgYXMgJHRrID0+ICR0dikgJHJldHVybiAuPSAkb3V0Z2x1ZS4kdGsuJGluZ2x1ZS4kdHY7CiAgICAgICAgcmV0dXJuIHN1YnN0cigkcmV0dXJuLHN0cmxlbigkb3V0Z2x1ZSkpOwogICAgfQoKICAgIHN0YXRpYyBmdW5jdGlvbiBteUNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2VsZWN0ZWR2YWx1ZT0nJywgJGFkZHR0ZXh0PScnKQogICAgewogICAgICAgICR0ZXh0ID0gJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iJy4kaWQuJG5hbWUuJyIgdmFsdWU9IicuJHZhbHVlLiciJzsKICAgICAgICAkYXJyID0gZXhwbG9kZSgiLCIsJHNlbGVjdGVkdmFsdWUpOwogICAgICAgIGZvcmVhY2goICRhcnIgYXMgJGEgKSB7CiAgICAgICAgICAgIGlmICgkYSA9PSAkdmFsdWUpICAkdGV4dCAuPSAnICcgLiAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgICAgIH0KICAgICAgICBpZiAoJGFkZHR0ZXh0ICE9ICcnKSAkdGV4dCAuPSAnICcuJGFkZHR0ZXh0OwogICAgICAgICR0ZXh0IC49ICIgLz5cbiI7CiAgICAgICAgcmV0dXJuICR0ZXh0OwogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gbXlDcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkYWRkdGV4dD0nJywgJGRlbGltPScsJykKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoICR2YWx1ZSApICkgewogICAgICAgICAgICAkdmFsID0gTUFNU1V0aWxzOjppbXBsb2RlX3dpdGhfa2V5KCAkdmFsdWUgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR2YWwgPSAkdmFsdWU7CiAgICAgICAgfQogICAgICAgICR2YWwgPSBzdHJfcmVwbGFjZSgnIicsICcmcXVvdDsnLCAkdmFsKTsKICAgICAgICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsLiciJzsKICAgICAgICBpZiAoJGFkZHRleHQgIT0gJycpIHsKICAgICAgICAgICAgJHRleHQgLj0gJyAnLiRhZGR0ZXh0OwogICAgICAgIH0KICAgICAgICAkdGV4dCAuPSAiIC8+XG4iOwogICAgICAgIHJldHVybiAkdGV4dDsKICAgIH0KCiAgICBmdW5jdGlvbiBpc19hc3NvY2lhdGl2ZSgmJGFycmF5KXsKICAgICAgICBpZiAoIWlzX2FycmF5KCRhcnJheSkpIHJldHVybiBmYWxzZTsKICAgICAgICBmb3JlYWNoKGFycmF5X2tleXMoJGFycmF5KSBhcyAka2V5PT4kdmFsdWUpIHsKICAgICAgICAgICAgaWYoICFpc19udW1lcmljKCRrZXkpICkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCn0gLy8gRW5kIG9mIGNsYXNzCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/js.cookie.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEphdmFTY3JpcHQgQ29va2llIHYyLjIuMQogKiBodHRwczovL2dpdGh1Yi5jb20vanMtY29va2llL2pzLWNvb2tpZQogKgogKiBDb3B5cmlnaHQgMjAwNiwgMjAxNSBLbGF1cyBIYXJ0bCAmIEZhZ25lciBCcmFjawogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICovCjsoZnVuY3Rpb24gKGZhY3RvcnkpIHsKCXZhciByZWdpc3RlcmVkSW5Nb2R1bGVMb2FkZXI7CglpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CgkJZGVmaW5lKGZhY3RvcnkpOwoJCXJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7Cgl9CglpZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKSB7CgkJbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7CgkJcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyID0gdHJ1ZTsKCX0KCWlmICghcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyKSB7CgkJdmFyIE9sZENvb2tpZXMgPSB3aW5kb3cuQ29va2llczsKCQl2YXIgYXBpID0gd2luZG93LkNvb2tpZXMgPSBmYWN0b3J5KCk7CgkJYXBpLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7CgkJCXdpbmRvdy5Db29raWVzID0gT2xkQ29va2llczsKCQkJcmV0dXJuIGFwaTsKCQl9OwoJfQp9KGZ1bmN0aW9uICgpIHsKCWZ1bmN0aW9uIGV4dGVuZCAoKSB7CgkJdmFyIGkgPSAwOwoJCXZhciByZXN1bHQgPSB7fTsKCQlmb3IgKDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50c1sgaSBdOwoJCQlmb3IgKHZhciBrZXkgaW4gYXR0cmlidXRlcykgewoJCQkJcmVzdWx0W2tleV0gPSBhdHRyaWJ1dGVzW2tleV07CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglmdW5jdGlvbiBkZWNvZGUgKHMpIHsKCQlyZXR1cm4gcy5yZXBsYWNlKC8oJVswLTlBLVpdezJ9KSsvZywgZGVjb2RlVVJJQ29tcG9uZW50KTsKCX0KCglmdW5jdGlvbiBpbml0IChjb252ZXJ0ZXIpIHsKCQlmdW5jdGlvbiBhcGkoKSB7fQoKCQlmdW5jdGlvbiBzZXQgKGtleSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJYXR0cmlidXRlcyA9IGV4dGVuZCh7CgkJCQlwYXRoOiAnLycKCQkJfSwgYXBpLmRlZmF1bHRzLCBhdHRyaWJ1dGVzKTsKCgkJCWlmICh0eXBlb2YgYXR0cmlidXRlcy5leHBpcmVzID09PSAnbnVtYmVyJykgewoJCQkJYXR0cmlidXRlcy5leHBpcmVzID0gbmV3IERhdGUobmV3IERhdGUoKSAqIDEgKyBhdHRyaWJ1dGVzLmV4cGlyZXMgKiA4NjRlKzUpOwoJCQl9CgoJCQkvLyBXZSdyZSB1c2luZyAiZXhwaXJlcyIgYmVjYXVzZSAibWF4LWFnZSIgaXMgbm90IHN1cHBvcnRlZCBieSBJRQoJCQlhdHRyaWJ1dGVzLmV4cGlyZXMgPSBhdHRyaWJ1dGVzLmV4cGlyZXMgPyBhdHRyaWJ1dGVzLmV4cGlyZXMudG9VVENTdHJpbmcoKSA6ICcnOwoKCQkJdHJ5IHsKCQkJCXZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CgkJCQlpZiAoL15bXHtcW10vLnRlc3QocmVzdWx0KSkgewoJCQkJCXZhbHVlID0gcmVzdWx0OwoJCQkJfQoJCQl9IGNhdGNoIChlKSB7fQoKCQkJdmFsdWUgPSBjb252ZXJ0ZXIud3JpdGUgPwoJCQkJY29udmVydGVyLndyaXRlKHZhbHVlLCBrZXkpIDoKCQkJCWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKQoJCQkJCS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLCBkZWNvZGVVUklDb21wb25lbnQpOwoKCQkJa2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKQoJCQkJLnJlcGxhY2UoLyUoMjN8MjR8MjZ8MkJ8NUV8NjB8N0MpL2csIGRlY29kZVVSSUNvbXBvbmVudCkKCQkJCS5yZXBsYWNlKC9bXChcKV0vZywgZXNjYXBlKTsKCgkJCXZhciBzdHJpbmdpZmllZEF0dHJpYnV0ZXMgPSAnJzsKCQkJZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7CgkJCQlpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0pIHsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnOyAnICsgYXR0cmlidXRlTmFtZTsKCQkJCWlmIChhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdID09PSB0cnVlKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJLy8gQ29uc2lkZXJzIFJGQyA2MjY1IHNlY3Rpb24gNS4yOgoJCQkJLy8gLi4uCgkJCQkvLyAzLiAgSWYgdGhlIHJlbWFpbmluZyB1bnBhcnNlZC1hdHRyaWJ1dGVzIGNvbnRhaW5zIGEgJXgzQiAoIjsiKQoJCQkJLy8gICAgIGNoYXJhY3RlcjoKCQkJCS8vIENvbnN1bWUgdGhlIGNoYXJhY3RlcnMgb2YgdGhlIHVucGFyc2VkLWF0dHJpYnV0ZXMgdXAgdG8sCgkJCQkvLyBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzQiAoIjsiKSBjaGFyYWN0ZXIuCgkJCQkvLyAuLi4KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnPScgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdLnNwbGl0KCc7JylbMF07CgkJCX0KCgkJCXJldHVybiAoZG9jdW1lbnQuY29va2llID0ga2V5ICsgJz0nICsgdmFsdWUgKyBzdHJpbmdpZmllZEF0dHJpYnV0ZXMpOwoJCX0KCgkJZnVuY3Rpb24gZ2V0IChrZXksIGpzb24pIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIGphciA9IHt9OwoJCQkvLyBUbyBwcmV2ZW50IHRoZSBmb3IgbG9vcCBpbiB0aGUgZmlyc3QgcGxhY2UgYXNzaWduIGFuIGVtcHR5IGFycmF5CgkJCS8vIGluIGNhc2UgdGhlcmUgYXJlIG5vIGNvb2tpZXMgYXQgYWxsLgoJCQl2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZSA/IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKSA6IFtdOwoJCQl2YXIgaSA9IDA7CgoJCQlmb3IgKDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKCQkJCXZhciBwYXJ0cyA9IGNvb2tpZXNbaV0uc3BsaXQoJz0nKTsKCQkJCXZhciBjb29raWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCc9Jyk7CgoJCQkJaWYgKCFqc29uICYmIGNvb2tpZS5jaGFyQXQoMCkgPT09ICciJykgewoJCQkJCWNvb2tpZSA9IGNvb2tpZS5zbGljZSgxLCAtMSk7CgkJCQl9CgoJCQkJdHJ5IHsKCQkJCQl2YXIgbmFtZSA9IGRlY29kZShwYXJ0c1swXSk7CgkJCQkJY29va2llID0gKGNvbnZlcnRlci5yZWFkIHx8IGNvbnZlcnRlcikoY29va2llLCBuYW1lKSB8fAoJCQkJCQlkZWNvZGUoY29va2llKTsKCgkJCQkJaWYgKGpzb24pIHsKCQkJCQkJdHJ5IHsKCQkJCQkJCWNvb2tpZSA9IEpTT04ucGFyc2UoY29va2llKTsKCQkJCQkJfSBjYXRjaCAoZSkge30KCQkJCQl9CgoJCQkJCWphcltuYW1lXSA9IGNvb2tpZTsKCgkJCQkJaWYgKGtleSA9PT0gbmFtZSkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9IGNhdGNoIChlKSB7fQoJCQl9CgoJCQlyZXR1cm4ga2V5ID8gamFyW2tleV0gOiBqYXI7CgkJfQoKCQlhcGkuc2V0ID0gc2V0OwoJCWFwaS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7CgkJCXJldHVybiBnZXQoa2V5LCBmYWxzZSAvKiByZWFkIGFzIHJhdyAqLyk7CgkJfTsKCQlhcGkuZ2V0SlNPTiA9IGZ1bmN0aW9uIChrZXkpIHsKCQkJcmV0dXJuIGdldChrZXksIHRydWUgLyogcmVhZCBhcyBqc29uICovKTsKCQl9OwoJCWFwaS5yZW1vdmUgPSBmdW5jdGlvbiAoa2V5LCBhdHRyaWJ1dGVzKSB7CgkJCXNldChrZXksICcnLCBleHRlbmQoYXR0cmlidXRlcywgewoJCQkJZXhwaXJlczogLTEKCQkJfSkpOwoJCX07CgoJCWFwaS5kZWZhdWx0cyA9IHt9OwoKCQlhcGkud2l0aENvbnZlcnRlciA9IGluaXQ7CgoJCXJldHVybiBhcGk7Cgl9CgoJcmV0dXJuIGluaXQoZnVuY3Rpb24gKCkge30pOwp9KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX3NlY3VyaXR5J10gPSAnSW52YWxpZCBmb3JtIHN1Ym1pc3Npb24gKHNvbWUgc2VjdXJpdHkgZGF0YSBpcyBtaXNzaW5nIG9yIGludmFsaWQpLic7CiRsYW5nWydpbmZvX3ZlcmlmeXBhZ2UnXSA9ICdTZWxlY3QgYSBjb250ZW50IHBhZ2UgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdmVyaWZpY2F0aW9uIGZvcm0nOwokbGFuZ1sncHJvbXB0X3ZlcmlmeXBhZ2UnXSA9ICdQYWdlIGZvciB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWyd1c2VyX21vZGlmaWVkJ10gPSAnVXNlciBpbmZvIGVkaXRlZCc7CiRsYW5nWydlcnJvcl9tdXN0c3BlY2lmeXRleHR0ZW1wbGF0ZSddID0gJ1BsZWFzZSBzcGVjaWZ5IHNvbWUgY29udGVudCBmb3IgdGhlIHRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfcGFyYW1fcmVndGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNpZ251cCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLic7CiRsYW5nWydoZWxwX3BhcmFtX3ZlcmlmeXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB2ZXJpZnkgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLic7CiRsYW5nWydlcnJfc3Vic2NybW9udGgnXSA9ICdTb3JyeSwgbW9udGhseSBzdWJzY3JpcHRpb25zIGNhbiBvbmx5IHJlY3VyIG9uIDEsIDMsIDYsIG9yIDEyIG1vbnRoIGJvdW5kYXJpZXMnOwokbGFuZ1snZXJyX3N1YnNjcnllYXInXSA9ICdTb3JyeSwgeWVhcmx5IHN1YnNjcmlwdGlvbnMgY2FuIG9ubHkgcmVjdXIgZXZlcnkgMSB5ZWFyJzsKJGxhbmdbJ2Vycm9yX3N1YnNjcmliZV9tdWx0aXBsZSddID0gJ1NvcnJ5LCB0aGlzIG1vZHVsZSBkb2VzIG5vdCBhbGxvdyBjcmVhdGluZyBtdWx0aXBsZSBzdWJzY3JpcHRpb25zIGF0IHRoaXMgc3RhZ2UnOwokbGFuZ1snaW5mb19yZWdpc3RyYXRpb25fdGVtcGxhdGVzJ10gPSAnSGVyZSB5b3Ugd2lsbCBmaW5kIHRoZSB0ZW1wbGF0ZXMgdXNlZCB3aGVuIGEgdXNlciBmaXJzdCByZWdpc3RlcnMsIGFuZCBkaXNwbGF5ZWQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW5fbmVlZHZhbGlkYXRpb24nXSA9ICdIbW1tLiAgSXQgbG9va3MgbGlrZSBzb21lYm9keSAobWF5YmUgeW91KSBoYXMgYWxyZWFkeSByZWdpc3RlcmVkIHRoaXMgZW1haWwgYWRkcmVzcywgYnV0IG5vdCBmaW5pc2hlZCB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuICAgUGxlYXNlIGNoZWNrIHlvdXIgZW1haWwnOwokbGFuZ1snbXNnX3VzZXJwdXNoZWQnXSA9ICdVc2VyIHB1c2hlZCB0byBNQU1TJzsKJGxhbmdbJ2luZm9fdmVyaWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHRvIGJ1aWxkIHRoZSB2ZXJpZmljYXRpb24gZm9ybSB3aGVuIHVzZXJzIGFyZSByZXF1aXJlZCB0byB2ZXJpZnkgdGhlaXIgY3JlZGVudGlhbHMgdXNpbmcgYSBjb2RlIHNlbnQgdG8gdGhlbSB2aWEgZW1haWwuJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ1ZlcmlmaWNhdGlvbiBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9lZGl0dXNlcl9ncm91cHMnXSA9ICdUaGlzIHVzZXIgaXMgcmVnaXN0ZXJpbmcgdG8gdGhlIGZvbGxvd2luZyBncm91cHMnOwokbGFuZ1sncHJvbXB0X3NlbmRsaXZlJ10gPSAnUHVzaCB0aGlzIHVzZXIgdG8gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9hdXRvY3JlYXRlZmV1J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdXNlcnMgaW4gdGhlIE1BTVMgbW9kdWxlJzsKJGxhbmdbJ2luZm9fYXV0b2NyZWF0ZWZldSddID0gJ0lmIGVuYWJsZWQsIHdoZW4gdGhlIHVzZXIgaXMgY3JlYXRlZCwgb3Igd2hlbiB0aGUgdXNlciBpcyB2ZXJpZmllZCAoZGVwZW5kaW5nIG9uIHRoZSBjb25maXJtYXRpb24gcHJlZmVyZXJuY2VzKSBVc2VycyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcHVzaGVkIHRvIHRoZSBNQU1TIG1vZHVsZSc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdSZWdpc3RyYXRpb24gVGVtcGxhdGUnOwokbGFuZ1sncG9zdF9yZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdQb3N0IFJlZ2lzdHJhdGlvbiBUZW1wbGF0ZSc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Byb21wdF9ub3RpZnlfZW1haWxfc3ViamVjdCddID0gJ1N1YmplY3Qgb2YgTm90aWZpY2F0aW9uIEVtYWlsJzsKJGxhbmdbJ3Byb21wdF9ub3RpZnlfZW1haWxfdGVtcGxhdGUnXSA9ICdOb3RpZmlmaWNhdGlvbiBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9sb3N0ZW1haWwnXSA9ICdMb3N0IHJlZ2lzdHJhdGlvbiBjb25maXJtYXRpb24nOwokbGFuZ1snaW5mb19hbm90aGVybXNnX3Bhc3N3ZCddID0gJ0ZvciBzZWN1cml0eSBwdXJwb3NlcywgcGxlYXNlIHJlLWVudGVyIHlvdXIgcGFzc3dvcmQgKHR3aWNlKSB3aGVuIHJlZ2lzdGVyaW5nIGZvciBhZGRpdGlvbmFsIGdyb3Vwcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1snbXNnX2FkZGVkb3RoZXJncm91cCddID0gJ1lvdSBoYXZlIHN1Y2Nlc3NmdWxseSBiZWVuIGFkZGVkIHRvIHRoZSBvdGhlciBncm91cChzKSByZXF1ZXN0ZWQuJzsKJGxhbmdbJ2Vycm9yX2VtYWlsaW52YWxpZCddID0gJ1RoZSB2YWx1ZSBlbnRlcmVkIGZvciBhbiBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQnOzsKJGxhbmdbJ3RpdGxlX2Fub3RoZXJncm91cCddID0gJ1JlZ2lzdGVyIGZvciBhbm90aGVyIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2luY29ycmVjdHBhc3N3b3JkJ10gPSAnU29ycnksIHRoZSBwYXNzd29yZCB5b3UgZW50ZXJlZCBpcyBpbmNvcnJlY3QuJzsKJGxhbmdbJ3RlbXBsYXRlX3NhdmVkJ10gPSAnVGVtcGxhdGUgc2F2ZWQnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2Fub3RoZXJncm91cF90ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgaXMgdXNlZCBieSB0aGUgJnF1b3Q7YW5vdGhlcmdyb3VwJnF1b3Q7IGFjdGlvbiB0byBhbGxvdyBhbiBleGlzdGluZyBNQU1TIHVzZXIgdG8gcmVnaXN0ZXIgdG8gYW4gYWRpdGlvbmFsIGdyb3VwLic7CiRsYW5nWydhbm90aGVyZ3JvdXBfdGVtcGxhdGUnXSA9ICdBbm90aGVyIEdyb3VwIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX25vdmFsaWRncm91cHMnXSA9ICdObyB2YWxpZCBncm91cHMgZm91bmQuJzsKJGxhbmdbJ211bHRpcGxlZ3JvdXBzJ10gPSAnTXVsdGlwbGUgR3JvdXBzJzsKJGxhbmdbJ3NpbmdsZWdyb3VwJ10gPSAnU2luZ2xlIEdyb3VwJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZXJyb3JfbXVsdGlwbGVwa2dzJ10gPSAnTXVsdGlwbGUgcGFja2FnZXMgc2VsZWN0ZWQsIGJ1dCBvbmx5IG9uZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1BsZWFzZSBzcGVjaWZ5IGEgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2NvZGUnXSA9ICdUaGUgcmVnaXN0cmF0aW9uIHZhbGlkYXRpb24gY29kZSBpcyBtaXNzaW5nJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgbWlzc2luZyc7CiRsYW5nWydldmVudGhhbmRsZXJzX2FkZGVkJ10gPSAnRXZlbnQgSGFuZGxlcnMgQWRkZWQnOwokbGFuZ1sncHJlZmVyZW5jZXNfdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIFVwZGF0ZWQnOwokbGFuZ1snc2V0dXBfY2FydF9ldmVudHMnXSA9ICdTZXR1cCBDYXJ0IEV2ZW50cyc7CiRsYW5nWydzZXR1cCddID0gJ1NldHVwJzsKJGxhbmdbJ2luZm9fc2V0dXBfY2FydF9ldmVudHMnXSA9ICdPY2Nhc2lvbmFsbHksIHdoZW4gdXBncmFkaW5nIGZyb20gYW4gb2xkZXIgdmVyc2lvbiwgY2FydCBldmVudHMgaGFuZGxlcnMgYXJlIG5vdCBhZGRlZC4gIENsaWNrIHRoaXMgYnV0dG9uIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlLiAgVGhpcyBpcyBpbXBvcnRhbnQgaWYgdXNpbmcgcGFpZCByZWdpc3RyYXRpb25zJzsKJGxhbmdbJ2luZm9fZm9yY2VfZW1haWxfdHdpY2UnXSA9ICdJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgdXNlciB3aWxsIGJlIHJlcXVpcmVkIHRvIGVudGVyIHRoZWlyIHVzZXJuYW1lIChvciBlbWFpbCBhZGRyZXNzKSB0d2ljZSwgYW5kIHRob3NlIHR3byB2YWx1ZXMgd2lsbCBiZSBjaGVja2VkIHRvIGJlIGlkZW50aWNhbCc7CiRsYW5nWydwcm9tcHRfcmVkaXJlY3RfcGFpZHBrZyddID0gJ1BhZ2UgSUQvQWxpYXMgdG8gcmVkaXJlY3QgdG8gZm9yIHBhaWQgcGFja2FnZXMnOwokbGFuZ1snaW5mb19yZWRpcmVjdF9wYWlkcGtnJ10gPSdBIHNtYXJ0eSB0ZW1wbGF0ZSB0aGF0IGRldGVybWluZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyBvZiBhIHBhZ2UgdG8gcmVkaXJlY3QgdG8gZm9yIHBhaWQgcGFja2FnZXMuIFR5cGljYWxseSBhIHVzZXIgdGhhdCBpcyByZWdpc3RlcmluZyBmb3IgeW91ciBzaXRlIG1heSB3YW50IHRvIGdvIGRpcmVjdGx5IHRvIHlvdXIgY2hlY2tvdXQgcGFnZSwgb3IgdG8gdGhlIHZpZXcgY2FydCBwYWdlLic7CiRsYW5nWydpbmZvX2NhcnRpdGVtX3N1bW1hcnlfdHBsJ10gPSAnQSBzbWFydHkgdGVtcGxhdGUgdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSBvZiB0aGUgc3VtbWFyeSB0aGF0IGFwcGVhcnMgd2l0aCB0aGlzIGxpbmUgaXRlbSBpbiB0aGUgY2FydCwgYW5kIGR1cmluZyB0aGUgY2hlY2tvdXQgcHJvY2Vzcy4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCBhIGRlZmF1bHQgaXMgdXNlZC4gIFZhbGlkIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIHskcGtnfSA8ZW0+KGFycmF5KTwvZW0+LiAgeyRza3V9LCB7JHVzZXJuYW1lfSwgeyR0bXB1aWR9IDxlbT4odGhlIHVzZXJzIHRlbXBvcmFyeSB1c2VyIGlkKTwvZW0+LiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IHNvbWUgcGF5bWVudCBnYXRld2F5cyBtYXkgb25seSBzdXBwb3J0IGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZm9yIHRoZSBzdW1tYXJ5Lic7CiRsYW5nWydwcm9tcHRfY2FydGl0ZW1fc3VtbWFyeV90cGwnXSA9ICdDYXJ0IEl0ZW0gU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWydwYWlkX3JlZ2lzdHJhdGlvbiddID0gJ1BhaWQgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ2luZm9fc2tpcF9maW5hbF9tc2cnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbnMgd2V0aGVyIHRoZSByZWdpc3RyYXRpb24gY29tcGxldGUgbWVzc2FnZSBzaG91bGQgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGFmdGVyIHJlZ2lzdHJhdGlvbi4nOwokbGFuZ1snbm90aWZpY2F0aW9ucyddID0gJ05vdGlmaWNhdGlvbnMnOwokbGFuZ1snaW5mb19sb2dpbl9hZnRlcnZlcmlmeSddID0gJ1RoaXMgb3B0aW9uIHdpbGwgYXV0b21hdGljYWxseSBsb2cgdGhlIHZpc2l0b3IgaW50byB0aGUgc2l0ZSBhZnRlciB0aGUgdXNlciBoYXMgYmVlbiBwdXNoZWQgdG8gdGhlIEZyb250ZW5kIFVzZXJzIG1vZHVsZS4gIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QgaWYgYWxsb3dpbmcgcGFpZCByZWdpc3RyYXRpb24nOwokbGFuZ1snaW5mb19lbWFpbF9jb25maXJtYXRpb24nXSA9ICdUaGlzIG9wdGlvbiBzZW5kcyBhbiBlbWFpbCB0byB0aGUgcmVnaXN0ZXJkIHVzZXIgYWNjb3VudCB3aXRoIGEgbGluayB0aGF0IGFsbG93cyB2ZXJpZnlpbmcgdGhhdCB0aGUgYWNjb3VudCBpbmZvcm1hdGlvbiBlbnRlcmVkIGlzIHZhbGlkLjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIG9wdGlvbiBzaG91bGQgbm90IGJlIHVzZWQgd2hlbiBhbGxvd2luZyBwYWlkIHJlZ2lzdHJhdGlvbnMnOwokbGFuZ1sncHJvbXB0X3JlZ2lzdHJhdGlvbl9zZXR0aW5ncyddID0gJ1JlZ2lzdHJhdGlvbiBTZXR0aW5ncyc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydtb250aCddID0gJ01vbnRoJzsKJGxhbmdbJ3llYXInXSA9ICdZZWFyJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbl9leHBpcmVzJ10gPSAnU3Vic2NyaXB0aW9uIHJlbmV3cyBldmVyeSc7CiRsYW5nWydlcnJvcl9wb2xpY3ljYW50YWRkJ10gPSAnVGhlIHBvbGljeSBvZiB0aGlzIHdlYnNpdGUgZG9lcyBub3QgYWxsb3cgYWRkaW5nIHRoaXMgaXRlbSB0byB5b3VyIGNhcnQuICBQbGVhc2UgY29udGFjdCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19zZWxlY3RfcGtnJ10gPSAnQWxsb3cgdXNlcnMgdG8gc2VsZWN0IGEgcGFja2FnZSAoZ3JvdXApIHRvIHJlZ2lzdGVyIHRvJzsKJGxhbmdbJ2luZm9fYWxsb3dzZWxlY3Rwa2cnXSA9ICdZb3UgbWF5IHdpc2ggdG8gYWxsb3cgeW91ciB1c2VycyB0byBzZWxlY3QgYW4gTUFNUyBncm91cCB0byByZWdpc3RlciB0by4gIFRoZXNlIGdyb3VwcyBhcmUgdGllZCB0byBwYWNrYWdlcyAoZm9yIGVjb21tZXJjZSBwdXJwb3NlcykuICBIb3dldmVyIGlmIG5vdCB1c2luZyB0aGUgRS1jb21tZXJjZSBmdW5jdGlvbmFsaXR5LCBwcmljZSBkYXRhIGFuZCBleHBpcnkgb3B0aW9ucyB3aWxsIG5vdCBiZSB2aXNpYmxlLic7CiRsYW5nWydlcnJvcl9ub3BrZ3MnXSA9ICdObyBwYWNrYWdlcyBoYXZlIGJlZW4gZGVmaW5lZCB0byBhbGxvdyB0aGUgY3VzdG9tZXIgdG8gcmVnaXN0ZXIgdG8nOwokbGFuZ1snc2VscGtnX3RlbXBsYXRlJ10gPSAnU2VsZWN0IFBhY2thZ2UgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VscGtnX3RlbXBsYXRlJ10gPSAnU2VsZWN0IFN1YnNjcmlwdGlvbiBQYWNrYWdlIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc2VscGtnX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHdoZW4gcGFpZCBzdWJzY3JpcHRpb25zIGFyZSBlbmFibGVkIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNlbGVjdCBhIHBhaWQgc3Vic2NyaXB0aW9uIHBhY2thZ2UnOwokbGFuZ1snZXJyb3JfcGtnY29zdCddID0gJ1BhY2thZ2UgQ29zdCBpcyBJbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX3BrZ2V4aXN0cyddID0gJ0EgcGFja2FnZSB3aXRoIGEgJXMgb2YgJXMgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydlZGl0X3BhaWRwa2cnXSA9ICdFZGl0IFBhY2thZ2UnOwokbGFuZ1snYWRkX3BhaWRwa2cnXSA9ICdBZGQgUGFja2FnZSc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcm91cCc7CiRsYW5nWydjb3N0J10gPSAnQ29zdCc7CiRsYW5nWydyZWdwa2dzX3RhYiddID0gJ1JlZ2lzdHJhdGlvbiBQYWNrYWdlcyc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcGFpZF9yZWdpc3RyYXRpb24nXSA9ICdSZXF1aXJlIG1lbWJlcnMgdG8gcGF5IGZvciByZWdpc3RyYXRpb24gdG8geW91ciBzaXRlJzsKJGxhbmdbJ2luZm9fYWxsb3dfcGFpZF9yZWdpc3RyYXRpb24nXSA9ICdQbGVhc2UgYWxzbyBzZWxlY3QgU2VsZnJlZ2lzdHJhdGlvbiBhcyBhIHNvdXJjZSBtb2R1bGUgZnJvbSBDR0Vjb21tZXJjZUJhc2UsIGFuZCBjb25maWd1cmUgdGhlICZxdW90O1BhaWQgUmVnaXN0cmF0aW9uJnF1b3Q7IFRhYi4gIEFkZGl0aW9uYWxseSwgeW91IG11c3QgZW5hYmxlIHBhY2thZ2Ugc2VsZWN0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbC1wYXNzd29yZCddID0gJ0VtYWlsIEFkZHJlc3MgYW5kIFBhc3N3b3JkJzsKJGxhbmdbJ3VzZXJuYW1lLXBhc3N3b3JkJ10gPSAnVXNlcm5hbWUgYW5kIFBhc3N3b3JkJzsKJGxhbmdbJ2hlbHBfcGFyYW1fYWxsb3dvdmVyd3JpdGUnXSA9IDw8PEVPVApUaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcndyaXRpbmcgZXhpc3RpbmcgTUFNUyB1c2Vycy4gSW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJlZmVyZW5jZXMgaW4gdGhlIFNlbGZSZWdpc3RyYXRpb24gYWRtaW4gcGFuZWwgeW91IGNhbiBzcGVjaWZ5IHdoYXQgZGF0YSB3aWxsIGJlIHVzZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYSB1c2VyIGFjY291bnQnOwpFT1Q7CiRsYW5nWydwcm9tcHRfcmVnX2FkZGl0aW9uYWxncm91cHMnXSA9ICdBbGxvdyBleGlzdGluZyB1c2VycyB0byByZWdpc3RlciBmb3IgYWRkaXRpb25hbCBncm91cHM/JzsKJGxhbmdbJ3Byb21wdF9hZGRpdGlvbmFsZ3JvdXBzX3NldHRpbmdzJ10gPSAnQWRkaXRpb25hbCBHcm91cHMgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9zZWN1cml0eV9zZXR0aW5ncyddID0gJ1NlY3VyaXR5IFNldHRpbmdzJzsKJGxhbmdbJ2Vycm9yX3VuaXF1ZWZpZWxkJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciByZWdpc3RlcmVkIHVzZXInOwokbGFuZ1snaGVscF9wYXJhbV9hY3Rpb24nXSA9IDw8PEVPVApUaGlzIHBhcmFtZXRlciBkaWN0YXRlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuCjx1bD4KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CiAgIDxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgYWN0aW9uLiAgQmFzZWQgb24gdGhlIDxlbT4oZGVwcmVjYXRlZD48L2VtPiBtb2RlIHBhcmFtZXRlciA8ZW0+KHNlZSBiZWxvdyk8L2VtPiBpdCB3aWxsIGRpc3BsYXkgZWl0aGVyIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLCB0aGUgdmVyaWZ5IGZvcm0sIG9yIGFub3RoZXIgZm9ybS48L2xpPgogIDwvbGk+CiAgPGxpPnJlZ2lzdGVyX2xpbmsKICAgPHA+RGlzcGxheSBhIGxpbmsgdG8gdGhlIHVzZXIgcmVnaXN0cmF0aW9uIGZvcm0uIDxlbT4oZGVwcmVjYXRlZCk8L2VtPjwvcD4KICA8L2xpPgogIDxsaT5hbm90aGVyZ3JvdXAgLSBGb3IgdXNlcnMgd2hvIGFyZSBsb2dnZWQgaW4gdG8gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLCB0aGlzIGFjdGlvbiBhbGxvd3MgdGhlbSAoc3ViamVjdCB0byBwZXJtaXNzaW9uKSB0byBzaWduIHVwIHRvIGFub3RoZXIgbmFtZWQgTUFNUyBncm91cC48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydoZWxwX3BhcmFtX2Rlc3RwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249cmVnaXN0ZXJfbGluaywgYW5kIHRoZSBkZWZhdWx0IGFjdGlvbi4gdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgKGJ5IGFsaWFzIG9yIHBhZ2UgaWQpIGEgZGVzdGluYXRpb24gcGFnZSBmb3IgdGhlIGxpbmsgb3IgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlLic7CiRsYW5nWydoZWxwX3BhcmFtX2dyb3VwJ10gPSAnQXBwbGljYWJsZSB0byAoYW5kIHJlcXVpcmVkIGZvcikgdGhlIHJlZ2lzdGVyX2xpbmssIHJlZ2lzdGVyLCBvciBhbm90aGVyZ3JvdXAgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBncm91cCBpbiB3aGljaCB0aGUgdXNlciB3aWxsIGJlIHJlZ2lzZXJlZCc7CiRsYW5nWydoZWxwX3BhcmFtX29ubHlocmVmJ10gPSAnVXNlZCBvbmx5IGluIHRoZSBhY3Rpb249cmVnaXN0ZXJfbGluaywgc2V0dGluZyB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgb3V0cHV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdGhlIHVybCBwb3J0aW9uIG9mIHRoZSBsaW5rJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbGlua3RleHQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbl9yZWdpc3Rlcl9saW5rIGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSB0ZXh0IGZvciB0aGUgZ2VuZXJhdGVkIGxpbmsuICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHRoZSBvbmx5aHJlZiBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLic7CiRsYW5nWydoZWxwX3BhcmFtX25vaW5saW5lJ10gPSAnQXBwbGljYWJsZSB0byBtYW55IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIG92ZXJyaWRlcyB0aGUgcHJlZmVyZW5jZSBpbiB0aGUgYWRtaW4gcGFuZWwgdG8gaW5kaWNhdGUgdGhhdCB0aGUgb3V0cHV0IGZyb20gdGhlIGdlbmVyYXRlZCBsaW5rIG9yIGZvcm0gc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgaW5saW5lLiAgaS5lOiBub2lubGluZT0xIG9uIHRoZSBkZWZhdWx0IGFjdGlvbiB3aWxsIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCB0ZXh0IHdpbGwgcmVwbGFjZSB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1snaGVscF9wYXJhbV9ub2ZpbmFsbWVzc2FnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCwgc2lnbnVwIGFjdGlvbi4gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGluZGljYXRpbmcgdGhhdCB0aGUgZmluYWwgcmVnaXN0cmF0aW9uIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkLic7CiRsYW5nWydlcnJvcl9ub3JlZ2lzdGVyJ10gPSAnWW91IGNhbm5vdCByZWdpc3RlciB0byBiZWNvbWUgYSBtZW1iZXIgb2YgdGhpcyB1c2VyIGdyb3VwJzsKJGxhbmdbJ3Byb21wdF9ub3JlZ2lzdGVyJ10gPSAnQWJzb2x1dGVseSBmb3JiaWQgdXNlcnMgdG8gcmVnaXN0ZXIgdG8gdGhlc2UgZ3JvdXBzJzsKJGxhbmdbJ2Vycm9yX25vc2Vjb25kZW1haWxhZGRyZXNzJ10gPSAnWW91IGRpZCBub3QgZW50ZXIgeW91ciBlbWFpbCBhZGRyZXNzIHR3aWNlJzsKJGxhbmdbJ3B1c2hfbGl2ZSddID0gJ1B1c2ggdGhpcyB1c2VyIGludG8gTUFNUyc7CiRsYW5nWydhcmV5b3VzdXJlX3B1c2h1c2VyJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHB1c2ggdGhpcyB1c2VyIGludG8gTUFNUyB3aXRob3V0IGNvbXBsZXRpbmcgdGhlIHZhbGlkYXRpb24gcHJvY2Vzcz8nOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2xvZ2luX2FmdGVydmVyaWZ5J10gPSAnQXV0b21hdGljYWxseSBsb2cgdGhlIHVzZXIgaW4gdG8gRnJvbnRFbmRVc2VycyBhZnRlciB0aGUgdmVyaWZpY2F0aW9uIHN0ZXAgaXMgY29tcGxldGUnOwokbGFuZ1snc2tpcF9maW5hbF9tc2cnXSA9ICdEb25cJ3QgZGlzcGxheSB0aGUgZmluYWwgbWVzc2FnZSBhZnRlciByZWdpc3RyYXRpb24nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJyZWdpc3RlciddID0gJ1BhZ2VJRC9BbGlhcyB0byByZWRpcmVjdCB0byBhZnRlciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJ2ZXJpZnknXSA9ICdQYWdlSUQvQWxpYXMgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdmVyaWZpY2F0aW9uIHN0ZXAgaXMgY29tcGxldGUnOwokbGFuZ1sndXNlX2lubGluZV9mb3JtcyddID0gJ1VzZSBJbmxpbmUgRm9ybXMgPGVtPihmb3JtIG91dHB1dCByZXBsYWNlcyB0aGUgbW9kdWxlIHRhZywgbm90IGFsbCBvZiBjb250ZW50KTwvZW0+JzsKJGxhbmdbJ2Vycm9yX2NvZGVzZG9udG1hdGNoJ10gPSAnVGhlIHZhbGlkYXRpb24ga2V5IHN1cHBsaWVkIGlzIGludmFsaWQnOwokbGFuZ1snZXZlbnRfZGVzY3JpcHRpb25fYmVmb3JlTmV3VXNlciddID0gJ0FuIGV2ZW50IHNlbnQgYWZ0ZXIgYSBuZXcgdXNlciBoYXMgY29tcGxldGVkIHRoZSByZWdpc3RyYXRpb24gZm9ybSBidXQgYmVmb3JlIHRoZSB0ZW1wb3JhcnkgdXNlciBjcmVkZW50aWFscyBhcmUgc3RvcmVkLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBmdXJ0aGVyIHZhbGlkYXRlIHRoZSB1c2VyJzsKJGxhbmdbJ2V2ZW50X2hlbHBfYmVmb3JlTmV3VXNlciddID0gJwo8cD5BbiBldmVudCBzZW50IGFmdGVyIGEgdXNlciBoYXMgY29tcGxldGVkIHRoZSByZWdpc3RyYXRpb24gZm9ybSwgYnV0IGJlZm9yZSB0aGUgdGVtcG9yYXJ5IHVzZXIgY3JlZGVudGlhbHMgYXJlIHN0b3JlZC4gIFRoaXMgZXZlbnQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciB2YWxpZGF0ZSB0aGUgdXNlci48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KICA8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmV3IHVzZXJzIHNlbGVjdGVkIHVzZXJuYW1lLjwvbGk+CiAgPGxpPjxlbT5lbWFpbDwvZW0+IC0gVGhlIG5ldyB1c2VycyBlbWFpbCBhZGRyZXNzLjwvbGk+CiAgPGxpPjxlbT5wYXNzd29yZDwvZW0+IC0gVGhlIG5ldyB1c2VycyBwYXNzd29yZC48L2xpPgogIDxsaT48ZW0+cGFzczwvZW0+IC0gQSByZWZlcmVuY2UgdG8gYSBib29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgcGFzc2VzIHZhbGlkYXRpb24uICBDaGFuZ2luZyB0aGlzIHRvIGZhbHNlIHdpbGwgY2F1c2UgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkLjwvbGk+CiAgPGxpPjxlbT5tZXNzYWdlPC9lbT4gLSBBIHJlZmVyZW5jZSB0byBhIHN0cmluZyBhbGxvd2luZyBoYW5kbGVycyB0byBwcm92aWRlIGEgbWVzc2FnZSBhYm91dCB2YWxpZGF0aW9uIGlmIHRoZSBwYXNzIHZhcmlhYmxlIChhYm92ZSkgaXMgZmFsc2UuPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2Rlc2NyaXB0aW9uX29uTmV3VXNlciddID0gJ0FuIGV2ZW50IGluZGljYXRpbmcgdGhhdCBhIG5ldyB1c2VyIGhhcyBjb21wbGV0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBmb3JtLCBhbmQgYSB0ZW1wb3JhcnkgYWNjb3VudCBoYXMgYmVlbiBjcmVhdGVkLic7CiRsYW5nWydldmVudF9kZXNjcmlwdGlvbl9vblVzZXJSZWdpc3RlcmVkJ10gPSAnQW4gZXZlbnQgaW5kaWNhdGluZyB0aGF0IGEgdXNlciBoYXMgdmVyaWZpZWQgaGlzIGluZm9ybWF0aW9uIGFuZCBpcyBub3cgY29tcGxldGVseSBjcmVhdGVkIGluIE1BTVMnOwokbGFuZ1snZXZlbnRfaGVscF9vbk5ld1VzZXInXSA9ICcKPHA+QW4gZXZlbnQgaW5kaWNhdGluZyB0aGF0IGEgbmV3IHVzZXIgaGFzIGNvbXBsZXRlZCB0aGUgcmVnaXN0cmF0aW9uIGZvcm08L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmV3IHVzZXJzIHNlbGVjdGVkIHVzZXJuYW1lPC9saT4KPGxpPjxlbT5lbWFpbDwvZW0+IC0gVGhlIG5ldyB1c2VycyBlbWFpbCBhZGRyZXNzPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfb25Vc2VyUmVnaXN0ZXJlZCddID0gJwo8cD5BbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgYSB1c2VyIGhhcyBiZWVuIHZlcmlmaWVkIGFuZCBpcyBub3cgcmVnaXN0ZXJlZCB3aXRoIGZldXNlcnM8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgcmVnaXN0ZXJlZCB1c2VybmFtZTwvbGk+CjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBuZXcgdXNlcnMgdWlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdDaGFuZ2UgYWRtaW4gcHJlZmVyZW5jZXM/JzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IHRvIHByZXNlcnZlIHRoZSB1c2VyIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IHRvIHByZXNlcnZlIHRoZSB1c2VyIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX2VtYWlsZG9lc25vdG1hdGNoJ10gPSAnRW1haWwgYWRkcmVzc2VzIGRvIG5vdCBtYXRjaCc7CiRsYW5nWydmb3JjZV9lbWFpbF90d2ljZSddID0gJ1JlcXVpcmUgdXNlcnMgdG8gZW50ZXIgdGhlaXIgZW1haWwgYWRkcmVzcyB0d2ljZSc7CiRsYW5nWydhZ2FpbiddID0gJ2FnYWluJzsKJGxhbmdbJ2RlbGV0ZXNlbHVzZXJzJ10gPSAnRGVsZXRlIFNlbGVjdGVkIFVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGRlZm5zJ10gPSAnTm8gcHJvcGVydHkgZGVmaW5pdGlvbnMsIG9yIHByb2JsZW0gcmV0cmVpdmluZyB0aGVtIGZyb20gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnTm8gZ3JvdXBzLCBvciBwcm9ibGVtIHJldHJlaXZpbmcgZ3JvdXAgbGlzdCc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRGF0YWJhc2UgZXJyb3InOwokbGFuZ1sndGl0bGVfcG9zdF9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJ10gPSAnUG9zdCBMb3N0IEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnXSA9ICdMb3N0IEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2NsaWNraGVyZSddID0gJ0NsaWNrIEhlcmUnOwokbGFuZ1snbXNnX3NlbmRhbm90aGVyZW1haWwnXSA9ICdJIGhhdmUgYWxyZWFkeSBjb21wbGV0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBmb3JtLCBidXQgZGlkIG5vdCByZWNlaXZlIGFuIGVtYWlsLCBjYW4geW91IHBsZWFzZSByZS1zZW5kIGl0JzsKJGxhbmdbJ3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnXSA9ICdMb3N0IEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fdXNlcnZlcmlmaWVkJ10gPSAnQSBuZXcgdXNlciBoYXMgYmVlbiBhZGRlZCB0byBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ3Vua25vd24nXSA9ICdVbmtub3duJzsKJGxhbmdbJ3NlbGVjdCddID0gJ1NlbGVjdCc7CiRsYW5nWydjaGVja19hbGwnXSA9ICdDaGVjayBBbGwnOwokbGFuZ1sndW5jaGVja19hbGwnXSA9ICdVbmNoZWNrIEFsbCc7CiRsYW5nWydzZW5kX2FkanVzdG1lbnRlbWFpbCddID0gJ1NlbmQgYW4gZW1haWwgdG8gdGhlIHVzZXInOwokbGFuZ1sndHh0X2FkanVzdG1lbnRlbWFpbCddID0gJyhpbmZvcm1zIHRoZSB1c2VyIHRoYXQgdGhlaXIgYWNjb3VudCBoYXMgYmVlbiBhZGp1c3RlZCc7CiRsYW5nWyd0eHRfY2hhbmdlcGFzc3dvcmQnXSA9ICdGaWxsIGluIHRoZXNlIGZpZWxkcyB0byBjaGFuZ2UgdGhlIHVzZXIgcGFzc3dvcmQnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdFZGl0IFVzZXInOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGV1c2VyJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHBhcnRpYWxseSByZWdpc3RlcmVkIHVzZXI/JzsKJGxhbmdbJ2hkcl91c2VyaWQnXSA9ICdVc2VySUQnOwokbGFuZ1snaGRyX3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snaGRyX2dycG5hbWUnXSA9ICdHcm91cCc7CiRsYW5nWydoZHJfY3JlYXRlZCddID0gJ0NyZWF0ZWQnOwokbGFuZ1snaGRyX2VtYWlsJ10gPSAnRW1haWknOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ1VzZXJzIGZvdW5kIDxlbT4oQSBtYXhpbXVtIG9mIDI1MCB3aWxsIGJlIGRpc3BsYXllZCwgdGhvdWdoIG1vcmUgbWF5IGV4aXN0IGluIHRoZSBkYXRhYmFzZS4pPC9lbT4nOwokbGFuZ1sndXNlcnMnXSA9ICdVc2Vycyc7CiRsYW5nWydsaXN0MWRheSddID0gJ0xpc3QgYWxsIGVudHJpZXMgbW9yZSB0aGFuIDEgZGF5IG9sZCc7CiRsYW5nWydzdWJqZWN0J10gPSAnU3ViamVjdCBmb3Igb3V0Z29pbmcgZW1haWwnOwokbGFuZ1snbWVzc2FnZWJvZHknXSA9ICdNZXNzYWdlIEJvZHknOwokbGFuZ1snaHRtbGJvZHknXSA9ICdIVE1MIG1lc3NhZ2UgYm9keSc7CiRsYW5nWyd0ZXh0Ym9keSddID0gJ1RleHQgbWVzc2FnZSBib2R5JzsKJGxhbmdbJ2luY29tcGxldGVfcmVnaXN0cmF0aW9ucyddID0gJ0luY29tcGxldGUgUmVnaXN0cmF0aW9ucyc7CiRsYW5nWydwcm9tcHRfbnVtcmVnaXN0ZXJpbmcnXSA9ICclZCB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZWdpc3RlcmluZyc7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1JlbW92ZSBhbGwgZW50cmllcyBtb3JlIHRoYW4gYSB3ZWVrIG9sZCc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgbW9udGggb2xkJzsKJGxhbmdbJ3JlbW92ZTFkYXknXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgZGF5IG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwokbGFuZ1sncmVnaXN0cmF0aW9uX2luZm9fZWRpdGVkJ10gPSAnWW91ciByZWdpc3RyYXRpb24gaW5mbyBoYXMgYmVlbiBtb2RpZmllZCc7CiRsYW5nWydyZWdpc3RyYXRpb25fY29uZmlybWF0aW9uJ10gPSAnUmVnaXN0cmF0aW9uIENvbmZpcm1hdGlvbic7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdGVyJzsKJGxhbmdbJ2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSddID0gJ0ZpbmFsIE1lc3NhZ2UgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfdmVyaWZ5cmVnaXN0cmF0aW9uJ10gPSAnVmVyaWZ5IFJlZ2lzdHJhdGlvbic7CiRsYW5nWydjb2RlJ10gPSAnVmFsaWRhdGlvbiBLZXknOwokbGFuZ1snZGVmYXVsdCddID0gJ1NldCBUbyBEZWZhdWx0cyc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBwcm9wZXJ0aWVzIGZvdW5kIGZvciB0aGlzIHVzZXInOwokbGFuZ1snZXJyb3Jfbm9wcm9wcmVsYXRpb25zJ10gPSAnTm8gcHJvcGVydHkgcmVsYXRpb25zJzsKJGxhbmdbJ2Vycm9yX2VtYWlsaW52YWxpZCddID0gJ0ludmFsaWQgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3MgZmllbGQgZm91bmQnOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0ZpZWxkICVzIG11c3QgYmUgZmlsbGVkIGluJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbjFfdGVtcGxhdGUnXSA9ICdSZWdpc3RyYXRpb24gVGVtcGxhdGUgMSc7CiRsYW5nWydyZWdpc3RyYXRpb24yX3RlbXBsYXRlJ10gPSAnUmVnaXN0cmF0aW9uIFRlbXBsYXRlIDInOwokbGFuZ1snZW1haWxjb25maXJtX3RlbXBsYXRlJ10gPSAnQ29uZmlybWF0aW9uIEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZSddID0gJ1VzZXIgSW5mbyBDaGFuZ2VkIFRlbXBsYXRlJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnVXNlciBub3QgZm91bmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnVXNlcm5hbWUgaXMgaW52YWxpZCAodG9vIGxvbmcsIHRvbyBzaG9ydCwgb3IgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzKS4gIEhpbnQtIFVzZXJuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyAobm8gc3BhY2VzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZW1haWwnXSA9ICdFbWFpbCBpcyBpbnZhbGlkLic7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVGhhdCB1c2VybmFtZSBpcyBjdXJyZW50bHkgaW4gdXNlJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3Jkc2RvbnRtYXRjaCddID0gJ0VSUk9SOiBQYXNzd29yZHMgZG9udCBtYXRjaCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdZb3VyIHBhc3N3b3JkIGlzIGludmFsaWQuICBQbGVhc2UgZW50ZXIgYSBtb3JlIHNlY3VyZSBwYXNzd29yZCc7CiRsYW5nWydlcnJvcl9lbXB0eXVzZXJuYW1lJ10gPSAnVXNlcm5hbWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2VtcHR5ZW1haWwnXSA9ICdFbWFpbCBjYW5ub3QgYmUgZW1wdHknOwokbGFuZ1sncmVwZWF0cGFzc3dvcmQnXSA9ICdQYXNzd29yZCAoYWdhaW4pJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydlbWFpbCddID0gJ0VtYWlsJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdFbnRlciB0aGUgdGV4dCBmcm9tIHRoZSBpbWFnZSc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdJbnN1ZmZpY2llbnQgbnVtYmVyIChvciBpbmNvcnJlY3QpIHBhcmFtZXRlcnMgc3VwcGxpZWQgdG8gbW9kdWxlJzsKJGxhbmdbJ2Vycm9yX25vZmV1c2Vyc21vZHVsZSddID0gJ0NvdWxkIG5vdCBnZXQgaW5zdGFuY2Ugb2YgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1snZXJyb3Jfbm9zdWNoZ3JvdXAnXSA9ICdHcm91cCBuYW1lIHNwZWNpZmllZCBkb2VzIG5vdCBleGlzdCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUaGUgdGV4dCBmcm9tIHRoZSBpbWFnZSB3YXMgbm90IGVudGVyZWQgY29ycmVjdGx5JzsKJGxhbmdbJ3NlbmRfZW1haWxzX3RvJ10gPSAnUmVnaXN0cmF0aW9uIGVtYWlscyBzaG91bGQgYmUgc2VudCB0byc7CiRsYW5nWydyZXF1aXJlX2VtYWlsX2NvbmZpcm1hdGlvbiddID0gJ1JlcXVpcmUgdGhlIHVzZXIgdG8gY29uZmlybSByZWdpc3RyYXRpb24gdmlhIGVtYWlsJzsKJGxhbmdbJ25vdGlmeV9vbl9yZWdpc3RyYXRpb24nXSA9ICdTZW5kIGFuIGVtYWlsIG5vdGlmaWNhdGlvbiB3aGVuIHNvbWVvbmUgcmVnaXN0ZXJzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnTUFNUyBSZWdpc3RyYXRpb24nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdJbnN0YWxsYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSByZW1lbWJlciB0byBzZXQgdGhlICZxdW90O01vZGlmeSBTZWxmUmVnaXN0cmF0aW9uIFNldHRpbmdzJnF1b3Q7IHBlcm1pc3Npb24uICBJZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLCB0aGVuIGNhcHRjaGEgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuICBXZSBzdHJvbmdseSByZWNjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhpcyBtb2R1bGUuICBJZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLCBhbmQgeW91IHdhbnQgdG8gZGlzYWJsZSBpdCwgdXNlIHRoZSBub2NhcHRjaGEgcGFyYW0gaW4geW91ciBzZWxmcmVnaXN0cmF0aW9uIHRhZy4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01BTVMgUmVnaXN0cmF0aW9uIG1vZHVsZSBpcyB1bmluc3RhbGxlZC4gIFNlZSB5b3UgbGF0ZXIuJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSBwcmVmZXJlbmNlcyB1cGRhdGVkLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnTW9kdWxlIFByZWZlcmVuY2VzJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsZSBBZG1pbiBQYW5lbCc7CiRsYW5nWyd0aXRsZV9hZG1pbl9wYW5lbCddID0gJ01BTVMgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgdGhhdCBhbGxvd3MgZnJvbnQgZW5kIHVzZXJzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMuJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPldlbGNvbWUgdG8gdGhlIHNlbGYgcmVnaXN0cmF0aW9uIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2VuYWJsZV93aGl0ZWxpc3QnXSA9ICdFbmFibGUgV2hpdGVsaXN0JzsKJGxhbmdbJ3doaXRlbGlzdCddID0gJ0xpc3Qgb2Ygd2hpdGVsaXN0IHVzZXJuYW1lL2VtYWlscy4gT25lIHBlciBsaW5lLiAodXNlICogZm9yIHdpbGRjYXJkcyknOwokbGFuZ1snd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZSddID0gJ01lc3NhZ2UgdG8gc2hvdyBpZiBhIHdoaXRlbGlzdCBydWxlIGlzIHRyaWdnZXJlZCc7CiRsYW5nWydkb250X3VzZSddID0gJ05vIFdoaXRlbGlzdCc7CiRsYW5nWydub19tYXRjaGVzJ10gPSAnRG9uXCd0IGFsbG93IG1hdGNoZWQgdXNlcm5hbWUvZW1haWxzIHRvIHJlZ2lzdGVyJzsKJGxhbmdbJ29ubHlfbWF0Y2hlcyddID0gJ09ubHkgYWxsb3cgbWF0Y2hlZCB1c2VybmFtZS9lbWFpbHMgdG8gcmVnaXN0ZXInOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.reg_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCi8vbmFtZXNwYWNlIE1BTVNSZWdpc3RyYXRpb247CmZpbmFsIGNsYXNzIHJlZ191dGlscwp7CiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNsZWFuX3BhcmFtcygkcGFyYW1zKQogICAgewogICAgICAgICRucGFyYW1zID0gYXJyYXkoKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snbXJfZGF0YSddKSApIHsKICAgICAgICAgICAgJHRtcCA9IHVuc2VyaWFsaXplKGJhc2U2NF9kZWNvZGUoJHBhcmFtc1snbXJfZGF0YSddKSk7CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ21yX2RhdGEnXSk7CiAgICAgICAgICAgICRwYXJhbXMgPSBhcnJheV9tZXJnZSgkdG1wLCRwYXJhbXMpOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCggJGtleSwgJ21yXycgKSApICRrZXkgPSBzdWJzdHIoJGtleSwzKTsKICAgICAgICAgICAgJG5wYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbnBhcmFtczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHBrZ19zdWJzY3JfdG9fZXhwaXJ5ZGF0ZSgkcGtnLCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAgICRleHBpcmVzID0gJyc7CiAgICAgICAgaWYoICFpc19hcnJheSgkcGtnKSApIHJldHVybiAkZXhwaXJlczsKICAgICAgICBpZiggIWlzc2V0KCRwa2dbJ3N1YnNjcl9udW0nXSkgfHwgIWlzc2V0KCRwa2dbJ3N1YnNjcl90eXBlJ10pICkgcmV0dXJuICRleHBpcmVzOwoKICAgICAgICAkdHlwZSA9ICRwa2dbJ3N1YnNjcl90eXBlJ107CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlICdtb250aCc6CiAgICAgICAgY2FzZSAneWVhcic6CiAgICAgICAgICAgICR0eXBlIC49ICdzJzsKICAgICAgICAgICAgJGV4cGlyZXMgPSBzdHJ0b3RpbWUoIit7JHBrZ1snc3Vic2NyX251bSddfSB7JHR5cGV9IiwkdGltZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdub25lJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkbWFtcyA9IHh0X3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKICAgICAgICAgICAgaWYoICRtYW1zICkgewogICAgICAgICAgICAgICAgJHRpbWVwZXJpb2QgPSBtYXgoMSwkbWFtcy0+R2V0UHJlZmVyZW5jZSgnZXhwaXJlYWdlX21vbnRocycsNTIwKSk7CiAgICAgICAgICAgICAgICAkZXhwaXJlcyA9IHN0cnRvdGltZSgiK3skdGltZXBlcmlvZH0gbW9udGhzIiwkdGltZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGV4cGlyZXM7CiAgICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBleHBhbmRfZ3JvdXAoJHZhbCkKICB7CiAgICAvLyB5ZXAsIGFsbCB0aGUgbW9kdWxlcyBhcmUgaGVyZSwgbm93IHdlIGNvbnZlcnQgYSBzaW5nbGUgbmFtZSB0byBhbiBpbnRlZ2VyIGlkCiAgICAvLyBvciBhbiBhcnJheSBvZiBpbnRlZ2VyIGlkcy4uLiB0aGVuIHdlIHZhbGlkYXRlIHRoZW0uCiAgICAkZ3JwaWRzID0gTlVMTDsKICAgIGlmKGlzX3N0cmluZygkdmFsKSkKICAgIHsKICAgICAgJHZhbCA9IGV4cGxvZGUoJywnLCAkdmFsKTsKICAgIH0KICAgIGlmKCFpc19hcnJheSgkdmFsKSB8fCAhY291bnQoJHZhbCkpCiAgICB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgJG1hbXMgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX01BTVMpOwogICAgZm9yZWFjaCgkdmFsIGFzICRvbmUpCiAgICB7CiAgICAgIGlmKGlzX251bWVyaWMoJG9uZSkgJiYgKGludCkkb25lID4gMCkKICAgICAgewogICAgICAgICRncnBpZHNbXSA9ICRvbmU7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgJHRtcCA9ICRtYW1zLT5HZXRHcm91cElEKHRyaW0oJG9uZSkpOwogICAgICAgIGlmKCR0bXAgPiAwKQogICAgICAgIHsKICAgICAgICAgICRncnBpZHNbXSA9ICR0bXA7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBpZigkZ3JwaWRzKQogICAgewogICAgICAkZ3JwaWRzID0gYXJyYXlfdW5pcXVlKCRncnBpZHMpOwogICAgfQogICAgaWYoY291bnQoJGdycGlkcykpCiAgICB7CiAgICAgIHJldHVybiAkZ3JwaWRzOwogICAgfQogIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF92ZXJpZnlwYWdlKCAkcmV0dXJuaWQgPSBudWxsICkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VsZlJlZ2lzdHJhdGlvbicpOwogICAgICAgICRwcmVmX3BhZ2UgPSAoaW50KSAkbW9kLT5HZXRQcmVmZXJlbmNlKCd2ZXJpZnlwYWdlJyk7CiAgICAgICAgaWYoICRwcmVmX3BhZ2UgPiAwICkgcmV0dXJuICRwcmVmX3BhZ2U7CgogICAgICAgIGlmKCAkcmV0dXJuaWQgPiAwICkgcmV0dXJuICRyZXR1cm5pZDsKCiAgICAgICAgJGNvbnRlbnRvcHMgPSBcQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIHJldHVybiAoaW50KSAkY29udGVudG9wcy0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgIH0KCn0gLy8gY2xhc3MKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/MAMSRegistration.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpyZXF1aXJlX29uY2UoX19ESVJfXyAuICIvZnVuY3Rpb25zLnBocCIpOwoKZmluYWwgY2xhc3MgTUFNU1JlZ2lzdHJhdGlvbiBleHRlbmRzIFxDTVNNU0V4dFxYVE1vZHVsZQp7CiAgY29uc3QgTUFNU19QUk9QTkFNRSA9ICdfX01BTVNSRUcnOwogIHZhciAkZGZsdF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUgPSAnCjwhLS0gRW1haWxDb25maXJtIHRlbXBsYXRlIC0tPgo8aHRtbD4KPGJvZHk+CjxwPkdyZWV0aW5ncyB7JG5hbWV9IHdlbGNvbWUgdG8ge3NpdGVuYW1lfS4gIFRoaXMgZW1haWwgaXMgYmVpbmcgc2VudCBiZWNhdXNlIHNvbWVib2R5IHJlZ2lzdGVyZWQgZm9yIGFjY2VzcyB0byB7JHNpdGVuYW1lfSB1c2luZyB0aGlzIGVtYWlsIGFkZHJlc3MuIElmIHRoaXMgd2FzIHlvdSwgcGxlYXNlIGNsaWNrIG9uIHRoZSBmb2xsb3dpbmcgbGluayBhbmQgZW50ZXIgeW91ciB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCB0aGUgdW5pcXVlIGNvZGUgYmVsb3c8L3A+CiAgIDxwPkZvbGxvdyB0aGlzIGxpbms6IDxhIGhyZWY9InskdXJsfSI+eyR1cmx9PC9hPjwvcD4KICAgPHA+Q29kZTogeyRjb2RlfTwvcD4KPC9ib2R5Pgo8L2h0bWw+CjwhLS0gRW1haWxDb25maXJtIHRlbXBsYXRlIC0tPgonOwogIAogIHZhciAkZGZsdF9lbWFpbHVzZXJlZGl0ZWRfdGVtcGxhdGUgPSAnCjwhLS0gRW1haWxVc2VyRWRpdGVkIHRlbXBsYXRlIC0tPgo8aHRtbD4KPGJvZHk+CjxwPkdyZWV0aW5ncyB7JG5hbWV9IHdlbGNvbWUgdG8ge3NpdGVuYW1lfS4gIFRoaXMgZW1haWwgaXMgYmVpbmcgc2VudCBiZWNhdXNlLCBhbHRob3VnaCB5b3UgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCB7JHNpdGVuYW1lfSwgdGhlcmUgd2FzIGFuIGVycm9yIGluIHlvdXIgaW5wdXQuICBUaGUgYWRtaW5pc3RyYXRvciBoYXMgZG9uZSBoaXMgYmVzdCB0byBjb3JyZWN0IHRoaXMgZGF0YSwgYW5kIHlvdSBhcmUgbm93IGJlaW5nIHNlbnQgYW4gdXBkYXRlZCByZWdpc3RyYXRpb24gZm9ybS4gUGxlYXNlIGNsaWNrIG9uIHRoZSBmb2xsb3dpbmcgbGluayBhbmQgZW50ZXIgeW91ciB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCB0aGUgdW5pcXVlIGNvZGUgYmVsb3c8L3A+CiAgIDxwPkZvbGxvdyB0aGlzIGxpbms6IDxhIGhyZWY9InskdXJsfSI+eyR1cmx9PC9hPjwvcD4KICAge2lmICFlbXB0eSgkcGFzc3dvcmQpfTxwPlBhc3N3b3JkOiB7JHBhc3N3b3JkfTwvcD57L2lmfQogICA8cD5Db2RlOiB7JGNvZGV9PC9wPgo8L2JvZHk+CjwvaHRtbD4KPCEtLSBFbWFpbFVzZXJFZGl0ZWQgdGVtcGxhdGUgLS0+Cic7CiAgCiAgdmFyICRkZmx0X2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSA9ICcKPCEtLSBGaW5hbE1lc3NhZ2UgVGVtcGxhdGUgLS0+CntpZiAhZW1wdHkoJGlzY3JlYXRlZCl9CiAgPHA+V2VsY29tZSB7JHVzZXJuYW1lfSB0byB7c2l0ZW5hbWV9LiAgWW91ciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuICBQbGVhc2UgbG9naW4gdG8gY29udGludWU8L3A+CntlbHNlaWYgIWVtcHR5KCRpc19sb2dnZWRfaW4pfQogIDxwPldlbGNvbWUgeyR1c2VybmFtZX0gdG8ge3NpdGVuYW1lfS4gIFlvdXIgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlLjwvcD4Ke2Vsc2V9CiAgPHA+V2VsY29tZSB7JHVzZXJuYW1lfSB0byB7c2l0ZW5hbWV9LiAgWW91ciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuICBZb3VyIGFjY291bnQgaXMgbm93IHdhaXRpbmcgYXBwcm92YWwgYnkgYW4gYWRtaW5pc3RyYXRvci48L3A+CnsvaWZ9CiAgJzsKICAKICB2YXIgJGRmbHRfcG9zdF9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlID0gJwo8aDM+eyRtb2QtPkxhbmcoXCd0aXRsZV9sb3N0ZW1haWxcJyl9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSBcJ1wnfQogIHtpZiBpc3NldCgkZXJyb3IpICYmICRlcnJvciAhPSBcJ1wnfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JG1lc3NhZ2V9PC9kaXY+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj57JG1lc3NhZ2V9PC9kaXY+CiAgey9pZn0Key9pZn0KPHA+VGhhbmsgeW91IHskdXNlcm5hbWV9IGZvciByZWdpc3RlcmluZyB3aXRoIDxhIGhyZWY9Intyb290X3VybH0iPntzaXRlbmFtZX08L2E+LiAgV2UgYXJlIHNvcnJ5IHlvdSBoYWQgZGlmZmljdWx0eSByZWNlaXZpbmcgeW91ciBlbWFpbC4gIEEgc2Vjb25kIGVtYWlsIGhhcyBiZWVuIHNlbnQgdG8geyRlbWFpbH0gd2l0aCBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGNvbnRpbnVlIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzczwvcD4KJzsKICAKICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpeyByZXR1cm4gRkFMU0U7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpeyByZXR1cm4gRkFMU0U7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpeyByZXR1cm4gJ01BTVNSZWdpc3RyYXRpb24nOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCl7IHJldHVybiAnMi4yLjUnOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKXsgcmV0dXJuIFRSVUU7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpeyByZXR1cm4gJzEuMCc7IH0KICAKICAvL3B1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCl7IHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvaGVscC5pbmMnKTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKXsgcmV0dXJuICdKbyBNb3JnJzsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpeyByZXR1cm4gJ2pvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyc7IH0KICAKICAvL3B1YmxpYyBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKXsgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL2NoYW5nZWxvZy5pbmMnKTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpeyByZXR1cm4gVFJVRTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBIYXNBZG1pbigpeyByZXR1cm4gVFJVRTsgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKXsgcmV0dXJuICd1c2Vyc2dyb3Vwcyc7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkZXZlbnRuYW1lKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9kZXNjcmlwdGlvbl8nIC4gJGV2ZW50bmFtZSk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJyAuICRldmVudG5hbWUpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKXsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0KICAKICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICB7CiAgICAkc3RhdHVzID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykKICAgICAgICAgICAgICB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpCiAgICAgICAgICAgICAgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpOwogICAgCiAgICByZXR1cm4gJHN0YXR1czsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIFsnQ01TTVNFeHQnID0+ICcxLjAuMScsICdNQU1TJyA9PiAnMS4wJywgJ1NtYXJ0eUV4dCcgPT4gJzEuMCddOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd3BhaWRyZWdpc3RyYXRpb24nLCAwKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbW9kZScsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jYXB0Y2hhJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9pbmxpbmUnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Rlc3RwYWdlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGtnJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvbmx5aHJlZicsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlua3RleHQnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vaW5saW5lJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbGxvd292ZXJ3cml0ZScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9maW5hbG1lc3NhZ2UnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lucHV0X3VzZXJuYW1lJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9jb2RlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9ncm91cF9pZCcsIENMRUFOX0lOVCk7IC8vIHRvZG8sIHJlbW92ZSBtZS4KICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9wYXNzd29yZCcsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlua3RleHQnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlZ3RlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2ZXJpZnl0ZW1wbGF0ZScsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL21yXy4qLycsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL21hbXNyZWdfLiovJywgQ0xFQU5fU1RSSU5HKTsKICAgIAogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoCiAgICAgICcvW01tXWFtc3JlZ1wvcmVnaXN0ZXJcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8Z3JvdXA+LiopJC8nLAogICAgICBhcnJheSgnYWN0aW9uJyA9PiAnc2lnbnAnKQogICAgKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKAogICAgICAnL1tNbV1hbXNyZWdcL2NvbmZpcm1cLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8bXJfZGF0YT4uKj8pJC8nLAogICAgICBhcnJheSgnYWN0aW9uJyA9PiAndmVyaWZ5JykKICAgICk7CiAgfQogIAogIC8vIGRlcHJlY2F0ZWQKICBwcm90ZWN0ZWQgZnVuY3Rpb24gbXlSZWRpcmVjdFRvVGFiKCRpZCwgJHRhYiwgJHBhcmFtcyA9ICcnKQogIHsKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAKICAgIGlmKGlzX2FycmF5KCRwYXJhbXMpKQogICAgewogICAgICAkcGFybXMgPSAkcGFyYW1zOwogICAgfQogICAgCiAgICB1bnNldCgkcGFybXNbJ2hpZGRlbl9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snaGlkZGVuX3JlcGVhdHBhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcm1zWydpbnB1dF9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSk7CiAgICB1bnNldCgkcGFybXNbJ3Bhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcm1zWydyZXBlYXRwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJtc1snYWN0aW9uJ10pOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAkdGFiLCAkcGFybXMpOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gbXlSZWRpcmVjdCgkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJHBhcmFtcyA9ICcnKQogIHsKICAgIC8vIHVuc2V0IGFueSBwYXNzd29yZCB0aGluZ3MKICAgIHVuc2V0KCRwYXJhbXNbJ2hpZGRlbl9wYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2hpZGRlbl9yZXBlYXRwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ2lucHV0X3Bhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcmFtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSk7CiAgICB1bnNldCgkcGFyYW1zWydwYXNzd29yZCddKTsKICAgIHVuc2V0KCRwYXJhbXNbJ3JlcGVhdHBhc3N3b3JkJ10pOwogICAgdW5zZXQoJHBhcmFtc1snYWN0aW9uJ10pOwogICAgCiAgICByZXR1cm4gJHRoaXMtPkRvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkID0gLTEpCiAgewogICAgJGdDbXMgICA9IGNtc21zKCk7CiAgICAkc21hcnR5ID0gJGdDbXMtPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdtYW1zcmVnYWN0aW9uaWQnLCAkaWQpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdtYW1zcmVncGFyYW1zJywgJHBhcmFtcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ21vZCcsICR0aGlzKTsKICAgICRzbWFydHktPmFzc2lnbigkdGhpcy0+R2V0TmFtZSgpLCAkdGhpcyk7CiAgICAKICAgIHN3aXRjaCgkYWN0aW9uKQogICAgewogICAgICBjYXNlICdkZWxldGV0ZW1wdXNlcic6CiAgICAgICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIFJlZ2lzdGVyaW5nIFVzZXJzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9Eb0RlbGV0ZVVzZXIoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdkb19kZWxldGV1c2Vyc2J1bGsnOgogICAgICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycpKQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdzZXRfcmVnMnRlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pblJlZzJUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgJ3NldF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUnOgogICAgICAgIGlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X1NldEFkbWluRW1haWxDb25maXJtVGVtcGxhdGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdzZXRfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pbkVtYWlsVXNlckVkaXRlZFRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgICAgICB9CiAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSAnc2V0X2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSc6CiAgICAgICAgaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKQogICAgICAgIHsKICAgICAgICAgICR0aGlzLT5fU2V0QWRtaW5GaW5hbE1lc3NhZ2VUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgJ3NldF9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJzoKICAgICAgICBpZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgICAgICAgewogICAgICAgICAgJHRoaXMtPl9TZXRBZG1pblNlbmRBbm90aGVyRW1haWxUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgfQogICAgICBicmVhazsKICAgICAgCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgcmV0dXJuIHBhcmVudDo6RG9BY3Rpb24oJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgfSAvLyBzd2l0Y2gKICB9CiAgCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0NyZWF0ZUZyb250ZW5kVXNlcigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQgKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfQ3JlYXRlRnJvbnRlbmRVc2VyKCR0bXBpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzID0gJycpCiAgewogICAgJGdDbXMgICAgPSBjbXNtcygpOwogICAgJGRiICAgICAgPSAkZ0Ntcy0+R2V0RGIoKTsKICAgICRtYW1zID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdNQU1TJyk7CiAgICAKICAgIGlmKCEkbWFtcykKICAgIHsKICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9tYW1zbW9kdWxlJykpOwogICAgfQogICAgCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGlkID0gPyc7CiAgICAkcm93ICAgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCR0bXBpZCkpOwogICAgCiAgICBpZighJHJvdykKICAgIHsKICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykpOwogICAgfQogICAgCiAgICAkcSAgICA9ICdTRUxFQ1QgZ2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9ncnBzIFdIRVJFIHVzZXIgPSA/JzsKICAgICRncnBzID0gJGRiLT5HZXRDb2woJHEsIGFycmF5KCR0bXBpZCkpOwogICAgCiAgICBpZighaXNfYXJyYXkoJGdycHMpIHx8IGNvdW50KCRncnBzKSA9PSAwKQogICAgewogICAgICAkZ2lkID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnLCAtMSk7CiAgICAgIAogICAgICBpZigkZ2lkICE9IC0xKQogICAgICB7CiAgICAgICAgJGdycHMgPSBhcnJheSgkZ2lkKTsKICAgICAgfQogICAgfQogICAgCiAgICAjIHdlIHdvbid0IGJlIGVuZm9yY2luZyBtYW5kYXRvcnkgZ3JvdXBzCi8vICAgIGlmKCFpc19hcnJheSgkZ3JwcykgfHwgY291bnQoJGdycHMpID09IDApCi8vICAgIHsKLy8gICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICR0aGlzLT5MYW5nKCdlcnJvcl9ub2dyb3VwcycpKTsKLy8gICAgfQogICAgCiAgICBpZighJGV4cGlyZXMpCiAgICB7CiAgICAgICR0aW1lcGVyaW9kID0gbWF4KDEsICRtYW1zLT5HZXRQcmVmZXJlbmNlKCdleHBpcmVhZ2VfbW9udGhzJywgLTEpKTsKICAgICAgaWYoJHRpbWVwZXJpb2QgPiAwKQogICAgICB7CiAgICAgICAgJGV4cGlyZXMgPSBzdHJ0b3RpbWUoIit7JHRpbWVwZXJpb2R9IG1vbnRocyIpOwogICAgICB9CiAgICAgIGlmKCEkZXhwaXJlcykKICAgICAgewogICAgICAgICRleHBpcmVzID0gUEhQX0lOVF9NQVg7CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYoJHJvd1snb3ZlcndyaXRlX3VpZCddKQogICAgewogICAgICAvLyB3ZSdyZSBvdmVyd3JpdGluZyBhIHVzZXIgYWNjb3VudAogICAgICAkcmVzdWx0ID0gJG1hbXMtPlNldFVzZXIoJHJvd1snb3ZlcndyaXRlX3VpZCddLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMpOwogICAgICBpZigkcmVzdWx0WzBdID09IEZBTFNFKQogICAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkcmVzdWx0WzFdKTsKICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAkcmVzdWx0ID0gJG1hbXMtPkFkZFVzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzKTsKICAgICAgaWYoJHJlc3VsdFswXSA9PSBGQUxTRSkKICAgICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwgJHJlc3VsdFsxXSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgJHVpZCA9ICRyZXN1bHRbMV07CiAgICAvLyRtYW1zLT5TZXRFbmNyeXB0aW9uS2V5KCR1aWQsIDEpOwogICAgCiAgICAvLyBhbmQgYWRkIHRoZSB1c2VyIHRvIHdoYXRldmVyIGdyb3VwIHNwZWNpZmllZCBpbiB0aGUgZ3JvdXBzIHBhcmFtZXRlcgogICAgaWYoaXNfYXJyYXkoJGdycHMpICYmIGNvdW50KCRncnBzKSkKICAgIHsKICAgICAgZm9yZWFjaCgkZ3JwcyBhcyAkZ2lkKQogICAgICB7CiAgICAgICAgJHJlcyA9ICRtYW1zLT5Bc3NpZ25Vc2VyVG9Hcm91cCgkdWlkLCAkZ2lkKTsKLy8gICAgICAgIGlmKCEkcmVzKQovLyAgICAgICAgewovLyAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICR0aGlzLT5MYW5nKCd3YXJuaW5nX2NvdWxkbm90YWRkZ3JvdXAnKSk7Ci8vICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIAogICAgLy8gaGUncyBpbi4uLi4gbm93IGp1c3QgYWRkIGhpcyBwcm9wZXJ0aWVzIGlmIHdlIGhhdmUgZ3JvdXBzCiAgICBpZigkcmVzKQogICAgewogICAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciA9ID8iOwogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEsIGFycmF5KCR0bXBpZCkpOwogIAogICAgICBpZighJGRicmVzdWx0KQogICAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKICAgICAgfQogICAgICB3aGlsZSgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICB7CiAgICAgICAgJG1hbXMtPlNldFVzZXJQcm9wZXJ0eUZ1bGwoJHJvd1sndGl0bGUnXSwgJHJvd1snZGF0YSddLCAkdWlkKTsKICAgICAgfQogICAgfQogICAgCiAgICAvLyBkbyBhIGhvb2sKICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnTUFNU1JlZ2lzdHJhdGlvbjo6b25Vc2VyUmVnaXN0ZXJlZCcsIFsndXNlcm5hbWUnID0+ICR1c2VybmFtZSwgJ2lkJyA9PiAkdWlkXSk7CiAgICAKICAgIC8vIGFuZCBub3RpZnkgdGhlIGFkbWluaXN0cmF0b3IKICAgIC8vIGlmIHRoZSBhZG1pbiB3YW50cyBub3RpZmljYXRpb25zLgogICAgLy8gb2ZmIHdlIGdvLgogICAgdHJ5CiAgICB7CiAgICAgICR0aGlzLT5fU2VuZFJlZ2lzdHJhdGlvbk5vdGlmaWNhdGlvbigkdXNlcm5hbWUsICR1aWQsICRncnBzKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkKICAgIHsKICAgICAgXGF1ZGl0KCcnLCAkdGhpcy0+R2V0TmFtZSgpLCAkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIAogICAgYXVkaXQoJycsICR0aGlzLT5HZXROYW1lKCksICJVc2VyICR1c2VybmFtZSBhc3NpZ25lZCB0byBNQU1TIik7CiAgICAKICAgIHJldHVybiBhcnJheShUUlVFLCAkdWlkKTsKICB9CiAgCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZW5kUmVnaXN0cmF0aW9uTm90aWZpY2F0aW9uKCR1c2VybmFtZSwgJHVpZCA9IE5VTEwsICRncnBzID0gTlVMTCkKICB7CiAgICBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZ5X29uX3JlZ2lzdHJhdGlvbicpKQogICAgewogICAgICAkY21zbWFpbGVyID0gbmV3IFxjbXNfbWFpbGVyOwogICAgICAKICAgICAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycpOwogICAgICAKICAgICAgaWYoJHRtcCkKICAgICAgewogICAgICAgICRsaXN0ID0geHRfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJHRtcCk7CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCgkbGlzdCBhcyAmJG9uZSkKICAgICAgICB7CiAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgIAogICAgICAgICAgaWYoIWVtcHR5KCRvbmUpICYmIGlzX2VtYWlsKCRvbmUpKQogICAgICAgICAgLy9pZighZW1wdHkoJG9uZSkpCiAgICAgICAgICB7CiAgICAgICAgICAgICRjbXNtYWlsZXItPkFkZEFkZHJlc3MoKHN0cmluZykkb25lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJGdDbXMgPSBcY21zbXMoKTsKICAgICAgICAkc3ViaiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZG1pbl9ub3RpZnlfc3ViamVjdCcsICdOZXcgdXNlciByZWdpc2VyZWQgb24gJyAuICRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10pOwogICAgICAgICRjbXNtYWlsZXItPlNldFN1YmplY3QoJHN1YmopOwogICAgICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX25vdGlmeV9lbWFpbCcpOwogICAgICAgICR0cGwtPmFzc2lnbigndWlkJywgJHVpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd1c2VybmFtZScsICR1c2VybmFtZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdncm91cHMnLCAkZ3Jwcyk7CiAgICAgICAgJG1zZyA9ICR0cGwtPmZldGNoKCk7CiAgICAgICAgJGNtc21haWxlci0+U2V0Qm9keSgkbXNnKTsKICAgICAgICAkY21zbWFpbGVyLT5TZXRQcmlvcml0eSgxKTsKICAgICAgICAkY21zbWFpbGVyLT5Jc0hUTUwoVFJVRSk7IC8vIHdlJ3JlIG5vdCBzZW5kaW5nIGFuIGh0bWwgbWFpbAogICAgICAgICRjbXNtYWlsZXItPlNlbmQoKTsKICAgICAgfQogICAgfQogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2UgPSAnJykKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwogICAgaWYoJG1lc3NhZ2UgIT0gJycpCiAgICB7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsKICAgIH0KICAgIAogICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfRG9EZWxldGVCdWxrVXNlcnMoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICR0bXAgPSBhcnJheSgpOwogICAgZm9yZWFjaCgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKQogICAgewogICAgICBpZigka2V5ID09ICdtYXJrZGVsZXRlXycgLiAkdmFsdWUpCiAgICAgIHsKICAgICAgICAkdG1wW10gPSAkdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGlmKGNvdW50KCR0bXApKQogICAgewogICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoJHRtcCk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2FkbWludXNlcnMnKTsKICB9CiAgCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0RvRGVsZXRlVXNlcigkaWQsICRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfRG9EZWxldGVVc2VyKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZighaXNzZXQoJHBhcmFtc1sndXNlcl9pZCddKSkKICAgIHsKICAgICAgLy8gdGhpcyBpcyB1Z2x5IGZvciB0aGUgdXNlciB0byBzZWUKICAgICAgLy8gYnV0IGF0IGxlYXN0IHRoZSBhZG1pbiB3aWxsIGJlIGFibGUgdG8gZmlndXJlIGl0IG91dAogICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICAgIAogICAgICByZXR1cm47CiAgICB9CiAgICAKICAgICRpZCA9ICRwYXJhbXNbJ3VzZXJfaWQnXTsKICAgICR0aGlzLT5EZWxldGVUZW1wVXNlcigkaWQpOwogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYignJywgJ2FkbWludXNlcnMnKTsKICB9CiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2VuZFVzZXJDb25maXJtYXRpb25FbWFpbCgkYWRkcmVzcywkdXNlcm5hbWUsJGNvZGUpOwogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfU2VuZFVzZXJDb25maXJtYXRpb25FbWFpbCgkaWQsICRyZXR1cm5pZCwgJGFkZHJlc3MsICR1c2VybmFtZSwgJGNvZGUpCiAgewogICAgJGNvbmZpZyAgICA9IGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgJGNtc21haWxlciA9IG5ldyBcY21zX21haWxlcjsKICAgIAogICAgJGNtc21haWxlci0+QWRkQWRkcmVzcygkYWRkcmVzcyk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdtYW1zcmVnX2VtYWlsY29uZmlybV90ZW1wbGF0ZScpOwogICAgJHRwbC0+YXNzaWduKCduYW1lJywgJHVzZXJuYW1lKTsKICAgICR0cGwtPmFzc2lnbignY29kZScsICRjb2RlKTsKICAgICR0cGwtPmFzc2lnbignc2l0ZW5hbWUnLCAkY29uZmlnWydyb290X3VybCddKTsKICAgICRwYXJtcyAgICAgPSBbJ21yX2lucHV0X3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsICdtcl9pbnB1dF9jb2RlJyA9PiAkY29kZV07CiAgICAkcGFybXMgICAgID0gWydtcl9kYXRhJyA9PiBiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkcGFybXMpKV07CiAgICAkcHJldHR5dXJsID0gIm1hbXNyZWcvY29uZmlybS8kcmV0dXJuaWQveyRwYXJtc1snbXJfZGF0YSddfSI7CiAgICAkdXJsICAgICAgID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBGQUxTRSwgRkFMU0UsICRwcmV0dHl1cmwpOwogICAgJHRwbC0+YXNzaWduKCd1cmwnLCAkdXJsKTsKICAgICRodG1sYm9keSA9ICR0cGwtPmZldGNoKCk7CiAgICAKICAgICRjbXNtYWlsZXItPlNldEJvZHkoJGh0bWxib2R5KTsKICAgICRjbXNtYWlsZXItPklzSFRNTChUUlVFKTsgIC8vIHdlJ3JlIHNlbmRpbmcgYW4gaHRtbCBtYWlsCiAgICAkY21zbWFpbGVyLT5TZXRCb2R5KCRodG1sYm9keSk7CiAgICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KAogICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fc3ViamVjdCcsICR0aGlzLT5MYW5nKCdyZWdpc3RyYXRpb25fY29uZmlybWF0aW9uJykpCiAgICApOwogICAgJGNtc21haWxlci0+U2VuZCgpOwogIH0KICAKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRBZG1pblJlZzJUZW1wbGF0ZSgkaWQsICRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIHByb3RlY3RlZCBmdW5jdGlvbiBfU2V0QWRtaW5SZWcyVGVtcGxhdGUoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHRidXR0b24nXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcydGVtcGxhdGUnLCBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19yZWdpc3RyYXRpb24yLnRwbCcpKTsKICAgIH0KICAgIGVsc2UgaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcmVnMnRlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwogICAgfQogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICdyZWcydGVtcGxhdGUnKTsKICB9CiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0QWRtaW5FbWFpbENvbmZpcm1hdGlvblRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZXRBZG1pbkVtYWlsQ29uZmlybVRlbXBsYXRlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZihpc3NldCgkcGFyYW1zWydkZWZhdWx0YnV0dG9uJ10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWxjb25maXJtX3RlbXBsYXRlJywgJHRoaXMtPmRmbHRfZW1haWxjb25maXJtX3RlbXBsYXRlKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJGh0bWx0ZW1wbGF0ZSA9ICcnOwogICAgICAkc3ViamVjdCAgICAgID0gJyc7CiAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKSkKICAgICAgewogICAgICAgICRodG1sdGVtcGxhdGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXTsKICAgICAgfQogICAgICBpZihpc3NldCgkcGFyYW1zWydpbnB1dF9zdWJqZWN0J10pKQogICAgICB7CiAgICAgICAgJHN1YmplY3QgPSAkcGFyYW1zWydpbnB1dF9zdWJqZWN0J107CiAgICAgIH0KICAgICAgaWYoJHN1YmplY3QgPT0gJycpCiAgICAgIHsKICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9tdXN0c3BlY2lmeXN1YmplY3QnKSk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWxjb25maXJtX3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fc3ViamVjdCcsICRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXSk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2VtYWlsY29uZmlybV90ZW1wbGF0ZScpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRBZG1pbkZpbmFsTWVzc2FnZVRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZXRBZG1pbkZpbmFsTWVzc2FnZVRlbXBsYXRlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZihpc3NldCgkcGFyYW1zWydkZWZhdWx0YnV0dG9uJ10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZmluYWxtZXNzYWdlX3RlbXBsYXRlJywgJHRoaXMtPmRmbHRfZmluYWxtZXNzYWdlX3RlbXBsYXRlKTsKICAgIH0KICAgIGVsc2UgaWYoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZmluYWxtZXNzYWdlX3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwogICAgfQogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICdmaW5hbG1lc3NhZ2VfdGVtcGxhdGUnKTsKICB9CiAgCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0QWRtaW5FbWFpbENvbmZpcm1hdGlvblRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZXRBZG1pbkVtYWlsVXNlckVkaXRlZFRlbXBsYXRlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBpZihpc3NldCgkcGFyYW1zWydkZWZhdWx0YnV0dG9uJ10pKQogICAgewogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywgJHRoaXMtPmRmbHRfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgJGh0bWx0ZW1wbGF0ZSA9ICcnOwogICAgICAkc3ViamVjdCAgICAgID0gJyc7CiAgICAgIGlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKSkKICAgICAgewogICAgICAgICRodG1sdGVtcGxhdGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXTsKICAgICAgfQogICAgICBpZihpc3NldCgkcGFyYW1zWydpbnB1dF9zdWJqZWN0J10pKQogICAgICB7CiAgICAgICAgJHN1YmplY3QgPSAkcGFyYW1zWydpbnB1dF9zdWJqZWN0J107CiAgICAgIH0KICAgICAgaWYoJHN1YmplY3QgPT0gJycpCiAgICAgIHsKICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9tdXN0c3BlY2lmeXN1YmplY3QnKSk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIAogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19lbWFpbHVzZXJlZGl0ZWRfc3ViamVjdCcsICRwYXJhbXNbJ2lucHV0X3N1YmplY3QnXSk7CiAgICB9CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2VtYWlsdXNlcmVkaXRlZF90ZW1wbGF0ZScpOwogIH0KICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRBZG1pblNldEFub3RoZXJFbWFpbFRlbXBsYXRlKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9TZXRBZG1pblNlbmRBbm90aGVyRW1haWxUZW1wbGF0ZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgaWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkKICAgIHsKICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKAogICAgICAgICdtYW1zcmVnX3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfc2VuZGFub3RoZXJlbWFpbF9mb3JtLnRwbCcpCiAgICAgICk7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUpOwogICAgfQogICAgZWxzZSBpZihpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSkpCiAgICB7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwogICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcG9zdF9zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50MiddKTsKICAgIH0KICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpOwogIH0KICAKICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIC8vIEFQSSBGVU5DVElPTlMKICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIAogIHB1YmxpYyBmdW5jdGlvbiBBZGRUZW1wVXNlclByb3BlcnR5KCR1aWQsICRwcm9wbmFtZSwgJHByb3B2YWx1ZSkKICB7CiAgICAkZGIgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRpZCAgICAgICA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXNfc2VxIik7CiAgICAkcSAgICAgICAgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFZBTFVFUyAoPyw/LD8sPykiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxLCBhcnJheSgkaWQsICR1aWQsICRwcm9wbmFtZSwgJHByb3B2YWx1ZSkpOwogICAgCiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICRkYi0+c3FsIC4gJyAtICcgLiAkZGItPkVycm9yTXNnKCkpOwogICAgfQogICAgCiAgICByZXR1cm4gYXJyYXkoVFJVRSk7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBDb3VudFRlbXBVc2VycygpCiAgewogICAgJGRiICAgICAgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgICAgICAgPSAiU0VMRUNUIGNvdW50KGlkKSBhcyBjb3VudCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxKTsKICAgIGlmKCEkZGJyZXN1bHQpCiAgICB7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAKICAgIHJldHVybiAkcm93Wydjb3VudCddOwogIH0KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAKICAgIHJldHVybiBtZDUoX19GSUxFX18gLiAkdXNlcm5hbWUgLiAkY29uZmlnWydyb290X3VybCddKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIENyZWF0ZVRlbXBVc2VyKCRnaWQsICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkY29kZSwgJG92ZXJ3cml0ZV91aWQgPSBOVUxMKQogIHsKICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgaWYoJHVzZXJuYW1lID09ICcnIHx8ICRwYXNzd29yZCA9PSAnJykKICAgIHsKICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAnVXNlcm5hbWUgb3IgcGFzc3dvcmQgaXMgaW52YWxpZCcpOwogICAgfQogICAgCiAgICAkbWFtcyAgICAgID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TJyk7CiAgICAka2V5ICAgICAgPSAkdGhpcy0+Z2V0X2VuY3J5cHRpb25fa2V5KCR1c2VybmFtZSk7CiAgICAkcGFzc3dvcmQgPSBiYXNlNjRfZW5jb2RlKCR0aGlzLT5lbmNyeXB0KCRrZXksICRwYXNzd29yZCkpOwogICAgCiAgICAvLyBnZXQgYW4gaWQKICAgICRpZCAgICAgICA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzX3NlcSIpOwogICAgJHEgICAgICAgID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgKGlkLGdyb3VwX2lkLHVzZXJuYW1lLHBhc3N3b3JkLGNvZGUsY3JlYXRlZGF0ZSxvdmVyd3JpdGVfdWlkKQogICAgICAgICAgICBWQUxVRVMgKD8sMCw/LD8sPyxOT1coKSw/KSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEsIGFycmF5KCRpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRjb2RlLCAkb3ZlcndyaXRlX3VpZCkpOwogICAgaWYoISRkYnJlc3VsdCkKICAgIHsKICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkZGItPkVycm9yTXNnKCkpOwogICAgfQogICAgCiAgICAkcSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX2dycHMgKHVzZXIsZ2lkKSBWQUxVRVMgKD8sPyknOwogICAgaWYoIWlzX2FycmF5KCRnaWQpKQogICAgewogICAgICAkZ2lkID0gYXJyYXkoKGludCkkZ2lkKTsKICAgIH0KICAgIGZvcmVhY2goJGdpZCBhcyAkb25lKQogICAgewogICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxLCBhcnJheSgkaWQsICRvbmUpKTsKICAgIH0KICAgIAogICAgYXVkaXQoJGlkLCAkdGhpcy0+R2V0TmFtZSgpLCBzcHJpbnRmKCdVc2VyICVzIHJlZ2lzdGVyZWQnLCAkdXNlcm5hbWUpKTsKICAgIAogICAgcmV0dXJuIGFycmF5KFRSVUUsICRpZCk7CiAgfQogIAogIGZ1bmN0aW9uIENTVk9sZFRlbXBVc2VycygkZXhwaXJ5Y29kZSkKICB7CiAgICAkZGIgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJGV4cGlyZXMgPSAkZGItPkRiVGltZVN0YW1wKHN0cnRvdGltZSgkZXhwaXJ5Y29kZSkpOwogICAgLy8gZmluZCBhbGwgdGhlIHVzZXIgaWQncyB0aGF0IG1hdGNoCiAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGNyZWF0ZWRhdGUgPCA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgYXJyYXkoJGV4cGlyZXMpKTsKICAgICRyZXN1bHQgICA9ICcnOwogICAgCiAgICB3aGlsZSgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgewogICAgICAkdmFscyAgICAgID0gYXJyYXlfdmFsdWVzKCRyb3cpOwogICAgICAkcmVzdWx0ICAgIC49ICRyb3dbJ2lkJ10gLiAiLCIgLiAkcm93Wyd1c2VybmFtZSddIC4gIiwiIC4gJHJvd1snY29kZSddIC4gIiwiIC4gJHJvd1snY3JlYXRlZGF0ZSddIC4gIiwiOwogICAgICAkcTIgICAgICAgID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9wcm9wZXJ0aWVzIFdIRVJFIHVzZXIgPSA/IE9SREVSIGJ5IGlkIjsKICAgICAgJGRicmVzdWx0MiA9ICRkYi0+RXhlY3V0ZSgkcTIsIGFycmF5KCRyb3dbJ2lkJ10pKTsKICAgICAgd2hpbGUoJHJvdzIgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpKQogICAgICB7CiAgICAgICAgJHJlc3VsdCAuPSAkcm93MlsnZGF0YSddIC4gIiwiOwogICAgICB9CiAgICAgICRyZXN1bHQgLj0gImVuZFxuIjsKICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBFZGl0VGVtcFVzZXIoJHVpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRjb2RlID0gTlVMTCkKICB7CiAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgIGlmKCR1c2VybmFtZSA9PSAnJykKICAgIHsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgCiAgICAkcSAgICAgID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFNFVCB1c2VybmFtZSA9ID8iOwogICAgJHBhcmFtcyA9IGFycmF5KCR1c2VybmFtZSk7CiAgICBpZigkY29kZSkKICAgIHsKICAgICAgJHEgICAgICAgIC49ICIsY29kZSA9ID8iOwogICAgICAkcGFyYW1zW10gPSAkY29kZTsKICAgIH0KICAgIAogICAgaWYoJHBhc3N3b3JkICE9ICcnKQogICAgewogICAgICAkcSAgICAgICAgLj0gIixwYXNzd29yZCA9ID8iOwogICAgICAkbWFtcyAgICAgID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNQU1TJyk7CiAgICAgICRrZXkgICAgICA9ICR0aGlzLT5nZXRfZW5jcnlwdGlvbl9rZXkoJHVzZXJuYW1lKTsKICAgICAgJHBhcmFtc1tdID0gYmFzZTY0X2VuY29kZSgkdGhpcy0+ZW5jcnlwdCgka2V5LCAkcGFzc3dvcmQpKTsKICAgIH0KICAgIAogICAgJHEgICAgICAgIC49ICIgV0hFUkUgaWQgPSA/IjsKICAgICRwYXJhbXNbXSA9ICR1aWQ7CiAgICAKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgJHBhcmFtcyk7CiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gYXJyYXkoRkFMU0UsICRkYi0+RXJyb3JNc2coKSk7CiAgICB9CiAgICAKICAgIHJldHVybiBhcnJheShUUlVFKTsKICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEV4cGlyZU9sZFRlbXBVc2VycygkZXhwaXJ5Y29kZSkKICB7CiAgICAkZGIgICAgICA9ICR0aGlzLT5HZXREYigpOwogICAgJGV4cGlyZXMgPSAkZGItPkRiVGltZVN0YW1wKHN0cnRvdGltZSgkZXhwaXJ5Y29kZSkpOwogICAgLy8gZmluZCBhbGwgdGhlIHVzZXIgaWQncyB0aGF0IG1hdGNoCiAgICAkcSAgICAgICAgPSAiU0VMRUNUIGlkIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl91c2VycyBXSEVSRSBjcmVhdGVkYXRlIDwgPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkdldENvbCgkcSwgYXJyYXkoJGV4cGlyZXMpKTsKICAgIAogICAgaWYoaXNfYXJyYXkoJGRicmVzdWx0KSAmJiBjb3VudCgkZGJyZXN1bHQpKQogICAgewogICAgICAkdGhpcy0+RGVsZXRlVGVtcFVzZXIoJGRicmVzdWx0KTsKICAgIH0KICAgIAogICAgcmV0dXJuIFRSVUU7CiAgfQogIAogIC8qKgogICAqIEBpbnRlcm5hbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVUZW1wVXNlcigkdWlkKQogIHsKICAgIGlmKCFpc19hcnJheSgkdWlkKSkKICAgIHsKICAgICAgJHVpZCA9IGFycmF5KCR1aWQpOwogICAgfQogICAgCiAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRxbCA9IGFycmF5KCk7CiAgICAkcTEgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfbWFtc3JlZ2lzdHJhdGlvbl9ncnBzIFdIRVJFIHVzZXIgSU4gKCcgLiBpbXBsb2RlKCcsJywgJHVpZCkgLiAnKSc7CiAgICAkZGItPkV4ZWN1dGUoJHExKTsKICAgICRxMiA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciBJTiAoJyAuIGltcGxvZGUoJywnLCAkdWlkKSAuICcpJzsKICAgICRkYi0+RXhlY3V0ZSgkcTIpOwogICAgJHEzID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgaWQgSU4gKCcgLiBpbXBsb2RlKCcsJywgJHVpZCkgLiAnKSc7CiAgICAkZGItPkV4ZWN1dGUoJHEzKTsKICAgIAogICAgcmV0dXJuIFRSVUU7CiAgfQogIAogIC8qKgogICAqIEBpbnRlcm5hbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVUZW1wVXNlclByb3BlcnRpZXMoJHVpZCkKICB7CiAgICAkZGIgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRxICAgICAgICA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3Byb3BlcnRpZXMgV0hFUkUgdXNlciA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxLCBhcnJheSgkdWlkKSk7CiAgICBpZighJGRicmVzdWx0KQogICAgewogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICAKICAgIHJldHVybiBUUlVFOwogIH0KICAKICAvKioKICAgKiBAaW50ZXJuYWwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gR2V0VGVtcFVzZXJEZXRhaWxzKCR1aWQpCiAgewogICAgJGRiICAgICAgID0gJHRoaXMtPkdldERiKCk7CiAgICAkcSAgICAgICAgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9tYW1zcmVnaXN0cmF0aW9uX3VzZXJzIFdIRVJFIGlkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkdldFJvdygkcSwgYXJyYXkoJHVpZCkpOwogICAgaWYoIWlzX2FycmF5KCRkYnJlc3VsdCkpCiAgICB7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAgIAogICAgcmV0dXJuICRkYnJlc3VsdDsKICB9CiAgCiAgLyoqCiAgICogQGludGVybmFsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEdldFRlbXBVc2VySUQoJHVzZXJuYW1lKQogIHsKICAgIGlmKCR1c2VybmFtZSA9PSAnJykKICAgIHsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgJGRiICA9ICR0aGlzLT5HZXREYigpOwogICAgJHEgICA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fdXNlcnMgV0hFUkUgdXNlcm5hbWUgPSA/IjsKICAgICRkYnIgPSAkZGItPkdldE9uZSgkcSwgYXJyYXkoJHVzZXJuYW1lKSk7CiAgICBpZighJGRicikKICAgIHsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICAgCiAgICByZXR1cm4gJGRicjsKICB9CiAgCiAgLyoqCiAgICogQGludGVybmFsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIEdldFRlbXBVc2VyUHJvcGVydHkoJHVpZCwgJHByb3BuYW1lLCAkZGZsdCA9IE5VTEwpCiAgewogICAgJGRiICA9ICR0aGlzLT5HZXREYigpOwogICAgJHEgICA9ICJTRUxFQ1QgZGF0YSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcHJvcGVydGllcyBXSEVSRSB1c2VyID0gPyBBTkQgdGl0bGUgPSAgPyI7CiAgICAkZGJyID0gJGRiLT5HZXRPbmUoJHEsIGFycmF5KCR1aWQsICRwcm9wbmFtZSkpOwogICAgaWYoISRkYnIpCiAgICB7CiAgICAgIHJldHVybiAkZGZsdDsKICAgIH0KICAgIAogICAgcmV0dXJuICRkYnI7CiAgfQogIAogIC8qKgogICAqIEBpbnRlcm5hbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBHZXRUZW1wVXNlclByb3BlcnRpZXMoJHVpZCkKICB7CiAgICAkZGIgICAgICAgPSAkdGhpcy0+R2V0RGIoKTsKICAgICRxICAgICAgICA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX21hbXNyZWdpc3RyYXRpb25fcHJvcGVydGllcyBXSEVSRSB1c2VyID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHEsIGFycmF5KCR1aWQpKTsKICAgIGlmKCEkZGJyZXN1bHQgfHwgJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpID09IDApCiAgICB7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgd2hpbGUoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgIHsKICAgICAgJHJlc3VsdFtdID0gJHJvdzsKICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9pbmZvKCR0ZW1wX3VzZXJfaWQpCiAgewogICAgJHJlcyAgICAgICAgICAgICAgICAgPSBhcnJheSgpOwogICAgJHJlc1snaWQnXSAgICAgICAgICAgPSAkdGVtcF91c2VyX2lkOwogICAgJHJlc1sncHJvZHVjdF9uYW1lJ10gPSAnQWNjb3VudCBSZWdpc3RyYXRpb24nOwogICAgCiAgICByZXR1cm4gJHJlczsKICB9CiAgCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZih2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCAnNS40LjExJykgPCAwKQp7CiAgcmV0dXJuICdNaW5pbXVtIFBIUCB2ZXJzaW9uIG9mIDUuNC4xMSByZXF1aXJlZCc7Cn0KCiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZG5hbWU7CgokZGljdCAgICAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKLy8gdmFsaWRhdGlvbnMgaW4gcHJvY2VzcwokZmxkcyAgICAgPSAnCiAgICAgICAgIGlkIEkgS0VZLAogICAgICAgICBncm91cF9pZCBJIE5PVE5VTEwsCiAgICAgICAgIHVzZXJuYW1lIEMoODApIE5PVE5VTEwsCiAgICAgICAgIHBhc3N3b3JkIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICBjb2RlIEMoMjApIE5PVE5VTEwsCiAgICAgICAgIGNyZWF0ZWRhdGUgJyAuIENNU19BRE9EQl9EVCAuICcsCiAgICAgICAgIG92ZXJ3cml0ZV91aWQgSSc7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfdXNlcnMnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGRiLT5DcmVhdGVTZXF1ZW5jZSgkdGFibGVfcHJlZml4IC4gJ191c2Vyc19zZXEnKTsKCiRmbGRzICAgICA9ICd1c2VyIEkgS0VZIE5PVE5VTEwsCiAgICAgICAgIGdpZCAgSSBLRVkgTk9UTlVMTCc7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfZ3JwcycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyAgICAgPSAnaWQgSSBLRVksCiAgICAgICAgIHVzZXIgSSBOT1ROVUxMLAogICAgICAgICB0aXRsZSBDKDEwMCkgTk9UTlVMTCwKICAgICAgICAgZGF0YSBYCiAgICAgICAgJzsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkdGFibGVfcHJlZml4IC4gJ19wcm9wZXJ0aWVzJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRkYi0+Q3JlYXRlU2VxdWVuY2UoJHRhYmxlX3ByZWZpeCAuICdfcHJvcGVydGllc19zZXEnKTsKCiRmbGRzICAgICA9ICdpZCBJIEFVVE8gS0VZLAogICAgICAgICBuYW1lIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICBwcm9tcHQgQygyNTUpIE5PVE5VTEwsCiAgICAgICAgIGRlc2NyaXB0aW9uIFgsCiAgICAgICAgIGdpZCBJIE5PVE5VTEwsCiAgICAgICAgIHN1YnNjcl9udW0gSSwKICAgICAgICAgc3Vic2NyX3R5cGUgQygxMCksCiAgICAgICAgIGNvc3QgRic7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcGFpZHBrZ3MnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gcHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfZW1haWxfY29uZmlybWF0aW9uJywgMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZW5kX2VtYWlsc190bycsICdyb290QGxvY2FsaG9zdC5jb20nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmeV9vbl9yZWdpc3RyYXRpb24nLCAxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWxjb25maXJtX3N1YmplY3QnLCAkdGhpcy0+TGFuZygncmVnaXN0cmF0aW9uX2NvbmZpcm1hdGlvbicpKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3N1YmplY3QnLCAkdGhpcy0+TGFuZygncmVnaXN0cmF0aW9uX2luZm9fZWRpdGVkJykpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWFtc3JlZ19mb3JjZV9lbWFpbF90d2ljZScsIDApOwoKLy8gdGVtcGxhdGVzCiR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VscGtndGVtcGxhdGUnLCBAZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfc2VscGtnX3RlbXBsYXRlLnRwbCcpKTsKCiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19yZWcxdGVtcGxhdGUnLCBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19yZWdpc3RyYXRpb24xLnRwbCcpKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX3Bvc3RyZWcxX3RlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfcG9zdHJlZzEudHBsJykpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfcmVnMnRlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfcmVnaXN0cmF0aW9uMi50cGwnKSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19lbWFpbGNvbmZpcm1fdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbGNvbmZpcm1fdGVtcGxhdGUpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ21hbXNyZWdfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlJywgJHRoaXMtPmRmbHRfZW1haWx1c2VyZWRpdGVkX3RlbXBsYXRlKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX2VtYWlsdXNlcmVkaXRlZF90ZXh0dGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9lbWFpbHVzZXJlZGl0ZWRfdGV4dHRlbXBsYXRlKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdtYW1zcmVnX2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZScsICR0aGlzLT5kZmx0X2ZpbmFsbWVzc2FnZV90ZW1wbGF0ZSk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgKICAnbWFtc3JlZ19zZW5kYW5vdGhlcmVtYWlsX3RlbXBsYXRlJywgZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICcvdGVtcGxhdGVzL29yaWdfc2VuZGFub3RoZXJlbWFpbF9mb3JtLnRwbCcpCik7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnbWFtc3JlZ19wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUnLCAkdGhpcy0+ZGZsdF9wb3N0X3NlbmRhbm90aGVyZW1haWxfdGVtcGxhdGUpOwokdGhpcy0+U2V0VGVtcGxhdGUoJ2Fub3RoZXJncm91cF90ZW1wbGF0ZScsIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gJy90ZW1wbGF0ZXMvb3JpZ19hbm90aGVyZ3JvdXBfdGVtcGxhdGUudHBsJykpOwoKLy8gUGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycsICdNYW5hZ2UgUmVnaXN0ZXJpbmcgVXNlcnMnKTsKCi8vIGV2ZW50cwokdGhpcy0+Q3JlYXRlRXZlbnQoJ2JlZm9yZU5ld1VzZXInKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdvbk5ld1VzZXInKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdvblVzZXJSZWdpc3RlcmVkJyk7CgovLyR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdDYXJ0QWRqdXN0ZWQnLCBGQUxTRSk7Ci8vJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywgJ09yZGVyQ3JlYXRlZCcsIEZBTFNFKTsKLy8kdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnT3JkZXJVcGRhdGVkJywgRkFMU0UpOwovLyR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdPcmRlckRlbGV0ZWQnLCBGQUxTRSk7CgokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywgJ01vZHVsZUluc3RhbGxlZCcsIEZBTFNFKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsICdNb2R1bGVVbmluc3RhbGxlZCcsIEZBTFNFKTsKCi8vJG1hbXMgICAgID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnTUFNUycpOwovLyRhdHRyaWJzID0gc2VyaWFsaXplKGFycmF5KCdtb2R1bGUnID0+ICR0aGlzLT5HZXROYW1lKCkpKTsKLy8kbWFtcy0+QWRkUHJvcGVydHlEZWZuKE1BTVNSZWdpc3RyYXRpb246Ok1BTVNfUFJPUE5BTUUsICcnLCBNQU1TOjpGSUVMRFRZUEVfREFUQSwgMTAyNCwgMCwgJGF0dHJpYnMpOwoKJHRwbCA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18gLiAnL3RlbXBsYXRlcy9hZG1pbl9ub3RpZnlfZW1haWwudHBsJyk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnYWRtaW5fbm90aWZ5X2VtYWlsJywgJHRwbCk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokZGIgICAgICAgICAgID0gJHRoaXMtPkdldERiKCk7CiRtb2RuYW1lICAgICAgPSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpOwokdGFibGVfcHJlZml4ID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZG5hbWU7CiRkaWN0ICAgICAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkdGFibGVfcHJlZml4IC4gJ191c2VycycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfZ3JwcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcHJvcGVydGllcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJHRhYmxlX3ByZWZpeCAuICdfcGFpZHBrZ3MnKTsKCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5Ecm9wU2VxdWVuY2UoJHRhYmxlX3ByZWZpeCAuICdfdXNlcnNfc2VxJyk7CiRkYi0+RHJvcFNlcXVlbmNlKCR0YWJsZV9wcmVmaXggLiAnX3Byb3BlcnRpZXNfc2VxJyk7CgovLyBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gdGVtcGxhdGVzCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOwoKLy8gcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBSZWdpc3RlcmluZyBVc2VycycpOwoKLy8gZXZlbnRzCiR0aGlzLT5SZW1vdmVFdmVudCgnb25OZXdVc2VyJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnb25Vc2VyUmVnaXN0ZXJlZCcpOwoKLy8kdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnQ2FydEFkanVzdGVkJyk7Ci8vJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywgJ09yZGVyQ3JlYXRlZCcpOwovLyR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsICdPcmRlclVwZGF0ZWQnKTsKLy8kdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCAnT3JkZXJEZWxldGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlSW5zdGFsbGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlSW5zdGFsbGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCAnTW9kdWxlVW5pbnN0YWxsZWQnKTsKCiRtYW1zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9NQU1TKTsKJG1hbXMtPkRlbGV0ZVByb3BlcnR5RGVmbihNQU1TUmVnaXN0cmF0aW9uOjpNQU1TX1BST1BOQU1FLCBUUlVFKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IE1BTVNSZWdpc3RyYXRpb24gKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIEFuIGFkZC1vbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogU2VsZlJlZ2lzdHJhdGlvbiAoYykgMjAwOC0yMDEzIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjExJykgPCAwICkKewogIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA1LjQuMTEgcmVxdWlyZWQiOwp9]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJNQU1TUmVnaXN0cmF0aW9uIg0KdmVyc2lvbiA9IDEuMA0KYXV0aG9yID0gIkpvIE1vcmciDQphdXRob3JlbWFpbCA9ICJqb21vcmdAY21zbWFkZXNpbXBsZS5vcmciDQptaW5jbXN2ZXJzaW9uID0gIjIuMi41Ig0KbGF6eWxvYWRhZG1pbiA9IDENCmxhenlsb2FkZnJvbnRlbmQgPSAwDQpbZGVwZW5kc10KQ01TTVNFeHQgPSAiMS4wLjEiDQpNQU1TID0gMS4wDQpTbWFydHlFeHQgPSAxLjANCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_addpaidpkg.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CntpZiAkcGtnZGF0YS5uYW1lID09ICcnfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9wYWlkcGtnJyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9wYWlkcGtnJywkcGtnZGF0YS5uYW1lKX08L2gzPgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBrZ19uYW1lIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JHBrZ2RhdGEubmFtZX0iLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cGtnX3Byb21wdCIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRwa2dkYXRhLnByb21wdH0iLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdncm91cCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cGtnX2dpZCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdyb3VwbGlzdCBzZWxlY3RlZD0kcGtnZGF0YS5naWR9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXNjcmlwdGlvbn08L3A+CjwvZGl2PgoKe2lmIGlzc2V0KCRjYW5fZWRpdF9jb3N0KX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjb3N0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskY3VycmVuY3lfc3ltYm9sfGRlZmF1bHQ6Jyd9CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1wa2dfY29zdCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHBrZ2RhdGEuY29zdH0iLz4KICAgIHskY3VycmVuY3lfY29kZXxkZWZhdWx0OicnfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3N1YnNjcmlwdGlvbl9leHBpcmVzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1zdWJzY3JfbnVtIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kbnVtcyBzZWxlY3RlZD0kcGtnZGF0YS5zdWJzY3JfbnVtfQogICAgPC9zZWxlY3Q+Jm5ic3A7CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c3Vic2NyX3R5cGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdWJzY3JfdHlwZXMgc2VsZWN0ZWQ9JHBrZ2RhdGEuc3Vic2NyX3R5cGV9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_anothergroup_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYW5vdGhlciBncm91cCB0ZW1wbGF0ZSBmb3JtIHRhYiAqfQp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2Fub3RoZXJncm91cF90ZW1wbGF0ZScpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWRlZmF1bHRzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2RlZmF1bHQnKX0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7eHRfdGV4dGFyZWEgc3ludGF4PTEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSd0ZW1wbGF0ZScgdmFsdWU9JHRlbXBsYXRlfQogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_emailconfirm_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzdWJqZWN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X3N1YmplY3QiIHZhbHVlPSJ7JHN1YmplY3R9IiBzaXplPSI4MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWVzc2FnZWJvZHknKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JGJvZHlfdHBsfQogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_finalmessage_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtZXNzYWdlYm9keScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfdGV4dGFyZWEgc3ludGF4PTEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXRlbXBsYXRlY29udGVudCB2YWx1ZT0kdGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_notify_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPk5ldyBVc2VyIFJlZ2lzdHJhdGlvbjwvaDM+CjxwPkEgbmV3IHVzZXIgPHN0cm9uZz57JHVzZXJuYW1lfTwvc3Ryb25nPiBoYXMgY29tcGxldGVkIHJlZ2lzdHJhdGlvbiB0byB7c2l0ZW5hbWV9LjwvcD4Ke2lmICR1aWQgPiAwfQo8cD5UaGlzIHVzZXIgaGFzIGFscmVhZHkgYmVlbiBwdXNoZWQgdG8gdGhlIE1BTVMgbW9kdWxlIGFuZCBoYXMgYSB1aWQgb2YgeyR1aWR9PC9wPgp7L2lmfQo8cD5Zb3Ugc2hvdWxkIGNoZWNrIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIHVzZXIgaW5mb3JtYXRpb24gdG8gZW5zdXJlIHRoZSB2YWxpZGl0eSBvZiB0aGlzIG5ldyB1c2VyIGFjY291bnQuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_paidregistration_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CntpZiBpc3NldCgkcGFja2FnZWxpc3QpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdwcm9tcHQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2dyb3VwJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdjb3N0Jyl9PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kcGFja2FnZWxpc3QgaXRlbT0nb25lcGtnJ30KICAgIDx0cj4KICAgICAgPHRkPjxhIGhyZWY9Inskb25lcGtnLmVkaXRfdXJsfSI+eyRvbmVwa2cubmFtZX08L2E+PC90ZD4KICAgICAgPHRkPnskb25lcGtnLnByb21wdH08L3RkPgogICAgICA8dGQ+e2lmIGlzc2V0KCRncm91cGxpc3RbJG9uZXBrZy5naWRdKX17JGdyb3VwbGlzdFskb25lcGtnLmdpZF19e2Vsc2V9PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5FUlJPUjwvc3Bhbj57L2lmfTwvdGQ+CiAgICAgIDx0ZD57JGN1cnJlbmN5X3N5bWJvbHxkZWZhdWx0OicnfXskb25lcGtnLmNvc3R8bnVtYmVyX2Zvcm1hdDoyfTwvdGQ+CiAgICAgIDx0ZD57JG9uZXBrZy5lZGl0X2xpbmt9PC90ZD4KICAgICAgPHRkPnskb25lcGtnLmRlbGV0ZV9saW5rfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgeyRhZGRsaW5rfQo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_reg1template_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19yZWdpc3RyYXRpb25fdGVtcGxhdGVzJyl9PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnZGVmYXVsdCcpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncmVnaXN0cmF0aW9uX3RlbXBsYXRlJyl9OjwvcD4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1yZWcxX3RlbXBsYXRlY29udGVudCB2YWx1ZT0kcmVnMV90ZW1wbGF0ZWNvbnRlbnR9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Bvc3RfcmVnaXN0cmF0aW9uX3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9cG9zdHJlZzFfdGVtcGxhdGVjb250ZW50IHZhbHVlPSRwb3N0cmVnMV90ZW1wbGF0ZWNvbnRlbnR9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_sendanotheremail_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0YnV0dG9uIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1kZWZhdWx0YnV0dG9uIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2RlZmF1bHQnKX0iLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGl0bGVfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGVtcGxhdGVjb250ZW50IHZhbHVlPSR0ZW1wbGF0ZSBjb2xzPTgwIHJvd3M9MTB9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RpdGxlX3Bvc3Rfc2VuZGFub3RoZXJlbWFpbF90ZW1wbGF0ZScpfTo8L3A+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHt4dF90ZXh0YXJlYSBzeW50YXg9MSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGVtcGxhdGVjb250ZW50MiB2YWx1ZT0kcG9zdF90ZW1wbGF0ZSBjb2xzPTgwIHJvd3M9MTB9CiAgPC9kaXY+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_userinfoedited_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzdWJqZWN0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X3N1YmplY3QiIHZhbHVlPSJ7JHN1YmplY3R9IiBzaXplPSI4MCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaHRtbGJvZHknKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JGh0bWx0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/edituser.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSBhbmQgJG1lc3NhZ2UgIT0gJyd9CiAge2lmIGlzc2V0KCRlcnJvcikgYW5kICRlcnJvciAhPSAnJ30KICAgIDxwPjxmb250IGNvbG9yPSJyZWQiPnskbWVzc2FnZX08L2ZvbnQ+PC9wPgogIHtlbHNlfQogICAgPHA+eyRtZXNzYWdlfTwvcD4KICB7L2lmfQp7L2lmfQoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogIDxoND57JG1vZC0+TGFuZygncHJvbXB0X2VkaXR1c2VyX2dyb3VwcycpfTo8L2g0PgogIDxwPgogICAgIHtmb3JlYWNoICRncnBfaWRzIGFzICRnaWR9CiAgICAgICAgPHN0cm9uZz57JGFsbGdyb3Vwc1skZ2lkXVsnZ3JvdXBuYW1lJ119PC9zdHJvbmc+IC0geyRhbGxncm91cHNbJGdpZF1bJ2dyb3VwZGVzYyddfQogICAgICAgIHtpZiAhJGdpZEBsYXN0fTxici8+ey9pZn0KICAgICB7L2ZvcmVhY2h9CiAgPC9wPgo8L2Rpdj4KCnskc3RhcnRmb3JtfQp7aWYgJGNvbnRyb2xjb3VudCA+IDB9Cntmb3JlYWNoIGZyb209JGNvbnRyb2xzIGl0ZW09Y29udHJvbH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiIHN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iPnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGNvbnRyb2wtPmhpZGRlbnxkZWZhdWx0OicnfXskY29udHJvbC0+Y29udHJvbH0KICAgIHtpZiBpc3NldCgkY29udHJvbC0+ZXh0cmF0ZXh0KX08YnIvPnskY29udHJvbC0+ZXh0cmF0ZXh0fXsvaWZ9CiAgPC9wPgo8L2Rpdj4Key9mb3JlYWNofQp7L2lmfQoKPGhyLz4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc2VuZGxpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXB1c2hsaXZlIj4KICAgICAge3h0X3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9MH0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAge2lmIGlzc2V0KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CiAge2lmIGlzc2V0KCRoaWRkZW4yKX17JGhpZGRlbjJ9ey9pZn0KICB7JHN1Ym1pdH17JGNhbmNlbH0KICA8L3A+CjwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCl9L2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0Pg0KICBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQogICAgdmFyIGFjdGl2ZV90YWIgPSBDb29raWVzLmdldCgnbWFtc3JlZ190YWJfYWN0aXZlJyk7DQoNCiAgICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpDQogICAgew0KICAgICAgX3NldF9hY3RpdmVfdGFiKCdnZW5lcmFsJyk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7DQogICAgfQ0KDQogICAgJCgnI3BhZ2VfdGFicyA+IGRpdicpDQogICAgICAuZWFjaChmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgICQodGhpcykuY2xpY2soZnVuY3Rpb24oKQ0KICAgICAgICB7DQogICAgICAgICAgQ29va2llcy5zZXQoJ21hbXNyZWdfdGFiX2FjdGl2ZScsIHRoaXMuaWQpOw0KICAgICAgICB9KTsNCiAgICAgIH0pOw0KICB9KTsNCg0KICBmdW5jdGlvbiBfc2V0X2FjdGl2ZV90YWIodGFiX25hbWUpDQogIHsNCiAgICAkKCcjcGFnZV90YWJzID4gZGl2JykNCiAgICAgIC5lYWNoKGZ1bmN0aW9uKCkNCiAgICAgIHsNCiAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQogICAgICB9KTsNCg0KICAgICQoJyNwYWdlX2NvbnRlbnQgPiBkaXYnKQ0KICAgICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgICAgew0KICAgICAgICAkKHRoaXMpLmhpZGUoKTsNCiAgICAgIH0pOw0KDQogICAgJCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOw0KICAgICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7DQogICAgQ29va2llcy5zZXQoJ21hbXNyZWdfdGFiX2FjdGl2ZScsIHRhYl9uYW1lKTsNCiAgfQ0KPC9zY3JpcHQ+DQoNCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc2NvcGVkPg0KaDV7DQogICAgbWFyZ2luLXRvcDogMC43NWVtOw0KICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTsNCiAgfQ0KICBsaS50b3Agew0KICAgIG1hcmdpbi1ib3R0b206IDFlbTsNCiAgfQ0KICBjb2RlLnRhZyB7DQogICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIGNvbG9yOiBncmVlbjsNCiAgfQ0KPC9zdHlsZT4NCg0KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KDQo8ZGl2IGlkPSJwYWdlX3RhYnMiPg0KDQogIDxkaXYgIGlkPSJnZW5lcmFsIj4NCiAgICBHZW5lcmFsDQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ1c2luZyI+DQogICAgSG93IERvIEkgVXNlIEl0DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJwYXJhbXMiPg0KICAgIFBhcmFtZXRlcnMNCiAgPC9kaXY+DQogIDxkaXYgaWQ9Imhvb2tzIj4NCiAgICBIb29rcw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iYWJvdXQiPg0KICAgIEFib3V0DQogIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+DQoNCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TUFNU1JlZ2lzdHJhdGlvbjtoZWxwX2dlbmVyYWxfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ1c2luZ19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6TUFNU1JlZ2lzdHJhdGlvbjtoZWxwX3VzaW5nX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0icGFyYW1zX2MiPg0KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpNQU1TUmVnaXN0cmF0aW9uO2hlbHBfcGFyYW1zX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iaG9va3NfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOk1BTVNSZWdpc3RyYXRpb247aGVscF9ob29rc190YWIudHBsJ30NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpNQU1TUmVnaXN0cmF0aW9uO2hlbHBfYWJvdXRfdGFiLnRwbCd9DQogIDwvZGl2Pg0KDQogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_about_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGlzIGEgZm9yayBvZiA8c3Ryb25nPlNlbGZSZWdpc3RyYXRpb248L3N0cm9uZz4gZGV2ZWxvcGVkIGJ5IDxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Ozwvc3Ryb25nPi48YnIgLz4NCiAgVGhpcyBpcyBhIDFzdCBnZW5lcmF0aW9uIGZvcmsgb2YgdGhlIG1vZHVsZS4gQ29uc2lkZXIgdGhpcyBhcyBhbm90aGVyIGZsYXZvdXIgb2YgdGhlIG9yaWdpbmFsIG1vZHVsZS4gSG93ZXZlciB0aGVyZSBhcmUgc29tZSBzdWJzdGFudGlhbCBkaWZmZXJlbmNlcywgdGhlbSBtYWluIG9uZSBiZWluZyB0aGF0IGl0IHJlcXVpcmVzIDxzdHJvbmc+TUFNUzwvc3Ryb25nPiAoYSBmb3JrIG9mIDxzdHJvbmc+RkVVPC9zdHJvbmc+IGFsc28gZnJvbSB0aGUgc2FtZSBhdXRob3IpLiA8c3Ryb25nPlRoaXMgbW9kdWxlIHdpbCBub3Qgd29yayB3aXRoIEZFVTwvc3Ryb25nPi48L3A+DQoNCjxwPklmIHlvdSBmaW5kIGFueSBidWdzIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgYnVnIHJlcG9ydCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzE0NjYiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPiBvciBmb3IgYW55IGdvb2QgaWRlYXMgY29uc2lkZXIgc3VibWl0aW5nIGEgZmVhdHVyZSByZXF1ZXN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTQ2NiIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+LjwvcD4NCjxwPlBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBkZXZlbG9wZXJzIGRvIGhhdmUgdGhlaXIgZGFpbHkgam9icyB3aGljaCBtZWFucyB0aGF0IGZlYXR1cmUgcmVxdWVzdHMgYXJlIGNvbnNpZGVyZWQgYW5kIGRvbmUgYXMgdGltZSBhbGxvd3MuIElmIHlvdSBuZWVkIGEgZmVhdHVyZSByZWFsbHkgYmFkbHkgY29uc2lkZXIgY29udGFjdGluZyBvbmUgb2YgdGhlIGRldmVsb3BlcnMgZm9yIGEgc3BvbnNvcmVkIGRldmVsb3BtZW50Lg0KPC9wPg0KDQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoZSBtb2R1bGUgYXV0aG9yIC8gbWFpbnRhaW5lcnMgb3IgcHJvamVjdCBtYW5hZ2VycyBhcmUgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbWFtc3JlZyI+aGVyZTwvYT4uIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcm92aWRlIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPg0KPC91bD4NCg0KPHA+VGhlIG1haW50YWluZXJzIHdpbGwgZG8gdGhlaXIgYmVzdCB0byBrZWVwIHRoZSBtb2R1bGUgYW5kIGFsbCB0aGUgbGlicmFyaWVzIGl0IHVzZXMgdXAgdG8gZGF0ZS48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0Ke2lmICRzbWFydHkubm93fGRhdGVfZm9ybWF0OiIlWSIgPT0gJzIwMjAnfXskY3IgPSAnMjAyMCd9e2Vsc2V9eyRjciA9ICIyMDIwIC0geyRzbWFydHkubm93fGRhdGVfZm9ybWF0OiclWSd9In17L2lmfQ0KPHA+Q29weXJpZ2h0ICZjb3B5OyB7JGNyfSwgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gPGEgaHJlZj0ibWFpbHRvOmluZm9AY21zbWFkZXNpbXBsZS5vcmciPiZsdDtpbmZvQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPGhyPg0KPHA+PHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+PHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCA8c3Ryb25nPldJVEhPVVQgQU5ZIFdBUlJBTlRZPC9zdHJvbmc+OzxiciAvPiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgPHN0cm9uZz5NRVJDSEFOVEFCSUxJVFk8L3N0cm9uZz4gb3IgPHN0cm9uZz5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRTwvc3Ryb25nPi48L3A+DQo8cD5TZWUgdGhlR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48L3A+DQogPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+DQo8cD48c3Ryb25nPllvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgPHN0cm9uZz5NQU1TUmVnaXN0cmF0aW9uPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4NCjxocj4NCjxoND5DdXJyZW50IE1haW50YWluZXJzPC9oND4NCjx1bD4NCiAgPGxpIGNsYXNzPSJwX2JvdHRvbV8xNSI+PHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDQ+UGFzdCBNYWludGFpbmVyczwvaDQ+DQo8dWw+DQogIDxsaT48c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMCk8L3N0cm9uZz4gPGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCjxoND5Lbm93biBDb250cmlidXRvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+PGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCnsqDQpUT0RPOiBuZWVkIGFuIHVwZGF0ZWQgbGlzdCBvZiBzcG9uc29ycyA6fCAoSk0pDQo8aDQ+S25vd24gU3BvbnNvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5NYXR0IEhvcm5zYnkgKERJR0kzKTwvc3Ryb25nPjxiciAvPnd3dy5tYXR0aG9ybnNieS5jYTwvbGk+DQogIDxsaT48c3Ryb25nPkdyZWdvcnkgUHJvc3NlciAoZ2VlcGVycyk8L3N0cm9uZz48YnIgLz53d3cuc3RpY2t5d2lja2V0ZGVzaWducy5jb208L2xpPg0KPC91bD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/help_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpcyBkZXNpZ25lZCB0byBhbGxvdyBzaXRlIHZpc2l0b3JzIHRvIGNyZWF0ZSBhbiBhY2NvdW50IHRvIHlvdXIgd2Vic2l0ZSBieSBmaWxsaW5nIGluIHRoZWlyIG93biBwZXJzb25hbCBkZXRhaWxzLiAgVGhpcyBtb2R1bGUgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKDxzdHJvbmc+PGk+TWVtYmVycyBBcmVhIE1hZGUgU2ltcGxlPC9pPjwvc3Ryb25nPikgbW9kdWxlLjwvcD4NCjxoND5GZWF0dXJlczo8L2g0Pg0KPHVsPg0KICA8bGk+U3VwcG9ydHMgc2VuZGluZyBhIGNvbmZpcm1hdGlvbiBlbWFpbCAod2l0aCBhIHVuaXF1ZWx5IGdlbmVyYXRlZCBjb2RlKSB0byB2ZXJpZnkgdXNlciBpbmZvcm1hdGlvbjs8L2xpPg0KeyogIDxsaT5TdXBwb3J0cyBwYWlkIHJlZ2lzdHJhdGlvbiAoYWRkaXRpb25hbCBtb2R1bGVzIHJlcXVpcmVkKTs8L2xpPip9DQogIDxsaT5IYW5kbGVzIHRoZSBjYXNlIHdoZXJlIHVzZXJzIGhhdmUgYXR0ZW1wdGVkIHRvIHJlZ2lzdGVyLCBidXQgbG9zdCBvciBkaWQgbm90IHJlY2VpdmUgdGhlIGNvbmZpcm1hdGlvbiBlbWFpbC48L2xpPg0KICA8bGk+SGFuZGxlcyByZWdpc3RlcmluZyB0aGUgdXNlciBhbmQgYWRkaW5nIHRoZW0gdG8gPHN0cm9uZz5NQU1TPC9zdHJvbmc+IGRpcmVjdGx5LjwvbGk+DQogIDxsaT5IYW5kbGVzIGF1dG9tYXRpY2FsbHkgbm90aWZ5aW5nIGFuIGFkbWluIHdoZW4gc29tZW9uZSByZWdpc3RlcnMuPC9saT4NCiAgPGxpPkhhbmRsZXMgYWR2YW5jZWQgc2VjdXJpdHk8L2xpPg0KICA8bGk+U3VwcG9ydHMgY2FwdGNoYTwvbGk+DQogIDxsaT5TdXBwb3J0cyBhbGxvd2luZyBhIHVzZXIgdG8gcmVnaXN0ZXIgdG8gYW4gYWRkaXRpb25hbCBncm91cC48L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_hooks_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvb2tzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIHVzZXMgRXZlbnRzIGFuZCBIb29rcyB0byB0aWUgaW4gZXh0ZXJuYWwgZnVuY3Rpb25hbGl0eS4gIFRoZSBmb2xsb3dpbmcgaG9va3MgYXJlIGF2YWlsYWJsZTo8L3A+DQo8dWw+DQogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6YmVmb3JlTmV3VXNlcjwvY29kZT4gLSBDYWxsZWQgYmVmb3JlIGEgbmV3IHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLg0KICAgICAgIDxwPlRoaXMgaG9vayBpcyBjYWxsZWQgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gcHJvY2Vzc2luZywgYWZ0ZXIgdmFsaWRhdGluZyBhbGwgdXNlciBpbmZvcm1hdGlvbiwgYnV0IGJlZm9yZSBhZGRpbmcgdGhlIHRlbXBvcmFyeSB1c2VyIGluZm9ybWF0aW9uLiAgSXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBmdXJ0aGVyIHZhbGlkYXRpb25zIG9uIHRoZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24uPC9wPg0KICAgICAgIDxwPkhhbmRsZXJzIHRoYXQgYXJlIHVzaW5nIHRoaXMgaG9vayBjYW4gdGhyb3cgdGhlIDxjb2RlPk1BTVNSRUdWYWxpZGF0aW9uRXJyb3I8L2NvZGU+IEV4Y2VwdGlvbiBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPg0KICAgICAgIDxwPlBhcmFtZXRlcnM6IC0gVGhlIGhvb2sgaGFuZGxlciBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGFycmF5IHBhcmFtZXRlci4gIFRoZSBjb250ZW50cyBvZiB0aGlzIHBhcmFtZXRlciBhcmUgYW4gYXNzb2NpYXRpdmUgYXJyYXkgYXMgZm9sbG93czo8L3A+DQogICAgICAgPHVsPg0KICAgICAgICAgIDxsaT48Y29kZT51c2VybmFtZTwvY29kZT46IHN0cmluZzwvbGk+DQogICAgICAgICAgPGxpPjxjb2RlPmVtYWlsPC9jb2RlPjogc3RyaW5nPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+cGFzc3dvcmQ8L2NvZGU+OiBzdHJpbmcgLSBUaGUgcGxhaW4gdGV4dCB1c2VyIHBhc3N3b3JkPC9saT4NCiAgICAgICA8L3VsPg0KICAgICAgIDxwPkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnTUFNU1JlZ2lzdHJhdGlvbjo6YmVmb3JlTmV3VXNlcicsIGZ1bmN0aW9uKCAkcGFyYW1zICkgew0KICAgIGlmKCBzdHJsZW4oICRwYXJhbXNbJ3Bhc3N3b3JkJ10gKSAmbHQ7IDQgKSB0aHJvdyBuZXcgXE1BTVNSRUdWYWxpZGF0aW9uRXJyb3IoJ1lvdXIgcGFzc3dvcmQgaXMgdG9vIHNob3J0Jyk7DQp9KTs8L2NvZGU+PC9wcmU+DQogICA8L2xpPg0KDQogICA8bGk+PGNvZGU+TUFNU1JlZ2lzdHJhdGlvbjo6b25OZXdVc2VyPC9jb2RlPiAtIFRyaWdnZXJlZCB3aGVuIGEgbmV3IHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gTUFNU1JlZ2lzdHJhdGlvbi4NCiAgICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIHRoZSBNQU1TUmVnaXN0cmF0aW9uIHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLCBidXQgYmVmb3JlIHZlcmlmaWNhdGlvbiwgb3IgYWRkaW5nIHRvIE1BTVMgZXRjLjwvcD4NCiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPg0KICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PGNvZGU+dXNlcm5hbWU8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICA8L3VsPg0KICAgPC9saT4NCg0KICAgPGxpPjxjb2RlPk1BTVNSZWdpc3RyYXRpb246Om9uVXNlclJlZ2lzdGVyZWQ8L2NvZGU+IC0gVHJpZ2dlcmVkIGFmdGVyIGEgdGVtcG9yYXJ5IHVzZXIgYWNjb3VudCBoYXMgYmVlbiBjb252ZXJ0ZWQgaW50byBhbiBNQU1TIHVzZXIgYWNjb3VudC4NCiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPg0KICAgICAgIDx1bD4NCiAgICAgICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IDogaW50IC0gVGhlIE1BTVMgdWlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHVzZXIuPC9saT4NCiAgICAgICAgICA8bGk+PGNvZGU+dXNlcm5hbWU8L2NvZGU+IDogc3RyaW5nPC9saT4NCiAgICAgICA8L3VsPg0KICAgPC9saT4NCg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_params_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlBhcmFtZXRlcnM8L2gzPg0KPHVsPg0KPGxpPg0KICA8ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGlvbj0iZGVmYXVsdCIgLSBUaGlzIHBhcmFtZXRlciBkaWN0YXRlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuDQogIDx1bD4NCiAgICA8bGk+DQogICAgICA8c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4NCiAgICAgIDxwPlRoaXMgaXMgdGhlIGRlZmF1bHQgYWN0aW9uLiAgQmFzZWQgb24gdGhlIDxlbT4oZGVwcmVjYXRlZCZndDs8L2VtPiBtb2RlIHBhcmFtZXRlciA8ZW0+KHNlZSBiZWxvdyk8L2VtPiBpdCB3aWxsIGRpc3BsYXkgZWl0aGVyIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBmb3JtLCB0aGUgdmVyaWZ5IGZvcm0sIG9yIGFub3RoZXIgZm9ybS48L3A+DQogICAgPC9saT4NCiAgICA8bGk+DQogICAgICByZWdpc3Rlcl9saW5rDQogICAgICA8cD5EaXNwbGF5IGEgbGluayB0byB0aGUgdXNlciByZWdpc3RyYXRpb24gZm9ybS4gPGVtPihkZXByZWNhdGVkKTwvZW0+PC9wPg0KICAgIDwvbGk+DQogICAgPGxpPmFub3RoZXJncm91cCAtIEZvciB1c2VycyB3aG8gYXJlIGxvZ2dlZCBpbiB0byB0aGUgTUFNUyBtb2R1bGUsIHRoaXMgYWN0aW9uIGFsbG93cyB0aGVtIChzdWJqZWN0IHRvIHBlcm1pc3Npb24pIHRvIHNpZ24gdXAgdG8gYW5vdGhlciBuYW1lZCBNQU1TIGdyb3VwLjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGVzdHBhZ2U9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1yZWdpc3Rlcl9saW5rLCBhbmQgdGhlIGRlZmF1bHQgYWN0aW9uLiB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyAoYnkgYWxpYXMgb3IgcGFnZSBpZCkgYSBkZXN0aW5hdGlvbiBwYWdlIGZvciB0aGUgbGluayBvciB0byByZWRpcmVjdCB0byBhZnRlciByZWdpc3RyYXRpb24gaXMgY29tcGxldGUuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGdyb3VwPSIiIC0gQXBwbGljYWJsZSB0byAoYW5kIHJlcXVpcmVkIGZvcikgdGhlIHJlZ2lzdGVyX2xpbmssIHJlZ2lzdGVyLCBvciBhbm90aGVyZ3JvdXAgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBncm91cCBpbiB3aGljaCB0aGUgdXNlciB3aWxsIGJlIHJlZ2lzdGVyZWQ8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gb25seWhyZWY9IiIgLSBVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbj1yZWdpc3Rlcl9saW5rLCBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBvdXRwdXQgc2hvdWxkIG9ubHkgY29udGFpbiB0aGUgdXJsIHBvcnRpb24gb2YgdGhlIGxpbms8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGlua3RleHQ9IiIgLSBVc2VkIG9ubHkgaW4gdGhlIGFjdGlvbl9yZWdpc3Rlcl9saW5rIGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSB0ZXh0IGZvciB0aGUgZ2VuZXJhdGVkIGxpbmsuICBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGlmIHRoZSBvbmx5aHJlZiBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2lubGluZT0iIiAtIEFwcGxpY2FibGUgdG8gbWFueSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBvdmVycmlkZXMgdGhlIHByZWZlcmVuY2UgaW4gdGhlIGFkbWluIHBhbmVsIHRvIGluZGljYXRlIHRoYXQgdGhlIG91dHB1dCBmcm9tIHRoZSBnZW5lcmF0ZWQgbGluayBvciBmb3JtIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGlubGluZS4gIGkuZTogbm9pbmxpbmU9MSBvbiB0aGUgZGVmYXVsdCBhY3Rpb24gd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSBvdXRwdXQgdGV4dCB3aWxsIHJlcGxhY2UgdGhlICZsYnJhY2U7Y29udGVudH0gdGFnLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhbGxvd292ZXJ3cml0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVyd3JpdGluZyBleGlzdGluZyBNQU1TIHVzZXJzLiBJbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBwcmVmZXJlbmNlcyBpbiB0aGUgU2VsZlJlZ2lzdHJhdGlvbiBhZG1pbiBwYW5lbCB5b3UgY2FuIHNwZWNpZnkgd2hhdCBkYXRhIHdpbGwgYmUgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSBhIHVzZXIgYWNjb3VudCc7PC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZmluYWxtZXNzYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0LCBzaWdudXAgYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgaW5kaWNhdGluZyB0aGF0IHRoZSBmaW5hbCByZWdpc3RyYXRpb24gY29uZmlybWF0aW9uIG1lc3NhZ2Ugc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHZlcmlmeXRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB2ZXJpZnkgYWN0aW9uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgbm9uLWRlZmF1bHQgdGVtcGxhdGUgdG8gdXNlLjwvbGk+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/help_smarty_resources_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlNtYXJ0eSBSZXNvdXJjZXM8L2gzPg0KPHA+Q01TTVNFeHQgcHJvdmlkZXMgdGhlIDxjb2RlPnh0X21vZGZpbGU8L2NvZGU+IHNtYXJ0eSByZXNvdXJjZS4gIFRoaXMgaXMgYSBzcGVjaWFsIHJlc291cmNlLCBzaW1pbGFyIHRvIHRoZSBDTVNNUyBjb3JlIHJlc291cmNlIGNhbGxlZCA8Y29kZT5tb2R1bGVfZmlsZV90cGw8L2NvZGU+IGV4Y2VwdCB0aGF0IGl0IGRvZXMgTk9UIHNlYXJjaCB0aGUgbW9kdWxlX2N1c3RvbSBkaXJlY3RvcnkgZm9yIG1vZHVsZSB0ZW1wbGF0ZXMuPC9wPg0KPHA+VGhpcyByZXNvdXJjZSBpcyB1c2VmdWwgd2hlbiB3YW50aW5nIHRvIHByZXBlbmQgb3IgYXBwZW5kIGNvbnRlbnQgdG8gYSBzdGFuZGFyZCBtb2R1bGUgdGVtcGxhdGUuPC9wPg0KPHA+SW5zdHJ1Y3Rpb25zOjwvcD4NCjx1bD4NCiAgIDxsaT5DcmVhdGUgdGhlIGFwcHJvcHJpYXRlIG1vZHVsZV9jdXN0b20gZGlyZWN0b3J5IGZvciB0aGUgbW9kdWxlIHRoYXQgaGFzIHRoZSB0ZW1wbGF0ZSB5b3Ugd2FudCB0byBlbmhhbmNlDQogICAgPHA+PHByZT48Y29kZT5ta2RpciAtcCBhc3NldHMvbW9kdWxlX2N1c3RvbS8mbHQ7bW9kdWxlX25hbWUmZ3Q7L3RlbXBsYXRlczwvY29kZT48L3ByZT48L3A+DQogICA8L2xpPg0KICAgPGxpPkNyZWF0ZSBhIG5ldyBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgZmlsZSB5b3Ugd2FudCB0byBlbmhhbmNlLg0KICAgICAgIDxwPkluIHRoYXQgZmlsZSBhZGQgdGhlIGNvZGUgdGhhdCB5b3Ugd2FudCwgYW5kIGluY2x1ZGUgdGhlIHByaW1hcnkgZmlsZSB1c2luZyB0aGUgPGNvZGU+eHRfbW9kZmlsZTwvY29kZT4gcmVzb3VyY2UuIGkuZS46PC9wPg0KICAgICAgIDxwcmU+PGNvZGU+Jmx0O3N0eWxlJmd0Ow0KdGFibGUgdGJvZHkgdHIuZXZlbiB0ZCAmbGJyYWNlOw0KICAgY29sb3I6IGdyZWVuOw0KfQ0KJmx0Oy9zdHlsZSZndDsNCiZsYnJhY2U7aW5jbHVkZSBmaWxlPSd4dF9tb2RmaWxlOiZsdDttb2R1bGVfbmFtZSZndDs7dXNlcmxpc3QudHBsJ30NCiAgICAgICA8L2NvZGU+PC9wcmU+DQogICA8L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_using_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvdyBEbyBJIFVzZSBJdD88L2gzPg0KPGg0Pk5vcm1hbCBSZWdpc3RyYXRpb248L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSByZXF1aXJlcyB0aGF0IHRoZSA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gKDxzdHJvbmc+PGk+TWVtYmVycyBBcmVhIE1hZGUgU2ltcGxlPC9pPjwvc3Ryb25nPikgbW9kdWxlIGJlIHByb3Blcmx5IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC48L2xpPg0KICA8bGk+UGxhY2UgYSB0YWcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIG9uIGEgY29udGVudCBwYWdlOg0KICAgICA8Y29kZT4mbGJyYWNlO01BTVNSZWdpc3RyYXRpb24gZ3JvdXA9YWdyb3VwbmFtZX08L2NvZGU+DQogICAgIDxwPjxjb2RlPmFncm91cG5hbWU8L2NvZGU+IGlzIGEgZ3JvdXAgbmFtZSB0aGF0IGV4aXN0cyBhbmQgaGFzIGJlZW4gY29uZmlndXJlZCBpbiB0aGUgPHN0cm9uZz5NQU1TPC9zdHJvbmc+IG1vZHVsZS48L3A+DQogIDwvbGk+DQo8L3VsPg0KPGg0PkFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cC48L2g0Pg0KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiB0aGUgcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgYWN0aW9uIHJlcXVpcmVzIHRoYXQgYSB1c2VyIGJlIGxvZ2dlZCBpbiB0byA8c3Ryb25nPk1BTVM8L3N0cm9uZz4gdG8gdXRpbGl6ZSB0aGlzIGFjdGlvbi4gIElmIHRoZSB1c2VyIGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIG9yIGFub3RoZXIgZXJyb3Igb2NjdXJzIG5vIG91dHB1dCB3aWxsIGJlIGRpc3BsYXllZC48L3A+DQo8cD5UbyBhbGxvdyBhIHVzZXIgdG8gcmVnaXN0ZXIgZm9yIGFub3RoZXIgZ3JvdXAgZm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4NCjx1bD4NCiAgPGxpPkVuYWJsZSB0aGUgb3B0aW9uIGluIHRoZSBNQU1TUmVnaXN0cmF0aW9uIG1vZHVsZSBzZXR0aW5ncy48L2xpPg0KICA8bGk+QWRkIGEgY2FsbCBzdWNoIGFzIDxjb2RlPiZsYnJhY2U7TUFNU1JlZ2lzdHJhdGlvbiBhY3Rpb249YW5vdGhlcmdyb3VwIGdyb3VwPW90aGVyZ3JvdXBuYW1lfTwvY29kZT4gdG8gYSBjb250ZW50IHBhZ2UuDQo8L2xpPjwvdWw+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_anothergroup_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZyBhbm90aGVyZ3JvdXAgdGVtcGxhdGUgKn0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ2lucHV0LmRhdGVwaWNrZXInKS5kYXRlcGlja2VyKCk7Cn0pCjwvc2NyaXB0Pgo8aDQ+eyRtb2QtPkxhbmcoJ3RpdGxlX2Fub3RoZXJncm91cCcpfTwvaDQ+Cgp7aWYgaXNzZXQoJGZpbmFsX21lc3NhZ2UpfQogIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskZmluYWxfbWVzc2FnZX08L2Rpdj4KICA8cD57Y21zX3NlbGZsaW5rIHBhZ2U9JHBhZ2VfYWxpYXMgdGV4dD0kbW9kLT5MYW5nKCdyZXR1cm4nKX06PC9wPgp7ZWxzZX0KICB7aWYgaXNzZXQoJGVycm9yX21lc3NhZ2UpfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yX21lc3NhZ2V9PC9kaXY+CiAgey9pZn0KCiAgeyRmb3Jtc3RhcnR9CiAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ2luZm9fYW5vdGhlcm1zZ19wYXNzd2QnKX08L2Rpdj4KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGxhYmVsIGZvcj0ibXJfcGFzc3dkIiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCByZXF1aXJlZCIgc3R5bGU9ImNvbG9yOiB7JHJlcV9jb2xvcn07Ij57JHJlcV9tYXJrZXJ9IHskbW9kLT5MYW5nKCdwYXNzd29yZCcpfTo8L2xhYmVsPgogICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibXJfcGFzc3dkIiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3Bhc3N3b3JkIiBjbGFzcz0iY29sLXNtLTkiIHNpemU9InskcHdmbGRsZW59IiByZXF1aXJlZC8+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxsYWJlbCBmb3I9Im1yX3Bhc3N3ZDIiIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IHJlcXVpcmVkIiBzdHlsZT0iY29sb3I6IHskcmVxX2NvbG9yfTsiPnskcmVxX21hcmtlcn0geyRtb2QtPkxhbmcoJ3JlcGVhdHBhc3N3b3JkJyl9OjwvbGFiZWw+CiAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJtcl9wYXNzd2QyIiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3Bhc3N3b3JkMiIgY2xhc3M9ImNvbC1zbS05IiBzaXplPSJ7JHB3ZmxkbGVufSIgcmVxdWlyZWQvPgogIDwvZGl2PgoKICB7Zm9yZWFjaCAkcHJvcGVydGllcyBhcyAkbmFtZSA9PiAkcmVjfQogICAge2lmICRyZWMtPnR5cGUgPT0gMH0KICAgICAgeyogdGV4dCBmaWVsZCAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieyRyZWMtPmZsZG5hbWV9IiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHZhbHVlPSJ7JHJlYy0+dmFsdWV9IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0gY2xhc3M9ImNvbC1zbS05Ii8+CiAgICAgIDwvZGl2PgogICAge2Vsc2VpZiAkcmVjLT50eXBlID09IDF9CiAgICAgIHsqIGNoZWNrYm94ICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPHAgY2xhc3M9ImNvbC1zbS0zIj4mbmJzcDs8L3A+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTkiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ7JHJlYy0+ZmxkbmFtZX0iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9InskcmVjLT52YWx9IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0vPgogICAgICAgICAge2lmICRyZWMtPm1hcmtlcn17JHJlYy0+bWFya2VyfXsvaWZ9eyRyZWMtPnByb21wdH06CiAgICAgICAgPC9sYWJlbD4KICAgICAgPC9kaXY+CiAgICB7ZWxzZWlmICRyZWMtPnR5cGUgPT0gMn0KICAgICAgeyogZW1haWwgKn0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgZm9yPSJ7JHJlYy0+ZmxkbmFtZX0iIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiB7aWYgJHJlYy0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JHJlYy0+Y29sb3J9InsvaWZ9PgogICAgICAgICAge2lmICRyZWMtPm1hcmtlcn17JHJlYy0+bWFya2VyfXsvaWZ9eyRyZWMtPnByb21wdH06CiAgICAgICAgPC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9IiB2YWx1ZT0ieyRyZWMtPnZhbHVlfSIgc2l6ZT0iODAiIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9IGNsYXNzPSJjb2wtc20tOSIvPgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSAzfQogICAgICB7KiB0ZXh0YXJlYSAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIHt4dF90ZXh0YXJlYSBpZD0kcmVjLT5mbGRuYW1lIG5hbWU9JHJlYy0+ZmxkbmFtZSB2YWx1ZT0kcmVjLT52YWwgcm93cz01fQogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA0fQogICAgICB7KiBkcm9wZG93biAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxzZWxlY3QgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9Ij4KICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcmVjLT5vcHRpb25zIHNlbGVjdGVkPSRyZWMtPnZhbHVlfQogICAgICAgIDwvc2VsZWN0PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA1fQogICAgICB7KiBtdWx0aXNlbGVjdCAqfQogICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBmb3I9InskcmVjLT5mbGRuYW1lfSIgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkcmVjLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskcmVjLT5jb2xvcn0iey9pZn0+CiAgICAgICAgICB7aWYgJHJlYy0+bWFya2VyfXskcmVjLT5tYXJrZXJ9ey9pZn17JHJlYy0+cHJvbXB0fToKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxzZWxlY3QgaWQ9InskcmVjLT5mbGRuYW1lfSIgbmFtZT0ieyRyZWMtPmZsZG5hbWV9W10iIG11bHRpcGxlIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9IHNpemU9IjUiPgogICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRyZWMtPm9wdGlvbnMgc2VsZWN0ZWQ9JHJlYy0+dmFsdWV9CiAgICAgICAgPC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAge2Vsc2VpZiAkcmVjLT50eXBlID09IDZ9CiAgICAgIHsqIGltYWdlICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRyZWMtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRyZWMtPmNvbG9yfSJ7L2lmfT4KICAgICAgICAgIHtpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OgogICAgICAgIDwvbGFiZWw+Cgk8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CgkgIHtpZiBpc3NldCgkcmVjLT5pbWFnZV91cmwpfQoJICAgIHtpZiAkcmVjLT5pc19pbWFnZX0KCSAgICAgIHsqIE5PVEU6IFRoaXMgaXMgYSBnb29kIGNhc2UgdXNlIGZvciBDR1NtYXJ0SW1hZ2UgaW4gY2FzZSB0aGUgdXNlciB1cGxvYWRlZCBhIGh1Z2UgaW1hZ2UgKn0KICAgICAgICAgICAgICA8aW1nIHNyYz0ieyRyZWMtPmltYWdlX3VybH0iIGFsdD0ieyRyZWMtPnZhbH0iIGNsYXNzPSJ0aHVtYm5haWwiIHdpZHRoPSIxMDAiLz4KCSAgICB7ZWxzZX0KCSAgICAgIHskcmVjLT52YWx9CgkgICAgey9pZn0KICAJICAgIDxici8+CiAgICAgICAgICB7L2lmfQoJICA8aW5wdXQgZmlsZT0iaGlkZGVuIiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHZhbHVlPSJ7JHJlYy0+dmFsdWV9Ii8+CgkgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0ieyRyZWMtPmZsZG5hbWV9IiBuYW1lPSJ7JHJlYy0+ZmxkbmFtZX0iIHtpZiAkcmVjLT5yZXF1aXJlZH1yZXF1aXJlZHsvaWZ9Lz4KCTwvZGl2PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA3fQogICAgICB7KiByYWRpb2J1dHRvbnMgKn0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgZm9yPSJ7JHJlYy0+ZmxkbmFtZX0iIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiB7aWYgJHJlYy0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JHJlYy0+Y29sb3J9InsvaWZ9PntpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OjwvbGFiZWw+Cgk8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CgkgIHtmb3JlYWNoICRyZWMtPm9wdGlvbnMgYXMgJGtleT0+JHZhbH0KCSAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9JGtleSB7aWYgJHJlYy0+dmFsID09ICRrZXl9Y2hlY2tlZHsvaWZ9IHtpZiAkdmFsQGZpcnN0fWlkPSJ7JHJlYy0+ZmxkbmFtZX0iey9pZn0vPiB7JHZhbH0KCSAgICB7aWYgISR2YWxAbGFzdH08YnIvPnsvaWZ9CgkgIHsvZm9yZWFjaH0KCTwvZGl2PgogICAgICA8L2Rpdj4KICAgIHtlbHNlaWYgJHJlYy0+dHlwZSA9PSA4fQogICAgICB7KiBkYXRlICp9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGZvcj0ieyRyZWMtPmZsZG5hbWV9IiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRyZWMtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRyZWMtPmNvbG9yfSJ7L2lmfT4KICAgICAgICAgIHtpZiAkcmVjLT5tYXJrZXJ9eyRyZWMtPm1hcmtlcn17L2lmfXskcmVjLT5wcm9tcHR9OgogICAgICAgIDwvbGFiZWw+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ7JHJlYy0+ZmxkbmFtZX0iIG5hbWU9InskcmVjLT5mbGRuYW1lfSIgdmFsdWU9InskcmVjLT52YWx1ZX0iIGNsYXNzPSJkYXRlcGlja2VyIGNvbC1zbS05IiBzaXplPSI4MCIge2lmICRyZWMtPnJlcXVpcmVkfXJlcXVpcmVkey9pZn0vPgogICAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgey9mb3JlYWNofQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJjb2wtc20tOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9bXJfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPC9wPgogIDwvZGl2PgogIHskZm9ybWVuZH0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_postreg1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcG9zdCByZWdpc3RyYXRpb24gMSB0ZW1wbGF0ZSAqfQp7aWYgaXNzZXQoJG1lc3Nhc2dlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0KPHA+VGhhbmsgeW91IHskdXNlcm5hbWV9IGZvciByZWdpc3RlcmluZyB3aXRoICZxdW90O3tzaXRlbmFtZX0mcXVvdDsuICBBbiBlbWFpbCBoYXMgYmVlbiBzZW50IHRvIHskZW1haWx9IHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBjb250aW51ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3M8L3A+CjwhLS0gUG9zdCBSZWdpc3RyYXRpb24gMSB0ZW1wbGF0ZSAtLT4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_registration1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVnaXN0cmF0aW9uIDEgdGVtcGxhdGUgKn0KPGgzPnskbW9kLT5MYW5nKCd1c2VyX3JlZ2lzdHJhdGlvbicpfTwvaDM+CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UgIT0gJyd9CiAge2lmIGlzc2V0KCRlcnJvcikgJiYgJGVycm9yICE9ICcnfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JG1lc3NhZ2V9PC9kaXY+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj57JG1lc3NhZ2V9PC9kaXY+CiAgey9pZn0Key9pZn0KCnskc3RhcnRmb3JtfXt4dF9mb3JtX2NzcmZ9eyRoaWRkZW58ZGVmYXVsdDonJ30Ke2lmICRjb250cm9sY291bnQgPiAwfQogIHtmb3JlYWNoIGZyb209JGNvbnRyb2xzIGl0ZW09Y29udHJvbH0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIHtpZiBpc3NldCgkY29udHJvbC0+aGlkZGVuKX17JGNvbnRyb2wtPmhpZGRlbn17L2lmfQogICAgICB7aWYgJGNvbnRyb2wtPnR5cGUgPT0gJ3RleHQnfQogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIgZm9yPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L2xhYmVsPgoJPGlucHV0IGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgdHlwZT0idGV4dCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdwYXNzd29yZCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8aW5wdXQgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdlbWFpbCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8aW5wdXQgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiB0eXBlPSJlbWFpbCIgY2xhc3M9ImNvbC1zbS02IiBzaXplPSJ7JGNvbnRyb2wtPnNpemV9IiBtYXhsZW5ndGg9InskY29udHJvbC0+bWF4bGVuZ3RofSIgbmFtZT0ieyRjb250cm9sLT5pbnB1dF9uYW1lfSIgdmFsdWU9InskY29udHJvbC0+dmFsfSIvPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdjaGVja2JveCd9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8cCBjbGFzcz0iY29sLXNtLTkiPgogIAkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskY29udHJvbC0+aW5wdXRfbmFtZX0iIHZhbHVlPSIwIi8+CgkgIDxpbnB1dCBpZD0ieyRjb250cm9sLT5sYWJlbGZvcn0iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiB2YWx1ZT0iMSIge2lmICRjb250cm9sLT52YWx9Y2hlY2tlZHsvaWZ9Lz4KCTwvcD4KICAgICAge2Vsc2VpZiAkY29udHJvbC0+dHlwZSA9PSAndGV4dGFyZWEnfQogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIgZm9yPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L2xhYmVsPgoJPHRleHRhcmVhIGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgY2xhc3M9ImNvbC1zbS04IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiByb3dzPSI0Ij57JGNvbnRyb2wtPnZhbH08L3RleHRhcmVhPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdkcm9wZG93bid9CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBmb3I9InskY29udHJvbC0+bGFiZWxmb3J9IiB7aWYgJGNvbnRyb2wtPmNvbG9yfXN0eWxlPSJjb2xvcjogeyRjb250cm9sLT5jb2xvcn0iey9pZn0+eyRjb250cm9sLT5tYXJrZXJ9eyRjb250cm9sLT5wcm9tcHR9OjwvbGFiZWw+Cgk8c2VsZWN0IGlkPSJ7JGNvbnRyb2wtPmxhYmVsZm9yfSIgY2xhc3M9ImNvbC1zbS02IiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9Ij4KCXtodG1sX29wdGlvbnMgb3B0aW9ucz0kY29udHJvbC0+b3B0aW9ucyBzZWxlY3RlZD0kY29udHJvbC0+dmFsfQoJPC9zZWxlY3Q+CiAgICAgIHtlbHNlaWYgJGNvbnRyb2wtPnR5cGUgPT0gJ211bHRpc2VsZWN0J30KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIGZvcj0ieyRjb250cm9sLT5sYWJlbGZvcn0iIHtpZiAkY29udHJvbC0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JGNvbnRyb2wtPmNvbG9yfSJ7L2lmfT57JGNvbnRyb2wtPm1hcmtlcn17JGNvbnRyb2wtPnByb21wdH06PC9sYWJlbD4KCTxzZWxlY3QgaWQ9InskY29udHJvbC0+bGFiZWxmb3J9IiBjbGFzcz0iY29sLXNtLTYiIG5hbWU9InskY29udHJvbC0+aW5wdXRfbmFtZX0iIG11bHRpcGxlPgoJe2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjb250cm9sLT5vcHRpb25zIHNlbGVjdGVkPSRjb250cm9sLT52YWx9Cgk8L3NlbGVjdD4KICAgICAge2Vsc2VpZiAkY29udHJvbC0+dHlwZSA9PSAncmFkaW9ncm91cCd9CiAgICAgICAgPHAgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHtpZiAkY29udHJvbC0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JGNvbnRyb2wtPmNvbG9yfSJ7L2lmfT57JGNvbnRyb2wtPm1hcmtlcn17JGNvbnRyb2wtPnByb21wdH06PC9wPgoJPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICAgIHtmb3JlYWNoICRjb250cm9sLT5vcHRpb25zIGFzICRrZXkgPT4gJHZhbH0KCSAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGNvbnRyb2wtPmlucHV0X25hbWV9IiB2YWx1ZT0ieyRrZXl9IiB7aWYgJGtleSA9PSAkY29udHJvbC0+dmFsfWNoZWNrZWR7L2lmfS8+IHskdmFsfTwvbGFiZWw+CiAgICAgICAgICAgIHtpZiAhJHZhbEBsYXN0fTxici8+ey9pZn0KCSAgey9mb3JlYWNofQoJPC9wPgogICAgICB7ZWxzZWlmICRjb250cm9sLT50eXBlID09ICdkYXRlJ30KICAgICAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIge2lmICRjb250cm9sLT5jb2xvcn1zdHlsZT0iY29sb3I6IHskY29udHJvbC0+Y29sb3J9InsvaWZ9PnskY29udHJvbC0+bWFya2VyfXskY29udHJvbC0+cHJvbXB0fTo8L3A+Cgk8cCBjbGFzcz0iY29sLXNtLTkiPgogICAgICAgICAgeyogZGF0ZSBmaWVsZHMgbXVzdCBhdCB0aGlzIHRpbWUgcmV0dXJuIDMgc2VwYXJhdGUgdmFsdWVzIGZvciB5ZWFyLCBtb250aCBhbmQgZGF5ICp9CiAgICAgICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JGNvbnRyb2wtPmlucHV0X25hbWUgdGltZT0kY29udHJvbC0+dmFsIHN0YXJ0X3llYXI9JGNvbnRyb2wtPnN0YXJ0X3llYXIgZW5kX3llYXI9JGNvbnRyb2wtPmVuZF95ZWFyfQogICAgICAgIDwvcD4KICAgICAgey9pZn0KICAgIDwvZGl2PgogIHsvZm9yZWFjaH0Key9pZn0KCntpZiBpc3NldCgkY2FwdGNoYSl9CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0IiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57JGNhcHRjaGFfdGl0bGV9PC9wPgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPnskY2FwdGNoYX0KICAgICAge2lmICRuZWVkX2NhcHRjaGFfaW5wdXR9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bXJfaW5wdXRfY2FwdGNoYSIgc2l6ZT0iMTAiLz4KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L2Rpdj4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0iY29sLXNtLTkiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8YnIvPjxhIGhyZWY9Inttb2RfYWN0aW9uX3VybCBtb2R1bGU9U2VsZlJlZ2lzdHJhdGlvbiBhY3Rpb249ZGVmYXVsdCBtb2RlPXNlbmRhbm90aGVyZW1haWx9Ij57JG1vZC0+TGFuZygnbXNnX3NlbmRhbm90aGVyZW1haWwnKX08L2E+CiAgPC9wPgo8L2Rpdj4KCnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_registration2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVnaXN0cmF0aW9uIDIgdGVtcGxhdGUgKn0KPGgzPnskdGl0bGV9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj4KICB7ZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj4KICB7L2lmfQp7L2lmfQoKeyRzdGFydGZvcm19CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JHByb21wdF91c2VybmFtZX06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3VzZXJuYW1lIiB2YWx1ZT0ieyR1c2VybmFtZX0iIHNpemU9InskdW5mbGRsZW59IiBtYXhsZW5ndGg9InskbWF4dW5sZW59Ii8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxwIGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JHByb21wdF9wYXNzd29yZH06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9wYXNzd29yZCIgdmFsdWU9InskcGFzc3dvcmR9IiBzaXplPSJ7JHB3ZmxkbGVufSIgbWF4bGVuZ3RoPSJ7JG1heHB3bGVufSIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCI+eyRwcm9tcHRfY29kZX06PC9wPgogICAgPHAgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX2lucHV0X2NvZGUiIHZhbHVlPSJ7JGNvZGV9IiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIzMCIvPgogICAgPC9wPgogIDwvZGl2PgoKICB7aWYgaXNzZXQoJGNhcHRjaGEpfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCByZXJxdWlyZWQiPnskY2FwdGNoYV90aXRsZX08L3A+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+eyRjYXB0Y2hhfQogICAgICB7aWYgJG5lZWRfY2FwdGNoYV9pbnB1dH0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9pbnB1dF9jYXB0Y2hhIiBzaXplPSIxMCIvPgogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvZGl2PgogIDwvZGl2PgogIHsvaWZ9CgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLXNtLTMiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJjb2wtc20tOSI+CiAgICAgICB7JGhpZGRlbnxkZWZhdWx0OicnfXskaGlkZGVuMnxkZWZhdWx0OicnfQogICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8L3A+CiAgPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_selpkg_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VsZWN0IHN1YnNjcmlwdGlvbiBwYWNrYWdlICp9CjxkaXYgaWQ9Im1hbXNyZWdfc2VscGtnIj4KCntpZiAhZW1wdHkoJGVycm9yX21zZyl9CiAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yX21zZ308L2Rpdj4Key9pZn0KCntmb3JtX3N0YXJ0fQoKe2ZvcmVhY2ggJHBrZ3MgYXMgJHBrZ30KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgICA8aW5wdXQgdHlwZT0ieyRpbnB1dHR5cGV8ZGVmYXVsdDoncmFkaW8nfSIgbmFtZT0ieyRhY3Rpb25pZH1tcl9zZWxwa2dbXSIgdmFsdWU9InskcGtnLmlkfSIvPgogICAgICAgICB7JHBrZy5wcm9tcHR9CiAgICAgPC9sYWJlbD4KICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNCI+eyRwa2cuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTQiPgogICAgICAgIHtpZiAkcGtnLmNvc3QgPiAwfXskY3VycmVuY3lfc3ltYm9sfGRlZmF1bHQ6Jyd9eyRwa2cuY29zdHxudW1iZXJfZm9ybWF0OjJ9Jm5ic3A7eyRjdXJyZW5jeV9jb2RlfGRlZmF1bHQ6Jyd9ey9pZn0KICAgICAgICA8c3Bhbj5wZXIgeyRwa2cuc3Vic2NyX251bX0geyRwa2cuc3Vic2NyX3R5cGV8dWN3b3Jkc308L3NwYW4+CiAgICAgPC9kaXY+CiAgPC9kaXY+CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9ImNvbC1zbS0xIj4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9ImNvbC1zbS0xMCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3N1Ym1pdCIgdmFsdWU9InskU2VsZlJlZ2lzdHJhdGlvbi0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCntmb3JtX2VuZH0KPC9kaXY+eyogI21hbXNyZWdfc2VscGtnICp9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_sendanotheremail_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VuZCBhbm90aGVyIGVtYWlsIGZvcm0gKn0KPGgzPnskbW9kLT5MYW5nKCd0aXRsZV9sb3N0ZW1haWwnKX08L2gzPgoKe2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRlcnJvciAhPSAnJ30KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRtZXNzYWdlfTwvZGl2PgogIHtlbHNlfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtZXNzYWdlfTwvZGl2PgogIHsvaWZ9CnsvaWZ9Cgp7JHN0YXJ0Zm9ybX0KPHA+SSBkaWRuJ3QgcmVjZWl2ZSBteSBjb25maXJtYXRpb24gZW1haWwsIHBsZWFzZSBzZW5kIGFub3RoZXIgb25lLjwvcD4KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij4KICAgIHskcHJvbXB0fToKICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tcl91c2VybmFtZSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0ieyRtYXhfdXNlcm5hbWVsZW5ndGh9Ii8+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxkaXYgY2xhc3M9ImNvbC1zbS0zIj4mbmJzcDs8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfW1yX3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L2Rpdj4KPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0iY2YgY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzYiPgogICAgPGZpZWxkc2V0PgogICAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJyl9PC9sZWdlbmQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaW5saW5lfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pbmxpbmV9PC9wPgoJPC9kaXY+CgogICAgPC9maWVsZHNldD4KCiAgICA8ZmllbGRzZXQ+CiAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X3JlZ2lzdHJhdGlvbl9zZXR0aW5ncycpfTwvbGVnZW5kPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAJICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2VtYWlsX2NvbmZpcm1hdGlvbn06PC9wPgoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VtYWlsX2NvbmZpcm1hdGlvbn0KICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZW1haWxfY29uZmlybWF0aW9uJyl9CiAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIAkgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRvY3JlYXRlbWFtcycpfTo8L3A+CgkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1hdXRvY3JlYXRlX21hbXMiPgoJICAgICAge3h0X3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JGF1dG9jcmVhdGVfbWFtc30KCSAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19hdXRvY3JlYXRlbWFtcycpfQogICAgICAgICAgPC9wPgoJPC9kaXY+CgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAJICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdmVyaWZ5cGFnZScpfTo8L3A+CgkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntwYWdlX3NlbGVjdG9yIG5hbWU9InskYWN0aW9uaWR9dmVyaWZ5cGFnZSIgdmFsdWU9JHZlcmlmeXBhZ2V9CiAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3ZlcmlmeXBhZ2UnKX0KICAgICAgICAgIDwvcD4KCTwvZGl2PgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9sb2dpbl9hZnRlcnZlcmlmeX06PC9wPgoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvZ2luX2FmdGVydmVyaWZ5fQogICAgICAgICAgICA8YnIvPgogICAgICAgICAgICB7JG1vZC0+TGFuZygnaW5mb19sb2dpbl9hZnRlcnZlcmlmeScpfQogICAgICAgICAgPC9wPgoJPC9kaXY+CgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAJICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2ZvcmNlX2VtYWlsX3R3aWNlfTo8L3A+CgkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9yY2VfZW1haWxfdHdpY2V9CiAgICAgICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZm9yY2VfZW1haWxfdHdpY2UnKX0KICAgICAgICAgIDwvcD4KCTwvZGl2PgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkgIDxwIGNsYXNzPSJwYWdldGV4dCI+PGxhYmVsIGZvcj0iYWxsb3dzZWxlY3Rwa2ciPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dfc2VsZWN0X3BrZycpfTwvbGFiZWw+OjwvcD4KCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImFsbG93c2VsZWN0cGtnIiBuYW1lPSJ7JGFjdGlvbmlkfWFsbG93c2VsZWN0cGtnIj4KICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzZWxlY3Rwa2dvcHRzIHNlbGVjdGVkPSRhbGxvd3NlbGVjdHBrZ30KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fYWxsb3dzZWxlY3Rwa2cnKX07CiAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCgk8aHIvPgoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9za2lwX2ZpbmFsX21zZ306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2tpcF9maW5hbF9tc2d9CiAgICAgICAgICAgICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc2tpcF9maW5hbF9tc2cnKX0KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXJ9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X2FmdGVycmVnaXN0ZXJ9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfcmVkaXJlY3RfYWZ0ZXJ2ZXJpZnl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X2FmdGVydmVyaWZ5fTwvcD4KCTwvZGl2PgogICAgPC9maWVsZHNldD4KCiAgICB7aWYgaXNzZXQoJGlucHV0X2FsbG93cGFpZHJlZ2lzdHJhdGlvbil9CiAgICA8ZmllbGRzZXQ+CiAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygncGFpZF9yZWdpc3RyYXRpb24nKX06PC9sZWdlbmQ+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hbGxvd19wYWlkX3JlZ2lzdHJhdGlvbicpfTo8L3A+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgeyRpbnB1dF9hbGxvd3BhaWRyZWdpc3RyYXRpb259CiAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2FsbG93X3BhaWRfcmVnaXN0cmF0aW9uJyl9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY2FydGl0ZW1fc3VtbWFyeV90cGwnKX06PC9wPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhcnRpdGVtX3N1bW1hcnlfdHBsIiBzaXplPSI4MCIgdmFsdWU9InskY2FydGl0ZW1fc3VtbWFyeV90cGx9Ii8+CiAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2NhcnRpdGVtX3N1bW1hcnlfdHBsJyl9CiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCSAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3JlZGlyZWN0X3BhaWRwa2cnKX06PC9wPgoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cmVkaXJlY3RfcGFpZHBrZyIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRyZWRpcmVjdF9wYWlkcGtnfSIvPgogICAgICAgICAgICA8YnIvPgogICAgICAgICAgICB7JG1vZC0+TGFuZygnaW5mb19yZWRpcmVjdF9wYWlkcGtnJyl9CiAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzZXR1cF9jYXJ0X2V2ZW50cycpfTo8L3A+CgkgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNldHVwX2NhcnRfZXZlbnRzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3NldHVwJyl9Ii8+CiAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3NldHVwX2NhcnRfZXZlbnRzJyl9CiAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCiAgICA8L2ZpZWxkc2V0PgogICAgey9pZn0KCiAgICA8ZmllbGRzZXQ+CiAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2FkZGl0aW9uYWxncm91cHNfc2V0dGluZ3MnKX06PC9sZWdlbmQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9yZWdfYWRkaXRpb25hbGdyb3VwcycpfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZ19hZGRpdGlvbmFsZ3JvdXBzfTwvcD4KCTwvZGl2PgogICAgPC9maWVsZHNldD4KCiAgICA8ZmllbGRzZXQ+CiAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygnbm90aWZpY2F0aW9ucycpfTo8L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9ub3RpZnl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vdGlmeX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc2VuZF9lbWFpbHNfdG8nKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfY29uZmlybW1haWxfdG8iIHJvd3M9IjIiIGNvbHM9IjgwIj57JHNlbmRfZW1haWxzX3RvfTwvdGV4dGFyZWE+CgkJPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3RpZnlfZW1haWxfc3ViamVjdCcpfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9YWRtaW5fbm90aWZ5X3N1YmplY3QiIHJvd3M9IjIiIGNvbHM9IjgwIj57JGFkbWluX25vdGlmeV9zdWJqZWN0fTwvdGV4dGFyZWE+CgkJPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbm90aWZ5X2VtYWlsX3RlbXBsYXRlJyl9OjwvcD4KCSAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgIHt4dF90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9YWRtaW5fbm90aWZ5X2VtYWlsIHZhbHVlPSRhZG1pbl9ub3RpZnlfZW1haWx9CgkgICAgIDxici8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X25vdGlmeV90ZW1wbGF0ZSIgdmFsdWU9IjEiLz4geyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9CgkgIDwvcD4KCTwvZGl2PgogICAgPC9maWVsZHNldD4KCiAgICA8ZmllbGRzZXQ+CiAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X3NlY3VyaXR5X3NldHRpbmdzJyl9PC9sZWdlbmQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZW5hYmxlX3doaXRlbGlzdH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZW5hYmxlX3doaXRlbGlzdH08L3A+Cgk8L2Rpdj4KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3JlZ2lzdGVyJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vcmVnaXN0ZXJ9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfd2hpdGVsaXN0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF93aGl0ZWxpc3R9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfd2hpdGVsaXN0X3RyaWdnZXJfbWVzc2FnZX08L3A+Cgk8L2Rpdj4KICAgIDwvZmllbGRzZXQ+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW58ZGVmYXVsdDonJ317JHN1Ym1pdH08L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj57KiBmaXJzdCBjb2x1bW4gKn0KCiAgPGZpZWxkc2V0IGNsYXNzPSJncmlkXzYiPgogICAgPGxlZ2VuZD57JG1vZC0+TGFuZygnaW5jb21wbGV0ZV9yZWdpc3RyYXRpb25zJyl9OjwvbGVnZW5kPgogICB7KiBvcHRpb25zIHRvIHJlc2V0IHVzZXJzIHRoYXQgZGlkbid0IGNvbXBsZXRlIHJlZ2lzdHJhdGlvbiAqfQogICB7aWYgaXNzZXQoJGRhdGFfbnVtcmVzZXRyZWNvcmRzKX0KICAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdwcm9tcHRfbnVtcmVnaXN0ZXJpbmcnLCRkYXRhX251bXJlc2V0cmVjb3Jkcyl9PC9kaXY+CiAgIHsvaWZ9CiAgIHtpZiBpc3NldCgkaW5wdXRfcmVtb3ZlMXdlZWspfQogICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkgICAgIHtpZiBpc3NldCgkaW5wdXRfcmVtb3ZlMWRheSl9eyRpbnB1dF9yZW1vdmUxZGF5fXsvaWZ9CgkgICAgIHtpZiBpc3NldCgkaW5wdXRfcmVtb3ZlMXdlZWspfXskaW5wdXRfcmVtb3ZlMXdlZWt9ey9pZn0KCSAgICAge2lmIGlzc2V0KCRpbnB1dF9yZW1vdmUxbW9udGgpfXskaW5wdXRfcmVtb3ZlMW1vbnRofXsvaWZ9CgkgICAgIHtpZiBpc3NldCgkaW5wdXRfbGlzdDFkYXkpfXskaW5wdXRfbGlzdDFkYXl9ey9pZn0KCTwvcD4KICAgICAgPC9kaXY+CiAgIHsvaWZ9CiAgPC9kaXY+Cgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/set_reg2template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZGVmYXVsdGJ1dHRvbiIgdmFsdWU9InskbW9kLT5MYW5nKCdkZWZhdWx0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3ZlcmlmaWNhdGlvbl90ZW1wbGF0ZScpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3RleHRhcmVhIHN5bnRheD0xIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZWNvbnRlbnQgdmFsdWU9JHJlZzJ0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/signup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZX0Ke2lmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0KeyRzdGFydGZvcm19CntpZiAkY29udHJvbGNvdW50ID4gMH0KICA8Y2VudGVyPgogIDx0YWJsZSB3aWR0aD0iNzUlIj4Ke2ZvcmVhY2ggZnJvbT0kY29udHJvbHMgaXRlbT1jb250cm9sfQogIDx0cj4KICAgIDx0ZD57JGNvbnRyb2wtPmhpZGRlbn0KICAgIDxmb250IGNvbG9yPSJ7JGNvbnRyb2wtPmNvbG9yfSI+eyRjb250cm9sLT5wcm9tcHR9eyRjb250cm9sLT5tYXJrZXJ9PC9mb250PgogICAgPC90ZD4KICAgIDx0ZD57JGNvbnRyb2wtPmNvbnRyb2x9PC90ZD4KICA8L3RyPgp7L2ZvcmVhY2h9CiAgPC90YWJsZT4KICA8L2NlbnRlcj4KPGJyLz4Key9pZn0Ke2lmIGlzc2V0KCRoaWRkZW4pfXskaGlkZGVufXsvaWZ9CntpZiBpc3NldCgkaGlkZGVuMil9eyRoaWRkZW4yfXsvaWZ9CnskYmFja317JHN1Ym1pdH17JGNhbmNlbH0KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/userlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNzZWx1c2VyX2FsbCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgdiA9ICQodGhpcykuYXR0cignY2hlY2tlZCcpOwogICAgaWYoIHYgPT0gJ2NoZWNrZWQnICkgewogICAgICAkKCcuc2VsdXNlcicpLmF0dHIoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJCgnLnNlbHVzZXInKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CiAgICB9CiAgfSk7CiAgJCgnLnNlbHVzZXInKS5jbGljayhmdW5jdGlvbigpewogICAgJCgnI3NlbHVzZXJfYWxsJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Ke2Vsc2V9CjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskaXRlbWNvdW50fSZuYnNwO3skaXRlbXNmb3VuZH08L3A+PC9kaXY+CntpZiAkaXRlbWNvdW50ID4gMH0KeyRzdGFydGZvcm19Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggd2lkdGg9IjUlIj57JHVzZXJpZHRleHR9PC90aD4KCQkJPHRoPnskdXNlcm5hbWV0ZXh0fTwvdGg+CgkJCTx0aD57JGdycG5hbWV0ZXh0fTwvdGg+CgkJCTx0aD57JGNyZWF0ZWR0ZXh0fTwvdGg+CgkJCXtpZiAhaXNzZXQoJHVzZXJuYW1lX2lzX2VtYWlsKX08dGg+eyRlbWFpbHRleHR9PC90aD57L2lmfQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJzZWx1c2VyX2FsbCIgdmFsdWU9IjEiLz48L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4KCQkJPHRkPnskZW50cnktPnVzZXJpZH08L3RkPgoJCQk8dGQ+PGEgaHJlZj0ieyRlbnRyeS0+ZWRpdF91cmx9Ij57JGVudHJ5LT51c2VybmFtZX08L2E+PC90ZD4KCQkJPHRkPntpZiBpc3NldCgkZW50cnktPmdycG5hbWUpfXskZW50cnktPmdycG5hbWV8c3VtbWFyaXplOjMwfXsvaWZ9PC90ZD4KCQkJPHRkPnskZW50cnktPmNyZWF0ZWR8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+CgkJCXtpZiAhaXNzZXQoJHVzZXJuYW1lX2lzX2VtYWlsKX08dGQ+eyRlbnRyeS0+ZW1haWx9PC90ZD57L2lmfQoJCQk8dGQ+eyRlbnRyeS0+cHVzaGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzZWx1c2VyIiBuYW1lPSJ7JGFjdGlvbmlkfW1hcmtkZWxldGVfeyRlbnRyeS0+dXNlcmlkfSIgdmFsdWU9InskZW50cnktPnVzZXJpZH0iLz48L3RkPgoJCTwvdHI+CgkgCnsvZm9yZWFjaH0KPC90Ym9keT4KPC90YWJsZT4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij4KeyRzdWJtaXR9CjwvZGl2PgoKey9pZn0KeyRlbmRmb3JtfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/_c1.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[MDE0ZjdiYzM0NzVhMDQ3NjAyODFhNTBjNGMyNzgwZGE6OjI0MTdmMGE2MTkyODllOTA2MjhmMzg2OGI0M2Q4YTlhOjpmN2EzYjk4OGE2MTU3ZTliNjEyMzcxODVkOTc3YzlhNgowMzZlODU0YWI5ZjZjOTM4NjA0YzkyYTA1MTY5ZTU5OTo6MjUxOTgwN2VjODhiMzllNTM2NmU2ZjM3Y2UxZDNkYjY6OjhiYTM2NDhkOTU1ZGE5MjhjM2YzMmFkM2JkOWNlZTI1CjA1NzBhODk3YTdhMTJhM2Y4N2FiNmViZWZiNDk2ODI1OjpmNjhmZTFmODVlZDAxNzVlYzNjNzcwMTQ1Yzc4ZTk4YTo6ODVkZmRlZTZhYzEyNGU2YzRjYmExZjAwY2M5YzAyNGYKMDY4MzQxZmY4OWZlNzc4NzJjYjFhMmUwZjkxMGExNjQ6OjEyYWE4MjBmYjlmNTY4YzgwNTA1YmZhOWM5MDhjNTZiOjo4YTllMjVkOTQ3MGIwMDBiZGNiNzNjNjgxNjdjMDZmYgowODVhMGYzODY3MmI2ZGVlMmE4NzZhMjE5OTczNzA0MDo6ZTEwZjVjZDU3YTBiNDE0ZjgyM2ExMzhmYTg4ZTdkNTU6OjM2NTJlMGEwMzJjNjE4OGYwMDJkYjljYTEwODE2OGYwCjBjYjliMDYyNWYyMDQ3ZmY2NGZkNmU2NzRlNzhiZmU2Ojo3MGUxMjBjY2RmNmIzOTAxYmY1Njk0ZWQyYmFkM2EwOTo6YmUzOGNiYTkyYjUyODBkMjIzYzlmYTIwY2Y1OWZjYzIKMTczOTc0MGY1ZDFhNGYzMzYzNGU2MDJhOGE0ZWIzZTM6OmY2MDgxY2QwY2QxOGEwNjY0NGUwOWQ2OTE0YjQ0NmIyOjoyYTIzNzMxYmE5MjZlY2MwMjMxMTUwMzNiYWEyZDk2NQoxZThjMjg5OTRjZmY2NGQ5ODAyZmRlYzY5MjQxYjdiMzo6OWI3MzNhMjUxMzYyMjkyOTk3NDU1OGQ2ZjZiMTExODE6OmI4Y2ViNzIwZWY5Y2ZlNmQyZGM5Y2EwNGExMDg4MDBhCjFlYTJlMDE3YmYxYjMwOTkxMTRmZjIyY2RlNGM1MDRjOjpmYzM2ZWE5MmQ0ZmEwMDZlOTlkMjE2ODBkMzRlYThiYzo6ODA1N2Q3MWI5NjQ3ZjY0Y2E1OWE4NTVhOTEwN2FmZmQKMjc5NzA4MTFiMzllNDkwYjMzNDk3M2U3NjFjYmUzZjY6OjI3YWFkOWJjOWJiOWFiNWI4OGE4MTA4OWFhZWRjNWY0OjplOTdhMTFmYTY4MjFlMjUyYzIxZDRkZDhlZTllMzJhYgoyOTcxMWUwY2MyOWJhNGM1NGU3MDJmYjg1NjMxOGFkYzo6NjQzMjc4MjlkOTY1NmM5ZjQ1NjJmYWZlNjUxMGJlYzU6OjlhZTZmYjFjZjA3NWJkNDUzMTZiN2RhYmJhMGNjMmJmCjJhYWFjYTc2MDcwZDdlMmI3MjM5NjM4NjgxZDI3YmJiOjozMzQ4NDc3YmY4YzA1NzZlMWNmYWUxNmYyOGQ3ZmM2ZDo6ZmJmMWFkNWQzMzdiMDY0ZTMxZDhmM2JlNWNhODEyNzgKMmFmYzA1ZmNjYjUyY2JkY2FkMmVhYjZhNjExMTI4NTk6OjhlNzE3ZGMwNmNiNzc2NWU5NGQxMTU4MWZhNGQ1NDhjOjpkZGRlNzNjYTY3ZmMyOWJkYzlkMjQ5YWUzOGE4NWYzOQoyZGQzMTZkYWQ5NjU4MmVjMzhjZWFlZDYxNmU1M2UzNjo6OWY4ZjNlZTE5YzkyMDE2MDZmNmU2MzBhMjEyMDRiODI6OmRjODEzYjM4ZjhkYWM1MjgzMTNlZDJlMjg5ZmNkYjRlCjM0MmVkNzU0NGMzOGQzNzc3NzhiMTM2NjgwNzRiMjgzOjpmNDM5OGI1MmM0ZThjOWU4MjdlYWIyZWIyMDFmZmYxMTo6MTg2MGU3MTY2MDk0YWY2NzFlNGUwM2U1ZGY1ZDA5YzEKM2IzYmNiNzUyZTdiMzNkNWJjZjcyN2IzMzM5OWJhMGY6OjkxOGU2ZTdlOGFkNTFmMTcxOTk3NDc0MjMwNWM5M2I3Ojo2OGNlNDMxMTMwMjIxYThkMjQ1MzljMmQxZmY1YjlhMgozZThkYjc1MzAwMzMyZWM1ZTVmY2U3OTliMGRlOWZlOTo6ZWNmZTkyODIxOWUwMDg1NjA5ODlhZjQwYmY1ZTI4Y2I6OjM2N2VmNTQwZmRkOGZkYTM4OTlmNTk4MzcwZmJmZjMwCjQxZTZkOTFjNmRjYTgyMDk3ZjQwMjg1MDZjYzA5NjU3Ojo0NjA2Yjc5YjA5ZWMwMDBjNmU4NzdmMzlkMzM1ZmVjMzo6OTIwOTQ2OTJmYTI1ZjQyMGJjYmNlYTdlNGU1YjFiMjIKNDI2YTM0YTM4ZmQ5ODA3MDE4OTIxZjhhNjA5MDJlYzE6OmQ3YjZmNDFjZTZkOWNjYmVjODEyM2ZkMDFlZDc5MDAyOjo3MmY5YTlkOTQ2MmFhNGM0MWNiMzc1N2IyMDU5NjYxMQo0ODI4MzZkMzg3NzFlNjhiZmM2NTg2MjQzYTk0NjYwMDo6MmFiNmIxNDlmZmMwODNlZTkzYjA3Mzk3NzMyYWEwNjE6OjMxNWYzM2E3NWFlZTM0ZTRkYWJmMDI0MmNjZDk4ZjQ2CjRjMzRkNGI1ZGZjYTlkOTNkNDQzODU4NmM1NzdiMDM0OjoxM2QzMGVhM2YxMjI3NDQ2NzRmYWE2YTlkNjQ0YTZiYTo6MWZjYzhiMjU3YzkyYTJkMzhiODM5ZTcwZDMzYTY3YTkKNTAxOWY3ODI4NjQxYzBkNjZlYTUyNjJhMzFjZGM4OWQ6OmFhNTVlN2NjNWVjYzFjZWNhZjdmMzBiMWU4NTcyZWY5OjowODU1MGZiMmE1NTExNjNjMjc0NmE1NzkxY2E1OGIzNAo1M2EyYjE1OGViMzMwYWMxN2NiM2FlMDVjMDY1ZTYyNTo6ZGY5MDQ3ZWFhYmE5NGY0ZDk0YjgxYmU0OWMwODgzZTE6OjhlZWY0ZWU4NTY2YTc2YWVkNzQzODNkNjg4Mjg5MDEzCjViM2RkOTZmYTZjNWQ2NjFkZTlhMmQ1ZTJmMGUyZWQ3Ojo2ZjhkYjAyMjI2MDA2NjljYTc2ODE5Yzk5ZDYzM2EyNDo6NjlmNGU3NWQwMjNmYmEwZDY2Y2QwNmZiMzgxNjQzODkKNWI4ZDljZDkzMzYyZjdjODIwN2RiZDhjZTM3NDM1N2M6OmU5NDJiY2Q0MTUxY2IzNGU3NTlkMzVjNTRhNWJmMWUxOjpkNTg3MTA3Y2U0ZjI3MjJmNTQ4OThhMzM5ZGM3NjMzOQo2MjQxOTkyODNiODJhYmQwMzAzNmFkYWY1MzFkNmFkNjo6Mzc5MmRhY2VlMWFkZWQzNTRlMTYwY2U0NTAxYTdkZTQ6OjZkMGFlNWI1MmVkMmMyMzAxNjlmZGJmMGE4MjliYWI3CjY2OGEyZjVkNWM4MzQ4NTFlYWMzNzMyOTk4NWMzYjIwOjoxMDZhZjFiN2RhOGQ1MjkyOGU0MTdlOWRhYmVmZmFiYzo6ZDczYzRmN2Q0MWY1NTkyNjVkMjg2MDlkZmE5MmVhZDAKNjgzYWI1OTU0NDg2NDUyMTc3M2JhOThiYTFiYjFmNGQ6OjRlMDIwMTE1NTM4NWYyNGU3NzMxZGRlYTBhYjNjMmQzOjpjYTI5MzE1YjdiNjkzNjBhNDI2MDdkYzQ3MzM3MzJmYgo2YjE4ZWQ4ZDhlNzUwZTZmOWNiYTE2ZGRhMWJkZGQyZDo6MThhODUyZjhmMWJkM2JiODg4MDMzNDgxZDQ1YWFiMGQ6OjY5M2U5NWFmNmU1MDk5ZDZhMzQwNjYzMDAyM2QzMTcxCjZjYmU3YTcyYzM3YjMzNWY4Mzk1NWQ3ZWMxYmYwOGU5OjoyZDlkMjc0ZDhhMWJiMjY4ZmVlNDE4MzZhODYzZDU1MDo6ZTYxNTE3NjYxZTc2YTgzNmI4NDE0YjY3MTYzZGZiNzAKNmQzM2ZmNjIxYzAxYmFjMTQ1OTVlMDIyNjQ3Y2RlODA6OmUyZjZlOTM4NjJkMmIxNmFkNGRmMTJhNmYwYjcyYWM0OjpkZDdjNmNjNTg5YjkwYTgwM2M3N2E1ODJkZmU3MDVkNAo2ZGQwYTBmMGRhZTg1MDk4ZDVhZGY5ZDlmYzI5NDMxMjo6YjRkZTRmNGE1N2ZhM2FiMjhhMmIwNzgxOTM4N2YyOWU6OmM2YmMyMmQwMWVlYzFiZGU4OGNmNWMzYjVhZjk5NmQ2CjZmZGQ0MGFjMzYxODY1NTZjMDA1YjAyMWJjYWU2MzVjOjphODA4YzdlNjlmNGU5Y2FiMDQxYWI5MjBlOGE3NzkyYzo6Y2JmZjU2ZDgyYTFiYmQ0ZTM3NWU5NjIzNjFmMzdkYTgKNzE0ZThkZDQ1M2ViMDMyYjFjODM2YjBjNzE0Y2FiN2Q6OmUxMGY1Y2Q1N2EwYjQxNGY4MjNhMTM4ZmE4OGU3ZDU1OjpkMmI5N2EwYjFlNzQyZmNiYzc2NDFiNDQ5NmRjNTY0OAo3MWEwZTJlZDJiYzAxNGM0MGZiMjIxN2RjOWUxOTVhODo6MGI1MjQ0OTcxODZlMmI0MWRlMDYzYzBjMjNjYmZmMTg6OmNiNTRhYjFhMGYxZGI5M2I1NmFmZjNjNGRkNTlmYmFmCjczM2FiMDU2OTNlNzA0OTgzYmVkMTc2OTg4MWNjMzhiOjpmMzNlMWU4YjQ2MmE2NDc0ODBmYWZjMzlhMjIzNDBjMTo6NzMwZTViNGJiMzVhZWEwNzc4MWI0YTBiZDQ5OTJjMTkKNzMzYzFhZDA1N2Q3N2I2ODRlYTBlNmE0YmFjYjFmMTE6OjcyYWU1ZjVlN2VlNGIzZDJlZTkwNjExYWU2ZTA1ODZkOjpjYTgzNGY4YjEwY2E0ODdlYWE2MTU5MzI5YTA4MDYwOAo3NTQ5OTNiOWEwMjc3ODdiMjIzYzZjNzk1OWM2ZjE5Zjo6MDUwODBjYzVhYjU0ZDdmM2JmZmFjN2QwNjNjZGI3ZmU6Ojg0ZWVlYjljNDM0NDY1NTNjMjdlMGViY2U4YzgwMjRjCjc1ZjNhZDIxN2YzN2Q3NmRiNmFkN2I1MjdkODAzMzgzOjo0NWEzOGY3MjUzMjE4YmVkNTY2ZjdjNmIyZDlmMDhmYTo6Yjk3NmEwMGE0ZDk3OTk2M2VhYzNjNjVhNTM2MmEwMTMKNzYzZDNlMzAyNDRlZDgxNWYyMGI1Njc5YWRmY2QxOGY6OjkzMzkyMjU0NDUwZTRlY2VjYmM1OTNhZTE3YTI0ZDZlOjo3YzQxOTI4MjUxYTc1MDViNzhlZTc4MGNiMjAyN2EzMAo3YTY5MDA3YWMyZDBkYjk5ZTUwNTkyNWJkNDYxNmJkNTo6NWRiMzU4NjA3OTRkNTY4NjMwNDVjMDBjMGYzYWY4Y2U6OmUzYmYyNjc3ZmQ4NjQ2M2ViZWQ1YWNiYjM2NzMyZWY5CjdiYzM1NDJlMGJkMDY2NTU2NzdjNjhjYmJiODNiMjUxOjpmOGYwNjU2MWRhZmUzN2I2NDM1ODEzNjEyMzYwZmYyNDo6Yjc0ODk4MzU3OWNjY2Y4MTQ4Y2IwNTU0NjA0Y2Q2OTcKODMxYzhkMjY3MjYyYTZjMjVhMjY4MGIyYTIzZjhlNWI6OmQ2N2Y1ZjFhZTFjMmFjYTdiZTZhMGM3N2ZlMDIyZDVkOjowYjZhZjRmODE2ODU5MGJhNmRlMmZhNGY4ZThjNzdmNAo4OTdjNWZlYzQ4MDA5MTIyYjhiNDdlNzA1NjViN2VhMzo6YjhkZTcwNGFkMmJkMWI3OWU0NDVkNjA1ZjhmNTA1YmM6OmFhZDE1YWYwN2RjMTU3NTY0ZWE3MTNjZGI0NGUzOWI1Cjg5OGU1NTcwZTg0ZjQyZjIxNDA4NmMyNDBjOWVkNmQ4OjowMmVmMDMzODMwMzc4YWE3OTg4MjUwMGY5YWE4ZGM5Mzo6ZWNlOTg2OGZhYTI2YWNjM2YxOTFhZjljNjEzMjRlNGEKODljNzcxODZlOTI4YWEyYTU5YTFiYjNiMWM4NThhMDg6OjFmMjM1YWZhNWE2Y2ZhMDUzNzBhNGZiYzIwZGIwNTNmOjpkZDhkOGVkMDY5YTYzOTYxNGNmZDc1MTk3NjIwMDc1ZQo4ZTM0YzE5Y2MyNjA5NTk0YmZkNzcwYjNlMjI3YTRlYjo6YTdlNTUxNjRkOTRhMDkzYmZiOTJhNGZiOTJhMDg0MDE6OjIwMDBiMGY2OGIxYzZiNDQyYjBmODUyMTk2NzUwZTJjCjkwNGE5NWMyYzYwNWQxMjE2MjlkMjEzODU0MjM5MTExOjo3YTRkOGNmMWZjYjk5YWZlMDM3YjMwYjUwYTY0N2I0Yzo6ODk1ZWMwN2MxNmE1Y2IyNjVkYzBjOGNmYjYzZWM1YzEKOTE2MzIzMzJlMGE2N2M3YTFjNzc4NDVhYjRkMjhlZGI6Ojc3Y2Q4ZGIwMzg5Y2Y4YzhmN2QzNmVmNTBiMzNiNTAyOjoxYjM2OTNkYWMxMzA1NDRlMTA4YjBhODQ3M2EwN2ZkYQo5MmZhZDI1Mjk3MTM0MDZhNDhmZGU5ODhjMTg2NzVkNzo6ZGI5OGJiNjg0MzNmNjA5ZjkxNTlhZjRmMDdhN2Q0ZDI6OmVkNTBjYWZjNGQ0MGJiYTRiNDk5MTJmZGZlM2Y0NzQ2Cjk4YzgxNjIwNDRjNGZmZWMxNTRiZGRkMWNhM2FiMjA4OjoxODc0OTIxNzQ1ZDIwMDQ5MDE4ZGFkYzAyY2Y1ZmQ5Yjo6NjJlYTRiMGJmMjI3ZmMwMGE5Y2Y5ZjA0MjllYzYxNWQKOTkyYjc0ZmIzMmZjMzUyMGJmYzQ5Y2U5M2Y2YzI2ZTg6OmZhYzA4MDY3MmJmMTU0ZDAxMzZhMDk4MTkzMjAwZGZhOjphYTRiZWE1MGYxNzFjOTI1ZjliN2EyMjI3YWQwMTdlNgo5OWE3ODcwOGU0MzcwZmIzY2M5NDQwYjA0OTZhZDJhOTo6OGE1NTMxZWMwYTY1ODk2NmE3MTFjY2Q1MGU2ZjhjNGQ6OjAxNWU1NjkxZWExYTFhMmU4ZDcyMmY3YzNiNDQyM2IzCjlhMzM2ODI4ZWQyNmQ2YTlhZmRmMDYyNDQzOThjNzlmOjo5YmVlNzg5ODQwMWU2OGUzNWE3OGYwZDhjYzZhMmNlODo6NDI5NDViMmI2ZDRlOWQzZWYyNTBiYmIwNTY3ZjRhODAKOWFkNjNjNjY5ZTg4MzY2YTk0MTBjNjQ4Mjg4MzQ4YzE6OjdjOTJjNGMzYTBmNzJmNTM0YTEzNzk0MTI1ZjJiOThjOjowNGM5MGNhNTk1NDRiYmFiZjY5YmI4ODExNjIxMDZjNgo5ZGE3NjBkZWI2Y2ViZGVhYWJmM2NkM2VmNmFlNjIzNDo6MThlNzcyYzJjZTc5YWY1ZmY5NTE0OGMwMDNhOTRmMzE6OmI0NTg3ZjkxNTRiMWVhMDg1OWJkZjIzZTIzN2VkNGNjCmEwNTk1YmU0ZWUxNGY5NmUxNjU3OTRiMWQ4NTM2ZWE5OjpkYTc1NTQ4ZDAxOTk2ZDJiNmZhODY2YjE0YzM4NzUxZDo6YjQ2YTA5YWVlZTdlNmI3NzBjNDA0N2Y5MmU2ZTc5YmEKYTBlYWFkNDkxOWQ4N2ZhNTA0NTA0NTM5ODg4NzY0ZDY6OjZjYTU1NGQ2MDY0YjQyOGMwNzg0M2M5MzI1NTc3NDc0Ojo0MmU0NjIwOWNiMjY4Zjg3NjIzMGI5YmZlNGQ0MDNlNwphOGE4Yjk0ZmUwM2QzODUxNDA5N2I4MzY5NDQxMjVlYTo6YmE2NTQ0OTUwNjg1YzIyMmExOWViZjQ3ZjIxYzg4MGU6OmY1YzkyYTIyMDFiMGY5ZWY4MWIwNTRkYTllZWI2NmNjCmFlMzhlZDZlZmEwZTMxYWJhZTEzYWIzNTQzN2YwM2U3Ojo3NGU4NjQ4OTNlNzZkYjkxMDU0NmFlNGQ3NThiNzViNTo6ZWJlNWU2OGUyMWFlNDEzYTRlZmY5YWViY2FiOGYwMmYKYjBjNGM1MDBhZTNlMzY0MWE1MzA2YzYwYjQyNWRiYTQ6OjM1Njg4OGZmY2ZiODU5MjJlMDk3YWMyYzI2ZGE3YjdiOjpiMDUwYTg4MmZkMmM4ODBmZTBhZTI4YWY3OGYzNzdmZQpiMmMwMDY4ZTU4M2IyZDA1YzI5NWNlOGNhNTNlZjFmZDo6OTE1ZjliZDlhNGUzZWZhYjQ3N2IwZmFiM2MxNGM3NWI6OjAxNDQ0M2U1MmIyMTA2YTM1ZjI0NDMyNjJhY2Q0MWI4CmI3MTE3YjM2MGMzMGRjMDc5MGQ2NWM2ZTBmMzU5ZDZkOjoyYzljMzJjMjk1Nzk1YWIzZTVmZGRmMzE2ZmMwMTY0Njo6MTE1OGRkOTYyNDgwOWI0MzViZWI1NGFmNTdmMTEwNTUKYjdiYjU4NTA4NzBhMjMzODI1YTk0OGY2MDY4NzQyZTY6OjlmNjJkOTE2NzIwMzAxMzhmMDRiNzg5Yjg2NDFjMjU2Ojo3OTk1OTMyYzg5YWY5ZDZjMWU0ZDFhMDhmZWI1ODc4YgpiYTZjMmY0YjU0MWU1NDNhNDI1MTc4ZWFhMWVhNDRhZjo6OThiMjI1NTI1OWE2YTU5NWNkZjJhMmQxOTA5YzAzYjY6OmQyMjczMDdjNTQxODliNjM5N2ZjNmI1N2Q5ZjI3ZjYwCmJiZTk0NzZkYmZhMjYwNDk0ODU2OTRjYzVmMjExODRhOjoxZGVlYjEyNmNmZjBiOTA4ZDgyM2VhYjllOWE3NWY0MDo6MWU0YTk4ODJmNDU2YzllNDAxMTQ4NWRiNmY1ZWYxNTQKYmQwYmJiNDliYjc2MzZhYWZhODU2MGVkNjMzYzJmMjk6OjBmMGY3NGI4OTc1ZjNlMWZhYzY5ZmFiMDdhNDcxZDNmOjozMjI4ZmQ4Yjk5MDQ5YjJiMjMyMjZhMjhhNDYzN2NkZApiZDRhMGQyYzRjMDI5Nzg4MjFkNGUyZTg2ZjM1ZjMzZDo6Y2RlYzhlMDQ3MWNjM2Y0YTAwZGYwNmQ2NTIzODFkMmY6OmU5MjZhOTRkMzQzMDlkZWE2YTAyOGM2YjkzMTNiYWRhCmMzNzk4N2I3MWEzODVmNWYzYWU4ZjNhMjRhMzZhZWVmOjo5Y2VkY2Q4NTE3ZWY5MzAwMjhkOGY0Yzk3ZDIzNjlmNDo6Mjk1NGJhNGMxOTVlMmUyZjM2ZGNhMGYyMjJjODNjMWIKYzQyOTMzMGVjNzZhMTcxMzExYmE4Yzg0MjhkNmI5MTE6OmJiOWRjOWZjZTFjYWUxZTA0YTVkOGM2YjFkNWQ0MjE0OjpjZjhjZjg2NTRmMzZhM2NmYjk2MDNiYjNjZjg4MGE0MApjNjAxMTZhYjQ4ODRiYzljOTAzMTcwMjY1M2FlOTY0Zjo6NDkwMjViNWY1ZTU5OGUyMmVhYzhiOWY0NmRmNDY1MDQ6OmQ0ZmViOThlZTliMTYxYmJiY2Q0MzMyMzQ5ZjQ3YTE2CmM4MDIxMTFmZTZmNjYxZmZmMWQxM2RjNzJlZmZkODQ0OjpiMGJlMWJiYzEwZmQwZjFlZWZlYjQ4M2RhZWNhMTY1MDo6NjBmMjc2MGY3NjlmM2E0OTg1MDNiMDIxNjVlMDNiZmEKYzlkMmFjMWFmMWFhNGE1Y2JiODY0OThiODRmMWFhY2I6OjAwMDcxYmE5ZmRkNjg5OWZmYmJkZGUwZDgzOWViYzBhOjo1ZTg3ZGNkOGY0NzI4ZThkMTQ5Nzk0YjZjNGQxY2QxOQpjYWY1NTliZDZkOTA2YzljYTQ2ZmEzOTY1OTM4ZDllODo6MTYzYWJhMGE0MDY4NmI1YmI0NDExMjJiZDhlNDY5Zjk6OjVhZmVlMDg2MTMxNGU3NGY5NWVjZTU4MmVkYmEzNzJkCmQxMGU2YTRjZTNkYTkzYTA4ZDRmNmYyNDcyODMzZDA2Ojo0MzJiZmVhYjMxOGZlMjRhZWU4NDU1YjQyZWQzMjhhMTo6YzBkODg4MmY1MmViYjAyMjE2Yzg4YmFiNzAwZmFkZTAKZDIwNjRjMjkwMzg0OTQ4ODA3N2IxYmU4YTIzNThhZTU6OjQzYTkzMzVmYjAwNTgxOTQ2ODZhMzRjOGRmOGY3MmFhOjo4ZTk3MjgzMmE3YzA1ZTMxNjM1ZTJkOWE1YjRkMzIxMgpkNTAxNjIzM2VhZDc3ZTAzMjEyYWRkMGZlZmNjMWYwNTo6OTQwM2Y0NDAxZGEyMjViZWI0ZDM4MTQwMmQ4MTExM2I6OjFiODAxYjVmYTZkNzMzMTNiMTgwYzNjMGY3MmY1M2NjCmQ2MjM2NDI1YTg2MTU3YTBiZmM2N2Q1MTBmZTcxNTc1Ojo5ZjYzNTJmMTRjOGJiNmExZmQwMWM3YWQ0N2FlMTI2OTo6MzU0YmEwNjdmMDI0YWRhMzBmNzlhYzNkMzQ4ZmIwYzQKZGIwZjJhMTJmOWQxZDQ5NzQxNmZiNzM4MTExZjc3ZDU6OmRhMGE3OGI0OGQzNmU1YzlmYjE5YzU4NmI0ZjNiOTlmOjoxNTlmNzYyYzZiOTM5YjZjYjgzZmVkNzA2ODU4MzYyYwpkYjkzMjcxYTBkNDk2YWMxNWVlNGI1ODlmYTMwYzk3Zjo6MTNkMzBlYTNmMTIyNzQ0Njc0ZmFhNmE5ZDY0NGE2YmE6OmZkNDEwMmY2Njg4ZThkNDc0NDJiNjI0ZTgyZWM2Njg3CmUwYTUyNTdjNTFkMzQxOTM5NTI2NzMzNzk0YjA3YmIyOjo0ZjQ4MzliMTM5YmVlYzA1NTE2M2EwNDNhZDFlYzM3Mzo6NWZlMTU4YzM1MmQ3N2E1YzZiNWZlMDhiZTllMTg1MmEKZWQyYTgwNWQ4YjNiNWRlNTgxNmM5NmIzZTFiMTU5MjU6OjIwNzBjYTUwNmJkY2FiMjMxZGMzZTU1ODU2Y2ExNWMwOjpiZGU2NWE1OTI0NzIwOWU1ZDVhZWMyZjZjMGI2M2Y5NQplZDMwYjk2NDU4ZDlhYmNiOTE5OGMwZWQzYmYzZjI1ZTo6MGM3ZjcwNTI4Njc5OGMwMjM2NGExZGU2NGEyNzljODM6OmI3YTlkMzE3N2RmNTczMDFmNDcxM2ZiNzQ0ZTJjZDBkCmVlY2M1YjAzZmU1N2M5NjNjMmQyZjQ1NDQxNmQxYmM1OjpiOTA1OWZiYzk0YzI5NTk0NWFlZjk2ODljM2Y5YjdmMDo6Y2M0MTcyNDRlNTZlMjRiM2IwZWEzMDYwNGU2OWQ0NTAKZjQ4ZjNkM2Q1ZDUxOGEyMDMxYTUyYzk5OGZiYjg0MWQ6OjFkNDg4NzI0ZDRjODcwYmU5Mjk0YjlhMThiYzdkNzRmOjpjZmQ1NDJiODdjNDQ0YjU2NDM4ODE2ODUzNzcyNzkwYwpmNGRmZGZiOTdiYTI5ODM1MGE2OGJiZTBkZTMyYjEwNTo6OWY5M2ExMTUwYzQwOWNiNzIyOGYyODgzZWFkMzQ3YWM6OmIzZjlhYTJjMDJmOGRhM2Y3ODNhYjk5MDE5YTc5YWQ0CmY1MjBhMmJkMGQ4MDAzOTlhOTBlMWYyZWVmZDc1YjQ4Ojo5YzUwMmQ3ZGYwODJmYWNiNTViY2MzZThjNjNiMjZmZTo6YjVjOGU4Yzc2OTIwOGI3NGFjMDJmMGZkNTU1ODIxYjUKZjY0YzQ4ZmVhNGI2NjFiOTA4YTkxMTBmYjdkMmQ3YWI6OjdkNGFmODdjOWMxNjFhMjg0ZDAzMTI1MjBhNzA0OGRhOjpkMmYwOThkNzNmOGQ5YjFmMmM4Njg2OTY4YzFhNGFlYgo=]]></data>
	</file>
	<file>
	  <filename>/_changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[bzx1bD4KPGxpPlZlcnNpb24gMC4wLjEuIE9jdCAyMDA1LiBJbml0aWFsIE5SUFQgKE5vdCBSZWFkeSBmb3IgUHJpbWUgVGltZSkgcmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAwLjEuMC4gT2N0IDIwMDUuIEluaXRpYWwgcmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAwLjEuMS4gT2N0IDIwMDUuIFNldCB0aGUgSFRNTCBtYWlsIGZsYWcuPC9saT4KPGxpPlZlcnNpb24gMC4xLjIuIE9jdCAyMDA1LiBNb3ZlZCBSYW5kb20gc3R1ZmYgaW50byBmZXVzZXJzLCBhbmQgYWRkZWQgdGhlIGFiaWxpdHkgdG8gZGVsZXRlIG9sZCBlbnRyaWVzIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiB0ZW1wb3JhcnkgdGFibGVzPC9saT4KPGxpPjxwPlZlcnNpb24gMC4xLjMuIC0gRGVjIDIwMDU8L3A+CjxwPkZpeGVkIHRoZSB0b2dnbGVzIGluIHRoZSBhZG1pbiBwcmVmZXJlbmNlcy4gIEFsc28sIGNoYW5nZWQgdGhlIHBlcm1pc3Npb25zIG1vZGVsIHRvIG5vdCByZXF1aXJlIHRoZSB1bmlxdWUgcGVybWlzc2lvbiBhZGRlZCBwcmV2aW91c2x5IGZvciB0aGUgc2VsZnJlZyBtb2R1bGUuPC9wPgo8cD5UaGlzIHJlbGVhc2Ugd2FzIHJlbW92ZWQgZHVlIHRvIHBvc3NpYmxlIGVycm9yczwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMC4xLjQuIC0gSmFuIDIwMDY8L3A+CjxwPkZpeGVkIG1pbm9yIGVycm9ycyB3aXRoIENoZWNrUGVybWlzc2lvbiwgcmVwbGFjZWQgYWxsIGFzc2lnbl9ieV9yZWZzXCdzIHdpdGggYXNzaWducyBmb3IgaG9wZWZ1bCBwaHA1IGNvbXBhdGliaWxpdHkuPC9wPgo8bGk+PHA+VmVyc2lvbiAwLjEuNS4gLSBKYW4gMjAwNjwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gc2V0IHRoZSBzdWJqZWN0IG9mIHRoZSBjb25maXJtYXRpb24gZW1haWwsIGFuZCBhZGRlZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgdGV4dCBib2R5LiAgU3ViamVjdCwgYW5kIHRleHQgYm9keSBhcmUgcmVxdWlyZWQuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjAuMC4gLSBGZWIgMjAwNjwvcD4KPHA+Rml4ZWQgYSBwcm9ibGVtIHdpdGggdGhlIHZlcmlmeSBtb2RlLjwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gZWRpdCBhbmQgZGVsZXRlIHVzZXJzLiB3aXRoIHNlbGVjdGlvbiBvbiB0aGUgY2hlY2tib3hlcywgYW5kICJjaGVja2FsbCI8L3A+CjxwPk5vdyByZXF1aXJlIEZFVXNlcnMgMC4xLjggYW5kIENNU01haWxlciAxLjczLjk8L3A+CjxwPkFkZGVkIGFub3RoZXIgdGFiIGZvciB0aGUgInlvdXIgc2V0dGluZ3MgaGF2ZSBiZWVuIGFkanVzdGVkIiBlbWFpbCB0ZW1wbGF0ZXM8L3A+CjxwPkFkZGVkIENTViBFeHBvcnRpbmc8L3A+CjxwPkFkZGVkIGEgIkRlbGV0ZSBhbGwgdXNlcnMgb2xkZXIgdGhhbiBhIGRheSIgYnV0dG9uPC9wPgo8cD5Ob3cgd29ya3Mgd2l0aCB0aGUgbWF4aW11bSBsZW5ndGggZmllbGQgb2YgRkVVc2VyczwvcD4KPHA+QWRkZWQgc3VwcG9ydCBmb3IgZHJvcGRvd25zIGFuZCB0ZXh0IGFyZWFzPC9wPgo8cD5EaXNhbGxvdyBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGluIHVzZXJuYW1lPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjAuMS4gLSBGZWIgMjAwNjwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgZm9yIHVzZXJzIHRvIHJlcXVlc3QgYW5vdGhlciByZWdpc3RyYXRpb24gZW1haWwgKHVzZXMgdGhlIHNhbWUgY29kZSksIGluY2FzZSB0aGV5IGxvc3QgdGhlaXIgZmlyc3Qgb25lLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMS4wLjIuIC0gRmViIDIwMDY8L3A+CjxwPlRoZSAiUmVxdWlyZSBlbWFpbCBjb25maXJtYXRpb24iIGNoZWNrYm94IG5vdyB3b3Jrcy4gIFVzZXJzIGFyZSBhZGRlZCBzdHJhaWdodCB0byB0aGUgZnJvbnRlbmQgdXNlcnMgZGF0YWJhc2U8L3A+CjxwPkZpeGVkIGEgYnVnIHdpdGggdGhlIGNvbmZpcm1hdGlvbiBlbWFpbHMgaGF2aW5nIGxpbmtzIHRvIHRoZSBhZG1pbiBzZWN0aW9uIChuZXcgYnVnIG9ubHkpLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMS4wLjMuIC0gRmViIDIwMDY8L3A+CjxwPkFkZGVkIHRoZSAob3B0aW9uYWwpIGFiaWxpdHkgdG8gcmVxdWlyZSB0aGUgdXNlciBlbnRlciB0aGUgZW1haWwgYWRkcmVzcyB0d2ljZTwvcD4KPHA+Rml4ZWQgYSBidWcgd2l0aCB0aGUgdXNlcmVkaXRlZCBtZXNzYWdlIG5vdCBiZWluZyB0aHJvd24gdGhyb3VnaCBzbWFydHk8L3A+CjxwPkZpeGVkIHRoZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0ZW1wbGF0ZSBhIGJpdCB0byBhaWRlIGluIHZhbGlkYXRpb24gZm9yIG5vbiByZXF1aXJlZCBmaWVsZHMgKGZpeGVkIGEgd2FybmluZyk8L3A+CjxwPkZpeCBwcm9ibGVtcyB3aXRoIGlubGluZSBhbmQgbm9uLWlubGluZSBmb3JtcyBhbmQgbGlua3M8L3A+CjxwPkhhbmRsZSBhbm90aGVyIGNhc2Ugd2hlcmUgdGhlIGFkbWluIG1heSBub3QgaGF2ZSBjcmVhdGVkIHRoZSBwcm9wZXIgdHlwZSBvZiBlbWFpbCBwcm9wZXJ0eTwvcD4KPHA+Q2hhbmdlZCB0byByZXF1aXJlIENNUyAwLjEyLWJldGEyIGF0IGEgbWluaW11bSAoZm9yIHNhZmV0eSBwdXJwb3Nlcyk8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uIDEuMC40LiAtIE1hciAyMDA2PC9wPgo8cD5Nb3JlIGNvbnRyb2wgb3ZlciB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZmllbGQgc2l6ZXMgKGNvbnRyb2xsZWQgYnkgZmV1c2Vycyk8L3A+CjxwPkNvbmZpcm1hdGlvbiBvbiBlZGl0aW5nIHByZWZlcmVuY2VzPC9wPgo8cD5SZXF1aXJlIDAuMTIgcHJvcGVyIG9mIGNtcyBhcyBhIG1pbmltdW08L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uIDEuMS4wLiAtIERlYyAyMDA2PC9wPgogICAgPHA+QWRkZWQgZXZlbnRzIGFuZCAxLjAgY29tcGF0aWJpbGl0eTwvcD4KICAgIDxwPkNhcHRjaGEgc3VwcG9ydCAodGhhbmtzIERpdHRtYW4pPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjEuMS4gLSBBcHIgMjAwNzwvcD4KICAgIDxwPk5vdyByZXF1aXJlIEZFVXNlcnMgMS4yLjAgKG1pbmltdW0pPC9wPgogICAgPHA+U3VwcG9ydCBmb3IgbXVsdGlzZWxlY3QgbGlzdHMgaW4gZmV1c2VyczwvcD4KICAgIDxwPk91dHB1dCBzb21lIG1vcmUgZmllbGRzIHRvIHNtYXJ0eSB0byBhbGxvdyBmb3IgaW5jcmVhc2VkIGFjY2Vzc2liaWxpdHk8L3A+CiAgICA8cD5TcGxpdCBjb2RlIG91dCBpbnRvIG11bHRpcGxlIGZpbGVzIHRvIHJlZHVjZSBvdmVyYWxsIG1lbW9yeSBmb290cHJpbnQ8L3A+CiAgICA8cD5JZ25vcmUgYWxsIGltYWdlIGZpZWxkczwvcD4KICAgIDxwPkNoYW5nZSBDYXB0Y2hhIHN1cHBvcnQgdG8gYmUgb24gYnkgZGVmYXVsdCBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgZm91bmQ8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uIDEuMS4yLiAtIE5vdiAyMDA3PC9wPgogICAgPHA+Rml4IHRoZSBwcm9ibGVtIHdpdGggdGhlIFVzZXJEaXNwbGF5TG9zdFJlZ0VtYWlsRm9ybSB0aGluZzwvcD4KICAgIDxwPkFkZHMgdGhlIGlkIHRvIHRoZSBvblVzZXJSZWdpc3RlcmVkIEV2ZW50PC9wPgogICAgPHA+Rml4ZXMgdGhlIHByb2JsZW0gd2l0aCBjaGVja2JveCBwcm9wZXJ0aWVzIG5vdCB3b3JraW5nPC9wPgogICAgPHA+Tm93IFJlcXVpcmVzIENNUyAxLjIgbWluaW11bTwvcD4KICAgIDxwPllvdSBjYW4gbm93IHVzZSB7U2VsZlJlZ2lzdHJhdGlvbiBncm91cD1cJ2JsYWhcJ308L3A+CiAgICA8cD5Ob3cgUmVxdWlyZXMgQ01TIDEuMyBtaW5pbXVtLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMS4xLjMuIC0gTm92IDIwMDc8L3A+CiAgICA8cD5GaXhlcyBpc3N1ZSB3aXRoIFNNVFAgRW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uPC9wPgogICAgPHA+Tm93IFJlcXVpcmUgRkVVIDEuMy4xPC9wPgogICAgPHA+QWRkcyB0aGUgbm9pbmxpbmUgcGFyYW1ldGVyPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjEuNC4gLSBKYW4gMjAwODwvcD4KICAgIDxwPlNwbGl0cyBhIGZldyBtb3JlIGFjdGlvbnMgdXAgaW50byBzZXBlcmF0ZSBmaWxlczwvcD4KICAgIDxwPkFkZHMgcHJlZmVyZW5jZXMgYW5kIGJlaGF2aW91ciBmb3IgcGFnZXMgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgYSB1c2VyIGlzIHJlZ2lzdGVyZWQsIGFuZC9vciB2ZXJpZmllZDwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMS4xLjUuIC0gRmViIDIwMDg8L3A+CiAgICA8cD51c2UgPSYgc3ludGF4IHRvIGFsbCBjYWxscyB0byBHZXRNb2R1bGVJbnN0YW5jZSgpPC9wPgogICAgPHA+UmVtb3ZlIGNhbmNlbCBidXR0b25zIGZyb20gZm9ybXMgKHRoZXkgZGlkblwndCB3b3JrIGFueXdheXMpPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjEuNi4gLSBNYXIgMjAwODwvcD4KICAgIDxwPkxpY2Vuc2UgY2hhbmdlPC9wPgogICAgPHA+UmVtb3ZlIGNhbmNlbCBidXR0b25zIGZyb20gZm9ybXM8L3A+CiAgICA8cD5NaW5vciBidWcgZml4ZXMgYW5kIGNsZWFudXBzPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbiAxLjIgLSBNYXIgMjAwODwvcD4KICAgIDxwPkFkZCBmdW5jdGlvbmFsaXR5IHRvIGFsbG93IGF1dG9tYXRpYyBsb2dnaW5nIGluIG9uY2UgdmVyaWZpY2F0aW9uIGlzIGNvbXBsZXRlPC9wPgogICAgPHA+TWlub3IsIGJ1dCBpbXBvcnRhbnQgYnVnIGZpeGVzLjwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjIuMSAtIEp1bCAyMDA4PC9wPgogICAgPHA+QWRkZWQgc3VwcG9ydCBmb3IgZW1haWwgYWRkcmVzc2VzIGFzIHRoZSB1c2VybmFtZSAodGhhbmtzIF9TakdfKS48L3A+CjxsaT4KPGxpPjxwPlZlcnNpb24gMS4yLjMgLSBGZWIgMjAwOTwvcD4KICAgIDxwPkJ1ZyBGaXhlcy48L3A+CjxsaT4KPGxpPjxwPlZlcnNpb24gMS4yLjQgLSBBcHJpbCAyMDA5PC9wPgogICAgPHA+TWlub3IgQnVnIEZpeGVzLjwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjIuNiAtIE5vdiAyMDA5PC9wPgogICAgPHA+TWlub3IgQnVnIEZpeGVzLjwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjMgLSBNYXJjaCAyMDEwPC9wPgogICAgPHA+QWRkcyBwcmV0dHkgdXJsIHN1cHBvcnQuPC9wPgogICAgPHA+QWRkcyBhYnNvbHV0ZWx5IGRvIG5vdCByZWdpc3RlciBmdW5jdGlvbmFsaXR5LjwvcD4KICAgIDxwPkFkZHMgcmVnaXN0ZXJfbGluayBhY3Rpb24uPC9wPgogICAgPHA+TWlub3IgYnVnIGZpeGVzLjwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjMuMSAtIE1hcmNoIDIwMTA8L3A+CiAgICA8cD5GaXhlcyBhbiBpc3N1ZSB3aXRoIHJlZ2lzdGVyZWQgdXNlciBleHBpcnkuPC9wPgogICAgPHA+TWlub3IgYnVnIGZpeGVzLjwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjMuMiAtIEFwcmlsIDIwMTA8L3A+CiAgICA8cD5NaW5vciBidWcgZml4ZXMuPC9wPgogICAgPHA+TWFrZSBvbk5ld1VzZXIgZXZlbnQgZmlyZSBhZnRlciBGRVUgbG9naW4gKGlmIGVtYWlsIGFjdGl2YXRpb24gaXMgb2ZmKTwvcD4KPGxpPgo8bGk+PHA+VmVyc2lvbiAxLjMuMyAtIEFwcmlsIDIwMTA8L3A+CiAgICA8cD5NaW5vciBidWcgZml4ZXMuPC9wPgo8bGk+CjxsaT48cD5WZXJzaW9uIDEuNCAtIE1heSAyMDEwPC9wPgo8cD5BZGRzIHRoZSBhYmlsaXR5IHRvIG9wdGlvbmFsbHkgb3ZlcndyaXRlIGV4aXN0aW5nIEZFVSBVc2VycywgcHJvdmlkaW5nIHRoZSBjYXBhYmlsaXR5IHRvIHJlZ2lzdGVyIHRvIGFub3RoZXIgZ3JvdXAuICBVc2UgdGhpcyBvcHRpb24gd2l0aCBjYXV0aW9uPC9wPgo8bGk+CjxsaT48cD5WZXJzaW9uIDEuNC4yIC0gTWF5IDIwMTA8L3A+CjxwPkFkZHMgb3JpZ191cmwgc3R1ZmYgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb24gMS41IC0gSnVseSAyMDEwPC9wPgo8cD5BZGRzIHN1cHBvcnQgZm9yIGVuY3J5cHRlZCBGRVUgcHJvcGVydGllcy48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDEuNiAtIEp1bHkgMjAxMAogIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBoaXMgZ3JvdXAuPC9saT4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGRpZmZlcmVudCByZWdpc3RyYXRpb24gcGFja2FnZXMgKGluY2x1ZGluZyBwcmljZSBhbmQgZXhwaXJ5IGRhdGUpLiAoT25lIHBhY2thZ2UgcGVyIEZFVSBncm91cCk8L2xpPgogICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgcGFpZCByZWdpc3RyYXRpb24uICBUaGlzIG1vZHVsZSBjYW4gbm93IGFjdCBhcyBhIHN1cHBsaWVyIHRvIENHRWNvbW1lcmNlQmFzZS48L2xpPgogICAgPGxpPlJlb3JnYW5pemVzIHRoZSBwcmVmZXJlbmNlcyB0YWIgc28gdGhhdCBpdCBtYWtlcyBtb3JlIHNlbnNlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS42LjEgLSBBdWd1c3QgMjAxMAogIDx1bD4KICAgIDxsaT5GaXhlcyBhbiBlcnJvciBpbiBjcmVhdGluZyBwYWlkIHBrZ3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuMiAtIEF1Z3VzdCAyMDEwCiAgPHVsPgogICAgPGxpPkNhbiBub3cgaGF2ZSBtdWx0aXBsZSBwYWlkIHBhY2thZ2VzIGZvciBhIHNpbmdsZSBGRVUgZ3JvdXA8L2xpPgogICAgPGxpPkFkZHMgYSBzZXBlcmF0ZSByZWRpcmVjdCBwcmVmZXJlbmNlIGZvciByZWRpcmVjdGluZyB3aXRoIHBhaWQgcGFja2FnZXMuPC9saT4KICAgIDxsaT5GaXhlcyBhbiBlcnJvciB3aXRoIG1lc3NhZ2VzIHdoZW4gYWRkaW5nL2VkaXRpbmcgcGFpZCBwYWNrYWdlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuNi41CiAgPHVsPgogICAgPGxpPkZpeGVzIGEgYnVnIGluIHZlcmlmeXVzZXIuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuNwogIDx1bD4KICAgPGxpPkZpeGVzIGZvciBDTVNNUyAxLjkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuOAogIDx1bD4KICAgPGxpPkZpeGVzIGZvciBwYWlkIHJlZ2lzdHJhdGlvbiBzdHVmZi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuNi45CiAgPHVsPgogICA8bGk+TWlub3IgZml4ZXMgdG8gcGFpZCByZWdpc3RyYXRpb24gc3R1ZmYuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuMTAKICA8dWw+CiAgICA8bGk+QSBtaW5vciBlbmhhbmNlbWVudCBvciB0d28sIGFuZCBudW1lcm91cyBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuMTEKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeCB0byB2ZXJpZnkgdXNlcnMgcm91dGluZSB3aGVuIHVzaW5nIHNhbHRlZCBwYXNzd29yZHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bEk+VmVyc2lvbiAxLjYuMTIKICA8dWw+CiAgICA8bGk+Rml4ZXMgaXNzdWVzIHJlbGF0ZWQgdG8gc3Vic2NyaXB0aW9uIG9yZGVycy48L2xpPgogICAgPGxpPkFkZHMgYSBwcmVmZXJlbmNlIHRvIGVuc3VyZSB0aGF0IGV2ZW50cyBnb3QgY3JlYXRlZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuNi4xMwogIDx1bD4KICAgIDxsaT5GaXhlcyBtaW5vciBwcm9ibGVtIHdpdGggcGFpZCByZWdpc3RyYXRpb24uPC9saT4KICA8L3VsPgo8L2xpPgo8bEk+VmVyc2lvbiAxLjYuMTQKICA8dWw+CiAgICA8bGk+Rml4ZXMgZm9yIENNU01TIDEuMTA8L2xpPgogICAgPGxpPkZpeGVzIHJlZmVyZW5jZSBpc3N1ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjYuMTUKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS43LngKICA8dWw+CiAgICA8bGk+TWFueSBuZXcgZmVhdHVyZXMsIGNsZWFudXAgdG8gZWRpdGluZyB1c2Vycy4uLi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuOC54CiAgPHVsPgogICAgPGxpPkFkZHMgYWJpbGl0eSB0byByZWdpc3RlciB0byBtdWx0aXBsZSBncm91cHMgYXQgb25jZS48L2xpPgogICAgPGxpPk1pbm9yIHRlbXBsYXRlIGNsZWFudXAuPC9saT4KICAgIDxsaT5jb2RlIG9wdGltaXphdGlvbnMgYW5kIGNsZWFudXAuPC9saT4KICAgIDxsaT5VcGRhdGUgZGVwZGVuZGVuY2llcy48L2xpPgogICAgPGxpPkJ1ZyBmaXhlcyB3cnQgcGFpZCByZWdpc3RyYXRpb24uPC9saT4KICAgIDxsaT5Ob3cgdXNlcyBGRVUgcGFzc3dvcmQgY2hlY2tpbmcuICgxLjguMyk8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuOS54CiAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IFRoaXMgbW9kdWxlIGhhcyB1bmRlcmdvbmUgc2VyaW91cyBjaGFuZ2VzIGluIHRoaXMgc2VyaWVzLiAgVGhlcmUgbWF5IGJlIGNvbXBhdGliaWxpdHkgaXNzdWVzIGFuZCB5b3UgV0lMTCBoYXZlIHRvIHJlc2V0IG1hbnkgb2YgdGhlIHRlbXBsYXRlcyB5b3UgdXNlIGFuZCByZS10ZXN0LjwvZGl2PgoJPHVsPgoJPGxpPkVuaGFuY2VkIHRvIHdvcmsgd2l0aCBzdHJvbmdlciBGRVUgcGFzc3dvcmRzLjwvbGk+Cgk8bGk+QWRkcyBhIG5ldyBhbm90aGVyZ3JvdXAgYWN0aW9uIHRvIGFsbG93IGEgbG9nZ2VkIGluIEZFVSB1c2VyIHRvIHJlZ2lzdGVyIHRvIGFub3RoZXIgZ3JvdXAuIChyZXBsYWNlcyBvbGRlciBmdW5jdGlvbmFsaXR5KS48L2xpPgoJPGxpPjEuOS4xIC0gbW9yZSB3b3JrIG9uIGFub3RoZXJncm91cCBhY3Rpb24gdG8gc3VwcG9ydCBpbWFnZSBmaWVsZHMsIGFuZCB0byBpbXBvcnQgdGhlIHVzZXJzIGN1cnJlbnQgcHJvcGVydHkgdmFsdWVzLiB5b3UgbXVzdCByZXNldCB5b3VyIGFub3RoZXJncm91cCB0ZW1wbGF0ZS48L2xpPgoJPGxpPjEuOS4yIC0gUmV3cml0ZSB0aGUgdmVyaWZ5IHVzZXIgZnVuY3Rpb25hbGl0eS4gIFRlbXBsYXRlcyBoYXZlIGNoYW5nZWQgYW5kIG11c3QgYmUgcmVzZXQuPC9saT4KCTxsaT4xLjkuMiAtIFJld3JpdGUgdGhlIGxvc3QgZW1haWwgZnVuY3Rpb25hbGl0eS4gIFRlbXBsYXRlcyBoYXZlIGNoYW5nZWQgYW5kIG11c3QgYmUgcmVzZXQuPC9saT4KICAgICAgICA8bGk+MS45LjIgLSBOb3cgdXNlIG5ldyBzbWFydHkgc2NvcGUgZm9yIG1hbnkgdGVtcGxhdGVzIHRvIHByZXZlbnQgdmFyaWFibGUgbmFtZSBjb25mbGljdHMuPC9saT4KCTxsaT4xLjkuMyAtIFJlZmFjdG9yIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcyB0byBjbGVhbnVwIHRoZSBjb2RlIGFuZCBzdGFydCB1c2luZyBleGNlcHRpb25zLi4uLiBzaG91bGQgYmUgZmFzdGVyIHRvby48L2xpPgoJPGxpPjEuOS4zIC0gU2VsZnJlZyBub3cgYWRkcyBhbiBGRVUgcHJvcGVydHkgb24gaW5zdGFsbCBmb3IgdXNlIGluIHBhaWQgcmVnaXN0cmF0aW9uIHB1cnBvc2VzIChhbmQgb3RoZXJzKS48L2xpPgogICAgICAgIDxsaT4xLjkuNCAtIEZpeCBtaW5vciB0ZW1wbGF0ZSBwcm9ibGVtcyB3aXRoIGNvbmZpcm1hdGlvbiBlbWFpbHMgKG5vdyBvbmx5IHNlbmQgaHRtbCBtZXNzYWdlcykuICBCdW1wIGRlcGVuZGVuY2llcy48L2xpPgogICAgICAgIDxsaT4xLjkuNyAtIE1pbm9yIGJ1ZyBmaXhlcyBhbmQgdGVtcGxhdGUgY2xlYW51cC48L2xpPgoJPC91bD4KCTwvbGk+Cgo8bGk+VmVyc2lvbiAxLjEwLngKCTx1bD4KCTxsaT5SZS1vcmdhbml6ZSBhZG1pbiBwcmVmcyB0YWIuPC9saT4KCTxsaT5BZGQgYmVmb3JlTmV3VXNlciBFdmVudCB0aGF0IGlzIGNhbGxlZCBhZnRlciB2YWxpZGF0aW9uLCBidXQgYmVmb3JlIGNyZWF0aW5nIGFueXRoaW5nIGluIHRoZSBkYXRhYmFzZSwgdG8gYWxsb3cgZm9yIGV4dGVybmFsIHZhbGlkYXRpb24gc3R1ZmYuPC9saT4KCTxsaT5BZGQgbmV3IHByZWZlcmVuY2UgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHVzZXJzIHNob3VsZCBiZSBhdXRvLWFkZGVkIHRvIEZFVS48L2xpPgoJPGxpPlZlcmlmaWNhdGlvbiBmb3JtIG5vdyBzdXBwb3J0cyBDYXB0Y2hhLi4uCgkgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSAmcXVvdDtSZWdpc3RyYXRpb24gVGVtcGxhdGUgMiZxdW90OyB0ZW1wbGF0ZSBtdXN0IGJlIHJlc2V0IHRvIGZhY3RvcnktZGVmYXVsdHMsIGFuZCByZS1zdHlsZWQuPC9wPgoJICAgPHA+VXNlIHRoZSA8Y29kZT57Y21zX21vZHVsZV9oaW50fTwvY29kZT4gcGx1Z2luIHRvIGRpc2FibGUgdGhlIHVzZSBvZiBjYXB0Y2hhIGZvciB0aGlzIG1vZHVsZSwgYXMgdGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgd2lsbCBub3QgYmUgcGFzc2VkIG9uIHRoZSBVUkwgaW4gYW55IGZvcm0uPC9wPgoJPC9saT4KCTxsaT5DaGFuZ2UgdGhlIGZhY3RvcnkgZmluYWxtZXNzYWdlIHRlbXBsYXRlIHRvIGluZGljYXRlIGlmIHRoZSB1c2VyIGlzIGNyZWF0ZWQgb3Igbm90LCBhbmQgdG8gZGlzcGxheSBhIHNwZWNpYWwgbWVzc2FnZS48L2xpPgoJPGxpPk5vdyBkaXNwbGF5IHRoZSBsaXN0IG9mIGdyb3VwcyB0aGUgdXNlciBpcyByZWdpc3RlcmluZyB0byBpbiB0aGUgZWRpdHVzZXIgZm9ybS48L2xpPgoJPC91bD4KPC9saT4KCjxsaT5WZXJzaW9uIDEuMTEueAoJPHVsPgoJPGxpPk1vZGlmeSByZWdpc3RyYXRpb24gYW5kIHZlcmlmeSBjb2RlIHRvIG5vdyBsb29rIGluIGRlc2lnbiBtYW5nZXIgZm9yIGFkZGl0aW9uYWwgdGVtcGxhdGVzCiAgICAgICAgICAgIDxwPlRoaXMgaXMgYW4gaW50ZXJpbSBtZWFzdXJlLCBhbmQgd2lsbCBjaGFuZ2Ugc29vbiBvbmNlIEkgbWlncmF0ZSBTZWxmUmVnaXN0cmF0aW9uIG92ZXIgdG8gRGVzaWduTWFuYWdlciBjb21wbGV0ZWx5LjwvcD4KCTwvbGk+Cgk8bGk+UmVmYWN0b3IgdGhlIHNlbGVjdCBwYWNrYWdlcyBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgICAgPGxpPkltcHJvdmUgdGhlIGZ1bmN0aW9uYWxpdHkgZm9yIHBhaWQgcGFja2FnZXMuPC9saT4KICAgICAgICA8bGk+TW9kaWZ5IHByZXR0eSB1cmxzIGZvciB0aGUgdmVyaWZ5IGNvZGUuICBOb3cganVzdCB1c2VzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIGZvciBhbGwgZGF0YS48L2xpPgoJPGxpPlJlZmFjdG9yIHRoZSB2ZXJpZnkgYWN0aW9uLjwvbGk+CiAgICAgICAgPGxpPlJlbW92ZSB0aGUgTGluaywgc2hvcnRsaW5rLCBhbmQgc2hvcnR1cmwgdmFyaWFibGVzIGZyb20gdmFyaW91cyB0ZW1wbGF0ZXMuCgkgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gWW91IHdpbGwgbmVlZCB0byByZXZpc2UgeW91ciByZWdpc3RyYXRpb24sIHZlcmlmeSwgYW5kIGVkaXR1c2VyIHRlbXBsYXRlcy48L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+UmVtb3ZlIHRoZSB0ZXh0IHRlbXBsYXRlIGZpZWxkIGZvciB0aGUgdXNlciBpbmZvIGNoYW5nZWQgZW1haWwuICh2MS4xMS4xKS48L2xpPgoJPC91bD4KPC9saT4KCjxsaT5WZXJzaW9uIDEuMTIueAoJPHVsPgoJPGxpPmltcHJvdmVtZW50cyB0byBkZWZhdWx0IHVzZXIgZXhwaXJ5LjwvbGk+Cgk8bGk+QWRkcyBhIG5ldyBwcmVmZXJlbmNlIGZvciB0aGUgdmVyaWZ5IHBhZ2UuIFVzZWQgaW4gdGhlIGFkbWluIGVkaXR1c2VyIGZ1bmN0aW9uYWxpdHkgYXQgdGhpcyB0aW1lLjwvbGk+Cgk8bGk+UmVtb3ZlIGRlcGVuZGVuY3kgb24gQ01TTWFpbGVyIG1vZHVsZS48L2xpPgoJPC91bD4KPC9saT4KCjxsaT5WZXJzaW9uIDEuMTMueAoJPHVsPgoJPGxpPkJ1ZyBmaXhlcy48L2xpPgoJPGxpPlJlcGxhY2UgZXZlbnRzIHdpdGggaG9va3MuPC9saT4KCTwvdWw+CjwvbGk+Cgo8bGk+VmVyc2lvbiAxLjE0LngKCTx1bD4KCTxsaT5BZGRzIENTUkYgdG9rZW4gYW5kIHZhbGlkYXRpb24gdG8gcmVnaXN0cmF0b24gdGVtcGxhdGVzLjwvbGk+CgkgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBZb3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGUge3h0X2Zvcm1fY3NyZn0gdGFnIHRvIGVhY2ggb2YgeW91ciByZWdpc3RyYXRpb24gdGVtcGxhdGVzLjwvcD4KCTwvbEk+Cgk8bGk+Rml4ZXMgd2hpdGVsaXN0L2JsYWNrbGlzdCBmdW5jdGlvbmFsaXR5LjwvbGk+Cgk8L3VsPgo8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/_d1.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[NmEzZTYyNDRiYmMwMWRiNGQ3NTFlZDE4YzI2ZjRhYjYgKi0K]]></data>
	</file>
	<file>
	  <filename>/_help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGRlc2lnbmVkIHRvIGFsbG93IHNpdGUgdmlzaXRvcnMgdG8gY3JlYXRlIGFuIGFjY291bnQgdG8geW91ciB3ZWJzaXRlIGJ5IGZpbGxpbmcgaW4gdGhlaXIgb3duIHBlcnNvbmFsIGRldGFpbHMuICBUaGlzIG1vZHVsZSB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+CjxoND5GZWF0dXJlczo8L2g0Pgo8dWw+CiAgPGxpPlN1cHBvcnRzIHNlbmRpbmcgYSBjb25maXJtYXRpb24gZW1haWwgKHdpdGggYSB1bmlxdWVseSBnZW5lcmF0ZWQgY29kZSkgdG8gdmVyaWZ5IHVzZXIgaW5mb3JtYXRpb24uPC9saT4KICA8bGk+U3VwcHBvcnRzIHBhaWQgcmVnaXN0cmF0aW9uIChhZGRpdGlvbmFsIG1vZHVsZXMgcmVxdWlyZWQpPC9saT4KICA8bGk+SGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB1c2VycyBoYXZlIGF0dGVtcHRlZCB0byByZWdpc3RlciwgYnV0IGxvc3Qgb3IgZGlkIG5vdCByZWNlaXZlIHRoZSBjb25maXJtYXRpb24gZW1haWwuPC9saT4KICA8bGk+SGFuZGxlcyByZWdpc3RlcmluZyB0aGUgdXNlciBhbmQgYWRkaW5nIHRoZW0gdG8gRkVVIGRpcmVjdGx5LjwvbGk+CiAgPGxpPkhhbmRsZXMgYXV0b21hdGljYWxseSBub3RpZnlpbmcgYW4gYWRtaW4gd2hlbiBzb21lb25lIHJlZ2lzdGVycy48L2xpPgogIDxsaT5IYW5kbGVzIGFkdmFuY2VkIHNlY3VyaXR5PC9saT4KICA8bGk+U3VwcG9ydHMgY2FwdGNoYTwvbGk+CiAgPGxpPlN1cHBvcnRzIGFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciB0byBhbiBhZGRpdGlvbmFsIGdyb3VwLjwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+CjxoND5Ob3JtYWwgUmVnaXN0cmF0aW9uPC9oND4KPHVsPgogIDxsaT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgbW9kdWxlIHJlcXVpcmVzIHRoYXQgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGJlIHByb3Blcmx5IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC48L2xpPgogIDxsaT5QbGFjZSBhIHRhZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgb24gYSBjb250ZW50IHBhZ2U6CiAgICAgPGNvZGU+e1NlbGZSZWdpc3RyYXRpb24gZ3JvdXA9YWdyb3VwbmFtZX08L2NvZGU+CiAgICAgPHA+PGNvZGU+YWdyb3VwbmFtZTwvY29kZT4gaXMgYSBncm91cCBuYW1lIHRoYXQgZXhpc3RzIGFuZCBoYXMgYmVlbiBjb25maWd1cmVkIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+CiAgPC9saT4KPC91bD4KPGg0PkFsbG93aW5nIGEgdXNlciB0byByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cC48L2g0Pgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IHRoZSByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cCBhY3Rpb24gcmVxdWlyZXMgdGhhdCBhIHVzZXIgYmUgbG9nZ2VkIGluIHRvIEZyb250RW5kVXNlcnMgdG8gdXRpbGl6ZSB0aGlzIGFjdGlvbi4gIElmIHRoZSB1c2VyIGlzIGFscmVhZHkgYSBtZW1iZXIgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIG9yIGFub3RoZXIgZXJyb3Igb2NjdXJzIG5vIG91dHB1dCB3aWxsIGJlIGRpc3BsYXllZC48L3A+CjxwPlRvIGFsbG93IGEgdXNlciB0byByZWdpc3RlciBmb3IgYW5vdGhlciBncm91cCBmb2xsb3cgdGhlc2Ugc3RlcHM6PC9wPgo8dWw+CiAgPGxpPkVuYWJsZSB0aGUgb3B0aW9uIGluIHRoZSBTZWxmUmVnaXN0cmF0aW9uIG1vZHVsZSBzZXR0aW5ncy48L2xpPgogIDxsaT5BZGQgYSBjYWxsIHN1Y2ggYXMgPGNvZGU+e1NlbGZSZWdpc3RyYXRpb24gYWN0aW9uPWFub3RoZXJncm91cCBncm91cD1vdGhlcmdyb3VwbmFtZX08L2NvZGU+IHRvIGEgY29udGVudCBwYWdlLgo8L3VsPgoKPGgzPkhvb2tzPC9oMz4KPHA+VGhpcyBtb2R1bGUgdXNlcyBIb29rcyB0byB0aWUgaW4gZXh0ZXJuYWwgZnVuY3Rpb25hbGl0eS4gIFRoZSBmb2xsb3dpbmcgaG9va3MgYXJlIGF2YWlsYWJsZTo8L3A+Cjx1bD4KICAgPGxpPjxjb2RlPk1BTVNSZWdpc3RyYXRpb246OmJlZm9yZU5ld1VzZXI8L2NvZGU+IC0gQ2FsbGVkIGJlZm9yZSBhIG5ldyB0ZW1wb3JhcnkgdXNlciBpcyBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZS4KICAgICAgIDxwPlRoaXMgaG9vayBpcyBjYWxsZWQgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGZvcm0gcHJvY2Vzc2luZywgYWZ0ZXIgdmFsaWRhdGluZyBhbGwgdXNlciBpbmZvcm1hdGlvbiwgYnV0IGJlZm9yZSBhZGRpbmcgdGhlIHRlbXBvcmFyeSB1c2VyIGluZm9ybWF0aW9uLiAgSXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBmdXJ0aGVyIHZhbGlkYXRpb25zIG9uIHRoZSByZWdpc3RyYXRpb24gaW5mb3JtYXRpb24uPC9wPgogICAgICAgPHA+SGFuZGxlcnMgdGhhdCBhcmUgdXNpbmcgdGhpcyBob29rIGNhbiB0aHJvdyB0aGUgPGNvZGU+TUFNU1JFR1ZhbGlkYXRpb25FcnJvcjwvY29kZT4gRXhjZXB0aW9uIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CiAgICAgICA8cD5QYXJhbWV0ZXJzOiAtIFRoZSBob29rIGhhbmRsZXIgc2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhcnJheSBwYXJhbWV0ZXIuICBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIGFuIGFzc29jaWF0aXZlIGFycmF5IGFzIGZvbGxvd3M6PC9wPgogICAgICAgPHVsPgogICAgICAgICAgPGxpPjxjb2RlPnVzZXJuYW1lPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+ZW1haWw8L2NvZGU+IDogc3RyaW5nPC9saT4KICAgICAgICAgIDxsaT48Y29kZT5wYXNzd29yZDwvY29kZT4gOiBzdHJpbmcgLSBUaGUgcGxhaW4gdGV4dCB1c2VyIHBhc3N3b3JkPC9saT4KICAgICAgIDwvdWw+CiAgICAgICA8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT5cQ01TTVNcSG9va01hbmFnZXI6OmFkZF9ob29rKCAnTUFNU1JlZ2lzdHJhdGlvbjo6YmVmb3JlTmV3VXNlcicsIGZ1bmN0aW9uKCAkcGFyYW1zICkgewogICAgaWYoIHN0cmxlbiggJHBhcmFtc1sncGFzc3dvcmQnXSApIDwgNCApIHRocm93IG5ldyBcTUFNU1JFR1ZhbGlkYXRpb25FcnJvcignWW91ciBwYXNzd29yZCBpcyB0b28gc2hvcnQnKTsKfSk7PC9jb2RlPjwvcHJlPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPk1BTVNSZWdpc3RyYXRpb246Om9uTmV3VXNlcjwvY29kZT4gLSBUcmlnZ2VyZWQgd2hlbiBhIG5ldyB0ZW1wb3JhcnkgdXNlciBpcyBjcmVhdGVkIGluIFNlbGZyZWdpc3RyYXRpb24uCiAgICAgICA8cD5UaGlzIGhvb2sgaXMgY2FsbGVkIGFmdGVyIHRoZSBzZWxmcmVnIHRlbXBvcmFyeSB1c2VyIGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLCBidXQgYmVmb3JlIHZlcmlmaWNhdGlvbiwgb3IgYWRkaW5nIHRvIEZFVSBldGMuPC9wPgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT51c2VybmFtZTwvY29kZT4gOiBzdHJpbmc8L2xpPgogICAgICAgICAgPGxpPjxjb2RlPmVtYWlsPC9jb2RlPiA6IHN0cmluZzwvbGk+CiAgICAgICA8L3VsPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPk1BTVNSZWdpc3RyYXRpb246Om9uVXNlclJlZ2lzdGVyZWQ8L2NvZGU+IC0gVHJpZ2dlcmVkIGFmdGVyIGEgdGVtcG9yYXJ5IHVzZXIgYWNjb3VudCBoYXMgYmVlbiBjb252ZXJ0ZWQgaW50byBhbiBGRVUgdXNlciBhY2NvdW50LgogICAgICAgPHA+UGFyYW1ldGVyczogLSBUaGUgaG9vayBoYW5kbGVyIHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJyYXkgcGFyYW1ldGVyLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSBhbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBmb2xsb3dzOjwvcD4KICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48Y29kZT5pZDwvY29kZT4gOiBpbnQgLSBUaGUgRkVVIHVpZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCB1c2VyLjwvbGk+CiAgICAgICAgICA8bGk+PGNvZGU+dXNlcm5hbWU8L2NvZGU+IDogc3RyaW5nPC9saT4KICAgICAgIDwvdWw+CiAgIDwvbGk+Cgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2VsZnJlZyI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5TcG9uc29yczwvaDM+CjxwPlRoZXJlIGhhdmUgYmVlbiBtYW55IHNwb25zb3JzIGZvciB0aGlzIG1vZHVsZSwgc29tZSBvZiB0aGVzZSBhcmUgbGlzdGVkIGJlbG93OjwvcD4KPHVsPgogPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubWF0dGVyaG9ybm1hcmtldGluZy5jb20iPk1hdHRlcmhvcm4gTWFya2V0aW5nPC9hPjwvbGk+CiA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5icHRpLmV1Ij5CYWx0aWMgSW5zdGl0dXRlIG9mIEFkdmFuY2VkIFRlY2hub2xvZ3k8L2E+PC9saT4KPC91bD4K]]></data>
	</file>
</module>
