<?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>SecureLogin</name>
	<version>1.0.1</version>
  <mincmsversion>1.11.5</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPk1vZHVsZSBzZWN1cmVzIGxvZ2luIHByb2Nlc3Mgd2l0aCBpcC13aGl0ZWxpc3QuIFdoZW4gdXNlciBpcyBsb2dnaW5nIGluIG1vZHVsZSB3aWxsIGNoZWNrIGlmIGhpcy9oZXJzIGlwIGlzIGluIHRoZSB3aGl0ZWxpc3QuIElmIG5vdCwgdXNlciB3aWxsIGdldCBhbiBlbWFpbCB3aXRoIGxpbmssIHdoaWNoIGFkZHMgdXNlcidzIGlwIGluIHRoZSBsaXN0IGFmdGVyIGNsaWNrLiAgICBIZWxwcyBlc3BlY2lhbGx5IGlmIHVzZXIgbG9zdCBoaXMgY3JlZGVudGlhbHMsIGF0dGFja2VyIHdpbGwgbm90IGJlIGFibGUgdG8gbG9naW4gYmVjYXVzZSBvZiBpcCBjaGVjay48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BbGwgeW91IG5lZWQgdG8gZG8gaXMgdG8gaW5zdGFsbCBtb2R1bGUuIEFmdGVyIHNvbWVvbmUgaGFzIHRyaWVkIHRvIGxvZyBpbiBmcm9tIG5ldyBpcCwgeW91IGNhbiBhcHByb3ZlIGl0IG1hbnVhbGx5IGZyb20gbWFuYWdlbWVudCBwYWdlIHVuZGVyICJTaXRlIEFkbWluIi48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMywgSm9uaSBIYXNhbmVuIDxhIGhyZWY9Im1haWx0bzpqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Ij4mbHQ7am9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNYWlsZXIgPSZndDsgNS4yLjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKb25pIEhhc2FuZW4gJmx0O2pvbmkuaGFzYW5lbkBwaWVjZW9mY29kZS5uZXQmZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMS4wLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT5WZXJzaW9uIDEuMC8xLjAuMSAtIDIxIFNlcHRlbWJlciAyMDEzLiBGaXJzdCByZWxlYXNlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCBiZXRhNCAtIDEwIE1heSAyMDEzLiBSZWxlYXNpbmcgZm91cnRoIGJldGEuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGEzIC0gMDkgTWF5IDIwMTMuIFJlbGVhc2luZyB0aGlyZCBiZXRhLjwvbGk+CjxsaT5WZXJzaW9uIDEuMCBiZXRhMiAtIDA5IE1heSAyMDEzLiBSZWxlYXNpbmcgc2Vjb25kIGJldGEuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGEgLSAyNyBBcHJpbCAyMDEzLiBSZWxlYXNpbmcgZmlyc3QgYmV0YS48L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[Module secures login process with ip-whitelist. When user is logging in module will check if his/hers ip is in the whitelist. If not, user will get an email with link, which adds user's ip in the list after click.    Helps especially if user lost his credentials, attacker will not be able to login because of ip check.]]></description>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>5.2.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKCXsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJfQoKLyogLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIENvZGUgZm9yIFNlY3VyZUxvZ2luICJkZWZhdWx0YWRtaW4iIGFkbWluIGFjdGlvbgoKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCgoqLwoKJHVzZXJvcHMgPSBjbXNtcygpLT5HZXRVc2VyT3BlcmF0aW9ucygpOwokdXNlciA9ICR1c2Vyb3BzLT5Mb2FkVXNlckJ5SUQoZ2V0X3VzZXJpZCgpKTsKJGN1cnJlbnRfaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCiR2YWxpZGF0ZV9pZCA9IGlzc2V0KCRwYXJhbXNbJ3ZhbGlkYXRlX2lkJ10pID8gJHBhcmFtc1sndmFsaWRhdGVfaWQnXSA6ICcnOwppZighZW1wdHkoJHZhbGlkYXRlX2lkKSl7CgkkdGhpcy0+c2VjdXJlTG9naW4oKS0+dXBkYXRlVmFsaWRhdGVTdGF0dXMoJHZhbGlkYXRlX2lkLCB0cnVlKTsKfQokaW52YWxpZGF0ZV9pZCA9IGlzc2V0KCRwYXJhbXNbJ2ludmFsaWRhdGVfaWQnXSkgPyAkcGFyYW1zWydpbnZhbGlkYXRlX2lkJ10gOiAnJzsKaWYoIWVtcHR5KCRpbnZhbGlkYXRlX2lkKSl7CgkkdGhpcy0+c2VjdXJlTG9naW4oKS0+dXBkYXRlVmFsaWRhdGVTdGF0dXMoJGludmFsaWRhdGVfaWQsIGZhbHNlKTsKfQoKJHJvd3MgPSAkdGhpcy0+c2VjdXJlTG9naW4oKS0+Z2V0QWxsSXBzKCk7CiRjdXJyZW50ID0gbnVsbDsKJGVudHJpZXMgPSBhcnJheSgpOwpmb3JlYWNoICgkcm93cyBhcyAka2V5ID0+ICRyb3cpIHsKCSRlbnRyeSA9IG5ldyBzdGRDbGFzcygpOwoJJGVudHJ5LT5pZCA9ICRyb3dbJ2lkJ107CgkkZW50cnktPnVzZXJuYW1lID0gJHJvd1sndXNlcm5hbWUnXTsKCSRlbnRyeS0+aXAgPSAkcm93WydpcCddOwoJJGVudHJ5LT5mb3JfYWxsID0gJHJvd1snZm9yX2FsbCddOwoJJGVudHJ5LT52YWxpZGF0ZWQgPSAkcm93Wyd2YWxpZGF0ZWQnXSA9PSAxID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJzsKCSRlbnRyeS0+dmFsaWRhdGlvbkFjdGlvbiA9ICRyb3dbJ3ZhbGlkYXRlZCddID09IDAgPwoJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICR0aGlzLT5MYW5nKCd2YWxpZGF0ZScpLCBhcnJheSgndmFsaWRhdGVfaWQnID0+ICRyb3dbJ2lkJ10pKToKCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkdGhpcy0+TGFuZygnaW52YWxpZGF0ZScpLCBhcnJheSgnaW52YWxpZGF0ZV9pZCcgPT4gJHJvd1snaWQnXSkpOwoKCWlmKCR1c2VyLT51c2VybmFtZSA9PSAkcm93Wyd1c2VybmFtZSddICYmCgkJJGN1cnJlbnRfaXAgPT0gJHJvd1snaXAnXSl7CgkJJGN1cnJlbnQgPSAkZW50cnk7Cgl9IGVsc2UgewoJCWFycmF5X3B1c2goJGVudHJpZXMsICRlbnRyeSk7Cgl9Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignZW1haWx0ZW1wbGF0ZWxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlbWFpbHRlbXBsYXRlJywgJycsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS50aXRsZScpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FwdGlvbl91c2VybmFtZScsICR0aGlzLT5MYW5nKCd1c2VybmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXB0aW9uX2lwJywgJHRoaXMtPkxhbmcoJ2lwJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRpb25fY3VycmVudCcsICR0aGlzLT5MYW5nKCdjdXJyZW50X3VzZXInKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FwdGlvbl9hY3Rpb25zJywgJHRoaXMtPkxhbmcoJ2FjdGlvbnMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW50cmllcycsICRlbnRyaWVzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXJyZW50JywgJGN1cnJlbnQpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlbnRyaWVzLnRwbCcpOw==]]></data>
	</file>
	<file>
	  <filename>/action.emailtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKICB7CiAgcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgfQppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkpewogICR0ZW1wbGF0ZSA9ICRwYXJhbXNbJ3RlbXBsYXRlJ107CiAgaWYoZW1wdHkoJHRlbXBsYXRlKSl7CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuZGVmYXVsdCcpOwogIH0KICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1haWwudGVtcGxhdGUnLCAkdGVtcGxhdGUpOwp9CmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSB8fCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpewogICR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nKTsKfQoKJHRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYWlsLnRlbXBsYXRlJyk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ2VtYWlsLnRlbXBsYXRlLnRpdGxlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ZhcmlhYmxlcycsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS52YXJpYWJsZXMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGludCcsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS5oaW50JykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VtYWlsdGVtcGxhdGUnLCcnLCdwb3N0JywnJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGUnLCR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGVtcGxhdGUsICd0ZW1wbGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuY2FuY2VsJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhcHBseScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuYXBwbHknKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlbWFpbC50ZW1wbGF0ZS50cGwnKTs=]]></data>
	</file>
	<file>
	  <filename>/action.securelogin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Cmdsb2JhbCAkY29uZmlnOwoKJHJlZ2V4cF9zdHJpbmcgPSAiL1xBW1x3XSpcWi8iOwoKJHJlYWxfaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKJGlwID0gJHBhcmFtc1snaXAnXTsKJHVzZXIgPSAkcGFyYW1zWyd1c2VybmFtZSddOwoka2V5ID0gJHBhcmFtc1sna2V5J107CmlmKCRyZWFsX2lwID09ICRpcAogICYmIHByZWdfbWF0Y2goJHJlZ2V4cF9zdHJpbmcsICR1c2VyKQogICYmIHByZWdfbWF0Y2goJHJlZ2V4cF9zdHJpbmcsICRrZXkpKXsKICAkdGhpcy0+c2VjdXJlTG9naW4oKS0+dmFsaWRhdGVLZXkoJGtleSwgJHJlYWxfaXAsICR1c2VyKTsKICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluKCRjb25maWdbJ2FkbWluX3VybCddKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/event.Core.LoginPost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwpnbG9iYWwgJGNvbmZpZzsKCiRzZWN1cmVMb2dpbiA9ICR0aGlzLT5zZWN1cmVMb2dpbigpOwokdXNlciA9ICRwYXJhbXNbJ3VzZXInXTsKJHVzZXJuYW1lID0gJHVzZXItPnVzZXJuYW1lOwoKJHBhcmFtc2Zvcl9tb2R1bGVbJ21vZHVsZSddID0gJ1NlY3VyZUxvZ2luJzsKY21zX21vZHVsZV9wbHVnaW4oJHBhcmFtc2Zvcl9tb2R1bGUsJHRoaXMtPnNtYXJ0eSk7CiRtaWRfY2FjaGUgPSBjbXNfdXRpbHM6OmdldF9hcHBfZGF0YSgnbWlkX2NhY2hlJyk7CiRpZCA9IGFycmF5X3NoaWZ0KGFycmF5X3ZhbHVlcygkbWlkX2NhY2hlKSk7CgokaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKJGNvbnRpbnVlTG9naW4gPSAkc2VjdXJlTG9naW4tPnVzZXJJc0FsbG93ZWRUb0xvZ2luKCR1c2VybmFtZSwgJGlwKTsKaWYoISRjb250aW51ZUxvZ2luKXsKCiAgJGNvbmZpZ1BhcmFtID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gICdyb290X3VybCcgOiAnc3NsX3VybCc7CiAgJHZhbGlkYXRpb25LZXkgPSAkc2VjdXJlTG9naW4tPmNyZWF0ZVZhbGlkYXRpb25LZXkoJHVzZXJuYW1lLCAkaXApOwoKICAkY21zbWFpbGVyID0mIENNU01vZHVsZTo6R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwoKICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCR1c2VyLT5lbWFpbCwgaHRtbF9lbnRpdHlfZGVjb2RlKCR1c2VyLT5maXJzdG5hbWUgLiAnICcgLiAkdXNlci0+bGFzdG5hbWUpKTsKICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCR0aGlzLT5MYW5nKCdlbWFpbC5zdWJqZWN0JykpOwoKICAkdXJsX3BhcmFtcyA9IGFycmF5KCdpcCcgPT4gJGlwLCAna2V5JyA9PiAkdmFsaWRhdGlvbktleSwgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUpOwogICR1cmwgPSAkdGhpcy0+Q3JlYXRlRnJvbnRFbmRMaW5rKCRpZCwgJHRoaXMtPmdldExhbmRpbmdQYWdlSWQoKSwgJ3NlY3VyZWxvZ2luJywgJycsICR1cmxfcGFyYW1zLCAnJywgdHJ1ZSAsIHRydWUgKTsKICAkZW1haWxfYm9keSA9IHN0cl9yZXBsYWNlKCdbdXJsXScsICR1cmwsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWFpbC50ZW1wbGF0ZScpKTsKICAkY21zbWFpbGVyLT5TZXRCb2R5KCRlbWFpbF9ib2R5KTsKICAkY21zbWFpbGVyLT5TZW5kKCk7CiAgc2Vzc2lvbl9kZXN0cm95KCk7CiAgJF9TRVNTSU9OWyJyZWRpcmVjdF91cmwiXSA9ICRjb25maWdbJ2FkbWluX3VybCddIC4gJy9sb2dvdXQucGhwJzsKfQ==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NlY3VyZSBsb2dpbic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUmVhbGx5PyBBcmUgeW91IHN1cmUKeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAkbGFuZ1sndW5pbnN0YWxsZWQnXTsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdNb2R1bGUgc2VjdXJlcyBsb2dpbiBwcm9jZXNzIHdpdGggaXAtd2hpdGVsaXN0LiBXaGVuIHVzZXIgaXMgbG9nZ2luZyBpbiBtb2R1bGUgd2lsbCBjaGVjayBpZiBoaXMvaGVycyBpcCBpcyBpbiB0aGUgd2hpdGVsaXN0LiBJZiBub3QsIHVzZXIgd2lsbCBnZXQgYW4gZW1haWwgd2l0aCBsaW5rLCB3aGljaCBhZGRzIHVzZXJcJ3MgaXAgaW4gdGhlIGxpc3QgYWZ0ZXIgY2xpY2suICAgIEhlbHBzIGVzcGVjaWFsbHkgaWYgdXNlciBsb3N0IGhpcyBjcmVkZW50aWFscywgYXR0YWNrZXIgd2lsbCBub3QgYmUgYWJsZSB0byBsb2dpbiBiZWNhdXNlIG9mIGlwIGNoZWNrLic7CgokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZFsnYWRtaW5fdGl0bGUnXSA9ICdTZWN1cmUgbG9naW4gQWRtaW4gUGFuZWwnOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ107CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdCZSBzdXJlIHRvIHNldCAiU2VjdXJlTG9naW4gbWFuYWdlbWVudCIgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4wLzEuMC4xIC0gMjEgU2VwdGVtYmVyIDIwMTMuIEZpcnN0IHJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGE0IC0gMTAgTWF5IDIwMTMuIFJlbGVhc2luZyBmb3VydGggYmV0YS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YTMgLSAwOSBNYXkgMjAxMy4gUmVsZWFzaW5nIHRoaXJkIGJldGEuPC9saT4KPGxpPlZlcnNpb24gMS4wIGJldGEyIC0gMDkgTWF5IDIwMTMuIFJlbGVhc2luZyBzZWNvbmQgYmV0YS48L2xpPgo8bGk+VmVyc2lvbiAxLjAgYmV0YSAtIDI3IEFwcmlsIDIwMTMuIFJlbGVhc2luZyBmaXJzdCBiZXRhLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+TW9kdWxlIHNlY3VyZXMgbG9naW4gcHJvY2VzcyB3aXRoIGlwLXdoaXRlbGlzdC4gV2hlbiB1c2VyIGlzIGxvZ2dpbmcgaW4gbW9kdWxlIHdpbGwgY2hlY2sgaWYgaGlzL2hlcnMgaXAgaXMgaW4gdGhlIHdoaXRlbGlzdC4gSWYgbm90LCB1c2VyIHdpbGwgZ2V0IGFuIGVtYWlsIHdpdGggbGluaywgd2hpY2ggYWRkcyB1c2VyXCdzIGlwIGluIHRoZSBsaXN0IGFmdGVyIGNsaWNrLiAgICBIZWxwcyBlc3BlY2lhbGx5IGlmIHVzZXIgbG9zdCBoaXMgY3JlZGVudGlhbHMsIGF0dGFja2VyIHdpbGwgbm90IGJlIGFibGUgdG8gbG9naW4gYmVjYXVzZSBvZiBpcCBjaGVjay48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BbGwgeW91IG5lZWQgdG8gZG8gaXMgdG8gaW5zdGFsbCBtb2R1bGUuIEFmdGVyIHNvbWVvbmUgaGFzIHRyaWVkIHRvIGxvZyBpbiBmcm9tIG5ldyBpcCwgeW91IGNhbiBhcHByb3ZlIGl0IG1hbnVhbGx5IGZyb20gbWFuYWdlbWVudCBwYWdlIHVuZGVyICJTaXRlIEFkbWluIi48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMywgSm9uaSBIYXNhbmVuIDxhIGhyZWY9Im1haWx0bzpqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Ij4mbHQ7am9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKCiRsYW5nWydhY3Rpb25zJ10gPSAnQWN0aW9ucyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ2lwJ10gPSAnSVAnOwokbGFuZ1snY3VycmVudF91c2VyJ10gPSAnQ3VycmVudCB1c2VyJzsKJGxhbmdbJ3ZhbGlkYXRlJ10gPSBzcHJpbnRmKCdWYWxpZGF0ZSAlcycsICRsYW5nWydpcCddKTsKJGxhbmdbJ2ludmFsaWRhdGUnXSA9IHNwcmludGYoJ0ludmFsaWRhdGUgJXMnLCAkbGFuZ1snaXAnXSk7CiRsYW5nWydlbWFpbC5zdWJqZWN0J10gPSAnTG9naW4gZnJvbSB1bmF1dGhvcml6ZWQgaXAnOwokbGFuZ1snZW1haWwudGVtcGxhdGUudGl0bGUnXSA9ICdFbWFpbC10ZW1wbGF0ZSc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5kZWZhdWx0J10gPSAnSGkhCgpJdCBsb29rcyBsaWtlIHlvdSBoYXZlIGJlZW4gdHJ5aW5nIHRvIGxvZ2luIGZyb20gdW5hdXRob3JpemVkIGlwLWFkZHJlc3MuIFBsZWFzZSBjbGljayBmb2xsb3dpbmcgbGluayB0byBhcHByb3ZlIGlwLWFkZHJlc3M6IFt1cmxdLgoKSWYgeW91IGhhdmVuXCd0IHRyaWVkIHRvIGxvZyBpbiwgaXQgd291bGQgYmUgZ29vZCB0byBjaGFuZ2UgeW91ciBwYXNzd29yZCBpbW1lZGlhdGVseSEKClRoaXMgaXMgYXV0b21hdGljIG1lc3NhZ2UgYW5kIGl0IG5lZWRzIG5vIHJlc3BvbnNlLic7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS52YXJpYWJsZXMnXSA9ICcKWW91IGNhbiB1c2UgZm9sbG93aW5nIHZhcmlhYmxlcyBpbiB0ZW1wbGF0ZTo8YnIgLz4KPHVsPgo8bGk+W3VybF0gPSBVcmwgZm9yIGFwcHJvdmluZyBJUC1hZGRyZXNzPC9saT4KPC91bD4nOwokbGFuZ1snZW1haWwudGVtcGxhdGUuc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmNhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydlbWFpbC50ZW1wbGF0ZS5hcHBseSddID0gJ0FwcGx5JzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmhpbnQnXSA9ICcoRm9yIHRoZSBkZWZhdWx0IHRlbXBsYXRlLCBzYXZlIHRlbXBsYXRlIGFzIGVtcHR5KSc7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NlY3VyZSBsb2dpbic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnT2lrZWFzdGk/IE9sZXRrbyB2YXJtYSwgZXR0w6QgaGFsdWF0IHBvaXN0YWEgdMOkbcOkbiBtb2R1dWxpbj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1dWxpIHBvaXN0ZXR0dS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJGxhbmdbJ3VuaW5zdGFsbGVkJ107CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1dWxpc3RhIGFzZW5uZXR0dSB2ZXJzaW8gJXMgLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHV1bGkgcMOkaXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnTW9kdXVsaSBzdW9qYWEga2lyamF1dHVtaXNwcm9zZXNzaW4gdGFya2lzdGFtYWxsYSBpcC1vc29pdHRlZW4gaHl2w6Rrc3l0eWlzdMOkIG9zb2l0dGVpc3RhLiBLdW4ga8OkeXR0w6Rqw6Qgb24ga2lyamF1dHVtYXNzYSwgbW9kdWxpIHRhcmtpc3RhYSBvbmtvIGjDpG5lbiBpcC1vc29pdHRlZW5zYSBoeXbDpGtzeXR0eWplbiBpcC1vc290dGVpZGVuIGxpc3RhbGxhLiBKb3MgZWksIG5paW4ga8OkeXR0w6Rqw6RsbGUgbMOkaGV0w6TDpG4gc8OkaGvDtnBvc3RpbGxhIGxpbmtraSwgam90YSBrbGlra2FhbW1hbGxhIGlwLW9zb2l0ZSBoeXbDpGtzeXTDpMOkbi4gQXV0dGFhIGVyaXR5aXNlc3RpLCBqb3MgdHVubnVrc2V0IG92YXQgam91dHVuZWV0IHbDpMOkcmlpbiBrw6RzaWluLCBoecO2a2vDpMOkasOkIGVpIHB5c3R5IGtpcmphdXR1bWFhbiB0dW5udWtzaWxsYSwga29za2EgaXAtb3NvaXRlIHRhcmtpc3RldGFhbi4nOwoKJGxhbmdbJ2Vycm9yJ10gPSAnVmlyaGUhJzsKJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnU2VjdXJlIGxvZ2luIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICRsYW5nWydtb2RkZXNjcmlwdGlvbiddOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnUMOkw6RzeSBraWVsbGV0dHkuIFRhcmtpc3RhIGvDpHl0dMO2b2lrZXV0ZXNpLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0vDpHkgYXNldHRhbWFzc2EgIlNlY3VyZUxvZ2luIG1hbmFnZW1lbnQiIG9pa2V1ZGV0IHRhcnZpdHRhdmlsbGUgaGVua2lsw7ZpbGxlISc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpbyAxLjAvMS4wLjEgLSAyMSBTeXlza3V1IDIwMTMuIEVuc2ltbcOkaXNlbiB2ZXJzaW9uIGp1bGthaXN0dS48L2xpPgo8bGk+VmVyc2lvIDEuMCBiZXRhMyAtIDI3IFRvdWtva3V1IDIwMTMuIEtvbG1hcyBiZXRhIGp1bGthaXN0dS48L2xpPgo8bGk+VmVyc2lvIDEuMCBiZXRhMiAtIDI3IFRvdWtva3V1IDIwMTMuIFRvaW5lbiBiZXRhIGp1bGthaXN0dS48L2xpPgo8bGk+VmVyc2lvIDEuMCBiZXRhIC0gMjcgSHVodGlrdXUgMjAxMy4gRW5zaW1tw6RpbmVuIGJldGEganVsa2Fpc3R1LjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+TWl0w6QgdMOkbcOkIHRla2VlPzwvaDM+CjxwPk1vZHV1bGkgc3VvamFhIGtpcmphdXR1bWlzcHJvc2Vzc2luIHRhcmtpc3RhbWFsbGEgaXAtb3NvaXR0ZWVuIGh5dsOka3N5dHlpc3TDpCBvc29pdHRlaXN0YS4gS3VuIGvDpHl0dMOkasOkIG9uIGtpcmphdXR1bWFzc2EsIG1vZHV1bGkgdGFya2lzdGFhIG9ua28gaMOkbmVuIGlwLW9zb2l0dGVlbnNhIGh5dsOka3N5dHR5amVuIGlwLW9zb3R0ZWlkZW4gbGlzdGFsbGEuIEpvcyBlaSwgbmlpbiBrw6R5dHTDpGrDpGxsZSBsw6RoZXTDpMOkbiBzw6Roa8O2cG9zdGlsbGEgbGlua2tpLCBqb3RhIGtsaWtrYWFtbWFsbGEgaXAtb3NvaXRlIGh5dsOka3N5dMOkw6RuLiBBdXR0YWEgZXJpdHlpc2VzdGksIGpvcyB0dW5udWtzZXQgb3ZhdCBqb3V0dW5lZXQgdsOkw6RyaWluIGvDpHNpaW4sIGh5w7Zra8Okw6Rqw6QgZWkgcHlzdHkga2lyamF1dHVtYWFuIHR1bm51a3NpbGxhLCBrb3NrYSBpcC1vc29pdGUgdGFya2lzdGV0YWFuLjwvcD4KPGgzPk1pdGVuIGvDpHl0w6RuIHNpdMOkPzwvaDM+CjxwPkFzZW50YW1pbmVuIHJpaXR0w6TDpC4gVGFydml0dGFlc3NhIGlwOm4gdm9pIGvDpHlkw6QgaHl2w6Rrc3ltw6Rzc8OkIGhhbGxpbnRhc2l2dWx0YSAiU2l2dXN0b24gaGFsbGludGEiLW9zaW9zdGEuPC9wPgo8aDM+VHVraTwvaDM+CjxwPk9oamVsbWEgdGFyam90YWFuIHNlbGxhaXNlbmFhbiBHUEwtbGlzZW5zc2luIGFsYWlzZW5hLiBMaXPDpHRpZXRvamEgbGlzZW5zc2lzdMOkIHZvaXQgbHVrZWEgYWxsYSBvbGV2YXN0YSBsaW5raXN0w6QuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEzLCBKb25pIEhhc2FuZW4gPGEgaHJlZj0ibWFpbHRvOmpvbmkuaGFzYW5lbkBwaWVjZW9mY29kZS5uZXQiPiZsdDtqb25pLmhhc2FuZW5AcGllY2VvZmNvZGUubmV0Jmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwoKJGxhbmdbJ2FjdGlvbnMnXSA9ICdUb2ltaW5ub3QnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdLw6R5dHTDpGrDpHR1bm51cyc7CiRsYW5nWydpcCddID0gJ0lQJzsKJGxhbmdbJ2N1cnJlbnRfdXNlciddID0gJ1Npc8Okw6Rua2lyamF1dHVudXQga8OkeXR0w6Rqw6QnOwokbGFuZ1sndmFsaWRhdGUnXSA9IHNwcmludGYoJ0h5dsOka3N5ICVzJywgJGxhbmdbJ2lwJ10pOwokbGFuZ1snaW52YWxpZGF0ZSddID0gc3ByaW50ZignRXN0w6QgJXMnLCAkbGFuZ1snaXAnXSk7CiRsYW5nWydlbWFpbC5zdWJqZWN0J10gPSAnS2lyamF1dHVtaW5lbiB0dW50ZW1hdHRvbWFzdGEgaXAtb3NvaXR0ZWVzdGEnOwokbGFuZ1snZW1haWwudGVtcGxhdGUudGl0bGUnXSA9ICdTw6Roa8O2cG9zdGktcG9oamEnOwokbGFuZ1snZW1haWwudGVtcGxhdGUuZGVmYXVsdCddID0gJ0hlaSEKCk7DpHl0dMOkw6Qgc2lsdMOkLCBldHTDpCBqb2t1IG9uIHlyaXR0w6RueXQga2lyamF1dHVhIHR1bnRlbWF0dG9tYXN0YSBpcC1vc29pdHRlZXN0YS4gVmFodmlzdGEgaXAtb3NvaXRlIG1lbmVtw6RsbMOkIHNldXJhYXZhYW4gb3NvaXR0ZWVzZWVuOiBbdXJsXS4KCkpvcyBldCB5cml0dMOkbnl0IGtpcmphdXR1YSwgb24gc3Vvc2l0ZWx0YXZhYSB2YWlodGFhIHNhbGFzYW5hIEhFVEkhCgpUw6Rtw6Qgb24gYXV0b21hYXR0aW5lbiB2aWVzdGkgZWlrw6QgdMOkaMOkbiB0YXJ2aXRzZSB2YXN0YXRhJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLnZhcmlhYmxlcyddID0gJwpWb2l0IGvDpHl0dMOkw6Qgc2V1cmFhdmlhIG11dXR0dWppYSBwb2hqYXNzYTo8YnIgLz4KPHVsPgo8bGk+W3VybF0gPSBPc29pdGUsIGpvbGxhIElQLW9zb2l0ZSBoeXbDpGtzeXTDpMOkbjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLnN1Ym1pdCddID0gJ0zDpGhldMOkJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmNhbmNlbCddID0gJ1BlcnV1dGEnOwokbGFuZ1snZW1haWwudGVtcGxhdGUuYXBwbHknXSA9ICdLw6R5dMOkJzsKJGxhbmdbJ2VtYWlsLnRlbXBsYXRlLmhpbnQnXSA9ICcoU2FhZGFrc2VzaSBvbGV0dXMgcG9oamFuLCB0YWxsZW5uYSBwb2hqYSB0eWhqw6Ruw6QpJzs=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/SecureLogin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIHBpZWNlb2Zjb2RlOwpjbGFzcyBTZWN1cmVMb2dpbnsKCiAgcHJpdmF0ZSAkX2RiOwogIHByaXZhdGUgJF93aGl0ZWxpc3RUYWJsZTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkYiwgJHRhYmxlUHJlZml4KXsKICAgICR0aGlzLT5fZGIgPSAkZGI7CiAgICAkdGhpcy0+X3doaXRlbGlzdFRhYmxlID0gJHRhYmxlUHJlZml4IC4gJ193aGl0ZWxpc3QnOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRSb3dCeVVzZXJuYW1lQW5kSXAoJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0ZWQgPSAxKXsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQsIHZhbGlkYXRlV2l0aEtleSwgdXNlcm5hbWUsIGlwIEZST00gJyAuICR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnIFdIRVJFIHVzZXJuYW1lID0gPyBBTkQgaXAgPSA/IEFORCB2YWxpZGF0ZWQgPSA/JzsKICAgICRyZXN1bHQgPSAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0ZWQpKTsgIAoKICAgIAogICAgaWYoJHJlc3VsdCl7CiAgICAgIHJldHVybiAkcmVzdWx0LT5GZXRjaFJvdygpOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gdXNlcklzQWxsb3dlZFRvTG9naW4oJHVzZXJuYW1lLCAkaXApewogICAgaWYoJHRoaXMtPmdldFJvd0J5VXNlcm5hbWVBbmRJcCgkdXNlcm5hbWUsICRpcCkgIT0gbnVsbCl7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRpb25LZXkoJHVzZXJuYW1lLCAkaXApewogICAgJHJvdyA9ICR0aGlzLT5nZXRSb3dCeVVzZXJuYW1lQW5kSXAoJHVzZXJuYW1lLCAkaXAsIDApOwogICAgaWYoJHJvdyAhPSBudWxsKXsKICAgICAgJHZhbGlkYXRpb25LZXkgPSAkcm93Wyd2YWxpZGF0ZVdpdGhLZXknXTsKICAgIH0gZWxzZSB7CiAgICAgICR2YWxpZGF0aW9uS2V5ID0gbWQ1KHRpbWUoKSAuICR1c2VybmFtZSAuICRpcCAuIHJhbmQoKSk7CiAgICAgICRpZCA9ICR0aGlzLT5fZGItPkdlbklEKCR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnX3NlcScpOwoKICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiAkdGhpcy0+X3doaXRlbGlzdFRhYmxlIC4gJyAoaWQsIHVzZXJuYW1lLCBpcCwgdmFsaWRhdGVXaXRoS2V5KSBWQUxVRVMgKD8sID8sID8sID8pJzsKICAgICAgJHRoaXMtPl9kYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpZCwgJHVzZXJuYW1lLCAkaXAsICR2YWxpZGF0aW9uS2V5KSk7CiAgICB9CiAgICByZXR1cm4gJHZhbGlkYXRpb25LZXk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWxsSXBzKCl7CiAgICAkZW50cmllcyA9IGFycmF5KCk7CiAgICAgICAgCiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkLCB1c2VybmFtZSwgaXAsIGZvcl9hbGwsIHZhbGlkYXRlZCAgRlJPTSAnLiAkdGhpcy0+X3doaXRlbGlzdFRhYmxlIC4gJyBPUkRFUiBCWSB1c2VybmFtZSBBU0MnOwogICAgJHJlc3VsdCA9ICR0aGlzLT5fZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIHdoaWxlKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpewogICAgICBhcnJheV9wdXNoKCRlbnRyaWVzLCAkcm93KTsKICAgIH0KICAgIHJldHVybiAkZW50cmllczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGVWYWxpZGF0ZVN0YXR1cygkaWQsICR2YWxpZCl7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuICR0aGlzLT5fd2hpdGVsaXN0VGFibGUgLiAnIFNFVCB2YWxpZGF0ZWQgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHZhbGlkID8gMSA6IDAsICRpZCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlS2V5KCRrZXksICRpcCwgJHVzZXJuYW1lKXsKICAgICRxdWVyeSA9ICdVUERBVEUgJy4gJHRoaXMtPl93aGl0ZWxpc3RUYWJsZSAuICcgU0VUIHZhbGlkYXRlZCA9IDEgV0hFUkUgCiAgICB2YWxpZGF0ZVdpdGhLZXkgPSA/IEFORCBpcCA9ID8gQU5EIHVzZXJuYW1lID0gPyc7CiAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSwgJGlwLCAkdXNlcm5hbWUpKTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoKCSAgIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY3JlYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLAoJICAgY2hlY2sgb3V0IHRoZSBBRE9EQiBEYXRhIERpY3Rpb25hcnkgcGFnZSBhdAoJICAgaHR0cDovL3BocGxlbnMuY29tL2xlbnMvYWRvZGIvZG9jcy1kYXRhZGljdC5odG0KCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgogICAgICAgIC8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbgogICAgICAgICRmbGRzID0gIgoJCQlpZCBJIEtFWSwKCQkJZGVzY3JpcHRpb24gQyg4MCkKCQkJIjsKCgkJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZWN1cmVsb2dpbiIsCgkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZWN1cmVsb2dpbl9zZXEiKTsKCQkqLwoJCSR0aGlzLT5hZGRFdmVudEhhbmRsZXIoJ0NvcmUnLCdMb2dpblBvc3QnLGZhbHNlKTsKCQkvLyBwZXJtaXNzaW9ucwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdTZWN1cmVMb2dpbiBtYW5hZ2VtZW50JywnU2VjdXJlTG9naW4gbWFuYWdlbWVudCcpOwoKLy9mdW5jdGlvbiBmb3IgbmljZXIgdGFibGUgYWRkaW5nCmZ1bmN0aW9uIGFkZFRhYmxlKCRkYiwgJHRhYmxlTmFtZSwgJGZsZHMpewoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChzcHJpbnRmKCIlc21vZHVsZV9zZWN1cmVsb2dpbl8lcyIsY21zX2RiX3ByZWZpeCgpLCAkdGFibGVOYW1lKSwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSRkYi0+Q3JlYXRlU2VxdWVuY2Uoc3ByaW50ZigiJXNtb2R1bGVfc2VjdXJlbG9naW5fJXNfc2VxIixjbXNfZGJfcHJlZml4KCksICR0YWJsZU5hbWUpKTsKfQoKJGRiID0gJHRoaXMtPkdldERiKCk7CgoKYWRkVGFibGUoJGRiLCAid2hpdGVsaXN0IiwgIgoJCWlkIEkgS0VZLAoJCXVzZXJuYW1lIEMoMjUpLAoJCWlwIEMoMTUpLAoJCWZvcl9hbGwgSSBERUZBVUxUIDAsCgkJdmFsaWRhdGVXaXRoS2V5IEMoMzIpLAoJCXZhbGlkYXRlZCBJIERFRkFVTFQgMCwKCQlhZGRlZCBUUyIpOwoKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKCQkkaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQkkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJHVzZXIgPSAkdXNlcm9wcy0+TG9hZFVzZXJCeUlEKGdldF91c2VyaWQoKSk7CgoJCSRrZXkgPSAkdGhpcy0+c2VjdXJlTG9naW4oKS0+Y3JlYXRlVmFsaWRhdGlvbktleSgkdXNlci0+CXVzZXJuYW1lLCAkaXApOwoJCSR0aGlzLT5zZWN1cmVMb2dpbigpLT52YWxpZGF0ZUtleSgka2V5LCAkaXAsICR1c2VyLT51c2VybmFtZSk7CgoJCS8vIEZpeGluZyBpc3N1ZSAjOTIyNiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy92aWV3LzkyMjYKCQlpZighY2xhc3NfZXhpc3RzKCJDb250ZW50IikpewoJCQlyZXF1aXJlX29uY2Uoc3RyX3JlcGxhY2UoJy8vJywgJy8nLCAkY29uZmlnWydyb290X3BhdGgnXSAuICcvbGliL2NsYXNzZXMvY29udGVudHR5cGVzL0NvbnRlbnQuaW5jLnBocCcpKTsKCQl9CgkJJGNvbnRlbnQgPSBuZXcgQ29udGVudCgpOwoJCSRjb250ZW50LT5zZXRUZW1wbGF0ZUlkKCRnQ21zLT5HZXRUZW1wbGF0ZU9wZXJhdGlvbnMoKS0+TG9hZERlZmF1bHRUZW1wbGF0ZSgpLT5pZCk7CgkJJGNvbnRlbnQtPnNldFNob3dJbk1lbnUodHJ1ZSk7CgkJJGNvbnRlbnQtPnNldEFsaWFzKCdzZWN1cmVMb2dpbkxhbmRpbmdQYWdlJyk7CgkJJGNvbnRlbnQtPnNldElkSGllcmFyY2h5KCdzZWN1cmVMb2dpbkxhbmRpbmdQYWdlJyk7CgkJJGNvbnRlbnQtPnNldEFjdGl2ZSh0cnVlKTsKCQkkY29udGVudC0+c2V0UHJvcGVydGllcygpOwoJCSRjb250ZW50LT5zZXRPd25lcihnZXRfdXNlcmlkKCkpOwoJCSRjb250ZW50LT5zZXRNZW51VGV4dCgnU2VjdXJlTG9naW4gbGFuZGluZ1BhZ2UnKTsKCQkkY29udGVudC0+c2V0TmFtZSgnU2VjdXJlTG9naW4gbGFuZGluZ1BhZ2UnKTsKCQkkY29udGVudC0+c2V0UHJvcGVydHlWYWx1ZSgnY29udGVudF9lbicsICd7Y21zX21vZHVsZSBtb2R1bGU9IlNlY3VyZUxvZ2luIn0nKTsKCQkkY29udGVudC0+U2F2ZSgpOwoKCgkJJHRoaXMtPnNldExhbmRpbmdQYWdlSWQoJGNvbnRlbnQtPklkKCkpOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1haWwudGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnZW1haWwudGVtcGxhdGUuZGVmYXVsdCcpKTs=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoKCQkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VjdXJlbG9naW4iICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyByZW1vdmUgdGhlIHNlcXVlbmNlCgkJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NlY3VyZWxvZ2luX3NlcSIgKTsKCQkqLwoKCQkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywnTG9naW5Qb3N0Jyk7CgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdTZWN1cmVMb2dpbiBtYW5hZ2VtZW50Jyk7CgoJCWZ1bmN0aW9uIGRyb3BUYWJsZSgkZGIsICR0YWJsZU5hbWUpewoJCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgkJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoc3ByaW50ZigiJXNtb2R1bGVfc2VjdXJlbG9naW5fJXMiLGNtc19kYl9wcmVmaXgoKSwgJHRhYmxlTmFtZSkpOwoJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCSRkYi0+RHJvcFNlcXVlbmNlKHNwcmludGYoIiVzbW9kdWxlX3NlY3VyZWxvZ2luXyVzX3NlcSIsY21zX2RiX3ByZWZpeCgpLCAkdGFibGVOYW1lKSk7CgkJfQoKCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCgkJZHJvcFRhYmxlKCRkYiwgIndoaXRlbGlzdCIpOwoKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKIAkJY21zX3JvdXRlX21hbmFnZXI6OmRlbF9zdGF0aWMoJycsJHRoaXMtPkdldE5hbWUoKSk7CgokdGVtcGxhdGVvcHMgPSYgJGdDbXMtPkdldFRlbXBsYXRlT3BlcmF0aW9ucygpOwokY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKIAkJJHRlbXBsYXRlb3BzLT5EZWxldGVUZW1wbGF0ZUJ5SWQoY21zX3NpdGVwcmVmczo6Z2V0KCdTZWN1cmVMb2dpblRlbXBsYXRlSWQnKSk7CgkJJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCR0aGlzLT5nZXRMYW5kaW5nUGFnZUlkKCkpLT5EZWxldGUoKTsKIAkJY21zX3NpdGVwcmVmczo6cmVtb3ZlKCdTZWN1cmVMb2dpblRlbXBsYXRlSWQnKTsKIAkJY21zX3NpdGVwcmVmczo6cmVtb3ZlKCdlbWFpbC50ZW1wbGF0ZScpOwoJCWNtc19zaXRlcHJlZnM6OnJlbW92ZSgnU2VjdXJlTG9naW5MYW5naW5nUGFnZUlkJyk7]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJY2FzZSAiMS4wLjEiOgoJCQkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWFpbC50ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdlbWFpbC50ZW1wbGF0ZS5kZWZhdWx0JykpOwoJCQkgICAgIGJyZWFrOwoJCX0KCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/README.md</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[U2VjdXJlTG9naW4KPT09PT09PT09PT0KTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2VjdXJlbG9naW4KCk1vZHVsZSBzZWN1cmVzIGxvZ2luIHByb2Nlc3Mgd2l0aCBpcC13aGl0ZWxpc3QuIFdoZW4gdXNlciBpcyBsb2dnaW5nIGluIG1vZHVsZSB3aWxsIGNoZWNrIGlmIGhpcy9oZXJzIGlwIGlzIGluIHRoZSB3aGl0ZWxpc3QuIElmIG5vdCwgdXNlciB3aWxsIGdldCBhbiBlbWFpbCB3aXRoIGxpbmssIHdoaWNoIGFkZHMgdXNlclwncyBpcCBpbiB0aGUgbGlzdCBhZnRlciBjbGljay4gICAgSGVscHMgZXNwZWNpYWxseSBpZiB1c2VyIGxvc3QgaGlzIGNyZWRlbnRpYWxzLCBhdHRhY2tlciB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZ2luIGJlY2F1c2Ugb2YgaXAgY2hlY2suCgpQdWJsaXNoZWQgdW5kZXIgR1BMdjMuCg==]]></data>
	</file>
	<file>
	  <filename>/SecureLogin.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNlY3VyZUxvZ2luIC0gTW9kdWxlIHNlY3VyZXMgbG9naW4gcHJvY2VzcyB3aXRoIGlwLXdoaXRlbGlzdC4gV2hlbiB1c2VyIGlzIGxvZ2dpbmcgaW4gbW9kdWxlIHdpbGwgY2hlY2sgaWYgaGlzL2hlcnMgaXAgaXMgaW4gdGhlIHdoaXRlbGlzdC4gSWYgbm90LCB1c2VyIHdpbGwgZ2V0IGFuIGVtYWlsIHdpdGggbGluaywgd2hpY2ggYWRkcyB1c2VyJ3MgaXAgaW4gdGhlIGxpc3QgYWZ0ZXIgY2xpY2suICAgIEhlbHBzIGVzcGVjaWFsbHkgaWYgdXNlciBsb3N0IGhpcyBjcmVkZW50aWFscywgYXR0YWNrZXIgd2lsbCBub3QgYmUgYWJsZSB0byBsb2dpbiBiZWNhdXNlIG9mIGlwIGNoZWNrLgojIFZlcnNpb246IDEuMCwgSm9uaSBIYXNhbmVuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMTMgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIGZpbGUgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IE1vZHVsZU1ha2VyIG1vZHVsZSwgdmVyc2lvbiAwLjMuMgojIENvcHlyaWdodCAoYykgMjAxMyBieSBTYW11ZWwgR29sZHN0ZWluIChzamdAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGb3IgSGVscCBidWlsZGluZyBtb2R1bGVzOgojIC0gUmVhZCB0aGUgRG9jdW1lbnRhdGlvbiBhcyBpdCBiZWNvbWVzIGF2YWlsYWJsZSBhdAojICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy8KIyAtIENoZWNrIG91dCB0aGUgU2tlbGV0b24gTW9kdWxlIGZvciBhIGNvbW1lbnRlZCBleGFtcGxlCiMgLSBMb29rIGF0IG90aGVyIG1vZHVsZXMsIGFuZCBsZWFybiBmcm9tIHRoZSBzb3VyY2UKIyAtIENoZWNrIG91dCB0aGUgZm9ydW1zIGF0IGh0dHA6Ly9mb3J1bXMuY21zbWFkZXNpbXBsZS5vcmcKIyAtIENoYXQgd2l0aCBkZXZlbG9wZXJzIG9uIHRoZSAjY21zIElSQyBjaGFubmVsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnJlcXVpcmVfb25jZSgnbGliL1NlY3VyZUxvZ2luLmNsYXNzLnBocCcpOwpjbGFzcyBTZWN1cmVMb2dpbiBleHRlbmRzIENNU01vZHVsZQp7CgoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXsKCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdTZWN1cmVMb2dpbic7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEZyaWVuZGx5TmFtZSgpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgoJICAgY29tcG9uZW50KS4KCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCSAgIH0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldFZlcnNpb24oKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBudW1iZXIgb3IKCSAgIHNvbWV0aGluZyB0aGF0IG1ha2VzIHNlbnNlIGZvciBkZXNpZ25hdGluZyBhIHZlcnNpb24uCgkgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QKCSAgIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGlzIGN1cnJlbnQsIGFuZAoJICAgdGhlIG1vZHVsZSB3aWxsIHVzZSBpdCB0byBmaWd1cmUgb3V0IGhvdyB0byB1cGdyYWRlCgkgICBpdHNlbGYgaWYgcmVxdWVzdGVkLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKQoJICAgewoJICAgCXJldHVybiAnMS4wLjEnOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRIZWxwKCkKCSAgIFRoaXMgcmV0dXJucyBIVE1MIGluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUuCgkgICBUeXBpY2FsbHksIHlvdSdsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvCgkgICB1c2UgdGhlIG1vZHVsZS4KCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEhlbHAoKQoJICAgewoJICAgCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3IoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEF1dGhvcigpCgkgICB7CgkgICAJcmV0dXJuICdKb25pIEhhc2FuZW4nOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3JFbWFpbCgpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKCSAgIHF1ZXN0aW9ucywgY2FzZXMgb2YgYmVlciwgYW5kL29yIGxhcmdlIHN1bXMgb2YgbW9uZXkuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJICAgewoJICAgCXJldHVybiAnam9uaS5oYXNhbmVuQHBpZWNlb2Zjb2RlLm5ldCc7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldENoYW5nZUxvZygpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSBBYm91dCBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgZmlndXJlIG91dCB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHJlbGVhc2VzLgoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJICAgewoJICAgCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIElzUGx1Z2luTW9kdWxlKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbgoJICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9J1NlY3VyZUxvZ2luJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBub3QgZ2V0IGluY2x1ZGVkIGluIHBhZ2VzIG9yCgkgICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJICAgewoJICAgCXJldHVybiB0cnVlOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBIYXNBZG1pbigpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIHZhbHVlLCBkZXBlbmRpbmcgb24KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCgkgICB0aGUgYWRtaW4gcGFydCBvZiB5b3VyIG1vZHVsZSB0aGUgIkFkbWluIFBhbmVsIiBmb3IKCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBIYXNBZG1pbigpCgkgICB7CgkgICAJcmV0dXJuIHRydWU7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pblNlY3Rpb24oKQoJICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKCSAgIHdoaWNoIEFkbWluIFNlY3Rpb24gKG9yIHRvcC1sZXZlbCBBZG1pbiBNZW51KSBpdCBzaG93cwoJICAgdXAgaW4uIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgdG8gc3BlY2lmeSB0aGF0CgkgICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCgkgICBtYWluICAgICAgICAtIHRoZSBNYWluIG1lbnUgdGFiLgoJICAgY29udGVudCAgICAgLSB0aGUgQ29udGVudCBtZW51CgkgICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQoJICAgdXNlcnNncm91cHMgLSB0aGUgVXNlcnMgYW5kIEdyb3VwcyBtZW51CgkgICBleHRlbnNpb25zICAtIHRoZSBFeHRlbnNpb25zIG1lbnUgKHRoaXMgaXMgdGhlIGRlZmF1bHQpCgkgICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKCSAgIHZpZXdzaXRlICAgIC0gdGhlIFZpZXcgU2l0ZSBtZW51IHRhYgoJICAgbG9nb3V0ICAgICAgLSB0aGUgTG9nb3V0IG1lbnUgdGFiCgoJICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKCSAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKCSAgIG1lbnVzLCBidXQgd2lsbCBub3QgYmUgdmlzaWJsZSBpbiBhbnkgdG9wLWxldmVsCgkgICBzZWN0aW9uIHBhZ2VzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgkgICB7CgkgICAJcmV0dXJuICdzaXRlYWRtaW4nOwoJICAgfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgoJICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2NyaXB0aW9uJyk7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBWaXNpYmxlVG9BZG1pblVzZXIoKQoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKCSAgIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IGl0J3MgZGlzcGxheWVkIGJ5IHRoZSBib29sZWFuCgkgICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCgkgICB0byBoaWRlIG1vZHVsZXMgZnJvbSBhZG1pbnMgd2hvIGxhY2sgcGVybWlzc2lvbiB0byB1c2UKCSAgIHRoZW0uCgoJICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwoJICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCSAgIHsKCSAgIAlyZXR1cm4gdHJ1ZTsKCSAgIH0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIENoZWNrQWNjZXNzKCkKCSAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAoJICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gQ2hlY2tBY2Nlc3MoJHBlcm0gPSAnU2VjdXJlTG9naW4gbWFuYWdlbWVudCcpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBEaXNwbGF5RXJyb3JQYWdlKCkKCSAgIFRoaXMgaXMgYSBzaW1wbGUgZnVuY3Rpb24gZm9yIGdlbmVyYXRpbmcgZXJyb3IgcGFnZXMuCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKCSAgIHsKCSAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJICAgCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CgkgICB9CgoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0RGVwZW5kZW5jaWVzKCkKCSAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCgkgICBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIGl0LgoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZAoJICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCgkgICBJdCBzaG91bGQgcmV0dXJuIGFuIGhhc2gsIGVnLgoJICAgcmV0dXJuIGFycmF5KCdzb21lbW9kdWxlJz0+JzEuMCcsICdvdGhlcm1vZHVsZSc9PicxLjEnKTsKCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJICAgewoJICAgCXJldHVybiBhcnJheSgnQ01TTWFpbGVyJz0+JzUuMi4xJyk7CgkgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIE1pbmltdW1DTVNWZXJzaW9uKCkKCSAgIFlvdXIgbW9kdWxlIG1heSByZXF1aXJlIGZ1bmN0aW9ucyBvciBvYmplY3RzIGZyb20KCSAgIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBDTVMgTWFkZSBTaW1wbGUuCgkgICBFdmVyIHNpbmNlIHZlcnNpb24gMC4xMSwgeW91IGNhbiBzcGVjaWZ5IHdoaWNoIG1pbmltdW0KCSAgIENNUyBNUyB2ZXJzaW9uIGlzIHJlcXVpcmVkIGZvciB5b3VyIG1vZHVsZSwgd2hpY2ggd2lsbAoJICAgcHJldmVudCBpdCBmcm9tIGJlaW5nIGluc3RhbGxlZCBieSBhIHZlcnNpb24gb2YgQ01TIHRoYXQKCSAgIGNhbid0IHJ1biBpdC4KCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1pbmltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCSAgIHsKCSAgIAlyZXR1cm4gIjEuMTEuNSI7CgkgICB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBNYXhpbXVtQ01TVmVyc2lvbigpCgkgICBZb3UgbWF5IHdhbnQgdG8gcHJldmVudCBwZW9wbGUgZnJvbSB1c2luZyB5b3VyIG1vZHVsZSBpbgoJICAgZnV0dXJlIHZlcnNpb25zIG9mIENNUyBNYWRlIFNpbXBsZSwgZXNwZWNpYWxseSBpZiB5b3UKCSAgIHRoaW5rIEFQSSBmZWF0dXJlcyB5b3UgdXNlIG1heSBjaGFuZ2UgLS0gYWZ0ZXIgYWxsLCB5b3UKCSAgIG5ldmVyIHJlYWxseSBrbm93IGhvdyB0aGUgQ01TIE1TIEFQSSBjb3VsZCBldm9sdmUuCgoJICAgU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKCSAgIHdoZW4gYSBuZXcgdmVyc2lvbiBvZiBDTVMgTVMgaXMgcmVsZWFzZWQsIHlvdSBjYW4gc2ltcGx5CgkgICByZXN0cmljdCB0aGUgdmVyc2lvbi4gVGhlbiwgb2YgY291cnNlLCB0aGUgb251cyBpcyBvbiB5b3UKCSAgIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KCSAgIG9mIHRoZSBDTVMgaXMgcmVsZWFzZWQuLi4KCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1heGltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHN1cHBvcnRzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIC8vIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCSAgIC8vIHsKCSAgIC8vIAlyZXR1cm4gIjEuMTEuNiI7CgkgICAvLyB9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCSAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJICAgfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkgICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICB7CgkgICAJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CgkgICB9CgoKCgoJLyoqCgkgKiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCSAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgbWVzc2FnZSBhbG9uZyB3aXRoIGEgWWVzL05vIGRpYWxvZyBib3guIElmIHRoZSB1c2VyIHJlc3BvbmRzCgkgKiBpbiB0aGUgYWZmaXJtYXRpdmUgdG8geW91ciBtZXNzYWdlLCB0aGUgdW5pbnN0YWxsIHdpbGwgcHJvY2VlZC4gSWYgdGhleSByZXNwb25kIGluIHRoZQoJICogbmVnYXRpdmUsIHRoZSB1bmluc3RhbGwgd2lsbCBiZSBjYW5jZWxlZC4gVGh1cywgeW91ciBtZXNzYWdlIHNob3VsZCBiZSBvZiB0aGUgZm9ybQoJICogIkFsbCBtb2R1bGUgZGF0YSB3aWxsIGJlIGRlbGV0ZWQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bmluc3RhbGwgdGhpcyBtb2R1bGU/IgoJICoKCSAqIElmIHlvdSBkb24ndCB3YW50IHRoZSBkaWFsb2csIGhhdmUgdGhpcyBtZXRob2QgcmV0dXJuIGEgRkFMU0UsIHdoaWNoIHdpbGwgY2F1c2UgdGhlCgkgKiBtb2R1bGUgdG8gdW5pbnN0YWxsIGltbWVkaWF0ZWx5IGlmIHRoZSB1c2VyIGNsaWNrcyB0aGUgInVuaW5zdGFsbCIgbGluay4KCSAqLwoJZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7Cgl9CgoJZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKCXsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKLQkJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaXAnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3VzZXJuYW1lJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdrZXknLENMRUFOX1NUUklORyk7Cgl9Cglwcml2YXRlICRfc2VjdXJlTG9naW47CgoJZnVuY3Rpb24gc2VjdXJlTG9naW4oKXsKCQlpZigkdGhpcy0+X3NlY3VyZUxvZ2luID09IG51bGwpewoJCQkkdGhpcy0+X3NlY3VyZUxvZ2luID0gbmV3IHBpZWNlb2Zjb2RlXFNlY3VyZUxvZ2luKCR0aGlzLT5HZXREYigpLCBjbXNfZGJfcHJlZml4KCkgLidtb2R1bGVfc2VjdXJlbG9naW4nKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5fc2VjdXJlTG9naW47Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHNldExhbmRpbmdwYWdlSWQoJGlkKXsKCQljbXNfc2l0ZXByZWZzOjpzZXQoJ1NlY3VyZUxvZ2luTGFuZGluZ1BhZ2VJZCcsICRpZCk7Cgl9CglwdWJsaWMgZnVuY3Rpb24gZ2V0TGFuZGluZ1BhZ2VJZCgpewoJCXJldHVybiBjbXNfc2l0ZXByZWZzOjpnZXQoJ1NlY3VyZUxvZ2luTGFuZGluZ1BhZ2VJZCcpOwoJfQp9]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD5QbGFjZSB0aGUgY29udGVudHMgb2YgeW91ciBhZG1pbiBwYW5lbCBoZXJlLjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/email.template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPnskdGl0bGV9PC9oMT4KeyRmb3JtX3N0YXJ0fQp7JHZhcmlhYmxlc30KPGVtPnskaGludH08L2VtPjxiciAvPgp7JHRlbXBsYXRlfQo8cD57JHN1Ym1pdH17JGNhbmNlbH17JGFwcGx5fTwvcD4KeyRmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/entries.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkucGFnZXRhYmxlIHRyLnZhbGlkIHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjNTZDOTFDOwoJfQoJLnBhZ2V0YWJsZSB0ci5pbnZhbGlkIHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjQjUxMjE1OwoJfQoJLnBhZ2V0YWJsZSB0aC5jdXJyZW50IHsKCQl3aWR0aDogMTAwcHg7CgkJZm9udC13ZWlnaHQ6Ym9sZDsKCX0KCS5wYWdldGFibGUgdGguYWN0aW9uIHsKCQl3aWR0aDogMTAwcHg7Cgl9Cgl0YWJsZS5wYWdldGFibGUgdGR7CgkJY29sb3I6YmxhY2s7Cgl9Cjwvc3R5bGU+CnsvbGl0ZXJhbH0KPHA+eyRlbWFpbHRlbXBsYXRlbGlua308L3A+Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiAgc3R5bGU9IndpZHRoOjEwMCUiID4KICA8dHI+CiAgICA8dGggY2xhc3M9ImN1cnJlbnQiPjwvdGg+CiAgICA8dGg+eyRjYXB0aW9uX3VzZXJuYW1lfTwvdGg+CiAgICA8dGg+eyRjYXB0aW9uX2lwfTwvdGg+CiAgICA8dGggY2xhc3M9ImFjdGlvbiI+eyRjYXB0aW9uX2FjdGlvbnN9PC90aD4KICA8L3RyPgp7aWYgaXNzZXQoJGN1cnJlbnQpfQo8dHIgY2xhc3MgPSAiY3VycmVudCB7JGN1cnJlbnQtPnZhbGlkYXRlZH0iPgogICAgPHRkPnskY2FwdGlvbl9jdXJyZW50fTwvdGQ+CiAgICA8dGQ+eyRjdXJyZW50LT51c2VybmFtZX08L3RkPgogICAgPHRkPnskY3VycmVudC0+aXB9PC90ZD4KICAgIDx0ZD48L3RkPgo8L3RyPgp7L2lmfQp7aWYgJGVudHJpZXN8QGNvdW50ID4gMH0Ke2ZvcmVhY2ggZnJvbT0kZW50cmllcyBpdGVtPWVudHJ5fQo8dHIgY2xhc3MgPSAieyRlbnRyeS0+dmFsaWRhdGVkfSI+CiAgICA8dGQ+PC90ZD4KICAgIDx0ZD57JGVudHJ5LT51c2VybmFtZX08L3RkPgogICAgPHRkPnskZW50cnktPmlwfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+dmFsaWRhdGlvbkFjdGlvbn08L3RkPgo8L3RyPgogey9mb3JlYWNofQp7L2lmfQo8L3RhYmxlPg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
