<?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>HostedVideoAlbums</name>
	<version>1.0</version>
  <mincmsversion>1.6.7</mincmsversion>
	<help><![CDATA[PGgyPkFpZGUgZyZlYWN1dGU7biZlYWN1dGU7cmFsZTwvaDI+PGJyLz4NCgk8aDM+UXVlIGZhaXQgY2UgbW9kdWxlPzwvaDM+DQoJPHA+Q2UgbW9kdWxlIGfDqHJlIGV0IGFmZmljaGUgZGVzIGNhdGFsb2d1ZXMgZCdhbGJ1bXMgdmlkJmVhY3V0ZTtvLjwvcD4NCgk8YnIvPg0KCTxoMz5Db21tZW50IGwndXRpbGlzZXI/PC9oMz4NCgk8YnIvPg0KCTxoND5QZXJtaXNzaW9uczwvaDQ+DQoJPHA+QXZhbnQgZGUgZCZlYWN1dGU7YnV0ZXIsIGFzc3VyZXotdm91cyBxdWUgbGVzIHV0aWxpc2F0ZXVycyBvbnQgbGVzIHBlcm1pc3Npb25zIGFwcHJvcHJpJmVhY3V0ZTtzLjwvcD4NCglTaSB2b3VzIG4ndXRpbGlzZXogcGFzIGwnb3B0aW9uIGRlIHBlcnNvbm5hbGlzYXRpb24gZGVzIHJlc3RyaWN0aW9ucyBkJ2FjY8OocyAodm9pciBsZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyksIA0KCWxhIHBlcm1pc3Npb24gIkhvc3RlZFZpZGVvQWxidW1zOiBOb3JtYWwgdXNlciIgIHNlcmEgc3VmZmlzYW50ZSBwb3VyIGxlIG1vZHVsZS4gRGFucyBsJ29uZ2xldCBkZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcywgdm91cyBwb3V2ZXogY2hvaXNpciBxdWVscyBvbmdsZXRzDQoJc2Vyb250IG1vbnRyw6lzIGF1eCB1dGlsaXNhdGV1cnMgbm9ybWF1eC4gU2V1bCBsJ2FkbWluaXN0cmF0ZXVyIGV0IGxlcyB1dGlsaXNhdGV1cnMgYXlhbnQgbGEgcGVybWlzc2lvbiAiSG9zdGVkVmlkZW9BbGJ1bXM6IEFkdmFuY2VkIiBhdXJvbnQgYWNjJmVhY3V0ZTtzIA0KCcOgIGwnb25nbGV0IGRlcyBwciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzLjxici8+DQoJU2kgdm91cyBkJmVhY3V0ZTtzaXJleiBkJmVhY3V0ZTtmaW5pciBkZXMgcGVybWlzc2lvbnMgc3AmZWFjdXRlO2NpZmlxdWVzIHBhciBuaXZlYXUsIGFjdGl2ZXogbCdvcHRpb24gZGUgcmVzdHJpY3Rpb24gZCdhY2MmZWFjdXRlO3NuIGRhbnMgIGwnb25nbGV0IGRlcyBwciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzDQoJZXQgZG9ubmV6IGxhIHBlcm1pc3Npb24gIkhvc3RlZFZpZGVvQWxidW1zOiBNYW5hZ2UgbmFtZV9vZl9sZXZlbCIgYXV4IHV0aWxpc2F0ZXVycyBhcHByb3ByaSZlYWN1dGU7cy48L3A+DQoJPHA+UG91ciBhcHBlbGVyIGxlIG1vZHVsZSwgdXRpbGlzZXogbGEgYmFsaXNlIHN1aXZhbnRlIDo8YnIvPg0KCQl7Y21zX21vZHVsZSBtb2R1bGU9Ikhvc3RlZFZpZGVvQWxidW1zIn08L3A+DQoJCQkJPHA+RGFucyBjZSBjYXMgdW5lIGxpc3RlIGRlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGR1IGRlcm5pZXIgbml2ZWF1ICh2aWRlbykgc2VyYSBhZmZpY2gmZWFjdXRlO2UuIFBvdXIgc3AmZWFjdXRlO2NpZmllciB1biBuaXZlYXUsIHV0aWxpc2V6IGxlIHBhcmFtJmVncmF2ZTt0cmUgIndoYXQiIDo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIHdoYXQ9InZpZGVvIn08YnIvPg0KCQkJCTxpPkxlcyB2YWxldXJzIHBvc3NpYmxlcyBwb3VyICJ3aGF0IiBzb250IDogY2F0ZWdvcnksIGFsYnVtLCB2aWRlbzwvaT48L3A+DQoJCQkJPHA+Vm91cyBwb3V2ZXogYXVzc2kgZGVtYW5kZXIgbGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgcXVpIGFwcGFydGllbm5lbnQgJmFncmF2ZTsgdW4gcGFyZW50IHNwJmVhY3V0ZTtjaWZpcXVlOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPSJIb3N0ZWRWaWRlb0FsYnVtcyIgcGFyZW50PSJhbGlhc19vZl9wYXJlbnQifTwvcD4NCgkJCQk8cD5Wb3VzIHBvdXZleiBmaW5hbGVtZW50IGFwcGVsZXIgdW4gZWFjdXRlO2xlYWN1dGU7bWVudCBlbiBwYXJ0aWN1bGllcjo8YnI+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPSJIb3N0ZWRWaWRlb0FsYnVtcyIgYWxpYXM9ImFsaWFzX29mX2l0ZW0ifTwvcD4NCgkJCQk8YnIvPjxoMj5TJmVhY3V0ZTtwYXJhdGlvbiBlbiBwYWdlczwvaDI+DQoJCQkJPHA+Vm91cyBwb3V2ZXogbGltaXRlciBsZSBub21icmUgZCcmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGRldmFudCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7cyBzdXIgdW5lIG0mZWNpcmM7bWUgcGFnZTo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIG5icGVycGFnZT0iNSJ9PGJyLz4NCgkJCQlEYW5zIGxlIGdhYmFyaXQsIHZvdXMgcG91dmV6IGNvbnN0cnVpcmUgbGUgbWVudSBkZXMgcGFnZXMgJmFncmF2ZTsgbCdhaWRlIGRlcyBiYWxpc2VzIHN1aXZhbnRlczo8YnIvPg0KCQkJCXskcGFnZV9zaG93aW5nfSwgeyRwYWdlX3RvdGFsaXRlbXN9LCB7JHBhZ2VfcGFnZW51bWJlcnN9LCB7JHBhZ2VfbmV4dH0sIHskcGFnZV9wcmV2aW91c308L3A+DQoJCQkJPHA+RGVzIGNsYXNzZXMgb250ICZlYWN1dGU7dCZlYWN1dGU7IGFzc2lnbiZlYWN1dGU7ZXMgYXV4ICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgZHUgbWVudSBkZSBwYWdlIHBvdXIgcXVlIHZvdXMgcHVpc3NleiBsZSBwZXJzb25uYWxpc2VyLjwvcD4NCgkJCQk8YnIvPjxoMj5Vc2FnZSBkZXMgcmVxdSZlY2lyYzt0ZXM8L2gyPg0KCQkJCTxwPlBvdXIgb2J0ZW5pciB1bmUgbGlzdGUgZCcmZWFjdHVlO2wmZWFjdHVlO21lbnRzIHJlbmNvbnRyYW50IGRlcyBjcml0JmVncmF2ZTtyZXMgc3AmZWFjdHVlO2NpZmlxdWVzLCB2b3VzIHBvdXZleiBjciZlYWN0dWU7ZXIgZGVzIHJlcXUmZWNpcmM7dGVzICZhZ3JhdmU7IGwnYWlkZSBkZSBsJ29uZ2xldCBSZXF1JmVjaXJjO3RlcyBkZSBsJ2FkbWluaXN0cmF0aW9uIGR1IG1vZHVsZS4gVm91cyBwb3VycmV6IGVuc3VpdGUgYXBwZWxlciBjZXR0ZSByZXF1JmVjaXJjO3RlIGF2ZWMgbGUgcGFyYW0mZWdyYXZlO3RyZSAicXVlcnkiOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPSJIb3N0ZWRWaWRlb0FsYnVtcyIgcXVlcnk9IjEifTwvcD4NCgkJCQk8cD48aT5TaSBsJ29wdGlvbiBkZSBwZXJtZXR0cmUgbGVzIHJlcXUmZWNpcmM7dGVzIHNxbCBtYW51ZWxsZXMgZXN0IGFjdGl2JmVhY3V0ZTtlPC9pPiAodm9pciBsJ29uZ2xldCAiU2V0dGluZ3MiKSwgdm91cyBwb3V2ZXogYXVzc2kgZm91cm5pciBsYSByZXF1JmVjaXJjO3RlIHNxbCBtYW51ZWxsZW1lbnQgYXZlYyBsZSBwYXJhbSZlZ3JhdmU7dHJlICJxdWVyeSIuIFBhciBleGVtcGxlOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPSJIb3N0ZWRWaWRlb0FsYnVtcyIgd2hhdD0idmlkZW8iIHF1ZXJ5PSJBLmRhdGVfbW9kaWZpZWQgPiAnMjAwOS0wMy0xNScgQU5EIEEuYWN0aXZlID0gMSJ9PGJyLz4NCgkJCQlMYSByZXF1JmVjaXJjO3RlIG5lIHBldXQgY29udGVuaXIgcXVlIGxhIGNsYXVzZSBXSEVSRSBldCBuZSBkZXZyYWl0IHBhcyBjb250ZW5pciBsYSBjb21tYW5kZSBXSEVSRSBlbGxlLW0mZWNpcmM7bWUuIFBvdXIgJmVhY3V0ZTt2aXRlciBsZXMgcHJvYmwmZWdyYXZlO21lcywgbGUgcHImZWFjdXRlO2ZpeGUgIkEuIiBkZXZyYWl0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgZGV2YW50IGxlcyBub21zIGRlIGNoYW1wcyAoIkIuIiBwZXJtZXQgZCdhY2MmZWFjdXRlO2RlciBhdXggY2hhbXBzIGR1IHBhcmVudCwgbG9yc3F1ZSBhcHBsaWNhYmxlKS48YnIvPg0KCQkJCUdhcmRleiBlbiB0JmVjaXJjO3RlIHF1J2FjdGl2ZXIgY2V0dGUgZm9uY3Rpb24gaW1wbGlxdWUgZGUgZG9ubmVyIHVuIGFjYyZlZ3JhdmU7cyBzcWwgYXV4IHV0aWxpc2F0ZXVycyBwb3V2YW50IGFjYyZlYWN1dGU7ZGVyIGF1eCBnYWJhcml0cyBldCBzb3lleiBwcnVkZW50cyE8L3A+DQoJCQkJPGJyLz48aDI+TCdhY3Rpb24gZW1iZWR2aWRlbzwvaDI+DQoJCQkJPHA+UG91ciBpbWJyaXF1ZXIgdW5lIHZpZCZlYWN1dGU7byDDoCBsJ2ludCZlYWN1dGU7cmlldXIgZCd1biBnYWJhcml0IEhWQSwgdm91cyBwb3V2ZXogdXRpbGlzZXIgbCdhY3Rpb24gPGI+ImVtYmVkdmlkZW8iPC9iPjo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIGFjdGlvbj0iZW1iZWR2aWRlbyIgaXRlbT19PGJyLz4NCgkJCQlMZSBwYXJhbSZlZ3JhdmU7ICJpdGVtPSIgZXN0IG9ibGlnYXRvaXJlLjxici8+DQoJCQkJPGJyLz48aDI+TCdhY3Rpb24gc2l0ZW1hcDwvaDI+DQoJCQkJPHA+U2kgbGUgbW9kdWxlIG5lIHBhcnRhZ2UgcGFzIGxlcyBpdGVtcywgdm91cyBwb3V2ZXogdXRpbGlzZXIgbCdhY3Rpb24gPGI+InNpdGVtYXAiPC9iPiBwb3VyIGNyJmVhY3V0ZTtlciB1biBzaXRlbWFwIGR1IG1vZHVsZTo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIGFjdGlvbj0ic2l0ZW1hcCJ9PGJyLz4NCgkJCQlWb3VzIHBvdXZleiBzJmVhY3V0ZTtsZWN0aW9ubmVyIGxlcyBuaXZlYXV4ICZhZ3JhdmU7IGwnYWlkZSBkdSBwYXJhbSZlZ3JhdmU7dHJlICJ3aGF0IiwgZXQgcG91dmV6IGNob2lzaXIgcGx1cyBkJ3VuIG5pdmVhdSBhdmVjIGxhIGZvcm1lIHdoYXQ9ImxldmVsMXxsZXZlbDIiLjxici8+DQoJCQkJTGVzIGF1dHJlcyBwYXJhbSZlZ3JhdmU7dHJlcyBkaXNwb25pYmxlcyBzb250ICJkZXRhaWxwYWdlIiBldCAiaW5saW5lIi48YnIvPg0KCQkJCVBvdXIgY3ImZWFjdXRlO2VyIHVuIHNpdGVtYXAgZ29vZ2xlLCB2b2lyIGxlIDxhIGhyZWY9Ii4uL21vZHVsZXMvSG9zdGVkVmlkZW9BbGJ1bXMvZG9jL2ZhcS5odG1sI3ExNiIgdGFyZ2V0PSJfYmxhbmsiPkZBUTwvYT4uPC9wPg0KCQkJCTxici8+PGgyPkwnYWN0aW9uIGRlIHJlY2hlcmNoZTwvaDI+DQoJCQkJPHA+Vm91cyBwb3V2ZXogdXRpbGlzZXIgbCdhY3Rpb24gInNlYXJjaCIgcG91ciBhZmZpY2hlciB1biBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZTo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIGFjdGlvbj0ic2VhcmNoIiB3aGF0PSJ2aWRlbyJ9PGJyLz4NCgkJCQlVdGlsaXNleiBsZSBwYXJhbSZlZ3JhdmU7dHJlICJzZWFyY2htb2RlIiBwb3VyIGNob2lzaXIgbGEgcmVjaGVyY2hlIHNpbXBsZSBvdSBhdmFuYyZlYWN1dGU7ZSAocGFyIGQmZWFjdXRlO2ZhdXQpLiBOb3RleiBxdWUgdm91cyBuZSBwb3V2ZXogcGFzIGZhaXJlIHVuZSByZWNoZXJjaGUgZW4gbW9kZSBhdmFuYyZlYWN1dGU7IGRhbnMgdG91cyBsZXMgbml2ZWF1eCBlbiBtJmVjaXJjO21lIHRlbXBzLjxici8+DQoJCQkJTGVzIHBhcmFtJmVncmF2ZTt0cmVzIHN1aXZhbnRzIHBldXZlbnQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO3MgYXZlYyBsJ2FjdGlvbiAic2VhcmNoIjogd2hhdCwgbGltaXQsIG5icGVycGFnZSwgb3JkZXJieSwgZGV0YWlscGFnZSwgbGlzdHRlbXBsYXRlLCBpbmxpbmUsIHNlYXJjaG1vZGUuPC9wPjxici8+PGJyLz4NCgkJCQk8cD5Qb3VyIGRhdmFudGFnZSBkJ2FpZGUsIHZvdXMgcG91dmV6IGNvbnN1bHRlciBsZSA8YSBocmVmPSIuLi9tb2R1bGVzL0hvc3RlZFZpZGVvQWxidW1zL2RvYy9mYXEuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkZBUTwvYT4uPC9wPjxici8+PGJyLz48aDM+UGFyYW0mZWdyYXZlO3RyZXM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbSZlZ3JhdmU7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgc3AmZWFjdXRlO2NpZmllciBkYW5zIHF1ZWxsZSBsYW5ndWUgYWZmaWNoZXIgbGUgbW9kdWxlIGRhbnMgbGEgcGFydGllIHB1YmxpcXVlLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIG4mIzAzOTtlc3QgcGFzIHN1cHBvcnQmZWFjdXRlOyBvdSB1dGlsZSBwb3VyIHRvdXMgbGVzIG1vZHVsZXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gU29pdCAibGluayIsICJzZWFyY2giLCAiYnJlYWRjcnVtYnMiIG91ICJkZWZhdWx0IiAoZXQgcG9zc2libGVtZW50ICJzaXRlbWFwIiBldCAiZnJvbnRlbmRfZWRpdCIpLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gd2hhdD0iIiAtIFBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIGxlIG5pdmVhdS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQgOiA8aT5jYXRlZ29yeSwgYWxidW0sIHZpZGVvPC9pPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWxpYXM9IiIgLSBBbGlhcyBkZSBsJyZlYWN1dGU7bCZlYWN1dGU7bWVudCBxdWUgdm91cyB2b3VsZXogYWZmaWNoZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaG93ZGVmYXVsdD0iIiAtIE1ldHRyZSAidHJ1ZSIgc2kgdm91cyB2b3VsZXogYWZmaWNoZXIgbCcmZWFjdXRlO2wmZWFjdXRlO21lbnQgcGFyIGQmZWFjdXRlO2ZhdXQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnQ9IiIgLSBTaSB2b3VzIHZvdWxleiBsaW1pdGVyIGxlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGFmZmljaCZlYWN1dGU7cyAmYWdyYXZlOyBjZXV4IGFwcGFydGVuYW50ICZhZ3JhdmU7IHVuIHBhcmVudCBwYXJ0aWN1bGllciwgZW50cmV6IGljaSBsJ2FsaWFzIGR1IHBhcmVudC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxpbWl0PSIwIiAtIExpbWl0ZSBsZSBub21icmUgZCdpdGVtIHJldG91cm4mZWFjdXRlO3MgcGFyIGxhIHJlcXUmZWNpcmM7dGUgKDAgPSBwYXMgZGUgbGltaXRlKTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbmJwZXJwYWdlPSIwIiAtIExpbWl0ZSBsZSBub21icmUgZCcmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGFmZmljaCZlYWN1dGU7cyBwYXIgcGFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG9yZGVyYnk9IjAiIC0gVmFsZXVycyBwb3NzaWJsZXMgOiAibW9kaWZpZWQiLCAiY3JlYXRlZCIgb3UgbGUgbm9tIGQndW4gY2hhbXAuIFRvdXRlIGF1dHJlIHZhbGV1ciBvcmRvbm5lcmEgZW4gZm9uY3Rpb24gZGUgbCdvcmRyZSBub3JtYWwgZGVzIGl0ZW1zLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGV0YWlscGFnZT0iIiAtIFNwJmVhY3V0ZTtjaWZpZSBsJ2FsaWFzIGRlIGxhIHBhZ2UgdmVycyBsYXF1ZWxsZSBwb2ludGVyb250IGxlcyBsaWVucyAoc2kgcmllbiBuJ2VzdCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7LCBsYSBwYWdlIGFjdHVlbGxlIGVzdCB1dGlsaXMmZWFjdXRlO2UpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByYW5kb209IjAiIC0gRW50cmV6IHVuIG5vbWJyZSBwb3VyIGFmZmljaGVyIGNlIG5vbWJyZSBkJyZlYWN1dGU7bCZlYWN1dGU7bWVudHMgYWwmZWFjdXRlO2F0b2lyZXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsaXN0dGVtcGxhdGU9IiIgLSBQZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsZSBnYWJhcml0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgbCdhZmZpY2hhZ2UgZGUgbGlzdGUgZCZlYWN1dGU7dGFpbGwmZWFjdXRlOyBkdSBuaXZlYXUgZmluYWwuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaW5hbHRlbXBsYXRlPSIiIC0gUGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgbGUgZ2FiYXJpdCAmYWdyYXZlOyB1dGlsaXNlciBwb3VyIGwnYWZmaWNoYWdlIGQndW5lIHZpZMOpbyBob3JzIGxpc3RlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZW1iZWR0ZW1wbGF0ZT0iIiAtIFBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIGxlIGdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBpbWJyaXF1ZXIgdW5lIHZpZGVvIChlbWJlZGRpbmcpLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9yY2VsaXN0PSIwIiAtIE1ldHRyZSAmYWdyYXZlOyAxIHNpIHZvdXMgdm91bGV6IGFmZmljaGVyIGVuIGZvcm1hdCBsaXN0IG0mZWNpcmM7bWUgbG9yc3F1J2lsIG4neSBhIHF1J3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCAoYWZmZWN0ZSBsZSBuaXZlYXUgZmluYWwgc2V1bGVtZW50KS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT0iMCIgLSBNZXQgbGVzIGxpZW5zICJpbmxpbmUiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2VhcmNobW9kZT0iYWR2YW5jZWQiIC0gVXRpbGlzZXIgYXZlYyBsJ2FjdGlvbiAic2VhcmNoIi4gTWV0dHJlICJzaW1wbGUiIHBvdXIgY2hlcmNoZXIgZGFucyB0b3VzIGxlcyBjaGFtcHMsIGV0ICJhZHZhbmNlZCIgcG91ciBjaGVyY2hlciBkYW5zIGRlcyBjaGFtcHMgc3AmZWFjdXRlO2NpZmlxdWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcXVlcnk9IjAiIC0gVXRpbGlzZXIgYXZlYyBsJ2FjdGlvbiAiZGVmYXVsdCIuIEluZGlxdWUgbCdpZCBkZSBsYSByZXF1JmVjaXJjO3RlICZhZ3JhdmU7IGV4JmVhY3V0ZTtjdXRlci48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRvYWN0aW9uPSIiIC0gVXRpbGlzZXIgYXZlYyBsJ2FjdGlvbiAibGluayIuIEluZGlxdWUgdmVycyBxdWVsbGUgYWN0aW9uIGxlIGxpZW4gZGV2cmEgZGlyaWdlci48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0ZXVyJm5ic3A7OiBPbGl2aWVyIExFVklMTEFJTiBvbiBhIGJhc2lzIGNyZWF0ZWQgd2l0aCBDVExNb2R1bGVNYWtlciAxLjguOS4zICZsdDtvbGl2aWVyLmxldmlsbGFpbkBmcmVlLmZyJmd0OzxiciAvPjxiciAvPlZlcnNpb24gOiAxLjA8YnIgLz4=]]></about>
	<description><![CDATA[Hosted Video Albums]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addfiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQppZighaXNzZXQoJF9GSUxFUykgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJHBhcmFtc1sncHJlZml4J10uJ2lkJ10pIHx8ICFpc3NldCgkcGFyYW1zWyd0YWJsZW5hbWUnXSkpew0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCkpOw0KfQ0KDQokZGIgPSAkdGhpcy0+R2V0RGIoKTsNCg0KJHJlc2l6ZSA9IGlzc2V0KCRwYXJhbXNbJ3NpemUnXSk/JHBhcmFtc1snc2l6ZSddOmZhbHNlOw0KJHRodW1ic2l6ZSA9IGlzc2V0KCRwYXJhbXNbJ3RodW1iJ10pPyRwYXJhbXNbJ3RodW1iJ106ZmFsc2U7DQokaXRlbWlkID0gJHBhcmFtc1skcGFyYW1zWydwcmVmaXgnXS4naWQnXTsNCg0KJGN1cmRpciA9IChpc3NldCgkcGFyYW1zWydjdXJkaXInXSkgPyAkcGFyYW1zWydjdXJkaXInXS4nLycgOiAnJyk7DQokc3RhcnRkaXIgPSAoaXNzZXQoJHBhcmFtc1snc3RhcnRkaXInXSkgPyAkcGFyYW1zWydzdGFydGRpciddLicvJyA6ICcnKTsNCiRkZXN0aW5hdGlvbiA9IHN0cl9yZXBsYWNlKCcvLycsJy8nLCRzdGFydGRpci4kY3VyZGlyKTsNCg0KJGFsbG93ZWRleHQgPSBmYWxzZTsNCmlmKGlzc2V0KCRwYXJhbXNbJ2V4dGVuc2lvbnMnXSkgJiYgJHBhcmFtc1snZXh0ZW5zaW9ucyddICYmICRwYXJhbXNbJ2V4dGVuc2lvbnMnXSAhPSAiIikJJGFsbG93ZWRleHQgPSBleHBsb2RlKCIsIiwkcGFyYW1zWydleHRlbnNpb25zJ10pOw0KDQokZXJyb3JzID0gIiI7DQokemlwZmllbGQgPSAkaWQuJ3VwbG9hZHppcGZpbGUnOw0KDQppZihpc3NldCgkcGFyYW1zWyJzdWJtaXR6aXBmaWxlIl0pKXsNCgkNCgkkZGlyID0gJGdDbXMtPmNvbmZpZ1sidXBsb2Fkc19wYXRoIl0uc3RyX3JlcGxhY2UoIi8vIiwiLyIsIi8iLiRkZXN0aW5hdGlvbi4iLyIpOw0KCWlmKCRyZXNpemUgJiYgIWlzX2FycmF5KCRyZXNpemUpKQkkcmVzaXplID0gZXhwbG9kZSgieCIsJHJlc2l6ZSk7DQoJDQoJaWYoaXNzZXQoJF9GSUxFU1skemlwZmllbGRdKSAmJiBpc3NldCgkX0ZJTEVTWyR6aXBmaWVsZF1bJ25hbWUnXSkgJiYgJF9GSUxFU1skemlwZmllbGRdWyduYW1lJ10gIT0gIiIpew0KCQkkZXh0ZW5zaW9uID0gc3RydG9sb3dlcihzdHJyY2hyKCRfRklMRVNbJHppcGZpZWxkXVsnbmFtZSddLCAiLiIpKTsNCgkJJHphID0gbmV3IFppcEFyY2hpdmUoKTsNCgkJaWYoc3RydG9sb3dlcigkZXh0ZW5zaW9uKSA9PSAnLnppcCcgJiYgJHphLT5vcGVuKCRfRklMRVNbJHppcGZpZWxkXVsndG1wX25hbWUnXSkpIHsNCgkJCSRpID0gMDsNCgkJCXdoaWxlKCRpIDwgJHphLT5udW1GaWxlcykgew0KCQkJCSRmaWxlc3RhdHMgPSAkemEtPnN0YXRJbmRleCgkaSk7DQoJCQkJJGZpbGVuYW1lID0gJGZpbGVzdGF0c1snbmFtZSddOw0KCQkJCSRleHRlbnNpb24gPSBzdHJ0b2xvd2VyKHN1YnN0cihzdHJyY2hyKCRmaWxlbmFtZSwgIi4iKSwxKSk7DQoJCQkJaWYoICRleHRlbnNpb24gIT0gIiIgJiYgKCAhJGFsbG93ZWRleHQgfHwgaW5fYXJyYXkoJGV4dGVuc2lvbiwgJGFsbG93ZWRleHQpICkgKXsNCgkJCQkJJGZpbGVuYW1lID0gJHRoaXMtPnVwbG9hZF9jaGVja2ZpbGVuYW1lKCRmaWxlbmFtZSwkZGlyKTsNCgkJCQkJJGZwID0gZm9wZW4oJGRpci4kZmlsZW5hbWUsICJ3Iik7DQoJCQkJCWlmKGZ3cml0ZSgkZnAsJHphLT5nZXRGcm9tSW5kZXgoJGkpKSl7DQoJCQkJCQlmY2xvc2UoJGZwKTsNCgkJCQkJCWNobW9kKCRkaXIuJGZpbGVuYW1lLCAwNzc3KTsNCgkJCQkJCWlmKCRyZXNpemUgJiYgY291bnQoJHJlc2l6ZSkgPT0gMikgJHRoaXMtPnBsUmVzaXplKCRkaXIuJGZpbGVuYW1lLCAnJywgJHJlc2l6ZVswXSwgJHJlc2l6ZVsxXSx0cnVlLGlzc2V0KCRwYXJhbXNbJ2Nyb3AnXSkpOw0KCQkJCQkJJHRoaXMtPnBsQXNzaWduRmlsZShzdHJfcmVwbGFjZSgiLy8iLCIvIiwiLyIuJGRlc3RpbmF0aW9uLiIvIi4kZmlsZW5hbWUpLCAkcGFyYW1zWyd0YWJsZW5hbWUnXSwgJGl0ZW1pZCwgJHBhcmFtc1snZmllbGQnXSwgJHRodW1ic2l6ZSwgaXNzZXQoJHBhcmFtc1snY3JvcHRodW1iJ10pKTsNCgkJCQkJfWVsc2V7DQoJCQkJCQlmY2xvc2UoJGZwKTsNCgkJCQkJCSRlcnJvcnMgPSAnPGxpPicuJGZpbGVuYW1lLic6ICcubGFuZygnZmlsZW5vdHVwbG9hZGVkJykuJzwvbGk+JzsNCgkJCQkJfQ0KCQkJCX1lbHNlew0KCQkJCQkkZXJyb3JzID0gJzxsaT4nLiRmaWxlbmFtZS4nOiAnLiR0aGlzLT5MYW5nKCdlcnJvcl93cm9uZ2ZpbGV0eXBlJykuJzwvbGk+JzsNCgkJCQl9DQoJCQkJJGkrKzsNCgkJCX0NCgkJfWVsc2V7DQoJCQkkZXJyb3JzID0gJzxsaT4nLiRfRklMRVNbJHppcGZpZWxkXVsnbmFtZSddLic6ICcuJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRhcmNoaXZlJykuJzwvbGk+JzsNCgkJfQ0KCX0NCgkNCn1lbHNlew0KCQ0KCWZvcmVhY2goJF9GSUxFUyBhcyAkZmllbGRuYW1lPT4kZmlsZSl7DQoJCWlmKCRmaWVsZG5hbWUgIT0gJHppcGZpZWxkICYmIGlzc2V0KCRmaWxlWyduYW1lJ10pICYmICRmaWxlWyduYW1lJ10gIT0gIiIpew0KCQkJJGV4dGVuc2lvbiA9IHN0cnRvbG93ZXIoc3Vic3RyKHN0cnJjaHIoJGZpbGVbJ25hbWUnXSwgIi4iKSwxKSk7DQoJCQlpZiggISRhbGxvd2VkZXh0IHx8IGluX2FycmF5KCRleHRlbnNpb24sICRhbGxvd2VkZXh0KSApew0KCQkJCWlmKCAkZmlsZXBhdGggPSAkdGhpcy0+cGxVcGxvYWRGaWxlKCRmaWxlLCAkZGVzdGluYXRpb24sICRyZXNpemUsIGlzc2V0KCRwYXJhbXNbJ2Nyb3AnXSkpICl7DQoJCQkJCSR0aGlzLT5wbEFzc2lnbkZpbGUoJGZpbGVwYXRoLCAkcGFyYW1zWyd0YWJsZW5hbWUnXSwgJGl0ZW1pZCwgJHBhcmFtc1snZmllbGQnXSwgJHRodW1ic2l6ZSwgaXNzZXQoJHBhcmFtc1snY3JvcHRodW1iJ10pKTsNCgkJCQl9ZWxzZXsNCgkJCQkJJGVycm9ycyAuPSAiPGxpPiIuJGZpbGVbJ25hbWUnXS4nOiAnLmxhbmcoJ2ZpbGVub3R1cGxvYWRlZCcpLiI8L2xpPiI7DQoJCQkJfQ0KCQkJfWVsc2V7DQoJCQkJJGVycm9ycyA9ICc8bGk+Jy4kZmlsZVsnbmFtZSddLic6ICcuJHRoaXMtPkxhbmcoJ2Vycm9yX3dyb25nZmlsZXR5cGUnKS4nPC9saT4nOw0KCQkJfQ0KCQl9DQoJfQ0KCQ0KfQ0KDQokbmV3cGFyYW1zID0gYXJyYXkoICRwYXJhbXNbJ3ByZWZpeCddLidpZCcgPT4gJGl0ZW1pZCApOw0KaWYoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkgJG5ld3BhcmFtc1snYWN0aXZlX3RhYiddID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOw0KaWYoJGVycm9ycyAhPSAiIikJJG5ld3BhcmFtc1snbW9kdWxlX21lc3NhZ2UnXSA9ICc8dWw+Jy4kZXJyb3JzLic8L3VsPic7DQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZWRpdCcuJHBhcmFtc1sncHJlZml4J10sICRyZXR1cm5pZCwgJG5ld3BhcmFtcyApOwkJDQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.adminquery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmVjaG8gIjxoMj4iLiR0aGlzLT5MYW5nKCJjcmVhdGVxdWVyeSIpLiI8L2gyPjxici8+IjsNCg0KaWYoIWlzc2V0KCRwYXJhbXNbIndoYXQiXSkpew0KCQ0KCSRsZXZlbGFycmF5ID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJJGxldmVsb3B0aW9ucyA9IGFycmF5KCk7DQoJZm9yZWFjaCgkbGV2ZWxhcnJheSBhcyAkb25lKQkkbGV2ZWxvcHRpb25zWyRvbmVdID0gJG9uZTsNCgllY2hvICI8cD4iLiR0aGlzLT5MYW5nKCJwcm9tcHRfcXVlcnkiKTsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiYWRtaW5xdWVyeSIsICRyZXR1cm5pZCk7DQoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsIndoYXQiLCRsZXZlbG9wdGlvbnMpOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4iPC9wPiI7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQ0KfWVsc2VpZihpc3NldCgkcGFyYW1zWyJzdWJtaXRxdWVyeSJdKSl7DQoJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCSR3aGF0ID0gJHBhcmFtc1sid2hhdCJdOw0KCSRtdWx0aXBsZWxpc3RmaWVsZHMgPSBhcnJheSgpOw0KDQoNCgkvLyB3ZSBwYXJzZSB0aGUga2V5d29yZHMNCgkkd2hlcmUgPSAkdGhpcy0+Z2V0V2hlcmVGcm9tUGFyYW1zKCRwYXJhbXMpOw0KCQ0KCWxpc3QoJHdoZXJlY2xhdXNlLCAkd2hlcmV2YWx1ZXMpID0gJHRoaXMtPmJ1aWxkV2hlcmUoJHdoZXJlLCAkd2hhdCk7DQoJJGN1c3RvbW9yZGVyID0gKGlzc2V0KCRwYXJhbXNbIm9yZGVyIl0pICYmICRwYXJhbXNbIm9yZGVyIl0gIT0gIiIpPyRwYXJhbXNbIm9yZGVyIl0uIiAiLiRwYXJhbXNbIm9yZGVyX3R5cGUiXToiIjsNCgkNCgkkdG1waWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQXNhdmVkX3F1ZXJpZXNfc2VxIik7DQoJJG5hbWUgPSBpc3NldCgkcGFyYW1zWyJxdWVyeW5hbWUiXSk/YWRkc2xhc2hlcygkcGFyYW1zWyJxdWVyeW5hbWUiXSk6IiI7DQoJDQoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3NhdmVkX3F1ZXJpZXMgU0VUIGlkPT8sIG5hbWU9Pywgd2hhdD0/LCB3aGVyZWNsYXVzZT0/LCB3aGVyZXZhbHVlcz0/LCBxdWVyeW9yZGVyPT8iOw0KCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0bXBpZCwgJG5hbWUsICR3aGF0LCAkd2hlcmVjbGF1c2UsIHNlcmlhbGl6ZSgkd2hlcmV2YWx1ZXMpLCAkY3VzdG9tb3JkZXIpKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgiYWN0aXZlX3RhYiI9PiJxdWVyaWVzIiwibW9kdWxlX21lc3NhZ2UiPT4kdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKSk7DQoNCn1lbHNlew0KCSR3aGF0ID0gJHBhcmFtc1sid2hhdCJdOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJhZG1pbnF1ZXJ5IiwgJHJldHVybmlkKTsNCgllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJ3aGF0IiwgJHdoYXQpOw0KCWVjaG8gIjxwPiIuJHRoaXMtPkxhbmcoInF1ZXJ5bmFtZSIpLiI6ICIuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInF1ZXJ5bmFtZSIsIiIsMzApLiI8L3A+IjsNCgkkdGhpcy0+Y3JlYXRlRmllbGRGb3JtKCR3aGF0LCAkaWQsIGZhbHNlKTsNCgllY2hvICI8cD4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXRxdWVyeSIsIGxhbmcoInN1Ym1pdCIpKS4iPC9wPiI7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQkJDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.assignfile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCmlmKCFpc3NldCgkcGFyYW1zWydmaWVsZCddKSB8fCAhaXNzZXQoJHBhcmFtc1sncHJlZml4J10pIHx8ICFpc3NldCgkcGFyYW1zWyRwYXJhbXNbJ3ByZWZpeCddLidpZCddKSB8fCAhaXNzZXQoJHBhcmFtc1sndGFibGVuYW1lJ10pKQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgpKTsNCg0KJGZpbGVwYXRoID0gaXNzZXQoJHBhcmFtc1snZmlsZXBhdGgnXSk/JHBhcmFtc1snZmlsZXBhdGgnXTonJzsNCmlmKCRmaWxlcGF0aCAhPSAnJyAmJiBpc3NldCgkcGFyYW1zWydzdGFydGRpciddKSAmJiAkcGFyYW1zWydzdGFydGRpciddICE9ICcvJykJJGZpbGVwYXRoID0gJHBhcmFtc1snc3RhcnRkaXInXS4nLycuJGZpbGVwYXRoOw0KJGZpbGVwYXRoID0gc3RyX3JlcGxhY2UoJy8vJywnLycsJGZpbGVwYXRoKTsNCiRpdGVtaWQgPSAkcGFyYW1zWyRwYXJhbXNbJ3ByZWZpeCddLidpZCddOw0KJHRodW1ic2l6ZSA9IGlzc2V0KCRwYXJhbXNbJ3RodW1iJ10pPyRwYXJhbXNbJ3RodW1iJ106ZmFsc2U7DQoNCiR0aGlzLT5wbEFzc2lnbkZpbGUoJGZpbGVwYXRoLCAkcGFyYW1zWyd0YWJsZW5hbWUnXSwgJGl0ZW1pZCwgJHBhcmFtc1snZmllbGQnXSwgJHRodW1ic2l6ZSwgaXNzZXQoJHBhcmFtc1snY3JvcHRodW1iJ10pKTsNCg0KJG5ld3BhcmFtcyA9IGFycmF5KCAkcGFyYW1zWydwcmVmaXgnXS4naWQnID0+ICRpdGVtaWQgKTsNCmlmKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpICRuZXdwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdlZGl0Jy4kcGFyYW1zWydwcmVmaXgnXSwgJHJldHVybmlkLCAkbmV3cGFyYW1zICk7CQkNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.browsefiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMjIGFjdGlvbi5Ccm93c2VmaWxlcy5waHANCiMjIEJ5OiBQaWVycmUtTHVjIEdlcm1haW4NCiMjIFBBUkFNUzoNCiMjICRwYXJhbXNbJ21vZGUnXSA6IGltYWdlcyB8fCBmaWxlcw0KIyMgJHBhcmFtc1snZXh0ZW5zaW9ucyddIDogYXJyYXkgb2Ygc2hvd24gZmlsZSBleHRlbnNpb25zDQojIyAkcGFyYW1zWydzdGFydGRpciddIDogdGhlIGZvbGRlciB0byBzdGFydCBhdCAoIHVwbG9hZHMvIFtzdGFydGRpcl0gLyApDQojIyAkcGFyYW1zWyd0YWJsZW5hbWUnXSA6IHRoZSBuYW1lIG9mIHRoZSBkYiB0YWJsZQ0KIyMgJHBhcmFtc1sncHJlZml4J10gOiB0aGUgdmFyaWFibGUgcHJlZml4DQojIyAkcGFyYW1zW3ByZWZpeC4naWQnXSA6IHRoZSBpZCBvZiB0aGUgaXRlbSB0byB3aGljaCB0aGUgaW1hZ2Ugd2lsbCBiZSBhc3NpZ25lZCAodmFsdWUgaXMgbm90IHVzZWQsIGJ1dCByZXR1cm5lZCBhdCB0aGUgZW5kKQ0KIyMgJHBhcmFtc1snZmllbGQnXSA6IG9ubHkgYSBwYXNzLXRocm91Z2ggdG8gdGhlIGFzc2lnbiBhY3Rpb24NCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIFJFVFJJRVZJTkcgUEFSQU1TIEFORCBDT05GSUdTLi4uDQojDQppZiAoIWlzc2V0KCRwYXJhbXNbJ21vZGUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkJ10pIHx8ICFpc3NldCgkcGFyYW1zWyd0YWJsZW5hbWUnXSkgKSBleGl0Ow0KDQokaGlkZXRodW1icyA9IHRydWU7IC8vIHdpbGwgaGlkZSBJbWFnZSBNYW5hZ2VyIHRodW1ibmFpbHMsIGJ1dCBhbHNvIGhpZGUgYWxsIGZpbGVzIHRoYXQgc3RhcnQgd2l0aCAidGh1bWJfIi4uLg0KJHRoZWFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQoNCiMjIGRlZmluaW5nIHRoZSBhbGxvd2VkIGV4dGVuc2lvbnM6DQokbWVkaWFleHQgPSBhcnJheSgnc3dmJywnZmx2JywnanBlZycsJ2pwZycsJ3BuZycsJ2dpZicpOw0KJGRvY2V4dCA9IGFycmF5KCdkb2MnLCdkb2N4JywneGxzJywneGxzeCcsJ3J0ZicsJ3R4dCcsJ3BkZicpOw0KDQppZigkcGFyYW1zWydtb2RlJ10gPT0gJ2ltYWdlcycgfHwgJHBhcmFtc1snbW9kZSddID09ICdpbWFnZScpIHsNCgkkbW9kZSA9ICdpbWFnZSc7DQoJJGFsbG93ZWRleHQgPSAkbWVkaWFleHQ7DQp9ZWxzZXsNCgkkbW9kZSA9ICdvdGhlcic7DQoJJGFsbG93ZWRleHQgPSBhcnJheV9tZXJnZSgkbWVkaWFleHQsJGRvY2V4dCk7DQp9DQppZihpc3NldCgkcGFyYW1zWydleHRlbnNpb25zJ10pICYmICRwYXJhbXNbJ2V4dGVuc2lvbnMnXSAmJiAkcGFyYW1zWydleHRlbnNpb25zJ10gIT0gIiIpCSRhbGxvd2VkZXh0ID0gZXhwbG9kZSgiLCIsJHBhcmFtc1snZXh0ZW5zaW9ucyddKTsNCmlmKCRtb2RlID09ICdpbWFnZScgJiYgISR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzaG93dGh1bWJuYWlscyIsdHJ1ZSkpCSRtb2RlID0gJ290aGVyJzsNCg0KJGFkZGZpbGVzID0gKCBpc3NldCgkcGFyYW1zWydhZGRmaWxlcyddKSAmJiAkcGFyYW1zWydhZGRmaWxlcyddICk7DQoNCg0KDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMgU09NRSBGVU5DVElPTlMuLi4NCiMNCg0KZnVuY3Rpb24gc3RybGltaXQoJHN0cmluZyl7DQoJLy8gZnVuY3Rpb24gdG8gbGltaXQgdGhlIGxlbmd0aCBvZiB0aGUgZmlsZW5hbWVzDQoJaWYgKHN1YnN0cigkc3RyaW5nLDAsMjEpID09ICRzdHJpbmcpew0KCQlyZXR1cm4gJHN0cmluZzsNCgl9ZWxzZXsNCgkJcmV0dXJuIHN1YnN0cigkc3RyaW5nLDAsMTkpLicuLi4nOw0KCX0NCn0NCmZ1bmN0aW9uIGdldF90aHVtYm5haWwoJGJhc2V1cmwsICRmaWxlbmFtZSwgJGRpciwgJHJldHVybmFycmF5PWZhbHNlKXsNCgkkdGh1bWJwYXRoID0gJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlbmFtZTsNCgkkdGh1bWJuYW1lID0gJGZpbGVuYW1lOw0KCWlmIChmaWxlX2V4aXN0cygkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RodW1iXycuJGZpbGVuYW1lKSkgew0KCQkkdGh1bWJuYW1lID0gJ3RodW1iXycuJGZpbGVuYW1lOw0KCX1lbHNlaWYoZmlsZV9leGlzdHMoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLidwbHRodW1iXycuJGZpbGVuYW1lKSl7DQoJCSR0aHVtYm5hbWUgPSAncGx0aHVtYl8nLiRmaWxlbmFtZTsNCgl9DQoJJGltZ2luZiA9IGdldGltYWdlc2l6ZSgkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJHRodW1ibmFtZSk7DQoJaWYoISRpbWdpbmYgfHwgIWlzc2V0KCRpbWdpbmZbMV0pKQlyZXR1cm4gZmFsc2U7DQoJbGlzdCgkd2lkdGgsICRoZWlnaHQpID0gJGltZ2luZjsNCgkkdGh1bWJuYWlscmF0aW8gPSBtYXgoJHdpZHRoIC8gMTA2LCRoZWlnaHQgLyAxMDYpOw0KCWlmICgkdGh1bWJuYWlscmF0aW8gPCAxKSAkdGh1bWJuYWlscmF0aW8gPSAxOw0KCSR0aGVpZ2h0ID0gZmxvb3IoJGhlaWdodCAvICR0aHVtYm5haWxyYXRpbyk7DQoJJHR3aWR0aCA9IGZsb29yKCR3aWR0aCAvICR0aHVtYm5haWxyYXRpbyk7DQoJaWYoJHJldHVybmFycmF5KXsNCgkJcmV0dXJuIGFycmF5KCRiYXNldXJsLicvJy4kdGh1bWJuYW1lLCAkdHdpZHRoLCAkdGhlaWdodCk7DQoJfWVsc2V7DQoJCXJldHVybiAnPGltZyBib3JkZXI9MCBzcmM9IicuJGJhc2V1cmwuJy8nLiR0aHVtYm5hbWUuJyIgd2lkdGg9IicuJHR3aWR0aC4nIiBoZWlnaHQ9IicuJHRoZWlnaHQuJyIgLz4nOw0KCX0NCn0NCmZ1bmN0aW9uIGltYWdlbW9kZV9idWlsZGxpbmtjb250ZW50KCRiYXNldXJsLCAkZmlsZW5hbWUsICRkaXI9Jycpew0KCS8vIGNyZWF0ZXMgdGhlIGNvbnRlbnQgb2YgdGhlIGxpbmsgaW4gaW1hZ2UgbW9kZQ0KCSRleHRlbnNpb24gPSBzdHJ0b2xvd2VyKHN1YnN0cihzdHJyY2hyKCRmaWxlbmFtZSwgIi4iKSwgMSkpOw0KCWlmKGluX2FycmF5KCRleHRlbnNpb24sIGFycmF5KCdqcGVnJywnanBnJywncG5nJywnZ2lmJykpKXsNCgkJJHRoZXRodW1iID0gZ2V0X3RodW1ibmFpbCgkYmFzZXVybCwgJGZpbGVuYW1lLCAkZGlyKTsNCgkJcmV0dXJuICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4nLiR0aGV0aHVtYi4nPC9kaXY+Jy5zdHJsaW1pdCgkZmlsZW5hbWUpOw0KCX0NCglnbG9iYWwgJGdDbXM7DQoJJHRoZWFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQoJaWYoaW5fYXJyYXkoJGV4dGVuc2lvbiwgYXJyYXkoJ2ZsdicsJ3N3ZicsJ3dtdicsJ21vdicpKSl7DQoJCSRwaWMgPSAkdGhlYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9maWxldHlwZXMvZm1lZGlhLmdpZiIpOw0KCX1lbHNlaWYoaW5fYXJyYXkoJGV4dGVuc2lvbiwgYXJyYXkoJ2pwZWcnLCdqcGcnLCdwbmcnLCdnaWYnKSkpew0KCQkkcGljID0gJHRoZWFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvZmlsZXR5cGVzL2ZwYWludC5naWYiKTsNCgl9ZWxzZXsNCgkJJHBpYyA9ICR0aGVhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL2ZpbGV0eXBlcy9mZG9jLmdpZiIpOw0KCX0NCglyZXR1cm4gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPicuJHBpYy4nPC9kaXY+Jy5zdHJsaW1pdCgkZmlsZW5hbWUpOw0KfQ0KDQpmdW5jdGlvbiBtYWtlRGlyT2JqKCRmaWxlbmFtZSwkZGlyLCRtb2R1bGUsJHBhcmFtcywkY3VyZGlyLCRwYXJlbnRkaXIsJGlkLCRyZXR1cm5pZCl7DQoJZ2xvYmFsICRnQ21zOw0KCSR0aGVhZG1pbnRoZW1lID0gJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdOw0KCSRwYXJlbnQgPSAoJGZpbGVuYW1lID09ICcuLicpOw0KCSRvYmogPSBuZXcgU3RkQ2xhc3MoKTsNCgkkb2JqLT5mb2xkZXIgPSB0cnVlOw0KCSRlbXB0eSA9IGFycmF5KCJleHQiLCJzaXplIiwiaW1hZ2VzaXplIiwiZGVsZXRlbGluayIsIm1vZGlmaWVkIiwib3duZXIiLCJwZXJtaXNzaW9ucyIpOw0KCWZvcmVhY2goJGVtcHR5IGFzICRmaWVsZCkJJG9iai0+JGZpZWxkID0gJyc7DQoJJG9iai0+ZmlsZW5hbWUgPSAkZmlsZW5hbWU7DQoJJG9iai0+cGljID0gJHRoZWFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvZmlsZXR5cGVzLyIuKCRwYXJlbnQ/InVwIjoiIikuImZvbGRlci5naWYiKTsNCglpZigkcGFyZW50KXsNCgkJJG5ld3BhcmFtcyA9IGFycmF5X21lcmdlKCRwYXJhbXMsIGFycmF5KCdjdXJkaXInID0+ICRwYXJlbnRkaXIpKTsNCgkJJG9iai0+dGhlbGluayA9ICRtb2R1bGUtPkNyZWF0ZUxpbmsoJGlkLCAnYnJvd3NlZmlsZXMnLCAkcmV0dXJuaWQsICcuLicsICRuZXdwYXJhbXMpOw0KCX1lbHNlew0KCQkkbmV3cGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgYXJyYXkoJ2N1cmRpcicgPT4gJGN1cmRpci4nLycuJGZpbGVuYW1lLCAncGFyZW50ZGlyJyA9PiAkY3VyZGlyKSk7DQoJCSRvYmotPnRoZWxpbmsgPSAnPGEgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPi4nLiRmaWxlbmFtZS4nPC9hPicuJG1vZHVsZS0+Q3JlYXRlTGluaygkaWQsICdicm93c2VmaWxlcycsICRyZXR1cm5pZCwgJGZpbGVuYW1lLCAkbmV3cGFyYW1zKTsNCgl9DQoJcmV0dXJuICRvYmo7DQp9DQpmdW5jdGlvbiBtYWtlRmlsZU9iaigkZmlsZW5hbWUsJGRpciwkbW9kdWxlLCRwYXJhbXMsJGN1cmRpciwkaWQsJHJldHVybmlkLCRiYXNldXJsKXsNCglnbG9iYWwgJGdDbXM7DQoJJHRoZWFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQoJJGluZm8gPSAkbW9kdWxlLT5wbEdldEZpbGVJbmZvKCRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZW5hbWUpOw0KCSRleHRlbnNpb24gPSAkaW5mb1snZXh0J107DQoJJG9iaiA9IG5ldyBTdGRDbGFzcygpOw0KCSRvYmotPmZvbGRlciA9IGZhbHNlOw0KCSRvYmotPmZpbGVuYW1lID0gJGZpbGVuYW1lOw0KCSRvYmotPmV4dCA9ICRleHRlbnNpb247DQoJJG9iai0+c2l6ZSA9ICc8YSBzdHlsZT0iZGlzcGxheTpub25lOyI+Jy4kaW5mb1sic2l6ZSJdLic8L2E+Jy4kaW5mb1sic2l6ZV93Zm9ybWF0Il07DQoJJG9iai0+cGljID0gJHRoZWFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgkaW5mb1siZmlsZWljb24iXSk7DQoJJG9iai0+aW1hZ2VzaXplID0gJyc7DQoJJG9iai0+dmlld2xpbmsgPSAnJzsNCglpZigkaW5mb1siaW1hZ2VzaXplIl0pew0KCQkkb2JqLT5pbWFnZXNpemUgPSAnPGEgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPicuJGluZm9bIndpZHRoIl0uJzwvYT4nLiRpbmZvWyJpbWFnZXNpemUiXTsNCgkJJHRoZXRodW1iID0gZ2V0X3RodW1ibmFpbCgkYmFzZXVybCwgJGZpbGVuYW1lLCAkZGlyLCB0cnVlKTsNCgkJaWYoJHRoZXRodW1iKQkkb2JqLT52aWV3bGluayA9ICcgPGEgaHJlZj0iJy4kdGhldGh1bWJbMF0uJyIgdGl0bGU9IicuJG1vZHVsZS0+TGFuZygiaW5zdGFudHByZXZpZXciKS4nIiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0icmV0dXJuIGRpc3BsYXl0aHVtYih0aGlzLFwnJy4kdGhldGh1bWJbMF0uJ1wnLCcuJHRoZXRodW1iWzFdLicsJy4kdGhldGh1bWJbMl0uJyk7Ij4nLiR0aGVhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS92aWV3LmdpZiIpLic8L2E+JzsNCgl9DQoJJG9iai0+ZGVsZXRlbGluayA9ICRtb2R1bGUtPkNyZWF0ZUxpbmsoJGlkLCAnYnJvd3NlZmlsZXMnLCAkcmV0dXJuaWQsICR0aGVhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9kZWxldGUuZ2lmIiksYXJyYXlfbWVyZ2UoJHBhcmFtcywgYXJyYXkoJ2RlbGV0ZWZpbGUnPT4kZmlsZW5hbWUpKSkuJG9iai0+dmlld2xpbms7DQoJJG5ld3BhcmFtcyA9IGFycmF5X21lcmdlKCRwYXJhbXMsIGFycmF5KCdmaWxlbmFtZSc9PiRmaWxlbmFtZSwgJ2ZpbGVwYXRoJyA9PiAkY3VyZGlyLicvJy4kZmlsZW5hbWUpKTsNCgkkb2JqLT50aGVsaW5rID0gJG1vZHVsZS0+Q3JlYXRlTGluaygkaWQsICdhc3NpZ25maWxlJywgJHJldHVybmlkLCAkZmlsZW5hbWUsICRuZXdwYXJhbXMpOw0KCSRvYmotPm1vZGlmaWVkID0gJzxhIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4nLiRpbmZvWyJmaWxlbXRpbWUiXS4nPC9hPicuJGluZm9bIm1vZGlmaWVkIl07DQoJJG9iai0+b3duZXIgPSAkaW5mb1sib3duZXIiXTsNCgkkb2JqLT5wZXJtaXNzaW9ucyA9ICRpbmZvWyJwZXJtaXNzaW9ucyJdOw0KCXJldHVybiAkb2JqOw0KfQ0KDQoNCg0KDQoNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIFJFVFJJRVZJTkcgQ1VSUkVOVCBQQVRILi4uDQojDQoNCiRzdGFydGRpciA9IGlzc2V0KCRwYXJhbXNbJ3N0YXJ0ZGlyJ10pPyRwYXJhbXNbJ3N0YXJ0ZGlyJ106Jyc7DQppZigkc3RhcnRkaXIgIT0gJycgJiYgc3Vic3RyKCRzdGFydGRpciwwLDEpICE9ICcvJyAmJiBzdWJzdHIoJHN0YXJ0ZGlyLDAsMSkgIT0gJ1xcJykgJHN0YXJ0ZGlyID0gRElSRUNUT1JZX1NFUEFSQVRPUi4kc3RhcnRkaXI7DQppZighZmlsZV9leGlzdHMoJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJHN0YXJ0ZGlyKSkgQG1rZGlyKCRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLiRzdGFydGRpcik7DQoNCiRwYXJlbnRkaXIgPSAoaXNzZXQoJHBhcmFtc1sncGFyZW50ZGlyJ10pID8gJHBhcmFtc1sncGFyZW50ZGlyJ10gOiAnJyk7DQokY3VyZGlyID0gKGlzc2V0KCRwYXJhbXNbJ2N1cmRpciddKSA/ICRwYXJhbXNbJ2N1cmRpciddIDogJycpOw0KJGRpciA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLiRzdGFydGRpci4kY3VyZGlyOw0KaWYoIWlzX2RpcigkZGlyKSl7DQoJJGRpciA9ICRnQ21zLT5jb25maWdbInVwbG9hZHNfcGF0aCJdOw0KCSRjdXJkaXIgPSAnJzsNCgkkcGFyZW50ZGlyID0gJyc7DQp9DQokYmFzZXVybCA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uJHN0YXJ0ZGlyLiRjdXJkaXI7DQoNCmlmIChpc3NldCgkcGFyYW1zWydkZWxldGVmaWxlJ10pKXsNCgkvLyBXZSdyZSBkZWxldGluZyBhIGZpbGUNCglpZihmaWxlX2V4aXN0cygkZGlyLicvJy4kcGFyYW1zWydkZWxldGVmaWxlJ10pICYmIHVubGluaygkZGlyLicvJy4kcGFyYW1zWydkZWxldGVmaWxlJ10pKXsNCgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfZGVsZXRlZCIpKTsNCgl9DQp9DQoNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIFBSRVBBUklORyBISURERU4gRklFTERTIEZPUiBVUExPQUQNCiMNCg0KJGhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1cmRpcicsJGN1cmRpcikuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmllbGQnLCRwYXJhbXNbJ2ZpZWxkJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3RhYmxlbmFtZScsJHBhcmFtc1sndGFibGVuYW1lJ10pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ21vZGUnLCRwYXJhbXNbJ21vZGUnXSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwncHJlZml4JywkcGFyYW1zWydwcmVmaXgnXSkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwkcGFyYW1zWydwcmVmaXgnXS4naWQnLCRwYXJhbXNbJHBhcmFtc1sncHJlZml4J10uJ2lkJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snZXh0ZW5zaW9ucyddKSkgJGhpZGRlbiAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdleHRlbnNpb25zJywkcGFyYW1zWydleHRlbnNpb25zJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snc3RhcnRkaXInXSkpICRoaWRkZW4gLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnc3RhcnRkaXInLCRwYXJhbXNbJ3N0YXJ0ZGlyJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snc2l6ZSddKSkgJGhpZGRlbiAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzaXplJywkcGFyYW1zWydzaXplJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1sndGh1bWInXSkpICRoaWRkZW4gLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwndGh1bWInLCRwYXJhbXNbJ3RodW1iJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snY3JvcCddKSkgJGhpZGRlbiAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjcm9wJywkcGFyYW1zWydjcm9wJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snY3JvcHRodW1iJ10pKSAkaGlkZGVuIC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2Nyb3B0aHVtYicsJHBhcmFtc1snY3JvcHRodW1iJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snYWRkZmlsZXMnXSkpICRoaWRkZW4gLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYWRkZmlsZXMnLCRwYXJhbXNbJ2FkZGZpbGVzJ10pOw0KaWYoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkgJGhpZGRlbiAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdhY3RpdmVfdGFiJywkcGFyYW1zWydhY3RpdmVfdGFiJ10pOw0KDQoNCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIFJFVFJJRVZJTkcgRklMRVMgJiBGT0xERVJTDQojDQoNCiRkaCAgPSBvcGVuZGlyKCRkaXIpOw0KJGZvbGRlcnMgPSBhcnJheSgpOw0KJGZpbGVzID0gYXJyYXkoKTsNCiR1cGZvbGRlciA9IGZhbHNlOw0Kd2hpbGUgKCRmaWxlbmFtZSA9IHJlYWRkaXIoJGRoKSl7DQoJaWYoaXNfZGlyKCRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZW5hbWUpICYmICRmaWxlbmFtZSE9Jy4nKXsNCgkJCWlmICgkZmlsZW5hbWU9PScuLicpIHsNCgkJCQlpZiAoJGN1cmRpciAhPSAnJykJCSR1cGZvbGRlciA9IHRydWU7DQoJCQl9ZWxzZXsNCgkJCQkkZm9sZGVyc1tdID0gJGZpbGVuYW1lOw0KCQkJfQ0KCX1lbHNlew0KCQkkZXh0ZW5zaW9uID0gc3RydG9sb3dlcihzdWJzdHIoc3RycmNocigkZmlsZW5hbWUsICIuIiksIDEpKTsNCgkJaWYoaW5fYXJyYXkoJGV4dGVuc2lvbiwgJGFsbG93ZWRleHQpICYmICghJGhpZGV0aHVtYnMgfHwgc3Vic3RyKCRmaWxlbmFtZSwwLDYpICE9ICd0aHVtYl8nKSAmJiBzdWJzdHIoJGZpbGVuYW1lLDAsOCkgIT0gJ3BsdGh1bWJfJyl7DQoJCQkkZmlsZXNbXSA9ICRmaWxlbmFtZTsNCgkJfQ0KCX0NCn0NCmlmIChpc3NldCgkZGgpKQljbG9zZWRpcigkZGgpOw0Kc29ydCgkZm9sZGVycyk7DQpzb3J0KCRmaWxlcyk7DQoNCg0KDQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBESVNQTEFZSU5HLi4uDQojDQoNCmVjaG8gJzxkaXYgaWQ9ImN0bG1tX3N1Ym1pdG1lc3NhZ2UiIGNsYXNzPSJwYWdlbWNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4nLiR0aGlzLT5MYW5nKCJzdWJtaXR0aW5nX2ZpbGUiKS4nPC9kaXY+JzsNCg0KaWYoJG1vZGUgPT0gJ2ltYWdlJyl7DQoJLy8gaW1hZ2UgbW9kZSAod2l0aCB0aHVtYm5haWxzKSAtIG5vIHRlbXBsYXRlDQoJZWNobyAnPGgyPicuJHRoaXMtPkxhbmcoJ2Jyb3dzZWZpbGVzdGl0bGUnKS4nPC9oMj4nOw0KCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoJ3Nob3dpbmdkaXInKS4nIDogJy4kZGlyLic8L3A+JzsNCgllY2hvICc8ZGl2IGlkPSJmaWxlc2VsZWN0IiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0icGFkZGluZzogNHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2OyBiYWNrZ3JvdW5kOiAjRkZGRkZGOyBvdmVyZmxvdzogYXV0bzsiPjxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+JzsNCgkkZGl2b3B0aW9uID0gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxNjVweDsgaGVpZ2h0OiAxODBweDsiPjxici8+JzsNCgkkY2xvc2VkaXYgPSAnPC9kaXY+DQonOw0KCWlmKCR1cGZvbGRlcil7DQoJCWVjaG8gJGRpdm9wdGlvbjsNCgkJJG5ld3BhcmFtcyA9IGFycmF5X21lcmdlKCRwYXJhbXMsIGFycmF5KCdjdXJkaXInID0+ICRwYXJlbnRkaXIpKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdicm93c2VmaWxlcycsICRyZXR1cm5pZCwgJHRoZWFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvZmlsZXR5cGVzL3VwZm9sZGVyLmdpZiIpLic8YnIvPicuJHRoaXMtPkxhbmcoJ3BhcmVudGRpcicpLCAkbmV3cGFyYW1zKTsNCgkJZWNobyAkY2xvc2VkaXY7DQoJfQ0KCWZvcmVhY2goJGZvbGRlcnMgYXMgJGZpbGVuYW1lKXsNCgkJZWNobyAkZGl2b3B0aW9uOw0KCQkkbmV3cGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgYXJyYXkoJ2N1cmRpcicgPT4gJGN1cmRpci4nLycuJGZpbGVuYW1lLCAncGFyZW50ZGlyJyA9PiAkY3VyZGlyKSk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYnJvd3NlZmlsZXMnLCAkcmV0dXJuaWQsICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48aW1nIGJvcmRlcj0wIHNyYz0iLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlci9pbWcvZm9sZGVyLmdpZiIgLz48L2Rpdj4nLiRmaWxlbmFtZSwgJG5ld3BhcmFtcyk7DQoJCWVjaG8gJGNsb3NlZGl2Ow0KCX0NCglmb3JlYWNoKCRmaWxlcyBhcyAkZmlsZW5hbWUpew0KCQllY2hvICRkaXZvcHRpb247DQoJCSRuZXdwYXJhbXMgPSBhcnJheV9tZXJnZSgkcGFyYW1zLCBhcnJheSgnZmlsZW5hbWUnPT4kZmlsZW5hbWUsICdmaWxlcGF0aCcgPT4gJGN1cmRpci4nLycuJGZpbGVuYW1lKSk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYXNzaWduZmlsZScsICRyZXR1cm5pZCwgaW1hZ2Vtb2RlX2J1aWxkbGlua2NvbnRlbnQoJGJhc2V1cmwsICRmaWxlbmFtZSwgJGRpciksICRuZXdwYXJhbXMpLic8YnIvPic7DQoJCSRpbWdpbmYgPSBnZXRpbWFnZXNpemUoJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlbmFtZSk7DQoJCWlmKCRpbWdpbmYgJiYgaXNzZXQoJGltZ2luZlsxXSkpCWVjaG8gJygnLiRpbWdpbmZbMF0uJ3gnLiRpbWdpbmZbMV0uJykgJzsNCgkJJG5ld3BhcmFtcyA9IGFycmF5X21lcmdlKCRwYXJhbXMsIGFycmF5KCdkZWxldGVmaWxlJz0+JGZpbGVuYW1lKSk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYnJvd3NlZmlsZXMnLCAkcmV0dXJuaWQsICR0aGVhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9kZWxldGUuZ2lmIiksJG5ld3BhcmFtcyk7DQoJCWVjaG8gJGNsb3NlZGl2Ow0KCX0NCgllY2hvICc8L2Rpdj48L2Rpdj4nOw0KCQ0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRmaWxlcycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOw0KCWVjaG8gJzxoMz4nLmxhbmcoJ3VwbG9hZGZpbGUnKS4nOjwvaDM+PGRpdj4nOw0KCWlmKCRhZGRmaWxlcyl7DQoJCWVjaG8gJzxmaWVsZHNldCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+PGxlZ2VuZD48Yj4nLiR0aGlzLT5MYW5nKCJ1cGxvYWR6aXBmaWxlIikuJzwvYj48L2xlZ2VuZD4nOw0KCQllY2hvICc8cD4nLiR0aGlzLT5MYW5nKCJ6aXBmaWxlbm90aWNlIikuJzwvcD4nOw0KCQllY2hvICc8cD4nLiR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCd1cGxvYWR6aXBmaWxlJykuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdHppcGZpbGUnLGxhbmcoJ3NlbmQnKSkuJzwvcD48L2ZpZWxkc2V0Pic7DQoJfQ0KCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoJ3Bvc3RtYXhzaXplJykuaW5pX2dldCgncG9zdF9tYXhfc2l6ZScpLic8L3A+JzsNCglpZihpc3NldCgkcGFyYW1zWyJzaXplIl0pKQllY2hvICc8cD4oJy4kdGhpcy0+TGFuZygnYnJvd3NlZmlsZXNyZXNpemUnKS4nKTwvcD4nOw0KCWVjaG8gJzxkaXYgaWQ9ImZpbGVpbnB1dHMiPjxwPicuJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ3VwbG9hZGZpbGUnKS4nPC9wPjwvZGl2Pic7DQoJaWYoJGFkZGZpbGVzKQllY2hvICc8cD48YSBocmVmPSJqYXZhc2NyaXB0OmFkZGZpbGVpbnB1dChcJ2ZpbGVpbnB1dHNcJyx0aGlzKTsiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij4nLiR0aGlzLT5MYW5nKCJhZGRmaWxlaW5wdXQiKS4nPC9hPjwvcD4nOw0KCWVjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JyxsYW5nKCdzZW5kJykpLic8L3A+JzsNCgllY2hvICRoaWRkZW47DQoJZWNobyAnPC9kaXY+JzsJCQ0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgkNCn1lbHNlew0KCS8vIGxpc3QgbW9kZSAobm8gdGh1bWJuYWlscykgLSB1c2VzIGEgdGVtcGxhdGUNCgkNCgkkaW5zdGFudHNlYXJjaCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkaXNwbGF5X2luc3RhbnRzZWFyY2giLGZhbHNlKTsNCgkkaW5zdGFudHNvcnQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGlzcGxheV9pbnN0YW50c29ydCIsZmFsc2UpOw0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYnJvd3NldGl0bGUiLCR0aGlzLT5MYW5nKCdicm93c2VmaWxlc3RpdGxlJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigidXBsb2FkdGl0bGUiLGxhbmcoJ3VwbG9hZGZpbGUnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzaG93aW5nZGlyIiwkdGhpcy0+TGFuZygnc2hvd2luZ2RpcicpLicgOiAnLiRkaXIpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiZm9ybXN0YXJ0IiwkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkZGZpbGVzJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiZm9ybWVuZCIsJGhpZGRlbi4kdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInJlc2l6ZW5vdGljZSIsaXNzZXQoJHBhcmFtc1sic2l6ZSJdKT8kdGhpcy0+TGFuZygnYnJvd3NlZmlsZXNyZXNpemUnKTpmYWxzZSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwb3N0bWF4c2l6ZSIsJHRoaXMtPkxhbmcoJ3Bvc3RtYXhzaXplJykuaW5pX2dldCgncG9zdF9tYXhfc2l6ZScpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInN1Ym1pdCIsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JyxsYW5nKCdzZW5kJykpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImluc3RhbnRzZWFyY2giLCAkaW5zdGFudHNlYXJjaD8kdGhpcy0+TGFuZygic2VhcmNodGhpc3RhYmxlIikuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAic2VhcmNoZmlsZXRhYmxlIiwgIiIsIDEwLCA2NCwgJyBvbmtleXVwPSJjdGxtbV9zZWFyY2godGhpcy52YWx1ZSxcJ2ZpbGVsaXN0X3RhYmxlXCcpOyInKTpmYWxzZSk7DQoNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInppcHRpdGxlIiwgJHRoaXMtPkxhbmcoInVwbG9hZHppcGZpbGUiKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ6aXBub3RpY2UiLCAkdGhpcy0+TGFuZygiemlwZmlsZW5vdGljZSIpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInppcGlucHV0IiwgJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ3VwbG9hZHppcGZpbGUnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ6aXBzdWJtaXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXR6aXBmaWxlJyxsYW5nKCdzZW5kJykpKTsNCg0KCWlmKCRhZGRmaWxlcyl7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiZmlsZWlucHV0IiwnPGRpdiBpZD0iZmlsZWlucHV0cyI+PHA+Jy4kdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwndXBsb2FkZmlsZScpLic8L3A+PC9kaXY+Jyk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRkZmlsZWlucHV0IiwnPGEgaHJlZj0iamF2YXNjcmlwdDphZGRmaWxlaW5wdXQoXCdmaWxlaW5wdXRzXCcsdGhpcyk7IiBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyI+Jy4kdGhpcy0+TGFuZygiYWRkZmlsZWlucHV0IikuJzwvYT4nKTsNCgl9ZWxzZXsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJmaWxlaW5wdXQiLCc8cD4nLiR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCd1cGxvYWRmaWxlJykuJzwvcD4nKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZGRmaWxlaW5wdXQiLGZhbHNlKTsNCgl9DQoJDQoJJHNvcnRsaW5rcyA9IGFycmF5KCk7DQoJJG51bWVyaWNfc29ydGxpbmtzID0gYXJyYXkoKTsNCgkkaSA9IDA7DQoJd2hpbGUoJGkgPCAxMCl7DQoJCWlmKCRpbnN0YW50c29ydCl7DQoJCQkkc29ydGxpbmtzWyRpXSA9ICc8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyI+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX3NvcnRSb3dzKFwnZmlsZWxpc3RfdGFibGVcJywnLiRpLicpOyI+PGltZyBzcmM9InRoZW1lcy9kZWZhdWx0L2ltYWdlcy9pY29ucy9zeXN0ZW0vc29ydF91cC5naWYiIGFsdD0iXiIvPjwvYT48YnIvPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9zb3J0Um93cyhcJ2ZpbGVsaXN0X3RhYmxlXCcsJy4kaS4nLHRydWUpOyI+PGltZyBzcmM9InRoZW1lcy9kZWZhdWx0L2ltYWdlcy9pY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZiIgYWx0PSJ2Ii8+PC9hPjwvZGl2PiAmbmJzcDsnOw0KCQkJJG51bWVyaWNfc29ydGxpbmtzWyRpXSA9ICc8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyI+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX3NvcnRSb3dzKFwnZmlsZWxpc3RfdGFibGVcJywnLiRpLicsZmFsc2UsdHJ1ZSk7Ij48aW1nIHNyYz0idGhlbWVzL2RlZmF1bHQvaW1hZ2VzL2ljb25zL3N5c3RlbS9zb3J0X3VwLmdpZiIgYWx0PSJeIi8+PC9hPjxici8+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX3NvcnRSb3dzKFwnZmlsZWxpc3RfdGFibGVcJywnLiRpLicsdHJ1ZSx0cnVlKTsiPjxpbWcgc3JjPSJ0aGVtZXMvZGVmYXVsdC9pbWFnZXMvaWNvbnMvc3lzdGVtL3NvcnRfZG93bi5naWYiIGFsdD0idiIvPjwvYT48L2Rpdj4gJm5ic3A7JzsNCgkJfWVsc2V7DQoJCQkkc29ydGxpbmtzWyRpXSA9ICcnOw0KCQkJJG51bWVyaWNfc29ydGxpbmtzWyRpXSA9ICcnOw0KCQl9DQoJCSRpKys7DQoJfQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigic29ydGxpbmtzIiwkc29ydGxpbmtzKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIm51bWVyaWNfc29ydGxpbmtzIiwkbnVtZXJpY19zb3J0bGlua3MpOw0KCQ0KCSRvYmogPSBuZXcgU3RkQ2xhc3MoKTsNCgkkb2JqLT5mb2xkZXIgPSAiIjsNCgkkb2JqLT5maWxlbmFtZSA9ICR0aGlzLT5MYW5nKCJmaWxlbmFtZSIpOw0KCSRvYmotPmV4dCA9ICR0aGlzLT5MYW5nKCJmaWxlZXh0Iik7DQoJJG9iai0+c2l6ZSA9ICR0aGlzLT5MYW5nKCJmaWxlc2l6ZSIpOw0KCSRvYmotPnBpYyA9ICIiOw0KCSRvYmotPmltYWdlc2l6ZSA9ICR0aGlzLT5MYW5nKCJpbWFnZXNpemUiKTsNCgkkb2JqLT5kZWxldGVsaW5rID0gJHRoaXMtPkxhbmcoIkFjdGlvbnMiKTsNCgkkb2JqLT5tb2RpZmllZCA9ICR0aGlzLT5MYW5nKCJsYXN0bW9kIik7DQoJJG9iai0+b3duZXIgPSAkdGhpcy0+TGFuZygiZmlsZW93bmVyIik7DQoJJG9iai0+cGVybWlzc2lvbnMgPSAkdGhpcy0+TGFuZygiZmlsZXBlcm1zIik7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJoZWFkZXJzIiwkb2JqKTsNCgkNCgkkaXRlbWxpc3QgPSBhcnJheSgpOw0KCWlmKCR1cGZvbGRlcikJJGl0ZW1saXN0W10gPSBtYWtlRGlyT2JqKCIuLiIsJGRpciwkdGhpcywkcGFyYW1zLCRjdXJkaXIsJHBhcmVudGRpciwkaWQsJHJldHVybmlkKTsNCglmb3JlYWNoKCRmb2xkZXJzIGFzICRmb2xkZXIpCSRpdGVtbGlzdFtdID0gbWFrZURpck9iaigkZm9sZGVyLCRkaXIsJHRoaXMsJHBhcmFtcywkY3VyZGlyLCRwYXJlbnRkaXIsJGlkLCRyZXR1cm5pZCk7DQoJZm9yZWFjaCgkZmlsZXMgYXMgJGZpbGVuYW1lKQkkaXRlbWxpc3RbXSA9IG1ha2VGaWxlT2JqKCRmaWxlbmFtZSwkZGlyLCR0aGlzLCRwYXJhbXMsJGN1cmRpciwkaWQsJHJldHVybmlkLCRiYXNldXJsKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1saXN0IiwkaXRlbWxpc3QpOw0KCQ0KCWVjaG8gJw0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCic7DQoJaWYoJGluc3RhbnRzZWFyY2gpCWVjaG8gJHRoaXMtPmdldEZpbGVDb250ZW50KCJpbnN0YW50c2VhcmNoLmpzIik7DQoJaWYoJGluc3RhbnRzb3J0KQllY2hvICR0aGlzLT5nZXRGaWxlQ29udGVudCgiaW5zdGFudHNvcnQuanMiKTsNCgllY2hvICcNCgk8L3NjcmlwdD4NCic7DQoNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImJyb3dzZWZpbGVzLnRwbCIpOw0KfQ0KDQplY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQp2YXIgY3RsbW1fZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCInLiRpZC4nbW9kdWxlZm9ybV8xIik7DQppZihjdGxtbV9mb3JtKQljdGxtbV9mb3JtLm9uc3VibWl0ID0gZnVuY3Rpb24oKSB7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN0bG1tX3N1Ym1pdG1lc3NhZ2UiKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsNCn0NCmZ1bmN0aW9uIGRpc3BsYXl0aHVtYihlbGUsdGh1bWJwYXRoLHdpZHRoLGhlaWdodCl7DQoJZWxlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQoJdmFyIHRoZWltZyA9IG5ldyBJbWFnZSgpOw0KCXRoZWltZy53aWR0aCA9IHdpZHRoOw0KCXRoZWltZy5oZWlnaHQgPSBoZWlnaHQ7DQoJdGhlaW1nLnNyYyA9IHRodW1icGF0aDsNCgl0aGVpbWcuc3R5bGUuY3Vyc29yID0gInBvaW50ZXIiOw0KCXRoZWltZy5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IGhpZGV0aHVtYih0aGlzKTsgfTsNCgllbGUucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGVpbWcpOw0KCXJldHVybiBmYWxzZTsNCn0NCmZ1bmN0aW9uIGhpZGV0aHVtYihlbGUsdGh1bWJwYXRoLHdpZHRoLGhlaWdodCl7DQoJdmFyIHBhcmVudCA9IGVsZS5wYXJlbnROb2RlOw0KCXBhcmVudC5yZW1vdmVDaGlsZChlbGUpOw0KCXZhciB0aGVhcyA9IHBhcmVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpOw0KCXRoZWFzW3RoZWFzLmxlbmd0aC0xXS5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7DQp9DQoNCnZhciBuYmZpbGVpbnB1dCA9IDE7DQoNCmZ1bmN0aW9uIGFkZGZpbGVpbnB1dChjb250YWluZXJpZCwgYnRuKXsNCgl2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29udGFpbmVyaWQpOw0KCWlmKCFjb250YWluZXIpIHJldHVybiBmYWxzZTsNCgluYmZpbGVpbnB1dCsrOw0KCXZhciB0bXBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7DQoJdG1waW5wdXQudHlwZSA9ICJmaWxlIjsNCgl0bXBpbnB1dC5uYW1lID0gIicuJGlkLid1cGxvYWRmaWxlIituYmZpbGVpbnB1dDsNCgl2YXIgdGhlcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsNCgl0aGVwLmFwcGVuZENoaWxkKHRtcGlucHV0KTsNCgljb250YWluZXIuYXBwZW5kQ2hpbGQodGhlcCk7DQoJaWYobmJmaWxlaW5wdXQgPT0gMTIpCWJ0bi5zdHlsZS5kaXNwbGF5ID0gZmFsc2U7DQp9DQo8L3NjcmlwdD4nOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIHdlIG5lZWQgdG8ga25vdyB3aGljaCBsZXZlbCBpcyB0aGUgZmluYWwgbGV2ZWwNCiRsZXZlbGFycmF5ID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQokZmluYWxsZXZlbCA9ICJ2aWRlbyI7DQoNCi8vIHdlIGNoZWNrIHdoYXQgbGV2ZWwgd2UncmUgd2F0Y2hpbmcuLi4gaWYgbm9uZSBpcyBzcGVjaWZpZWQsIHdlIHVzZSB0aGUgZmluYWwgbGV2ZWwNCiR3aGF0ID0gKGlzc2V0KCRwYXJhbXNbIndoYXQiXSkgJiYgaW5fYXJyYXkoJHBhcmFtc1sid2hhdCJdLCRsZXZlbGFycmF5KSk/JHBhcmFtc1sid2hhdCJdOiRmaW5hbGxldmVsOw0KLy8gd2UgZ2l2ZSBpdCBiYWNrIHRvIHRoZSBwYXJhbXMgZm9yIHByZXR0eSB1cmxzIGFuZCBwYWdlIHZpZXcNCmlmKCFpc3NldCgkcGFyYW1zWyJ3aGF0Il0pIHx8ICRwYXJhbXNbIndoYXQiXSA9PSAiIikJJHBhcmFtc1sid2hhdCJdID0gJHdoYXQ7DQokcGFyZW50bGV2ZWwgPSAkdGhpcy0+Z2V0X25leHRsZXZlbCgkd2hhdCwgZmFsc2UpOw0KDQovLyB3ZSByZXRyaWV2ZSBzb21lIG90aGVyIHBhcmFtZXRlcnMNCmlmKCR3aGF0ICE9ICRmaW5hbGxldmVsKXsNCgkkZm9yY2VsaXN0ID0gdHJ1ZTsJCS8vIEFsd2F5cyBkaXNwbGF5IGFzIGxpc3Qgd2hlbiB3ZSdyZSBub3Qgb24gdGhlIGZpbmFsIGxldmVsDQp9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbImFsaWFzIl0pKXsNCgkkZm9yY2VsaXN0ID0gZmFsc2U7CQkvLyBuZXZlciBkaXNwbGF5IGEgbGlzdCB3aGVuIHRoZSBhbGlhcyBpcyBzcGVjaWZpZWQNCn1lbHNlew0KCS8vIGRlZmF1bHQgdmFsdWUNCgkkZm9yY2VsaXN0ID0gaXNzZXQoJHBhcmFtc1siZm9yY2VsaXN0Il0pPyRwYXJhbXNbImZvcmNlbGlzdCJdOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmb3JjZV9saXN0IixmYWxzZSk7DQp9DQokb3JkZXJieSA9IGlzc2V0KCRwYXJhbXNbIm9yZGVyYnkiXSk/JHBhcmFtc1sib3JkZXJieSJdOmZhbHNlOw0KJGlubGluZSA9IChpc3NldCgkcGFyYW1zWyJpbmxpbmUiXSkgJiYgJHBhcmFtc1siaW5saW5lIl0pP3RydWU6ZmFsc2U7DQokbGltaXQgPSBpc3NldCgkcGFyYW1zWyJsaW1pdCJdKT8kcGFyYW1zWyJsaW1pdCJdOjA7DQokbGltaXQgPSAoaW50KSAkbGltaXQ7DQppZihpc3NldCgkcGFyYW1zWyJuYnBlcnBhZ2UiXSkgJiYgJHBhcmFtc1sibmJwZXJwYWdlIl0gPiAkbGltaXQpew0KCSRuYnBlcnBhZ2UgPSAoaW50KSAkcGFyYW1zWyJuYnBlcnBhZ2UiXTsNCn1lbHNlew0KCS8vIGRlZmF1bHQgcGFnaW5hdGlvbg0KCSRkZWZhdWx0X25icGVycGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR3aGF0LiJfcGFnaW5hdGlvbiIsMCk7DQoJJG5icGVycGFnZSA9ICgkZGVmYXVsdF9uYnBlcnBhZ2UgPiAkbGltaXQpPyRkZWZhdWx0X25icGVycGFnZTpmYWxzZTsNCgkkcGFyYW1zWyJuYnBlcnBhZ2UiXSA9ICRuYnBlcnBhZ2U7CS8vIGdpdmUgaXQgYmFjayBmb3IgbGlua3MNCn0NCmlmKCRuYnBlcnBhZ2UpCSRsaW1pdCA9ICgoKGlzc2V0KCRwYXJhbXNbInBhZ2VpbmRleCJdKT8kcGFyYW1zWyJwYWdlaW5kZXgiXToxKS0xKSAqICRuYnBlcnBhZ2UpLiIsIi4kbmJwZXJwYWdlOw0KDQovLyB3ZSBidWlsZCB0aGUgcXVlcnkuIEZpcnN0LCB3ZSBjaGVjayBpZiB3ZSdyZSB1c2luZyBhIHNhdmVkIHF1ZXJ5IDoNCmlmKGlzc2V0KCRwYXJhbXNbInF1ZXJ5Il0pKXsNCgkkcXVlcnlpZCA9IChpbnQpICRwYXJhbXNbInF1ZXJ5Il07DQoJaWYoJHF1ZXJ5ID0gJHRoaXMtPmdldF9xdWVyaWVzKGFycmF5KCJpZCI9PiRxdWVyeWlkKSkpew0KCQkvLyB3ZSByZXRyaWV2ZSB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhhdCB3aWxsIGRvIHRoZSBxdWVyeQ0KCQkkcXVlcnkgPSAkcXVlcnlbMF07DQoJCSR3aGF0ID0gJHF1ZXJ5LT53aGF0Ow0KCQkkZ2V0ZnVuY3Rpb24gPSAiZ2V0X2xldmVsXyIuJHdoYXQ7DQoJCSRwYXJlbnRsZXZlbCA9ICR0aGlzLT5nZXRfbmV4dGxldmVsKCR3aGF0LCBmYWxzZSk7DQoJCSR3aGVyZWNsYXVzZSA9ICRxdWVyeS0+d2hlcmVjbGF1c2U7DQoJCSR3aGVyZXZhbHVlcyA9ICRxdWVyeS0+d2hlcmV2YWx1ZXM7DQoJCSRjdXN0b21vcmRlciA9ICgkcXVlcnktPnF1ZXJ5b3JkZXIgPT0gIiI/ZmFsc2U6JHF1ZXJ5LT5xdWVyeW9yZGVyKTsNCgl9ZWxzZWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhbGxvd19zcWwiLGZhbHNlKSl7DQoJCSRnZXRmdW5jdGlvbiA9ICJnZXRfbGV2ZWxfIi4kd2hhdDsNCgkJJHBhcmVudGxldmVsID0gJHRoaXMtPmdldF9uZXh0bGV2ZWwoJHdoYXQsIGZhbHNlKTsNCgkJJHdoZXJlY2xhdXNlID0gJHBhcmFtc1sicXVlcnkiXTsgLy8gcXVlcnkgc2hvdWxkIGJlIHNhbml0aXplZC4uLg0KCQkkd2hlcmV2YWx1ZXMgPSBhcnJheSgpOw0KCQkkY3VzdG9tb3JkZXIgPSBmYWxzZTsNCgkJJGl0ZW1saXN0ID0gJHRoaXMtPiRnZXRmdW5jdGlvbihhcnJheSgpLCBmYWxzZSwgIiIsICIiLCAkb3JkZXJieSwgJGxpbWl0LCAkcXVlcnkpOw0KCX1lbHNlew0KCQkkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCJlcnJvcl93cm9uZ3F1ZXJ5Iik7DQoJCWlmKCRxdWVyeWlkICE9ICRxdWVyeSAmJiAkbXNnID0gbXlzcWxfZXJyb3IoKSkJCSRtZXNzYWdlIC49ICI8YnIvPiIuJHRoaXMtPkxhbmcoImdpdmVuZXJyb3IiKS4kbXNnOw0KCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRtZXNzYWdlKTsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCglpZighaXNzZXQoJHBhcmFtc1siYWxpYXMiXSkgJiYgJG5icGVycGFnZSl7DQoJCS8vIHdlIG5lZWQgcGFnaW5hdGlvbiAtIHNvIHdlIGZpcnN0IHJldHJpZXZlIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgZml0dGluZyB0aGUgcXVlcnkNCgkJJHRvdGFsID0gJHRoaXMtPmNvdW50c29tZXRoaW5nKCR3aGF0LCJpZCIsYXJyYXkoKSwkd2hlcmVjbGF1c2UsICR3aGVyZXZhbHVlcywgJHBhcmVudGxldmVsKTsNCgl9DQoJaWYoaXNzZXQoJHRvdGFsKSAmJiAkdG90YWwgPT0gMCl7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7CS8vIHdlIGFscmVhZHkga25vdyB0aGVyZSdzIG5vdGhpbmcgdG8gcXVlcnkNCgl9ZWxzZXsNCgkJJGl0ZW1saXN0ID0gJHRoaXMtPiRnZXRmdW5jdGlvbihhcnJheSgpLCBmYWxzZSwgIiIsICIiLCAkb3JkZXJieSwgJGxpbWl0LCAkd2hlcmVjbGF1c2UsICR3aGVyZXZhbHVlcywgJGN1c3RvbW9yZGVyKTsNCgl9DQp9ZWxzZXsNCgkvLyB3ZSdyZSBub3QgdXNpbmcgYSBzYXZlZCBxdWVyeSwgc28gd2UgcGFyc2UgdGhlIHBhcmFtZXRlcnMNCgkvLyB3ZSByZXRyaWV2ZSB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhhdCB3aWxsIGRvIHRoZSBxdWVyeQ0KCSRnZXRmdW5jdGlvbiA9ICJnZXRfbGV2ZWxfIi4kd2hhdDsNCgkvLyBUaGUgJHdoZXJlIGhvbGRzIGVsZW1lbnRzIG9mIHRoZSBXSEVSRSBjbGF1c2Ugb2YgdGhlIHF1ZXJ5LCBpbiB0aGUgZm9ybSBmaWVsZF9uYW1lPT5maWVsZF92YWx1ZQ0KCWlmKGlzc2V0KCRwYXJhbXNbImFsaWFzIl0pICYmICRwYXJhbXNbImFsaWFzIl0gIT0gIiIpIHsNCgkJJHdoZXJlID0gYXJyYXkoImFsaWFzIj0+JHBhcmFtc1siYWxpYXMiXSk7DQoJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJzaG93ZGVmYXVsdCJdKSAmJiAkcGFyYW1zWyJzaG93ZGVmYXVsdCJdKSB7DQoJCSR3aGVyZSA9IGFycmF5KCJpc2RlZmF1bHQiPT4xKTsNCgl9ZWxzZXsNCgkJJHdoZXJlID0gYXJyYXkoKTsNCgl9DQoJaWYoaXNzZXQoJHBhcmFtc1sicGFyZW50Il0pICYmICRwYXJhbXNbInBhcmVudCJdICE9ICIiKSAkd2hlcmVbInBhcmVudCJdID0gJHBhcmFtc1sicGFyZW50Il07DQoNCgkkd2hlcmVbImFjdGl2ZSJdID0gMTsNCglpZighaXNzZXQoJHBhcmFtc1siYWxpYXMiXSkgJiYgJG5icGVycGFnZSl7DQoJCS8vIHdlIG5lZWQgcGFnaW5hdGlvbiAtIHNvIHdlIGZpcnN0IHJldHJpZXZlIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgZml0dGluZyB0aGUgcXVlcnkNCgkJJHRvdGFsID0gJHRoaXMtPmNvdW50c29tZXRoaW5nKCR3aGF0LCJpZCIsJHdoZXJlLGZhbHNlLGFycmF5KCksJHBhcmVudGxldmVsKTsNCgl9DQoJaWYoaXNzZXQoJHRvdGFsKSAmJiAkdG90YWwgPT0gMCl7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7CS8vIHdlIGFscmVhZHkga25vdyB0aGVyZSdzIG5vdGhpbmcgdG8gcXVlcnkNCgl9ZWxzZXsNCgkJJGl0ZW1saXN0ID0gJHRoaXMtPiRnZXRmdW5jdGlvbigkd2hlcmUsIGZhbHNlLCAiIiwgIiIsICRvcmRlcmJ5LCAkbGltaXQpOw0KCX0NCn0NCg0KLy8gIFNUQVJUIFBST0NFU1NJTkcNCg0KaWYoY291bnQoJGl0ZW1saXN0KSA9PSAxICYmICEkZm9yY2VsaXN0KXsNCgkNCgkvLyAjIyMjIyMjIyMjIyMjIyMjIyBXRSBBUkUgRElTUExBWUlORyBBTiBJVEVNIElOIERFVEFJTCBWSUVXDQoJDQoJJGl0ZW09JGl0ZW1saXN0WzBdOw0KDQoJLy8gaWYgYSB0ZW1wbGF0ZSBoYXMgYmVlbiBzcGVjaWZpZWQsIHdlIHRyeSB0byByZXRyaWV2ZSBpdAkNCgkkdGVtcGxhdGUgPSBmYWxzZTsNCglpZihpc3NldCgkcGFyYW1zWyJmaW5hbHRlbXBsYXRlIl0pICYmICRwYXJhbXNbImZpbmFsdGVtcGxhdGUiXSAhPSAiIil7DQoJCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyJmaW5hbHRlbXBsYXRlIl0pOw0KCX0NCg0KCS8vIGlmIG5vIHRlbXBsYXRlIGhhcyBiZWVuIHNwZWNpZmllZCwgd2UgcmV0cmlldmUgdGhlIGRlZmF1bHQgZmluYWwgdGVtcGxhdGUNCglpZighJHRlbXBsYXRlIHx8ICR0ZW1wbGF0ZSA9PSAiIil7DQoJCSR0ZW1wbGF0ZW5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZmluYWx0ZW1wbGF0ZSIpOw0KCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHRlbXBsYXRlbmFtZSwgJHRoaXMtPkdldE5hbWUoKSk7DQoJfQ0KCS8vIHdlIHJldHJpZXZlIHRoZSBwYXJlbnQgdHJlZToNCgkkcGFyZW50dHJlZSA9ICR0aGlzLT5nZXRfb2JqdHJlZSggJGl0ZW0tPnBhcmVudF9pZCwgJHRoaXMtPmdldF9uZXh0bGV2ZWwoJHdoYXQsIGZhbHNlKSApOw0KCSRpdGVtLT5wYXJlbnRfb2JqZWN0ID0gJHBhcmVudHRyZWU7DQoNCgkNCgkvLyBpZiB0aGUgaXRlbSBoYXMgcGFyZW50cywgd2UgYXNzaWduIGxpbmtzIHRvIHRoYXQgcGFyZW50DQoJaWYoaXNzZXQoJGl0ZW0tPnBhcmVudF9hbGlhcykpew0KCQkkcHJldHR5dXJsID0gJHRoaXMtPkJ1aWxkUHJldHR5VXJscyhhcnJheSgicGFyZW50Ij0+JGl0ZW0tPnBhcmVudF9hbGlhcywgIndoYXQiPT4kd2hhdCksICRyZXR1cm5pZCk7DQoJCSRpdGVtLT5wYXJlbnRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdCIsICRyZXR1cm5pZCwgJGl0ZW0tPnBhcmVudF9uYW1lLCBhcnJheSgicGFyZW50Ij0+JGl0ZW0tPnBhcmVudF9hbGlhcyksICIiLCBmYWxzZSwgJGlubGluZSwgIiIsIGZhbHNlLCAkcHJldHR5dXJsKTsNCgkJJGl0ZW0tPnBhcmVudHVybCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImRlZmF1bHQiLCAkcmV0dXJuaWQsICIiLCBhcnJheSgicGFyZW50Ij0+JGl0ZW0tPnBhcmVudF9hbGlhcyksICIiLCB0cnVlLCAkaW5saW5lLCAiIiwgZmFsc2UsICRwcmV0dHl1cmwpOw0KCX0NCgkNCgkvLyB3ZSByZXRyaWV2ZSBhIGxhYmVsIGZvciBlYWNoIG9mIHRoZSBpdGVtJ3MgZmllbGQgYW5kIGFzc2lnbiBpdCB0byBzbWFydHkNCgkkbGFiZWxzID0gbmV3IFN0ZENsYXNzKCk7DQoJZm9yZWFjaCgkaXRlbSBhcyAka2V5PT4kdmFsdWUpew0KCQkkbGFiZWxzLT4ka2V5ID0gJHRoaXMtPkxhbmcoJHdoYXQuIl8iLiRrZXkpOwkJDQoJfQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigibGFiZWxzIiwgJGxhYmVscyk7DQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsZXZlbHRpdGxlIiwkdGhpcy0+TGFuZygkd2hhdC4iX3BsdXJhbCIpKTsNCg0KCWlmKCFpc3NldCgkcGFyYW1zWyJxdWVyeSJdKSAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibG9hZF9uZXh0cHJldmlvdXMiLGZhbHNlKSl7DQoJCS8vIHdlIGxvYWQgbGlua3MgdG8gbmV4dCBhbmQgcHJldmlvdXMgaXRlbXMNCgkJLy8gYXMgdGhpcyBpbXBsaWVzIHR3byBtb3JlIHF1ZXJpZXMsIGl0IG11c3QgYmUgYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyB0YWJzDQoJCSRuZXd3aGVyZSA9IGFycmF5KCJhY3RpdmUiPT4xKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1sicGFyZW50Il0pKXsNCgkJCSRuZXd3aGVyZVsicGFyZW50Il0gPSAkcGFyYW1zWyJwYXJlbnQiXTsJDQoJCX1lbHNlaWYoaXNzZXQoJGl0ZW0tPnBhcmVudF9hbGlhcykgJiYgJHRoaXMtPmdldE9yZGVyVHlwZSgkd2hhdCkpew0KCQkJJG5ld3doZXJlWyJwYXJlbnQiXSA9ICRpdGVtLT5wYXJlbnRfYWxpYXM7DQoJCX0NCgkJJG5leHRpdGVtID0gZmFsc2U7DQoJCSRuZXd3aGVyZVsiaXRlbV9vcmRlciJdID0gJGl0ZW0tPml0ZW1fb3JkZXIgKyAxOw0KCQkkbmV3cGFybXMgPSAkcGFyYW1zOw0KCQkkdG1waXRlbSA9ICR0aGlzLT4kZ2V0ZnVuY3Rpb24oJG5ld3doZXJlKTsNCgkJaWYoaXNzZXQoJHRtcGl0ZW1bMF0pKXsNCgkJCSRuZXdwYXJtc1siYWxpYXMiXSA9ICR0bXBpdGVtWzBdLT5hbGlhczsNCgkJCSRuZXh0aXRlbSA9ICR0aGlzLT5hZGRmcm9udGVuZHVybHMoJHRtcGl0ZW1bMF0sJG5ld3Bhcm1zLCRpZCwkcmV0dXJuaWQpOw0KCQl9DQoJCSRwcmV2aXRlbSA9IGZhbHNlOw0KCQlpZigkaXRlbS0+aXRlbV9vcmRlciA+IDEpew0KCQkJJG5ld3doZXJlWyJpdGVtX29yZGVyIl0gPSAkaXRlbS0+aXRlbV9vcmRlciAtIDE7DQoJCQkkdG1waXRlbSA9ICR0aGlzLT4kZ2V0ZnVuY3Rpb24oJG5ld3doZXJlKTsNCgkJCWlmKGlzc2V0KCR0bXBpdGVtWzBdKSl7DQoJCQkJJG5ld3Bhcm1zWyJhbGlhcyJdID0gJHRtcGl0ZW1bMF0tPmFsaWFzOw0KCQkJCSRwcmV2aXRlbSA9ICR0aGlzLT5hZGRmcm9udGVuZHVybHMoJHRtcGl0ZW1bMF0sJG5ld3Bhcm1zLCRpZCwkcmV0dXJuaWQpOw0KCQkJfQ0KCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigibmV4dF9pdGVtIiwkbmV4dGl0ZW0pOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInByZXZpb3VzX2l0ZW0iLCRwcmV2aXRlbSk7DQoJfQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbSIsJGl0ZW0pOw0KCQ0KCS8vIHdlIHByb2Nlc3MgdGhlIHRlbXBsYXRlDQoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsNCgkNCn1lbHNlaWYoY291bnQoJGl0ZW1saXN0KSA+IDApew0KCQ0KCS8vICMjIyMjIyMjIyMjIyMjIyMjIFdFIEFSRSBESVNQTEFZSU5HIEEgTElTVCBWSUVXDQoJJHBhcmVudG9iaiA9IGZhbHNlOw0KCS8vIGlmIHdlIGFyZSB3YXRjaGluZyBpdGVtcyBmcm9tIGEgc3BlY2lmaWMgcGFyZW50cywgd2Ugd2FudCB0byBoYXZlIHRoZSBpbmZvcm1hdGlvbnMgb2YgdGhpcyBwYXJlbnQgYXZhaWxhYmxlDQoJLy8gaW4gdGhlIHRlbXBsYXRlIChmb3IgZXhhbXBsZSwgaWYgd2Ugd2FudCB0byBkaXNwbGF5IGEgY2F0ZWdvcnkgcGFnZSwgd2UgbWlnaHQgd2FudCB0byBzaG93IHRoZSBjYXRlZ29yeSBkZXNjcmlwdGlvbikNCgkvLyBpZiBpdCBpcyB0aGUgY2FzZSwgd2UgcmV0cmlldmUgdGhlIHBhcmVudCBhbmQgZ2l2ZSBpdCB0byBzbWFydHkNCglpZihpc3NldCgkcGFyYW1zWyJwYXJlbnQiXSkgJiYgJHBhcmFtc1sicGFyZW50Il0gIT0gIiIpew0KCQkkcGFyZW50b2JqID0gJHRoaXMtPmdldF9vYmp0cmVlKCRwYXJhbXNbInBhcmVudCJdLCAkdGhpcy0+Z2V0X25leHRsZXZlbCgkd2hhdCxmYWxzZSksICJhbGlhcyIpOw0KCX0NCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhcmVudG9iaiIsJHBhcmVudG9iaik7DQoJDQoJJHNlbGVjdGVkYWxpYXMgPSBmYWxzZTsNCgkvLyB3ZSBjaGVjayBpZiB0aGUgY3VycmVudCBwYWdlIGhhcyBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIG1vZHVsZSB3aGljaCBhcmUgaW4gYWN0aW9uDQoJJGdsb2IgPSAkdGhpcy0+Z2V0X21vZHVsZUdldFZhcnMoKTsNCglpZigkd2hhdCA9PSAkZmluYWxsZXZlbCAmJiBpc3NldCgkZ2xvYlsiYWxpYXMiXSkpew0KCQkkc2VsZWN0ZWRhbGlhcyA9ICRnbG9iWyJhbGlhcyJdOw0KCX1lbHNlaWYoaXNzZXQoJGdsb2JbInBhcmVudCJdKSAmJiBpc3NldCgkZ2xvYlsid2hhdCJdKSAmJiAkZ2xvYlsid2hhdCJdID09ICR0aGlzLT5nZXRfbmV4dGxldmVsKCR3aGF0KSl7DQoJCSRzZWxlY3RlZGFsaWFzID0gJGdsb2JbInBhcmVudCJdOw0KCX0NCglpZihpc3NldCgkcGFyYW1zWyJuYnBlcnBhZ2UiXSkgJiYgaXNzZXQoJGdsb2JbInBhZ2VpbmRleCJdKSAmJiAhaXNzZXQoJHBhcmFtc1sicGFnZWluZGV4Il0pKSAkcGFyYW1zWyJwYWdlaW5kZXgiXSA9ICRnbG9iWyJwYWdlaW5kZXgiXTsNCglpZighaXNzZXQoJHRoaXMtPnBsY3VycmVudFskd2hhdF0pKQkkdGhpcy0+YnVpbGRHbG9iYWxUcmVlKCk7DQoJaWYoaXNzZXQoJHRoaXMtPnBsY3VycmVudFskd2hhdF0pKQkkc2VsZWN0ZWRhbGlhcyA9ICR0aGlzLT5wbGN1cnJlbnRbJHdoYXRdOw0KCWlmKGlzc2V0KCRwYXJhbXNbIm5icGVycGFnZSJdKSAmJiAhaXNzZXQoJHBhcmFtc1sicGFnZWluZGV4Il0pKSAkcGFyYW1zWyJwYWdlaW5kZXgiXSA9ICR0aGlzLT5jdXJyZW50cGFnZWluZGV4Ow0KCSRsaW5rcmV0dXJuaWQgPSAoaXNzZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSk/JHRoaXMtPmdldF9wYWdlaWQoJHBhcmFtc1siZGV0YWlscGFnZSJdKTokcmV0dXJuaWQ7DQoNCgkvLyB3ZSByZXRyaWV2ZSB0aGUgdGVtcGxhdGUNCglpZihpc3NldCgkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSkgJiYgJHBhcmFtc1sibGlzdHRlbXBsYXRlIl0gIT0gIiIgJiYgJGN1c3RvbXRwbCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSwgJHRoaXMtPkdldE5hbWUoKSkpew0KCQkkdGVtcGxhdGUgPSAkY3VzdG9tdHBsOw0KCX1lbHNlew0KCQkkdGVtcGxhdGVuYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxpc3R0ZW1wbGF0ZV8iLiR3aGF0KTsNCgkJJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZW5hbWUsICR0aGlzLT5HZXROYW1lKCkpOw0KCX0NCg0KCS8vIGlmIFJBTkRPTSBvcHRpb24gaXMgc2V0LCB3ZSByYW5kb21seSBzZWxlY3RlZCBvbmx5IGEgbnVtYmVyIG9mIHRoZSBpdGVtcyByZXRyaWV2ZWQNCglpZiggaXNzZXQoJHBhcmFtc1sicmFuZG9tIl0pICYmICRwYXJhbXNbInJhbmRvbSJdID4gMCAmJiAkcGFyYW1zWyJyYW5kb20iXSA8IGNvdW50KCRpdGVtbGlzdCkgKXsNCgkJJG5ld2xpc3QgPSBhcnJheSgpOw0KCQkkaSA9IDE7DQoJCSRzZWxlY3RlZCA9IGFycmF5KCk7DQoJCSRjdXJyYW5kID0gcmFuZCgwLChjb3VudCgkaXRlbWxpc3QpLTEpKTsNCgkJd2hpbGUoJGkgPD0gJHBhcmFtc1sicmFuZG9tIl0pew0KCQkJd2hpbGUoaW5fYXJyYXkoJGN1cnJhbmQsICRzZWxlY3RlZCkgJiYgY291bnQoJHNlbGVjdGVkKSA8IGNvdW50KCRpdGVtbGlzdCkpCSRjdXJyYW5kID0gcmFuZCgwLChjb3VudCgkaXRlbWxpc3QpLTEpKTsNCgkJCSRuZXdsaXN0W10gPSAkaXRlbWxpc3RbJGN1cnJhbmRdOw0KCQkJJHNlbGVjdGVkW10gPSAkY3VycmFuZDsNCgkJCSRpKys7DQoJCX0NCgkJJGl0ZW1saXN0ID0gJG5ld2xpc3Q7DQoJfQ0KCQkNCgkvLyBmaW5hbCBwcm9jZXNzaW5nIC0gd2UgY3JlYXRlIHRoZSBkZXRhaWxsaW5rcyBmb3IgZWFjaCBpdGVtDQoJJG5ld2xpc3QgPSBhcnJheSgpOw0KCWZvcmVhY2goJGl0ZW1saXN0IGFzICRpdGVtKXsNCgkJJGl0ZW0gPSAkdGhpcy0+YWRkZnJvbnRlbmR1cmxzKCRpdGVtLCRwYXJhbXMsJGlkLCRsaW5rcmV0dXJuaWQpOw0KCQkkaXRlbS0+aXNfc2VsZWN0ZWQgPSAoJGl0ZW0tPmFsaWFzID09ICRzZWxlY3RlZGFsaWFzKT90cnVlOmZhbHNlOw0KCQlhcnJheV9wdXNoKCRuZXdsaXN0LCAkaXRlbSk7DQoJfQ0KCSRpdGVtbGlzdCA9ICRuZXdsaXN0Ow0KCQ0KCSR0aGlzLT5wYWdpbmF0ZSgkd2hhdCwkdG90YWwsJGlkLCRyZXR1cm5pZCwkcGFyYW1zKTsNCgkNCgkvLyB3ZSBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5IGFuZCBwcm9jZXNzIHRoZSB0ZW1wbGF0ZQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCRpdGVtbGlzdCk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsZXZlbHRpdGxlIiwkdGhpcy0+TGFuZygkd2hhdC4iX3BsdXJhbCIpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1jb3VudCIsY291bnQoJGl0ZW1saXN0KSk7DQoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsNCgkNCn1lbHNlew0KCQ0KCS8vICMjIyMjIyMjIyMjIyMjIyMjIFdFIEFSRU4nVCBESVNQTEFZSU5HIEFOWVRISU5HIEFUIEFMTA0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiZXJyb3JfbXNnIiwoaXNzZXQoJHBhcmFtc1siYWxpYXMiXSk/JHRoaXMtPkxhbmcoImVycm9yX25vdGZvdW5kIik6JHRoaXMtPkxhbmcoImVycm9yX25vaXRlbWZvdW5kIikpKTsNCgkkcGFyZW50b2JqID0gZmFsc2U7DQoJaWYoaXNzZXQoJHBhcmFtc1sicGFyZW50Il0pICYmICRwYXJlbnRsZXZlbCl7DQoJCSR0bXBmdW5jdGlvbiA9ICJnZXRfbGV2ZWxfIi4kcGFyZW50bGV2ZWw7DQoJCSRwYXJlbnRvYmogPSAkdGhpcy0+JHRtcGZ1bmN0aW9uKGFycmF5KCJhbGlhcyI9PiRwYXJhbXNbInBhcmVudCJdKSk7DQoJCSRwYXJlbnRvYmogPSBpc3NldCgkcGFyZW50b2JqWzBdKT8kcGFyZW50b2JqWzBdOmZhbHNlOw0KCX0NCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhcmVudG9iaiIsJHBhcmVudG9iaik7DQoJDQoJJHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImVtcHR5dGVtcGxhdGUiLCIqKiIpOw0KCWlmKCR0ZW1wbGF0ZSA9PSAiKioiKXsNCgkJLy8gd2UgdXNlIHRoZSBsaXN0IHRlbXBsYXRlDQoJCWlmKGlzc2V0KCRwYXJhbXNbImxpc3R0ZW1wbGF0ZSJdKSAmJiAkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSAhPSAiIiAmJiAkY3VzdG9tdHBsID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbImxpc3R0ZW1wbGF0ZSJdLCAkdGhpcy0+R2V0TmFtZSgpKSl7DQoJCQkkdGVtcGxhdGUgPSAkY3VzdG9tdHBsOw0KCQl9ZWxzZXsNCgkJCSR0ZW1wbGF0ZW5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibGlzdHRlbXBsYXRlXyIuJHdoYXQpOw0KCQkJJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZW5hbWUsICR0aGlzLT5HZXROYW1lKCkpOw0KCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCRpdGVtbGlzdCk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigibGV2ZWx0aXRsZSIsJHRoaXMtPkxhbmcoJHdoYXQuIl9wbHVyYWwiKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWNvdW50IiwwKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKGFycmF5KCJwYWdlX3Nob3dpbmciPT5mYWxzZSwicGFnZV90b3RhbGl0ZW1zIj0+ZmFsc2UsInBhZ2VfcGFnZW51bWJlcnMiPT5mYWxzZSwicGFnZV9uZXh0Ij0+ZmFsc2UsInBhZ2VfcHJldmlvdXMiPT5mYWxzZSkpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOw0KCX1lbHNlew0KCQkvLyB3ZSB1c2UgdGhlIG5vcmVzdWx0IHRlbXBsYXRlDQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOw0KCX0NCg0KfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQokYWN0aXZlX3RhYiA9IGlzc2V0KCRwYXJhbXNbImFjdGl2ZV90YWIiXSk/JHBhcmFtc1siYWN0aXZlX3RhYiJdOiJjYXRlZ29yeSI7DQoNCiRoYXNfYWR2YW5jZWRfcGVybSA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9hZHZhbmNlZCIpOw0KDQokZmlsdGVyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRpc3BsYXlfZmlsdGVyIixmYWxzZSk7DQokaW5zdGFudHNlYXJjaCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkaXNwbGF5X2luc3RhbnRzZWFyY2giLGZhbHNlKTsNCiRpbnN0YW50c29ydCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkaXNwbGF5X2luc3RhbnRzb3J0IixmYWxzZSk7DQokYWRtaW5wYWdlcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhZG1pbnBhZ2VzIiwwKTsNCiR1c2VfaGllcmFyY2h5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInVzZV9oaWVyYXJjaHkiLGZhbHNlKTsNCiR1c2Vfc2Vzc2lvbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ1c2Vfc2Vzc2lvbiIsdHJ1ZSk7DQoNCmlmKCRpbnN0YW50c29ydCB8fCAkaW5zdGFudHNlYXJjaCl7DQoJZWNobyAnDQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KJzsNCglpZigkaW5zdGFudHNlYXJjaCkJZWNobyAkdGhpcy0+Z2V0RmlsZUNvbnRlbnQoImluc3RhbnRzZWFyY2guanMiKTsNCglpZigkaW5zdGFudHNvcnQpCWVjaG8gJHRoaXMtPmdldEZpbGVDb250ZW50KCJpbnN0YW50c29ydC5qcyIpOw0KCWVjaG8gIg0KCTwvc2NyaXB0Pg0KIjsNCn0NCg0KZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7DQoJaWYoICRoYXNfYWR2YW5jZWRfcGVybSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV9jYXRlZ29yeSIsZmFsc2UpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9tYW5hZ2VfY2F0ZWdvcnkiKSApIHsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJjYXRlZ29yeSIsICR0aGlzLT5MYW5nKCJjYXRlZ29yeV9wbHVyYWwiKSwgImNhdGVnb3J5IiA9PSAkYWN0aXZlX3RhYiA/IHRydWUgOiBmYWxzZSk7DQoJfQ0KCWlmKCAkaGFzX2FkdmFuY2VkX3Blcm0gfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoInRhYmRpc3BsYXlfYWxidW0iLGZhbHNlKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfbWFuYWdlX2FsYnVtIikgKSB7DQoJCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigiYWxidW0iLCAkdGhpcy0+TGFuZygiYWxidW1fcGx1cmFsIiksICJhbGJ1bSIgPT0gJGFjdGl2ZV90YWIgPyB0cnVlIDogZmFsc2UpOw0KCX0NCglpZiggJGhhc19hZHZhbmNlZF9wZXJtIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ0YWJkaXNwbGF5X3ZpZGVvIixmYWxzZSkgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV92aWRlbyIpICkgew0KCQllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInZpZGVvIiwgJHRoaXMtPkxhbmcoInZpZGVvX3BsdXJhbCIpLCAidmlkZW8iID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsNCgl9DQoJaWYoICRoYXNfYWR2YW5jZWRfcGVybSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV9maWVsZG9wdGlvbnMiLGZhbHNlKSApIHsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJmaWVsZG9wdGlvbnMiLCAkdGhpcy0+TGFuZygiZmllbGRvcHRpb25zIiksICJmaWVsZG9wdGlvbnMiID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsJCQ0KCX0NCglpZiggJGhhc19hZHZhbmNlZF9wZXJtIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIk1vZGlmeSBUZW1wbGF0ZXMiKSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV90ZW1wbGF0ZXMiLGZhbHNlKSApIHsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJ0ZW1wbGF0ZXMiLCAkdGhpcy0+TGFuZygidGVtcGxhdGVzIiksICJ0ZW1wbGF0ZXMiID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsJCQ0KCX0NCglpZiggJGhhc19hZHZhbmNlZF9wZXJtIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ0YWJkaXNwbGF5X3F1ZXJpZXMiLGZhbHNlKSApIHsNCgkJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJxdWVyaWVzIiwgJHRoaXMtPkxhbmcoInF1ZXJpZXMiKSwgInF1ZXJpZXMiID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsJCQ0KCX0NCglpZiggJGhhc19hZHZhbmNlZF9wZXJtICkgew0KCQllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInByZWZlcmVuY2VzIiwgJHRoaXMtPkxhbmcoInByZWZlcmVuY2VzIiksICJwcmVmZXJlbmNlcyIgPT0gJGFjdGl2ZV90YWIgPyB0cnVlIDogZmFsc2UpOwkJDQoJfQ0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQoNCg0KZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7DQoNCg0KaWYoICRoYXNfYWR2YW5jZWRfcGVybSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV9jYXRlZ29yeSIsZmFsc2UpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9tYW5hZ2VfY2F0ZWdvcnkiKSApIHsNCgllY2hvICR0aGlzLT5TdGFydFRhYigiY2F0ZWdvcnkiKTsNCg0KCQkkd2hlcmVjbGF1c2UgPSBhcnJheSgpOw0KCQkkZmlsdGVyb3V0cHV0ID0gZmFsc2U7DQoNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJmaWx0ZXIiLCAkZmlsdGVyb3V0cHV0KTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpbnN0YW50c2VhcmNoIiwgJGluc3RhbnRzZWFyY2g/JHRoaXMtPkxhbmcoInNlYXJjaHRoaXN0YWJsZSIpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgInNlYXJjaHRhYmxlX2NhdGVnb3J5IiwgIiIsIDEwLCA2NCwgJyBvbmtleXVwPSJjdGxtbV9zZWFyY2godGhpcy52YWx1ZSxcJ2NhdGVnb3J5X3RhYmxlXCcpOyInKTpmYWxzZSk7DQoJCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZGRuZXciLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0Y2F0XyIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIi4kdGhpcy0+TGFuZygiYWRkX2NhdGVnb3J5IikpKTsNCgkJJHJlb3JkZXJfYnRuID0gZmFsc2U7aWYoJGhhc19hZHZhbmNlZF9wZXJtIHx8ICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgicmVzdHJpY3RfcGVybWlzc2lvbnMiLGZhbHNlKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfbWFuYWdlX2NhdGVnb3J5IikpCSRyZW9yZGVyX2J0biA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInJlb3JkZXIiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9yZW9yZGVyLmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJyZW9yZGVyIikpOw0KCQkJDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigicmVvcmRlciIsICRyZW9yZGVyX2J0bik7DQoJCSRsaW1pdCA9IGZhbHNlOw0KCQlpZigkYWRtaW5wYWdlcyl7DQoJCQkkbGltaXQgPSAoKGlzc2V0KCRwYXJhbXNbImNhdGVnb3J5X3BhZ2UiXSk/JHBhcmFtc1siY2F0ZWdvcnlfcGFnZSJdOjApICogJGFkbWlucGFnZXMpLiIsIi4kYWRtaW5wYWdlczsNCgkJfQ0KCQkNCgkJCSRpdGVtbGlzdCA9ICR0aGlzLT5nZXRfbGV2ZWxfY2F0ZWdvcnkoaXNzZXQoJHdoZXJlY2xhdXNlKT8kd2hlcmVjbGF1c2U6YXJyYXkoKSx0cnVlLCAkaWQsICRyZXR1cm5pZCwgZmFsc2UsICRsaW1pdCk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInRhYmxlaWQiLCAiY2F0ZWdvcnlfdGFibGUiKTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCAkaXRlbWxpc3QpOw0KCQkJJGFkbWluc2hvdyA9IGFycmF5KA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJuYW1lIiksImVkaXRsaW5rIixmYWxzZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImFjdGl2ZSIpLCJ0b2dnbGVhY3RpdmUiLHRydWUpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJyZW9yZGVyIiksIm1vdmVsaW5rcyIsdHJ1ZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImNhdGVnb3J5X2Rlc2NyaXB0aW9uIiksImRlc2NyaXB0aW9uIixmYWxzZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImlzZGVmYXVsdCIpLCJ0b2dnbGVkZWZhdWx0Iix0cnVlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygiYWN0aXZlIiksInRvZ2dsZWFjdGl2ZSIsdHJ1ZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoInJlb3JkZXIiKSwibW92ZWxpbmtzIix0cnVlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygiQWN0aW9ucyIpLCJkZWxldGVsaW5rIix0cnVlKQkJDQoJCQkJKTsNCgkJCWlmKCRpbnN0YW50c29ydCAmJiBjb3VudCgkaXRlbWxpc3QpPjEpew0KCQkJCSRpID0gMDsNCgkJCQl3aGlsZSgkaTxjb3VudCgkYWRtaW5zaG93KSl7DQoJCQkJCWlmKCEkYWRtaW5zaG93WyRpXVsyXSkJJGFkbWluc2hvd1skaV1bMF0gPSAnPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9zb3J0Um93cyhcJ2NhdGVnb3J5X3RhYmxlXCcsJy4kaS4nKTsiPjxpbWcgc3JjPSJ0aGVtZXMvZGVmYXVsdC9pbWFnZXMvaWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmIiBhbHQ9Il4iLz48L2E+PGJyLz48YSBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fc29ydFJvd3MoXCdjYXRlZ29yeV90YWJsZVwnLCcuJGkuJyx0cnVlKTsiPjxpbWcgc3JjPSJ0aGVtZXMvZGVmYXVsdC9pbWFnZXMvaWNvbnMvc3lzdGVtL3NvcnRfZG93bi5naWYiIGFsdD0idiIvPjwvYT48L2Rpdj48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDogMjRweDsiPiAmbmJzcDsnLiRhZG1pbnNob3dbJGldWzBdLiI8L2Rpdj4iOw0KCQkJCQkkaSsrOw0KCQkJCX0NCgkJCX0NCgkJCWxpc3QoJHBhZ2VpbmZvLCAkbmV4dHBhZ2UsICRwcmV2aW91c3BhZ2UsICRwYWdlcykgPSAkdGhpcy0+YWRtaW5fcGFnaW5hdGUoImNhdGVnb3J5IiwkYWRtaW5wYWdlcywkaWQsJHJldHVybmlkLCRwYXJhbXMpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuZXh0cGFnZSIsICRuZXh0cGFnZSk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInByZXZpb3VzcGFnZSIsICRwcmV2aW91c3BhZ2UpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYWdlaW5mbyIsICRwYWdlaW5mbyk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhZ2VzIiwgJHBhZ2VzKTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRtaW5zaG93IiwgJGFkbWluc2hvdyk7DQoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7DQoNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KfQ0KDQppZiggJGhhc19hZHZhbmNlZF9wZXJtIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ0YWJkaXNwbGF5X2FsYnVtIixmYWxzZSkgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV9hbGJ1bSIpICkgew0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJhbGJ1bSIpOw0KDQoJaWYoJHRoaXMtPmNvdW50c29tZXRoaW5nKCJjYXRlZ29yeSIpID4gMCl7DQoNCgkJJHdoZXJlY2xhdXNlID0gYXJyYXkoKTsNCgkJJGZpbHRlcm91dHB1dCA9IGZhbHNlOw0KDQoJCQlpZigkZmlsdGVyKXsNCgkJCQkkY3VyX2ZpbHRlciA9IGZhbHNlOw0KCQkJCWlmKGlzc2V0KCRwYXJhbXNbImFsYnVtX3Nob3dvbmx5Il0pKXsNCgkJCQkJJGN1cl9maWx0ZXIgPSAkcGFyYW1zWyJhbGJ1bV9zaG93b25seSJdOw0KCQkJCQlpZigkdXNlX3Nlc3NvaW4pCSRfU0VTU0lPTlsiY3RsbW1fZmlsdGVyX2FsYnVtIl0gPSAkcGFyYW1zWyJhbGJ1bV9zaG93b25seSJdOw0KCQkJCX1lbHNlaWYoJHVzZV9zZXNzaW9uICYmIGlzc2V0KCRfU0VTU0lPTlsiY3RsbW1fZmlsdGVyX2FsYnVtIl0pICYmICRfU0VTU0lPTlsiY3RsbW1fZmlsdGVyX2FsYnVtIl0pew0KCQkJCQkkY3VyX2ZpbHRlciA9ICRfU0VTU0lPTlsiY3RsbW1fZmlsdGVyX2FsYnVtIl07DQoJCQkJfQ0KCQkJCWlmKCRjdXJfZmlsdGVyICYmICRjdXJfZmlsdGVyICE9ICIiKXsNCgkJCQkJJGZpbHRlcm9wdGlvbnMgPSBhcnJheV9mbGlwKCR0aGlzLT5nZXRfb3B0aW9ucygiY2F0ZWdvcnkiKSk7DQoJCQkJCSRmaWx0ZXJvdXRwdXQgPSBpc3NldCgkZmlsdGVyb3B0aW9uc1skcGFyYW1zWyJhbGJ1bV9zaG93b25seSJdXSk/JHRoaXMtPkxhbmcoInNob3dpbmdvbmx5IikuJGZpbHRlcm9wdGlvbnNbJHBhcmFtc1siYWxidW1fc2hvd29ubHkiXV0uIiAiOiIiOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoInNob3dhbGwiKSwgYXJyYXkoImFjdGl2ZV90YWIiID0+ICJhbGJ1bSIsICJhbGJ1bV9zaG93b25seSI9PmZhbHNlKSk7DQoJCQkJCSR3aGVyZWNsYXVzZSA9IGFycmF5KCJwYXJlbnRfaWQiPT4kcGFyYW1zWyJhbGJ1bV9zaG93b25seSJdKTsNCgkJCQl9ZWxzZXsJCQkJCQ0KCQkJCQlpZigkdXNlX2hpZXJhcmNoeSl7DQoJCQkJCQkkZmlsdGVyb3B0aW9ucyA9ICR0aGlzLT5nZXRfYWRtaW5faGllcmFyY2h5b3B0aW9ucygiYWxidW0iLHRydWUpOw0KCQkJCQl9ZWxzZXsNCgkJCQkJCSRmaWx0ZXJvcHRpb25zID0gJHRoaXMtPmdldF9vcHRpb25zKCJjYXRlZ29yeSIpOw0KCQkJCQl9DQoJCQkJCSRmaWx0ZXJvdXRwdXQgPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQoJCQkJCSRmaWx0ZXJvdXRwdXQgLj0gJHRoaXMtPkxhbmcoImZpbHRlcmJ5X2NhdGVnb3J5IikuIiA6ICI7DQoJCQkJCSRmaWx0ZXJvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAiYWxidW1fc2hvd29ubHkiLCAkZmlsdGVyb3B0aW9ucywgLTEpOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJhY3RpdmVfdGFiIiwgImFsYnVtIik7DQoJCQkJCSRmaWx0ZXJvdXRwdXQgLj0gIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSk7DQoJCQkJCSRmaWx0ZXJvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgkJCQl9DQoJCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiZmlsdGVyIiwgJGZpbHRlcm91dHB1dCk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaW5zdGFudHNlYXJjaCIsICRpbnN0YW50c2VhcmNoPyR0aGlzLT5MYW5nKCJzZWFyY2h0aGlzdGFibGUiKS4iICIuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICJzZWFyY2h0YWJsZV9hbGJ1bSIsICIiLCAxMCwgNjQsICcgb25rZXl1cD0iY3RsbW1fc2VhcmNoKHRoaXMudmFsdWUsXCdhbGJ1bV90YWJsZVwnKTsiJyk6ZmFsc2UpOw0KCQkJDQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRkbmV3IiwgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGFsYl8iLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmIiwgIiIsIiIsIiIsInN5c3RlbWljb24iKS4iICIuJHRoaXMtPkxhbmcoImFkZF9hbGJ1bSIpKSk7DQoJCSRyZW9yZGVyX2J0biA9IGZhbHNlO2lmKCRoYXNfYWR2YW5jZWRfcGVybSB8fCAhJHRoaXMtPkdldFByZWZlcmVuY2UoInJlc3RyaWN0X3Blcm1pc3Npb25zIixmYWxzZSkgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV9hbGJ1bSIpKQkkcmVvcmRlcl9idG4gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJyZW9yZGVyIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIi4kdGhpcy0+TGFuZygicmVvcmRlciIpKTsNCgkJCQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInJlb3JkZXIiLCAkcmVvcmRlcl9idG4pOw0KCQkkbGltaXQgPSBmYWxzZTsNCgkJaWYoJGFkbWlucGFnZXMpew0KCQkJJGxpbWl0ID0gKChpc3NldCgkcGFyYW1zWyJhbGJ1bV9wYWdlIl0pPyRwYXJhbXNbImFsYnVtX3BhZ2UiXTowKSAqICRhZG1pbnBhZ2VzKS4iLCIuJGFkbWlucGFnZXM7DQoJCX0NCgkJDQoJCQkkaXRlbWxpc3QgPSAkdGhpcy0+Z2V0X2xldmVsX2FsYnVtKGlzc2V0KCR3aGVyZWNsYXVzZSk/JHdoZXJlY2xhdXNlOmFycmF5KCksdHJ1ZSwgJGlkLCAkcmV0dXJuaWQsIGZhbHNlLCAkbGltaXQpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0YWJsZWlkIiwgImFsYnVtX3RhYmxlIik7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1saXN0IiwgJGl0ZW1saXN0KTsNCgkJCSRhZG1pbnNob3cgPSBhcnJheSgNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygibmFtZSIpLCJlZGl0bGluayIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJhY3RpdmUiKSwidG9nZ2xlYWN0aXZlIix0cnVlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygicmVvcmRlciIpLCJtb3ZlbGlua3MiLHRydWUpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJhbGJ1bV9kZXNjcmlwdGlvbiIpLCJkZXNjcmlwdGlvbiIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJpc2RlZmF1bHQiKSwidG9nZ2xlZGVmYXVsdCIsdHJ1ZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImFjdGl2ZSIpLCJ0b2dnbGVhY3RpdmUiLHRydWUpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJyZW9yZGVyIiksIm1vdmVsaW5rcyIsdHJ1ZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImFsYnVtX2xhbmciKSwibGFuZyIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJhbGJ1bV9kZWZhdWx0X3dpZHRoIiksImRlZmF1bHRfd2lkdGgiLGZhbHNlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygiYWxidW1fZGVmYXVsdF9oZWlnaHQiKSwiZGVmYXVsdF9oZWlnaHQiLGZhbHNlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygiQWN0aW9ucyIpLCJkZWxldGVsaW5rIix0cnVlKQkJDQoJCQkJKTsNCgkJCWlmKCRpbnN0YW50c29ydCAmJiBjb3VudCgkaXRlbWxpc3QpPjEpew0KCQkJCSRpID0gMDsNCgkJCQl3aGlsZSgkaTxjb3VudCgkYWRtaW5zaG93KSl7DQoJCQkJCWlmKCEkYWRtaW5zaG93WyRpXVsyXSkJJGFkbWluc2hvd1skaV1bMF0gPSAnPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxhIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9zb3J0Um93cyhcJ2FsYnVtX3RhYmxlXCcsJy4kaS4nKTsiPjxpbWcgc3JjPSJ0aGVtZXMvZGVmYXVsdC9pbWFnZXMvaWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmIiBhbHQ9Il4iLz48L2E+PGJyLz48YSBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fc29ydFJvd3MoXCdhbGJ1bV90YWJsZVwnLCcuJGkuJyx0cnVlKTsiPjxpbWcgc3JjPSJ0aGVtZXMvZGVmYXVsdC9pbWFnZXMvaWNvbnMvc3lzdGVtL3NvcnRfZG93bi5naWYiIGFsdD0idiIvPjwvYT48L2Rpdj48ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDogMjRweDsiPiAmbmJzcDsnLiRhZG1pbnNob3dbJGldWzBdLiI8L2Rpdj4iOw0KCQkJCQkkaSsrOw0KCQkJCX0NCgkJCX0NCgkJCWxpc3QoJHBhZ2VpbmZvLCAkbmV4dHBhZ2UsICRwcmV2aW91c3BhZ2UsICRwYWdlcykgPSAkdGhpcy0+YWRtaW5fcGFnaW5hdGUoImFsYnVtIiwkYWRtaW5wYWdlcywkaWQsJHJldHVybmlkLCRwYXJhbXMpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuZXh0cGFnZSIsICRuZXh0cGFnZSk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInByZXZpb3VzcGFnZSIsICRwcmV2aW91c3BhZ2UpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYWdlaW5mbyIsICRwYWdlaW5mbyk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhZ2VzIiwgJHBhZ2VzKTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRtaW5zaG93IiwgJGFkbWluc2hvdyk7DQoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7DQoNCgl9ZWxzZXsNCgkJZWNobyAiPHA+Ii4kdGhpcy0+TGFuZygiZXJyb3Jfbm9wYXJlbnQiKS4iPC9wPiI7DQoJfQ0KDQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoNCn0NCg0KaWYoICRoYXNfYWR2YW5jZWRfcGVybSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV92aWRlbyIsZmFsc2UpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9tYW5hZ2VfdmlkZW8iKSApIHsNCgllY2hvICR0aGlzLT5TdGFydFRhYigidmlkZW8iKTsNCg0KCWlmKCR0aGlzLT5jb3VudHNvbWV0aGluZygiYWxidW0iKSA+IDApew0KDQoJCSR3aGVyZWNsYXVzZSA9IGFycmF5KCk7DQoJCSRmaWx0ZXJvdXRwdXQgPSBmYWxzZTsNCg0KCQkJaWYoJGZpbHRlcil7DQoJCQkJJGN1cl9maWx0ZXIgPSBmYWxzZTsNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJ2aWRlb19zaG93b25seSJdKSl7DQoJCQkJCSRjdXJfZmlsdGVyID0gJHBhcmFtc1sidmlkZW9fc2hvd29ubHkiXTsNCgkJCQkJaWYoJHVzZV9zZXNzb2luKQkkX1NFU1NJT05bImN0bG1tX2ZpbHRlcl92aWRlbyJdID0gJHBhcmFtc1sidmlkZW9fc2hvd29ubHkiXTsNCgkJCQl9ZWxzZWlmKCR1c2Vfc2Vzc2lvbiAmJiBpc3NldCgkX1NFU1NJT05bImN0bG1tX2ZpbHRlcl92aWRlbyJdKSAmJiAkX1NFU1NJT05bImN0bG1tX2ZpbHRlcl92aWRlbyJdKXsNCgkJCQkJJGN1cl9maWx0ZXIgPSAkX1NFU1NJT05bImN0bG1tX2ZpbHRlcl92aWRlbyJdOw0KCQkJCX0NCgkJCQlpZigkY3VyX2ZpbHRlciAmJiAkY3VyX2ZpbHRlciAhPSAiIil7DQoJCQkJCSRmaWx0ZXJvcHRpb25zID0gYXJyYXlfZmxpcCgkdGhpcy0+Z2V0X29wdGlvbnMoImFsYnVtIikpOw0KCQkJCQkkZmlsdGVyb3V0cHV0ID0gaXNzZXQoJGZpbHRlcm9wdGlvbnNbJHBhcmFtc1sidmlkZW9fc2hvd29ubHkiXV0pPyR0aGlzLT5MYW5nKCJzaG93aW5nb25seSIpLiRmaWx0ZXJvcHRpb25zWyRwYXJhbXNbInZpZGVvX3Nob3dvbmx5Il1dLiIgIjoiIjsNCgkJCQkJJGZpbHRlcm91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCJzaG93YWxsIiksIGFycmF5KCJhY3RpdmVfdGFiIiA9PiAidmlkZW8iLCAidmlkZW9fc2hvd29ubHkiPT5mYWxzZSkpOw0KCQkJCQkkd2hlcmVjbGF1c2UgPSBhcnJheSgicGFyZW50X2lkIj0+JHBhcmFtc1sidmlkZW9fc2hvd29ubHkiXSk7DQoJCQkJfWVsc2V7CQkJCQkNCgkJCQkJaWYoJHVzZV9oaWVyYXJjaHkpew0KCQkJCQkJJGZpbHRlcm9wdGlvbnMgPSAkdGhpcy0+Z2V0X2FkbWluX2hpZXJhcmNoeW9wdGlvbnMoInZpZGVvIix0cnVlKTsNCgkJCQkJfWVsc2V7DQoJCQkJCQkkZmlsdGVyb3B0aW9ucyA9ICR0aGlzLT5nZXRfb3B0aW9ucygiYWxidW0iKTsNCgkJCQkJfQ0KCQkJCQkkZmlsdGVyb3V0cHV0ID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQpOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICR0aGlzLT5MYW5nKCJmaWx0ZXJieV9hbGJ1bSIpLiIgOiAiOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgInZpZGVvX3Nob3dvbmx5IiwgJGZpbHRlcm9wdGlvbnMsIC0xKTsNCgkJCQkJJGZpbHRlcm91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiYWN0aXZlX3RhYiIsICJ2aWRlbyIpOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpOw0KCQkJCQkkZmlsdGVyb3V0cHV0IC49ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQoJCQkJfQ0KCQkJfQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImZpbHRlciIsICRmaWx0ZXJvdXRwdXQpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImluc3RhbnRzZWFyY2giLCAkaW5zdGFudHNlYXJjaD8kdGhpcy0+TGFuZygic2VhcmNodGhpc3RhYmxlIikuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAic2VhcmNodGFibGVfdmlkZW8iLCAiIiwgMTAsIDY0LCAnIG9ua2V5dXA9ImN0bG1tX3NlYXJjaCh0aGlzLnZhbHVlLFwndmlkZW9fdGFibGVcJyk7IicpOmZhbHNlKTsNCgkJCQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkZG5ldyIsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXR2aWRfIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJhZGRfdmlkZW8iKSkpOw0KCQkkcmVvcmRlcl9idG4gPSBmYWxzZTtpZigkaGFzX2FkdmFuY2VkX3Blcm0gfHwgISR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsZmFsc2UpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9tYW5hZ2VfdmlkZW8iKSkJJHJlb3JkZXJfYnRuID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAicmVvcmRlciIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmIiwgIiIsIiIsIiIsInN5c3RlbWljb24iKS4iICIuJHRoaXMtPkxhbmcoInJlb3JkZXIiKSk7DQoJCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJyZW9yZGVyIiwgJHJlb3JkZXJfYnRuKTsNCgkJJGxpbWl0ID0gZmFsc2U7DQoJCWlmKCRhZG1pbnBhZ2VzKXsNCgkJCSRsaW1pdCA9ICgoaXNzZXQoJHBhcmFtc1sidmlkZW9fcGFnZSJdKT8kcGFyYW1zWyJ2aWRlb19wYWdlIl06MCkgKiAkYWRtaW5wYWdlcykuIiwiLiRhZG1pbnBhZ2VzOw0KCQl9DQoJCQ0KCQkJJGl0ZW1saXN0ID0gJHRoaXMtPmdldF9sZXZlbF92aWRlbyhpc3NldCgkd2hlcmVjbGF1c2UpPyR3aGVyZWNsYXVzZTphcnJheSgpLHRydWUsICRpZCwgJHJldHVybmlkLCBmYWxzZSwgJGxpbWl0KTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigidGFibGVpZCIsICJ2aWRlb190YWJsZSIpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsICRpdGVtbGlzdCk7DQoJCQkkYWRtaW5zaG93ID0gYXJyYXkoDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoIm5hbWUiKSwiZWRpdGxpbmsiLGZhbHNlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygiYWN0aXZlIiksInRvZ2dsZWFjdGl2ZSIsdHJ1ZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoImlzZGVmYXVsdCIpLCJ0b2dnbGVkZWZhdWx0Iix0cnVlKSwNCgkJCQlhcnJheSgkdGhpcy0+TGFuZygicmVvcmRlciIpLCJtb3ZlbGlua3MiLHRydWUpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb19zaXRlIiksInNpdGVfbmFtZXZhbHVlIixmYWxzZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoInZpZGVvX3ZpZGVvaWQiKSwidmlkZW9pZCIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb19kZXNjcmlwdGlvbiIpLCJkZXNjcmlwdGlvbiIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb193aWR0aCIpLCJ3aWR0aCIsZmFsc2UpLA0KCQkJCWFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb19oZWlnaHQiKSwiaGVpZ2h0IixmYWxzZSksDQoJCQkJYXJyYXkoJHRoaXMtPkxhbmcoIkFjdGlvbnMiKSwiZGVsZXRlbGluayIsdHJ1ZSkJCQ0KCQkJCSk7DQoJCQlpZigkaW5zdGFudHNvcnQgJiYgY291bnQoJGl0ZW1saXN0KT4xKXsNCgkJCQkkaSA9IDA7DQoJCQkJd2hpbGUoJGk8Y291bnQoJGFkbWluc2hvdykpew0KCQkJCQlpZighJGFkbWluc2hvd1skaV1bMl0pCSRhZG1pbnNob3dbJGldWzBdID0gJzxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7Ij48YSBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fc29ydFJvd3MoXCd2aWRlb190YWJsZVwnLCcuJGkuJyk7Ij48aW1nIHNyYz0idGhlbWVzL2RlZmF1bHQvaW1hZ2VzL2ljb25zL3N5c3RlbS9zb3J0X3VwLmdpZiIgYWx0PSJeIi8+PC9hPjxici8+PGEgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX3NvcnRSb3dzKFwndmlkZW9fdGFibGVcJywnLiRpLicsdHJ1ZSk7Ij48aW1nIHNyYz0idGhlbWVzL2RlZmF1bHQvaW1hZ2VzL2ljb25zL3N5c3RlbS9zb3J0X2Rvd24uZ2lmIiBhbHQ9InYiLz48L2E+PC9kaXY+PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6IDI0cHg7Ij4gJm5ic3A7Jy4kYWRtaW5zaG93WyRpXVswXS4iPC9kaXY+IjsNCgkJCQkJJGkrKzsNCgkJCQl9DQoJCQl9DQoJCQlsaXN0KCRwYWdlaW5mbywgJG5leHRwYWdlLCAkcHJldmlvdXNwYWdlLCAkcGFnZXMpID0gJHRoaXMtPmFkbWluX3BhZ2luYXRlKCJ2aWRlbyIsJGFkbWlucGFnZXMsJGlkLCRyZXR1cm5pZCwkcGFyYW1zKTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigibmV4dHBhZ2UiLCAkbmV4dHBhZ2UpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwcmV2aW91c3BhZ2UiLCAkcHJldmlvdXNwYWdlKTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigicGFnZWluZm8iLCAkcGFnZWluZm8pOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYWdlcyIsICRwYWdlcyk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkbWluc2hvdyIsICRhZG1pbnNob3cpOw0KCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJhZG1pbnBhbmVsLnRwbCIpOw0KDQoJfWVsc2V7DQoJCWVjaG8gIjxwPiIuJHRoaXMtPkxhbmcoImVycm9yX25vcGFyZW50IikuIjwvcD4iOw0KCX0NCg0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQp9DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKGFycmF5KCJuZXh0cGFnZSI9PmZhbHNlLCJwcmV2aW91c3BhZ2UiPT5mYWxzZSwicGFnZWluZm8iPT5mYWxzZSwicGFnZXMiPT5mYWxzZSkpOw0KDQoNCmlmKCAkaGFzX2FkdmFuY2VkX3Blcm0gfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiTW9kaWZ5IFRlbXBsYXRlcyIpIHx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ0YWJkaXNwbGF5X2ZpZWxkb3B0aW9ucyIsZmFsc2UpICkgew0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJmaWVsZG9wdGlvbnMiKTsNCg0KCWVjaG8gIjxmaWVsZHNldCBzdHlsZT1cIndpZHRoOiA2MDBweDtcIj48bGVnZW5kPjxiPih2aWRlbykgc2l0ZSA6PC9iPjwvbGVnZW5kPjx1bD4iOw0KCSRvcHRpb25zID0gJHRoaXMtPmdldF9maWVsZG9wdGlvbnMoInZpZGVvX3NpdGUiLHRydWUpOw0KCWVjaG8gJzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPic7DQoJJHJvd2NsYXNzID0gMTsNCglmb3JlYWNoKCRvcHRpb25zIGFzICRvcHRpb24pew0KCQkkbmV3cGFyYW1zID0gYXJyYXkoImZpZWxkIj0+InZpZGVvX3NpdGUiLCAib3B0aW9uaWQiPT4kb3B0aW9uLT5pZCwgImN1cnJlbnRvcmRlciI9PiRvcHRpb24tPml0ZW1fb3JkZXIpOw0KCQllY2hvICINCgkJPHRyIGNsYXNzPVwicm93Ii4kcm93Y2xhc3MuIlwiPjx0ZD4iLiRvcHRpb24tPm5hbWUuIjwvdGQ+PHRkIHdpZHRoPVwiMTIwXCI+IjsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJyZW5hbWVfb3B0aW9udmFsdWUiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9lZGl0LmdpZiIsIGxhbmcoImVkaXQiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZSgkbmV3cGFyYW1zLCBhcnJheSgib3B0aW9ubmFtZSI9PiRvcHRpb24tPm5hbWUpKSkuIiAiOw0KCQllY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImRlbGV0ZV9vcHRpb252YWx1ZSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiLGxhbmcoImRlbGV0ZSIpLCIiLCIiLCJzeXN0ZW1pY29uIiksICRuZXdwYXJhbXMsICR0aGlzLT5MYW5nKCJwcm9tcHRfZGVsZXRlb3B0aW9uIikpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgIm1vdmVfb3B0aW9udmFsdWUiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9hcnJvdy11LmdpZiIsbGFuZygidXAiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZSgkbmV3cGFyYW1zLCBhcnJheSgibW92ZSI9PiJ1cCIpKSk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAibW92ZV9vcHRpb252YWx1ZSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmIixsYW5nKCJkb3duIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXlfbWVyZ2UoJG5ld3BhcmFtcywgYXJyYXkoIm1vdmUiPT4iZG93biIpKSk7DQoJCWVjaG8gIjwvdGQ+PC90cj4iOw0KCQkkcm93Y2xhc3MgPSAkcm93Y2xhc3MgPT0gMT8yOjE7DQoJfQ0KCWVjaG8gIjwvdGFibGU+IjsNCgllY2hvICI8cD4iLiR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiYWRkX29wdGlvbnZhbHVlIik7DQoJCWVjaG8gIjxwPiIuJHRoaXMtPkxhbmcoImFkZG9wdGlvbiIpLiI6ICIuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICJvcHRpb25uYW1lIiwgIiIsIDIwLCA2NCk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImZpZWxkIiwgInZpZGVvX3NpdGUiKTsNCgkJZWNobyAiICIuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4iPC9wPiI7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCWVjaG8gIjwvcD48L2ZpZWxkc2V0Pjxici8+PGJyLz4iOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KfQ0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKGFycmF5KCJmaWx0ZXIiPT5mYWxzZSwicmVvcmRlciI9PmZhbHNlLCJpbnN0YW50c2VhcmNoIj0+ZmFsc2UsInRhYmxlaWQiPT5mYWxzZSkpOw0KDQppZiggJGhhc19hZHZhbmNlZF9wZXJtIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIk1vZGlmeSBUZW1wbGF0ZXMiKSB8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidGFiZGlzcGxheV90ZW1wbGF0ZXMiLGZhbHNlKSApIHsNCgllY2hvICR0aGlzLT5TdGFydFRhYigidGVtcGxhdGVzIik7DQoJDQogICAgZWNobyAiPGZpZWxkc2V0IHN0eWxlPVwid2lkdGg6IDYwMHB4O1wiPjxsZWdlbmQ+PGI+Ii4kdGhpcy0+TGFuZygiZGVmYXVsdHRlbXBsYXRlcyIpLiI8L2I+PC9sZWdlbmQ+IjsNCiAgICBlY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiY2hhbmdlZGVmdGVtcGxhdGVzIiwgJHJldHVybmlkKTsNCiAgICAkdGVtcGxhdGVsaXN0ID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoJHRoaXMtPkdldE5hbWUoKSk7DQogICAgJGRlZnRwbHMgPSAkdGhpcy0+Z2V0RGVmYXVsdFRlbXBsYXRlcygpOw0KICAgICR0cGxvcHRpb25zID0gYXJyYXkoKTsNCiAgICAkaXRlbWxpc3QgPSBhcnJheSgpOw0KICAgIGZvcmVhY2goJHRlbXBsYXRlbGlzdCBhcyAkb25ldHBsKXsNCgkgICAkdHBsb3B0aW9uc1skb25ldHBsXSA9ICRvbmV0cGw7DQoJICAgJHRwbCA9IG5ldyBzdGRDbGFzcygpOw0KCSAgICR0cGwtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImVkaXRUZW1wbGF0ZSIsICRyZXR1cm5pZCwgJG9uZXRwbCwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCSAgICR0cGwtPmRlbGV0ZWxpbmsgPSBpbl9hcnJheSgkb25ldHBsLCAkZGVmdHBscyk/IiI6JHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImRlbGV0ZXRwbCIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiLCAkdGhpcy0+TGFuZygiZGVsZXRlIiksICIiLCAiIiwgInN5c3RlbWljb24iKSwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCSAgIGFycmF5X3B1c2goJGl0ZW1saXN0LCAkdHBsKTsNCiAgICB9DQoNCgkgICBlY2hvICIJPGRpdiBjbGFzcz1cInBhZ2VvdmVyZmxvd1wiPg0KCQkJIDxwIGNsYXNzPVwicGFnZXRleHRcIj4iLiR0aGlzLT5MYW5nKCJkZWZ0ZW1wbGF0ZWZvciIpLiIgXCJjYXRlZ29yeVwiOjwvcD4NCgkJCSA8cCBjbGFzcz1cInBhZ2VpbnB1dFwiPiIuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJsaXN0dGVtcGxhdGVfY2F0ZWdvcnkiLCR0cGxvcHRpb25zLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfY2F0ZWdvcnkiKSkuIjwvcD4NCgkJPC9kaXY+DQogICAgIjsNCgkgICBlY2hvICIJPGRpdiBjbGFzcz1cInBhZ2VvdmVyZmxvd1wiPg0KCQkJIDxwIGNsYXNzPVwicGFnZXRleHRcIj4iLiR0aGlzLT5MYW5nKCJkZWZ0ZW1wbGF0ZWZvciIpLiIgXCJhbGJ1bVwiOjwvcD4NCgkJCSA8cCBjbGFzcz1cInBhZ2VpbnB1dFwiPiIuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJsaXN0dGVtcGxhdGVfYWxidW0iLCR0cGxvcHRpb25zLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfYWxidW0iKSkuIjwvcD4NCgkJPC9kaXY+DQogICAgIjsNCgkgICBlY2hvICIJPGRpdiBjbGFzcz1cInBhZ2VvdmVyZmxvd1wiPg0KCQkJIDxwIGNsYXNzPVwicGFnZXRleHRcIj4iLiR0aGlzLT5MYW5nKCJkZWZ0ZW1wbGF0ZWZvciIpLiIgXCJ2aWRlb1wiOjwvcD4NCgkJCSA8cCBjbGFzcz1cInBhZ2VpbnB1dFwiPiIuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJsaXN0dGVtcGxhdGVfdmlkZW8iLCR0cGxvcHRpb25zLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfdmlkZW8iKSkuIjwvcD4NCgkJPC9kaXY+DQogICAgIjsNCiAgICBlY2hvICIJPGRpdiBjbGFzcz1cInBhZ2VvdmVyZmxvd1wiPg0KCQkJIDxwIGNsYXNzPVwicGFnZXRleHRcIj4iLiR0aGlzLT5MYW5nKCJkZWZkZXRhaWx0ZW1wbGF0ZSIpLiI6PC9wPg0KCQkJIDxwIGNsYXNzPVwicGFnZWlucHV0XCI+Ii4kdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImZpbmFsdGVtcGxhdGUiLCR0cGxvcHRpb25zLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmaW5hbHRlbXBsYXRlIikpLiI8L3A+DQoJCTwvZGl2Pg0KCSI7DQogICAgZWNobyAiCTxkaXYgY2xhc3M9XCJwYWdlb3ZlcmZsb3dcIj4NCgkJCSA8cCBjbGFzcz1cInBhZ2V0ZXh0XCI+Ii4kdGhpcy0+TGFuZygiZGVmZW1iZWR0ZW1wbGF0ZSIpLiI6PC9wPg0KCQkJIDxwIGNsYXNzPVwicGFnZWlucHV0XCI+Ii4kdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImVtYmVkdGVtcGxhdGUiLCR0cGxvcHRpb25zLC0xLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlbWJlZHRlbXBsYXRlIikpLiI8L3A+DQoJCTwvZGl2Pg0KCSI7DQoJJHRwbG9wdGlvbnNbJHRoaXMtPkxhbmcoInVzZWxldmVsbGlzdHRwbCIpXSA9ICIqKiI7DQoJZWNobyAiCTxkaXYgY2xhc3M9XCJwYWdlb3ZlcmZsb3dcIj4NCgkJCSA8cCBjbGFzcz1cInBhZ2V0ZXh0XCI+Ii4kdGhpcy0+TGFuZygiZGVmc2VhcmNocmVzdWx0c3RlbXBsYXRlIikuIjo8L3A+DQoJCQkgPHAgY2xhc3M9XCJwYWdlaW5wdXRcIj4iLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwic2VhcmNocmVzdWx0c3RlbXBsYXRlIiwkdHBsb3B0aW9ucywtMSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNocmVzdWx0c3RlbXBsYXRlIiwiKioiKSkuIjwvcD4NCgkJPC9kaXY+DQoJIjsNCgllY2hvICIJPGRpdiBjbGFzcz1cInBhZ2VvdmVyZmxvd1wiPg0KCQkJIDxwIGNsYXNzPVwicGFnZXRleHRcIj4iLiR0aGlzLT5MYW5nKCJkZWZlbXB0eXRlbXBsYXRlIikuIjo8L3A+DQoJCQkgPHAgY2xhc3M9XCJwYWdlaW5wdXRcIj4iLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZW1wdHl0ZW1wbGF0ZSIsJHRwbG9wdGlvbnMsLTEsJHRoaXMtPkdldFByZWZlcmVuY2UoImVtcHR5dGVtcGxhdGUiLCIqKiIpKS4iPC9wPg0KCQk8L2Rpdj4NCiAgICA8cD4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuIjwvcD4iOw0KICAgIGVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCg0KICAgIGVjaG8gIjwvZmllbGRzZXQ+PGJyLz48YnIvPiI7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsICRpdGVtbGlzdCk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZGRuZXciLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0VGVtcGxhdGUiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmIiwgIiIsIiIsIiIsInN5c3RlbWljb24iKS4iICIuJHRoaXMtPkxhbmcoImFkZHRlbXBsYXRlIikpKTsNCiAgICAkYWRtaW5zaG93ID0gYXJyYXkoCWFycmF5KCR0aGlzLT5MYW5nKCJ0ZW1wbGF0ZSIpLCAiZWRpdGxpbmsiLCBmYWxzZSksIGFycmF5KCR0aGlzLT5MYW5nKCJBY3Rpb25zIiksICJkZWxldGVsaW5rIiwgZmFsc2UpCSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZG1pbnNob3ciLCAkYWRtaW5zaG93KTsNCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7DQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQp9DQoNCmlmKCAkaGFzX2FkdmFuY2VkX3Blcm0gfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoInRhYmRpc3BsYXlfcXVlcmllcyIsZmFsc2UpICkgew0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJxdWVyaWVzIik7DQoNCgkJJGl0ZW1saXN0ID0gJHRoaXMtPmdldF9xdWVyaWVzKCR3aGVyZT1hcnJheSgpLCB0cnVlLCAkaWQsICRyZXR1cm5pZCk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCAkaXRlbWxpc3Q/JGl0ZW1saXN0OmFycmF5KCkpOw0KCQkkYWRtaW5zaG93ID0gYXJyYXkoIGFycmF5KCJpZCIsImlkIiksDQoJCQkJCQkJYXJyYXkoJHRoaXMtPkxhbmcoIm5hbWUiKSwgIm5hbWUiKSwNCgkJCQkJCQlhcnJheSgkdGhpcy0+TGFuZygiQWN0aW9ucyIpLCAiYWN0aW9ucyIpDQoJCQkJCQkJKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZG1pbnNob3ciLCAkYWRtaW5zaG93KTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZGRuZXciLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJhZG1pbnF1ZXJ5IiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJjcmVhdGVxdWVyeSIpKSk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiYWRtaW5wYW5lbC50cGwiKTsNCgkJDQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQp9DQoNCmlmKCAkaGFzX2FkdmFuY2VkX3Blcm0gKSB7DQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoInByZWZlcmVuY2VzIik7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImNoYW5nZXByZWZlcmVuY2VzIiwgJHJldHVybmlkKTsNCgllY2hvICI8ZmllbGRzZXQgc3R5bGU9XCJ3aWR0aDogNDY1cHg7XCI+PGxlZ2VuZD48Yj4iLiR0aGlzLT5MYW5nKCJwcmVmX3RhYmRpc3BsYXkiKS4iOjwvYj48L2xlZ2VuZD48dWw+DQoJIjsNCgkkdGFiZGlzcGxheSA9IGFycmF5KCJjYXRlZ29yeSIsImFsYnVtIiwidmlkZW8iLCJmaWVsZG9wdGlvbnMiLCJ0ZW1wbGF0ZXMiLCJxdWVyaWVzIik7DQoJZm9yZWFjaCgkdGFiZGlzcGxheSBhcyAkb25lcHJlZil7DQoJCWVjaG8gIjxsaT4iLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgInRhYmRpc3BsYXlfIi4kb25lcHJlZiwgdHJ1ZSwgJHRoaXMtPkdldFByZWZlcmVuY2UoInRhYmRpc3BsYXlfIi4kb25lcHJlZixmYWxzZSkpLiR0aGlzLT5MYW5nKCRvbmVwcmVmKS4iPC9saT4NCgkiOw0KCX0NCgllY2hvICI8L3VsPjxici8+PHA+Ii4kdGhpcy0+TGFuZygiaGVscF90YWJkaXNwbGF5IikuIjwvcD4NCjwvZmllbGRzZXQ+PGJyLz4NCiI7DQoJZWNobyAiPGZpZWxkc2V0IHN0eWxlPVwid2lkdGg6IDQ2NXB4O1wiPjxsZWdlbmQ+PGI+Ii4kdGhpcy0+TGFuZygicHJlZl9zZWFyY2htb2R1bGVfaW5kZXgiKS4iOjwvYj48L2xlZ2VuZD48dWw+DQoJIjsNCglmb3JlYWNoKCR0aGlzLT5nZXRfbGV2ZWxhcnJheSgpIGFzICRvbmVwcmVmKXsNCgkJZWNobyAiPGxpPiIuJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAic2VhcmNobW9kdWxlX2luZGV4XyIuJG9uZXByZWYsIHRydWUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzZWFyY2htb2R1bGVfaW5kZXhfIi4kb25lcHJlZixmYWxzZSkpLiR0aGlzLT5MYW5nKCRvbmVwcmVmKS4iPC9saT4NCgkiOw0KCX0NCgllY2hvICI8L3VsPjxici8+PHA+Ii4kdGhpcy0+TGFuZygiaGVscF9zZWFyY2htb2R1bGVfaW5kZXgiKS4iPC9wPg0KPC9maWVsZHNldD48YnIvPg0KIjsNCgllY2hvICI8ZmllbGRzZXQgc3R5bGU9XCJ3aWR0aDogNDY1cHg7XCI+PGxlZ2VuZD48Yj4iLiR0aGlzLT5MYW5nKCJwcmVmX25ld2l0ZW1zZmlyc3QiKS4iOjwvYj48L2xlZ2VuZD48dWw+DQoJIjsNCglmb3JlYWNoKCR0aGlzLT5nZXRfbGV2ZWxhcnJheSgpIGFzICRvbmVwcmVmKXsNCgkJZWNobyAiPGxpPiIuJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAibmV3aXRlbXNmaXJzdF8iLiRvbmVwcmVmLCB0cnVlLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibmV3aXRlbXNmaXJzdF8iLiRvbmVwcmVmLGZhbHNlKSkuJHRoaXMtPkxhbmcoJG9uZXByZWYpLiI8L2xpPg0KCSI7DQoJfQ0KCWVjaG8gIjwvdWw+PGJyLz48cD4iLiR0aGlzLT5MYW5nKCJoZWxwX25ld2l0ZW1zZmlyc3QiKS4iPC9wPg0KPC9maWVsZHNldD48YnIvPg0KIjsNCg0KCWVjaG8gIjxmaWVsZHNldCBzdHlsZT1cIndpZHRoOiA0NjVweDtcIj48bGVnZW5kPjxiPiIuJHRoaXMtPkxhbmcoInByZWZfbGV2ZWxwYWdpbmF0aW9uIikuIjo8L2I+PC9sZWdlbmQ+PHVsPg0KCSI7DQoJZm9yZWFjaCgkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKSBhcyAkb25lcHJlZil7DQoJCWVjaG8gIjxsaT4iLiR0aGlzLT5MYW5nKCRvbmVwcmVmKS4iOiAiOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkb25lcHJlZi4iX3BhZ2luYXRpb24iLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkb25lcHJlZi4iX3BhZ2luYXRpb24iLDApLCAxMiwgMykuIjwvbGk+DQoJIjsNCgl9DQoJZWNobyAiPC91bD48YnIvPjxwPiIuJHRoaXMtPkxhbmcoImhlbHBfbGV2ZWxwYWdpbmF0aW9uIikuIjwvcD4NCjwvZmllbGRzZXQ+PGJyLz4NCiI7DQoNCgllY2hvICI8ZmllbGRzZXQgc3R5bGU9XCJ3aWR0aDogNjAwcHg7XCI+PGxlZ2VuZD48Yj4iLiR0aGlzLT5MYW5nKCJwcmVmZXJlbmNlcyIpLiI6PC9iPjwvbGVnZW5kPg0KCSI7DQoJJGNoZWNrYm94cHJlZnMgPSBhcnJheSgibG9hZF9uYmNoaWxkcmVuIiwibG9hZF9uZXh0cHJldmlvdXMiLCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsInVzZV9oaWVyYXJjaHkiLCJvcmRlcmJ5bmFtZSIsImRpc3BsYXlfZmlsdGVyIiwiZGlzcGxheV9pbnN0YW50c2VhcmNoIiwiZGlzcGxheV9pbnN0YW50c29ydCIsImVkaXRhYmxlX2FsaWFzZXMiLCJhdXRvaW5jcmVtZW50X2FsaWFzIiwiYWxsb3dfc3FsIiwiZm9yY2VfbGlzdCIsInNob3d0aHVtYm5haWxzIiwiZGVsZXRlX2ZpbGVzIiwiYWxsb3dfY29tcGxleF9vcmRlciIsInVzZV9zZXNzaW9uIik7DQoJZm9yZWFjaCgkY2hlY2tib3hwcmVmcyBhcyAkb25lcHJlZil7DQoJCWVjaG8gIjxwPiIuJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkb25lcHJlZiwgdHJ1ZSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJG9uZXByZWYsZmFsc2UpKS4iICIuJHRoaXMtPkxhbmcoInByZWZfIi4kb25lcHJlZikuIjwvcD4NCgkiOw0KCX0NCgllY2hvICI8cD4iLiR0aGlzLT5MYW5nKCJwcmVmX2FkbWlucGFnZXMiKS4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgImFkbWlucGFnZXMiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYWRtaW5wYWdlcyIsMCksIDEyLCAzKS4iPC9wPg0KCSI7DQoJZWNobyAiPHA+Ii4kdGhpcy0+TGFuZygicHJlZl9tYXhzaG93bnBhZ2VzIikuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICJtYXhzaG93bnBhZ2VzIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoIm1heHNob3ducGFnZXMiLDcpLCAxMiwgMikuIjwvcD4NCgkiOw0KCWVjaG8gIjwvZmllbGRzZXQ+PGJyLz48cD4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuIjwvcD4iOw0KICAgIGVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgllY2hvICI8YnIvPjxwPiIuJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2ltcG9ydC5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIjsNCgllY2hvICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImV4cG9ydCIsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoImV4cG9ydF90aXRsZSIpKS4iIHwgIi4kdGhpcy0+Q3JlYXRlTGluaygkaWQsICJpbXBvcnQiLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCJpbXBvcnRfdGl0bGUiKSkuIjwvcD4iOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KfQ0KDQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editalb_.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQppZihpc3NldCgkcGFyYW1zWyJjYW5jZWwiXSkgfHwgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsZmFsc2UpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiKSAmJiAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV9hbGJ1bSIpKSApew0KCSRuZXdwYXJhbXMgPSBhcnJheSgiYWN0aXZlX3RhYiIgPT4gImFsYnVtIik7DQoJaWYoIWlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2UiXSA9ICR0aGlzLT5MYW5nKCJlcnJvcl9kZW5pZWQiKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCn0NCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgidXNlX2hpZXJhcmNoeSIsZmFsc2UpKXsNCgkkcGFyZW50b3B0aW9ucyA9ICR0aGlzLT5nZXRfYWRtaW5faGllcmFyY2h5b3B0aW9ucygiYWxidW0iLGZhbHNlKTsNCn1lbHNlew0KCSRwYXJlbnRvcHRpb25zID0gJHRoaXMtPmdldF9vcHRpb25zKCJjYXRlZ29yeSIpOw0KfQ0KDQppZihpc3NldCgkcGFyYW1zWyJhbGJfaWQiXSkpIHsNCgkvLyBpZiB3ZSBhcmUgd29ya2luZyBvbiBhbiBpdGVtIHRoYXQgZXhpc3RzLCB3ZSBsb2FkIGl0LiBXZSBtdXN0IGRvIHRoaXMgZXZlbiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgb3RoZXJ3aXNlIHdlIHdvbid0IGhhdmUgdGhlIGZpbGUgZmllbGRzDQoJJGl0ZW1zID0gJHRoaXMtPmdldF9sZXZlbF9hbGJ1bShhcnJheSgiaWQiPT4kcGFyYW1zWyJhbGJfaWQiXSkpOw0KCSRpdGVtID0gJGl0ZW1zWzBdOw0KfQ0KDQovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOg0KLy8gKHdlIG11c3QgZGV0ZWN0IGFsbCBraW5kcyBvZiBzdWJtaXQgYnV0dG9ucywgaW5jbHVkaW5nIGZpbGVzLCBzaW5jZSBpbmZvcm1hdGlvbiBtdXN0IGJlIHNhdmVkIGJlZm9yZSB3ZSBnbyB0byBmaWxlIHN1Ym1pc3Npb24pDQppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IA0KCWlzc2V0KCRwYXJhbXNbImFwcGx5Il0pIA0KCSkNCnsNCglkZWJ1Z19idWZmZXIoIkVkaXQgRm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQiLl9fTElORV9fKTsNCg0KCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTIChhbmQgZXNjYXBpbmcgaXQsIGlmIG5lZWRlZCkNCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCWlmKGlzc2V0KCRwYXJhbXNbImFsYl9pdGVtX29yZGVyIl0pKSAkaXRlbS0+aXRlbV9vcmRlciA9ICRwYXJhbXNbImFsYl9pdGVtX29yZGVyIl07DQoJJGl0ZW0tPmRlc2NyaXB0aW9uID0gJHBhcmFtc1siYWxiX2Rlc2NyaXB0aW9uIl07DQoJCSRpdGVtLT5sYW5nID0gJHBhcmFtc1siYWxiX2xhbmciXTsNCgkJJGl0ZW0tPmRlZmF1bHRfd2lkdGggPSAkcGFyYW1zWyJhbGJfZGVmYXVsdF93aWR0aCJdOw0KCQkkaXRlbS0+ZGVmYXVsdF9oZWlnaHQgPSAkcGFyYW1zWyJhbGJfZGVmYXVsdF9oZWlnaHQiXTsNCgkJJGl0ZW0tPnBhcmVudCA9ICRwYXJhbXNbImFsYl9wYXJlbnQiXTsNCgkJJGl0ZW0tPm5hbWUgPSAkcGFyYW1zWyJhbGJfbmFtZSJdOw0KCQkNCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZWRpdGFibGVfYWxpYXNlcyIsZmFsc2UpKXsNCgkJaWYoaXNzZXQoJHBhcmFtc1siYWxiX2FsaWFzIl0pKXsNCgkJCSR0bXBhbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKHRyaW0oJHBhcmFtc1siYWxiX2FsaWFzIl0pKTsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0bXBhbGlhcyA9PSAiIj8kdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk6JHRtcGFsaWFzOw0KCQl9ZWxzZXsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKCRpdGVtLT5uYW1lKTsNCgkJfQ0KCX1lbHNlew0KCQkkaXRlbS0+YWxpYXMgPSAkdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk7DQoJfQ0KCQ0KCSRhdXRvaW5jcmVtZW50YWxpYXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2luY3JlbWVudF9hbGlhcyIsZmFsc2UpOw0KDQoJLy8gQ0hFQ0sgSUYgVEhFIE5FRURFRCBWQUxVRVMgQVJFIFRIRVJFDQoJaWYoCSFpc3NldCgkcGFyYW1zWyJhbGJfbGFuZyJdKSB8fCAkcGFyYW1zWyJhbGJfbGFuZyJdID09ICIiDQoJCSB8fCAhaXNzZXQoJHBhcmFtc1siYWxiX2RlZmF1bHRfd2lkdGgiXSkgfHwgJHBhcmFtc1siYWxiX2RlZmF1bHRfd2lkdGgiXSA9PSAiIg0KCQkgfHwgIWlzc2V0KCRwYXJhbXNbImFsYl9kZWZhdWx0X2hlaWdodCJdKSB8fCAkcGFyYW1zWyJhbGJfZGVmYXVsdF9oZWlnaHQiXSA9PSAiIg0KCQkgfHwgIWlzc2V0KCRwYXJhbXNbImFsYl9uYW1lIl0pIHx8ICRwYXJhbXNbImFsYl9uYW1lIl0gPT0gIiINCgkJICkNCgl7DQoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoImVycm9yX21pc3NnaW52YWx1ZSIpKTsNCgl9ZWxzZWlmKCEkYXV0b2luY3JlbWVudGFsaWFzICYmIGZhbHNlID09ICR0aGlzLT5jaGVja2FsaWFzKCJtb2R1bGVfSFZBX2FsYnVtIiwgJGl0ZW0tPmFsaWFzLCBpc3NldCgkcGFyYW1zWyJhbGJfaWQiXSk/JHBhcmFtc1siYWxiX2lkIl06ZmFsc2UpKXsNCgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygiZXJyb3JfYWxyZWFkeWV4aXN0cyIpKTsNCgl9ZWxzZXsNCgkJIyMjIyMjIyMjIyMjIERPSU5HIFRIRSBVUERBVEUNCg0KCQlpZigkYXV0b2luY3JlbWVudGFsaWFzKXsNCgkJCSRiYXNlYWxpYXMgPSAkaXRlbS0+YWxpYXM7DQoJCQkkdG1wYWxpYXMgPSAkaXRlbS0+YWxpYXM7DQoJCQkkaSA9IDE7DQoJCQl3aGlsZSghJHRoaXMtPmNoZWNrYWxpYXMoIm1vZHVsZV9IVkFfYWxidW0iLCAkdG1wYWxpYXMsIGlzc2V0KCRwYXJhbXNbImFsYl9pZCJdKT8kcGFyYW1zWyJhbGJfaWQiXTpmYWxzZSkpew0KCQkJCSR0bXBhbGlhcyA9ICRiYXNlYWxpYXMuIl8iLiRpOw0KCQkJCSRpKys7DQoJCQl9DQoJCQkkaXRlbS0+YWxpYXMgPSAkdG1wYWxpYXM7DQoJCX0NCg0KCQkvLyBGSUVMRFMgVE8gVVBEQVRFDQoJCSRxdWVyeSA9IChpc3NldCgkaXRlbS0+aWQpPyJVUERBVEUgIjoiSU5TRVJUIElOVE8gIikuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIFNFVCANCgkJCWRlc2NyaXB0aW9uPT8sDQoJCQlsYW5nPT8sDQoJCQlkZWZhdWx0X3dpZHRoPT8sDQoJCQlkZWZhdWx0X2hlaWdodD0/LA0KCQkJcGFyZW50PT8sDQoJCQluYW1lPT8sDQoJCWFsaWFzPT8sDQoJCWRhdGVfbW9kaWZpZWQ9PywNCgkJYWN0aXZlPSIuKGlzc2V0KCRpdGVtLT5hY3RpdmUpPyRpdGVtLT5hY3RpdmU6MSkuIiwNCgkJaXNkZWZhdWx0PSIuKGlzc2V0KCRpdGVtLT5pc2RlZmF1bHQpPyRpdGVtLT5pc2RlZmF1bHQ6MCkuIiI7DQoJCQkNCgkJLy8gVkFMVUVTDQoJCSR2YWx1ZXMgPSBhcnJheShhZGRzbGFzaGVzKCRpdGVtLT5kZXNjcmlwdGlvbiksDQoJCQlhZGRzbGFzaGVzKCRpdGVtLT5sYW5nKSwNCgkJCSRpdGVtLT5kZWZhdWx0X3dpZHRoLA0KCQkJJGl0ZW0tPmRlZmF1bHRfaGVpZ2h0LA0KCQkJJGl0ZW0tPnBhcmVudCwNCgkJCWFkZHNsYXNoZXMoJGl0ZW0tPm5hbWUpLCRpdGVtLT5hbGlhcyxzdHJfcmVwbGFjZSgiJyIsIiIsJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSk7DQoNCgkJaWYoaXNzZXQoJGl0ZW0tPmlkKSl7DQoJCQkkZXZlbnQgPSAiSFZBX21vZGlmaWVkIjsNCgkJCSRxdWVyeSAuPSAiIFdIRVJFIGlkPT87IjsNCgkJCWFycmF5X3B1c2goJHZhbHVlcywkaXRlbS0+aWQpOw0KCQl9ZWxzZXsNCgkJCS8vIE5FVyBJVEVNDQoJCQkkcXVlcnkgLj0gIiwgZGF0ZV9jcmVhdGVkPT8iOw0KCQkJJHZhbHVlc1tdID0gc3RyX3JlcGxhY2UoIiciLCIiLCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSk7DQoJCQkkZXZlbnQgPSAiSFZBX2FkZGVkIjsNCgkJCS8vIGdldCBhIG5ldyBpZCBmcm9tIHRoZSBzZXF1ZW5jZSB0YWJsZQ0KCQkJJGl0ZW0tPmlkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW1fc2VxIik7DQoJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgibmV3aXRlbXNmaXJzdF9hbGJ1bSIsZmFsc2UpKXsNCgkJCQkvLyBuZXcgaXRlbXMgZ2V0IHRvIHRoZSB0b3AgLSBzbyB3ZSBtdXN0IHB1dCBhbGwgb3RoZXIgaXRlbXMgZG93biBmcm9tIG9uZSBzdGVwLCBhbmQgdGhlbiBzZXQgdGhpcyBpdGVtJ3Mgb3JkZXIgdG8gMQ0KCQkJCSRxdWVyeTIgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIHBhcmVudD0/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5MiwgYXJyYXkoJGl0ZW0tPnBhcmVudCkpOw0KCQkJCSRxdWVyeSAuPSAiLGl0ZW1fb3JkZXI9MSwgaWQ9Ii4kaXRlbS0+aWQ7DQoJCQl9ZWxzZXsNCgkJCQkvLyBuZXcgaXRlbXMgZ2V0IHRvIHRoZSBib3R0b20gLSBzbyB3ZSBtdXN0IHNldCB0aGUgaXRlbV9vcmRlciB0byB0aGUgbnVtYmVyIG9mIGl0ZW1zICsgMQ0KCQkJCSRpdGVtX29yZGVyID0gJHRoaXMtPmNvdW50c29tZXRoaW5nKCJhbGJ1bSIsImlkIixhcnJheSgicGFyZW50Ij0+JGl0ZW0tPnBhcmVudCkpICsgMTsNCgkJCQkkcXVlcnkgLj0gIixpdGVtX29yZGVyPSIuJGl0ZW1fb3JkZXIuIiwgaWQ9Ii4kaXRlbS0+aWQ7DQoJCQl9DQoJCX0NCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHZhbHVlcyk7DQoNCglpZihpc3NldCgkcGFyYW1zWyJvbGRwYXJlbnQiXSkgJiYgJHBhcmFtc1sib2xkcGFyZW50Il0gIT0gJGl0ZW0tPnBhcmVudCl7DQoJCS8vIHRoZSBpdGVtIGlzIGNoYW5naW5nIHBhcmVudCwgYW5kIHdlJ3JlIG9yZGVyaW5nIGJ5IHBhcmVudHMNCgkJDQoJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJuZXdpdGVtc2ZpcnN0X2FsYnVtIixmYWxzZSkpew0KCQkJLy8gbmV3IGl0ZW1zIGdldCB0byB0aGUgdG9wDQoJCQkNCgkJCS8vIFVQREFURSBUSEUgT1JERVIgT0YgVEhFIElURU1TIFdJVEggVEhFIE9MRCBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW0gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8gQU5EIHBhcmVudD0/IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtLT5pdGVtX29yZGVyLCAkcGFyYW1zWyJvbGRwYXJlbnQiXSkpOw0KCQkJLy8gR0VUIE5FVyBJVEVNIE9SREVSDQoJCQkkaXRlbS0+aXRlbV9vcmRlciA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygiYWxidW0iLCJpZCIsYXJyYXkoInBhcmVudCI9PiRpdGVtLT5wYXJlbnQpKSArIDE7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIFNFVCBpdGVtX29yZGVyPT8gV0hFUkUgaWQ9PyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbS0+aXRlbV9vcmRlciwgJGl0ZW0tPmlkKSk7DQoNCgkJfWVsc2V7DQoNCgkJCS8vIFVQREFURSBUSEUgT1JERVIgT0YgVEhFIElURU1TIFdJVEggVEhFIE9MRCBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW0gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8gQU5EIHBhcmVudD0/IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtLT5pdGVtX29yZGVyLCAkcGFyYW1zWyJvbGRwYXJlbnQiXSkpOw0KCQkJLy8gVVBEQVRFIE5FVyBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW0gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkgV0hFUkUgcGFyZW50PT8iOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW0tPnBhcmVudCkpOw0KCQkJLy8gR0VUIE5FVyBJVEVNIE9SREVSDQoJCQkkaXRlbS0+aXRlbV9vcmRlciA9IDE7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIFNFVCBpdGVtX29yZGVyPT8gV0hFUkUgaWQ9PyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbS0+aXRlbV9vcmRlciwgJGl0ZW0tPmlkKSk7DQoJCQ0KCQl9DQoJfQ0KDQoJCSRyZWRpcmVjdCA9IHRydWU7DQoJCS8vaWYobXlzcWxfYWZmZWN0ZWRfcm93cygpKXsJLy8gbXlzcWwtb25seQ0KCQlpZigkZGItPkFmZmVjdGVkX1Jvd3MoKSl7DQoJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNobW9kdWxlX2luZGV4X2FsYnVtIixmYWxzZSkpew0KCQkJCS8vIElGIEFOWVRISU5HIFdBUyBNT0RJRklFRCwgV0UgTVVTVCBVUERBVEUgVEhFIFNFQVJDSCBJTkRFWCBBTkQgU0VORCBBTiBFVkVOVC4uLg0KCQkJCWlmKGlzc2V0KCRldmVudCkpCSR0aGlzLT5TZW5kRXZlbnQoJGV2ZW50LCBhcnJheSgid2hhdCI9PiJhbGJ1bSIsICJpdGVtaWQiID0+ICRpdGVtLT5pZCwgImFsaWFzIj0+JGl0ZW0tPmFsaWFzKSk7DQoJCQkJZGVidWdfYnVmZmVyKCJTRUFSSEMgSU5ERVggV0FTIFVQREFURUQgIi5fX0xJTkVfXyk7DQoJCQkJJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoIlNlYXJjaCIpOw0KCQkJCWlmKCRtb2R1bGUpIHsNCgkJCQkJJHRleHQgPSAiJGl0ZW0tPmRlc2NyaXB0aW9uICRpdGVtLT5uYW1lIjsNCgkJCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGl0ZW0tPmlkLCAiYWxidW0iLCAkdGV4dCwgTlVMTCk7DQoJCQkJfQ0KCQkJfQ0KCQl9ZWxzZWlmKG15c3FsX2Vycm9yKCkpew0KCQkJLy8gZG8gbm90IHJlZGlyZWN0IDoNCgkJCSRyZWRpcmVjdCA9IGZhbHNlOw0KCQkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhteXNxbF9lcnJvcigpKTsNCgkJfQ0KDQoJCS8vIFJFRElSRUNUSU5HLi4uDQoJCQlpZigkcmVkaXJlY3QgPT0gZmFsc2Upew0KCQkJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJhcHBseSJdKSl7DQoJCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7DQoJCQl9ZWxzZXsNCgkJCQkkcGFyYW1zID0gYXJyYXkoIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpLCAiYWN0aXZlX3RhYiI9PiJhbGJ1bSIpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkNCgkJCX0NCgl9DQoJLy8gRU5EIE9GIEZPUk0gU1VCTUlTU0lPTg0KfQ0KDQoNCg0KLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUw0KQ3JlYXRlSW5wdXRUZXh0IDogKGlkLG5hbWUsdmFsdWUsc2l6ZSxtYXhsZW5ndGgpDQpDcmVhdGVUZXh0QXJlYSA6ICh3eXNpd3lnLGlkLHRleHQsbmFtZSkNCkNyZWF0ZUlucHV0U2VsZWN0TGlzdCA6IChpZCxuYW1lLGl0ZW1zLHNlbGVjdGVkaXRlbXMsc2l6ZSkNCkNyZWF0ZUlucHV0RHJvcGRvd24gOiAoaWQsbmFtZSxpdGVtcyxzaW5kZXgsc3ZhbHVlKQ0KKi8NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJkZXNjcmlwdGlvbl9sYWJlbCIsICR0aGlzLT5MYW5nKCJhbGJ1bV9kZXNjcmlwdGlvbiIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVzY3JpcHRpb25faW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiYWxiX2Rlc2NyaXB0aW9uIixpc3NldCgkaXRlbSk/JGl0ZW0tPmRlc2NyaXB0aW9uOiIiLDUwLDI1NSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsYW5nX2xhYmVsIiwgJHRoaXMtPkxhbmcoImFsYnVtX2xhbmciKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImxhbmdfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiYWxiX2xhbmciLGlzc2V0KCRpdGVtKT8kaXRlbS0+bGFuZzoiIiwzMCwxMCkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJkZWZhdWx0X3dpZHRoX2xhYmVsIiwgJHRoaXMtPkxhbmcoImFsYnVtX2RlZmF1bHRfd2lkdGgiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImRlZmF1bHRfd2lkdGhfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiYWxiX2RlZmF1bHRfd2lkdGgiLGlzc2V0KCRpdGVtKT8kaXRlbS0+ZGVmYXVsdF93aWR0aDoiIiwzMCwxMCkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJkZWZhdWx0X2hlaWdodF9sYWJlbCIsICR0aGlzLT5MYW5nKCJhbGJ1bV9kZWZhdWx0X2hlaWdodCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVmYXVsdF9oZWlnaHRfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiYWxiX2RlZmF1bHRfaGVpZ2h0Iixpc3NldCgkaXRlbSk/JGl0ZW0tPmRlZmF1bHRfaGVpZ2h0OiIiLDMwLDEwKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oIm5hbWVfbGFiZWwiLCAkdGhpcy0+TGFuZygibmFtZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigibmFtZV9pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJhbGJfbmFtZSIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5uYW1lOiIiLDUwLDY0KSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhcmVudF9sYWJlbCIsICR0aGlzLT5MYW5nKCJjYXRlZ29yeSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigicGFyZW50X2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJhbGJfcGFyZW50IiwkcGFyZW50b3B0aW9ucywtMSxpc3NldCgkaXRlbSk/JGl0ZW0tPnBhcmVudDowKSk7aWYoaXNzZXQoJGl0ZW0pKSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAib2xkcGFyZW50IiwgJGl0ZW0tPnBhcmVudCk7DQppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZWRpdGFibGVfYWxpYXNlcyIsZmFsc2UpKXsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFsaWFzX2xhYmVsIiwgJHRoaXMtPkxhbmcoImFsaWFzIikpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWxpYXNfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiYWxiX2FsaWFzIixpc3NldCgkaXRlbSk/JGl0ZW0tPmFsaWFzOiIiLDUwLDY0KSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtYWxpYXMiLGZhbHNlKTsNCn1lbHNlew0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWFsaWFzIixpc3NldCgkaXRlbS0+YWxpYXMpPyIoYWxpYXMgOiAiLiRpdGVtLT5hbGlhcy4iKSI6ZmFsc2UpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWxpYXNfaW5wdXQiLCBmYWxzZSk7DQp9DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZWRpdHRpdGxlIiwgJHRoaXMtPkxhbmcoImVkaXRfYWxidW0iKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigic3VibWl0IiwgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImFwcGx5IiwgKGlzc2V0KCRpdGVtKSAmJiBpc3NldCgkaXRlbS0+aWQpKT8kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiYXBwbHkiLCBsYW5nKCJhcHBseSIpKToiIik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImNhbmNlbCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkpOw0KDQoNCi8vIERJU1BMQVlJTkcNCmlmKGlzc2V0KCRpdGVtKSAmJiBpc3NldCgkaXRlbS0+aWQpKXsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRhbGJfIiwgJHJldHVybmlkKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJlZGl0YWxiXy50cGwiKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiYWxiX2lkIiwgJGl0ZW0tPmlkKTsNCgkJaWYoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5wYXJlbnQpKSBlY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJvbGRwYXJlbnQiLCAkaXRlbS0+cGFyZW50KTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiYWxiX2l0ZW1fb3JkZXIiLCAkaXRlbS0+aXRlbV9vcmRlcik7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgkNCg0KfWVsc2V7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRhbGJfIiwgJHJldHVybmlkKTsNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImVkaXRhbGJfLnRwbCIpOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/action.editcat_.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQppZihpc3NldCgkcGFyYW1zWyJjYW5jZWwiXSkgfHwgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsZmFsc2UpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiKSAmJiAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV9jYXRlZ29yeSIpKSApew0KCSRuZXdwYXJhbXMgPSBhcnJheSgiYWN0aXZlX3RhYiIgPT4gImNhdGVnb3J5Iik7DQoJaWYoIWlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2UiXSA9ICR0aGlzLT5MYW5nKCJlcnJvcl9kZW5pZWQiKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCn0NCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQoNCmlmKGlzc2V0KCRwYXJhbXNbImNhdF9pZCJdKSkgew0KCS8vIGlmIHdlIGFyZSB3b3JraW5nIG9uIGFuIGl0ZW0gdGhhdCBleGlzdHMsIHdlIGxvYWQgaXQuIFdlIG11c3QgZG8gdGhpcyBldmVuIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCBvdGhlcndpc2Ugd2Ugd29uJ3QgaGF2ZSB0aGUgZmlsZSBmaWVsZHMNCgkkaXRlbXMgPSAkdGhpcy0+Z2V0X2xldmVsX2NhdGVnb3J5KGFycmF5KCJpZCI9PiRwYXJhbXNbImNhdF9pZCJdKSk7DQoJJGl0ZW0gPSAkaXRlbXNbMF07DQp9DQoNCi8vIENIRUNLIElGIFRIRSBGT1JNIElTIEJFSU5HIFNVQk1JVFRFRCA6DQovLyAod2UgbXVzdCBkZXRlY3QgYWxsIGtpbmRzIG9mIHN1Ym1pdCBidXR0b25zLCBpbmNsdWRpbmcgZmlsZXMsIHNpbmNlIGluZm9ybWF0aW9uIG11c3QgYmUgc2F2ZWQgYmVmb3JlIHdlIGdvIHRvIGZpbGUgc3VibWlzc2lvbikNCmlmIChpc3NldCgkcGFyYW1zWyJzdWJtaXQiXSkgfHwgDQoJaXNzZXQoJHBhcmFtc1siYXBwbHkiXSkgDQoJKQ0Kew0KCWRlYnVnX2J1ZmZlcigiRWRpdCBGb3JtIGhhcyBiZWVuIHN1Ym1pdHRlZCIuX19MSU5FX18pOw0KDQoJLy8gUkVUUklFVklORyBUSEUgRk9STSBWQUxVRVMgKGFuZCBlc2NhcGluZyBpdCwgaWYgbmVlZGVkKQ0KCWlmKCFpc3NldCgkaXRlbSkpICRpdGVtID0gbmV3IHN0ZENsYXNzKCk7DQoJaWYoaXNzZXQoJHBhcmFtc1siY2F0X2l0ZW1fb3JkZXIiXSkpICRpdGVtLT5pdGVtX29yZGVyID0gJHBhcmFtc1siY2F0X2l0ZW1fb3JkZXIiXTsNCgkkaXRlbS0+ZGVzY3JpcHRpb24gPSAkcGFyYW1zWyJjYXRfZGVzY3JpcHRpb24iXTsNCgkJJGl0ZW0tPm5hbWUgPSAkcGFyYW1zWyJjYXRfbmFtZSJdOw0KCQkNCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZWRpdGFibGVfYWxpYXNlcyIsZmFsc2UpKXsNCgkJaWYoaXNzZXQoJHBhcmFtc1siY2F0X2FsaWFzIl0pKXsNCgkJCSR0bXBhbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKHRyaW0oJHBhcmFtc1siY2F0X2FsaWFzIl0pKTsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0bXBhbGlhcyA9PSAiIj8kdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk6JHRtcGFsaWFzOw0KCQl9ZWxzZXsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKCRpdGVtLT5uYW1lKTsNCgkJfQ0KCX1lbHNlew0KCQkkaXRlbS0+YWxpYXMgPSAkdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk7DQoJfQ0KCQ0KCSRhdXRvaW5jcmVtZW50YWxpYXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2luY3JlbWVudF9hbGlhcyIsZmFsc2UpOw0KDQoJLy8gQ0hFQ0sgSUYgVEhFIE5FRURFRCBWQUxVRVMgQVJFIFRIRVJFDQoJaWYoCSFpc3NldCgkcGFyYW1zWyJjYXRfbmFtZSJdKSB8fCAkcGFyYW1zWyJjYXRfbmFtZSJdID09ICIiDQoJCSApDQoJew0KCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCJlcnJvcl9taXNzZ2ludmFsdWUiKSk7DQoJfWVsc2VpZighJGF1dG9pbmNyZW1lbnRhbGlhcyAmJiBmYWxzZSA9PSAkdGhpcy0+Y2hlY2thbGlhcygibW9kdWxlX0hWQV9jYXRlZ29yeSIsICRpdGVtLT5hbGlhcywgaXNzZXQoJHBhcmFtc1siY2F0X2lkIl0pPyRwYXJhbXNbImNhdF9pZCJdOmZhbHNlKSl7DQoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoImVycm9yX2FscmVhZHlleGlzdHMiKSk7DQoJfWVsc2V7DQoJCSMjIyMjIyMjIyMjIyBET0lORyBUSEUgVVBEQVRFDQoNCgkJaWYoJGF1dG9pbmNyZW1lbnRhbGlhcyl7DQoJCQkkYmFzZWFsaWFzID0gJGl0ZW0tPmFsaWFzOw0KCQkJJHRtcGFsaWFzID0gJGl0ZW0tPmFsaWFzOw0KCQkJJGkgPSAxOw0KCQkJd2hpbGUoISR0aGlzLT5jaGVja2FsaWFzKCJtb2R1bGVfSFZBX2NhdGVnb3J5IiwgJHRtcGFsaWFzLCBpc3NldCgkcGFyYW1zWyJjYXRfaWQiXSk/JHBhcmFtc1siY2F0X2lkIl06ZmFsc2UpKXsNCgkJCQkkdG1wYWxpYXMgPSAkYmFzZWFsaWFzLiJfIi4kaTsNCgkJCQkkaSsrOw0KCQkJfQ0KCQkJJGl0ZW0tPmFsaWFzID0gJHRtcGFsaWFzOw0KCQl9DQoNCgkJLy8gRklFTERTIFRPIFVQREFURQ0KCQkkcXVlcnkgPSAoaXNzZXQoJGl0ZW0tPmlkKT8iVVBEQVRFICI6IklOU0VSVCBJTlRPICIpLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9jYXRlZ29yeSBTRVQgDQoJCQlkZXNjcmlwdGlvbj0/LA0KCQkJbmFtZT0/LA0KCQlhbGlhcz0/LA0KCQlkYXRlX21vZGlmaWVkPT8sDQoJCWFjdGl2ZT0iLihpc3NldCgkaXRlbS0+YWN0aXZlKT8kaXRlbS0+YWN0aXZlOjEpLiIsDQoJCWlzZGVmYXVsdD0iLihpc3NldCgkaXRlbS0+aXNkZWZhdWx0KT8kaXRlbS0+aXNkZWZhdWx0OjApLiIiOw0KCQkJDQoJCS8vIFZBTFVFUw0KCQkkdmFsdWVzID0gYXJyYXkoYWRkc2xhc2hlcygkaXRlbS0+ZGVzY3JpcHRpb24pLA0KCQkJYWRkc2xhc2hlcygkaXRlbS0+bmFtZSksJGl0ZW0tPmFsaWFzLHN0cl9yZXBsYWNlKCInIiwiIiwkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpKTsNCg0KCQlpZihpc3NldCgkaXRlbS0+aWQpKXsNCgkJCSRldmVudCA9ICJIVkFfbW9kaWZpZWQiOw0KCQkJJHF1ZXJ5IC49ICIgV0hFUkUgaWQ9PzsiOw0KCQkJYXJyYXlfcHVzaCgkdmFsdWVzLCRpdGVtLT5pZCk7DQoJCX1lbHNlew0KCQkJLy8gTkVXIElURU0NCgkJCSRxdWVyeSAuPSAiLCBkYXRlX2NyZWF0ZWQ9PyI7DQoJCQkkdmFsdWVzW10gPSBzdHJfcmVwbGFjZSgiJyIsIiIsJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKTsNCgkJCSRldmVudCA9ICJIVkFfYWRkZWQiOw0KCQkJLy8gZ2V0IGEgbmV3IGlkIGZyb20gdGhlIHNlcXVlbmNlIHRhYmxlDQoJCQkkaXRlbS0+aWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9jYXRlZ29yeV9zZXEiKTsNCgkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJuZXdpdGVtc2ZpcnN0X2NhdGVnb3J5IixmYWxzZSkpew0KCQkJCS8vIG5ldyBpdGVtcyBnZXQgdG8gdGhlIHRvcCAtIHNvIHdlIG11c3QgcHV0IGFsbCBvdGhlciBpdGVtcyBkb3duIGZyb20gb25lIHN0ZXAsIGFuZCB0aGVuIHNldCB0aGlzIGl0ZW0ncyBvcmRlciB0byAxDQoJCQkJJHF1ZXJ5MiA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfY2F0ZWdvcnkgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkiOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnkyKTsNCgkJCQkkcXVlcnkgLj0gIixpdGVtX29yZGVyPTEsIGlkPSIuJGl0ZW0tPmlkOw0KCQkJfWVsc2V7DQoJCQkJLy8gbmV3IGl0ZW1zIGdldCB0byB0aGUgYm90dG9tIC0gc28gd2UgbXVzdCBzZXQgdGhlIGl0ZW1fb3JkZXIgdG8gdGhlIG51bWJlciBvZiBpdGVtcyArIDENCgkJCQkkaXRlbV9vcmRlciA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygiY2F0ZWdvcnkiKSArIDE7DQoJCQkJJHF1ZXJ5IC49ICIsaXRlbV9vcmRlcj0iLiRpdGVtX29yZGVyLiIsIGlkPSIuJGl0ZW0tPmlkOw0KCQkJfQ0KCQl9DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWx1ZXMpOw0KDQoJCSRyZWRpcmVjdCA9IHRydWU7DQoJCS8vaWYobXlzcWxfYWZmZWN0ZWRfcm93cygpKXsJLy8gbXlzcWwtb25seQ0KCQlpZigkZGItPkFmZmVjdGVkX1Jvd3MoKSl7DQoJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNobW9kdWxlX2luZGV4X2NhdGVnb3J5IixmYWxzZSkpew0KCQkJCS8vIElGIEFOWVRISU5HIFdBUyBNT0RJRklFRCwgV0UgTVVTVCBVUERBVEUgVEhFIFNFQVJDSCBJTkRFWCBBTkQgU0VORCBBTiBFVkVOVC4uLg0KCQkJCWlmKGlzc2V0KCRldmVudCkpCSR0aGlzLT5TZW5kRXZlbnQoJGV2ZW50LCBhcnJheSgid2hhdCI9PiJjYXRlZ29yeSIsICJpdGVtaWQiID0+ICRpdGVtLT5pZCwgImFsaWFzIj0+JGl0ZW0tPmFsaWFzKSk7DQoJCQkJZGVidWdfYnVmZmVyKCJTRUFSSEMgSU5ERVggV0FTIFVQREFURUQgIi5fX0xJTkVfXyk7DQoJCQkJJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoIlNlYXJjaCIpOw0KCQkJCWlmKCRtb2R1bGUpIHsNCgkJCQkJJHRleHQgPSAiJGl0ZW0tPmRlc2NyaXB0aW9uICRpdGVtLT5uYW1lIjsNCgkJCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGl0ZW0tPmlkLCAiY2F0ZWdvcnkiLCAkdGV4dCwgTlVMTCk7DQoJCQkJfQ0KCQkJfQ0KCQl9ZWxzZWlmKG15c3FsX2Vycm9yKCkpew0KCQkJLy8gZG8gbm90IHJlZGlyZWN0IDoNCgkJCSRyZWRpcmVjdCA9IGZhbHNlOw0KCQkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhteXNxbF9lcnJvcigpKTsNCgkJfQ0KDQoJCS8vIFJFRElSRUNUSU5HLi4uDQoJCQlpZigkcmVkaXJlY3QgPT0gZmFsc2Upew0KCQkJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJhcHBseSJdKSl7DQoJCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7DQoJCQl9ZWxzZXsNCgkJCQkkcGFyYW1zID0gYXJyYXkoIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpLCAiYWN0aXZlX3RhYiI9PiJjYXRlZ29yeSIpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkNCgkJCX0NCgl9DQoJLy8gRU5EIE9GIEZPUk0gU1VCTUlTU0lPTg0KfQ0KDQoNCg0KLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUw0KQ3JlYXRlSW5wdXRUZXh0IDogKGlkLG5hbWUsdmFsdWUsc2l6ZSxtYXhsZW5ndGgpDQpDcmVhdGVUZXh0QXJlYSA6ICh3eXNpd3lnLGlkLHRleHQsbmFtZSkNCkNyZWF0ZUlucHV0U2VsZWN0TGlzdCA6IChpZCxuYW1lLGl0ZW1zLHNlbGVjdGVkaXRlbXMsc2l6ZSkNCkNyZWF0ZUlucHV0RHJvcGRvd24gOiAoaWQsbmFtZSxpdGVtcyxzaW5kZXgsc3ZhbHVlKQ0KKi8NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJkZXNjcmlwdGlvbl9sYWJlbCIsICR0aGlzLT5MYW5nKCJjYXRlZ29yeV9kZXNjcmlwdGlvbiIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVzY3JpcHRpb25faW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiY2F0X2Rlc2NyaXB0aW9uIixpc3NldCgkaXRlbSk/JGl0ZW0tPmRlc2NyaXB0aW9uOiIiLDUwLDI1NSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoIm5hbWUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oIm5hbWVfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiY2F0X25hbWUiLGlzc2V0KCRpdGVtKT8kaXRlbS0+bmFtZToiIiw1MCw2NCkpOw0KaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoImVkaXRhYmxlX2FsaWFzZXMiLGZhbHNlKSl7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhbGlhc19sYWJlbCIsICR0aGlzLT5MYW5nKCJhbGlhcyIpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFsaWFzX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImNhdF9hbGlhcyIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5hbGlhczoiIiw1MCw2NCkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWFsaWFzIixmYWxzZSk7DQp9ZWxzZXsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1hbGlhcyIsaXNzZXQoJGl0ZW0tPmFsaWFzKT8iKGFsaWFzIDogIi4kaXRlbS0+YWxpYXMuIikiOmZhbHNlKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFsaWFzX2lucHV0IiwgZmFsc2UpOw0KfQ0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImVkaXR0aXRsZSIsICR0aGlzLT5MYW5nKCJlZGl0X2NhdGVnb3J5IikpOw0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oInN1Ym1pdCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhcHBseSIsIChpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPmlkKSk/JHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSk6IiIpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJjYW5jZWwiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiY2FuY2VsIiwgbGFuZygiY2FuY2VsIikpKTsNCg0KDQovLyBESVNQTEFZSU5HDQppZihpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPmlkKSl7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0Y2F0XyIsICRyZXR1cm5pZCk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiZWRpdGNhdF8udHBsIik7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImNhdF9pZCIsICRpdGVtLT5pZCk7DQoJCWlmKGlzc2V0KCRpdGVtKSAmJiBpc3NldCgkaXRlbS0+cGFyZW50KSkgZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAib2xkcGFyZW50IiwgJGl0ZW0tPnBhcmVudCk7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImNhdF9pdGVtX29yZGVyIiwgJGl0ZW0tPml0ZW1fb3JkZXIpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQoJDQoNCn1lbHNlew0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0Y2F0XyIsICRyZXR1cm5pZCk7DQoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJlZGl0Y2F0Xy50cGwiKTsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.editTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsNCg0KJHRwbGNvbnRlbnQgPSAnJzsNCmlmKCAoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSApICYmIGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgKXsNCglpZigkcGFyYW1zWyd0cGxuYW1lJ10gIT0gJycpew0KCQlpZihpc3NldCgkcGFyYW1zWydpc25ldyddKSkJJHBhcmFtc1sndHBsbmFtZSddID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0cGxuYW1lJ10sIGZhbHNlKTsNCgkJJHRwbGNvbnRlbnQgPSAkcGFyYW1zWyd0cGxjb250ZW50J107DQoJCWlmKCR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0cGxuYW1lJ10sJHBhcmFtc1sndHBsY29udGVudCddLCR0aGlzLT5HZXROYW1lKCkpKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKXsNCgkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCJtb2R1bGVfbWVzc2FnZSIgPT4gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSwgJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsNCgkJfWVsc2V7DQoJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsNCgkJfQ0KCX1lbHNlew0KCQllY2hvICc8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NnaW52YWx1ZScpLic8L2Rpdj4nOw0KCX0NCn1lbHNlaWYoIGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgKXsNCgkkdHBsY29udGVudCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSggJHBhcmFtc1sndHBsbmFtZSddLCAkdGhpcy0+R2V0TmFtZSgpICk7DQp9DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigidGVtcGxhdGUiLCAkdGhpcy0+TGFuZygidGVtcGxhdGUiKSwgdHJ1ZSk7DQoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJoZWxwdGFiIiwgJHRoaXMtPkxhbmcoInRlbXBsYXRldmFycyIpLCBmYWxzZSk7CQkNCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsNCg0KZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7DQoNCgllY2hvICR0aGlzLT5TdGFydFRhYigidGVtcGxhdGUiKTsNCgkJZWNobyAnPGgxPicuJHRoaXMtPkxhbmcoImVkaXR0ZW1wbGF0ZSIpLic8L2gxPic7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0VGVtcGxhdGUiLCAkcmV0dXJuaWQpOw0KCQkvL2VjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkuJzwvcD48YnIvPjxici8+JzsNCgkJZWNobyAnCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCduYW1lJykuJyA6PC9wPg0KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPic7DQoJCWlmKGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgJiYgJHBhcmFtc1sndHBsbmFtZSddICE9ICcnKXsNCgkJICAgIGVjaG8gJHBhcmFtc1sndHBsbmFtZSddLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJ0cGxuYW1lIiwgJHBhcmFtc1sndHBsbmFtZSddKTsNCgkJfWVsc2V7DQoJCSAgICBlY2hvICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd0cGxuYW1lJywnJywzMCw2NCk7DQoJCX0NCgkJZWNobyAnPC9wPg0KCQkgICAgPC9kaXY+DQoJCSc7DQoJCWVjaG8gJwk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygndGVtcGxhdGUnKS4nIDo8L3A+DQoJCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCR0cGxjb250ZW50LCd0cGxjb250ZW50JykuJzwvcD4NCgkJICAgIDwvZGl2Pg0KCQknOw0KCQllY2hvICc8cD4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJhcHBseSIsIGxhbmcoImFwcGx5IikpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiY2FuY2VsIiwgbGFuZygiY2FuY2VsIikpLic8L3A+JzsNCgkJaWYoIWlzc2V0KCRwYXJhbXNbInRwbG5hbWUiXSkgfHwgJHBhcmFtc1sidHBsbmFtZSJdID09ICcnKQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJpc25ldyIsICJ5ZXMiKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCWVjaG8gJHRoaXMtPkVuZFRhYigpOw0KDQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoImhlbHB0YWIiKTsNCgkJZWNobyAnPGRpdiBpZD0idGVtcGxhdGVoZWxwIj4nLiR0aGlzLT5MYW5nKCd0ZW1wbGF0ZWhlbHAnKS4nPC9kaXY+JzsNCgkJZWNobyAnDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJZnVuY3Rpb24gY3RsbW1fZGlzcGxheXRvZ2dsZShlbGUpew0KCQlpZighZWxlIHx8ICFlbGUucGFyZW50Tm9kZSkJcmV0dXJuIGZhbHNlOw0KCQl2YXIgdGhlZGl2ID0gZWxlLnBhcmVudE5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpWzBdOw0KCQlpZighdGhlZGl2KQlyZXR1cm4gZmFsc2U7DQoJCWlmKHRoZWRpdi5zdHlsZS5kaXNwbGF5ID09ICJub25lIil7DQoJCQl0aGVkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7DQoJCQllbGUuaW5uZXJIVE1MID0gIlYiICsgZWxlLmlubmVySFRNTC5zdWJzdHIoNCk7DQoJCX1lbHNlew0KCQkJdGhlZGl2LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQoJCQllbGUuaW5uZXJIVE1MID0gIiZndDsiICsgZWxlLmlubmVySFRNTC5zdWJzdHIoMSk7DQoJCX0NCgl9DQoJdmFyIHRoZWRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVtcGxhdGVoZWxwIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpOw0KCWZvcihpPTA7aTx0aGVkaXZzLmxlbmd0aDtpKyspew0KCQlpZih0aGVkaXZzW2ldLmNsYXNzTmFtZSA9PSAidHBsdmFyc19oaWRlIikJdGhlZGl2c1tpXS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCX0NCjwvc2NyaXB0Pg0KJzsNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.editvid_.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQppZihpc3NldCgkcGFyYW1zWyJjYW5jZWwiXSkgfHwgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsZmFsc2UpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiKSAmJiAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV92aWRlbyIpKSApew0KCSRuZXdwYXJhbXMgPSBhcnJheSgiYWN0aXZlX3RhYiIgPT4gInZpZGVvIik7DQoJaWYoIWlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2UiXSA9ICR0aGlzLT5MYW5nKCJlcnJvcl9kZW5pZWQiKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCn0NCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgidXNlX2hpZXJhcmNoeSIsZmFsc2UpKXsNCgkkcGFyZW50b3B0aW9ucyA9ICR0aGlzLT5nZXRfYWRtaW5faGllcmFyY2h5b3B0aW9ucygidmlkZW8iLGZhbHNlKTsNCn1lbHNlew0KCSRwYXJlbnRvcHRpb25zID0gJHRoaXMtPmdldF9vcHRpb25zKCJhbGJ1bSIpOw0KfQ0KJHNpdGVvcHRpb25zID0gJHRoaXMtPmdldF9maWVsZG9wdGlvbnMoInZpZGVvX3NpdGUiKTsNCg0KDQppZihpc3NldCgkcGFyYW1zWyJ2aWRfaWQiXSkpIHsNCgkvLyBpZiB3ZSBhcmUgd29ya2luZyBvbiBhbiBpdGVtIHRoYXQgZXhpc3RzLCB3ZSBsb2FkIGl0LiBXZSBtdXN0IGRvIHRoaXMgZXZlbiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgb3RoZXJ3aXNlIHdlIHdvbid0IGhhdmUgdGhlIGZpbGUgZmllbGRzDQoJJGl0ZW1zID0gJHRoaXMtPmdldF9sZXZlbF92aWRlbyhhcnJheSgiaWQiPT4kcGFyYW1zWyJ2aWRfaWQiXSkpOw0KCSRpdGVtID0gJGl0ZW1zWzBdOw0KfQ0KDQovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOg0KLy8gKHdlIG11c3QgZGV0ZWN0IGFsbCBraW5kcyBvZiBzdWJtaXQgYnV0dG9ucywgaW5jbHVkaW5nIGZpbGVzLCBzaW5jZSBpbmZvcm1hdGlvbiBtdXN0IGJlIHNhdmVkIGJlZm9yZSB3ZSBnbyB0byBmaWxlIHN1Ym1pc3Npb24pDQppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IA0KCWlzc2V0KCRwYXJhbXNbImFwcGx5Il0pIA0KCSkNCnsNCglkZWJ1Z19idWZmZXIoIkVkaXQgRm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQiLl9fTElORV9fKTsNCg0KCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTIChhbmQgZXNjYXBpbmcgaXQsIGlmIG5lZWRlZCkNCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCWlmKGlzc2V0KCRwYXJhbXNbInZpZF9pdGVtX29yZGVyIl0pKSAkaXRlbS0+aXRlbV9vcmRlciA9ICRwYXJhbXNbInZpZF9pdGVtX29yZGVyIl07DQoJJGl0ZW0tPmRlc2NyaXB0aW9uID0gJHBhcmFtc1sidmlkX2Rlc2NyaXB0aW9uIl07DQoJCSRpdGVtLT5zaXRlID0gJHBhcmFtc1sidmlkX3NpdGUiXTsNCgkJJGl0ZW0tPnZpZGVvaWQgPSAkcGFyYW1zWyJ2aWRfdmlkZW9pZCJdOw0KCQkkaXRlbS0+d2lkdGggPSAkcGFyYW1zWyJ2aWRfd2lkdGgiXTsNCgkJJGl0ZW0tPmhlaWdodCA9ICRwYXJhbXNbInZpZF9oZWlnaHQiXTsNCgkJJGl0ZW0tPnBhcmVudCA9ICRwYXJhbXNbInZpZF9wYXJlbnQiXTsNCgkJJGl0ZW0tPm5hbWUgPSAkcGFyYW1zWyJ2aWRfbmFtZSJdOw0KCQkNCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZWRpdGFibGVfYWxpYXNlcyIsZmFsc2UpKXsNCgkJaWYoaXNzZXQoJHBhcmFtc1sidmlkX2FsaWFzIl0pKXsNCgkJCSR0bXBhbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKHRyaW0oJHBhcmFtc1sidmlkX2FsaWFzIl0pKTsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0bXBhbGlhcyA9PSAiIj8kdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk6JHRtcGFsaWFzOw0KCQl9ZWxzZXsNCgkJCSRpdGVtLT5hbGlhcyA9ICR0aGlzLT5wbGNyZWF0ZWFsaWFzKCRpdGVtLT5uYW1lKTsNCgkJfQ0KCX1lbHNlew0KCQkkaXRlbS0+YWxpYXMgPSAkdGhpcy0+cGxjcmVhdGVhbGlhcygkaXRlbS0+bmFtZSk7DQoJfQ0KCQ0KCSRhdXRvaW5jcmVtZW50YWxpYXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2luY3JlbWVudF9hbGlhcyIsZmFsc2UpOw0KDQoJLy8gQ0hFQ0sgSUYgVEhFIE5FRURFRCBWQUxVRVMgQVJFIFRIRVJFDQoJaWYoCSFpc3NldCgkcGFyYW1zWyJ2aWRfc2l0ZSJdKSB8fCAkcGFyYW1zWyJ2aWRfc2l0ZSJdID09ICIiDQoJCSB8fCAhaXNzZXQoJHBhcmFtc1sidmlkX3ZpZGVvaWQiXSkgfHwgJHBhcmFtc1sidmlkX3ZpZGVvaWQiXSA9PSAiIg0KCQkgfHwgIWlzc2V0KCRwYXJhbXNbInZpZF9uYW1lIl0pIHx8ICRwYXJhbXNbInZpZF9uYW1lIl0gPT0gIiINCgkJICkNCgl7DQoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoImVycm9yX21pc3NnaW52YWx1ZSIpKTsNCgl9ZWxzZWlmKCEkYXV0b2luY3JlbWVudGFsaWFzICYmIGZhbHNlID09ICR0aGlzLT5jaGVja2FsaWFzKCJtb2R1bGVfSFZBX3ZpZGVvIiwgJGl0ZW0tPmFsaWFzLCBpc3NldCgkcGFyYW1zWyJ2aWRfaWQiXSk/JHBhcmFtc1sidmlkX2lkIl06ZmFsc2UpKXsNCgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygiZXJyb3JfYWxyZWFkeWV4aXN0cyIpKTsNCgl9ZWxzZXsNCgkJIyMjIyMjIyMjIyMjIERPSU5HIFRIRSBVUERBVEUNCg0KCQlpZigkYXV0b2luY3JlbWVudGFsaWFzKXsNCgkJCSRiYXNlYWxpYXMgPSAkaXRlbS0+YWxpYXM7DQoJCQkkdG1wYWxpYXMgPSAkaXRlbS0+YWxpYXM7DQoJCQkkaSA9IDE7DQoJCQl3aGlsZSghJHRoaXMtPmNoZWNrYWxpYXMoIm1vZHVsZV9IVkFfdmlkZW8iLCAkdG1wYWxpYXMsIGlzc2V0KCRwYXJhbXNbInZpZF9pZCJdKT8kcGFyYW1zWyJ2aWRfaWQiXTpmYWxzZSkpew0KCQkJCSR0bXBhbGlhcyA9ICRiYXNlYWxpYXMuIl8iLiRpOw0KCQkJCSRpKys7DQoJCQl9DQoJCQkkaXRlbS0+YWxpYXMgPSAkdG1wYWxpYXM7DQoJCX0NCg0KCQkvLyBGSUVMRFMgVE8gVVBEQVRFDQoJCSRxdWVyeSA9IChpc3NldCgkaXRlbS0+aWQpPyJVUERBVEUgIjoiSU5TRVJUIElOVE8gIikuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3ZpZGVvIFNFVCANCgkJCWRlc2NyaXB0aW9uPT8sDQoJCQlzaXRlPT8sDQoJCQl2aWRlb2lkPT8sDQoJCQl3aWR0aD0/LA0KCQkJaGVpZ2h0PT8sDQoJCQlwYXJlbnQ9PywNCgkJCW5hbWU9PywNCgkJYWxpYXM9PywNCgkJZGF0ZV9tb2RpZmllZD0/LA0KCQlhY3RpdmU9Ii4oaXNzZXQoJGl0ZW0tPmFjdGl2ZSk/JGl0ZW0tPmFjdGl2ZToxKS4iLA0KCQlpc2RlZmF1bHQ9Ii4oaXNzZXQoJGl0ZW0tPmlzZGVmYXVsdCk/JGl0ZW0tPmlzZGVmYXVsdDowKS4iIjsNCgkJCQ0KCQkvLyBWQUxVRVMNCgkJJHZhbHVlcyA9IGFycmF5KGFkZHNsYXNoZXMoJGl0ZW0tPmRlc2NyaXB0aW9uKSwNCgkJCSRpdGVtLT5zaXRlLA0KCQkJYWRkc2xhc2hlcygkaXRlbS0+dmlkZW9pZCksDQoJCQkkaXRlbS0+d2lkdGgsDQoJCQkkaXRlbS0+aGVpZ2h0LA0KCQkJJGl0ZW0tPnBhcmVudCwNCgkJCWFkZHNsYXNoZXMoJGl0ZW0tPm5hbWUpLCRpdGVtLT5hbGlhcyxzdHJfcmVwbGFjZSgiJyIsIiIsJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSk7DQoNCgkJaWYoaXNzZXQoJGl0ZW0tPmlkKSl7DQoJCQkkZXZlbnQgPSAiSFZBX21vZGlmaWVkIjsNCgkJCSRxdWVyeSAuPSAiIFdIRVJFIGlkPT87IjsNCgkJCWFycmF5X3B1c2goJHZhbHVlcywkaXRlbS0+aWQpOw0KCQl9ZWxzZXsNCgkJCS8vIE5FVyBJVEVNDQoJCQkkcXVlcnkgLj0gIiwgZGF0ZV9jcmVhdGVkPT8iOw0KCQkJJHZhbHVlc1tdID0gc3RyX3JlcGxhY2UoIiciLCIiLCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSk7DQoJCQkkZXZlbnQgPSAiSFZBX2FkZGVkIjsNCgkJCS8vIGdldCBhIG5ldyBpZCBmcm9tIHRoZSBzZXF1ZW5jZSB0YWJsZQ0KCQkJJGl0ZW0tPmlkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfdmlkZW9fc2VxIik7DQoJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgibmV3aXRlbXNmaXJzdF92aWRlbyIsZmFsc2UpKXsNCgkJCQkvLyBuZXcgaXRlbXMgZ2V0IHRvIHRoZSB0b3AgLSBzbyB3ZSBtdXN0IHB1dCBhbGwgb3RoZXIgaXRlbXMgZG93biBmcm9tIG9uZSBzdGVwLCBhbmQgdGhlbiBzZXQgdGhpcyBpdGVtJ3Mgb3JkZXIgdG8gMQ0KCQkJCSRxdWVyeTIgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3ZpZGVvIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIHBhcmVudD0/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5MiwgYXJyYXkoJGl0ZW0tPnBhcmVudCkpOw0KCQkJCSRxdWVyeSAuPSAiLGl0ZW1fb3JkZXI9MSwgaWQ9Ii4kaXRlbS0+aWQ7DQoJCQl9ZWxzZXsNCgkJCQkvLyBuZXcgaXRlbXMgZ2V0IHRvIHRoZSBib3R0b20gLSBzbyB3ZSBtdXN0IHNldCB0aGUgaXRlbV9vcmRlciB0byB0aGUgbnVtYmVyIG9mIGl0ZW1zICsgMQ0KCQkJCSRpdGVtX29yZGVyID0gJHRoaXMtPmNvdW50c29tZXRoaW5nKCJ2aWRlbyIsImlkIixhcnJheSgicGFyZW50Ij0+JGl0ZW0tPnBhcmVudCkpICsgMTsNCgkJCQkkcXVlcnkgLj0gIixpdGVtX29yZGVyPSIuJGl0ZW1fb3JkZXIuIiwgaWQ9Ii4kaXRlbS0+aWQ7DQoJCQl9DQoJCX0NCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHZhbHVlcyk7DQoNCglpZihpc3NldCgkcGFyYW1zWyJvbGRwYXJlbnQiXSkgJiYgJHBhcmFtc1sib2xkcGFyZW50Il0gIT0gJGl0ZW0tPnBhcmVudCl7DQoJCS8vIHRoZSBpdGVtIGlzIGNoYW5naW5nIHBhcmVudCwgYW5kIHdlJ3JlIG9yZGVyaW5nIGJ5IHBhcmVudHMNCgkJDQoJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJuZXdpdGVtc2ZpcnN0X3ZpZGVvIixmYWxzZSkpew0KCQkJLy8gbmV3IGl0ZW1zIGdldCB0byB0aGUgdG9wDQoJCQkNCgkJCS8vIFVQREFURSBUSEUgT1JERVIgT0YgVEhFIElURU1TIFdJVEggVEhFIE9MRCBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfdmlkZW8gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8gQU5EIHBhcmVudD0/IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtLT5pdGVtX29yZGVyLCAkcGFyYW1zWyJvbGRwYXJlbnQiXSkpOw0KCQkJLy8gR0VUIE5FVyBJVEVNIE9SREVSDQoJCQkkaXRlbS0+aXRlbV9vcmRlciA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygidmlkZW8iLCJpZCIsYXJyYXkoInBhcmVudCI9PiRpdGVtLT5wYXJlbnQpKSArIDE7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3ZpZGVvIFNFVCBpdGVtX29yZGVyPT8gV0hFUkUgaWQ9PyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbS0+aXRlbV9vcmRlciwgJGl0ZW0tPmlkKSk7DQoNCgkJfWVsc2V7DQoNCgkJCS8vIFVQREFURSBUSEUgT1JERVIgT0YgVEhFIElURU1TIFdJVEggVEhFIE9MRCBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfdmlkZW8gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8gQU5EIHBhcmVudD0/IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtLT5pdGVtX29yZGVyLCAkcGFyYW1zWyJvbGRwYXJlbnQiXSkpOw0KCQkJLy8gVVBEQVRFIE5FVyBQQVJFTlQNCgkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfdmlkZW8gU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkgV0hFUkUgcGFyZW50PT8iOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW0tPnBhcmVudCkpOw0KCQkJLy8gR0VUIE5FVyBJVEVNIE9SREVSDQoJCQkkaXRlbS0+aXRlbV9vcmRlciA9IDE7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3ZpZGVvIFNFVCBpdGVtX29yZGVyPT8gV0hFUkUgaWQ9PyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbS0+aXRlbV9vcmRlciwgJGl0ZW0tPmlkKSk7DQoJCQ0KCQl9DQoJfQ0KDQoJCSRyZWRpcmVjdCA9IHRydWU7DQoJCS8vaWYobXlzcWxfYWZmZWN0ZWRfcm93cygpKXsJLy8gbXlzcWwtb25seQ0KCQlpZigkZGItPkFmZmVjdGVkX1Jvd3MoKSl7DQoJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNobW9kdWxlX2luZGV4X3ZpZGVvIixmYWxzZSkpew0KCQkJCS8vIElGIEFOWVRISU5HIFdBUyBNT0RJRklFRCwgV0UgTVVTVCBVUERBVEUgVEhFIFNFQVJDSCBJTkRFWCBBTkQgU0VORCBBTiBFVkVOVC4uLg0KCQkJCWlmKGlzc2V0KCRldmVudCkpCSR0aGlzLT5TZW5kRXZlbnQoJGV2ZW50LCBhcnJheSgid2hhdCI9PiJ2aWRlbyIsICJpdGVtaWQiID0+ICRpdGVtLT5pZCwgImFsaWFzIj0+JGl0ZW0tPmFsaWFzKSk7DQoJCQkJZGVidWdfYnVmZmVyKCJTRUFSSEMgSU5ERVggV0FTIFVQREFURUQgIi5fX0xJTkVfXyk7DQoJCQkJJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoIlNlYXJjaCIpOw0KCQkJCWlmKCRtb2R1bGUpIHsNCgkJCQkJJHRleHQgPSAiJGl0ZW0tPmRlc2NyaXB0aW9uICRpdGVtLT5zaXRlICRpdGVtLT52aWRlb2lkICRpdGVtLT5uYW1lIjsNCgkJCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGl0ZW0tPmlkLCAidmlkZW8iLCAkdGV4dCwgTlVMTCk7DQoJCQkJfQ0KCQkJfQ0KCQl9ZWxzZWlmKG15c3FsX2Vycm9yKCkpew0KCQkJLy8gZG8gbm90IHJlZGlyZWN0IDoNCgkJCSRyZWRpcmVjdCA9IGZhbHNlOw0KCQkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhteXNxbF9lcnJvcigpKTsNCgkJfQ0KDQoJCS8vIFJFRElSRUNUSU5HLi4uDQoJCQlpZigkcmVkaXJlY3QgPT0gZmFsc2Upew0KCQkJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJhcHBseSJdKSl7DQoJCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7DQoJCQl9ZWxzZXsNCgkJCQkkcGFyYW1zID0gYXJyYXkoIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpLCAiYWN0aXZlX3RhYiI9PiJ2aWRlbyIpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkNCgkJCX0NCgl9DQoJLy8gRU5EIE9GIEZPUk0gU1VCTUlTU0lPTg0KfQ0KDQoNCg0KLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUw0KQ3JlYXRlSW5wdXRUZXh0IDogKGlkLG5hbWUsdmFsdWUsc2l6ZSxtYXhsZW5ndGgpDQpDcmVhdGVUZXh0QXJlYSA6ICh3eXNpd3lnLGlkLHRleHQsbmFtZSkNCkNyZWF0ZUlucHV0U2VsZWN0TGlzdCA6IChpZCxuYW1lLGl0ZW1zLHNlbGVjdGVkaXRlbXMsc2l6ZSkNCkNyZWF0ZUlucHV0RHJvcGRvd24gOiAoaWQsbmFtZSxpdGVtcyxzaW5kZXgsc3ZhbHVlKQ0KKi8NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJkZXNjcmlwdGlvbl9sYWJlbCIsICR0aGlzLT5MYW5nKCJ2aWRlb19kZXNjcmlwdGlvbiIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVzY3JpcHRpb25faW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwidmlkX2Rlc2NyaXB0aW9uIixpc3NldCgkaXRlbSk/JGl0ZW0tPmRlc2NyaXB0aW9uOiIiLDUwLDI1NSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzaXRlX2xhYmVsIiwgJHRoaXMtPkxhbmcoInZpZGVvX3NpdGUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oInNpdGVfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInZpZF9zaXRlIiwkc2l0ZW9wdGlvbnMsLTEsaXNzZXQoJGl0ZW0pPyRpdGVtLT5zaXRlOjApKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigidmlkZW9pZF9sYWJlbCIsICR0aGlzLT5MYW5nKCJ2aWRlb192aWRlb2lkIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ2aWRlb2lkX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInZpZF92aWRlb2lkIixpc3NldCgkaXRlbSk/JGl0ZW0tPnZpZGVvaWQ6IiIsNTAsNjQpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigid2lkdGhfbGFiZWwiLCAkdGhpcy0+TGFuZygidmlkZW9fd2lkdGgiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oIndpZHRoX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInZpZF93aWR0aCIsaXNzZXQoJGl0ZW0pPyRpdGVtLT53aWR0aDoiIiwzMCwxMCkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJoZWlnaHRfbGFiZWwiLCAkdGhpcy0+TGFuZygidmlkZW9faGVpZ2h0IikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJoZWlnaHRfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwidmlkX2hlaWdodCIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5oZWlnaHQ6IiIsMzAsMTApKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigibmFtZV9sYWJlbCIsICR0aGlzLT5MYW5nKCJuYW1lIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInZpZF9uYW1lIixpc3NldCgkaXRlbSk/JGl0ZW0tPm5hbWU6IiIsNTAsNjQpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigicGFyZW50X2xhYmVsIiwgJHRoaXMtPkxhbmcoImFsYnVtIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYXJlbnRfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsInZpZF9wYXJlbnQiLCRwYXJlbnRvcHRpb25zLC0xLGlzc2V0KCRpdGVtKT8kaXRlbS0+cGFyZW50OjApKTtpZihpc3NldCgkaXRlbSkpICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJvbGRwYXJlbnQiLCAkaXRlbS0+cGFyZW50KTsNCmlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlZGl0YWJsZV9hbGlhc2VzIixmYWxzZSkpew0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWxpYXNfbGFiZWwiLCAkdGhpcy0+TGFuZygiYWxpYXMiKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhbGlhc19pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJ2aWRfYWxpYXMiLGlzc2V0KCRpdGVtKT8kaXRlbS0+YWxpYXM6IiIsNTAsNjQpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1hbGlhcyIsZmFsc2UpOw0KfWVsc2V7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtYWxpYXMiLGlzc2V0KCRpdGVtLT5hbGlhcyk/IihhbGlhcyA6ICIuJGl0ZW0tPmFsaWFzLiIpIjpmYWxzZSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhbGlhc19pbnB1dCIsIGZhbHNlKTsNCn0NCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJlZGl0dGl0bGUiLCAkdGhpcy0+TGFuZygiZWRpdF92aWRlbyIpKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzdWJtaXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiYXBwbHkiLCAoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5pZCkpPyR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJhcHBseSIsIGxhbmcoImFwcGx5IikpOiIiKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiY2FuY2VsIiwgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImNhbmNlbCIsIGxhbmcoImNhbmNlbCIpKSk7DQoNCg0KLy8gRElTUExBWUlORw0KaWYoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5pZCkpew0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZWRpdHZpZF8iLCAkcmV0dXJuaWQpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImVkaXR2aWRfLnRwbCIpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJ2aWRfaWQiLCAkaXRlbS0+aWQpOw0KCQlpZihpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPnBhcmVudCkpIGVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgIm9sZHBhcmVudCIsICRpdGVtLT5wYXJlbnQpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJ2aWRfaXRlbV9vcmRlciIsICRpdGVtLT5pdGVtX29yZGVyKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQ0KDQp9ZWxzZXsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZWRpdHZpZF8iLCAkcmV0dXJuaWQpOw0KCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiZWRpdHZpZF8udHBsIik7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.export.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpCWV4aXQ7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ2RvZXhwb3J0J10pKXsNCgkNCgkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJDQoJJG91dHB1dCA9ICcnOw0KCWZvcmVhY2goJHBhcmFtc1snc2VsZWN0ZWRsZXZlbHMnXSBhcyAkbGV2ZWwpew0KCQkkb3V0cHV0IC49ICcNCjx0YWJsZSBuYW1lPSInLiRsZXZlbC4nIj4NCgknOw0KCQkNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kbGV2ZWw7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQl3aGlsZSAoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkgew0KCQkJJG91dHB1dCAuPSAiPGl0ZW0+DQoJCSI7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGZpZWxkPT4kdmFsdWUpew0KCQkJCSRvdXRwdXQgLj0gJzwnLiRmaWVsZC4nPjwhW0NEQVRBWycuc3RyaXBzbGFzaGVzKCR2YWx1ZSkuJ11dPjwvJy4kZmllbGQuJz4NCgkJJzsNCgkJCX0NCgkJCSRvdXRwdXQgLj0gIg0KCTwvaXRlbT4NCgkiOw0KCQl9DQoJCSRvdXRwdXQgLj0gIg0KPC90YWJsZT4NCg0KIjsNCgl9DQoNCg0KDQoJLy8gZXhwb3J0aW5nIG11bHRpcGxlIGZpbGUgZmllbGRzIChpZiBhbnkpDQoJCSR0bXBvdXRwdXQgPSAnJzsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfbXVsdGlwbGVmaWxlc2ZpZWxkcyI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQl3aGlsZSAoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkgew0KCQkJJHRtcG91dHB1dCAuPSAnPGl0ZW0+DQoJCSc7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGZpZWxkPT4kdmFsdWUpew0KCQkJCSR0bXBvdXRwdXQgLj0gJzwnLiRmaWVsZC4nPjwhW0NEQVRBWycuc3RyaXBzbGFzaGVzKCR2YWx1ZSkuJ11dPjwvJy4kZmllbGQuJz4NCgkJJzsNCgkJCX0NCgkJCSR0bXBvdXRwdXQgLj0gJw0KCTwvaXRlbT4NCgknOw0KCQl9DQoJCQ0KCQlpZigkdG1wb3V0cHV0ICE9ICcnKQkkb3V0cHV0IC49ICcNCjx0YWJsZSBuYW1lPSJtdWx0aXBsZWZpbGVzZmllbGRzIj4NCgknLiR0bXBvdXRwdXQuJw0KPC90YWJsZT4NCg0KJzsNCg0KDQoNCgkvLyBleHBvcnRpbmcgbGlzdG9wdGlvbnMgKGlmIGFueSkNCgkJJHRtcG91dHB1dCA9ICcnOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9maWVsZG9wdGlvbnMiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJd2hpbGUgKCAkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApIHsNCgkJCSR0bXBvdXRwdXQgLj0gJzxpdGVtPg0KCQknOw0KCQkJZm9yZWFjaCgkcm93IGFzICRmaWVsZD0+JHZhbHVlKXsNCgkJCQkkdG1wb3V0cHV0IC49ICc8Jy4kZmllbGQuJz48IVtDREFUQVsnLnN0cmlwc2xhc2hlcygkdmFsdWUpLiddXT48LycuJGZpZWxkLic+DQoJCSc7DQoJCQl9DQoJCQkkdG1wb3V0cHV0IC49ICcNCgk8L2l0ZW0+DQoJJzsNCgkJfQ0KCQkNCgkJaWYoJHRtcG91dHB1dCAhPSAnJykJJG91dHB1dCAuPSAnDQo8dGFibGUgbmFtZT0iZmllbGRvcHRpb25zIj4NCgknLiR0bXBvdXRwdXQuJw0KPC90YWJsZT4NCg0KJzsNCg0KDQoNCgkNCglpZihpc3NldCgkcGFyYW1zWydleHBvcnRfdGVtcGxhdGVzJ10pICYmICRwYXJhbXNbJ2V4cG9ydF90ZW1wbGF0ZXMnXSl7DQoJCWZvcmVhY2goJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKSBhcyAkdHBsbmFtZSl7DQoJCQkkb3V0cHV0IC49ICcNCjx0ZW1wbGF0ZSBuYW1lPSInLiR0cGxuYW1lLiciPjwhW0NEQVRBWycuJHRoaXMtPkdldFRlbXBsYXRlKCR0cGxuYW1lKS4nXV0+PC90ZW1wbGF0ZT4NCic7DQoJCX0NCgl9DQoJDQoJaWYoJG91dHB1dCA9PSAnJyl7DQoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdleHBvcnQnLCAkcmV0dXJuaWQpOw0KCX1lbHNlew0KCQkkb3V0cHV0ID0gIjxyb290PiIuJG91dHB1dC4iPC9yb290PiI7DQoJCQ0KCQkkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IA0KCQlmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQkJDQoNCgkJaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOw0KCQloZWFkZXIoJ0V4cGlyZXM6IDAnKTsNCgkJaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsNCgkJaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJyxmYWxzZSk7DQoJCWhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOw0KCQloZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1sJyk7DQoJCWhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuJHRoaXMtPkdldE5hbWUoKS4nLnhtbCInICk7DQoJCWhlYWRlcignQ29udGVudC1MZW5ndGg6ICcgLiBzdHJsZW4oJG91dHB1dCkpOw0KCQ0KCQlwcmludCgkb3V0cHV0KTsNCgkNCgkJQGZsdXNoKCk7IEBvYl9mbHVzaCgpOyBAb2JfZmx1c2goKTsNCgl9CQ0KDQp9ZWxzZXsNCgkNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZXhwb3J0IiwgJHJldHVybmlkKTsNCgllY2hvICc8aDM+Jy4kdGhpcy0+TGFuZygnZXhwb3J0X3RpdGxlJykuJzwvaDM+JzsNCgllY2hvICc8ZmllbGRzZXQ+PGxlZ2VuZD48Yj4nLiR0aGlzLT5MYW5nKCdleHBvcnR3aGljaGxldmVscycpLic8L2I+PC9sZWdlbmQ+JzsNCgkkY2hvaWNlcyA9IGFycmF5KCk7DQoJZm9yZWFjaCgkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKSBhcyAkbGV2ZWwpCSRjaG9pY2VzWyRsZXZlbF0gPSAkbGV2ZWw7DQoJZWNobyAkdGhpcy0+RG9DaGVja2JveGVzKCRpZCwgJ3NlbGVjdGVkbGV2ZWxzJywgJGNob2ljZXMsICRjaG9pY2VzKS4nPC9maWVsZHNldD48YnIvPic7DQoJZWNobyAnPHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsImV4cG9ydF90ZW1wbGF0ZXMiLDEsMCkuJyAnLiR0aGlzLT5MYW5nKCdleHBvcnRfdGVtcGxhdGVzJykuJzwvcD4nOw0KCWVjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImRvZXhwb3J0IiwgbGFuZygic3VibWl0IikpLic8L3A+JzsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CQ0KCQ0KfQ0K]]></data>
	</file>
	<file>
	  <filename>/action.import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpCWV4aXQ7DQoNCmVjaG8gJzxoMz4nLiR0aGlzLT5MYW5nKCdpbXBvcnRfdGl0bGUnKS4nPC9oMz4nOw0KDQppZihpc3NldCgkX0ZJTEVTKSAmJiBpc3NldCgkX0ZJTEVTWyRpZC4neG1sZmlsZSddKSAmJiBpc3NldCgkX0ZJTEVTWyRpZC4neG1sZmlsZSddWyduYW1lJ10pICYmICRfRklMRVNbJGlkLid4bWxmaWxlJ11bJ25hbWUnXSAhPSAnJykgew0KCQ0KCSR4bWwgPSBmaWxlX2dldF9jb250ZW50cyggJF9GSUxFU1skaWQuJ3htbGZpbGUnXVsndG1wX25hbWUnXSApOw0KCSRwYXJzZXIgPSB4bWxfcGFyc2VyX2NyZWF0ZSgnJyk7DQoJeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCRwYXJzZXIsIFhNTF9PUFRJT05fVEFSR0VUX0VOQ09ESU5HLCAnVVRGLTgnKTsNCgl4bWxfcGFyc2VyX3NldF9vcHRpb24oJHBhcnNlciwgWE1MX09QVElPTl9DQVNFX0ZPTERJTkcsIDApOw0KCXhtbF9wYXJzZXJfc2V0X29wdGlvbigkcGFyc2VyLCBYTUxfT1BUSU9OX1NLSVBfV0hJVEUsIDEpOw0KDQoJJHhtbGRhdGEgPSBhcnJheSgpOw0KCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCB0cmltKCR4bWwpLCAkeG1sZGF0YSk7DQoJeG1sX3BhcnNlcl9mcmVlKCRwYXJzZXIpOw0KCWlmICghJHhtbGRhdGEpCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdpbXBvcnQnLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZSc9PiR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkeG1sJykpICk7DQoNCgkkdGFibGVzID0gYXJyYXkoKTsNCgkkdGVtcGxhdGVzID0gYXJyYXkoKTsNCgkkZW50cmllcyA9IDA7DQoJJGN1cnJlbnR0YWJsZSA9IGZhbHNlOw0KCSRjdXJyZW50aXRlbSA9IGZhbHNlOw0KDQoJJGV4aXN0aW5nX3RhYmxlcyA9IGFycmF5X21lcmdlKCR0aGlzLT5nZXRfbGV2ZWxhcnJheSgpLCBhcnJheSgnZmllbGRvcHRpb25zJywgJ211bHRpcGxlZmlsZXNmaWVsZHMnKSk7DQoJDQoJDQoJZm9yZWFjaCAoJHhtbGRhdGEgYXMgJGRhdGEpIHsNCgkJc3dpdGNoKCRkYXRhWyd0eXBlJ10pIHsNCgkJCWNhc2UgJ29wZW4nOg0KCQkJCWlmKCRkYXRhWydsZXZlbCddID09IDIgJiYgJGRhdGFbJ3RhZyddID09ICd0YWJsZScgJiYgaXNzZXQoJGRhdGFbJ2F0dHJpYnV0ZXMnXSkgJiYgaXNzZXQoJGRhdGFbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddKSApew0KCQkJCQkkdGFibGVuYW1lID0gJGRhdGFbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddOw0KCQkJCQlpZihpbl9hcnJheSgkdGFibGVuYW1lLCAkZXhpc3RpbmdfdGFibGVzKSl7DQoJCQkJCQkkdGFibGVzWyR0YWJsZW5hbWVdID0gYXJyYXkoKTsNCgkJCQkJCSRjdXJyZW50dGFibGUgPSAkdGFibGVuYW1lOw0KCQkJCQl9ZWxzZXsNCgkJCQkJCSRjdXJyZW50dGFibGUgPSBmYWxzZTsNCgkJCQkJfQ0KCQkJCX1lbHNlaWYoJGRhdGFbJ2xldmVsJ10gPT0gMyAmJiAkZGF0YVsndGFnJ10gPT0gJ2l0ZW0nKXsNCgkJCQkJJGN1cnJlbnRpdGVtID0gYXJyYXkoKTsNCgkJCQl9DQoJCQkJYnJlYWs7DQoJCQljYXNlICdjbG9zZSc6DQoJCQkJaWYoJGN1cnJlbnR0YWJsZSAmJiAkY3VycmVudGl0ZW0gIT0gZmFsc2UgJiYgJGRhdGFbJ2xldmVsJ10gPT0gMyAmJiAkZGF0YVsndGFnJ10gPT0gJ2l0ZW0nKXsNCgkJCQkJaWYoY291bnQoJGN1cnJlbnRpdGVtKSA+IDApew0KCQkJCQkJYXJyYXlfcHVzaCgkdGFibGVzWyRjdXJyZW50dGFibGVdLCAkY3VycmVudGl0ZW0pOw0KCQkJCQkJJGVudHJpZXMrKzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJ2NvbXBsZXRlJzoNCgkJCQlpZigkZGF0YVsnbGV2ZWwnXSA9PSA0KXsNCgkJCQkJJGN1cnJlbnRpdGVtWyRkYXRhWyd0YWcnXV0gPSAkZGF0YVsndmFsdWUnXTsNCgkJCQl9ZWxzZWlmKCRkYXRhWydsZXZlbCddID09IDEgJiYgJGRhdGFbJ3RhZyddID09ICd0ZW1wbGF0ZScgJiYgaXNzZXQoJGRhdGFbJ2F0dHJpYnV0ZXMnXSkgJiYgaXNzZXQoJGRhdGFbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddKSApew0KCQkJCQkkdGVtcGxhdGVzWyRkYXRhWydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0gPSAkZGF0YVsndmFsdWUnXTsNCgkJCQl9DQoJCQkJYnJlYWs7DQoJCX0NCgl9DQoNCglpZihjb3VudCgkdGFibGVzKSA9PSAwKQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnaW1wb3J0JywgJHJldHVybmlkLCBhcnJheSgnbW9kdWxlX21lc3NhZ2UnPT4kdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHhtbCcpKSApOw0KCQ0KCSRfU0VTU0lPTlsnY3RsbW1fbW9kdWxlaW1wb3J0J10gPSBhcnJheSgpOw0KCSRfU0VTU0lPTlsnY3RsbW1fbW9kdWxlaW1wb3J0J11bJ3RhYmxlcyddID0gJHRhYmxlczsNCgkkX1NFU1NJT05bJ2N0bG1tX21vZHVsZWltcG9ydCddWyd0ZW1wbGF0ZXMnXSA9ICR0ZW1wbGF0ZXM7DQoJDQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImltcG9ydCIsICRyZXR1cm5pZCk7DQoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygnaW1wb3J0X2VudHJpZXMnLCRlbnRyaWVzKS4nPC9wPic7DQoJZWNobyAnPGZpZWxkc2V0PjxsZWdlbmQ+PGI+Jy4kdGhpcy0+TGFuZygnaW1wb3J0d2hpY2hsZXZlbHMnKS4nPC9iPjwvbGVnZW5kPic7DQoJJGNob2ljZXMgPSBhcnJheSgpOw0KCWZvcmVhY2goJHRhYmxlcyBhcyAka2V5PT4kdmFsdWUpew0KCQlpZihjb3VudCgkdmFsdWUpID4wKQkkY2hvaWNlc1ska2V5LicgKCcuY291bnQoJHZhbHVlKS4nKSddID0gJGtleTsNCgl9DQoJZWNobyAkdGhpcy0+RG9DaGVja2JveGVzKCRpZCwgJ3NlbGVjdGVkbGV2ZWxzJywgJGNob2ljZXMsICRjaG9pY2VzKS4nPC9maWVsZHNldD48YnIvPic7DQoJaWYoY291bnQoJHRlbXBsYXRlcykgPiAwKQllY2hvICc8cD4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwiaW1wb3J0X3RlbXBsYXRlcyIsMSwwKS4nICcuJHRoaXMtPkxhbmcoJ2ltcG9ydF90ZW1wbGF0ZXMnKS4nPC9wPic7DQoJZWNobyAnPHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsImltcG9ydF9kZWxldGUiLDEsMCkuJyAnLiR0aGlzLT5MYW5nKCdpbXBvcnRfZGVsZXRlJykuJzwvcD4nOw0KCWVjaG8gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImRvaW1wb3J0IiwgbGFuZygic3VibWl0IikpLic8L3A+JzsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7DQoNCn1lbHNlaWYoaXNzZXQoJHBhcmFtc1snZG9pbXBvcnQnXSkgJiYgaXNzZXQoJF9TRVNTSU9OWydjdGxtbV9tb2R1bGVpbXBvcnQnXSkgJiYgaXNzZXQoJHBhcmFtc1snc2VsZWN0ZWRsZXZlbHMnXSkpew0KDQoJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCSR0YWJsZXByZWZpeCA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV8iOw0KCSRlcnJvcnMgPSAnJzsNCgkkYWRkZWQgPSAwOw0KCQ0KCWlmKGlzc2V0KCRwYXJhbXNbJ2ltcG9ydF90ZW1wbGF0ZXMnXSkgJiYgJHBhcmFtc1snaW1wb3J0X3RlbXBsYXRlcyddICYmIGlzc2V0KCRfU0VTU0lPTlsnY3RsbW1fbW9kdWxlaW1wb3J0J11bJ3RlbXBsYXRlcyddKSApew0KCQlmb3JlYWNoKCRfU0VTU0lPTlsnY3RsbW1fbW9kdWxlaW1wb3J0J11bJ3RlbXBsYXRlcyddIGFzICR0cGxuYW1lPT4kdGVtcGxhdGUpew0KCQkJJHRoaXMtPlNldFRlbXBsYXRlKCR0cGxuYW1lLCAkdGVtcGxhdGUpOw0KCQl9DQoJfQ0KCQ0KCSRkZWxldGUgPSAoaXNzZXQoJHBhcmFtc1snaW1wb3J0X2RlbGV0ZSddKSAmJiAkcGFyYW1zWydpbXBvcnRfZGVsZXRlJ10gKTsNCgkNCglmb3JlYWNoKCRwYXJhbXNbJ3NlbGVjdGVkbGV2ZWxzJ10gYXMgJHRhYmxlbmFtZSl7DQoJCQ0KCQlpZihpc19jYWxsYWJsZShhcnJheSgkZGIsJ01ldGFDb2x1bW5OYW1lcycpKSl7DQoJCQkkZXhpc3RpbmdfZmllbGRzID0gYXJyYXkoKTsNCgkJCSRjb2x1bW5zID0gJGRiLT5NZXRhQ29sdW1uTmFtZXMoJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUpOw0KCQkJZm9yZWFjaCgkY29sdW1ucyBhcyAkY29sKQlhcnJheV9wdXNoKCRleGlzdGluZ19maWVsZHMsc3RydG9sb3dlcigkY29sKSk7DQoJCX1lbHNlew0KCQkJJGNvbHVtbnMgPSBmYWxzZTsNCgkJfQ0KCQkNCgkJJHByb2NlZWQgPSB0cnVlOw0KCQkkaGlnaGVzdGlkID0gMDsNCgkJaWYoaXNzZXQoJF9TRVNTSU9OWydjdGxtbV9tb2R1bGVpbXBvcnQnXVsndGFibGVzJ11bJHRhYmxlbmFtZV0pKXsNCgkJCWlmKCRkZWxldGUpCSRkYi0+RXhlY3V0ZSgiVFJVTkNBVEUgVEFCTEUgIi4kdGFibGVwcmVmaXguJHRhYmxlbmFtZSk7DQoJCQkkdGFibGUgPSAkX1NFU1NJT05bJ2N0bG1tX21vZHVsZWltcG9ydCddWyd0YWJsZXMnXVskdGFibGVuYW1lXTsNCgkJCSRpID0gMDsNCgkJCXdoaWxlKCRwcm9jZWVkICYmICRpIDwgY291bnQoJHRhYmxlKSl7DQoJCQkJJHZhbHVlcyA9IGFycmF5KCk7DQoJCQkJJHF1ZXJ5ID0gJyc7DQoJCQkJZm9yZWFjaCgkdGFibGVbJGldIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJCWlmKCAhJGNvbHVtbnMgfHwgaW5fYXJyYXkoJGtleSwkZXhpc3RpbmdfZmllbGRzKSApew0KCQkJCQkJJHF1ZXJ5IC49ICgkcXVlcnk9PScnPycnOicsICcpLiJgIi4ka2V5LiJgPT8iOw0KCQkJCQkJJHZhbHVlc1tdID0gKCR2YWx1ZT09PU5VTEw/Jyc6JHZhbHVlKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi4kdGFibGVwcmVmaXguJHRhYmxlbmFtZS4iIFNFVCAiLiRxdWVyeTsNCgkJCQlpZigkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR2YWx1ZXMpKXsNCgkJCQkJaWYoaXNzZXQoJHRhYmxlWyRpXVsnaWQnXSkgJiYgJHRhYmxlWyRpXVsnaWQnXSA+ICRoaWdoZXN0aWQpCSRoaWdoZXN0aWQgPSAkdGFibGVbJGldWydpZCddOw0KCQkJCQkkYWRkZWQrKzsNCgkJCQl9ZWxzZXsNCgkJCQkJJHByb2NlZWQgPSBmYWxzZTsNCgkJCQkJJGVycm9ycyAuPSAoJGVycm9ycz09Jyc/Jyc6JywgJykuJHRhYmxlbmFtZTsNCgkJCQl9CQ0KCQkJCSRpKys7DQoJCQl9DQoJCX0NCgkJJGN1cnJlbnRpZCA9IDA7DQoJCXdoaWxlKCRjdXJyZW50aWQgPCAkaGlnaGVzdGlkKXsNCgkJCSRjdXJyZW50aWQgPSAkZGItPkdlbklEKCR0YWJsZXByZWZpeC4kdGFibGVuYW1lLidfc2VxJyk7DQoJCX0NCgl9DQoJDQoJaWYoaXNzZXQoJF9TRVNTSU9OWydjdGxtbV9tb2R1bGVpbXBvcnQnXVsndGFibGVzJ11bJ211bHRpcGxlZmlsZXNmaWVsZHMnXSkpew0KCQkkdGFibGVuYW1lID0gIm11bHRpcGxlZmlsZXNmaWVsZHMiOw0KCQkkcHJvY2VlZCA9IHRydWU7DQoJCSRoaWdoZXN0aWQgPSAwOw0KCQlpZigkZGVsZXRlKQkkZGItPkV4ZWN1dGUoIlRSVU5DQVRFIFRBQkxFICIuJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUpOw0KCQkkdGFibGUgPSAkX1NFU1NJT05bJ2N0bG1tX21vZHVsZWltcG9ydCddWyd0YWJsZXMnXVskdGFibGVuYW1lXTsNCgkJJGkgPSAwOw0KCQl3aGlsZSgkcHJvY2VlZCAmJiAkaSA8IGNvdW50KCR0YWJsZSkpew0KCQkJJHZhbHVlcyA9IGFycmF5KCk7DQoJCQkkcXVlcnkgPSAnJzsNCgkJCWZvcmVhY2goJHRhYmxlWyRpXSBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKCAhJGNvbHVtbnMgfHwgaW5fYXJyYXkoJGtleSwkZXhpc3RpbmdfZmllbGRzKSApew0KCQkJCQkkcXVlcnkgLj0gKCRxdWVyeT09Jyc/Jyc6JywgJykuImAiLiRrZXkuImA9PyI7DQoJCQkJCSR2YWx1ZXNbXSA9ICgkdmFsdWU9PT1OVUxMPycnOiR2YWx1ZSk7DQoJCQkJfQ0KCQkJfQ0KCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUuIiBTRVQgIi4kcXVlcnk7DQoJCQlpZigkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR2YWx1ZXMpKXsNCgkJCQlpZihpc3NldCgkdGFibGVbJGldWydmaWxlaWQnXSkgJiYgJHRhYmxlWyRpXVsnZmlsZWlkJ10gPiAkaGlnaGVzdGlkKQkkaGlnaGVzdGlkID0gJHRhYmxlWyRpXVsnZmlsZWlkJ107DQoJCQkJJGFkZGVkKys7DQoJCQl9ZWxzZXsNCgkJCQkkcHJvY2VlZCA9IGZhbHNlOw0KCQkJCSRlcnJvcnMgLj0gKCRlcnJvcnM9PScnPycnOicsICcpLiR0YWJsZW5hbWU7DQoJCQl9CQ0KCQkJJGkrKzsNCgkJfQ0KCQkkY3VycmVudGlkID0gMDsNCgkJd2hpbGUoJGN1cnJlbnRpZCA8ICRoaWdoZXN0aWQpew0KCQkJJGN1cnJlbnRpZCA9ICRkYi0+R2VuSUQoJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUuJ19zZXEnKTsNCgkJfQkJDQoJCQ0KCX0NCgkNCglpZihpc3NldCgkX1NFU1NJT05bJ2N0bG1tX21vZHVsZWltcG9ydCddWyd0YWJsZXMnXVsnZmllbGRvcHRpb25zJ10pKXsNCgkJJHRhYmxlbmFtZSA9ICJmaWVsZG9wdGlvbnMiOw0KCQkkcHJvY2VlZCA9IHRydWU7DQoJCSRoaWdoZXN0aWQgPSAwOw0KCQlpZigkZGVsZXRlKQkkZGItPkV4ZWN1dGUoIlRSVU5DQVRFIFRBQkxFICIuJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUpOw0KCQkkdGFibGUgPSAkX1NFU1NJT05bJ2N0bG1tX21vZHVsZWltcG9ydCddWyd0YWJsZXMnXVskdGFibGVuYW1lXTsNCgkJJGkgPSAwOw0KCQl3aGlsZSgkcHJvY2VlZCAmJiAkaSA8IGNvdW50KCR0YWJsZSkpew0KCQkJJHZhbHVlcyA9IGFycmF5KCk7DQoJCQkkcXVlcnkgPSAnJzsNCgkJCWZvcmVhY2goJHRhYmxlWyRpXSBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKCAhJGNvbHVtbnMgfHwgaW5fYXJyYXkoJGtleSwkZXhpc3RpbmdfZmllbGRzKSApew0KCQkJCQkkcXVlcnkgLj0gKCRxdWVyeT09Jyc/Jyc6JywgJykuImAiLiRrZXkuImA9PyI7DQoJCQkJCSR2YWx1ZXNbXSA9ICgkdmFsdWU9PT1OVUxMPycnOiR2YWx1ZSk7DQoJCQkJfQ0KCQkJfQ0KCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuJHRhYmxlcHJlZml4LiR0YWJsZW5hbWUuIiBTRVQgIi4kcXVlcnk7DQoJCQlpZigkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR2YWx1ZXMpKXsNCgkJCQlpZihpc3NldCgkdGFibGVbJGldWydpZCddKSAmJiAkdGFibGVbJGldWydpZCddID4gJGhpZ2hlc3RpZCkJJGhpZ2hlc3RpZCA9ICR0YWJsZVskaV1bJ2lkJ107DQoJCQkJJGFkZGVkKys7DQoJCQl9ZWxzZXsNCgkJCQllY2hvIG15c3FsX2Vycm9yKCk7DQoJCQkJJHByb2NlZWQgPSBmYWxzZTsNCgkJCQkkZXJyb3JzIC49ICgkZXJyb3JzPT0nJz8nJzonLCAnKS4kdGFibGVuYW1lOw0KCQkJfQkNCgkJCSRpKys7DQoJCX0NCgkJJGN1cnJlbnRpZCA9IDA7DQoJCXdoaWxlKCRjdXJyZW50aWQgPCAkaGlnaGVzdGlkKXsNCgkJCSRjdXJyZW50aWQgPSAkZGItPkdlbklEKCR0YWJsZXByZWZpeC4kdGFibGVuYW1lLidfc2VxJyk7DQoJCX0JCQ0KCQkNCgl9DQoJDQoJdW5zZXQoJF9TRVNTSU9OWydjdGxtbV9tb2R1bGVpbXBvcnQnXSk7DQoJDQoJJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnaW1wb3J0X2RvbmUnLCRhZGRlZCk7DQoJaWYoJGVycm9ycyAhPSAnJykgJG1lc3NhZ2UgLj0gJzxici8+Jy4kdGhpcy0+TGFuZygnY291bGRub3RpbXBvcnQnKS4kZXJyb3JzOw0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdtb2R1bGVfbWVzc2FnZSc9PiRtZXNzYWdlKSApOw0KDQp9ZWxzZXsNCg0KCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoJ2ltcG9ydF9maWxlcHJvbXB0JykuJzwvcD4nOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdpbXBvcnQnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTsNCgllY2hvICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCd4bWxmaWxlJykuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsbGFuZygnc2VuZCcpKTsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CQ0KCQ0KfQ0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.movesomething.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokbmV3cGFyYW1zID0gaXNzZXQoJHBhcmFtc1sibGV2ZWxuYW1lIl0pP2FycmF5KCJhY3RpdmVfdGFiIj0+JHBhcmFtc1sibGV2ZWxuYW1lIl0pOmFycmF5KCk7DQoNCmlmICghaXNzZXQoJHBhcmFtc1sibW92ZSJdKSB8fCAhaXNzZXQoJHBhcmFtc1sidGFibGVuYW1lIl0pIHx8ICFpc3NldCgkcGFyYW1zWyJwcmVmaXgiXSkgfHwgIWlzc2V0KCRwYXJhbXNbImN1cnJlbnRvcmRlciJdKSApDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KJGRidGFibGUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV8iLiRwYXJhbXNbInRhYmxlbmFtZSJdOw0KJG9yZGVyID0gJHBhcmFtc1siY3VycmVudG9yZGVyIl07DQokaXRlbWlkID0gJHBhcmFtc1skcGFyYW1zWyJwcmVmaXgiXS4iaWQiXTsNCiR3cGFyZW50ID0gaXNzZXQoJHBhcmFtc1sicGFyZW50Il0pPyIgQU5EIHBhcmVudD0nIi4kcGFyYW1zWyJwYXJlbnQiXS4iJyI6IiI7DQoNCnN3aXRjaCgkcGFyYW1zWyJtb3ZlIl0pew0KCQ0KCWNhc2UgImRlbGV0ZSI6DQoJCWlmKGlzc2V0KCRwYXJhbXNbInNoYXJlY2hpbGRyZW4iXSkgJiYgJHBhcmFtc1sic2hhcmVjaGlsZHJlbiJdKXsNCgkJCS8vIHRoaXMgbGV2ZWwgc2hhcmUgaXRzIGNoaWxkcmVuLi4uIHdlIGRlbGV0ZSB0aGUgaXRlbSdzIGxpbmtzIHRvIGNoaWxkcmVuDQoJCQlpZigkY2hpbGRsZXZlbCA9ICR0aGlzLT5nZXRfbmV4dGxldmVsKCRwYXJhbXNbImxldmVsbmFtZSJdKSl7DQoJCQkJJGxpbmt0YWJsZSA9ICRkYnRhYmxlLiJfaGFzXyIuJGNoaWxkbGV2ZWw7DQoJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICRsaW5rdGFibGUgV0hFUkUgIi4kcGFyYW1zWyJsZXZlbG5hbWUiXS4iX2lkPT8iOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtaWQpKTsNCgkJCX0NCgkJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJjaGlsZCJdKSAmJiAkcGFyYW1zWyJjaGlsZCJdICE9ICIiKXsNCgkJCS8vIHRoaXMgbGV2ZWwgZG9lc24ndCBzaGFyZSBpdHMgY2hpbGRyZW4uLi4gd2UgZGVsZXRlIHRoZSBpdGVtJ3MgY2hpbGRyZW4NCgkJCSRjaGlsZHRhYmxlID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfIi4kcGFyYW1zWyJjaGlsZCJdOw0KCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICRjaGlsZHRhYmxlIFdIRVJFIHBhcmVudCA9ID8iOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1pZCkpOw0KCQl9DQoJCWlmKGlzc2V0KCRwYXJhbXNbInNoYXJlZGJ5cGFyZW50cyJdKSAmJiAkcGFyYW1zWyJzaGFyZWRieXBhcmVudHMiXSl7DQoJCQkvLyB0aGlzIGl0ZW0gaXMgc2hhcmVkIGJ5IGl0cyBwYXJlbnRzLi4uIHdlIGRlbGV0ZSBsaW5rcyBmcm9tIHBhcmVudHMgdG8gdGhpcyBjaGlsZA0KCQkJaWYoJHBhcmVudGxldmVsID0gJHRoaXMtPmdldF9uZXh0bGV2ZWwoJHBhcmFtc1sibGV2ZWxuYW1lIl0sIGZhbHNlKSl7DQoJCQkJJGxpbmt0YWJsZSA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV8iLiRwYXJlbnRsZXZlbC4iX2hhc18iLiRwYXJhbXNbImxldmVsbmFtZSJdOw0KCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAkbGlua3RhYmxlIFdIRVJFICIuJHBhcmFtc1sibGV2ZWxuYW1lIl0uIl9pZD0/IjsNCgkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbWlkKSk7DQoJCQl9DQoJCX0NCgkJDQoJCWlmKGlzc2V0KCRwYXJhbXNbImZpbGVzIl0pICYmICRwYXJhbXNbImZpbGVzIl0gIT0gIiIgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoImRlbGV0ZV9maWxlcyIsZmFsc2UpICl7DQoJCQkkZmlsZWZpZWxkcyA9IGV4cGxvZGUoIiwiLCRwYXJhbXNbImZpbGVzIl0pOw0KCQkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gJGRidGFibGUgV0hFUkUgaWQgPSA/IjsNCgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtaWQpKTsNCgkJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCQlmb3JlYWNoKCRmaWxlZmllbGRzIGFzICRmaWVsZCl7DQoJCQkJCWlmKCRyb3dbJGZpZWxkXSAhPSAiIiAmJiAkcm93WyRmaWVsZF0gIT0gIi8iKXsNCgkJCQkJCSRmaWxlcGF0aCA9ICRnQ21zLT5jb25maWdbInVwbG9hZHNfcGF0aCJdLihzdWJzdHIoJHJvd1siZmlsZXBhdGgiXSwwLDEpPT0iLyI/IiI6Ii8iKS4kcm93WyRmaWVsZF07DQoJCQkJCQkkdG1wZXhwID0gZXhwbG9kZSgiLyIsJHJvd1skZmllbGRdKTsNCgkJCQkJCSRmaWxlbmFtZSA9ICR0bXBleHBbY291bnQoJHRtcGV4cCkgLTFdOw0KCQkJCQkJJHRodW1icGF0aCA9IHN0cl9yZXBsYWNlKCRmaWxlbmFtZSwicGx0aHVtYl8iLiRmaWxlbmFtZSwkZmlsZXBhdGgpOw0KCQkJCQkJaWYoZmlsZV9leGlzdHMoJHRodW1icGF0aCkpCXVubGluaygkdGh1bWJwYXRoKTsNCgkJCQkJCWlmKGZpbGVfZXhpc3RzKCRmaWxlcGF0aCkpCXVubGluaygkZmlsZXBhdGgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCS8vIGlmIHRoZSBsZXZlbCBoYXMgZmllbGRzIG9mIHRoZSB0eXBlICJVbmRlZmluZWQgYW1vdW50IG9mIGZpbGVzIiwgd2UgZGVsZXRlIHRoZSBmaWxlcw0KCQlpZihpc3NldCgkcGFyYW1zWyJhZGRmaWxlcyJdKSAmJiAkcGFyYW1zWyJhZGRmaWxlcyJdICE9ICIiKXsNCgkJCSRmaWVsZHMgPSBleHBsb2RlKCIsIiwkcGFyYW1zWyJhZGRmaWxlcyJdKTsNCgkJCWlmKGNvdW50KCRmaWVsZHMpID4gMCl7DQoJCQkJJHdoZXJlID0gIiI7DQoJCQkJJHZhbHVlcyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCgkZmllbGRzIGFzICRmaWVsZCl7DQoJCQkJCSR3aGVyZSAuPSAoJHdoZXJlID09ICIiPyIiOiIgT1IgIikuIiBmaWVsZG5hbWU9PyI7DQoJCQkJCSR2YWx1ZXNbXSA9ICRmaWVsZDsNCgkJCQl9DQoJCQkJJGFkZGZpbGVzdGFibGUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfbXVsdGlwbGVmaWxlc2ZpZWxkcyI7DQoNCgkJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVsZXRlX2ZpbGVzIixmYWxzZSkpew0KCQkJCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAkYWRkZmlsZXN0YWJsZSBXSEVSRSAoJHdoZXJlKSBBTkQgaXRlbWlkPSIuJGl0ZW1pZDsNCgkJCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHZhbHVlcyk7DQoJCQkJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCQkJCSRmaWxlcGF0aCA9ICRnQ21zLT5jb25maWdbInVwbG9hZHNfcGF0aCJdLihzdWJzdHIoJHJvd1siZmlsZXBhdGgiXSwwLDEpPT0iLyI/IiI6Ii8iKS4kcm93WyJmaWxlcGF0aCJdOw0KCQkJCQkJaWYoZmlsZV9leGlzdHMoJGZpbGVwYXRoKSkJdW5saW5rKCRmaWxlcGF0aCk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICRhZGRmaWxlc3RhYmxlIFdIRVJFICgkd2hlcmUpIEFORCBpdGVtaWQ9Ii4kaXRlbWlkOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWx1ZXMpOw0KCQkJfQ0KCQl9DQoJCQkNCgkJDQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAkZGJ0YWJsZSBXSEVSRSBpZCA9ID8gTElNSVQgMSI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtaWQpKTsNCg0KCQkvLyBVUERBVEUgVEhFIE9SREVSIE9GIFRIRSBJVEVNUw0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/ICIuJHdwYXJlbnQ7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRvcmRlcikpOw0KDQoJCWlmKGlzc2V0KCRwYXJhbXNbImxldmVsbmFtZSJdKSkJJHRoaXMtPlNlbmRFdmVudCgiSFZBX2RlbGV0ZWQiLCBhcnJheSgid2hhdCI9PiRwYXJhbXNbImxldmVsbmFtZSJdKSk7DQoJCSRuZXdwYXJhbXNbIm1vZHVsZV9tZXNzYWdlIl0gPSAkdGhpcy0+bGFuZygibWVzc2FnZV9kZWxldGVkIik7DQoJCWJyZWFrOwkNCg0KCWNhc2UgInVwIjoNCgkJaWYgKCRvcmRlciAhPSAxKXsNCgkJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkgV0hFUkUgaXRlbV9vcmRlciA9ID8gJHdwYXJlbnQgTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9yZGVyLTEpKTsNCgkJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaWQgPSA/IExJTUlUIDE7IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtaWQpKTsNCgkJfQ0KCQlicmVhazsNCgkJDQoJY2FzZSAiZG93biI6DQoJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgaXRlbV9vcmRlciA9ID8gJHdwYXJlbnQgTElNSVQgMTsiOw0KCQlpZiggJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG9yZGVyKzEpKSApew0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlcisxKSBXSEVSRSBpZCA9ID8gTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1pZCkpOw0KCQl9DQoJCWJyZWFrOw0KfQ0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/action.reorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCiRkYiA9ICR0aGlzLT5HZXREYigpOw0KJGxldmVsYXJyYXkgPSAkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKTsNCiRvcmRlcmVkYnlwYXJlbnQgPSBhcnJheSgiY2F0ZWdvcnkiLCJhbGJ1bSIsInZpZGVvIik7DQppZihpc3NldCgkcGFyYW1zWyJjYW5jZWwiXSkpew0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsImRlZmF1bHRhZG1pbiIsJHJldHVybmlkKTsNCn1lbHNlaWYoaXNzZXQoJHBhcmFtc1sic3VibWl0cmVvcmRlciJdKSl7DQoJZXhwbG9kZSgiLCIsJHBhcmFtc1sibmV3b3JkZXIiXSk7DQoJJG9yZGVyID0gYXJyYXkoKTsNCgkkbGFzdGlkID0gYXJyYXkoKTsNCglmb3JlYWNoKGV4cGxvZGUoIiwiLCRwYXJhbXNbIm5ld29yZGVyIl0pIGFzICRpdGVtKXsNCgkJbGlzdCgkbGV2ZWwsJGl0ZW1pZCkgPSBleHBsb2RlKCJfIiwkaXRlbSk7DQoJCSRsYXN0aWRbJGxldmVsXSA9ICRpdGVtaWQ7DQoJCWlmKCFpc3NldCgkb3JkZXJbJGxldmVsXSkpCSRvcmRlclskbGV2ZWxdPWFycmF5KCk7DQoJCWlmKCRsZXZlbD09MSl7DQoJCQkkb3JkZXJbMV1bXT0kaXRlbWlkOw0KCQl9ZWxzZXsNCgkJCWlmKCFpc3NldCgkb3JkZXJbJGxldmVsXVskbGFzdGlkWyRsZXZlbC0xXV0pKQkkb3JkZXJbJGxldmVsXVskbGFzdGlkWyRsZXZlbC0xXV09YXJyYXkoKTsNCgkJCSRvcmRlclskbGV2ZWxdWyRsYXN0aWRbJGxldmVsLTFdXVtdID0gJGl0ZW1pZDsNCgkJfQ0KCX0NCglmb3JlYWNoKCRvcmRlciBhcyAka2V5PT4kaXRlbXMpew0KCQkkbGV2ZWwgPSAkbGV2ZWxhcnJheVska2V5LTFdOw0KCQkkaXRlbV9vcmRlciA9IDE7DQoJCWlmKCRrZXk9PTEpew0KCQkJZm9yZWFjaCgkaXRlbXMgYXMgJGl0ZW0pew0KCQkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kbGV2ZWwuIiBTRVQgaXRlbV9vcmRlcj0/IFdIRVJFIGlkPT8gTElNSVQgMSI7DQoJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaXRlbV9vcmRlciwkaXRlbSkpOw0KCQkJCSRpdGVtX29yZGVyKys7DQoJCQl9DQoJCX1lbHNlew0KCQkJZm9yZWFjaCgkaXRlbXMgYXMgJHBhcmVudD0+JGNoaWxkcmVuKXsNCgkJCQlpZihpbl9hcnJheSgkbGV2ZWwsICRvcmRlcmVkYnlwYXJlbnQpKQkkaXRlbV9vcmRlciA9IDE7DQoJCQkJZm9yZWFjaCgkY2hpbGRyZW4gYXMgJGNoaWxkKXsNCgkJCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV8iLiRsZXZlbC4iIFNFVCBpdGVtX29yZGVyPT8gV0hFUkUgaWQ9PyBMSU1JVCAxIjsNCgkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaXRlbV9vcmRlciwkY2hpbGQpKTsNCgkJCQkJJGl0ZW1fb3JkZXIrKzsNCgkJCQl9DQoJCQl9CQkJDQoJCQkJDQoJCX0NCgkJDQoJfQ0KCSR0aGlzLT5SZWRpcmVjdCgkaWQsImRlZmF1bHRhZG1pbiIsJHJldHVybmlkLGFycmF5KCJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpKTsNCn0NCg0KZWNobyAiPGgxPiIuJHRoaXMtPkxhbmcoInJlb3JkZXIiKS4iPC9oMT4iOw0KJGkgPSAwOw0KJHNlbGVjdCA9ICIiOw0KJHRhYmxlcyA9ICIiOw0KJG9yZGVyID0gIiI7DQp3aGlsZSgkaSA8IGNvdW50KCRsZXZlbGFycmF5KSl7DQoJJGxldmVsID0gJGxldmVsYXJyYXlbJGldOw0KCSRpKys7DQoJJHNlbGVjdCAuPSAoJHNlbGVjdD09IiI/IiI6IiwgIikuInRhYmxlIi4kaS4iLmlkIHRhYmxlIi4kaS4iX2lkLCB0YWJsZSIuJGkuIi5uYW1lIHRhYmxlIi4kaS4iX25hbWUiOw0KCWlmKCRpID09IDEpew0KCQkkdGFibGVzID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBXyIuJGxldmVsLiIgdGFibGUiLiRpOw0KCX1lbHNlew0KCQkkdGFibGVzIC49ICIgTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBXyIuJGxldmVsLiIgdGFibGUiLiRpLiAiIE9OIHRhYmxlIi4oJGktMSkuIi5pZD10YWJsZSIuJGkuIi5wYXJlbnQiOw0KCX0NCgkkb3JkZXIgLj0gKCRvcmRlcj09IiI/IiI6IiwgIikuInRhYmxlIi4kaS4iLml0ZW1fb3JkZXIiOw0KfQ0KJHF1ZXJ5ID0gIlNFTEVDVCAkc2VsZWN0IEZST00gJHRhYmxlcyBPUkRFUiBCWSAkb3JkZXIiOw0KJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoNCiRsYXN0ID0gYXJyYXkoKTsNCiRsaXN0cyA9IGFycmF5KCk7DQokY29udGFpbm1lbnQgPSBhcnJheSgpOw0KJHBhcnNlbGV2ZWwgPSAxOw0KZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgInJlb3JkZXIiLCAkcmV0dXJuaWQsICdwb3N0JywgJycsIGZhbHNlLCAnJywgYXJyYXkoKSwgJyBvbnN1Ym1pdD0icmV0dXJuIGN0bG1tX3N1Ym1pdF9yZW9yZGVyKCk7IicpOw0Kd2hpbGUoJHBhcnNlbGV2ZWwgPD0gJGkpew0KCSRsYXN0WyRwYXJzZWxldmVsXSA9IGZhbHNlOw0KCSRsaXN0c1skcGFyc2VsZXZlbF0gPSBhcnJheSgpOw0KCSRjb250YWlubWVudFskcGFyc2VsZXZlbF0gPSAiIjsNCgkkcGFyc2VsZXZlbCsrOw0KfQ0KZWNobyAiPHA+Ii4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJzdWJtaXRyZW9yZGVyIixsYW5nKCJzdWJtaXQiKSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsInJlc2V0b3JkZXIiLCR0aGlzLT5MYW5nKCJyZXNldG9yZGVyIikpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJjYW5jZWwiLGxhbmcoImNhbmNlbCIpKS4iPC9wPiI7DQokY3VycmVudGxldmVsID0gMTsNCmVjaG8gJzx1bCBjbGFzcz0ic29ydGFibGVMaXN0IiBpZD0iY3RsbW1fYmlnc29ydGxpc3QiPic7DQp3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJJHBhcnNlbGV2ZWwgPSAxOw0KCXdoaWxlKCRwYXJzZWxldmVsIDw9ICRpKXsNCgkJaWYoJHJvd1sidGFibGUiLiRwYXJzZWxldmVsLiJfaWQiXSAhPSAkbGFzdFskcGFyc2VsZXZlbF0pew0KCQkJaWYoJGN1cnJlbnRsZXZlbCA9PSAkcGFyc2VsZXZlbCl7DQoJCQkJaWYoJGxhc3RbJGN1cnJlbnRsZXZlbF0pCWVjaG8gIjwvbGk+IjsNCgkJCX1lbHNlaWYoJGN1cnJlbnRsZXZlbCA+ICRwYXJzZWxldmVsKXsNCgkJCQl3aGlsZSgkY3VycmVudGxldmVsID4gJHBhcnNlbGV2ZWwpew0KCQkJCQllY2hvICI8L2xpPjwvdWw+PC9saT4iOw0KCQkJCQkkY3VycmVudGxldmVsLS07DQoJCQkJfQ0KCQkJfWVsc2VpZigkY3VycmVudGxldmVsIDwgJHBhcnNlbGV2ZWwpew0KCQkJCSRsaXN0aWQgPSAibGlzdF8iLiRsZXZlbGFycmF5WyRwYXJzZWxldmVsXS4iXyIuJHJvd1sidGFibGUiLiRwYXJzZWxldmVsLiJfaWQiXTsNCgkJCQkkY3VycmVudGxldmVsKys7DQoJCQkJZWNobyAnPHVsIGlkPSInLiRsaXN0aWQuJyIgY2xhc3M9InNvcnRhYmxlTGlzdCI+JzsNCgkJCQkkbGlzdHNbJHBhcnNlbGV2ZWxdW10gPSAkbGlzdGlkOw0KCQkJCSRjb250YWlubWVudFskcGFyc2VsZXZlbF0gLj0gKCRjb250YWlubWVudFskcGFyc2VsZXZlbF09PSIiPyIiOiIsIikuJyInLiRsaXN0aWQuJyInOw0KCQkJfQ0KCQkJZWNobyAnPGxpIGlkPSJjdGxtbWxldmVsJy4kcGFyc2VsZXZlbC4nXycuJHJvd1sidGFibGUiLiRwYXJzZWxldmVsLiJfaWQiXS4nIj4nLiRyb3dbInRhYmxlIi4kcGFyc2VsZXZlbC4iX25hbWUiXTsNCgkJCSRsYXN0WyRwYXJzZWxldmVsXSA9ICRyb3dbInRhYmxlIi4kcGFyc2VsZXZlbC4iX2lkIl07DQoJCX0NCgkJJHBhcnNlbGV2ZWwrKzsNCgl9DQp9DQplY2hvICI8L2xpPiI7DQp3aGlsZSgkY3VycmVudGxldmVsID4gMSl7DQoJZWNobyAiPC91bD48L2xpPiI7DQoJJGN1cnJlbnRsZXZlbC0tOw0KfQ0KZWNobyAiPC91bD4iOw0KZWNobyAiPHA+Ii4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJzdWJtaXRyZW9yZGVyIixsYW5nKCJzdWJtaXQiKSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsInJlc2V0b3JkZXIiLCR0aGlzLT5MYW5nKCJyZXNldG9yZGVyIikpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCJjYW5jZWwiLGxhbmcoImNhbmNlbCIpKS4iPC9wPiI7DQplY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsIm5ld29yZGVyIiwiIiwnIGlkPSJjdGxtbV9uZXdvcmRlciInKTsNCmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCg0KJHJlc3RyaWN0ZWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgicmVzdHJpY3RfcGVybWlzc2lvbnMiLGZhbHNlKTsNCmlmKCRyZXN0cmljdGVkICYmICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9hZHZhbmNlZCIpKQkkcmVzdHJpY3RlZCA9IGZhbHNlOw0KDQplY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQonOw0KaWYoISRyZXN0cmljdGVkIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oInByb2RjYXRhbG9ndWVfbWFuYWdlXyIuJGxldmVsYXJyYXlbMF0pKQllY2hvICdTb3J0YWJsZS5jcmVhdGUoImN0bG1tX2JpZ3NvcnRsaXN0Iik7DQonOw0KDQpmb3JlYWNoKCRsaXN0cyBhcyAkbGV2ZWxudW1iZXI9PiRsZXZlbCl7DQoJaWYoISRyZXN0cmljdGVkIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9tYW5hZ2VfIi4kbGV2ZWxhcnJheVskbGV2ZWxudW1iZXItMV0pKXsNCgkJZm9yZWFjaCgkbGV2ZWwgYXMgJGxpc3Qpew0KCQkJLyoNCgkJCSAqIHdlIGRvbid0IHVzZSBjb250YWlubWVudCB5ZXQgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGRlYWwgd2l0aCBjaGFuZ2luZyBwYXJlbnRzLi4uIHlldC4uLg0KCQkJICogZWNobyAnU29ydGFibGUuY3JlYXRlKCInLiRsaXN0LiciJy4oY291bnQoJGxldmVsKT4xPyIse2NvbnRhaW5tZW50OlsiLiRjb250YWlubWVudFskbGV2ZWxudW1iZXJdLiJdLCBkcm9wT25FbXB0eTpmYWxzZX0iOiIiKS4iKTsNCgkJCSAqICI7DQoJCQkgKi8NCgkJCWVjaG8gJ1NvcnRhYmxlLmNyZWF0ZSgiJy4kbGlzdC4nIik7DQoJJzsNCgkJfQ0KCX0NCn0NCmVjaG8gJw0KZnVuY3Rpb24gY3RsbW1fc3VibWl0X3Jlb3JkZXIoKXsNCgl2YXIgbmV3b3JkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3RsbW1fbmV3b3JkZXIiKTsNCgl2YXIgbGlzdG5vZGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN0bG1tX2JpZ3NvcnRsaXN0IikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpIik7DQoJZm9yKGk9MDtpPGxpc3Rub2Rlcy5sZW5ndGg7aSsrKXsNCgkJaWYobmV3b3JkZXIudmFsdWUgIT0gIiIpIG5ld29yZGVyLnZhbHVlICs9ICIsIjsNCgkJbmV3b3JkZXIudmFsdWUgKz0gbGlzdG5vZGVzW2ldLmlkLnN1YnN0cigxMCk7DQoJfQ0KCXJldHVybiB0cnVlOwkNCn0NCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCInLiRpZC4nbW9kdWxlZm9ybV8xIikub25zdWJtaXQgPSBmdW5jdGlvbigpew0KCXJldHVybiBjdGxtbV9zdWJtaXRfcmVvcmRlcigpOw0KfQ0KPC9zY3JpcHQ+JzsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCiRsZXZlbGFycmF5ID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQokZmluYWxsZXZlbCA9ICJ2aWRlbyI7DQoNCiRzZWFyY2htb2RlID0gKGlzc2V0KCRwYXJhbXNbInNlYXJjaG1vZGUiXSkgJiYgaW5fYXJyYXkoJHBhcmFtc1sic2VhcmNobW9kZSJdLCBhcnJheSgic2ltcGxlIiwiYWR2YW5jZWQiKSkpPyRwYXJhbXNbInNlYXJjaG1vZGUiXToiYWR2YW5jZWQiOw0KDQppZihpc3NldCgkcGFyYW1zWyJzdWJtaXRzZWFyY2giXSkpew0KCS8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyAjIFNFQVJDSCBSRVNVTFRTDQoJJGlubGluZSA9IChpc3NldCgkcGFyYW1zWyJpbmxpbmUiXSkgJiYgJHBhcmFtc1siaW5saW5lIl0pP3RydWU6ZmFsc2U7DQoJJGxpbmtyZXR1cm5pZCA9IChpc3NldCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pKT8kdGhpcy0+Z2V0X3BhZ2VpZCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pOmZhbHNlOw0KCWlmKCEkbGlua3JldHVybmlkKQkkbGlua3JldHVybmlkID0gJHJldHVybmlkOw0KCSR3aGF0ID0gJHBhcmFtc1sid2hhdCJdOw0KCSRsaW1pdCA9IGlzc2V0KCRwYXJhbXNbImxpbWl0Il0pPyRwYXJhbXNbImxpbWl0Il06MDsNCglpZihpc3NldCgkcGFyYW1zWyJuYnBlcnBhZ2UiXSkgJiYgJHBhcmFtc1sibmJwZXJwYWdlIl0gPiAwKXsNCgkJJG5icGVycGFnZSA9IChpbnQpICRwYXJhbXNbIm5icGVycGFnZSJdOw0KCQkkbGltaXQgPSAoKChpc3NldCgkcGFyYW1zWyJwYWdlaW5kZXgiXSk/JHBhcmFtc1sicGFnZWluZGV4Il06MSktMSkgKiAkbmJwZXJwYWdlKS4iLCIuJG5icGVycGFnZTsNCgl9ZWxzZXsNCgkJJG5icGVycGFnZSA9IGZhbHNlOw0KCX0NCgkNCgkkZW1wdHl0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlbXB0eXRlbXBsYXRlIiwiKioiKTsNCgkNCgkvLyB3ZSBwcmVwYXJlIHRoZSAiZG8gYW5vdGhlciBzZWFyY2giIGxpbmssIGtlZXBpbmcgdGhlIHNlYXJjaCBwYXJhbWV0ZXJzDQoJJG5ld3BhcmFtcyA9IGFycmF5KCJ3aGF0Ij0+JHdoYXQsICJzZWFyY2htb2RlIj0+JHNlYXJjaG1vZGUpOw0KCWlmKGlzc2V0KCRwYXJhbXNbImxpc3R0ZW1wbGF0ZSJdKSkJJG5ld3BhcmFtc1sibGlzdHRlbXBsYXRlIl0gPSAkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXTsNCglpZihpc3NldCgkcGFyYW1zWyJsaW1pdCJdKSkJCQkkbmV3cGFyYW1zWyJsaW1pdCJdID0gJHBhcmFtc1sibGltaXQiXTsNCglpZihpc3NldCgkcGFyYW1zWyJpbmxpbmUiXSkpCQkkbmV3cGFyYW1zWyJpbmxpbmUiXSA9ICRwYXJhbXNbImlubGluZSJdOw0KCWlmKGlzc2V0KCRwYXJhbXNbIm9yZGVyYnkiXSkpCQkkbmV3cGFyYW1zWyJvcmRlcmJ5Il0gPSAkcGFyYW1zWyJvcmRlcmJ5Il07DQoJaWYoaXNzZXQoJHBhcmFtc1sibmJwZXJwYWdlIl0pKQkJJG5ld3BhcmFtc1sibmJwZXJwYWdlIl0gPSAkcGFyYW1zWyJuYnBlcnBhZ2UiXTsNCglpZihpc3NldCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pKQkkbmV3cGFyYW1zWyJkZXRhaWxwYWdlIl0gPSAkcGFyYW1zWyJkZXRhaWxwYWdlIl07DQoJJGJhY2tsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAic2VhcmNoIiwgJHJldHVybmlkLCAkdGhpcy0+TGFuZygic2VhcmNoYWdhaW4iKSwgJG5ld3BhcmFtcywgIiIsIGZhbHNlLCAkaW5saW5lLCAiIiwgZmFsc2UsIGZhbHNlKTsJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJiYWNrbGluayIsJGJhY2tsaW5rKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImJyZWFkY3J1bWJzIixmYWxzZSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYXJlbnRvYmoiLGZhbHNlKTsNCgkNCgkkbXVsdGlwbGVsaXN0ZmllbGRzID0gYXJyYXkoKTsNCgkNCglpZigkc2VhcmNobW9kZSA9PSAiYWR2YW5jZWQiKXsNCgkJLy8gQURWQU5DRUQgU0VBUkNIDQoJCQ0KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJDQoJCS8vIHdlIHBhcnNlIHRoZSBrZXl3b3Jkcw0KCQkkd2hlcmUgPSAkdGhpcy0+Z2V0V2hlcmVGcm9tUGFyYW1zKCRwYXJhbXMsIHRydWUpOw0KCQlsaXN0KCR3aGVyZWNsYXVzZSwgJHdoZXJldmFsdWVzKSA9ICR0aGlzLT5idWlsZFdoZXJlKCR3aGVyZSwgJHdoYXQpOw0KCQkNCgkJJGdldGZ1bmN0aW9uID0gImdldF9sZXZlbF8iLiR3aGF0Ow0KCQkvLyB3ZSBkbyB0aGUgcXVlcnkNCgkJJGl0ZW1saXN0ID0gJHRoaXMtPiRnZXRmdW5jdGlvbihhcnJheSgpLCBmYWxzZSwgIiIsICIiLCBpc3NldCgkcGFyYW1zWyJvcmRlcmJ5Il0pPyRwYXJhbXNbIm9yZGVyYnkiXTowLCAkbGltaXQsICR3aGVyZWNsYXVzZSwgJHdoZXJldmFsdWVzKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtY291bnQiLGNvdW50KCRpdGVtbGlzdCkpOw0KCQkNCgkJaWYoY291bnQoJGl0ZW1saXN0KSA+IDApew0KCQkNCgkJCSR0b3RhbCA9ICRuYnBlcnBhZ2U/JHRoaXMtPmNvdW50c29tZXRoaW5nKCR3aGF0LCJpZCIsYXJyYXkoKSwkd2hlcmVjbGF1c2UsICR3aGVyZXZhbHVlcyk6ZmFsc2U7DQoJCQkkdGhpcy0+cGFnaW5hdGUoJHdoYXQsJHRvdGFsLCRpZCwkcmV0dXJuaWQsJHBhcmFtcywic2VhcmNoIik7DQoJCQkNCgkJCS8vIHdlIG11c3QgYnVpbGQgYSBkZXRhaWwgbGluayBmb3IgZWFjaCByZXN1bHQgZWxlbWVudA0KCQkJJG5ld2xpc3QgPSBhcnJheSgpOw0KCQkJZm9yZWFjaCgkaXRlbWxpc3QgYXMgJGl0ZW0pew0KCQkJCSRpdGVtID0gJHRoaXMtPmFkZGZyb250ZW5kdXJscygkaXRlbSwkcGFyYW1zLCRpZCwkbGlua3JldHVybmlkKTsNCgkJCQkkaXRlbS0+aXNfc2VsZWN0ZWQgPSBmYWxzZTsNCgkJCQlhcnJheV9wdXNoKCRuZXdsaXN0LCAkaXRlbSk7DQoJCQl9DQoNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCRuZXdsaXN0KTsNCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigibGV2ZWx0aXRsZSIsJHRoaXMtPkxhbmcoJHdoYXQuIl9wbHVyYWwiKSk7DQoJCQkNCgkJfWVsc2V7DQoJCQkkdGhpcy0+cGFnaW5hdGUoJHdoYXQsMCwkaWQsJHJldHVybmlkLCRwYXJhbXMsInNlYXJjaCIpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsJG5ld2xpc3QpOw0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJlcnJvcl9tc2ciLCR0aGlzLT5MYW5nKCJlcnJvcl9ub2l0ZW1mb3VuZCIpKTsNCgkJfQ0KCQkNCgkJLy8gd2UgcmV0cmlldmUgdGhlIGRpc3BsYXkgdGVtcGxhdGUNCgkJaWYoY291bnQoJGl0ZW1saXN0KSA9PSAwICYmICRlbXB0eXRlbXBsYXRlICE9ICIqKiIpew0KCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCRlbXB0eXRlbXBsYXRlKTsNCgkJfWVsc2V7DQoJCQlpZihpc3NldCgkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSkpCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sibGlzdHRlbXBsYXRlIl0sICR0aGlzLT5HZXROYW1lKCkpOw0KCQkJaWYoIWlzc2V0KCR0ZW1wbGF0ZSkgfHwgISR0ZW1wbGF0ZSl7DQoJCQkJJHRlbXBsYXRlbmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzZWFyY2hyZXN1bHRzdGVtcGxhdGUiLCIqKiIpOw0KCQkJCWlmKCR0ZW1wbGF0ZW5hbWUgPT0gIioqIikJJHRlbXBsYXRlbmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfIi4kd2hhdCk7DQoJCQkJJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZW5hbWUsICR0aGlzLT5HZXROYW1lKCkpOw0KCQkJfQkJDQoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOw0KCQl9DQoJCQ0KCX1lbHNlew0KCQkvLyBTSU1QTEUgU0VBUkNIDQoJCQ0KCQkkdGVtcGxhdGUgPSBmYWxzZTsNCgkJJGxldmVscyA9ICgkd2hhdCA9PSAiLWFsbCIpPyRsZXZlbGFycmF5OmFycmF5KCR3aGF0KTsNCgkJDQoJCS8vIHdlIHJldHJpZXZlIHRoZSBkaXNwbGF5IHRlbXBsYXRlDQoJCS8vIGlmIHRoZSB1c2VyIGhhcyBhc2tlZCBmb3IgYSBzcGVjaWZpYyBkaXNwbGF5IHRlbXBsYXRlLCB3ZSB3aWxsIHVzZSBpdCBmb3IgZXZlcnkgY2F0ZWdvcnkgOg0KCQlpZihpc3NldCgkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSkpCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sibGlzdHRlbXBsYXRlIl0sICR0aGlzLT5HZXROYW1lKCkpOw0KCQlpZighaXNzZXQoJHRlbXBsYXRlKSB8fCAhJHRlbXBsYXRlKXsNCgkJCSR0ZW1wbGF0ZW5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNocmVzdWx0c3RlbXBsYXRlIiwiKioiKTsNCgkJCWlmKCR0ZW1wbGF0ZW5hbWUgPT0gIioqIil7DQoJCQkJaWYoY291bnQoJGxldmVscykgPT0gMSl7DQoJCQkJCSR0ZW1wbGF0ZW5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibGlzdHRlbXBsYXRlXyIuJGxldmVsc1swXSk7DQoJCQkJCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkdGVtcGxhdGVuYW1lLCAkdGhpcy0+R2V0TmFtZSgpKTsNCgkJCQl9ZWxzZXsNCgkJCQkJJHRlbXBsYXRlID0gZmFsc2U7DQoJCQkJfQ0KCQkJfWVsc2V7DQoJCQkJJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZW5hbWUsICR0aGlzLT5HZXROYW1lKCkpOw0KCQkJfQ0KCQl9DQoNCgkJDQoJCWZvcmVhY2goJGxldmVscyBhcyAkbGV2ZWwpew0KCQkJJHdoZXJlY2xhdXNlID0gIiI7DQoJCQkkZmllbGRzID0gJHRoaXMtPmdldF9sZXZlbHNlYXJjaGZpZWxkcygkbGV2ZWwpOw0KCQkJJGtleXdvcmRzID0gJHRoaXMtPnBhcnNla2V5d29yZHMoaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbInNlYXJjaGZpZWxkIl0pKTsNCgkJCWZvcmVhY2goJGZpZWxkcyBhcyAkZmllbGQpew0KCQkJCWZvcmVhY2goJGtleXdvcmRzIGFzICRrZXl3b3JkKXsNCgkJCQkJJHdoZXJlY2xhdXNlIC49ICgkd2hlcmVjbGF1c2UgPT0gIiI/IiI6IiBPUiAiKS4iQS4iLiRmaWVsZC4iIExJS0UgJyUiLmFkZHNsYXNoZXMoJGtleXdvcmQpLiIlJyI7DQoJCQkJfQ0KCQkJfQ0KCQkJJHdoZXJlY2xhdXNlID0gIkEuYWN0aXZlPTEiLigkd2hlcmVjbGF1c2UgPT0gIiI/IiI6IiBBTkQgKCIuJHdoZXJlY2xhdXNlLiIpIik7DQoJCQkkZ2V0ZnVuY3Rpb24gPSAiZ2V0X2xldmVsXyIuJGxldmVsOw0KCQkJJGl0ZW1saXN0ID0gJHRoaXMtPiRnZXRmdW5jdGlvbihhcnJheSgpLCBmYWxzZSwgIiIsICIiLCBpc3NldCgkcGFyYW1zWyJvcmRlcmJ5Il0pPyRwYXJhbXNbIm9yZGVyYnkiXTowLCAkbGltaXQsICR3aGVyZWNsYXVzZSk7DQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1jb3VudCIsY291bnQoJGl0ZW1saXN0KSk7DQoJCQkNCgkJCWlmKGNvdW50KCRpdGVtbGlzdCkgPiAwKXsNCg0KCQkJCSR0b3RhbCA9ICRuYnBlcnBhZ2U/JHRoaXMtPmNvdW50c29tZXRoaW5nKCRsZXZlbCwiaWQiLGFycmF5KCksJHdoZXJlY2xhdXNlLCBhcnJheSgpKTpmYWxzZTsNCgkJCQkkdGhpcy0+cGFnaW5hdGUoJHdoYXQsJHRvdGFsLCRpZCwkcmV0dXJuaWQsJHBhcmFtcywic2VhcmNoIik7DQoJCQkJDQoJCQkJLy8gd2UgbXVzdCBidWlsZCBhIGRldGFpbCBsaW5rIGZvciBlYWNoIHJlc3VsdCBlbGVtZW50DQoJCQkJJG5ld2xpc3QgPSBhcnJheSgpOw0KCQkJCWZvcmVhY2goJGl0ZW1saXN0IGFzICRpdGVtKXsNCgkJCQkJJGl0ZW0gPSAkdGhpcy0+YWRkZnJvbnRlbmR1cmxzKCRpdGVtLCRwYXJhbXMsJGlkLCRsaW5rcmV0dXJuaWQpOw0KCQkJCQkkaXRlbS0+aXNfc2VsZWN0ZWQgPSBmYWxzZTsNCgkJCQkJYXJyYXlfcHVzaCgkbmV3bGlzdCwgJGl0ZW0pOw0KCQkJCX0NCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1saXN0IiwkbmV3bGlzdCk7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsZXZlbHRpdGxlIiwkdGhpcy0+TGFuZygkbGV2ZWwuIl9wbHVyYWwiKSk7DQoJCQkJCQkJDQoJCQkJaWYoJHRlbXBsYXRlID09IEZBTFNFKXsNCgkJCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJzZWFyY2hfZ2VuZXJhbHJlc3VsdHMudHBsIik7DQoJCQkJfWVsc2V7DQoJCQkJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0ZW1wbGF0ZSk7CQkJCQ0KCQkJCX0NCgkJCQkNCgkJCX1lbHNlew0KCQkJCSR0aGlzLT5wYWdpbmF0ZSgkd2hhdCwwLCRpZCwkcmV0dXJuaWQsJHBhcmFtcywic2VhcmNoIik7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsJGl0ZW1saXN0KTsNCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImVycm9yX21zZyIsJHRoaXMtPkxhbmcoImVycm9yX25vaXRlbWZvdW5kIikpOw0KCQkJfQ0KCQkJaWYoY291bnQoJGl0ZW1saXN0KSA9PSAwICYmICRlbXB0eXRlbXBsYXRlICE9ICIqKiIpew0KCQkJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkZW1wdHl0ZW1wbGF0ZSk7CQkJCQ0KCQkJfWVsc2VpZigkdGVtcGxhdGUgPT0gRkFMU0Upew0KCQkJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgic2VhcmNoX2dlbmVyYWxyZXN1bHRzLnRwbCIpOw0KCQkJfWVsc2V7DQoJCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsNCgkJCX0NCgkJfQ0KCQkNCgl9DQoJDQoJLy8gIyBFTkQgU0VBUkNIIFJFU1VMVFMNCgkvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCn1lbHNlew0KCQ0KCS8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCgkvLyAjIFNFQVJDSCBGT1JNCQ0KCQ0KCSR3aGF0ID0gKGlzc2V0KCRwYXJhbXNbIndoYXQiXSkgJiYgaW5fYXJyYXkoJHBhcmFtc1sid2hhdCJdLCRsZXZlbGFycmF5KSk/JHBhcmFtc1sid2hhdCJdOiItYWxsIjsNCglpZigkc2VhcmNobW9kZSA9PSAiYWR2YW5jZWQiICYmICR3aGF0ID09ICItYWxsIikJCSR3aGF0ID0gJGZpbmFsbGV2ZWw7DQoNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAic2VhcmNoIiwgJHJldHVybmlkKTsNCgllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJ3aGF0IiwgJHdoYXQpOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgInNlYXJjaG1vZGUiLCAkc2VhcmNobW9kZSk7DQoJaWYoaXNzZXQoJHBhcmFtc1sibGlzdHRlbXBsYXRlIl0pKQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJsaXN0dGVtcGxhdGUiLCAkcGFyYW1zWyJsaXN0dGVtcGxhdGUiXSk7DQoJaWYoaXNzZXQoJHBhcmFtc1sibGltaXQiXSkpCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImxpbWl0IiwgJHBhcmFtc1sibGltaXQiXSk7DQoJaWYoaXNzZXQoJHBhcmFtc1siaW5saW5lIl0pKQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJpbmxpbmUiLCAkcGFyYW1zWyJpbmxpbmUiXSk7DQoJaWYoaXNzZXQoJHBhcmFtc1sib3JkZXJieSJdKSkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAib3JkZXJieSIsICRwYXJhbXNbIm9yZGVyYnkiXSk7DQoJaWYoaXNzZXQoJHBhcmFtc1sibmJwZXJwYWdlIl0pKQkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAibmJwZXJwYWdlIiwgJHBhcmFtc1sibmJwZXJwYWdlIl0pOw0KCWlmKGlzc2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSkpCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImRldGFpbHBhZ2UiLCAkcGFyYW1zWyJkZXRhaWxwYWdlIl0pOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbigic2VhcmNodGl0bGUiLCAkdGhpcy0+TGFuZygic2VhcmNodGl0bGUiKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ3aGF0IiwgKCR3aGF0ID09ICItYWxsIik/ZmFsc2U6JHRoaXMtPkxhbmcoJHdoYXQpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInN1Ym1pdCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXRzZWFyY2giLCAkdGhpcy0+TGFuZygic2VhcmNoYnRuIikpKTsNCg0KCWlmKCRzZWFyY2htb2RlID09ICJzaW1wbGUiKXsNCgkJLy8gV0UgQVJFIERPSU5HIEEgU0lNUExFIFNFQVJDSA0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInNlYXJjaGZpZWxkIiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInNlYXJjaGZpZWxkIiwiIiw1MCkpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoInNlYXJjaC50cGwiKTsNCgkJDQoJfWVsc2V7DQoJCS8vIFdFIEFSRSBET0lORyBBTiBBRFZBTkNFRCBTRUFSQ0gNCg0KCQkkdGhpcy0+Y3JlYXRlRmllbGRGb3JtKCR3aGF0LCAkaWQsIHRydWUpOw0KDQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgic2VhcmNoXyIuJHdoYXQuIi50cGwiKTsNCgkJDQoJfQ0KCQ0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgkNCgkvLyAjIEVORCBTRUFSQ0ggRk9STQ0KCS8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMJDQoJDQp9DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.sitemap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCiRsZXZlbGFycmF5ID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQokbW9kZSA9IChpc3NldCgkcGFyYW1zWyJtb2RlIl0pICYmIGluX2FycmF5KCRwYXJhbXNbIm1vZGUiXSxhcnJheSgiZ29vZ2xlIiwidXJsbGlzdCIsImZyb250ZW5kIikpKT8kcGFyYW1zWyJtb2RlIl06ImZyb250ZW5kIjsNCiR3aGF0ID0gaXNzZXQoJHBhcmFtc1sid2hhdCJdKT9leHBsb2RlKCd8JywkcGFyYW1zWyJ3aGF0Il0pOiRsZXZlbGFycmF5Ow0KJGxpbmtyZXR1cm5pZCA9IChpc3NldCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pKT8kdGhpcy0+Z2V0X3BhZ2VpZCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pOiRyZXR1cm5pZDsNCiRpbmxpbmUgPSAoaXNzZXQoJHBhcmFtc1siaW5saW5lIl0pICYmICRwYXJhbXNbImlubGluZSJdKT90cnVlOmZhbHNlOw0KDQokZGIgPSAkdGhpcy0+R2V0RGIoKTsNCiRpID0gMDsNCiRzZWxlY3QgPSAiIjsNCiR0YWJsZXMgPSAiIjsNCiRvcmRlciA9ICIiOw0Kd2hpbGUoJGkgPCBjb3VudCgkbGV2ZWxhcnJheSkpew0KCSRsZXZlbCA9ICRsZXZlbGFycmF5WyRpXTsNCgkkaSsrOw0KCSRzZWxlY3QgLj0gKCRzZWxlY3Q9PSIiPyIiOiIsICIpLiJ0YWJsZSIuJGkuIi5hbGlhcyB0YWJsZSIuJGkuIl9hbGlhcywgdGFibGUiLiRpLiIubmFtZSB0YWJsZSIuJGkuIl9uYW1lIjsNCglpZigkaSA9PSAxKXsNCgkJJHRhYmxlcyA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV8iLiRsZXZlbC4iIHRhYmxlIi4kaTsNCgl9ZWxzZXsNCgkJJHRhYmxlcyAuPSAiIExFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV8iLiRsZXZlbC4iIHRhYmxlIi4kaS4gIiBPTiB0YWJsZSIuKCRpLTEpLiIuaWQ9dGFibGUiLiRpLiIucGFyZW50IjsNCgl9DQoJJG9yZGVyIC49ICgkb3JkZXI9PSIiPyIiOiIsICIpLiJ0YWJsZSIuJGkuIi5pdGVtX29yZGVyIjsNCn0NCiRxdWVyeSA9ICJTRUxFQ1QgJHNlbGVjdCBGUk9NICR0YWJsZXMgT1JERVIgQlkgJG9yZGVyIjsNCiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KDQokbGFzdCA9IGFycmF5KCk7DQokY3VycmVudGxldmVsID0gMTsNCmlmKCRtb2RlID09ICdmcm9udGVuZCcpCWVjaG8gJzx1bCBpZD0iJy4kdGhpcy0+R2V0TmFtZSgpLidfbWFwIj4nOw0Kd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCSRwYXJzZWxldmVsID0gMTsNCgl3aGlsZSgkcGFyc2VsZXZlbCA8PSAkaSl7DQoJCWlmKGluX2FycmF5KCRsZXZlbGFycmF5WyRwYXJzZWxldmVsLTFdLCR3aGF0KSAmJiAoIWlzc2V0KCRsYXN0WyRwYXJzZWxldmVsXSkgfHwgJHJvd1sidGFibGUiLiRwYXJzZWxldmVsLiJfYWxpYXMiXSAhPSAkbGFzdFskcGFyc2VsZXZlbF0pICl7DQoJCQkkd2FudGVkd2hhdCA9ICgkcGFyc2VsZXZlbD09JGkpPyRsZXZlbGFycmF5WyRpLTFdOiRsZXZlbGFycmF5WyRwYXJzZWxldmVsXTsNCgkJCSR3YW50ZWRwYXJhbSA9ICgkcGFyc2VsZXZlbD09JGkpPyJhbGlhcyI6InBhcmVudCI7DQoJCQkkbmV3cGFyYW1zID0gYXJyYXkoIndoYXQiPT4kd2FudGVkd2hhdCwgJHdhbnRlZHBhcmFtPT4kcm93WyJ0YWJsZSIuJHBhcnNlbGV2ZWwuIl9hbGlhcyJdKTsNCgkJCSRwcmV0dHl1cmwgPSAkdGhpcy0+QnVpbGRQcmV0dHlVcmxzKCRuZXdwYXJhbXMsICRsaW5rcmV0dXJuaWQpOw0KCQkJaWYoJG1vZGUgPT0gJ2Zyb250ZW5kJyl7DQoJCQkJaWYoJGN1cnJlbnRsZXZlbCA9PSAkcGFyc2VsZXZlbCl7DQoJCQkJCWlmKCRsYXN0WyRjdXJyZW50bGV2ZWxdKQllY2hvICI8L2xpPiI7DQoJCQkJfWVsc2VpZigkY3VycmVudGxldmVsID4gJHBhcnNlbGV2ZWwpew0KCQkJCQl3aGlsZSgkY3VycmVudGxldmVsID4gJHBhcnNlbGV2ZWwpew0KCQkJCQkJZWNobyAiPC9saT48L3VsPjwvbGk+IjsNCgkJCQkJCSRjdXJyZW50bGV2ZWwtLTsNCgkJCQkJfQ0KCQkJCX1lbHNlaWYoJGN1cnJlbnRsZXZlbCA8ICRwYXJzZWxldmVsKXsNCgkJCQkJJGN1cnJlbnRsZXZlbCsrOw0KCQkJCQllY2hvICc8dWw+JzsNCgkJCQl9DQoJCQkJZWNobyAnPGxpPicuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdCIsICRsaW5rcmV0dXJuaWQsICRyb3dbInRhYmxlIi4kcGFyc2VsZXZlbC4iX25hbWUiXSwgJG5ld3BhcmFtcywgIiIsIGZhbHNlLCAkaW5saW5lLCAiIiwgZmFsc2UsICRwcmV0dHl1cmwpOw0KCQkJfWVsc2VpZigkbW9kZSA9PSAndXJsbGlzdCcpew0KCQkJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdCIsICRsaW5rcmV0dXJuaWQsICIiLCAkbmV3cGFyYW1zLCAiIiwgdHJ1ZSwgJGlubGluZSwgIiIsIGZhbHNlLCAkcHJldHR5dXJsKS4nDQonOw0KCQkJfWVsc2VpZigkbW9kZSA9PSAnZ29vZ2xlJyl7DQoJCQkJJHByaW9yaXR5ID0gOSAtICRwYXJzZWxldmVsOw0KCQkJCWlmKCRwcmlvcml0eSA8IDApCSRwcmlvcml0eSA9IDE7DQoJCQkJJHByaW9yaXR5ID0gIjAuIi4kcHJpb3JpdHk7DQoJCQkJZWNobyAnDQoJPHVybD4NCgkJPGxvYz4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImRlZmF1bHQiLCAkbGlua3JldHVybmlkLCAiIiwgJG5ld3BhcmFtcywgIiIsIHRydWUsICRpbmxpbmUsICIiLCBmYWxzZSwgJHByZXR0eXVybCkuJzwvbG9jPg0KCQk8cHJpb3JpdHk+Jy4kcHJpb3JpdHkuJzwvcHJpb3JpdHk+DQoJPC91cmw+JzsNCgkJCX0NCgkJCQ0KCQkJJGxhc3RbJHBhcnNlbGV2ZWxdID0gJHJvd1sidGFibGUiLiRwYXJzZWxldmVsLiJfYWxpYXMiXTsNCgkJfQ0KCQkkcGFyc2VsZXZlbCsrOw0KCX0NCn0NCmlmKCRtb2RlID09ICdmcm9udGVuZCcpew0KCWVjaG8gIjwvbGk+IjsNCgl3aGlsZSgkY3VycmVudGxldmVsID4gMSl7DQoJCWVjaG8gIjwvdWw+PC9saT4iOw0KCQkkY3VycmVudGxldmVsLS07DQoJfQ0KCWVjaG8gIjwvdWw+IjsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/action.toggle.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIFBBUkFNUyA6DQp3aGF0KiA6ICdhY3RpdmUnIHx8ICdkZWZhdWx0Jw0KdGFibGVuYW1lKg0KcHJlZml4DQpwcmVmaXguaWQNCm5ld3ZhbCA6IG5ldyB2YWx1ZSBmb3IgYWN0aXZlICggMCB8fCAxICkNCiovDQoNCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokbmV3cGFyYW1zID0gaXNzZXQoJHBhcmFtc1snbGV2ZWxuYW1lJ10pP2FycmF5KCdhY3RpdmVfdGFiJz0+JHBhcmFtc1snbGV2ZWxuYW1lJ10pOmFycmF5KCk7DQoNCmlmKCAhaXNzZXQoJHBhcmFtc1snd2hhdCddKSB8fCAhaXNzZXQoJHBhcmFtc1sndGFibGVuYW1lJ10pICkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJG5ld3BhcmFtcyk7DQoNCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCiRkYnRhYmxlID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfJy4kcGFyYW1zWyd0YWJsZW5hbWUnXTsNCiRmaWVsZCA9ICRwYXJhbXNbJ3doYXQnXTsNCiRpdGVtaWQgPSBpc3NldCgkcGFyYW1zWydwcmVmaXgnXSk/JHBhcmFtc1skcGFyYW1zWydwcmVmaXgnXS4naWQnXTpmYWxzZTsNCiR2YWx1ZSA9IGlzc2V0KCRwYXJhbXNbJ25ld3ZhbCddKT8kcGFyYW1zWyduZXd2YWwnXToxOw0KDQppZigkZmllbGQgPT0gJ2FjdGl2ZScpew0KCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGFjdGl2ZT0/IFdIRVJFIGlkPT8gTElNSVQgMSI7DQoJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdmFsdWUsICRpdGVtaWQpKTsNCn1lbHNlaWYoJGZpZWxkID09ICdkZWZhdWx0Jyl7DQoJaWYoaXNzZXQoJHBhcmFtc1sicGFyZW50Il0pICYmIGlzc2V0KCRwYXJhbXNbInBhcmVudGRlZmF1bHQiXSkgJiYgJHBhcmFtc1sicGFyZW50ZGVmYXVsdCJdKSB7DQoJCSRxdWVyeSA9ICJVUERBVEUgJGRidGFibGUgU0VUIGlzZGVmYXVsdD0wIFdIRVJFIHBhcmVudD0/IjsNCgkJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWyJwYXJlbnQiXSkpOw0KCX1lbHNlew0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpc2RlZmF1bHQ9MCI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCX0NCglpZigkaXRlbWlkKXsNCgkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXNkZWZhdWx0PTEgV0hFUkUgaWQ9PyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGl0ZW1pZCkpOw0KCX0NCn0NCg0KDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/function.createFieldForm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8P3BocA0KCQkkY29tcGFyZWNob2ljZXMgPSBhcnJheSgkdGhpcy0+TGFuZygiY29udGFpbnMiKSA9PjEsICR0aGlzLT5MYW5nKCJpc2V4YWN0bHkiKSA9PjAsICR0aGlzLT5MYW5nKCJpc25vdCIpID0+MiwgJHRoaXMtPkxhbmcoImlzaGlnaGVydGhhbiIpID0+MywgJHRoaXMtPkxhbmcoImlzbG93ZXJ0aGFuIikgPT40KTsNCgkJJGRhdGVjb21wYXJlY2hvaWNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCJxdWVyeXVzZSIpID0+ICJOQSIsICR0aGlzLT5MYW5nKCJpc2FmdGVyIikgPT4zLCAkdGhpcy0+TGFuZygiaXNiZWZvcmUiKSA9PjQsICR0aGlzLT5MYW5nKCJpc2JldHdlZW4iKSA9PjUpOw0KCQkkb3JkZXJjaG9pY2VzID0gYXJyYXkoIkFTQyI9PiJBU0MiLCJERVNDIj0+IkRFU0MiKTsNCg0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCg0KCQlzd2l0Y2goJHdoYXQpew0KCQkJY2FzZSAiY2F0ZWdvcnkiOg0KCQkJCSRvdXRwdXRbImRlc2NyaXB0aW9uIl0gPSBhcnJheSgkdGhpcy0+TGFuZygiY2F0ZWdvcnlfZGVzY3JpcHRpb24iKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX2Rlc2NyaXB0aW9uIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF9kZXNjcmlwdGlvbiIsIiIsMzApKTsNCgkJCQkkb3V0cHV0WyJuYW1lIl0gPSBhcnJheSgkdGhpcy0+TGFuZygibmFtZSIpLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImNvbXBhcmVfbmFtZSIsJGNvbXBhcmVjaG9pY2VzLC0xLDEpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiZmllbGRfbmFtZSIsIiIsMzApKTsNCgkJCQkNCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInRtcHRpbWUiLCB0aW1lKCkpOw0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigic19hbmQiLCAkdGhpcy0+TGFuZygidGhpc2FuZHRoaXMiKSk7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0bXBfcHJlZml4IiwgJGlkLiJkYXRlX2RhdGVfbW9kaWZpZWRfIik7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0bXBfcHJlZml4MiIsICRpZC4iZGF0ZV9kYXRlX21vZGlmaWVkX3BhcnQyXyIpOw0KCQkJCSR0bXB0ZW1wbGF0ZSA9ICd7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcF9wcmVmaXggdGltZT0kdG1wdGltZSBzdGFydF95ZWFyPSItMTAiIGVuZF95ZWFyPSIrMTAifSB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcF9wcmVmaXggdGltZT0kdG1wdGltZSB9PGRpdiBpZD0iJy4kaWQuJ2RhdGVfbW9kaWZpZWRfcGFydDIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+IHskc19hbmR9IHtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kdG1wX3ByZWZpeDIgdGltZT0kdG1wdGltZSBzdGFydF95ZWFyPSItMTAiIGVuZF95ZWFyPSIrMTAifSB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcF9wcmVmaXgyIHRpbWU9JHRtcHRpbWUgfTwvZGl2Pic7DQoJCQkJJHRtcG91dCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiY29tcGFyZV9kYXRlX21vZGlmaWVkIiwkZGF0ZWNvbXBhcmVjaG9pY2VzLC0xLCJOQSIsIiBvbmNoYW5nZT1cImRhdGVpbnB1dF9jaGFuZ2Vjb21wYXJlKCciLiRpZC4iZGF0ZV9tb2RpZmllZCcsIHRoaXMudmFsdWUpO1wiIikuIiAiLiR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wdGVtcGxhdGUpOw0KCQkJCSR0bXBvdXQgLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwiZmllbGRfZGF0ZV9tb2RpZmllZCIsICJfX2RhdGVfZmllbGQiKTsNCgkJCQkkb3V0cHV0WyJkYXRlX21vZGlmaWVkIl0gPSBhcnJheSgkdGhpcy0+TGFuZygiZGF0ZV9tb2RpZmllZCIpLCAkdG1wb3V0KTsNCgkJCQkkb3JkZXJmaWVsZG9wdGlvbnMgPSBhcnJheSgiIj0+IiIsImRlc2NyaXB0aW9uIj0+ImRlc2NyaXB0aW9uIiwiaWQiPT4iaWQiLCJuYW1lIj0+Im5hbWUiLCJhbGlhcyI9PiJhbGlhcyIsIml0ZW1fb3JkZXIiPT4iaXRlbV9vcmRlciIsImRhdGVfbW9kaWZpZWQiPT4iZGF0ZV9tb2RpZmllZCIpOw0KCQkJCSRvdXRwdXRbIm9yZGVyYnkiXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJvcmRlcmJ5ZmllbGQiKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJvcmRlciIsJG9yZGVyZmllbGRvcHRpb25zKS4iICIuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJvcmRlcl90eXBlIiwkb3JkZXJjaG9pY2VzKSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJhbGJ1bSI6DQoJCQkJJG91dHB1dFsiZGVzY3JpcHRpb24iXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJhbGJ1bV9kZXNjcmlwdGlvbiIpLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImNvbXBhcmVfZGVzY3JpcHRpb24iLCRjb21wYXJlY2hvaWNlcywtMSwxKS4iICIuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImZpZWxkX2Rlc2NyaXB0aW9uIiwiIiwzMCkpOw0KCQkJCSRvdXRwdXRbImxhbmciXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJhbGJ1bV9sYW5nIiksICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiY29tcGFyZV9sYW5nIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF9sYW5nIiwiIiwzMCkpOw0KCQkJCSRvdXRwdXRbImRlZmF1bHRfd2lkdGgiXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJhbGJ1bV9kZWZhdWx0X3dpZHRoIiksICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiY29tcGFyZV9kZWZhdWx0X3dpZHRoIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF9kZWZhdWx0X3dpZHRoIiwiIiwzMCkpOw0KCQkJCSRvdXRwdXRbImRlZmF1bHRfaGVpZ2h0Il0gPSBhcnJheSgkdGhpcy0+TGFuZygiYWxidW1fZGVmYXVsdF9oZWlnaHQiKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX2RlZmF1bHRfaGVpZ2h0IiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF9kZWZhdWx0X2hlaWdodCIsIiIsMzApKTsNCgkJCQkkb3V0cHV0WyJwYXJlbnQiXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJwYXJlbnQiKSk7DQoJCQkJJHBhcmVudG9wdGlvbnMgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeW9wdGlvbnMoImFsYnVtIik7DQoJCQkJJG91dHB1dFsicGFyZW50Il1bXSA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZmllbGRfcGFyZW50IiwkcGFyZW50b3B0aW9ucyk7DQoJCQkJJG91dHB1dFsibmFtZSJdID0gYXJyYXkoJHRoaXMtPkxhbmcoIm5hbWUiKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX25hbWUiLCRjb21wYXJlY2hvaWNlcywtMSwxKS4iICIuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImZpZWxkX25hbWUiLCIiLDMwKSk7DQoJCQkJDQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0bXB0aW1lIiwgdGltZSgpKTsNCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInNfYW5kIiwgJHRoaXMtPkxhbmcoInRoaXNhbmR0aGlzIikpOw0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigidG1wX3ByZWZpeCIsICRpZC4iZGF0ZV9kYXRlX21vZGlmaWVkXyIpOw0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigidG1wX3ByZWZpeDIiLCAkaWQuImRhdGVfZGF0ZV9tb2RpZmllZF9wYXJ0Ml8iKTsNCgkJCQkkdG1wdGVtcGxhdGUgPSAne2h0bWxfc2VsZWN0X2RhdGUgcHJlZml4PSR0bXBfcHJlZml4IHRpbWU9JHRtcHRpbWUgc3RhcnRfeWVhcj0iLTEwIiBlbmRfeWVhcj0iKzEwIn0ge2h0bWxfc2VsZWN0X3RpbWUgcHJlZml4PSR0bXBfcHJlZml4IHRpbWU9JHRtcHRpbWUgfTxkaXYgaWQ9IicuJGlkLidkYXRlX21vZGlmaWVkX3BhcnQyIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiB7JHNfYW5kfSB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcF9wcmVmaXgyIHRpbWU9JHRtcHRpbWUgc3RhcnRfeWVhcj0iLTEwIiBlbmRfeWVhcj0iKzEwIn0ge2h0bWxfc2VsZWN0X3RpbWUgcHJlZml4PSR0bXBfcHJlZml4MiB0aW1lPSR0bXB0aW1lIH08L2Rpdj4nOw0KCQkJCSR0bXBvdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImNvbXBhcmVfZGF0ZV9tb2RpZmllZCIsJGRhdGVjb21wYXJlY2hvaWNlcywtMSwiTkEiLCIgb25jaGFuZ2U9XCJkYXRlaW5wdXRfY2hhbmdlY29tcGFyZSgnIi4kaWQuImRhdGVfbW9kaWZpZWQnLCB0aGlzLnZhbHVlKTtcIiIpLiIgIi4kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRtcHRlbXBsYXRlKTsNCgkJCQkkdG1wb3V0IC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsImZpZWxkX2RhdGVfbW9kaWZpZWQiLCAiX19kYXRlX2ZpZWxkIik7DQoJCQkJJG91dHB1dFsiZGF0ZV9tb2RpZmllZCJdID0gYXJyYXkoJHRoaXMtPkxhbmcoImRhdGVfbW9kaWZpZWQiKSwgJHRtcG91dCk7DQoJCQkJJG9yZGVyZmllbGRvcHRpb25zID0gYXJyYXkoIiI9PiIiLCJkZXNjcmlwdGlvbiI9PiJkZXNjcmlwdGlvbiIsImxhbmciPT4ibGFuZyIsImRlZmF1bHRfd2lkdGgiPT4iZGVmYXVsdF93aWR0aCIsImRlZmF1bHRfaGVpZ2h0Ij0+ImRlZmF1bHRfaGVpZ2h0IiwicGFyZW50Ij0+InBhcmVudCIsImlkIj0+ImlkIiwibmFtZSI9PiJuYW1lIiwiYWxpYXMiPT4iYWxpYXMiLCJpdGVtX29yZGVyIj0+Iml0ZW1fb3JkZXIiLCJkYXRlX21vZGlmaWVkIj0+ImRhdGVfbW9kaWZpZWQiKTsNCgkJCQkkb3V0cHV0WyJvcmRlcmJ5Il0gPSBhcnJheSgkdGhpcy0+TGFuZygib3JkZXJieWZpZWxkIiksICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwib3JkZXIiLCRvcmRlcmZpZWxkb3B0aW9ucykuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwib3JkZXJfdHlwZSIsJG9yZGVyY2hvaWNlcykpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidmlkZW8iOg0KCQkJCSRvdXRwdXRbImRlc2NyaXB0aW9uIl0gPSBhcnJheSgkdGhpcy0+TGFuZygidmlkZW9fZGVzY3JpcHRpb24iKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX2Rlc2NyaXB0aW9uIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF9kZXNjcmlwdGlvbiIsIiIsMzApKTsNCgkJCQkkdG1wb3B0aW9ucyA9ICR0aGlzLT5nZXRfZmllbGRvcHRpb25zKCJ2aWRlb19zaXRlIik7DQoJCQkJJHRtcG9wdGlvbnNbIiJdID0gIiI7DQoJCQkJJG91dHB1dFsic2l0ZSJdID0gYXJyYXkoJHRoaXMtPkxhbmcoInZpZGVvX3NpdGUiKSwkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwiZmllbGRfc2l0ZVtdIiwkdG1wb3B0aW9ucykpOw0KCQkJCSRvdXRwdXRbInZpZGVvaWQiXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb192aWRlb2lkIiksICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiY29tcGFyZV92aWRlb2lkIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF92aWRlb2lkIiwiIiwzMCkpOw0KCQkJCSRvdXRwdXRbIndpZHRoIl0gPSBhcnJheSgkdGhpcy0+TGFuZygidmlkZW9fd2lkdGgiKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX3dpZHRoIiwkY29tcGFyZWNob2ljZXMsLTEsMSkuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJmaWVsZF93aWR0aCIsIiIsMzApKTsNCgkJCQkkb3V0cHV0WyJoZWlnaHQiXSA9IGFycmF5KCR0aGlzLT5MYW5nKCJ2aWRlb19oZWlnaHQiKSwgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJjb21wYXJlX2hlaWdodCIsJGNvbXBhcmVjaG9pY2VzLC0xLDEpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiZmllbGRfaGVpZ2h0IiwiIiwzMCkpOw0KCQkJCSRvdXRwdXRbInBhcmVudCJdID0gYXJyYXkoJHRoaXMtPkxhbmcoInBhcmVudCIpKTsNCgkJCQkkcGFyZW50b3B0aW9ucyA9ICR0aGlzLT5nZXRfaGllcmFyY2h5b3B0aW9ucygidmlkZW8iKTsNCgkJCQkkb3V0cHV0WyJwYXJlbnQiXVtdID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJmaWVsZF9wYXJlbnQiLCRwYXJlbnRvcHRpb25zKTsNCgkJCQkkb3V0cHV0WyJuYW1lIl0gPSBhcnJheSgkdGhpcy0+TGFuZygibmFtZSIpLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsImNvbXBhcmVfbmFtZSIsJGNvbXBhcmVjaG9pY2VzLC0xLDEpLiIgIi4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwiZmllbGRfbmFtZSIsIiIsMzApKTsNCgkJCQkNCgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInRtcHRpbWUiLCB0aW1lKCkpOw0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigic19hbmQiLCAkdGhpcy0+TGFuZygidGhpc2FuZHRoaXMiKSk7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0bXBfcHJlZml4IiwgJGlkLiJkYXRlX2RhdGVfbW9kaWZpZWRfIik7DQoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJ0bXBfcHJlZml4MiIsICRpZC4iZGF0ZV9kYXRlX21vZGlmaWVkX3BhcnQyXyIpOw0KCQkJCSR0bXB0ZW1wbGF0ZSA9ICd7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcF9wcmVmaXggdGltZT0kdG1wdGltZSBzdGFydF95ZWFyPSItMTAiIGVuZF95ZWFyPSIrMTAifSB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcF9wcmVmaXggdGltZT0kdG1wdGltZSB9PGRpdiBpZD0iJy4kaWQuJ2RhdGVfbW9kaWZpZWRfcGFydDIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+IHskc19hbmR9IHtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kdG1wX3ByZWZpeDIgdGltZT0kdG1wdGltZSBzdGFydF95ZWFyPSItMTAiIGVuZF95ZWFyPSIrMTAifSB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcF9wcmVmaXgyIHRpbWU9JHRtcHRpbWUgfTwvZGl2Pic7DQoJCQkJJHRtcG91dCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiY29tcGFyZV9kYXRlX21vZGlmaWVkIiwkZGF0ZWNvbXBhcmVjaG9pY2VzLC0xLCJOQSIsIiBvbmNoYW5nZT1cImRhdGVpbnB1dF9jaGFuZ2Vjb21wYXJlKCciLiRpZC4iZGF0ZV9tb2RpZmllZCcsIHRoaXMudmFsdWUpO1wiIikuIiAiLiR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wdGVtcGxhdGUpOw0KCQkJCSR0bXBvdXQgLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwiZmllbGRfZGF0ZV9tb2RpZmllZCIsICJfX2RhdGVfZmllbGQiKTsNCgkJCQkkb3V0cHV0WyJkYXRlX21vZGlmaWVkIl0gPSBhcnJheSgkdGhpcy0+TGFuZygiZGF0ZV9tb2RpZmllZCIpLCAkdG1wb3V0KTsNCgkJCQkkb3JkZXJmaWVsZG9wdGlvbnMgPSBhcnJheSgiIj0+IiIsImRlc2NyaXB0aW9uIj0+ImRlc2NyaXB0aW9uIiwic2l0ZSI9PiJzaXRlIiwidmlkZW9pZCI9PiJ2aWRlb2lkIiwid2lkdGgiPT4id2lkdGgiLCJoZWlnaHQiPT4iaGVpZ2h0IiwicGFyZW50Ij0+InBhcmVudCIsImlkIj0+ImlkIiwibmFtZSI9PiJuYW1lIiwiYWxpYXMiPT4iYWxpYXMiLCJpdGVtX29yZGVyIj0+Iml0ZW1fb3JkZXIiLCJkYXRlX21vZGlmaWVkIj0+ImRhdGVfbW9kaWZpZWQiKTsNCgkJCQkkb3V0cHV0WyJvcmRlcmJ5Il0gPSBhcnJheSgkdGhpcy0+TGFuZygib3JkZXJieWZpZWxkIiksICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwib3JkZXIiLCRvcmRlcmZpZWxkb3B0aW9ucykuIiAiLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwib3JkZXJfdHlwZSIsJG9yZGVyY2hvaWNlcykpOw0KCQkJCWJyZWFrOw0KCQkJDQoJCX0NCgkJZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCWZ1bmN0aW9uIGRhdGVpbnB1dF9jaGFuZ2Vjb21wYXJlKGZpZWxkbmFtZSwgbmV3dmFsdWUpew0KCQlpZihuZXd2YWx1ZSA9PSA1KXsNCgkJCXZhciBuZXdzdGF0ZSA9ICJpbmxpbmUiOw0KCQl9ZWxzZXsNCgkJCXZhciBuZXdzdGF0ZSA9ICJub25lIjsNCgkJfQ0KCQlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmaWVsZG5hbWUrIl9wYXJ0MiIpKQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmaWVsZG5hbWUrIl9wYXJ0MiIpLnN0eWxlLmRpc3BsYXkgPSBuZXdzdGF0ZTsNCgkJcmV0dXJuIHRydWU7DQoJfQ0KPC9zY3JpcHQ+DQonOw0KCQlpZigkYXNzaWduKXsNCgkJCWZvcmVhY2goJG91dHB1dCBhcyAka2V5PT4kdmFsdWUpew0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigka2V5LiJfbGFiZWwiLCAkdmFsdWVbMF0pOw0KCQkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigka2V5LiJfaW5wdXQiLCAkdmFsdWVbMV0pOw0KCQkJfQ0KCQl9ZWxzZXsNCgkJCWVjaG8gIjx0YWJsZSBzdHlsZT1cImJvcmRlci1sZWZ0OiAxcHggc29saWQgTGlnaHRHcmF5OyBwYWRkaW5nLWxlZnQ6IDEwcHg7XCI+IjsNCgkJCWZvcmVhY2goJG91dHB1dCBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKCRrZXkgIT0gIm9yZGVyYnkiKQllY2hvICINCgkJCQk8dHI+PHRkPiIuJHZhbHVlWzBdLiI8L3RkPjx0ZD4iLiR2YWx1ZVsxXS4iPC90ZD48L3RyPiI7DQoJCQl9DQoJCQkJZWNobyAiDQoJCQk8L3RhYmxlPjxici8+IjsNCgkJCWVjaG8gIjxwPiIuJG91dHB1dFsib3JkZXJieSJdWzBdLiI6ICIuJG91dHB1dFsib3JkZXJieSJdWzFdLiI8L3A+IjsNCgkJfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/function.plGetFileInfo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCglpZighaXNzZXQoJGZpbGVwYXRoKSkJZXhpdDsNCgkNCgkkaW5mbyA9IGFycmF5KCk7DQoJDQoJJGluZm9bImZpbGVuYW1lIl0gPSBiYXNlbmFtZSgkZmlsZXBhdGgpOw0KCQ0KCSRzaXplID0gZmlsZXNpemUoJGZpbGVwYXRoKTsNCgkkaW5mb1sic2l6ZSJdID0gJHNpemU7DQoJaWYoJHNpemUgPiAxMDczNzQxODI0KXsNCgkJJHNpemUgPSByb3VuZCgoJHNpemUvMTA3Mzc0MTgyNCksMikuJyBHQic7DQoJfWVsc2VpZigkc2l6ZSA+IDEwNDg1NzYpew0KCQkkc2l6ZSA9IHJvdW5kKCgkc2l6ZS8xMDQ4NTc2KSwyKS4nIE1CJzsNCgl9ZWxzZWlmKCRzaXplID4gMTAyNCl7DQoJCSRzaXplID0gcm91bmQoKCRzaXplLzEwMjQpLDIpLicgS0InOw0KCX1lbHNlew0KCQkkc2l6ZSAuPSAnIGJ5dGVzJzsNCgl9DQoJJGluZm9bInNpemVfd2Zvcm1hdCJdID0gJHNpemU7DQoJDQoJJGV4dGVuc2lvbiA9IHN0cnRvbG93ZXIoc3Vic3RyKHN0cnJjaHIoJGZpbGVwYXRoLCAiLiIpLCAxKSk7DQoJJGluZm9bImV4dCJdID0gJGV4dGVuc2lvbjsNCglpZihpbl9hcnJheSgkZXh0ZW5zaW9uLCBhcnJheSgnZmx2Jywnc3dmJywnd212JywnbW92JykpKXsNCgkJJGluZm9bImZpbGVpY29uIl0gPSAiaWNvbnMvZmlsZXR5cGVzL2ZtZWRpYS5naWYiOw0KCX1lbHNlaWYoaW5fYXJyYXkoJGV4dGVuc2lvbiwgYXJyYXkoJ2pwZWcnLCdqcGcnLCdwbmcnLCdnaWYnKSkpew0KCQkkaW5mb1siZmlsZWljb24iXSA9ICJpY29ucy9maWxldHlwZXMvZnBhaW50LmdpZiI7DQoJfWVsc2V7DQoJCSRpbmZvWyJmaWxlaWNvbiJdID0gImljb25zL2ZpbGV0eXBlcy9mZG9jLmdpZiI7DQoJfQ0KCQ0KCSRpbmZvWyJpbWFnZXNpemUiXSA9IGZhbHNlOw0KCSRpbWdpbmYgPSBnZXRpbWFnZXNpemUoJGZpbGVwYXRoKTsNCglpZihpc3NldCgkaW1naW5mWzFdKSl7DQoJCSRpbmZvWyJ3aWR0aCJdID0gJGltZ2luZlswXTsNCgkJJGluZm9bImhlaWdodCJdID0gJGltZ2luZlsxXTsNCgkJJGluZm9bImltYWdlc2l6ZSJdID0gJGltZ2luZlswXS4neCcuJGltZ2luZlsxXTsNCgkJaWYoaXNzZXQoJGltZ2luZlsibWltZSJdKSkJJGluZm9bIm1pbWUiXSA9ICRpbWdpbmZbIm1pbWUiXTsNCgl9DQoJDQoJJGluZm9bIm93bmVyIl0gPSBmaWxlb3duZXIoJGZpbGVwYXRoKTsNCgkkaW5mb1sicGVybWlzc2lvbnMiXSA9IGZpbGVwZXJtcygkZmlsZXBhdGgpOw0KCQ0KCSRpbmZvWyJmaWxlbXRpbWUiXSA9IGZpbGVtdGltZSgkZmlsZXBhdGgpOw0KCSRpbmZvWyJtb2RpZmllZCJdID0gZGF0ZSgiWS1tLWQgRzppIiwgJGluZm9bImZpbGVtdGltZSJdKTsNCgkNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/function.plresize.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8vIGZ1bmN0aW9uIHBsUmVzaXplKCRmdWxscGF0aCwgJG5ld3BhdGgsICRuZXd3aWR0aCwgJG5ld2hlaWdodD1mYWxzZSwgJHRyYW5zcGFyZW5jeT1mYWxzZSwgJGNyb3A9ZmFsc2UpIHsNCgkkbmFtZSA9IHN0cl9yZXBsYWNlKCcvLycsJy8nLCRmdWxscGF0aCk7DQoJaWYoIWZpbGVfZXhpc3RzKCRuYW1lKSkJcmV0dXJuIGZhbHNlOw0KCSRpbWFnZV9pbmZvcyA9IGdldGltYWdlc2l6ZSgkbmFtZSk7DQoJDQoJJGRvcmVzaXplID0gdHJ1ZTsNCglpZiggJGltYWdlX2luZm9zWzBdIDw9ICRuZXd3aWR0aCAmJiAoJG5ld2hlaWdodCA9PSBmYWxzZSB8fCAkaW1hZ2VfaW5mb3NbMV0gPD0gJG5ld2hlaWdodCkgKXsNCgkJJHJldHVybiA9IGZhbHNlOw0KCX1lbHNlew0KCQkkbmV3bmFtZSA9ICgkbmV3cGF0aCA9PSAnJz8kZnVsbHBhdGg6JG5ld3BhdGgpOw0KCQkkYXJyID0gc3BsaXQoIlwuIiwkbmFtZSk7DQoJCSRleHQgPSBzdHJ0b2xvd2VyKCRhcnJbY291bnQoJGFyciktMV0pOw0KDQoJCWlmKCRleHQ9PSJqcGVnIiB8fCAkZXh0PT0ianBnIil7DQoJCQkkaW1nID0gQGltYWdlY3JlYXRlZnJvbWpwZWcoJG5hbWUpOw0KCQl9IGVsc2VpZigkZXh0PT0icG5nIil7DQoJCQkkaW1nID0gQGltYWdlY3JlYXRlZnJvbXBuZygkbmFtZSk7DQoJCX0gZWxzZWlmKCRleHQ9PSJnaWYiKSB7DQoJCQkkaW1nID0gQGltYWdlY3JlYXRlZnJvbWdpZigkbmFtZSk7DQoJCX0NCgkJaWYoISRpbWcpICAgcmV0dXJuIGZhbHNlOw0KDQoJCSRvbGRfeCA9IGltYWdlU1goJGltZyk7DQoJCSRvbGRfeSA9IGltYWdlU1koJGltZyk7DQoNCgkJaWYoJG5ld2hlaWdodCAmJiAkY3JvcCl7DQoJCQkvLyBmaW5kIHRoZSB3YW50ZWQgcmF0aW8NCgkJCSR3YW50ZWRyYXRpbyA9ICRuZXd3aWR0aC8kbmV3aGVpZ2h0Ow0KCQkJJGN1cnJlbnRyYXRpbyA9ICRvbGRfeC8kb2xkX3k7DQoJCQlpZigkY3VycmVudHJhdGlvID4gJHdhbnRlZHJhdGlvKXsNCgkJCQkvLyB3aWR0aCBpcyB0b28gbGFyZ2UNCgkJCQkkY3JvcF94ID0gKGludCkgKCRvbGRfeSAqICR3YW50ZWRyYXRpbyk7DQoJCQkJJGNyb3BfeSA9ICRvbGRfeTsNCgkJCQkkaW50X3cgPSAoaW50KSAoKCRvbGRfeCAtICRjcm9wX3gpIC8gMik7DQoJCQkJJGludF9oID0gMDsNCgkJCX1lbHNlaWYoJGN1cnJlbnRyYXRpbyA8ICR3YW50ZWRyYXRpbyl7DQoJCQkJLy8gaGVpZ2h0IGlzIHRvbyBsYXJnZQ0KCQkJCSRjcm9wX3ggPSAkb2xkX3g7DQoJCQkJJGNyb3BfeSA9IChpbnQpICgkb2xkX3ggLyAkd2FudGVkcmF0aW8pOw0KCQkJCSRpbnRfaCA9IChpbnQpICgoJG9sZF95IC0gJGNyb3BfeSkgLyAyKTsNCgkJCQkkaW50X3cgPSAwOw0KCQkJfQ0KCQkJaWYoJGN1cnJlbnRyYXRpbyAhPSAkd2FudGVkcmF0aW8pew0KCQkJCS8vIHdlIGZpcnN0IGNyb3ANCgkJCQkkZGltZyA9IEltYWdlQ3JlYXRlVHJ1ZUNvbG9yKCRjcm9wX3gsICRjcm9wX3kpOw0KCQkJCWlmKGltYWdlY29weXJlc2FtcGxlZCgkZGltZywkaW1nLDAsMCwkaW50X3csJGludF9oLCRjcm9wX3gsJGNyb3BfeSwkY3JvcF94LCRjcm9wX3kpKXsNCgkJCQkJaW1hZ2VkZXN0cm95KCRpbWcpOw0KCQkJCQkkaW1nID0gJGRpbWc7DQoJCQkJfQ0KCQkJfQ0KCQkJJG9sZF94ID0gJGNyb3BfeDsNCgkJCSRvbGRfeSA9ICRjcm9wX3k7DQoJCQkkdGh1bWJfaCA9ICRuZXdoZWlnaHQ7DQoJCQkkdGh1bWJfdyA9ICRuZXd3aWR0aDsNCgkJfWVsc2V7DQoJCQkkcmF0aW8gPSAkbmV3aGVpZ2h0P21pbigkbmV3d2lkdGggLyAkaW1hZ2VfaW5mb3NbMF0sICRuZXdoZWlnaHQgLyAkaW1hZ2VfaW5mb3NbMV0pOigkbmV3d2lkdGggLyAkaW1hZ2VfaW5mb3NbMF0pOw0KCQkJJHRodW1iX2ggPSAkaW1hZ2VfaW5mb3NbMV0gKiAkcmF0aW87DQoJCQkkdGh1bWJfdyA9ICRpbWFnZV9pbmZvc1swXSAqICRyYXRpbzsNCgkJfQ0KDQoJCSRuZXdfaW1nID0gSW1hZ2VDcmVhdGVUcnVlQ29sb3IoJHRodW1iX3csICR0aHVtYl9oKTsNCgkgICANCgkJaWYoJHRyYW5zcGFyZW5jeSkgew0KCQkJaWYoJGV4dD09InBuZyIpIHsNCgkJCQlpbWFnZWFscGhhYmxlbmRpbmcoJG5ld19pbWcsIGZhbHNlKTsNCgkJCQkkY29sb3JUcmFuc3BhcmVudCA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRuZXdfaW1nLCAwLCAwLCAwLCAxMjcpOw0KCQkJCWltYWdlZmlsbCgkbmV3X2ltZywgMCwgMCwgJGNvbG9yVHJhbnNwYXJlbnQpOw0KCQkJCWltYWdlc2F2ZWFscGhhKCRuZXdfaW1nLCB0cnVlKTsNCgkJCX0gZWxzZWlmKCRleHQ9PSJnaWYiKSB7DQoJCQkJJHRybnBydF9pbmR4ID0gaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRpbWcpOw0KCQkJCWlmICgkdHJucHJ0X2luZHggPj0gMCkgew0KCQkJCQkvL2l0cyB0cmFuc3BhcmVudA0KCQkJCQkkdHJucHJ0X2NvbG9yID0gaW1hZ2Vjb2xvcnNmb3JpbmRleCgkaW1nLCAkdHJucHJ0X2luZHgpOw0KCQkJCQkkdHJucHJ0X2luZHggPSBpbWFnZWNvbG9yYWxsb2NhdGUoJG5ld19pbWcsICR0cm5wcnRfY29sb3JbJ3JlZCddLCAkdHJucHJ0X2NvbG9yWydncmVlbiddLCAkdHJucHJ0X2NvbG9yWydibHVlJ10pOw0KCQkJCQlpbWFnZWZpbGwoJG5ld19pbWcsIDAsIDAsICR0cm5wcnRfaW5keCk7DQoJCQkJCWltYWdlY29sb3J0cmFuc3BhcmVudCgkbmV3X2ltZywgJHRybnBydF9pbmR4KTsNCgkJCQl9DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlJbWFnZWZpbGwoJG5ld19pbWcsIDAsIDAsIGltYWdlY29sb3JhbGxvY2F0ZSgkbmV3X2ltZywgMjU1LCAyNTUsIDI1NSkpOw0KCQl9DQoJCWltYWdlY29weXJlc2FtcGxlZCgkbmV3X2ltZywgJGltZywgMCwwLDAsMCwgJHRodW1iX3csICR0aHVtYl9oLCAkb2xkX3gsICRvbGRfeSk7DQoNCgkJaWYoZmlsZV9leGlzdHMoJG5ld25hbWUpKQlAdW5saW5rKCRuZXduYW1lKTsNCg0KCQlpZigkZXh0PT0ianBlZyIgfHwgJGV4dD09ImpwZyIpew0KCQkJaW1hZ2VqcGVnKCRuZXdfaW1nLCAkbmV3bmFtZSk7DQoJCQkkcmV0dXJuID0gdHJ1ZTsNCgkJfSBlbHNlaWYoJGV4dD09InBuZyIpew0KCQkJaW1hZ2VwbmcoJG5ld19pbWcsICRuZXduYW1lKTsNCgkJCSRyZXR1cm4gPSB0cnVlOw0KCQl9IGVsc2VpZigkZXh0PT0iZ2lmIikgew0KCQkJaW1hZ2VnaWYoJG5ld19pbWcsICRuZXduYW1lKTsNCgkJCSRyZXR1cm4gPSB0cnVlOw0KCQl9DQoJCWltYWdlZGVzdHJveSgkbmV3X2ltZyk7DQoJCWltYWdlZGVzdHJveSgkaW1nKTsNCgkJaWYoJHJldHVybikgJHJldHVybiA9ICRuZXduYW1lOw0KCX0NCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/HostedVideoAlbums.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogSG9zdGVkVmlkZW9BbGJ1bXMNCiMgVmVyc2lvbjogMS4wLCANCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCJzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojDQojIFRoaXMgbW9kdWxlIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQgd2l0aCBDVExNb2R1bGVNYWtlciAxLjguOS4zIGFuZCB0aGVuDQojIG1vZGlmaWVkIG1hbnVhbGx5DQojIENUTE1vZHVsZU1ha2VyIHdhcyBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiBhbmQgaXMgcmVsZWFzZWQgdW5kZXIgR05VDQojIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY3RsbW9kdWxlbWFrZXINCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmNsYXNzIEhvc3RlZFZpZGVvQWxidW1zIGV4dGVuZHMgQ01TTW9kdWxlDQp7DQoJdmFyICRjdXJyZW50dHJlZSA9IGZhbHNlOw0KCXZhciAkY3VycmVudHBhZ2VpbmRleCA9IDE7DQoJdmFyICRwbGN1cnJlbnQgPSBhcnJheSgpOw0KDQoJZnVuY3Rpb24gR2V0TmFtZSgpDQoJew0KCQlyZXR1cm4gIkhvc3RlZFZpZGVvQWxidW1zIjsNCgl9DQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldEZyaWVuZGx5TmFtZSgpDQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBsb2NhbGl6ZWQgbmFtZQ0KCSAgIG9mIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIG5hbWUgdGhhdCJzIHNob3duIGluIHRoZQ0KCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbg0KCSAgIGNvbXBvbmVudCkuDQoJICAgDQoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygiZnJpZW5kbHluYW1lIik7DQoJfQ0KCQ0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0VmVyc2lvbigpDQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBudW1iZXIgb3INCgkgICBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLg0KCSAgIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdA0KCSAgIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGlzIGN1cnJlbnQsIGFuZA0KCSAgIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQ0KCSAgIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCSAgIA0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkNCgl7DQoJCXJldHVybiAiMS4wIjsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0RGVwZW5kZW5jaWVzKCkNCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZA0KCSAgIGJlZm9yZSB5b3UgY2FuIGluc3RhbGwgaXQuDQoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZA0KCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuDQoJICAgDQoJICAgSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4NCgkgICByZXR1cm4gYXJyYXkoInNvbWVtb2R1bGUiPT4iMS4wIiwgIm90aGVybW9kdWxlIj0+IjEuMSIpOw0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQ0KCXsNCgkJcmV0dXJuIGFycmF5KCk7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBHZXRIZWxwKCkNCgkgICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLg0KCSAgIFR5cGljYWxseSwgeW91ImxsIHdhbnQgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8NCgkgICB1c2UgdGhlIG1vZHVsZS4NCgkgICANCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRIZWxwKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygiaGVscCIpOw0KCX0NCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0QXV0aG9yKCkNCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQ0KCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRBdXRob3IoKQ0KCXsNCgkJcmV0dXJuICJPbGl2aWVyIExFVklMTEFJTiBvbiBhIGJhc2lzIGNyZWF0ZWQgd2l0aCBDVExNb2R1bGVNYWtlciAxLjguOS4zIjsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0QXV0aG9yRW1haWwoKQ0KCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlDQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzDQoJICAgb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsDQoJICAgcXVlc3Rpb25zLCBjYXNlcyBvZiBiZWVyLCBhbmQvb3IgbGFyZ2Ugc3VtcyBvZiBtb25leS4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQ0KCXsNCgkJcmV0dXJuICJvbGl2aWVyLmxldmlsbGFpbkBmcmVlLmZyIjsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgSXNQbHVnaW5Nb2R1bGUoKQ0KCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbg0KCSAgIHdoZXRoZXIgdXNlcnMgY2FuIGluY2x1ZGUgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3INCgkgICB0ZW1wbGF0ZSB1c2luZyBhIHNtYXJ0eSB0YWcgb2YgdGhlIGZvcm0NCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9IlByb2QiIHBhcmFtMT12YWwgcGFyYW0yPXZhbC4uLn0NCgkgICANCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3INCgkgICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkNCgl7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBIYXNBZG1pbigpDQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uDQoJICAgd2hldGhlciB5b3VyIG1vZHVsZSBhZGRzIGFueXRoaW5nIHRvIHRoZSBBZG1pbiBhcmVhIG9mDQoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSJsbCBiZSBjYWxsaW5nDQoJICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yDQoJICAgd2FudCBvZiBhIGJldHRlciB0ZXJtLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBIYXNBZG1pbigpIHsJcmV0dXJuIHRydWU7CX0NCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7cmV0dXJuICJjb250ZW50Ijt9DQoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHtyZXR1cm4gJHRoaXMtPkxhbmcoImFkbWluZGVzY3JpcHRpb24iKTt9DQoNCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKXsNCgkJcmV0dXJuICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfbm9ybWFsdXNlciIpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIkhWQV9hZHZhbmNlZCIpKTsNCgl9DQoJDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBNb2R1bGUgQ29uc3RydWN0b3IgDQoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBIb3N0ZWRWaWRlb0FsYnVtcygpDQoJew0KCQlnbG9iYWwgJGdDbXM7DQogICAgCSRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOw0KCQkkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbigiSG9zdGVkVmlkZW9BbGJ1bXNfYnJlYWRjcnVtYnMiLCBhcnJheSgmJHRoaXMsImZ1bmN0aW9uX21vZGJyZWFkY3J1bWJzIikpOw0KCQkkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbigiSG9zdGVkVmlkZW9BbGJ1bXNfZ2V0X2xldmVsaXRlbSIsIGFycmF5KCYkdGhpcywiZnVuY3Rpb25fZ2V0X2xldmVsaXRlbSIpKTsNCgkJJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oIkhvc3RlZFZpZGVvQWxidW1zX2VtYmVkdmlkZW8iLCBhcnJheSgmJHRoaXMsImZ1bmN0aW9uX2VtYmVkdmlkZW8iKSk7DQoJCXBhcmVudDo6Q01TTW9kdWxlKCk7DQoJfQ0KCQ0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgU2V0UGFyYW1ldGVycygpDQoJICAgVGhpcyBmdW5jdGlvbiBlbmFibGVzIHlvdSB0byBjcmVhdGUgbWFwcGluZ3MgZm9yDQoJICAgeW91ciBtb2R1bGUgd2hlbiB1c2luZyAiUHJldHR5IFVybHMiLg0KCSAgIA0KCSAgIFR5cGljYWxseSwgbW9kdWxlcyBjcmVhdGUgaW50ZXJuYWwgbGlua3MgdGhhdCBoYXZlDQoJICAgYmlnIHVnbHkgc3RyaW5ncyBhbG9uZyB0aGUgbGluZXMgb2Y6DQoJICAgaW5kZXgucGhwP21hY3Q9TW9kTmFtZSxjbnRudDAxLGFjdGlvbk5hbWUsMCZjbnRudDAxcGFyYW0xPTEmY250bnQwMXBhcmFtMj0yJmNudG50MDFyZXR1cm5pZD0zDQoJICAgDQoJICAgWW91IG1pZ2h0IHByZWZlciB0aGVzZSB0byBsb29rIGxpa2U6DQoJICAgL01vZHVsZUZ1bmN0aW9uLzIvMw0KCSAgIA0KCSAgIFRvIGRvIHRoaXMsIHlvdSBoYXZlIHRvIHJlZ2lzdGVyIHJvdXRlcyBhbmQgbWFwDQoJICAgeW91ciBwYXJhbWV0ZXJzIGluIGEgd2F5IHRoYXQgdGhlIEFQSSB3aWxsIGJlIGFibGUNCgkgICB0byB1bmRlcnN0YW5kLg0KDQoJICAgQWxzbyBub3RlIHRoYXQgYW55IGNhbGxzIHRvIENyZWF0ZUxpbmsgd2lsbCBuZWVkIHRvDQoJICAgYmUgdXBkYXRlZCB0byBwYXNzIHRoZSBwcmV0dHkgdXJsIHBhcmFtZXRlci4NCgkgICANCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQ0KCXsNCg0KCQkvLyB0aGVzZSBhcmUgZm9yIGludGVybmFsIHByZXR0eSBVUkxTLg0KCQkvLyB5b3UgbWF5IGNoYW5nZSB0aGVzZSwgYnV0IHlvdSB3aWxsIGFsc28gbmVlZCB0byBjaGFuZ2UgdGhlIEJ1aWxkUHJldHR5VVJMcyBmdW5jdGlvbiBiZWxvdyBhY2NvcmRpbmdseQ0KCQkvLyBzZWUgRkFRIGZvciBtb3JlIGluZm8gb24gdGhpcw0KCQkkZGVmYWN0ID0gYXJyYXkoImFjdGlvbiI9PiJkZWZhdWx0Iik7DQoJCSR0aGlzLT5SZWdpc3RlclJvdXRlKCIvW2hIXW9zdGVkW3ZWXWlkZW9bYUFdbGJ1bXNcLyhbUXFddWVyeSlcLyg/UDxxdWVyeT5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvIiwgJGRlZmFjdCk7DQoJCSR0aGlzLT5SZWdpc3RlclJvdXRlKCIvW2hIXW9zdGVkW3ZWXWlkZW9bYUFdbGJ1bXNcLyhbUXFddWVyeSlcLyg/UDxxdWVyeT5bMC05XSspXC8oP1A8cGFnZWluZGV4PlswLTldKylcLyg/UDxuYnBlcnBhZ2U+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLyIsICRkZWZhY3QpOw0KCQkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgiL1toSF1vc3RlZFt2Vl1pZGVvW2FBXWxidW1zXC8oW0RkXWV0YWlsKVwvKD9QPGFsaWFzPlteXC9dKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8iLCAkZGVmYWN0KTsNCgkJJHRoaXMtPlJlZ2lzdGVyUm91dGUoIi9baEhdb3N0ZWRbdlZdaWRlb1thQV1sYnVtc1wvKD9QPHdoYXQ+W15cL10rKVwvKD9QPHJldHVybmlkPlswLTldKykkLyIsICRkZWZhY3QpOw0KCQkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgiL1toSF1vc3RlZFt2Vl1pZGVvW2FBXWxidW1zXC8oP1A8d2hhdD5bXlwvXSspXC8oP1A8cGFyZW50PlteXC9dKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8iLCAkZGVmYWN0KTsNCgkJJHRoaXMtPlJlZ2lzdGVyUm91dGUoIi9baEhdb3N0ZWRbdlZdaWRlb1thQV1sYnVtc1wvKD9QPHdoYXQ+W15cL10rKVwvKD9QPHBhZ2VpbmRleD5bMC05XSspXC8oP1A8bmJwZXJwYWdlPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8iLCAkZGVmYWN0KTsNCgkJJHRoaXMtPlJlZ2lzdGVyUm91dGUoIi9baEhdb3N0ZWRbdlZdaWRlb1thQV1sYnVtc1wvKD9QPHdoYXQ+W15cL10rKVwvKD9QPHBhcmVudD5bXlwvXSspXC8oP1A8cGFnZWluZGV4PlswLTldKylcLyg/UDxuYnBlcnBhZ2U+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLyIsICRkZWZhY3QpOw0KCQ0KCQkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7DQoJCQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJhY3Rpb24iLCAiZGVmYXVsdCIsICR0aGlzLT5MYW5nKCJwaGVscF9hY3Rpb24iKSk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoIndoYXQiLCAiIiwgJHRoaXMtPkxhbmcoInBoZWxwX3doYXQiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJ3aGF0IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJhbGlhcyIsICIiLCAkdGhpcy0+TGFuZygicGhlbHBfYWxpYXMiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJhbGlhcyIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigic2hvd2RlZmF1bHQiLCBmYWxzZSwgJHRoaXMtPkxhbmcoInBoZWxwX3Nob3dkZWZhdWx0IikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgic2hvd2RlZmF1bHQiLENMRUFOX0lOVCk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoInBhcmVudCIsICIiLCAkdGhpcy0+TGFuZygicGhlbHBfcGFyZW50IikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgicGFyZW50IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJsaW1pdCIsIDAsICR0aGlzLT5MYW5nKCJwaGVscF9saW1pdCIpKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoImxpbWl0IixDTEVBTl9JTlQpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJuYnBlcnBhZ2UiLCAwLCAkdGhpcy0+TGFuZygicGhlbHBfbmJwZXJwYWdlIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgibmJwZXJwYWdlIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJvcmRlcmJ5IiwgMCwgJHRoaXMtPkxhbmcoInBoZWxwX29yZGVyYnkiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJvcmRlcmJ5IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJkZXRhaWxwYWdlIiwgIiIsICR0aGlzLT5MYW5nKCJwaGVscF9kZXRhaWxwYWdlIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgiZGV0YWlscGFnZSIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigicmFuZG9tIiwgMCwgJHRoaXMtPkxhbmcoInBoZWxwX3JhbmRvbSIpKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoInJhbmRvbSIsQ0xFQU5fSU5UKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigibGlzdHRlbXBsYXRlIiwgIiIsICR0aGlzLT5sYW5nKCJwaGVscF9saXN0dGVtcGxhdGUiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJsaXN0dGVtcGxhdGUiLENMRUFOX1NUUklORyk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoImZpbmFsdGVtcGxhdGUiLCAiIiwgJHRoaXMtPmxhbmcoInBoZWxwX2ZpbmFsdGVtcGxhdGUiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJmaW5hbHRlbXBsYXRlIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJlbWJlZHRlbXBsYXRlIiwgIiIsICR0aGlzLT5sYW5nKCJwaGVscF9lbWJlZHRlbXBsYXRlIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgiZW1iZWR0ZW1wbGF0ZSIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigiZm9yY2VsaXN0IiwgIjAiLCAkdGhpcy0+bGFuZygicGhlbHBfZm9yY2VsaXN0IikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgiZm9yY2VsaXN0IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJpbmxpbmUiLCAwLCAkdGhpcy0+bGFuZygicGhlbHBfaW5saW5lIikpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgiaW5saW5lIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJzZWFyY2htb2RlIiwgImFkdmFuY2VkIiwgJHRoaXMtPmxhbmcoInBoZWxwX3NlYXJjaG1vZGUiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJzZWFyY2htb2RlIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJxdWVyeSIsIDAsICR0aGlzLT5sYW5nKCJwaGVscF9xdWVyeSIpKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoInF1ZXJ5IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJ0b2FjdGlvbiIsICIiLCAkdGhpcy0+TGFuZygicGhlbHBfdG9hY3Rpb24iKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJ0b2FjdGlvbiIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoInBhZ2VpbmRleCIsQ0xFQU5fSU5UKTsNCg0KCQkvLyBmb3IgdGhlIHNlYXJjaCBmb3JtICh0cmljayBmcm9tIGlrdWxpcykgOg0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuIi9kYXRlXy4qLyIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLiIvZmllbGRfLiovIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuIi9jb21wYXJlXy4qLyIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoInN1Ym1pdHNlYXJjaCIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoInNlYXJjaGZpZWxkIixDTEVBTl9TVFJJTkcpOw0KCQkNCgl9DQoNCiAgICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCRldmVudG5hbWUpDQogICAgew0KCQkkZXZlbnRuYW1lID0gc3RyX3JlcGxhY2UoIkhvc3RlZFZpZGVvQWxidW1zIiwgIiIsICRldmVudG5hbWUpOw0KCQlyZXR1cm4gJHRoaXMtPmxhbmcoImV2ZW50ZGVzYyIuJGV2ZW50bmFtZSk7DQogICAgfQ0KICAgIA0KCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoInBvc3RpbnN0YWxsIik7DQoJfQ0KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygicG9zdHVuaW5zdGFsbCIpOw0KCX0NCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygicmVhbGx5X3VuaW5zdGFsbCIpOw0KCX0NCg0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBJbnN0YWxsKCkNCgkgICBXaGVuIHlvdXIgbW9kdWxlIGlzIGluc3RhbGxlZCwgeW91IG1heSBuZWVkIHRvIGRvIHNvbWUNCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uDQoJICAgYW5kIHByZXBvcHVsYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLCBkYXRhYmFzZSBzZXF1ZW5jZXMsDQoJICAgcGVybWlzc2lvbnMsIHByZWZlcmVuY2VzLCBldGMuDQoJICAgCSAgIA0KCSAgIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY3JlYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLA0KCSAgIGNoZWNrIG91dCB0aGUgQURPREIgRGF0YSBEaWN0aW9uYXJ5IHBhZ2UgYXQNCgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQ0KCSAgIA0KCSAgIFRoaXMgZnVuY3Rpb24gY2FuIHJldHVybiBhIHN0cmluZyBpbiBjYXNlIG9mIGFueSBlcnJvciwNCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLg0KCSAgIFN1Y2Nlc3NmdWwgaW5zdGFsbHMgc2hvdWxkIHJldHVybiBGQUxTRSBvciBub3RoaW5nIGF0IGFsbC4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gSW5zdGFsbCgpDQoJew0KCQlnbG9iYWwgJGdDbXM7DQoJCXJlcXVpcmUgIm1ldGhvZC5pbnN0YWxsLnBocCI7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBVbmluc3RhbGwoKQ0KCSAgIFNvbWV0aW1lcywgYW4gZXhjZXB0aW9uYWxseSB1bmVubGlnaHRlbmVkIG9yIGlnbm9yYW50DQoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQNCgkgICB3b3VsZCBiZSBiZXN0IHRvIGxheSBpbnRvIHRoZXNlIGlkaW90cyB3aXRoIGEgY2x1ZXN0aWNrLA0KCSAgIHdlIHdpbGwgZG8gdGhlIG1hZ25hbmltb3VzIHRoaW5nIGFuZCByZW1vdmUgdGhlIG1vZHVsZQ0KCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMNCgkgICB0aGF0IGFyZSBzcGVjaWZpYyB0byBpdC4NCgkgICBUaGlzIGlzIHRoZSBtZXRob2Qgd2hlcmUgd2UgZG8gdGhpcy4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gVW5pbnN0YWxsKCkNCgl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJcmVxdWlyZSAibWV0aG9kLnVuaW5zdGFsbC5waHAiOw0KCX0NCg0KDQogICAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0KCRyZXR1cm5pZCwgJGl0ZW1pZCwgJGxldmVsID0gIiIpDQogICAgew0KCQkkcmVzdWx0ID0gYXJyYXkoKTsNCgkJJHdhbnRlZHBhcmFtID0gZmFsc2U7DQoJCSRuZXdwYXJhbXMgPSBhcnJheSgpOw0KCQlpZigkbGV2ZWwgPT0gInZpZGVvIil7DQoJCQkvLyB3ZSBzZWVrIGFuIGVsZW1lbnQgb2YgdGhlIGxhc3QgbGV2ZWwsIGFuZCB3aWxsIGRpc3BsYXkgdGhlIGRldGFpbCB2aWV3DQoJCQkkd2FudGVkcGFyYW0gPSAiYWxpYXMiOw0KCQl9ZWxzZXsNCgkJCWlmKCRuZXdwYXJhbXNbIndoYXQiXSA9ICR0aGlzLT5nZXRfbmV4dGxldmVsKCRsZXZlbCkpew0KCQkJLy8gd2Ugc2VlayBhbiBlbGVtZW50IG9mIGFub3RoZXIgbGV2ZWwsIGFuZCB3aWxsIGRpc3BsYXkgdGhlIGxpc3QgdmlldyBvZiBpdHMgY2hpbGRyZW4NCgkJCQkkd2FudGVkcGFyYW0gPSAicGFyZW50IjsNCgkJCX0NCgkJfQ0KCQlpZiAoJHdhbnRlZHBhcmFtKXsNCgkJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kbGV2ZWw7DQoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkkcXVlcnkgPSAiU0VMRUNUIG5hbWUsIGFsaWFzIEZST00gJHRhYmxlbmFtZSBXSEVSRSBpZCA9ID8iOw0KCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkaXRlbWlkICkgKTsNCgkJCWlmICgkZGJyZXN1bHQpew0KCQkJCSRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7DQoJCQkJJG5ld3BhcmFtc1skd2FudGVkcGFyYW1dID0gJHJvd1siYWxpYXMiXTsNCg0KCQkJCS8vMCBwb3NpdGlvbiBpcyB0aGUgcHJlZml4IGRpc3BsYXllZCBpbiB0aGUgbGlzdCByZXN1bHRzLg0KCQkJCSRyZXN1bHRbMF0gPSAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7DQoNCgkJCQkvLzEgcG9zaXRpb24gaXMgdGhlIHRpdGxlDQoJCQkJJHJlc3VsdFsxXSA9ICRyb3dbIm5hbWUiXTsNCgkJDQoJCQkJLy8yIHBvc2l0aW9uIGlzIHRoZSBVUkwgdG8gdGhlIHRpdGxlLg0KCQkJCSRyZXN1bHRbMl0gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJkZWZhdWx0IiwgJHJldHVybmlkLCAiIiwgJG5ld3BhcmFtcywgIiIsIHRydWUsIGZhbHNlLCAiIiwgZmFsc2UsICR0aGlzLT5CdWlsZFByZXR0eVVybHMoJG5ld3BhcmFtcywgJHJldHVybmlkKSk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9DQoJDQoJZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkNCiAgICB7DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoInNlYXJjaG1vZHVsZV9pbmRleF9jYXRlZ29yeSIsZmFsc2UpKXsNCgkJCSRpdGVtbGlzdCA9ICR0aGlzLT5nZXRfbGV2ZWxfY2F0ZWdvcnkoKTsNCgkJCWZvcmVhY2goJGl0ZW1saXN0IGFzICRpdGVtKXsNCgkJCQkkdGV4dCA9ICIkaXRlbS0+ZGVzY3JpcHRpb24gJGl0ZW0tPm5hbWUiOw0KCQkJCSRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRpdGVtLT5pZCwgImNhdGVnb3J5IiwgJHRleHQsIE5VTEwpOw0KCQkJfQ0KCQl9DQoJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzZWFyY2htb2R1bGVfaW5kZXhfYWxidW0iLGZhbHNlKSl7DQoJCQkkaXRlbWxpc3QgPSAkdGhpcy0+Z2V0X2xldmVsX2FsYnVtKCk7DQoJCQlmb3JlYWNoKCRpdGVtbGlzdCBhcyAkaXRlbSl7DQoJCQkJJHRleHQgPSAiJGl0ZW0tPmRlc2NyaXB0aW9uICRpdGVtLT5uYW1lIjsNCgkJCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkaXRlbS0+aWQsICJhbGJ1bSIsICR0ZXh0LCBOVUxMKTsNCgkJCX0NCgkJfQ0KCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2VhcmNobW9kdWxlX2luZGV4X3ZpZGVvIixmYWxzZSkpew0KCQkJJGl0ZW1saXN0ID0gJHRoaXMtPmdldF9sZXZlbF92aWRlbygpOw0KCQkJZm9yZWFjaCgkaXRlbWxpc3QgYXMgJGl0ZW0pew0KCQkJCSR0ZXh0ID0gIiRpdGVtLT5kZXNjcmlwdGlvbiAkaXRlbS0+c2l0ZSAkaXRlbS0+dmlkZW9pZCAkaXRlbS0+bmFtZSI7DQoJCQkJJG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJGl0ZW0tPmlkLCAidmlkZW8iLCAkdGV4dCwgTlVMTCk7DQoJCQl9DQoJCX0NCgkJDQogICAgfQkNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpOT1QgUEFSVCBPRiBUSEUgTk9STUFMIE1PRFVMRSBBUEkNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KDQogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdFRlbXBsYXRlcygpew0KICAgIAkvLyByZXR1cm5zIGFuIGFycmF5IG9mIHRoZSB0ZW1wbGF0ZXMgdGhhdCBhcmUgc2VsZWN0ZWQgYXMgZGVmYXVsdCAoanVzdCBzbyB0aGF0IHdlIGRvbid0IGRlbGV0ZSB0aGVtKQ0KCSAgICRyZXN1bHQgPSBhcnJheSgpOw0KCSAgICRyZXN1bHRbXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmaW5hbHRlbXBsYXRlIik7DQoJICAgJHJlc3VsdFtdID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInNlYXJjaHJlc3VsdHN0ZW1wbGF0ZSIpOw0KCSAgICRyZXN1bHRbXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfY2F0ZWdvcnkiKTsNCgkgICAkcmVzdWx0W10gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibGlzdHRlbXBsYXRlX2FsYnVtIik7DQoJICAgJHJlc3VsdFtdID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxpc3R0ZW1wbGF0ZV92aWRlbyIpOw0KCSAgICRyZXN1bHRbXSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlbWJlZHRlbXBsYXRlIik7DQoJICAgJHJlc3VsdFtdID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImVtcHR5dGVtcGxhdGUiKTsNCgkgICByZXR1cm4gJHJlc3VsdDsNCiAgICB9DQoJDQogICAgZnVuY3Rpb24gZ2V0T3JkZXJUeXBlKCR3aGF0KXsNCgkJLy8gcmV0dXJucyB3aGV0aGVyIGEgbGV2ZWwgaXMgb3JkZXJlZCBieSBwYXJlbnQgb3Igbm90DQoJCSRyZXR1cm4gPSBhcnJheSgiY2F0ZWdvcnkiPT50cnVlLCJhbGJ1bSI9PnRydWUsInZpZGVvIj0+dHJ1ZSk7DQoJCXJldHVybiAoaXNzZXQoJHJldHVyblskd2hhdF0pPyRyZXR1cm5bJHdoYXRdOmZhbHNlKTsNCiAgICB9DQoNCglmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZD0tMSl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJDQoJCXN3aXRjaCgkYWN0aW9uKXsNCgkJCWNhc2UgImxpbmsiOg0KCQkJCSR0b2FjdGlvbiA9IGlzc2V0KCRwYXJhbXNbInRvYWN0aW9uIl0pPyRwYXJhbXNbInRvYWN0aW9uIl06ImRlZmF1bHQiOw0KCQkJCWVjaG8gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCR0b2FjdGlvbiwkcmV0dXJuaWQsIiIsJHBhcmFtcywiIix0cnVlKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImJyZWFkY3J1bWJzIjoNCgkJCQkkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsNCgkJCQkkdGhpcy0+ZnVuY3Rpb25fbW9kYnJlYWRjcnVtYnMoJHBhcmFtcywgJHNtYXJ0eSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJlbWJlZHZpZGVvIjoNCgkJCQkkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsNCgkJCQkkdGhpcy0+ZnVuY3Rpb25fZW1iZWR2aWRlbygkcGFyYW1zLCAkc21hcnR5KTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImNoYW5nZXByZWZlcmVuY2VzIjoNCgkJCQlpZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX2FkdmFuY2VkIikpew0KCQkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgibW9kdWxlX21lc3NhZ2UiPT4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikpKTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJCSRwcmVmcyA9IGFycmF5KCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsInVzZV9oaWVyYXJjaHkiLCJvcmRlcmJ5bmFtZSIsImRpc3BsYXlfZmlsdGVyIiwiZGlzcGxheV9pbnN0YW50c2VhcmNoIiwiZGlzcGxheV9pbnN0YW50c29ydCIsImVkaXRhYmxlX2FsaWFzZXMiLCJhdXRvaW5jcmVtZW50X2FsaWFzIiwiYWxsb3dfc3FsIiwiZm9yY2VfbGlzdCIsImRlbGV0ZV9maWxlcyIsInRhYmRpc3BsYXlfdGVtcGxhdGVzIiwidGFiZGlzcGxheV9maWVsZG9wdGlvbnMiLCJ0YWJkaXNwbGF5X3F1ZXJpZXMiLCJzaG93dGh1bWJuYWlscyIsImZlX3d5c2l3eWciLCJmZV9kZWNvZGVlbnRpdGllcyIsImZlX2FsbG93ZmlsZXMiLCJmZV9hbGxvd25hbWVjaGFuZ2UiLCJmZV9hbGxvd2FkZG5ldyIsImZlX3VzZWNhcHRjaGEiLCJhbGxvd19jb21wbGV4X29yZGVyIiwibG9hZF9uZXh0cHJldmlvdXMiLCJsb2FkX25iY2hpbGRyZW4iLCJ1c2Vfc2Vzc2lvbiIsInJldHJpZXZldHJlZSIpOw0KCQkJCWZvcmVhY2goJHRoaXMtPmdldF9sZXZlbGFycmF5KCkgYXMgJGxldmVsKXsNCgkJCQkJJHByZWZzW10gPSAibmV3aXRlbXNmaXJzdF8iLiRsZXZlbDsNCgkJCQkJJHByZWZzW10gPSAic2VhcmNobW9kdWxlX2luZGV4XyIuJGxldmVsOw0KCQkJCQkkcHJlZnNbXSA9ICJ0YWJkaXNwbGF5XyIuJGxldmVsOw0KCQkJCX0NCgkJCQlmb3JlYWNoKCRwcmVmcyBhcyAkcHJlZikJJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWYsIGlzc2V0KCRwYXJhbXNbJHByZWZdKSk7DQoJCQkJaWYoaXNzZXQoJHBhcmFtc1siZmVfYWZ0ZXJzdWJtaXQiXSkpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJmZV9hZnRlcnN1Ym1pdCIsICRwYXJhbXNbImZlX2FmdGVyc3VibWl0Il0pOw0KCQkJCWlmKGlzc2V0KCRwYXJhbXNbImZlX21heGZpbGVzaXplIl0pKQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZmVfbWF4ZmlsZXNpemUiLCAkcGFyYW1zWyJmZV9tYXhmaWxlc2l6ZSJdKTsNCgkJCQkkbWF4c2hvd25wYWdlcyA9IChpbnQpJHBhcmFtc1sibWF4c2hvd25wYWdlcyJdOw0KCQkJCSRhZG1pbnBhZ2VzID0gKGludCkkcGFyYW1zWyJhZG1pbnBhZ2VzIl07DQoJCQkJZm9yZWFjaCgkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKSBhcyAkbGV2ZWwpew0KCQkJCQkkbmJwZXJwYWdlID0gKGludCkgKGlzc2V0KCRwYXJhbXNbJGxldmVsLiJfcGFnaW5hdGlvbiJdKT8kcGFyYW1zWyRsZXZlbC4iX3BhZ2luYXRpb24iXTowKTsNCgkJCQkJJHRoaXMtPlNldFByZWZlcmVuY2UoJGxldmVsLiJfcGFnaW5hdGlvbiIsICRuYnBlcnBhZ2UpOw0KCQkJCX0NCgkJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgibWF4c2hvd25wYWdlcyIsICRtYXhzaG93bnBhZ2VzKTsNCgkJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiYWRtaW5wYWdlcyIsICRhZG1pbnBhZ2VzKTsNCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgiYWN0aXZlX3RhYiI9PiJwcmVmZXJlbmNlcyIsICJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImNoYW5nZWRlZnRlbXBsYXRlcyI6DQoJCQkJZm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJICAgIGlmKCRrZXkgIT0gInN1Ym1pdCIpCSAgICR0aGlzLT5zZXRQcmVmZXJlbmNlKCRrZXksICR2YWx1ZSk7DQoJCQkJfQ0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJhY3RpdmVfdGFiIj0+InRlbXBsYXRlcyIsICJtb2R1bGVfbWVzc2FnZSI9PiR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImRlbGV0ZXRwbCI6DQoJCQkJJG5ld3BhcmFtcyA9IGFycmF5KCJhY3RpdmVfdGFiIj0+InRlbXBsYXRlcyIpOw0KCQkJCSRkZWZ0ZW1wbGF0ZXMgPSAkdGhpcy0+Z2V0RGVmYXVsdFRlbXBsYXRlcygpOw0KCQkJICAgIGlmKGlzc2V0KCRwYXJhbXNbInRwbG5hbWUiXSkgJiYgIWluX2FycmF5KCRwYXJhbXNbInRwbG5hbWUiXSwgJGRlZnRlbXBsYXRlcykpew0KCQkJCSAgICBpZigkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sidHBsbmFtZSJdKSkJICAgJG5ld3BhcmFtc1sibW9kdWxlX21lc3NhZ2U+Il0gPSAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpOw0KCQkJCX0NCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImRlbGV0ZXF1ZXJ5IjoNCgkJCQkkbmV3cGFyYW1zID0gYXJyYXkoImFjdGl2ZV90YWIiPT4icXVlcmllcyIpOw0KCQkJCWlmKGlzc2V0KCRwYXJhbXNbInF1ZXJ5aWQiXSkpew0KCQkJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCQkJCWlmKCRkYi0+RXhlY3V0ZSgiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfc2F2ZWRfcXVlcmllcyBXSEVSRSBpZD0/IExJTUlUIDEiLCBhcnJheSgkcGFyYW1zWyJxdWVyeWlkIl0pKSl7DQoJCQkJCQkkbmV3cGFyYW1zWyJtb2R1bGVfbWVzc2FnZSJdID0gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfZGVsZXRlZCIpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRuZXdwYXJhbXMpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAidGVzdHF1ZXJ5IjoNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJxdWVyeWlkIl0pICYmICRxdWVyeSA9ICR0aGlzLT5nZXRfcXVlcmllcyhhcnJheSgiaWQiPT4kcGFyYW1zWyJxdWVyeWlkIl0pKSl7DQoJCQkJCSRxdWVyeSA9ICRxdWVyeVswXTsNCgkJCQkJZWNobyAiPHA+PGI+Ii4kdGhpcy0+TGFuZygicXVlcnkiKS4iOjwvYj4gIi4kcXVlcnktPm5hbWU7DQoJCQkJCWlmKCRxdWVyeS0+b3JkZXIgIT0gIiIpCWVjaG8gIiBPUkRFUiBCWSAiLiRxdWVyeS0+b3JkZXI7DQoJCQkJCWVjaG8gIjwvcD4iOw0KCQkJCQkkZ2V0ZnVuY3Rpb24gPSAiZ2V0X2xldmVsXyIuJHF1ZXJ5LT53aGF0Ow0KCQkJCQkkaXRlbWxpc3QgPSAkdGhpcy0+JGdldGZ1bmN0aW9uKGFycmF5KCksIGZhbHNlLCAiIiwgIiIsIDAsIDAsICRxdWVyeS0+d2hlcmVjbGF1c2UsICRxdWVyeS0+d2hlcmV2YWx1ZXMsICgkcXVlcnktPnF1ZXJ5b3JkZXIgPT0gIiI/ZmFsc2U6JHF1ZXJ5LT5xdWVyeW9yZGVyKSk7DQoJCQkJCWVjaG8gIjxwPjxiPiIuJHRoaXMtPkxhbmcoInJlc3VsdHMiKS4iICgiLmNvdW50KCRpdGVtbGlzdCkuIikgOjwvYj48L3A+IjsNCgkJCQkJZWNobyAiPHVsPiI7DQoJCQkJCWZvcmVhY2goJGl0ZW1saXN0IGFzICRpdGVtKQllY2hvICI8bGk+Ii4kaXRlbS0+bmFtZS4iPC9saT4iOw0KCQkJCQllY2hvICI8L3VsPiI7DQoJCQkJfQ0KCQkJCWVjaG8gIjxwPiIuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBsYW5nKCJiYWNrIiksIGFycmF5KCJhY3RpdmVfdGFiIj0+InF1ZXJpZXMiKSkuIjwvcD4iOw0KCQkJCWJyZWFrOw0KCQkJCQkNCg0KCQkJY2FzZSAiYWRkX29wdGlvbnZhbHVlIjoNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJmaWVsZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJvcHRpb25uYW1lIl0pICYmICRwYXJhbXNbIm9wdGlvbm5hbWUiXSAhPSAiIil7DQoJCQkJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfZmllbGRvcHRpb25zIjsNCgkJCQkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkJCQkkaXRlbWlkID0gJGRiLT5HZW5JRCgkdGFibGVuYW1lLiJfc2VxIik7DQoJCQkJCSRpdGVtb3JkZXIgPSAkdGhpcy0+Y291bnRzb21ldGhpbmcoImZpZWxkb3B0aW9ucyIsICJpZCIsIGFycmF5KCJmaWVsZCI9PiRwYXJhbXNbImZpZWxkIl0pKSArIDE7DQoJCQkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLiR0YWJsZW5hbWUuIiBTRVQgaWQ9PywgZmllbGQ9PywgbmFtZT0/LCBpdGVtX29yZGVyPT8iOw0KCQkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpdGVtaWQsJHBhcmFtc1siZmllbGQiXSwkcGFyYW1zWyJvcHRpb25uYW1lIl0sJGl0ZW1vcmRlcikpOw0KCQkJCX0NCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgiYWN0aXZlX3RhYiI9PiJmaWVsZG9wdGlvbnMiKSApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZGVsZXRlX29wdGlvbnZhbHVlIjoNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJmaWVsZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJvcHRpb25pZCJdKSAmJiAkcGFyYW1zWyJvcHRpb25pZCJdID4gMCl7DQoJCQkJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfZmllbGRvcHRpb25zIjsNCgkJCQkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gJHRhYmxlbmFtZSBXSEVSRSBpZD0/IEFORCBmaWVsZD0/IExJTUlUIDEiOw0KCQkJCQlpZigkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbIm9wdGlvbmlkIl0sICRwYXJhbXNbImZpZWxkIl0pKSl7DQoJCQkJCQkkcXVlcnkgPSAiVVBEQVRFICR0YWJsZW5hbWUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgZmllbGQ9PyBBTkQgaXRlbV9vcmRlciA+ID8iOw0KCQkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1siZmllbGQiXSwgJHBhcmFtc1siY3VycmVudG9yZGVyIl0pKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgiYWN0aXZlX3RhYiI9PiJmaWVsZG9wdGlvbnMiKSApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAibW92ZV9vcHRpb252YWx1ZSI6DQoJCQkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfZmllbGRvcHRpb25zIjsNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJmaWVsZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJvcHRpb25pZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJtb3ZlIl0pICYmIGlzc2V0KCRwYXJhbXNbImN1cnJlbnRvcmRlciJdKSl7DQoJCQkJCWlmKCRwYXJhbXNbIm1vdmUiXSA9PSAidXAiICYmICRwYXJhbXNbImN1cnJlbnRvcmRlciJdICE9IDEpew0KCQkJCQkJJHF1ZXJ5ID0gIlVQREFURSAkdGFibGVuYW1lIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGZpZWxkPT8gQU5EIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbImZpZWxkIl0sICRwYXJhbXNbImN1cnJlbnRvcmRlciJdIC0xKSk7DQoJCQkJCQkkcXVlcnkgPSAiVVBEQVRFICR0YWJsZW5hbWUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXItMSkgV0hFUkUgZmllbGQ9PyBBTkQgaWQgPSA/IExJTUlUIDE7IjsNCgkJCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbImZpZWxkIl0sICRwYXJhbXNbIm9wdGlvbmlkIl0pKTsNCgkJCQkJfWVsc2VpZigkcGFyYW1zWyJtb3ZlIl0gPT0gImRvd24iKXsNCgkJCQkJCSRxdWVyeSA9ICJVUERBVEUgJHRhYmxlbmFtZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBmaWVsZD0/IEFORCBpdGVtX29yZGVyID0gPyBMSU1JVCAxOyI7DQoJCQkJCQlpZigkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyJmaWVsZCJdLCAkcGFyYW1zWyJjdXJyZW50b3JkZXIiXSArMSkpKXsNCgkJCQkJCQkkcXVlcnkgPSAiVVBEQVRFICR0YWJsZW5hbWUgU0VUIGl0ZW1fb3JkZXI9KGl0ZW1fb3JkZXIrMSkgV0hFUkUgZmllbGQ9PyBBTkQgaWQgPSA/IExJTUlUIDE7IjsNCgkJCQkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyJmaWVsZCJdLCAkcGFyYW1zWyJvcHRpb25pZCJdKSk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoImFjdGl2ZV90YWIiPT4iZmllbGRvcHRpb25zIikgKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInJlbmFtZV9vcHRpb252YWx1ZSI6DQoJCQkJaWYoIWlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSAmJiBpc3NldCgkcGFyYW1zWyJvcHRpb25pZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJmaWVsZCJdKSAmJiBpc3NldCgkcGFyYW1zWyJvcHRpb25uYW1lIl0pICl7DQoJCQkJCWlmKGlzc2V0KCRwYXJhbXNbInN1Ym1pdCJdKSAmJiAkcGFyYW1zWyJvcHRpb25uYW1lIl0gIT0gIiIgKXsNCgkJCQkJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfZmllbGRvcHRpb25zIjsNCgkJCQkJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJCQkJCSRxdWVyeSA9ICJVUERBVEUgJHRhYmxlbmFtZSBTRVQgbmFtZT0/IFdIRVJFIGZpZWxkPT8gQU5EIGlkPT8iOw0KCQkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGFyYW1zWyJvcHRpb25uYW1lIl0sICRwYXJhbXNbImZpZWxkIl0sICRwYXJhbXNbIm9wdGlvbmlkIl0pKTsNCgkJCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJhY3RpdmVfdGFiIj0+ImZpZWxkb3B0aW9ucyIpICk7DQoJCQkJCX1lbHNlew0KCQkJCQkJZWNobyAiPGgyPiIuJHRoaXMtPkxhbmcoIm1vZGlmeWFub3B0aW9uIikuIjwvaDI+IjsNCgkJCQkJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJyZW5hbWVfb3B0aW9udmFsdWUiLCAkcmV0dXJuaWQpOw0KCQkJCQkJZWNobyAiPHA+Ii4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwib3B0aW9ubmFtZSIsJHBhcmFtc1sib3B0aW9ubmFtZSJdLDQwLDY0KS4iPC9wPiI7DQoJCQkJCQllY2hvICI8cD4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImNhbmNlbCIsIGxhbmcoImNhbmNlbCIpKS4iPC9wPiI7DQoJCQkJCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJvcHRpb25pZCIsICRwYXJhbXNbIm9wdGlvbmlkIl0pLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJmaWVsZCIsICRwYXJhbXNbImZpZWxkIl0pOw0KCQkJCQkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQkJCQl9DQoJCQkJfWVsc2V7DQoJCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJhY3RpdmVfdGFiIj0+ImZpZWxkb3B0aW9ucyIpICk7DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZGVmYXVsdCI6DQoJCQlkZWZhdWx0Og0KCQkJCXBhcmVudDo6RG9BY3Rpb24oJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOw0KCQkJCWJyZWFrOw0KCQl9DQoNCg0KCX0NCglmdW5jdGlvbiBwbGNyZWF0ZWFsaWFzKCRuYW1lKXsNCgkJLy8gdHJhbnNmb3JtcyAkbmFtZSBpbnRvIGEgdXJsLWZyaWVuZGx5IGFsaWFzDQoJCQ0KCQkvLyBhcyBhIHN1Z2dlc3Rpb24gZnJvbSBBTVQsIHRoZSBmaXJzdCBwYXJ0IGRlYWxzIHdpdGggc21hcnQgcXVvdGVzDQogCQkkc2VhcmNoID0gYXJyYXkoY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTgpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5OSksDQoJCQkJCQkgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDljKSwNCgkJCQkJCSAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OWQpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5MyksDQoJCQkJCQkgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk0KSk7DQogCQkkbmFtZSA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICIiLCAkbmFtZSk7DQoJCQ0KIAkJLy8gdGhlIHNlY29uZCBwYXJ0IHVzZXMgdGhlIGNtcyB2ZXJzaW9uDQogCQkkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lLCBmYWxzZSk7DQogCQlyZXR1cm4gJGFsaWFzOw0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrYWxpYXMoJGRidGFibGUsICRhbGlhcywgJGl0ZW1pZD1mYWxzZSwgJGlkZmllbGQ9ImlkIiwgJGFsaWFzZmllbGQ9ImFsaWFzIil7DQoJCS8vIGNoZWNrcyBpZiB0aGlzIGFsaWFzIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsZXZlbA0KCQkkcXVlcnkgPSAiU0VMRUNUICIuJGlkZmllbGQuIiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiRkYnRhYmxlLiIgV0hFUkUgIi4kYWxpYXNmaWVsZC4iID0gPyI7DQoJCWlmKCRpdGVtaWQpICRxdWVyeSAuPSAiIEFORCAiLiRpZGZpZWxkLiIhPSIuJGl0ZW1pZDsNCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFsaWFzKSk7DQoJCSR0YXJnZXRpZCA9IDA7DQoJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSAkdGFyZ2V0aWQgPSAkcm93WyJpZCJdOw0KCQlyZXR1cm4gKCR0YXJnZXRpZCA9PSAwKTsNCgl9DQoJZnVuY3Rpb24gQnVpbGRQcmV0dHlVcmxzKCRwYXJhbXMsICRyZXR1cm5pZD0tMSl7DQoJCS8vIHRyYW5zZm9ybXMgZ2l2ZW4gcGFyYW1zIGludG8gYSBwcmV0dHkgdXJsDQoJCSRwcmV0dHl1cmwgPSAkdGhpcy0+R2V0TmFtZSgpLiIvIjsNCgkJaWYoaXNzZXQoJHBhcmFtc1sicXVlcnkiXSkpew0KCQkJJHByZXR0eXVybCAuPSAicXVlcnkvIi4kcGFyYW1zWyJxdWVyeSJdOwkNCgkJfWVsc2VpZihpc3NldCgkcGFyYW1zWyJhbGlhcyJdKSl7DQoJCQkkcHJldHR5dXJsIC49ICJkZXRhaWwvIi4kcGFyYW1zWyJhbGlhcyJdOw0KCQl9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbInBhcmVudCJdKSl7DQoJCQkkcHJldHR5dXJsIC49ICRwYXJhbXNbIndoYXQiXS4iLyIuJHBhcmFtc1sicGFyZW50Il07DQoJCX1lbHNlew0KCQkJJHByZXR0eXVybCAuPSAkcGFyYW1zWyJ3aGF0Il07DQoJCX0NCgkJaWYoIWlzc2V0KCRwYXJhbXNbImFsaWFzIl0pICYmIGlzc2V0KCRwYXJhbXNbInBhZ2VpbmRleCJdKSAmJiBpc3NldCgkcGFyYW1zWyJuYnBlcnBhZ2UiXSkpCSRwcmV0dHl1cmwgLj0gIi8iLiRwYXJhbXNbInBhZ2VpbmRleCJdLiIvIi4kcGFyYW1zWyJuYnBlcnBhZ2UiXTsNCgkJJHByZXR0eXVybCAuPSAiLyIuJHJldHVybmlkOw0KCQlyZXR1cm4gJHByZXR0eXVybDsNCgl9DQoJZnVuY3Rpb24gRG9DaGVja2JveGVzKCRpZCwgJG5hbWUsICRjaG9pY2VzLCAkc2VsZWN0ZWQ9YXJyYXkoKSwgJGRlbGltaXRlcj0iPGJyLz4iKXsNCgkJLy8gcHJldHR5IG11Y2ggbGlrZSBDcmVhdGVJbnB1dFJhZGlvR3JvdXAsIGJ1dCB1c2luZyBjaGVja2JveGVzDQoJCWlmKCFpc19hcnJheSgkc2VsZWN0ZWQpKQkkc2VsZWN0ZWQgPSBhcnJheSgpOw0KCQkkb3V0cHV0ID0gIiI7DQoJCWZvcmVhY2goJGNob2ljZXMgYXMgJGtleT0+JHZhbHVlKXsNCgkJCSRvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZS4iW10iLCAkdmFsdWUsIChpbl9hcnJheSgkdmFsdWUsICRzZWxlY3RlZCk/JHZhbHVlOjApKS4iICIuJGtleS4kZGVsaW1pdGVyOw0KCQl9DQoJCXJldHVybiAkb3V0cHV0Ow0KCX0NCglmdW5jdGlvbiBwYXJzZWtleXdvcmRzKCRzdHJpbmcpew0KCQkvLyBjdXRzIHRoZSBzZWFyY2h3b3JkcyBvZiB0aGUgc2VhcmNoIGZvcm0gaW50byBwaWVjZXMNCgkJLy8gYmFzY2lhbGx5LCB0aGlzIGV4cGxvZGVzIHRoZSAkc3RyaW5nLCBidXQgdGFrZXMgbm90aWNlIG9mIHRoZSBxdW90ZXMNCgkJDQoJCSRpbnNpZGUgPSAoc3Vic3RyKCRzdHJpbmcsMCwxKSA9PSAnIicpOw0KCQkkcGFydHMgPSBleHBsb2RlKCciJywkc3RyaW5nKTsNCgkNCgkJaWYoY291bnQoJHBhcnRzKSA8IDIpew0KCQkJaWYoJGluc2lkZSl7DQoJCQkJcmV0dXJuIGFycmF5KHN0cl9yZXBsYWNlKCciJywiIiwkc3RyaW5nKSk7DQoJCQl9ZWxzZXsNCgkJCQlyZXR1cm4gZXhwbG9kZSgiICIsJHN0cmluZyk7DQoJCQl9DQoJCX0NCgkNCgkJJGtleXdvcmRzID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkcGFydHMgYXMgJHBhcnQpew0KCQkJaWYoJHBhcnQgIT0gIiIpew0KCQkJCWlmKCRpbnNpZGUpew0KCQkJCQkka2V5d29yZHNbXSA9ICRwYXJ0Ow0KCQkJCX1lbHNlew0KCQkJCQkkd29yZHMgPSBleHBsb2RlKCIgIix0cmltKCRwYXJ0KSk7DQoJCQkJCWZvcmVhY2goJHdvcmRzIGFzICR3b3JkKXsNCgkJCQkJCWlmKHRyaW0oJHdvcmQpICE9ICIiKQkka2V5d29yZHNbXSA9ICR3b3JkOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSRpbnNpZGUgPSAhJGluc2lkZTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGtleXdvcmRzOw0KCX0NCg0KDQoJZnVuY3Rpb24gZ2V0X2xldmVsYXJyYXkoKXsNCgkJLy8gcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgbGV2ZWxzICh0b3AgdG8gYm90dG9tKQ0KCQlyZXR1cm4gYXJyYXkoImNhdGVnb3J5IiwiYWxidW0iLCJ2aWRlbyIpOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF9tb2R1bGVoaWVyYXJjaHkoJGxldmVsPWZhbHNlKXsNCgkJJGhpZXJhcmNoeSA9IGFycmF5KCk7DQoJCQkkaGllcmFyY2h5WzFdID0gImNhdGVnb3J5IjsNCgkJCSRoaWVyYXJjaHlbMl0gPSAiYWxidW0iOw0KCQkJJGhpZXJhcmNoeVszXSA9ICJ2aWRlbyI7DQoJCXJldHVybiAkaGllcmFyY2h5Ow0KCX0NCgkNCglmdW5jdGlvbiBnZXRfbGV2ZWxzZWFyY2hmaWVsZHMoJGxldmVsKXsNCgkJLy8gcmV0dXJucyB0aGUgZmllbGQgb2YgYSBsZXZlbCB3aGljaCBhcmUgc2VhcmNoYWJsZSAoZm9yIHRoZSBzaW1wbGUgc2VhcmNoIGFjdGlvbikNCgkJJGZpZWxkcyA9IGFycmF5KCk7DQoJCXN3aXRjaCgkbGV2ZWwpew0KCQkJY2FzZSAiY2F0ZWdvcnkiOg0KCQkJCSRmaWVsZHMgPSBhcnJheSgiZGVzY3JpcHRpb24iLCJuYW1lIik7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJhbGJ1bSI6DQoJCQkJJGZpZWxkcyA9IGFycmF5KCJkZXNjcmlwdGlvbiIsIm5hbWUiKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInZpZGVvIjoNCgkJCQkkZmllbGRzID0gYXJyYXkoImRlc2NyaXB0aW9uIiwidmlkZW9pZCIsIm5hbWUiKTsNCgkJCQlicmVhazsNCgkJCQkJCQ0KCQl9DQoJCXJldHVybiAkZmllbGRzOw0KCX0NCglmdW5jdGlvbiBnZXRfaGllcmFyY2h5b3B0aW9ucygkZW5kPWZhbHNlLCAkd2l0aGVtcHR5cm93PXRydWUsICRkZXB0aHN5bWJvbD0iJm5ic3A7LSZuYnNwOyIpew0KCQkvLyByZXR1cm5zIGFuIGFycmF5IG9mIHBhcmVudCBvcHRpb25zIGZvciBhIGxpbmtlZCB0byBhIHNlbGVjdGVkIGxldmVsDQoJCS8vIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZHJvcGRvd24gbGlzdCBpbiBzZWFyY2ggYWN0aW9uDQoJCSRsZXZlbGFycmF5ID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJCSBpZighaW5fYXJyYXkoJGVuZCwgJGxldmVsYXJyYXkpKQkkZW5kID0gJGxldmVsYXJyYXlbY291bnQoJGxldmVsYXJyYXkpLTFdOw0KCQkNCgkJLy8gYnVpbGRpbmcgdGhlIGpvaW5lZCBxdWVyeQ0KCQkkdGFibGVzID0gIiI7DQoJCSRmaWVsZHMgPSAiIjsNCgkJJG9yZGVyYnkgPSAiIjsNCgkJJHdoZXJlID0gIiI7DQoJCSRmaW5pc2hlZCA9IGZhbHNlOw0KCQkkaSA9IDE7DQoJCWZvcmVhY2goJGxldmVsYXJyYXkgYXMgJGxldmVsKXsNCgkJCWlmKCRsZXZlbCA9PSAkZW5kKQkkZmluaXNoZWQgPSB0cnVlOw0KCQkJaWYoISRmaW5pc2hlZCl7DQoJCQkJJHRhYmxlcyAuPSAoJHRhYmxlcyA9PSAiIj8iIjoiLCAiKS5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kbGV2ZWwuIiB0Ii4kaS4iICI7DQoJCQkJJGZpZWxkcyAuPSAoJGZpZWxkcyA9PSAiIj8iIjoiLCAiKS4idCIuJGkuIi5pZCBpZCIuJGkuIiwgdCIuJGkuIi5uYW1lIG5hbWUiLiRpOw0KCQkJCSRvcmRlcmJ5IC49ICgkb3JkZXJieSA9PSAiIj8iIjoiLCAiKS4idCIuJGkuIi5pdGVtX29yZGVyIERFU0MiOw0KCQkJCWlmKCRpID4gMSkgJHdoZXJlIC49ICIgQU5EIHQiLigkaS0xKS4iLmlkID0gdCIuJGkuIi5wYXJlbnQgIjsNCgkJCQkkd2hlcmUgLj0gKCR3aGVyZSA9PSAiIj8iIjoiIEFORCAiKS4iIHQiLiRpLiIuYWN0aXZlPTEiOw0KCQkJCSRpKys7DQoJCQl9DQoJCX0NCgkJaWYoJGZpZWxkcyA9PSAiIikJcmV0dXJuIGZhbHNlOw0KCQkNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICIuJGZpZWxkcy4iIEZST00gIi4kdGFibGVzLiIgV0hFUkUgIi4kd2hlcmUuIiBPUkRFUiBCWSAiLiRvcmRlcmJ5Ow0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KCQkvLyBwYXJzaW5nIHJlc3VsdHMNCgkJJGN1cnJlbnQgPSBhcnJheSgpOw0KCQkkdG1wbGFzdGxldmVsID0gYXJyYXkoKTsNCgkJJHJlc3VsdHMgPSBhcnJheSgpOw0KCQkkZmluYWwgPSAkaSAtMTsNCgkJd2hpbGUoJGogPCAkZmluYWwgKXsNCgkJCSRjdXJyZW50WyRqXSA9IGFycmF5KCJpZCI9PmZhbHNlLCJuYW1lIj0+IiIpOw0KCQkJJGorKzsNCgkJfQ0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkvLyBlYWNoIHJvdyBoYXMgYSBmdWxsIGhpZXJhcmNoeSwgZnJvbSB0b3AgcGFyZW50IHRvIGZpbmFsIGNoaWxkDQoJCQkkaiA9ICRmaW5hbDsNCgkJCXdoaWxlKCRqID4gMCApew0KCQkJCWlmKCRyb3dbImlkIi4kal0gIT0gJGN1cnJlbnRbJGpdWyJpZCJdKXsNCgkJCQkJaWYoJGN1cnJlbnRbJGpdWyJpZCJdICYmIGNvdW50KCRjdXJyZW50WyRqXVsicmVzIl0pID4gMCl7DQoJCQkJCQkka2V5ID0gc3RyX3JlcGVhdCgkZGVwdGhzeW1ib2wsICgkaiAtMSkpLiRjdXJyZW50WyRqXVsibmFtZSJdOw0KCQkJCQkJJHJlc3VsdHNbJGtleV0gPSBpbXBsb2RlKCIsIiwkY3VycmVudFskal1bInJlcyJdKTsNCgkJCQkJfQ0KCQkJCQkkY3VycmVudFskal0gPSBhcnJheSgiaWQiPT4kcm93WyJpZCIuJGpdLCAibmFtZSI9PiRyb3dbIm5hbWUiLiRqXSwgInJlcyI9PmFycmF5KCkpOw0KCQkJCX0NCgkJCQkkY3VycmVudFskal1bInJlcyJdW10gPSAkcm93WyJpZCIuJGZpbmFsXTsNCgkJCQkkai0tOw0KCQkJfQ0KCQkJJHJlc3VsdHNbc3RyX3JlcGVhdCgkZGVwdGhzeW1ib2wsICgkZmluYWwgLTEpKS4kcm93WyJuYW1lIi4kZmluYWxdXSA9ICRyb3dbImlkIi4kZmluYWxdOw0KCQl9DQoJCS8vIHdlIGNsb3NlIHRoZSByZW1haW5pbmcgc2V0cw0KCQkkaiA9ICRmaW5hbCAtMTsNCgkJd2hpbGUoJGogPiAwICl7DQoJCQkka2V5ID0gc3RyX3JlcGVhdCgkZGVwdGhzeW1ib2wsICgkaiAtMSkpLiRjdXJyZW50WyRqXVsibmFtZSJdOw0KCQkJJHJlc3VsdHNbJGtleV0gPSBpbXBsb2RlKCIsIiwkY3VycmVudFskal1bInJlcyJdKTsNCgkJCSRqLS07DQoJCX0NCgkJaWYoJHdpdGhlbXB0eXJvdykJJHJlc3VsdHNbIiJdID0gIiI7DQoJCXJldHVybiBhcnJheV9yZXZlcnNlKCRyZXN1bHRzKTsNCgl9DQoJZnVuY3Rpb24gZ2V0X2FkbWluX2hpZXJhcmNoeW9wdGlvbnMoJGVuZD1mYWxzZSwgJHdpdGhlbXB0eXJvdz10cnVlLCAkc2VwYXJhdG9yPSIgJmd0OyAiLCAkb3JkZXJieW5hbWU9ZmFsc2Upew0KCQkvLyByZXR1cm5zIGFuIGFycmF5IG9mIHBhcmVudCBvcHRpb25zIGxpbmtlZCB0byBhIHNlbGVjdGVkIGxldmVsDQoJCS8vIHVzZWQgZm9yIHRoZSBwYXJlbnQgYW5kIGZpbHRlciBkcm9wZG93biBpbiB0aGUgYWRtaW4NCgkJLy8gc2hvd3MgZW1wdHkgcGFyZW50cyB0b28NCgkJJGxldmVsYXJyYXkgPSAkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKTsNCgkJaWYoIWluX2FycmF5KCRlbmQsICRsZXZlbGFycmF5KSkJJGVuZCA9ICJpdGVtIjsNCgkJDQoJCS8vIGJ1aWxkaW5nIHRoZSBqb2luZWQgcXVlcnkNCgkJJHRhYmxlcyA9ICIiOw0KCQkkZmllbGRzID0gIiI7DQoJCSRvcmRlcmJ5ID0gIiI7DQoJCSRmaW5pc2hlZCA9IGZhbHNlOw0KCQkkaSA9IDE7DQoJCWZvcmVhY2goJGxldmVsYXJyYXkgYXMgJGxldmVsKXsNCgkJCWlmKCRsZXZlbCA9PSAkZW5kKQkkZmluaXNoZWQgPSB0cnVlOw0KCQkJaWYoISRmaW5pc2hlZCl7DQoJCQkJJHRhYmxlcyAuPSAoJGk9PTE/IiI6IiBMRUZUIEpPSU4gIikuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBXyIuJGxldmVsLiIgdCIuJGkuIiAiOw0KCQkJCWlmKCRpPjEpCSR0YWJsZXMgLj0gIk9OIHQiLigkaS0xKS4iLmlkID0gdCIuJGkuIi5wYXJlbnQgIjsNCgkJCQkkZmllbGRzIC49ICgkZmllbGRzID09ICIiPyIiOiIsICIpLiJ0Ii4kaS4iLmlkIGlkIi4kaS4iLCB0Ii4kaS4iLm5hbWUgbmFtZSIuJGk7DQoJCQkJaWYoJG9yZGVyYnluYW1lKXsNCgkJCQkJJG9yZGVyYnkgLj0gKCRvcmRlcmJ5ID09ICIiPyIiOiIsICIpLiJ0Ii4kaS4iLm5hbWUiOw0KCQkJCX1lbHNlew0KCQkJCQkkb3JkZXJieSAuPSAoJG9yZGVyYnkgPT0gIiI/IiI6IiwgIikuInQiLiRpLiIuaXRlbV9vcmRlciwgdCIuJGkuIi5uYW1lIjsNCgkJCQl9DQoJCQkJJGkrKzsNCgkJCX0NCgkJfQ0KCQlpZigkZmllbGRzID09ICIiKQlyZXR1cm4gYXJyYXkoKTsNCgkJDQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJHF1ZXJ5ID0gIlNFTEVDVCAiLiRmaWVsZHMuIiBGUk9NICIuJHRhYmxlcy4iIE9SREVSIEJZICIuJG9yZGVyYnk7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkkb3B0aW9ucyA9IGFycmF5KCk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCS8vIGVhY2ggcm93IGhhcyBhIGZ1bGwgaGllcmFyY2h5LCBmcm9tIHRvcCBwYXJlbnQgdG8gZmluYWwgY2hpbGQNCgkJCSR2YWx1ZSA9ICRyb3dbImlkIi4oJGktMSldOw0KCQkJJGogPSAxOw0KCQkJJG9wdGlvbl9uYW1lID0gIiI7DQoJCQl3aGlsZSgkaiA8ICRpKXsNCgkJCQkkb3B0aW9uX25hbWUgLj0gKCRqPT0xPyIiOiRzZXBhcmF0b3IpLiRyb3dbIm5hbWUiLiRqXTsNCgkJCQkkaisrOw0KCQkJfQ0KCQkJJG9wdGlvbnNbJG9wdGlvbl9uYW1lXSA9ICR2YWx1ZTsNCgkJfQ0KCQlpZigkd2l0aGVtcHR5cm93KQkkb3B0aW9uc1siIl0gPSAiIjsNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCglmdW5jdGlvbiBnZXRfbW9kdWxlR2V0VmFycygpew0KCQkvLyB1bm9ydGhvZG94IGhhY2sgc28gdGhhdCBkaWZmZXJlbnQgY2FsbHMgb2YgdGhlIG1vZHVsZSBzcGVhayB3aXRoIGVhY2ggb3RoZXINCgkJLy8gYmFzaWNhbGx5LCB3ZSByZXRyaWV2ZSBwYXJhbWV0ZXJzIGluIHRoZSB1cmwgdGhhdCB3ZXJlIG1lYW50IGZvciBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIG1vZHVsZQ0KCQkvLyBzZWUgRkFRIGZvciBtb3JlIGluZm8gb24gdGhpcw0KCQlnbG9iYWwgJF9HRVQ7DQoJCWdsb2JhbCAkZ0NtczsNCgkJJHJlZGlyZWN0aW9uID0gZmFsc2U7DQoJCWlmKGlzc2V0KCRnQ21zLT5jb25maWdbInVybF9yZXdyaXRpbmciXSkpew0KCQkJLy8gY29yZSAxLjYgb3IgbW9yZQ0KCQkJJHJlZGlyZWN0aW9uID0gJGdDbXMtPmNvbmZpZ1sidXJsX3Jld3JpdGluZyJdOw0KCQl9ZWxzZXsNCgkJCS8vIGNvcmUgYmVsb3cgMS42DQoJCQlpZigkZ0Ntcy0+Y29uZmlnWyJhc3N1bWVfbW9kX3Jld3JpdGUiXSAmJiBpc3NldCgkX0dFVFsicGFnZSJdKSl7DQoJCQkJJHJlZGlyZWN0aW9uID0gIm1vZF9yZXdyaXRlIjsNCgkJCX1lbHNlaWYoISRnQ21zLT5jb25maWdbImFzc3VtZV9tb2RfcmV3cml0ZSJdICYmICRnQ21zLT5jb25maWdbImludGVybmFsX3ByZXR0eV91cmxzIl0gJiYgaXNzZXQoJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl0pKXsNCgkJCQkkcmVkaXJlY3Rpb24gPSAiaW50ZXJuYWwiOw0KCQkJfQ0KCQl9DQoJCSRwYXJhbXMgPSBhcnJheSgpOw0KCQkkZ2xvYmFsbW9kdWxldmFycyA9IGFycmF5KCk7DQoJCWlmKGlzc2V0KCRfR0VUWyJtYWN0Il0pKXsNCgkJCS8vIGlmIHdlIGFyZW4ndCB1c2luZyBwcmV0dHkgdXJscy4uLg0KCQkJJG1vZGluZm8gPSBleHBsb2RlKCIsIiwkX0dFVFsibWFjdCJdKTsNCgkJCWlmKGlzc2V0KCRtb2RpbmZvKSAmJiAkbW9kaW5mb1swXSA9PSAkdGhpcy0+R2V0TmFtZSgpKXsNCgkJCQlpZihpc3NldCgkX0dFVFskbW9kaW5mb1sxXS4icGFyZW50Il0pKQ0KCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1sicGFyZW50Il09JF9HRVRbJG1vZGluZm9bMV0uInBhcmVudCJdOw0KCQkJCWlmKGlzc2V0KCRfR0VUWyRtb2RpbmZvWzFdLiJ3aGF0Il0pKQ0KCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1sid2hhdCJdPSRfR0VUWyRtb2RpbmZvWzFdLiJ3aGF0Il07DQoJCQkJaWYoaXNzZXQoJF9HRVRbJG1vZGluZm9bMV0uImFsaWFzIl0pKQ0KCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1siYWxpYXMiXT0kX0dFVFskbW9kaW5mb1sxXS4iYWxpYXMiXTsNCgkJCQlpZihpc3NldCgkX0dFVFskbW9kaW5mb1sxXS4icGFnZWluZGV4Il0pKQ0KCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1sicGFnZWluZGV4Il09JF9HRVRbJG1vZGluZm9bMV0uInBhZ2VpbmRleCJdOw0KCQkJfQ0KCQl9ZWxzZWlmKCRyZWRpcmVjdGlvbiA9PSAibW9kX3Jld3JpdGUiIHx8ICRyZWRpcmVjdGlvbiA9PSAiaW50ZXJuYWwiKXsNCgkJCSRwYXJhbXMgPSBhcnJheSgpOw0KCQkJaWYoJHJlZGlyZWN0aW9uID09ICJtb2RfcmV3cml0ZSIgJiYgaXNzZXQoJF9HRVRbInBhZ2UiXSkpew0KCQkJCS8vIGlmIHdlIGFyZSB1c2luZyBhbiBleHRlcm5hbCBtb2RfcmV3cml0ZSwgYXNzdW1pbmcgeW91IGFyZSB1c2luZyB0aGUgdmVyeQ0KCQkJCS8vIGJhc2ljIHJld3JpdGUgd2hpY2ggcHV0cyB0aGUgbW9kdWxlIGluZm9ybWF0aW9ucyBpbnNpZGUgdGhlIHBhZ2UgdmFyaWFibGUNCgkJCQkkcGFydHMgPSBleHBsb2RlKCIvIiwkX0dFVFsicGFnZSJdKTsNCgkJCQlmb3JlYWNoKCRwYXJ0cyBhcyAkcGFydCl7DQoJCQkJCWlmKCRwYXJ0ICE9ICIiKQkkcGFyYW1zW10gPSAkcGFydDsNCgkJCQl9DQoJCQl9ZWxzZWlmKCRyZWRpcmVjdGlvbiA9PSAiaW50ZXJuYWwiKXsNCgkJCQkvLyBpZiB3ZSBhcmUgdXNpbmcgdGhlIGludGVybmFsIHByZXR0eSB1cmxzDQoJCQkJJHBhcnRzID0gZXhwbG9kZSgiLyIsJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl0pOw0KCQkJCSRzdGFydGVkID0gZmFsc2U7DQoJCQkJZm9yZWFjaCgkcGFydHMgYXMgJHBhcnQpew0KCQkJCQlpZigkc3RhcnRlZCAmJiAkcGFydCAhPSAiIikJJHBhcmFtc1tdID0gJHBhcnQ7DQoJCQkJCWlmKHN0cnRvbG93ZXIoJHBhcnQpID09ICJpbmRleC5waHAiKQkkc3RhcnRlZCA9IHRydWU7DQoJCQkJfQ0KCQkJfQ0KCQkJaWYoaXNzZXQoJHBhcmFtc1swXSkgJiYgc3RydG9sb3dlcigkcGFyYW1zWzBdKSA9PSBzdHJ0b2xvd2VyKCR0aGlzLT5HZXROYW1lKCkpKXsNCgkJCQkgLy8gd2UgYXJlIGluIGEgbW9kdWxlIGFjdGlvbg0KCQkJCSAvLyB0aGlzIHBhcnQgc2hvdWxkIGJlIGNoYW5nZWQgaWYgeW91IGNoYW5nZSB0aGUgcHJldHR5IHVybHMgc3RydWN0dXJlDQoJCQkJaWYoIWlzc2V0KCRwYXJhbXNbMV0pIHx8IHN0cnRvbG93ZXIoJHBhcmFtc1sxXSkgPT0gInF1ZXJ5Iil7DQoNCgkJCQl9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbMV0pICYmIHN0cnRvbG93ZXIoJHBhcmFtc1sxXSkgPT0gImRldGFpbCIpew0KCQkJCQkkbGV2ZWxzID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJCQkJCSRnbG9iYWxtb2R1bGV2YXJzWyJ3aGF0Il0gPSAkbGV2ZWxzW2NvdW50KCRsZXZlbHMpLTFdOw0KCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1siYWxpYXMiXSA9ICRwYXJhbXNbMl07DQoJCQkJfWVsc2V7DQoJCQkJCSRnbG9iYWxtb2R1bGV2YXJzWyJ3aGF0Il0gPSAkcGFyYW1zWzFdOw0KCQkJCQlzd2l0Y2goY291bnQoJHBhcmFtcykpew0KCQkJCQkJY2FzZSA2Og0KCQkJCQkJCSRnbG9iYWxtb2R1bGV2YXJzWyJwYWdlaW5kZXgiXSA9ICRwYXJhbXNbM107DQoJCQkJCQkJJGdsb2JhbG1vZHVsZXZhcnNbIm5icGVycGFnZSJdID0gJHBhcmFtc1s0XTsNCgkJCQkJCWNhc2UgNDoNCgkJCQkJCQkkZ2xvYmFsbW9kdWxldmFyc1sicGFyZW50Il0gPSAkcGFyYW1zWzJdOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSA1Og0KCQkJCQkJCSRnbG9iYWxtb2R1bGV2YXJzWyJwYWdlaW5kZXgiXSA9ICRwYXJhbXNbMl07DQoJCQkJCQkJJGdsb2JhbG1vZHVsZXZhcnNbIm5icGVycGFnZSJdID0gJHBhcmFtc1szXTsNCgkJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGdsb2JhbG1vZHVsZXZhcnM7DQoJfQ0KCWZ1bmN0aW9uIGdldF9vYmp0cmVlKCRjdXJpZCwgJGN1cmxldmVsPWZhbHNlLCAkZmllbGQ9ImlkIil7DQoJCS8vIHRoaXMgYnVpbGRzIGFuIG9iamVjdCB0cmVlICgkaXRlbS0+cGFyZW50X29iamVjdC0+cGFyZW50X29iamVjdC4uLikNCgkJLy8gd2UgZmlyc3QgcHV0IGFsbCB0aGUgcGFyZW50cyBpbiBhbiBhcnJheQ0KCQkkcGFyZW50cyA9IGFycmF5KCk7DQoJCSRsZXZlbHMgPSAkdGhpcy0+Z2V0X2xldmVsYXJyYXkoKTsNCgkJaWYoISRjdXJsZXZlbCkJJGN1cmxldmVsID0gJGxldmVsc1tjb3VudCgkbGV2ZWxzKS0xXTsNCgkJJGkgPSBjb3VudCgkbGV2ZWxzKTsNCgkJJHN0YXJ0ZWQgPSBmYWxzZTsNCgkJd2hpbGUoJGN1cmlkICYmICRpID4gMCl7DQoJCQlpZigkbGV2ZWxzWyRpIC0xXSA9PSAkY3VybGV2ZWwpCSRzdGFydGVkID0gdHJ1ZTsNCgkJCWlmKCRzdGFydGVkKXsNCgkJCQkkZ2V0ZnVuY3Rpb24gPSAiZ2V0X2xldmVsXyIuJGxldmVsc1skaSAtMV07DQoJCQkJJGl0ZW0gPSAkdGhpcy0+JGdldGZ1bmN0aW9uKGFycmF5KCRmaWVsZD0+JGN1cmlkKSk7DQoJCQkJJGl0ZW0gPSBpc19hcnJheSgkaXRlbSk/JGl0ZW1bMF06JGl0ZW07DQoJCQkJJGl0ZW0tPl9fd2hhdCA9ICRsZXZlbHNbJGktMV07DQoJCQkJJHBhcmVudHNbXSA9ICRpdGVtOw0KCQkJCSRmaWVsZCA9ICJpZCI7DQoJCQkJJGN1cmlkID0gaXNzZXQoJGl0ZW0tPnBhcmVudF9pZCk/JGl0ZW0tPnBhcmVudF9pZDpmYWxzZTsNCgkJCX0NCgkJCSRpLS07DQoJCX0NCgkJDQoJCS8vIG5leHQsIHdlIHByb2Nlc3MgdGhlIGFycmF5IG9mIHBhcmVudHMgdG8gYnVpbGQgdGhlIHBhcmVudCB0cmVlDQoJCSRwYXJlbnR0cmVlID0gZmFsc2U7DQoJCSRpID0gY291bnQoJHBhcmVudHMpIC0gMTsNCgkJd2hpbGUoJGkgPj0gMCl7DQoJCQlpZigkcGFyZW50dHJlZSl7DQoJCQkJJG5ld3RyZWUgPSAkcGFyZW50c1skaV07DQoJCQkJJG5ld3RyZWUtPnBhcmVudF9vYmplY3QgPSAkcGFyZW50dHJlZTsNCgkJCQkkcGFyZW50dHJlZSA9ICRuZXd0cmVlOw0KCQkJfWVsc2V7DQoJCQkJJHBhcmVudHRyZWUgPSAkcGFyZW50c1skaV07DQoJCQl9DQoJCQkkaS0tOw0KCQl9DQoJCSR0aGlzLT5jdXJyZW50dHJlZSA9ICRwYXJlbnR0cmVlOw0KCQlyZXR1cm4gJHBhcmVudHRyZWU7DQoJfQ0KCWZ1bmN0aW9uIGJ1aWxkR2xvYmFsVHJlZSgpew0KCQkvLyB0aGlzIHNhdmVzIHRoZSBjdXJyZW50IHRyZWUgaW4gdGhlIG1vZHVsZS4uLg0KCQkkbGV2ZWxzID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJCSRnbG9iID0gJHRoaXMtPmdldF9tb2R1bGVHZXRWYXJzKCk7DQoJCWlmKGlzc2V0KCRnbG9iWyJwYWdlaW5kZXgiXSkpCSR0aGlzLT5jdXJyZW50cGFnZWluZGV4ID0gJGdsb2JbInBhZ2VpbmRleCJdOw0KCQlpZihpc3NldCgkZ2xvYlsiYWxpYXMiXSkpew0KCQkJJHRyZWUgPSAkdGhpcy0+Z2V0X29ianRyZWUoJGdsb2JbImFsaWFzIl0sICRsZXZlbHNbY291bnQoJGxldmVscyktMV0sICJhbGlhcyIpOw0KCQl9ZWxzZWlmKGlzc2V0KCRnbG9iWyJwYXJlbnQiXSkgJiYgaXNzZXQoJGdsb2JbIndoYXQiXSkpew0KCQkJJHRyZWUgPSAkdGhpcy0+Z2V0X29ianRyZWUoJGdsb2JbInBhcmVudCJdLCAkdGhpcy0+Z2V0X25leHRsZXZlbCgkZ2xvYlsid2hhdCJdLGZhbHNlKSwgImFsaWFzIik7DQoJCX0NCgkJDQoJCWlmKGlzc2V0KCR0cmVlKSAmJiAkdHJlZSl7DQoJCQkkdGhpcy0+Y3VycmVudHRyZWUgPSAkdHJlZTsNCgkJCS8vIHRoaXMgc2F2ZXMgdGhlIHNlbGVjdGVkIGl0ZW0gZm9yIGVhY2ggbGV2ZWwNCgkJCSR0aGlzLT5wbGN1cnJlbnRbJHRyZWUtPl9fd2hhdF0gPSAkdHJlZS0+YWxpYXM7DQoJCQl3aGlsZShpc3NldCgkdHJlZS0+cGFyZW50X29iamVjdCkpew0KCQkJCSR0cmVlID0gJHRyZWUtPnBhcmVudF9vYmplY3Q7DQoJCQkJJHRoaXMtPnBsY3VycmVudFskdHJlZS0+X193aGF0XSA9ICR0cmVlLT5hbGlhczsNCgkJCX0NCgkJfQ0KCX0NCglmdW5jdGlvbiBmdW5jdGlvbl9tb2RicmVhZGNydW1icygkcGFyYW1zLCAmJHNtYXJ0eSl7DQoJCS8vIHJlZ2lzdGVyZWQgc21hcnR5IGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIGJyZWFkY3J1bWJzDQoJCS8vIHVzZXMgc2ltaWxhciBwYXJhbWV0ZXJzIHRvIHRoZSBjb3JlIGJyZWFkY3J1bWJzIGZ1bmN0aW9uDQoJCWlmKCEkdGhpcy0+Y3VycmVudHRyZWUpCQkkdGhpcy0+YnVpbGRHbG9iYWxUcmVlKCk7DQoJCQ0KCQlpZigkdGhpcy0+Y3VycmVudHRyZWUpew0KCQkJZ2xvYmFsICRnQ21zOw0KCQkJJHJldHVybmlkID0gJGdDbXMtPnZhcmlhYmxlc1siY29udGVudF9pZCJdOw0KCQkJLy8gd2UgY3JlYXRlIHRoZSBicmVhZGNydW1icw0KCQkJJGNsYXNzaWQgPSBpc3NldCgkcGFyYW1zWyJjbGFzc2lkIl0pPyIgY2xhc3M9XCIiLiRwYXJhbXNbImNsYXNzaWQiXS4iXCIiOiIiOw0KCQkJJGN1cnJlbnRjbGFzc2lkID0gaXNzZXQoJHBhcmFtc1siY3VycmVudGNsYXNzaWQiXSk/IiBjbGFzcz1cIiIuJHBhcmFtc1siY3VycmVudGNsYXNzaWQiXS4iXCIiOiIgY2xhc3M9XCJsYXN0aXRlbVwiIjsNCgkJCSRzdGFydGxldmVsID0gaXNzZXQoJHBhcmFtc1sic3RhcnRsZXZlbCJdKT8kdGhpcy0+Z2V0X25leHRsZXZlbCgkcGFyYW1zWyJzdGFydGxldmVsIl0sIGZhbHNlKTpmYWxzZTsNCgkJCSRkZWxpbWl0ZXIgPSBpc3NldCgkcGFyYW1zWyJkZWxpbWl0ZXIiXSk/JHBhcmFtc1siZGVsaW1pdGVyIl06JHRoaXMtPkxhbmcoImJyZWFkY3J1bWJzX2RlbGltaXRlciIpOw0KCQkJJGluaXRpYWwgPSBpc3NldCgkcGFyYW1zWyJpbml0aWFsIl0pPyRwYXJhbXNbImluaXRpYWwiXTokdGhpcy0+TGFuZygieW91YXJlaGVyZSIpOw0KDQoJCQkkb3V0cHV0ID0gIiI7DQoJCQkkY3VycmVudCA9ICR0aGlzLT5jdXJyZW50dHJlZTsNCgkJCSRnb2luZ29uID0gZmFsc2U7DQoJCQl3aGlsZShpc3NldCgkY3VycmVudC0+cGFyZW50X29iamVjdCkpew0KCQkJCSRjdXJyZW50ID0gJGN1cnJlbnQtPnBhcmVudF9vYmplY3Q7DQoJCQkJaWYoJGN1cnJlbnQtPl9fd2hhdCA9PSAkc3RhcnRsZXZlbCkJJGVuZGVkID0gdHJ1ZTsNCgkJCQlpZighJGVuZGVkKXsNCgkJCQkJJHBhcmFtcyA9IGFycmF5KCJ3aGF0Ij0+JHRoaXMtPmdldF9uZXh0bGV2ZWwoJGN1cnJlbnQtPl9fd2hhdCksICJwYXJlbnQiPT4kY3VycmVudC0+YWxpYXMpOw0KCQkJCQkkcHJldHR5dXJsID0gJHRoaXMtPkJ1aWxkUHJldHR5VXJscygkcGFyYW1zLCAkcmV0dXJuaWQpOw0KCQkJCQkkb3V0cHV0ID0gIjxzcGFuIi4kY2xhc3NpZC4iPiIuJHRoaXMtPkNyZWF0ZUxpbmsoIiIsICJkZWZhdWx0IiwgJHJldHVybmlkLCAkY3VycmVudC0+bmFtZSwgJHBhcmFtcywgIiIsIGZhbHNlLCBmYWxzZSwgIiIsIGZhbHNlLCAkcHJldHR5dXJsKS4iPC9zcGFuPiIuJGRlbGltaXRlci4kb3V0cHV0Ow0KCQkJCX0NCgkJCX0NCgkJCWlmKCRvdXRwdXQgIT0gIiIpICRvdXRwdXQgPSAkaW5pdGlhbC4kb3V0cHV0LiI8c3BhbiIuJGN1cnJlbnRjbGFzc2lkLiI+Ii4kdGhpcy0+Y3VycmVudHRyZWUtPm5hbWUuIjwvc3Bhbj4iOw0KCQkJDQoJCQlpZihpc3NldCgkcGFyYW1zWyJhc3NpZ24iXSkgJiYgJHBhcmFtc1siYXNzaWduIl0gIT0gIiIpew0KCQkJCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWyJhc3NpZ24iXSwgJG91dHB1dCk7DQoJCQl9ZWxzZXsNCgkJCQllY2hvICRvdXRwdXQ7DQoJCQl9DQoJCX0NCgl9DQoJZnVuY3Rpb24gZnVuY3Rpb25fZ2V0X2xldmVsaXRlbSgkcGFyYW1zLCAmJHNtYXJ0eSl7DQoJCS8vIHJlZ2lzdGVyZWQgc21hcnR5IGZ1bmN0aW9uIHRoYXQgcmV0cmlldmVzIGEgZ2l2ZW4gaXRlbSAoYWxpYXMpIG9mIGEgZ2l2ZW4gbGV2ZWwgKHdoYXQpDQoJCWlmKAkhaXNzZXQoJHBhcmFtc1siYXNzaWduIl0pIHx8ICRwYXJhbXNbImFzc2lnbiJdID09ICIiIHx8ICFpc3NldCgkcGFyYW1zWyJ3aGF0Il0pIHx8ICFpc3NldCgkcGFyYW1zWyJhbGlhcyJdKSApCXJldHVybiBmYWxzZTsNCgkJaWYoIWluX2FycmF5KCRwYXJhbXNbIndoYXQiXSwgJHRoaXMtPmdldF9sZXZlbGFycmF5KCkpKQlyZXR1cm4gZmFsc2U7DQoJCSRnZXRmdW5jdGlvbiA9ICJnZXRfbGV2ZWxfIi4kcGFyYW1zWyJ3aGF0Il07DQoJCSRyZXN1bHRzID0gJHRoaXMtPiRnZXRmdW5jdGlvbihhcnJheSgiYWxpYXMiPT4kcGFyYW1zWyJhbGlhcyJdKSk7DQoJCSRpdGVtID0gaXNzZXQoJHJlc3VsdHNbMF0pPyRyZXN1bHRzWzBdOmZhbHNlOw0KCQkkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1siYXNzaWduIl0sICRpdGVtKTsNCgl9DQoJZnVuY3Rpb24gZnVuY3Rpb25fZW1iZWR2aWRlbygkcGFyYW1zLCAmJHNtYXJ0eSl7DQoJCS8vIHJlZ2lzdGVyZWQgc21hcnR5IGZ1bmN0aW9uIHRoYXQgcmV0cmlldmVzIGEgZ2l2ZW4gaXRlbSAoYWxpYXMpIG9mIGEgZ2l2ZW4gbGV2ZWwgKHdoYXQpDQoJCWlmKCFpc3NldCgkcGFyYW1zWyJpdGVtIl0pIHx8ICRwYXJhbXNbIml0ZW0iXSA9PSAiIiApIHJldHVybiBmYWxzZTsNCgkJJGl0ZW09JHBhcmFtc1siaXRlbSJdOw0KCQkvLyBpZiBhIHRlbXBsYXRlIGhhcyBiZWVuIHNwZWNpZmllZCwgd2UgdHJ5IHRvIHJldHJpZXZlIGl0CQ0KCQkkdGVtcGxhdGUgPSBmYWxzZTsNCgkJaWYoaXNzZXQoJHBhcmFtc1sidGVtcGxhdGUiXSkgJiYgJHBhcmFtc1sidGVtcGxhdGUiXSAhPSAiIil7DQoJCQkkdGVtcGxhdGUgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sidGVtcGxhdGUiXSk7DQoJCX0NCgkJLy8gaWYgbm8gdGVtcGxhdGUgaGFzIGJlZW4gc3BlY2lmaWVkIG9yIHNwZWNpZGZpZWQgdGVtcGxhdGUgbm90IGZvdW5kIG9yIGVtcHR5LCB3ZSByZXRyaWV2ZSB0aGUgZGVmYXVsdCBmaW5hbCB0ZW1wbGF0ZQ0KCQlpZighJHRlbXBsYXRlIHx8ICR0ZW1wbGF0ZSA9PSAiIil7DQoJCQkkdGVtcGxhdGVuYW1lID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImVtYmVkdGVtcGxhdGUiKTsNCgkJCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkdGVtcGxhdGVuYW1lLCAkdGhpcy0+R2V0TmFtZSgpKTsNCgkJfQ0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsZXZlbHRpdGxlIiwkdGhpcy0+TGFuZygidmlkZW9fcGx1cmFsIikpOw0KCQkNCgkJaWYgKCFpc3NldCgkaXRlbS0+cGFyZW50b2JqKSkgew0KCQkJJHBhcmVudHMgPSAkdGhpcy0+Z2V0X2xldmVsX2FsYnVtIChhcnJheSgiaWQiPT4kaXRlbS0+cGFyZW50X2lkKSk7DQoJCQkkaXRlbS0+cGFyZW50X29iamVjdD0kcGFyZW50c1swXTsNCgkJfSANCg0KCQlpZiAoJGl0ZW0tPmhlaWdodD09IiIpIHsNCgkJCSRpdGVtLT5oZWlnaHQ9JHBhcmVudG9iai0+ZGVmYXVsdF9oZWlnaHQ7DQoJCX0NCgkJaWYgKCRpdGVtLT53aWR0aD09IiIpIHsNCgkJCSRpdGVtLT53aWR0aD0kcGFyZW50b2JqLT5kZWZhdWx0X3dpZHRoOw0KCQl9DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbSIsJGl0ZW0pOw0KDQoJCS8vIHdlIHJldHJpZXZlIGEgbGFiZWwgZm9yIGVhY2ggb2YgdGhlIGl0ZW0ncyBmaWVsZCBhbmQgYXNzaWduIGl0IHRvIHNtYXJ0eQ0KCQkkbGFiZWxzID0gbmV3IFN0ZENsYXNzKCk7DQoJCWZvcmVhY2goJGl0ZW0gYXMgJGtleT0+JHZhbHVlKXsNCgkJCSRsYWJlbHMtPiRrZXkgPSAkdGhpcy0+TGFuZygkd2hhdC4iXyIuJGtleSk7CQkNCgkJfQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImxhYmVscyIsICRsYWJlbHMpOw0KDQoJCS8vIHdlIHByb2Nlc3MgdGhlIHRlbXBsYXRlDQoJCSRyZXN1bHQgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsNCgkJaWYgKGlzc2V0KCRwYXJhbXNbImFzc2lnbiJdKSAmJiAkcGFyYW1zWyJhc3NpZ24iXSE9IiIpIHsNCgkJCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWyJhc3NpZ24iXSwgJHJlc3VsdCk7DQoJCX0gZWxzZSB7DQoJCQllY2hvICRyZXN1bHQ7DQoJCX0NCgl9DQoJZnVuY3Rpb24gY291bnRzb21ldGhpbmcoJHRhYmxlbmFtZSwkd2hhdD0iaWQiLCR3aGVyZT1hcnJheSgpLCR3aGVyZXN0cmluZz1mYWxzZSwkd2hlcmV2YWx1ZXM9YXJyYXkoKSwkcGFyZW50PWZhbHNlKXsNCgkJLy8gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgdGFibGUgY29ycmVzcG9uZGluZyB0byBjcml0ZXJpYXMNCgkJaWYoISRwYXJlbnQgJiYgaXNzZXQoJHdoZXJlWyJwYXJlbnQiXSkpCXVuc2V0KCR3aGVyZVsicGFyZW50Il0pOw0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCWlmKCR3aGVyZXN0cmluZyl7DQoJCQkkd2hlcmVzdHJpbmcgPSAiIFdIRVJFICIuJHdoZXJlc3RyaW5nOw0KCQl9ZWxzZXsNCgkJCSR3aGVyZXN0cmluZyA9ICIiOw0KCQkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJaWYoJGtleSA9PSAicGFyZW50Iil7DQoJCQkJCSR3aGVyZXN0cmluZyAuPSAoJHdoZXJlc3RyaW5nID09ICIiPyIgV0hFUkUgIjoiIEFORCAiKS4iQS5wYXJlbnQ9Qi5pZCBBTkQgQi5hbGlhcz0/IjsNCgkJCQl9ZWxzZXsNCgkJCQkJJHdoZXJlc3RyaW5nIC49ICgkd2hlcmVzdHJpbmcgPT0gIiI/IiBXSEVSRSAiOiIgQU5EICIpLiJBLiIuJGtleS4iPT8iOw0KCQkJCX0NCgkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJCX0NCgkJfQ0KCQkkcXVlcnkgPSAiU0VMRUNUIENPVU5UKEEuJHdoYXQpIG91cmNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kdGFibGVuYW1lLiIgQSI7DQoJCWlmKCRwYXJlbnQgJiYgaXNzZXQoJHdoYXRbInBhcmVudCJdKSkJJHF1ZXJ5IC49ICIsICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBXyIuJHBhcmVudC4iIEIiOw0KCQkkcXVlcnkgLj0gJHdoZXJlc3RyaW5nOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR3aGVyZXZhbHVlcyk7DQoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQlyZXR1cm4gJHJvd1sib3VyY291bnQiXTsNCgkJfWVsc2V7DQoJCQlyZXR1cm4gMDsNCgkJfQ0KCX0NCgkNCgkNCglmdW5jdGlvbiBhZG1pbl9wYWdpbmF0ZSgkbGV2ZWwsJG5icGVycGFnZSwkaWQsJHJldHVybmlkLCRwYXJhbXMpew0KCQkvLyBzYW1lIGFzIHBhZ2luYXRlLCBidXQgZm9yIHRoZSBhZG1pbiBwYW5lbHMNCgkJJHdoZXJlY2xhdXNlID0gYXJyYXkoKTsNCgkJaWYoaXNzZXQoJHBhcmFtc1skbGV2ZWwuIl9zaG93b25seSJdKSAmJiAkcGFyYW1zWyRsZXZlbC4iX3Nob3dvbmx5Il0gIT0gIiIpCSR3aGVyZWNsYXVzZVsicGFyZW50Il0gPSAkcGFyYW1zWyRsZXZlbC4iX3Nob3dvbmx5Il07DQoJCSR0b3RhbCA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygkbGV2ZWwsImlkIiwkd2hlcmVjbGF1c2UpOw0KCQkkbmV4dHBhZ2UgPSBmYWxzZTsNCgkJJHByZXZpb3VzcGFnZSA9IGZhbHNlOw0KCQkkcGFnZWluZm8gPSBmYWxzZTsNCgkJJHBhZ2VzID0gZmFsc2U7DQoJCWlmKCRuYnBlcnBhZ2UgPiAwICYmICR0b3RhbCA+ICRuYnBlcnBhZ2Upew0KCQkJJGN1cnBhZ2UgPSBpc3NldCgkcGFyYW1zWyRsZXZlbC4iX3BhZ2UiXSk/JHBhcmFtc1skbGV2ZWwuIl9wYWdlIl06MDsNCgkJCSRuYnBhZ2VzID0gY2VpbCgkdG90YWwvJG5icGVycGFnZSk7DQoJCQkkcGFnZWluZm8gPSAoKCRjdXJwYWdlICogJG5icGVycGFnZSkgKyAxKTsNCgkJCSR0bXBlbmQgPSAkcGFnZWluZm8gKyAkbmJwZXJwYWdlIC0gMTsNCgkJCWlmKCR0bXBlbmQgPiAkdG90YWwpCSR0bXBlbmQgPSAkdG90YWw7DQoJCQlpZigkdG1wZW5kICE9ICRwYWdlaW5mbykJJHBhZ2VpbmZvIC49ICItIi4kdG1wZW5kOw0KCQkJJHBhZ2VpbmZvIC49ICIgLyAiLiR0b3RhbDsNCgkJCSRwYWdlcGFyYW1zID0gYXJyYXkoImFjdGl2ZV90YWIiPT4kbGV2ZWwpOw0KCQkJaWYoaXNzZXQoJHBhcmFtc1skbGV2ZWwuIl9zaG93b25seSJdKSAmJiAkcGFyYW1zWyRsZXZlbC4iX3Nob3dvbmx5Il0gIT0gIiIpew0KCQkJCSRwYWdlcGFyYW1zWyRsZXZlbC4iX3Nob3dvbmx5Il0gPSAkcGFyYW1zWyRsZXZlbC4iX3Nob3dvbmx5Il07DQoJCQl9DQoJCQlpZigkY3VycGFnZSA+IDApew0KCQkJCSRwYWdlcGFyYW1zWyRsZXZlbC4iX3BhZ2UiXSA9ICRjdXJwYWdlIC0gMTsNCgkJCQkkcHJldmlvdXNwYWdlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkdGhpcy0+TGFuZygicHJldmlvdXNwYWdlIiksICRwYWdlcGFyYW1zKTsNCgkJCX0NCgkJCWlmKCRjdXJwYWdlIDwgKCRuYnBhZ2VzLTEpKXsNCgkJCQkkcGFnZXBhcmFtc1skbGV2ZWwuIl9wYWdlIl0gPSAkY3VycGFnZSArIDE7DQoJCQkJJG5leHRwYWdlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkdGhpcy0+TGFuZygibmV4dHBhZ2UiKSwgJHBhZ2VwYXJhbXMpOw0KCQkJfQ0KCQkJJGkgPSAwOw0KCQkJJHBhZ2VzID0gJHRoaXMtPkxhbmcoInBhZ2VzIik7DQoJCQl3aGlsZSgkaSA8ICRuYnBhZ2VzKXsNCgkJCQlpZigkaSA+IDApCSRwYWdlcyAuPSAiJm5ic3A7ICI7DQoJCQkJaWYoJGkgPT0gJGN1cnBhZ2Upew0KCQkJCQkkcGFnZXMgLj0gJGk7DQoJCQkJfWVsc2V7DQoJCQkJCSRwYWdlcGFyYW1zWyRsZXZlbC4iX3BhZ2UiXSA9ICRpOw0KCQkJCQkkcGFnZXMgLj0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkaSwgJHBhZ2VwYXJhbXMpOw0KCQkJCX0NCgkJCQkkaSsrOw0KCQkJfQ0KCQl9DQoJCXJldHVybiBhcnJheSgkcGFnZWluZm8sICRuZXh0cGFnZSwgJHByZXZpb3VzcGFnZSwgJHBhZ2VzKTsNCgl9DQoNCglmdW5jdGlvbiBwYWdpbmF0ZSgkd2hhdCwkdG90YWwsJGlkLCRyZXR1cm5pZCwkcGFyYW1zLCRhY3Rpb249ImRlZmF1bHQiKXsNCgkJLy8gZm9yIGZyb250ZW5kIHVzYWdlDQoJCS8vIHRoaXMgYXNzaWducyB0aGUgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBwYWdlIG1lbnUNCgkJDQoJCSRuYnBlcnBhZ2UgPSBpc3NldCgkcGFyYW1zWyJuYnBlcnBhZ2UiXSk/JHBhcmFtc1sibmJwZXJwYWdlIl06MDsNCgkJJG5icGVycGFnZSA9IChpbnQpICRuYnBlcnBhZ2U7DQoJCWlmKCRuYnBlcnBhZ2UgPT0gMCB8fCAkbmJwZXJwYWdlID49ICR0b3RhbCl7DQoJCQkvLyB3ZSdyZSBub3QgdXNpbmcgcGFnaW5hdGlvbg0KCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKGFycmF5KCJwYWdlX3Nob3dpbmciPT5mYWxzZSwicGFnZV90b3RhbGl0ZW1zIj0+ZmFsc2UsInBhZ2VfcGFnZW51bWJlcnMiPT5mYWxzZSwicGFnZV9uZXh0Ij0+ZmFsc2UsInBhZ2VfcHJldmlvdXMiPT5mYWxzZSkpOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCQ0KCQkvLyB3ZSdyZSB1c2luZyBwYWdpbmF0aW9uDQoJCSRjdXJwYWdlID0gaXNzZXQoJHBhcmFtc1sicGFnZWluZGV4Il0pPyRwYXJhbXNbInBhZ2VpbmRleCJdOjE7DQoJCSRuYnBhZ2VzID0gY2VpbCgkdG90YWwvJG5icGVycGFnZSk7DQoJCSRzaG93aW5nID0gKCgoJGN1cnBhZ2UgLTEpICogJG5icGVycGFnZSkgKyAxKTsNCgkJJHRtcGVuZCA9ICRzaG93aW5nICsgJG5icGVycGFnZSAtIDE7DQoJCWlmKCR0bXBlbmQgPiAkdG90YWwpCSR0bXBlbmQgPSAkdG90YWw7DQoJCWlmKCR0bXBlbmQgIT0gJHNob3dpbmcpCSRzaG93aW5nIC49ICItIi4kdG1wZW5kOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhZ2Vfc2hvd2luZyIsJHNob3dpbmcpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhZ2VfdG90YWxpdGVtcyIsJHRvdGFsKTsNCg0KCQkkbmV3cGFyYW1zID0gJHBhcmFtczsNCgkJJHByZXZpb3VzbGluayA9IGZhbHNlOw0KCQkkbmV4dGxpbmsgPSBmYWxzZTsNCgkJaWYoJGN1cnBhZ2UgPiAxKXsNCgkJCS8vIHdlIGNyZWF0ZSB0aGUgbGluayB0byB0aGUgcHJldmlvdXMgcGFnZQ0KCQkJJG5ld3BhcmFtc1sicGFnZWluZGV4Il0gPSAkY3VycGFnZSAtIDE7DQoJCQkkcHJldmlvdXNsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQsICImbHQ7IiwgJG5ld3BhcmFtcywgIiIsIGZhbHNlLCB0cnVlLCAiIGNsYXNzPVwicHJldmlvdXNsaW5rXCIiLCBmYWxzZSwgKCRhY3Rpb24gIT0gImRlZmF1bHQiKT8iIjokdGhpcy0+QnVpbGRQcmV0dHlVcmxzKCRuZXdwYXJhbXMsICRyZXR1cm5pZCkpOw0KCQl9DQoJCWlmKCRjdXJwYWdlIDwgJG5icGFnZXMpew0KCQkJLy8gd2UgY3JlYXRlIHRoZSBsaW5rIHRvIHRoZSBuZXh0IHBhZ2UNCgkJCSRuZXdwYXJhbXNbInBhZ2VpbmRleCJdID0gJGN1cnBhZ2UgKyAxOw0KCQkJJG5leHRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQsICImZ3Q7IiwgJG5ld3BhcmFtcywgIiIsIGZhbHNlLCB0cnVlLCAiIGNsYXNzPVwibmV4dGxpbmtcIiIsIGZhbHNlLCAoJGFjdGlvbiAhPSAiZGVmYXVsdCIpPyIiOiR0aGlzLT5CdWlsZFByZXR0eVVybHMoJG5ld3BhcmFtcywgJHJldHVybmlkKSk7DQoJCX0NCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYWdlX25leHQiLCRuZXh0bGluayk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigicGFnZV9wcmV2aW91cyIsJHByZXZpb3VzbGluayk7CQ0KCQkJCQ0KCQkvLyB3ZSBjcmVhdGUgbGlua3MgZm9yIGVhY2ggcGFnZSBudW1iZXINCgkJJGkgPSAxOw0KCQkkbGlua3MgPSBhcnJheSgpOw0KCQl3aGlsZSgkaSA8PSAkbmJwYWdlcyAmJiAkbmJwYWdlcyA+IDEpew0KCQkJJG5ld3BhcmFtc1sicGFnZWluZGV4Il0gPSAkaTsNCgkJCWlmKCRpID09ICRjdXJwYWdlKXsNCgkJCQkkbGlua3NbXSA9ICI8YSBjbGFzcz1cInBhZ2VudW1iZXIgY3VycmVudFwiPiIuJGkuIjwvYT4iOw0KCQkJfWVsc2V7DQoJCQkJJGxpbmtzW10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJGksICRuZXdwYXJhbXMsICIiLCBmYWxzZSwgdHJ1ZSwgIiBjbGFzcz1cInBhZ2VudW1iZXJcIiIsIGZhbHNlLCAoJGFjdGlvbiAhPSAiZGVmYXVsdCIpPyIiOiR0aGlzLT5CdWlsZFByZXR0eVVybHMoJG5ld3BhcmFtcywgJHJldHVybmlkKSk7DQoJCQl9DQoJCQkkaSsrOw0KCQl9DQoJCSRpID0gMDsNCgkJJHRtcGZsYWcgPSB0cnVlOw0KCQkkbWF4cGFnZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibWF4c2hvd25wYWdlcyIsNyk7DQoJCSRtYXhwYWdlcyA9IChpbnQpICRtYXhwYWdlczsNCgkJJHBhZ2VtZW51ID0gIiI7DQoJCWlmKCRtYXhwYWdlcyA8IDEpCSRtYXhwYWdlcyA9IDk5OTsNCgkJd2hpbGUoJGkgPCBjb3VudCgkbGlua3MpKXsNCgkJCWlmKCRpIDwgKCRtYXhwYWdlcy0xKSB8fCAkbmJwYWdlcyA8PSAkbWF4cGFnZXMpew0KCQkJCSRwYWdlbWVudSAuPSAoJHBhZ2VtZW51ID09ICIiPyIiOiR0aGlzLT5MYW5nKCJwYWdlbWVudWRlbGltaXRlciIpKS4kbGlua3NbJGldOw0KCQkJfWVsc2VpZigkaSA9PSBjb3VudCgkbGlua3MpKXsNCgkJCQkkcGFnZW1lbnUgLj0gJGxpbmtzWyRpXTsNCgkJCX1lbHNlaWYoJHRtcGZsYWcpew0KCQkJCSR0bXBmbGFnID0gZmFsc2U7DQoJCQkJJHBhZ2VtZW51IC49ICI8c3BhbiBjbGFzcz1cInBhZ2VtZW51b3ZlcmZsb3dcIj4iLiR0aGlzLT5MYW5nKCJwYWdlbWVudW92ZXJmbG93IikuIjwvc3Bhbj4iOw0KCQkJfQ0KCQkJJGkrKzsNCgkJfQ0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oInBhZ2VfcGFnZW51bWJlcnMiLCRwYWdlbWVudSk7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2Rpc3RhbmNldG9sZXZlbCgkcGFyZW50bmFtZSwkY2hpbGRuYW1lPWZhbHNlKXsNCgkJLy8gZ2V0IHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHR3byBsZXZlbHMgKG1vc3QgbGlrZWx5IGJldHdlZW4gYSBsZXZlbCBhbmQgdGhlIGZpbmFsIGxldmVsKQ0KCQkkbGV2ZWxzID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJCWlmKCEkY2hpbGRuYW1lKQkkY2hpbGRuYW1lID0gJGxldmVsc1tjb3VudCgkbGV2ZWxzKS0xXTsNCgkJJHBhcmVudHBvc2l0aW9uID0gZmFsc2U7DQoJCSRjaGlsZHBvc2l0aW9uID0gZmFsc2U7DQoJCSRjb3VudGVyID0gMDsNCgkJZm9yZWFjaCgkbGV2ZWxzIGFzICRsZXZlbCl7DQoJCQkkY291bnRlcisrOw0KCQkJaWYoJGxldmVsID09ICRwYXJlbnRuYW1lKSAkcGFyZW50cG9zaXRpb24gPSAkY291bnRlcjsNCgkJCWlmKCRsZXZlbCA9PSAkY2hpbGRuYW1lKSAkY2hpbGRwb3NpdGlvbiA9ICRjb3VudGVyOw0KCQl9DQoJCWlmKCRjaGlsZHBvc2l0aW9uICYmICRwYXJlbnRwb3NpdGlvbil7DQoJCQlyZXR1cm4gYWJzKCRwYXJlbnRwb3NpdGlvbiAtICRjaGlsZHBvc2l0aW9uKTsNCgkJfQ0KCX0NCglmdW5jdGlvbiBnZXRfbmV4dGxldmVsKCRjdXJsZXZlbCwkZmluZGNoaWxkPXRydWUpew0KCQkvLyByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGxldmVsIGJlbG93ICgkZmluZGNoaWxkPXRydWUpIG9yIGFib3ZlICgkZmluZGNoaWxkPWZhbHNlKQ0KCQkkbGV2ZWxzID0gJHRoaXMtPmdldF9sZXZlbGFycmF5KCk7DQoJCSRpID0gMDsNCgkJJHdhbnRlZGxldmVsID0gZmFsc2U7DQoJCXdoaWxlKCRpIDwgY291bnQoJGxldmVscykpew0KCQkJJG5leHQgPSAkZmluZGNoaWxkPyRpKzE6JGktMTsNCgkJCWlmKCRsZXZlbHNbJGldID09ICRjdXJsZXZlbCAmJiBpc3NldCgkbGV2ZWxzWyRuZXh0XSkpICR3YW50ZWRsZXZlbCA9ICRsZXZlbHNbJG5leHRdOw0KCQkJJGkrKzsNCgkJfQ0KCQlyZXR1cm4gJHdhbnRlZGxldmVsOw0KCX0NCglmdW5jdGlvbiBnZXRfcGFyZW50cygkcGFyZW50bmFtZSwkY2hpbGRuYW1lLCRjaGlsZGlkKXsNCgkJLy8gd2hlbiB1c2luZyB0aGUgc2hhcmVjaGlsZHJlbiBvcHRpb24sIHJldHJpZXZlcyB0aGUgcGFyZW50cyBvZiBhIGdpdmVuIGVsZW1lbnQNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICIuJHBhcmVudG5hbWUuIl9pZCBwYXJlbnRpZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBXyIuJHBhcmVudG5hbWUuIl9oYXNfIi4kY2hpbGRuYW1lLiIgV0hFUkUgIi4kY2hpbGRuYW1lLiJfaWQ9PyI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNoaWxkaWQpKTsNCgkJJHBhcmVudHMgPSBhcnJheSgpOw0KCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJJHBhcmVudHNbXSA9ICRyb3dbInBhcmVudGlkIl07DQoJCX0NCgkJcmV0dXJuICRwYXJlbnRzOw0KCX0NCglmdW5jdGlvbiBnZXRfb3B0aW9ucygkdGFibGVuYW1lLCRvbmx5YWN0aXZlPWZhbHNlLCRmdWxsb2JqZWN0PWZhbHNlKXsNCgkJLy8gcmV0dXJucyB0aGUgZWxlbWVudHMgb2YgYW55IHRhYmxlIGFzIG9wdGlvbnMgdG8gdXNlIGZvciBhIGRyb3Bkb3duIGxpc3QNCgkJLy8gcmV0dXJucyBhbiBhcnJheSBvZiAkbGFiZWw9PiR2YWx1ZQ0KCQkkb3JkZXJieW5hbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgib3JkZXJieW5hbWUiLGZhbHNlKTsNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICIuKCRmdWxsb2JqZWN0PyIqIjoiaWQsIG5hbWUiKS4iIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfIi4kdGFibGVuYW1lOw0KCQlpZigkb25seWFjdGl2ZSkJJHF1ZXJ5IC49ICIgV0hFUkUgYWN0aXZlPTEiOw0KCQkkcXVlcnkgLj0gIiBPUkRFUiBCWSAiLigkb3JkZXJieW5hbWU/Im5hbWUiOiJpdGVtX29yZGVyIik7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkkb3B0aW9ucyA9IGFycmF5KCk7DQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQlpZigkZnVsbG9iamVjdCl7DQoJCQkJJG9iaiA9IG5ldyBTdGRDbGFzcygpOw0KCQkJCWZvcmVhY2goJHJvdyBhcyAka2V5PT4kdmFsdWUpCSRvYmotPiRrZXkgPSAkdmFsdWU7DQoJCQkJJG9wdGlvbnNbXSA9ICRvYmo7DQoJCQl9ZWxzZXsNCgkJCQkkb3B0aW9uc1skcm93WyJuYW1lIl1dID0gJHJvd1siaWQiXTsNCgkJCX0NCgkJfQ0KCQkNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCglmdW5jdGlvbiBnZXRfZmllbGRvcHRpb25zKCRmaWVsZCwkZnVsbG9iamVjdD1mYWxzZSl7DQoJCS8vIHJldHVybnMgZmllbGQgb3B0aW9ucyBhcyBvcHRpb25zIHRvIHVzZSBmb3IgYSBkcm9wZG93biBsaXN0DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCi8vCQllY2hvICgiZmllbGQ9JGZpZWxkIik7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2ZpZWxkb3B0aW9ucyBXSEVSRSBmaWVsZD0/IE9SREVSIEJZIGl0ZW1fb3JkZXIiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmaWVsZCkpOw0KCQkkb3B0aW9ucyA9IGFycmF5KCk7DQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQlpZigkZnVsbG9iamVjdCl7DQoJCQkJJG9iaiA9IG5ldyBTdGRDbGFzcygpOw0KCQkJCWZvcmVhY2goJHJvdyBhcyAka2V5PT4kdmFsdWUpCSRvYmotPiRrZXkgPSAkdmFsdWU7DQoJCQkJJG9wdGlvbnNbXSA9ICRvYmo7DQoJCQl9ZWxzZXsNCgkJCQkkb3B0aW9uc1skcm93WyJuYW1lIl1dID0gJHJvd1siaWQiXTsNCgkJCX0NCgkJfQ0KCQkNCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCglmdW5jdGlvbiBnZXRfcGFnZWlkKCRhbGlhcyl7DQoJCS8vIHJldHVybnMgdGhlIHBhZ2UgaWQgZnJvbSBhbiBhbGlhcw0KCQlnbG9iYWwgJGdDbXM7DQoJCSRtYW5hZ2VyID0mICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7DQoJCSRub2RlID0mICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJGFsaWFzKTsNCgkJaWYgKGlzc2V0KCRub2RlKSkgew0KCQkJJGNvbnRlbnQgPSYgJG5vZGUtPkdldENvbnRlbnQoKTsJDQoJCQlpZiAoaXNzZXQoJGNvbnRlbnQpKQlyZXR1cm4gJGNvbnRlbnQtPklkKCk7DQoJCX1lbHNlew0KCQkJJG5vZGUgPSYgJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkYWxpYXMpOw0KCQkJaWYgKGlzc2V0KCRub2RlKSkgcmV0dXJuICRhbGlhczsNCgkJfQ0KCX0NCglmdW5jdGlvbiBhZGRmcm9udGVuZHVybHMoJGl0ZW0sJHBhcmFtcywkaWQsJHJldHVybmlkKXsNCgkJLy8gYWRkcyAkaXRlbS0+ZGV0YWlsbGluayBhbmQgJGl0ZW0tPmRldGFpbHVybCB0byBhIGdpdmVuICRpdGVtDQoJCSRuZXh0bGV2ZWwgPSAkdGhpcy0+Z2V0X25leHRsZXZlbCgkaXRlbS0+X193aGF0KTsNCgkJaWYoISRuZXh0bGV2ZWwpew0KCQkJJG5ld3BhcmFtcyA9IGFycmF5KCJ3aGF0Ij0+JGl0ZW0tPl9fd2hhdCwgImFsaWFzIj0+JGl0ZW0tPmFsaWFzKTsNCgkJfWVsc2V7DQoJCQkkbmV3cGFyYW1zID0gYXJyYXkoIndoYXQiPT4kbmV4dGxldmVsLCAicGFyZW50Ij0+JGl0ZW0tPmFsaWFzKTsNCgkJCWlmKGlzc2V0KCRwYXJhbXNbImZvcmNlbGlzdCJdKSAmJiAkcGFyYW1zWyJmb3JjZWxpc3QiXSkJJG5ld3BhcmFtc1siZm9yY2VsaXN0Il0gPSB0cnVlOw0KCQkJaWYoaXNzZXQoJHBhcmFtc1sibmJwZXJwYWdlIl0pICYmICRwYXJhbXNbIm5icGVycGFnZSJdID4gMCkJJG5ld3BhcmFtc1sibmJwZXJwYWdlIl0gPSAkcGFyYW1zWyJuYnBlcnBhZ2UiXTsNCgkJCWlmKGlzc2V0KCRwYXJhbXNbInBhZ2VpbmRleCJdKSAmJiAkcGFyYW1zWyJwYWdlaW5kZXgiXSA+IDEpCSRuZXdwYXJhbXNbInBhZ2VpbmRleCJdID0gJHBhcmFtc1sicGFnZWluZGV4Il07DQoJCX0NCgkJJGlubGluZSA9IChpc3NldCgkcGFyYW1zWyJpbmxpbmUiXSkgJiYgJHBhcmFtc1siaW5saW5lIl0pP3RydWU6ZmFsc2U7DQoJCWlmKCRpbmxpbmUpCSRuZXdwYXJhbXNbImlubGluZSJdID0gdHJ1ZTsNCgkJJHByZXR0eXVybCA9ICR0aGlzLT5CdWlsZFByZXR0eVVybHMoJG5ld3BhcmFtcywgJHJldHVybmlkKTsNCgkJLy9lY2hvICJwcmV0dHkgdXJsPSRwcmV0dHl1cmwiOw0KCQkkaXRlbS0+ZGV0YWlsbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImRlZmF1bHQiLCAkcmV0dXJuaWQsICRpdGVtLT5uYW1lLCAkbmV3cGFyYW1zLCAiIiwgZmFsc2UsICRpbmxpbmUsICIiLCBmYWxzZSwgJHByZXR0eXVybCk7DQoJCSRpdGVtLT5kZXRhaWx1cmwgPSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZGVmYXVsdCIsICRyZXR1cm5pZCwgIiIsICAgICAgICAgICRuZXdwYXJhbXMsICIiLCB0cnVlLCAgJGlubGluZSwgIiIsIGZhbHNlLCAkcHJldHR5dXJsKTsNCgkJcmV0dXJuICRpdGVtOw0KCX0NCgkNCglmdW5jdGlvbiBhZGRhZG1pbmxpbmtzKCRpdGVtLCRwYXJhbXMsJGlkLCRyZXR1cm5pZCl7DQoJCS8vIGFkZHMgdGhlIGFkbWluIGxpbmtzIHRvIHRoZSBsZXZlbCBpdGVtcy4uLg0KCQkvKiAkcGFyYW1zIDogdGhlIGJhc2UgcGFyYW1ldGVycyBmb3IgdGhlIGFkbWluIGxpbmtzDQoJCQkJcHJlZml4DQoJCQkJdGFibGVuYW1lDQoJCQkJY2hpbGQgKGlmIHRoZSBsZXZlbCBoYXMgYSBjaGlsZCBsZXZlbCwgdGhlIG5hbWUgb2YgdGhlIGNoaWxkIGxldmVsKQ0KCQkJCWxldmVsbmFtZQ0KCQkJCXBhcmVudGRlZmF1bHQgKGJvb2wuLi4gd2hldGhlciBvciBub3QgdGhlcmUgaXMgYSBkZWZhdWx0IGVsZW1lbnQgZm9yIGVhY2ggcGFyZW50KQ0KCQkJCW9yZGVyYnlwYXJlbnQgKGJvb2wpDQoJCQkJYWRkZmlsZXMNCgkJCQlzaGFyZWNoaWxkcmVuIChib29sKQ0KCQkJCXNoYXJlZGJ5cGFyZW50cyAoYm9vbCkNCgkJCQlmaWxlcyAoc3RyaW5nLGNzdikNCgkJKi8NCg0KCQlnbG9iYWwgJGdDbXM7DQoJCSRhZG1pbnRoZW1lID0gJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdOw0KCQkNCgkJaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsZmFsc2UpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiKSAmJiAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiSFZBX21hbmFnZV8iLiRwYXJhbXNbImxldmVsbmFtZSJdKSApew0KCQkJLy8gbm8gYWNjZXNzIC0gd2UgZG9uJ3QgY3JlYXRlIGxpbmtzDQoJCQkkaXRlbS0+ZWRpdGxpbmsgPSAkaXRlbS0+bmFtZTsNCgkJCSRpdGVtLT5kZWxldGVsaW5rID0gIiI7DQoJCQkkaXRlbS0+bW92ZWxpbmtzID0gIiI7DQoJCQkkaXRlbS0+dG9nZ2xlYWN0aXZlID0gJGl0ZW0tPmFjdGl2ZT09MT8kYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vdHJ1ZS5naWYiLCIiLCIiLCIiLCJzeXN0ZW1pY29uIik6JGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZiIsIiIsIiIsIiIsInN5c3RlbWljb24iKTsNCgkJCSRpdGVtLT50b2dnbGVkZWZhdWx0ID0gJGl0ZW0tPmlzZGVmYXVsdD09MT8kYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vdHJ1ZS5naWYiLCIiLCIiLCIiLCJzeXN0ZW1pY29uIik6JGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZiIsIiIsIiIsIiIsInN5c3RlbWljb24iKTsNCgkJCXJldHVybiAkaXRlbTsNCgkJfQ0KCQkNCgkJJHByZWZpeCA9ICRwYXJhbXNbInByZWZpeCJdOw0KCQkkbW92ZXBhcmFtcyA9ICRwYXJhbXM7DQoJCSRtb3ZlcGFyYW1zWyRwcmVmaXguImlkIl0gPSAkaXRlbS0+aWQ7DQoJCSRtb3ZlcGFyYW1zWyJjdXJyZW50b3JkZXIiXSA9ICRpdGVtLT5pdGVtX29yZGVyOw0KCQlpZihpc3NldCgkbW92ZXBhcmFtc1siZmlsZXMiXSkpCXVuc2V0KCRtb3ZlcGFyYW1zWyJmaWxlcyJdKTsNCgkJaWYoJG1vdmVwYXJhbXNbIm9yZGVyYnlwYXJlbnQiXSAmJiBpc3NldCgkaXRlbS0+cGFyZW50X2lkKSkgJG1vdmVwYXJhbXNbInBhcmVudCJdID0gJGl0ZW0tPnBhcmVudF9pZDsNCg0KCQkkaXRlbS0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0Ii4kcHJlZml4LCAkcmV0dXJuaWQsICRpdGVtLT5uYW1lLCBhcnJheSgkcHJlZml4LiJpZCI9PiRpdGVtLT5pZCkpOw0KCQkkaXRlbS0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgIm1vdmVzb21ldGhpbmciLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9kZWxldGUuZ2lmIixsYW5nKCJkZWxldGUiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgibW92ZSI9PiJkZWxldGUiLCJmaWxlcyI9PiRwYXJhbXNbImZpbGVzIl0pLCRtb3ZlcGFyYW1zKSwkdGhpcy0+TGFuZygicHJvbXB0X2RlbGV0ZSIuJHBhcmFtc1sibGV2ZWxuYW1lIl0sIHN0cl9yZXBsYWNlKCInIiwiXCciLCRpdGVtLT5uYW1lKSkpOw0KCQkkaXRlbS0+bW92ZXVwbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgIm1vdmVzb21ldGhpbmciLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9hcnJvdy11LmdpZiIsbGFuZygidXAiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgibW92ZSI9PiJ1cCIpLCRtb3ZlcGFyYW1zKSk7DQoJCSRpdGVtLT5tb3ZlZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJtb3Zlc29tZXRoaW5nIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYiLGxhbmcoImRvd24iKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgibW92ZSI9PiJkb3duIiksJG1vdmVwYXJhbXMpKTsNCgkJJGl0ZW0tPm1vdmVsaW5rcyA9ICRpdGVtLT5tb3ZldXBsaW5rIC4iICIuICRpdGVtLT5tb3ZlZG93bmxpbms7DQoJCQ0KCQkvLyB3ZSByZWJ1aWxkIHRoZSBwYXJhbXMsIGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCBzbyBtYW55IGZvciB0aGUgdG9nZ2xlIGFjdGlvbg0KCQkkdG9nZ2xlcGFyYW1zID0gYXJyYXkoJHByZWZpeC4iaWQiPT4kaXRlbS0+aWQsICJwcmVmaXgiPT4kcHJlZml4LCAidGFibGVuYW1lIj0+JHBhcmFtc1sidGFibGVuYW1lIl0sICJsZXZlbG5hbWUiPT4kcGFyYW1zWyJsZXZlbG5hbWUiXSk7DQoJCWlmKCRwYXJhbXNbInBhcmVudGRlZmF1bHQiXSAmJiBpc3NldCgkaXRlbS0+cGFyZW50X2lkKSl7DQoJCQkkdG9nZ2xlcGFyYW1zWyJwYXJlbnQiXSA9ICRpdGVtLT5wYXJlbnRfaWQ7DQoJCQkkdG9nZ2xlcGFyYW1zWyJwYXJlbnRkZWZhdWx0Il0gPSAxOw0KCQl9DQoJCWlmICgkaXRlbS0+YWN0aXZlID09IDEpew0KCQkJJGl0ZW0tPnRvZ2dsZWFjdGl2ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInRvZ2dsZSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL3RydWUuZ2lmIixsYW5nKCJzZXRmYWxzZSIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5X21lcmdlKGFycmF5KCJ3aGF0Ij0+ImFjdGl2ZSIsIm5ld3ZhbCI9PjApLCR0b2dnbGVwYXJhbXMpKTsNCgkJfWVsc2V7DQoJCQkkaXRlbS0+dG9nZ2xlYWN0aXZlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAidG9nZ2xlIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmIixsYW5nKCJzZXR0cnVlIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXlfbWVyZ2UoYXJyYXkoIndoYXQiPT4iYWN0aXZlIiwibmV3dmFsIj0+MSksJHRvZ2dsZXBhcmFtcykpOw0KCQl9DQoNCgkJaWYgKCRpdGVtLT5pc2RlZmF1bHQgPT0gMSl7DQoJCQkkaXRlbS0+dG9nZ2xlZGVmYXVsdCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInRvZ2dsZSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL3RydWUuZ2lmIixsYW5nKCJzZXRmYWxzZSIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5X21lcmdlKGFycmF5KCJ3aGF0Ij0+ImRlZmF1bHQiLCJuZXd2YWwiPT4wKSwkdG9nZ2xlcGFyYW1zKSk7DQoJCX1lbHNlew0KCQkJJGl0ZW0tPnRvZ2dsZWRlZmF1bHQgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJ0b2dnbGUiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9mYWxzZS5naWYiLGxhbmcoInNldHRydWUiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheV9tZXJnZShhcnJheSgid2hhdCI9PiJkZWZhdWx0IiwibmV3dmFsIj0+MSksJHRvZ2dsZXBhcmFtcykpOw0KCQl9DQoJCXJldHVybiAkaXRlbTsNCgl9DQoJZnVuY3Rpb24gc3BsaXRfaW50b19wYWdlcygkaXRlbWxpc3QsICRpZCwgJHJldHVybmlkLCAkcGFyYW1zLCAkYWN0aW9uPSJkZWZhdWx0IiwgJHByZXR0eXVybHM9dHJ1ZSl7DQoJCS8vIGRlcHJlY2F0ZWQgLSBzaG91bGQgdXNlIGZ1bmN0aW9uIHBhZ2luYXRlIGluc3RlYWQNCgkJcmV0dXJuICRpdGVtbGlzdDsNCgl9DQoJZnVuY3Rpb24gZ2V0X3F1ZXJpZXMoJHdoZXJlPWFycmF5KCksICRhZG1pbj1mYWxzZSwgJGlkPWZhbHNlLCAkcmV0dXJuaWQ9ZmFsc2Upew0KCQkvLyByZXRyaXZlcyBxdWVyaWVzIGZyb20gdGhlIGRhdGFiYXNlIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMNCgkJZ2xvYmFsICRnQ21zOw0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3NhdmVkX3F1ZXJpZXMiOw0KCQkkd2hlcmVjbGF1c2UgPSAiIjsNCgkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJaWYoY291bnQoJHdoZXJlKT4wKXsNCgkJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJJHdoZXJlY2xhdXNlIC49ICgkd2hlcmVjbGF1c2UgPT0gIiI/IiBXSEVSRSAiOiIgQU5EICIpLiRrZXkuIj0/IjsNCgkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJCX0NCgkJfQ0KCQkkcXVlcnkgLj0gJHdoZXJlY2xhdXNlOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR3aGVyZXZhbHVlcyk7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7DQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCQkJZm9yZWFjaCgkcm93IGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJJGl0ZW0tPiRrZXkgPSAkdmFsdWU7DQoJCQl9DQoJCQkkaXRlbS0+d2hlcmV2YWx1ZXMgPSB1bnNlcmlhbGl6ZSgkaXRlbS0+d2hlcmV2YWx1ZXMpOw0KCQkJaWYoIWlzX2FycmF5KCRpdGVtLT52YWx1ZXMpKQkkaXRlbS0+dmFsdWVzID0gYXJyYXkoKTsNCgkJCWlmKCRhZG1pbil7DQoJCQkJJGl0ZW0tPmFjdGlvbnMgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJkZWxldGVxdWVyeSIsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9kZWxldGUuZ2lmIixsYW5nKCJkZWxldGUiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheSgicXVlcnlpZCI9PiRpdGVtLT5pZCkpOw0KCQkJCSRpdGVtLT5hY3Rpb25zIC49ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInRlc3RxdWVyeSIsICRyZXR1cm5pZCwgJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS92aWV3LmdpZiIsbGFuZygidmlldyIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5KCJxdWVyeWlkIj0+JGl0ZW0tPmlkKSk7DQoJCQl9DQoJCQkkaXRlbWxpc3RbXSA9ICRpdGVtOw0KCQl9DQoJCXJldHVybiAoY291bnQoJGl0ZW1saXN0KT4wPyRpdGVtbGlzdDpmYWxzZSk7DQoJfQ0KDQoJZnVuY3Rpb24gY3JlYXRlRmllbGRGb3JtKCR3aGF0LCRpZCwkYXNzaWduPXRydWUpew0KCQlyZXF1aXJlICJmdW5jdGlvbi5jcmVhdGVGaWVsZEZvcm0ucGhwIjsNCgl9DQoJDQoNCglmdW5jdGlvbiBidWlsZFdoZXJlKCR3aGVyZT1hcnJheSgpLCR3aGF0PSIiKXsNCgkJJG11bHRpcGxlbGlzdGZpZWxkcyA9IGFycmF5KCk7DQoJCSR3aGVyZWNsYXVzZSA9ICJBLmFjdGl2ZT0xIjsNCgkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkd2hlcmUgYXMgJGNsYXVzZSl7DQoJCQlpZihpbl9hcnJheSgkd2hhdC4iXyIuJGNsYXVzZVswXSwgJG11bHRpcGxlbGlzdGZpZWxkcykpew0KCQkJCS8vIGxpc3Qgd2l0aCBtdWx0aXBsZSBzZWxlY3RlZCB2YWx1ZXMgYXJlIHNhdmVkIGluIGEgc2VyaWFsaXplZCBhcnJheSwgc28gd2UgaGF2ZSB0byB0d2VhayB0aGUgdmFsdWUNCgkJCQkkY2xhdXNlWzFdID0gJyInLiRjbGF1c2VbMV0uJyInOw0KCQkJCSRjbGF1c2VbMl0gPSAxOw0KCQkJfQ0KCQkJaWYoJGNsYXVzZVswXSA9PSAicGFyZW50Iil7DQoJCQkJCSRjcml0ZXJpYSA9IGV4cGxvZGUoIiwiLCRjbGF1c2VbMV0pOw0KCQkJCQlpZihjb3VudCgkY3JpdGVyaWEpID4gMSl7DQoJCQkJCQkkdG1wID0gIiI7DQoJCQkJCQlmb3JlYWNoKCRjcml0ZXJpYSBhcyAkY3JpdCl7DQoJCQkJCQkJJHRtcCA9ICgkdG1wPT0iIj8iIjoiIE9SICIpLiJBLnBhcmVudD0iLiRjcml0Ow0KCQkJCQkJfQ0KCQkJCQkJJHRtcCA9ICIgQU5EICgiLiR0bXAuIikiOw0KCQkJCQl9ZWxzZXsNCgkJCQkJCSR0bXAgPSAiIEFORCBBLnBhcmVudD0/IjsNCgkJCQkJCSR3aGVyZXZhbHVlc1tdID0gJGNsYXVzZVsxXTsNCgkJCQkJfQ0KCQkJCQkkd2hlcmVjbGF1c2UgLj0gJHRtcDsNCgkJCQkNCgkJCX1lbHNlew0KCQkJCXN3aXRjaCgkY2xhdXNlWzJdKXsNCgkJCQkJY2FzZSAwOg0KCQkJCQkJJHdoZXJlY2xhdXNlIC49ICIgQU5EIEEuIi4kY2xhdXNlWzBdLiI9PyI7DQoJCQkJCQkkd2hlcmV2YWx1ZXNbXSA9IGFkZHNsYXNoZXMoJGNsYXVzZVsxXSk7CQkJCQkNCgkJCQkJCWJyZWFrOw0KCQkJCQkNCgkJCQkJY2FzZSAxOg0KCQkJCQkJJHdoZXJlY2xhdXNlIC49ICIgQU5EIEEuIi4kY2xhdXNlWzBdLiIgTElLRSAnJSIuYWRkc2xhc2hlcygkY2xhdXNlWzFdKS4iJSciOw0KCQkJCQkJYnJlYWs7DQoJCQkJCQ0KCQkJCQljYXNlIDI6DQoJCQkJCQkkd2hlcmVjbGF1c2UgLj0gIiBBTkQgQS4iLiRjbGF1c2VbMF0uIiAhPSA/IjsNCgkJCQkJCSR3aGVyZXZhbHVlc1tdID0gYWRkc2xhc2hlcygkY2xhdXNlWzFdKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQkJDQoJCQkJCWNhc2UgMzoNCgkJCQkJCSR3aGVyZWNsYXVzZSAuPSAiIEFORCBBLiIuJGNsYXVzZVswXS4iID4gPyI7DQoJCQkJCQkkd2hlcmV2YWx1ZXNbXSA9IGFkZHNsYXNoZXMoJGNsYXVzZVsxXSk7CQkJCQkNCgkJCQkJCWJyZWFrOw0KCQkJCQkJDQoJCQkJCWNhc2UgNDoNCgkJCQkJCSR3aGVyZWNsYXVzZSAuPSAiIEFORCBBLiIuJGNsYXVzZVswXS4iIDwgPyI7DQoJCQkJCQkkd2hlcmV2YWx1ZXNbXSA9IGFkZHNsYXNoZXMoJGNsYXVzZVsxXSk7CQkJCQkNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlIDU6DQoJCQkJCQkkd2hlcmVjbGF1c2UgLj0gIiBBTkQgKEEuIi4kY2xhdXNlWzBdLiIgPiA/IEFORCBBLiIuJGNsYXVzZVswXS4iIDwgPykiOw0KCQkJCQkJJHdoZXJldmFsdWVzW10gPSBhZGRzbGFzaGVzKCRjbGF1c2VbMV1bMF0pOw0KCQkJCQkJJHdoZXJldmFsdWVzW10gPSBhZGRzbGFzaGVzKCRjbGF1c2VbMV1bMV0pOw0KCQkJCQkJYnJlYWs7CQkJCQkNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIGFycmF5KCR3aGVyZWNsYXVzZSwgJHdoZXJldmFsdWVzKTsNCgl9DQoJZnVuY3Rpb24gZ2V0V2hlcmVGcm9tUGFyYW1zKCRwYXJhbXMsICRodG1sZW5jb2RlZD1mYWxzZSl7DQoJCS8vIHVzZWQgZm9yIHF1ZXJ5IGNyZWF0aW9uIGFuZCBmcm9udGVuZCBhZHZhbmNlZCBzZWFyY2ggYWN0aW9uDQoJCS8vIHRyYW5zZm9ybXMgcGFyYW1ldGVycyBpbnRvICR3aGVyZSAtIGFuIGFycmF5IG9mIGNyaXRlcmlhOg0KCQkvLyAkd2hlcmVbXSA9IGFycmF5KCRmaWVsZG5hbWUsICRzZWFyY2h2YWx1ZSwgJGNvbXBhcmlzb25fdHlwZSkNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkd2hlcmUgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCRwYXJhbXMgYXMgJGtleT0+JHZhbHVlKXsNCgkJCWlmKHN1YnN0cigka2V5LDAsNikgPT0gImZpZWxkXyIgJiYgdHJpbSgkdmFsdWUpICE9ICIiKXsNCgkJCQkka2V5ID0gc3Vic3RyKCRrZXksNik7DQoJCQkJaWYoaXNfYXJyYXkoJHZhbHVlKSAmJiBjb3VudCgkdmFsdWUpPT0xKQkkdmFsdWUgPSAkdmFsdWVbMF07DQoJCQkJJGNvbXBhcmUgPSBpc3NldCgkcGFyYW1zWyJjb21wYXJlXyIuJGtleV0pPyRwYXJhbXNbImNvbXBhcmVfIi4ka2V5XTowOw0KCQkJCWlmKCR2YWx1ZSA9PSAiX19kYXRlX2ZpZWxkIil7DQoJCQkJCWlmKCRjb21wYXJlICE9ICJOQSIpew0KCQkJCQkJLy8gVGhlIGNvZGUgaXMgc3VjaCB0aGF0IHJlbW92aW5nIGFueSBwYXJ0IG9mIHRoZSB0aW1lIGlucHV0IGZyb20gdGhlIGZvcm0gd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGRlZmF1bHQgdmFsdWUNCgkJCQkJCSR0aW1laW5wdXRzID0gYXJyYXkoIkhvdXIiPT4iSCIsIk1pbnV0ZSI9PiJpIiwiU2Vjb25kIj0+InMiLCJNb250aCI9PiJuIiwiRGF5Ij0+ImoiLCJZZWFyIj0+IlkiKTsNCgkJCQkJCSRwYXJ0cyA9IGFycmF5KCk7DQoJCQkJCQlmb3JlYWNoKCR0aW1laW5wdXRzIGFzICRpbnB1dG5hbWU9PiRkYXRlcGFydCl7CQ0KCQkJCQkJCSRwYXJ0c1tdID0gKGlzc2V0KCRwYXJhbXNbImRhdGVfIi4ka2V5LiJfIi4kaW5wdXRuYW1lXSkpPyRwYXJhbXNbImRhdGVfIi4ka2V5LiJfIi4kaW5wdXRuYW1lXTpkYXRlKCRkYXRlcGFydCk7DQoJCQkJCQl9DQoJCQkJCQkkdmFsdWUgPSBta3RpbWUoJHBhcnRzWzBdLCRwYXJ0c1sxXSwkcGFydHNbMl0sJHBhcnRzWzNdLCRwYXJ0c1s0XSwkcGFydHNbNV0pOw0KCQkJCQkJJHZhbHVlID0gc3RyX3JlcGxhY2UoIlwnIiwiIiwkZGItPkRCVGltZVN0YW1wKCR2YWx1ZSkpOw0KCQkJCQkJDQoJCQkJCQlpZigkY29tcGFyZSA9PSA1KXsNCgkJCQkJCQkkcGFydHMgPSBhcnJheSgpOw0KCQkJCQkJCWZvcmVhY2goJHRpbWVpbnB1dHMgYXMgJGlucHV0bmFtZT0+JGRhdGVwYXJ0KXsJDQoJCQkJCQkJCSRwYXJ0c1tdID0gKGlzc2V0KCRwYXJhbXNbImRhdGVfIi4ka2V5LiJfcGFydDJfIi4kaW5wdXRuYW1lXSkpPyRwYXJhbXNbImRhdGVfIi4ka2V5LiJfcGFydDJfIi4kaW5wdXRuYW1lXTpkYXRlKCRkYXRlcGFydCk7DQoJCQkJCQkJfQ0KCQkJCQkJCSR2YWx1ZTIgPSBta3RpbWUoJHBhcnRzWzBdLCRwYXJ0c1sxXSwkcGFydHNbMl0sJHBhcnRzWzNdLCRwYXJ0c1s0XSwkcGFydHNbNV0pOw0KCQkJCQkJCSR2YWx1ZTIgPSBzdHJfcmVwbGFjZSgiXCciLCIiLCRkYi0+REJUaW1lU3RhbXAoJHZhbHVlMikpOw0KCQkJCQkJCSR3aGVyZVtdID0gYXJyYXkoJGtleSwgYXJyYXkoJHZhbHVlLCR2YWx1ZTIpLCAkY29tcGFyZSk7DQoJCQkJCQl9ZWxzZXsJDQoJCQkJCQkJJHdoZXJlW10gPSBhcnJheSgka2V5LCAkdmFsdWUsICRjb21wYXJlKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX1lbHNlew0KCQkJCQlpZihpc19hcnJheSgkdmFsdWUpKXsNCgkJCQkJCWZvcmVhY2goJHZhbHVlIGFzICRvbmV2YWx1ZSkJJHdoZXJlW10gPSBhcnJheSgka2V5LCAkb25ldmFsdWUsIDEpOw0KCQkJCQl9ZWxzZWlmKCRjb21wYXJlID09IDEpew0KCQkJCQkJJGtleXdvcmRzID0gJHRoaXMtPnBhcnNla2V5d29yZHMoJHZhbHVlKTsNCgkJCQkJCWZvcmVhY2goJGtleXdvcmRzIGFzICR2YWx1ZSl7DQoJCQkJCQkJaWYoJGh0bWxlbmNvZGVkKQkkdmFsdWUgPSBodG1sX2VudGl0eV9kZWNvZGUoJHZhbHVlKTsNCgkJCQkJCQkkdmFsdWUgPSBhZGRzbGFzaGVzKCR2YWx1ZSk7CQkJCQkJCQ0KCQkJCQkJCSR3aGVyZVtdID0gYXJyYXkoJGtleSwgJHZhbHVlLCAkY29tcGFyZSk7DQoJCQkJCQl9DQoJCQkJCX1lbHNlew0KCQkJCQkJaWYoJGh0bWxlbmNvZGVkKQkkdmFsdWUgPSBodG1sX2VudGl0eV9kZWNvZGUoJHZhbHVlKTsNCgkJCQkJCSR2YWx1ZSA9IGFkZHNsYXNoZXMoJHZhbHVlKTsNCgkJCQkJCSR3aGVyZVtdID0gYXJyYXkoJGtleSwgJHZhbHVlLCAkY29tcGFyZSk7DQoJCQkJCX0NCgkJCQl9CQkJCQ0KCQkJfQ0KCQl9CQkNCgkJcmV0dXJuICR3aGVyZTsNCgl9DQoNCglmdW5jdGlvbiBnZXRfbGV2ZWxfY2F0ZWdvcnkoJHdoZXJlPWFycmF5KCksJGFkbWluPWZhbHNlLCRpZD0iIiwkcmV0dXJuaWQ9IiIsJG9yZGVyPWZhbHNlLCRsaW1pdD0wLCRjdXN0b213aGVyZT1mYWxzZSwkY3VzdG9tdmFsdWVzPWFycmF5KCksJGN1c3RvbW9yZGVyPWZhbHNlKXsNCgkJZ2xvYmFsICRnQ21zOw0KCQkkbG9hZF9uYmNoaWxkcmVuID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxvYWRfbmJjaGlsZHJlbiIsdHJ1ZSk7DQoJCWlmKCRhZG1pbikJJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07DQoJCWlmKCEkb3JkZXIpCSRvcmRlciA9ICIiOw0KCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoJCSRmaWVsZHMgPSBhcnJheSgiZGVzY3JpcHRpb24iLCJpZCIsIm5hbWUiLCJhbGlhcyIsIml0ZW1fb3JkZXIiLCJhY3RpdmUiLCJpc2RlZmF1bHQiKTsNCgkJDQoJCSR3aGVyZXN0cmluZyA9ICIiOw0KCQkkd2hlcmV2YWx1ZXMgPSBhcnJheSgpOw0KCQkNCg0KCQlpZigkY3VzdG9td2hlcmUpew0KCQkJJHdoZXJlc3RyaW5nID0gJGN1c3RvbXdoZXJlOw0KCQkJJHdoZXJldmFsdWVzID0gJGN1c3RvbXZhbHVlczsNCgkJfWVsc2V7DQoJCQlmb3JlYWNoKCR3aGVyZSBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKGluX2FycmF5KHN0cnRvbG93ZXIoJGtleSksICRmaWVsZHMpKXsNCgkJCQkJJHdoZXJlc3RyaW5nIC49ICgkd2hlcmVzdHJpbmcgPT0gIiI/IiI6IiBBTkQgIikuJGtleS4iPT8iOw0KCQkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfY2F0ZWdvcnkgQSAiLigkd2hlcmVzdHJpbmcgPT0gIiI/IiI6IiBXSEVSRSAiLiR3aGVyZXN0cmluZyk7DQoJCSRxdWVyeSAuPSAoJGN1c3RvbW9yZGVyPyIgT1JERVIgQlkgIi4kY3VzdG9tb3JkZXI6IiBPUkRFUiBCWSBpdGVtX29yZGVyIik7DQoNCgkJaWYoJGxpbWl0ICYmICRsaW1pdCAhPSAiMCIgJiYgJGxpbWl0ICE9ICIiKQkkcXVlcnkgLj0gIiBMSU1JVCAiLiRsaW1pdDsNCg0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR3aGVyZXZhbHVlcyk7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7DQoJCSRpZGxpc3QgPSAiIjsNCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRpdGVtID0gbmV3IHN0ZENsYXNzKCk7DQoJCQkkaXRlbS0+X193aGF0ID0gImNhdGVnb3J5IjsNCgkJCWZvcmVhY2goJHJvdyBhcyAka2V5PT4kdmFsdWUpew0KCQkJCSRpdGVtLT4ka2V5ID0gJHZhbHVlOw0KCQkJfQ0KCQkJJGl0ZW0tPmRlc2NyaXB0aW9uID0gc3RyaXBzbGFzaGVzKCRpdGVtLT5kZXNjcmlwdGlvbik7DQoJCQkkaXRlbS0+bmFtZSA9IHN0cmlwc2xhc2hlcygkaXRlbS0+bmFtZSk7DQoJCQkkaXRlbS0+YWxpYXMgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPmFsaWFzKTsNCg0KCQkJaWYoJGFkbWluID09IHRydWUpew0KCQkJCS8vICRwYXJtcyB3aWxsIGJlIHRoZSBiYXNlIGZvciBwYXJhbWV0ZXJzIG9mIHRoZSBhZG1pbiBsaW5rcw0KCQkJCSRwYXJtcyA9IGFycmF5KA0KCQkJCQkicHJlZml4Ij0+ImNhdF8iLA0KCQkJCQkidGFibGVuYW1lIj0+IkhWQV9jYXRlZ29yeSIsDQoJCQkJCSJsZXZlbG5hbWUiPT4iY2F0ZWdvcnkiLA0KCQkJCQkiY2hpbGQiPT4iSFZBX2FsYnVtIiwNCgkJCQkJInBhcmVudGRlZmF1bHQiPT5mYWxzZSwNCgkJCQkJIm9yZGVyYnlwYXJlbnQiPT50cnVlLA0KCQkJCQkiYWRkZmlsZXMiPT4iIiwNCgkJCQkJInNoYXJlY2hpbGRyZW4iPT5mYWxzZSwNCgkJCQkJInNoYXJlZGJ5cGFyZW50cyI9PmZhbHNlLA0KCQkJCQkiZmlsZXMiPT4iIg0KCQkJCQkpOw0KCQkJCSRpdGVtID0gJHRoaXMtPmFkZGFkbWlubGlua3MoJGl0ZW0sJHBhcm1zLCRpZCwkcmV0dXJuaWQpOw0KCQkJfQ0KCQkJJGlkbGlzdCAuPSAoJGlkbGlzdD09IiI/IiI6IiBPUiAiKS4iIHBhcmVudD0nIi4kaXRlbS0+aWQuIiciOw0KCQkJYXJyYXlfcHVzaCgkaXRlbWxpc3QsJGl0ZW0pOw0KCQl9DQoNCgkJaWYoJGFkbWluIHx8ICRsb2FkX25iY2hpbGRyZW4pew0KCQkJJG5iY2hpbGRyZW5zID0gYXJyYXkoKTsNCgkJCSRxdWVyeSA9ICJTRUxFQ1QgcGFyZW50LCBjb3VudChpZCkgbmJjaGlsZHJlbiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIFdIRVJFICgiLiRpZGxpc3QuIikgIi4oJGFkbWluPyIiOiJBTkQgYWN0aXZlPTEgIikuIkdST1VQIEJZIHBhcmVudCI7DQoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQkkbmJjaGlsZHJlbnNbJHJvd1sicGFyZW50Il1dID0gJHJvd1sibmJjaGlsZHJlbiJdOw0KCQkJJG5ld2xpc3QgPSBhcnJheSgpOw0KCQkJZm9yZWFjaCgkaXRlbWxpc3QgYXMgJGl0ZW0pew0KCQkJCSRpdGVtLT5uYmNoaWxkcmVuID0gaXNzZXQoJG5iY2hpbGRyZW5zWyRpdGVtLT5pZF0pPyRuYmNoaWxkcmVuc1skaXRlbS0+aWRdOmZhbHNlOw0KCQkJCWFycmF5X3B1c2goJG5ld2xpc3QsICRpdGVtKTsNCgkJCX0NCgkJCSRpdGVtbGlzdCA9ICRuZXdsaXN0Ow0KCQl9DQoJCXJldHVybiAkaXRlbWxpc3Q7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2xldmVsX2FsYnVtKCR3aGVyZT1hcnJheSgpLCRhZG1pbj1mYWxzZSwkaWQ9IiIsJHJldHVybmlkPSIiLCRvcmRlcj1mYWxzZSwkbGltaXQ9MCwkY3VzdG9td2hlcmU9ZmFsc2UsJGN1c3RvbXZhbHVlcz1hcnJheSgpLCRjdXN0b21vcmRlcj1mYWxzZSl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJJGxvYWRfbmJjaGlsZHJlbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJsb2FkX25iY2hpbGRyZW4iLHRydWUpOw0KCQlpZigkYWRtaW4pCSRhZG1pbnRoZW1lID0gJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdOw0KCQlpZighJG9yZGVyKQkkb3JkZXIgPSAiIjsNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkZmllbGRzID0gYXJyYXkoImRlc2NyaXB0aW9uIiwibGFuZyIsImRlZmF1bHRfd2lkdGgiLCJkZWZhdWx0X2hlaWdodCIsInBhcmVudCIsImlkIiwibmFtZSIsImFsaWFzIiwiaXRlbV9vcmRlciIsImFjdGl2ZSIsImlzZGVmYXVsdCIpOw0KCQkNCgkJJHdoZXJlc3RyaW5nID0gIiI7DQoJCSR3aGVyZXZhbHVlcyA9IGFycmF5KCk7DQoJCQ0KDQoJCWlmKCRjdXN0b213aGVyZSl7DQoJCQkkd2hlcmVzdHJpbmcgPSAkY3VzdG9td2hlcmU7DQoJCQkkd2hlcmV2YWx1ZXMgPSAkY3VzdG9tdmFsdWVzOw0KCQl9ZWxzZXsNCgkJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJaWYoJGtleSA9PSAicGFyZW50Iil7DQoJCQkJCSR3aGVyZXN0cmluZyAuPSAoJHdoZXJlc3RyaW5nID09ICIiPyIiOiIgQU5EICIpLiJCLmFsaWFzPT8iOw0KCQkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJCQl9ZWxzZWlmKCRrZXkgPT0gInBhcmVudF9pZCIpew0KCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIjoiIEFORCAiKS4iQi5pZD0/IjsNCgkJCQkJJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7DQoJCQkJfWVsc2VpZihpbl9hcnJheShzdHJ0b2xvd2VyKCRrZXkpLCAkZmllbGRzKSl7DQoJCQkJCSR3aGVyZXN0cmluZyAuPSAoJHdoZXJlc3RyaW5nID09ICIiPyIiOiIgQU5EICIpLiJBLiIuJGtleS4iPT8iOw0KCQkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJDQoJCSRxdWVyeSA9ICJTRUxFQ1QgQS4qLCBCLmlkIHBhcmVudF9pZCwgQi5uYW1lIHBhcmVudF9uYW1lLCBCLmFsaWFzIHBhcmVudF9hbGlhcyBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtIEEsICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2NhdGVnb3J5IEIgV0hFUkUgQS5wYXJlbnQgPSBCLmlkICIuKCR3aGVyZXN0cmluZyA9PSAiIj8iIjoiIEFORCAiKS4kd2hlcmVzdHJpbmc7DQoJCWlmKCRjdXN0b21vcmRlcil7DQoJCQkgJHF1ZXJ5IC49ICIgT1JERVIgQlkgQS4iLiRjdXN0b21vcmRlcjsNCgkJfWVsc2VpZigkb3JkZXIgPT0gIm1vZGlmaWVkIil7DQoJCQkgJHF1ZXJ5IC49ICIgT1JERVIgQlkgQS5kYXRlX21vZGlmaWVkIERFU0MiOw0KCQl9ZWxzZWlmKCRvcmRlciA9PSAiY3JlYXRlZCIpew0KCQkJICRxdWVyeSAuPSAiIE9SREVSIEJZIEEuaWQgREVTQyI7DQoJCX1lbHNlaWYoICRvcmRlciAhPSAiIiAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoImFsbG93X2NvbXBsZXhfb3JkZXIiLGZhbHNlKSB8fCBpbl9hcnJheShzdHJ0b2xvd2VyKCRvcmRlciksICRmaWVsZHMpKSApew0KCQkJJHF1ZXJ5IC49ICIgT1JERVIgQlkgQS4iLiRvcmRlcjsNCgkJfWVsc2V7DQoJCQkgJHF1ZXJ5IC49ICIgT1JERVIgQlkgQi5pdGVtX29yZGVyLCBBLml0ZW1fb3JkZXIiOw0KCQl9DQoJCWlmKCRsaW1pdCAmJiAkbGltaXQgIT0gIjAiICYmICRsaW1pdCAhPSAiIikJJHF1ZXJ5IC49ICIgTElNSVQgIi4kbGltaXQ7DQoNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkd2hlcmV2YWx1ZXMpOw0KCQkkaXRlbWxpc3QgPSBhcnJheSgpOw0KCQkkaWRsaXN0ID0gIiI7DQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCQkJJGl0ZW0tPl9fd2hhdCA9ICJhbGJ1bSI7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGtleT0+JHZhbHVlKXsNCgkJCQkkaXRlbS0+JGtleSA9ICR2YWx1ZTsNCgkJCX0NCgkJCSRpdGVtLT5kZXNjcmlwdGlvbiA9IHN0cmlwc2xhc2hlcygkaXRlbS0+ZGVzY3JpcHRpb24pOw0KCQkJJGl0ZW0tPmxhbmcgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPmxhbmcpOw0KCQkJJGl0ZW0tPm5hbWUgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPm5hbWUpOw0KCQkJJGl0ZW0tPmFsaWFzID0gc3RyaXBzbGFzaGVzKCRpdGVtLT5hbGlhcyk7DQoNCgkJCWlmKCRhZG1pbiA9PSB0cnVlKXsNCgkJCQkvLyAkcGFybXMgd2lsbCBiZSB0aGUgYmFzZSBmb3IgcGFyYW1ldGVycyBvZiB0aGUgYWRtaW4gbGlua3MNCgkJCQkkcGFybXMgPSBhcnJheSgNCgkJCQkJInByZWZpeCI9PiJhbGJfIiwNCgkJCQkJInRhYmxlbmFtZSI9PiJIVkFfYWxidW0iLA0KCQkJCQkibGV2ZWxuYW1lIj0+ImFsYnVtIiwNCgkJCQkJImNoaWxkIj0+IkhWQV92aWRlbyIsDQoJCQkJCSJwYXJlbnRkZWZhdWx0Ij0+ZmFsc2UsDQoJCQkJCSJvcmRlcmJ5cGFyZW50Ij0+dHJ1ZSwNCgkJCQkJImFkZGZpbGVzIj0+IiIsDQoJCQkJCSJzaGFyZWNoaWxkcmVuIj0+ZmFsc2UsDQoJCQkJCSJzaGFyZWRieXBhcmVudHMiPT5mYWxzZSwNCgkJCQkJImZpbGVzIj0+IiINCgkJCQkJKTsNCgkJCQkkaXRlbSA9ICR0aGlzLT5hZGRhZG1pbmxpbmtzKCRpdGVtLCRwYXJtcywkaWQsJHJldHVybmlkKTsNCgkJCX0NCgkJCSRpZGxpc3QgLj0gKCRpZGxpc3Q9PSIiPyIiOiIgT1IgIikuIiBwYXJlbnQ9JyIuJGl0ZW0tPmlkLiInIjsNCgkJCWFycmF5X3B1c2goJGl0ZW1saXN0LCRpdGVtKTsNCgkJfQ0KDQoJCWlmKCRhZG1pbiB8fCAkbG9hZF9uYmNoaWxkcmVuKXsNCgkJCSRuYmNoaWxkcmVucyA9IGFycmF5KCk7DQoJCQkkcXVlcnkgPSAiU0VMRUNUIHBhcmVudCwgY291bnQoaWQpIG5iY2hpbGRyZW4gRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV92aWRlbyBXSEVSRSAoIi4kaWRsaXN0LiIpICIuKCRhZG1pbj8iIjoiQU5EIGFjdGl2ZT0xICIpLiJHUk9VUCBCWSBwYXJlbnQiOw0KCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQoJCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkJJG5iY2hpbGRyZW5zWyRyb3dbInBhcmVudCJdXSA9ICRyb3dbIm5iY2hpbGRyZW4iXTsNCgkJCSRuZXdsaXN0ID0gYXJyYXkoKTsNCgkJCWZvcmVhY2goJGl0ZW1saXN0IGFzICRpdGVtKXsNCgkJCQkkaXRlbS0+bmJjaGlsZHJlbiA9IGlzc2V0KCRuYmNoaWxkcmVuc1skaXRlbS0+aWRdKT8kbmJjaGlsZHJlbnNbJGl0ZW0tPmlkXTpmYWxzZTsNCgkJCQlhcnJheV9wdXNoKCRuZXdsaXN0LCAkaXRlbSk7DQoJCQl9DQoJCQkkaXRlbWxpc3QgPSAkbmV3bGlzdDsNCgkJfQ0KCQlyZXR1cm4gJGl0ZW1saXN0Ow0KCX0NCg0KCWZ1bmN0aW9uIGdldF9sZXZlbF92aWRlbygkd2hlcmU9YXJyYXkoKSwkYWRtaW49ZmFsc2UsJGlkPSIiLCRyZXR1cm5pZD0iIiwkb3JkZXI9ZmFsc2UsJGxpbWl0PTAsJGN1c3RvbXdoZXJlPWZhbHNlLCRjdXN0b212YWx1ZXM9YXJyYXkoKSwkY3VzdG9tb3JkZXI9ZmFsc2Upew0KCQlnbG9iYWwgJGdDbXM7DQoJCSRsb2FkX25iY2hpbGRyZW4gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgibG9hZF9uYmNoaWxkcmVuIix0cnVlKTsNCgkJaWYoJGFkbWluKQkkYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsNCgkJaWYoISRvcmRlcikJJG9yZGVyID0gIiI7DQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCgkJJGZpZWxkcyA9IGFycmF5KCJkZXNjcmlwdGlvbiIsInNpdGUiLCJ2aWRlb2lkIiwid2lkdGgiLCJoZWlnaHQiLCJwYXJlbnQiLCJpZCIsIm5hbWUiLCJhbGlhcyIsIml0ZW1fb3JkZXIiLCJhY3RpdmUiLCJpc2RlZmF1bHQiKTsNCgkJDQoJCSR3aGVyZXN0cmluZyA9ICIiOw0KCQkkd2hlcmV2YWx1ZXMgPSBhcnJheSgpOw0KCQkNCg0KCQlpZigkY3VzdG9td2hlcmUpew0KCQkJJHdoZXJlc3RyaW5nID0gJGN1c3RvbXdoZXJlOw0KCQkJJHdoZXJldmFsdWVzID0gJGN1c3RvbXZhbHVlczsNCgkJfWVsc2V7DQoJCQlmb3JlYWNoKCR3aGVyZSBhcyAka2V5PT4kdmFsdWUpew0KCQkJCWlmKCRrZXkgPT0gInBhcmVudCIpew0KCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIjoiIEFORCAiKS4iQi5hbGlhcz0/IjsNCgkJCQkJJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7DQoJCQkJfWVsc2VpZigka2V5ID09ICJwYXJlbnRfaWQiKXsNCgkJCQkJJHdoZXJlc3RyaW5nIC49ICgkd2hlcmVzdHJpbmcgPT0gIiI/IiI6IiBBTkQgIikuIkIuaWQ9PyI7DQoJCQkJCSR3aGVyZXZhbHVlc1tdID0gJHZhbHVlOw0KCQkJCX1lbHNlaWYoaW5fYXJyYXkoc3RydG9sb3dlcigka2V5KSwgJGZpZWxkcykpew0KCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIjoiIEFORCAiKS4iQS4iLiRrZXkuIj0/IjsNCgkJCQkJJHdoZXJldmFsdWVzW10gPSAkdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCQ0KCQkkcXVlcnkgPSAiU0VMRUNUIEEuKiwgQi5pZCBwYXJlbnRfaWQsIEIubmFtZSBwYXJlbnRfbmFtZSwgQi5hbGlhcyBwYXJlbnRfYWxpYXMgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV92aWRlbyBBLCAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9hbGJ1bSBCIFdIRVJFIEEucGFyZW50ID0gQi5pZCAiLigkd2hlcmVzdHJpbmcgPT0gIiI/IiI6IiBBTkQgIikuJHdoZXJlc3RyaW5nOw0KCQlpZigkY3VzdG9tb3JkZXIpew0KCQkJICRxdWVyeSAuPSAiIE9SREVSIEJZIEEuIi4kY3VzdG9tb3JkZXI7DQoJCX1lbHNlaWYoJG9yZGVyID09ICJtb2RpZmllZCIpew0KCQkJICRxdWVyeSAuPSAiIE9SREVSIEJZIEEuZGF0ZV9tb2RpZmllZCBERVNDIjsNCgkJfWVsc2VpZigkb3JkZXIgPT0gImNyZWF0ZWQiKXsNCgkJCSAkcXVlcnkgLj0gIiBPUkRFUiBCWSBBLmlkIERFU0MiOw0KCQl9ZWxzZWlmKCAkb3JkZXIgIT0gIiIgJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhbGxvd19jb21wbGV4X29yZGVyIixmYWxzZSkgfHwgaW5fYXJyYXkoc3RydG9sb3dlcigkb3JkZXIpLCAkZmllbGRzKSkgKXsNCgkJCSRxdWVyeSAuPSAiIE9SREVSIEJZIEEuIi4kb3JkZXI7DQoJCX1lbHNlew0KCQkJICRxdWVyeSAuPSAiIE9SREVSIEJZIEIuaXRlbV9vcmRlciwgQS5pdGVtX29yZGVyIjsNCgkJfQ0KCQlpZigkbGltaXQgJiYgJGxpbWl0ICE9ICIwIiAmJiAkbGltaXQgIT0gIiIpCSRxdWVyeSAuPSAiIExJTUlUICIuJGxpbWl0Ow0KDQoJCQkkb3B0aW9uc19zaXRlID0gYXJyYXlfZmxpcCgkdGhpcy0+Z2V0X2ZpZWxkb3B0aW9ucygidmlkZW9fc2l0ZSIpKTsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkd2hlcmV2YWx1ZXMpOw0KCQkkaXRlbWxpc3QgPSBhcnJheSgpOw0KCQkkaWRsaXN0ID0gIiI7DQoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCQkJJGl0ZW0tPl9fd2hhdCA9ICJ2aWRlbyI7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGtleT0+JHZhbHVlKXsNCgkJCQkkaXRlbS0+JGtleSA9ICR2YWx1ZTsNCgkJCX0NCgkJCSRpdGVtLT5kZXNjcmlwdGlvbiA9IHN0cmlwc2xhc2hlcygkaXRlbS0+ZGVzY3JpcHRpb24pOw0KCQkJJGl0ZW0tPnNpdGUgPSAoaXNzZXQoJG9wdGlvbnNfc2l0ZVskaXRlbS0+c2l0ZV0pKT8kaXRlbS0+c2l0ZTpmYWxzZTsNCgkJCSRpdGVtLT5zaXRlX25hbWV2YWx1ZSA9IChpc3NldCgkb3B0aW9uc19zaXRlWyRpdGVtLT5zaXRlXSkpPyRvcHRpb25zX3NpdGVbJGl0ZW0tPnNpdGVdOiIiOw0KCQkJJGl0ZW0tPnZpZGVvaWQgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPnZpZGVvaWQpOw0KCQkJJGl0ZW0tPm5hbWUgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPm5hbWUpOw0KCQkJJGl0ZW0tPmFsaWFzID0gc3RyaXBzbGFzaGVzKCRpdGVtLT5hbGlhcyk7DQoJCSRpdGVtLT5uYmNoaWxkcmVuID0gZmFsc2U7DQoJCQ0KCQkJaWYoJGFkbWluID09IHRydWUpew0KCQkJCS8vICRwYXJtcyB3aWxsIGJlIHRoZSBiYXNlIGZvciBwYXJhbWV0ZXJzIG9mIHRoZSBhZG1pbiBsaW5rcw0KCQkJCSRwYXJtcyA9IGFycmF5KA0KCQkJCQkicHJlZml4Ij0+InZpZF8iLA0KCQkJCQkidGFibGVuYW1lIj0+IkhWQV92aWRlbyIsDQoJCQkJCSJsZXZlbG5hbWUiPT4idmlkZW8iLA0KCQkJCQkiY2hpbGQiPT5mYWxzZSwNCgkJCQkJInBhcmVudGRlZmF1bHQiPT5mYWxzZSwNCgkJCQkJIm9yZGVyYnlwYXJlbnQiPT50cnVlLA0KCQkJCQkiYWRkZmlsZXMiPT4iIiwNCgkJCQkJInNoYXJlY2hpbGRyZW4iPT5mYWxzZSwNCgkJCQkJInNoYXJlZGJ5cGFyZW50cyI9PmZhbHNlLA0KCQkJCQkiZmlsZXMiPT4iIg0KCQkJCQkpOw0KCQkJCSRpdGVtID0gJHRoaXMtPmFkZGFkbWlubGlua3MoJGl0ZW0sJHBhcm1zLCRpZCwkcmV0dXJuaWQpOw0KCQkJfQ0KCQkJJGlkbGlzdCAuPSAoJGlkbGlzdD09IiI/IiI6IiBPUiAiKS4iIHBhcmVudD0nIi4kaXRlbS0+aWQuIiciOw0KCQkJYXJyYXlfcHVzaCgkaXRlbWxpc3QsJGl0ZW0pOw0KCQl9DQoNCgkJcmV0dXJuICRpdGVtbGlzdDsNCgl9DQoJZnVuY3Rpb24gcGxSZXNpemUoJGZ1bGxwYXRoLCAkbmV3cGF0aCwgJG5ld3dpZHRoLCAkbmV3aGVpZ2h0PWZhbHNlLCAkdHJhbnNwYXJlbmN5PWZhbHNlLCAkY3JvcD1mYWxzZSkgew0KCQlyZXF1aXJlICJmdW5jdGlvbi5wbHJlc2l6ZS5waHAiOw0KCQlyZXR1cm4gJHJldHVybjsNCgl9DQoJDQoJZnVuY3Rpb24gcGxHZXRGaWxlSW5mbygkZmlsZXBhdGgpew0KCQlpZighZmlsZV9leGlzdHMoJGZpbGVwYXRoKSkJcmV0dXJuIGZhbHNlOw0KCQlyZXF1aXJlICJmdW5jdGlvbi5wbEdldEZpbGVJbmZvLnBocCI7DQoJCXJldHVybiAkaW5mbzsNCgl9DQoJDQoJZnVuY3Rpb24gdXBsb2FkX2NoZWNrZmlsZW5hbWUoJGZpbGVuYW1lLCAkZGlyKXsNCgkJLy8gaWYgYSBmaWxlIG9mIHRoYXQgbmFtZSBleGlzdHMsIGFwcGVuZHMgbnVtYmVyIHRvIHRoZSBmaWxlbmFtZQ0KCQkkdG1wZmlsZW5hbWUgPSBzdHJfcmVwbGFjZSgiICIsIl8iLCRmaWxlbmFtZSk7DQoJCSRleHRlbnNpb24gPSBzdHJyY2hyKCR0bXBmaWxlbmFtZSwgIi4iKTsNCgkJJGNsZWFuZmlsZW5hbWUgPSBzdHJfcmVwbGFjZSgkZXh0ZW5zaW9uLCAiIiwgJHRtcGZpbGVuYW1lKTsNCg0KCQkkZGVzdGRpciA9ICRkaXIuJHRtcGZpbGVuYW1lOw0KCQkkaSA9IDE7DQoJCXdoaWxlKGZpbGVfZXhpc3RzKCRkZXN0ZGlyKSl7DQoJCQkkdG1wZmlsZW5hbWUgPSAkY2xlYW5maWxlbmFtZS4iXyIuJGkuJGV4dGVuc2lvbjsNCgkJCSRkZXN0ZGlyID0gJGRpci4kdG1wZmlsZW5hbWU7DQoJCQkkaSsrOw0KCQl9DQoJCXJldHVybiAkdG1wZmlsZW5hbWU7DQoJfQ0KCQ0KCWZ1bmN0aW9uIHBsVXBsb2FkRmlsZSgkZmlsZSwgJGRlc3RpbmF0aW9uPSIiLCAkcmVzaXplPWZhbHNlLCAkY3JvcD1mYWxzZSl7DQoJCWdsb2JhbCAkZ0NtczsNCgkJJGRpciA9ICRnQ21zLT5jb25maWdbInVwbG9hZHNfcGF0aCJdLnN0cl9yZXBsYWNlKCIvLyIsIi8iLCIvIi4kZGVzdGluYXRpb24uIi8iKTsNCgkJDQoJCSRmaWxlbmFtZSA9ICR0aGlzLT51cGxvYWRfY2hlY2tmaWxlbmFtZSgkZmlsZVsibmFtZSJdLCRkaXIpOw0KCQkNCgkJaWYgKGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJGZpbGVbInRtcF9uYW1lIl0sICRkaXIuJGZpbGVuYW1lKSkgew0KCQkJaWYoJHJlc2l6ZSAmJiAhaXNfYXJyYXkoJHJlc2l6ZSkpCSRyZXNpemUgPSBleHBsb2RlKCJ4IiwkcmVzaXplKTsNCgkJCWlmKCRyZXNpemUgJiYgY291bnQoJHJlc2l6ZSkgPT0gMikgJHRoaXMtPnBsUmVzaXplKCRkaXIuJGZpbGVuYW1lLCAnJywgJHJlc2l6ZVswXSwgJHJlc2l6ZVsxXSx0cnVlLCRjcm9wKTsNCgkJCXJldHVybiBzdHJfcmVwbGFjZSgiLy8iLCIvIiwiLyIuJGRlc3RpbmF0aW9uLiIvIi4kZmlsZW5hbWUpOw0KCQl9ZWxzZXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCX0NCgkNCglmdW5jdGlvbiBwbEFzc2lnbkZpbGUoJGZpbGVwYXRoLCAkdGFibGUsICRpdGVtaWQsICRmaWVsZCwgJHRodW1ic2l6ZT1mYWxzZSwgJGNyb3B0aHVtYj1mYWxzZSl7DQoJCSR0YWJsZW5hbWUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV8nLiR0YWJsZTsNCgkJJGZpbGVwYXRoID0gc3RyX3JlcGxhY2UoIi8vIiwiLyIsJGZpbGVwYXRoKTsNCg0KCQlpZigkdGh1bWJzaXplICYmICFpc19hcnJheSgkdGh1bWJzaXplKSkJJHRodW1ic2l6ZSA9IGV4cGxvZGUoIngiLCR0aHVtYnNpemUpOw0KCQlpZiggJGZpbGVwYXRoICE9ICIiICYmICR0aHVtYnNpemUgJiYgY291bnQoJHRodW1ic2l6ZSkgPT0yICkgew0KCQkJZ2xvYmFsICRnQ21zOw0KCQkJJGJhc2VwYXRoID0gJGdDbXMtPmNvbmZpZ1sidXBsb2Fkc19wYXRoIl07DQoJCQkkZXhwbG9kZWQgPSBleHBsb2RlKCIvIiwkZmlsZXBhdGgpOw0KCQkJJGV4cGxvZGVkW2NvdW50KCRleHBsb2RlZCktMV0gPSAicGx0aHVtYl8iLiRleHBsb2RlZFtjb3VudCgkZXhwbG9kZWQpLTFdOw0KCQkJJHRodW1icGF0aCA9IGltcGxvZGUoIi8iLCRleHBsb2RlZCk7DQoJCQkkdGhpcy0+cGxSZXNpemUoJGJhc2VwYXRoLiIvIi4kZmlsZXBhdGgsICRiYXNlcGF0aC4iLyIuJHRodW1icGF0aCwgJHRodW1ic2l6ZVswXSwgJHRodW1ic2l6ZVsxXSwgdHJ1ZSwgJGNyb3B0aHVtYik7DQoJCX0NCg0KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCg0KCQlpZiggJHRhYmxlID09ICJIVkFfbXVsdGlwbGVmaWxlc2ZpZWxkcyIgKSB7DQoJCQkkbmV3aWQgPSAkZGItPkdlbklEKCR0YWJsZW5hbWUuIl9zZXEiKTsNCgkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAkdGFibGVuYW1lIFNFVCBmaWxlaWQ9PywgaXRlbWlkPT8sIGZpZWxkbmFtZT0/LCBmaWxlcGF0aD0/IjsNCgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkbmV3aWQsICRpdGVtaWQsICRmaWVsZCwgJGZpbGVwYXRoKSApOw0KCQl9ZWxzZXsNCgkJCSRxdWVyeSA9ICJVUERBVEUgJHRhYmxlbmFtZSBTRVQgJGZpZWxkPT8gV0hFUkUgaWQ9PyBMSU1JVCAxIjsNCgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGZpbGVwYXRoLCRpdGVtaWQpKTsNCgkJfQ0KCQkNCgkJcmV0dXJuICRkYnJlc3VsdDsNCgl9DQoJZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKXsNCgkJLy8gcmV0dXJucyB0aGUgY29udGVudCBvZiBhIGZpbGUNCgkJJGZpbGVwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZW5hbWU7DQoJCWlmKGZpbGVfZXhpc3RzKCRmaWxlcGF0aCkpew0KCQkJJGZoYW5kbGUgPSBmb3BlbigkZmlsZXBhdGgsICJyKyIpOw0KCQkJJGNvbnRlbnQgPSBmcmVhZCgkZmhhbmRsZSwgZmlsZXNpemUoJGZpbGVwYXRoKSk7DQoJCQlyZXR1cm4gJGNvbnRlbnQ7DQoJCX1lbHNlew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfQ0KDQp9DQoNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/instantsearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gY3RsbW1fc2VhcmNoKHdoYXQsaW53aGF0KXsNCgl2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbndoYXQpOw0KCWlmKCFkZXN0aW5hdGlvbikgcmV0dXJuOw0KCXZhciBldmVuID0gZmFsc2U7DQoJdmFyIHRoZXJvd3MgPSBkZXN0aW5hdGlvbi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKTsNCglmb3IoaT0wO2k8dGhlcm93cy5sZW5ndGg7aSsrKXsNCgkJdmFyIHRoZWNsYXNzID0gKGV2ZW4/InJvdzIiOiJyb3cxIik7DQoJCXZhciBuZXdzdHlsZSA9ICJub25lIjsNCgkJdmFyIHRoZWNvbHVtbnMgPSB0aGVyb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpOw0KCQlmb3Ioaj0wO2o8dGhlY29sdW1ucy5sZW5ndGg7aisrKXsNCgkJCWlmKHRoZWNvbHVtbnNbal0uY2xhc3NOYW1lICE9ICJjdGxtbV9ub3NlYXJjaCIpew0KCQkJCXZhciB0bXBhID0gdGhlY29sdW1uc1tqXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdOw0KCQkJCWlmKHRtcGEgJiYgdG1wYS5pbm5lckhUTUwudG9Mb3dlckNhc2UoKS5pbmRleE9mKHdoYXQudG9Mb3dlckNhc2UoKSkgPj0gMCkJbmV3c3R5bGUgPSAidGFibGUtcm93IjsNCgkJCQlpZighdG1wYSAmJiB0aGVjb2x1bW5zW2pdLmlubmVySFRNTC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2hhdC50b0xvd2VyQ2FzZSgpKSA+PSAwKQkJbmV3c3R5bGUgPSAidGFibGUtcm93IjsNCgkJCX0NCgkJfQ0KCQl0aGVyb3dzW2ldLnN0eWxlLmRpc3BsYXkgPSBuZXdzdHlsZTsNCgkJaWYobmV3c3R5bGUgIT0gIm5vbmUiKXsNCgkJCXRoZXJvd3NbaV0uY2xhc3NOYW1lID0gdGhlY2xhc3M7DQoJCQl0aGVyb3dzW2ldLm9ubW91c2VvdmVyID0gZnVuY3Rpb24oKXsgdGhpcy5jbGFzc05hbWUgKz0gImhvdmVyIjsgfTsNCgkJCXRoZXJvd3NbaV0ub25tb3VzZW91dCA9IGZ1bmN0aW9uKCl7IHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUuc3Vic3RyKDAsNCk7IH07DQoJCQlldmVuID0gIWV2ZW47DQoJCX0NCgl9DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/instantsort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZnVuY3Rpb24gY3RsbW1fc29ydFJvd3ModGFibGVpZCxjb2xpbmRleCxkZXNjLG51bWVyaWMpew0KCS8vIHRhYmxlaWQgaXMgdGhlIGlkIG9mIHRoZSB0YWJsZSB0byBzb3J0DQoJLy8gY29saW5kZXggaXMgYWdhaW5zdCB3aGljaCBjb2x1bW4gdG8gc29ydCAoMC0+IGZpcnN0LCAxLT4gc2Vjb25kLi4uKQ0KCS8vIGRlc2MgbWFrZXMgdGhlIHNvcnQgZGVzY2VuZGluZw0KCS8vIG51bWVyaWMgbWFrZXMgdGhlIHNvcnQgbnVtZXJpYw0KCWlmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWJsZWlkKSkJcmV0dXJuIGZhbHNlOw0KCXZhciB0aGVyb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFibGVpZCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIik7DQoJaWYoIXRoZXJvd3NbMF0gfHwgIXRoZXJvd3NbMF0uY2VsbHNbY29saW5kZXhdKQlyZXR1cm4gZmFsc2U7DQoJDQoJdmFyIHNvcnRlZCA9IG5ldyBBcnJheSgpOw0KCWZvcihpPTA7IGk8dGhlcm93cy5sZW5ndGg7IGkrKyl7DQoJCXZhciB0aGVhcyA9IHRoZXJvd3NbaV0uY2VsbHNbY29saW5kZXhdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIik7DQoJCWlmKHRoZWFzWzBdKXsNCgkJCXZhciBzb3J0ZGF0YSA9IHRoZWFzWzBdLmlubmVySFRNTDsNCgkJfWVsc2V7DQoJCQl2YXIgc29ydGRhdGEgPSB0aGVyb3dzW2ldLmNlbGxzW2NvbGluZGV4XS5pbm5lckhUTUw7DQoJCX0NCgkJc29ydGVkLnB1c2goW3NvcnRkYXRhLCB0aGVyb3dzW2ldXSk7DQoJCXRoZXJvd3NbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGVyb3dzW2ldKTsNCgkJaS0tOw0KCX0NCglpZihudW1lcmljKXsNCgkJaWYoZGVzYyl7DQoJCQlzb3J0ZWQuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gYlswXS1hWzBdOyB9KTsNCgkJfWVsc2V7DQoJCQlzb3J0ZWQuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gYVswXS1iWzBdOyB9KTsNCgkJfQ0KCX1lbHNlew0KCQlpZihkZXNjKXsNCgkJCXNvcnRlZC5zb3J0KGZ1bmN0aW9uKGEsYil7IHJldHVybiBhWzBdLnRvTG93ZXJDYXNlKCkgPCBiWzBdLnRvTG93ZXJDYXNlKCk7IH0pOw0KCQl9ZWxzZXsNCgkJCXNvcnRlZC5zb3J0KGZ1bmN0aW9uKGEsYil7IHJldHVybiBhWzBdLnRvTG93ZXJDYXNlKCkgPiBiWzBdLnRvTG93ZXJDYXNlKCk7IH0pOw0KCQl9DQoJfQ0KDQoJdmFyIHRhYmxlYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhYmxlaWQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdOw0KCXZhciBldmVuID0gdHJ1ZTsNCglmb3IoaT0wOyBpPHNvcnRlZC5sZW5ndGg7IGkrKyl7DQoJCWV2ZW4gPSAhZXZlbjsNCgkJdmFyIHRoZWNsYXNzID0gKGV2ZW4/InJvdzIiOiJyb3cxIik7DQoJCXNvcnRlZFtpXVsxXS5jbGFzc05hbWUgPSB0aGVjbGFzczsNCgkJc29ydGVkW2ldWzFdLm9ubW91c2VvdmVyID0gZnVuY3Rpb24oKXsgdGhpcy5jbGFzc05hbWUgKz0gImhvdmVyIjsgfTsNCgkJc29ydGVkW2ldWzFdLm9ubW91c2VvdXQgPSBmdW5jdGlvbigpeyB0aGlzLmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lLnN1YnN0cigwLDQpOyB9Ow0KCQl0YWJsZWJvZHkuYXBwZW5kQ2hpbGQoc29ydGVkW2ldWzFdKTsNCgl9DQp9DQo=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCgkkbGFuZ1siZnJpZW5kbHluYW1lIl0gPSAiSG9zdGVkIFZpZGVvIEFsYnVtcyI7DQoJJGxhbmdbIm1vZGRlc2NyaXB0aW9uIl0gPSAiVGhpcyBtb2R1bGUgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSBhbGJ1bXMgb2YgdmlkZW9zIGhvc3RlZCBvbiBZb3V0dWJlLCBHb29nbGUgVmlkZW9zIG9yIERhaWx5bW90aW9uIjsNCgkkbGFuZ1siYWRtaW5kZXNjcmlwdGlvbiJdID0gIkhvc3RlZCBWaWRlbyBBbGJ1bXMiOw0KDQoJJGxhbmdbInBhZ2VtZW51ZGVsaW1pdGVyIl0gPSAiJm5ic3A7JiMxMjQ7Jm5ic3A7IjsNCgkkbGFuZ1sicGFnZW1lbnVvdmVyZmxvdyJdID0gIiZuYnNwOy4uLiZuYnNwOyI7DQoJDQovLyBzdHJpbmdzIGZvciBjYXRlZ29yeQ0KCSRsYW5nWyJjYXRlZ29yeSJdID0gIkNhdGVnb3J5IjsNCgkkbGFuZ1siY2F0ZWdvcnlfcGx1cmFsIl0gPSAiQ2F0ZWdvcmllcyI7DQoJJGxhbmdbImFkZF9jYXRlZ29yeSJdID0gIkFkZCBjYXRlZ29yeSI7DQoJJGxhbmdbImVkaXRfY2F0ZWdvcnkiXSA9ICJFZGl0IGNhdGVnb3J5IjsNCgkkbGFuZ1siZmlsdGVyYnlfY2F0ZWdvcnkiXSA9ICJGaWx0ZXIgYnkgY2F0ZWdvcnkiOw0KCSRsYW5nWyJjYXRlZ29yeV9kZXNjcmlwdGlvbiJdID0gIkRlc2NyaXB0aW9uIjsNCgkkbGFuZ1sicHJvbXB0X2RlbGV0ZWNhdGVnb3J5Il0gPSAiWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeSAoJXMpPyBBbGwgY2hpbGRyZW4gd2lsbCBiZSBsb3N0LiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8iOw0KCQ0KLy8gc3RyaW5ncyBmb3IgYWxidW0NCgkkbGFuZ1siYWxidW0iXSA9ICJWaWRlbyBBbGJ1bSI7DQoJJGxhbmdbImFsYnVtX3BsdXJhbCJdID0gIlZpZGVvIEFsYnVtcyI7DQoJJGxhbmdbImFkZF9hbGJ1bSJdID0gIkFkZCBWaWRlbyBBbGJ1bSI7DQoJJGxhbmdbImVkaXRfYWxidW0iXSA9ICJFZGl0IFZpZGVvIEFsYnVtIjsNCgkkbGFuZ1siZmlsdGVyYnlfYWxidW0iXSA9ICJGaWx0ZXIgYnkgVmlkZW8gQWxidW0iOw0KCSRsYW5nWyJhbGJ1bV9kZXNjcmlwdGlvbiJdID0gIkRlc2NyaXB0aW9uIjsNCgkkbGFuZ1siYWxidW1fbGFuZyJdID0gIkxhbmd1ZSBkZSBsJ2FsYnVtIjsNCgkkbGFuZ1siYWxidW1fZGVmYXVsdF93aWR0aCJdID0gIkRlZmF1bHQgd2lkdGggb2YgdmlkZW9zIGluIHRoaXMgYWxidW0iOw0KCSRsYW5nWyJhbGJ1bV9kZWZhdWx0X2hlaWdodCJdID0gIkRlZmF1bHQgaGVpZ2h0IG9mIHZpZGVvcyBpbiB0aGlzIGFsYnVtIjsNCgkkbGFuZ1sicHJvbXB0X2RlbGV0ZWFsYnVtIl0gPSAiWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhpcyBhbGJ1bSAoJXMpPyBBbGwgY2hpbGRyZW4gd2lsbCBiZSBsb3N0LiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8iOw0KCQ0KLy8gc3RyaW5ncyBmb3IgdmlkZW8NCgkkbGFuZ1sidmlkZW8iXSA9ICJWaWRlbyI7DQoJJGxhbmdbInZpZGVvX3BsdXJhbCJdID0gIlZpZGVvcyI7DQoJJGxhbmdbImFkZF92aWRlbyJdID0gIkFkZCBWaWRlbyI7DQoJJGxhbmdbImVkaXRfdmlkZW8iXSA9ICJFZGl0IFZpZGVvIjsNCgkkbGFuZ1siZmlsdGVyYnlfdmlkZW8iXSA9ICJGaWx0ZXIgYnkgdmlkZW8iOw0KCSRsYW5nWyJ2aWRlb19kZXNjcmlwdGlvbiJdID0gIkRlc2NyaXB0aW9uIjsNCgkkbGFuZ1sidmlkZW9fc2l0ZSJdID0gIlZpZGVvIFNpdGUiOw0KCSRsYW5nWyJ2aWRlb192aWRlb2lkIl0gPSAiSWQgb2YgdGhlIHZpZGVvIjsNCgkkbGFuZ1sidmlkZW9fd2lkdGgiXSA9ICJXaWR0aCBvZiB0aGUgdmlkZW8iOw0KCSRsYW5nWyJ2aWRlb19oZWlnaHQiXSA9ICJIZWlnaHQgb2YgdGhlIHZpZGVvIjsNCgkkbGFuZ1sicHJvbXB0X2RlbGV0ZXZpZGVvIl0gPSAiWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhpcyB2aWRlbyAoJXMpPyBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8iOw0KCSRsYW5nWyJ0ZW1wbGF0ZWhlbHAiXSA9ICc8ZGl2Pg0KCTxoMyBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fZGlzcGxheXRvZ2dsZSh0aGlzKTsiPiZndDsgU21hcnR5IHZhcmlhYmxlcyBmb3IgbGlzdCB0ZW1wbGF0ZSBvZiBjYXRlZ29yeTwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHVsPg0KCQkJPGxpPiRsZXZlbHRpdGxlPC9saT4NCgkJCTxsaT4kcGFyZW50b2JqIChpZiBwYXJlbnQgaXMgc3BlY2lmaWVkKTwvbGk+DQoJCQk8bGk+JGl0ZW1saXN0IChhcnJheSBvZiBpdGVtcyk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc19zZWxlY3RlZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O25iY2hpbGRyZW4gKGlmIGxvYWRlZCk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7YWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXRhaWxsaW5rPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGV0YWlsdXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGVzY3JpcHRpb248L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc2RlZmF1bHQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX21vZGlmaWVkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9jcmVhdGVkPC9saT4NCgkJPC91bD4NCgkJPGJyLz48YnIvPg0KCTwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KCTxoMyBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fZGlzcGxheXRvZ2dsZSh0aGlzKTsiPiZndDsgU21hcnR5IHZhcmlhYmxlcyBmb3IgbGlzdCB0ZW1wbGF0ZSBvZiBhbGJ1bTwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHVsPg0KCQkJPGxpPiRsZXZlbHRpdGxlPC9saT4NCgkJCTxsaT4kcGFyZW50b2JqIChpZiBwYXJlbnQgaXMgc3BlY2lmaWVkKTwvbGk+DQoJCQk8bGk+JGl0ZW1saXN0IChhcnJheSBvZiBpdGVtcyk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc19zZWxlY3RlZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O25iY2hpbGRyZW4gKGlmIGxvYWRlZCk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7YWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXRhaWxsaW5rPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGV0YWlsdXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGVzY3JpcHRpb248L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtsYW5nPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGVmYXVsdF93aWR0aDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RlZmF1bHRfaGVpZ2h0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRsaW5rPC9saT4NCgkJCTxsaT4kdGllbS0mZ3Q7cGFyZW50dXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNkZWZhdWx0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9tb2RpZmllZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfY3JlYXRlZDwvbGk+DQoJCTwvdWw+DQoJCTxici8+PGJyLz4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IFNtYXJ0eSB2YXJpYWJsZXMgZm9yIGxpc3QgdGVtcGxhdGUgb2YgdmlkZW88L2gzPg0KCTxkaXYgY2xhc3M9InRwbHZhcnNfaGlkZSI+DQoJCTx1bD4NCgkJCTxsaT4kbGV2ZWx0aXRsZTwvbGk+DQoJCQk8bGk+JHBhcmVudG9iaiAoaWYgcGFyZW50IGlzIHNwZWNpZmllZCk8L2xpPg0KCQkJPGxpPiRpdGVtbGlzdCAoYXJyYXkgb2YgaXRlbXMpPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNfc2VsZWN0ZWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7YWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXRhaWxsaW5rPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGV0YWlsdXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGVzY3JpcHRpb248L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtzaXRlPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7c2l0ZV9uYW1ldmFsdWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDt2aWRlb2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7d2lkdGg8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtoZWlnaHQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfaWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfYWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfbmFtZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudGxpbms8L2xpPg0KCQkJPGxpPiR0aWVtLSZndDtwYXJlbnR1cmw8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc2RlZmF1bHQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX21vZGlmaWVkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9jcmVhdGVkPC9saT4NCgkJPC91bD4NCgkJPGJyLz48YnIvPg0KCTwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KCTxoMyBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25jbGljaz0iY3RsbW1fZGlzcGxheXRvZ2dsZSh0aGlzKTsiPiZndDsgU21hcnR5IHZhcmlhYmxlcyBmb3IgdGhlIGRldGFpbCB0ZW1wbGF0ZTwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHVsPg0KCQkJPGxpPiRsZXZlbHRpdGxlPC9saT4NCgkJCTxsaT4kcHJldmlvdXNfaXRlbSAoaWYgbG9hZGVkKTwvbGk+DQoJCQk8bGk+JG5leHRfaXRlbSAoaWYgbG9hZGVkKTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDthbGlhczwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2Rlc2NyaXB0aW9uPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7c2l0ZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3NpdGVfbmFtZXZhbHVlPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7dmlkZW9pZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3dpZHRoPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aGVpZ2h0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRsaW5rPC9saT4NCgkJCTxsaT4kdGllbS0mZ3Q7cGFyZW50dXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNkZWZhdWx0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9tb2RpZmllZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfY3JlYXRlZDwvbGk+DQoJCQk8bGk+JGxhYmVscy0+Li4uPC9saT4NCgkJPC91bD4NCgkJPGJyLz4NCgkJPHA+SW4gdGhlIGZpbmFsIGxldmVsIGRldGFpbCB0ZW1wbGF0ZSwgdXNlIHRoZSBvYmplY3QgJGxhYmVscyB0byBwcmludCBsYW5ndWFnZS1zZW5zaWJsZSBmaWVsZCBsYWJlbHMgKCRsYWJlbHMtPmZpZWxkbmFtZSkuPC9wPg0KCQk8cD5Zb3UgbWF5IHJlYWNoIHRoZSBwYXJlbnQgb2JqZWN0cyB1c2luZyAkaXRlbS0+cGFyZW50X29iamVjdC0+cGFyZW50X29iamVjdC0+Li4uIGFuZCBzbyBvbi48L3A+DQoJCTxici8+DQoJPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQoJPGgzIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9kaXNwbGF5dG9nZ2xlKHRoaXMpOyI+Jmd0OyBGaWxlIE9iamVjdDwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHVsPg0KCQkJPGxpPiRmaWxlLSZndDtmaWxlcGF0aCAocmVsYXRpdmUpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7ZXh0PC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7dXJsIChhYnNvbHV0ZSB1cmwpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7c2l6ZSAoc2l6ZSBpbiBieXRlcyk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDtzaXplX3dmb3JtYXQgKGZvcm1hdGVkIHNpemUpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7aW1hZ2VzaXplIChmb3IgaW1hZ2VzIG9ubHkpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7d2lkdGggKGZvciBpbWFnZXMgb25seSk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDtoZWlnaHQgKGZvciBpbWFnZXMgb25seSk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDtpbWFnZSAoaW1hZ2UgdGFnOyBmb3IgaW1hZ2VzIG9ubHkpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7dGh1bWJuYWlsICh0aHVtYm5haWwgdXJsLCBpZiBhcHBsaWNhYmxlKTwvbGk+DQoJCQk8bGk+JGZpbGUtJmd0O2ZpbGVtdGltZSAobGFzdCBtb2RpZmllZCwgdW5peCB0aW1lKTwvbGk+DQoJCQk8bGk+JGZpbGUtJmd0O21vZGlmaWVkIChsYXN0IG1vZGlmaWVkLCBmb3JtYXRlZCB0aW1lKTwvbGk+DQoJCTwvdWw+DQoJCTxici8+PGJyLz4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IEJyZWFkY3J1bWJzPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8cD5XaGVuIHlvdSBhcmUgaW4gYSBtb2R1bGUgdGVtcGxhdGUsIHlvdSBtYXkgY2FsbCB0aGUgYnJlYWRjcnVtYnMgdXNpbmcgdGhlIHtIb3N0ZWRWaWRlb0FsYnVtc19icmVhZGNydW1ic30gdGFnLiANCgkJWW91IG1heSB1c2UgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB0aGUgY21zIGNvcmUgYnJlYWRjcnVtYnMgdGFnIChpbml0aWFsLCBkZWxpbWl0ZXIsIGNsYXNzaWQsIGN1cnJlbnRjbGFzc2lkKSwgDQoJCWFzIHdlbGwgYXMgdGhlICJzdGFydGxldmVsIiBwYXJhbWV0ZXIuPGJyLz4NCgkJT3V0c2lkZSBtb2R1bGUgdGVtcGxhdGVzLCBhbnl3aGVyZSBvbiB0aGUgcGFnZSwgeW91IG1heSBjYWxsIHRoZSBicmVhZGNydW1icyBhY3Rpb24gDQoJCXtjbXNfbW9kdWxlIG1vZHVsZT0iSG9zdGVkVmlkZW9BbGJ1bXMiIGFjdGlvbj0iYnJlYWRjcnVtYnMifSwgb25jZSBhZ2FpbiB1c2luZyB0aGUgc2FtZSBwYXJhbWV0ZXJzLjwvcD4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IFZpZGVvIGVtYmVkZGluZzwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHA+V2hlbiB5b3UgYXJlIGluIGEgbW9kdWxlIHRlbXBsYXRlLCB5b3UgY2FuIGVtYmVkIGEgdmlkZW8gdXNpbmcgdGhlIHtIb3N0ZWRWaWRlb0FsYnVtc19lbWJlZHZpZGVvIGl0ZW09JGl0ZW19IHRhZy4gDQoJCVRoZSAiaXRlbT0kaXRlbSIgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeS4gSW5zaWRlIHRoZSAgdGVtcGxhdGUgYXNzb2NpYXRlZCB0byB0aGlzIHRhZywgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBmaWVsZHM6PGJyLz4NCgkJPHVsPg0KCQkJPGxpPiRsZXZlbHRpdGxlPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7bmFtZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGVzY3JpcHRpb248L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtzaXRlPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7c2l0ZV9uYW1ldmFsdWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDt2aWRlb2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7d2lkdGg8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtoZWlnaHQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtsYW5nPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRsaW5rPC9saT4NCgkJCTxsaT4kdGllbS0mZ3Q7cGFyZW50dXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNkZWZhdWx0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9tb2RpZmllZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfY3JlYXRlZDwvbGk+DQoJCQk8bGk+JGxhYmVscy0+Li4uPC9saT4NCgkJPC91bD4NCjwvZGl2PjwvZGl2Pg0KJzsNCg0KLy8gRm9yIGZpbGUgZmllbGRzDQokbGFuZ1siUmVtb3ZlIl0gPSAiUmVtb3ZlIjsNCiRsYW5nWyJkZWxldGUiXSA9ICJEZWxldGUiOw0KJGxhbmdbImJyb3dzZWZpbGVzdGl0bGUiXSA9ICJVcGxvYWQgYSBuZXcgZmlsZSBvciBzZWxlY3QgYSBmaWxlIGJlbG93LiI7DQokbGFuZ1sic2hvd2luZ2RpciJdID0gIlNob3dpbmcgZGlyZWN0b3J5IjsNCiRsYW5nWyJicm93c2VmaWxlc3Jlc2l6ZSJdID0gIlRoZSBwaWN0dXJlIHdpbGwgYmUgYXV0b21hdGljYWxseSByZXNpemVkIGZvciB0aGUgbW9kdWxlLiI7DQokbGFuZ1siYnJvd3NlZmlsZWN1cnJlbnRwYXRoIl0gPSAiQ3VycmVudGx5IHNlZWluZyBmaWxlcyBpbiA6ICI7DQokbGFuZ1sicGFyZW50ZGlyIl0gPSAiUGFyZW50IERpcmVjdG9yeSI7DQokbGFuZ1siYWRkYWZpbGUiXSA9ICJBZGQgZmlsZShzKSI7DQokbGFuZ1sic3VibWl0dGluZ19maWxlIl0gPSAiUGxlYXNlIHdhaXQgd2hpbGUgdGhlIGZpbGUgaXMgYmVpbmcgdXBsb2FkZWQuLi4iOw0KJGxhbmdbImZpbGVuYW1lIl0gPSAiRmlsZW5hbWUiOw0KJGxhbmdbImltYWdlc2l6ZSJdID0gIkltYWdlIHNpemUiOw0KJGxhbmdbImZpbGVleHQiXSA9ICJFeHQiOw0KJGxhbmdbImZpbGVzaXplIl0gPSAiRmlsZSBzaXplIjsNCiRsYW5nWyJsYXN0bW9kIl0gPSAiTGFzdCBtb2RpZmllZCI7DQokbGFuZ1siZmlsZW93bmVyIl0gPSAiT3duZXIiOw0KJGxhbmdbImZpbGVwZXJtcyJdID0gIlBlcm1pc3Npb25zIjsNCiRsYW5nWyJ2aWV3YWxsaW1hZ2VzIl0gPSAiVmlldyBhbGwgaW1hZ2VzIjsNCiRsYW5nWyJwb3N0bWF4c2l6ZSJdID0gIk5vdGljZTogdGhlIHBvc3QgbWF4IHNpemUgaXMgIjsNCiRsYW5nWyJhZGRmaWxlaW5wdXQiXSA9ICJBZGQgYW5vdGhlciBmaWxlIjsNCiRsYW5nWyJ6aXBmaWxlbm90aWNlIl0gPSAiVGhlIGZpbGVzIHNob3VsZCBiZSBpbiB0aGUgcm9vdCBvZiB0aGUgYXJjaGl2ZS4iOw0KJGxhbmdbInVwbG9hZHppcGZpbGUiXSA9ICJVcGxvYWQgemlwIGFyY2hpdmUiOw0KDQovLyBzdHJpbmdzIGZvciBnZW5lcmFsIGZpZWxkcw0KJGxhbmdbImlkIl0gPSAiaWQiOw0KJGxhbmdbIm5hbWUiXSA9ICJOYW1lIjsNCiRsYW5nWyJhbGlhcyJdID0gIkFsaWFzIjsNCiRsYW5nWyJpc2RlZmF1bHQiXSA9ICJJcyBkZWZhdWx0PyI7DQokbGFuZ1siYWN0aXZlIl0gPSAiQWN0aXZlIjsNCiRsYW5nWyJwYXJlbnQiXSA9ICJQYXJlbnQiOw0KJGxhbmdbInN1Ym1pdCJdID0gIlN1Ym1pdCI7DQokbGFuZ1siY2FuY2VsIl0gPSAiQ2FuY2VsIjsNCiRsYW5nWyJuYmNoaWxkcmVuIl0gPSAiTmIgb2YgaXRlbXMiOw0KJGxhbmdbImRhdGVfbW9kaWZpZWQiXSA9ICJMYXN0IG1vZGlmaWNhdGlvbiI7DQokbGFuZ1siZGF0ZV9jcmVhdGVkIl0gPSAiQ3JlYXRpb24iOw0KCQ0KLy8gR0VORVJBTA0KJGxhbmdbInBhZ2VzIl0gPSAiUGFnZXM6ICI7DQokbGFuZ1sibmV4dHBhZ2UiXSA9ICJOZXh0IHBhZ2UiOw0KJGxhbmdbInByZXZpb3VzcGFnZSJdID0gIlByZXZpb3VzIHBhZ2UiOw0KJGxhbmdbImFjdGl2YXRlIl0gPSAiQWN0aXZhdGUiOw0KJGxhbmdbInVuYWN0aXZhdGUiXSA9ICJUdXJuIG9mZiI7DQokbGFuZ1sic2VhcmNodGhpc3RhYmxlIl0gPSAiU2VhcmNoIHRoaXMgdGFibGUgZm9yOiI7DQokbGFuZ1sicmVzZXRvcmRlciJdID0gIlJlc2V0IG9yZGVyIjsNCiRsYW5nWyJZZXMiXSA9ICJZZXMiOw0KJGxhbmdbIk5vIl0gPSAiTm8iOw0KJGxhbmdbIkFjdGlvbnMiXSA9ICJBY3Rpb25zIjsNCiRsYW5nWyJyZW9yZGVyIl0gPSAiUmVvcmRlciI7DQokbGFuZ1sibGlzdHRlbXBsYXRlIl0gPSAiTGlzdCB0ZW1wbGF0ZSBmb3IiOw0KJGxhbmdbInRlbXBsYXRlcyJdID0gIlRlbXBsYXRlcyI7DQokbGFuZ1sidGVtcGxhdGUiXSA9ICJUZW1wbGF0ZSI7DQokbGFuZ1siZGVmYXVsdHRlbXBsYXRlcyJdID0gIkRlZmF1bHQgdGVtcGxhdGVzIjsNCiRsYW5nWyJ0ZW1wbGF0ZXZhcnMiXSA9ICJUZW1wbGF0ZSB2YXJpYWJsZXMiOw0KJGxhbmdbImVkaXR0ZW1wbGF0ZSJdID0gIkVkaXQgdGVtcGxhdGUiOw0KJGxhbmdbImRlZnRlbXBsYXRlZm9yIl0gPSAiRGVmYXVsdCBsaXN0IHRlbXBsYXRlIGZvciBsZXZlbCAiOw0KJGxhbmdbImRlZmRldGFpbHRlbXBsYXRlIl0gPSAiRGVmYXVsdCBkZXRhaWwgdGVtcGxhdGUiOw0KJGxhbmdbImRlZnNlYXJjaHJlc3VsdHN0ZW1wbGF0ZSJdID0gIkRlZmF1bHQgdGVtcGxhdGUgZm9yIHNlYXJjaCByZXN1bHRzIjsNCiRsYW5nWyJkZWZlbXB0eXRlbXBsYXRlIl0gPSAiVGVtcGxhdGUgZm9yIGVtcHR5IHJlc3VsdCBzZXRzIjsNCiRsYW5nWyJ1c2VsZXZlbGxpc3R0cGwiXSA9ICJVc2UgdGhlIGxpc3QgdGVtcGxhdGUgb2YgdGhlIGFwcHJvcHJpYXRlIGxldmVsIjsNCiRsYW5nWyJhZGR0ZW1wbGF0ZSJdID0gIkFkZCB0ZW1wbGF0ZSI7DQokbGFuZ1siZmlsdGVyYnkiXSA9ICJGaWx0ZXIgYnkiOw0KJGxhbmdbInNob3dpbmdvbmx5Il0gPSAiRmlsdGVyOiAiOw0KJGxhbmdbInNob3dhbGwiXSA9ICJTaG93IGFsbCAobm8gZmlsdGVyKSI7DQokbGFuZ1siZmllbGRvcHRpb25zIl0gPSAiRmllbGQgb3B0aW9ucyI7DQokbGFuZ1siYWRkb3B0aW9uIl0gPSAiQWRkIGFuIG9wdGlvbiI7DQokbGFuZ1sibW9kaWZ5YW5vcHRpb24iXSA9ICJNb2RpZnkgYW4gb3B0aW9uIjsNCiRsYW5nWyJtZXNzYWdlX2RlbGV0ZWQiXSA9ICJFbGVtZW50IGRlbGV0ZWQiOw0KJGxhbmdbIm1lc3NhZ2VfbW9kaWZpZWQiXSA9ICJNb2RpZmljYXRpb24gc2F2ZWQiOw0KJGxhbmdbIndhcm5pbmdfdGFiIl0gPSAiTm90aWNlOiBTYXZlIGNoYW5nZXMgaW4gb3RoZXIgdGFicyBiZWZvcmUgd29ya2luZyBpbiB0aGlzIG9uZS4uLiI7DQokbGFuZ1siZXJyb3JfbWlzc2dpbnZhbHVlIl0gPSAiT25lIG9yIG1vcmUgbmVjZXNzYXJ5IHZhbHVlcyBoYXZlIG5vdCBiZWVuIGVudGVyZWQuIjsNCiRsYW5nWyJlcnJvcl9hbHJlYWR5ZXhpc3RzIl0gPSAiVGhlcmUgaXMgYWxyZWFkeSBhbiBlbGVtZW50IGJlYXJpbmcgdGhhdCBuYW1lLiI7DQokbGFuZ1siZXJyb3JfZGF0ZSJdID0gIlRoZSBkYXRlIHlvdSBoYXZlIGVudGVyZWQgaXMgaW52YWxpZC4iOw0KJGxhbmdbImVycm9yX25vcGFyZW50Il0gPSAiTm8gcGFyZW50IGlzIGRlZmluZWQhIjsNCiRsYW5nWyJlcnJvcl9ub3Rmb3VuZCJdID0gIlRoZSBpdGVtIGNvdWxkIG5vdCBiZSBmb3VuZC4iOw0KJGxhbmdbImVycm9yX25vaXRlbWZvdW5kIl0gPSAiTm8gaXRlbSBmb3VuZC4iOw0KJGxhbmdbImVycm9yX2RlbmllZCJdID0gIlBlcm1pc3Npb24gZGVuaWVkIjsNCiRsYW5nWyJlcnJvcl93cm9uZ3F1ZXJ5Il0gPSAiSW52YWxpZCBxdWVyeS4iOw0KJGxhbmdbImVycm9yX2ZlYWRkZGVuaWVkIl0gPSAiWW91IGRvIG5vdCBoYXZlIHN1ZmZpY2llbnQgYWNjZXNzIHRvIGNvbnRpbnVlLiI7DQokbGFuZ1siZXJyb3Jfd3JvbmdmaWxldHlwZSJdID0gIlRoaXMgdHlwZSBvZiBmaWxlIGlzIG5vdCBhbGxvd2VkIGhlcmUuIjsNCiRsYW5nWyJlcnJvcl9jYXB0Y2hhIl0gPSAiVGhlIHRleHQgZ2l2ZW4gZG9lcyBub3QgbWF0Y2ggdGhlIGNhcHRjaGEgaW1hZ2UuIjsNCiRsYW5nWyJlcnJvcl9maWxldG9vYmlnIl0gPSAiVGhlIGZpbGUgaXMgdG8gYmlnIHRvIGJlIHVwbG9hZGVkIGhlcmUuIjsNCiRsYW5nWyJnaXZlbmVycm9yIl0gPSAiRXJyb3I6ICI7DQokbGFuZ1siZmluYWx0ZW1wbGF0ZSJdID0gIkRpc3BsYXkgdGVtcGxhdGUgdmlkZW9zIjsNCiRsYW5nWyJlbWJlZHRlbXBsYXRlIl0gPSAiVGVtcGxhdGUgZm9yIHtIb3N0ZWRWaWRlb0FsYnVtc19lbWJlZHZpZGVvfSI7DQokbGFuZ1sicHJvbXB0X2RlbGV0ZW9wdGlvbiJdID0gIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBvcHRpb24/IjsNCiRsYW5nWyJwcm9tcHRfZ2VuZXJhbGRlbGV0ZSJdID0gIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcz8iOw0KJGxhbmdbInByb21wdF9jYXB0Y2hhIl0gPSAiRW50ZXIgdGhlIHRleHQgZnJvbSB0aGUgaW1hZ2UuIjsNCiRsYW5nWyJxdWVyaWVzIl0gPSAiUXVlcmllcyI7DQokbGFuZ1sicXVlcnkiXSA9ICJRdWVyeSI7DQokbGFuZ1sicmVzdWx0cyJdID0gIlJlc3VsdHMiOw0KJGxhbmdbImNyZWF0ZXF1ZXJ5Il0gPSAiQ3JlYXRlIGEgbmV3IHF1ZXJ5IjsNCiRsYW5nWyJwcm9tcHRfcXVlcnkiXSA9ICJDcmVhdGUgYSBxdWVyeSBmb3Igd2hpY2ggbGV2ZWw/IjsNCiRsYW5nWyJvcmRlcmJ5ZmllbGQiXSA9ICJPcmRlciBieSI7DQokbGFuZ1siZGF0ZV9tb2RpZmllZCJdID0gIkRhdGUgbW9kaWZpZWQiOw0KJGxhbmdbImZyb250ZW5kX3N1Ym1pdCJdID0gIlN1Ym1pdCI7DQoNCg0KLy8gQlJFQURDUlVNQlMgOg0KJGxhbmdbInlvdWFyZWhlcmUiXSA9ICJZb3UgYXJlIGhlcmU6ICI7DQokbGFuZ1siYnJlYWRjcnVtYnNfZGVsaW1pdGVyIl0gPSAiICZndDsgIjsNCg0KLy8gU0VBUkNIIDoNCiRsYW5nWyJzZWFyY2h0aXRsZSJdID0gIlNlYXJjaCI7DQokbGFuZ1sic2VhcmNoYWdhaW4iXSA9ICJEbyBhbm90aGVyIHNlYXJjaCI7DQokbGFuZ1sic2VhcmNoYnRuIl0gPSAiU2VhcmNoISI7DQokbGFuZ1siY29udGFpbnMiXSA9ICJDb250YWlucyI7DQokbGFuZ1siaXNleGFjdGx5Il0gPSAiSXMgZXhhY3RseSI7DQokbGFuZ1siaXNub3QiXSA9ICJJcyBub3QiOw0KJGxhbmdbImlzaGlnaGVydGhhbiJdID0gIklzIGhpZ2hlciB0aGFuIjsNCiRsYW5nWyJpc2xvd2VydGhhbiJdID0gIklzIGxvd2VyIHRoYW4iOw0KJGxhbmdbImlzYWZ0ZXIiXSA9ICJJcyBhZnRlciI7DQokbGFuZ1siaXNiZWZvcmUiXSA9ICJJcyBiZWZvcmUiOw0KJGxhbmdbImlzYmV0d2VlbiJdID0gIklzIGJldHdlZW4iOw0KJGxhbmdbInRoaXNhbmR0aGlzIl0gPSAiYW5kIjsNCiRsYW5nWyJxdWVyeXVzZSJdID0gIk5vdCB1c2VkIjsNCiRsYW5nWyJxdWVyeW5hbWUiXSA9ICJRdWVyeSBuYW1lIjsNCg0KLy8gSU1QT1JUIC8gRVhQT1JUDQokbGFuZ1siZXhwb3J0X3RpdGxlIl0gPSAiRXhwb3J0IGl0ZW1zIHRvIHhtbCI7DQokbGFuZ1siZXhwb3J0d2hpY2hsZXZlbHMiXSA9ICJXaGljaCB0YWJsZXMgc2hvdWxkIGJlIGV4cG9ydGVkPyI7DQokbGFuZ1siZXhwb3J0X3RlbXBsYXRlcyJdID0gIkV4cG9ydCB0ZW1wbGF0ZXMgdG9vPyI7DQokbGFuZ1siaW1wb3J0X3RpdGxlIl0gPSAiSW1wb3J0IGZyb20geG1sIGZpbGUiOw0KJGxhbmdbImltcG9ydF9maWxlcHJvbXB0Il0gPSAiU2VsZWN0IHhtbCBmaWxlIGZyb20gd2hpY2ggdG8gaW1wb3J0LiI7DQokbGFuZ1siaW1wb3J0X2RvbmUiXSA9ICJJbXBvcnQgZG9uZS4gJXMgcmVjb3JkcyB3aGVyZSBpbXBvcnRlZC4iOw0KJGxhbmdbImltcG9ydF9lbnRyaWVzIl0gPSAiVGhlIGZpbGUgY29udGFpbnMgJXMgcmVjb3Jkcy4iOw0KJGxhbmdbImltcG9ydF9kZWxldGUiXSA9ICJEZWxldGUgdGFibGUgY29udGVudCBiZWZvcmUgaW1wb3J0aW5nPyI7DQokbGFuZ1siaW1wb3J0d2hpY2hsZXZlbHMiXSA9ICJXaGljaCB0YWJsZXMgc2hvdWxkIGJlIGltcG9ydGVkPyI7DQokbGFuZ1siaW1wb3J0X3RlbXBsYXRlcyJdID0gIkltcG9ydCB0ZW1wbGF0ZXMgdG9vPyI7DQokbGFuZ1siY291bGRub3RpbXBvcnQiXSA9ICJUaGVyZSB3YXMgYW4gZXJyb3IgaW1wb3J0aW5nIHJlY29yZHMgZm9yOiAiOw0KJGxhbmdbImVycm9yX2ludmFsaWR4bWwiXSA9ICJUaGUgZmlsZSB5b3UgcHJvdmlkZWQgaXMgbm90IGEgdmFsaWQgeG1sIGV4cG9ydCBmb3IgdGhpcyBtb2R1bGUuIjsNCg0KLy8gTU9EVUxFIElOVEVSQUNUSU9ODQokbGFuZ1sicG9zdGluc3RhbGwiXSA9ICJNb2R1bGUgc3VjY2Vzc2Z1bGx5IGFkZGVkLjxici8+SWYgdGhpcyBtb2R1bGUgaGFzIGFueSBmaWxlIGZpZWxkcywgcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHRoZSBhcHByb3ByaWF0ZSBkaXJlY3RvcmllcyBleGlzdCBpbiB0aGUgdXBsb2FkcyBmb2xkZXIuIERvbid0IGZvcmdldCB0byBnaXZlIHlvdXIgdXNlcnMgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoaXMgbW9kdWxlISI7DQokbGFuZ1sicG9zdHVuaW5zdGFsbCJdID0gIk1vZHVsZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4iOw0KJGxhbmdbInJlYWxseV91bmluc3RhbGwiXSA9ICJBbGwgb2YgdGhpcyBtb2R1bGUncyBjb250ZW50IHdpbGwgYmUgbG9zdC4gQ29udGludWU/IjsNCiRsYW5nWyJ1bmluc3RhbGxlZCJdID0gIk1vZHVsZSBVbmluc3RhbGxlZC4iOw0KJGxhbmdbImluc3RhbGxlZCJdID0gIk1vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4iOw0KJGxhbmdbImhlbHAiXSA9ICI8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCgk8cD5UaGlzIG1vZHVsZSBtYW5hZ2VzIGFuZCBkaXNwbGF5cyBjYXRhbG9ndWVzIG9mIHZpZGVvIGFsYnVtcyAuPC9wPg0KCTxici8+DQoJPGgzPkhvdyBEbyBJIFVzZSBJdD88L2gzPg0KCTxici8+DQoJPGg0PlBlcm1pc3Npb25zPC9oND4NCgk8cD5NYWtlIHN1cmUgeW91ciB1c2VycyBoYXZlIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy4gSWYgeW91IGFyZSBub3QgdXNpbmcgdGhlIGFjY2VzcyByZXN0cmljdGlvbiBvcHRpb24gKHNlZSBzZXR0aW5ncyksIHRoZSBcIkhvc3RlZFZpZGVvQWxidW1zOiBOb3JtYWwgdXNlclwiIHBlcm1pc3Npb24gd2lsbCBiZSBlbm91Z2ggdG8gdXNlIHRoZSBtb2R1bGUuIEluIHRoZSBzZXR0aW5ncyB0YWIsIHlvdSBjYW4gY2hvb3NlIHdoaWNoIHRhYnMgd2lsbCBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBub3JtYWwgdXNlci4gT25seSB0aGUgYWRtaW5pc3RyYXRvciBhbmQgdXNlcnMgd2l0aCB0aGUgXCJIb3N0ZWRWaWRlb0FsYnVtczogQWR2YW5jZWRcIiBwZXJtaXNzaW9uIHdpbGwgaGF2ZSBhY2Nlc3MgdG8gc2V0dGluZ3MgdGFiLjxici8+DQoJCQkJCUlmIHlvdSB3aXNoIHRvIGRlZmluZSBsZXZlbC1zcGVjaWZpYyBwZXJtaXNzaW9ucywgYWN0aXZhdGUgdGhlIGFjY2VzcyByZXN0cmljdGlvbiBvcHRpb24gaW4gdGhlIHNldHRpbmdzIHRhYiBhbmQgZ2l2ZSB0aGUgXCJIb3N0ZWRWaWRlb0FsYnVtczogTWFuYWdlIG5hbWVfb2ZfbGV2ZWxcIiBwZXJtaXNzaW9uIHRvIHRoZSBhcHByb3ByaWF0ZSB1c2Vycy48L3A+DQoJCQkJPGJyLz48aDQ+QmFzaWNzPC9oND4NCgkJCQkJPHA+VG8gY2FsbCB0aGUgbW9kdWxlLCBzaW1wbHkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjxici8+DQoJCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCJ9PC9wPg0KCQkJCQk8cD5JbiB0aGlzIGNhc2UgdGhlIGxpc3Qgb2YgdGhlIGxhc3QgbGV2ZWwgZWxlbWVudHMgKHZpZGVvKSB3aWxsIGJlIGRpc3BsYXllZC4gVG8gc2VsZWN0IGEgbGV2ZWwsIHVzZSB0aGUgXCJ3aGF0XCIgcGFyYW1ldGVyOjxici8+DQoJCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgd2hhdD1cInZpZGVvXCJ9PGJyLz4NCgkJCQkJPGk+VGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIFwid2hhdFwiIHBhcmFtZXRlciBhcmUgOiBjYXRlZ29yeSwgYWxidW0sIHZpZGVvPC9pPjwvcD4NCgkJCQkJPHA+WW91IG1heSBhbHNvIGFzayBmb3IgZWxlbWVudHMgd2hvIGJlbG9uZyB0byBhIHNwZWNpZmljIHBhcmVudDo8YnIvPg0KCQkJCQl7Y21zX21vZHVsZSBtb2R1bGU9XCJIb3N0ZWRWaWRlb0FsYnVtc1wiIHBhcmVudD1cImFsaWFzX29mX3BhcmVudFwifTwvcD4NCgkJCQkJPHA+WW91IG1heSBmaW5hbGx5IGFzayBmb3IgYSBzcGVjaWZpYyBlbGVtZW50Ojxicj4NCgkJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBhbGlhcz1cImFsaWFzX29mX2l0ZW1cIn08L3A+DQoJCQkJPGJyLz48aDQ+U2VwYXJhdGluZyBpbnRvIHBhZ2VzPC9oND4NCgkJCQkJPHA+WW91IG1heSBsaW1pdCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHNob3duIG9uIG9uZSBwYWdlOjxici8+DQoJCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgbmJwZXJwYWdlPVwiNVwifTxici8+DQoJCQkJCUluIHRoZSB0ZW1wbGF0ZSwgeW91IGNhbiBidWlsZCB0aGUgcGFnZSBtZW51IHVzaW5nIHRoZSBmb2xsb3dpbmcgdGFnczo8YnIvPg0KCQkJCQl7Ii4nJCcuInBhZ2Vfc2hvd2luZ30sIHsiLickJy4icGFnZV90b3RhbGl0ZW1zfSwgeyIuJyQnLiJwYWdlX3BhZ2VudW1iZXJzfSwgeyIuJyQnLiJwYWdlX25leHR9LCB7Ii4nJCcuInBhZ2VfcHJldmlvdXN9PC9wPg0KCQkJCTxici8+PGg0PlVzaW5nIHF1ZXJpZXM8L2g0Pg0KCQkJCQk8cD5UbyBnZXQgYSBsaXN0IG9mIGl0ZW0gdGhhdCBtZWV0IHNwZWNpZmljIGNyaXRlcmlhLCB5b3UgY2FuIGNyZWF0ZSBhIHF1ZXJ5IHVzaW5nIHRoZSBxdWVyaWVzIHRhYiBvZiB0aGUgYWRtaW4gcGFuZWwsIGFuZCBjYWxsIHRoZW0gdXNpbmcgdGhlIFwicXVlcnlcIiBwYXJhbWV0ZXI6PGJyLz4NCgkJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBxdWVyeT1cIjVcIn08L3A+DQoJCQkJCTxwPjxpPklmIHRoZSBvcHRpb24gdG8gYWxsb3cgbWFudWVsIHNxbCBxdWVyaWVzIGlzIGVuYWJsZWQ8L2k+IChzZWUgXCJTZXR0aW5nc1wiIHRhYiksIHlvdSBtYXkgYWxzbyBwcm92aWRlIHRoZSBzcWwgcXVlcnkgZGlyZWN0bHkgd2l0aCB0aGUgcXVlcnkgcGFyYW1ldGVyLiBGb3IgZXhhbXBsZTo8YnIvPg0KCQkJCQl7Y21zX21vZHVsZSBtb2R1bGU9XCJIb3N0ZWRWaWRlb0FsYnVtc1wiIHdoYXQ9XCJ2aWRlb1wiIHF1ZXJ5PVwiQS5kYXRlX21vZGlmaWVkID4gJzIwMDktMDMtMTUnIEFORCBBLmFjdGl2ZSA9IDFcIn08YnIvPg0KCQkJCQlUaGUgcXVlcnkgcGFyYW1ldGVyIGNhbiBvbmx5IGhvbGQgdGhlIFdIRVJFIGNsYXVzZSBvZiB0aGUgcXVlcnksIGFuZCBzaG91bGQgbm90IGluY2x1ZGUgdGhlIFdIRVJFIGNvbW1hbmQgaXRzZWxmLiBUbyBhdm9pZCBwcm9ibGVtcywgdGhlIHByZWZpeCBcIkEuXCIgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGZpZWxkIG5hbWVzICh3aGVyZSBhcHBsaWNhYmxlLCB0aGUgXCJCLlwiIHByZWZpeCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGNyaXRlcmlhIG9uIHRoZSBwYXJlbnQncyBmaWVsZHMpLjxici8+DQoJCQkJCUFsdGhvdWdoIHRoZSBhYnN0cmFjdGlvbiBsYXllciBpcyBub3QgZWFzaWx5IHByb25lIHRvIGluamVjdGlvbnMsIHJlbWVtYmVyIHRoYXQgYWN0aXZhdGluZyB0aGlzIG9wdGlvbiBtZWFucyBnaXZpbmcgYSBzcWwgb3BlbmluZyB3aXRoaW4gdGhlIHRlbXBsYXRlcyBhbmQgYmUgY2FyZWZ1bC48L3A+DQoJCQkJPGJyLz48aDI+dGhlIGVtYmVkdmlkZW8gYWN0aW9uPC9oMj4NCgkJCQk8cD5UbyBlbWJlZCBhIHZpZGVvIGluc2lkZSBhbiBIVkEgdGVtcGxhdGUsIHlvdSBjYW4gdXNlIHRoZSA8Yj5cImVtYmVkdmlkZW9cIjwvYj4gYWN0aW9uOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBhY3Rpb249XCJlbWJlZHZpZGVvXCIgaXRlbT0kaXRlbX08YnIvPg0KCQkJCVRoZSBcIml0ZW09JGl0ZW1cIiBwYXJhbWV0ZXIgaXMgbWFuZGF0b3J5Ljxici8+DQoJCQkJPGJyLz48aDQ+VGhlIGxpbmsgYWN0aW9uPC9oND4NCgkJCQkJPHA+WW91IG1heSB1c2UgdGhlIGFjdGlvbiA8Yj5cImxpbmtcIjwvYj4gdG8gY3JlYXRlIGEgbGluayB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHVzaW5nIHRoZSBzYW1lIHBhcmFtZXRlcnM6PGJyLz4NCgkJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBhY3Rpb249XCJsaW5rXCIgd2hhdD1cInZpZGVvXCIgcmFuZG9tPVwiMVwifTxici8+DQoJCQkJCXdvdWxkIGNyZWF0ZSBhIGxpbmsgdG8gYSByYW5kb20gZWxlbWVudCBvZiB0aGlzIGxldmVsLjwvcD4NCgkJCQk8YnIvPjxoND5UaGUgc2l0ZW1hcCBhY3Rpb248L2g0Pg0KCQkJCQk8cD5JZiB5b3VyIG1vZHVsZSBpcyBub3Qgc2hhcmluZyBjaGlsZHJlbiwgeW91IG1heSB1c2UgdGhlIGFjdGlvbiA8Yj5cInNpdGVtYXBcIjwvYj4gdG8gY3JlYXRlIGEgbW9kdWxlIHNpdGVtYXA6PGJyLz4NCgkJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBhY3Rpb249XCJzaXRlbWFwXCJ9PGJyLz4NCgkJCQkJWW91IGNhbiBzZWxlY3QgdGhlIGxldmVscyB1c2luZyB0aGUgXCJ3aGF0XCIgcGFyYW1ldGVyLCBhbmQgbWF5IHNlbGVjdCBtb3JlIHRoYW4gb25lIHVzaW5nIFwifFwiIDogd2hhdD1cImxldmVsMXxsZXZlbDJcIi48YnIvPg0KCQkJCQlPdGhlciBhdmFpbGFibGUgcGFyYW1ldGVycyBmb3IgdGhpcyBhY3Rpb24gYXJlIFwiZGV0YWlscGFnZVwiIGFuZCBcImlubGluZVwiLjxici8+DQoJCQkJCVRvIGNyZWF0ZSBhIGdvb2dsZSBzaXRlbWFwLCBzZWUgdGhlIDxhIGhyZWY9XCIuLi9tb2R1bGVzL0hvc3RlZFZpZGVvQWxidW1zL2RvYy9mYXEuaHRtbCNxMTZcIiB0YXJnZXQ9XCJfYmxhbmtcIj5GQVE8L2E+LjwvcD4NCgkJCQk8YnIvPjxoND5UaGUgc2VhcmNoIGFjdGlvbjwvaDQ+DQoJCQkJCTxwPllvdSBtYXkgdXNlIHRoZSBhY3Rpb24gPGI+XCJzZWFyY2hcIjwvYj4gdG8gZGlzcGxheSBhIHNlYXJjaCBmb3JtOjxici8+DQoJCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgYWN0aW9uPVwic2VhcmNoXCJ9PGJyLz4NCgkJCQkJVXNlIHRoZSBcInNlYXJjaG1vZGVcIiBwYXJhbWV0ZXIgdG8gc3dpdGNoIGJldHdlZW4gYWR2YW5jZWQgKGRlZmF1bHQpIGFuZCBzaW1wbGUgbW9kZS4gWW91IG1heSBzcGVjaWZ5IHRoZSBsZXZlbCBpbiB3aGljaCB0byBzZWFyY2ggdXNpbmcgdGhlIFwid2hhdFwiIHBhcmFtZXRlci4gWW91IGNhbm5vdCB1c2UgdGhlIGFkdmFuY2VkIHNlYXJjaCBtb2RlIGluIGFsbCBsZXZlbHMgYXQgdGhlIHNhbWUgdGltZS48YnIvPg0KCQkJCQlUaGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgY2FuIGJlIHVzZWQgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbjogd2hhdCwgbGltaXQsIG5icGVycGFnZSwgb3JkZXJieSwgZGV0YWlscGFnZSwgbGlzdHRlbXBsYXRlLCBpbmxpbmUsIHNlYXJjaG1vZGUuPGJyLz4NCgkJCQkJU2VlIEhvc3RlZFZpZGVvQWxidW1zL3RlbXBsYXRlcy9zZWFyY2gudHBsIHRvIG1vZGlmeSB0aGUgc2VhcmNoIGZvcm0uPC9wPjxici8+DQoJCQkJPHA+Rm9yIG1vcmUgaGVscCwgeW91IG1heSB0YWtlIGEgbG9vayBhdCB0aGUgPGEgaHJlZj1cIi4uL21vZHVsZXMvSG9zdGVkVmlkZW9BbGJ1bXMvZG9jL2ZhcS5odG1sXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RkFRPC9hPi48L3A+DQoJCQk8YnIvPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KCQkJCTxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIG9yaWdpbmFsbHkgY3JlYXRlZCB3aXRoIENUTE1vZHVsZU1ha2VyIGFuZCBtb2RpZmllZCBhZnRlciwgYW5kIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuPC9wPjxici8+PGJyLz4iOw0KDQovL0VWRU5UUw0KJGxhbmdbImV2ZW50ZGVzY19tb2RpZmllZCJdID0gIkNhbGxlZCBhZnRlciBhbiBlbGVtZW50IGhhcyBiZWVuIG1vZGlmaWVkLiBQYXJhbXM6IFwid2hhdFwiPT5sZXZlbCBvZiB0aGUgZWxlbWVudCwgXCJpdGVtaWRcIj0+aWQgb2YgdGhlIGVsZW1lbnQsIFwiYWxpYXNcIj0+YWxpYXMgb2YgdGhlIGVsZW1lbnQuIjsNCiRsYW5nWyJldmVudGRlc2NfZGVsZXRlZCJdID0gIkNhbGxlZCBhZnRlciBhbiBlbGVtZW50IGhhcyBiZWVuIGRlbGV0ZWQuIFBhcmFtczogXCJ3aGF0XCI9PmxldmVsIG9mIHRoZSBlbGVtZW50LiI7DQokbGFuZ1siZXZlbnRkZXNjX2FkZGVkIl0gPSAiQ2FsbGVkIGFmdGVyIGFuIGVsZW1lbnQgaGFzIGJlZW4gYWRkZWQuIFBhcmFtczogXCJ3aGF0XCI9PmxldmVsIG9mIHRoZSBlbGVtZW50LCBcIml0ZW1pZFwiPT5pZCBvZiB0aGUgZWxlbWVudCwgXCJhbGlhc1wiPT5hbGlhcyBvZiB0aGUgZWxlbWVudC4iOw0KDQovL1BSRUZFUkVOQ0VTDQokbGFuZ1sicHJlZmVyZW5jZXMiXSA9ICJTZXR0aW5ncyI7DQokbGFuZ1sicHJlZl90YWJkaXNwbGF5Il0gPSAiQWRtaW4gdGFicyBzaG93biB0byB0aGUgbm9ybWFsIHVzZXIiOw0KJGxhbmdbImhlbHBfdGFiZGlzcGxheSJdID0gIihOb3JtYWwgdXNlcnMgYXJlIHRob3NlIHdobyBoYXZlIGJlZW4gZ2l2ZW4gdGhlIFwiSG9zdGVkVmlkZW9BbGJ1bXM6IG5vcm1hbCB1c2VyXCIgcGVybWlzc2lvbi4gVGhlIGxldmVsLXNwZWNpZmljIG1hbmFnZSBwZXJtaXNzaW9ucyBvdmVycmlkZSB0aGUgdmlzaWJsZSB0YWJzIHNlbGVjdGVkIGhlcmUuKSI7DQokbGFuZ1sicHJlZl9zZWFyY2htb2R1bGVfaW5kZXgiXSA9ICJJbmRleCB0aGUgZm9sbG93aW5nIGxldmVscyBmb3IgdGhlIHNlYXJjaCBtb2R1bGUiOw0KJGxhbmdbImhlbHBfc2VhcmNobW9kdWxlX2luZGV4Il0gPSAiKFRoaXMgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIG1vZHVsZSBvd24gaW50ZXJuYWwgc2VhcmNoIGFjdGlvbi4gQWxzbyBub3RlIHRoYXQgYWZ0ZXIgY2hhbmdpbmcgdGhlc2Ugc2V0dGluZ3MgeW91IG1pZ2h0IGhhdmUgdG8gcmVpbmRleCB0byBnZXQgb2YgcHJldmlvdXNseSBpbmRleGVkIGRhdGEsIHdoaWNoIHlvdSBtYXkgZG8gaW4gRXh0ZW5zaW9uLSZndDtTZWFyY2guKSI7DQokbGFuZ1sicHJlZl9uZXdpdGVtc2ZpcnN0Il0gPSAiTmV3IGl0ZW1zIHNob3VsZCBhcHBlYXIgb24gdG9wIGZvciB0aGUgZm9sbG93aW5nIGxldmVscyI7DQokbGFuZ1siaGVscF9uZXdpdGVtc2ZpcnN0Il0gPSAiKE9idmlvdXNseSwgaWYgdGhlIGxldmVsIGlzIG5vdCBjaGVja2VkIGhlcmUsIG5ldyBpdGVtcyB3aWxsIGFwcGVhciBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0KSI7DQokbGFuZ1sicHJlZl9yZXN0cmljdF9wZXJtaXNzaW9ucyJdID0gIlNob3VsZCB3ZSA8Yj5yZXN0cmljdDwvYj4gdGhlIG1hbmFnZW1lbnQgb2YgaXRlbXMgdG8gdGhlIHVzZXJzIHdobyBoYXZlIHNwZWNpZmljIG1hbmFnZW1lbnQgcGVybWlzc2lvbnMgZm9yIHRoZSBsZXZlbD8gKGlmIHlvdSBkbyBub3Qgd2lzaCB0byBzcGVjaWZ5IGRpZmZlcmVudCBwZXJtaXNzaW9ucyBmb3IgZGlmZmVyZW50IGxldmVscywgeW91IGNhbiB1bmNoZWNrIHRoaXMgYW5kIHNpbXBseSB1c2UgdGhlIFwiSG9zdGVkVmlkZW9BbGJ1bXM6IG5vcm1hbCB1c2VyXCIgcGVybWlzc2lvbi4pIjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfZmlsdGVyIl0gPSAiRGlzcGxheSA8Yj5maWx0ZXI8L2I+IG9uIHRoZSBtb2R1bGUgYWRtaW4gcGFuZWw/IjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfaW5zdGFudHNlYXJjaCJdID0gIkRpc3BsYXkgPGI+aW5zdGFudCBzZWFyY2g8L2I+IG9uIHRoZSBtb2R1bGUgYWRtaW4gcGFuZWw/IjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfaW5zdGFudHNvcnQiXSA9ICJEaXNwbGF5IDxiPmluc3RhbnQgc29ydDwvYj4gYnkgY29sdW1uIGxpbmtzPyI7DQokbGFuZ1sicHJlZl9lZGl0YWJsZV9hbGlhc2VzIl0gPSAiU2hvdWxkIHRoZSA8Yj5hbGlhczwvYj4gb2YgaXRlbXMgYmUgbWFudWFsbHkgZWRpdGFibGU/IjsNCiRsYW5nWyJwcmVmX2ZvcmNlX2xpc3QiXSA9ICJTaG91bGQgdGhlIDxiPmZvcmNlbGlzdDwvYj4gcGFyYW1ldGVyIGJlIGVuYWJsZWQgYnkgZGVmYXVsdD8gKGxpc3QgdmlldyB3aWxsIGJlIHNob3duIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBpdGVtKSI7DQokbGFuZ1sicHJlZl9kZWxldGVfZmlsZXMiXSA9ICJXaGVuIGFuIGl0ZW0gaXMgPGI+ZGVsZXRlZDwvYj4sIHNob3VsZCB0aGUgYXNzb2NpYXRlZCBmaWxlcyBiZSBhbHNvIGRlbGV0ZWQ/IChwcm92aWRlZCB0aGUgaXRlbSBoYXMgYW55IGZpbGUgZmllbGRzLi4uKSI7DQokbGFuZ1sicHJlZl9hbGxvd19zcWwiXSA9ICJBbGxvdyBtYW51YWwgU1FMIHF1ZXJpZXM/ICh3aXRoIHRoZSBcInF1ZXJ5XCIgcGFyYW1ldGVyKSI7DQokbGFuZ1sicHJlZl91c2VfaGllcmFyY2h5Il0gPSAiRGlzcGxheSBmdWxsIGhpZXJhcmNoeSBpbiBmaWx0ZXIgYW5kIHBhcmVudCBkcm9wZG93bj8gKGFkbWluIHBhbmVsKSI7DQokbGFuZ1sicHJlZl9vcmRlcmJ5bmFtZSJdID0gIk9yZGVyIHBhcmVudCBkcm9wZG93bnMgYnkgbmFtZT8iOw0KJGxhbmdbInByZWZfc2hvd3RodW1ibmFpbHMiXSA9ICJEaXNwbGF5IGFsbCB0aHVtYm5haWxzIGluc3RlYWQgb2YgYSB0YWJsZSB3aGVuIHNlbGVjdGVkIGltYWdlIGZpbGVzPyI7DQokbGFuZ1sicHJlZl9tYXhzaG93bnBhZ2VzIl0gPSAiTWF4IG51bWJlciBvZiBwYWdlcyBkaXNwbGF5ZWQgaW4gdGhlIHBhZ2UgbWVudTogIjsNCiRsYW5nWyJwcmVmX2F1dG9pbmNyZW1lbnRfYWxpYXMiXSA9ICJBdXRvLWluY3JlbWVudCBhbGlhc2VzIGluIGNhc2Ugb2YgaWRlbnRpY2FsIG5hbWVzPyI7DQokbGFuZ1sicHJlZl9kZWNvZGVlbnRpdGllcyJdID0gIkRlY29kZSBodG1sIGVudGl0aWVzIG9uIGZyb250ZW5kIGZvcm0gc3VibWlzc2lvbi4iOw0KJGxhbmdbInByZWZfZnJvbnRlbmQiXSA9ICJGcm9udGVuZCBlZGl0IjsNCiRsYW5nWyJoZWxwX2Zyb250ZW5kIl0gPSAiRm9yIHNlY3VyaXR5LCBmcm9udGVuZCBlZGl0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIEZyb250IEVuZCBVc2VycyBtb2R1bGUuIFNlZSA8YSBocmVmPVwibW9kdWxlcy9Ib3N0ZWRWaWRlb0FsYnVtcy9kb2MvZmFxLmh0bWwjcTIwXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RmFxPC9hPiBmb3IgaGVscCBvbiBwZXJtaXNzaW9uIGludGVncmF0aW9uLiI7DQokbGFuZ1sicHJlZl9mZV93eXNpd3lnIl0gPSAiRW5hYmxlIHd5c2l3eWcgaW4gdGhlIGZyb250ZW5kIChtdXN0IGJlIGVuYWJsZWQgaW4gdGhlIEdsb2JhbCBTZXR0aW5ncyB0b28pIjsNCiRsYW5nWyJwcmVmX2ZlX2RlY29kZWVudGl0aWVzIl0gPSAiRGVjb2RlIGh0bWwgZW50aXRpZXMgZnJvbSBmcm9udGVuZCBmb3Jtcy4gVGhpcyBpcyBub3QgcmVjb21tYW5kZWQuIjsNCiRsYW5nWyJwcmVmX2ZlX2FsbG93ZmlsZXMiXSA9ICJBbGxvdyBmaWxlIHVwbG9hZCBmcm9tIHRoZSBmcm9udGVuZC4iOw0KJGxhbmdbInByZWZfZmVfYWxsb3duYW1lY2hhbmdlIl0gPSAiQWxsb3cgZnJvbnRlbmQgdXNlcnMgdG8gY2hhbmdlIHRoZSBuYW1lIChhbmQgdGhyb3VnaCBpdCB0aGUgYWxpYXMpIG9mIHRoZSBpdGVtIHRoZXkgYXJlIGVkaXRpbmcuIjsNCiRsYW5nWyJwcmVmX2ZlX2FsbG93YWRkbmV3Il0gPSAiQWxsb3cgZnJvbnRlbmQgdXNlcnMgdG8gYWRkIG5ldyBlbGVtZW50cy4iOw0KJGxhbmdbInByZWZfZmVfdXNlY2FwdGNoYSJdID0gIlVzZSBjYXB0Y2hhPyAobW9kdWxlIENhcHRjaGEgcmVxdWlyZWQpIjsNCiRsYW5nWyJwcmVmX2ZlX2FmdGVyc3VibWl0Il0gPSAiT25jZSB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHJlZGlyZWN0IHRvICI7DQokbGFuZ1sicHJlZl9mZV9tYXhmaWxlc2l6ZSJdID0gIk1heGltdW0gc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBmaWxlcyB1cGxvYWRlZCB0aHJvdWdoIHRoZSBmcm9udGVuZCAoY2Fubm90IGJlIG92ZXIgcGhwLmluaSBsaW1pdCkiOw0KJGxhbmdbInByZWZfYWxsb3dfY29tcGxleF9vcmRlciJdID0gIkFsbG93IGNvbXBsZXggXCJvcmRlcmJ5XCIgcGFyYW1ldGVycyAoYmV0YSkuIjsNCiRsYW5nWyJwcmVmX2FkbWlucGFnZXMiXSA9ICJOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGhlIGFkbWluIHBhbmVsICgwID0gcGFzIGRlIHBhZ2luYXRpb24pLiI7DQokbGFuZ1sicHJlZl9sb2FkX25iY2hpbGRyZW4iXSA9ICJMb2FkIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gKGl0ZW0tJmd0O25iY2hpbGRyZW4pIGZvciBhbGwgaXRlbXM/IjsNCiRsYW5nWyJwcmVmX2xvYWRfbmV4dHByZXZpb3VzIl0gPSAiTG9hZCBuZXh0L3ByZXZpb3VzIGxpbmtzPyAoZGV0YWlsIHZpZXcgb25seSkiOw0KJGxhbmdbInByZWZfdXNlX3Nlc3Npb24iXSA9ICJVc2Ugc2Vzc2lvbiB0byBzdG9yZSBhZG1pbiBwYW5lbCBmaWx0ZXJzLiI7DQokbGFuZ1sicHJlZl9sZXZlbHBhZ2luYXRpb24iXSA9ICJEZWZhdWx0IG51bWJlciBvZiBlbGVtZW50IHBlciBwYWdlIGZvciB0aGUgZnJvbnRlbmQiOw0KJGxhbmdbImhlbHBfbGV2ZWxwYWdpbmF0aW9uIl0gPSAiKEVtcHR5IG9yIDAgZm9yIHdpbGwgZGlzYWJsZSBkZWZhdWx0IHBhZ2luYXRpb24uIFRoZSBuYnBlcnBhZ2UgcGFyYW1ldGVyIG92ZXJyaWRlcyB0aGVzZSBzZXR0aW5ncy4pIjsNCg0KLy9QQVJBTUVURVJTDQokbGFuZ1sicGhlbHBfYWN0aW9uIl0gPSAiUG9zc2libGUgYWN0aW9uczogXCJsaW5rXCIsIFwic2VhcmNoXCIsIFwiYnJlYWRjcnVtYnNcIiwgXCJkZWZhdWx0XCIsIFwic2l0ZW1hcFwiLiI7DQokbGFuZ1sicGhlbHBfd2hhdCJdID0gIkFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgbGV2ZWwgeW91IHdpc2ggdG8gZGlzcGxheS4gUG9zc2libGUgdmFsdWVzIGFyZSA6IDxpPmNhdGVnb3J5LCBhbGJ1bSwgdmlkZW88L2k+IjsNCiRsYW5nWyJwaGVscF9hbGlhcyJdID0gIkFsaWFzIG9mIHRoZSBpdGVtIHlvdSB3aXNoIHRvIGRpc3BsYXkuIjsNCiRsYW5nWyJwaGVscF9wYXJlbnQiXSA9ICJJZiB5b3Ugd2lzaCB0byBsaW1pdCB0aGUgZGlzcGxheWVkIGVsZW1lbnRzIHRvIHRob3NlIHdobyBiZWxvbmcgdG8gYSBzcGVjaWZpYyBwYXJlbnQsIGVudGVyIHRoZSBwYXJlbnQgYWxpYXMgaGVyZS4iOw0KJGxhbmdbInBoZWxwX2xpbWl0Il0gPSAiTGltaXQgdGhlIG51bWJlciBvZiBpdGVtIHJldHVybmVkIGJ5IHRoZSBxdWVyeSAoMCA9IG5vIGxpbWl0KSI7DQokbGFuZ1sicGhlbHBfbmJwZXJwYWdlIl0gPSAiU2V0IHRoZSBudW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIG9uIGVhY2ggcGFnZS4iOw0KJGxhbmdbInBoZWxwX29yZGVyYnkiXSA9ICJZb3UgY2FuIHNldCB0byBcIm1vZGlmaWVkXCIsIFwiY3JlYXRlZFwiIG9yIHRoZSBuYW1lIG9mIGEgZmllbGQgdG8gb3JkZXIgaXRlbXMgaW4gdGhpcyB3YXkuIEFueSBvdGhlciB2YWx1ZSB3aWxsIG9yZGVyIHdpdGggdGhlIGl0ZW0gb3JkZXIuIjsNCiRsYW5nWyJwaGVscF9kZXRhaWxwYWdlIl0gPSAiU3BlY2lmeSB0aGUgYWxpYXMgb2YgdGhlIHBhZ2UgaW4gd2hpY2ggbGlua3MgdG8gY2hpbGQgZWxlbWVudHMgc2hvdWxkIGJlIHNlbnQgKGlmIG5vbmUgaXMgc3BlY2lmaWVkLCBjdXJyZW50IHBhZ2UgaXMgdXNlZCkiOw0KJGxhbmdbInBoZWxwX3Nob3dkZWZhdWx0Il0gPSAiU2V0IHRvIFwidHJ1ZVwiIGlmIHlvdSB3aXNoIHRvIGRpc3BsYXkgdGhlIGRlZmF1bHQgZWxlbWVudC4iOw0KJGxhbmdbInBoZWxwX3JhbmRvbSJdID0gIlNldCB0byBhIG51bWJlciB0byBzaG93IGEgbnVtYmVyIG9mIHJhbmRvbSBlbGVtZW50cyBmcm9tIHlvdXIgcXVlcnkuIjsNCiRsYW5nWyJwaGVscF9maW5hbHRlbXBsYXRlIl0gPSAiU3BlY2lmeSB0aGUgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlIGZvciB0aGUgZGV0YWlsIHZpZXcgb2YgYSB2aWRlby4iOw0KJGxhbmdbInBoZWxwX2VtYmVkdGVtcGxhdGUiXSA9ICJTcGVjaWZ5IHRoZSB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UgZm9yIGVtYmVkZGluZyBhIHZpZGVvLiI7DQokbGFuZ1sicGhlbHBfbGlzdHRlbXBsYXRlIl0gPSAiU3BlY2lmeSB0aGUgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlIGZvciB0aGUgbGlzdCB2aWV3LiI7DQokbGFuZ1sicGhlbHBfZm9yY2VsaXN0Il0gPSAiU2V0IHRvIDEgaWYgeW91IHdpc2ggdG8gZGlzcGxheSBhIGxpc3QgdmlldyBldmVuIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgZWxlbWVudC4iOw0KJGxhbmdbInBoZWxwX2ludGVybmFsIl0gPSAiRm9yIGludGVybmFsIHVzZTsgc3BlY2lmeSB0aGUgcGFnZSAod2hlbiB1c2luZyBuYnBlcnBhZ2UpLiI7DQokbGFuZ1sicGhlbHBfcXVlcnkiXSA9ICJGb3Igb3B0aW9uYWwgdXNlIHdpdGggdGhlIFwiZGVmYXVsdFwiIGFjdGlvbi4gU3BlY2lmaWVzIHRoZSBpZCBvZiB0aGUgcXVlcnkgdG8gdXNlLiI7DQokbGFuZ1sicGhlbHBfaW5saW5lIl0gPSAiTWFrZXMgdGhlIGxpbmtzIGlubGluZS4iOw0KJGxhbmdbInBoZWxwX3NlYXJjaG1vZGUiXSA9ICJGb3IgdXNlIHdpdGggdGhlIFwic2VhcmNoXCIgYWN0aW9uLiBTZXQgdG8gXCJzaW1wbGVcIiB0byBzZWFyY2ggaW4gYWxsIHRleHQgZmllbGRzLCBhbmQgXCJhZHZhbmNlZFwiIHRvIHNlYXJjaCBpbiBzcGVjaWZpYyBmaWVsZHMuIjsNCiRsYW5nWyJwaGVscF90b2FjdGlvbiJdID0gIkZvciB1c2Ugd2l0aCB0aGUgXCJsaW5rXCIgYWN0aW9uLiBTZXRzIHRoZSBhY3Rpb24gdG8gd2hpY2ggdGhlIGxpbmsgc2hvdWxkIHJlZGlyZWN0LiI7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCgkkbGFuZ1siZnJpZW5kbHluYW1lIl0gPSAiSG9zdGVkIFZpZGVvIEFsYnVtcyI7DQoJJGxhbmdbIm1vZGRlc2NyaXB0aW9uIl0gPSAiQ2UgbW9kdWxlIHBldXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBwb3VyIGFmZmljaGVyIGRlcyBhbGJ1bXMgdmlkJmVhY3V0ZTtvcyBoJmVhY3V0ZTtiZXJnJmVhY3V0ZTtzIHN1ciBvbiBZb3V0dWJlLCBHb29nbGUgVmlkZW9zIG91IERhaWx5bW90aW9uIjsNCgkkbGFuZ1siYWRtaW5kZXNjcmlwdGlvbiJdID0gIkhvc3RlZCBWaWRlbyBBbGJ1bXMiOw0KDQoJJGxhbmdbInBhZ2VtZW51ZGVsaW1pdGVyIl0gPSAiJm5ic3A7JiMxMjQ7Jm5ic3A7IjsNCgkkbGFuZ1sicGFnZW1lbnVvdmVyZmxvdyJdID0gIiZuYnNwOy4uLiZuYnNwOyI7DQoJDQovLyBzdHJpbmdzIGZvciBjYXRlZ29yeQ0KCSRsYW5nWyJjYXRlZ29yeSJdID0gIkNhdCZlYWN1dGU7Z29yaWUiOw0KCSRsYW5nWyJjYXRlZ29yeV9wbHVyYWwiXSA9ICJDYXQmZWFjdXRlO2dvcmllcyI7DQoJJGxhbmdbImFkZF9jYXRlZ29yeSJdID0gIkFqb3V0ZXIgdW5lIENhdCZlYWN1dGU7Z29yaWUiOw0KCSRsYW5nWyJlZGl0X2NhdGVnb3J5Il0gPSAiTW9kaWZpZXIgdW5lIENhdCZlYWN1dGU7Z29yaWUiOw0KCSRsYW5nWyJmaWx0ZXJieV9jYXRlZ29yeSJdID0gIkZpbHRyZXIgcGFyIENhdCZlYWN1dGU7Z29yaWUiOw0KCSRsYW5nWyJjYXRlZ29yeV9kZXNjcmlwdGlvbiJdID0gIkRlc2NyaXB0aW9uIjsNCgkkbGFuZ1sicHJvbXB0X2RlbGV0ZWNhdGVnb3J5Il0gPSAiVm91cyAmZWNpcmM7dGVzIHN1ciBsZSBwb2ludCBkZSBzdXBwcmltZXIgY2V0dGUgY2F0JmVhY3V0ZTtnb3JpZSAoJXMpPyBUb3VzIGxlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIHJhdHRhY2gmZWFjdXRlO3Mgc2Vyb250IHBlcmR1cy4gVm91bGV6LXZvdXMgY29udGludWVyPyI7DQoJDQovLyBzdHJpbmdzIGZvciBhbGJ1bQ0KCSRsYW5nWyJhbGJ1bSJdID0gIkFsYnVtIFZpZCZlYWN1dGU7byI7DQoJJGxhbmdbImFsYnVtX3BsdXJhbCJdID0gIkFsYnVtcyBWaWQmZWFjdXRlO28iOw0KCSRsYW5nWyJhZGRfYWxidW0iXSA9ICJBam91dGVyIHVuIGFsYnVtIHZpZCZlYWN1dGU7byI7DQoJJGxhbmdbImVkaXRfYWxidW0iXSA9ICJNb2RpZmllciB1biBhbGJ1bSB2aWQmZWFjdXRlO28iOw0KCSRsYW5nWyJmaWx0ZXJieV9hbGJ1bSJdID0gIkZpbHRyZXIgcGFyIGFsYnVtIHZpZCZlYWN1dGU7byI7DQoJJGxhbmdbImFsYnVtX2Rlc2NyaXB0aW9uIl0gPSAiRGVzY3JpcHRpb24iOw0KCSRsYW5nWyJhbGJ1bV9sYW5nIl0gPSAiTGFuZ3VlIGRlIGwnYWxidW0iOw0KCSRsYW5nWyJhbGJ1bV9kZWZhdWx0X3dpZHRoIl0gPSAiTGFyZ2V1ciBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgdmlkJmVhY3V0ZTtvcyBkZSBjZXQgYWxidW0iOw0KCSRsYW5nWyJhbGJ1bV9kZWZhdWx0X2hlaWdodCJdID0gIkhhdXRldXIgcGFyIGQmZWFjdXRlO2ZhdXQgZGVzIHZpZCZlYWN1dGU7b3MgZGUgY2V0IGFsYnVtIjsNCgkkbGFuZ1sicHJvbXB0X2RlbGV0ZWFsYnVtIl0gPSAiVm91cyAmZWNpcmM7dGVzIHN1ciBsZSBwb2ludCBkZSBzdXBwcmltZXIgY2V0IGFsYnVtIHZpZCZlYWN1dGU7byAoJXMpPyBUb3VzIGxlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIHJhdHRhY2gmZWFjdXRlO3Mgc2Vyb250IHBlcmR1cy4gVm91bGV6LXZvdXMgY29udGludWVyPyI7DQoJDQovLyBzdHJpbmdzIGZvciB2aWRlbw0KCSRsYW5nWyJ2aWRlbyJdID0gIlZpZCZlYWN1dGU7byI7DQoJJGxhbmdbInZpZGVvX3BsdXJhbCJdID0gIlZpZCZlYWN1dGU7b3MiOw0KCSRsYW5nWyJhZGRfdmlkZW8iXSA9ICJBam91dGVyIHVuZSB2aWQmZWFjdXRlO28iOw0KCSRsYW5nWyJlZGl0X3ZpZGVvIl0gPSAiTW9kaWZpZXIgdW5lIHZpZCZlYWN1dGU7byI7DQoJJGxhbmdbImZpbHRlcmJ5X3ZpZGVvIl0gPSAiRmlsdHJlciBwYXIgdmlkJmVhY3V0ZTtvIjsNCgkkbGFuZ1sidmlkZW9fZGVzY3JpcHRpb24iXSA9ICJEZXNjcmlwdGlvbiI7DQoJJGxhbmdbInZpZGVvX3NpdGUiXSA9ICJTaXRlIFZpZCZlYWN1dGU7byI7DQoJJGxhbmdbInZpZGVvX3ZpZGVvaWQiXSA9ICJJZCBkZSBsYSB2aWQmZWFjdXRlO28iOw0KCSRsYW5nWyJ2aWRlb193aWR0aCJdID0gIkxhcmdldXIgZGUgbGEgdmlkJmVhY3V0ZTtvIjsNCgkkbGFuZ1sidmlkZW9faGVpZ2h0Il0gPSAiSGF1dGV1ciBkZSBsYSB2aWQmZWFjdXRlO28iOw0KCSRsYW5nWyJwcm9tcHRfZGVsZXRldmlkZW8iXSA9ICJWb3VzICZlY2lyYzt0ZXMgc3VyIGxlIHBvaW50IGRlIHN1cHByaW1lciBjZXR0ZSB2aWQmZWFjdXRlO28gKCVzKT8gVm91bGV6LXZvdXMgY29udGludWVyPyI7DQoJJGxhbmdbInRlbXBsYXRlaGVscCJdID0gJw0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IFZhcmlhYmxlcyBTbWFydHkgcG91ciBsZSBnYWJhcml0IGRlIGxpc3RlIGRlIGNhdGVnb3JpZXM8L2gzPg0KCTxkaXYgY2xhc3M9InRwbHZhcnNfaGlkZSI+DQoJCTx1bD4NCgkJCTxsaT4kbGV2ZWx0aXRsZTwvbGk+DQoJCQk8bGk+JHBhcmVudG9iaiAoc2kgbGUgcGFyZW50IGVzdCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7KTwvbGk+DQoJCQk8bGk+JGl0ZW1saXN0ICh0YWJsZWF1IGQnLiInIi4naXRlbXMpPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNfc2VsZWN0ZWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYmNoaWxkcmVuIChzaSBjaGFyZyZlYWN1dGU7KTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDthbGlhczwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RldGFpbGxpbms8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXRhaWx1cmw8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXNjcmlwdGlvbjwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2lzZGVmYXVsdDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfbW9kaWZpZWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX2NyZWF0ZWQ8L2xpPg0KCQk8L3VsPg0KCQk8YnIvPjxici8+DQoJPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQoJPGgzIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9kaXNwbGF5dG9nZ2xlKHRoaXMpOyI+Jmd0OyBWYXJpYWJsZXMgU21hcnR5IHBvdXIgbGUgZ2FiYXJpdCBkZSBsaXN0ZSBkJy4iJyIuJ2FsYnVtczwvaDM+DQoJPGRpdiBjbGFzcz0idHBsdmFyc19oaWRlIj4NCgkJPHVsPg0KCQkJPGxpPiRsZXZlbHRpdGxlPC9saT4NCgkJCTxsaT4kcGFyZW50b2JqIChzaSBsZSBwYXJlbnQgZXN0IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTspPC9saT4NCgkJCTxsaT4kaXRlbWxpc3QgKHRhYmxlYXUgZCcuIiciLidpdGVtcyk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc19zZWxlY3RlZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O25iY2hpbGRyZW4gKHNpIGNoYXJnJmVhY3V0ZTspPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7bmFtZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGV0YWlsbGluazwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RldGFpbHVybDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2Rlc2NyaXB0aW9uPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7bGFuZzwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RlZmF1bHRfd2lkdGg8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZWZhdWx0X2hlaWdodDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9pZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9hbGlhczwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9uYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50bGluazwvbGk+DQoJCQk8bGk+JHRpZW0tJmd0O3BhcmVudHVybDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2lzZGVmYXVsdDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfbW9kaWZpZWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX2NyZWF0ZWQ8L2xpPg0KCQk8L3VsPg0KCQk8YnIvPjxici8+DQoJPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQoJPGgzIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9kaXNwbGF5dG9nZ2xlKHRoaXMpOyI+Jmd0OyBWYXJpYWJsZXMgU21hcnR5IHBvdXIgbGUgZ2FiYXJpdCBkZSBsaXN0ZSBkZSB2aWQmZWFjdXRlO29zPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8dWw+DQoJCQk8bGk+JGxldmVsdGl0bGU8L2xpPg0KCQkJPGxpPiRwYXJlbnRvYmogKHNpIGxlIHBhcmVudCBlc3Qgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyk8L2xpPg0KCQkJPGxpPiRpdGVtbGlzdCAodGFibGVhdSBkJy4iJyIuJ2l0ZW1zKTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2lzX3NlbGVjdGVkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7bmFtZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGV0YWlsbGluazwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RldGFpbHVybDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2Rlc2NyaXB0aW9uPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7c2l0ZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3NpdGVfbmFtZXZhbHVlPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7dmlkZW9pZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3dpZHRoPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aGVpZ2h0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2lkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X2FsaWFzPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50X25hbWU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRsaW5rPC9saT4NCgkJCTxsaT4kdGllbS0mZ3Q7cGFyZW50dXJsPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7aXNkZWZhdWx0PC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9tb2RpZmllZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfY3JlYXRlZDwvbGk+DQoJCTwvdWw+DQoJCTxici8+PGJyLz4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IFZhcmlhYmxlcyBTbWFydHkgcG91ciBsZSBnYWJhcml0IGRlIGQmZWFjdXRlO3RhaWwgZCcuIiciLid1bmUgdmlkJmVhY3V0ZTtvPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8dWw+DQoJCQk8bGk+JGxldmVsdGl0bGU8L2xpPg0KCQkJPGxpPiRwcmV2aW91c19pdGVtIChzaSBjaGFyZyZlYWN1dGU7KTwvbGk+DQoJCQk8bGk+JG5leHRfaXRlbSAoc2kgY2hhcmcmZWFjdXRlOyk8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7YWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXNjcmlwdGlvbjwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3NpdGU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtzaXRlX25hbWV2YWx1ZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3ZpZGVvaWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDt3aWR0aDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2hlaWdodDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9pZDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9hbGlhczwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudF9uYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7cGFyZW50bGluazwvbGk+DQoJCQk8bGk+JHRpZW0tJmd0O3BhcmVudHVybDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2lzZGVmYXVsdDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2RhdGVfbW9kaWZpZWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX2NyZWF0ZWQ8L2xpPg0KCQkJPGxpPiRsYWJlbHMtPi4uLjwvbGk+DQoJCTwvdWw+DQoJCTxici8+DQoJCTxwPkRhbnMgbGUgZ2FiYXJpdCBkZSBkJmVhY3V0ZTt0YWlsIGR1IG5pdmVhdSBmaW5hbCwgdXRpbGlzZXogbCcuIiciLidvYmpldCAkbGFiZWxzIHBvdXIgYWZmaWNoZXIgbGVzICZlYWN1dGU7dGlxdWV0dGVzIGRlIGNoYW1wcyBzZWxvbiBsYSBsYW5ndWUgKCRsYWJlbHMtPm5vbV9kdV9jaGFtcCkuPC9wPg0KCQk8cD5Wb3VzIHBvdXZleiBhY2MmZWFjdXRlO2RlciBhdXggb2JqZXRzIHBhcmVudHMgZW4gdXRpbGlzYW50ICRpdGVtLT5wYXJlbnRfb2JqZWN0LT5wYXJlbnRfb2JqZWN0LT4uLi4gKGV0IGFpbnNpIGRlIHN1aXRlKTwvcD4NCgkJPGJyLz4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IE9iamVjdCBmaWNoaWVyPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8dWw+DQoJCQk8bGk+JGZpbGUtJmd0O2ZpbGVwYXRoIChyZWxhdGlmKTwvbGk+DQoJCQk8bGk+JGZpbGUtJmd0O2V4dDwvbGk+DQoJCQk8bGk+JGZpbGUtJmd0O3VybCAodXJsIGFic29sdSk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDtzaXplICh0YWlsbGUgZW4gYnl0ZXMpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7c2l6ZV93Zm9ybWF0ICh0YWlsbGUgZm9ybWF0JmVhY3V0ZTtlKTwvbGk+DQoJCQk8bGk+JGZpbGUtJmd0O2ltYWdlc2l6ZSAoaW1hZ2VzIHNldWxlbWVudCk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDt3aWR0aCAoaW1hZ2VzIHNldWxlbWVudCk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDtoZWlnaHQgKGltYWdlcyBzZXVsZW1lbnQpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7aW1hZ2UgKGJhbGlzZSBpbWc7IGltYWdlcyBzZXVsZW1lbnQpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7dGh1bWJuYWlsICh1cmwgZGUgbGEgdmlnbmV0dGUsIHNpIGFwcGxpY2FibGUpPC9saT4NCgkJCTxsaT4kZmlsZS0mZ3Q7ZmlsZW10aW1lIChkZXJuaSZlZ3JhdmU7cmUgbW9kaWZpY2F0aW9uLCBmb3JtYXQgdW5peCk8L2xpPg0KCQkJPGxpPiRmaWxlLSZndDttb2RpZmllZCAoZGVybmkmZWdyYXZlO3JlIG1vZGlmaWNhdGlvbiwgZm9ybWF0IHN0YW5kYXJkKTwvbGk+DQoJCTwvdWw+DQoJCTxici8+PGJyLz4NCgk8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCgk8aDMgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiIG9uY2xpY2s9ImN0bG1tX2Rpc3BsYXl0b2dnbGUodGhpcyk7Ij4mZ3Q7IEJyZWFkY3J1bWJzPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8cD5Mb3JzcXVlIHZvdXMgJmVjaXJjO3RlcyBkYW5zIHVuIGdhYmFyaXQgZGUgbW9kdWxlLCB2b3VzIHBvdXZleiBhcHBlbGVyIGxlcyBicmVhZGNydW1icyBlbiB1dGlsaXNhbnQgbGEgYmFsaXNlIHtIb3N0ZWRWaWRlb0FsYnVtc19icmVhZGNydW1ic30uIA0KCQlWb3VzIHBvdXZleiB1dGlsaXNlciBsZXMgbSZlY2lyYzttZXMgcGFyYW0mZWdyYXZlO3RyZXMgcXVlIGRhbnMgbGEgYmFsaXNlIGJyZWFkY3J1bWJzIGR1IGNtcyANCgkJKGluaXRpYWwsIGRlbGltaXRlciwgY2xhc3NpZCwgY3VycmVudGNsYXNzaWQpLCBkZSBtJmVjaXJjO21lIHF1ZSBsZSBwYXJhbSZlZ3JhdmU7dHJlICJzdGFydGxldmVsIi48YnIvPg0KCQlFbiBkZWhvcnMgZGVzIGdhYmFyaXRzIGRlIG1vZHVsZSwgbicuIiciLidpbXBvcnRlIG8mdWdyYXZlOyBzdXIgbGEgcGFnZSwgdm91cyBwb3V2ZXogYXBwZWxlciBsJy4iJyIuJ2FjdGlvbiBicmVhZGNydW1icyANCgkJe2Ntc19tb2R1bGUgbW9kdWxlPSJIb3N0ZWRWaWRlb0FsYnVtcyIgYWN0aW9uPSJicmVhZGNydW1icyJ9LCB1dGlsaXNhbnQgbGVzIG0mZWNpcmM7bWVzIHBhcmFtJmVncmF2ZTt0cmVzLjwvcD48L2Rpdj48L2Rpdj4NCjxkaXY+DQoJPGgzIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7IiBvbmNsaWNrPSJjdGxtbV9kaXNwbGF5dG9nZ2xlKHRoaXMpOyI+Jmd0OyBJbnNlcnRpb24gZGUgdmlkJmVhY3V0ZTtvPC9oMz4NCgk8ZGl2IGNsYXNzPSJ0cGx2YXJzX2hpZGUiPg0KCQk8cD5Mb3JzcXVlIHZvdXMgJmVjaXJjO3RlcyBkYW5zIHVuIGdhYmFyaXQgZGUgbW9kdWxlLCB2b3VzIHBvdXZleiBpbnPDqXJlciB1bmUgdmlkw6lvIGVuIHV0aWxpc2FudCBsYSBiYWxpc2Uge0hvc3RlZFZpZGVvQWxidW1zX2VtYmVkdmlkZW8gaXRlbT0kaXRlbX0uIA0KCQlMZSBwYXJhbSZlZ3JhdmU7dHJlIGl0ZW09JGl0ZW0gZXN0IG9ibGlnYXRvaXJlLiBBIGwnLiInIi4naW50JmVhY3V0ZTtyaWV1ciBkdSBnYWJhcml0IGFzc29jaSZlYWN1dGU7ICZhZ3JhdmU7IGNldHRlIGJhbGlzZSwgdm91cyBwb3V2ZXogdXRpbGlzZXIgbGVzIGNoYW1wcyBzdWl2YW50czo8YnIvPg0KCQk8dWw+DQoJCQk8bGk+JGxldmVsdGl0bGU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtuYW1lPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7YWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkZXNjcmlwdGlvbjwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3NpdGU8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtzaXRlX25hbWV2YWx1ZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3ZpZGVvaWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDt3aWR0aDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2hlaWdodDwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O2xhbmc8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfaWQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfYWxpYXM8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtwYXJlbnRfbmFtZTwvbGk+DQoJCQk8bGk+JGl0ZW0tJmd0O3BhcmVudGxpbms8L2xpPg0KCQkJPGxpPiR0aWVtLSZndDtwYXJlbnR1cmw8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtpc2RlZmF1bHQ8L2xpPg0KCQkJPGxpPiRpdGVtLSZndDtkYXRlX21vZGlmaWVkPC9saT4NCgkJCTxsaT4kaXRlbS0mZ3Q7ZGF0ZV9jcmVhdGVkPC9saT4NCgkJCTxsaT4kbGFiZWxzLT4uLi48L2xpPg0KCQk8L3VsPg0KPC9kaXY+PC9kaXY+DQonOw0KDQovLyBGb3IgZmlsZSBmaWVsZHMNCiRsYW5nWyJSZW1vdmUiXSA9ICJFbmxldmVyIjsNCiRsYW5nWyJkZWxldGUiXSA9ICJTdXBwcmltZXIiOw0KJGxhbmdbImJyb3dzZWZpbGVzdGl0bGUiXSA9ICJVcGxvYWRleiB1biBub3V2ZWF1IGZpY2hpZXIgb3UgY2hvaXNpc3NleiB1biBmaWNoaWVyIHBsdXMgYmFzLiI7DQokbGFuZ1sic2hvd2luZ2RpciJdID0gIlImZWFjdXRlO3BlcnRvaXJlIjsNCiRsYW5nWyJicm93c2VmaWxlc3Jlc2l6ZSJdID0gIkwnaW1hZ2Ugc2VyYSBhdXRvbWF0aXF1ZW1lbnQgcmVkaW1lbnNpb25uJmVhY3V0ZTtlIHBvdXIgbGUgbW9kdWxlLiI7DQokbGFuZ1siYnJvd3NlZmlsZWN1cnJlbnRwYXRoIl0gPSAiUiZlYWN1dGU7cGVydG9pcmUgOiAiOw0KJGxhbmdbInBhcmVudGRpciJdID0gIlImZWFjdXRlO3BlcnRvaXJlIHBhcmVudCI7DQokbGFuZ1siYWRkYWZpbGUiXSA9ICJBam91dGVyIHVuL2RlcyBmaWNoaWVyKHMpIjsNCiRsYW5nWyJzdWJtaXR0aW5nX2ZpbGUiXSA9ICJMZSBmaWNoaWVyIGVzdCBlbiBjb3VycyBkZSB0JmVhY3V0ZTtsJmVhY3V0ZTtjaGFyZ2VtZW50LiBWZXVpbGxleiBwYXRpZW50ZXIuLi4iOw0KJGxhbmdbImZpbGVuYW1lIl0gPSAiRmljaGllciI7DQokbGFuZ1siaW1hZ2VzaXplIl0gPSAiRGltZW5zaW9ucyI7DQokbGFuZ1siZmlsZWV4dCJdID0gImV4dC4iOw0KJGxhbmdbImZpbGVzaXplIl0gPSAiVGFpbGxlIjsNCiRsYW5nWyJsYXN0bW9kIl0gPSAiTW9kaWZpJmVhY3V0ZTsiOw0KJGxhbmdbImZpbGVvd25lciJdID0gIlByb3ByaSZlYWN1dGU7dGFpcmUiOw0KJGxhbmdbImZpbGVwZXJtcyJdID0gIlBlcm1pc3Npb25zIjsNCiRsYW5nWyJ2aWV3YWxsaW1hZ2VzIl0gPSAiVm9pciB0b3V0ZXMgbGVzIGltYWdlcyI7DQokbGFuZ1sicG9zdG1heHNpemUiXSA9ICJOb3RlOiBsJ2Vudm9pIChwb3N0IG1heCBzaXplKSBlc3QgbGltaXQmZWFjdXRlOyAmYWdyYXZlOyAiOw0KJGxhbmdbImFkZGZpbGVpbnB1dCJdID0gIkFqb3V0ZXIgdW4gYXV0cmUgZmljaGllciI7DQokbGFuZ1siemlwZmlsZW5vdGljZSJdID0gIkxlcyBmaWNoaWVycyBkZXZyYWllbnQgc2UgdHJvdXZlciBkYW5zIGxhIHJhY2luZSBkZSBsJ2FyY2hpdmUuIjsNCiRsYW5nWyJ1cGxvYWR6aXBmaWxlIl0gPSAiQXJjaGl2ZSBaaXAiOw0KDQovLyBzdHJpbmdzIGZvciBnZW5lcmFsIGZpZWxkcw0KJGxhbmdbImlkIl0gPSAiaWQiOw0KJGxhbmdbIm5hbWUiXSA9ICJOb20iOw0KJGxhbmdbImFsaWFzIl0gPSAiQWxpYXMiOw0KJGxhbmdbImlzZGVmYXVsdCJdID0gIlBhciBkJmVhY3V0ZTtmYXV0PyI7DQokbGFuZ1siYWN0aXZlIl0gPSAiQWN0aWYiOw0KJGxhbmdbInBhcmVudCJdID0gIlBhcmVudCI7DQokbGFuZ1sic3VibWl0Il0gPSAiRW5yZWdpc3RyZXIiOw0KJGxhbmdbImNhbmNlbCJdID0gIkFubnVsZXIiOw0KJGxhbmdbIm5iY2hpbGRyZW4iXSA9ICJOYiBkJyZlYWN1dGU7bCZlYWN1dGU7bWVudHMiOw0KJGxhbmdbImRhdGVfbW9kaWZpZWQiXSA9ICJEZXJuaSZlZ3JhdmU7cmUgbW9kaWZpY2F0aW9uIjsNCiRsYW5nWyJkYXRlX2NyZWF0ZWQiXSA9ICJDciZlYWN1dGU7YXRpb24iOw0KCQ0KLy8gR0VORVJBTA0KJGxhbmdbInBhZ2VzIl0gPSAiUGFnZXM6ICI7DQokbGFuZ1sibmV4dHBhZ2UiXSA9ICJQYWdlIHN1aXZhbnRlIjsNCiRsYW5nWyJwcmV2aW91c3BhZ2UiXSA9ICJQYWdlIHByJmVhY3V0ZTtjJmVhY3V0ZTtkZW50ZSI7DQokbGFuZ1siYWN0aXZhdGUiXSA9ICJBY3RpdmVyIjsNCiRsYW5nWyJ1bmFjdGl2YXRlIl0gPSAiRCZlYWN1dGU7c2FjdGl2ZXIiOw0KJGxhbmdbInNlYXJjaHRoaXN0YWJsZSJdID0gIkNoZXJjaGVyIGRhbnMgY2UgdGFibGVhdToiOw0KJGxhbmdbInJlc2V0b3JkZXIiXSA9ICJSZW1ldHRyZSAmYWdyYXZlOyB6JmVhY3V0ZTtybyI7DQokbGFuZ1siWWVzIl0gPSAiT3VpIjsNCiRsYW5nWyJObyJdID0gIk5vbiI7DQokbGFuZ1siQWN0aW9ucyJdID0gIkFjdGlvbnMiOw0KJGxhbmdbInJlb3JkZXIiXSA9ICJSJmVhY3V0ZTtvcmRvbm5lciI7DQokbGFuZ1sibGlzdHRlbXBsYXRlIl0gPSAiR2FiYXJpdCBkZSBsaXN0ZSBwb3VyIjsNCiRsYW5nWyJkZWZhdWx0dGVtcGxhdGVzIl0gPSAiR2FiYXJpdHMgcGFyIGQmZWFjdXRlO2ZhdXQiOw0KJGxhbmdbInRlbXBsYXRlcyJdID0gIkdhYmFyaXRzIjsNCiRsYW5nWyJ0ZW1wbGF0ZSJdID0gIkdhYmFyaXQiOw0KJGxhbmdbImVkaXR0ZW1wbGF0ZSJdID0gIk1vZGlmaWVyIGxlIGdhYmFyaXQiOw0KJGxhbmdbInRlbXBsYXRldmFycyJdID0gIlZhcmlhYmxlcyBkZSBnYWJhcml0IjsNCiRsYW5nWyJkZWZ0ZW1wbGF0ZWZvciJdID0gIkdhYmFyaXQgZGUgbGlzdGUgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciBsZSBuaXZlYXUgIjsNCiRsYW5nWyJkZWZkZXRhaWx0ZW1wbGF0ZSJdID0gIkdhYmFyaXQgZGUgZCZlYWN1dGU7dGFpbCBwYXIgZCZlYWN1dGU7ZmF1dCI7DQokbGFuZ1siZGVmc2VhcmNocmVzdWx0c3RlbXBsYXRlIl0gPSAiR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRlIHJlY2hlcmNoZSI7DQokbGFuZ1siZGVmZW1wdHl0ZW1wbGF0ZSJdID0gIkdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgbG9yc3F1J2lsIG4neSBhIHBhcyBkZSByJmVhY3V0ZTtzdWx0YXQiOw0KJGxhbmdbImRlZmVtYmVkdGVtcGxhdGUiXSA9ICJHYWJhcml0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgaW1icmlxdWVyIChlbWJlZCkgdW5lIHZpZGVvIjsNCiRsYW5nWyJ1c2VsZXZlbGxpc3R0cGwiXSA9ICJVdGlsaXNlciBsZSBnYWJhcml0IGRlIGxpc3RlIGR1IG5pdmVhdSBhcHByb3ByaSZlYWN1dGU7IjsNCiRsYW5nWyJhZGR0ZW1wbGF0ZSJdID0gIkFqb3V0ZXIgdW4gZ2FiYXJpdCI7DQokbGFuZ1siZmlsdGVyYnkiXSA9ICJGaWx0cmVyIHBhciI7DQokbGFuZ1sic2hvd2luZ29ubHkiXSA9ICJGaWx0cmU6ICI7DQokbGFuZ1sic2hvd2FsbCJdID0gIlRvdXQgdm9pciAoYXVjdW4gZmlsdHJlKSI7DQokbGFuZ1siZmllbGRvcHRpb25zIl0gPSAiT3B0aW9ucyBkZSBjaGFtcHMiOw0KJGxhbmdbImFkZG9wdGlvbiJdID0gIkFqb3V0ZXIgdW5lIG9wdGlvbiI7DQokbGFuZ1sibW9kaWZ5YW5vcHRpb24iXSA9ICJNb2RpZmllciB1bmUgb3B0aW9uIjsNCiRsYW5nWyJtZXNzYWdlX2RlbGV0ZWQiXSA9ICImRWFjdXRlO2wmZWFjdXRlO21lbnQgc3VwcHJpbSZlYWN1dGU7LiI7DQokbGFuZ1sibWVzc2FnZV9tb2RpZmllZCJdID0gIk1vZGlmaWNhdGlvbiBzYXV2ZWdhcmQmZWFjdXRlO2UuIjsNCiRsYW5nWyJ3YXJuaW5nX3RhYiJdID0gIkF0dGVudGlvbjogU2F1dmVnYXJkZXogbGVzIGNoYW5nZW1lbnRzIGRhbnMgbGVzIGF1dHJlcyBvbmdsZXRzIGF2YW50IGRlIHRyYXZhaWxsZXIgZGFucyBjZWx1aS1jaS4uLiI7DQokbGFuZ1siZXJyb3JfbWlzc2dpbnZhbHVlIl0gPSAiVW5lIG91IHBsdXNpZXVycyB2YWxldXIgb2JsaWdhdG9pcmVzIG4nb250IHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBlbnRyJmVhY3V0ZTtlcy4iOw0KJGxhbmdbImVycm9yX2FscmVhZHlleGlzdHMiXSA9ICJJbCB5IGEgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbS4iOw0KJGxhbmdbImVycm9yX2RhdGUiXSA9ICJMYSBkYXRlIHF1ZSB2b3VzIGF2ZXogZW50ciZlYWN1dGU7ZSBlc3QgaW52YWxpZGUuIjsNCiRsYW5nWyJlcnJvcl9ub3BhcmVudCJdID0gIkF1Y3VuIHBhcmVudCBkJmVhY3V0ZTtmaW5pISI7DQokbGFuZ1siZXJyb3Jfbm90Zm91bmQiXSA9ICJMJyZlYWN1dGU7bCZlYWN1dGU7bWVudCBuJ2EgcGFzIHB1ICZlY2lyYzt0cmUgdHJvdXYmZWFjdXRlOy4iOw0KJGxhbmdbImVycm9yX25vaXRlbWZvdW5kIl0gPSAiQXVjdW4gJmVhY3V0ZTtsJmVhY3V0ZTttZW50IHRyb3V2JmVhY3V0ZTsuIjsNCiRsYW5nWyJlcnJvcl9kZW5pZWQiXSA9ICJQZXJtaXNzaW9uIHJlZnVzw6llIjsNCiRsYW5nWyJlcnJvcl93cm9uZ3F1ZXJ5Il0gPSAiUmVxdSZlY2lyYzt0ZSBpbnZhbGlkZS4iOw0KJGxhbmdbImVycm9yX2ZlYWRkZGVuaWVkIl0gPSAiVm91cyBuJ2F2ZXogcGFzIGxlcyBwZXJtaXNzaW9ucyByZXF1aXNlcyBwb3VyIHBvdXJzdWl2cmUuIjsNCiRsYW5nWyJlcnJvcl93cm9uZ2ZpbGV0eXBlIl0gPSAiQ2UgdHlwZSBkZSBmaWNoaWVyIG4nZXN0IHBhcyBwZXJtaXMgaWNpLiI7DQokbGFuZ1siZXJyb3JfY2FwdGNoYSJdID0gIkxlIHRleHRlIGVudHImZWFjdXRlOyBuZSBjb3JyZXNwb25kIHBhcyAmYWdyYXZlOyBsJ2ltYWdlIGNhcHRjaGEuIjsNCiRsYW5nWyJlcnJvcl9maWxldG9vYmlnIl0gPSAiTGUgZmljaGllciBlbnZveSZlYWN1dGU7IGVzdCB0cm9wIHZvbHVtaW5ldXguIjsNCiRsYW5nWyJnaXZlbmVycm9yIl0gPSAiRXJyZXVyOiAiOw0KJGxhbmdbImZpbmFsdGVtcGxhdGUiXSA9ICJHYWJhcml0IHBvdXIgbGVzIHZpZMOpb3MiOw0KJGxhbmdbImVtYmVkdGVtcGxhdGUiXSA9ICJHYWJhcml0IHV0aWxpc8OpIHBhciB7SG9zdGVkVmlkZW9BbGJ1bXNfZW1iZWR2aWRlb30iOw0KJGxhbmdbInByb21wdF9kZWxldGVvcHRpb24iXSA9ICJWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgY2V0dGUgb3B0aW9uPyI7DQokbGFuZ1sicHJvbXB0X2dlbmVyYWxkZWxldGUiXSA9ICJWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgY2V0ICZlYWN1dGU7bCZlYWN1dGU7bWVudD8iOw0KJGxhbmdbInByb21wdF9jYXB0Y2hhIl0gPSAiRW50cmV6IGxlIHRleHRlIGZpZ3VyYW50IHN1ciBsJ2ltYWdlLiI7DQokbGFuZ1sicXVlcmllcyJdID0gIlJlcXUmZWNpcmM7dGVzIjsNCiRsYW5nWyJxdWVyeSJdID0gIlJlcXUmZWNpcmM7dGUiOw0KJGxhbmdbInJlc3VsdHMiXSA9ICJSJmVhY3V0ZTtzdWx0YXRzIjsNCiRsYW5nWyJjcmVhdGVxdWVyeSJdID0gIkNyJmVhY3V0ZTtlciB1bmUgbm91dmVsbGUgcmVxdSZlY2lyYzt0ZSI7DQokbGFuZ1sicHJvbXB0X3F1ZXJ5Il0gPSAiQ3ImZWFjdXRlO2VyIHVuZSByZXF1JmVjaXJjO3RlIHBvdXIgcXVlbCBuaXZlYXU/IjsNCiRsYW5nWyJvcmRlcmJ5ZmllbGQiXSA9ICJPcmRvbm5lciBzZWxvbiI7DQokbGFuZ1siZGF0ZV9tb2RpZmllZCJdID0gIkRhdGUgbW9kaWZpJmVhY3V0ZTsiOw0KJGxhbmdbImZyb250ZW5kX3N1Ym1pdCJdID0gIkVudm95ZXIiOw0KDQovLyBCUkVBRENSVU1CUyA6DQokbGFuZ1sieW91YXJlaGVyZSJdID0gIlZvdXMgJmVjaXJjO3RlcyBpY2k6ICI7DQokbGFuZ1siYnJlYWRjcnVtYnNfZGVsaW1pdGVyIl0gPSAiICZndDsgIjsNCg0KLy8gU0VBUkNIIDoNCiRsYW5nWyJzZWFyY2h0aXRsZSJdID0gIlJlY2hlcmNoZSI7DQokbGFuZ1sic2VhcmNoYWdhaW4iXSA9ICJSZWNvbW1lbmNlciBsYSByZWNoZXJjaGUiOw0KJGxhbmdbInNlYXJjaGJ0biJdID0gIkNoZXJjaGVyISI7DQokbGFuZ1siY29udGFpbnMiXSA9ICJDb250aWVucyI7DQokbGFuZ1siaXNleGFjdGx5Il0gPSAiRXN0IGVnYWwgJmFncmF2ZTsiOw0KJGxhbmdbImlzbm90Il0gPSAiTidlc3QgcGFzIjsNCiRsYW5nWyJpc2hpZ2hlcnRoYW4iXSA9ICJFc3QgcGx1cyBncmFuZCBxdWUiOw0KJGxhbmdbImlzbG93ZXJ0aGFuIl0gPSAiRXN0IHBsdXMgcGV0aXQgcXVlIjsNCiRsYW5nWyJpc2FmdGVyIl0gPSAiRXN0IGFwciZlZ3JhdmU7cyI7DQokbGFuZ1siaXNiZWZvcmUiXSA9ICJFc3QgYXZhbnQiOw0KJGxhbmdbImlzYmV0d2VlbiJdID0gIkVzdCBlbnRyZSI7DQokbGFuZ1sidGhpc2FuZHRoaXMiXSA9ICJldCI7DQokbGFuZ1sicXVlcnl1c2UiXSA9ICJQYXMgdXRpbGlzJmVhY3V0ZTsiOw0KJGxhbmdbInF1ZXJ5bmFtZSJdID0gIk5vbSBkZSBsYSByZXF1JmVjaXJjO3RlIjsNCg0KLy8gSU1QT1JUIC8gRVhQT1JUDQokbGFuZ1siZXhwb3J0X3RpdGxlIl0gPSAiRXhwb3J0ZXIgbGVzIGVucmVnaXN0cmVtZW50cyI7DQokbGFuZ1siZXhwb3J0d2hpY2hsZXZlbHMiXSA9ICJRdWVscyB0YWJsZXMgZXhwb3J0ZXI/IjsNCiRsYW5nWyJleHBvcnRfdGVtcGxhdGVzIl0gPSAiRXhwb3J0ZXIgbGVzIGdhYmFyaXRzPyI7DQokbGFuZ1siaW1wb3J0X3RpdGxlIl0gPSAiSW1wb3J0ZXIgZCd1biBmaWNoaWVyIHhtbCI7DQokbGFuZ1siaW1wb3J0X2ZpbGVwcm9tcHQiXSA9ICJDaG9pc2lzc2V6IGxlIGZpY2hpZXIgeG1sICZhZ3JhdmU7IGltcG9ydGVyLiI7DQokbGFuZ1siaW1wb3J0X2RvbmUiXSA9ICJJbXBvcnRhdGlvbiB0ZXJtaW4mZWFjdXRlO2UuICVzIGVucmVnaXN0cmVtZW50cyBvbnQgJmVhY3V0ZTt0JmVhY3V0ZTsgaW1wb3J0JmVhY3V0ZTtzLiI7DQokbGFuZ1siaW1wb3J0X2VudHJpZXMiXSA9ICJMZSBmaWNoaWVyIGNvbnRpZW50ICVzIGVucmVnaXN0cmVtZW50cy4iOw0KJGxhbmdbImltcG9ydF9kZWxldGUiXSA9ICJFZmZhY2VyIGxlIGNvbnRlbnUgZGUgbGEgdGFibGUgYXZhbnQgbCdpbXBvcnRhdGlvbj8iOw0KJGxhbmdbImltcG9ydHdoaWNobGV2ZWxzIl0gPSAiSW1wb3J0ZXIgcXVlbHMgdGFibGVzPyI7DQokbGFuZ1siaW1wb3J0X3RlbXBsYXRlcyJdID0gIkltcG9ydCBsZXMgZ2FiYXJpdHM/IjsNCiRsYW5nWyJjb3VsZG5vdGltcG9ydCJdID0gIklsIHkgYSBldSB1bmUgZXJyZXVyIGRhbnMgbCdpbXBvcnRhdGlvbiBkZTogIjsNCiRsYW5nWyJlcnJvcl9pbnZhbGlkeG1sIl0gPSAiTGUgZmljaGllciBxdWUgdm91cyBhdmV6IGNob2lzaSBuJ2VzdCBwYXMgdW4geG1sIHZhbGlkZSBwb3VyIGNlIG1vZHVsZS4iOw0KDQovLyBNT0RVTEUgSU5URVJBQ1RJT04NCiRsYW5nWyJwb3N0aW5zdGFsbCJdID0gIk1vZHVsZSBham91dCZlYWN1dGU7Ljxici8+U2kgY2UgbW9kdWxlIGEgZGVzIGNoYW1wcyBkZSBmaWNoaWVyLCB2ZXVpbGxleiB2b3VzIGFzc3VyZXIgcXVlIGxlcyByJmVhY3V0ZTtwZXJ0b2lyZSBhcHByb3ByaSZlYWN1dGU7cyBleGlzdGVudCBiaWVuIGRhbnMgbGUgZG9zc2llciBkJ3VwbG9hZHMuIE4nb3VibGlleiBwYXMgZGUgZG9ubmVyICZhZ3JhdmU7IHZvcyB1dGlsaXNhdGV1cnMgbGEgcGVybWlzc2lvbiBkJ3V0aWxpc2VyIGNlIG1vZHVsZSEiOw0KJGxhbmdbInBvc3R1bmluc3RhbGwiXSA9ICJNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4iOw0KJGxhbmdbInJlYWxseV91bmluc3RhbGwiXSA9ICJUb3V0IGxlIGNvbnRlbnUgZHUgbW9kdWxlIHNlcmEgcGVyZHUuIFBvdXJzdWl2cmU/IjsNCiRsYW5nWyJ1bmluc3RhbGxlZCJdID0gIk1vZHVsZSBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGU7LiI7DQokbGFuZ1siaW5zdGFsbGVkIl0gPSAiTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbCZlYWN1dGU7LiI7DQokbGFuZ1siaGVscCJdID0gIjxoMj5BaWRlIGcmZWFjdXRlO24mZWFjdXRlO3JhbGU8L2gyPjxici8+DQoJPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZT88L2gzPg0KCTxwPkNlIG1vZHVsZSBnw6hyZSBldCBhZmZpY2hlIGRlcyBjYXRhbG9ndWVzIGQnYWxidW1zIHZpZCZlYWN1dGU7by48L3A+DQoJPGJyLz4NCgk8aDM+Q29tbWVudCBsJ3V0aWxpc2VyPzwvaDM+DQoJPGJyLz4NCgk8aDQ+UGVybWlzc2lvbnM8L2g0Pg0KCTxwPkF2YW50IGRlIGQmZWFjdXRlO2J1dGVyLCBhc3N1cmV6LXZvdXMgcXVlIGxlcyB1dGlsaXNhdGV1cnMgb250IGxlcyBwZXJtaXNzaW9ucyBhcHByb3ByaSZlYWN1dGU7cy48L3A+DQoJU2kgdm91cyBuJ3V0aWxpc2V6IHBhcyBsJ29wdGlvbiBkZSBwZXJzb25uYWxpc2F0aW9uIGRlcyByZXN0cmljdGlvbnMgZCdhY2PDqHMgKHZvaXIgbGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMpLCANCglsYSBwZXJtaXNzaW9uIFwiSG9zdGVkVmlkZW9BbGJ1bXM6IE5vcm1hbCB1c2VyXCIgIHNlcmEgc3VmZmlzYW50ZSBwb3VyIGxlIG1vZHVsZS4gRGFucyBsJ29uZ2xldCBkZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcywgdm91cyBwb3V2ZXogY2hvaXNpciBxdWVscyBvbmdsZXRzDQoJc2Vyb250IG1vbnRyw6lzIGF1eCB1dGlsaXNhdGV1cnMgbm9ybWF1eC4gU2V1bCBsJ2FkbWluaXN0cmF0ZXVyIGV0IGxlcyB1dGlsaXNhdGV1cnMgYXlhbnQgbGEgcGVybWlzc2lvbiBcIkhvc3RlZFZpZGVvQWxidW1zOiBBZHZhbmNlZFwiIGF1cm9udCBhY2MmZWFjdXRlO3MgDQoJw6AgbCdvbmdsZXQgZGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMuPGJyLz4NCglTaSB2b3VzIGQmZWFjdXRlO3NpcmV6IGQmZWFjdXRlO2ZpbmlyIGRlcyBwZXJtaXNzaW9ucyBzcCZlYWN1dGU7Y2lmaXF1ZXMgcGFyIG5pdmVhdSwgYWN0aXZleiBsJ29wdGlvbiBkZSByZXN0cmljdGlvbiBkJ2FjYyZlYWN1dGU7c24gZGFucyAgbCdvbmdsZXQgZGVzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMNCglldCBkb25uZXogbGEgcGVybWlzc2lvbiBcIkhvc3RlZFZpZGVvQWxidW1zOiBNYW5hZ2UgbmFtZV9vZl9sZXZlbFwiIGF1eCB1dGlsaXNhdGV1cnMgYXBwcm9wcmkmZWFjdXRlO3MuPC9wPg0KCTxwPlBvdXIgYXBwZWxlciBsZSBtb2R1bGUsIHV0aWxpc2V6IGxhIGJhbGlzZSBzdWl2YW50ZSA6PGJyLz4NCgkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIn08L3A+DQoJCQkJPHA+RGFucyBjZSBjYXMgdW5lIGxpc3RlIGRlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGR1IGRlcm5pZXIgbml2ZWF1ICh2aWRlbykgc2VyYSBhZmZpY2gmZWFjdXRlO2UuIFBvdXIgc3AmZWFjdXRlO2NpZmllciB1biBuaXZlYXUsIHV0aWxpc2V6IGxlIHBhcmFtJmVncmF2ZTt0cmUgXCJ3aGF0XCIgOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiB3aGF0PVwidmlkZW9cIn08YnIvPg0KCQkJCTxpPkxlcyB2YWxldXJzIHBvc3NpYmxlcyBwb3VyIFwid2hhdFwiIHNvbnQgOiBjYXRlZ29yeSwgYWxidW0sIHZpZGVvPC9pPjwvcD4NCgkJCQk8cD5Wb3VzIHBvdXZleiBhdXNzaSBkZW1hbmRlciBsZXMgJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBxdWkgYXBwYXJ0aWVubmVudCAmYWdyYXZlOyB1biBwYXJlbnQgc3AmZWFjdXRlO2NpZmlxdWU6PGJyLz4NCgkJCQl7Y21zX21vZHVsZSBtb2R1bGU9XCJIb3N0ZWRWaWRlb0FsYnVtc1wiIHBhcmVudD1cImFsaWFzX29mX3BhcmVudFwifTwvcD4NCgkJCQk8cD5Wb3VzIHBvdXZleiBmaW5hbGVtZW50IGFwcGVsZXIgdW4gZWFjdXRlO2xlYWN1dGU7bWVudCBlbiBwYXJ0aWN1bGllcjo8YnI+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiBhbGlhcz1cImFsaWFzX29mX2l0ZW1cIn08L3A+DQoJCQkJPGJyLz48aDI+UyZlYWN1dGU7cGFyYXRpb24gZW4gcGFnZXM8L2gyPg0KCQkJCTxwPlZvdXMgcG91dmV6IGxpbWl0ZXIgbGUgbm9tYnJlIGQnJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBkZXZhbnQgJmVjaXJjO3RyZSBhZmZpY2gmZWFjdXRlO3Mgc3VyIHVuZSBtJmVjaXJjO21lIHBhZ2U6PGJyLz4NCgkJCQl7Y21zX21vZHVsZSBtb2R1bGU9XCJIb3N0ZWRWaWRlb0FsYnVtc1wiIG5icGVycGFnZT1cIjVcIn08YnIvPg0KCQkJCURhbnMgbGUgZ2FiYXJpdCwgdm91cyBwb3V2ZXogY29uc3RydWlyZSBsZSBtZW51IGRlcyBwYWdlcyAmYWdyYXZlOyBsJ2FpZGUgZGVzIGJhbGlzZXMgc3VpdmFudGVzOjxici8+DQoJCQkJeyIuJyQnLiJwYWdlX3Nob3dpbmd9LCB7Ii4nJCcuInBhZ2VfdG90YWxpdGVtc30sIHsiLickJy4icGFnZV9wYWdlbnVtYmVyc30sIHsiLickJy4icGFnZV9uZXh0fSwgeyIuJyQnLiJwYWdlX3ByZXZpb3VzfTwvcD4NCgkJCQk8cD5EZXMgY2xhc3NlcyBvbnQgJmVhY3V0ZTt0JmVhY3V0ZTsgYXNzaWduJmVhY3V0ZTtlcyBhdXggJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBkdSBtZW51IGRlIHBhZ2UgcG91ciBxdWUgdm91cyBwdWlzc2V6IGxlIHBlcnNvbm5hbGlzZXIuPC9wPg0KCQkJCTxici8+PGgyPlVzYWdlIGRlcyByZXF1JmVjaXJjO3RlczwvaDI+DQoJCQkJPHA+UG91ciBvYnRlbmlyIHVuZSBsaXN0ZSBkJyZlYWN0dWU7bCZlYWN0dWU7bWVudHMgcmVuY29udHJhbnQgZGVzIGNyaXQmZWdyYXZlO3JlcyBzcCZlYWN0dWU7Y2lmaXF1ZXMsIHZvdXMgcG91dmV6IGNyJmVhY3R1ZTtlciBkZXMgcmVxdSZlY2lyYzt0ZXMgJmFncmF2ZTsgbCdhaWRlIGRlIGwnb25nbGV0IFJlcXUmZWNpcmM7dGVzIGRlIGwnYWRtaW5pc3RyYXRpb24gZHUgbW9kdWxlLiBWb3VzIHBvdXJyZXogZW5zdWl0ZSBhcHBlbGVyIGNldHRlIHJlcXUmZWNpcmM7dGUgYXZlYyBsZSBwYXJhbSZlZ3JhdmU7dHJlIFwicXVlcnlcIjo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgcXVlcnk9XCIxXCJ9PC9wPg0KCQkJCTxwPjxpPlNpIGwnb3B0aW9uIGRlIHBlcm1ldHRyZSBsZXMgcmVxdSZlY2lyYzt0ZXMgc3FsIG1hbnVlbGxlcyBlc3QgYWN0aXYmZWFjdXRlO2U8L2k+ICh2b2lyIGwnb25nbGV0IFwiU2V0dGluZ3NcIiksIHZvdXMgcG91dmV6IGF1c3NpIGZvdXJuaXIgbGEgcmVxdSZlY2lyYzt0ZSBzcWwgbWFudWVsbGVtZW50IGF2ZWMgbGUgcGFyYW0mZWdyYXZlO3RyZSBcInF1ZXJ5XCIuIFBhciBleGVtcGxlOjxici8+DQoJCQkJe2Ntc19tb2R1bGUgbW9kdWxlPVwiSG9zdGVkVmlkZW9BbGJ1bXNcIiB3aGF0PVwidmlkZW9cIiBxdWVyeT1cIkEuZGF0ZV9tb2RpZmllZCA+ICcyMDA5LTAzLTE1JyBBTkQgQS5hY3RpdmUgPSAxXCJ9PGJyLz4NCgkJCQlMYSByZXF1JmVjaXJjO3RlIG5lIHBldXQgY29udGVuaXIgcXVlIGxhIGNsYXVzZSBXSEVSRSBldCBuZSBkZXZyYWl0IHBhcyBjb250ZW5pciBsYSBjb21tYW5kZSBXSEVSRSBlbGxlLW0mZWNpcmM7bWUuIFBvdXIgJmVhY3V0ZTt2aXRlciBsZXMgcHJvYmwmZWdyYXZlO21lcywgbGUgcHImZWFjdXRlO2ZpeGUgXCJBLlwiIGRldnJhaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBkZXZhbnQgbGVzIG5vbXMgZGUgY2hhbXBzIChcIkIuXCIgcGVybWV0IGQnYWNjJmVhY3V0ZTtkZXIgYXV4IGNoYW1wcyBkdSBwYXJlbnQsIGxvcnNxdWUgYXBwbGljYWJsZSkuPGJyLz4NCgkJCQlHYXJkZXogZW4gdCZlY2lyYzt0ZSBxdSdhY3RpdmVyIGNldHRlIGZvbmN0aW9uIGltcGxpcXVlIGRlIGRvbm5lciB1biBhY2MmZWdyYXZlO3Mgc3FsIGF1eCB1dGlsaXNhdGV1cnMgcG91dmFudCBhY2MmZWFjdXRlO2RlciBhdXggZ2FiYXJpdHMgZXQgc295ZXogcHJ1ZGVudHMhPC9wPg0KCQkJCTxici8+PGgyPkwnYWN0aW9uIGVtYmVkdmlkZW88L2gyPg0KCQkJCTxwPlBvdXIgaW1icmlxdWVyIHVuZSB2aWQmZWFjdXRlO28gw6AgbCdpbnQmZWFjdXRlO3JpZXVyIGQndW4gZ2FiYXJpdCBIVkEsIHZvdXMgcG91dmV6IHV0aWxpc2VyIGwnYWN0aW9uIDxiPlwiZW1iZWR2aWRlb1wiPC9iPjo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgYWN0aW9uPVwiZW1iZWR2aWRlb1wiIGl0ZW09JGl0ZW19PGJyLz4NCgkJCQlMZSBwYXJhbSZlZ3JhdmU7IFwiaXRlbT0kaXRlbVwiIGVzdCBvYmxpZ2F0b2lyZS48YnIvPg0KCQkJCTxici8+PGgyPkwnYWN0aW9uIHNpdGVtYXA8L2gyPg0KCQkJCTxwPlNpIGxlIG1vZHVsZSBuZSBwYXJ0YWdlIHBhcyBsZXMgaXRlbXMsIHZvdXMgcG91dmV6IHV0aWxpc2VyIGwnYWN0aW9uIDxiPlwic2l0ZW1hcFwiPC9iPiBwb3VyIGNyJmVhY3V0ZTtlciB1biBzaXRlbWFwIGR1IG1vZHVsZTo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgYWN0aW9uPVwic2l0ZW1hcFwifTxici8+DQoJCQkJVm91cyBwb3V2ZXogcyZlYWN1dGU7bGVjdGlvbm5lciBsZXMgbml2ZWF1eCAmYWdyYXZlOyBsJ2FpZGUgZHUgcGFyYW0mZWdyYXZlO3RyZSBcIndoYXRcIiwgZXQgcG91dmV6IGNob2lzaXIgcGx1cyBkJ3VuIG5pdmVhdSBhdmVjIGxhIGZvcm1lIHdoYXQ9XCJsZXZlbDF8bGV2ZWwyXCIuPGJyLz4NCgkJCQlMZXMgYXV0cmVzIHBhcmFtJmVncmF2ZTt0cmVzIGRpc3BvbmlibGVzIHNvbnQgXCJkZXRhaWxwYWdlXCIgZXQgXCJpbmxpbmVcIi48YnIvPg0KCQkJCVBvdXIgY3ImZWFjdXRlO2VyIHVuIHNpdGVtYXAgZ29vZ2xlLCB2b2lyIGxlIDxhIGhyZWY9XCIuLi9tb2R1bGVzL0hvc3RlZFZpZGVvQWxidW1zL2RvYy9mYXEuaHRtbCNxMTZcIiB0YXJnZXQ9XCJfYmxhbmtcIj5GQVE8L2E+LjwvcD4NCgkJCQk8YnIvPjxoMj5MJ2FjdGlvbiBkZSByZWNoZXJjaGU8L2gyPg0KCQkJCTxwPlZvdXMgcG91dmV6IHV0aWxpc2VyIGwnYWN0aW9uIFwic2VhcmNoXCIgcG91ciBhZmZpY2hlciB1biBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZTo8YnIvPg0KCQkJCXtjbXNfbW9kdWxlIG1vZHVsZT1cIkhvc3RlZFZpZGVvQWxidW1zXCIgYWN0aW9uPVwic2VhcmNoXCIgd2hhdD1cInZpZGVvXCJ9PGJyLz4NCgkJCQlVdGlsaXNleiBsZSBwYXJhbSZlZ3JhdmU7dHJlIFwic2VhcmNobW9kZVwiIHBvdXIgY2hvaXNpciBsYSByZWNoZXJjaGUgc2ltcGxlIG91IGF2YW5jJmVhY3V0ZTtlIChwYXIgZCZlYWN1dGU7ZmF1dCkuIE5vdGV6IHF1ZSB2b3VzIG5lIHBvdXZleiBwYXMgZmFpcmUgdW5lIHJlY2hlcmNoZSBlbiBtb2RlIGF2YW5jJmVhY3V0ZTsgZGFucyB0b3VzIGxlcyBuaXZlYXV4IGVuIG0mZWNpcmM7bWUgdGVtcHMuPGJyLz4NCgkJCQlMZXMgcGFyYW0mZWdyYXZlO3RyZXMgc3VpdmFudHMgcGV1dmVudCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7cyBhdmVjIGwnYWN0aW9uIFwic2VhcmNoXCI6IHdoYXQsIGxpbWl0LCBuYnBlcnBhZ2UsIG9yZGVyYnksIGRldGFpbHBhZ2UsIGxpc3R0ZW1wbGF0ZSwgaW5saW5lLCBzZWFyY2htb2RlLjwvcD48YnIvPjxici8+DQoJCQkJPHA+UG91ciBkYXZhbnRhZ2UgZCdhaWRlLCB2b3VzIHBvdXZleiBjb25zdWx0ZXIgbGUgPGEgaHJlZj1cIi4uL21vZHVsZXMvSG9zdGVkVmlkZW9BbGJ1bXMvZG9jL2ZhcS5odG1sXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RkFRPC9hPi48L3A+PGJyLz48YnIvPiI7DQoNCg0KDQovL0VWRU5UUw0KJGxhbmdbImV2ZW50ZGVzY19tb2RpZmllZCJdID0gIkFwcGVsJmVhY3V0ZTsgYXByJmVncmF2ZTtzIHF1J3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBzb2l0IG1vZGlmaSZlYWN1dGU7LiI7DQokbGFuZ1siZXZlbnRkZXNjX2RlbGV0ZWQiXSA9ICJBcHBlbCZlYWN1dGU7IGFwciZlZ3JhdmU7cyBxdSd1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgc29pdCBzdXBwcmltJmVhY3V0ZTsuIjsNCiRsYW5nWyJldmVudGRlc2NfYWRkZWQiXSA9ICJBcHBlbCZlYWN1dGU7IGFwciZlZ3JhdmU7cyBxdSd1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgc29pdCBham91dCZlYWN1dGU7LiI7DQokbGFuZ1siZXZlbnRoZWxwX21vZGlmaWVkIl0gPSAiUGFyYW0mZWdyYXZlO3RyZXM6IFwid2hhdFwiPT5uaXZlYXUgZGUgbCcmZWFjdXRlO2wmZWFjdXRlO21lbnQsIFwiaXRlbWlkXCI9PmlkIGRlICBsJyZlYWN1dGU7bCZlYWN1dGU7bWVudCwgXCJhbGlhc1wiPT5hbGlhcyBkZSBsJyZlYWN1dGU7bCZlYWN1dGU7bWVudC4iOw0KJGxhbmdbImV2ZW50aGVscF9kZWxldGVkIl0gPSAiUGFyYW0mZWdyYXZlO3RyZXM6IFwid2hhdFwiPT5uaXZlYXUgZGUgbCcmZWFjdXRlO2wmZWFjdXRlO21lbnQuIjsNCiRsYW5nWyJldmVudGhlbHBfYWRkZWQiXSA9ICJQYXJhbSZlZ3JhdmU7dHJlczogXCJ3aGF0XCI9Pm5pdmVhdSBkZSBsJyZlYWN1dGU7bCZlYWN1dGU7bWVudCwgXCJpdGVtaWRcIj0+aWQgZGUgIGwnJmVhY3V0ZTtsJmVhY3V0ZTttZW50LCBcImFsaWFzXCI9PmFsaWFzIGRlIGwnJmVhY3V0ZTtsJmVhY3V0ZTttZW50LiI7DQoNCg0KLy9QUkVGRVJFTkNFUw0KJGxhbmdbInByZWZlcmVuY2VzIl0gPSAiUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyI7DQokbGFuZ1sicHJlZl90YWJkaXNwbGF5Il0gPSAiT25nbGV0cyBkdSBwYW5uZWF1IGQnYWRtaW5pc3RyYXRpb24gdmlzaWJsZXMgcG91ciBsJ3V0aWxpc2F0ZXVyIG5vcm1hbCI7DQokbGFuZ1siaGVscF90YWJkaXNwbGF5Il0gPSAiKExlcyB1dGlsaXNhdGV1cnMgbm9ybWF1eCBzb250IGNldXggYXV4cXVlbHMgbGEgcGVybWlzc2lvbiBcIkhvc3RlZFZpZGVvQWxidW1zOiBub3JtYWwgdXNlclwiIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgYXR0cmlidSZlYWN1dGU7ZS4gVW5lIHBlcm1pc3Npb24gc3AmZWFjdXRlO2NpZmlxdWUgJmFncmF2ZTsgdW4gbml2ZWF1IGEgcHJpb3JpdCZlYWN1dGU7IHN1ciBjZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcy4pIjsNCiRsYW5nWyJwcmVmX3NlYXJjaG1vZHVsZV9pbmRleCJdID0gIkluZGV4ZXIgbGVzIG5pdmVhdXggc3VpdmFudCBwb3VyIGxlIG1vZHVsZSBkZSByZWNoZXJjaGUiOw0KJGxhbmdbImhlbHBfc2VhcmNobW9kdWxlX2luZGV4Il0gPSAiKFNhbnMgZWZmZXQgc3VyIGwnYWN0aW9uIFwic2VhcmNoXCIgZGUgY2UgbW9kdWxlLiBOb3RleiBxdSdhcHImZWdyYXZlO3MgYXZvaXIgY2hhbmcmZWFjdXRlOyBjZXMgcGFyYW0mZWdyYXZlO3RyZXMsIHZvdXMgZGV2cmV6IHImZWFjdXRlO2luZGV4ZXIgcG91ciB2b3VzIGQmZWFjdXRlO2JhcnJhc3NlciBkZXMgZG9ubiZlYWN1dGU7ZXMgZCZlYWN1dGU7aiZhZ3JhdmU7IGluZGV4JmVhY3V0ZTtlcy4gUG91ciBjZSBmYWlyZSwgcmVuZGV6LXZvdXMgZGFucyBFeHRlbnNpb25zLSZndDtSZWNoZXJjaGUuKSI7DQokbGFuZ1sicHJlZl9uZXdpdGVtc2ZpcnN0Il0gPSAiTGVzIG5vdXZlYXV4ICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgZGV2cmFpZW50IGFwcHJhJmljaXJjO3RyZSBlbiBoYXV0IGRlIGxhIGxpc3RlIHBvdXIgbGVzIG5pdmVhdXggc3VpdmFudHMiOw0KJGxhbmdbImhlbHBfbmV3aXRlbXNmaXJzdCJdID0gIihBdXRyZW1lbnQsIGlscyBhcHBhcmEmaWNpcmM7dHJvbnQgYmllbiBzJnVjaXJjO3IgYXUgYmFzIGRlIGxhIGxpc3RlKSI7DQokbGFuZ1sicHJlZl9yZXN0cmljdF9wZXJtaXNzaW9ucyJdID0gIkxhIG1hbmlwdWxhdGlvbiBkJyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZXZyYWl0LWVsbGUgJmVjaXJjO3RyZSByZXN0cmVpbnRlIGF1eCB1dGlsaXNhdGV1cnMgcG9zcyZlYWN1dGU7ZGFudCBsZXMgcGVybWlzc2lvbnMgc3AmZWFjdXRlO2NpZmlxdWVzIGF1IG5pdmVhdSBjb25jZXJuJmVhY3V0ZTs/IjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfZmlsdGVyIl0gPSAiQWZmaWNoZXIgbGUgZmlsdHJlIHN1ciBsZSBwYW5uZWF1IGQnYWRtaW5pc3RyYXRpb24/IjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfaW5zdGFudHNlYXJjaCJdID0gIkFmZmljaGVyIGxhIHJlY2hlcmNoZXIgaW5zdGFudGFuJmVhY3V0ZTtlIHN1ciBsZSBwYW5uZWF1IGQnYWRtaW5pc3RyYXRpb24/IjsNCiRsYW5nWyJwcmVmX2Rpc3BsYXlfaW5zdGFudHNvcnQiXSA9ICJBZmZpY2hlciBsZXMgbGllbnMgZGUgY2xhc3NlbWVudCBpbnN0YW50YW4mZWFjdXRlOyBwYXIgY29sb25uZT8iOw0KJGxhbmdbInByZWZfZWRpdGFibGVfYWxpYXNlcyJdID0gIkwnYWxpYXMgZGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgZGV2cmFpdC1pbCAmZWNpcmM7dHJlIG1hbnVlbGxlbWVudCAmZWFjdXRlO2RpdGFibGU/IjsNCiRsYW5nWyJwcmVmX2ZvcmNlX2xpc3QiXSA9ICJMYSBwYXJhbSZlZ3JhdmU7dHJlIFwiZm9yY2VsaXN0XCIgZGV2cmFpdC1pbCAmZWNpcmM7dHJlIGFjdGl2JmVhY3V0ZTsgcGFyIGQmZWFjdXRlO2ZhdXQ/IChsJ2FmZmljaGFnZSBkZSBsaXN0ZSBzZXJhIHV0aWxpcyZlYWN1dGU7IG0mZWNpcmM7bWUgbG9yc3F1J2lsIG4neSBhIHF1J3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCAmYWdyYXZlOyBhZmZpY2hlci4pIjsNCiRsYW5nWyJwcmVmX2RlbGV0ZV9maWxlcyJdID0gIkxvcnNxdSd1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZXN0IHN1cHByaW0mZWFjdXRlOywgbGVzIGZpY2hpZXJzIGFzc29jaSZlYWN1dGU7cyBkZXZyYWllbnQtaWxzICZlY2lyYzt0cmUgYXVzc2kgc3VwcHJpbSZlYWN1dGU7cz8iOw0KJGxhbmdbInByZWZfYWxsb3dfc3FsIl0gPSAiUGVybWV0dHJlIGRlcyByZXF1JmVjaXJjO3RlcyBTUUwgbWFudWVsbGVzPyI7DQokbGFuZ1sicHJlZl91c2VfaGllcmFyY2h5Il0gPSAiQWZmaWNoZXIgbGEgaGkmZWFjdXRlO3JhcmNoaWUgY29tcGwmZWdyYXZlO3RlIGRhbnMgbGUgZmlsdHJlIGV0IGxlIGNob2l4IGR1IHBhcmVudD8gKHBhbm5lYXUgZCdhZG1pbmlzdHJhdGlvbikiOw0KJGxhbmdbInByZWZfb3JkZXJieW5hbWUiXSA9ICJPcmRvbm5lciBsZXMgZHJvcGRvd25zIGRlIHBhcmVudCBwYXIgbm9tPyI7DQokbGFuZ1sicHJlZl9zaG93dGh1bWJuYWlscyJdID0gIkFmZmljaGVyIGxlcyBpbWFnZXMgcGx1dCZvY2lyYzt0IHF1J3VuIHRhYmxlYXUgbG9ycyBkZSBsYSBzJmVhY3V0ZTtsZWN0aW9uIGQnaW1hZ2VzPyI7DQokbGFuZ1sicHJlZl9tYXhzaG93bnBhZ2VzIl0gPSAiTm9tYnJlIG1heGltYWwgZGUgcGFnZXMgYWZmaWNoJmVhY3V0ZTtlcyBkYW5zIGxlIG1lbnUgZGUgcGFnaW5hdGlvbjogIjsNCiRsYW5nWyJwcmVmX2F1dG9pbmNyZW1lbnRfYWxpYXMiXSA9ICJJbmNyJmVhY3V0ZTttZW50ZXIgYXV0b21hdGlxdWVtZW50IGxlcyBhbGlhcyBlbiBjYXMgZGUgbm9tcyBpZGVudGlxdWVzPyI7DQokbGFuZ1sicHJlZl9kZWNvZGVlbnRpdGllcyJdID0gIkQmZWFjdXRlO2NvZGVyIGxlcyBlbnRpdCZlYWN1dGU7cyBodG1sIGRhbnMgbG9ycyBkJ2Vudm9pIGRlIGZvcm11bGFpcmVzIGZyb250LWVuZC4iOw0KJGxhbmdbInByZWZfZnJvbnRlbmQiXSA9ICJGcm9udGVuZCBFZGl0IjsNCiRsYW5nWyJoZWxwX2Zyb250ZW5kIl0gPSAiUG91ciBkZXMgcmFpc29ucyBkZSBzJmVhY3V0ZTtjdXJpdCZlYWN1dGU7LCBjZXR0ZSBmb25jdGlvbm5hbGl0JmVhY3V0ZTsgZGV2cmFpdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7ZSBjb25qb2ludGVtZW50IGF2ZWMgbGUgbW9kdWxlIEZyb250IEVuZCBVc2Vycy4gVm9pciBsZSA8YSBocmVmPVwibW9kdWxlcy9Ib3N0ZWRWaWRlb0FsYnVtcy9kb2MvZmFxLmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5GYXE8L2E+IHBvdXIgZGUgbCdhaWRlIGNvbmNlcm5hbnQgbGVzIHBlcm1pc3Npb25zLiI7DQokbGFuZ1sicHJlZl9mZV93eXNpd3lnIl0gPSAiQWN0aXZlciBsZSB3eXNpd3lnIGRhbnMgbGUgZnJvbnRlbmQgKGRvaXQgJmVjaXJjO3RyZSBhY3RpdiZlYWN1dGU7IGRhbnMgbGVzIFBhcmFtJmVncmF2ZTt0cmVzIGcmZWFjdXRlO24mZWFjdXRlO3JhdXggYXVzc2kpIjsNCiRsYW5nWyJwcmVmX2ZlX2RlY29kZWVudGl0aWVzIl0gPSAiRCZlYWN1dGU7Y29kZXIgbGVzIGVudGl0JmVhY3V0ZTtzIGh0bWwuIENlY2kgbidlc3QgcGFzIHJlY29tbWFuZCZlYWN1dGU7LiI7DQokbGFuZ1sicHJlZl9mZV9hbGxvd2ZpbGVzIl0gPSAiUGVybWV0dHJlIGwndXBsb2FkIGRlIGZpY2hpZXJzLiI7DQokbGFuZ1sicHJlZl9mZV9hbGxvd25hbWVjaGFuZ2UiXSA9ICJQZXJtZXR0cmUgYXV4IHV0aWxpc2F0ZXVycyBmcm9udGVuZCBkZSBjaGFuZ2UgbGUgbm9tIChldCBkb25jIGwnYWxpYXMpIGRlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnQgcXUnaWxzIG1vZGlmaWVudC4iOw0KJGxhbmdbInByZWZfZmVfYWxsb3dhZGRuZXciXSA9ICJQZXJtZXR0cmUgYXV4IHV0aWxpc2F0ZXVycyBmcm9udGVuZCBkJ2Fqb3V0ZXIgZGUgbm91dmVhdXggJmVhY3V0ZTtsJmVhY3V0ZTttZW50cy4iOw0KJGxhbmdbInByZWZfZmVfdXNlY2FwdGNoYSJdID0gIlV0aWxpc2VyIGxlIGNhcHRjaGE/IChtb2R1bGUgQ2FwdGNoYSByZXF1aXMpIjsNCiRsYW5nWyJwcmVmX2ZlX2FmdGVyc3VibWl0Il0gPSAiVW5lIGZvaXMgbGUgZm9ybXVsYWlyZSBlbnZveWVyLCByZWRpcmlnZXIgdmVycyAiOw0KJGxhbmdbInByZWZfZmVfbWF4ZmlsZXNpemUiXSA9ICJUYWlsbGUgbWF4aW1hbGUgZGVzIGZpY2hpZXJzIHVwbG9hZCZlYWN1dGU7cyAmYWdyYXZlOyB0cmF2ZXJzIGxlIGZyb250ZW5kIChlbiBieXRlcywgbmUgcGV1dCBleGMmZWFjdXRlO2RlciBsZXMgbGltaXRlcyBkdSBwaHAuaW5pKS4iOw0KJGxhbmdbInByZWZfYWxsb3dfY29tcGxleF9vcmRlciJdID0gIlBlcm1ldHRyZSBsZXMgcGFyYW0mZWdyYXZlO3RyZXMgXCJvcmRlcmJ5XCIgY29tcGxleGVzIChiZXRhKS4iOw0KJGxhbmdbInByZWZfYWRtaW5wYWdlcyJdID0gIk5vbWJyZSBkJyZlYWN1dGU7bCZlYWN1dGU7bWVudHMgcGFyIHBhZ2UgZGFucyBsZXMgcGFubmVhdXggZCdhZG1pbmlzdHJhdGlvbiAoMCA9IHBhcyBkZSBwYWdpbmF0aW9uKS4iOw0KJGxhbmdbInByZWZfbG9hZF9uYmNoaWxkcmVuIl0gPSAiQ2hhcmdlciBsZSBub21icmUgZCdlbmZhbnRzIChpdGVtLSZndDtuYmNoaWxkcmVuKSBwb3VyIHRvdXMgbGVzIGl0ZW1zKT8iOw0KJGxhbmdbInByZWZfbG9hZF9uZXh0cHJldmlvdXMiXSA9ICJDaGFyZ2VyIGxlcyBsaWVucyB2ZXJzIGxlcyAmZWFjdXRlO2wmZWFjdXRlO21lbnRzIHByJmVhY3V0ZTtjJmVhY3V0ZTtkYW50IGV0IHN1aXZhbnQ/IChkJmVhY3V0ZTt0YWlsIHNldWxlbWVudCkiOw0KJGxhbmdbInByZWZfdXNlX3Nlc3Npb24iXSA9ICJVdGlsaXNlciBsYSBzZXNzaW9uIHBvdXIgZW5yZWdpc3RyZXIgbGVzIGZpbHRyZXMgZGFucyBsZSBwYW5uZWF1IGQnYWRtaW5pc3RyYXRpb24uIjsNCiRsYW5nWyJwcmVmX2xldmVscGFnaW5hdGlvbiJdID0gIk5vbWJyZSBkJyZlYWN1dGU7bCZlYWN1dGU7bWVudCBwYXIgcGFnZSBwb3VyIGxlIGZyb250ZW5kIjsNCiRsYW5nWyJoZWxwX2xldmVscGFnaW5hdGlvbiJdID0gIihMYWlzc2VyIHZpZGUgb3UgbWV0dHJlIDAgcG91ciBkJmVhY3V0ZTtzYWN0aXZlciBsYSBwYWdpbmF0aW9uIHBhciBkJmVhY3V0ZTtmYXV0LiBMZSBwYXJhbSZlZ3JhdmU7dHJlIG5icGVycGFnZSBhIHByJmVhY3V0ZTtzJmVhY3V0ZTthbmNlIHN1ciBjZXMgY29uZmlndXJhdGlvbnMuKSI7DQoNCi8vUEFSQU1FVEVSUw0KJGxhbmdbInBoZWxwX2FjdGlvbiJdID0gIkFjdGlvbnMgcG9zc2libGVzOiBcImxpbmtcIiwgXCJzZWFyY2hcIiwgXCJicmVhZGNydW1ic1wiLCBcImRlZmF1bHRcIiwgXCJzaXRlbWFwXCIuIjsNCiRsYW5nWyJwaGVscF9hY3Rpb24iXSA9ICJTb2l0IFwibGlua1wiLCBcInNlYXJjaFwiLCBcImJyZWFkY3J1bWJzXCIgb3UgXCJkZWZhdWx0XCIgKGV0IHBvc3NpYmxlbWVudCBcInNpdGVtYXBcIiBldCBcImZyb250ZW5kX2VkaXRcIikuIjsNCiRsYW5nWyJwaGVscF93aGF0Il0gPSAiUGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgbGUgbml2ZWF1LiBMZXMgdmFsZXVycyBwb3NzaWJsZXMgc29udCA6IDxpPmNhdGVnb3J5LCBhbGJ1bSwgdmlkZW88L2k+IjsNCiRsYW5nWyJwaGVscF9hbGlhcyJdID0gIkFsaWFzIGRlIGwnJmVhY3V0ZTtsJmVhY3V0ZTttZW50IHF1ZSB2b3VzIHZvdWxleiBhZmZpY2hlci4iOw0KJGxhbmdbInBoZWxwX3BhcmVudCJdID0gIlNpIHZvdXMgdm91bGV6IGxpbWl0ZXIgbGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgYWZmaWNoJmVhY3V0ZTtzICZhZ3JhdmU7IGNldXggYXBwYXJ0ZW5hbnQgJmFncmF2ZTsgdW4gcGFyZW50IHBhcnRpY3VsaWVyLCBlbnRyZXogaWNpIGwnYWxpYXMgZHUgcGFyZW50LiI7DQokbGFuZ1sicGhlbHBfbGltaXQiXSA9ICJMaW1pdGUgbGUgbm9tYnJlIGQnaXRlbSByZXRvdXJuJmVhY3V0ZTtzIHBhciBsYSByZXF1JmVjaXJjO3RlICgwID0gcGFzIGRlIGxpbWl0ZSkiOw0KJGxhbmdbInBoZWxwX25icGVycGFnZSJdID0gIkxpbWl0ZSBsZSBub21icmUgZCcmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGFmZmljaCZlYWN1dGU7cyBwYXIgcGFnZS4iOw0KJGxhbmdbInBoZWxwX29yZGVyYnkiXSA9ICJWYWxldXJzIHBvc3NpYmxlcyA6IFwibW9kaWZpZWRcIiwgXCJjcmVhdGVkXCIgb3UgbGUgbm9tIGQndW4gY2hhbXAuIFRvdXRlIGF1dHJlIHZhbGV1ciBvcmRvbm5lcmEgZW4gZm9uY3Rpb24gZGUgbCdvcmRyZSBub3JtYWwgZGVzIGl0ZW1zLiI7DQokbGFuZ1sicGhlbHBfZGV0YWlscGFnZSJdID0gIlNwJmVhY3V0ZTtjaWZpZSBsJ2FsaWFzIGRlIGxhIHBhZ2UgdmVycyBsYXF1ZWxsZSBwb2ludGVyb250IGxlcyBsaWVucyAoc2kgcmllbiBuJ2VzdCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7LCBsYSBwYWdlIGFjdHVlbGxlIGVzdCB1dGlsaXMmZWFjdXRlO2UpIjsNCiRsYW5nWyJwaGVscF9zaG93ZGVmYXVsdCJdID0gIk1ldHRyZSBcInRydWVcIiBzaSB2b3VzIHZvdWxleiBhZmZpY2hlciBsJyZlYWN1dGU7bCZlYWN1dGU7bWVudCBwYXIgZCZlYWN1dGU7ZmF1dC4iOw0KJGxhbmdbInBoZWxwX3JhbmRvbSJdID0gIkVudHJleiB1biBub21icmUgcG91ciBhZmZpY2hlciBjZSBub21icmUgZCcmZWFjdXRlO2wmZWFjdXRlO21lbnRzIGFsJmVhY3V0ZTthdG9pcmVzLiI7DQokbGFuZ1sicGhlbHBfZmluYWx0ZW1wbGF0ZSJdID0gIlBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIGxlIGdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsJ2FmZmljaGFnZSBkJ3VuZSB2aWTDqW8gaG9ycyBsaXN0ZS4iOw0KJGxhbmdbInBoZWxwX2VtYmVkdGVtcGxhdGUiXSA9ICJQZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsZSBnYWJhcml0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgaW1icmlxdWVyIHVuZSB2aWRlbyAoZW1iZWRkaW5nKS4iOw0KJGxhbmdbInBoZWxwX2xpc3R0ZW1wbGF0ZSJdID0gIlBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIGxlIGdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsJ2FmZmljaGFnZSBkZSBsaXN0ZSBkJmVhY3V0ZTt0YWlsbCZlYWN1dGU7IGR1IG5pdmVhdSBmaW5hbC4iOw0KJGxhbmdbInBoZWxwX2ZvcmNlbGlzdCJdID0gIk1ldHRyZSAmYWdyYXZlOyAxIHNpIHZvdXMgdm91bGV6IGFmZmljaGVyIGVuIGZvcm1hdCBsaXN0IG0mZWNpcmM7bWUgbG9yc3F1J2lsIG4neSBhIHF1J3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCAoYWZmZWN0ZSBsZSBuaXZlYXUgZmluYWwgc2V1bGVtZW50KS4iOw0KJGxhbmdbInBoZWxwX2ludGVybmFsIl0gPSAiUG91ciB1c2FnZSBpbnRlcm5lOyBzcCZlYWN1dGU7Y2lmaWUgbGEgcGFnZSAobG9yc3F1ZSBuYnBlcnBhZ2UgZXN0IHV0aWxpcyZlYWN1dGU7LiI7DQokbGFuZ1sicGhlbHBfc2VhcmNobW9kZSJdID0gIlV0aWxpc2VyIGF2ZWMgbCdhY3Rpb24gXCJzZWFyY2hcIi4gTWV0dHJlIFwic2ltcGxlXCIgcG91ciBjaGVyY2hlciBkYW5zIHRvdXMgbGVzIGNoYW1wcywgZXQgXCJhZHZhbmNlZFwiIHBvdXIgY2hlcmNoZXIgZGFucyBkZXMgY2hhbXBzIHNwJmVhY3V0ZTtjaWZpcXVlcy4iOw0KJGxhbmdbInBoZWxwX3F1ZXJ5Il0gPSAiVXRpbGlzZXIgYXZlYyBsJ2FjdGlvbiBcImRlZmF1bHRcIi4gSW5kaXF1ZSBsJ2lkIGRlIGxhIHJlcXUmZWNpcmM7dGUgJmFncmF2ZTsgZXgmZWFjdXRlO2N1dGVyLiI7DQokbGFuZ1sicGhlbHBfaW5saW5lIl0gPSAiTWV0IGxlcyBsaWVucyBcImlubGluZVwiLiI7DQokbGFuZ1sicGhlbHBfdG9hY3Rpb24iXSA9ICJVdGlsaXNlciBhdmVjIGwnYWN0aW9uIFwibGlua1wiLiBJbmRpcXVlIHZlcnMgcXVlbGxlIGFjdGlvbiBsZSBsaWVuIGRldnJhIGRpcmlnZXIuIjsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24NCiRkYiA9ICYkdGhpcy0+Y21zLT5kYjsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCgkJDQovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UNCiR0YWJvcHRhcnJheSA9IGFycmF5KCJteXNxbCIgPT4gIlRZUEU9TXlJU0FNIik7DQoNCi8vIENyZWF0ZXMgdGhlIGNhdGVnb3J5IHRhYmxlDQokZmxkcyA9ICINCglkZXNjcmlwdGlvbiBDKDI1NSksDQoJaWQgSSBLRVksDQoJbmFtZSBDKDY0KSwNCglhbGlhcyBDKDY0KSwNCglpdGVtX29yZGVyIEksDQoJYWN0aXZlIEwsDQoJaXNkZWZhdWx0IEwsDQogICAgZGF0ZV9tb2RpZmllZCAiLkNNU19BRE9EQl9EVC4iLA0KCWRhdGVfY3JlYXRlZCAiLkNNU19BRE9EQl9EVC4iDQoJIjsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9jYXRlZ29yeSIsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfY2F0ZWdvcnlfc2VxIik7DQoNCg0KLy8gQ3JlYXRlcyB0aGUgYWxidW0gdGFibGUNCiRmbGRzID0gIg0KCWRlc2NyaXB0aW9uIEMoMjU1KSwNCglsYW5nIEMoMTApLA0KCWRlZmF1bHRfd2lkdGggSSwNCglkZWZhdWx0X2hlaWdodCBJLA0KCXBhcmVudCBJLA0KCWlkIEkgS0VZLA0KCW5hbWUgQyg2NCksDQoJYWxpYXMgQyg2NCksDQoJaXRlbV9vcmRlciBJLA0KCWFjdGl2ZSBMLA0KCWlzZGVmYXVsdCBMLA0KICAgIGRhdGVfbW9kaWZpZWQgIi5DTVNfQURPREJfRFQuIiwNCglkYXRlX2NyZWF0ZWQgIi5DTVNfQURPREJfRFQuIg0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW0iLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2FsYnVtX3NlcSIpOw0KDQoNCi8vIENyZWF0ZXMgdGhlIHZpZGVvIHRhYmxlDQokZmxkcyA9ICINCglkZXNjcmlwdGlvbiBDKDI1NSksDQoJc2l0ZSBJLA0KCXZpZGVvaWQgQyg2NCksDQoJd2lkdGggSSwNCgloZWlnaHQgSSwNCglwYXJlbnQgSSwNCglpZCBJIEtFWSwNCgluYW1lIEMoNjQpLA0KCWFsaWFzIEMoNjQpLA0KCWl0ZW1fb3JkZXIgSSwNCglhY3RpdmUgTCwNCglpc2RlZmF1bHQgTCwNCiAgICBkYXRlX21vZGlmaWVkICIuQ01TX0FET0RCX0RULiIsDQoJZGF0ZV9jcmVhdGVkICIuQ01TX0FET0RCX0RULiINCgkiOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3ZpZGVvIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV92aWRlb19zZXEiKTsNCg0KDQovLyBDcmVhdGUgdGhlIGZpZWxkb3B0aW9ucyB0YWJsZQ0KJGZsZHMgPSAiDQoJaWQgSSwNCglmaWVsZCBDKDEyOCksDQoJbmFtZSBDKDMyKSwNCglpdGVtX29yZGVyIEkNCgkiOw0KJHRhYmxlbmFtZSA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9maWVsZG9wdGlvbnMiOw0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCR0YWJsZW5hbWUsICRmbGRzLCAkdGFib3B0KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX2ZpZWxkb3B0aW9uc19zZXEiKTsNCg0KLy8gaW5zZXJ0IGRlZmF1bHQgdmlkZW8gc2l0ZXMNCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLiR0YWJsZW5hbWUuIiBTRVQgaWQ9PywgZmllbGQ9PywgbmFtZT0/LCBpdGVtX29yZGVyPT8iOw0KJHNpdGVzID0gYXJyYXkoInlvdXR1YmUiLCAiZ29vZ2xlIHZpZGVvcyIsICJ5YWhvbyB2aWRlb3MiLCAiZGFpbHltb3Rpb24iLCAidmVvaCIpOw0KZm9yZWFjaCAoJHNpdGVzIGFzICRzaXRlKSB7DQogICAgJHNpdGVpZCA9ICRkYi0+R2VuSUQoJHRhYmxlbmFtZS4iX3NlcSIpOw0KCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHNpdGVpZCwidmlkZW9fc2l0ZSIsJHNpdGUsJHNpdGVpZCkpOw0KfQ0KdW5zZXQoJHNpdGUpOw0KDQoNCi8vIENyZWF0ZXMgdGhlIHF1ZXJpZXMgdGFibGUNCiRmbGRzID0gIg0KICAgIGlkIEksDQoJbmFtZSBDKDY0KSwNCgl3aGF0IEMoMzIpLA0KCXdoZXJlY2xhdXNlIEMoMjU1KSwNCgl3aGVyZXZhbHVlcyBDKDI1NSksDQoJcXVlcnlvcmRlciBDKDMyKQ0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfc2F2ZWRfcXVlcmllcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfc2F2ZWRfcXVlcmllc19zZXEiKTsNCg0KDQovLyBJTlNFUlRJTkcgREVGQVVMVCBURU1QTEFURVMNCiRmbmJhc2U9ZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SOw0KJGZuID0gJGZuYmFzZS4nZGVmYXVsdF9saXN0X2xpbmtzLnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgiTGlzdExpbmtzIiwkdGVtcGxhdGUsJHRoaXMtPkdldE5hbWUoKSk7DQogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoImxpc3R0ZW1wbGF0ZV9jYXRlZ29yeSIsIkxpc3RMaW5rcyIpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfYWxidW0iLCJMaXN0TGlua3MiKTsNCn0JDQokZm4gPSAkZm5iYXNlLidkZWZhdWx0X2xpc3RfdmlkZW9zLnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgiTGlzdFZpZGVvcyIsJHRlbXBsYXRlLCR0aGlzLT5HZXROYW1lKCkpOw0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJsaXN0dGVtcGxhdGVfdmlkZW8iLCJMaXN0VmlkZW9zIik7DQp9CQ0KJGZuID0gJGZuYmFzZS4nZGVmYXVsdF9kaXNwbGF5X3ZpZGVvLnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgiRGlzcGxheVZpZGVvIiwkdGVtcGxhdGUsJHRoaXMtPkdldE5hbWUoKSk7DQoJJHRoaXMtPlNldFByZWZlcmVuY2UoImZpbmFsdGVtcGxhdGUiLCJEaXNwbGF5VmlkZW8iKTsNCn0NCiRmbiA9ICRmbmJhc2UuJ2RlZmF1bHRfbm9fcmVzdWx0LnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgiTm9SZXN1bHQiLCR0ZW1wbGF0ZSwkdGhpcy0+R2V0TmFtZSgpKTsNCgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZW1wdHl0ZW1wbGF0ZSIsIk5vUmVzdWx0Iik7DQp9DQokZm4gPSAkZm5iYXNlLidkZWZhdWx0X2VtYmVkX3ZpZGVvLnRwbCc7DQppZiggZmlsZV9leGlzdHMoICRmbiApICkgew0KICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KCSR0aGlzLT5TZXRUZW1wbGF0ZSgiRW1iZWRWaWRlbyIsJHRlbXBsYXRlLCR0aGlzLT5HZXROYW1lKCkpOw0KCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJlbWJlZHRlbXBsYXRlIiwiRW1iZWRWaWRlbyIpOw0KfQ0KDQovLyBDUkVBVElORyBQRVJNSVNTSU9OUyA6DQoNCi8vIHBlcm1pc3Npb25zDQoJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oIkhWQV9ub3JtYWx1c2VyIiwgIkhvc3RlZFZpZGVvQWxidW1zOiBOb3JtYWwgdXNlciIpOw0KCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiLCAiSG9zdGVkVmlkZW9BbGJ1bXM6IEFkdmFuY2VkIik7DQoJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oIkhWQV9tYW5hZ2VfY2F0ZWdvcnkiLCAiSG9zdGVkVmlkZW9BbGJ1bXM6IE1hbmFnZSBjYXRlZ29yeSIpOw0KCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCJIVkFfbWFuYWdlX2FsYnVtIiwgIkhvc3RlZFZpZGVvQWxidW1zOiBNYW5hZ2UgYWxidW0iKTsNCgkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbigiSFZBX21hbmFnZV92aWRlbyIsICJIb3N0ZWRWaWRlb0FsYnVtczogTWFuYWdlIHZpZGVvIik7DQovLyBhY3RpdmF0aW5nIGRlZmF1bHQgcHJlZmVyZW5jZXMNCgkkZGVmcHJlZnMgPSBhcnJheSgidGFiZGlzcGxheV9jYXRlZ29yeSIsInNlYXJjaG1vZHVsZV9pbmRleF9jYXRlZ29yeSIsInRhYmRpc3BsYXlfYWxidW0iLCJzZWFyY2htb2R1bGVfaW5kZXhfYWxidW0iLCJ0YWJkaXNwbGF5X3ZpZGVvIiwic2VhcmNobW9kdWxlX2luZGV4X3ZpZGVvIiwicmVzdHJpY3RfcGVybWlzc2lvbnMiLCJvcmRlcmJ5bmFtZSIsImRpc3BsYXlfZmlsdGVyIiwiZGlzcGxheV9pbnN0YW50c2VhcmNoIiwiZGlzcGxheV9pbnN0YW50c29ydCIsInNob3d0aHVtYm5haWxzIiwibG9hZF9uYmNoaWxkcmVuIiwidXNlX3Nlc3Npb24iKTsNCglmb3JlYWNoKCRkZWZwcmVmcyBhcyAkb25lcHJlZikJJHRoaXMtPlNldFByZWZlcmVuY2UoJG9uZXByZWYsdHJ1ZSk7DQoJJHRoaXMtPlNldFByZWZlcmVuY2UoImVtcHR5dGVtcGxhdGUiLCIqKiIpOw0KDQovLyBldmVudHMNCgkkdGhpcy0+Q3JlYXRlRXZlbnQoIkhWQV9hZGRlZCIpOw0KCSR0aGlzLT5DcmVhdGVFdmVudCgiSFZBX21vZGlmaWVkIik7DQoJJHRoaXMtPkNyZWF0ZUV2ZW50KCJIVkFfZGVsZXRlZCIpOw0KCQ0KLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygiZnJpZW5kbHluYW1lIiksICR0aGlzLT5MYW5nKCJpbnN0YWxsZWQiLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24NCiRkYiA9ICYkdGhpcy0+Y21zLT5kYjsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCg0KDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9jYXRlZ29yeSIpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfY2F0ZWdvcnlfc2VxIik7DQoJDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9hbGJ1bSIpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfYWxidW1fc2VxIik7DQoJDQoNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV92aWRlbyIpOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfdmlkZW9fc2VxIik7DQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9IVkFfZmllbGRvcHRpb25zIik7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9maWVsZG9wdGlvbnNfc2VxIik7DQoJDQoNCgkvLyRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfSFZBX3RlbXBsYXRlcyIpOw0KCS8vJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgiIiwkdGhpcy0+R2V0TmFtZSgpKTsNCgkNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9zYXZlZF9xdWVyaWVzIik7DQoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0hWQV9zYXZlZF9xdWVyaWVzX3NlcSIpOw0KDQovLyBwZXJtaXNzaW9ucw0KCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCJIVkFfbWFuYWdlX2NhdGVnb3J5Iik7DQoJJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oIkhWQV9tYW5hZ2VfYWxidW0iKTsNCgkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbigiSFZBX21hbmFnZV92aWRlbyIpOw0KCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCJIVkFfYWR2YW5jZWQiKTsNCgkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOw0KCQ0KLy8gZXZlbnRzDQoJJHRoaXMtPlJlbW92ZUV2ZW50KCJIVkFfYWRkZWQiKTsNCgkkdGhpcy0+UmVtb3ZlRXZlbnQoIkhWQV9tb2RpZmllZCIpOw0KCSR0aGlzLT5SZW1vdmVFdmVudCgiSFZBX2RlbGV0ZWQiKTsNCg0KLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nDQoJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygiZnJpZW5kbHluYW1lIiksICR0aGlzLT5MYW5nKCJ1bmluc3RhbGxlZCIpKTsNCg0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8P3BocA0KLy8gbm90aGluZyB0byBkbyB5ZXQ6DQpleGl0Ow0KDQoNCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokZGIgPSYgJHRoaXMtPkdldERiKCk7DQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7DQokdGFib3B0ID0gYXJyYXkoIm15c3FsIiA9PiAiVFlQRT1NeUlTQU0iKTsNCg0KLy8gUEFSVCAxOiBUaGlzIGRvZXMgdGhlIHVwZ3JhZGUgZm9yIHRoZSBDVExNb2R1bGVNYWtlciBwYXJ0DQovLyBVbmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG9ubHkgYmFja3dhcmQgY29tcGF0aWJsZSB0byBDVExNb2R1bGVNYWtlciAxLjYuMy4gSSBjb3VsZG4ndCBnbyBhbnkgZnVydGhlciBiZWhpbmQgYmVjYXVzZSBhdCB0aGF0IHRpbWUgdGhlIG1ha2VyIHZlcnNpb24gd2Fzbid0IHNhdmVkIGFueXdoZXJlDQoNCiRvbGRtYWtlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJtYWtlcnZlcnNpb24iLCAidmVyeW9sZCIpOw0KDQpzd2l0Y2goJG9sZG1ha2VyKXsNCgkvLyBCRUdJTiBTV0lUQ0goJG9sZG1ha2VyKQ0KDQoJY2FzZSAidmVyeW9sZCI6DQoJCS8vIHRoZSBtb2R1bGUgd2FzIGNyZWF0ZWQgd2l0aCB2ZXJzaW9uIDEuNi4zIG9yIHByaW9yLg0KCQkkdGhpcy0+Q3JlYXRlRXZlbnQoInJlbW90ZXZpZGVvYWxidW1zX2FkZGVkIik7DQoJCSR0aGlzLT5DcmVhdGVFdmVudCgicmVtb3RldmlkZW9hbGJ1bXNfbW9kaWZpZWQiKTsNCgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCJyZW1vdGV2aWRlb2FsYnVtc19kZWxldGVkIik7DQoJCWJyZWFrOw0KCWNhc2UgIjEuNi40IjoNCgljYXNlICIxLjciOg0KCWNhc2UgIjEuNy4xIjoNCgljYXNlICIxLjcuMiI6DQoJY2FzZSAiMS43LjMiOg0KCWNhc2UgIjEuNy40IjoNCgkJDQoJCS8vIG9wdGlvbiB2YWx1ZXMgZm9yIGR5bmFtaWMgbGlzdCBmaWVsZHMgYXJlIG5vdyBhbGwgaW4gdGhlIHNhbWUgdGFibGUNCg0KCQkvLyBDcmVhdGUgdGhlIG5ldyBmaWVsZG9wdGlvbnMgdGFibGUNCgkJJG5ld3RhYmxlID0gY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfZmllbGRvcHRpb25zIjsNCgkJJGZsZHMgPSAiDQoJCQlpZCBJLA0KCQkJZmllbGQgQygxMjgpLA0KCQkJbmFtZSBDKDMyKSwNCgkJCWl0ZW1fb3JkZXIgSQ0KCQkJIjsNCgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCRuZXd0YWJsZSwgJGZsZHMsICR0YWJvcHQpOw0KCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoJG5ld3RhYmxlLiJfc2VxIik7DQoNCgkJLy8gdHJhbnNmZXIgdGhlIGV4aXN0aW5nIG9wdGlvbnMNCgkJJGxpc3RmaWVsZHMgPSBhcnJheShhcnJheSgidmlkXyIsICJ2aWRlbyIsICJzaXRlIikpOw0KCQkkbWF4aWQgPSAwOw0KCQlmb3JlYWNoKCRsaXN0ZmllbGRzIGFzICRmaWVsZCl7DQoJCQkkb2xkdGFibGUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9yZW1vdGV2aWRlb2FsYnVtc18iLiRmaWVsZFswXS4iXyIuJGZpZWxkWzJdLiJfb3B0aW9ucyI7DQoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoIlNFTEVDVCAqIEZST00gIi4kb2xkdGFibGUpOw0KCQkJJGl0ZW1fb3JkZXIgPSAxOw0KCQkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJCWlmKCRyb3dbImlkIl0gPiAkbWF4aWQpCSRtYXhpZCA9ICRyb3dbImlkIl07DQoJCQkJJG5ld2lkID0gJGRiLT5HZW5JRCgkbmV3dGFibGUuIl9zZXEiKTsNCgkJCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi4kbmV3dGFibGUuIiBTRVQgaWQ9PywgZmllbGQ9PywgbmFtZT0/LCBpdGVtX29yZGVyPT8iOw0KCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyb3dbImlkIl0sICRmaWVsZFsxXS4iXyIuJGZpZWxkWzJdLCAkcm93WyJuYW1lIl0sICRpdGVtX29yZGVyKSk7DQoJCQkJJGl0ZW1fb3JkZXIrKzsNCgkJCX0NCgkJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoJG9sZHRhYmxlKTsNCgkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCgkJCSRkYi0+RHJvcFNlcXVlbmNlKCRvbGR0YWJsZS4iX3NlcSIpOw0KCQl9DQoJCS8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG5leHQgb3B0aW9ucyB3b24ndCBoYXZlIHRoZSBzYW1lIGlkcw0KCQkkZHVtbXlpZCA9ICRkYi0+R2VuSUQoJG5ld3RhYmxlLiJfc2VxIik7DQoJCXdoaWxlKCRkdW1teWlkIDw9ICRtYXhpZCl7DQoJCQkkZHVtbXlpZCA9ICRkYi0+R2VuSUQoJG5ld3RhYmxlLiJfc2VxIik7DQoJCX07DQoJY2FzZSAiMS44LjEiOg0KCWNhc2UgIjEuOC4yIjoNCgljYXNlICIxLjguMi4yIjoNCgljYXNlICIxLjguMyI6DQoJY2FzZSAiMS44LjMuMSI6DQoJCS8vIENyZWF0ZXMgdGhlIHF1ZXJpZXMgdGFibGUNCgkJJGZsZHMgPSAiDQoJCQlpZCBJLA0KCQkJbmFtZSBDKDY0KSwNCgkJCXdoYXQgQygzMiksDQoJCQl3aGVyZWNsYXVzZSBDKDI1NSksDQoJCQl3aGVyZXZhbHVlcyBDKDI1NSksDQoJCQlxdWVyeW9yZGVyIEMoMzIpDQoJCQkiOw0KCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfc2F2ZWRfcXVlcmllcyIsICRmbGRzLCAkdGFib3B0KTsNCgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JlbW90ZXZpZGVvYWxidW1zX3NhdmVkX3F1ZXJpZXNfc2VxIik7DQoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCJyZW1vdGV2aWRlb2FsYnVtc19hZHZhbmNlZCIsICJyZW1vdGV2aWRlb2FsYnVtczogQWR2YW5jZWQiKTsNCgljYXNlICIxLjguNCI6DQoJY2FzZSAiMS44LjQuMSI6DQoJY2FzZSAiMS44LjUiOg0KCWNhc2UgIjEuOC41LjEiOg0KCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbigicmVtb3RldmlkZW9hbGJ1bXNfbm9ybWFsdXNlciIsICJyZW1vdGV2aWRlb2FsYnVtczogTm9ybWFsIHVzZXIiKTsNCgkJLy8gYWN0aXZhdGluZyBkZWZhdWx0IHByZWZlcmVuY2VzDQoJCSRkZWZwcmVmcyA9IGFycmF5KCJ0YWJkaXNwbGF5X2NhdGVnb3J5Iiwic2VhcmNobW9kdWxlX2luZGV4X2NhdGVnb3J5IiwidGFiZGlzcGxheV9hbGJ1bSIsInNlYXJjaG1vZHVsZV9pbmRleF9hbGJ1bSIsInRhYmRpc3BsYXlfdmlkZW8iLCJzZWFyY2htb2R1bGVfaW5kZXhfdmlkZW8iLCJyZXN0cmljdF9wZXJtaXNzaW9ucyIsImRpc3BsYXlfZmlsdGVyIiwiZGlzcGxheV9pbnN0YW50c2VhcmNoIik7DQoJCWZvcmVhY2goJGRlZnByZWZzIGFzICRvbmVwcmVmKQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgkb25lcHJlZix0cnVlKTsNCgljYXNlICIxLjguNiI6DQoJY2FzZSAiMS44LjYuMSI6DQoJY2FzZSAiMS44LjciOg0KCWNhc2UgIjEuOC43LjEiOg0KCQlpZigkZGItPmRidHlwZSA9PSAibXlzcWwiIHx8ICRkYi0+ZGJ0eXBlID09ICJteXNxbGkiKXsNCgkJCS8vIG1zeXFsDQoJCQkkcXVlcmllcyA9IGFycmF5KCk7DQoJCQkkcXVlcmllc1tdID0gIkFMVEVSIFRBQkxFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfY2F0ZWdvcnkgQUREIENPTFVNTiBkYXRlX2NyZWF0ZWQgREFURVRJTUUiOw0KCQkJJHF1ZXJpZXNbXSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9yZW1vdGV2aWRlb2FsYnVtc19jYXRlZ29yeSBTRVQgZGF0ZV9jcmVhdGVkPWRhdGVfbW9kaWZpZWQiOw0KCQkJJHF1ZXJpZXNbXSA9ICJBTFRFUiBUQUJMRSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JlbW90ZXZpZGVvYWxidW1zX2FsYnVtIEFERCBDT0xVTU4gZGF0ZV9jcmVhdGVkIERBVEVUSU1FIjsNCgkJCSRxdWVyaWVzW10gPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfYWxidW0gU0VUIGRhdGVfY3JlYXRlZD1kYXRlX21vZGlmaWVkIjsNCgkJCSRxdWVyaWVzW10gPSAiQUxURVIgVEFCTEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9yZW1vdGV2aWRlb2FsYnVtc192aWRlbyBBREQgQ09MVU1OIGRhdGVfY3JlYXRlZCBEQVRFVElNRSI7DQoJCQkkcXVlcmllc1tdID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JlbW90ZXZpZGVvYWxidW1zX3ZpZGVvIFNFVCBkYXRlX2NyZWF0ZWQ9ZGF0ZV9tb2RpZmllZCI7DQoJCQlmb3JlYWNoKCRxdWVyaWVzIGFzICRxdWVyeSkJCW15c3FsX3F1ZXJ5KCRxdWVyeSk7DQoNCgkJfWVsc2V7DQoJCQkvLyBub24tbXlzcWwNCgkJCSRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfY2F0ZWdvcnkiLCAiZGF0ZV9jcmVhdGVkICIuQ01TX0FET0RCX0RUKTsNCgkJCSRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfYWxidW0iLCAiZGF0ZV9jcmVhdGVkICIuQ01TX0FET0RCX0RUKTsNCgkJCSRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmVtb3RldmlkZW9hbGJ1bXNfdmlkZW8iLCAiZGF0ZV9jcmVhdGVkICIuQ01TX0FET0RCX0RUKTsNCgkJCQ0KCQl9DQoJY2FzZSAiMS44LjcuMiI6DQoJY2FzZSAiMS44LjgiOg0KCWNhc2UgIjEuOC44LjEiOg0KCWNhc2UgIjEuOC44LjIiOg0KCWNhc2UgIjEuOC44LjMiOg0KCWNhc2UgIjEuOC44LjQiOg0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiYWRtaW5wYWdlcyIsMCk7DQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJsb2FkX25iY2hpbGRyZW4iLHRydWUpOw0KCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgibG9hZF9uZXh0cHJldmlvdXMiLGZhbHNlKTsNCgljYXNlICIxLjguOSI6DQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJ1c2Vfc2Vzc2lvbiIsdHJ1ZSk7DQoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZlbXB0eXRlbXBsYXRlIiwiKioiKTsNCgkJDQoJLy8gRU5EIFNXSVRDSCgkb2xkbWFrZXIpDQp9DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJtYWtlcnZlcnNpb24iLCAiMS44LjkuMyIpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRmaWx0ZXIgfHwgJGluc3RhbnRzZWFyY2h9PGRpdiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodDsiPnskZmlsdGVyfXtpZiAkZmlsdGVyICYmICRpbnN0YW50c2VhcmNofTxici8+ey9pZn17JGluc3RhbnRzZWFyY2h9PC9kaXY+ey9pZn0NCjxwPnskYWRkbmV3fSB7JHJlb3JkZXJ9PC9wPg0Ke2lmIGNvdW50KCRpdGVtbGlzdCkgPiAwfQ0KPGRpdiBzdHlsZT0iY2xlYXI6IHJpZ2h0OyI+DQo8dGFibGUge2lmICR0YWJsZWlkfWlkPSJ7JHRhYmxlaWR9IiB7L2lmfWNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCjx0aGVhZD48dHI+DQoJe2ZvcmVhY2ggZnJvbT0kYWRtaW5zaG93IGl0ZW09Y29sdW1ufQ0KCQk8dGg+eyRjb2x1bW5bMF19PC90aD4NCgl7L2ZvcmVhY2h9DQo8L3RyPjwvdGhlYWQ+DQo8dGJvZHk+DQp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQ0Ke2ZvcmVhY2ggZnJvbT0kaXRlbWxpc3QgaXRlbT1vbmVpdGVtfQ0Ke2N5Y2xlIHZhbHVlcz0icm93Mixyb3cxIiBhc3NpZ249cm93Y2xhc3N9DQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPg0KCXtmb3JlYWNoIGZyb209JGFkbWluc2hvdyBpdGVtPWNvbHVtbn0NCgkJe2Fzc2lnbiB2YXI9b25ldmFsIHZhbHVlPSRjb2x1bW5bMV19DQoJCTx0ZHtpZiAkY29sdW1uWzJdfSBjbGFzcz0iY3RsbW1fbm9zZWFyY2giey9pZn0+eyRvbmVpdGVtLT4kb25ldmFsfTwvdGQ+DQoJey9mb3JlYWNofQ0KPC90cj4NCnsvZm9yZWFjaH0NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC9kaXY+DQp7aWYgJHBhZ2VpbmZvfQ0KPHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPntpZiAkcHJldmlvdXNwYWdlfXskcHJldmlvdXNwYWdlfSAmbmJzcDsgey9pZn17JHBhZ2VpbmZvfXtpZiAkbmV4dHBhZ2V9ICZuYnNwOyB7JG5leHRwYWdlfXsvaWZ9PGJyLz4NCnskcGFnZXN9PC9wPg0Key9pZn0NCjxwPnskYWRkbmV3fTwvcD57L2lmfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/browsefiles.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskYnJvd3NldGl0bGV9PC9oMj4NCntpZiAkcG9zdG1heHNpemV9PHAgYWxpZ249InJpZ2h0Ij57JHBvc3RtYXhzaXplfTwvcD57L2lmfQ0KeyRmb3Jtc3RhcnR9DQoNCntpZiAkYWRkZmlsZWlucHV0fQ0KPGZpZWxkc2V0IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAzMCU7IG1hcmdpbjogMTVweDsgcGFkZGluZzogNXB4OyI+PGxlZ2VuZD48Yj57JHppcHRpdGxlfTwvYj48L2xlZ2VuZD4NCjxwPnskemlwbm90aWNlfTwvcD4NCntpZiAkcmVzaXplbm90aWNlfTxwPnskcmVzaXplbm90aWNlfTwvcD57L2lmfQ0KPHA+eyR6aXBpbnB1dH0geyR6aXBzdWJtaXR9PC9wPg0KPC9maWVsZHNldD4NCnsvaWZ9DQo8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbjogMTVweDsgcGFkZGluZzogNXB4OyI+PGxlZ2VuZD48Yj57JHVwbG9hZHRpdGxlfTwvYj48L2xlZ2VuZD4NCntpZiAkcmVzaXplbm90aWNlfTxwPnskcmVzaXplbm90aWNlfTwvcD57L2lmfQ0KeyRmaWxlaW5wdXR9DQp7aWYgJGFkZGZpbGVpbnB1dH08cD57JGFkZGZpbGVpbnB1dH08L3A+ey9pZn0NCjxwPnskc3VibWl0fTwvcD4NCjwvZmllbGRzZXQ+DQoNCnskZm9ybWVuZH0NCg0KPGJyLz4NCntpZiAkaW5zdGFudHNlYXJjaH08ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij57JGluc3RhbnRzZWFyY2h9PC9kaXY+ey9pZn0NCjxwPnskc2hvd2luZ2Rpcn08L3A+DQo8ZGl2IHN0eWxlPSJjbGVhcjogcmlnaHQ7Ij4NCjx0YWJsZSBpZD0iZmlsZWxpc3RfdGFibGUiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCjx0aGVhZD48dHI+DQoJPHRoPnskc29ydGxpbmtzWzBdfXskaGVhZGVycy0+ZmlsZW5hbWV9PC90aD4NCgk8dGg+eyRudW1lcmljX3NvcnRsaW5rc1sxXX17JGhlYWRlcnMtPmltYWdlc2l6ZX08L3RoPg0KCTx0aD57JHNvcnRsaW5rc1syXX17JGhlYWRlcnMtPmV4dH08L3RoPg0KCTx0aD57JG51bWVyaWNfc29ydGxpbmtzWzNdfXskaGVhZGVycy0+c2l6ZX08L3RoPg0KCTx0aD57JG51bWVyaWNfc29ydGxpbmtzWzRdfXskaGVhZGVycy0+bW9kaWZpZWR9PC90aD4NCgk8dGggd2lkdGg9IjEyOCI+eyRoZWFkZXJzLT5kZWxldGVsaW5rfTwvdGg+DQo8L3RyPjwvdGhlYWQ+DQo8dGJvZHk+DQp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQ0Ke2ZvcmVhY2ggZnJvbT0kaXRlbWxpc3QgaXRlbT1vbmVpdGVtfQ0Ke2N5Y2xlIHZhbHVlcz0icm93Mixyb3cxIiBhc3NpZ249cm93Y2xhc3N9DQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPg0KCTx0ZD57JG9uZWl0ZW0tPnBpY30geyRvbmVpdGVtLT50aGVsaW5rfTwvdGQ+DQoJPHRkIGNsYXNzPSJjdGxtbV9ub3NlYXJjaCI+eyRvbmVpdGVtLT5pbWFnZXNpemV9PC90ZD4NCgk8dGQgY2xhc3M9ImN0bG1tX25vc2VhcmNoIj57JG9uZWl0ZW0tPmV4dH08L3RkPg0KCTx0ZCBjbGFzcz0iY3RsbW1fbm9zZWFyY2giPnskb25laXRlbS0+c2l6ZX08L3RkPg0KCTx0ZCBjbGFzcz0iY3RsbW1fbm9zZWFyY2giPnskb25laXRlbS0+bW9kaWZpZWR9PC90ZD4NCgk8dGQgY2xhc3M9ImN0bG1tX25vc2VhcmNoIj57JG9uZWl0ZW0tPmRlbGV0ZWxpbmt9PC90ZD4NCjwvdHI+DQp7L2ZvcmVhY2h9DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/default_display_video.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogDQoJZGVmYXVsdCB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIG9uZSB2aWRlbyBvZiBhbiBhbGJ1bSAodG8gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIExpc3RMaW5rcykNCip9DQp7bGl0ZXJhbH0NCjxzdHlsZT4NCiAgZGl2LnZpZGVvLWZyYW1lIHsgcGFkZGluZzogNXB4OyBtYXJnaW46IDVweDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IHRleHQtYWxpZ246IGNlbnRlcjsgfQ0KPC9zdHlsZT4NCnsvbGl0ZXJhbH0NCntIb3N0ZWRWaWRlb0FsYnVtc19icmVhZGNydW1ic30NCjxoMz57JGl0ZW0tPm5hbWV9ICh7JGl0ZW0tPnNpdGVfbmFtZXZhbHVlfSk8L2gzPg0KPGRpdiBjbGFzcz0idmlkZW8tZnJhbWUiPg0KICAgIHtIb3N0ZWRWaWRlb0FsYnVtc19lbWJlZHZpZGVvIGl0ZW09JGl0ZW19DQo8L2Rpdj4NCjxwPnskaXRlbS0+ZGVzY3JpcHRpb259PC9wPg0KPHRhYmxlIHdpZHRoPSIxMDAlIj4NCgk8dHI+DQoJCTx0ZCBhbGlnbj0ibGVmdCI+e2lmICRwcmV2aW91c19pdGVtfTw8PCB7JHByZXZpb3VzX2l0ZW0tPmRldGFpbGxpbmt9ey9pZn08L3RkPg0KCQk8dGQgYWxpZ249InJpZ2h0Ij57aWYgJG5leHRfaXRlbX17JG5leHRfaXRlbS0+ZGV0YWlsbGlua30gPj4+ey9pZn08L3RkPg0KCTwvdHI+DQo8L3RhYmxlPg0Ke2lmICRpdGVtLT5wYXJlbnRsaW5rfSB7JGxldmVsdGl0bGV9OiB7JGl0ZW0tPnBhcmVudGxpbmt9ey9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/default_embed_video.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogDQoJZGVmYXVsdCB0ZW1wbGF0ZSB1c2VkIGJ5IHRoZSB7SG9zdGVkVmlkZW9BbGJ1bXNfZW1iZWR2aWRlbyBpdGVtPSRpdGVtfSB0YWcgKHNlZSBEaXNwbGF5VmlkZW8gb3IgTGlzdFZpZGVvKQ0KKn0NCntpZiAkaXRlbS0+c2l0ZV9uYW1ldmFsdWU9PSJ5b3V0dWJlIn0NCgl7YXNzaWduIHZhcj0ibW92aWUiIA0KCQl2YWx1ZT0iaHR0cDovL3d3dy55b3V0dWJlLmNvbS92L2AkaXRlbS0+dmlkZW9pZGAmaGw9YCRpdGVtLT5sYW5nYCZmcz0xJnJlbD0wJmNvbG9yMT0weDIzNDkwMCZjb2xvcjI9MHg0ZTllMDAmYm9yZGVyPTEifQ0Ke2Vsc2VpZiAkaXRlbS0+c2l0ZV9uYW1ldmFsdWU9PSJnb29nbGUgdmlkZW9zIn0NCiAgICB7YXNzaWduIHZhcj0ibW92aWUiIA0KCQl2YWx1ZT0iaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vZ29vZ2xlcGxheWVyLnN3Zj9obD1gJGl0ZW0tPmxhbmdgJmZzPXRydWUmZG9jaWQ9YCRwYXJlbnRvYmotPnZpZGVvaWRgIn0NCntlbHNlaWYgJGl0ZW0tPnNpdGVfbmFtZXZhbHVlPT0iZGFpbHltb3Rpb24ifQ0KCXthc3NpZ24gdmFyPSJtb3ZpZSIgDQoJCXZhbHVlPSJodHRwOi8vd3d3LmRhaWx5bW90aW9uLmNvbS9zd2YvYCRpdGVtLT52aWRlb2lkYCZyZWxhdGVkPTAmaGw9YCRpdGVtLT5sYW5nYCJ9DQp7ZWxzZWlmICRpdGVtLT5zaXRlX25hbWV2YWx1ZT09InlhaG9vIHZpZGVvcyJ9DQoJe2Fzc2lnbiB2YXI9Im1vdmllIiANCgkJdmFsdWU9Imh0dHA6Ly9kLnlpbWcuY29tL3N0YXRpYy52aWRlby55YWhvby5jb20veWVwL1lWX1lFUC5zd2Y/dmVyPTIuMi40NiZpZD1gJGl0ZW0tPnZpZGVvaWRgJmxhbmc9YCRpdGVtLT5sYW5nYCZlbWJlZD0xIn0JDQp7ZWxzZWlmICRpdGVtLT5zaXRlX25hbWV2YWx1ZT09InZlb2gifQ0KCXthc3NpZ24gdmFyPSJtb3ZpZSIgDQoJCXZhbHVlPSJodHRwOi8vd3d3LnZlb2guY29tL3N0YXRpYy9zd2Yvd2VicGxheWVyL1dlYlBsYXllci5zd2Y/dmVyc2lvbj1BRnJvbnRlbmQuNS40LjkuMTAwNiZwZXJtYWxpbmtJZD1gJGl0ZW0tPnZpZGVvaWRgJmhsPWAkaXRlbS0+cGFyZW50X29iamVjdC0+bGFuZ2AmcGxheWVyPXZpZGVvZGV0YWlsc2VtYmVkZGVkJnZpZGVvQXV0b1BsYXk9MCZpZD1hbm9ueW1vdXMifQ0Key9pZn0NCjxvYmplY3Qgd2lkdGg9InskaXRlbS0+d2lkdGh9IiBoZWlnaHQ9InskaXRlbS0+aGVpZ2h0fSI+DQoJPHBhcmFtIG5hbWU9ImFsbG93RnVsbFNjcmVlbiIgdmFsdWU9InRydWUiPjwvcGFyYW0+DQoJPHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIiB2YWx1ZT0iYWx3YXlzIj48L3BhcmFtPiANCgk8cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJ7JG1vdmllfSI+PC9wYXJhbT4NCgk8ZW1iZWQgc3JjPSJ7JG1vdmllfSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIgd2lkdGg9InskaXRlbS0+d2lkdGh9IiBoZWlnaHQ9InskaXRlbS0+aGVpZ2h0fSI+PC9lbWJlZD4NCjwvb2JqZWN0Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/default_list_links.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoNCiBkZWZhdWx0IHRlbXBsYXRlIHVzZWQgZm9yIDoNCiAtIGxpc3RpbmcgbGlua3MgdG8gdmlkZW9zIG9mIGFuIGFsYnVtICh0byBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggRGlzcGxheVZpZGVvIHRvIGRpc3BsYXkgZWFjaCB2aWRlbyBhbG9uZSkNCiAtIGxpc3RpbmcgbGlua3MgdG8gYWxsIGFsYnVtcyBvZiBvbmUgY2F0ZWdvcnkNCiAqfQ0Ke0hvc3RlZFZpZGVvQWxidW1zX2JyZWFkY3J1bWJzfQ0KPGgyPnskbGV2ZWx0aXRsZX0geyRwYXJlbnRvYmotPm5hbWV9PC9oMj4NCjxwPnskcGFyZW50b2JqLT5kZXNjcmlwdGlvbn08L3A+DQp7aWYgJGl0ZW1jb3VudCA+IDB9DQo8dWw+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPSJpdGVtIn0NCgk8bGkge2lmICRpdGVtLT5pc19zZWxlY3RlZH1jbGFzcz0iYWN0aXZlInsvaWZ9PnskaXRlbS0+ZGV0YWlsbGlua306IHskaXRlbS0+ZGVzY3JpcHRpb259PC9saT4NCnsvZm9yZWFjaH0NCjwvdWw+DQp7aWYgJHBhZ2VfcGFnZW51bWJlcnN9DQo8ZGl2IGlkPSJwYWdlbWVudSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPg0KCXskcGFnZV9wcmV2aW91c30mbmJzcDsgeyRwYWdlX3Nob3dpbmd9L3skcGFnZV90b3RhbGl0ZW1zfSAmbmJzcDt7JHBhZ2VfbmV4dH08YnIvPg0KCXskcGFnZV9wYWdlbnVtYmVyc30NCjwvZGl2Pg0Key9pZn0NCntlbHNlfQ0KPHA+eyRlcnJvcl9tc2d9PC9wPg0Key9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/default_list_videos.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogDQoJZGVmYXVsdCB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIGFsbCB2aWRlb3Mgb2YgYW4gYWxidW0gDQoqfQ0Ke2xpdGVyYWx9DQo8c3R5bGU+DQogIGRpdi52aWRlby1mcmFtZSB7IHBhZGRpbmc6IDVweDsgbWFyZ2luOiA1cHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCjwvc3R5bGU+DQp7L2xpdGVyYWx9DQp7SG9zdGVkVmlkZW9BbGJ1bXNfYnJlYWRjcnVtYnN9DQo8cD57JHBhcmVudG9iai0+ZGVzY3JpcHRpb259PC9wPg0Ke2lmICRpdGVtY291bnQgPiAwfQ0Ke2ZvcmVhY2ggZnJvbT0kaXRlbWxpc3QgaXRlbT0iaXRlbSJ9DQoJPGgzPnskaXRlbS0+bmFtZX0gKHskaXRlbS0+c2l0ZV9uYW1ldmFsdWV9KTwvaDM+DQoJPGRpdiBjbGFzcz0idmlkZW8tZnJhbWUiPg0KCQl7SG9zdGVkVmlkZW9BbGJ1bXNfZW1iZWR2aWRlbyBpdGVtPSRpdGVtfQ0KCTwvZGl2Pg0KCTxwPnskaXRlbS0+ZGVzY3JpcHRpb259PC9wPg0Key9mb3JlYWNofQ0Ke2lmICRwYWdlX3BhZ2VudW1iZXJzfQ0KPGRpdiBpZD0icGFnZW1lbnUiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4NCgl7JHBhZ2VfcHJldmlvdXN9Jm5ic3A7IHskcGFnZV9zaG93aW5nfS97JHBhZ2VfdG90YWxpdGVtc30gJm5ic3A7eyRwYWdlX25leHR9PGJyLz4NCgl7JHBhZ2VfcGFnZW51bWJlcnN9DQo8L2Rpdj4NCnsvaWZ9DQp7ZWxzZX0geyogZW1wdHkgYWxidW0gKn0NCjxwPnskZXJyb3JfbXNnfTwvcD4NCnsvaWZ9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/default_no_result.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdCB0ZW1wbGF0ZSB1c2VkIHdoZW4gYSBzZWFyY2ggcmV0dXJucyBubyByZXN1bHQgKn0NCjxwPnskZXJyb3JfbXNnfTwvcD4NCntpZiAkYmFja2xpbmt9PHA+eyRiYWNrbGlua308L3A+ey9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/editalb_.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7aWYgJGl0ZW1hbGlhc308c3BhbiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBmb250LXNpemU6IDgwJSI+eyRpdGVtYWxpYXN9PC9zcGFuPnsvaWZ9DQo8aDE+eyRlZGl0dGl0bGV9PC9oMT4NCjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+DQo8YnIvPjxici8+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCXtpZiAkYWxpYXNfaW5wdXR9PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsaWFzX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFsaWFzX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgl7L2lmfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBhcmVudF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGFyZW50X2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGVzY3JpcHRpb25fbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVzY3JpcHRpb25faW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsYW5nX2xhYmVsfSogOjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRsYW5nX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGVmYXVsdF93aWR0aF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdF93aWR0aF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlZmF1bHRfaGVpZ2h0X2xhYmVsfSogOjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkZWZhdWx0X2hlaWdodF9pbnB1dH08L3A+DQoJPC9kaXY+DQo8YnIvPg0KPHA+eyRzdWJtaXR9IHskYXBwbHl9IHskY2FuY2VsfTwvcD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/editcat_.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7aWYgJGl0ZW1hbGlhc308c3BhbiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBmb250LXNpemU6IDgwJSI+eyRpdGVtYWxpYXN9PC9zcGFuPnsvaWZ9DQo8aDE+eyRlZGl0dGl0bGV9PC9oMT4NCjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+DQo8YnIvPjxici8+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCXtpZiAkYWxpYXNfaW5wdXR9PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsaWFzX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFsaWFzX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgl7L2lmfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlc2NyaXB0aW9uX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlc2NyaXB0aW9uX2lucHV0fTwvcD4NCgk8L2Rpdj4NCjxici8+DQo8cD57JHN1Ym1pdH0geyRhcHBseX0geyRjYW5jZWx9PC9wPg0K]]></data>
	</file>
	<file>
	  <filename>/templates/editvid_.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQp7aWYgJGl0ZW1hbGlhc308c3BhbiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBmb250LXNpemU6IDgwJSI+eyRpdGVtYWxpYXN9PC9zcGFuPnsvaWZ9DQo8aDE+eyRlZGl0dGl0bGV9PC9oMT4NCjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+DQo8YnIvPjxici8+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCXtpZiAkYWxpYXNfaW5wdXR9PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsaWFzX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFsaWFzX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgl7L2lmfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHBhcmVudF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGFyZW50X2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZGVzY3JpcHRpb25fbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVzY3JpcHRpb25faW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRzaXRlX2xhYmVsfSogOjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzaXRlX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdmlkZW9pZF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdmlkZW9pZF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHdpZHRoX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHdpZHRoX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaGVpZ2h0X2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlaWdodF9pbnB1dH08L3A+DQoJPC9kaXY+DQo8YnIvPg0KPHA+eyRzdWJtaXR9IHskYXBwbHl9IHskY2FuY2VsfTwvcD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/search.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskc2VhcmNodGl0bGV9e2lmICR3aGF0fTogeyR3aGF0fXsvaWZ9PC9oMj4NCjxwPnskc2VhcmNoZmllbGR9eyRzdWJtaXR9PC9wPg0K]]></data>
	</file>
	<file>
	  <filename>/templates/search_album.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskc2VhcmNodGl0bGV9OiB7JHdoYXR9PC9oMj4NCjx0YWJsZT4NCjx0cj48dGQ+eyRkZXNjcmlwdGlvbl9sYWJlbH08L3RkPjx0ZD57JGRlc2NyaXB0aW9uX2lucHV0fTwvdGQ+PC90cj4NCjx0cj48dGQ+eyRwYXJlbnRfbGFiZWx9PC90ZD48dGQ+eyRwYXJlbnRfaW5wdXR9PC90ZD48L3RyPg0KPHRyPjx0ZD57JG5hbWVfbGFiZWx9PC90ZD48dGQ+eyRuYW1lX2lucHV0fTwvdGQ+PC90cj4NCjx0cj48dGQ+eyRkYXRlX21vZGlmaWVkX2xhYmVsfTwvdGQ+PHRkPnskZGF0ZV9tb2RpZmllZF9pbnB1dH08L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+eyRzdWJtaXR9PC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/search_categorie.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskc2VhcmNodGl0bGV9OiB7JHdoYXR9PC9oMj4NCjx0YWJsZT4NCjx0cj48dGQ+eyRkZXNjcmlwdGlvbl9sYWJlbH08L3RkPjx0ZD57JGRlc2NyaXB0aW9uX2lucHV0fTwvdGQ+PC90cj4NCjx0cj48dGQ+eyRuYW1lX2xhYmVsfTwvdGQ+PHRkPnskbmFtZV9pbnB1dH08L3RkPjwvdHI+DQo8dHI+PHRkPnskZGF0ZV9tb2RpZmllZF9sYWJlbH08L3RkPjx0ZD57JGRhdGVfbW9kaWZpZWRfaW5wdXR9PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPnskc3VibWl0fTwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/search_generalresults.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskbGV2ZWx0aXRsZX08L2gyPg0KPHVsIGNsYXNzPSJjdGxfc2VhcmNocmVzdWx0cyI+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPSJpdGVtIn0NCjxsaT57JGl0ZW0tPmRldGFpbGxpbmt9PC9saT4NCnsvZm9yZWFjaH0NCjwvdWw+DQp7aWYgJHBhZ2VtZW51fTxwPnskcGFnZW1lbnV9PC9wPnsvaWZ9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/search_video.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgyPnskc2VhcmNodGl0bGV9OiB7JHdoYXR9PC9oMj4NCjx0YWJsZT4NCjx0cj48dGQ+eyRkZXNjcmlwdGlvbl9sYWJlbH08L3RkPjx0ZD57JGRlc2NyaXB0aW9uX2lucHV0fTwvdGQ+PC90cj4NCjx0cj48dGQ+eyRzaXRlX2xhYmVsfTwvdGQ+PHRkPnskc2l0ZV9pbnB1dH08L3RkPjwvdHI+DQo8dHI+PHRkPnskdmlkZW9pZF9sYWJlbH08L3RkPjx0ZD57JHZpZGVvaWRfaW5wdXR9PC90ZD48L3RyPg0KPHRyPjx0ZD57JHBhcmVudF9sYWJlbH08L3RkPjx0ZD57JHBhcmVudF9pbnB1dH08L3RkPjwvdHI+DQo8dHI+PHRkPnskbmFtZV9sYWJlbH08L3RkPjx0ZD57JG5hbWVfaW5wdXR9PC90ZD48L3RyPg0KPHRyPjx0ZD57JGRhdGVfbW9kaWZpZWRfbGFiZWx9PC90ZD48dGQ+eyRkYXRlX21vZGlmaWVkX2lucHV0fTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD57JHN1Ym1pdH08L3A+]]></data>
	</file>
</module>
