<?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>CGmlGui</name>
	<version>1.2</version>
    <mincmsversion>2.2.4</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPnRoaXMgbW9kdWxlIHByb3ZpZGVzIGFuIGludGVyYWN0aXZlIG1ldGhvZCBvZiBhbGxvd2luZyBlZGl0b3JzIHRvIHRyYW5zbGF0ZSBDR21sIHJlYWxtIGZpbGVzIGZvciBtdWx0aXBsZWwgbGFuZ3VhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHVzZSBhIHRleHQgZWRpdG9yLiAgSXQgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IGZvciBwZW9wbGUgd2l0aCBsYW5ndWFnZSBleHBlcmllbmNlIHRvIGFzc2lzdCBpbiB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgcHJvY2Vzcy48L3A+Cgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uICBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jZ3NpbXBsZXNtYXJ0eSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS42MTwvbGk+PGxpPkNHbWwgPSZndDsgMS40LjE8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMjxiciAvPg==]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.61</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGml</requiredname>
	  <requiredversion>1.4.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_del_realm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHbWxHdWk7CgokcmVhbG0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCAkcGFyYW1zLCAncmVhbG0nICk7CmlmKCAhJHJlYWxtICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ05vIHJlYWxtIHBhc3NlZCB0byAnLiRhY3Rpb24pOwoKJGNnbWwgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR01MKTsKJGRhbyA9ICRjZ21sLT5nZXRfbGFuZ3VhZ2Vfc3RvcmFnZSgpOwoKaWYoICEgJGRhby0+ZGVsZXRlX3JlYWxtKCAkcmVhbG0gKSApIHsKICAgICR0aGlzLT5TZXRFcnJvciggJHRoaXMtPkxhbmcoJ2Vycl9kZWxldGVfcmVhbG0nKSApOwp9CiR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_realm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQ7CmlmKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpICkgZXhpdDsKCiRjZ21sID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dNTCk7CiRkYW8gPSAkY2dtbC0+Z2V0X2xhbmd1YWdlX3N0b3JhZ2UoKTsKJHJlYWxtID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZyggJHBhcmFtcywgJ3JlYWxtJyApOwokbGFuZ2RhdGEgPSBudWxsOwokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldF9kZmx0X2xhbmd1YWdlcygpOwppZiggJHJlYWxtICkgewogICAgJGxhbmdkYXRhID0gJGRhby0+bG9hZF9yZWFsbSggJHJlYWxtICk7Cn0KCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoICRfUE9TVCwgJ2NhbmNlbCcpICkgewogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9CmlmKCAhZW1wdHkoJF9QT1NUKSAmJiBcY2dlX3BhcmFtOjpleGlzdHMoICRfUE9TVCwgJ3N1Ym1pdCcpICkgewogICAgdHJ5IHsKICAgICAgICAkbmV3X3JlYWxtbmFtZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoICRfUE9TVCwgJ3JlYWxtX25hbWUnICk7CiAgICAgICAgJGpzb25fc3RyID0gJF9QT1NUWydqc29uJ107CiAgICAgICAgJGxhbmdkYXRhID0gbnVsbDsKICAgICAgICBpZiggJGpzb25fc3RyICkgewogICAgICAgICAgICAkdG1wID0ganNvbl9kZWNvZGUoICRqc29uX3N0ciwgVFJVRSApOwogICAgICAgICAgICBpZiggJHRtcCApICRsYW5nZGF0YSA9ICR0bXA7CiAgICAgICAgfQogICAgICAgIGlmKCAkbmV3X3JlYWxtbmFtZSAhPSAkcmVhbG0gKSB7CiAgICAgICAgICAgIGlmKCAkcmVhbG0gKSB7CiAgICAgICAgICAgICAgICAkb2xkX2ZpbGVuYW1lID0gJGRhby0+Z2V0X2xhbmd1YWdlX2ZpbGUoICRyZWFsbSApOwogICAgICAgICAgICAgICAgcmVuYW1lKCAkb2xkX2ZpbGVuYW1lLCAkb2xkX2ZpbGVuYW1lLicuYmFrJyApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHdlJ3JlIG5vdCBvdmVyd3JpdGluZyBhbiBleGlzdGluZyBmaWxlCiAgICAgICAgICAgICAgICAkZm4gPSAkZGFvLT5nZXRfbGFuZ3VhZ2VfZmlsZSggJG5ld19yZWFsbW5hbWUgKTsKICAgICAgICAgICAgICAgIGlmKCBpc19maWxlKCRmbikgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICR0aGlzLT5MYW5nKCdlcnJfcmVhbG1fZXhpc3RzJykgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZGFvLT5zYXZlX3JlYWxtKCAkbmV3X3JlYWxtbmFtZSwgJGxhbmdkYXRhICk7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJ3NhdmVkJyk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycyggJGUtPkdldE1lc3NhZ2UoKSApOwogICAgfQp9CgppZiggJGxhbmdkYXRhICkgJGxhbmd1YWdlcyA9IGFycmF5X2tleXMoICRsYW5nZGF0YSApOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCAnYWRtaW5fZWRpdF9yZWFsbS50cGwnICk7CiR0cGwtPmFzc2lnbigncmVhbG0nLCRyZWFsbSk7CiR0cGwtPmFzc2lnbignbGFuZ2RhdGEnLCRsYW5nZGF0YSk7CiR0cGwtPmFzc2lnbignbGFuZ3VhZ2VzJywkbGFuZ3VhZ2VzKTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_prefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CgokcmF3ID0gImVuX1VTXG5mcl9GUlxuZXNfRVNcbm5sX05MIjsKJHJhdyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCAnZGZsdF9sYW5ndWFnZXMnLCAkcmF3ICk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCAkX1BPU1QsICdjYW5jZWwnKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQplbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoICRfUE9TVCwgJ3N1Ym1pdCcpICkgewogICAgJHJhdyA9IHRyaW0oIFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoICRfUE9TVCwgJ2xhbmdzJykgKTsKICAgICRsYW5ncyA9ICR0aGlzLT5nZXRfbGFuZ3NfZnJvbV9yYXcoICRyYXcgKTsKICAgIGlmKCAkbGFuZ3MgKSB7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RmbHRfbGFuZ3VhZ2VzJywgJHJhdyApOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIH0KfQokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9wcmVmcy50cGwnKTsKJHRwbC0+YXNzaWduKCdsYW5ncycsJHJhdyk7CiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQ7CmlmKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpICkgZXhpdDsKCiRjZ21sID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dNTCk7CiRkYW8gPSAkY2dtbC0+Z2V0X2xhbmd1YWdlX3N0b3JhZ2UoKTsKJHJlYWxtcyA9ICRkYW8tPmZpbmRfcmVhbG1zKCk7CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCAnZGVmYXVsdGFkbWluLnRwbCcgKTsKJHRwbC0+YXNzaWduKCdyZWFsbXMnLCRyZWFsbXMpOwokdHBsLT5kaXNwbGF5KCk7]]></data>
	</file>
	<file>
	  <filename>/CGmlGui.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWxHdWkgKGMpIDIwMTggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3MgQ0dtbEd1aSBleHRlbmRzIFxDR0V4dGVuc2lvbnMKewogICAgY29uc3QgUEVSTV9UUkFOU0xBVEUgPSAnVHJhbnNsYXRlIENHbWwgRmlsZXMnOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXREZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcxLjInOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DbXNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMi40JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIFsgJ0NHRXh0ZW5zaW9ucycgPT4gJzEuNjEnLCAnQ0dtbCc9PicxLjQuMScgXTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oIHNlbGY6OlBFUk1fVFJBTlNMQVRFICk7IH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2xhbmdzX2Zyb21fcmF3KCAkcmF3ICkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBpZiggJHJhdyApIHsKICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoIlxuIiwkcmF3KTsKICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAmJG9uZSApIHsKICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICAgICAgaWYoICFwcmVnX21hdGNoKCcvW2Etel17Mn1fW0EtWl17Mn0vJywkb25lKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJG91dFtdID0gJG9uZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2RmbHRfbGFuZ3VhZ2VzKCkKICAgIHsKICAgICAgICAkcmF3ID0gImVuX1VTXG5mcl9GUlxuZXNfRVNcbm5sX05MIjsKICAgICAgICAkcmF3ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RmbHRfbGFuZ3VhZ2VzJywkcmF3KTsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF9sYW5nc19mcm9tX3JhdyggJHJhdyApOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPnRoaXMgbW9kdWxlIHByb3ZpZGVzIGFuIGludGVyYWN0aXZlIG1ldGhvZCBvZiBhbGxvd2luZyBlZGl0b3JzIHRvIHRyYW5zbGF0ZSBDR21sIHJlYWxtIGZpbGVzIGZvciBtdWx0aXBsZWwgbGFuZ3VhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHVzZSBhIHRleHQgZWRpdG9yLiAgSXQgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IGZvciBwZW9wbGUgd2l0aCBsYW5ndWFnZSBleHBlcmllbmNlIHRvIGFzc2lzdCBpbiB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgcHJvY2Vzcy48L3A+Cgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uICBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jZ3NpbXBsZXNtYXJ0eSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycl9kZWxldGVfcmVlYWxtJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIGRlbGV0aW5nIHRoZSByZWFsbSBmaWxlJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydjdXJyZW50X25hbWUnXSA9ICdDdXJyZW50IG5hbWUnOwokbGFuZ1sndF9yZWFsbSddID0gJ1RoaXMgaXMgYSB1bmlxdWUsIGFscGhhbnVtZXJpYyBuYW1lIGZvciB0aGUgcmVhbG0uJzsKJGxhbmdbJ3RfaWR4a2V5J10gPSAnQ2xpY2sgaGVyZSB0byBlZGl0IHRoaXMgaXRlbSc7CiRsYW5nWyd0X2tleSddID0gJ0EgdW5pcXVlIGFscGhhbnVtZXJpYyBrZXkgZm9yIHRoaXMgbGFuZ3VhZ2UgZW50cnkgKG11c3Qgc3RhcnQgd2l0aCBhbiBhbHBoYWJldGljIGNoYXJhY3RlcikuJzsKJGxhbmdbJ3RfYXBwbHknXSA9ICdBcHBseSBjaGFuZ2VzIHRvIG1lbW9yeSc7CiRsYW5nWyd0X2RlbGV0ZSddID0gJ0RlbGV0ZSB0aGlzIGxhbmd1YWdlIGVudHJ5IGZyb20gbWVtb3J5JzsKJGxhbmdbJ3RfZ290b19maXJzdCddID0gJ0dvIHRvIHRoZSBmaXJzdCBsaXN0ZWQgbGFuZ3VhZ2UgZW50cnknOwokbGFuZ1sndF9nb3RvX3ByZXYnXSA9ICdHbyB0byB0aGUgcHJldmlvdXMgbGlzdGVkIGxhbmd1YWdlIGVudHJ5JzsKJGxhbmdbJ3RfZ290b19uZXh0J10gPSAnR28gdG8gdGhlIG5leHQgbGlzdGVkIGxhbmd1YWdlIGVudHJ5JzsKJGxhbmdbJ3RfZ290b19uZXh0dXQnXSA9ICdHbyB0byB0aGUgbmV4dCBsYW5ndWFnZSBlbnRyeSB0aGF0IGlzIG5vdCBjb21wbGV0ZWx5IHRyYW5zbGF0ZWQnOwokbGFuZ1sndF9nb3RvX2xhc3QnXSA9ICdHbyB0byB0aGUgbGFzdCBsaXN0ZWQgbGFuZ3VhZ2UgZW50cnknOwokbGFuZ1snZmlyc3RfdW50cmFuc2xhdGVkJ10gPSAnRmlyc3QgdW50cmFuc2xhdGVkJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1RyYW5zbGF0ZSBDR21sIFJlYWxtcyc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgVUkgdG8gdHJhbnNsYXRlIENHbWwgcmVhbG1zJzsKJGxhbmdbJ2Vycm9yX25vcmVhbG1zJ10gPSAnVGhlcmUgYXJlIG5vIHJlYWxtcyB0byB0cmFuc2xhdGUnOwokbGFuZ1snbmV3X3JlYWxtJ10gPSAnQWRkIGEgbmV3IHJlYWxtJzsKJGxhbmdbJ2VkaXRfcmVhbG0nXSA9ICdUcmFuc2xhdGUgYSByZWFsbSc7CiRsYW5nWydyZWFsbV9uYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydrZXknXSA9ICdLZXknOwokbGFuZ1snc3RyaW5ncyddID0gJ0l0ZW1zJzsKJGxhbmdbJ2FkZF9zdHJpbmcnXSA9ICdBZGQgc3RyaW5nJzsKJGxhbmdbJ2VkaXRfZW50cnknXSA9ICdFZGl0IGl0ZW0nOwokbGFuZ1snZW5nbGlzaCddID0gJ0VuZ2xpc2gnOwokbGFuZ1sncmVhbG0nXSA9ICdSZWFsbSc7CiRsYW5nWyd3YXJuX25vX2xhbmdzdHJpbmdzJ10gPSAnVGhlcmUgYXJlIG5vIHN0cmluZ3MgZGVmaW5lZCBpbiB0aGlzIHJlYWxtJzsKJGxhbmdbJ2Vycl9yZWFsbV9leGlzdHMnXSA9ICdBIHJlYWxtIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snZGZsdF9sYW5ncyddID0gJ0RlZmF1bHQgbGFuZ3VhZ2VzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY29uZmlybV9hY3RpdmVfY2hhbmdlcyddID0gJ1lvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyB0byB0aGUgY3VycmVudCBsYW5nIHN0cmluZy4gIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyc7]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQ7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCBcQ0dtbEdVSTo6UEVSTV9UUkFOU0xBVEUsIFxDR21sR3VpOjpQRVJNX1RSQU5TTEFURSApOw==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCggJGdDbXMgKSApIGV4aXQ7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCBcQ0dtbEdVSTo6UEVSTV9UUkFOU0xBVEUgKTs=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDR21sR3VpIgp2ZXJzaW9uID0gMS4yCmF1dGhvciA9ICJjYWxndXkxMDAwIgphdXRob3JlbWFpbCA9ICJjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIgptaW5jbXN2ZXJzaW9uID0gIjIuMi40IgpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMApbZGVwZW5kc10KQ0dFeHRlbnNpb25zID0gMS42MQpDR21sID0gIjEuNC4xIgo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_edit_realm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPgojZWRpdG9yIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KI2xhbmdjb250IHsKICAgIG1pbi1oZWlnaHQ6IDVlbTsKICAgIG1heC1oZWlnaHQ6IDIwZW07CiAgICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KLmxhbmdfaW5kZXhfcm93LnVudHJhbnNsYXRlZCB7CiAgICBiYWNrZ3JvdW5kOiBsaWdodHllbGxvdzsKfQoubGFuZ19pbmRleF9yb3cuYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JlZW47Cn0KPC9zdHlsZT4KPHNjcmlwdD4KdmFyIGVkaXRvciA9IG5ldyBmdW5jdGlvbigpIHsKICAgIHZhciBmb3JtLGtleWZsZCxsYW5nY29udCxidG5hZGQsZWRpdF96b25lLGJ0bmFwcGx5LGJ0bmRlbCxidG5maXJzdHV0ID0gbnVsbDsKICAgIHZhciBnb3RvX2ZpcnN0LCBnb3RvX25leHQsIGdvdG9fcHJldiwgZ290b19sYXN0LCBnb3RvX25leHR1dDsKICAgIHZhciBsYW5ndWFnZV9ib3hlczsKICAgIHZhciBsYW5nZGF0YSwgbGFuZ3M7CiAgICB2YXIgYWN0aW9uaWQgPSAneyRhY3Rpb25pZH0nOwogICAgdmFyIGFjdGl2ZV9jaGFuZ2VzLCBzdWJtaXR0ZWQ7CgogICAgZnVuY3Rpb24gaGlkZV9pbmRleCgpIHsKICAgICAgICBsYW5nY29udC5oaWRlKCk7CiAgICB9CgogICAgZnVuY3Rpb24gc2hvd19pbmRleCgpIHsKICAgICAgICBsYW5nY29udC5zaG93KCk7CiAgICB9CgogICAgZnVuY3Rpb24gc29ydF9pbmRleCgpIHsKICAgICAgICB2YXIgbGlzdCA9ICQoJ2Rpdi5sYW5nX2luZGV4X3JvdycsbGFuZ2NvbnQpLmdldCgpLnNvcnQoZnVuY3Rpb24oYSxiKSB7CgkgICAgdmFyIHN0cjEgPSAkKGEpLmRhdGEoJ2tleScpLnRvVXBwZXJDYXNlKCk7CgkgICAgdmFyIHN0cjIgPSAkKGIpLmRhdGEoJ2tleScpLnRvVXBwZXJDYXNlKCk7CgkgICAgb3V0ID0gc3RyMS50b1VwcGVyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoIHN0cjIudG9VcHBlckNhc2UoKSApOwoJICAgIG91dCA9IChzdHIxIDwgc3RyMikgPyAtMSA6IChzdHIxID4gc3RyMikgPyAxIDogMDsKCSAgICByZXR1cm4gb3V0OwoJfSk7CglsYW5nY29udC5lbXB0eSgpOwoJbGFuZ2NvbnQuYXBwZW5kKGxpc3QpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlbGV0ZV9pbmRleF9pdGVtKCBrZXkgKQogICAgewoJdmFyIHJvdyA9ICQoJ1tkYXRhLWtleT0iJytrZXkrJyJdJyxsYW5nY29udCk7Cglyb3cucmVtb3ZlKCk7CiAgICB9CgogICAgZnVuY3Rpb24gZHJhd19pbmRleF9pdGVtKCBvYmogKQogICAgewogICAgICAgIHZhciByb3cgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygnbGFuZ19pbmRleF9yb3cgY19mdWxsIGNmJykuYXR0cignZGF0YS1rZXknLG9iai5rZXkpOwoJaWYoIG9iai5maWxsZWQgKSB7CgkgICAgcm93LmFkZENsYXNzKCd0cmFuc2xhdGVkJyk7CiAgICAgICAgfSBlbHNlIHsKCSAgICByb3cuYWRkQ2xhc3MoJ3VudHJhbnNsYXRlZCcpOwogICAgICAgIH0KCXZhciBrZXljID0gJCgnPGE+JykuYWRkQ2xhc3MoJ2xhbmdfaW5kZXhfa2V5IGdyaWRfNCcpLnRleHQoIG9iai5rZXkgKS5wcm9wKCd0aXRsZScsJ3skbW9kLT5MYW5nKCd0X2lkeGtleScpfScpOwoJcm93LmFwcGVuZCgga2V5YyApOwoJdmFyIHRleHQgPSBvYmoudGV4dC50cmltKCk7CglpZiggdGV4dC5sZW5ndGggPiA2MCApIHRleHQgPSB0ZXh0LnN1YnN0cigwLDYwKSArICcuLi4nOwoJdmFyIGVuZ2MgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygnbGFuZ19pbmRleF9zdHIgZ3JpZF84JykudGV4dCggdGV4dCApOwoJcm93LmFwcGVuZCggZW5nYyApOwoJbGFuZ2NvbnQuYXBwZW5kKHJvdyk7CiAgICB9CgogICAgZnVuY3Rpb24gZHJhd19lbnRyeSggZW50cnkgKQogICAgewoJdmFyIGZpcnN0X2xhbmcgPSBsYW5nc1swXTsKICAgICAgICB2YXIgb2JqID0ge307CglvYmoua2V5ID0gZW50cnkubmV3a2V5OwoJb2JqLnRleHQgPSBlbnRyeVtmaXJzdF9sYW5nXTsKCW9iai5maWxsZWQgPSAxOwoJZm9yKCB2YXIgaSA9IDA7IGkgPCBsYW5ncy5sZW5ndGg7IGkrKyApIHsKCSAgICB2YXIgbGFuZyA9IGxhbmdzW2ldOwoJICAgIHZhciBzdHIgPSBlbnRyeVtsYW5nXTsKCSAgICBpZiggc3RyID09IHVuZGVmaW5lZCB8fCAhc3RyIHx8IHN0ci5sZW5ndGggPT0gMCApIHsKCSAgICAgICAgb2JqLmZpbGxlZCA9IDA7CgkgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCWhpZGVfaW5kZXgoKTsKCWRlbGV0ZV9pbmRleF9pdGVtKCBlbnRyeS5rZXkgKTsKCWRyYXdfaW5kZXhfaXRlbSggb2JqICk7Cglzb3J0X2luZGV4KCk7CglzaG93X2luZGV4KCk7CiAgICB9CgogICAgZnVuY3Rpb24gZHJhd19pbmRleCgpCiAgICB7CiAgICAgICAgbGFuZ2NvbnQuZW1wdHkoKTsKCXZhciBmaXJzdF9sYW5nID0gbGFuZ3NbMF07Cgl2YXIga2V5czsKCWlmKCBsYW5nZGF0YSAmJiB0eXBlb2YgbGFuZ2RhdGEgPT0gJ29iamVjdCcgKSB7CgkgICAga2V5cyA9IE9iamVjdC5rZXlzKCBsYW5nZGF0YVtmaXJzdF9sYW5nXSApOwoJfQoKCWlmKCBrZXlzICYmIGtleXMubGVuZ3RoID4gMCApIHsKICAgCSAgICBoaWRlX2luZGV4KCk7CgkgICAgZm9yKCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKysgKSB7CgkgICAgCXZhciBvYmogPSB7fQoJCW9iai5rZXkgPSBrZXlzW2ldOwoJCW9iai50ZXh0ID0gbnVsbDsKCQlvYmouZmlsbGVkID0gMTsKCQlmb3IoIHZhciBqID0gMDsgaiA8IGxhbmdzLmxlbmd0aDsgaisrICkgewoJCSAgICAgdmFyIGxhbmcgPSBsYW5nc1tqXTsKCQkgICAgIGlmKCBsYW5nID09IGZpcnN0X2xhbmcgKSBvYmoudGV4dCA9IGxhbmdkYXRhW2xhbmddW2tleXNbaV1dOwoJCSAgICAgdmFyIHN0ciA9IGxhbmdkYXRhW2xhbmddW2tleXNbaV1dOwoJCSAgICAgaWYoIHN0ciA9PSB1bmRlZmluZWQgfHwgIXN0ciB8fCBzdHIubGVuZ3RoID09IDAgKSB7CgkJICAgICAgICAgb2JqLmZpbGxlZCA9IDA7CgkJCSBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQoJCX0KCSAgICAgICAgZHJhd19pbmRleF9pdGVtKCBvYmogKTsKICAgICAgICAgICAgfQoJICAgIHNvcnRfaW5kZXgoKTsKCSAgICBzaG93X2luZGV4KCk7CiAgICAgICAgfSBlbHNlIHsKCSAgICB2YXIgZGl2ID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3dhcm5pbmcnKS50ZXh0KCd7JG1vZC0+TGFuZygnd2Fybl9ub19sYW5nc3RyaW5ncycpfScpOwoJICAgIGxhbmdjb250LmFwcGVuZChkaXYpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYXJrX2FjdGl2ZSgga2V5ICkgewogICAgICAgIGNvbnNvbGUubG9nKCdhY3RpdmU6ICcra2V5KTsKICAgICAgICAkKCcubGFuZ19pbmRleF9yb3cnLGxhbmdjb250KS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CiAgICAgICAgJCgnLmxhbmdfaW5kZXhfcm93W2RhdGEta2V5PSInK2tleSsnIl0nLGxhbmdjb250KS5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICB9CgogICAgZnVuY3Rpb24gcG9wdWxhdGVfZWRpdG9yX2J5X2tleSgga2V5ICkgewogICAgICAgIG1hcmtfYWN0aXZlKCBrZXkgKTsKICAgICAgICAkKCcja2V5JyxlZGl0X3pvbmUpLnZhbChrZXkpLmRhdGEoJ29sZGtleScsa2V5KTsKICAgICAgICBmb3IoIHZhciBpID0gMDsgaSA8IGxhbmdzLmxlbmd0aDsgaSsrICkgewoJICAgIHZhciBsYW5nID0gbGFuZ3NbaV07CgkgICAgdmFyIHZhbCA9IGxhbmdkYXRhW2xhbmddW2tleV07CgkgICAgdmFyIGVsID0gJCgnW2RhdGEtbGFuZz0nK2xhbmcrJ10nLGVkaXRfem9uZSk7CgkgICAgZWwudmFsKCB2YWwgKTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZXh0cmFjdF9lbnRyeV9mcm9tX2VkaXRvcigpCiAgICB7CiAgICAgICAgdmFyIG91dCA9IHt9OwoJb3V0LmtleSA9ICQoJyNrZXknLGVkaXRfem9uZSkuZGF0YSgnb2xka2V5Jyk7CglvdXQubmV3a2V5ID0gJCgnI2tleScsZWRpdF96b25lKS52YWwoKTsKCSQoJyNrZXknLGVkaXRfem9uZSkuZGF0YSgnb2xka2V5JyxvdXQubmV3a2V5KTsKCWZvciggdmFyIGkgPSAwOyBpIDwgbGFuZ3MubGVuZ3RoOyBpKysgKSB7CgkgICAgdmFyIGxhbmcgPSBsYW5nc1tpXTsKCSAgICB2YXIgZWwgPSAkKCdbZGF0YS1sYW5nPScrbGFuZysnXScsZWRpdF96b25lKTsKICAgICAgICAgICAgb3V0W2xhbmddID0gZWwudmFsKCk7CiAgICAgICAgfQoJcmV0dXJuIG91dDsKICAgIH0KCiAgICBmdW5jdGlvbiBuYXZfZmlyc3QoIGV2ICkgewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAJdmFyIGVsID0gJCgnLmxhbmdfaW5kZXhfcm93JyxsYW5nY29udCkuZmlyc3QoKTsKCXZhciBrZXkgPSAkKGVsKS5kYXRhKCdrZXknKTsKCWNvbnNvbGUubG9nKCdmaXJzdCBpbmRleCBpdGVtIGlzICcra2V5KTsKCXBvcHVsYXRlX2VkaXRvcl9ieV9rZXkoIGtleSApOwogICAgfQoKICAgIGZ1bmN0aW9uIG5hdl9sYXN0KCBldiApIHsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwogICAgCXZhciBlbCA9ICQoJy5sYW5nX2luZGV4X3JvdycsbGFuZ2NvbnQpLmxhc3QoKTsKCXZhciBrZXkgPSAkKGVsKS5kYXRhKCdrZXknKTsKCXBvcHVsYXRlX2VkaXRvcl9ieV9rZXkoIGtleSApOwogICAgfQoKICAgIGZ1bmN0aW9uIG5hdl9wcmV2KCBldiApIHsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwoJdmFyIGVsID0gJCgnLmxhbmdfaW5kZXhfcm93LmFjdGl2ZScsbGFuZ2NvbnQpLnByZXYoKTsKCWlmKCBlbCAmJiBlbC5sZW5ndGggKSB7CiAgCSAgICB2YXIga2V5ID0gJChlbCkuZGF0YSgna2V5Jyk7CgkgICAgcG9wdWxhdGVfZWRpdG9yX2J5X2tleSgga2V5ICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIG5hdl9uZXh0KCBldiApIHsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwoJdmFyIGVsID0gJCgnLmxhbmdfaW5kZXhfcm93LmFjdGl2ZScsbGFuZ2NvbnQpLm5leHQoKTsKCWlmKCBlbCAmJiBlbC5sZW5ndGggKSB7CiAgCSAgICB2YXIga2V5ID0gJChlbCkuZGF0YSgna2V5Jyk7CgkgICAgcG9wdWxhdGVfZWRpdG9yX2J5X2tleSgga2V5ICk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIG5hdl9uZXh0dXQoIGV2ICkgewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Cgl2YXIgZWwgPSAkKCcubGFuZ19pbmRleF9yb3cuYWN0aXZlJyxsYW5nY29udCkubmV4dEFsbCggJy51bnRyYW5zbGF0ZWQ6Zmlyc3QnICk7CglpZiggZWwgJiYgZWwubGVuZ3RoICkgewogIAkgICAgdmFyIGtleSA9ICQoZWwpLmRhdGEoJ2tleScpOwoJICAgIHBvcHVsYXRlX2VkaXRvcl9ieV9rZXkoIGtleSApOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBvbl9hZGRTdHJpbmcoIGV2ICkgewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CgkkKCcja2V5JyxlZGl0X3pvbmUpLmRhdGEoJ29sZGtleScsJycpOwogICAgICAgICQoJ2lucHV0LHRleHRhcmVhJyxlZGl0X3pvbmUpLnZhbCgnJyk7CgkkKCdidXR0b24nLGxhbmdjb250KS5wcm9wKCdkaXNhYmxlZCcsdHJ1ZSk7CglidG5hcHBseS5wcm9wKCdkaXNhYmxlZCcsZmFsc2UpOwoJZWRpdF96b25lLnNob3coKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvbl9lZGl0U3RyaW5nKCBldiApIHsKICAgICAgICBpZiggYWN0aXZlX2NoYW5nZXMgKSB7CgkgICAgdmFyIHIgPSBjb25maXJtKCd7JG1vZC0+TGFuZygnY29uZmlybV9hY3RpdmVfY2hhbmdlcycpfScpOwoJICAgIGlmKCAhIHIgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Cgl2YXIga2V5ID0gJCh0aGlzKS5jbG9zZXN0KCcubGFuZ19pbmRleF9yb3cnKS5kYXRhKCdrZXknKTsKCS8vIHBvcHVsYXRlIHRoZSBlZGl0IHpvbmUgZGlhbG9nCglwb3B1bGF0ZV9lZGl0b3JfYnlfa2V5KCBrZXkgKTsKCWVkaXRfem9uZS5zaG93KCk7CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlX2xhbmdkYXRhX3dpdGhfZW50cnkoIGVudHJ5ICkgewogICAgICAgIGZvciggdmFyIGkgPSAwOyBpIDwgbGFuZ3MubGVuZ3RoOyBpKysgKSB7CgkgICAgdmFyIGxhbmcgPSBsYW5nc1tpXTsKCSAgICBpZiggbGFuZ2RhdGEgJiYgbGFuZ2RhdGFbbGFuZ10gJiYgZW50cnkubmV3a2V5ICE9IGVudHJ5LmtleSApIHsKCSAgICAgICAgZGVsZXRlIGxhbmdkYXRhW2xhbmddW2VudHJ5LmtleV07CiAgICAgICAgICAgIH0KCSAgICBpZiggIWxhbmdkYXRhICkgbGFuZ2RhdGEgPSB7fTsKCSAgICBpZiggIWxhbmdkYXRhW2xhbmddICkgbGFuZ2RhdGFbbGFuZ10gPSB7fTsKCSAgICBsYW5nZGF0YVtsYW5nXVtlbnRyeS5uZXdrZXldID0gZW50cnlbbGFuZ107CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIG9uX2ZpcnN0VW50cmFuc2xhdGVkKCBldiApIHsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwoJdmFyIGVsID0gJCgnLmxhbmdfaW5kZXhfcm93LnVudHJhbnNsYXRlZCcsbGFuZ2NvbnQpLmZpcnN0KCk7Cgl2YXIga2V5ID0gJChlbCkuZGF0YSgna2V5Jyk7CgkvLyBwb3B1bGF0ZSB0aGUgZWRpdCB6b25lIGRpYWxvZwoJcG9wdWxhdGVfZWRpdG9yX2J5X2tleSgga2V5ICk7CgllZGl0X3pvbmUuc2hvdygpOwogICAgfQoKICAgIGZ1bmN0aW9uIHNldF9uYXZfc3RhdGUoIHN0YXRlICkgewogICAgICAgIHZhciBiID0gZmFsc2U7CglpZiggc3RhdGUgKSBiID0gdHJ1ZTsKICAgICAgICBnb3RvX2ZpcnN0LnByb3AoJ2Rpc2FibGVkJyxiKTsKICAgICAgICBnb3RvX3ByZXYucHJvcCgnZGlzYWJsZWQnLGIpOwogICAgICAgIGdvdG9fbmV4dC5wcm9wKCdkaXNhYmxlZCcsYik7CiAgICAgICAgZ290b19uZXh0dXQucHJvcCgnZGlzYWJsZWQnLGIpOwogICAgICAgIGdvdG9fbGFzdC5wcm9wKCdkaXNhYmxlZCcsYik7CiAgICB9CgogICAgZnVuY3Rpb24gb25fYXBwbHkoIGV2ICkgewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CgkkKCcja2V5JyxlZGl0X3pvbmUpWzBdLmNoZWNrVmFsaWRpdHkoKTsKCSQoJ2J1dHRvbicsZWRpdF96b25lKS5wcm9wKCdkaXNhYmxlZCcsZmFsc2UpOwoJdmFyIGVudHJ5ID0gZXh0cmFjdF9lbnRyeV9mcm9tX2VkaXRvcigpOwoJLy8gdG9kbzogdmFsaWRhdGUgZW50cnkKCXVwZGF0ZV9sYW5nZGF0YV93aXRoX2VudHJ5KCBlbnRyeSApOwoJZHJhd19lbnRyeSggZW50cnkgKTsKCWFjdGl2ZV9jaGFuZ2VzID0gbnVsbDsKCW1hcmtfYWN0aXZlKCBlbnRyeS5uZXdrZXkgKTsKCXNldF9uYXZfc3RhdGUoIDAgKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvbl9kZWxldGUoIGV2ICkgewogICAgICAgIHZhciBrZXkgPSAkKCcja2V5JyxlZGl0X3pvbmUpLnZhbCgpOwogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgZm9yKCB2YXIgaSA9IDA7IGkgPCBsYW5ncy5sZW5ndGg7IGkrKyApIHsKCSAgICB2YXIgbGFuZyA9IGxhbmdzW2ldOwoJICAgIGlmKCBsYW5nZGF0YSAmJiBsYW5nZGF0YVtsYW5nXSAmJiBsYW5nZGF0YVtsYW5nXVtrZXldICkgewoJICAgICAgICBkZWxldGUgbGFuZ2RhdGFbbGFuZ11ba2V5XTsKICAgICAgICAgICAgfQogICAgICAgIH0KCWVkaXRfem9uZS5oaWRlKCk7CgkkKCdpbnB1dCx0ZXh0YXJlYScsZWRpdF96b25lKS52YWwoJycpOwoJaGlkZV9pbmRleCgpOwoJZGVsZXRlX2luZGV4X2l0ZW0oIGtleSApOwoJc2hvd19pbmRleCgpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uX3RleHRDaGFuZ2UoIGV2ICkgewogICAgICAgIGFjdGl2ZV9jaGFuZ2VzID0gMTsKCXNldF9uYXZfc3RhdGUoIDEgKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvbl9zdWJtaXQoIGV2ICkgewogICAgICAgIC8vIHBhY2thZ2UgdXAgdGhlIGxhbmdkYXRhCgl2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KCBsYW5nZGF0YSApOwoJdmFyIGVsID0gJCgnPGlucHV0Lz4nKS5hdHRyKCd0eXBlJywnaGlkZGVuJykuYXR0cignbmFtZScsJ2pzb24nKS52YWwoZGF0YSk7CgkkKHRoaXMpLmFwcGVuZChlbCk7CiAgICB9CgogICAgZnVuY3Rpb24gc2V0dXBfbGFuZ3VhZ2VzKCkKICAgIHsKCS8qCglpZiggbGFuZ2RhdGEgKSB7CgkgICAgbGFuZ3MgPSBPYmplY3Qua2V5cyhsYW5nZGF0YSk7CiAgICAgICAgfQoJKi8KICAgIH0KCiAgICBmdW5jdGlvbiBzZXR1cF9oYW5kbGVycygpCiAgICB7CiAgICAgICBsYW5nY29udC5vbignY2xpY2snLCdhLmxhbmdfaW5kZXhfa2V5Jyxvbl9lZGl0U3RyaW5nKTsKICAgICAgIGJ0bmFkZC5jbGljayhvbl9hZGRTdHJpbmcpOwogICAgICAgYnRuZmlyc3R1dC5jbGljayhvbl9maXJzdFVudHJhbnNsYXRlZCk7CiAgICAgICBidG5hcHBseS5jbG9zZXN0KCdmb3JtJykuc3VibWl0KG9uX2FwcGx5KTsKICAgICAgIGJ0bmRlbC5jbGljayhvbl9kZWxldGUpOwogICAgICAgJCgnOmlucHV0JyxlZGl0X3pvbmUpLmNoYW5nZShvbl90ZXh0Q2hhbmdlKTsKICAgICAgIGdvdG9fZmlyc3QuY2xpY2soIG5hdl9maXJzdCApOwogICAgICAgZ290b19sYXN0LmNsaWNrKCBuYXZfbGFzdCApOwogICAgICAgZ290b19wcmV2LmNsaWNrKCBuYXZfcHJldiApOwogICAgICAgZ290b19uZXh0LmNsaWNrKCBuYXZfbmV4dCApOwogICAgICAgZ290b19uZXh0dXQuY2xpY2soIG5hdl9uZXh0dXQgKTsKICAgICAgIGZvcm0uc3VibWl0KCBvbl9zdWJtaXQgKTsKICAgIH0KCiAgICB0aGlzLmluaXQgPSBmdW5jdGlvbigpIHsKICAgICAgIGxhbmdkYXRhID0gbnVsbDsKICAgICAgIHtpZiBjb3VudCgkbGFuZ2RhdGEpfQogICAgICAgbGFuZ2RhdGEgPSB7anNvbl9lbmNvZGUoJGxhbmdkYXRhKX07CiAgICAgICB7L2lmfQogICAgICAgbGFuZ3MgPSB7anNvbl9lbmNvZGUoJGxhbmd1YWdlcyl9OwogICAgICAgZm9ybSA9ICQoJyNlZGl0Zm9ybScpOwogICAgICAga2V5ZmxkID0gJCgnI2tleScpOwogICAgICAgYnRuYWRkID0gJCgnI2FkZF9zdHJpbmcnKTsKICAgICAgIGJ0bmZpcnN0dXQgPSAkKCcjZ290b19maXJzdHVudHJhbnNsYXRlZCcpOwogICAgICAgYnRuYXBwbHkgPSAkKCcjYXBwbHknKTsKICAgICAgIGJ0bmRlbCA9ICQoJyNkZWwnKTsKICAgICAgIGVkaXRfem9uZSA9ICQoJyNlZGl0b3InKTsKICAgICAgIGxhbmdjb250ID0gJCgnI2xhbmdjb250Jyk7CiAgICAgICBnb3RvX2ZpcnN0ID0gJCgnI2dvdG9fZmlyc3QnKTsKICAgICAgIGdvdG9fbGFzdCA9ICQoJyNnb3RvX2xhc3QnKTsKICAgICAgIGdvdG9fbmV4dCA9ICQoJyNnb3RvX25leHQnKTsKICAgICAgIGdvdG9fcHJldiA9ICQoJyNnb3RvX3ByZXYnKTsKICAgICAgIGdvdG9fbmV4dHV0ID0gJCgnI2dvdG9fbmV4dHV0Jyk7CiAgICAgICAvL3NldHVwX2xhbmd1YWdlcygpOwogICAgICAgc2V0dXBfaGFuZGxlcnMoKTsKICAgICAgIGRyYXdfaW5kZXgoKTsKICAgIH0KfQokKGZ1bmN0aW9uKCl7CiAgICBlZGl0b3IuaW5pdCgpOwp9KQo8L3NjcmlwdD4KPGgzPnskbW9kLT5MYW5nKCdlZGl0X3JlYWxtJyl9PC9oMz4Ke2lmICRyZWFsbX08aDQ+eyRtb2QtPkxhbmcoJ2N1cnJlbnRfbmFtZScpfTogeyRyZWFsbX08L2g0PnsvaWZ9Cgp7Zm9ybV9zdGFydCBpZD0iZWRpdGZvcm0iIHJlYWxtPSRyZWFsbX0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0ie2xhbmcoJ3N1Ym1pdCcpfSIvPgogICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJjYW5jZWwiIHZhbHVlPSJ7bGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPip7JG1vZC0+TGFuZygncmVhbG1fbmFtZScpfTo8L2xhYmVsPgogICA8aW5wdXQgY2xhc3M9ImdyaWRfOCIgbmFtZT0icmVhbG1fbmFtZSIgdmFsdWU9InskcmVhbG19IiByZXF1aXJlZCB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RfcmVhbG0nKX0iLz4KPC9kaXY+Cntmb3JtX2VuZH0KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgIDxkaXYgY2xhc3M9ImdyaWRfNSI+CiAgICAgICA8ZmllbGRzZXQgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgICAgPGxlZ2VuZD57JG1vZC0+TGFuZygnc3RyaW5ncycpfTwvbGVnZW5kPgogICAgICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgICAgICAgIDxhIGlkPSJhZGRfc3RyaW5nIj57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZF9zdHJpbmcnKX08L2E+CiAgICAgICAgICAgICAgIDxhIGlkPSJnb3RvX2ZpcnN0dW50cmFuc2xhdGVkIj57YWRtaW5faWNvbiBpY29uPSd2aWV3LmdpZid9IHskbW9kLT5MYW5nKCdmaXJzdF91bnRyYW5zbGF0ZWQnKX08L2E+CiAgICAgICAgICAgPC9kaXY+CgkgICA8aHIvPgoJICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgICA8cCBjbGFzcz0iZ3JpZF80Ij57JG1vZC0+TGFuZygna2V5Jyl9PC9wPgoJICAgICAgIDxwIGNsYXNzPSJncmlkXzgiPnskbW9kLT5MYW5nKCdlbmdsaXNoJyl9PC9wPgoJICAgPC9kaXY+CiAgICAgICAgICAgPGRpdiBpZD0ibGFuZ2NvbnQiPjwvZGl2PgogICAgICAgPC9maWVsZHNldD4KICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJncmlkXzciPgoKPGZpZWxkc2V0IGlkPSJlZGl0b3IiPgogICAgPGxlZ2VuZD57JG1vZC0+TGFuZygnZWRpdF9lbnRyeScpfTwvbGVnZW5kPgogICAgPGZvcm0+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPip7JG1vZC0+TGFuZygna2V5Jyl9OjwvbGFiZWw+CiAgICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfOCIgaWQ9ImtleSIgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9Ik1pbmltdW0gb2YgMiBjaGFyYWN0ZXJzLCBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbHBoYWJldGljIiBwYXR0ZXJuPSJbYS16QS1aXXtsZGVsaW19MXtyZGVsaW19W2EtekEtWjAtOV8tXXtsZGVsaW19MSx7cmRlbGltfSJyZXF1aXJlZCB0aXRsZT0ieyRtb2QtPkxhbmcoJ3Rfa2V5Jyl9Ii8+CiAgICA8L2Rpdj4KICAgIHtmb3JlYWNoICRsYW5ndWFnZXMgYXMgJGxhbmd9CiAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JGxhbmd9PC9sYWJlbD4KICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9ImdyaWRfOCBlZGl0X2xhbmciIGRhdGEtbGFuZz0ieyRsYW5nfSI+PC90ZXh0YXJlYT4KICAgICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj4mbmJzcDs8L2xhYmVsPgogICAgICAgPGJ1dHRvbiBpZD0iYXBwbHkiIHRpdGxlPSJ7JG1vZC0+TGFuZygndF9hcHBseScpfSI+e2xhbmcoJ2FwcGx5Jyl9PC9idXR0b24+CiAgICAgICA8YnV0dG9uIGlkPSJkZWwiIHRpdGxlPSJ7JG1vZC0+TGFuZygndF9kZWxldGUnKX0iPntsYW5nKCdkZWxldGUnKX08L2J1dHRvbj4KICAgICAgIDxidXR0b24gaWQ9ImdvdG9fZmlyc3QiIHRpdGxlPSJ7JG1vZC0+TGFuZygndF9nb3RvX2ZpcnN0Jyl9Ij4mbHQ7Jmx0OzwvYnV0dG9uPgogICAgICAgPGJ1dHRvbiBpZD0iZ290b19wcmV2IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RfZ290b19wcmV2Jyl9Ij4mbHQ7PC9idXR0b24+CiAgICAgICA8YnV0dG9uIGlkPSJnb3RvX25leHQiIHRpdGxlPSJ7JG1vZC0+TGFuZygndF9nb3RvX25leHQnKX0iPiZndDs8L2J1dHRvbj4KICAgICAgIDxidXR0b24gaWQ9ImdvdG9fbmV4dHV0IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RfZ290b19uZXh0dXQnKX0iPiomZ3Q7PC9idXR0b24+CiAgICAgICA8YnV0dG9uIGlkPSJnb3RvX2xhc3QiIHRpdGxlPSJ7JG1vZC0+TGFuZygndF9nb3RvX2xhc3QnKX0iPiZndDsmZ3Q7PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDwvZm9ybT4KPC9maWVsZHNldD4KCiAgICA8L2Rpdj57KiAuZ3JpZF83ICp9CjwvZGl2PgoKe2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdzZXR0aW5ncycpfTwvaDM+Cgp7Zm9ybV9zdGFydH0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdkZmx0X2xhbmdzJyl9PC9sYWJlbD4KICAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzgiIG5hbWU9ImxhbmdzIiByb3dzPSI1Ij57JGxhbmdzfTwvdGV4dGFyZWE+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPHAgY2xhc3M9ImdyaWRfMyI+Jm5ic3A7PC9wPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iY2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X3JlYWxtfSI+e2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCduZXdfcmVhbG0nKX08L2E+CiAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fcHJlZnN9Ij57YWRtaW5faWNvbiBpY29uPSdydW4uZ2lmJ30geyRtb2QtPkxhbmcoJ3NldHRpbmdzJyl9PC9hPgo8L2Rpdj4KCntpZiBlbXB0eSgkcmVhbG1zKX0KICAge2NnZV9hZG1pbl9lcnJvciBlcnJvcj0kbW9kLT5MYW5nKCdlcnJvcl9ub3JlYWxtcycpfQp7ZWxzZX0KICAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgIDx0cj4KCSAgICA8dGg+eyRtb2QtPkxhbmcoJ3JlYWxtJyl9PC90aD4KCSAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CgkgPC90cj4KICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5PgogICAgICB7Zm9yZWFjaCAkcmVhbG1zIGFzICRyZWFsbSA9PiAkZmlsZX0KICAgICAgICAge2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X3JlYWxtIHJlYWxtPSRyZWFsbSBhc3NpZ249ZWRpdHVybH0KCSA8dHI+CgkgICAgPHRkPgogICAgICAgICAgICAgICA8YSBocmVmPSJ7JGVkaXR1cmx9Ij57JHJlYWxtfTwvYT4KCSAgICA8L3RkPgoJICAgIDx0ZD4KICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRlZGl0dXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZicgYWx0PScnfTwvYT4KCSAgICA8L3RkPgoJICAgIDx0ZD4KICAgICAgICAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9kZWxfcmVhbG0gcmVhbG09JHJlYWxtfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnIGFsdD0nJ308L2E+CgkgICAgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgey9mb3JlYWNofQogICAgICA8L3Rib2R5PgogICA8L3RhYmxlPgp7L2lmfQ==]]></data>
	</file>
</module>
