<?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>SimpleShop</name>
	<version>1.0</version>
    <mincmsversion>2.1.0</mincmsversion>
	<help><![CDATA[CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD4KQSB2aXNpdG9yIG9mIHRoZSB3ZWJzaXRlIHdpbGwgc2VlIGEgbGlzdCBvZiBjYXRlZ29yaWVzLiBZb3Ugd2lsbCBiZSBhYmxlIHRvIHNob3cgYSBsaXN0IG9mIHRoZSBjYXRlZ29yaWVzIGJ5IHBsYWNpbmcgYSBzbWFydHkgdGFnIGluIGEgcGFnZSBvciB0ZW1wbGF0ZSB1c2luZyB7U2ltcGxlU2hvcH0uPGJyPgpVc2luZyB0aGUgcGFyYW1ldGVyIGNvbm5lY3RlZCB0byBhIGNhdGVnb3J5LCB5b3UgYXJlIGFibGUgdG8gc2hvdyBwcm9kdWN0cyBsaW5rZWQgdG8gdGhhdCBjYXRlZ29yeS48YnI+CkFuIGV4YW1wbGUgaXM6IHtTaW1wbGVTaG9wIGRpc3BsYXk9J3Byb2R1Y3RsaXN0JyBjYXRuYW1lPSdHYXJkZW50b29scyd9LiBUaGlzIHdpbGwgc2hvdyBhbGwgcHJvZHVjdHMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHRoZQpjYXRlZ29yeSBuYW1lICdHYXJkZW50b29scycuIFVzaW5nIHRoZSBkaXNwbGF5PSdwcm9kdWN0bGlzdCcgd2l0aG91dCBhIGNhdGVnb3J5IG5hbWUgd2lsbCBzaG93IHRoZSBwcm9kdWN0cyBpbiB0aGUgcm9vdC48YnI+CkFub3RoZXIgZXhhbXBsZSBpczoge1NpbXBsZVNob3AgZGlzcGxheT0nY2F0ZWdvcnlsaXN0J30uIFRoaXMgd2lsbCBzaG93IHRoZSB2YXJpb3VzIGNhdGVnb3JpZXMuIElmIG9uZSBpcyBzZWxlY3RlZCwgYWxsIHRoZSBjb25uZWN0ZWQgcHJvZHVjdHMgYXJlIHNob3duLjxicj4KSWYgeW91IGRvbid0IHdhbnQgdG8gc2VlIGFuIGltYWdlIGZvciBhIGNhdGVnb3J5IG9uIHRoZSBmcm9udCBlbmQsIHBsYWNlICdub19pbWFnZS5qcGcnIGluIHRoZSBmaWVsZCAnSW1hZ2UnLjxicj48YnI+CldoZW4gdGhlIFNlYXJjaCBtb2R1bGUgaXMgaW5zdGFsbGVkLCBhbGwgdGhlIHdvcmRzIGFzIGVudGVyZWQgaW4gdGhlIHByb2R1Y3QgbmFtZSBhbmQgcHJvZHVjdCBkZXNjcmlwdGlvbiB3aWxsIGJlIHBhcnQgb2YgdGhlIHNlYXJjaCBpbmRleC48YnI+CklmIHRoZSBTZWFyY2ggbW9kdWxlIGlzIGluc3RhbGxlZCBhZnRlciB0aGlzIG1vZHVsZSwgb25lIGNhbiB1c2UgdGhlIGJ1dHRvbiBSZWluZGV4IGZvciBTZWFyY2ggZnJvbSB0aGUgb3B0aW9ucyB0YWIgaW4gdGhlIGJhY2sgZW5kLjxiciAvPgpXaGVuIHlvdSB1c2UgaW52ZW50b3J5IHRyYWNraW5nLCB0aGUgcXVhbnRpdHkgc29sZCB3aWxsIGJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgcXVhbnRpdHkgb24gc3RvY2sgYXQgdGhlIG1vbWVudCB0aGF0IHBheW1lbnQgaGFzIGJlZW4KcmVjZWl2ZWQuIFlvdSBjYW4gYXNzb2NpYXRlIHRoZSBleGFtcGxlIHN0eWxlc2hlZXQgIlNpbXBsZVNob3AgU3R5bGUiIHdpdGggeW91ciBkZXNpZ24gaW4gdGhlIERlc2lnbiBNYW5hZ2VyLgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5XaGVuIHlvdSBoYXZlIHVwZ3JhZGVkIHRoaXMgbW9kdWxlLCBwbGVhc2UgcmVhZCB0aGUgQWJvdXQgaW5mb3JtYXRpb24gZm9yIGluc3RhbGxhdGlvbi91cGdyYWRlIGlzc3Vlcy48L3A+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LTIwMTEuPGJyPgpBdXRob3I6IER1a2V0b3duCjwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdGFydD0iIiAtIFRoZSBzdGFydGluZyB2YWx1ZSBmb3IgdGhlIHBhZ2Ugb2YgcHJvZHVjdHMuIElmIHlvdSB3YW50IHRvIHNob3cgYWxsIHByb2R1Y3RzIHN0YXJ0aW5nIGF0IHRoZSBmb3VydGgsIHVzZSAnc3RhcnQ9NCcuIFRoaXMgcGFyYW1ldGVyIGlzIG9ubHkgdXNlZCBpZiB0aGUgcGFyYW1ldGVyIGRpc3BsYXkgY29udGFpbnMgInByb2R1Y3RsaXN0IiBvciAiZmVhdHVyZWQiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcGFnZW51bWJlcj0iIiAtIEVudGVyIHRoZSBudW1iZXIgb2YgdGhlIHBhZ2UgdGhhdCB0aGUgcHJvZHVjdHMgc2hvdWxkIGJlIHNob3duLiAncGFnZW51bWJlcj0yJyB3aWxsIHNob3cgYWxsIHByb2R1Y3RzIGFzIG9mIHBhZ2UgMi4KVGhlIHZpc2l0b3Igd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGUgcHJldmlvdXMgcGFnZSBhbmQgdGhlIG5leHQgKGlmIGFueSkuIElmIHRoZSBwYWdlbnVtYmVyIGlzIG5vdCBwYXNzZWQsIHBhZ2UgMSB3aWxsIGJlIHNob3duLiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zICJwcm9kdWN0bGlzdCIgb3IgImZlYXR1cmVkIi48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHByb2RwYWdlbGltaXQ9IiIgLSBUaGUgbnVtYmVyIG9mIHByb2R1Y3RzIHRoYXQgYXJlIHRvIGJlIHNob3duIG9uIG9uZSBwYWdlLiBUaGlzIG92ZXJyaWRlcyB0aGUgdmFsdWUgYXMgZW50ZXJlZCBpbiB0aGUgb3B0aW9ucy4gVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGlmIHRoZSBwYXJhbWV0ZXIgZGlzcGxheSBjb250YWlucyAicHJvZHVjdGxpc3QiIG9yICJmZWF0dXJlZCIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnRjYXRlZ29yeT0iIiAtIEludGVybmFsIG51bWJlciBvZiBjYXRlZ29yeS4gVGhpcyB3aWxsIHNob3cgYSBsaXN0IG9mIGFsbCB0aGUgY2F0ZWdvcmllcyB1c2luZyB0aGUgcHJvdmlkZWQgbnVtYmVyIGFzIHBhcmVudC4gVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGlmIHRoZSBwYXJhbWV0ZXIgZGlzcGxheSBjb250YWlucyBjYXRlZ29yeWxpc3QuClRoZSBpbnRlcm5hbCBudW1iZXIgY2FuIGJlIGZvdW5kIG9uIHRoZSBsZWZ0IHNpZGUgb2YgZWFjaCBjYXRlZ29yeSBpbiB0aGUgYWRtaW4gcGFnZSBvZiB0aGlzIG1vZHVsZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRpc3BsYXk9IiIgLSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGlzcGxheSB5b3Ugd2FudCB0byBzaG93LiBUaGVyZSBhcmUgY3VycmVudGx5IHR3byBhdmFpbGFibGU6PHVsPgoJPGxpPmNhdGVnb3J5bGlzdCAoZGVmYXVsdCkgLSBzaG93cyBhIGxpc3Qgb2YgdGhlIGNhdGVnb3JpZXMgYW5kIHRoZSBudW1iZXIgb2YgcHJvZHVjdHMgd2l0aGluIGNhdGVnb3J5IChvbmUgbGV2ZWwgb25seSEpOzwvbGk+Cgk8bGk+Y2F0bGlzdCAtIHNob3dzIGxpc3Qgb2YgY2F0ZWdvcmllcyB3aXRoIG51bWJlciBvZiBwcm9kdWN0cy4gVXNlIHRoaXMgaWYgbXVsdGlwbGUgbGV2ZWxzIG9mIGNhdGVnb3JpZXMgYXJlIHVzZWQ7PC9saT4KCTxsaT5mZWF0dXJlZCAtIHNob3dzIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgbWFya2VkIGFzIGZlYXR1cmVkOzwvbGk+Cgk8bGk+cHJvZHVjdGxpc3QgLSBzaG93IHByb2R1Y3RzIGZyb20gYSBuYW1lZCBjYXRlZ29yeTs8L2xpPgoJPGxpPnNpdGVtYXAgLSB1c2UgaXQgZm9yIGJ1aWxkaW5nIGEgZ29vZ2xlIHNpdGVtYXAgZm9yIHRoZSBtb2R1bGUuIFlvdSBjYW4gdXNlIHRoZSB0YWcKCSB7Y21zX21vZHVsZSBtb2R1bGU9J1NpbXBsZVNob3AnIGRpc3BsYXk9J3NpdGVtYXAnIGRldGFpbHBhZ2U9J3BhZ2VfYWxpYXMnfSBmb3IgdGhlIFNpdGVtYXBNZ3I7PC9saT4KPC91bD4KPGxpPihvcHRpb25hbCkgc29ydD0icHJpY2UiIC0gRmllbGQgdG8gc29ydCBieS4gT3B0aW9ucyBhcmU6ICJwcmljZSIsICJwcm9kdWN0X2lkIiwgInBvc2l0aW9uIi4gCkRlZmF1bHRzIHRvICJwcm9kdWN0X2lkIi4gVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGlmIHRoZSBwYXJhbWV0ZXIgZGlzcGxheSBjb250YWlucyAicHJvZHVjdGxpc3QiIG9yICJmZWF0dXJlZCIuCjwvbGk+CjxsaT4ob3B0aW9uYWwpIHNvcnRfb3JkZXI9IkFTQ3xERVNDIiAtIFNvcnQgcHJvZHVjdHMgaXRlbXMgaW4gYXNjZW5kaW5nIG9yZGVyIG9yIGRlc2NlbmRpbmcgb3JkZXIuPC9saT4KPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBkZXRhaWxwYWdlPSIiIC0gVGhlIGFsaWFzIG9mIHRoZSBwYWdlIHRvIHVzZSB3aGVuIGRldGFpbCBpcyByZXF1ZXN0ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRuYW1lPSIiIC0gTmFtZSBvZiBjYXRlZ29yeS4gTXVzdCBleGFjdGx5IG1hdGNoLiBJZiBsZWZ0IGJsYW5rLCB0aGUgcHJvZHVjdHMgZnJvbSB0aGUgcm9vdCBjYXRlZ29yeSB3aWxsIGJlIHNob3duLgpUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zIHByb2R1Y3RsaXN0IChzZWUgZXhhbXBsZSkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeV9pZD0iIiAtIFRoZSBjYXRlZ29yeSBpZC4gSWYgbGVmdCBibGFuaywgdGhlIHByb2R1Y3RzIGZyb20gdGhlIHJvb3QgY2F0ZWdvcnkgd2lsbCBiZSBzaG93bi48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBEdWtldG93bjxiciAvPjxiciAvPlZlcnNpb246IDEuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICAgIDxsaT5WZXJzaW9uIDEuMCBEZWNlbWJlciAyMDIyPC9saT4KCTx1bD4KCTxsaT5SZXdyaXR0ZW4gZm9yIGNtc21zIDIueDwvbGk+Cgk8L3VsPgoJPGxpPlZlcnNpb24gMC4zLjkgNCBEZWNlbWJlciAyMDEyPGJyIC8+CgkJPHVsPgoJCQk8bGk+TGluayB0byBTaW1wbGVDYXJ0IHVwZGF0ZWQgc28gcHJldHR5IFVSTCdzIGNhbiBiZSB1c2VkOzwvbGk+CgkJCTxsaT5MYXN0IHVzZWQgY2F0ZWdvcnkgaXMgcmVtZW1iZXJlZCBpbiBiYWNrIGVuZDs8L2xpPgoJCQk8bGk+SW1hZ2UgZGVzY3JpcHRpb24gb2YgZmlyc3QgaW1hZ2Ugbm93IGF2YWlsYWJsZSBpbiBDYXRlZ29yeSAmIFByb2R1Y3RzIHRlbXBsYXRlIGFzICRlbnRyeS0+aW1hZ2VkZXNjOzwvbGk+CgkJCTxsaT5Qcm9ibGVtIHdpdGggbG9uZy1uYW1lZCBwcm9kdWN0IGltYWdlcyAoYnVnIyA3MzE1LiBTb2x1dGlvbiBwcm92aWRlZCBieSA8YSBocmVmIj1odHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3VzZXJzL0dhc3QwMG4iIHRhcmdldD0iX2JsYW5rIj5HYXN0MDBuPC9hPik8L2xpPgoJCQk8bGk+TWlub3IgY2hhbmdlcyBpbiBkZWZhdWx0IHN0eWxlc2hlZXQgZm9yIHRoZSBzaG9wOzwvbGk+CgkJCTxsaT5WZXJzaW9uIGNhbiBvbmx5IGJlIHVzZWQgYXMgb2YgQ01TTVMgMS4xMDs8L2xpPgoJCQk8bGk+UmVtb3ZlZCBqdW5rIHBhcmFtZXRlciBmcm9tIHByZXR0eSB1cmwgdG93YXJkcyBwcm9kdWN0IGRldGFpbDs8L2xpPgoJCQk8bGk+QWRkZWQgZXh0cmEgZXhhbXBsZSBpbiBjYXRlZ29yeS9wcm9kdWN0bGlzdCB0ZW1wbGF0ZSBmb3IgbXVsdGlwbGUgY29sdW1ucyB3aXRoIHByb2R1Y3RzOzwvbGk+CgkJCTxsaT5JbmNsdWRlZCBsaW5rIGluIGhlbHAgdGV4dCB0byB0aGUgdHJhbnNsYXRpb25zOzwvbGk+CgkJCTxsaT5ObyByZXR1cm4gYWZ0ZXIgZWRpdGluZyBhIHByb2R1Y3QgKGJ1ZyMgNzMxNCkuIE5ldyBidXR0b24gJ1NhdmUgYW5kIFJldHVybicgc29sdmVzIHRoaXM7PC9saT4KCQkJPGxpPkltYWdlcyBmb2xkZXIgbm90IGNyZWF0ZWQgY29ycmVjdGx5IChidWcjIDczMTMuIFNvbHV0aW9uIHByb3ZpZGVkIGJ5IDxhIGhyZWYiPWh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvdXNlcnMvR2FzdDAwbiIgdGFyZ2V0PSJfYmxhbmsiPkdhc3QwMG48L2E+KS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjggMSBEZWNlbWJlciAyMDExPGJyIC8+CgkJPHVsPgoJCQk8bGk+QWRkZWQgcGFyYW1ldGVycyB0byBvdmVyY29tZSB3cm9uZ2x5IHBhc3NlZCBvbiBmcm9udCBlbmQ7PC9saT4KCQkJPGxpPk9uIHRoZSBjYXRlZ29yeSBsaXN0LCBuZXcgZmllbGRzIGFyZSBtYWRlIGF2YWlsYWJsZTogZW50cnktPmNhdG5hbWUgYW5kIGVudHJ5LT5jYXRjb3VudDs8L2xpPgoJCQk8bGk+VHlwbyBjYXVzZWQgcHJvZHVjdHNfaW5fcm9vdF9jYXRlZ29yeSBuZXZlciB0byBiZSBzaG93biBjb3JyZWN0bHkgd2hlbiB1c2luZyBkaXNwbGF5PWNhdGxpc3Q7PC9saT4KCQkJPGxpPlJlc29sdmVkIGVycm9yIHdoZW4gc2VhcmNoIGZvciBwcm9kdWN0IHdhcyB1c2VkIChidWcjIDcyMTApOzwvbGk+CgkJCTxsaT5NYWtlIHN1cmUgbm8gbG9nZ2luZyB0byBhZG1pbiBsb2cgaXMgZG9uZSBieSBzZXR0aW5nIHJlc3RyaWN0ZWQgcGFyYW1ldGVycy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjcgMjIgT2N0b2JlciAyMDExPGJyIC8+CgkJPHVsPgoJCQk8bGk+UHJpY2UgYW5kIHdlaWdodCB3ZXJlIG5vdCBzYXZlZCBjb3JyZWN0bHkgZHVlIHRvIG51bWJlciBmb3JtYXRpbmcuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy42IDEyIE9jdG9iZXIgMjAxMTxiciAvPgoJCTx1bD4KCQkJPGxpPkFsbCBjaGVja3MsIGlmIHNlYXJjaCBtb2R1bGUgd2FzIGluc3RhbGxlZCwgYXJlIHJlbW92ZWQ7PC9saT4KCQkJPGxpPkl0ZW0gbnVtYmVyIGlzIG5vdyBzaG93biBvbiBsaXN0IG9mIGl0ZW1zOzwvbGk+CgkJCTxsaT5TZWFyY2ggYnkgaXRlbSBudW1iZXIgbm93IGF2YWlsYWJsZTs8L2xpPgoJCQk8bGk+V2hlbiBhZGRpbmcvY2hhbmdpbmcgYSBwcm9kdWN0IGFuZCBJbnZlbnRvcnkgTWFuYWdlbWVudCBpcyBpbnN0YWxsZWQsIHByb2R1Y3QgZXh0ZW5zaW9uIGluZm8gY2FuIGJlIGVudGVyZWQgb24gc2FtZSBwYWdlOzwvbGk+CgkJCTxsaT5OZXcgZnVuY3Rpb24gaW4gYmFjayBlbmQgYWRkZWQ6IHF1aWNrIHNlbGVjdG9yIGZvciBlYXN5IGxvY2F0aW5nIGEgY2F0ZWdvcnk7PC9saT4KCQkJPGxpPlByaWNlIGZvcm1hdHRpbmcgZm9sbG93cyBydWxlcyBvZiBDYXJ0TVMgKGlmIG5vdCBpbnN0YWxsZWQgc2VlIG9wdGlvbnMpIChmZWF0dXJlIHJlcXVlc3Q6IzY2NTcpOzxiciAvPgoJCQlXZWlnaHQgZm9ybWF0dGluZyBpcyBub3cgY29udHJvbGxlZCBieSBudW1iZXIgZm9ybWF0dGluZyBpbiB0aGUgb3B0aW9ucy48YnIgLz4KCQkJWW91IHdpbGwgaGF2ZSB0byByZW1vdmUgYWxsICd8bnVtYmVyX2Zvcm1hdDoyJyByZWZlcmVuY2VzIGluIGFsbCBTaG9wTVMgdGVtcGxhdGVzLjwvbGk+CgkJCTxsaT5Pbmx5IGFjdGl2ZSBwcm9kdWN0cyBhcmUgc2hvd24gaW4gdGhlIGZlYXR1cmVkIGxpc3Qgb2YgcHJvZHVjdHM7PC9saT4KCQkJPGxpPlBhZ2luYXRpb24gYnVpbGQgaW4gZm9yIGxpc3Qgb2YgZmVhdHVyZWQgcHJvZHVjdHMgKGZlYXR1cmUgcmVxdWVzdDojNjcxMCk7PC9saT4KCQkJPGxpPkltcHJvdmVkIGZsb3cgYWZ0ZXIgcHJlc3NpbmcgY2FuY2VsIGluIHByb2R1Y3QgZWRpdCAoY29ycmVjdCBjYXRlZ29yeSBwYXRoIHNob3duIG5vdyk7PC9saT4KCQkJPGxpPlZlcnNpb24gcHJlcGFyZWQgZm9yIHVzZSB3aXRoIENNU01TIHZzIDEuOS40LnggYW5kIDEuMTAuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy41IDIgQXVndXN0IDIwMTE8YnIgLz4KCQk8dWw+CgkJCTxsaT5BZGQgdG8gY2FydCBmcm9tIHByb2R1Y3QgbGlzdCB3YXMgYWJsZSB0byBhZGQgc2Vjb25kIGxpbmUgd2l0aCBzYW1lIHByb2R1Y3Q7PC9saT4KCQkJPGxpPk1pbm9yIGNoYW5nZXMgc28gbW9kdWxlIHdvcmtzIHdpdGggUG9zdGdyZXNzIGRhdGFiYXNlIGFzIHdlbGwgKHRoYW5rcyBnbyB0byBCcmV0dCBvZiBCaW5hcnlzdHVkaW9zLm5ldCkuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy40IDEyIEp1bmUgMjAxMTxiciAvPgoJCTx1bD4KCQkJPGxpPlRpbWUgb2YgZGVjcmVhc2luZyB0aGUgaW52ZW50b3J5IHN0b2NrIGxldmVsIGNhbiBub3cgYmUgc2V0IHZpYSBwcmVmZXJlbmNlczs8L2xpPgoJCQk8bGk+UGFnaW5hdGlvbiBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgb24gcHJvZHVjdCBsaXN0IHBhZ2UgKGFmdGVyIHNlbGVjdGluZyBjYXRlZ29yeSk7PC9saT4KCQkJPGxpPkF0dHJpYnV0ZSBpdGVtIG51bWJlcnMgd2VyZSBub3QgY2FwaXRhbGl6ZWQgYXV0b21hdGljYWxseSB3aGVuIG9wdGlvbiB0byBkbyBzbyB3YXMgb247PC9saT4KCQkJPGxpPlBhZ2luYXRpb24gZGlkbid0IHdvcmsgd2hlbiBvbmx5IG9uZSBpdGVtIHNob3VsZCBiZSBzaG93biBwZXIgcGFnZSAoYnVnIyAzODg3KTs8L2xpPgoJCQk8bGk+Q2FsY3VsYXRpb24gb2YgYXR0cmlidXRlIHByaWNlIHdhcyB3cm9uZyB3aGVuIHByaWNlIGFkanVzdG1lbnQgd2FzICcrJyBvciAnLSc7PC9saT4KCQkJPGxpPk5ldyB2YXJpYWJsZSBhdmFpbGFibGUgaW4gdGhlIHRoZSBwcm9kdWN0IGxpc3RpbmcgdGVtcGxhdGU6IGF2YWlsYWJsZXN0b2NrLiBUaGlzIGhvbGRzIHRoZSAKCQkJcXVhbnRpdHkgYXZhaWxhYmxlIG9mIHRoZSBwcm9kdWN0IHRoYXQgaXMgb24gc3RvY2s7PC9saT4KCQkJPGxpPklmIGludmVudG9yeSBtYW5hZ2VtZW50IG1vZHVsZSBpcyBpbiB1c2UsIHNhbGVzIHRyYW5zYWN0aW9ucyBhcmUgcGFzc2VkOzwvbGk+CgkJCTxsaT5DaGFuZ2VkIHRoZSBtYXhpbXVtIHZlcnNpb24gb2YgQ01TTVMgdG8gbWFrZSBzdXJlIG5vIHByb2JsZW1zIHdpdGggdmVyc2lvbiAxLjEwIG9mIENNU01TLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjMuMyAyNiBNYXkgMjAxMTxiciAvPgoJCTx1bD4KCQkJPGxpPkV4dGVuZGVkIGxlbmdodCBvZiBuYW1lIG9mIHByb2R1Y3QgaW5wdXQgdG8gMjU1IGluIHRvdGFsOzwvbGk+CgkJCTxsaT5JZiBpbnZlbnRvcnkgdHlwZSBwcmVmZXJlbmNlIHNldCB0byAnTm90IHVzZWQnLCBhbGxvdyBhZGQgdG8gY2FydCBvcHRpb24uPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy4yIDIxIERlY2VtYmVyIDIwMTA8YnIgLz4KCQk8dWw+CgkJCTxsaT5BdHRyaWJ1dGUgZGVzY3JpcHRpb24gd2FzIG5vdCBzYXZlZCB3aGVuIGF0dHJpYnV0ZSB3YXMgYWRkZWQ7PC9saT4KCQkJPGxpPldoZW4gZWRpdGluZyBhIGNhdGVnb3J5LCB0aGUgY2F0ZWdvcnkgdGhhdCBpcyBlZGl0ZWQgY2FuJ3QgYmUgc2V0IGFzIHRoZSBwYXJlbnQgY2F0ZWdvcnk7PC9saT4KCQkJPGxpPkRlcGVuZGVudCBvbiBpbnZlbnRvcnkgc2V0dGluZ3MsIGxhYmVscyBvZiBmaWVsZHMgb24gcHJvZHVjdCBhbmQgYXR0cmlidXRlIGxldmVsIGFyZSBzaG93biBvciBoaWRkZW47PC9saT4KCQkJPGxpPklmIHByb2R1Y3QgaXMgZGVhY3RpdmF0ZWQsIGl0cyBzZWFyY2ggaW5kZXggZW50cmllcyBhcmUgcmVtb3ZlZC48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjEgMTcgTm92ZW1iZXIgMjAxMDxiciAvPgoJCTx1bD4KCQkJPGxpPldoZW4gdW5pbnN0YWxsaW5nLCB0aGUgc2VhcmNoIGluZGV4IGVudHJpZXMgb2YgdGhlIHByb2R1Y3RzIGFyZSByZW1vdmVkOzwvbGk+CgkJCTxsaT5QcmVmZXJlbmNlcyBub3cgaG9sZHMgZmllbGQgdGhhdCBhbGxvd3MgdHJhY2tpbmcgb2YgaW52ZW50b3J5IG9uIHByb2R1Y3Qgb3IgYXR0cmlidXRlIGxldmVsIChSZXF1ZXN0IyA0NTAxKTs8L2xpPgoJCQk8bGk+TWFrZSBtYXggYXR0cmlidXRlcyBvbiBwcm9kdWN0IGxldmVsIG1haW50YWluYWJsZTs8L2xpPgoJCQk8bGk+Tm90IGFjdGl2ZSBhdHRyaWJ1dGVzIHdoZXJlIHNob3duIG9uIGZyb250IGVuZCwgZnJvbSB0aGlzIG1vbWVudCBvbiB0aGlzIGlzIG5vdCB0aGUgY2FzZSBhbnltb3JlLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjMuMCA2IE5vdmVtYmVyIDIwMTA8YnIgLz4KCQk8dWw+CgkJCTxsaT5OYW1lIG9mIHNob3AgaW4gcHJlZmVyZW5jZXMgaXMgbm93IHVzZWQgaW4gZG9jdW1lbnQgcHJvcGVydGllcyBvZiBpbnZvaWNlIGdlbmVyYXRlZCBpbiBDYXJ0IE1hZGUgU2ltcGxlOzwvbGk+CgkJCTxsaT5CaWcgY2hhbmdlIG9uIHRoZSBwZXJtaXNzaW9uIHN5c3RlbS4gTm90ZSAtLT4gQWxsIHByZXZpb3VzIFNob3AgTWFkZSBTaW1wbGUgcGVybWlzc2lvbnMgYXJlIGdvbmUgd2hlbiB1cGdyYWRlZCEgU29ycnksIHRoaXMgY291bGQgbm90IGJlIGF2b2lkZWQ7PC9saT4KCQkJPGxpPlNob3dpbmcgbXVsdGlwbGUgbGV2ZWxzIGluIGNhdGVnb3JpZXMgbm93IHBvc2libGUgd2l0aCBwYXJtIGNhdGxpc3QgKHNlZSBoZWxwIHRleHQpOzwvbGk+CgkJCTxsaT5JbmNsdWRlIHByaWNlIGZvcm1hdGluZyBpbiBkZWZhdWx0IGNhdGVnb3J5L3Byb2R1Y3RzIHRlbXBsYXRlOzwvbGk+CgkJCTxsaT5HZXQgcmlkIG9mIHB1YmxpYyBtZW1iZXIgdmFyaWFibGVzIHN1Y2ggYXMgJ2dsb2JhbCAkZ0Ntcyc7PC9saT4KCQkJPGxpPk1pbmltdW0gdmVyc2lvbiBzZXQgdG8gMS44LjEgZHVlIHRvIHJlbW92YWwgcHVibGljIG1lbWJlciB2YXJpYWJsZXM7PC9saT4KCQkJPGxpPlJlbW92ZWQgY2FsbCB0byBzb21ldGltZXMgbm90IHdvcmtpbmcgZXhpZl9pbWFnZTs8L2xpPgoJCQk8bGk+TWFkZSBiZXR0ZXIgdXNlIG9mIHBhdGggZGlyZWN0b3J5IHNlcGFyYXRvcjs8L2xpPgoJCQk8bGk+SW50cm9kdWN0aW9uIG9mIG1heGltdW0gbnVtYmVyIG9mIGF0dHJpYnV0ZXMgcGVyIHByb2R1Y3Q7PC9saT4KCQkJPGxpPk5ldyBwcmVmZXJlbmNlczogJ21heGltdW0gYXR0cmlidXRlcycgYW5kICdhbGxvdyBkdXBsaWNhdGUgaXRlbSBudW1iZXInIGFkZGVkIHRvIHByZWZlcmVuY2UgcGFnZTs8L2xpPgoJCQk8bGk+U2luY2UgaXQgaGFkIHRvdGFseSBubyBmdW5jdGlvbiwgZGVmYXVsdCBsYW5ndWFnZSBoYXMgYmVlbiByZW1vdmVkIGZyb20gcHJlZmVyZW5jZXMgcGFnZTs8L2xpPgoJCQk8bGk+Q2hhbmdlZCBkZWZhdWx0IHByb2R1Y3QgZGV0YWlsIHRlbXBsYXRlIHdpdGggcmVnYXJkcyB0byBudW1iZXIgb2YgZGVjaW1hbHMgb24gcHJpY2U7PC9saT4KCQkJPGxpPlRhYmxlIGF0dHJpYnV0ZV9vcHRpb25zIHJlbW92ZWQsIGNvbnRlbnQgd2FzIG5vdCBtYWludGFpbmFibGUsIGFsbCBmaWVsZHMgbm93IGluIHRhYmxlIHByb2R1Y3RfYXR0cmlidXRlczs8L2xpPgoJCQk8bGk+QXR0cmlidXRlcyBvZiBwcm9kdWN0IG5vdyBob2xkIHByaWNlIGZhY3RvciBhbmQgdmFyaW91cyBvdGhlciBmaWVsZHMgKFJlcXVlc3QjIDM4MjYpOzwvbGk+CgkJCTxsaT5Nb3ZlZCBmdW5jdGlvbnMgaW50ZXJuYWxseSBhcm91bmQsIHNvIG1vZHVsZSBiZWNvbWVzIGEgYml0IG1vcmUgbGlrZSBzdGFuZGFyZDs8L2xpPgoJCQk8bGk+VmVyc2lvbiAwLjIuOSBvbiBwdXJwb3NlIHNraXBwZWQsIHNpbmNlIHRoaXMgaXMgYSBtYWpvciByZWxlYXNlLiBTaW5jZSB0aGlzIHZlcnNpb24gYnJlYWtzIHdpdGggdGhlIG9yaWdpbmFsLCBEdWtldG93biB0aGFua3MgCgkJCUdhcnkgR3JleWxpbmcgKExhaHVpbmRhaSkgZm9yIGFsbCBoaXMgcGVyZmVjdCB3b3JrLiBUaW1lIHRvIG1vdmUgb24uPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi44IDkgU2VwdGVtYmVyIDIwMTA8YnIgLz4KCQk8dWw+CgkJCTxsaT5ObyBtb3JlIHByb2JsZW1zIHdpdGggcHJvZHVjdCBwcmljZXMgZ3JlYXRlciB0aGFuIDk5OSAoYnVnIyA0NTExKTs8L2xpPgoJCQk8bGk+QWxsb3cgbW9kdWxlIHRvIHJ1biBpbiAxLjggZW52aXJvbm1lbnQgb2YgQ01TTVM7PC9saT4KCQkJPGxpPlJlbmFtZSBvZiBjbGFzcyBQcm9kdWN0cyB0byBTTVNQcm9kdWN0cyBzbyBtb2R1bGUgY2FuIHJ1biBuZXh0IHRvIHByb2R1Y3RzIG1vZHVsZTs8L2xpPgoJCQk8bGk+TmFtZSBvZiBwcm9kdWN0IGhhcyBiZWVuIGluY3JlYXNlZCB3aXRoIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gMzAgdG8gMjU1OzwvbGk+CgkJCTxsaT5Xb3JrIGRvbmUgb24gcHJldHR5IFVSTCAoYnVnIyAzMTIyJjQwODEpIHNvbHZlZCBieSBkcnVtem9uZTs8L2xpPgoJCQk8bGk+TmV0d2VpZ2h0IG5vdyBhdmFpbGFibGUgYXMgdmFyaWFibGUgaW4gdGhlIHByb2R1Y3QgZGV0YWlsIG92ZXJ2aWV3LjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuNyAxIE1hcmNoIDIwMTA8YnI+CgkJPHVsPgoJCQk8bGk+SW5wdXQgcGFyYW1ldGVycyB3ZXJlIG5vdCBjbGVhbmVkIGF0IGNvcnJlY3QgbW9tZW50IGNhdXNpbmcgd2FybmluZ3M7PC9saT4KCQkJPGxpPkNhdGVnb3J5IGFuZCBwcm9kdWN0cyB0ZW1wbGF0ZSB0aGF0IGlzIHVzZWQgZHVyaW5nIGluc3RhbGxhdGlvbiBleHRlbmRlZCB0byBpbmNsdWRlIGhvdyB0byB1c2UgaW1hZ2Ugb2YgYWRkIHRvIGNhcnQ7PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi42IDEgTm92ZW1iZXIgMjAwOTxicj4KCQk8dWw+CgkJCTxsaT5TZXQgbWF4aW11bSBDTVNNUyB2ZXJzaW9uIHRvIDEuNi45IHRvIG92ZXJjb21lIHByb2JsZW1zOzwvbGk+CgkJCTxsaT5DaGFuZ2UgbG9nIG5vdCBpbiB0cmFuc2xhdGlvbiBhbnltb3JlLCBzbyB0aGlzIGxvZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBFbmdsaXNoOzwvbGk+CgkJCTxsaT5QcmVwYXJlIGFkZCB0byBjYXJ0IGxpbmsgd2l0aCBpbWFnZSAoRmVhdCBSZXEjMzMyNCkuIEltYWdlIHRha2VuIGlzIFNpbXBsZVNob3AvaW1hZ2VzL2FkZHRvY2FydC5naWYuIENoYW5nZSB0aGlzIGltYWdlIGlmIG5lZWRlZC48YnI+CgkJCVVzZSB7JGFkZHByb2R1Y3RpbWFnZX0gaW4gdGhlIHRlbXBsYXRlIGluIHN0ZWFkIG9mIHskYWRkcHJvZHVjdH0sIHdoaWNoIGlzIHRoZSB0ZXh0OzwvbGk+CgkJCTxsaT5SZW1vdmVkIHByb2R1Y3QgaWQgb24gZGVmYXVsdCBmZWF0dXJlZCBwcm9kdWN0cyB0ZW1wbGF0ZS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjUgMTAgQXVndXN0IDIwMDk8YnI+CgkJPHVsPgoJCQk8bGk+TWlzc2luZyBjb2RlIGluIGZyb250IGVuZCBwcm9kdWN0IGRldGFpbC4gKGJ1ZyMgMzg1MCkgc29sdmVkIGJ5IE5hTi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjQgMjYgSnVseSAyMDA5PGJyPgoJCTx1bD4KCQkJPGxpPkF1dG9tYXRpYyBpbnN0YWxsYXRpb24gb2Ygc3R5bGVzaGVldCBcJ01vZHVsZTogU2hvcCBNYWRlIFNpbXBsZVwnIHdhcyBub3Qgd29ya2luZyAoc3R5bGVzaGVldCB3aWxsIGJlIGluc2VydGVkIGR1cmluZyB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjIuMyB0byAwLjIuNCk7PC9saT4KCQkJPGxpPkFjdGl2YXRpbmcgYW5kIGRlYWN0aXZhdGluZyB3YXMgbm90IHdvcmtpbmcgY29ycmVjdGx5IGZvciBjYXRlZ29yaWVzIGluIGxpc3Qgb2YgY2F0ZWdvcmllcywgY2hhbmdlIGFsc28gYXBwbGllZCBmb3IgcHJvZHVjdHM7PC9saT4KCQkJPGxpPk5vIHRlc3QgZGF0YSBjcmVhdGVkIGFueW1vcmUgYXV0b21hdGljYWxseSBkdXJpbmcgaW5zdGFsbGF0aW9uOzwvbGk+CgkJCTxsaT5PbiBwcm9kdWN0IGRldGFpbCBuZXcgdmFyaWFibGVzIGludHJvZHVjZWQ6IHtpbWFnZXRodW1ifSBhbmQge2Z1bGxwYXRoaW1hZ2V9IHRvIHN1cHBvcnQgaW1hZ2VzIGJldHRlcjs8L2xpPgoJCQk8bGk+Tm8gY2F0ZWdvcnkgYW5kIHByb2R1Y3QgaWQgdXNlZCBhbnltb3JlIGluIGluc3RhbGxlZCB0ZW1wbGF0ZSBvZiBjYXRhZ29yeSBsaXN0OzwvbGk+CgkJCTxsaT5EZWZhdWx0IGN1cnJlbmN5IGlzIHNldCB0byBFdXJvOzwvbGk+CgkJCTxsaT5Xb3JrIGRvbmUgb24gcHJldHR5IFVSTCAtLT4gbm90IGZ1bGx5IGZ1bmN0aW9uYWw7PC9saT4KCQkJPGxpPkJ1ZyBzb2x2ZWQgKGJ5IEZhdGxpemFyZCkgdG8gaGFuZGxlIGNvcnJlY3QgcHJvZHVjdF9pZCBpbiBmZSBwcm9kdWN0IGRldGFpbC48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjMgMTcgTWF5IDIwMDk8YnI+CgkJPHVsPgoJCQk8bGk+SW5pdGlhbGl6ZWQgdmFyaWFibGVzIGNvcnJlY3RseSwgc28gbm8gd2FybmluZyBhcHBlYXJzIGZvciB0aGVtIHdoZW4gcGhwLmluaSBzdGF0ZXMgdG8gc2hvdyB3YXJuaW5nczs8L2xpPgoJCQk8bGk+TmV3IHByZWZlcmVuY2VzIGZvciB0aHVtYm5haWwgZ2VuZXJhdGlvbi4gVXNlIHRoZSByZWJ1aWxkIGJ1dHRvbiB0byBnZW5lcmF0ZSB0aHVtYm5haWxzIGZyb20gZWFybGllciBsb2FkZWQgaW1hZ2VzLjwvbGk+CgkJCTxsaT5UaGUgZGV0YWlsIHRlbXBsYXRlIGhhcyBiZWVuIGNoYW5nZWQgdG8gYWxsb3cgc3dpdGNoaW5nIGltYWdlcy4gQSBzaW1wbGVyIHZlcnNpb24gaXMgYXZhaWxhYmxlIHRvIGNvcHkgZnJvbSBpbiB0aGUKCQkJdGVtcGxhdGVzIGRpcmVjdG9yeS4gVGhlIG5hbWUgaXMgZmVfcHJvZHVjdF9kZXRhaWwxLnRwbC48YnI+CgkJCUlmIHlvdSBoYXZlIHVwZ3JhZGVkIGZyb20gYW4gZWFybGllciB2ZXJzaW9uIHlvdSBtYXkgd2FudCB0byB1c2UgdGhlIHN3aXRjaGluZyBvZiBpbWFnZXMuIExvb2sgaW4gdGVtcGxhdGVzXGZlX3Byb2R1Y3RfZGV0YWlsLnRwbC48L2xpPgoJCQk8bGk+T3JpZ2luYWwgdGVtcGxhdGUgb2YgcHJvZHVjdHMgcGVyIGNhdGVnb3J5IGNoYW5nZWQgdG8gc2hvdyBpbWFnZSB3aXRoIGxpbmsgb24gcHJvZHVjdCBsaW5lLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuMiA4IE1hciAyMDA5PGJyPgoJCTx1bD4KCQkJPGxpPlNob3cgbmFtZSB3aXRob3V0IGxpbmsgdG8gZGV0YWlsIG9uIHByb2R1Y3QgbGlzdGluZyAoZmVhdHVyZSByZXF1ZXN0IyAyOTg2KTogdXNlIHByb2RuYW1lbm9saW5rIGluIHN0ZWFkIG9mIHByb2RuYW1lIGluIHRoZSB0ZW1wbGF0ZS48L2xpPgoJCQk8bGk+QnVpbGQgaW4gbGluayBmcm9tIGltYWdlIHRvIGRldGFpbCBvbiBwcm9kdWN0IGxpc3RpbmcgKGZlYXR1cmUgcmVxdWVzdCMgMzA4Myk6IHVzZSBwcm9kaW1hZ2VsaW5rIGluIHN0ZWFkIG9mIHByb2RpbWFnZSBpbiB0aGUgdGVtcGxhdGUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi4xIDE1IEphbiAyMDA5PGJyPgoJCTx1bD4KCQkJPGxpPlR5cG8gY2F1c2VkIGRpc3BsYXk9cHJvZHVjdGxpc3QgY2F0bmFtZT0uLi4gbm90IHRvIHdvcmsgY29ycmVjdGx5LiBCdWcgc29sdmVkLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuMCAxMSBKYW4gMjAwOTxicj4KCQk8dWw+CgkJCTxsaT5DdXJyZW5jeSBzeW1ib2wgYXZhaWxhYmxlIGZvciBjYXRlZ29yeSBsaXN0ICh1c2UgJGVudHJ5LT5jdXJzeW1ib2x9OzwvbGk+CgkJCTxsaT5UZW1wbGF0ZXMgY2FuIG5vdyBiZSBhZGp1c3RlZCB0byBkZWNyZWFzZSBsZW5ndGggb2YgZGVzY3JpcHRpb24gKHdhcyBoYXJkY29kZWQpIHVzaW5nIHx0cnVuY2F0ZSBpbiB0ZW1wbGF0ZTs8L2xpPgoJCQk8bGk+SGFyZGNvZGVkIHNpZ25hbGluZyB0aGF0IHRoZXJlIGFyZSBubyBjYXRlZ29yaWVzIG9yIHByb2R1Y3RzIGlzIHJlbW92ZWQsIG5vdyBwYXJ0IG9mIHRyYW5zbGF0aW9uOzwvbGk+CgkJCTxsaT5JZiB0aGUgbW9kdWxlIFNlYXJjaCBoYXMgYmVlbiBpbnN0YWxsZWQsIHRoZSBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwcm9kdWN0cyBjYW4gYmUgc2VhcmNoZWQgdXBvbjs8L2xpPgoJCQk8bGk+QnVnIHNvbHZlZCBvbiB1cGRhdGluZyBjYXRlZ29yeSBpbmZvcm1hdGlvbi4gRWRpdG9yIHdhcyBub3Qgd29ya2luZyB3ZWxsOzwvbGk+CgkJCTxsaT5EZXNjcmlwdGlvbiBvZiBjYXRlZ29yeSBhbmQgcHJvZHVjdCBjb3VsZCBzcGFuIHR3byBsaW5lcy4gTm93IGFsd2F5cyBvbmx5IG9uZSBsaW5lOzwvbGk+CgkJCTxsaT5OZXcgcHJlZmVyZW5jZSBhZGRlZCB0byBob2xkIHRoZSBudW1iZXIgb2YgcHJvZHVjdHMgcGVyIHBhZ2U7PC9saT4KCQkJPGxpPlVzaW5nIHBhcmFtZXRlciBwcm9kcGFnZWxpbWl0LCB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzIHBlciBwYWdlIGNhbiBiZSBpbmZsdWVuY2VkIChvdmVycmlkaW5nIHRoZSBwcmVmZXJlbmNlKS48YnI+CgkJCVBhZ2luZyBpcyBwb3NzaWJsZSB1c2luZyB0aGUgZm9sbG93aW5nIGluIHRoZSBDYXRlZ29yaWVzL1Byb2R1Y3RzIHRlbXBsYXRlOjxicj4KCQkJe2lmICRwYWdlY291bnQgPiAxfTxicj4mbmJzcDt7JGZpcnN0cGFnZX0geyRwcmV2cGFnZX0geyRwYWdldGV4dH06ICB7JHBhZ2VudW1iZXJ9IHskb2Z0ZXh0fTogeyRwYWdlY291bnR9IHskbmV4dHBhZ2V9IHskbGFzdHBhZ2V9PGJyPnsvaWZ9CgkJCTxicj48L2xpPgoJCQk8bGk+SW50ZXJuYWwgY2xlYW4gdXAgb2YgZnJvbnQgZW5kIGNhdGVnb3J5IGxpc3RpbmcgcHJvZ3JhbS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjkgMjkgRGVjIDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+UmVtb3ZlZCB0cmFuc2xhdGlvbiBidWcgZHVyaW5nIGluc3RhbGxhdGlvbi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjggMTEgRGVjIDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+U29sdmVkIGlzc3VlIHdoZXJlIHN3aXRjaCBzdGF0dXMgb24gcHJvZHVjdCBjYXVzZWQgZGVzY3JpcHRpb24gdG8gYmUgY2xlYXJlZDs8L2xpPgoJCQk8bGk+RWRpdCBvZiBTdG9jayBLZWVwaW5nIFVuaXQgd2FzIG5vdCB3b3JraW5nOzwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuNyA5IERlYyAyMDA4PGJyPgoJCTx1bD4KCQkJPGxpPkFkZCB0byBjYXJ0IGF2YWlsYWJsZSBhdCBsaXN0IG9mIHByb2R1Y3RzIG9uIGZyb250IGVuZDs8L2xpPgoJCQk8bGk+TmV3IGZpZWxkczogU3RvY2sgS2VlcGluZyBVbml0IChTS1UpIGFuZCBpdGVtbnVtYmVyIGF2YWlsYWJsZSBwZXIgcHJvZHVjdDs8L2xpPgoJCQk8bGk+TWFpbnRlbmFuY2Ugb24gU0tVIGlzIHBvc3NpYmxlOzwvbGk+CgkJCTxsaT5BZGRpdGlvbmFsIHByZWZlcmVuY2UgdG8gYWxsb3cgb25seSBjYXBpdGFsIGNoYXJhY3RlcnMgaW4gaXRlbW51bWJlcjs8L2xpPgoJCQk8bGk+QWRkaXRpb25hbCBwcmVmZXJlbmNlIHRvIHNldCBkZWZhdWx0IFNLVSBkdXJpbmcgYWRkIG9mIGEgcHJvZHVjdC48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjYgMTIgTm92IDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+SW1hZ2Ugb2YgY2F0ZWdvcnkgaXMgbm93IGRpc3BsYXllZCBpbiBmcm9udCBvZiBjYXRlZ29yeSBuYW1lIGluIGNhdGVnb3J5IGxpc3Rpbmc7PC9saT4KCQkJPGxpPkxlbmd0aCBvZiBwcm9kdWN0IGFuZCBhdHRyaWJ1dGUgZGVzY3JpcHRpb24gZW5sYXJnZWQ7PC9saT4KCQkJPGxpPkNoZWNrIGJ1aWxkIGluIGR1cmluZyBpbnN0YWxsYXRpb24gaWYgdGhlIGNvbmZsaWN0aW5nIG1vZHVsZSBQcm9kdWN0cyBoYXMgYmVlbiBpbnN0YWxsZWQ7PC9saT4KCQkJPGxpPkJ1ZyBvbiBhZGRpbmcgbmV3IHByb2R1Y3RzIGNvcnJlY3RlZCAod2FzIGFsd2F5cyBwb2ludGluZyB0byByb290IGFmdGVyIGFkZGluZyk7PC9saT4KCQkJPGxpPkRlbGV0aW9uIG9mIHByb2R1Y3QgcmV0dXJucyB0byBsYXN0IHVzZWQgY2F0ZWdvcnk7PC9saT4KCQkJPGxpPkFmdGVyIFN3aXRjaCBvZiBzdGF0dXMsIGxhc3Qgc2hvd24gY2F0ZWdvcnkvcHJvZHVjdHMgbGlzdCBpcyBzaG93bjs8L2xpPgoJCQk8bGk+RGVzY3JpcHRpb24gYm94ZXMgZm9yIHByb2R1Y3QsIGF0dHJpYnV0ZXMgYW5kIGltYWdlcyBpbXByb3ZlbWVudHM7PC9saT4KCQkJPGxpPlByZXBhcmUgY29ycmVjdCBjb25uZWN0aW9uIG9mIG11bHRpcGxlIGNhdGVnb3JpZXMgdG8gb25lIHByb2R1Y3Q7PC9saT4KCQkJPGxpPlZhcmlhYmxlICRpbWFnZSBpbiBkZXRhaWwgdGVtcGxhdGUgcmVuYW1lZCB0byAkcHJvZGltYWdlLCBzaW5jZSBpdCBtaWdodCBiZSBpbiB1c2UgaW4gb3RoZXIgbW9kdWxlcyAobGlrZSBwcmludGluZyk7PC9saT4KCQkJPGxpPldoZW4gbGFzdCBjYXRlZ29yeSBjb25uZWN0aW9uIHRvIHByb2R1Y3QgaXMgZGVsZXRlZCwgdGhlIHByb2R1Y3Qgd2lsbCBiZSBjb25uZWN0ZWQgdG8gdGhlIHJvb3QgKG90aGVyd2lzZSBpdCBjYW5cJ3QgYmUgc2VsZWN0ZWQgYW55bW9yZSk7PC9saT4KCQkJPGxpPk11bHRpcGxlIGxldmVscyBvZiBjYXRlZ29yaWVzIGlzIGFsbG93ZWQgYXMgb2YgdmVyc2lvbiAwLjEuNSBidXQgaXMgbm90IHN1cHBvcnRlZCBvbiBmcm9udCBlbmQhIChzb3JyeSkuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMS41IEp1bmUgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5NdWx0aXBsZSBsZXZlbHMgb2YgY2F0ZWdvcmllcyBhcmUgYWxsb3dlZC9wb3NzaWJsZTs8L2xpPgoJCQk8bGk+TmV3IHBhcmFtZXRlciBmb3IgZnJvbnRlbmQ6IHBhcmVudGNhdGVnb3J5LjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuNCBNYXkgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5VcGxvYWQgb2YgaW1hZ2UgZm9yIGNhdGVnb3J5IGhhcyBiZWVuIGNoYW5nZWQ7PC9saT4KCQkJPGxpPkNoYW5nZWQgaW5zdGFsbCBzbyBkaXJlY3RvcnkgcGF0aCBjb3JyZWN0IGZvciBjYXRlZ29yaWVzIGFuZCBwcm9kdWN0cy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjMgTWF5IDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+QWxsIGZyb250IGVuZCBwYWdlcyBhcmUgaGFuZGxlZCBieSB0ZW1wbGF0ZXMgZGVyaXZlZCBmcm9tIGFkbWluIHBhcnQ7PC9saT4KCQkJPGxpPkFkbWluaXN0cmF0b3Igbm93IGhhcyB0YWIgY29udGFpbmluZyB0ZW1wbGF0ZXMgYXMgdXNlZCBvbiBmcm9udCBlbmQ7PC9saT4KCQkJPGxpPkZyb250IGVuZCBzaG93cyB3ZXRoZXIgcHJpY2VzIGFyZSBpbmNsLiBvciBleGNsLiBWQVQgZGVwZW5kZW50IG9uIHByZWZlcmVuY2U7PC9saT4KCQkJPGxpPlByb2R1Y3RzIGNvbm5lY3RlZCB0byBjYXRlZ29yeSBzb3J0ZWQgYnkgbGlzdCBvcmRlcjs8L2xpPgoJCQk8bGk+T3ZlcnZpZXcgY2F0ZWdvcmllcyBpbiBiYWNrIGVuZCBhbmQgZnJvbnQgZW5kIG5vdyBzb3J0ZWQgYnkgbGlzdCBvcmRlci48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjIgLSBNYXkgMXN0IDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+V2hlbiBhIGNhdGVnb3J5IGlzIGRlbGV0ZWQsIGl0cyBjb25uZWN0ZWQgcHJvZHVjdHMgd2lsbCBiZSBjb25uZWN0ZWQgdG8gdGhlIHJvb3QgY2F0ZWdvcnkuPC9saT4KCQkJPGxpPlNvbWUgYnV0dG9ucyBsYWNrZWQgcHJvcGVyIHRyYW5zbGF0aW9ucy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjEgLSBBcHJpbCAyMDA4PGJyPgoJCTx1bD4KCQkJPGxpPk5vdyBvcHRpb24gdG8gc2hvdyBwcm9kdWN0cyBvZiBvbmUgY2F0ZWdvcnkgaW4gc2luZ2xlIHBhZ2VzIHVzaW5nIHBhcmFtZXRlcnMuPC9saT4KCQkJPGxpPlNvbWUgZmllbGRzIHR1cm5lZCBpbnRvIGZsb2F0IHRvIGNvcnJlY3RseSBoYW5kbGUgZGVjaW1hbHMuPC9saT4KCQkJPGxpPkRyb3BwZWQgYWRtaW4gcHJlZmVyZW5jZXMgdG8gaG9sZCBzaG9wIHBvbGljaWVzICh1c2UgY29udGVudCBibG9jayBvciBub3JtYWwgQ01TTVMgcGFnZSB3aXRoIHRoZSBwb2xpY2llcykuPC9saT4KCQkJPGxpPkludHJvZHVjdGlvbiBvZiBjaGVja21hcmsgaWYgcHJpY2VzIGFyZSBpbmNsdXNpdmUgb3IgZXhsY3VzaXZlIFZBVCBpbiBwcmVmZXJlbmNlcy48L2xpPgoJCQk8bGk+QWxzbyBpbiBwcmVmZXJlbmNlcyBub3cgdW5pdCBvZiBtZWFzdXJlIGZvciB3ZWlnaHRzIG9mIHRoZSBwcm9kdWN0cy48L2xpPgoJCQk8bGk+SW50cm9kdWN0aW9uIG9mIFZBVCBjb2RlIGFuZCBuZXR0IHdlaWdodCBwZXIgcHJvZHVjdC4gRm9yIGNhbGN1bGF0aW9uIG9mIChzaGlwcGluZykgY29zdCBpbiBDYXJ0IG1vZHVsZTwvbGk+ICAKCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMS4wIC0gQXByaWwgMTh0aCAyMDA4IFJvbGwgb3V0IHZlcnNpb248YnI+CgkJPHVsPgoJCQk8bGk+TGF5b3V0IGNoYW5nZXMgbWFkZTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjAuNCAtIEltcG9ydCBhbmQgRXhwb3J0IFJlbGVhc2U8YnI+CgkJPHVsPgoJCQk8bGk+Q2F0ZWdvcmllczwvbGk+CgkJCTxsaT5Qcm9kdWN0czwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjAuMyAtIENsaWVudCBJbnRlcmZhY2UgUmVsZWFzZTxicj4KCQk8dWw+CgkJCTxsaT5DbGllbnQgaW50ZXJmYWNlIHRhZ3M8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4wLjIgLSBBZG1pbmlzdHJhdGlvbiBFeHRlbmRlZCBSZWxlYXNlCgkJPHVsPgoJCQk8bGk+VGVtcGxhdGVzLCBFdmVudHMsIE9yZGVycywgVHJhbnNsYXRpb25zPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMC4xIC0gQWRtaW5pc3RyYXRpb24gUmVsZWFzZTxicj4KCQk8dWw+CgkJCTxsaT5QcmVmZXJlbmNlcyAtIENvbXBsZXRlZCBvbiAyNC8xMi8yMDA3PC9saT4KCQkJPGxpPkNhdGVnb3JpZXMgLSBDb21wbGV0ZWQgb24gMjUvMTIvMjAwNzwvbGk+CgkJCTxsaT5Qcm9kdWN0czwvbGk+CgkJPC91bD4KCTwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[This module forms the base of preparing a shop. It handles the products and their grouping. Images and attributes are available per product]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.category_add.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJLyogVE9ETzogU2NhbGUgYW5kIGRvIGNoZWNrcyBvbiBmaWxlbmFtZSBvbiB1cGxvYWRlZCBpbWFnZSAqLwoJLyogQnVpbGQgdGhlIHBhdGggd2Ugd2lsbCBiZSB1cGxvYWRpbmcgdGhlIGltYWdlIHRvICovCgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoJJHBhdGggPSAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXSAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfY2F0ZWdvcnknKTsKCgkkdGhpcy0+Y3JlYXRlRm9sZGVyKCRwYXRoKTsKCWZvcmVhY2ggKCRfRklMRVMgYXMgJHVwbG9hZGZpbGUpIHsKCQkkdGhpcy0+Y29weUZpbGUoJHVwbG9hZGZpbGVbJ3RtcF9uYW1lJ10sICRwYXRoLCAkdXBsb2FkZmlsZVsnbmFtZSddLCB0cnVlKTsKCQkvL3ByaW50X3IoJHVwbG9hZGZpbGUpOwoJCSRwYXJhbXNbJ2ltYWdlJ10gPSAkdXBsb2FkZmlsZVsnbmFtZSddOwoJfQoJJHRoaXMtPmNhdGVnb3JpZXMtPkNyZWF0ZSgkcGFyYW1zKTsKCgkkcGFyYW1zID0gYXJyYXkoCgkJJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJywKCQknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1sncGFyZW50X2lkJ10sCgkJJ3RhYl9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnY2F0ZWdvcnlhZGRlZCcpCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgewoJJHBhcmFtcyA9IGFycmF5KAoJCSdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycsCgkJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ3BhcmVudF9pZCddCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KCiRjYXRlZ29yeSA9IGFycmF5KCk7CiRjYXRlZ29yeVsnc3RhcnRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2NhdGVnb3J5X2FkZCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOwokY2F0ZWdvcnlbJ3N1Ym1pdCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSk7CiRjYXRlZ29yeVsnY2FuY2VsJ10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKTsKJGNhdGVnb3J5WydlbmRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwokY2F0ZWdvcnlbJ2lkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJycsCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjYXRlZ29yeV9pZCcsIDApCik7CiRjYXRlZ29yeVsncGFyZW50X2lkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2NhdGVnb3J5X3BhcmVudCcpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdwYXJlbnRfaWQnLCAkdGhpcy0+Y2F0ZWdvcmllcy0+QnVpbGRMaXN0KCRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwgJycsIDApLCAtMSwgaW50dmFsKCRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSkpCik7CiRjYXRlZ29yeVsnbmFtZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9uYW1lJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICcnLCA0MCwgMjU1KQopOwokY2F0ZWdvcnlbJ2Rlc2NyaXB0aW9uJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2NhdGVnb3J5X2Rlc2NyaXB0aW9uJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICcnLCAnZGVzY3JpcHRpb24nLCAncGFnZXNtYWxsdGV4dGFyZWEnLCAnJywgJycsICcnLCA0MCwgNDApCik7CiRjYXRlZ29yeVsnaW1hZ2UnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfaW1hZ2UnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSgkaWQsICdpbWFnZScsICcnLCA0MCkKKTsKJGNhdGVnb3J5WydhY3RpdmUnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfYWN0aXZlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEpCik7CiRjYXRlZ29yeVsncG9zaXRpb24nXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfcG9zaXRpb24nKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwb3NpdGlvbicsICcnLCA0MCwgNDApCik7Cgokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywgJGNhdGVnb3J5KTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdjYXRlZ29yeV9lZGl0LnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.category_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGRlbGV0ZV9jYXRlZ29yeSA9ICR0aGlzLT5jYXRlZ29yaWVzLT5HZXQoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKTsKLyoqCiAqIEdldCBBbnkgU3ViY2F0ZWdvcmllcyBhbmQgUmVhc3NpZ24gdGhlbSB0byB0aGlzIG9uZXMgcGFyZW50CiAqLwpmb3JlYWNoICgkdGhpcy0+Y2F0ZWdvcmllcy0+R2V0TGlzdCgkZGVsZXRlX2NhdGVnb3J5WydjYXRlZ29yeV9pZCddKSBhcyAkY2F0ZWdvcnkpIHsKCSRjYXRlZ29yeVsncGFyZW50X2lkJ10gPSAkZGVsZXRlX2NhdGVnb3J5WydwYXJlbnRfaWQnXTsKCSR0aGlzLT5jYXRlZ29yaWVzLT5VcGRhdGUoJGNhdGVnb3J5KTsKfQovKiBUT0RPOiBHZXQgYW55IFByb2R1Y3RzIGluIHRoaXMgQ2F0ZWdvcnkgYW5kIGFzc2lnbiB0byBVbmFzc2lnbmVkLiAqLwoKJHRoaXMtPmNhdGVnb3JpZXMtPkRlbGV0ZSgkZGVsZXRlX2NhdGVnb3J5KTsKCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiRwYXRoID0gJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc19wYXRoJ10gLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX2NhdGVnb3J5Jyk7CiRuYW1lID0gJHBhdGggLiAkZGVsZXRlX2NhdGVnb3J5WydpbWFnZSddOwovLyBTaXRlIHVtYXNrIHNldCB0byAwMDIyIHdvcmtzIG9rIGR1cmluZyB0ZXN0cywgd2hlbiBwZXJtaXNzaW9uIGRlbmllZCB3YXMgc3RhdGVkLgokdGhpcy0+ZGVsRmlsZSgkbmFtZSk7CgokcGFyYW1zID0gYXJyYXkoCgknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnLAoJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRkZWxldGVfY2F0ZWdvcnlbJ3BhcmVudF9pZCddLAoJJ3RhYl9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnY2F0ZWdvcnlkZWxldGVkJykKKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.category_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKCgkkcGFyYW1zWydpbWFnZSddID0gKGlzc2V0KCRwYXJhbXNbJ2ltYWdlJ10pICYmICFlbXB0eSgkcGFyYW1zWydpbWFnZSddKSkgPyAkcGFyYW1zWydpbWFnZSddIDogJHBhcmFtc1snb2xkX2ltYWdlJ107CgoJZm9yZWFjaCAoJF9GSUxFUyBhcyAkdXBsb2FkZmlsZSkgewoJCWlmICgkdXBsb2FkZmlsZVsnc2l6ZSddID09IDApIGNvbnRpbnVlOwoKCQkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoJCSRwYXRoID0gJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc19wYXRoJ10gLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX2NhdGVnb3J5Jyk7CgoJCSR0aGlzLT5jcmVhdGVGb2xkZXIoJHBhdGgpOwoKCQkkdGhpcy0+Y29weUZpbGUoJHVwbG9hZGZpbGVbJ3RtcF9uYW1lJ10sICRwYXRoLCAkdXBsb2FkZmlsZVsnbmFtZSddLCB0cnVlKTsKCQkkcGFyYW1zWydpbWFnZSddID0gJHVwbG9hZGZpbGVbJ25hbWUnXTsKCgkJJHRoaXMtPmRlbEZpbGUoJHBhdGggLiAkcGFyYW1zWydvbGRfaW1hZ2UnXSk7Cgl9CgoJLy8gUmVzdG9yZSB0aGUgbmFtZSBvZiB0aGUgaW1hZ2UgaWYgbm8gbmV3IGltYWdlIGhhcyBiZWVuIHVwbG9hZGVkCgkkdGhpcy0+Y2F0ZWdvcmllcy0+VXBkYXRlKCRwYXJhbXMpOwoKCSRwYXJhbXMgPSBhcnJheSgKCQknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnLAoJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydwYXJlbnRfaWQnXSwKCQkndGFiX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdjYXRlZ29yeXVwZGF0ZScpCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KLy8gQWxsIGFjdGlvbnMgaGFuZGxlZCwgbm93IGdldCBhbGwgdGhlIGluZm9ybWF0aW9uIGxpbmtlZCB0byB0aGUgcHJvZHVjdAppZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpIHsKCSRjYXRlZ29yeV9kYXRhID0gJHRoaXMtPmNhdGVnb3JpZXMtPkdldCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKTsKfQppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CgkkcGFyYW1zID0gYXJyYXkoCgkJJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJywKCQknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1sncGFyZW50X2lkJ10sCgkJJ3RhYl9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnY2FuY2VsJykKCSk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQoKJGNhdGVnb3J5ID0gYXJyYXkoKTsKJGNhdGVnb3J5WydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnY2F0ZWdvcnlfZWRpdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOwokY2F0ZWdvcnlbJ3N1Ym1pdCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSk7CiRjYXRlZ29yeVsnY2FuY2VsJ10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKTsKJGNhdGVnb3J5WydlbmRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwokY2F0ZWdvcnlbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pCik7CiRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NhdGVnb3J5X2lkJywgJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkKKTsKJGNhdGVnb3J5WydwYXJlbnRfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfcGFyZW50JyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3BhcmVudF9pZCcsICR0aGlzLT5jYXRlZ29yaWVzLT5CdWlsZFRvdGFsTGlzdCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSwgLTEsIGludHZhbCgkY2F0ZWdvcnlfZGF0YVsncGFyZW50X2lkJ10pKQopOwokY2F0ZWdvcnlbJ25hbWUnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfbmFtZScpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkY2F0ZWdvcnlfZGF0YVsnbmFtZSddLCA0MCwgNDAsICdyZXF1aXJlZCcpCik7CiRjYXRlZ29yeVsnZGVzY3JpcHRpb24nXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfZGVzY3JpcHRpb24nKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJGNhdGVnb3J5X2RhdGFbJ2Rlc2NyaXB0aW9uJ10sICdjZGVzY3JpcHRpb24nLCAncGFnZXNtYWxsdGV4dGFyZWEnLCAnJywgJycsICcnLCA0MCwgNDApCik7CiRjYXRlZ29yeVsnaW1hZ2UnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfaW1hZ2UnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbWFnZScsICRjYXRlZ29yeV9kYXRhWydpbWFnZSddLCA0MCwgNDApIC4gJyAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSgkaWQsICduZXdfaW1hZ2UnLCAnJywgNDApCik7CiRjYXRlZ29yeVsnb2xkX2ltYWdlJ10gPSBhcnJheSgKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ29sZF9pbWFnZScsICRjYXRlZ29yeV9kYXRhWydpbWFnZSddKQopOwokY2F0ZWdvcnlbJ2FjdGl2ZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9hY3RpdmUnKSwKCSdpbnB1dCcgPT4gJGNhdGVnb3J5X2FjdGl2ZSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEsICRjYXRlZ29yeV9kYXRhWydhY3RpdmUnXSkKKTsKJGNhdGVnb3J5Wydwb3NpdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9wb3NpdGlvbicpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3Bvc2l0aW9uJywgJGNhdGVnb3J5X2RhdGFbJ3Bvc2l0aW9uJ10sIDQwLCA0MCkKKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeScsICRjYXRlZ29yeSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2F0ZWdvcnlfZWRpdC50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.category_list.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHBhcmFtc1snYWN0aXZlX3RhYiddID0gJ2NhdGVnb3JpZXMnOwokdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGdDbXMgPSBjbXNtcygpOwppZiAoIWlzX29iamVjdCgkZ0NtcykpIGV4aXQ7CgppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7Cgkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCWlmIChpc3NldCgkbm9kZSkpIHsKCQkkY29udGVudCA9ICYkbm9kZS0+R2V0Q29udGVudCgpOwoJCWlmIChpc3NldCgkY29udGVudCkpIHsKCQkJJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCQl9Cgl9IGVsc2UgewoJCSRub2RlID0gJiRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCQlpZiAoaXNzZXQoJG5vZGUpKSB7CgkJCSRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJCX0KCX0KfQoKJGRiID0gJiRnQ21zLT5HZXREYigpOwokZGlzcGxheSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGlzcGxheSddKSkgewoJJGRpc3BsYXkgPSAkcGFyYW1zWydkaXNwbGF5J107Cn0gZWxzZSB7CgkkZGlzcGxheSA9ICdjYXRlZ29yeWxpc3QnOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2F0bmFtZSddKSkgewoJJGNhdG5hbWUgPSAkcGFyYW1zWydjYXRuYW1lJ107Cn0gZWxzZSB7CgkkY2F0bmFtZSA9ICdyb290JzsKfQovL2lmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSkgJGNhdG5hbWUgPSAnJzsKCnN3aXRjaCAodHJpbSgkZGlzcGxheSkpIHsKCWNhc2UgJ2NhdGxpc3QnOgoJCS8vIFByZXBhcmUgYSBjb21wbGV0ZSBsaXN0IG9mIGNhdGVnb3JpZXMgc3RhcnRpbmcgYXQgdG9wIGxldmVsCgkJJGRpc3BsYXkgPSAnZmVfY2F0X2xpc3QnOwoJCS8vIFByZXBhcmUgYSBsaXN0IG9mIHByb2R1Y3RzIGZvciBnaXZlbiBjYXRlZ29yeQoJCWlmICgkY2F0bmFtZSA9PSAncm9vdCcpIHsKCQkJJHBhcmFtc1sncGFyZW50Y2F0ZWdvcnknXSA9IDA7CgkJfSBlbHNlIHsKCQkJJGNhdGluZm8gPSBhcnJheSgpOwoJCQkkY2F0aW5mbyA9ICR0aGlzLT5jYXRlZ29yaWVzLT5HZXRDYXRCeU5hbWUoJGNhdG5hbWUpOwoJCQkkcGFyYW1zWydwYXJlbnRjYXRlZ29yeSddID0gJGNhdGluZm9bJ2NhdGVnb3J5X2lkJ107CgkJfQoJCWJyZWFrOwoJY2FzZSAnY2F0ZWdvcnlsaXN0JzoKCQkvLyBQcmVwYXJlIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGF0IHRvcCBsZXZlbAoJCSRkaXNwbGF5ID0gJ2ZlX2NhdGVnb3J5X2xpc3QnOwoJCWJyZWFrOwoJY2FzZSAncHJvZHVjdGxpc3QnOgoJCS8vIFByZXBhcmUgYSBsaXN0IG9mIHByb2R1Y3RzIGZvciBnaXZlbiBjYXRlZ29yeQoJCWlmICgkY2F0bmFtZSA9PSAncm9vdCcpIHsKCQkJJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA9IGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pID8gJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA6IDA7CgkJfSBlbHNlIGlmICghZW1wdHkoJGNhdG5hbWUpKSB7CgkJCSRjYXRpbmZvID0gYXJyYXkoKTsKCQkJJGNhdGluZm8gPSAkdGhpcy0+Y2F0ZWdvcmllcy0+R2V0Q2F0QnlOYW1lKCRjYXRuYW1lKTsKCQkJJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA9IGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pID8gJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA6ICRjYXRpbmZvWydjYXRlZ29yeV9pZCddOwoJCX0gZWxzZSB7CgkJCS8vbm90aGluZyB0b2RvCgkJfQoJCSRkaXNwbGF5ID0gJ2ZlX3Byb2R1Y3RfbGlzdCc7CgkJYnJlYWs7CgljYXNlICdmZWF0dXJlZCc6CgkJLy8gUHJlcGFyZSBsaXN0IG9mIGFsbCBmZWF0dXJlZCBwcm9kdWN0cwoJCSRwYXJhbXNbJ2FjdGlvbiddID0gJyc7CgkJJGRpc3BsYXkgPSAnZmVfcHJvZHVjdHNfZmVhdHVyZWQnOwoJCWJyZWFrOwoJY2FzZSAncHJvZHVjdGRldGFpbCc6CgkJLy8gUHJlcGFyZSBkZXRhaWxzIGZvciBnaXZlbiBwcm9kdWN0CgkJYnJlYWs7CgljYXNlICdzaXRlbWFwJzoKCQkvLyBQcmVwYXJlIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGF0IHRvcCBsZXZlbAoJCSRkaXNwbGF5ID0gJ3NpdGVtYXAnOwoJCWJyZWFrOwoJZGVmYXVsdDoKCQllY2hvICR0aGlzLT5MYW5nKCd1bmtub3duX2Rpc3BsYXknLCAkZGlzcGxheSk7CgkJcmV0dXJuOwp9CgpyZXF1aXJlKGRpcm5hbWUoX19GSUxFX18pIC4gJy9hY3Rpb24uJyAuICRkaXNwbGF5IC4gJy5waHAnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBNb2R1bGU6IFNob3AgTWFkZSBTaW1wbGUgLSBBIHByb2R1Y3QgbWFpbnRlbmFuY2UgbW9kdWxlIGZvciBDTVMgLSBDTVMgTWFkZSBTaW1wbGUKIyBDb3B5cmlnaHQgKGMpIDIwMDggYnkgRHVrZXRvd24KIwojIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlIGFkbWluIHBhcnQgb2YgbW9kdWxlIFNob3AgTWFkZSBTaW1wbGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc21zCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhlbWVPYmplY3QgPSBcY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CgokYWN0aXZlX3RhYiA9ICdjYXRlZ29yaWVzJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpIHsKCSRhY3RpdmVfdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwp9Ci8vICR1c2VyX2lkID0gJyc7Ci8vICR1c2VyX2lkID0gZ2V0X3VzZXJpZCgpOwoKLy8gaWYgKGlzc2V0KCR1c2VyX2lkKSkgewovLyAJLy8gSWYgY2hhbmdlIG9mIGNhdGVnb3J5IHJlcXVlc3RlZAovLyAJaWYgKGlzc2V0KCRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSkpIHsKLy8gCQlzZXRfcHJlZmVyZW5jZSgkdXNlcl9pZCwgJ2R0c21zX2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pOwovLyAJfQovLyAJJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddID0gZ2V0X3ByZWZlcmVuY2UoJHVzZXJfaWQsICdkdHNtc19jdXJyZW50X2NhdGVnb3J5X2lkJyk7Ci8vIH0KCi8vIENoZWNrIGlmIGEgaXRlbSBzZWFyY2ggaXMgcmVxdWVzdGVkCiRpdGVtbnVtYmVyID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydpdGVtbnVtYmVyJ10pKSB7CgkkaXRlbW51bWJlciA9IHRyaW0oJHBhcmFtc1snaXRlbW51bWJlciddKTsKCS8vIFJlc2V0IHRoZSBjYXRlZ29yeSB0byB0aGUgcm9vdAoJJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddID0gMDsKfQovLyBQcmVwYXJlIGNhdGVnb3JpZXMgYW5kIHByb2R1Y3RzIG9ubHkgZm9yIGFsbG93ZWQgdXNlcnMKaWYgKAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX1VzZVNpbXBsZVNob3AnKSB8fAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX01haW50YWluQ2F0ZWdvcnknKSB8fAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX01haW50YWluUHJvZHVjdHMnKQopIHsKCWlmICghaXNzZXQoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKSkgewoJCSRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IDA7Cgl9CgkkY3VycmVudF9jYXRlZ29yeSA9ICR0aGlzLT5jYXRlZ29yaWVzLT5HZXQoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKTsKCgkkbWVzc2FnZSA9ICcnOwoJaWYgKGlzc2V0KCRwYXJhbXNbJ21vZHVsZV9tZXNzYWdlJ10pKSB7CgkJJG1lc3NhZ2UgPSAkcGFyYW1zWydtb2R1bGVfbWVzc2FnZSddOwoJfQoKCS8qKgoJICogUHJlcGFyZSB0aGUgY2F0ZWdvcmllcyB0cmVlIGZvciBxdWljayBzZWxlY3RvcgoJICovCgkkc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGUnLCAkdGhpcy0+TGFuZygndGl0bGVfaGlkZScpKTsKCSRzbWFydHktPmFzc2lnbigndGl0bGVfc2hvdycsICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93JykpOwoJJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9xdWlja19zZWxlY3RvcicsICR0aGlzLT5MYW5nKCd0aXRsZV9xdWlja19zZWxlY3RvcicpKTsKCWlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheXF1aWNrc2VsZWN0b3InLCB0cnVlKSkgewoJCSRzbWFydHktPmFzc2lnbignZGlzcGxheXFzJywgJ2Jsb2NrJyk7Cgl9IGVsc2UgewoJCSRzbWFydHktPmFzc2lnbignZGlzcGxheXFzJywgJ25vbmUnKTsKCX0KCSRwYXJlbnRjYXQgPSAnMCc7CgkvLyBDcmVhdGUgYSBjYXRlZ29yeSB0cmVlCgkkcXNjID0gJHRoaXMtPkZpbGxRU0NhdExpc3QoJHBhcmVudGNhdCwgMCwgJHJldHVybmlkKTsKCSRzbWFydHktPmFzc2lnbigncXNjYXRzJywgJHFzYyk7CgoJLyoqCgkgKiBQcmVwYXJlIHRoZSBDYXRlZ29yaWVzLgoJICovCgkkY2F0ZWdvcmllcyA9IGFycmF5KCk7CgkkY2F0ZWdvcnlfcGF0aCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2NhdGVnb3J5X2xpc3QnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdyb290JyksIGFycmF5KCdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAwKSk7CgoJaWYgKCRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSAhPSAwKSB7CgkJZm9yZWFjaCAoJHRoaXMtPmNhdGVnb3JpZXMtPkJ1aWxkUGF0aCgkY3VycmVudF9jYXRlZ29yeSkgYXMgJGNhdGVnb3J5KSB7CgkJCSRjYXRlZ29yeV9wYXRoIC49ICcgLyAnIC4gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkkaWQsCgkJCQknY2F0ZWdvcnlfbGlzdCcsCgkJCQkkcmV0dXJuaWQsCgkJCQkkY2F0ZWdvcnlbJ25hbWUnXSwKCQkJCWFycmF5KCdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ10pCgkJCSk7CgkJfQoJfQoJaWYgKAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCQkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5DYXRlZ29yeScpCgkpIHsKCQkkY2F0ZWdvcmllc1snY3VycmVudCddID0gYXJyYXkoCgkJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2N1cnJlbnRfY2F0ZWdvcnknKSwKCQkJJ3ZhbHVlJyA9PiAkY2F0ZWdvcnlfcGF0aCwKCQkJJ2xpbmtfYWRkJyA9PiAkdGhpcy0+Q3JlYXRlTGluaygKCQkJCSRpZCwKCQkJCSdjYXRlZ29yeV9hZGQnLAoJCQkJJHJldHVybmlkLAoJCQkJJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ3RleHRfYWRkJykgLiAnICcgLiAkdGhpcy0+TGFuZygndGV4dF9jYXRlZ29yeScpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiAnICcgLiAkdGhpcy0+TGFuZygndGV4dF9hZGQnKSAuICcgJyAuICR0aGlzLT5MYW5nKCd0ZXh0X2NhdGVnb3J5JyksCgkJCQlhcnJheSgnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKSwKCQkJCScnLAoJCQkJZmFsc2UsCgkJCQlmYWxzZSwKCQkJCSdjbGFzcz0icGFnZW9wdGlvbnMiJwoJCQkpCgkJKTsKCX0gZWxzZSB7CgkJJGNhdGVnb3JpZXNbJ2N1cnJlbnQnXSA9IGFycmF5KAoJCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jdXJyZW50X2NhdGVnb3J5JyksCgkJCSd2YWx1ZScgPT4gJGNhdGVnb3J5X3BhdGgsCgkJCSdsaW5rX2FkZCcgPT4gJyZuYnNwOycKCQkpOwoJfQoJJGNhdGVnb3J5X2xpc3QgPSBhcnJheSgpOwoKCWZvcmVhY2ggKCR0aGlzLT5jYXRlZ29yaWVzLT5HZXRMaXN0KCRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSkgYXMgJGNhdGVnb3J5KSB7CgkJaWYgKAoJCQkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpIHx8CgkJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpbkNhdGVnb3J5JykKCQkpIHsKCQkJJGNhdGVnb3J5WydsaW5rX2RlbGV0ZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnY2F0ZWdvcnlfZGVsZXRlJywgJHJldHVybmlkLCAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9kZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddKSwgJHRoaXMtPkxhbmcoJ21lc3NhZ2VfYXJleW91c3VyZWNhdGVnb3J5JywgJGNhdGVnb3J5WyduYW1lJ10pKTsKCQkJJGNhdGVnb3J5WydsaW5rX2VkaXQnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2NhdGVnb3J5X2VkaXQnLCAkcmV0dXJuaWQsICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9lZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwgJ2NhdGVnb3J5X2lkJyA9PiAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ10sICdwYXJlbnRfaWQnID0+ICRjYXRlZ29yeVsncGFyZW50X2lkJ10sICduYW1lJyA9PiAkY2F0ZWdvcnlbJ25hbWUnXSwgJ2Rlc2NyaXB0aW9uJyA9PiAkY2F0ZWdvcnlbJ2Rlc2NyaXB0aW9uJ10sICdpbWFnZScgPT4gJGNhdGVnb3J5WydpbWFnZSddLCAnYWN0aXZlJyA9PiAkY2F0ZWdvcnlbJ2FjdGl2ZSddLCAncG9zaXRpb24nID0+ICRjYXRlZ29yeVsncG9zaXRpb24nXSwpKTsKCQkJJGNhdGVnb3J5WydsaW5rX2VuYWJsZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkkaWQsCgkJCQknc3dpdGNoc3RhdHVzJywKCQkJCSRyZXR1cm5pZCwKCQkJCSRjYXRlZ29yeVsnYWN0aXZlJ10gPT0gMSA/ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKAoJCQkJCSdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLAoJCQkJCSR0aGlzLT5MYW5nKCd0ZXh0X2luYWN0aXZlJyksCgkJCQkJJycsCgkJCQkJJycsCgkJCQkJJ3N5c3RlbWljb24nCgkJCQkpIDogJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9hY3RpdmUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkJYXJyYXkoCgkJCQkJJ3RhYmxlJyA9PiAnQ2F0ZWdvcmllcycsICdhY3RpdmUnID0+ICRjYXRlZ29yeVsnYWN0aXZlJ10sICdjYXRlZ29yeV9pZCcgPT4gJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddLAoJCQkJCSdwYXJlbnRfaWQnID0+ICRjYXRlZ29yeVsncGFyZW50X2lkJ10KCQkJCSkKCQkJKTsKCQl9CgkJJGNhdGVnb3J5WyduYW1lJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdjYXRlZ29yeV9saXN0JywgJHJldHVybmlkLCAkY2F0ZWdvcnlbJ25hbWUnXSwgYXJyYXkoJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXSkpOwoJCSRjYXRlZ29yeV9saXN0W10gPSAkY2F0ZWdvcnk7Cgl9CgkkY2F0ZWdvcmllc1snc3ViY2F0ZWdvcmllcyddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiBhcnJheSgKCQkJJ2lkJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfaWQnKSwKCQkJJ25hbWUnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9uYW1lJyksCgkJCSdkZXNjcmlwdGlvbicgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2NhdGVnb3J5X2Rlc2NyaXB0aW9uJykKCQkpLAoJCSdsaXN0JyA9PiAkY2F0ZWdvcnlfbGlzdAoJKTsKCgkvKioKCSAqIFByZXBhcmUgdGhlIHByb2R1Y3RzCgkgKi8KCSRwcm9kdWN0cyA9IGFycmF5KCk7CgkkcHJvZHVjdHNbJ3N0YXJ0Zm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0YWRtaW4nKTsKCSRwcm9kdWN0c1snc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3NlYXJjaGl0ZW0nKSk7CgkkcHJvZHVjdHNbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgkkcHJvZHVjdHNbJ2l0ZW1zZWFyY2gnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXRlbW51bWJlcicsICRpdGVtbnVtYmVyLCAzMCwgMzAsICdwbGFjZWhvbGRlcj0iJyAuICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2l0ZW1udW1iZXInKSAuICciJyk7CgoJaWYgKAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCQkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycpCgkpIHsKCQlpZiAoJGl0ZW1udW1iZXIgPT0gJycpIHsKCQkJJHByb2R1Y3RfbGlua19hZGQgPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJCSRpZCwKCQkJCSdwcm9kdWN0X2FkZCcsCgkJCQkkcmV0dXJuaWQsCgkJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9hZGQnKSAuICcgJyAuICR0aGlzLT5MYW5nKCd0ZXh0X3Byb2R1Y3QnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpIC4gJHRoaXMtPkxhbmcoJ3RleHRfYWRkJykgLiAnICcgLiAkdGhpcy0+TGFuZygndGV4dF9wcm9kdWN0JyksCgkJCQlhcnJheSgnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKSwKCQkJCScnLAoJCQkJZmFsc2UsCgkJCQlmYWxzZSwKCQkJCSdjbGFzcz0icGFnZW9wdGlvbnMiJwoJCQkpOwoJCQkkY3VycmVudF9jYXRlZ29yeVsnbmFtZSddID0gJHRoaXMtPkxhbmcoJ3ZhcmlvdXNjYXRlZ29yaWVzJyk7CgkJfSBlbHNlIHsKCQkJJGN1cnJlbnRfY2F0ZWdvcnlbJ25hbWUnXSA9ICR0aGlzLT5MYW5nKCd2YXJpb3VzY2F0ZWdvcmllcycpOwoJCQkkcHJvZHVjdF9saW5rX2FkZCA9ICcnOwoJCX0KCQkkcHJvZHVjdHNbJ2NhdGVnb3J5J10gPSBhcnJheSgKCQkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9jYXRlZ29yeScpLAoJCQkndmFsdWUnID0+ICRjdXJyZW50X2NhdGVnb3J5WyduYW1lJ10sCgkJCSdsaW5rX2FkZCcgPT4gJHByb2R1Y3RfbGlua19hZGQKCQkpOwoJfSBlbHNlIHsKCQkkcHJvZHVjdHNbJ2NhdGVnb3J5J10gPSBhcnJheSgKCQkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9jYXRlZ29yeScpLAoJCQkndmFsdWUnID0+ICRjdXJyZW50X2NhdGVnb3J5WyduYW1lJ10sCgkJCSdsaW5rX2FkZCcgPT4gJyZuYnNwOycKCQkpOwoJfQoJLy8gQ2hlY2sgaWYgaW52ZW50b3J5IGluIHBsYWNlLiBJZiBzbyB1c2UgZGlmZmVyZW50IGxhYmVsCgkkaW52ZW50b3J5dHlwZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnZlbnRvcnl0eXBlJyk7CglpZiAoJGludmVudG9yeXR5cGUgPT0gJ3Byb2QnKSB7CgkJJGxhYmVsX3Byb2R1Y3RfbWF4YXR0cmlidXRlcyA9ICR0aGlzLT5MYW5nKCdsYWJlbF9vbnN0b2NrJyk7Cgl9IGVsc2UgewoJCSRsYWJlbF9wcm9kdWN0X21heGF0dHJpYnV0ZXMgPSAnJzsKCX0KCSRwcm9kdWN0X2xpc3QgPSBhcnJheSgpOwoJaWYgKCRpdGVtbnVtYmVyID09ICcnKSB7CgkJJHByb2R1Y3RzdWJzZXQgPSAkdGhpcy0+cHJvZHVjdHMtPkdldExpc3QoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKTsKCX0gZWxzZSB7CgkJJHByb2R1Y3RzdWJzZXQgPSBzbXNfdXRpbHM6OmdldF9wcm9kdWN0c19zdWJzZXQoJGl0ZW1udW1iZXIpOwoJfQoJaWYgKCRwcm9kdWN0c3Vic2V0KSB7CgoJCWZvcmVhY2ggKCRwcm9kdWN0c3Vic2V0IGFzICRwcm9kdWN0KSB7CgkJCSRwcm9kdWN0bmFtZSA9ICRwcm9kdWN0WyduYW1lJ107CgkJCWlmICgKCQkJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCQkJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblByb2R1Y3RzJykKCQkJKSB7CgkJCQkkcHJvZHVjdFsnbmFtZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkJJGlkLAoJCQkJCSdwcm9kdWN0X2VkaXQnLAoJCQkJCSRyZXR1cm5pZCwKCQkJCQkkcHJvZHVjdFsnbmFtZSddLAoJCQkJCWFycmF5KCdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sICdwcm9kdWN0X2lkJyA9PiAkcHJvZHVjdFsncHJvZHVjdF9pZCddKQoJCQkJKTsKCQkJCSMkcHJvZHVjdFsnZGVzY3JpcHRpb24nXSA9ICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdwcm9kdWN0X2VkaXQnLCAkcmV0dXJuaWQsICRwcm9kdWN0WydkZXNjcmlwdGlvbiddLAoJCQkJIwlhcnJheSAoJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwgJ3Byb2R1Y3RfaWQnID0+ICRwcm9kdWN0Wydwcm9kdWN0X2lkJ10pKTsKCQkJCSRwcm9kdWN0WydwYXJlbnRfaWQnXSA9IGlzc2V0KCRwcm9kdWN0WydwYXJlbnRfaWQnXSkgPyAkcHJvZHVjdFsncGFyZW50X2lkJ10gOiAwOwoJCQkJJHByb2R1Y3RbJ2ludmVudG9yeXR5cGUnXSA9ICRpbnZlbnRvcnl0eXBlOwoJCQkJJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSA9ICRwcm9kdWN0WydpdGVtbnVtYmVyJ107CgkJCQkkcHJvZHVjdFsnb25zdG9jayddID0gJHByb2R1Y3RbJ21heGF0dHJpYnV0ZXMnXTsKCQkJCSRwcm9kdWN0WydsaW5rX2RlbGV0ZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkJJGlkLAoJCQkJCSdwcm9kdWN0X2RlbGV0ZScsCgkJCQkJJHJldHVybmlkLAoJCQkJCSR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJYXJyYXkoJ2N1cnJlbnRfcHJvZHVjdF9pZCcgPT4gJHByb2R1Y3RbJ3Byb2R1Y3RfaWQnXSwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSksCgkJCQkJJHRoaXMtPkxhbmcoJ21lc3NhZ2VfYXJleW91c3VyZXByb2R1Y3QnLCAkcHJvZHVjdG5hbWUpCgkJCQkpOwoJCQkJJHByb2R1Y3RbJ2xpbmtfZWRpdCddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkJJGlkLAoJCQkJCSdwcm9kdWN0X2VkaXQnLAoJCQkJCSRyZXR1cm5pZCwKCQkJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ3RleHRfZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJYXJyYXkoJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwgJ3Byb2R1Y3RfaWQnID0+ICRwcm9kdWN0Wydwcm9kdWN0X2lkJ10pCgkJCQkpOwoJCQkJJHByb2R1Y3RbJ2xpbmtfZW5hYmxlJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJCQkkaWQsCgkJCQkJJ3N3aXRjaHN0YXR1cycsCgkJCQkJJHJldHVybmlkLAoJCQkJCSRwcm9kdWN0WydhY3RpdmUnXSA9PSAxID8gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoCgkJCQkJCSdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLAoJCQkJCQkkdGhpcy0+TGFuZygndGV4dF9pbmFjdGl2ZScpLAoJCQkJCQknJywKCQkJCQkJJycsCgkJCQkJCSdzeXN0ZW1pY29uJwoJCQkJCSkgOiAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2FjdGl2ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJYXJyYXkoCgkJCQkJCSd0YWJsZScgPT4gJ1Byb2R1Y3RzJywgJ2FjdGl2ZScgPT4gJHByb2R1Y3RbJ2FjdGl2ZSddLCAnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddLAoJCQkJCQkncGFyZW50X2lkJyA9PiAkcHJvZHVjdFsncGFyZW50X2lkJ10sICdwcm9kdWN0X2lkJyA9PiAkcHJvZHVjdFsncHJvZHVjdF9pZCddCgkJCQkJKQoJCQkJKTsKCQkJfSBlbHNlIHsKCQkJCSRwcm9kdWN0WyduYW1lJ10gPSAkcHJvZHVjdFsnbmFtZSddOwoJCQkJJHByb2R1Y3RbJ2xpbmtfZGVsZXRlJ10gPSAnJzsKCQkJCSRwcm9kdWN0WydsaW5rX2VkaXQnXSA9ICcnOwoJCQkJJHByb2R1Y3RbJ2xpbmtfZW5hYmxlJ10gPSAnJzsKCQkJfQoJCQkkcHJvZHVjdF9saXN0W10gPSAkcHJvZHVjdDsKCQl9Cgl9CgkkcHJvZHVjdHNbJ3Byb2R1Y3RzJ10gPSBhcnJheSgKCQknbGFiZWwnID0+IGFycmF5KAoJCQknaWQnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0JyksCgkJCSduYW1lJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcnlfbmFtZScpLAoJCQknZGVzY3JpcHRpb24nID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9kZXNjcmlwdGlvbicpLAoJCQknb25zdG9jaycgPT4gJGxhYmVsX3Byb2R1Y3RfbWF4YXR0cmlidXRlcywKCQkJJ2l0ZW1udW1iZXInID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2l0ZW1udW1iZXInKQoJCSksCgkJJ2xpc3QnID0+ICRwcm9kdWN0X2xpc3QKCSk7Cn0KLyoqCiAqIFByZXBhcmUgdGhlIFN0b2NrIEtlZXBpbmcgVW5pdHMKICovCmlmICgKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblNLVXMnKQopIHsKCSRza3VzID0gYXJyYXkoKTsKCWlmIChpc3NldCgkcGFyYW1zWydza3VtZXNzYWdlJ10pKSB7CgkJJHNrdXNbJ21lc3NhZ2UnXSA9ICRwYXJhbXNbJ3NrdW1lc3NhZ2UnXTsKCX0KCWZvcmVhY2ggKCR0aGlzLT5wcm9kdWN0cy0+R2V0TGlzdFNLVSgpIGFzICRza3UpIHsKCQkkc2t1WyduYW1lJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdza3VfZWRpdCcsICRyZXR1cm5pZCwgJHNrdVsnc2t1J10sIGFycmF5KCdza3UnID0+ICRza3VbJ3NrdSddKSk7CgkJJHNrdVsnZGVzY3JpcHRpb24nXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3NrdV9lZGl0JywgJHJldHVybmlkLCAkc2t1WydkZXNjcmlwdGlvbiddLCBhcnJheSgnc2t1JyA9PiAkc2t1Wydza3UnXSkpOwoJCSRza3VbJ2xpbmtfZWRpdCddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCSRpZCwKCQkJJ3NrdV9lZGl0JywKCQkJJHJldHVybmlkLAoJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ3RleHRfZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCWFycmF5KCdza3UnID0+ICRza3VbJ3NrdSddKQoJCSk7CgkJJHNrdVsnbGlua19kZWxldGUnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKAoJCQkkaWQsCgkJCSdza3VfZGVsZXRlJywKCQkJJHJldHVybmlkLAoJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9kZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgnc2t1JyA9PiAkc2t1Wydza3UnXSksCgkJCSR0aGlzLT5MYW5nKCdtZXNzYWdlX2FyZXlvdXN1cmVza3UnLCAkc2t1Wydza3UnXSkKCQkpOwoJCSRza3VfbGlzdFtdID0gJHNrdTsKCX0KCSRza3VzWydza3VzJ10gPSBhcnJheSgKCQknbGFiZWwnID0+IGFycmF5KAoJCQknbGlua19hZGQnID0+ICR0aGlzLT5DcmVhdGVMaW5rKAoJCQkJJGlkLAoJCQkJJ3NrdV9hZGQnLAoJCQkJJHJldHVybmlkLAoJCQkJJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ3RleHRfYWRkJykgLiAnICcgLiAkdGhpcy0+TGFuZygndGV4dF9za3UnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpCgkJCSksCgkJCSd0ZXh0X2FkZCcgPT4gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnc2t1X2FkZCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ3RleHRfYWRkJykgLiAnICcgLiAkdGhpcy0+TGFuZygndGV4dF9za3UnKSksCgkJCSdza3UnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9za3VfbmFtZScpLAoJCQknZGVzY3JpcHRpb24nID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9za3VfZGVzY3JpcHRpb24nKQoJCSksCgkJJ2xpc3QnID0+ICRza3VfbGlzdAoJKTsKfQovKioKICogUHJlcGFyZSB0aGUgdGVtcGxhdGVzIHRhYgogKi8KaWYgKAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX1VzZVNpbXBsZVNob3AnKSB8fAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpCikgewoJJHRlbXBsYXRlcyA9IGFycmF5KCk7CgkkdGVtcGxhdGVzWydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAndGVtcGxhdGVzX3VwZGF0ZScpOwoJJHRlbXBsYXRlc1snc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3VwZGF0ZScpKTsKCSR0ZW1wbGF0ZXNbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgoJJHRlbXBsYXRlc1snY2F0bGlzdF90ZW1wbGF0ZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0bGlzdF90ZW1wbGF0ZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLAkkaWQsICR0aGlzLT5HZXRUZW1wbGF0ZSgnY2F0bGlzdF90ZW1wbGF0ZScpLCAnY2F0bGlzdF90ZW1wbGF0ZScsICcnLCAnJywgJycsICcnLCA4MCwgMjUpCgkpOwoJJHRlbXBsYXRlc1snY2F0ZWdvcmllc190ZW1wbGF0ZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcmllc190ZW1wbGF0ZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLAkkaWQsICR0aGlzLT5HZXRUZW1wbGF0ZSgnY2F0ZWdvcmllc190ZW1wbGF0ZScpLCAnY2F0ZWdvcmllc190ZW1wbGF0ZScsICcnLCAnJywgJycsICcnLCA4MCwgMjUpCgkpOwoJJHRlbXBsYXRlc1sncHJvZGRldGFpbF90ZW1wbGF0ZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZGRldGFpbF90ZW1wbGF0ZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLAkkaWQsICR0aGlzLT5HZXRUZW1wbGF0ZSgncHJvZGRldGFpbF90ZW1wbGF0ZScpLCAncHJvZGRldGFpbF90ZW1wbGF0ZScsICcnLCAnJywgJycsICcnLCA4MCwgMjUpCgkpOwoJJHRlbXBsYXRlc1sncHJvZGZlYXRfdGVtcGxhdGUnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2RmZWF0X3RlbXBsYXRlJyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsCSRpZCwgJHRoaXMtPkdldFRlbXBsYXRlKCdwcm9kZmVhdF90ZW1wbGF0ZScpLCAncHJvZGZlYXRfdGVtcGxhdGUnLCAnJywgJycsICcnLCAnJywgODAsIDI1KQoJKTsKfQovKioKICogUHJlcGFyZSB0aGUgb3B0aW9ucyB0YWIKICovCmlmICgKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykKKSB7CgkvLyBDaGVjayBpZiBDYXJ0TVMgaGFzIGJlZW4gaW5zdGFsbGVkCgkkc21hcnR5LT5hc3NpZ24oJ0NhcnRNU0luc3RhbGxlZCcsIGZhbHNlKTsKCSRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CgkkQ2FydE1TID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgnU2ltcGxlQ2FydCcpOwoJaWYgKCRDYXJ0TVMpIHsKCQkkc21hcnR5LT5hc3NpZ24oJ0NhcnRNU0luc3RhbGxlZCcsIHRydWUpOwoJfQoKCSRvcHRpb25zID0gYXJyYXkoKTsKCSRvcHRpb25zWydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAncHJlZmVyZW5jZXNfdXBkYXRlJyk7Cgkkb3B0aW9uc1snc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3VwZGF0ZScpKTsKCSRvcHRpb25zWydyZWJ1aWxkcHJvZHVjdHRodW1ibmFpbHMnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdyZWJ1aWxkcHJvZHVjdHRodW1ibmFpbHMnLCAkdGhpcy0+TGFuZygncmVidWlsZHByb2R1Y3R0aHVtYm5haWxzJykpOwoJJG9wdGlvbnNbJ3NlYXJjaHJlaW5kZXgnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzZWFyY2hyZWluZGV4JywgJHRoaXMtPkxhbmcoJ3NlYXJjaHJlaW5kZXgnKSk7Cgkkb3B0aW9uc1snZW5kZm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCgkkb3B0aW9uc1snYWRtaW5fbmFtZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfYWRtaW5fbmFtZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhZG1pbl9uYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkbWluX25hbWUnLCAnJyksIDQwLCA0MCkKCSk7Cgkkb3B0aW9uc1snc2hvcF9uYW1lJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9zaG9wX25hbWUnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2hvcF9uYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3BfbmFtZScsICcnKSwgNDAsIDQwKQoJKTsKCSRvcHRpb25zWydkZWZhdWx0X21heGF0dHJpYnV0ZXMnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2RlZmF1bHRfbWF4YXR0cmlidXRlcycpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdkZWZhdWx0X21heGF0dHJpYnV0ZXMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9tYXhhdHRyaWJ1dGVzJywgMSksIDEwLCAxMCkKCSk7Cgkkb3B0aW9uc1sncHJpY2VzaW5jbHZhdCddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJpY2VzX2luY2xfdmF0JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdwcmljZXNpbmNsdmF0JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByaWNlc2luY2x2YXQnLCAwKSkKCSk7Cgkkb3B0aW9uc1sncHJpY2VzaW5jbHZhdCddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJpY2VzX2luY2xfdmF0JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdwcmljZXNpbmNsdmF0JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByaWNlc2luY2x2YXQnLCAwKSkKCSk7Cgkkb3B0aW9uc1snd2VpZ2h0dW5pdG1lYXN1cmUnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3dlaWdodF91bml0X21lYXN1cmUnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnd2VpZ2h0dW5pdG1lYXN1cmUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0dW5pdG1lYXN1cmUnLCAnS2cnKSwgMTAsIDEwKQoJKTsKCSRvcHRpb25zWydpdGVtY2FwaXRhbG9ubHknXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2l0ZW1fY2FwaXRhbF9vbmx5JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpdGVtY2FwaXRhbG9ubHknLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbWNhcGl0YWxvbmx5JywgZmFsc2UpKQoJKTsKCSRvcHRpb25zWydhbGxvd2RvdWJsZWl0ZW0nXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2FsbG93ZG91YmxlaXRlbScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWxsb3dkb3VibGVpdGVtJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZG91YmxlaXRlbScsIGZhbHNlKSkKCSk7Cgkkc2t1ZHJvcGRvd24gPSAkdGhpcy0+QnVpbGRMaXN0U0tVKCk7Cgkkb3B0aW9uc1snZGVmYXVsdF9za3UnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2RlZmF1bHRfc2t1JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdkZWZhdWx0X3NrdScsICRza3Vkcm9wZG93biwgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3NrdScsICcnKSkKCSk7Cgkkb3B0aW9uc1snZGVmYXVsdF9jdXJyZW5jeSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfZGVmYXVsdF9jdXJyZW5jeScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdkZWZhdWx0X2N1cnJlbmN5JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY3VycmVuY3knLCAnJyksIDMsIDMpCgkpOwoJJG9wdGlvbnNbJ2RlZmF1bHRfc3ltYm9sJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9kZWZhdWx0X3N5bWJvbCcpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdkZWZhdWx0X3N5bWJvbCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N5bWJvbCcsICcnKSwgMTAsIDQwKQoJKTsKCSRvcHRpb25zWydpbWFnZXBhdGhfY2F0ZWdvcnknXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2ltYWdlcGF0aF9jYXRlZ29yeScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbWFnZXBhdGhfY2F0ZWdvcnknLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX2NhdGVnb3J5JywgJycpLCA0MCwgNDApCgkpOwoJJG9wdGlvbnNbJ2ltYWdlcGF0aF9wcm9kdWN0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9pbWFnZXBhdGhfcHJvZHVjdCcpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpbWFnZXBhdGhfcHJvZHVjdCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcsICcnKSwgNDAsIDQwKQoJKTsKCSRvcHRpb25zWyd0bmhlaWdodF9wcm9kdWN0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF90bmhlaWdodF9wcm9kdWN0JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RuaGVpZ2h0X3Byb2R1Y3QnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndG5oZWlnaHRfcHJvZHVjdCcsICcxMDAnKSwgNSwgNSkKCSk7Cgkkb3B0aW9uc1sndG53aWR0aF9wcm9kdWN0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF90bndpZHRoX3Byb2R1Y3QnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndG53aWR0aF9wcm9kdWN0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Rud2lkdGhfcHJvZHVjdCcsICcwJyksIDUsIDUpCgkpOwoJJG9wdGlvbnNbJ3Byb2R1Y3RwYWdlbGltaXQnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RwYWdlbGltaXQnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncHJvZHVjdHBhZ2VsaW1pdCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0cGFnZWxpbWl0JywgMTAwMDAwKSwgMTAsIDEwKQoJKTsKCSRvcHRpb25zWydpbnZlbnRvcnlzZXR0aW5ncyddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfaW52ZW50b3J5c2V0dGluZ3MnKQoJKTsKCSRpbnZlbnRvcnl0eXBlcyA9ICR0aGlzLT5CdWlsZExpc3RJbnZlbnRvcnlUeXBlcygpOwoJJHVzZWRpbnZlbnRvcnl0eXBlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludmVudG9yeXR5cGUnLCAnbm9uZScpOwoJJG9wdGlvbnNbJ2ludmVudG9yeXR5cGUnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2ludmVudG9yeXR5cGUnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCAnaW52ZW50b3J5dHlwZScsICRpbnZlbnRvcnl0eXBlcywgJHVzZWRpbnZlbnRvcnl0eXBlKQoJKTsKCS8vIERlZmluZSBhdCB3aGF0IG1vbWVudCB0aGUgc2FsZXMgdHJhbnNhY3Rpb24gc2hvdWxkIGRlY3JlYXNlIGludmVudG9yeQoJJHNhbGVzaW52ZW50dGltaW5nID0gJHRoaXMtPkJ1aWxkTGlzdFNhbGVzSW52ZW50VGltaW5nKCk7CgkkdXNlZHNhbGVzaW52ZW50dGltaW5nID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NhbGVzaW52ZW50dGltaW5nJywgJ0NORicpOwoJJG9wdGlvbnNbJ3NhbGVzaW52ZW50dGltaW5nJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9zYWxlc2ludmVudHRpbWluZycpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc2FsZXNpbnZlbnR0aW1pbmcnLCAkc2FsZXNpbnZlbnR0aW1pbmcsIC0xLCAkdXNlZHNhbGVzaW52ZW50dGltaW5nKQoJKTsKCSRvcHRpb25zWydudW1iZXJmb3JtYXR0aW5nJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9udW1iZXJmb3JtYXR0aW5nJykKCSk7Cgkkb3B0aW9uc1snZGVjaW1hbHBvc2l0aW9uc3ByaWNlJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9kZWNpbWFscG9zaXRpb25zcHJpY2UnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZGVjaW1hbHBvc2l0aW9uc3ByaWNlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlY2ltYWxwb3NpdGlvbnNwcmljZScsIDIpLCAxLCAxKQoJKTsKCSRvcHRpb25zWydkZWNpbWFsc2VwYXJhdG9ycHJpY2UnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2RlY2ltYWxzZXBhcmF0b3JwcmljZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdkZWNpbWFsc2VwYXJhdG9ycHJpY2UnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVjaW1hbHNlcGFyYXRvcnByaWNlJywgJywnKSwgMSwgMSkKCSk7Cgkkb3B0aW9uc1sndGhvdXNhbmRzZXBhcmF0b3JwcmljZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfdGhvdXNhbmRzZXBhcmF0b3JwcmljZScpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aG91c2FuZHNlcGFyYXRvcnByaWNlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Rob3VzYW5kc2VwYXJhdG9ycHJpY2UnLCAnLicpLCAxLCAxKQoJKTsKCSRvcHRpb25zWydkZWNpbWFscG9zaXRpb25zd2VpZ2h0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9kZWNpbWFscG9zaXRpb25zd2VpZ2h0JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2RlY2ltYWxwb3NpdGlvbnN3ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVjaW1hbHBvc2l0aW9uc3dlaWdodCcsIDMpLCAxLCAxKQoJKTsKCSRvcHRpb25zWydkZWNpbWFsc2VwYXJhdG9yd2VpZ2h0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9kZWNpbWFsc2VwYXJhdG9yd2VpZ2h0JyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2RlY2ltYWxzZXBhcmF0b3J3ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVjaW1hbHNlcGFyYXRvcndlaWdodCcsICcsJyksIDEsIDEpCgkpOwoJJG9wdGlvbnNbJ3Rob3VzYW5kc2VwYXJhdG9yd2VpZ2h0J10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF90aG91c2FuZHNlcGFyYXRvcndlaWdodCcpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0aG91c2FuZHNlcGFyYXRvcndlaWdodCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aG91c2FuZHNlcGFyYXRvcndlaWdodCcsICcuJyksIDEsIDEpCgkpOwoJJG9wdGlvbnNbJ2Rpc3BsYXlxdWlja3NlbGVjdG9yJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9kaXNwbGF5cXVpY2tzZWxlY3RvcicpLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZGlzcGxheXF1aWNrc2VsZWN0b3InLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheXF1aWNrc2VsZWN0b3InLCBmYWxzZSkpCgkpOwp9CmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwppZiAoCgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpIHx8CgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5DYXRlZ29yeScpIHx8CgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycpCikgewoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywgJHRoaXMtPkxhbmcoJ2xhYmVsX3RhYl9jYXRlZ29yaWVzJyksICgkYWN0aXZlX3RhYiA9PSAnY2F0ZWdvcmllcycpKTsKfQppZiAoCgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpIHx8CgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5TS1VzJykKKSB7CgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NrdXMnLCAkdGhpcy0+TGFuZygnbGFiZWxfdGFiX3NrdXMnKSwgKCRhY3RpdmVfdGFiID09ICdza3VzJykpOwp9CmlmICgKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKQopIHsKCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigndGVtcGxhdGVzJywgJHRoaXMtPkxhbmcoJ2xhYmVsX3RhYl90ZW1wbGF0ZXMnKSwgKCRhY3RpdmVfdGFiID09ICd0ZW1wbGF0ZXMnKSk7Cn0KaWYgKAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX1VzZVNpbXBsZVNob3AnKSB8fAoJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKQopIHsKCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignb3B0aW9ucycsICR0aGlzLT5MYW5nKCdsYWJlbF90YWJfb3B0aW9ucycpLCAoJGFjdGl2ZV90YWIgPT0gJ29wdGlvbnMnKSk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCi8vIFByZXBhcmUgdGhlIGNhdGVnb3JpZXMgYW5kIHByb2R1Y3RzIHRhYgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCiRzbWFydHktPmFzc2lnbignY3VycmVudF9jYXRlZ29yeV9pZCcsICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSk7CmlmICgKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpbkNhdGVnb3J5JykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblByb2R1Y3RzJykKKSB7CgllY2hvICR0aGlzLT5TdGFydFRhYignY2F0ZWdvcmllcycsICRwYXJhbXMpOwoJJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywgJGNhdGVnb3JpZXMpOwoJJHNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0cycsICRwcm9kdWN0cyk7Cgkkc21hcnR5LT5hc3NpZ24oJ25vY2F0Zm91bmQnLCAkdGhpcy0+TGFuZygnbm9jYXRmb3VuZCcpKTsKCWlmICgkaXRlbW51bWJlciA9PSAnJykgewoJCSRzbWFydHktPmFzc2lnbignbm9wcm9kZm91bmQnLCAkdGhpcy0+TGFuZygnbm9wcm9kZm91bmQnKSk7Cgl9IGVsc2UgewoJCSRzbWFydHktPmFzc2lnbignbm9wcm9kZm91bmQnLCAkdGhpcy0+TGFuZygnbm9wcm9kZm91bmRmb3JzZWFyY2gnKSk7Cgl9CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RhYl9jYXRlZ29yaWVzLnRwbCcpOwoJZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KLy8gUHJlcGFyZSB0aGUgdGFiIGNvbnRhaW5pbmcgdGhlIFNLVSdzCmlmICgKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblNLVXMnKQopIHsKCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdza3VzJywgJHBhcmFtcyk7Cgkkc21hcnR5LT5hc3NpZ24oJ3NrdXMnLCAkc2t1cyk7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3RhYl9za3VzLnRwbCcpOwoJZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KLy8gUHJlcGFyZSB0aGUgdGFiIGNvbnRhaW5pbmcgdGhlIHRlbXBsYXRlcwppZiAoCgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpIHx8CgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykKKSB7CgllY2hvICR0aGlzLT5TdGFydFRhYigndGVtcGxhdGVzJywgJHBhcmFtcyk7Cgkkc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlcycsICR0ZW1wbGF0ZXMpOwoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCd0YWJfdGVtcGxhdGVzLnRwbCcpOwoJZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KLy8gUHJlcGFyZSBvcHRpb25zIHRhYgppZiAoCgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpIHx8CgkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpCikgewoJZWNobyAkdGhpcy0+U3RhcnRUYWIoJ29wdGlvbnMnLCAkcGFyYW1zKTsKCSRzbWFydHktPmFzc2lnbignb3B0aW9ucycsICRvcHRpb25zKTsKCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgndGFiX29wdGlvbnMudHBsJyk7CgllY2hvICR0aGlzLT5FbmRUYWIoKTsKfQoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.fe_category_list.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CgokZGV0YWlscGFnZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7Cgkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCWlmIChpc3NldCgkbm9kZSkpIHsKCQkkY29udGVudCA9ICYkbm9kZS0+R2V0Q29udGVudCgpOwoJCWlmIChpc3NldCgkY29udGVudCkpIHsKCQkJJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCQl9Cgl9IGVsc2UgewoJCSRub2RlID0gJiRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCQlpZiAoaXNzZXQoJG5vZGUpKSB7CgkJCSRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJCX0KCX0KfQoKJHBhcmVudGNhdGVnb3J5ID0gJzAnOwppZiAoaXNzZXQoJHBhcmFtc1sncGFyZW50Y2F0ZWdvcnknXSkpIHsKCSRwYXJlbnRjYXRlZ29yeSA9ICRwYXJhbXNbJ3BhcmVudGNhdGVnb3J5J107Cn0KCi8vIFNlbGVjdCBhbGwgYWN0aXZlIGNhdGVnb3JpZXMgYW5kIHNob3cgdGhlbQpmb3JlYWNoICgkdGhpcy0+Y2F0ZWdvcmllcy0+R2V0TGlzdCgkcGFyZW50Y2F0ZWdvcnkpIGFzICRjYXRlZ29yeSkgewoJaWYgKCRjYXRlZ29yeVsnYWN0aXZlJ10gPT0gMSkgewoJCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCQkvLyAkb25lcm93LT5jYXRuYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZmVfcHJvZHVjdF9saXN0JywgJGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRyZXR1cm5pZCwKCQkvLyAJJGNhdGVnb3J5WyduYW1lJ10sICRzZW5kdG9kZXRhaWwsJycsIGZhbHNlLCBmYWxzZSwgJycsIHRydWUsICRwcmV0dHl1cmwpOwoKCQkvLyBDaGVjayB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBwcm9kdWN0cyBjb25uZWN0ZWQgdG8gdGhpcyBjYXRlZ29yeQoJCSRxdWVyeSA9ICdTRUxFQ1QgY291bnQoKikgYXMgbnVtX3Byb2R1Y3RzIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfY2F0ZWdvcnkgcGMsCgkJCScgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cyBwIFdIRVJFIGNhdGVnb3J5X2lkPT8gQU5EIHBjLnByb2R1Y3RfaWQgPSBwLnByb2R1Y3RfaWQgQU5ECgkJCXAuYWN0aXZlID0gMSc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddKSk7CgkJJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKCQkkbnVtX3Byb2R1Y3RzID0gJHJvd1snbnVtX3Byb2R1Y3RzJ107CgkJLy8gSW5jbHVkZSB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzIGluIHRoZSBuYW1lIG9mIHRoZSBjYXRlZ29yeQoJCWlmICgkdHJhbnMpIHsKCgkJCSRjYXRfbmFtZSA9ICR0cmFucy0+VHJhbnNsaXQoJGNhdGVnb3J5WyduYW1lJ10pOwoJCX0gZWxzZSB7CgkJCSRjYXRfbmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoJGNhdGVnb3J5WyduYW1lJ10pOwoJCX0KCQlpZiAoJG51bV9wcm9kdWN0cyAhPSAwKSB7CgkJCSRjYXRlZ29yeVsnbmFtZSddID0gJGNhdGVnb3J5WyduYW1lJ10gLiAnICgnIC4gJG51bV9wcm9kdWN0cyAuICcpJzsKCQl9CgkJJG9uZXJvdy0+Y2F0Y291bnQgPSAkbnVtX3Byb2R1Y3RzOwoJCSRzZW5kdG9kZXRhaWwgPSBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXSk7CgkJJHByZXR0eXVybCA9ICdTaW1wbGVTaG9wL2NhdC8nIC4gJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddIC4gJy8nIC4gKCRkZXRhaWxwYWdlICE9ICcnID8gJGRldGFpbHBhZ2UgOiAkcmV0dXJuaWQpIC4gJy8nIC4gJGNhdF9uYW1lOwoKCQlpZiAoaXNzZXQoJHNlbmR0b2RldGFpbFsnZGV0YWlsdGVtcGxhdGUnXSkpIHsKCQkJJHByZXR0eXVybCAuPSAnL2QsJyAuICRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ107CgkJfQoJCS8vIFByZXBhcmUgaW1hZ2Ugb2YgdGhlIGNhdGVnb3J5CgkJaWYgKGlzc2V0KCRjYXRlZ29yeVsnaW1hZ2UnXSkgJiYgJGNhdGVnb3J5WydpbWFnZSddICE9ICdub19pbWFnZS5qcGcnICYmICRjYXRlZ29yeVsnaW1hZ2UnXSAhPSAnJykgewoJCQkkb25lcm93LT5pbWFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfY2F0ZWdvcnknKSAuICRjYXRlZ29yeVsnaW1hZ2UnXTsKCQkJJG9uZXJvdy0+ZGVzY3JpcHRpb24gPSAkY2F0ZWdvcnlbJ25hbWUnXTsKCQl9IGVsc2UgewoJCQkkb25lcm93LT5pbWFnZSA9ICcqbm9uZSc7CgkJfQoKCQkkb25lcm93LT5jdXJzeW1ib2wgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zeW1ib2wnLCAnJyk7CgoJCSRvbmVyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQknZmVfcHJvZHVjdF9saXN0JywKCQkJJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCwKCQkJJGNhdGVnb3J5WyduYW1lJ10sCgkJCSRzZW5kdG9kZXRhaWwsCgkJCScnLAoJCQlmYWxzZSwKCQkJZmFsc2UsCgkJCScnLAoJCQl0cnVlLAoJCQkkcHJldHR5dXJsCgkJKTsKCQkvLyRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJCSRlbnRyeWFycmF5W10gPSAkb25lcm93OwoJfQp9CgokZW50cnlhcnJheSA9IGlzc2V0KCRlbnRyeWFycmF5KSA/ICRlbnRyeWFycmF5IDogYXJyYXkoKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZyb250ZW5kRm9ybVN0YXJ0KCRpZCwgJHJldHVybmlkLCAnZmVfY2F0ZWdvcnlfbGlzdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbGFiZWxfY2F0ZWdvcmllcycsICR0aGlzLT5MYW5nKCdsYWJlbF9jYXRlZ29yaWVzJykpOwovLyR0aGlzLT5zbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsICRjYXRlZ29yaWVzKTsKLy8gRGlzcGxheSB0ZW1wbGF0ZQokdGVtcGxhdGUgPSAnY2F0ZWdvcmllc190ZW1wbGF0ZSc7Ci8vIEN1cnJlbnRseSBvbmx5IG9uZSB0ZW1wbGF0ZSBhdmFpbGFibGUsIHNvIG5leHQgbGluZXMgd2lsbCBub3QgcGVyZm9ybSBhbnl0aGluZwppZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcmllc3RlbXBsYXRlJ10pKSB7CgkkdGVtcGxhdGUgPSAkcGFyYW1zWydjYXRlZ29yaWVzdGVtcGxhdGUnXTsKfQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRlbXBsYXRlKTsK]]></data>
	</file>
	<file>
	  <filename>/action.fe_cat_list.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRnQ21zID0gY21zbXMoKTsKaWYgKCFpc19vYmplY3QoJGdDbXMpKSBleGl0OwoKJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7Cgkkbm9kZSA9ICYkbWFuYWdlci0+c3VyZUdldE5vZGVCeUFsaWFzKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CglpZiAoaXNzZXQoJG5vZGUpKSB7CgkJJGNvbnRlbnQgPSAmJG5vZGUtPkdldENvbnRlbnQoKTsKCQlpZiAoaXNzZXQoJGNvbnRlbnQpKSB7CgkJCSRkZXRhaWxwYWdlID0gJGNvbnRlbnQtPklkKCk7CgkJfQoJfSBlbHNlIHsKCQkkbm9kZSA9ICYkbWFuYWdlci0+c3VyZUdldE5vZGVCeUlkKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CgkJaWYgKGlzc2V0KCRub2RlKSkgewoJCQkkZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKCQl9Cgl9Cn0KCmlmICgkdHJhbnMpIHsKCgkkY2F0X25hbWUgPSAkdHJhbnMtPlRyYW5zbGl0KCR0aGlzLT5MYW5nKCdyb290JykpOwp9IGVsc2UgewoJJGNhdF9uYW1lID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdGhpcy0+TGFuZygncm9vdCcpKTsKfQoKJHBhcmVudGNhdGVnb3J5ID0gJzAnOwppZiAoaXNzZXQoJHBhcmFtc1sncGFyZW50Y2F0ZWdvcnknXSkpIHsKCSRwYXJlbnRjYXRlZ29yeSA9ICRwYXJhbXNbJ3BhcmVudGNhdGVnb3J5J107Cn0KLy8gQ2hlY2sgdGhlIG51bWJlciBvZiBhY3RpdmUgcHJvZHVjdHMgY29ubmVjdGVkIHRvIHRoZSByb290IGNhdGVnb3J5CiRxdWVyeTIgPSAnU0VMRUNUIGNvdW50KCopIGFzIG51bV9wcm9kdWN0cyBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IHBjLAoJJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzIHAgV0hFUkUgY2F0ZWdvcnlfaWQgPSAwIEFORCBwYy5wcm9kdWN0X2lkID0gcC5wcm9kdWN0X2lkIEFORAlwLmFjdGl2ZSA9IDEnOwokZGJyZXN1bHQyID0gJGRiLT5FeGVjdXRlKCRxdWVyeTIpOwoKJG51bXByb2RzID0gMDsKaWYgKCRkYnJlc3VsdDIgJiYgJHByb2Ryb3cgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpKSB7CgkkbnVtcHJvZHMgPSAkcHJvZHJvd1snbnVtX3Byb2R1Y3RzJ107Cn0KCiRkZXN0cGFnZSA9IChpc3NldCgkZGV0YWlscGFnZSkgJiYgJGRldGFpbHBhZ2UgIT0gJycpID8gJGRldGFpbHBhZ2UgOiAkcmV0dXJuaWQ7Cgokc2VuZHRvZGV0YWlsID0gYXJyYXkoJ2NhdGVnb3J5X2lkJyA9PiAnMCcsCSdkZXRhaWxwYWdlJyA9PiAkZGVzdHBhZ2UpOwoKJHByZXR0eXVybCA9ICdTaW1wbGVTaG9wL2NhdC8wLycgLiAkZGVzdHBhZ2UgLiAnLycgLiAkY2F0X25hbWU7CmlmIChpc3NldCgkc2VuZHRvZGV0YWlsWydkZXRhaWx0ZW1wbGF0ZSddKSkgewoJJHByZXR0eXVybCAuPSAnL2QsJyAuICRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ107Cn0KaWYgKCRudW1wcm9kcyAhPSAwKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jvb3RjYXQnLCAkdGhpcy0+Q3JlYXRlTGluaygKCQkkaWQsCgkJJ2ZlX3Byb2R1Y3RfbGlzdCcsCgkJJGRlc3RwYWdlLAoJCSR0aGlzLT5MYW5nKCdyb290JyksCgkJJHNlbmR0b2RldGFpbCwKCQknJywKCQlmYWxzZSwKCQlmYWxzZSwKCQknJywKCQl0cnVlLAoJCSRwcmV0dHl1cmwKCSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0c19pbl9yb290X2NhdGVnb3J5JywgJG51bXByb2RzKTsKfQoKLy8gQ3JlYXRlIGEgY2F0ZWdvcnkgdHJlZQokYyA9ICR0aGlzLT5GaWxsQ2F0TGlzdCgkcGFyZW50Y2F0ZWdvcnksIDAsICRyZXR1cm5pZCwgJGlkKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsICRjKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZyb250ZW5kRm9ybVN0YXJ0KCRpZCwgJHJldHVybmlkLCAnZmVfY2F0X2xpc3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xhYmVsX2NhdGVnb3JpZXMnLCAkdGhpcy0+TGFuZygnbGFiZWxfY2F0ZWdvcmllcycpKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKJHRlbXBsYXRlID0gJ2NhdGVnb3JpZXNfdGVtcGxhdGUnOwovLyBDdXJyZW50bHkgb25seSBvbmUgdGVtcGxhdGUgYXZhaWxhYmxlLCBzbyBuZXh0IGxpbmVzIHdpbGwgbm90IHBlcmZvcm0gYW55dGhpbmcKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3JpZXN0ZW1wbGF0ZSddKSkgewoJJHRlbXBsYXRlID0gJHBhcmFtc1snY2F0ZWdvcmllc3RlbXBsYXRlJ107Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0ZW1wbGF0ZSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_products_featured.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CgokZGV0YWlscGFnZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7Cgkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCWlmIChpc3NldCgkbm9kZSkpIHsKCQkkY29udGVudCA9ICYkbm9kZS0+R2V0Q29udGVudCgpOwoJCWlmIChpc3NldCgkY29udGVudCkpIHsKCQkJJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCQl9Cgl9IGVsc2UgewoJCSRub2RlID0gJiRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCQlpZiAoaXNzZXQoJG5vZGUpKSB7CgkJCSRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJCX0KCX0KfQoKLy8gUHJlcGFyZSBzZXR0aW5ncyBmb3IgdXNhZ2Ugb2YgY2FydAokbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwokQ2FydE1TID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgnU2ltcGxlQ2FydCcpOwoKJHBhdGhwcm9kdWN0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlcGF0aF9wcm9kdWN0Jyk7CgppZiAoaXNzZXQoJHBhcmFtc1snc29ydCddKSAmJiAhZW1wdHkoJHBhcmFtc1snc29ydCddKSkgewoJc3dpdGNoICgkcGFyYW1zWydzb3J0J10pIHsKCQljYXNlICdwb3NpdGlvbic6CgkJCSRzb3J0ID0gJ3Bvc2l0aW9uJzsKCQkJYnJlYWs7CgkJY2FzZSAncHJpY2UnOgoJCQkkc29ydCA9ICdwcmljZSc7CgkJCWJyZWFrOwoJCWRlZmF1bHQ6CgkJCSRzb3J0ID0gJ3Byb2R1Y3RfaWQnOwoJCQlicmVhazsKCX0KfSBlbHNlIHsKCSRzb3J0ID0gJ3Byb2R1Y3RfaWQnOwp9CiRzb3J0X29yZGVyID0gKGlzc2V0KCRwYXJhbXNbJ3NvcnRfb3JkZXInXSkgJiYgJHBhcmFtc1snc29ydF9vcmRlciddID09ICdERVNDJykgPyAnREVTQycgOiAnQVNDJzsKCi8vIERpc3BsYXkgaW5mb3JtYXRpb24gb2YgdGhlIHByb2R1Y3QKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzCglXSEVSRSBhY3RpdmUgPSAxIEFORCBmZWF0dXJlZCA9IDEKCU9SREVSIEJZICcgLiAkc29ydCAuICcgJyAuICRzb3J0X29yZGVyOwokcXVlcnkyID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cwoJV0hFUkUgYWN0aXZlID0gMSBBTkQgZmVhdHVyZWQgPSAxCglPUkRFUiBCWSBwb3NpdGlvbic7Ci8vIFNldCB0aGUgcGFnZSBoeXBlcmxpbmtzIGlmIG5lZWRlZAokcGFnZWxpbWl0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RwYWdlbGltaXQnLCAxMDAwMDApOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2RwYWdlbGltaXQnXSkpIHsKCSRwYWdlbGltaXQgPSBpbnR2YWwoJHBhcmFtc1sncHJvZHBhZ2VsaW1pdCddKTsKfQoKLy8gR2V0IHRoZSBudW1iZXIgb2Ygcm93cyAoc28gd2UgY2FuIGRldGVybWluZSB0aGUgbnVtZXIgb2YgcGFnZXMpCiRwYWdlY291bnQgPSAtMTsKJHN0YXJ0ZWxlbWVudCA9IDA7CiRwYWdlbnVtYmVyID0gMTsKLy8gR2V0IHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgdGhhdCBtYXRjaCB0aGUgcXVlcnkKLy8gYW5kIGRldGVybWluZSBhIG51bWJlciBvZiBwYWdlcwokcm93MiA9ICRkYi0+R2V0Um93KCRxdWVyeTIpOwokY291bnQgPSBpbnR2YWwoJHJvdzJbJ2NvdW50KCopJ10pOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXJ0J10pKSB7CgkkY291bnQgLT0gKGludCkkcGFyYW1zWydzdGFydCddOwp9CiRwYWdlY291bnQgPSAoaW50KSgkY291bnQgLyAkcGFnZWxpbWl0KTsKaWYgKCgkY291bnQgJSAkcGFnZWxpbWl0KSAhPSAwKSAkcGFnZWNvdW50Kys7CgppZiAoaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSAmJiAkcGFyYW1zWydwYWdlbnVtYmVyJ10gIT0gJycpIHsKCS8vIElmIGdpdmVuIGEgcGFnZSBudW1iZXIsIGRldGVybWluZSBhIHN0YXJ0IGVsZW1lbnQKCSRwYWdlbnVtYmVyID0gKGludCkkcGFyYW1zWydwYWdlbnVtYmVyJ107Cgkkc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyIC0gMSkgKiAkcGFnZWxpbWl0Owp9CmlmIChpc3NldCgkcGFyYW1zWydzdGFydCddKSkgewoJLy8gR2l2ZW4gYSBzdGFydCBlbGVtZW50LCBkZXRlcm1pbmUgYSBwYWdlIG51bWJlcgoJJHN0YXJ0ZWxlbWVudCA9ICRzdGFydGVsZW1lbnQgKyAoaW50KSRwYXJhbXNbJ3N0YXJ0J107Cn0KaWYgKCRzdGFydGVsZW1lbnQgPT0gJHBhZ2VsaW1pdCkgewoJLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlcmUgYXJlIGxlc3MgcmVzdWx0cyB0aGVuIG9uZSBwYWdlLiBSZXNldCB0byBzdGFydGluZyBwb3NpdGlvbi4KCSMkc3RhcnRlbGVtZW50ID0gMDsKfQovLyBBc3NpZ24gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkKaWYgKCRwYWdlbnVtYmVyID09IDEpIHsKCSRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLCAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZScsICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7Cn0gZWxzZSB7CgkkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZW51bWJlciAtIDE7Cgkkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywgJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2ZlX3Byb2R1Y3RzX2ZlYXR1cmVkJywgJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJyksICRwYXJhbXMpKTsKCSRwYXJhbXNbJ3BhZ2VudW1iZXInXSA9IDE7Cgkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZScsICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdmZV9wcm9kdWN0c19mZWF0dXJlZCcsICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSwgJHBhcmFtcykpOwp9CgppZiAoJHBhZ2VudW1iZXIgPj0gJHBhZ2Vjb3VudCkgewoJJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICR0aGlzLT5MYW5nKCduZXh0cGFnZScpKTsKCSRzbWFydHktPmFzc2lnbignbGFzdHBhZ2UnLCAkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSk7Cn0gZWxzZSB7CgkvLyBNYWtlIHN1cmUgbmV4dCBwYWdlIGlzIHNlbGVjdGVkIChhbHNvIGlmIG9uZSBwcm9kdWN0IHBlciBwYWdlKQoJJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBhZ2VudW1iZXIgKyAxOwoJJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdmZV9wcm9kdWN0c19mZWF0dXJlZCcsICR0aGlzLT5MYW5nKCduZXh0cGFnZScpLCAkcGFyYW1zKSk7CgkkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZWNvdW50OwoJJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdmZV9wcm9kdWN0c19mZWF0dXJlZCcsICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLCAkcGFyYW1zKSk7Cn0KCiRzbWFydHktPmFzc2lnbigncGFnZW51bWJlcicsICRwYWdlbnVtYmVyKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCAkcGFnZWNvdW50KTsKJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X29mJykpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3Byb21wdF9wYWdlJykpOwoKJGRicmVzdWx0ID0gJyc7CmlmICgkcGFnZWxpbWl0IDwgMTAwMDAwIHx8ICRzdGFydGVsZW1lbnQgPiAwKSB7CgkkZGJyZXN1bHQgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCk7Cn0gZWxzZSB7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKfQoKJHJvdyA9IGFycmF5KCk7CiRyb3djbGFzcyA9ICdyb3cxJzsKJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7Cgkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7Cgkkb25lcm93LT5wcm9kaWQgPSAkcm93Wydwcm9kdWN0X2lkJ107CgoJaWYgKCR0cmFucykgewoJCSRhbGlhc2VkX3RpdGxlID0gJHRyYW5zLT5UcmFuc2xpdCgkcm93WyduYW1lJ10pOwoJfSBlbHNlIHsKCQkkYWxpYXNlZF90aXRsZSA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKTsKCX0KCgkkcHJldHR5dXJsID0gJ1NpbXBsZVNob3AvcHJvZC8nIC4gJHJvd1sncHJvZHVjdF9pZCddIC4gJy8nIC4KCQkoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCkgLiAnLycgLiAkYWxpYXNlZF90aXRsZTsKCWlmIChpc3NldCgkc2VuZHRvZGV0YWlsWydkZXRhaWx0ZW1wbGF0ZSddKSkgewoJCSRwcmV0dHl1cmwgLj0gJy9kLCcgLiAkc2VuZHRvZGV0YWlsWydkZXRhaWx0ZW1wbGF0ZSddOwoJfQoJJHNlbmR0b2RldGFpbCA9IGFycmF5KCdwcm9kdWN0X2lkJyA9PiAkcm93Wydwcm9kdWN0X2lkJ10pOwoJJG9uZXJvdy0+cHJvZG5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkkaWQsCgkJJ2ZlX3Byb2R1Y3RfZGV0YWlsJywKCQkkZGV0YWlscGFnZSAhPSAnJyA/ICRkZXRhaWxwYWdlIDogJHJldHVybmlkLAoJCSRyb3dbJ25hbWUnXSwKCQkkc2VuZHRvZGV0YWlsLAoJCScnLAoJCWZhbHNlLAoJCWZhbHNlLAoJCScnLAoJCXRydWUsCgkJJHByZXR0eXVybAoJKTsKCgkkb25lcm93LT5wcm9kZGVzYyA9IHN0cmlwX3RhZ3MoJHJvd1snZGVzY3JpcHRpb24nXSk7CglpZiAoJENhcnRNUykgewoJCSRvbmVyb3ctPnByaWNlID0gJENhcnRNUy0+b3JkZXJzLT5Gb3JtYXRBbW91bnQoJHJvd1sncHJpY2UnXSk7Cgl9IGVsc2UgewoJCSRvbmVyb3ctPnByaWNlID0gJHRoaXMtPkZvcm1hdFByaWNlKCRyb3dbJ3ByaWNlJ10pOwoJfQoJJG9uZXJvdy0+bmV0d2VpZ2h0ID0gJHRoaXMtPkZvcm1hdFdlaWdodCgkcm93WyduZXR3ZWlnaHQnXSk7Cgkkb25lcm93LT5za3UgPSAkcm93Wydza3UnXTsKCgkvLyBDaGVjayBpZiBpbnZlbnRvcnkgaW4gcGxhY2UuIElmIHNvIGRvbid0IHNob3cgYW55IGFkZCB0byBjYXJ0IG9wdGlvbgoJJGludmVudG9yeXR5cGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScpOwoJaWYgKCRpbnZlbnRvcnl0eXBlID09ICdwcm9kJyAmJiAkcm93WydtYXhhdHRyaWJ1dGVzJ10gPiAwIHx8ICRpbnZlbnRvcnl0eXBlID09ICdub25lJykgewoJCS8vIEJ1aWxkIGxpbmsgdG8gY2FydAoJCWlmICgkQ2FydE1TKSB7CgoJCQkkcXVlcnkgPSAiU0VMRUNUIGNhdGVnb3J5X2lkIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfY2F0ZWdvcnkgV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwoJCQkkY2F0ZWdvcnlfaWQgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRyb3dbJ3Byb2R1Y3RfaWQnXSkpOwoKCQkJJHByZXR0eXVybCA9ICdTaW1wbGVDYXJ0L2FkZHByb2R1Y3QvJyAuICRjYXRlZ29yeV9pZCAuICcvJyAuCgkJCQkkcm93Wydwcm9kdWN0X2lkJ10gLiAnLzAvMScgLiAnLycgLiAoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCk7CgkJCSRvbmVyb3ctPmFkZHByb2R1Y3QgPSAkQ2FydE1TLT5DcmVhdGVMaW5rKAoJCQkJJGlkLAoJCQkJJ2NhcnQnLAoJCQkJJHJldHVybmlkLAoJCQkJJHRoaXMtPkxhbmcoJ2FkZHRvY2FydCcpLAoJCQkJYXJyYXkoCgkJCQkJJ25hbWUnID0+ICRyb3dbJ25hbWUnXSwKCQkJCQkncGVyZmFjdGlvbicgPT4gJ2FkZF9wcm9kdWN0JywKCQkJCQkncHJvZHVjdF9pZCcgPT4gJHJvd1sncHJvZHVjdF9pZCddLAoJCQkJCSdxdHknID0+IDEsCgkJCQkJJ3JldHVybm1vZCcgPT4gJ1NpbXBsZVNob3AnCgkJCQkpLAoJCQkJJycsCgkJCQlmYWxzZSwKCQkJCXRydWUsCgkJCQknJywKCQkJCXRydWUsCgkJCQkkcHJldHR5dXJsCgkJCSk7CgkJCS8vIFByZXBhcmUgbGluayB3aXRoIGltYWdlIChGZWF0IFJlcSMzMzI0KQoJCQkkaW1hZ2VzcmMgPSAkY29uZmlnWydyb290X3VybCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdtb2R1bGVzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLgoJCQkJJHRoaXMtPkdldE5hbWUoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaW1hZ2VzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnYWRkdG9jYXJ0LmdpZic7CgkJCSRvbmVyb3ctPmFkZHByb2R1Y3RpbWFnZSA9ICRDYXJ0TVMtPkNyZWF0ZUxpbmsoCgkJCQkkaWQsCgkJCQknY2FydCcsCgkJCQkkcmV0dXJuaWQsCgkJCQknPGltZyBzcmM9IicgLiAkaW1hZ2VzcmMgLiAnIiBhbHQ9IicgLiAkdGhpcy0+TGFuZygnYWRkdG9jYXJ0JykgLiAnIiB0aXRsZT0iJyAuICR0aGlzLT5MYW5nKCdhZGR0b2NhcnQnKSAuICciPicsCgkJCQlhcnJheSgKCQkJCQknbmFtZScgPT4gJHJvd1snbmFtZSddLAoJCQkJCSdwZXJmYWN0aW9uJyA9PiAnYWRkX3Byb2R1Y3QnLAoJCQkJCSdwcm9kdWN0X2lkJyA9PiAkcm93Wydwcm9kdWN0X2lkJ10sCgkJCQkJJ3F0eScgPT4gMSwKCQkJCQkncmV0dXJubW9kJyA9PiAnU2ltcGxlU2hvcCcKCQkJCSkKCQkJKTsKCQl9Cgl9CgoJLy8gR2V0IHRoZSBmaXJzdCBwaWN0dXJlIGF2YWlsYWJsZSBmb3IgdGhlIHByb2R1Y3QgZm91bmQKCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2ltYWdlcyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CgkkcGljdHVyZSA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHJvd1sncHJvZHVjdF9pZCddKSk7CglpZiAoJHBpY3R1cmUpIHsKCQlpZiAoaXNzZXQoJHBpY3R1cmVbJ2ltYWdlJ10pICYmICRwaWN0dXJlWydpbWFnZSddICE9ICdub19pbWFnZS5qcGcnKSB7CgkJCSRvbmVyb3ctPnByb2RpbWFnZSA9ICRwYXRocHJvZHVjdCAuICRwaWN0dXJlWydpbWFnZSddOwoJCQkkb25lcm93LT5wcm9kaW1hZ2VsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkkaWQsCgkJCQknZmVfcHJvZHVjdF9kZXRhaWwnLAoJCQkJJHJldHVybmlkLAoJCQkJJzxpbWcgc3JjPVwnJyAuICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnL3VwbG9hZHMvaW1hZ2VzJyAuICRwYXRocHJvZHVjdCAuICd0bl8nIC4gJHBpY3R1cmVbJ2ltYWdlJ10gLgoJCQkJCSdcJyB0aXRsZT1cJycgLiAkcGljdHVyZVsnZGVzY3JpcHRpb24nXSAuICdcJyA+JywKCQkJCWFycmF5KCdwcm9kdWN0X2lkJyA9PiAkcm93Wydwcm9kdWN0X2lkJ10pCgkJCSk7CgkJfSBlbHNlIHsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9kaW1hZ2UnLCAnKm5vbmUnKTsKCQl9Cgl9CgoJJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgoJJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgoJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RzJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xhYmxlX3Byb2R1Y3RfY291bnQnLCAkdGhpcy0+TGFuZygndGV4dHByb2R1Y3Rjb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSkpOwoKLy8gU3RhdGUgdGhlIGN1cnJlbmN5IHN5bWJvbCBhbmQgdGhhdCBwcmljZXMgYXJlIGluL2V4IFZBVC9UQVgKJGluZXh2YXQgPSAoaW50KSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJpY2VzaW5jbHZhdCcsIDApOwppZiAoJGluZXh2YXQgIT0gMCkgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeScsICR0aGlzLT5MYW5nKCdwcmljZXNpbmN1cmludmF0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY3VycmVuY3knKSkpOwp9IGVsc2UgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeScsICR0aGlzLT5MYW5nKCdwcmljZXNpbmN1cmV4dmF0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY3VycmVuY3knKSkpOwp9CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VyX3N5bWJvbCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N5bWJvbCcpKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKJHRlbXBsYXRlID0gJ3Byb2RmZWF0X3RlbXBsYXRlJzsKLy8gQ3VycmVudGx5IG9ubHkgb25lIHRlbXBsYXRlIGF2YWlsYWJsZSwgc28gbmV4dCBsaW5lcyB3aWxsIG5vdCBwZXJmb3JtIGFueXRoaW5nCmlmIChpc3NldCgkcGFyYW1zWydwcm9kZmVhdHRlbXBsYXRlJ10pKSB7CgkkdGVtcGxhdGUgPSAkcGFyYW1zWydwcm9kZmVhdHRlbXBsYXRlJ107Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0ZW1wbGF0ZSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_product_detail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRnQ21zID0gY21zbXMoKTsKaWYgKCFpc19vYmplY3QoJGdDbXMpKSBleGl0OwoKJGRldGFpbHBhZ2UgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKCSRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwoJJG5vZGUgPSAmJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJaWYgKGlzc2V0KCRub2RlKSkgewoJCSRjb250ZW50ID0gJiRub2RlLT5HZXRDb250ZW50KCk7CgkJaWYgKGlzc2V0KCRjb250ZW50KSkgewoJCQkkZGV0YWlscGFnZSA9ICRjb250ZW50LT5JZCgpOwoJCX0KCX0gZWxzZSB7CgkJJG5vZGUgPSAmJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwoJCWlmIChpc3NldCgkbm9kZSkpIHsKCQkJJGRldGFpbHBhZ2UgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107CgkJfQoJfQp9CgovLyBQcmVwYXJlIHNldHRpbmdzIGZvciB1c2FnZSBvZiBjYXJ0CiRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CiRDYXJ0TVMgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTaW1wbGVDYXJ0Jyk7CgokcGF0aGNhdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfY2F0ZWdvcnknKTsKJHBhdGhwcm9kdWN0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlcGF0aF9wcm9kdWN0Jyk7CgovLyBTYXZlIHRoZSBwcm9kdWN0IGlkIGZvciBjb3JyZWN0IHVzYWdlIHRocm91Z2hvdXQgYWxsIHF1ZXJpZXMKJHByb2R1Y3RfaWQgPSAnJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSkpICRwcm9kdWN0X2lkID0gJHBhcmFtc1sncHJvZHVjdF9pZCddOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pKSB7CgkkY2F0ZWdvcnlfaWQgPSAkcGFyYW1zWydjYXRlZ29yeV9pZCddOwp9IGVsc2UgewoJJHF1ZXJ5ID0gIlNFTEVDVCBjYXRlZ29yeV9pZCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IFdIRVJFIHByb2R1Y3RfaWQgPSA/IjsKCSRjYXRlZ29yeV9pZCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKfQovLyBEaXNwbGF5IGluZm9ybWF0aW9uIG9mIHRoZSBwcm9kdWN0CiRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0cyBXSEVSRSBwcm9kdWN0X2lkID0gPyI7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRwcm9kdWN0X2lkKSk7CgppZiAoJHJvdykgewoJJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CglpZiAoJHRyYW5zKSB7CgkJJGFsaWFzZWRfdGl0bGUgPSAkdHJhbnMtPlRyYW5zbGl0KCRyb3dbJ25hbWUnXSk7Cgl9IGVsc2UgewoJCSRhbGlhc2VkX3RpdGxlID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93WyduYW1lJ10pOwoJfQoJJGNhbm9uaWNhbCA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnL1NpbXBsZVNob3AvcHJvZC8nIC4gJHJvd1sncHJvZHVjdF9pZCddIC4gJy8nIC4KCQkoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCkgLiAnLycgLiAkYWxpYXNlZF90aXRsZSAuICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ107CgoJJHNtYXJ0eS0+YXNzaWduKCdjYW5vbmljYWwnLCAkY2Fub25pY2FsKTsKCgkkcHJvZHVjdG5hbWUgPSAkcm93WyduYW1lJ107CgkkcHJvZHVjdHByaWNlID0gJHJvd1sncHJpY2UnXTsKCSRxdWFudGl0eW9uc3RvY2sgPSAkcm93WydtYXhhdHRyaWJ1dGVzJ107Cgkkd2VpZ2h0dW5pdG1lYXN1cmUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0dW5pdG1lYXN1cmUnLCAnZ3InKTsKCSRzbWFydHktPmFzc2lnbignaWQnLCAkcHJvZHVjdF9pZCk7Cgkkc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RuYW1lJywgJHJvd1snbmFtZSddKTsKCSRzbWFydHktPmFzc2lnbignZGVzY3JpcHRpb24nLCAkcm93WydkZXNjcmlwdGlvbiddKTsKCWlmICgkQ2FydE1TKSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdwcmljZScsICRDYXJ0TVMtPm9yZGVycy0+Rm9ybWF0QW1vdW50KCRyb3dbJ3ByaWNlJ10pKTsKCX0gZWxzZSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdwcmljZScsICR0aGlzLT5Gb3JtYXRQcmljZSgkcm93WydwcmljZSddKSk7Cgl9Cgkkc21hcnR5LT5hc3NpZ24oJ3NrdScsICRyb3dbJ3NrdSddKTsKCSRzbWFydHktPmFzc2lnbignaXRlbW51bWJlcicsICRyb3dbJ2l0ZW1udW1iZXInXSk7Cgkkc21hcnR5LT5hc3NpZ24oJ25ldHdlaWdodCcsICR0aGlzLT5Gb3JtYXRXZWlnaHQoJHJvd1snbmV0d2VpZ2h0J10pIC4gJyAnIC4gJHdlaWdodHVuaXRtZWFzdXJlKTsKCS8vIEdldCB0aGUgZmlyc3QgcGljdHVyZSBhdmFpbGFibGUgZm9yIHRoZSBwcm9kdWN0IGZvdW5kCgkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwoJJHBpY3R1cmUgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRwcm9kdWN0X2lkKSk7CglpZiAoJHBpY3R1cmUpIHsKCQlpZiAoaXNzZXQoJHBpY3R1cmVbJ2ltYWdlJ10pICYmICRwaWN0dXJlWydpbWFnZSddICE9ICdub19pbWFnZS5qcGcnKSB7CgkJCSRzbWFydHktPmFzc2lnbigncHJvZGltYWdlJywgJHBhdGhwcm9kdWN0IC4gJHBpY3R1cmVbJ2ltYWdlJ10pOwoJCQkkc21hcnR5LT5hc3NpZ24oJ2ltYWdlZGVzYycsICRyb3dbJ2Rlc2NyaXB0aW9uJ10pOwoJCX0gZWxzZSB7CgkJCSRzbWFydHktPmFzc2lnbigncHJvZGltYWdlJywgJypub25lJyk7CgkJfQoJfQoJLy8gV2hlbiB0aGUge2ltYWdlfSB0YWcgb2Ygc21hcnR5IGlzIG5vdCBpbiB1c2UsIHRoZSBjb21wbGV0ZSBwYXRoIG11c3QgYmUgcGFzc2VkCglpZiAoaXNzZXQoJHBpY3R1cmVbJ2ltYWdlJ10pKSB7CgkJJHNtYXJ0eS0+YXNzaWduKCdwaW1hZ2UnLCAkY29uZmlnWydyb290X3VybCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd1cGxvYWRzJyAuCgkJCURJUkVDVE9SWV9TRVBBUkFUT1IgLiAnaW1hZ2VzJyAuICRwYXRocHJvZHVjdCAuICRwaWN0dXJlWydpbWFnZSddKTsKCX0KCS8vIEJ1aWxkIGFycmF5IHRoYXQgaG9sZHMgdGhlIGltYWdlcyBjb25uZWN0ZWQgdG8gdGhlIHByb2R1Y3QKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwcm9kdWN0X2lkKSk7CgkkZW50cnlhcnJheSA9IGFycmF5KCk7Cgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgkJaWYgKGlzc2V0KCRwaWN0dXJlWydpbWFnZSddKSAmJiAkcGljdHVyZVsnaW1hZ2UnXSAhPSAnbm9faW1hZ2UuanBnJykgewoJCQkkb25lcm93LT5pbWFnZSA9ICRwYXRocHJvZHVjdCAuICRyb3dbJ2ltYWdlJ107CgkJCSRvbmVyb3ctPmltYWdldGh1bWIgPSAkcGF0aHByb2R1Y3QgLiAndG5fJyAuICRyb3dbJ2ltYWdlJ107CgkJCSRvbmVyb3ctPmltYWdlZGVzYyA9ICRyb3dbJ2Rlc2NyaXB0aW9uJ107CgkJCSRvbmVyb3ctPmZ1bGxwYXRoaW1hZ2UgPSAkY29uZmlnWydyb290X3VybCddIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd1cGxvYWRzJyAuCgkJCQlESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2ltYWdlcycgLiAkcGF0aHByb2R1Y3QgLiAkcm93WydpbWFnZSddOwoJCX0KCgkJJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cgl9Cgkkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwoJJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwoJLy8gQ2hlY2sgaWYgaW52ZW50b3J5IGluIHBsYWNlLiBJZiBzbyBkb24ndCBzaG93IGFueSBhZGQgdG8gY2FydCBvcHRpb24KCSRvbnN0b2NrID0gJ05vJzsKCSRpbnZlbnRvcnl0eXBlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludmVudG9yeXR5cGUnLCAnbm9uZScpOwoJaWYgKCRpbnZlbnRvcnl0eXBlID09ICdwcm9kJyAmJiAkcXVhbnRpdHlvbnN0b2NrID4gMCB8fCAkaW52ZW50b3J5dHlwZSA9PSAnbm9uZScpIHsKCQkkb25zdG9jayA9ICdZZXMnOwoJfQoJaWYgKCRvbnN0b2NrID09ICdZZXMnKSB7CgkJLy8gQnVpbGQgbGluayB0byBjYXJ0CgkJaWYgKCRDYXJ0TVMpIHsKCQkJJHNtYXJ0eS0+YXNzaWduKCdhZGRwcm9kdWN0JywgJENhcnRNUy0+Q3JlYXRlTGluaygKCQkJCSRpZCwKCQkJCSdjYXJ0JywKCQkJCSRyZXR1cm5pZCwKCQkJCSR0aGlzLT5MYW5nKCdhZGR0b2NhcnQnKSwKCQkJCWFycmF5KAoJCQkJCSduYW1lJyA9PiAkcHJvZHVjdG5hbWUsCgkJCQkJJ3BlcmZhY3Rpb24nID0+ICdhZGRfcHJvZHVjdCcsCgkJCQkJJ2NhdGVnb3J5X2lkJyA9PiAkY2F0ZWdvcnlfaWQsCgkJCQkJJ3Byb2R1Y3RfaWQnID0+ICRwcm9kdWN0X2lkLAoJCQkJCSdxdHknID0+IDEsCgkJCQkJJ3JldHVybm1vZCcgPT4gJ1NpbXBsZVNob3AnCgkJCQkpCgkJCSkpOwoJCQkkaW1hZ2VzcmMgPSAkdGhpcy0+SW1hZ2VBZGRUb0NhcnRTb3VyY2UoKTsKCQkJJHNtYXJ0eS0+YXNzaWduKCdhZGRwcm9kdWN0aW1hZ2UnLCAkQ2FydE1TLT5DcmVhdGVMaW5rKAoJCQkJJGlkLAoJCQkJJ2NhcnQnLAoJCQkJJHJldHVybmlkLAoJCQkJJzxpbWcgc3JjPSInIC4gJGltYWdlc3JjIC4gJyIgYWx0PSInIC4gJHRoaXMtPkxhbmcoJ2FkZHRvY2FydCcpIC4gJyIgdGl0bGU9IicgLiAkdGhpcy0+TGFuZygnYWRkdG9jYXJ0JykgLiAnIj4nLAoJCQkJYXJyYXkoCgkJCQkJJ25hbWUnID0+ICRwcm9kdWN0bmFtZSwKCQkJCQkncGVyZmFjdGlvbicgPT4gJ2FkZF9wcm9kdWN0JywKCQkJCQknY2F0ZWdvcnlfaWQnID0+ICRjYXRlZ29yeV9pZCwKCQkJCQkncHJvZHVjdF9pZCcgPT4gJHByb2R1Y3RfaWQsCgkJCQkJJ3F0eScgPT4gMSwKCQkJCQkncmV0dXJubW9kJyA9PiAnU2ltcGxlU2hvcCcKCQkJCSkKCQkJKSk7CgkJfQoJfQoKCSRwcm9kdWN0X2RhdGEgPSAkdGhpcy0+cHJvZHVjdHMtPkdldCgkcHJvZHVjdF9pZCk7CgkkYXR0cmlidXRlID0gYXJyYXkoKTsKCSRhdHRyaWJ1dGVzID0gYXJyYXkoKTsKCSRwcm9kdWN0X2F0dHJpYnV0ZXNfbGlzdCA9IGFycmF5KCk7CgkvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IGF0dHJpYnV0ZXMgZm9yIHRoZSBjdXJyZW50IHByb2R1Y3QuIElmIG5vdCBjaGVja2VkLCB0aGUgZm9yZWFjaCBydW5zIGludG8gYW4gZXJyb3IKCSRhdHRyaWJ1dGVzWydpdGVtY291bnQnXSA9IGlzc2V0KCRwcm9kdWN0X2RhdGFbJ2F0dHJpYnV0ZXMnXSkgPyBjb3VudCgkcHJvZHVjdF9kYXRhWydhdHRyaWJ1dGVzJ10pIDogMDsKCWlmICgkYXR0cmlidXRlc1snaXRlbWNvdW50J10gPiAwKSB7CgkJZm9yZWFjaCAoJHByb2R1Y3RfZGF0YVsnYXR0cmlidXRlcyddIGFzICRhdHRyaWJ1dGUpIHsKCQkJaWYgKCRhdHRyaWJ1dGVbJ2FjdGl2ZSddKSB7CgkJCQkkYXR0cmlidXRlWyduYW1lJ10gPSAkYXR0cmlidXRlWyduYW1lJ107CgkJCQkkYXR0cmlidXRlWydkZXNjcmlwdGlvbiddID0gc3RyaXBfdGFncygkYXR0cmlidXRlWydkZXNjcmlwdGlvbiddKTsKCQkJCS8vIENoZWNrIGlmIGludmVudG9yeSBpbiBwbGFjZS4gSWYgc28gZG9uJ3Qgc2hvdyBhbnkgYWRkIHRvIGNhcnQgb3B0aW9uCgkJCQkkYXR0cmlidXRlWydvbnN0b2NrJ10gPSB0cnVlOwoJCQkJJGludmVudG9yeXR5cGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScpOwoJCQkJaWYgKCgkaW52ZW50b3J5dHlwZSA9PSAnYXR0cicgJiYgJGF0dHJpYnV0ZVsnbWF4YWxsb3dlZCddID4gMCkKCQkJCQl8fCAkb25zdG9jayA9PSAnWWVzJwoJCQkJKSB7CgkJCQkJJGF0dHJpYnV0ZVsncHJpY2UnXSA9ICcnOwoJCQkJCSRwcmljZSA9ICR0aGlzLT5DYWxjdWxhdGVBdHRyaWJ1dGVQcmljZSgkcHJvZHVjdHByaWNlLCAkYXR0cmlidXRlWydwcmljZWFkanVzdHR5cGUnXSwgJGF0dHJpYnV0ZVsncHJpY2VhZGp1c3RtZW50J10pOwoJCQkJCWlmICgkQ2FydE1TKSB7CgkJCQkJCSRhdHRyaWJ1dGVbJ3ByaWNlJ10gPSAkQ2FydE1TLT5vcmRlcnMtPkZvcm1hdEFtb3VudCgkcHJpY2UpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRhdHRyaWJ1dGVbJ3ByaWNlJ10gPSAkdGhpcy0+Rm9ybWF0UHJpY2UoJHByaWNlKTsKCQkJCQl9CgoJCQkJCWlmICghJGF0dHJpYnV0ZVsnZGlzcGxheW9ubHknXSkgewoKCQkJCQkJJGludmVudG9yeXR5cGUgPSAkdGhpcy0+R2V0U01TUHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScsICdub25lJyk7CgkJCQkJCWlmICgkaW52ZW50b3J5dHlwZSA9PSAnYXR0cicpIHsKCQkJCQkJCSRhdHRyaWJ1dGVfcXR5ID0gKCRhdHRyaWJ1dGVbJ21pbmFsbG93ZWQnXSA+IDApID8gJGF0dHJpYnV0ZVsnbWluYWxsb3dlZCddIDogMTsKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCSRhdHRyaWJ1dGVfcXR5ID0gMTsKCQkJCQkJfQoKCQkJCQkJLy8gQnVpbGQgbGluayB0byBjYXJ0CgkJCQkJCWlmICgkQ2FydE1TKSB7CgkJCQkJCQkkYXR0cmlidXRlWydhZGRhdHRyaWJ1dGUnXSA9ICRDYXJ0TVMtPkNyZWF0ZUxpbmsoCgkJCQkJCQkJJGlkLAoJCQkJCQkJCSdjYXJ0JywKCQkJCQkJCQkkcmV0dXJuaWQsCgkJCQkJCQkJJHRoaXMtPkxhbmcoJ2FkZHRvY2FydCcpLAoJCQkJCQkJCWFycmF5KAoJCQkJCQkJCQknbmFtZScgPT4gJHByb2R1Y3RfZGF0YVsnbmFtZSddLAoJCQkJCQkJCQkncGVyZmFjdGlvbicgPT4gJ2FkZF9wcm9kdWN0JywgJ2NhdGVnb3J5X2lkJyA9PiAkY2F0ZWdvcnlfaWQsCgkJCQkJCQkJCSdwcm9kdWN0X2lkJyA9PiAkcHJvZHVjdF9pZCwgJ2F0dHJpYnV0ZV9pZCcgPT4gJGF0dHJpYnV0ZVsnYXR0cmlidXRlX2lkJ10sCgkJCQkJCQkJCSdxdHknID0+ICRhdHRyaWJ1dGVfcXR5LCAncmV0dXJubW9kJyA9PiAnU2ltcGxlU2hvcCcKCQkJCQkJCQkpCgkJCQkJCQkpOwoJCQkJCQkJJGltYWdlc3JjID0gJHRoaXMtPkltYWdlQWRkVG9DYXJ0U291cmNlKCk7CgkJCQkJCQkkYXR0cmlidXRlWydhZGRhdHRyaWJ1dGVpbWFnZSddID0gJENhcnRNUy0+Q3JlYXRlTGluaygKCQkJCQkJCQkkaWQsCgkJCQkJCQkJJ2NhcnQnLAoJCQkJCQkJCSRyZXR1cm5pZCwKCQkJCQkJCQknPGltZyBzcmM9IicgLiAkaW1hZ2VzcmMgLiAnIiBhbHQ9IicgLiAkdGhpcy0+TGFuZygnYWRkdG9jYXJ0JykgLiAnIiB0aXRsZT0iJyAuICR0aGlzLT5MYW5nKCdhZGR0b2NhcnQnKSAuICciPicsCgkJCQkJCQkJYXJyYXkoCgkJCQkJCQkJCSduYW1lJyA9PiAkcHJvZHVjdF9kYXRhWyduYW1lJ10sCgkJCQkJCQkJCSdwZXJmYWN0aW9uJyA9PiAnYWRkX3Byb2R1Y3QnLCAnY2F0ZWdvcnlfaWQnID0+ICRjYXRlZ29yeV9pZCwKCQkJCQkJCQkJJ3Byb2R1Y3RfaWQnID0+ICRwcm9kdWN0X2lkLCAnYXR0cmlidXRlX2lkJyA9PiAkYXR0cmlidXRlWydhdHRyaWJ1dGVfaWQnXSwKCQkJCQkJCQkJJ3F0eScgPT4gJGF0dHJpYnV0ZV9xdHksICdyZXR1cm5tb2QnID0+ICdTaW1wbGVTaG9wJwoJCQkJCQkJCSkKCQkJCQkJCSk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCSRhdHRyaWJ1dGVbJ3ByaWNlJ10gPSAkdGhpcy0+TGFuZygncHJvZHVjdHNvbGRvdXQnKTsKCQkJCQkkYXR0cmlidXRlWydvbnN0b2NrJ10gPSBmYWxzZTsKCQkJCQkkYXR0cmlidXRlWydhZGRhdHRyaWJ1dGUnXSA9ICcnOwoJCQkJfQoJCQkJJHByb2R1Y3RfYXR0cmlidXRlc19saXN0W10gPSAkYXR0cmlidXRlOwoJCQl9CgkJfQoJCSRhdHRyaWJ1dGVzWydsaXN0J10gPSAkcHJvZHVjdF9hdHRyaWJ1dGVzX2xpc3Q7CgkJLy8gTm93IGFsbCB0aGUgYXR0cmlidXRlcyBhcmUgZm91bmQsIGNvbm5lY3QgdGhlbSBmb3IgdGhlIGZyb250IGVuZAoJCSRhdHRyaWJ1dGVzWyduYW1lY29sdW1uJ10gPSAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9uYW1lJyk7CgkJJGF0dHJpYnV0ZXNbJ2Rlc2NyaXB0aW9uY29sdW1uJ10gPSAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9kZXNjcmlwdGlvbicpOwoJCSRhdHRyaWJ1dGVzWydwcmljZWNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9hdHRyaWJ1dGVfcHJpY2UnKTsKCQkkYXR0cmlidXRlc1snYWRkYXR0cmlidXRlY29sdW1uJ10gPSAnJzsKCQkkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYnV0ZXMnLCAkYXR0cmlidXRlcyk7Cgl9Cn0KCiRjdXJfc3ltYm9sID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3ltYm9sJyk7CiRzbWFydHktPmFzc2lnbignY3VyX3N5bWJvbCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N5bWJvbCcpKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKJHRlbXBsYXRlID0gJ3Byb2RkZXRhaWxfdGVtcGxhdGUnOwovLyBDdXJyZW50bHkgb25seSBvbmUgdGVtcGxhdGUgYXZhaWxhYmxlLCBzbyBuZXh0IGxpbmVzIHdpbGwgbm90IHBlcmZvcm0gYW55dGhpbmcKaWYgKGlzc2V0KCRwYXJhbXNbJ3Byb2RkZXRhaWx0ZW1wbGF0ZSddKSkgewoJJHRlbXBsYXRlID0gJHBhcmFtc1sncHJvZGRldGFpbHRlbXBsYXRlJ107Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0ZW1wbGF0ZSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_product_list.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CgokZGV0YWlscGFnZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snZGV0YWlscGFnZSddKSkgewoJJG1hbmFnZXIgPSBjbXNtcygpLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7Cgkkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5QWxpYXMoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCWlmIChpc3NldCgkbm9kZSkpIHsKCQkkY29udGVudCA9ICYkbm9kZS0+R2V0Q29udGVudCgpOwoJCWlmIChpc3NldCgkY29udGVudCkpIHsKCQkJJGRldGFpbHBhZ2UgPSAkY29udGVudC0+SWQoKTsKCQl9Cgl9IGVsc2UgewoJCSRub2RlID0gJiRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKCQlpZiAoaXNzZXQoJG5vZGUpKSB7CgkJCSRkZXRhaWxwYWdlID0gJHBhcmFtc1snZGV0YWlscGFnZSddOwoJCX0KCX0KfQoKLy8gUHJlcGFyZSBzZXR0aW5ncyBmb3IgdXNhZ2Ugb2YgY2FydAokbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwokQ2FydE1TID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgnU2ltcGxlQ2FydCcpOwoKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKJHBhdGhjYXQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX2NhdGVnb3J5Jyk7CiRwYXRocHJvZHVjdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcpOwoKLy8gRGlzcGxheSBpbmZvcm1hdGlvbiBvZiB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBhY3RpdmUgPSAxIjsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpOwoKaWYgKCRyb3cpIHsKCglpZiAoJHRyYW5zKSB7CgkJJGNhdF9uYW1lID0gJHRyYW5zLT5UcmFuc2xpdCgkcm93WyduYW1lJ10pOwoJfSBlbHNlIHsKCQkkY2F0X25hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRyb3dbJ25hbWUnXSk7Cgl9CgkkY2Fub25pY2FsID0gJGNvbmZpZ1sncm9vdF91cmwnXSAuICcvU2ltcGxlU2hvcC9jYXQvJyAuICRyb3dbJ2NhdGVnb3J5X2lkJ10gLiAnLycgLiAoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCkgLiAnLycgLiAkY2F0X25hbWUgLiAkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddOwoKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2Fub25pY2FsJywgJGNhbm9uaWNhbCk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkJywgJHJvd1snY2F0ZWdvcnlfaWQnXSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5bmFtZScsICRyb3dbJ25hbWUnXSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Rlc2NyaXB0aW9uJywgJHJvd1snZGVzY3JpcHRpb24nXSk7CglpZiAoaXNzZXQoJHJvd1snaW1hZ2UnXSkgJiYgJHJvd1snaW1hZ2UnXSAhPSAnbm9faW1hZ2UuanBnJyAmJiAkcm93WydpbWFnZSddICE9ICcnKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZScsICRwYXRoY2F0IC4gJHJvd1snaW1hZ2UnXSk7Cgl9IGVsc2UgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2UnLCAnKm5vbmUnKTsKCX0KfQoKaWYgKGlzc2V0KCRwYXJhbXNbJ3NvcnQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3NvcnQnXSkpIHsKCXN3aXRjaCAoJHBhcmFtc1snc29ydCddKSB7CgkJY2FzZSAncG9zaXRpb24nOgoJCQkkc29ydCA9ICdwLnBvc2l0aW9uJzsKCQkJYnJlYWs7CgkJY2FzZSAncHJpY2UnOgoJCQkkc29ydCA9ICdwLnByaWNlJzsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJJHNvcnQgPSAncC5wcm9kdWN0X2lkJzsKCQkJYnJlYWs7Cgl9Cn0gZWxzZSB7Cgkkc29ydCA9ICdwLnByb2R1Y3RfaWQnOwp9CiRzb3J0X29yZGVyID0gKGlzc2V0KCRwYXJhbXNbJ3NvcnRfb3JkZXInXSkgJiYgJHBhcmFtc1snc29ydF9vcmRlciddID09ICdERVNDJykgPyAnREVTQycgOiAnQVNDJzsKCi8vIERpc3BsYXkgaW5mb3JtYXRpb24gb2YgdGhlIGNvbm5lY3RlZCBwcm9kdWN0cwokcXVlcnkgPSAnU0VMRUNUIHAubmFtZSBBUyBwcm9kbmFtZSwgcC5wcm9kdWN0X2lkLCBwLmRlc2NyaXB0aW9uIEFTIHByb2RkZXNjLAoJcC5wcmljZSBBUyBwcmljZSwgcC5uZXR3ZWlnaHQsIHAubWF4YXR0cmlidXRlcyBGUk9NICcKCS4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeSBjIExFRlQgT1VURVIgSk9JTiAnCgkuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzIHAgT04gYy5wcm9kdWN0X2lkID0gcC5wcm9kdWN0X2lkCglXSEVSRSBjLmNhdGVnb3J5X2lkID0gPyBBTkQgcC5hY3RpdmUgPSAxCglPUkRFUiBCWSAnIC4gJHNvcnQgLiAnICcgLiAkc29ydF9vcmRlcjsKCiRxdWVyeTIgPSAnU0VMRUNUIGNvdW50KCopIEZST00gJwoJLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IGMgTEVGVCBPVVRFUiBKT0lOICcKCS4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMgcCBPTiBjLnByb2R1Y3RfaWQgPSBwLnByb2R1Y3RfaWQKCVdIRVJFIGMuY2F0ZWdvcnlfaWQgPSA/IEFORCBwLmFjdGl2ZSA9IDEnOwoKLy8gU2V0IHRoZSBwYWdlIGh5cGVybGlua3MgaWYgbmVlZGVkCiRwYWdlbGltaXQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHBhZ2VsaW1pdCcsIDEwMDAwMCk7CgppZiAoaXNzZXQoJHBhcmFtc1sncHJvZHBhZ2VsaW1pdCddKSkgewoJJHBhZ2VsaW1pdCA9IGludHZhbCgkcGFyYW1zWydwcm9kcGFnZWxpbWl0J10pOwp9CgovLyBHZXQgdGhlIG51bWJlciBvZiByb3dzIChzbyB3ZSBjYW4gZGV0ZXJtaW5lIHRoZSBudW1lciBvZiBwYWdlcykKJHBhZ2Vjb3VudCA9IC0xOwokc3RhcnRlbGVtZW50ID0gMDsKJHBhZ2VudW1iZXIgPSAxOwovLyBHZXQgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyB0aGF0IG1hdGNoIHRoZSBxdWVyeQovLyBhbmQgZGV0ZXJtaW5lIGEgbnVtYmVyIG9mIHBhZ2VzCiRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5MiwgYXJyYXkoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpOwokY291bnQgPSBpbnR2YWwoJHJvdzJbJ2NvdW50KCopJ10pOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXJ0J10pKSB7CgkkY291bnQgLT0gKGludCkkcGFyYW1zWydzdGFydCddOwp9CiRwYWdlY291bnQgPSAoaW50KSgkY291bnQgLyAkcGFnZWxpbWl0KTsKaWYgKCgkY291bnQgJSAkcGFnZWxpbWl0KSAhPSAwKSAkcGFnZWNvdW50Kys7CgppZiAoaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSAmJiAkcGFyYW1zWydwYWdlbnVtYmVyJ10gIT0gJycpIHsKCS8vIElmIGdpdmVuIGEgcGFnZSBudW1iZXIsIGRldGVybWluZSBhIHN0YXJ0IGVsZW1lbnQKCSRwYWdlbnVtYmVyID0gKGludCkkcGFyYW1zWydwYWdlbnVtYmVyJ107Cgkkc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyIC0gMSkgKiAkcGFnZWxpbWl0Owp9CmlmIChpc3NldCgkcGFyYW1zWydzdGFydCddKSkgewoJLy8gR2l2ZW4gYSBzdGFydCBlbGVtZW50LCBkZXRlcm1pbmUgYSBwYWdlIG51bWJlcgoJJHN0YXJ0ZWxlbWVudCA9ICRzdGFydGVsZW1lbnQgKyAoaW50KSRwYXJhbXNbJ3N0YXJ0J107Cn0KaWYgKCRzdGFydGVsZW1lbnQgPT0gJHBhZ2VsaW1pdCkgewoJLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlcmUgYXJlIGxlc3MgcmVzdWx0cyB0aGVuIG9uZSBwYWdlLiBSZXNldCB0byBzdGFydGluZyBwb3NpdGlvbi4KCSMkc3RhcnRlbGVtZW50ID0gMDsKfQovLyBBc3NpZ24gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkKaWYgKCRwYWdlbnVtYmVyID09IDEpIHsKCSRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLCAkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZScsICR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSk7Cn0gZWxzZSB7CgkkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAkcGFnZW51bWJlciAtIDE7Cgkkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlJywgJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2ZlX3Byb2R1Y3RfbGlzdCcsICR0aGlzLT5MYW5nKCdwcmV2cGFnZScpLCAkcGFyYW1zKSk7CgkkcGFyYW1zWydwYWdlbnVtYmVyJ10gPSAxOwoJJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2UnLCAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZmVfcHJvZHVjdF9saXN0JywgJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpLCAkcGFyYW1zKSk7Cn0KCmlmICgkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50KSB7Cgkkc21hcnR5LT5hc3NpZ24oJ25leHRwYWdlJywgJHRoaXMtPkxhbmcoJ25leHRwYWdlJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdsYXN0cGFnZScsICR0aGlzLT5MYW5nKCdsYXN0cGFnZScpKTsKfSBlbHNlIHsKCS8vIE1ha2Ugc3VyZSBuZXh0IHBhZ2UgaXMgc2VsZWN0ZWQgKGFsc28gaWYgb25lIHByb2R1Y3QgcGVyIHBhZ2UpIChCdWcjOiAzODg3KQoJJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBhZ2VudW1iZXIgKyAxOwoJJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsICR0aGlzLT5DcmVhdGVGcm9udGVuZExpbmsoJGlkLCAkcmV0dXJuaWQsICdmZV9wcm9kdWN0X2xpc3QnLCAkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwgJHBhcmFtcykpOwoJJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBhZ2Vjb3VudDsKCSRzbWFydHktPmFzc2lnbignbGFzdHBhZ2UnLCAkdGhpcy0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZmVfcHJvZHVjdF9saXN0JywgJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJyksICRwYXJhbXMpKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdwYWdlbnVtYmVyJywgJHBhZ2VudW1iZXIpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsICRwYWdlY291bnQpOwokc21hcnR5LT5hc3NpZ24oJ29mdGV4dCcsICR0aGlzLT5MYW5nKCdwcm9tcHRfb2YnKSk7CiRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X3BhZ2UnKSk7CgokZGJyZXN1bHQgPSAnJzsKaWYgKCRwYWdlbGltaXQgPCAxMDAwMDAgfHwgJHN0YXJ0ZWxlbWVudCA+IDApIHsKCSRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCAkcGFnZWxpbWl0LCAkc3RhcnRlbGVtZW50LCBhcnJheSgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSk7Cn0gZWxzZSB7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSk7Cn0KCiRyb3djbGFzcyA9ICdyb3cxJzsKJGVudHJ5YXJyYXkgPSBhcnJheSgpOwovLyBSZXRyaWV2ZSB0aGUgdHlwZSBvZiBpbnZlbnRvcnkgdGhhdCBpcyBpbiBwbGFjZQokaW52ZW50b3J5dHlwZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnZlbnRvcnl0eXBlJywgJ25vbmUnKTsKCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoKCSRvbmVyb3ctPnByb2RpZCA9ICRyb3dbJ3Byb2R1Y3RfaWQnXTsKCglpZiAoJHRyYW5zKSB7CgkJJGFsaWFzZWRfdGl0bGUgPSAkdHJhbnMtPlRyYW5zbGl0KCRyb3dbJ3Byb2RuYW1lJ10pOwoJfSBlbHNlIHsKCQkkYWxpYXNlZF90aXRsZSA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1sncHJvZG5hbWUnXSk7Cgl9Cgkkc2VuZHRvZGV0YWlsID0gYXJyYXkoJ2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjYXRlZ29yeV9pZCddLCAncHJvZHVjdF9pZCcgPT4gJHJvd1sncHJvZHVjdF9pZCddKTsKCgkkcHJldHR5dXJsID0gJ1NpbXBsZVNob3AvcHJvZC8nIC4gJHJvd1sncHJvZHVjdF9pZCddIC4gJy8nIC4KCQkoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCkgLiAnLycgLiAkYWxpYXNlZF90aXRsZTsKCWlmIChpc3NldCgkc2VuZHRvZGV0YWlsWydkZXRhaWx0ZW1wbGF0ZSddKSkgewoJCSRwcmV0dHl1cmwgLj0gJy9kLCcgLiAkc2VuZHRvZGV0YWlsWydkZXRhaWx0ZW1wbGF0ZSddOwoJfQoJJG9uZXJvdy0+cHJvZG5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkkaWQsCgkJJ2ZlX3Byb2R1Y3RfZGV0YWlsJywKCQkkZGV0YWlscGFnZSAhPSAnJyA/ICRkZXRhaWxwYWdlIDogJHJldHVybmlkLAoJCSRyb3dbJ3Byb2RuYW1lJ10sCgkJJHNlbmR0b2RldGFpbCwKCQknJywKCQlmYWxzZSwKCQlmYWxzZSwKCQknJywKCQl0cnVlLAoJCSRwcmV0dHl1cmwKCSk7CgkvLyBTaG93IG5hbWUgd2l0aG91dCBsaW5rIHRvIGRldGFpbCBvbiBwcm9kdWN0IGxpc3RpbmcgKGZlYXR1cmUgcmVxdWVzdCMgMjk4NikKCSRvbmVyb3ctPnByb2RuYW1lbm9saW5rID0gJHJvd1sncHJvZG5hbWUnXTsKCSRvbmVyb3ctPnByb2RkZXNjID0gc3RyaXBfdGFncygkcm93Wydwcm9kZGVzYyddKTsKCSRvbmVyb3ctPnByaWNlID0gJHJvd1sncHJpY2UnXTsKCWlmICgkQ2FydE1TKSB7CgkJJG9uZXJvdy0+cHJpY2UgPSAkQ2FydE1TLT5vcmRlcnMtPkZvcm1hdEFtb3VudCgkcm93WydwcmljZSddKTsKCX0gZWxzZSB7CgkJJG9uZXJvdy0+cHJpY2UgPSAkdGhpcy0+Rm9ybWF0UHJpY2UoJHJvd1sncHJpY2UnXSk7Cgl9Cgkkb25lcm93LT5uZXR3ZWlnaHQgPSAkdGhpcy0+Rm9ybWF0V2VpZ2h0KCRyb3dbJ25ldHdlaWdodCddKTsKCS8vIENoZWNrIGlmIGludmVudG9yeSBpbiBwbGFjZS4gSWYgc28gc2hvdyBhZGQgdG8gY2FydCBvcHRpb25zCglpZiAoJGludmVudG9yeXR5cGUgPT0gJ3Byb2QnICYmICRyb3dbJ21heGF0dHJpYnV0ZXMnXSA+IDAgfHwgJGludmVudG9yeXR5cGUgPT0gJ25vbmUnKSB7CgkJJG9uZXJvdy0+YXZhaWxhYmxlc3RvY2sgPSAkcm93WydtYXhhdHRyaWJ1dGVzJ107CgkJLy8gQnVpbGQgbGluayB0byBjYXJ0CgkJaWYgKCRDYXJ0TVMpIHsKCgkJCS8vIFByZXBhcmUgcHJldHR5IFVSTCB0byBhZGQgcHJvZHVjdCB0byBjYXJ0CgkJCSRwcmV0dHl1cmwgPSAnU2ltcGxlQ2FydC9hZGRwcm9kdWN0LycgLiAkcGFyYW1zWydjYXRlZ29yeV9pZCddIC4gJy8nIC4KCQkJCSRyb3dbJ3Byb2R1Y3RfaWQnXSAuICcvMC8xJyAuICcvJyAuICgkZGV0YWlscGFnZSAhPSAnJyA/ICRkZXRhaWxwYWdlIDogJHJldHVybmlkKTsKCQkJJHNlbmR0b2RldGFpbCA9IGFycmF5KAoJCQkJJ25hbWUnID0+ICRyb3dbJ3Byb2RuYW1lJ10sICdwZXJmYWN0aW9uJyA9PiAnYWRkX3Byb2R1Y3QnLAknY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10sCgkJCQkncHJvZHVjdF9pZCcgPT4gJHJvd1sncHJvZHVjdF9pZCddLAkncXR5JyA9PiAxLAkncmV0dXJubW9kJyA9PiAnU2ltcGxlU2hvcCcKCQkJKTsKCQkJLy8gUHJlcGFyZSBhIGh5cGVybGluayB0byBhZGQgdGhlIHByb2R1Y3QgdG8gdGhlIGNhcnQKCQkJJGxpbmtuYW1lID0gJHRoaXMtPkxhbmcoJ2FkZHRvY2FydCcpOwoJCQkkb25lcm93LT5hZGRwcm9kdWN0ID0gJENhcnRNUy0+Q3JlYXRlTGluaygKCQkJCSRpZCwKCQkJCSdjYXJ0JywKCQkJCSRyZXR1cm5pZCwKCQkJCSRsaW5rbmFtZSwKCQkJCSRzZW5kdG9kZXRhaWwsCgkJCQknJywKCQkJCWZhbHNlLAoJCQkJdHJ1ZSwKCQkJCScnLAoJCQkJdHJ1ZSwKCQkJCSRwcmV0dHl1cmwKCQkJKTsKCQkJLy8gUHJlcGFyZSBsaW5rIHdpdGggaW1hZ2UgKEZlYXQgUmVxIzMzMjQpCgkJCSRpbWFnZXNyYyA9IGNtc19qb2luX3BhdGgoCgkJCQkkY29uZmlnWydyb290X3VybCddLAoJCQkJJ21vZHVsZXMnLAoJCQkJJHRoaXMtPkdldE5hbWUoKSwKCQkJCSdpbWFnZXMnLAoJCQkJJ2FkZHRvY2FydC5naWYnCgkJCSk7CgkJCSRvbmVyb3ctPmFkZHByb2R1Y3RpbWFnZSA9ICRDYXJ0TVMtPkNyZWF0ZUxpbmsoCgkJCQkkaWQsCgkJCQknY2FydCcsCgkJCQkkcmV0dXJuaWQsCgkJCQknPGltZyBzcmM9IicgLiAkaW1hZ2VzcmMgLiAnIiBhbHQ9IicgLiAkdGhpcy0+TGFuZygnYWRkdG9jYXJ0JykgLiAnIiB0aXRsZT0iJyAuICR0aGlzLT5MYW5nKCdhZGR0b2NhcnQnKSAuICciPicsCgkJCQkkc2VuZHRvZGV0YWlsLAoJCQkJJycsCgkJCQlmYWxzZSwKCQkJCXRydWUsCgkJCQknJywKCQkJCXRydWUsCgkJCQkkcHJldHR5dXJsCgkJCSk7CgkJfQoJCSRvbmVyb3ctPm9uc3RvY2sgPSB0cnVlOwoJfSBlbHNlIHsKCQkkb25lcm93LT5vbnN0b2NrID0gZmFsc2U7CgkJLy8gJG9uZXJvdy0+cHJpY2UgPSAkdGhpcy0+TGFuZygncHJvZHVjdHNvbGRvdXQnKTsKCX0KCgkvLyBHZXQgdGhlIGZpcnN0IHBpY3R1cmUgYXZhaWxhYmxlIGZvciB0aGUgcHJvZHVjdCBmb3VuZAoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfaW1hZ2VzIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKCSRwaWN0dXJlID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkcm93Wydwcm9kdWN0X2lkJ10pKTsKCWlmICgkcGljdHVyZSkgewoJCWlmIChpc3NldCgkcGljdHVyZVsnaW1hZ2UnXSkgJiYgJHBpY3R1cmVbJ2ltYWdlJ10gIT0gJ25vX2ltYWdlLmpwZycgJiYgJHBpY3R1cmVbJ2ltYWdlJ10gIT0gJycpIHsKCQkJJG9uZXJvdy0+cHJvZGltYWdlID0gJHBhdGhwcm9kdWN0IC4gJ3RuXycgLiAkcGljdHVyZVsnaW1hZ2UnXTsKCQkJaWYgKGlzc2V0KCRwaWN0dXJlWydkZXNjcmlwdGlvbiddKSkgewoJCQkJJG9uZXJvdy0+aW1hZ2VkZXNjID0gc3RyaXBfdGFncygkcGljdHVyZVsnZGVzY3JpcHRpb24nXSk7CgkJCX0gZWxzZSB7CgkJCQkkb25lcm93LT5pbWFnZWRlc2MgPSAkcm93Wydwcm9kbmFtZSddOwoJCQl9CgkJCS8vIEZvciBmZWF0dXJlIHJlcXVlc3QjIDMwODM6IHByZXBhcmUgYWxzbyBhIGxpbmsgZnJvbSBpbWFnZSB0byBkZXRhaWwKCQkJJG9uZXJvdy0+cHJvZGltYWdlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKAoJCQkJJGlkLAoJCQkJJ2ZlX3Byb2R1Y3RfZGV0YWlsJywKCQkJCSRyZXR1cm5pZCwKCQkJCSc8aW1nIHNyYz1cJycgLiAkY29uZmlnWydyb290X3VybCddIC4gJy91cGxvYWRzL2ltYWdlcycgLiAkcGF0aHByb2R1Y3QgLiAndG5fJyAuICRwaWN0dXJlWydpbWFnZSddIC4KCQkJCQknXCcgdGl0bGU9XCcnIC4gJHBpY3R1cmVbJ2Rlc2NyaXB0aW9uJ10gLiAnXCcgPicsCgkJCQlhcnJheSgncHJvZHVjdF9pZCcgPT4gJHJvd1sncHJvZHVjdF9pZCddKQoJCQkpOwoJCX0gZWxzZSB7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvZGltYWdlJywgJypub25lJyk7CgkJfQoJfQoKCSRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoKCSRlbnRyeWFycmF5W10gPSAkb25lcm93OwoKCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0cycsICRlbnRyeWFycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsYWJsZV9wcm9kdWN0X2NvdW50JywgJHRoaXMtPkxhbmcoJ3RleHRwcm9kdWN0Y291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpKTsKCi8vIFN0YXRlIHRoZSBjdXJyZW5jeSBzeW1ib2wgYW5kIHRoYXQgcHJpY2VzIGFyZSBpbi9leCBWQVQvVEFYCiRpbmV4dmF0ID0gKGludCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByaWNlc2luY2x2YXQnLCAwKTsKaWYgKCRpbmV4dmF0ICE9IDApIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3VycmVuY3knLCAkdGhpcy0+TGFuZygncHJpY2VzaW5jdXJpbnZhdCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2N1cnJlbmN5JykpKTsKfSBlbHNlIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3VycmVuY3knLCAkdGhpcy0+TGFuZygncHJpY2VzaW5jdXJleHZhdCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2N1cnJlbmN5JykpKTsKfQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2N1cl9zeW1ib2wnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zeW1ib2wnKSk7CgovLyBEaXNwbGF5IHRlbXBsYXRlCiR0ZW1wbGF0ZSA9ICdjYXRsaXN0X3RlbXBsYXRlJzsKLy8gQ3VycmVudGx5IG9ubHkgb25lIHRlbXBsYXRlIGF2YWlsYWJsZSwgc28gbmV4dCBsaW5lcyB3aWxsIG5vdCBwZXJmb3JtIGFueXRoaW5nCmlmIChpc3NldCgkcGFyYW1zWydjYXRsaXN0dGVtcGxhdGUnXSkpIHsKCSR0ZW1wbGF0ZSA9ICRwYXJhbXNbJ2NhdGxpc3R0ZW1wbGF0ZSddOwp9CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.preferences_update.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIFJlaW5kZXhpbmcgcmVxdWVzdGVkIG9mIHRoZSBwcm9kdWN0cyBpbiB0aGUgU2VhcmNoIE1vZHVsZQppZiAoaXNzZXQoJHBhcmFtc1snc2VhcmNocmVpbmRleCddKSkgewoJJHRoaXMtPlNlYXJjaFJlaW5kZXgoKTsKCSR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdwcm9kdWN0c3JlaW5kZXhlZCcpKTsKCSRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJvZHVjdHNyZWluZGV4ZWQnKTsKCSRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdvcHRpb25zJzsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9CgovLyBSZWJ1aWxkIHRoZSB0aHVtYm5haWxzCmlmIChpc3NldCgkcGFyYW1zWydyZWJ1aWxkcHJvZHVjdHRodW1ibmFpbHMnXSkpIHsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0bmhlaWdodF9wcm9kdWN0JywgdHJpbSgkcGFyYW1zWyd0bmhlaWdodF9wcm9kdWN0J10pKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0bndpZHRoX3Byb2R1Y3QnLCB0cmltKCRwYXJhbXNbJ3Rud2lkdGhfcHJvZHVjdCddKSk7CgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoJJHBhdGggPSAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXSAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcpOwoJJHRoaXMtPlJlYnVpbGRUaHVtYm5haWxzKCRwYXRoLCAncHJvZHVjdHMnKTsKCSRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJvZHVjdHRodW1ibmFpbHNyZWJ1aWxkJyk7CgkkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnb3B0aW9ucyc7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQoKLy8gSW4gb3RoZXIgY2FzZXMsIHRoZSBwcmVmZXJlbmNlcyBhcmUgc2F2ZWQKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX25hbWUnLCB0cmltKCRwYXJhbXNbJ2FkbWluX25hbWUnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvcF9uYW1lJywgdHJpbSgkcGFyYW1zWydzaG9wX25hbWUnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJpY2VzaW5jbHZhdCcsIDApOwppZiAoaXNzZXQoJHBhcmFtc1sncHJpY2VzaW5jbHZhdCddKSkgewoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByaWNlc2luY2x2YXQnLCAxKTsKfQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2VpZ2h0dW5pdG1lYXN1cmUnLCB0cmltKCRwYXJhbXNbJ3dlaWdodHVuaXRtZWFzdXJlJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2l0ZW1jYXBpdGFsb25seScsIDApOwppZiAoaXNzZXQoJHBhcmFtc1snaXRlbWNhcGl0YWxvbmx5J10pKSB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaXRlbWNhcGl0YWxvbmx5JywgMSk7Cn0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93ZG91YmxlaXRlbScsIDApOwppZiAoaXNzZXQoJHBhcmFtc1snYWxsb3dkb3VibGVpdGVtJ10pKSB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dkb3VibGVpdGVtJywgMSk7Cn0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfc2t1JywgJHBhcmFtc1snZGVmYXVsdF9za3UnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2N1cnJlbmN5JywgJHBhcmFtc1snZGVmYXVsdF9jdXJyZW5jeSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3ltYm9sJywgdHJpbSgkcGFyYW1zWydkZWZhdWx0X3N5bWJvbCddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfY2F0ZWdvcnknLCB0cmltKCRwYXJhbXNbJ2ltYWdlcGF0aF9jYXRlZ29yeSddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcsIHRyaW0oJHBhcmFtc1snaW1hZ2VwYXRoX3Byb2R1Y3QnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndG5oZWlnaHRfcHJvZHVjdCcsIHRyaW0oJHBhcmFtc1sndG5oZWlnaHRfcHJvZHVjdCddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0bndpZHRoX3Byb2R1Y3QnLCB0cmltKCRwYXJhbXNbJ3Rud2lkdGhfcHJvZHVjdCddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0cGFnZWxpbWl0JywgKGVtcHR5KCRwYXJhbXNbJ3Byb2R1Y3RwYWdlbGltaXQnXSkgfHwgJHBhcmFtc1sncHJvZHVjdHBhZ2VsaW1pdCddID09IDApID8gMSA6IHRyaW0oJHBhcmFtc1sncHJvZHVjdHBhZ2VsaW1pdCddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X21heGF0dHJpYnV0ZXMnLCAoZW1wdHkoJHBhcmFtc1snZGVmYXVsdF9tYXhhdHRyaWJ1dGVzJ10pKSA/IDEgOiB0cmltKCRwYXJhbXNbJ2RlZmF1bHRfbWF4YXR0cmlidXRlcyddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbnZlbnRvcnl0eXBlJywgJHBhcmFtc1snaW52ZW50b3J5dHlwZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NhbGVzaW52ZW50dGltaW5nJywgJHBhcmFtc1snc2FsZXNpbnZlbnR0aW1pbmcnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWNpbWFscG9zaXRpb25zcHJpY2UnLCAkcGFyYW1zWydkZWNpbWFscG9zaXRpb25zcHJpY2UnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWNpbWFsc2VwYXJhdG9ycHJpY2UnLCAkcGFyYW1zWydkZWNpbWFsc2VwYXJhdG9ycHJpY2UnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aG91c2FuZHNlcGFyYXRvcnByaWNlJywgJHBhcmFtc1sndGhvdXNhbmRzZXBhcmF0b3JwcmljZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlY2ltYWxwb3NpdGlvbnN3ZWlnaHQnLCAoaW50KSAkcGFyYW1zWydkZWNpbWFscG9zaXRpb25zd2VpZ2h0J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVjaW1hbHNlcGFyYXRvcndlaWdodCcsICRwYXJhbXNbJ2RlY2ltYWxzZXBhcmF0b3J3ZWlnaHQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aG91c2FuZHNlcGFyYXRvcndlaWdodCcsICRwYXJhbXNbJ3Rob3VzYW5kc2VwYXJhdG9yd2VpZ2h0J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGlzcGxheXF1aWNrc2VsZWN0b3InLCAwKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2Rpc3BsYXlxdWlja3NlbGVjdG9yJ10pKSB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGlzcGxheXF1aWNrc2VsZWN0b3InLCAxKTsKfQoKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ29wdGlvbnN1cGRhdGVkJykpOwokcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnb3B0aW9ucyc7CiRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnb3B0aW9uc3VwZGF0ZWQnKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.product_add.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgSW52ZW50b3J5IE1hbmFnZW1lbnQgZmllbGRzCiRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CiRDYXJ0TVMgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTaW1wbGVDYXJ0Jyk7CiREVEkgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdEVEludmVudG9yeScpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJJGRvdWJsZWl0ZW0gPSAkdGhpcy0+cHJvZHVjdHMtPkNoZWNrRG91YmxlSXRlbU51bWJlcih0cmltKCRwYXJhbXNbJ2l0ZW1udW1iZXInXSksIC0xKTsKCWlmICghJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZG91YmxlaXRlbScsIDApICYmICRkb3VibGVpdGVtICE9IGZhbHNlKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgJHRoaXMtPkxhbmcoJ21lc3NhZ2VfZG91YmxlaXRlbW51bWJlcmZvdW5kJywgJGRvdWJsZWl0ZW0pKTsKCX0gZWxzZWlmICghaXNzZXQoJHBhcmFtc1snbmFtZSddKSB8fCAgJHBhcmFtc1snbmFtZSddID09ICcnKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgJHRoaXMtPkxhbmcoJ21lc3NhZ2Vfbm9hdHRyaWJ1dGVuYW1lZ2l2ZW4nKSk7Cgl9IGVsc2UgewoKCQkkcGFyYW1zWyduYW1lJ10gPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CgkJJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA9IGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pID8gJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSA6IDA7CgkJJHBhcmFtc1snYWN0aXZlJ10gPSAhZW1wdHkoJHBhcmFtc1snYWN0aXZlJ10pID8gJHBhcmFtc1snYWN0aXZlJ10gOiAwOwoJCSRwYXJhbXNbJ2ZlYXR1cmVkJ10gPSAhZW1wdHkoJHBhcmFtc1snZmVhdHVyZWQnXSkgPyAkcGFyYW1zWydmZWF0dXJlZCddIDogMDsKCQkkcGFyYW1zWydtYXhhdHRyaWJ1dGVzJ10gPSAhZW1wdHkoJHBhcmFtc1snbWF4YXR0cmlidXRlcyddKSA/IHRyaW0oJHBhcmFtc1snbWF4YXR0cmlidXRlcyddKSA6IDE7CgkJJHBhcmFtc1sncG9zaXRpb24nXSA9ICFlbXB0eSgkcGFyYW1zWydwb3NpdGlvbiddKSA/IHRyaW0oJHBhcmFtc1sncG9zaXRpb24nXSkgOiAwOwoJCSRwYXJhbXNbJ3ByaWNlJ10gPSAhZW1wdHkoJHBhcmFtc1sncHJpY2UnXSkgPyB0cmltKCRwYXJhbXNbJ3ByaWNlJ10pIDogMDsKCQkkcGFyYW1zWyduZXR3ZWlnaHQnXSA9ICFlbXB0eSgkcGFyYW1zWyduZXR3ZWlnaHQnXSkgPyB0cmltKCRwYXJhbXNbJ25ldHdlaWdodCddKSA6IDA7CgkJJHBhcmFtc1snZGVzY3JpcHRpb24nXSA9ICFlbXB0eSgkcGFyYW1zWydkZXNjcmlwdGlvbiddKSA/IHRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSkgOiAnJzsKCQkkcGFyYW1zWydpdGVtbnVtYmVyJ10gPSAhZW1wdHkoJHBhcmFtc1snaXRlbW51bWJlciddKSA/IHRyaW0oJHBhcmFtc1snaXRlbW51bWJlciddKSA6IDA7CgkJJHBhcmFtc1snY29zdF9wcmljZSddID0gIWVtcHR5KCRwYXJhbXNbJ2Nvc3RfcHJpY2UnXSkgPyB0cmltKCRwYXJhbXNbJ2Nvc3RfcHJpY2UnXSkgOiAwOwoJCSRwYXJhbXNbJ2JhcmNvZGUnXSA9ICFlbXB0eSgkcGFyYW1zWydiYXJjb2RlJ10pID8gdHJpbSgkcGFyYW1zWydiYXJjb2RlJ10pIDogJyc7CgoJCS8vIFVzZXIgcHJlc3NlZCBjb250aW51ZSBzbyBzYXZlIHRoZSBwcm9kdWN0IGluZm9ybWF0aW9uIGFuZCBhZnRlciB0aGF0IHRoZSBjb25uZWN0aW9uIHRvIHRoZSBjYXRlZ29yeQoJCSRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSA9ICR0aGlzLT5wcm9kdWN0cy0+Q3JlYXRlKCRwYXJhbXMpOwoKCQkkdGhpcy0+cHJvZHVjdHMtPkNyZWF0ZUNhdGVnb3J5TWFwKCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10sICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSk7CgkJaWYgKCREVEkpIHsKCQkJZHRpX3V0aWxzOjppbnNlcnRfaXRlbWV4dGVuc2lvbigKCQkJCSRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSwKCQkJCSRwYXJhbXNbJ2Nvc3RfcHJpY2UnXSwKCQkJCSRwYXJhbXNbJ2l0ZW1fY2xhc3MnXSwKCQkJCSRwYXJhbXNbJ2JhcmNvZGUnXQoJCQkpOwoJCX0KCgkJJHBhcmFtcyA9IGFycmF5KAoJCQknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnLCAnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSwKCQkJJ3Byb2R1Y3RfaWQnID0+ICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXQoJCSk7CgkJJHBhcmFtc1sndGFiX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcm9kdWN0YWRkZWQnKTsKCgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ3Byb2R1Y3RfZWRpdCcsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgl9Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSRwYXJhbXMgPSBhcnJheSgKCQknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnLCAnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddLAoJCSd0YWJfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ2NhbmNlbCcpCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KCiRwcm9kdWN0ID0gYXJyYXkoKTsKJHByb2R1Y3RbJ3N0YXJ0Zm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdwcm9kdWN0X2FkZCcsICRyZXR1cm5pZCwgJ3Bvc3QnKTsKJHByb2R1Y3RbJ3N1Ym1pdCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdjb250aW51ZScpKTsKJHByb2R1Y3RbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRwcm9kdWN0WydlbmRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKJHByb2R1Y3RbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pCik7CgokY2F0ZWdvcnlkcm9wZG93biA9ICR0aGlzLT5jYXRlZ29yaWVzLT5CdWlsZExpc3QoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddLCAnJywgMCk7CiRwcm9kdWN0WydjYXRlZ29yeV9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2NhdGVnb3J5X2lkJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2NhdGVnb3J5X2lkJywgJGNhdGVnb3J5ZHJvcGRvd24sIC0xLCBpbnR2YWwoJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKSkKKTsKCiRwYXJhbXNbJ25hbWUnXSA9IGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgPyAkcGFyYW1zWyduYW1lJ10gOiAnJzsKCiRwcm9kdWN0WyduYW1lJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfbmFtZScpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkcGFyYW1zWyduYW1lJ10sIDQwLCAyNTUpCik7CiRwcm9kdWN0WydkZXNjcmlwdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2Rlc2NyaXB0aW9uJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICcnLCAnZGVzY3JpcHRpb24nLCAncGFnZXNtYWxsdGV4dGFyZWEnLCAnJywgJycsICcnLCA0MCwgNDApCik7CiRwcm9kdWN0WydwcmljZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X3ByaWNlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncHJpY2UnLCAnJywgNDAsIDQwKQopOwokcHJvZHVjdFsnYWN0aXZlJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfYWN0aXZlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIHRydWUsIHRydWUpCik7CiRwcm9kdWN0WydmZWF0dXJlZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2ZlYXR1cmVkJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZlYXR1cmVkJywgdHJ1ZSkKKTsKJHByb2R1Y3RbJ25ldHdlaWdodCddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X25ldHdlaWdodCcpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25ldHdlaWdodCcsICcnLCAxMCwgMjApLAoJJ3VuaXQnID0+ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3ZWlnaHR1bml0bWVhc3VyZScsICdLZycpCik7Ci8vIFByZXBhcmUgbGlzdCBvZiBwb3NzaWJsZSBWQVQgY29kZXMgYXMgc2V0IHVwIGluIENhcnQgTWFkZSBTaW1wbGUKaWYgKCRDYXJ0TVMpIHsKCSR2YXRjb2RlID0gJyc7CgkkbGlzdHZhdGNvZGVbJENhcnRNUy0+R2V0UHJlZmVyZW5jZSgndmF0MG5hbWUnLCAnJyldID0gJzAnOwoJJGxpc3R2YXRjb2RlWyRDYXJ0TVMtPkdldFByZWZlcmVuY2UoJ3ZhdDFuYW1lJywgJycpXSA9ICcxJzsKCSRsaXN0dmF0Y29kZVskQ2FydE1TLT5HZXRQcmVmZXJlbmNlKCd2YXQybmFtZScsICcnKV0gPSAnMic7CgkkbGlzdHZhdGNvZGVbJENhcnRNUy0+R2V0UHJlZmVyZW5jZSgndmF0M25hbWUnLCAnJyldID0gJzMnOwoJJGxpc3R2YXRjb2RlWyRDYXJ0TVMtPkdldFByZWZlcmVuY2UoJ3ZhdDRuYW1lJywgJycpXSA9ICc0JzsKCSRwcm9kdWN0Wyd2YXRjb2RlJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X3ZhdGNvZGUnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3ZhdGNvZGUnLCAkbGlzdHZhdGNvZGUsIC0xLCAkdmF0Y29kZSkKCSk7Cn0gZWxzZSB7CgkkcHJvZHVjdFsndmF0Y29kZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF92YXRjb2RlJyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ZhdGNvZGUnLCAnJywgMSwgMSkKCSk7Cn0KCiRza3Vkcm9wZG93biA9ICR0aGlzLT5CdWlsZExpc3RTS1UoKTsKJHByb2R1Y3RbJ3NrdSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X3NrdScpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdza3UnLCAkc2t1ZHJvcGRvd24sIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9za3UnLCAnJykpCik7CgokcHJvZHVjdFsnaXRlbW51bWJlciddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X2l0ZW1udW1iZXInKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpdGVtbnVtYmVyJywgJycsIDMwLCAzMCkKKTsKCiRwcm9kdWN0Wydwb3NpdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X3Bvc2l0aW9uJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAncG9zaXRpb24nLCAnJywgMTAsIDEwKQopOwovLyBDaGVjayBpZiBpbnZlbnRvcnkgaW4gcGxhY2UuIElmIHNvIHVzZSBkaWZmZXJlbnQgbGFiZWwKJGludmVudG9yeXR5cGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScpOwppZiAoJGludmVudG9yeXR5cGUgPT0gJ3Byb2QnKSB7CgkkbGFiZWxfcHJvZHVjdF9tYXhhdHRyaWJ1dGVzID0gJHRoaXMtPkxhbmcoJ2xhYmVsX3F1YW50aXR5X29uc3RvY2snKTsKfSBlbHNlIHsKCSRsYWJlbF9wcm9kdWN0X21heGF0dHJpYnV0ZXMgPSAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9tYXhhdHRyaWJ1dGVzJyk7Cn0KJHByb2R1Y3RbJ21heGF0dHJpYnV0ZXMnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkbGFiZWxfcHJvZHVjdF9tYXhhdHRyaWJ1dGVzLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heGF0dHJpYnV0ZXMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9tYXhhdHRyaWJ1dGVzJywgMSksIDEwLCAxMCkKKTsKaWYgKCREVEkpIHsKCSRzbWFydHktPmFzc2lnbignRFRJYXZhaWxhYmxlJywgdHJ1ZSk7CgkkRFRJbnZlbnRvcnl2ZXJzaW9uID0gZHRpX3V0aWxzOjpnZXRfRFRJbnZlbnRvcnl2ZXJzaW9uKCk7Cgkkc21hcnR5LT5hc3NpZ24oJ0RUSW52ZW50b3J5dmVyc2lvbicsICREVEludmVudG9yeXZlcnNpb24pOwoJJGxhYmVsID0gZHRpX3V0aWxzOjpnZXRfZmllbGR0aXRsZSgndGl0bGVfY29zdF9wcmljZScpOwoJJHByb2R1Y3RbJ2Nvc3RfcHJpY2UnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJGxhYmVsLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjb3N0X3ByaWNlJywgJycsIDE1LCAxNSkKCSk7CgkkbGFiZWwgPSBkdGlfdXRpbHM6OmdldF9maWVsZHRpdGxlKCd0aXRsZV9iYXJjb2RlJyk7CgkkcHJvZHVjdFsnYmFyY29kZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkbGFiZWwsCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2JhcmNvZGUnLCAnJywgMjUsIDI1KQoJKTsKCWlmICgkRFRJbnZlbnRvcnl2ZXJzaW9uICE9ICdmcmVlJykgewoJCSRsYWJlbCA9IGR0aV91dGlsczo6Z2V0X2ZpZWxkdGl0bGUoJ3RpdGxlX2l0ZW1fY2xhc3MnKTsKCQkkZGVmYXVsdF9pdGVtX2NsYXNzID0gZHRpX3V0aWxzOjpnZXRfZGVmYXVsdF9pdGVtX2NsYXNzKCk7CgkJJHByb2R1Y3RbJ2l0ZW1fY2xhc3MnXSA9IGFycmF5KAoJCQknbGFiZWwnID0+ICRsYWJlbCwKCQkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2l0ZW1fY2xhc3MnLCAkZGVmYXVsdF9pdGVtX2NsYXNzLCAzLCAzKQoJCSk7Cgl9Cn0gZWxzZSB7Cgkkc21hcnR5LT5hc3NpZ24oJ0RUSWF2YWlsYWJsZScsIGZhbHNlKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0JywgJHByb2R1Y3QpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Byb2R1Y3RfYWRkLnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.product_attributes.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGlzIGNhbGxlZCBmcm9tIHByb2R1Y3RfZWRpdCwgd2hlbiBidXR0b24gYWRkIGF0dHJpYnV0ZSBpcyB1c2VkCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJHBhcmFtc1snc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ2FkZGF0dHJpYnV0ZScpKSB7CgkkZXJyb3JmbmQgPSBmYWxzZTsKCSRkb3VibGVpdGVtID0gJHRoaXMtPnByb2R1Y3RzLT5DaGVja0RvdWJsZUl0ZW1OdW1iZXIodHJpbSgkcGFyYW1zWydpdGVtbnVtYmVyJ10pLCAtMSk7CglpZiAoISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2RvdWJsZWl0ZW0nLCAwKSAmJiAkZG91YmxlaXRlbSAhPSBmYWxzZSkgewoJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXNzYWdlX2RvdWJsZWl0ZW1udW1iZXJmb3VuZCcsICRkb3VibGVpdGVtKTsKCQkkZXJyb3JmbmQgPSB0cnVlOwoJfQoJaWYgKCFpc3NldCgkcGFyYW1zWyduYW1lJ10pIHx8ICAkcGFyYW1zWyduYW1lJ10gPT0gJycpIHsKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbWVzc2FnZV9ub2F0dHJpYnV0ZW5hbWVnaXZlbicpOwoJCSRlcnJvcmZuZCA9IHRydWU7Cgl9CgoJaWYgKCEkZXJyb3JmbmQpIHsKCQkvLyBOb3cgdGhhdCBhbGwgaW5mbyBpcyBrbm93biwgaW5zZXJ0IGEgcmVjb3JkIGluIHRoZSBhdHRyaWJ1dGVzIGRhdGFiYXNlCgkJJHRoaXMtPnByb2R1Y3RzLT5DcmVhdGVBdHRyaWJ1dGUoJHBhcmFtcyk7CgkJLy8gUHJlcGFyZSBhIG1lc3NhZ2UgdG8gYmUgc2hvd24gb24gdG9wIG9mIHRoZSBhdHRyaWJ1dGVzIG92ZXJ2aWV3CgkJJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfYXR0cmlidXRlYWRkZWQnLCAkcGFyYW1zWyduYW1lJ10pOwoJfQp9IGVsc2UgewoJJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ21lc3NhZ2Vfbm9hdHRyaWJ1dGV0b3NhdmUnKTsKfQovLyBSZWRpcmVjdCBiYWNrIHRvIGF0dHJpYnV0ZXMsIHNvIHdlIGNhbiBzZWUgdGhlIHJlc3VsdAokcGFyYW1zID0gYXJyYXkoCgkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLAoJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwKCSdhY3RpdmVfdGFiJyA9PiAnYXR0cmlidXRlcycsCgkndGFiX21lc3NhZ2UnID0+ICRwYXJhbXNbJ21lc3NhZ2UnXQopOwokdGhpcy0+UmVkaXJlY3QoJGlkLCAncHJvZHVjdF9lZGl0JywgJHJldHVybmlkLCAkcGFyYW1zKTsKCgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICYmICRwYXJhbXNbJ2NhbmNlbCddID09ICR0aGlzLT5MYW5nKCdjYW5jZWwnKSkgewoJJHBhcmFtcyA9IGFycmF5KAoJCSdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycsCgkJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXQoJKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.product_attribute_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGlzIGNhbGxlZCBmcm9tIHByb2R1Y3RfZWRpdCwgd2hlbiBpY29uIGRlbGV0ZSBhdHRyaWJ1dGUgaXMgdXNlZAoKJHRoaXMtPnByb2R1Y3RzLT5EZWxldGVBdHRyaWJ1dGUoJHBhcmFtcyk7CiRwYXJhbXMgPSBhcnJheSgKCS8vIFByb2R1Y3QgaWQsIGFsd2F5cyBoYW5keSB0byBwYXNzLiBJbiB0aGlzIGNhc2UgbmVlZGVkIHRvIGdldCBhbGwgdGhlIGNvbm5lY3RlZCBpbmZvcm1hdGlvbgoJJ3Byb2R1Y3RfaWQnID0+ICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSwKCS8vIFBhc3MgdGhlIGN1cnJlbnQgY2F0ZWdvcnkgb3RoZXJ3aXNlIHVzZXIgd2lsbCBiZSBicm91Z2h0IHRvIHJvb3Qgb25jZSBjYW5jZWwgaXMgcHJlc3NlZAoJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwKCS8vIFByZXBhcmUgYSBtZXNzYWdlIHRvIGJlIHNob3duIG9uIHRvcCBvZiB0aGUgaW1hZ2VzIG92ZXJ2aWV3CgkndGFiX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdtZXNzYWdlX2F0dHJpYnV0ZWRlbGV0ZWQnLCAkcGFyYW1zWyduYW1lJ10pLAoJLy8gUmVkaXJlY3QgYmFjayB0byBpbWFnZXMsIHNvIHdlIGNhbiBzZWUgdGhlIHJlc3VsdAoJJ2FjdGl2ZV90YWInID0+ICdhdHRyaWJ1dGVzJwopOwokdGhpcy0+UmVkaXJlY3QoJGlkLCAncHJvZHVjdF9lZGl0JywgJHJldHVybmlkLCAkcGFyYW1zKTsK]]></data>
	</file>
	<file>
	  <filename>/action.product_attribute_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGFsbG93cyB0aGUgdXNlciB0byBjaGFuZ2UgYXR0cmlidXRlIGluZm9ybWF0aW9uCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgJiYgJHBhcmFtc1snY2FuY2VsJ10gPT0gJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAncHJvZHVjdF9lZGl0JywgJHJldHVybmlkLCBhcnJheSgKCQkndGFiX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdjYW5jZWwnKSwKCQkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLAoJCSdhY3RpdmVfdGFiJyA9PiAnYXR0cmlidXRlcycsCgkJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXQoJKSk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJHBhcmFtc1snc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSB7CgkkZXJyb3JmbmQgPSBmYWxzZTsKCSRkb3VibGVpdGVtID0gJHRoaXMtPnByb2R1Y3RzLT5DaGVja0RvdWJsZUl0ZW1OdW1iZXIoJHBhcmFtc1snaXRlbW51bWJlciddLCAkcGFyYW1zWydhdHRyaWJ1dGVfaWQnXSk7CglpZiAoISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2RvdWJsZWl0ZW0nLCAwKSAmJiAkZG91YmxlaXRlbSAhPSBmYWxzZSkgewoJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXNzYWdlX2RvdWJsZWl0ZW1udW1iZXJmb3VuZCcsICRkb3VibGVpdGVtKTsKCQkkZXJyb3JmbmQgPSB0cnVlOwoJfQoJaWYgKCFpc3NldCgkcGFyYW1zWyduYW1lJ10pIHx8ICAkcGFyYW1zWyduYW1lJ10gPT0gJycpIHsKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbWVzc2FnZV9ub2F0dHJpYnV0ZW5hbWVnaXZlbicpOwoJCSRlcnJvcmZuZCA9IHRydWU7Cgl9CgoJaWYgKCEkZXJyb3JmbmQpIHsKCQkkdGhpcy0+cHJvZHVjdHMtPlVwZGF0ZUF0dHJpYnV0ZSgkcGFyYW1zKTsKCX0KCSRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdhdHRyaWJ1dGVzJzsKCSRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnYXR0cmlidXRldXBkYXRlZCcpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ3Byb2R1Y3RfZWRpdCcsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0gZWxzZSB7CgkvLyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBmb3IgcGFzc2VkIGF0dHJpYnV0ZSBpZC4gQXJyYXkgd2lsbCBob2xkIGluZm9ybWF0aW9uIGFmdGVyd2FyZHMKCWlmIChpc3NldCgkcGFyYW1zWydhdHRyaWJ1dGVfaWQnXSkpIHsKCQkkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YSA9ICR0aGlzLT5wcm9kdWN0cy0+R2V0QXR0cmlidXRlKCRwYXJhbXNbJ2F0dHJpYnV0ZV9pZCddKTsKCX0KfQovLyBQcmVwYXJlIG5leHQgc2NyZWVuIGluZm9ybWF0aW9uCiRhdHRyaWJ1dGUgPSBhcnJheSgpOwokYXR0cmlidXRlWydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAncHJvZHVjdF9hdHRyaWJ1dGVfZWRpdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnJyk7CiRhdHRyaWJ1dGVbJ3N1Ym1pdCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSk7CiRhdHRyaWJ1dGVbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRhdHRyaWJ1dGVbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgokYXR0cmlidXRlWydwcm9kbmFtZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfcHJvZHVjdF9uYW1lJyksCgknb3V0cHV0JyA9PiAkcGFyYW1zWydwcm9kbmFtZSddCik7CiRhdHRyaWJ1dGVbJ25hbWUnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9uYW1lJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRwcm9kdWN0X2F0dHJpYnV0ZV9kYXRhWyduYW1lJ10sIDQwLCA0MCkKKTsKJGF0dHJpYnV0ZVsnZGVzY3JpcHRpb24nXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfYXR0cmlidXRlX2Rlc2NyaXB0aW9uJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZGVzY3JpcHRpb24nLCAkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YVsnZGVzY3JpcHRpb24nXSwgNDAsIDI1NSkKKTsKJGF0dHJpYnV0ZVsnbWluYWxsb3dlZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfbWluYWxsb3dlZCcpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21pbmFsbG93ZWQnLCAkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YVsnbWluYWxsb3dlZCddLCA1LCA1KQopOwovLyBDaGVjayBpZiBpbnZlbnRvcnkgaW4gcGxhY2UuIElmIHNvIHVzZSBkaWZmZXJlbnQgbGFiZWwKJGludmVudG9yeXR5cGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScpOwppZiAoJGludmVudG9yeXR5cGUgPT0gJ2F0dHInKSB7CgkkbGFiZWxfYXR0cmlidXRlX21heGFsbG93ZWQgPSAkdGhpcy0+TGFuZygnbGFiZWxfcXVhbnRpdHlfb25zdG9jaycpOwp9IGVsc2UgewoJJGxhYmVsX2F0dHJpYnV0ZV9tYXhhbGxvd2VkID0gJHRoaXMtPkxhbmcoJ2xhYmVsX2F0dHJpYnV0ZV9tYXhhbGxvd2VkJyk7Cn0KJGF0dHJpYnV0ZVsnbWF4YWxsb3dlZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICRsYWJlbF9hdHRyaWJ1dGVfbWF4YWxsb3dlZCwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtYXhhbGxvd2VkJywgJHByb2R1Y3RfYXR0cmlidXRlX2RhdGFbJ21heGFsbG93ZWQnXSwgNSwgNSkKKTsKCi8vIFByZXBhcmUgdGhlIHZhcmlvdXMgcHJpY2luZyBhZGp1c3RtZW50IHR5cGVzCiRhdHRyaWJ1dGVbJ3ByaWNlYWRqdXN0dHlwZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfcHJpY2VhZGp1c3R0eXBlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKAoJCSRpZCwKCQkncHJpY2VhZGp1c3R0eXBlJywKCQkkdGhpcy0+QnVpbGRMaXN0T2ZBZGp1c3RUeXBlcygpLAoJCS0xLAoJCSRwcm9kdWN0X2F0dHJpYnV0ZV9kYXRhWydwcmljZWFkanVzdHR5cGUnXQoJKQopOwokYXR0cmlidXRlWydwcmljZWFkanVzdG1lbnQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfYXR0cmlidXRlX3ByaWNlYWRqdXN0bWVudCcpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ByaWNlYWRqdXN0bWVudCcsIG51bWJlcl9mb3JtYXQoJHByb2R1Y3RfYXR0cmlidXRlX2RhdGFbJ3ByaWNlYWRqdXN0bWVudCddLCAyLCAiLiIsICIiKSwgMTAsIDQwKQopOwokYXR0cmlidXRlWydkaXNwbGF5b25seSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfZGlzcGxheW9ubHknKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZGlzcGxheW9ubHknLCAxLCAkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YVsnZGlzcGxheW9ubHknXSkKKTsKJGF0dHJpYnV0ZVsnaXRlbW51bWJlciddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfaXRlbW51bWJlcicpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2l0ZW1udW1iZXInLCAkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YVsnaXRlbW51bWJlciddLCAzMCwgMzApCik7CiRhdHRyaWJ1dGVbJ2FjdGl2ZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfYWN0aXZlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEsICRwcm9kdWN0X2F0dHJpYnV0ZV9kYXRhWydhY3RpdmUnXSkKKTsKCi8vIFN1cHBvcnRpbmcgZmllbGRzCiRhdHRyaWJ1dGVbJ2F0dHJpYnV0ZV9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnYXR0cmlidXRlX2lkJywgJHBhcmFtc1snYXR0cmlidXRlX2lkJ10pCik7CiRhdHRyaWJ1dGVbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pCik7CiRhdHRyaWJ1dGVbJ3Byb2R1Y3RfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3Byb2R1Y3RfaWQnLCAkcHJvZHVjdF9hdHRyaWJ1dGVfZGF0YVsncHJvZHVjdF9pZCddKQopOwoKLy8gQnVpbGQgdGhlIHRlbXBsYXRlIHRvIHNob3cKJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJ1dGUnLCAkYXR0cmlidXRlKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcm9kdWN0X2F0dHJpYnV0ZV9lZGl0LnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.product_categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.product_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGRlbGV0ZV9wcm9kdWN0ID0gJHRoaXMtPnByb2R1Y3RzLT5HZXQoJHBhcmFtc1snY3VycmVudF9wcm9kdWN0X2lkJ10pOwoKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKJHBhdGggPSAkY29uZmlnWydpbWFnZV91cGxvYWRzX3BhdGgnXSAuICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcpOwoKJHF1ZXJ5ID0gIlNFTEVDVCBgaW1hZ2VgIEZST00gYCIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2ltYWdlc2AgV0hFUkUgYHByb2R1Y3RfaWRgID0gIiAuICRwYXJhbXNbJ2N1cnJlbnRfcHJvZHVjdF9pZCddOwoKJGltYWdlcyA9ICRkYi0+R2V0QWxsKCRxdWVyeSk7Cgpmb3JlYWNoICgkaW1hZ2VzIGFzICRpbWFnZSkgewogICAgJG5hbWUgPSAkcGF0aCAuICRpbWFnZVsnaW1hZ2UnXTsKICAgICR0biA9ICRwYXRoIC4gJ3RuXycgLiAkaW1hZ2VbJ2ltYWdlJ107CiAgICAkdGhpcy0+ZGVsRmlsZSgkbmFtZSk7CiAgICAkdGhpcy0+ZGVsRmlsZSgkdG4pOwp9CgokdGhpcy0+cHJvZHVjdHMtPkRlbGV0ZSgkZGVsZXRlX3Byb2R1Y3QpOwoKJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycsICdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pOwokcGFyYW1zWyd0YWJfbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3Byb2R1Y3RkZWxldGVkJyk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.product_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgSW52ZW50b3J5IE1hbmFnZW1lbnQgZmllbGRzCiRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CiRDYXJ0TVMgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTaW1wbGVDYXJ0Jyk7CiREVEkgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdEVEludmVudG9yeScpOwoKJHRoZW1lT2JqZWN0ID0gXGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSAmJiAkcGFyYW1zWydjYW5jZWwnXSA9PSAkdGhpcy0+TGFuZygnY2FuY2VsJykpIHsKCSRwYXJhbXMgPSBhcnJheSgKCQknYWN0aXZlX3RhYicgPT4gJ2NhdGVnb3JpZXMnLAoJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sCgkJJ3RhYl9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnY2FuY2VsJykKCSk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQppZiAoCglpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJHBhcmFtc1snc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3VwZGF0ZScpCgl8fCBpc3NldCgkcGFyYW1zWydkb25lJ10pCikgewoJJGVycm9yZm5kID0gZmFsc2U7CgkkZG91YmxlaXRlbSA9ICR0aGlzLT5wcm9kdWN0cy0+Q2hlY2tEb3VibGVJdGVtTnVtYmVyKCRwYXJhbXNbJ2l0ZW1udW1iZXInXSwgJHBhcmFtc1sncHJvZHVjdF9pZCddKTsKCWlmICghJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZG91YmxlaXRlbScsIDApICYmICRkb3VibGVpdGVtICE9IGZhbHNlKSB7CgkJJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfZG91YmxlaXRlbW51bWJlcmZvdW5kJywgJGRvdWJsZWl0ZW0pOwoJCSRlcnJvcmZuZCA9IHRydWU7Cgl9CglpZiAoIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgfHwgICRwYXJhbXNbJ25hbWUnXSA9PSAnJykgewoJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXNzYWdlX25vYXR0cmlidXRlbmFtZWdpdmVuJyk7CgkJJGVycm9yZm5kID0gdHJ1ZTsKCX0KCglpZiAoISRlcnJvcmZuZCkgewoKCQkkcGFyYW1zWyduYW1lJ10gPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CgkJJHBhcmFtc1snYWN0aXZlJ10gPSAhZW1wdHkoJHBhcmFtc1snYWN0aXZlJ10pID8gJHBhcmFtc1snYWN0aXZlJ10gOiAwOwoJCSRwYXJhbXNbJ2ZlYXR1cmVkJ10gPSAhZW1wdHkoJHBhcmFtc1snZmVhdHVyZWQnXSkgPyAkcGFyYW1zWydmZWF0dXJlZCddIDogMDsKCQkkcGFyYW1zWydtYXhhdHRyaWJ1dGVzJ10gPSAhZW1wdHkoJHBhcmFtc1snbWF4YXR0cmlidXRlcyddKSA/IHRyaW0oJHBhcmFtc1snbWF4YXR0cmlidXRlcyddKSA6IDA7CgkJJHBhcmFtc1sncG9zaXRpb24nXSA9ICFlbXB0eSgkcGFyYW1zWydwb3NpdGlvbiddKSA/IHRyaW0oJHBhcmFtc1sncG9zaXRpb24nXSkgOiAwOwoJCSRwYXJhbXNbJ3ByaWNlJ10gPSAhZW1wdHkoJHBhcmFtc1sncHJpY2UnXSkgPyB0cmltKCRwYXJhbXNbJ3ByaWNlJ10pIDogMDsKCQkkcGFyYW1zWyduZXR3ZWlnaHQnXSA9ICFlbXB0eSgkcGFyYW1zWyduZXR3ZWlnaHQnXSkgPyB0cmltKCRwYXJhbXNbJ25ldHdlaWdodCddKSA6IDA7CgkJJHBhcmFtc1snZGVzY3JpcHRpb24nXSA9ICFlbXB0eSgkcGFyYW1zWydkZXNjcmlwdGlvbiddKSA/IHRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSkgOiAnJzsKCQkkcGFyYW1zWydpdGVtbnVtYmVyJ10gPSAhZW1wdHkoJHBhcmFtc1snaXRlbW51bWJlciddKSA/IHRyaW0oJHBhcmFtc1snaXRlbW51bWJlciddKSA6IDA7CgkJJHBhcmFtc1snY29zdF9wcmljZSddID0gIWVtcHR5KCRwYXJhbXNbJ2Nvc3RfcHJpY2UnXSkgPyB0cmltKCRwYXJhbXNbJ2Nvc3RfcHJpY2UnXSkgOiAwOwoJCSRwYXJhbXNbJ2JhcmNvZGUnXSA9ICFlbXB0eSgkcGFyYW1zWydiYXJjb2RlJ10pID8gdHJpbSgkcGFyYW1zWydiYXJjb2RlJ10pIDogJyc7CgoJCWlmICgkdGhpcy0+cHJvZHVjdHMtPlVwZGF0ZSgkcGFyYW1zKSkgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3Byb2R1Y3RlZGl0ZWQnKTsKCgkJaWYgKCREVEkpIHsKCQkJZHRpX3V0aWxzOjp1cGRhdGVfaXRlbWV4dGVuc2lvbigKCQkJCS0xLAoJCQkJJHBhcmFtc1snY29zdF9wcmljZSddLAoJCQkJJ0EnLAoJCQkJJHBhcmFtc1snYmFyY29kZSddLAoJCQkJJHBhcmFtc1sncHJvZHVjdF9pZCddCgkJCSk7CgkJfQoJfQoJaWYgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkpIHsKCQkkcGFyYW1zID0gYXJyYXkoCgkJCSdhY3RpdmVfdGFiJyA9PiAnY2F0ZWdvcmllcycsCgkJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10KCQkpOwoJCSRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJvZHVjdGVkaXRlZCcpOwoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJfQoJJHBhcmFtc1snc3VibWl0J10gPSBOVUxMOwoJJHBhcmFtc1sndGFiX21lc3NhZ2UnXSA9ICRwYXJhbXNbJ21lc3NhZ2UnXTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdwcm9kdWN0X2VkaXQnLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9IGVsc2UgewoJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXSA9PSAkdGhpcy0+TGFuZygnYWRkaW1hZ2UnKSkgewoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdwcm9kdWN0X2ltYWdlcycsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgl9CglpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmICRwYXJhbXNbJ3N1Ym1pdCddID09ICR0aGlzLT5MYW5nKCdhZGRhdHRyaWJ1dGUnKSkgewoJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdwcm9kdWN0X2F0dHJpYnV0ZXMnLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoJfQoJaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXSA9PSAkdGhpcy0+TGFuZygnYWRkY2F0ZWdvcnknKSkgewoJCSR0aGlzLT5wcm9kdWN0cy0+Q3JlYXRlQ2F0ZWdvcnlNYXAoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSwgJHBhcmFtc1sncHJvZHVjdF9pZCddKTsKCQkkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnY2F0ZWdvcmllcyc7Cgl9CglpZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmICRwYXJhbXNbJ3N1Ym1pdCddID09ICR0aGlzLT5MYW5nKCdkZWxldGVjYXRlZ29yeScpKSB7CgkJJHRoaXMtPnByb2R1Y3RzLT5EZWxldGVDYXRlZ29yeU1hcCgkcGFyYW1zWydjYXRlZ29yeV9pZCddLCAkcGFyYW1zWydwcm9kdWN0X2lkJ10pOwoJCSRwYXJhbXNbJ2FjdGl2ZV90YWInXSA9ICdjYXRlZ29yaWVzJzsKCX0KCS8vIEFsbCBhY3Rpb25zIGhhbmRsZWQsIG5vdyBnZXQgYWxsIHRoZSBpbmZvcm1hdGlvbiBsaW5rZWQgdG8gdGhlIHByb2R1Y3QKCWlmIChpc3NldCgkcGFyYW1zWydwcm9kdWN0X2lkJ10pKSB7CgkJJHByb2R1Y3RfZGF0YSA9ICR0aGlzLT5wcm9kdWN0cy0+R2V0KCRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSk7Cgl9Cn0KJGFjdGl2ZV90YWIgPSAncHJvZHVjdCc7CmlmIChpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKSB7CgkkYWN0aXZlX3RhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKfQoKLyoqCiAqIFByZXBhcmUgUHJvZHVjdCBUYWIKICovCiRwcm9kdWN0ID0gYXJyYXkoKTsKJHByb2R1Y3RbJ3N0YXJ0Zm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdwcm9kdWN0X2VkaXQnLCAkcmV0dXJuaWQpOwokcHJvZHVjdFsnc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3VwZGF0ZScpKTsKJHByb2R1Y3RbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRwcm9kdWN0Wydkb25lJ10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZG9uZScsICR0aGlzLT5MYW5nKCdzYXZlcmV0dXJuJykpOwokcHJvZHVjdFsnYWRkX25ldyddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkkaWQsCgkncHJvZHVjdF9hZGQnLAoJJycsCgkkdGhpcy0+TGFuZygndGV4dF9hZGQnKSAuICcgbmV3ICcgLiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdCcpLAoJYXJyYXkoJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSkKKTsKJHByb2R1Y3RbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgokcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10gPSBpc3NldCgkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pID8gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddIDogMDsKCi8vIE1lc3NhZ2VzIGNvbWUgZnJvbSBkZWxldGlvbiAob3Igb3RoZXIgcGxhY2VzKS4gU28gc2hvdyBpdC4KJHByb2R1Y3RbJ21lc3NhZ2UnXSA9IGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSkgPyAkcGFyYW1zWydtZXNzYWdlJ10gOiAnJzsKJHByb2R1Y3RbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pCik7CiRwcm9kdWN0Wydwcm9kdWN0X2lkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJycsCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdwcm9kdWN0X2lkJywgJHBhcmFtc1sncHJvZHVjdF9pZCddKQopOwoKJHByb2R1Y3RbJ25hbWUnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9uYW1lJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRwcm9kdWN0X2RhdGFbJ25hbWUnXSwgNDAsIDI1NSwgJ3JlcXVpcmVkJykKKTsKJHByb2R1Y3RbJ2Rlc2NyaXB0aW9uJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfZGVzY3JpcHRpb24nKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJHByb2R1Y3RfZGF0YVsnZGVzY3JpcHRpb24nXSwgJ3BkZXNjcmlwdGlvbicsICdwYWdlc21hbGx0ZXh0YXJlYScsICcnLCAnJywgJycsIDQwLCA0MCkKKTsKJHByb2R1Y3RbJ3ByaWNlJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfcHJpY2UnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcmljZScsICR0aGlzLT5Gb3JtYXRQcmljZSgkcHJvZHVjdF9kYXRhWydwcmljZSddKSwgNDAsIDQwKQopOwokcHJvZHVjdFsnYWN0aXZlJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfYWN0aXZlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FjdGl2ZScsIDEsICRwcm9kdWN0X2RhdGFbJ2FjdGl2ZSddKQopOwokcHJvZHVjdFsnZmVhdHVyZWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9mZWF0dXJlZCcpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmZWF0dXJlZCcsIDEsICRwcm9kdWN0X2RhdGFbJ2ZlYXR1cmVkJ10pCik7CiRwcm9kdWN0WyduZXR3ZWlnaHQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9uZXR3ZWlnaHQnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduZXR3ZWlnaHQnLCAkdGhpcy0+Rm9ybWF0V2VpZ2h0KCRwcm9kdWN0X2RhdGFbJ25ldHdlaWdodCddKSwgMTAsIDIwKSwKCSd1bml0JyA9PiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0dW5pdG1lYXN1cmUnLCAnS2cnKQopOwovLyBQcmVwYXJlIGxpc3Qgb2YgcG9zc2libGUgVkFUIGNvZGVzIGFzIHNldCB1cCBpbiBDYXJ0IE1hZGUgU2ltcGxlCmlmICgkQ2FydE1TKSB7CgkkdmF0Y29kZSA9ICcnOwoJJGxpc3R2YXRjb2RlWyRDYXJ0TVMtPkdldFByZWZlcmVuY2UoJ3ZhdDBuYW1lJywgJycpXSA9ICcwJzsKCSRsaXN0dmF0Y29kZVskQ2FydE1TLT5HZXRQcmVmZXJlbmNlKCd2YXQxbmFtZScsICcnKV0gPSAnMSc7CgkkbGlzdHZhdGNvZGVbJENhcnRNUy0+R2V0UHJlZmVyZW5jZSgndmF0Mm5hbWUnLCAnJyldID0gJzInOwoJJGxpc3R2YXRjb2RlWyRDYXJ0TVMtPkdldFByZWZlcmVuY2UoJ3ZhdDNuYW1lJywgJycpXSA9ICczJzsKCSRsaXN0dmF0Y29kZVskQ2FydE1TLT5HZXRQcmVmZXJlbmNlKCd2YXQ0bmFtZScsICcnKV0gPSAnNCc7CgkkcHJvZHVjdFsndmF0Y29kZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF92YXRjb2RlJyksCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICd2YXRjb2RlJywgJGxpc3R2YXRjb2RlLCAkcHJvZHVjdF9kYXRhWyd2YXRjb2RlJ10sICR2YXRjb2RlKQoJKTsKfSBlbHNlIHsKCSRwcm9kdWN0Wyd2YXRjb2RlJ10gPSBhcnJheSgKCQknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X3ZhdGNvZGUnKSwKCQknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAndmF0Y29kZScsICcnLCAxLCAxKQoJKTsKfQoKJHNrdWRyb3Bkb3duID0gJHRoaXMtPkJ1aWxkTGlzdFNLVSgpOwokcHJvZHVjdFsnc2t1J10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3Rfc2t1JyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3NrdScsICRza3Vkcm9wZG93biwgLTEsICRwcm9kdWN0X2RhdGFbJ3NrdSddKQopOwoKJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfcHJvZHVjdF9pdGVtbnVtYmVyJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXRlbW51bWJlcicsICRwcm9kdWN0X2RhdGFbJ2l0ZW1udW1iZXInXSwgMzAsIDMwLCAncmVxdWlyZWQnKQopOwoKJHByb2R1Y3RbJ3Bvc2l0aW9uJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3Byb2R1Y3RfcG9zaXRpb24nKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwb3NpdGlvbicsICRwcm9kdWN0X2RhdGFbJ3Bvc2l0aW9uJ10sIDEwLCAxMCkKKTsKLy8gQ2hlY2sgaWYgaW52ZW50b3J5IGluIHBsYWNlLiBJZiBzbyB1c2UgZGlmZmVyZW50IGxhYmVsCiRpbnZlbnRvcnl0eXBlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludmVudG9yeXR5cGUnKTsKaWYgKCRpbnZlbnRvcnl0eXBlID09ICdwcm9kJykgewoJJGxhYmVsX3Byb2R1Y3RfbWF4YXR0cmlidXRlcyA9ICR0aGlzLT5MYW5nKCdsYWJlbF9xdWFudGl0eV9vbnN0b2NrJyk7CgkkdG9vbHRpcF9tYXhhdHRyaWJ1dGVzID0gJHRoaXMtPkxhbmcoJ3Rvb2x0aXBfcXVhbnRpdHlfb25zdG9jaycpOwp9IGVsc2UgewoJJGxhYmVsX3Byb2R1Y3RfbWF4YXR0cmlidXRlcyA9ICR0aGlzLT5MYW5nKCdsYWJlbF9wcm9kdWN0X21heGF0dHJpYnV0ZXMnKTsKCSR0b29sdGlwX21heGF0dHJpYnV0ZXMgPSAkdGhpcy0+TGFuZygndG9vbHRpcF9tYXhhdHRyaWJ1dGVzJyk7Cn0KJHByb2R1Y3RbJ21heGF0dHJpYnV0ZXMnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkbGFiZWxfcHJvZHVjdF9tYXhhdHRyaWJ1dGVzLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KAoJCSRpZCwKCQknbWF4YXR0cmlidXRlcycsCgkJJHByb2R1Y3RfZGF0YVsnbWF4YXR0cmlidXRlcyddLAoJCTEwLAoJCTEwLAoJCSd0aXRsZT0iJyAuICR0b29sdGlwX21heGF0dHJpYnV0ZXMgLiAnIicKCSkKKTsKaWYgKCREVEkpIHsKCSRzbWFydHktPmFzc2lnbignRFRJYXZhaWxhYmxlJywgdHJ1ZSk7CgkkRFRJbnZlbnRvcnl2ZXJzaW9uID0gZHRpX3V0aWxzOjpnZXRfRFRJbnZlbnRvcnl2ZXJzaW9uKCk7Cgkkc21hcnR5LT5hc3NpZ24oJ0RUSW52ZW50b3J5dmVyc2lvbicsICREVEludmVudG9yeXZlcnNpb24pOwoJJGl0ZW1fZXh0X2luZm8gPSBhcnJheSgpOwoJJGl0ZW1fZXh0X2luZm8gPSBkdGlfdXRpbHM6OmdldF9pdGVtZXh0ZW5zaW9uKCRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSk7CgkkbGFiZWwgPSBkdGlfdXRpbHM6OmdldF9maWVsZHRpdGxlKCd0aXRsZV9jb3N0X3ByaWNlJyk7CgkkaXRlbV9leHRfaW5mb1snYmFyY29kZSddID0gaXNzZXQoJGl0ZW1fZXh0X2luZm9bJ2JhcmNvZGUnXSkgPyAkaXRlbV9leHRfaW5mb1snYmFyY29kZSddIDogJyc7CgkkaXRlbV9leHRfaW5mb1snY29zdF9wcmljZSddID0gaXNzZXQoJGl0ZW1fZXh0X2luZm9bJ2Nvc3RfcHJpY2UnXSkgPyAkaXRlbV9leHRfaW5mb1snY29zdF9wcmljZSddIDogMDsKCgkkcHJvZHVjdFsnY29zdF9wcmljZSddID0gYXJyYXkoCgkJJ2xhYmVsJyA9PiAkbGFiZWwsCgkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Nvc3RfcHJpY2UnLCAkaXRlbV9leHRfaW5mb1snY29zdF9wcmljZSddLCAxNSwgMTUpCgkpOwoJJGxhYmVsID0gZHRpX3V0aWxzOjpnZXRfZmllbGR0aXRsZSgndGl0bGVfYmFyY29kZScpOwoJJHByb2R1Y3RbJ2JhcmNvZGUnXSA9IGFycmF5KAoJCSdsYWJlbCcgPT4gJGxhYmVsLAoJCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdiYXJjb2RlJywgJGl0ZW1fZXh0X2luZm9bJ2JhcmNvZGUnXSwgMjUsIDI1KQoJKTsKCWlmICgkRFRJbnZlbnRvcnl2ZXJzaW9uICE9ICdmcmVlJykgewoJCSRsYWJlbCA9IGR0aV91dGlsczo6Z2V0X2ZpZWxkdGl0bGUoJ3RpdGxlX2l0ZW1fY2xhc3MnKTsKCQkkZGVmYXVsdF9pdGVtX2NsYXNzID0gZHRpX3V0aWxzOjpnZXRfZGVmYXVsdF9pdGVtX2NsYXNzKCk7CgkJJHByb2R1Y3RbJ2l0ZW1fY2xhc3MnXSA9IGFycmF5KAoJCQknbGFiZWwnID0+ICRsYWJlbCwKCQkJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2l0ZW1fY2xhc3MnLCAkaXRlbV9leHRfaW5mb1snaXRlbV9jbGFzcyddLCAzLCAzKQoJCSk7Cgl9Cn0gZWxzZSB7Cgkkc21hcnR5LT5hc3NpZ24oJ0RUSWF2YWlsYWJsZScsIGZhbHNlKTsKfQoKLyoqCiAqIFByZXBhcmUgQ2F0ZWdvcmllcyBUYWIKICovCiRjYXRlZ29yaWVzWydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAncHJvZHVjdF9lZGl0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7Ci8vJGNhdGVnb3JpZXNbJ3N1Ym1pdCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnZG9uZScpKTsKJGNhdGVnb3JpZXNbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRjYXRlZ29yaWVzWydkb25lJ10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZG9uZScsICR0aGlzLT5MYW5nKCdzYXZlcmV0dXJuJykpOwokY2F0ZWdvcmllc1snZW5kZm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCiRjYXRlZ29yaWVzWydjdXJyZW50X2NhdGVnb3J5X2lkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJycsCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjdXJyZW50X2NhdGVnb3J5X2lkJywgJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKQopOwokY2F0ZWdvcmllc1sncHJvZHVjdF9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAncHJvZHVjdF9pZCcsICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSkKKTsKCiRjYXRlZ29yeV9saXN0ID0gYXJyYXkoKTsKCmZvcmVhY2ggKCRwcm9kdWN0X2RhdGFbJ2NhdGVnb3JpZXMnXSBhcyAkY2F0ZWdvcnkpIHsKCWlmICgkY2F0ZWdvcnkpIHsKCQlpZiAoZW1wdHkoJGNhdGVnb3J5WyduYW1lJ10pKSB7CgkJCSRjYXRlZ29yeVsnbmFtZSddID0gJHRoaXMtPkxhbmcoJ3Jvb3QnKTsKCQl9IGVsc2UgewoJCQkkY2F0ZWdvcnlbJ25hbWUnXSA9ICRjYXRlZ29yeVsnbmFtZSddOwoJCX0KCQkkY2F0ZWdvcnlbJ2xpbmtfZGVsZXRlJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQkncHJvZHVjdF9lZGl0JywKCQkJJHJldHVybmlkLAoJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9kZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgKCQkJCSdjYXRlZ29yeV9pZCcgPT4gJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddLAoJCQkJJ3Byb2R1Y3RfaWQnID0+ICRwcm9kdWN0X2RhdGFbJ3Byb2R1Y3RfaWQnXSwKCQkJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sCgkJCQknc3VibWl0JyA9PiAkdGhpcy0+TGFuZygnZGVsZXRlY2F0ZWdvcnknKQoJCQkpLAoJCQkkdGhpcy0+TGFuZygnbWVzc2FnZV9hcmV5b3VzdXJlcHJvZGNhdCcsICRwcm9kdWN0X2RhdGFbJ25hbWUnXSwgJGNhdGVnb3J5WyduYW1lJ10pCgkJKTsKCQkkY2F0ZWdvcnlfbGlzdFtdID0gJGNhdGVnb3J5OwoJfQp9CiRjYXRlZ29yaWVzWydsaXN0J10gPSAkY2F0ZWdvcnlfbGlzdDsKCiRjYXRlZ29yaWVzWydjYXRlZ29yaWVzJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2FkZGNhdGVnb3J5JyksCgknc3VibWl0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ2FkZGNhdGVnb3J5JykpLAoJJ2xpc3QnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2NhdGVnb3J5X2lkJywgJHRoaXMtPmNhdGVnb3JpZXMtPkJ1aWxkVG90YWxMaXN0KCksIC0xLCAnJykKKTsKCi8qKgogKiBQcmVwYXJlIEF0dHJpYnV0ZXMgVGFiCiAqLwokYXR0cmlidXRlc1snc3RhcnRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3Byb2R1Y3RfZWRpdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOwokYXR0cmlidXRlc1snc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ2FkZGF0dHJpYnV0ZScpKTsKJGF0dHJpYnV0ZXNbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRhdHRyaWJ1dGVzWydlbmRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKLy8gTWVzc2FnZXMgY29tZSBmcm9tIGRlbGV0aW9uIChvciBvdGhlciBwbGFjZXMpLiBTbyBzaG93IGl0LgppZiAoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSkgewoJJGF0dHJpYnV0ZXNbJ21lc3NhZ2UnXSA9ICRwYXJhbXNbJ21lc3NhZ2UnXTsKfQovLyBQcmVwYXJlIG5hbWUgb2YgcHJvZHVjdCBzbyB0aGF0IGNhbiBiZSBzaG93biBhYm92ZSBpbWFnZXMuIElzIGVhc3kgZm9yIHVzZXIgdG8gc2VlIGZvciB3aGljaCBwcm9kdWN0IG9uZSBpcyBidXN5CiRhdHRyaWJ1dGVzWydwcm9kbmFtZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVzX3Byb2R1Y3RfbmFtZScpLAoJJ291dHB1dCcgPT4gJHByb2R1Y3RfZGF0YVsnbmFtZSddIC4gJyAnIC4KCQkkdGhpcy0+TGFuZygnYmFzZXByb2R1Y3RwcmljZScsICR0aGlzLT5Gb3JtYXRQcmljZSgkcHJvZHVjdF9kYXRhWydwcmljZSddKSkKKTsKJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddID0gaXNzZXQoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddKSA/ICRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ25hbWUnXSA6ICcnOwokYXR0cmlidXRlc1snbmFtZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdjb2x1bW5fYXR0cmlidXRlX25hbWUnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICduYW1lJywgJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsnbmFtZSddLCA0MCwgNDApCik7CiRhdHRyaWJ1dGVzWydkZXNjcmlwdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfZGVzY3JpcHRpb24nKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhZGVzY3JpcHRpb24nLCAnJywgJycsIDI1NSwgJ3N0eWxlPSJ3aWR0aDo5NSUiJykKKTsKLy8gUHJlcGFyZSBzb21lIGRlZmF1bHQgdmFsdWVzIGZvciBhIG5ldyBhdHRyaWJ1dGUKaWYgKCFpc3NldCgkcHJvZHVjdFsnYXR0cmlidXRlcyddWydhdHRyaWJ1dGVfaWQnXSkpIHsKCSRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ21pbmFsbG93ZWQnXSA9ICcwJzsKCSRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2FjdGl2ZSddID0gdHJ1ZTsKCSRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ21heGFsbG93ZWQnXSA9IDE7Cn0KJGF0dHJpYnV0ZXNbJ21pbmFsbG93ZWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfYXR0cmlidXRlX21pbmFsbG93ZWQnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdtaW5hbGxvd2VkJywgJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsnbWluYWxsb3dlZCddLCA1LCA1KQopOwovLyBDaGVjayBpZiBpbnZlbnRvcnkgaW4gcGxhY2UuIElmIHNvIHVzZSBkaWZmZXJlbnQgbGFiZWwKaWYgKCRpbnZlbnRvcnl0eXBlID09ICdhdHRyJykgewoJJGxhYmVsX2F0dHJpYnV0ZV9tYXhhbGxvd2VkID0gJHRoaXMtPkxhbmcoJ2xhYmVsX3F1YW50aXR5X29uc3RvY2snKTsKfSBlbHNlIHsKCSRsYWJlbF9hdHRyaWJ1dGVfbWF4YWxsb3dlZCA9ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfbWF4YWxsb3dlZCcpOwp9CiRhdHRyaWJ1dGVzWydtYXhhbGxvd2VkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJGxhYmVsX2F0dHJpYnV0ZV9tYXhhbGxvd2VkLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ21heGFsbG93ZWQnLCAkcHJvZHVjdFsnYXR0cmlidXRlcyddWydtYXhhbGxvd2VkJ10sIDUsIDUpCik7Ci8vIFByZXBhcmUgdGhlIHZhcmlvdXMgcHJpY2luZyBhZGp1c3RtZW50IHR5cGVzCiRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ3ByaWNlYWRqdXN0dHlwZSddID0gaXNzZXQoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsncHJpY2VhZGp1c3R0eXBlJ10pID8gJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsncHJpY2VhZGp1c3R0eXBlJ10gOiAnJzsKJGF0dHJpYnV0ZXNbJ3ByaWNlYWRqdXN0dHlwZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9hdHRyaWJ1dGVfcHJpY2VhZGp1c3R0eXBlJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKAoJCSRpZCwKCQkncHJpY2VhZGp1c3R0eXBlJywKCQkkdGhpcy0+QnVpbGRMaXN0T2ZBZGp1c3RUeXBlcygpLAoJCS0xLAoJCSRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ3ByaWNlYWRqdXN0dHlwZSddCgkpCik7CiRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ3ByaWNlYWRqdXN0bWVudCddID0gaXNzZXQoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsncHJpY2VhZGp1c3RtZW50J10pID8gJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsncHJpY2VhZGp1c3RtZW50J10gOiAwOwokYXR0cmlidXRlc1sncHJpY2VhZGp1c3RtZW50J10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2F0dHJpYnV0ZV9wcmljZWFkanVzdG1lbnQnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdwcmljZWFkanVzdG1lbnQnLCAkdGhpcy0+Rm9ybWF0UHJpY2UoJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsncHJpY2VhZGp1c3RtZW50J10pLCAxMCwgNDApCik7CiRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2Rpc3BsYXlvbmx5J10gPSBpc3NldCgkcHJvZHVjdFsnYXR0cmlidXRlcyddWydkaXNwbGF5b25seSddKSA/ICRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2Rpc3BsYXlvbmx5J10gOiBmYWxzZTsKJGF0dHJpYnV0ZXNbJ2Rpc3BsYXlvbmx5J10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2F0dHJpYnV0ZV9kaXNwbGF5b25seScpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdkaXNwbGF5b25seScsIDEsICRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2Rpc3BsYXlvbmx5J10pCik7CiRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2l0ZW1udW1iZXInXSA9IGlzc2V0KCRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2l0ZW1udW1iZXInXSkgPyAkcHJvZHVjdFsnYXR0cmlidXRlcyddWydpdGVtbnVtYmVyJ10gOiAnJzsKJGF0dHJpYnV0ZXNbJ2l0ZW1udW1iZXInXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9pdGVtbnVtYmVyJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaXRlbW51bWJlcicsICRwcm9kdWN0WydhdHRyaWJ1dGVzJ11bJ2l0ZW1udW1iZXInXSwgMzAsIDMwKQopOwokYXR0cmlidXRlc1snYWN0aXZlJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX2F0dHJpYnV0ZV9hY3RpdmUnKSwKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnYWN0aXZlJywgMSwgJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVsnYWN0aXZlJ10pCik7CiRhdHRyaWJ1dGVzWydjdXJyZW50X2NhdGVnb3J5X2lkJ10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJycsCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjdXJyZW50X2NhdGVnb3J5X2lkJywgJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddKQopOwokYXR0cmlidXRlc1sncHJvZHVjdF9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAncHJvZHVjdF9pZCcsICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSkKKTsKLy8gQnVpbGQgbGlzdCBvZiBhdmFpbGFibGUgYXR0cmlidXRlcwokYXR0cmlidXRlc1snbmFtZWNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9hdHRyaWJ1dGVfbmFtZScpOwokYXR0cmlidXRlc1snZGVzY3JpcHRpb25jb2x1bW4nXSA9ICR0aGlzLT5MYW5nKCdjb2x1bW5fYXR0cmlidXRlX2Rlc2NyaXB0aW9uJyk7CiRhdHRyaWJ1dGVzWydhZGp1c3RtZW50Y29sdW1uJ10gPSAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9hZGp1c3RtZW50Jyk7CiRhdHRyaWJ1dGVzWydwcmljZWNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9hdHRyaWJ1dGVfcHJpY2UnKTsKJGF0dHJpYnV0ZXNbJ2Rpc3BsYXljb2x1bW4nXSA9ICR0aGlzLT5MYW5nKCdjb2x1bW5fYXR0cmlidXRlX2Rpc3BsYXknKTsKJGF0dHJpYnV0ZXNbJ2FjdGl2ZWNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2FjdGl2ZScpOwokYXR0cmlidXRlc1snbWluYWxsb3dlZGNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9hdHRyaWJ1dGVfbWluYWxsb3dlZCcpOwovLyBDaGVjayBpZiBpbnZlbnRvcnkgaW4gcGxhY2UuIElmIHNvIHVzZSBkaWZmZXJlbnQgbGFiZWwKaWYgKCRpbnZlbnRvcnl0eXBlID09ICdhdHRyJykgewoJJGF0dHJpYnV0ZXNbJ21heGFsbG93ZWRjb2x1bW4nXSA9ICR0aGlzLT5MYW5nKCdsYWJlbF9vbnN0b2NrJyk7Cn0gZWxzZSB7CgkkYXR0cmlidXRlc1snbWF4YWxsb3dlZGNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9hdHRyaWJ1dGVfbWF4YWxsb3dlZCcpOwp9CiRhdHRyaWJ1dGVzWydpdGVtbnVtYmVyY29sdW1uJ10gPSAkdGhpcy0+TGFuZygnY29sdW1uX2F0dHJpYnV0ZV9pdGVtbnVtYmVyJyk7CiRhdHRyaWJ1dGVzWydub19hdHRyaWJ1dGVzX2F2YWlsYWJsZSddID0gJHRoaXMtPkxhbmcoJ25vX2F0dHJpYnV0ZXNfYXZhaWxhYmxlJyk7CiRkZXNjbGVuZ3RoID0gODA7CiRwcm9kdWN0X2F0dHJpYnV0ZV9saXN0ID0gYXJyYXkoKTsKLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBhdHRyaWJ1dGVzIGZvciB0aGUgY3VycmVudCBwcm9kdWN0LiBJZiBub3QgY2hlY2tlZCwgdGhlIGZvcmVhY2ggcnVucyBpbnRvIGFuIGVycm9yCiRwYXJhbXNbJ2N1cnJlbnRfYXR0cmlidXRlX2lkJ10gPSBpc3NldCgkcGFyYW1zWydjdXJyZW50X2F0dHJpYnV0ZV9pZCddKSA/ICRwYXJhbXNbJ2N1cnJlbnRfYXR0cmlidXRlX2lkJ10gOiBOVUxMOwokYXR0cmlidXRlc1snaXRlbWNvdW50J10gPSAoaXNzZXQoJHByb2R1Y3RfZGF0YVsnYXR0cmlidXRlcyddKSAmJiBpc19hcnJheSgkcHJvZHVjdF9kYXRhWydhdHRyaWJ1dGVzJ10pKSA/IGNvdW50KCRwcm9kdWN0X2RhdGFbJ2F0dHJpYnV0ZXMnXSkgOiAwOwppZiAoJGF0dHJpYnV0ZXNbJ2l0ZW1jb3VudCddID4gMCkgewoJZm9yZWFjaCAoJHByb2R1Y3RfZGF0YVsnYXR0cmlidXRlcyddIGFzICRhdHRyaWJ1dGUpIHsKCQkkYXR0cmlidXRlbmFtZSA9ICRhdHRyaWJ1dGVbJ25hbWUnXTsKCQkkYXR0cmlidXRlWyduYW1lJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQkncHJvZHVjdF9hdHRyaWJ1dGVfZWRpdCcsCgkJCSRyZXR1cm5pZCwKCQkJJGF0dHJpYnV0ZW5hbWUsCgkJCWFycmF5KAoJCQkJJ2N1cnJlbnRfYXR0cmlidXRlX2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2F0dHJpYnV0ZV9pZCddLAoJCQkJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwKCQkJCSdwcm9kbmFtZScgPT4gJHByb2R1Y3RfZGF0YVsnbmFtZSddLAoJCQkJJ2F0dHJpYnV0ZV9pZCcgPT4gJGF0dHJpYnV0ZVsnYXR0cmlidXRlX2lkJ10KCQkJKQoJCSk7CgkJaWYgKHN0cmxlbigkYXR0cmlidXRlWydkZXNjcmlwdGlvbiddKSA+ICRkZXNjbGVuZ3RoKSB7CgkJCSRhdHRyaWJ1dGVbJ2Rlc2NyaXB0aW9uJ10gPSBzdWJzdHIoJGF0dHJpYnV0ZVsnZGVzY3JpcHRpb24nXSwgMCwgJGRlc2NsZW5ndGgpIC4gJy4uLic7CgkJfSBlbHNlIHsKCQkJJGF0dHJpYnV0ZVsnZGVzY3JpcHRpb24nXSA9ICRhdHRyaWJ1dGVbJ2Rlc2NyaXB0aW9uJ107CgkJfQoJCWlmICgkYXR0cmlidXRlWydkaXNwbGF5b25seSddKSB7CgkJCSRhdHRyaWJ1dGVbJ2FkanVzdG1lbnQnXSA9ICctLS0nOwoJCQkkYXR0cmlidXRlWydwcmljZSddID0gJy0tLSc7CgkJCSRhdHRyaWJ1dGVbJ21pbmFsbG93ZWQnXSA9ICctLS0nOwoJCQkkYXR0cmlidXRlWydtYXhhbGxvd2VkJ10gPSAnLS0tJzsKCQl9IGVsc2UgewoJCQlzd2l0Y2ggKCRhdHRyaWJ1dGVbJ3ByaWNlYWRqdXN0dHlwZSddKSB7CgkJCQljYXNlICdQJzoKCQkJCQkkYXR0cmlidXRlWydhZGp1c3RtZW50J10gPSAnKyAnIC4gJGF0dHJpYnV0ZVsncHJpY2VhZGp1c3RtZW50J107CgkJCQkJYnJlYWs7CgkJCQljYXNlICdNJzoKCQkJCQkkYXR0cmlidXRlWydhZGp1c3RtZW50J10gPSAnLSAnIC4gJGF0dHJpYnV0ZVsncHJpY2VhZGp1c3RtZW50J107CgkJCQkJYnJlYWs7CgkJCQljYXNlICdUJzoKCQkJCQkkYXR0cmlidXRlWydhZGp1c3RtZW50J10gPSAnKiAnIC4gJGF0dHJpYnV0ZVsncHJpY2VhZGp1c3RtZW50J107CgkJCQkJYnJlYWs7CgkJCQljYXNlICdWJzoKCQkJCQkkYXR0cmlidXRlWydhZGp1c3RtZW50J10gPSAnJzsKCQkJCQlicmVhazsKCQkJfQoJCQkkYXR0cmlidXRlWydwcmljZSddID0gJHRoaXMtPkZvcm1hdFByaWNlKCR0aGlzLT5DYWxjdWxhdGVBdHRyaWJ1dGVQcmljZSgKCQkJCSRwcm9kdWN0X2RhdGFbJ3ByaWNlJ10sCgkJCQkkYXR0cmlidXRlWydwcmljZWFkanVzdHR5cGUnXSwKCQkJCSRhdHRyaWJ1dGVbJ3ByaWNlYWRqdXN0bWVudCddCgkJCSkpOwoJCX0KCQkkYXR0cmlidXRlWydsaW5rX2Rpc3BsYXknXSA9ICR0aGlzLT5DcmVhdGVMaW5rKAoJCQkkaWQsCgkJCSdzd2l0Y2hzdGF0dXMnLAoJCQkkcmV0dXJuaWQsCgkJCSRhdHRyaWJ1dGVbJ2Rpc3BsYXlvbmx5J10gPT0gMCA/ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKAoJCQkJJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsCgkJCQkkdGhpcy0+TGFuZygndGV4dF9ub2NhbGN1bGF0aW9uJyksCgkJCQknJywKCQkJCScnLAoJCQkJJ3N5c3RlbWljb24nCgkJCSkgOiAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2NhbGN1bGF0aW9uJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJYXJyYXkoCgkJCQkndGFibGUnID0+ICdBdHRyaWJ1dGVzRGlzcGxheScsICdkaXNwbGF5b25seScgPT4gJGF0dHJpYnV0ZVsnZGlzcGxheW9ubHknXSwgJ2F0dHJpYnV0ZV9pZCcgPT4gJGF0dHJpYnV0ZVsnYXR0cmlidXRlX2lkJ10sCgkJCQkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLCAnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddCgkJCSkKCQkpOwoJCSRhdHRyaWJ1dGVbJ2xpbmtfZW5hYmxlJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQknc3dpdGNoc3RhdHVzJywKCQkJJHJldHVybmlkLAoJCQkkYXR0cmlidXRlWydhY3RpdmUnXSA9PSAxID8gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoCgkJCQknaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywKCQkJCSR0aGlzLT5MYW5nKCd0ZXh0X2luYWN0aXZlJyksCgkJCQknJywKCQkJCScnLAoJCQkJJ3N5c3RlbWljb24nCgkJCSkgOiAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2FjdGl2ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCWFycmF5KAoJCQkJJ3RhYmxlJyA9PiAnQXR0cmlidXRlcycsICdhY3RpdmUnID0+ICRhdHRyaWJ1dGVbJ2FjdGl2ZSddLCAnYXR0cmlidXRlX2lkJyA9PiAkYXR0cmlidXRlWydhdHRyaWJ1dGVfaWQnXSwKCQkJCSdwcm9kdWN0X2lkJyA9PiAkcGFyYW1zWydwcm9kdWN0X2lkJ10sICdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10KCQkJKQoJCSk7CgkJJGF0dHJpYnV0ZVsnbGlua19lZGl0J10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQkncHJvZHVjdF9hdHRyaWJ1dGVfZWRpdCcsCgkJCSRyZXR1cm5pZCwKCQkJJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgKCQkJCSdjdXJyZW50X2F0dHJpYnV0ZV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9hdHRyaWJ1dGVfaWQnXSwKCQkJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sCgkJCQkncHJvZG5hbWUnID0+ICRwcm9kdWN0X2RhdGFbJ25hbWUnXSwKCQkJCSdhdHRyaWJ1dGVfaWQnID0+ICRhdHRyaWJ1dGVbJ2F0dHJpYnV0ZV9pZCddCgkJCSkKCQkpOwoJCSRhdHRyaWJ1dGVbJ2xpbmtfZGVsZXRlJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygKCQkJJGlkLAoJCQkncHJvZHVjdF9hdHRyaWJ1dGVfZGVsZXRlJywKCQkJJHJldHVybmlkLAoJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9kZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgKCQkJCSdhdHRyaWJ1dGVfaWQnID0+ICRhdHRyaWJ1dGVbJ2F0dHJpYnV0ZV9pZCddLAoJCQkJJ3Byb2R1Y3RfaWQnID0+ICRhdHRyaWJ1dGVbJ3Byb2R1Y3RfaWQnXSwKCQkJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sCgkJCQknbmFtZScgPT4gJGF0dHJpYnV0ZW5hbWUKCQkJKSwKCQkJJHRoaXMtPkxhbmcoJ21lc3NhZ2VfYXJleW91c3VyZWF0dHJpYnV0ZScsICRhdHRyaWJ1dGVuYW1lKQoJCSk7CgkJJHByb2R1Y3RfYXR0cmlidXRlc19saXN0W10gPSAkYXR0cmlidXRlOwoJfQoJJGF0dHJpYnV0ZXNbJ2xpc3QnXSA9ICRwcm9kdWN0X2F0dHJpYnV0ZXNfbGlzdDsKfQovKioKICogUHJlcGFyZSBJbWFnZXMgVGFiCiAqLwokaW1hZ2VzWydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAncHJvZHVjdF9pbWFnZXMnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTsKJGltYWdlc1snc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ2FkZGltYWdlJykpOwokaW1hZ2VzWydjYW5jZWwnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsJykpOwokaW1hZ2VzWydlbmRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKLy8gTWVzc2FnZXMgY29tZSBmcm9tIGRlbGV0aW9uIChvciBvdGhlciBwbGFjZXMpLiBTbyBzaG93IGl0LgokaW1hZ2VzWydtZXNzYWdlJ10gPSBpc3NldCgkaW1hZ2VzWydtZXNzYWdlJ10pID8gJGltYWdlc1snbWVzc2FnZSddIDogJyc7Ci8vIFByZXBhcmUgbmFtZSBvZiBwcm9kdWN0IHNvIHRoYXQgY2FuIGJlIHNob3duIGFib3ZlIGltYWdlcy4gSXMgZWFzeSBmb3IgdXNlciB0byBzZWUgZm9yIHdoaWNoIHByb2R1Y3Qgb25lIGlzIGJ1c3kKJGltYWdlc1snbmFtZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9pbWFnZV9wcm9kdWN0X25hbWUnKSwKCSdvdXRwdXQnID0+ICRwcm9kdWN0X2RhdGFbJ25hbWUnXQopOwokaW1hZ2VzWydpbWFnZSddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdjb2x1bW5faW1hZ2VfbmFtZScpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRGaWxlKCRpZCwgJ2ltYWdlJywgJycsIDQwKQopOwokaW1hZ2VzWydkZXNjcmlwdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9pbWFnZV9kZXNjcmlwdGlvbicpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lkZXNjcmlwdGlvbicsICRwcm9kdWN0X2RhdGFbJ25hbWUnXSwgJycsIDI1NSwgJ3N0eWxlPSJ3aWR0aDo5NSUiJykKKTsKJGltYWdlc1snY3VycmVudF9jYXRlZ29yeV9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY3VycmVudF9jYXRlZ29yeV9pZCcsICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSkKKTsKJGltYWdlc1sncHJvZHVjdF9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAncHJvZHVjdF9pZCcsICRwYXJhbXNbJ3Byb2R1Y3RfaWQnXSkKKTsKLy8gQnVpbGQgbGlzdCBvZiBhdmFpbGFibGUgaW1hZ2VzCiRpbWFnZXNbJ25hbWVjb2x1bW4nXSA9ICR0aGlzLT5MYW5nKCdjb2x1bW5faW1hZ2VfbmFtZScpOwokaW1hZ2VzWydkZXNjcmlwdGlvbmNvbHVtbiddID0gJHRoaXMtPkxhbmcoJ2NvbHVtbl9pbWFnZV9kZXNjcmlwdGlvbicpOwokaW1hZ2VzWydub19pbWFnZXNfYXZhaWxhYmxlJ10gPSAkdGhpcy0+TGFuZygnbm9faW1hZ2VzX2F2YWlsYWJsZScpOwoKJHByb2R1Y3RfaW1hZ2VfbGlzdCA9IGFycmF5KCk7Ci8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgaW1hZ2VzIGZvciB0aGUgY3VycmVudCBwcm9kdWN0LiBJZiBub3QgY2hlY2tlZCwgdGhlIGZvcmVhY2ggcnVucyBpbnRvIGFuIGVycm9yCiRpbWFnZXNbJ2l0ZW1jb3VudCddID0gMDsKaWYgKGlzc2V0KCRwcm9kdWN0X2RhdGFbJ2ltYWdlcyddKSkgJGltYWdlc1snaXRlbWNvdW50J10gPSBjb3VudCgkcHJvZHVjdF9kYXRhWydpbWFnZXMnXSk7CmlmICgkaW1hZ2VzWydpdGVtY291bnQnXSA+IDApIHsKCWZvcmVhY2ggKCRwcm9kdWN0X2RhdGFbJ2ltYWdlcyddIGFzICRpbWFnZSkgewoKCQkkcGFyYW1zWydjdXJyZW50X3Byb2R1Y3RfaW1hZ2VzX2lkJ10gPSBpc3NldCgkcGFyYW1zWydjdXJyZW50X3Byb2R1Y3RfaW1hZ2VzX2lkJ10pID8gJHBhcmFtc1snY3VycmVudF9wcm9kdWN0X2ltYWdlc19pZCddIDogTlVMTDsKCgkJJGltYWdlWydwcm9kdWN0aW1hZ2UnXSA9ICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfdXJsJ10gLiAnLycgLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX3Byb2R1Y3QnKSAuICRpbWFnZVsnaW1hZ2UnXTsKCQkkaW1hZ2VbJ2ltYWdlaGVpZ2h0J10gPSAnNzAnOyAvLyA8LS0gU2hvdWxkIGJlIG1vdmVkIGludG8gYSBwcmVmZXJlbmNlCgkJJGltYWdlWydpbWFnZSddID0gJGltYWdlWydpbWFnZSddOwoJCSRpbWFnZVsnZGVzY3JpcHRpb24nXSA9ICRpbWFnZVsnZGVzY3JpcHRpb24nXTsKCQkkaW1hZ2VbJ2xpbmtfZWRpdCddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCSRpZCwKCQkJJ3Byb2R1Y3RfaW1hZ2VfZWRpdCcsCgkJCSRyZXR1cm5pZCwKCQkJJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCd0ZXh0X2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgKCQkJCSdjdXJyZW50X3Byb2R1Y3RfaW1hZ2VzX2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X3Byb2R1Y3RfaW1hZ2VzX2lkJ10sCgkJCQknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddLAoJCQkJJ3Byb2R1Y3RfaW1hZ2VzX2lkJyA9PiAkaW1hZ2VbJ3Byb2R1Y3RfaW1hZ2VzX2lkJ10KCQkJKQoJCSk7CgkJJGltYWdlWydsaW5rX2RlbGV0ZSddID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCSRpZCwKCQkJJ3Byb2R1Y3RfaW1hZ2VfZGVsZXRlJywKCQkJJHJldHVybmlkLAoJCQkkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygndGV4dF9kZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgKCQkJCSdwcm9kdWN0X2ltYWdlc19pZCcgPT4gJGltYWdlWydwcm9kdWN0X2ltYWdlc19pZCddLAoJCQkJJ3Byb2R1Y3RfaWQnID0+ICRpbWFnZVsncHJvZHVjdF9pZCddLAoJCQkJJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwKCQkJCSdpbWFnZScgPT4gJGltYWdlWydpbWFnZSddCgkJCSksCgkJCSR0aGlzLT5MYW5nKCdtZXNzYWdlX2FyZXlvdXN1cmVpbWFnZScsICRpbWFnZVsnaW1hZ2UnXSkKCQkpOwoJCSRwcm9kdWN0X2ltYWdlc19saXN0W10gPSAkaW1hZ2U7Cgl9CgkkaW1hZ2VzWydsaXN0J10gPSAkcHJvZHVjdF9pbWFnZXNfbGlzdDsKfQoKLyoqCiAqIFNob3cgcGFnZXMKICovCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3Byb2R1Y3QnLCAkdGhpcy0+TGFuZygnbGFiZWxfdGFiX3Byb2R1Y3QnKSwgKCRhY3RpdmVfdGFiID09ICdwcm9kdWN0JykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3JpZXMnLCAkdGhpcy0+TGFuZygnbGFiZWxfdGFiX3Byb2R1Y3RfY2F0ZWdvcmllcycpLCAoJGFjdGl2ZV90YWIgPT0gJ2NhdGVnb3JpZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYXR0cmlidXRlcycsICR0aGlzLT5MYW5nKCdsYWJlbF90YWJfYXR0cmlidXRlcycpLCAoJGFjdGl2ZV90YWIgPT0gJ2F0dHJpYnV0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaW1hZ2VzJywgJHRoaXMtPkxhbmcoJ2xhYmVsX3RhYl9pbWFnZXMnKSwgKCRhY3RpdmVfdGFiID09ICdpbWFnZXMnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwplY2hvICJcbjwhLS0gRnJvbSBwcm9kdWN0IC0tPlxuIjsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3Byb2R1Y3QnLCAkcGFyYW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9kdWN0JywgJHByb2R1Y3QpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Byb2R1Y3RfZWRpdC50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICJcbjwhLS0gRnJvbSBjYXRlZ29yaWVzIC0tPlxuIjsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2NhdGVnb3JpZXMnLCAkcGFyYW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywgJGNhdGVnb3JpZXMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Byb2R1Y3RfY2F0ZWdvcmllcy50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICJcbjwhLS0gRnJvbSBhdHRyaWJ1dGVzIC0tPlxuIjsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2F0dHJpYnV0ZXMnLCAkcGFyYW1zKTsKJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJ1dGVzJywgJGF0dHJpYnV0ZXMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Byb2R1Y3RfYXR0cmlidXRlcy50cGwnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICJcbjwhLS0gRnJvbSBpbWFnZXMgLS0+XG4iOwplY2hvICR0aGlzLT5TdGFydFRhYignaW1hZ2VzJywgJHBhcmFtcyk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VzJywgJGltYWdlcyk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHJvZHVjdF9pbWFnZXMudHBsJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.product_images.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGlzIGNhbGxlZCBmcm9tIHByb2R1Y3RfZWRpdCwgd2hlbiBidXR0b24gYWRkIGltYWdlIGlzIHVzZWQKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXSA9PSAkdGhpcy0+TGFuZygnYWRkaW1hZ2UnKSkgewoKCS8vIEJ1aWxkIHRoZSBwYXRoIHdlIHdpbGwgYmUgdXBsb2FkaW5nIHRoZSBpbWFnZSB0bwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCSRwYXRoID0gJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc19wYXRoJ10gLiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX3Byb2R1Y3QnKTsKCgoJLy8gTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgY2FuIGJlIGZvdW5kLiBDcmVhdGUgaXQsIGVycm9yIGhhbmRsaW5nIHdpbGwgY292ZXIgYW55IHByb2JsZW1zIGZvdW5kCgkkZm9sZGVyZXhpc3RzID0gKGlzX2RpcigkcGF0aCkpID8gdHJ1ZSA6ICR0aGlzLT5jcmVhdGVGb2xkZXIoJHBhdGgpOwoKCWlmICgkZm9sZGVyZXhpc3RzICYmIGNvdW50KCRfRklMRVMpID4gMCkgewoJCWZvcmVhY2ggKCRfRklMRVMgYXMgJHVwbG9hZGZpbGUpIHsKCQkJaWYgKGVtcHR5KCR1cGxvYWRmaWxlWyduYW1lJ10pKSBjb250aW51ZTsKCQkJLy8gUmVwbGFjZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycyBieSB1bmRlcnNjb3JlcwoJCQkvLyBBbmQgbWFrZSBzdXJlIHRoYXQgbmFtZSBpcyBub3QgdG8gbG9uZyAoYnVnIyA3MzE1KQoJCQkkZXhwX25hbWUgPSBleHBsb2RlKCcuJywgJHVwbG9hZGZpbGVbJ25hbWUnXSk7CgkJCSRleHBfZXh0ID0gJGV4cF9uYW1lW2NvdW50KCRleHBfbmFtZSkgLSAxXTsKCQkJJGV4cF9uYW1lW2NvdW50KCRleHBfbmFtZSkgLSAxXSA9ICIiOwoJCQkkdXBsb2FkZmlsZVsnbmFtZSddID0gc3Vic3RyKAoJCQkJaW1wbG9kZSgnLicsICRleHBfbmFtZSksCgkJCQkwLAoJCQkJMjAKCQkJKSAuICRleHBfZXh0OwoJCQkkcmVzID0gJHRoaXMtPmNvcHlGaWxlKCR1cGxvYWRmaWxlWyd0bXBfbmFtZSddLCAkcGF0aCwgJHVwbG9hZGZpbGVbJ25hbWUnXSwgdHJ1ZSk7CgoJCQlpZiAoISRyZXMpIHsKCQkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcmltYWdldXBsb2FkJyk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJJHBhcmFtc1snaW1hZ2UnXSA9ICR1cGxvYWRmaWxlWyduYW1lJ107CgkJCWlmICgkdXBsb2FkZmlsZVsnbmFtZSddICE9ICcnKSB7CgkJCQkvLyBOb3cgdGhhdCBhbGwgaW5mbyBpcyBrbm93biwgaW5zZXJ0IGEgcmVjb3JkIGluIHRoZSBpbWFnZXMgZGF0YWJhc2UKCQkJCSR0aGlzLT5wcm9kdWN0cy0+Q3JlYXRlSW1hZ2UoJHBhcmFtcyk7CgkJCQkvLyBQcmVwYXJlIHRoZSBjb25uZWN0ZWQgdGh1bWJuYWlsIHNvIGl0IGNhbiBiZSByZXF1ZXN0ZWQgYXQgZnJvbnQgZW5kLgoJCQkJJHRodW1id2lkdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndG53aWR0aF9wcm9kdWN0JywgJzEwMCcpOwoJCQkJJHRodW1iaGVpZ2h0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RuaGVpZ2h0X3Byb2R1Y3QnLCAnMTAwJyk7CgkJCQkkdGhpcy0+QnVpbGRUaHVtYigkdXBsb2FkZmlsZVsnbmFtZSddLCAkcGF0aCwgJHRodW1id2lkdGgsICAkdGh1bWJoZWlnaHQpOwoJCQkJLy8gUHJlcGFyZSBhIG1lc3NhZ2UgdG8gYmUgc2hvd24gb24gdG9wIG9mIHRoZSBpbWFnZXMgb3ZlcnZpZXcKCQkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXNzYWdlX2ltYWdlYWRkZWQnLCAkdXBsb2FkZmlsZVsnbmFtZSddKTsKCQkJfSBlbHNlIHsKCQkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXNzYWdlX25vaW1hZ2V0b3VwbG9hZCcpOwoJCQl9CgkJfQoJfSBlbHNlIHsKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbm9fZm9sZGVyX2F2YWlsYWJsZScsICRwYXRoKTsKCX0KCS8vIFJlZGlyZWN0IGJhY2sgdG8gaW1hZ2VzLCBzbyB3ZSBjYW4gc2VlIHRoZSByZXN1bHQKCSRwYXJhbXMgPSBhcnJheSgKCQkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLAoJCSdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10sCgkJJ2FjdGl2ZV90YWInID0+ICdpbWFnZXMnLAoJCSd0YWJfbWVzc2FnZScgPT4gJHBhcmFtc1snbWVzc2FnZSddCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ3Byb2R1Y3RfZWRpdCcsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgJiYgJHBhcmFtc1snY2FuY2VsJ10gPT0gJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSB7CgkkcGFyYW1zID0gYXJyYXkoCgkJJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJywKCQknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddCgkpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.product_image_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGlzIGNhbGxlZCBmcm9tIHByb2R1Y3RfZWRpdCwgd2hlbiBpY29uIGRlbGV0ZSBpbWFnZSBpcyB1c2VkCgovLyBCdWlsZCB0aGUgcGF0aCB0aGUgaW1hZ2Ugd2FzIHVwbG9hZGVkIHRvCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgokcGF0aCA9ICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfcGF0aCddIC4gJy8nIC4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlcGF0aF9wcm9kdWN0Jyk7CgokbmFtZSA9ICRwYXRoIC4gJHBhcmFtc1snaW1hZ2UnXTsKLy8gU2l0ZSB1bWFzayBzZXQgdG8gMDAyMiB3b3JrcyBvayBkdXJpbmcgdGVzdHMsIHdoZW4gcGVybWlzc2lvbiBkZW5pZWQgd2FzIHN0YXRlZC4KaWYgKCR0aGlzLT5kZWxGaWxlKCRuYW1lKSkgewoJZWNobyAnRmlsZSAnIC4gJG5hbWUgLiAnIGRlbGV0ZWQ8YnI+JzsKfSBlbHNlIHsKCWVjaG8gJ0Vycm9yIGR1cmluZyBkZWxldGlvbiBvZiBmaWxlOiAnIC4gJG5hbWUgLiAnPGJyPic7Cn0KJG5hbWUgPSAkcGF0aCAuICd0bl8nIC4gJHBhcmFtc1snaW1hZ2UnXTsKaWYgKCR0aGlzLT5kZWxGaWxlKCRuYW1lKSkgewoJZWNobyAnVGh1bWJuYWlsICcgLiAkbmFtZSAuICcgZGVsZXRlZDxicj4nOwp9IGVsc2UgewoJZWNobyAnRXJyb3IgZHVyaW5nIGRlbGV0aW9uIG9mIHRodW1ibmFpbDogJyAuICRuYW1lIC4gJzxicj4nOwp9CgovLyBOb3cgdGhhdCBhbGwgaW5mbyBpcyBrbm93biwgaW5zZXJ0IGEgcmVjb3JkIGluIHRoZSBpbWFnZXMgZGF0YWJhc2UKJHRoaXMtPnByb2R1Y3RzLT5EZWxldGVJbWFnZSgkcGFyYW1zKTsKJHBhcmFtcyA9IGFycmF5KAoJLy8gUHJvZHVjdCBpZCwgYWx3YXlzIGhhbmR5IHRvIHBhc3MuIEluIHRoaXMgY2FzZSBuZWVkZWQgdG8gZ2V0IGFsbCB0aGUgY29ubmVjdGVkIGluZm9ybWF0aW9uCgkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLAoJLy8gUGFzcyB0aGUgY3VycmVudCBjYXRlZ29yeSBvdGhlcndpc2UgdXNlciB3aWxsIGJlIGJyb3VnaHQgdG8gcm9vdCBvbmNlIGNhbmNlbCBpcyBwcmVzc2VkCgknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddLAoJLy8gUHJlcGFyZSBhIG1lc3NhZ2UgdG8gYmUgc2hvd24gb24gdG9wIG9mIHRoZSBpbWFnZXMgb3ZlcnZpZXcKCSd0YWJfbWVzc2FnZScgPT4gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfaW1hZ2VkZWxldGVkJywgJHBhcmFtc1snaW1hZ2UnXSksCgkvLyBSZWRpcmVjdCBiYWNrIHRvIGltYWdlcywgc28gd2UgY2FuIHNlZSB0aGUgcmVzdWx0CgknYWN0aXZlX3RhYicgPT4gJ2ltYWdlcycKKTsKJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ3Byb2R1Y3RfZWRpdCcsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.product_image_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gVGhpcyBwcm9ncmFtIGFsbG93cyB0aGUgdXNlciB0byBjaGFuZ2UgaW1hZ2UgaW5mb3JtYXRpb24KaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXSA9PSAkdGhpcy0+TGFuZygnc3VibWl0JykpIHsKCSR0aGlzLT5wcm9kdWN0cy0+VXBkYXRlSW1hZ2UoJHBhcmFtcyk7CgkkcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAnaW1hZ2VzJzsKCSRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnaW1hZ2VlZGl0ZWQnKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdwcm9kdWN0X2VkaXQnLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgJiYgJHBhcmFtc1snY2FuY2VsJ10gPT0gJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAncHJvZHVjdF9lZGl0JywgJHJldHVybmlkLCBhcnJheSgKCQkndGFiX21lc3NhZ2UnID0+ICR0aGlzLT5MYW5nKCdjYW5jZWwnKSwKCQkncHJvZHVjdF9pZCcgPT4gJHBhcmFtc1sncHJvZHVjdF9pZCddLAoJCSdhY3RpdmVfdGFiJyA9PiAnaW1hZ2VzJywKCQknY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHBhcmFtc1snY3VycmVudF9jYXRlZ29yeV9pZCddCgkpKTsKfQovLyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBmb3IgcGFzc2VkIGltYWdlIGlkLiBBcnJheSB3aWxsIGhvbGQgaW5mb3JtYXRpb24gYWZ0ZXJ3YXJkcwppZiAoaXNzZXQoJHBhcmFtc1sncHJvZHVjdF9pbWFnZXNfaWQnXSkpIHsKCSRwcm9kdWN0X2ltYWdlX2RhdGEgPSAkdGhpcy0+cHJvZHVjdHMtPkdldEltYWdlKCRwYXJhbXNbJ3Byb2R1Y3RfaW1hZ2VzX2lkJ10pOwp9CgovLyBQcmVwYXJlIG5leHQgc2NyZWVuIGluZm9ybWF0aW9uCiRpbWFnZSA9IGFycmF5KCk7CiRpbWFnZVsnc3RhcnRmb3JtJ10gPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3Byb2R1Y3RfaW1hZ2VfZWRpdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnJyk7CiRpbWFnZVsnc3VibWl0J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKTsKJGltYWdlWydjYW5jZWwnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsJykpOwokaW1hZ2VbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgokaW1hZ2VbJ25hbWUnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnY29sdW1uX2ltYWdlX25hbWUnKSwKCSdvdXRwdXQnID0+ICRwcm9kdWN0X2ltYWdlX2RhdGFbJ2ltYWdlJ10KKTsKJGltYWdlWydkZXNjcmlwdGlvbiddID0gYXJyYXkoCgknbGFiZWwnID0+ICR0aGlzLT5MYW5nKCdsYWJlbF9pbWFnZV9kZXNjcmlwdGlvbicpLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Rlc2NyaXB0aW9uJywgJHByb2R1Y3RfaW1hZ2VfZGF0YVsnZGVzY3JpcHRpb24nXSwgNDAsIDI1NSwgJ3N0eWxlPSJ3aWR0aDo5NSUiJykKKTsKJGltYWdlWydwcm9kdWN0X2ltYWdlc19pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAncHJvZHVjdF9pbWFnZXNfaWQnLCAkcGFyYW1zWydwcm9kdWN0X2ltYWdlc19pZCddKQopOwokaW1hZ2VbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAnJywKCSdpbnB1dCcgPT4gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnLCAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pCik7CiRpbWFnZVsncHJvZHVjdF9pZCddID0gYXJyYXkoCgknbGFiZWwnID0+ICcnLAoJJ2lucHV0JyA9PiAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAncHJvZHVjdF9pZCcsICRwcm9kdWN0X2ltYWdlX2RhdGFbJ3Byb2R1Y3RfaWQnXSkKKTsKCi8vIEJ1aWxkIHRoZSB0ZW1wbGF0ZSB0byBzaG93CiRzbWFydHktPmFzc2lnbignaW1hZ2UnLCAkaW1hZ2UpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3Byb2R1Y3RfaW1hZ2VfZWRpdC50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.sitemap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdHJhbnMgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1RyYW5zbGl0QWxpYXMnKTsKCiRkZXRhaWxwYWdlID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKSB7CiAgICAkbWFuYWdlciA9IGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogICAgaWYgKGlzc2V0KCRub2RlKSkgewogICAgICAgICRjb250ZW50ID0gJiRub2RlLT5HZXRDb250ZW50KCk7CiAgICAgICAgaWYgKGlzc2V0KCRjb250ZW50KSkgewogICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50LT5JZCgpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgJG5vZGUgPSAmJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pOwogICAgICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkcGFyYW1zWydkZXRhaWxwYWdlJ107CiAgICAgICAgfQogICAgfQp9CgovLyBEaXNwbGF5IGluZm9ybWF0aW9uIG9mIHByb2R1Y3RzCiRxdWVyeSA9ICdTRUxFQ1QgYHByb2R1Y3RfaWRgLCBgbmFtZWAgIEZST00gYCcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0c2AgV0hFUkUgYGFjdGl2ZWAgPSAxCU9SREVSIEJZIGBwcm9kdWN0X2lkYCc7CgokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKCndoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoKICAgIGlmICgkdHJhbnMpIHsKICAgICAgICAkcHJvZF9uYW1lID0gJHRyYW5zLT5UcmFuc2xpdCgkcm93WyduYW1lJ10pOwogICAgfSBlbHNlIHsKICAgICAgICAkcHJvZF9uYW1lID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93WyduYW1lJ10pOwogICAgfQoKICAgICRwcmV0dHl1cmwgPSAnU2ltcGxlU2hvcC9wcm9kLycgLiAkcm93Wydwcm9kdWN0X2lkJ10gLiAnLycgLiAoJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCkgLiAnLycgLiAkcHJvZF9uYW1lOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10pKSB7CiAgICAgICAgJHByZXR0eXVybCAuPSAnL2QsJyAuICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CiAgICB9CgogICAgJG9uZXJvdy0+ZGV0YWlsX3VybCA9ICR0aGlzLT5DcmVhdGVMaW5rKAogICAgICAgICRpZCwKICAgICAgICAnZmVfcHJvZHVjdF9kZXRhaWwnLAogICAgICAgICRkZXRhaWxwYWdlICE9ICcnID8gJGRldGFpbHBhZ2UgOiAkcmV0dXJuaWQsCiAgICAgICAgJycsCiAgICAgICAgYXJyYXkoJ3Byb2R1Y3RfaWQnID0+ICRyb3dbJ3Byb2R1Y3RfaWQnXSksCiAgICAgICAgJycsCiAgICAgICAgdHJ1ZSwKICAgICAgICBmYWxzZSwKICAgICAgICAnJywKICAgICAgICB0cnVlLAogICAgICAgICRwcmV0dHl1cmwKICAgICk7CgogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCi8vIERpc3BsYXkgaW5mb3JtYXRpb24gb2YgY2F0ZWdvcmllcwoKJHF1ZXJ5MiA9ICdTRUxFQ1QgYGNhdGVnb3J5X2lkYCwgYG5hbWVgICBGUk9NIGAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfY2F0ZWdvcmllc2AgV0hFUkUgYGFjdGl2ZWAgPSAxCU9SREVSIEJZIGBjYXRlZ29yeV9pZGAnOwoKJGRicmVzdWx0MiA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkyKTsKCndoaWxlICgkZGJyZXN1bHQyICYmICRyb3cyID0gJGRicmVzdWx0Mi0+RmV0Y2hSb3coKSkgewoKICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCiAgICBpZiAoJHRyYW5zKSB7CiAgICAgICAgJGNhdF9uYW1lID0gJHRyYW5zLT5UcmFuc2xpdCgkcm93MlsnbmFtZSddKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJGNhdF9uYW1lID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93MlsnbmFtZSddKTsKICAgIH0KCiAgICAkcHJldHR5dXJsID0gJ1NpbXBsZVNob3AvY2F0LycgLiAkcm93MlsnY2F0ZWdvcnlfaWQnXSAuICcvJyAuICgkZGV0YWlscGFnZSAhPSAnJyA/ICRkZXRhaWxwYWdlIDogJHJldHVybmlkKSAuICcvJyAuICRjYXRfbmFtZTsKICAgIGlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgewogICAgICAgICRwcmV0dHl1cmwgLj0gJy9kLCcgLiAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwogICAgfQoKICAgICRvbmVyb3ctPmRldGFpbF91cmwgPSAkdGhpcy0+Q3JlYXRlTGluaygKICAgICAgICAkaWQsCiAgICAgICAgJ2ZlX3Byb2R1Y3RfbGlzdCcsCiAgICAgICAgJGRldGFpbHBhZ2UgIT0gJycgPyAkZGV0YWlscGFnZSA6ICRyZXR1cm5pZCwKICAgICAgICAnJywKICAgICAgICBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRyb3cyWydjYXRlZ29yeV9pZCddKSwKICAgICAgICAnJywKICAgICAgICB0cnVlLAogICAgICAgIGZhbHNlLAogICAgICAgICcnLAogICAgICAgIHRydWUsCiAgICAgICAgJHByZXR0eXVybAogICAgKTsKCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKY21zbXMoKS0+c2V0X2NvbnRlbnRfdHlwZSgndGV4dC94bWwnKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdzaXRlbWFwLnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.sku_add.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJLy8gVXNlciBwcmVzc2VkIGNvbnRpbnVlIHNvIHNhdmUgdGhlIHNrdSBpbmZvcm1hdGlvbgoJJHRoaXMtPnByb2R1Y3RzLT5DcmVhdGVTS1UoJHBhcmFtcyk7CgoJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnc2t1cycpOwoJJHBhcmFtc1sndGFiX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdza3VhZGRlZCcpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3NrdXMnLCk7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQoKJHNrdSA9IGFycmF5KCk7CiRza3VbJ3N0YXJ0Zm9ybSddID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdza3VfYWRkJywgJHJldHVybmlkLCAncG9zdCcpOwokc2t1WydzdWJtaXQnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnY29udGludWUnKSk7CiRza3VbJ2NhbmNlbCddID0gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRza3VbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgoKJHNrdVsnc2t1J10gPSBhcnJheSgKCSdsYWJlbCcgPT4gJHRoaXMtPkxhbmcoJ2xhYmVsX3NrdV9uYW1lJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc2t1JywgJycsIDIwLCAyMCwgJ3JlcXVpcmVkJykKKTsKJHNrdVsnZGVzY3JpcHRpb24nXSA9IGFycmF5KAoJJ2xhYmVsJyA9PiAkdGhpcy0+TGFuZygnbGFiZWxfc2t1X2Rlc2NyaXB0aW9uJyksCgknaW5wdXQnID0+ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZGVzY3JpcHRpb24nLCAnJywgNjAsIDEwMCwgJ3JlcXVpcmVkJykKKTsKCiRzbWFydHktPmFzc2lnbignc2t1JywgJHNrdSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2t1X2FkZC50cGwnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.sku_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHNrdW1lc3NhZ2UgPSAkdGhpcy0+cHJvZHVjdHMtPkRlbGV0ZVNLVSgkcGFyYW1zWydza3UnXSk7CiRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYicgPT4gJ3NrdXMnLCAnc2t1bWVzc2FnZScgPT4gJHNrdW1lc3NhZ2UpOwokcGFyYW1zWyd0YWJfbWVzc2FnZSddID0gJHNrdW1lc3NhZ2U7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.sku_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJJHRoaXMtPnByb2R1Y3RzLT5VcGRhdGVTS1UoJHBhcmFtcyk7CgkKCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYic9Pidza3VzJywgJ3RhYl9tZXNzYWdlJyA9PiAkdGhpcy0+TGFuZygnc2t1dXBkYXRlZCcpKTsJCgkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9CmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSRwYXJhbXMgPSBhcnJheSgnYWN0aXZlX3RhYic9Pidza3VzJyk7CgkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyApOwp9Ci8vIEFsbCBhY3Rpb25zIGhhbmRsZWQsIG5vdyBnZXQgYWxsIHRoZSBpbmZvcm1hdGlvbiBsaW5rZWQgdG8gdGhlIFN0b2NrIEtlZXBpbmcgVW5pdAppZiAoaXNzZXQoJHBhcmFtc1snc2t1J10pKSB7Cgkkc2t1X2RhdGEgPSAkdGhpcy0+cHJvZHVjdHMtPkdldFNLVSgkcGFyYW1zWydza3UnXSk7Cn0KCiRza3UgPSBhcnJheSgpOwokc2t1WydzdGFydGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoICRpZCwgJ3NrdV9lZGl0JywgJHJldHVybmlkLCAncG9zdCcpOwokc2t1WydzdWJtaXQnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKTsKJHNrdVsnY2FuY2VsJ10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5MYW5nKCdjYW5jZWwnKSk7CiRza3VbJ2VuZGZvcm0nXSA9ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CiRza3VbJ3NrdSddID0gYXJyYXkoCgknbGFiZWwnPT4nJywKCSdpbnB1dCc9PiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbiggJGlkLCAnc2t1JywgJHBhcmFtc1snc2t1J10pCik7CiRza3VbJ25hbWUnXSA9IGFycmF5KAoJJ2xhYmVsJz0+JHRoaXMtPkxhbmcoJ2xhYmVsX3NrdV9uYW1lJyksCgknaW5wdXQnPT4kc2t1X2RhdGFbJ3NrdSddCik7CiRza3VbJ2Rlc2NyaXB0aW9uJ10gPSBhcnJheSgKCSdsYWJlbCc9PiR0aGlzLT5MYW5nKCdsYWJlbF9za3VfZGVzY3JpcHRpb24nKSwKCSdpbnB1dCc9PiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2Rlc2NyaXB0aW9uJywgJHNrdV9kYXRhWydkZXNjcmlwdGlvbiddLCA2MCwgMTAwLCAnY2xhc3M9ImRlZmF1bHRmb2N1cyInKQopOwokc21hcnR5LT5hc3NpZ24oJ3NrdScsICRza3UpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3NrdV9lZGl0LnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.switchstatus.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIE5vIGRpcmVjdCBhY2Nlc3MKJGdDbXMgPSBjbXNtcygpOwppZiAoIWlzX29iamVjdCgkZ0NtcykpIGV4aXQ7CgovLyBDaGVjayBwZXJtaXNzaW9uCmlmICgKCSEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpICYmCgkhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX01haW50YWluUHJvZHVjdHMnKQopIHsKCS8vIFNob3cgYW4gZXJyb3IgbWVzc2FnZQoJZWNobyAkdGhpcy0+U2hvd0Vycm9yKCR0aGlzLT5MYW5nKCdhY2Nlc3NfZGVuaWVkJykpOwp9Ci8vIFVzZXIgaGFzIHN1ZmZpY2llbnQgcHJpdmlsZWdlcwplbHNlIHsKCSRyZWRpcmVjdHRvID0gJ2RlZmF1bHRhZG1pbic7Cglzd2l0Y2ggKCRwYXJhbXNbJ3RhYmxlJ10pIHsKCQljYXNlICdBdHRyaWJ1dGVzJzoKCQkJJGFjdGl2ZSA9ICgkcGFyYW1zWydhY3RpdmUnXSA9PSAwKSA/IDEgOiAwOwoJCQkkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMgU0VUIGFjdGl2ZSA9ID8gCgkJCQlXSEVSRSBhdHRyaWJ1dGVfaWQgPSA/JzsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGFjdGl2ZSwgJHBhcmFtc1snYXR0cmlidXRlX2lkJ10pKTsKCQkJJHJlZGlyZWN0dG8gPSAncHJvZHVjdF9lZGl0JzsKCQkJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnYXR0cmlidXRlcycsICdwcm9kdWN0X2lkJyA9PiAkcGFyYW1zWydwcm9kdWN0X2lkJ10sICdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pOwoJCQlicmVhazsKCQljYXNlICdBdHRyaWJ1dGVzRGlzcGxheSc7CgkJCSRkaXNwbGF5b25seSA9ICgkcGFyYW1zWydkaXNwbGF5b25seSddID09IDApID8gMSA6IDA7CgkJCSRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcyBTRVQgZGlzcGxheW9ubHkgPSA/IAoJCQkJV0hFUkUgYXR0cmlidXRlX2lkID0gPyc7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRkaXNwbGF5b25seSwgJHBhcmFtc1snYXR0cmlidXRlX2lkJ10pKTsKCQkJJHJlZGlyZWN0dG8gPSAncHJvZHVjdF9lZGl0JzsKCQkJJHBhcmFtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnYXR0cmlidXRlcycsICdwcm9kdWN0X2lkJyA9PiAkcGFyYW1zWydwcm9kdWN0X2lkJ10sICdjdXJyZW50X2NhdGVnb3J5X2lkJyA9PiAkcGFyYW1zWydjdXJyZW50X2NhdGVnb3J5X2lkJ10pOwoJCQlicmVhazsKCQljYXNlICdDYXRlZ29yaWVzJzoKCQkJJGFjdGl2ZSA9ICgkcGFyYW1zWydhY3RpdmUnXSA9PSAwKSA/IDEgOiAwOwoJCQkkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19jYXRlZ29yaWVzIFNFVCBhY3RpdmUgPSA/IAoJCQkJV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGFjdGl2ZSwgJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpOwoJCQkkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJywgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ3BhcmVudF9pZCddKTsKCQkJYnJlYWs7CgkJY2FzZSAnUHJvZHVjdHMnOgoJCQkkYWN0aXZlID0gKCRwYXJhbXNbJ2FjdGl2ZSddID09IDApID8gMSA6IDA7CgkJCSRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzIFNFVCBhY3RpdmUgPSA/IAoJCQkJV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkYWN0aXZlLCAkcGFyYW1zWydwcm9kdWN0X2lkJ10pKTsKCQkJJHBhcmFtcyA9IGFycmF5KAoJCQkJJ2FjdGl2ZV90YWInID0+ICdjYXRlZ29yaWVzJywgJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnID0+ICRwYXJhbXNbJ2N1cnJlbnRfY2F0ZWdvcnlfaWQnXSwKCQkJCSdjdXJyZW50X3Byb2R1Y3RfaWQnID0+ICRwYXJhbXNbJ3BhcmVudF9pZCddCgkJCSk7CgkJCWJyZWFrOwoJCWRlZmF1bHQ6CgkJCWJyZWFrOwoJfQoKCS8vIFJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSBhZG1pbiBzY3JlZW4gdGhhdCBvbmUgY2FtZSBmcm9tCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAkcmVkaXJlY3R0bywgJHJldHVybmlkLCAkcGFyYW1zKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.templates_update.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBNb2R1bGU6IFNob3AgTWFkZSBTaW1wbGUgLSBBIHByb2R1Y3QgbWFpbnRlbmFuY2UgbW9kdWxlIGZvciBDTVMgLSBDTVMgTWFkZSBTaW1wbGUKIyBDb3B5cmlnaHQgKGMpIDIwMDggYnkgRHVrZXRvd24gPGR1a2V0b3duQG1hbnRveC5ubD4KIwojIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIHRlbXBsYXRlcyBhcyBzZXQgaW4gdGhlIGFkbWluIHBhcnQgb2YgbW9kdWxlIFNob3AgTWFkZSBTaW1wbGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc21zCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkbWluaXN0ZXIgU2ltcGxlU2hvcCcpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYXRsaXN0X3RlbXBsYXRlJ10pICYmICFlbXB0eSgkcGFyYW1zWydjYXRsaXN0X3RlbXBsYXRlJ10pKSB7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGxpc3RfdGVtcGxhdGUnLCAkcGFyYW1zWydjYXRsaXN0X3RlbXBsYXRlJ10pOwp9CmlmIChpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzX3RlbXBsYXRlJ10pICYmICFlbXB0eSgkcGFyYW1zWydjYXRlZ29yaWVzX3RlbXBsYXRlJ10pKSB7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGVnb3JpZXNfdGVtcGxhdGUnLCAkcGFyYW1zWydjYXRlZ29yaWVzX3RlbXBsYXRlJ10pOwp9CmlmIChpc3NldCgkcGFyYW1zWydwcm9kZGV0YWlsX3RlbXBsYXRlJ10pICYmICFlbXB0eSgkcGFyYW1zWydwcm9kZGV0YWlsX3RlbXBsYXRlJ10pKSB7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ3Byb2RkZXRhaWxfdGVtcGxhdGUnLCAkcGFyYW1zWydwcm9kZGV0YWlsX3RlbXBsYXRlJ10pOwp9CmlmIChpc3NldCgkcGFyYW1zWydwcm9kZmVhdF90ZW1wbGF0ZSddKSAmJiAhZW1wdHkoJHBhcmFtc1sncHJvZGZlYXRfdGVtcGxhdGUnXSkpIHsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgncHJvZGZlYXRfdGVtcGxhdGUnLCAkcGFyYW1zWydwcm9kZmVhdF90ZW1wbGF0ZSddKTsKfQoKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3RlbXBsYXRlc3VwZGF0ZWQnKSk7CiRwYXJhbXNbJ3RhYl9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygndGVtcGxhdGVzdXBkYXRlZCcpOwokcGFyYW1zWydhY3RpdmVfdGFiJ10gPSAndGVtcGxhdGVzJzsKJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogICAgPGxpPlZlcnNpb24gMS4wIERlY2VtYmVyIDIwMjI8L2xpPgoJPHVsPgoJPGxpPlJld3JpdHRlbiBmb3IgY21zbXMgMi54PC9saT4KCTwvdWw+Cgk8bGk+VmVyc2lvbiAwLjMuOSA0IERlY2VtYmVyIDIwMTI8YnIgLz4KCQk8dWw+CgkJCTxsaT5MaW5rIHRvIFNpbXBsZUNhcnQgdXBkYXRlZCBzbyBwcmV0dHkgVVJMJ3MgY2FuIGJlIHVzZWQ7PC9saT4KCQkJPGxpPkxhc3QgdXNlZCBjYXRlZ29yeSBpcyByZW1lbWJlcmVkIGluIGJhY2sgZW5kOzwvbGk+CgkJCTxsaT5JbWFnZSBkZXNjcmlwdGlvbiBvZiBmaXJzdCBpbWFnZSBub3cgYXZhaWxhYmxlIGluIENhdGVnb3J5ICYgUHJvZHVjdHMgdGVtcGxhdGUgYXMgJGVudHJ5LT5pbWFnZWRlc2M7PC9saT4KCQkJPGxpPlByb2JsZW0gd2l0aCBsb25nLW5hbWVkIHByb2R1Y3QgaW1hZ2VzIChidWcjIDczMTUuIFNvbHV0aW9uIHByb3ZpZGVkIGJ5IDxhIGhyZWYiPWh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvdXNlcnMvR2FzdDAwbiIgdGFyZ2V0PSJfYmxhbmsiPkdhc3QwMG48L2E+KTwvbGk+CgkJCTxsaT5NaW5vciBjaGFuZ2VzIGluIGRlZmF1bHQgc3R5bGVzaGVldCBmb3IgdGhlIHNob3A7PC9saT4KCQkJPGxpPlZlcnNpb24gY2FuIG9ubHkgYmUgdXNlZCBhcyBvZiBDTVNNUyAxLjEwOzwvbGk+CgkJCTxsaT5SZW1vdmVkIGp1bmsgcGFyYW1ldGVyIGZyb20gcHJldHR5IHVybCB0b3dhcmRzIHByb2R1Y3QgZGV0YWlsOzwvbGk+CgkJCTxsaT5BZGRlZCBleHRyYSBleGFtcGxlIGluIGNhdGVnb3J5L3Byb2R1Y3RsaXN0IHRlbXBsYXRlIGZvciBtdWx0aXBsZSBjb2x1bW5zIHdpdGggcHJvZHVjdHM7PC9saT4KCQkJPGxpPkluY2x1ZGVkIGxpbmsgaW4gaGVscCB0ZXh0IHRvIHRoZSB0cmFuc2xhdGlvbnM7PC9saT4KCQkJPGxpPk5vIHJldHVybiBhZnRlciBlZGl0aW5nIGEgcHJvZHVjdCAoYnVnIyA3MzE0KS4gTmV3IGJ1dHRvbiAnU2F2ZSBhbmQgUmV0dXJuJyBzb2x2ZXMgdGhpczs8L2xpPgoJCQk8bGk+SW1hZ2VzIGZvbGRlciBub3QgY3JlYXRlZCBjb3JyZWN0bHkgKGJ1ZyMgNzMxMy4gU29sdXRpb24gcHJvdmlkZWQgYnkgPGEgaHJlZiI9aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy91c2Vycy9HYXN0MDBuIiB0YXJnZXQ9Il9ibGFuayI+R2FzdDAwbjwvYT4pLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjMuOCAxIERlY2VtYmVyIDIwMTE8YnIgLz4KCQk8dWw+CgkJCTxsaT5BZGRlZCBwYXJhbWV0ZXJzIHRvIG92ZXJjb21lIHdyb25nbHkgcGFzc2VkIG9uIGZyb250IGVuZDs8L2xpPgoJCQk8bGk+T24gdGhlIGNhdGVnb3J5IGxpc3QsIG5ldyBmaWVsZHMgYXJlIG1hZGUgYXZhaWxhYmxlOiBlbnRyeS0+Y2F0bmFtZSBhbmQgZW50cnktPmNhdGNvdW50OzwvbGk+CgkJCTxsaT5UeXBvIGNhdXNlZCBwcm9kdWN0c19pbl9yb290X2NhdGVnb3J5IG5ldmVyIHRvIGJlIHNob3duIGNvcnJlY3RseSB3aGVuIHVzaW5nIGRpc3BsYXk9Y2F0bGlzdDs8L2xpPgoJCQk8bGk+UmVzb2x2ZWQgZXJyb3Igd2hlbiBzZWFyY2ggZm9yIHByb2R1Y3Qgd2FzIHVzZWQgKGJ1ZyMgNzIxMCk7PC9saT4KCQkJPGxpPk1ha2Ugc3VyZSBubyBsb2dnaW5nIHRvIGFkbWluIGxvZyBpcyBkb25lIGJ5IHNldHRpbmcgcmVzdHJpY3RlZCBwYXJhbWV0ZXJzLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjMuNyAyMiBPY3RvYmVyIDIwMTE8YnIgLz4KCQk8dWw+CgkJCTxsaT5QcmljZSBhbmQgd2VpZ2h0IHdlcmUgbm90IHNhdmVkIGNvcnJlY3RseSBkdWUgdG8gbnVtYmVyIGZvcm1hdGluZy48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjYgMTIgT2N0b2JlciAyMDExPGJyIC8+CgkJPHVsPgoJCQk8bGk+QWxsIGNoZWNrcywgaWYgc2VhcmNoIG1vZHVsZSB3YXMgaW5zdGFsbGVkLCBhcmUgcmVtb3ZlZDs8L2xpPgoJCQk8bGk+SXRlbSBudW1iZXIgaXMgbm93IHNob3duIG9uIGxpc3Qgb2YgaXRlbXM7PC9saT4KCQkJPGxpPlNlYXJjaCBieSBpdGVtIG51bWJlciBub3cgYXZhaWxhYmxlOzwvbGk+CgkJCTxsaT5XaGVuIGFkZGluZy9jaGFuZ2luZyBhIHByb2R1Y3QgYW5kIEludmVudG9yeSBNYW5hZ2VtZW50IGlzIGluc3RhbGxlZCwgcHJvZHVjdCBleHRlbnNpb24gaW5mbyBjYW4gYmUgZW50ZXJlZCBvbiBzYW1lIHBhZ2U7PC9saT4KCQkJPGxpPk5ldyBmdW5jdGlvbiBpbiBiYWNrIGVuZCBhZGRlZDogcXVpY2sgc2VsZWN0b3IgZm9yIGVhc3kgbG9jYXRpbmcgYSBjYXRlZ29yeTs8L2xpPgoJCQk8bGk+UHJpY2UgZm9ybWF0dGluZyBmb2xsb3dzIHJ1bGVzIG9mIENhcnRNUyAoaWYgbm90IGluc3RhbGxlZCBzZWUgb3B0aW9ucykgKGZlYXR1cmUgcmVxdWVzdDojNjY1Nyk7PGJyIC8+CgkJCVdlaWdodCBmb3JtYXR0aW5nIGlzIG5vdyBjb250cm9sbGVkIGJ5IG51bWJlciBmb3JtYXR0aW5nIGluIHRoZSBvcHRpb25zLjxiciAvPgoJCQlZb3Ugd2lsbCBoYXZlIHRvIHJlbW92ZSBhbGwgJ3xudW1iZXJfZm9ybWF0OjInIHJlZmVyZW5jZXMgaW4gYWxsIFNob3BNUyB0ZW1wbGF0ZXMuPC9saT4KCQkJPGxpPk9ubHkgYWN0aXZlIHByb2R1Y3RzIGFyZSBzaG93biBpbiB0aGUgZmVhdHVyZWQgbGlzdCBvZiBwcm9kdWN0czs8L2xpPgoJCQk8bGk+UGFnaW5hdGlvbiBidWlsZCBpbiBmb3IgbGlzdCBvZiBmZWF0dXJlZCBwcm9kdWN0cyAoZmVhdHVyZSByZXF1ZXN0OiM2NzEwKTs8L2xpPgoJCQk8bGk+SW1wcm92ZWQgZmxvdyBhZnRlciBwcmVzc2luZyBjYW5jZWwgaW4gcHJvZHVjdCBlZGl0IChjb3JyZWN0IGNhdGVnb3J5IHBhdGggc2hvd24gbm93KTs8L2xpPgoJCQk8bGk+VmVyc2lvbiBwcmVwYXJlZCBmb3IgdXNlIHdpdGggQ01TTVMgdnMgMS45LjQueCBhbmQgMS4xMC48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjUgMiBBdWd1c3QgMjAxMTxiciAvPgoJCTx1bD4KCQkJPGxpPkFkZCB0byBjYXJ0IGZyb20gcHJvZHVjdCBsaXN0IHdhcyBhYmxlIHRvIGFkZCBzZWNvbmQgbGluZSB3aXRoIHNhbWUgcHJvZHVjdDs8L2xpPgoJCQk8bGk+TWlub3IgY2hhbmdlcyBzbyBtb2R1bGUgd29ya3Mgd2l0aCBQb3N0Z3Jlc3MgZGF0YWJhc2UgYXMgd2VsbCAodGhhbmtzIGdvIHRvIEJyZXR0IG9mIEJpbmFyeXN0dWRpb3MubmV0KS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjQgMTIgSnVuZSAyMDExPGJyIC8+CgkJPHVsPgoJCQk8bGk+VGltZSBvZiBkZWNyZWFzaW5nIHRoZSBpbnZlbnRvcnkgc3RvY2sgbGV2ZWwgY2FuIG5vdyBiZSBzZXQgdmlhIHByZWZlcmVuY2VzOzwvbGk+CgkJCTxsaT5QYWdpbmF0aW9uIGRpZG4ndCB3b3JrIGNvcnJlY3RseSBvbiBwcm9kdWN0IGxpc3QgcGFnZSAoYWZ0ZXIgc2VsZWN0aW5nIGNhdGVnb3J5KTs8L2xpPgoJCQk8bGk+QXR0cmlidXRlIGl0ZW0gbnVtYmVycyB3ZXJlIG5vdCBjYXBpdGFsaXplZCBhdXRvbWF0aWNhbGx5IHdoZW4gb3B0aW9uIHRvIGRvIHNvIHdhcyBvbjs8L2xpPgoJCQk8bGk+UGFnaW5hdGlvbiBkaWRuJ3Qgd29yayB3aGVuIG9ubHkgb25lIGl0ZW0gc2hvdWxkIGJlIHNob3duIHBlciBwYWdlIChidWcjIDM4ODcpOzwvbGk+CgkJCTxsaT5DYWxjdWxhdGlvbiBvZiBhdHRyaWJ1dGUgcHJpY2Ugd2FzIHdyb25nIHdoZW4gcHJpY2UgYWRqdXN0bWVudCB3YXMgJysnIG9yICctJzs8L2xpPgoJCQk8bGk+TmV3IHZhcmlhYmxlIGF2YWlsYWJsZSBpbiB0aGUgdGhlIHByb2R1Y3QgbGlzdGluZyB0ZW1wbGF0ZTogYXZhaWxhYmxlc3RvY2suIFRoaXMgaG9sZHMgdGhlIAoJCQlxdWFudGl0eSBhdmFpbGFibGUgb2YgdGhlIHByb2R1Y3QgdGhhdCBpcyBvbiBzdG9jazs8L2xpPgoJCQk8bGk+SWYgaW52ZW50b3J5IG1hbmFnZW1lbnQgbW9kdWxlIGlzIGluIHVzZSwgc2FsZXMgdHJhbnNhY3Rpb25zIGFyZSBwYXNzZWQ7PC9saT4KCQkJPGxpPkNoYW5nZWQgdGhlIG1heGltdW0gdmVyc2lvbiBvZiBDTVNNUyB0byBtYWtlIHN1cmUgbm8gcHJvYmxlbXMgd2l0aCB2ZXJzaW9uIDEuMTAgb2YgQ01TTVMuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy4zIDI2IE1heSAyMDExPGJyIC8+CgkJPHVsPgoJCQk8bGk+RXh0ZW5kZWQgbGVuZ2h0IG9mIG5hbWUgb2YgcHJvZHVjdCBpbnB1dCB0byAyNTUgaW4gdG90YWw7PC9saT4KCQkJPGxpPklmIGludmVudG9yeSB0eXBlIHByZWZlcmVuY2Ugc2V0IHRvICdOb3QgdXNlZCcsIGFsbG93IGFkZCB0byBjYXJ0IG9wdGlvbi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4zLjIgMjEgRGVjZW1iZXIgMjAxMDxiciAvPgoJCTx1bD4KCQkJPGxpPkF0dHJpYnV0ZSBkZXNjcmlwdGlvbiB3YXMgbm90IHNhdmVkIHdoZW4gYXR0cmlidXRlIHdhcyBhZGRlZDs8L2xpPgoJCQk8bGk+V2hlbiBlZGl0aW5nIGEgY2F0ZWdvcnksIHRoZSBjYXRlZ29yeSB0aGF0IGlzIGVkaXRlZCBjYW4ndCBiZSBzZXQgYXMgdGhlIHBhcmVudCBjYXRlZ29yeTs8L2xpPgoJCQk8bGk+RGVwZW5kZW50IG9uIGludmVudG9yeSBzZXR0aW5ncywgbGFiZWxzIG9mIGZpZWxkcyBvbiBwcm9kdWN0IGFuZCBhdHRyaWJ1dGUgbGV2ZWwgYXJlIHNob3duIG9yIGhpZGRlbjs8L2xpPgoJCQk8bGk+SWYgcHJvZHVjdCBpcyBkZWFjdGl2YXRlZCwgaXRzIHNlYXJjaCBpbmRleCBlbnRyaWVzIGFyZSByZW1vdmVkLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjMuMSAxNyBOb3ZlbWJlciAyMDEwPGJyIC8+CgkJPHVsPgoJCQk8bGk+V2hlbiB1bmluc3RhbGxpbmcsIHRoZSBzZWFyY2ggaW5kZXggZW50cmllcyBvZiB0aGUgcHJvZHVjdHMgYXJlIHJlbW92ZWQ7PC9saT4KCQkJPGxpPlByZWZlcmVuY2VzIG5vdyBob2xkcyBmaWVsZCB0aGF0IGFsbG93cyB0cmFja2luZyBvZiBpbnZlbnRvcnkgb24gcHJvZHVjdCBvciBhdHRyaWJ1dGUgbGV2ZWwgKFJlcXVlc3QjIDQ1MDEpOzwvbGk+CgkJCTxsaT5NYWtlIG1heCBhdHRyaWJ1dGVzIG9uIHByb2R1Y3QgbGV2ZWwgbWFpbnRhaW5hYmxlOzwvbGk+CgkJCTxsaT5Ob3QgYWN0aXZlIGF0dHJpYnV0ZXMgd2hlcmUgc2hvd24gb24gZnJvbnQgZW5kLCBmcm9tIHRoaXMgbW9tZW50IG9uIHRoaXMgaXMgbm90IHRoZSBjYXNlIGFueW1vcmUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMy4wIDYgTm92ZW1iZXIgMjAxMDxiciAvPgoJCTx1bD4KCQkJPGxpPk5hbWUgb2Ygc2hvcCBpbiBwcmVmZXJlbmNlcyBpcyBub3cgdXNlZCBpbiBkb2N1bWVudCBwcm9wZXJ0aWVzIG9mIGludm9pY2UgZ2VuZXJhdGVkIGluIENhcnQgTWFkZSBTaW1wbGU7PC9saT4KCQkJPGxpPkJpZyBjaGFuZ2Ugb24gdGhlIHBlcm1pc3Npb24gc3lzdGVtLiBOb3RlIC0tPiBBbGwgcHJldmlvdXMgU2hvcCBNYWRlIFNpbXBsZSBwZXJtaXNzaW9ucyBhcmUgZ29uZSB3aGVuIHVwZ3JhZGVkISBTb3JyeSwgdGhpcyBjb3VsZCBub3QgYmUgYXZvaWRlZDs8L2xpPgoJCQk8bGk+U2hvd2luZyBtdWx0aXBsZSBsZXZlbHMgaW4gY2F0ZWdvcmllcyBub3cgcG9zaWJsZSB3aXRoIHBhcm0gY2F0bGlzdCAoc2VlIGhlbHAgdGV4dCk7PC9saT4KCQkJPGxpPkluY2x1ZGUgcHJpY2UgZm9ybWF0aW5nIGluIGRlZmF1bHQgY2F0ZWdvcnkvcHJvZHVjdHMgdGVtcGxhdGU7PC9saT4KCQkJPGxpPkdldCByaWQgb2YgcHVibGljIG1lbWJlciB2YXJpYWJsZXMgc3VjaCBhcyAnZ2xvYmFsICRnQ21zJzs8L2xpPgoJCQk8bGk+TWluaW11bSB2ZXJzaW9uIHNldCB0byAxLjguMSBkdWUgdG8gcmVtb3ZhbCBwdWJsaWMgbWVtYmVyIHZhcmlhYmxlczs8L2xpPgoJCQk8bGk+UmVtb3ZlZCBjYWxsIHRvIHNvbWV0aW1lcyBub3Qgd29ya2luZyBleGlmX2ltYWdlOzwvbGk+CgkJCTxsaT5NYWRlIGJldHRlciB1c2Ugb2YgcGF0aCBkaXJlY3Rvcnkgc2VwYXJhdG9yOzwvbGk+CgkJCTxsaT5JbnRyb2R1Y3Rpb24gb2YgbWF4aW11bSBudW1iZXIgb2YgYXR0cmlidXRlcyBwZXIgcHJvZHVjdDs8L2xpPgoJCQk8bGk+TmV3IHByZWZlcmVuY2VzOiAnbWF4aW11bSBhdHRyaWJ1dGVzJyBhbmQgJ2FsbG93IGR1cGxpY2F0ZSBpdGVtIG51bWJlcicgYWRkZWQgdG8gcHJlZmVyZW5jZSBwYWdlOzwvbGk+CgkJCTxsaT5TaW5jZSBpdCBoYWQgdG90YWx5IG5vIGZ1bmN0aW9uLCBkZWZhdWx0IGxhbmd1YWdlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBwcmVmZXJlbmNlcyBwYWdlOzwvbGk+CgkJCTxsaT5DaGFuZ2VkIGRlZmF1bHQgcHJvZHVjdCBkZXRhaWwgdGVtcGxhdGUgd2l0aCByZWdhcmRzIHRvIG51bWJlciBvZiBkZWNpbWFscyBvbiBwcmljZTs8L2xpPgoJCQk8bGk+VGFibGUgYXR0cmlidXRlX29wdGlvbnMgcmVtb3ZlZCwgY29udGVudCB3YXMgbm90IG1haW50YWluYWJsZSwgYWxsIGZpZWxkcyBub3cgaW4gdGFibGUgcHJvZHVjdF9hdHRyaWJ1dGVzOzwvbGk+CgkJCTxsaT5BdHRyaWJ1dGVzIG9mIHByb2R1Y3Qgbm93IGhvbGQgcHJpY2UgZmFjdG9yIGFuZCB2YXJpb3VzIG90aGVyIGZpZWxkcyAoUmVxdWVzdCMgMzgyNik7PC9saT4KCQkJPGxpPk1vdmVkIGZ1bmN0aW9ucyBpbnRlcm5hbGx5IGFyb3VuZCwgc28gbW9kdWxlIGJlY29tZXMgYSBiaXQgbW9yZSBsaWtlIHN0YW5kYXJkOzwvbGk+CgkJCTxsaT5WZXJzaW9uIDAuMi45IG9uIHB1cnBvc2Ugc2tpcHBlZCwgc2luY2UgdGhpcyBpcyBhIG1ham9yIHJlbGVhc2UuIFNpbmNlIHRoaXMgdmVyc2lvbiBicmVha3Mgd2l0aCB0aGUgb3JpZ2luYWwsIER1a2V0b3duIHRoYW5rcyAKCQkJR2FyeSBHcmV5bGluZyAoTGFodWluZGFpKSBmb3IgYWxsIGhpcyBwZXJmZWN0IHdvcmsuIFRpbWUgdG8gbW92ZSBvbi48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjggOSBTZXB0ZW1iZXIgMjAxMDxiciAvPgoJCTx1bD4KCQkJPGxpPk5vIG1vcmUgcHJvYmxlbXMgd2l0aCBwcm9kdWN0IHByaWNlcyBncmVhdGVyIHRoYW4gOTk5IChidWcjIDQ1MTEpOzwvbGk+CgkJCTxsaT5BbGxvdyBtb2R1bGUgdG8gcnVuIGluIDEuOCBlbnZpcm9ubWVudCBvZiBDTVNNUzs8L2xpPgoJCQk8bGk+UmVuYW1lIG9mIGNsYXNzIFByb2R1Y3RzIHRvIFNNU1Byb2R1Y3RzIHNvIG1vZHVsZSBjYW4gcnVuIG5leHQgdG8gcHJvZHVjdHMgbW9kdWxlOzwvbGk+CgkJCTxsaT5OYW1lIG9mIHByb2R1Y3QgaGFzIGJlZW4gaW5jcmVhc2VkIHdpdGggbnVtYmVyIG9mIGNoYXJhY3RlcnMgZnJvbSAzMCB0byAyNTU7PC9saT4KCQkJPGxpPldvcmsgZG9uZSBvbiBwcmV0dHkgVVJMIChidWcjIDMxMjImNDA4MSkgc29sdmVkIGJ5IGRydW16b25lOzwvbGk+CgkJCTxsaT5OZXR3ZWlnaHQgbm93IGF2YWlsYWJsZSBhcyB2YXJpYWJsZSBpbiB0aGUgcHJvZHVjdCBkZXRhaWwgb3ZlcnZpZXcuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi43IDEgTWFyY2ggMjAxMDxicj4KCQk8dWw+CgkJCTxsaT5JbnB1dCBwYXJhbWV0ZXJzIHdlcmUgbm90IGNsZWFuZWQgYXQgY29ycmVjdCBtb21lbnQgY2F1c2luZyB3YXJuaW5nczs8L2xpPgoJCQk8bGk+Q2F0ZWdvcnkgYW5kIHByb2R1Y3RzIHRlbXBsYXRlIHRoYXQgaXMgdXNlZCBkdXJpbmcgaW5zdGFsbGF0aW9uIGV4dGVuZGVkIHRvIGluY2x1ZGUgaG93IHRvIHVzZSBpbWFnZSBvZiBhZGQgdG8gY2FydDs8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjYgMSBOb3ZlbWJlciAyMDA5PGJyPgoJCTx1bD4KCQkJPGxpPlNldCBtYXhpbXVtIENNU01TIHZlcnNpb24gdG8gMS42LjkgdG8gb3ZlcmNvbWUgcHJvYmxlbXM7PC9saT4KCQkJPGxpPkNoYW5nZSBsb2cgbm90IGluIHRyYW5zbGF0aW9uIGFueW1vcmUsIHNvIHRoaXMgbG9nIGlzIG9ubHkgYXZhaWxhYmxlIGluIEVuZ2xpc2g7PC9saT4KCQkJPGxpPlByZXBhcmUgYWRkIHRvIGNhcnQgbGluayB3aXRoIGltYWdlIChGZWF0IFJlcSMzMzI0KS4gSW1hZ2UgdGFrZW4gaXMgU2ltcGxlU2hvcC9pbWFnZXMvYWRkdG9jYXJ0LmdpZi4gQ2hhbmdlIHRoaXMgaW1hZ2UgaWYgbmVlZGVkLjxicj4KCQkJVXNlIHskYWRkcHJvZHVjdGltYWdlfSBpbiB0aGUgdGVtcGxhdGUgaW4gc3RlYWQgb2YgeyRhZGRwcm9kdWN0fSwgd2hpY2ggaXMgdGhlIHRleHQ7PC9saT4KCQkJPGxpPlJlbW92ZWQgcHJvZHVjdCBpZCBvbiBkZWZhdWx0IGZlYXR1cmVkIHByb2R1Y3RzIHRlbXBsYXRlLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuNSAxMCBBdWd1c3QgMjAwOTxicj4KCQk8dWw+CgkJCTxsaT5NaXNzaW5nIGNvZGUgaW4gZnJvbnQgZW5kIHByb2R1Y3QgZGV0YWlsLiAoYnVnIyAzODUwKSBzb2x2ZWQgYnkgTmFOLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuNCAyNiBKdWx5IDIwMDk8YnI+CgkJPHVsPgoJCQk8bGk+QXV0b21hdGljIGluc3RhbGxhdGlvbiBvZiBzdHlsZXNoZWV0IFwnTW9kdWxlOiBTaG9wIE1hZGUgU2ltcGxlXCcgd2FzIG5vdCB3b3JraW5nIChzdHlsZXNoZWV0IHdpbGwgYmUgaW5zZXJ0ZWQgZHVyaW5nIHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDAuMi4zIHRvIDAuMi40KTs8L2xpPgoJCQk8bGk+QWN0aXZhdGluZyBhbmQgZGVhY3RpdmF0aW5nIHdhcyBub3Qgd29ya2luZyBjb3JyZWN0bHkgZm9yIGNhdGVnb3JpZXMgaW4gbGlzdCBvZiBjYXRlZ29yaWVzLCBjaGFuZ2UgYWxzbyBhcHBsaWVkIGZvciBwcm9kdWN0czs8L2xpPgoJCQk8bGk+Tm8gdGVzdCBkYXRhIGNyZWF0ZWQgYW55bW9yZSBhdXRvbWF0aWNhbGx5IGR1cmluZyBpbnN0YWxsYXRpb247PC9saT4KCQkJPGxpPk9uIHByb2R1Y3QgZGV0YWlsIG5ldyB2YXJpYWJsZXMgaW50cm9kdWNlZDoge2ltYWdldGh1bWJ9IGFuZCB7ZnVsbHBhdGhpbWFnZX0gdG8gc3VwcG9ydCBpbWFnZXMgYmV0dGVyOzwvbGk+CgkJCTxsaT5ObyBjYXRlZ29yeSBhbmQgcHJvZHVjdCBpZCB1c2VkIGFueW1vcmUgaW4gaW5zdGFsbGVkIHRlbXBsYXRlIG9mIGNhdGFnb3J5IGxpc3Q7PC9saT4KCQkJPGxpPkRlZmF1bHQgY3VycmVuY3kgaXMgc2V0IHRvIEV1cm87PC9saT4KCQkJPGxpPldvcmsgZG9uZSBvbiBwcmV0dHkgVVJMIC0tPiBub3QgZnVsbHkgZnVuY3Rpb25hbDs8L2xpPgoJCQk8bGk+QnVnIHNvbHZlZCAoYnkgRmF0bGl6YXJkKSB0byBoYW5kbGUgY29ycmVjdCBwcm9kdWN0X2lkIGluIGZlIHByb2R1Y3QgZGV0YWlsLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjIuMyAxNyBNYXkgMjAwOTxicj4KCQk8dWw+CgkJCTxsaT5Jbml0aWFsaXplZCB2YXJpYWJsZXMgY29ycmVjdGx5LCBzbyBubyB3YXJuaW5nIGFwcGVhcnMgZm9yIHRoZW0gd2hlbiBwaHAuaW5pIHN0YXRlcyB0byBzaG93IHdhcm5pbmdzOzwvbGk+CgkJCTxsaT5OZXcgcHJlZmVyZW5jZXMgZm9yIHRodW1ibmFpbCBnZW5lcmF0aW9uLiBVc2UgdGhlIHJlYnVpbGQgYnV0dG9uIHRvIGdlbmVyYXRlIHRodW1ibmFpbHMgZnJvbSBlYXJsaWVyIGxvYWRlZCBpbWFnZXMuPC9saT4KCQkJPGxpPlRoZSBkZXRhaWwgdGVtcGxhdGUgaGFzIGJlZW4gY2hhbmdlZCB0byBhbGxvdyBzd2l0Y2hpbmcgaW1hZ2VzLiBBIHNpbXBsZXIgdmVyc2lvbiBpcyBhdmFpbGFibGUgdG8gY29weSBmcm9tIGluIHRoZQoJCQl0ZW1wbGF0ZXMgZGlyZWN0b3J5LiBUaGUgbmFtZSBpcyBmZV9wcm9kdWN0X2RldGFpbDEudHBsLjxicj4KCQkJSWYgeW91IGhhdmUgdXBncmFkZWQgZnJvbSBhbiBlYXJsaWVyIHZlcnNpb24geW91IG1heSB3YW50IHRvIHVzZSB0aGUgc3dpdGNoaW5nIG9mIGltYWdlcy4gTG9vayBpbiB0ZW1wbGF0ZXNcZmVfcHJvZHVjdF9kZXRhaWwudHBsLjwvbGk+CgkJCTxsaT5PcmlnaW5hbCB0ZW1wbGF0ZSBvZiBwcm9kdWN0cyBwZXIgY2F0ZWdvcnkgY2hhbmdlZCB0byBzaG93IGltYWdlIHdpdGggbGluayBvbiBwcm9kdWN0IGxpbmUuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi4yIDggTWFyIDIwMDk8YnI+CgkJPHVsPgoJCQk8bGk+U2hvdyBuYW1lIHdpdGhvdXQgbGluayB0byBkZXRhaWwgb24gcHJvZHVjdCBsaXN0aW5nIChmZWF0dXJlIHJlcXVlc3QjIDI5ODYpOiB1c2UgcHJvZG5hbWVub2xpbmsgaW4gc3RlYWQgb2YgcHJvZG5hbWUgaW4gdGhlIHRlbXBsYXRlLjwvbGk+CgkJCTxsaT5CdWlsZCBpbiBsaW5rIGZyb20gaW1hZ2UgdG8gZGV0YWlsIG9uIHByb2R1Y3QgbGlzdGluZyAoZmVhdHVyZSByZXF1ZXN0IyAzMDgzKTogdXNlIHByb2RpbWFnZWxpbmsgaW4gc3RlYWQgb2YgcHJvZGltYWdlIGluIHRoZSB0ZW1wbGF0ZS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4yLjEgMTUgSmFuIDIwMDk8YnI+CgkJPHVsPgoJCQk8bGk+VHlwbyBjYXVzZWQgZGlzcGxheT1wcm9kdWN0bGlzdCBjYXRuYW1lPS4uLiBub3QgdG8gd29yayBjb3JyZWN0bHkuIEJ1ZyBzb2x2ZWQuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMi4wIDExIEphbiAyMDA5PGJyPgoJCTx1bD4KCQkJPGxpPkN1cnJlbmN5IHN5bWJvbCBhdmFpbGFibGUgZm9yIGNhdGVnb3J5IGxpc3QgKHVzZSAkZW50cnktPmN1cnN5bWJvbH07PC9saT4KCQkJPGxpPlRlbXBsYXRlcyBjYW4gbm93IGJlIGFkanVzdGVkIHRvIGRlY3JlYXNlIGxlbmd0aCBvZiBkZXNjcmlwdGlvbiAod2FzIGhhcmRjb2RlZCkgdXNpbmcgfHRydW5jYXRlIGluIHRlbXBsYXRlOzwvbGk+CgkJCTxsaT5IYXJkY29kZWQgc2lnbmFsaW5nIHRoYXQgdGhlcmUgYXJlIG5vIGNhdGVnb3JpZXMgb3IgcHJvZHVjdHMgaXMgcmVtb3ZlZCwgbm93IHBhcnQgb2YgdHJhbnNsYXRpb247PC9saT4KCQkJPGxpPklmIHRoZSBtb2R1bGUgU2VhcmNoIGhhcyBiZWVuIGluc3RhbGxlZCwgdGhlIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHByb2R1Y3RzIGNhbiBiZSBzZWFyY2hlZCB1cG9uOzwvbGk+CgkJCTxsaT5CdWcgc29sdmVkIG9uIHVwZGF0aW5nIGNhdGVnb3J5IGluZm9ybWF0aW9uLiBFZGl0b3Igd2FzIG5vdCB3b3JraW5nIHdlbGw7PC9saT4KCQkJPGxpPkRlc2NyaXB0aW9uIG9mIGNhdGVnb3J5IGFuZCBwcm9kdWN0IGNvdWxkIHNwYW4gdHdvIGxpbmVzLiBOb3cgYWx3YXlzIG9ubHkgb25lIGxpbmU7PC9saT4KCQkJPGxpPk5ldyBwcmVmZXJlbmNlIGFkZGVkIHRvIGhvbGQgdGhlIG51bWJlciBvZiBwcm9kdWN0cyBwZXIgcGFnZTs8L2xpPgoJCQk8bGk+VXNpbmcgcGFyYW1ldGVyIHByb2RwYWdlbGltaXQsIHRoZSBudW1iZXIgb2YgcHJvZHVjdHMgcGVyIHBhZ2UgY2FuIGJlIGluZmx1ZW5jZWQgKG92ZXJyaWRpbmcgdGhlIHByZWZlcmVuY2UpLjxicj4KCQkJUGFnaW5nIGlzIHBvc3NpYmxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgaW4gdGhlIENhdGVnb3JpZXMvUHJvZHVjdHMgdGVtcGxhdGU6PGJyPgoJCQl7aWYgJHBhZ2Vjb3VudCA+IDF9PGJyPiZuYnNwO3skZmlyc3RwYWdlfSB7JHByZXZwYWdlfSB7JHBhZ2V0ZXh0fTogIHskcGFnZW51bWJlcn0geyRvZnRleHR9OiB7JHBhZ2Vjb3VudH0geyRuZXh0cGFnZX0geyRsYXN0cGFnZX08YnI+ey9pZn0KCQkJPGJyPjwvbGk+CgkJCTxsaT5JbnRlcm5hbCBjbGVhbiB1cCBvZiBmcm9udCBlbmQgY2F0ZWdvcnkgbGlzdGluZyBwcm9ncmFtLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuOSAyOSBEZWMgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5SZW1vdmVkIHRyYW5zbGF0aW9uIGJ1ZyBkdXJpbmcgaW5zdGFsbGF0aW9uLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuOCAxMSBEZWMgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5Tb2x2ZWQgaXNzdWUgd2hlcmUgc3dpdGNoIHN0YXR1cyBvbiBwcm9kdWN0IGNhdXNlZCBkZXNjcmlwdGlvbiB0byBiZSBjbGVhcmVkOzwvbGk+CgkJCTxsaT5FZGl0IG9mIFN0b2NrIEtlZXBpbmcgVW5pdCB3YXMgbm90IHdvcmtpbmc7PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMS43IDkgRGVjIDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+QWRkIHRvIGNhcnQgYXZhaWxhYmxlIGF0IGxpc3Qgb2YgcHJvZHVjdHMgb24gZnJvbnQgZW5kOzwvbGk+CgkJCTxsaT5OZXcgZmllbGRzOiBTdG9jayBLZWVwaW5nIFVuaXQgKFNLVSkgYW5kIGl0ZW1udW1iZXIgYXZhaWxhYmxlIHBlciBwcm9kdWN0OzwvbGk+CgkJCTxsaT5NYWludGVuYW5jZSBvbiBTS1UgaXMgcG9zc2libGU7PC9saT4KCQkJPGxpPkFkZGl0aW9uYWwgcHJlZmVyZW5jZSB0byBhbGxvdyBvbmx5IGNhcGl0YWwgY2hhcmFjdGVycyBpbiBpdGVtbnVtYmVyOzwvbGk+CgkJCTxsaT5BZGRpdGlvbmFsIHByZWZlcmVuY2UgdG8gc2V0IGRlZmF1bHQgU0tVIGR1cmluZyBhZGQgb2YgYSBwcm9kdWN0LjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuNiAxMiBOb3YgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5JbWFnZSBvZiBjYXRlZ29yeSBpcyBub3cgZGlzcGxheWVkIGluIGZyb250IG9mIGNhdGVnb3J5IG5hbWUgaW4gY2F0ZWdvcnkgbGlzdGluZzs8L2xpPgoJCQk8bGk+TGVuZ3RoIG9mIHByb2R1Y3QgYW5kIGF0dHJpYnV0ZSBkZXNjcmlwdGlvbiBlbmxhcmdlZDs8L2xpPgoJCQk8bGk+Q2hlY2sgYnVpbGQgaW4gZHVyaW5nIGluc3RhbGxhdGlvbiBpZiB0aGUgY29uZmxpY3RpbmcgbW9kdWxlIFByb2R1Y3RzIGhhcyBiZWVuIGluc3RhbGxlZDs8L2xpPgoJCQk8bGk+QnVnIG9uIGFkZGluZyBuZXcgcHJvZHVjdHMgY29ycmVjdGVkICh3YXMgYWx3YXlzIHBvaW50aW5nIHRvIHJvb3QgYWZ0ZXIgYWRkaW5nKTs8L2xpPgoJCQk8bGk+RGVsZXRpb24gb2YgcHJvZHVjdCByZXR1cm5zIHRvIGxhc3QgdXNlZCBjYXRlZ29yeTs8L2xpPgoJCQk8bGk+QWZ0ZXIgU3dpdGNoIG9mIHN0YXR1cywgbGFzdCBzaG93biBjYXRlZ29yeS9wcm9kdWN0cyBsaXN0IGlzIHNob3duOzwvbGk+CgkJCTxsaT5EZXNjcmlwdGlvbiBib3hlcyBmb3IgcHJvZHVjdCwgYXR0cmlidXRlcyBhbmQgaW1hZ2VzIGltcHJvdmVtZW50czs8L2xpPgoJCQk8bGk+UHJlcGFyZSBjb3JyZWN0IGNvbm5lY3Rpb24gb2YgbXVsdGlwbGUgY2F0ZWdvcmllcyB0byBvbmUgcHJvZHVjdDs8L2xpPgoJCQk8bGk+VmFyaWFibGUgJGltYWdlIGluIGRldGFpbCB0ZW1wbGF0ZSByZW5hbWVkIHRvICRwcm9kaW1hZ2UsIHNpbmNlIGl0IG1pZ2h0IGJlIGluIHVzZSBpbiBvdGhlciBtb2R1bGVzIChsaWtlIHByaW50aW5nKTs8L2xpPgoJCQk8bGk+V2hlbiBsYXN0IGNhdGVnb3J5IGNvbm5lY3Rpb24gdG8gcHJvZHVjdCBpcyBkZWxldGVkLCB0aGUgcHJvZHVjdCB3aWxsIGJlIGNvbm5lY3RlZCB0byB0aGUgcm9vdCAob3RoZXJ3aXNlIGl0IGNhblwndCBiZSBzZWxlY3RlZCBhbnltb3JlKTs8L2xpPgoJCQk8bGk+TXVsdGlwbGUgbGV2ZWxzIG9mIGNhdGVnb3JpZXMgaXMgYWxsb3dlZCBhcyBvZiB2ZXJzaW9uIDAuMS41IGJ1dCBpcyBub3Qgc3VwcG9ydGVkIG9uIGZyb250IGVuZCEgKHNvcnJ5KS48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjUgSnVuZSAyMDA4PGJyPgoJCTx1bD4KCQkJPGxpPk11bHRpcGxlIGxldmVscyBvZiBjYXRlZ29yaWVzIGFyZSBhbGxvd2VkL3Bvc3NpYmxlOzwvbGk+CgkJCTxsaT5OZXcgcGFyYW1ldGVyIGZvciBmcm9udGVuZDogcGFyZW50Y2F0ZWdvcnkuPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMS40IE1heSAyMDA4PGJyPgoJCTx1bD4KCQkJPGxpPlVwbG9hZCBvZiBpbWFnZSBmb3IgY2F0ZWdvcnkgaGFzIGJlZW4gY2hhbmdlZDs8L2xpPgoJCQk8bGk+Q2hhbmdlZCBpbnN0YWxsIHNvIGRpcmVjdG9yeSBwYXRoIGNvcnJlY3QgZm9yIGNhdGVnb3JpZXMgYW5kIHByb2R1Y3RzLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuMyBNYXkgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5BbGwgZnJvbnQgZW5kIHBhZ2VzIGFyZSBoYW5kbGVkIGJ5IHRlbXBsYXRlcyBkZXJpdmVkIGZyb20gYWRtaW4gcGFydDs8L2xpPgoJCQk8bGk+QWRtaW5pc3RyYXRvciBub3cgaGFzIHRhYiBjb250YWluaW5nIHRlbXBsYXRlcyBhcyB1c2VkIG9uIGZyb250IGVuZDs8L2xpPgoJCQk8bGk+RnJvbnQgZW5kIHNob3dzIHdldGhlciBwcmljZXMgYXJlIGluY2wuIG9yIGV4Y2wuIFZBVCBkZXBlbmRlbnQgb24gcHJlZmVyZW5jZTs8L2xpPgoJCQk8bGk+UHJvZHVjdHMgY29ubmVjdGVkIHRvIGNhdGVnb3J5IHNvcnRlZCBieSBsaXN0IG9yZGVyOzwvbGk+CgkJCTxsaT5PdmVydmlldyBjYXRlZ29yaWVzIGluIGJhY2sgZW5kIGFuZCBmcm9udCBlbmQgbm93IHNvcnRlZCBieSBsaXN0IG9yZGVyLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuMiAtIE1heSAxc3QgMjAwODxicj4KCQk8dWw+CgkJCTxsaT5XaGVuIGEgY2F0ZWdvcnkgaXMgZGVsZXRlZCwgaXRzIGNvbm5lY3RlZCBwcm9kdWN0cyB3aWxsIGJlIGNvbm5lY3RlZCB0byB0aGUgcm9vdCBjYXRlZ29yeS48L2xpPgoJCQk8bGk+U29tZSBidXR0b25zIGxhY2tlZCBwcm9wZXIgdHJhbnNsYXRpb25zLjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjEuMSAtIEFwcmlsIDIwMDg8YnI+CgkJPHVsPgoJCQk8bGk+Tm93IG9wdGlvbiB0byBzaG93IHByb2R1Y3RzIG9mIG9uZSBjYXRlZ29yeSBpbiBzaW5nbGUgcGFnZXMgdXNpbmcgcGFyYW1ldGVycy48L2xpPgoJCQk8bGk+U29tZSBmaWVsZHMgdHVybmVkIGludG8gZmxvYXQgdG8gY29ycmVjdGx5IGhhbmRsZSBkZWNpbWFscy48L2xpPgoJCQk8bGk+RHJvcHBlZCBhZG1pbiBwcmVmZXJlbmNlcyB0byBob2xkIHNob3AgcG9saWNpZXMgKHVzZSBjb250ZW50IGJsb2NrIG9yIG5vcm1hbCBDTVNNUyBwYWdlIHdpdGggdGhlIHBvbGljaWVzKS48L2xpPgoJCQk8bGk+SW50cm9kdWN0aW9uIG9mIGNoZWNrbWFyayBpZiBwcmljZXMgYXJlIGluY2x1c2l2ZSBvciBleGxjdXNpdmUgVkFUIGluIHByZWZlcmVuY2VzLjwvbGk+CgkJCTxsaT5BbHNvIGluIHByZWZlcmVuY2VzIG5vdyB1bml0IG9mIG1lYXN1cmUgZm9yIHdlaWdodHMgb2YgdGhlIHByb2R1Y3RzLjwvbGk+CgkJCTxsaT5JbnRyb2R1Y3Rpb24gb2YgVkFUIGNvZGUgYW5kIG5ldHQgd2VpZ2h0IHBlciBwcm9kdWN0LiBGb3IgY2FsY3VsYXRpb24gb2YgKHNoaXBwaW5nKSBjb3N0IGluIENhcnQgbW9kdWxlPC9saT4gIAoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4xLjAgLSBBcHJpbCAxOHRoIDIwMDggUm9sbCBvdXQgdmVyc2lvbjxicj4KCQk8dWw+CgkJCTxsaT5MYXlvdXQgY2hhbmdlcyBtYWRlPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMC40IC0gSW1wb3J0IGFuZCBFeHBvcnQgUmVsZWFzZTxicj4KCQk8dWw+CgkJCTxsaT5DYXRlZ29yaWVzPC9saT4KCQkJPGxpPlByb2R1Y3RzPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT5WZXJzaW9uIDAuMC4zIC0gQ2xpZW50IEludGVyZmFjZSBSZWxlYXNlPGJyPgoJCTx1bD4KCQkJPGxpPkNsaWVudCBpbnRlcmZhY2UgdGFnczwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAwLjAuMiAtIEFkbWluaXN0cmF0aW9uIEV4dGVuZGVkIFJlbGVhc2UKCQk8dWw+CgkJCTxsaT5UZW1wbGF0ZXMsIEV2ZW50cywgT3JkZXJzLCBUcmFuc2xhdGlvbnM8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPlZlcnNpb24gMC4wLjEgLSBBZG1pbmlzdHJhdGlvbiBSZWxlYXNlPGJyPgoJCTx1bD4KCQkJPGxpPlByZWZlcmVuY2VzIC0gQ29tcGxldGVkIG9uIDI0LzEyLzIwMDc8L2xpPgoJCQk8bGk+Q2F0ZWdvcmllcyAtIENvbXBsZXRlZCBvbiAyNS8xMi8yMDA3PC9saT4KCQkJPGxpPlByb2R1Y3RzPC9saT4KCQk8L3VsPgoJPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/stylesheet.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogQ2F0ZWdvcnkgcmVsYXRlZCBzZXR0aW5ncyAqLwouY2F0ZGVzY3JpcHRpb24KewogIG1hcmdpbi1sZWZ0OiAwLjVlbTsKICB3aWR0aDogMjUwcHg7Cn0KCiNjYXRpZAp7CiAgZGlzcGxheTogbm9uZTsKfQoKI2NhdGluZm8KewogIG1hcmdpbi1ib3R0b206IDFlbTsKICB3aWR0aDogNDUwcHg7Cn0KCiNjYXRpbWFnZXRodW1iCnsKICBtYXJnaW46IDVweCAwIDAgMDsKICB3aWR0aDogNTBweDsKfQoKI2NhdGxpc3RoZWFkZXIKewogIGNvbG9yOiAjMjk0QjVGOwogIGZvbnQtc2l6ZTogMTMwJTsKICBtYXJnaW4tbGVmdDogMC41ZW07CiAgbWFyZ2luLXRvcDogMC41ZW07CiAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgbWFyZ2luLXJpZ2h0OiAxZW07Cn0KCi5jYXRsaXN0bGluZQp7CiAgdGV4dC1pbmRlbnQ6IDVtbTsKfQoKLyogUHJvZHVjdCByZWxhdGVkIHNldHRpbmdzICovCiNwcm9kdWN0Y291bnQKewogIG1hcmdpbi10b3A6IDAuNWVtOwogIG1hcmdpbi1ib3R0b206IDAuNWVtOwogIC8qIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjk0QjVGOyAqLwp9CgojcHJvZHVjdGlkIHsKICBkaXNwbGF5OiBub25lOwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCi5pbWcKewogIG1hcmdpbjogMnB4OwogIGJvcmRlcjogMXB4IHNvbGlkICMyOTRCNUY7CiAgZmxvYXQ6IGxlZnQ7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5pbWcgaW1nCnsKICBkaXNwbGF5OiBpbmxpbmU7CiAgaGVpZ2h0OiBhdXRvOwogIHdpZHRoOiAxMDBweDsKICBtYXJnaW46IDNweDsKICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOwp9Ci5pbWcgYTpob3ZlciBpbWcKewogIGJvcmRlcjogMXB4IHNvbGlkICMyOTRCNUY7Cn0KCiNpdGVtX2ltYWdlIHsKICBtYXgtd2lkdGg6IDMwMHB4Owp9CgojcHJvZHVjdHRhYmxlIHRyIHRkIHsKICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9CgoucHJvZHVjdGRlc2MKewogIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgbWFyZ2luLWxlZnQ6IDAuNWVtOwogIHdpZHRoOiA1MDBweDsKfQoKZGl2LnByb2R1Y3RsaXN0CnsKICB3aWR0aDogMTAwJTsKfQoKLnByb2R1Y3RsaXN0IHRhYmxlIHsKICB3aWR0aDogMTAwJTsKfQoucHJvZHVjdGxpc3QgdGFibGUgdGQgewogIHBhZGRpbmc6IDVweCAxNXB4OwogIHdpZHRoOiBhdXRvOwp9CgoucHJvZHVjdG5hbWUKewogIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgcGFkZGluZy1ib3R0b206IDNweDsKICB3aWR0aDogMzAwcHg7Cn0KCi5wcm9kdWN0cHJpY2UKewogIGNvbG9yOiAjMjk0QjVGOwogIHdpZHRoOiAzMHB4OwogIHRleHQtYWxpZ246IHJpZ2h0Owp9CgoucHJvZHVjdGFtb3VudAp7CiAgd2lkdGg6IDUwcHg7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCi5wcm9kdWN0cmVtb3ZlCnsKICBwYWRkaW5nLWxlZnQ6IDVweDsKfQoKLnRvdGFsYW1vdW50CnsKICBmb250LXNpemU6IDE4cHg7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCiNwcm9kdWN0cHJpY2VzaW4KewogIHBhZGRpbmctdG9wOiAzMHB4Owp9CgpkaXYuYXR0cmlidXRlbGlzdAp7CiAgcGFkZGluZy1ib3R0b206IDNweDsKfQp0ci5yb3cxCnsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9Cgp0ci5yb3cyCnsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOwp9Cgp0YWJsZS5wcm9kdWN0YXR0cgp7CiAgdGFibGUtbGF5b3V0OiBhdXRvbWF0aWM7Cn0KCi5hdHRycHJpY2UKewogIG1hcmdpbi1ib3R0b206IDAuMmVtOwogIHRleHQtaW5kZW50OiAxY207Cn0KLmJpbGx0b2luZm8gewogIGN1cnNvcjogcG9pbnRlcjsKfQoKLnNoaXBlcnJvciB7CiAgY29sb3I6IHJlZDsKfQoKQG1lZGlhIChtYXgtd2lkdGg6IDQ1MHB4KSB7CgoucHJvZHVjdGxpc3QgdGFibGUgdHIgdGQsIC5wcm9kdWN0YXR0ciB0ciB0aCB7CiAgICBkaXNwbGF5OiBpbmxpbmU7Cn0KCiNwcm9kdWN0dGFibGUgdHIgdGQgewogICAgZGlzcGxheTogaW5saW5lOwp9Cn0=]]></data>
	</file>
	<file>
	  <filename>/css/theme.metro-dark.min.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnRhYmxlc29ydGVyLW1ldHJvLWRhcmt7d2lkdGg6MTAwJTtmb250OjEycHgvMThweCAnU2Vnb2UgVUkgU2VtaWxpZ2h0JywnT3BlbiBTYW5zJyxWZXJkYW5hLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JvcmRlci1zcGFjaW5nOjA7bWFyZ2luOjEwcHggMCAxNXB4O3RleHQtYWxpZ246bGVmdH0udGFibGVzb3J0ZXItbWV0cm8tZGFyayBjYXB0aW9uLmRhcmstcm93LC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRyLmRhcmstcm93IHRkLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRyLmRhcmstcm93IHRoe2JhY2tncm91bmQtY29sb3I6IzIyMjtjb2xvcjojZmZmO3BhZGRpbmc6MnB4O3RleHQtYWxpZ246bGVmdDtmb250LXNpemU6MTRweH0udGFibGVzb3J0ZXItbWV0cm8tZGFyayBjYXB0aW9uLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRmb290IHRkLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRmb290IHRoLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRoLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRoZWFkIHRke2ZvbnQtd2VpZ2h0OjMwMDtmb250LXNpemU6MTVweDtjb2xvcjojZGRkO2JhY2tncm91bmQtY29sb3I6IzMzMztwYWRkaW5nOjRweH0udGFibGVzb3J0ZXItbWV0cm8tZGFyayAuaGVhZGVyLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1oZWFkZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBd0FBQUFRQkFNQUFBRFFUNE0wQUFBQUdGQk1WRVVBQUFEdTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1NWpOZVBXQUFBQUNIUlNUbE1BTXhJSEt3RWdNV0Q1OUg0QUFBQlNTVVJCVkFqWFkyQmdZRkpnQUFIelloREo2aWdTQUtUWUJBVVRnSlNpb0tBUUF3TnpvYUNndUFGRGlDQVF1RElrZ2lneEJnaUE4Y0pBVkNwUXQ2QWdTTCtKb0tBekEwZ2pVQnNRcUJjQkNZaEZBQUUvQ1Y0emVTenhBQUFBQUVsRlRrU3VRbUNDKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDVweCBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vcm1hbH0udGFibGVzb3J0ZXItbWV0cm8tZGFyayAudGFibGVzb3J0ZXItaGVhZGVyLWlubmVye3BhZGRpbmc6MCAxOHB4IDAgNHB4fS50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRoZWFkIC5oZWFkZXJTb3J0VXAsLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdGhlYWQgLnRhYmxlc29ydGVyLWhlYWRlckFzYywudGFibGVzb3J0ZXItbWV0cm8tZGFyayB0aGVhZCAudGFibGVzb3J0ZXItaGVhZGVyU29ydFVwe2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQXdBQUFBUUJBTUFBQURRVDRNMEFBQUFJVkJNVkVVQUFBRHU3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTVtZUpBT0FBQUFDblJTVGxNQU13c3FYdCtnSUJVR3hHb0RNQUFBQUZsSlJFRlVDTmN0ekMwU1FBQVVSZUV6R05RM0FsSFJpU1JaRkNWWllnZXN3Ukw4aExkSzc4MzR3ajN0QWxHUDZ5N2ZZSHBLUzZ3Nld3YlZHMEkxTlpWblpQRzgvRFl4T1lsbmhVWWtBMDZSMXM5RVNzeFI0TklkUGhrUEZERll1RW5NQUFBQUFFbEZUa1N1UW1DQyl9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdGhlYWQgLmhlYWRlclNvcnREb3duLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRoZWFkIC50YWJsZXNvcnRlci1oZWFkZXJEZXNjLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRoZWFkIC50YWJsZXNvcnRlci1oZWFkZXJTb3J0RG93bntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQVFCQU1BQUFEUVQ0TTBBQUFBTFZCTVZFVUFBQUR1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N3U3dTd1N2kwTlZpQUFBQURuUlNUbE1BTWl3ZUNRSVRUdkRjdFpacWFUbE0zMTBBQUFCY1NVUkJWQWpYWTJCZ1lFdGdBQUZIRVJESnFpZ1VBS1NZQlFVTmdGU2lvS0FZQXdPTElCQTRNQVNCS0ZVR1F4QWx6QUFGKzk0QndXdUdLQkMxbElGbDNydDNMeDBZR0N6ZXZXc0dTaks5ZTZjQVVsVDNIS3lXOXdBREF3RFJyQmlEeTZiS3p3QUFBQUJKUlU1RXJrSmdnZz09KX0udGFibGVzb3J0ZXItbWV0cm8tZGFyayB0aGVhZCAuc29ydGVyLWZhbHNle2JhY2tncm91bmQtaW1hZ2U6bm9uZTtjdXJzb3I6ZGVmYXVsdDtwYWRkaW5nOjRweH0udGFibGVzb3J0ZXItbWV0cm8tZGFyayB0ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cGFkZGluZzo0cHg7dmVydGljYWwtYWxpZ246dG9wfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRib2R5PnRyLmV2ZW46aG92ZXI+dGQsLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdGJvZHk+dHIuaG92ZXI+dGQsLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdGJvZHk+dHIub2RkOmhvdmVyPnRkLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRib2R5PnRyOmhvdmVyPnRke2JhY2tncm91bmQtY29sb3I6I2JiYjtjb2xvcjojMDAwfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1wcm9jZXNzaW5ne2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhGQUFVQUtFQUFPN3U3bHBhV2dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoK1FRQkNnQUNBQ3dBQUFBQUZBQVVBQUFDUVpSdm9JRHR1MXdMUVVBbHFLVFZ4cXdoWElpQm5EZzZZNGV5eDRsS1c1WEs3d3JMZUszdmJxOEoyVzRUNGUxbk1ocFdyWkNUdDN4S1o4a2dzZ2dkSm1VRkFDSDVCQUVLQUFJQUxBY0FBQUFMQUFjQUFBSVVWQjZpaTdqYWpnQ0F1VW10b3Z4dFhubWRVQUFBSWZrRUFRb0FBZ0FzRFFBQ0FBY0FDd0FBQWhSVUlwbUh5LzNnVVZRQVFPOU5ldHV1Z0NGV0FBQWgrUVFCQ2dBQ0FDd05BQWNBQndBTEFBQUNFNVFWY1pqS2JWbzZjazJBRjk1bTUvNkJTd0VBSWZrRUFRb0FBZ0FzQndBTkFBc0FCd0FBQWhPVUgza3I2UWFBY1NyR1dlMVZRbCttTVVJQkFDSDVCQUVLQUFJQUxBSUFEUUFMQUFjQUFBSVVsSUNtaDduY1RBZ3FpamtydURpdjduMllVQUFBSWZrRUFRb0FBZ0FzQUFBSEFBY0FDd0FBQWhRVUlHbUh5ZWRlaElvcUZYTEtmUE9BYVpkV0FBQWgrUVFGQ2dBQ0FDd0FBQUlBQndBTEFBQUNGSlFGY0ppWGIxNXpMWVJsN2NsYThPdGxHR2dVQURzPSkhaW1wb3J0YW50fS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1wYWdlciBidXR0b257YmFja2dyb3VuZC1jb2xvcjojNDQ0O2NvbG9yOiNlZWU7Ym9yZGVyOiM1NTUgMXB4IHNvbGlkO2N1cnNvcjpwb2ludGVyfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1wYWdlciBidXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNTU1fS50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRyLm9kZD50ZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdHIuZXZlbj50ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdHIub2RkIHRkLnByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojYmZiZmJmfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRkLnByaW1hcnksLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdHIuZXZlbiB0ZC5wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6I2Q5ZDlkOX0udGFibGVzb3J0ZXItbWV0cm8tZGFyayB0ci5vZGQgdGQuc2Vjb25kYXJ5e2JhY2tncm91bmQtY29sb3I6I2Q5ZDlkOX0udGFibGVzb3J0ZXItbWV0cm8tZGFyayB0ZC5zZWNvbmRhcnksLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdHIuZXZlbiB0ZC5zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2fS50YWJsZXNvcnRlci1tZXRyby1kYXJrIHRyLm9kZCB0ZC50ZXJ0aWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTZ9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdGQudGVydGlhcnksLnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgdHIuZXZlbiB0ZC50ZXJ0aWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjJ9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgLnRhYmxlc29ydGVyLWZpbHRlci1yb3d7YmFja2dyb3VuZC1jb2xvcjojZWVlfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1maWx0ZXItcm93IHRke2JhY2tncm91bmQtY29sb3I6I2VlZTtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOmxpbmUtaGVpZ2h0IC4xcyBlYXNlOy1tb3otdHJhbnNpdGlvbjpsaW5lLWhlaWdodCAuMXMgZWFzZTstby10cmFuc2l0aW9uOmxpbmUtaGVpZ2h0IC4xcyBlYXNlO3RyYW5zaXRpb246bGluZS1oZWlnaHQgLjFzIGVhc2V9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgLnRhYmxlc29ydGVyLWZpbHRlci1yb3cgLmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1maWx0ZXItcm93LmhpZGVtZSB0ZHtwYWRkaW5nOjJweDttYXJnaW46MDtsaW5lLWhlaWdodDowO2N1cnNvcjpwb2ludGVyfS50YWJsZXNvcnRlci1tZXRyby1kYXJrIC50YWJsZXNvcnRlci1maWx0ZXItcm93LmhpZGVtZSAqe2hlaWdodDoxcHg7bWluLWhlaWdodDowO2JvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MDtvcGFjaXR5OjB9LnRhYmxlc29ydGVyLW1ldHJvLWRhcmsgaW5wdXQudGFibGVzb3J0ZXItZmlsdGVyLC50YWJsZXNvcnRlci1tZXRyby1kYXJrIHNlbGVjdC50YWJsZXNvcnRlci1maWx0ZXJ7d2lkdGg6OTUlO2hlaWdodDphdXRvO21hcmdpbjowO3BhZGRpbmc6NHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNiYmI7Y29sb3I6IzMzMzstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCAuMXMgZWFzZTstbW96LXRyYW5zaXRpb246aGVpZ2h0IC4xcyBlYXNlOy1vLXRyYW5zaXRpb246aGVpZ2h0IC4xcyBlYXNlO3RyYW5zaXRpb246aGVpZ2h0IC4xcyBlYXNlfS50YWJsZXNvcnRlciAuZmlsdGVyZWR7ZGlzcGxheTpub25lfS50YWJsZXNvcnRlciAudGFibGVzb3J0ZXItZXJyb3JSb3cgdGR7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZTZiZjk5fQ==]]></data>
	</file>
	<file>
	  <filename>/desktop.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W1ZpZXdTdGF0ZV0NCk1vZGU9DQpWaWQ9DQpGb2xkZXJUeXBlPURvY3VtZW50cw0K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/addtocart.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAAAAAAUHBhUVFRscGzwcHyMiISkjJCsrKzgsLjIyMT0yMzw9PUotL0EuMEg+P0NDQ0pFRktLS09PUVNNTltISlNTU1xWVlhYVlpaWmdeX21QUndbXWRkZGZmaGthYmtra3VtbnBwbnNzc3t7e36Af4J5eoOCg42Cg4qKi5GLi5KNjZOPj5SUlJuWl5ubmrOdnqWmpqmnqKurq7ipqr2ur7Ozs7e5uLm3uLm5ucPDw8vLy9LJytXV1dzb297b3OPGyOLR0+Lc3eDg3uLh4uXl5efn6enp6e7p6e3t7fTg4fvr7Pnu7f7s7vPz8/7w8v/y9Pj49vn5+f7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAgACAAAAj/AP8JHEiwoMGDCBMqXMiwocOHAoeMqIADosIaKDgICFDBiEWBP16c8ADhwYEEHw4UGIHEIZAZKjZoIMBAwYcWNSp8QKIjh5GWCH3cWAFiAoIGFCAUcJBhAgYRKWso7IHDRAUIBhKYiGEiRZAgGXoMMQGjh4wERBA24bCgAoYIFTkIrMFC4AeBKCqyuAAFoZEIImS0qFCjRgQZVUPUsCFBho0PJnBUQBEFIZIIHVB8eIDCxAISGSejWIACRQUOIw5UtFzBxj8dJgTK/UdXYAeBLGrAiCAkIRLC/3KMkD237r/ZKGqQ4NDXcgSdFxZ0CJGAw4cIDz58QCnigUkcTRIa4gGeQwTxfzKMIx+dVjz54cfnurCLOwKG8L4Bs5jIggVpFx9wwIILDwzIQQEoLNSECdpZ1+CDD3ZgnQ6VKdQEEk1kqCGGRuTgAg5FHLGEEkw88ZFAUeiQ0gADiJDEiQM1oQMHJ5nAAwpZ9XBiFDyIcMABI+gQXhM8tPhREx8UoNUQBTnRgwEG6PgQEagJiVAPHEjlUBM1tJDDQjVk2VAULDxQwQNSHkQDCwKmmZ8MPWBg3EER7NDDAFpaiMEHNTwgQ0IWlNCCAm4iJEUOHFRgAn4H1YBBBfMxhAQSRrQH46UNBQQAOw==]]></data>
	</file>
	<file>
	  <filename>/images/bg_button_a.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEgAwANUAAPj4+PX19dnZ2fLy8tHR0fv7++7u7re3t9jY2NbW1tPT09fX1/39/dDQ0Obm5uzs7Onp6c/Pz8zMzM7Oztzc3MXFxa+vr6ysrK2trc3NzcnJycLCwtLS0sjIyODg4L+/v/Dw8MrKytXV1cTExPz8/Lq6ut7e3tra2vr6+u/v79TU1Nvb2+Li4uvr66qqqurq6uHh4efn5+Tk5N/f393d3f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAASADAAAAb/QJdwiDlUFo+acslckgYyjkXSalqZKNqBcu3WQJeF9xq4cMdN0KGKZtIkNYZ8Tq8DLI+Cfs/vFxoLAIKDhIUAMxUBiouMjQEvBwOSk5SVAykYBpqbnJ0GLRgvoqOkpS8eBzGqq6ytMSoVMrKztLUyRzC5uru8JngzwMHCwyFwNMfIyckqazXKz8cLZkrQyiphS9XHJx1bbsorIhkbU2xLQ0RGSFfoQkVHSVYZ8/QSHRsl5U0T/P3+Eh+8LYlAsKBBghqwKWnAsKHDhhKm1SBAsaJFiyGaKdjIsaPHDXBUiBxJsiQBPAlSqlzJMsGHBQhiypxJE4GGCgJy6tzJUwCHXgMrggodSnSFAAzaoK3AMKzpsAUHeEnl1aACi6tYs2plMWKBra+yPOBxQLas2bMT4LhaG4NCMwhw48qNy0KiKVMzFNZowbev3xgEBCp5QLgwBBYLNOhj0s7Fu3VWggAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/bg_button_span.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhLAEwANUAANbW1tjY2NHR0e7u7vv7+9DQ0NPT0+bm5v39/ezs7Onp6c/Pz87Ozs3Nzbe3t9fX18zMzNzc3MXFxaysrK2tra+vr8nJycLCwsrKytLS0r+/v/Dw8ODg4MjIyNra2tXV1d7e3rq6usTExO/v7/z8/Pr6+vj4+PX19fLy8tnZ2dTU1Nvb2+Li4uvr6+rq6uHh4efn5+Tk5N/f36qqqt3d3f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAsATAAAAb/wJpwWEs8JA7KbMlsOp/QqHRKrVqv2Kx2y+16v+AqsdaCVDIxFGnMbrvf8Lh8Tq/b7/i8fs/v+4URDjQlf4WGh4iJiouMjQ8TG42Sk5SVlpeUERMnmJ2en6Chki0OkaKnqKmqqhA0q6+wsbKGCRUmCLi5uru8vb6/wMHCw8TFxsfIycrLzM3LDwUE0tPU1dbX2Nna29zd3t/g4eLj5OXm5+YSMibs7e7v8PHy8/T19vf4+fr7/P3+/wADAnTg4oTBgwgTKlzIsKHDhxAjSpxIsaLFixgzatyokcIIFCBDihxJsqTJkyhTqlzJsqXLlzBjypxJsyZNCi0G6NzJs6fP/59AgwodSrSo0aNIkypdyrSp06dOHXBwQbWq1atYs2rdyrWr169gw4odS7as2bNo06KVoAKG27dw48qdS7eu3bt48+rdy7ev37+AAwseLPhIjMOIEytezLix48eQI0ueTLmy5cuYM2vezHlzLRAvQoseTbq06dOoU6tezbq169ewY8ueTbu2bdo1IGCQwbu379/AgwsfTry48ePIkytfzry58+fQoz8n40AFjevYs2vfzr279+/gw4sfT768+fPo06tfzz49oAkP2sufT7++/fv48+v/PuSR9f0ABijggAQWuB8RgXTggYEMNujggxDiN0YZFVzQwAcrRKjhhhx22P9gG0YgoUQYJJZo4okopqjiiiwuAeIRSbQo44w01mjjjShOaEYIF3QAQQNABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFapJIIOaAABA1x26eWXYIYp5phklmnmmWimqeaabLbp5ptwxqlmfxNYsMCdeOap55589unnn4AGKuighBZq6KGIJqrooowe+h4EBUQq6aSUVmrppZhmqummnHbq6aeghirqqKSWaqqo1GEgwKqsturqq7DGKuustNZq66245qrrrrz26uuvwPaa2wUGFGvsscgmq+yyzDbr7LPQRivttNRWa+212GarLba1CKDCt+CGK+645JZr7rnopqv/7rrstuvuu/DGK++89Mr7gAYA5Kvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfscMMSWBDAxBRXbPHFGGes8cYcd+zxxyCHLPLIJJds8skon+xABim07PLLMMcs88w012zzzTjnrPPOPPfs889ABy100BSksMLRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lxvTUGGHoYt9thk0+fAA9KlrfbabLft9ttwx32cBAXcZvfdeOet99589+03aw+IwMLghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhfXgsHnXXu+eeghy766KSXHlluDByg+uqst+7667DHLvvstNduqPvtuOeu++689+77771TFwFhxBdv/PHIJ6/88szf9R4LCkQv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb774dMqg1vrst+/++/DHL//8W2EpAAwt5K///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgDqqgAUeAL0EWPCCGMygBjfIwQ568IMgDKEIR0jCEprwhChMoQpXCMIXiQhHMIyhDGdIQxMFAQA7]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPcAAAUHBhUVFRscGzwcHyMiISkjJCsrKzgsLjIyMT0yMzw9PUEYHEotL0EuMEg+P1o9P0NDQ0pFRktLS09PUVNNTltISlNTU1xWVlhYVlpaWmVFSGdeX21QUnVXWX5QU2RkZGZmaGpgYWtra3VsbXBwbnNzc3t7e36Af6U4PYxFSYdPUo9YXYJ5epJucJl1d7hRVbtfZKxgZKpvc7Zqbrdyd8JdY8Vka8tudsFwdsdxeMZ6fsl0e85zes92fNBnbthlbNFsctdvdtJ1etB1fNV0eNV1fNF4ftd4fthzed5wed92feRtdJt+grN8gb58gMd8gcl8gcx6gM59hNJ8gdh5geN/h4OCg4qKi5GLi5SUlJuWl5ubmreOkqWmpqenqaqhoqmnqKurq7Gjo7Ozs7e5uLq0trm5ucGDiMeKj8+AhcuFicqJjc+Kj8WRlc6RltGDidOIjd2Ch9iCiN2Eit2GjtiJjtSPkt+NkdCQkdGZn9qUmt6ZntGfos+5u9qwstqxtd6ys9m8vuOEieSFi+aFjOuCieuIjeqLkeuMlO6KkuyPl+CRluWUmuOYneyTmeqYnu6ZnPOCifKNk/aRl/qRlvmWm/+Sm/+UmvyepeOlqOmkp+6mquqtsuS7v+m7vv+gqP+kqf+nrv+orfarsP+rsPyts/Oytva1u/+yuP+1uv64vf+5wP+7xP+8wv++xMPDw8vLy9rQz9XV1dnZ19zb2+zDxuHO0OLc3ezS1ffFyP/Axf/Cyf7Eyf/GzfrIy//Jzv7Mz/PP0f/K0f/N0f/P1PPR1PDX2vnR0v7Q0v/R1f/U1//S2P7U2f3Z3P/e5ODg3uLh4uXl4+Xl5efn6enl5unp6e7p6e3r7Ozs6u3t7e/x8PTg4ffj5PDu7/ft7P/g5f/k5//l6f/n7Pjo6fvr7Pnu7f/p6//q7f7s7vHv8P/t8fHw7vPz8/f5+Pnx8vn19P7w8v/y9P/19fn3+P/2+Pj49vn5+fv7/fr8+//5+v/7/P78+/7+/gAAAAAAAAAAACH5BAEAAP8ALAAAAAAgACAAAAj/AHlJSiKIly88yJgBypOs1aEgR0YBa0VnjpxHybZJmyatWrd7/AhNYjWIUzId38xlWhPOUZxdqaD86mVkVaocvfLx22kvXTZ+g4h8UvUtGZBQpATJSSZEFzx4dyrtoiJMFw9d9HiyY3dtnitRhYSYSuYjUiQicoQh4RUvHiRKvW68UaMnHD170ExYMJOOnSFXzjC96dXD2TlNapwpASXu2xRRvaQoAxfO1pgrHwIAsFCN3aI0dZ6cSnbmnDo/bdSh2sFmjZ1fm2QwCREBggEEIgwQMJGNXbNitY7Fg1dMnj5uxtSdq8WlRQcOAxgkEKFljAUR2WC9qtabWr7v+vbJ/3N3q8yXERQONKgQgYCDDRQylMg9ZufOrdTu0zJjxUKEAghYAYYVWNxyywa0QGNFF7SEgYA09vGzFYTsfKCABRlIYEY1H3Q2Rhb2sCNCOu9cYUY9WWBQT4S9VcNPNRKUEIYWFowxhgRh8EfCGGRMEAYZIlhhhgVX2BOhNu1AmI0EIFwhAgRXWKHACZgReYUCV1xhwQcmGGBGhPxow46SFpDRDixWsFPPB9LY82GIIGyVxRhdSPDMPhFu5WI2NbLzignsZPMBNOx8uFWH7FwxxgkfrJjnmPwseR0GCoBAAgIfiCABBCKIgFsJENhmBjtgtvhijeu8UgI2HNLCThhZZP/D4TPZZKkAhGBOeOoY9vwZIpuFbrGVCOzYk4UEGZCaKzt7xpiFXllkgeUWInyQxRYQXPsBAVeAeR+k7FjRaabjllsuCJnCYmSpkErY21bwtvjKFmZMY0055KATz3f8flfOOy56a589sOQmgAAlbNMMMOjAwwwy6qgzjCrDgANPwN6yA8sHt1khyxUFaNDEDLqE4wQNzZQyhSJQ/HGxt/bIUoIBBpgAS7HsiLFACjVc8ssQOTCDSCLL6NKJOhjfJwIBARIaITyexIDCEpYUUsQyu1QhxBu5oJM0P9JwebO3+agDxws/LIHJ1csIswsjiSVdqBavCMxP2W7gAIMNu0STwcweerTSCBrf4MqPsRBYAAEtdqvjggcrqMALH+A0w8cabgSDjuFLhgFNBlnYXU4FfeDyQCDy0EOPPPGoM447bd6XgQhjQBCG3etcwIIWCcSS1d3fWQOvPUa+8oEFadqtzxgZWLCFo1plg0+IvWUjqzSBVh9o9txVU806W1nPbDbrHr5ViMOnv1U77LyjJrzn2xcQADs=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/jquery.tablesorter.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IWZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZShyZXF1aXJlKCJqcXVlcnkiKSk6ZShqUXVlcnkpfShmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oQSl7InVzZSBzdHJpY3QiO3ZhciBMPUEudGFibGVzb3J0ZXI9e3ZlcnNpb246IjIuMzEuMyIscGFyc2VyczpbXSx3aWRnZXRzOltdLGRlZmF1bHRzOnt0aGVtZToiZGVmYXVsdCIsd2lkdGhGaXhlZDohMSxzaG93UHJvY2Vzc2luZzohMSxoZWFkZXJUZW1wbGF0ZToie2NvbnRlbnR9IixvblJlbmRlclRlbXBsYXRlOm51bGwsb25SZW5kZXJIZWFkZXI6bnVsbCxjYW5jZWxTZWxlY3Rpb246ITAsdGFiSW5kZXg6ITAsZGF0ZUZvcm1hdDoibW1kZHl5eXkiLHNvcnRNdWx0aVNvcnRLZXk6InNoaWZ0S2V5Iixzb3J0UmVzZXRLZXk6ImN0cmxLZXkiLHVzTnVtYmVyRm9ybWF0OiEwLGRlbGF5SW5pdDohMSxzZXJ2ZXJTaWRlU29ydGluZzohMSxyZXNvcnQ6ITAsaGVhZGVyczp7fSxpZ25vcmVDYXNlOiEwLHNvcnRGb3JjZTpudWxsLHNvcnRMaXN0OltdLHNvcnRBcHBlbmQ6bnVsbCxzb3J0U3RhYmxlOiExLHNvcnRJbml0aWFsT3JkZXI6ImFzYyIsc29ydExvY2FsZUNvbXBhcmU6ITEsc29ydFJlc2V0OiExLHNvcnRSZXN0YXJ0OiExLGVtcHR5VG86ImJvdHRvbSIsc3RyaW5nVG86Im1heCIsZHVwbGljYXRlU3BhbjohMCx0ZXh0RXh0cmFjdGlvbjoiYmFzaWMiLHRleHRBdHRyaWJ1dGU6ImRhdGEtdGV4dCIsdGV4dFNvcnRlcjpudWxsLG51bWJlclNvcnRlcjpudWxsLGluaXRXaWRnZXRzOiEwLHdpZGdldENsYXNzOiJ3aWRnZXQte25hbWV9Iix3aWRnZXRzOltdLHdpZGdldE9wdGlvbnM6e3plYnJhOlsiZXZlbiIsIm9kZCJdfSxpbml0aWFsaXplZDpudWxsLHRhYmxlQ2xhc3M6IiIsY3NzQXNjOiIiLGNzc0Rlc2M6IiIsY3NzTm9uZToiIixjc3NIZWFkZXI6IiIsY3NzSGVhZGVyUm93OiIiLGNzc1Byb2Nlc3Npbmc6IiIsY3NzQ2hpbGRSb3c6InRhYmxlc29ydGVyLWNoaWxkUm93Iixjc3NJbmZvQmxvY2s6InRhYmxlc29ydGVyLWluZm9Pbmx5Iixjc3NOb1NvcnQ6InRhYmxlc29ydGVyLW5vU29ydCIsY3NzSWdub3JlUm93OiJ0YWJsZXNvcnRlci1pZ25vcmVSb3ciLGNzc0ljb246InRhYmxlc29ydGVyLWljb24iLGNzc0ljb25Ob25lOiIiLGNzc0ljb25Bc2M6IiIsY3NzSWNvbkRlc2M6IiIsY3NzSWNvbkRpc2FibGVkOiIiLHBvaW50ZXJDbGljazoiY2xpY2siLHBvaW50ZXJEb3duOiJtb3VzZWRvd24iLHBvaW50ZXJVcDoibW91c2V1cCIsc2VsZWN0b3JIZWFkZXJzOiI+IHRoZWFkIHRoLCA+IHRoZWFkIHRkIixzZWxlY3RvclNvcnQ6InRoLCB0ZCIsc2VsZWN0b3JSZW1vdmU6Ii5yZW1vdmUtbWUiLGRlYnVnOiExLGhlYWRlckxpc3Q6W10sZW1wdGllczp7fSxzdHJpbmdzOnt9LHBhcnNlcnM6W10sZ2xvYmFsaXplOjAsaW1nQXR0cjowfSxjc3M6e3RhYmxlOiJ0YWJsZXNvcnRlciIsY3NzSGFzQ2hpbGQ6InRhYmxlc29ydGVyLWhhc0NoaWxkUm93IixjaGlsZFJvdzoidGFibGVzb3J0ZXItY2hpbGRSb3ciLGNvbGdyb3VwOiJ0YWJsZXNvcnRlci1jb2xncm91cCIsaGVhZGVyOiJ0YWJsZXNvcnRlci1oZWFkZXIiLGhlYWRlclJvdzoidGFibGVzb3J0ZXItaGVhZGVyUm93IixoZWFkZXJJbjoidGFibGVzb3J0ZXItaGVhZGVyLWlubmVyIixpY29uOiJ0YWJsZXNvcnRlci1pY29uIixwcm9jZXNzaW5nOiJ0YWJsZXNvcnRlci1wcm9jZXNzaW5nIixzb3J0QXNjOiJ0YWJsZXNvcnRlci1oZWFkZXJBc2MiLHNvcnREZXNjOiJ0YWJsZXNvcnRlci1oZWFkZXJEZXNjIixzb3J0Tm9uZToidGFibGVzb3J0ZXItaGVhZGVyVW5Tb3J0ZWQifSxsYW5ndWFnZTp7c29ydEFzYzoiQXNjZW5kaW5nIHNvcnQgYXBwbGllZCwgIixzb3J0RGVzYzoiRGVzY2VuZGluZyBzb3J0IGFwcGxpZWQsICIsc29ydE5vbmU6Ik5vIHNvcnQgYXBwbGllZCwgIixzb3J0RGlzYWJsZWQ6InNvcnRpbmcgaXMgZGlzYWJsZWQiLG5leHRBc2M6ImFjdGl2YXRlIHRvIGFwcGx5IGFuIGFzY2VuZGluZyBzb3J0IixuZXh0RGVzYzoiYWN0aXZhdGUgdG8gYXBwbHkgYSBkZXNjZW5kaW5nIHNvcnQiLG5leHROb25lOiJhY3RpdmF0ZSB0byByZW1vdmUgdGhlIHNvcnQifSxyZWdleDp7dGVtcGxhdGVDb250ZW50Oi9ce2NvbnRlbnRcfS9nLHRlbXBsYXRlSWNvbjovXHtpY29uXH0vZyx0ZW1wbGF0ZU5hbWU6L1x7bmFtZVx9L2ksc3BhY2VzOi9ccysvZyxub25Xb3JkOi9cVy9nLGZvcm1FbGVtZW50czovKGlucHV0fHNlbGVjdHxidXR0b258dGV4dGFyZWEpL2ksY2h1bms6LyheKFsrXC1dPyg/OlxkKikoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/KT8kfF4weFswLTlhLWZdKyR8XGQrKS9naSxjaHVua3M6LyheXFwwfFxcMCQpLyxoZXg6L14weFswLTlhLWZdKyQvaSxjb21tYTovLC9nLGRpZ2l0Tm9uVVM6L1tcc3xcLl0vZyxkaWdpdE5lZ2F0aXZlVGVzdDovXlxzKlwoWy5cZF0rXCkvLGRpZ2l0TmVnYXRpdmVSZXBsYWNlOi9eXHMqXCgoWy5cZF0rKVwpLyxkaWdpdFRlc3Q6L15bXC0rKF0/XGQrWyldPyQvLGRpZ2l0UmVwbGFjZTovWywuJyJcc10vZ30sc3RyaW5nOnttYXg6MSxtaW46LTEsZW1wdHltaW46MSxlbXB0eW1heDotMSx6ZXJvOjAsbm9uZTowLCJudWxsIjowLHRvcDohMCxib3R0b206ITF9LGtleUNvZGVzOntlbnRlcjoxM30sZGF0ZXM6e30saW5zdGFuY2VNZXRob2RzOnt9LHNldHVwOmZ1bmN0aW9uKHQscil7aWYodCYmdC50SGVhZCYmMCE9PXQudEJvZGllcy5sZW5ndGgmJiEwIT09dC5oYXNJbml0aWFsaXplZCl7dmFyIGUsbz0iIixzPUEodCksYT1BLm1ldGFkYXRhO3QuaGFzSW5pdGlhbGl6ZWQ9ITEsdC5pc1Byb2Nlc3Npbmc9ITAsdC5jb25maWc9cixBLmRhdGEodCwidGFibGVzb3J0ZXIiLHIpLEwuZGVidWcociwiY29yZSIpJiYoY29uc29sZVtjb25zb2xlLmdyb3VwPyJncm91cCI6ImxvZyJdKCJJbml0aWFsaXppbmcgdGFibGVzb3J0ZXIgdiIrTC52ZXJzaW9uKSxBLmRhdGEodCwic3RhcnRvdmVyYWxsdGltZXIiLG5ldyBEYXRlKSksci5zdXBwb3J0c0RhdGFPYmplY3Q9KChlPUEuZm4uanF1ZXJ5LnNwbGl0KCIuIikpWzBdPXBhcnNlSW50KGVbMF0sMTApLDE8ZVswXXx8MT09PWVbMF0mJjQ8PXBhcnNlSW50KGVbMV0sMTApKSxyLmVtcHR5VG89ci5lbXB0eVRvLnRvTG93ZXJDYXNlKCksci5zdHJpbmdUbz1yLnN0cmluZ1RvLnRvTG93ZXJDYXNlKCksci5sYXN0PXtzb3J0TGlzdDpbXSxjbGlja2VkSW5kZXg6LTF9LC90YWJsZXNvcnRlclwtLy50ZXN0KHMuYXR0cigiY2xhc3MiKSl8fChvPSIiIT09ci50aGVtZT8iIHRhYmxlc29ydGVyLSIrci50aGVtZToiIiksci5uYW1lc3BhY2U/ci5uYW1lc3BhY2U9Ii4iK3IubmFtZXNwYWNlLnJlcGxhY2UoTC5yZWdleC5ub25Xb3JkLCIiKTpyLm5hbWVzcGFjZT0iLnRhYmxlc29ydGVyIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyKSxyLnRhYmxlPXQsci4kdGFibGU9cy5hZGRDbGFzcyhMLmNzcy50YWJsZSsiICIrci50YWJsZUNsYXNzK28rIiAiK3IubmFtZXNwYWNlLnNsaWNlKDEpKS5hdHRyKCJyb2xlIiwiZ3JpZCIpLHIuJGhlYWRlcnM9cy5maW5kKHIuc2VsZWN0b3JIZWFkZXJzKSxyLiR0YWJsZS5jaGlsZHJlbigpLmNoaWxkcmVuKCJ0ciIpLmF0dHIoInJvbGUiLCJyb3ciKSxyLiR0Ym9kaWVzPXMuY2hpbGRyZW4oInRib2R5Om5vdCguIityLmNzc0luZm9CbG9jaysiKSIpLmF0dHIoeyJhcmlhLWxpdmUiOiJwb2xpdGUiLCJhcmlhLXJlbGV2YW50IjoiYWxsIn0pLHIuJHRhYmxlLmNoaWxkcmVuKCJjYXB0aW9uIikubGVuZ3RoJiYoKG89ci4kdGFibGUuY2hpbGRyZW4oImNhcHRpb24iKVswXSkuaWR8fChvLmlkPXIubmFtZXNwYWNlLnNsaWNlKDEpKyJjYXB0aW9uIiksci4kdGFibGUuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixvLmlkKSksci53aWRnZXRJbml0PXt9LHIudGV4dEV4dHJhY3Rpb249ci4kdGFibGUuYXR0cigiZGF0YS10ZXh0LWV4dHJhY3Rpb24iKXx8ci50ZXh0RXh0cmFjdGlvbnx8ImJhc2ljIixMLmJ1aWxkSGVhZGVycyhyKSxMLmZpeENvbHVtbldpZHRoKHQpLEwuYWRkV2lkZ2V0RnJvbUNsYXNzKHQpLEwuYXBwbHlXaWRnZXRPcHRpb25zKHQpLEwuc2V0dXBQYXJzZXJzKHIpLHIudG90YWxSb3dzPTAsci5kZWJ1ZyYmTC52YWxpZGF0ZU9wdGlvbnMociksci5kZWxheUluaXR8fEwuYnVpbGRDYWNoZShyKSxMLmJpbmRFdmVudHModCxyLiRoZWFkZXJzLCEwKSxMLmJpbmRNZXRob2RzKHIpLHIuc3VwcG9ydHNEYXRhT2JqZWN0JiZ2b2lkIDAhPT1zLmRhdGEoKS5zb3J0bGlzdD9yLnNvcnRMaXN0PXMuZGF0YSgpLnNvcnRsaXN0OmEmJnMubWV0YWRhdGEoKSYmcy5tZXRhZGF0YSgpLnNvcnRsaXN0JiYoci5zb3J0TGlzdD1zLm1ldGFkYXRhKCkuc29ydGxpc3QpLEwuYXBwbHlXaWRnZXQodCwhMCksMDxyLnNvcnRMaXN0Lmxlbmd0aD8oci5sYXN0LnNvcnRMaXN0PXIuc29ydExpc3QsTC5zb3J0T24ocixyLnNvcnRMaXN0LHt9LCFyLmluaXRXaWRnZXRzKSk6KEwuc2V0SGVhZGVyc0NzcyhyKSxyLmluaXRXaWRnZXRzJiZMLmFwcGx5V2lkZ2V0KHQsITEpKSxyLnNob3dQcm9jZXNzaW5nJiZzLnVuYmluZCgic29ydEJlZ2luIityLm5hbWVzcGFjZSsiIHNvcnRFbmQiK3IubmFtZXNwYWNlKS5iaW5kKCJzb3J0QmVnaW4iK3IubmFtZXNwYWNlKyIgc29ydEVuZCIrci5uYW1lc3BhY2UsZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KHIudGltZXJQcm9jZXNzaW5nKSxMLmlzUHJvY2Vzc2luZyh0KSwic29ydEJlZ2luIj09PWUudHlwZSYmKHIudGltZXJQcm9jZXNzaW5nPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtMLmlzUHJvY2Vzc2luZyh0LCEwKX0sNTAwKSl9KSx0Lmhhc0luaXRpYWxpemVkPSEwLHQuaXNQcm9jZXNzaW5nPSExLEwuZGVidWcociwiY29yZSIpJiYoY29uc29sZS5sb2coIk92ZXJhbGwgaW5pdGlhbGl6YXRpb24gdGltZToiK0wuYmVuY2htYXJrKEEuZGF0YSh0LCJzdGFydG92ZXJhbGx0aW1lciIpKSksTC5kZWJ1ZyhyLCJjb3JlIikmJmNvbnNvbGUuZ3JvdXBFbmQmJmNvbnNvbGUuZ3JvdXBFbmQoKSkscy50cmlnZ2VySGFuZGxlcigidGFibGVzb3J0ZXItaW5pdGlhbGl6ZWQiLHQpLCJmdW5jdGlvbiI9PXR5cGVvZiByLmluaXRpYWxpemVkJiZyLmluaXRpYWxpemVkKHQpfWVsc2UgTC5kZWJ1ZyhyLCJjb3JlIikmJih0Lmhhc0luaXRpYWxpemVkP2NvbnNvbGUud2FybigiU3RvcHBpbmcgaW5pdGlhbGl6YXRpb24uIFRhYmxlc29ydGVyIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQiKTpjb25zb2xlLmVycm9yKCJTdG9wcGluZyBpbml0aWFsaXphdGlvbiEgTm8gdGFibGUsIHRoZWFkIG9yIHRib2R5Iix0KSl9LGJpbmRNZXRob2RzOmZ1bmN0aW9uKHIpe3ZhciBlPXIuJHRhYmxlLHQ9ci5uYW1lc3BhY2Usbz0ic29ydFJlc2V0IHVwZGF0ZSB1cGRhdGVSb3dzIHVwZGF0ZUFsbCB1cGRhdGVIZWFkZXJzIGFkZFJvd3MgdXBkYXRlQ2VsbCB1cGRhdGVDb21wbGV0ZSBzb3J0b24gYXBwZW5kQ2FjaGUgdXBkYXRlQ2FjaGUgYXBwbHlXaWRnZXRJZCBhcHBseVdpZGdldHMgcmVmcmVzaFdpZGdldHMgZGVzdHJveSBtb3VzZXVwIG1vdXNlbGVhdmUgIi5zcGxpdCgiICIpLmpvaW4odCsiICIpO2UudW5iaW5kKG8ucmVwbGFjZShMLnJlZ2V4LnNwYWNlcywiICIpKS5iaW5kKCJzb3J0UmVzZXQiK3QsZnVuY3Rpb24oZSx0KXtlLnN0b3BQcm9wYWdhdGlvbigpLEwuc29ydFJlc2V0KHRoaXMuY29uZmlnLGZ1bmN0aW9uKGUpe2UuaXNBcHBseWluZ1dpZGdldHM/c2V0VGltZW91dChmdW5jdGlvbigpe0wuYXBwbHlXaWRnZXQoZSwiIix0KX0sMTAwKTpMLmFwcGx5V2lkZ2V0KGUsIiIsdCl9KX0pLmJpbmQoInVwZGF0ZUFsbCIrdCxmdW5jdGlvbihlLHQscil7ZS5zdG9wUHJvcGFnYXRpb24oKSxMLnVwZGF0ZUFsbCh0aGlzLmNvbmZpZyx0LHIpfSkuYmluZCgidXBkYXRlIit0KyIgdXBkYXRlUm93cyIrdCxmdW5jdGlvbihlLHQscil7ZS5zdG9wUHJvcGFnYXRpb24oKSxMLnVwZGF0ZSh0aGlzLmNvbmZpZyx0LHIpfSkuYmluZCgidXBkYXRlSGVhZGVycyIrdCxmdW5jdGlvbihlLHQpe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC51cGRhdGVIZWFkZXJzKHRoaXMuY29uZmlnLHQpfSkuYmluZCgidXBkYXRlQ2VsbCIrdCxmdW5jdGlvbihlLHQscixvKXtlLnN0b3BQcm9wYWdhdGlvbigpLEwudXBkYXRlQ2VsbCh0aGlzLmNvbmZpZyx0LHIsbyl9KS5iaW5kKCJhZGRSb3dzIit0LGZ1bmN0aW9uKGUsdCxyLG8pe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5hZGRSb3dzKHRoaXMuY29uZmlnLHQscixvKX0pLmJpbmQoInVwZGF0ZUNvbXBsZXRlIit0LGZ1bmN0aW9uKCl7dGhpcy5pc1VwZGF0aW5nPSExfSkuYmluZCgic29ydG9uIit0LGZ1bmN0aW9uKGUsdCxyLG8pe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5zb3J0T24odGhpcy5jb25maWcsdCxyLG8pfSkuYmluZCgiYXBwZW5kQ2FjaGUiK3QsZnVuY3Rpb24oZSx0LHIpe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5hcHBlbmRDYWNoZSh0aGlzLmNvbmZpZyxyKSxBLmlzRnVuY3Rpb24odCkmJnQodGhpcyl9KS5iaW5kKCJ1cGRhdGVDYWNoZSIrdCxmdW5jdGlvbihlLHQscil7ZS5zdG9wUHJvcGFnYXRpb24oKSxMLnVwZGF0ZUNhY2hlKHRoaXMuY29uZmlnLHQscil9KS5iaW5kKCJhcHBseVdpZGdldElkIit0LGZ1bmN0aW9uKGUsdCl7ZS5zdG9wUHJvcGFnYXRpb24oKSxMLmFwcGx5V2lkZ2V0SWQodGhpcyx0KX0pLmJpbmQoImFwcGx5V2lkZ2V0cyIrdCxmdW5jdGlvbihlLHQpe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5hcHBseVdpZGdldCh0aGlzLCExLHQpfSkuYmluZCgicmVmcmVzaFdpZGdldHMiK3QsZnVuY3Rpb24oZSx0LHIpe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5yZWZyZXNoV2lkZ2V0cyh0aGlzLHQscil9KS5iaW5kKCJyZW1vdmVXaWRnZXQiK3QsZnVuY3Rpb24oZSx0LHIpe2Uuc3RvcFByb3BhZ2F0aW9uKCksTC5yZW1vdmVXaWRnZXQodGhpcyx0LHIpfSkuYmluZCgiZGVzdHJveSIrdCxmdW5jdGlvbihlLHQscil7ZS5zdG9wUHJvcGFnYXRpb24oKSxMLmRlc3Ryb3kodGhpcyx0LHIpfSkuYmluZCgicmVzZXRUb0xvYWRTdGF0ZSIrdCxmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpLEwucmVtb3ZlV2lkZ2V0KHRoaXMsITAsITEpO3ZhciB0PUEuZXh0ZW5kKCEwLHt9LHIub3JpZ2luYWxTZXR0aW5ncyk7KHI9QS5leHRlbmQoITAse30sTC5kZWZhdWx0cyx0KSkub3JpZ2luYWxTZXR0aW5ncz10LHRoaXMuaGFzSW5pdGlhbGl6ZWQ9ITEsTC5zZXR1cCh0aGlzLHIpfSl9LGJpbmRFdmVudHM6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLGk9KGU9QShlKVswXSkuY29uZmlnLHM9aS5uYW1lc3BhY2UsZD1udWxsOyEwIT09ciYmKHQuYWRkQ2xhc3Mocy5zbGljZSgxKSsiX2V4dHJhX2hlYWRlcnMiKSwobz1MLmdldENsb3Nlc3QodCwidGFibGUiKSkubGVuZ3RoJiYiVEFCTEUiPT09b1swXS5ub2RlTmFtZSYmb1swXSE9PWUmJkEob1swXSkuYWRkQ2xhc3Mocy5zbGljZSgxKSsiX2V4dHJhX3RhYmxlIikpLG89KGkucG9pbnRlckRvd24rIiAiK2kucG9pbnRlclVwKyIgIitpLnBvaW50ZXJDbGljaysiIHNvcnQga2V5dXAgIikucmVwbGFjZShMLnJlZ2V4LnNwYWNlcywiICIpLnNwbGl0KCIgIikuam9pbihzKyIgIiksdC5maW5kKGkuc2VsZWN0b3JTb3J0KS5hZGQodC5maWx0ZXIoaS5zZWxlY3RvclNvcnQpKS51bmJpbmQobykuYmluZChvLGZ1bmN0aW9uKGUsdCl7dmFyIHIsbyxzLGE9QShlLnRhcmdldCksbj0iICIrZS50eXBlKyIgIjtpZighKDEhPT0oZS53aGljaHx8ZS5idXR0b24pJiYhbi5tYXRjaCgiICIraS5wb2ludGVyQ2xpY2srIiB8IHNvcnQgfCBrZXl1cCAiKXx8IiBrZXl1cCAiPT09biYmZS53aGljaCE9PUwua2V5Q29kZXMuZW50ZXJ8fG4ubWF0Y2goIiAiK2kucG9pbnRlckNsaWNrKyIgIikmJnZvaWQgMCE9PWUud2hpY2h8fG4ubWF0Y2goIiAiK2kucG9pbnRlclVwKyIgIikmJmQhPT1lLnRhcmdldCYmITAhPT10KSl7aWYobi5tYXRjaCgiICIraS5wb2ludGVyRG93bisiICIpKXJldHVybiBkPWUudGFyZ2V0LHZvaWQoIjEiPT09KHM9YS5qcXVlcnkuc3BsaXQoIi4iKSlbMF0mJnNbMV08NCYmZS5wcmV2ZW50RGVmYXVsdCgpKTtpZihkPW51bGwscj1MLmdldENsb3Nlc3QoQSh0aGlzKSwiLiIrTC5jc3MuaGVhZGVyKSxMLnJlZ2V4LmZvcm1FbGVtZW50cy50ZXN0KGUudGFyZ2V0Lm5vZGVOYW1lKXx8YS5oYXNDbGFzcyhpLmNzc05vU29ydCl8fDA8YS5wYXJlbnRzKCIuIitpLmNzc05vU29ydCkubGVuZ3RofHxyLmhhc0NsYXNzKCJzb3J0ZXItZmFsc2UiKXx8MDxhLnBhcmVudHMoImJ1dHRvbiIpLmxlbmd0aClyZXR1cm4haS5jYW5jZWxTZWxlY3Rpb247aS5kZWxheUluaXQmJkwuaXNFbXB0eU9iamVjdChpLmNhY2hlKSYmTC5idWlsZENhY2hlKGkpLGkubGFzdC5jbGlja2VkSW5kZXg9ci5hdHRyKCJkYXRhLWNvbHVtbiIpfHxyLmluZGV4KCksKG89aS4kaGVhZGVySW5kZXhlZFtpLmxhc3QuY2xpY2tlZEluZGV4XVswXSkmJiFvLnNvcnREaXNhYmxlZCYmTC5pbml0U29ydChpLG8sZSl9fSksaS5jYW5jZWxTZWxlY3Rpb24mJnQuYXR0cigidW5zZWxlY3RhYmxlIiwib24iKS5iaW5kKCJzZWxlY3RzdGFydCIsITEpLmNzcyh7InVzZXItc2VsZWN0Ijoibm9uZSIsTW96VXNlclNlbGVjdDoibm9uZSJ9KX0sYnVpbGRIZWFkZXJzOmZ1bmN0aW9uKGQpe3ZhciBlLGwsdCxyO2ZvcihkLmhlYWRlckxpc3Q9W10sZC5oZWFkZXJDb250ZW50PVtdLGQuc29ydFZhcnM9W10sTC5kZWJ1ZyhkLCJjb3JlIikmJih0PW5ldyBEYXRlKSxkLmNvbHVtbnM9TC5jb21wdXRlQ29sdW1uSW5kZXgoZC4kdGFibGUuY2hpbGRyZW4oInRoZWFkLCB0Zm9vdCIpLmNoaWxkcmVuKCJ0ciIpKSxsPWQuY3NzSWNvbj8nPGkgY2xhc3M9IicrKGQuY3NzSWNvbj09PUwuY3NzLmljb24/TC5jc3MuaWNvbjpkLmNzc0ljb24rIiAiK0wuY3NzLmljb24pKyciPjwvaT4nOiIiLGQuJGhlYWRlcnM9QShBLm1hcChkLiR0YWJsZS5maW5kKGQuc2VsZWN0b3JIZWFkZXJzKSxmdW5jdGlvbihlLHQpe3ZhciByLG8scyxhLG4saT1BKGUpO2lmKCFMLmdldENsb3Nlc3QoaSwidHIiKS5oYXNDbGFzcyhkLmNzc0lnbm9yZVJvdykpcmV0dXJuLyh0aHx0ZCkvaS50ZXN0KGUubm9kZU5hbWUpfHwobj1MLmdldENsb3Nlc3QoaSwidGgsIHRkIiksaS5hdHRyKCJkYXRhLWNvbHVtbiIsbi5hdHRyKCJkYXRhLWNvbHVtbiIpKSkscj1MLmdldENvbHVtbkRhdGEoZC50YWJsZSxkLmhlYWRlcnMsdCwhMCksZC5oZWFkZXJDb250ZW50W3RdPWkuaHRtbCgpLCIiPT09ZC5oZWFkZXJUZW1wbGF0ZXx8aS5maW5kKCIuIitMLmNzcy5oZWFkZXJJbikubGVuZ3RofHwoYT1kLmhlYWRlclRlbXBsYXRlLnJlcGxhY2UoTC5yZWdleC50ZW1wbGF0ZUNvbnRlbnQsaS5odG1sKCkpLnJlcGxhY2UoTC5yZWdleC50ZW1wbGF0ZUljb24saS5maW5kKCIuIitMLmNzcy5pY29uKS5sZW5ndGg/IiI6bCksZC5vblJlbmRlclRlbXBsYXRlJiYobz1kLm9uUmVuZGVyVGVtcGxhdGUuYXBwbHkoaSxbdCxhXSkpJiYic3RyaW5nIj09dHlwZW9mIG8mJihhPW8pLGkuaHRtbCgnPGRpdiBjbGFzcz0iJytMLmNzcy5oZWFkZXJJbisnIj4nK2ErIjwvZGl2PiIpKSxkLm9uUmVuZGVySGVhZGVyJiZkLm9uUmVuZGVySGVhZGVyLmFwcGx5KGksW3QsZCxkLiR0YWJsZV0pLHM9cGFyc2VJbnQoaS5hdHRyKCJkYXRhLWNvbHVtbiIpLDEwKSxlLmNvbHVtbj1zLG49TC5nZXRPcmRlcihMLmdldERhdGEoaSxyLCJzb3J0SW5pdGlhbE9yZGVyIil8fGQuc29ydEluaXRpYWxPcmRlciksZC5zb3J0VmFyc1tzXT17Y291bnQ6LTEsb3JkZXI6bj9kLnNvcnRSZXNldD9bMSwwLDJdOlsxLDBdOmQuc29ydFJlc2V0P1swLDEsMl06WzAsMV0sbG9ja2VkT3JkZXI6ITEsc29ydGVkQnk6IiJ9LHZvaWQgMCE9PShuPUwuZ2V0RGF0YShpLHIsImxvY2tlZE9yZGVyIil8fCExKSYmITEhPT1uJiYoZC5zb3J0VmFyc1tzXS5sb2NrZWRPcmRlcj0hMCxkLnNvcnRWYXJzW3NdLm9yZGVyPUwuZ2V0T3JkZXIobik/WzEsMV06WzAsMF0pLGQuaGVhZGVyTGlzdFt0XT1lLGkuYWRkQ2xhc3MoTC5jc3MuaGVhZGVyKyIgIitkLmNzc0hlYWRlciksTC5nZXRDbG9zZXN0KGksInRyIikuYWRkQ2xhc3MoTC5jc3MuaGVhZGVyUm93KyIgIitkLmNzc0hlYWRlclJvdykuYXR0cigicm9sZSIsInJvdyIpLGQudGFiSW5kZXgmJmkuYXR0cigidGFiaW5kZXgiLDApLGV9KSksZC4kaGVhZGVySW5kZXhlZD1bXSxyPTA7cjxkLmNvbHVtbnM7cisrKUwuaXNFbXB0eU9iamVjdChkLnNvcnRWYXJzW3JdKSYmKGQuc29ydFZhcnNbcl09e30pLGU9ZC4kaGVhZGVycy5maWx0ZXIoJ1tkYXRhLWNvbHVtbj0iJytyKyciXScpLGQuJGhlYWRlckluZGV4ZWRbcl09ZS5sZW5ndGg/ZS5ub3QoIi5zb3J0ZXItZmFsc2UiKS5sZW5ndGg/ZS5ub3QoIi5zb3J0ZXItZmFsc2UiKS5maWx0ZXIoIjpsYXN0Iik6ZS5maWx0ZXIoIjpsYXN0Iik6QSgpO2QuJHRhYmxlLmZpbmQoZC5zZWxlY3RvckhlYWRlcnMpLmF0dHIoe3Njb3BlOiJjb2wiLHJvbGU6ImNvbHVtbmhlYWRlciJ9KSxMLnVwZGF0ZUhlYWRlcihkKSxMLmRlYnVnKGQsImNvcmUiKSYmKGNvbnNvbGUubG9nKCJCdWlsdCBoZWFkZXJzOiIrTC5iZW5jaG1hcmsodCkpLGNvbnNvbGUubG9nKGQuJGhlYWRlcnMpKX0sYWRkSW5zdGFuY2VNZXRob2RzOmZ1bmN0aW9uKGUpe0EuZXh0ZW5kKEwuaW5zdGFuY2VNZXRob2RzLGUpfSxzZXR1cFBhcnNlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgcixvLHMsYSxuLGksZCxsLGMsZyxwLHUsZixoLG09ZS50YWJsZSxiPTAseT1MLmRlYnVnKGUsImNvcmUiKSx3PXt9O2lmKGUuJHRib2RpZXM9ZS4kdGFibGUuY2hpbGRyZW4oInRib2R5Om5vdCguIitlLmNzc0luZm9CbG9jaysiKSIpLDA9PT0oaD0oZj12b2lkIDA9PT10P2UuJHRib2RpZXM6dCkubGVuZ3RoKSlyZXR1cm4geT9jb25zb2xlLndhcm4oIldhcm5pbmc6ICpFbXB0eSB0YWJsZSEqIE5vdCBidWlsZGluZyBhIHBhcnNlciBjYWNoZSIpOiIiO2Zvcih5JiYodT1uZXcgRGF0ZSxjb25zb2xlW2NvbnNvbGUuZ3JvdXA/Imdyb3VwIjoibG9nIl0oIkRldGVjdGluZyBwYXJzZXJzIGZvciBlYWNoIGNvbHVtbiIpKSxvPXtleHRyYWN0b3JzOltdLHBhcnNlcnM6W119O2I8aDspe2lmKChyPWZbYl0ucm93cykubGVuZ3RoKWZvcihuPTAsYT1lLmNvbHVtbnMsaT0wO2k8YTtpKyspe2lmKChkPWUuJGhlYWRlckluZGV4ZWRbbl0pJiZkLmxlbmd0aCYmKGw9TC5nZXRDb2x1bW5EYXRhKG0sZS5oZWFkZXJzLG4pLHA9TC5nZXRQYXJzZXJCeUlkKEwuZ2V0RGF0YShkLGwsImV4dHJhY3RvciIpKSxnPUwuZ2V0UGFyc2VyQnlJZChMLmdldERhdGEoZCxsLCJzb3J0ZXIiKSksYz0iZmFsc2UiPT09TC5nZXREYXRhKGQsbCwicGFyc2VyIiksZS5lbXB0aWVzW25dPShMLmdldERhdGEoZCxsLCJlbXB0eSIpfHxlLmVtcHR5VG98fChlLmVtcHR5VG9Cb3R0b20/ImJvdHRvbSI6InRvcCIpKS50b0xvd2VyQ2FzZSgpLGUuc3RyaW5nc1tuXT0oTC5nZXREYXRhKGQsbCwic3RyaW5nIil8fGUuc3RyaW5nVG98fCJtYXgiKS50b0xvd2VyQ2FzZSgpLGMmJihnPUwuZ2V0UGFyc2VyQnlJZCgibm8tcGFyc2VyIikpLHA9cHx8ITEsZz1nfHxMLmRldGVjdFBhcnNlckZvckNvbHVtbihlLHIsLTEsbikseSYmKHdbIigiK24rIikgIitkLnRleHQoKV09e3BhcnNlcjpnLmlkLGV4dHJhY3RvcjpwP3AuaWQ6Im5vbmUiLHN0cmluZzplLnN0cmluZ3Nbbl0sZW1wdHk6ZS5lbXB0aWVzW25dfSksby5wYXJzZXJzW25dPWcsby5leHRyYWN0b3JzW25dPXAsMDwocz1kWzBdLmNvbFNwYW4tMSkpKWZvcihuKz1zLGErPXM7MDxzKzE7KW8ucGFyc2Vyc1tuLXNdPWcsby5leHRyYWN0b3JzW24tc109cCxzLS07bisrfWIrPW8ucGFyc2Vycy5sZW5ndGg/aDoxfXkmJihMLmlzRW1wdHlPYmplY3Qodyk/Y29uc29sZS53YXJuKCIgIE5vIHBhcnNlcnMgZGV0ZWN0ZWQhIik6Y29uc29sZVtjb25zb2xlLnRhYmxlPyJ0YWJsZSI6ImxvZyJdKHcpLGNvbnNvbGUubG9nKCJDb21wbGV0ZWQgZGV0ZWN0aW5nIHBhcnNlcnMiK0wuYmVuY2htYXJrKHUpKSxjb25zb2xlLmdyb3VwRW5kJiZjb25zb2xlLmdyb3VwRW5kKCkpLGUucGFyc2Vycz1vLnBhcnNlcnMsZS5leHRyYWN0b3JzPW8uZXh0cmFjdG9yc30sYWRkUGFyc2VyOmZ1bmN0aW9uKGUpe3ZhciB0LHI9TC5wYXJzZXJzLmxlbmd0aCxvPSEwO2Zvcih0PTA7dDxyO3QrKylMLnBhcnNlcnNbdF0uaWQudG9Mb3dlckNhc2UoKT09PWUuaWQudG9Mb3dlckNhc2UoKSYmKG89ITEpO28mJihMLnBhcnNlcnNbTC5wYXJzZXJzLmxlbmd0aF09ZSl9LGdldFBhcnNlckJ5SWQ6ZnVuY3Rpb24oZSl7aWYoImZhbHNlIj09ZSlyZXR1cm4hMTt2YXIgdCxyPUwucGFyc2Vycy5sZW5ndGg7Zm9yKHQ9MDt0PHI7dCsrKWlmKEwucGFyc2Vyc1t0XS5pZC50b0xvd2VyQ2FzZSgpPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpcmV0dXJuIEwucGFyc2Vyc1t0XTtyZXR1cm4hMX0sZGV0ZWN0UGFyc2VyRm9yQ29sdW1uOmZ1bmN0aW9uKGUsdCxyLG8pe2Zvcih2YXIgcyxhLG4saT1MLnBhcnNlcnMubGVuZ3RoLGQ9ITEsbD0iIixjPUwuZGVidWcoZSwiY29yZSIpLGc9ITA7IiI9PT1sJiZnOykobj10Wysrcl0pJiZyPDUwP24uY2xhc3NOYW1lLmluZGV4T2YoTC5jc3NJZ25vcmVSb3cpPDAmJihkPXRbcl0uY2VsbHNbb10sbD1MLmdldEVsZW1lbnRUZXh0KGUsZCxvKSxhPUEoZCksYyYmY29uc29sZS5sb2coIkNoZWNraW5nIGlmIHZhbHVlIHdhcyBlbXB0eSBvbiByb3cgIityKyIsIGNvbHVtbjogIitvKyc6ICInK2wrJyInKSk6Zz0hMTtmb3IoOzA8PS0taTspaWYoKHM9TC5wYXJzZXJzW2ldKSYmInRleHQiIT09cy5pZCYmcy5pcyYmcy5pcyhsLGUudGFibGUsZCxhKSlyZXR1cm4gcztyZXR1cm4gTC5nZXRQYXJzZXJCeUlkKCJ0ZXh0Iil9LGdldEVsZW1lbnRUZXh0OmZ1bmN0aW9uKGUsdCxyKXtpZighdClyZXR1cm4iIjt2YXIgbyxzPWUudGV4dEV4dHJhY3Rpb258fCIiLGE9dC5qcXVlcnk/dDpBKHQpO3JldHVybiJzdHJpbmciPT10eXBlb2Ygcz8iYmFzaWMiPT09cyYmdm9pZCAwIT09KG89YS5hdHRyKGUudGV4dEF0dHJpYnV0ZSkpP0EudHJpbShvKTpBLnRyaW0odC50ZXh0Q29udGVudHx8YS50ZXh0KCkpOiJmdW5jdGlvbiI9PXR5cGVvZiBzP0EudHJpbShzKGFbMF0sZS50YWJsZSxyKSk6ImZ1bmN0aW9uIj09dHlwZW9mKG89TC5nZXRDb2x1bW5EYXRhKGUudGFibGUscyxyKSk/QS50cmltKG8oYVswXSxlLnRhYmxlLHIpKTpBLnRyaW0oYVswXS50ZXh0Q29udGVudHx8YS50ZXh0KCkpfSxnZXRQYXJzZWRUZXh0OmZ1bmN0aW9uKGUsdCxyLG8pe3ZvaWQgMD09PW8mJihvPUwuZ2V0RWxlbWVudFRleHQoZSx0LHIpKTt2YXIgcz0iIitvLGE9ZS5wYXJzZXJzW3JdLG49ZS5leHRyYWN0b3JzW3JdO3JldHVybiBhJiYobiYmImZ1bmN0aW9uIj09dHlwZW9mIG4uZm9ybWF0JiYobz1uLmZvcm1hdChvLGUudGFibGUsdCxyKSkscz0ibm8tcGFyc2VyIj09PWEuaWQ/IiI6YS5mb3JtYXQoIiIrbyxlLnRhYmxlLHQsciksZS5pZ25vcmVDYXNlJiYic3RyaW5nIj09dHlwZW9mIHMmJihzPXMudG9Mb3dlckNhc2UoKSkpLHN9LGJ1aWxkQ2FjaGU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLHMsYSxuLGksZCxsLGMsZyxwLHUsZixoLG0sYix5LHcseCx2LEMsJCxJLEQ9ZS50YWJsZSxSPWUucGFyc2VycyxUPUwuZGVidWcoZSwiY29yZSIpO2lmKGUuJHRib2RpZXM9ZS4kdGFibGUuY2hpbGRyZW4oInRib2R5Om5vdCguIitlLmNzc0luZm9CbG9jaysiKSIpLGw9dm9pZCAwPT09cj9lLiR0Ym9kaWVzOnIsZS5jYWNoZT17fSxlLnRvdGFsUm93cz0wLCFSKXJldHVybiBUP2NvbnNvbGUud2FybigiV2FybmluZzogKkVtcHR5IHRhYmxlISogTm90IGJ1aWxkaW5nIGEgY2FjaGUiKToiIjtmb3IoVCYmKGY9bmV3IERhdGUpLGUuc2hvd1Byb2Nlc3NpbmcmJkwuaXNQcm9jZXNzaW5nKEQsITApLGQ9MDtkPGwubGVuZ3RoO2QrKyl7Zm9yKHk9W10sbz1lLmNhY2hlW2RdPXtub3JtYWxpemVkOltdfSxoPWxbZF0mJmxbZF0ucm93cy5sZW5ndGh8fDAsbj0wO248aDsrK24paWYobT17Y2hpbGQ6W10scmF3OltdfSxnPVtdLCEoYz1BKGxbZF0ucm93c1tuXSkpLmhhc0NsYXNzKGUuc2VsZWN0b3JSZW1vdmUuc2xpY2UoMSkpKWlmKGMuaGFzQ2xhc3MoZS5jc3NDaGlsZFJvdykmJjAhPT1uKWZvcigkPW8ubm9ybWFsaXplZC5sZW5ndGgtMSwoYj1vLm5vcm1hbGl6ZWRbJF1bZS5jb2x1bW5zXSkuJHJvdz1iLiRyb3cuYWRkKGMpLGMucHJldigpLmhhc0NsYXNzKGUuY3NzQ2hpbGRSb3cpfHxjLnByZXYoKS5hZGRDbGFzcyhMLmNzcy5jc3NIYXNDaGlsZCkscD1jLmNoaWxkcmVuKCJ0aCwgdGQiKSwkPWIuY2hpbGQubGVuZ3RoLGIuY2hpbGRbJF09W10seD0wLEM9ZS5jb2x1bW5zLGk9MDtpPEM7aSsrKSh1PXBbaV0pJiYoYi5jaGlsZFskXVtpXT1MLmdldFBhcnNlZFRleHQoZSx1LGkpLDA8KHc9cFtpXS5jb2xTcGFuLTEpJiYoeCs9dyxDKz13KSkseCsrO2Vsc2V7Zm9yKG0uJHJvdz1jLG0ub3JkZXI9bix4PTAsQz1lLmNvbHVtbnMsaT0wO2k8QzsrK2kpe2lmKCh1PWNbMF0uY2VsbHNbaV0pJiZ4PGUuY29sdW1ucyYmKCEodj12b2lkIDAhPT1SW3hdKSYmVCYmY29uc29sZS53YXJuKCJObyBwYXJzZXIgZm91bmQgZm9yIHJvdzogIituKyIsIGNvbHVtbjogIitpKyc7IGNlbGwgY29udGFpbmluZzogIicrQSh1KS50ZXh0KCkrJyI7IGRvZXMgaXQgaGF2ZSBhIGhlYWRlcj8nKSxzPUwuZ2V0RWxlbWVudFRleHQoZSx1LHgpLG0ucmF3W3hdPXMsYT1MLmdldFBhcnNlZFRleHQoZSx1LHgscyksZ1t4XT1hLHYmJiJudW1lcmljIj09PShSW3hdLnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpJiYoeVt4XT1NYXRoLm1heChNYXRoLmFicyhhKXx8MCx5W3hdfHwwKSksMDwodz11LmNvbFNwYW4tMSkpKXtmb3IoST0wO0k8PXc7KWE9ZS5kdXBsaWNhdGVTcGFufHwwPT09ST9hOiJzdHJpbmciIT10eXBlb2YgZS50ZXh0RXh0cmFjdGlvbiYmTC5nZXRFbGVtZW50VGV4dChlLHUseCtJKXx8IiIsbS5yYXdbeCtJXT1hLGdbeCtJXT1hLEkrKzt4Kz13LEMrPXd9eCsrfWdbZS5jb2x1bW5zXT1tLG8ubm9ybWFsaXplZFtvLm5vcm1hbGl6ZWQubGVuZ3RoXT1nfW8uY29sTWF4PXksZS50b3RhbFJvd3MrPW8ubm9ybWFsaXplZC5sZW5ndGh9aWYoZS5zaG93UHJvY2Vzc2luZyYmTC5pc1Byb2Nlc3NpbmcoRCksVCl7Zm9yKCQ9TWF0aC5taW4oNSxlLmNhY2hlWzBdLm5vcm1hbGl6ZWQubGVuZ3RoKSxjb25zb2xlW2NvbnNvbGUuZ3JvdXA/Imdyb3VwIjoibG9nIl0oIkJ1aWxkaW5nIGNhY2hlIGZvciAiK2UudG90YWxSb3dzKyIgcm93cyAoc2hvd2luZyAiKyQrIiByb3dzIGluIGxvZykgYW5kICIrZS5jb2x1bW5zKyIgY29sdW1ucyIrTC5iZW5jaG1hcmsoZikpLHM9e30saT0wO2k8ZS5jb2x1bW5zO2krKylmb3IoeD0wO3g8JDt4Kyspc1sicm93OiAiK3hdfHwoc1sicm93OiAiK3hdPXt9KSxzWyJyb3c6ICIreF1bZS4kaGVhZGVySW5kZXhlZFtpXS50ZXh0KCldPWUuY2FjaGVbMF0ubm9ybWFsaXplZFt4XVtpXTtjb25zb2xlW2NvbnNvbGUudGFibGU/InRhYmxlIjoibG9nIl0ocyksY29uc29sZS5ncm91cEVuZCYmY29uc29sZS5ncm91cEVuZCgpfUEuaXNGdW5jdGlvbih0KSYmdChEKX0sZ2V0Q29sdW1uVGV4dDpmdW5jdGlvbihlLHQscixvKXt2YXIgcyxhLG4saSxkLGwsYyxnLHAsdSxmPSJmdW5jdGlvbiI9PXR5cGVvZiByLGg9ImFsbCI9PT10LG09e3JhdzpbXSxwYXJzZWQ6W10sJGNlbGw6W119LGI9KGU9QShlKVswXSkuY29uZmlnO2lmKCFMLmlzRW1wdHlPYmplY3QoYikpe2ZvcihkPWIuJHRib2RpZXMubGVuZ3RoLHM9MDtzPGQ7cysrKWZvcihsPShuPWIuY2FjaGVbc10ubm9ybWFsaXplZCkubGVuZ3RoLGE9MDthPGw7YSsrKWk9blthXSxvJiYhaVtiLmNvbHVtbnNdLiRyb3cuaXMobyl8fCh1PSEwLGc9aD9pLnNsaWNlKDAsYi5jb2x1bW5zKTppW3RdLGk9aVtiLmNvbHVtbnNdLGM9aD9pLnJhdzppLnJhd1t0XSxwPWg/aS4kcm93LmNoaWxkcmVuKCk6aS4kcm93LmNoaWxkcmVuKCkuZXEodCksZiYmKHU9cih7dGJvZHlJbmRleDpzLHJvd0luZGV4OmEscGFyc2VkOmcscmF3OmMsJHJvdzppLiRyb3csJGNlbGw6cH0pKSwhMSE9PXUmJihtLnBhcnNlZFttLnBhcnNlZC5sZW5ndGhdPWcsbS5yYXdbbS5yYXcubGVuZ3RoXT1jLG0uJGNlbGxbbS4kY2VsbC5sZW5ndGhdPXApKTtyZXR1cm4gbX1MLmRlYnVnKGIsImNvcmUiKSYmY29uc29sZS53YXJuKCJObyBjYWNoZSBmb3VuZCAtIGFib3J0aW5nIGdldENvbHVtblRleHQgZnVuY3Rpb24hIil9LHNldEhlYWRlcnNDc3M6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZShlLHQpe2UucmVtb3ZlQ2xhc3MobikuYWRkQ2xhc3MoaVt0XSkuYXR0cigiYXJpYS1zb3J0IixsW3RdKS5maW5kKCIuIitMLmNzcy5pY29uKS5yZW1vdmVDbGFzcyhkWzJdKS5hZGRDbGFzcyhkW3RdKX12YXIgdCxyLG89YS5zb3J0TGlzdCxzPW8ubGVuZ3RoLG49TC5jc3Muc29ydE5vbmUrIiAiK2EuY3NzTm9uZSxpPVtMLmNzcy5zb3J0QXNjKyIgIithLmNzc0FzYyxMLmNzcy5zb3J0RGVzYysiICIrYS5jc3NEZXNjXSxkPVthLmNzc0ljb25Bc2MsYS5jc3NJY29uRGVzYyxhLmNzc0ljb25Ob25lXSxsPVsiYXNjZW5kaW5nIiwiZGVzY2VuZGluZyJdLGM9YS4kdGFibGUuZmluZCgidGZvb3QgdHIiKS5jaGlsZHJlbigidGQsIHRoIikuYWRkKEEoYS5uYW1lc3BhY2UrIl9leHRyYV9oZWFkZXJzIikpLnJlbW92ZUNsYXNzKGkuam9pbigiICIpKSxnPWEuJGhlYWRlcnMuYWRkKEEoInRoZWFkICIrYS5uYW1lc3BhY2UrIl9leHRyYV9oZWFkZXJzIikpLnJlbW92ZUNsYXNzKGkuam9pbigiICIpKS5hZGRDbGFzcyhuKS5hdHRyKCJhcmlhLXNvcnQiLCJub25lIikuZmluZCgiLiIrTC5jc3MuaWNvbikucmVtb3ZlQ2xhc3MoZC5qb2luKCIgIikpLmVuZCgpO2ZvcihnLm5vdCgiLnNvcnRlci1mYWxzZSIpLmZpbmQoIi4iK0wuY3NzLmljb24pLmFkZENsYXNzKGRbMl0pLGEuY3NzSWNvbkRpc2FibGVkJiZnLmZpbHRlcigiLnNvcnRlci1mYWxzZSIpLmZpbmQoIi4iK0wuY3NzLmljb24pLmFkZENsYXNzKGEuY3NzSWNvbkRpc2FibGVkKSx0PTA7dDxzO3QrKylpZigyIT09b1t0XVsxXSl7aWYoKGc9KGc9YS4kaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PSEwLHI9YS4kaGVhZGVycy5lcShlKSxvPXBhcnNlSW50KHIuYXR0cigiZGF0YS1jb2x1bW4iKSwxMCkscz1vK0wuZ2V0Q2xvc2VzdChyLCJ0aCwgdGQiKVswXS5jb2xTcGFuO288cztvKyspdD0hIXQmJih0fHwtMTxMLmlzVmFsdWVJbkFycmF5KG8sYS5zb3J0TGlzdCkpO3JldHVybiB0fSkpLm5vdCgiLnNvcnRlci1mYWxzZSIpLmZpbHRlcignW2RhdGEtY29sdW1uPSInK29bdF1bMF0rJyJdJysoMT09PXM/IjpsYXN0IjoiIikpKS5sZW5ndGgpZm9yKHI9MDtyPGcubGVuZ3RoO3IrKylnW3JdLnNvcnREaXNhYmxlZHx8ZShnLmVxKHIpLG9bdF1bMV0pO2MubGVuZ3RoJiZlKGMuZmlsdGVyKCdbZGF0YS1jb2x1bW49Iicrb1t0XVswXSsnIl0nKSxvW3RdWzFdKX1mb3Iocz1hLiRoZWFkZXJzLmxlbmd0aCx0PTA7dDxzO3QrKylMLnNldENvbHVtbkFyaWFMYWJlbChhLGEuJGhlYWRlcnMuZXEodCkpfSxnZXRDbG9zZXN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEEuZm4uY2xvc2VzdD9lLmNsb3Nlc3QodCk6ZS5pcyh0KT9lOmUucGFyZW50cyh0KS5maWx0ZXIoIjpmaXJzdCIpfSxzZXRDb2x1bW5BcmlhTGFiZWw6ZnVuY3Rpb24oZSx0LHIpe2lmKHQubGVuZ3RoKXt2YXIgbz1wYXJzZUludCh0LmF0dHIoImRhdGEtY29sdW1uIiksMTApLHM9ZS5zb3J0VmFyc1tvXSxhPXQuaGFzQ2xhc3MoTC5jc3Muc29ydEFzYyk/InNvcnRBc2MiOnQuaGFzQ2xhc3MoTC5jc3Muc29ydERlc2MpPyJzb3J0RGVzYyI6InNvcnROb25lIixuPUEudHJpbSh0LnRleHQoKSkrIjogIitMLmxhbmd1YWdlW2FdO3QuaGFzQ2xhc3MoInNvcnRlci1mYWxzZSIpfHwhMT09PXI/bis9TC5sYW5ndWFnZS5zb3J0RGlzYWJsZWQ6KGE9KHMuY291bnQrMSklcy5vcmRlci5sZW5ndGgscj1zLm9yZGVyW2FdLG4rPUwubGFuZ3VhZ2VbMD09PXI/Im5leHRBc2MiOjE9PT1yPyJuZXh0RGVzYyI6Im5leHROb25lIl0pLHQuYXR0cigiYXJpYS1sYWJlbCIsbikscy5zb3J0ZWRCeT90LmF0dHIoImRhdGEtc29ydGVkQnkiLHMuc29ydGVkQnkpOnQucmVtb3ZlQXR0cigiZGF0YS1zb3J0ZWRCeSIpfX0sdXBkYXRlSGVhZGVyOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbyxzLGE9ZS50YWJsZSxuPWUuJGhlYWRlcnMubGVuZ3RoO2Zvcih0PTA7dDxuO3QrKylvPWUuJGhlYWRlcnMuZXEodCkscz1MLmdldENvbHVtbkRhdGEoYSxlLmhlYWRlcnMsdCwhMCkscj0iZmFsc2UiPT09TC5nZXREYXRhKG8scywic29ydGVyIil8fCJmYWxzZSI9PT1MLmdldERhdGEobyxzLCJwYXJzZXIiKSxMLnNldENvbHVtblNvcnQoZSxvLHIpfSxzZXRDb2x1bW5Tb3J0OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbz1lLnRhYmxlLmlkO3RbMF0uc29ydERpc2FibGVkPXIsdFtyPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0oInNvcnRlci1mYWxzZSIpLmF0dHIoImFyaWEtZGlzYWJsZWQiLCIiK3IpLGUudGFiSW5kZXgmJihyP3QucmVtb3ZlQXR0cigidGFiaW5kZXgiKTp0LmF0dHIoInRhYmluZGV4IiwiMCIpKSxvJiYocj90LnJlbW92ZUF0dHIoImFyaWEtY29udHJvbHMiKTp0LmF0dHIoImFyaWEtY29udHJvbHMiLG8pKX0sdXBkYXRlSGVhZGVyU29ydENvdW50OmZ1bmN0aW9uKGUsdCl7dmFyIHIsbyxzLGEsbixpLGQsbCxjPXR8fGUuc29ydExpc3QsZz1jLmxlbmd0aDtmb3IoZS5zb3J0TGlzdD1bXSxhPTA7YTxnO2ErKylpZihkPWNbYV0sKHI9cGFyc2VJbnQoZFswXSwxMCkpPGUuY29sdW1ucyl7c3dpdGNoKGUuc29ydFZhcnNbcl0ub3JkZXJ8fChsPUwuZ2V0T3JkZXIoZS5zb3J0SW5pdGlhbE9yZGVyKT9lLnNvcnRSZXNldD9bMSwwLDJdOlsxLDBdOmUuc29ydFJlc2V0P1swLDEsMl06WzAsMV0sZS5zb3J0VmFyc1tyXS5vcmRlcj1sLGUuc29ydFZhcnNbcl0uY291bnQ9MCksbD1lLnNvcnRWYXJzW3JdLm9yZGVyLG89KG89KCIiK2RbMV0pLm1hdGNoKC9eKDF8ZHxzfG98bikvKSk/b1swXToiIil7Y2FzZSIxIjpjYXNlImQiOm89MTticmVhaztjYXNlInMiOm89bnx8MDticmVhaztjYXNlIm8iOm89MD09PShpPWxbKG58fDApJWwubGVuZ3RoXSk/MToxPT09aT8wOjI7YnJlYWs7Y2FzZSJuIjpvPWxbKytlLnNvcnRWYXJzW3JdLmNvdW50JWwubGVuZ3RoXTticmVhaztkZWZhdWx0Om89MH1uPTA9PT1hP286bixzPVtyLHBhcnNlSW50KG8sMTApfHwwXSxlLnNvcnRMaXN0W2Uuc29ydExpc3QubGVuZ3RoXT1zLG89QS5pbkFycmF5KHNbMV0sbCksZS5zb3J0VmFyc1tyXS5jb3VudD0wPD1vP286c1sxXSVsLmxlbmd0aH19LHVwZGF0ZUFsbDpmdW5jdGlvbihlLHQscil7dmFyIG89ZS50YWJsZTtvLmlzVXBkYXRpbmc9ITAsTC5yZWZyZXNoV2lkZ2V0cyhvLCEwLCEwKSxMLmJ1aWxkSGVhZGVycyhlKSxMLmJpbmRFdmVudHMobyxlLiRoZWFkZXJzLCEwKSxMLmJpbmRNZXRob2RzKGUpLEwuY29tbW9uVXBkYXRlKGUsdCxyKX0sdXBkYXRlOmZ1bmN0aW9uKGUsdCxyKXtlLnRhYmxlLmlzVXBkYXRpbmc9ITAsTC51cGRhdGVIZWFkZXIoZSksTC5jb21tb25VcGRhdGUoZSx0LHIpfSx1cGRhdGVIZWFkZXJzOmZ1bmN0aW9uKGUsdCl7ZS50YWJsZS5pc1VwZGF0aW5nPSEwLEwuYnVpbGRIZWFkZXJzKGUpLEwuYmluZEV2ZW50cyhlLnRhYmxlLGUuJGhlYWRlcnMsITApLEwucmVzb3J0Q29tcGxldGUoZSx0KX0sdXBkYXRlQ2VsbDpmdW5jdGlvbihlLHQscixvKXtpZihBKHQpLmNsb3Nlc3QoInRyIikuaGFzQ2xhc3MoZS5jc3NDaGlsZFJvdykpY29uc29sZS53YXJuKCdUYWJsZXNvcnRlciBXYXJuaW5nISAidXBkYXRlQ2VsbCIgZm9yIGNoaWxkIHJvdyBjb250ZW50IGhhcyBiZWVuIGRpc2FibGVkLCB1c2UgInVwZGF0ZSIgaW5zdGVhZCcpO2Vsc2V7aWYoTC5pc0VtcHR5T2JqZWN0KGUuY2FjaGUpKXJldHVybiBMLnVwZGF0ZUhlYWRlcihlKSx2b2lkIEwuY29tbW9uVXBkYXRlKGUscixvKTtlLnRhYmxlLmlzVXBkYXRpbmc9ITAsZS4kdGFibGUuZmluZChlLnNlbGVjdG9yUmVtb3ZlKS5yZW1vdmUoKTt2YXIgcyxhLG4saSxkLGwsYz1lLiR0Ym9kaWVzLGc9QSh0KSxwPWMuaW5kZXgoTC5nZXRDbG9zZXN0KGcsInRib2R5IikpLHU9ZS5jYWNoZVtwXSxmPUwuZ2V0Q2xvc2VzdChnLCJ0ciIpO2lmKHQ9Z1swXSxjLmxlbmd0aCYmMDw9cCl7aWYobj1jLmVxKHApLmZpbmQoInRyIikubm90KCIuIitlLmNzc0NoaWxkUm93KS5pbmRleChmKSxkPXUubm9ybWFsaXplZFtuXSwobD1mWzBdLmNlbGxzLmxlbmd0aCkhPT1lLmNvbHVtbnMpZm9yKHM9ITEsYT1pPTA7YTxsO2ErKylzfHxmWzBdLmNlbGxzW2FdPT09dD9zPSEwOmkrPWZbMF0uY2VsbHNbYV0uY29sU3BhbjtlbHNlIGk9Zy5pbmRleCgpO3M9TC5nZXRFbGVtZW50VGV4dChlLHQsaSksZFtlLmNvbHVtbnNdLnJhd1tpXT1zLHM9TC5nZXRQYXJzZWRUZXh0KGUsdCxpLHMpLGRbaV09cywibnVtZXJpYyI9PT0oZS5wYXJzZXJzW2ldLnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpJiYodS5jb2xNYXhbaV09TWF0aC5tYXgoTWF0aC5hYnMocyl8fDAsdS5jb2xNYXhbaV18fDApKSwhMSE9PShzPSJ1bmRlZmluZWQiIT09cj9yOmUucmVzb3J0KT9MLmNoZWNrUmVzb3J0KGUscyxvKTpMLnJlc29ydENvbXBsZXRlKGUsbyl9ZWxzZSBMLmRlYnVnKGUsImNvcmUiKSYmY29uc29sZS5lcnJvcigidXBkYXRlQ2VsbCBhYm9ydGVkLCB0Ym9keSBtaXNzaW5nIG9yIG5vdCB3aXRoaW4gdGhlIGluZGljYXRlZCB0YWJsZSIpLGUudGFibGUuaXNVcGRhdGluZz0hMX19LGFkZFJvd3M6ZnVuY3Rpb24oZSx0LHIsbyl7dmFyIHMsYSxuLGksZCxsLGMsZyxwLHUsZixoLG0sYj0ic3RyaW5nIj09dHlwZW9mIHQmJjE9PT1lLiR0Ym9kaWVzLmxlbmd0aCYmLzx0ci8udGVzdCh0fHwiIikseT1lLnRhYmxlO2lmKGIpdD1BKHQpLGUuJHRib2RpZXMuYXBwZW5kKHQpO2Vsc2UgaWYoISh0JiZ0IGluc3RhbmNlb2YgQSYmTC5nZXRDbG9zZXN0KHQsInRhYmxlIilbMF09PT1lLnRhYmxlKSlyZXR1cm4gTC5kZWJ1ZyhlLCJjb3JlIikmJmNvbnNvbGUuZXJyb3IoImFkZFJvd3MgbWV0aG9kIHJlcXVpcmVzICgxKSBhIGpRdWVyeSBzZWxlY3RvciByZWZlcmVuY2UgdG8gcm93cyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHRoZSB0YWJsZSwgb3IgKDIpIHJvdyBIVE1MIHN0cmluZyB0byBiZSBhZGRlZCB0byBhIHRhYmxlIHdpdGggb25seSBvbmUgdGJvZHkiKSwhMTtpZih5LmlzVXBkYXRpbmc9ITAsTC5pc0VtcHR5T2JqZWN0KGUuY2FjaGUpKUwudXBkYXRlSGVhZGVyKGUpLEwuY29tbW9uVXBkYXRlKGUscixvKTtlbHNle2ZvcihkPXQuZmlsdGVyKCJ0ciIpLmF0dHIoInJvbGUiLCJyb3ciKS5sZW5ndGgsbj1lLiR0Ym9kaWVzLmluZGV4KHQucGFyZW50cygidGJvZHkiKS5maWx0ZXIoIjpmaXJzdCIpKSxlLnBhcnNlcnMmJmUucGFyc2Vycy5sZW5ndGh8fEwuc2V0dXBQYXJzZXJzKGUpLGk9MDtpPGQ7aSsrKXtmb3IocD0wLGM9dFtpXS5jZWxscy5sZW5ndGgsZz1lLmNhY2hlW25dLm5vcm1hbGl6ZWQubGVuZ3RoLGY9W10sdT17Y2hpbGQ6W10scmF3OltdLCRyb3c6dC5lcShpKSxvcmRlcjpnfSxsPTA7bDxjO2wrKyloPXRbaV0uY2VsbHNbbF0scz1MLmdldEVsZW1lbnRUZXh0KGUsaCxwKSx1LnJhd1twXT1zLGE9TC5nZXRQYXJzZWRUZXh0KGUsaCxwLHMpLGZbcF09YSwibnVtZXJpYyI9PT0oZS5wYXJzZXJzW3BdLnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpJiYoZS5jYWNoZVtuXS5jb2xNYXhbcF09TWF0aC5tYXgoTWF0aC5hYnMoYSl8fDAsZS5jYWNoZVtuXS5jb2xNYXhbcF18fDApKSwwPChtPWguY29sU3Bhbi0xKSYmKHArPW0pLHArKztmW2UuY29sdW1uc109dSxlLmNhY2hlW25dLm5vcm1hbGl6ZWRbZ109Zn1MLmNoZWNrUmVzb3J0KGUscixvKX19LHVwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUsdCxyKXtlLnBhcnNlcnMmJmUucGFyc2Vycy5sZW5ndGh8fEwuc2V0dXBQYXJzZXJzKGUsciksTC5idWlsZENhY2hlKGUsdCxyKX0sYXBwZW5kQ2FjaGU6ZnVuY3Rpb24oZSx0KXt2YXIgcixvLHMsYSxuLGksZCxsPWUudGFibGUsYz1lLiR0Ym9kaWVzLGc9W10scD1lLmNhY2hlO2lmKEwuaXNFbXB0eU9iamVjdChwKSlyZXR1cm4gZS5hcHBlbmRlcj9lLmFwcGVuZGVyKGwsZyk6bC5pc1VwZGF0aW5nP2UuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJ1cGRhdGVDb21wbGV0ZSIsbCk6IiI7Zm9yKEwuZGVidWcoZSwiY29yZSIpJiYoZD1uZXcgRGF0ZSksaT0wO2k8Yy5sZW5ndGg7aSsrKWlmKChzPWMuZXEoaSkpLmxlbmd0aCl7Zm9yKGE9TC5wcm9jZXNzVGJvZHkobCxzLCEwKSxvPShyPXBbaV0ubm9ybWFsaXplZCkubGVuZ3RoLG49MDtuPG87bisrKWdbZy5sZW5ndGhdPXJbbl1bZS5jb2x1bW5zXS4kcm93LGUuYXBwZW5kZXImJighZS5wYWdlcnx8ZS5wYWdlci5yZW1vdmVSb3dzfHxlLnBhZ2VyLmFqYXgpfHxhLmFwcGVuZChyW25dW2UuY29sdW1uc10uJHJvdyk7TC5wcm9jZXNzVGJvZHkobCxhLCExKX1lLmFwcGVuZGVyJiZlLmFwcGVuZGVyKGwsZyksTC5kZWJ1ZyhlLCJjb3JlIikmJmNvbnNvbGUubG9nKCJSZWJ1aWx0IHRhYmxlIitMLmJlbmNobWFyayhkKSksdHx8ZS5hcHBlbmRlcnx8TC5hcHBseVdpZGdldChsKSxsLmlzVXBkYXRpbmcmJmUuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJ1cGRhdGVDb21wbGV0ZSIsbCl9LGNvbW1vblVwZGF0ZTpmdW5jdGlvbihlLHQscil7ZS4kdGFibGUuZmluZChlLnNlbGVjdG9yUmVtb3ZlKS5yZW1vdmUoKSxMLnNldHVwUGFyc2VycyhlKSxMLmJ1aWxkQ2FjaGUoZSksTC5jaGVja1Jlc29ydChlLHQscil9LGluaXRTb3J0OmZ1bmN0aW9uKHQsZSxyKXtpZih0LnRhYmxlLmlzVXBkYXRpbmcpcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtMLmluaXRTb3J0KHQsZSxyKX0sNTApO3ZhciBvLHMsYSxuLGksZCxsLGM9IXJbdC5zb3J0TXVsdGlTb3J0S2V5XSxnPXQudGFibGUscD10LiRoZWFkZXJzLmxlbmd0aCx1PUwuZ2V0Q2xvc2VzdChBKGUpLCJ0aCwgdGQiKSxmPXBhcnNlSW50KHUuYXR0cigiZGF0YS1jb2x1bW4iKSwxMCksaD0ibW91c2V1cCI9PT1yLnR5cGU/InVzZXIiOnIudHlwZSxtPXQuc29ydFZhcnNbZl0ub3JkZXI7aWYodT11WzBdLHQuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJzb3J0U3RhcnQiLGcpLGQ9KHQuc29ydFZhcnNbZl0uY291bnQrMSklbS5sZW5ndGgsdC5zb3J0VmFyc1tmXS5jb3VudD1yW3Quc29ydFJlc2V0S2V5XT8yOmQsdC5zb3J0UmVzdGFydClmb3IoYT0wO2E8cDthKyspbD10LiRoZWFkZXJzLmVxKGEpLGYhPT0oZD1wYXJzZUludChsLmF0dHIoImRhdGEtY29sdW1uIiksMTApKSYmKGN8fGwuaGFzQ2xhc3MoTC5jc3Muc29ydE5vbmUpKSYmKHQuc29ydFZhcnNbZF0uY291bnQ9LTEpO2lmKGMpe2lmKEEuZWFjaCh0LnNvcnRWYXJzLGZ1bmN0aW9uKGUpe3Quc29ydFZhcnNbZV0uc29ydGVkQnk9IiJ9KSx0LnNvcnRMaXN0PVtdLHQubGFzdC5zb3J0TGlzdD1bXSxudWxsIT09dC5zb3J0Rm9yY2UpZm9yKG89dC5zb3J0Rm9yY2Uscz0wO3M8by5sZW5ndGg7cysrKW9bc11bMF0hPT1mJiYodC5zb3J0TGlzdFt0LnNvcnRMaXN0Lmxlbmd0aF09b1tzXSx0LnNvcnRWYXJzW29bc11bMF1dLnNvcnRlZEJ5PSJzb3J0Rm9yY2UiKTtpZigobj1tW3Quc29ydFZhcnNbZl0uY291bnRdKTwyJiYodC5zb3J0TGlzdFt0LnNvcnRMaXN0Lmxlbmd0aF09W2Ysbl0sdC5zb3J0VmFyc1tmXS5zb3J0ZWRCeT1oLDE8dS5jb2xTcGFuKSlmb3Iocz0xO3M8dS5jb2xTcGFuO3MrKyl0LnNvcnRMaXN0W3Quc29ydExpc3QubGVuZ3RoXT1bZitzLG5dLHQuc29ydFZhcnNbZitzXS5jb3VudD1BLmluQXJyYXkobixtKSx0LnNvcnRWYXJzW2Yrc10uc29ydGVkQnk9aH1lbHNlIGlmKHQuc29ydExpc3Q9QS5leHRlbmQoW10sdC5sYXN0LnNvcnRMaXN0KSwwPD1MLmlzVmFsdWVJbkFycmF5KGYsdC5zb3J0TGlzdCkpZm9yKHQuc29ydFZhcnNbZl0uc29ydGVkQnk9aCxzPTA7czx0LnNvcnRMaXN0Lmxlbmd0aDtzKyspKGQ9dC5zb3J0TGlzdFtzXSlbMF09PT1mJiYoZFsxXT1tW3Quc29ydFZhcnNbZl0uY291bnRdLDI9PT1kWzFdJiYodC5zb3J0TGlzdC5zcGxpY2UocywxKSx0LnNvcnRWYXJzW2ZdLmNvdW50PS0xKSk7ZWxzZSBpZihuPW1bdC5zb3J0VmFyc1tmXS5jb3VudF0sdC5zb3J0VmFyc1tmXS5zb3J0ZWRCeT1oLG48MiYmKHQuc29ydExpc3RbdC5zb3J0TGlzdC5sZW5ndGhdPVtmLG5dLDE8dS5jb2xTcGFuKSlmb3Iocz0xO3M8dS5jb2xTcGFuO3MrKyl0LnNvcnRMaXN0W3Quc29ydExpc3QubGVuZ3RoXT1bZitzLG5dLHQuc29ydFZhcnNbZitzXS5jb3VudD1BLmluQXJyYXkobixtKSx0LnNvcnRWYXJzW2Yrc10uc29ydGVkQnk9aDtpZih0Lmxhc3Quc29ydExpc3Q9QS5leHRlbmQoW10sdC5zb3J0TGlzdCksdC5zb3J0TGlzdC5sZW5ndGgmJnQuc29ydEFwcGVuZCYmKG89QS5pc0FycmF5KHQuc29ydEFwcGVuZCk/dC5zb3J0QXBwZW5kOnQuc29ydEFwcGVuZFt0LnNvcnRMaXN0WzBdWzBdXSwhTC5pc0VtcHR5T2JqZWN0KG8pKSlmb3Iocz0wO3M8by5sZW5ndGg7cysrKWlmKG9bc11bMF0hPT1mJiZMLmlzVmFsdWVJbkFycmF5KG9bc11bMF0sdC5zb3J0TGlzdCk8MCl7aWYoaT0oIiIrKG49b1tzXVsxXSkpLm1hdGNoKC9eKGF8ZHxzfG98bikvKSlzd2l0Y2goZD10LnNvcnRMaXN0WzBdWzFdLGlbMF0pe2Nhc2UiZCI6bj0xO2JyZWFrO2Nhc2UicyI6bj1kO2JyZWFrO2Nhc2UibyI6bj0wPT09ZD8xOjA7YnJlYWs7Y2FzZSJuIjpuPShkKzEpJW0ubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6bj0wfXQuc29ydExpc3RbdC5zb3J0TGlzdC5sZW5ndGhdPVtvW3NdWzBdLG5dLHQuc29ydFZhcnNbb1tzXVswXV0uc29ydGVkQnk9InNvcnRBcHBlbmQifXQuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJzb3J0QmVnaW4iLGcpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtMLnNldEhlYWRlcnNDc3ModCksTC5tdWx0aXNvcnQodCksTC5hcHBlbmRDYWNoZSh0KSx0LiR0YWJsZS50cmlnZ2VySGFuZGxlcigic29ydEJlZm9yZUVuZCIsZyksdC4kdGFibGUudHJpZ2dlckhhbmRsZXIoInNvcnRFbmQiLGcpfSwxKX0sbXVsdGlzb3J0OmZ1bmN0aW9uKGwpe3ZhciBlLHQsYyxyLGc9bC50YWJsZSxwPVtdLHU9MCxmPWwudGV4dFNvcnRlcnx8IiIsaD1sLnNvcnRMaXN0LG09aC5sZW5ndGgsbz1sLiR0Ym9kaWVzLmxlbmd0aDtpZighbC5zZXJ2ZXJTaWRlU29ydGluZyYmIUwuaXNFbXB0eU9iamVjdChsLmNhY2hlKSl7aWYoTC5kZWJ1ZyhsLCJjb3JlIikmJih0PW5ldyBEYXRlKSwib2JqZWN0Ij09dHlwZW9mIGYpZm9yKGM9bC5jb2x1bW5zO2MtLTspImZ1bmN0aW9uIj09dHlwZW9mKHI9TC5nZXRDb2x1bW5EYXRhKGcsZixjKSkmJihwW2NdPXIpO2ZvcihlPTA7ZTxvO2UrKyljPWwuY2FjaGVbZV0uY29sTWF4LGwuY2FjaGVbZV0ubm9ybWFsaXplZC5zb3J0KGZ1bmN0aW9uKGUsdCl7dmFyIHIsbyxzLGEsbixpLGQ7Zm9yKHI9MDtyPG07cisrKXtpZihzPWhbcl1bMF0sYT1oW3JdWzFdLHU9MD09PWEsbC5zb3J0U3RhYmxlJiZlW3NdPT09dFtzXSYmMT09PW0pcmV0dXJuIGVbbC5jb2x1bW5zXS5vcmRlci10W2wuY29sdW1uc10ub3JkZXI7aWYobj0obz0vbi9pLnRlc3QoTC5nZXRTb3J0VHlwZShsLnBhcnNlcnMscykpKSYmbC5zdHJpbmdzW3NdPyhvPSJib29sZWFuIj09dHlwZW9mIEwuc3RyaW5nW2wuc3RyaW5nc1tzXV0/KHU/MTotMSkqKEwuc3RyaW5nW2wuc3RyaW5nc1tzXV0/LTE6MSk6bC5zdHJpbmdzW3NdJiZMLnN0cmluZ1tsLnN0cmluZ3Nbc11dfHwwLGwubnVtYmVyU29ydGVyP2wubnVtYmVyU29ydGVyKGVbc10sdFtzXSx1LGNbc10sZyk6TFsic29ydE51bWVyaWMiKyh1PyJBc2MiOiJEZXNjIildKGVbc10sdFtzXSxvLGNbc10scyxsKSk6KGk9dT9lOnQsZD11P3Q6ZSwiZnVuY3Rpb24iPT10eXBlb2YgZj9mKGlbc10sZFtzXSx1LHMsZyk6ImZ1bmN0aW9uIj09dHlwZW9mIHBbc10/cFtzXShpW3NdLGRbc10sdSxzLGcpOkxbInNvcnROYXR1cmFsIisodT8iQXNjIjoiRGVzYyIpXShlW3NdfHwiIix0W3NdfHwiIixzLGwpKSlyZXR1cm4gbn1yZXR1cm4gZVtsLmNvbHVtbnNdLm9yZGVyLXRbbC5jb2x1bW5zXS5vcmRlcn0pO0wuZGVidWcobCwiY29yZSIpJiZjb25zb2xlLmxvZygiQXBwbHlpbmcgc29ydCAiK2gudG9TdHJpbmcoKStMLmJlbmNobWFyayh0KSl9fSxyZXNvcnRDb21wbGV0ZTpmdW5jdGlvbihlLHQpe2UudGFibGUuaXNVcGRhdGluZyYmZS4kdGFibGUudHJpZ2dlckhhbmRsZXIoInVwZGF0ZUNvbXBsZXRlIixlLnRhYmxlKSxBLmlzRnVuY3Rpb24odCkmJnQoZS50YWJsZSl9LGNoZWNrUmVzb3J0OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbz1BLmlzQXJyYXkodCk/dDplLnNvcnRMaXN0OyExPT09KHZvaWQgMD09PXQ/ZS5yZXNvcnQ6dCl8fGUuc2VydmVyU2lkZVNvcnRpbmd8fGUudGFibGUuaXNQcm9jZXNzaW5nPyhMLnJlc29ydENvbXBsZXRlKGUsciksTC5hcHBseVdpZGdldChlLnRhYmxlLCExKSk6by5sZW5ndGg/TC5zb3J0T24oZSxvLGZ1bmN0aW9uKCl7TC5yZXNvcnRDb21wbGV0ZShlLHIpfSwhMCk6TC5zb3J0UmVzZXQoZSxmdW5jdGlvbigpe0wucmVzb3J0Q29tcGxldGUoZSxyKSxMLmFwcGx5V2lkZ2V0KGUudGFibGUsITEpfSl9LHNvcnRPbjpmdW5jdGlvbihlLHQscixvKXt2YXIgcyxhPWUudGFibGU7Zm9yKGUuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJzb3J0U3RhcnQiLGEpLHM9MDtzPGUuY29sdW1ucztzKyspZS5zb3J0VmFyc1tzXS5zb3J0ZWRCeT0tMTxMLmlzVmFsdWVJbkFycmF5KHMsdCk/InNvcnRvbiI6IiI7TC51cGRhdGVIZWFkZXJTb3J0Q291bnQoZSx0KSxMLnNldEhlYWRlcnNDc3MoZSksZS5kZWxheUluaXQmJkwuaXNFbXB0eU9iamVjdChlLmNhY2hlKSYmTC5idWlsZENhY2hlKGUpLGUuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJzb3J0QmVnaW4iLGEpLEwubXVsdGlzb3J0KGUpLEwuYXBwZW5kQ2FjaGUoZSxvKSxlLiR0YWJsZS50cmlnZ2VySGFuZGxlcigic29ydEJlZm9yZUVuZCIsYSksZS4kdGFibGUudHJpZ2dlckhhbmRsZXIoInNvcnRFbmQiLGEpLEwuYXBwbHlXaWRnZXQoYSksQS5pc0Z1bmN0aW9uKHIpJiZyKGEpfSxzb3J0UmVzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgcjtmb3IoZS5zb3J0TGlzdD1bXSxyPTA7cjxlLmNvbHVtbnM7cisrKWUuc29ydFZhcnNbcl0uY291bnQ9LTEsZS5zb3J0VmFyc1tyXS5zb3J0ZWRCeT0iIjtMLnNldEhlYWRlcnNDc3MoZSksTC5tdWx0aXNvcnQoZSksTC5hcHBlbmRDYWNoZShlKSxBLmlzRnVuY3Rpb24odCkmJnQoZS50YWJsZSl9LGdldFNvcnRUeXBlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmVbdF0mJmVbdF0udHlwZXx8IiJ9LGdldE9yZGVyOmZ1bmN0aW9uKGUpe3JldHVybi9eZC9pLnRlc3QoZSl8fDE9PT1lfSxzb3J0TmF0dXJhbDpmdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiAwO2U9KGV8fCIiKS50b1N0cmluZygpLHQ9KHR8fCIiKS50b1N0cmluZygpO3ZhciByLG8scyxhLG4saSxkPUwucmVnZXg7aWYoZC5oZXgudGVzdCh0KSl7aWYoKHI9cGFyc2VJbnQoZS5tYXRjaChkLmhleCksMTYpKTwobz1wYXJzZUludCh0Lm1hdGNoKGQuaGV4KSwxNikpKXJldHVybi0xO2lmKG88cilyZXR1cm4gMX1mb3Iocj1lLnJlcGxhY2UoZC5jaHVuaywiXFwwJDFcXDAiKS5yZXBsYWNlKGQuY2h1bmtzLCIiKS5zcGxpdCgiXFwwIiksbz10LnJlcGxhY2UoZC5jaHVuaywiXFwwJDFcXDAiKS5yZXBsYWNlKGQuY2h1bmtzLCIiKS5zcGxpdCgiXFwwIiksaT1NYXRoLm1heChyLmxlbmd0aCxvLmxlbmd0aCksbj0wO248aTtuKyspe2lmKHM9aXNOYU4ocltuXSk/cltuXXx8MDpwYXJzZUZsb2F0KHJbbl0pfHwwLGE9aXNOYU4ob1tuXSk/b1tuXXx8MDpwYXJzZUZsb2F0KG9bbl0pfHwwLGlzTmFOKHMpIT09aXNOYU4oYSkpcmV0dXJuIGlzTmFOKHMpPzE6LTE7aWYodHlwZW9mIHMhPXR5cGVvZiBhJiYocys9IiIsYSs9IiIpLHM8YSlyZXR1cm4tMTtpZihhPHMpcmV0dXJuIDF9cmV0dXJuIDB9LHNvcnROYXR1cmFsQXNjOmZ1bmN0aW9uKGUsdCxyLG8pe2lmKGU9PT10KXJldHVybiAwO3ZhciBzPUwuc3RyaW5nW28uZW1wdGllc1tyXXx8by5lbXB0eVRvXTtyZXR1cm4iIj09PWUmJjAhPT1zPyJib29sZWFuIj09dHlwZW9mIHM/cz8tMToxOi1zfHwtMToiIj09PXQmJjAhPT1zPyJib29sZWFuIj09dHlwZW9mIHM/cz8xOi0xOnN8fDE6TC5zb3J0TmF0dXJhbChlLHQpfSxzb3J0TmF0dXJhbERlc2M6ZnVuY3Rpb24oZSx0LHIsbyl7aWYoZT09PXQpcmV0dXJuIDA7dmFyIHM9TC5zdHJpbmdbby5lbXB0aWVzW3JdfHxvLmVtcHR5VG9dO3JldHVybiIiPT09ZSYmMCE9PXM/ImJvb2xlYW4iPT10eXBlb2Ygcz9zPy0xOjE6c3x8MToiIj09PXQmJjAhPT1zPyJib29sZWFuIj09dHlwZW9mIHM/cz8xOi0xOi1zfHwtMTpMLnNvcnROYXR1cmFsKHQsZSl9LHNvcnRUZXh0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ8ZT8xOmU8dD8tMTowfSxnZXRUZXh0VmFsdWU6ZnVuY3Rpb24oZSx0LHIpe2lmKHIpe3ZhciBvLHM9ZT9lLmxlbmd0aDowLGE9cit0O2ZvcihvPTA7bzxzO28rKylhKz1lLmNoYXJDb2RlQXQobyk7cmV0dXJuIHQqYX1yZXR1cm4gMH0sc29ydE51bWVyaWNBc2M6ZnVuY3Rpb24oZSx0LHIsbyxzLGEpe2lmKGU9PT10KXJldHVybiAwO3ZhciBuPUwuc3RyaW5nW2EuZW1wdGllc1tzXXx8YS5lbXB0eVRvXTtyZXR1cm4iIj09PWUmJjAhPT1uPyJib29sZWFuIj09dHlwZW9mIG4/bj8tMToxOi1ufHwtMToiIj09PXQmJjAhPT1uPyJib29sZWFuIj09dHlwZW9mIG4/bj8xOi0xOm58fDE6KGlzTmFOKGUpJiYoZT1MLmdldFRleHRWYWx1ZShlLHIsbykpLGlzTmFOKHQpJiYodD1MLmdldFRleHRWYWx1ZSh0LHIsbykpLGUtdCl9LHNvcnROdW1lcmljRGVzYzpmdW5jdGlvbihlLHQscixvLHMsYSl7aWYoZT09PXQpcmV0dXJuIDA7dmFyIG49TC5zdHJpbmdbYS5lbXB0aWVzW3NdfHxhLmVtcHR5VG9dO3JldHVybiIiPT09ZSYmMCE9PW4/ImJvb2xlYW4iPT10eXBlb2Ygbj9uPy0xOjE6bnx8MToiIj09PXQmJjAhPT1uPyJib29sZWFuIj09dHlwZW9mIG4/bj8xOi0xOi1ufHwtMTooaXNOYU4oZSkmJihlPUwuZ2V0VGV4dFZhbHVlKGUscixvKSksaXNOYU4odCkmJih0PUwuZ2V0VGV4dFZhbHVlKHQscixvKSksdC1lKX0sc29ydE51bWVyaWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSxhZGRXaWRnZXQ6ZnVuY3Rpb24oZSl7ZS5pZCYmIUwuaXNFbXB0eU9iamVjdChMLmdldFdpZGdldEJ5SWQoZS5pZCkpJiZjb25zb2xlLndhcm4oJyInK2UuaWQrJyIgd2lkZ2V0IHdhcyBsb2FkZWQgbW9yZSB0aGFuIG9uY2UhJyksTC53aWRnZXRzW0wud2lkZ2V0cy5sZW5ndGhdPWV9LGhhc1dpZGdldDpmdW5jdGlvbihlLHQpe3JldHVybihlPUEoZSkpLmxlbmd0aCYmZVswXS5jb25maWcmJmVbMF0uY29uZmlnLndpZGdldEluaXRbdF18fCExfSxnZXRXaWRnZXRCeUlkOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbz1MLndpZGdldHMubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKylpZigocj1MLndpZGdldHNbdF0pJiZyLmlkJiZyLmlkLnRvTG93ZXJDYXNlKCk9PT1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHJ9LGFwcGx5V2lkZ2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdCxyLG8scz1lLmNvbmZpZyxhPXMud2lkZ2V0cy5sZW5ndGg7aWYoYSlmb3IodD0wO3Q8YTt0KyspKHI9TC5nZXRXaWRnZXRCeUlkKHMud2lkZ2V0c1t0XSkpJiZyLm9wdGlvbnMmJihvPUEuZXh0ZW5kKCEwLHt9LHIub3B0aW9ucykscy53aWRnZXRPcHRpb25zPUEuZXh0ZW5kKCEwLG8scy53aWRnZXRPcHRpb25zKSxBLmV4dGVuZCghMCxMLmRlZmF1bHRzLndpZGdldE9wdGlvbnMsci5vcHRpb25zKSl9LGFkZFdpZGdldEZyb21DbGFzczpmdW5jdGlvbihlKXt2YXIgdCxyLG89ZS5jb25maWcscz0iXiIrby53aWRnZXRDbGFzcy5yZXBsYWNlKEwucmVnZXgudGVtcGxhdGVOYW1lLCIoXFxTKykrIikrIiQiLGE9bmV3IFJlZ0V4cChzLCJnIiksbj0oZS5jbGFzc05hbWV8fCIiKS5zcGxpdChMLnJlZ2V4LnNwYWNlcyk7aWYobi5sZW5ndGgpZm9yKHQ9bi5sZW5ndGgscj0wO3I8dDtyKyspbltyXS5tYXRjaChhKSYmKG8ud2lkZ2V0c1tvLndpZGdldHMubGVuZ3RoXT1uW3JdLnJlcGxhY2UoYSwiJDEiKSl9LGFwcGx5V2lkZ2V0SWQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLHMsYSxuPShlPUEoZSlbMF0pLmNvbmZpZyxpPW4ud2lkZ2V0T3B0aW9ucyxkPUwuZGVidWcobiwiY29yZSIpLGw9TC5nZXRXaWRnZXRCeUlkKHQpO2wmJihhPWwuaWQsbz0hMSxBLmluQXJyYXkoYSxuLndpZGdldHMpPDAmJihuLndpZGdldHNbbi53aWRnZXRzLmxlbmd0aF09YSksZCYmKHM9bmV3IERhdGUpLCFyJiZuLndpZGdldEluaXRbYV18fChuLndpZGdldEluaXRbYV09ITAsZS5oYXNJbml0aWFsaXplZCYmTC5hcHBseVdpZGdldE9wdGlvbnMoZSksImZ1bmN0aW9uIj09dHlwZW9mIGwuaW5pdCYmKG89ITAsZCYmY29uc29sZVtjb25zb2xlLmdyb3VwPyJncm91cCI6ImxvZyJdKCJJbml0aWFsaXppbmcgIithKyIgd2lkZ2V0IiksbC5pbml0KGUsbCxuLGkpKSkscnx8ImZ1bmN0aW9uIiE9dHlwZW9mIGwuZm9ybWF0fHwobz0hMCxkJiZjb25zb2xlW2NvbnNvbGUuZ3JvdXA/Imdyb3VwIjoibG9nIl0oIlVwZGF0aW5nICIrYSsiIHdpZGdldCIpLGwuZm9ybWF0KGUsbixpLCExKSksZCYmbyYmKGNvbnNvbGUubG9nKCJDb21wbGV0ZWQgIisocj8iaW5pdGlhbGl6aW5nICI6ImFwcGx5aW5nICIpK2ErIiB3aWRnZXQiK0wuYmVuY2htYXJrKHMpKSxjb25zb2xlLmdyb3VwRW5kJiZjb25zb2xlLmdyb3VwRW5kKCkpKX0sYXBwbHlXaWRnZXQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLHMsYSxuLGksZD0oZT1BKGUpWzBdKS5jb25maWcsbD1MLmRlYnVnKGQsImNvcmUiKSxjPVtdO2lmKCExPT09dHx8IWUuaGFzSW5pdGlhbGl6ZWR8fCFlLmlzQXBwbHlpbmdXaWRnZXRzJiYhZS5pc1VwZGF0aW5nKXtpZihsJiYoaT1uZXcgRGF0ZSksTC5hZGRXaWRnZXRGcm9tQ2xhc3MoZSksY2xlYXJUaW1lb3V0KGQudGltZXJSZWFkeSksZC53aWRnZXRzLmxlbmd0aCl7Zm9yKGUuaXNBcHBseWluZ1dpZGdldHM9ITAsZC53aWRnZXRzPUEuZ3JlcChkLndpZGdldHMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gQS5pbkFycmF5KGUsZC53aWRnZXRzKT09PXR9KSxzPShhPWQud2lkZ2V0c3x8W10pLmxlbmd0aCxvPTA7bzxzO28rKykobj1MLmdldFdpZGdldEJ5SWQoYVtvXSkpJiZuLmlkPyhuLnByaW9yaXR5fHwobi5wcmlvcml0eT0xMCksY1tvXT1uKTpsJiZjb25zb2xlLndhcm4oJyInK2Fbb10rJyIgd2FzIGVuYWJsZWQsIGJ1dCB0aGUgd2lkZ2V0IGNvZGUgaGFzIG5vdCBiZWVuIGxvYWRlZCEnKTtmb3IoYy5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucHJpb3JpdHk8dC5wcmlvcml0eT8tMTplLnByaW9yaXR5PT09dC5wcmlvcml0eT8wOjF9KSxzPWMubGVuZ3RoLGwmJmNvbnNvbGVbY29uc29sZS5ncm91cD8iZ3JvdXAiOiJsb2ciXSgiU3RhcnQgIisodD8iaW5pdGlhbGl6aW5nIjoiYXBwbHlpbmciKSsiIHdpZGdldHMiKSxvPTA7bzxzO28rKykobj1jW29dKSYmbi5pZCYmTC5hcHBseVdpZGdldElkKGUsbi5pZCx0KTtsJiZjb25zb2xlLmdyb3VwRW5kJiZjb25zb2xlLmdyb3VwRW5kKCl9ZC50aW1lclJlYWR5PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmlzQXBwbHlpbmdXaWRnZXRzPSExLEEuZGF0YShlLCJsYXN0V2lkZ2V0QXBwbGljYXRpb24iLG5ldyBEYXRlKSxkLiR0YWJsZS50cmlnZ2VySGFuZGxlcigidGFibGVzb3J0ZXItcmVhZHkiKSx0fHwiZnVuY3Rpb24iIT10eXBlb2Ygcnx8cihlKSxsJiYobj1kLndpZGdldHMubGVuZ3RoLGNvbnNvbGUubG9nKCJDb21wbGV0ZWQgIisoITA9PT10PyJpbml0aWFsaXppbmcgIjoiYXBwbHlpbmcgIikrbisiIHdpZGdldCIrKDEhPT1uPyJzIjoiIikrTC5iZW5jaG1hcmsoaSkpKX0sMTApfX0scmVtb3ZlV2lkZ2V0OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbyxzLGEsbixpPShlPUEoZSlbMF0pLmNvbmZpZztpZighMD09PXQpZm9yKHQ9W10sbj1MLndpZGdldHMubGVuZ3RoLGE9MDthPG47YSsrKShzPUwud2lkZ2V0c1thXSkmJnMuaWQmJih0W3QubGVuZ3RoXT1zLmlkKTtlbHNlIHQ9KEEuaXNBcnJheSh0KT90LmpvaW4oIiwiKTp0fHwiIikudG9Mb3dlckNhc2UoKS5zcGxpdCgvW1xzLF0rLyk7Zm9yKG49dC5sZW5ndGgsbz0wO288bjtvKyspcz1MLmdldFdpZGdldEJ5SWQodFtvXSksMDw9KGE9QS5pbkFycmF5KHRbb10saS53aWRnZXRzKSkmJiEwIT09ciYmaS53aWRnZXRzLnNwbGljZShhLDEpLHMmJnMucmVtb3ZlJiYoTC5kZWJ1ZyhpLCJjb3JlIikmJmNvbnNvbGUubG9nKChyPyJSZWZyZXNoaW5nIjoiUmVtb3ZpbmciKSsnICInK3Rbb10rJyIgd2lkZ2V0Jykscy5yZW1vdmUoZSxpLGkud2lkZ2V0T3B0aW9ucyxyKSxpLndpZGdldEluaXRbdFtvXV09ITEpO2kuJHRhYmxlLnRyaWdnZXJIYW5kbGVyKCJ3aWRnZXRSZW1vdmVFbmQiLGUpfSxyZWZyZXNoV2lkZ2V0czpmdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhlKXtBKGUpLnRyaWdnZXJIYW5kbGVyKCJyZWZyZXNoQ29tcGxldGUiKX12YXIgcyxhLG49KGU9QShlKVswXSkuY29uZmlnLndpZGdldHMsaT1MLndpZGdldHMsZD1pLmxlbmd0aCxsPVtdO2ZvcihzPTA7czxkO3MrKykoYT1pW3NdKSYmYS5pZCYmKHR8fEEuaW5BcnJheShhLmlkLG4pPDApJiYobFtsLmxlbmd0aF09YS5pZCk7TC5yZW1vdmVXaWRnZXQoZSxsLmpvaW4oIiwiKSwhMCksITAhPT1yPyhMLmFwcGx5V2lkZ2V0KGUsdHx8ITEsbyksdCYmTC5hcHBseVdpZGdldChlLCExLG8pKTpvKGUpfSxiZW5jaG1hcms6ZnVuY3Rpb24oZSl7cmV0dXJuIiAoIisoKG5ldyBEYXRlKS5nZXRUaW1lKCktZS5nZXRUaW1lKCkpKyIgbXMpIn0sbG9nOmZ1bmN0aW9uKCl7Y29uc29sZS5sb2coYXJndW1lbnRzKX0sZGVidWc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmKCEwPT09ZS5kZWJ1Z3x8InN0cmluZyI9PXR5cGVvZiBlLmRlYnVnJiYtMTxlLmRlYnVnLmluZGV4T2YodCkpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXJldHVybiExO3JldHVybiEwfSxpc1ZhbHVlSW5BcnJheTpmdW5jdGlvbihlLHQpe3ZhciByLG89dCYmdC5sZW5ndGh8fDA7Zm9yKHI9MDtyPG87cisrKWlmKHRbcl1bMF09PT1lKXJldHVybiByO3JldHVybi0xfSxmb3JtYXRGbG9hdDpmdW5jdGlvbihlLHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZXx8IiI9PT1lP2U6KGU9KHQmJnQuY29uZmlnPyExIT09dC5jb25maWcudXNOdW1iZXJGb3JtYXQ6dm9pZCAwPT09dHx8dCk/ZS5yZXBsYWNlKEwucmVnZXguY29tbWEsIiIpOmUucmVwbGFjZShMLnJlZ2V4LmRpZ2l0Tm9uVVMsIiIpLnJlcGxhY2UoTC5yZWdleC5jb21tYSwiLiIpLEwucmVnZXguZGlnaXROZWdhdGl2ZVRlc3QudGVzdChlKSYmKGU9ZS5yZXBsYWNlKEwucmVnZXguZGlnaXROZWdhdGl2ZVJlcGxhY2UsIi0kMSIpKSxyPXBhcnNlRmxvYXQoZSksaXNOYU4ocik/QS50cmltKGUpOnIpO3ZhciByfSxpc0RpZ2l0OmZ1bmN0aW9uKGUpe3JldHVybiBpc05hTihlKT9MLnJlZ2V4LmRpZ2l0VGVzdC50ZXN0KGUudG9TdHJpbmcoKS5yZXBsYWNlKEwucmVnZXguZGlnaXRSZXBsYWNlLCIiKSk6IiIhPT1lfSxjb21wdXRlQ29sdW1uSW5kZXg6ZnVuY3Rpb24oZSx0KXt2YXIgcixvLHMsYSxuLGksZCxsLGMsZyxwPXQmJnQuY29sdW1uc3x8MCx1PVtdLGY9bmV3IEFycmF5KHApO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspZm9yKGk9ZVtyXS5jZWxscyxvPTA7bzxpLmxlbmd0aDtvKyspe2ZvcihkPXIsbD0obj1pW29dKS5yb3dTcGFufHwxLGM9bi5jb2xTcGFufHwxLHZvaWQgMD09PXVbZF0mJih1W2RdPVtdKSxzPTA7czx1W2RdLmxlbmd0aCsxO3MrKylpZih2b2lkIDA9PT11W2RdW3NdKXtnPXM7YnJlYWt9Zm9yKHAmJm4uY2VsbEluZGV4PT09Z3x8KG4uc2V0QXR0cmlidXRlP24uc2V0QXR0cmlidXRlKCJkYXRhLWNvbHVtbiIsZyk6QShuKS5hdHRyKCJkYXRhLWNvbHVtbiIsZykpLHM9ZDtzPGQrbDtzKyspZm9yKHZvaWQgMD09PXVbc10mJih1W3NdPVtdKSxmPXVbc10sYT1nO2E8ZytjO2ErKylmW2FdPSJ4In1yZXR1cm4gTC5jaGVja0NvbHVtbkNvdW50KGUsdSxmLmxlbmd0aCksZi5sZW5ndGh9LGNoZWNrQ29sdW1uQ291bnQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLHMsYT0hMCxuPVtdO2ZvcihvPTA7bzx0Lmxlbmd0aDtvKyspaWYodFtvXSYmKHM9dFtvXS5sZW5ndGgsdFtvXS5sZW5ndGghPT1yKSl7YT0hMTticmVha31hfHwoZS5lYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lO24uaW5kZXhPZihyKTwwJiZuLnB1c2gocil9KSxjb25zb2xlLmVycm9yKCJJbnZhbGlkIG9yIGluY29ycmVjdCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgIituLmpvaW4oIiBvciAiKSsiOyBleHBlY3RlZCAiK3IrIiwgYnV0IGZvdW5kICIrcysiIGNvbHVtbnMiKSl9LGZpeENvbHVtbldpZHRoOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbyxzLGEsbj0oZT1BKGUpWzBdKS5jb25maWcsaT1uLiR0YWJsZS5jaGlsZHJlbigiY29sZ3JvdXAiKTtpZihpLmxlbmd0aCYmaS5oYXNDbGFzcyhMLmNzcy5jb2xncm91cCkmJmkucmVtb3ZlKCksbi53aWR0aEZpeGVkJiYwPT09bi4kdGFibGUuY2hpbGRyZW4oImNvbGdyb3VwIikubGVuZ3RoKXtmb3IoaT1BKCc8Y29sZ3JvdXAgY2xhc3M9IicrTC5jc3MuY29sZ3JvdXArJyI+JyksdD1uLiR0YWJsZS53aWR0aCgpLHM9KG89bi4kdGJvZGllcy5maW5kKCJ0cjpmaXJzdCIpLmNoaWxkcmVuKCI6dmlzaWJsZSIpKS5sZW5ndGgsYT0wO2E8czthKyspcj1wYXJzZUludChvLmVxKGEpLndpZHRoKCkvdCoxZTMsMTApLzEwKyIlIixpLmFwcGVuZChBKCI8Y29sPiIpLmNzcygid2lkdGgiLHIpKTtuLiR0YWJsZS5wcmVwZW5kKGkpfX0sZ2V0RGF0YTpmdW5jdGlvbihlLHQscil7dmFyIG8scyxhPSIiLG49QShlKTtyZXR1cm4gbi5sZW5ndGg/KG89ISFBLm1ldGFkYXRhJiZuLm1ldGFkYXRhKCkscz0iICIrKG4uYXR0cigiY2xhc3MiKXx8IiIpLHZvaWQgMCE9PW4uZGF0YShyKXx8dm9pZCAwIT09bi5kYXRhKHIudG9Mb3dlckNhc2UoKSk/YSs9bi5kYXRhKHIpfHxuLmRhdGEoci50b0xvd2VyQ2FzZSgpKTpvJiZ2b2lkIDAhPT1vW3JdP2ErPW9bcl06dCYmdm9pZCAwIT09dFtyXT9hKz10W3JdOiIgIiE9PXMmJnMubWF0Y2goIiAiK3IrIi0iKSYmKGE9cy5tYXRjaChuZXcgUmVnRXhwKCJcXHMiK3IrIi0oW1xcdy1dKykiKSlbMV18fCIiKSxBLnRyaW0oYSkpOiIifSxnZXRDb2x1bW5EYXRhOmZ1bmN0aW9uKGUsdCxyLG8scyl7aWYoIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4gdDt2YXIgYSxuPShlPUEoZSlbMF0pLmNvbmZpZyxpPXN8fG4uJGhlYWRlcnMsZD1uLiRoZWFkZXJJbmRleGVkJiZuLiRoZWFkZXJJbmRleGVkW3JdfHxpLmZpbmQoJ1tkYXRhLWNvbHVtbj0iJytyKyciXTpsYXN0Jyk7aWYodm9pZCAwIT09dFtyXSlyZXR1cm4gbz90W3JdOnRbaS5pbmRleChkKV07Zm9yKGEgaW4gdClpZigic3RyaW5nIj09dHlwZW9mIGEmJmQuZmlsdGVyKGEpLmFkZChkLmZpbmQoYSkpLmxlbmd0aClyZXR1cm4gdFthXX0saXNQcm9jZXNzaW5nOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbz0oZT1BKGUpKVswXS5jb25maWcscz1yfHxlLmZpbmQoIi4iK0wuY3NzLmhlYWRlcik7dD8odm9pZCAwIT09ciYmMDxvLnNvcnRMaXN0Lmxlbmd0aCYmKHM9cy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zb3J0RGlzYWJsZWQmJjA8PUwuaXNWYWx1ZUluQXJyYXkocGFyc2VGbG9hdChBKHRoaXMpLmF0dHIoImRhdGEtY29sdW1uIikpLG8uc29ydExpc3QpfSkpLGUuYWRkKHMpLmFkZENsYXNzKEwuY3NzLnByb2Nlc3NpbmcrIiAiK28uY3NzUHJvY2Vzc2luZykpOmUuYWRkKHMpLnJlbW92ZUNsYXNzKEwuY3NzLnByb2Nlc3NpbmcrIiAiK28uY3NzUHJvY2Vzc2luZyl9LHByb2Nlc3NUYm9keTpmdW5jdGlvbihlLHQscil7aWYoZT1BKGUpWzBdLHIpcmV0dXJuIGUuaXNQcm9jZXNzaW5nPSEwLHQuYmVmb3JlKCc8Y29sZ3JvdXAgY2xhc3M9InRhYmxlc29ydGVyLXNhdmVteXBsYWNlIi8+JyksQS5mbi5kZXRhY2g/dC5kZXRhY2goKTp0LnJlbW92ZSgpO3ZhciBvPUEoZSkuZmluZCgiY29sZ3JvdXAudGFibGVzb3J0ZXItc2F2ZW15cGxhY2UiKTt0Lmluc2VydEFmdGVyKG8pLG8ucmVtb3ZlKCksZS5pc1Byb2Nlc3Npbmc9ITF9LGNsZWFyVGFibGVCb2R5OmZ1bmN0aW9uKGUpe0EoZSlbMF0uY29uZmlnLiR0Ym9kaWVzLmNoaWxkcmVuKCkuZGV0YWNoKCl9LGNoYXJhY3RlckVxdWl2YWxlbnRzOnthOiLDocOgw6LDo8OkxIXDpSIsQToiw4HDgMOCw4PDhMSEw4UiLGM6IsOnxIfEjSIsQzoiw4fEhsSMIixlOiLDqcOow6rDq8SbxJkiLEU6IsOJw4jDisOLxJrEmCIsaToiw63DrMSww67Dr8SxIixJOiLDjcOMxLDDjsOPIixvOiLDs8Oyw7TDtcO2xY0iLE86IsOTw5LDlMOVw5bFjCIsc3M6IsOfIixTUzoi4bqeIix1OiLDusO5w7vDvMWvIixVOiLDmsOZw5vDnMWuIn0scmVwbGFjZUFjY2VudHM6ZnVuY3Rpb24oZSl7dmFyIHQscj0iWyIsbz1MLmNoYXJhY3RlckVxdWl2YWxlbnRzO2lmKCFMLmNoYXJhY3RlclJlZ2V4KXtmb3IodCBpbiBMLmNoYXJhY3RlclJlZ2V4QXJyYXk9e30sbykic3RyaW5nIj09dHlwZW9mIHQmJihyKz1vW3RdLEwuY2hhcmFjdGVyUmVnZXhBcnJheVt0XT1uZXcgUmVnRXhwKCJbIitvW3RdKyJdIiwiZyIpKTtMLmNoYXJhY3RlclJlZ2V4PW5ldyBSZWdFeHAocisiXSIpfWlmKEwuY2hhcmFjdGVyUmVnZXgudGVzdChlKSlmb3IodCBpbiBvKSJzdHJpbmciPT10eXBlb2YgdCYmKGU9ZS5yZXBsYWNlKEwuY2hhcmFjdGVyUmVnZXhBcnJheVt0XSx0KSk7cmV0dXJuIGV9LHZhbGlkYXRlT3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdCxyLG8scyxhPSJoZWFkZXJzIHNvcnRGb3JjZSBzb3J0TGlzdCBzb3J0QXBwZW5kIHdpZGdldHMiLnNwbGl0KCIgIiksbj1lLm9yaWdpbmFsU2V0dGluZ3M7aWYobil7Zm9yKHQgaW4gTC5kZWJ1ZyhlLCJjb3JlIikmJihzPW5ldyBEYXRlKSxuKWlmKCJ1bmRlZmluZWQiPT09KG89dHlwZW9mIEwuZGVmYXVsdHNbdF0pKWNvbnNvbGUud2FybignVGFibGVzb3J0ZXIgV2FybmluZyEgInRhYmxlLmNvbmZpZy4nK3QrJyIgb3B0aW9uIG5vdCByZWNvZ25pemVkJyk7ZWxzZSBpZigib2JqZWN0Ij09PW8pZm9yKHIgaW4gblt0XSlvPUwuZGVmYXVsdHNbdF0mJnR5cGVvZiBMLmRlZmF1bHRzW3RdW3JdLEEuaW5BcnJheSh0LGEpPDAmJiJ1bmRlZmluZWQiPT09byYmY29uc29sZS53YXJuKCdUYWJsZXNvcnRlciBXYXJuaW5nISAidGFibGUuY29uZmlnLicrdCsiLiIrcisnIiBvcHRpb24gbm90IHJlY29nbml6ZWQnKTtMLmRlYnVnKGUsImNvcmUiKSYmY29uc29sZS5sb2coInZhbGlkYXRlIG9wdGlvbnMgdGltZToiK0wuYmVuY2htYXJrKHMpKX19LHJlc3RvcmVIZWFkZXJzOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbz1BKGUpWzBdLmNvbmZpZyxzPW8uJHRhYmxlLmZpbmQoby5zZWxlY3RvckhlYWRlcnMpLGE9cy5sZW5ndGg7Zm9yKHQ9MDt0PGE7dCsrKShyPXMuZXEodCkpLmZpbmQoIi4iK0wuY3NzLmhlYWRlckluKS5sZW5ndGgmJnIuaHRtbChvLmhlYWRlckNvbnRlbnRbdF0pfSxkZXN0cm95OmZ1bmN0aW9uKGUsdCxyKXtpZigoZT1BKGUpWzBdKS5oYXNJbml0aWFsaXplZCl7TC5yZW1vdmVXaWRnZXQoZSwhMCwhMSk7dmFyIG8scz1BKGUpLGE9ZS5jb25maWcsbj1zLmZpbmQoInRoZWFkOmZpcnN0IiksaT1uLmZpbmQoInRyLiIrTC5jc3MuaGVhZGVyUm93KS5yZW1vdmVDbGFzcyhMLmNzcy5oZWFkZXJSb3crIiAiK2EuY3NzSGVhZGVyUm93KSxkPXMuZmluZCgidGZvb3Q6Zmlyc3QgPiB0ciIpLmNoaWxkcmVuKCJ0aCwgdGQiKTshMT09PXQmJjA8PUEuaW5BcnJheSgidWl0aGVtZSIsYS53aWRnZXRzKSYmKHMudHJpZ2dlckhhbmRsZXIoImFwcGx5V2lkZ2V0SWQiLFsidWl0aGVtZSJdKSxzLnRyaWdnZXJIYW5kbGVyKCJhcHBseVdpZGdldElkIixbInplYnJhIl0pKSxuLmZpbmQoInRyIikubm90KGkpLnJlbW92ZSgpLG89InNvcnRSZXNldCB1cGRhdGUgdXBkYXRlUm93cyB1cGRhdGVBbGwgdXBkYXRlSGVhZGVycyB1cGRhdGVDZWxsIGFkZFJvd3MgdXBkYXRlQ29tcGxldGUgc29ydG9uIGFwcGVuZENhY2hlIHVwZGF0ZUNhY2hlIGFwcGx5V2lkZ2V0SWQgYXBwbHlXaWRnZXRzIHJlZnJlc2hXaWRnZXRzIHJlbW92ZVdpZGdldCBkZXN0cm95IG1vdXNldXAgbW91c2VsZWF2ZSAiKyJrZXlwcmVzcyBzb3J0QmVnaW4gc29ydEVuZCByZXNldFRvTG9hZFN0YXRlICIuc3BsaXQoIiAiKS5qb2luKGEubmFtZXNwYWNlKyIgIikscy5yZW1vdmVEYXRhKCJ0YWJsZXNvcnRlciIpLnVuYmluZChvLnJlcGxhY2UoTC5yZWdleC5zcGFjZXMsIiAiKSksYS4kaGVhZGVycy5hZGQoZCkucmVtb3ZlQ2xhc3MoW0wuY3NzLmhlYWRlcixhLmNzc0hlYWRlcixhLmNzc0FzYyxhLmNzc0Rlc2MsTC5jc3Muc29ydEFzYyxMLmNzcy5zb3J0RGVzYyxMLmNzcy5zb3J0Tm9uZV0uam9pbigiICIpKS5yZW1vdmVBdHRyKCJkYXRhLWNvbHVtbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWwiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpLGkuZmluZChhLnNlbGVjdG9yU29ydCkudW5iaW5kKCJtb3VzZWRvd24gbW91c2V1cCBrZXlwcmVzcyAiLnNwbGl0KCIgIikuam9pbihhLm5hbWVzcGFjZSsiICIpLnJlcGxhY2UoTC5yZWdleC5zcGFjZXMsIiAiKSksTC5yZXN0b3JlSGVhZGVycyhlKSxzLnRvZ2dsZUNsYXNzKEwuY3NzLnRhYmxlKyIgIithLnRhYmxlQ2xhc3MrIiB0YWJsZXNvcnRlci0iK2EudGhlbWUsITE9PT10KSxzLnJlbW92ZUNsYXNzKGEubmFtZXNwYWNlLnNsaWNlKDEpKSxlLmhhc0luaXRpYWxpemVkPSExLGRlbGV0ZSBlLmNvbmZpZy5jYWNoZSwiZnVuY3Rpb24iPT10eXBlb2YgciYmcihlKSxMLmRlYnVnKGEsImNvcmUiKSYmY29uc29sZS5sb2coInRhYmxlc29ydGVyIGhhcyBiZWVuIHJlbW92ZWQiKX19fTtBLmZuLnRhYmxlc29ydGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1BLmV4dGVuZCghMCx7fSxMLmRlZmF1bHRzLHQsTC5pbnN0YW5jZU1ldGhvZHMpO2Uub3JpZ2luYWxTZXR0aW5ncz10LCF0aGlzLmhhc0luaXRpYWxpemVkJiZMLmJ1aWxkVGFibGUmJiJUQUJMRSIhPT10aGlzLm5vZGVOYW1lP0wuYnVpbGRUYWJsZSh0aGlzLGUpOkwuc2V0dXAodGhpcyxlKX0pfSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nfHwoTC5sb2dzPVtdLGNvbnNvbGU9e30sY29uc29sZS5sb2c9Y29uc29sZS53YXJuPWNvbnNvbGUuZXJyb3I9Y29uc29sZS50YWJsZT1mdW5jdGlvbigpe3ZhciBlPTE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHM6YXJndW1lbnRzWzBdO0wubG9nc1tMLmxvZ3MubGVuZ3RoXT17ZGF0ZTpEYXRlLm5vdygpLGxvZzplfX0pLEwuYWRkUGFyc2VyKHtpZDoibm8tcGFyc2VyIixpczpmdW5jdGlvbigpe3JldHVybiExfSxmb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4iIn0sdHlwZToidGV4dCJ9KSxMLmFkZFBhcnNlcih7aWQ6InRleHQiLGlzOmZ1bmN0aW9uKCl7cmV0dXJuITB9LGZvcm1hdDpmdW5jdGlvbihlLHQpe3ZhciByPXQuY29uZmlnO3JldHVybiBlJiYoZT1BLnRyaW0oci5pZ25vcmVDYXNlP2UudG9Mb2NhbGVMb3dlckNhc2UoKTplKSxlPXIuc29ydExvY2FsZUNvbXBhcmU/TC5yZXBsYWNlQWNjZW50cyhlKTplKSxlfSx0eXBlOiJ0ZXh0In0pLEwucmVnZXgubm9uZGlnaXQ9L1teXHcsLiBcLSgpXS9nLEwuYWRkUGFyc2VyKHtpZDoiZGlnaXQiLGlzOmZ1bmN0aW9uKGUpe3JldHVybiBMLmlzRGlnaXQoZSl9LGZvcm1hdDpmdW5jdGlvbihlLHQpe3ZhciByPUwuZm9ybWF0RmxvYXQoKGV8fCIiKS5yZXBsYWNlKEwucmVnZXgubm9uZGlnaXQsIiIpLHQpO3JldHVybiBlJiYibnVtYmVyIj09dHlwZW9mIHI/cjplP0EudHJpbShlJiZ0LmNvbmZpZy5pZ25vcmVDYXNlP2UudG9Mb2NhbGVMb3dlckNhc2UoKTplKTplfSx0eXBlOiJudW1lcmljIn0pLEwucmVnZXguY3VycmVuY3lSZXBsYWNlPS9bK1wtLC4gXS9nLEwucmVnZXguY3VycmVuY3lUZXN0PS9eXCg/XGQrW1x1MDBhMyRcdTIwYWNcdTAwYTRcdTAwYTVcdTAwYTI/Ll18W1x1MDBhMyRcdTIwYWNcdTAwYTRcdTAwYTVcdTAwYTI/Ll1cZCtcKT8kLyxMLmFkZFBhcnNlcih7aWQ6ImN1cnJlbmN5IixpczpmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8IiIpLnJlcGxhY2UoTC5yZWdleC5jdXJyZW5jeVJlcGxhY2UsIiIpLEwucmVnZXguY3VycmVuY3lUZXN0LnRlc3QoZSl9LGZvcm1hdDpmdW5jdGlvbihlLHQpe3ZhciByPUwuZm9ybWF0RmxvYXQoKGV8fCIiKS5yZXBsYWNlKEwucmVnZXgubm9uZGlnaXQsIiIpLHQpO3JldHVybiBlJiYibnVtYmVyIj09dHlwZW9mIHI/cjplP0EudHJpbShlJiZ0LmNvbmZpZy5pZ25vcmVDYXNlP2UudG9Mb2NhbGVMb3dlckNhc2UoKTplKTplfSx0eXBlOiJudW1lcmljIn0pLEwucmVnZXgudXJsUHJvdG9jb2xUZXN0PS9eKGh0dHBzP3xmdHB8ZmlsZSk6XC9cLy8sTC5yZWdleC51cmxQcm90b2NvbFJlcGxhY2U9LyhodHRwcz98ZnRwfGZpbGUpOlwvXC8od3d3XC4pPy8sTC5hZGRQYXJzZXIoe2lkOiJ1cmwiLGlzOmZ1bmN0aW9uKGUpe3JldHVybiBMLnJlZ2V4LnVybFByb3RvY29sVGVzdC50ZXN0KGUpfSxmb3JtYXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/QS50cmltKGUucmVwbGFjZShMLnJlZ2V4LnVybFByb3RvY29sUmVwbGFjZSwiIikpOmV9LHR5cGU6InRleHQifSksTC5yZWdleC5kYXNoPS8tL2csTC5yZWdleC5pc29EYXRlPS9eXGR7NH1bXC9cLV1cZHsxLDJ9W1wvXC1dXGR7MSwyfS8sTC5hZGRQYXJzZXIoe2lkOiJpc29EYXRlIixpczpmdW5jdGlvbihlKXtyZXR1cm4gTC5yZWdleC5pc29EYXRlLnRlc3QoZSl9LGZvcm1hdDpmdW5jdGlvbihlKXt2YXIgdD1lP25ldyBEYXRlKGUucmVwbGFjZShMLnJlZ2V4LmRhc2gsIi8iKSk6ZTtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGUmJmlzRmluaXRlKHQpP3QuZ2V0VGltZSgpOmV9LHR5cGU6Im51bWVyaWMifSksTC5yZWdleC5wZXJjZW50PS8lL2csTC5yZWdleC5wZXJjZW50VGVzdD0vKFxkXHMqPyV8JVxzKj9cZCkvLEwuYWRkUGFyc2VyKHtpZDoicGVyY2VudCIsaXM6ZnVuY3Rpb24oZSl7cmV0dXJuIEwucmVnZXgucGVyY2VudFRlc3QudGVzdChlKSYmZS5sZW5ndGg8MTV9LGZvcm1hdDpmdW5jdGlvbihlLHQpe3JldHVybiBlP0wuZm9ybWF0RmxvYXQoZS5yZXBsYWNlKEwucmVnZXgucGVyY2VudCwiIiksdCk6ZX0sdHlwZToibnVtZXJpYyJ9KSxMLmFkZFBhcnNlcih7aWQ6ImltYWdlIixpczpmdW5jdGlvbihlLHQscixvKXtyZXR1cm4gMDxvLmZpbmQoImltZyIpLmxlbmd0aH0sZm9ybWF0OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gQShyKS5maW5kKCJpbWciKS5hdHRyKHQuY29uZmlnLmltZ0F0dHJ8fCJhbHQiKXx8ZX0scGFyc2VkOiEwLHR5cGU6InRleHQifSksTC5yZWdleC5kYXRlUmVwbGFjZT0vKFxTKShbQVBdTSkkL2ksTC5yZWdleC51c0xvbmdEYXRlVGVzdDE9L15bQS1aXXszLDEwfVwuP1xzK1xkezEsMn0sP1xzKyhcZHs0fSkoXHMrXGR7MSwyfTpcZHsyfSg6XGR7Mn0pPyhccytbQVBdTSk/KT8kL2ksTC5yZWdleC51c0xvbmdEYXRlVGVzdDI9L15cZHsxLDJ9XHMrW0EtWl17MywxMH1ccytcZHs0fS9pLEwuYWRkUGFyc2VyKHtpZDoidXNMb25nRGF0ZSIsaXM6ZnVuY3Rpb24oZSl7cmV0dXJuIEwucmVnZXgudXNMb25nRGF0ZVRlc3QxLnRlc3QoZSl8fEwucmVnZXgudXNMb25nRGF0ZVRlc3QyLnRlc3QoZSl9LGZvcm1hdDpmdW5jdGlvbihlKXt2YXIgdD1lP25ldyBEYXRlKGUucmVwbGFjZShMLnJlZ2V4LmRhdGVSZXBsYWNlLCIkMSAkMiIpKTplO3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZSYmaXNGaW5pdGUodCk/dC5nZXRUaW1lKCk6ZX0sdHlwZToibnVtZXJpYyJ9KSxMLnJlZ2V4LnNob3J0RGF0ZVRlc3Q9LyheXGR7MSwyfVtcL1xzXVxkezEsMn1bXC9cc11cZHs0fSl8KF5cZHs0fVtcL1xzXVxkezEsMn1bXC9cc11cZHsxLDJ9KS8sTC5yZWdleC5zaG9ydERhdGVSZXBsYWNlPS9bXC0uLF0vZyxMLnJlZ2V4LnNob3J0RGF0ZVhYWT0vKFxkezEsMn0pW1wvXHNdKFxkezEsMn0pW1wvXHNdKFxkezR9KS8sTC5yZWdleC5zaG9ydERhdGVZTUQ9LyhcZHs0fSlbXC9cc10oXGR7MSwyfSlbXC9cc10oXGR7MSwyfSkvLEwuY29udmVydEZvcm1hdD1mdW5jdGlvbihlLHQpe2U9KGV8fCIiKS5yZXBsYWNlKEwucmVnZXguc3BhY2VzLCIgIikucmVwbGFjZShMLnJlZ2V4LnNob3J0RGF0ZVJlcGxhY2UsIi8iKSwibW1kZHl5eXkiPT09dD9lPWUucmVwbGFjZShMLnJlZ2V4LnNob3J0RGF0ZVhYWSwiJDMvJDEvJDIiKToiZGRtbXl5eXkiPT09dD9lPWUucmVwbGFjZShMLnJlZ2V4LnNob3J0RGF0ZVhYWSwiJDMvJDIvJDEiKToieXl5eW1tZGQiPT09dCYmKGU9ZS5yZXBsYWNlKEwucmVnZXguc2hvcnREYXRlWU1ELCIkMS8kMi8kMyIpKTt2YXIgcj1uZXcgRGF0ZShlKTtyZXR1cm4gciBpbnN0YW5jZW9mIERhdGUmJmlzRmluaXRlKHIpP3IuZ2V0VGltZSgpOiIifSxMLmFkZFBhcnNlcih7aWQ6InNob3J0RGF0ZSIsaXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9KGV8fCIiKS5yZXBsYWNlKEwucmVnZXguc3BhY2VzLCIgIikucmVwbGFjZShMLnJlZ2V4LnNob3J0RGF0ZVJlcGxhY2UsIi8iKSxMLnJlZ2V4LnNob3J0RGF0ZVRlc3QudGVzdChlKX0sZm9ybWF0OmZ1bmN0aW9uKGUsdCxyLG8pe2lmKGUpe3ZhciBzPXQuY29uZmlnLGE9cy4kaGVhZGVySW5kZXhlZFtvXSxuPWEubGVuZ3RoJiZhLmRhdGEoImRhdGVGb3JtYXQiKXx8TC5nZXREYXRhKGEsTC5nZXRDb2x1bW5EYXRhKHQscy5oZWFkZXJzLG8pLCJkYXRlRm9ybWF0Iil8fHMuZGF0ZUZvcm1hdDtyZXR1cm4gYS5sZW5ndGgmJmEuZGF0YSgiZGF0ZUZvcm1hdCIsbiksTC5jb252ZXJ0Rm9ybWF0KGUsbil8fGV9cmV0dXJuIGV9LHR5cGU6Im51bWVyaWMifSksTC5yZWdleC50aW1lVGVzdD0vXigwP1sxLTldfDFbMC0yXSk6KFswLTVdXGQpKFxzW0FQXU0pJHxeKCg/OlswMV1cZHxbMl1bMC00XSk6WzAtNV1cZCkkL2ksTC5yZWdleC50aW1lTWF0Y2g9LygwP1sxLTldfDFbMC0yXSk6KFswLTVdXGQpKFxzW0FQXU0pfCgoPzpbMDFdXGR8WzJdWzAtNF0pOlswLTVdXGQpL2ksTC5hZGRQYXJzZXIoe2lkOiJ0aW1lIixpczpmdW5jdGlvbihlKXtyZXR1cm4gTC5yZWdleC50aW1lVGVzdC50ZXN0KGUpfSxmb3JtYXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9KGV8fCIiKS5tYXRjaChMLnJlZ2V4LnRpbWVNYXRjaCkscj1uZXcgRGF0ZShlKSxvPWUmJihudWxsIT09dD90WzBdOiIwMDowMCBBTSIpLHM9bz9uZXcgRGF0ZSgiMjAwMC8wMS8wMSAiK28ucmVwbGFjZShMLnJlZ2V4LmRhdGVSZXBsYWNlLCIkMSAkMiIpKTpvO3JldHVybiBzIGluc3RhbmNlb2YgRGF0ZSYmaXNGaW5pdGUocyk/KHIgaW5zdGFuY2VvZiBEYXRlJiZpc0Zpbml0ZShyKT9yLmdldFRpbWUoKTowKT9wYXJzZUZsb2F0KHMuZ2V0VGltZSgpKyIuIityLmdldFRpbWUoKSk6cy5nZXRUaW1lKCk6ZX0sdHlwZToibnVtZXJpYyJ9KSxMLmFkZFBhcnNlcih7aWQ6Im1ldGFkYXRhIixpczpmdW5jdGlvbigpe3JldHVybiExfSxmb3JtYXQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvPXQuY29uZmlnLHM9by5wYXJzZXJNZXRhZGF0YU5hbWU/by5wYXJzZXJNZXRhZGF0YU5hbWU6InNvcnRWYWx1ZSI7cmV0dXJuIEEocikubWV0YWRhdGEoKVtzXX0sdHlwZToibnVtZXJpYyJ9KSxMLmFkZFdpZGdldCh7aWQ6InplYnJhIixwcmlvcml0eTo5MCxmb3JtYXQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLHMsYSxuLGksZCxsLGM9bmV3IFJlZ0V4cCh0LmNzc0NoaWxkUm93LCJpIiksZz10LiR0Ym9kaWVzLmFkZChBKHQubmFtZXNwYWNlKyJfZXh0cmFfdGFibGUiKS5jaGlsZHJlbigidGJvZHk6bm90KC4iK3QuY3NzSW5mb0Jsb2NrKyIpIikpO2ZvcihpPTA7aTxnLmxlbmd0aDtpKyspZm9yKGE9MCxsPShvPWcuZXEoaSkuY2hpbGRyZW4oInRyOnZpc2libGUiKS5ub3QodC5zZWxlY3RvclJlbW92ZSkpLmxlbmd0aCxkPTA7ZDxsO2QrKylzPW8uZXEoZCksYy50ZXN0KHNbMF0uY2xhc3NOYW1lKXx8YSsrLG49YSUyPT0wLHMucmVtb3ZlQ2xhc3Moci56ZWJyYVtuPzE6MF0pLmFkZENsYXNzKHIuemVicmFbbj8wOjFdKX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCxyLG8pe2lmKCFvKXt2YXIgcyxhLG49dC4kdGJvZGllcyxpPShyLnplYnJhfHxbImV2ZW4iLCJvZGQiXSkuam9pbigiICIpO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspKGE9TC5wcm9jZXNzVGJvZHkoZSxuLmVxKHMpLCEwKSkuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcyhpKSxMLnByb2Nlc3NUYm9keShlLGEsITEpfX19KX0oZSksZS50YWJsZXNvcnRlcn0pOw==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NpbXBsZSBTaG9wJzsKJGxhbmdbJ2FkbWluX2Rlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgZm9ybXMgdGhlIGJhc2Ugb2YgcHJlcGFyaW5nIGEgc2hvcC4gSXQgaGFuZGxlcyB0aGUgcHJvZHVjdHMgYW5kIHRoZWlyIGdyb3VwaW5nLiBJbWFnZXMgYW5kIGF0dHJpYnV0ZXMgYXJlIGF2YWlsYWJsZSBwZXIgcHJvZHVjdCc7CiRsYW5nWydtZXNzYWdlX3Bvc3RpbnN0YWxsJ10gPSAnQmUgc3VyZSB0byBzZXQgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlLic7CiRsYW5nWydtZXNzYWdlX3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgbW9kdWxlIGlzIHVuaW5zdGFsbGVkLic7CiRsYW5nWydtZXNzYWdlX2NvbmZpcm11bmluc3RhbGwnXSA9ICdSZWFsbHk/IFlvdVwncmUgc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/JzsKCi8vIENvbW1vbiB0cmFuc2xhdGlvbnMKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKCiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2RvbmUnXSA9ICdEb25lJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWydjb250aW51ZSddID0gJ0NvbnRpbnVlJzsKJGxhbmdbJ21vZHVsZV9leGFtcGxlX3N0eWxlc2hlZXQnXSA9ICdNb2R1bGU6IFNpbXBsZSBTaG9wJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKCi8vIFRyYW5zbGF0aW9ucyBpbiBhbHBoYWJldGljIG9yZGVyCiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsKJGxhbmdbJ2FkZGF0dHJpYnV0ZSddID0gJ0FkZCBBdHRyaWJ1dGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZGQgQ2F0ZWdvcnknOwokbGFuZ1snYWRkaW1hZ2UnXSA9ICdBZGQgSW1hZ2UnOwokbGFuZ1snYWRkdG9jYXJ0J10gPSAnQWRkIHRvIENhcnQnOwokbGFuZ1snYWRqdXN0dHlwZW1pbiddID0gJy0gTWluJzsKJGxhbmdbJ2FkanVzdHR5cGVwbHVzJ10gPSAnKyBQbHVzJzsKJGxhbmdbJ2FkanVzdHR5cGV0aW1lcyddID0gJyogVGltZXMnOwokbGFuZ1snYWRqdXN0dHlwZXZhbHVlJ10gPSAnVmFsdWUnOwokbGFuZ1snYXR0cmlidXRldXBkYXRlZCddID0gJ0F0dHJpYnV0ZSBoYXMgYmVlbiB1cGRhdGVkJzsKJGxhbmdbJ2Jhc2Vwcm9kdWN0cHJpY2UnXSA9ICcoUHJvZHVjdCBiYXNlIHByaWNlOiAlcyknOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGUnXSA9ICdDYXRlZ29yeSBoYXMgYmVlbiB1cGRhdGVkJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yeSBoYXMgYmVlbiBhZGRlZCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yeSBoYXMgYmVlbiBkZWxldGVkJzsKJGxhbmdbJ2NvbHVtbl9hdHRyaWJ1dGVfYWRqdXN0bWVudCddID0gJ0FkanVzdG1lbnQnOwokbGFuZ1snY29sdW1uX2F0dHJpYnV0ZV9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2NvbHVtbl9hdHRyaWJ1dGVfZGlzcGxheSddID0gJ0NhbGN1bGF0ZSB3aXRoPyc7CiRsYW5nWydjb2x1bW5fYXR0cmlidXRlX2l0ZW1udW1iZXInXSA9ICdJdGVtIG51bWJlcic7CiRsYW5nWydjb2x1bW5fYXR0cmlidXRlX21heGFsbG93ZWQnXSA9ICdNYXgnOwokbGFuZ1snY29sdW1uX2F0dHJpYnV0ZV9taW5hbGxvd2VkJ10gPSAnTWluJzsKJGxhbmdbJ2NvbHVtbl9hdHRyaWJ1dGVfbmFtZSddID0gJ05hbWUnOwokbGFuZ1snY29sdW1uX2F0dHJpYnV0ZV9wcmljZSddID0gJ1ByaWNlJzsKJGxhbmdbJ2NvbHVtbl9pbWFnZV9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2NvbHVtbl9pbWFnZV9uYW1lJ10gPSAnSW1hZ2UgZmlsZSc7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ0RlbGV0ZSBDYXRlZ29yeSc7CiRsYW5nWydlcnJvcmltYWdldXBsb2FkJ10gPSAnRXJyb3IgZmlsZSB1cGxvYWQuIENoZWNrIHRoZSBmaWxlIG5hbWUsIHJpZ2h0cyB0byB0aGUgZGlyZWN0b3J5IHdyaXRpbmcuJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2ludmVudG9yeXR5cGVfbm9uZSddID0gJ05vdCB1c2VkJzsKJGxhbmdbJ2ludmVudG9yeXR5cGVfcHJvZCddID0gJ1BlciBwcm9kdWN0JzsKJGxhbmdbJ2ludmVudG9yeXR5cGVfYXR0ciddID0gJ1BlciBhdHRyaWJ1dGUnOwokbGFuZ1snaW1hZ2VlZGl0ZWQnXSA9ICdJbWFnZSBoYXMgYmVlbiBlZGl0ZWQnOwokbGFuZ1snbGFiZWxfYXR0cmlidXRlJ10gPSAnQXR0cmlidXRlJzsKJGxhbmdbJ2xhYmVsX2FkbWluX2VtYWlsJ10gPSAnQWRtaW5pc3RyYXRvciBFbWFpbCc7CiRsYW5nWydsYWJlbF9hZG1pbl9uYW1lJ10gPSAnQWRtaW5pc3RyYXRvciBOYW1lJzsKJGxhbmdbJ2xhYmVsX2FsbG93ZG91YmxlaXRlbSddID0gJ0FsbG93IGRvdWJsZSBpdGVtIG51bWJlcnM/JzsKJGxhbmdbJ2xhYmVsX2F0dHJpYnV0ZV9hY3RpdmUnXSA9ICdBdHRyaWJ1dGUgaXMgYWN0aXZlPyc7CiRsYW5nWydsYWJlbF9hdHRyaWJ1dGVfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydsYWJlbF9hdHRyaWJ1dGVfZGlzcGxheW9ubHknXSA9ICdPbmx5IGRpc3BsYXkgdGhlIGF0dHJpYnV0ZT8nOwokbGFuZ1snbGFiZWxfYXR0cmlidXRlX2l0ZW1udW1iZXInXSA9ICdJdGVtIG51bWJlcic7CiRsYW5nWydsYWJlbF9hdHRyaWJ1dGVfbWF4YWxsb3dlZCddID0gJ01heGltdW0gYWxsb3dlZCc7CiRsYW5nWydsYWJlbF9hdHRyaWJ1dGVfbWluYWxsb3dlZCddID0gJ01pbmltdW0gYWxsb3dlZCc7CiRsYW5nWydsYWJlbF9hdHRyaWJ1dGVfbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbGFiZWxfYXR0cmlidXRlX3ByaWNlYWRqdXN0dHlwZSddID0gJ1ByaWNlIGFkanVzdCB0eXBlJzsKJGxhbmdbJ2xhYmVsX2F0dHJpYnV0ZV9wcmljZWFkanVzdG1lbnQnXSA9ICdQcmljZSBhZGp1c3RtZW50JzsKJGxhbmdbJ2xhYmVsX2F0dHJpYnV0ZV9wcm9kdWN0X25hbWUnXSA9ICdBdHRyaWJ1dGUgZm9yIHByb2R1Y3QnOwokbGFuZ1snbGFiZWxfYXR0cmlidXRlc19wcm9kdWN0X25hbWUnXSA9ICdBdHRyaWJ1dGVzIGZvciBwcm9kdWN0JzsKJGxhbmdbJ2xhYmVsX2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ2xhYmVsX2NhdGVnb3JpZXNfdGVtcGxhdGUnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ2xhYmVsX2NhdGVnb3J5X2FjdGl2ZSddID0gJ0NhdGVnb3J5IGlzIGFjdGl2ZT8nOwokbGFuZ1snbGFiZWxfY2F0ZWdvcnlfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydsYWJlbF9jYXRlZ29yeV9pZCddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2xhYmVsX2NhdGVnb3J5X2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snbGFiZWxfY2F0ZWdvcnlfbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbGFiZWxfY2F0ZWdvcnlfcGFyZW50J10gPSAnUGFyZW50IENhdGVnb3J5JzsKJGxhbmdbJ2xhYmVsX2NhdGVnb3J5X3Bvc2l0aW9uJ10gPSAnTGlzdCBPcmRlcic7CiRsYW5nWydsYWJlbF9jYXRsaXN0X3RlbXBsYXRlJ10gPSAnQ2F0ZWdvcnkgJiBQcm9kdWN0cyc7CiRsYW5nWydsYWJlbF9jdXJyZW50X2NhdGVnb3J5J10gPSAnQ3VycmVudCBDYXRlZ29yeSc7CiRsYW5nWydsYWJlbF9kZWNpbWFscG9zaXRpb25zcHJpY2UnXSA9ICdEZWNpbWFscyB0byB1c2UgaW4gcHJpY2VzJzsKJGxhbmdbJ2xhYmVsX2RlY2ltYWxzZXBhcmF0b3JwcmljZSddID0gJ0RlY2ltYWwgcG9pbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ2xhYmVsX2RlY2ltYWxwb3NpdGlvbnN3ZWlnaHQnXSA9ICdEZWNpbWFscyB0byB1c2UgaW4gd2VpZ2h0cyc7CiRsYW5nWydsYWJlbF9kZWNpbWFsc2VwYXJhdG9yd2VpZ2h0J10gPSAnRGVjaW1hbCBwb2ludCBjaGFyYWN0ZXInOwokbGFuZ1snbGFiZWxfZGVmYXVsdF9jdXJyZW5jeSddID0gJ0RlZmF1bHQgQ3VycmVuY3knOwokbGFuZ1snbGFiZWxfZGVmYXVsdF9sYW5ndWFnZSddID0gJ0RlZmF1bHQgTGFuZ3VhZ2UnOwokbGFuZ1snbGFiZWxfZGVmYXVsdF9tYXhhdHRyaWJ1dGVzJ10gPSAnRGVmYXVsdCBxdWFudGl0eSBvbiBzdG9jayc7CiRsYW5nWydsYWJlbF9kZWZhdWx0X3NrdSddID0gJ0RlZmF1bHQgU3RvY2sgS2VlcGluZyBVbml0JzsKJGxhbmdbJ2xhYmVsX2RlZmF1bHRfc3ltYm9sJ10gPSAnRGVmYXVsdCBDdXJyZW5jeSBTeW1ib2wnOwokbGFuZ1snbGFiZWxfZGlzcGxheXF1aWNrc2VsZWN0b3InXSA9ICdEaXNwbGF5IHRoZSBxdWljayBzZWxlY3Rvcic7CiRsYW5nWydsYWJlbF9pbWFnZV9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2xhYmVsX2ltYWdlX25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ2xhYmVsX2ltYWdlX3Byb2R1Y3RfbmFtZSddID0gJ0ltYWdlcyBmb3IgcHJvZHVjdCc7CiRsYW5nWydsYWJlbF9pbWFnZXBhdGhfY2F0ZWdvcnknXSA9ICdQYXRoIHRvIGNhdGVnb3J5IGltYWdlcyc7CiRsYW5nWydsYWJlbF9pbWFnZXBhdGhfcHJvZHVjdCddID0gJ1BhdGggdG8gcHJvZHVjdCBpbWFnZXMnOwokbGFuZ1snbGFiZWxfaW52ZW50b3J5c2V0dGluZ3MnXSA9ICdJbnZlbnRvcnkgU2V0dGluZ3MnOwokbGFuZ1snbGFiZWxfaW52ZW50b3J5dHlwZSddID0gJ0ludmVudG9yeSB0byB0cmFjayc7CiRsYW5nWydsYWJlbF9pdGVtX2NhcGl0YWxfb25seSddID0gJ0l0ZW1udW1iZXIgY2FwaXRhbHMgb25seSc7CiRsYW5nWydsYWJlbF9udW1iZXJmb3JtYXR0aW5nJ10gPSAnTnVtYmVyIEZvcm1hdHRpbmcnOwokbGFuZ1snbGFiZWxfb25zdG9jayddID0gJ09uIHN0b2NrJzsKJGxhbmdbJ2xhYmVsX3ByaWNlc19pbmNsX3ZhdCddID0gJ1ByaWNlcyBhcmUgaW5jbHVzaXZlIFZBVCc7CiRsYW5nWydsYWJlbF9wcm9kZGV0YWlsX3RlbXBsYXRlJ10gPSAnUHJvZHVjdCBkZXRhaWwnOwokbGFuZ1snbGFiZWxfcHJvZGZlYXRfdGVtcGxhdGUnXSA9ICdGZWF0dXJlZCBwcm9kdWN0cyc7CiRsYW5nWydsYWJlbF9wcm9kdWN0J10gPSAnUHJvZHVjdCc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X2FjdGl2ZSddID0gJ1Byb2R1Y3QgaXMgYWN0aXZlPyc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X2NhdGVnb3J5J10gPSAnUHJvZHVjdHMgZm9yJzsKJGxhbmdbJ2xhYmVsX3Byb2R1Y3RfY2F0ZWdvcnlfaWQnXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snbGFiZWxfcHJvZHVjdF9mZWF0dXJlZCddID0gJ0ZlYXR1cmUgdGhpcyBwcm9kdWN0JzsKJGxhbmdbJ2xhYmVsX3Byb2R1Y3RfaWQnXSA9ICdJRCc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snbGFiZWxfcHJvZHVjdF9pdGVtbnVtYmVyJ10gPSAnSXRlbSBudW1iZXInOwokbGFuZ1snbGFiZWxfcHJvZHVjdF9tYXhhdHRyaWJ1dGVzJ10gPSAnUXVhbnRpdHknOwokbGFuZ1snbGFiZWxfcHJvZHVjdF9uYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X25ldHdlaWdodCddID0gJ05ldHQgV2VpZ2h0JzsKJGxhbmdbJ2xhYmVsX3Byb2R1Y3RfcG9zaXRpb24nXSA9ICdMaXN0IE9yZGVyJzsKJGxhbmdbJ2xhYmVsX3Byb2R1Y3RfcHJpY2UnXSA9ICdQcmljZSc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X3NrdSddID0gJ1N0b2NrIEtlZXBpbmcgVW5pdCAoU0tVKSc7CiRsYW5nWydsYWJlbF9wcm9kdWN0X3ZhdGNvZGUnXSA9ICdWQVQnOwokbGFuZ1snbGFiZWxfcHJvZHVjdHBhZ2VsaW1pdCddID0gJ051bWJlciBvZiBwcm9kdWN0cyBwZXIgcGFnZSc7CiRsYW5nWydsYWJlbF9xdWFudGl0eV9vbnN0b2NrJ10gPSAnUXVhbnRpdHkgb24gc3RvY2snOwokbGFuZ1snbGFiZWxfc2FsZXNpbnZlbnR0aW1pbmcnXSA9ICdXaGVuIHNob3VsZCBpbnZlbnRvcnkgYmUgZGVjcmVhc2VkJzsKJGxhbmdbJ2xhYmVsX3Nob3BfbmFtZSddID0gJ1Nob3AgTmFtZSc7CiRsYW5nWydsYWJlbF9zaG9wX29ubGluZSddID0gJ1Nob3AgT25saW5lJzsKJGxhbmdbJ2xhYmVsX3Nob3BfcGhvbmUnXSA9ICdTaG9wIEVtZXJnZW5jeSBQaG9uZSc7CiRsYW5nWydsYWJlbF9za3VfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydsYWJlbF9za3VfbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbGFiZWxfdGFiX2F0dHJpYnV0ZXMnXSA9ICdBdHRyaWJ1dGVzJzsKJGxhbmdbJ2xhYmVsX3RhYl9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllcyBhbmQgUHJvZHVjdHMnOwokbGFuZ1snbGFiZWxfdGFiX2ltYWdlcyddID0gJ0ltYWdlcyc7CiRsYW5nWydsYWJlbF90YWJfb3B0aW9ucyddID0gJ09wdGlvbnMnOwokbGFuZ1snbGFiZWxfdGFiX3Byb2R1Y3QnXSA9ICdQcm9kdWN0IERldGFpbHMnOwokbGFuZ1snbGFiZWxfdGFiX3Byb2R1Y3RfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snbGFiZWxfdGFiX3NrdXMnXSA9ICdTS1VcJ3MnOwokbGFuZ1snbGFiZWxfdGFiX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGVzJzsKJGxhbmdbJ2xhYmVsX3RhYl90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1snbGFiZWxfdGhvdXNhbmRzZXBhcmF0b3JwcmljZSddID0gJ1Rob3VzYW5kcyBzZXBhcmF0b3InOwokbGFuZ1snbGFiZWxfdGhvdXNhbmRzZXBhcmF0b3J3ZWlnaHQnXSA9ICdUaG91c2FuZHMgc2VwYXJhdG9yJzsKJGxhbmdbJ2xhYmVsX3RuaGVpZ2h0X3Byb2R1Y3QnXSA9ICdQcm9kdWN0IHRodW1ibmFpbCBoZWlnaHQnOwokbGFuZ1snbGFiZWxfdG53aWR0aF9wcm9kdWN0J10gPSAnV2lkdGgnOwokbGFuZ1snbGFiZWxfd2VpZ2h0X3VuaXRfbWVhc3VyZSddID0gJ1Byb2R1Y3Qgd2VpZ2h0IGluJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbWVzc2FnZV9hcmV5b3VzdXJlYXR0cmlidXRlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBhdHRyaWJ1dGU6ICVzPyc7CiRsYW5nWydtZXNzYWdlX2FyZXlvdXN1cmVjYXRlZ29yeSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgY2F0ZWdvcnk6ICVzPyc7CiRsYW5nWydtZXNzYWdlX2FyZXlvdXN1cmVpbWFnZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgaW1hZ2U6ICVzPyc7CiRsYW5nWydtZXNzYWdlX2FyZXlvdXN1cmVwcm9kY2F0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2Nvbm5lY3QgdGhpcyBwcm9kdWN0OiAlcyBmcm9tIGNhdGVnb3J5ICVzPyc7CiRsYW5nWydtZXNzYWdlX2FyZXlvdXN1cmVwcm9kdWN0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBwcm9kdWN0OiAlcz8nOwokbGFuZ1snbWVzc2FnZV9hcmV5b3VzdXJlc2t1J10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBTS1U6ICVzPyc7CiRsYW5nWydtZXNzYWdlX2F0dHJpYnV0ZWFkZGVkJ10gPSAnQXR0cmlidXRlOiAlcyBoYXMgYmVlbiBhZGRlZCc7CiRsYW5nWydtZXNzYWdlX2F0dHJpYnV0ZWRlbGV0ZWQnXSA9ICdBdHRyaWJ1dGU6ICVzIGhhcyBiZWVuIGRlbGV0ZWQnOwokbGFuZ1snbWVzc2FnZV9kb3VibGVpdGVtbnVtYmVyZm91bmQnXSA9ICdEb3VibGUgaXRlbSBudW1iZXIgZm91bmQsIHNlZSBwcm9kdWN0IFwnJXNcJyc7CiRsYW5nWydtZXNzYWdlX2ltYWdlYWRkZWQnXSA9ICdJbWFnZTogJXMgaGFzIGJlZW4gYWRkZWQnOwokbGFuZ1snbWVzc2FnZV9pbWFnZWRlbGV0ZWQnXSA9ICdJbWFnZTogJXMgaGFzIGJlZW4gZGVsZXRlZCc7CiRsYW5nWydtZXNzYWdlX25vYXR0cmlidXRlbmFtZWdpdmVuJ10gPSAnTm8gYXR0cmlidXRlIG5hbWUgZ2l2ZW4sIHdoaWxlIHRoaXMgaXMgbWFuZGF0b3J5JzsKJGxhbmdbJ21lc3NhZ2Vfbm9hdHRyaWJ1dGV0b3NhdmUnXSA9ICdObyBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gdG8gc2F2ZS4gTm8gYXR0cmlidXRlIGFkZGVkJzsKJGxhbmdbJ21lc3NhZ2Vfbm9pbWFnZXRvdXBsb2FkJ10gPSAnTm8gaW1hZ2UgdG8gdXBsb2FkLiBObyBpbWFnZSBhZGRlZCc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9fYXR0cmlidXRlc19hdmFpbGFibGUnXSA9ICdObyBhdHRyaWJ1dGVzIGF2YWlsYWJsZSc7CiRsYW5nWydub19mb2xkZXJfYXZhaWxhYmxlJ10gPSAnRm9sZGVyICVzIHRvIGhvbGQgaW1hZ2VzIG5vdCBhdmFpbGFibGUgKHNlY3VyaXR5IHByb2JsZW0/KSc7CiRsYW5nWydub19pbWFnZXNfYXZhaWxhYmxlJ10gPSAnTm8gaW1hZ2VzIGF2YWlsYWJsZSc7CiRsYW5nWydub2NhdGZvdW5kJ10gPSAnTm8gY2F0ZWdvcmllcyBmb3VuZCc7CiRsYW5nWydub3Byb2Rmb3VuZCddID0gJ05vIHByb2R1Y3RzIGZvdW5kJzsKJGxhbmdbJ25vcHJvZGZvdW5kZm9yc2VhcmNoJ10gPSAnTm8gcHJvZHVjdHMgZm91bmQgd2l0aCBnaXZlbiBzZWFyY2ggY3JpdGVyaWEnOwokbGFuZ1sncGllY2UnXSA9ICdQaWVjZSc7CiRsYW5nWydvcHRpb25zdXBkYXRlZCddID0gJ09wdGlvbnMgaGF2ZSBiZWVuIHVwZGF0ZWQnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3ByaWNlc2luY3VyZXh2YXQnXSA9ICdBbGwgcHJpY2VzIGluICVzLCBleGNsdWRpbmcgVEFYL1ZBVCc7CiRsYW5nWydwcmljZXNpbmN1cmludmF0J10gPSAnQWxsIHByaWNlcyBpbiAlcywgaW5jbHVkaW5nIFRBWC9WQVQnOwokbGFuZ1sncHJpbnQnXSA9ICdQcmludCB0aGlzIHBhZ2UnOwokbGFuZ1sncHJpbnRfcGFnZSddID0gJ1ByaW50JzsKJGxhbmdbJ3Byb2R1Y3Rzb2xkb3V0J10gPSAnU29sZCBvdXQnOwokbGFuZ1sncHJvZHVjdHNudW1iZXInXSA9ICdQcm9kdWN0cyBudW1iZXInOwokbGFuZ1sncHJvZHVjdGFkZGVkJ10gPSAnUHJvZHVjdCBoYXMgYmVlbiBhZGRlZCc7CiRsYW5nWydwcm9kdWN0ZGVsZXRlZCddID0gJ1Byb2R1Y3QgaGFzIGJlZW4gZGVsZXRlZCc7CiRsYW5nWydwcm9kdWN0ZWRpdGVkJ10gPSAnUHJvZHVjdCBoYXMgYmVlbiBlZGl0ZWQnOwokbGFuZ1sncHJvZHVjdHNyZWluZGV4ZWQnXSA9ICdQcm9kdWN0cyBoYXZlIGJlZW4gcmVpbmRleGVkIGZvciB0aGUgU2VhcmNoIG1vZHVsZSc7CiRsYW5nWydwcm9kdWN0dGh1bWJuYWlsc3JlYnVpbGQnXSA9ICdUaHVtYm5haWxzIG9mIHByb2R1Y3RzIGhhdmUgYmVlbiByZWJ1aWxkJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ29mJzsKJGxhbmdbJ3Byb21wdF9wYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwcm9wZXJ0aWVzX3VwZGF0ZWQnXSA9ICdQcm9wZXJ0aWVzIGhhdmUgYmVlbiB1cGRhdGVkJzsKJGxhbmdbJ3JlYnVpbGRwcm9kdWN0dGh1bWJuYWlscyddID0gJ1JlYnVpbGQnOwokbGFuZ1sncmV0dXJuJ10gPSAnUmV0dXJuJzsKJGxhbmdbJ3NhbGVzaW52ZW50dGltaW5nX2NuZiddID0gJ1N0YXR1cyBjaGFuZ2VzIHRvIGNvbmZpcm1lZCc7CiRsYW5nWydzYWxlc2ludmVudHRpbWluZ19pbnQnXSA9ICdTdGF0dXMgY2hhbmdlcyB0byBjb25maXJtZWQnOwokbGFuZ1snc2FsZXNpbnZlbnR0aW1pbmdfaW52J10gPSAnSW52b2ljZSBpcyBzZW5kJzsKJGxhbmdbJ3NhbGVzaW52ZW50dGltaW5nX3BheSddID0gJ1N0YXR1cyBjaGFuZ2VzIHRvIHBhaWQnOwokbGFuZ1snc2FsZXNpbnZlbnR0aW1pbmdfc2hwJ10gPSAnU3RhdHVzIGNoYW5nZXMgdG8gc2hpcHBlZCc7CiRsYW5nWydzZWFyY2hpdGVtJ10gPSAnU2VhcmNoJzsKJGxhbmdbJ3NlYXJjaHJlaW5kZXgnXSA9ICdSZWluZGV4IGZvciBTZWFyY2gnOwokbGFuZ1snU2hvcE1TX01haW50YWluQ2F0ZWdvcnknXSA9ICdTaW1wbGUgU2hvcDogTWFpbnRhaW4gQ2F0ZWdvcmllcyc7CiRsYW5nWydTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cyddID0gJ1NpbXBsZSBTaG9wOiBNYWludGFpbiBQcm9kdWN0cyc7CiRsYW5nWydTaG9wTVNfTWFpbnRhaW5TS1VzJ10gPSAnU2ltcGxlIFNob3A6IE1haW50YWluIFN0b2NrIEtlZXBpbmcgVW5pdHMnOwokbGFuZ1snU2hvcE1TX1VzZVNpbXBsZVNob3AnXSA9ICdTaW1wbGUgU2hvcDogQWxsIHBlcm1pc3Npb25zJzsKJGxhbmdbJ3NrdWRlbGV0ZWQnXSA9ICdTdG9jayBrZWVwaW5nIHVuaXQgJXMgZGVsZXRlZCc7CiRsYW5nWydza3VpbnVzZSddID0gJ0NhblwndCBkZWxldGUsIHN0b2NrIGtlZXBpbmcgdW5pdCBpcywgYXQgbGVhc3QsIGluIHVzZSBpbiBwcm9kdWN0JzsKJGxhbmdbJ3NrdWFkZGVkJ10gPSAnU0tVIGhhcyBiZWVuIGFkZGVkJzsKJGxhbmdbJ3NrdXVwZGF0ZWQnXSA9ICdTS1UgaGFzIGJlZW4gdXBkYXRlZCc7CiRsYW5nWydza3VlcnJvciddID0gJ1NlcmlvdXMgZXJyb3IgZm91bmQgaW4gY2xhc3MgU01TUHJvZHVjdHMgZnVuY3Rpb24gRGVsZXRlU0tVOiBub3RpZnkgYWRtaW5pc3RyYXRvcic7CiRsYW5nWyd0ZW1wbGF0ZXN1cGRhdGVkJ10gPSAnVGVtcGxhdGVzIGhhdmUgYmVlbiB1cGRhdGVkJzsKJGxhbmdbJ3RleHRfYWN0aXZlJ10gPSAnU2V0IEFjdGl2ZSc7CiRsYW5nWyd0ZXh0X2FkZCddID0gJ0FkZCc7CiRsYW5nWyd0ZXh0X2NhbGN1bGF0aW9uJ10gPSAnVXNlIGNhbGN1bGF0aW9uJzsKJGxhbmdbJ3RleHRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWyd0ZXh0X2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWyd0ZXh0X2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ3RleHRfaW5hY3RpdmUnXSA9ICdTZXQgSW5hY3RpdmUnOwokbGFuZ1sndGV4dF9ub2NhbGN1bGF0aW9uJ10gPSAnSnVzdCBzaG93IHRoZSBhdHRyaWJ1dGVzIG5hbWUnOwokbGFuZ1sndGV4dF9wcm9kdWN0J10gPSAnUHJvZHVjdCc7CiRsYW5nWyd0ZXh0X3NrdSddID0gJ1N0b2NrIEtlZXBpbmcgVW5pdCc7CiRsYW5nWyd0ZXh0bW9yZSddID0gJyAuLi4nOwokbGFuZ1sndGV4dHByb2R1Y3Rjb3VudCddID0gJ1RvdGFsICVzIHByb2R1Y3QocykgZm91bmQ6JzsKJGxhbmdbJ3RpdGxlX2hpZGUnXSA9ICdIaWRlJzsKJGxhbmdbJ3RpdGxlX3Nob3cnXSA9ICdTaG93JzsKJGxhbmdbJ3RpdGxlX3F1aWNrX3NlbGVjdG9yJ10gPSAnUXVpY2sgc2VsZWN0b3InOwokbGFuZ1sndG9vbHRpcF9tYXhhdHRyaWJ1dGVzJ10gPSAnVGhpcyBmaWVsZCBhbGxvd3MgeW91IHRvIGhhdmUgdGhlIHZpc2l0b3IgdG8gc2VsZWN0IHVwIHRvIGdpdmVuIG51bWJlciBvZiBhdHRyaWJ1dGVzLgpCbGFuayBvciB6ZXJvIG1lYW5zIG5vIGxpbWl0Lic7CiRsYW5nWyd0b29sdGlwX3F1YW50aXR5X29uc3RvY2snXSA9ICdFbnRlciBoZXJlIHRoZSBxdWFudGl0eSBvZiBzdG9jayB0aGF0IHlvdSBoYXZlLic7CiRsYW5nWyd1bmtub3duX2Rpc3BsYXknXSA9ICdQYXJhbWV0ZXIgXCdkaXNwbGF5XCcgbm90IGRlZmluZWQgaW4gYWN0aW9uLmRlZmF1bHQucGhwJzsKJGxhbmdbJ3ZhcmlvdXNjYXRlZ29yaWVzJ10gPSAnT25lIG9yIG1vcmUgY2F0ZWdvcmllcyc7CgovLyBBZG1pbgokbGFuZ1snaGVscGNhdGVnb3J5X2lkJ10gPSAnVGhlIGNhdGVnb3J5IGlkLiBJZiBsZWZ0IGJsYW5rLCB0aGUgcHJvZHVjdHMgZnJvbSB0aGUgcm9vdCBjYXRlZ29yeSB3aWxsIGJlIHNob3duLic7CiRsYW5nWydoZWxwY2F0bmFtZSddID0gJ05hbWUgb2YgY2F0ZWdvcnkuIE11c3QgZXhhY3RseSBtYXRjaC4gSWYgbGVmdCBibGFuaywgdGhlIHByb2R1Y3RzIGZyb20gdGhlIHJvb3QgY2F0ZWdvcnkgd2lsbCBiZSBzaG93bi4KVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGlmIHRoZSBwYXJhbWV0ZXIgZGlzcGxheSBjb250YWlucyBwcm9kdWN0bGlzdCAoc2VlIGV4YW1wbGUpLic7CiRsYW5nWydoZWxwZGV0YWlscGFnZSddID0gJ1RoZSBhbGlhcyBvZiB0aGUgcGFnZSB0byB1c2Ugd2hlbiBkZXRhaWwgaXMgcmVxdWVzdGVkLic7CiRsYW5nWydoZWxwZGlzcGxheSddID0gJ1NwZWNpZmllcyB0aGUgdHlwZSBvZiBkaXNwbGF5IHlvdSB3YW50IHRvIHNob3cuIFRoZXJlIGFyZSBjdXJyZW50bHkgdHdvIGF2YWlsYWJsZTo8dWw+Cgk8bGk+Y2F0ZWdvcnlsaXN0IChkZWZhdWx0KSAtIHNob3dzIGEgbGlzdCBvZiB0aGUgY2F0ZWdvcmllcyBhbmQgdGhlIG51bWJlciBvZiBwcm9kdWN0cyB3aXRoaW4gY2F0ZWdvcnkgKG9uZSBsZXZlbCBvbmx5ISk7PC9saT4KCTxsaT5jYXRsaXN0IC0gc2hvd3MgbGlzdCBvZiBjYXRlZ29yaWVzIHdpdGggbnVtYmVyIG9mIHByb2R1Y3RzLiBVc2UgdGhpcyBpZiBtdWx0aXBsZSBsZXZlbHMgb2YgY2F0ZWdvcmllcyBhcmUgdXNlZDs8L2xpPgoJPGxpPmZlYXR1cmVkIC0gc2hvd3MgYSBsaXN0IG9mIHRoZSBwcm9kdWN0cyB0aGF0IGFyZSBtYXJrZWQgYXMgZmVhdHVyZWQ7PC9saT4KCTxsaT5wcm9kdWN0bGlzdCAtIHNob3cgcHJvZHVjdHMgZnJvbSBhIG5hbWVkIGNhdGVnb3J5OzwvbGk+Cgk8bGk+c2l0ZW1hcCAtIHVzZSBpdCBmb3IgYnVpbGRpbmcgYSBnb29nbGUgc2l0ZW1hcCBmb3IgdGhlIG1vZHVsZS4gWW91IGNhbiB1c2UgdGhlIHRhZwoJIHtjbXNfbW9kdWxlIG1vZHVsZT1cJ1NpbXBsZVNob3BcJyBkaXNwbGF5PVwnc2l0ZW1hcFwnIGRldGFpbHBhZ2U9XCdwYWdlX2FsaWFzXCd9IGZvciB0aGUgU2l0ZW1hcE1ncjs8L2xpPgo8L3VsPgo8bGk+KG9wdGlvbmFsKSBzb3J0PSJwcmljZSIgLSBGaWVsZCB0byBzb3J0IGJ5LiBPcHRpb25zIGFyZTogInByaWNlIiwgInByb2R1Y3RfaWQiLCAicG9zaXRpb24iLiAKRGVmYXVsdHMgdG8gInByb2R1Y3RfaWQiLiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zICJwcm9kdWN0bGlzdCIgb3IgImZlYXR1cmVkIi4KPC9saT4KPGxpPihvcHRpb25hbCkgc29ydF9vcmRlcj0iQVNDfERFU0MiIC0gU29ydCBwcm9kdWN0cyBpdGVtcyBpbiBhc2NlbmRpbmcgb3JkZXIgb3IgZGVzY2VuZGluZyBvcmRlci48L2xpPgonOwokbGFuZ1snaGVscHBhZ2VudW1iZXInXSA9ICdFbnRlciB0aGUgbnVtYmVyIG9mIHRoZSBwYWdlIHRoYXQgdGhlIHByb2R1Y3RzIHNob3VsZCBiZSBzaG93bi4gXCdwYWdlbnVtYmVyPTJcJyB3aWxsIHNob3cgYWxsIHByb2R1Y3RzIGFzIG9mIHBhZ2UgMi4KVGhlIHZpc2l0b3Igd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGUgcHJldmlvdXMgcGFnZSBhbmQgdGhlIG5leHQgKGlmIGFueSkuIElmIHRoZSBwYWdlbnVtYmVyIGlzIG5vdCBwYXNzZWQsIHBhZ2UgMSB3aWxsIGJlIHNob3duLiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zICJwcm9kdWN0bGlzdCIgb3IgImZlYXR1cmVkIi4nOwokbGFuZ1snaGVscHBhcmVudGNhdGVnb3J5J10gPSAnSW50ZXJuYWwgbnVtYmVyIG9mIGNhdGVnb3J5LiBUaGlzIHdpbGwgc2hvdyBhIGxpc3Qgb2YgYWxsIHRoZSBjYXRlZ29yaWVzIHVzaW5nIHRoZSBwcm92aWRlZCBudW1iZXIgYXMgcGFyZW50LiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zIGNhdGVnb3J5bGlzdC4KVGhlIGludGVybmFsIG51bWJlciBjYW4gYmUgZm91bmQgb24gdGhlIGxlZnQgc2lkZSBvZiBlYWNoIGNhdGVnb3J5IGluIHRoZSBhZG1pbiBwYWdlIG9mIHRoaXMgbW9kdWxlLic7CiRsYW5nWydoZWxwcHJvZHBhZ2VsaW1pdCddID0gJ1RoZSBudW1iZXIgb2YgcHJvZHVjdHMgdGhhdCBhcmUgdG8gYmUgc2hvd24gb24gb25lIHBhZ2UuIFRoaXMgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBhcyBlbnRlcmVkIGluIHRoZSBvcHRpb25zLiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zICJwcm9kdWN0bGlzdCIgb3IgImZlYXR1cmVkIi4nOwokbGFuZ1snaGVscHN0YXJ0J10gPSAnVGhlIHN0YXJ0aW5nIHZhbHVlIGZvciB0aGUgcGFnZSBvZiBwcm9kdWN0cy4gSWYgeW91IHdhbnQgdG8gc2hvdyBhbGwgcHJvZHVjdHMgc3RhcnRpbmcgYXQgdGhlIGZvdXJ0aCwgdXNlIFwnc3RhcnQ9NFwnLiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaWYgdGhlIHBhcmFtZXRlciBkaXNwbGF5IGNvbnRhaW5zICJwcm9kdWN0bGlzdCIgb3IgImZlYXR1cmVkIi4nOwoKJGxhbmdbJ2hlbHAnXSA9ICcKPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPgpBIHZpc2l0b3Igb2YgdGhlIHdlYnNpdGUgd2lsbCBzZWUgYSBsaXN0IG9mIGNhdGVnb3JpZXMuIFlvdSB3aWxsIGJlIGFibGUgdG8gc2hvdyBhIGxpc3Qgb2YgdGhlIGNhdGVnb3JpZXMgYnkgcGxhY2luZyBhIHNtYXJ0eSB0YWcgaW4gYSBwYWdlIG9yIHRlbXBsYXRlIHVzaW5nIHtTaW1wbGVTaG9wfS48YnI+ClVzaW5nIHRoZSBwYXJhbWV0ZXIgY29ubmVjdGVkIHRvIGEgY2F0ZWdvcnksIHlvdSBhcmUgYWJsZSB0byBzaG93IHByb2R1Y3RzIGxpbmtlZCB0byB0aGF0IGNhdGVnb3J5Ljxicj4KQW4gZXhhbXBsZSBpczoge1NpbXBsZVNob3AgZGlzcGxheT1cJ3Byb2R1Y3RsaXN0XCcgY2F0bmFtZT1cJ0dhcmRlbnRvb2xzXCd9LiBUaGlzIHdpbGwgc2hvdyBhbGwgcHJvZHVjdHMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHRoZQpjYXRlZ29yeSBuYW1lIFwnR2FyZGVudG9vbHNcJy4gVXNpbmcgdGhlIGRpc3BsYXk9XCdwcm9kdWN0bGlzdFwnIHdpdGhvdXQgYSBjYXRlZ29yeSBuYW1lIHdpbGwgc2hvdyB0aGUgcHJvZHVjdHMgaW4gdGhlIHJvb3QuPGJyPgpBbm90aGVyIGV4YW1wbGUgaXM6IHtTaW1wbGVTaG9wIGRpc3BsYXk9XCdjYXRlZ29yeWxpc3RcJ30uIFRoaXMgd2lsbCBzaG93IHRoZSB2YXJpb3VzIGNhdGVnb3JpZXMuIElmIG9uZSBpcyBzZWxlY3RlZCwgYWxsIHRoZSBjb25uZWN0ZWQgcHJvZHVjdHMgYXJlIHNob3duLjxicj4KSWYgeW91IGRvblwndCB3YW50IHRvIHNlZSBhbiBpbWFnZSBmb3IgYSBjYXRlZ29yeSBvbiB0aGUgZnJvbnQgZW5kLCBwbGFjZSBcJ25vX2ltYWdlLmpwZ1wnIGluIHRoZSBmaWVsZCBcJ0ltYWdlXCcuPGJyPjxicj4KV2hlbiB0aGUgU2VhcmNoIG1vZHVsZSBpcyBpbnN0YWxsZWQsIGFsbCB0aGUgd29yZHMgYXMgZW50ZXJlZCBpbiB0aGUgcHJvZHVjdCBuYW1lIGFuZCBwcm9kdWN0IGRlc2NyaXB0aW9uIHdpbGwgYmUgcGFydCBvZiB0aGUgc2VhcmNoIGluZGV4Ljxicj4KSWYgdGhlIFNlYXJjaCBtb2R1bGUgaXMgaW5zdGFsbGVkIGFmdGVyIHRoaXMgbW9kdWxlLCBvbmUgY2FuIHVzZSB0aGUgYnV0dG9uIFJlaW5kZXggZm9yIFNlYXJjaCBmcm9tIHRoZSBvcHRpb25zIHRhYiBpbiB0aGUgYmFjayBlbmQuPGJyIC8+CldoZW4geW91IHVzZSBpbnZlbnRvcnkgdHJhY2tpbmcsIHRoZSBxdWFudGl0eSBzb2xkIHdpbGwgYmUgc3VidHJhY3RlZCBmcm9tIHRoZSBxdWFudGl0eSBvbiBzdG9jayBhdCB0aGUgbW9tZW50IHRoYXQgcGF5bWVudCBoYXMgYmVlbgpyZWNlaXZlZC4gWW91IGNhbiBhc3NvY2lhdGUgdGhlIGV4YW1wbGUgc3R5bGVzaGVldCAiU2ltcGxlU2hvcCBTdHlsZSIgd2l0aCB5b3VyIGRlc2lnbiBpbiB0aGUgRGVzaWduIE1hbmFnZXIuCgo8aDM+U3VwcG9ydDwvaDM+CjxwPldoZW4geW91IGhhdmUgdXBncmFkZWQgdGhpcyBtb2R1bGUsIHBsZWFzZSByZWFkIHRoZSBBYm91dCBpbmZvcm1hdGlvbiBmb3IgaW5zdGFsbGF0aW9uL3VwZ3JhZGUgaXNzdWVzLjwvcD4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxMS48YnI+CkF1dGhvcjogRHVrZXRvd24KPC9wPgonOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.sms_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBNb2R1bGU6IFNob3AgTWFkZSBTaW1wbGUgLSAKIyBBIHByb2R1Y3QgbWFpbnRlbmFuY2UgbW9kdWxlIGZvciBDTVMgLSBDTVMgTWFkZSBTaW1wbGUKIyBDb3B5cmlnaHQgKGMpIDIwMTEgYnkgRHVrZXRvd24gCiMKIyBUaGlzIGZ1bmN0aW9uIHN1cHBvcnRzIHRoZSBhZG1pbiBwYXJ0IG9mIG1vZHVsZSBTaG9wIE1hZGUgU2ltcGxlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NtcwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIHNtc191dGlscwp7CglmdW5jdGlvbiBnZXRfcHJvZHVjdHNfc3Vic2V0KCRpdGVtbnVtYmVyID0gLTEpCgl7CgkJaWYgKCRpdGVtbnVtYmVyID09IC0xKSByZXR1cm4gZmFsc2U7CgoJCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCQkkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTaW1wbGVTaG9wJyk7CgoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzCgkJCVdIRVJFIFVQUEVSKGl0ZW1udW1iZXIpIGxpa2UgIiUnIC4gc3RydG91cHBlcigkaXRlbW51bWJlcikgLiAnJSInOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRwcm9kdWN0c3Vic2V0ID0gYXJyYXkoKTsKCQl3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZGVzY3JpcHRpb24gZG9lc24ndCBzcGFuIG11bHRpcGxlIGxpbmVzCQkJCgkJCSRxdWVyeSA9ICJTRUxFQ1QgYGltYWdlYCBGUk9NIGAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXNgIFdIRVJFIGBwcm9kdWN0X2lkYCA9ICIgLgoJCQkJJHJvd1sncHJvZHVjdF9pZCddIC4gIiBMSU1JVCAxIjsKCQkJJHJvd1snaW1hZ2UnXSA9ICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfdXJsJ10gLiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcpIC4gJ3RuXycgLiAkZGItPkdldE9uZSgkcXVlcnkpOwoKCQkJJHByb2R1Y3RzdWJzZXRbXSA9ICRyb3c7CgkJfQoKCQkkcXVlcnkgPSAnU0VMRUNUIGBwcm9kdWN0X2lkYCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMKCQkJV0hFUkUgVVBQRVIoaXRlbW51bWJlcikgbGlrZSAiJScgLiBzdHJ0b3VwcGVyKCRpdGVtbnVtYmVyKSAuICclIic7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJCXdoaWxlICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgoJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMKCQkJV0hFUkUgYHByb2R1Y3RfaWRgID0gJyAuICRyb3dbJ3Byb2R1Y3RfaWQnXTsKCQkJJGRicmVzdWx0MiA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCQkJd2hpbGUgKCRyb3cgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpKSB7CgkJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZGVzY3JpcHRpb24gZG9lc24ndCBzcGFuIG11bHRpcGxlIGxpbmVzCQkJCgkJCQkkcXVlcnkgPSAiU0VMRUNUIGBpbWFnZWAgRlJPTSBgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfaW1hZ2VzYCBXSEVSRSBgcHJvZHVjdF9pZGAgPSAiIC4KCQkJCQkkcm93Wydwcm9kdWN0X2lkJ10gLiAiIExJTUlUIDEiOwoJCQkJJHJvd1snaW1hZ2UnXSA9ICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfdXJsJ10gLiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXBhdGhfcHJvZHVjdCcpIC4gJ3RuXycgLiAkZGItPkdldE9uZSgkcXVlcnkpOwoKCQkJCSRwcm9kdWN0c3Vic2V0W10gPSAkcm93OwoJCQl9CgkJfQoKCQlyZXR1cm4gJHByb2R1Y3RzdWJzZXQ7Cgl9Cn0K]]></data>
	</file>
	<file>
	  <filename>/library/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/library/categories.api.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgQ2F0ZWdvcmllcwp7CgoJdmFyICRtb2R1bGU7Cgl2YXIgJHRhYm9wdGFycmF5OwoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBDYXRlZ29yaWVzKCkKCSAgIFRoaXMgZnVuY3Rpb24gZGVmaW5lcyB0aGUgY2xhc3MgQ2F0ZWdvcmllcwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQ2F0ZWdvcmllcygmJG1vZHVsZSkKCXsKCQkkdGhpcy0+bW9kdWxlID0gJG1vZHVsZTsKCQkkdGhpcy0+dGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkU9TXlJU0FNJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldCgpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyBjYXRlZ29yeSBpbmZvcm1hdGlvbiBiYXNlZCB1cG9uIHBhc3NlZCBjYXRlZ29yeSBpZAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0KCRjYXRlZ29yeV9pZCkKCXsKCQkvLyBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBvbiB0aGUgY2F0ZWdvcnkgYnkgaWQKCQkkZGIgPSAmJHRoaXMtPm1vZHVsZS0+R2V0RGIoKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJJHNxbCA9ICJTRUxFQ1QgY2F0ZWdvcnlfaWQsCgkJICAgICAgICAgICAgICAgcGFyZW50X2lkLAoJCSAgICAgICAgICAgICAgIG5hbWUsCgkJICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCgkJICAgICAgICAgICAgICAgaW1hZ2UsCgkJICAgICAgICAgICAgICAgYWN0aXZlLAoJCSAgICAgICAgICAgICAgIHBvc2l0aW9uCgkJICAgICAgICBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19jYXRlZ29yaWVzCgkJICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZD0/IjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGNhdGVnb3J5X2lkKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRDYXRCeU5hbWUoKQoJICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIGNhdGVnb3JpZXMgdGhhdCBoYXZlIGEgcGFzc2VkIG5hbWUuIFRoZSBmaXJzdCByZXRyaWV2ZWQgd2lsbCBiZSByZXR1cm5lZAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0Q2F0QnlOYW1lKCRjYXRlZ29yeV9uYW1lKQoJewoJCS8vIFJldHJpZXZlIGluZm9ybWF0aW9uIG9uIHRoZSBjYXRlZ29yeSBieSBjYXRlZ29yeSBuYW1lCgkJJGRiID0gJiR0aGlzLT5tb2R1bGUtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRzcWwgPSAiU0VMRUNUICoKCQkgICAgICAgIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX2NhdGVnb3JpZXMKCQkgICAgICAgIFdIRVJFIG5hbWU9PyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRjYXRlZ29yeV9uYW1lKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRMaXN0KCkKCSAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gYXJyYXkgZmlsbGVkIHdpdGggY2F0ZWdvcmllcyB0aGF0IGJlbG9uZyB0byB0aGUgcGFzc2VkIHBhcmVudCBpZC4KCSAgIFJvb3QgaWQgaXMgdGFrZW4gaWYgbm8gcGFyZW50IGlkIHBhc3NlZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldExpc3QoJHBhcmVudF9pZCA9IDApCgl7CgkJJGRiID0gJiR0aGlzLT5tb2R1bGUtPkdldERiKCk7CgoJCSRzcWwgPSAiU0VMRUNUIGNhdGVnb3J5X2lkLAoJCSAgICAgICAgICAgICAgIHBhcmVudF9pZCwKCQkgICAgICAgICAgICAgICBuYW1lLAoJCSAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLAoJCSAgICAgICAgICAgICAgIGltYWdlLAoJCSAgICAgICAgICAgICAgIGFjdGl2ZSwKCQkgICAgICAgICAgICAgICBwb3NpdGlvbgoJCSAgICAgICAgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfY2F0ZWdvcmllcwoJCSAgICAgICAgV0hFUkUgcGFyZW50X2lkPT8gT1JERVIgQlkgcG9zaXRpb24iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyZW50X2lkKSk7CgoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJJHJlc3VsdCA9IGFycmF5KCk7CgkJd2hpbGUgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJLy8gTWFrZSBzdXJlIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3Qgc3BhbiBtdWx0aXBsZSBsaW5lcwoJCQkkcm93WydkZXNjcmlwdGlvbiddID0gc3RyaXBfdGFncygkcm93WydkZXNjcmlwdGlvbiddKTsKCQkJJHJlc3VsdFtdID0gJHJvdzsKCQl9CgoJCXJldHVybiAkcmVzdWx0OwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBFbmFibGVDYXRlZ29yeSgpCgkgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2F2ZSBhIHJvdyB3aXRoIHBhc3NlZCBjYXRlZ29yeSBpbmZvcm1hdGlvbgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQ3JlYXRlKCYkY2F0ZWdvcnkpCgl7CgkJJGRiID0gJiR0aGlzLT5tb2R1bGUtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCWlmICghaXNfbnVtZXJpYygkY2F0ZWdvcnlbJ3Bvc2l0aW9uJ10pKSAkY2F0ZWdvcnlbJ3Bvc2l0aW9uJ10gPSAwOwoJCSRzcWwgPSAiSU5TRVJUIElOVE8gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX2NhdGVnb3JpZXMocGFyZW50X2lkLAoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLAoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbikKCQkgICAgICAgIFZBTFVFUyg/LD8sPyw/LD8sPykiOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgKCQkJJGNhdGVnb3J5WydwYXJlbnRfaWQnXSwKCQkJdHJpbSgkY2F0ZWdvcnlbJ25hbWUnXSksCgkJCSRjYXRlZ29yeVsnZGVzY3JpcHRpb24nXSwKCQkJJGNhdGVnb3J5WydpbWFnZSddLAoJCQkkY2F0ZWdvcnlbJ2FjdGl2ZSddLAoJCQl0cmltKCRjYXRlZ29yeVsncG9zaXRpb24nXSkKCQkpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVcGRhdGUoKQoJICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVzZSB0aGUgcGFzc2VkIGNhdGVnb3J5IGluZm9ybWF0aW9uIGFuZCBzYXZlIHRoZSB2YWx1ZXMgZm9yIHRoZSBwYXNzZWQgY2F0ZWdvcnkgaWQKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFVwZGF0ZSgmJGNhdGVnb3J5KQoJewoKCQkkZGIgPSAmJHRoaXMtPm1vZHVsZS0+R2V0RGIoKTsKCQkkc3FsID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfY2F0ZWdvcmllcwoJCSAgICAgICAgU0VUIHBhcmVudF9pZD0/LAoJCSAgICAgICAgICAgIG5hbWU9PywKCQkgICAgICAgICAgICBkZXNjcmlwdGlvbj0/LAoJCSAgICAgICAgICAgIGltYWdlPT8sCgkJICAgICAgICAgICAgYWN0aXZlPT8sCgkJICAgICAgICAgICAgcG9zaXRpb249PwoJCSAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQ9PyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KAoJCQkkY2F0ZWdvcnlbJ3BhcmVudF9pZCddLAoJCQl0cmltKCRjYXRlZ29yeVsnbmFtZSddKSwKCQkJJGNhdGVnb3J5WydjZGVzY3JpcHRpb24nXSwKCQkJJGNhdGVnb3J5WydpbWFnZSddLAoJCQkkY2F0ZWdvcnlbJ2FjdGl2ZSddLAoJCQl0cmltKCRjYXRlZ29yeVsncG9zaXRpb24nXSksCgkJCSRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXQoJCSkpOwoKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBEZWxldGUoKQoJICAgVGhpcyBmdW5jdGlvbiByZXNldCBjaGlsZCBjYXRlZ29yaWVzIHRvIHRoZSByb290IGFzIHBhcmVudC4gTmV4dCB0aGUgY2F0ZWdvcnkgaXMgZGVsZXRlZAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gRGVsZXRlKCYkY2F0ZWdvcnkpCgl7CgkJJGRiID0gJiR0aGlzLT5tb2R1bGUtPkdldERiKCk7CgkJLy8gRmlyc3QgcmVzZXQgYWxsIGNvbm5lY3RlZCBwcm9kdWN0cyB0byByb290IG90aGVyd2lzZSB0aGV5IGFyZSBsb3N0IGluICdzcGFjZScKCQkkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeSBTRVQgY2F0ZWdvcnlfaWQ9IDAgV0hFUkUgY2F0ZWdvcnlfaWQ9Pyc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KDApKTsKCQkvLyBOb3cgdGhhdCB0aGUgY2F0ZWdvcnkgaGFzIG5vIGNvbm5lY3Rpb25zIGFueW1vcmUgaXQgY2FuIGJlIHJlbW92ZWQKCQkkc3FsID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19jYXRlZ29yaWVzCgkJICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZD0/IjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgQnVpbGRMaXN0KCkKCSAgIFRoaXMgZnVuY3Rpb24gYnVpbGQgcmVjdXJzaXZlbHkgYSBwYXRoIHRvIHRoZSBjYXRlZ29yeQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gQnVpbGRMaXN0KCRjYXRlZ29yeV9pZCA9IDAsICRjYXRlZ29yeV9saXN0ID0gJycsICRsZXZlbCA9IDApCgl7CgkJJHBhZCA9IHN0cl9wYWQoIiIsICRsZXZlbCwgIi0iLCBTVFJfUEFEX0xFRlQpOwoJCWlmICgkY2F0ZWdvcnlfbGlzdCA9PSAnJykgJGNhdGVnb3J5X2xpc3QgPSBhcnJheSgkdGhpcy0+bW9kdWxlLT5MYW5nKCdyb290JykgPT4gJzAnKTsKCQkkY2F0ZWdvcnkgPSAkdGhpcy0+R2V0KCRjYXRlZ29yeV9pZCk7CgkJaWYgKGlzc2V0KCRjYXRlZ29yeVsnbmFtZSddKSAmJiAkY2F0ZWdvcnlbJ25hbWUnXSAhPSAnJykgewoJCQkkY2F0ZWdvcnlfbGlzdFskY2F0ZWdvcnlbJ25hbWUnXV0gPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ107CgkJfQoJCWZvcmVhY2ggKCR0aGlzLT5HZXRMaXN0KCRjYXRlZ29yeV9pZCkgYXMgJGNhdGVnb3J5KSB7CgkJCSRuYW1lID0gJHBhZCAuICIgIiAuICRjYXRlZ29yeVsnbmFtZSddOwoJCQkkY2F0ZWdvcnlfbGlzdFskbmFtZV0gPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ107CgkJCSR0aGlzLT5CdWlsZExpc3QoJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddLCAkY2F0ZWdvcnlfbGlzdCwgJGxldmVsICsgMSk7CgkJfQoJCXJldHVybiAkY2F0ZWdvcnlfbGlzdDsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgQnVpbGRUb3RhbExpc3QoKQoJICAgVGhpcyBmdW5jdGlvbiBzZWxlY3RzIGFsbCB0aGUgY2F0ZWdvcmllcyBhbmQgYnVpbGQgYSBsaXN0IG9mIHRoZWlyIG5hbWVzCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBCdWlsZFRvdGFsTGlzdCgkY2F0ZWdvcnlfaWQgPSAtMSkKCXsKCQkkZGIgPSAmJHRoaXMtPm1vZHVsZS0+R2V0RGIoKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJJHNxbCA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQsIHBhcmVudF9pZCwgbmFtZSwgZGVzY3JpcHRpb24sCgkJCWltYWdlLCBhY3RpdmUsIHBvc2l0aW9uCgkJCUZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX2NhdGVnb3JpZXMKCQkJV0hFUkUgY2F0ZWdvcnlfaWQgPD4gPwoJCQlPUkRFUiBCWSBuYW1lJzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGNhdGVnb3J5X2lkKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkkY2F0ZWdvcnlfbGlzdCA9IGFycmF5KCk7CgkJJGNhdGVnb3J5X2xpc3RbJHRoaXMtPm1vZHVsZS0+TGFuZygncm9vdCcpXSA9ICcwJzsKCQl3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkY2F0ZWdvcnlfbGlzdFskcm93WyduYW1lJ11dID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKCQl9CgkJcmV0dXJuICRjYXRlZ29yeV9saXN0OwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBCdWlsZFBhdGgoKQoJICAgVGhpcyBmdW5jdGlvbiBidWlsZHMgYW4gYXJyYXkgd2l0aCBhbGwgaW5mb3JtYXRpb24gb2YgY2F0ZWdvcmllcyBpbiBhIHBhdGgKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEJ1aWxkUGF0aCgkY2F0ZWdvcnkpCgl7CgkJaWYgKCEkY2F0ZWdvcnkpIHJldHVybjsKCQkkcGF0aF9hcnJheSA9IGFycmF5KCk7CgkJJHBhdGhfYXJyYXlbXSA9ICRjYXRlZ29yeTsKCQl3aGlsZSAoJGNhdGVnb3J5WydjYXRlZ29yeV9pZCddICE9IDApIHsKCQkJJGNhdGVnb3J5ID0gJHRoaXMtPkdldCgkY2F0ZWdvcnlbJ3BhcmVudF9pZCddKTsKCQkJaWYgKCRjYXRlZ29yeSkgewoJCQkJJHBhdGhfYXJyYXlbXSA9ICRjYXRlZ29yeTsKCQkJfSBlbHNlIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCXJldHVybiBhcnJheV9yZXZlcnNlKCRwYXRoX2FycmF5KTsKCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/library/products.api.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgU01TUHJvZHVjdHMKewoKCXZhciAkbW9kdWxlOwoJdmFyICR0YWJvcHRhcnJheTsKCXZhciAkY29uZmlnOwoKCWZ1bmN0aW9uIFNNU1Byb2R1Y3RzKCRtb2R1bGUpCgl7CgkJJHRoaXMtPm1vZHVsZSA9ICRtb2R1bGU7CgkJJHRoaXMtPnRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnRU5HSU5FPU15SVNBTScpOwoJCSR0aGlzLT5jb25maWcgPSAkdGhpcy0+bW9kdWxlLT5HZXRDb25maWcoKTsKCX0KCglmdW5jdGlvbiBHZXQoJHByb2R1Y3RfaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkc3FsID0gIlNFTEVDVCBwcm9kdWN0X2lkLCBuYW1lLCBkZXNjcmlwdGlvbiwgcHJpY2UsCgkJCQlhY3RpdmUsIGZlYXR1cmVkLCBuZXR3ZWlnaHQsIHZhdGNvZGUsIHNrdSwKCQkJCWl0ZW1udW1iZXIsIHBvc2l0aW9uLCBtYXhhdHRyaWJ1dGVzCgkJICAgIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzCgkJCQlXSEVSRSBwcm9kdWN0X2lkPT8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdF9pZCkpOwoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJJHByb2R1Y3QgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgkJLyoqCgkJICogR2V0IHRoZSBjYXRlZ29yaWVzIHRoaXMgcHJvZHVjdCBiZWxvbmdzIHRvLgoJCSAqLwoJCSRwcm9kdWN0WydjYXRlZ29yaWVzJ10gPSBhcnJheSgpOwoJCWZvcmVhY2ggKCR0aGlzLT5HZXRDYXRlZ29yeU1hcCgkcHJvZHVjdF9pZCkgYXMgJGNhdGVnb3J5X21hcCkgewoJCQlpZiAoJGNhdGVnb3J5X21hcFsnY2F0ZWdvcnlfaWQnXSA9PSAwKSAkcHJvZHVjdFsnY2F0ZWdvcmllcyddW10gPSBhcnJheSgKCQkJCSdjYXRlZ29yeV9pZCcgPT4gMCwKCQkJCSdwYXJlbnRfaWQnID0+IDAsICduYW1lJyA9PiAnUm9vdCcsICdkZXNjcmlwdGlvbicgPT4gJycsICdpbWFnZScgPT4gJycsICdhY3RpdmUnID0+IDEsICdwb3NpdGlvbicgPT4gMAoJCQkpOwoJCQkkcHJvZHVjdFsnY2F0ZWdvcmllcyddW10gPSAkdGhpcy0+bW9kdWxlLT5jYXRlZ29yaWVzLT5HZXQoJGNhdGVnb3J5X21hcFsnY2F0ZWdvcnlfaWQnXSk7CgkJfQoKCQkvKioKCQkgKiBHZXQgdGhlIGltYWdlcyBmb3IgdGhlIHByb2R1Y3QuCgkJICovCgkJJHNxbCA9ICJTRUxFQ1QgcHJvZHVjdF9pbWFnZXNfaWQsIHByb2R1Y3RfaWQsIGltYWdlLCBkZXNjcmlwdGlvbgoJCSAgICAgICAgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXMKCQkgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQ9PyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRwcm9kdWN0X2lkKSk7CgoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkcHJvZHVjdFsnaW1hZ2VzJ11bXSA9ICRyb3c7CgkJfQoJCS8qKgoJCSAqIEdldCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgcHJvZHVjdC4KCQkgKi8KCQkkc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcwoJCQlXSEVSRSBwcm9kdWN0X2lkPT8nOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdF9pZCkpOwoKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJHByb2R1Y3RbJ2F0dHJpYnV0ZXMnXVtdID0gJHJvdzsKCQl9CgoJCXJldHVybiAkcHJvZHVjdDsKCX0KCglmdW5jdGlvbiBHZXRMaXN0KCRjYXRlZ29yeV9pZCA9IDApCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkc3FsID0gIlNFTEVDVCAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMucHJvZHVjdF9pZCwKCQkgICAgICAgICAgICAgICAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMubmFtZSwKCQkgICAgICAgICAgICAgICAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMuZGVzY3JpcHRpb24sCgkJICAgICAgICAgICAgICAgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLnByaWNlLAoJCSAgICAgICAgICAgICAgICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0cy5hY3RpdmUsCgkJICAgICAgICAgICAgICAgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLmZlYXR1cmVkLAoJCSAgICAgICAgICAgICAgICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0cy5uZXR3ZWlnaHQsCgkJICAgICAgICAgICAgICAgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLnZhdGNvZGUsCgkJICAgICAgICAgICAgICAgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLnNrdSwKCQkgICAgICAgICAgICAgICAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMuaXRlbW51bWJlciwKCQkgICAgICAgICAgICAgICAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMucG9zaXRpb24sCgkJICAgICAgICAgICAgICAgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLm1heGF0dHJpYnV0ZXMKCQkJCUZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLCAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeQoJCQkJV0hFUkUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzLnByb2R1Y3RfaWQgPSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeS5wcm9kdWN0X2lkCgkJCQlBTkQgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfY2F0ZWdvcnkuY2F0ZWdvcnlfaWQgPSA/CgkJCQlPUkRFUiBCWSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdHMucG9zaXRpb24iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkY2F0ZWdvcnlfaWQpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCSRyZXN1bHQgPSBhcnJheSgpOwoJCXdoaWxlICgkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0IHNwYW4gbXVsdGlwbGUgbGluZXMKCQkJJHJvd1snZGVzY3JpcHRpb24nXSA9IHN0cmlwX3RhZ3MoJHJvd1snZGVzY3JpcHRpb24nXSk7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgYGltYWdlYCBGUk9NIGAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXNgIFdIRVJFIGBwcm9kdWN0X2lkYCA9ICIgLgoJCQkJJHJvd1sncHJvZHVjdF9pZCddIC4gIiBMSU1JVCAxIjsKCQkJaWYgKCRkYi0+R2V0T25lKCRxdWVyeSkpIHsKCQkJCSRyb3dbJ2ltYWdlJ10gPSAkdGhpcy0+Y29uZmlnWydpbWFnZV91cGxvYWRzX3VybCddIC4gJHRoaXMtPm1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX3Byb2R1Y3QnKSAuICd0bl8nIC4gJGRiLT5HZXRPbmUoJHF1ZXJ5KTsKCQkJfSBlbHNlIHsKCQkJCSRyb3dbJ2ltYWdlJ10gPSAnJzsKCQkJfQoJCQkkcmVzdWx0W10gPSAkcm93OwoJCX0KCQlyZXR1cm4gJHJlc3VsdDsKCX0KCWZ1bmN0aW9uIENyZWF0ZSgkcHJvZHVjdCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCS8vIElmIGFjY29yZGluZyB0byBwcmVmZXJlbmNlcyBvbmx5IHVwcGVyY2FzZSBjaGFyYWN0ZXJzIGluIGl0ZW0gbnVtYmVyLCB0cmFuc2Zvcm0gaXQKCQlpZiAoJHRoaXMtPm1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbWNhcGl0YWxvbmx5JywgZmFsc2UpID09IDEpIHsKCQkJJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSA9IHN0cnRvdXBwZXIoJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSk7CgkJfQoJCSRzcWwgPSAnSU5TRVJUIElOVE8gYCcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0c2AgKGBuYW1lYCwgYGRlc2NyaXB0aW9uYCwKCQkJYHByaWNlYCwgYGFjdGl2ZWAsIGBmZWF0dXJlZGAsIGBuZXR3ZWlnaHRgLCBgdmF0Y29kZWAsIGBza3VgLCBgaXRlbW51bWJlcmAsIGBwb3NpdGlvbmAsCgkJCWBtYXhhdHRyaWJ1dGVzYCkKCQkJVkFMVUVTKD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoCgoJCQl0cmltKCRwcm9kdWN0WyduYW1lJ10pLAoJCQl0cmltKCRwcm9kdWN0WydkZXNjcmlwdGlvbiddKSwKCQkJKGZsb2F0KSB0cmltKCRwcm9kdWN0WydwcmljZSddKSwKCQkJKGludCkgJHByb2R1Y3RbJ2FjdGl2ZSddLAoJCQkoaW50KSAkcHJvZHVjdFsnZmVhdHVyZWQnXSwKCQkJKGZsb2F0KSB0cmltKCRwcm9kdWN0WyduZXR3ZWlnaHQnXSksCgkJCSRwcm9kdWN0Wyd2YXRjb2RlJ10sCgkJCXRyaW0oJHByb2R1Y3RbJ3NrdSddKSwKCQkJdHJpbSgkcHJvZHVjdFsnaXRlbW51bWJlciddKSwKCQkJKGludCkgdHJpbSgkcHJvZHVjdFsncG9zaXRpb24nXSksCgkJCShpbnQpIHRyaW0oJHByb2R1Y3RbJ21heGF0dHJpYnV0ZXMnXSkKCQkpKTsKCgkJJHByb2R1Y3RbJ3Byb2R1Y3RfaWQnXSA9ICRkYi0+SW5zZXJ0X0lEKCk7CgoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCS8vIEFkZCB0byBzZWFyY2ggaW5kZXgKCQkkbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwoJCSRzZWFyY2htb2R1bGUgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTZWFyY2gnKTsKCQlpZiAoJHNlYXJjaG1vZHVsZSAhPSBGQUxTRSkgewoJCQkkdGV4dCA9ICRwcm9kdWN0WyduYW1lJ10gLiAnICcgLiAkcHJvZHVjdFsnZGVzY3JpcHRpb24nXTsKCQkJJHNlYXJjaG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPm1vZHVsZS0+R2V0TmFtZSgpLCAkcHJvZHVjdFsncHJvZHVjdF9pZCddLCAncHJvZHVjdCcsICR0ZXh0KTsKCQl9CgoJCXJldHVybiAkcHJvZHVjdFsncHJvZHVjdF9pZCddOwoJfQoJZnVuY3Rpb24gQ3JlYXRlQ2F0ZWdvcnlNYXAoJGNhdGVnb3J5X2lkLCAkcHJvZHVjdF9pZCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCS8vIERvbid0IGFsbG93IHR3aWNlIHRoZSBzYW1lIGVudHJ5LCBzaW5jZSBkZWxldGlvbiBvZiBvbmUgb2YgdGhlIGNhdGVnb3J5L3Byb2R1Y3RzIGlzIG5vdCBwb3NzaWJsZSBhbnltb3JlCgkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IFdIRVJFIGNhdGVnb3J5X2lkPT8gQU5EIHByb2R1Y3RfaWQ9PyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRjYXRlZ29yeV9pZCwgJHByb2R1Y3RfaWQpKTsKCQlpZiAoISRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkc3FsID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5KGNhdGVnb3J5X2lkLCBwcm9kdWN0X2lkKQoJCQkgICAgICAgIFZBTFVFUyg/LD8pIjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRjYXRlZ29yeV9pZCwgJHByb2R1Y3RfaWQpKTsKCQkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCWZ1bmN0aW9uIERlbGV0ZUNhdGVnb3J5TWFwKCRjYXRlZ29yeV9pZCwgJHByb2R1Y3RfaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkvLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBsYXN0IGNhdGVnb3J5IHRoYXQgaXMgY29ubmVjdGVkLgoJCS8vIElmIHRoYXQgaXMgdHJ1ZSwgcmVzZXQgY2F0ZWdvcnkgdG8gcm9vdCwgZWxzZSBwcm9kdWN0IGNhbid0IGJlIGZvdW5kIGFueW1vcmUKCQkkc3FsID0gIlNFTEVDVCBDT1VOVChjYXRlZ29yeV9pZCkgYXMgY250IEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfY2F0ZWdvcnkgV0hFUkUgcHJvZHVjdF9pZD0/IjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCQkkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCWlmICgkcm93WydjbnQnXSA9PSAxKSB7CgkJCS8vIFJlc2V0IHRvIHJvb3QKCQkJJHNxbCA9ICJVUERBVEUgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfY2F0ZWdvcnkgU0VUIGNhdGVnb3J5X2lkID0gMCBXSEVSRSBwcm9kdWN0X2lkPT8iOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCQl9IGVsc2UgewoJCQkkc3FsID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IFdIRVJFIGNhdGVnb3J5X2lkPT8gQU5EIHByb2R1Y3RfaWQ9PyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgKCQkJCSRjYXRlZ29yeV9pZCwKCQkJCSRwcm9kdWN0X2lkCgkJCSkpOwoJCQlpZiAoISRkYnJlc3VsdCkgcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRDYXRlZ29yeU1hcCgkcHJvZHVjdF9pZCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIGNhdGVnb3J5X2lkCgkJICAgICAgICBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5CgkJICAgICAgICBXSEVSRSBwcm9kdWN0X2lkPT8nOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdF9pZCkpOwoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJJHJlc3VsdCA9IGFycmF5KCk7CgkJd2hpbGUgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJHJlc3VsdFtdID0gJHJvdzsKCQl9CgoJCXJldHVybiAkcmVzdWx0OwoJfQoKCWZ1bmN0aW9uIFVwZGF0ZSgkcHJvZHVjdCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCS8vIElmIGFjY29yZGluZyB0byBwcmVmZXJlbmNlcyBvbmx5IHVwcGVyY2FzZSBjaGFyYWN0ZXJzIGluIGl0ZW0gbnVtYmVyLCB0cmFuc2Zvcm0gaXQKCQlpZiAoJHRoaXMtPm1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbWNhcGl0YWxvbmx5JywgZmFsc2UpID09IDEpIHsKCQkJJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSA9IHN0cnRvdXBwZXIoJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSk7CgkJfQoJCSRwcm9kdWN0WydwcmljZSddID0gc3RydHIoJHByb2R1Y3RbJ3ByaWNlJ10sICcsJywgJy4nKTsKCQkkcHJvZHVjdFsnbmV0d2VpZ2h0J10gPSBzdHJ0cigkcHJvZHVjdFsnbmV0d2VpZ2h0J10sICcsJywgJy4nKTsKCQkkc3FsID0gJ1VQREFURSBgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzYCBTRVQgYG5hbWVgID0gPywKCQkJYGRlc2NyaXB0aW9uYCA9ID8sIGBwcmljZWAgPSA/LAlgYWN0aXZlYCA9ID8sIGBmZWF0dXJlZGAgPSA/LCBgbmV0d2VpZ2h0YCA9ID8sCgkJCWB2YXRjb2RlYCA9ID8sIGBza3VgID0gPywgYGl0ZW1udW1iZXJgID0gPywgYHBvc2l0aW9uYCA9ID8sIGBtYXhhdHRyaWJ1dGVzYCA9ID8KCQkJV0hFUkUgYHByb2R1Y3RfaWRgID0gPyc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KAoJCQl0cmltKCRwcm9kdWN0WyduYW1lJ10pLAoJCQkkcHJvZHVjdFsncGRlc2NyaXB0aW9uJ10sCgkJCShmbG9hdCkgdHJpbSgkcHJvZHVjdFsncHJpY2UnXSksCgkJCShpbnQpICRwcm9kdWN0WydhY3RpdmUnXSwKCQkJKGludCkgJHByb2R1Y3RbJ2ZlYXR1cmVkJ10sCgkJCShmbG9hdCkgdHJpbSgkcHJvZHVjdFsnbmV0d2VpZ2h0J10pLAoJCQkkcHJvZHVjdFsndmF0Y29kZSddLAoJCQkkcHJvZHVjdFsnc2t1J10sCgkJCXRyaW0oJHByb2R1Y3RbJ2l0ZW1udW1iZXInXSksCgkJCShpbnQpIHRyaW0oJHByb2R1Y3RbJ3Bvc2l0aW9uJ10pLAoJCQkoaW50KSB0cmltKCRwcm9kdWN0WydtYXhhdHRyaWJ1dGVzJ10pLAoJCQkoaW50KSAkcHJvZHVjdFsncHJvZHVjdF9pZCddCgkJKSk7CgoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJLy8gVXBkYXRlIHNlYXJjaCBpbmRleCAoQWRkV29yZHMgZmlyc3QgZGVsZXRlcyB0aGUgb2xkIG9uZXMpCgkJJG1vZG9wcyA9IGNtc21zKCktPkdldE1vZHVsZU9wZXJhdGlvbnMoKTsKCQkkc2VhcmNobW9kdWxlID0gJG1vZG9wcy0+Z2V0X21vZHVsZV9pbnN0YW5jZSgnU2VhcmNoJyk7CgkJaWYgKCRzZWFyY2htb2R1bGUgIT0gRkFMU0UpIHsKCQkJaWYgKCRwcm9kdWN0WydhY3RpdmUnXSA9PSAwKSB7CgkJCQkkc2VhcmNobW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+bW9kdWxlLT5HZXROYW1lKCksICRwcm9kdWN0Wydwcm9kdWN0X2lkJ10pOwoJCQl9IGVsc2UgewoJCQkJJHRleHQgPSAkcHJvZHVjdFsnbmFtZSddIC4gJyAnIC4gJHByb2R1Y3RbJ3BkZXNjcmlwdGlvbiddOwoJCQkJJHNlYXJjaG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPm1vZHVsZS0+R2V0TmFtZSgpLCAkcHJvZHVjdFsncHJvZHVjdF9pZCddLCAncHJvZHVjdCcsICR0ZXh0KTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRydWU7Cgl9CglmdW5jdGlvbiBEZWxldGUoJHByb2R1Y3QpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkvLyBEZWxldGUgdGhlIHVwbG9hZGVkIHBpY3R1cmUocykgZm9yIHRoaXMgcHJvZHVjdAoJCS8vIERlbGV0ZSB0aGUgcGljdHVyZShzKQoJCSRzcWwgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfaW1hZ2VzCgkJCQlXSEVSRSBwcm9kdWN0X2lkID0gPyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRwcm9kdWN0Wydwcm9kdWN0X2lkJ10pKTsKCQkvLyBEZWxldGUgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGNhdGVnb3J5CgkJJHNxbCA9ICJERUxFVEUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeQoJCQkJV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdFsncHJvZHVjdF9pZCddKSk7CgkJLy8gRGVsZXRlIHRoZSBhdHRyaWJ1dGVzIG9mIHRoaXMgcHJvZHVjdAoJCSRzcWwgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcwoJCQkJV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdFsncHJvZHVjdF9pZCddKSk7CgkJLy8gTm93IGl0IGlzIHBvc3NpYmxlIHRvIGRlbGV0ZSB0aGUgcHJvZHVjdCBpdCBzZWxmCgkJLy8gU2hvdWxkIGEgY2hlY2sgYmVlbiBkb25lIHRvIHRoZSBDYXJ0IE1hZGUgU2ltcGxlIHRhYmxlcz8gU28gZGVsZXRlIG9yZGVycz8/Pz8KCQkkc3FsID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0cwoJCQkJV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdFsncHJvZHVjdF9pZCddKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkvLyBEZWxldGUgZnJvbSBzZWFyY2ggaW5kZXgKCQkkbW9kb3BzID0gY21zbXMoKS0+R2V0TW9kdWxlT3BlcmF0aW9ucygpOwoJCSRzZWFyY2htb2R1bGUgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTZWFyY2gnKTsKCQlpZiAoJHNlYXJjaG1vZHVsZSAhPSBGQUxTRSkgewoJCQkkc2VhcmNobW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+bW9kdWxlLT5HZXROYW1lKCksICRwcm9kdWN0Wydwcm9kdWN0X2lkJ10sICdwcm9kdWN0Jyk7CgkJfQoKCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvLyBDaGVjayBpZiBpdGVtIG51bWJlciBoYXMgYmVlbiB1c2VkCgkvLyBUaGUgaW50ZXJuYWwgaWQgaXMgZWl0aGVyIHRoZSBwcm9kdWN0IG9yIHRoZSBhdHRyaWJ1dGUgaWQKCS8vIEluIGNhc2UgaXQgaXMgYSBuZXcgcHJvZHVjdCBvciBhdHRyaWN1dGUsIHRoZSBpbnRlcm5hbCBpZCBwYXNzZWQgaXMgLTEKCWZ1bmN0aW9uIENoZWNrRG91YmxlSXRlbU51bWJlcigkaXRlbW51bWJlciwgJGludGVybmFsX2lkKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJaWYgKCRpdGVtbnVtYmVyID09ICcnKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJLy8gRGVmaW5pdGlvbiBvZiBhIGRvdWJsZSBudW1iZXIgaXMgdGhhdCB0aGUgcGFzc2VkIGl0ZW0gbnVtYmVyIGRvZXNuJ3QgZXhpc3QKCQkvLyBleGVwdCB3aXRoIHRoZSBzYW1lIHByb2R1Y3QvYXR0cmlidXRlIGlkCgkJJGl0ZW1jYXBpdGFsb25seSA9ICR0aGlzLT5tb2R1bGUtPkdldFByZWZlcmVuY2UoJ2l0ZW1jYXBpdGFsb25seScsIGZhbHNlKTsKCQlpZiAoJGl0ZW1jYXBpdGFsb25seSA9PSAxKSB7CgkJCSRxdWVyeSA9ICdTRUxFQ1QgaXRlbW51bWJlciwgbmFtZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cwoJCQkJV0hFUkUgVVBQRVIoaXRlbW51bWJlcikgPSBVUFBFUig/KSBBTkQgcHJvZHVjdF9pZCA8PiA/JzsKCQl9IGVsc2UgewoJCQkkcXVlcnkgPSAnU0VMRUNUIGl0ZW1udW1iZXIsIG5hbWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMKCQkJCVdIRVJFIGl0ZW1udW1iZXIgPSA/IEFORCBwcm9kdWN0X2lkIDw+ID8nOwoJCX0KCQkkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkaXRlbW51bWJlciwgJGludGVybmFsX2lkKSk7CgkJaWYgKCEkcm93KSB7CgkJCS8vIE5vIHByb2R1Y3QgZm91bmQgd2l0aCB0aGUgc2FtZSBudW1iZXIsIGxldCdzIGNoZWNrIHRoZSBhdHRyaWJ1dGVzCgkJCWlmICgkaXRlbWNhcGl0YWxvbmx5ID09IDEpIHsKCQkJCSRxdWVyeSA9ICdTRUxFQ1QgaXRlbW51bWJlciwgbmFtZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMKCQkJCQlXSEVSRSBVUFBFUihpdGVtbnVtYmVyKSA9IFVQUEVSKD8pIEFORCBhdHRyaWJ1dGVfaWQgPD4gPyc7CgkJCX0gZWxzZSB7CgkJCQkkcXVlcnkgPSAnU0VMRUNUIGl0ZW1udW1iZXIsIG5hbWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzCgkJCQkJV0hFUkUgaXRlbW51bWJlciA9ID8gQU5EIGF0dHJpYnV0ZV9pZCA8PiA/JzsKCQkJfQoJCQkkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkaXRlbW51bWJlciwgJGludGVybmFsX2lkKSk7CgkJCWlmICghJHJvdykgewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuICRyb3dbJ25hbWUnXSAgLiAnICgnIC4gJHRoaXMtPm1vZHVsZS0+TGFuZygnbGFiZWxfYXR0cmlidXRlJykgLiAnKSc7CgkJCX0KCQl9IGVsc2UgewoJCQkvLyBQYXJ0IG9mIG1lc3NhZ2Ugc2VuZCBiYWNrLiBDYWxsaW5nIHJvdXRpbmUgd2lsbCBwcmVwYXJlIG1lc3NhZ2UgdG8gZGlzcGxheQoJCQlyZXR1cm4gJHJvd1snbmFtZSddIC4gJyAoJyAuICR0aGlzLT5tb2R1bGUtPkxhbmcoJ2xhYmVsX3Byb2R1Y3QnKSAuICcpJzsKCQl9Cgl9CgoJLy8gQXR0cmlidXRlcyByZWxhdGVkIGZ1bmN0aW9ucwoJLy8gUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBwcm9kdWN0IGF0dHJpYnV0ZQoJZnVuY3Rpb24gR2V0QXR0cmlidXRlKCRhdHRyaWJ1dGVfaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcwoJCSAgICAgICAgV0hFUkUgYXR0cmlidXRlX2lkID0gPyc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRhdHRyaWJ1dGVfaWQpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCSRyZXN1bHQgPSAnJzsKCQl3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkcmVzdWx0ID0gJHJvdzsKCQl9CgkJcmV0dXJuICRyZXN1bHQ7Cgl9CgoJLy8gU2F2ZSBuZXcgcHJvZHVjdCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24KCWZ1bmN0aW9uIENyZWF0ZUF0dHJpYnV0ZSgkYXR0cmlidXRlKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJLy8gSWYgYWNjb3JkaW5nIHRvIHByZWZlcmVuY2VzIG9ubHkgdXBwZXJjYXNlIGNoYXJhY3RlcnMgaW4gaXRlbSBudW1iZXIsIHRyYW5zZm9ybSBpdAoJCWlmICgkdGhpcy0+bW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpdGVtY2FwaXRhbG9ubHknLCBmYWxzZSkgPT0gMSkgewoJCQkkYXR0cmlidXRlWydpdGVtbnVtYmVyJ10gPSBzdHJ0b3VwcGVyKCRhdHRyaWJ1dGVbJ2l0ZW1udW1iZXInXSk7CgkJfQoJCSRzcWwgPSAnSU5TRVJUIElOVE8gYCcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXNgCgkJCShgcHJvZHVjdF9pZGAsIGBuYW1lYCwgYGRlc2NyaXB0aW9uYCwgYG1pbmFsbG93ZWRgLCBgbWF4YWxsb3dlZGAsCgkJCWBwcmljZWFkanVzdHR5cGVgLCBgcHJpY2VhZGp1c3RtZW50YCwgYGRpc3BsYXlvbmx5YCwgYGl0ZW1udW1iZXJgLCBgYWN0aXZlYCkKCQkJVkFMVUVTKD8sPyw/LD8sPyw/LD8sPyw/LD8pJzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoCgkJCShpbnQpICRhdHRyaWJ1dGVbJ3Byb2R1Y3RfaWQnXSwKCQkJdHJpbSgkYXR0cmlidXRlWyduYW1lJ10pLAoJCQl0cmltKCRhdHRyaWJ1dGVbJ2FkZXNjcmlwdGlvbiddKSwKCQkJKGludCkgdHJpbSgkYXR0cmlidXRlWydtaW5hbGxvd2VkJ10pLAoJCQkoaW50KSB0cmltKCRhdHRyaWJ1dGVbJ21heGFsbG93ZWQnXSksCgkJCSRhdHRyaWJ1dGVbJ3ByaWNlYWRqdXN0dHlwZSddLAoJCQkoZmxvYXQpIHRyaW0oJGF0dHJpYnV0ZVsncHJpY2VhZGp1c3RtZW50J10pLAoJCQkoaW50KSAkYXR0cmlidXRlWydkaXNwbGF5b25seSddLAoJCQl0cmltKCRhdHRyaWJ1dGVbJ2l0ZW1udW1iZXInXSksCgkJCShpbnQpICRhdHRyaWJ1dGVbJ2FjdGl2ZSddCgkJKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvLyBEZWxldGUgcHJvZHVjdCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24KCWZ1bmN0aW9uIERlbGV0ZUF0dHJpYnV0ZSgkcGFyYW1zKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzCgkJCVdIRVJFIGF0dHJpYnV0ZV9pZCA9ID8nOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyYW1zWydhdHRyaWJ1dGVfaWQnXSkpOwoJCWlmICghJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJLy8gU2F2ZSBjaGFuZ2VkIHByb2R1Y3QgYXR0cmlidXRlIGluZm9ybWF0aW9uCglmdW5jdGlvbiBVcGRhdGVBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCS8vIElmIGFjY29yZGluZyB0byBwcmVmZXJlbmNlcyBvbmx5IHVwcGVyY2FzZSBjaGFyYWN0ZXJzIGluIGl0ZW0gbnVtYmVyLCB0cmFuc2Zvcm0gaXQKCQlpZiAoJHRoaXMtPm1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbWNhcGl0YWxvbmx5JywgZmFsc2UpID09IDEpIHsKCQkJJGF0dHJpYnV0ZVsnaXRlbW51bWJlciddID0gc3RydG91cHBlcigkYXR0cmlidXRlWydpdGVtbnVtYmVyJ10pOwoJCX0KCQkkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzIFNFVCBuYW1lID0gPywKCQkJZGVzY3JpcHRpb24gPSA/LCBtaW5hbGxvd2VkID0gPywgbWF4YWxsb3dlZCA9ID8sIHByaWNlYWRqdXN0dHlwZSA9ID8sCgkJCXByaWNlYWRqdXN0bWVudCA9ID8sIGRpc3BsYXlvbmx5ID0gPywgaXRlbW51bWJlciA9ID8sIGFjdGl2ZSA9ID8KCQkJV0hFUkUgYXR0cmlidXRlX2lkID0gPyc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KAoJCQl0cmltKCRhdHRyaWJ1dGVbJ25hbWUnXSksCgkJCXRyaW0oJGF0dHJpYnV0ZVsnZGVzY3JpcHRpb24nXSksCgkJCShpbnQpIHRyaW0oJGF0dHJpYnV0ZVsnbWluYWxsb3dlZCddKSwKCQkJKGludCkgdHJpbSgkYXR0cmlidXRlWydtYXhhbGxvd2VkJ10pLAoJCQkkYXR0cmlidXRlWydwcmljZWFkanVzdHR5cGUnXSwKCQkJKGZsb2F0KSB0cmltKCRhdHRyaWJ1dGVbJ3ByaWNlYWRqdXN0bWVudCddKSwKCQkJKGludCkgJGF0dHJpYnV0ZVsnZGlzcGxheW9ubHknXSwKCQkJdHJpbSgkYXR0cmlidXRlWydpdGVtbnVtYmVyJ10pLAoJCQkoaW50KSAkYXR0cmlidXRlWydhY3RpdmUnXSwKCQkJKGludCkgJGF0dHJpYnV0ZVsnYXR0cmlidXRlX2lkJ10KCQkpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCS8vIEltYWdlcyByZWxhdGVkIGZ1bmN0aW9ucwoJLy8gUmV0cmlldmUgdGhlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBwcm9kdWN0IGltYWdlCglmdW5jdGlvbiBHZXRJbWFnZSgkcHJvZHVjdF9pbWFnZXNfaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkc3FsID0gIlNFTEVDVCBwcm9kdWN0X2lkLCBpbWFnZSwgZGVzY3JpcHRpb24KCQkgICAgICAgIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfaW1hZ2VzCgkJICAgICAgICBXSEVSRSBwcm9kdWN0X2ltYWdlc19pZCA9ID8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcHJvZHVjdF9pbWFnZXNfaWQpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCSRyZXN1bHQgPSAnJzsKCQl3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkcmVzdWx0ID0gJHJvdzsKCQl9CgkJcmV0dXJuICRyZXN1bHQ7Cgl9CgoJLy8gU2F2ZSBuZXcgcHJvZHVjdCBpbWFnZSBpbmZvcm1hdGlvbgoJZnVuY3Rpb24gQ3JlYXRlSW1hZ2UoJGltYWdlKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXMocHJvZHVjdF9pZCwKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLAoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24pCgkJICAgICAgICBWQUxVRVMoPyw/LD8pIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoCgkJCSRpbWFnZVsncHJvZHVjdF9pZCddLAoJCQkkaW1hZ2VbJ2ltYWdlJ10sCgkJCXRyaW0oJGltYWdlWydpZGVzY3JpcHRpb24nXSkKCQkpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQllY2hvICJGQUxTRSI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJLy8gRGVsZXRlIGltYWdlIGZyb20gZm9sZGVyIGFuZCBpdHMgcHJvZHVjdCBpbWFnZSBpbmZvcm1hdGlvbgoJZnVuY3Rpb24gRGVsZXRlSW1hZ2UoJHBhcmFtcykKCXsKCQkvLyBOb3cgZGVsZXRlIHRoZSBpbWFnZSByZWNvcmQKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRzcWwgPSAiREVMRVRFIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RfaW1hZ2VzIFdIRVJFIHByb2R1Y3RfaW1hZ2VzX2lkID0gPyAiOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcGFyYW1zWydwcm9kdWN0X2ltYWdlc19pZCddKSk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJZWNobyAiRkFMU0UiOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXJldHVybiB0cnVlOwoJfQoJLy8gU2F2ZSBjaGFuZ2VkIHByb2R1Y3QgaW1hZ2UgaW5mb3JtYXRpb24KCWZ1bmN0aW9uIFVwZGF0ZUltYWdlKCRwYXJhbXMpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkkc3FsID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXMgU0VUIGRlc2NyaXB0aW9uID0gPyBXSEVSRSBwcm9kdWN0X2ltYWdlc19pZCA9ID8gIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoCgkJCXRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSksCgkJCSRwYXJhbXNbJ3Byb2R1Y3RfaW1hZ2VzX2lkJ10KCQkpKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQllY2hvICJGQUxTRSI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJLy8gU2F2ZSBuZXcgcHJvZHVjdCBTdG9jayBLZWVwaW5nIFVuaXQgaW5mb3JtYXRpb24KCWZ1bmN0aW9uIENyZWF0ZVNLVSgkc2t1KQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9za3VzIChza3UsIGRlc2NyaXB0aW9uKQoJCSAgICAgICAgVkFMVUVTKD8sPyknOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSh0cmltKCRza3VbJ3NrdSddKSwgJHNrdVsnZGVzY3JpcHRpb24nXSkpOwoJCWlmICghJGRicmVzdWx0KSB7CgkJCWVjaG8gIkZBTFNFIjsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCgkvLyBEZWxldGUgU3RvY2sgS2VlcGluZyBVbml0IGluZm9ybWF0aW9uCglmdW5jdGlvbiBEZWxldGVTS1UoJHNrdSkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCS8vIEl0IGlzIG5vdCB2YWxpZCB0byBkZWxldGUgaWYgaW4gdXNlIHNvIGNoZWNrIHVzYWdlCgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cyBXSEVSRSBza3UgPSA/ICc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRza3UpKTsKCQkkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCWlmICghaXNzZXQoJHJvd1snbmFtZSddKSkgewoJCQkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X3NrdXMgV0hFUkUgc2t1ID0gPyAnOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHNrdSkpOwoJCQlpZiAoISRkYnJlc3VsdCkgewoJCQkJcmV0dXJuICR0aGlzLT5tb2R1bGUtPkxhbmcoJ3NrdWVycm9yJyk7CgkJCX0KCQl9IGVsc2UgewoJCQkvLyBMZXQgdXNlciBrbm93IHdoaWNoIHByb2R1Y3QgaXMgdGhlIGZpcnN0IHRoYXQgdXNlcyB0aGlzIFNLVQoJCQlyZXR1cm4gJHRoaXMtPm1vZHVsZS0+TGFuZygnc2t1aW51c2UnKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5tb2R1bGUtPkxhbmcoJ3NrdWRlbGV0ZWQnLCAkc2t1KTsKCX0KCS8vIFNhdmUgY2hhbmdlZCBTdG9jayBLZWVwaW5nIFVuaXQgaW5mb3JtYXRpb24KCWZ1bmN0aW9uIFVwZGF0ZVNLVSgkcGFyYW1zKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3Rfc2t1cyBTRVQgZGVzY3JpcHRpb24gPSA/IFdIRVJFIHNrdSA9ID8gJzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHBhcmFtc1snZGVzY3JpcHRpb24nXSwgJHBhcmFtc1snc2t1J10pKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQllY2hvICJGQUxTRSI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CglmdW5jdGlvbiBHZXRTS1UoJHNrdSkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9za3VzIFdIRVJFIHNrdSA9ID8gJzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHNrdSkpOwoJCSRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gJHJvdzsKCX0KCWZ1bmN0aW9uIEdldExpc3RTS1UoKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X3NrdXMgT1JERVIgQlkgc2t1IjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkJaWYgKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkkcmVzdWx0ID0gYXJyYXkoKTsKCQl3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkcmVzdWx0W10gPSAkcm93OwoJCX0KCQlyZXR1cm4gJHJlc3VsdDsKCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGdDbXMgPSBjbXNtcygpOwppZiAoIWlzX29iamVjdCgkZ0NtcykpIGV4aXQ7CgovKioKICogQ3JlYXRlIGFsbCB0YWJsZXMKICovCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKLyoqCiAqIENyZWF0ZSBhbGwgQ2F0ZWdvcnkgcmVsYXRlZCB0YWJsZXMKICovCi8qKgogKiBQcmltYXJ5IENhdGVnb3J5IHRhYmxlCiAqLwokZmllbGRzID0gImNhdGVnb3J5X2lkIEkgUFJJTUFSWSBBVVRPLAoJcGFyZW50X2lkIEksCgluYW1lIEMoMjU1KSwKCWRlc2NyaXB0aW9uIEMoMjU1KSwKCWltYWdlIEMoNjApLAoJYWN0aXZlIEkyLAoJcG9zaXRpb24gSTIiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfY2F0ZWdvcmllcyIsICRmaWVsZHMsICR0aGlzLT50YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8qKgogKiBDcmVhdGUgYWxsIFByb2R1Y3QgcmVsYXRlZCB0YWJsZXMKICovCi8qKgogKiBQcmltYXJ5IFByb2R1Y3QgVGFibGUKICovCiRmaWVsZHMgPSAicHJvZHVjdF9pZCBJIFBSSU1BUlkgQVVUTywKCW5hbWUgQygyNTUpLAoJZGVzY3JpcHRpb24gWCwKCXByaWNlIEYsCglhY3RpdmUgSTIsCglmZWF0dXJlZCBJMiwKCW5ldHdlaWdodCBGLAoJdmF0Y29kZSBDKDEpLAoJc2t1IEMoMjApLAoJaXRlbW51bWJlciBDKDMwKSwKCXBvc2l0aW9uIEksCgltYXhhdHRyaWJ1dGVzIEkyIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX3Byb2R1Y3RzIiwgJGZpZWxkcywgJHRoaXMtPnRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwovKioKICogUHJvZHVjdCBJbWFnZXMKICovCiRmaWVsZHMgPSAicHJvZHVjdF9pbWFnZXNfaWQgSSBQUklNQVJZIEFVVE8sCglwcm9kdWN0X2lkIEksCglpbWFnZSBDKDMwKSwKCWRlc2NyaXB0aW9uIEMoMjU1KSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2ltYWdlcyIsICRmaWVsZHMsICR0aGlzLT50YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKLyoqCiAqIFByb2R1Y3QgQXR0cmlidXRlcwogKi8KJGZpZWxkcyA9ICJhdHRyaWJ1dGVfaWQgSSBQUklNQVJZIEFVVE8sCglwcm9kdWN0X2lkIEksCgluYW1lIEMoMjU1KSwKCWRlc2NyaXB0aW9uIFgsCgltaW5hbGxvd2VkIEkyLAoJbWF4YWxsb3dlZCBJMiwKCXByaWNlYWRqdXN0dHlwZSBDKDEpLAoJcHJpY2VhZGp1c3RtZW50IEYsCglkaXNwbGF5b25seSBJMiwKCWl0ZW1udW1iZXIgQygzMCksCglhY3RpdmUgTCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMiLCAkZmllbGRzLCAkdGhpcy0+dGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Ci8qKgogKiBQcm9kdWN0IDwtPiBDYXRlZ29yeSBNYXAgVGFibGUKICovCiRmaWVsZHMgPSAiY2F0ZWdvcnlfcHJvZHVjdF9pZCBJIFBSSU1BUlkgQVVUTywKCWNhdGVnb3J5X2lkIEksCglwcm9kdWN0X2lkIEkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeSIsICRmaWVsZHMsICR0aGlzLT50YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKLyoqCiAqIFByb2R1Y3QgU3RvY2sgS2VlcGluZyBVbml0IChTS1UpCiAqLwokZmllbGRzID0gInNrdSBDKDIwKSBLRVksCglkZXNjcmlwdGlvbiBDKDEwMCkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfcHJvZHVjdF9za3VzIiwgJGZpZWxkcywgJHRoaXMtPnRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3Rfc2t1cyAoc2t1LCBkZXNjcmlwdGlvbikgVkFMVUVTKCA/LCA/KSc7CiRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnUEMnLCAnUGllY2UnKSk7CgovKioKICogQ3JlYXRlIGFsbCBwcmVmZXJlbmNlcwogKi8KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkbWluX25hbWUnLCAnPEFkbWluaXN0cmF0b3IgTmFtZT4nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3BfbmFtZScsICc8VGhlIG5hbWUgb2YgdGhlIHNob3A+Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJywgJ2VuX1VTJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcmljZXNpbmNsdmF0JywgMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd3ZWlnaHR1bml0bWVhc3VyZScsICdLZycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9jdXJyZW5jeScsICdFVVInKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3ltYm9sJywgJyZldXJvOycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX2NhdGVnb3J5JywgJy9jYXRlZ29yaWVzLycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VwYXRoX3Byb2R1Y3QnLCAnL3Byb2R1Y3RzLycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHBhZ2VsaW1pdCcsIDEwMDAwMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkaXNwbGF5cXVpY2tzZWxlY3RvcicsIHRydWUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW52ZW50b3J5dHlwZScsICdub25lJyk7Ci8qKgogKiBDcmVhdGUgYW4gZXhhbXBsZSBzdHlsZXNoZWV0IGZvciBTaG9wIE1hZGUgU2ltcGxlIHRhZ3MKICovCiR0eHQgPSBmaWxlX2dldF9jb250ZW50cyhjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAnY3NzJywgJ3N0eWxlc2hlZXQuY3NzJykpOwoKJHN0eWxlc2hlZXQgPSBuZXcgXENtc0xheW91dFN0eWxlc2hlZXQ7Ci8vIGRpcnR5IHRlc3QgdG8gY2hlY2sgaWYgYSBzdHlsZXNoZWV0IHdpdGggdGhlIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0cwp0cnkgewoJJHRlc3QgPSAkc3R5bGVzaGVldC0+bG9hZCgnU2ltcGxlU2hvcCBTdHlsZScpOwp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKCSMgaXQgZG9lc24ndCBleGlzdCBzbyBjcmVhdGUgb25lCgkkc3R5bGVzaGVldC0+c2V0X25hbWUoJ1NpbXBsZVNob3AgU3R5bGUnKTsKCSRzdHlsZXNoZWV0LT5zZXRfZGVzY3JpcHRpb24oJ0Egc2FtcGxlIHN0eWxlc2hlZXQgZm9yIHRoZSBTaG9wJyk7Cgkkc3R5bGVzaGVldC0+c2V0X2NvbnRlbnQoJHR4dCk7Cgkkc3R5bGVzaGVldC0+c2F2ZSgpOwp9OwoKLyoqCiAqIENyZWF0ZSBzZWN1cml0eSBwZXJtaXNzaW9ucwogKi8KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJywgJHRoaXMtPkxhbmcoJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignU2hvcE1TX01haW50YWluQ2F0ZWdvcnknLCAkdGhpcy0+TGFuZygnU2hvcE1TX01haW50YWluQ2F0ZWdvcnknKSk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycsICR0aGlzLT5MYW5nKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycpKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblNLVXMnLCAkdGhpcy0+TGFuZygnU2hvcE1TX01haW50YWluU0tVcycpKTsKCi8qKgogKiBDcmVhdGUgdmFyaW91cyB0ZW1wbGF0ZXMKICovCiMgU2V0dXAgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAndGVtcGxhdGVzJywgJ2ZlX2NhdGVnb3J5X2xpc3QudHBsJyk7CmlmIChmaWxlX2V4aXN0cygkZm4pKSB7CgkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0bGlzdF90ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7Cn0KCiMgU2V0dXAgY2F0ZWdvcmllcyB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAndGVtcGxhdGVzJywgJ2ZlX2NhdGVnb3JpZXMudHBsJyk7CmlmIChmaWxlX2V4aXN0cygkZm4pKSB7CgkkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcmllc190ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7Cn0KCiMgU2V0dXAgcHJvZHVjdCBkZXRhaWwgdGVtcGxhdGUKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJ3RlbXBsYXRlcycsICdmZV9wcm9kdWN0X2RldGFpbC50cGwnKTsKaWYgKGZpbGVfZXhpc3RzKCRmbikpIHsKCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFRlbXBsYXRlKCdwcm9kZGV0YWlsX3RlbXBsYXRlJywgJHRlbXBsYXRlKTsKfQoKIyBTZXR1cCBmZWF0dXJlZCBwcm9kdWN0cyB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAndGVtcGxhdGVzJywgJ2ZlX3Byb2R1Y3RzX2ZlYXR1cmVkLnRwbCcpOwppZiAoZmlsZV9leGlzdHMoJGZuKSkgewoJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ3Byb2RmZWF0X3RlbXBsYXRlJywgJHRlbXBsYXRlKTsKfQoKLyoqCiAqIENyZWF0ZSBkaXJlY3RvcmllcyB0byBob2xkIGltYWdlcwogKi8KJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokcGF0aCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICdpbWFnZXMnLCAnY2F0ZWdvcmllcycpOwovLyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBjYW4gYmUgZm91bmQuIENyZWF0ZSBpdCwgZXJyb3IgaGFuZGxpbmcgd2lsbCBjb3ZlciBhbnkgcHJvYmxlbXMgZm91bmQKaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpIG1rZGlyKCRwYXRoLCAwNzc3KTsKJHBhdGggPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAnaW1hZ2VzJywgJ3Byb2R1Y3RzJyk7Ci8vIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGNhbiBiZSBmb3VuZC4gQ3JlYXRlIGl0LCBlcnJvciBoYW5kbGluZyB3aWxsIGNvdmVyIGFueSBwcm9ibGVtcyBmb3VuZAppZiAoIWZpbGVfZXhpc3RzKCRwYXRoKSkgbWtkaXIoJHBhdGgsIDA3NzcpOwoKJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKFRSVUUpOwokdGhpcy0+UmVnaXN0ZXJTbWFydHlQbHVnaW4oJ3NpbXBsZXNob3AnLCAnZnVuY3Rpb24nLCAnZnVuY3Rpb25fcGx1Z2luJyk7CgokdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGdDbXMgPSBjbXNtcygpOwppZiAoIWlzX29iamVjdCgkZ0NtcykpIGV4aXQ7CgovLyBEcm9wIGFsbCB0YWJsZXMKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19jYXRlZ29yaWVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9pbWFnZXMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9za3VzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5Jyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIFJlbW92ZSBhbGwgcHJlZmVyZW5jZXMKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCi8vIFJlbW92ZSBzZWN1cml0eSBwZXJtaXNzaW9ucwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignU2hvcE1TX1VzZVNpbXBsZVNob3AnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ1Nob3BNU19NYWludGFpbkNhdGVnb3J5Jyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignU2hvcE1TX01haW50YWluU0tVcycpOwoKJGNzcyA9IG5ldyBcQ21zTGF5b3V0U3R5bGVzaGVldDsKLy8gZGlydHkgdGVzdCB0byBjaGVjayBpZiB0aGUgc3R5bGVzaGVldCBleGlzdHMKdHJ5IHsKICAgICRzdHlsZXNoZWV0ID0gJGNzcy0+bG9hZCgnU2ltcGxlU2hvcCBTdHlsZScpOwogICAgJHN0eWxlc2hlZXQtPmRlbGV0ZSgpOwp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgICMgZG8gbm90aGluZzogaXQgZG9lc24ndCBleGlzdCBhbnl3YXkuLi4KfTsKCi8vIFJlbW92ZSBhbGwgdGhlIHNlYXJjaCBpbmRleCBlbnRyaWVzCiRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CiRzZWFyY2htb2R1bGUgPSAkbW9kb3BzLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdTZWFyY2gnKTsKJHNlYXJjaG1vZHVsZS0+RGVsZXRlV29yZHMoJHRoaXMtPkdldE5hbWUoKSk7CgovLyBSZW1vdmUgdGVtcGxhdGVzIHRoYXQgYmVsb25nIHRvIHRoaXMgbW9kdWxlCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgnJywgJ1NpbXBsZVNob3AnKTsKCi8vIFJlbW92ZSBmaWxlcwokZGlybmFtZSA9IF9fRElSX18gLiAnLy4uLy4uL3VwbG9hZHMvaW1hZ2VzL2NhdGVnb3JpZXMnOwphcnJheV9tYXAoJ3VubGluaycsIGdsb2IoIiRkaXJuYW1lLyouKiIpKTsKcm1kaXIoJGRpcm5hbWUpOwoKJGRpcm5hbWUgPSBfX0RJUl9fIC4gJy8uLi8uLi91cGxvYWRzL2ltYWdlcy9wcm9kdWN0cyc7CmFycmF5X21hcCgndW5saW5rJywgZ2xvYigiJGRpcm5hbWUvKi4qIikpOwpybWRpcigkZGlybmFtZSk7CgokdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnLCAkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBNb2R1bGU6IFNob3AgTWFkZSBTaW1wbGUgLSBBIHByb2R1Y3QgbWFpbnRlbmFuY2UgbW9kdWxlIGZvciBDTVMgLSBDTVMgTWFkZSBTaW1wbGUKIyBDb3B5cmlnaHQgKGMpIDIwMDggYnkgRHVrZXRvd24gPGR1a2V0b3duQG1hbnRveC5ubD4KIwojIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGdyYWRlIHRoZSBtb2R1bGUgU2hvcCBNYWRlIFNpbXBsZQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbXMKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKc3dpdGNoICgkY3VycmVudF92ZXJzaW9uKSB7CgljYXNlICcwLjEuMCc6CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BbHRlckNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycsICdwcmljZSBGJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMnLCAnbmV0d2VpZ2h0IEYnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycsICd2YXRjb2RlIEMoMSknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX29wdGlvbnMnLCAncHJpY2UgRicpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkvLyBTaG9wIHBvbGljeSB0byBiZSB0YWtlbiBmcm9tIHBhZ2Ugb3IgY29udGVudCBibG9jawoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG9wX2Rlc2NyaXB0aW9uJyk7CgkJLy8gSW50cm9kdWNlIGNoZWNrbWFyayB0byBzdGF0ZSBpZiBwcmljZXMgYXJlIGluLSBvciBleGNsdWRpbmcgVkFUCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByaWNlc2luY2x2YXQnLCAwKTsKCQkvLyBBbGwgd2VpZ2h0IGFyZSBpbiB1bml0IG9mIG1lYXN1cmUgYXMgcHJlcGFyZWQgaW4gcHJlZmVyZW5jZXMKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2VpZ2h0dW5pdG1lYXN1cmUnLCAnS2cnKTsKCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjEuMSc7CgoJY2FzZSAnMC4xLjEnOgoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMS4yJzsKCgljYXNlICcwLjEuMic6CgoJCS8qKgoJCSAqIENyZWF0ZSB2YXJpb3VzIHRlbXBsYXRlcwoJCSAqLwoJCSMgU2V0dXAgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZQoJCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZW1wbGF0ZXMnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdmZV9jYXRlZ29yeV9saXN0LnRwbCc7CgkJaWYgKGZpbGVfZXhpc3RzKCRmbikpIHsKCQkJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkJCSR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0bGlzdF90ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7CgkJfQoKCQkjIFNldHVwIGNhdGVnb3JpZXMgdGVtcGxhdGUKCQkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndGVtcGxhdGVzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnZmVfY2F0ZWdvcmllcy50cGwnOwoJCWlmIChmaWxlX2V4aXN0cygkZm4pKSB7CgkJCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhdGVnb3JpZXNfdGVtcGxhdGUnLCAkdGVtcGxhdGUpOwoJCX0KCgkJIyBTZXR1cCBwcm9kdWN0IGRldGFpbCB0ZW1wbGF0ZQoJCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZW1wbGF0ZXMnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdmZV9wcm9kdWN0X2RldGFpbC50cGwnOwoJCWlmIChmaWxlX2V4aXN0cygkZm4pKSB7CgkJCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ3Byb2RkZXRhaWxfdGVtcGxhdGUnLCAkdGVtcGxhdGUpOwoJCX0KCgkJIyBTZXR1cCBmZWF0dXJlZCBwcm9kdWN0cyB0ZW1wbGF0ZQoJCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZW1wbGF0ZXMnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdmZV9wcm9kdWN0c19mZWF0dXJlZC50cGwnOwoJCWlmIChmaWxlX2V4aXN0cygkZm4pKSB7CgkJCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ3Byb2RmZWF0X3RlbXBsYXRlJywgJHRlbXBsYXRlKTsKCQl9CgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4xLjMnOwoKCWNhc2UgJzAuMS4zJzoKCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjEuNCc7CgoJY2FzZSAnMC4xLjQnOgoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMS41JzsKCgljYXNlICcwLjEuNSc6CgkJLy8gQWx0ZXIgY29sdW1uIHRvIG5ldyB0eXBlCgkJJHNxbGFycmF5ID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RzJywgJ2Rlc2NyaXB0aW9uIFgnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcycsICdkZXNjcmlwdGlvbiBYJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BbHRlckNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19hdHRyaWJ1dGVfb3B0aW9ucycsICdkZXNjcmlwdGlvbiBYJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMS42JzsKCgljYXNlICcwLjEuNic6CgkJLy8gQWRkIHR3byBuZXcgZmllbGRzIHRvIHByb2R1Y3RzIHRhYmxlCgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycsICdza3UgQygyMCknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycsICdpdGVtbnVtYmVyIEMoMzApJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCS8qKgoJCSAqIFByb2R1Y3QgU3RvY2sgS2VlcGluZyBVbml0IChTS1UpCgkJICovCgkJJGZpZWxkcyA9ICJza3UgQygyMCkgS0VZLAoJCQlkZXNjcmlwdGlvbiBDKDEwMCkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0X3NrdXMiLCAkZmllbGRzLCAkdGhpcy0+dGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3Rfc2t1cyAoc2t1LCBkZXNjcmlwdGlvbikgVkFMVUVTKCA/LCA/KSc7CgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCdQQycsICR0aGlzLT5MYW5nKCdwaWVjZScpKSk7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMgU0VUIHNrdSA9ID8nOwoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnUEMnKSk7CgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4xLjcnOwoKCWNhc2UgJzAuMS43JzoKCQkvLyBObyBkYXRhYmFzZSBjaGFuZ2VzIG9ubHkgY2hhbmdlIGluIHByb2dyYW1zIHRoZW1zZWx2ZXMKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMS44JzsKCgljYXNlICcwLjEuOCc6CgkJLy8gTm8gZGF0YWJhc2UgY2hhbmdlcyBvbmx5IGNoYW5nZSBpbiBwcm9ncmFtcyB0aGVtc2VsdmVzCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjEuOSc7CgoJY2FzZSAnMC4xLjknOgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0cGFnZWxpbWl0JywgMTAwMDAwKTsKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMi4wJzsKCgljYXNlICcwLjIuMCc6CgkJLy8gTm8gZGF0YWJhc2UgY2hhbmdlcyBvbmx5IGNoYW5nZSBpbiBwcm9ncmFtcyB0aGVtc2VsdmVzCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjIuMSc7CgoJY2FzZSAnMC4yLjEnOgoJCS8vIFZlcnNpb24gY2hhbmdlcyBoYXZlIG5vdCBiZWVuIHB1Ymxpc2hlZCBzaW5jZSB0ZXN0aW5nIHdhcyBub3QgZG9uZQoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4yLjInOwoKCWNhc2UgJzAuMi4yJzoKCQkvLyBObyBkYXRhYmFzZSBjaGFuZ2VzIG9ubHkgY2hhbmdlIGluIHByb2dyYW1zIHRoZW1zZWx2ZXMKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMi4zJzsKCgljYXNlICcwLjIuMyc6CgkJJGNzc19uYW1lID0gJHRoaXMtPkxhbmcoJ21vZHVsZV9leGFtcGxlX3N0eWxlc2hlZXQnKTsgLy8gUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIG5ldyBzdHlsZXNoZWV0IGxvY2F0ZSBpbiB0aGUgY3NzIGRpcmVjdG9yeQoJCS8vIENoZWNrIGlmIHRoaXMgbW9kZWwgc3R5bGUgc2hlZXQgYWxscmVhZHkgZXhpc3RzCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdjc3MgV0hFUkUgY3NzX25hbWUgPSA/JzsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY3NzX25hbWUpKTsKCQlpZiAoISRkYnJlc3VsdCB8fCAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPT0gMCkgewoJCQkkbmV3X2Nzc19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gImNzc19zZXEiKTsKCQkJJGZuID0gZGlybmFtZShfX0ZJTEVfXykgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NzcycgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3N0eWxlc2hlZXQuY3NzJzsKCQkJJGNzc190ZXh0ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkJCSRtZWRpYV90eXBlID0gJ3NjcmVlbic7CgkJCS8vIEFkZCB0aGUgc3R5bGVzaGVldCB0byB0aGUgZGF0YWJhc2UKCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiY3NzIChjc3NfaWQsIGNzc19uYW1lLCBjc3NfdGV4dCwgbWVkaWFfdHlwZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPywgPywgPywgPywgPywgPykiOwoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG5ld19jc3NfaWQsICRjc3NfbmFtZSwgJGNzc190ZXh0LCAkbWVkaWFfdHlwZSwgJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpKTsKCQl9CgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4yLjQnOwoKCWNhc2UgJzAuMi40JzoKCQkvLyBCdWcgY2hhbmdlIG9ubHkKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMi41JzsKCgljYXNlICcwLjIuNSc6CgkJLy8gSW5jbHVkZWQgb25seSBmZWF0dXJlIHJlcXVlc3QKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMi42JzsKCgljYXNlICcwLjIuNic6CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjIuNyc7CgoJY2FzZSAnMC4yLjcnOgoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWx0ZXJDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMnLCAnbmFtZSBDKDI1NSknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjIuOCc7CgoJY2FzZSAnMC4yLjgnOgoJCS8vIEksIER1a2V0b3duLCBoYXZlIGRlY2lkZWQgdGhhdCBhdHRyaWJ1dGVzIGFyZSB0byBiZSBleHRlbmRlZCB3aXRoIHByaWNlCgkJLy8gYW5kIG5vdCBhIHN1YiB0YWJsZSB0aGF0IGhvbGRzIHByaWNlcyBwZXIgYXR0cmlidXRlLCB0aGVyZWZvciBhZGRpbmcgY29sdW1ucwoJCS8vIHRvIGF0dHJpYnV0ZXMgdGFibGUgYW5kIGRyb3BwaW5nIG9mIGF0dHJpYnV0ZSBvcHRpb25zIAoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcycsICdtaW5hbGxvd2VkIEkyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzJywgJ21heGFsbG93ZWQgSTInKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMnLCAncHJpY2VhZGp1c3R0eXBlIEMoMSknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMnLCAncHJpY2VhZGp1c3RtZW50IEYnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMnLCAnZGlzcGxheW9ubHkgTCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfc21zX3Byb2R1Y3RfYXR0cmlidXRlcycsICdpdGVtbnVtYmVyIEMoMzApJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzJywgJ2FjdGl2ZSBMJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5BbHRlckNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2F0dHJpYnV0ZXMnLCAnbmFtZSBDKDI1NSknKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cycsICdtYXhhdHRyaWJ1dGVzIEkyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfYXR0cmlidXRlX29wdGlvbnMnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIFJlbW92ZSBwZXJtaXNzaW9uIHRoYXQgd2VyZSBub3Qgd29ya2luZy9uZWVkZWQKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignVXNlIFNpbXBsZVNob3AnLCAnVXNlIFNpbXBsZVNob3AnKTsKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRWRpdCBQcmVmZXJlbmNlcycsICdFZGl0IFByZWZlcmVuY2VzJyk7CgkJJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0FkZC9EZWxldGUgQ2F0ZWdvcnknLCAnQWRkL0RlbGV0ZSBDYXRlZ29yeScpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IENhdGVnb3J5JywgJ0VkaXQgQ2F0ZWdvcnknKTsKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQWRkL0RlbGV0ZSBQcm9kdWN0cycsICdBZGQvRGVsZXRlIFByb2R1Y3RzJyk7CgkJJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0VkaXQgUHJvZHVjdHMnLCAnRWRpdCBQcm9kdWN0cycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBZGQvRGVsZXRlIFRyYW5zbGF0aW9ucycsICdBZGQvRGVsZXRlIFRyYW5zbGF0aW9ucycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IFRyYW5zbGF0aW9ucycsICdFZGl0IFRyYW5zbGF0aW9ucycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBZGQvRGVsZXRlIFRlbXBsYXRlcycsICdBZGQvRGVsZXRlIFRlbXBsYXRlcycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IFRlbXBsYXRlcycsICdFZGl0IFRlbXBsYXRlcycpOwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcsICR0aGlzLT5MYW5nKCdTaG9wTVNfVXNlU2ltcGxlU2hvcCcpKTsKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignU2hvcE1TX01haW50YWluQ2F0ZWdvcnknLCAkdGhpcy0+TGFuZygnU2hvcE1TX01haW50YWluQ2F0ZWdvcnknKSk7CgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblByb2R1Y3RzJywgJHRoaXMtPkxhbmcoJ1Nob3BNU19NYWludGFpblByb2R1Y3RzJykpOwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5TS1VzJywgJHRoaXMtPkxhbmcoJ1Nob3BNU19NYWludGFpblNLVXMnKSk7CgkJLy8gRGVmYXVsdCBsYW5ndWFnZSBmb3IgdGhlIHNob3Agd2FzIG5vdCB1c2VkLCBzbyByZW1vdmUgaXQgZHVyaW5nIHRoaXMgbWFqb3IgcmVsZWFzZQoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdkZWZhdWx0X2xhbmd1YWdlJyk7CgoJCS8vIE1ham9yIHN0ZXBzIHRha2VuIGhlcmUsIHNpbmNlIGV4dGVuc2lvbiB0byBhdHRyaWJ1dGVzIGlzIGh1Z2UuCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjMuMCc7CgoJY2FzZSAnMC4zLjAnOgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4zLjEnOwoKCWNhc2UgJzAuMy4xJzoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMy4yJzsKCgljYXNlICcwLjMuMic6CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjMuMyc7CgoJY2FzZSAnMC4zLjMnOgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4zLjQnOwoKCWNhc2UgJzAuMy40JzoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMy41JzsKCgljYXNlICcwLjMuNSc6CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rpc3BsYXlxdWlja3NlbGVjdG9yJywgdHJ1ZSk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjMuNic7CgoJY2FzZSAnMC4zLjYnOgoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4zLjcnOwoKCWNhc2UgJzAuMy43JzoKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMy44JzsKCgljYXNlICcwLjMuOCc6CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjMuOSc7Cn0KCi8vIExvZyB0aGUgdXBncmFkZSBpbiB0aGUgYWRtaW4gYXVkaXQgdHJhaWwKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJTaW1wbGVTaG9wIgp2ZXJzaW9uID0gMS4wCmF1dGhvciA9ICJEdWtldG93biIKYXV0aG9yZW1haWwgPSAiIgptaW5jbXN2ZXJzaW9uID0gIjIuMS4wIgpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMAo=]]></data>
	</file>
	<file>
	  <filename>/SimpleShop.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGb3JrIG9mIE1vZHVsZTogU2hvcCBNYWRlIFNpbXBsZSAtIEFuIE9yZGVyIEludGFrZSBtb2R1bGUgZm9yIENNUyAtIENNUyBNYWRlIFNpbXBsZQojIENvcHlyaWdodCAoYykgMjAwOCBieSBEdWtldG93bgojIEZvcmtlZCBieSBZdXJpIEhhcGVyc2tpICh3ZHdwQHlhbmRleC5ydSkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcnRtcy8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppbmNsdWRlX29uY2UoZGlybmFtZShfX0ZJTEVfXykgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2xpYnJhcnknIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjYXRlZ29yaWVzLmFwaS5waHAnKTsKaW5jbHVkZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdsaWJyYXJ5JyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAncHJvZHVjdHMuYXBpLnBocCcpOwoKY2xhc3MgU2ltcGxlU2hvcCBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRjYXRlZ29yaWVzOwoJdmFyICRwcm9kdWN0czsKCglmdW5jdGlvbiBTaW1wbGVTaG9wKCkKCXsKCQlwYXJlbnQ6OkNNU01vZHVsZSgpOwoJCSR0aGlzLT5jYXRlZ29yaWVzID0gbmV3IENhdGVnb3JpZXMoJHRoaXMpOwoJCSR0aGlzLT5wcm9kdWN0cyA9IG5ldyBTTVNQcm9kdWN0cygkdGhpcyk7CgkJJHRoaXMtPkluaXRpYWxpemVGcm9udGVuZCgpOwoJfQoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdTaW1wbGVTaG9wJzsKCX0KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMS4wJzsKCX0KCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdEdWtldG93bic7Cgl9CglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCgl7CgkJLy8gVG8gcmVkdWNlIHNwYW0gdGhpcyBlbWFpbCBmaWVsZCBsZWZ0IGJsYW5rCgkJcmV0dXJuICcnOwoJfQoJZnVuY3Rpb24gR2V0SGVscCgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY2hhbmdlbG9nLmluYycpOwoJfQoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKCXsKCQlyZXR1cm4gJ2Vjb21tZXJjZSc7Cgl9CglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluX2Rlc2NyaXB0aW9uJyk7Cgl9CgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewoJCWlmICgKCQkJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSB8fAoJCQkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgTW9kdWxlcycpIHx8CgkJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19Vc2VTaW1wbGVTaG9wJykgfHwKCQkJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU2hvcE1TX01haW50YWluQ2F0ZWdvcnknKSB8fAoJCQkkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdTaG9wTVNfTWFpbnRhaW5Qcm9kdWN0cycpIHx8CgkJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1Nob3BNU19NYWludGFpblNLVXMnKQoJCSkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCgl7CgkJcmV0dXJuIFtdOwoJfQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMi4xLjAnOwoJfQoKCWZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzMnOwoJfQoKCWZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKQoJewoJCXJldHVybiBmYWxzZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gSGFzQ2FwYWJpbGl0eSgkY2FwYWJpbGl0eSwgJHBhcmFtcyA9IGFycmF5KCkpCgl7CgkJc3dpdGNoICgkY2FwYWJpbGl0eSkgewoJCQljYXNlIENtc0NvcmVDYXBhYmlsaXRpZXM6OlBMVUdJTl9NT0RVTEU6CgkJCQlyZXR1cm4gVFJVRTsKCQl9CgkJcmV0dXJuIEZBTFNFOwoJfQoKCWZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCgl7CgkJJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9bc1NdaW1wbGVbc1NdaG9wXC9jYXRcLyg/UDxjYXRlZ29yeV9pZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKC4rKSQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ2ZlX3Byb2R1Y3RfbGlzdCcpKTsKCQkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tzU11pbXBsZVtzU11ob3BcL3Byb2RcLyg/UDxwcm9kdWN0X2lkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oLispJC8nLCBhcnJheSgnYWN0aW9uJyA9PiAnZmVfcHJvZHVjdF9kZXRhaWwnKSk7Cgl9CgoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKCQkjIFRoZSB0b3AgbW9zdCBwYXJhbWV0ZXIgd2lsbCBiZSBzaG93biBpbiB0aGUgYm90dG9tIGFuZCB2aWNlIHZlcnNhCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3RhcnQnLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBzdGFydCcpKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYWdlbnVtYmVyJywgJycsICR0aGlzLT5MYW5nKCdoZWxwcGFnZW51bWJlcicpKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwcm9kcGFnZWxpbWl0JywgJycsICR0aGlzLT5MYW5nKCdoZWxwcHJvZHBhZ2VsaW1pdCcpKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXJlbnRjYXRlZ29yeScsICcnLCAkdGhpcy0+TGFuZygnaGVscHBhcmVudGNhdGVnb3J5JykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Rpc3BsYXknLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBkaXNwbGF5JykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHBhZ2UnLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBkZXRhaWxwYWdlJykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdG5hbWUnLCAnJywgJHRoaXMtPkxhbmcoJ2hlbHBjYXRuYW1lJykpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5X2lkJywgJycsICR0aGlzLT5MYW5nKCdoZWxwY2F0ZWdvcnlfaWQnKSk7CgoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdGFydCcsIENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VudW1iZXInLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9kdWN0X2lkJywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncHJvZHBhZ2VsaW1pdCcsIENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhcmVudGNhdGVnb3J5JywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGlzcGxheScsIENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnQnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0X29yZGVyJywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlscGFnZScsIENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdG5hbWUnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeV9pZCcsIENMRUFOX1NUUklORyk7Cgl9CgoJZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkZXZlbnRuYW1lKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaW5mb18nIC4gJGV2ZW50bmFtZSk7Cgl9CgoJZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycgLiAkZXZlbnRuYW1lKTsKCX0KCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnbWVzc2FnZV9wb3N0aW5zdGFsbCcpOwoJfQoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnbWVzc2FnZV9wb3N0dW5pbnN0YWxsJyk7Cgl9CglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ21lc3NhZ2VfY29uZmlybXVuaW5zdGFsbCcpOwoJfQoKCS8vIFByZXBhcmUgYSBsaXN0IG9mIHRoZSBwb3NzaWJsZSBwcmljZSBhZGp1c3RtZW50IHR5cGVzCglmdW5jdGlvbiBCdWlsZExpc3RPZkFkanVzdFR5cGVzKCkKCXsKCQkvKglQIC0gQWRkcyB0aGUgYWRqdXN0bWVudCB0byB0aGUgcHJvZHVjdCBwcmljZQoJCQlNIC0gU3VidHJhY3RzIHRoZSBhZGp1c3RtZW50IGZyb20gdGhlIHByb2R1Y3QgcHJpY2UKCQkJVCAtIE11bHRpcGxpZXMgdGhlIHByb2R1Y3QgcHJpY2UgdGltZSB0aGUgYWRqdXN0bWVudCBmYWN0b3IgKG1pZ2h0IGJlIG1pbnVzIGZhY3RvciEpCgkJCVYgLSBPdmVycmlkZXMgdGhlIHByb2R1Y3QgcHJpY2Ugd2l0aCBnaXZlbiBmYWN0b3IKCQkqLwoJCSRhZGp1c3R0eXBlZHJvcGRvd24gPSBhcnJheSgpOwoJCSRhZGp1c3R0eXBlZHJvcGRvd25bJHRoaXMtPkxhbmcoJ2FkanVzdHR5cGVwbHVzJyldID0gJ1AnOwoJCSRhZGp1c3R0eXBlZHJvcGRvd25bJHRoaXMtPkxhbmcoJ2FkanVzdHR5cGVtaW4nKV0gPSAnTSc7CgkJJGFkanVzdHR5cGVkcm9wZG93blskdGhpcy0+TGFuZygnYWRqdXN0dHlwZXRpbWVzJyldID0gJ1QnOwoJCSRhZGp1c3R0eXBlZHJvcGRvd25bJHRoaXMtPkxhbmcoJ2FkanVzdHR5cGV2YWx1ZScpXSA9ICdWJzsKCgkJcmV0dXJuICRhZGp1c3R0eXBlZHJvcGRvd247Cgl9CgoJZnVuY3Rpb24gQnVpbGRMaXN0SW52ZW50b3J5VHlwZXMoKQoJewoJCSRpbnZlbnRvcnl0eXBlcyA9IGFycmF5KCk7CgkJJGludmVudG9yeXR5cGVzWyR0aGlzLT5MYW5nKCdpbnZlbnRvcnl0eXBlX25vbmUnKV0gPSAnbm9uZSc7CgkJJGludmVudG9yeXR5cGVzWyR0aGlzLT5MYW5nKCdpbnZlbnRvcnl0eXBlX3Byb2QnKV0gPSAncHJvZCc7CgkJJGludmVudG9yeXR5cGVzWyR0aGlzLT5MYW5nKCdpbnZlbnRvcnl0eXBlX2F0dHInKV0gPSAnYXR0cic7CgoJCXJldHVybiAkaW52ZW50b3J5dHlwZXM7Cgl9CgoJZnVuY3Rpb24gQnVpbGRMaXN0U0tVKCkKCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIHNrdSwgZGVzY3JpcHRpb24gRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9za3VzCgkJICAgICAgICBPUkRFUiBCWSBza3UnOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCSRza3VfbGlzdCA9IGFycmF5KCk7CgkJd2hpbGUgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJHNrdV9saXN0WyRyb3dbJ3NrdSddIC4gJyAtICcgLiAkcm93WydkZXNjcmlwdGlvbiddXSA9ICRyb3dbJ3NrdSddOwoJCX0KCQlyZXR1cm4gJHNrdV9saXN0OwoJfQoKCWZ1bmN0aW9uIEJ1aWxkTGlzdFNhbGVzSW52ZW50VGltaW5nKCkKCXsKCQkkc2FsZXNpbnZlbnR0aW1pbmcgPSBhcnJheSgpOwoJCS8vJHNhbGVzaW52ZW50dGltaW5nWyR0aGlzLT5MYW5nKCdzYWxlc2ludmVudHRpbWluZ19pbnQnKV0gPSAnSU5UJzsKCQkkc2FsZXNpbnZlbnR0aW1pbmdbJHRoaXMtPkxhbmcoJ3NhbGVzaW52ZW50dGltaW5nX2NuZicpXSA9ICdDTkYnOwoJCSRzYWxlc2ludmVudHRpbWluZ1skdGhpcy0+TGFuZygnc2FsZXNpbnZlbnR0aW1pbmdfcGF5JyldID0gJ1BBWSc7CgkJJHNhbGVzaW52ZW50dGltaW5nWyR0aGlzLT5MYW5nKCdzYWxlc2ludmVudHRpbWluZ19zaHAnKV0gPSAnU0hQJzsKCQkkc2FsZXNpbnZlbnR0aW1pbmdbJHRoaXMtPkxhbmcoJ3NhbGVzaW52ZW50dGltaW5nX2ludicpXSA9ICdJTlYnOwoKCQlyZXR1cm4gJHNhbGVzaW52ZW50dGltaW5nOwoJfQoKCWZ1bmN0aW9uIEJ1aWxkVGh1bWIoJGltYWdlLCAkc291cmNlZGlyLCAkdGh1bWJ3aWR0aCA9IDAsICAkdGh1bWJoZWlnaHQgPSAwKQoJewoKCQlpbmlfc2V0KCJtZW1vcnlfbGltaXQiLCAiMzBNIik7CgkJJGltZ3NpemUgPSBnZXRpbWFnZXNpemUoJHNvdXJjZWRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaW1hZ2UpOwoJCWlmICghJGltZ3NpemUpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJaWYgKCR0aHVtYndpZHRoID09IDAgJiYgJHRodW1iaGVpZ2h0ID09IDApIHsKCQkJJHRhcmdldHNpemVbMF0gPSAkaW1nc2l6ZVswXTsJLy8gVGFyZ2V0IEhlaWdodAoJCQkkdGFyZ2V0c2l6ZVsxXSA9ICRpbWdzaXplWzFdOwkvLyBUYXJnZXQgV2lkdGgKCQl9IGVsc2VpZiAoJHRodW1id2lkdGggPT0gMCAmJiAkdGh1bWJoZWlnaHQgIT0gMCkgewoJCQkkdGFyZ2V0c2l6ZVswXSA9IHJvdW5kKCR0aHVtYmhlaWdodCAqICgkaW1nc2l6ZVswXSAvICRpbWdzaXplWzFdKSk7CgkJCSR0YXJnZXRzaXplWzFdID0gJHRodW1iaGVpZ2h0OwoJCX0gZWxzZWlmICgkdGh1bWJ3aWR0aCAhPSAwICYmICR0aHVtYmhlaWdodCA9PSAwKSB7CgkJCSR0YXJnZXRzaXplWzBdID0gJHRodW1id2lkdGg7CgkJCSR0YXJnZXRzaXplWzFdID0gcm91bmQoJHRodW1id2lkdGggKiAoJGltZ3NpemVbMF0gLyAkaW1nc2l6ZVsxXSkpOwoJCX0gZWxzZSB7CgkJCWlmIChyb3VuZCgkdGh1bWJ3aWR0aCAqICgkaW1nc2l6ZVswXSAvICRpbWdzaXplWzFdKSkgPiAkdGh1bWJoZWlnaHQpIHsKCQkJCSR0YXJnZXRzaXplWzBdID0gJHRodW1iaGVpZ2h0OwoJCQkJJHRhcmdldHNpemVbMV0gPSByb3VuZCgkdGh1bWJoZWlnaHQgKiAoJGltZ3NpemVbMV0gLyAkaW1nc2l6ZVswXSkpOwoJCQl9IGVsc2UgewoJCQkJJHRhcmdldHNpemVbMF0gPSByb3VuZCgkdGh1bWJ3aWR0aCAqICgkaW1nc2l6ZVswXSAvICRpbWdzaXplWzFdKSk7CgkJCQkkdGFyZ2V0c2l6ZVsxXSA9ICR0aHVtYndpZHRoOwoJCQl9CgkJfQoJCSRpbWFnZXR5cGUgPSAkaW1nc2l6ZVsyXTsKCQkvLyBUeXBlIG9mIGltYWdlIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgdmFsdWVzCgkJLy8gMSA9IEdJRiAyID0gSlBHIDMgPSBQTkcKCQkvLyBGb3Igb3RoZXIgdHlwZXMgc2VlIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZXhpZi1pbWFnZXR5cGUucGhwIwoKCQkkcHJvcGVydGllcyA9IGFycmF5KCR0YXJnZXRzaXplWzBdLCAkdGFyZ2V0c2l6ZVsxXSwgJGltZ3NpemVbMF0sICRpbWdzaXplWzFdKTsKCgkJc3dpdGNoICgkaW1hZ2V0eXBlKSB7CgkJCWNhc2UgMToKCQkJCSRzcmNpbWcgPSBpbWFnZWNyZWF0ZWZyb21naWYoJHNvdXJjZWRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaW1hZ2UpOwoJCQkJYnJlYWs7CgkJCWNhc2UgMjoKCQkJCSRzcmNpbWcgPSBpbWFnZWNyZWF0ZWZyb21qcGVnKCRzb3VyY2VkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGltYWdlKTsKCQkJCWJyZWFrOwoJCQljYXNlIDM6CgkJCQkkc3JjaW1nID0gaW1hZ2VjcmVhdGVmcm9tcG5nKCRzb3VyY2VkaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGltYWdlKTsKCQkJCWltYWdlYWxwaGFibGVuZGluZygkc3JjaW1nLCB0cnVlKTsKCQkJCWltYWdlc2F2ZWFscGhhKCRzcmNpbWcsIHRydWUpOwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6CgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkkZGVzdGluYXRpb25pbWcgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkcHJvcGVydGllc1swXSwgJHByb3BlcnRpZXNbMV0pOwoKCQlpZiAoCgkJCWltYWdlY29weXJlc2FtcGxlZCgkZGVzdGluYXRpb25pbWcsICRzcmNpbWcsIDAsIDAsIDAsIDAsICRwcm9wZXJ0aWVzWzBdLCAkcHJvcGVydGllc1sxXSwgJHByb3BlcnRpZXNbMl0sICRwcm9wZXJ0aWVzWzNdKQoJCQkmJgoJCQlpbWFnZWpwZWcoJGRlc3RpbmF0aW9uaW1nLCAkc291cmNlZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0bl8nIC4gJGltYWdlKQoJCSkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoKCWZ1bmN0aW9uIENhbGN1bGF0ZUF0dHJpYnV0ZVByaWNlKCRwcmljZSwgJHByaWNlYWRqdXN0dHlwZSwgJHByaWNlYWRqdXN0bWVudCkKCXsKCQlzd2l0Y2ggKCRwcmljZWFkanVzdHR5cGUpIHsKCQkJY2FzZSAnUCc6CgkJCQkkcHJpY2UgPSAkcHJpY2UgKyAkcHJpY2VhZGp1c3RtZW50OwoJCQkJYnJlYWs7CgkJCWNhc2UgJ00nOgoJCQkJJHByaWNlID0gJHByaWNlIC0gJHByaWNlYWRqdXN0bWVudDsKCQkJCWJyZWFrOwoJCQljYXNlICdUJzoKCQkJCSRwcmljZSA9ICRwcmljZSAqICRwcmljZWFkanVzdG1lbnQ7CgkJCQlicmVhazsKCQkJY2FzZSAnVic6CgkJCQkkcHJpY2UgPSAkcHJpY2VhZGp1c3RtZW50OwoJCQkJYnJlYWs7CgkJfQoJCXJldHVybiAkcHJpY2U7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQkgQ2hlY2tJdGVtT25TdG9jaygkaXRlbW51bWJlciwgJGl0ZW10eXBlKQoJCSBVc2luZyB0aGlzIGZ1bmN0aW9uIGEgY2hlY2sgaXMgZG9uZSBpZiBpbnZlbnRvcnkgaXMgYXZhaWxhYmxlCgkJIHVzZTogaWYgKCR0aGlzLT5DaGVja0l0ZW1PblN0b2NrKCRhdHRyaWJ1dGVbJ2l0ZW1udW1iZXInXSwgJ2F0dHInKSkgewoJICAgICAgICB9CgkgICAgIEFuIGFycmF5IGlzIHJldHVybmVkIHdpdGggYm9vbGVhbiBpZiBzdG9jayBpcyBhdmFpbGFibGUgYW5kCgkgICAgIHF1YW50aXR5IGF2YWlsYWJsZSBpcyBhbHNvIGluY2x1ZGVkCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBDaGVja0l0ZW1PblN0b2NrKCRpdGVtbnVtYmVyLCAkaXRlbXR5cGUpCgl7CgkJLy8gSW5pdGlhbGl6ZSB0aGUgRGF0YWJhc2UKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRJdGVtT25TdG9jayA9IGFycmF5KCk7CgkJJEl0ZW1PblN0b2NrWydvbnN0b2NrJ10gPSBmYWxzZTsKCgkJLy8gRnVuY3Rpb24gbm90IGluIHVzZS4gV2lsbCBiZSB1c2VkIGlmIGludmVudG9yeSBmaWxlIHdpbGwgYmUgaW5jbHVkZWQKCQlzd2l0Y2ggKCRpdGVtdHlwZSkgewoJCQljYXNlICdwcm9kJzoKCQkJCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cwoJCQkJCVdIRVJFIGl0ZW1udW1iZXIgPSA/JzsKCQkJCSRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRpdGVtbnVtYmVyKSk7CgkJCQlpZiAoJHJvdyAmJiAkcm93WydtYXhhdHRyaWJ1dGVzJ10gPiAwKSB7CgkJCQkJJEl0ZW1PblN0b2NrWydvbnN0b2NrJ10gPSB0cnVlOwoJCQkJCSRJdGVtT25TdG9ja1sncXVhbnRpdHlvbnN0b2NrJ10gPSAkcm93WydtYXhhdHRyaWJ1dGVzJ107CgkJCQl9CgkJCQlicmVhazsKCQkJY2FzZSAnYXR0cic6CgkJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9hdHRyaWJ1dGVzCgkJCQkJV0hFUkUgaXRlbW51bWJlciA9ID8nOwoJCQkJJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGl0ZW1udW1iZXIpKTsKCQkJCWlmICgkcm93ICYmICRyb3dbJ21heGFsbG93ZWQnXSA+IDApIHsKCQkJCQkkSXRlbU9uU3RvY2tbJ29uc3RvY2snXSA9IHRydWU7CgkJCQkJJEl0ZW1PblN0b2NrWydxdWFudGl0eW9uc3RvY2snXSA9ICRyb3dbJ21heGFsbG93ZWQnXTsKCQkJCX0KCQkJCWJyZWFrOwoJCX0KCQlyZXR1cm4gJEl0ZW1PblN0b2NrOwoJfQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIERpc3BsYXlFcnJvclBhZ2UoKQoJICAgVGhpcyBpcyBhIHNpbXBsZSBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBlcnJvciBwYWdlcy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybl9pZCwgJG1lc3NhZ2UgPSAnJykKCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsKCgkJLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCX0KCgkvLyBDb21wbGV0ZWx5IGV4cGFuZCBjYXRlZ29yeSB0cmVlCglmdW5jdGlvbiBGaWxsQ2F0TGlzdCgkcGFyZW50LCAkbGV2ZWwsICRyZXR1cm5pZCwgJGlkKQoJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCSR0cmFucyA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnVHJhbnNsaXRBbGlhcycpOwoKCQkkcXVlcnkgPSAiU0VMRUNUIGBjYXRlZ29yeV9pZGAsIGBuYW1lYCwgYHBhcmVudF9pZGAKCQkJRlJPTSBgIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfc21zX2NhdGVnb3JpZXNgCgkJCVdIRVJFIGBjYXRlZ29yeV9pZGAgPD4gMCBBTkQgYHBhcmVudF9pZGAgPSA/IEFORCBgYWN0aXZlYCA9IDEKCQkJT1JERVIgQlkgYHBvc2l0aW9uYCwgYGNhdGVnb3J5X2lkYCI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmVudCkpOwoJCSRhID0gYXJyYXkoKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQllY2hvICdFcnJvciBmb3VuZDogcmVzdWx0ID0gJyAuICRkYi0+RXJyb3JNc2coKSAuICc8YnIvPiZuYnNwOyZuYnNwOycgLiAkZGItPnNxbCAuICc8YnIvPic7ICNkaWUoKTsKCQl9IGVsc2UgewoJCQkkcm93ID0gYXJyYXkoKTsKCQkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgoJCQkJLy8gQ2hlY2sgdGhlIG51bWJlciBvZiBhY3RpdmUgcHJvZHVjdHMgY29ubmVjdGVkIHRvIHRoaXMgY2F0ZWdvcnkKCQkJCSRxdWVyeTIgPSAnU0VMRUNUIGNvdW50KCopIGFzIG51bV9wcm9kdWN0cyBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0X2NhdGVnb3J5IHBjLAoJCQkJCScgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX3Ntc19wcm9kdWN0cyBwIFdIRVJFIHBjLmNhdGVnb3J5X2lkPT8gQU5EIHBjLnByb2R1Y3RfaWQgPSBwLnByb2R1Y3RfaWQgQU5ECgkJCQkJcC5hY3RpdmUgPSAxJzsKCQkJCSRkYnJlc3VsdDIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5MiwgYXJyYXkoJHJvd1snY2F0ZWdvcnlfaWQnXSkpOwoJCQkJJHByb2Ryb3cgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpOwoJCQkJJHJvd1snbnVtX3Byb2R1Y3RzJ10gPSAkcHJvZHJvd1snbnVtX3Byb2R1Y3RzJ107CgoJCQkJaWYgKCR0cmFucykgewoKCQkJCQkkY2F0X25hbWUgPSAkdHJhbnMtPlRyYW5zbGl0KCRyb3dbJ25hbWUnXSk7CgkJCQl9IGVsc2UgewoJCQkJCSRjYXRfbmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKTsKCQkJCX0KCgkJCQkkZGVzdHBhZ2UgPSAoaXNzZXQoJGRldGFpbHBhZ2UpICYmICRkZXRhaWxwYWdlICE9ICcnKSA/ICRkZXRhaWxwYWdlIDogJHJldHVybmlkOwoJCQkJJHNlbmR0b2RldGFpbCA9IGFycmF5KCdjYXRlZ29yeV9pZCcgPT4gJHJvd1snY2F0ZWdvcnlfaWQnXSwJJ2RldGFpbHBhZ2UnID0+ICRkZXN0cGFnZSk7CgkJCQkkcHJldHR5dXJsID0gJ1NpbXBsZVNob3AvY2F0LycgLiAkcm93WydjYXRlZ29yeV9pZCddIC4gJy8nIC4gJGRlc3RwYWdlIC4gJy8nIC4gJGNhdF9uYW1lOwoJCQkJaWYgKGlzc2V0KCRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ10pKSB7CgkJCQkJJHByZXR0eXVybCAuPSAnL2QsJyAuICRzZW5kdG9kZXRhaWxbJ2RldGFpbHRlbXBsYXRlJ107CgkJCQl9CgkJCQlpZiAoJHJvd1snbnVtX3Byb2R1Y3RzJ10gIT0gMCkgewoJCQkJCSRyb3dbJ2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKAoJCQkJCQkkaWQsCgkJCQkJCSdmZV9wcm9kdWN0X2xpc3QnLAoJCQkJCQkkZGVzdHBhZ2UsCgkJCQkJCSRyb3dbJ25hbWUnXSwKCQkJCQkJJHNlbmR0b2RldGFpbCwKCQkJCQkJJycsCgkJCQkJCWZhbHNlLAoJCQkJCQlmYWxzZSwKCQkJCQkJJycsCgkJCQkJCXRydWUsCgkJCQkJCSRwcmV0dHl1cmwKCQkJCQkpOwoJCQkJfQoJCQkJJHJvd1snbGV2ZWwnXSA9ICRsZXZlbDsKCgkJCQkkYVtdID0gJHJvdzsKCgkJCQkvLyBQcm9jZXNzIHN1YmNhdGVnb3JpZXMKCQkJCSRiID0gJHRoaXMtPkZpbGxDYXRMaXN0KCRyb3dbJ2NhdGVnb3J5X2lkJ10sICRsZXZlbCArIDEsICRyZXR1cm5pZCwgJGlkKTsKCQkJCS8vIEFkZCAkYltdIHRvIHRoZSBlbmQgb2YgJGFbXQoJCQkJZm9yICgkaiA9IDA7ICRqIDwgY291bnQoJGIpOyAkaisrKSB7CgkJCQkJJGFbXSA9ICRiWyRqXTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuICRhOwoJfQoKCS8vIENvbXBsZXRlbHkgZXhwYW5kIGNhdGVnb3J5IHRyZWUgZm9yIHVzZSBpbiB0aGUgUXVpY2sgU2VsZWN0b3IKCWZ1bmN0aW9uIEZpbGxRU0NhdExpc3QoJHBhcmVudCwgJGxldmVsLCAkcmV0dXJuaWQpCgl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCQkvLyRvbGRfZmV0Y2htb2RlID0gJGRiLT5TZXRGZXRjaE1vZGUoJ0FET0RCX0ZFVENIX05VTScpOwoKCQkkcXVlcnkgPSAiU0VMRUNUIGNhdGVnb3J5X2lkLCBuYW1lLCBwYXJlbnRfaWQKCQkJRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9zbXNfY2F0ZWdvcmllcwoJCQlXSEVSRSBjYXRlZ29yeV9pZDw+MCBBTkQgcGFyZW50X2lkID0gPyBBTkQgYWN0aXZlID0gMQoJCQlPUkRFUiBCWSBwb3NpdGlvbiwgbmFtZSI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmVudCkpOwoJCSRhID0gYXJyYXkoKTsKCQlpZiAoISRkYnJlc3VsdCkgewoJCQllY2hvICdFcnJvciBmb3VuZDogcmVzdWx0ID0gJyAuICRkYi0+RXJyb3JNc2coKSAuICc8YnIvPiZuYnNwOyZuYnNwOycgLiAkZGItPnNxbCAuICc8YnIvPic7ICNkaWUoKTsKCQl9IGVsc2UgewoJCQkkcm93ID0gYXJyYXkoKTsKCQkJJGlkID0gJ20xXyc7CgkJCXdoaWxlICgkZGJyZXN1bHQgJiYgJGNhdF9yb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJCSRyb3dbMF0gPSAkY2F0X3Jvd1snY2F0ZWdvcnlfaWQnXTsKCQkJCSRyb3dbMV0gPSAkY2F0X3Jvd1snbmFtZSddOwoJCQkJJHJvd1syXSA9ICRjYXRfcm93WydwYXJlbnRfaWQnXTsKCQkJCS8vIENoZWNrIHRoZSBudW1iZXIgb2YgYWN0aXZlIHByb2R1Y3RzIGNvbm5lY3RlZCB0byB0aGlzIGNhdGVnb3J5CgkJCQkkcXVlcnkyID0gJ1NFTEVDVCBjb3VudCgqKSBhcyBudW1fcHJvZHVjdHMgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdF9jYXRlZ29yeSBwYywKCQkJCQknIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMgcCBXSEVSRSBjYXRlZ29yeV9pZD0/IEFORCBwYy5wcm9kdWN0X2lkID0gcC5wcm9kdWN0X2lkIEFORAoJCQkJCXAuYWN0aXZlID0gMSc7CgkJCQkkZGJyZXN1bHQyID0gJGRiLT5FeGVjdXRlKCRxdWVyeTIsIGFycmF5KCRyb3dbMF0pKTsKCQkJCWlmICgkZGJyZXN1bHQyKSAkcHJvZHJvdyA9ICRkYnJlc3VsdDItPkZldGNoUm93KCk7CgkJCQkkcm93WzRdID0gaXNzZXQoJHByb2Ryb3dbJ251bV9wcm9kdWN0cyddKSA/ICRwcm9kcm93WydudW1fcHJvZHVjdHMnXSA6IDA7CgkJCQkkcm93WzFdID0gJHRoaXMtPkNyZWF0ZUxpbmsoCgkJCQkJJGlkLAoJCQkJCSdjYXRlZ29yeV9saXN0JywKCQkJCQkkcmV0dXJuaWQsCgkJCQkJJHJvd1sxXSwKCQkJCQlhcnJheSgnY3VycmVudF9jYXRlZ29yeV9pZCcgPT4gJHJvd1swXSkKCQkJCSk7CgkJCQkkcm93WzNdID0gJGxldmVsOwoKCQkJCSRhW10gPSAkcm93OwoJCQkJLy8gUHJvY2VzcyBzdWJjYXRlZ29yaWVzCgkJCQkkYiA9ICR0aGlzLT5GaWxsUVNDYXRMaXN0KCRyb3dbMF0sICRsZXZlbCArIDEsICRyZXR1cm5pZCk7CgkJCQkvLyBBZGQgJGJbXSB0byB0aGUgZW5kIG9mICRhW10KCQkJCWZvciAoJGogPSAwOyAkaiA8IGNvdW50KCRiKTsgJGorKykgewoJCQkJCSRhW10gPSAkYlskal07CgkJCQl9CgkJCX0KCQl9CgoJCS8vJGRiLT5TZXRGZXRjaE1vZGUoJG9sZF9mZXRjaG1vZGUpOwoJCXJldHVybiAkYTsKCX0KCglmdW5jdGlvbiBGb3JtYXRQcmljZSgkcHJpY2UpCgl7CgkJLy8gQ2hlY2sgaWYgQ2FydE1TIGhhcyBiZWVuIGluc3RhbGxlZAoJCSRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CgkJJENhcnRNUyA9ICRtb2RvcHMtPmdldF9tb2R1bGVfaW5zdGFuY2UoJ1NpbXBsZUNhcnQnKTsKCQlpZiAoJENhcnRNUykgewoJCQkkZGVjaW1hbHBvc2l0aW9ucyA9ICRDYXJ0TVMtPkdldFByZWZlcmVuY2UoJ251bWJlcmZvcm1hdGRlY2ltYWxzJywgMik7CgkJCSRkZWNpbWFsc2VwZXJhdG9yID0gJENhcnRNUy0+R2V0UHJlZmVyZW5jZSgnbnVtYmVyZm9ybWF0ZGVjX3BvaW50JywgJy4nKTsKCQkJJHRob3VzYW5kc2VwZXJhdG9yID0gJENhcnRNUy0+R2V0UHJlZmVyZW5jZSgnbnVtYmVyZm9ybWF0dGhvdXNhbmRfc2VwJywgJycpOwoJCX0gZWxzZSB7CgkJCSRkZWNpbWFscG9zaXRpb25zID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlY2ltYWxwb3NpdGlvbnNwcmljZScsIDIpOwoJCQkkZGVjaW1hbHNlcGVyYXRvciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWNpbWFsc2VwYXJhdG9ycHJpY2UnLCAnLicpOwoJCQkkdGhvdXNhbmRzZXBlcmF0b3IgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGhvdXNhbmRzZXBhcmF0b3JwcmljZScsICcnKTsKCQl9CgkJcmV0dXJuIG51bWJlcl9mb3JtYXQoJHByaWNlLCAkZGVjaW1hbHBvc2l0aW9ucywgJGRlY2ltYWxzZXBlcmF0b3IsICR0aG91c2FuZHNlcGVyYXRvcik7Cgl9CgoJZnVuY3Rpb24gRm9ybWF0V2VpZ2h0KCR3ZWlnaHQpCgl7CgkJJGRlY2ltYWxwb3NpdGlvbnMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVjaW1hbHBvc2l0aW9uc3dlaWdodCcsIDMpOwoJCSRkZWNpbWFsc2VwZXJhdG9yID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlY2ltYWxzZXBhcmF0b3J3ZWlnaHQnLCAnLicpOwoJCSR0aG91c2FuZHNlcGVyYXRvciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aG91c2FuZHNlcGFyYXRvcndlaWdodCcsICcnKTsKCQlyZXR1cm4gbnVtYmVyX2Zvcm1hdCgkd2VpZ2h0LCAkZGVjaW1hbHBvc2l0aW9ucywgJGRlY2ltYWxzZXBlcmF0b3IsICR0aG91c2FuZHNlcGVyYXRvcik7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEhlYWRlckhUTUwoKQoJICAgVGhpcyBmdW5jdGlvbiBpbnNlcnRzIGphdmFzY3JpcHQgKGFuZCBsaW5rcykgaW50byBoZWFkZXIgb2YgSFRNTAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCgl7CgkJLy8gSW5jbHVkZSBzY3JpcHQgc28gc29ydGluZyBvZiB0YWJsZXMgaW4gYmFja2VuZCBpcyBwb3NzaWJsZQoJCSRqYXZhc2NyaXB0ID0gJzxzY3JpcHQgc3JjPSIvbW9kdWxlcy9TaW1wbGVTaG9wL2pzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanMiPjwvc2NyaXB0PicgLiAiXG4iOwoJCSRqYXZhc2NyaXB0IC49ICc8bGluayBocmVmPSIvbW9kdWxlcy9TaW1wbGVTaG9wL2Nzcy90aGVtZS5tZXRyby1kYXJrLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+JyAuICJcbiI7CgkJJGphdmFzY3JpcHQgLj0gJzxzY3JpcHQgaWQ9ImpzIj5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkKCQl7CgkJCWpRdWVyeSgiLnRhYmxlc29ydGVyIikKCQkJCS50YWJsZXNvcnRlcih7dGhlbWU6ICJtZXRyby1kYXJrIn0pOwoJCX0KCQkpOwoJCTwvc2NyaXB0Pic7CgoJCXJldHVybiAkamF2YXNjcmlwdDsKCX0KCglmdW5jdGlvbiBJbWFnZUFkZFRvQ2FydFNvdXJjZSgpCgl7CgkJJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoJCS8vIFByZXBhcmUgbGluayB3aXRoIGltYWdlIChGZWF0IFJlcSMzMzI0KQoJCXJldHVybiBjbXNfam9pbl9wYXRoKAoJCQkkY29uZmlnWydyb290X3VybCddLAoJCQknbW9kdWxlcycsCgkJCSR0aGlzLT5HZXROYW1lKCksCgkJCSdpbWFnZXMnLAoJCQknYWRkdG9jYXJ0LmdpZicKCQkpOwoJfQoKCWZ1bmN0aW9uIFJlYnVpbGRUaHVtYm5haWxzKCRzb3VyY2VkaXIsICR0eXBlID0gJ3Byb2R1Y3RzJykKCXsKCQkkaW1hZ2VzID0gYXJyYXkoKTsKCQkvLyBTZXQgcGF0dGVybgoJCSRwYXR0ZXJuID0gInRuXyoiOwoJCS8vIENoYW5nZSB0byBuYW1lZCBkaXJlY3RvcnkKCQljaGRpcigkc291cmNlZGlyKTsKCQkvLyBGaW5kIGZpbGVzIG1hdGNoaW5nIHBhdHRlcm4KCQkkaW1hZ2VzID0gZ2xvYigkcGF0dGVybik7CgkJLy8gSXRlcmF0ZSBvdmVyIGZpbGVzIGFycmF5IGFuZCBkZWxldGUgZXhpc3RpbmcgdGh1bWJuYWlscwoJCWZvcmVhY2ggKCRpbWFnZXMgYXMgJGYpIHsKCQkJdW5saW5rKCRmKTsKCQl9CgoJCS8vIFByZXBhcmUgYW4gYXJyYXkgd2l0aCB0aGUgYXZhaWxhYmxlIGltYWdlcwoJCSRwYXR0ZXJuID0gIioiOwoJCSRpbWFnZXMgPSBnbG9iKCRwYXR0ZXJuKTsKCQkkdGh1bWJ3aWR0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0bndpZHRoX3Byb2R1Y3QnLCAnMTAwJyk7CgkJJHRodW1iaGVpZ2h0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RuaGVpZ2h0X3Byb2R1Y3QnLCAnMTAwJyk7CgkJLy8gVXNlIG5leHQgaW1hZ2UgZm91bmQgaW4gbGlzdCBvZiBhdmFpbGFibGUgaW1hZ2VzIGFuZCBwcmVwYXJlIHRodW1ibmFpbAoJCWZvcmVhY2ggKCRpbWFnZXMgYXMgJGYpIHsKCQkJJHRoaXMtPkJ1aWxkVGh1bWIoJGYsICRzb3VyY2VkaXIsICR0aHVtYndpZHRoLCAkdGh1bWJoZWlnaHQpOwoJCX0KCgkJcmV0dXJuOwoJfQoKCS8vIEZ1bmN0aW9uIHRoYXQgaXMgdXNlZCBieSB0aGUgc2VhcmNoIG1vZHVsZQoJZnVuY3Rpb24gU2VhcmNoUmVzdWx0V2l0aFBhcmFtcygkcmV0dXJuaWQsICRwcm9kdWN0X2lkLCAkYXR0ciA9ICcnLCAkcGFybXMpCgl7CgkJJHJlc3VsdCA9IGFycmF5KCk7CgkJaWYgKCRhdHRyID09ICdwcm9kdWN0JykgewoJCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCQkkcSA9ICJTRUxFQ1QgbmFtZSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3Ntc19wcm9kdWN0cyBXSEVSRSBwcm9kdWN0X2lkID0gPyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcSwgYXJyYXkoJHByb2R1Y3RfaWQpKTsKCQkJaWYgKCRkYnJlc3VsdCkgewoJCQkJJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKCQkJCS8vIDAgcG9zaXRpb24gaXMgdGhlIHByZWZpeCBkaXNwbGF5ZWQgaW4gdGhlIGxpc3QgcmVzdWx0cy4KCQkJCSRyZXN1bHRbMF0gPSAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7CgoJCQkJLy8gMSBwb3NpdGlvbiBpcyB0aGUgdGl0bGUKCQkJCSRyZXN1bHRbMV0gPSAkcm93WyduYW1lJ107CgoKCQkJCS8vIFBhZ2UgdG8gdXNlIGZvciB0aGUgcHJvZHVjdC1kZXRhaWxzOgoJCQkJaWYgKGlzc2V0KCRwYXJtc1snZGV0YWlscGFnZSddKSkgewoJCQkJCSRtYW5hZ2VyID0gY21zbXMoKS0+R2V0SGllcmFyY2h5TWFuYWdlcigpOwoJCQkJCSRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcGFybXNbJ2RldGFpbHBhZ2UnXSk7CgkJCQkJaWYgKGlzc2V0KCRub2RlKSkgewoJCQkJCQkkZGV0YWlscGFnZSA9ICRub2RlLT5nZXRJRCgpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlJZCgkcGFybXNbJ2RldGFpbHBhZ2UnXSk7CgkJCQkJCWlmIChpc3NldCgkbm9kZSkpIHsKCQkJCQkJCSRkZXRhaWxwYWdlID0gJHBhcm1zWydkZXRhaWxwYWdlJ107CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlpZiAoIWlzc2V0KCRkZXRhaWxwYWdlKSB8fCAkZGV0YWlscGFnZSA9PSAnJykgJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CgoJCQkJJHRyYW5zID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdUcmFuc2xpdEFsaWFzJyk7CgoJCQkJaWYgKCR0cmFucykgewoJCQkJCSRhbGlhc2VkX3RpdGxlID0gJHRyYW5zLT5UcmFuc2xpdCgkcm93WyduYW1lJ10pOwoJCQkJfSBlbHNlIHsKCQkJCQkkYWxpYXNlZF90aXRsZSA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1snbmFtZSddKTsKCQkJCX0KCgkJCQkkcHJldHR5dXJsID0gJ1NpbXBsZVNob3AnIC4gJy9wcm9kLycgLiAkcHJvZHVjdF9pZCAuICcvJyAuICRkZXRhaWxwYWdlIC4gIi8kYWxpYXNlZF90aXRsZSI7CgoJCQkJLy8gMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KCQkJCSRwYXJtcyA9IGFycmF5KCk7CgkJCQkkcGFybXNbJ3Byb2R1Y3RfaWQnXSA9ICRwcm9kdWN0X2lkOwoKCQkJCSRyZXN1bHRbMl0gPSAkdGhpcy0+Q3JlYXRlTGluaygnY250bnQwMScsICdmZV9wcm9kdWN0X2RldGFpbCcsICRkZXRhaWxwYWdlLCAnJywgJHBhcm1zLCAnJywgdHJ1ZSwgZmFsc2UsICcnLCB0cnVlLCAkcHJldHR5dXJsKTsKCQkJfQoJCX0KCQlyZXR1cm4gJHJlc3VsdDsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJCVRoaXMgZnVuY3Rpb24gd2lsbCByZW1vdmUgYWxsIHRoZSBzZWFyY2ggaW5kZXggZW50cmllcyBvZiB0aGlzIG1vZHVsZQoJCWFuZCBhZnRlciByZWJ1aWxkIHRoZSBpbmRleAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgpCgl7CgoJCSRtb2RvcHMgPSBjbXNtcygpLT5HZXRNb2R1bGVPcGVyYXRpb25zKCk7CgkJJHNlYXJjaG1vZHVsZSA9ICRtb2RvcHMtPmdldF9tb2R1bGVfaW5zdGFuY2UoJ1NlYXJjaCcpOwoJCWlmICgkc2VhcmNobW9kdWxlICE9IEZBTFNFKSB7CgkJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgkJCS8vIEZpcnN0IHJlbW92ZSBhbGwgdGhlIHNlYXJjaCBpbmRleCBlbnRyaWVzCgkJCSRzZWFyY2htb2R1bGUtPkRlbGV0ZVdvcmRzKCR0aGlzLT5HZXROYW1lKCkpOwoJCQkvLyBBZGQgaW5kZXggZW50cmllcyBmb3IgdGhlIGFjdGl2ZSBwcm9kdWN0cwoJCQkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9zbXNfcHJvZHVjdHMKCQkJCVdIRVJFIGFjdGl2ZSA9IDEnOwoJCQkkZGJyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkJJHNlYXJjaG1vZHVsZS0+QWRkV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJHJvd1sncHJvZHVjdF9pZCddLCAncHJvZHVjdCcsICRyb3dbJ25hbWUnXSAuICcgJyAuICRyb3dbJ2Rlc2NyaXB0aW9uJ10pOwoJCQl9CgkJCS8vIEF0dHJpYnV0ZXMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgc2VhcmNoIHNpbmNlIHRoZXkgYXJlIG9ubHkgYXZhaWxhYmxlCgkJCS8vIHZpYSBwcm9kdWN0cyAodGhlcmUgZG9lc24ndCBleGlzdCBhIGF0dHJpYnV0ZSBkZXRhaWwgcGFnZSkKCQl9Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQlUaGlzIGZ1bmN0aW9uIGFsbG93IHJldHJpZXZhbCBmcm9tIHByZWZlcmVuY2VzIGZyb20gdGhpcyBtb2R1bGUKCQl3aGVuIG5lZWRlZCBpbiBhbm90aGVyIG1vZHVsZQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0U01TUHJlZmVyZW5jZSgkcHJlZmVyZW5jZSwgJGRlZmF1bHQgPSAnJykKCXsKCQlyZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJHByZWZlcmVuY2UsICRkZWZhdWx0KTsKCX0KCgkvKioKCSAqIENyZWF0ZSBhIG5ldyBmb2xkZXIuCgkgKiBAcGFyYW0gc3RyaW5nICRuZXdGb2xkZXIgc3BlY2lmaXkgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgbmV3IGZvbGRlci4KCSAqIEByZXR1cm4gYm9vbGVhbiB0cnVlIGlmIHRoZSBuZXcgZm9sZGVyIGlzIGNyZWF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KCSAqLwoJZnVuY3Rpb24gY3JlYXRlRm9sZGVyKCRuZXdGb2xkZXIpCgl7CgkJQG1rZGlyKCRuZXdGb2xkZXIsIDA3NzcpOwoJCXJldHVybiBjaG1vZCgkbmV3Rm9sZGVyLCAwNzc3KTsKCX0KCgkvKioKCSAqIERlbGV0ZSBhIGZpbGUuCgkgKiBAcGFyYW0gc3RyaW5nICRmaWxlIGZpbGUgdG8gYmUgZGVsZXRlZAoJICogQHJldHVybiBib29sZWFuIHRydWUgaWYgZGVsZXRlZCwgZmFsc2Ugb3RoZXJ3aXNlLgoJICovCglmdW5jdGlvbiBkZWxGaWxlKCRmaWxlKQoJewoJCWlmIChpc19maWxlKCRmaWxlKSkKCQkJcmV0dXJuIHVubGluaygkZmlsZSk7CgkJZWxzZQoJCQlyZXR1cm4gZmFsc2U7Cgl9CgoJLyoqCgkgKiBBcHBlbmQgYSAvIHRvIHRoZSBwYXRoIGlmIHJlcXVpcmVkLgoJICogQHBhcmFtIHN0cmluZyAkcGF0aCB0aGUgcGF0aAoJICogQHJldHVybiBzdHJpbmcgcGF0aCB3aXRoIHRyYWlsaW5nIC8KCSAqLwoJZnVuY3Rpb24gZml4UGF0aCgkcGF0aCkKCXsKCQkvL2FwcGVuZCBhIHNsYXNoIHRvIHRoZSBwYXRoIGlmIGl0IGRvZXNuJ3QgZXhpc3RzLgoJCWlmICghKHN1YnN0cigkcGF0aCwgLTEpID09ICcvJykpCgkJCSRwYXRoIC49ICcvJzsKCQlyZXR1cm4gJHBhdGg7Cgl9CgoKCS8qKgoJICogQ29weSBhIGZpbGUgZnJvbSBzb3VyY2UgdG8gZGVzdGluYXRpb24uIElmIHVuaXF1ZSA9PSB0cnVlLCB0aGVuIGlmCgkgKiB0aGUgZGVzdGluYXRpb24gZXhpc3RzLCBpdCB3aWxsIGJlIHJlbmFtZWQgYnkgYXBwZW5kaW5nIGFuIGluY3JlYW1lbnRpbmcKCSAqIGNvdW50aW5nIG51bWJlci4KCSAqIEBwYXJhbSBzdHJpbmcgJHNvdXJjZSB3aGVyZSB0aGUgZmlsZSBpcyBmcm9tLCBmdWxsIHBhdGggdG8gdGhlIGZpbGVzIHJlcXVpcmVkCgkgKiBAcGFyYW0gc3RyaW5nICRkZXN0aW5hdGlvbl9maWxlIG5hbWUgb2YgdGhlIG5ldyBmaWxlLCBqdXN0IHRoZSBmaWxlbmFtZQoJICogQHBhcmFtIHN0cmluZyAkZGVzdGluYXRpb25fZGlyIHdoZXJlIHRoZSBmaWxlcywganVzdCB0aGUgZGVzdGluYXRpb24gZGlyLAoJICogZS5nLiwgL3d3dy9odG1sL2dhbGxlcnkvCgkgKiBAcGFyYW0gYm9vbGVhbiAkdW5pcXVlIGNyZWF0ZSB1bmlxdWUgZGVzdGluYXRpb24gZmlsZSBpZiB0cnVlLgoJICogQHJldHVybiBzdHJpbmcgdGhlIG5ldyBjb3BpZWQgZmlsZW5hbWUsIGVsc2UgZXJyb3IgaWYgYW55dGhpbmcgZ29lcyBiYWQuCgkgKi8KCWZ1bmN0aW9uIGNvcHlGaWxlKCRzb3VyY2UsICRkZXN0aW5hdGlvbl9kaXIsICRkZXN0aW5hdGlvbl9maWxlLCAkdW5pcXVlID0gdHJ1ZSkKCXsKCQlpZiAoIShmaWxlX2V4aXN0cygkc291cmNlKSAmJiBpc19maWxlKCRzb3VyY2UpKSkKCQkJcmV0dXJuIGZhbHNlOwoKCQkkZGVzdGluYXRpb25fZGlyID0gJHRoaXMtPmZpeFBhdGgoJGRlc3RpbmF0aW9uX2Rpcik7CgoJCWlmICghaXNfZGlyKCRkZXN0aW5hdGlvbl9kaXIpKQoJCQlyZXR1cm4gZmFsc2U7CgoJCSRmaWxlbmFtZSA9ICRkZXN0aW5hdGlvbl9maWxlOwoKCQlpZiAoJHVuaXF1ZSkgewoJCQkkZG90SW5kZXggPSBzdHJycG9zKCRkZXN0aW5hdGlvbl9maWxlLCAnLicpOwoJCQkkZXh0ID0gJyc7CgkJCWlmIChpc19pbnQoJGRvdEluZGV4KSkgewoJCQkJJGV4dCA9IHN1YnN0cigkZGVzdGluYXRpb25fZmlsZSwgJGRvdEluZGV4KTsKCQkJCSRiYXNlID0gc3Vic3RyKCRkZXN0aW5hdGlvbl9maWxlLCAwLCAkZG90SW5kZXgpOwoJCQl9CgkJCSRjb3VudGVyID0gMDsKCQkJd2hpbGUgKGlzX2ZpbGUoJGRlc3RpbmF0aW9uX2RpciAuICRmaWxlbmFtZSkpIHsKCQkJCSRjb3VudGVyKys7CgkJCQkkZmlsZW5hbWUgPSAkYmFzZSAuICdfJyAuICRjb3VudGVyIC4gJGV4dDsKCQkJfQoJCX0KCgkJaWYgKCFjb3B5KCRzb3VyY2UsICRkZXN0aW5hdGlvbl9kaXIgLiAkZmlsZW5hbWUpKQoJCQlyZXR1cm4gZmFsc2U7CgoJCS8vdmVyaWZ5IHRoYXQgaXQgY29waWVkLCBuZXcgZmlsZSBtdXN0IGV4aXN0cwoJCWlmIChpc19maWxlKCRkZXN0aW5hdGlvbl9kaXIgLiAkZmlsZW5hbWUpKQoJCQlyZXR1cm4gJGZpbGVuYW1lOwoJCWVsc2UKCQkJcmV0dXJuIGZhbHNlOwoJfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/category_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JGNhdGVnb3J5LnN0YXJ0Zm9ybX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhdGVnb3J5LnBhcmVudF9pZC5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2F0ZWdvcnkucGFyZW50X2lkLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY2F0ZWdvcnkubmFtZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2F0ZWdvcnkubmFtZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhdGVnb3J5LmRlc2NyaXB0aW9uLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYXRlZ29yeS5kZXNjcmlwdGlvbi5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhdGVnb3J5LmltYWdlLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYXRlZ29yeS5pbWFnZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhdGVnb3J5LmFjdGl2ZS5sYWJlbH08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYXRlZ29yeS5hY3RpdmUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjYXRlZ29yeS5wb3NpdGlvbi5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2F0ZWdvcnkucG9zaXRpb24uaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgICAgICAge2lmIGlzc2V0KCRjYXRlZ29yeS5jYXRlZ29yeV9pZCkgJiYgaXNzZXQoJGNhdGVnb3J5LmN1cnJlbnRfY2F0ZWdvcnlfaWQpfQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2F0ZWdvcnkuY2F0ZWdvcnlfaWQuaW5wdXR9eyRjYXRlZ29yeS5jdXJyZW50X2NhdGVnb3J5X2lkLmlucHV0fQogICAgICAgIHsvaWZ9CiAgICAgICAge2lmIGlzc2V0KCRjYXRlZ29yeS5vbGRfaW1hZ2UpfXskY2F0ZWdvcnkub2xkX2ltYWdlLmlucHV0fXsvaWZ9CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYXRlZ29yeS5zdWJtaXR9eyRjYXRlZ29yeS5jYW5jZWx9PC9wPgogICAgPC9kaXY+CnskY2F0ZWdvcnkuZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/fe_categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRnJvbnQgRW5kOiBMaXN0IG9mIGFwZXggY2F0ZWdvcmllcyAqfQ0KPGRpdiBjbGFzcz0iY2F0bGlzdGhlYWRlciAiPg0KCXskbGFiZWxfY2F0ZWdvcmllc30NCjwvZGl2Pg0Ke2lmIGlzc2V0KCRpdGVtcyl9DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KICB7aWYgaXNzZXQoJGVudHJ5LT5pbWFnZSl9DQogICAgPGRpdiBjbGFzcz0iY2F0aW1hZ2V0aHVtYiI+DQogICAgICAge2ltYWdlIHNyYz0kZW50cnktPmltYWdlIGFsdD0kZW50cnktPmRlc2NyaXB0aW9ufHN0cmlwX3RhZ3N8ZXNjYXBlOidodG1sJyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCJ9Jm5ic3A7eyRlbnRyeS0+bmFtZX0NCiAgICA8L2Rpdj4NCiAge2Vsc2V9DQogICAgICAgIDxkaXYgY2xhc3M9ImNhdGxpc3RsaW5lIj4NCiAgICAgICAgICAgIHskZW50cnktPm5hbWV9DQogICAgICAgIDwvZGl2Pg0KICB7L2lmfQ0Key9mb3JlYWNofQ0Key9pZn0NCg0KeyogTmV3IGNhdGVnb3J5IGxpc3RpbmcgKn0NCntpZiBpc3NldCgkY2F0ZWdvcmllcyl9DQo8dGFibGUgd2lkdGg9MTAwJSBib3JkZXI9MD4NCntpZiBpc3NldCgkcHJvZHVjdHNfaW5fcm9vdF9jYXRlZ29yeSkgJiYgJHByb2R1Y3RzX2luX3Jvb3RfY2F0ZWdvcnkgIT0gMH0NCiA8dHI+DQogIDx0ZCBjb2xzcGFuPTI+eyRyb290Y2F0fSAoeyRwcm9kdWN0c19pbl9yb290X2NhdGVnb3J5fSk8L3RkPg0KIDwvdHI+DQp7L2lmfQ0Ke2ZvcmVhY2ggJGNhdGVnb3JpZXMgYXMgJGNhdGVnb3J5fQ0KIDx0cj4NCiAgPHRkPg0Ke2ZvciAkZm9vPTAgdG8gJGNhdGVnb3J5WydsZXZlbCddfSZuYnNwOyZuYnNwOyZuYnNwO3svZm9yfQ0Ke2lmIGlzc2V0KCRjYXRlZ29yeVsnbGluayddKX17JGNhdGVnb3J5WydsaW5rJ119e2Vsc2V9eyRjYXRlZ29yeVsnbmFtZSddfXsvaWZ9ICh7JGNhdGVnb3J5WydudW1fcHJvZHVjdHMnXX0pDQogIDwvdGQ+DQogPC90cj4NCnsvZm9yZWFjaH0NCjwvdGFibGU+DQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/fe_category_list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogTGlzdCBvZiBjYXRlZ29yeSBkYXRhICp9CntpZiBpc3NldCgkY2Fub25pY2FsKX17YXNzaWduIHZhcj0nY2Fub25pY2FsJyB2YWx1ZT0kY2Fub25pY2FsIHNjb3BlPSdnbG9iYWwnfXsvaWZ9Cgp7aWYgaXNzZXQoJGNhdGVnb3J5bmFtZSl9CjxoMiBjbGFzcz0iY2F0bGlzdGhlYWRlciI+eyRjYXRlZ29yeW5hbWV9PC9oMj4KPHRhYmxlIElEPSJjYXRpbmZvIj4KCTx0cj4KCQl7aWYgaXNzZXQoJGltYWdlKSAmJiAkaW1hZ2UgIT0gJypub25lJ30KICAgICAgICAgICAgICAgICAgICAgPHRkIElEPSJjYXRpbWFnZXRodW1iIj4KCQkJe2ltYWdlIHNyYz0kaW1hZ2Ugd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGFsdD0kZGVzY3JpcHRpb258c3RyaXBfdGFnc3xlc2NhcGU6J2h0bWwnfQogICAgICAgICAgICAgICAgICAgICA8L3RkPgoJCXsvaWZ9CgkJPHRkIGNsYXNzPSJjYXRkZXNjcmlwdGlvbiI+eyRkZXNjcmlwdGlvbn08L3RkPgoJPC90cj4KPC90YWJsZT4Key9pZn0KPGRpdiBjbGFzcz0icHJvZHVjdGxpc3QiPgo8ZGl2IElEPSJwcm9kdWN0Y291bnQiPnskbGFibGVfcHJvZHVjdF9jb3VudH08L2Rpdj4KPHRhYmxlPgoJe2ZvcmVhY2ggZnJvbT0kcHJvZHVjdHMgaXRlbT1lbnRyeX0KCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgogICAgICAgICAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGVudHJ5LT5wcm9kaW1hZ2UpfTx0ZCBjbGFzcz0iaW1nIj4KCQkJCXtpbWFnZSBzcmM9JGVudHJ5LT5wcm9kaW1hZ2UgYWx0PSRlbnRyeS0+aW1hZ2VkZXNjfTwvdGQ+CgkJCQl7KiBvciB1c2UgdGhlIGZvbGxvd2luZy4gVGhlIGltYWdlIGlzIHRoZW4gYSBsaW5rIHRvIHRoZSBkZXRhaWwgcGFnZQoJCQkJeyRlbnRyeS0+cHJvZGltYWdlbGlua308L3RkPgoJCQkJKn0KCQkJey9pZn0KCQkJPHRkIGNsYXNzPSJwcm9kdWN0bmFtZSI+eyRlbnRyeS0+cHJvZG5hbWV9PC90ZD4KCQkJeyogVXNlIHRoZSBmb2xsb3dpbmcgaWYgeW91IG9ubHkgd2FudCB0byBzaG93IHRoZSBuYW1lIG9mIHByb2R1Y3QgKG5vIGxpbmspOgoJCQk8dGQgY2xhc3M9InByb2R1Y3RuYW1lIj57JGVudHJ5LT5wcm9kbmFtZW5vbGlua308L3RkPgoJCQkqfQoJCQk8dGQgY2xhc3M9InByb2R1Y3RkZXNjIj57JGVudHJ5LT5wcm9kZGVzY3x0cnVuY2F0ZX08L3RkPgoJCQk8dGQgY2xhc3M9InByb2R1Y3RwcmljZSI+eyRlbnRyeS0+cHJpY2V9IHskY3VyX3N5bWJvbH08L3RkPgoJCQk8dGQ+e2lmIGlzc2V0KCRlbnRyeS0+YWRkcHJvZHVjdCl9eyRlbnRyeS0+YWRkcHJvZHVjdH17L2lmfTwvdGQ+CgkJCXsqIHVzZSA8dGQ+eyRlbnRyeS0+YWRkcHJvZHVjdGltYWdlfTwvdGQ+IGlmIHlvdSB3YW50IGFuIGltYWdlIGFzIHRoZSBhZGQgdG8gY2FydCBsaW5rICp9CgoJCTwvdHI+Cgl7L2ZvcmVhY2h9CjwvdGFibGU+CntpZiAkcGFnZWNvdW50ID4gMX0KCXskZmlyc3RwYWdlfSB7JHByZXZwYWdlfSB7JHBhZ2V0ZXh0fTogeyRwYWdlbnVtYmVyfSB7JG9mdGV4dH06IHskcGFnZWNvdW50fSB7JG5leHRwYWdlfSB7JGxhc3RwYWdlfQp7L2lmfQo8cD48c3BhbiBjbGFzcz0nYmFjayc+JiM4NTkyOyA8YSBocmVmPSIjIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3JldHVybicpfSIgb25jbGljaz0iaGlzdG9yeS5iYWNrKCkiPnskbW9kLT5MYW5nKCdyZXR1cm4nKX08L2E+PC9zcGFuPjwvcD4KPGRpdiBJRD0icHJvZHVjdHByaWNlc2luIj57JGN1cnJlbmN5fTwvZGl2Pgo8L2Rpdj4KeyogQSB2ZXJ5IGRpZmZlcmVudCBzZXR1cCB0aGF0IGFsbG93cyBzaG93aW5nIHByb2R1Y3RzIGluIG11bHRpcGxlIGNvbHVtbnMKe2Fzc2lnbiB2YXI9Im51bUNvbHMiIHZhbHVlPSIzIn0KPHRhYmxlIGNsYXNzPSJwcm9kdGFibGUiPgogICAgPHRyPgogICAge2Fzc2lnbiB2YXI9ImNvbCIgdmFsdWU9IjAifQogICAge3NlY3Rpb24gbmFtZT1lbGVtZW50IGxvb3A9JHByb2R1Y3RzfQogICAgICAgIHtpZiAkY29sID09ICRudW1Db2xzfQogICAgICAgICAgICA8L3RyPjx0cj57YXNzaWduIHZhcj0iY29sIiB2YWx1ZT0iMCJ9CiAgICAgICAgey9pZn0KICAgICAgICA8dGQgY2xhc3M9InByb2Rib3giPgoJe2lmIGlzc2V0KCRwcm9kaW1hZ2UpICYmICFlbXB0eSgkcHJvZGltYWdlKX08ZGl2IGNsYXNzPSJjYXRsaXN0aW1nIj4KCXtpbWFnZSBzcmM9JHByb2R1Y3RzW2VsZW1lbnRdLT5wcm9kaW1hZ2UgYWx0PSRwcm9kdWN0c1tlbGVtZW50XS0+cHJvZGRlc2N9PC9kaXY+ey9pZn0KPGRpdiBjbGFzcz0icHJvZG5hbWUiPnskcHJvZHVjdHNbZWxlbWVudF0tPnByb2RuYW1lfTwvZGl2PgomZXVybzsmbmJzcDt7JHByb2R1Y3RzW2VsZW1lbnRdLT5wcmljZX0mbmJzcDs8ZGl2IGNsYXNzPSJwcm9kdWN0MmNhcnQiPnskZW50cnktPmFkZHByb2R1Y3RpbWFnZX08L2Rpdj48L3RkPgogICAgICAgIHthc3NpZ24gdmFyPSJjb2wiIHZhbHVlPSJgJGNvbCsxYCJ9CiAgICB7L3NlY3Rpb259CiAgICB7YXNzaWduIHZhcj0icmVtYWluZGVyIiB2YWx1ZT0iYCRudW1Db2xzLSRjb2xgIn0KICAgIHtzZWN0aW9uIG5hbWU9ZW1wdHlFbGVtZW50IGxvb3A9JHJlbWFpbmRlcn0KICAgICAgICA8dGQ+Jm5ic3A7PC90ZD4KICAgIHsvc2VjdGlvbn0KICAgIDwvdHI+CjwvdGFibGU+Cip9]]></data>
	</file>
	<file>
	  <filename>/templates/fe_products_featured.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogTGlzdCBvZiBmZWF0dXJlZCBwcm9kdWN0cyAqfQo8ZGl2IGNsYXNzPSJwcm9kdWN0bGlzdCI+CjxkaXYgSUQ9InByb2R1Y3Rjb3VudCI+eyRsYWJsZV9wcm9kdWN0X2NvdW50fTwvZGl2Pgo8dGFibGU+Cgl7Zm9yZWFjaCBmcm9tPSRwcm9kdWN0cyBpdGVtPWZlYXRlbnRyeX0KCQk8dHIgY2xhc3M9InskZmVhdGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRmZWF0ZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGZlYXRlbnRyeS0+cm93Y2xhc3N9JzsiPgogICAgICAgICAgICAgICAgICAgICAgICB7aWYgKCRmZWF0ZW50cnktPnByb2RpbWFnZSl9PHRkIGNsYXNzPSJpbWciPgoJCQkJe2ltYWdlIHNyYz0kZmVhdGVudHJ5LT5wcm9kaW1hZ2UgYWx0PSRmZWF0ZW50cnktPnByb2RkZXNjfHN0cmlwX3RhZ3N8ZXNjYXBlOidodG1sJ3x0cnVuY2F0ZX08L3RkPgoJCQl7L2lmfQoJCQk8dGQgY2xhc3M9InByb2R1Y3RuYW1lIj57JGZlYXRlbnRyeS0+cHJvZG5hbWV9PC90ZD4KCQkJPHRkIGNsYXNzPSJwcm9kdWN0ZGVzYyI+eyRmZWF0ZW50cnktPnByb2RkZXNjfHRydW5jYXRlfTwvdGQ+CgkJCTx0ZCBjbGFzcz0icHJvZHVjdHByaWNlIj57JGZlYXRlbnRyeS0+cHJpY2V9PC90ZD4KCQkJPHRkPntpZiBpc3NldCgkZmVhdGVudHJ5LT5hZGRwcm9kdWN0KX17JGZlYXRlbnRyeS0+YWRkcHJvZHVjdH17L2lmfTwvdGQ+CgkJPC90cj4KCXsvZm9yZWFjaH0KPC90YWJsZT4Ke2lmICRwYWdlY291bnQgPiAxfQoJeyRmaXJzdHBhZ2V9IHskcHJldnBhZ2V9IHskcGFnZXRleHR9OiB7JHBhZ2VudW1iZXJ9IHskb2Z0ZXh0fTogeyRwYWdlY291bnR9IHskbmV4dHBhZ2V9IHskbGFzdHBhZ2V9CnsvaWZ9CjxkaXYgSUQ9InByb2R1Y3RwcmljZXNpbiI+eyRjdXJyZW5jeX08L2Rpdj4KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/fe_product_detail.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogTGlzdCBvZiBwcm9kdWN0IGRhdGEgKn0Ke2lmIGlzc2V0KCRjYW5vbmljYWwpfXthc3NpZ24gdmFyPSdjYW5vbmljYWwnIHZhbHVlPSRjYW5vbmljYWwgc2NvcGU9J2dsb2JhbCd9ey9pZn0KCjxoMiBJRD0icHJvZHVjdGhlYWRlciI+eyRwcm9kdWN0bmFtZX08L2gyPgo8cD5TS1U6IHskaXRlbW51bWJlcn08cD4KCjx0YWJsZSBpZD0icHJvZHVjdHRhYmxlIj4KPHRyPgo8dGQ+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9Cjx0YWJsZSBJRD0iY2F0aW5mbyI+Cjx0cj4KPHRkPgogPGltZyBuYW1lPSJpdGVtX2ltYWdlIiBpZD0iaXRlbV9pbWFnZSIgc3JjPSJ7JHBpbWFnZX0iIHRpdGxlPSJ7JGltYWdlZGVzY3xzdHJpcF90YWdzfGVzY2FwZTonaHRtbCd8dHJ1bmNhdGV9Ij4KIDxkaXYgY2xhc3M9IlByb2RUaHVtYm5haWxzIj4KICB7c2VjdGlvbiBuYW1lPWluZCBsb29wPSRlbnRyeWFycmF5fQogICA8YSBocmVmPSJqYXZhc2NyaXB0OnJlcGwoJ3skaXRlbXN9JywneyRpbWFnZWRlc2N9JykiPntpbWFnZSBzcmM9JGVudHJ5YXJyYXlbaW5kXS0+aW1hZ2V0aHVtYiBhbHQ9JGVudHJ5YXJyYXlbaW5kXS0+aW1hZ2VkZXNjfHN0cmlwX3RhZ3N8ZXNjYXBlOidodG1sJ3x0cnVuY2F0ZX08L2E+CiAgey9zZWN0aW9ufQo8YnI+CntpZiAkaXRlbWNvdW50ID4gMX0KIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CiAgPGEgaHJlZj0iamF2YXNjcmlwdDpyZXBsKCd7JGVudHJ5LT5mdWxscGF0aGltYWdlfScsJ3skZW50cnktPmltYWdlZGVzY3xzdHJpcF90YWdzfGVzY2FwZTonaHRtbCd8dHJ1bmNhdGV9JykiPntpbWFnZSBzcmM9JGVudHJ5LT5pbWFnZXRodW1iICBhbHQ9JGVudHJ5LT5pbWFnZWRlc2N8c3RyaXBfdGFnc3xlc2NhcGU6J2h0bWwnfHRydW5jYXRlfTwvYT4mbmJzcDsKIHsvZm9yZWFjaH0KIHsvaWZ9CiA8L2Rpdj4KPC90ZD4KPC90cj4KPC90YWJsZT4Key9pZn0KPC90ZD4KPHRkPgp7JGRlc2NyaXB0aW9ufQo8cD57JG1vZC0+TGFuZygnbGFiZWxfcHJvZHVjdF9uZXR3ZWlnaHQnKX06IHskbmV0d2VpZ2h0fTwvcD4KCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+eyRjdXJfc3ltYm9sfSZuYnNwO3skcHJpY2V9PC90ZD4KICAgICAgICAgICAgPHRkPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgIDx0ZD57aWYgaXNzZXQoJGFkZHByb2R1Y3QpfXskYWRkcHJvZHVjdH17L2lmfTwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+CjwvdGFibGU+Cjxicj4Ke2lmIGlzc2V0KCRhdHRyaWJ1dGVzLml0ZW1jb3VudCkgJiYgJGF0dHJpYnV0ZXMuaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icHJvZHVjdGF0dHIiPgogPHRoZWFkPgogIDx0cj4KICAgPHRoPnskYXR0cmlidXRlcy5uYW1lY29sdW1ufTwvdGg+CiAgIDx0aD57JGF0dHJpYnV0ZXMuZGVzY3JpcHRpb25jb2x1bW59PC90aD4KICAgPHRoPnskYXR0cmlidXRlcy5wcmljZWNvbHVtbn08L3RoPgogICA8dGg+eyRhdHRyaWJ1dGVzLmFkZGF0dHJpYnV0ZWNvbHVtbn08L3RoPgogIDwvdHI+CiA8L3RoZWFkPgogPHRib2R5PgogICB7Zm9yZWFjaCBmcm9tPSRhdHRyaWJ1dGVzLmxpc3QgaXRlbT1lbnRyeX0KICAgIDx0cj4KICAgICA8dGQ+eyRlbnRyeS5uYW1lfTwvdGQ+CiAgICAgPHRkPnskZW50cnkuZGVzY3JpcHRpb259PC90ZD4KICAgICA8dGQ+e2lmICRlbnRyeS5kaXNwbGF5b25seX0mbmJzcDt7ZWxzZX17JGVudHJ5LnByaWNlfXsvaWZ9PC90ZD4KICAgICA8dGQ+e2lmIGlzc2V0KCRlbnRyeS5hZGRhdHRyaWJ1dGUpfXskZW50cnkuYWRkYXR0cmlidXRlfXsvaWZ9PC90ZD4KICAgIDwvdHI+CiAgIHsvZm9yZWFjaH0KIDwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD48c3BhbiBjbGFzcz0nYmFjayc+JiM4NTkyOyA8YSBocmVmPSIjIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3JldHVybicpfSIgb25jbGljaz0iaGlzdG9yeS5iYWNrKCkiPnskbW9kLT5MYW5nKCdyZXR1cm4nKX08L2E+PC9zcGFuPjwvcD4KPHNjcmlwdD4KZnVuY3Rpb24gcmVwbChpbWcsIHRpdGxlKQogICB7CiAgIGRvY3VtZW50Lml0ZW1faW1hZ2Uuc3JjPWltZzsKICAgZG9jdW1lbnQuaXRlbV9pbWFnZS50aXRsZT10aXRsZTsKICAgfQo8L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/templates/product_add.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+ey9pZn0KeyRwcm9kdWN0LnN0YXJ0Zm9ybX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuY2F0ZWdvcnlfaWQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuY2F0ZWdvcnlfaWQuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0Lm5hbWUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QubmFtZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuZGVzY3JpcHRpb24ubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuZGVzY3JpcHRpb24uaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LnByaWNlLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LnByaWNlLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5hY3RpdmUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuYWN0aXZlLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5mZWF0dXJlZC5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5mZWF0dXJlZC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QubmV0d2VpZ2h0LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0Lm5ldHdlaWdodC5pbnB1dH0mbmJzcDt7JHByb2R1Y3QubmV0d2VpZ2h0LnVuaXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LnZhdGNvZGUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QudmF0Y29kZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3Quc2t1LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LnNrdS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuaXRlbW51bWJlci5sYWJlbH06PC9wPgoJCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0Lml0ZW1udW1iZXIuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LnBvc2l0aW9uLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LnBvc2l0aW9uLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5tYXhhdHRyaWJ1dGVzLmxhYmVsfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5tYXhhdHRyaWJ1dGVzLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAge2lmICREVElhdmFpbGFibGV9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuY29zdF9wcmljZS5sYWJlbH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuY29zdF9wcmljZS5pbnB1dH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuYmFyY29kZS5sYWJlbH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuYmFyY29kZS5pbnB1dH08L3A+CgkJPC9kaXY+CgkJe2lmICREVEludmVudG9yeXZlcnNpb24gIT0gJ2ZyZWUnfQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QuaXRlbV9jbGFzcy5sYWJlbH06PC9wPgoJCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0Lml0ZW1fY2xhc3MuaW5wdXR9PC9wPgoJCQk8L2Rpdj4KCQl7L2lmfQogICAgey9pZn0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LnN1Ym1pdH17JHByb2R1Y3QuY2FuY2VsfQoJCQkJe2lmIGlzc2V0KCRwcm9kdWN0LnByb2R1Y3RfaWQpfXskcHJvZHVjdC5wcm9kdWN0X2lkLmlucHV0fXsvaWZ9eyRwcm9kdWN0LmN1cnJlbnRfY2F0ZWdvcnlfaWQuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICB7aWYgaXNzZXQoJHByb2R1Y3QuY2F0ZWdvcmllcyl9CiAgICB7Zm9yZWFjaCBmcm9tPSRwcm9kdWN0LmNhdGVnb3JpZXMubGlzdCBpdGVtPWVudHJ5fQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnkubGFiZWx9PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnkuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICB7L2ZvcmVhY2h9CgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QuY2F0ZWdvcmllcy5zdWJtaXR9PC9wPgogICAgPC9kaXY+CiAgICAgey9pZn0KICAgICB7aWYgaXNzZXQoJHByb2R1Y3QuYXR0cmlidXRlcyl9CiAgICB7Zm9yZWFjaCBmcm9tPSRwcm9kdWN0LmF0dHJpYnV0ZXMubGlzdCBpdGVtPWVudHJ5fQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnkubGFiZWx9PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnkuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICB7L2ZvcmVhY2h9CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5hdHRyaWJ1dGVzLnN1Ym1pdH08L3A+CiAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgICB7aWYgaXNzZXQoJHByb2R1Y3QuaW1hZ2VzKX0KICAgIHtmb3JlYWNoIGZyb209JHByb2R1Y3QuaW1hZ2VzLmxpc3QgaXRlbT1lbnRyeX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48aW1nIHNyYz0iL3VwbG9hZHMvaW1hZ2VzL3Byb2R1Y3RzL3skZW50cnkuaW1hZ2V9Ij48L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS5kZXNjcmlwdGlvbn08L3A+CiAgICA8L2Rpdj4KICAgIHsvZm9yZWFjaH0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LmltYWdlcy5zdWJtaXR9PC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQp7JHByb2R1Y3QuZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/product_attributes.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRhdHRyaWJ1dGVzLm1lc3NhZ2UpIH08cCBzdHlsZT0iY29sb3I6cmVkOyI+eyRhdHRyaWJ1dGVzLm1lc3NhZ2V9PC9wPnsvaWZ9DQp7JGF0dHJpYnV0ZXMuc3RhcnRmb3JtfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGVzLnByb2RuYW1lLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCIgc3R5bGU9IndpZHRoOiA1MGVtOyI+eyRhdHRyaWJ1dGVzLnByb2RuYW1lLm91dHB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZXMubmFtZS5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZXMubmFtZS5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZXMuZGVzY3JpcHRpb24ubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdHRyaWJ1dGVzLmRlc2NyaXB0aW9uLmlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXR0cmlidXRlcy5wcmljZWFkanVzdHR5cGUubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdHRyaWJ1dGVzLnByaWNlYWRqdXN0dHlwZS5pbnB1dH0mbmJzcDsNCgkJCXskYXR0cmlidXRlcy5wcmljZWFkanVzdG1lbnQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGVzLm1pbmFsbG93ZWQubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdHRyaWJ1dGVzLm1pbmFsbG93ZWQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGVzLm1heGFsbG93ZWQubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdHRyaWJ1dGVzLm1heGFsbG93ZWQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGVzLmRpc3BsYXlvbmx5LmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlcy5kaXNwbGF5b25seS5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZXMuaXRlbW51bWJlci5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZXMuaXRlbW51bWJlci5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZXMuYWN0aXZlLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlcy5hY3RpdmUuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCSAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZXMuc3VibWl0fXskYXR0cmlidXRlcy5jYW5jZWx9eyRwcm9kdWN0LmFkZF9uZXd9DQoJCQkJeyRwcm9kdWN0LnByb2R1Y3RfaWQuaW5wdXR9eyRwcm9kdWN0LmN1cnJlbnRfY2F0ZWdvcnlfaWQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KDQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KICAgIDx0aGVhZD4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRoPnskYXR0cmlidXRlcy5uYW1lY29sdW1ufTwvdGg+DQogICAgICAgICAgICA8dGg+eyRhdHRyaWJ1dGVzLmRlc2NyaXB0aW9uY29sdW1ufTwvdGg+DQogICAgICAgICAgICA8dGg+eyRhdHRyaWJ1dGVzLmFkanVzdG1lbnRjb2x1bW59PC90aD4NCiAgICAgICAgICAgIDx0aD57JGF0dHJpYnV0ZXMucHJpY2Vjb2x1bW59PC90aD4NCiAgICAgICAgICAgIDx0aD57JGF0dHJpYnV0ZXMuZGlzcGxheWNvbHVtbn08L3RoPg0KICAgICAgICAgICAgPHRoPnskYXR0cmlidXRlcy5taW5hbGxvd2VkY29sdW1ufTwvdGg+DQogICAgICAgICAgICA8dGg+eyRhdHRyaWJ1dGVzLm1heGFsbG93ZWRjb2x1bW59PC90aD4NCiAgICAgICAgICAgIDx0aD57JGF0dHJpYnV0ZXMuaXRlbW51bWJlcmNvbHVtbn08L3RoPg0KICAgICAgICAgICAgPHRoPnskYXR0cmlidXRlcy5hY3RpdmVjb2x1bW59PC90aD4NCiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICA8L3RyPg0KICAgIDwvdGhlYWQ+DQogICAgPHRib2R5Pg0KCXtpZiAkYXR0cmlidXRlcy5pdGVtY291bnQgPiAwfQ0KCQl7Zm9yZWFjaCBmcm9tPSRhdHRyaWJ1dGVzLmxpc3QgaXRlbT1lbnRyeX0NCgkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIifSI+DQoJCQk8dGQ+eyRlbnRyeS5uYW1lfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS5kZXNjcmlwdGlvbn08L3RkPg0KCQkJPHRkPnskZW50cnkuYWRqdXN0bWVudH08L3RkPg0KCQkJPHRkPnskZW50cnkucHJpY2V9PC90ZD4NCgkJCTx0ZCBjbGFzcz0icGFnZWljb24iPnskZW50cnkubGlua19kaXNwbGF5fTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS5taW5hbGxvd2VkfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS5tYXhhbGxvd2VkfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS5pdGVtbnVtYmVyfTwvdGQ+DQoJCQk8dGQgY2xhc3M9InBhZ2VpY29uIj57JGVudHJ5LmxpbmtfZW5hYmxlfTwvdGQ+DQoJCQk8dGQgY2xhc3M9InBhZ2VpY29uIj57JGVudHJ5LmxpbmtfZWRpdH08L3RkPg0KCQkJPHRkIGNsYXNzPSJwYWdlaWNvbiI+eyRlbnRyeS5saW5rX2RlbGV0ZX08L3RkPg0KCQk8L3RyPg0KCSAgICAgICAgey9mb3JlYWNofQ0KCXtlbHNlfQ0KCQk8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4NCgkJCTx0ZCBjb2xzcGFuPSc1JyBhbGlnbj0nY2VudGVyJz57JGF0dHJpYnV0ZXMubm9fYXR0cmlidXRlc19hdmFpbGFibGV9PC90ZD4NCgkJPC90cj4NCgl7L2lmfQ0KICAgIDwvdGJvZHk+DQo8L3RhYmxlPg0KeyRhdHRyaWJ1dGVzLmVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/product_attribute_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRhdHRyaWJ1dGUubWVzc2FnZSkgfTxwIHN0eWxlPSJjb2xvcjpyZWQ7Ij57JGF0dHJpYnV0ZS5tZXNzYWdlfTwvcD57L2lmfQ0KeyRhdHRyaWJ1dGUuc3RhcnRmb3JtfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGUucHJvZG5hbWUubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZS5wcm9kbmFtZS5vdXRwdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGUubmFtZS5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZS5uYW1lLmlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXR0cmlidXRlLmRlc2NyaXB0aW9uLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlLmRlc2NyaXB0aW9uLmlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXR0cmlidXRlLnByaWNlYWRqdXN0dHlwZS5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZS5wcmljZWFkanVzdHR5cGUuaW5wdXR9Jm5ic3A7DQoJCQl7JGF0dHJpYnV0ZS5wcmljZWFkanVzdG1lbnQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGUubWluYWxsb3dlZC5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZS5taW5hbGxvd2VkLmlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYXR0cmlidXRlLm1heGFsbG93ZWQubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdHRyaWJ1dGUubWF4YWxsb3dlZC5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZS5kaXNwbGF5b25seS5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF0dHJpYnV0ZS5kaXNwbGF5b25seS5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF0dHJpYnV0ZS5pdGVtbnVtYmVyLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlLml0ZW1udW1iZXIuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdHRyaWJ1dGUuYWN0aXZlLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlLmFjdGl2ZS5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXR0cmlidXRlLnN1Ym1pdH17JGF0dHJpYnV0ZS5jYW5jZWx9DQoJCQl7JGF0dHJpYnV0ZS5wcm9kdWN0X2lkLmlucHV0fQ0KCQkJeyRhdHRyaWJ1dGUuY3VycmVudF9jYXRlZ29yeV9pZC5pbnB1dH0NCgkJCXskYXR0cmlidXRlLmF0dHJpYnV0ZV9pZC5pbnB1dH08L3A+DQoJPC9kaXY+DQp7JGF0dHJpYnV0ZS5lbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/product_categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+ey9pZn0KeyRjYXRlZ29yaWVzLnN0YXJ0Zm9ybX0KICAgIHtmb3JlYWNoIGZyb209JGNhdGVnb3JpZXMubGlzdCBpdGVtPWVudHJ5fQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnkubmFtZX08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRlbnRyeS5saW5rX2RlbGV0ZX08L3A+CiAgICA8L2Rpdj4KICAgIHtmb3JlYWNoZWxzZX0KICAgICAgTm8gQ2F0ZWdvcmllcwogICAgey9mb3JlYWNofQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY2F0ZWdvcmllcy5jYXRlZ29yaWVzLmxhYmVsfSB7JGNhdGVnb3JpZXMuY2F0ZWdvcmllcy5saXN0fTwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNhdGVnb3JpZXMuY2F0ZWdvcmllcy5zdWJtaXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5wcm9kdWN0X2lkLmlucHV0fXskcHJvZHVjdC5jdXJyZW50X2NhdGVnb3J5X2lkLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNhdGVnb3JpZXMuY2FuY2VsfXskcHJvZHVjdC5hZGRfbmV3fTwvcD4KICAgIDwvZGl2Pgp7JGNhdGVnb3JpZXMuZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/product_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+ey9pZn0KeyRwcm9kdWN0LnN0YXJ0Zm9ybX0KPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LnN1Ym1pdH17JHByb2R1Y3QuY2FuY2VsfXskcHJvZHVjdC5hZGRfbmV3fTwvcD4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QubmFtZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5uYW1lLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5kZXNjcmlwdGlvbi5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5kZXNjcmlwdGlvbi5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QucHJpY2UubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QucHJpY2UuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LmFjdGl2ZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5hY3RpdmUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LmZlYXR1cmVkLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LmZlYXR1cmVkLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5uZXR3ZWlnaHQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QubmV0d2VpZ2h0LmlucHV0fSZuYnNwO3skcHJvZHVjdC5uZXR3ZWlnaHQudW5pdH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QudmF0Y29kZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC52YXRjb2RlLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5za3UubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3Quc2t1LmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5pdGVtbnVtYmVyLmxhYmVsfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5pdGVtbnVtYmVyLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvZHVjdC5wb3NpdGlvbi5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5wb3NpdGlvbi5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb2R1Y3QubWF4YXR0cmlidXRlcy5sYWJlbH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QubWF4YXR0cmlidXRlcy5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIHtpZiAkRFRJYXZhaWxhYmxlfQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LmNvc3RfcHJpY2UubGFiZWx9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LmNvc3RfcHJpY2UuaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0LmJhcmNvZGUubGFiZWx9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcm9kdWN0LmJhcmNvZGUuaW5wdXR9PC9wPgoJCTwvZGl2PgoJCXtpZiAkRFRJbnZlbnRvcnl2ZXJzaW9uICE9ICdmcmVlJ30KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9kdWN0Lml0ZW1fY2xhc3MubGFiZWx9OjwvcD4KCQkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5pdGVtX2NsYXNzLmlucHV0fTwvcD4KCQkJPC9kaXY+CgkJey9pZn0KICAgIHsvaWZ9CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJvZHVjdC5zdWJtaXR9eyRwcm9kdWN0LmNhbmNlbH17JHByb2R1Y3QuYWRkX25ld30KCQkJCXskcHJvZHVjdC5wcm9kdWN0X2lkLmlucHV0fXskcHJvZHVjdC5jdXJyZW50X2NhdGVnb3J5X2lkLmlucHV0fTwvcD4KICAgIDwvZGl2Pgp7JHByb2R1Y3QuZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/product_images.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRpbWFnZXMubWVzc2FnZSkgfTxwIHN0eWxlPSJjb2xvcjpyZWQ7Ij57JGltYWdlcy5tZXNzYWdlfTwvcD57L2lmfQp7JGltYWdlcy5zdGFydGZvcm19CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskaW1hZ2VzLm5hbWUubGFiZWx9OjwvcD4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZXMubmFtZS5vdXRwdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZXMuaW1hZ2UubGFiZWx9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW1hZ2VzLmltYWdlLmlucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskaW1hZ2VzLmRlc2NyaXB0aW9uLmxhYmVsfTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGltYWdlcy5kZXNjcmlwdGlvbi5pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb2R1Y3QucHJvZHVjdF9pZC5pbnB1dH17JHByb2R1Y3QuY3VycmVudF9jYXRlZ29yeV9pZC5pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGltYWdlcy5zdWJtaXR9eyRpbWFnZXMuY2FuY2VsfXskcHJvZHVjdC5hZGRfbmV3fTwvcD4KPC9kaXY+Cgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRoPiZuYnNwOzwvdGg+CiAgICAgICAgICAgIDx0aD57JGltYWdlcy5uYW1lY29sdW1ufTwvdGg+CiAgICAgICAgICAgIDx0aD57JGltYWdlcy5kZXNjcmlwdGlvbmNvbHVtbn08L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICAgIDwvdHI+CiAgICA8L3RoZWFkPgogICAgPHRib2R5PgoJe2lmICRpbWFnZXMuaXRlbWNvdW50ID4gMH0KCQl7Zm9yZWFjaCBmcm9tPSRpbWFnZXMubGlzdCBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPgoJCQk8dGQ+PGltZyBzcmM9InskZW50cnkucHJvZHVjdGltYWdlfSIgaGVpZ2h0PSJ7JGVudHJ5LmltYWdlaGVpZ2h0fSI+PC90ZD4KCQkJPHRkPnskZW50cnkuaW1hZ2V9PC90ZD4KCQkJPHRkPnskZW50cnkuZGVzY3JpcHRpb259PC90ZD4KCQkJPHRkIGNsYXNzPSJwYWdlaWNvbiI+eyRlbnRyeS5saW5rX2VkaXR9PC90ZD4KCQkJPHRkIGNsYXNzPSJwYWdlaWNvbiI+eyRlbnRyeS5saW5rX2RlbGV0ZX08L3RkPgoJCTwvdHI+CgkgICAgICAgIHsvZm9yZWFjaH0KCXtlbHNlfQoJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPgoJCQk8dGQgY29sc3Bhbj0nNScgYWxpZ249J2NlbnRlcic+eyRpbWFnZXMubm9faW1hZ2VzX2F2YWlsYWJsZX08L3RkPgoJCTwvdHI+Cgl7L2lmfQogICAgPC90Ym9keT4KPC90YWJsZT4KeyRpbWFnZXMuZW5kZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/templates/product_image_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRpbWFnZS5tZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskaW1hZ2UubWVzc2FnZX08L3A+ey9pZn0NCnskaW1hZ2Uuc3RhcnRmb3JtfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZS5uYW1lLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZS5uYW1lLm91dHB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGltYWdlLmRlc2NyaXB0aW9uLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW1hZ2UuZGVzY3JpcHRpb24uaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCXskaW1hZ2UucHJvZHVjdF9pZC5pbnB1dH0NCgkJCXskaW1hZ2UuY3VycmVudF9jYXRlZ29yeV9pZC5pbnB1dH0NCgkJCXskaW1hZ2UucHJvZHVjdF9pbWFnZXNfaWQuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGltYWdlLnN1Ym1pdH17JGltYWdlLmNhbmNlbH08L3A+DQoJPC9kaXY+DQp7JGltYWdlLmVuZGZvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/sitemap.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVybHNldCB4bWxucz0iaHR0cDovL3d3dy5zaXRlbWFwcy5vcmcvc2NoZW1hcy9zaXRlbWFwLzAuOSI+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cjx1cmw+CiAgPGxvYz57JGVudHJ5LT5kZXRhaWxfdXJsfTwvbG9jPgogIDxsYXN0bW9kPnskc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJVktJW0tJWQnfTwvbGFzdG1vZD4KICA8Y2hhbmdlZnJlcT53ZWVrbHk8L2NoYW5nZWZyZXE+CiAgPHByaW9yaXR5PjAuNjwvcHJpb3JpdHk+CjwvdXJsPnsvZm9yZWFjaH0KPC91cmxzZXQ+]]></data>
	</file>
	<file>
	  <filename>/templates/sku_add.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+ey9pZn0NCnskc2t1LnN0YXJ0Zm9ybX0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskc2t1LnNrdS5sYWJlbH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNrdS5za3UuaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRza3UuZGVzY3JpcHRpb24ubGFiZWx9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRza3UuZGVzY3JpcHRpb24uaW5wdXR9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNrdS5zdWJtaXR9PC9wPg0KICAgIDwvZGl2Pg0KeyRza3UuZW5kZm9ybX0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/sku_edit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+ey9pZn0NCnskc2t1LnN0YXJ0Zm9ybX0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskc2t1Lm5hbWUubGFiZWx9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRza3UubmFtZS5pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNrdS5kZXNjcmlwdGlvbi5sYWJlbH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNrdS5kZXNjcmlwdGlvbi5pbnB1dH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2t1LnN1Ym1pdH17JHNrdS5jYW5jZWx9eyRza3Uuc2t1LmlucHV0fTwvcD4NCiAgICA8L2Rpdj4NCnskc2t1LmVuZGZvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/tab_categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCWZ1bmN0aW9uIHNob3dRdWlja1NlbGVjdG9yKGlkKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoJfQoJZnVuY3Rpb24gaGlkZVF1aWNrU2VsZWN0b3IoaWQpIHsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCX0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9Cgk8cCBzdHlsZT0iY29sb3I6cmVkOyI+eyRtZXNzYWdlfTwvcD4Key9pZn0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIiBzdHlsZT0iYm9yZGVyOiAwcHg7Ij4KCTx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgoJPHRkIGlkPSJxcyIgc3R5bGU9ImRpc3BsYXk6IHskZGlzcGxheXFzfTsgb3ZlcmZsb3cteTpoaWRkZW47IG92ZXJmbG93LXg6c2Nyb2xsOyI+Cgk8ZmllbGRzZXQ+CgkJPGxlZ2VuZD57JHRpdGxlX3F1aWNrX3NlbGVjdG9yfTwvbGVnZW5kPgoJCTxkaXYgc3R5bGU9ImJvcmRlcjowcHggc29saWQgYmxhY2s7aGVpZ2h0OjQwMHB4O292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6c2Nyb2xsOyI+CgkJPHAgc3R5bGU9IndpZHRoOjI1MCU7Ij4KCQk8dGFibGUgd2lkdGg9MTAwJSBib3JkZXI9MD4KCQl7c2VjdGlvbiBuYW1lPWkgbG9vcD0kcXNjYXRzfQoJCSA8dHIgc3R5bGU9ImhlaWdodDogMWVtOyI+CgkJICA8dGQ+e3NlY3Rpb24gbmFtZT1qIGxvb3A9JHFzY2F0c1tpXVszXSBtYXg9JHFzY2F0c1tpXVszXX0mbmJzcDsmbmJzcDt7L3NlY3Rpb259CgkJICAJe2lmICRjdXJyZW50X2NhdGVnb3J5X2lkID09ICRxc2NhdHNbaV1bMF19PGI+eyRxc2NhdHNbaV1bMV19PC9iPntlbHNlfXskcXNjYXRzW2ldWzFdfXsvaWZ9CgkJCSAge2lmICRxc2NhdHNbaV1bNF0gPiAwfSZuYnNwOyh7JHFzY2F0c1tpXVs0XX0pey9pZn0KCQkgIDwvdGQ+CgkJIDwvdHI+CgkJey9zZWN0aW9ufQoJCTwvdGFibGU+CgkJPC9wPgoJCTwvZGl2PgoJPC9maWVsZHNldD4KCTwvdGQ+Cgk8dGQgc3R5bGU9IndpZHRoOiA4MCU7Ij4KCQk8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246IG1pZGRsZTsiPgoJCXskY2F0ZWdvcmllcy5jdXJyZW50LmxhYmVsfTombmJzcDs8Yj57JGNhdGVnb3JpZXMuY3VycmVudC52YWx1ZX08L2I+Jm5ic3A7eyRjYXRlZ29yaWVzLmN1cnJlbnQubGlua19hZGR9CgkJPC9zcGFuPgoJCTxzcGFuIHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij4KCQkJPGEgaHJlZj0iIyIgb25jbGljaz0ic2hvd1F1aWNrU2VsZWN0b3IoJ3FzJyk7IHJldHVybiBmYWxzZTsiPnskdGl0bGVfc2hvd308L2E+CgkJCTxhIGhyZWY9IiMiIG9uY2xpY2s9ImhpZGVRdWlja1NlbGVjdG9yKCdxcycpOyByZXR1cm4gZmFsc2U7Ij57JHRpdGxlX2hpZGV9PC9hPiZuYnNwOwoJCQl7JHRpdGxlX3F1aWNrX3NlbGVjdG9yfQoJCTwvc3Bhbj4KCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgdGFibGVzb3J0ZXIiPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoIHdpZHRoPSI1JSI+eyRjYXRlZ29yaWVzLnN1YmNhdGVnb3JpZXMubGFiZWwuaWR9PC90aD4KCQkJCQk8dGg+eyRjYXRlZ29yaWVzLnN1YmNhdGVnb3JpZXMubGFiZWwubmFtZX08L3RoPgoJCQkJCTx0aD57JGNhdGVnb3JpZXMuc3ViY2F0ZWdvcmllcy5sYWJlbC5kZXNjcmlwdGlvbn08L3RoPgkJCQkJCQkJCQoJCQkJCTx0aCBkYXRhLXNvcnRlcj0iZmFsc2UiIGNsYXNzPSJwYWdlaWNvbiI+eyRtb2QtPkxhbmcoJ2FjdGl2ZScpfTwvdGg+CgkJCQkJPHRoIGRhdGEtc29ydGVyPSJmYWxzZSIgY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBkYXRhLXNvcnRlcj0iZmFsc2UiIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keT4KCQkJCXtmb3JlYWNoIGZyb209JGNhdGVnb3JpZXMuc3ViY2F0ZWdvcmllcy5saXN0IGl0ZW09ZW50cnl9CgkJCQk8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4KCQkJCQk8dGQ+eyRlbnRyeS5jYXRlZ29yeV9pZH08L3RkPgoJCQkJCTx0ZD57JGVudHJ5Lm5hbWV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS5kZXNjcmlwdGlvbnx0cnVuY2F0ZX08L3RkPgoJCQkJCTx0ZD57JGVudHJ5LmxpbmtfZW5hYmxlfTwvdGQ+CgkJCQkJPHRkPnskZW50cnkubGlua19lZGl0fTwvdGQ+CgkJCQkJPHRkPnskZW50cnkubGlua19kZWxldGV9PC90ZD4KCQkJCTwvdHI+CgkJCQl7Zm9yZWFjaGVsc2V9CgkJCQk8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4KCQkJCQk8dGQgY29sc3Bhbj0nNicgYWxpZ249J2NlbnRlcic+eyRub2NhdGZvdW5kfTwvdGQ+CgkJCQk8L3RyPgoJCQkJey9mb3JlYWNofQoJCQk8L3Rib2R5PgoJCTwvdGFibGU+CgoJCXskcHJvZHVjdHMuc3RhcnRmb3JtfQoJCXskcHJvZHVjdHMuY2F0ZWdvcnkubGFiZWx9OiZuYnNwO3skcHJvZHVjdHMuY2F0ZWdvcnkudmFsdWV9Jm5ic3A7CgkJeyRwcm9kdWN0cy5jYXRlZ29yeS5saW5rX2FkZH0mbmJzcDt7JHByb2R1Y3RzLml0ZW1zZWFyY2h9eyRwcm9kdWN0cy5zdWJtaXR9CgkJeyRwcm9kdWN0cy5lbmRmb3JtfQoKCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgdGFibGVzb3J0ZXIiPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoIHdpZHRoPSI1JSI+eyRwcm9kdWN0cy5wcm9kdWN0cy5sYWJlbC5pZH08L3RoPgoJCQkJCTx0aCBkYXRhLXNvcnRlcj0iZmFsc2UiPnskbW9kLT5MYW5nKCdsYWJlbF9jYXRlZ29yeV9pbWFnZScpfTwvdGg+CgkJCQkJPHRoPnskcHJvZHVjdHMucHJvZHVjdHMubGFiZWwubmFtZX08L3RoPgoJCQkJCTx0aD57JG1vZC0+TGFuZygnbGFiZWxfcHJvZHVjdF9wcmljZScpfTwvdGg+CQkJCQkKCQkJCQk8dGg+eyRwcm9kdWN0cy5wcm9kdWN0cy5sYWJlbC5pdGVtbnVtYmVyfTwvdGg+CgkJCQkJPHRoIGRhdGEtc29ydGVyPSJmYWxzZSI+eyRwcm9kdWN0cy5wcm9kdWN0cy5sYWJlbC5vbnN0b2NrfTwvdGg+CgkJCQkJPHRoIGRhdGEtc29ydGVyPSJmYWxzZSIgY2xhc3M9InBhZ2VpY29uIj57JG1vZC0+TGFuZygnYWN0aXZlJyl9PC90aD4KCQkJCQk8dGggZGF0YS1zb3J0ZXI9ImZhbHNlIiBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQkJPHRoIGRhdGEtc29ydGVyPSJmYWxzZSIgY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5PgoJCQkJe2ZvcmVhY2ggZnJvbT0kcHJvZHVjdHMucHJvZHVjdHMubGlzdCBpdGVtPWVudHJ5fQoJCQkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIifSI+CgkJCQkJPHRkPnskZW50cnkucHJvZHVjdF9pZH08L3RkPgoJCQkJCTx0ZD57aWYgaXNzZXQoJGVudHJ5LmltYWdlKSAmJiAhZW1wdHkoJGVudHJ5LmltYWdlKX08aW1nIHNyYz17JGVudHJ5LmltYWdlfSB3aWR0aD0iNzUiPnsvaWZ9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS5uYW1lfTwvdGQ+CgkJCQkJPHRkPnskZW50cnkucHJpY2V9PC90ZD4JCQkJCQoJCQkJCTx0ZD57JGVudHJ5Lml0ZW1udW1iZXJ9PC90ZD4KCQkJCQl7aWYgJGVudHJ5LmludmVudG9yeXR5cGUgPT0gJ3Byb2QnfQoJCQkJCQk8dGQ+eyRlbnRyeS5vbnN0b2NrfTwvdGQ+CgkJCQkJe2Vsc2V9CgkJCQkJCTx0ZD4mbmJzcDs8L3RkPgoJCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnkubGlua19lbmFibGV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS5saW5rX2VkaXR9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS5saW5rX2RlbGV0ZX08L3RkPgoJCQkJPC90cj4KCQkJCXtmb3JlYWNoZWxzZX0KCQkJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPgoJCQkJCTx0ZCBjb2xzcGFuPSc5JyBhbGlnbj0nY2VudGVyJz57JG5vcHJvZGZvdW5kfTwvdGQ+CgkJCQk8L3RyPgoJCQkJey9mb3JlYWNofQoJCQk8L3Rib2R5PgoJCTwvdGFibGU+Cgk8L3RkPgoJPC90cj4KPC90YWJsZT4K]]></data>
	</file>
	<file>
	  <filename>/templates/tab_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9Cgk8cCBzdHlsZT0iY29sb3I6cmVkOyI+eyRtZXNzYWdlfTwvcD4Key9pZn0KeyRvcHRpb25zLnN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLnN1Ym1pdH08L3A+Cgk8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuYWRtaW5fbmFtZS5sYWJlbH08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLmFkbWluX25hbWUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLnNob3BfbmFtZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb3B0aW9ucy5zaG9wX25hbWUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLnByaWNlc2luY2x2YXQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMucHJpY2VzaW5jbHZhdC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMud2VpZ2h0dW5pdG1lYXN1cmUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMud2VpZ2h0dW5pdG1lYXN1cmUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLml0ZW1jYXBpdGFsb25seS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb3B0aW9ucy5pdGVtY2FwaXRhbG9ubHkuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLmFsbG93ZG91YmxlaXRlbS5sYWJlbH08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLmFsbG93ZG91YmxlaXRlbS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuZGVmYXVsdF9tYXhhdHRyaWJ1dGVzLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLmRlZmF1bHRfbWF4YXR0cmlidXRlcy5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuZGVmYXVsdF9za3UubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuZGVmYXVsdF9za3UuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLmRlZmF1bHRfY3VycmVuY3kubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuZGVmYXVsdF9jdXJyZW5jeS5pbnB1dH0mbmJzcDsKICAgICAgICB7JG9wdGlvbnMuZGVmYXVsdF9zeW1ib2wubGFiZWx9OiZuYnNwOwogICAgICAgIHskb3B0aW9ucy5kZWZhdWx0X3N5bWJvbC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuaW1hZ2VwYXRoX2NhdGVnb3J5LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLmltYWdlcGF0aF9jYXRlZ29yeS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuaW1hZ2VwYXRoX3Byb2R1Y3QubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuaW1hZ2VwYXRoX3Byb2R1Y3QuaW5wdXR9Jm5ic3A7CgkJCXskb3B0aW9ucy50bmhlaWdodF9wcm9kdWN0LmxhYmVsfTombmJzcDt7JG9wdGlvbnMudG5oZWlnaHRfcHJvZHVjdC5pbnB1dH0mbmJzcDsKCQkJeyRvcHRpb25zLnRud2lkdGhfcHJvZHVjdC5sYWJlbH06Jm5ic3A7eyRvcHRpb25zLnRud2lkdGhfcHJvZHVjdC5pbnB1dH0KCQkJJm5ic3A7eyRvcHRpb25zLnJlYnVpbGRwcm9kdWN0dGh1bWJuYWlsc308L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMucHJvZHVjdHBhZ2VsaW1pdC5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb3B0aW9ucy5wcm9kdWN0cGFnZWxpbWl0LmlucHV0fTwvcD4KICAgIDwvZGl2PgoJPGZpZWxkc2V0PgoJPGxlZ2VuZD57JG9wdGlvbnMuaW52ZW50b3J5c2V0dGluZ3MubGFiZWx9PC9sZWdlbmQ+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLmludmVudG9yeXR5cGUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuaW52ZW50b3J5dHlwZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMuc2FsZXNpbnZlbnR0aW1pbmcubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuc2FsZXNpbnZlbnR0aW1pbmcuaW5wdXR9PC9wPgogICAgPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPGZpZWxkc2V0PgoJPGxlZ2VuZD57JG9wdGlvbnMubnVtYmVyZm9ybWF0dGluZy5sYWJlbH08L2xlZ2VuZD4KCXtpZiAkQ2FydE1TSW5zdGFsbGVkID09IGZhbHNlfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskb3B0aW9ucy5kZWNpbWFscG9zaXRpb25zcHJpY2UubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuZGVjaW1hbHBvc2l0aW9uc3ByaWNlLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskb3B0aW9ucy5kZWNpbWFsc2VwYXJhdG9ycHJpY2UubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuZGVjaW1hbHNlcGFyYXRvcnByaWNlLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskb3B0aW9ucy50aG91c2FuZHNlcGFyYXRvcnByaWNlLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLnRob3VzYW5kc2VwYXJhdG9ycHJpY2UuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskb3B0aW9ucy5kZWNpbWFscG9zaXRpb25zd2VpZ2h0LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLmRlY2ltYWxwb3NpdGlvbnN3ZWlnaHQuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRvcHRpb25zLmRlY2ltYWxzZXBhcmF0b3J3ZWlnaHQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMuZGVjaW1hbHNlcGFyYXRvcndlaWdodC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9wdGlvbnMudGhvdXNhbmRzZXBhcmF0b3J3ZWlnaHQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG9wdGlvbnMudGhvdXNhbmRzZXBhcmF0b3J3ZWlnaHQuaW5wdXR9PC9wPgogICAgPC9kaXY+Cgk8L2ZpZWxkc2V0PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskb3B0aW9ucy5kaXNwbGF5cXVpY2tzZWxlY3Rvci5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb3B0aW9ucy5kaXNwbGF5cXVpY2tzZWxlY3Rvci5pbnB1dH08L3A+CiAgICA8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb25zLnN1Ym1pdH17JG9wdGlvbnMuc2VhcmNocmVpbmRleH08L3A+Cgk8L2Rpdj4KeyRvcHRpb25zLmVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/tab_preferences.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlIT0nJ30KCTxwIHN0eWxlPSJjb2xvcjpyZWQ7Ij57JG1lc3NhZ2V9PC9wPgp7L2lmfQp7JHByZWZlcmVuY2VzLnN0YXJ0Zm9ybX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLmFkbWluX25hbWUubGFiZWx9PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuYWRtaW5fbmFtZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLmFkbWluX2VtYWlsLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmVmZXJlbmNlcy5hZG1pbl9lbWFpbC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLnNob3BfbmFtZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuc2hvcF9uYW1lLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJlZmVyZW5jZXMuc2hvcF9waG9uZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuc2hvcF9waG9uZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLnNob3Bfb25saW5lLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmVmZXJlbmNlcy5zaG9wX29ubGluZS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLnByaWNlc2luY2x2YXQubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByZWZlcmVuY2VzLnByaWNlc2luY2x2YXQuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy53ZWlnaHR1bml0bWVhc3VyZS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMud2VpZ2h0dW5pdG1lYXN1cmUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy5pdGVtY2FwaXRhbG9ubHkubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByZWZlcmVuY2VzLml0ZW1jYXBpdGFsb25seS5pbnB1dH08L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLmFsbG93ZG91YmxlaXRlbS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuYWxsb3dkb3VibGVpdGVtLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJlZmVyZW5jZXMuZGVmYXVsdF9tYXhhdHRyaWJ1dGVzLmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmVmZXJlbmNlcy5kZWZhdWx0X21heGF0dHJpYnV0ZXMuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy5kZWZhdWx0X3NrdS5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuZGVmYXVsdF9za3UuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy5kZWZhdWx0X2N1cnJlbmN5LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmVmZXJlbmNlcy5kZWZhdWx0X2N1cnJlbmN5LmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJlZmVyZW5jZXMuZGVmYXVsdF9zeW1ib2wubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByZWZlcmVuY2VzLmRlZmF1bHRfc3ltYm9sLmlucHV0fTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJlZmVyZW5jZXMuaW1hZ2VwYXRoX2NhdGVnb3J5LmxhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwcmVmZXJlbmNlcy5pbWFnZXBhdGhfY2F0ZWdvcnkuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy5pbWFnZXBhdGhfcHJvZHVjdC5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuaW1hZ2VwYXRoX3Byb2R1Y3QuaW5wdXR9Jm5ic3A7CgkJCXskcHJlZmVyZW5jZXMudG5oZWlnaHRfcHJvZHVjdC5sYWJlbH06Jm5ic3A7eyRwcmVmZXJlbmNlcy50bmhlaWdodF9wcm9kdWN0LmlucHV0fSZuYnNwOwoJCQl7JHByZWZlcmVuY2VzLnRud2lkdGhfcHJvZHVjdC5sYWJlbH06Jm5ic3A7eyRwcmVmZXJlbmNlcy50bndpZHRoX3Byb2R1Y3QuaW5wdXR9CgkJCSZuYnNwO3skcHJlZmVyZW5jZXMucmVidWlsZHByb2R1Y3R0aHVtYm5haWxzfTwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJlZmVyZW5jZXMucHJvZHVjdHBhZ2VsaW1pdC5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMucHJvZHVjdHBhZ2VsaW1pdC5pbnB1dH08L3A+CiAgICA8L2Rpdj4KCTxmaWVsZHNldD4KCTxsZWdlbmQ+eyRwcmVmZXJlbmNlcy5pbnZlbnRvcnlzZXR0aW5ncy5sYWJlbH08L2xlZ2VuZD4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByZWZlcmVuY2VzLmludmVudG9yeXR5cGUubGFiZWx9OjwvcD4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByZWZlcmVuY2VzLmludmVudG9yeXR5cGUuaW5wdXR9PC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcmVmZXJlbmNlcy5zYWxlc2ludmVudHRpbWluZy5sYWJlbH06PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcHJlZmVyZW5jZXMuc2FsZXNpbnZlbnR0aW1pbmcuaW5wdXR9PC9wPgogICAgPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByZWZlcmVuY2VzLnN1Ym1pdH17JHByZWZlcmVuY2VzLnNlYXJjaHJlaW5kZXh9PC9wPgoJPC9kaXY+CnskcHJlZmVyZW5jZXMuZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/tab_skus.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KCSAgICA8dGhlYWQ+DQoJICAgICAgICA8dHI+DQoJICAgICAgICAgICAgPHRoPnskc2t1cy5za3VzLmxhYmVsLnNrdX08L3RoPg0KCSAgICAgICAgICAgIDx0aD57JHNrdXMuc2t1cy5sYWJlbC5kZXNjcmlwdGlvbn08L3RoPg0KCSAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQoJICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCgkgICAgICAgIDwvdHI+DQoJICAgIDwvdGhlYWQ+DQoJICAgIDx0Ym9keT4NCgkgICAgICAgIHtmb3JlYWNoIGZyb209JHNrdXMuc2t1cy5saXN0IGl0ZW09ZW50cnl9DQoJICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9InJvdzEscm93MiJ9Ij4NCgkgICAgICAgICAgICA8dGQ+eyRlbnRyeS5uYW1lfTwvdGQ+DQoJICAgICAgICAgICAgPHRkPnskZW50cnkuZGVzY3JpcHRpb259PC90ZD4NCgkgICAgICAgICAgICA8dGQ+eyRlbnRyeS5saW5rX2VkaXR9PC90ZD4NCgkgICAgICAgICAgICA8dGQ+eyRlbnRyeS5saW5rX2RlbGV0ZX08L3RkPg0KCSAgICAgICAgPC90cj4NCgkgICAgICAgIHtmb3JlYWNoZWxzZX0NCgkgICAgICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPg0KCSAgICAgICAgICAgIDx0ZCBjb2xzcGFuPScyJyBhbGlnbj0nY2VudGVyJz57JG5vc2t1c2ZvdW5kfTwvdGQ+DQoJICAgICAgICA8L3RyPg0KCSAgICAgICAgey9mb3JlYWNofQ0KCSAgICA8L3Rib2R5Pg0KCTwvdGFibGU+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNrdXMuc2t1cy5sYWJlbC5saW5rX2FkZH0mbmJzcDt7JHNrdXMuc2t1cy5sYWJlbC50ZXh0X2FkZH08L3A+DQoJPC9kaXY+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/tab_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9DQoJPHAgc3R5bGU9ImNvbG9yOnJlZDsiPnskbWVzc2FnZX08L3A+DQp7L2lmfQ0KeyR0ZW1wbGF0ZXMuc3RhcnRmb3JtfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0ZW1wbGF0ZXMuY2F0bGlzdF90ZW1wbGF0ZS5sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRlbXBsYXRlcy5jYXRsaXN0X3RlbXBsYXRlLmlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZXMuc3VibWl0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGVtcGxhdGVzLmNhdGVnb3JpZXNfdGVtcGxhdGUubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZXMuY2F0ZWdvcmllc190ZW1wbGF0ZS5pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVtcGxhdGVzLnN1Ym1pdH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRlbXBsYXRlcy5wcm9kZGV0YWlsX3RlbXBsYXRlLmxhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGVtcGxhdGVzLnByb2RkZXRhaWxfdGVtcGxhdGUuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRlbXBsYXRlcy5zdWJtaXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0ZW1wbGF0ZXMucHJvZGZlYXRfdGVtcGxhdGUubGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZXMucHJvZGZlYXRfdGVtcGxhdGUuaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRlbXBsYXRlcy5zdWJtaXR9PC9wPg0KCTwvZGl2Pg0KeyR0ZW1wbGF0ZXMuZW5kZm9ybX0NCg==]]></data>
	</file>
</module>
