<?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>ImportExport</name>
	<version>1.1</version>
    <mincmsversion>2.2</mincmsversion>
	<help><![CDATA[PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly9sb2NhbGhvc3QvbW9kdWxlLWRldi9tb2R1bGVzL0ltcG9ydEV4cG9ydC9saWIvY3NzL2ltcG9ydGV4cG9ydF9oZWxwLmNzcyI+PGRpdiBjbGFzcz0ibW9kdWxlLWhlbHAtd3JhcHBlciI+Cgo8cD5UaGlzIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUsIHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IHRvIEltcG9ydCAmIEV4cG9ydCBjb250ZW50IHRvICYgZnJvbSBDTVNNUzo8L3A+Cjx1bD4KICAgIDxsaT5JbXBvcnQgV29yZHByZXNzIFBvc3RzIHRvIGEgTElTRSBpbnN0YW5jZTwvbGk+CiAgICA8bGk+VHJhbnNmZXIgTmV3cyB0byBhIExJU0UgSW5zdGFuY2UgLSBpbiBkZXZlbG9wbWVudDwvbGk+CiAgICA8bGk+Q0dCbG9nIHRvIGEgTElTRSBJbnN0YW5jZSAtIGluIGRldmVsb3BtZW50PC9saT4KICAgIDxsaT5JbXBvcnQgV29yZHByZXNzIFBhZ2VzIHRvIENvbnRlbnQgTWFuYWdlciAtIGluIGRldmVsb3BtZW50PC9saT4KICAgIDxsaT4uLi48L2xpPgogICAgPGxpPi4uLiBwbGVhc2UgY29udGFjdCBtZSBpZiB5b3UgaGF2ZSBvdGhlciByZXF1aXJlbWVudHMgZm9yIGltcG9ydC9leHBvcnQgb2YgY29udGVudC4gU3BvbnNvcnNoaXAgd2VsY29tZS48L2xpPgo8L3VsPgo8cD5UaGlzIG1vZHVsZSBpcyBpbnRlbnRlZCB0byBiZSBpbnN0YWxsZWQgd2hlbiBhbiBpbXBvcnQgb3IgZXhwb3J0IGlzIHJlcXVpcmVkIGFuZCB0aGVuIHVuaW5zdGFsbGVkLjwvcD4gCgoKPGgzPlJlcXVpcmVtZW50czwvaDM+CjxwPjxiPmZvcGVuPC9iPiAtIHNob3VsZCBiZSBlbmFibGVkLiBJZiBmb3BlbiBpcyBkaXNhYmxlZCBhIHdhcm5pbmcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwgYW5kIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBsaW1pdGVkLiBUaGUgbW9kdWxlIHdpbGwgbm90IGJlIGFibGUgdG8gaW1wb3J0IGFueSByZW1vdGUgaW1hZ2VzIG9yIGF0dGFjaG1lbnRzLlRvIGVuYWJsZSBmb3BlbiBpbiBQSFAsIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGRpc2FibGVfZnVuY3Rpb25zIGRpcmVjdGl2ZSBpbiB5b3VyIHBocC5pbmkgY29uZmlndXJhdGlvbiBmaWxlLCBhbmQgcmVzdGFydCB0aGUgc2VydmVyLjwvcD4KCgo8aDM+UGVybWlzc2lvbnM8L2gzPgo8cD5Pbmx5ICdhZG1pbicgdXNlcnMgY2FuIGFjY2VzcyBhbmQgdXNlIHRoaXMgbW9kdWxlLjwvcD4KCgo8aDM+VXNlPC9oMz4KPG9sPgogICAgPGxpPkdvIHRvIHRoZSBJbXBvcnQgRXhwb3J0IGFkbWluIHBhZ2UgYW5kIHNlbGVjdCB0aGUgSW1wb3J0IEV4cG9ydCBUeXBlLjwvbGk+CiAgICA8bGk+Q29tcGxldGUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gMSBvciBtb3JlIHBhZ2VzPC9saT4KICAgIDxsaT5XaGVuIHRoZSBpbXBvcnQgaXMgc3RhcnRlZCwgYSBwcm9ncmVzcyBiYXIgcHJvdmlkZXMgZmVlZGJhY2sgYW5kIHRoZSBpbXBvcnQgY2FuIGJlIGNhbmNlbGxlZC48L2xpPgogICAgPGxpPklmIGZpbGVzIGFyZSBiZWluZyByZXRyaWV2ZWQgZnJvbSBhIHJlbW90ZSBsb2NhdGlvbiBlLmcuIGltYWdlcywgdGhpcyBjb3VsZCBiZSBzbG93IGFuZCB0aGUgaW1wb3J0IG9mIGltYWdlcyBtYXkgbmVlZCB0byBiZSByZXBlYXRlZCBhIGZldyB0aW1lcyB0byBzdWNjZXNzZnVsbHkgcmV0cmlldmUgdGhlbSBmcm9tIHRoZSBzZXJ2ZXIuPC9saT4KPC9vbD4KCgo8aDM+SW1wb3J0IFdvcmRwcmVzcyBQb3N0cyB0byBhIExJU0UgaW5zdGFuY2U8L2gzPgo8cD5JbiBXb3JkcHJlc3MgZ28gdG8gVG9vbHMgPiBFeHBvcnQsIGFuZCBjaG9vc2UgUG9zdHMuPC9wPgo8cD5JbiBDTVNNUyBnbyB0byB0aGUgSW1wb3J0IEV4cG9ydCBhZG1pbiBwYWdlOgogICAgPG9sPgogICAgICAgIDxsaT5TZWxlY3QgLSB0aGUgV29yZFByZXNzIFhNTCB0byB1cGxvYWQsIGFuZCB0aGUgTElTRSBJbnN0YW5jZSB0byBpbXBvcnQgdG8gdGhhdCBzaG91bGQgYWxyZWFkeSBoYXZlIGFsbCByZXF1aXJlZCBmaWVsZHMgY3JlYXRlZC48L2xpPgogICAgICAgIDxsaT5Db25maWd1cmF0aW9uIC0gc2VsZWN0IGFsbCB0aGUgcmVxdWlyZWQgb3B0aW9uczoKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPlNlbGVjdCB0aGUgV29yZHByZXNzIGZpZWxkIHRvIG1hcCB0byBlYWNoIExJU0UgZmllbGQ8YnI+CiAgICAgICAgICAgICAgICBOb3RlOiBpZiB0aGUgV29yZHByZXNzIFBvc3RzIGluY2x1ZGVkIGF0dGFjaG1lbnRzIC0gY3JlYXRlIGEgTElTRSB0ZXh0IGlucHV0IGZpZWxkLCBlLmcuIG1heCBsZW5ndGggMTAwMCBhbmQgbWFwIHRoZSAnd3BfYXR0YWNobWVudHMnIHRvIHRoYXQuPC9saT4KICAgICAgICAgICAgICAgIDxsaT5EZWxldGUgYWxsIExJU0UgaXRlbXMgYmVmb3JlIGltcG9ydCAtIFJlY29tbWVuZGVkOiB0aGF0IHlvdSB1c2UgYW4gZW1wdHkgTElTRSBpbnN0YW5jZSB0byBpbXBvcnQgdG8uIEFsc28gbWFrZXMgaXQgc2ltcGxlIHRvIHJlcGVhdCB0aGUgaW1wb3J0IGlmIHJlcXVpcmVkLgogICAgICAgICAgICAgICAgPGxpPkF1dG8gY3JlYXRlIGNhdGVnb3JpZXMgLSB3aWxsIGNyZWF0ZSBhbnkgbmV3IGNhdGVnb3JpZXMgaW4gTElTRSB0aGF0IHdlcmUgdXNlZCBpbiBXb3JkcHJlc3M8L2xpPgogICAgICAgICAgICAgICAgPGxpPlNvdXJjZSBiYXNlIFVSTChzKSAtIHdpbGwgYXV0b21hdGljYWxseSB1c2UgdGhlIHVybCB0aGF0IHRoZSBYTUwgZmlsZSB3YXMgY3JlYXRlZCBmcm9tLCBwbHVzIGlmIHJlcXVpcmVkIHlvdSBjYW4gc2V0IGFkZGl0aW9uYWwgdXJscywgZS5nLiBhIHRlbXBvcmFyeSBzaXRlIGxvY2F0aW9uIHRoYXQgYWxzbyBpbmNsdWRlcyBpbWFnZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPkRlZmF1bHQgT3duZXIgLSB0aGUgb3duZXIgb2YgdGhlIG5ldyBMSVNFIGl0ZW1zIHdpbGwgYmUgc2V0IHRvIHRoaXMgaWYgdGhlIENNU01TIGVxdWl2YWxlbnQgVXNlciBmb3IgdGhlIFdvcmRwcmVzcyBhdXRob3IgaXMgbm90IGZvdW5kLiA8L2xpPgogICAgICAgICAgICAgICAgPGxpPlVwbG9hZHMgbG9jYXRpb24gLSBvcHRpb25hbGx5IHNwZWNpZmMgYSBzdWItZGlyZWN0b3J5IG9mIC91cGxvYWRzLyB0byBjb3B5IGFueSByZWZlcmVuY2VkIGltYWdlcyBpbnRvLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+SW1wb3J0CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Db250ZW50IGZyb20gYWxsIHBvc3RzIGlzIGltcG9ydGVkIGZpcnN0PC9saT4KICAgICAgICAgICAgICAgIDxsaT5UaGVuIGFsbCBhdHRhY2htZW50cyBhcmUgYXR0ZW1wdGVkIHRvIGJlIHJldHJpZXZlZCBhbmQgc2F2ZWQgaW4gdGhlIHVwbG9hZHMgc3ViLWRpcmVjdG9yeTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+QWxsIHRleHQgYXJlYXMgYXJlIHNjYW5uZWQgYW5kIGFueSBpbmxpbmUgaW1hZ2VzIGFyZSBpbXBvcnRlZCBpbnRvIHRoZSB1cGxvYWRzIHN1Yi1kaXJlY3RvcnksIHdpdGggdGhlIGltZyBzcmMgc2V0IHRvIHRoZSBuZXcgcmVsYXRpdmUgbG9jYXRpb24uPC9saT4KICAgICAgICAgICAgICAgIDxsaT5JZiBhbnkgZmlsZXMgY2Fubm90IGJlIGxvY2F0ZWQsIHRoZSBmaWxlL2ltYWdlIGltcG9ydCBjYW4gYmUgcmVwZWF0ZWQuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT5Db21wbGV0ZWQgLSBhbGwgZG9uZSA6KTwvbGk+CiAgICA8L29sPgo8L3A+CgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCBsaWNlbmNlLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzIGlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci4gVGhlIG1vZHVsZSBhdXRob3IgaXMgbm90IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZS4gSG93ZXZlciB5b3UgbWlnaHQgZ2V0IHN1cHBvcnQgdGhyb3VnaCB0aGUgZm9sbG93aW5nOjwvcD4KPHVsPgogICAgPGxpPkZvciBzdXBwb3J0LCBmaXJzdCA8c3Ryb25nPnNlYXJjaDwvc3Ryb25nPiB0aGUgPGEgaHJlZj0iLy9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtPC9hPiwgZm9yIGlzc3VlcyB3aXRoIHRoZSBtb2R1bGUgc2ltaWxhciB0byB0aG9zZSB5b3UgYXJlIGZpbmRpbmcuPC9saT4KICAgIDxsaT5UaGVuLCBpZiBuZWNlc3NhcnksIG9wZW4gYSA8c3Ryb25nPm5ldyBmb3J1bSB0b3BpYzwvc3Ryb25nPiB0byByZXF1ZXN0IGhlbHAsIHdpdGggYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0LjwvbGk+CiAgICA8bGk+QXNrIGEgcXVlc3Rpb24gb24gdGhlIDxhIGhyZWY9Ii8vY21zLW1hZGUtc2ltcGxlLnNsYWNrLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPkNNUyBNYWRlIFNpbXBsZSBTbGFjayBjaGFubmVsPC9hPiwgb3IganVzdCBzaGFyZSB5b3UgdGhvdWdodHMgaWYgeW91IGZvdW5kIHRoZSBNb2R1bGUgdXNlZnVsLiA8YSBocmVmPSIvL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9zdXBwb3J0L2RvY3VtZW50YXRpb24vY2hhdCIgdGFyZ2V0PSJfYmxhbmsiPkpvaW4gQ01TTVMgb24gU2xhY2s8L2E+PC9saT4KICAgIDxsaT5JZiB5b3UgZmluZCBhIGJ1ZyB5b3UgY2FuIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTUwNiIgdGFyZ2V0PSJfYmxhbmsiPnN1Ym1pdCBhIEJ1ZyBSZXBvcnQ8L2E+LjwvbGk+CiAgICA8bGk+Rm9yIGFueSBnb29kIGlkZWFzIHlvdSBjYW4gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xNTA2IiB0YXJnZXQ9Il9ibGFuayI+c3VibWl0IGEgRmVhdHVyZSBSZXF1ZXN0PC9hPi48L2xpPgo8L3VsPgoKCgo8aDM+Q29weXJpZ2h0ICZhbXA7IExpY2VuY2U8L2gzPgo8cD5Db3B5cmlnaHQgwqkgMjAyNCwgQ2hyaXMgVGF5bG9yIDwgY2hyaXMgYXQgYmlubm92YXRpdmUgZG90IGNvIGRvdCB1ayA+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Ij5HTlUgUHVibGljIExpY2Vuc2UgdjM8L2E+LjwvcD4KCjwvZGl2Pg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBLaXdpQ2hyaXMgJmx0O2NocmlzQGJpbm5vdmF0aXZlLmNvLnVrJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjxoMz5WZXJzaW9uIDEuMSAtIDI4Tm92MjQ8L2gzPgo8dWw+CiAgICA8bGk+YnVnIGZpeCAtIGJldHRlciBjaGVja2luZyBmb3IgdXNlciBiZWluZyBtZW1iZXIgb2YgYWRtaW4gZ3JvdXA8L2xpPgogICAgPGxpPmJ1ZyBmaXggLSBwYXJzaW5nIG9mIHRleHRhcmVhcyB0aWRpZWQgdXAgLSBpbXBvcnRhbnQ8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMS4wIC0gMjZOb3YyNDwvaDM+Cjx1bD4KICAgIDxsaT5pbml0aWFsIHJlbGVhc2U8L2xpPgogICAgPGxpPnByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IHRvIEltcG9ydCAmIEV4cG9ydCBjb250ZW50IHRvICYgZnJvbSBDTVNNUzwvbGk+CiAgICA8bGk+aW5pdGlhbGx5IGNhbiBpbXBvcnQgSW1wb3J0IFdvcmRwcmVzcyBQb3N0cyB0byBhIExJU0UgaW5zdGFuY2U8L2xpPgogICAgPGxpPmZ1dHVyZSByZWxlYXNlcyB0byBpbmNsdWRlOiBUcmFuc2ZlciBOZXdzIHRvIGEgTElTRSBJbnN0YW5jZSwgQ0dCbG9nIHRvIGEgTElTRSBJbnN0YW5jZSwgSW1wb3J0IFdvcmRwcmVzcyBQYWdlcyB0byBDb250ZW50IE1hbmFnZXIsIG90aGVycyBhcyByZXF1aXJlZC4uLjwvbGk+CjwvdWw+Cjxicj48YnIgLz4=]]></about>
	<description><![CDATA[-- Missing Languagestring: moddescription --]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_ajax_data.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qKiAKKiAgIEB2YXIgXEltcG9ydEV4cG9ydCAkdGhpcyAKKi8KCgppZiAoICFkZWZpbmVkKCdDTVNfVkVSU0lPTicpICkgZXhpdDsKCmlmICggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIHsKICAgICR0aGlzLT5PdXRwdXRBamF4RXJyb3IoJ0Vycm9yIC0gbm90IEFkbWluIFVzZXInKTsKfSAgICAKaWYgKCBlbXB0eSgkcGFyYW1zWydkbyddKSApIHsKICAgICR0aGlzLT5PdXRwdXRBamF4RXJyb3IoJ0Vycm9yIC0gaW5jb3JyZWN0IHBhcmFtZXRlcnMgKGFkbWluX2FqYXhfZGF0YSknKTsgLy8gJiBkaWUKfSAKCgokZGF0YSA9IFtdOwpzd2l0Y2ggKCRwYXJhbXNbJ2RvJ10pIHsKCiAgICBjYXNlICdhamF4X3Byb2Nlc3MnOgogICAgICAgICRzdXBwbGllZF9rZXkgPSBpc3NldCgkX1JFUVVFU1RbJ2tleSddKSA/ICRfUkVRVUVTVFsna2V5J10gOiAnJzsKICAgICAgICAkc2F2ZWRfZGV0YWlscyA9ICR0aGlzLT5nZXRfYWpheF9wcm9jZXNzaW5nX2RldGFpbHMoJHN1cHBsaWVkX2tleSk7CiAgICAgICAgaWYgKCBlbXB0eSgkc2F2ZWRfZGV0YWlscykgKSB7CiAgICAgICAgICAgICR0aGlzLT5PdXRwdXRBamF4RXJyb3IoJ0ludmFsaWQgcmVxdWVzdCB0byBhamF4X3Byb2Nlc3MnKTsgLy8gJiBkaWUKICAgICAgICAgICAgcmV0dXJuOyAvLyBub3QgbmVlZGVkIC0ganVzdCB0byBtYWtlIGl0IG9idmlvdXMKICAgICAgICB9CgogICAgICAgIC8vIHN0YXJ0IHRoZSBhamF4IHByb2Nlc3NpbmcKICAgICAgICAkdHlwZV9jbGFzcyA9IEltcG9ydEV4cG9ydDo6Q0xBU1NfUFJFRklYLiRzYXZlZF9kZXRhaWxzLT50eXBlOyAgLy8gc2F2ZWQgYXMgYXJyYXksIHJlYWQgYXMgb2JqZWN0IQogICAgICAgICRpbXBvcnRfZXhwb3J0ID0gbmV3ICR0eXBlX2NsYXNzKCk7CiAgICAgICAgLy8gY291bGQgcHJvYmFibHkgbW92ZSB0aGUgZm9sbG93aW5nIHRvIC4uLiBzb21ld2hlcmUgZWxzZQogICAgICAgICRpbXBvcnRfZXhwb3J0LT5hamF4X3N0YXR1cyA9ICRzYXZlZF9kZXRhaWxzLT5hamF4X3N0YXR1czsKICAgICAgICAkaW1wb3J0X2V4cG9ydC0+YWpheF9wb3NpdGlvbiA9ICRzYXZlZF9kZXRhaWxzLT5hamF4X3Bvc2l0aW9uOwogICAgICAgICRpbXBvcnRfZXhwb3J0LT5maWxlX2V4aXN0c19jb3VudCA9ICRzYXZlZF9kZXRhaWxzLT5maWxlX2V4aXN0c19jb3VudDsKICAgICAgICAkaW1wb3J0X2V4cG9ydC0+ZmlsZV9lcnJvcl9jb3VudCA9ICRzYXZlZF9kZXRhaWxzLT5maWxlX2Vycm9yX2NvdW50OwogICAgICAgICRpbXBvcnRfZXhwb3J0LT5maWxlX3NhdmVkX2NvdW50ID0gJHNhdmVkX2RldGFpbHMtPmZpbGVfc2F2ZWRfY291bnQ7CgogICAgICAgIGlmICggIWVtcHR5KCRfUkVRVUVTVFsncmV0cnknXSkgKSAkaW1wb3J0X2V4cG9ydC0+cmV0cnkgPSAkX1JFUVVFU1RbJ3JldHJ5J107CgogICAgICAgICRpbXBvcnRfZXhwb3J0LT5hamF4X3Byb2Nlc3MoJHNhdmVkX2RldGFpbHMpOwoKICAgICAgICAvLyBwYXNzIHJlc3VsdHMgYmFjayB0byB0aGUgY2xpZW50IGJyb3dzZXIKICAgICAgICBpZiAoICFlbXB0eSgkaW1wb3J0X2V4cG9ydC0+cHJvZ3Jlc3MpICkgewogICAgICAgICAgICAkZGF0YSA9IFsKICAgICAgICAgICAgICAgICdrZXknID0+ICRpbXBvcnRfZXhwb3J0LT5hamF4X2tleSwKICAgICAgICAgICAgICAgICdwcm9ncmVzcycgPT4gJGltcG9ydF9leHBvcnQtPnByb2dyZXNzLAogICAgICAgICAgICAgICAgJ3N0YXR1cycgPT4gJGltcG9ydF9leHBvcnQtPmFqYXhfc3RhdHVzLAogICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJyA9PiAkaW1wb3J0X2V4cG9ydC0+YWpheF9wb3NpdGlvbiwKICAgICAgICAgICAgICAgICdtZXNzYWdlcycgPT4gJGltcG9ydF9leHBvcnQtPm1lc3NhZ2VNYW5hZ2VyLT5nZXRNZXNzYWdlcygpLCAvLyB0ZXN0IHRoaXMgaW5zdGVhZCBvZiB0aGUgYmVsb3cKICAgICAgICAgICAgICAgICdlcnJvcnMnID0+ICRpbXBvcnRfZXhwb3J0LT5tZXNzYWdlTWFuYWdlci0+Z2V0RXJyb3JzKCksCiAgICAgICAgICAgICAgICAnZmVlZGJhY2snID0+ICRpbXBvcnRfZXhwb3J0LT5hamF4X2ZlZWRiYWNrLCAgICAvLyB1cGRhdGUgZXhpc3RpbmcgbWVzc2FnZXMgZS5nLiBjb3VudCBpbmZvCiAgICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKfQoKCi8vIHJldHVybiBkYXRhCmh0dHBfcmVzcG9uc2VfY29kZSgyMDApOyAgICAvLyBzaWduYWwgT0sKZGllKCBqc29uX2VuY29kZSgkZGF0YSkgKTsgICAgIC8vIGFycmF5Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_main.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qKiAKKiAgIEB2YXIgXEltcG9ydEV4cG9ydCAkdGhpcyAKKi8KCmlmICggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiAoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSByZXR1cm47Cgokc21hcnR5LT5hc3NpZ24oJ2FkbWluX2ltcG9ydF91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5faW1wb3J0JywkcmV0dXJuaWQpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9pbXBvcnRfbWFpbi50cGwnKTsKCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qKiAKKiAgIEB2YXIgXEltcG9ydEV4cG9ydCAkdGhpcyAKKi8KCmlmICggIWRlZmluZWQoJ0NNU19WRVJTSU9OJykgKSBleGl0OwppZiAoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSByZXR1cm47Cgokc2VsZWN0ZWRfdHlwZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWxlY3RlZF90eXBlJywgJycpOwoKLy8gaWYgc2V0LCBjcmVhdGUgdGhlIGltcG9ydC9leHBvcnQgb2JqZWN0CmlmICggaW5fYXJyYXkoICRzZWxlY3RlZF90eXBlLCBJbXBvcnRFeHBvcnQ6OklNUE9SVF9FWFBPUlRfVFlQRVMgKSApIHsKICAgICRzZWxlY3RlZF90eXBlX2NsYXNzID0gSW1wb3J0RXhwb3J0OjpDTEFTU19QUkVGSVguJHNlbGVjdGVkX3R5cGU7CiAgICAkaW1wb3J0X2V4cG9ydCA9IG5ldyAkc2VsZWN0ZWRfdHlwZV9jbGFzcygpOwp9CgppZiAoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKCiAgICBzd2l0Y2goICRwYXJhbXNbJ3N1Ym1pdCddICkgewogICAgICAgIGNhc2UgJ2NoYW5nZV90eXBlJzoKICAgICAgICAgICAgLy8gaWYgc2VsZWN0ZWQgdHlwZSBvZiBpbXBvcnQvZXhwb3J0IGNoYW5nZWQgLSBzYXZlIGl0IGFuZCByZWxvYWQgcGFnZQogICAgICAgICAgICAkc2VsZWN0ZWRfdHlwZSA9ICRwYXJhbXNbJ2ltcG9ydF9leHBvcnRfdHlwZSddOwogICAgICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2VsZWN0ZWRfdHlwZScsICRzZWxlY3RlZF90eXBlKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjb250aW51ZSc6CiAgICAgICAgICAgIC8vIGdpdmUgZXZlcnl0aGluZyB0byB0aGUgaW1wb3J0X2V4cG9ydCB0eXBlIGFuZCBpdCB3aWxsIGRvIHRoZSByZXN0IAogICAgICAgICAgICAkaW1wb3J0X2V4cG9ydC0+cHJvY2VzcygkcGFyYW1zKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2NhbmNlbCc6CiAgICAgICAgICAgIC8vIGp1c3QgZ28gYmFjayB0byB0aGUgc3RhcnQKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAvLyBjYXNlICdiYWNrJzoKICAgICAgICAvLyAgICAgLy8gLi4uLgogICAgICAgIC8vICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgLy8gZG8gbm90aGluZyAtIGEgdmFsdWUgc2hvdWxkIGJlIHNldCBmb3IgdGhlIHN1Ym1pdAogICAgfQoKfSBlbHNlaWYgKCBpc3NldCgkaW1wb3J0X2V4cG9ydCkpIHsKICAgIC8vIGlmIG5vIHN1Ym1pdCB2YWx1ZSwgYnV0IGltcG9ydF9leHBvcnQgb2JqZWN0IGV4aXN0cywgdGhlbiBqdXN0IHByb2Nlc3MgaXQgLSBzdGVwIDEKICAgICRpbXBvcnRfZXhwb3J0LT5wcm9jZXNzKCk7Cgp9CgoKLy8gc2V0IHVwIHRoZSB0ZW1wbGF0ZQokdGVtcGxhdGVfbmFtZSA9ICRpbXBvcnRfZXhwb3J0LT50ZW1wbGF0ZV9uYW1lID8/ICdkZWZhdWx0YWRtaW4udHBsJzsKJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCAkdGhpcy0+R2V0VGVtcGxhdGVSZXNvdXJjZSgkdGVtcGxhdGVfbmFtZSksIG51bGwsIG51bGwsICRzbWFydHkgKTsKJHRwbC0+YXNzaWduKCdtb2QnLCAkdGhpcyk7CiRpbnB1dF9vdXRwdXRfdHlwZV9vcHRpb25zID0gWycnID0+ICR0aGlzLT5MYW5nKCd0eXBlX3NlbGVjdCcpXTsKZm9yZWFjaCggSW1wb3J0RXhwb3J0OjpJTVBPUlRfRVhQT1JUX1RZUEVTIGFzICR0eXBlICkgewogICAgJGlucHV0X291dHB1dF90eXBlX29wdGlvbnNbJHR5cGVdID0gJHRoaXMtPkxhbmcoInR5cGVfJHR5cGUiKTsKfQokdHBsLT5hc3NpZ24oJ2lucHV0X291dHB1dF90eXBlX29wdGlvbnMnLCAkaW5wdXRfb3V0cHV0X3R5cGVfb3B0aW9ucyk7CiR0cGwtPmFzc2lnbignc2VsZWN0ZWRfdHlwZScsICRzZWxlY3RlZF90eXBlKTsKCiR0cGwtPmFzc2lnbignZXh0cmFwYXJtcycsIFtdKTsKaWYgKCBpc3NldCgkaW1wb3J0X2V4cG9ydCkgKSB7CiAgICAvLyBwYXNzIHRoZSBlbnRpcmUgaW1wb3J0X2V4cG9ydCBvYmplY3QgdG8gdGhlIHRlbXBsYXRlICYgc3RlcAogICAgJHRwbC0+YXNzaWduKCdpbXBvcnRfZXhwb3J0JywkaW1wb3J0X2V4cG9ydCk7CiAgICAkdHBsLT5hc3NpZ24oJ2V4dHJhcGFybXMnLCBbJ3N0ZXAnPT4kaW1wb3J0X2V4cG9ydC0+c3RlcF0pOwogICAgJHRwbC0+YXNzaWduKCAnc2VsZWN0ZWRfc291cmNlcycsICRpbXBvcnRfZXhwb3J0LT5nZXRfc2VsZWN0ZWRfc291cmNlcygpICk7Cn0KCiR0cGwtPmRpc3BsYXkoKTsKCmlmICggaXNzZXQoJGltcG9ydF9leHBvcnQpICkgewogICAgJGltcG9ydF9leHBvcnQtPmFqYXhfa2V5ID0gbnVsbDsgLy8gY2xlYXIgYW55IHByZXZpb3VzIGtleSAtIGRhdGEgYWxyZWFkeSBzYXZlZCAmIGdpdmVuIHRvIHNtYXJ0eSAKfQoKCg==]]></data>
	</file>
	<file>
	  <filename>/ImportExport.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIChjKSAyMDA0LTIwMjQgYnkgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gKGZvdW5kYXRpb25AY21zbWFkZXNpbXBsZS5vcmcpCiMgUHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgTW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvaW1wb3J0ZXhwb3J0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMKIyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7CiMgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KIyBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4KIyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAKIyAgICBOb3RlOiB0aGVyZSBhcmUgbm8gaW5zdGFsbC91bmluc3RhbGwvdXBncmFkZSBtZXRob2RzIGluIHRoaXMgbW9kdWxlIGFzIGl0IGlzIGludGVuZGVkIHRvIGJlCiMgICAgaW5zdGFsbGVkIG9ubHkgYXMgcmVxdWlyZWQgdGhlbiB1bmluc3RhbGxlZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBJbXBvcnRFeHBvcnQgZXh0ZW5kcyBDTVNNb2R1bGUKewogICAgY29uc3QgTU9EVUxFX1ZFUlNJT04gPSAnMS4xJzsKCiAgICBjb25zdCBJTVBPUlRfRVhQT1JUX1RZUEVTID0gWwogICAgICAgICd3cF94bWxfdG9fTElTRScsCiAgICAgICAgLy8gJ3dwX2RiX3RvX05ld3MnLCAgICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZCAtIG5lZWRzIHVwZGF0aW5nIC0gaWYgYWN0dWFsbHkgbmVlZGVkPz8/CiAgICBdOwogICAgY29uc3QgQ0xBU1NfUFJFRklYID0gJ0ltcG9ydEV4cG9ydFxpbXBleHBfJzsKICAgIGNvbnN0IExBTkdfUFJPTVBUX1NVRkZJWCA9ICdfcHJvbXB0JzsKICAgIGNvbnN0IEFKQVhfUFJPQ0VTU0lOR19ERVRBSUxTID0gJ0ltcG9ydEV4cG9ydF9hamF4X3Byb2Nlc3NpbmdfZGV0YWlscyc7CgogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnSW1wb3J0RXhwb3J0JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiBzZWxmOjpNT0RVTEVfVkVSU0lPTjsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMic7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnS2l3aUNocmlzJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2NocmlzQGJpbm5vdmF0aXZlLmNvLnVrJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuIGNtc21zKCktPkdldFNtYXJ0eSgpLT5mZXRjaCgnbW9kdWxlX2ZpbGVfdHBsOkltcG9ydEV4cG9ydDtjaGFuZ2Vsb2cudHBsJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgewogICAgICAgICR1aWQgPSBnZXRfdXNlcmlkKCk7CiAgICAgICAgcmV0dXJuIFVzZXJPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+VXNlckluR3JvdXAoJHVpZCwxKTsgIC8vIGFkbWluIGdyb3VwCiAgICB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpIHsgcmV0dXJuICR0aGlzLT5nZXRfaGVhZGVyX2Nzc19qcygpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0KCgoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkgCiAgICB7IAogICAgICAgICRwYXRoID0gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKTsKICAgICAgICAkaGVscCA9ICc8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSInLiRwYXRoLicvbGliL2Nzcy9pbXBvcnRleHBvcnRfaGVscC5jc3MiPic7CiAgICAgICAgJGhlbHAgLj0gQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9yZWFkbWUubWQnKTsKICAgICAgICByZXR1cm4gJGhlbHA7IAogICAgfQoKCiAgICAvKioKICAgICAqIG91dHB1dCB0aGUgY3NzIGFuZCBqcyBmaWxlIGxpbmtzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBoZWFkIGZvciB0aGUgYWRtaW4gaW50ZXJmYWNlCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2hlYWRlcl9jc3NfanMoKSAKICAgIHsKICAgICAgICBpZiAoY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJ0ltcG9ydEV4cG9ydF9qc19jc3NfbG9hZGVkJykpIHJldHVybiAnJzsKICAgICAgICAkcGF0aCA9ICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCk7CiAgICAgICAgJGFkbWluX2Nzc19qcyA9ICcKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJy4kcGF0aC4nL2xpYi9jc3MvaW1wb3J0ZXhwb3J0X2FkbWluLmNzcz92Jy5zZWxmOjpNT0RVTEVfVkVSU0lPTi4nIj4KICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSInLiRwYXRoLicvbGliL2pzL2ltcG9ydGV4cG9ydF9hZG1pbi5qcz92Jy5zZWxmOjpNT0RVTEVfVkVSU0lPTi4nIj48L3NjcmlwdD4nOwogICAgICAgIGNtc191dGlsczo6c2V0X2FwcF9kYXRhKCdJbXBvcnRFeHBvcnRfanNfY3NzX2xvYWRlZCcsIDEpOwoKICAgICAgICByZXR1cm4gJGFkbWluX2Nzc19qczsKICAgIH0KCgoKICAgIC8qKgogICAgICogIGdldCBhcnJheSBvZiB1c2VycyBhbmQgaWRzCiAgICAgKiAgQHJldHVybiBhcnJheSBvZiBpZCA9PiB1c2VybmFtZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJzKCkKICAgIHsKICAgICAgICAkdXNlcl9saXN0ID0gW107CiAgICAgICAgJHVzZXJvcHMgPSBcVXNlck9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRhbGx1c2VycyA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnMoKTsKICAgICAgICBmb3JlYWNoICgkYWxsdXNlcnMgYXMgJHVzZXIpIHsKICAgICAgICAgICAgJHVzZXJfbGlzdFskdXNlci0+aWRdID0gJHVzZXItPnVzZXJuYW1lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gJHVzZXJfbGlzdDsKICAgIH0KCgogICAgLyoqCiAgICAqICAgb3V0cHV0cyBhIGpzb24gZXJyb3IgbWVzc2FnZSB3aGVuIGFqYXggY2FsbCB1c2VkLCB0aGVuIGRpZQogICAgKiAgIEBwYXJhbSBzdHJpbmcgZXJyb3IgbWVzc2FnZSB0byBiZSByZXR1cm5lZCBpbiBqc29uIGZvcm1hdAogICAgKi8KICAgIGZ1bmN0aW9uIE91dHB1dEFqYXhFcnJvcigkZXJyb3IpCiAgICB7CiAgICAgICAgaHR0cF9yZXNwb25zZV9jb2RlKDIwMCk7ICAgIC8vIHNpZ25hbCBlcnJvciBieSByZXR1cm5pbmcgZXJyb3IgdmFsdWUKICAgICAgICBkaWUoIGpzb25fZW5jb2RlKCBbJ2Vycm9yJyA9PiAkZXJyb3JdKSApOyAKICAgIH0KCgoKICAgIC8qKgogICAgICogIHJldHJpZXZlIHRoZSBkZXRhaWxzIGZvciBhamF4IHByb2Nlc3NpbmcgaW4gcHJvZ3Jlc3MKICAgICAqICB0aGlzIGNvZGUgaW4gbW9kdWxlIGNsYXNzIC0gYXMgaW1wb3J0L2V4cG9ydCB0eXBlIGlzIG5vdCBrbm93biAtIHNlZSBJbXBvcnRFeHBvcnRCYXNlIGZvciBzZXQgJiByZXNldAogICAgICogIEBwYXJhbSBzdHJpbmcgJGtleSAtIHJlcXVpcmVkIC0gdGhlIHByZXZpb3VzbHkgc2F2ZWQga2V5IGZvciBhamF4IHByb2Nlc3NpbmcKICAgICAqICBAcmV0dXJuIG9iamVjdHxudWxsIGFycmF5IG9mIHNhdmVkIGRldGFpbHMsIG9yIG51bGwgaWYga2V5IGluY29ycmVjdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FqYXhfcHJvY2Vzc2luZ19kZXRhaWxzKCRwcm92aWRlZF9rZXkpCiAgICB7CiAgICAgICAgJHNhdmVkX2RldGFpbHMgPSBqc29uX2RlY29kZSggJHRoaXMtPkdldFByZWZlcmVuY2Uoc2VsZjo6QUpBWF9QUk9DRVNTSU5HX0RFVEFJTFMpICk7CiAgICAgICAgaWYgKCBlbXB0eSgkc2F2ZWRfZGV0YWlscykgfHwgJHByb3ZpZGVkX2tleSE9PSRzYXZlZF9kZXRhaWxzLT5hamF4X2tleSApIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkc2F2ZWRfZGV0YWlsczsKICAgIH0KCgp9CgoK]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vIE5vdGU6IGluZGVudGVkICRsYW5nIHN0cmluZ3MgaGF2ZSBub3QgeWV0IGJlZW4gY29uZmlybWVkIGFzIGN1cnJlbnQKCiNBCiAgICAkbGFuZ1snYXJ0aWNsZV9jb3VudCddID0gJ0FydGljbGVzIGltcG9ydGVkJzsKICAgICRsYW5nWydhdXRob3JfZGVmYXVsdCddID0gJ0RlZmF1bHQgQXV0aG9yJzsKCiNCCgoKI0MKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydjaGFuZ2VfdHlwZSddID0gJ0NoYW5nZSB0eXBlJzsKJGxhbmdbJ2NsZWFyX3NlbGVjdGlvbiddID0gJ0NsZWFyIHNlbGVjdGlvbic7CiAgICAkbGFuZ1snY2hlY2snXSA9ICdDaGVjayc7CiAgICAkbGFuZ1snbmV3c19maWVsZF9leGlzdHMnXSA9ICdBIE5ld3MgY3VzdG9tIGZpZWxkIHdpdGggdGhlIG5hbWUgJXMgYWxyZWFkeSBleGlzdHMnOwogICAgJGxhbmdbJ2NsZWFyX25ld3NfY2F0ZWdvcmllcyddID0gJ0RlbGV0ZSBhbGwgTmV3cyBjYXRlZ29yaWVzJzsKICAgICRsYW5nWydjbGVhcl9uZXdzX2ZpZWxkZGVmcyddID0gJ0RlbGV0ZSBhbGwgTmV3cyBjdXN0b20gZmllbGRzJzsKICAgICRsYW5nWydjbGVhcl9uZXdzX3Bvc3RzJ10gPSAnQ2xlYXIgYWxsIE5ld3MgcG9zdHMnOwogICAgJGxhbmdbJ2NvbF93cGtleSddID0gJ1dQIE1ldGEgS2V5JzsKICAgICRsYW5nWydjb2xfZmxkbmFtZSddID0gJ05ld3MgRmllbGQgTmFtZSc7CiAgICAkbGFuZ1snY3JlYXRlZF9uZXdzX2ZpZWxkJ10gPSAnQ3JlYXRlZCBOZXdzIGN1c3RvbSBmaWVsZDogJXMnOwoKI0QKICAgICRsYW5nWydkYl9ob3N0J10gPSAnRGF0YWJhc2UgSG9zdG5hbWUnOwogICAgJGxhbmdbJ2RiX25hbWUnXSA9ICdEYXRhYmFzZSBOYW1lJzsKICAgICRsYW5nWydkYl91c2VyJ10gPSAnRGF0YWJhc2UgVXNlcm5hbWUnOwogICAgJGxhbmdbJ2RiX3Bhc3MnXSA9ICdEYXRhYmFzZSBQYXNzd29yZCc7CiAgICAkbGFuZ1snZGJfcHJlZml4J10gPSAnRGF0YWJhc2UgUHJlZml4JzsKCgojRQogICAgJGxhbmdbJ2VuYWJsZV9wb3N0bWV0YV9tYXBwaW5nJ10gPSAnRW5hYmxlIGltcG9ydGluZyBXb3JkcHJlc3MgbWV0YWRhdGEgYXMgTmV3cyBmaWVsZHMnOwogICAgJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZSddID0gJ0EgZHVwbGljYXRlICVzIHdhcyBkZXRlY3RlZCc7CiAgICAkbGFuZ1snZXJyb3JfaW52YWxpZHZhbHVlJ10gPSAnVGhlIHZhbHVlICVzIGlzIGludmFsaWQgZm9yIGEgJXMnOwogICAgJGxhbmdbJ2Vycm9yX2ludmFsaWRfcG9zdG1ldGEnXSA9ICdJbnZhbGlkIGRhdGEgZW50ZXJlZCBmb3IgcG9zdG1ldGEnOwogICAgJGxhbmdbJ2Vycm9yX2ludmFsaWR1cmwnXSA9ICdJbnZhbGlkIFVSTCA8ZW0+KG1heWJlIGl0IGlzIGFscmVhZHkgdXNlZCwgb3IgdGhlcmUgYXJlIGludmFsaWQgY2hhcmFjdGVycyk8L2VtPic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZXR5cGUnXSA9ICdVcGxvYWQgZmFpbGVkLiBBbGxvd2VkIGZpbGUgdHlwZXM6ICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ1RoZXJlIHdhcyBhbiBlcnJvciB1cGxvYWRpbmcgdGhlIGZpbGUgJXMuJzsKJGxhbmdbJ2Vycm9yX25vX2ltcG9ydF9pdGVtcyddID0gJ05vIGl0ZW1zIGZvdW5kIHRvIGltcG9ydCc7Ci8vIGVycm9yX211bHRpcGxlX2NhdGVnb3JpZXMKJGxhbmdbJ2Vycm9yX211bHRpcGxlX2NhdGVnb3JpZXMnXSA9ICclcyBpdGVtcyBoYWQgbXVsdGlwbGUgY2F0ZWdvcmllcyBzZXQsIGJ1dCBMSVNFIGNhdGVnb3J5IG9ubHkgZW5hYmxlZCBmb3Igc2luZ2xlIGNhdGVnb3JpZXMuJzsKCgoKCiNGCiRsYW5nWydmaWVsZF9tYXBfZGVzdGluYXRpb25fZmllbGRzJ10gPSAnZGVzdGluYXRpb24gZmllbGRzJzsKJGxhbmdbJ2ZpZWxkX21hcF9zb3VyY2VfZmllbGRzJ10gPSAnc291cmNlIGZpZWxkcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdJbXBvcnQgRXhwb3J0JzsKCgojRwoKCiNICgoKI0kKJGxhbmdbJ2ltcG9ydF9wcm9ncmVzcyddID0gJ0ltcG9ydCBQcm9ncmVzcyc7CiAgICAkbGFuZ1snaW1hZ2VfY291bnQnXSA9ICdJbWFnZSBDb3VudCc7CiAgICAkbGFuZ1snaW1hZ2VfZGVzdCddID0gJ0ltYWdlIERlc3RpbmF0aW9uJzsKICAgICRsYW5nWydpbWFnZV9lcnJvcnMnXSA9ICdJbWFnZSBFcnJvcnMnOwogICAgJGxhbmdbJ2luZm9fY2xlYXJfbmV3c19jYXRlZ29yaWVzJ10gPSAnSWYgZW5hYmxlZCwgQUxMIE5ld3MgY2F0ZWdvcmllcyB3aWxsIGJlIGRlbGV0ZWQuICBPbmx5IHZhbGlkIGlmIGNsZWFyIHBvc3RzIGlzIGFsc28gc2VsZWN0ZWQuJzsKICAgICRsYW5nWydpbmZvX2NsZWFyX25ld3NfZmllbGRkZWZzJ10gPSAnSWYgZW5hYmxlZCwgQUxMIE5ld3MgZmllbGQgZGVmaW5pdGlvbnMgd2lsbCBiZSBkZWxldGVkLiAgT25seSB2YWxpZCBpZiBjbGVhciBwb3N0cyBpcyBhbHNvIHNlbGVjdGVkLic7CiAgICAkbGFuZ1snaW5mb19jbGVhcl9uZXdzX3Bvc3RzJ10gPSAnSWYgZW5hYmxlZCwgQUxMIE5ld3MgcG9zdHMgd2lsbCBiZSBkZWxldGVkJzsKICAgICRsYW5nWydpbmZvX2ltYWdlX2Rlc3QnXSA9ICdTcGVjaWZ5IHRoZSBuYW1lIG9mIGEgZm9sZGVyIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGVsaWdhYmxlIGltYWdlcyBzaG91bGQgYmUgY29waWVkIHRvJzsKICAgICRsYW5nWydpbmZvX2ltcG9ydF9pbWFnZXMnXSA9ICdUaGlzIHByb2Nlc3MgaW52b2x2ZXMgcGFyc2luZyB0aGUgV29yZHByZXNzIHBvc3QgY29udGVudCBzZWFyY2hpbmcgZm9yIGltYWdlIHRhZ3MsIGFuZCB0cnlpbmcgdG8gdGhlbiBjb3B5IHRoZSBpbWFnZXMgdG8gdGhlIGxvY2FsIHNlcnZlciwgYW5kIGNoYW5nZSB0aGUgcG9zdCBjb250ZW50IGFjY29yZGluZ2x5LiAgVHJhbnNsYXRpb24gd2lsbCBvbmx5IGJlIGRvbmUgZm9yIGltYWdlcyB0aGF0IGJlZ2luIHdpdGggb25lIG9mIHRoZSBpbWFnZSBwYXRocyBsaXN0ZWQgYmVsb3cuJzsKICAgICRsYW5nWydpbmZvX2ltcG9ydF9wb3N0cyddID0gJ0ltcG9ydCBwb3N0cyBmcm9tIFdvcmRQcmVzcyZ0cmFkZTsgdG8gTmV3cyc7CiAgICAkbGFuZ1snaW5mb19hdXRob3JfZGVmYXVsdCddID0gJ1NlbGVjdCBkZWZhdWx0IGFkbWluIGF1dGhvci4gSWYgV1AgcG9zdCBhdXRob3Igbm90IGEgQ01TTVMgQmFja2VuZCBVc2VyIHRoaXMgZGVmYXVsdCBhdXRob3Igd2lsbCBiZSB1c2VkLic7CiAgICAkbGFuZ1snaW5mb19wb3N0bWV0YV9tYXBwaW5nJ10gPSA8PDxFT1QKICAgIDxwPlRoaXMgZnVuY3Rpb25hbGl0eSBhbGxvd3MgY29udmVydGluZyBwb3N0IGRhdGEgc3RvcmVkIGFzIG1ldGFkYXRhIGludG8gTmV3cyBjdXN0b20gZmllbGRzLiAgWW91IG11c3Qgc2VsZWN0IGEgd29yZHByZXNzIG1ldGFkYXRhIGZpZWxkIGFuZCBlbnRlciBhbiBhcHByb3ByaWF0ZSBOZXdzIGZpZWxkIG5hbWUuPHA+PGJyLz4KICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSXQgaXMgbm90IGFwcHJvcHJpYXRlIHRvIGNvcHkgQUxMIG9mIHRoZSB3b3JkcHJlc3MgbWV0YWRhdGEuICBZb3UgbWF5IG5lZWQgdG8gc2VhcmNoIHRocm91Z2ggdGhlIHdwX3Bvc3RtZXRhIHRhYmxlIHRvIGRldGVybWluZSB0aGUga2V5cyBmb3IgdGhlIHRhYmxlIHRoYXQgeW91IHdhbnQgdG8gaW1wb3J0LjwvcD48YnIvPgogICAgPHA+TmV3IE5ld3MgZmllbGRzIHdpbGwgYmUgY3JlYXRlZCBmb3IgZWFjaCBmaWVsZG5hbWUgZW50ZXJlZCwgcHVibGljIHRleHQgZmllbGRzLjwvcD4KICAgIEVPVDsKICAgICRsYW5nWydpbmZvX3Jvb3RfcGF0aCddID0gJ1RoZSBjb21wbGV0ZSBwYXRoIHRvIHRoZSB3b3JkcHJlc3MgaW5zdGFsbGF0aW9uIG9uIHRoaXMgc2VydmVyLiBTaW1pbGFyIHRvIHRoZSByb290IHBhdGggb2YgdGhpcyB3ZWJzaXRlOiAlcyc7CiAgICAkbGFuZ1snaW5mb19yb290X3VybCddID0gJ1RoZSBjb21wbGV0ZSBwdWJsaWMgVVJMIHRvIHRoZSB3b3JkcHJlc3MgaW5zdGFsbGF0aW9uLiAnOwogICAgJGxhbmdbJ2luZm9fdXNlcl9wdyddID0gJ1NwZWNpZnkgdGhlIHBhc3N3b3JkIGZvciBpbXBvcnRlZCBGRVUgVXNlcnMnOwogICAgJGxhbmdbJ2ltYWdlX3BhdGhzJ10gPSAnSW1hZ2UgUGF0aHMnOwogICAgJGxhbmdbJ2ltcG9ydCddID0gJ0ltcG9ydCc7CiAgICAkbGFuZ1snaW1wb3J0X2NhdGVnb3JpZXMnXSA9ICdJbXBvcnQgV29yZFByZXNzJnRyYWRlOyBDYXRlZ29yaWVzJzsKICAgICRsYW5nWydpbXBvcnRfcG9zdHMnXSA9ICdJbXBvcnQgV29yZFByZXNzJnRyYWRlOyBQb3N0cyc7CiAgICAkbGFuZ1snaW1wb3J0X2ltYWdlcyddID0gJ0ltcG9ydCBXb3JkUHJlc3MmdHJhZGU7IEltYWdlcyc7CiAgICAkbGFuZ1snaW1wb3J0X3VzZXJzJ10gPSAnSW1wb3J0IFVzZXJzJzsKICAgICRsYW5nWydpbmZvX2ltcG9ydF9jYXRlZ29yaWVzJ10gPSAnSWYgZW5hYmxlZCwgdGhpcyBvdGlvbiB3aWxsIGNyZWF0ZSBOZXdzIGNhdGVnb3JpZXMgZm9yIGVhY2ggdW5pcXVlIHdvcmRwcmVzcyBjYXRlZ29yeSBuYW1lLCBhbmQgYWxzbyBhZGQgdGhlIGltcG9ydGVkIGFydGljbGUgaW50byBtYXRjaGluZyBjYXRlZ29yaWVzLiAgVGhlIHN5c3RlbSBtYXkgbm90IGhhbmRsZSBuZXN0ZWQgY2F0ZWdvcmllcyB3aXRoIGlkZW50aWNhbCBuYW1lcyB0byBvdGhlciBuZXN0ZWQgY2F0ZWdvcmllcy4gIGkuZTogIEhvY2tleSA+PiBXb21lbnMgdnMuICBTb2NjZXIgPj4gV29tZW5zJzsKICAgICRsYW5nWydpbmZvX2ltYWdlX3BhdGhzJ10gPSAnU3BlY2lmeSA8ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPiBVUkwgcHJlZml4ZXMgdGhhdCByZXByZXNlbnQgaW1hZ2VzIHRoYXQgc2hvdWxkIGJlIGNvcGllZCBmcm9tIHRoZSB3b3JkcHJlc3Mgc2l0ZSB0byB0aGUgbmV3IE5ld3MgaW5zdGFsbGF0aW9uLiAgaS5lOiBodHRwOi8vd3d3Lm15d3BzaXRlLmNvbS93cC1jb250ZW50L3VwbG9hZHMnOwoKI0oKCgojSwoKCiNMCiRsYW5nWydsYWJlbF9zZWxlY3Rfc291cmNlJ10gPSAnLS0tIHNlbGVjdCBzb3VyY2UgZmllbGQgLS0tJzsKJGxhbmdbJ2xhYmVsX3dwX3htbF90b19MSVNFX2xpc2VfaW5zdGFuY2UnXSA9ICdTZWxlY3QgTElTRSBJbnN0YW5jZSB0byBpbXBvcnQgdG8nOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0Vfc3VibWl0X2NvbnRpbnVlJ10gPSAnQ29udGludWUnOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0Vfc3VibWl0X2ltcG9ydCddID0gJ0ltcG9ydCc7CiRsYW5nWydsYWJlbF93cF94bWxfdG9fTElTRV93cF94bWxfZmlsZSddID0gJ1NlbGVjdCBXb3JkUHJlc3MmdHJhZGU7IFhNTCBmaWxlJzsKJGxhbmdbJ2xhYmVsX3dwX3htbF90b19MSVNFX2xpc2VfdG9fd3BfZmllbGRfbWFwJ10gPSAnU2VsZWN0IExJU0UgZmllbGRzIHRvIG1hcCBXb3JkUHJlc3MmdHJhZGU7IGNvbnRlbnQgdG8nOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0VfbGltaXRfc291cmNlX3NlbGVjdGlvbiddID0gJ0FsbG93IHNvdXJjZSBmaWVsZHMgdG8gYmUgc2VsZWN0ZWQgb25seSBvbmNlJzsKJGxhbmdbJ2xhYmVsX3dwX3htbF90b19MSVNFX2RlbGV0ZV9hbGxfaXRlbXNfYmVmb3JlX2ltcG9ydCddID0gJ0RlbGV0ZSBhbGwgTElTRSBpdGVtcyBiZWZvcmUgaW1wb3J0IC0gd2FybmluZzogdGhpcyBjYW5ub3QgYmUgdW5kb25lJzsKJGxhbmdbJ2xhYmVsX3dwX3htbF90b19MSVNFX3NvdXJjZV9iYXNlX3VybHMnXSA9ICdTb3VyY2UgYmFzZSBVUkwocykgLSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1cmxzIHRvIGJlIHN0cmlwcGVkIGZyb20gaW1hZ2UgcGF0aHMgYW5kIHJlbGF0aXZlIENNU01TIHVybHMnOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0VfYXV0b19jcmVhdGVfY2F0ZWdvcmllcyddID0gJ0F1dG8gY3JlYXRlIGNhdGVnb3JpZXMgZnJvbSBpbXBvcnRlZCBwb3N0cyc7Ci8vIGxhYmVsX3dwX3htbF90b19MSVNFX2RlZmF1bHRfb3duZXIgCiRsYW5nWydsYWJlbF93cF94bWxfdG9fTElTRV9kZWZhdWx0X293bmVyJ10gPSAnU2VsZWN0IERlZmF1bHQgT3duZXIgLSBpZiBXUCBwb3N0IGF1dGhvciBub3QgYSBDTVNNUyBCYWNrZW5kIFVzZXIgdGhpcyBkZWZhdWx0IGF1dGhvciB3aWxsIGJlIHVzZWQuIE5vdGU6IHVzZSAiXyIgaW5zdGVhZCBvZiBzcGFjZXMgb3IgIi0iIGluIHRoZSB1c2VybmFtZS4nOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0Vfc3VibWl0X2NvbXBsZXRlZCddID0gJ0ltcG9ydCBDb21wbGV0ZWQnOwovLyBsYWJlbF93cF94bWxfdG9fTElTRV91cGxvYWRzX2xvY2F0aW9uCiRsYW5nWydsYWJlbF93cF94bWxfdG9fTElTRV91cGxvYWRzX2xvY2F0aW9uJ10gPSAnVXBsb2FkcyBMb2NhdGlvbiAtIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSAuZS5nLiBibG9nLWltYWdlcyc7CiRsYW5nWydsYWJlbF93cF94bWxfdG9fTElTRV9zdWJtaXRfcmV0cnlfYXR0YWNobWVudHMnXSA9ICdSZXRyeSBBdHRhY2htZW50cyc7CiRsYW5nWydsYWJlbF93cF94bWxfdG9fTElTRV9jYW5jZWxfYWpheCddID0gJ0NhbmNlbCBJbXBvcnQnOwokbGFuZ1snbGFiZWxfd3BfeG1sX3RvX0xJU0VfY2FuY2VsX2ltcG9ydCddID0gJ0NhbmNlbCBJbXBvcnQnOwogICAgJGxhbmdbJ2xlZ2VuZF9wb3N0bWV0YV9tYXBwaW5nJ10gPSAnTWFwIFdvcmRwcmVzcyZ0cmFkZTsgTWV0YSBEYXRhJzsKCgojTQokbGFuZ1snbWVzc2FnZV9maWxlX3VwbG9hZGVkJ10gPSAnRmlsZSAlcyBpcyBzdWNjZXNzZnVsbHkgdXBsb2FkZWQuJzsKJGxhbmdbJ21lc3NhZ2VfbGlzZV9kZWxldGVkX2FsbF9pdGVtcyddID0gJ0FsbCAlcyBpdGVtcyBkZWxldGVkIGZyb20gTElTRSBpbnN0YW5jZTogJXMnOwokbGFuZ1snbWVzc2FnZV9pbXBvcnRlZF9pdGVtcyddID0gJ0ltcG9ydGVkICVzIGl0ZW1zIGludG8gJXMnOwokbGFuZ1snbWVzc2FnZV9pbXBvcnRlZF9hdHRhY2htZW50cyddID0gJ0ltcG9ydGVkICVzIGF0dGFjaG1lbnRzJzsKJGxhbmdbJ21lc3NhZ2VfbmV3X2NhdGVnb3JpZXNfYWRkZWQnXSA9ICclcyBOZXcgY2F0ZWdvcmllcyBhZGRlZDogJXMnOwokbGFuZ1snbWVzc2FnZV9jb250ZW50X3VwZGF0ZWQnXSA9ICdDb250ZW50IHVwZGF0ZWQgZm9yICVzIGl0ZW1zJzsKCiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSwgYWRkcyB0aGUgYWJpbGl0eSB0byBJbXBvcnQgJiBFeHBvcnQgY29udGVudC4nOwogICAgJGxhbmdbJ21zZ193cGZvdW5kJ10gPSAnV29yZFByZXNzJnRyYWRlOyBpbnN0YWxsYXRpb24gZm91bmQnOwoKI04KICAgICRsYW5nWydub25lJ10gPSAnTm9uZSc7CgojTwogICAgJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKCiNQCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBJbXBvcnRFeHBvcnQgbW9kdWxlIGhhcyBiZWVuIGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIEltcG9ydEV4cG9ydCBtb2R1bGUgaGFzIGJlZW4gdW5pbnN0YWxsZWQnOwokbGFuZ1sncHJldmlld193cF94bWwnXSA9ICdTZWxlY3RlZCBXb3JkUHJlc3MmdHJhZGU7IFhNTCBmaWxlOiAiJXMiIHdpdGggJWQgaXRlbXMsICVkIGF0dGFjaG1lbnRzIGFuZCAlZCBhdXRob3JzJzsKJGxhbmdbJ3ByZXZpZXdfbGlzZV9pbnN0YW5jZSddID0gJ1NlbGVjdGVkIExJU0UgSW5zdGFuY2U6ICIlcyIgd2l0aCAlZCBpdGVtcyc7CgoKI1EKCgojUgogICAgJGxhbmdbJ3Jvb3RfcGF0aCddID0gJ1Jvb3QgUGF0aCc7CiAgICAkbGFuZ1sncm9vdF91cmwnXSA9ICdSb290IFVSTCc7CgojUwokbGFuZ1snc2VsZWN0ZWRfaW1wb3J0X2V4cG9ydCddID0gJ1NlbGVjdGVkIEltcG9ydCBFeHBvcnQgVHlwZSc7CiRsYW5nWydzdGVwXzFfc2VsZWN0J10gPSAnU2VsZWN0JzsgCiRsYW5nWydzdGVwXzJfY29uZmlnJ10gPSAnQ29uZmlndXJhdGlvbic7IAokbGFuZ1snc3RlcF8zX2ltcG9ydCddID0gJ0ltcG9ydCc7IAokbGFuZ1snc3RlcF80X2NvbXBsZXRlZCddID0gJ0NvbXBsZXRlZCc7IAoKCgojVAogICAgJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKICAgICRsYW5nWyd0aXRsZV9pbXBvcnQnXSA9ICdJbXBvcnQgZnJvbSBXb3JkUHJlc3MmdHJhZGU7JzsKJGxhbmdbJ3R5cGVfc2VsZWN0J10gPSAnLS0tIHNlbGVjdCBJbXBvcnQgRXhwb3J0IHR5cGUgLS0tJzsKJGxhbmdbJ3R5cGVfd3BfeG1sX3RvX0xJU0UnXSA9ICdXb3JkcHJlc3MgeG1sIHRvIExJU0UnOwoKCiNVCiAgICAkbGFuZ1sndXNlcl9jb3VudCddID0gJ1VzZXIgQ291bnQnOwogICAgJGxhbmdbJ3VzZXJfcHcnXSA9ICdVc2VyIFBhc3N3b3JkJzsKCiNWCgoKI1cKICAgICRsYW5nWyd3YXJuX2xvbmd0aW1lJ10gPSAnPHN0cm9uZz5XYXJuaW5nPC9zdHJvbmc+IFRoaXMgb3BlcmF0aW9uIG1heSB0YWtlIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiB0aW1lIHRvIGNvbXBsZXRlLiAgVXNlIGNhdXRpb24sIGFuZCBlbnN1cmUgdGhhdCB5b3VyIFBIUCBpcyBjb25maWd1cmVkIHNvIHRoYXQgdGhlIHNldF90aW1lX2xpbWl0IG1ldGhvZCB3b3JrcyBmcm9tIHdpdGhpbiBwaHAuJzsKICAgICRsYW5nWyd3YXJuX3dwX2ltcG9ydCddID0gJzxzdHJvbmc+V2FybmluZzwvc3Ryb25nPiBUaGlzIG9wZXJhdGlvbiB3aWxsIGNvcHkgV29yZFByZXNzJnRyYWRlOyBwb3N0cyBpbnRvIHRoZSBDTVNNUyBOZXdzIG1vZHVsZS4gIEl0IGRvZXMgbm90IGNoZWNrIGZvciBtYXRjaGluZyBleGlzdGluZyBhcnRpY2xlcywgdGhlcmVmb3JlIHJlcGVhdGVkbHkgcnVubmluZyB0aGlzIGFjdGlvbiBjYW4gY3JlYXRlIGR1cGxpY2F0ZSBibG9nIGFydGljbGVzLiAgV2UgcmVjb21tZW5kIHlvdSBwZXJmb3JtIHRoaXMgaW5zdGFsbGF0aW9uIG9uIGEgYmxhbmsgTmV3cyBpbnN0YWxsYXRpb24sIG9yIG9uIGEgZGV2ZWxvcG1lbnQgaW5zdGFsbGF0aW9uIGZvciB0ZXN0aW5nIHB1cnBvc2VzLic7CiAgICAkbGFuZ1snd3BzZXR0aW5ncyddID0gJ1dvcmRQcmVzcyZ0cmFkZTsgSW5zdGFsbGF0aW9uJzsKCiNYCgoKI1kKCgojWgoKCg==]]></data>
	</file>
	<file>
	  <filename>/lang/LICENCE.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIChjKSAyMDA0LTIwMjQgYnkgQ01TIE1hZGUgU2ltcGxlIEZvdW5kYXRpb24gKGZvdW5kYXRpb25AY21zbWFkZXNpbXBsZS5vcmcpCiMgUHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgTW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvaW1wb3J0ZXhwb3J0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMKIyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7CiMgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KIyBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4KIyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgICAgICAgICAgICAgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDMsIDI5IEp1bmUgMjAwNwoKIENvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4gPGh0dHA6Ly9mc2Yub3JnLz4KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEgZnJlZSwgY29weWxlZnQgbGljZW5zZSBmb3IKc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLgoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYW5kIG90aGVyIHByYWN0aWNhbCB3b3JrcyBhcmUgZGVzaWduZWQKdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LAp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0bwpzaGFyZSBhbmQgY2hhbmdlIGFsbCB2ZXJzaW9ucyBvZiBhIHByb2dyYW0tLXRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIGZyZWUKc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9zdCBvZiBvdXIgc29mdHdhcmU7IGl0IGFwcGxpZXMgYWxzbyB0bwphbnkgb3RoZXIgd29yayByZWxlYXNlZCB0aGlzIHdheSBieSBpdHMgYXV0aG9ycy4gIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9ncmFtcywgdG9vLgoKICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGVtIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0IGlmIHlvdQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldwpmcmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91CnRoZXNlIHJpZ2h0cyBvciBhc2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLiAgVGhlcmVmb3JlLCB5b3UgaGF2ZQpjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBzb2Z0d2FyZSwgb3IgaWYKeW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4KCiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lCmZyZWVkb21zIHRoYXQgeW91IHJlY2VpdmVkLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlCm9yIGNhbiBnZXQgdGhlIHNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5Cmtub3cgdGhlaXIgcmlnaHRzLgoKICBEZXZlbG9wZXJzIHRoYXQgdXNlIHRoZSBHTlUgR1BMIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6CigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlCmdpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCgogIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucwp0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3IgYm90aCB1c2VycycgYW5kCmF1dGhvcnMnIHNha2UsIHRoZSBHUEwgcmVxdWlyZXMgdGhhdCBtb2RpZmllZCB2ZXJzaW9ucyBiZSBtYXJrZWQgYXMKY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvCmF1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lvbnMuCgogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4KbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlIGluc2lkZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVyCmNhbiBkbyBzby4gIFRoaXMgaXMgZnVuZGFtZW50YWxseSBpbmNvbXBhdGlibGUgd2l0aCB0aGUgYWltIG9mCnByb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljCnBhdHRlcm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGluZGl2aWR1YWxzIHRvCnVzZSwgd2hpY2ggaXMgcHJlY2lzZWx5IHdoZXJlIGl0IGlzIG1vc3QgdW5hY2NlcHRhYmxlLiAgVGhlcmVmb3JlLCB3ZQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UKcHJvZHVjdHMuICBJZiBzdWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKc3RhbmQgcmVhZHkgdG8gZXh0ZW5kIHRoaXMgcHJvdmlzaW9uIHRvIHRob3NlIGRvbWFpbnMgaW4gZnV0dXJlIHZlcnNpb25zCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLgoKICBGaW5hbGx5LCBldmVyeSBwcm9ncmFtIGlzIHRocmVhdGVuZWQgY29uc3RhbnRseSBieSBzb2Z0d2FyZSBwYXRlbnRzLgpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YKc29mdHdhcmUgb24gZ2VuZXJhbC1wdXJwb3NlIGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8KYXZvaWQgdGhlIHNwZWNpYWwgZGFuZ2VyIHRoYXQgcGF0ZW50cyBhcHBsaWVkIHRvIGEgZnJlZSBwcm9ncmFtIGNvdWxkCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0CnBhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBwcm9ncmFtIG5vbi1mcmVlLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUwoKICAwLiBEZWZpbml0aW9ucy4KCiAgIlRoaXMgTGljZW5zZSIgcmVmZXJzIHRvIHZlcnNpb24gMyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mCndvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3IgbWFza3MuCgogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcwpMaWNlbnNlLiAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuICAiTGljZW5zZWVzIiBhbmQKInJlY2lwaWVudHMiIG1heSBiZSBpbmRpdmlkdWFscyBvciBvcmdhbml6YXRpb25zLgoKICBUbyAibW9kaWZ5IiBhIHdvcmsgbWVhbnMgdG8gY29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZSB3b3JrCmluIGEgZmFzaGlvbiByZXF1aXJpbmcgY29weXJpZ2h0IHBlcm1pc3Npb24sIG90aGVyIHRoYW4gdGhlIG1ha2luZyBvZiBhbgpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUKZWFybGllciB3b3JrIG9yIGEgd29yayAiYmFzZWQgb24iIHRoZSBlYXJsaWVyIHdvcmsuCgogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLgoKICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0CnBlcm1pc3Npb24sIHdvdWxkIG1ha2UgeW91IGRpcmVjdGx5IG9yIHNlY29uZGFyaWx5IGxpYWJsZSBmb3IKaW5mcmluZ2VtZW50IHVuZGVyIGFwcGxpY2FibGUgY29weXJpZ2h0IGxhdywgZXhjZXB0IGV4ZWN1dGluZyBpdCBvbiBhCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsCmRpc3RyaWJ1dGlvbiAod2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiksIG1ha2luZyBhdmFpbGFibGUgdG8gdGhlCnB1YmxpYywgYW5kIGluIHNvbWUgY291bnRyaWVzIG90aGVyIGFjdGl2aXRpZXMgYXMgd2VsbC4KCiAgVG8gImNvbnZleSIgYSB3b3JrIG1lYW5zIGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRoYXQgZW5hYmxlcyBvdGhlcgpwYXJ0aWVzIHRvIG1ha2Ugb3IgcmVjZWl2ZSBjb3BpZXMuICBNZXJlIGludGVyYWN0aW9uIHdpdGggYSB1c2VyIHRocm91Z2gKYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4KCiAgQW4gaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2UgZGlzcGxheXMgIkFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMiCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUKZmVhdHVyZSB0aGF0ICgxKSBkaXNwbGF5cyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlLCBhbmQgKDIpCnRlbGxzIHRoZSB1c2VyIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSB3b3JrIChleGNlcHQgdG8gdGhlCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUKd29yayB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgSWYKdGhlIGludGVyZmFjZSBwcmVzZW50cyBhIGxpc3Qgb2YgdXNlciBjb21tYW5kcyBvciBvcHRpb25zLCBzdWNoIGFzIGEKbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4KCiAgMS4gU291cmNlIENvZGUuCgogIFRoZSAic291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrCmZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gICJPYmplY3QgY29kZSIgbWVhbnMgYW55IG5vbi1zb3VyY2UKZm9ybSBvZiBhIHdvcmsuCgogIEEgIlN0YW5kYXJkIEludGVyZmFjZSIgbWVhbnMgYW4gaW50ZXJmYWNlIHRoYXQgZWl0aGVyIGlzIGFuIG9mZmljaWFsCnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YKaW50ZXJmYWNlcyBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBwcm9ncmFtbWluZyBsYW5ndWFnZSwgb25lIHRoYXQKaXMgd2lkZWx5IHVzZWQgYW1vbmcgZGV2ZWxvcGVycyB3b3JraW5nIGluIHRoYXQgbGFuZ3VhZ2UuCgogIFRoZSAiU3lzdGVtIExpYnJhcmllcyIgb2YgYW4gZXhlY3V0YWJsZSB3b3JrIGluY2x1ZGUgYW55dGhpbmcsIG90aGVyCnRoYW4gdGhlIHdvcmsgYXMgYSB3aG9sZSwgdGhhdCAoYSkgaXMgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBmb3JtIG9mCnBhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3IKQ29tcG9uZW50LCBhbmQgKGIpIHNlcnZlcyBvbmx5IHRvIGVuYWJsZSB1c2Ugb2YgdGhlIHdvcmsgd2l0aCB0aGF0Ck1ham9yIENvbXBvbmVudCwgb3IgdG8gaW1wbGVtZW50IGEgU3RhbmRhcmQgSW50ZXJmYWNlIGZvciB3aGljaCBhbgppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQoiTWFqb3IgQ29tcG9uZW50IiwgaW4gdGhpcyBjb250ZXh0LCBtZWFucyBhIG1ham9yIGVzc2VudGlhbCBjb21wb25lbnQKKGtlcm5lbCwgd2luZG93IHN5c3RlbSwgYW5kIHNvIG9uKSBvZiB0aGUgc3BlY2lmaWMgb3BlcmF0aW5nIHN5c3RlbQooaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bwpwcm9kdWNlIHRoZSB3b3JrLCBvciBhbiBvYmplY3QgY29kZSBpbnRlcnByZXRlciB1c2VkIHRvIHJ1biBpdC4KCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbAp0aGUgc291cmNlIGNvZGUgbmVlZGVkIHRvIGdlbmVyYXRlLCBpbnN0YWxsLCBhbmQgKGZvciBhbiBleGVjdXRhYmxlCndvcmspIHJ1biB0aGUgb2JqZWN0IGNvZGUgYW5kIHRvIG1vZGlmeSB0aGUgd29yaywgaW5jbHVkaW5nIHNjcmlwdHMgdG8KY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzClN5c3RlbSBMaWJyYXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0b29scyBvciBnZW5lcmFsbHkgYXZhaWxhYmxlIGZyZWUKcHJvZ3JhbXMgd2hpY2ggYXJlIHVzZWQgdW5tb2RpZmllZCBpbiBwZXJmb3JtaW5nIHRob3NlIGFjdGl2aXRpZXMgYnV0CndoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQppbmNsdWRlcyBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggc291cmNlIGZpbGVzIGZvcgp0aGUgd29yaywgYW5kIHRoZSBzb3VyY2UgY29kZSBmb3Igc2hhcmVkIGxpYnJhcmllcyBhbmQgZHluYW1pY2FsbHkKbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsCnN1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YSBjb21tdW5pY2F0aW9uIG9yIGNvbnRyb2wgZmxvdyBiZXR3ZWVuIHRob3NlCnN1YnByb2dyYW1zIGFuZCBvdGhlciBwYXJ0cyBvZiB0aGUgd29yay4KCiAgVGhlIENvcnJlc3BvbmRpbmcgU291cmNlIG5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCB1c2VycwpjYW4gcmVnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5IGZyb20gb3RoZXIgcGFydHMgb2YgdGhlIENvcnJlc3BvbmRpbmcKU291cmNlLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGEgd29yayBpbiBzb3VyY2UgY29kZSBmb3JtIGlzIHRoYXQKc2FtZSB3b3JrLgoKICAyLiBCYXNpYyBQZXJtaXNzaW9ucy4KCiAgQWxsIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSBhcmUgZ3JhbnRlZCBmb3IgdGhlIHRlcm0gb2YKY29weXJpZ2h0IG9uIHRoZSBQcm9ncmFtLCBhbmQgYXJlIGlycmV2b2NhYmxlIHByb3ZpZGVkIHRoZSBzdGF0ZWQKY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZApwZXJtaXNzaW9uIHRvIHJ1biB0aGUgdW5tb2RpZmllZCBQcm9ncmFtLiAgVGhlIG91dHB1dCBmcm9tIHJ1bm5pbmcgYQpjb3ZlcmVkIHdvcmsgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2Ugb25seSBpZiB0aGUgb3V0cHV0LCBnaXZlbiBpdHMKY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXIKcmlnaHRzIG9mIGZhaXIgdXNlIG9yIG90aGVyIGVxdWl2YWxlbnQsIGFzIHByb3ZpZGVkIGJ5IGNvcHlyaWdodCBsYXcuCgogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QKY29udmV5LCB3aXRob3V0IGNvbmRpdGlvbnMgc28gbG9uZyBhcyB5b3VyIGxpY2Vuc2Ugb3RoZXJ3aXNlIHJlbWFpbnMKaW4gZm9yY2UuICBZb3UgbWF5IGNvbnZleSBjb3ZlcmVkIHdvcmtzIHRvIG90aGVycyBmb3IgdGhlIHNvbGUgcHVycG9zZQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UKd2l0aCBmYWNpbGl0aWVzIGZvciBydW5uaW5nIHRob3NlIHdvcmtzLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkgd2l0aAp0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIGluIGNvbnZleWluZyBhbGwgbWF0ZXJpYWwgZm9yIHdoaWNoIHlvdSBkbwpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzCmZvciB5b3UgbXVzdCBkbyBzbyBleGNsdXNpdmVseSBvbiB5b3VyIGJlaGFsZiwgdW5kZXIgeW91ciBkaXJlY3Rpb24KYW5kIGNvbnRyb2wsIG9uIHRlcm1zIHRoYXQgcHJvaGliaXQgdGhlbSBmcm9tIG1ha2luZyBhbnkgY29waWVzIG9mCnlvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuCgogIENvbnZleWluZyB1bmRlciBhbnkgb3RoZXIgY2lyY3Vtc3RhbmNlcyBpcyBwZXJtaXR0ZWQgc29sZWx5IHVuZGVyCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMAptYWtlcyBpdCB1bm5lY2Vzc2FyeS4KCiAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4KCiAgTm8gY292ZXJlZCB3b3JrIHNoYWxsIGJlIGRlZW1lZCBwYXJ0IG9mIGFuIGVmZmVjdGl2ZSB0ZWNobm9sb2dpY2FsCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQoxMSBvZiB0aGUgV0lQTyBjb3B5cmlnaHQgdHJlYXR5IGFkb3B0ZWQgb24gMjAgRGVjZW1iZXIgMTk5Niwgb3IKc2ltaWxhciBsYXdzIHByb2hpYml0aW5nIG9yIHJlc3RyaWN0aW5nIGNpcmN1bXZlbnRpb24gb2Ygc3VjaAptZWFzdXJlcy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCB5b3Ugd2FpdmUgYW55IGxlZ2FsIHBvd2VyIHRvIGZvcmJpZApjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24KaXMgZWZmZWN0ZWQgYnkgZXhlcmNpc2luZyByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlIHdpdGggcmVzcGVjdCB0bwp0aGUgY292ZXJlZCB3b3JrLCBhbmQgeW91IGRpc2NsYWltIGFueSBpbnRlbnRpb24gdG8gbGltaXQgb3BlcmF0aW9uIG9yCm1vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzCnVzZXJzLCB5b3VyIG9yIHRoaXJkIHBhcnRpZXMnIGxlZ2FsIHJpZ2h0cyB0byBmb3JiaWQgY2lyY3VtdmVudGlvbiBvZgp0ZWNobm9sb2dpY2FsIG1lYXN1cmVzLgoKICA0LiBDb252ZXlpbmcgVmVyYmF0aW0gQ29waWVzLgoKICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UKcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlOwprZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkKbm9uLXBlcm1pc3NpdmUgdGVybXMgYWRkZWQgaW4gYWNjb3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRvIHRoZSBjb2RlOwprZWVwIGludGFjdCBhbGwgbm90aWNlcyBvZiB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7IGFuZCBnaXZlIGFsbApyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCiAgWW91IG1heSBjaGFyZ2UgYW55IHByaWNlIG9yIG5vIHByaWNlIGZvciBlYWNoIGNvcHkgdGhhdCB5b3UgY29udmV5LAphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLgoKICA1LiBDb252ZXlpbmcgTW9kaWZpZWQgU291cmNlIFZlcnNpb25zLgoKICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCnByb2R1Y2UgaXQgZnJvbSB0aGUgUHJvZ3JhbSwgaW4gdGhlIGZvcm0gb2Ygc291cmNlIGNvZGUgdW5kZXIgdGhlCnRlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgoKICAgIGEpIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IHlvdSBtb2RpZmllZAogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLgoKICAgIGIpIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlzCiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24KICAgIDcuICBUaGlzIHJlcXVpcmVtZW50IG1vZGlmaWVzIHRoZSByZXF1aXJlbWVudCBpbiBzZWN0aW9uIDQgdG8KICAgICJrZWVwIGludGFjdCBhbGwgbm90aWNlcyIuCgogICAgYykgWW91IG11c3QgbGljZW5zZSB0aGUgZW50aXJlIHdvcmssIGFzIGEgd2hvbGUsIHVuZGVyIHRoaXMKICAgIExpY2Vuc2UgdG8gYW55b25lIHdobyBjb21lcyBpbnRvIHBvc3Nlc3Npb24gb2YgYSBjb3B5LiAgVGhpcwogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcKICAgIGFkZGl0aW9uYWwgdGVybXMsIHRvIHRoZSB3aG9sZSBvZiB0aGUgd29yaywgYW5kIGFsbCBpdHMgcGFydHMsCiAgICByZWdhcmRsZXNzIG9mIGhvdyB0aGV5IGFyZSBwYWNrYWdlZC4gIFRoaXMgTGljZW5zZSBnaXZlcyBubwogICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdAogICAgaW52YWxpZGF0ZSBzdWNoIHBlcm1pc3Npb24gaWYgeW91IGhhdmUgc2VwYXJhdGVseSByZWNlaXZlZCBpdC4KCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQogICAgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlczsgaG93ZXZlciwgaWYgdGhlIFByb2dyYW0gaGFzIGludGVyYWN0aXZlCiAgICBpbnRlcmZhY2VzIHRoYXQgZG8gbm90IGRpc3BsYXkgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcywgeW91cgogICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uCgogIEEgY29tcGlsYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsgd2l0aCBvdGhlciBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQKd29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywKYW5kIHdoaWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRvIGZvcm0gYSBsYXJnZXIgcHJvZ3JhbSwKaW4gb3Igb24gYSB2b2x1bWUgb2YgYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0sIGlzIGNhbGxlZCBhbgoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QKdXNlZCB0byBsaW1pdCB0aGUgYWNjZXNzIG9yIGxlZ2FsIHJpZ2h0cyBvZiB0aGUgY29tcGlsYXRpb24ncyB1c2VycwpiZXlvbmQgd2hhdCB0aGUgaW5kaXZpZHVhbCB3b3JrcyBwZXJtaXQuICBJbmNsdXNpb24gb2YgYSBjb3ZlcmVkIHdvcmsKaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXIKcGFydHMgb2YgdGhlIGFnZ3JlZ2F0ZS4KCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuCgogIFlvdSBtYXkgY29udmV5IGEgY292ZXJlZCB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgdGhlIHRlcm1zCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQptYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsCmluIG9uZSBvZiB0aGVzZSB3YXlzOgoKICAgIGEpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0CiAgICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IGEKICAgIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZSB5ZWFycyBhbmQgdmFsaWQgZm9yIGFzCiAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QKICAgIG1vZGVsLCB0byBnaXZlIGFueW9uZSB3aG8gcG9zc2Vzc2VzIHRoZSBvYmplY3QgY29kZSBlaXRoZXIgKDEpIGEKICAgIGNvcHkgb2YgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGZvciBhbGwgdGhlIHNvZnR3YXJlIGluIHRoZQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwKICAgIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZSwgZm9yIGEgcHJpY2Ugbm8KICAgIG1vcmUgdGhhbiB5b3VyIHJlYXNvbmFibGUgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgdGhpcwogICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgZnJvbSBhIG5ldHdvcmsgc2VydmVyIGF0IG5vIGNoYXJnZS4KCiAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQogICAgd3JpdHRlbiBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoaXMKICAgIGFsdGVybmF0aXZlIGlzIGFsbG93ZWQgb25seSBvY2Nhc2lvbmFsbHkgYW5kIG5vbmNvbW1lcmNpYWxseSwgYW5kCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQKICAgIHdpdGggc3Vic2VjdGlvbiA2Yi4KCiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZAogICAgcGxhY2UgKGdyYXRpcyBvciBmb3IgYSBjaGFyZ2UpLCBhbmQgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBpbiB0aGUgc2FtZSB3YXkgdGhyb3VnaCB0aGUgc2FtZSBwbGFjZSBhdCBubwogICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4gIElmIHRoZSBwbGFjZSB0bwogICAgY29weSB0aGUgb2JqZWN0IGNvZGUgaXMgYSBuZXR3b3JrIHNlcnZlciwgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkKICAgIHRoYXQgc3VwcG9ydHMgZXF1aXZhbGVudCBjb3B5aW5nIGZhY2lsaXRpZXMsIHByb3ZpZGVkIHlvdSBtYWludGFpbgogICAgY2xlYXIgZGlyZWN0aW9ucyBuZXh0IHRvIHRoZSBvYmplY3QgY29kZSBzYXlpbmcgd2hlcmUgdG8gZmluZCB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlLCB5b3UgcmVtYWluIG9ibGlnYXRlZCB0byBlbnN1cmUgdGhhdCBpdCBpcwogICAgYXZhaWxhYmxlIGZvciBhcyBsb25nIGFzIG5lZWRlZCB0byBzYXRpc2Z5IHRoZXNlIHJlcXVpcmVtZW50cy4KCiAgICBlKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIHVzaW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24sIHByb3ZpZGVkCiAgICB5b3UgaW5mb3JtIG90aGVyIHBlZXJzIHdoZXJlIHRoZSBvYmplY3QgY29kZSBhbmQgQ29ycmVzcG9uZGluZwogICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubwogICAgY2hhcmdlIHVuZGVyIHN1YnNlY3Rpb24gNmQuCgogIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZApmcm9tIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBhcyBhIFN5c3RlbSBMaWJyYXJ5LCBuZWVkIG5vdCBiZQppbmNsdWRlZCBpbiBjb252ZXlpbmcgdGhlIG9iamVjdCBjb2RlIHdvcmsuCgogIEEgIlVzZXIgUHJvZHVjdCIgaXMgZWl0aGVyICgxKSBhICJjb25zdW1lciBwcm9kdWN0Iiwgd2hpY2ggbWVhbnMgYW55CnRhbmdpYmxlIHBlcnNvbmFsIHByb3BlcnR5IHdoaWNoIGlzIG5vcm1hbGx5IHVzZWQgZm9yIHBlcnNvbmFsLCBmYW1pbHksCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24KaW50byBhIGR3ZWxsaW5nLiAgSW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhIHByb2R1Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0LApkb3VidGZ1bCBjYXNlcyBzaGFsbCBiZSByZXNvbHZlZCBpbiBmYXZvciBvZiBjb3ZlcmFnZS4gIEZvciBhIHBhcnRpY3VsYXIKcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhCnR5cGljYWwgb3IgY29tbW9uIHVzZSBvZiB0aGF0IGNsYXNzIG9mIHByb2R1Y3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXR1cwpvZiB0aGUgcGFydGljdWxhciB1c2VyIG9yIG9mIHRoZSB3YXkgaW4gd2hpY2ggdGhlIHBhcnRpY3VsYXIgdXNlcgphY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QKaXMgYSBjb25zdW1lciBwcm9kdWN0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcHJvZHVjdCBoYXMgc3Vic3RhbnRpYWwKY29tbWVyY2lhbCwgaW5kdXN0cmlhbCBvciBub24tY29uc3VtZXIgdXNlcywgdW5sZXNzIHN1Y2ggdXNlcyByZXByZXNlbnQKdGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuCgogICJJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24iIGZvciBhIFVzZXIgUHJvZHVjdCBtZWFucyBhbnkgbWV0aG9kcywKcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsCmFuZCBleGVjdXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJlZCB3b3JrIGluIHRoYXQgVXNlciBQcm9kdWN0IGZyb20KYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0cyBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoZSBpbmZvcm1hdGlvbiBtdXN0CnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0CmNvZGUgaXMgaW4gbm8gY2FzZSBwcmV2ZW50ZWQgb3IgaW50ZXJmZXJlZCB3aXRoIHNvbGVseSBiZWNhdXNlCm1vZGlmaWNhdGlvbiBoYXMgYmVlbiBtYWRlLgoKICBJZiB5b3UgY29udmV5IGFuIG9iamVjdCBjb2RlIHdvcmsgdW5kZXIgdGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLCBvcgpzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiwgYSBVc2VyIFByb2R1Y3QsIGFuZCB0aGUgY29udmV5aW5nIG9jY3VycyBhcwpwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUKVXNlciBQcm9kdWN0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4gcGVycGV0dWl0eSBvciBmb3IgYQpmaXhlZCB0ZXJtIChyZWdhcmRsZXNzIG9mIGhvdyB0aGUgdHJhbnNhY3Rpb24gaXMgY2hhcmFjdGVyaXplZCksIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZApieSB0aGUgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uLiAgQnV0IHRoaXMgcmVxdWlyZW1lbnQgZG9lcyBub3QgYXBwbHkKaWYgbmVpdGhlciB5b3Ugbm9yIGFueSB0aGlyZCBwYXJ0eSByZXRhaW5zIHRoZSBhYmlsaXR5IHRvIGluc3RhbGwKbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcwpiZWVuIGluc3RhbGxlZCBpbiBST00pLgoKICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhCnJlcXVpcmVtZW50IHRvIGNvbnRpbnVlIHRvIHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlLCB3YXJyYW50eSwgb3IgdXBkYXRlcwpmb3IgYSB3b3JrIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkIGJ5IHRoZSByZWNpcGllbnQsIG9yIGZvcgp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhCm5ldHdvcmsgbWF5IGJlIGRlbmllZCB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXRzZWxmIG1hdGVyaWFsbHkgYW5kCmFkdmVyc2VseSBhZmZlY3RzIHRoZSBvcGVyYXRpb24gb2YgdGhlIG5ldHdvcmsgb3IgdmlvbGF0ZXMgdGhlIHJ1bGVzIGFuZApwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLgoKICBDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCwgYW5kIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBwcm92aWRlZCwKaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQpkb2N1bWVudGVkIChhbmQgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbgpzb3VyY2UgY29kZSBmb3JtKSwgYW5kIG11c3QgcmVxdWlyZSBubyBzcGVjaWFsIHBhc3N3b3JkIG9yIGtleSBmb3IKdW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuCgogIDcuIEFkZGl0aW9uYWwgVGVybXMuCgogICJBZGRpdGlvbmFsIHBlcm1pc3Npb25zIiBhcmUgdGVybXMgdGhhdCBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2UgYnkgbWFraW5nIGV4Y2VwdGlvbnMgZnJvbSBvbmUgb3IgbW9yZSBvZiBpdHMgY29uZGl0aW9ucy4KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbApiZSB0cmVhdGVkIGFzIHRob3VnaCB0aGV5IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBMaWNlbnNlLCB0byB0aGUgZXh0ZW50CnRoYXQgdGhleSBhcmUgdmFsaWQgdW5kZXIgYXBwbGljYWJsZSBsYXcuICBJZiBhZGRpdGlvbmFsIHBlcm1pc3Npb25zCmFwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkKdW5kZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUgZW50aXJlIFByb2dyYW0gcmVtYWlucyBnb3Zlcm5lZCBieQp0aGlzIExpY2Vuc2Ugd2l0aG91dCByZWdhcmQgdG8gdGhlIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMuCgogIFdoZW4geW91IGNvbnZleSBhIGNvcHkgb2YgYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgYXQgeW91ciBvcHRpb24KcmVtb3ZlIGFueSBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGZyb20gdGhhdCBjb3B5LCBvciBmcm9tIGFueSBwYXJ0IG9mCml0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24KcmVtb3ZhbCBpbiBjZXJ0YWluIGNhc2VzIHdoZW4geW91IG1vZGlmeSB0aGUgd29yay4pICBZb3UgbWF5IHBsYWNlCmFkZGl0aW9uYWwgcGVybWlzc2lvbnMgb24gbWF0ZXJpYWwsIGFkZGVkIGJ5IHlvdSB0byBhIGNvdmVyZWQgd29yaywKZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIGZvciBtYXRlcmlhbCB5b3UKYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZgp0aGF0IG1hdGVyaWFsKSBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aCB0ZXJtczoKCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUKICAgIHRlcm1zIG9mIHNlY3Rpb25zIDE1IGFuZCAxNiBvZiB0aGlzIExpY2Vuc2U7IG9yCgogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yCiAgICBhdXRob3IgYXR0cmlidXRpb25zIGluIHRoYXQgbWF0ZXJpYWwgb3IgaW4gdGhlIEFwcHJvcHJpYXRlIExlZ2FsCiAgICBOb3RpY2VzIGRpc3BsYXllZCBieSB3b3JrcyBjb250YWluaW5nIGl0OyBvcgoKICAgIGMpIFByb2hpYml0aW5nIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhhdCBtYXRlcmlhbCwgb3IKICAgIHJlcXVpcmluZyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIG9mIHN1Y2ggbWF0ZXJpYWwgYmUgbWFya2VkIGluCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yCgogICAgZCkgTGltaXRpbmcgdGhlIHVzZSBmb3IgcHVibGljaXR5IHB1cnBvc2VzIG9mIG5hbWVzIG9mIGxpY2Vuc29ycyBvcgogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yCgogICAgZSkgRGVjbGluaW5nIHRvIGdyYW50IHJpZ2h0cyB1bmRlciB0cmFkZW1hcmsgbGF3IGZvciB1c2Ugb2Ygc29tZQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yCgogICAgZikgUmVxdWlyaW5nIGluZGVtbmlmaWNhdGlvbiBvZiBsaWNlbnNvcnMgYW5kIGF1dGhvcnMgb2YgdGhhdAogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YKICAgIGl0KSB3aXRoIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIG9mIGxpYWJpbGl0eSB0byB0aGUgcmVjaXBpZW50LCBmb3IKICAgIGFueSBsaWFiaWxpdHkgdGhhdCB0aGVzZSBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBkaXJlY3RseSBpbXBvc2Ugb24KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4KCiAgQWxsIG90aGVyIG5vbi1wZXJtaXNzaXZlIGFkZGl0aW9uYWwgdGVybXMgYXJlIGNvbnNpZGVyZWQgImZ1cnRoZXIKcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQpyZWNlaXZlZCBpdCwgb3IgYW55IHBhcnQgb2YgaXQsIGNvbnRhaW5zIGEgbm90aWNlIHN0YXRpbmcgdGhhdCBpdCBpcwpnb3Zlcm5lZCBieSB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCBhIHRlcm0gdGhhdCBpcyBhIGZ1cnRoZXIKcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucwphIGZ1cnRoZXIgcmVzdHJpY3Rpb24gYnV0IHBlcm1pdHMgcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nIHVuZGVyIHRoaXMKTGljZW5zZSwgeW91IG1heSBhZGQgdG8gYSBjb3ZlcmVkIHdvcmsgbWF0ZXJpYWwgZ292ZXJuZWQgYnkgdGhlIHRlcm1zCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzCm5vdCBzdXJ2aXZlIHN1Y2ggcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nLgoKICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91Cm11c3QgcGxhY2UsIGluIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMsIGEgc3RhdGVtZW50IG9mIHRoZQphZGRpdGlvbmFsIHRlcm1zIHRoYXQgYXBwbHkgdG8gdGhvc2UgZmlsZXMsIG9yIGEgbm90aWNlIGluZGljYXRpbmcKd2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4KCiAgQWRkaXRpb25hbCB0ZXJtcywgcGVybWlzc2l2ZSBvciBub24tcGVybWlzc2l2ZSwgbWF5IGJlIHN0YXRlZCBpbiB0aGUKZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsKdGhlIGFib3ZlIHJlcXVpcmVtZW50cyBhcHBseSBlaXRoZXIgd2F5LgoKICA4LiBUZXJtaW5hdGlvbi4KCiAgWW91IG1heSBub3QgcHJvcGFnYXRlIG9yIG1vZGlmeSBhIGNvdmVyZWQgd29yayBleGNlcHQgYXMgZXhwcmVzc2x5CnByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3IKbW9kaWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyCnRoaXMgTGljZW5zZSAoaW5jbHVkaW5nIGFueSBwYXRlbnQgbGljZW5zZXMgZ3JhbnRlZCB1bmRlciB0aGUgdGhpcmQKcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLgoKICBIb3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIHRoZW4geW91cgpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkKcHJvdmlzaW9uYWxseSwgdW5sZXNzIGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0IGhvbGRlciBleHBsaWNpdGx5IGFuZApmaW5hbGx5IHRlcm1pbmF0ZXMgeW91ciBsaWNlbnNlLCBhbmQgKGIpIHBlcm1hbmVudGx5LCBpZiB0aGUgY29weXJpZ2h0CmhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zCnByaW9yIHRvIDYwIGRheXMgYWZ0ZXIgdGhlIGNlc3NhdGlvbi4KCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzCnJlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhlIGNvcHlyaWdodCBob2xkZXIgbm90aWZpZXMgeW91IG9mIHRoZQp2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCnJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdApjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBwcmlvciB0byAzMCBkYXlzIGFmdGVyCnlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgoKICBUZXJtaW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBub3QgdGVybWluYXRlIHRoZQpsaWNlbnNlcyBvZiBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcyBvciByaWdodHMgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQpyZWluc3RhdGVkLCB5b3UgZG8gbm90IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMgZm9yIHRoZSBzYW1lCm1hdGVyaWFsIHVuZGVyIHNlY3Rpb24gMTAuCgogIDkuIEFjY2VwdGFuY2UgTm90IFJlcXVpcmVkIGZvciBIYXZpbmcgQ29waWVzLgoKICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3IKcnVuIGEgY29weSBvZiB0aGUgUHJvZ3JhbS4gIEFuY2lsbGFyeSBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQgd29yawpvY2N1cnJpbmcgc29sZWx5IGFzIGEgY29uc2VxdWVuY2Ugb2YgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbgp0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLApub3RoaW5nIG90aGVyIHRoYW4gdGhpcyBMaWNlbnNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBwcm9wYWdhdGUgb3IKbW9kaWZ5IGFueSBjb3ZlcmVkIHdvcmsuICBUaGVzZSBhY3Rpb25zIGluZnJpbmdlIGNvcHlyaWdodCBpZiB5b3UgZG8Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhCmNvdmVyZWQgd29yaywgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28uCgogIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KCiAgRWFjaCB0aW1lIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseQpyZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQKcHJvcGFnYXRlIHRoYXQgd29yaywgc3ViamVjdCB0byB0aGlzIExpY2Vuc2UuICBZb3UgYXJlIG5vdCByZXNwb25zaWJsZQpmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoIHRoaXMgTGljZW5zZS4KCiAgQW4gImVudGl0eSB0cmFuc2FjdGlvbiIgaXMgYSB0cmFuc2FjdGlvbiB0cmFuc2ZlcnJpbmcgY29udHJvbCBvZiBhbgpvcmdhbml6YXRpb24sIG9yIHN1YnN0YW50aWFsbHkgYWxsIGFzc2V0cyBvZiBvbmUsIG9yIHN1YmRpdmlkaW5nIGFuCm9yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkCndvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0aGF0CnRyYW5zYWN0aW9uIHdobyByZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHdvcmsgYWxzbyByZWNlaXZlcyB3aGF0ZXZlcgpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQKZ2l2ZSB1bmRlciB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLCBwbHVzIGEgcmlnaHQgdG8gcG9zc2Vzc2lvbiBvZiB0aGUKQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgZnJvbSB0aGUgcHJlZGVjZXNzb3IgaW4gaW50ZXJlc3QsIGlmCnRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4KCiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBvbiB0aGUgZXhlcmNpc2Ugb2YgdGhlCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5Cm5vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwgcm95YWx0eSwgb3Igb3RoZXIgY2hhcmdlIGZvciBleGVyY2lzZSBvZgpyaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCB5b3UgbWF5IG5vdCBpbml0aWF0ZSBsaXRpZ2F0aW9uCihpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0CmFueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywgdXNpbmcsIHNlbGxpbmcsIG9mZmVyaW5nIGZvcgpzYWxlLCBvciBpbXBvcnRpbmcgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24gb2YgaXQuCgogIDExLiBQYXRlbnRzLgoKICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzCkxpY2Vuc2Ugb2YgdGhlIFByb2dyYW0gb3IgYSB3b3JrIG9uIHdoaWNoIHRoZSBQcm9ncmFtIGlzIGJhc2VkLiAgVGhlCndvcmsgdGh1cyBsaWNlbnNlZCBpcyBjYWxsZWQgdGhlIGNvbnRyaWJ1dG9yJ3MgImNvbnRyaWJ1dG9yIHZlcnNpb24iLgoKICBBIGNvbnRyaWJ1dG9yJ3MgImVzc2VudGlhbCBwYXRlbnQgY2xhaW1zIiBhcmUgYWxsIHBhdGVudCBjbGFpbXMKb3duZWQgb3IgY29udHJvbGxlZCBieSB0aGUgY29udHJpYnV0b3IsIHdoZXRoZXIgYWxyZWFkeSBhY3F1aXJlZCBvcgpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQKYnkgdGhpcyBMaWNlbnNlLCBvZiBtYWtpbmcsIHVzaW5nLCBvciBzZWxsaW5nIGl0cyBjb250cmlidXRvciB2ZXJzaW9uLApidXQgZG8gbm90IGluY2x1ZGUgY2xhaW1zIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIG9ubHkgYXMgYQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcgpwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJjb250cm9sIiBpbmNsdWRlcyB0aGUgcmlnaHQgdG8gZ3JhbnQKcGF0ZW50IHN1YmxpY2Vuc2VzIGluIGEgbWFubmVyIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mCnRoaXMgTGljZW5zZS4KCiAgRWFjaCBjb250cmlidXRvciBncmFudHMgeW91IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUKcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvCm1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhlIGNvbnRlbnRzIG9mIGl0cyBjb250cmlidXRvciB2ZXJzaW9uLgoKICBJbiB0aGUgZm9sbG93aW5nIHRocmVlIHBhcmFncmFwaHMsIGEgInBhdGVudCBsaWNlbnNlIiBpcyBhbnkgZXhwcmVzcwphZ3JlZW1lbnQgb3IgY29tbWl0bWVudCwgaG93ZXZlciBkZW5vbWluYXRlZCwgbm90IHRvIGVuZm9yY2UgYSBwYXRlbnQKKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bwpzdWUgZm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8gImdyYW50IiBzdWNoIGEgcGF0ZW50IGxpY2Vuc2UgdG8gYQpwYXJ0eSBtZWFucyB0byBtYWtlIHN1Y2ggYW4gYWdyZWVtZW50IG9yIGNvbW1pdG1lbnQgbm90IHRvIGVuZm9yY2UgYQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuCgogIElmIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIGtub3dpbmdseSByZWx5aW5nIG9uIGEgcGF0ZW50IGxpY2Vuc2UsCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lCnRvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFuZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKcHVibGljbHkgYXZhaWxhYmxlIG5ldHdvcmsgc2VydmVyIG9yIG90aGVyIHJlYWRpbHkgYWNjZXNzaWJsZSBtZWFucywKdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbwphdmFpbGFibGUsIG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2YgdGhlIGJlbmVmaXQgb2YgdGhlCnBhdGVudCBsaWNlbnNlIGZvciB0aGlzIHBhcnRpY3VsYXIgd29yaywgb3IgKDMpIGFycmFuZ2UsIGluIGEgbWFubmVyCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQKbGljZW5zZSB0byBkb3duc3RyZWFtIHJlY2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZlCmFjdHVhbCBrbm93bGVkZ2UgdGhhdCwgYnV0IGZvciB0aGUgcGF0ZW50IGxpY2Vuc2UsIHlvdXIgY29udmV5aW5nIHRoZQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrCmluIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ugb25lIG9yIG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdApjb3VudHJ5IHRoYXQgeW91IGhhdmUgcmVhc29uIHRvIGJlbGlldmUgYXJlIHZhbGlkLgoKICBJZiwgcHVyc3VhbnQgdG8gb3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCmFycmFuZ2VtZW50LCB5b3UgY29udmV5LCBvciBwcm9wYWdhdGUgYnkgcHJvY3VyaW5nIGNvbnZleWFuY2Ugb2YsIGEKY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzCnJlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6aW5nIHRoZW0gdG8gdXNlLCBwcm9wYWdhdGUsIG1vZGlmeQpvciBjb252ZXkgYSBzcGVjaWZpYyBjb3B5IG9mIHRoZSBjb3ZlcmVkIHdvcmssIHRoZW4gdGhlIHBhdGVudCBsaWNlbnNlCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkCndvcmsgYW5kIHdvcmtzIGJhc2VkIG9uIGl0LgoKICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4KdGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwgcHJvaGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKY29uZGl0aW9uZWQgb24gdGhlIG5vbi1leGVyY2lzZSBvZiBvbmUgb3IgbW9yZSBvZiB0aGUgcmlnaHRzIHRoYXQgYXJlCnNwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQKd29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBhIHRoaXJkIHBhcnR5IHRoYXQgaXMKaW4gdGhlIGJ1c2luZXNzIG9mIGRpc3RyaWJ1dGluZyBzb2Z0d2FyZSwgdW5kZXIgd2hpY2ggeW91IG1ha2UgcGF5bWVudAp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZwp0aGUgd29yaywgYW5kIHVuZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBvZiB0aGUKcGFydGllcyB3aG8gd291bGQgcmVjZWl2ZSB0aGUgY292ZXJlZCB3b3JrIGZyb20geW91LCBhIGRpc2NyaW1pbmF0b3J5CnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsKY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMgbWFkZSBmcm9tIHRob3NlIGNvcGllcyksIG9yIChiKSBwcmltYXJpbHkKZm9yIGFuZCBpbiBjb25uZWN0aW9uIHdpdGggc3BlY2lmaWMgcHJvZHVjdHMgb3IgY29tcGlsYXRpb25zIHRoYXQKY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LApvciB0aGF0IHBhdGVudCBsaWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBNYXJjaCAyMDA3LgoKICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nCmFueSBpbXBsaWVkIGxpY2Vuc2Ugb3Igb3RoZXIgZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRoYXQgbWF5Cm90aGVyd2lzZSBiZSBhdmFpbGFibGUgdG8geW91IHVuZGVyIGFwcGxpY2FibGUgcGF0ZW50IGxhdy4KCiAgMTIuIE5vIFN1cnJlbmRlciBvZiBPdGhlcnMnIEZyZWVkb20uCgogIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdCBjb252ZXkgYQpjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkKbm90IGNvbnZleSBpdCBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgeW91IGFncmVlIHRvIHRlcm1zIHRoYXQgb2JsaWdhdGUgeW91CnRvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQp0aGUgUHJvZ3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggdGhvc2UgdGVybXMgYW5kIHRoaXMKTGljZW5zZSB3b3VsZCBiZSB0byByZWZyYWluIGVudGlyZWx5IGZyb20gY29udmV5aW5nIHRoZSBQcm9ncmFtLgoKICAxMy4gVXNlIHdpdGggdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQpwZXJtaXNzaW9uIHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292ZXJlZCB3b3JrIHdpdGggYSB3b3JrIGxpY2Vuc2VkCnVuZGVyIHZlcnNpb24gMyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGludG8gYSBzaW5nbGUKY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcwpMaWNlbnNlIHdpbGwgY29udGludWUgdG8gYXBwbHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNvdmVyZWQgd29yaywKYnV0IHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50cyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLApzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlCmNvbWJpbmF0aW9uIGFzIHN1Y2guCgogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4KCiAgVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMgb2YKdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbApiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCgogIEVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlClByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBjZXJ0YWluIG51bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVSBHZW5lcmFsClB1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlCm9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IG51bWJlcmVkCnZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZApieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgoKICBJZiB0aGUgUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNpZGUgd2hpY2ggZnV0dXJlCnZlcnNpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBjYW4gYmUgdXNlZCwgdGhhdCBwcm94eSdzCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UKdG8gY2hvb3NlIHRoYXQgdmVyc2lvbiBmb3IgdGhlIFByb2dyYW0uCgogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50CnBlcm1pc3Npb25zLiAgSG93ZXZlciwgbm8gYWRkaXRpb25hbCBvYmxpZ2F0aW9ucyBhcmUgaW1wb3NlZCBvbiBhbnkKYXV0aG9yIG9yIGNvcHlyaWdodCBob2xkZXIgYXMgYSByZXN1bHQgb2YgeW91ciBjaG9vc2luZyB0byBmb2xsb3cgYQpsYXRlciB2ZXJzaW9uLgoKICAxNS4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4KCiAgVEhFUkUgSVMgTk8gV0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWQpBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkKT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sClRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0KSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIFBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GCkFMTCBORUNFU1NBUlkgU0VSVklDSU5HLCBSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTYuIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LgoKICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNT0RJRklFUyBBTkQvT1IgQ09OVkVZUwpUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkKR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFClVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YKREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQKUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksCkVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKU1VDSCBEQU1BR0VTLgoKICAxNy4gSW50ZXJwcmV0YXRpb24gb2YgU2VjdGlvbnMgMTUgYW5kIDE2LgoKICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQKYWJvdmUgY2Fubm90IGJlIGdpdmVuIGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVybXMsCnJldmlld2luZyBjb3VydHMgc2hhbGwgYXBwbHkgbG9jYWwgbGF3IHRoYXQgbW9zdCBjbG9zZWx5IGFwcHJveGltYXRlcwphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlClByb2dyYW0sIHVubGVzcyBhIHdhcnJhbnR5IG9yIGFzc3VtcHRpb24gb2YgbGlhYmlsaXR5IGFjY29tcGFuaWVzIGEKY29weSBvZiB0aGUgUHJvZ3JhbSBpbiByZXR1cm4gZm9yIGEgZmVlLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05T]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.config_option.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgoKY2xhc3MgY29uZmlnX29wdGlvbiAKewogICAgcHVibGljICRmaWVsZG5hbWUgPSAnJzsgICAgIC8vIHRoZSBuYW1lIG9mIHRoZSBmaWVsZAogICAgcHVibGljICRpbnB1dHR5cGUgPSAndGV4dCc7IC8vIHRleHQsIHRleHRhcmVhLCBzZWxlY3QsIGNoZWNrYm94LCBmaWxlICh4bWwpLCBzdW1iaXQsIGNhbmNlbCtzdWJtaXQKICAgIHB1YmxpYyAkc3RlcCA9IDE7ICAgICAgICAgICAvLyB0aGUgc3RlcCBpbiB0aGUgcHJvY2VzcyAtIGRlZmF1bHQgMQogICAgcHVibGljICRsYWJlbCA9ICcnOyAgICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgc2V0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGUKICAgIHB1YmxpYyAkdmFsdWUgPSAnJzsgICAgICAgICAvLyB0aGUgZmllbGQgdmFsdWUgLSBlaXRoZXIgc2F2ZWQgb3IgZGVmYXVsdAogICAgcHVibGljICRyZXF1aXJlZCA9IGZhbHNlOyAgIC8vIGlzIHRoaXMgZmllbGQgcmVxdWlyZWQKICAgIHB1YmxpYyAkb3B0aW9ucyA9IFtdOyAgICAgICAvLyBvcHRpb25zIGFycmF5IGZvciBzZWxlY3QgZmllbGRzLCBvciBmaWVsZF9tYXAgc291cmNlIGZpZWxkcwogICAgcHVibGljICRzaXplID0gODA7ICAgICAgICAgIC8vIHNpemUgb2YgdGhlIGlucHV0IGZpZWxkCiAgICBwdWJsaWMgJHJvd3MgPSAzOyAgICAgICAgICAgLy8gbnVtYmVyIG9mIHJvd3MgZm9yIHRleHRhcmVhIGZpZWxkcwogICAgcHVibGljICRkaXZjbGFzcyA9ICcnOyAgICAgIC8vIGNsYXNzIGZvciB0aGUgZGl2CiAgICBwdWJsaWMgJGFkZGNsYXNzID0gJyc7ICAgICAgLy8gYWRkaXRpb25hbCBjbGFzcyBmb3IgdGhlIGlucHV0IHRhZy9idXR0b24gIAogICAgcHVibGljICRpbnB1dHByb3BlcnRpZXMgPSAnJzsvLyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSBpbnB1dCBmaWVsZAogICAgcHVibGljICR1aWljb24gPSAnJzsgICAgICAgIC8vIGljb24gZm9yIHRoZSBzdWJtaXQgYnV0dG9uLCBleGNsdWRlIHByZWZpeCAndWktaWNvbi0nCiAgICBwdWJsaWMgJGlubGluZSA9IG51bGw7ICAgICAgLy8gb3B0aW9uYWxseSBvdXRwdXQgZGl2IGNvbnRhaW5lciBzdGFydCAmIGVuZCwgdG8gaW5saW5lIG11bHRpcGxlIGlucHV0cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bGwgKGRlZmF1bHQgLSBub3QgaW5saW5lKSwgaW5saW5lX3N0YXJ0LCBpbmxpbmVfZW5kLCBpbmxpbmUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgoKCgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbXBvcnRfZXhwb3J0LCAkZmllbGRuYW1lLCAkc2V0dGluZ3M9W10pCiAgICB7CiAgICAgICAgaWYgKCAhaXNfb2JqZWN0KCRpbXBvcnRfZXhwb3J0KSB8fCBlbXB0eSgkZmllbGRuYW1lKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ2NvbmZpZ19vcHRpb246IGltcG9ydF9leHBvcnQgJiBmaWVsZG5hbWUgaXMgcmVxdWlyZWQnKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmZpZWxkbmFtZSA9ICRmaWVsZG5hbWU7CiAgICAgICAgaWYgKGlzX2FycmF5KCRzZXR0aW5ncykpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHNldHRpbmdzIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCR0aGlzLCAka2V5KSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT4ka2V5ID0gJHZhbHVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGdldCB0aGUgbGFiZWwgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZQogICAgICAgICRsYW5nX2xhYmVsX2tleSA9ICRpbXBvcnRfZXhwb3J0OjpMQU5HX0xBQkVMX1BSRUZJWC4kaW1wb3J0X2V4cG9ydC0+dHlwZS4iXyRmaWVsZG5hbWUiOwogICAgICAgICR0aGlzLT5sYWJlbCA9ICRpbXBvcnRfZXhwb3J0LT5tb2QtPkxhbmcoJGxhbmdfbGFiZWxfa2V5KTsKCiAgICAgICAgLy8gYWRkIHRoZSBjb25maWdfb3B0aW9uIHRvIHRoZSBpbXBvcnRfZXhwb3J0IG9iamVjdAogICAgICAgICRpbXBvcnRfZXhwb3J0LT5jb25maWdfb3B0aW9uc1skZmllbGRuYW1lXSA9ICR0aGlzOwogICAgfQoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.field_map_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgoKY2xhc3MgZmllbGRfbWFwX2l0ZW0gCnsKICAgIHB1YmxpYyAkZGVzdF9maWVsZDsgICAgICAgICAvLyBzdHJpbmcgLSBmaWVsZCBhbGlhcwogICAgcHVibGljICRkZXN0X2Rlc2NyaXB0aW9uOyAgIC8vIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWVsZCBpZiBhdmFpbGFibGUKICAgIHB1YmxpYyAkZGVzdF9kYXRhX3R5cGU7ICAgICAvLyBzdHJpbmcgLSBkYXRhIHR5cGUgb2YgdGhlIGZpZWxkCiAgICBwdWJsaWMgJGRlc3RfZmRfdHlwZTsgICAgICAgLy8gc3RyaW5nIC0gZmllbGQgZGVmaW5pdGlvbiB0eXBlIG9mIHRoZSBmaWVsZAogICAgcHVibGljICRkZXN0X3JlcXVpcmVkOyAgICAgIC8vIGJvb2xlYW4gLSBpZiBmaWVsZCBpcyByZXF1aXJlZCAKICAgIHB1YmxpYyAkc291cmNlX2ZpZWxkOyAgICAgICAvLyBzdHJpbmcgLSBzb3VyY2UgZmllbGQgYWxpYXMKCgogICAgICAgICAgIAogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkZXN0X2ZpZWxkLCAkZGVzdF9kZXNjcmlwdGlvbj0nJywgJGRlc3RfZGF0YV90eXBlPScnLCAkZGVzdF9mZF90eXBlPW51bGwsICRkZXN0X3JlcXVpcmVkPWZhbHNlLCAkc291cmNlX2ZpZWxkPW51bGwpIAogICAgewogICAgICAgICR0aGlzLT5kZXN0X2ZpZWxkID0gJGRlc3RfZmllbGQ7CiAgICAgICAgJHRoaXMtPmRlc3RfZGVzY3JpcHRpb24gPSAkZGVzdF9kZXNjcmlwdGlvbjsKICAgICAgICAkdGhpcy0+ZGVzdF9kYXRhX3R5cGUgPSAkZGVzdF9kYXRhX3R5cGU7CiAgICAgICAgJHRoaXMtPmRlc3RfZmRfdHlwZSA9ICRkZXN0X2ZkX3R5cGU7CiAgICAgICAgJHRoaXMtPmRlc3RfcmVxdWlyZWQgPSAkZGVzdF9yZXF1aXJlZDsKICAgICAgICAkdGhpcy0+c291cmNlX2ZpZWxkID0gJHNvdXJjZV9maWVsZDsKICAgIH0KCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.impexp_wp_xml_to_LISE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgpjbGFzcyBpbXBleHBfd3BfeG1sX3RvX0xJU0UgZXh0ZW5kcyBJbXBvcnRFeHBvcnRCYXNlIAp7CgogICAgcHVibGljICR3cF94bWwgPSBudWxsOwogICAgcHVibGljICRsaXNlX2luc3RhbmNlID0gbnVsbDsKICAgIHB1YmxpYyAkcG9zdHNfaW1wb3J0ZWQgPSAwOwogICAgcHVibGljICRhdHRhY2htZW50c19pbXBvcnRlZCA9IDA7CiAgICBwdWJsaWMgJGNvbnRlbnRfdXBkYXRlZCA9IDA7CgoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIAoJewkKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CgogICAgICAgICR0aGlzLT50eXBlID0gJ3dwX3htbF90b19MSVNFJzsKICAgICAgICAkdGhpcy0+dHlwZV9uYW1lID0gJHRoaXMtPm1vZC0+TGFuZygidHlwZV8kdGhpcy0+dHlwZSIpOwogICAgICAgICR0aGlzLT50ZW1wbGF0ZV9uYW1lID0gJ3dwX3htbF90b19MSVNFLnRwbCc7CiAgICAgICAgJHRoaXMtPnN0ZXBzID0gWwogICAgICAgICAgICAnMScgPT4gJ3N0ZXBfMV9zZWxlY3QnLAogICAgICAgICAgICAnMicgPT4gJ3N0ZXBfMl9jb25maWcnLAogICAgICAgICAgICAnMycgPT4gJ3N0ZXBfM19pbXBvcnQnLAogICAgICAgICAgICAnNCcgPT4gJ3N0ZXBfNF9jb21wbGV0ZWQnLAogICAgICAgIF07IAogICAgICAgICR0aGlzLT5kZWZhdWx0X2ZpZWxkX21hcHBpbmdzID0gWyAgIC8vIHNvdXJjZSBmaWVsZCA9PiBkZXN0aW5hdGlvbiBmaWVsZCAoV1AgPiBMSVNFKQogICAgICAgICAgICAndGl0bGUnID0+ICd0aXRsZScsCiAgICAgICAgICAgICdsaW5rJyAgPT4gJ3VybCcsCiAgICAgICAgICAgICd3cF9zdGF0dXMnID0+ICdhY3RpdmUnLAogICAgICAgICAgICAncHViRGF0ZScgPT4gJ2NyZWF0ZV90aW1lJywKICAgICAgICAgICAgJ2NyZWF0b3InID0+ICdvd25lcicsCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+Y29udGVudF91cGRhdGVfdHlwZXMgPSBbICdUZXh0QXJlYScgXTsKICAgICAgICAkdGhpcy0+YmF0Y2hfc2l6ZSA9IDEwOwogICAgfQoKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9jb25maWdfb3B0aW9ucygpCiAgICB7CiAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+Y29uZmlnX29wdGlvbnMpKSAkdGhpcy0+Y29uZmlnX29wdGlvbnMgPSBbXTsKICAgICAgICAvLyB1c2VkIGluIHN0ZXAgMQogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnd3BfeG1sX2ZpbGUnLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdmaWxlX3htbCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAxLAogICAgICAgICAgICAncmVxdWlyZWQnID0+IHRydWUsCiAgICAgICAgXSk7CiAgICAgICAgJGxpc2UgPSBuZXcgbGlzZV9pbnRlcmZhY2UoJycpOwogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnbGlzZV9pbnN0YW5jZScsIFsKICAgICAgICAgICAgJ2lucHV0dHlwZScgPT4gJ3NlbGVjdCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAxLAogICAgICAgICAgICAncmVxdWlyZWQnID0+IHRydWUsCiAgICAgICAgICAgICdvcHRpb25zJyA9PiAkbGlzZS0+Z2V0X2xpc2VfaW5zdGFuY2VfbGlzdCgpLAogICAgICAgIF0pOwogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnc3VibWl0X2NvbnRpbnVlJywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAnc3VibWl0JywKICAgICAgICAgICAgJ3N0ZXAnID0+IDEsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ2NvbnRpbnVlJywKICAgICAgICAgICAgJ3VpaWNvbicgPT4gJ2NpcmNsZS1jaGVjaycsCiAgICAgICAgXSk7CgoKICAgICAgICAvLyB1c2VkIGluIHN0ZXAgMgogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnbGlzZV90b193cF9maWVsZF9tYXAnLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdmaWVsZF9tYXAnLAogICAgICAgICAgICAnc3RlcCcgPT4gMiwKICAgICAgICBdKTsKICAgICAgICBuZXcgY29uZmlnX29wdGlvbigkdGhpcywgJ2xpbWl0X3NvdXJjZV9zZWxlY3Rpb24nLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdjaGVja2JveCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAyLAogICAgICAgICAgICAndmFsdWUnID0+IDEsCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICdkZWxldGVfYWxsX2l0ZW1zX2JlZm9yZV9pbXBvcnQnLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdjaGVja2JveCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAyLAogICAgICAgICAgICAndmFsdWUnID0+IDAsCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICdhdXRvX2NyZWF0ZV9jYXRlZ29yaWVzJywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAnY2hlY2tib3gnLAogICAgICAgICAgICAnc3RlcCcgPT4gMiwKICAgICAgICAgICAgJ3ZhbHVlJyA9PiAwLAogICAgICAgIF0pOwogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnc291cmNlX2Jhc2VfdXJscycsIFsKICAgICAgICAgICAgJ2lucHV0dHlwZScgPT4gJ3RleHQnLAogICAgICAgICAgICAnc3RlcCcgPT4gMiwKICAgICAgICAgICAgJ3ZhbHVlJyA9PiAnJywKICAgICAgICBdKTsKICAgICAgICBuZXcgY29uZmlnX29wdGlvbigkdGhpcywgJ2RlZmF1bHRfb3duZXInLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdzZWxlY3QnLAogICAgICAgICAgICAnc3RlcCcgPT4gMiwKICAgICAgICAgICAgJ3JlcXVpcmVkJyA9PiB0cnVlLAogICAgICAgICAgICAnb3B0aW9ucycgPT4gJHRoaXMtPm1vZC0+Z2V0X3VzZXJzKCksCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICd1cGxvYWRzX2xvY2F0aW9uJywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAndGV4dCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAyLAogICAgICAgICAgICAndmFsdWUnID0+ICcnLAogICAgICAgIF0pOwogICAgICAgIG5ldyBjb25maWdfb3B0aW9uKCR0aGlzLCAnY2FuY2VsX2ltcG9ydCcsIFsKICAgICAgICAgICAgJ2lucHV0dHlwZScgPT4gJ2NhbmNlbCcsCiAgICAgICAgICAgICdzdGVwJyA9PiAyLAogICAgICAgICAgICAnbGFiZWwnID0+ICdpbXBvcnQnLAogICAgICAgICAgICAndWlpY29uJyA9PiAnY2lyY2xlLWNoZWNrJywKICAgICAgICAgICAgJ2lubGluZScgPT4gJ2lubGluZV9zdGFydCcsCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICdzdWJtaXRfaW1wb3J0JywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAnc3VibWl0JywKICAgICAgICAgICAgJ3N0ZXAnID0+IDIsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ2ltcG9ydCcsCiAgICAgICAgICAgICd1aWljb24nID0+ICdjaXJjbGUtY2hlY2snLAogICAgICAgICAgICAnaW5saW5lJyA9PiAnaW5saW5lX2VuZCcsCiAgICAgICAgXSk7CgoKICAgICAgICAvLyBTdGVwIDMKICAgICAgICBuZXcgY29uZmlnX29wdGlvbigkdGhpcywgJ2NhbmNlbF9hamF4JywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAnY2FuY2VsJywKICAgICAgICAgICAgJ3N0ZXAnID0+IDMsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ2NhbmNlbF9pbXBvcnQnLAogICAgICAgICAgICAndWlpY29uJyA9PiAnY2lyY2xlLWNoZWNrJywKICAgICAgICAgICAgJ2lubGluZScgPT4gJ2lubGluZV9zdGFydCcsCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICdzdWJtaXRfcmV0cnlfYXR0YWNobWVudHMnLCBbCiAgICAgICAgICAgICdpbnB1dHR5cGUnID0+ICdzdWJtaXQnLAogICAgICAgICAgICAnc3RlcCcgPT4gMywKICAgICAgICAgICAgJ2xhYmVsJyA9PiAncmV0cnlfYXR0YWNobWVudHMnLAogICAgICAgICAgICAndWlpY29uJyA9PiAnY2lyY2xlLWNoZWNrJywKICAgICAgICAgICAgJ2lubGluZScgPT4gJ2lubGluZScsCiAgICAgICAgICAgICdhZGRjbGFzcycgPT4gJ2hpZGRlbicsCiAgICAgICAgXSk7CiAgICAgICAgbmV3IGNvbmZpZ19vcHRpb24oJHRoaXMsICdzdWJtaXRfY29tcGxldGVkJywgWwogICAgICAgICAgICAnaW5wdXR0eXBlJyA9PiAnc3VibWl0JywKICAgICAgICAgICAgJ3N0ZXAnID0+IDMsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ2NvbXBsZXRlZCcsCiAgICAgICAgICAgICd1aWljb24nID0+ICdjaXJjbGUtY2hlY2snLAogICAgICAgICAgICAnaW5saW5lJyA9PiAnaW5saW5lX2VuZCcsCiAgICAgICAgICAgICdhZGRjbGFzcycgPT4gJ2hpZGRlbicsCiAgICAgICAgXSk7CgogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvY2VzcygkcGFyYW1zPVtdKQogICAgewogICAgICAgIC8vIGRldGVybWluZSB0aGUgY3VycmVudCBzdGVwIGluIHRoZSBwcm9jZXNzIC0gaW5jcmVtZW50IGFmdGVyIHN1Ym1pdCAtIGRlZmF1bHQgaXMgMQogICAgICAgICR0aGlzLT5zdGVwID0gIWVtcHR5KCRwYXJhbXNbJ3N0ZXAnXSkgPyAkcGFyYW1zWydzdGVwJ10rMSA6IDE7IAogICAgICAgIHN3aXRjaCAoJHRoaXMtPnN0ZXApIHsKICAgICAgICAgICAgY2FzZSAnMSc6IC8vIDFzdCBwYWdlIC0gc2V0dXAgdGhlIGNvbmZpZyBvcHRpb25zCiAgICAgICAgICAgICAgICAkdGhpcy0+Y3JlYXRlX2NvbmZpZ19vcHRpb25zKCk7IC8vIGdldCB0aGUgY29uZmlnIG9wdGlvbnMKICAgICAgICAgICAgICAgICR0aGlzLT5sb2FkX2NvbmZpZygpOyAgIC8vIHByZXZpb3VzbHkgc2F2ZWQgdmFsdWVzCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJzInOiAvLyAybmQgcGFnZSAtIGNvbmZpZyBvcHRpb25zIHN1Ym1pdHRlZCwgcHJvY2VzcyB0aGUgaW1wb3J0CiAgICAgICAgICAgICAgICAkdGhpcy0+Y3JlYXRlX2NvbmZpZ19vcHRpb25zKCk7IC8vIGdldCB0aGUgY29uZmlnIG9wdGlvbnMKICAgICAgICAgICAgICAgICR0aGlzLT5sb2FkX2NvbmZpZygpOyAgIC8vIHByZXZpb3VzbHkgc2F2ZWQgdmFsdWVzCiAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0X2NvbmZpZ192YWx1ZXMoJHBhcmFtcyk7ICAvLyBnZXQgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtCiAgICAgICAgICAgICAgICAkdGhpcy0+c2F2ZV9jb25maWcoKTsKICAgICAgICAgICAgICAgIGlmICggZW1wdHkoJHRoaXMtPmNvbmZpZ19vcHRpb25zWydsaXNlX2luc3RhbmNlJ10tPnZhbHVlKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCdObyBMSVNFIGluc3RhbmNlIHNlbGVjdGVkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICFlbXB0eSggJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5nZXRFcnJvcnMoKSApICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGVwID0gMTsgICAgLy8gZ28gYmFjayB0byB0aGUgY29uZmlnIHBhZ2UgLSB3aXRoIGVycm9ycwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIHByZXZpZXcgd3BfeG1sX2ZpbGUKICAgICAgICAgICAgICAgICRmaWxlbmFtZSA9ICR0aGlzLT5jb25maWdfb3B0aW9uc1snd3BfeG1sX2ZpbGUnXS0+dmFsdWU7CiAgICAgICAgICAgICAgICAkdGhpcy0+d3BfeG1sID0gbmV3IHdwX3htbF9pbnRlcmZhY2UoICRmaWxlbmFtZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRMYW5nTWVzc2FnZSggJ3ByZXZpZXdfd3BfeG1sJywgJHRoaXMtPndwX3htbC0+d3BfdGl0bGUsIAogICAgICAgICAgICAgICAgICAgICR0aGlzLT53cF94bWwtPndwX3Bvc3RfY291bnQsICR0aGlzLT53cF94bWwtPndwX2F0dGFjaG1lbnRfY291bnQsIAogICAgICAgICAgICAgICAgICAgICR0aGlzLT53cF94bWwtPndwX2F1dGhvcl9jb3VudCApOwogICAgICAgICAgICAgICAgLy8gc2V0IHNvdWNlIGRldGFpbHMKICAgICAgICAgICAgICAgICR0aGlzLT5zb3VyY2VfbmFtZSA9ICR0aGlzLT53cF94bWwtPndwX3RpdGxlOwogICAgICAgICAgICAgICAgJHRoaXMtPnNvdXJjZV9maWVsZHMgPSAkdGhpcy0+d3BfeG1sLT5maWVsZHM7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29uZmlnX29wdGlvbnNbJ3NvdXJjZV9iYXNlX3VybHMnXS0+dmFsdWUgPSAoc3RyaW5nKSR0aGlzLT53cF94bWwtPndwX3NpdGVfdXJsOwogICAgLy8gJHRoaXMtPnNvdXJjZV9zYW1wbGVzID0gJHRoaXMtPndwX3htbC0+Z2V0X3NhbXBsZV9kYXRhKCk7CiAgICAgICAgICAgICAgICAvLyB3YXJuaW5nIG1lc3NhZ2UgcmUgYXR0YWNobWVudHMgZmllbGQgcmVxdWlyZWQKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+d3BfeG1sLT53cF9hdHRhY2htZW50X2NvdW50PjAgJiYgIWluX2FycmF5KCd3cF9hdHRhY2htZW50cycsICR0aGlzLT5maWVsZF9tYXBfdmFsdWVzKSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkTWVzc2FnZSggJ1dhcm5pbmc6ICJ3cF9hdHRhY2htZW50cyIgZmllbGQgbm90IG1hcHBlZCAtIGF0dGFjaG1lbnRzIHdpbGwgbm90IGJlIGltcG9ydGVkJyApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgTElTRSBpbnN0YW5jZQogICAgICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UgPSBuZXcgbGlzZV9pbnRlcmZhY2UoICR0aGlzLT5jb25maWdfb3B0aW9uc1snbGlzZV9pbnN0YW5jZSddLT52YWx1ZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRNZXNzYWdlKCAkdGhpcy0+bW9kLT5MYW5nKCdwcmV2aWV3X2xpc2VfaW5zdGFuY2UnLCAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+aW5zdGFuY2VfbmFtZSwgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPnJlY29yZF9jb3VudCkgKTsKICAgICAgICAgICAgICAgIC8vIHNldCBkZXN0aW5hdGlvbiBkZXRhaWxzCiAgICAgICAgICAgICAgICAkdGhpcy0+ZGVzdGluYXRpb25fbmFtZSA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5pbnN0YW5jZV9uYW1lOwoKICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZmllbGQgbWFwLCBmaWVsZF9tYXBfc291cmNlX2ZpZWxkcywgZmllbGRfbWFwX3NvdXJjZV9zYW1wbGVzLCBkZWZhdWx0X2ZpZWxkX21hcHBpbmdzCiAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRfbWFwID0gJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmdlbmVyYXRlX2ZpZWxkX21hcCgpOwogICAgICAgICAgICAgICAgJHRoaXMtPmdldF9maWVsZF9tYXBfdmFsdWVzKCk7CgoKICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPmZvcGVuX2VuYWJsZWQoKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCAnZm9wZW4gaXMgbm90IGVuYWJsZWQgb24gdGhpcyBzZXJ2ZXIuIEl0IHdpbGwgbm90IGJlIHBvc3NpYmxlIHRvIGltcG9ydCBhbnkgcmVtb3RlIGltYWdlcyBvciBhdHRhY2htZW50cy4nICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJzMnOiAvLyAzcmQgcGFnZSAtIGltcG9ydCAKICAgICAgICAgICAgICAgICR0aGlzLT5jcmVhdGVfY29uZmlnX29wdGlvbnMoKTsgLy8gZ2V0IHRoZSBjb25maWcgb3B0aW9ucwogICAgICAgICAgICAgICAgJHRoaXMtPmxvYWRfY29uZmlnKCk7ICAgLy8gcHJldmlvdXNseSBzYXZlZCB2YWx1ZXMKICAgICAgICAgICAgICAgICR0aGlzLT5saXNlX2luc3RhbmNlID0gbmV3IGxpc2VfaW50ZXJmYWNlKCAkdGhpcy0+Y29uZmlnX29wdGlvbnNbJ2xpc2VfaW5zdGFuY2UnXS0+dmFsdWUgKTsKICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZF9tYXAgPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+Z2VuZXJhdGVfZmllbGRfbWFwKCk7IC8vIGdldCB0aGUgZmllbGQgbWFwCiAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0X2ZpZWxkX21hcF92YWx1ZXMoKTsKICAgICAgICAgICAgICAgICR0aGlzLT5nZXRfY29uZmlnX3ZhbHVlcygkcGFyYW1zKTsgIC8vIGdldCB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0KICAgICAgICAgICAgICAgICR0aGlzLT5zYXZlX2NvbmZpZygpOyAgIC8vIHNhdmUgdGhlIGNvbmZpZyB2YWx1ZXMgJiBmaWVsZCBtYXAKICAgICAgICAgICAgICAgICR0aGlzLT5saXNlX2luc3RhbmNlLT5kZWZhdWx0X293bmVyX2lkID0gJHRoaXMtPmNvbmZpZ19vcHRpb25zWydkZWZhdWx0X293bmVyJ10tPnZhbHVlOwogICAgICAgICAgICAgICAgJHRoaXMtPnNldF91cGxvYWRzX2xvY2F0aW9uKHN1YmRpcjogJHRoaXMtPmNvbmZpZ19vcHRpb25zWyd1cGxvYWRzX2xvY2F0aW9uJ10tPnZhbHVlICk7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ19vcHRpb25zWydhdXRvX2NyZWF0ZV9jYXRlZ29yaWVzJ10tPnZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmdldF9jYXRlZ29yeV9saXN0KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICFlbXB0eSggJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5nZXRFcnJvcnMoKSApICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGVwID0gMTsgICAgLy8gZ28gYmFjayB0byB0aGUgY29uZmlnIHBhZ2UgLSB3aXRoIGVycm9ycwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQovLyBtYXliZSB2YWxpZGF0ZSB0aGUgZmllbGQgbWFwIC0gZS5nLiBmb3IgcmVxdWlyZWQgZmllbGRzCgogICAgICAgICAgICAgICAgLy8gZGVsZXRlIGFsbCBpdGVtcyBiZWZvcmUgaW1wb3J0IC0gY29uZmlnIG9wdGlvbgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWdfb3B0aW9uc1snZGVsZXRlX2FsbF9pdGVtc19iZWZvcmVfaW1wb3J0J10tPnZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmRlbGV0ZV9hbGxfaXRlbXMoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBpbml0aWF0ZSB0aGUgcHJvZ3Jlc3MgYmFyICYgYWpheCBpbXBvcnQKICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3N0YXR1cyA9ICdzdGFydGVkJzsKICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3Bvc2l0aW9uID0gMDsKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfcHJvZ3Jlc3MoMCwgMTAwKTsgCiAgICAgICAgICAgICAgICAkZXh0cmFfZGV0YWlscyA9IFsKICAgICAgICAgICAgICAgICAgICAncG9zdHNfaW1wb3J0ZWQnID0+ICR0aGlzLT5wb3N0c19pbXBvcnRlZCwgICAgICAvLyAwCiAgICAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnRzX2ltcG9ydGVkJyA9PiAkdGhpcy0+YXR0YWNobWVudHNfaW1wb3J0ZWQsICAgIC8vIDAKICAgICAgICAgICAgICAgICAgICAnY29udGVudF91cGRhdGVkJyA9PiAkdGhpcy0+Y29udGVudF91cGRhdGVkLCAgICAvLyAwCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9hamF4X3Byb2Nlc3NpbmdfZGV0YWlscygkZXh0cmFfZGV0YWlscyk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJzQnOiAvLyAzcmQgcGFnZSAtIGltcG9ydCBjb21wbGV0ZWQKICAgICAgICAgICAgICAgICR0aGlzLT5tb2QtPlJlZGlyZWN0KCcnLCAnZGVmYXVsdGFkbWluJywgJycpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqICBmb3IgYWpheCB0cmlnZ2VyaW5nIG9mIHByb2Nlc3NpbmcsIGFmdGVyIHRlbXBsYXRlIGhhcyBiZWVuIGRpc3BsYXllZAogICAgICogIEBwYXJhbSBvYmplY3QgJHNhdmVkX2RldGFpbHMgLSBwcmV2aW91c2x5IHNhdmVkIGRldGFpbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFqYXhfcHJvY2Vzcygkc2F2ZWRfZGV0YWlscykKICAgIHsKICAgICAgICAkdGhpcy0+cmVzZXRfYWpheF9wcm9jZXNzaW5nX2RldGFpbHMoKTsgLy8gbm93IHdlIGFyZSBoZXJlIC0gcmVzZXQgdGhlIGFjY2VzcyBkZXRhaWxzCiAgICAgICAgLy8gcHV0IHRoZSBzYXZlZCBleHRyYSBkZXRhaWxzIGludG8gdGhlIG9iamVjdAogICAgICAgICR0aGlzLT5wb3N0c19pbXBvcnRlZCA9ICRzYXZlZF9kZXRhaWxzLT5wb3N0c19pbXBvcnRlZDsKICAgICAgICAkdGhpcy0+YXR0YWNobWVudHNfaW1wb3J0ZWQgPSAkc2F2ZWRfZGV0YWlscy0+YXR0YWNobWVudHNfaW1wb3J0ZWQ7CiAgICAgICAgJHRoaXMtPmNvbnRlbnRfdXBkYXRlZCA9ICRzYXZlZF9kZXRhaWxzLT5jb250ZW50X3VwZGF0ZWQ7CgogICAgICAgICR0aGlzLT5jcmVhdGVfY29uZmlnX29wdGlvbnMoKTsgLy8gZ2V0IHRoZSBjb25maWcgb3B0aW9ucwogICAgICAgICR0aGlzLT5sb2FkX2NvbmZpZygpOyAgIC8vIGxvYWQgdGhlIGNvbmZpZyB2YWx1ZXMgJiBmaWVsZCBtYXAKICAgICAgICAkdGhpcy0+bGlzZV9pbnN0YW5jZSA9IG5ldyBsaXNlX2ludGVyZmFjZSggJHRoaXMtPmNvbmZpZ19vcHRpb25zWydsaXNlX2luc3RhbmNlJ10tPnZhbHVlICk7CiAgICAgICAgJHRoaXMtPmZpZWxkX21hcCA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5nZW5lcmF0ZV9maWVsZF9tYXAoKTsgLy8gc2V0dXAgdGhlIGZpZWxkIG1hcAogICAgICAgICR0aGlzLT5nZXRfZmllbGRfbWFwX3ZhbHVlcygpOwoKICAgICAgICAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+ZGVmYXVsdF9vd25lcl9pZCA9ICR0aGlzLT5jb25maWdfb3B0aW9uc1snZGVmYXVsdF9vd25lciddLT52YWx1ZTsKICAgICAgICAkdGhpcy0+c2V0X3VwbG9hZHNfbG9jYXRpb24oc3ViZGlyOiAkdGhpcy0+Y29uZmlnX29wdGlvbnNbJ3VwbG9hZHNfbG9jYXRpb24nXS0+dmFsdWUgKTsKCiAgICAgICAgaWYgKCR0aGlzLT5yZXRyeSkgJHRoaXMtPnJldHJ5X2FqYXhfcHJvY2VzcygpOwoKICAgICAgICAkdGhpcy0+aW1wb3J0X3dwX3htbF90b19MSVNFKCk7CgoKCiAgICAgICAgJGV4dHJhX2RldGFpbHMgPSBbCiAgICAgICAgICAgICdwb3N0c19pbXBvcnRlZCcgPT4gJHRoaXMtPnBvc3RzX2ltcG9ydGVkLAogICAgICAgICAgICAnYXR0YWNobWVudHNfaW1wb3J0ZWQnID0+ICR0aGlzLT5hdHRhY2htZW50c19pbXBvcnRlZCwKICAgICAgICAgICAgJ2NvbnRlbnRfdXBkYXRlZCcgPT4gJHRoaXMtPmNvbnRlbnRfdXBkYXRlZCwKICAgICAgICBdOwogICAgICAgICR0aGlzLT5zZXRfYWpheF9wcm9jZXNzaW5nX2RldGFpbHMoJGV4dHJhX2RldGFpbHMpOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gaW1wb3J0X3dwX3htbF90b19MSVNFKCkKICAgIHsKICAgICAgICAvLyBnZXQgdGhlIHdwIHhtbCBkYXRhIGFnYWluCiAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPmNvbmZpZ19vcHRpb25zWyd3cF94bWxfZmlsZSddLT52YWx1ZTsKICAgICAgICAkdGhpcy0+d3BfeG1sID0gbmV3IHdwX3htbF9pbnRlcmZhY2UoICRmaWxlbmFtZSApOwogICAgICAgICRzb3VyY2VfYmFzZV91cmxzID0gJHRoaXMtPmNvbmZpZ19vcHRpb25zWydzb3VyY2VfYmFzZV91cmxzJ10tPnZhbHVlOwogICAgICAgICRpdGVtX2NvdW50ID0gMDsKCiAgICAgICAgLy8gcHJvY2VzcyB0aGUgbmV4dCBiYXRjaF9zaXplIG51bWJlciBvZiBpdGVtcwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHN3aXRjaCAoJHRoaXMtPmFqYXhfc3RhdHVzKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzdGFydGVkJzoKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9zdGF0dXMgPSAncG9zdCc7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfcG9zaXRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgY29udGludWUgdG8gJ3Bvc3QnIC0gbm8gYnJlYWsKCiAgICAgICAgICAgICAgICBjYXNlICdwb3N0JzoKICAgICAgICAgICAgICAgICAgICBpZiAoICR0aGlzLT5hamF4X3Bvc2l0aW9uPT0wICkgeyAgICAvLyBzZXR1cCAncG9zdCBpbXBvcnQnIGZlZWRiYWNrIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAnSW1wb3J0aW5nIDxzcGFuIGNsYXNzPSJmZWVkYmFjayBwb3N0LWNvdW50Ij4wPC9zcGFuPiBvZiAnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPndwX3htbC0+d3BfcG9zdF9jb3VudC4nIHBvc3RzIGludG8gJy4kdGhpcy0+bGlzZV9pbnN0YW5jZS0+aW5zdGFuY2VfbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRNZXNzYWdlKCAkbWVzc2FnZSApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkaXRlbXMgPSAkdGhpcy0+d3BfeG1sLT5nZXRfaXRlbXMoJHRoaXMtPmFqYXhfc3RhdHVzLCAkdGhpcy0+YmF0Y2hfc2l6ZSwgJHRoaXMtPmFqYXhfcG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3Bvc2l0aW9uID0gJHRoaXMtPndwX3htbC0+Y3VycmVudF9pdGVtOwogICAgICAgICAgICAgICAgICAgIGlmICggIWVtcHR5KCRpdGVtcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW1fY291bnQgKz0gJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmltcG9ydF9pdGVtcygkaXRlbXMsICR0aGlzLT5maWVsZF9tYXAsICRzb3VyY2VfYmFzZV91cmxzKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBvc3RzX2ltcG9ydGVkICs9ICRpdGVtX2NvdW50OwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9mZWVkYmFja1sncG9zdC1jb3VudCddID0gJHRoaXMtPnBvc3RzX2ltcG9ydGVkOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPndwX3htbC0+YXRfeG1sX2VuZCkgeyAgICAvLyBzd2l0Y2ggdG8gYXR0YWNobWVudHMgYW5kIHN0YXJ0IGF0IGJlZ2lubmluZwogICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IG1lc3NhZ2VzIGFmdGVyIHN0YXR1cyBjb21wbGV0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRMYW5nTWVzc2FnZSggJ21lc3NhZ2VfaW1wb3J0ZWRfaXRlbXMnLCAkdGhpcy0+cG9zdHNfaW1wb3J0ZWQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmluc3RhbmNlX25hbWUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19jYXRlZ29yaWVzX2FkZGVkID0gJHRoaXMtPmxpc2VfaW5zdGFuY2UtPm5ld19jYXRlZ29yaWVzX2FkZGVkOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRuZXdfY2F0ZWdvcmllc19hZGRlZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkTGFuZ01lc3NhZ2UoICdtZXNzYWdlX25ld19jYXRlZ29yaWVzX2FkZGVkJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQoJG5ld19jYXRlZ29yaWVzX2FkZGVkKSwgaW1wbG9kZSgnLCAnLCAkbmV3X2NhdGVnb3JpZXNfYWRkZWQpICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW92ZSB0byBuZXh0IHN0YXR1cwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9zdGF0dXMgPSAnYXR0YWNobWVudCc7ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3Bvc2l0aW9uID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnYXR0YWNobWVudCc6CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT53cF94bWwtPndwX2F0dGFjaG1lbnRfY291bnQ9PTApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfc3RhdHVzID0gJ2NvbnRlbnRfdXBkYXRlJzsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfcG9zaXRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbl9hcnJheSgnd3BfYXR0YWNobWVudHMnLCAkdGhpcy0+ZmllbGRfbWFwX3ZhbHVlcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvcignTm8gIndwX2F0dGFjaG1lbnRzIiBmaWVsZCBtYXBwZWQgLSAnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPndwX3htbC0+d3BfYXR0YWNobWVudF9jb3VudC4nIGF0dGFjaG1lbnRzIHdpbGwgbm90IGJlIGltcG9ydGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3N0YXR1cyA9ICdjb250ZW50X3VwZGF0ZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3Bvc2l0aW9uID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoICR0aGlzLT5hamF4X3Bvc2l0aW9uPT0wICkgeyAgICAvLyBzZXR1cCAnYXR0YWNobWVudCBpbXBvcnQnIGZlZWRiYWNrIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAnSW1wb3J0aW5nIDxzcGFuIGNsYXNzPSJmZWVkYmFjayBhdHRhY2htZW50LWNvdW50Ij4wPC9zcGFuPiBvZiAnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPndwX3htbC0+d3BfYXR0YWNobWVudF9jb3VudC4nIGF0dGFjaG1lbnRzIGludG8gJy4kdGhpcy0+bGlzZV9pbnN0YW5jZS0+aW5zdGFuY2VfbmFtZS4nOiA8c3BhbiBjbGFzcz0iZmVlZGJhY2sgZmlsZS1leGlzdHMtY291bnQiPjA8L3NwYW4+IGV4aXN0IGxvY2FsbHknLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgPHNwYW4gY2xhc3M9ImZlZWRiYWNrIGZpbGUtc2F2ZWQtY291bnQiPjA8L3NwYW4+IHJlbW90ZSBmaWxlcyBzYXZlZCBsb2NhbGx5Jy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsIDxzcGFuIGNsYXNzPSJmZWVkYmFjayBmaWxlLWVycm9yLWNvdW50Ij4wPC9zcGFuPiBmaWxlIGVycm9ycy4nOwoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRNZXNzYWdlKCAkbWVzc2FnZSApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBhdHRhY2htZW50cyBmaWVsZCAkdGhpcy0+ZmllbGRfbWFwX3ZhbHVlcyB2YWx1ZSA9ICd3cF9hdHRhY2htZW50cycKICAgICAgICAgICAgICAgICAgICAkYXR0YWNobWVudHNfZmllbGQgPSBhcnJheV9zZWFyY2goJ3dwX2F0dGFjaG1lbnRzJywgJHRoaXMtPmZpZWxkX21hcF92YWx1ZXMpOwogICAgICAgICAgICAgICAgICAgIGlmICgkYXR0YWNobWVudHNfZmllbGQgPT09IGZhbHNlKSBicmVhazsgIC8vIG5vIGF0dGFjaG1lbnRzIGZpZWxkCgogICAgICAgICAgICAgICAgICAgICRpdGVtcyA9ICR0aGlzLT53cF94bWwtPmdldF9pdGVtcygkdGhpcy0+YWpheF9zdGF0dXMsICR0aGlzLT5iYXRjaF9zaXplLCAkdGhpcy0+YWpheF9wb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfcG9zaXRpb24gPSAkdGhpcy0+d3BfeG1sLT5jdXJyZW50X2l0ZW07CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJHRoaXMtPmNoZWNrX3VwbG9hZHNfZGVzdF9kaXIoJycpICkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignVXBsb2FkcyBkaXJlY3RvcnkgaXMgbm90IHdyaXRhYmxlJyk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoICFlbXB0eSgkaXRlbXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGltcG9ydCB0aGUgYXR0YWNobWVudHMgLSBpZiBub3QgYWxyZWFkeSBkb25lLCBhbHNvIGFkZHMgJ2xvY2FsX3JlbGF0aXZlX3VybCcgdG8gaXRlbXMKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vdmVfZmlsZXNfdG9fdXBsb2Fkc19sb2NhdGlvbigkaXRlbXMpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmltcG9ydF9hdHRhY2htZW50cygkaXRlbXMsICR0aGlzLT5maWVsZF9tYXAsICRzb3VyY2VfYmFzZV91cmxzLCAkYXR0YWNobWVudHNfZmllbGQpOwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YXR0YWNobWVudHNfaW1wb3J0ZWQgKz0gJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmF0dGFjaG1lbnRfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X2ZlZWRiYWNrWydhdHRhY2htZW50LWNvdW50J10gPSAkdGhpcy0+YXR0YWNobWVudHNfaW1wb3J0ZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X2ZlZWRiYWNrWydmaWxlLWV4aXN0cy1jb3VudCddID0gJHRoaXMtPmZpbGVfZXhpc3RzX2NvdW50OwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9mZWVkYmFja1snZmlsZS1zYXZlZC1jb3VudCddID0gJHRoaXMtPmZpbGVfc2F2ZWRfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X2ZlZWRiYWNrWydmaWxlLWVycm9yLWNvdW50J10gPSAkdGhpcy0+ZmlsZV9lcnJvcl9jb3VudDsgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+d3BfeG1sLT5hdF94bWxfZW5kKSB7ICAKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzcGxheSBtZXNzYWdlcyBhZnRlciBzdGF0dXMgY29tcGxldGVkCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkTGFuZ01lc3NhZ2UoICdtZXNzYWdlX2ltcG9ydGVkX2F0dGFjaG1lbnRzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hdHRhY2htZW50c19pbXBvcnRlZCwgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmluc3RhbmNlX25hbWUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfc3RhdHVzID0gJ2NvbnRlbnRfdXBkYXRlJzsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfcG9zaXRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50X3VwZGF0ZSc6CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkdGhpcy0+YWpheF9wb3NpdGlvbj09MCApIHsgICAgLy8gc2V0dXAgJ2NvbnRlbnQgdXBkYXRlJyBmZWVkYmFjayBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJ1VwZGF0aW5nIGNvbnRlbnQgPHNwYW4gY2xhc3M9ImZlZWRiYWNrIGxpc2UtY291bnQiPjA8L3NwYW4+IG9mICcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+cmVjb3JkX2NvdW50LicgaXRlbXMgaW4gJy4kdGhpcy0+bGlzZV9pbnN0YW5jZS0+aW5zdGFuY2VfbmFtZS4nIC0gaW1hZ2VzOiA8c3BhbiBjbGFzcz0iZmVlZGJhY2sgZmlsZS1leGlzdHMtY291bnQiPjA8L3NwYW4+IGV4aXN0IGxvY2FsbHknLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgPHNwYW4gY2xhc3M9ImZlZWRiYWNrIGZpbGUtc2F2ZWQtY291bnQiPjA8L3NwYW4+IHJlbW90ZSBmaWxlcyBzYXZlZCBsb2NhbGx5Jy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsIDxzcGFuIGNsYXNzPSJmZWVkYmFjayBmaWxlLWVycm9yLWNvdW50Ij4wPC9zcGFuPiBmaWxlIGVycm9ycy4nOwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZE1lc3NhZ2UoICRtZXNzYWdlICk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5maWxlX2V4aXN0c19jb3VudCA9IDA7ICAgLy8gcmVzZXQgZmlsZSBjb3VudHMKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpbGVfc2F2ZWRfY291bnQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmlsZV9lcnJvcl9jb3VudCA9IDA7ICAgCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkaXRlbXMgPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+Z2V0X2l0ZW1zKCR0aGlzLT5hamF4X3Bvc2l0aW9uLCAkdGhpcy0+YmF0Y2hfc2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnVwZGF0ZV9jb250ZW50KCRpdGVtcywgJHNvdXJjZV9iYXNlX3VybHMpOwogICAgICAgICAgICAgICAgICAgIC8vJHRoaXMtPmFqYXhfcG9zaXRpb24gPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+Y3VycmVudF9pdGVtOwoKICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGZlZWRiYWNrIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9mZWVkYmFja1snbGlzZS1jb3VudCddID0gJHRoaXMtPmNvbnRlbnRfdXBkYXRlZDsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9mZWVkYmFja1snZmlsZS1leGlzdHMtY291bnQnXSA9ICR0aGlzLT5maWxlX2V4aXN0c19jb3VudDsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWpheF9mZWVkYmFja1snZmlsZS1zYXZlZC1jb3VudCddID0gJHRoaXMtPmZpbGVfc2F2ZWRfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFqYXhfZmVlZGJhY2tbJ2ZpbGUtZXJyb3ItY291bnQnXSA9ICR0aGlzLT5maWxlX2Vycm9yX2NvdW50OyAgIAoKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmxpc2VfaW5zdGFuY2UtPmF0X2VuZCkgeyAgCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkTGFuZ01lc3NhZ2UoICdtZXNzYWdlX2NvbnRlbnRfdXBkYXRlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29udGVudF91cGRhdGVkICk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hamF4X3N0YXR1cyA9ICdjb21wbGV0ZWQnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdjb21wbGV0ZWQnOgogICAgICAgICAgICAgICAgICAgIC8vIHNlZSBiZWxvdwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHRoaXMtPmFqYXhfc3RhdHVzID09ICdjb21wbGV0ZWQnKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZE1lc3NhZ2UoICdJbXBvcnQgQ29tcGxldGVkLicgKTsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+ZmlsZV9lcnJvcl9jb3VudCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZE1lc3NhZ2UoICdSZWNvbW1lbmRlZDogUmV0cnkgaW1wb3J0IG9mIGF0dGFjaG1lbnRzIC0gYXMgdGhlIHJlbW90ZSBzZXJ2ZXIgbG9hZCBtYXkgYmUgaGlnaC4gJy4kdGhpcy0+ZmlsZV9lcnJvcl9jb3VudC4nIGZpbGUgZXJyb3JzLicgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPnNldF9wcm9ncmVzcyggKCR0aGlzLT5wb3N0c19pbXBvcnRlZCArICR0aGlzLT5hdHRhY2htZW50c19pbXBvcnRlZCArIAogICAgICAgICAgICAgICAgJHRoaXMtPmNvbnRlbnRfdXBkYXRlZCkgLCAkdGhpcy0+cHJvZ3Jlc3NfdG90YWwoKSApOwoKICAgICAgICB9IGNhdGNoIChcZXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkRXJyb3IoJ0ltcG9ydCBlcnJvcjogJy4kZS0+Z2V0TWVzc2FnZSgpICk7CiAgICAgICAgfQoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgZ2V0IHRoZSB0b3RhbCBudW1iZXIgb2YgdGFza3MgZm9yIHRoZSBwcm9ncmVzcyBiYXIKICAgICAqICBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvZ3Jlc3NfdG90YWwoKQogICAgewogICAgICAgICRpbXBvcnRfdG90YWwgPSAkdGhpcy0+d3BfeG1sLT53cF9wb3N0X2NvdW50ICsgJHRoaXMtPndwX3htbC0+d3BfYXR0YWNobWVudF9jb3VudCArCiAgICAgICAgICAgICR0aGlzLT53cF94bWwtPndwX3Bvc3RfY291bnQ7ICAgLy8gcG9zdHMsIGF0dGFjaG1lbnRzLCBjb250ZW50IHVwZGF0ZQogICAgICAgIHJldHVybiAkaW1wb3J0X3RvdGFsOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gcmV0cnlfYWpheF9wcm9jZXNzKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnJldHJ5PT0nYXR0YWNobWVudCcpIHsKICAgICAgICAgICAgJHRoaXMtPmFqYXhfc3RhdHVzID0gJ2F0dGFjaG1lbnQnOyAgIAogICAgICAgICAgICAkdGhpcy0+YWpheF9wb3NpdGlvbiA9IDA7CiAgICAgICAgICAgICR0aGlzLT5hdHRhY2htZW50c19pbXBvcnRlZCA9IDA7CiAgICAgICAgICAgICR0aGlzLT5maWxlX2V4aXN0c19jb3VudCA9IDA7CiAgICAgICAgICAgICR0aGlzLT5maWxlX3NhdmVkX2NvdW50ID0gMDsKICAgICAgICAgICAgJHRoaXMtPmZpbGVfZXJyb3JfY291bnQgPSAwOwogICAgICAgIH0KICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZV9jb250ZW50KCRpdGVtcywgJHNvdXJjZV9iYXNlX3VybHMpCiAgICB7CiAgICAgICAgJGl0ZW1fY291bnQgPSAwOwogICAgICAgIC8vIGdldCB0aGUgZmllbGRzIHRvIHVwZGF0ZQogICAgICAgICR1cGRhdGVfZmllbGRzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmZpZWxkX21hcCBhcyAkZmllbGQpIHsKICAgICAgICAgICAgaWYgKCBpbl9hcnJheSgkZmllbGQtPmRlc3RfZmRfdHlwZSwgJHRoaXMtPmNvbnRlbnRfdXBkYXRlX3R5cGVzKSApIHsKICAgICAgICAgICAgICAgICR1cGRhdGVfZmllbGRzW10gPSAkZmllbGQtPmRlc3RfZmllbGQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHVwZGF0ZSB0aGUgY29udGVudCBpdGVtcyBpbiB0aGUgYmF0Y2gKICAgICAgICAkbGlzZV9pbnN0YW5jZSA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5saXNlX2luc3RhbmNlOwogICAgICAgIC8vIENyZWF0ZSBhIG5ldyBET01Eb2N1bWVudCBhbmQgc2V0IGVuY29kaW5nCiAgICAgICAgJGRvbSA9IG5ldyBcRE9NRG9jdW1lbnQoJzEuMCcsICdVVEYtOCcpOwogICAgICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgewogICAgICAgICAgICAkaXRlbV9jb3VudCsrOwogICAgICAgICAgICAkZnVsbF9pdGVtID0gJGxpc2VfaW5zdGFuY2UtPkxvYWRJdGVtQnlJZGVudGlmaWVyKCdpdGVtX2lkJywgJGl0ZW1bJ2l0ZW1faWQnXSk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR1cGRhdGVfZmllbGRzIGFzICRmaWVsZCkgewogICAgICAgICAgICAgICAgJGNvbnRlbnRfdmFsdWUgPSAoc3RyaW5nKSRmdWxsX2l0ZW0tPnskZmllbGR9OwogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCRjb250ZW50X3ZhbHVlKSkgY29udGludWU7CgogICAgICAgICAgICAgICAgLy8gTG9hZCB0aGUgSFRNTCBjb250ZW50ICYgc3VwcHJlc3MgZXJyb3JzIGR1ZSB0byBtYWxmb3JtZWQgSFRNTCB3aXRoIEAKICAgICAgICAgICAgICAgIEAkZG9tLT5sb2FkSFRNTCgnPD94bWwgZW5jb2Rpbmc9IlVURi04Ij4nIC4gJGNvbnRlbnRfdmFsdWUpOyAgLy8gYWRkIGVuY29kaW5nIHRvIHByZXZlbnQgZXJyb3JzCi8vIEAkZG9tLT5sb2FkSFRNTCggJzw/eG1sIGVuY29kaW5nPSJVVEYtOCI+JyAuICRjb250ZW50X3ZhbHVlLCApOyAgLy8gYWRkIGVuY29kaW5nIHRvIHByZXZlbnQgZXJyb3JzCiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIDxpbWc+IHRhZ3MgYW5kIGNoYW5nZSB0aGVpciBzcmMgYXR0cmlidXRlcwogICAgICAgICAgICAgICAgJGltYWdlcyA9ICRkb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKTsgLy8gR2V0IGFsbCA8aW1nPiB0YWdzCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkaW1hZ2VzIGFzICRpbWcpIHsKICAgICAgICAgICAgICAgICAgICAkb2xkU3JjID0gJGltZy0+Z2V0QXR0cmlidXRlKCdzcmMnKTsKICAgICAgICAgICAgICAgICAgICAkbmV3U3JjID0gJHRoaXMtPm1vdmVfZmlsZV90b191cGxvYWRzX2xvY2F0aW9uKCRvbGRTcmMpOwogICAgICAgICAgICAgICAgICAgICRuZXdTcmMgPSBsdHJpbSgkbmV3U3JjLCBESVJFQ1RPUllfU0VQQVJBVE9SKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRuZXdTcmMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRpbWctPnNldEF0dHJpYnV0ZSgnc3JjJywgJG5ld1NyYyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gJGNvbnRlbnRfdmFsdWUgPSAkZG9tLT5zYXZlSFRNTCgpOyAgLy8gY29udmVydCBiYWNrIHRvIHN0cmluZwokY29udGVudF92YWx1ZSA9ICRkb20tPnNhdmVIVE1MKCRkb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JyktPml0ZW0oMCkpOyAvLyBnZXQgb25seSB0aGUgYm9keSBjb250ZW50IGFzIHN0cmluZyAtIHN0cmlwIG91dCBkb2N0eXBlICYgZW5jb2RpbmcKLy8gZ2V0IG9ubHkgdGhlIGJvZHkgY29udGVudCBhcyBzdHJpbmcgLSBzdHJpcCBvdXQgZG9jdHlwZSAmIGVuY29kaW5nCi8vIHJlbW92ZSB0aGUgYm9keSB0YWdzCiRjb250ZW50X3ZhbHVlID0gcHJlZ19yZXBsYWNlKCcvXjxib2R5W14+XSo+fDxcL2JvZHk+JC8nLCAnJywgJGNvbnRlbnRfdmFsdWUpOwogICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBbY2FwdGlvbl0gc2hvcnRjb2RlIHdpdGggPGZpZ3VyZT4gJiA8ZmlnY2FwdGlvbj4KICAgICAgICAgICAgICAgICRjb250ZW50X3ZhbHVlID0gJHRoaXMtPnJlcGxhY2VfY2FwdGlvbl9zaG9ydGNvZGUoJGNvbnRlbnRfdmFsdWUpOwoKICAgICAgICAgICAgICAgICRmdWxsX2l0ZW0tPnskZmllbGR9ID0gJGNvbnRlbnRfdmFsdWU7CiAgICAgICAgICAgICAgICAkbGlzZV9pbnN0YW5jZS0+U2F2ZUl0ZW0oICRmdWxsX2l0ZW0gKTsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICR0aGlzLT5hamF4X3Bvc2l0aW9uICs9ICRpdGVtX2NvdW50OwogICAgICAgICR0aGlzLT5jb250ZW50X3VwZGF0ZWQgKz0gJGl0ZW1fY291bnQ7CiAgICAgICAgLy8gJGN1cnJlbnRfcHJvZ3Jlc3MgPSAkdGhpcy0+cG9zdHNfaW1wb3J0ZWQgKyAkdGhpcy0+YXR0YWNobWVudHNfaW1wb3J0ZWQgKyAkdGhpcy0+Y29udGVudF91cGRhdGVkOwogICAgICAgIC8vICR0aGlzLT5zZXRfcHJvZ3Jlc3MoICRjdXJyZW50X3Byb2dyZXNzICwgJHRoaXMtPnByb2dyZXNzX3RvdGFsKCkgKTsKICAgICAgICByZXR1cm4gJGl0ZW1fY291bnQ7CiAgICB9CgoKICAgIC8qKgogICAgICogIHJlcGxhY2UgW2NhcHRpb25dIHNob3J0Y29kZSB3aXRoIDxmaWd1cmU+ICYgPGZpZ2NhcHRpb24+CiAgICAgKiAgQHBhcmFtIHN0cmluZyAkY29udGVudAogICAgICogIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZXBsYWNlX2NhcHRpb25fc2hvcnRjb2RlKCRjb250ZW50KQogICAgewogICAgICAgICRwYXR0ZXJuID0gJy9cW2NhcHRpb24gaWQ9IihbXiJdKikiIGFsaWduPSIoW14iXSopIiB3aWR0aD0iKFteIl0qKSJcXSguKj8pXFtcL2NhcHRpb25cXS9zJzsKICAgICAgICAkbmV3X2NvbnRlbnQgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJHBhdHRlcm4sIGZ1bmN0aW9uKCRtYXRjaGVzKSB7CiAgICAgICAgICAgIC8vIEV4dHJhY3QgdGhlIGNvbnRlbnQgaW5zaWRlIHRoZSBjYXB0aW9uCiAgICAgICAgICAgICRjb250ZW50ID0gJG1hdGNoZXNbNF07CiAgICAgICAgICAgIC8vIFNlcGFyYXRlIHRoZSBpbWFnZSBhbmQgdGhlIGNhcHRpb24gdGV4dAogICAgICAgICAgICBwcmVnX21hdGNoKCcvKDxpbWdbXj5dKz4pKC4qKS9zJywgJGNvbnRlbnQsICRjb250ZW50TWF0Y2hlcyk7CiAgICAgICAgICAgICRpbWdUYWcgPSAkY29udGVudE1hdGNoZXNbMV07CiAgICAgICAgICAgICRjYXB0aW9uVGV4dCA9IHRyaW0oJGNvbnRlbnRNYXRjaGVzWzJdKTsKICAgICAgICAgICAgJG5ld19jb250ZW50ID0gJzxmaWd1cmUgaWQ9IicgLiAkbWF0Y2hlc1sxXSAuICciIGNsYXNzPSJhbGlnbicgLiAkbWF0Y2hlc1syXSAuICciIHN0eWxlPSJ3aWR0aDonIC4gJG1hdGNoZXNbM10gLiAncHg7Ij4nIC4gJGltZ1RhZyAuICc8ZmlnY2FwdGlvbj4nIC4gJGNhcHRpb25UZXh0IC4gJzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4nOwogICAgICAgICAgICByZXR1cm4gJG5ld19jb250ZW50OwogICAgICAgIH0sICRjb250ZW50KTsKCiAgICAgICAgcmV0dXJuICRuZXdfY29udGVudDsKICAgIH0KCgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ImportExportBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgoKYWJzdHJhY3QgY2xhc3MgSW1wb3J0RXhwb3J0QmFzZSAKewogICAgY29uc3QgTEFOR19MQUJFTF9QUkVGSVggPSAnbGFiZWxfJzsKICAgIGNvbnN0IElOUFVUX1RZUEVTID0gWyd0ZXh0JywgJ3RleHRhcmVhJywgJ3NlbGVjdCcsICdjaGVja2JveCcsICdmaWxlX3htbCcsICdzdWJtaXQnLCAnY2FuY2VsJ107CiAgICBjb25zdCBJTlBVVF9UWVBFU19OT1RfU0FWRUQgPSBbJ3N1Ym1pdCcsICdjYW5jZWwnXTsgIC8vICdmaWxlX3htbCcsCiAgICBjb25zdCBGSUVMRE5BTUVfUFJFRklYID0gJ20xXyc7ICAgICAvLyBwcmVmaXggZm9yIHRoZSBmb3JtIGZpZWxkbmFtZSAtIGFzIGl0J3MgYW4gYWRtaW4gZm9ybQogICAgY29uc3QgQ0FDSEVfUFJFRklYID0gJ0ltcG9ydEV4cG9ydF8nOyAgICAvLyBwcmVmaXggZm9yIHRoZSBjYWNoZSBrZXkKICAgIGNvbnN0IEFKQVhfUFJPQ0VTU0lOR19ERVRBSUxTID0gJ0ltcG9ydEV4cG9ydF9hamF4X3Byb2Nlc3NpbmdfZGV0YWlscyc7IC8vIHByZWZlcmVuY2Uga2V5IGZvciBhamF4IHByb2Nlc3NpbmcgZGV0YWlscyAtIHNhbWUgYXMgbW9kdWxlIGNsYXNzCiAgICBjb25zdCBSRU1PVkVfTEVBRElOR19ESVJTID0gWyd3cC1jb250ZW50JywgJ3VwbG9hZHMnXTsKICAgIGNvbnN0IEZJTEVfR0VUX0NPTlRFTlRTX1RJTUVPVVQgPSA1OyAgLy8gc2Vjb25kcwoKICAgIHB1YmxpYyAkbW9kOwogICAgcHVibGljICR0eXBlID0gJyc7ICAgICAgLy8gdHlwZSBvZiBpbXBvcnQvZXhwb3J0CiAgICBwdWJsaWMgJHR5cGVfbmFtZSA9ICcnOyAvLyBkaXNwbGF5IG5hbWUgb2YgdGhlIHR5cGUgb2YgaW1wb3J0L2V4cG9ydAogICAgcHVibGljICR0ZW1wbGF0ZV9uYW1lID0gbnVsbDsgIC8vIHNldCBieSBjaGlsZCBjbGFzcwogICAgcHVibGljICRzdGVwID0gMTsgICAgICAgLy8gc3RlcCBpbiB0aGUgaW1wb3J0L2V4cG9ydCBwcm9jZXNzOiAxIGlzIHVzdWFsbHkgY29uZmlndXJhdGlvbgogICAgcHVibGljICRzdGVwcyA9IFsgICAgICAgLy8gc2hvdWxkIGJlIHVwZGF0ZWQgYnkgdGhlIGNoaWxkIGNsYXNzLCBlLmcuCiAgICAgICAgLy8gMSA9PiAnc3RlcF8xX3NlbGVjdCcsCiAgICAgICAgLy8gMiA9PiAnc3RlcF8yX2NvbmZpZycsCiAgICAgICAgLy8gMyA9PiAnc3RlcF8zX2NvbXBsZXRlJywKICAgIF07CiAgICBwdWJsaWMgJGNvbmZpZ19vcHRpb25zID0gW107ICAgICAgICAgICAgLy8gYXJyYXkgb2YgY29uZmlnX29wdGlvbidzIC0gaW5kZXhlZCBieSBmaWVsZG5hbWUKICAgIHB1YmxpYyAkc291cmNlX25hbWUgPSAnJzsgICAgICAgICAgICAgICAvLyBuYW1lIG9mIHRoZSBzb3VyY2Ugc3lzdGVtIC0gdGl0bGUgZm9yIGRpc3BsYXkKICAgIHB1YmxpYyAkc291cmNlX2ZpZWxkcyA9IFtdOyAgICAgICAgICAgICAvLyBhcnJheSBvZiBzb3VyY2UgZmllbGQgYWxpYXNlcwogICAgcHVibGljICRzb3VyY2Vfc2FtcGxlcyA9IFtdOyAgICAgICAgICAgIC8vIGFsaWFzID0+IHNhbXBsZSBkYXRhIGZyb20gc291cmNlIGZpZWxkCiAgICBwdWJsaWMgJGRlc3RpbmF0aW9uX25hbWUgPSAnJzsgICAgICAgICAgLy8gbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gc3lzdGVtIC0gdGl0bGUgZm9yIGRpc3BsYXkKICAgIHB1YmxpYyAkZmllbGRfbWFwID0gW107ICAgICAgICAgICAgICAgICAvLyBhcnJheSBvZiBkZXN0aW5hdGlvbiBmaWVsZCA9PiBmaWVsZF9tYXBfaXRlbSdzIAogICAgcHVibGljICRkZWZhdWx0X2ZpZWxkX21hcHBpbmdzID0gW107ICAgIC8vIHNvdXJjZSBmaWVsZCA9PiBkZXN0aW5hdGlvbiBmaWVsZAogICAgcHVibGljICRjb250ZW50X3VwZGF0ZV90eXBlcyA9IFtdOyAgICAgIC8vIGFycmF5IG9mIGNvbnRlbnQgdHlwZXMsIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgaW1wb3J0CiAgICBwdWJsaWMgJGZpZWxkX21hcF92YWx1ZXMgPSBbXTsgICAgICAgICAgLy8gYXJyYXkgb2YgZmllbGRfbWFwX2l0ZW0gdmFsdWVzCiAgICBwdWJsaWMgJGJhdGNoX3NpemUgPSAxMDsgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCAtIGNhbiBiZSB1cGRhdGVkIGJ5IHRoZSBjaGlsZCBjbGFzcwogICAgcHVibGljICRwcm9ncmVzcyA9IG51bGw7ICAgICAgICAgICAgICAgIC8vIHByb2dyZXNzIGJhciBwZXJjZW50YWdlIC0gYWxzbyBzYXZlZCBpbiBwcmVmZXJlbmNlcwogICAgcHVibGljICRhamF4X2tleSA9IG51bGw7ICAgICAgICAgICAgICAgIC8vIGtleSBmb3IgYWpheCBwcm9jZXNzaW5nIC0gdW5zZXQgYWZ0ZXIgdXNlCiAgICBwdWJsaWMgJGFqYXhfc3RhdHVzID0gbnVsbDsgICAgICAgICAgICAgLy8gc3RhdHVzOiBzdGFydGVkLCAuLi4gLCBjb21wbGV0ZQogICAgcHVibGljICRhamF4X3Bvc2l0aW9uID0gbnVsbDsgICAgICAgICAgIC8vIHBvc2l0aW9uIGluIHRoZSBpbXBvcnQvZXhwb3J0IHByb2Nlc3MKICAgIHB1YmxpYyAkYWpheF9mZWVkYmFjayA9IFtdOyAgICAgICAgICAgICAvLyBmZWVkYmFjayBmb3IgdGhlIGFqYXggcHJvY2Vzc2luZyAtICdjbGFzcycgPT4gJ21lc3NhZ2UnCiAgICBwdWJsaWMgJHVwbG9hZHNfbG9jYXRpb24gPSBudWxsOyAgICAgICAgLy8gbG9jYXRpb24gZm9yIHVwbG9hZGVkIGZpbGVzIC0gc3ViZGlyIG9mIHVwbG9hZHMKICAgIHB1YmxpYyAkZmlsZV9leGlzdHNfY291bnQgPSAwOyAgICAgICAgICAvLyBjb3VudCBvZiBmaWxlcyB0aGF0IGFscmVhZHkgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlyZWN0b3J5CiAgICBwdWJsaWMgJGZpbGVfZXJyb3JfY291bnQgPSAwOyAgICAgICAgICAgLy8gY291bnQgb2YgZmlsZXMgdGhhdCBoYWQgZXJyb3JzIHNhdmluZwogICAgcHVibGljICRmaWxlX3NhdmVkX2NvdW50ID0gMDsgICAgICAgICAgIC8vIGNvdW50IG9mIGZpbGVzIHRoYXQgd2VyZSBzYXZlZAogICAgcHVibGljICRyZXRyeSA9IG51bGw7ICAgICAgICAgICAgICAgICAgIC8vIGlmIHNldCwgcmV0cnkgdGhlIHByb2Nlc3NpbmcsIGUuZy4gYXR0YWNobWVudHMKICAgIHB1YmxpYyAkbWVzc2FnZU1hbmFnZXIgPSBudWxsOyAgICAgICAgICAvLyBNZXNzYWdlTWFuYWdlciBpbnN0YW5jZSAoc2luZ2xldG9uKQogICAgcHVibGljICRtZXNzYWdlcyA9IFtdOyAgICAgICAgICAgICAgICAgIC8vIGFycmF5IG9mIG1lc3NhZ2VzIGZvciB0aGUgaW1wb3J0L2V4cG9ydAogICAgcHVibGljICRlcnJvcnMgPSBbXTsgICAgICAgICAgICAgICAgICAgIC8vIGFycmF5IG9mIGVycm9ycyBmb3IgdGhlIGltcG9ydC9leHBvcnQKCgoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIAogICAgewogICAgICAgICR0aGlzLT5tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdJbXBvcnRFeHBvcnQnKTsKICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXIgPSBNZXNzYWdlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKTsKICAgICAgICAkdGhpcy0+c2V0X3Byb2dyZXNzKG51bGwpOyAgICAgLy8gc2hvdWxkIGJlIG51bGwgdW50aWwgaW1wb3J0IHN0YXJ0cwogICAgICAgICR0aGlzLT5zZXRfdXBsb2Fkc19sb2NhdGlvbignJyk7IC8vIGNhbiBiZSB1cGRhdGVkIGJ5IHRoZSBjaGlsZCBjbGFzcwogICAgfQoKCiAgICAvKioKICAgICAqICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSB0aGUgY2hpbGQgY2xhc3MKICAgICAqICAgICAgLSB3aXRoIGNhbGxzIHRvIGFkZF9jb25maWdfb3B0aW9uKCkgdG8gYWRkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICAgICovCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2NvbmZpZ19vcHRpb25zKCk7CgoKICAgIC8qKgogICAgICogIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBjaGlsZCBjbGFzcwogICAgICogICAgICAtIHdpdGggY2FsbHMgdG8gLi4uCiAgICAgKi8KICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKCRwYXJhbXM9W10pOwoKCiAgICAvKioKICAgICAqICBUaGlzIGZ1bmN0aW9uIGNhbiBvcHRpb25hbGx5IGJlIGltcGxlbWVudGVkIGJ5IHRoZSBjaGlsZCBjbGFzcyAKICAgICAqICAgICAgLSBlLmcuIGZvciBhamF4IHRyaWdnZXJpbmcgb2YgcHJvY2Vzc2luZwogICAgICogIEBwYXJhbSBvYmplY3QgJHNhdmVkX2RldGFpbHMgLSB0aGUgc2F2ZWQgZGV0YWlscyByZXRyaWV2ZWQgZnJvbSB0aGUgcHJldmlvdXMgYWpheCBwcm9jZXNzaW5nCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gY2hpbGQgY2xhc3Mgd2lsbCBoYW5kbGUgdGhlIHNhdmVkIGV4dHJhX2RldGFpbHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFqYXhfcHJvY2Vzcygkc2F2ZWRfZGV0YWlscykge30KCgogICAgLyoqCiAgICAgKiAgZ2V0IHRoZSBjb25maWcgb3B0aW9ucyBmcm9tIHRoZSBzdWJtaXR0ZWQgZm9ybSBwYXJhbXMgYW5kIHVwZGF0ZSB0aGUgY29uZmlnX29wdGlvbnMgYXJyYXkKICAgICAgICAqICBAcGFyYW0gYXJyYXkgJHBhcmFtcyAtIHRoZSBzdWJtaXR0ZWQgZm9ybSBwYXJhbWV0ZXJzCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfY29uZmlnX3ZhbHVlcygkcGFyYW1zKQogICAgewogICAgICAgICRmb3JtX3N0ZXAgPSAkdGhpcy0+c3RlcCAtIDE7ICAgLy8gdGhlIGZvcm0gc3RlcCBpcyBhbHdheXMgMSBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgc3RlcAogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5jb25maWdfb3B0aW9ucyBhcyAmJG9wdGlvbikgewogICAgICAgICAgICBpZiAoICRvcHRpb24tPnN0ZXAhPSRmb3JtX3N0ZXAgKSBjb250aW51ZTsgIC8vIG9ubHkgcHJvY2VzcyBvcHRpb25zIGZyb20gdGhlIGN1cnJlbnQgc3RlcAogICAgICAgICAgICBpZiAoIWlzX29iamVjdCgkb3B0aW9uKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvcigiSW52YWxpZCBjb25maWd1cmF0aW9uIG9wdGlvbiBkZXRlY3RlZC4iKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRmaWVsZG5hbWUgPSAkb3B0aW9uLT5maWVsZG5hbWU7CiAgICAgICAgICAgIHN3aXRjaCAoJG9wdGlvbi0+aW5wdXR0eXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICdjYW5jZWwnOgogICAgICAgICAgICAgICAgY2FzZSAnc3VibWl0JzoKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJGZpZWxkbmFtZV0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb24tPnZhbHVlID0gJHBhcmFtc1skZmllbGRuYW1lXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnZmlsZV94bWwnOgogICAgICAgICAgICAgICAgICAgICRmdWxsZmllbGRuYW1lID0gc2VsZjo6RklFTEROQU1FX1BSRUZJWC4kZmllbGRuYW1lOwogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkX0ZJTEVTWyRmdWxsZmllbGRuYW1lXSkgJiYgJF9GSUxFU1skZnVsbGZpZWxkbmFtZV1bJ2Vycm9yJ109PTApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGVwYXRobmFtZSA9ICR0aGlzLT5oYW5kbGVfZmlsZV91cGxvYWQoJGZ1bGxmaWVsZG5hbWUsIFsneG1sJ10pOyAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvciggJHRoaXMtPm1vZC0+TGFuZygnZXJyb3JfdXBsb2FkJywgJGZpZWxkbmFtZSkgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZW1wdHkoJGZpbGVwYXRobmFtZSkgKSAkb3B0aW9uLT52YWx1ZSA9ICRmaWxlcGF0aG5hbWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnZmllbGRfbWFwJzoKICAgICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHBhcmFtc1snZmllbGRfbWFwX2l0ZW0nXSkpIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2ZpZWxkX21hcF9pdGVtJ10gYXMgJGRlc3RfZmllbGQgPT4gJHNvdXJjZV9maWVsZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlzc2V0KCR0aGlzLT5maWVsZF9tYXBbJGRlc3RfZmllbGRdKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZF9tYXBbJGRlc3RfZmllbGRdLT5zb3VyY2VfZmllbGQgPSAkc291cmNlX2ZpZWxkOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICAgIC8vIHRleHQsIHRleHRhcmVhLCBzZWxlY3QKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1skZmllbGRuYW1lXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9wdGlvbi0+dmFsdWUgPSB0cmltKCRwYXJhbXNbJGZpZWxkbmFtZV0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsgIAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqICBoYW5kbGUgdGhlIGZpbGUgdXBsb2FkLCBpbmNsdWRpbmcgY2hlY2tpbmcgdGhlIGZpbGUgdHlwZSwgbW92ZSBpbnRvIHRtcC9jYWNoZQogICAgICAgICogIEBwYXJhbSBzdHJpbmcgJGZpZWxkbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBmaWVsZAogICAgICAgICogIEBwYXJhbSBzdHJpbmcgJHRtcG5hbWUgLSB0aGUgdGVtcG9yYXJ5IG5hbWUgb2YgdGhlIHVwbG9hZGVkIGZpbGUKICAgICAgICAqICBAcGFyYW0gYXJyYXkgJGZpbGV0eXBlcyAtIHRoZSBhbGxvd2VkIGZpbGUgdHlwZXMKICAgICAgICAqICBAcmV0dXJuIHN0cmluZyAkZmlsZXBhdGhuYW1lIC0gZnVsbCBwYXRoICYgZmlsZW5hbWUgaWYgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYW5kbGVfZmlsZV91cGxvYWQoJGZpZWxkbmFtZSwgJGFsbG93ZWRmaWxlRXh0ZW5zaW9ucz1bJ3htbCddKQogICAgewogICAgICAgICRmaWxlTmFtZSA9ICRfRklMRVNbJGZpZWxkbmFtZV1bJ25hbWUnXTsKICAgICAgICAkdG1wbmFtZSA9ICRfRklMRVNbJGZpZWxkbmFtZV1bJ3RtcF9uYW1lJ107CiAgICAgICAgJGZpbGVOYW1lQ21wcyA9IGV4cGxvZGUoIi4iLCAkZmlsZU5hbWUpOwogICAgICAgICRmaWxlRXh0ZW5zaW9uID0gc3RydG9sb3dlcihlbmQoJGZpbGVOYW1lQ21wcykpOwogICAgICAgIGlmICghaW5fYXJyYXkoJGZpbGVFeHRlbnNpb24sICRhbGxvd2VkZmlsZUV4dGVuc2lvbnMpKSB7CiAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkRXJyb3IoICR0aGlzLT5tb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxldHlwZScsaW1wbG9kZSgnLCAnLCAkYWxsb3dlZGZpbGVFeHRlbnNpb25zKSkgKTsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KICAgICAgICAkdXBsb2FkX2RpciA9IENNU19ST09UX1BBVEguJy90bXAvY2FjaGUvJzsKICAgICAgICAkdXBsb2FkX2ZpbGUgPSAkdXBsb2FkX2Rpci5zZWxmOjpDQUNIRV9QUkVGSVgubHRyaW0oJGZpZWxkbmFtZSwnbTFfJykuJy4nLiRmaWxlRXh0ZW5zaW9uOwogICAgICAgIGlmIChtb3ZlX3VwbG9hZGVkX2ZpbGUoJHRtcG5hbWUsICR1cGxvYWRfZmlsZSkpIHsKICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRNZXNzYWdlKCAkdGhpcy0+bW9kLT5MYW5nKCdtZXNzYWdlX2ZpbGVfdXBsb2FkZWQnLCAkZmlsZU5hbWUpICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvciggJHRoaXMtPm1vZC0+TGFuZygnZXJyb3JfdXBsb2FkJywgJGZpbGVOYW1lKSApOwogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdXBsb2FkX2ZpbGU7CiAgICB9CgoKICAgIC8qKgogICAgICogIHNhdmUgdGhlIGNvbmZpZyBvcHRpb25zICsgZmllbGRfbWFwIHRvIHRoZSBtb2R1bGUgcHJlZmVyZW5jZXMKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNhdmVfY29uZmlnKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gW107CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmNvbmZpZ19vcHRpb25zIGFzICRvcHRpb24pIHsKICAgICAgICAgICAgaWYgKCFpc19vYmplY3QoJG9wdGlvbikgfHwgaW5fYXJyYXkoJG9wdGlvbi0+aW5wdXR0eXBlLCBzZWxmOjpJTlBVVF9UWVBFU19OT1RfU0FWRUQpKSBjb250aW51ZTsKICAgICAgICAgICAgaWYgKCRvcHRpb24tPmlucHV0dHlwZT09J2ZpZWxkX21hcCcpIHsKICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIHdob2xlIGZpZWxkX21hcCBhcnJheSAobWlnaHQgY2hhbmdlIHRvIGp1c3Qgc2F2aW5nIHRoZSBmaWVsZCBtYXBpbmdzKQogICAgICAgICAgICAgICAgJHRtcF9maWVsZF9tYXBfdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmllbGRfbWFwIGFzICRmaWVsZCkgewogICAgICAgICAgICAgICAgICAgICR0bXBfZmllbGRfbWFwX3ZhbHVlc1skZmllbGQtPmRlc3RfZmllbGRdID0gJGZpZWxkLT5zb3VyY2VfZmllbGQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkY29uZmlnWyRvcHRpb24tPmZpZWxkbmFtZV0gPSAkdG1wX2ZpZWxkX21hcF92YWx1ZXM7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkY29uZmlnWyRvcHRpb24tPmZpZWxkbmFtZV0gPSAkb3B0aW9uLT52YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCR0aGlzLT50eXBlLidfY29uZmlnJywganNvbl9lbmNvZGUoJGNvbmZpZykpOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgbG9hZCB0aGUgY29uZmlnIG9wdGlvbnMgKyBmaWVsZF9tYXAgZnJvbSB0aGUgbW9kdWxlIHByZWZlcmVuY2VzCiAgICAgKi8gCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbG9hZF9jb25maWcoKQogICAgewogICAgICAgICRjb25maWdfanNvbiA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJHRoaXMtPnR5cGUuJ19jb25maWcnKTsKICAgICAgICBpZiAoIWVtcHR5KCRjb25maWdfanNvbikpIHsKICAgICAgICAgICAgJHNhdmVkX2NvbmZpZyA9IGpzb25fZGVjb2RlKCRjb25maWdfanNvbiwgdHJ1ZSk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5jb25maWdfb3B0aW9ucyBhcyAkZmllbGRuYW1lID0+ICYkb3B0aW9uKSB7CiAgICAgICAgICAgICAgICBpZiAoIGlzX29iamVjdCgkb3B0aW9uKSAmJiBpc3NldCgkc2F2ZWRfY29uZmlnWyRmaWVsZG5hbWVdKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJG9wdGlvbi0+aW5wdXR0eXBlPT0nZmllbGRfbWFwJykgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRfbWFwX3ZhbHVlcyA9ICRzYXZlZF9jb25maWdbJGZpZWxkbmFtZV07CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5nZXRfZmllbGRfbWFwX3ZhbHVlcygpOyAgLy8gaWYgZmllbGRfbWFwIGV4aXN0cyAtIHNhdmVkIHZhbHVlcyBvciBkZWZhdWx0cwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkb3B0aW9uLT52YWx1ZSA9ICRzYXZlZF9jb25maWdbJGZpZWxkbmFtZV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqICBsb2FkIGZpZWxkIG1hcCB3aXRoIHRoZSBzYXZlZCB2YWx1ZXMgb3IgZGVmYXVsdCBmaWVsZCBtYXBwaW5ncyAtIGlmIGZpZWxkX21hcCBleGlzdHMKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9maWVsZF9tYXBfdmFsdWVzKCkKICAgIHsKICAgICAgICBpZiAoIGVtcHR5KCR0aGlzLT5maWVsZF9tYXApICkgcmV0dXJuOwoKICAgICAgICBpZiAoICFlbXB0eSgkdGhpcy0+ZmllbGRfbWFwX3ZhbHVlcykgKSB7CiAgICAgICAgICAgIC8vIGxvYWQgdGhlIGZpZWxkIG1hcCB3aXRoIHRoZSBzYXZlZCB2YWx1ZXMKICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmZpZWxkX21hcCBhcyAkZGVzdF9maWVsZCA9PiAkZmllbGQpIHsKICAgICAgICAgICAgICAgIGlmICggaXNzZXQoJHRoaXMtPmZpZWxkX21hcF92YWx1ZXNbJGRlc3RfZmllbGRdKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRfbWFwWyRkZXN0X2ZpZWxkXS0+c291cmNlX2ZpZWxkID0gJHRoaXMtPmZpZWxkX21hcF92YWx1ZXNbJGRlc3RfZmllbGRdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0gZWxzZWlmICggIWVtcHR5KCR0aGlzLT5kZWZhdWx0X2ZpZWxkX21hcHBpbmdzKSApIHsKICAgICAgICAgICAgLy8gYXBwbHkgdGhlIGRlZmF1bHQgZmllbGQgbWFwcGluZ3MKICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmRlZmF1bHRfZmllbGRfbWFwcGluZ3MgYXMgJHNvdXJjZV9maWVsZCA9PiAkZGVzdF9maWVsZCkgewogICAgICAgICAgICAgICAgaWYgKCBpc3NldCgkdGhpcy0+ZmllbGRfbWFwWyRkZXN0X2ZpZWxkXSkgJiYgZW1wdHkoJHRoaXMtPmZpZWxkX21hcFskZGVzdF9maWVsZF0tPnNvdXJjZV9maWVsZCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkX21hcFskZGVzdF9maWVsZF0tPnNvdXJjZV9maWVsZCA9ICRzb3VyY2VfZmllbGQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKCiAgICAvKioKICAgICAqICBnZXQgdGhlIHNlbGVjdGVkIHNvdXJjZXMgZnJvbSB0aGUgZmllbGQgbWFwCiAgICAgICAgKiAgQHJldHVybiBhcnJheSBvZiBzZWxlY3RlZCBzb3VyY2UgZmllbGRzCiAgICAgKi8gCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlbGVjdGVkX3NvdXJjZXMoKQogICAgewogICAgICAgICRzZWxlY3RlZF9zb3VyY2VzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmZpZWxkX21hcCBhcyAkZmllbGRuYW1lID0+ICRmaWVsZCkgewogICAgICAgICAgICBpZiAoICFlbXB0eSgkZmllbGQtPnNvdXJjZV9maWVsZCkgKSB7CiAgICAgICAgICAgICAgICAkc2VsZWN0ZWRfc291cmNlc1tdID0gJGZpZWxkLT5zb3VyY2VfZmllbGQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkc2VsZWN0ZWRfc291cmNlczsKICAgIH0KCgogICAgLyoqCiAgICAgKiAgc2V0IHRoZSBwcm9ncmVzcyBiYXIgcGVyY2VudGFnZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Byb2dyZXNzKCRjb3VudD1udWxsLCAkdG90YWw9bnVsbCkKICAgIHsKICAgICAgICBpZiAoIGlzX251bGwoJGNvdW50KSB8fCBlbXB0eSgkdG90YWwpICkgewogICAgICAgICAgICAkcHJvZ3Jlc3MgPSBudWxsOyAgIC8vIHByb2dyZXNzIGJhciBub3Qgb3V0cHV0CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHByb2dyZXNzID0gKGludCkoJGNvdW50IC8gJHRvdGFsICogMTAwKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnByb2dyZXNzID0gJHByb2dyZXNzOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgcmV0cmlldmUgdGhlIGRldGFpbHMgZm9yIGFqYXggcHJvY2Vzc2luZyBpbiBwcm9ncmVzcwogICAgICogIHRoaXMgY29kZSBpbiBtb2R1bGUgY2xhc3MgLSBhcyBpbXBvcnQvZXhwb3J0IHR5cGUgaXMgbm90IGtub3duCiAgICAgKiAgQHBhcmFtIHN0cmluZyAka2V5IC0gcmVxdWlyZWQgLSB0aGUgcHJldmlvdXNseSBzYXZlZCBrZXkgZm9yIGFqYXggcHJvY2Vzc2luZwogICAgICogIEByZXR1cm4gb2JqZWN0fGJvb2xlYW4gYXJyYXkgb2Ygc2F2ZWQgZGV0YWlscywgb3IgZmFsc2UgaWYga2V5IGluY29ycmVjdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FqYXhfcHJvY2Vzc2luZ19kZXRhaWxzKCRwcm92aWRlZF9rZXkpCiAgICB7CiAgICAgICAgLy8gY2FsbCB0aGUgbW9kdWxlIGNsYXNzIG1ldGhvZAogICAgICAgIHJldHVybiAkdGhpcy0+bW9kLT5nZXRfYWpheF9wcm9jZXNzaW5nX2RldGFpbHMoJHByb3ZpZGVkX2tleSk7CiAgICB9CgoKICAgIC8qKgogICAgICogIHNhdmUgdGhlIGRldGFpbHMgZm9yIHRoZSBhamF4IHByb2Nlc3NpbmcsIGtleSAmIHR5cGUgYWRkZWQgdG8gdGhlIGRldGFpbHMKICAgICAqICBAcGFyYW0gYXJyYXkgJGV4dHJhX2RldGFpbHMgLSBleHRyYSBkZXRhaWxzIHRvIHNhdmUgCiAgICAgKiAgc2V0cyAkdGhpcy0+YWpheF9rZXkgLSB0aGUga2V5IGZvciB0aGUgYWpheCBwcm9jZXNzaW5nCiAgICAgKiAgICAgIGUuZy4gWydzdGF0dXMnID0+ICdzdGFydGVkJywgJ3Bvc2l0aW9uJyA9PiAwXS4uLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FqYXhfcHJvY2Vzc2luZ19kZXRhaWxzKCRleHRyYV9kZXRhaWxzKQogICAgeyAgIAogICAgICAgICRhamF4X2RldGFpbHMgPSAob2JqZWN0KSRleHRyYV9kZXRhaWxzOwogICAgICAgIC8vIHNldCB0aGUgaW1wb3J0YW50IGRldGFpbHMgYnkgZGVmYXVsdAogICAgICAgICRhamF4X2RldGFpbHMtPnR5cGUgPSAkdGhpcy0+dHlwZTsKICAgICAgICAkdGhpcy0+YWpheF9rZXkgPSBtZDUodW5pcWlkKHJhbmQoKSwgdHJ1ZSkpOwogICAgICAgICRhamF4X2RldGFpbHMtPmFqYXhfa2V5ID0gJHRoaXMtPmFqYXhfa2V5OwogICAgICAgICRhamF4X2RldGFpbHMtPmFqYXhfc3RhdHVzID0gJHRoaXMtPmFqYXhfc3RhdHVzOwogICAgICAgICRhamF4X2RldGFpbHMtPmFqYXhfcG9zaXRpb24gPSAkdGhpcy0+YWpheF9wb3NpdGlvbjsKICAgICAgICAkYWpheF9kZXRhaWxzLT5maWxlX2V4aXN0c19jb3VudCA9ICR0aGlzLT5maWxlX2V4aXN0c19jb3VudDsKICAgICAgICAkYWpheF9kZXRhaWxzLT5maWxlX2Vycm9yX2NvdW50ID0gJHRoaXMtPmZpbGVfZXJyb3JfY291bnQ7CiAgICAgICAgJGFqYXhfZGV0YWlscy0+ZmlsZV9zYXZlZF9jb3VudCA9ICR0aGlzLT5maWxlX3NhdmVkX2NvdW50OwoKICAgICAgICAkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKHNlbGY6OkFKQVhfUFJPQ0VTU0lOR19ERVRBSUxTLCBqc29uX2VuY29kZSgkYWpheF9kZXRhaWxzKSk7CiAgICB9CgoKICAgIC8qKgogICAgICogIHJlc2V0IHRoZSBkZXRhaWxzIGZvciB0aGUgYWpheCBwcm9jZXNzaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF9hamF4X3Byb2Nlc3NpbmdfZGV0YWlscygpCiAgICB7CiAgICAgICAgJHRoaXMtPm1vZC0+U2V0UHJlZmVyZW5jZShzZWxmOjpBSkFYX1BST0NFU1NJTkdfREVUQUlMUywgbnVsbCk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja191cGxvYWRzX2Rlc3RfZGlyKCRzdWJkaXIpCiAgICB7CiAgICAgICAgJHVwbG9hZHNfcGF0aCA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRDb25maWcoKVsndXBsb2Fkc19wYXRoJ107CiAgICAgICAgJGRlc3RfZGlyID0gY21zX2pvaW5fcGF0aCgkdXBsb2Fkc19wYXRoLCAkc3ViZGlyKTsKICAgICAgICAkT2sgPSAoIGlzX3dyaXRhYmxlKCAkZGVzdF9kaXIgKSApOwogICAgICAgIGlmICghJE9rKSB7CiAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkRXJyb3IoICgnQ2Fubm90IGFjY2VzcyBkZXN0aW5hdGlvbiBkaXJlY3Rvcnk6ICcrICRkZXN0X2RpcikgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRPazsKICAgIH0KCgogICAgLyoqCiAgICAgKiAgbW92ZSBhIGZpbGUgdG8gdGhlIHVwbG9hZHMgbG9jYXRpb24KICAgICAqICBAcGFyYW0gc3RyaW5nICRyZW1vdGVfZmlsZV91cmwgLSB0aGUgcmVtb3RlIGZpbGUgdXJsCiAgICAgKiAgQHJldHVybiBzdHJpbmcgJGxvY2FsX3JlbGF0aXZlX3VybCAtIHRoZSBsb2NhbCByZWxhdGl2ZSB1cmwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIG1vdmVfZmlsZV90b191cGxvYWRzX2xvY2F0aW9uKCRyZW1vdGVfZmlsZV91cmwpCiAgICB7CiAgICAgICAgLy8gY2hlY2sgaWYgZmlsZSBpcyBhbHJlYWR5IGluIHRoZSB1cGxvYWRzIGRpcmVjdG9yeQogICAgICAgICRsb2NhbF9yZWxhdGl2ZV91cmwgPSBudWxsOwogICAgICAgICRmaWxlX2RldGFpbHMgPSAkdGhpcy0+Z2V0X2ZpbGVfZGV0YWlscygkcmVtb3RlX2ZpbGVfdXJsKTsKICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGVfZGV0YWlscy0+bG9jYWxfcGF0aCkpIHsKICAgICAgICAgICAgLy8gbm8gbmVlZCB0byBkbyBhbnl0aGluZy4uLgogICAgICAgICAgICAkbG9jYWxfcmVsYXRpdmVfdXJsID0gJGZpbGVfZGV0YWlscy0+bG9jYWxfcmVsYXRpdmVfdXJsOwogICAgICAgICAgICAkdGhpcy0+ZmlsZV9leGlzdHNfY291bnQrKzsKCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gZ2V0IGZpbGUgZnJvbSByZW1vdGUgdXJsLCB3aXRoIHRpbWVvdXQKICAgICAgICAgICAgJGN0eCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZShbJ2h0dHAnID0+IFsndGltZW91dCcgPT4gc2VsZjo6RklMRV9HRVRfQ09OVEVOVFNfVElNRU9VVF1dKTsKICAgICAgICAgICAgJGZpbGUgPSBmaWxlX2dldF9jb250ZW50cygkcmVtb3RlX2ZpbGVfdXJsLCBmYWxzZSwgJGN0eCk7ICAgICAgICAgICAKCiAgICAgICAgICAgIGlmICgkZmlsZSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5maWxlX2Vycm9yX2NvdW50Kys7ICAvLyBidXQgYWxzbyBvdXRwdXQgZXJyb3IgbWVzc2FnZQogICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvciggJ0Vycm9yIGdldHRpbmcgZmlsZTogJy4kcmVtb3RlX2ZpbGVfdXJsKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIHNhdmUgZmlsZSB0byB1cGxvYWRzIGRpcmVjdG9yeSwgY2hlY2sgaWYgZGlyZWN0b3J5IGV4aXN0cywgb3IgY3JlYXRlIGl0CiAgICAgICAgICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCRmaWxlX2RldGFpbHMtPmxvY2FsX2RpcikpIHsKICAgICAgICAgICAgICAgICAgICBta2RpcigkZmlsZV9kZXRhaWxzLT5sb2NhbF9kaXIsIDA3NzcsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gc2F2ZSBmaWxlCiAgICAgICAgICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZpbGVfZGV0YWlscy0+bG9jYWxfcGF0aCwgJGZpbGUpPT09ZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmlsZV9lcnJvcl9jb3VudCsrOyAgLy8gYnV0IGFsc28gb3V0cHV0IGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCAnRXJyb3Igc2F2aW5nIGZpbGU6ICcuJGZpbGVfZGV0YWlscy0+bG9jYWxfcGF0aCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRsb2NhbF9yZWxhdGl2ZV91cmwgPSAkZmlsZV9kZXRhaWxzLT5sb2NhbF9yZWxhdGl2ZV91cmw7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpbGVfc2F2ZWRfY291bnQrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gIAogICAgICAgIHJldHVybiAkbG9jYWxfcmVsYXRpdmVfdXJsOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gbW92ZV9maWxlc190b191cGxvYWRzX2xvY2F0aW9uKCYkaXRlbXMpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICYkaXRlbSkgewogICAgICAgICAgICAkcmVtb3RlX2ZpbGVfdXJsID0gJGl0ZW1bJ3dwX2F0dGFjaG1lbnRzJ107CiAgICAgICAgICAgICRsb2NhbF9yZWxhdGl2ZV91cmwgPSAkdGhpcy0+bW92ZV9maWxlX3RvX3VwbG9hZHNfbG9jYXRpb24oJHJlbW90ZV9maWxlX3VybCk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJGxvY2FsX3JlbGF0aXZlX3VybCkpIHsKICAgICAgICAgICAgICAgICRpdGVtWydsb2NhbF9yZWxhdGl2ZV91cmwnXSA9ICRsb2NhbF9yZWxhdGl2ZV91cmw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKICAgIC8qKgogICAgICogIHNldCB0aGUgdXBsb2FkcyBsb2NhdGlvbiBmb3IgdGhlIGZpbGVzIC0gdHJ5IHRvIGNyZWF0ZSAkc3ViZGlyIG9yIGp1c3QgdXNlIHVwbG9hZHMgZGlyCiAgICAgKi8gCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VwbG9hZHNfbG9jYXRpb24oJHN1YmRpcikKICAgIHsKICAgICAgICAkdXBsb2Fkc19wYXRoID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldENvbmZpZygpWyd1cGxvYWRzX3BhdGgnXTsKICAgICAgICAkZGVzdF9kaXIgPSBlbXB0eSgkc3ViZGlyKSA/ICR1cGxvYWRzX3BhdGggOiBjbXNfam9pbl9wYXRoKCR1cGxvYWRzX3BhdGgsICRzdWJkaXIpOwogICAgICAgICRkZXN0X2RpciA9IHJ0cmltKCRkZXN0X2RpciwgRElSRUNUT1JZX1NFUEFSQVRPUikuRElSRUNUT1JZX1NFUEFSQVRPUjsgIC8vIGFkZCB0cmFpbGluZyAnLwoKICAgICAgICBpZiAoIGlzX3dyaXRhYmxlKCAkZGVzdF9kaXIgKSApIHsgICAvLyBkaXIgZXhpc3RzCiAgICAgICAgICAgICR0aGlzLT51cGxvYWRzX2xvY2F0aW9uID0gJGRlc3RfZGlyOwogICAgICAgICAgICAKICAgICAgICB9IGVsc2VpZiAoIG1rZGlyKCRkZXN0X2RpciwgMDc3NywgdHJ1ZSkgKSB7CiAgICAgICAgICAgICR0aGlzLT51cGxvYWRzX2xvY2F0aW9uID0gJGRlc3RfZGlyOyAgICAvLyBjcmVhdGVkIGRpcgoKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCAnQ2Fubm90IGFjY2VzcyBkZXN0aW5hdGlvbiBkaXJlY3Rvcnk6ICcuJGRlc3RfZGlyICk7CiAgICAgICAgICAgICR0aGlzLT51cGxvYWRzX2xvY2F0aW9uID0gJHVwbG9hZHNfcGF0aDsgICAgLy8gdXNlIGRlZmF1bHQgdXBsb2FkcyBkaXIKICAgICAgICB9CiAgICB9CgoKICAgIC8qKgogICAgICogIGdldCB0aGUgbG9jYWwgZmlsZSBuYW1lIGZyb20gdGhlIHJlbW90ZSBmaWxlIG5hbWUKICAgICAqICBAcGFyYW0gc3RyaW5nICRyZW1vdGVfZmlsZV91cmwgLSB0aGUgcmVtb3RlIGZpbGUgbmFtZQogICAgICogIEByZXR1cm4gb2JqZWN0ICRsb2NhbF9maWxlIC0gdGhlIGxvY2FsIGZpbGUgd2l0aCBhbGwgdXNlZnVsIGRldGFpbHMgYXMgbWVtYmVyIHZhcmlhYmxlcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGVfZGV0YWlscygkcmVtb3RlX2ZpbGVfdXJsKQogICAgewogICAgICAgICRmaWxlX2RldGFpbHMgPSBuZXcgXHN0ZENsYXNzOwogICAgICAgICRmaWxlX2RldGFpbHMtPnJlbW90ZV9maWxlX3VybCA9ICRyZW1vdGVfZmlsZV91cmw7CiAgICAgICAgCiAgICAgICAgJHJlbW90ZV91cmxfcGFydHMgPSBwYXJzZV91cmwoJHJlbW90ZV9maWxlX3VybCk7CiAgICAgICAgJGZpbGVfZGV0YWlscy0+cmVtb3RlX3NjaGVtZSA9ICRyZW1vdGVfdXJsX3BhcnRzWydzY2hlbWUnXTsKICAgICAgICAkZmlsZV9kZXRhaWxzLT5yZW1vdGVfaG9zdCA9ICRyZW1vdGVfdXJsX3BhcnRzWydob3N0J107ICAvLyBmdWxsIGRvbWFpbgogICAgICAgICRmaWxlX2RldGFpbHMtPnJlbW90ZV9wYXRoID0gJHJlbW90ZV91cmxfcGFydHNbJ3BhdGgnXTsgIC8vIGluY2x1ZGVzIGxlYWRpbmcgJy8nICYgZmlsZW5hbWUKICAgICAgICAkZmlsZV9kZXRhaWxzLT5maWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlX2RldGFpbHMtPnJlbW90ZV9wYXRoKTsKCiAgICAgICAgLy8gZ2V0IGxvY2FsIHBhdGggJiB1cmwgLSByZW1vdmUgbGVhZGluZyBkaXJlY3RvcmllcwogICAgICAgICR0bXBfcGF0aCA9IHRyaW0oJGZpbGVfZGV0YWlscy0+cmVtb3RlX3BhdGgsIERJUkVDVE9SWV9TRVBBUkFUT1IpOyAvLyByZW1vdmUgJy8ncwogICAgICAgICR0bXBfcGF0aF9wYXJ0cyA9IGV4cGxvZGUoJy8nLCAkdG1wX3BhdGgpOyAgLy8gc3BsaXQgaW50byBwYXJ0cwogICAgICAgIGZvcmVhY2ggKHNlbGY6OlJFTU9WRV9MRUFESU5HX0RJUlMgYXMgJHJlbW92ZV9kaXIpIHsgICAgLy8gcmVtb3ZlIGxlYWRpbmcgZGlyZWN0b3JpZXMKICAgICAgICAgICAgaWYgKCR0bXBfcGF0aF9wYXJ0c1swXT09JHJlbW92ZV9kaXIpIHsKICAgICAgICAgICAgICAgIGFycmF5X3NoaWZ0KCR0bXBfcGF0aF9wYXJ0cyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRtcF9wYXRoID0gaW1wbG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLCAkdG1wX3BhdGhfcGFydHMpOyAvLyBwYXRoICsgZmlsZW5hbWUKICAgICAgICAkZmlsZV9kZXRhaWxzLT5sb2NhbF9wYXRoID0gJHRoaXMtPnVwbG9hZHNfbG9jYXRpb24uJHRtcF9wYXRoOwogICAgICAgIC8vIGxvY2FsIHVybCAtIHJlbGF0aXZlIHRvIHJvb3QKICAgICAgICAkcm9vdF9wYXRoID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldENvbmZpZygpWydyb290X3BhdGgnXTsKICAgICAgICAkZmlsZV9kZXRhaWxzLT5sb2NhbF9yZWxhdGl2ZV91cmwgPSBzdHJfcmVwbGFjZSgkcm9vdF9wYXRoLCAnJywgJGZpbGVfZGV0YWlscy0+bG9jYWxfcGF0aCk7CiAgICAgICAgJGZpbGVfZGV0YWlscy0+bG9jYWxfZGlyID0gZGlybmFtZSgkZmlsZV9kZXRhaWxzLT5sb2NhbF9wYXRoKTsKCiAgICAgICAgcmV0dXJuICRmaWxlX2RldGFpbHM7ICAgIAogICAgfQogICAgCgogICAgLyoqCiAgICAgKiAgdGVzdCBpZiBmb3BlbiBpcyBlbmFibGVkCiAgICAgKiAgQHJldHVybiBib29sZWFuICRmb3Blbl9lbmFibGVkIC0gVFJVRSBpZiBmb3BlbiBpcyBlbmFibGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBmb3Blbl9lbmFibGVkKCkKICAgIHsKICAgICAgICAkYWxsb3dfdXJsX2ZvcGVuID0gaW5pX2dldCgnYWxsb3dfdXJsX2ZvcGVuJyk7CiAgICAgICAgcmV0dXJuIChib29sZWFuKSRhbGxvd191cmxfZm9wZW47CiAgICB9CgoKICAgIC8vIC8qKgogICAgLy8gICogTk9UIFlFVCBURVNURUQgLSBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKICAgIC8vICAqLwogICAgLy8gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfbmV3X3VybCggJG5ld3NfcmVjLCAkd3BfcmVjICkKICAgIC8vIHsKICAgIC8vICAgICAkbmV3c191cmwgPSAnJzsKICAgIC8vICAgICAkZXJyb3IgPSBGQUxTRTsKICAgIC8vICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnSW1wb3J0ZXJFeHBvcnRlcicpOwogICAgLy8gICAgIGlmICggaXNzZXQoJHdwX3JlY1sncG9zdF9uYW1lJ10pICkgewogICAgLy8gICAgICAgICAkbmV3c191cmwgPSAkd3BfcmVjWydwb3N0X25hbWUnXTsKICAgIC8vICAgICB9IGVsc2UgewogICAgLy8gICAgICAgICAkbmV3c191cmwgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCR3cF9yZWNbJ3Bvc3RfdGl0bGUnXSwgZmFsc2UsIHRydWUpOwogICAgLy8gICAgIH0KCiAgICAvLyAgICAgLy8gY2hlY2sgZm9yIHN0YXJ0aW5nIG9yIGVuZGluZyBzbGFzaGVzCiAgICAvLyAgICAgaWYgKHN0YXJ0c3dpdGgoJG5ld3NfdXJsLCAnLycpIHx8IGVuZHN3aXRoKCRuZXdzX3VybCwgJy8nKSkKICAgIC8vICAgICAgICAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpOwogICAgLy8gICAgIGlmICgkZXJyb3I9PT1GQUxTRSkgewogICAgLy8gICAgICAgICAvLyBjaGVjayBmb3IgaW52YWxpZCBjaGFycy4KICAgIC8vICAgICAgICAgJHRyYW5zbGF0ZWQgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRuZXdzX3VybCwgZmFsc2UsIHRydWUpOwogICAgLy8gICAgICAgICBpZiAoc3RydG9sb3dlcigkdHJhbnNsYXRlZCkgIT0gc3RydG9sb3dlcigkbmV3c191cmwpKQogICAgLy8gICAgICAgICAgICAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpOwogICAgLy8gICAgIH0KCiAgICAvLyAgICAgaWYgKCRlcnJvcj09PUZBTFNFKSB7CiAgICAvLyAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGlzIHVybCBpc24ndCB0YWtlbi4KICAgIC8vICAgICAgICAgY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7CiAgICAvLyAgICAgICAgICRyb3V0ZSA9IGNtc19yb3V0ZV9tYW5hZ2VyOjpmaW5kX21hdGNoKCRuZXdzX3VybCwgVFJVRSk7CgogICAgLy8gICAgICAgICBpZiAoJHJvdXRlKSB7CiAgICAvLyAgICAgICAgICAgICAkZGZsdHMgPSAkcm91dGUtPmdldF9kZWZhdWx0cygpOwogICAgLy8gICAgICAgICAgICAgaWYgKCRyb3V0ZVsna2V5MSddICE9ICRtb2QtPkdldE5hbWUoKSB8fCAhaXNzZXQoJGRmbHRzWydhcnRpY2xlaWQnXSkgfHwgJGRmbHRzWydhcnRpY2xlaWQnXSAhPSAkbmV3c19yZWNbJ25ld3NfaWQnXSkgewogICAgLy8gICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGFkZGluZyBhbiBhcnRpY2xlLCBub3QgZWRpdGluZy4uLiBhbnkgbWF0Y2hpbmcgcm91dGUgaXMgYmFkLgogICAgLy8gICAgICAgICAgICAgICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWR1cmwnKTsKICAgIC8vICAgICAgICAgICAgIH0KICAgIC8vICAgICAgICAgfQogICAgLy8gICAgIH0KCiAgICAvLyAgICAgaWYgKCRlcnJvcj09PUZBTFNFKSB7CiAgICAvLyAgICAgICAgIHJldHVybiAkbmV3c191cmw7CiAgICAvLyAgICAgfQoKICAgIC8vICAgICByZXR1cm4gJyc7CiAgICAvLyB9CgoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.lise_interface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7Cgp1c2UgQ01TTVNFeHRccmVwb3J0c1xmb3JtYXR0ZWRfcmVwb3J0X2RlZm47CnVzZSBcTElTRTsKdXNlIExJU0VcYWxpYXNfZ2VuZXJhdG9yOwp1c2UgXExJU0VcYXBpOwoKCmNsYXNzIGxpc2VfaW50ZXJmYWNlIAp7CgogICAgY29uc3QgREFUQV9UWVBFUyA9IFsgICAgLy8gdXNlZCB0byBzdGFuZGFyZGlzZSBkYXRhIHRoYXQgaXMgb3V0cHV0IC0gbWF5YmUgbW92ZSB0byBJbXBvcnRFeHBvcnRCYXNlCiAgICAgICAgJ3N0cmluZycsICAgICAgICAgICAKICAgICAgICAnYm9vbGVhbicsCiAgICAgICAgJ2ludGVnZXInLAogICAgICAgICdkYXRldGltZScsCiAgICAgICAgJ2NvbW1hX3NlcGFyYXRlZCcsCiAgICAgICAgJ3N0cmluZ19ub19zcGFjZXMnLAogICAgICAgICdhcnJheScsCiAgICAgICAgJ2NhdGVnb3JpZXMnLCAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciBjYXRlZ29yaWVzIC0gYXJyYXkgb2YgY2F0ZWdvcnkgaWRzLCBvciAiLTEiIGZvciBub25lCiAgICAgICAgJ2NhdGVnb3JpZXNfbXVsdGknLCAgICAgLy8gY2F0ZWdvcmllcyAtIGNhbiBoYXZlIG11bHRpcGxlIGNhdGVnb3JpZXMKICAgICAgICAndXJsJywKICAgICAgICAnb3duZXInLCAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIG93bmVyIC0gaWQgKGludGVnZXIpCiAgICBdOwogICAgY29uc3QgREVGQVVMVF9JVEVNX0ZJRUxEUyA9IFsgICAvLyBmaWVsZF9hbGlhcyA9PiBkYXRhX3R5cGUKICAgICAgICAnYWxpYXMnID0+ICdzdHJpbmdfbm9fc3BhY2VzJywKICAgICAgICAndGl0bGUnID0+ICdzdHJpbmcnLAogICAgICAgICd1cmwnID0+ICd1cmwnLAogICAgICAgICdhY3RpdmUnID0+ICdpbnRlZ2VyJywKICAgICAgICAnY3JlYXRlX3RpbWUnID0+ICdkYXRldGltZScsCiAgICAgICAgJ3N0YXJ0X3RpbWUnID0+ICdkYXRldGltZScsCiAgICAgICAgJ2VuZF90aW1lJyA9PiAnZGF0ZXRpbWUnLAogICAgICAgICdvd25lcicgPT4gJ293bmVyJywKICAgIF07CiAgICBjb25zdCBMSVNFX0ZEX1RZUEVTID0gWyAgICAgLy8gZm9yIGN1c3RvbSBmaWVsZHMgLSBmZF90eXBlID0+IERBVEFfVFlQRSAoc2VlIGFib3ZlKQogICAgICAgICdkZWZhdWx0JyA9PiAnc3RyaW5nJywgICAvLyB1c2UgdGhpcyBhcyAKICAgICAgICAnVGV4dEFyZWEnID0+ICdzdHJpbmcnLAogICAgICAgICdUYWdzJyA9PiAnY29tbWFfc2VwYXJhdGVkJywKICAgICAgICAnQ2F0ZWdvcmllcycgPT4gJ2NhdGVnb3JpZXMnLAogICAgICAgICdDYXRlZ29yaWVzX211bHRpJyA9PiAnY2F0ZWdvcmllc19tdWx0aScsCiAgICBdOwoJY29uc3QgTElTRV9NVUxUSV9UWVBFUyA9IFsKICAgICAgICAnQ2hlY2tib3hHcm91cCcsCiAgICAgICAgJ011bHRpU2VsZWN0JywKICAgICAgICAnSlF1ZXJ5TXVsdGlTZWxlY3QnCiAgICBdOwoJCQogICAgcHVibGljICRsaXNlX21vZCA9IG51bGw7CiAgICBwdWJsaWMgJGxpc2VfaW5zdGFuY2UgPSBudWxsOwogICAgcHVibGljICRpbnN0YW5jZV9uYW1lID0gJyc7ICAgLy8gdGhlIG5hbWUgb2YgdGhlIExJU0UgaW5zdGFuY2UKICAgIHB1YmxpYyAkcmVjb3JkX2NvdW50ID0gbnVsbDsgIC8vIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBMSVNFIGluc3RhbmNlCiAgICBwdWJsaWMgJG1lc3NhZ2VNYW5hZ2VyID0gbnVsbDsKICAgIHB1YmxpYyAkc291cmNlX2Jhc2VfdXJscyA9IFtdOyAgICAgICAvLyBiYXNlIHVybHMgZm9yIHRoZSBMSVNFIGluc3RhbmNlCiAgICBwdWJsaWMgJHZhbGlkX2RhdGVfbWluID0gbnVsbDsgIAogICAgcHVibGljICR2YWxpZF9kYXRlX21heCA9IG51bGw7CiAgICBwdWJsaWMgJGNhdGVnb3J5X2xpc3QgPSBbXTsgIC8vIGxpc3Qgb2YgY2F0ZWdvcmllcyA9PiBpZHMgZm9yIHRoZSBMSVNFIGluc3RhbmNlCiAgICBwdWJsaWMgJG5ld19jYXRlZ29yaWVzX2FkZGVkID0gW107ICAvLyBsaXN0IG9mIG5ldyBjYXRlZ29yaWVzIGFkZGVkCiAgICBwdWJsaWMgJGRlZmF1bHRfb3duZXJfaWQgPSBudWxsOyAgLy8gZGVmYXVsdCBvd25lciBpZCBmb3IgTElTRSBpdGVtcwogICAgcHVibGljICRtdWx0aV9jYXRlZ29yaWVzX3RydW5jYXRlZCA9IDA7ICAvLyBjb3VudCBvZiBpdGVtcyB3aXRoIG11bHRpcGxlIGNhdGVnb3JpZXMgdHJ1bmNhdGVkCiAgICBwdWJsaWMgJGltcG9ydF9jb3VudCA9IDA7ICAvLyBjb3VudCBvZiBpdGVtcyBpbXBvcnRlZAogICAgcHVibGljICRhdHRhY2htZW50X2NvdW50ID0gMDsgIC8vIGNvdW50IG9mIGF0dGFjaG1lbnRzIGltcG9ydGVkCiAgICBwdWJsaWMgJGN1cnJlbnRfaXRlbSA9IDA7ICAvLyBjdXJyZW50IGl0ZW0gYmVpbmcgcHJvY2Vzc2VkCiAgICBwdWJsaWMgJGF0X2VuZCA9IGZhbHNlOyAgLy8gZmxhZyBmb3IgZW5kIG9mIHByb2Nlc3NpbmcKCgoKICAgIC8qKgogICAgICogICBAcGFyYW0gc3RyaW5nICRpbnN0YW5jZV9uYW1lIG9wdGlvbmFsIC0gdGhlIG5hbWUgb2YgdGhlIExJU0UgaW5zdGFuY2UgIAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGluc3RhbmNlX25hbWU9bnVsbCkgCiAgICB7CQogICAgICAgICR0aGlzLT5saXNlX21vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0xJU0UnKTsKICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXIgPSBNZXNzYWdlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKTsKICAgICAgICAkdGhpcy0+dmFsaWRfZGF0ZV9taW4gPSBzdHJ0b3RpbWUoJzIwMDAtMDEtMDEnKTsKICAgICAgICAkdGhpcy0+dmFsaWRfZGF0ZV9tYXggPSBzdHJ0b3RpbWUoJysxIHllYXInKTsKCiAgICAgICAgaWYgKCFlbXB0eSgkaW5zdGFuY2VfbmFtZSkpIHsgICAvLyBvcHRpb25hbCAtIGlmIGluc3RhbmNlIG5vdCB5ZXQgc2VsZWN0ZWQKICAgICAgICAgICAgJHRoaXMtPmluc3RhbmNlX25hbWUgPSAkaW5zdGFuY2VfbmFtZTsKICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UgPSAkdGhpcy0+bGlzZV9tb2QtPkdldE1vZHVsZUluc3RhbmNlKCRpbnN0YW5jZV9uYW1lKTsKCiAgICAgICAgICAgICRwYXJhbXMgPSBbXTsKICAgICAgICAgICAgJGxpc2VfaXRlbXMgPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+R2V0SXRlbVF1ZXJ5KCRwYXJhbXMpOwogICAgICAgICAgICAkcmVzdWx0ICAgICA9ICRsaXNlX2l0ZW1zLT5FeGVjdXRlKHRydWUpOwogICAgICAgICAgICAkdGhpcy0+cmVjb3JkX2NvdW50ID0gJHJlc3VsdC0+UmVjb3JkQ291bnQoKTsKICAgICAgICAgICAgJHRoaXMtPmdldF9jYXRlZ29yeV9saXN0KCk7CgogICAgICAgICAgICAvLyAkdGhpcy0+ZGVsZXRlX2FsbF9jYXRlZ29yaWVzKCk7ICAvLyBvbmx5IGZvciB0ZXN0aW5nCiAgICAgICAgfQoKICAgIH0KCgoKICAgIC8qKgogICAgICogIGdldCBhIGxpc3Qgb2YgTElTRSBpbnN0YW5jZXMgc3VpdGFibGUgZm9yIGEgc2VsZWN0IGZpZWxkCiAgICAgICAgKiAgQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc2VfaW5zdGFuY2VfbGlzdCgpCiAgICB7CiAgICAgICAgJGltcF9leHBfbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnSW1wb3J0RXhwb3J0Jyk7CiAgICAgICAgJGluc3RhbmNlcyA9IFtdOwogICAgICAgICRpbnN0YW5jZV9uYW1lcyA9IFsnJyA9PiAkaW1wX2V4cF9tb2QtPkxhbmcoJ2xhYmVsX3dwX3htbF90b19MSVNFX2xpc2VfaW5zdGFuY2UnKV07CiAgICAgICAgaWYgKCR0aGlzLT5saXNlX21vZCkgewogICAgICAgICAgICAkaW5zdGFuY2VzID0gJHRoaXMtPmxpc2VfbW9kLT5MaXN0TW9kdWxlcygpOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoICgkaW5zdGFuY2VzIGFzICRpbnN0YW5jZSkgewogICAgICAgICAgICAkaW5zdGFuY2VfbmFtZXNbJGluc3RhbmNlLT5tb2R1bGVfbmFtZV0gPSAkaW5zdGFuY2UtPm1vZHVsZV9uYW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGluc3RhbmNlX25hbWVzOwogICAgfQoKCiAgICAvKioKICAgICAqICBnZW5lcmF0ZXMgYSBmaWVsZCBtYXAgZnJvbSB0aGUgTElTRSBpbnN0YW5jZSBmaWVsZHMsIGV4Y2x1ZGluZyB0aGUgaWdub3JlIGZpZWxkcwogICAgICAgICogIEByZXR1cm4gYXJyYXkgb2YgZmllbGRfbWFwX2l0ZW0ncywgaW5kZXhlZCBieSBkZXN0aW5hdGlvbiBmaWVsZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfZmllbGRfbWFwKCkKICAgIHsKICAgICAgICAkZmllbGRfbWFwID0gW107ICAgIC8vIGFycmF5IG9mIGRlc3RpbmF0aW9uIGZpZWxkID0+IGZpZWxkX21hcF9pdGVtJ3MKICAgICAgICAvLyBhZGQgdGhlIGRlZmF1bHQgZmllbGRzCiAgICAgICAgZm9yZWFjaCAoc2VsZjo6REVGQVVMVF9JVEVNX0ZJRUxEUyBhcyAkZmllbGRfYWxpYXMgPT4gJGRhdGFfdHlwZSkgewogICAgICAgICAgICAkZmllbGRfbWFwWyRmaWVsZF9hbGlhc10gPSBuZXcgZmllbGRfbWFwX2l0ZW0oJGZpZWxkX2FsaWFzLCAnJywgJGRhdGFfdHlwZSk7CiAgICAgICAgfQogICAgICAgIC8vIGFkZCB0aGUgY3VzdG9tIGZpZWxkcwogICAgICAgICRmaWVsZGRlZnMgPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+R2V0RmllbGREZWZzKCk7CiAgICAgICAgZm9yZWFjaCgkZmllbGRkZWZzIGFzICRmaWVsZGRlZikgewogICAgICAgICAgICAkZGVzdF9mZF90eXBlID0gJGZpZWxkZGVmLT50eXBlID8/ICdzdHJpbmcnOwogICAgICAgICAgICAkZGVzdF9kYXRhX3R5cGUgPSBpc3NldChzZWxmOjpMSVNFX0ZEX1RZUEVTWyRmaWVsZGRlZi0+dHlwZV0pID8gc2VsZjo6TElTRV9GRF9UWVBFU1skZmllbGRkZWYtPnR5cGVdIDogJ3N0cmluZyc7CiAgICAgICAgICAgIGlmICgkZGVzdF9kYXRhX3R5cGU9PSdjYXRlZ29yaWVzJykgewogICAgICAgICAgICAgICAgJHR5cGUgPSAkZmllbGRkZWYtPkdldE9wdGlvblZhbHVlKCdzdWJ0eXBlJywgJ0Ryb3Bkb3duJyk7CiAgICAgICAgICAgICAgICBpZiAoIGluX2FycmF5KCR0eXBlLCBzZWxmOjpMSVNFX01VTFRJX1RZUEVTKSApIHsKICAgICAgICAgICAgICAgICAgICAkZGVzdF9kYXRhX3R5cGUgPSAnY2F0ZWdvcmllc19tdWx0aSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZpZWxkX21hcFskZmllbGRkZWYtPmFsaWFzXSA9IG5ldyBmaWVsZF9tYXBfaXRlbSgkZmllbGRkZWYtPmFsaWFzLCAnJywgJGRlc3RfZGF0YV90eXBlLCAkZGVzdF9mZF90eXBlLCAkZmllbGRkZWYtPnJlcXVpcmVkKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkZmllbGRfbWFwOwogICAgfQoKCiAgICAvKioKICAgICAqICBpbXBvcnQgdGhlIGdpdmVuIGl0ZW1zIGludG8gdGhlIExJU0UgaW5zdGFuY2UKICAgICAqICBAcGFyYW0gYXJyYXkgJGl0ZW1zIC0gdGhlIGl0ZW1zIHRvIGltcG9ydAogICAgICogIEBwYXJhbSBhcnJheSAkZmllbGRfbWFwIC0gdGhlIGZpZWxkIG1hcCBmb3IgdGhlIGl0ZW1zCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkc291cmNlX2Jhc2VfdXJscyAtIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGJhc2UgdXJscyBmb3IgdGhlIExJU0UgaW5zdGFuY2UKICAgICAqICBAcmV0dXJuIGludGVnZXIgLSB0aGUgbnVtYmVyIG9mIGl0ZW1zIGltcG9ydGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpbXBvcnRfaXRlbXMoJGl0ZW1zLCAkZmllbGRfbWFwLCAkc291cmNlX2Jhc2VfdXJscykKICAgIHsKICAgICAgICAkaW1wb3J0X2NvdW50ID0gMDsKICAgICAgICAkYXV0b19hY3RpdmUgPSBlbXB0eSgkZmllbGRfbWFwWydhY3RpdmUnXS0+c291cmNlX2ZpZWxkKTsgLy8gaWYgbm8gJ2FjdGl2ZScgZmllbGQsIGRlZmF1bHQgdG8gYWN0aXZlCiAgICAgICAgJHRoaXMtPnNvdXJjZV9iYXNlX3VybHMgPSBlbXB0eSgkc291cmNlX2Jhc2VfdXJscykgPyBbXSA6IGV4cGxvZGUoJywnLCAkc291cmNlX2Jhc2VfdXJscyk7CiAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7CiAgICAgICAgICAgICRsaXNlX2l0ZW0gPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+SW5pdGlhdGVJdGVtKCk7CgogICAgICAgICAgICBmb3JlYWNoICgkZmllbGRfbWFwIGFzICRtYXBwZWRfZmllbGQpIHsgICAgCiAgICAgICAgICAgICAgICBpZiAoJG1hcHBlZF9maWVsZC0+ZGVzdF9maWVsZCE9J2NyZWF0ZV90aW1lJyAvLyB3ZSBoYXZlIHRvIHNldCBpdCBtYW51YWxseSBsYXRlcgogICAgICAgICAgICAgICAgICAgICAgICAmJiAkbWFwcGVkX2ZpZWxkLT5zb3VyY2VfZmllbGQhPSd3cF9hdHRhY2htZW50cycgICAvLyBzcGVjaWFsIGNhc2UgaGFuZGxlZCBzZXBhcmF0ZWx5CiAgICAgICAgICAgICAgICAgICAgICAgICYmICFlbXB0eSgkbWFwcGVkX2ZpZWxkLT5zb3VyY2VfZmllbGQpKSB7ICAKICAgICAgICAgICAgICAgICAgICAkbGlzZV9pdGVtLT57JG1hcHBlZF9maWVsZC0+ZGVzdF9maWVsZH0gPSAkdGhpcy0+ZmlsdGVyX2RhdGEoJG1hcHBlZF9maWVsZC0+ZGVzdF9kYXRhX3R5cGUsICRpdGVtWyRtYXBwZWRfZmllbGQtPnNvdXJjZV9maWVsZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkYXV0b19hY3RpdmUpICRsaXNlX2l0ZW0tPmFjdGl2ZSA9ICcxJzsKCiAgICAgICAgICAgIC8vIHNldCAna2V5MycgaWYgc291cmNlX2lkIGlzIHNldCAtIGZvciBsYXRlciBjcm9zcy1yZWZlcmVuY2luZwogICAgICAgICAgICBpZiAoIWVtcHR5KCRpdGVtWydzb3VyY2VfaWQnXSkpICRsaXNlX2l0ZW0tPmtleTMgPSAkaXRlbVsnc291cmNlX2lkJ107CgogICAgICAgICAgICAvLyBpZiBubyBhbGlhcyBzZXQsIGdlbmVyYXRlIG9uZSBmcm9tIG9sZCB3cCBpZAogICAgICAgICAgICBpZiAoZW1wdHkoJGxpc2VfaXRlbS0+YWxpYXMpKSB7CiAgICAgICAgICAgICAgICAvLyBpZiB0aXRsZSBzdGFydHMgd2l0aCBhIG51bWJlciwgYWRkIGFuICdhXycKICAgICAgICAgICAgICAgICRhbGlhcyA9IHByZWdfcmVwbGFjZSgnL14oXGQpLycsICdhXyQxJywgJGxpc2VfaXRlbS0+dGl0bGUpOwogICAgICAgICAgICAgICAgJGxpc2VfaXRlbS0+YWxpYXMgPSBhcGk6OkdlbmVyYXRlQWxpYXMoJGFsaWFzLCAkdGhpcy0+aW5zdGFuY2VfbmFtZSApOwogICAgICAgICAgICB9CgoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICR0aGlzLT5saXNlX2luc3RhbmNlLT5TYXZlSXRlbSgkbGlzZV9pdGVtKTsKICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGNyZWF0ZV90aW1lIGlzIG1hcHBlZCAmIHNldCBpdCBtYW51YWxseQogICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkZmllbGRfbWFwWydjcmVhdGVfdGltZSddLT5zb3VyY2VfZmllbGQpICYmICFlbXB0eSgkaXRlbVskZmllbGRfbWFwWydjcmVhdGVfdGltZSddLT5zb3VyY2VfZmllbGRdKSkgewogICAgICAgICAgICAgICAgICAgICRjcmVhdGVfdGltZSA9ICRpdGVtWyRmaWVsZF9tYXBbJ2NyZWF0ZV90aW1lJ10tPnNvdXJjZV9maWVsZF07CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNldF9jcmVhdGVfdGltZSgkbGlzZV9pdGVtLCAkY3JlYXRlX3RpbWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGltcG9ydF9jb3VudCsrOyAgLy8gaWYgbm8gZXJyb3IgZ2VuZXJhdGVkCgogICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCAkZS0+Z2V0TWVzc2FnZSgpICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICR0aGlzLT5pbXBvcnRfY291bnQgKz0gJGltcG9ydF9jb3VudDsKICAgICAgICAkdGhpcy0+cmVjb3JkX2NvdW50ICs9ICRpbXBvcnRfY291bnQ7CiAgICAgICAgaWYgKCR0aGlzLT5tdWx0aV9jYXRlZ29yaWVzX3RydW5jYXRlZCkgewogICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZExhbmdFcnJvciggJ2Vycm9yX211bHRpcGxlX2NhdGVnb3JpZXMnLCAoc3RyaW5nKSR0aGlzLT5tdWx0aV9jYXRlZ29yaWVzX3RydW5jYXRlZCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGltcG9ydF9jb3VudDsKICAgIH0KCgoKICAgIC8qKgogICAgICogIGRlbGV0ZSBhbGwgaXRlbXMgZnJvbSB0aGUgTElTRSBpbnN0YW5jZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2FsbF9pdGVtcygpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV8nLnN0cnRvbG93ZXIoJHRoaXMtPmluc3RhbmNlX25hbWUpLidfaXRlbSc7CiAgICAgICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICRyZWNvcmRfY291bnQgPSAkcmVzdWx0LT5SZWNvcmRDb3VudCgpOwogICAgICAgIHdoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIAogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPmxpc2VfaW5zdGFuY2UtPkRlbGV0ZUl0ZW1CeUlkKCRyb3dbJ2l0ZW1faWQnXSk7CiAgICAgICAgfSAgCiAgICAgICAgJGltcF9leHBfbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnSW1wb3J0RXhwb3J0Jyk7CiAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRMYW5nTWVzc2FnZSggJ21lc3NhZ2VfbGlzZV9kZWxldGVkX2FsbF9pdGVtcycsCiAgICAgICAgICAgICRyZWNvcmRfY291bnQsICR0aGlzLT5pbnN0YW5jZV9uYW1lICk7CiAgICAgICAgJHRoaXMtPnJlY29yZF9jb3VudCA9IDA7CiAgICB9CgoKICAgIC8qKgogICAgICogIGZpbHRlciB0aGUgZGF0YSB0byB0aGUgY29ycmVjdCB0eXBlCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkZGF0YV90eXBlIC0gb25lIG9mIHRoZSBEQVRBX1RZUEVTCiAgICAgKiAgQHBhcmFtIG1peGVkICRkYXRhIC0gdGhlIGRhdGEgdG8gZmlsdGVyCiAgICAgKiAgQHJldHVybiBtaXhlZCAtIHRoZSBmaWx0ZXJlZCBkYXRhCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBmaWx0ZXJfZGF0YSgkZGF0YV90eXBlLCAkZGF0YSkKICAgIHsKICAgICAgICBpZiAoZW1wdHkoJGRhdGEpKSAkZGF0YSA9ICcnOyAgICAvLyBkZWZhdWx0IHRvIHN0cmluZwogICAgICAgIAogICAgICAgICRmaWx0ZXJlZF9kYXRhID0gJyc7ICAgIC8vIGRlZmF1bHQgdG8gc3RyaW5nCiAgICAgICAgc3dpdGNoICgkZGF0YV90eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOgogICAgICAgICAgICAgICAgJGZpbHRlcmVkX2RhdGEgPSAoYm9vbCkkZGF0YTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9IChpbnQpJGRhdGE7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzoKICAgICAgICAgICAgICAgICRmaWx0ZXJlZF9kYXRhID0gbnVsbDsKICAgICAgICAgICAgICAgICR0bXBfZGF0YSA9IGlzX251bWVyaWMoJGRhdGEpID8gJGRhdGEgOiBzdHJ0b3RpbWUoJGRhdGEpOwogICAgICAgICAgICAgICAgaWYgKCR0bXBfZGF0YT49JHRoaXMtPnZhbGlkX2RhdGVfbWluICYmICR0bXBfZGF0YTw9JHRoaXMtPnZhbGlkX2RhdGVfbWF4KSB7CiAgICAgICAgICAgICAgICAgICAgJGZpbHRlcmVkX2RhdGEgPSBkYXRlKCdZLW0tZCBIOmk6cycsICR0bXBfZGF0YSk7ICAvLyBMSVNFIG5lZWRzIGZvcm1hdHRlZCBkYXRlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2NvbW1hX3NlcGFyYXRlZCc6CiAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9IGlzX2FycmF5KCRkYXRhKSA/IGltcGxvZGUoJywnLCAkZGF0YSkgOiAgKHN0cmluZykkZGF0YTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnc3RyaW5nX25vX3NwYWNlcyc6CiAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9IHN0cl9yZXBsYWNlKCcgJywgJycsIChzdHJpbmcpJGRhdGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdhcnJheSc6CiAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9IGlzX2FycmF5KCRkYXRhKSA/ICRkYXRhIDogZXhwbG9kZSgnLCcsICRkYXRhKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6CiAgICAgICAgICAgIGNhc2UgJ2NhdGVnb3JpZXNfbXVsdGknOgogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCRkYXRhKSkgewogICAgICAgICAgICAgICAgICAgICRmaWx0ZXJlZF9kYXRhID0gLTE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9IAoKICAgICAgICAgICAgICAgICRjYXRfYXJyYXkgPSBpc19hcnJheSgkZGF0YSkgPyAkZGF0YSA6IGltcGxvZGUoJywnLCAkZGF0YSk7CiAgICAgICAgICAgICAgICAkY2F0X2lkcyA9IFtdOwogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5jYXRlZ29yeV9saXN0KSkgJHRoaXMtPmdldF9jYXRlZ29yeV9saXN0KCk7IC8vIGp1c3QgbWFrZSBzdXJlIGl0J3MgYmVlbiBsb2FkZWQhCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkY2F0X2FycmF5IGFzICRjYXRfYWxpYXMgPT4gJGNhdF9uYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+Y2F0ZWdvcnlfbGlzdFskY2F0X2FsaWFzXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmFkZF9jYXRlZ29yeSgkY2F0X2FsaWFzLCAkY2F0X25hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkY2F0X2lkc1tdID0gJHRoaXMtPmNhdGVnb3J5X2xpc3RbJGNhdF9hbGlhc107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmICgkZGF0YV90eXBlPT0nY2F0ZWdvcmllcycpIHsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9ICRjYXRfaWRzWzBdOyAgIC8vIGp1c3QgZ2V0IGZpcnN0ICRjYXRfaWQgICAgCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50KCRjYXRfaWRzKT4xKSAkdGhpcy0+bXVsdGlfY2F0ZWdvcmllc190cnVuY2F0ZWQrKzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGZpbHRlcmVkX2RhdGEgPSBpbXBsb2RlKCcsJywgJGNhdF9pZHMpOyAgICAvLyBhbGwgY29tbWEgc2VwYXJhdGVkCiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnb3duZXInOgogICAgICAgICAgICAgICAgLy8gcmVwbGFjZSAnICcgb3IgJy0nIHdpdGggJ18nIC0gdG8gYmUgdmFsaWQgQ01TTVMgdXNlcm5hbWUKICAgICAgICAgICAgICAgICRkYXRhID0gcHJlZ19yZXBsYWNlKCcvW1xzLV0vJywgJ18nLCAkZGF0YSk7CiAgICAgICAgICAgICAgICAkaW1wX2V4cF9tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdJbXBvcnRFeHBvcnQnKTsKICAgICAgICAgICAgICAgICR1c2VyX2xpc3RfYnlfdXNlcm5hbWUgPSBhcnJheV9mbGlwKCAkaW1wX2V4cF9tb2QtPmdldF91c2VycygpICk7CiAgICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZGF0YSwgJHVzZXJfbGlzdF9ieV91c2VybmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9ICR1c2VyX2xpc3RfYnlfdXNlcm5hbWVbJGRhdGFdOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9ICR0aGlzLT5kZWZhdWx0X293bmVyX2lkOyAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAndXJsJzoKICAgICAgICAgICAgICAgICRmaWx0ZXJlZF9kYXRhID0gKHN0cmluZykkZGF0YTsgCiAgICAgICAgICAgICAgICAvLyBzdHJpcCByb290X3VybCBiZWdpbm5pbmcgb2YgJ3VybCcgZmllbGQgLSBpZiBwcmVzZW50CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+c291cmNlX2Jhc2VfdXJscyBhcyAkYmFzZV91cmwpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc3RycG9zKCRkYXRhLCAkYmFzZV91cmwpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWx0ZXJlZF9kYXRhID0gdHJpbSggc3RyX3JlcGxhY2UoJGJhc2VfdXJsLCAnJywgJGZpbHRlcmVkX2RhdGEpLCAnLycpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAkZmlsdGVyZWRfZGF0YSA9IGlzX2FycmF5KCRkYXRhKSA/IGltcGxvZGUoJywnLCAkZGF0YSkgOiAoc3RyaW5nKSRkYXRhOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRmaWx0ZXJlZF9kYXRhOwogICAgfQoKCgogICAgLyoqCiAgICAgKiAgZ2V0IHRoZSBsaXN0IG9mIGNhdGVnb3JpZXMgZm9yIHRoZSBMSVNFIGluc3RhbmNlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfbGlzdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPmNhdGVnb3J5X2xpc3QgPSBbXTsKICAgICAgICAkcGFyYW1zID0gW107CiAgICAgICAgJGxpc2VfY2F0cyA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5HZXRDYXRlZ29yeVF1ZXJ5KCRwYXJhbXMpOwogICAgICAgICRyZXN1bHQgPSAkbGlzZV9jYXRzLT5FeGVjdXRlKHRydWUpOwogICAgICAgIHdoaWxlICgkcmVzdWx0ICYmICRyb3cgPSAkcmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAgICAgICR0aGlzLT5jYXRlZ29yeV9saXN0WyRyb3dbJ2NhdGVnb3J5X2FsaWFzJ11dID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKICAgICAgICB9CiAgICB9CgoKICAgIC8qKgogICAgICogIGFkZCBhIGNhdGVnb3J5IHRvIHRoZSBMSVNFIGluc3RhbmNlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfY2F0ZWdvcnkoJGNhdGVnb3J5X2FsaWFzLCAkY2F0ZWdvcnlfbmFtZT1udWxsKQogICAgewogICAgICAgICRjYXRlZ29yeSA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5Jbml0aWF0ZUNhdGVnb3J5KCk7CgkJJGNhdGVnb3J5LT5hbGlhcwkJPSAkY2F0ZWdvcnlfYWxpYXM7CiAgICAgICAgJGNhdGVnb3J5LT5uYW1lICAgICAgICAJPSAhZW1wdHkoJGNhdGVnb3J5X25hbWUpID8gJGNhdGVnb3J5X25hbWUgOiAkY2F0ZWdvcnlfYWxpYXM7CgkJLy8gJGNhdGVnb3J5LT5kZXNjcmlwdGlvbgk9ICRkZXNjcmlwdGlvbjsgLy8gbm90IHVzZWQKCQkkY2F0ZWdvcnktPnBhcmVudF9pZCAJPSAnLTEnOwkJCgkJJGNhdGVnb3J5LT5hY3RpdmUgICAgICAgPSAnMSc7CgkJCgkJJHRoaXMtPmxpc2VfaW5zdGFuY2UtPlNhdmVDYXRlZ29yeSgkY2F0ZWdvcnkpOwogICAgICAgICR0aGlzLT5uZXdfY2F0ZWdvcmllc19hZGRlZFtdID0gJGNhdGVnb3J5X2FsaWFzOwogICAgfQoKCiAgICAvKioKICAgICAqICBkZWxldGUgYWxsIGNhdGVnb3JpZXMgZnJvbSB0aGUgTElTRSBpbnN0YW5jZSAtIG9ubHkgaW50ZW5kZWQgZm9yIHRlc3RpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9hbGxfY2F0ZWdvcmllcygpCiAgICB7CiAgICAgICAgJGxpc2VfY2F0cyA9ICR0aGlzLT5saXNlX2luc3RhbmNlLT5HZXRDYXRlZ29yeVF1ZXJ5KFtdKTsKICAgICAgICAkcmVzdWx0ID0gJGxpc2VfY2F0cy0+RXhlY3V0ZSh0cnVlKTsKICAgICAgICB3aGlsZSAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgICAgICAgICAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+RGVsZXRlQ2F0ZWdvcnlCeUlkKCRyb3dbJ2NhdGVnb3J5X2lkJ10pOwogICAgICAgIH0KICAgICAgICAkaW1wX2V4cF9tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdJbXBvcnRFeHBvcnQnKTsKICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZE1lc3NhZ2UoICdEZWxldGVkIGFsbCBjYXRlZ29yaWVzIGZyb20gTElTRSBpbnN0YW5jZSAnICk7CiAgICAgICAgJHRoaXMtPmNhdGVnb3J5X2xpc3QgPSBbXTsKICAgIH0KCgogICAgLyoqCiAgICAqICBzZXQgbGlzZSBpdGVtcyBjcmVhdGVfdGltZSAtIExJU0Ugc2V0cyBpdCB0byBOT1coKSBvbiBjcmVhdGUsIGFuZCBOT1Qgb24gdXBkYXRlCiAgICAqICBzbyB3ZSBoYXZlIHRvIHNldCBpdCBkaXJlY3RseQogICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfY3JlYXRlX3RpbWUoJGxpc2VfaXRlbSwgJGNyZWF0ZV90aW1lKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgLy8gcmVmb3JtYXQgdGhlIGRhdGUKICAgICAgICAkY3JlYXRlX3RpbWUgPSBkYXRlKCdZLW0tZCBIOmk6cycsIHN0cnRvdGltZSgkY3JlYXRlX3RpbWUpKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlXycuc3RydG9sb3dlcigkdGhpcy0+aW5zdGFuY2VfbmFtZSkuJ19pdGVtICcuCgkJCQkgICdTRVQgY3JlYXRlX3RpbWUgPSA/IFdIRVJFIGl0ZW1faWQgPSA/JzsKICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgWyRjcmVhdGVfdGltZSwgJGxpc2VfaXRlbS0+aXRlbV9pZF0pOwogICAgfQoKCiAgICAvKioKICAgICAqICBpbXBvcnQgdGhlIGdpdmVuIGF0dGFjaG1lbnRzIGludG8gdGhlIExJU0UgaW5zdGFuY2UKICAgICAqICBAcGFyYW0gYXJyYXkgJGF0dGFjaG1lbnRzIC0gdGhlIGF0dGFjaG1lbnRzIHRvIGltcG9ydAogICAgICogIEBwYXJhbSBhcnJheSAkZmllbGRfbWFwIC0gdGhlIGZpZWxkIG1hcCBmb3IgdGhlIGF0dGFjaG1lbnRzCiAgICAgKiAgQHBhcmFtIHN0cmluZyAkc291cmNlX2Jhc2VfdXJscyAtIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGJhc2UgdXJscyBmb3IgdGhlIExJU0UgaW5zdGFuY2UKICAgICAqICBAcGFyYW0gc3RyaW5nICRhdHRhY2htZW50c19maWVsZCAtIHRoZSBmaWVsZCBpbiB0aGUgTElTRSBpbnN0YW5jZSB0byBzdG9yZSB0aGUgYXR0YWNobWVudHMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGltcG9ydF9hdHRhY2htZW50cygkYXR0YWNobWVudHMsICRmaWVsZF9tYXAsICRzb3VyY2VfYmFzZV91cmxzLCAkYXR0YWNobWVudHNfZmllbGQpCiAgICB7CiAgICAgICAgJHRoaXMtPnNvdXJjZV9iYXNlX3VybHMgPSBlbXB0eSgkc291cmNlX2Jhc2VfdXJscykgPyBbXSA6IGV4cGxvZGUoJywnLCAkc291cmNlX2Jhc2VfdXJscyk7CiAgICAgICAgZm9yZWFjaCAoJGF0dGFjaG1lbnRzIGFzICRhdHRhY2htZW50KSB7CiAgICAgICAgICAgICRwYXJlbnRfaWQgPSAkYXR0YWNobWVudFsnd3BfcG9zdF9wYXJlbnQnXTsKCiAgICAgICAgICAgICRsaXNlX2l0ZW0gPSAkdGhpcy0+bGlzZV9pbnN0YW5jZS0+TG9hZEl0ZW1CeUlkZW50aWZpZXIoJ2tleTMnLCRwYXJlbnRfaWQpOwogICAgICAgICAgICBpZiAoISRsaXNlX2l0ZW0pIHsKICAgICAgICAgICAgICAgICR0aGlzLT5tZXNzYWdlTWFuYWdlci0+YWRkRXJyb3IoICdFcnJvciAtIHBhcmVudCBpdGVtIG5vdCBmb3VuZCBmb3IgYXR0YWNobWVudCcgKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgJGF0dGFjaG1lbnRfdmFsdWUgPSAoc3RyaW5nKSRsaXNlX2l0ZW0tPnskYXR0YWNobWVudHNfZmllbGR9OwogICAgICAgICAgICAgICAgJGF0dGFjaG1lbnRzID0gZW1wdHkoJGF0dGFjaG1lbnRfdmFsdWUpID8gW10gOiBleHBsb2RlKCcsJywgJGF0dGFjaG1lbnRfdmFsdWUpOwogICAgICAgICAgICAgICAgaWYgKCAhZW1wdHkoJGF0dGFjaG1lbnRbJ2xvY2FsX3JlbGF0aXZlX3VybCddKSApIHsKICAgICAgICAgICAgICAgICAgICAkYXR0YWNobWVudHNbXSA9ICRhdHRhY2htZW50Wydsb2NhbF9yZWxhdGl2ZV91cmwnXTsKICAgICAgICAgICAgICAgICAgICAkbGlzZV9pdGVtLT57JGF0dGFjaG1lbnRzX2ZpZWxkfSA9IGltcGxvZGUoJywnLCAkYXR0YWNobWVudHMpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5saXNlX2luc3RhbmNlLT5TYXZlSXRlbSgkbGlzZV9pdGVtKTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YXR0YWNobWVudF9jb3VudCsrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvciggJGUtPmdldE1lc3NhZ2UoKSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqICBnZXQgYSBiYXRjaCBvZiBsaXNlIGl0ZW1zCiAgICAgKiAgQHJldHVybiBhcnJheSBvZiBpdGVtcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2l0ZW1zKCRwb3NpdGlvbiwgJGJhdGNoX3NpemUpCiAgICB7CiAgICAgICAgJHBhcmFtcyA9IFtdOwogICAgICAgICRwYXJhbXNbJ3BhZ2VsaW1pdCddID0gJGJhdGNoX3NpemU7CiAgICAgICAgLy8gJHBhcmFtc1sncGFnZW51bWJlciddID0gJHBvc2l0aW9uICsxOwogICAgICAgICRwYXJhbXNbJ3BhZ2VudW1iZXInXSA9IGludGRpdiggJHBvc2l0aW9uICwgJGJhdGNoX3NpemUpICsxOwogICAgICAgICRsaXNlX2l0ZW1zID0gJHRoaXMtPmxpc2VfaW5zdGFuY2UtPkdldEl0ZW1RdWVyeSgkcGFyYW1zKTsKICAgICAgICAkcmVzdWx0ID0gJGxpc2VfaXRlbXMtPkV4ZWN1dGUodHJ1ZSk7CiAgICAgICAgJGl0ZW1zID0gW107CiAgICAgICAgd2hpbGUgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgJGl0ZW1zW10gPSAkcm93OwogICAgICAgIH0KICAgICAgICBpZiAoICRwb3NpdGlvbiArIGNvdW50KCRpdGVtcykgPj0gJHRoaXMtPnJlY29yZF9jb3VudCkgewogICAgICAgICAgICAkdGhpcy0+YXRfZW5kID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkaXRlbXM7CiAgICB9CgoKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.MessageManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgoKY2xhc3MgTWVzc2FnZU1hbmFnZXIgewogICAgcHJpdmF0ZSBzdGF0aWMgJGluc3RhbmNlID0gbnVsbDsKICAgIHByaXZhdGUgJG1lc3NhZ2VzID0gW107CiAgICBwcml2YXRlICRlcnJvcnMgPSBbXTsKICAgIHByaXZhdGUgJG1vZCA9IG51bGw7CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnSW1wb3J0RXhwb3J0Jyk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5zdGFuY2UoKSB7CiAgICAgICAgaWYgKHNlbGY6OiRpbnN0YW5jZSA9PT0gbnVsbCkgewogICAgICAgICAgICBzZWxmOjokaW5zdGFuY2UgPSBuZXcgTWVzc2FnZU1hbmFnZXIoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OiRpbnN0YW5jZTsKICAgIH0KCgoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRNZXNzYWdlKCRtZXNzYWdlKSB7CiAgICAgICAgJHRoaXMtPm1lc3NhZ2VzW10gPSAkbWVzc2FnZTsKICAgIH0KCiAgICAKICAgIC8qKgogICAgICogYWRkIGEgbWVzc2FnZSB0byB0aGUgbWVzc2FnZSBsaXN0LCB3aXRoIGhlbHAgbG9va3VwIHVzaW5nICRsYW5nX2tleQogICAgICogQHBhcmFtIG1peGVkICRsYW5nX2tleQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkTGFuZ01lc3NhZ2UoKSB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgJG1lc3NhZ2UgPSBjYWxsX3VzZXJfZnVuY19hcnJheShbJHRoaXMtPm1vZCwgJ0xhbmcnXSwgJGFyZ3MpOwogICAgICAgICR0aGlzLT5tZXNzYWdlc1tdID0gJG1lc3NhZ2U7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPm1lc3NhZ2VzOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkRXJyb3IoJGVycm9yKSB7CiAgICAgICAgJHRoaXMtPmVycm9yc1tdID0gJGVycm9yOwogICAgfQoKCiAgICAvKioKICAgICAqIGFkZCBhIG1lc3NhZ2UgdG8gdGhlIG1lc3NhZ2UgbGlzdCwgd2l0aCBoZWxwIGxvb2t1cCB1c2luZyAkbGFuZ19rZXkKICAgICAqIEBwYXJhbSBtaXhlZCAkbGFuZ19rZXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZExhbmdFcnJvcigpIHsKICAgICAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICAkZXJyb3IgPSBjYWxsX3VzZXJfZnVuY19hcnJheShbJHRoaXMtPm1vZCwgJ0xhbmcnXSwgJGFyZ3MpOwogICAgICAgICR0aGlzLT5lcnJvcnNbXSA9ICRlcnJvcjsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGdldEVycm9ycygpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVycm9yczsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.wp_xml_interface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogSW1wb3J0RXhwb3J0CiMgQXV0aG9yOiBDaHJpcyBUYXlsb3IKIyBDb3B5cmlnaHQ6IChDKSAyMDI0IENocmlzIFRheWxvciwgY2hyaXNAYmlubm92YXRpdmUuY28udWsKIyBMaWNlbmNlOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDMKIyAgICAgICAgICBzZWUgL0ltcG9ydEV4cG9ydC9sYW5nL0xJQ0VOQ0UudHh0IG9yIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sPgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5hbWVzcGFjZSBJbXBvcnRFeHBvcnQ7CgoKY2xhc3Mgd3BfeG1sX2ludGVyZmFjZSAKewogICAgY29uc3QgV1BfSVRFTV9EQVRBID0gWyAgLy8gZGVmYXVsdCBmaWVsZHMgZnJvbSBXUCB4bWwgLSBuYW1lID0+IHhtbCB0YWcKICAgICAgICAndGl0bGUnID0+ICd0aXRsZScsCiAgICAgICAgJ2xpbmsnID0+ICdsaW5rJywKICAgICAgICAncHViRGF0ZScgPT4gJ3B1YkRhdGUnLAogICAgICAgICdjcmVhdG9yJyA9PiAnZGM6Y3JlYXRvcicsCiAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgICdjb250ZW50JyA9PiAnY29udGVudDplbmNvZGVkJywKICAgICAgICAnZXhjZXJwdCcgPT4gJ2V4Y2VycHQ6ZW5jb2RlZCcsCiAgICAgICAgJ3dwX3Bvc3RfaWQnID0+ICd3cDpwb3N0X2lkJywKICAgICAgICAnd3BfcG9zdF9kYXRlJyA9PiAnd3A6cG9zdF9kYXRlJywKICAgICAgICAnd3BfcG9zdF9uYW1lJyA9PiAnd3A6cG9zdF9uYW1lJywKICAgICAgICAnd3Bfc3RhdHVzJyA9PiAnd3A6c3RhdHVzJywKICAgICAgICAnd3BfcG9zdF9wYXJlbnQnID0+ICd3cDpwb3N0X3BhcmVudCcsCiAgICAgICAgJ3dwX3Bvc3RfdHlwZScgPT4gJ3dwOnBvc3RfdHlwZScsCiAgICAgICAgJ2NhdGVnb3J5JyA9PiAnY2F0ZWdvcnknLAogICAgICAgICdwb3N0X3RhZycgPT4gJ3Bvc3RfdGFnJywKICAgICAgICAnaXNfc3RpY2t5JyA9PiAnd3A6aXNfc3RpY2t5JywKICAgICAgICAnd3BfYXR0YWNobWVudHMnID0+ICd3cDphdHRhY2htZW50X3VybCcsCiAgICBdOwoKCiAgICBwdWJsaWMgJHdwX3htbCA9IG51bGw7CgogICAgcHVibGljICR3cF90aXRsZSA9ICcnOwogICAgcHVibGljICR3cF9zaXRlX3VybCA9ICcnOwogICAgcHVibGljICR3cF9pdGVtX2NvdW50ID0gMDsgIC8vIGluY2x1ZGVzIHBvc3RzIGFuZCBhdHRhY2htZW50cwogICAgcHVibGljICR3cF9wb3N0X2NvdW50ID0gMDsKICAgIHB1YmxpYyAkd3BfYXR0YWNobWVudF9jb3VudCA9IDA7CiAgICBwdWJsaWMgJHdwX2F1dGhvcl9jb3VudCA9IDA7CiAgICBwdWJsaWMgJGN1cnJlbnRfaXRlbSA9IDA7CiAgICBwdWJsaWMgJGF0X3htbF9lbmQgPSBmYWxzZTsKICAgIHB1YmxpYyAkZmllbGRzID0gW107ICAvLyBhcnJheSBvZiBmaWVsZHMgc291cmNlIGZvciB0aGUgZmllbGRfbWFwCiAgICBwdWJsaWMgJG1lc3NhZ2VNYW5hZ2VyID0gbnVsbDsKCgoKICAgIC8qKgogICAgICogICBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZSAgVGhlIG5hbWUgb2YgdGhlIFdQIHhtbCBmaWxlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZmlsZW5hbWU9JycpIAogICAgewkKICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXIgPSBNZXNzYWdlTWFuYWdlcjo6Z2V0SW5zdGFuY2UoKTsKICAgICAgICBpZiAoZW1wdHkoJGZpbGVuYW1lKSkgewogICAgICAgICAgICAkdGhpcy0+bWVzc2FnZU1hbmFnZXItPmFkZEVycm9yKCAnTm8gZmlsZW5hbWUgcHJvdmlkZWQnICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRmaWxlID0gZmlsZV9nZXRfY29udGVudHMoICRmaWxlbmFtZSApOwogICAgICAgIC8vICR0aGlzLT53cF94bWwgPSBuZXcgXFNpbXBsZVhNTEVsZW1lbnQoICRmaWxlLCBMSUJYTUxfTk9DREFUQSApOwogICAgICAgICR0aGlzLT53cF94bWwgPSBzaW1wbGV4bWxfbG9hZF9maWxlKCRmaWxlbmFtZSwgJ1NpbXBsZVhNTEVsZW1lbnQnLCBMSUJYTUxfTk9DREFUQSk7CiAgICAgICAgCiAgICAgICAgLy8gZ2V0IGJhc2ljIGRldGFpbHMKICAgICAgICAkdGhpcy0+Z2V0X3dwX2RldGFpbHMoKTsKICAgICAgICAkdGhpcy0+Z2V0X3dwX2ZpZWxkcygpOwogICAgfQoKICAgIAogICAgLyoqCiAgICAgKiAgZ2V0IHRoZSBmaWVsZHMgZnJvbSB0aGUgV1AgeG1sIC0gbWF5IG5lZWQgdG8gZXh0ZW5kIHRoaXMKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF93cF9maWVsZHMoKQogICAgewogICAgICAgIC8vIGdldCB0aGUgZGVmYXVsdCBmaWVsZHMgZnJvbSBXUF9JVEVNX0RBVEEKICAgICAgICAkdGhpcy0+ZmllbGRzID0gc2VsZjo6V1BfSVRFTV9EQVRBOwoKICAgIH0KCgogICAgLyoqCiAgICAgKiAgZ2V0IGEgc3BlY2lmaWMgaXRlbSBmcm9tIHRoZSBXUCB4bWwKICAgICAgICAqICBAcGFyYW0gc3RyaW5nICRpdGVtX3R5cGUgICAncG9zdCcgKGRlZmF1bHQpIG9yICdhdHRhY2htZW50JwogICAgICAgICogIEBwYXJhbSBpbnRlZ2VyICRpdGVtX251bWJlciAgWmVyby1iYXNlZCBpbmRleCBvZiB0aGUgaXRlbSB0byByZXR1cm4KICAgICAgICAqICBAcmV0dXJuIGFycmF5IG9mIGl0ZW0gZmllbGRzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXRlbSgkaXRlbV90eXBlPSdwb3N0JywgJGl0ZW1fbnVtYmVyKQogICAgewogICAgICAgICRpdGVtID0gW107IC8vIGZvciBhIG5pY2Ugc2FuaXRpc2VkIGFycmF5IG9mIGZpZWxkcwogICAgICAgIGlmICgkaXRlbV9udW1iZXIgPj0gJHRoaXMtPndwX2l0ZW1fY291bnQpIHsKICAgICAgICAgICAgJHRoaXMtPm1lc3NhZ2VNYW5hZ2VyLT5hZGRFcnJvciggJ0l0ZW0gbnVtYmVyIG91dCBvZiByYW5nZScgKTsKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICAkeG1sX2l0ZW0gPSAkdGhpcy0+d3BfeG1sLT5jaGFubmVsLT5pdGVtWyRpdGVtX251bWJlcl07CgogICAgICAgIC8vIGNoZWNrIGlmIHRoaXMgaXMgdGhlIGNvcnJlY3QgaXRlbSB0eXBlLCBpZiBub3QgcmV0dXJuIGVtcHR5IGFycmF5CiAgICAgICAgJHdwX3Bvc3RfdHlwZSA9ICR4bWxfaXRlbS0+eHBhdGgoJ3dwOnBvc3RfdHlwZScpWzBdOwogICAgICAgIGlmICgkaXRlbV90eXBlIT0kd3BfcG9zdF90eXBlKSByZXR1cm4gW107CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCAoc2VsZjo6V1BfSVRFTV9EQVRBIGFzICRuYW1lID0+ICR4bWxfdGFnKSB7CiAgICAgICAgICAgIC8vIHVzZSB4cGF0aCB0byByZXRyaWV2ZSBhbGwgZGF0YSwgYXMgdGhhdCBhbHNvIGdldHMgQ0RBVEEgZS5nLiAnY29udGVudDplbmNvZGVkJwogICAgICAgICAgICAkbm9kZSA9ICR4bWxfaXRlbS0+eHBhdGgoJHhtbF90YWcpOwogICAgICAgICAgICBzd2l0Y2ggKCRuYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICdjYXRlZ29yeSc6CiAgICAgICAgICAgICAgICAgICAgJGl0ZW1bJ2NhdGVnb3J5J10gPSBbXTsKICAgICAgICAgICAgICAgICAgICAkaXRlbVsncG9zdF90YWcnXSA9IFtdOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRub2RlIGFzICRjYXRfbm9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkYXR0cmlidXRlcyA9ICRjYXRfbm9kZS0+YXR0cmlidXRlcygpOwogICAgICAgICAgICAgICAgICAgICAgICAkZG9tYWluID0gaXNzZXQoJGF0dHJpYnV0ZXNbJ2RvbWFpbiddKSA/IChzdHJpbmcpJGF0dHJpYnV0ZXNbJ2RvbWFpbiddIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgJG5pY2VfbmFtZSA9IGlzc2V0KCRhdHRyaWJ1dGVzWyduaWNlbmFtZSddKSA/IChzdHJpbmcpJGF0dHJpYnV0ZXNbJ25pY2VuYW1lJ10gOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAkbm9kZV92YWx1ZSA9IChzdHJpbmcpJGNhdF9ub2RlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGRvbWFpbikgJiYgaXNzZXQoJG5pY2VfbmFtZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGluX2FycmF5KCRkb21haW4sIFsnY2F0ZWdvcnknLCdwb3N0X3RhZyddKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbVskZG9tYWluXVskbmljZV9uYW1lXSA9ICRub2RlX3ZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBvdGhlciBkb21haW5zIGUuZy4gcG9zdF9mb3JtYXQKCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgIC8vIGp1c3QgaW4gY2FzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW1bJ2NhdGVnb3J5J11bXSA9ICRub2RlX3ZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ3Bvc3RfdGFnJzogICAvLyBpZ25vcmUgLSBjcmVhdGVkIGJ5ICdjYXRlZ29yeScKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICd3cF9zdGF0dXMnOgogICAgICAgICAgICAgICAgICAgICRpdGVtWyd3cF9zdGF0dXMnXSA9ICRub2RlWzBdPT0ncHVibGlzaCcgPyAxIDogMDsgIC8vIGNvbnZlcnQgdG8gMSBvciAwLCA3IHdwIHN0YXR1c2VzCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkaXRlbVskbmFtZV0gPSAoc3RyaW5nKSgkbm9kZVswXSA/PyAnJyk7ICAgLy8gY29udmVydCBhbGwgdmFsdWVzIHRvIHN0cmluZ3MKICAgICAgICAgICAgfQoKICAgICAgICAgICAgCiAgICAgICAgfQogICAgICAgIC8vIHNwZWNpYWwgY2FzZSAtIHNhdmUgdGhlIHBvc3RfaWQgYXMgZmllbGQgc291cmNlX2lkCiAgICAgICAgJGl0ZW1bJ3NvdXJjZV9pZCddID0gJGl0ZW1bJ3dwX3Bvc3RfaWQnXTsgICAvLyBhbHJlYWR5IGEgc3RyaW5nCgogICAgICAgIHJldHVybiAkaXRlbTsKICAgIH0KCgogICAgLyoqCiAgICAgKiAgZ2V0IGEgYmF0Y2ggb2YgWCBpdGVtcyBmcm9tIHRoZSBXUCB4bWwsIGVpdGhlciBwb3N0cyBvciBhdHRhY2htZW50cywgaWdub3JlIG90aGVyIHR5cGUKICAgICAqICBAcGFyYW0gaW50ZWdlciAkaXRlbV90eXBlICAgJ3Bvc3QnIChkZWZhdWx0KSBvciAnYXR0YWNobWVudCcKICAgICAqICBAcGFyYW0gaW50ZWdlciAkYmF0Y2hfc2l6ZSAgTnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybgogICAgICogIEBwYXJhbSBpbnRlZ2VyICRzdGFydCAgICAgICBPcHRpb25hbC4gU3RhcnQgYXQgdGhpcyBpdGVtLCBvciBjb250aW51ZSBmcm9tIGN1cnJlbnQgcG9zaXRpb24KICAgICAqICBAcmV0dXJuIGFycmF5IG9mIGl0ZW1zCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXRlbXMoICRpdGVtX3R5cGU9J3Bvc3QnLCAkYmF0Y2hfc2l6ZT01MCwgJHN0YXJ0PW51bGwpCiAgICB7CiAgICAgICAgJGl0ZW1fdHlwZSA9ICRpdGVtX3R5cGU9PSdhdHRhY2htZW50JyA/ICdhdHRhY2htZW50JyA6ICdwb3N0JzsKICAgICAgICAkaXRlbXMgPSBbXTsKICAgICAgICAkdGhpcy0+Y3VycmVudF9pdGVtID0gJHN0YXJ0ID8gJHN0YXJ0IDogJHRoaXMtPmN1cnJlbnRfaXRlbTsgICAgLy8gemVyby1iYXNlZCBpbmRleAogICAgICAgIAogICAgICAgIHdoaWxlIChjb3VudCgkaXRlbXMpIDwgJGJhdGNoX3NpemUgJiYgISR0aGlzLT5hdF94bWxfZW5kKSB7CiAgICAgICAgICAgICR0bXBfaXRlbSA9ICR0aGlzLT5nZXRfaXRlbSggJGl0ZW1fdHlwZSwgJHRoaXMtPmN1cnJlbnRfaXRlbSk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHRtcF9pdGVtKSkgJGl0ZW1zW10gPSAkdG1wX2l0ZW07CiAgICAgICAgICAgICR0aGlzLT5jdXJyZW50X2l0ZW0rKzsKICAgICAgICAgICAgaWYgKCAkdGhpcy0+Y3VycmVudF9pdGVtID49ICR0aGlzLT53cF9pdGVtX2NvdW50ICkgJHRoaXMtPmF0X3htbF9lbmQgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRpdGVtczsKICAgIH0KCgogICAgLyoqCiAgICAgKiAgZ2V0IHRoZSBzdGF0cyBmb3IgdGhlIFdQIHhtbCAtIGJvdGggcG9zdHMgYW5kIGF0dGFjaG1lbnRzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfd3BfZGV0YWlscygpCiAgICB7CiAgICAgICAgaWYgKCBlbXB0eSgkdGhpcy0+d3BfeG1sLT5jaGFubmVsKSApIHJldHVybjsKCiAgICAgICAgJHRoaXMtPndwX3RpdGxlID0gJHRoaXMtPndwX3htbC0+Y2hhbm5lbC0+dGl0bGU7CiAgICAgICAgJHRoaXMtPndwX3NpdGVfdXJsID0gJHRoaXMtPndwX3htbC0+Y2hhbm5lbC0+bGluazsKICAgICAgICAkdGhpcy0+d3BfaXRlbV9jb3VudCA9ICFlbXB0eSgkdGhpcy0+d3BfeG1sLT5jaGFubmVsLT5pdGVtKSA/IAogICAgICAgICAgICAkdGhpcy0+d3BfeG1sLT5jaGFubmVsLT5pdGVtLT5jb3VudCgpIDogMDsKICAgICAgICAkYXV0aG9ycyA9ICR0aGlzLT53cF94bWwtPmNoYW5uZWwtPnhwYXRoKCd3cDphdXRob3InKTsKICAgICAgICAkdGhpcy0+d3BfYXV0aG9yX2NvdW50ID0gY291bnQoJGF1dGhvcnMpOwoKICAgICAgICAvLyBjb3VudCB0aGUgcG9zdHMgYW5kIGF0dGFjaG1lbnRzCiAgICAgICAgJHRoaXMtPndwX3Bvc3RfY291bnQgPSAwOwogICAgICAgICR0aGlzLT53cF9hdHRhY2htZW50X2NvdW50ID0gMDsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+d3BfeG1sLT5jaGFubmVsLT5pdGVtIGFzICRpdGVtKSB7CiAgICAgICAgICAgICRwb3N0X3R5cGUgPSAkaXRlbS0+eHBhdGgoJ3dwOnBvc3RfdHlwZScpOwogICAgICAgICAgICBpZiAoJHBvc3RfdHlwZVswXSA9PSAnYXR0YWNobWVudCcpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53cF9hdHRhY2htZW50X2NvdW50Kys7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+d3BfcG9zdF9jb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCgp9]]></data>
	</file>
	<file>
	  <filename>/lib/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/css/icomoon.eot</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9Imljb21vb24iIGhvcml6LWFkdi14PSIxMDI0Ij4KPGZvbnQtZmFjZSB1bml0cy1wZXItZW09IjEwMjQiIGFzY2VudD0iOTYwIiBkZXNjZW50PSItNjQiIC8+CjxtaXNzaW5nLWdseXBoIGhvcml6LWFkdi14PSIxMDI0IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjA7IiBob3Jpei1hZHYteD0iNTEyIiBkPSIiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAwOyIgZ2x5cGgtbmFtZT0ibWludXMtc29saWQiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik04MDAgMzg0aC03MDRjLTM1LjM4IDAtNjQgMjguNjQtNjQgNjQuMDIwczI4LjYyIDYzLjk4IDY0IDYzLjk4aDcwNGMzNS4zOCAwIDY0LTI4LjYgNjQtNjMuOThzLTI4LjYtNjQuMDIwLTY0LTY0LjAyMHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZ2x5cGgtbmFtZT0icGx1cy1zb2xpZCIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTg2NCA0NDhjMC0zNS4zOC0yOC42Ni02NC4wMjAtNjQtNjQuMDIwaC0yODh2LTI4OGMwLTM1LjM4LTI4LjY2LTYzLjk4LTY0LTYzLjk4cy02NCAyOC42LTY0IDYzLjk4djI4OGgtMjg4Yy0zNS4zNCAwLTY0IDI4LjY0LTY0IDY0LjAyMHMyOC42NiA2My45OCA2NCA2My45OGgyODh2Mjg4YzAgMzUuMzggMjguNjYgNjQuMDIwIDY0IDY0LjAyMHM2NC0yOC42NCA2NC02NC4wMjB2LTI4OGgyODhjMzUuNCAwLjAyMCA2NC0yOC41OCA2NC02My45OHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAyOyIgZ2x5cGgtbmFtZT0idHJhc2gtY2FuLXJlZ3VsYXIiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik0zMjAgMTYwYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjQxNmMwIDE3LjYgMTQuNCAzMiAzMiAzMnMzMi0xNC40IDMyLTMydi00MTZ6TTQ4MCAxNjBjMC0xNy42LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ2NDE2YzAgMTcuNiAxNC40IDMyIDMyIDMyczMyLTE0LjQgMzItMzJ2LTQxNnpNNjQwIDE2MGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnY0MTZjMCAxNy42IDE0LjQgMzIgMzIgMzJzMzItMTQuNCAzMi0zMnYtNDE2ek02MzUgOTEwLjEybDczLjQtMTEwLjEyaDEzOS42YzI2LjYgMCA0OC0yMS41IDQ4LTQ4IDAtMjYuNi0yMS40LTQ4LTQ4LTQ4aC0xNnYtNjA4YzAtODguNC03MS42LTE2MC0xNjAtMTYwaC00NDhjLTg4LjM2IDAtMTYwIDcxLjYtMTYwIDE2MHY2MDhoLTE2Yy0yNi41IDAtNDggMjEuNC00OCA0OCAwIDI2LjUgMjEuNSA0OCA0OCA0OGgxMzkuNjRsNzMuMzYgMTEwLjEyYzIwLjggMzEuMTY2IDU1LjggNDkuODggOTMuMiA0OS44OGgxODcuNmMzNy40IDAgNzIuNC0xOC43MTYgOTMuMi00OS44OHYwek0zMDMgODAwaDI5MGwtMzggNTYuODhjLTMgNC40NC04IDcuMTItMTMuMiA3LjEyaC0xODcuNmMtNS4yIDAtMTItMi42OC0xMy4yLTcuMTJsLTM4LTU2Ljg4ek0xNjAgOTZjMC0zNS40IDI4LjY2LTY0IDY0LTY0aDQ0OGMzNS40IDAgNjQgMjguNiA2NCA2NHY2MDhoLTU3NnYtNjA4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBnbHlwaC1uYW1lPSJncmlwLWRvdHMtc29saWQiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik03NjggNzA0YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2ek00NDggNzA0YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2ek0xMjggNTEyYy01My4wMjAgMC05NiA0My05NiA5NnM0Mi45OCA5NiA5NiA5NmM1My4wMjAgMCA5Ni00MyA5Ni05NnMtNDIuOTgtOTYtOTYtOTZ6TTc2OCAzODRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZ6TTQ0OCAxOTJjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZ6TTEyOCAzODRjNTMuMDIwIDAgOTYtNDMgOTYtOTZzLTQyLjk4LTk2LTk2LTk2Yy01My4wMjAgMC05NiA0My05NiA5NnM0Mi45OCA5NiA5NiA5NnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA0OyIgZ2x5cGgtbmFtZT0iZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIiBob3Jpei1hZHYteD0iNTEyIiBkPSJNMCA3NjhjMCA1My4wMjAgNDIuOTggOTYgOTYgOTZzOTYtNDIuOTggOTYtOTZjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6TTAgNDQ4YzAgNTMgNDIuOTggOTYgOTYgOTZzOTYtNDMgOTYtOTZjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6TTE5MiAxMjhjMC01My00Mi45OC05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCA1MyA0Mi45OCA5NiA5NiA5NnM5Ni00MyA5Ni05NnpNMzIwIDc2OGMwIDUzLjAyMCA0MyA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnpNNTEyIDQ0OGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2ek0zMjAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNTsiIGdseXBoLW5hbWU9InRyYXNoLXJlZ3VsYXIiIGhvcml6LWFkdi14PSI4OTYiIGQ9Ik04NDggODAwYzI2LjYgMCA0OC0yMS41IDQ4LTQ4IDAtMjYuNi0yMS40LTQ4LTQ4LTQ4aC0yMy4ybC00OC02NDkuNGMtNS02Ni44LTYwLjYtMTE4LjYtMTI3LjYtMTE4LjZoLTQwMi40Yy02Ni45NiAwLTEyMi42MiA1MS44LTEyNy41OCAxMTguNmwtNDguMSA2NDkuNGgtMjMuMTJjLTI2LjUgMC00OCAyMS40LTQ4IDQ4IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDEzOS42NGw3My4zNiAxMTAuMTJjMjAuOCAzMS4xNjYgNTUuOCA0OS44OCA5My4yIDQ5Ljg4aDE4Ny42YzM3LjQgMCA3Mi40LTE4LjcxNiA5My4yLTQ5Ljg4bDczLjQtMTEwLjEyaDEzOS42ek0zNTQuMiA4NjRjLTUuMiAwLTEyLTIuNjgtMTMuMi03LjEybC0zOC01Ni44OGgyOTBsLTM4IDU2Ljg4Yy0zIDQuNDQtOCA3LjEyLTEzLjIgNy4xMmgtMTg3LjZ6TTcyOC42IDcwNGgtNTYxLjIybDQ3LjYyLTY0Mi40YzEuMi0xNi42IDE1LjItMjkuNiAzMS44LTI5LjZoNDAyLjRjMTYuNiAwIDMwLjYgMTMgMzEuOCAyOS42bDQ3LjYgNjQyLjR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNjsiIGdseXBoLW5hbWU9InRyYXNoLWNhbi1zb2xpZCIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTI3MC40IDkyNC42MmMxMC44IDIxLjY4NCAzMyAzNS4zOCA1Ny4yIDM1LjM4aDI0MC44YzI0LjIgMCA0Ni40LTEzLjY5NiA1Ny4yLTM1LjM4bDE0LjQtMjguNjJoMTkyYzM1LjQgMCA2NC0yOC42NiA2NC02NHMtMjguNi02NC02NC02NGgtNzY4Yy0zNS4zNCAwLTY0IDI4LjY2LTY0IDY0czI4LjY2IDY0IDY0IDY0aDE5MmwxNC40IDI4LjYyek02Mi4yIDcwNGg3NjkuOHYtNjQwYzAtNzAuNi01Ny40LTEyOC0xMjgtMTI4aC01MTMuOGMtNjguOSAwLTEyOCA1Ny40LTEyOCAxMjh2NjQwek0yMjIuMiA1NDR2LTQ0OGMwLTE3LjYgMTYuMi0zMiAzMi0zMiAxOS40IDAgMzIgMTQuNCAzMiAzMnY0NDhjMCAxNy42LTEyLjYgMzItMzIgMzItMTUuOCAwLTMyLTE0LjQtMzItMzJ6TTQxNC4yIDU0NHYtNDQ4YzAtMTcuNiAxNi4yLTMyIDMyLTMyIDE5LjQgMCAzMy44IDE0LjQgMzMuOCAzMnY0NDhjMCAxNy42LTE0LjQgMzItMzMuOCAzMi0xNS44IDAtMzItMTQuNC0zMi0zMnpNNjA4IDU0NHYtNDQ4YzAtMTcuNiAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2NDQ4YzAgMTcuNi0xNC40IDMyLTMyIDMycy0zMi0xNC40LTMyLTMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDc7IiBnbHlwaC1uYW1lPSJwZW5jaWwiIGhvcml6LWFkdi14PSI4NjYiIGQ9Ik0yMDcuNDI5IDgyLjI4Nmw1MiA1Mi0xMzQuMjg2IDEzNC4yODYtNTItNTJ2LTYxLjE0M2g3My4xNDN2LTczLjE0M2g2MS4xNDN6TTUwNi4yODYgNjEyLjU3MWMwIDcuNDI5LTUuMTQzIDEyLjU3MS0xMi41NzEgMTIuNTcxLTMuNDI5IDAtNi44NTctMS4xNDMtOS43MTQtNGwtMzA5LjcxNC0zMDkuNzE0Yy0yLjg1Ny0yLjg1Ny00LTYuMjg2LTQtOS43MTQgMC03LjQyOSA1LjE0My0xMi41NzEgMTIuNTcxLTEyLjU3MSAzLjQyOSAwIDYuODU3IDEuMTQzIDkuNzE0IDRsMzA5LjcxNCAzMDkuNzE0YzIuODU3IDIuODU3IDQgNi4yODYgNCA5LjcxNHpNNDc1LjQyOSA3MjIuMjg2bDIzNy43MTQtMjM3LjcxNC00NzUuNDI5LTQ3NS40MjloLTIzNy43MTR2MjM3LjcxNHpNODY1LjcxNCA2NjcuNDI5YzAtMTkuNDI5LTgtMzguMjg2LTIxLjE0My01MS40MjlsLTk0Ljg1Ny05NC44NTctMjM3LjcxNCAyMzcuNzE0IDk0Ljg1NyA5NC4yODZjMTMuMTQzIDEzLjcxNCAzMiAyMS43MTQgNTEuNDI5IDIxLjcxNHMzOC4yODYtOCA1Mi0yMS43MTRsMTM0LjI4Ni0xMzMuNzE0YzEzLjE0My0xMy43MTQgMjEuMTQzLTMyLjU3MSAyMS4xNDMtNTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwODsiIGdseXBoLW5hbWU9InhtYXJrIiBob3Jpei1hZHYteD0iNjQwIiBkPSJNNjIxLjIgMjM3LjJjMjUtMjUgMjUtNjUuNSAwLTkwLjUtMTIuNC0xMi41LTI4LjgtMTguNy00NS4yLTE4LjdzLTMyLjc2IDYuMjUtNDUuMjQgMTguNzVsLTIxMC43NiAyMTAuNjUtMjEwLjc0LTIxMC42Yy0xMi41LTEyLjYtMjguODgtMTguOC00NS4yNi0xOC44cy0zMi43NCA2LjItNDUuMjUgMTguOGMtMjUgMjUtMjUgNjUuNSAwIDkwLjVsMjEwLjggMjEwLjgtMjEwLjggMjEwLjdjLTI1IDI1LTI1IDY1LjUgMCA5MC41czY1LjUgMjUgOTAuNSAwbDIxMC43NS0yMTAuOSAyMTAuOCAyMTAuOGMyNSAyNSA2NS41IDI1IDkwLjUgMHMyNS02NS41IDAtOTAuNWwtMjEwLjgtMjEwLjggMjEwLjctMjEwLjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGdseXBoLW5hbWU9ImNoZWNrIiBob3Jpei1hZHYteD0iODk2IiBkPSJNODc3LjIgNzQ5LjJjMjUtMjUgMjUtNjUuNCAwLTkwLjRsLTUxMi01MTJjLTI1LTI1LTY1LjQtMjUtOTAuNCAwbC0yNTYuMDU2IDI1NmMtMjQuOTkyIDI1LTI0Ljk5MiA2NS40IDAgOTAuNCAyNC45OTYgMjUgNjUuNTE2IDI1IDkwLjUxNiAwbDIwOC45NC0yMTAuNiA0NjguNiA0NjYuNmMyNSAyNS4wNDAgNjUuNCAyNS4wNDAgOTAuNCAwdjB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGdseXBoLW5hbWU9ImZpbGUtbyIgaG9yaXotYWR2LXg9Ijg3OCIgZD0iTTgzOC44NTcgNzQyLjg1N2MyMS4xNDMtMjEuMTQzIDM4Ljg1Ny02My40MjkgMzguODU3LTkzLjcxNHYtNjU4LjI4NmMwLTMwLjI4Ni0yNC41NzEtNTQuODU3LTU0Ljg1Ny01NC44NTdoLTc2OGMtMzAuMjg2IDAtNTQuODU3IDI0LjU3MS01NC44NTcgNTQuODU3djkxNC4yODZjMCAzMC4yODYgMjQuNTcxIDU0Ljg1NyA1NC44NTcgNTQuODU3aDUxMmMzMC4yODYgMCA3Mi41NzEtMTcuNzE0IDkzLjcxNC0zOC44NTd6TTU4NS4xNDMgODgyLjI4NnYtMjE0Ljg1N2gyMTQuODU3Yy0zLjQyOSA5LjcxNC04LjU3MSAxOS40MjktMTIuNTcxIDIzLjQyOWwtMTc4Ljg1NyAxNzguODU3Yy00IDQtMTMuNzE0IDkuMTQzLTIzLjQyOSAxMi41NzF6TTgwNC41NzEgOS4xNDN2NTg1LjE0M2gtMjM3LjcxNGMtMzAuMjg2IDAtNTQuODU3IDI0LjU3MS01NC44NTcgNTQuODU3djIzNy43MTRoLTQzOC44NTd2LTg3Ny43MTRoNzMxLjQyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZ2x5cGgtbmFtZT0iaW1hZ2UiIGQ9Ik05NTkuODg0IDgzMmMwLjA0MC0wLjAzNCAwLjA4Mi0wLjA3NiAwLjExNi0wLjExNnYtNzY3Ljc3Yy0wLjAzNC0wLjA0MC0wLjA3Ni0wLjA4Mi0wLjExNi0wLjExNmgtODk1Ljc3Yy0wLjA0MCAwLjAzNC0wLjA4MiAwLjA3Ni0wLjExNCAwLjExNnY3NjcuNzcyYzAuMDM0IDAuMDQwIDAuMDc2IDAuMDgyIDAuMTE0IDAuMTE0aDg5NS43N3pNOTYwIDg5NmgtODk2Yy0zNS4yIDAtNjQtMjguOC02NC02NHYtNzY4YzAtMzUuMiAyOC44LTY0IDY0LTY0aDg5NmMzNS4yIDAgNjQgMjguOCA2NCA2NHY3NjhjMCAzNS4yLTI4LjggNjQtNjQgNjR2MHpNODMyIDY3MmMwLTUzLjAyMC00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTYgNDIuOTggOTYgOTYgOTYgOTYtNDIuOTggOTYtOTZ6TTg5NiAxMjhoLTc2OHYxMjhsMjI0IDM4NCAyNTYtMzIwaDY0bDIyNCAxOTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZTsiIGdseXBoLW5hbWU9ImltYWdlcyIgaG9yaXotYWR2LXg9IjExNTIiIGQ9Ik0xMDg4IDgzMmgtNjR2NjRjMCAzNS4yLTI4LjggNjQtNjQgNjRoLTg5NmMtMzUuMiAwLTY0LTI4LjgtNjQtNjR2LTc2OGMwLTM1LjIgMjguOC02NCA2NC02NGg2NHYtNjRjMC0zNS4yIDI4LjgtNjQgNjQtNjRoODk2YzM1LjIgMCA2NCAyOC44IDY0IDY0djc2OGMwIDM1LjItMjguOCA2NC02NCA2NHpNMTI4IDc2OHYtNjQwaC02My44ODZjLTAuMDQwIDAuMDM0LTAuMDgyIDAuMDc2LTAuMTE0IDAuMTE2djc2Ny43N2MwLjAzNCAwLjA0MCAwLjA3NiAwLjA4MiAwLjExNCAwLjExNGg4OTUuNzdjMC4wNDAtMC4wMzQgMC4wODItMC4wNzYgMC4xMTYtMC4xMTZ2LTYzLjg4NGgtNzY4Yy0zNS4yIDAtNjQtMjguOC02NC02NHYwek0xMDg4IDAuMTE2Yy0wLjAzNC0wLjA0MC0wLjA3Ni0wLjA4Mi0wLjExNi0wLjExNmgtODk1Ljc3Yy0wLjA0MCAwLjAzNC0wLjA4MiAwLjA3Ni0wLjExNCAwLjExNnY3NjcuNzdjMC4wMzQgMC4wNDAgMC4wNzYgMC4wODIgMC4xMTQgMC4xMTRoODk1Ljc3YzAuMDQwLTAuMDM0IDAuMDgyLTAuMDc2IDAuMTE2LTAuMTE2di03NjcuNzY4ek05NjAgNjA4YzAtNTMuMDIwLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NiA0Mi45OCA5NiA5NiA5NiA5Ni00Mi45OCA5Ni05NnpNMTAyNCA2NGgtNzY4djEyOGwyMjQgMzg0IDI1Ni0zMjBoNjRsMjI0IDE5MnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOWJlOyIgZ2x5cGgtbmFtZT0ibWVudTIiIGhvcml6LWFkdi14PSIxNDA4IiBkPSJNMCA3NjhoODk2di0xOTJoLTg5NnYxOTJ6TTAgNTEyaDg5NnYtMTkyaC04OTZ2MTkyek0wIDI1Nmg4OTZ2LTE5MmgtODk2djE5MnpNOTkyIDM4NGwxOTItMTkyIDE5MiAxOTJ6TTEzNzYgNDQ4bC0xOTIgMTkyLTE5Mi0xOTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZWEwYTsiIGdseXBoLW5hbWU9InBsdXMiIGQ9Ik05OTIgNTc2aC0zNTJ2MzUyYzAgMTcuNjcyLTE0LjMyOCAzMi0zMiAzMmgtMTkyYy0xNy42NzIgMC0zMi0xNC4zMjgtMzItMzJ2LTM1MmgtMzUyYy0xNy42NzIgMC0zMi0xNC4zMjgtMzItMzJ2LTE5MmMwLTE3LjY3MiAxNC4zMjgtMzIgMzItMzJoMzUydi0zNTJjMC0xNy42NzIgMTQuMzI4LTMyIDMyLTMyaDE5MmMxNy42NzIgMCAzMiAxNC4zMjggMzIgMzJ2MzUyaDM1MmMxNy42NzIgMCAzMiAxNC4zMjggMzIgMzJ2MTkyYzAgMTcuNjcyLTE0LjMyOCAzMi0zMiAzMnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlYTBiOyIgZ2x5cGgtbmFtZT0ibWludXMiIGQ9Ik0wIDU0NHYtMTkyYzAtMTcuNjcyIDE0LjMyOC0zMiAzMi0zMmg5NjBjMTcuNjcyIDAgMzIgMTQuMzI4IDMyIDMydjE5MmMwIDE3LjY3Mi0xNC4zMjggMzItMzIgMzJoLTk2MGMtMTcuNjcyIDAtMzItMTQuMzI4LTMyLTMyeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.ttf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/css/icomoon.woff</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lib/css/importexport_admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LmltcG9ydC1leHBvcnQgKiB7Ym94LXNpemluZzpib3JkZXItYm94O30KLmltcG9ydC1leHBvcnQgLnBhZ2VvdmVyZmxvdyB7bWFyZ2luLWJvdHRvbToxMHB4O30KCi8qIGljb25zIGZyb20gaWNvbW9vbiAqLwpAZm9udC1mYWNlIHtmb250LWZhbWlseTonaWNvbW9vbic7IAogICAgc3JjOiB1cmwoJ2ljb21vb24uZW90P2Yxa2l0YScpOwogICAgc3JjOiB1cmwoJ2ljb21vb24uZW90P2Yxa2l0YSNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwKICAgICAgICAgdXJsKCdpY29tb29uLnR0Zj9mMWtpdGEnKSBmb3JtYXQoJ3RydWV0eXBlJyksCiAgICAgICAgIHVybCgnaWNvbW9vbi53b2ZmP2Yxa2l0YScpIGZvcm1hdCgnd29mZicpLAogICAgICAgICB1cmwoJ2ljb21vb24uc3ZnP2Yxa2l0YSNpY29tb29uJykgZm9ybWF0KCdzdmcnKTsKICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtZGlzcGxheTpibG9jazt9CltjbGFzc149J2ltcC1leHAtaWNvbi0nXSwgW2NsYXNzKj0nIGltcC1leHAtaWNvbi0nXSB7Zm9udC1mYW1pbHk6J2ljb21vb24nICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgCiAgICBmb250LXN0eWxlOm5vcm1hbDsgZm9udC12YXJpYW50Om5vcm1hbDsgbGluZS1oZWlnaHQ6MTt0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXNpemU6MTZweDsKICAgIGNvbG9yOmluaGVyaXQ7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTt9CgouaW1wLWV4cC1pY29uLWZpbGUtbzpiZWZvcmUge2NvbnRlbnQ6J1xlOTBhJzt9Ci5pbXAtZXhwLWljb24tbWludXMtc29saWQ6YmVmb3JlIHtjb250ZW50OidcZTkwMCc7fQouaW1wLWV4cC1pY29uLXBsdXMtc29saWQ6YmVmb3JlIHtjb250ZW50OidcZTkwMSc7fQouaW1wLWV4cC1pY29uLWltYWdlOmJlZm9yZSB7Y29udGVudDonXGU5MGQnO30KLmltcC1leHAtaWNvbi1pbWFnZXM6YmVmb3JlIHtjb250ZW50OidcZTkwZSc7fQouaW1wLWV4cC1pY29uLW1lbnUyOmJlZm9yZSB7Y29udGVudDonXGU5YmUnO30KLmltcC1leHAtaWNvbi1wbHVzOmJlZm9yZSB7Y29udGVudDonXGVhMGEnO30KLmltcC1leHAtaWNvbi1taW51czpiZWZvcmUge2NvbnRlbnQ6J1xlYTBiJzt9Ci5pbXAtZXhwLWljb24tdHJhc2gtY2FuLXJlZ3VsYXI6YmVmb3JlIHtjb250ZW50OidcZTkwMic7fQouaW1wLWV4cC1pY29uLXRyYXNoLXJlZ3VsYXI6YmVmb3JlIHtjb250ZW50OidcZTkwNSc7fQouaW1wLWV4cC1pY29uLXRyYXNoLWNhbi1zb2xpZDpiZWZvcmUge2NvbnRlbnQ6J1xlOTA2Jzt9Ci5pbXAtZXhwLWljb24tZ3JpcC1kb3RzLXNvbGlkOmJlZm9yZSB7Y29udGVudDonXGU5MDMnO30KLmltcC1leHAtaWNvbi1ncmlwLWRvdHMtdmVydGljYWwtc29saWQ6YmVmb3JlIHtjb250ZW50OidcZTkwNCc7fQouaW1wLWV4cC1pY29uLXBlbmNpbDpiZWZvcmUge2NvbnRlbnQ6J1xlOTA3Jzt9Ci5pbXAtZXhwLWljb24teG1hcms6YmVmb3JlIHtjb250ZW50OidcZTkwOCc7fQouaW1wLWV4cC1pY29uLWNoZWNrOmJlZm9yZSB7Y29udGVudDonXGU5MDknO30KCi5pbXBvcnQtZXhwb3J0IC5tZXNzYWdlIHtib3JkZXI6MXB4IHNvbGlkICM3N2FiMTM7fQoKLyogaW1wb3J0LWV4cG9ydCBidXR0b25zICovCi5pbXAtZXhwLWJ0biB7Ym94LXNpemluZzpib3JkZXItYm94OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOjA7IHBhZGRpbmc6LjM0NHJlbSAuNzVyZW07IAogICAgZm9udC1mYW1pbHk6aW5oZXJpdDsgZm9udC1zaXplOjEycHg7IGZvbnQtd2VpZ2h0OjcwMDsgbGluZS1oZWlnaHQ6MTZweDsgY29sb3I6IzIxMjUyOTsKICAgIGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yYWRpdXM6LjI1cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OwogICAgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IAogICAgY3Vyc29yOnBvaW50ZXI7IC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgLW1vei11c2VyLXNlbGVjdDpub25lOyB1c2VyLXNlbGVjdDpub25lOyAKICAgIHRyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyAtd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO30KLmltcC1leHAtYnRuLmltcC1leHAtaWNvbi1vbmx5IHtwYWRkaW5nOi4yNXJlbSAwLjVyZW19Ci5pbXAtZXhwLWJ0bjpkaXNhYmxlZCB7b3BhY2l0eTouNDsgY3Vyc29yOmRlZmF1bHQ7fQouaW1wLWV4cC1idG4tZGVmYXVsdCB7Y29sb3I6IzZjNmM2YzsgYm9yZGVyLWNvbG9yOiNkOGQ4ZDg7IGJhY2tncm91bmQtY29sb3I6I2Q4ZDhkODt9Ci5pbXAtZXhwLWJ0bi1kZWZhdWx0OmhvdmVyOm5vdChkaXNhYmxlZCkge2NvbG9yOiNmZmY7IGJhY2tncm91bmQ6I2ZhODAwNDsgYm9yZGVyOjFweCBzb2xpZCAjZmE2NzA0O30KLmltcC1leHAtYnRuIC5pbXAtZXhwLWljb24tcGx1cyB7Zm9udC1zaXplOjEwcHg7fQouaW1wLWV4cC1idG4gLmltcC1leHAtaWNvbi1taW51cyB7Zm9udC1zaXplOjEwcHg7fQoKCi8qIGZpZWxkIG1hcCB0YWJsZSAqLwoudGFibGUtcmVzcG9uc2l2ZSB7b3ZlcmZsb3cteDphdXRvOyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt9CgouZmllbGQtbWFwLWhlYWRlciwgLmZpZWxkLW1hcC1pdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZWJlYmViOyBib3JkZXItYm90dG9tLXdpZHRoOjA7fQouZmllbGQtbWFwLWhlYWRlciAucGFuZWwge3BhZGRpbmc6MTBweCA4cHg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2ViZWJlYjsgCiAgICBjb2xvcjojNTg1ODU4OyBmb250LXdlaWdodDo3MDA7IHZlcnRpY2FsLWFsaWduOnRvcDt9Ci5maWVsZC1tYXAtaXRlbSAucGFuZWwge3BhZGRpbmc6NnB4IDhweDsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7fQoKLmZpZWxkLW1hcC1pdGVtIC5wYW5lbC1sZWZ0LCAuZmllbGQtbWFwLWl0ZW0gLnBhbmVsLWRlc3RpbmF0aW9uIHtwYWRkaW5nLXRvcDoxM3B4O30KLmZpZWxkLW1hcC1pdGVtIC5wYW5lbC1yaWdodCB7cGFkZGluZy10b3A6MTBweDt9Ci5maWVsZC1tYXAtaXRlbSAucGFuZWwtbGVmdCB7dGV4dC1hbGlnbjpjZW50ZXI7fQouZmllbGQtbWFwLWl0ZW0gLnBhbmVsLWRlc3RpbmF0aW9uIHtwYWRkaW5nLXJpZ2h0OjRyZW07IGZvbnQtd2VpZ2h0OjcwMDt9Ci5maWVsZC1tYXAtaXRlbSAucGFuZWwtc291cmNlIHtwYWRkaW5nLXJpZ2h0OjRyZW07fQoKCi5pbXBvcnQtZXhwb3J0IC5wcm9ncmVzcyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgaGVpZ2h0OiAycmVtOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGZvbnQtc2l6ZTogLjc1cmVtOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjsKICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTsKfQoKLmltcG9ydC1leHBvcnQgLnByb2dyZXNzLWJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgaGVpZ2h0OjEwMCU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhODAwNCAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogd2lkdGggLjZzIGVhc2U7Cn0KLmltcG9ydC1leHBvcnQgLnByb2dyZXNzLWJhci5kb25lIHtiYWNrZ3JvdW5kLWNvbG9yOiAjNzdhYjEzICFpbXBvcnRhbnQ7fQouaW1wb3J0LWV4cG9ydCAuc3RlcC1iYXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBhZGRpbmc6LjVyZW07CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgY29sb3I6ICNmZmY7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNhY2IzYmY7CiAgICB0cmFuc2l0aW9uOiB3aWR0aCAuNnMgZWFzZTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk2OWRhNTsKfQouaW1wb3J0LWV4cG9ydCAuc3RlcC1iYXI6Zmlyc3QtY2hpbGQge2JvcmRlci1sZWZ0OjA7fQouaW1wb3J0LWV4cG9ydCAuc3RlcC1iYXIuZG9uZSB7YmFja2dyb3VuZC1jb2xvcjojNjU2YTcwO30KLmltcG9ydC1leHBvcnQgLnN0ZXAtYmFyLmFjdGl2ZSB7YmFja2dyb3VuZC1jb2xvcjojNjU2YTcwO30KCi5pbXBvcnQtZXhwb3J0IC5iZy1zZWNvbmRhcnkge2JhY2tncm91bmQtY29sb3I6ICM2Yzc1N2QgIWltcG9ydGFudDt9Ci5pbXBvcnQtZXhwb3J0IC5iZy13YXJuaW5nIHtiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUwIDEyOCA0KSAhaW1wb3J0YW50O30=]]></data>
	</file>
	<file>
	  <filename>/lib/css/importexport_help.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Lm1vZHVsZS1oZWxwLXdyYXBwZXIgaDMge21hcmdpbi10b3A6MS41cmVtOyBtYXJnaW4tYm90dG9tOi4yNXJlbTt9Ci5tb2R1bGUtaGVscC13cmFwcGVyIHAge21hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTouNzVyZW07fQoubW9kdWxlLWhlbHAtd3JhcHBlciB1bCwgLm1vZHVsZS1oZWxwLXdyYXBwZXIgb2wge21hcmdpbi10b3A6MCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOi43NXJlbSAhaW1wb3J0YW50O30KLm1vZHVsZS1oZWxwLXdyYXBwZXIgdWwgPiBsaSB7bGlzdC1zdHlsZTogZGlzYyAhaW1wb3J0YW50O30=]]></data>
	</file>
	<file>
	  <filename>/lib/css/selection.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyJJY29Nb29uVHlwZSI6InNlbGVjdGlvbiIsImljb25zIjpbeyJpY29uIjp7InBhdGhzIjpbIk04MzguODU3IDIxNy4xNDNjMjEuMTQzIDIxLjE0MyAzOC44NTcgNjMuNDI5IDM4Ljg1NyA5My43MTR2NjU4LjI4NmMwIDMwLjI4Ni0yNC41NzEgNTQuODU3LTU0Ljg1NyA1NC44NTdoLTc2OGMtMzAuMjg2IDAtNTQuODU3LTI0LjU3MS01NC44NTctNTQuODU3di05MTQuMjg2YzAtMzAuMjg2IDI0LjU3MS01NC44NTcgNTQuODU3LTU0Ljg1N2g1MTJjMzAuMjg2IDAgNzIuNTcxIDE3LjcxNCA5My43MTQgMzguODU3ek01ODUuMTQzIDc3LjcxNHYyMTQuODU3aDIxNC44NTdjLTMuNDI5LTkuNzE0LTguNTcxLTE5LjQyOS0xMi41NzEtMjMuNDI5bC0xNzguODU3LTE3OC44NTdjLTQtNC0xMy43MTQtOS4xNDMtMjMuNDI5LTEyLjU3MXpNODA0LjU3MSA5NTAuODU3di01ODUuMTQzaC0yMzcuNzE0Yy0zMC4yODYgMC01NC44NTctMjQuNTcxLTU0Ljg1Ny01NC44NTd2LTIzNy43MTRoLTQzOC44NTd2ODc3LjcxNGg3MzEuNDI5eiJdLCJhdHRycyI6W3t9XSwid2lkdGgiOjg3OCwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsiZmlsZS1vIl0sImdyaWQiOjE2fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjE4LCJpZCI6MjcsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTgsIm5hbWUiOiJmaWxlLW8ifSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MH0seyJpY29uIjp7InBhdGhzIjpbIk04MDAgNTc2aC03MDRjLTM1LjM4IDAtNjQtMjguNjQtNjQtNjQuMDIwczI4LjYyLTYzLjk4IDY0LTYzLjk4aDcwNGMzNS4zOCAwIDY0IDI4LjYgNjQgNjMuOThzLTI4LjYgNjQuMDIwLTY0IDY0LjAyMHoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1pbnVzLXNvbGlkIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NDh9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MTksImlkIjoxMiwibmFtZSI6Im1pbnVzLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY0OH0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjF9LHsiaWNvbiI6eyJwYXRocyI6WyJNODY0IDUxMmMwIDM1LjM4LTI4LjY2IDY0LjAyMC02NCA2NC4wMjBoLTI4OHYyODhjMCAzNS4zOC0yOC42NiA2My45OC02NCA2My45OHMtNjQtMjguNi02NC02My45OHYtMjg4aC0yODhjLTM1LjM0IDAtNjQtMjguNjQtNjQtNjQuMDIwczI4LjY2LTYzLjk4IDY0LTYzLjk4aDI4OHYtMjg4YzAtMzUuMzggMjguNjYtNjQuMDIwIDY0LTY0LjAyMHM2NCAyOC42NCA2NCA2NC4wMjB2Mjg4aDI4OGMzNS40LTAuMDIwIDY0IDI4LjU4IDY0IDYzLjk4eiJdLCJ3aWR0aCI6ODk2LCJhdHRycyI6W3t9XSwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsicGx1cy1zb2xpZCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjQ5fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjIwLCJpZCI6MTMsIm5hbWUiOiJwbHVzLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY0OX0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjJ9LHsiaWNvbiI6eyJwYXRocyI6WyJNOTU5Ljg4NCAxMjhjMC4wNDAgMC4wMzQgMC4wODIgMC4wNzYgMC4xMTYgMC4xMTZ2NzY3Ljc3Yy0wLjAzNCAwLjA0MC0wLjA3NiAwLjA4Mi0wLjExNiAwLjExNmgtODk1Ljc3Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3MmMwLjAzNC0wLjA0MCAwLjA3Ni0wLjA4MiAwLjExNC0wLjExNGg4OTUuNzd6TTk2MCA2NGgtODk2Yy0zNS4yIDAtNjQgMjguOC02NCA2NHY3NjhjMCAzNS4yIDI4LjggNjQgNjQgNjRoODk2YzM1LjIgMCA2NC0yOC44IDY0LTY0di03NjhjMC0zNS4yLTI4LjgtNjQtNjQtNjR2MHoiLCJNODMyIDI4OGMwIDUzLjAyMC00Mi45OCA5Ni05NiA5NnMtOTYtNDIuOTgtOTYtOTYgNDIuOTgtOTYgOTYtOTYgOTYgNDIuOTggOTYgOTZ6IiwiTTg5NiA4MzJoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbImltYWdlIiwicGljdHVyZSIsInBob3RvIiwiZ3JhcGhpYyJdLCJkZWZhdWx0Q29kZSI6NTk2NjEsImdyaWQiOjE2fSwiYXR0cnMiOltdLCJwcm9wZXJ0aWVzIjp7ImxpZ2F0dXJlcyI6ImltYWdlLCBwaWN0dXJlIiwibmFtZSI6ImltYWdlIiwiaWQiOjE0LCJvcmRlciI6MjEsInByZXZTaXplIjozMiwiY29kZSI6NTk2NjF9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjozfSx7Imljb24iOnsicGF0aHMiOlsiTTEwODggMTI4aC02NHYtNjRjMC0zNS4yLTI4LjgtNjQtNjQtNjRoLTg5NmMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2NzY4YzAgMzUuMiAyOC44IDY0IDY0IDY0aDY0djY0YzAgMzUuMiAyOC44IDY0IDY0IDY0aDg5NmMzNS4yIDAgNjQtMjguOCA2NC02NHYtNzY4YzAtMzUuMi0yOC44LTY0LTY0LTY0ek0xMjggMTkydjY0MGgtNjMuODg2Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3YzAuMDM0LTAuMDQwIDAuMDc2LTAuMDgyIDAuMTE0LTAuMTE0aDg5NS43N2MwLjA0MCAwLjAzNCAwLjA4MiAwLjA3NiAwLjExNiAwLjExNnY2My44ODRoLTc2OGMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2MHpNMTA4OCA5NTkuODg0Yy0wLjAzNCAwLjA0MC0wLjA3NiAwLjA4Mi0wLjExNiAwLjExNmgtODk1Ljc3Yy0wLjA0MC0wLjAzNC0wLjA4Mi0wLjA3Ni0wLjExNC0wLjExNnYtNzY3Ljc3YzAuMDM0LTAuMDQwIDAuMDc2LTAuMDgyIDAuMTE0LTAuMTE0aDg5NS43N2MwLjA0MCAwLjAzNCAwLjA4MiAwLjA3NiAwLjExNiAwLjExNnY3NjcuNzY4eiIsIk05NjAgMzUyYzAgNTMuMDIwLTQyLjk4IDk2LTk2IDk2cy05Ni00Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NiA5NiA0Mi45OCA5NiA5NnoiLCJNMTAyNCA4OTZoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiJdLCJ3aWR0aCI6MTE1MiwiYXR0cnMiOltdLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJpbWFnZXMiLCJwaWN0dXJlcyIsInBob3RvcyIsImdyYXBoaWNzIl0sImRlZmF1bHRDb2RlIjo1OTY2MiwiZ3JpZCI6MTZ9LCJhdHRycyI6W10sInByb3BlcnRpZXMiOnsibGlnYXR1cmVzIjoiaW1hZ2VzLCBwaWN0dXJlcyIsIm5hbWUiOiJpbWFnZXMiLCJpZCI6MTUsIm9yZGVyIjoyMiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY2Mn0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjR9LHsiaWNvbiI6eyJwYXRocyI6WyJNMCAxOTJoODk2djE5MmgtODk2di0xOTJ6TTAgNDQ4aDg5NnYxOTJoLTg5NnYtMTkyek0wIDcwNGg4OTZ2MTkyaC04OTZ2LTE5MnoiLCJNOTkyIDU3NmwxOTIgMTkyIDE5Mi0xOTJ6IiwiTTEzNzYgNTEybC0xOTItMTkyLTE5MiAxOTJ6Il0sIndpZHRoIjoxNDA4LCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1lbnUiLCJvcHRpb25zIiwiaGFtYnVyZ2VyIl0sImRlZmF1bHRDb2RlIjo1OTgzOCwiZ3JpZCI6MTZ9LCJhdHRycyI6W10sInByb3BlcnRpZXMiOnsibGlnYXR1cmVzIjoibWVudTIsIG9wdGlvbnMyIiwibmFtZSI6Im1lbnUyIiwiaWQiOjE2LCJvcmRlciI6MjMsInByZXZTaXplIjozMiwiY29kZSI6NTk4Mzh9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4Ijo1fSx7Imljb24iOnsicGF0aHMiOlsiTTk5MiAzODRoLTM1MnYtMzUyYzAtMTcuNjcyLTE0LjMyOC0zMi0zMi0zMmgtMTkyYy0xNy42NzIgMC0zMiAxNC4zMjgtMzIgMzJ2MzUyaC0zNTJjLTE3LjY3MiAwLTMyIDE0LjMyOC0zMiAzMnYxOTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDM1MnYzNTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDE5MmMxNy42NzIgMCAzMi0xNC4zMjggMzItMzJ2LTM1MmgzNTJjMTcuNjcyIDAgMzItMTQuMzI4IDMyLTMydi0xOTJjMC0xNy42NzItMTQuMzI4LTMyLTMyLTMyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInBsdXMiLCJhZGQiLCJzdW0iXSwiZGVmYXVsdENvZGUiOjU5OTE0LCJncmlkIjoxNn0sImF0dHJzIjpbXSwicHJvcGVydGllcyI6eyJsaWdhdHVyZXMiOiJwbHVzLCBhZGQiLCJuYW1lIjoicGx1cyIsImlkIjoxNywib3JkZXIiOjI0LCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5OTE0fSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6Nn0seyJpY29uIjp7InBhdGhzIjpbIk0wIDQxNnYxOTJjMCAxNy42NzIgMTQuMzI4IDMyIDMyIDMyaDk2MGMxNy42NzIgMCAzMi0xNC4zMjggMzItMzJ2LTE5MmMwLTE3LjY3Mi0xNC4zMjgtMzItMzItMzJoLTk2MGMtMTcuNjcyIDAtMzIgMTQuMzI4LTMyIDMyeiJdLCJhdHRycyI6W10sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbIm1pbnVzIiwic3VidHJhY3QiLCJtaW5pbWl6ZSIsImxpbmUiXSwiZGVmYXVsdENvZGUiOjU5OTE1LCJncmlkIjoxNn0sImF0dHJzIjpbXSwicHJvcGVydGllcyI6eyJsaWdhdHVyZXMiOiJtaW51cywgc3VidHJhY3QiLCJuYW1lIjoibWludXMiLCJpZCI6MTgsIm9yZGVyIjoyNSwicHJldlNpemUiOjMyLCJjb2RlIjo1OTkxNX0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjd9LHsiaWNvbiI6eyJwYXRocyI6WyJNMzIwIDgwMGMwIDE3LjYtMTQuNCAzMi0zMiAzMnMtMzItMTQuNC0zMi0zMnYtNDE2YzAtMTcuNiAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2NDE2ek00ODAgODAwYzAgMTcuNi0xNC40IDMyLTMyIDMycy0zMi0xNC40LTMyLTMydi00MTZjMC0xNy42IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnY0MTZ6TTY0MCA4MDBjMCAxNy42LTE0LjQgMzItMzIgMzJzLTMyLTE0LjQtMzItMzJ2LTQxNmMwLTE3LjYgMTQuNC0zMiAzMi0zMnMzMiAxNC40IDMyIDMydjQxNnpNNjM1IDQ5Ljg4bDczLjQgMTEwLjEyaDEzOS42YzI2LjYgMCA0OCAyMS41IDQ4IDQ4IDAgMjYuNi0yMS40IDQ4LTQ4IDQ4aC0xNnY2MDhjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBoLTQ0OGMtODguMzYgMC0xNjAtNzEuNi0xNjAtMTYwdi02MDhoLTE2Yy0yNi41IDAtNDgtMjEuNC00OC00OCAwLTI2LjUgMjEuNS00OCA0OC00OGgxMzkuNjRsNzMuMzYtMTEwLjEyYzIwLjgtMzEuMTY2IDU1LjgtNDkuODggOTMuMi00OS44OGgxODcuNmMzNy40IDAgNzIuNCAxOC43MTYgOTMuMiA0OS44OHYwek0zMDMgMTYwaDI5MGwtMzgtNTYuODhjLTMtNC40NC04LTcuMTItMTMuMi03LjEyaC0xODcuNmMtNS4yIDAtMTIgMi42OC0xMy4yIDcuMTJsLTM4IDU2Ljg4ek0xNjAgODY0YzAgMzUuNCAyOC42NiA2NCA2NCA2NGg0NDhjMzUuNCAwIDY0LTI4LjYgNjQtNjR2LTYwOGgtNTc2djYwOHoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInRyYXNoLWNhbi1yZWd1bGFyIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTB9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjYsImlkIjoxOSwibmFtZSI6InRyYXNoLWNhbi1yZWd1bGFyIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1MH0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjh9LHsiaWNvbiI6eyJwYXRocyI6WyJNODQ4IDE2MGMyNi42IDAgNDggMjEuNSA0OCA0OCAwIDI2LjYtMjEuNCA0OC00OCA0OGgtMjMuMmwtNDggNjQ5LjRjLTUgNjYuOC02MC42IDExOC42LTEyNy42IDExOC42aC00MDIuNGMtNjYuOTYgMC0xMjIuNjItNTEuOC0xMjcuNTgtMTE4LjZsLTQ4LjEtNjQ5LjRoLTIzLjEyYy0yNi41IDAtNDgtMjEuNC00OC00OCAwLTI2LjUgMjEuNS00OCA0OC00OGgxMzkuNjRsNzMuMzYtMTEwLjEyYzIwLjgtMzEuMTY2IDU1LjgtNDkuODggOTMuMi00OS44OGgxODcuNmMzNy40IDAgNzIuNCAxOC43MTYgOTMuMiA0OS44OGw3My40IDExMC4xMmgxMzkuNnpNMzU0LjIgOTZjLTUuMiAwLTEyIDIuNjgtMTMuMiA3LjEybC0zOCA1Ni44OGgyOTBsLTM4LTU2Ljg4Yy0zLTQuNDQtOC03LjEyLTEzLjItNy4xMmgtMTg3LjZ6TTcyOC42IDI1NmgtNTYxLjIybDQ3LjYyIDY0Mi40YzEuMiAxNi42IDE1LjIgMjkuNiAzMS44IDI5LjZoNDAyLjRjMTYuNiAwIDMwLjYtMTMgMzEuOC0yOS42bDQ3LjYtNjQyLjR6Il0sIndpZHRoIjo4OTYsImF0dHJzIjpbe31dLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJ0cmFzaC1yZWd1bGFyIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTN9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjcsImlkIjoyMCwibmFtZSI6InRyYXNoLXJlZ3VsYXIiLCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5NjUzfSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6OX0seyJpY29uIjp7InBhdGhzIjpbIk0yNzAuNCAzNS4zOGMxMC44LTIxLjY4NCAzMy0zNS4zOCA1Ny4yLTM1LjM4aDI0MC44YzI0LjIgMCA0Ni40IDEzLjY5NiA1Ny4yIDM1LjM4bDE0LjQgMjguNjJoMTkyYzM1LjQgMCA2NCAyOC42NiA2NCA2NHMtMjguNiA2NC02NCA2NGgtNzY4Yy0zNS4zNCAwLTY0LTI4LjY2LTY0LTY0czI4LjY2LTY0IDY0LTY0aDE5MmwxNC40LTI4LjYyek02Mi4yIDI1Nmg3NjkuOHY2NDBjMCA3MC42LTU3LjQgMTI4LTEyOCAxMjhoLTUxMy44Yy02OC45IDAtMTI4LTU3LjQtMTI4LTEyOHYtNjQwek0yMjIuMiA0MTZ2NDQ4YzAgMTcuNiAxNi4yIDMyIDMyIDMyIDE5LjQgMCAzMi0xNC40IDMyLTMydi00NDhjMC0xNy42LTEyLjYtMzItMzItMzItMTUuOCAwLTMyIDE0LjQtMzIgMzJ6TTQxNC4yIDQxNnY0NDhjMCAxNy42IDE2LjIgMzIgMzIgMzIgMTkuNCAwIDMzLjgtMTQuNCAzMy44LTMydi00NDhjMC0xNy42LTE0LjQtMzItMzMuOC0zMi0xNS44IDAtMzIgMTQuNC0zMiAzMnpNNjA4IDQxNnY0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJzMzItMTQuNCAzMi0zMnYtNDQ4YzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMyeiJdLCJ3aWR0aCI6ODk2LCJhdHRycyI6W3t9XSwiaXNNdWx0aWNvbG9yIjpmYWxzZSwiaXNNdWx0aWNvbG9yMiI6ZmFsc2UsInRhZ3MiOlsidHJhc2gtY2FuLXNvbGlkIl0sImdyaWQiOjE2LCJkZWZhdWx0Q29kZSI6NTk2NTR9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MjgsImlkIjoyMSwibmFtZSI6InRyYXNoLWNhbi1zb2xpZCIsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTR9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjoxMH0seyJpY29uIjp7InBhdGhzIjpbIk03NjggMjU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek00NDggMjU2YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2ek0xMjggNDQ4Yy01My4wMjAgMC05Ni00My05Ni05NnM0Mi45OC05NiA5Ni05NmM1My4wMjAgMCA5NiA0MyA5NiA5NnMtNDIuOTggOTYtOTYgOTZ6TTc2OCA1NzZjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZ6TTQ0OCA3NjhjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6TTEyOCA1NzZjNTMuMDIwIDAgOTYgNDMgOTYgOTZzLTQyLjk4IDk2LTk2IDk2Yy01My4wMjAgMC05Ni00My05Ni05NnM0Mi45OC05NiA5Ni05NnoiXSwid2lkdGgiOjg5NiwiYXR0cnMiOlt7fV0sImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbImdyaXAtZG90cy1zb2xpZCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjUxfSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjI5LCJpZCI6MjIsIm5hbWUiOiJncmlwLWRvdHMtc29saWQiLCJwcmV2U2l6ZSI6MzIsImNvZGUiOjU5NjUxfSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MTF9LHsiaWNvbiI6eyJwYXRocyI6WyJNMCAxOTJjMC01My4wMjAgNDIuOTgtOTYgOTYtOTZzOTYgNDIuOTggOTYgOTZjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6TTAgNTEyYzAtNTMgNDIuOTgtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6TTE5MiA4MzJjMCA1My00Mi45OCA5Ni05NiA5NnMtOTYtNDMtOTYtOTZjMC01MyA0Mi45OC05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMzIwIDE5MmMwLTUzLjAyMCA0My05NiA5Ni05NnM5NiA0Mi45OCA5NiA5NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NnpNNTEyIDUxMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2ek0zMjAgODMyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ6Il0sIndpZHRoIjo1MTIsImF0dHJzIjpbe31dLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwidGFncyI6WyJncmlwLWRvdHMtdmVydGljYWwtc29saWQiXSwiZ3JpZCI6MTYsImRlZmF1bHRDb2RlIjo1OTY1Mn0sImF0dHJzIjpbe31dLCJwcm9wZXJ0aWVzIjp7Im9yZGVyIjozMCwiaWQiOjIzLCJuYW1lIjoiZ3JpcC1kb3RzLXZlcnRpY2FsLXNvbGlkIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1Mn0sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjEyfSx7Imljb24iOnsicGF0aHMiOlsiTTIwNy40MjkgODc3LjcxNGw1Mi01Mi0xMzQuMjg2LTEzNC4yODYtNTIgNTJ2NjEuMTQzaDczLjE0M3Y3My4xNDNoNjEuMTQzek01MDYuMjg2IDM0Ny40MjljMC03LjQyOS01LjE0My0xMi41NzEtMTIuNTcxLTEyLjU3MS0zLjQyOSAwLTYuODU3IDEuMTQzLTkuNzE0IDRsLTMwOS43MTQgMzA5LjcxNGMtMi44NTcgMi44NTctNCA2LjI4Ni00IDkuNzE0IDAgNy40MjkgNS4xNDMgMTIuNTcxIDEyLjU3MSAxMi41NzEgMy40MjkgMCA2Ljg1Ny0xLjE0MyA5LjcxNC00bDMwOS43MTQtMzA5LjcxNGMyLjg1Ny0yLjg1NyA0LTYuMjg2IDQtOS43MTR6TTQ3NS40MjkgMjM3LjcxNGwyMzcuNzE0IDIzNy43MTQtNDc1LjQyOSA0NzUuNDI5aC0yMzcuNzE0di0yMzcuNzE0ek04NjUuNzE0IDI5Mi41NzFjMCAxOS40MjktOCAzOC4yODYtMjEuMTQzIDUxLjQyOWwtOTQuODU3IDk0Ljg1Ny0yMzcuNzE0LTIzNy43MTQgOTQuODU3LTk0LjI4NmMxMy4xNDMtMTMuNzE0IDMyLTIxLjcxNCA1MS40MjktMjEuNzE0czM4LjI4NiA4IDUyIDIxLjcxNGwxMzQuMjg2IDEzMy43MTRjMTMuMTQzIDEzLjcxNCAyMS4xNDMgMzIuNTcxIDIxLjE0MyA1MnoiXSwiYXR0cnMiOlt7fV0sIndpZHRoIjo4NjYsImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJ0YWdzIjpbInBlbmNpbCJdLCJncmlkIjoxNiwiZGVmYXVsdENvZGUiOjU5NjQ4fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjMxLCJpZCI6MjQsInByZXZTaXplIjozMiwibmFtZSI6InBlbmNpbCIsImNvZGUiOjU5NjU1fSwic2V0SWR4IjowLCJzZXRJZCI6MSwiaWNvbklkeCI6MTN9LHsiaWNvbiI6eyJwYXRocyI6WyJNNjIxLjIgNzIyLjhjMjUgMjUgMjUgNjUuNSAwIDkwLjUtMTIuNCAxMi41LTI4LjggMTguNy00NS4yIDE4LjdzLTMyLjc2LTYuMjUtNDUuMjQtMTguNzVsLTIxMC43Ni0yMTAuNjUtMjEwLjc0IDIxMC42Yy0xMi41IDEyLjYtMjguODggMTguOC00NS4yNiAxOC44cy0zMi43NC02LjItNDUuMjUtMTguOGMtMjUtMjUtMjUtNjUuNSAwLTkwLjVsMjEwLjgtMjEwLjgtMjEwLjgtMjEwLjdjLTI1LTI1LTI1LTY1LjUgMC05MC41czY1LjUtMjUgOTAuNSAwbDIxMC43NSAyMTAuOSAyMTAuOC0yMTAuOGMyNS0yNSA2NS41LTI1IDkwLjUgMHMyNSA2NS41IDAgOTAuNWwtMjEwLjggMjEwLjggMjEwLjcgMjEwLjd6Il0sImF0dHJzIjpbe31dLCJ3aWR0aCI6NjQwLCJpc011bHRpY29sb3IiOmZhbHNlLCJpc011bHRpY29sb3IyIjpmYWxzZSwiZ3JpZCI6MTYsInRhZ3MiOlsieG1hcmsiXSwiZGVmYXVsdENvZGUiOjU5NjU1fSwiYXR0cnMiOlt7fV0sInByb3BlcnRpZXMiOnsib3JkZXIiOjMyLCJpZCI6MjUsIm5hbWUiOiJ4bWFyayIsInByZXZTaXplIjozMiwiY29kZSI6NTk2NTZ9LCJzZXRJZHgiOjAsInNldElkIjoxLCJpY29uSWR4IjoxNH0seyJpY29uIjp7InBhdGhzIjpbIk04NzcuMiAyMTAuOGMyNSAyNSAyNSA2NS40IDAgOTAuNGwtNTEyIDUxMmMtMjUgMjUtNjUuNCAyNS05MC40IDBsLTI1Ni4wNTYtMjU2Yy0yNC45OTItMjUtMjQuOTkyLTY1LjQgMC05MC40IDI0Ljk5Ni0yNSA2NS41MTYtMjUgOTAuNTE2IDBsMjA4Ljk0IDIxMC42IDQ2OC42LTQ2Ni42YzI1LTI1LjA0MCA2NS40LTI1LjA0MCA5MC40IDB2MHoiXSwiYXR0cnMiOlt7fV0sIndpZHRoIjo4OTYsImlzTXVsdGljb2xvciI6ZmFsc2UsImlzTXVsdGljb2xvcjIiOmZhbHNlLCJncmlkIjoxNiwidGFncyI6WyJjaGVjayJdLCJkZWZhdWx0Q29kZSI6NTk2NTZ9LCJhdHRycyI6W3t9XSwicHJvcGVydGllcyI6eyJvcmRlciI6MzMsImlkIjoyNiwibmFtZSI6ImNoZWNrIiwicHJldlNpemUiOjMyLCJjb2RlIjo1OTY1N30sInNldElkeCI6MCwic2V0SWQiOjEsImljb25JZHgiOjE1fV0sImhlaWdodCI6MTAyNCwibWV0YWRhdGEiOnsibmFtZSI6Imljb21vb24ifSwicHJlZmVyZW5jZXMiOnsic2hvd0dseXBocyI6dHJ1ZSwic2hvd0NvZGVzIjp0cnVlLCJzaG93UXVpY2tVc2UiOnRydWUsInNob3dRdWlja1VzZTIiOnRydWUsInNob3dTVkdzIjp0cnVlLCJmb250UHJlZiI6eyJwcmVmaXgiOiJpY29uLSIsIm1ldGFkYXRhIjp7ImZvbnRGYW1pbHkiOiJpY29tb29uIn0sIm1ldHJpY3MiOnsiZW1TaXplIjoxMDI0LCJiYXNlbGluZSI6Ni4yNSwid2hpdGVzcGFjZSI6NTB9LCJlbWJlZCI6ZmFsc2V9LCJpbWFnZVByZWYiOnsicHJlZml4IjoiaWNvbi0iLCJwbmciOnRydWUsInVzZUNsYXNzU2VsZWN0b3IiOnRydWUsImNvbG9yIjowLCJiZ0NvbG9yIjoxNjc3NzIxNX0sImhpc3RvcnlTaXplIjo1MCwiZ3JpZFNpemUiOjE2fX0=]]></data>
	</file>
	<file>
	  <filename>/lib/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/js/importexport_admin.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gaW1wb3J0ZXhwb3J0X2FkbWluLmpzIC0gcHV0IGFsbCBhZG1pbiBqcyBpbiBoZXJlCgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCiAgICAkKCcuaW1wb3J0LWV4cG9ydCAjaW1wb3J0X2V4cG9ydF90eXBlJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewoKICAgICAgICBpZiAoICQodGhpcykudmFsKCk9PSQodGhpcykuZGF0YSgnY3VycmVudCcpKSB7CiAgICAgICAgICAgICQoJy5pbXBvcnQtZXhwb3J0LXNlY3Rpb24nKS5zaG93KCk7CiAgICAgICAgICAgICQoJy5pbXBvcnQtZXhwb3J0ICNjaGFuZ2UtdHlwZScpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSkKICAgICAgICAgICAgICAgIC5hZGRDbGFzcygndWktYnV0dG9uLWRpc2FibGVkIHVpLXN0YXRlLWRpc2FibGVkJyk7CgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICQoJy5pbXBvcnQtZXhwb3J0LXNlY3Rpb24nKS5oaWRlKCk7CiAgICAgICAgICAgICQoJy5pbXBvcnQtZXhwb3J0ICNjaGFuZ2UtdHlwZScpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpCiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3VpLWJ1dHRvbi1kaXNhYmxlZCwgdWktc3RhdGUtZGlzYWJsZWQnKTsKICAgICAgICB9CiAgICB9KTsKCgogICAgLy8gdXBkYXRlIGZpZWxkX21hcCBzb3VyY2Ugc2VsZWN0aW9uIAogICAgZnVuY3Rpb24gdXBkYXRlU291cmNlU2VsZWN0aW9uKCkgewogICAgICAgIHZhciAkc291cmNlRmllbGRzID0gJCgnLmltcG9ydC1leHBvcnQgLmZpZWxkX21hcF9pdGVtJyk7CiAgICAgICAgdmFyIGxpbWl0U2VsZWN0aW9uID0gJCgnLmltcG9ydC1leHBvcnQgI2xpbWl0X3NvdXJjZV9zZWxlY3Rpb24nKS5wcm9wKCdjaGVja2VkJyk7CiAgICAgICAgaWYgKGxpbWl0U2VsZWN0aW9uKSB7CiAgICAgICAgICAgIC8vIGdldCBhbGwgc2VsZWN0ZWQgZmllbGRzIHZhbHVlcwogICAgICAgICAgICB2YXIgc2VsZWN0ZWRGaWVsZHMgPSBbXTsKICAgICAgICAgICAgJHNvdXJjZUZpZWxkcy5maW5kKCdvcHRpb246c2VsZWN0ZWQnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYgKCQodGhpcykudmFsKCkhPScnKSBzZWxlY3RlZEZpZWxkcy5wdXNoKCQodGhpcykudmFsKCkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLy8gZGlzYWJsZSBzZWxlY3RlZCBmaWVsZHMgaW4gYWxsIG90aGVyIHNlbGVjdHMKICAgICAgICAgICAgJHNvdXJjZUZpZWxkcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gJCh0aGlzKS52YWwoKTsKICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnb3B0aW9uJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJC5pbkFycmF5KCQodGhpcykudmFsKCksIHNlbGVjdGVkRmllbGRzKSA+IC0xICYmIAogICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgpICE9IHNlbGVjdGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICB9IGVsc2UgeyAvLyBkbyBub3QgbGltaXQgc2VsZWN0aW9uCiAgICAgICAgICAgICRzb3VyY2VGaWVsZHMuZmluZCgnb3B0aW9uJykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7CiAgICAgICAgfQogICAgfQogICAgLy8gdXBkYXRlIHNvdXJjZSBzZWxlY3Rpb24gd2hlbiBsaW1pdF9zb3VyY2Vfc2VsZWN0aW9uIGlzIGNoYW5nZWQgb3IgYW55IHNvdXJjZSBmaWVsZCBpcyBjaGFuZ2VkCiAgICAkKCcuaW1wb3J0LWV4cG9ydCAjbGltaXRfc291cmNlX3NlbGVjdGlvbiwgLmltcG9ydC1leHBvcnQgLmZpZWxkX21hcF9pdGVtJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICB1cGRhdGVTb3VyY2VTZWxlY3Rpb24oKTsKICAgIH0pOwoKCiAgICAvLyBpbXAtZXhwLWNsZWFyLXNlbGVjdGlvbiBidXR0b24KICAgICQoJy5pbXBvcnQtZXhwb3J0IC5pbXAtZXhwLWNsZWFyLXNlbGVjdGlvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5maWVsZF9tYXBfaXRlbScpLnZhbCgnJyk7CiAgICAgICAgdXBkYXRlU291cmNlU2VsZWN0aW9uKCk7CiAgICB9KTsKCgoKICAgIC8vIEFqYXggUHJvY2Vzc2luZyAmIFByb2dyZXNzIEJhciBmb3IgSW1wb3J0L0V4cG9ydAogICAgaWYgKCQoJy5pbXBvcnQtZXhwb3J0IC5wcm9ncmVzcy1iYXInKS5sZW5ndGgpIHsKICAgICAgICBhamF4UHJvY2Vzc2luZygpOyAgIC8vIGF1dG9tYXRpY2FsbHkgc3RhcnQgd2hlbiB0aGUgcHJvZ3Jlc3MgYmFyIGlzIHByZXNlbnQKICAgIH0KICAgICQoJy5pbXBvcnQtZXhwb3J0ICNjYW5jZWxfYWpheC1jYW5jZWwnKS5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyICRpbXBfZXhwID0gJCgnLmltcG9ydC1leHBvcnQnKTsKICAgICAgICBpZiAoJGltcF9leHAuaGFzQ2xhc3MoJ2FqYXgtY2FuY2VsbGVkJykgfHwgJGltcF9leHAuaGFzQ2xhc3MoJ2ZhaWxlZCcpIHx8ICRpbXBfZXhwLmhhc0NsYXNzKCdjb21wbGV0ZWQnKSkgewogICAgICAgICAgICAkaW1wX2V4cC5yZW1vdmVDbGFzcygnYWpheC1jYW5jZWxsZWQnKTsKICAgICAgICAgICAgLy8gYWxsb3cgbm9ybWFsIGNhbmNlbCAtIHRvIGdvIGJhY2sgdG8gdGhlIHN0YXJ0CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAkaW1wX2V4cC5hZGRDbGFzcygnY2FuY2VsLWFqYXgnKTsKICAgICAgICB9CiAgICB9KTsKICAgIC8vIGdldCB0aGUgc2F2ZWQga2V5IGRhdGEgYW5kIHJlc3RhcnQgdGhlIHByb2Nlc3NpbmcgYXQgdGhlIGF0dGFjaG1lbnQgc3RhZ2UKICAgICQoJy5pbXBvcnQtZXhwb3J0ICNzdWJtaXRfcmV0cnlfYXR0YWNobWVudHMnKS5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciAkaW1wX2V4cCA9ICQoJy5pbXBvcnQtZXhwb3J0Jyk7CiAgICAgICAgdmFyIHJldHJ5X2RhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JldHJ5X2RhdGEnKSk7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0cnlfZGF0YScpOwogICAgICAgIGlmIChyZXRyeV9kYXRhKSB7CiAgICAgICAgICAgICRpbXBfZXhwLnJlbW92ZUNsYXNzKCdmYWlsZWQgY29tcGxldGVkJyk7CiAgICAgICAgICAgICRpbXBfZXhwLmZpbmQoJy5wYWdlZXJyb3Jjb250YWluZXIgLnBhZ2VlcnJvcicpLnJlbW92ZSgpOwogICAgICAgICAgICAkaW1wX2V4cC5maW5kKCcucGFnZWVycm9yY29udGFpbmVyJykuYWRkQ2xhc3MoJ2hpZGRlbicpOwogICAgICAgICAgICB1cGRhdGVNZXNzYWdlcygnUmV0cnlpbmcgYXR0YWNobWVudHMuLi4nKTsKICAgICAgICAgICAgYWpheFByb2Nlc3NpbmcocmV0cnlfZGF0YS5rZXksICdhdHRhY2htZW50Jyk7CiAgICAgICAgfQogICAgfSk7CgogICAgLy8gc3RhcnQgYWpheCBwcm9jZXNzaW5nCiAgICBmdW5jdGlvbiBhamF4UHJvY2Vzc2luZyhrZXksIHJldHJ5PW51bGwpIHsKICAgICAgICB2YXIgJHByb2dyZXNzX2JhciA9ICQoJy5pbXBvcnQtZXhwb3J0IC5wcm9ncmVzcy1iYXInKTsKICAgICAgICB2YXIgbWF4X3JlcGVhdF9wcm9ncmVzcyA9IDEwOyAgIC8vIGlmIG5vIHByb2dyZXNzIGZvciB4IGl0ZXJhdGlvbnMsIHN0b3AKICAgICAgICB2YXIga2V5ID0ga2V5ID8ga2V5IDogJHByb2dyZXNzX2Jhci5kYXRhKCdrZXknKTsgLy8gaWYga2V5IHVuZGVmaW5lZCBvciBudWxsLCBnZXQgZnJvbSBkYXRhIGF0dHJpYnV0ZQogICAgICAgIHZhciBhamF4X2RhdGEgPSB7ICdrZXknOiBrZXkgfTsKICAgICAgICBpZiAocmV0cnkpIGFqYXhfZGF0YVsncmV0cnknXSA9IHJldHJ5OwogICAgICAgICQuYWpheCh7CiAgICAgICAgICAgIHVybDogJHByb2dyZXNzX2Jhci5kYXRhKCdhY3RpdmF0ZS11cmwnKSwKICAgICAgICAgICAgZGF0YVR5cGU6ICJqc29uIiwKICAgICAgICAgICAgZGF0YTogYWpheF9kYXRhLAogICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICBpZiAoIGRhdGE9PW51bGwgfHwgZGF0YS5zdGF0dXM9PW51bGwgfHwgZGF0YS5zdGF0dXM9PSdlcnJvcicgKSB7CiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRXJyb3JzKCdQcm9jZXNzaW5nIGVycm9yIG9jY3VycmVkLicpOwogICAgICAgICAgICAgICAgICAgICQoJy5pbXBvcnQtZXhwb3J0JykuYWRkQ2xhc3MoJ2ZhaWxlZCcpOwoKCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHZhciAkaW1wX2V4cCA9ICQoJy5pbXBvcnQtZXhwb3J0Jyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcGVhdF9wcm9ncmVzcyA9IHBhcnNlSW50KHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3JlcGVhdF9wcm9ncmVzcycpKSA/PyAwOwogICAgICAgICAgICAgICAgICAgIHZhciBwcmV2aW91c19wcm9ncmVzcyA9IHBhcnNlSW50KHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3Byb2dyZXNzJykpID8/IDA7CiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUHJvZ3Jlc3NCYXIoZGF0YS5wcm9ncmVzcyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubWVzc2FnZXMgJiYgZGF0YS5tZXNzYWdlcy5sZW5ndGgpIHVwZGF0ZU1lc3NhZ2VzKGRhdGEubWVzc2FnZXMpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmVycm9ycyAmJiBkYXRhLmVycm9ycy5sZW5ndGgpIHVwZGF0ZUVycm9ycyhkYXRhLmVycm9ycyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZmVlZGJhY2sgJiYgT2JqZWN0LmtleXMoZGF0YS5mZWVkYmFjaykubGVuZ3RoKSB1cGRhdGVGZWVkYmFjayhkYXRhLmZlZWRiYWNrKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzIT0nY29tcGxldGVkJykgeyAgICAgLy8gY29udGludWUgcHJvY2Vzc2luZwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGltcF9leHAuaGFzQ2xhc3MoJ2NhbmNlbC1hamF4JykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBfZXhwLnJlbW92ZUNsYXNzKCdjYW5jZWwtYWpheCcpLmFkZENsYXNzKCdhamF4LWNhbmNlbGxlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRXJyb3JzKCdQcm9jZXNzaW5nIGNhbmNlbGxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnByb2dyZXNzID09IHByZXZpb3VzX3Byb2dyZXNzICYmIHJlcGVhdF9wcm9ncmVzcyA+PSBtYXhfcmVwZWF0X3Byb2dyZXNzKSB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRXJyb3JzKCdObyBwcm9ncmVzcyAtIGFmdGVyICcrbWF4X3JlcGVhdF9wcm9ncmVzcysnIGl0ZXJhdGlvbnMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgIC8vIGNvbnRpbnVlIHByb2Nlc3NpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdF9wcm9ncmVzcyA9IChkYXRhLnByb2dyZXNzID09IHByZXZpb3VzX3Byb2dyZXNzKSA/IHJlcGVhdF9wcm9ncmVzcysxIDogMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3JlcGVhdF9wcm9ncmVzcycsIHJlcGVhdF9wcm9ncmVzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4UHJvY2Vzc2luZyhkYXRhLmtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzPT0nY29tcGxldGVkJykgewogICAgICAgICAgICAgICAgICAgICAgICAkaW1wX2V4cC5hZGRDbGFzcygnY29tcGxldGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggKGRhdGEuZmVlZGJhY2s/LlsnZmlsZS1lcnJvci1jb3VudCddID8/IDApID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNzdWJtaXRfcmV0cnlfYXR0YWNobWVudHMnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdyZXRyeV9kYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNjYW5jZWxfYWpheC1jYW5jZWwnKS5hZGRDbGFzcygnaGlkZGVuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNzdWJtaXRfY29tcGxldGVkJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKCBqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24gKSB7CiAgICAgICAgICAgICAgICB1cGRhdGVFcnJvcnMoJ1Byb2Nlc3NpbmcgZXJyb3Igb2NjdXJyZWQgKCcrdGV4dFN0YXR1cysnKSAtICcrZXJyb3JUaHJvd24pOwogICAgICAgICAgICAgICAgJCgnLmltcG9ydC1leHBvcnQnKS5hZGRDbGFzcygnZmFpbGVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAkKCcjY2FuY2VsX2FqYXgtY2FuY2VsJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOwogICAgICAgICQoJyNzdWJtaXRfcmV0cnlfYXR0YWNobWVudHMsICNzdWJtaXRfY29tcGxldGVkJykuYWRkQ2xhc3MoJ2hpZGRlbicpOwogICAgfQoKICAgIC8vIHVwZGF0ZSBwcm9ncmVzcyBiYXIgLSB3aXRoIGVpdGhlciBwZXJjZW50YWdlIG9yIHRleHQgJiBzYXZlIGluIHNlc3Npb24KICAgIGZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzQmFyKHByb2dyZXNzKSB7CiAgICAgICAgdmFyICRwcm9ncmVzc19iYXIgPSAkKCcuaW1wb3J0LWV4cG9ydCAucHJvZ3Jlc3MtYmFyJyk7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncHJvZ3Jlc3MnLCBwcm9ncmVzcyk7ICAgLy8gc2F2ZSBmb3IgbmV4dCBpdGVyYXRpb24gKGluaXRlZ2VyKQogICAgICAgIGlmIChwcm9ncmVzcyA9PSBwYXJzZUludChwcm9ncmVzcykpIHByb2dyZXNzID0gcHJvZ3Jlc3MgKyAnJSc7CiAgICAgICAgJHByb2dyZXNzX2Jhci5jc3MoJ3dpZHRoJywgcHJvZ3Jlc3MpCiAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdhcmlhLXZhbHVlbm93JywgcHJvZ3Jlc3MpCiAgICAgICAgICAgICAgICAgICAgIC5odG1sKHByb2dyZXNzKTsKICAgICAgICBpZiAocHJvZ3Jlc3MgPT0gIjEwMCUiKSB7CiAgICAgICAgICAgICRwcm9ncmVzc19iYXIucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpLmFkZENsYXNzKCdkb25lJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIHVwZGF0ZU1lc3NhZ2VzIC0gCiAgICBmdW5jdGlvbiB1cGRhdGVNZXNzYWdlcyhtZXNzYWdlcykgeyAgLy8gY2FuIGJlIHN0cmluZyBvciBhcnJheSBvZiBzdHJpbmdzCiAgICAgICAgdmFyICRtZXNzYWdlX2NvbnRhaW5lciA9ICQoJy5pbXBvcnQtZXhwb3J0IC5wYWdlbWNvbnRhaW5lcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsKICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2VzPT0nc3RyaW5nJykgbWVzc2FnZXMgPSBbbWVzc2FnZXNdOwogICAgICAgIGZvciAodmFyIGk9MDsgaTxtZXNzYWdlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAkbWVzc2FnZV9jb250YWluZXIuYXBwZW5kKCc8cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicrbWVzc2FnZXNbaV0rJzwvcD4nKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gdXBkYXRlRXJyb3JzCiAgICBmdW5jdGlvbiB1cGRhdGVFcnJvcnMoZXJyb3JzKSB7ICAvLyBjYW4gYmUgc3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MKICAgICAgICB2YXIgJGVycm9yX2NvbnRhaW5lciA9ICQoJy5pbXBvcnQtZXhwb3J0IC5wYWdlZXJyb3Jjb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7CiAgICAgICAgaWYgKHR5cGVvZiBlcnJvcnM9PSdzdHJpbmcnKSBlcnJvcnMgPSBbZXJyb3JzXTsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8ZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICRlcnJvcl9jb250YWluZXIuYXBwZW5kKCc8cCBjbGFzcz0icGFnZWVycm9yIj4nK2Vycm9yc1tpXSsnPC9wPicpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB1cGRhdGVGZWVkYmFjayBmZWVkYmFjayBpcyBhbiBvYmplY3Qgb2YgZmVlZGJhY2tDbGFzcyA9PiBkYXRhCiAgICAvLyAgLSBmZWVkYmFjayBlbGVtZW50cyBzaG91bGQgaGF2ZSBjbGFzcyAkKCcuaW1wb3J0LWV4cG9ydCAuZmVlZGJhY2suZmVlZGJhY2tDbGFzcycpCiAgICBmdW5jdGlvbiB1cGRhdGVGZWVkYmFjayhmZWVkYmFjaykgewogICAgICAgIGZvciAodmFyIGZlZWRiYWNrQ2xhc3MgaW4gZmVlZGJhY2spIHsKICAgICAgICAgICAgdmFyICRmZWVkYmFja0VsZW1lbnQgPSAkKCcuaW1wb3J0LWV4cG9ydCAuZmVlZGJhY2suJytmZWVkYmFja0NsYXNzKS5sYXN0KCk7CiAgICAgICAgICAgIGlmICgkZmVlZGJhY2tFbGVtZW50Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgJGZlZWRiYWNrRWxlbWVudC5odG1sKGZlZWRiYWNrW2ZlZWRiYWNrQ2xhc3NdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgCgp9KTs=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJJbXBvcnRFeHBvcnQiCnZlcnNpb24gPSAxLjEKYXV0aG9yID0gIktpd2lDaHJpcyIKYXV0aG9yZW1haWwgPSAiY2hyaXNAYmlubm92YXRpdmUuY28udWsiCm1pbmNtc3ZlcnNpb24gPSAyLjIKbGF6eWxvYWRhZG1pbiA9IDAKbGF6eWxvYWRmcm9udGVuZCA9IDAK]]></data>
	</file>
	<file>
	  <filename>/readme.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0ibW9kdWxlLWhlbHAtd3JhcHBlciI+Cgo8cD5UaGlzIENNUyBNYWRlIFNpbXBsZSBtb2R1bGUsIHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IHRvIEltcG9ydCAmIEV4cG9ydCBjb250ZW50IHRvICYgZnJvbSBDTVNNUzo8L3A+Cjx1bD4KICAgIDxsaT5JbXBvcnQgV29yZHByZXNzIFBvc3RzIHRvIGEgTElTRSBpbnN0YW5jZTwvbGk+CiAgICA8bGk+VHJhbnNmZXIgTmV3cyB0byBhIExJU0UgSW5zdGFuY2UgLSBpbiBkZXZlbG9wbWVudDwvbGk+CiAgICA8bGk+Q0dCbG9nIHRvIGEgTElTRSBJbnN0YW5jZSAtIGluIGRldmVsb3BtZW50PC9saT4KICAgIDxsaT5JbXBvcnQgV29yZHByZXNzIFBhZ2VzIHRvIENvbnRlbnQgTWFuYWdlciAtIGluIGRldmVsb3BtZW50PC9saT4KICAgIDxsaT4uLi48L2xpPgogICAgPGxpPi4uLiBwbGVhc2UgY29udGFjdCBtZSBpZiB5b3UgaGF2ZSBvdGhlciByZXF1aXJlbWVudHMgZm9yIGltcG9ydC9leHBvcnQgb2YgY29udGVudC4gU3BvbnNvcnNoaXAgd2VsY29tZS48L2xpPgo8L3VsPgo8cD5UaGlzIG1vZHVsZSBpcyBpbnRlbnRlZCB0byBiZSBpbnN0YWxsZWQgd2hlbiBhbiBpbXBvcnQgb3IgZXhwb3J0IGlzIHJlcXVpcmVkIGFuZCB0aGVuIHVuaW5zdGFsbGVkLjwvcD4gCgoKPGgzPlJlcXVpcmVtZW50czwvaDM+CjxwPjxiPmZvcGVuPC9iPiAtIHNob3VsZCBiZSBlbmFibGVkLiBJZiBmb3BlbiBpcyBkaXNhYmxlZCBhIHdhcm5pbmcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwgYW5kIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBsaW1pdGVkLiBUaGUgbW9kdWxlIHdpbGwgbm90IGJlIGFibGUgdG8gaW1wb3J0IGFueSByZW1vdGUgaW1hZ2VzIG9yIGF0dGFjaG1lbnRzLlRvIGVuYWJsZSBmb3BlbiBpbiBQSFAsIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGRpc2FibGVfZnVuY3Rpb25zIGRpcmVjdGl2ZSBpbiB5b3VyIHBocC5pbmkgY29uZmlndXJhdGlvbiBmaWxlLCBhbmQgcmVzdGFydCB0aGUgc2VydmVyLjwvcD4KCgo8aDM+UGVybWlzc2lvbnM8L2gzPgo8cD5Pbmx5ICdhZG1pbicgdXNlcnMgY2FuIGFjY2VzcyBhbmQgdXNlIHRoaXMgbW9kdWxlLjwvcD4KCgo8aDM+VXNlPC9oMz4KPG9sPgogICAgPGxpPkdvIHRvIHRoZSBJbXBvcnQgRXhwb3J0IGFkbWluIHBhZ2UgYW5kIHNlbGVjdCB0aGUgSW1wb3J0IEV4cG9ydCBUeXBlLjwvbGk+CiAgICA8bGk+Q29tcGxldGUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb24gMSBvciBtb3JlIHBhZ2VzPC9saT4KICAgIDxsaT5XaGVuIHRoZSBpbXBvcnQgaXMgc3RhcnRlZCwgYSBwcm9ncmVzcyBiYXIgcHJvdmlkZXMgZmVlZGJhY2sgYW5kIHRoZSBpbXBvcnQgY2FuIGJlIGNhbmNlbGxlZC48L2xpPgogICAgPGxpPklmIGZpbGVzIGFyZSBiZWluZyByZXRyaWV2ZWQgZnJvbSBhIHJlbW90ZSBsb2NhdGlvbiBlLmcuIGltYWdlcywgdGhpcyBjb3VsZCBiZSBzbG93IGFuZCB0aGUgaW1wb3J0IG9mIGltYWdlcyBtYXkgbmVlZCB0byBiZSByZXBlYXRlZCBhIGZldyB0aW1lcyB0byBzdWNjZXNzZnVsbHkgcmV0cmlldmUgdGhlbSBmcm9tIHRoZSBzZXJ2ZXIuPC9saT4KPC9vbD4KCgo8aDM+SW1wb3J0IFdvcmRwcmVzcyBQb3N0cyB0byBhIExJU0UgaW5zdGFuY2U8L2gzPgo8cD5JbiBXb3JkcHJlc3MgZ28gdG8gVG9vbHMgPiBFeHBvcnQsIGFuZCBjaG9vc2UgUG9zdHMuPC9wPgo8cD5JbiBDTVNNUyBnbyB0byB0aGUgSW1wb3J0IEV4cG9ydCBhZG1pbiBwYWdlOgogICAgPG9sPgogICAgICAgIDxsaT5TZWxlY3QgLSB0aGUgV29yZFByZXNzIFhNTCB0byB1cGxvYWQsIGFuZCB0aGUgTElTRSBJbnN0YW5jZSB0byBpbXBvcnQgdG8gdGhhdCBzaG91bGQgYWxyZWFkeSBoYXZlIGFsbCByZXF1aXJlZCBmaWVsZHMgY3JlYXRlZC48L2xpPgogICAgICAgIDxsaT5Db25maWd1cmF0aW9uIC0gc2VsZWN0IGFsbCB0aGUgcmVxdWlyZWQgb3B0aW9uczoKICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPlNlbGVjdCB0aGUgV29yZHByZXNzIGZpZWxkIHRvIG1hcCB0byBlYWNoIExJU0UgZmllbGQ8YnI+CiAgICAgICAgICAgICAgICBOb3RlOiBpZiB0aGUgV29yZHByZXNzIFBvc3RzIGluY2x1ZGVkIGF0dGFjaG1lbnRzIC0gY3JlYXRlIGEgTElTRSB0ZXh0IGlucHV0IGZpZWxkLCBlLmcuIG1heCBsZW5ndGggMTAwMCBhbmQgbWFwIHRoZSAnd3BfYXR0YWNobWVudHMnIHRvIHRoYXQuPC9saT4KICAgICAgICAgICAgICAgIDxsaT5EZWxldGUgYWxsIExJU0UgaXRlbXMgYmVmb3JlIGltcG9ydCAtIFJlY29tbWVuZGVkOiB0aGF0IHlvdSB1c2UgYW4gZW1wdHkgTElTRSBpbnN0YW5jZSB0byBpbXBvcnQgdG8uIEFsc28gbWFrZXMgaXQgc2ltcGxlIHRvIHJlcGVhdCB0aGUgaW1wb3J0IGlmIHJlcXVpcmVkLgogICAgICAgICAgICAgICAgPGxpPkF1dG8gY3JlYXRlIGNhdGVnb3JpZXMgLSB3aWxsIGNyZWF0ZSBhbnkgbmV3IGNhdGVnb3JpZXMgaW4gTElTRSB0aGF0IHdlcmUgdXNlZCBpbiBXb3JkcHJlc3M8L2xpPgogICAgICAgICAgICAgICAgPGxpPlNvdXJjZSBiYXNlIFVSTChzKSAtIHdpbGwgYXV0b21hdGljYWxseSB1c2UgdGhlIHVybCB0aGF0IHRoZSBYTUwgZmlsZSB3YXMgY3JlYXRlZCBmcm9tLCBwbHVzIGlmIHJlcXVpcmVkIHlvdSBjYW4gc2V0IGFkZGl0aW9uYWwgdXJscywgZS5nLiBhIHRlbXBvcmFyeSBzaXRlIGxvY2F0aW9uIHRoYXQgYWxzbyBpbmNsdWRlcyBpbWFnZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPkRlZmF1bHQgT3duZXIgLSB0aGUgb3duZXIgb2YgdGhlIG5ldyBMSVNFIGl0ZW1zIHdpbGwgYmUgc2V0IHRvIHRoaXMgaWYgdGhlIENNU01TIGVxdWl2YWxlbnQgVXNlciBmb3IgdGhlIFdvcmRwcmVzcyBhdXRob3IgaXMgbm90IGZvdW5kLiA8L2xpPgogICAgICAgICAgICAgICAgPGxpPlVwbG9hZHMgbG9jYXRpb24gLSBvcHRpb25hbGx5IHNwZWNpZmMgYSBzdWItZGlyZWN0b3J5IG9mIC91cGxvYWRzLyB0byBjb3B5IGFueSByZWZlcmVuY2VkIGltYWdlcyBpbnRvLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+SW1wb3J0CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5Db250ZW50IGZyb20gYWxsIHBvc3RzIGlzIGltcG9ydGVkIGZpcnN0PC9saT4KICAgICAgICAgICAgICAgIDxsaT5UaGVuIGFsbCBhdHRhY2htZW50cyBhcmUgYXR0ZW1wdGVkIHRvIGJlIHJldHJpZXZlZCBhbmQgc2F2ZWQgaW4gdGhlIHVwbG9hZHMgc3ViLWRpcmVjdG9yeTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+QWxsIHRleHQgYXJlYXMgYXJlIHNjYW5uZWQgYW5kIGFueSBpbmxpbmUgaW1hZ2VzIGFyZSBpbXBvcnRlZCBpbnRvIHRoZSB1cGxvYWRzIHN1Yi1kaXJlY3RvcnksIHdpdGggdGhlIGltZyBzcmMgc2V0IHRvIHRoZSBuZXcgcmVsYXRpdmUgbG9jYXRpb24uPC9saT4KICAgICAgICAgICAgICAgIDxsaT5JZiBhbnkgZmlsZXMgY2Fubm90IGJlIGxvY2F0ZWQsIHRoZSBmaWxlL2ltYWdlIGltcG9ydCBjYW4gYmUgcmVwZWF0ZWQuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT5Db21wbGV0ZWQgLSBhbGwgZG9uZSA6KTwvbGk+CiAgICA8L29sPgo8L3A+CgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCBsaWNlbmNlLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzIGlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci4gVGhlIG1vZHVsZSBhdXRob3IgaXMgbm90IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZS4gSG93ZXZlciB5b3UgbWlnaHQgZ2V0IHN1cHBvcnQgdGhyb3VnaCB0aGUgZm9sbG93aW5nOjwvcD4KPHVsPgogICAgPGxpPkZvciBzdXBwb3J0LCBmaXJzdCA8c3Ryb25nPnNlYXJjaDwvc3Ryb25nPiB0aGUgPGEgaHJlZj0iLy9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtPC9hPiwgZm9yIGlzc3VlcyB3aXRoIHRoZSBtb2R1bGUgc2ltaWxhciB0byB0aG9zZSB5b3UgYXJlIGZpbmRpbmcuPC9saT4KICAgIDxsaT5UaGVuLCBpZiBuZWNlc3NhcnksIG9wZW4gYSA8c3Ryb25nPm5ldyBmb3J1bSB0b3BpYzwvc3Ryb25nPiB0byByZXF1ZXN0IGhlbHAsIHdpdGggYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0LjwvbGk+CiAgICA8bGk+QXNrIGEgcXVlc3Rpb24gb24gdGhlIDxhIGhyZWY9Ii8vY21zLW1hZGUtc2ltcGxlLnNsYWNrLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPkNNUyBNYWRlIFNpbXBsZSBTbGFjayBjaGFubmVsPC9hPiwgb3IganVzdCBzaGFyZSB5b3UgdGhvdWdodHMgaWYgeW91IGZvdW5kIHRoZSBNb2R1bGUgdXNlZnVsLiA8YSBocmVmPSIvL3d3dy5jbXNtYWRlc2ltcGxlLm9yZy9zdXBwb3J0L2RvY3VtZW50YXRpb24vY2hhdCIgdGFyZ2V0PSJfYmxhbmsiPkpvaW4gQ01TTVMgb24gU2xhY2s8L2E+PC9saT4KICAgIDxsaT5JZiB5b3UgZmluZCBhIGJ1ZyB5b3UgY2FuIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvYnVnL2xpc3QvMTUwNiIgdGFyZ2V0PSJfYmxhbmsiPnN1Ym1pdCBhIEJ1ZyBSZXBvcnQ8L2E+LjwvbGk+CiAgICA8bGk+Rm9yIGFueSBnb29kIGlkZWFzIHlvdSBjYW4gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9mZWF0dXJlX3JlcXVlc3QvbGlzdC8xNTA2IiB0YXJnZXQ9Il9ibGFuayI+c3VibWl0IGEgRmVhdHVyZSBSZXF1ZXN0PC9hPi48L2xpPgo8L3VsPgoKCgo8aDM+Q29weXJpZ2h0ICZhbXA7IExpY2VuY2U8L2gzPgo8cD5Db3B5cmlnaHQgwqkgMjAyNCwgQ2hyaXMgVGF5bG9yIDwgY2hyaXMgYXQgYmlubm92YXRpdmUgZG90IGNvIGRvdCB1ayA+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Ij5HTlUgUHVibGljIExpY2Vuc2UgdjM8L2E+LjwvcD4KCjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19qcXVlcnl9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KdmFyIHByb2dyZXNzX21heCA9IDEwMDsKdmFyIHByb2dyZXNzX3ZhbCA9IDA7CmZ1bmN0aW9uIHByb2dyZXNzX3Jlc2V0KCkgewogIHByb2dyZXNzX21heCA9IDEwMDsKICBwcm9ncmVzc192YWwgPSAwOwogICQoJyNwcm9ncmVzcycpLndpZHRoKDApOwp9CgpmdW5jdGlvbiBwcm9ncmVzc190b3RhbChudW0pIHsKICBwcm9ncmVzc19tYXggPSBudW07Cn0KCmZ1bmN0aW9uIHByb2dyZXNzKG51bV9zdGVwcykgewogIHByb2dyZXNzX3ZhbCA9IHByb2dyZXNzX3ZhbCArIG51bV9zdGVwczsKICB2YXIgdyA9IDAsdCA9IDA7CiAgaWYoIHByb2dyZXNzX21heCA+IDAgKSB7CiAgICB0ID0gcHJvZ3Jlc3NfdmFsIC8gcHJvZ3Jlc3NfbWF4ICogMTAwOwogICAgdyA9IE1hdGgucm91bmQoIHQgKTsKICB9CiAgJCgnI3Byb2dyZXNzJykud2lkdGgodysnJScpOwp9CgpmdW5jdGlvbiBlcnJvcihtc2cpIHsKICAkKCcjc3RhdHVzX2FyZWEnKS5hcHBlbmQoJzxwIGNsYXNzPSJlcnJvcm1zZyI+Jyttc2crJzwvcD4nKTsKfQoKZnVuY3Rpb24gc3RhdHVzKG1zZykgewogICQoJyNzdGF0dXNfYXJlYScpLmFwcGVuZCgnPHA+Jyttc2crJzwvcD4nKTsKfQoKZnVuY3Rpb24gc3RhdChrZXksdmFsKQp7CiAgJCgnI2xlZ2VuZCcpLnNob3coKS5hcHBlbmQoJzx0cj48dGQ+JytrZXkrJzwvdGQ+PHRkPicrdmFsKyc8L3RkPjwvdHI+Jyk7Cn0KCjwvc2NyaXB0PgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KZGl2Lm1ldGVyIHsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWFyZ2luLWJvdHRvbTogMS41ZW07CiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBoZWlnaHQ6IDJlbTsKICBjb2xvcjogeWVsbG93Owp9CnNwYW4jcHJvZ3Jlc3MgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6IGN5YW47CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCmRpdiNzdGF0dXNfYXJlYSB7CiAgbWFyZ2luLXRvcDogMWVtOwogIG1hcmdpbi1sZWZ0OiAyZW07CiAgbWFyZ2luLXJpZ2h0OiAyZW07Cn0KcC5lcnJvcm1zZyB7CiAgYmFja2dyb3VuZC1jb2xvcjogcGluazsKICBib3JkZXI6IDFweCBzb2xpZCBncmF5OwogIHBhZGRpbmctbGVmdDogMC41ZW07CiAgcGFkZGluZy10b3A6IDAuMjVlbTsKICBwYWRkaW5nLWJvdHRvbTogMC4yNWVtOwp9CnRhYmxlLnBhZ2V0YWJsZSB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1ib3R0b206IDEuNWVtOwp9CnRhYmxlLnBhZ2V0YWJsZSA+IGNhcHRpb24gewogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICBmb250LXdlaWdodDogYm9sZDsKfQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0ibWV0ZXIiPgogIDxzcGFuIGlkPSJwcm9ncmVzcyI+PC9zcGFuPgo8L2Rpdj4KCjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBpZD0ibGVnZW5kIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxjYXB0aW9uPlN0YXRpc3RpY3M8L2NhcHRpb24+CjwvdGFibGU+Cgo8ZGl2IGlkPSJzdGF0dXNfYXJlYSI+CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_main.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzIGNsYXNzPSJjZW50ZXIiPnskbW9kLT5MYW5nKCd0aXRsZV9pbXBvcnQnKX06PC9oMz4KCjxpZnJhbWUgc3R5bGU9IndpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiAzMGVtOyBvdmVyZmxvdy14OiBoaWRkZW47IG92ZXJmbG93LXk6IGF1dG8iIHNyYz0ieyRhZG1pbl9pbXBvcnRfdXJsfSI+PC9pZnJhbWU+]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogSW1wb3J0RXhwb3J0IGNoYW5nZWxvZy50cGwgKn0KCjxoMz5WZXJzaW9uIDEuMSAtIDI4Tm92MjQ8L2gzPgo8dWw+CiAgICA8bGk+YnVnIGZpeCAtIGJldHRlciBjaGVja2luZyBmb3IgdXNlciBiZWluZyBtZW1iZXIgb2YgYWRtaW4gZ3JvdXA8L2xpPgogICAgPGxpPmJ1ZyBmaXggLSBwYXJzaW5nIG9mIHRleHRhcmVhcyB0aWRpZWQgdXAgLSBpbXBvcnRhbnQ8L2xpPgo8L3VsPgo8YnI+CgoKPGgzPlZlcnNpb24gMS4wIC0gMjZOb3YyNDwvaDM+Cjx1bD4KICAgIDxsaT5pbml0aWFsIHJlbGVhc2U8L2xpPgogICAgPGxpPnByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IHRvIEltcG9ydCAmIEV4cG9ydCBjb250ZW50IHRvICYgZnJvbSBDTVNNUzwvbGk+CiAgICA8bGk+aW5pdGlhbGx5IGNhbiBpbXBvcnQgSW1wb3J0IFdvcmRwcmVzcyBQb3N0cyB0byBhIExJU0UgaW5zdGFuY2U8L2xpPgogICAgPGxpPmZ1dHVyZSByZWxlYXNlcyB0byBpbmNsdWRlOiBUcmFuc2ZlciBOZXdzIHRvIGEgTElTRSBJbnN0YW5jZSwgQ0dCbG9nIHRvIGEgTElTRSBJbnN0YW5jZSwgSW1wb3J0IFdvcmRwcmVzcyBQYWdlcyB0byBDb250ZW50IE1hbmFnZXIsIG90aGVycyBhcyByZXF1aXJlZC4uLjwvbGk+CjwvdWw+Cjxicj4=]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdGFkbWluLnRwbCAtIHYxLjAgLSAxME9jdDI0IAoKICAgIFRoaXMgdGVtcGxhdGUgc2hvdWxkIGJlIGV4dGVuZGVkIGJ5IGNoaWxkIGltcG9ydC9leHBvcnQgdGVtcGxhdGVzCip9CgoKeyogIGZ1bmN0aW9uIEltcEV4cF9yZW5kZXJfZmllbGQKICAgIFVzZWQgdG8gb3V0cHV0IGEgc3RhbmRhcmQgaHRtbCB3cmFwcGVyIGFuZCBpbnB1dCBmb3IgYW4gYWRtaW4gcGFnZS4gCiAgICBBbHRlcm5hdGl2ZWx5IGp1c3QgY3JlYXRlIGEgeW91ciBvd24gaHRtbCB3aXRoIGlucHV0IGlmIHNvbWV0aGluZyBtb3JlIGN1c3RvbSBpcyByZXF1aXJlZAoKICAgIEBwYXJhbSBzdHJpbmcgJGZpZWxkbmFtZSAocmVxdWlyZWQpIC0gcGFyYW1ldGVyIG5hbWUsIGV4Y2x1ZGluZyB0aGUgJGFjdGlvbmlkIHByZWZpeAogICAgQHBhcmFtIHN0cmluZyAkdmFsdWUgLSBwYXJhbWV0ZXIgdmFsdWUKICAgIEBwYXJhbSBzdHJpbmcgJGlucHV0dHlwZSAtIHRleHQsIHRleHRhcmVhLCBzZWxlY3QsIGNoZWNrYm94LCBmaWxlX3htbCwgc3VibWl0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWwrc3VibWl0LCBmaWVsZF9tYXAKICAgIEBwYXJhbSBzdHJpbmcgJGxhYmVsIC0gbGFiZWwgdGV4dAogICAgQHBhcmFtIGJvb2xlYW4gJHJlcXVpcmVkIC0gd2hldGhlciB0aGUgZmllbGQgaXMgcmVxdWlyZWQKICAgIEBwYXJhbSBhcnJheSAkb3B0aW9ucyAtIGFycmF5IG9mIG9wdGlvbnMgZm9yIHNlbGVjdCBvciBjaGVja2JveAogICAgQHBhcmFtIGludGVnZXIgJHNpemUgLSBzaXplIG9mIGlucHV0IGZpZWxkCiAgICBAcGFyYW0gaW50ZWdlciAkcm93cyAtIG51bWJlciBvZiByb3dzIGZvciB0ZXh0YXJlYQogICAgQHBhcmFtIHN0cmluZyAkZGl2Y2xhc3MgLSBjbGFzcyBuYW1lIGZvciB0aGUgZGl2CiAgICBAcGFyYW0gc3RyaW5nICRhZGRjbGFzcyAtIGFkZGl0aW9uYWwgY2xhc3MgZm9yIHRoZSBpbnB1dCB0YWcvYnV0dG9uICAgIAogICAgQHBhcmFtIHN0cmluZyAkaW5wdXRwcm9wZXJ0aWVzIC0gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciB0aGUgaW5wdXQgdGFnCiAgICBAcGFyYW0gc3RyaW5nICR1aWljb24gKG9wdGlvbmFsKSAtIGljb24gZm9yIHRoZSBzdWJtaXQgYnV0dG9uLCBleGNsdWRlIHByZWZpeCAndWktaWNvbi0nCiAgICBAcGFyYW0gc3RyaW5nICRpbmxpbmUgLSAob3B0aW9uYWwpIG91dHB1dCBkaXYgY29udGFpbmVyIHN0YXJ0ICYgZW5kLCB0byBpbmxpbmUgbXVsdGlwbGUgaW5wdXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgLSBub3Qgc2V0IChkZWZhdWx0IC0gbm90IGlubGluZSksIGlubGluZV9zdGFydCwgaW5saW5lX2VuZCwgaW5saW5lIAogICAgICAgICAgICAgICAgICAgICAgICBzZWU6IGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS90aGVtaW5nL2ljb25zLwoqfQp7ZnVuY3Rpb24gbmFtZT1JbXBFeHBfcmVuZGVyX2ZpZWxkIG9wdGlvbj0nJ30KICAgIHskaW5wdXRjbGFzcz0kb3B0aW9uLT5hZGRjbGFzc3xkZWZhdWx0OicnfQogICAge2lmICRvcHRpb24tPnJlcXVpcmVkfXskaW5wdXRjbGFzcz0iJGlucHV0Y2xhc3MgcmVxdWlyZWQifXsvaWZ9CiAgICB7aWYgZW1wdHkoJG9wdGlvbi0+aW5saW5lKSB8fCAkb3B0aW9uLT5pbmxpbmU9PSdpbmxpbmVfc3RhcnQnfQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyB7JG9wdGlvbi0+ZGl2Y2xhc3N9Ij4KICAgICAgICB7aWYgIWluX2FycmF5KCRvcHRpb24tPmlucHV0dHlwZSwgWydjaGVja2JveCcsJ3N1Ym1pdCcsJ2NhbmNlbCddKX0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvcHRpb24tPmxhYmVsfXtpZiAkb3B0aW9uLT5yZXF1aXJlZH0qey9pZn06PC9wPgogICAgICAgIHsvaWZ9CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgey9pZn0gICAgCgogICAge2lmICRvcHRpb24tPmlucHV0dHlwZT09J3RleHQnfQogICAgICAgICAgICA8aW5wdXQgaWQ9Inskb3B0aW9uLT5maWVsZG5hbWV9IiBuYW1lPSJ7JGFjdGlvbmlkfXskb3B0aW9uLT5maWVsZG5hbWV9IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0ieyRvcHRpb24tPnZhbHVlfSIgc2l6ZT0ieyRvcHRpb24tPnNpemV9IiBjbGFzcz0ieyRpbnB1dGNsYXNzfSIgLz4KCiAgICB7ZWxzZWlmICRvcHRpb24tPmlucHV0dHlwZT09J3RleHRhcmVhJ30KICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJ7JG9wdGlvbi0+ZmllbGRuYW1lfSIgbmFtZT0ieyRhY3Rpb25pZH17JG9wdGlvbi0+ZmllbGRuYW1lfSIgY2xhc3M9InskaW5wdXRjbGFzc30iIHJvd3M9Inskb3B0aW9uLT5yb3dzfSI+eyRvcHRpb24tPnZhbHVlfTwvdGV4dGFyZWE+CgogICAge2Vsc2VpZiAkb3B0aW9uLT5pbnB1dHR5cGU9PSdzZWxlY3QnfQogICAgICAgICAgICA8c2VsZWN0IGlkPSJ7JG9wdGlvbi0+ZmllbGRuYW1lfSIgbmFtZT0ieyRhY3Rpb25pZH17JG9wdGlvbi0+ZmllbGRuYW1lfSIgY2xhc3M9InskaW5wdXRjbGFzc30iPgogICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRpb24tPm9wdGlvbnMgc2VsZWN0ZWQ9JG9wdGlvbi0+dmFsdWV9CiAgICAgICAgICAgIDwvc2VsZWN0PgoKICAgIHtlbHNlaWYgJG9wdGlvbi0+aW5wdXR0eXBlPT0nY2hlY2tib3gnfQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXskb3B0aW9uLT5maWVsZG5hbWV9IiB2YWx1ZT0iMCI+CiAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgaWQ9Inskb3B0aW9uLT5maWVsZG5hbWV9IiBuYW1lPSJ7JGFjdGlvbmlkfXskb3B0aW9uLT5maWVsZG5hbWV9IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIHtpZiAkb3B0aW9uLT52YWx1ZX1jaGVja2Vkey9pZn0gY2xhc3M9InskaW5wdXRjbGFzc30iLz57JG9wdGlvbi0+bGFiZWx9PC9sYWJlbD4KCiAgICB7ZWxzZWlmICRvcHRpb24tPmlucHV0dHlwZT09J2ZpbGVfeG1sJ317KiB4bWwgb25seSBmb3Igbm93ICp9CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0ieyRvcHRpb24tPmZpZWxkbmFtZX0iIG5hbWU9InskYWN0aW9uaWR9eyRvcHRpb24tPmZpZWxkbmFtZX0iIHNpemU9Inskb3B0aW9uLT5zaXplfSIgYWNjZXB0PSIueG1sIiBjbGFzcz0ieyRpbnB1dGNsYXNzfSIgLz4KCiAgICB7ZWxzZWlmICRvcHRpb24tPmlucHV0dHlwZT09J2ZpZWxkX21hcCd9eyogdXNlcyBkYXRhIGZyb20gJGltcG9ydF9leHBvcnQgY2xhc3MgKn0KICAgICAgICB7JGxpbWl0X3NvdXJjZV9zZWxlY3Rpb249JGltcG9ydF9leHBvcnQtPmNvbmZpZ19vcHRpb25zWydsaW1pdF9zb3VyY2Vfc2VsZWN0aW9uJ10tPnZhbHVlfQogICAgICAgIDxkaXYgY2xhc3M9InRhYmxlLXJlc3BvbnNpdmUgaW1wb3J0LWV4cG9ydCI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZmllbGQtbWFwLXRhYmxlICB0YWJsZS1sYXlvdXQiPgogICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iZmllbGQtbWFwLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icGFuZWwgcGFuZWwtbGVmdCI+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJwYW5lbCBwYW5lbC1kZXN0aW5hdGlvbiI+eyRpbXBvcnRfZXhwb3J0LT5kZXN0aW5hdGlvbl9uYW1lfSB7JG1vZC0+TGFuZygnZmllbGRfbWFwX2Rlc3RpbmF0aW9uX2ZpZWxkcycpfTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icGFuZWwgcGFuZWwtc291cmNlIj57JGltcG9ydF9leHBvcnQtPnNvdXJjZV9uYW1lfSB7JG1vZC0+TGFuZygnZmllbGRfbWFwX3NvdXJjZV9maWVsZHMnKX08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhbmVsIHBhbmVsLXJpZ2h0Ij48L3RoPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAge2ZvcmVhY2ggJGltcG9ydF9leHBvcnQtPmZpZWxkX21hcCBhcyAkZmllbGRuYW1lID0+ICRmaWVsZH17KiBkZXN0aW5hdGlvbiAqfQogICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iZmllbGQtbWFwLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InBhbmVsIHBhbmVsLWxlZnQiPnskZmllbGRAaXRlcmF0aW9ufTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icGFuZWwgcGFuZWwtZGVzdGluYXRpb24iPnskZmllbGRuYW1lfXtpZiAhZW1wdHkoJGZpZWxkLT5yZXF1aXJlZCl9KnsvaWZ9PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJwYW5lbCBwYW5lbC1zb3VyY2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX21hcF9pdGVtW3skZmllbGRuYW1lfV0iIGNsYXNzPSJmaWVsZF9tYXBfaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj57JG1vZC0+TGFuZygnbGFiZWxfc2VsZWN0X3NvdXJjZScpfTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZvcmVhY2ggJGltcG9ydF9leHBvcnQtPnNvdXJjZV9maWVsZHMgYXMgJGtleSA9PiAkdmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ieyRrZXl9IiB7aWYgJGtleT09JGZpZWxkLT5zb3VyY2VfZmllbGR9c2VsZWN0ZWR7ZWxzZWlmICRsaW1pdF9zb3VyY2Vfc2VsZWN0aW9uICYmIGluX2FycmF5KCRrZXksICRzZWxlY3RlZF9zb3VyY2VzKX1kaXNhYmxlZHsvaWZ9Pnska2V5fTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icGFuZWwgcGFuZWwtcmlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaW1wLWV4cC1jbGVhci1zZWxlY3Rpb24gaW1wLWV4cC1idG4gaW1wLWV4cC1idG4tZGVmYXVsdCBpbXAtZXhwLWljb24tb25seSIgdGl0bGU9InskbW9kLT5MYW5nKCdjbGVhcl9zZWxlY3Rpb24nKX0iIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJpbXAtZXhwLWljb24tdHJhc2gtY2FuLXJlZ3VsYXIiPjwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4gICAgICAKICAgICAgICA8L2Rpdj4KCiAgICB7ZWxzZWlmICRvcHRpb24tPmlucHV0dHlwZT09J3N1Ym1pdCd9CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0ieyRvcHRpb24tPmZpZWxkbmFtZX0iIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0iY29udGludWUiIGNsYXNzPSJ7JGlucHV0Y2xhc3N9IHVpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLWJ1dHRvbi10ZXh0LWljb24tcHJpbWFyeSIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJmYWxzZSI+CiAgICAgICAgICAgICAgICB7aWYgIWVtcHR5KCRvcHRpb24tPnVpaWNvbil9PHNwYW4gY2xhc3M9InVpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiB1aS1pY29uLXskb3B0aW9uLT51aWljb259Ij48L3NwYW4+ey9pZn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCI+eyRvcHRpb24tPmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9idXR0b24+CgoKICAgIHtlbHNlaWYgJG9wdGlvbi0+aW5wdXR0eXBlPT0nY2FuY2VsJ30KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGlkPSJ7JG9wdGlvbi0+ZmllbGRuYW1lfS1jYW5jZWwiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0iY2FuY2VsIiBjbGFzcz0ieyRpbnB1dGNsYXNzfSB1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCB1aS1idXR0b24tdGV4dC1pY29uLXByaW1hcnkiIHJvbGU9ImJ1dHRvbiIgYXJpYS1kaXNhYmxlZD0iZmFsc2UiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiB1aS1pY29uLWNpcmNsZS1jbG9zZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVpLWJ1dHRvbi10ZXh0Ij57JG9wdGlvbi0+bGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgIHsvaWZ9CgogICAge2lmIGVtcHR5KCRvcHRpb24tPmlubGluZSkgfHwgJG9wdGlvbi0+aW5saW5lPT0naW5saW5lX2VuZCd9CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgIHsvaWZ9ICAKey9mdW5jdGlvbn0KCgp7Zm9ybV9zdGFydCBhY3Rpb249J2RlZmF1bHRhZG1pbicgY2xhc3M9ImltcG9ydC1leHBvcnQiIGV4dHJhcGFybXM9JGV4dHJhcGFybXN9CgogICAgeyogc2VsZWN0IFR5cGUgb2YgSW1wb3J0IEV4cG9ydCAqfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IG1fYm90dG9tXzI1Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48Yj57JG1vZC0+TGFuZygnc2VsZWN0ZWRfaW1wb3J0X2V4cG9ydCcpfTwvYj46PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICA8c2VsZWN0IGlkPSJpbXBvcnRfZXhwb3J0X3R5cGUiIG5hbWU9InskYWN0aW9uaWR9aW1wb3J0X2V4cG9ydF90eXBlIiBkYXRhLWN1cnJlbnQ9Inskc2VsZWN0ZWRfdHlwZX0iPgogICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRpbnB1dF9vdXRwdXRfdHlwZV9vcHRpb25zIHNlbGVjdGVkPSRzZWxlY3RlZF90eXBlfQogICAgICAgICAgICA8L3NlbGVjdD4gICAgICAgICAgIAogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9ImNoYW5nZS10eXBlIiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9ImNoYW5nZV90eXBlIiBjbGFzcz0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi1kaXNhYmxlZCB1aS1zdGF0ZS1kaXNhYmxlZCIgcm9sZT0iYnV0dG9uIiBhcmlhLWRpc2FibGVkPSJ0cnVlIiBkaXNhYmxlZD4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1aS1idXR0b24taWNvbi1wcmltYXJ5IHVpLWljb24gdWktaWNvbi1jaXJjbGUtY2hlY2siPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ1aS1idXR0b24tdGV4dCI+eyRtb2QtPkxhbmcoJ2NoYW5nZV90eXBlJyl9PC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICB7KiBTdGVwIEhlYWRpbmdzICp9CiAgICB7aWYgaXNzZXQoJGltcG9ydF9leHBvcnQtPnN0ZXBzKX0KICAgIDxkaXYgY2xhc3M9InN0ZXBzIHBhZ2VvdmVyZmxvdyBtX2JvdHRvbV8yNSI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1oZWFkaW5ncyBwcm9ncmVzcyI+CiAgICAgICAge2ZvcmVhY2ggJGltcG9ydF9leHBvcnQtPnN0ZXBzIGFzICRzdGVwX251bWJlciA9PiAkaGVhZGluZ30KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RlcC1iYXIge2lmICRpbXBvcnRfZXhwb3J0LT5zdGVwPT0kc3RlcF9udW1iZXJ9YWN0aXZle2Vsc2VpZiAkaW1wb3J0X2V4cG9ydC0+c3RlcD4kc3RlcF9udW1iZXJ9ZG9uZXsvaWZ9IiByb2xlPSJwcm9ncmVzc2JhciIgc3R5bGU9IndpZHRoOiAyNSUiIGFyaWEtdmFsdWVub3c9IjI1IiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxMDAiPnskc3RlcF9udW1iZXJ9LiB7JG1vZC0+TGFuZygkaGVhZGluZyl9PC9kaXY+CiAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICB7L2lmfQogICAgeyogUHJvZ3Jlc3MgQmFyIChvcHRpb25hbCkgKn0KICAgIHtpZiBpc3NldCgkaW1wb3J0X2V4cG9ydC0+cHJvZ3Jlc3MpfQogICAgPGRpdiBjbGFzcz0ic3RlcHMgcGFnZW92ZXJmbG93IG1fYm90dG9tXzI1Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZC0+TGFuZygnaW1wb3J0X3Byb2dyZXNzJyl9OjwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciBiZy13YXJuaW5nIiByb2xlPSJwcm9ncmVzc2JhciIgc3R5bGU9IndpZHRoOiB7JGltcG9ydF9leHBvcnQtPnByb2dyZXNzfSUiIGFyaWEtdmFsdWVub3c9InskaW1wb3J0X2V4cG9ydC0+cHJvZ3Jlc3N9IiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxMDAiIGRhdGEtdXJsPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2FqYXhfZGF0YSBkbz1nZXRfcHJvZ3Jlc3N9IiBkYXRhLWFjdGl2YXRlLXVybD0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9hamF4X2RhdGEgZG89YWpheF9wcm9jZXNzfSIgZGF0YS1rZXk9InskaW1wb3J0X2V4cG9ydC0+YWpheF9rZXl9Ij57JGltcG9ydF9leHBvcnQtPnByb2dyZXNzfSU8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgey9pZn0KCgogICAgeyogTWVzc2FnZXMgJiBFcnJvcnMgLSBoaWRlIGlmIGVtcHR5Kn0KICAgIHtpZiBpc3NldCgkaW1wb3J0X2V4cG9ydC0+bWVzc2FnZU1hbmFnZXIpfQogICAgICAgIHskbWVzc2FnZXM9JGltcG9ydF9leHBvcnQtPm1lc3NhZ2VNYW5hZ2VyLT5nZXRNZXNzYWdlcygpfQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIG1lc3NhZ2Ugc3VjY2VzcyBuby1zbGlkZSBtX2JvdHRvbV8yNSB7aWYgZW1wdHkoJG1lc3NhZ2VzKX1oaWRkZW57L2lmfSI+CiAgICAgICAge2ZvcmVhY2ggJG1lc3NhZ2VzIGFzICRtZXNzYWdlfQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZW1lc3NhZ2UiPnskbWVzc2FnZX08L3A+CiAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvZGl2PgogICAgICAgIHskZXJyb3JzPSRpbXBvcnRfZXhwb3J0LT5tZXNzYWdlTWFuYWdlci0+Z2V0RXJyb3JzKCl9CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIGVycm9yIG5vLXNsaWRlIG1fYm90dG9tXzI1IHtpZiBlbXB0eSgkZXJyb3JzKX1oaWRkZW57L2lmfSI+CiAgICAgICAge2ZvcmVhY2ggJGVycm9ycyBhcyAkZXJyb3J9CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlZXJyb3IiPnskZXJyb3J9PC9wPgogICAgICAgIHsvZm9yZWFjaH0KICAgICAgICA8L2Rpdj4KICAgIHsvaWZ9Cgp7YmxvY2sgbmFtZT1zdGVwX2NvbnRlbnR9CnsqICAKICAgIGNoaWxkIHRlbXBsYXRlcyBzaG91bGQgZXh0ZW5kIHRoaXMgYmxvY2sgdG8gYWRkIHRoZWlyIG93biBjb250ZW50Cip9CnsvYmxvY2t9Cgp7Zm9ybV9lbmR9CgoK]]></data>
	</file>
	<file>
	  <filename>/templates/wp_xml_to_LISE.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogd3BfeG1sX3RvX0xJU0UudHBsIC0gdjEuMCAtIDE1T2N0MjQgCgogICAgLSA/Pz8gdGhlIGZvbGxvd2luZyBjb3VsZCBwcm9iYWJseSBiZSBtb3ZlZCBpbnRvIGRlZmF1bHRhZG1pbi50cGwgLSBqdXN0IHdpdGggYW4gb3B0aW9uIHRvIG92ZXJyaWRlCiAgICAgICAgICB1c2luZyBhIGNoaWxkIHRlbXBsYXRlID8/PwoqfQp7ZXh0ZW5kcyBmaWxlPSJtb2R1bGVfZmlsZV90cGw6SW1wb3J0RXhwb3J0O2RlZmF1bHRhZG1pbi50cGwifSAKCntibG9jayBuYW1lPXN0ZXBfY29udGVudH0KICAgIHtpZiAhZW1wdHkoJGltcG9ydF9leHBvcnQpfQogICAgPGZpZWxkc2V0IGNsYXNzPSJpbXBvcnQtZXhwb3J0LXNlY3Rpb24iPgogICAgICAgIDxsZWdlbmQ+eyRpbXBvcnRfZXhwb3J0LT50eXBlX25hbWV9OjwvbGVnZW5kPgoKICAgIHtpZiAkaW1wb3J0X2V4cG9ydC0+c3RlcD09MX0KICAgICAgICB7Zm9yZWFjaCAkaW1wb3J0X2V4cG9ydC0+Y29uZmlnX29wdGlvbnMgYXMgJGZpZWxkbmFtZSA9PiAkb3B0aW9ufQogICAgICAgICAgICB7aWYgJG9wdGlvbi0+c3RlcD09MX0KICAgICAgICAgICAgICAgIHtjYWxsIG5hbWU9SW1wRXhwX3JlbmRlcl9maWVsZCBvcHRpb249JG9wdGlvbn0KICAgICAgICAgICAgey9pZn0KICAgICAgICB7L2ZvcmVhY2h9CgogICAge2Vsc2VpZiAkaW1wb3J0X2V4cG9ydC0+c3RlcD09Mn0KICAgICAgICB7Zm9yZWFjaCAkaW1wb3J0X2V4cG9ydC0+Y29uZmlnX29wdGlvbnMgYXMgJGZpZWxkbmFtZSA9PiAkb3B0aW9ufQogICAgICAgICAgICB7aWYgJG9wdGlvbi0+c3RlcD09Mn0KICAgICAgICAgICAgICAgIHtjYWxsIG5hbWU9SW1wRXhwX3JlbmRlcl9maWVsZCBvcHRpb249JG9wdGlvbn0KICAgICAgICAgICAgey9pZn0KICAgICAgICB7L2ZvcmVhY2h9CgogICAge2Vsc2VpZiAkaW1wb3J0X2V4cG9ydC0+c3RlcD09M30gICAgCiAgICAgICAge2ZvcmVhY2ggJGltcG9ydF9leHBvcnQtPmNvbmZpZ19vcHRpb25zIGFzICRmaWVsZG5hbWUgPT4gJG9wdGlvbn0KICAgICAgICAgICAge2lmICRvcHRpb24tPnN0ZXA9PTN9CiAgICAgICAgICAgICAgICB7Y2FsbCBuYW1lPUltcEV4cF9yZW5kZXJfZmllbGQgb3B0aW9uPSRvcHRpb259CiAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgey9mb3JlYWNofQoKICAgIHsvaWZ9CgogICAgPC9maWVsZHNldD4KICAgIHsvaWZ9CnsvYmxvY2t9]]></data>
	</file>
</module>
