#!/bin/bash
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

check_py_ver(){
	if [ "$1" ]; then
		if [ -f "$1" ]; then
			PYVER=$($1 --version 2>&1)
			PYV=$(echo $PYVER | sed 's/.* \([0-9]\).\([0-9]*\).*/\1\2/')
			if [ "$PYV" -ge "36" ] || [ "$PYV" -eq "27" ]; then
				echo "$PYVER"				
				return 0
			fi
		fi
	fi
	return 1
}

if [ "$1" = "-pypath" ]; then
	PYPTH=$2
	check_py_ver $PYPTH
	if [ "$?" = "1" ]; then
		echo "Error: Missing or Invalid Python. Required version 3.6+ or 2.7. Try to use -pypath <path>"
		exit 1
	fi
else
	PYPTH=$(which "python3" 2>/dev/null)
	check_py_ver $PYPTH
	if [ "$?" = "1" ]; then
		PYPTH=$(which "python2.7" 2>/dev/null)
		check_py_ver $PYPTH
		if [ "$?" = "1" ]; then
			echo "Error: Missing or Invalid Python. Required version 3.6+ or 2.7. Try to use -pypath <path>"
			exit 1
		fi
	fi
fi

echo "Extracting file ..."
SKIP=`awk '/^__TARFILE_BEGIN__/ { print NR + 1; exit 0; }' $0`
APPDT=$(date +"%Y%m%d%H%M%S")
PATH_INSTALL="/tmp/dwagent_install$APPDT"
THIS=`readlink -f $0`
rm -r -f $PATH_INSTALL
mkdir $PATH_INSTALL
cd $PATH_INSTALL
tail -n +$SKIP $THIS | tar -x
chown $(id -u):$(id -g) $PATH_INSTALL -R
echo "Running installer ..."
export PYTHONIOENCODING=utf-8
$PYPTH installer.py $@
echo "Removing temp directory ..."
rm -r -f $PATH_INSTALL
exit 0
__TARFILE_BEGIN__
cacerts.pem                                                                                         0000644 0001750 0001750 00000703472 15061746500 012514  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 -----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
fF6adulZkMV8gzURZVE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
0vdXcDazv/wor3ElhVsT/h5/WrQ8
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
4SVhM7JZG+Ju1zdXtg2pEto=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
O+7ETPTsJ3xCwnR8gooJybQDJbw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
ReYNnyicsbkqWletNw+vHX/bvZ8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
+OkuE6N36B9K
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
ZQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
9u6wWk5JRFRYX0KD
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
QSdJQO7e5iNEOdyhIta6A/I=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
WD9f
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
4uJEvlz36hz1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
sSi6
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
KeC2uAloGRwYQw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
TpPDpFQUWw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
Johw1+qRzT65ysCQblrGXnRl11z+o+I=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
KwbQBM0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1
OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd
AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC
FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi
1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq
jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ
wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/
WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy
NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC
uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw
IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6
g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP
BSeOE6Fuwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
IhNzbM8m9Yop5w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
6pZjamVFkpUBtA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
MrY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
sycX
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
NVOFBkpdn627G190
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
jjxDah2nGN59PRbxYvnKkKj9
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
xwy8p2Fp8fc74SrL+SvzZpA3
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL
BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6
ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw
NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L
cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg
Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN
QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT
3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw
3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6
3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5
BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN
XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF
AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw
8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG
nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP
oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy
d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg
LvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB
gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG
A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz
OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ
VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3
b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA
DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn
0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB
OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE
fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E
Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m
o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i
sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW
OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez
Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS
adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n
3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC
AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ
F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf
CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29
XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm
djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/
WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb
AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq
P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko
b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj
XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P
5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi
DrW5viSP
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix
DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k
IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT
N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v
dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG
A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh
ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx
QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA
4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0
AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10
4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C
ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV
9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD
gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6
Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq
NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko
LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd
ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I
XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI
M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot
9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V
Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea
j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh
X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ
l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf
bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4
pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
vm9qp/UsQu0yrbYhnr68
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN
BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl
bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv
b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ
BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj
YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5
MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0
dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg
QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa
jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi
C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep
lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof
TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx
CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ
WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ
BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG
Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/
yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf
BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz
WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF
tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z
374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC
IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL
mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7
wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS
MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2
ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet
UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H
YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3
LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1
RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM
LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf
77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N
JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm
fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp
6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp
1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B
9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok
RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv
uu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
rqXRfboQnoZsG4q5WTP468SQvvG5
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK
gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ
W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg
1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K
8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r
2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me
z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR
8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj
mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz
7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6
+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI
0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB
Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm
UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2
LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS
k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl
7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm
btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl
urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+
fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63
n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE
76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H
9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT
4PsJYGw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl
ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr
ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr
BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM
YyRIHN8wfdVoOw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
1KyLa2tJElMzrdfkviT8tQp21KW8EA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx
GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp
bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w
KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0
BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy
dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG
EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll
IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU
QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT
TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg
LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7
a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr
LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr
N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X
YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/
iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f
AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH
V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf
IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4
lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c
8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf
lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE
BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0
MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV
BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w
HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj
Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj
TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u
KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj
qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm
MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12
ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP
zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk
L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC
jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA
HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC
AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm
DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5
COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry
L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf
JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg
IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io
2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV
09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ
XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq
T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe
MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE
BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz
OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R
xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX
qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC
C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3
6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh
/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF
YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E
JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc
US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8
ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm
+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi
M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G
A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV
cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc
Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs
PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/
q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0
cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr
a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I
H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y
K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu
nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf
oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
Ic2wBlX7Jz9TkHCpBB5XJ7k=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy
MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD
DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq
M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf
OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa
4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9
HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR
aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA
b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ
Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV
PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO
pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu
UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY
MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4
9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW
s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5
Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg
cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM
79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz
/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt
ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm
Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK
QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ
w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi
S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07
mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC
VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx
NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv
bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49
AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA
VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku
WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP
MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX
5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ
ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg
h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg
MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh
bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx
MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET
MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI
xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k
ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD
aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw
LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw
1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX
k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2
SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h
bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n
WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY
rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce
MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu
bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt
Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61
55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj
vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf
cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz
oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp
nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs
pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v
JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R
8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4
5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw
CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91
bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg
Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ
BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu
ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS
b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni
eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W
p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T
rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV
57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg
Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9
MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH
bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x
CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds
b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr
b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9
kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm
VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R
VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc
C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj
tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY
D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv
j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl
NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6
iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP
O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV
ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj
L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl
1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU
b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV
PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj
y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb
EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg
DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI
+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy
YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX
UB+K+wb1whnw0A==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH
MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF
eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx
MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV
BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog
D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS
sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop
O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk
sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi
c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj
VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz
KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/
TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G
sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs
1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD
fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN
l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR
ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ
VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5
c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp
4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s
t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj
2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO
vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C
xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx
cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM
fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw
WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw
MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x
MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD
VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX
BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO
ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M
CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu
I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm
TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh
C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf
ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz
IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT
Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k
JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5
hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB
GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov
L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo
dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr
aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq
hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L
6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG
HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6
0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB
lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi
o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1
gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v
faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63
Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh
jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw
3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD
VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU
ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH
MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO
MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv
Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz
f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO
8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq
d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM
tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt
Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB
o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD
AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x
PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM
wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d
GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH
6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby
RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx
iN66zB+Afko=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG
EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo
bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ
TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw
djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0
WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS
fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB
zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq
hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB
CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD
+JbNR6iC8hZVdyR+EhCVBCyj
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG
A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg
SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw
MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v
dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ
BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ
HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH
3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH
GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c
xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1
aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq
TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87
/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4
kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG
YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT
+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo
WXzhriKi4gp6D/piq1JM4fHfyr6DDUI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG
EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx
IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw
MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND
IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci
MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti
sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O
BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c
3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J
0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL
BQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ
SG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n
a29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5
NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT
CUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u
Z2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO
dem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI
VoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV
9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY
2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY
vLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt
bNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb
x39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+
l2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK
TE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj
Hno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e
i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw
DQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG
7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk
MpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr
gZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk
GMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS
3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm
Ozj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+
l6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c
JfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP
L5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa
LJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG
mpv0
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw
gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw
BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0
MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1
c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ
bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg
Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ
2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E
T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j
5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM
C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T
DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX
wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A
2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm
nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl
N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj
c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS
5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS
Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr
hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/
B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI
AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw
H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+
b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk
2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol
IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk
5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY
n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw
CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD
VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV
UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy
b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq
hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR
ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb
hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3
FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV
L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB
iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw
NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG
EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N
aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ
Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0
ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1
HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm
gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ
jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc
aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG
YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6
W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K
UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH
+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q
W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/
BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC
NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC
LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC
gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6
tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh
SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2
TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3
pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR
xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp
GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9
dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN
AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB
RA+GsCyRxj3qrg+E
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV
BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk
LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv
b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ
BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg
THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v
IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv
xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H
Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB
eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo
jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ
+efcMQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV
BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g
Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ
BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ
R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF
dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw
vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ
uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp
n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs
cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW
xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P
rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF
DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx
DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy
LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C
eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ
d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq
kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC
b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl
qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0
OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c
NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk
ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO
pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj
03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk
PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE
1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX
QRBdJ3NghVdJIgc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw
CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x
ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1
c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx
OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI
b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn
swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu
7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8
1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW
80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP
JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l
RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw
hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10
coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc
BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n
twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud
DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W
0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe
uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q
lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB
aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE
sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT
MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe
qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh
VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8
h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9
EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK
yeC2nOnOcXHebD8WpHk=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD
VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G
A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN
FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w
DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw
CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh
DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD
VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G
A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB
BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ
j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF
1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G
A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3
AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC
MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu
Sw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM
BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG
T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx
CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD
b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA
iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH
38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE
HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz
kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP
szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq
vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf
nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG
YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo
0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a
CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K
AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I
36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN
qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj
cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm
+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL
hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe
lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7
p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8
piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR
LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX
5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO
dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul
9XXeifdy
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw
CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw
FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S
Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5
MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL
DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS
QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB
BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH
sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK
Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu
SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC
MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy
v+c=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA
MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD
VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy
MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt
c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ
OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG
vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud
316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo
0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE
y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF
zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE
+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN
I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs
x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa
ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC
4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4
7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti
2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk
pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF
FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt
rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk
ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5
u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP
4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6
N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3
vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx
CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD
ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw
MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex
HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq
R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd
yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ
7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8
+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV
BAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk
YWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV
BAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN
MzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF
UzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD
VQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v
dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj
cqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q
yGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH
2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX
H1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL
zc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR
p1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz
W7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/
SiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn
LNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3
n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B
u8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj
o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
AgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L
9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej
rw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK
pFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0
vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq
OknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ
/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9
2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI
+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2
MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo
tt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw
CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw
JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT
EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0
WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT
LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX
BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE
KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm
Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj
QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8
EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J
UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn
nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6
MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu
MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV
BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw
MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg
U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo
b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ
n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q
p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq
NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF
8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3
HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa
mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi
7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF
ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P
qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ
v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6
Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1
vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD
ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4
WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo
zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR
5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ
GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf
5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq
0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D
P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM
qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP
0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf
E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL
BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg
Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv
b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG
EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u
IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ
n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd
2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF
VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ
GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF
li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU
r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2
eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb
MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg
jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB
7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW
5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE
ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0
90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z
xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu
QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4
FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH
22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP
xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn
dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5
Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b
nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ
CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH
u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj
d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs
MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg
Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL
MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv
b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l
mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE
4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv
a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M
pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw
Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b
LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY
AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB
AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq
E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr
W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ
CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF
MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE
AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU
X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3
f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja
H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP
JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P
zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt
jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0
/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT
BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79
aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW
xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU
63ZTGI0RmLo=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw
CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh
cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v
dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG
A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg
Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7
KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y
STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD
AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw
SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN
nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE
BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1
MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc
tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd
IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j
b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC
AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw
ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m
iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF
Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ
hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P
Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE
EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV
1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t
CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR
5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw
f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9
ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK
GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw
RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY
BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz
MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u
LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF
K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0
v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd
e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw
V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA
AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG
GJTO
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL
BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x
FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx
MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s
THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc
IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU
AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+
GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9
8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH
flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt
J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim
0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN
pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ
UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW
OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB
AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet
8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd
nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j
bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM
Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv
TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS
S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr
I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9
b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB
UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P
Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven
sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
/q4AaOeMSQ+2b1tbFfLn
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa
Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3
YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw
qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv
Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6
lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz
Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ
KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK
FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj
HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr
y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ
/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM
a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6
fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG
SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi
7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc
SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza
ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc
XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg
iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho
L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF
Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr
kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+
vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU
YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD
VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh
bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw
MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g
UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT
BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx
uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV
HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/
+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147
bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo
27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w
Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw
TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl
qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH
szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8
Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk
MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p
aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN
VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID
AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb
C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe
QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy
h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4
7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J
ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef
MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/
Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT
6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ
0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm
2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb
bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt
nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY
6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu
MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k
RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg
f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV
+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo
dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW
Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa
G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq
gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID
AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H
vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8
0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC
B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u
NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg
yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev
HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6
xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR
TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg
JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV
7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl
6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G
jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2
4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7
VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm
ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi
QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR
HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D
9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8
p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx
CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE
AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1
NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ
MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq
AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9
vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9
lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD
n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT
7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o
6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC
TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6
WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R
DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI
pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj
YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy
rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ
8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi
0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM
A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS
SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K
TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF
6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er
3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt
Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT
VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW
ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA
rBPuUBQemMc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw
CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS
VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5
NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG
A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS
zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0
QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/
VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g
PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf
Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l
dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1
c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO
PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW
wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV
dWNbFJWcHwHP2NVypw87
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw
CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS
VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5
NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG
A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC
/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD
wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3
OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g
PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf
Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l
dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1
c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO
PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA
y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb
gfM0agPnIjhQW+0ZT0MW
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
DXZDjC5Ty3zfDBeWUA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT
HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN
NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs
IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+
ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0
2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp
wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM
pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD
nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po
sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx
Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd
Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX
KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe
XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL
tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv
TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw
GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H
PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF
O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ
REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik
AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv
/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+
p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw
MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF
qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK
ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw
PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy
dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0
YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2
1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT
vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed
aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0
1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5
r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5
cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ
wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ
6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA
2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH
Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR
eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB
/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u
d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr
PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi
1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd
rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di
taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7
lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj
yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn
Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy
yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n
wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6
OV+KmalBWQewLK8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw
CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu
bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ
BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s
eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK
+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2
QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4
hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm
ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV
BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw
JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2
MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg
Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r
CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA
lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG
TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7
9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7
8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4
g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we
GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst
+3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M
0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ
T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw
HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA
FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd
9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI
UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+
OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke
gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf
iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV
nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD
2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//
1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad
TdJ0MN1kURXbg4NR16/9M51NZg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT
AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD
VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx
NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT
HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5
IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl
dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK
ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu
9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O
be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU
MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI
T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz
MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF
SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh
bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z
xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ
spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5
58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR
at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll
5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq
nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK
V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/
pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO
z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn
jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+
WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF
7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4
YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli
awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u
+2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88
X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN
SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo
P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI
+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz
znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9
eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2
YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy
r/6zcCwupvI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw
CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ
VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy
MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ
TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS
b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B
IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+
+kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK
sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA
94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B
43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw
CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T
ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN
MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG
A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT
ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC
WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+
6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B
Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa
qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q
4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf
MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY
MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp
YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa
ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz
SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf
iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X
ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3
IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS
VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE
SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu
+Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt
8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L
HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt
zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P
AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c
mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ
YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52
gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA
Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB
JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX
DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui
TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5
dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65
LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp
0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY
QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO
MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD
DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX
DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw
b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP
L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY
t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins
S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3
PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO
L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3
R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w
dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS
+YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS
d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG
AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f
gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z
NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt
hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM
QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf
R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ
DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW
P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy
lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq
bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w
AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q
r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji
Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU
98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw
CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT
U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2
MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh
dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG
ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm
acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN
SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW
uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp
15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN
b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w
LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w
CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0
MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF
Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI
zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X
tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4
AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2
KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD
aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu
CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo
9H1/IISpQuQo
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM
MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx
MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00
MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD
QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z
4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv
Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ
kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs
GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln
nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh
3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD
0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy
geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8
ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB
c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI
pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS
4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs
o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ
qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw
xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM
rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4
AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR
0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY
o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5
dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE
oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM
BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp
ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe
Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw
IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU
cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS
T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK
AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1
nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep
qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA
yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs
hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX
zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv
kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT
f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA
uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB
o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih
MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E
BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4
wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2
XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1
JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j
ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV
VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx
xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on
AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d
7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj
gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV
+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo
FGWsJwt0ivKH
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw
WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs
IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y
MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD
VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz
dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx
s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw
LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij
YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD
pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE
AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR
UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj
/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMw
TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t
bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNa
Fw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv
cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDEw
djAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLxeP0C
flfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJE
hRGnSjot6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggq
hkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg
2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liWpDVfG2XqYZpwI7UNo5uS
Um9poIyNStDuiw7LR47QjRE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMw
TjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29t
bVNjb3BlIFB1YmxpYyBUcnVzdCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRa
Fw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21tU2Nv
cGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgRUNDIFJvb3QtMDIw
djAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/MMDAL
j2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmU
v4RDsNuESgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggq
hkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/n
ich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs73u1Z/GtMMH9ZzkXpc2AV
mkzw5l4lIhVtwodZ0LKOag==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQEL
BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi
Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1
NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t
U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt
MDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45FtnYSk
YZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslh
suitQDy6uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0al
DrJLpA6lfO741GIDuZNqihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3Oj
WiE260f6GBfZumbCk6SP/F2krfxQapWsvCQz0b2If4b19bJzKo98rwjyGpg/qYFl
P8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/cZip8UlF1y5mO6D1cv547
KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTifBSeolz7p
UcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/
kQO9lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JO
Hg9O5j9ZpSPcPYeoKFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkB
Ea801M/XrmLTBQe0MXXgDW1XT2mH+VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6U
CBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm45P3luG0wDQYJ
KoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6
NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQ
nmhUQo8mUuJM3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+
QgvfKNmwrZggvkN80V4aCRckjXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2v
trV0KnahP/t1MJ+UXjulYPPLXAziDslg+MkfFoom3ecnf+slpoq9uC02EJqxWE2a
aE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/WNyVntHKLr4W96ioD
j8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+o/E4
Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0w
lREQKC6/oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHn
YfkUyq+Dj7+vsQpZXdxc1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVoc
icCMb3SgazNNtQEo/a2tiRc7ppqEvOuM6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQEL
BQAwTjELMAkGA1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwi
Q29tbVNjb3BlIFB1YmxpYyBUcnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2
NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNVBAYTAlVTMRIwEAYDVQQKDAlDb21t
U2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3QgUlNBIFJvb3Qt
MDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3VrCLE
NQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0
kyI9p+Kx7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1C
rWDaSWqVcN3SAOLMV2MCe5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxz
hkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2WWy09X6GDRl224yW4fKcZgBzqZUPckXk2
LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rpM9kzXzehxfCrPfp4sOcs
n/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIfhs1w/tku
FT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5
kQMreyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3
wNemKfrb3vOTlycEVS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6v
wQcQeKwRoi9C8DfF8rhW3Q5iLc4tVn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs
5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7GxcJXvYXowDQYJ
KoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB
KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3
+VGXu6TwYofF1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbyme
APnCKfWxkxlSaRosTKCL4BWaMS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3Nyq
pgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xdgSGn2rtO/+YHqP65DSdsu3BaVXoT
6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2OHG1QAk8mGEPej1WF
sQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+NmYWvt
PjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2d
lklyALKrdVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670
v64fG9PiO/yzcnMcmyiQiRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17O
rg3bhzjlP1v9mxnhMUF6cKojawHhRUzNlM47ni3niAIi9G7oyOzWPPO5std3eqx7
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw
CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH
bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw
MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx
JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE
AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49
AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O
tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP
f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA
MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di
z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn
27iQ7t0l
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj
MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0
eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy
MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC
REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG
A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9
cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV
cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA
U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6
Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug
BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy
8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J
co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg
8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8
rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12
mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg
+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX
gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2
p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ
pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm
9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw
M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd
GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+
CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t
xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+
w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK
L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj
X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q
ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm
dTdmQRCsu/WU48IxK63nI1bMNSWSs1A=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw
CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE
YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB
IFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw
CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE
YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB
IFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf
e9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C
cyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB
/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O
BBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
PQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw
hVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG
XSaQpYXFuXqUPoeovQA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBjCCAu6gAwIBAgIRAIp9PhPWLzDvI4a9KQdrNPgwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjcwMzEyMjM1OTU5WjAzMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDEMMAoGA1UEAxMDUjExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAuoe8XBsAOcvKCs3UZxD5ATylTqVhyybKUvsVAbe5KPUoHu0nsyQYOWcJ
DAjs4DqwO3cOvfPlOVRBDE6uQdaZdN5R2+97/1i9qLcT9t4x1fJyyXJqC4N0lZxG
AGQUmfOx2SLZzaiSqhwmej/+71gFewiVgdtxD4774zEJuwm+UE1fj5F2PVqdnoPy
6cRms+EGZkNIGIBloDcYmpuEMpexsr3E+BUAnSeI++JjF5ZsmydnS8TbKF5pwnnw
SVzgJFDhxLyhBax7QG0AtMJBP6dYuC/FXJuluwme8f7rsIU5/agK70XEeOtlKsLP
Xzze41xNG/cLJyuqC0J3U095ah2H2QIDAQABo4H4MIH1MA4GA1UdDwEB/wQEAwIB
hjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwEgYDVR0TAQH/BAgwBgEB
/wIBADAdBgNVHQ4EFgQUxc9GpOr0w8B6bJXELbBeki8m47kwHwYDVR0jBBgwFoAU
ebRZ5nu25eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAC
hhZodHRwOi8veDEuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcG
A1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcN
AQELBQADggIBAE7iiV0KAxyQOND1H/lxXPjDj7I3iHpvsCUf7b632IYGjukJhM1y
v4Hz/MrPU0jtvfZpQtSlET41yBOykh0FX+ou1Nj4ScOt9ZmWnO8m2OG0JAtIIE38
01S0qcYhyOE2G/93ZCkXufBL713qzXnQv5C/viOykNpKqUgxdKlEC+Hi9i2DcaR1
e9KUwQUZRhy5j/PEdEglKg3l9dtD4tuTm7kZtB8v32oOjzHTYw+7KdzdZiw/sBtn
UfhBPORNuay4pJxmY/WrhSMdzFO2q3Gu3MUBcdo27goYKjL9CTF8j/Zz55yctUoV
aneCWs/ajUX+HypkBTA+c8LGDLnWO2NKq0YD/pnARkAnYGPfUDoHR9gVSp/qRx+Z
WghiDLZsMwhN1zjtSC0uBWiugF3vTNzYIEFfaPG7Ws3jDrAMMYebQ95JQ+HIBD/R
PBuHRTBpqKlyDnkSHDHYPiNX3adPoPAcgdF3H2/W0rmoswMWgTlLn1Wu0mrks7/q
pdWfS6PJ1jty80r2VKsM/Dj3YIDfbjXKdaFU5C+8bhfJGqU3taKauuz0wHVGT3eo
6FlWkWYtbt4pgdamlwVeZEW+LM7qZEJEsMNPrfC03APKmZsJgpWCDWOKZvkZcvjV
uYkQ4omYCTX5ohy+knMjdOmdH9c7SpqEWBDC86fiNex+O0XOMEZSa8DA
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICtDCCAjugAwIBAgIQGG511O6woF39Lagghl0eMTAKBggqhkjOPQQDAzBPMQsw
CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yNDAzMTMwMDAwMDBaFw0y
NzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNy
eXB0MQswCQYDVQQDEwJFNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABA0LOoprYY62
79xfWOfGQkVUq2P2ZmFICi5ZdbSBAjdQtz8WedyY7KEol3IgHCzP1XxSIE5UeFuE
FGvAkK6F7MBRQTxah38GTdT+YNH6bC3hfZUQiKIIVA+ZGkzm6gqs2KOB+DCB9TAO
BgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIG
A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJ8rX888IU+dBLftKyzExnCL0tcN
MB8GA1UdIwQYMBaAFHxClq7eS0g7+pL4nozPbYupcjeVMDIGCCsGAQUFBwEBBCYw
JDAiBggrBgEFBQcwAoYWaHR0cDovL3gyLmkubGVuY3Iub3JnLzATBgNVHSAEDDAK
MAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDIuYy5sZW5jci5v
cmcvMAoGCCqGSM49BAMDA2cAMGQCMBttLkVBHEU+2V80GHRnE3m6qym1thBOgydK
i0VOx3vP9EAwHWGl5hxtpJAJkm5GSwIwRikYhDR6vPve2BvYGacE9ct+522E2dqO
6s42MLmigEws5mASS6l2quhtlUfacgkM
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICtjCCAjygAwIBAgIRAICpc0jvJ2ip4/a7Q8D5xikwCgYIKoZIzj0EAwMwTzEL
MAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNo
IEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDIwHhcNMjQwMzEzMDAwMDAwWhcN
MjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5j
cnlwdDELMAkGA1UEAxMCRTYwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATZ8Z5Gh/gh
cWCoJuuj+rnq2h25EqfUJtlRFLFhfHWWvyILOR/VvtEKRqotPEoJhC6+QJVV6RlA
N2Z17TJOdwRJ+HB7wxjnzvdxEP6sdNgA1O1tHHMWMxCcOrLqbGL0vbijgfgwgfUw
DgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAS
BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSTJ0aYA6lRaI6Y1sRCSNsjv1iU
0jAfBgNVHSMEGDAWgBR8Qpau3ktIO/qS+J6Mz22LqXI3lTAyBggrBgEFBQcBAQQm
MCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94Mi5pLmxlbmNyLm9yZy8wEwYDVR0gBAww
CjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gyLmMubGVuY3Iu
b3JnLzAKBggqhkjOPQQDAwNoADBlAjBgGMvAszhCd1BsRuMwGYCC0QCzf5d//MC5
ASqIyswj3hGcoZREOKDKdvJPHhgdZr8CMQCWq4Kjl/RmuF49LBq9eP7oGWAc55w4
G72FoKw5a9WywSwBzoJunrayTB8nDSjEhu8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIQCKWiRs1LXIyD1wK0u6tTSTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMDYxMjIzMzNaFw0yNzExMDYxMjIzMzNaMF4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xHTAbBgNVBAMTFFJhcGlkU1NMIFJTQSBDQSAyMDE4MIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA5S2oihEo9nnpezoziDtx4WWLLCll/e0t1EYemE5n
+MgP5viaHLy+VpHP+ndX5D18INIuuAV8wFq26KF5U0WNIZiQp6mLtIWjUeWDPA28
OeyhTlj9TLk2beytbtFU6ypbpWUltmvY5V8ngspC7nFRNCjpfnDED2kRyJzO8yoK
MFz4J4JE8N7NA1uJwUEFMUvHLs0scLoPZkKcewIRm1RV2AxmFQxJkdf7YN9Pckki
f2Xgm3b48BZn0zf0qXsSeGu84ua9gwzjzI7tbTBjayTpT+/XpWuBVv6fvarI6bik
KB859OSGQuw73XXgeuFwEPHTIRoUtkzu3/EQ+LtwznkkdQIDAQABo4IBZjCCAWIw
HQYDVR0OBBYEFFPKF1n8a8ADIS8aruSqqByCVtp1MB8GA1UdIwQYMBaAFAPeUDVW
0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo
MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E
OzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i
YWxSb290Q0EuY3JsMGMGA1UdIARcMFowNwYJYIZIAYb9bAECMCowKAYIKwYBBQUH
AgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAEBMAgG
BmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggEBAH4jx/LKNW5ZklFc
YWs8Ejbm0nyzKeZC2KOVYR7P8gevKyslWm4Xo4BSzKr235FsJ4aFt6yAiv1eY0tZ
/ZN18bOGSGStoEc/JE4ocIzr8P5Mg11kRYHbmgYnr1Rxeki5mSeb39DGxTpJD4kG
hs5lXNoo4conUiiJwKaqH7vh2baryd8pMISag83JUqyVGc2tWPpO0329/CWq2kry
qv66OSMjwulUz0dXf4OHQasR7CNfIr+4KScc6ABlQ5RDF86PGeE6kdwSQkFiB/cQ
ysNyq0jEDQTkfa2pjmuWtMCNbBnhFXBYejfubIhaUbEv2FOQB3dCav+FPg5eEveX
TVyMnGo=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV
BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE
ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g
VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N
TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj
eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E
oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk
Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY
uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j
BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb
+ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G
A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw
CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0
LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr
BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv
bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov
L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H
ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH
7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi
H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx
RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv
xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38
sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL
l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq
6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY
LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5
yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE-----                                                                                                                                                                                                      communication.py                                                                                    0000755 0001750 0001750 00000234006 15061743264 013603  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-
'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

import ssl
import struct
import time
import socket
import threading
import xml.etree.ElementTree
import os
import math
import utils
import json
import mimetypes
import hashlib
import base64
import sys

BUFFER_SIZE_MAX = 65536
BUFFER_SIZE_MIN = 4096

SIZE_INTEGER=math.pow(2,32)
SIZE_LONG=math.pow(2,64)

_SOCKET_TIMEOUT_CONNECT = 15
_TRANSFER_TIMEOUT = 20

_cacerts_path="cacerts.pem"
_proxy_detected = {}
_proxy_detected["semaphore"]=threading.Condition()
_proxy_detected["check"] = False
_proxy_detected["info"] = None

def is_windows():
    return utils.is_windows()

def is_linux():
    return utils.is_linux()

def is_mac():
    return utils.is_mac()

def get_time():
    return utils.get_time()

def _is_ssl_create_default_context():
    if hasattr(ssl, 'SSLContext'):
        if sys.version_info >= (3, 7) and hasattr(ssl, 'PROTOCOL_TLSv1_2'):
            return hasattr(ssl, 'create_default_context')
    return False

def get_ssl_info():
    sslret=ssl.OPENSSL_VERSION + " ("
    if _is_ssl_create_default_context():
        sslret += "TLSv1.2+"
    elif hasattr(ssl, 'PROTOCOL_TLSv1_2'):
        sslret += "TLSv1.2" 
    elif hasattr(ssl, 'PROTOCOL_TLSv1_1'):
        sslret += "TLSv1.1"
    elif hasattr(ssl, 'PROTOCOL_TLSv1'):
        sslret += "TLSv1"
    else:
        sslret += "Unknown"
    sslret += ")"
    return sslret

def _get_ssl_ver():
    if hasattr(ssl, 'PROTOCOL_TLSv1_2'):
        return ssl.PROTOCOL_TLSv1_2 
    if hasattr(ssl, 'PROTOCOL_TLSv1_1'):
        return ssl.PROTOCOL_TLSv1_1
    if hasattr(ssl, 'PROTOCOL_TLSv1'):
        return ssl.PROTOCOL_TLSv1
    if hasattr(ssl, 'PROTOCOL_TLS'):
        return ssl.PROTOCOL_TLS
    return ssl.PROTOCOL_SSLv23 #DEFAULT

def _connect_proxy_http(sock, host, port, proxy_info):
    usr = proxy_info.get_user()
    pwd = proxy_info.get_password()
    arreq=[]
    arreq.append("CONNECT %s:%d HTTP/1.0" % (host, port))
    if usr is not None and len(usr)>0:
        auth=utils.bytes_to_str(utils.enc_base64_encode(utils.str_to_bytes(usr + ":" + pwd,"utf8")))
        arreq.append("\r\nProxy-Authorization: Basic %s" % (auth))
    arreq.append("\r\n\r\n")
    sock.sendall(utils.str_to_bytes("".join(arreq)))
    resp = Response(sock)
    if resp.get_code() != '200':
        raise Exception("Proxy http error: " + str(resp.get_code()) + ".")
    

def _connect_proxy_socks(sock, host, port, proxy_info):
    usr = proxy_info.get_user()
    pwd = proxy_info.get_password()
    if proxy_info.get_type()=='SOCKS5':
        arreq = []
        arreq.append(struct.pack(">BBBB", 0x05, 0x02, 0x00, 0x02))
        sock.sendall(utils.bytes_join(arreq))
        resp = sock.recv(2)
        ver = utils.bytes_get(resp,0)
        mth = utils.bytes_get(resp,1)
        if ver!=0x05:
            raise Exception("Proxy socks error: Incorrect version.")
        if mth!=0x00 and mth!=0x02:
            raise Exception("Proxy socks error: Method not supported.")
        if mth==0x02:
            if usr is not None and len(usr)>0 and pwd is not None and len(pwd)>0:
                arreq = []
                arreq.append(struct.pack(">B", 0x01))
                arreq.append(struct.pack(">B", len(usr)))
                for c in usr:
                    arreq.append(struct.pack(">B", ord(c)))
                arreq.append(struct.pack(">B", len(pwd)))
                for c in pwd:
                    arreq.append(struct.pack(">B", ord(c)))                
                sock.sendall(utils.bytes_join(arreq))
                resp = sock.recv(2)
                ver = utils.bytes_get(resp,0)
                status = utils.bytes_get(resp,1)
                if ver!=0x01 or status != 0x00:
                    raise Exception("Proxy socks error: Incorrect Authentication.")
            else:
                raise Exception("Proxy socks error: Authentication required.")
        arreq = []
        arreq.append(struct.pack(">BBB", 0x05, 0x01, 0x00))
        try:
            addr_bytes = socket.inet_aton(host)
            arreq.append(b"\x01")
            arreq.append(addr_bytes)
        except socket.error:
            arreq.append(b"\x03")
            arreq.append(struct.pack(">B", len(host)))
            for c in host:
                arreq.append(struct.pack(">B", ord(c)))
        arreq.append(struct.pack(">H", port))
        sock.sendall(utils.bytes_join(arreq))
        resp = sock.recv(1024)
        ver = utils.bytes_get(resp,0)
        status = utils.bytes_get(resp,1)
        if ver!=0x05 or status != 0x00:
            raise Exception("Proxy socks error.")
    else:
        remoteresolve=False
        try:
            addr_bytes = socket.inet_aton(host)
        except socket.error:
            if proxy_info.get_type()=='SOCKS4A':
                addr_bytes = b"\x00\x00\x00\x01"
                remoteresolve=True
            else:
                addr_bytes = socket.inet_aton(socket.gethostbyname(host))
            
        arreq = []
        arreq.append(struct.pack(">BBH", 0x04, 0x01, port))
        arreq.append(addr_bytes)
        if usr is not None and len(usr)>0:
            for c in usr:
                arreq.append(struct.pack(">B", ord(c)))
        arreq.append(b"\x00")
        if remoteresolve:
            for c in host:
                arreq.append(struct.pack(">B", ord(c)))
            arreq.append(b"\x00")
        sock.sendall(utils.bytes_join(arreq))
        
        resp = sock.recv(8)
        if len(resp)<2:
            raise Exception("Proxy socks error.")
        if utils.bytes_get(resp,0) != 0x00:
            raise Exception("Proxy socks error.")
        status = utils.bytes_get(resp,1)
        if status != 0x5A:
            raise Exception("Proxy socks error.")

def _detect_proxy_windows():
    prxi=None
    try:
        sproxy=None
        import _winreg
        aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_CURRENT_USER)
        aKey = _winreg.OpenKey(aReg, r"Software\Microsoft\Windows\CurrentVersion\Internet Settings")
        try: 
            subCount, valueCount, lastModified = _winreg.QueryInfoKey(aKey)
            penabled=False
            pserver=None
            for i in range(valueCount):                                           
                try:
                    n,v,t = _winreg.EnumValue(aKey,i)
                    if n.lower() == 'proxyenable':
                        penabled = v and True or False
                    elif n.lower() == 'proxyserver':
                        pserver = v
                except EnvironmentError:                                               
                    break
            if penabled and pserver is not None:
                sproxy=pserver
        finally:
            _winreg.CloseKey(aKey)   
        if sproxy is not None:
            stp=None
            sho=None
            spr=None            
            lst = sproxy.split(";")
            for v in lst:
                if len(v)>0:
                    ar1 = v.split("=")
                    if len(ar1)==1:
                        stp="HTTP"
                        ar2 = ar1[0].split(":")
                        sho=ar2[0]
                        spr=ar2[1]
                        break
                    elif ar1[0].lower()=="http":
                        stp="HTTP"
                        ar2 = ar1[1].split(":")
                        sho=ar2[0]
                        spr=ar2[1]
                        break
                    elif ar1[0].lower()=="socks":
                        stp="SOCKS5"
                        ar2 = ar1[1].split(":")
                        sho=ar2[0]
                        spr=ar2[1]
                    
            if stp is not None:
                prxi = ProxyInfo()
                prxi.set_type(stp)
                prxi.set_host(sho)
                prxi.set_port(int(spr))
                #print("PROXY WINDOWS DETECTED:" + stp + "  " + spr)
                
    except:
        None
    return prxi

def _detect_proxy_linux():
    prxi=None
    try:
        sprx=None
        sprx=os.getenv("all_proxy")
        if "http_proxy" in os.environ:
            sprx = os.environ["http_proxy"]
        elif "all_proxy" in os.environ:
            sprx = os.environ["all_proxy"]
        if sprx is not None:
            stp=None
            if sprx.endswith("/"):
                sprx=sprx[0:len(sprx)-1]            
            if sprx.lower().startswith("socks:"):
                stp="SOCKS5"
                sprx=sprx[len("socks:"):]
            elif sprx.lower().startswith("http:"):
                stp="HTTP"
                sprx=sprx[len("http:"):]
            if stp is not None:
                sun=None
                spw=None
                sho=None
                spr=None
                ar = sprx.split("@")
                if len(ar)==1:
                    ar1 = sprx[0].split(":")
                    sho=ar1[0]
                    spr=ar1[1]
                else: 
                    ar1 = sprx[0].split(":")
                    sun=ar1[0]
                    spw=ar1[1]
                    ar2 = sprx[1].split(":")
                    sho=ar2[0]
                    spr=ar2[1]
                prxi = ProxyInfo()
                prxi.set_type(stp)
                prxi.set_host(sho)
                prxi.set_port(int(spr))
                prxi.set_user(sun)
                prxi.set_password(spw)
    except:
        None
    return prxi

def release_detected_proxy():
    global _proxy_detected
    _proxy_detected["semaphore"].acquire()
    try:
        _proxy_detected["check"]=False
        _proxy_detected["info"]=None
    finally:
        _proxy_detected["semaphore"].release()

def _set_detected_proxy_none():
    global _proxy_detected
    _proxy_detected["semaphore"].acquire()
    try:
        _proxy_detected["check"]=True
        _proxy_detected["info"]=None
    finally:
        _proxy_detected["semaphore"].release()
    
def set_cacerts_path(path):
    global _cacerts_path
    _cacerts_path=path

def _connect_socket(host, port, proxy_info, opts=None):
    timeout=_SOCKET_TIMEOUT_CONNECT
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)        
        if opts is not None and "rcvbuf" in opts:
            sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, opts["rcvbuf"])
        if opts is not None and "sndbuf" in opts:
            sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, opts["sndbuf"])
            
        if opts is not None and "timeout" in opts:
            timeout=opts["timeout"]
        sock.settimeout(timeout)
        bprxdet=False
        prxi=proxy_info
        if prxi is None or prxi.get_type() is None or proxy_info.get_type()=='SYSTEM':
            global _proxy_detected
            _proxy_detected["semaphore"].acquire()
            try:
                if not _proxy_detected["check"]:
                    try:
                        if is_windows():
                            _proxy_detected["info"] = _detect_proxy_windows()
                        elif is_linux():
                            _proxy_detected["info"] = _detect_proxy_linux()
                        elif is_mac():
                            _proxy_detected["info"]=None
                    except:
                        _proxy_detected=None
                if _proxy_detected is not None:
                    bprxdet=True
                    prxi = _proxy_detected["info"]
                _proxy_detected["check"]=True
            finally:
                _proxy_detected["semaphore"].release()
            
        conn_ex=None    
        func_prx=None
        if prxi is None or prxi.get_type() is None or prxi.get_type()=='NONE':
            sock.connect((host, port))
        elif prxi.get_type()=='HTTP':
            try:
                sock.connect((prxi.get_host(), prxi.get_port()))
                func_prx=_connect_proxy_http
            except:
                conn_ex=utils.get_exception()
        elif prxi.get_type()=='SOCKS4' or prxi.get_type()=='SOCKS4A' or prxi.get_type()=='SOCKS5':
            try:
                sock.connect((prxi.get_host(), prxi.get_port()))
                func_prx=_connect_proxy_socks
            except:
                conn_ex=utils.get_exception()
        else:
            sock.connect((host, port))
        
        if func_prx is not None:
            try:
                func_prx(sock, host, port, prxi)
            except:
                conn_ex=utils.get_exception()
        
        if conn_ex is not None:
            if bprxdet:
                try:
                    release_detected_proxy()
                    sock.close()
                    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
                    sock.settimeout(timeout)
                    sock.connect((host, port)) #TRY TO CONNECT WITHOUT PROXY
                    _set_detected_proxy_none()
                    bprxdet=False
                except:
                    raise conn_ex
            else:
                raise conn_ex
                
        
        while True:
            try:
                #VALIDA CERITFICATI
                global _cacerts_path
                if hasattr(ssl, 'SSLContext'):
                    if _is_ssl_create_default_context():
                        if _cacerts_path!="":
                            ctx = ssl.create_default_context(                                
                                cafile=_cacerts_path
                            )
                            ctx.verify_mode = ssl.CERT_REQUIRED
                            ctx.check_hostname = True
                            sock = ctx.wrap_socket(sock,server_hostname=host)
                        else:
                            ctx = ssl.create_default_context()
                            sock = ctx.wrap_socket(sock)
                    else:
                        ctx = ssl.SSLContext(_get_ssl_ver())
                        if _cacerts_path!="":
                            ctx.verify_mode = ssl.CERT_REQUIRED
                            ctx.check_hostname = True
                            ctx.load_verify_locations(_cacerts_path)
                            sock = ctx.wrap_socket(sock,server_hostname=host)
                        else:
                            sock = ctx.wrap_socket(sock)
                else:
                    iargs = None
                    try:
                        import inspect
                        iargs = inspect.getargspec(ssl.wrap_socket).args
                    except:                   
                        None
                    if iargs is not None and "cert_reqs" in iargs and "ca_certs" in iargs and _cacerts_path!="": 
                        sock = ssl.wrap_socket(sock, ssl_version=_get_ssl_ver(), cert_reqs=ssl.CERT_REQUIRED, ca_certs=_cacerts_path)
                    else:
                        sock = ssl.wrap_socket(sock, ssl_version=_get_ssl_ver())
                break
            except:
                conn_ex=utils.get_exception()
                if bprxdet:
                    if "CERTIFICATE_VERIFY_FAILED" in str(conn_ex):
                        try: 
                            release_detected_proxy()
                            sock.close()
                            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                            sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
                            sock.settimeout(timeout)
                            sock.connect((host, port)) #TRY TO CONNECT WITHOUT PROXY
                            _set_detected_proxy_none()
                            bprxdet=False
                        except:
                            raise conn_ex
                    else:                        
                        raise conn_ex                    
                else:
                    raise conn_ex  
            
            
    except:
        e=utils.get_exception()
        sock.close()
        raise e
    sock.settimeout(None)
    return sock

def _close_socket(sock):
    try:                
        sock.shutdown(socket.SHUT_RDWR)
    except:
        None
    try:
        sock.close()
    except:
        None

def _is_content_type(ct,vl):
    ar = ct.split(";")
    for k in ar:
        if k.strip()==vl:
            return True    
    return False

def prop_to_xml(prp):
    ardata = []
    ardata.append('<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">')
    root_element = xml.etree.ElementTree.Element("properties")
    for key in prp:
        child = xml.etree.ElementTree.SubElement(root_element, "entry")
        child.attrib['key'] = key
        child.text = prp[key]
    ardata.append(utils.bytes_to_str(xml.etree.ElementTree.tostring(root_element)))
    return ''.join(ardata)

def xml_to_prop(s):
    prp = {}
    root = xml.etree.ElementTree.fromstring(utils.buffer_new(s,0,len(s)))
    for child in root:
        prp[child.attrib['key']] = child.text
    return prp

def _split_utl(url):
    lnhttps = 8
    #detect host and port
    p=url[lnhttps:].find('/')
    host=url[lnhttps:lnhttps+p]
    port=443
    i=host.find(':')
    if i>=0:
        port=int(host[i+1:])
        host=host[:i]
    #detect path
    u = url[p+lnhttps:]
    return {'host':host,  'port':port,  'path':u}

def download_url_file(urlsrc, fdest, proxy_info=None, response_transfer_progress=None):
    sredurl=None
    sp = _split_utl(urlsrc)
    sock = _connect_socket(sp["host"], sp["port"], proxy_info)
    sock.settimeout(_TRANSFER_TIMEOUT) 
    try:
        req = Request("GET", sp["path"],  {'Host' : sp["host"] + ':' + str(sp["port"]),  'Connection' : 'close'})
        sock.sendall(req.to_message())
    
        #read response
        if utils.path_exists(fdest):
            utils.path_remove(fdest)
        ftmp = fdest + "TMP"
        if utils.path_exists(ftmp):
            utils.path_remove(ftmp)        
        resp = Response(sock, ftmp, response_transfer_progress)
        if resp.get_code() == '301' or resp.get_code() == '307':
            sredurl=resp.get_headers()["Location"]
        elif resp.get_code() != '200':
            raise Exception("Download error " + str(resp.get_code()) + ".")
    finally:
        sock.shutdown(1)
        sock.close()
    if sredurl is not None:
        return download_url_file(sredurl, fdest, proxy_info, response_transfer_progress)
    else:
        if utils.path_exists(ftmp):
            utils.path_move(ftmp, fdest)
    return urlsrc 

def get_url_prop(url, proxy_info=None):
    sredurl=None
    sp = _split_utl(url)    
    sock = _connect_socket(sp["host"], sp["port"], proxy_info)
    sock.settimeout(_TRANSFER_TIMEOUT)
    try:
        req = Request("GET", sp["path"],  {'Host' : sp["host"] + ':' + str(sp["port"]),  'Connection' : 'close'})
        sock.sendall(req.to_message())        
        prpresp = None
        resp = Response(sock)
        if resp.get_code() == '200':
            rtp="xml"
            try:
                hds = resp.get_headers()  
                if hds is not None and "Content-Type" in hds:
                    if _is_content_type(hds["Content-Type"],"application/json"):
                        rtp="json"
            except:
                None
            if rtp=="json":
                prpresp = json.loads(resp.get_body())
            else:
                prpresp = xml_to_prop(resp.get_body())
        elif resp.get_code() == '301' or resp.get_code() == '307':
            sredurl=resp.get_headers()["Location"]
        else:
            raise Exception("Get url properties error " + str(resp.get_code()) + ".")
    finally:
        sock.shutdown(1)
        sock.close()
    if sredurl is not None:
        prpresp = get_url_prop(sredurl,proxy_info)
    return prpresp

def ping_url(url, proxy_info=None):
    tmret=None
    try:
        sp = _split_utl(url)
        sock = _connect_socket(sp["host"], sp["port"], proxy_info,{"timeout":2})
        sock.settimeout(2)
        try:
            req = Request("GET", sp["path"],  {'Host': sp["host"]+':'+str(sp["port"]),  'Connection': 'keep-alive'})
            sock.sendall(req.to_message())
            resp = Response(sock)
            if resp.get_code() == '200':
                tm=time.time()
                req = Request("GET", sp["path"],  {'Host': sp["host"]+':'+str(sp["port"]),  'Connection': 'close'})
                sock.sendall(req.to_message())
                resp = Response(sock)
                if resp.get_code() == '200':
                    tmret=round(time.time()-tm,3)
        finally:
            sock.shutdown(1)
            sock.close()
    except:
        None
    return tmret

class ProxyInfo:
    def __init__(self):
        self._type="None"
        self._host=None
        self._port=None
        self._user=None
        self._password=None
        
    def set_type(self, ptype):
        self._type=ptype
    
    def set_host(self, host):
        self._host=host
        
    def set_port(self, port):
        self._port=port
    
    def set_user(self,  user):
        self._user=user
    
    def set_password(self,  password):
        self._password=password
    
    def get_type(self):
        return self._type
    
    def get_host(self):
        return self._host
        
    def get_port(self):
        return self._port
    
    def get_user(self):
        return self._user
    
    def get_password(self):
        return self._password
        

class Request:
    def __init__(self, method, url, prp=None):
        self._method = method
        self._url = url
        self._prp = prp
        self._body = None

    def set_body(self, body):
        self._body = body

    def to_message(self):
        arhead = []
        arhead.append(self._method)
        arhead.append(' ')
        arhead.append(self._url)
        arhead.append(' ')
        arhead.append('HTTP/1.1')
        if self._prp is not None:
            for k in self._prp:
                arhead.append('\r\n')
                arhead.append(k)
                arhead.append(': ')
                arhead.append(self._prp[k])
            
        if self._body is not None:
            arhead.append('\r\n')
            arhead.append('Compression: zlib')
            arhead.append('\r\n')
            arhead.append('Content-Length: ')
            arhead.append(str(len(self._body)))
        arhead.append('\r\n')
        arhead.append('\r\n')
        if self._body is not None:
            arhead.append(self._body)
        return utils.str_to_bytes(''.join(arhead))

class Response_Transfer_Progress:
    
    def __init__(self, events=None):
            self._on_data=None
            self._properties={}
            self._byte_transfer=0
            self._byte_length=0
            if events is not None:
                if 'on_data' in events:
                    self._on_data=events['on_data']
    
    def set_property(self, key, value):
        self._properties[key]=value
    
    def get_property(self, key):
        if key not in self._properties:
            return None
        return self._properties[key]
    
    def get_byte_transfer(self):
        return self._byte_transfer
    
    def get_byte_length(self):
        return self._byte_length
    
    def fire_on_data(self,  byte_transfer,  byte_length):
        self._byte_transfer=byte_transfer
        self._byte_length=byte_length
        if self._on_data is not None:
            self._on_data(self)

class Response:
    def __init__(self, sock, body_file_name=None,  response_transfer_progress=None):
        data = utils.bytes_new(0)
        while utils.bytes_to_str(data).find('\r\n\r\n') == -1:
            app=sock.recv(1024 * 4)
            if app is None or len(app)==0:
                raise Exception('Close connection')
            data += app 
        ar = utils.bytes_to_str(data).split('\r\n\r\n')
        head = ar[0].split('\r\n')
        appbody = []
        appbody.append(data[len(ar[0])+4:])
        self._code = None
        self._headers = {}
        clenkey=None
        for item in head:
            if self._code is None:
                self._code = item.split(' ')[1]
            else:
                apppos = item.index(':')
                appk=item[0:apppos].strip()
                if appk.lower()=="content-length":
                    clenkey=appk
                self._headers[appk] = item[apppos+1:].strip()
        #Read body
        if self._code != '301' and self._code != '307' and clenkey is not None:
            self._extra_data=None
            lenbd = int(self._headers[clenkey])
            fbody=None
            try:
                jbts=utils.bytes_join(appbody)
                if body_file_name is not None:
                    fbody=utils.file_open(body_file_name, 'wb')
                    fbody.write(jbts)
                cnt=len(jbts)
                if response_transfer_progress is not None:
                    response_transfer_progress.fire_on_data(cnt,  lenbd)
                szbuff=1024*2
                buff=None
                while lenbd > cnt:
                    buff=sock.recv(szbuff)
                    if buff is None or len(buff)==0:
                        break
                    cnt+=len(buff)
                    if response_transfer_progress is not None:
                        response_transfer_progress.fire_on_data(cnt,  lenbd)
                    if body_file_name is None:
                        appbody.append(buff)
                    else:
                        fbody.write(buff)
            finally:
                if fbody is not None:
                    fbody.close()
                else:
                    self._body=utils.bytes_join(appbody)
        else:
            self._extra_data=utils.bytes_join(appbody)
            if len(self._extra_data)==0:
                self._extra_data=None

    def get_extra_data(self):
        return self._extra_data

    def get_code(self):
        return self._code

    def get_headers(self):
        return self._headers
    
    def get_body(self):
        return self._body


class Worker(threading.Thread):
    
    def __init__(self, parent,  queue, i):
        self._parent = parent
        threading.Thread.__init__(self, name=self._parent.get_name() + "_" + str(i))
        self.daemon=True
        self._queue=queue
        
    def run(self):
        while not self._parent._destroy:
            func, args, kargs = self._queue.get()
            if func is not None:
                try: 
                    func(*args, **kargs)
                except: 
                    e=utils.get_exception()
                    self._parent.fire_except(e)
                self._queue.task_done()

class ThreadPool():
    
    def __init__(self, name, queue_size, core_size , fexcpt):
            self._destroy=False
            self._name=name
            self._fexcpt=fexcpt
            self._queue = utils.Queue(queue_size)
            for i in range(core_size):
                self._worker = Worker(self, self._queue, i)
                self._worker.start()
    
    def get_name(self):
        return self._name 

    def fire_except(self, e):
        if self._fexcpt is not None:
            self._fexcpt(e)

    def execute(self, func, *args, **kargs):
        if not self._destroy:
            self._queue.put([func, args, kargs])
    
    def destroy(self):
        self._destroy=True #DA GESTIRE


class QueueTask():
    
    def __init__(self, tpool):
        self._task_pool=tpool
        self._semaphore = threading.Condition()
        self.list = []
        self.running = False
        
    
    def _exec_func(self):
        while True:
            func = None
            self._semaphore.acquire()
            try:
                if len(self.list)==0:
                    self.running = False
                    break
                func = self.list.pop(0)
            finally:
                self._semaphore.release()
            func()
                        
        
    def execute(self, f, only_if_empty=False):
        self._semaphore.acquire()
        try:
            if not self.running:
                self.list.append(f)
                self.running=True
                self._task_pool.execute(self._exec_func)
            else:
                if only_if_empty:
                    if len(self.list)<2: #con < 2 sono sicuro che almeno l'ultimo viene eseguito
                        self.list.append(f)
                else:
                    self.list.append(f)
        finally:
            self._semaphore.release()
        
        
            
class BandwidthCalculator:
    
    def __init__(self, ckint=0.5, ccint=5.0):
        self._semaphore = threading.Condition()
        self._current_byte_transfered=0
        self._last_byte_transfered=0
        self._last_time=0
        self._bps=0
        self._buffer_size=BUFFER_SIZE_MIN
        self._check_intervall=ckint
        self._calc_intervall=ccint
        self._calc_ar=[]
        self._calc_elapsed=0
        self._calc_transfered=0
    
    def set_check_intervall(self,i):
        self._semaphore.acquire()
        try:
            self._check_intervall=i
        finally:
            self._semaphore.release()
    
    def get_check_intervall(self):
        self._semaphore.acquire()
        try:
            return self._check_intervall
        finally:
            self._semaphore.release()
            
    def add(self, c):
        self._semaphore.acquire()
        try:
            self._current_byte_transfered += c
            self._calculate()
        finally:
            self._semaphore.release()
    
    def _calculate(self):
        tm=get_time() 
        transfered=self._current_byte_transfered-self._last_byte_transfered
        elapsed = (tm - self._last_time)
        if elapsed<0:
            elapsed=0
            self._last_time=tm
        if elapsed>self._check_intervall:
            self._calc_ar.append({"elapsed":elapsed, "transfered":transfered})
            self._calc_elapsed+=elapsed
            self._calc_transfered+=transfered
            while len(self._calc_ar)>1 and self._calc_elapsed>self._calc_intervall:
                ar = self._calc_ar.pop(0)
                self._calc_elapsed-=ar["elapsed"]
                self._calc_transfered-=ar["transfered"]
            self._bps=int(float(self._calc_transfered)*(1.0/self._calc_elapsed))
            self._calculate_buffer_size()
            self._last_time=tm
            self._last_byte_transfered=self._current_byte_transfered        
    
    def get_bps(self):
        return self._bps
    
    def get_buffer_size(self):
        return self._buffer_size
    
    def _calculate_buffer_size(self):
        self._buffer_size=int(0.2*float(self._bps))
        if self._buffer_size<BUFFER_SIZE_MIN:
            self._buffer_size=BUFFER_SIZE_MIN
        elif self._buffer_size>BUFFER_SIZE_MAX:
            self._buffer_size=BUFFER_SIZE_MAX
        else:
            self._buffer_size=int((float(self._buffer_size)/512.0)*512.0)
        
    
    def get_transfered(self):
        return self._current_byte_transfered        

'''
class BandwidthLimiter:
    
    def __init__(self,sync=True):
        if sync:
            self._semaphore = threading.Condition()
        else:
            self._semaphore = None
        self._last_time=0
        self._bandlimit=0
        self._last_wait=0
        self._buffsz=0        
        self.set_bandlimit(0)
     
     
    def _semaphore_acquire(self):
        if self._semaphore is not None:
            self._semaphore.acquire()
    
    def _semaphore_release(self):
        if self._semaphore is not None:
            self._semaphore.release()
    
    def get_bandlimit(self):
        self._semaphore_acquire()
        try:
            return self._bandlimit
        finally:
            self._semaphore_release()
        
    def set_bandlimit(self,pbps):
        self._semaphore_acquire()
        try:
            if self._bandlimit==pbps:
                return
            if pbps>0:
                self._bandlimit=pbps
                self._buffsz=calculate_buffer_size(pbps)
            else:
                self._bandlimit=0
                self._buffsz=BUFFER_SIZE_MAX
        finally:
            self._semaphore_release()
        
    def get_buffer_size(self):
        self._semaphore_acquire()
        try:
            return self._buffsz
        finally:
            self._semaphore_release()
    
    def get_waittime(self, c):
        self._semaphore_acquire()
        try:
            tm=get_time() 
            timeout = 0
            if c > 0:
                if self._bandlimit > 0:
                    if tm>=self._last_time:
                        elapsed = (tm - self._last_time) - self._last_wait
                        maxt = float(self._bandlimit)*elapsed
                        timeout = float(c-maxt)/float(self._bandlimit) 
                        self._last_wait=timeout
                        if self._last_wait<-1.0:
                            self._last_wait=0.0
                        self._last_time=tm
                        if timeout < 0.0:
                            timeout=0.0
                    else:
                        self._last_time=tm 
                        self._last_wait=0.0
            return timeout
        finally:
            self._semaphore_release()
            
'''
    
'''
#############################
##### NEW COMMUNICATION #####
#############################
'''

class HttpConnectionSocketPoll(threading.Thread):
    IDLE_MAX=120.0
    
    def __init__(self):
        threading.Thread.__init__(self, name="HttpConnectionSocketPoll")
        self._lock=threading.RLock()
        self._list=[]
        self._destroy=False
    
    def release_socket(self, sock, host, port, proxy_info, timeout):
        with self._lock:
            if timeout<=0 or timeout>=HttpConnectionSocketPoll.IDLE_MAX:
                timeout=HttpConnectionSocketPoll.IDLE_MAX
            self._list.insert(0,{"sock":sock, "host":host, "port":port, "proxy_info":proxy_info, "timeout": timeout , "releasetime": time.time()})
        
    def get_socket(self, host, port, proxy_info):
        sock=None
        while True:
            with self._lock:
                for i in range(len(self._list)):
                    itm=self._list[i]
                    elps=time.time()-itm["releasetime"]
                    if elps>=0 or elps<=itm["timeout"]:
                        if itm["host"]==host and itm["port"]==port and itm["proxy_info"]==proxy_info:
                            sock=itm["sock"]
                            self._list.pop(i)
                            break
            
            if sock is None:                
                return _connect_socket(host, port, proxy_info)
            else:
                #CHECK CONNECTION
                sock.settimeout(0.0)
                try:
                    bt = sock.recv(4096)
                    _close_socket(sock)
                    sock=None
                except Exception as e:
                    None                
                if sock is not None:
                    sock.settimeout(None)
                    return sock 

    def destroy(self):
        self._destroy=True
    
    def run(self):
        while (not self._destroy):
            time.sleep(5)
            arsockclose=[]
            with self._lock:
                brem=True
                while brem:
                    brem=False 
                    for i in range(len(self._list)):
                        itm=self._list[i]
                        elps=time.time()-itm["releasetime"]
                        if elps<0 or elps>itm["timeout"]:
                            arsockclose.append(itm["sock"])
                            self._list.pop(i)
                            #print("REMOVE SOCKET timeout:"+str(itm["timeout"]))                            
                            brem=True
                            break
                    
                #print("SOCKET LIST COUNT:"+str(len(self._list)))
                                                
            for sk in arsockclose:
                _close_socket(sk)
            
            
            
        #CLOSE ALL SOCKET
        arsockclose=[]
        with self._lock:
            for itm in self._list:
                arsockclose.append(itm["sock"])
            self._list=[]
        for sk in arsockclose:
            _close_socket(sk)

def _fix_header_key(name):
    if name.startswith("dw_"): #DO NOT CHANGE dw_ headers
        return name                
    return "-".join([w.capitalize() for w in name.split("-")])

class HTTPHeaders():
    
    def __init__(self):
        self._dict = {}
    
    def __setitem__(self, name, value):
        nm = _fix_header_key(name)
        self._dict[nm] = value

    def __getitem__(self, name):
        return self._dict[_fix_header_key(name)]

    def __delitem__(self, name):
        nm = _fix_header_key(name)
        del self._dict[nm]
    
    def __len__(self):
        return len(self._dict)

    def __iter__(self):
        return iter(self._dict)
    
class HttpConnection():
    
    def __init__(self, mth, surl, hds, opts):
        self._method=mth
        self._url=surl
        self._request_headers=HTTPHeaders()
        if hds is not None:
            for k in hds:
                self._request_headers[k]=hds[k]
        self._proxy_info=None
        if "proxy_info" in opts:
            self._proxy_info=opts["proxy_info"]
        self._split_url = _split_utl(self._url)
        self._sock = None
        self._connected = False
        self._response_loaded = False
        self._response_code = None
        self._response_header = None
        self._response_length = 0
        self._response_tmpbody = None
        self._check_close_counter=None
        self._keep_alive=False
        self._keep_alive_timeout=0
        self._socket_pool=None
        if "http_socket_pool" in opts: 
            self._socket_pool=opts["http_socket_pool"]
    
    def connect(self):
        if self._connected:
            raise Exception("Already connected.")
        try:
            self._request_headers['Host']=self._split_url["host"] + ':' + str(self._split_url["port"])
            if self._socket_pool is not None:
                if not 'Connection' in self._request_headers:
                    self._request_headers['Connection']='keep-alive'
                self._keep_alive=self._request_headers['Connection']=='keep-alive'
                self._sock = self._socket_pool.get_socket(self._split_url["host"], self._split_url["port"], self._proxy_info)
            else:
                if not 'Connection' in self._request_headers:
                    self._request_headers['Connection']='close'
                self._sock = _connect_socket(self._split_url["host"], self._split_url["port"], self._proxy_info)
            self._sock.settimeout(_TRANSFER_TIMEOUT)                
            arhead = []
            arhead.append(self._method)
            arhead.append(' ')
            arhead.append(self._split_url["path"])
            arhead.append(' ')
            arhead.append('HTTP/1.1')
            for k in self._request_headers:
                arhead.append('\r\n')
                arhead.append(k)
                arhead.append(': ')
                arhead.append(self._request_headers[k])
                
            arhead.append('\r\n')
            arhead.append('\r\n')
            self._sock.sendall(utils.str_to_bytes(''.join(arhead)))
            self._connected=True
        except Exception as e:
            self._keep_alive=False
            self.disconnect()
            raise e
    
    def get_request_header(self):
        return self._request_headers
    
    def set_request_length(self, l):
        self._request_headers["Content-Length"] = str(l)
    
    def _load_response(self, asynccheck=False):
        if not self._connected:
            raise Exception("Not connected.")
        if not self._response_loaded:
            if asynccheck==False:
                self._response_loaded=True
            else:
                self._sock.settimeout(0.0)
            firstread=True
            data = utils.bytes_new(0)
            while utils.bytes_to_str(data).find('\r\n\r\n') == -1:
                try:
                    app=self._sock.recv(4*1024)
                except Exception as e:
                    if asynccheck==True:
                        self._sock.settimeout(_TRANSFER_TIMEOUT)
                        return
                    else:
                        self._response_loaded=True
                        raise e
                if asynccheck==True:
                    self._response_loaded=True
                    asynccheck=False
                    self._sock.settimeout(_TRANSFER_TIMEOUT)
                if app is None or len(app)==0:
                    if firstread:
                        return None
                    raise Exception('Close connection')
                firstread=False
                data += app
                if len(data)>128*1024:
                    raise Exception('Head too long.')         
            ar = utils.bytes_to_str(data).split('\r\n\r\n')
            head = ar[0].split('\r\n')
            self._response_tmpbody=data[len(ar[0])+4:]
            self._response_header=HTTPHeaders()
            appconn=""
            appkeepalive=""
            for item in head:
                if self._response_code is None:
                    self._response_code = item.split(' ')[1]
                else:
                    apppos = item.index(':')
                    appk=item[0:apppos].strip()
                    self._response_header[appk] = item[apppos+1:].strip()
                    if appk.lower()=="connection":
                        appconn=self._response_header[appk]
                    if appk.lower()=="keep-alive":
                        appkeepalive=self._response_header[appk]
                    if appk.lower()=="content-length":
                        self._response_length=int(self._response_header[appk])
            if self._keep_alive:
                self._keep_alive=appconn.lower().startswith("keep-alive")
                if self._keep_alive:
                    ar=appkeepalive.split(",")
                    for v in ar:
                        v=v.strip()
                        if v.lower().startswith("timeout="):
                            try:
                                self._keep_alive_timeout=int(v[8:])
                            except:
                                None
                        
    
    def get_response_code(self):
        try:
            self._load_response()
            return self._response_code
        except Exception as e:
            self.disconnect(True)
            raise(e)
    
    def get_response_header(self):
        try:
            self._load_response()
            return self._response_header
        except Exception as e:
            self.disconnect(True)
            raise(e)
    
    def get_response_length(self):
        try:
            self._load_response()
            return self._response_length
        except Exception as e:
            self.disconnect(True)
            raise(e)
    
    def read(self, sz):
        try:
            self._load_response()
            oret=None
            lntmp = len(self._response_tmpbody)
            if lntmp>0: 
                if sz>=lntmp:
                    oret=self._response_tmpbody
                    self._response_tmpbody=utils.bytes_new()
                    return oret
                else:
                    oret=self._response_tmpbody[0:sz]
                    self._response_tmpbody=self._response_tmpbody[sz:]
                    return oret
            oret = self._sock.recv(sz)
            return oret
        except Exception as e:
            self.disconnect(True)
            raise(e)
    
    def write(self, bt):
        try:
            bckeck=False
            if self._check_close_counter is None:
                self._check_close_counter=utils.Counter()
                bckeck=True
            elif self._check_close_counter.is_elapsed(0.25):
                self._check_close_counter.reset()
                bckeck=True        
            if bckeck:
                self._load_response(True)
                if self._response_code is not None:
                    raise Exception("Connection error: " + str(self._response_code))
            self._sock.sendall(bt)
        except Exception as e:
            self.disconnect(True)
            raise(e)
    
    def _detach_socket(self):
        s=self._sock
        self._sock=None
        self._connected=False
        return s
    
    def disconnect(self, force=False):
        if force==True:
            self._keep_alive=False
        if self._connected==True:
            self._connected=False
            if self._sock is not None:
                if self._keep_alive and self._socket_pool is not None:
                    self._socket_pool.release_socket(self._sock, self._split_url["host"], self._split_url["port"], self._proxy_info, self._keep_alive_timeout)
                else:
                    _close_socket(self._sock)
                self._sock=None                
    
class HttpDownload(threading.Thread):
    
    def __init__(self, purl, fdst, hds, opts):
        threading.Thread.__init__(self, name="HttpDownload")
        self._close=False
        self._bcomplete=False
        self._file_dst=fdst
        self._http_request=HttpConnection("GET", purl, hds, opts)        
        if "bandwidth_calculator_send" in opts:
            self._bandwidth_calculator_send=opts["bandwidth_calculator_send"]
        else: 
            self._bandwidth_calculator_send=BandwidthCalculator()
        self._progress=0
        self._length=0
        self._calcbps=BandwidthCalculator()
        self._on_start = None
        self._on_progress = None
        self._on_complete = None
        self._on_except = None
        if "events" in opts:
            events=opts["events"]
            if "on_start" in events:
                self._on_start = events["on_start"]
            if "on_progress" in events:
                self._on_progress = events["on_progress"]
            if "on_complete" in events:
                self._on_complete = events["on_complete"]
            if "on_except" in events:
                self._on_except = events["on_except"]
        
    
    def run(self):
        self._sock = None
        fl = None
        try:
            self.fire_on_start()
            bsz=64*1024
            self._http_request.connect()
            if self._http_request.get_response_code()=="200":
                pb=0
                bl=self._http_request.get_response_length()
                data = utils.bytes_new()
                while not self._close and utils.bytes_to_str(data).find('\r\n\r\n') == -1:
                    app=self._http_request.read(4*1024)
                    if app is None or len(app)==0:
                        raise Exception('Close connection')
                    data += app
                    if len(data)>128*1024:
                        raise Exception('Multipart head too long.')                    
                if not self._close:
                    pb+=len(data)
                    head = utils.bytes_to_str(data)
                    pi = head.index('\r\n\r\n')+4
                    bondary = head[0:head.index('\r\n')]
                    self._progress=0
                    self._length=bl-pi-(2+len(bondary)+2+2)
                    fl=utils.file_open(self._file_dst, 'wb')
                    bts = data[pi:]
                    if len(bts)>self._length-self._progress:
                        bts=bts[0:self._length-self._progress]
                    fl.write(bts)
                    lnbf=len(bts)
                    if lnbf>0:
                        self._progress+=lnbf
                        self._calcbps.add(lnbf)
                        self.fire_on_progress(self._progress,self._length,self._calcbps.get_bps())
                    while not self._close and pb<bl:
                        '''
                        appbsz=self._calcbps.get_buffer_size()
                        if bsz!=appbsz:
                            bsz=appbsz
                            self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, bsz)                            
                        '''
                        if self._progress<self._length:
                            l=bsz
                            if l>self._length-self._progress:
                                l=self._length-self._progress
                            buff=self._http_request.read(l)
                            if buff is None or len(buff)==0:
                                break
                            fl.write(buff)
                            lnbf=len(buff)
                            pb+=lnbf
                            self._progress+=lnbf                            
                            self._calcbps.add(lnbf)
                            self.fire_on_progress(self._progress,self._length,self._calcbps.get_bps())
                        else:
                            buff=self._http_request.read(bsz)
                            if buff is None or len(buff)==0:
                                break
                            lnbf=len(buff)
                            pb+=lnbf                            
                    if self._progress==self._length:
                        self._bcomplete=True
                    else:
                        raise Exception("Transfer incomplete.")
            else:
                raise Exception("Error response code: " + str(self._http_request.get_response_code()))
        except:
            e = utils.get_exception()
            self.fire_except(e)
        finally:
            self._close=True
            self._http_request.disconnect()
            if fl is not None:
                fl.close()
            if self._bcomplete:
                self.fire_complete()
            elif utils.path_exists(self._file_dst):
                utils.path_remove(self._file_dst)
    
    def close(self):
        self._close=True
    
    def is_close(self):
        return self._close
    
    def is_complete(self):
        return self._bcomplete
    
    def fire_on_start(self):        
        if self._on_start is not None:
            self._on_start()
    
    def fire_on_progress(self,p,l,bps):        
        if self._on_progress is not None:
            self._on_progress(p,l,bps)
    
    def fire_complete(self):        
        if self._on_complete is not None:
            self._on_complete()
    
    def fire_except(self,e):
        if self._on_except is not None:
            self._on_except(e)
   
class HttpUpload(threading.Thread):
    
    def __init__(self, purl, fsrc, hds, opts):
        threading.Thread.__init__(self, name="HttpUpload")
        self._close=False
        self._bcomplete=False
        self._file_src=fsrc
        self._length=utils.path_size(self._file_src)
        nm=utils.path_basename(self._file_src)
        mt=mimetypes.guess_type(self._file_src)
        if mt is None or mt[0] is None or not isinstance(mt[0], str):
            hds["Content-Type"] = "application/octet-stream"
        else:
            hds["Content-Type"] = mt[0]
        hds["Content-Disposition"] = "attachment; filename=\"" + nm + "\"; filename*=UTF-8''" + utils.url_parse_quote(nm.encode("utf-8"), safe='')
        hds["Expires"] = "Sat, 26 Jul 1997 05:00:00 GMT"    
        self._http_request=HttpConnection("POST", purl, hds, opts)
        self._http_request.set_request_length(self._length)
        if "bandwidth_calculator_send" in opts:
            self._bandwidth_calculator_send=opts["bandwidth_calculator_send"]
        else: 
            self._bandwidth_calculator_send=BandwidthCalculator()        
        self._calcbps=BandwidthCalculator()
        self._on_start = None
        self._on_progress = None
        self._on_complete = None
        self._on_except = None
        if "events" in opts:
            events=opts["events"]
            if "on_start" in events:
                self._on_start = events["on_start"]
            if "on_progress" in events:
                self._on_progress = events["on_progress"]
            if "on_complete" in events:
                self._on_complete = events["on_complete"]
            if "on_except" in events:
                self._on_except = events["on_except"]
        
    
    def run(self):
        self._sock = None
        fl = None
        try:
            self.fire_on_start()            
            bsz=self._bandwidth_calculator_send.get_buffer_size()
            self._http_request.connect()
            fl = utils.file_open(self._file_src, 'rb')
            while not self._close:
                appbsz=self._bandwidth_calculator_send.get_buffer_size()
                if bsz!=appbsz:
                    bsz=appbsz
                    #self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, bsz)
                bts = fl.read(bsz)
                ln = len(bts)
                if ln==0:
                    self._bcomplete=True
                    break
                self._http_request.write(bts)
                self._bandwidth_calculator_send.add(ln)
                self._calcbps.add(ln)
                self.fire_on_progress(self._calcbps.get_transfered(),self._length,self._calcbps.get_bps())
                
            if self._bcomplete:
                if self._http_request.get_response_code()!="200":
                    self._bcomplete=False
                    raise Exception("Error response code: " + str(self._http_request.get_response_code()))
        except:
            e = utils.get_exception()
            self.fire_except(e)
        finally:
            self._close=True
            self._http_request.disconnect()
            if fl is not None:
                fl.close()
            if self._bcomplete:
                self.fire_complete()
        
    def close(self):
        self._close=True
    
    def is_close(self):
        return self._close
    
    def is_complete(self):
        return self._bcomplete
    
    def fire_on_start(self):        
        if self._on_start is not None:
            self._on_start()
    
    def fire_on_progress(self,p,l,bps):        
        if self._on_progress is not None:
            self._on_progress(p,l,bps)
    
    def fire_complete(self):        
        if self._on_complete is not None:
            self._on_complete()
    
    def fire_except(self,e):
        if self._on_except is not None:
            self._on_except(e)


class WebSocketCheckAlive(threading.Thread):
    
    def __init__(self, wsk, opts):
        threading.Thread.__init__(self, name="WebSocketCheckAlive")
        self.daemon=True
        self._intervall=opts["intervall"]
        self._threshold=opts["threshold"]
        self._websoket=wsk
        self._counter_check=utils.Counter()
        self._counter_send=utils.Counter()
        self._semaphore = threading.Condition()

    def _send_keep_alive(self):
        try:
            if not self._websoket.is_close():
                self._websoket._send_ws_ping()
                #print("WEBSOCKET - PING INVIATO!")                
        except:
            #traceback.print_exc()
            None

    def reset(self):
        self._semaphore.acquire()
        try:
            #print("WEBSOCKET - PING RESET!")
            self._counter_check.reset()
        finally:
            self._semaphore.release()
        
    def run(self):
        #print("Thread alive started: " + str(self._websoket))        
        bfireclose=False
        while not self._websoket.is_shutdown():
            time.sleep(1)
            self._semaphore.acquire()
            try:
                #CHECK
                if self._counter_check.is_elapsed((self._intervall+self._threshold)):
                    #print("Thread alive close: " + str(self._websoket))
                    bfireclose=not self._websoket.is_close()
                    break
                
                #SEND
                if self._counter_send.is_elapsed((self._intervall-self._threshold)):
                    #print("Thread alive send: " + str(self._websoket))
                    self._counter_send.reset()
                    self._send_keep_alive()
                
            finally:
                self._semaphore.release()
        self._websoket.shutdown()
        if bfireclose is True:
            self._websoket.fire_close(True)        
        #print("Thread alive stopped: " + str(self._websoket))

class WebSocketReader(threading.Thread):
    
    def __init__(self, wsk):
        threading.Thread.__init__(self, name="WebSocketReader")
        self.daemon=True
        self._websocket = wsk

    def _read_fully(self, sock, ln):
        data = []
        cnt=0
        while ln > cnt:
            s = sock.recv(ln-cnt)
            if s is None or len(s) == 0:
                return ''
            if self._websocket._tdalive is not None:
                self._websocket._tdalive.reset()
            data.append(s)
            cnt+=len(s)
        return utils.bytes_join(data)
        
    
    def run(self):
        #print("Thread read started: " + str(self._websocket))        
        bfireclose=False
        bconnLost=True
        sock = self._websocket.get_socket()
        try:
            while not self._websocket.is_shutdown():
                data = self._read_fully(sock, 2)
                if len(data) == 0:
                    bfireclose=not self._websocket.is_close()
                    break
                else:
                    lendt=0
                    bt0=utils.bytes_get(data,0)
                    bt1=utils.bytes_get(data,1)                    
                    fin=bt0 >> 7
                    if fin==False:
                        raise Exception("TODO continuation frame.")
                    opcode=bt0 & 0xF
                    if bt1 <= 125:
                        lendt = bt1
                    elif bt1 == 126:
                        data = self._read_fully(sock, 2)
                        if len(data) == 0:
                            bfireclose=not self._websocket.is_close()
                            break
                        lendt=struct.unpack('!H',data)[0]
                    elif bt1 == 127:
                        data = self._read_fully(sock, 4)
                        if len(data) == 0:
                            bfireclose=not self._websocket.is_close()
                            break
                        lendt=struct.unpack('!I',data)[0]
                    #Read data
                    if lendt>0:
                        data = self._read_fully(sock, lendt)
                        if len(data) == 0:
                            bfireclose=not self._websocket.is_close()
                            break
                    elif lendt==0:
                        data=utils.bytes_new()
                    else:
                        bfireclose=not self._websocket.is_close()
                        break
                    if opcode == 1: #TEXT
                        self._websocket.fire_data(WebSocket.DATA_STRING, utils.bytes_to_str(data,"utf8"))
                    elif opcode == 2: #BYTES
                        self._websocket.fire_data(WebSocket.DATA_BYTES, data)
                    elif opcode == 9: #PING
                        #print("SESSION - PONG RICEVUTO!")
                        continue
                    elif opcode == 10: #PONG
                        #print("SESSION - PONG RICEVUTO!")
                        continue
                    elif opcode == 8: #CLOSE
                        bconnLost=False
                        bfireclose=not self._websocket.is_close()
                        break
                    else:
                        continue                    
        except:
            e=utils.get_exception()
            bfireclose=not self._websocket.is_close()
            #traceback.print_exc()
            self._websocket.fire_except(e) 
        self._websocket.shutdown()
        if bfireclose is True:
            self._websocket.fire_close(bconnLost)        
        #print("Thread read stopped: " + str(self._websocket))
        

class WebSocket:
    DATA_STRING = ord('s')
    DATA_BYTES = ord('b') 
    FRAME_SIZE_MAX = BUFFER_SIZE_MAX-10 #10 = WEBSOCKET HEADER

    def __init__(self, surl, hds, opts):        
        self._url=surl        
        if hds is None:
            hds={}
        hds["Connection"] = 'keep-alive, Upgrade'
        hds["Upgrade"] = 'websocket'
        self._websocket_key=utils.bytes_to_str(utils.enc_base64_encode(os.urandom(16)))
        hds["Sec-Websocket-Key"] = self._websocket_key        
        hds["Sec-Websocket-Version"] = '13'
        self._http_request=HttpConnection("GET", surl, hds, opts)
                
        if "bandwidth_calculator_send" in opts:
            self._bandwidth_calculator_send=opts["bandwidth_calculator_send"]
        else:
            self._bandwidth_calculator_send=BandwidthCalculator()
                    
        if "send_keepalive" in opts:
            self._send_keepalive=opts["send_keepalive"]
        else:
            self._send_keepalive=None
                    
        self._close=True
        self._connection_lost=False
        self._shutdown=False
        self._on_data= None
        self._on_close = None
        self._on_except = None
        if "events" in opts:
            events=opts["events"]
            if "on_data" in events:
                self._on_data = events["on_data"]
            if "on_close" in events:
                self._on_close = events["on_close"]
            if "on_except" in events:
                self._on_except = events["on_except"]
        self._lock_status = threading.Lock()
        self._lock_send = threading.Lock()
        self._sock = None
        self._tdread = None
        self._tdalive = None
        #WEBSOCKET DATA
        self._ws_data_b0_bytes = 2 % 128
        self._ws_data_b0_string = 1 % 128
        self._ws_data_b0_continuation = 0 %  128
        self._ws_data_struct_1=struct.Struct("!BB")
        self._ws_data_struct_2=struct.Struct("!BBH")
        self._ws_data_struct_3=struct.Struct("!BBQ")
        #WEBSOCKET PING
        self._ws_ping_b0 = 9 % 128
        self._ws_ping_b0 |= 1 << 7
        self._ws_ping_struct=struct.Struct("!BBI")
        #WEBSOCKET PONG
        self._ws_pong_b0 = 10 % 128
        self._ws_pong_b0 |= 1 << 7
        self._ws_pong_struct=struct.Struct("!BBI")
        #WEBSOCKET CLOSE
        self._ws_close_b0 = 8 % 128
        self._ws_close_b0 |= 1 << 7
        self._ws_close_struct=struct.Struct("!BBI")
        
        self._ws_mask_struct=struct.Struct("!B")
        self._ws_mask_send=False
        self._ws_mask_send_byte=0x80
                
        self._sndbuf=None        
        
            
    def open(self):
                        
        if self._sock is not None:
            raise Exception("Already connect.")
        if self._http_request is None:
            raise Exception("Connection failed.")
        try:            
            self._http_request.connect()
            if self._http_request.get_response_code()=='101':
                
                swk=""
                if "Sec-Websocket-Accept" in self._http_request.get_response_header():
                    swk=self._http_request.get_response_header()["Sec-Websocket-Accept"].upper()
                if swk!=self._calculate_websocket_accept(self._websocket_key).upper():
                    raise Exception("Invalid Sec-Websocket-Accept.")
                
                self._close=False
                self._sock=self._http_request._detach_socket()
                self._http_request=None
                self._sock.settimeout(None)
                
                '''
                self._sndbuf=self._bandwidth_calculator_send.get_buffer_size()
                self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, self._sndbuf)
                '''
                
                #Start checkalive thread
                if self._send_keepalive is not None:
                    self._tdalive = WebSocketCheckAlive(self,self._send_keepalive)
                    self._tdalive.start()
                
                #Start read thread
                self._tdread = WebSocketReader(self)
                self._tdread.start()                                
            else:
                l = self._http_request.get_response_length()
                if l>0:
                    raise Exception(utils.bytes_to_str(self._http_request.read(l),"utf8"))
                else:
                    raise Exception("Server error.")
        except:
            e=utils.get_exception()
            self.shutdown()
            raise e
    
    def _calculate_websocket_accept(self, swk):
        swa = swk+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
        swa = hashlib.sha1(utils.str_to_bytes(swa,"utf-8")).digest()
        swa = utils.bytes_to_str(base64.b64encode(swa))
        return swa
    
    def _mask_send_data(self,appdt,btmask):
        ar=[]
        ln=len(appdt)
        if utils.is_py2():
            for i in range(ln):
                ar.append(self._ws_mask_struct.pack(ord(appdt[i]) ^ ord(btmask[i % 4])))
        else:
            for i in range(ln):
                ar.append(self._ws_mask_struct.pack(appdt[i] ^ btmask[i % 4]))        
        return utils.bytes_join(ar)
    
    def get_socket(self):
        return self._sock    
   
    def send_bytes(self, data):
        self._send_ws_data(data,self._ws_data_b0_bytes)        
    
    def send_string(self, s):
        self._send_ws_data(utils.str_to_bytes(s,"utf8"),self._ws_data_b0_string)
        
    def fire_data(self, tp, dt):
        if self._on_data is not None:
            self._on_data(tp, dt)        
            
    def fire_close(self,connlost):        
        with self._lock_status:
            self._connection_lost=connlost
            onc=self._on_close
            self._on_data= None
            self._on_close = None
            self._on_except = None
        if onc is not None:
            onc()
    
    def fire_except(self,e):  
        if self._on_except is not None:
            self._on_except(e) 
    
    def _send_ws_data(self,dt,b0):
        if self._sock is None:
            raise Exception('connection closed.')
        self._lock_send.acquire()
        try:
            p=0
            l = len(dt)
            while l>0:
                appln=l
                if appln>WebSocket.FRAME_SIZE_MAX:
                    appln=WebSocket.FRAME_SIZE_MAX
                    appdt=dt[p:p+appln]                                        
                else:
                    if p==0:
                        appdt=dt
                    else:
                        appdt=dt[p:p+appln]
                    b0 |= 1 << 7
                
                ba=bytearray()
                if appln <= 125:
                    ba.extend(self._ws_data_struct_1.pack(b0, appln | self._ws_mask_send_byte))
                elif appln <= 0xFFFF:
                    ba.extend(self._ws_data_struct_2.pack(b0, 126 | self._ws_mask_send_byte, appln))
                else:
                    ba.extend(self._ws_data_struct_3.pack(b0, 127 | self._ws_mask_send_byte, appln))
                if self._ws_mask_send:
                    btmask=utils.bytes_random(4)
                else:
                    btmask=utils.bytes_init(4)
                ba.extend(btmask)
                if self._ws_mask_send:
                    ba.extend(self._mask_send_data(appdt,btmask))
                else:                    
                    ba.extend(appdt)
                utils.socket_sendall(self._sock,ba)
                l-=appln
                p+=appln
                b0 = self._ws_data_b0_continuation
                self._bandwidth_calculator_send.add(appln)
                
                '''
                newbsz=self._bandwidth_calculator_send.get_buffer_size()
                if newbsz!=self._sndbuf:
                    self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, self._sndbuf)
                    print(str(newbsz))
                '''
                
        finally:
            self._lock_send.release()
            
    def _send_ws_close(self):
        if self._sock is None:
            raise Exception('connection closed.')
        self._lock_send.acquire()
        try:
            utils.socket_sendall(self._sock,self._ws_close_struct.pack(self._ws_close_b0, 0 | self._ws_mask_send_byte, 0))            
        finally:
            self._lock_send.release() 
    
    def _send_ws_ping(self):
        if self._sock is None:
            raise Exception('connection closed.')
        self._lock_send.acquire()
        try:
            utils.socket_sendall(self._sock,self._ws_ping_struct.pack(self._ws_ping_b0, 0 | self._ws_mask_send_byte, 0))
        finally:
            self._lock_send.release()
        
    def _send_ws_pong(self):
        if self._sock is None:
            raise Exception('connection closed.')
        self._lock_send.acquire()
        try:
            utils.socket_sendall(self._sock,self._ws_pong_struct.pack(self._ws_pong_b0, 0 | self._ws_mask_send_byte, 0))
        finally:
            self._lock_send.release()

    def is_close(self):
        with self._lock_status:
            bret = self._close
        return bret
    
    def is_connection_lost(self):
        with self._lock_status:
            bret = self._connection_lost
        return bret        
    
    def is_shutdown(self):
        with self._lock_status:
            bret = self._shutdown
        return bret
    
    def close(self):
        bsendclose=False
        try:
            with self._lock_status:
                if not self._close:
                    self._close=True
                    bsendclose=True
                    self._on_data= None
                    self._on_close = None
                    self._on_except = None
                    #print("session send stream close.")
            if bsendclose:
                self._send_ws_close()
                #Wait shutdown
                cnt = utils.Counter()
                while not self.is_shutdown():
                    time.sleep(0.2)
                    if cnt.is_elapsed(10):
                        break
        except:
            None
            
    
    def shutdown(self):
        
        with self._lock_status:
            if self._shutdown:
                return
            self._close=True
            self._shutdown=True
        
        if self._http_request is not None:
            self._http_request.disconnect()
            self._http_request=None        
        
        if self._sock is not None:
            #Close thread alive
            #if (self._tdalive is not None) and (not self._tdalive.is_close()):
            #    self._tdalive.join(5000)
            self._tdalive = None
            
            #Close thread read
            #if (self._tdread is not None) and (not self._tdread.is_close()):
            #    self._tdread.join(5000)
            self._tdread = None
            
            try:                
                self._sock.shutdown(socket.SHUT_RDWR)
            except:
                None
            try:
                self._sock.close()
            except:
                None
            self._sock = None            
            self._proxy_info = None


class WebSocketSimulate(threading.Thread):
    DATA_STRING = ord('s')
    DATA_BYTES = ord('b') 

    def __init__(self, surl, hds, opts):
        threading.Thread.__init__(self, name="WebSocketSimulate")
        self._url=surl
        self._headers=hds
        self._options=opts
        if "bandwidth_calculator_send" in opts:
            self._bandwidth_calculator_send=opts["bandwidth_calculator_send"]
        else: 
            self._bandwidth_calculator_send=BandwidthCalculator()
        self._close=True
        self._connection_lost=False
        self._shutdown=False
        self._on_data= None
        self._on_close = None
        self._on_except = None
        if "events" in opts:
            events=opts["events"]
            if "on_data" in events:
                self._on_data = events["on_data"]
            if "on_close" in events:
                self._on_close = events["on_close"]
            if "on_except" in events:
                self._on_except = events["on_except"]
        self._condition = threading.Condition()
        self._data_list = []
        self._data_list_size = 0
        
                
    def _get_max_send_size(self):
        bps=self._bandwidth_calculator_send.get_bps()
        if bps>0:
            return bps
        else:
            return 56536
    
    def _read_requests(self, bdetroy=False):
        surl=self._url
        if bdetroy:
            surl+="?destroy=true"
        httpreq=HttpConnection("GET", surl, self._headers, self._options)
        httpreq.connect()
        try:
            if httpreq.get_response_code()=="200":
                self._length=httpreq.get_response_length()
                bsz=64*1024
                arreq=[]
                self._progress=0
                while self._progress<self._length:
                    data=httpreq.read(bsz)
                    if data is None or len(data)==0:
                        break
                    arreq.append(data)
                    self._progress+=len(data)            
                if self._progress==self._length:
                    return utils.url_parse_qs(utils.bytes_to_str(utils.bytes_join(arreq)))
                else:
                    raise Exception("Connection closed.")
            else:
                raise Exception("Error response code: " + str(httpreq.get_response_code()))        
        finally:
            httpreq.disconnect()
    
    def _write_responses(self,arresp):
        btreq=utils.str_to_bytes(json.dumps(arresp))
        hds=self._headers.copy()
        hds["Content-Type"] = "application/json; charset=utf-8"
        hds["Content-Length"] = str(len(btreq))
        httpreq=HttpConnection("POST", self._url, hds, self._options)
        httpreq.connect()
        try:
            bsz=-1
            p=0
            l = len(btreq)   
            while l>0:            
                appbsz=self._bandwidth_calculator_send.get_buffer_size()
                if bsz!=appbsz:
                    bsz=appbsz
                    #self._sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, bsz)
                appln=l
                if appln>bsz:
                    appln=bsz                    
                    appdt=btreq[p:p+appln]
                else:
                    if p==0:
                        appdt=btreq
                    else:
                        appdt=btreq[p:p+appln]            
                httpreq.write(appdt)
                p+=appln
                l-=appln
                self._bandwidth_calculator_send.add(appln)
            if httpreq.get_response_code()!="200":
                raise Exception("Error response code: " + str(httpreq.get_response_code()))
        finally:
            httpreq.disconnect()
        
    def open(self):
        with self._condition:
            self._close=False
        try:
            arreq=self._read_requests()
            if arreq["status"][0]=="ok":            
                self.start()
            else:
                raise Exception("Connection refused.")        
        except Exception as ex:
            with self._condition:
                self._close=True
            raise ex
    
    def run(self):                        
        try:                        
            while not self.is_close():
                                
                #READ REQUEST
                arreq=self._read_requests()
                                
                if "destroy" in arreq and arreq["destroy"][0]=="true":
                    self._write_responses({})
                    break
                
                if self._on_data is not None:
                    cnt = int(arreq["count"][0])
                    for i in range(cnt):
                        tpdata = ord(arreq["type_" + str(i)][0])
                        prprequest = arreq["data_" + str(i)][0]
                        if tpdata==WebSocketSimulate.DATA_BYTES:
                            prprequest=utils.enc_base64_decode(prprequest)
                        self._on_data(tpdata, prprequest)                
                
                #WRITE RESPONSES
                arsend = {}
                with self._condition:
                    if len(self._data_list)==0:
                        appwt=250
                        if "wait" in arreq:
                            appwt=int(arreq["wait"][0])
                        if appwt<=0 or appwt>10000: #Reason KEEP ALIVE
                            appwt=10000 
                        
                        appwt=appwt/1000.0
                        self._condition.wait(appwt)
                    
                    arcnt = 0
                    lensend = 0
                    while len(self._data_list)>0 and lensend<self._get_max_send_size():
                        sdt = self._data_list.pop(0)
                        arsend["type_" + str(arcnt)]=sdt["type"]
                        arsend["data_" + str(arcnt)]=sdt["data"]                        
                        lensend += len(sdt["data"])
                        arcnt+=1                    
                    arsend["count"]=arcnt
                    arsend["otherdata"]=len(self._data_list)>0
                    if lensend>0:
                        self._data_list_size-=lensend
                        self._condition.notify_all()
                
                self._write_responses(arsend)    
                
            if self.is_close():
                self._read_requests(True)
        except:
            e = utils.get_exception()
            if self._on_except is not None:
                self._on_except(e) 
        finally:
            with self._condition:
                bonclose=not self._close
                self._close=True
            if bonclose and self._on_close is not None:
                self._on_close()
            
    def send_bytes(self, data):
        self._send(chr(WebSocketSimulate.DATA_BYTES), utils.bytes_to_str(utils.enc_base64_encode(data)))        
    
    def send_string(self, s):
        self._send(chr(WebSocketSimulate.DATA_STRING), s)        
    
    def _send(self, t, s):
        with self._condition:
            while not self._close and self._data_list_size>self._get_max_send_size():
                self._condition.wait(0.5)
                                
            if not self._close:
                self._data_list.append({"type": t, "data": s})
                self._data_list_size+=len(s)
                self._condition.notify_all()
    
    def is_close(self):
        with self._condition:
            bret = self._close
        return bret
    
    def close(self):
        with self._condition:
            if not self._close:
                self._close=True
                self._on_data= None
                self._on_close = None
                self._on_except = None
                self._condition.notify_all()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          detectinfo.py                                                                                       0000644 0001750 0001750 00000010371 14143430345 013045  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

import platform
import subprocess
import sys
import utils

def is_windows():
    return (platform.system().lower().find("window") > -1)

def is_linux():
    return (platform.system().lower().find("linux") > -1)

def is_mac():
    return (platform.system().lower().find("darwin") > -1)

def is_os_32bit():
    return not sys.maxsize > 2**32

def is_os_64bit():
    return sys.maxsize > 2**32

def check_hw_string(s):
    if s is not None:
        if "raspberry" in s.lower():
            return "RaspberryPi"
        elif "wandboard" in s.lower():
            return "Wandboard"
        elif "pine64" in s.lower() or "rock64" in s.lower():
            return "Pine64"
    return None

def get_hw_name():
    sapp = platform.machine()
    if is_linux() and ((len(sapp)>=3 and sapp[0:3].lower()=="arm") or (len(sapp)>=7 and sapp[0:7].lower()=="aarch64")):
        #VERIFICA SE RASPBERRY
        try:
            if utils.path_exists("/sys/firmware/devicetree/base/model"):
                fin=utils.file_open("/sys/firmware/devicetree/base/model","r")
                appmdl = fin.read()
                fin.close()
                appmdl=check_hw_string(appmdl);
                if appmdl is not None:
                    return appmdl
            appmdl=check_hw_string(platform.node());
            if appmdl is not None:
                return appmdl
        except:
            None
    return None


def get_native_suffix():
    try:
        hwnm = get_hw_name()
        if hwnm == "RaspberryPi":
            if is_os_64bit():
                return "linux_arm64_v1"
            else:
                return "linux_armhf_v2"        
        elif hwnm == "Wandboard":
            if is_os_64bit():
                return "linux_arm64_v1"
            else:
                return "linux_armhf_v1"
        elif hwnm == "Pine64":
            if is_os_64bit():
                return "linux_arm64_v1"
            else:
                return "linux_armhf_v2"
        
        sapp = platform.machine()
        if sapp is not None:
            if sapp.upper()=="AMD64" or sapp.lower()=="x86_64" or sapp.lower()=="i386" or sapp.lower()=="x86" or (len(sapp)==4 and sapp[0]=="i" and sapp[2:4]=="86"):
                if is_linux():
                    if is_os_64bit():
                        return "linux_x86_64"
                    elif is_os_32bit():
                        return "linux_x86_32"
                elif is_windows():
                    if is_os_64bit():
                        return "win_x86_64"
                    elif is_os_32bit():
                        return "win_x86_32"
                elif is_mac():
                    if is_os_64bit():
                        return "mac_x86_64"
                    elif is_os_32bit():
                        return "mac_x86_32"                
            elif is_linux() and len(sapp)>=3 and sapp[0:3].lower()=="arm":
                try:
                    if is_os_64bit():
                        return "linux_arm64_v1"
                    else:
                        p = subprocess.Popen("readelf -A /proc/self/exe | grep Tag_ABI_VFP_args", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
                        (o, e) = p.communicate()
                        if len(e)==0:
                            if len(o)>0:
                                return "linux_armhf_v1"
                            else:
                                None
                                #return "linux_armel"
                except:
                    None
            elif is_linux() and len(sapp)>=7 and sapp[0:7].lower()=="aarch64":
                return "linux_arm64_v1"
            elif is_windows() and sapp.upper()=="ARM64":
                return "win_x86_32" 
            elif is_mac() and sapp.upper()=="ARM64":
                return "mac_arm64_v1" 
    except:
        None
    if is_linux():
        return "linux_generic" 
    return None

if __name__ == "__main__":
    print(get_native_suffix())
                                                                                                                                                                                                                                                                           dwaggdi_arm64_v1.so                                                                                 0000644 0001750 0001750 00000246720 15031002157 013741  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ELF          ·    Àe      @       G         @ 8  @                                 ';     ';                   <      <      <     È	      À                   P<     P<     P<                                È      È      È      $       $              Påtd   @     @     @     4      4             Qåtd                                                  Råtd    <      <      <     à      à                      GNU ¹KI:D;$ÅÖ!]•‹ôzÆzø    ƒ   Ÿ      
   cRÂ@$ å
N€XÐ QÛ ‚Ø‡€ ¤	€ h¡ „…xÒ¢‚Q¤Ø5    $ $H@     Ã‘T€  …   ! L\ƒ$Dˆ@0Â
k€ € àŸ   ¡   ¤   ¥   §   ¨               ©   «       ¬   ®   ¯       °       ±       ²   ´   µ   ·       ¹   º   »       À   Â   Ã       Ä               Ç   È   É   Ê   Ë   Ì   Í                   Î       Ò   Ó   Õ       ×       Ù   Û       Ü   Ý           Þ   ß       à   â       ä   æ   ç   è       é   ê       ì   î           ï   ñ   ò           ô   õ   ö   ÷       û   ý   þ                       
                                                                     #  $  %      &  ê8* k3ô@6ÎÛØˆŒ¨±-€—Ò¦ì<¯ùð-ˆÇüBã|!˜¥VÄûÀÜyKË…YjïeÃ¹ñÓKFÏyÈ`6—Øñ§A8ÊªØÒ±—âü®c¯=²FïK	wË(A]#… ºË Rk)tVkà‡2"ÚÌ"´ÐärpTsýd¹Ì[ÀÄè©†ñU“ðˆHÉ0$6L¯yY ×…ì¢Y·T3÷T¸k‘«xá“]É¨×Ö¦ìþk`¦Ü«ÄÄóóÿ§—ñ-4+fïS+À”úúä©DÐäPFÏ;xY 4ØFÏÝ=â›©y|ª*¡Ó©÷`“˜h­ÙqXØ"!™_,ŒÍ)wT<”Dý_{ò£Í]Ÿ¡™BúÕðˆã’ñ¦žLSá?vºšGÍ÷ 	È7‰Gvÿ§²¹}dMåâ÷áö6£Å½¯õ¡‡!2Qü«èÌçæà«Æ7Í=Fˆ¨»ã’|»å ÕXï—yü˜¯‡ëaÕëÓï3ªÒ= ¯4èuÜFÏ[CEÕìº²}Ö*•ûËe’sa8ý‚îÄŸ-î‚n¶Yl°ÏÈÕØÛ)é%Q&'œ^;™ZÍ)¯[`©’NØØž^;™­ÝXèjš|¤Q®×¡^;™¿ÚWÃ­êDa„OƒC3£3M0¬^;™›@©‘BŒyÉ•ì¢w5!SìÌç                                 	 ÐY                    H<             ¦                     Ë                     ×                     9                     )                     ™                     k                     v                     Ú                     ˆ                     ‘                                          “                     Ü                     m                     ¦                                          g	                     8                     Ñ                     M                                          ¨                     h                     ü                     ,                     ô                                          Ð                     ã                     u                     J                     *                     ´                     ª                                          ³                     F                     Ÿ                     Ë                     £                     ½                     Š                     Ó                     R   "                   ¢                                          È                     ²	                     T                     m                     ‰                     ¸                     ×                     6                     Ë                     Ø                     “                     é                     )                     ü                     Ö                     ×                     T                                          r                     ê                     M                     Z                     S                     D                     š                      ó                     ñ                     @                     ô                     A                                          ä                     F                                          ú
                     Ë                     À                     K	                                          ’                     ð                     a                       k                     ¬                     Ñ                     ‡                                          ¬                     I                     <                     Í                                          ·                     Ì                     ®                                          ~                     x                     û                                          »                                          {                     »                     í                     @                     
                     ¡                                          b                     Ë                     „                     Õ                     ®                     O                     w                     U                     ê                                          $                                          ô                     ‘                     :                                            ÿ                                          Ä                                          $                     †	                     û                     ï                     ©
                                          ¹
                     9                                            ø                     z                     à                     4                     ¡                     8                       \                     L                     †                     i                     z                     Ö	    @†             œ    x€      ¨       À     }      T       .  "       T           Ð      ¨       4  "  `à      D       u   "  øÚ             •     ¥      T       ¥  "  ß      H      þ  "  xÛ      ä       õ     G            R     ì      ô      h    èo      `       b
    àˆ      H          	 ÐY              Ÿ     ã             ™	     †      8           Èž      Œ       t  "  8â      ä       7           (       0     {      p           ¸F            r	    …      p       ß    Hq      `       Z    PG            -    Xr      ¬      F    (      ¤       '    `Ø      ˜      ú    Ø            %    G                Hô      °      o    ˆG            v    è                `G            D    à˜      œ       	    „      ,       G    À            Y	    Ø„      ´       ®    ø            h    ÀF              "  ðá      D       {    Hp      €       _    €™      H      ˆ    P¤      °       J
    hˆ      x       w  "       T         "  `à      D       7    Ð£      |       „  "  @Û             Q    Øä      X       /	    h„      p       6    ˆã      L      ù    ¨q      `       `  "  ¨à      H      ñ    ×      D      Š    €æ      È       ¸     ã             ç    pG            ¼  "  XÛ             Ç    0ã      X       F	    xG            Ò          À       	    8„      ,       Q    ˆo      `       _    èE                 r      P           @F            =  "  (Û             k    èE             ¦    €G            è    hn            C  "  0Þ      ä       B  "  `Ü      ä       !    À            ’    (F            ?    ¨G             ú    ¨}      0       ,    ˜G            Ä    Èp      €       ^    °ë      ð       ¿	    8†             ð    F            â    ÈÖ      L       ƒ
    (‹      |      ’    XG            W    øt      (      ó  "  HÝ      ä       ’    x|              ð   "  Û             `  "  @Û             ç    È˜                 (y      À      ä  "  `     `           àG             ¯     ë             …    àG             ¡   "  øÚ             ì    °‚      T                        ­    ˜|      „       z    àG             ¨  "  XÛ             6    À     <      X    èE             Û    èz      ¸            XŸ      \          øE            o    ˆF     0       B    hG            ½    Ö      ¬           Ø}      (      â    x}      0       í	    H†            ·           ¤       æ    ˜î      °        "  (Û             \                 K    Hç      T      Ì    X¥      è/      V    X     °      o    0å      L      ³    Øg             È    ¨˜             È    ¨ÿ      °      y    àG             9    t      ð       ^    |      d       ×    ÈG            ~    XF     0       :    øù      °      Ú    È      ä       ª    PÕ      Ä       a    ÐF     €       =  "  ðá      D       ’    ð            Æ   "  Û              __gmon_start__ _init _fini _ITM_deregisterTMCloneTable _ITM_registerTMCloneTable __cxa_finalize _Jv_RegisterClasses _ZNSt6vectorIP9DWAWindowSaIS1_EED2Ev _ZdlPv _ZNSt6vectorIP9DWAWindowSaIS1_EED1Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED2Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED1Ev _ZNSt6vectorIP7DWAFontSaIS1_EED2Ev _ZNSt6vectorIP7DWAFontSaIS1_EED1Ev _ZNSt6vectorIP8DWAImageSaIS1_EED2Ev _ZNSt6vectorIP8DWAImageSaIS1_EED1Ev _ZN10JSONWriterD2Ev _ZN10JSONWriterD1Ev wcslen _ZSt19__throw_logic_errorPKc _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_createERmm wmemcpy _Znwm _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base _Z20removeWindowByHandlem windowList XftDrawDestroy colormap visual display XftColorFree _ZdlPvm memmove _Z17getWindowByHandlem _Z13getWindowByIDi _Z17getNotifyIconByIDi notifyIconList _ZSt24__throw_out_of_range_fmtPKcz _Z21getNotifyIconByHandlem _Z11getFontByIDi fontList _Z12getImageByIDi imageList _Z17ChooseBetterStylemm _Z16addImageToBufferPwRPm _ZN11ImageReaderC1Ev _ZN11ImageReader4loadEPKw _ZN11ImageReader8isLoadedEv _ZN11ImageReader8getWidthEv _ZN11ImageReader9getHeightEv malloc _ZN11ImageReader8getPixelEjjPhS0_S0_S0_ _ZN11ImageReader7destroyEv _Unwind_Resume __gxx_personality_v0 DWAGDIUnloadFont XFreeFontSet _Z17findXtfFontbyCharji charToFontHash hashToFont FcPatternCreate FcPatternAddString FcPatternAddInteger FcPatternAddDouble FcCharSetCreate FcCharSetAddChar FcPatternAddCharSet FcPatternAddBool FcConfigSubstitute FcDefaultSubstitute FcFontMatch FcPatternHash XftFontOpenPattern FcCharSetDestroy FcPatternDestroy _Z13loadFontType0P7DWAFontPw XCreateFontSet XFreeStringList XFontsOfFontSet DWAGDIPosSizeWindow XFreePixmap XGetWindowAttributes XCreatePixmap XMoveResizeWindow DWAGDIDestroyWindow XDestroyIC XDestroyWindow DWAGDISetTitle XwcTextListToTextProperty XSetWMName DWAGDIGetScreenSize screen DWAGDIGetImageSize DWAGDIShow XMapWindow XMoveWindow DWAGDIHide XUnmapWindow DWAGDIToFront XRaiseWindow DWAGDIPenColor XftColorAllocValue DWAGDIPenWidth DWAGDIDrawLine XSetLineAttributes XSetForeground XDrawLine DWAGDIDrawEllipse XDrawArc DWAGDIFillEllipse XFillArc DWAGDIFillRectangle XFillRectangle DWAGDIUnloadImage DWAGDIDrawImage XDrawPoint _Z13getFontAscentii DWAGDIGetTextHeight DWAGDIGetMousePosition root XQueryPointer DWAGDIRepaint XSendEvent DWAGDIClipRectangle XSetClipRectangles DWAGDIClearClipRectangle XSetClipMask DWAGDISetClipboardText DWAGDIGetClipboardText DWAGDIUpdateNotifyIcon _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_ DWAGDIDestroyNotifyIcon _Z10drawNotifyP13DWANotifyIconii _Z13detectKeyTypeP9DWAWindowP7_XEvent XwcLookupString _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6appendEPKw _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_appendEPKwm jonextevent _ZN10JSONWriter9addStringENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_ free realloc _ZSt20__throw_length_errorPKc _Z17detectMouseButtonP7_XEvent DWAGDIEndLoop exitloop _ZNSt6vectorIP9DWAWindowSaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ _Z9addWindowimP4_XGCP4_XIC DWAGDINewWindow screenid XWhitePixel XCreateWindow wm_delete_window XSetWMProtocols XCreateGC wcpcpy wcstok XInternAtom XChangeProperty im XCreateIC XGetICValues XSetICFocus XSelectInput XAllocSizeHints XSetWMNormalHints XFree _ZNSt6vectorIP13DWANotifyIconSaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ _Z13addNotifyIconi DWAGDICreateNotifyIcon XMatchVisualInfo XCreateColormap sprintf XGetSelectionOwner _ZNSt6vectorIP7DWAFontSaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ _Z7addFonti _ZNSt6vectorIP8DWAImageSaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ _Z8addImagei DWAGDILoadImage _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED2Ev _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED1Ev _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E DWAGDILoop g_callEventMessage getenv setlocale XOpenDisplay wm_protocols XSetLocaleModifiers XScreenOfDisplay XOpenIM best_style XGetIMValues x11_fd in_fds tv select XPending XNextEvent XftFontClose XFreeColormap XCloseDisplay _ZN10JSONWriter5clearEv _ZN10JSONWriter11beginObjectEv _ZN10JSONWriter9addNumberENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEi _ZN10JSONWriter9endObjectEv _ZN10JSONWriter9getStringB5cxx11Ev XCopyArea _ZN10JSONWriter10addBooleanENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEb XRefreshKeyboardMapping XSetInputFocus stderr fwrite _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED2Ev _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED1Ev _ZNSt6vectorIjSaIjEE19_M_emplace_back_auxIJjEEEvDpOT_ _Z11wcharToUcs4PKw _Z13loadFontType1P7DWAFontPw XftInit DWAGDILoadFont DWAGDIGetTextWidth XftTextExtents32 XwcTextEscapement DWAGDIDrawText XftDrawString32 XwcDrawString XftDrawCreate _ZNSt8ios_base4InitC1Ev _ZNSt8ios_base4InitD1Ev __cxa_atexit _ZN10JSONWriterC1Ev main _ZN10JSONWriterC2Ev _ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7compareEPKw _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE8_M_eraseEmm _ZN10JSONWriter10beginArrayEv _ZN10JSONWriter8endArrayEv _ZN10JSONWriter7addPropENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7reserveEm _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm _ZN10JSONWriter6lengthEv _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev _ZTVNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEEE _ZTVSt15basic_streambufIwSt11char_traitsIwEE _ZNSt6localeD1Ev _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev _ZTVSt9basic_iosIwSt11char_traitsIwEE _ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE _ZNSt8ios_baseC2Ev _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E _ZTVNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE _ZNSt6localeC1Ev _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi _ZNSt8ios_baseD2Ev _ZNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_ _ZN10JSONWriter9addNumberENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEy _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_ _ZN10JSONWriter9addNumberENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEm _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_ _ZN10JSONWriter9addNumberENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEl _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_ _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev _ZN11ImageReaderC2Ev _ZN11ImageReader7readBMPEPKw wcstombs _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate _ZNSi4readEPcl _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv _ZTVSt13basic_filebufIcSt11char_traitsIcEE _ZNSt12__basic_fileIcED1Ev _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZNSi5seekgElSt12_Ios_Seekdir memset _ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev libX11.so.6 libXpm.so.4 libXft.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 _edata __bss_start __bss_start__ __bss_end__ __end__ _end GCC_3.0 GLIBC_2.17 CXXABI_1.3 GLIBCXX_3.4.20 CXXABI_1.3.9 GLIBCXX_3.4 GLIBCXX_3.4.21 GLIBCXX_3.4.9                                                                                                                                                                                                                       	                                                                                                                                                                                @         P&y  	 ’        N         —‘–   š        '         Ó¯k   ¥     pø—   °     yÑ¯   ¿     t)’   Ì     qø—   Ø     ‰)   ç       <           0i      (<           ˆf      0<           àg      8<            h      @<           èh      ØE           ØE     x>       ¤           €>       ê           ˆ>                  >                  ˜>       ä            >                 ¨>       ì           °>       ÷           ¸>       
          À>       é           È>       $           Ð>       /           Ø>       4           à>       â           è>       ©           ð>       >           ø>       ÿ            ?       ¼           ?       ·           ?       Û           ?       ´            ?       Ù           (?       K           0?       À           8?                 @?       Z           H?       ð           P?       [           X?       \           `?                 h?       $          p?       Ø           x?       #          €?       	          ˆ?       Ï           ?       v           ˜?       á            ?       ó           ¨?       †           °?       “           ¸?       ”           À?       ¾           È?       ™           Ð?       Æ           Ø?       š           à?       ž           àE                   @                  @                  @                  @                   @                  (@                  0@       	           8@       
           @@                  H@                  P@       õ           X@                  `@                  h@                  p@                  x@                  €@                  ˆ@                  @                  ˜@       ý            @                  ¨@                  °@                  ¸@                  À@                  È@                  Ð@                  Ø@                  à@                  è@       Ó           ð@                   ø@       ¬            A       !           A       "           A       #           A       Â            A       ±           (A                 0A       %           8A       &           @A       '           HA       (           PA       %          XA       )           `A       *           hA       +           pA                 xA       ,           €A       -           ˆA       »           A       .           ˜A       /            A       0           ¨A       1           °A       2           ¸A       3           ÀA       ç           ÈA       5           ÐA       6           ØA       7           àA       å           èA       8           ðA       9           øA       à            B       Ã           B       ô           B       :           B       ;            B       <           (B       =           0B       ¢           8B       ª           @B       Ü           HB       ?           PB       @           XB       §           `B       A           hB       B           pB       °           xB       æ           €B       C           ˆB       D           B       E           ˜B       F            B       G           ¨B       H           °B       Î           ¸B       I           ÀB       ¸           ÈB       J           ÐB       Å           ØB       L           àB       M           èB       N           ðB       O           øB       P            C       Q           C       R           C       S           C       T            C                 (C                 0C       ½           8C       U           @C       V           HC       W           PC       X           XC       Y           `C       ò           hC       «           pC       ]           xC       ^           €C       _           ˆC       Þ           C       `           ˜C       a            C       b           ¨C       Ô           °C       c           ¸C       d           ÀC       e           ÈC       f           ÐC       g           ØC       Ú           àC       È           èC       h           ðC       i           øC       j            D       k           D       l           D       m           D       n            D       o           (D       p           0D       q           8D       r           @D       s           HD       t           PD                 XD       u           `D       w           hD       x           pD       y           xD       z           €D       {           ˆD       |           D       }           ˜D       ~            D                  ¨D       €           °D                  ¸D       Ò           ÀD       ‚           ÈD       Á           ÐD       ®           ØD       ƒ           àD       „           èD       …           ðD       ‡           øD       ˆ            E       ‰           E       Š           E       ‹           E       Œ            E                  (E       Ž           0E       Ö           8E       í           @E                  HE                  PE       ‘           XE       ’           `E       ¨           hE       Ê           pE       “           xE       •           €E       –           ˆE       —           E       ˜           ˜E       ¶            E       "          ¨E       ¿           °E       ›           ¸E                 ÀE       ú           ÈE       œ           ÐE                  ý{¿©ý ‘¡ ”ý{Á¨À_Ö            ð{¿©ð  ÐþGùâ?‘ Ö Õ Õ Õð  ð@ù ‘ Öð  ð@ù" ‘ Öð  ð
@ùB ‘ Öð  ð@ùb ‘ Öð  ð@ù‚ ‘ Öð  ð@ù¢ ‘ Öð  ð@ùÂ ‘ Öð  ð@ùâ ‘ Öð  ð"@ù‘ Öð  ð&@ù"‘ Öð  ð*@ùB‘ Öð  ð.@ùb‘ Öð  ð2@ù‚‘ Öð  ð6@ù¢‘ Öð  ð:@ùÂ‘ Öð  ð>@ùâ‘ Öð  ðB@ù‘ Öð  ðF@ù"‘ Öð  ðJ@ùB‘ Öð  ðN@ùb‘ Öð  ðR@ù‚‘ Öð  ðV@ù¢‘ Öð  ðZ@ùÂ‘ Öð  ð^@ùâ‘ Öð  ðb@ù‘ Öð  ðf@ù"‘ Öð  ðj@ùB‘ Öð  ðn@ùb‘ Öð  ðr@ù‚‘ Öð  ðv@ù¢‘ Öð  ðz@ùÂ‘ Öð  ð~@ùâ‘ Öð  ð‚@ù‘ Öð  ð†@ù"‘ Öð  ðŠ@ùB‘ Öð  ðŽ@ùb‘ Öð  ð’@ù‚‘ Öð  ð–@ù¢‘ Öð  ðš@ùÂ‘ Öð  ðž@ùâ‘ Öð  ð¢@ù‘ Öð  ð¦@ù"‘ Öð  ðª@ùB‘ Öð  ð®@ùb‘ Öð  ð²@ù‚‘ Öð  ð¶@ù¢‘ Öð  ðº@ùÂ‘ Öð  ð¾@ùâ‘ Öð  ðÂ@ù‘ Öð  ðÆ@ù"‘ Öð  ðÊ@ùB‘ Öð  ðÎ@ùb‘ Öð  ðÒ@ù‚‘ Öð  ðÖ@ù¢‘ Öð  ðÚ@ùÂ‘ Öð  ðÞ@ùâ‘ Öð  ðâ@ù‘ Öð  ðæ@ù"‘ Öð  ðê@ùB‘ Öð  ðî@ùb‘ Öð  ðò@ù‚‘ Öð  ðö@ù¢‘ Öð  ðú@ùÂ‘ Öð  ðþ@ùâ‘ Öð  ðAù‘ Öð  ðAù"‘ Öð  ð
AùB‘ Öð  ðAùb‘ Öð  ðAù‚‘ Öð  ðAù¢‘ Öð  ðAùÂ‘ Öð  ðAùâ‘ Öð  ð"Aù	‘ Öð  ð&Aù"	‘ Öð  ð*AùB	‘ Öð  ð.Aùb	‘ Öð  ð2Aù‚	‘ Öð  ð6Aù¢	‘ Öð  ð:AùÂ	‘ Öð  ð>Aùâ	‘ Öð  ðBAù
‘ Öð  ðFAù"
‘ Öð  ðJAùB
‘ Öð  ðNAùb
‘ Öð  ðRAù‚
‘ Öð  ðVAù¢
‘ Öð  ðZAùÂ
‘ Öð  ð^Aùâ
‘ Öð  ðbAù‘ Öð  ðfAù"‘ Öð  ðjAùB‘ Öð  ðnAùb‘ Öð  ðrAù‚‘ Öð  ðvAù¢‘ Öð  ðzAùÂ‘ Öð  Ð~Aùâ‘ Öð  Ð‚Aù‘ Öð  Ð†Aù"‘ Öð  ÐŠAùB‘ Öð  ÐŽAùb‘ Öð  Ð’Aù‚‘ Öð  Ð–Aù¢‘ Öð  ÐšAùÂ‘ Öð  ÐžAùâ‘ Öð  Ð¢Aù‘ Öð  Ð¦Aù"‘ Öð  ÐªAùB‘ Öð  Ð®Aùb‘ Öð  Ð²Aù‚‘ Öð  Ð¶Aù¢‘ Öð  ÐºAùÂ‘ Öð  Ð¾Aùâ‘ Öð  ÐÂAù‘ Öð  ÐÆAù"‘ Öð  ÐÊAùB‘ Öð  ÐÎAùb‘ Öð  ÐÒAù‚‘ Öð  ÐÖAù¢‘ Öð  ÐÚAùÂ‘ Öð  ÐÞAùâ‘ Öð  ÐâAù‘ Öð  ÐæAù"‘ Öð  ÐêAùB‘ Öð  ÐîAùb‘ Öð  ÐòAù‚‘ Öð  ÐöAù¢‘ Öð  ÐúAùÂ‘ Öð  ÐþAùâ‘ Öð  ÐBù‘ Öð  ÐBù"‘ Öð  Ð
BùB‘ Öð  ÐBùb‘ Öð  ÐBù‚‘ Öð  ÐBù¢‘ Öð  ÐBùÂ‘ Öð  ÐBùâ‘ Öð  Ð"Bù‘ Öð  Ð&Bù"‘ Öð  Ð*BùB‘ Öð  Ð.Bùb‘ Öð  Ð2Bù‚‘ Öð  Ð6Bù¢‘ Öð  Ð:BùÂ‘ Öð  Ð>Bùâ‘ Öð  ÐBBù‘ Öð  ÐFBù"‘ Öð  ÐJBùB‘ Öð  ÐNBùb‘ Öð  ÐRBù‚‘ Öð  ÐVBù¢‘ Öð  ÐZBùÂ‘ Öð  Ð^Bùâ‘ Öð  ÐbBù‘ Öð  ÐfBù"‘ Öð  ÐjBùB‘ Öð  ÐnBùb‘ Öð  ÐrBù‚‘ Öð  ÐvBù¢‘ Öð  ÐzBùÂ‘ Öð  Ð~Bùâ‘ Öð  Ð‚Bù‘ Öð  Ð†Bù"‘ Öð  ÐŠBùB‘ Öð  ÐŽBùb‘ Öð  Ð’Bù‚‘ Öð  Ð–Bù¢‘ Öð  ÐšBùÂ‘ Öð  ÐžBùâ‘ Öð  Ð¢Bù‘ Öð  Ð¦Bù"‘ Öð  ÐªBùB‘ Öð  Ð®Bùb‘ Öð  Ð²Bù‚‘ Öð  Ð¶Bù¢‘ Öð  ÐºBùÂ‘ Öð  Ð¾Bùâ‘ Öð  ÐÂBù‘ Öð  ÐÆBù"‘ Öð  ÐÊBùB‘ Öð  ÐÎBùb‘ Öð  ÐÒBù‚‘ Öð  ÐÖBù¢‘ Öð  ÐÚBùÂ‘ Öð  ÐÞBùâ‘ Öð  ÐâBù‘ Öð  ÐæBù"‘ Öð  ÐêBùB‘ Öý{¼©ý ‘óS©ô ªõ ùõª@ ‘  ù` €’•  ´àªyýÿ— 
 ‹¿ ñ@ú€  T@  ð `‘öýÿ—  ËüB“ ñ³ ù	 T¡ã ‘àª €Òmþÿ—€ ù¡@ù
 ù ñ€@ù  T¡@¹  ¹  “  ´âªáª0ýÿ— @ù@ù€ ùõ@ùóSA©?x ¸ý{Ä¨À_Ö    ý{¾©ý ‘óS©ô  Ð”Â‘ó  Ðàªsb‘
ÿÿ—à  °áªâªô  ° ðGù€þÿ—”BGùàª9ÿÿ—à  °âªáª Gùxþÿ—ã  °à  °âªc\Gù <Gùd  ‘áª©d|© ¹mþÿ—ã  °à  °âªc°Gù ´Gùd  ‘áª©d|© ¹bþÿ—ã  °à  °âªcÌGù |Gùáª| © ùYþÿ—ã  °à  °âªc`Gù XGùáª| © ùPþÿ—ã  °à  °âªc¤Gù pGùáª| © ùGþÿ—ã  °à  °âªóSA©cÀGù ÄGùáª| © ùý{Â¨<þÿ      €RÀ_Öý{¾©ý ‘ó ùó  ÐsB‘àª¶þÿ—à  °áªâ  Ðó@ùý{Â¨B`‘ ðGù*þÿ    ý{¾©ý ‘ó ùó  Ðsb‘àª¦þÿ—à  °áªâ  Ðó@ùý{Â¨B`‘ ðGùþÿà  ° ØGù@  ´"ÿÿÀ_Öá  Ðà  Ð! ‘  ‘! ‘!  Ë?8 ñ©  Tá  °!ÔGùA  ´  ÖÀ_Ö Õá  Ðà  Ð! ‘  ‘!  Ë!üC“!üA‹!üA“Á  ´â  °BäGùb  ´@ Ö ÕÀ_Ö Õý{¾©ý ‘ó ùó  Ð`¢W9@ 5à  ° hGù€  ´à  Ð ìBùýÿ—Öÿÿ—  €R`¢9ó@ùý{Â¨À_Öà  °  1‘ @ùa  µÚÿÿ Õá  °!¨Gùÿÿ´ý{¿©ý ‘  ?Öý{Á¨Ñÿÿ        ý{»©ý ‘óS©ôª÷c©÷ ª €Òõ[©õªö" ‘Žýÿ—ó ª€@ùßë @¹t~)€ T "@¹Ÿ kb Tø@ùë€ Tàª”ýÿ—â ª  @¹Ÿ kÉ	 T@@ù` ´âªøªßëàŸ ñáŸ  *€  5@ @¹Ÿ kà'Ÿãªáªüÿ—á@ùàªõ[B©! ‘á ùóSA©÷cC©ý{Å¨À_ÖÉ Tâ@ù_ ëÀýÿTàªÙüÿ—ø ª  @¹Ÿ k¢	 T @ù 	 ´âªÞÿÿ# 5õªŸk©  Tb  ´ €Ò×ÿÿ €Òàª?ýÿ—àªóSA©õ[B©÷cC©ý{Å¨À_Öà@ù   ´â@ù@ @¹Ÿ kþÿTâ
@ù" ´A @¹# €RŸk T@@ù`üÿ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿâ
@ù" ´A @¹# €RŸk T@@ù  ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿcùÿ4ë€ùÿTàª¢' ù-ýÿ—õ ª @¹¢'@ùÃÿÿâªà@ù ëÁþÿT"øÿµÂÿÿâªœÿÿâ
@ùâþÿ´A @¹# €RŸk T@@ù öÿ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿâªÞÿÿý{»©ý ‘óS©ôª÷c©÷ ª €Òõ[©õªö" ‘ðüÿ—ó ª€@ùßë @¹ ùt" ¹  T "@¹Ÿ k‚ Tø@ùë  Tàªõüÿ—â ª  @¹Ÿ ké	 T@@ù€ ´âªøªßëàŸ ñáŸ  *€  5@ @¹Ÿ kà'Ÿãªáªyûÿ—á@ùàªõ[B©! ‘á ùóSA©÷cC©ý{Å¨À_Ö ÕÉ Tâ@ù_ ë ýÿTàª9üÿ—ø ª  @¹Ÿ k¢	 T @ù 	 ´âªÝÿÿ# 5õªŸk©  Tb  ´ €ÒÖÿÿ €ÒàªŸüÿ—àªóSA©õ[B©÷cC©ý{Å¨À_Öà@ù   ´â@ù@ @¹Ÿ kþÿTâ
@ù" ´A @¹# €RŸk T@@ù`üÿ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿâ
@ù" ´A @¹# €RŸk T@@ù  ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿcùÿ4ë€ùÿTàª¢' ùüÿ—õ ª @¹¢'@ùÃÿÿâªà@ù ëÁþÿT"øÿµÂÿÿâª›ÿÿâ
@ùâþÿ´A @¹# €RŸk T@@ù öÿ´â ª# €RA @¹ŸkCÿÿT €R@@ùøÿÿâªÞÿÿý{½©ý ‘õ[©õ  °óS©¡ÎGù$@©c ËcüC“ ´“ @ùa@ù ë  T €R  “xaøa@ù?  ë` TA ? ëâª4ð}ÓÿÿTóSA©õ[B©ý{Ã¨À_Ö €Ò`@ù`  ´ýÿ— ùc@ùã ´â  °á  °à  °BŒGù!€Gù TGùB @ù! @ù  @ùýÿ—`@ù€Ò2üÿ— ù¶ÎGùÀ@©  ‹  ‘? ë€  Tb ËDüC“D µµÎGùc  Ñàª
€ÒóSA©£ ùõ[B©ý{Ã¨üÿvüÿ—Ã@ùõÿÿ Õá  °å ª ÌGù@©c ËcüC“ ´€ @ù@ù¿ ë  T €R   Õ€xbø@ù_ ëÀ  T" _ ëáª#ÿÿT  €ÒÀ_Öá  °å * ÌGù@©c ËcüC“ ´€ @ù @¹¿ k  T €R   Õ€xbø @¹_ kÀ  T" _ ëáª#ÿÿT  €ÒÀ_Öá  !`Gù%@©B ËBüC“b ´¡ @ùF Ñ# @¹ kà T €R   Õ? ë‚ T¡xaø$ @¹Ÿ  kÀ  Ta ? ëãªéþÿT €ÒàªÀ_Öý{¿©@  Ð  	‘ý ‘üÿ—á  !`Gù%@©B ËBüC“b ´¡ @ùF Ñ#@ù ëà T €R   Õ? ë‚ T¡xaø$@ùŸ  ëÀ  Ta ? ëãªéþÿT €ÒàªÀ_Öý{¿©@  Ð  	‘ý ‘_üÿ—á  å * ¤Gù@©c ËcüC“ ´€ @ù @¹¿ k  T €R   Õ€xbø @¹_ kÀ  T" _ ëáª#ÿÿT  €ÒÀ_Öá  å * ÀGù@©c ËcüC“ ´€ @ù @¹¿ k  T €R   Õ€xbø @¹_ kÀ  T" _ ëáª#ÿÿT  €ÒÀ_ÖÀ ´Á ´ ÊããÒ_ ê@ T@’#@’_ ëà  T_ ñ  šÀ_Ö ÕàªÀ_Öx’_ ñ  šÀ_Öý{µ©ý ‘õ[©µ#‘óS©ó ªàªûs©÷c©ûªùk©ãúÿ—áªàªtûÿ—àª²üÿ— r¿o ¹ T G@ù@  ´<ûÿ— o@¹óSA©õ[B©÷cC©ùkD©ûsE©ý{Ë¨À_Öàªvúÿ—ó *àª3ûÿ—`~    o ¹ |}“úûÿ—ó ªàªs ùjúÿ—|@“àªa ùs@ù%ûÿ—¡‘ |@“¡? ù¼‘¡‘ €RW €R` ù¡; ùàªZúÿ—  Q kH Tô~}“º‘ €Ò  ¥G©äªãªâ*á*àªÄúÿ—¢B9s ‘ B9¡B9¤B9B<Sc@ù *@` *  * |@“`h4ø”" ‘àªùüúÿ—  Q kâüÿT ÷*ÛÿÿàªPúÿ—±ÿÿ¡G@ùó ªa  ´àªêúÿ—àªüÿ— Õý{½©ý ‘õ ùõ  óS©¡¦Gù#@©¤ Ë„üC“ ´s @ùa@¹ k  T €R  sxaøa@¹?  k` TA ? ëâª4ð}ÓÿÿTóSA©õ@ùý{Ã¨À_Ö €Ò`@¹  5à  a@ù TGù  @ùâùÿ— ¦Gù@©` ‹  ‘¿ ë€  T¢ ËCüC“c µµ¦Gù¥  Ñàª€ÒóSA©¥ ùõ@ùý{Ã¨Äúÿ Õûÿ— ¦Gù@ùóÿÿý{º©ý ‘óS©ô  õ[©õ*÷c©ƒ^Gù O ¹a@ù ´c  ‘" @¹_  kC Tãª!@ùaÿÿµ^Gù!  ‘ ë  Ta @¹?  kH Tõ  d$@¹¤W ¹ ²Gù  ‘@ùÂ ´C @¹Ÿ kH TáªB@ùbÿÿµ ²Gù   ‘?  ë€  T  @¹Ÿ  k‚ T¢ƒ‘ ²Gù£S‘CŒø‹ýÿ—@ùóSA©àªõ[B©÷cC©ý{Æ¨À_Ö Õôùÿ—ó ªB  ÐA  ÐB`
‘! 
‘ €Òùÿ—A  Ðâ*!À
‘àªÌúÿ—` \A  Ð!à
‘àª›úÿ—Âùÿ—ö ª¡O@¹oùÿ—A  Ðâª! ‘àªZùÿ—A  Ðàª! ‘" €Riûÿ—A  Ðàª!`‘" €Rdûÿ—A  Ðàª! ‘b €R¯úÿ—áª €R  €Ògúÿ—àªAùÿ—¢C‘áª  €Òùúÿ—ø ªÀ ´õ  ­ûÿ—ã *£W ¹·²Gùà
@ùà ´÷" ‘ @¹ k
 T÷ ª @ù`ÿÿµ ²Gù   ‘ÿ ë€  Tà"@¹  k"	 Tà  áª TGù  @ùúÿ—÷ ª€ ´¡²Gù @ù  ´£W@¹!  ‘ @¹ k( Tá ª @ù`ÿÿµ ²Gù   ‘?  ë@ T  @¹  kã
 Tàª^Gù ù @ù€ ´£O@¹!  ‘ @¹_ kc
 Tá ª @ù`ÿÿµ€^Gù   ‘?  ë 
 T  @¹  kÃ	 Tàª¡W@¹$ ¹àªÄøÿ—àªŠúÿ—àªóSA©õ[B©÷cC©ý{Æ¨À_Ö Õ!@ùaéÿµPÿÿ ÕB@ùbëÿµ`ÿÿ Õàªiÿÿ @ù õÿµ²ÿÿ^Gù @ùÀ ´¤O@¹!  ‘ @¹_ kƒ Tá ª @ù`ÿÿµ€^Gù   ‘?  ë€  T  @¹ k	 T¢ƒ‘€^Gù£3‘CŒø;üÿ—á ª£W@¹àª#$ ¹Zúÿ—÷@ùàªøÿ—àªUúÿ—Ëÿÿ Õ @ù üÿµæÿÿ!  ‘¢ƒ‘ ²Gù£S‘CŒøÄüÿ—¦ÿÿ @ù¯ÿÿ @ù™ÿÿ!  ‘¢ƒ‘€^Gù£3‘CŒøüÿ—¯ÿÿ!  ‘Ùÿÿàª:úÿ—¬ÿÿ      X@ý{¹©A  Ð!à‘ý ‘óS©ô  õ[©ó ª÷ ù¶3‘”VGùµC‘ ¹·c‘ãªâªäª€@ùàùÿ—` ùÀ ´¡O@¹?  q  T +@ù-úÿ—`@ù  ¢£‘¡ƒ‘`
 ýøÿ—  qm Te@¹ €Ò¦3@ùÃxbøB ‘d@¹aX@¹Ÿ kJ  Ta ¹c\@¹! ? km  Tå*a ¹ kLþÿTóSA©  €Rõ[B©÷@ùý{Ç¨À_ÖA  Ð€@ùäªãªâª!€‘²ùÿ—` ù`úÿµA  Ð€@ùäªãªâª! ‘©ùÿ—` ù@ùÿµA  Ð€@ùäªãªâª! ‘ ùÿ—` ù øÿµA  Ð€@ùäªãªâª! ‘—ùÿ—` ù ÷ÿµA  Ð€@ùäªãªâª!À‘Žùÿ—` ùàõÿµA  Ð€@ùäªãªâª!@‘…ùÿ—` ù¦ÿÿý{³©ý ‘õ[©ö*÷c©õ*óS©÷*ø*uùÿ—à ´ô  ó ª€VGùa@ù  @ùNúÿ—`@ù`  ´úÿ— ù”VGù¢#‘a@ù€@ùAúÿ—¤_@¹ã*a@ùâ*€@ùç÷ÿ—` ùa@ùå*€@ùä*ã*â*vV)âøÿ—óSA©õ[B©÷cC©ý{Í¨À_Öý{½©ý ‘óS©õ ùLùÿ—` ´Ð@©ó ªàªƒøÿ—àªô  ìøÿ—”VGùáª€@ùÐùÿ—a@ù€@ùúÿ—`@ù`  ´Úùÿ— ùóSA©õ@ùý{Ã¨À_Öý{º©ý ‘óS©õ ù¡ ù/ùÿ—à ´ó  õ ª´‘¡ã ‘äª" €RsVGùƒ €R`@ùTøÿ—`@ùâª¡@ù,ùÿ—óSA©õ@ùý{Æ¨À_Ö Õá  !LGù! @ù"@¹  ¹!@¹ ¹À_Öý{º©ý ‘óS©³ã ‘õ ùõ ªàªôªVøÿ—áªàªçøÿ—àªù÷ÿ—€ ¹àª¶øÿ—¡@ù€ ¹a  ´àª­øÿ—óSA©õ@ùý{Æ¨À_Ö¡@ùó ªa  ´àª¤øÿ—àªÂùÿ— Õý{¾©ý ‘óS©íøÿ—À ´ô  ó ª@ù”VGù€@ùÎøÿ—bH)a@ù€@ùóSA©ý{Â¨Tøÿ ÕóSA©ý{Â¨À_Ö Õý{¿©ý ‘Øøÿ—à  ´â  @ùý{Á¨@TGù  @ù9ùÿý{Á¨À_Öý{¿©ý ‘Ìøÿ—à  ´â  @ùý{Á¨@TGù  @ù¹øÿý{Á¨À_Öý{º©ý ‘õ[©õ*óS©ö*÷c©ô*ùk©¹øÿ—à ´Ú^Só ª@*ù  ø  ÷   @*c@ù |@“` ùƒ ´ Gù @ù ƒGù @ùàVGù  @ù¶ùÿ—`@ù€Ògøÿ— ù  S‚ S €Ö S * €ÒT *V*¡¿ yµ³ y¶· y´» yQøÿ—9Gùä ªƒGù£c‘÷VGù` ù"@ù@ùà@ù_ùÿ—  4óSA©õ[B©÷cC©ùkD©ý{Æ¨À_Ö Õ`@ù€ÒDøÿ— ùõ[B©óSA©÷cC©ùkD©ý{Æ¨À_Öý{¾©ý ‘ó ùó*tøÿ—@  ´H ¹ó@ùý{Â¨À_Öý{¼©ý ‘õ[©õ*÷c©ö*óS©÷*ø*eøÿ—@ ´ô  ó ªH@¹ €R@ù$ €R”VGù €R€@ùòøÿ—aŠA©€@ùÿöÿ—æ*å*ä*ã*÷cC©õ[B©b@ùa@ù€@ùóSA©ý{Ä¨ßøÿóSA©õ[B©÷cC©ý{Ä¨À_Ö ÕÿCÑý{©ýC ‘õ[©õ*÷c©ö*óS©÷*ø*:øÿ—  ´Ô  ðó ªH@¹ €R@ù$ €R”VGù €R€@ùÇøÿ—aŠA©€@ùÔöÿ—@‹Rb@ùa@ùæ*€@ùå*ä*ã*ç ¹ €R}÷ÿ—¿ ‘óSA©õ[B©÷cC©ý{Ä¨À_ÖÿCÑý{©ýC ‘õ[©õ*÷c©ö*óS©÷*ø*øÿ—  ´Ô  ðó ªH@¹ €R@ù$ €R”VGù €R€@ùøÿ—aŠA©€@ùªöÿ—@‹Rb@ùa@ùæ*€@ùå*ä*ã*ç ¹ €Rƒøÿ—¿ ‘óSA©õ[B©÷cC©ý{Ä¨À_Öý{¼©ý ‘õ[©õ*÷c©ö*óS©÷*ø*ç÷ÿ—@ ´Ô  ðó ªH@¹ €R@ù$ €R”VGù €R€@ùtøÿ—aŠA©€@ùöÿ—æ*å*ä*ã*÷cC©õ[B©b@ùa@ù€@ùóSA©ý{Ä¨ÉöÿóSA©õ[B©÷cC©ý{Ä¨À_Ö Õý{½©ý ‘õ[©Õ  ðóS©¡ÂGù$@©c ËcüC“ ´“ @ùa@¹ k  T €R  “xaøa@¹?  k` TA ? ëâª4ð}ÓÿÿTóSA©õ[B©ý{Ã¨À_Ö €Ò`" ‘·öÿ—¶ÂGùÀ@©  ‹  ‘? ë€  Tb ËDüC“Ä µµÂGùc  Ñ`@ù£ ù@  ´H÷ÿ—àª€ÒóSA©õ[B©ý{Ã¨V÷ÿ Õ¬÷ÿ—Ã@ùñÿÿ Õý{¸©ý ‘óS©ó*ùk©¢)õ[©÷c©ûs©ƒ÷ÿ—ú ªà*@öÿ—_ ñ@úà T  ‘Û  ðàª¹ÿ‘¸û‘·÷‘¶ó‘ €Rhöÿ—{WGù¡k@¹àª €R< "÷ÿ—  àªs ÷ÿ—  Q kc Tàªæªåªäªãªâ*á*Ëöÿ— ÿA9üqþÿT£÷A9¢óA9¤ûA9A@ùc\S`@ùb@*B *B|@“úõÿ—£o@¹B@ùA@ùd `@ùã*s ºöÿ—àªüöÿ—  Q kâûÿTàªµ 6öÿ—  Q k¢ùÿTóSA©õ[B©÷cC©ùkD©ûsE©ý{È¨À_Ö Õý{¿©à*ý ‘Køÿ—€  ´ @¹ý{Á¨À_Ö  €Rý{Á¨À_Ö Õý{¿©à*ý ‘?øÿ—€  ´ @¹ý{Á¨À_Ö  €Rý{Á¨À_Ö ÕÿCÑÁ  ðÈ  ðý{©ýC ‘©“ ‘£ã ‘‰Gùó ùó ª TGù§³ ‘é ù¦£ ‘¥Ó ‘¤Ã ‘@ùâª  @ùûöÿ— qa  T¡F)a )¿ ‘ó@ùý{Ä¨À_Öý{±©ý ‘óS©ô*õ[©ó*ö*õ*úöÿ—  ´  Oâ ªÀ  ð¿©¿©¤Ã ‘¿©†€R TGù ÒÀN¿©¿©¿©¿	©¿
© N  @ù¿©¿©¿©¿©¦3 ¹€NE@ù €Ráª¥+ ù`N ƒ…<fõÿ—óSA©õ[B©ý{Ï¨À_Ö Õý{¼©ý ‘óS©ô*õ[©ó*ö*õ*Ìöÿ—à ´Ç  ð@ù¤ã ‘ €R% €R €RàTGù €R¶s yµw y´{ y  @ù³ y•÷ÿ—óSA©õ[B©ý{Ä¨À_Öý{¿©ý ‘¶öÿ—  ´Ã  ð@ùý{Á¨ €Ò`TGù  @ùÖõÿ Õý{Á¨À_ÖÀ_Ö Õ  €ÒÀ_Öý{¬©ý ‘õ[©öªóS©÷c©¢' ùÛöÿ—` ´Ø  ðµƒ‘ó ªäª¡#‘ƒ €RWGù" €R€@ùÄõÿ—a@ùâª€@ùµ‘·B ‘šöÿ—·C ù– ´àªFõÿ—ô@“Ÿ ñ´/ ù	 TŸ ñÀ	 Tô ´àªâªáªõÿ—¡/@ùâª£C@ù B ‘db ‘  ë@Œ@ø¡G ùx!¸` T ëà TB@ùc† ©¡K@ùa ù  ´ C ù¢K ù¡B ‘¿G ù ë  ¹@  Töÿ—`:@¹  q T`>@¹  q­ T¡‘¿©¿
©€€R¿©äª¿	© Ò¿© €R¿©¿©¿©?| ©¡C‘WGù?| ©¡ƒ‘?| ©¡Ã‘?| © ƒ ¹ @ùa@ù¡S ù`@ý [ ýÐôÿ—óSA©õ[B©÷cC©ý{Ô¨À_Ö¡c‘àª €Òûõÿ— C ù¡/@ù¡K ù¶ÿÿÀ@¹b" ‘´G ù )àªáª öÿ— C@ùÃÿÿ Õc† © K@ù` ùÄÿÿ@  ° `‘fõÿ— Õ¡C‘¿G ùb" ‘?x ¸îÿÿ Õý{¼©ý ‘óS©Wöÿ—à ´ô ªÀ  ð³ƒ ‘ TGù@ù  @ù£öÿ—Ÿþ©  €" ‘áª³Ã ‘³©¿3 ¹€ ýzöÿ— @ù¿ ù ë  ¹@  T´õÿ—óSA©ý{Ä¨À_Öý{´©ý ‘÷c©ø*Á  ðóS©ô ªùk©ù* €Ò3TGù@ùõ[©¶c‘ûs©`@ù´7 ù—ôÿ—ŠB©æ*`@ùå* €R €Räôÿ—àª2õÿ—@ùàªÃõÿ—àª÷ÿ— ra T O@ù@  ´Œõÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Ì¨À_Ö¡7@ùàª8d)Åôÿ— k-
 TXàªs~¿ôÿ— |@w€Kàª{õÿ—? k €R	 T _‘ €R G ù [‘ C ù W‘ ? ùàª¯ôÿ—  Q kè TÀ  ð¼S‘ €Ò TGù ; ùàªeõÿ—  Q kH TUk$ÃUzŒ  Ts ‘öÿÿ Õ¤—G©ãª¦G@ùâ*á*àªõÿ— _B9üqþÿT¤WB9¢SB9£[B9´7@ù„\S ;@ùc2‚@*B *@ù  @ùB|@“8ôÿ—À  ð‚@ù@ùä*ã* TGù  @ùøôÿ—s ‘Ôÿÿ Õ{ ÷ Æÿÿàªôÿ—¡ÿÿ €Rµÿÿ3Yàªs~-õÿ— |@z€K³ÿÿ¡O@ùó ªa  ´àª!õÿ—àª?öÿ—ý{£©ý ‘óS©ô ªõ[© €Ò÷c©öªùk©¸“‘û+ ù·£‘âõÿ—â ªõ ª€
@ùáªåªäªC€RFöÿ— q|3 € g@¹ 1€$ T´Ã‘ qB ‘¿Ã ¹¡©@ T+ T qì T¡7@ùbãŸÒ? ë > TÃ÷ŸÒ"òŸÒ? ë$BúÀ Tã÷ŸÒBòŸÒ? ë$Bú 3 TøŸÒbòŸÒ? ë$Bú > T#øŸÒ‚òŸÒ? ë$Bú 5 TBøŸÒ? ë€G TbøŸÒ? ë`H T‚øŸÒ? ë@I T¢øŸÒ? ë J TÂøŸÒ? ë€L TâøŸÒ? ë`M TùŸÒ? ë@N T"ùŸÒ? ë`O T"ìŸÒ? ë@P T‚âŸÒ? ë€P TbâŸÒ? ëÀP TbíŸÒ? ë Q TáŸÒ? ëàQ T"øx’$áŸÒÄŸÒ_ ë$Cú`G T£áŸÒ_ ë P T¢üŸÒ? ë Q TÂüŸÒ? ëàQ TãÿŸÒâóŸÒ? ë$Bú P TÃòŸÒ"êŸÒ? ë$BúàQ TcêŸÒóŸÒ? ë$Bú P TCêŸÒâòŸÒ? ë$BúàQ T#óŸÒ‚êŸÒ? ë$Bú P T£òŸÒêŸÒ? ë$Bú@Q TƒóŸÒâêŸÒ? ë$Bú TA  °àª! "‘Êõÿ—  V  °Ö‘àªóÿ— ü’ ëHU Tâ ªáªàª¢ôÿ— _@ù  µ g@¹ q  T qm T` b Q |~“B ‘ H ‘ö ‘ ì|’áªÿc ËBô~Óà ‘ø ‘Z  °·C‘ùB ‘óÿ—Û3¸@ã"‘¹« ùkóÿ—ô@“ ñ³K ù¨ T ñà! Táª36 µ[  °³¯ ù`ã#‘?x3¸¹Ã‘:C ‘º» ù[óÿ—ô@“ ñ³O ù¨ T ñ`! Tàª µÚ  ð³¿ ùx3¸âªáª@CGùõÿ— »@ù9C ‘ ë@  T;ôÿ— «@ù÷B ‘ ë@  T6ôÿ—[  °·C‘`ƒ#‘ùB ‘¹Ë ù<óÿ—ô@“ ñ³S ùˆ T ñ  Táª0 µ³Ï ùàª?x3¸¹Ã‘;C ‘»Û ù-óÿ—ô@“ ñ³W ùh T ñ  Tãªó- µ@CGùâª³ß ùáªx3¸×ôÿ— Û@ù9C ‘ ë@  Tôÿ— Ë@ù÷B ‘ ë@  T	ôÿ—ß ‘³[@ù6 €R  àª €R:óÿ—¿ ‘à*û+@ùóSA©õ[B©÷cC©ùkD©ý{Ý¨À_Ö³[@ù €Ràª”B ‘,óÿ—ë þÿTàªðóÿ—îÿÿ¡C‘àª €Òûóÿ—¡K@ù « ù¡³ ùâªAã"‘Åòÿ—³K@ù¡«@ùŒÿÿ Õa~~“àªJóÿ—â ªõ ª€
@ùã*åªäªáªõÿ— qó * g@¹íÙÿT´Ã‘ qB ‘¿Ã ¹¡©s~ÁÙÿTXÿÿ ÕZ  ¶C‘@ã"‘×B ‘·k ùÏòÿ—ô@“ ñ³; ùh T ñ` Táª3- µY  ³o ù C#‘?x3¸·Ã‘øB ‘¸{ ù¿òÿ—ô@“ ñ³? ù¨ T ñà Tàª µÚ  Ð³ ùx3¸âªáª@CGùhôÿ— {@ù÷B ‘ ë@  TŸóÿ— k@ùÖB ‘ ë@  Tšóÿ—[  ·C‘`ƒ#‘óB ‘³‹ ù òÿ—ô@“ß ñ¶C ù Tß ñ€ Tàªv µ¹OK©¸Ã‘¶ ùx6¸ C ‘sö~Ó › ù?« @ú T@   `‘óÿ—¡c‘àª €Ò‹óÿ—¡O@ù » ù¡Ã ùâªaã#‘Uòÿ—³O@ù »@ù,ÿÿ Õ¡ƒ‘àª €Ò}óÿ—¡S@ù Ë ù¡Ó ùâªaƒ#‘Gòÿ—³S@ù¡Ë@ù=ÿÿ Õ¡£‘àª €Òoóÿ—¡W@ù Û ù¡ã ùâªáª9òÿ—³W@ù£Û@ù>ÿÿ ÕV  ÖB‘àª]òÿ— ü’ ë)ÚÿT@   À‘òÿ—@»H¹áª c¹ñþÿ @¹ãª Ã¹+ÿÿ`ãH¹áª £¹ÿÿaûH¹àª¡ƒ¹õþÿ@»H¹áª ã ¹}ÿÿV  ÖÂ‘àª?òÿ— ü’ ëiÖÿT@   À‘aòÿ—ó ª ‹@ù÷B ‘ ë@  T'óÿ— [@ù”B ‘ ë@  T"óÿ—àª@ôÿ— ÕsþB“ ñ³G ù¨ T ñ` Tã ª µ@CGùâª³Ÿ ùáªx3¸Õóÿ— ›@ùC ‘ ë@  Tóÿ— ‹@ù÷B ‘ ë@  Tóÿ—6 €R³[@ùÿÿ ÕV  Ö‚‘àªòÿ— ü’ ëéÏÿT@   À‘-òÿ—V  Ö‚‘àªòÿ— ü’ ë©ÎÿT@   À‘#òÿ—¡#‘àª €Òûòÿ—¡G@ù › ù¡£ ùâªáªÅñÿ—³G@ù£›@ùÌÿÿ Õ¡‘àª €Òíòÿ—¡C@ù ‹ ù¡“ ùâªaƒ#‘·ñÿ—¶C@ù ‹@ùIÿÿ Õ¡ã‘àª €Òßòÿ—¡?@ù { ù¡ƒ ùâª!C#‘©ñÿ—³?@ù {@ùÿÿ Õ¡Ã‘àª €ÒÑòÿ—¡;@ù k ù¡s ùâªAã"‘›ñÿ—³;@ù¡k@ùþþÿ Õ!ÓH¹àª¡¹	ÿÿaãH¹àª¡#¹$ÿÿ!@¹ã ª¡C¹•ÿÿàªNÿÿàª>ÿÿàª¾þÿV  Ö‘àª­ñÿ— ü’ ë)ÄÿT@   À‘Ïñÿ—V  ÖB‘àª£ñÿ— ü’ ëéÂÿT@   À‘Åñÿ—V  Ö‚‘àª™ñÿ— ü’ ë©ÁÿT@   À‘»ñÿ—V  ÀÂ‘ñÿ— ü’ ë( Tâ ªÁÂ‘àª¥òÿ—þÿV  Àb‘…ñÿ— ü’ ëè Tâ ªÁb‘àªšòÿ—øýÿV  Ö‘àªyñÿ— ü’ ë©½ÿT@   À‘›ñÿ—V  ÖB‘àªoñÿ— ü’ ëi¼ÿT@   À‘‘ñÿ—V  Ö‚‘àªeñÿ— ü’ ë)»ÿT@   À‘‡ñÿ—àª”ÿÿV  ÖÂ‘àªYñÿ— ü’ ë©¹ÿT@   À‘{ñÿ—A  àª! ‘‡óÿ—ÉýÿA  àª!`‘‚óÿ—ÄýÿA  àª! ‘}óÿ—¿ýÿA  àª!`‘xóÿ—ºýÿA  àª! ‘sóÿ—µýÿA  àª!À‘nóÿ—°ýÿA  àª!` ‘ióÿ—«ýÿA  àª! ‘dóÿ—¦ýÿA  àª!À‘_óÿ—¡ýÿA  àª!@!‘Zóÿ—œýÿA  àª!à ‘Uóÿ——ýÿA  àª!à!‘Póÿ—’ýÿA  àª! !‘Kóÿ—ýÿA  àª!@"‘Fóÿ—ˆýÿ@   À‘2ñÿ—¡{@ù÷B ‘ó ª? ë`  Tàª÷ñÿ— k@ùÖB ‘ ëÙÿTÌþÿ¡Û@ù9C ‘ó ª? ë`  Tàªëñÿ— Ë@ù÷B ‘ ë@  Tæñÿ—ß ‘¾þÿ¡»@ù9C ‘ó ª? ë`  TàªÝñÿ— «@ù÷B ‘ ëaþÿTóÿÿ@   À‘	ñÿ—@   À‘ñÿ—ó ªëÿÿó ª¨þÿó ªÖÿÿ¡›@ùC ‘ó ª? ë€ÓÿTàªÅñÿ—™þÿó ªæÿÿó ªÖÿÿ Õ T@¹ q€  T qàŸ xSÀ_Ö ÕÀ  Ð! €R tGù  9À_Ö Õý{¼©ý ‘õ[©ö * 
€ÒóS©õªôªóª³ñÿ—Ä  Ð& €R  ¹Ô ©…ÌGùü©ü© ù¡Œ@©|)H ¹  ù? ë` Ta  ´   ù @ù„ÌGù!  ‘ ùóSA©õ[B©ý{Ä¨À_Öàª¡ã ‘Øòÿ— @ùøÿÿ ÕÿÑý{©ýƒ ‘õ[©Ö  Ðùk©Ù  ÐóS©ú*ÖâGùôª3WGù5 €R÷c©ø*ûs©ü* — ¹û*Á@¹÷*`@ù£‹)òÿ— [ ù`@ùÁ  ÐÂ€¹å*¦£‘!ˆGùt@ùb‹Ã  Ð! @ùc€GùD @ùG8@¹B €Òd  ùã*ä‹ ©ä*â*æ ùõ ¹ €R-òÿ—á ªÂ  Ðö ª`@ùã*BÐGù¢ðÿ—`@ùáª €Ò €Ò‰ðÿ— O ùŸ“q€%€R„Uz„@zà TŸ“q  TŸ#q`  T·c‘t
 ´á ‘àª¡; ùU  ¸ƒ‘µB$‘Fðÿ— ô~Ó H ‘áª ì|’ €Òÿc Ëóƒ ‘àª‰ðÿ—àªâªáª €RHòÿ—` µ:   Õàª÷ñÿ—ô ª¼@ù€Î3‹âªó*áªÈïÿ—àªVðÿ—âªáª  €Ò6òÿ—  ´áª¿ ùñÿ—  qú *ÍþÿT [}“àª|}“Óüÿ4[}“ú*wðÿ—ô ªäÿÿ 45WGùA  ! ‘ €R @ù¦ðÿ—ø ªA   @ù!@‘ €R ðÿ—ã ª @ùç*æªâªáª €R€R¿ðÿ—àª)ðÿ— ;@ù  ‘À  ÐE  C  A  ¥€‘cÀ‘ ¸Gù! ‘æªäª €Ò€Ò  @ùÅðÿ—¿S ùó ª@ ´A  ¢ƒ‘!@‘ €Òáñÿ—àªÓñÿ—à	Ò¢S@ù  òB  ª9WGùáª @ù?ðÿ—¢O@ùãª —@¹áªÊñÿ—ó ª @ùâªáªññÿ—¢#A¹áª£'A¹¤/A¹ @ù—ïÿ—` ù¡“@¹ @¹aB ¹`F ¹¿ ‘óSA©õ[B©÷cC©ùkD©ûsE©ý{Ú¨À_Ö Õ  O NàN NàN €= €=iïÿ—÷ ª À=âªáª €< €Òà ù`@ùÄïÿ—àªñÿ—Ÿ³qÁêÿTA  `@ù! ‘â*·ƒ‘:ðÿ—ø ªA  `@ù!€‘â*4ðÿ—àŽø`@ùç*âªæªáª €R€Rƒ €ÒRðÿ—3WGùA  !€‘ €R`@ù$ðÿ—õ ªA  `@ù!À‘ €Rðÿ—  ùA  `@ù!@‘ €Rðÿ— “ ùA  `@ù!À‘ €Rðÿ— — ùA  `@ù! ‘ €Rðÿ— › ù`@ùâªæªáª‡ €R €R€Rƒ €Ò*ðÿ—ÿÿâ	Ò" òˆÿÿ Õ3WGùA  ! ‘" €R`@ù÷ïÿ—õ ªA  ! ‘`@ù·ƒ‘" €Rðïÿ—àŽø`@ùâªáªæª' €R €R€Rƒ €Òðÿ—¼ÿÿ3WGùA  ! ‘" €R`@ùßïÿ—õ ªA  !€‘èÿÿý{½©ý ‘ó ùó * €Ò=ðÿ—` ‘Â  Ð  ü ©  ¹C`Gù ¹ü©  ùd@ùa@ù  ý? ë` Ta  ´   ù @ùB`Gù!  ‘A ùó@ùý{Ã¨À_Ö Õàª¡£ ‘’ïÿ— @ùøÿÿ ÕÿCÑý{»©ý ‘óS©õ[©Õ  Ð÷c©øªùk©ÿƒ ÑÙ  Ð¢/ ùÚïÿ—´VGù6ãGùó ª¤ƒ‘ƒ €R€R€@ùÁ@¹}ðÿ—  4Ö  Ð¢S@ù€@ù €RÖŠGùÁ@ùiïÿ— ã ù¢S@ùC„Ò„@ù€RÁ@ù¶ƒ‘â ©# €R§·@¹àªã ¹ã€ä*â* €Rö ù¿· ù¿¿ ùµðÿ—` ù´VGùá ª €Ò €Ò€@ùïÿ—` ù˜îÿ—÷ ª  ƒ€Òa@ùâ ª€@ùã ùà ýóîÿ—àª·ƒ‘@ðÿ—!  ð€@ù!€‘ €Rkïÿ—ã ª  œâ ªa@ù¦Ã‘€@ùG €R €R€R €=ˆïÿ—a@ù‚	Ò€@ùB ò'ïÿ—9ãGù!  ðàª!À‘"@¹Yïÿ—€@ùáª €RQïÿ—á ª€@ùñÿ—÷ ª  µ´VGùº‘äª¡c‘ƒ €R" €RÙB ‘€@ùïÿ—a@ùâª€@ù÷ïÿ—¹³ ùx ´àª£îÿ—ô@“Ÿ ñ´7 ù( TŸ ñ  TÔ ´àªâªáªlîÿ—¡7@ùâª£³@ùÀB ‘db ‘  ë@Œ@ø¡· ùx!¸€ T ëÀ TB@ùc† ©¡»@ùa ù  ´ ³ ù¢» ùÁB ‘¿· ù ë  ¹@  Tsïÿ— ƒ‘¤C‘µVGù!  ð! ‘#€R| © ‘ €R| © Ã‘| ©Ÿ| ©¤ƒ‘ @ùŸ| ©¤Ã‘Ÿ| ©¤‘Ÿ| ©¤C‘Ÿ| ©¤ƒ‘Ÿ| ©¤Ã‘Ÿ| ©¤‘Ÿ| ©¤C‘Ÿ| ©£c¹·Ã ùöîÿ—€R Ç ù¿ÿ©äª¡“¹áª @ù €Òe@ù €R¿ß ù¥ÿ©!îÿ—¿ ‘óSA©õ[B©÷cC©ùkD©ý{Å¨ÿC‘À_Ö€@ù‚ ÒÁ  °Æ€¹¢× ùI@Ò¶ƒ‘( €Rt@ù€R!ˆGùã€ä*¿· ùF‹â*¨»¹! @ùÇ8@¹é[©Æ @ùè ¹æ ù €Røïÿ—` ùCÿÿ Õá ª€@ùB  Òîÿ—uÿÿ Õ¡£‘àª €Ò'ïÿ— ³ ù¡7@ù¡» ù…ÿÿ¡Ã‘¿· ùb" ‘?x ¸àªáªÌïÿ— ³@ù’ÿÿ Õ @¹b" ‘´· ù s¹¿w¹õÿÿc† © »@ù` ùÿÿ   ð `‘Œîÿ— Õ Õ Õ               ý{½©ý ‘ó ùó * €Òûîÿ—| )Â  °   ù  ùC¤Gù  ýa@©? ë` Ta  ´   ù @ùB¤Gù!  ‘A ùó@ùý{Ã¨À_Ö Õàª¡£ ‘œíÿ— @ùøÿÿ Õý{½©ý ‘óS©ô * €ÒÛîÿ—ó ª   ‘² 9 ¹þ © ù~)* ¹bîÿ—Â  °t ¹³ ù@ÀGùŒ@©? ë  TA ´3  ù @ùBÀGù!  ‘A ùóSA©ý{Ã¨À_Ö Õàªøÿÿ¡£ ‘‰îÿ— @ù÷ÿÿô ªàª€Ò¿îÿ—àªÉïÿ—ý{½©ý ‘óS©ôªõ ùõªòïÿ—  ‘áªàªÎîÿ—àªàíÿ—€ ¹àªîÿ—õ@ù€ ¹óSA©ý{Ã¨À_Ö ÕÿÃÑ!  ðý{º©ý ‘ûs©Û  °óS©÷c©×  °bSGùõ[©ùk©ÿC Ñ@  ù €‘oïÿ—á ªÀ €Rˆîÿ—  €Òïÿ—óVGù` ù€a´!  ð €R! ‘Ô  °îÿ—óVGùÁ  ° €R#˜Gù!  ð!`‘`  ù`@ùîÿ—Á  °"ÐGù!  ð@  ù  ‘ãîÿ—`@ùÂ  °ƒâGùBˆGùà@¹a  ¹$|y“t@ùc ‹c@ùC  ùíÿ—Á  ° €Ò €Ò!LGù   ù €Ò`@ùÓ  °bïÿ—sºGù` ù@]´!  ð¢c‘!@‘ €ÒØ  °5íÿ—¡O@ùŸGù" @y ùâ 4 €Ò €R6£Ò   Õs µ" ‘_ kÍ T @ù huø 6ê!ÿÿT@ùs µ" ‘Ëíÿ—¡O@ù" @y  ù_ kŒþÿTàªÚ  °µ£‘³#‘¶B ‘Ù  °›îÿ—”âGùáVGùbSGù€€¹! @ùB @ù#t@ù!@¹` ‹(@ùÀ  ° ŒGù  ù@‡Gù  ¹  €Ò@ ?Ö`B ‘ G ù wGù  @9À	 5@‡GùÅ  °  OÉ  °' €Ò €Ò¥¼Gù €Ò  @¹)éGùáª  qü Æ°€è k  ˆDˆZ  €=Æ| €=ä	ªÆ|@“ €=ç Èš   €= €= €= €= €=ªxfø kœç 
ª§x&ø €= ìÿ—ôVGù€@ùÉíÿ—@ 4¸C‘€@ùáª”îÿ— SA¹0 q  T q`- Tˆ q G T qàG T q e T qà T< q ž T$ q Ÿ T( q ± T„ q Ã TX qA÷ÿT »@ùïÿ—àöÿ´¡‹A¹¢A¹ßìÿ— wGù  @9€öÿ4Ø  °§Gù P@©” Ë”þC“õ*Ô 4” Q €ÒöVGù§Gù   Õàª€ÒÈíÿ—ë@ T@@©s ‘B  ËBüC“_ ë	\Txsø @¹`þÿ5À@ù!@ùÆìÿ—àª€Ò·íÿ—ëþÿT§Gù €Rôªöª@ù  s c  Ñ¿kÃ ùà T€@ù  ‘? ë ÿÿTb ËDüC“¤þÿ´úíÿ—s ƒ@ù¿kc  ÑÃ ùaþÿTÖ  °õVGùÀ²Gù  ‘@ùë@ Ta@ùa  ´ @ùýîÿ—àªíÿ— ëó ªÿÿTÓ  °s^Gùàªa
@ù;íÿ—Ö²Gùa" ‘©àªa~©Á
@ùÜíÿ—÷VGùÀ  °ŒGùÀ" ‘ß©À~©à@ù! @ù+ìÿ—à@ùÅîÿ—¿ ‘óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿÃ‘À_Ö ÕaSGù  €Ò! @ù  ?Ö?ÿÿ Õ »@ù¯íÿ—ø ªàÕ ´Ô  °<  ð€c$‘BGù ‡©àª.ìÿ—¡C@ùàªËíÿ—¶W ù€c$‘Lìÿ—ô@“ ñ£g ùÀ T ñ@Ë Táª£;µ£[ ù   ð?x#¸ À$‘aB ‘¡C ù¡g ù<ìÿ—ô@“Ÿ ñ¼S ù¡C@ù(¼ TŸ ñ Ð TãªÜ9µ€BGùâª¼k ùáªx<¸åíÿ— g@ùaB ‘ ë@  Tíÿ— W@ù ë@  Tíÿ—<  ðaB ‘‚C%‘¡g ùàª¡‹©ìÿ—ô@“ ñ£W ù¡‹G©H¶ T ñÀÃ Tâª#6µ£k ùáª_x#¸€BGù@¹Vìÿ— g@ùaB ‘ ë@  Týìÿ—<  ðaB ‘‚ƒ%‘¡g ùàª¡‹©ìÿ—ô@“ ñ£W ù¡‹G©¨¾ T ñ`Á TâªÃ.µ£k ùáª_x#¸€BGù¢{A¹;ìÿ— g@ùaB ‘ ë@  Tâìÿ—<  ðaB ‘‚£%‘¡g ùàª¡‹©çëÿ—ô@“ ñ£W ù¡‹G©H¹ T ñ€½ Tâª£+µ£k ùáª_x#¸€BGù¢A¹ ìÿ— g@ùaB ‘ ë@  TÇìÿ—#  ðaB ‘`À%‘¡g ù£‡©Íëÿ—ô@“Ÿ ñ¼W ù£‡G©´ TŸ ñ€¼ Tâª¼(µ¼k ùáª_x<¸€BGù¢ƒA¹ìÿ— g@ùaB ‘ ë@  T­ìÿ—#  ðaB ‘` &‘¡g ù£‡©³ëÿ—ô@“Ÿ ñ¼W ù£‡G©È® TŸ ñÀ¸ Tâª¼%µ¼k ùáª_x<¸€BGù¢‡A¹ìëÿ— g@ùaB ‘ ë@  T“ìÿ—”BGùàªˆíÿ—aSGùàªèª4 @ùCìÿ— g@ù€?Ö g@ùaB ‘ ë@  T„ìÿ—¡‘àVGù@ù@ù($O)&P)  @ùå	*@ùä*è ¹é ¹“ëÿ—cþÿ Õ »@ùÓìÿ— C ùÀËÿ´Ô  °<  ð€c$‘BGù ©àªRëÿ—¡?@ùàªïìÿ—¶W ù€c$‘pëÿ—ô@“ ñ£g ùˆ³ T ñ€È TáªÃ2µ£[ ù   ð?x#¸  &‘aB ‘¡? ù¡g ù`ëÿ—ô@“Ÿ ñ¼S ù¡?@ù¨¯ TŸ ñÀÅ TãªÜ2µ€BGùâª¼k ùáªx<¸	íÿ— g@ùaB ‘ ë@  T@ìÿ— W@ù ë@  T<ìÿ—<  ðaB ‘‚C%‘¡g ùàª¡©Aëÿ—ô@“ ñ£W ù¡G©ˆ¯ T ñ`Á Tâª1µ£k ùáª_x#¸¢C@ù€BGùB @¹yëÿ— g@ùaB ‘ ë@  T ìÿ— C@ùáªiìÿ— r Œ T#  ð|B ‘`@'‘¼g ù£C ù!ëÿ—ô@“ ñ¸W ù£C@ù(è T ñàTàª¸è µ¸k ùáªx8¸€BGù¢£A¹B  9ìÿ— g@ùaB ‘ ë@  T ìÿ—#  ð|B ‘` '‘¼g ù£C ùëÿ—ô@“ ñ¸W ù£C@ùã T ñ€Tàª˜ã µ¸k ùáªx8¸€BGù¢£A¹BBÓìÿ— g@ùaB ‘ ë@  Tåëÿ—#  Ð|B ‘` (‘¼g ù£C ùëêÿ—ô@“ ñ¸W ù£C@ùèÝ T ñ TàªxÞ µ¸k ùáªx8¸ €R€BGùìÿ— g@ùaB ‘ ë@  TËëÿ—#  Ð|B ‘`@(‘¼g ù£C ùÑêÿ—ô@“ ñ¸W ù£C@ùèØ T ñ`TàªxÙ µ¸k ùáªx8¸ €R€BGùêëÿ— g@ùaB ‘ ë@  T±ëÿ—”BGùàª¦ìÿ—aSGùàªèª4 @ùaëÿ— g@ù€?Ö g@ùaB ‘ ë ²ÿT¢ëÿ—Žýÿàª÷ëÿ—‹ýÿ Õ »@ùûëÿ— ? ùÀ°ÿ´Ô  <  Ðc$‘¡; ù‚BGùàª¢C ùyêÿ—¢C@ùàªìÿ—¶W ù¡;@ùàª¡C ù•êÿ—ô@“ ñ£g ù¡C@ù¨£ T ñ€Ï TàªC¤ µ<  Ð£[ ù‚Ã(‘aB ‘x#¸àª¡‹©¡g ùƒêÿ— ô@“ ñ C ù S ù¡‹F©ˆŸ T ñ Ì Tâ ªàªâŸ µ¡C@ùâª¡k ùx!¸áª€BGù)ìÿ— g@ùaB ‘ ë@  T`ëÿ— W@ù ë@  T\ëÿ—<  Ð¶W ù#)‘àª¡C ùbêÿ—ô@“ ñ£g ù¡C@ù¨™ T ñ È TàªCš µ£[ ùaB ‘x#¸   Ð  )‘¡C ù¡g ùQêÿ—ô@“Ÿ ñ¼S ù¡C@ùÈ• TŸ ñ€Ç Tàª<– µ¼k ùâªx<¸áª€BGùúëÿ— g@ùaB ‘ ë@  T1ëÿ— W@ù ë@  T-ëÿ—<  ÐaB ‘‚C%‘¡; ùàª¢C ù¡g ù1êÿ—ô@“ ñ£W ù¡;@ù¢C@ù(£ T ñ Ä Tâª#	µ£k ùáª_x#¸¢?@ù€BGùB @¹hêÿ— g@ùaB ‘ ë@  Tëÿ—<  ÐaB ‘‚ƒ%‘¡g ùàª¡‹©êÿ—ô@“ ñ£W ù¡‹G©È T ñà¼ Tâªµ£k ùáª_x#¸€BGù¢“A¹Mêÿ— g@ùaB ‘ ë@  Tôêÿ—<  ÐaB ‘‚£%‘¡g ùàª¡‹©ùéÿ—ô@“ ñ£W ù¡‹G©è· T ñ º Tâªãµ£k ùáª_x#¸€BGù¢—A¹2êÿ— g@ùaB ‘ ë@  TÙêÿ—<  ÐaB ‘‚*‘¡g ùàª¡‹©Þéÿ—ô@“ ñ£W ù¡‹G©¨² T ñ · TâªCµ£k ùàª_x#¸ñêÿ—â *€BGùáªêÿ— g@ùaB ‘ ë@  T¼êÿ—”BGùàª±ëÿ—aSGùàªèª4 @ùlêÿ— g@ù€?Öÿÿ »@ùëÿ— ? ù@“ÿ´Ô  <  ÐBGùàª¡C ùéÿ—¡C@ùàª,ëÿ—¶W ù€c$‘­éÿ—ô@“ ñ£g ùÈª T ñÀÙ Tàªc« µ<  Ð£[ ù‚Ã(‘aB ‘x#¸àª¡‹©¡g ùœéÿ— ô@“ ñ C ù S ù¡‹F©¨¦ T ñà¸ Tâ ªàª§ µ¡C@ùâª¡k ùx!¸áª€BGùBëÿ— g@ùaB ‘ ë@  Tyêÿ— W@ù ë@  Tuêÿ—<  Ð¶W ù#)‘àª¡C ù{éÿ—ô@“ ñ£g ù¡C@ùÈ  T ñàÏ Tàªc¡ µ£[ ùaB ‘x#¸   Ð €*‘¡C ù¡g ùjéÿ—ô@“Ÿ ñ¼S ù¡C@ùèœ TŸ ñ Í Tàª\ µ¼k ùâªx<¸áª€BGùëÿ— g@ùaB ‘ ë@  TJêÿ— W@ù ë@  TFêÿ—<  ÐaB ‘‚C%‘¡; ùàª¢C ù¡g ùJéÿ—ô@“ ñ£W ù¡;@ù¢C@ùè– T ñ Ê Tàªƒ— µ£k ùáªx#¸ ?@ù @¹€BGùéÿ— g@ùaB ‘ ë@  T(êÿ—<  ÐaB ‘‚ƒ%‘¡g ùàª¡‹©-éÿ—ô@“ ñ£W ù¡‹G©ˆ‘ T ñ È Tàª#’ µ£k ùáªx#¸€BGù¢“A¹féÿ— g@ùaB ‘ ë@  Têÿ—<  ÐaB ‘‚£%‘¡g ùàª¡‹©éÿ—ô@“ ñ£W ù¡‹G©HŒ T ñÀÅ TàªãŒ µ£k ùáªx#¸€BGù¢—A¹Kéÿ— g@ùaB ‘ ë@  Tòéÿ—<  ÐaB ‘‚*‘¡g ùàª¡‹©÷èÿ—ô@“ ñ£W ù¡‹G©‡ T ñ`À TâªCá µ£k ùàª_x#¸
êÿ—â *€BGùáª.éÿ— g@ùaB ‘ ë@  TÕéÿ—”BGùàªÊêÿ—aSGùàªèª4 @ù…éÿ— g@ù€?Ö$þÿ Õ »@ù'êÿ— ? ù £ ´Ô  <  ÐBGùàª¡C ù§èÿ—¡C@ùàªDêÿ—¶W ù€c$‘Åèÿ—ô@“ ñ£g ù T ñ@» Tàª£ µ<  Ð£[ ù‚Ã(‘aB ‘x#¸àª¡‹©¡g ù´èÿ— ô@“ ñ C ù S ù¡‹F©èz T ñ`¸ Tâ ªàªB{ µ¡C@ùâª¡k ùx!¸áª€BGùZêÿ— g@ùaB ‘ ë@  T‘éÿ— W@ù ë@  Téÿ—<  Ð¶W ù#)‘àª¡C ù“èÿ—ô@“ ñ£g ù¡C@ùu T ñ š Tàª£u µ£[ ùaB ‘x#¸   Ð @+‘¡C ù¡g ù‚èÿ—ô@“Ÿ ñ¼S ù¡C@ù(q TŸ ñ@— Tàªœq µ¼k ùâªx<¸áª€BGù+êÿ— g@ùaB ‘ ë@  Tbéÿ— W@ù ë@  T^éÿ—<  ÐaB ‘‚C%‘¡; ùàª¢C ù¡g ùbèÿ—ô@“ ñ£W ù¡;@ù¢C@ù(k T ñ ’ TàªÃk µ£k ùáªx#¸ ?@ù @¹€BGù™èÿ— g@ùaB ‘ ë@  T@éÿ—<  ÐaB ‘‚ƒ%‘¡g ùàª¡‹©Eèÿ—ô@“ ñ£W ù¡‹G©H` T ñ Ž Tàªã` µ£k ùáªx#¸€BGù¢“A¹~èÿ— g@ùaB ‘ ë@  T%éÿ—<  ÐaB ‘‚£%‘¡g ùàª¡‹©*èÿ—ô@“ ñ£W ù¡‹G©[ T ñ€­ Tàª£[ µ£k ùáªx#¸€BGù¢—A¹cèÿ— g@ùaB ‘ ë@  T
éÿ—<  ÐaB ‘‚*‘¡g ùàª¡‹©èÿ—ô@“ ñ£W ù¡‹G©ÈU T ñ © TâªCÉ µ£k ùàª_x#¸"éÿ—â *€BGùáªFèÿ— g@ùaB ‘ ë@  Tíèÿ—”BGùàªâéÿ—aSGùàªèª4 @ùèÿ— g@ù€?Ö<ýÿ Õ€@ù €Ò¡»@ùB €RŒèÿ—Èúÿ »@ù9éÿ— C ù€Xÿ´Ô  <  Ðc$‘¡? ù˜BGùàª¸çÿ—àªVéÿ—¶W ù¡?@ùàªÖçÿ—ô@“ ñ¸g ù¡?@ù(¡ T ñ`M Tàª˜¡ µ<  Ð¸[ ù‚Ã-‘aB ‘x8¸àª¡©¡g ùÄçÿ—ô@“ ñ¸S ù¡G©— T ñ@¡ Tàªx— µ¸k ùâªx8¸áª€BGùméÿ— g@ùaB ‘ ë@  T¤èÿ— W@ù ë@  T èÿ—<  Ð¶W ù#)‘àª¡? ù¦çÿ—ô@“ ñ¸g ù¡?@ù¨‘ T ñ€  Tàª’ µ¸[ ù<  ÐaB ‘x8¸€c.‘¡? ù¡g ù•çÿ—ô@“ ñ¸S ù¡?@ùè T ñàŸ TàªXŽ µ¸k ùâªx8¸áª€BGù>éÿ— g@ùaB ‘ ë@  Tuèÿ— W@ù ë@  Tqèÿ—<  ÐaB ‘‚C%‘¡g ùàª¡©vçÿ—ô@“ ñ¸W ù¡G©hˆ T ñ€› TàªØˆ µ¸k ùáªx8¸ C@ù @¹€BGù®çÿ— g@ùaB ‘ ë@  TUèÿ—”BGùàªJéÿ—aSGùàªèª4 @ùèÿ— g@ù€?Ö¤üÿ Õ »@ù§èÿ— C ù@Fÿ´Ô  <  Ðc$‘¡? ù˜BGùàª&çÿ—àªÄèÿ—¶W ù¡?@ùàªDçÿ—ô@“ ñ¸g ù¡?@ùˆ€ T ñ ; Tàªø€ µ<  Ð¸[ ù‚Ã-‘aB ‘x8¸àª¡©¡g ù2çÿ—ô@“ ñ¸S ù¡G©¨| T ñ€” Tàª} µ¸k ùâªx8¸áª€BGùÛèÿ— g@ùaB ‘ ë@  Tèÿ— W@ù ë@  Tèÿ—<  Ð¶W ù#)‘àª¡? ùçÿ—ô@“ ñ¸g ù¡?@ùHw T ñ@ Tàª¸w µ¸[ ù<  ÐaB ‘x8¸€C.‘¡? ù¡g ùçÿ—ô@“ ñ¸S ù¡?@ùˆs T ñ Œ Tàªøs µ¸k ùâªx8¸áª€BGù¬èÿ— g@ùaB ‘ ë@  Tãçÿ— W@ù ë@  Tßçÿ—<  °aB ‘‚C%‘¡g ùàª¡©äæÿ—ô@“ ñ¸W ù¡G©H T ñÀ… Tàª¸ µ¸k ùáªx8¸ C@ù @¹€BGùçÿ— g@ùaB ‘ ë@  TÃçÿ—”BGùàª¸èÿ—aSGùàªèª4 @ùsçÿ— g@ù€?Öüÿ Õ€BGùæÿ—¡ùÿ Õ »@ùèÿ—ø ª€3ÿ´   ð¡¿@ù ˜Gù  @ù?  ëÁ2ÿT   ð¡Ç@ù ÐGù  @ù?  ë2ÿT´  ðœBGùàª‡æÿ—àª%èÿ—!  °àª!`$‘!éÿ—!  °àª!À-‘éÿ—€BGùâªáªUèÿ—¡G@ù g@ù ë@  TŒçÿ— W@ù ë@  Tˆçÿ—!  °àª! )‘éÿ—!  °àª!à.‘éÿ—€BGùâªáª@èÿ—¡G@ù g@ù ë@  Twçÿ— W@ù ë@  Tsçÿ—!  °àª!@%‘÷èÿ—€BGùáª@¹¿æÿ—¡G@ù g@ù ë@  Tfçÿ—”BGùàª[èÿ—aSGùàªèª4 @ùçÿ— g@ù€?Öÿ áªàª €Ò£C ùfçÿ— g ù¡W@ù£C@ù¡o ùâªC%‘/æÿ—£W@ù¢g@ùEúÿ Õ¡ƒ‘àª €ÒWçÿ—¡S@ù g ù¡o ù!  °âª!À$‘ æÿ—¼S@ù£g@ùúÿáªàª €Ò£C ùHçÿ— W ù¡g@ù£C@ù¡_ ùâªc$‘æÿ—¡W@ù£g@ù÷ùÿ Õáªàª €Ò£C ù8çÿ— g ù¡W@ù£C@ù¡o ùâªa &‘æÿ—¼W@ù¢g@ùúÿ Õáªàª €Ò£C ù(çÿ— g ù¡W@ù£C@ù¡o ùâªaÀ%‘ñåÿ—¼W@ù¢g@ùWúÿ Õáªàª €Ò£C ùçÿ— g ù¡W@ù£C@ù¡o ùâª£%‘áåÿ—£W@ù¢g@ù-úÿ Õáªàª €Ò£C ùçÿ— g ù¡W@ù£C@ù¡o ùâªƒ%‘Ñåÿ—£W@ù¢g@ùúÿ Õ@ @¹âª Û ¹âùÿ@ @¹âª Û ¹úÿ@ @¹âª Û ¹õùÿ ?@ùáª  @¹ » ¹¥ùÿ Õ`ˆI¹âª Û ¹:úÿ`pI¹âª Û ¹úÿ¡ƒ‘àª €Òßæÿ—¡S@ù g ù¡o ù!  °âª! &‘¨åÿ—¼S@ù£g@ù{úÿáªàª €Ò£? ùÐæÿ— W ù¡g@ù£?@ù¡_ ùâªc$‘™åÿ—¡W@ù£g@ù[úÿ Õáªàª €Ò£? ùÀæÿ— g ù¡W@ù£?@ù¡o ùâªC%‘‰åÿ—£W@ù¢g@ù{úÿ Õ   °ãª 0I¹ Û ¹zùÿ Õ »@ùÕçÿ—ø ª ÿ´@ùâª€@ùÃçÿ—¡Z)àª¬åÿ—€øÿ¡ƒ‘àª €ÒŸæÿ—¡S@ù g ù¡o ù!  °âª! )‘håÿ—¼S@ù g@ùJûÿáªàª €Ò£C ùæÿ— W ù¡g@ù£C@ù¡_ ùâª#)‘Yåÿ— W@ù£g@ù*ûÿ¡ƒ‘àª €Ò‚æÿ—¡S@ù¢C@ù g ù¡o ùÃ(‘Låÿ— S@ù C ù g@ùýúÿáªàª €Ò£C ùsæÿ— W ù¡g@ù£C@ù¡_ ùâªc$‘<åÿ— W@ù£g@ùÚúÿ  @¹ » ¹àª•ýÿ  @¹ » ¹àª#þÿáªàª €Ò£C ù\æÿ— g ù¡W@ù£C@ù¡o ùâª*‘%åÿ—£W@ù¢g@ùIýÿáªàª €Ò£C ùMæÿ— g ù¡W@ù£C@ù¡o ùâª£%‘åÿ—£W@ù g@ùýÿáªàª €Ò£C ù>æÿ— g ù¡W@ù£C@ù¡o ùâªƒ%‘åÿ—£W@ù g@ùõüÿ@ @¹âª Û ¹õùÿ   °ãª ¨I¹ Û ¹Ñùÿ ;@ùáª  @¹ » ¹»ùÿáªàª €Ò£C ù!æÿ— g ù¡W@ù£C@ù¡o ùâªƒ%‘êäÿ—£W@ù¢g@ù	ûÿáªàª €Ò£C ùæÿ— g ù¡W@ù£C@ù¡o ùâªC%‘Ûäÿ—£W@ù¢g@ùÞúÿáªàª €Ò£C ùæÿ— g ù¡W@ù£C@ù¡o ùâªC%‘Ìäÿ—£W@ù g@ùžüÿ¡ƒ‘àª €Òõåÿ—¡S@ù g ù¡o ù!  °âª!@+‘¾äÿ—¼S@ù g@ùoüÿáªàª €Ò£C ùæåÿ— W ù¡g@ù£C@ù¡_ ùâª#)‘¯äÿ— W@ù£g@ùOüÿ¡ƒ‘àª €ÒØåÿ—¡S@ù¢C@ù g ù¡o ùÃ(‘¢äÿ— S@ù C ù g@ù"üÿáªàª €Ò£C ùÉåÿ— W ù¡g@ù£C@ù¡_ ùâªc$‘’äÿ— W@ù£g@ùÿûÿáªàª €Ò£C ùºåÿ— g ù¡W@ù£C@ù¡o ùâª*‘ƒäÿ—£W@ù¢g@ù¿ûÿáªàª €Ò£C ù«åÿ— g ù¡W@ù£C@ù¡o ùâª£%‘täÿ—£W@ù g@ù•ûÿáªàª €Ò£C ùœåÿ— g ù¡W@ù£C@ù¡o ùâªƒ%‘eäÿ—£W@ù g@ùkûÿáªàª €Ò£C ùåÿ— g ù¡W@ù£C@ù¡o ùâªC%‘Väÿ—£W@ù g@ù@ûÿ¡ƒ‘àª €Òåÿ—¡S@ù g ù¡o ù!  °âª!€*‘Häÿ—¼S@ù g@ùûÿáªàª €Ò£C ùpåÿ— W ù¡g@ù£C@ù¡_ ùâª#)‘9äÿ— W@ù£g@ùñúÿ¡ƒ‘àª €Òbåÿ—¡S@ù¢C@ù g ù¡o ùÃ(‘,äÿ— S@ù C ù g@ùÄúÿáªàª €Ò£C ùSåÿ— W ù¡g@ù£C@ù¡_ ùâªc$‘äÿ— W@ù£g@ù¡úÿáªàª €Ò£C ùDåÿ— g ù¡W@ù£C@ù¡o ùâª*‘äÿ—£W@ù¢g@ùbúÿáªàª €Ò£C ù5åÿ— g ù¡W@ù£C@ù¡o ùâª£%‘þãÿ—£W@ù¢g@ù8úÿ@ @¹âª Û ¹úÿ@ @¹âª Û ¹0úÿ@ @¹âª Û ¹Gúÿ@ @¹ Û ¹àª ùÿ  @¹ » ¹àª»ùÿ  @¹ » ¹àª„ùÿ   ° hJ¹ Û ¹àªÃùÿ@ @¹âª Û ¹àùÿáªàª €Òåÿ— g ù¡W@ù£C@ù¡o ùâªa@(‘Ïãÿ—¸W@ù g@ù1ùÿáªàª €Òøäÿ— g ù¡W@ù£C@ù¡o ùâªa (‘Áãÿ—¸W@ù g@ù	ùÿáªàª €Òêäÿ— g ù¡W@ù£C@ù¡o ùâªa '‘³ãÿ—¸W@ù g@ùàøÿáªàª €ÒÜäÿ— g ù¡W@ù£C@ù¡o ùâªa@'‘¥ãÿ—¸W@ù g@ù·øÿ@ @¹ Û ¹àª:úÿ@ @¹ Û ¹àª‹ûÿ@ @¹ Û ¹àªkûÿ   ° ÐJ¹ Û ¹àªEûÿ  @¹ » ¹àª0ûÿ »@ùãåÿ—ø ªÀÒþ´ §A¹ q . T q!ÒþT´  ðœBGùàªˆãÿ—àª&åÿ—!  °àª!`$‘"æÿ—!  °àª!à+‘æÿ—€BGùâªáªVåÿ—¡G@ù g@ù ë@  Täÿ— W@ù ë@  T‰äÿ—!  °àª! )‘æÿ—!  °àª! -‘	æÿ—€BGùâªáªAåÿ—¡G@ù g@ù ë@  Txäÿ— W@ù ë@  Ttäÿ—!  °àª!@%‘øåÿ—€BGùáª@¹Àãÿ—¡G@ù g@ù ë@  Tgäÿ—”BGùàª\åÿ—aSGùàªèª4 @ùäÿ— g@ù€?Ö¡G@ù g@ù ëÀÈþTXäÿ—Döÿ¡ƒ‘àª €Òcäÿ—¡S@ù g ù¡o ùâªC.‘-ãÿ—¸S@ù g@ù]üÿáªàª €ÒVäÿ— W ù¡g@ù¡_ ùâª#)‘ ãÿ—¸g@ù W@ù?üÿ¡ƒ‘àª €ÒIäÿ—¡S@ù g ù¡o ùâªÃ-‘ãÿ—¸S@ù g@ùüÿáªàª €Ò<äÿ— W ù¡g@ù¡_ ùâªc$‘ãÿ—¸g@ù W@ùõûÿáªàª €Ò/äÿ— g ù¡W@ù¡o ùâªC%‘ùâÿ—¸W@ù g@ù¶ûÿ¡ƒ‘àª €Ò"äÿ—¡S@ù g ù¡o ùâªc.‘ìâÿ—¸S@ù g@ùŠûÿáªàª €Òäÿ— W ù¡g@ù¡_ ùâª#)‘ßâÿ—¸g@ù W@ùlûÿ¡ƒ‘àª €Òäÿ—¡S@ù g ù¡o ùâªÃ-‘Òâÿ—¸S@ù g@ùAûÿ   °  J¹ Û ¹àª–ùÿ  @¹ » ¹àªùÿ@ @¹ Û ¹àª¯ùÿ@ @¹âª Û ¹ýùÿ@ @¹ Û ¹àª>úÿ€I¹ » ¹àª&úÿ@ @¹ Û ¹àª»ùÿ@ @¹ Û ¹àªÒùÿ€I¹ » ¹àª2ùÿáªàª €ÒÖãÿ— g ù¡W@ù¡o ùâªC%‘ âÿ—¸W@ù g@ùïûÿáªàª €ÒÉãÿ— W ù¡g@ù¡_ ùâªc$‘“âÿ—¸g@ù W@ùðúÿ@ @¹âª Û ¹³úÿ@ @¹ Û ¹àª”úÿ@ @¹ Û ¹àªöúÿ@ @¹ Û ¹àªÒûÿ`ÐI¹ Û ¹àª‘÷ÿ` J¹ Û ¹àªÃ÷ÿ`èI¹ Û ¹àª¤÷ÿ`J¹ Û ¹àªÕ÷ÿ  @¹ » ¹àªüúÿ€“K¹ Û ¹àª›ûÿ@ @¹ Û ¹àª$ûÿ€›K¹ Û ¹àªûÿ  @¹ » ¹àª~ûÿ@ @¹ Û ¹àª\ûÿàªƒüÿàªqüÿàª_üÿàªMüÿ£  Ð     ‘€Ò! €ÒcÜGùc @ù|äÿ—`@ùìôÿ£  Ð    À‘B€Ò! €ÒcÜGùc @ùräÿ—`@ùõÿàª'üÿàªüÿàªüÿó ª W@ùµB ‘ ë@  TPãÿ—àªnäÿ—øÿÿ÷ÿÿöÿÿ¡g@ùsB ‘ô ª? ë`  TàªDãÿ—àªbäÿ—ìÿÿ¡g@ùbB ‘ó ª? ë ýÿTàª:ãÿ—åÿÿøÿÿíÿÿáÿÿ´  ÐœBGùàªâÿ—àª¸ãÿ—!  àª!`$‘´äÿ—!  àª!à+‘°äÿ—€BGùâªáªèãÿ—¡G@ù g@ù ë@  Tãÿ— W@ù ë@  Tãÿ—!  àª! )‘Ÿäÿ—!  àª!`,‘›äÿ—€BGùâªáªÓãÿ—¡G@ù g@ù ë@  T
ãÿ— W@ù ë@  Tãÿ—!  àª!@%‘Šäÿ—€BGùáª@¹Râÿ—¡G@ù g@ù ë@  Tùâÿ—”BGùàªîãÿ—aSGùàªèª4 @ù©âÿ— g@ù€?Ö’þÿ£ÿÿ¢ÿÿ«ÿÿ•ÿÿ©ÿÿ“ÿÿ’ÿÿ‘ÿÿÿÿÿÿŽÿÿÿÿ—ÿÿ–ÿÿ•ÿÿžÿÿ“ÿÿ’ÿÿ‘ÿÿÿÿ™ÿÿàª2ýÿŒÿÿ‹ÿÿ”ÿÿ‰ÿÿàªÔüÿ†ÿÿ…ÿÿ„ÿÿƒÿÿ   áª  	‘‘ãÿ—sÿÿ}ÿÿàª
üÿzÿÿyÿÿmÿÿÿÿ€ÿÿuÿÿiÿÿsÿÿrÿÿ{ÿÿzÿÿoÿÿnÿÿwÿÿvÿÿàªéûÿsÿÿrÿÿqÿÿàªhüÿdÿÿXÿÿbÿÿaÿÿ`ÿÿiÿÿhÿÿàªšüÿ[ÿÿàªøûÿXÿÿWÿÿVÿÿàªoýÿàª|ýÿQÿÿPÿÿOÿÿ        '      ý{»©ý ‘óS©ôªõ[©÷ ù} ©	 ù€ ´õ ª–áÿ—ö ª  ´·3‘ €Ò  €Ò €Ò	  @  ´  ¹s ‘  ‘ßë€ ù€ T€Š@©_  ë¡zs¸¡O ¹¡þÿTáªàª áÿ—s ‘ßëÁþÿTàª÷@ùóSA©õ[B©ý{Å¨À_Ö@ùó ªa  ´àªfâÿ—àª„ãÿ— Õý{¼©" €Rý ‘óS©ó ª  €Òôªb ¹áÿ—   5óSA©  €Rý{Ä¨À_Öàª¨£ ‘¾ãÿ— @ùa€R  @¹îáÿ— @¹¡@ù @¹b)á  ´àªGâÿ—  €RóSA©ý{Ä¨À_ÖóSA©  €Rý{Ä¨À_Ö¡@ùó ªa  ´àª:âÿ—àªXãÿ— Õý{¾©ý ‘óS©óª&âÿ—ô ªáª§ãÿ— r   TóSA©ý{Â¨À_Ö ÕáªàªóSA©ý{Â¨ ãÿ Õý{¹©à*ý ‘óS©ôªõ[©÷ ùƒãÿ—` ´ó ª @¹  4àª¨c‘€ãÿ—³ƒE© ë  Tµ  Ð¶#‘·‘ €RµVGùb@¹a€Rà*¢G ¹§áÿ—á ª  ´ @ùäªâª# €Rðàÿ— £Ày”  3@ùs ‘ ëáýÿT³/@ùs  ´àªöáÿ—à*÷@ùóSA©õ[B©ý{Ç¨À_Ö Õàªùàÿ—â *`@ùáª)ãÿ—ô *à*÷@ùóSA©õ[B©ý{Ç¨À_Ö €Rèÿÿ €R÷@ùà*óSA©õ[B©ý{Ç¨À_Ö¡/@ùó ªa  ´àªÔáÿ—àªòâÿ— Õý{µ©ý ‘õ[©õ*ûs©û*óS©ü *ùk©ôªú*÷c©âÿ—ö ªà*)ãÿ—ß ñ@ú@ Tó ª @¹à	 4À@ù@ ´À@ù` ´àª¨c‘ ãÿ—³ƒI© ëà T #‘·‘ ? ù ‘ ; ù   Ð TGù 7 ù   Õá*à*ØfC©Ëàÿ— åªã*âªáªàª& €R/áÿ—   Ð¤?@ùâªáª# €R TGù  @ùƒàÿ— #Áyµ  S@ùs ‘ ë  Tb@¹a€Rà*¢ƒ ¹(áÿ—ô ª üÿµ¢ÿŸRa€Rà*¢‡ ¹!áÿ— þÿ´á*à*ØRC©¤àÿ—d åªã*áªàª& €R €Òáÿ— ‹F©# €R¤?@ù €Ò  @ù^àÿ—Ûÿÿ·  ÐÁŠA©÷VGùà@ù`àÿ—Ø@ùá*à*s@ùÖ@ù÷@ù‰àÿ—{ àªjàÿ—ç *æªå*ä*ãªâªáªàª•àÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Ë¨À_Ö Õ O@ùàþÿ´Jáÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Ë¨À_ÖÀýÿ´Aáÿ—÷ÿÿ£  Ð¢  Ð   ÐÁ@ùcŒGùB€Gù TGùc @ùB @ù  @ùáÿ—À ùàûÿ´zÿÿ¡O@ùó ªa  ´àª-áÿ—àªKâÿ—  @ù`  ´(áÿ ÕÀ_Ö      @ù`  ´"áÿ ÕÀ_Ö      @ù`  ´áÿ ÕÀ_Ö      @ù`  ´áÿ ÕÀ_Ö    Aø?  ë€  Tàªáÿ ÕÀ_Ö    ý{¼©ý ‘óS©ô ª @ù÷c©øª‚@ùõ[©  Ë üC“  ´øÓö €’ ëI Tàªáÿ—õ ª—N@©@ùsË¿«`þC“@  T¡j3ø  µs" ‘³‹w  ´àªëàÿ—¶‹÷cC©•N ©–
 ùóSA©õ[B©ý{Ä¨À_Ö€Òçÿÿâªáªàªs" ‘³‹Gáÿ—îÿÿ ü’? ë¨ûÿT €Ò €Ò¡ûÿ´ì|ÓØÿÿ    ý{¼©ý ‘óS©ô ª @ù÷c©øª‚@ùõ[©  Ë üC“  ´øÓö €’ ëI TàªËàÿ—õ ª—N@©@ùsË¿«`þC“@  T¡j3ø  µs" ‘³‹w  ´àª±àÿ—¶‹÷cC©•N ©–
 ùóSA©õ[B©ý{Ä¨À_Ö€Òçÿÿâªáªàªs" ‘³‹áÿ—îÿÿ ü’? ë¨ûÿT €Ò €Ò¡ûÿ´ì|ÓØÿÿ    ý{¼©ý ‘óS©ô ª @ù÷c©øª‚@ùõ[©  Ë üC“  ´øÓö €’ ëI Tàª‘àÿ—õ ª—N@©@ùsË¿«`þC“@  T¡j3ø  µs" ‘³‹w  ´àªwàÿ—¶‹÷cC©•N ©–
 ùóSA©õ[B©ý{Ä¨À_Ö€Òçÿÿâªáªàªs" ‘³‹Óàÿ—îÿÿ ü’? ë¨ûÿT €Ò €Ò¡ûÿ´ì|ÓØÿÿ    ý{¼©ý ‘óS©ô ª @ù÷c©øª‚@ùõ[©  Ë üC“  ´øÓö €’ ëI TàªWàÿ—õ ª—N@©@ùsË¿«`þC“@  T¡j3ø  µs" ‘³‹w  ´àª=àÿ—¶‹÷cC©•N ©–
 ùóSA©õ[B©ý{Ä¨À_Ö€Òçÿÿâªáªàªs" ‘³‹™àÿ—îÿÿ ü’? ë¨ûÿT €Ò €Ò¡ûÿ´ì|ÓØÿÿ    !
 ´ý{º©ý ‘óS©ô ª÷c©÷ªõ[©ùk©ûs©ø@ùX ´@ùy ´:@ùš ´[@ù» ´|@ùÜ ´–@ùö ´Õ@ù ´³@ù3 ´a@ùàªÎßÿ—a
@ùàªóªàÿ—3ÿÿµ¡
@ùàªõªýßÿ—UþÿµÁ
@ùàªöªøßÿ—výÿµ@ùàªüªóßÿ—œüÿµa@ùàªûªîßÿ—»ûÿµA@ùàªúªéßÿ—Úúÿµ!@ùàªùªäßÿ—ùùÿµ@ùàªøªßßÿ—ùÿµá
@ùàª÷ªÚßÿ—7øÿµóSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨À_ÖÀ_Öý{¾©ý ‘óS©@ùS ´ô ªa@ùàªßÿ—a
@ùàªóªÄßÿ—3ÿÿµóSA©ý{Â¨À_Ö    !
 ´ý{º©ý ‘óS©ô ª÷c©÷ªõ[©ùk©ûs©ø@ùX ´@ùy ´:@ùš ´[@ù» ´|@ùÜ ´–@ùö ´Õ@ù ´³@ù3 ´a@ùàªàÿ—a
@ùàªóªžßÿ—3ÿÿµ¡
@ùàªõª™ßÿ—UþÿµÁ
@ùàªöª”ßÿ—výÿµ@ùàªüªßÿ—œüÿµa@ùàªûªŠßÿ—»ûÿµA@ùàªúª…ßÿ—Úúÿµ!@ùàªùª€ßÿ—ùùÿµ@ùàªøª{ßÿ—ùÿµá
@ùàª÷ªvßÿ—7øÿµóSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨À_ÖÀ_Öý{¾©ý ‘óS©@ùS ´ô ªa@ùàªÔßÿ—a
@ùàªóª`ßÿ—3ÿÿµóSA©ý{Â¨À_Ö    ý{¼©ý ‘óS©ô ª @ù÷c©øª‚@ùõ[©  Ë üB“  ´øÓv €’ ëI TàªUßÿ—õ ª—N@©@¹sË¿«`þB“@  T¡j3¸  µs ‘³‹w  ´àª;ßÿ—¶‹÷cC©•N ©–
 ùóSA©õ[B©ý{Ä¨À_Ö– €Òçÿÿâªáªàªs ‘³‹—ßÿ—îÿÿ ø’? ë¨ûÿT €Ò €Ò¡ûÿ´ð}ÓØÿÿ    @ ‘ ¹| ©À_Öý{¾©ý ‘óS©  ðs1‘ô ªàª!Þÿ—‚@ù ü’! Ë ëè  Tâ ªáªàªóSA©ý{Â¨2ßÿ   ð À‘;Þÿ—ý{»©ý ‘@ùóS©b Ñõ ù_ ë¨ Tô ª³Ã ‘`B ‘  ùƒ@ù`‹ ± @ú  T   ð `‘ƒÞÿ—cxb¸  ðàª!`1‘" €Ò£)¢ ùoßÿ—õ * @ùsB ‘ ë@  TåÞÿ—U 4  ðs"1‘àªìÝÿ—‚@ù ü’! Ë ëÈ Tâ ªáªàªÿÞÿ—õ@ùóSA©ý{Å¨À_Öƒ@ùa Ñ? ë¨ Tàª" €Òpßÿ—èÿÿ  ð   ð!`/‘ À/‘Žßÿ—   ð À‘÷Ýÿ—  ð   ðâª À/‘ 0‘…ßÿ—¡@ùsB ‘ô ª? ë`  Tàª¶Þÿ—àªÔßÿ— Õý{¾©ý ‘óS©  ðs‚1‘ô ªàª·Ýÿ—‚@ù ü’! Ë ëè  Tâ ªáªàªóSA©ý{Â¨ÈÞÿ   ð À‘ÑÝÿ—ý{»©ý ‘@ùóS©b Ñõ ù_ ë¨ Tô ª³Ã ‘`B ‘  ùƒ@ù`‹ ± @ú  T   ð `‘Þÿ—cxb¸  ðàª!`1‘" €Ò£)¢ ùßÿ—õ * @ùsB ‘ ë@  T{Þÿ—U 4  ðs¢1‘àª‚Ýÿ—‚@ù ü’! Ë ëÈ Tâ ªáªàª•Þÿ—õ@ùóSA©ý{Å¨À_Öƒ@ùa Ñ? ë¨ Tàª" €Òßÿ—èÿÿ  ð   ð!`/‘ À/‘$ßÿ—   ð À‘Ýÿ—  ð   ðâª À/‘ 0‘ßÿ—¡@ùsB ‘ô ª? ë`  TàªLÞÿ—àªjßÿ— Õý{½©ý ‘óS©  ð”â1‘ó ªàªõ[©öª ü’JÝÿ—a@ù¡Ë ë( Tâ ªáªàª^Þÿ—Á
@©àª[Þÿ—àª=Ýÿ—a@ù¡Ë ëˆ Táªâ ªàª  ð”2‘OÞÿ—àª1Ýÿ—a@ùµË ë Tâ ªáªàªõ[B©óSA©ý{Ã¨BÞÿ   ð À‘KÝÿ—ý{·©ý ‘óS©4L@©÷c©·Ã‘õ[©ãB ‘ùk©sö~Óûs©Ÿ«£; ù€@ú  T   ð `‘•Ýÿ—sþB“û ª ñöª³7 ù( T ñ` Tâª³ µ³? ùáªàª_x3¸*ßÿ— ;@ùáB ‘ ë@  TñÝÿ—  ðsâ1‘àªùÜÿ—b@ù ü’! Ë ëH Tâ ªáªàªÞÿ—¿ƒ ¹Á@ùâB ‘àª¢©‚Üÿ—Á@ù ´  ð  ð93‘ZC2‘ €Ò ü’³?@ù   Õ¿Š q` TÉ	 T¿¾ q  T¿rq T  ðËµ4‘àªÓÜÿ— ë Tâ ªáªàªéÝÿ—Á@ù” ‘³?@ùŸë‚ TÀ@ùxt¸¿2 q€ T¨üÿT¿& q  T¿* q 
 T¿" q  T ;@ùâB ‘| ‘ ë€ T¢C@ùŸëè T‹x3¸” ‘¼? ùŸëóª_ ¹ÃüÿT¡;@ùâªàªÅÝÿ—  ðsB4‘àª¥Üÿ—b@ù ü’! Ë ëH Tâ ªáªàª¸Ýÿ— ;@ù÷B ‘ ë@  T‹Ýÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{É¨À_Ö Õ¿6 q!úÿT  ðËµ‚3‘àªˆÜÿ— ëÉöÿT   ð À‘«Üÿ—àªË€Üÿ— ëè Tâ ªáªàª–Ýÿ—­ÿÿ  ðËµÂ2‘àªtÜÿ— ëIôÿT   ð À‘—Üÿ—  ðËµB3‘àªjÜÿ— ë	óÿT   ð À‘Üÿ—  ðËµÂ3‘àª`Üÿ— ëÉñÿT   ð À‘ƒÜÿ—  ðËµ‚2‘àªVÜÿ— ë‰ðÿT   ð À‘yÜÿ—àªËNÜÿ— ë Tâ ªáªàªdÝÿ—{ÿÿáªàª$ €Ò €Ò €Ò™Ýÿ—Á@ù ;@ùŠÿÿ Õb €Ò…ÿÿ¡£‘àª €Ò;Ýÿ— ; ù¡7@ù¡C ùâªáªÜÿ—³‹F©)ÿÿ€@¹âª ƒ ¹%ÿÿàªöÿÿ³?@ù{ÿÿ   ð À‘LÜÿ—¡;@ù÷B ‘ó ª? ë`  TàªÝÿ—àª/Þÿ—   ð À‘@Üÿ—   ð À‘=Üÿ—   ð À‘:Üÿ—   ð À‘7Üÿ—ëÿÿ Õ @ù ù?  ¹À_Ö@ùc  µà*À_Öý{»©b Ñ_ ëý ‘óS©ó ªõ ùh Tc@ù´Ã ‘€B ‘  ù`‹ ± @ú¡  T   ð `‘vÜÿ— Õcxb¸  ðàª!`1‘" €Ò£)¢ ùaÝÿ—õ * @ù”B ‘ ë@  T×Üÿ—c@ùà*U  5` QóSA©õ@ùý{Å¨À_Ö  ð   ð!`/‘ À/‘’Ýÿ—¡@ù”B ‘ó ª? ë`  TàªÃÜÿ—àªáÝÿ—ý{»©ý ‘óS©ôª@ùõ[©õ ªó µ€B ‘sö~Ó€ ùµ@ù¿« @ú  T   ð `‘?Üÿ—sþB“ ñ³ ù¨ T ñ`	 Tá ª µõ[B©“ ù?x3¸àªóSA©ý{Å¨À_Ö Õ¡Ã ‘àª €Ò«Üÿ—¡@ù€ ù
 ùâªáªuÛÿ—³@ù@ùàªõ[B©“ ù?x3¸óSA©ý{Å¨À_Ö Õb Ñ_ ëˆ T£@ù¶Ã ‘ÀB ‘  ù`‹ ± @úàùÿTcxb¸  ðàª!`1‘" €Ò£)¢ ùüÜÿ—ó * @ùÁB ‘ ë@  TrÜÿ—“ 5¡@ù€B ‘€ ù3 Ñëµ@ùs’šsö~Ó¿« @ú öÿTsþB“ ñ³ ù	÷ÿTáªÃÿÿ Õ¢@¹á ªõ[B©‚ ¹“ ùàª?x3¸óSA©ý{Å¨À_Ö  ð   ðãª!`/‘ À/‘Ýÿ—¡@ùÖB ‘ó ª? ë`  TàªHÜÿ—àªfÝÿ—³@ùŒÿÿ ÕÿÑý{º©ý ‘óS©³ƒ‘õ[©cB ‘6P@©÷c©ùk©ûs©”ö~Ó£s ùß«À@ú¡  T   ð `‘ÀÛÿ— Õ”þB“û ªŸ ñõ*´c ù( TŸ ñ  Tâª4% µ´w ùáªàª_x4¸TÝÿ— s@ùaB ‘ ë@  TÜÿ—`Â‘¶  °º  °ûÚÿ—¿Ó9À®Gù €Ò  OBKGù @ ‘¿ù « ù ã‘¿3¹Yð@©  €= #	‘  €="ƒ^ø¹s ù`‹|j"ø Üÿ—´  °·  °  O`‘¸  °zGù"` ‘! ‘¡« ùá¢Gù¢s ù!@ ‘ ?€=¡w ù C€= G€=wÝÿ— gGù€Ra" ‘ @ ‘¿Ÿ ù w ù`Â‘¢+¹b‚‘¿C¹¢› ùÜÿ—á*àª<Ýÿ—¹‘¡‹@ù C ‘¿“ ¹ © ´µƒ@ù? ëi T¢‡@ù¼‘ãª‚C ‘£7 ù¢c ùÃ µ   Ð `‘aÛÿ—¡‡@ù¼ƒ‘?  ñ¡7 ù¤
@úC ‘¡S ù   T   Ð `‘VÛÿ— Õ¢7@ùµËµþB“¿ ñµ? ùè T¿ ñ` TÕ µ‚C ‘µW ù? ë?x5¸  T"C ‘¡C ù ë  T¢[@ù¡K@ùµ‹©  ´ S ù¡[ ùœC ‘¿W ù ë  ¹@  T§Ûÿ—¡H©àªÌÛÿ— C@ù9C ‘ ë@  TŸÛÿ—  Ðµb1‘àª§Úÿ—b@ù ü’! Ë ëh Tâ ªáªàªºÛÿ—”zGùa‚‘gGù ›@ù‚b ‘C ‘”‘ ë¢c©´« ù@  T†Ûÿ—`‘÷¢Gù÷B ‘·w ù-Üÿ—ZKGù`Â‘Ö®GùÖB ‘A‹@©¡s ù!€^øbj!ø¶« ùkÚÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿ‘À_Ö5 ËµþB“¿ ñµ; ùˆ T¿ ñÀ	 Tµ µáª‚C ‘µg ù? ë?x5¸@	 T"C ‘¡C ù ëà	 T¢k@ù¡K@ùµ‹©`öÿ´ c ù¡k ùœC ‘¿g ù ë  ¹aõÿT«ÿÿ¡‘àª €Ò]Ûÿ— s ù¡c@ù¡{ ùâªáª'Úÿ—´c@ù¢s@ù ÿÿ ÕÀ@¹âª ó ¹ÿÿ¡Ã‘àª €ÒKÛÿ—¡;@ù c ù¡k ù¡7@ùâªÚÿ—µ;@ù C@ù¡c@ùÌÿÿ¡ã‘àª €Ò=Ûÿ—¡?@ù S ù¡[ ù¡7@ùâªÚÿ—µƒG©¡S@ùiÿÿ Õ@ @¹µW ù )àªáªÝÛÿ— S@ùoÿÿ` @¹µg ù )àªáªÕÛÿ— c@ù½ÿÿaB‘àªÐÛÿ—iÿÿ k@ùµƒ©fÿÿ Õ [@ùµƒ©bÿÿ¡C@ù9C ‘ô ª? ë`  TàªÛÿ—àª³Ûÿ—àªÜÿ—àª²ÿÿàªáªÂÿÿ ÕàªáªÌÿÿ   Ð À‘%Úÿ—ô ªïÿÿô ªÁ®Gù`Â‘!@ ‘¡« ùÝÙÿ—àªÜÿ—¡s@ùsB ‘ô ª? ë€üÿTàªàÚÿ—áÿÿô ª`" ‘Úÿ— ƒ^ø¹s ù|j øëÿÿÐÿÿÿÑý{º©ý ‘óS©³ƒ‘õ[©cB ‘6P@©÷c©ùk©ûs©”ö~Ó£s ùß«À@ú¡  T   Ð `‘TÚÿ— Õ”þB“û ªŸ ñU S´c ù( TŸ ñ  Tâª4% µ´w ùáªàª_x4¸èÛÿ— s@ùaB ‘ ë@  T¯Úÿ—`Â‘¶  º  Ùÿ—¿Ó9À®Gù €Ò  OBKGù @ ‘¿ù « ù ã‘¿3¹Yð@©  €= #	‘  €="ƒ^ø¹s ù`‹|j"ø´Úÿ—´  ·    O`‘¸  zGù"` ‘! ‘¡« ùá¢Gù¢s ù!@ ‘ ?€=¡w ù C€= G€=Üÿ— gGù€Ra" ‘ @ ‘¿Ÿ ù w ù`Â‘¢+¹b‚‘¿C¹¢› ù—Úÿ—á*àªtÙÿ—¹‘¡‹@ù C ‘¿“ ¹ © ´µƒ@ù? ëi T¢‡@ù¼‘ãª‚C ‘£7 ù¢c ùÃ µ   Ð `‘õÙÿ—¡‡@ù¼ƒ‘?  ñ¡7 ù¤
@úC ‘¡S ù   T   Ð `‘êÙÿ— Õ¢7@ùµËµþB“¿ ñµ? ùè T¿ ñ` TÕ µ‚C ‘µW ù? ë?x5¸  T"C ‘¡C ù ë  T¢[@ù¡K@ùµ‹©  ´ S ù¡[ ùœC ‘¿W ù ë  ¹@  T;Úÿ—¡H©àª`Úÿ— C@ù9C ‘ ë@  T3Úÿ—  Ðµb1‘àª;Ùÿ—b@ù ü’! Ë ëh Tâ ªáªàªNÚÿ—”zGùa‚‘gGù ›@ù‚b ‘C ‘”‘ ë¢c©´« ù@  TÚÿ—`‘÷¢Gù÷B ‘·w ùÁÚÿ—ZKGù`Â‘Ö®GùÖB ‘A‹@©¡s ù!€^øbj!ø¶« ùÿØÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿ‘À_Ö5 ËµþB“¿ ñµ; ùˆ T¿ ñÀ	 Tµ µáª‚C ‘µg ù? ë?x5¸@	 T"C ‘¡C ù ëà	 T¢k@ù¡K@ùµ‹©`öÿ´ c ù¡k ùœC ‘¿g ù ë  ¹aõÿT«ÿÿ¡‘àª €ÒñÙÿ— s ù¡c@ù¡{ ùâªáª»Øÿ—´c@ù¢s@ù ÿÿ ÕÀ@¹âª ó ¹ÿÿ¡Ã‘àª €ÒßÙÿ—¡;@ù c ù¡k ù¡7@ùâª©Øÿ—µ;@ù C@ù¡c@ùÌÿÿ¡ã‘àª €ÒÑÙÿ—¡?@ù S ù¡[ ù¡7@ùâª›Øÿ—µƒG©¡S@ùiÿÿ Õ@ @¹µW ù )àªáªqÚÿ— S@ùoÿÿ` @¹µg ù )àªáªiÚÿ— c@ù½ÿÿaB‘àªdÚÿ—iÿÿ k@ùµƒ©fÿÿ Õ [@ùµƒ©bÿÿ¡C@ù9C ‘ô ª? ë`  Tàª•Ùÿ—àªGÚÿ—àª±Úÿ—àª²ÿÿàªáªÂÿÿ ÕàªáªÌÿÿ   Ð À‘¹Øÿ—ô ªïÿÿô ªÁ®Gù`Â‘!@ ‘¡« ùqØÿ—àª›Úÿ—¡s@ùsB ‘ô ª? ë€üÿTàªtÙÿ—áÿÿô ª`" ‘$Ùÿ— ƒ^ø¹s ù|j øëÿÿÐÿÿÿÑý{º©ý ‘óS©³ƒ‘õ[©cB ‘6P@©÷c©ùk©ûs©”ö~Ó£s ùß«À@ú¡  T   Ð `‘èØÿ— Õ”þB“û ªŸ ñõª´c ù( TŸ ñ  Tâª4% µ´w ùáªàª_x4¸|Úÿ— s@ùaB ‘ ë@  TCÙÿ—`Â‘¶  º  #Øÿ—¿Ó9À®Gù €Ò  OBKGù @ ‘¿ù « ù ã‘¿3¹Yð@©  €= #	‘  €="ƒ^ø¹s ù`‹|j"øHÙÿ—´  ·    O`‘¸  zGù"` ‘! ‘¡« ùá¢Gù¢s ù!@ ‘ ?€=¡w ù C€= G€=ŸÚÿ— gGù€Ra" ‘ @ ‘¿Ÿ ù w ù`Â‘¢+¹b‚‘¿C¹¢› ù+Ùÿ—áªàªhØÿ—¹‘¡‹@ù C ‘¿“ ¹ © ´µƒ@ù? ëi T¢‡@ù¼‘ãª‚C ‘£7 ù¢c ùÃ µ   Ð `‘‰Øÿ—¡‡@ù¼ƒ‘?  ñ¡7 ù¤
@úC ‘¡S ù   T   Ð `‘~Øÿ— Õ¢7@ùµËµþB“¿ ñµ? ùè T¿ ñ` TÕ µ‚C ‘µW ù? ë?x5¸  T"C ‘¡C ù ë  T¢[@ù¡K@ùµ‹©  ´ S ù¡[ ùœC ‘¿W ù ë  ¹@  TÏØÿ—¡H©àªôØÿ— C@ù9C ‘ ë@  TÇØÿ—  Ðµb1‘àªÏ×ÿ—b@ù ü’! Ë ëh Tâ ªáªàªâØÿ—”zGùa‚‘gGù ›@ù‚b ‘C ‘”‘ ë¢c©´« ù@  T®Øÿ—`‘÷¢Gù÷B ‘·w ùUÙÿ—ZKGù`Â‘Ö®GùÖB ‘A‹@©¡s ù!€^øbj!ø¶« ù“×ÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿ‘À_Ö5 ËµþB“¿ ñµ; ùˆ T¿ ñÀ	 Tµ µáª‚C ‘µg ù? ë?x5¸@	 T"C ‘¡C ù ëà	 T¢k@ù¡K@ùµ‹©`öÿ´ c ù¡k ùœC ‘¿g ù ë  ¹aõÿT«ÿÿ¡‘àª €Ò…Øÿ— s ù¡c@ù¡{ ùâªáªO×ÿ—´c@ù¢s@ù ÿÿ ÕÀ@¹âª ó ¹ÿÿ¡Ã‘àª €ÒsØÿ—¡;@ù c ù¡k ù¡7@ùâª=×ÿ—µ;@ù C@ù¡c@ùÌÿÿ¡ã‘àª €ÒeØÿ—¡?@ù S ù¡[ ù¡7@ùâª/×ÿ—µƒG©¡S@ùiÿÿ Õ@ @¹µW ù )àªáªÙÿ— S@ùoÿÿ` @¹µg ù )àªáªýØÿ— c@ù½ÿÿaB‘àªøØÿ—iÿÿ k@ùµƒ©fÿÿ Õ [@ùµƒ©bÿÿ¡C@ù9C ‘ô ª? ë`  Tàª)Øÿ—àªÛØÿ—àªEÙÿ—àª²ÿÿàªáªÂÿÿ ÕàªáªÌÿÿ   Ð À‘M×ÿ—ô ªïÿÿô ªÁ®Gù`Â‘!@ ‘¡« ù×ÿ—àª/Ùÿ—¡s@ùsB ‘ô ª? ë€üÿTàªØÿ—áÿÿô ª`" ‘¸×ÿ— ƒ^ø¹s ù|j øëÿÿÐÿÿÿÑý{º©ý ‘óS©³ƒ‘õ[©cB ‘6P@©÷c©ùk©ûs©”ö~Ó£s ùß«À@ú¡  T   Ð `‘|×ÿ— Õ”þB“û ªŸ ñõª´c ù( TŸ ñ  Tâª4% µ´w ùáªàª_x4¸Ùÿ— s@ùaB ‘ ë@  T××ÿ—`Â‘–  ðš  ð·Öÿ—¿Ó9À®Gù €Ò  OBKGù @ ‘¿ù « ù ã‘¿3¹Yð@©  €= #	‘  €="ƒ^ø¹s ù`‹|j"øÜ×ÿ—”  ð—  ð  O`‘˜  ðzGù"` ‘! ‘¡« ùá¢Gù¢s ù!@ ‘ ?€=¡w ù C€= G€=3Ùÿ— gGù€Ra" ‘ @ ‘¿Ÿ ù w ù`Â‘¢+¹b‚‘¿C¹¢› ù¿×ÿ—áªàª¨Öÿ—¹‘¡‹@ù C ‘¿“ ¹ © ´µƒ@ù? ëi T¢‡@ù¼‘ãª‚C ‘£7 ù¢c ùÃ µ   ° `‘×ÿ—¡‡@ù¼ƒ‘?  ñ¡7 ù¤
@úC ‘¡S ù   T   ° `‘×ÿ— Õ¢7@ùµËµþB“¿ ñµ? ùè T¿ ñ` TÕ µ‚C ‘µW ù? ë?x5¸  T"C ‘¡C ù ë  T¢[@ù¡K@ùµ‹©  ´ S ù¡[ ùœC ‘¿W ù ë  ¹@  Tc×ÿ—¡H©àªˆ×ÿ— C@ù9C ‘ ë@  T[×ÿ—  °µb1‘àªcÖÿ—b@ù ü’! Ë ëh Tâ ªáªàªv×ÿ—”zGùa‚‘gGù ›@ù‚b ‘C ‘”‘ ë¢c©´« ù@  TB×ÿ—`‘÷¢Gù÷B ‘·w ùé×ÿ—ZKGù`Â‘Ö®GùÖB ‘A‹@©¡s ù!€^øbj!ø¶« ù'Öÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿ‘À_Ö5 ËµþB“¿ ñµ; ùˆ T¿ ñÀ	 Tµ µáª‚C ‘µg ù? ë?x5¸@	 T"C ‘¡C ù ëà	 T¢k@ù¡K@ùµ‹©`öÿ´ c ù¡k ùœC ‘¿g ù ë  ¹aõÿT«ÿÿ¡‘àª €Ò×ÿ— s ù¡c@ù¡{ ùâªáªãÕÿ—´c@ù¢s@ù ÿÿ ÕÀ@¹âª ó ¹ÿÿ¡Ã‘àª €Ò×ÿ—¡;@ù c ù¡k ù¡7@ùâªÑÕÿ—µ;@ù C@ù¡c@ùÌÿÿ¡ã‘àª €ÒùÖÿ—¡?@ù S ù¡[ ù¡7@ùâªÃÕÿ—µƒG©¡S@ùiÿÿ Õ@ @¹µW ù )àªáª™×ÿ— S@ùoÿÿ` @¹µg ù )àªáª‘×ÿ— c@ù½ÿÿaB‘àªŒ×ÿ—iÿÿ k@ùµƒ©fÿÿ Õ [@ùµƒ©bÿÿ¡C@ù9C ‘ô ª? ë`  Tàª½Öÿ—àªo×ÿ—àªÙ×ÿ—àª²ÿÿàªáªÂÿÿ ÕàªáªÌÿÿ   ° À‘áÕÿ—ô ªïÿÿô ªÁ®Gù`Â‘!@ ‘¡« ù™Õÿ—àªÃ×ÿ—¡s@ùsB ‘ô ª? ë€üÿTàªœÖÿ—áÿÿô ª`" ‘LÖÿ— ƒ^ø¹s ù|j øëÿÿÐÿÿÿÑý{º©ý ‘óS©³ƒ‘õ[©cB ‘6P@©÷c©ùk©ûs©”ö~Ó£s ùß«À@ú¡  T   ° `‘Öÿ— Õ”þB“û ªŸ ñõª´c ù( TŸ ñ  Tâª4% µ´w ùáªàª_x4¸¤×ÿ— s@ùaB ‘ ë@  TkÖÿ—`Â‘–  ðš  ðKÕÿ—¿Ó9À®Gù €Ò  OBKGù @ ‘¿ù « ù ã‘¿3¹Yð@©  €= #	‘  €="ƒ^ø¹s ù`‹|j"øpÖÿ—”  ð—  ð  O`‘˜  ðzGù"` ‘! ‘¡« ùá¢Gù¢s ù!@ ‘ ?€=¡w ù C€= G€=Ç×ÿ— gGù€Ra" ‘ @ ‘¿Ÿ ù w ù`Â‘¢+¹b‚‘¿C¹¢› ùSÖÿ—áªàªÐÔÿ—¹‘¡‹@ù C ‘¿“ ¹ © ´µƒ@ù? ëi T¢‡@ù¼‘ãª‚C ‘£7 ù¢c ùÃ µ   ° `‘±Õÿ—¡‡@ù¼ƒ‘?  ñ¡7 ù¤
@úC ‘¡S ù   T   ° `‘¦Õÿ— Õ¢7@ùµËµþB“¿ ñµ? ùè T¿ ñ` TÕ µ‚C ‘µW ù? ë?x5¸  T"C ‘¡C ù ë  T¢[@ù¡K@ùµ‹©  ´ S ù¡[ ùœC ‘¿W ù ë  ¹@  T÷Õÿ—¡H©àªÖÿ— C@ù9C ‘ ë@  TïÕÿ—  °µb1‘àª÷Ôÿ—b@ù ü’! Ë ëh Tâ ªáªàª
Öÿ—”zGùa‚‘gGù ›@ù‚b ‘C ‘”‘ ë¢c©´« ù@  TÖÕÿ—`‘÷¢Gù÷B ‘·w ù}Öÿ—ZKGù`Â‘Ö®GùÖB ‘A‹@©¡s ù!€^øbj!ø¶« ù»Ôÿ—óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿ‘À_Ö5 ËµþB“¿ ñµ; ùˆ T¿ ñÀ	 Tµ µáª‚C ‘µg ù? ë?x5¸@	 T"C ‘¡C ù ëà	 T¢k@ù¡K@ùµ‹©`öÿ´ c ù¡k ùœC ‘¿g ù ë  ¹aõÿT«ÿÿ¡‘àª €Ò­Õÿ— s ù¡c@ù¡{ ùâªáªwÔÿ—´c@ù¢s@ù ÿÿ ÕÀ@¹âª ó ¹ÿÿ¡Ã‘àª €Ò›Õÿ—¡;@ù c ù¡k ù¡7@ùâªeÔÿ—µ;@ù C@ù¡c@ùÌÿÿ¡ã‘àª €ÒÕÿ—¡?@ù S ù¡[ ù¡7@ùâªWÔÿ—µƒG©¡S@ùiÿÿ Õ@ @¹µW ù )àªáª-Öÿ— S@ùoÿÿ` @¹µg ù )àªáª%Öÿ— c@ù½ÿÿaB‘àª Öÿ—iÿÿ k@ùµƒ©fÿÿ Õ [@ùµƒ©bÿÿ¡C@ù9C ‘ô ª? ë`  TàªQÕÿ—àªÖÿ—àªmÖÿ—àª²ÿÿàªáªÂÿÿ ÕàªáªÌÿÿ   ° À‘uÔÿ—ô ªïÿÿô ªÁ®Gù`Â‘!@ ‘¡« ù-Ôÿ—àªWÖÿ—¡s@ùsB ‘ô ª? ë€üÿTàª0Õÿ—áÿÿô ª`" ‘àÔÿ— ƒ^ø¹s ù|j øëÿÿÐÿÿý{¾©  ð`‘ý ‘ó ùó ª!dGù $@ù!@ ‘ ëa ù@  TÕÿ—  ðàªó@ù! Gù!@ ‘„øý{Â¨¾Õÿ    ý{¾©  ð`‘ý ‘ó ùó ª!dGù $@ù!@ ‘ ëa ù@  TÕÿ—  ðàª! Gù!@ ‘„øªÕÿ—àªó@ùý{Â¨€ÒÕÿ 9| © ù|)  ¹À_Ö 9|)  ¹À_Ö @9À_Ö @¹À_Ö @¹À_Ö@9§ 4@¹ÿ kI T@¹ké T	 @¹â"*? q" B°‰	 @ùçB|_ qç|'Ig8§  9@¹ @ù¥|¥ åHe8…  9@¹ @ù‚|B ¢Hb8b  9   T  €À  9À_Ö Õ@¹ @ù uS  @H`8À  9À_ÖÿƒÑ €Òý{º©ý ‘÷c©ø ª  €ÒóS©õ[©ôªùk©³Ã‘ûs©›Ôÿ— |@“áª< ‘™  ðcì|’•  ðÿc#Ëô~Óà ‘‘Ôÿ—`"‘ƒÓÿ—¿c	9"ïGù €Ò  O FGù¿g	9 @ ‘¿+ùVÜ@© ¿ ù ›€= Ÿ€=À‚^ø¶; ùwj ø¿? ùÀ‚^ø` ‹Õÿ—”  ð€–Gù` ‘ ‘`B ‘¢; ù¡¿ ùœÔÿ—aB ‘`"‘Õÿ—á ‘`B ‘‚€ReÔÿ—@ ´ ;@ù €R €^ø` ‹ƒÕÿ—¡›A¹  €R?  jÁ T¡«‘àªB €ÒçÔÿ—¡×@y@¨‰R?  k` T`B ‘5Óÿ—À ´9ïGù6ß@©  ð”–Gù`B ‘!ÈGù‚b ‘”‘¢; ù!@ ‘´¿ ù¡C ù'Óÿ—`‘¡Õÿ—  ð`"‘!lGù!@ ‘¡C ùÿÔÿ—µFGùÁ‚^ø`"‘¶; ùµB ‘wj!øµ¿ ù¿? ù>Óÿ—¿ ‘óSA©õ[B©÷cC©ùkD©ûsE©ý{Æ¨ÿƒ‘À_Öàª €RA€ÒÑÔÿ—¡³‘àª‚ €Ò±Ôÿ—àª €RA€ÒÉÔÿ—c ‘àª‚ €Ò©Ôÿ—s ‘àª‚ €Ò¥Ôÿ—àª €R€Ò½Ôÿ—ƒ ‘àªB €ÒÔÿ— @¹  q÷ÿT@¹?  q­öÿT#@¹ |o@© |zË  q  °€ | |@“ ëè
 Tb  Tà ‹  ù¡o@¹àª €R Ôÿ—@¹?@òà T #@¹  q Z³€ZZ_@ò€ Tà*   rÁÿÿT@¹  K?  q T  qû* €R|@“m T@ùâªàª!@6‹gÔÿ—áªàª" €RÔÿ— @¹œ Ö klþÿT  €R “ 9yÿÿ ;@ù€^øa‹àª! @¹! 2èÔÿ—eÿÿ ;@ù€^øa‹àª! @¹! 2àÔÿ—lÿÿ@©àªB ËGÔÿ—éÿÿ @¹û*  q­üÿT €R €R@ùâªàª!@7‹;Ôÿ— @¹Ö ÷ kìþÿTØÿÿ ë€õÿT @ù  Ëß ë‰ Tà:ªß ë T_ë €’@#–š  ‹_ ëI Tàª¸Óÿ—k@©ü ª ‹ZË: µâªàª €Rš‹êÒÿ—w  ´àªŸÓÿ—k © ùÿÿâªàª €RàÒÿ—`‹  ù†ÿÿ €Ò €Ò`ýÿ´û ªãÿÿ Õâªáªàª÷Óÿ—€‹âª €R ‹ÎÒÿ—åÿÿ    €4‘¶Òÿ—ô ªàªSÒÿ—àªÔÿ—ô ª¡FGù`"‘!@ ‘¡¿ ùkÒÿ—àª•Ôÿ—ô ª`B ‘JÔÿ—àªÁ‚^øô ª¶; ùwj!ø¿? ùðÿÿúÿÿ Õ˜Òÿý{¿©ý ‘ý{Á¨À_Ö    basic_string::_M_construct null not valid       vector::_M_range_check: __n (which is %zu) >= this->size() (which is %zu)       sans-serif      family  size    dpi     charset scalable        antialias       hintstyle       -*-*-medium-*-*--13-*-*-*-*-*-*-*       -*-*-medium-*-*--12-*-*-*-*-*-*-*       -*-*-*-*-*--13-*-*-*-*-*-*-*    -*-*-*-*-*--12-*-*-*-*-*-*-*    -*-*-medium-*-*--14-*-*-*-*-*-*-*       -*-*-*-*-*--14-*-*-*-*-*-*-*    -*-*-*-*-*--*-*-*-*-*-*-*-*     basic_string::append    _NET_WM_WINDOW_TYPE     _NET_WM_WINDOW_TYPE_MENU        _NET_WM_WINDOW_TYPE_DIALOG      _NET_WM_WINDOW_TYPE_DOCK        _NET_WM_ICON    CARDINAL        focusWindow     clientWindow    inputStyle      filterEvents    _NET_WM_STATE   _NET_WM_STATE_SKIP_TASKBAR      _NET_WM_STATE_SKIP_PAGER        _NET_WM_STATE_ABOVE     _NET_WM_STATE_STICKY    _XEMBED_INFO    _NET_SYSTEM_TRAY_S%i    _NET_SYSTEM_TRAY_OPCODE LANG    Could not open display.
        WM_PROTOCOLS    WM_DELETE_WINDOW        Couldn't open input method      queryInputStyle E   S   C   A   P   E           F   1           F   2           F   3           F   4           F   5           F   6           F   7           F   8           F   9           F   1   0       F   1   1       F   1   2       P   R   I   N   T       S   C   R   O   L   L   O   C   K       P   A   U   S   E       B   R   E   A   K       B   A   C   K   S   P   A   C   E       T   A   B       R   E   T   U   R   N           C   A   P   S   L   O   C   K           S   H   I   F   T   L   O   C   K       D   E   L   E   T   E           L   E   F   T           R   I   G   H   T       U   P           D   O   W   N           H   O   M   E           E   N   D       t   y   p   e           K   E   Y       v   a   l   u   e       C   H   A   R           
       n   a   m   e           R   E   P   A   I   N   T       i   d           x       y       w   i   d   t   h       h   e   i   g   h   t           K   E   Y   B   O   A   R   D           s   h   i   f   t       c   t   r   l           a   l   t       c   o   m   m   a   n   d       M   O   U   S   E       a   c   t   i   o   n           M   O   V   E           b   u   t   t   o   n           B   U   T   T   O   N   _   D   O   W   N       B   U   T   T   O   N   _   U   P       N   O   T   I   F   Y           A   C   T   I   V   A   T   E           C   O   N   T   E   X   T   M   E   N   U       W   I   N   D   O   W           I   N   A   C   T   I   V   E           O   N   C   L   O   S   E       basic_string::substr    %s: __pos (which is %zu) > this->size() (which is %zu)  basic_string::erase     {       }   ,           ,       [       ]   ,           "       :               \   "           \   /           \   b           \   f           \   n           \   r           \   t           \   \           "   ,           vector::_M_default_append       ;4  e   €HÿÿÈ  HIÿÿ8  ˜Jÿÿh   Jÿÿ€  àJÿÿÀ  0Lÿÿø  ¨Nÿÿ@  (Qÿÿˆ  HRÿÿÈ  ¨Rÿÿà  Sÿÿø  ˆSÿÿ  Tÿÿ8  hTÿÿP  ÈTÿÿh  Uÿÿ   ÈVÿÿð  ¸Wÿÿ0  è[ÿÿ€  ¨]ÿÿ¸  `^ÿÿð  Ð^ÿÿ   8_ÿÿP  X_ÿÿh  à_ÿÿ   8`ÿÿØ  h`ÿÿ  ˜`ÿÿ8  Àaÿÿˆ  èaÿÿ°  bÿÿø  8cÿÿ0	  àcÿÿh	  ˆdÿÿ°	  peÿÿð	  Èfÿÿ8
  øfÿÿh
  (gÿÿ˜
  ˜gÿÿÀ
  Phÿÿð
  Àhÿÿ   øhÿÿP   iÿÿh  iÿÿ€  (kÿÿÀ   kÿÿð  èmÿÿ@  h{ÿÿ  ˆ{ÿÿ¨   {ÿÿ   @|ÿÿ8  ˆÿÿÈ  ‚ÿÿð  †ÿÿ€  ‡ÿÿè  À‡ÿÿ  ˆÿÿ   ¸ÿÿÀ  Ø¸ÿÿ   ˆ¹ÿÿH  Ø¹ÿÿ€   »ÿÿØ  ¸½ÿÿP  Ð½ÿÿh  è½ÿÿ€   ¾ÿÿ˜  ¾ÿÿ°  8¾ÿÿÀ   ¿ÿÿˆ  Àÿÿ@  ðÀÿÿ¨  ØÁÿÿH   Ãÿÿ  hÃÿÿ¸  °ÄÿÿX  øÄÿÿ€  àÅÿÿ¨  ðÅÿÿÀ  HÆÿÿð  ˜Çÿÿ(  ðÇÿÿX  @Éÿÿ  ÊÿÿÈ  `Îÿÿ  pÎÿÿ0  `Ïÿÿh  XÑÿÿà  ×ÿÿ8  ¸Üÿÿ  hâÿÿè  èÿÿ@  Èíÿÿ¸   îÿÿ˜  €îÿÿÀ  ˜îÿÿØ  ¨îÿÿð  °îÿÿ  ¸îÿÿ   Àîÿÿ8  €ïÿÿP  Àôÿÿ¨             zR x           `ºÿÿ              4   `ºÿÿ              L   `ºÿÿ              d   `ºÿÿ              |   `ºÿÿ           ,   ”   °DÿÿÄ    A@žAA“”B•kÞÝÕÓÔ     D   Ä   0Hÿÿx   AP
ž	AA“”B—˜C•–m
ÞÝ×ØÕÖÓÔ A]
ÔÓÖÕØ×ÝÞ AD     `Jÿÿ€   AP
ž	AA“”B—˜C•–n
ÞÝ×ØÕÖÓÔ B]
ÔÓÖÕØ×ÝÞ A<   T  ˜Lÿÿ   A0žAA•–B“”W
ÞÝÕÖÓÔ Af
ÞÝÕÖÓÔ A    ”  xMÿÿ`              ¬  ÀMÿÿ`              Ä  Nÿÿ€    \žC        ä  hNÿÿ€    \žC          ÈNÿÿ`                Oÿÿ`              4  XOÿÿP                  zPLR x›#      L   $   pOÿÿ¬  ;  A°žAA•–B“”D›œ—˜B™šS
ÞÝÛÜÙÚ×ØÕÖÓÔ A     <   ¼  ÐPÿÿð    A0žAA•B“”W
ÞÝÕÓÔ AY
ÞÝÕÓÔ B     L   ü  €Qÿÿ(   A`žAA“
”	B•–B—˜q
ÞÝ×ØÕÖÓÔ B„
ÔÓÖÕØ×ÝÞ B       4   L  `UÿÿÀ   ApžCA“”D•
–	—p
ÞÝ×ÕÖÓÔ A   4   „  èVÿÿ¸    AÐžAA•–D—˜“”fÞÝ×ØÕÖÓÔ   ,   ¼  hWÿÿp    A0žAB“”•WÞÝÕÓÔ      ,   ì  ¨Wÿÿd    A`žAB“
”	•TÞÝÕÓÔ           àWÿÿ            4   ì  èWÿÿ„   †  A`žAA“
”	B•T
ÞÝÕÓÔ A     4   l  8XÿÿT    A žAA“”M
ÞÝÓÔ BBÞÝÓÔ      ,   ¤  XXÿÿ0    AžAE
ÞÝ CAÞÝ       ,   Ô  XXÿÿ0    AžAE
ÞÝ CAÞÝ       L     XXÿÿ(   A`žAA•–D“
”	—˜B™šu
ÞÝÙÚ×ØÕÖÓÔ BIÔÓÖÕØ×ÚÙÝÞ    $   T  0Yÿÿ(    A žAA“FÞÝÓ    D   |  0Yÿÿ¤    A@žAA•–D—˜“”\
ÞÝ×ØÕÖÓÔ ADÞÝ×ØÕÖÓÔ     4   Ä  Yÿÿ¨    APAžA@A•–D—˜“”aÞÝ×ØÕÖÓÔ  4   ü   Zÿÿ¨    APAžA@A•–D—˜“”aÞÝ×ØÕÖÓÔ  D   4  pZÿÿ¤    A@žAA•–D—˜“”\
ÞÝ×ØÕÖÓÔ ADÞÝ×ØÕÖÓÔ     <   |  ÐZÿÿä    A0žAA•–B“”W
ÞÝÕÖÓÔ AW
ÞÝÕÖÓÔ B D   ¼  x[ÿÿT   A€žAA“”F™š•–—
˜	›œKÞÝÛÜÙÚ×ØÕÖÓÔ      ,     ˆ\ÿÿ,    AžBD
ÞÝ ABÝÞ       ,   4  ˆ\ÿÿ,    AžBD
ÞÝ ABÝÞ       $   d  ˆ\ÿÿp    APCžA@D“RÞÝÓ  ,   Œ  Ð\ÿÿ´    AðžAA“”B•–gÞÝÕÖÓÔ ,   ¼  X]ÿÿp    A@žAA“”B•–VÞÝÕÖÓÔ  ,   ì  ˜]ÿÿ8    AžAE
ÞÝ EAÞÝ             ]ÿÿ              4  ]ÿÿ           <     €]ÿÿ    AÀ(ž'AA•$–#C“&”%—"˜!a
ÞÝ×ØÕÖÓÔ A  ,   D  `_ÿÿx   M  A@žAA“”ZÞÝÓÔ     L   t  ¨_ÿÿH  %  AÀžAA—˜C“”B™šE•–B›œ\
ÞÝÛÜÙÚ×ØÕÖÓÔ A    L   Ä   aÿÿ|  è  AÐ:ž9AA“8”7D•6–5—4˜3D™2š1›0
ÞÝÛÙÚ×ØÕÖÓÔ A          \	  Ðnÿÿ              t	  Ønÿÿ           <   Œ	  p±ÿÿä    A@žAA“”C—˜C•–^
ÞÝ×ØÕÖÓÔ A       4   Ì	  ˜nÿÿœ    A@žAA•–C“”[
ÞÝÕÖÓÔ A      L   
   oÿÿH   AÀA4ž3A A•0–/B™,š+D“2”1D—.˜-B›*œ)Æ
ÞÝÛÜÙÚ×ØÕÖÓÔ B    <   T
  ±ÿÿä    A@žAA“”C—˜C•–^
ÞÝ×ØÕÖÓÔ A       $   ”
  ¸sÿÿŒ    A0žAA“Y
ÞÝÓ BL   t   tÿÿ\  «
  AÐA DžCAB“B”A•@–?B—>˜=C™<š;Ê
ÞÝÙÚ×ØÕÖÓÔÐA A   <     À±ÿÿä    A@žAA“”C—˜C•–^
ÞÝ×ØÕÖÓÔ A       $   L  xÿÿ|    A0žAA“U
ÞÝÓ B<   t  @²ÿÿä    A@žAA“”C—˜C•–^
ÞÝ×ØÕÖÓÔ A       ,   l	   xÿÿ°   Á	  A0žAA“”[
ÞÝÓÔ B ,   ä   xÿÿT    A0žAA“”B•OÞÝÕÓÔ     D     ˆ²ÿÿH   B`žAA“
”	B—˜D•–™š›œFÞÝÛÜÙÚ×ØÕÖÓÔ      $   \  ˆ³ÿÿD    A žAA“”MÞÝÓÔ D   „  ¨³ÿÿH   B`žAA“
”	B—˜D•–™š›œFÞÝÛÜÙÚ×ØÕÖÓÔ      T   „
  xÿÿè/  »  A°BBžAAA›8œ7C“@”?—<˜;E•>–=™:š9,
ÞÝÛÜÙÚ×ØÕÖÓÔ°A B    $   $  P´ÿÿD    A žAA“”MÞÝÓÔ <   L  p´ÿÿä    A@žAA“”C—˜C•–^
ÞÝ×ØÕÖÓÔ A       <   D  H§ÿÿÄ   
  AP
ž	AA“”C•–—c
ÞÝ×ÕÖÓÔ A       D   „  Ð§ÿÿ¬   N
  A@žBA“”I
ÞÝÓÔ AQ
ÔÓÝÞ AC
ÔÓÝÞ A   4     8¨ÿÿL    A žAA“”I
ÞÝÓÔ BDÞÝÓÔ      T     P¨ÿÿD  à	  ApžBA“”C•
–	—k
ÞÝ×ÕÖÓÔ BL
ÔÓÖÕ×ÝÞ AH
ÔÓÖÕ×ÝÞ A   \   \  @©ÿÿ˜  š	  A°žAA•–B›œD“”™šC—˜v
ÞÝÛÜÙÚ×ØÕÖÓÔ BI
ÔÓÖÕØ×ÚÙÜÛÝÞ A ,     7ÿÿL   A žAA“”OÞÝÓÔ           4  (8ÿÿ           $   L  8ÿÿ<    A žAA“IÞÝÓ       t  0³ÿÿ           ,   Œ  (³ÿÿX    A žAA“”O
ÞÝÓÔ A     4   t  P³ÿÿL  —  AP
ž	AD“”•m
ÞÝÕÓÔ A      ,   ô  h´ÿÿX    A žAA“”O
ÞÝÓÔ A     4   Ü  ´ÿÿL  B  AP
ž	AD“”•m
ÞÝÕÓÔ A      4   \  ¨µÿÿÈ    A0žAA“”E•–f
ÞÝÕÖÓÔ A      L   L  8¶ÿÿT  å  AžAA“”B—˜F•–™
š	›œ‡
ÞÝÛÜÙÚ×ØÕÖÓÔ B        ä  @ºÿÿ           4   ´  8ºÿÿð   ­  EP
ž	CA“”B•b
ÞÝÕÓÔ A     L   ì  ðºÿÿô  ‡  AP
ž	AA“”C•–Z
ÞÝÕÖÓÔ BR
ÔÓÖÕÝÞ Bu
ÔÓÖÕÝÞ A$   „  ÙÿÿT    A žCA“OÞÝÓ    T   d  p¼ÿÿ°  "  A€AàLžKAA“J”IC•H–GD—F˜E™DšC›BœAÇ
ÞÝÛÜÙÚ×ØÕÖÓÔ€A A     T   ¼  ÈÁÿÿ°    A€AàLžKAA“J”IC•H–GD—F˜E™DšC›BœAÇ
ÞÝÛÜÙÚ×ØÕÖÓÔ€A A     T      Çÿÿ°    A€AàLžKAA“J”IC•H–GD—F˜E™DšC›BœAÇ
ÞÝÛÜÙÚ×ØÕÖÓÔ€A A     T   l  xÌÿÿ°    A€AàLžKAA“J”IC•H–GD—F˜E™DšC›BœAÇ
ÞÝÛÜÙÚ×ØÕÖÓÔ€A A     T   Ä  ÐÑÿÿ°    A€AàLžKAA“J”IC•H–GD—F˜E™DšC›BœAÇ
ÞÝÛÜÙÚ×ØÕÖÓÔ€A A     $   d  €×ÿÿ`    A žCA“QÞÝÓ       Œ  ¸×ÿÿ              ¤  ¸×ÿÿ              ¼  °×ÿÿ              Ô   ×ÿÿ              ì  ×ÿÿ                €×ÿÿÀ           T   Ô  (Øÿÿ<  Q  A B€PžOAA—J˜ID“N”M•L–KD™HšG›FœEi
ÞÝÛÜÙÚ×ØÕÖÓÔ A A        t  Ýÿÿ           $   Œ  3ÿÿ<    A žAA“IÞÝÓ        ÿÿ,  8Ô ¨  ÿÿ   ,h €  ÿÿ
”  €  ÿÿ$  ÿÿD(  t¬¬ Ä  ÿÿoP  à4¼ øì ¬´ Ì	´  
  è„ üÈ Œì Ä´ üô Ì|¼ ø  ´Ì ”,¼ ÌÈ „¼ ¼Ä ôÀ¼ ÿÿ
0À  Ø  ÿÿ  8˜ Œ$  ÿÿÿPð	  ÄÐ] ÀÔ] ¬à] ˜Ø] €Ü] èÈ] ˆ  ¤Ì] ìD  ´ü^ ´À_ Ô  ´Œ^  ä_ ˆˆ^ ðü]   ¬ _ ÌH  ´„_ ð€_ ø¬^ ä´_ Ð¸^ ´Ä_ ä  €È_ Œ0  Ð ä] Œ"ø] ”#Ü_ €$Ä] ì$à_ Ð%ð] €&  œ&ô] ¬&0  ð'¤_ ¬)¨_ ´*œ_  +˜_ Œ,^ ð,_  -  ¼-”^ Ø-<  ¤/ð^ à0ì^ à1è^ €2  œ2ä^ ¬20  ì3à^ ¨5Ü^ ¨6Ø^ È6  ä6Ô^ ô6t  ô7Ð^ „8Ä^ ¸8  È8À^ Ø8È^ Œ9  œ9¼^ ¼9  Ø9Ì^ ð9  ¬:”_ è:„  Œ>¨^ È>´  Œ@À] È@  €A¼] ¼AÄ  ´E¸] ðE  ¨F´] äFô  ŒI°] ÈI  €J¬] ¼J¨  ðOðZ €PÈZ ´P  ÄPÄZ ÔPèZ ˆQ  ˜Q Z ¸Q  ÔQìZ üQœZ °R  äR˜Z ˜S8  €T”Z ´T  èTôY °Vì  ¨[¨] ¸[¤] ì[  ü[ ] Œ\œ] À\  Ð\”] ð\  Œ]˜] ¤^  ÿÿ€¨ À  ÿÿ $  P ¨  ÿÿ   l ¨ ä`  ÿÿ0D  ´Øü  ø  ÿÿL  l¨ ¼  ÿÿL  l¨ ¼  ÿÿ,D  €Ð È  à¨ü ¬  øü œ  ´ü ÿÿX  |Ì È(  ÿÿDT   È Ä(  ÿÿOH  ˆð
 øÐ
 ì øÈ
 Ä0ì	 ø¬ ÀÈ
 Ô  œ<ì	 È	ì	 ”
  Ä
È
 ì
  ÿÿOH  ˆð
 øÐ
 ì øÈ
 Ä0ì	 ø¬ ÀÈ
 Ô  œ<ì	 È	ì	 ”
  Ä
È
 ì
  ÿÿOH  ˆð
 øÐ
 ì øÈ
 Ä0ì	 ø¬ ÀÈ
 Ô  œ<ì	 È	ì	 ”
  Ä
È
 ì
  ÿÿOH  ˆð
 øÐ
 ì øÈ
 Ä0ì	 ø¬ ÀÈ
 Ô  œ<ì	 È	ì	 ”
  Ä
È
 ì
  ÿÿOH  ˆð
 øÐ
 ì øÈ
 Ä0ì	 ø¬ ÀÈ
 Ô  œ<ì	 È	ì	 ”
  Ä
È
 ì
  ÿÿ1°ð	 Ð¸
 Ü,
 ¤Ü	 ìÌÜ	 ð
 ÌÜ	 ì	$                                                                                                                                                                                                                                                           0i      ˆf      àg       h      èh                                                            '             6             @             N             ÐY                          <                           @<                   õþÿo    ð             X"             °      
       õ                           è?            ˆ                           HH             PC             ø      	              þÿÿo     B      ÿÿÿo           ðÿÿo    N@      ùÿÿo                                                                                           P<                                                                                                                                                                                                                                                                                                                                                                                                             ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ðY      ØE             GCC: (Debian 6.3.0-18+deb9u1) 6.3.0 20170516  .shstrtab .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame .gcc_except_table .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss .comment                                                                                     È      È      $                                 öÿÿo       ð      ð      ¼                            (             °      °      ¨                          0             X"      X"      õ                             8   ÿÿÿo       N@      N@      N                           E   þÿÿo        B       B      °                            T             PC      PC      ø                           ^      B       HH      HH      ˆ                          h             ÐY      ÐY                                    c             ðY      ðY      Ð                            n             Àe      Àe      D¬                             t                                                     z                       (                             ‚             @     @     4                                          x      x      ´                             š             ,5     ,5     û                             ¬              <      <                                   ¸             @<     @<                                  Ä             H<     H<                                   É             P<     P<                                 Ò             p>     p>     x                            ×             è?     è?     ð                            à             ØE     ØE                                   æ             èE     èE     ø                             ë      0               èE     -                                                   F     ô                                                                              dwaggdi_armhf_v1.so                                                                                 0000644 0001750 0001750 00000156466 15031427006 014120  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ELF          (    pY  4   üÖ    4    (     p4Î  4Î  4Î  P  P                       ˆÐ  ˆÐ      €     ˆÐ  ˆP ˆP 0  `      €      Ð   P  P              ô   ô   ô   $   $         Qåtd                                   GNU  2G!~Gˆ…Ø!Xkf'  >  Þ   0   ¤         J      ¿   í       Ä   ³   ™   2  »   8   ]   .         
         _   j   ‘   6   Ú               ×   c   ¥   ä                 Ü   5   ª   7          à       #  «   ï   H                    ”   ¬                     ÿ   z                 l   …     ‰       y           ó       ü   –               ã   ,       ¾   ô           3      &  p       *  ,              F   ?   ç      a           Ž   °       w       |   }           Ì   ‚       .             º   !              Š   '      e   Ñ   §   ù       ’   g          8  £   +  š   Â   †   3       6  Ý           \   !       „   "   Á           I   "                 ±   (   ¶   &   Ÿ      ®   $   K      R   k   Î             m   s       S   µ   ©       4  Ò          ˆ     =      >   t   :   ¯       ¢   v      á   ¦   ¡       M   å   -      æ   V                   ñ   ›   W   ž           5                   ¹   f   2   [   ²              A   +   9   ¨   G   €   Û       )           —   -     õ   ý           “       Ó                                                                                                  ö                                                Ù               	                   è                                                  ­         Ð                                                      *               (  L                  :            =   '   U   Ø     Ç      ß   Y   Q       %                ´            n           q       ;              ò                       P   u                   ½   ¸                  þ           T   Ê   D       ¼   ‡   â   Z      î           é      Ï   r       %         Œ          ƒ   4   ø   #     ˜   ë                  ú   `               Ô   ÷   1  Õ      ð                   b             Ö       d   Æ   ~           1   /                  ì           Í           X       @                               ^           h              
   À       È   C                 œ   ;   Ã        Ë                  B      i     	                                 0                  N   ê   E   9                              /  Å       û           {                   )      7           <  <         o   É      ‹   O                   ·   •               x                   $  ƒ   ­       
    R Sh D äQ L€@ € P™ ÁD „€ ¤	 ¨€X(€	‚lª×ËS¤X7J  4d*„$h	  F@  Ð	žFÄ ¢“ „	‰$   I|@ˆ@ Æh@	   „à­   ¯   ±   ²   ´                   µ   ¶   ·   ¸   º   »       ¼               ½   À   Á   Ã       Å   Æ   Ç       Ë   Í   Ï       Ð       Ó       Ô   Õ   Ö   ×   Ø       Ù                   Û       ß   à   ã       å       è   ê       ë   ì   î   ï   ð   ñ       ò   ô       ö           ú       û   ý       ÿ                                   	                                           #  $  %          (  +  .  /  0      1  2      3  5          6      9  ;  <      =  ê8* k3ô@°-€7ÎÛØ—Ò¦ìøð-ˆ=¯ÇüB™¥VÄKË…Y}ºKÐjïeÃ¹ñÓKFÏyÈ`6—Øñ§–âü®°ÅFØÒ±c¯=²FïK	wË„ º)A]#Ë Rk)tVküd¹rpTsÚÌ"á‡2"ZÀÄèÍ¨†ñUî‚ “ðˆ0$6L®yY IÉC©²×…ì¢Y·T3÷T¸k‘«xá“]ÖÖ¦ìq
Ð>òÿþk`ÄÄó§Ü«§—ñ-†ÚÆR+À”5+fï¾¾KÐûúä:xY "bã·PFÏÜ=â›5ØFÏ©y|ª*¡Ò©÷`ÇåáÝñÉF«.æ“˜h­ÙqXØ"!™_,vT<”ŒÍ)Dý_zò£	ª‰‡KvÕðˆô™ðˆã’ñ¦à?vºŸLSö 	È›GÍ7‰Gvÿ§²¹}dMåâ÷áö6£Å½¯õQü«æà«Ì=èÌçÇ7»ã’|»å Õü˜¯†ëaÕþÂKÐYï—yëÓï3ªÒ=Üæje ¯4èuÜFÏ[CEÕìd’s*•ûË»²}Öa8ý‚îÄŸ-î‚nÎÈÕØ¶Yl°H/Û)é%Q&'ZÍ)’ÉÅœ¯[`NØØ¬ÝXè•ÉÅœ¤Q®×–ÉÅœkš|¿ÚWßÆî5žðˆÃ­ê)l7NƒC3Da„£3M0¨‘BŒ›@£ÉÅœ:À`ïyÉ•ì¢w5!SìÌç                    ŒO       
     œP       Ï             S             ç             Ê             !             ]                          (
             ª             &             ®                          B             ÿ                            a               c             A             à             0             Í             	             P                          °             ‚             q             Í             ô             z              \	             E             ´             Ñ             Ë                                       }             C             ,             È             â             A             Ü             ó
             ¡                            “                            ¥             ~
             	             M             <             ƒ             µ             õ             þ             6             8                             Ö             q             5             ï             R                           H             t             3             û
             Ž	                          Å             ¥             §             Û             ô
             ‰             ê             
             Ç          ¡   q             ‹             æ             Ü             ª             ^              '             m
             R             ~             Ò             Ú             ›             Õ             ò             U                          ´             _             Ë             ä             Ä             x             ñ             ñ                          æ                           µ             ‰             Ù             ¼
             R             Û             Å             Ô             ¬             «             (             Ø             B             8              …             ’                                        ³             €             W             ä             š             ì             /              3             ¢             W                           9             ‚             $             €             Ü             ‰             ¿             ÿ             v             X             ,             œ             ¼             È                          —             „             ù             l             =              ¯             ¢             ¤             =             ú             ×             W             á             R           "   ò             d             t  ‘„       #    h       ±€  h     G  é~  4     ß  ±·     "  ß  i–  &     ã  I²     "  P  Á¶  î   "  ­  ÜV        1y  D       Õw  `   "  å  É…  h       O       
   qa       7  e„  (     §  Í’  \     ·  	~  H     Ï  µ²     "  ¾  =€       ë  (V        „  T     _  %z  D     ×  áz  ò     ª  ´V      Í  M€  d     ÿ  ‘¯      þ   m\       '  ÐV      ä  ÔV      ã   a\       F  Ž  h     ’  ¼V      Ž  Eƒ         ùº  Ø   "  Î   M\       6  u\       ¸  ,V      ÷  µƒ  \       ]´  Ì   "  ã  ±¸     "    uy  X     a  mŽ  `    Ò  –  h     Í  U…  t     ³  ±·     "  u  )µ  Ì   "  Í  eƒ  P     i  ±•  P     ƒ  ab        k  )²     "  i  ©a  ¸     f  Ñ»  \  "    Á·  î   "  £  iz  D     »	  yw  \   "  K   !±  ˜     A  ÄV      {  A`  0  "  ³  qa         ‰a        ‡  i²  <   "  ò  ÈV      S  y\  x     ¹  Uƒ       ï  õµ  Ì   "  ¶  µ²     "  ‹  -t  L    ô  íx  D      !  ¸U      ñÿ¿  ­z  4     Ñ  ìU      !  ¸U      ñÿP  Y²     "  -  ÌV      ›  9x  ´     	  }f        è  Å²  Ì   "  ¹   M\       Ž  ¥²     "  5  àU        E  (     t  àV      D  Íy  X     Ü  ØV      ò  ñe  Œ     ]  „       p  ÔU      •   ²          1‡  ¬    0  ¸V      á  ­  t      ~       G  )²     "    i|  (    ¹  9²     "  Ÿ  í       .!  èV      ñÿÚ  áe         I²     "  s  ]‚  è     '	  yw  \   "  &!  èV      ñÿ   5½        4  ©~  >       c  T    !  èV      ñÿs  i²  <   "    ñ\  L    ù   ¸U      ñÿµ  ÈU      º  )“  ˆ    b  ‘}  x     Æ  V      Ÿ  ÀV      p   ¹±  L     i    (     œ  m  Ð     &  ™¹  ^  "  ‹  •„  À     >    d     -  Y²     "  9  ij  L    ™  =`       w  ñ–  ,    ¡  b  ¸     ð	  g  L    €  Ý         áp  L    u   ÙY       !  èV      ñÿ¼  9c  T     y  ¥²     "  ø  Õ{  ”     Q  Á¸  Ø   "    äV      å  Q~  <     »  øU      =  ‘–  ^     a  å  x     Ÿ  µm  ,    D  ‘³  Ì   "  ±  4V €       ±¸     "    q\         9²     "   __gmon_start__ _init _fini _ITM_deregisterTMCloneTable _ITM_registerTMCloneTable __cxa_finalize _Jv_RegisterClasses main _ZNSt8ios_base4InitC1Ev __aeabi_atexit _ZNSt8ios_base4InitD1Ev _ZN11ImageReaderC2Ev _ZN11ImageReaderC1Ev _ZN11ImageReader7destroyEv _ZN11ImageReader8isLoadedEv _ZN11ImageReader8getWidthEv _ZN11ImageReader9getHeightEv _ZN11ImageReader8getPixelEjjPhS0_S0_S0_ _ZNSt6vectorIhSaIhEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPhS1_EEjRKh memset _Znwj memmove _ZdlPv _ZSt20__throw_length_errorPKc __aeabi_unwind_cpp_pr0 _ZN11ImageReader7readBMPEPKw wcstombs _ZNSt8ios_baseC2Ev _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate _ZNSi4readEPci _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv _ZNSt12__basic_fileIcED1Ev _ZNSt6localeD1Ev _ZNSt8ios_baseD2Ev _ZNSi5seekgExSt12_Ios_Seekdir _ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev __cxa_end_cleanup _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev _ZNSt9basic_iosIcSt11char_traitsIcEED2Ev _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt13basic_filebufIcSt11char_traitsIcEE _ZTVSt15basic_streambufIcSt11char_traitsIcEE __gxx_personality_v0 _ZN11ImageReader4loadEPKw _ZN10JSONWriterC2Ev _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE _ZN10JSONWriterC1Ev _ZN10JSONWriter11beginObjectEv wcslen _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj _ZN10JSONWriter9endObjectEv _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj _ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_ _ZSt20__throw_out_of_rangePKc _ZNSbIwSt11char_traitsIwESaIwEED1Ev _ZN10JSONWriter10beginArrayEv _ZN10JSONWriter8endArrayEv _ZN10JSONWriter7addPropESbIwSt11char_traitsIwESaIwEE _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_ _ZN10JSONWriter9addStringESbIwSt11char_traitsIwESaIwEES3_ _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_ _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv _ZN10JSONWriter5clearEv _ZN10JSONWriter6lengthEv _ZN10JSONWriter9getStringEv _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED2Ev _ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE _ZTVSt15basic_streambufIwSt11char_traitsIwEE _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEl _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E _ZNSt6localeC1Ev _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_ _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_ wmemcpy _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_ _ZSt19__throw_logic_errorPKc _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev _ZNSt9basic_iosIwSt11char_traitsIwEED2Ev _ZTVSt9basic_iosIwSt11char_traitsIwEE _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEi _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEy _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_ _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEm _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_ _ZN10JSONWriter10addBooleanESbIwSt11char_traitsIwESaIwEEb _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_ _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev pthread_cancel _ZNSt6vectorIP8DWAImageSaIS1_EED2Ev _ZNSt6vectorIP8DWAImageSaIS1_EED1Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED2Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED1Ev _ZNSt6vectorIP9DWAWindowSaIS1_EED2Ev _ZNSt6vectorIP9DWAWindowSaIS1_EED1Ev _ZNSt6vectorIP7DWAFontSaIS1_EED2Ev _ZNSt6vectorIP7DWAFontSaIS1_EED1Ev _ZN10JSONWriterD2Ev _ZN10JSONWriterD1Ev _Z20removeWindowByHandlem XftDrawDestroy XftColorFree windowList display visual colormap _Z17getWindowByHandlem _Z13getWindowByIDi _Z17getNotifyIconByIDi notifyIconList _Z21getNotifyIconByHandlem _Z11getFontByIDi fontList _ZN11ImageReaderD2Ev _ZN11ImageReaderD1Ev _Z12getImageByIDi imageList _Z17ChooseBetterStylemm _Z16addImageToBufferPwRPm malloc DWAGDIUnloadFont XFreeFontSet _Z13loadFontType0P7DWAFontPw XCreateFontSet XFreeStringList XFontsOfFontSet DWAGDIPosSizeWindow XFreePixmap XGetWindowAttributes XCreatePixmap XMoveResizeWindow DWAGDIDestroyWindow XDestroyIC XDestroyWindow DWAGDISetTitle XwcTextListToTextProperty XSetWMName DWAGDIGetScreenSize screen DWAGDIGetImageSize DWAGDIShow XMapWindow XMoveWindow DWAGDIHide XUnmapWindow DWAGDIToFront XRaiseWindow DWAGDIPenColor XftColorAllocValue DWAGDIPenWidth DWAGDIDrawLine XSetLineAttributes XSetForeground XDrawLine DWAGDIDrawEllipse XDrawArc DWAGDIFillEllipse XFillArc DWAGDIFillRectangle XFillRectangle DWAGDIUnloadImage DWAGDIDrawImage XDrawPoint _Z13getFontAscentii __aeabi_unwind_cpp_pr1 DWAGDIGetTextHeight DWAGDIGetMousePosition XQueryPointer root DWAGDIRepaint XSendEvent DWAGDIClipRectangle XSetClipRectangles DWAGDIClearClipRectangle XSetClipMask DWAGDISetClipboardText DWAGDIGetClipboardText DWAGDIUpdateNotifyIcon _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_ DWAGDIDestroyNotifyIcon _Z10drawNotifyP13DWANotifyIconii _Z13detectKeyTypeP9DWAWindowP7_XEvent XwcLookupString free _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw realloc jonextevent _Z17detectMouseButtonP7_XEvent DWAGDIEndLoop exitloop _ZNSt6vectorIjSaIjEED2Ev _ZNSt6vectorIjSaIjEED1Ev _ZNSt6vectorIP9DWAWindowSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z9addWindowimP4_XGCP4_XIC DWAGDINewWindow XWhitePixel XCreateWindow XSetWMProtocols XCreateGC wcpcpy wcstok XInternAtom XChangeProperty XCreateIC XGetICValues XSetICFocus XSelectInput XAllocSizeHints XSetWMNormalHints XFree screenid wm_delete_window im _ZNSt6vectorIP13DWANotifyIconSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z13addNotifyIconi DWAGDICreateNotifyIcon XMatchVisualInfo XCreateColormap sprintf XGetSelectionOwner _ZNSt6vectorIP7DWAFontSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z7addFonti _ZNSt6vectorIP8DWAImageSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z8addImagei DWAGDILoadImage _ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj _Z11wcharToUcs4PKw _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED2Ev _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED1Ev _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E DWAGDILoop getenv setlocale XOpenDisplay XSetLocaleModifiers XScreenOfDisplay XOpenIM XGetIMValues select XPending XNextEvent XCopyArea XRefreshKeyboardMapping XSetInputFocus XftFontClose _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base XFreeColormap XCloseDisplay g_callEventMessage wm_protocols best_style x11_fd in_fds tv hashToFont charToFontHash fwrite stderr _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED2Ev _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED1Ev _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE16_M_insert_uniqueERKS4_ _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_ _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE16_M_insert_uniqueERKS2_ _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS2_ERKS2_ _Z17findXtfFontbyCharji FcPatternCreate FcPatternAddString FcPatternAddInteger FcPatternAddDouble FcCharSetCreate FcCharSetAddChar FcPatternAddCharSet FcPatternAddBool FcConfigSubstitute FcDefaultSubstitute FcFontMatch FcPatternHash FcPatternDestroy FcCharSetDestroy XftFontOpenPattern DWAGDIDrawText XftDrawString32 XftTextExtents32 XwcDrawString XftDrawCreate DWAGDIGetTextWidth XwcTextEscapement _Z13loadFontType1P7DWAFontPw XftInit DWAGDILoadFont libX11.so.6 libXpm.so.4 libXft.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 _edata __bss_start __bss_start__ __bss_end__ __end__ _end GLIBC_2.4 GCC_3.5 CXXABI_ARM_1.3.3 GLIBCXX_3.4.9 CXXABI_1.3 GLIBCXX_3.4                                                                                                                                                                                                                                                                                                                                                                                                                           ï          ii   3!        á          U&y   =!        È          £¯I   E!     ‰)   V!     Ó¯k   d!     t)’   o!      ˆP    ŒP    P    ”P    ˜P    ´U    ôT  øT 	  üT ö   U   U   U   U  U   U !  U  U 5  U Ñ  $U *  (U 0  ,U 3  0U  4U >  8U ?  <U : @U µ  DU J  HU  LU ±  PU N  TU ê  XU T  \U   `U  dU õ  hU å  lU È  pU Ä  tU ; xU É  |U À  €U x  „U Ì  ˆU ~  ŒU é  U …  ”U þ  ˜U  œU ’   U ü  ¤U ó  ¨U 3 ¬U Þ  °U ª  ÄQ   ÈQ   ÌQ è  ÐQ   ÔQ   ØQ   ÜQ   àQ 6 äQ 
  èQ  ìQ   ðQ   ôQ / øQ   üQ Í   R   R 9 R   R   R   R   R   R    R   $R   (R   ,R   0R   4R   8R   <R    @R Ð  DR ò  HR ÷  LR Ú  PR "  TR #  XR $  \R %  `R &  dR '  hR (  lR )  pR +  tR ,  xR ÿ  |R -  €R 2 „R .  ˆR /  ŒR 1  R  ”R 2  ˜R Ë  œR 4   R  ¤R < ¨R 5  ¬R 6  °R 7  ´R 8  ¸R Ç  ¼R 9  ÀR :  ÄR ;  ÈR <  ÌR =  ÐR @  ÔR A  ØR B  ÜR C  àR D  äR E  èR F  ìR G  ðR H  ôR I  øR K  üR ´   S L  S M  S O  S P  S Q  S R  S S  S U   S ø  $S V  (S W  ,S Â  0S X  4S  8S  <S Õ  @S Y  DS Ã  HS í  LS º  PS Z  TS [  XS \  \S ]  `S ë  dS à  hS ^  lS ×  pS  tS _  xS `  |S Ï  €S ß  „S a  ˆS b  ŒS c  S d  ”S e  ˜S f  œS g   S 
 ¤S h  ¨S i  ¬S j  °S k  ´S l  ¸S m  ¼S n  ÀS o  ÄS p  ÈS q  ÌS r  ÐS & ÔS s  ØS t  ÜS ð  àS á  äS û  èS u  ìS v  ðS Ü  ôS w  øS ¼  üS y   T z  T {  T ¶  T |  T }  T Ê  T ù  T    T €  $T   (T ¾  ,T Ó  0T ‚  4T ƒ  8T „  <T ¸  @T â  DT †  HT ‡  LT ˆ  PT ‰  TT Š  XT ‹  \T Œ  `T   dT Ž  hT   lT   pT ‘  tT + xT “  |T ”  €T •  „T –  ˆT —  ŒT ˜  T æ  ”T ™  ˜T š  œT ›   T ' ¤T œ  ¨T   ¬T ž  °T Ÿ  ´T    ¸T ¡  ¼T Î  ÀT ¢  ÄT ¤  ÈT ¥  ÌT ¦  ÐT §  ÔT ¨  ØT ã  ÜT ©  àT ª  äT «  èT ï  ìT " ðT ¬  µ ðãý ¿½  à-åàŸåààð¾å  ÆâÊŒâò¼å ÆâÊŒâò¼å ÆâÊŒâ ò¼å ÆâÊŒâøñ¼å ÆâÊŒâðñ¼å ÆâÊŒâèñ¼åxGÀF ÆâÊŒâÜñ¼å ÆâÊŒâÔñ¼å ÆâÊŒâÌñ¼å ÆâÊŒâÄñ¼å ÆâÊŒâ¼ñ¼å ÆâÊŒâ´ñ¼å ÆâÊŒâ¬ñ¼å ÆâÊŒâ¤ñ¼å ÆâÊŒâœñ¼å ÆâÊŒâ”ñ¼å ÆâÊŒâŒñ¼åxGÀF ÆâÊŒâ€ñ¼å ÆâÊŒâxñ¼å ÆâÊŒâpñ¼åxGÀF ÆâÊŒâdñ¼å ÆâÊŒâ\ñ¼å ÆâÊŒâTñ¼å ÆâÊŒâLñ¼åxGÀF ÆâÊŒâ@ñ¼åxGÀF ÆâÊŒâ4ñ¼å ÆâÊŒâ,ñ¼å ÆâÊŒâ$ñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâüð¼å ÆâÊŒâôð¼å ÆâÊŒâìð¼å ÆâÊŒâäð¼å ÆâÊŒâÜð¼å ÆâÊŒâÔð¼åxGÀF ÆâÊŒâÈð¼å ÆâÊŒâÀð¼å ÆâÊŒâ¸ð¼å ÆâÊŒâ°ð¼å ÆâÊŒâ¨ð¼å ÆâÊŒâ ð¼å ÆâÊŒâ˜ð¼å ÆâÊŒâð¼å ÆâÊŒâˆð¼å ÆâÊŒâ€ð¼åxGÀF ÆâÊŒâtð¼å ÆâÊŒâlð¼å ÆâÊŒâdð¼å ÆâÊŒâ\ð¼å ÆâÊŒâTð¼å ÆâÊŒâLð¼å ÆâÊŒâDð¼å ÆâÊŒâ<ð¼å ÆâÊŒâ4ð¼å ÆâÊŒâ,ð¼å ÆâÊŒâ$ð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâüÿ¼å ÆâÊŒâôÿ¼å ÆâÊŒâìÿ¼å ÆâÊŒâäÿ¼å ÆâÊŒâÜÿ¼å ÆâÊŒâÔÿ¼å ÆâÊŒâÌÿ¼å ÆâÊŒâÄÿ¼å ÆâÊŒâ¼ÿ¼å ÆâÊŒâ´ÿ¼å ÆâÊŒâ¬ÿ¼åxGÀF ÆâÊŒâ ÿ¼å ÆâÊŒâ˜ÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâˆÿ¼å ÆâÊŒâ€ÿ¼å ÆâÊŒâxÿ¼å ÆâÊŒâpÿ¼å ÆâÊŒâhÿ¼å ÆâÊŒâ`ÿ¼å ÆâÊŒâXÿ¼å ÆâÊŒâPÿ¼å ÆâÊŒâHÿ¼å ÆâÊŒâ@ÿ¼å ÆâÊŒâ8ÿ¼å ÆâÊŒâ0ÿ¼å ÆâÊŒâ(ÿ¼å ÆâÊŒâ ÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâÿ¼åxGÀF ÆâÊŒâÿ¼å ÆâÊŒâüþ¼å ÆâÊŒâôþ¼å ÆâÊŒâìþ¼å ÆâÊŒâäþ¼å ÆâÊŒâÜþ¼å ÆâÊŒâÔþ¼å ÆâÊŒâÌþ¼å ÆâÊŒâÄþ¼å ÆâÊŒâ¼þ¼å ÆâÊŒâ´þ¼å ÆâÊŒâ¬þ¼å ÆâÊŒâ¤þ¼å ÆâÊŒâœþ¼å ÆâÊŒâ”þ¼å ÆâÊŒâŒþ¼å ÆâÊŒâ„þ¼å ÆâÊŒâ|þ¼å ÆâÊŒâtþ¼å ÆâÊŒâlþ¼å ÆâÊŒâdþ¼å ÆâÊŒâ\þ¼å ÆâÊŒâTþ¼å ÆâÊŒâLþ¼å ÆâÊŒâDþ¼å ÆâÊŒâ<þ¼åxGÀF ÆâÊŒâ0þ¼å ÆâÊŒâ(þ¼å ÆâÊŒâ þ¼å ÆâÊŒâþ¼å ÆâÊŒâþ¼å ÆâÊŒâþ¼å ÆâÊŒâ þ¼å ÆâÊŒâøý¼å ÆâÊŒâðý¼å ÆâÊŒâèý¼å ÆâÊŒâàý¼å ÆâÊŒâØý¼å ÆâÊŒâÐý¼å ÆâÊŒâÈý¼å ÆâÊŒâÀý¼å ÆâÊŒâ¸ý¼å ÆâÊŒâ°ý¼å ÆâÊŒâ¨ý¼å ÆâÊŒâ ý¼å ÆâÊŒâ˜ý¼å ÆâÊŒâý¼å ÆâÊŒâˆý¼å ÆâÊŒâ€ý¼å ÆâÊŒâxý¼å ÆâÊŒâpý¼å ÆâÊŒâhý¼å ÆâÊŒâ`ý¼å ÆâÊŒâXý¼å ÆâÊŒâPý¼å ÆâÊŒâHý¼å ÆâÊŒâ@ý¼å ÆâÊŒâ8ý¼åxGÀF ÆâÊŒâ,ý¼å ÆâÊŒâ$ý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâüü¼å ÆâÊŒâôü¼å ÆâÊŒâìü¼å ÆâÊŒâäü¼å ÆâÊŒâÜü¼å ÆâÊŒâÔü¼å ÆâÊŒâÌü¼å ÆâÊŒâÄü¼å ÆâÊŒâ¼ü¼å ÆâÊŒâ´ü¼å ÆâÊŒâ¬ü¼å ÆâÊŒâ¤ü¼å ÆâÊŒâœü¼å ÆâÊŒâ”ü¼å ÆâÊŒâŒü¼å ÆâÊŒâ„ü¼å ÆâÊŒâ|ü¼å ÆâÊŒâtü¼å ÆâÊŒâlü¼å ÆâÊŒâdü¼å ÆâÊŒâ\ü¼å ÆâÊŒâTü¼å ÆâÊŒâLü¼å ÆâÊŒâDü¼å ÆâÊŒâ<ü¼å ÆâÊŒâ4ü¼å ÆâÊŒâ,ü¼å ÆâÊŒâ$ü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâüû¼å ÆâÊŒâôû¼å ÆâÊŒâìû¼å ÆâÊŒâäû¼åxGÀF ÆâÊŒâØû¼å ÆâÊŒâÐû¼å ÆâÊŒâÈû¼å ÆâÊŒâÀû¼å ÆâÊŒâ¸û¼å ÆâÊŒâ°û¼å ÆâÊŒâ¨û¼å ÆâÊŒâ û¼å ÆâÊŒâ˜û¼å ÆâÊŒâû¼å ÆâÊŒâˆû¼å    
JF
IzDRXZ±¿ó_Sè ACè  *øÑ¿ó_pG hB`pG>ø  Ð  
JF
IzDRXZ±¿ó_Sè ACè  *øÑ¿ó_pG hB`pG
ø  Ð    pG8µML}D|D(Fÿ÷žëKJ(FzDáX½è8@ÿ÷u¾ ¿Öû  Ð÷  p  ¾û  8µML}D|D(Fÿ÷„ëKJ(FzDáX½è8@ÿ÷[¾ ¿¦û  œ÷  p  Šû  øµ $1O2MD2N}D8F~Dÿ÷hë0K2F8FéXÿ÷Dî.KïX8Fÿ÷üì,K2F8FéXÿ÷8î*K2FëX\`Fœ`\aÙ`a&KéXÿ÷*î%K2FëX\`Fœ`\aÙ`a!KéXÿ÷î K2FëX`F\`œ`KéXÿ÷îK2FëX`F\`œ`KéXÿ÷îK2FëX`F\`œ`KéXÿ÷üíK2FëX`F\`œ`KéX½èø@ÿ÷ì½tû  d÷  \û  p  Ü  Ô  ¨  ”  d  ¼  ì  <  è  à  `  ¬  T  ô  KJ{D›X±ÿ÷‹ºpGXö  L  J	HzD2xDµ*K{D Ø½J›X +úÐ˜Gøç@ú  <ú  2ö  t  µ
H
KxD
J{DzD›ëÓs[ Ñ½IRX *úÐFG÷ç ¿
ú  ú  ö  |  
JµzD
Kx{Dj¹	J›X#±K{Dhÿ÷šîÿ÷·ÿK"{Dp½Ðù  Êõ  ø  ºù  ®ù  HµxDKh{D±J›X±˜G½è@ÿ÷³¿ ¿tô  Šõ  P   "`B`‚`vÂ`aBapG ¿ #vÃ`aCapG ~pGÀhpG ipGð´~d³ÄhŒB)Ùi•B&Ù=Fiªhõû6ê&(¿.Fõ-ûô>]œ&pÆhhûûDfxœ&pÆhhûûD¤xpÐÿ#+pð¼pGÄhhûë‚Óxšpóç-éðOF  Ó°¯FFÿ÷Zí!FÇNñ(~DÃ‚ #ð­ëñ	HFÿ÷Jíñ¸ ÿ÷é¾J #²XF„ø1Äø 1ú`ñÄø ¹J„ø1Äø1Äø1Äø1Äø1²XÒø€’h:a8iXø,Äø € Pc`Xø ÿ÷Üë¬Kñ0 óXñ"`{a 3Äø0ÿ÷æìñ¸ ñ0ÿ÷Èëñ0 IF"ÿ÷ê#h ( ðÓ€Sø ! ÿ÷¬ìÔø¤0ðÑ F"ñ ÿ÷®ê:ŒDöBSšB8Ðñ0 ÿ÷í ( ð¿€yiñ0 ñ Äø0ŒKñ"`óX3£`ÿ÷~íñh ÿ÷êë‡KñL óX3£`ÿ÷XíùhXø,ñ¸ ñ9iÄø €¡P "Äø0b`ÿ÷Êëõ¢w½F½èð # F “
" #ÿ÷þì F"ñ$ÿ÷bê # F “" #ÿ÷òì Fñ"ÿ÷Vê Fñ"ÿ÷Pê # F “" #ÿ÷Þì Fñ"ÿ÷Bêëh +–Ý*i *“Ýûó "úwji•è ûóÀëÚ3ê#(¿FÚrEhØ<¿ƒk` #zj F “ÿ÷¶ìêh“UÐkiÙ3ê#(¿FÛûûð	8Ð[F3ð	ûÑ*iËë *Ý +/ÝÊF»`Û{`)h FZFIDÿ÷üé ºh  F{hÿ÷Šì+i
ñ
ÙDSEìÜ#+vBçSø AiAðÿ÷Øë)ç#hSø AiAðÿ÷Îë6ç+i +æÝÊF)h FZFIDÿ÷Îé+i
ñ
ÙDšEóÛØç)h FjhRÿ÷ÂéÑç(FÎëñÿ÷>ì‘ç Fÿ÷êÿ÷ìèñ@ ÿ÷ëñ0 ÿ÷RêXø<:iñ Äø €âP #c`ÿ÷Öëÿ÷Öèñ ð˜îÿ÷Ðèæçñ0 ÿ÷æëXø<9iÄø €áP #c`ëçõç¨ô  H  È  €  l  Ø  ÿ÷ô¹-éðCFƒ°FF *WÐGh‚hÒ”BØÁë“ø DEOÒÄë·ë¿;F`Ñ¸ë#Dk`gÑ0FIF"F°½èðCÿ÷}¸h¿ùCŒBdØ§B,¿ù9Âë	Bˆ¿Oðÿ8TÙ@F“ÿ÷ê›Fë	 x"Fÿ÷dè)h¶ë	Ð8FJFÿ÷ìêkh¹DLD³ë	Ð F1FJFÿ÷àê(hLD±þ÷Úïë/`l`«`°½èðƒÈë8FIF"Fÿ÷<èhh h`¸ñ Ñ ëIF0Fl`BF°½èðCÿ÷)¸8FAFÿ÷¸êkh˜ç1FBFÿ÷²êhhèç¸1Fÿ÷¬ê’çˆFF )¬Ð¥çHxDþ÷4ï ¿Ô[  KJ{D›X3`pG ¿@ð     8µFL|D Fÿ÷¦è!FF(F½è8@ÿ÷ »\  h0µFSø<…°$MZšB}D7ØFOðÿ3¨ÿ÷Šê I¨yDÿ÷|ëJFªX=•BÑ[±M}D(Fÿ÷zè)FF Fÿ÷xë°0½"hRø,Q‘BØ F"þ÷üïèçñ “ÿ÷ªû› (ßÜ(F©ÿ÷Ðè›Ùç
HxDþ÷Üï	HxDþ÷Øï¨ÿ÷Šéþ÷®ïúï  r\     Ê[   [  0[  8µFL|D Fÿ÷:è!FF(F½è8@ÿ÷4»V[  h0µFSø<…°$MZšB}D7ØFOðÿ3¨ÿ÷ê I¨yDÿ÷ëJFªX=•BÑ[±M}D(Fÿ÷è)FF Fÿ÷ë°0½"hRø,Q‘BØ F"þ÷ïèçñ “ÿ÷>û› (ßÜ(F©ÿ÷dè›Ùç
HxDþ÷pï	HxDþ÷lï¨ÿ÷éþ÷Bï"ï  š[     [  HZ  XZ  øµFMFN}D~D(Fþ÷Êï)FF Fÿ÷Êê9F Fÿ÷*é(Fþ÷¾ï)FF Fÿ÷¾ê0Fþ÷¶ï1FF F½èø@ÿ÷±º ¿žZ  ŒZ  -éðO‡°‡LF¨ÿ÷Dê˜©|Dþ÷Lî‚K˜ãX ñœB“@ðï€L|D Fþ÷Žï!FF˜ÿ÷Žê3h™¨ñSø’ÿ÷ªé3hSø, *gÐsJ $sIßøÐzDßøÌ‘yDßøÌ¡øDßøÈ±ùD ’úD‘ûD2à	- ð‡€
- ð˜€- ðŠ€Sø, *Û0Fÿ÷è3hÝYšRøRøO‡BØRø (Ý¨9Fÿ÷néš3hRøBø!P¢ñ ™ˆB@ð‹€Sø,4”B ÒSø, *Û0Fþ÷Þï3hSø$P§ -`Ð¾Ù"-=Ð&Ø-ÂÑPFþ÷ïQFF¨ÿ÷ê3h4Sø,”BÞÓ˜©ÿ÷vèCL|D Fþ÷
ï!FF˜ÿ÷ê˜š ñ”BFÑ°½èð/-
Ð\-™ÑHFþ÷ôîIFF¨ÿ÷ôéÕç@Fþ÷ìîAFF¨ÿ÷êéÌç˜þ÷âî™F¨ÿ÷âéÃçXFþ÷ÚîYFF¨ÿ÷Øéºç'M}D(Fþ÷Îî)FF¨ÿ÷Îé¯ç"M}Dóç ˜þ÷Âî ™F¨ÿ÷Âé£ç¨þ÷öïþ÷î8ÿ÷üù (³Ü F©þ÷"ï®ç !Bø|BøBø'lççç8ÿ÷éù (?÷¯ F©þ÷ïç ¿î     $Z  
Z  àY  æY  (Z  Z  Z  vY  ¸X  ºX  h !FRø,þ÷¾ ¿hpµFM‚°Sø<}D¹F°p½ZšBØFOðÿ3¨ÿ÷bèI¨yDÿ÷TéKFëX=B	Ñ#h¾¹Sø8âçHxDþ÷Ôíñ ÿ÷‘ù (ïÜ(FiFþ÷¸îêç¨þ÷|ïþ÷ íSø<Êç¶ë  "X     W  hpµF"N„°Sø<F~D3¹ F)Fÿ÷Æè F°p½ZšB)ØOðÿ3¨ÿ÷èI¨yDÿ÷
éKFóXž>žB
Ñ *âÑ+h F)FSø<;ÿ÷èÝçñ ’ÿ÷Eùš (ìÜ0F©þ÷jîšæçHxDþ÷ví¨þ÷*ïþ÷Ní ¿(ë  ŽW     VV  -éðO¹°€Fßø£	¨‘Fÿ÷zè@F	©úDþ÷„ìÂK	Zø@=¥B@ð@¨
¯þ÷~ì½J #Zø F2“1“øÌ04“5“6“7“·K’ñ’Zø0]h›h“šUø<
•øúPþ÷@ì¯J¨ #Zø`ñ ’¬Jñ
‘Zø ““’ñ“’“““þ÷dî¤K¨©ñZø0’“#“›ñÍø,àþ÷ì8FIFþ÷Bí›ñ  + ð¥€šÝø< “BjÙSE ð™€ºñ  ð°€Êë !ªñ 	Oê«XFþ÷òî»ñF ñyÐFQFZF“þ÷èì›¡E@ðÓ€ñ 		©	“HFþ÷‚í	›£ñ
¢E@ðš€@FIFþ÷¢î›£ñ	¡E@ð„€ßøà‘ùDHFþ÷.íIFF@Fÿ÷,èŸñš 6?
“§Bñ–“@ðƒ€™¨ñ“ÿ÷è™Uø,¨ñ8©Š™
•Bø¸“þ÷„î9°½èðRE0Ðºñ 6ÐÊë !ªñ 	Oê«XFþ÷Šî»ñF ñÐFQFZF“þ÷€ì›¡EbÑñ 		©	“HFþ÷í–çÚø  Éø ‡çÚø  Éø ëçFƒçFéçñ 	©HFþ÷í‡ç *ÆÐAHñ 	xDþ÷˜îHFþ÷öí8Fþ÷úëþ÷ì;Hñ 	xDþ÷Šî	ñ þ÷óÿ (?÷u¯HF©þ÷íoç
ñ þ÷çÿ (?÷_¯PF©þ÷íYçñ þ÷Ûÿ (?÷v¯8F©þ÷ ípçñ þ÷Ïÿ (?÷¹®(F©þ÷ôì³æ "Éø °Éø Cø+ ”ç "Éø °Éø Cø+ $ç8þ÷ˆïUø<8¨™Ã
•Cø¸ñ, þ÷Níþ÷Àëøç¡ç	¨þ÷–íþ÷ºë	¨þ÷í•çúç“ç ¿€ê     ˜  X  @  Œ  \  ÂU  T   T  -éðO¹°€Fßø£	¨‘Fþ÷Ôî@F	©úDþ÷ÞêÂK	Zø@=¥B@ð@¨
¯þ÷Øê½J #Zø F2“1“øÌ04“5“6“7“·K’ñ’Zø0]h›h“šUø<
•øúPþ÷šê¯J¨ #Zø`ñ ’¬Jñ
‘Zø ““’ñ“’“““þ÷¾ì¤K¨©ñZø0’“#“›ñÍø,àþ÷nê8FIFþ÷êê›ñ  + ð¥€šÝø< “BjÙSE ð™€ºñ  ð°€Êë !ªñ 	Oê«XFþ÷Lí»ñF ñyÐFQFZF“þ÷Bë›¡E@ðÓ€ñ 		©	“HFþ÷Üë	›£ñ
¢E@ðš€@FIFþ÷üì›£ñ	¡E@ð„€ßøà‘ùDHFþ÷ˆëIFF@Fþ÷†îŸñš 6?
“§Bñ–“@ðƒ€™¨ñ“þ÷jî™Uø,¨ñ8©Š™
•Bø¸“þ÷Þì9°½èðRE0Ðºñ 6ÐÊë !ªñ 	Oê«XFþ÷äì»ñF ñÐFQFZF“þ÷Úê›¡EbÑñ 		©	“HFþ÷të–çÚø  Éø ‡çÚø  Éø ëçFƒçFéçñ 	©HFþ÷^ë‡ç *ÆÐAHñ 	xDþ÷òìHFþ÷Pì8Fþ÷Têþ÷rê;Hñ 	xDþ÷äì	ñ þ÷Mþ (?÷u¯HF©þ÷rëoç
ñ þ÷Aþ (?÷_¯PF©þ÷fëYçñ þ÷5þ (?÷v¯8F©þ÷Zëpçñ þ÷)þ (?÷¹®(F©þ÷Në³æ "Éø °Éø Cø+ ”ç "Éø °Éø Cø+ $ç8þ÷âíUø<8¨™Ã
•Cø¸ñ, þ÷¨ëþ÷êøç¡ç	¨þ÷ðëþ÷ê	¨þ÷êë•çúç“ç ¿4ç     ˜  X  @  Œ  \  vR  ÐP  ´P  -éðO¹°‚Fßøø²	¨FFþ÷.íPF	©ûDþ÷6é¹K	Ÿ[ø`?·B@ð0¨ñ(	þ÷0é´J #[ø F2“1“øÌ04“5“6“7“®K’ñ’[ø0_h›h“šWø<
—	ë Iø þ÷ðè¥J¨ #[ø€ñ ’¢Jñ
‘[ø ““’ñ“’“““þ÷ëšK¨©ñ[ø0ÍøPà“#š“ñ“þ÷ÄèHF"F+Fþ÷8í›ñ  + ð–€š“BcÙ«B ð‹€ - ð¡€Åë !ª¬Oê«XFþ÷¤ë»ñF ñqÐF)FZF“þ÷šé›´B@ðÁ€¬	©	“ Fþ÷4ê	=µB@ðŒ€PF!Fþ÷Vëœ<´BxÑqL|D Fþ÷äé!FFPFþ÷äìœñ
’ñ <š´B“ñ“wÑ™¨ñ“þ÷Æì™Wø,¨ñ8©Š™
—Bø¸“þ÷<ë9°½èðªB)Ð -/ÐÅë !ª¬Oê«XFþ÷Bë»ñF ñÐF)FZF“þ÷8é›´BXÑ¬	©	“ Fþ÷Ôéç*hâ`‘ç*hâ`ðçFçFîç¬© Fþ÷Äé’ç *ÍÐ>H¬xDþ÷Xë Fþ÷¶êHFþ÷ºèþ÷Øè9H¬xDþ÷Jëñ þ÷´ü (€Ü F©þ÷Úé{çñ þ÷©ü (?÷m¯(F©þ÷Îégçñ þ÷ü (Ü F©þ÷Äé|çñ þ÷’ü (?÷É®8F©þ÷¸éÃæ "Äø °¢`Cø+ Ÿç "Äø °¢`Cø+ 7ç	ñ þ÷LìWø<8¨™Ã
—Cø¸	ñ, þ÷êþ÷„èøç¥ç	¨þ÷Zêþ÷~è	¨þ÷Tê™çúç—ç ¿æã     ˜  X  @  Œ  \  0O  œM  ‚M  -éðO¹°€Fßø£	¨‘Fþ÷˜ë@F	©úDý÷¢ïÂK	Zø@=¥B@ð@¨
¯ý÷œï½J #Zø F2“1“øÌ04“5“6“7“·K’ñ’Zø0]h›h“šUø<
•øúPý÷^ï¯J¨ #Zø`ñ ’¬Jñ
‘Zø ““’ñ“’“““þ÷‚é¤K¨©ñZø0’“#“›ñÍø,àý÷2ï8FIFþ÷lè›ñ  + ð¥€šÝø< “BjÙSE ð™€ºñ  ð°€Êë !ªñ 	Oê«XFþ÷ê»ñF ñyÐFQFZF“þ÷è›¡E@ðÓ€ñ 		©	“HFþ÷ è	›£ñ
¢E@ðš€@FIFþ÷Àé›£ñ	¡E@ð„€ßøà‘ùDHFþ÷LèIFF@Fþ÷JëŸñš 6?
“§Bñ–“@ðƒ€™¨ñ“þ÷.ë™Uø,¨ñ8©Š™
•Bø¸“þ÷¢é9°½èðRE0Ðºñ 6ÐÊë !ªñ 	Oê«XFþ÷¨é»ñF ñÐFQFZF“ý÷žï›¡EbÑñ 		©	“HFþ÷8è–çÚø  Éø ‡çÚø  Éø ëçFƒçFéçñ 	©HFþ÷"è‡ç *ÆÐAHñ 	xDþ÷¶éHFþ÷é8Fý÷ïý÷6ï;Hñ 	xDþ÷¨é	ñ þ÷û (?÷u¯HF©þ÷6èoç
ñ þ÷û (?÷_¯PF©þ÷*èYçñ þ÷ùú (?÷v¯8F©þ÷èpçñ þ÷íú (?÷¹®(F©þ÷è³æ "Éø °Éø Cø+ ”ç "Éø °Éø Cø+ $ç8þ÷¦êUø<8¨™Ã
•Cø¸ñ, þ÷lèý÷Þîøç¡ç	¨þ÷´èý÷Øî	¨þ÷®è•çúç“ç ¿¼à     ˜  X  @  Œ  \  þK  XJ  <J  -éðO¹°€Fßø£	¨‘Fþ÷òé@F	©úDý÷üíÂK	Zø@=¥B@ð@¨
¯ý÷öí½J #Zø F2“1“øÌ04“5“6“7“·K’ñ’Zø0]h›h“šUø<
•øúPý÷¸í¯J¨ #Zø`ñ ’¬Jñ
‘Zø ““’ñ“’“““ý÷Üï¤K¨©ñZø0’“#“›ñÍø,àý÷Œí8FIFý÷@ï›ñ  + ð¥€šÝø< “BjÙSE ð™€ºñ  ð°€Êë !ªñ 	Oê«XFþ÷jè»ñF ñyÐFQFZF“ý÷`î›¡E@ðÓ€ñ 		©	“HFý÷úî	›£ñ
¢E@ðš€@FIFþ÷è›£ñ	¡E@ð„€ßøà‘ùDHFý÷¦îIFF@Fþ÷¤éŸñš 6?
“§Bñ–“@ðƒ€™¨ñ“þ÷ˆé™Uø,¨ñ8©Š™
•Bø¸“ý÷üï9°½èðRE0Ðºñ 6ÐÊë !ªñ 	Oê«XFþ÷è»ñF ñÐFQFZF“ý÷øí›¡EbÑñ 		©	“HFý÷’î–çÚø  Éø ‡çÚø  Éø ëçFƒçFéçñ 	©HFý÷|î‡ç *ÆÐAHñ 	xDþ÷èHFý÷nï8Fý÷ríý÷í;Hñ 	xDþ÷è	ñ þ÷kù (?÷u¯HF©ý÷îoç
ñ þ÷_ù (?÷_¯PF©ý÷„îYçñ þ÷Sù (?÷v¯8F©ý÷xîpçñ þ÷Gù (?÷¹®(F©ý÷lî³æ "Éø °Éø Cø+ ”ç "Éø °Éø Cø+ $ç8þ÷ éUø<8¨™Ã
•Cø¸ñ, ý÷Æîý÷8íøç¡ç	¨ý÷ïý÷2í	¨ý÷ï•çúç“ç ¿pÝ     ˜  X  @  Œ  \  ²H  G  ðF  pµFM‚°K}DFjëX>3`KëXžB
ÑK FëX3@ø;þ÷šè F°p½ñ þ÷Þø (îÜ0F©ý÷îéç ¿2Ú  \     Œ  pµFM‚°K}DFjëX>3`KëXžBÑK FëX3@ø;þ÷lè Fý÷Pì F°p½ñ þ÷­ø (ëÜ0F©ý÷ÔíæçÖÙ  \     Œ      -éðAßø˜€&KøDXøp—è$ ­­ÐhchƒBÐ #àRøOahBÐ3BOêƒõÑ½èð & i±ý÷í #£aãi“±JXø J hXøJ	hXø hý÷tîàiý÷ ì #ãa—è	 €™BÐZ’Ð’ ý÷ôî{h; F{`½èðAý÷ç» ¿rÙ  ì  ¤  À  Ä  KJ{D0´›X“è" m­Ð
hShƒB
Ð #àQø/Th„BÐ3«B÷Ñ "F0¼pG*FúçÄØ  ì  KJ{D0´›X“è" m­Ð
hhƒB
Ð #àQø/h„BÐ3«B÷Ñ "F0¼pG*Fúç€Ø  ì  KJ{Dpµ›X“è" m­Ð
hnhƒBÐ #à«BÐQø/h„BÐ3³BõÙ "Fp½*FFp½HxDý÷ì ¿<Ø  è  D  KJ{Dpµ›X“è" m­Ð
hn“hƒBÐ #à«BÐQø/”h„BÐ3³BõÙ "Fp½*FFp½HxDý÷ìë ¿ä×  è  8D  KJ{D0´›X“è" m­Ð
hhƒB
Ð #àQø/h„BÐ3«B÷Ñ "F0¼pG*FúçŒ×  `  KJ{D0´›X“è" m­Ð
hhƒB
Ð #àQø/h„BÐ3«B÷Ñ "F0¼pG*FúçH×  T  p±¡±ê @ös@s± ðð“BÐ+ÐFpG ôpc³õ øÑFFpG-éðO°F¨‰Fý÷í¨!Fý÷ºî¨ý÷Ôë (`Ð¨ý÷°ëF¨ý÷ë ûð0€ ý÷DíF¨Éø @ý÷ ë `¨Ùø @ý÷ ë &ñ
ñOð``¨ý÷Žë8†B-ØGF $½ àñ¨ “1FÍø "FÍø°«ý÷˜ìø 4øàø øÙø 0BêbCBê"ZQ5¨ëý÷Èê8„B×Ù6Ëç¨ý÷ˆí˜±ý÷vê˜°½èðõç¨ý÷4íý÷êê ¿-éøCßø€ KùDYø€˜è€Çë­Ð<h#hƒBÐ:F #àRøO!hBÐ3«BOêƒõÑ½èøƒ &chC¹K¡hYø0hý÷,ë˜è€¸ŒEÐÁëšÐ’ ý÷4íØøÀ¬ñ FÈø0½èøCý÷%º ¿ÖÕ  `  ¤  pµ #?Mˆ°C`F>K}D>IªîXyD« “«0hý÷bë ` (%Ð› +Ý˜ý÷í # hã`©#aªý÷Êì (Ýš%ië€Røàh‹lÉl˜B¸¿ã`[«BÄ¿#aF²BðÑ °p½&I«0hª “yD«ý÷0ë ` (ÍÑ!I«0hª “yD«ý÷$ë ` (ÁÑI«0hª “yD«ý÷ë ` (µÑI«0hª “yD«ý÷ë ` (©ÑI«0hª “yD«ý÷ ë ` (ÑI«0hª “yD«ý÷ôê `’ç>Õ  ¤  âA  œA  ¨A  °A  ¸A  ÄA  ÌA  -éðGš°ŠF‘FFÝøˆ€ý÷~ìM}DF0³KAiíX(hý÷0í i±ý÷~ê #£aahª(hý÷üìžah:F(hCF –ý÷Tí-hahRFÄø  KFÄø$`a(Fè€ý÷Êê°½èð‡Ô  ¤  øµý÷JìM}DF¸±Fh‡h0Fý÷–é8Fý÷¨ë	K1FíX(hý÷^ê(haiý÷ðì i±ý÷>ê #£aø½¤Ó  ¤  pµˆ°‘ý÷$ìF	HxDt±	M®©"#EY –(hý÷Té(hah2Fý÷tê°p½VÓ  ¤  KJ{D›XhÚh`iC`pG$Ó  D  0µ‰°F¨Fý÷"ë¨)Fý÷Øì¨ý÷Òé `¨ý÷4é›``±Fý÷èè	°0½¨ý÷ªëý÷`é ¿pµý÷Úë	M}DFh±KAhíX(hý÷Ìê(hah"jcj½èp@ý÷q¸p½ÄÒ  ¤  µL|Dý÷¾ë8±KAhãXh½è@ý÷º½ ¿”Ò  ¤  µL|Dý÷ªë8±KAhãXh½è@ý÷Ä¸½ ¿lÒ  ¤  -éðO…°FFFý÷’ë+M}DF (AÐOê)ÃiIêBêBa +:Ð%JUø°$JÛø  Uø #JÚø ­X*hý÷êêàiý÷vè #ãaú²ó²_úˆø Bê'Cê&Hê		Oöÿs­ø`­ø0­øp­ø
ý÷xê*h«Úø àaFÛø   –ý÷BëFX±°½èðKUø°KUø KíXÏçàiý÷@èåaîç6Ò  ¤  À  Ä  µFý÷.ë ±„b½ ¿-éðA„°ˆFFFý÷"ëM}DFð±ßøDà  áh¢jFUøPOðÍø à(hý÷Æéáh"i(hý÷BéaiâhCF
œ(h —–”ý÷é°½èðVÑ  ¤  -éðC‡°‰FFFý÷ðêM}DFø±Áh &‚jH3F-X èA (hý÷˜éáh"i(hý÷éaiâhKFœ(hÍø €”Oô´D—–”ý÷øê°½èðƒ ¿òÐ  ¤  -éðC‡°‰FFFý÷¼êM}DFø±Áh &‚jH3F-X èA (hý÷déáh"i(hý÷àèaiâhKFœ(hÍø €”Oô´D—–”ý÷Êè°½èðƒ ¿ŠÐ  ¤  -éðA„°ˆFFFý÷ˆêM}DFð±ßøDà  áh¢jFUøPOðÍø à(hý÷,éáh"i(hý÷¨èaiâhCF
œ(h —–”ý÷¤è°½èð"Ð  ¤  øµKJ{DŸX—è$ ­­Ðh#hƒBÐ #àRøO!hBÐ3«BOêƒõÑø½ & ý÷Rê—è	 €™BÐZ’Ð’ ý÷:ê{h`h;{`±ü÷0ï F½èø@ü÷)¿ ¿ÊÏ  T  -éðO‹°FßøÔ°’“ý÷êûD‚F Fý÷jê (¿ºñ XÐ &ñ%	ñ&(Fñ'ü÷èï(F $ü÷Jï››“à(F4ü÷Bï8 B7Ó	«"F(F1FÍø Íø€—ý÷ìèø'0ÿ+éÑKø% ø$[ø0BêBÚø“ø&0C›hý÷
è›Úøë›Úø 4h›Íø àü÷Êï(Fü÷
ï8 BÇÒ(F6ü÷œï8°B±Ò°½èðDÏ  ¤  µFý÷\è ±Àh½ ¿µFý÷Tè ± i½ ¿0µ°LªKFI|D
¨ãXaX¬ hF	h”¬”	¬”¬”ý÷âé(¿
›+`›k`°0½ ¿BÎ  ¤  œ  -éðC›°‰FFFý÷néM}DFÐ±® !`"0Fü÷Úî"™ch "Íø
‘!‘I“Oô CÍø €	—hXah – hý÷Þè°½èðƒîÍ  ¤  -éðA†°LˆFFF|Dý÷>é°±› %I­ø€*F­ø0+F­ø`­øpdXÁh¨  h$•”ý÷¾é°½èð ¿–Í  ¤  µL|Dý÷é@±K "ÁhãXh½è@ü÷+¾½LÍ  ¤  pG ¿  pG-éðA¤°ˆF*M’ü÷Êï}DF (9Ð'H¯#©".X —0hü÷.î0h¡h:Fü÷PïAF¨ªý÷`é ©ü÷@ïKëX=BÑ#i +Ýci +Ý­ !`"(Fü÷Fî¡h0h "Oô C&‘!i–‘ai‘¡h •ý÷Nè$°½èðñ ý÷;ú (ÚÜ(F©ü÷HïÕç¨ý÷èü÷0î ¿Í  ¤     pµ‚°ü÷nïM}DFÈ±K®hëXhü÷¾î #£` ã`#acaKìXñFø=1Fü÷æî=¥BÑ°p½ñ ý÷ ú (÷Ü(FiFü÷ïòç0Fü÷Ðïü÷ôíVÌ  ¤     -éðO—°VKFFÁh{DTH " $X hü÷”î™š#Fh‘hÒhèü÷î¨ü÷zï›¨Yhý÷0é¨ü÷Hî (`ÐÝøà¨ÎøpÎø€ü÷ î‡B\Ü &¨ü÷€í€EeÜ !‘ñ0
ñ8Oð 	¨ü÷î8E>Ø $à45¨ü÷hí8„BHØ¨EÈ¿·BóÝ
ª¨ ’IFÍø "FÍø°«ü÷ïø80ø  ÿ+ø( ø0ÝÑÝøàAê CCðCCê"Þø  ÝøàÞøü÷(î™3Fšh‘hÒh •ü÷ðíÃç¨ü÷öï˜±ü÷äì°½èðë×t¨dü÷ºí ëÐp¤ë`˜ç	ñ	6¡çëØt¨dü÷í ëÐp¤ë` ç¨ü÷ˆïü÷>íÜË  ¤  -éðO‘°€F¯( Fü÷2ïñ!Fßøø¥úDFØø *F “ñ“
#ý÷fè;i(FÈ¿†Z ðŠßøÐ%+Zø€ñza&Ð€ò…€ $(Fü÷„í}i=EE@ð‚ Fñ<½F½èðßø E|D Fñ	ü÷”í!FFHFý÷”è{iSø< +@ðu;i+ÚÐ .ØÝ³ ëF3² #ð $­ëñ	+YIø04”BùÑßøT #ñ( Iø&0yD:Fü÷Âï>ßø@ñ, yD2Fü÷ºïßø45ñ(ñ,Zø@ Fü÷òëûj£ñ
ÂE@ðr‚»j£ñ
ÂE@ð:‚ßø:Fñ0 yDü÷šïIF2Fñ4 ü÷”ï Fñ0ñ4ü÷Òë|k<DE@ð:‚<k<DE@ðÄ$ÝF{ç+?÷x¯ûhOör“BÐOö¾rOö‘qßø°D“B¿‹B|D?ôy¯Oö¿rOö’qßøœD“B¿‹B|D?ôm¯OöÀrOö“qßøˆD“B¿‹B|D?ôa¯OöÁrOö”qßøtD“B¿‹B|D?ôU¯OöÂrßødD“B|D?ôM¯OöÃrßøXD“B|D?ôE¯OöÄrßøLD“B|D?ô=¯OöÅrßø@D“B|D?ô5¯OöÆrßø4D“B|D?ô-¯OöÇrßø(D“B|D?ô%¯OöÈrßøD“B|D?ô¯OöÉrßøD“B|D?ô¯OöarßøD“B|D?ô¯OörþL“B|D?ô¯OörüL“B|D?ôÿ®Oökr“B ðÔ€Oör“B ðÇ€#ð€Oö	qŠB ðº€Oö a‹B ðµ€OöqŠB ð³€Oöår“B ðÙ€Oöær“B ðÌ€OöÿrOöŸq“B¿‹B ð³€OöQrOö–q“B¿‹B ð²€OöSrOö˜q“B¿‹B ðÁ€OöRrOö—q“B¿‹B ðÍ€OöTrOö™q“B¿‹B ðÔ€OöPrOö•q“B¿‹B ðÃ€Oöœr“BÐOöWr“Bô¥®ñ	ÇIHFyDü÷
ëœæ± (Fü÷ïñ!FFØø *F “ñ“3Fü÷Âî;i(FÈ¿†]æ¹I:Fñ ñ	yDü÷fî>µIñ yD2Fü÷^îŸKññZø@ Fü÷˜êûi£ñ	ÁE@ðÌ€»i£ñ	ÁE@ð¹€¨I2Fñ  ñ	yDü÷>îñ$ IFü÷‚î Fñ ñ$ü÷vê|j<DE@ðˆ€<j<DEvÑ$"æ™L|D0æ˜L|D-æñ	—IHFyDü÷œê/æñ	”IHFyDü÷”ê'æñ	‘IHFyDü÷Œêæñ	ŽIHFyDü÷„êæñ	‹IHFyDü÷|êæñ	ˆIHFyDü÷têæñ	…IHFyDü÷lêÿåñ ü÷íþ (?÷æ­(Fñü÷øëßåñ	{IHFyDü÷Xêêåñ	xIHFyDü÷Pêâåñ	uIHFyDü÷HêÚåHFü÷¤ìü÷Èêñ ü÷Ãþ (?÷5® Fñü÷Îë.æñ ü÷¶þ (‚Ü Fñü÷Âë$ åñ ü÷©þ (?÷q¯ Fñü÷´ëjçñ$ ü÷vìñ  ü÷rìÊçùç	ñ ü÷’þ (?÷@¯HFñü÷œë9ç	ñ ü÷…þ (?÷-¯HFñü÷ë&çñ ü÷Rìñ ñ	ü÷Lì¤ç÷ç
ñ ü÷lþ (?÷¿­PFñü÷vë¸åñ0 ü÷:ìñ	ÝFŽçñ4 ü÷2ìòçñ ü÷Rþ (?÷¿­ Fñü÷\ë¸åèçñ( ü÷ìãçñ, ü÷ìõç
ñ ü÷:þ (?÷‡­PFñü÷Dë€å ¿hÊ     Ì9  ”;  ¾;  Ü  f;  Þ8  Ò8  Æ8  º8  ¶8  ²8  ®8  ª8  ¦8  ¢8  ¢8  ¢8  ¢8  ¬8  Æ8  9  Ø8  Þ8  ®8  ¤8  z7  F7  7  ¶7  Â7  n7  :7  ¦7  Ô9  „7  „9  @k(Ð(¿   pGKJ{D›X"ppG ¿ÄÃ  ˆ  -éðCFƒ°, FF™Fü÷dëM# $}DƒbKaDa„aÄabDb€èÀÀø€ëXYhšh‘BÐ±`˜Yh1Y`°½èðƒFªü÷:ì˜öç ¿–Ã  ì  -éðO¿°¯ûLFû`ûK|D¼ax`:a½iTø€ $÷K±ñdÞñ 
×ø±Øø  Zë
UøÙø ü÷”êØø PÙø :iÕøŒ	ë‰	ûhë	êIÙø(àxd(F½iiXÁø àæIiXh×ø  ‘×ø”‘)FÙø$PÍøàOðÍøàñ@•%Íøà•ü÷Pé+FÙJ½iøaFªXØø  ü÷dêØø  ùi"F#Fü÷ðêd.¿.¸` ðÎ€¶õ– ðÈ. ð»ñ rÐXFÇøÐü÷ÂéYF€  ñ
#ð­ë¬ Fü÷néÁIñ$ FyDü÷~ëF (UÐ $½N%F~D£FàOê‰
PFü÷ëFë„ ¹jRFLFü÷üé¸jü÷réñ$  1Fü÷^ëF¸±Fñ(Çø(°ü÷@ê°ñ 	íÝ ,ÛÐë	(FOê‰
OêŽñFü÷\ìFÕçô±£IØø  yDü÷”ë¡IF "Øø  yDü÷Œë "FOð Øø  è2Fùi•”ü÷êë(Fü÷2é|i¥F¼i %“KOôb“IàXyDüi’K h ”{D‘L|D”üi•”û÷¦ïýbF (wÐŒIñ,+FyDü÷Æê Fü÷¦êújBôBðOùiØø  ü÷Lê#Fùiºhxhü÷Ôèùiñ|FØø  ü÷Œë×ø@Øø  ùi×ø„ ×øˆ0 ”ü÷àë<i,bühlbhañÜ½F½èðü÷˜ë×ø Q0"ùiÅaFEa×øQ`Fb…aØø  ü÷LèHFû÷rï¶õ–AÐºñ ?ô¯bI"Øø  yDü÷ë`I"yDFØø  ü÷üêØø PñØùi2F# &Nø¬(F”$ –Íøà”ü÷Të<àHòOÀò!‘çü÷Rë×ø Q0#ùiÅaFEaF×øQ`b…aØø  ü÷è Fû÷,ïEI"Øø  yDü÷ÆêCIyDF"Øø  ü÷¾êØø @ñØùi2F# &Eø¬ F• $èP $”ü÷ë6I "Øø  %yDü÷¢ê3I "yDFØø  ü÷šê0I "yD8cØø  ü÷’ê-I "yDxcØø  ü÷Šê*I "yD¸cØø  ü÷‚êØø @ùiOð 2F+Føc F• $è@ñ0”ü÷Üê€æI"Øø  yDü÷hêIyDF¡çû÷ ï8Ã  ¤  ´  À  œ  x  €4  n4  ´/  ´/  °  †/  ˆ/  ”/  ‚/  ,.  R.  °-  ¼-  &.  ,.  8.  D.  H.  ö,  :-  µF‚° ü÷éJ #zDƒ`Ã`aCaKÓX3C`K`ÓXYhšh‘BÐ±`˜Yh1Y`°½Fªû÷®î˜÷ç ¿Ø¾     è  -éðO×°ŠF—N	’ü÷œé–I~DñP	 "#tX”IVø€Íø Øø F hû÷ï†F ( ðÍ€I6¯— #Ùø  Vø° hÛø û÷,ïÙøpÛø 0oðÙø Oð —OðŸ‘!ÍøÀBò
 ‘‘FÍøàFÍøÀ—ÍøäàÍøÜàC hû÷ôîF¨` " hOð Fü÷œèè`ü÷ê©h#FCaFÉø0 Éø   hû÷ÐîHFû÷ôígIZF hyDü÷Žé©hñ8Oð Íø8°F hFÍøàÍø ÀOðÍø°ÍøÀOðÍø<Àü÷àé©hHòL hÀò"ü÷lèTIØø  yD˜ü÷pê™ZF hü÷`éF hü÷BêF (uÑñ@# h	©"Íø €û÷Jî h©hBFû÷jïQF¨ªü÷|é(©û÷\ï@KšóX¢ñžB]Ñ® !`"0Fû÷fî:I " hyD!#"—“ü÷,éÔø à # $$“%”9F&”"F#F#pF­h –(”'•)”ü÷bèW°½èð h#Øø pOð	oðÐøŒë‡Íø‘ÍøÜàëHò@‘6¯IqX ““FÍøà@ö.—Üø$p—	hÍøÜø(pÍøà—Ÿ—û÷*îF¨`4ç h9FOô 2û÷Þï‚çñ ü÷ú (›Ü0F©û÷"ï–ç¨û÷æïû÷
îz¾  ¤  ´  œ  r,  2,     Ú+  µF‚° û÷’ïJ #zDC`ƒ`Ã`aK`ÓXYhšh‘BÐ±`˜Yh1Y`°½Fªü÷è˜÷ç ¿ô»  `  pµF‚°  û÷jïM #}DF0#`c`£`ã`#aca£a#wû÷hïK”&`èXAhƒh™BÐ±`œAh1A` F°p½ªû÷„íœ÷ç Fû÷&íû÷¢í¤»  T  8µFFû÷,ï!F Fü÷øè Fû÷ôí(` Fû÷Víh`8½ ¿ðµ %ƒ°FF`E`…`é±Fû÷îFÀ±*F>)Fà±`51½Ba`Ðah¢hVø?‘B“ñÑ Fªû÷Âî5½BñÑ F°ð½ Fü÷èû÷\í ¿-éðOË°ßøH[ßøH;}DëX`ßø@	“xDû÷úìF û÷Lî  û÷Žíßø,;Uø€Èø   ( ð}‡ßø "yDû÷öïßø;ßø "ëXyD“`Øø  û÷êïßø;ëX“`ßøü
xDü÷"èØø  ßøôÒø„0FnXÒøŒ ëƒF3`ßøà:ëßøÜJ’hëX`û÷Øî,Y !F
F `Øø  û÷\ïßøÀ:ìX ` ( ðW‡ßø´ #ª $yDû÷zìßø¨:™ïX±ø à<`¾ñ Ñà4¦EÝKh@öPSø$0@˜BôÑ9h4û÷ ì™±ø à¦E8`íÜFßølßølJyD‘û÷æëØø 02h  ,YÓøŒë‚”ë	šœhh
kßøDyD‘ßø@yD‘™
`ßø8*ßø8Uø yDßø0*‘Êø @zD’˜Gßø$:ßø$*zD’ëX“šx )lÑßø:ïX;ñ|Cø &“BúÑÚø @9F2F3Fñ`Oêä|´B¨¿¦FOêÜlOêndDð	Wø.@Ìë	Oð		úüLêGø.@ßøÄIBòw,Y ”„èÀ û÷þíØø  ü÷è (VÐØø  2©û÷Zí2›+RÐ+ ð"+ ð¼+ ð½+ ðj‚+ ðƒ+ ðºƒ	+ ðÀƒ
+ ð…!+ ð…+›Ñ6˜û÷Jì (–Ð:™;šû÷ôîšx )’ÐßøD9ìX”èˆ ÿ¿ ð2„ &¡FSø&@ch + ð„ F6û÷Žë·B ð„Ùø 0Ùø Ò¶ë¢êÓßø	xDû÷ ì	™h˜Geç6˜û÷2î ( ðµ…ßøì8¯¬ñXîX0Fû÷$í0Fû÷ôêßøÔª8FyDû÷ÖîßøÌ FZFyDû÷Îî0F9F"Fû÷ëßø¸8˜Uø ñOE@ð:†˜ ñOE@ðD†ßøœZF FyDû÷²î›0F!Fhû÷Þí˜ ñOE@ð>†ßøxZF FyDû÷ î0F!F7šû÷Ìí˜ ñOE@ð9†ßøXZF FyDû÷Žî0F!F8šû÷ºí˜ ñOE@ð4†ßø8ZF FyDû÷|î0F!F9šû÷¨í˜ ñOE@ð/†ßøZF FyDû÷jî0F!F:šû÷–í˜ ñOE@ð*†0Fû÷í	š F1Fhû÷|ì˜°G˜ ñLE@ð&†›9œØø  YiZh7ŸÛh8ž”:œ —–”—–û÷Öë¯æ6˜û÷|í (?ô©®ßø€7¯¬ñXîX0Fû÷nì0Fû÷>êßøˆª8FyDû÷ îßø€ FZFyDû÷î0F9F"Fû÷XêßøL7˜Uø ñOE@ðð…˜ ñOE@ðú…ßøLZF FyDû÷üí›0F!Fhû÷(í˜ ñOE@ðô…˜2©û÷Pë ( ðë‚ßøZF FyDû÷âí>š0F!Fðû÷¶î˜ ñOE@ðæ…ßøøZF FyDû÷Îí>š0F!FÂó€û÷¢î˜ ñOE@ðß…ßøÔZF FyDû÷ºí0F!F "û÷î˜ ñOE@ðÚ…ßø´ZF FyDû÷¨í0F!F "û÷~î˜ ñOE@ðÕ…0Fû÷Rì	š F1Fhû÷ºë˜°G˜ ñLE?ô®8û÷‘þ (?÷ü­ F©û÷œëöå2¨û÷æéòå6˜û÷¾ì
 (?ôì­«“ßø 6¯¬ñXîX0Fû÷®ë0Fû÷€éßø(š8FyDû÷`íßø FZFyDû÷Zí0F9F"Fû÷˜éßøÌ5˜Uø ñKE@ð‘…˜ ñKE@ð…ßøè8FšyDû÷>íßøà FZFyDû÷6í0F9F"Fû÷vé˜ ñOE@ð”…˜ ñOE@ðž…ßø´ZF FyDû÷í
›0F!Fhû÷Jì˜ ñOE@ð˜…ßøZF FyDû÷í0F!F:šû÷8ì˜ ñOE@ð“…ßøpZF FyDû÷úì0F!F;šû÷&ì˜ ñOE@ðŽ…ßøP FZFyDû÷èì2¨û÷íF!F0Fû÷ì˜ ñOE@ð†…0Fû÷Žë	š F1Fhû÷öê˜°G:ç6˜û÷ì
 (?ô<­«“ßø 4¯¬ñXîX0Fû÷þê0Fû÷Ðèßøèš8FyDû÷°ìßøÜ FZFyDû÷ªì0F9F"Fû÷èèßøl4˜Uø ñKE@ðV…˜ ñKE@ðb…ßø¨8FšyDû÷Žìßø  FZFyDû÷†ì0F9F"Fû÷Æè˜ ñOE@ðY…˜ ñOE@ðc…ßøtZF FyDû÷nì
›0F!Fhû÷šë˜ ñOE@ð]…ßøPZF FyDû÷\ì0F!F:šû÷ˆë˜ ñOE@ðX…ßø0ZF FyDû÷Jì0F!F;šû÷vë˜ ñOE@ð†ßø FZFyDû÷8ì2¨û÷^ìF!F0Fû÷bë˜ ñOE@ðù…0Fû÷Þê	š F1Fhû÷Fê˜°GŠæ6˜û÷^ë
 ( ðö‚«“ÐK¯¬ñXîX0Fû÷Pê0Fû÷ èêIš8FyDû÷ìèI FZFyDû÷üë0F9F"Fû÷<èÅK˜Uø ñKE@ðÌ…˜ ñKE@ðq…ÜI8FšyDû÷âëÚI FZFyDû÷Üë0F9F"Fû÷è˜ ñOE@ðj…˜ ñOE@ðt…ÐIZF FyDû÷Æë
›0F!Fhû÷òê˜ ñOE@ðo…ÈIZF FyDû÷´ë0F!F:šû÷àê˜ ñOE@ð½„ÀIZF FyDû÷¢ë0F!F;šû÷Ðê˜ ñOE@ð¹„¹I FZFyDû÷’ë2¨û÷¸ëF!F0Fû÷¼ê˜ ñOE@ð²„0Fû÷8ê	š F1Fhû÷ é˜°GäåØø  "6™3Fû÷Fêÿ÷ä»6˜û÷°ê
 (?ôÝ««“yK¯¬ñXîX0Fû÷ é0Fú÷rï›Iš8FyDû÷Të™I FZFyDû÷Në0F9F"Fú÷ŒïmK˜Uø ñKE@ð}„˜ ñKE@ð‰„I8FšyDû÷4ë‹I FZFyDû÷.ë0F9F"Fú÷lï˜ ñOE@ð‚„˜ ñOE@ðŒ„€IZF FyDû÷ë
›0F!Fhû÷Bê˜ ñOE@ð‡„0Fû÷Àé	š F1Fhû÷(é˜°Gkå0Fû÷@éÿ÷o»Øø  ¡hû÷jèÿ÷ê»Ùø0 &LF h™BÐZ’Ð’ û÷pêch6;¾Bc`ïÑbKîX7ôh¼BÐai±Øø  ú÷"ï Fû÷Êê¸BFóÑZK 'ìX F¡hû÷¶è#0F±hã`#a§`gaû÷êš3Øø  ó`h·`3awaú÷.ïØø  û÷`èK°½èð¶º  ð  ®)  ¤  ¦)  Ì  ¤)  x  t)  ´  œ  D  °  V)    î+  Ä  ò-  Ö,  ¸  Ú+  
.  ˆ  Œ+  „  h  `  ¢$  Ü   *  &*     *  ô)  Ø)  ¼)  °)  ´(  *)  ¢(  â(  Ò(  ¾(  ª(  6'  ,(  (  (  æ&  Ì&  °&  '  Ö%  Ì&  ¬&  ê&  †%  l%  P%  0&  z$  r%  V%  Æ%  4$  $  $  ä$  #  @%  ø#  $%  Ö"  d  ¨  6˜û÷Vé (?ôƒª˜7šhšBô}ª™9šhšBôwªßø<9¯ñX¬ñ\	îX0Fû÷:è0Fú÷
î™ZF8Fû÷îé F™JFû÷èé0F9F"Fú÷(î Fû÷Âè8Fû÷Àè™ZF8Fû÷Øé F™JFû÷Ôé0F9F"Fú÷î Fû÷®è8Fû÷ªè™JF Fû÷Äé›0F!Fhû÷ðè Fû÷œè0Fû÷pè	š F1Fhú÷Øï˜°G Fû÷Žèÿ÷ º6˜û÷ìè
 (?ôª«“ßø|8¯¬ñXîX0Fú÷Üï0Fú÷¬í™š8Fû÷éßø\ FZFyDû÷ˆé0F9F"Fú÷ÈíßøH8˜Uø ñKE@ðsƒ˜ ñKE@ðƒßø,8FšyDû÷léßø  FZFyDû÷fé0F9F"Fú÷¤í˜ ñOE@ðwƒ˜ ñOE@ðƒßøôZF FyDû÷Né
›0F!Fhû÷zè˜ ñOE@ð.ƒ0Fú÷öï	š F1Fhú÷^ï˜°Gÿ÷¢»6˜ú÷XîF (?ô£©hªØø  û÷@é F™šû÷øèÿ÷–¹6˜ú÷Dî (?ô©?›+ ðNƒ+ôˆ©ßø\7¯ñX¬ñ\	îX0Fú÷Jï0Fú÷íßøXZF8FyDû÷üèßøL FJFyDû÷öè0F9F"Fú÷4í Fú÷Ðï8Fú÷Ìïßø,ZF8FyDû÷äèßø$ FJFyDû÷Üè0F9F"Fú÷í Fú÷¶ï8Fú÷´ïßøJF FyDû÷Êè›0F!Fhú÷öï Fú÷¤ï0Fú÷vï	š F1Fhú÷Þî˜°GçßøÐ6!ßøÌ"ëXxDhú÷nïØø  ÿ÷t¸ Fú÷†ïú÷ªíùç Fú÷€ï8Fú÷|ïú÷ íùçõç÷çßø6!ßø"ëXxDhú÷Nï hÿ÷›¸èçäç8û÷Šù (?÷À©8F©ú÷–î˜ ñOE?ô¼©8û÷zù (?÷¶©8F©ú÷†îÿ÷°¹Áç8û÷mù (?÷¼©8F©ú÷xîÿ÷¶¹´ç8û÷`ù (?÷Á©8F©ú÷lîÿ÷»¹§ç8û÷Sù (?÷Æ©8F©ú÷^îÿ÷À¹šç8û÷Fù (?÷Ë©8F©ú÷Rîÿ÷Å¹ç8û÷9ù (?÷Ð©8F©ú÷Dîÿ÷Ê¹€ç8û÷,ù (?÷Ô© F©ú÷8îÿ÷Î¹|çxç8û÷ù (?÷
ª8F©ú÷*î˜ ñOE?ôª8û÷ù (?÷ ª8F©ú÷îÿ÷ú¹Uç8û÷ù (?÷ª8F©ú÷îÿ÷ ºHç8û÷ôø (?÷ª8F©ú÷ îÿ÷º;ç8û÷çø (?÷ª8F©ú÷òíÿ÷º.ç8û÷Úø (?÷ ª8F©ú÷æíÿ÷º!ç8û÷Íø (?÷%ª8F©ú÷Øíÿ÷ºççç8“û÷½ø› (?÷gªF©ú÷Èí˜ ñKE?ôcª8“û÷«ø› (?÷[ªF©ú÷¶íÿ÷Uºúæöæ8û÷œø (?÷fª8F©ú÷¨í˜ ñOE?ôbª8û÷Œø (?÷\ª8F©ú÷˜íÿ÷VºÓæ8û÷ø (?÷bª8F©ú÷Šíÿ÷\ºÆæ8û÷rø (?÷gª8F©ú÷~íÿ÷aº¹æ8û÷eø (?÷lª8F©ú÷píÿ÷fº¬æ8û÷Xø (?÷tª8F©ú÷díÿ÷nºŸæ§æ£æ8“û÷Hø› (?÷¢ªF©ú÷Rí˜ ñKE?ôžª8“û÷6ø› (?÷–ªF©ú÷@íÿ÷º…ææ8û÷'ø (?÷¡ª8F©ú÷2í˜ ñOE?ôª8û÷ø (?÷—ª8F©ú÷"íÿ÷‘º^æ8û÷
ø (?÷ª8F©ú÷íÿ÷—ºQæ8ú÷ýÿ (?÷¢ª8F©ú÷íÿ÷œºDæ8ú÷ðÿ (?÷=«8F©ú÷üìÿ÷7»7æ8ú÷ãÿ (?÷A«8F©ú÷îìÿ÷;»*æ8ú÷Öÿ (?÷H«8F©ú÷âìÿ÷B»æ%æ!æ8“ú÷Æÿ› (?÷{«F©ú÷Ðì˜ ñKE?ôw«8“ú÷´ÿ› (?÷o«F©ú÷¾ìÿ÷i»æÿå8ú÷¥ÿ (?÷x«8F©ú÷°ì˜ ñOE?ôt«8ú÷•ÿ (?÷n«8F©ú÷ ìÿ÷h»Üå8ú÷ˆÿ (?÷s«8F©ú÷”ìÿ÷m»8“ú÷{ÿ› (?÷‡ªF©ú÷†ìÿ÷ºÊåÆå8ú÷lÿ (?÷ª8F©ú÷xì˜ ñOE?ôŒª8ú÷\ÿ (?÷†ª8F©ú÷hìÿ÷€º£å8ú÷Oÿ (?÷‹ª8F©ú÷Zìÿ÷…º–å8ú÷Bÿ (?÷ù©8F©ú÷Nìÿ÷ó¹‰å8ú÷5ÿ (?÷ª8F©ú÷@ìÿ÷û¹|åå8“ú÷&ÿ› (?÷,ªF©ú÷0ìÿ÷&ºlå8ú÷ÿ (?÷Ì¬8F©ú÷$ìÆäiåeå8“ú÷
ÿ› (?÷…¬F©ú÷ì˜ ñKE?ô¬8“ú÷øþ› (?÷y¬F©ú÷ìsä?å>åFåBå8ú÷èþ (?÷ƒ¬8F©ú÷ôë˜ ñOE?ô¬8ú÷Øþ (?÷y¬8F©ú÷äësä)å2K¯ñX¬ñ\	îX0Fú÷ ì0Fú÷Òé9IZF8FyDú÷´í7I FJFyDú÷®í0F9F"Fú÷ìé Fú÷ˆì8Fú÷„ì/IZF8FyDú÷œí-I FJFyDú÷–í0F9F"Fú÷Öé Fú÷pì8Fú÷nì&IJF FyDú÷†í›0F!Fhú÷²ì Fú÷^ì0Fú÷2ì	š F1Fhú÷šë˜°Gÿ÷À»ÇäÆäÅäÄäÉäËäÇäÉäÅäÇäÃäÅä ¿Ü  ¶!     j   Œ!  D  n      X  .   >  ä  ˆ  ˆ  Ü    Ê  ~  ´  -éðOFßø<‚‰°ŽK‰FøDXøp»h +2Ð>i¥B–¿FÛh›h +÷Ñ;žB&Ð3iB#Ó„KtiXø`1³h›±i”B–¿FÛh›h +÷Ñ3™BÐiœBÓÑø€@F	°½èð0Fª #”“ú÷ÞíFðçú÷~írIrJyDzDFú÷ŽépIJF FyDú÷^ínIŸíf FyDú÷véú÷øé)F‚Fú÷òèiIRF FyDú÷ÀígI" FyDú÷ÖëeI" FyDú÷ÐëcI" FyDú÷:í  !FFú÷òì Fú÷í  !Fªú÷lé„F ( ð€ÍøÀú÷íMKÝøÀXø`³hF +;Ðñi‘E–¿›FÛh›h +÷Ñ3›E.ÐÛø0™E*Ó»h9k±i•B–¿FÛh›h +÷Ñ;™BÐiBÒ8Fª #ÍøÀ•“ú÷ëÝøÀFÁø`Fú÷šèÛø€PFú÷Îë Fú÷’èdç4KaFXø0hÍøÀú÷RìÝøÀ€F (9Ð³h1k±i‘E–¿FÛh›h +÷Ñ3™BÐi™EÒ0Fª #Íø“ú÷&íF»hÁø€9k±i•B–¿FÛh›h +÷Ñ;™BÐiBÒ8Fª #•“ú÷ºêFÁø²ç€F°ç`Fú÷Fè¬ç ¿¯ó €      X@ˆ¤  ¨  d  †  Œ  Š  „  p  l  l  l  ¤  -éðO°FF‘ú÷€ëßøl±ûDF˜ú÷*ê (¿ /FgÐCh +gÐ»i + ðˆ€ûi +]Ð¨)Fú÷è˜›˜B ð€ñF$à˜™×ø ×øú÷0è›IF"F#èPF“3Fú÷é!FBF?H¬#[ø   ” hú÷‚é½ù(0ö›«B'ÐUø;!F“ú÷öèF (ÐÑOöýp!ú÷îè (êÐ˜™×øüiù÷úï›!F "#èHF“3Fú÷Òè !ªÈç˜±ú÷è°½èð K:iùh[ø€Øø  ú÷8é™˜×ø ÔøØø €ühù÷Ðï›Ç(Fú÷éèÀ QF•JF#F@Fú÷TëØçK[øKh[ø Kyih[ø0hú÷àë¸a (ÆÐdç (ÁÑÂç¨ú÷þêú÷Lè ¿¢  ¤  À  Ä  ðµF‹°Fú÷lé N~DF@³Ch +(Ð¨!Fù÷bï˜›˜B*Ð¯ %FTø;!F“ú÷hèX±FHª#0X — hú÷Üè½ù0í›£BèÑ˜±ù÷’ï(F°ð½ Fú÷¨è!FF¨hú÷léFòç %íç¨ú÷®êù÷üï ¿†   ¤  0µF…°#  c`Fú÷ê¹°0½)F¨ù÷ï›!hú÷&èhƒh˜â`#a±ù÷\ï êç èç¨ú÷‚êù÷Ðï8µFú÷&ê!FFú÷`é ±8½(F!F½è8@ú÷ ¹¯ó €µF h±ù÷:ï F½µF h±ù÷2ï F½µF h±ù÷*ï F½µF h±ù÷"ï F½KJ{D0µFhƒ°›X=BÑ F°0½ñ ú÷Œû (öÜ(F©ú÷˜èñç ¿HŸ     µF h±ù÷üî F½µF h±ù÷ôî F½-éðCFChƒ°hF‹BÐ±Sø`ChI``h‰ÐŠ )F˜ú÷Úé,`°½èðƒh[›5Ð^ i³B6Ùoð@F’ú÷âèšFë‡±hFø'0!hk_ê£	ÐOê‰	0FJFú÷´éch±D	ñ	[ŸÐ¿ HF)F:Fú÷¨é hOD±ù÷ îë„èÀ £`ÂçiOðËç¶ñ€OÅÒOêÃ .ÉÐÂç-éðCFChƒ°hF‹BÐ±Sø`ChI``h‰ÐŠ )F˜ú÷té,`°½èðƒh[›5Ð^ i³B6Ùoð@F’ú÷|èšFë‡±hFø'0!hk_ê£	ÐOê‰	0FJFú÷Néch±D	ñ	[ŸÐ¿ HF)F:Fú÷Bé hOD±ù÷:îë„èÀ £`ÂçiOðËç¶ñ€OÅÒOêÃ .ÉÐÂç-éðCFChƒ°hF‹BÐ±Sø`ChI``h‰ÐŠ )F˜ú÷é,`°½èðƒh[›5Ð^ i³B6Ùoð@F’ú÷èšFë‡±hFø'0!hk_ê£	ÐOê‰	0FJFú÷èèch±D	ñ	[ŸÐ¿ HF)F:Fú÷Üè hOD±ù÷Ôíë„èÀ £`ÂçiOðËç¶ñ€OÅÒOêÃ .ÉÐÂç-éðCFChƒ°hF‹BÐ±Sø`ChI``h‰ÐŠ )F˜ú÷¨è,`°½èðƒh[›5Ð^ i³B6Ùoð@F’ù÷°ïšFë‡±hFø'0!hk_ê£	ÐOê‰	0FJFú÷‚èch±D	ñ	[ŸÐ¿ HF)F:Fú÷vè hOD±ù÷níë„èÀ £`ÂçiOðËç¶ñ€OÅÒOêÃ .ÉÐÂç-éðCFChƒ°hF‹BÐ±Sø`I``h‰ÐŠ )F˜ú÷Dè,`°½èðƒh[›5Ð^ ³B7Ùioð@F’ù÷Jï!hšFhë‡±hFø'0_ê 	ÐOê‰	0FJFú÷èch±D	ñ	[ŸÐ¿ HF)F:Fú÷è hOD±ù÷
íë„èÀ £`ÂçiOðËç¶ñ€OÄÒhOêÃ‡ .ÊÐÁç-éðO…°F‘ )lÐ›Ûh“ +_ÐÓø€¸ñ RÐØø¹ñ DÐÙø ºñ 7ÐÚø°»ñ *ÐÛø0“ó±Ýh¥±ïhW±ùh Fù÷.î¾h8Fù÷Äì7F .ôÑ¯h(Fù÷¾ì±=Fëç›hFù÷¶ì±•+FàçÛøPXFù÷¬ì±«FÔçÚøPPFù÷¤ì±ªFÇçÙøPHFù÷œì±©FºçØøP@Fù÷”ì±¨F­ç›hFù÷Œì±•+FŸç›hFù÷„ì• -’Ñ°½èð ¿µFhù÷Þí F½ ¿-éðO…°F‘ )lÐ›Ûh“ +_ÐÓø€¸ñ RÐØø¹ñ DÐÙø ºñ 7ÐÚø°»ñ *ÐÛø0“ó±Ýh¥±ïhW±ùh Fù÷ï¾h8Fù÷Dì7F .ôÑ¯h(Fù÷>ì±=Fëç›hFù÷6ì±•+FàçÛøPXFù÷,ì±«FÔçÚøPPFù÷$ì±ªFÇçÙøPHFù÷ì±©FºçØøP@Fù÷ì±¨F­ç›hFù÷ì±•+FŸç›hFù÷ì• -’Ñ°½èð ¿µFhù÷¸î F½ ¿-éðOŠFŒhƒ°Fñ ,ZÐÒø € à,F&i'FEŽ¿¥håh ' -õÑ FW¹FEÓ #Éø  ‰ø0HF°½èðÚø0œBÐ F’ù÷,ìšiFEêÒ\E/Ð#iCE”¿Oð Oðà\E%Ð#i˜E,¿Oð Oð ’ù÷ÊíšñF¿’è "F¿ƒè [F@F)Fù÷
îÚø0"Éø P3‰ø Êø0½çOðÝçËh\F›EøÐÒø €»ç-éðCBƒ°FFFQÐÒø €i˜E%ÒÐø‰EVÐFù÷4ëiF˜EHÙÃh  +sÐù÷†íñ€F¿–è ƒè  ;FAF"Fù÷Èíki@F3ka°½èðƒ˜¿FùÙÕø‰EHÐFù÷ÂìiF˜EÒãh  +\Ðù÷\íñFÐ–è ƒè  ;F!FJFù÷žíki F3kaÕçCi#±ih"išBÓhF)F2Fù÷Êë ˜Çç ù÷8íñFÛÑÞç ·ëÜñ 	Yë	ù÷*íñ€FÐ–è ƒè HF£ç ù÷íñF¿–è ƒè   ¿ç·ë	Óñ Xëù÷íñF¿–è ƒè @F­çù÷ íñ€F¿–è ƒè   xç ¿-éðOŠFŒhƒ°Fñ ,ZÐÒø € à,F&i'FEŽ¿¥håh ' -õÑ FW¹FEÓ #Éø  ‰ø0HF°½èðÚø0œBÐ F’ù÷ëšiFEêÒ\E/Ð#iCE”¿Oð Oðà\E%Ð#i˜E,¿Oð Oð ’ù÷®ìšñF¿’è "F¿ƒè [F@F)Fù÷îìÚø0"Éø P3‰ø Êø0½çOðÝçËh\F›EøÐÒø €»ç-éðCBƒ°FFFQÐÒø €i˜E%ÒÐø‰EVÐFù÷êiF˜EHÙÃh  +rÐù÷jìñ€F¿–è ƒè  ;FAF"Fù÷¬ìki@F3ka°½èðƒ˜¿FùÙÕø‰EGÐFù÷¦ëiF˜EÒãh  +[Ðù÷@ìñFÐ–è ƒè  ;F!FJFù÷‚ìki F3kaÕçCi#±ih"išBÓhF)F2Fù÷î ˜Çç ù÷ìñFÛÑÞç :Òñ 	Yë	ù÷ìñ€FÐ–è ƒè HF¤ç ù÷ìñF¿–è ƒè   Àç·ë	Ññ Xëù÷ðëñF¿–è ƒè @F®çù÷äëñ€F¿–è ƒè   yç    šæÿêµ ¿½  vector::_M_fill_insert  basic_string::substr    basic_string::erase basic_string::_S_construct null not valid   {       }   ,       [       ]   ,       :           \   "       \   /       \   b       \   f       \   n       \   r       \   t       \   \       "   ,       vector::_M_range_check  -*-*-medium-*-*--13-*-*-*-*-*-*-*   -*-*-medium-*-*--12-*-*-*-*-*-*-*   -*-*-*-*-*--13-*-*-*-*-*-*-*    -*-*-*-*-*--12-*-*-*-*-*-*-*    -*-*-medium-*-*--14-*-*-*-*-*-*-*   -*-*-*-*-*--14-*-*-*-*-*-*-*    -*-*-*-*-*--*-*-*-*-*-*-*-* _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_MENU    _NET_WM_WINDOW_TYPE_DIALOG  _NET_WM_WINDOW_TYPE_DOCK    _NET_WM_ICON    CARDINAL    inputStyle  clientWindow    focusWindow filterEvents    _NET_WM_STATE   _NET_WM_STATE_SKIP_TASKBAR  _NET_WM_STATE_SKIP_PAGER    _NET_WM_STATE_ABOVE _NET_WM_STATE_STICKY    _XEMBED_INFO    _NET_SYSTEM_TRAY_S%i    _NET_SYSTEM_TRAY_OPCODE LANG    Could not open display.
    WM_PROTOCOLS    WM_DELETE_WINDOW    Couldn't open input method  queryInputStyle family  sans-serif  size    dpi charset scalable    antialias   hintstyle   E   S   C   A   P   E       F   1       F   2       F   3       F   4       F   5       F   6       F   7       F   8       F   9       F   1   0       F   1   1       F   1   2       P   R   I   N   T       S   C   R   O   L   L   O   C   K       P   A   U   S   E       B   R   E   A   K       B   A   C   K   S   P   A   C   E       R   E   T   U   R   N       C   A   P   S   L   O   C   K       S   H   I   F   T   L   O   C   K       D   E   L   E   T   E       L   E   F   T       R   I   G   H   T       H   O   M   E       E   N   D       t   y   p   e       K   E   Y       v   a   l   u   e       C   H   A   R       T   A   B       
       n   a   m   e       R   E   P   A   I   N   T       i   d       x       y       w   i   d   t   h       h   e   i   g   h   t       K   E   Y   B   O   A   R   D       s   h   i   f   t       c   t   r   l       a   l   t       c   o   m   m   a   n   d       M   O   U   S   E       a   c   t   i   o   n       M   O   V   E       b   u   t   t   o   n       B   U   T   T   O   N   _   D   O   W   N       B   U   T   T   O   N   _   U   P       N   O   T   I   F   Y       A   C   T   I   V   A   T   E       C   O   N   T   E   X   T   M   E   N   U       W   I   N   D   O   W       I   N   A   C   T   I   V   E       O   N   C   L   O   S   E       ø‘ÿ?—°°°¯ÿÿKŠŠ ¤² °$˜ æÔ žÞ ¦– Ø  ðìÔ ú˜ ŽDÔ Ú  †  ’   œ‘ÿ°© ÿÿ  (– LT     €‘ÿ°© ÿÿ  (– LT     d‘ÿ°¯ ÿÿ  Ü >  RˆŠ â  @‘ÿ°ª ÿÿ&  0l R$  (‘ÿ°ª ÿÿ  8„ Z4     ‘ÿ°¯8 ÿÿY  Œ pˆ Èæ ÐŠ ŒÊ º– Î  ðŠ ¸  ÞÊ Šž ´Ê Ö  âÊ „     ¤ÿ°¯8 ÿÿY  Œ pˆ Èæ ÐŠ ŒÊ º– Î  ðŠ ¸  ÞÊ Šž ´Ê Ö  âÊ „     <ÿ°¯8 ÿÿY  ì xè ÐÄ Úê ² ¼ö Î€ êê ²  Ô² þþ ž² ¾  È² ä     Ôÿ°¯8 ÿÿY  Œ pˆ Èæ ÐŠ ŒÊ º– Î  ðŠ ¸  ÞÊ Šž ´Ê Ö  âÊ „     lÿ°¯8 ÿÿY  Œ pˆ Èæ ÐŠ ŒÊ º– Î  ðŠ ¸  ÞÊ Šž ´Ê Ö  âÊ „     ÿ°¯ ÿÿ  Àè î   èŽÿ°© ÿÿ
  4 :  ±°° „    ±°° „    ¸Žÿ°¬# ÿÿ4  D¨ ˆ*    œŽÿ°ª ÿÿ  8^ d  „Žÿ°¯ ÿÿ  BˆÖ Ü   hŽÿ¯— ÿÿi0  ŽÜ	 Üâ îä „î ¬â ¸® Æ¾ ÒÜ	 ø  –Ü	 ¦’ ºü
 äÜ	 îÆ
 ü´
 ¬®Ü	 â	     ðÿ¯6— ÿÿ>ˆ  â`ô ò†     Ðÿ¯? ÿÿê  úÞ ¦Â     °ÿ°ª ÿÿ  &V N  ˜ÿ°« ÿÿDT Z  „ÿ¯?
 ÿÿË*Ð  „– Ž˜ ¼  ÈÒ â  ìì †  †  ª  ´   Î  Øº  ê  üÔ  ª<  ðî  úð  ¨	  ´	ª! È	  ê	Ä! „
  ’
Þ! ¬
  ¶
ø! Ð
  Ú
’" ì
  þ
¬" ¤@  î®" ø°" ¦  ´ò" ¾ô" ä  ð®# Š  ”È# ®  ¸â# Ò  Øü# ô  †–$ Œ8  Î˜$ Øš$ †  ”Ü$ žÞ$ Ä  Ð˜% ê  ô²% Ž  ˜Ì% ²  ¸Â( Ô  æÜ( ì4  ¨”* ²Þ( Ü  èÒ' òÔ' –  ¢Ž( º  Ä¨( Ü  ææ% þ  „€&    ²š& À>  †œ& ž& º  Æà& Ðâ& ô  €œ' ’  ¤Ö) ª   Ðø Úö ð  úô „ä š  ¦â ²  ÄØ Ò4  ”) š–) È  ÖÚ) àÜ) †  ’ü( ¤  ¶Ø) ¾n  ¶Ü+ ÀÚ+ Ú  èØ+ òÖ+ Œ  ˜È+ ¤  ¶Æ+ Ìò  Æ*Ô+ Ð*Ò+ è*  ô*Ð+ þ*Î+ –+  ¢+Ì+ ®+  À+Ê+ ¬Šÿ°¯ ÿÿ8  dˆô Žp   Šÿ°«
 ÿÿ  :„ x     tŠÿ°© ÿÿ  &B H  <‹ÿ   ´ŽÿXøÿø‘ÿ   ô‘ÿ°­€“ÿ   L“ÿ”øÿü“ÿ   ”ÿ øÿÄ”ÿ«±€•ÿ¬øÿ\—ÿ   d—ÿÀøÿè—ÿÐøÿ€˜ÿäøÿÄ›ÿDùÿŸÿ¤ùÿ,¢ÿúÿp¥ÿdúÿ´¨ÿ   l©ÿ°°¬€ªÿ   ˜ªÿ°°ª€@«ÿ   ô«ÿœúÿà¬ÿ­±€l­ÿ°ª€Œ®ÿ°®€ü®ÿ«±€<¯ÿ°ª€p¯ÿ   „¯ÿ€úÿ¼¯ÿ°°ª€è¯ÿ°°¨€0°ÿ°¯€ø°ÿ°°¨€ ±ÿ°¬€\±ÿ°­€$²ÿ°¬€€²ÿ«±€ð²ÿ°¯
€Ð³ÿHúÿØ³ÿLúÿà³ÿ°©€(´ÿ°­€|´ÿ°¬€È´ÿ°°¨€è´ÿ   è´ÿ(úÿ µÿ<úÿ¶ÿLúÿl·ÿ`úÿ¾ÿ   0¾ÿ°­€¾ÿÀúÿèÂÿ°¨€<ÃÿÐúÿ¼Åÿ°¨€ÆÿàúÿdÆÿ©±€„ÆÿèúÿÜÆÿôúÿ Ýÿ°¯€lßÿ¼ýÿôàÿÐýÿ„áÿäýÿÈáÿ©±€äáÿ   xâÿ°­€læÿ   dèÿ°¯€4éÿ°­€Œêÿ°¯€\ëÿ°­€°ìÿ       !\  ÝY  Z  EZ  á[         ¤      °      ¼      È      ×      á      ï      O     5½     ˆP          ˜P            õþÿo4
     ô"       
   {!           ¸Q    `           ,I     |G     °        þÿÿoìF  ÿÿÿo   ðÿÿopD  úÿÿo                                            P         ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O                                                                                                                                                                                                  ´U GCC: (Debian 4.7.2-5) 4.7.2 A6   aeabi ,   7-A 
A	
", .shstrtab .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .text .fini .rodata .ARM.extab .ARM.exidx .eh_frame .init_array .fini_array .jcr .dynamic .got .data .bss .comment .ARM.attributes                                                    ô   ô   $                  "             	                  öÿÿo   4
  4
  à               (             à              0         ô"  ô"  {!                 8   ÿÿÿo   pD  pD  |               E   þÿÿo   ìF  ìF                  T   	      |G  |G  °               ]   	      ,I  ,I  `              f         ŒO  ŒO  
                  a         ˜O  ˜O  Ô	                l         pY  pY  Äc                 r         4½  4½                    x         <½  <½  \	                 €         ˜Æ  ˜Æ  œ                 ‹     p‚   4Î  4Î  P                –         „Ð  „Ð                              ˆP ˆÐ                    ¬         ˜P ˜Ð                    ¸         œP œÐ                    ½          P  Ð                 Æ         ¸Q ¸Ñ  ü                Ë         ´U ´Õ                    Ñ         ¸U ¸Õ  0                 Ö      0       ¸Õ                   ß     p        ÔÕ  7                                Ö  ï                      0½          0½            ˜O            ¨O            ¬O            ôO            øO            |P            €P            ¤P            ¨P            ØP            ÜP            èP            ìP            ˆQ            ŒQ            R            R            @S            DS            (T            ,T            dU            hU            èV            ìV            äX            èX          $a $d $t                                                                                                                                                                                                           dwaggdi_armhf_v2.so                                                                                 0000644 0001750 0001750 00000205577 15030772356 014131  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ELF          (    @Y  4   è  4    (     pþ  þ  þ  X  X                       t  t      €     t  t€ t€ 0  `      €     Œ  Œ€ Œ€              ô   ô   ô   $   $         Qåtd                                   GNU  *:{™Ïu¶#Žº¤À0ÏVñ°?  >  Þ   0   ¤         J      ¿   í       Ä   ³   ™   2  »   8   ]   .         
         _   j   ‘   6   Ú               ×   c   ¥   ä                 Ü   5   ª   7          à       #  «   ï   H                    ”   ¬                     ÿ   z                 l   …     ‰       y           ó       ü   –               ã   ,       ¾   ô           3      &  p       *  ,              F   ?   ç      a           Ž   °       w       |   }           Ì   ‚       .             º   !              Š   '      e   Ñ   §   ù       ’   g          8  £   +  š   Â   †   3       6  Ý           \   !       „   "   Á           I   "                 ±   (   ¶   &   Ÿ      ®   $   K      R   k   Î             m   s       S   µ   ©       4  Ò          ˆ     =      >   t   :   ¯       ¢   v      á   ¦   ¡       M   å   -      æ   V                   ñ   ›   W   ž           5                   ¹   f   2   [   ²              A   +   9   ¨   G   €   Û       )           —   -     õ   ý           “       Ó                                                                                                  ö                                                Ù               	                   è                                                  ­         Ð                                                      *               (  L                  :            =   '   U   Ø     Ç      ß   Y   Q       %                ´            n           q       ;              ò                       P   u                   ½   ¸                  þ           T   Ê   D       ¼   ‡   â   Z      î           é      Ï   r       %         Œ          ƒ   4   ø   #     ˜   ë                  ú   `               Ô   ÷   1  Õ      ð                   b             Ö       d   Æ   ~           1   /                  ì           Í           X       @                               ^           h              
   À       È   C                 œ   ;   Ã        Ë                  B      i     	                                 0                  N   ê   E   9                              /  Å       û           {                   )      7           <  <         o   É      ‹   O                   ·   •               x                   $  ƒ   ­       
    R Sh D äQ L€@ € P™ ÁD „€ ¤	 ¨€X(€	‚lª×ËS¤X7J  4d*„$h	  F@  Ð	žFÄ ¢“ „	‰$   I|@ˆ@ Æh@	   „à­   ¯   ±   ²   ´                   µ   ¶   ·   ¸   º   »       ¼               ½   À   Á   Ã       Å   Æ   Ç       Ë   Í   Ï       Ð       Ó       Ô   Õ   Ö   ×   Ø       Ù                   Û       ß   à   ã       å       è   ê       ë   ì   î   ï   ð   ñ       ò   ô       ö           ú       û   ý       ÿ                                   	                                           #  $  %          (  +  .  /  0      1  2      3  5          6      9  ;  <      =  ê8* k3ô@°-€7ÎÛØ—Ò¦ìøð-ˆ=¯ÇüB™¥VÄKË…Y}ºKÐjïeÃ¹ñÓKFÏyÈ`6—Øñ§–âü®°ÅFØÒ±c¯=²FïK	wË„ º)A]#Ë Rk)tVküd¹rpTsÚÌ"á‡2"ZÀÄèÍ¨†ñUî‚ “ðˆ0$6L®yY IÉC©²×…ì¢Y·T3÷T¸k‘«xá“]ÖÖ¦ìq
Ð>òÿþk`ÄÄó§Ü«§—ñ-†ÚÆR+À”5+fï¾¾KÐûúä:xY "bã·PFÏÜ=â›5ØFÏ©y|ª*¡Ò©÷`ÇåáÝñÉF«.æ“˜h­ÙqXØ"!™_,vT<”ŒÍ)Dý_zò£	ª‰‡KvÕðˆô™ðˆã’ñ¦à?vºŸLSö 	È›GÍ7‰Gvÿ§²¹}dMåâ÷áö6£Å½¯õQü«æà«Ì=èÌçÇ7»ã’|»å Õü˜¯†ëaÕþÂKÐYï—yëÓï3ªÒ=Üæje ¯4èuÜFÏ[CEÕìd’s*•ûË»²}Öa8ý‚îÄŸ-î‚nÎÈÕØ¶Yl°H/Û)é%Q&'ZÍ)’ÉÅœ¯[`NØØ¬ÝXè•ÉÅœ¤Q®×–ÉÅœkš|¿ÚWßÆî5žðˆÃ­ê)l7NƒC3Da„£3M0¨‘BŒ›@£ÉÅœ:À`ïyÉ•ì¢w5!SìÌç                    ŒO       
     ˆ€       Ù             >                          µ             +             ‹             á             3             •             n             µ             è             [             ê                            a               «             #
             Ý                           ×             ô             t             ½             ›             Œ                          «             "             z              g             #             Ÿ             Û             "                          è             ‡             .             3             á             ì             @             ö             þ             ¡              ù                                         ¯             ‰                           ó             ±	             ·             ¡             ¦             2             ¶	             8                                         ¹             i             #             †             	             a             ¢             a             ñ             ™             <             1              Ó             …             Æ             ÿ             “             ô                           7             {             •             ÿ                          é             I             .             x             €             \             Ù             ä             ¥             Ç             ü             n                          ¾             	             ù             Ï             °             c             ž             ’             )             ð             x             Î             ¢             ã             Ç             €             Æ             Ï             Û             ¶             ß                          ½             p             £              Ÿ             ’              N             %             ½             ¿             ^                          ³             ×                          {             Æ             ^             ª             R             °             H             ‡             g             t             É             	             ¤             V
             ¡	             ‡             §             á                          Å             ú             ä             N
             (             É             -             ½             ½	                          }             p             ë             R           "   ü             O             ˜  àp       W  ¤k  ¤     <   k  ¤     u  xh  L     é  ,¼     "  é  °Š  <     \  H³      "  Z  ¤º  ˆ  "  ·
  Ä†        <_  x     o    ì  ˜   "  Z	  Ìr         ŒO       
   Ì  $     [   p  <     ±  X…  œ     å  g  p     Ù
  ´      "  ò  Pj       ß  †      4  $p  |     ˆ  Ü`  x        ,b  X    <  œ†        hj  ˜     ê  è®  l    I  xÄ       1  ¸†      Ø  ¼†      Í  `Ä       P  Œ~  ¨     $  ¤†      Â  Øn       ÷  Á  8  "    <Ä  $       ˆÄ       J  †        ”o         À¶  L  "  Î  Ì½     "  )  ´_  ”     k  4  $    Ü   Š  °     B	  r  ´     ½  ,¼     "    ¸  L  "  ê  o  Œ     s  x‰  ˆ     $  ŒÍ  0     ä   ³      "  n  lÌ       Q  HÂ  ô  "    D¼  ˆ  "  Ì  Ta  x     Æ  ë     "  6  T±  ü     K  ¬†      Ç  HÊ  Ð  "  ‹  Ì  $       <Ì  0     s  ˆ³  `   "    °†      ¥  Ä  Ä     Ö  ðn       ù  X¹  L  "  À
  ´      "  °   ç      ÿ  Ä^  x      !  ¤…       è  Ìa  `     Å  Ô…      !  ¤…       É  h³      "  [  ´†      ‡  °]      Š  ¼Ó  ü     ò
  (´  L  "  ²  <Ä  $     ·  è³      "  ^  È…      ¯  üh  8     ~
  È†      m  H`  ”     Ð  À†        àÒ  Ü       Üp       ™  ¼…      €  Ø²  0     {	  Øt  t	    :   †      Ì  «  Ü    G  äg  0     ¹   ³      "  D  Xd  ø    2  (³      "  ©
  h~  $     .!  Ô†       ÿ  ÌÒ         H³      "  §  ¤m  4    2  ë     "  &!  Ô†          ¸ì        b  h  d     é	  XÏ  t    !  Ô†       ì  ˆ³  `   "  5  TÅ  ð    ù   ¤…       Þ  °…      Ä  ô…  „      Pf  À     X  ø…      1  ¨†      [  P²  ˆ     —  Äh  8     Ê  4i        ¿  ô  "  ¯  èp  0    r  Hl  ˜     ¦  h³      "  6  HÙ      /  DÊ         ‹  |    B  ¼Í       û  ¸Ô      Š
  L~       »  pâ      u   èY       !  Ô†       ]  ÜÎ  |     ¢  è³      "    „c  Ô     <  ä½  8  "    Ì†        €g  d     M  à…      G  ìŠ  ¤     •  àl  Ä     E  ØÝ  ˜    N  tµ  L  "  C  † €       Ì½     "  e  €Ä         (³      "   __gmon_start__ _init _fini _ITM_deregisterTMCloneTable _ITM_registerTMCloneTable __cxa_finalize _Jv_RegisterClasses main _ZNSt8ios_base4InitC1Ev __aeabi_atexit _ZNSt8ios_base4InitD1Ev _ZNSt6vectorIP8DWAImageSaIS1_EED2Ev _ZdlPv _ZNSt6vectorIP8DWAImageSaIS1_EED1Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED2Ev _ZNSt6vectorIP13DWANotifyIconSaIS1_EED1Ev _ZNSt6vectorIP9DWAWindowSaIS1_EED2Ev _ZNSt6vectorIP9DWAWindowSaIS1_EED1Ev _ZNSt6vectorIP7DWAFontSaIS1_EED2Ev _ZNSt6vectorIP7DWAFontSaIS1_EED1Ev _ZN10JSONWriterD2Ev _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_ _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE _ZN10JSONWriterD1Ev _Z20removeWindowByHandlem XftDrawDestroy XftColorFree memmove windowList display visual colormap __aeabi_unwind_cpp_pr0 _Z17getWindowByHandlem _Z13getWindowByIDi _Z17getNotifyIconByIDi _ZSt20__throw_out_of_rangePKc notifyIconList _Z21getNotifyIconByHandlem _Z11getFontByIDi fontList _ZN11ImageReaderD2Ev _ZN11ImageReaderD1Ev _Z12getImageByIDi imageList _Z17ChooseBetterStylemm _Z16addImageToBufferPwRPm _ZN11ImageReaderC1Ev _ZN11ImageReader4loadEPKw _ZN11ImageReader8isLoadedEv _ZN11ImageReader8getWidthEv _ZN11ImageReader9getHeightEv malloc _ZN11ImageReader8getPixelEjjPhS0_S0_S0_ _ZN11ImageReader7destroyEv __cxa_end_cleanup __gxx_personality_v0 DWAGDIUnloadFont XFreeFontSet __aeabi_unwind_cpp_pr1 _Z13loadFontType0P7DWAFontPw XCreateFontSet XFreeStringList XFontsOfFontSet DWAGDIPosSizeWindow XFreePixmap XGetWindowAttributes XCreatePixmap XMoveResizeWindow DWAGDIDestroyWindow XDestroyIC XDestroyWindow DWAGDISetTitle XwcTextListToTextProperty XSetWMName DWAGDIGetScreenSize screen DWAGDIGetImageSize DWAGDIShow XMapWindow XMoveWindow DWAGDIHide XUnmapWindow DWAGDIToFront XRaiseWindow DWAGDIPenColor _Znwj XftColorAllocValue DWAGDIPenWidth DWAGDIDrawLine XSetLineAttributes XSetForeground XDrawLine DWAGDIDrawEllipse XDrawArc DWAGDIFillEllipse XFillArc DWAGDIFillRectangle XFillRectangle DWAGDIUnloadImage DWAGDIDrawImage XDrawPoint _Z13getFontAscentii DWAGDIGetTextHeight DWAGDIGetMousePosition XQueryPointer root DWAGDIRepaint memset XSendEvent DWAGDIClipRectangle XSetClipRectangles DWAGDIClearClipRectangle XSetClipMask DWAGDISetClipboardText DWAGDIGetClipboardText DWAGDIUpdateNotifyIcon _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_ _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_ _ZNSbIwSt11char_traitsIwESaIwEED1Ev DWAGDIDestroyNotifyIcon _Z10drawNotifyP13DWANotifyIconii _Z13detectKeyTypeP9DWAWindowP7_XEvent XwcLookupString free wcslen _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj _ZN10JSONWriter9addStringESbIwSt11char_traitsIwESaIwEES3_ _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKw realloc _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_ jonextevent _Z17detectMouseButtonP7_XEvent DWAGDIEndLoop exitloop _ZNSt6vectorIjSaIjEED2Ev _ZNSt6vectorIjSaIjEED1Ev _ZNSt6vectorIP9DWAWindowSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z9addWindowimP4_XGCP4_XIC DWAGDINewWindow XWhitePixel XCreateWindow XSetWMProtocols XCreateGC wcpcpy wcstok XInternAtom XChangeProperty XCreateIC XGetICValues XSetICFocus XSelectInput XAllocSizeHints XSetWMNormalHints XFree screenid wm_delete_window im _ZNSt6vectorIP13DWANotifyIconSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z13addNotifyIconi DWAGDICreateNotifyIcon XMatchVisualInfo XCreateColormap sprintf XGetSelectionOwner _ZNSt6vectorIP7DWAFontSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z7addFonti _ZNSt6vectorIP8DWAImageSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z8addImagei DWAGDILoadImage _ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj _Z11wcharToUcs4PKw _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED2Ev _ZNSt3mapIjjSt4lessIjESaISt4pairIKjjEEED1Ev _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E DWAGDILoop getenv setlocale XOpenDisplay XSetLocaleModifiers XScreenOfDisplay XOpenIM XGetIMValues select XPending XNextEvent _ZN10JSONWriter5clearEv _ZN10JSONWriter11beginObjectEv _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEi _ZN10JSONWriter9endObjectEv _ZN10JSONWriter9getStringEv XCopyArea _ZN10JSONWriter10addBooleanESbIwSt11char_traitsIwESaIwEEb XRefreshKeyboardMapping XSetInputFocus g_callEventMessage wm_protocols best_style x11_fd in_fds tv hashToFont charToFontHash stderr XftFontClose _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base XFreeColormap XCloseDisplay fwrite _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED2Ev _ZNSt3mapIjP8_XftFontSt4lessIjESaISt4pairIKjS1_EEED1Ev _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE16_M_insert_uniqueERKS4_ _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS4_ERKS4_ _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE16_M_insert_uniqueERKS2_ _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS2_ERKS2_ _Z17findXtfFontbyCharji FcPatternCreate FcPatternAddString FcPatternAddInteger FcPatternAddDouble FcCharSetCreate FcCharSetAddChar FcPatternAddCharSet FcPatternAddBool FcConfigSubstitute FcDefaultSubstitute FcFontMatch FcPatternHash FcPatternDestroy FcCharSetDestroy XftFontOpenPattern DWAGDIDrawText XftDrawString32 XftTextExtents32 XwcDrawString XftDrawCreate DWAGDIGetTextWidth XwcTextEscapement _Z13loadFontType1P7DWAFontPw XftInit DWAGDILoadFont _ZN10JSONWriterC1Ev pthread_cancel _ZN11ImageReaderC2Ev _ZNSt6vectorIhSaIhEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPhS1_EEjRKh _ZSt20__throw_length_errorPKc _ZN11ImageReader7readBMPEPKw wcstombs _ZNSt8ios_baseC2Ev _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate _ZNSi4readEPci _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv _ZNSt12__basic_fileIcED1Ev _ZNSt6localeD1Ev _ZNSt8ios_baseD2Ev _ZNSi5seekgExSt12_Ios_Seekdir _ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev _ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev _ZNSt9basic_iosIcSt11char_traitsIcEED2Ev _ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt13basic_filebufIcSt11char_traitsIcEE _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZN10JSONWriterC2Ev _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj _ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj _ZN10JSONWriter10beginArrayEv _ZN10JSONWriter8endArrayEv _ZN10JSONWriter7addPropESbIwSt11char_traitsIwESaIwEE _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_ _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv _ZN10JSONWriter6lengthEv _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED2Ev _ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE _ZTVSt15basic_streambufIwSt11char_traitsIwEE _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEl _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E _ZNSt6localeC1Ev _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIlEERS2_T_ _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_ wmemcpy _ZSt19__throw_logic_errorPKc _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev _ZNSt9basic_iosIwSt11char_traitsIwEED2Ev _ZTVSt9basic_iosIwSt11char_traitsIwEE _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEy _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIyEERS2_T_ _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEm _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertImEERS2_T_ _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIbEERS2_T_ _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev libX11.so.6 libXpm.so.4 libXft.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 _edata __bss_start __bss_start__ __bss_end__ __end__ _end GLIBC_2.4 GCC_3.5 CXXABI_ARM_1.3.3 GLIBCXX_3.4.9 CXXABI_1.3 GLIBCXX_3.4                                                                                                                                                                                                                                                                                                                                                                                                                           ï          ii   3!        á          U&y   =!        È          £¯I   E!     ‰)   V!     Ó¯k   d!     t)’   o!      t€    x€    |€    €€    „€     …    à„  ä„ 	  è„ ö  ì„   ð„   ô„   ø„  ü„    … !  …  … 5 … Ñ  … *  … 0  … 3  …   … >  $… ?  (… : ,… µ  0… J  4…  8… ±  <… N  @… ê  D… T  H…   L…  P… õ  T… å  X… È  \… Ä  `… ; d… É  h… À  l… x  p… Ì  t… ~  x… é  |… …  €… þ  „…  ˆ… ’  Œ… ü  … ó  ”… 3 ˜… Þ  œ… ª  °   ´   ¸ è  ¼   À   Ä   È   Ì 6 Ð 
  Ô  Ø   Ü   à / ä   è Í  ì   ð 9 ô   ø   ü    ‚   ‚   ‚   ‚   ‚   ‚   ‚   ‚    ‚   $‚   (‚    ,‚ Ð  0‚ ò  4‚ ÷  8‚ Ú  <‚ "  @‚ #  D‚ $  H‚ %  L‚ &  P‚ '  T‚ (  X‚ )  \‚ +  `‚ ,  d‚ ÿ  h‚ -  l‚ 2 p‚ .  t‚ /  x‚ 1  |‚  €‚ 2  „‚ Ë  ˆ‚ 4  Œ‚  ‚ < ”‚ 5  ˜‚ 6  œ‚ 7   ‚ 8  ¤‚ Ç  ¨‚ 9  ¬‚ :  °‚ ;  ´‚ <  ¸‚ =  ¼‚ @  À‚ A  Ä‚ B  È‚ C  Ì‚ D  Ð‚ E  Ô‚ F  Ø‚ G  Ü‚ H  à‚ I  ä‚ K  è‚ ´  ì‚ L  ð‚ M  ô‚ O  ø‚ P  ü‚ Q   ƒ R  ƒ S  ƒ U  ƒ ø  ƒ V  ƒ W  ƒ Â  ƒ X   ƒ  $ƒ  (ƒ Õ  ,ƒ Y  0ƒ Ã  4ƒ í  8ƒ º  <ƒ Z  @ƒ [  Dƒ \  Hƒ ]  Lƒ ë  Pƒ à  Tƒ ^  Xƒ ×  \ƒ  `ƒ _  dƒ `  hƒ Ï  lƒ ß  pƒ a  tƒ b  xƒ c  |ƒ d  €ƒ e  „ƒ f  ˆƒ g  Œƒ 
 ƒ h  ”ƒ i  ˜ƒ j  œƒ k   ƒ l  ¤ƒ m  ¨ƒ n  ¬ƒ o  °ƒ p  ´ƒ q  ¸ƒ r  ¼ƒ & Àƒ s  Äƒ t  Èƒ ð  Ìƒ á  Ðƒ û  Ôƒ u  Øƒ v  Üƒ Ü  àƒ w  äƒ ¼  èƒ y  ìƒ z  ðƒ {  ôƒ ¶  øƒ |  üƒ }   „ Ê  „ ù  „   „ €  „   „ ¾  „ Ó  „ ‚   „ ƒ  $„ „  („ ¸  ,„ â  0„ †  4„ ‡  8„ ˆ  <„ ‰  @„ Š  D„ ‹  H„ Œ  L„   P„ Ž  T„   X„   \„ ‘  `„ + d„ “  h„ ”  l„ •  p„ –  t„ —  x„ ˜  |„ æ  €„ ™  „„ š  ˆ„ ›  Œ„ ' „ œ  ”„   ˜„ ž  œ„ Ÿ   „    ¤„ ¡  ¨„ Î  ¬„ ¢  °„ ¤  ´„ ¥  ¸„ ¦  ¼„ §  À„ ¨  Ä„ ã  È„ ©  Ì„ ª  Ð„ «  Ô„ ï  Ø„ " Ü„ ¬  @-é% ë€½èà-åàŸåààð¾åü1  ÆâÊŒâüñ¼å ÆâÊŒâôñ¼å ÆâÊŒâìñ¼å ÆâÊŒâäñ¼å ÆâÊŒâÜñ¼å ÆâÊŒâÔñ¼å ÆâÊŒâÌñ¼å ÆâÊŒâÄñ¼å ÆâÊŒâ¼ñ¼å ÆâÊŒâ´ñ¼å ÆâÊŒâ¬ñ¼å ÆâÊŒâ¤ñ¼å ÆâÊŒâœñ¼å ÆâÊŒâ”ñ¼å ÆâÊŒâŒñ¼å ÆâÊŒâ„ñ¼å ÆâÊŒâ|ñ¼å ÆâÊŒâtñ¼å ÆâÊŒâlñ¼å ÆâÊŒâdñ¼å ÆâÊŒâ\ñ¼å ÆâÊŒâTñ¼å ÆâÊŒâLñ¼å ÆâÊŒâDñ¼å ÆâÊŒâ<ñ¼å ÆâÊŒâ4ñ¼å ÆâÊŒâ,ñ¼å ÆâÊŒâ$ñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâñ¼å ÆâÊŒâüð¼å ÆâÊŒâôð¼å ÆâÊŒâìð¼å ÆâÊŒâäð¼å ÆâÊŒâÜð¼å ÆâÊŒâÔð¼å ÆâÊŒâÌð¼å ÆâÊŒâÄð¼å ÆâÊŒâ¼ð¼å ÆâÊŒâ´ð¼å ÆâÊŒâ¬ð¼å ÆâÊŒâ¤ð¼å ÆâÊŒâœð¼å ÆâÊŒâ”ð¼å ÆâÊŒâŒð¼å ÆâÊŒâ„ð¼å ÆâÊŒâ|ð¼å ÆâÊŒâtð¼å ÆâÊŒâlð¼å ÆâÊŒâdð¼å ÆâÊŒâ\ð¼å ÆâÊŒâTð¼å ÆâÊŒâLð¼å ÆâÊŒâDð¼å ÆâÊŒâ<ð¼å ÆâÊŒâ4ð¼å ÆâÊŒâ,ð¼å ÆâÊŒâ$ð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâð¼å ÆâÊŒâüÿ¼å ÆâÊŒâôÿ¼å ÆâÊŒâìÿ¼å ÆâÊŒâäÿ¼å ÆâÊŒâÜÿ¼å ÆâÊŒâÔÿ¼å ÆâÊŒâÌÿ¼å ÆâÊŒâÄÿ¼å ÆâÊŒâ¼ÿ¼å ÆâÊŒâ´ÿ¼å ÆâÊŒâ¬ÿ¼å ÆâÊŒâ¤ÿ¼å ÆâÊŒâœÿ¼å ÆâÊŒâ”ÿ¼å ÆâÊŒâŒÿ¼å ÆâÊŒâ„ÿ¼å ÆâÊŒâ|ÿ¼å ÆâÊŒâtÿ¼å ÆâÊŒâlÿ¼å ÆâÊŒâdÿ¼å ÆâÊŒâ\ÿ¼å ÆâÊŒâTÿ¼å ÆâÊŒâLÿ¼å ÆâÊŒâDÿ¼å ÆâÊŒâ<ÿ¼å ÆâÊŒâ4ÿ¼å ÆâÊŒâ,ÿ¼å ÆâÊŒâ$ÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâÿ¼å ÆâÊŒâüþ¼å ÆâÊŒâôþ¼å ÆâÊŒâìþ¼å ÆâÊŒâäþ¼å ÆâÊŒâÜþ¼å ÆâÊŒâÔþ¼å ÆâÊŒâÌþ¼å ÆâÊŒâÄþ¼å ÆâÊŒâ¼þ¼å ÆâÊŒâ´þ¼å ÆâÊŒâ¬þ¼å ÆâÊŒâ¤þ¼å ÆâÊŒâœþ¼å ÆâÊŒâ”þ¼å ÆâÊŒâŒþ¼å ÆâÊŒâ„þ¼å ÆâÊŒâ|þ¼å ÆâÊŒâtþ¼å ÆâÊŒâlþ¼å ÆâÊŒâdþ¼å ÆâÊŒâ\þ¼å ÆâÊŒâTþ¼å ÆâÊŒâLþ¼å ÆâÊŒâDþ¼å ÆâÊŒâ<þ¼å ÆâÊŒâ4þ¼å ÆâÊŒâ,þ¼å ÆâÊŒâ$þ¼å ÆâÊŒâþ¼å ÆâÊŒâþ¼å ÆâÊŒâþ¼å ÆâÊŒâþ¼å ÆâÊŒâüý¼å ÆâÊŒâôý¼å ÆâÊŒâìý¼å ÆâÊŒâäý¼å ÆâÊŒâÜý¼å ÆâÊŒâÔý¼å ÆâÊŒâÌý¼å ÆâÊŒâÄý¼å ÆâÊŒâ¼ý¼å ÆâÊŒâ´ý¼å ÆâÊŒâ¬ý¼å ÆâÊŒâ¤ý¼å ÆâÊŒâœý¼å ÆâÊŒâ”ý¼å ÆâÊŒâŒý¼å ÆâÊŒâ„ý¼å ÆâÊŒâ|ý¼å ÆâÊŒâtý¼å ÆâÊŒâlý¼å ÆâÊŒâdý¼å ÆâÊŒâ\ý¼å ÆâÊŒâTý¼å ÆâÊŒâLý¼å ÆâÊŒâDý¼å ÆâÊŒâ<ý¼å ÆâÊŒâ4ý¼å ÆâÊŒâ,ý¼å ÆâÊŒâ$ý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâý¼å ÆâÊŒâüü¼å ÆâÊŒâôü¼å ÆâÊŒâìü¼å ÆâÊŒâäü¼å ÆâÊŒâÜü¼å ÆâÊŒâÔü¼å ÆâÊŒâÌü¼å ÆâÊŒâÄü¼å ÆâÊŒâ¼ü¼å ÆâÊŒâ´ü¼å ÆâÊŒâ¬ü¼å ÆâÊŒâ¤ü¼å ÆâÊŒâœü¼å ÆâÊŒâ”ü¼å ÆâÊŒâŒü¼å ÆâÊŒâ„ü¼å ÆâÊŒâ|ü¼å ÆâÊŒâtü¼å ÆâÊŒâlü¼å ÆâÊŒâdü¼å ÆâÊŒâ\ü¼å ÆâÊŒâTü¼å ÆâÊŒâLü¼å ÆâÊŒâDü¼å ÆâÊŒâ<ü¼å ÆâÊŒâ4ü¼å ÆâÊŒâ,ü¼å ÆâÊŒâ$ü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâü¼å ÆâÊŒâüû¼å ÆâÊŒâôû¼å ÆâÊŒâìû¼å ÆâÊŒâäû¼å ÆâÊŒâÜû¼å ÆâÊŒâÔû¼å ÆâÊŒâÌû¼å ÆâÊŒâÄû¼å ÆâÊŒâ¼û¼å ÆâÊŒâ´û¼å ÆâÊŒâ¬û¼å ÆâÊŒâ¤û¼å    D ŸåDŸå à 0 á ’ç  Rã  
ºîŸ“á@â‘/ƒá  Rãúÿÿºîÿ/á  å @â  ƒåÿ/áT( Ð  D ŸåDŸå à 0 á ’ç  Rã  
ºîŸ“á@â‘/ƒá  Rãúÿÿºîÿ/á  å @â  ƒåÿ/á ( Ð     ãÿ/á8@-é,PŸå,@ŸåPà  áÂýÿë 0Ÿå@à Ÿå  á à”ç8@½è%ÿÿê¤+ ' p  €+ ø@-éXAŸåXQŸå@à  á°ýÿëLaŸåL1ŸåPà`à•ç  á  áÿÿë41Ÿå @ ãp•ç  áoþÿë$1Ÿå  á  á•ç	ÿÿë1Ÿå  á •ç0€â0€å0€å 1Ÿå@€å@€å@€å•çýþÿëì0Ÿå  á •ç0€â0€å0€åØ0Ÿå@€å@€å@€å•çñþÿëÄ0Ÿå  á0•ç  á @ƒå@ƒå@ƒå¬0Ÿå•ççþÿë¤0Ÿå  á0•ç  á @ƒå@ƒå@ƒåŒ0Ÿå•çÝþÿë„0Ÿå  á0•ç  á @ƒå@ƒå@ƒål0Ÿå•çÓþÿëd0Ÿå  á0•ç  á @ƒå@ƒå@ƒåL0Ÿå•çø@½èÈþÿê`+ D' <+ p  Ü  Ô  ¨  ”  d  ¼  ì  <  è  à  `  ¬  T  ô  8@-é,PŸå,@ŸåPà  áEýÿë 0Ÿå@à Ÿå  á à”ç8@½è¨þÿêØ* œ% p  Œ) 0Ÿå Ÿå0à0“ç  Sãÿ/ýÿêh% L  @-é80Ÿå8 Ÿå0à  à0ƒâ0`à Sã$0Ÿå0à€½˜ Ÿå0“ç  Sã€½3ÿ/á€½è@) <) (% t  @-é@ Ÿå@0Ÿå  à0à0`à4 ŸåC1 á à£?ƒàÃ0°á€½ Ÿå ’ç  Rã€½ á2ÿ/á€½èì( è( Ø$ |  L Ÿå@-é àD0Ÿå  Òå0à  Rã€½4 Ÿå0“ç  Sã  
(0Ÿå ŸçðþÿëÃÿÿë0Ÿå  ã0à  Ãå€½è”( ˆ$ ø  d( T( 4 Ÿå@-é  à,0Ÿå  å0à  Rã  
 Ÿå0“ç  Sã   
3ÿ/á@½è¿ÿÿê#  $ P  ø@-éôpŸåô0Ÿåpà`—ç–èÀbàLÁ°áø€½ @’å0”å  Sá 0     ê@²åQ á”å  Qá  
0ƒâ \á÷ÿÿø€½è P ã ”å  Pã  
ýÿë 0 ã0„å0”å  Sã  
x Ÿå —çt Ÿå  å—çl Ÿå ‘å —ç  ’åÀýÿë ”åŒüÿë 0 ã0„å	 –è €à€â Qá  
 aàB!°á  
! áúýÿë0–å0Câ  á0†åø@½èzüÿêà# ì  ¤  À  Ä  h0Ÿåh Ÿå0à@-å0“ç “è@aàDA°á  
  ‘å0’å  Sá	  
 0 ã  ê ±åÀ’å  \á  
0ƒâ Sáøÿÿ   ã  á ½èÿ/á  áúÿÿêÐ" ì  h0Ÿåh Ÿå0à@-å0“ç “è@aàDA°á  
  ‘å 0’å  Sá	  
 0 ã  ê ±å À’å  \á  
0ƒâ Sáøÿÿ   ã  á ½èÿ/á  áúÿÿêX" ì  8@-é|0Ÿå| Ÿå0à0“ç “è@aàDA°á  
  ‘åPDâ 0’å  Sá 0   	  ê Sá  
 ±å À’å  \á  
0ƒâ Sáöÿÿš   ã  á8€½è  á  á8€½è Ÿå  àeüÿëÜ! è  „Œ  8@-é|0Ÿå| Ÿå0à0“ç “è@aàDA°á  
  ‘åPDâ0’å  Sá 0   	  ê Sá  
 ±åÀ’å  \á  
0ƒâ Sáöÿÿš   ã  á8€½è  á  á8€½è Ÿå  à@üÿëH! è  ð‹  h0Ÿåh Ÿå0à@-å0“ç “è@aàDA°á  
  ‘å 0’å  Sá 0     ê ±å À’å  \á  
0ƒâ Sáøÿÿ   ã  á ½èÿ/á  áúÿÿê¸  `  h0Ÿåh Ÿå0à@-å0“ç “è@aàDA°á  
  ‘å 0’å  Sá 0     ê ±å À’å  \á  
0ƒâ Sáøÿÿ   ã  á ½èÿ/á  áúÿÿê@  T    Pã  
  Qã  
D0Ÿå  !à0à  Sã
  
0 â â Sá  
 Sã  
  áÿ/á< âSãúÿÿ  á  áÿ/á  ðO-é<ÐMâ @ á â  á£üÿë â á{ýÿë âüÿë  PãC  
 âøûÿë @ á âªûÿë à €â å  á¼üÿë @ á  Šå âìûÿë  „å â @šåûÿë ` ã€ ãâ°â „å âáûÿë @â  Vá  Šp á @ ãQ á  ê0â â
è á  á0â`üÿë ÝåÀÝå ÝåÝå( á 0šå,‚á  ‚á$‚á ƒç@„âP…â â€„àyûÿë @â  Táæÿÿš`†âÛÿÿê âÑüÿë å  Pã   
Mûÿë å<Ðâð½è åöÿÿê â¢üÿëûÿëøE-é¼ Ÿå¼0Ÿå
 àpšç@—èÀfàLÁ°áø…½ @–å 0”å  Sá   0     ê@²åQ á ”å  Qá  
0ƒâ Sá÷ÿÿø…½è P ã0”å  Sã  T0Ÿå”å0šç  “å•ûÿë@—è †à€â Xá  
0aàC!°á  
! á“üÿë€—å€Hâ  á€‡åøE½èûÿê `  ¤   0 ãÈÁŸå0@-éÀà0€å¼1Ÿå$ÐMâ¸ŸåPœç0â @ áà  •å â 0å0â¤ûÿë  Pã „å  
0å  Sã  Ú åtüÿë 0 ã0„å0„å ”åâ âOüÿë  Pã  Ú åÀ”å Q‚à’ä ”åH0‘åL‘å Pá0„µ0ƒà SáÀ Á0„Å Ráóÿÿ  ã$Ðâ0€½èŸå0â  •åà 0å â0âyûÿë  Pã „åÔÿÿàŸå0â  •åà 0å â0ânûÿë  Pã „åÉÿÿ¸Ÿå0â  •åà 0å â0âcûÿë  Pã „å¾ÿÿŸå0â  •åà 0å â0âXûÿë  Pã „å³ÿÿhŸå0â  •åà 0å â0âMûÿë  Pã „å¨ÿÿ@Ÿå0â  •åà 0å â0âBûÿë „åžÿÿê8 ¤  Lˆ  À‡  ¸‡  ¬‡   ‡  ˜‡  Œ‡  ðE-élÐMâ  á€ áp áˆ`åüÿë”ÀŸåÀà @Pâ   
ˆ0Ÿå”åPœç  •åVüÿë ”å  Pã  
ÿúÿë 0 ã0„å”å â  •å7üÿë Àå”å  •å  á0 á Àå`üÿë À•å”å  „å$€„å
  á0 á „å på`å  áûÿëlÐâð…½è, ¤  ø@-é×ûÿëXPŸåPà @Pâø€½À ”é  á€úÿë  áƒûÿë80Ÿå áP•ç  •åßúÿë  •å”å#üÿë ”å  Pãø€½Ìúÿë 0 ã0„åø€½è€ ¤  p@-é ÐMâå¹ûÿëD0Ÿå0à `Pâ  
8 Ÿå@ââP“ç  ã @å0 ã  •åPúÿë  •å–å  áÜúÿë Ðâp€½è ¤   0Ÿå  Ÿå0à0“ç 0“å “å  €å0“å0€åÿ/á° D  0@-é$ÐMâ P á â@ á)ûÿë â áüÿë â‚úÿë  „å â4úÿë0å „å  Sã  
  áúÿë$Ðâ0€½è âeûÿëDúÿëp@-é}ûÿë40Ÿå0à @Pâp€½( Ÿå”åP“ç  •åóúÿë  •å”å  ”å$0”åp@½èÍùÿê ¤  @-éjûÿë 0Ÿå0à  Pã€½ Ÿåå0“ç  “å@½è‹úÿêÌ ¤  @-é\ûÿë 0Ÿå0à  Pã€½ Ÿåå0“ç  “å@½èêùÿê” ¤  ðO-éÐMâ` áp áP áJûÿëìÀŸåÀà @Pâ+  
„ á0”å ˆá(‚á  Sã „å&  
Ä ŸåœçÀ Ÿå  ™å œç¸ Ÿå šå°œç  ›åðúÿë ”å¼ùÿë 0 ã0„åv ïæu0ïæwpïæd‚áTƒá€‡á 0àã  ã¼PÍá¾0Íá¸`Íáº€Íáµúÿë šå  ›å 0 á0„å  ™å 0å0âûÿë PPâ  
Ðâð½è(0Ÿåœç$0Ÿå œç 0Ÿå°œçßÿÿê ”å˜ùÿëP„åòÿÿêL ¤  À  Ä  @-é@ áûÿë  Pã(@€€½èðA-éÐMâ` á€ áp áýúÿëpÀŸåÀà @Pâ  
d0Ÿåà ã”åPœç À ã( ”å  •å0 á àåÀåLúÿë”å ”å  •å	úÿë(0å”å ”å  •å0å €åpå0 áñùÿëÐâð½è ¤  ðE-éÐMâp á  á€ á×úÿë|ÀŸåÀà @Pâ  
p0Ÿå ` ã”åPœçÀ ã( ”å  •å0 á Àå`å&úÿë”å ”å  •åãùÿë80å”å ”å  •å0åZ< ã0å  å€å`å0 áÍúÿëÐâð…½è€ ¤  ðE-éÐMâp á  á€ á®úÿë|ÀŸåÀà @Pâ  
p0Ÿå ` ã”åPœçÀ ã( ”å  •å0 á Àå`åýùÿë”å ”å  •åºùÿë80å”å ”å  •å0åZ< ã0å  å€å`å0 á«ùÿëÐâð…½èÜ ¤  ðA-éÐMâ` á€ áp á…úÿëpÀŸåÀà @Pâ  
d0Ÿåà ã”åPœç À ã( ”å  •å0 á àåÀåÔùÿë”å ”å  •å‘ùÿë(0å”å ”å  •å0å €åpå0 á‹ùÿëÐâð½è8 ¤  ´0Ÿå´ Ÿå0àp@-é`“ç–èÀbàLÁ°áp€½ @’å 0”å  Sá 0     ê@²åQ á ”å  Qá  
0ƒâ Sá÷ÿÿp€½è P ã „âSúÿë	 –è €à€â Qá  
 aàB!°á  
! áCúÿë0–å ”å0Câ  Pã0†å   
Âøÿë  áp@½è¿øÿê´ T  ðO-é,ÐMâ@ á å0å.úÿë±Ÿå°à  á  áSúÿë  Pã  Y:  
P€â  áùÿë ` ã% â&€â'pâ  áÇøÿë0å @ ã0ƒà0å  ê  áÀøÿë@„â @â Pá   :$0â  á  á á  å€åpåŒùÿë'0Ýåÿ Sãîÿÿ% Ýåp Ÿå$Ýå&0Ýå  ›ç$ á(‚á å™å ‚á  åùÿë0å™å ™å  “å0åÀƒà Àå0åùøÿëØÿÿê  áäøÿë`†â @â PáËÿÿ*,Ðâð½èÜ ¤  @-é  á?ùÿë  Pã €½è@-é  á9ùÿë  Pã €½èxÀŸåx Ÿåx0ŸåÀà@-é0ÐMâœç0œç,àâ ‘å 0“åàå àâàå$àâ @ á â( âàåàâ  åàå  á0 áïùÿë Pã(0 0„,00„0Ðâ€½èˆ œ  ¤  ðE-élÐMâ  á€ áp á²ùÿëh@Ÿå@à PPâ  
`â  ã`  ã  áhøÿë0•å å0åˆ0å €å(0å0 ã0å(0Ÿå$på   ã0”ç•å  “å `å9 ã_ùÿëlÐâð…½èì ¤  p@-éÐMâ` áP á@ áŽùÿëTÀŸåÀà  Pã  
(0å°aÍá¶1Íá<0Ÿå²QÍá´AÍá œçÀâå 0 ã  ’å ÀåÀ ã  áÀå0åÄùÿëÐâp€½è\ ¤  @-ésùÿë$0Ÿå0à  Pã€½å Ÿå   ã 0“ç  “å@½èý÷ÿêð ¤  ÿ/á   ãÿ/áðA-éÐMâ€ á åÅøÿëQŸåPà @Pâ2  
ü Ÿå pâ0 ã`•çâ  ã  –å påõ÷ÿë  –å”å  áøÿë á â â…ùÿë „ââwøÿë°0Ÿå0•çPåPEâ Uá  0”å  Sã  Ú0”å  Sã  Ú0Pâ  ã`  ã  áô÷ÿë0”å  –å@0å0”åÀ ãL0å0”å   ãP0å9 ã”å På0ÀåîøÿëÐâð½è …âÕùÿë  PãàÿÿÊ  áâjøÿëÜÿÿê âÊøÿëß÷ÿëœ ¤     p@-éÐMâ{øÿë”PŸåPà @Pâ  
ˆ0Ÿå”å`â0•ç  “å øÿë 0 ã0„å0„å0„å0„å`0Ÿå „âP•ç0…â0&å á/øÿë@å@Dâ Tá  Ðâp€½è „â¨ùÿë  PãùÿÿÊ  á á=øÿëõÿÿê  áøÿë²÷ÿët ¤     ü1ŸåðO-ép áôŸå\ÐMâ0à å“ç€ áåÀåå   ã  œåú÷ÿëå å À ã  ‘å0 á’å ’å Àå€éó÷ÿë< âføÿë0å< â“å=ùÿë< âÍ÷ÿë  PãB  
Àå< âpŒå€Œå·÷ÿë  WáA  Ê ` ã< âg÷ÿë  Xá  ÓÕD  Ê   ã0â8°â< â©÷ÿë @â  Zá*  ŠPå @ ã  ê@„âP…â< âT÷ÿë @â  Tá/  Š Xá WÁõÿÿÚ( â< â
è
 á  á 0âøÿë80Ýå Ýå( Ýåÿ Sã00ÝåèÿÿÀå8ƒáÿ4ƒã  œåÀå$ƒáœå®÷ÿëå å0 á  ‘å’å ’å PåŽ÷ÿë×ÿÿê< âøÿë< å  Pã   
	÷ÿë\Ðâð½è§O‡à< âÄ@ áo÷ÿë €àÀ`Dà·ÿÿê Šâ`†â½ÿÿê¨Oˆà< âÄ@ á÷ÿë €àÀ Dà å²ÿÿê< âOøÿë.÷ÿë¼ ¤  ðO-é °âDÐMâ p á(  ã` á!øÿëP0Kâ áˆŸå€à @ á —å 0åL0Kâ0å  á
0 ã·øÿëL0å Pã P á@Q Á sãÜ  
Ô'Ÿå Sã`˜ç †âH å*  
	  ª P ã  áE÷ÿëH@å@Dâ Tán   á ÐKâð½è SãóÿÿÊP0åˆ'Ÿå Sá 
€'Ÿå€Ÿå Sá S 
t'ŸåtŸå Sá SQ  h§Ÿå
 à
  á<÷ÿëHpKâ
 á   á  á´øÿëH0å0å  SãÀ  L0å SãÕÿÿ
  UãÓÿÿÚ1 á0ƒâ0Ãã  áÐMàpâ! á À ã0”ç0‡çÀŒâ \áúÿÿðŸå 0 ã1‡ç4 Kâà\ KâCøÿëØŸåXKâ0 Kâà	  á=øÿëÄ6Ÿå4Kâ0 KâP˜ç  ácöÿë0€å€Hâ XáX 4€å€Hâ Xá\ Ÿå, Kâà\ Kâ*øÿë( Kâ á	  á&øÿë  á,Kâ( KâNöÿë(PåPEâ UáY ,PåPEâ Uá& P ã
Ð á”ÿÿê4&Ÿå4Ÿå Sá S°  
(&Ÿå(Ÿå Sá S®  
&Ÿå Sá®  
&Ÿå Sá®  
&Ÿå Sáœ  
&Ÿå Sá®  
ü%Ÿå Sá®  
ô%Ÿå Sá®  
ì%Ÿå Sá®  
ä%Ÿå Sá®  
Ü%Ÿå Sá®  
Ô%Ÿå Sá®  
Ì%Ÿå Sá®  
Ä%Ÿå Sá·  
¼%Ÿå Sá®  
´Ÿå€ Ãã RáŒ  
éAâ Sá‰  
œŸå Rá¡  
”%Ÿå Sá¿  
Œ%Ÿå Sá¶  
„%Ÿå„Ÿå Sá S¥  
x%ŸåxŸå Sá S¦  
l%ŸålŸå Sá S³  
`%Ÿå`Ÿå Sá S¼  
T%ŸåTŸå Sá SÃ  
H%ŸåHŸå Sá S¸  
<%Ÿå<Ÿå Sá SRÿÿ0ŸåHpKâ  áàøõÿëLÿÿê á  áï÷ÿëP0Kâ á @ á —å 0åL0Kâ0å  á0 áÇ÷ÿëL0å Pã P á@Q ÁÿÿêÔŸåD Kâà\ KâHpKâ•÷ÿëÀŸåXKâ@ Kâà	  á÷ÿë4ŸåDKâ@ KâP˜ç  áµõÿë@påpGâ Wáà  DpåpGâ WáÔ  tŸå< Kâà	  áHpKâ{÷ÿë8 Kâ áœ÷ÿë  á<Kâ8 Kâ õÿë8PåPEâ Uáµ  <PåPEâ Uá€  P ãçþÿê¤Ÿå
 àÿþÿê¤Ÿå
 àüþÿê¤Ÿå
 àùþÿê¤Ÿå
 àöþÿêü£Ÿå
 àóþÿêô£Ÿå
 àðþÿêì£Ÿå
 àíþÿêä£Ÿå
 àêþÿêÜ£Ÿå
 àçþÿêÔ£Ÿå
 àäþÿêÌ£Ÿå
 àáþÿêÄ£Ÿå
 àÞþÿê¼£Ÿå
 àÛþÿê´£Ÿå
 àØþÿê¬£Ÿå
 àÕþÿê¤£Ÿå
 àÒþÿêœ£Ÿå
 àÏþÿê”ŸåHpKâ  áà|õÿëÐþÿê€ŸåHpKâ  áàvõÿëÊþÿêlŸåHpKâ  áàpõÿëÄþÿêXŸåHpKâ  áàjõÿë¾þÿêDŸåHpKâ  áàdõÿë¸þÿê0ŸåHpKâ  áà^õÿë²þÿêŸåHpKâ  áàXõÿë¬þÿê „â÷ÿë  PãŒþÿÊ  áTKâöÿëˆþÿêèŸåHpKâ  áàJõÿëžþÿêÔŸåHpKâ  áàDõÿë˜þÿêÀŸåHpKâ  áà>õÿë’þÿê …âg÷ÿë  PãÔþÿÊ  áTKâüõÿëÐþÿê …â_÷ÿë  PãzÿÿÊ  áTKâôõÿëvÿÿê0 KâTöÿë4 KâRöÿëHpKâ
Ð á  áNöÿëcõÿë ˆâN÷ÿë  Pã¢þÿÊ  áTKâãõÿëžþÿê ˆâF÷ÿë  PãžþÿÊ  áTKâÛõÿëšþÿê, Kâ;öÿëçÿÿê( Kâ8öÿëùÿÿê …â8÷ÿë  Pã¡þÿÊ  áTKâÍõÿëþÿêÛÿÿêØÿÿê …â.÷ÿë  PãEÿÿÊ  áTKâÃõÿëAÿÿê8 Kâ#öÿë< Kâ!öÿëÏÿÿêûÿÿê ‡â ÷ÿë  Pã&ÿÿÊ  áTKâµõÿë"ÿÿê ‡â÷ÿë  PãÿÿÊ  áTKâ­õÿëÿÿê@ KâöÿëD KâöÿëHpKâ¸ÿÿêúÿÿê¶ÿÿêœ    ÿ  ¾ÿ  ‘ÿ  ¿ÿ  ’ÿ  Lz  À{  ä{  Ü  €{  Àÿ  “ÿ  Áÿ  ”ÿ  Âÿ  Ãÿ  Äÿ  Åÿ  Æÿ  Çÿ  Èÿ  Éÿ  aÿ  ÿ  ÿ  kÿ  ÿ  	ÿ  ÿ  åÿ  æÿ  ÿÿ  Ÿÿ  Qÿ  –ÿ  Sÿ  ˜ÿ  Rÿ  —ÿ  Tÿ  ™ÿ  Pÿ  •ÿ  Wÿ  œÿ  Xy  y  y  Èx  Dv  €v  v  8v  8v  8v  8v  Hx  8v  8v  8v  <v  @v  Dv  Pv  lv  ¸v  |v  Lv  Üv  àv  „v  Hv  ¬v  Ìx  tv  lx  4 å Pãÿ/ Pã     ÿ/á0Ÿå Ÿå0à0“ç  ã  Ãåÿ/á, ˆ  ðA-é P áÐMâ,  ã` áp á€ áƒõÿëx@Ÿå0 ã@à À ã(0€åh0Ÿå åÀ€åÀ€åÀ€åÀ€å À€å$À€å`€èp€å0”ç “é Qá  
 Qá  “ âƒåÐâð½è  á âàõÿë åøÿÿêè ì  ðO-é` á¤¥Ÿå °â ŸåüÐMâ
 àP ãšçàåŒŸåàpå@šçø å  —å ”åì åð0åõÿë —å 0”ådpVâŒ ‘å1ƒà €wââ‚à€¸à(Àžåì åð0å @ ã¸ å8Ÿå pšç  á0Ÿå À‡åp›åšç ‘å påp›å@åpå$àžåÀåÀ ãÀå¼ÀKâàåÀåPåcôÿëàpåè$Ÿå0 áä å  á šç  —åèôÿë  —åäå  á0 á+õÿëd Vã Vô å”  
KVãÁ  
È Vã 
À›å  \ãS  
  á”ôÿëèÐå›å  á
0€â0ÃãÐMà @â  ágôÿëdŸåØ Kâ  áàjõÿë  Pâ@  
LdŸå @ ã`àP áp á  ê! á  áü å(õÿëü å P á…àÔå¥ôÿëÔ åaôÿë@ áØ Kâ   ã áRõÿë  Pâ  
  áÔKâÔpåÂôÿë €PâóÿÿÚ  Tãåÿÿ
„à  á	 áÎõÿë! á	€ á P áãÿÿê  Tã  
àpå¤Ÿå  —åàcõÿë˜Ÿå ` áà  —å   ã]õÿë   ã 0 á  —å p ãPå@å„ è  áäå‰õÿë  á1ôÿëèÐåP3ŸåPÃŸåäpå0šçHŸå P ã  “å@3ŸåÀàà8#Ÿå0à påÀåpåPåkóÿëÐPå @PâR  
ŸåÐ Kâà0 áïôÿë  áÞôÿëÐ å†)‚ãO ‚ãàpåäå  —å°ôÿë0 áäåô åø åôóÿëäå€ Kâ @ á  —åKõÿëlå  —åx åt0å åäåtõÿëìpå p„åðpå$p„å „å ÐKâð½èNõÿëÀ›å00 ãäå 0€åà0åÀ€åÀ€åÀ›å   á À€åÀ€å p á  “å¨óÿë  á@óÿëKVã,  
  XãWÿÿ
àpå(Ÿå  á  —åàûôÿëŸå  áà ` á  —åõôÿë$ÀKâ à—åäå  á0 ã¬ ,å   ãPåè  á õÿë,  êÔ!Ÿå´ÿÿêõÿëp›åÀ›å00 ãäå p€åp€åàpå @ á 0€åÀ€åÀ€å  á  —åyóÿë  áóÿëàpåˆŸå  ãà  —åÐôÿëxŸåà @ á  ã  —åÊôÿë$ÀKâ à—åäå  á @ ã0 ã¬ ,å   ãÀå è  ã å  áòôÿëàpå(Ÿå   ã  —åà¶ôÿëŸå   ãà @ á  —å°ôÿëŸå   ãàÌ å  —åªôÿëðŸå   ãàÈ å  —å¤ôÿëÜŸå   ãàÄ å  —åžôÿë  á @ ã à—åäåÀ ã0 áÀ å   ãÀå èÌ Kâ å  áÆôÿëçþÿêàpåˆŸå  ãà  —å‰ôÿëxŸåà @ á·ÿÿê(óÿëP ¤  ´  À  œ  x  Ìq  ´q  ¼l  ¼l  °  €l  `l  dl    Tl  ´j  Ôj  O€! j  j  \j  \j  `j  dj  `j  ðh  ,i  @-é @ áÐMâ  ãÓóÿë 0 ãp Ÿå à0€å0€å0€å0€å\0Ÿå0’ç å0ƒâ0€åL0Ÿå @€å0’ç “é Qá  
  Qã  “ âƒåÐâ€½è  á â¢òÿë åøÿÿê(ü     è  ðO-éWßMâ° á$ åôÿë8cŸå83Ÿå`à   ã@–ç,3Ÿå–çP0â ™å P á  ”å 0å0 ãÉòÿë 0Pâ  
ŸåP å 0 ãp–ç  ”åØ€â —åÔòÿë À ã0 ã à”å —å 0åé\0å àã0å0 ã0åP0å€å0å°2ŸåäÀå0å0 áÜÀåå  áµòÿë  á …å   ã0 á  ”å„óÿë   ã …å>ôÿë0 ã•å p á   á  ã0‡å0‡å  ‡å  ”åœòÿë  á4òÿë@Ÿå
  áà  ”åôóÿë À ã•å8 å   á  ”å Àå8ÀâÀåÀ ã0 áÀå åÀ ã<Àåôÿë•åð!Ÿå  ”åcóÿëèŸå  ™åà  á`ôÿë á
  á  ”åØóÿë  á  ”åGôÿë pPâV  @€â0 ã  ”å$â  ã €åOòÿë  ”å•å  áÛòÿë á4 â, âßóÿë …â4âÑòÿël1Ÿå0–ç4`å`Fâ VáC  x`â  á  ã`  ãTòÿëDŸå!0 ã  ”åà   ãx0åˆpå®óÿë À ã @”å 0 ã0å”Àå˜Àå  á á0 áŒ åà•å  á `åœàå Àå¤ÀåCóÿëWßâð½è  ”å ™å¸àŸåŒÀåàÜ0å"ŒàÀŸåÀ ã å ãÁåà–ç å
 é$0’å žå0åÀå(0’åØ€â0åˆ0Ÿå àã0å€å0 á&òÿë  á …åoÿÿê  ”å á( ãúòÿë£ÿÿê †âôÿë  Pã·ÿÿÊ  á0â›òÿë³ÿÿê4 âûòÿëòÿëŒû  ¤  ´  œ  
   Ìg  L€" |g     äf  €  
  @-é @ áÐMâ  ãËòÿë 0 ã` Ÿå à0€å0€å0€å0€åL0Ÿå å @€å0’ç “é Qá  
  Qã  “ âƒåÐâ€½è  á â<óÿë åøÿÿêø  `  p@-é ` áÐMâ   ã©òÿëŒPŸå 0 ãPà @ á 0€å0€å0€å0€å0€å0€å0€å0Àå €â¡òÿëX0Ÿå@å `„å •ç
 é Qá  
  Qã @@â€å  áÐâp€½è â«ñÿë@åøÿÿê  á}ñÿë¸ñÿë€÷  T  8@-éP á@ áxòÿë á@€â  á[óÿë  áÜñÿë  …å  áŽñÿë …å8€½èð@-é P ã `QâÐMâ @ á P€åP€åP€å  
  áêñÿë pPâ  
  á`Fâ á  ê  QãP…â 0â Uá„å
  
 ”é0¶å Qá0åóÿÿ  á â2òÿëP…â Uáôÿÿ  áÐâð€½è  áÒòÿë~ñÿëðO-éKßMât_Ÿåt?ŸåPà0•ç$0å  ƒådŸå  àLñÿë  á  ãññÿë   ã’ñÿëH?Ÿå€•ç  Pã  ˆåe 
8Ÿå   ãàÁòÿë,?Ÿå,Ÿå   ã0•çà,0å  ƒå  ˜å¸òÿë?Ÿå0•ç40å  ƒåŸå  àÒòÿë  ˜åø>Ÿå„å`•çŒ0å!à †å"ƒàà>Ÿå ’å0•ç  ƒå/òÿëÐ>Ÿå  ã  áÀ•ç0 á  Œå  ˜ålòÿë´>Ÿå@•ç  Pã  „åA 
¤Ÿå 0 ãà` â ñÿë`å>Ÿå @ ã°ÀÑáp•ç \á @‡å    ê@„â \á  Ú0‘ådŸå1“ç  à Páöÿÿ —å
ñÿë`å@„â°ÀÑá \á  ‡åñÿÿÊ  á±ðÿë 0˜å  –å$ŸåŒ“å!‚à  •ç"à0 å0’å “å>Ÿå €å$ å°•ç 0å  ‹å   ã3ÿ/áìŸåì-Ÿåì=Ÿåà à8å< å0•çØŸå0åÔŸåÔ=ŸåÔ-Ÿå0à  àà à@0åD åHåL å å  Òå  PãG  ¤=Ÿå•ç0Aâ| â £å Sá @ ãûÿÿ  ›å PáÀ/ á0€â 0 ¡¢- áÃ2 áÀ€àÀâá‘ç bàÀ ã €â"Žá!çL=ŸåLíŸå  áÀ•ç0 á Àå@ŒèŸñÿë  ˜å¨òÿë Pá<  
  ˜åÈâMñÿëÈ0å Sã:  
 Sã¾  
" SãA 
 SãB 
 Sã¿ 
 Sã< 
 Sã¹ 
	 Sã½ 

 Sã 
! Sã° 
 Sã¾ÿÿØ å¿ðÿë  Pãºÿÿ
ì åèåòÿë å  Òå  Pã·ÿÿ
<Ÿå@•çˆ ”èpcàGq°á ` q 
¡“ç0šå  Sãú 

  á`†â]ðÿë WáW 
 0”å ”å càBVáñÿÿ:@Ÿå  à¡ðÿë$å 0‘å3ÿ/á—ÿÿêØ å£ñÿë  Pã  å' 
ü<Ÿådpâh@â`•çXâ  áñÿë  áðÿëðŸåT âà  áïñÿëàŸå  áà	  áêñÿë  á á  áðÿëp<Ÿåh å •çp@â
 Wá‡ d åp@â
 WáŽ ˜Ÿå	  áà  á×ñÿë 0å  á á  “ålñÿëh åp@â
 Wá‰ dŸå	  áà  áÉñÿë  á áÜ å_ñÿëh åp@â
 Wá… 4Ÿå	  áà  á¼ñÿë  á áà åRñÿëh åp@â
 Wá Ÿå	  áà  á¯ñÿë  á áä åEñÿëh åp@â
 Wá} ÔŸå	  áà  á¢ñÿë  á áè å8ñÿëh åp@â
 Wáy   áöðÿë$ å  á á `’å©ðÿëh å6ÿ/áh å@@â
 Táu  0åä@å  ˜å“å “åÜàå0“åàÀå@åè@å àåÀå@åàåÀåNðÿëÿÿêØ åñÿë  Pã  åÿÿ
ä:Ÿådpâh@â`•çXâ  á•ðÿë  á…ïÿëôŸåT âà  áiñÿëäŸå  áà	  ádñÿë  á á  áŒïÿëX:Ÿåh å •çp@â
 WáL d åp@â
 WáS œŸå	  áà  áQñÿë 0å  á á  “åæðÿëh åp@â
 WáN   åÈâûïÿë  Pã' 
TŸå	  áà  á>ñÿëø å  á á â¥ñÿëh åp@â
 WáD  Ÿå	  áà  á0ñÿëø å  á á"! á â–ñÿëh åp@â
 Wá> èŸå	  áà  á!ñÿë  á á   ã‰ñÿëh åp@â
 Wá: ¸Ÿå	  áà  áñÿë  á á   ã|ñÿëh åp@â
 Wá6   áhðÿë$ å  á á `’åðÿëh å6ÿ/áh å@@â
 Tá”þÿ
 @âsñÿë  PãþÿÊ  á\âðÿëŒþÿêÈ â3ïÿë‰þÿêØ å•ðÿë  Pã( å„þÿ
T0â 0å¼8Ÿådpâh@â`•çXâ  áðÿë  áûîÿëèŸå  åà  áßðÿëØŸå  áà	  áÚðÿë  á á  áïÿë08Ÿåh å •ç0@â
 Sá d å0@â
 Sá Ÿå  åà  áÇðÿë€Ÿå  áà	  áÂðÿë  á á  áêîÿëh åp@â
 Wá d åp@â
 Wá @Ÿå	  áà  á±ðÿë(0å  á á  “åFðÿëh åp@â
 Wá
 Ÿå	  áà  á£ðÿë  á áè å9ðÿëh åp@â
 Wá ÜŸå	  áà  á–ðÿë  á áì å,ðÿëh åp@â
 Wá ¬Ÿå  áà	  á‰ðÿëÈ âœðÿë   á á  áðÿëh åp@â
 Wáü   áÛïÿë$ å  á á `’åŽïÿëh å6ÿ/áqÿÿêØ åðÿë  Pã( åþÿ
T0â 0åÀ6Ÿådpâh@â`•çXâ  áŒïÿë  á|îÿëŸå  åà  á`ðÿëüŸå  áà	  á[ðÿë  á á  áƒîÿë46Ÿåh å •ç0@â
 SáÙ d å0@â
 Sáâ ´Ÿå  åà  áHðÿë¤Ÿå  áà	  áCðÿë  á á  ákîÿëh åp@â
 WáÜ d åp@â
 Wáã dŸå	  áà  á2ðÿë(0å  á á  “åÇïÿëh åp@â
 WáÞ 0Ÿå	  áà  á$ðÿë  á áè åºïÿëh åp@â
 WáÚ  Ÿå	  áà  áðÿë  á áì å­ïÿëh åp@â
 WáQ ÐŸå  áà	  á
ðÿëÈ âðÿë   á á  ážïÿëh åp@â
 WáK   á\ïÿë$ å  á á `’åïÿëh å6ÿ/áòþÿêØ å—ïÿë  Pã( å( 
T0â 0åÄ4Ÿådpâh@â`•çXâ  áïÿë  áýíÿë0Ÿå  åà  ááïÿë Ÿå  áà	  áÜïÿë  á á  áîÿë84Ÿåh å •ç0@â
 Sá' d å0@â
 Sáç ØŸå  åà  áÉïÿëÈŸå  áà	  áÄïÿë  á á  áìíÿëh åp@â
 Wáá d åp@â
 Wáè ˆŸå	  áà  á³ïÿë(0å  á á  “åHïÿëh åp@â
 Wáã TŸå	  áà  á¥ïÿë  á áè å;ïÿëh åp@â
 Wád $Ÿå	  áà  á˜ïÿë  á áì å.ïÿëh åp@â
 Wá` ôŸå  áà	  á‹ïÿëÈ âžïÿë   á á  áïÿëh åp@â
 WáZ   áÝîÿë$ å  á á `’åîÿëh å6ÿ/ásþÿê  ˜åØå  ã0 áßîÿëýÿêØ åïÿë  Pã( åýÿ
T0â 0å°2Ÿådpâh@â`•çXâ  áˆîÿë  áxíÿë<Ÿå  åà  á\ïÿë,Ÿå  áà	  áWïÿë  á á  áíÿë$2Ÿåh å •ç0@â
 Sá1 d å0@â
 Sá: äŸå  åà  áDïÿëÔŸå  áà	  á?ïÿë  á á  ágíÿëh åp@â
 Wá4 d åp@â
 Wá; ”Ÿå	  áà  á.ïÿë(0å  á á  “åÃîÿëh åp@â
 Wá6   áîÿë$ å  á á `’å4îÿëh å6ÿ/áþÿê  á>îÿë­üÿê  ˜åšåÔíÿë ýÿêüõ  ð  tc  ¤  `c  Ì  Xc  x  c  ´  œ  D  °  èb      Ä  ¸   e  ,g  ˆ  Dg  e  ôe  Ìd  „  h  '  `  t]  Øb  Øb  ¬b  €b  Tb  (b  b  À`  0a  ”`  ¼`  œ`  t`  P`  ˜^  ˆ_  T_  \_  ^  è]  ¼]  Œ^  œ\  Œ]  X]  ]  \  ì[  À[  \   Z  [  \[  Ä[  Z  ðY  ÄY  ”Z  ŒX  ¨Z  HY  lZ  X  d  ¨  U     0T  LU  ðR  ÜQ  „S  ¬R  |S  |Q  ¤M  ä  ¼M  Ü  |H  $J  LI  øI  H  0”å ` ã  ”å€â Qá  
 aàB!°á  
! árîÿë0”å`†â0Câ Vá0„åðÿÿ 0å`•çp†â@–å Tá	  
”å  Qã  
  ˜åÌìÿë  á•îÿë Pá @ áõÿÿÜ0å p ã@•ç  á”åŠíÿë0„â  á–å0„å0„åp„åp„å-îÿë0 å0†â  ˜å ’å0†åp†å0†åp†åÅìÿë  ˜åYíÿëKßâð½èØ åîÿë  Pã  å
üÿ
, åÜ å 0å Ráüÿ4åä å 0‘å Rá üÿL1ådpâXâ`•çh@â  á‰íÿë  áyìÿë\ â8å	  á  á]îÿë  á<å
  áYîÿë  á á  áìÿë  áÆíÿë  áÄíÿë@å	  á  áMîÿë  áDå
  áIîÿë  á á  áqìÿë  á¶íÿë  á´íÿëHå
  á  á=îÿë 0å  á á  “åÒíÿë  á©íÿë  á’íÿë$ å  á á `’åEíÿëh å6ÿ/á  ážíÿë¿ûÿêØ åËíÿë  Pã( åºûÿ
T0â 0ål2ådpâh@â`•çXâ  áAíÿë  á1ìÿëLå  å  áîÿëÔå  áà	  áîÿë  á á  á9ìÿëô2åh å •ç0@â
 Sái d å0@â
 Sár å  åà  áþíÿë(å  áà	  áùíÿë  á á  á!ìÿëh åp@â
 Wáv d åp@â
 Wá} hå	  áà  áèíÿë(0å  á á  “å}íÿëh åp@â
 WáZ   á;íÿë$ å  á á `’åîìÿëh å6ÿ/áÑüÿêØ åkìÿë @Pâfûÿ
”ål â  ˜åÙíÿë  átåx å´íÿë]ûÿêØ å^ìÿë  Pã  åXûÿ
ü0å SãY 
 SãSûÿ 4ådpâXâ`•çh@â  áÜìÿë  áÌëÿëDå	  áà  á°íÿëTå\ â  áà
  áªíÿë  á á  áÒëÿë  áíÿë  áíÿëˆå	  áà  áíÿë˜å  áà
  á˜íÿë  á á  áÀëÿë  áíÿë  áíÿëÈå
  áà  á‹íÿë 0å  á á  “å íÿë  á÷ìÿë  áàìÿë$ å  á á `’å“ìÿëh å6ÿ/áLÿÿê5å å ã0•ç  à  ã 0“åÖìÿë  ˜åúÿê@5å@å ã0•ç  à  ã 0“åÌìÿë  ”å³úÿê  á×ìÿëìëÿëûÿÿê  áÓìÿë  áÑìÿëæëÿëûÿÿêøÿÿêùÿÿêøÿÿêõÿÿê @âÌíÿë  PãsûÿÊ  á\âaìÿëd åp@â
 Wápûÿ
 @âÁíÿë  PãlûÿÊ  á\âVìÿëhûÿêÝÿÿê @â¸íÿë  PãqûÿÊ  á\âMìÿëmûÿêÔÿÿê @â¯íÿë  PãuûÿÊ  á\âDìÿëqûÿêËÿÿê @â¦íÿë  PãyûÿÊ  á\â;ìÿëuûÿêÂÿÿê @âíÿë  Pã}ûÿÊ  á\â2ìÿëyûÿê¹ÿÿê @â”íÿë  PãûÿÊ  á\â)ìÿë}ûÿê°ÿÿê @â‹íÿë  Pã…ûÿÊ  á\â ìÿëûÿê­ÿÿêªÿÿê @âíÿë  Pã®ûÿÊ  á\âìÿëd åp@â
 Wá«ûÿ
 @âvíÿë  Pã§ûÿÊ  á\âìÿë£ûÿê’ÿÿê @âmíÿë  Pã¬ûÿÊ  á\âìÿë¨ûÿê‰ÿÿê @âdíÿë  Pã¶ûÿÊ  á\âùëÿë²ûÿê€ÿÿê @â[íÿë  Pã¼ûÿÊ  á\âðëÿë¸ûÿêwÿÿê @âRíÿë  PãÀûÿÊ  á\âçëÿë¼ûÿênÿÿê @âIíÿë  PãÄûÿÊ  á\âÞëÿëÀûÿêeÿÿêjÿÿêgÿÿê @â0å=íÿë0å  PãóûÿÊ  á\âÑëÿëd å0@â
 Sáðûÿ
 @â0å0íÿë0å  PãêûÿÊ  á\âÄëÿëæûÿêQÿÿêNÿÿê @â%íÿë  PãòûÿÊ  á\âºëÿëd åp@â
 Wáïûÿ
 @âíÿë  PãëûÿÊ  á\â¯ëÿëçûÿê6ÿÿê @âíÿë  PãðûÿÊ  á\â¦ëÿëìûÿê-ÿÿê @âíÿë  PãôûÿÊ  á\âëÿëðûÿê$ÿÿê @âÿìÿë  PãøûÿÊ  á\â”ëÿëôûÿêÿÿê @âöìÿë  PãþûÿÊ  á\â‹ëÿëúûÿêÿÿêÿÿêÿÿê @â0åêìÿë0å  PãüÿÊ  á\â~ëÿëd å0@â
 Sáüÿ
 @â0åÝìÿë0å  PãüÿÊ  á\âqëÿëüÿêþþÿêûþÿê @âÒìÿë  PãüÿÊ  á\âgëÿëd åp@â
 Wáüÿ
 @âÇìÿë  PãüÿÊ  á\â\ëÿëüÿêãþÿê @â¾ìÿë  PãüÿÊ  á\âSëÿëüÿêÚþÿê @âµìÿë  Pã üÿÊ  á\âJëÿëüÿêÑþÿê @â¬ìÿë  Pã–üÿÊ  á\âAëÿë’üÿêÈþÿê @â£ìÿë  PãšüÿÊ  á\â8ëÿë–üÿê¿þÿê @âšìÿë  Pã üÿÊ  á\â/ëÿëœüÿê¶þÿê»þÿê¸þÿê @â0åŽìÿë0å  PãÇüÿÊ  á\â"ëÿëd å0@â
 SáÄüÿ
 @â0åìÿë0å  Pã¾üÿÊ  á\âëÿëºüÿê¢þÿêŸþÿê @âvìÿë  PãÆüÿÊ  á\âëÿëd åp@â
 WáÃüÿ
 @âkìÿë  Pã¿üÿÊ  á\â ëÿë»üÿê‡þÿê @âbìÿë  PãÄüÿÊ  á\â÷êÿëÀüÿê @â0åYìÿë0å  PãüÿÊ  á\âíêÿëüÿêzþÿêwþÿê @âNìÿë  PãüÿÊ  á\âãêÿëd åp@â
 Wáüÿ
 @âCìÿë  PãüÿÊ  á\âØêÿëüÿê_þÿê @â:ìÿë  PãüÿÊ  á\âÏêÿëüÿêVþÿê @â1ìÿë  Pã©ûÿÊ  á\âÆêÿë¥ûÿêMþÿê @â(ìÿë  Pã¯ûÿÊ  á\â½êÿë«ûÿêDþÿêGþÿê @â0åìÿë0å  PãÑûÿÊ  á\â±êÿëÍûÿê>þÿê=þÿê:þÿê @â0åìÿë0å  PãýÿÊ  á\â¤êÿëd å0@â
 SáŒýÿ
 @â0åìÿë0å  Pã†ýÿÊ  á\â—êÿë‚ýÿê$þÿêþÿê @âøëÿë  Pã ýÿÊ  á\âêÿëœýÿêþÿêþÿê @âîëÿë  Pã„ýÿÊ  á\âƒêÿëd åp@â
 Wáýÿ
 @âãëÿë  Pã}ýÿÊ  á\âxêÿëyýÿêÿýÿê`=ådpâXâ`•çh@â  á„êÿë  átéÿë€å	  áà  áXëÿëå\ â  áà
  áRëÿë  á á  ázéÿë  á¿êÿë  á½êÿëÄå	  áà  áEëÿëÔå  áà
  á@ëÿë  á á  áhéÿë  á­êÿë  á«êÿëå
  áà  á3ëÿë 0å  á á  “åÈêÿë  áŸêÿë  áˆêÿë$ å  á á `’å;êÿëh å6ÿ/áôüÿêºýÿê¹ýÿê¸ýÿê·ýÿêºýÿê»ýÿê¸ýÿê¹ýÿê¶ýÿê·ýÿê´ýÿêµýÿêðO-é @ áœsŸåœ3Ÿåpà$ÐMâ`—ç€ á0–å  Sã-  
P†âÀ“å TáP ‘0“…0“•  Sãøÿÿ0†â Uá"  
0•å Tá  :H3ŸåÀ•å€—çˆâ0˜å  Sã  
 “å \á ‘0“…0“•  Sãøÿÿ0ˆâ Qá  
0‘å \á  :p‘å  á$Ðâð½è 0 ã  á âÀå0åNëÿë  áóÿÿêëÿëÈŸåÈ"Ÿåà à P á,éÿë¸Ÿå  áà  á
ëÿë¨Ÿå¡Ÿíà  áéÿëZéÿë á  áÜèÿëˆŸå	  áà  á5ëÿëxŸå  ãà  á@êÿëhŸå  ãà  á;êÿëXŸå  ãà  áíêÿë   ã á   áÈêÿë  áÛêÿë   ã á â	éÿë ÀPâp 4  
ÀåÕêÿëè1ŸåÀå€—ç0˜å  Sã   á0  
°ˆâ “å Zá° ‘0“…0“•  Sãøÿÿ0ˆâ [á%  
0›å Zá"  :0–å†â  Sã  
 “å Tá ‘0“…0“•  Sãøÿÿ0†â Qá  
0‘å Tá  * 0 ã  á âÀå@å0åÁéÿëÀå  á å  áèÿëp›å	  áêÿë  á‹èÿë„ÿÿê,1Ÿå á0—ç  “åÀå^êÿëÀå pPâ2  
0˜åˆâ  Sã  
 “å Zá ‘0“…0“•  Sãøÿÿ0ˆâ Qá  
0‘å Zá  * 0 ã  á â å0å¼êÿë  á0–åpå  Sã†â  
 “å Tá ‘0“…0“•  Sãøÿÿ0†â Qá  
0‘å Tá  * 0 ã  á â@å0å}éÿë  á å¾ÿÿê  áLèÿë»ÿÿê   á      X@€Ö  ¨  d   C  ¤C  œC  C  pC  dC  \C  TC  ¤  ðO-é<ÐMâ` áåP á åÜéÿë4²Ÿå°à p á å2éÿë  Pã  W @ áT  
0å  SãS  
0—å  Sãj  
0—å  SãK  
, â á)èÿë, å00å Páo  
 @ á€â  ê åå—å —å2èÿë`0å
 á  ƒà0 ãè0å	  á  á0 á”èÿëŒ1Ÿå á  á0›ç  â  å  “å0 ãÍèÿëø2ÝáP…à00å Sá   
0”ä ã  á0å„èÿë `PâÛÿÿ<Ÿå ã å~èÿë  Pãïÿÿ
 åå —å`—åèÿë`0å á  ƒà0 ãè0å
  á   ã0 ájèÿëä0Ÿå  ã â0›çÔÿÿê, å  Pã   
èÿë<Ðâð½è¸0Ÿå —å—å€›ç  ˜å•èÿëå å—å ”å €˜å@—åæçÿë`0åp€à  á~èÿë  è`å	 á
  á0 á å  á™éÿëãÿÿêP0Ÿå›çP0Ÿå  ‘å ›çH0Ÿå—å  ’å0›ç 0“åÛéÿë  Pã ‡åÕÿÿ
…ÿÿê  PãÑÿÿÑÿÿê, âféÿëèÿë”Ò  ¤  ýÿ  À  Ä  ð@-é  á,ÐMâ@ ážèÿëØ`Ÿå`à PPâ#  
0•å  Sã#  
 â á›çÿë å 0å Pá$  
 @ á P ãpâ0”ä ã  á0åèÿë Pâ  
|0Ÿå â –ç på0 ã  åIèÿëø1ÝáP…à 0å Sáìÿÿ å  Pã   
¤çÿë  á,Ðâð€½è  á)èÿë á   á •åˆèÿë P áôÿÿê P ãïÿÿê â$éÿëÐçÿë0Ð  ¤  0 ã0@-é @ á0€åÐMâ   ãP áÎèÿë  Pã  Ðâ0€½è â á\çÿë0å ã  “åÜçÿë0å å å  Sã„å „å  îÿÿ
  áuçÿë  ãêÿÿê â éÿë¬çÿë8@-é@ áÒèÿë á P áoèÿë  Pã8€½  á á8@½èèÿê@-é @ á  å  Pã   
^çÿë  á€½è@-é @ á  å  Pã   
Vçÿë  á€½è@-é @ á  å  Pã   
Nçÿë  á€½è@-é @ á  å  Pã   
Fçÿë  á€½èP0ŸåP Ÿå0à0@-éÐMâ På0“çPEâ Uá @ á    áÐâ0€½è …â]éÿë  PãøÿÿÊ  áâòçÿëôÿÿêÎ     @-é @ á  å  Pã   
&çÿë  á€½è@-é @ á  å  Pã   
çÿë  á€½èðE-éP á0ååÐMâ Sá @ á  
  Sã ƒ0Câeà ƒâA°á „å @’å  
! á bà áèÿë @…åÐâð…½è å0aàC1°á)  
ƒ` á Sáaà)  š€àãAq á  á åýçÿë å ` á1†à  Sã 0’1† ”å0aàC¡°á  

¡ á  á
  áaèÿë0”å
 †à0eà ŠâCq°á  
q á
  á á  áVèÿë  ”åpŠà  Pã   
×æÿë€†àÀ„èÏÿÿêaà€ ãAq á×ÿÿêvãÓÿÿŠ  Vãƒ áAq áÖÿÿ
ÐÿÿêðE-éP á0ååÐMâ Sá @ á  
  Sã ƒ0Câeà ƒâA°á „å @’å  
! á bà á,èÿë @…åÐâð…½è å0aàC1°á)  
ƒ` á Sáaà)  š€àãAq á  á åªçÿë å ` á1†à  Sã 0’1† ”å0aàC¡°á  

¡ á  á
  áèÿë0”å
 †à0eà ŠâCq°á  
q á
  á á  áèÿë  ”åpŠà  Pã   
„æÿë€†àÀ„èÏÿÿêaà€ ãAq á×ÿÿêvãÓÿÿŠ  Vãƒ áAq áÖÿÿ
ÐÿÿêðE-éP á0ååÐMâ Sá @ á  
  Sã ƒ0Câeà ƒâA°á „å @’å  
! á bà áÙçÿë @…åÐâð…½è å0aàC1°á)  
ƒ` á Sáaà)  š€àãAq á  á åWçÿë å ` á1†à  Sã 0’1† ”å0aàC¡°á  

¡ á  á
  á»çÿë0”å
 †à0eà ŠâCq°á  
q á
  á á  á°çÿë  ”åpŠà  Pã   
1æÿë€†àÀ„èÏÿÿêaà€ ãAq á×ÿÿêvãÓÿÿŠ  Vãƒ áAq áÖÿÿ
ÐÿÿêðE-éP á0ååÐMâ Sá @ á  
  Sã ƒ0Câeà ƒâA°á „å @’å  
! á bà á†çÿë @…åÐâð…½è å0aàC1°á)  
ƒ` á Sáaà)  š€àãAq á  á åçÿë å ` á1†à  Sã 0’1† ”å0aàC¡°á  

¡ á  á
  áhçÿë0”å
 †à0eà ŠâCq°á  
q á
  á á  á]çÿë  ”åpŠà  Pã   
Þåÿë€†àÀ„èÏÿÿêaà€ ãAq á×ÿÿêvãÓÿÿŠ  Vãƒ áAq áÖÿÿ
ÐÿÿêðE-éP á0ååÐMâ Sá @ á  
  Sã ƒâ ƒCâeà „åA°á @’å  
! á bà á4çÿë @…åÐâð…½è å0aàC1°á)  
ƒ` á Sá*  šaà€àãAq á  á å²æÿë ”å å ` á aà1†à  Sã 0’1†@¡°á  

¡ á  á
  áçÿë0”å
 †à0eà ŠâCq°á  
q á
  á á  áçÿë  ”åpŠà  Pã   
Œåÿë€†àÀ„èÏÿÿêaà€ ãAq á×ÿÿêvãÒÿÿŠ aà  Vãƒ á@q á×ÿÿ
ÏÿÿêðO-éÐMâ  Qãå @ áP  
0å0“å  Sã0åD  
0“å  Sã0åI  
 “å  Zã5  
šå  Yã+  
°™å  [ã"  
`›å  Vã  
P–å  Uã  
p•å  Wã  
—å  áæÿë€—å  áVåÿë pXâ÷ÿÿp•å  áQåÿë  WãP îÿÿP–å  áKåÿë  Uã` åÿÿP›å  áEåÿë  Uã° ÜÿÿP™å	  á?åÿë  Uã ÓÿÿPšå
  á9åÿë  Uã  Êÿÿ0åP“å  á2åÿë  Uã  
På0 á¾ÿÿê0å  áP“å)åÿë  UãPå®ÿÿÐâð½è0å  áP“å åÿë  Uãðÿÿ
På0 á¨ÿÿê@-é @ áåÅåÿë  á€½èðO-éÐMâ  Qãå @ áP  
0å0“å  Sã0åD  
0“å  Sã0åI  
 “å  Zã5  
šå  Yã+  
°™å  [ã"  
`›å  Vã  
P–å  Uã  
p•å  Wã  
—å  áJæÿë€—å  áîäÿë pXâ÷ÿÿp•å  áéäÿë  WãP îÿÿP–å  áãäÿë  Uã` åÿÿP›å  áÝäÿë  Uã° ÜÿÿP™å	  á×äÿë  Uã ÓÿÿPšå
  áÑäÿë  Uã  Êÿÿ0åP“å  áÊäÿë  Uã  
På0 á¾ÿÿê0å  áP“åÁäÿë  UãPå®ÿÿÐâð½è0å  áP“å¸äÿë  Uãðÿÿ
På0 á¨ÿÿê@-é @ áåæÿë  á€½èÀ‘åøO-é  \ã  á € á° áâ?  
 p’å   êÀ áPœå` ã Uá ` “@œ…@œ•  Tãöÿÿ  Vã@      Uá 0 #  ˆ%0È%"  :  áø½è0šå@ á \á  
  á¹äÿëPåðÿÿê	 \á  
0œå Wá p #p 3  ã‡åÿë  á0â P á › ƒ  á	0 á á¥åÿë0šå Pˆå0ƒâ0Šå0 ã0Èå  áø½è	 Tá  
0”å Sá p “p ƒåÿÿêp ããÿÿê0‘å	@ á Yáùÿÿ
 p’åÓÿÿêðE-ép€â WáÐMâ P á@ á` á>  
 €’å0‘å Xá  * å ZáE  
  á0äÿë0å   á Xá9  š0å  ã  SãR  
Måÿë0â € á – ƒ  ã0 á á  ákåÿë0•å  á0ƒâ0…åÐâð…½è  ‘ûÿÿš •å Zá5  
  áæäÿë0å   á Xá  *0”å  ã  Sã=  
.åÿë0â @ á – ƒ  ã á
  á0 áLåÿë0•å  á0ƒâ0…åßÿÿê0å  Sã  
€å 0’å ˜å Rá  :  á á  á]äÿë  åÑÿÿê  ãàÿÿê  ãåÿë0Wà  sâ ²à0â @ á – ƒ  á á  áÛÿÿê  ãåÿë0â @ á – ƒ   ãÑÿÿêúäÿë
Wà  qâ ²à0â @ á – ƒ  áÇÿÿêðäÿë0â € á – ƒ   ã¡ÿÿêÀ‘åøO-é  \ã  á € á° áâ?  
 p’å   êÀ áPœå` ã Uá ` “@œ…@œ•  Tãöÿÿ  Vã@      Uá 0 #  ˆ%0È%"  :  áø½è0šå@ á \á  
  áîãÿëPåðÿÿê	 \á  
0œå Wá p #p 3  ã¼äÿë  á0â P á › ƒ  á	0 á áÚäÿë0šå Pˆå0ƒâ0Šå0 ã0Èå  áø½è	 Tá  
0”å Sá p “p ƒåÿÿêp ããÿÿê0‘å	@ á Yáùÿÿ
 p’åÓÿÿêðE-ép€â WáÐMâ P á@ á` á>  
 €’å0‘å Xá  * å ZáE  
  áeãÿë0å   á Xá9  š0å  ã  SãR  
‚äÿë0â € á – ƒ  ã0 á á  á äÿë0•å  á0ƒâ0…åÐâð…½è  ‘ûÿÿš •å Zá5  
  áäÿë0å   á Xá  *0”å  ã  Sã=  
cäÿë0â @ á – ƒ  ã á
  á0 áäÿë0•å  á0ƒâ0…åßÿÿê0å  Sã  
€å 0’å ˜å Rá  :  á á  á?åÿë  åÑÿÿê  ãàÿÿê  ãCäÿë @ á Wà  pâ  ²à0”â – ƒ  á á  áÛÿÿê  ã6äÿë0â @ á – ƒ   ãÑÿÿê/äÿë
ÀWà  |â ²à0â @ á – ƒ  áÇÿÿê%äÿë0â € á – ƒ   ã¡ÿÿê   ã  €å €å €å Àå €å €å €åÿ/á 0 ã0Àå0€å0€å0€åÿ/á Ðåÿ/á åÿ/á åÿ/áÀÐå0 -é  \ã*  
Àå \á'  šPå Uá$  š@åPEâ bà  TãP„âœ,à@ ± PåÄA á Tã”àPÕçÀå PÌåÀå Påœ,à”\,àPÜåÀå PÌåPå Àå•%à”Å$àÀÔå ÀÃåÀ 0Àœ"  0à 0Ì!ƒ 0Ò  0Â0 ½èÿ/áðO-é @ á °â   ãQßMâ   áP á…äÿë á¤TŸåPà0€â0ÃãÐMà€â ! á  á{äÿë¬ Kâ¨âÿë|$Ÿå 0 ã$ÀKâ •ç80KåT!å ‚â¬ å`$Ÿå<0å70Kå40å00å,0å(0å •ç á`’å ’å<aåP!å åPå Œàå81å åO/Kâ  ‚à¼ãÿë4ŸåMKâp•ç ‡â 0‡â<!å¬0å>äÿë¬ KâMKâ±ãÿëMKâ á  ãÕâÿë  PãŸ  
<1åO/Kâ  ã å  ‚àäÿë˜0å ã  OKâQKâ  ã ãÿë˜3Ÿå$ÀKâ³ œá3Ÿå Rá$  
MKâ‰äÿë  Pã‘  
0‡â<1åp3Ÿå p‡â¬på0•çMKâ0ƒâ41å}äÿëü KâµãÿëL3ŸåFKâ0•ç0ƒâ41åiäÿë å$0Kâ ƒàTÁåPå0Œâ<aå¬ Kâå   ã8!å¬0åŸãÿë ÐKâð½è 0 ã 0åOKâ
  ã 0 ã6äÿëOKâKâ  ãëâÿë 0 ã 0åOKâ  ã 0 ã,äÿëOKâ„â  ãáâÿëOKâ„â  ãÝâÿë 0 ã 0åOKâ  ã 0 ãäÿëOKâ„â  ãÓâÿë0”å  SãµÿÿÚ ”å  Rã²ÿÿÚ’à ”å ”è’à `àÀƒâ  Sã0 ± À ãÃ1 á SáEÁKåX  Š0€00„5 0 ã 0åOKâ@!å äÿë ”å ãI  
0”å€ƒâ  Sã0 ±Ã á˜à â2  
0 á0ƒâ âüÿÿ ”å0hà  Rã  Ú  Sã+  Ú
 áÃ áX1å\å ”åOKâ
à  á›âÿë ã åOKâX!å\1åÜãÿë0”å‰â	 Sá ŠàïÿÿÊ0 ã0Äårÿÿê<1åOÏKâ0å0Œà  á“åã{ãÿë\ÿÿê<1åO/Kâ0å0‚à  á“åãrãÿëdÿÿê0”å  SãçÿÿÚ
 á ”åOKâ
à  árâÿë0”å‰â Yá ŠàõÿÿºÛÿÿê ”èOKâ aàhâÿëÖÿÿêQÏKâ bà  á0Lâ ãÿë¢ÿÿêOKââÿëûáÿëO/Kâ@ ‚âãÿëMKâªâÿë0å$ÀKâ0ŒàP!åOKâ â<aå!å 0 ã81åeãÿëêáÿëOKâ âaãÿëæáÿëìÿÿêMKâlãÿë0å$ÀKâ0ŒàPå<aåå 0 ã81åïÿÿêõÿÿê ¼  H  È  €  àþÿÿBM  l  Ø  oâÿêðE-é PRâÐMâ @ á` áB  
på å gà Uá  Š€aà Uá  Óå;  *€eà Wà0 I  0ƒà Xà0„åO    á
 á  áÐâðE½è­áÿê  åpbààá UáM  Š Wá€‡ €‡0 Wá b€ €àƒA  š  á0åpâÿë0å p á
 ‡à Óå  á˜áÿë ”å Và  
  á
  áÖâÿë0”å
 ‡à SàP‚à  
  á á
  áÍâÿë  ”å
P…à  Pã   
Náÿë€‡à p„å „éÐâð…½èPhà  á
 á  ázáÿë ”å  Xã €à „å   €à „å
 á  á  áÐâðE½èmáÿê  á á®âÿë0”å°ÿÿê á  á©âÿë ”åíÿÿê bà á¤âÿë«ÿÿê  Xã bàp ¾ÿÿ
¸ÿÿê Ÿå  àîàÿëø(  0Ÿå Ÿå0à0“ç0ƒâ 0€åÿ/á|µ     8@-é P á@Ÿå@à  á›áÿë á   á  á8@½èãÿê,)   0å0@-é @ á0åðPŸå Câ RáPàÐMâ.  Š  á 0àã âƒâÿëÌŸå âàúâÿëÀ Ÿå 0 á •çPåPEâ Uá    Sã	  
 PŸåPà  áváÿë á   á  áïâÿëÐâ0€½è  ”å åBâ Qá  Š  á  ã2áÿëìÿÿê …â0åãÿë0å  PãäÿÿÊ  áâ—áÿë0åßÿÿê, Ÿå  àáÿë$ Ÿå  àáÿë âðáÿëáÿëµ  `)      (  È'  Ô'  8@-é P á@Ÿå@à  áGáÿë á   á  á8@½è¿âÿêð'   0å0@-é @ á0åðPŸå Câ RáPàÐMâ.  Š  á 0àã â/âÿëÌŸå âà¦âÿëÀ Ÿå 0 á •çPåPEâ Uá    Sã	  
 PŸåPà  á"áÿë á   á  á›âÿëÐâ0€½è  ”å åBâ Qá  Š  á  ãÞàÿëìÿÿê …â0åÄâÿë0å  PãäÿÿÊ  áâCáÿë0åßÿÿê, Ÿå  àÉàÿë$ Ÿå  àÆàÿë âœáÿë±àÿëÄ³  (     d'  x&  „&  p@-é @ ádPŸå` áPà  áòàÿë á   á  ákâÿë á  áœáÿë  áéàÿë0`Ÿå á`à   á  á`âÿë  ááàÿë á   á  áp@½èYâÿêÀ&  x&  ðO-éÐMâ4CŸå å â` á âÿë åâ@à-àÿë3Ÿå å0”ç@@â Tá0å¶  üBŸå@à  áÄàÿë á   á å=âÿë  –åå â0âå0åÊáÿë 0–å å  RãR  
´"Ÿå´ÂŸå´‚Ÿå´¢Ÿå´’Ÿå´²Ÿå àÀà  åÀå€à
 à	à°à @ ã'  ê	 Uãk  

 Uãy  
 Uãn  
 å  Rã  º  áñàÿë 0–åP“ç åå åpâ  Wá  Š å  Pã  Ú â ááÿë å 0–ååÀå Bâ PáQ‚ç  p‚ å@„â Tá  * å  Rã  º  áÏàÿë 0–åQ“çq á UãN  
Ìÿÿš" Uã1  
  Š UãÍÿÿ	  ákàÿë	 á   á âäáÿë 0–å@„â å Táäÿÿ: åâáÿëtAŸå@à  á[àÿë á   á åÔáÿë åå@@â Tá7  Ðâð½è/ Uã  
\ Uã¬ÿÿ
  áJàÿë
 á   á âÃáÿëÝÿÿê  áCàÿë á   á â¼áÿëÖÿÿê å<àÿëå   á âµáÿëÏÿÿê  á5àÿë á   á â®áÿëÈÿÿê¼PŸåPà  á,àÿë á   á â¥áÿë¿ÿÿêœPŸåPàõÿÿê  å"àÿë å   á â›áÿëµÿÿê â·àÿëÌßÿë @âÌáÿë  PãÃÿÿÊ  áâLàÿë¿ÿÿêóÿÿê @âÃáÿë  PãDÿÿÊ  áâCàÿë@ÿÿê ²     &  È%   %   %  ä%  È%  Ð%  À$  ¼#  °#    å  ã0 á åÂßÿê 0åp@-é @ á0å´PŸå  SãPàÐMâ    áÐâp€½è Câ Rá  Š  á 0àã âáàÿë|Ÿå âàXáÿëp0Ÿå ` á0•çPåPEâ Uá	   0”å  Vã0æÿÿ å @âäÿÿê< Ÿå  à”ßÿë …â‚áÿë  PãñÿÿÊ  á áàÿëíÿÿê âbàÿëwßÿë¤®  Ø"     ¤!   0‘åp@-éP á0åÔ`Ÿå  Sã`àÐMâ @ á    á ááÿë  áÐâp€½è Câ Rá  Š â 0àã§àÿëŸå âàáÿë„0Ÿå   á0–ç`å`Fâ Vá    Rãæÿÿ 0•å  á á0å0Câ”àÿëâÿÿêH Ÿå  àXßÿë †â åEáÿë å  PãíÿÿÊ  áâÄßÿë åèÿÿê â#àÿë8ßÿëÈ­  ð!     ´   ðO-éäÐMâ € áT”Ÿå$ â  áÈàÿë  á$â	àÕÞÿë84Ÿå$På@™çPEâ UáÓ  T âÐÞÿë4Ÿå  ã(pâ0™çÈå0å0ƒâT0å 4ŸåÄåÌÍåÐåÔåØåÜå0™çP“å0“å(På0å0å å ‡à ‡ç¨ÞÿëÀ3ŸåH â`™ç 0 ã  †âT å¬#Ÿå†â(å ™ç00å å ‚â, å40å80å<0å@0åD0å«ßÿëx#Ÿå0„âT â ™ç,â å ‚â, å  ãL åP0åˆÞÿë  á
 áßÿë@0å „â  Sã  å|  
8°å<å SáN  š	 Sár  
  Yã„  
°ià  ãK± á  á â  âèßÿë [ã   á0€â_  
  á	 á  á0åãÞÿë0å Zá    Š °Š!ƒ  â
  á$â$0å)ßÿë$åIâ Yá    á
 áµßÿë  å Jâ Zár  t¢Ÿå
 à
  áüÞÿë
 á   á  áuàÿëPpååpGâ †â0â `†â Wá( åT`å,0åW   åH â0‚â,0åbàÿëå å0âàâ àå(PåT â¸åT0åšßÿëäÐâð½è	 [á%  
  Yã*  
°ià  ãK± á  á â  â™ßÿë [ã   á0€â  
  á	 á  á0å”Þÿë0å Zá    Š °Š!ƒ  â
  á$â$0åÚÞÿë¯ÿÿê  ™å Šå¢ÿÿê  ™å Šåîÿÿê 0 á¢ÿÿê 0 áïÿÿê  â
  áPâËÞÿë¤ÿÿê  [ãÒÿÿ
 Ÿå  â  àßÿë
  á@ßÿë  áEÞÿëSÞÿë Ÿå  â  à‡ßÿë …âOàÿë  Pã'ÿÿÊ  áâÏÞÿë#ÿÿê ‡âGàÿë  Pã£ÿÿÊ  áâÇÞÿëŸÿÿê Šâ?àÿë  PãˆÿÿÊ
  áâ¿Þÿë„ÿÿê ‰â7àÿë  PãyÿÿÊ	  áâ·ÞÿëuÿÿêÕÿÿê$ âßÿëÒÿÿê$ âßÿë(Þÿëøÿÿê ‡âüßÿë0åàâ0à å(På¸ å, ‡âàÞÿëÞÿëûÿÿêÃÿÿêÀ¬     ˜  X  @  Œ  \  H  (    ðO-éäÐMâ € áT”Ÿå$ â  á¤ßÿë  á$â	à±Ýÿë84Ÿå$På@™çPEâ UáÓ  T â¬Ýÿë4Ÿå  ã(pâ0™çÈå0å0ƒâT0å 4ŸåÄåÌÍåÐåÔåØåÜå0™çP“å0“å(På0å0å å ‡à ‡ç„ÝÿëÀ3ŸåH â`™ç 0 ã  †âT å¬#Ÿå†â(å ™ç00å å ‚â, å40å80å<0å@0åD0å‡Þÿëx#Ÿå0„âT â ™ç,â å ‚â, å  ãL åP0ådÝÿë  á
 áÝÿë@0å „â  Sã  å|  
8°å<å SáN  š	 Sár  
  Yã„  
°ià  ãK± á  á â  âÄÞÿë [ã   á0€â_  
  á	 á  á0å¿Ýÿë0å Zá    Š °Š!ƒ  â
  á$â$0åÞÿë$åIâ Yá    á
 á‘Þÿë  å Jâ Zár  t¢Ÿå
 à
  áØÝÿë
 á   á  áQßÿëPpååpGâ †â0â `†â Wá( åT`å,0åW   åH â0‚â,0å>ßÿëå å0âàâ àå(PåT â¸åT0åvÞÿëäÐâð½è	 [á%  
  Yã*  
°ià  ãK± á  á â  âuÞÿë [ã   á0€â  
  á	 á  á0åpÝÿë0å Zá    Š °Š!ƒ  â
  á$â$0å¶Ýÿë¯ÿÿê  ™å Šå¢ÿÿê  ™å Šåîÿÿê 0 á¢ÿÿê 0 áïÿÿê  â
  áPâ§Ýÿë¤ÿÿê  [ãÒÿÿ
 Ÿå  â  àlÞÿë
  áÞÿë  á!Ýÿë/Ýÿë Ÿå  â  àcÞÿë …â+ßÿë  Pã'ÿÿÊ  áâ«Ýÿë#ÿÿê ‡â#ßÿë  Pã£ÿÿÊ  áâ£ÝÿëŸÿÿê Šâßÿë  PãˆÿÿÊ
  áâ›Ýÿë„ÿÿê ‰âßÿë  PãyÿÿÊ	  áâ“ÝÿëuÿÿêÕÿÿê$ âòÝÿëÒÿÿê$ âïÝÿëÝÿëøÿÿê ‡âØÞÿë0åàâ0à å(På¸ å, ‡â¼ÝÿëøÜÿëûÿÿêÃÿÿê0¨     ˜  X  @  Œ  \  ¸  ˜  t  ðO-éäÐMâ ° á\dŸå$ â@ áP áÞÿë  á$â`àŒÜÿë<4Ÿå$€åp–ç€Hâ XáÔ  T â‡Üÿë 4Ÿå  ã(â0–çÈå0å0ƒâT0å4ŸåÄåÌÍåÐåÔåØåÜå0–ç€“å0“å(€å0å0å å ‰à ‰ç_ÜÿëÄ3ŸåH â –ç 0 ã  ŠâT å°#ŸåŠâ(å –ç00å å ‚â, å40å80å<0å@0åD0åbÝÿë|#Ÿå0‡âT â –ç,â å ‚â, å  ãL åP0å?Üÿë	  á  á0 álÞÿë@0å ‡â  Sã  å|  
8`å<På SáN  š Sár  
  Uã„  
`eà  ãFa á  á â @âžÝÿë Vã @ á0€â_  
  á á  á0å™Üÿë0å Tá    „ `„!ƒ @â  á$â$0åßÜÿë$PåPEâ Uá    á ákÝÿë @å@Dâ Tár  tBŸå@à  á²Üÿë á   á  á+ÞÿëP@åå@Dâ Šâ0â  Šâ Tá( åT å,0åW   åH â0‚â,0åÞÿëå å0âàâ àå(€åT â¸åT0åPÝÿëäÐâð½è Vá%  
  Uã*  
`eà  ãFa á  á â @âOÝÿë Vã @ á0€â  
  á á  á0åJÜÿë0å Tá    „ `„!ƒ @â  á$â$0åÜÿë¯ÿÿê  •å „å¢ÿÿê  •å „åîÿÿê 0 á¢ÿÿê 0 áïÿÿê @â  áPâÜÿë¤ÿÿê  VãÒÿÿ
 Ÿå @â  àFÝÿë  áöÜÿë	  áûÛÿë	Üÿë Ÿå @â  à=Ýÿë ˆâÞÿë  Pã&ÿÿÊ  áâ…Üÿë"ÿÿê „âýÝÿë  Pã£ÿÿÊ  áâ}ÜÿëŸÿÿê „âõÝÿë  PãˆÿÿÊ  áâuÜÿë„ÿÿê …âíÝÿë  PãyÿÿÊ  áâmÜÿëuÿÿêÕÿÿê$ âÌÜÿëÒÿÿê$ âÉÜÿëÞÛÿëøÿÿê ‰â²Ýÿë0åàâ0à å(€å¸ å, ‰â–ÜÿëÒÛÿëûÿÿêÃÿÿêœ£     ˜  X  @  Œ  \        Ü  ðO-éäÐMâ € áT”Ÿå$ â  áZÝÿë  á$â	àgÛÿë84Ÿå$På@™çPEâ UáÓ  T âbÛÿë4Ÿå  ã(pâ0™çÈå0å0ƒâT0å 4ŸåÄåÌÍåÐåÔåØåÜå0™çP“å0“å(På0å0å å ‡à ‡ç:ÛÿëÀ3ŸåH â`™ç 0 ã  †âT å¬#Ÿå†â(å ™ç00å å ‚â, å40å80å<0å@0åD0å=Üÿëx#Ÿå0„âT â ™ç,â å ‚â, å  ãL åP0åÛÿë  á
 á°Ûÿë@0å „â  Sã  å|  
8°å<å SáN  š	 Sár  
  Yã„  
°ià  ãK± á  á â  âzÜÿë [ã   á0€â_  
  á	 á  á0åuÛÿë0å Zá    Š °Š!ƒ  â
  á$â$0å»Ûÿë$åIâ Yá    á
 áGÜÿë  å Jâ Zár  t¢Ÿå
 à
  áŽÛÿë
 á   á  áÝÿëPpååpGâ †â0â `†â Wá( åT`å,0åW   åH â0‚â,0åôÜÿëå å0âàâ àå(PåT â¸åT0å,ÜÿëäÐâð½è	 [á%  
  Yã*  
°ià  ãK± á  á â  â+Üÿë [ã   á0€â  
  á	 á  á0å&Ûÿë0å Zá    Š °Š!ƒ  â
  á$â$0ålÛÿë¯ÿÿê  ™å Šå¢ÿÿê  ™å Šåîÿÿê 0 á¢ÿÿê 0 áïÿÿê  â
  áPâ]Ûÿë¤ÿÿê  [ãÒÿÿ
 Ÿå  â  à"Üÿë
  áÒÛÿë  á×ÚÿëåÚÿë Ÿå  â  àÜÿë …âáÜÿë  Pã'ÿÿÊ  áâaÛÿë#ÿÿê ‡âÙÜÿë  Pã£ÿÿÊ  áâYÛÿëŸÿÿê ŠâÑÜÿë  PãˆÿÿÊ
  áâQÛÿë„ÿÿê ‰âÉÜÿë  PãyÿÿÊ	  áâIÛÿëuÿÿêÕÿÿê$ â¨ÛÿëÒÿÿê$ â¥ÛÿëºÚÿëøÿÿê ‡âŽÜÿë0åàâ0à å(På¸ å, ‡ârÛÿë®ÚÿëûÿÿêÃÿÿêŸ     ˜  X  @  Œ  \    p  L  ðO-éäÐMâ € áT”Ÿå$ â  á6Üÿë  á$â	àCÚÿë84Ÿå$På@™çPEâ UáÓ  T â>Úÿë4Ÿå  ã(pâ0™çÈå0å0ƒâT0å 4ŸåÄåÌÍåÐåÔåØåÜå0™çP“å0“å(På0å0å å ‡à ‡çÚÿëÀ3ŸåH â`™ç 0 ã  †âT å¬#Ÿå†â(å ™ç00å å ‚â, å40å80å<0å@0åD0åÛÿëx#Ÿå0„âT â ™ç,â å ‚â, å  ãL åP0åöÙÿë  á
 áÈÚÿë@0å „â  Sã  å|  
8°å<å SáN  š	 Sár  
  Yã„  
°ià  ãK± á  á â  âVÛÿë [ã   á0€â_  
  á	 á  á0åQÚÿë0å Zá    Š °Š!ƒ  â
  á$â$0å—Úÿë$åIâ Yá    á
 á#Ûÿë  å Jâ Zár  t¢Ÿå
 à
  ájÚÿë
 á   á  áãÛÿëPpååpGâ †â0â `†â Wá( åT`å,0åW   åH â0‚â,0åÐÛÿëå å0âàâ àå(PåT â¸åT0åÛÿëäÐâð½è	 [á%  
  Yã*  
°ià  ãK± á  á â  âÛÿë [ã   á0€â  
  á	 á  á0åÚÿë0å Zá    Š °Š!ƒ  â
  á$â$0åHÚÿë¯ÿÿê  ™å Šå¢ÿÿê  ™å Šåîÿÿê 0 á¢ÿÿê 0 áïÿÿê  â
  áPâ9Úÿë¤ÿÿê  [ãÒÿÿ
 Ÿå  â  àþÚÿë
  á®Úÿë  á³ÙÿëÁÙÿë Ÿå  â  àõÚÿë …â½Ûÿë  Pã'ÿÿÊ  áâ=Úÿë#ÿÿê ‡âµÛÿë  Pã£ÿÿÊ  áâ5ÚÿëŸÿÿê Šâ­Ûÿë  PãˆÿÿÊ
  áâ-Úÿë„ÿÿê ‰â¥Ûÿë  PãyÿÿÊ	  áâ%ÚÿëuÿÿêÕÿÿê$ â„ÚÿëÒÿÿê$ âÚÿë–Ùÿëøÿÿê ‡âjÛÿë0åàâ0à å(På¸ å, ‡âNÚÿëŠÙÿëûÿÿêÃÿÿêxš     ˜  X  @  Œ  \     à
  ¼
  p@-é @ ápPŸåp0ŸåPà$`å0•ç`Fâ0ƒâ 0€åX0ŸåÐMâ0•ç Vá  H0Ÿå  á0•ç0ƒâ0€ä1Ûÿë  áÐâp€½è †âfÛÿë  PãòÿÿÊ  áâæÙÿëîÿÿêü•  \     Œ  p@-é @ áxPŸåx0ŸåPà$`å0•ç`Fâ0ƒâ 0€å`0ŸåÐMâ0•ç Vá
  P0Ÿå  á0•ç0ƒâ0€äÛÿë  áÙÿë  áÐâp€½è †â@Ûÿë  PãðÿÿÊ  áâÀÙÿëìÿÿêl•  \     Œ  @-é€½èvector::_M_range_check  -*-*-medium-*-*--13-*-*-*-*-*-*-*   -*-*-medium-*-*--12-*-*-*-*-*-*-*   -*-*-*-*-*--13-*-*-*-*-*-*-*    -*-*-*-*-*--12-*-*-*-*-*-*-*    -*-*-medium-*-*--14-*-*-*-*-*-*-*   -*-*-*-*-*--14-*-*-*-*-*-*-*    -*-*-*-*-*--*-*-*-*-*-*-*-* _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_MENU    _NET_WM_WINDOW_TYPE_DIALOG  _NET_WM_WINDOW_TYPE_DOCK    _NET_WM_ICON    CARDINAL    inputStyle  clientWindow    focusWindow filterEvents    _NET_WM_STATE   _NET_WM_STATE_SKIP_TASKBAR  _NET_WM_STATE_SKIP_PAGER    _NET_WM_STATE_ABOVE _NET_WM_STATE_STICKY    _XEMBED_INFO    _NET_SYSTEM_TRAY_S%i    _NET_SYSTEM_TRAY_OPCODE LANG    Could not open display.
    WM_PROTOCOLS    WM_DELETE_WINDOW    Couldn't open input method  queryInputStyle family  sans-serif  size    dpi charset scalable    antialias   hintstyle   E   S   C   A   P   E       F   1       F   2       F   3       F   4       F   5       F   6       F   7       F   8       F   9       F   1   0       F   1   1       F   1   2       P   R   I   N   T       S   C   R   O   L   L   O   C   K       P   A   U   S   E       B   R   E   A   K       B   A   C   K   S   P   A   C   E       R   E   T   U   R   N       C   A   P   S   L   O   C   K       S   H   I   F   T   L   O   C   K       D   E   L   E   T   E       L   E   F   T       R   I   G   H   T       H   O   M   E       E   N   D       t   y   p   e       K   E   Y       v   a   l   u   e       C   H   A   R       T   A   B       
       n   a   m   e       R   E   P   A   I   N   T       i   d       x       y       w   i   d   t   h       h   e   i   g   h   t       K   E   Y   B   O   A   R   D       s   h   i   f   t       c   t   r   l       a   l   t       c   o   m   m   a   n   d       M   O   U   S   E       a   c   t   i   o   n       M   O   V   E       b   u   t   t   o   n       B   U   T   T   O   N   _   D   O   W   N       B   U   T   T   O   N   _   U   P       N   O   T   I   F   Y       A   C   T   I   V   A   T   E       C   O   N   T   E   X   T   M   E   N   U       W   I   N   D   O   W       I   N   A   C   T   I   V   E       O   N   C   L   O   S   E       vector::_M_fill_insert  basic_string::substr    basic_string::erase basic_string::_S_construct null not valid   {       }   ,       [       ]   ,       :           \   "       \   /       \   b       \   f       \   n       \   r       \   t       \   \       "   ,       Hbÿ°¯ ÿÿ   ˆÌ Ô   ±°°_„     bÿ°© ÿÿ   X `  ±°° „    ±°° „    ±°° „    ±°° „    ±°° „    Ìaÿ°¬# ÿÿX  p˜ ì8    °aÿ°ª ÿÿ,  `œ ¤    ”aÿ°¯ ÿÿ84  xðø €   xaÿ¯G› ÿÿiH  ˆ¸ üœ ”  ¬€ àœ ðä €ð Ð¸ ˆ  ´¸ Ì´ äœ œ	¸ ¨	Ø ¸	Ä Àü¸        aÿ¯G› ÿÿHÀ  è° Äð    à`ÿ¯? ÿÿä  üÈ ÈŒ     À`ÿ°ª ÿÿ  Hœ     ¤`ÿ°« ÿÿ
|˜      Œ`ÿ¯?
 ÿÿÌ<Ü  ¨ì, ¸ð, ô  ˆ	À- ¬	  ¼	ä- à	  ð	ˆ. ”
  ¤
¬. È
  Ø
Ð. ð
  Œô. ÜT  À˜/ Ðœ/ Œ   ì/ ¼   ì0   ¨´0 Ì  ÜØ0 €  ü0 ¨  Ä 1 ü\  è¤1 ø¨1 ´  Èˆ2 ØŒ2 Œ   Ü2 Ä  Ô€3 ø  ˆ¤3 ¬  ´È3 Ü  øì3 „P  äð3 ôô3 °  ÄÔ4 ÔØ4 ˆ  œ¨5 À  ÐÌ5 ô  „ð5 ¨  °€: Ø  ô¤: €P  àÔ: ð¨: ¬  Àä8 Ðè8 „  ˜¸9 ¼  ÌÜ9 ð  €”6 ¤  ¬¸6 Ô  ðÜ6 ˆ\  ôà6 „ä6 À  ÔÄ7 äÈ7 ˜  ¬˜8 Ä  àÀ; ìô  ì$è, ü$ä, œ%  ¬%à, ¼%Ì, Ü%  ð%È, €&  œ&¼, °&L  Œ'Ø: œ'Ü: Ø'  ì'¼; ü'è; °(  Ä(¸< Ü(  ø(ä; „)  ¨*ø> ¸*ô> Ü*  ð*ð> €+ì> ¤+  ¸+Ð> È+  ä+Ì> ˆ,ì  ˆ=è> ˜=ä> ¼=  Ð=à> à=Ü> „>  ˜>Ø> ¨>  Ä>Ô>    °]ÿ°¯ ÿÿX  œÔÌ °¨     ]ÿ°«
 ÿÿ,  h(è Ô     t]ÿ°© ÿÿ   H| „     X]ÿ¯G› ÿÿKÄŒ	 äÌ	 ð4 	 ¼$¼ ŒÈ ”œ	 à  €ì¼ ¨ 	 Ìl¼ Ä  ˆ	  ˜	    ]ÿ°© ÿÿ4  Dü ˆ€   ä\ÿ°© ÿÿ4  Dü ˆ€   È\ÿ°¯ ÿÿ  (ô d  €ð  ü      \ÿ°ª ÿÿH  XÀ œ0    „\ÿ°ª ÿÿ0(  dà  L    h\ÿ°¯8 ÿÿ_  (¤ ¬à ¬´ ¸ä ˆð Ø° ô” ¤ä   Äð ”˜ Ð ð €  ð ¬  Ü   ü[ÿ°¯8 ÿÿ_  (¤ ¬à ¬´ ¸ä ˆð Ø° ô” ¤ä   Äð ”˜ Ð ð €  ð ¬  Ü   [ÿ°¯8 ÿÿ_  ,¬ °è °¼ Àì ø à¸ üœ ¬ì ˜  Ìø œ  Ø ø ˆ  ˜ø ´  ä   $[ÿ°¯8 ÿÿ_  (¤ ¬à ¬´ ¸ä ˆð Ø° ô” ¤ä   Äð ”˜ Ð ð €  ð ¬  Ü   ¸Zÿ°¯8 ÿÿ_  (¤ ¬à ¬´ ¸ä ˆð Ø° ô” ¤ä   Äð ”˜ Ð ð €  ð ¬  Ü   ([ÿ   _ÿ«±€œ`ÿ   „aÿ©±€¤bÿ   ìcÿØ÷ÿ<eÿì÷ÿfÿ°©€øgÿ_„€°hÿ«±€iÿ°ª€tiÿ   œiÿÈ÷ÿøiÿ°°ª€<jÿÐ÷ÿljÿÔ÷ÿœjÿ°¯€°kÿ°°¨€Àkÿ°¬€Plÿ_„€mÿ°¬€ nÿ°°ª€Ünÿ°¯
€pÿ ÷ÿpÿ¤÷ÿ(pÿ°¨€¬pÿ_„€4qÿ°ª€¨qÿ÷ÿÜqÿ   àqÿŒ÷ÿsÿ ÷ÿ´sÿ´÷ÿ¸uÿÈ÷ÿ$ÿ   \ÿ°¬€üÿ(øÿ†ÿ°¨€¬†ÿ8øÿ(Šÿ°¨€¨ŠÿHøÿP‹ÿ©±€„‹ÿTøÿ Œÿdøÿ”«ÿ°¯€h¯ÿ0ûÿÌ±ÿHûÿÀ²ÿ\ûÿ@³ÿ©±€h³ÿ   €´ÿ_„€ôºÿ   ,¾ÿ¯±€\¿ÿ_„€HÁÿ¯±€xÂÿ_„€dÄÿ   tÅÿ(ûÿ\Êÿ   XÊÿ_„€ Ìÿ   lÌÿ`ûÿ„Íÿ   ¬ÍÿlûÿÄÎÿ°°ª€8Ïÿxûÿ¤Òÿ   °Òÿûÿ„Óÿ¤ûÿxÔÿ¸ûÿ ÙÿüÿˆÝÿ€üÿâÿäüÿ æÿHýÿ(ëÿ       h]  ðY  8Z  ä[   ]         ¤      °      ¼      È      ×      á      ï      ŒO     ¸ì     t€          „€            õþÿo4
     ô"       
   {!           ¤    `           ,I     |G     °        þÿÿoìF  ÿÿÿo   ðÿÿopD  úÿÿo                                           Œ€         ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O  ˜O                                                                                                                                                                                                   … GCC: (Debian 4.7.2-5+rpi1) 4.7.2 A2   aeabi (   6 	
", .shstrtab .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .text .fini .rodata .ARM.extab .ARM.exidx .eh_frame .init_array .fini_array .jcr .dynamic .got .data .bss .comment .ARM.attributes                                                   ô   ô   $                  "             	                  öÿÿo   4
  4
  à               (             à              0         ô"  ô"  {!                 8   ÿÿÿo   pD  pD  |               E   þÿÿo   ìF  ìF                  T   	      |G  |G  °               ]   	   B   ,I  ,I  `              f         ŒO  ŒO                    a         ˜O  ˜O  ¤	                l         @Y  @Y  x“                 r         ¸ì  ¸ì                    x         Àì  Àì  \	                 €         ö  ö  ü                 ‹     p‚   þ  þ  X                –         p  p                              t€ t                    ¬         „€ „                    ¸         ˆ€ ˆ                    ½         Œ€ Œ                 Æ         ¤ ¤ ü                Ë          …                     Ñ         ¤… ¤ 0                 Ö      0       ¤ !                 ß     p        Å 3                                ø ï                     ˜O            ¨O            ¬O          $a $d                                                                                                                                  dwaggdi_x86_32.so                                                                                   0000644 0001750 0001750 00000251234 15030764605 013343  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ELF              0P  4   ŒN     4    (                  ÜF ÜF          ÜF ÜV ÜV Ô  <           üF üV üV ð   ð         Påtd¼' ¼' ¼' T  T        Qåtd                            &      "  ×       §   ¢      Ë   È       ý       #      ™   ê   I   »   L       Ø   Ž       Â   ð     —   @               º   ì   ¤   (                    Ý   Õ                         Ç   ]   U       k       •   å   ·                      ‘   ²   %              à   $    q       ä           ú       ô                      ©   H   	  ”           î         %       ¼   c                 ö   l               ‹   N       7       u   }             Ò               -       Û   Þ               À         ø   /   ±   í          Ñ       ¬           y   ˆ   …   Î       
            æ   Ê       ®   ¨   é                     Ð             ó   ¿   É   v   |   ›   ¶   ‰      ç   õ               ¡   Ô   6             š         µ       ï   Í   =   ÷       m   K   ª             ÿ      £   Ö       ü   Ï   ´         !                     ³     .             Š       ƒ   °         Ú        ­   ž           >   *   E   $   ë         ¦       Ü           †   ù           þ   D   Æ       Ó                                                                                                                                                                                                                                                                          1                           &   3           G   B   "                               J   ?                   9           Y           F   A   ^   T       b       Z       f               \                              X   s                  ;   i           n       4                  ‡       ‚       M       8                           {               0           ’       V   “   O       '   t               P       e               ,   „                  :   2       €   j   <   œ       ¯   `      d   ¾      g   [       «       –       a   W   z       w           Ä                   Á       )          ¸               h       o   p   r           ˜           Ì           ¹   ¥   ß   ~                   ã      #              ò       x   _   û       R                   Ù       5       Q   â       á       ½       C       Ã   ñ   è           !   Ÿ   S                                         +   Å   Œ                       °C            0P       
     t                      ¼'           +           $:           ÜV           ðV           øV           ¤[           À[       í      Š      Ü
      ~      µ   ÀQ      
   ú  B    
 •  Àë  «  " 
 ¯      ‚      [      !      Z
  @c  >    
 ©   h  f    
 O      T        ä[      Ê            !    Õ   
 Û   ~     
 Ô   àQ      
 M            _  €ï  5    
 .  €ù      
 Þ      ¦     ?      "     ž      î      -  á  ÿ   " 
 «      T      a	      3           Q      }
      ~      u  °ú  C   
 ç            Á      q                 {  ô[      F  Pf  “    
 M
      ‹      Å   \ €     Ì   \      Ö      g      H   í      
 Î   h  ,    
 ¦      l      #  ¬\      ¾      ¡      5      u      ž      P      ,  `e  ê    
 ž  \      å      X      â  Ðh  f    
 G      æ      ‡    Q      
 N      ï      ¾  \      õ  ä  U  " 
 ‹  Pg  ®    
 r
  €c  n    
 H  Ðö  %  " 
 µ  ðÚ      " 
 œ           e  0    
 ±      E            "     „            €   ø[      Ò      µ         ü  "   
 *	  pî  Ä    
 Ï      ”      R	      T      	      š         {  õ   
 ÷
      q      Ø      o      |  {      
 i  Û      " 
 ?    Q  g    
 †             U      ^     ö      <      ‘      í      É      -      Æ      }      †      6     è
      Ñ            œ      „   ö  *    
            Î  ° ’   
 S  ì[      š  @[  V    
             
  ¨\      ’  @  ß   
  
  àa     
 )      ¹        °C        ³  \      8   ù      
 º  Àí      
 	      X      d      Ô     ½	   `  Ê    
 ¿      D      =   †     
 ï             ¢           ‹            ,      e      <      T      0  •  RE   
 y      ˆ      z  À ®   " 
 y      !      ˆ
            •      >      ;  à[      %            Ï	      í        è\        pí  !    
 c      W      	      ï      [                 ‚      ½
      :      k  q  g   
   °i  J   
 2  Ä\      µ      F      È
  €d  Ø    
 ê   ù  8    
 ë      &      â   è[      .  po  —   
 ù  @i  f    
 ¥            ¼      7        Z  £    
 !      Æ      ›  0ý  r   
 œ      $            Ó     ­   [  D    
 ’      B      ¢	  P_  Ê    
 e      ~      ®      p      t  ÀX  \    
 Ñ            Z      W      N  ü[      Š      @      Ò      ª      ñ      8            ]      7  ðR  u    
 	   ]  m   
 ‘      ¦      º      Ù      ü   ô\      [  €x  Œ   
 Õ      Ü     ì      d      ð      ³      B            l   pQ  (    
 S      L      ,
      :     &  °[      ñÿÅ  p     
 ú  p\  ¤    
 ©      I     —             t  ðf  W    
 ®      õ      R  0X  Œ    
 L      Ò     _  à Õ   
 ç	      =     ý      G      —           „  â  €  " 
 ×  ðå  U  " 
 !      ¦      ”
  ðc  ƒ    
            ”      @      ñ   Z  f    
 ø      ˆ      =  0Ü  U  " 
 Ù      :      È      @      ñ	  °a  -    
 '      t     ý      f         t       (   \      l  ðˆ  •   
 m      b      à      C      ‰  Pç  U  " 
 c      ¢             ¶   "   Í      ¥                 i  pS     
 º  ph  ,    
 ž   °Q      
   `ù      
 v             Ò            J  P c   
 ´	      =     “           +      y      Y  À c   
       	     ø      „      î      !      ·            ß      Œ        °[      ñÿÓ  ð[  ~    
 ÿ      ¸      2  ]      ñÿN      ‹      !  °è  U  " 
 €	            £
      S      
      I      	      V                 T      (      ˜  Àï  Ö   
 2  ê  «  " 
 ý      (      l	  ^  ·    
 ó  Ý  ÿ   " 
   `ú  B    
   Ü\      4                  @      W      g      Ê      É      “	      -        À  ©    
 :   Y  |    
   Àn  ª    
       Í            ä      ã      l            Õ      Ê      4      Ø	  ð`  ·    
 ,      g     Ù  €W  ¨    
 3  @ï  5    
 l  \      ë    ]      1           ú      j      ƒ  Þ  €  " 
 +               W            %  p€  S    
       Ø      e
      ~      
  ð[      Ë  P ¥   
 ü      l            ð      ž  °í      
 å   Y  ~    
 U  0‡  ³   
             ¿      ±     ?
   c  >    
 _      õ     õ       %                  Ï      K                                __gmon_start__ _init _fini __cxa_finalize _Jv_RegisterClasses _Z17ChooseBetterStylemm __gxx_personality_v0 DWAGDIGetScreenSize screen DWAGDISetClipboardText DWAGDIGetClipboardText _Z17detectMouseButtonP7_XEvent DWAGDIEndLoop exitloop imageList _ZdlPv fontList notifyIconList windowList _ZNSt8ios_base4InitD1Ev DWAGDIGetMousePosition root display XQueryPointer _Z13loadFontType0P7DWAFontPw XCreateFontSet XFreeStringList XFontsOfFontSet _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_ _Znwj _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSC_RKS4_ _ZNSt8ios_base4InitC1Ev __cxa_atexit jonextevent _ZN10JSONWriterC1Ev charToFontHash hashToFont _ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj memmove _ZSt20__throw_length_errorPKc _ZSt17__throw_bad_allocv _Unwind_Resume _Z11wcharToUcs4PKw wcslen _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE13insert_uniqueERKS4_ _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_ERKS4_ _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13insert_uniqueERKS2_ _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13insert_uniqueESt17_Rb_tree_iteratorIS2_ERKS2_ _ZNSt6vectorIP8DWAImageSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z8addImagei _ZN11ImageReaderC1Ev DWAGDILoadImage _ZN11ImageReader4loadEPKw _ZN11ImageReader8getWidthEv _ZN11ImageReader9getHeightEv _ZNSt6vectorIP13DWANotifyIconSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z13addNotifyIconi _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE _ZNSt6vectorIP7DWAFontSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z7addFonti _Z12getImageByIDi _ZSt20__throw_out_of_rangePKc _ZNSt6vectorIP9DWAWindowSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z9addWindowimP4_XGCP4_XIC _Z13getWindowByIDi DWAGDIClearClipRectangle XSetClipMask DWAGDIClipRectangle XSetClipRectangles DWAGDIRepaint memset XSendEvent DWAGDIDrawImage _ZN11ImageReader8getPixelEjjPhS0_S0_S0_ XSetForeground XDrawPoint DWAGDIFillRectangle XSetLineAttributes XFillRectangle DWAGDIFillEllipse XFillArc DWAGDIDrawEllipse XDrawArc DWAGDIDrawLine XDrawLine DWAGDIPenWidth DWAGDIPenColor colormap visual XftColorFree XftColorAllocValue DWAGDIToFront XRaiseWindow DWAGDIHide XUnmapWindow DWAGDIShow XMapWindow XMoveWindow DWAGDISetTitle XwcTextListToTextProperty XSetWMName DWAGDIPosSizeWindow XFreePixmap XftDrawDestroy XGetWindowAttributes XCreatePixmap XMoveResizeWindow _Z20removeWindowByHandlem DWAGDIDestroyWindow XDestroyIC XDestroyWindow _Z17getWindowByHandlem DWAGDIUnloadFont XFreeFontSet _Z11getFontByIDi DWAGDIGetTextHeight _Z13getFontAscentii _Z17getNotifyIconByIDi _Z21getNotifyIconByHandlem _Z17findXtfFontbyCharji FcPatternCreate FcPatternAddString FcPatternAddInteger FcPatternAddDouble FcCharSetCreate FcCharSetAddChar FcPatternAddCharSet FcPatternAddBool FcConfigSubstitute FcDefaultSubstitute FcFontMatch FcPatternHash XftFontOpenPattern FcCharSetDestroy FcPatternDestroy _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E DWAGDIUnloadImage _ZN11ImageReader7destroyEv _Z16addImageToBufferPwRPm _ZN11ImageReader8isLoadedEv malloc DWAGDINewWindow screenid XWhitePixel XCreateWindow wm_delete_window XSetWMProtocols XCreateGC XAllocSizeHints XSetWMNormalHints XFree wcpcpy wcstok free realloc XInternAtom XChangeProperty im XCreateIC XGetICValues XSetICFocus XSelectInput _Z10drawNotifyP13DWANotifyIconii DWAGDIGetImageSize DWAGDIDrawText XftDrawString32 XftTextExtents32 XwcDrawString XftDrawCreate DWAGDIGetTextWidth XwcTextEscapement _Z13loadFontType1P7DWAFontPw XftInit DWAGDILoadFont _ZN9__gnu_cxx18__exchange_and_addEPVii _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_ DWAGDICreateNotifyIcon XMatchVisualInfo XCreateColormap sprintf XGetSelectionOwner _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_ _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_ DWAGDIDestroyNotifyIcon DWAGDIUpdateNotifyIcon _Z13detectKeyTypeP9DWAWindowP7_XEvent XwcLookupString _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwj _ZN10JSONWriter9addStringESbIwSt11char_traitsIwESaIwEES3_ _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_ DWAGDILoop g_callEventMessage getenv setlocale XOpenDisplay wm_protocols XSetLocaleModifiers XScreenOfDisplay XOpenIM XGetIMValues best_style x11_fd in_fds tv select XPending XNextEvent _ZN10JSONWriter5clearEv _ZN10JSONWriter11beginObjectEv _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEi _ZN10JSONWriter9endObjectEv _ZN10JSONWriter9getStringEv XCopyArea _ZN10JSONWriter10addBooleanESbIwSt11char_traitsIwESaIwEEb XRefreshKeyboardMapping XSetInputFocus XftFontClose XFreeColormap XCloseDisplay stderr fwrite _ZN11ImageReaderC2Ev _ZNSt6vectorIhSaIhEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPhS1_EEjRKh _ZN11ImageReader7readBMPEPKw wcstombs _ZNSt8ios_baseC2Ev _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate _ZTVSt13basic_filebufIcSt11char_traitsIcEE _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv _ZNSt12__basic_fileIcED1Ev _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZNSt6localeD1Ev _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZNSt8ios_baseD2Ev _ZNSi4readEPci _ZNSi5seekgExSt12_Ios_Seekdir _ZN10JSONWriterC2Ev _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEjjRKS1_ wmemcpy _ZSt19__throw_logic_errorPKc _ZN10JSONWriter7addPropESbIwSt11char_traitsIwESaIwEE _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_ _ZN10JSONWriter10beginArrayEv _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj _ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw _ZN10JSONWriter6lengthEv _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZTVSt15basic_streambufIwSt11char_traitsIwEE _ZNSt6localeC1Ev _ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb _ZNSbIwSt11char_traitsIwESaIwEED1Ev _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev _ZTVSt9basic_iosIwSt11char_traitsIwEE _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv _ZN10JSONWriter8endArrayEv _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEm _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEy _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEl _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl main libX11.so.6 libXpm.so.4 libXft.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 _edata __bss_start _end GCC_3.0 GLIBC_2.1.3 GLIBC_2.0 CXXABI_1.3 GLIBCXX_3.4                                                                                                                                                                                                                                                                                                                                                                                                                  P&y   7             0   si	   ?     ii   K        î         Ó¯k   U     t)’   `      àV    äV    èV    X    ¤[    ¨[    ìW   ðW   ôW   øW +  üW .   X /  X 4  X 9  X ?  X J  X c  X e   X f  $X k  (X ~  ,X   0X   4X Š  8X   <X Ÿ  @X ¡  DX ¢  HX ª  LX Å  PX Ê  TX Ï  XX Õ  \X Ý  `X ó  dX ö  hX ú  lX ü  pX  tX  xX  |X  €X $ ¬[  X   ”X   ˜X   œX    X   ¤X   ¨X   ¬X   °X   ´X   ¸X   ¼X   ÀX    ÄX !  ÈX "  ÌX #  ÐX $  ÔX %  ØX &  ÜX '  àX (  äX )  èX *  ìX -  ðX 0  ôX 1  øX 2  üX 3   Y 5  Y 6  Y 7  Y 8  Y :  Y ;  Y <  Y >   Y @  $Y C  (Y D  ,Y E  0Y G  4Y H  8Y I  <Y K  @Y M  DY N  HY O  LY P  PY R  TY S  XY U  \Y V  `Y W  dY X  hY Y  lY Z  pY [  tY \  xY ]  |Y ^  €Y _  „Y `  ˆY a  ŒY b  Y d  ”Y i  ˜Y m  œY n   Y o  ¤Y q  ¨Y s  ¬Y t  °Y u  ´Y v  ¸Y w  ¼Y y  ÀY z  ÄY {  ÈY |  ÌY }  ÐY €  ÔY ‚  ØY ƒ  ÜY „  àY …  äY †  èY ‡  ìY ‰  ðY ‹  ôY   øY Ž  üY    Z ‘  Z ’  Z “  Z ”  Z •  Z –  Z —  Z ˜   Z š  $Z œ  (Z   ,Z    0Z £  4Z ¤  8Z ¥  <Z ¨  @Z ©  DZ «  HZ ¬  LZ ­  PZ ®  TZ ¯  XZ ±  \Z ²  `Z ¶  dZ ·  hZ ¸  lZ ¹  pZ º  tZ »  xZ ½  |Z ¾  €Z ¿  „Z À  ˆZ Á  ŒZ Â  Z Ä  ”Z Æ  ˜Z Ç  œZ È   Z É  ¤Z Ì  ¨Z Í  ¬Z Ð  °Z Ñ  ´Z Ò  ¸Z Ó  ¼Z Ô  ÀZ Õ  ÄZ Ö  ÈZ ×  ÌZ Ø  ÐZ Û  ÔZ Ü  ØZ ß  ÜZ à  àZ á  äZ â  èZ ã  ìZ ä  ðZ å  ôZ æ  øZ ç  üZ ê   [ ì  [ í  [ î  [ ï  [ ð  [ ñ  [ ò  [ ô   [ õ  $[ ø  ([ ù  ,[ û  0[ ý  4[ þ  8[ ÿ  <[   @[  D[  H[  L[  P[  T[  X[ 	 \[ 
 `[  d[  h[  l[  p[  t[  x[  |[  €[  „[  ˆ[  Œ[   [ ! ”[ " ˜[ # œ[ $  [ % U‰åƒìèu  è   èkÚ  ÉÃ ÿ³   ÿ£       ÿ£   h    éàÿÿÿÿ£   h   éÐÿÿÿÿ£   h   éÀÿÿÿÿ£   h   é°ÿÿÿÿ£   h    é ÿÿÿÿ£    h(   éÿÿÿÿ£$   h0   é€ÿÿÿÿ£(   h8   épÿÿÿÿ£,   h@   é`ÿÿÿÿ£0   hH   éPÿÿÿÿ£4   hP   é@ÿÿÿÿ£8   hX   é0ÿÿÿÿ£<   h`   é ÿÿÿÿ£@   hh   éÿÿÿÿ£D   hp   é ÿÿÿÿ£H   hx   éðþÿÿÿ£L   h€   éàþÿÿÿ£P   hˆ   éÐþÿÿÿ£T   h   éÀþÿÿÿ£X   h˜   é°þÿÿÿ£\   h    é þÿÿÿ£`   h¨   éþÿÿÿ£d   h°   é€þÿÿÿ£h   h¸   épþÿÿÿ£l   hÀ   é`þÿÿÿ£p   hÈ   éPþÿÿÿ£t   hÐ   é@þÿÿÿ£x   hØ   é0þÿÿÿ£|   hà   é þÿÿÿ£€   hè   éþÿÿÿ£„   hð   é þÿÿÿ£ˆ   hø   éðýÿÿÿ£Œ   h   éàýÿÿÿ£   h  éÐýÿÿÿ£”   h  éÀýÿÿÿ£˜   h  é°ýÿÿÿ£œ   h   é ýÿÿÿ£    h(  éýÿÿÿ£¤   h0  é€ýÿÿÿ£¨   h8  épýÿÿÿ£¬   h@  é`ýÿÿÿ£°   hH  éPýÿÿÿ£´   hP  é@ýÿÿÿ£¸   hX  é0ýÿÿÿ£¼   h`  é ýÿÿÿ£À   hh  éýÿÿÿ£Ä   hp  é ýÿÿÿ£È   hx  éðüÿÿÿ£Ì   h€  éàüÿÿÿ£Ð   hˆ  éÐüÿÿÿ£Ô   h  éÀüÿÿÿ£Ø   h˜  é°üÿÿÿ£Ü   h   é üÿÿÿ£à   h¨  éüÿÿÿ£ä   h°  é€üÿÿÿ£è   h¸  épüÿÿÿ£ì   hÀ  é`üÿÿÿ£ð   hÈ  éPüÿÿÿ£ô   hÐ  é@üÿÿÿ£ø   hØ  é0üÿÿÿ£ü   hà  é üÿÿÿ£   hè  éüÿÿÿ£  hð  é üÿÿÿ£  hø  éðûÿÿÿ£  h   éàûÿÿÿ£  h  éÐûÿÿÿ£  h  éÀûÿÿÿ£  h  é°ûÿÿÿ£  h   é ûÿÿÿ£   h(  éûÿÿÿ£$  h0  é€ûÿÿÿ£(  h8  épûÿÿÿ£,  h@  é`ûÿÿÿ£0  hH  éPûÿÿÿ£4  hP  é@ûÿÿÿ£8  hX  é0ûÿÿÿ£<  h`  é ûÿÿÿ£@  hh  éûÿÿÿ£D  hp  é ûÿÿÿ£H  hx  éðúÿÿÿ£L  h€  éàúÿÿÿ£P  hˆ  éÐúÿÿÿ£T  h  éÀúÿÿÿ£X  h˜  é°úÿÿÿ£\  h   é úÿÿÿ£`  h¨  éúÿÿÿ£d  h°  é€úÿÿÿ£h  h¸  épúÿÿÿ£l  hÀ  é`úÿÿÿ£p  hÈ  éPúÿÿÿ£t  hÐ  é@úÿÿÿ£x  hØ  é0úÿÿÿ£|  hà  é úÿÿÿ£€  hè  éúÿÿÿ£„  hð  é úÿÿÿ£ˆ  hø  éðùÿÿÿ£Œ  h   éàùÿÿÿ£  h  éÐùÿÿÿ£”  h  éÀùÿÿÿ£˜  h  é°ùÿÿÿ£œ  h   é ùÿÿÿ£   h(  éùÿÿÿ£¤  h0  é€ùÿÿÿ£¨  h8  épùÿÿÿ£¬  h@  é`ùÿÿÿ£°  hH  éPùÿÿÿ£´  hP  é@ùÿÿÿ£¸  hX  é0ùÿÿÿ£¼  h`  é ùÿÿÿ£À  hh  éùÿÿÿ£Ä  hp  é ùÿÿÿ£È  hx  éðøÿÿÿ£Ì  h€  éàøÿÿÿ£Ð  hˆ  éÐøÿÿÿ£Ô  h  éÀøÿÿÿ£Ø  h˜  é°øÿÿÿ£Ü  h   é øÿÿÿ£à  h¨  éøÿÿÿ£ä  h°  é€øÿÿÿ£è  h¸  épøÿÿÿ£ì  hÀ  é`øÿÿÿ£ð  hÈ  éPøÿÿÿ£ô  hÐ  é@øÿÿÿ£ø  hØ  é0øÿÿÿ£ü  hà  é øÿÿÿ£   hè  éøÿÿÿ£  hð  é øÿÿÿ£  hø  éð÷ÿÿÿ£  h   éà÷ÿÿÿ£  h  éÐ÷ÿÿÿ£  h  éÀ÷ÿÿÿ£  h  é°÷ÿÿÿ£  h   é ÷ÿÿÿ£   h(  é÷ÿÿÿ£$  h0  é€÷ÿÿÿ£(  h8  ép÷ÿÿÿ£,  h@  é`÷ÿÿÿ£0  hH  éP÷ÿÿÿ£4  hP  é@÷ÿÿÿ£8  hX  é0÷ÿÿÿ£<  h`  é ÷ÿÿÿ£@  hh  é÷ÿÿÿ£D  hp  é ÷ÿÿÿ£H  hx  éðöÿÿÿ£L  h€  éàöÿÿÿ£P  hˆ  éÐöÿÿÿ£T  h  éÀöÿÿÿ£X  h˜  é°öÿÿÿ£\  h   é öÿÿÿ£`  h¨  éöÿÿÿ£d  h°  é€öÿÿÿ£h  h¸  épöÿÿÿ£l  hÀ  é`öÿÿÿ£p  hÈ  éPöÿÿÿ£t  hÐ  é@öÿÿÿ£x  hØ  é0öÿÿÿ£|  hà  é öÿÿÿ£€  hè  éöÿÿÿ£„  hð  é öÿÿÿ£ˆ  hø  éðõÿÿÿ£Œ  h   éàõÿÿÿ£  h  éÐõÿÿÿ£”  h  éÀõÿÿÿ£˜  h  é°õÿÿÿ£œ  h   é õÿÿÿ£   h(  éõÿÿÿ£¤  h0  é€õÿÿÿ£¨  h8  épõÿÿÿ£¬  h@  é`õÿÿÿ£°  hH  éPõÿÿÿ£´  hP  é@õÿÿÿ£¸  hX  é0õÿÿÿ£¼  h`  é õÿÿÿ£À  hh  éõÿÿÿ£Ä  hp  é õÿÿÿ£È  hx  éðôÿÿÿ£Ì  h€  éàôÿÿÿ£Ð  hˆ  éÐôÿÿÿ£Ô  h  éÀôÿÿÿ£Ø  h˜  é°ôÿÿÿ£Ü  h   é ôÿÿÿ£à  h¨  éôÿÿÿ£ä  h°  é€ôÿÿÿ£è  h¸  épôÿÿÿ£ì  hÀ  é`ôÿÿÿ£ð  hÈ  éPôÿÿÿ£ô  hÐ  é@ôÿÿÿ£ø  hØ  é0ôÿÿÿ£ü  hà  é ôÿÿÿ£   hè  éôÿÿÿ£  hð  é ôÿÿÿ£  hø  éðóÿÿÿ£  h   éàóÿÿÿ£  h  éÐóÿÿÿ£  h  éÀóÿÿÿ£  h  é°óÿÿÿ£  h   é óÿÿ        U‰åSƒìè    [ÃH ‹“üÿÿÿ…Òtè¶ÿÿÿX[ÉÃU‰åSèŒ   Ã ƒì€»<   u8‹“Ôÿÿÿ…Òt‹ƒ   ‰$èüÿÿëƒÀ‰ƒ$  ÿÒ‹ƒ$  ‹…ÒuéÆƒ<  X[]Ã‰ö¼'    U‰åSè,   Ã» ƒì‹ƒtþÿÿ…Àt‹“ôÿÿÿ…Òtƒtþÿÿ‰$ÿÒY[]Ã‹$ÃU‰åV‹u‹M…öt2…ÉtN‰ò‰Èâ  %  9Ât;‰ò‰Èƒâƒà9Âtƒút(´&    ^‰È]Ã‰ð%   =   uí¶    ¼'    ‰ñ^‰È]Ã´&    U‰åS‹MèyÿÿÿÃ ‹ƒŒÿÿÿ‹‹B‰‹B‰A[]Ã´&    U‰å]Ãv ¼'    U1À‰å]Ã´&    U‰å‹E‹P4¸   ƒút
1Àƒú”ÀÀ]Ãè†›  ÁŸ U‰å‹´ÿÿÿÆ ]Ã¶    U‰åSèìþÿÿÃ{ ƒì‹ƒðÿÿÿ‹ …Àt‰$è²ýÿÿX[]Ã¶    U‰åSè¼þÿÿÃK ƒì‹ƒÄÿÿÿ‹ …Àt‰$è‚ýÿÿZ[]Ã¶    U‰åSèŒþÿÿÃ ƒì‹ƒ¬ÿÿÿ‹ …Àt‰$èRýÿÿY[]Ã¶    U‰åSè\þÿÿÃë ƒì‹ƒäÿÿÿ‹ …Àt‰$è"ýÿÿX[]Ã¶    U‰åSè,þÿÿÃ» ƒìƒˆ  ‰$èýÿÿX[]Ã¶    ¿    U‰åVSƒìPèøýÿÿÃ‡ Eô‹u‰D$ Eè‰D$Eì‰D$Eà‰D$Eä‰D$Eð‰D$‰D$‹ƒ¼ÿÿÿ‹ ‰D$‹ƒ”ÿÿÿ‹ ‰$èÈõÿÿHu‹Eä‰‹Eà‰FƒÄP[^]Ãv ¼'    U‰åWVSèzýÿÿÃ	 ƒìL‹EUèMð}ì‰UÐÇ@    ‹³”ÿÿÿƒÆÿÿ‰T$‰L$‰|$‰D$‹‰MÌ‰$èµóÿÿ‹U…À‰B„ˆ   ‹}ð…ÿ~‹Eì‰$èåôÿÿ‹MEàÇA    ÇA    ‰D$Eä‰D$‹A‰$è›õÿÿ…À‰Ç~9‹uä1À‰uÈt& ‹UÈ‹u‹‚‹QH9V}‰V‹QL‹qH‹Mò9Q}‰Q@9ÇuÔƒÄL¸   [^_]Ã‹EÌ‹MÐ‰|$‰D$ƒ0Æÿÿ‰L$‰D$‹‰$èùòÿÿ‹U…À‰B…Dÿÿÿ‹EÌ‹MÐ‰|$‰D$ƒvÆÿÿ‰L$‰D$‹‰$èÅòÿÿ‹U…À‰B…ÿÿÿ‹EÌ‹MÐ‰|$‰D$ƒ“Æÿÿ‰L$‰D$‹‰$è‘òÿÿ‹U…À‰B…Üþÿÿ‹EÌ‹MÐ‰|$‰D$ƒTÆÿÿ‰L$‰D$‹‰$è]òÿÿ‹U…À‰B…¨þÿÿ‹EÌ‹MÐ‰|$‰D$ƒ°Æÿÿ‰L$‰D$‹‰$è)òÿÿ‹U…À‰B…tþÿÿ‹EÌ‹MÐ‰|$‰D$ƒÍÆÿÿ‰L$‰D$‹‰$èõñÿÿ‹U‰BéCþÿÿ‰öU‰åƒì‰]øèWûÿÿÃæ H‰uüt
‹]ø‹uü‰ì]Ãúÿÿ  uîƒˆ  ‰$è¾îÿÿ‹³ÿÿÿ1À‰D$ƒ<úþÿ‰$‰t$èPñÿÿ‹ƒhÿÿÿ‰$èâöÿÿ1À‰D$ƒL(ÿÿ‰t$‰$è*ñÿÿ‹ƒ€ÿÿÿ1ÉP‰P‰PÇ@    Ç@    Ç@    ƒ|ÿÿ‰L$‰t$‰$èîðÿÿ‹ƒ°ÿÿÿP‰P‰P1ÒÇ@    Ç@    Ç@    ƒÜÿÿ‰T$‰t$‰$è²ðÿÿ‹ƒäÿÿÿÇ     Ç@    Ç@    1À‰D$ƒúþÿ‰t$‰$è€ðÿÿ‹ƒ¬ÿÿÿÇ     Ç@    Ç@    1À‰D$ƒÜùþÿ‰t$‰$èNðÿÿ‹ƒÄÿÿÿÇ     Ç@    Ç@    1À‰D$ƒ¬ùþÿ‰t$‰$èðÿÿ‹ƒðÿÿÿÇ     Ç@    Ç@    1À‰D$ƒ|ùþÿ‰t$‰$èêïÿÿ‹]ø‹uü‰ì]Ã´&    Uºÿÿ  ‰å¸   ]éþÿÿ¶    ¿    U‰åWVSƒì,‹E‹}èaùÿÿÃð  …ÀÇ    ÇG    ÇG    tR‹E‰$èóÿÿ…À‰Eàt@1öë…Òt‰F9uàB‰Gt*‹U‹²‹W;W‰EðuÝEð‰D$‰T$‰<$è
ôÿÿF9uàuÖƒÄ,‰ø[^_]Â ‰Æ‹…Àt‰$è¸÷ÿÿ‰4$è@öÿÿ´&    U‰åƒì8‰]ôè·øÿÿÃF  ‰}ü‰uøÇ$    èróÿÿ‰Ç@‰$èìÿÿ‹‹ðÿÿÿ‹E‰}ð‹Q;Q‰t…Òt‰:B‰A‹Eð‹]ô‹uø‹}ü‰ì]ÃEð‰D$‰T$‰$èpíÿÿëÛ‰Æ‰<$è$÷ÿÿ‰4$è¬õÿÿt& U‰åƒì‰]ô‹Eè$øÿÿÃ³ÿ  ‰uø‹u‰}ü‰$èpòÿÿx‹E‰<$‰D$è®îÿÿ‰<$è†öÿÿ‰‰<$èìîÿÿ‰F‹]ô‹uø‹}ü‰ì]Ãt& U‰åVSèË÷ÿÿÃZÿ  ƒì Ç$   è‰òÿÿ‹³¬ÿÿÿ‹N‰Â‹ƒpÿÿÿ‰UôƒÀ‰B‹E;NÇB    ÇB    ‰t…Ét‰A‰F‹EôƒÄ [^]ÃEô‰D$‰L$‰4$èòÿÿëát& U‰åVSèK÷ÿÿÃÚþ  ƒì Ç$   è	òÿÿ‹³Äÿÿÿ‹N;N‰ÂÇ@    Ç@    Ç@    Ç@    ‰Eô‹E‰t…Ét‰A‰F‹EôƒÄ [^]ÃEô‰D$‰L$‰4$è\òÿÿëá‰öU‰åƒì‰]ôèÇöÿÿÃVþ  ‰uø‰}ü‹}‹ƒðÿÿÿ‹‹@)È‰ÆÁþu1À‹]ô‹uø‹}ü‰ì]Ã1Òë‹‘98t	B9ò‰öuòëÝ9òrÛƒÿÆÿÿ‰$èróÿÿv ¼'    U‰åWSè[öÿÿÃêý  ƒì Ç$,   èñÿÿ¹   ü‰Â1À‰×ó«‹»äÿÿÿ‰UôÇB    ÇB    ‹O‹E;OÇB     ÇB$    ‰‹EÇB(   ‰B‹E‰B‹E‰Bt…Ét‰A‰G‹EôƒÄ [_]ÃEô‰D$‰L$‰<$èwòÿÿëá¶    ¿    U‰åƒì‰$è§õÿÿÃ6ý  ‰t$‰|$‹}‹ƒäÿÿÿ‹‹@)È‰ÆÁþu1À‹$‹t$‹|$‰ì]Ã1Òë‹‘98tæB9òuôëÝv ¼'    U‰åSèLõÿÿÃÛü  ƒì‹E‰$èìÿÿ…Àt1Ò‰T$‹@‰D$‹ƒ”ÿÿÿ‹ ‰$èŠëÿÿƒÄ[]Ã¶    ¿    U‰åSèüôÿÿÃ‹ü  ƒì4‹E‰$èËëÿÿ…À‰ÂtU‹E1É‰L$f‰Eô‹Ef‰Eö‹Ef‰Eø‹Ef‰Eú1À‰D$¸   ‰D$Eô‰D$1À‰D$‹B‰D$‹ƒ”ÿÿÿ‹ ‰$è°èÿÿƒÄ4[]Ã‰öU‰åìˆ   ‰]ô‹EèqôÿÿÃ ü  ‰}ü‰uø‰$è@ëÿÿ…À‰Çtiu”º`   1À‰T$‰D$‰4$è0ñÿÿÇE”   ‹G‰t$‰E¤‹E‰E¨‹E‰E¬‹E‰E°‹E‰E´¸ €  ‰D$1À‰D$‹G‰D$‹ƒ”ÿÿÿ‹ ‰$èìÿÿ‹]ô‹uø‹}ü‰ì]Ã¶    ¿    U‰åWVSèÊóÿÿÃYû  ƒìL‹E‰$è™êÿÿ‰EÜ‹E‰$è›îÿÿ‹uÜ…ö„-  …À„%  p‰4$èòÿÿEðUñ‰EØEò‰UÔUóÇEà    ‰EÐ‰UÌ¶    ‰4$1ÿè^êÿÿët& ‰4$GèOêÿÿH9ø‚¾   ‹EØ‹UÔ‰|$‰4$‰D$‹EÐ‰T$‹UÌ‰D$‹Eà‰T$‰D$è·èÿÿ€}ðÿu¹¶Eó¶Uñ¶MòÁà	Ð‹UÜÁá	Á‰L$‹B‹“”ÿÿÿ‰D$‹‰$èèÿÿ‹E‹Mà‹UÜøG‰D$‹EÈ‰D$‹B‰D$‹B‹“”ÿÿÿ‰D$‹‰$è†æÿÿ‰4$èžéÿÿH9øƒOÿÿÿ¶    ¼'    ÿEà‰4$èñÿÿH;EàƒÿÿÿƒÄL[^_]Ã‰öU‰åƒì(‰]ô‹EèTòÿÿÃãù  ‰}ü‰uø‰$è#éÿÿ…À‰Çt1À‹³”ÿÿÿ‰D$¸   ‰D$1À‰D$‹G(‰D$‹G‰D$‹‰$èÊîÿÿ‹G‰D$‹G‰D$‹‰$è²çÿÿ‹E‰D$‹E‰D$‹E‰D$‹E‰D$‹G‰D$‹G‰D$‹‰$è>ïÿÿ‹]ô‹uø‹}ü‰ì]Ã´&    U‰åƒì8‰]ô‹Eè”ñÿÿÃ#ù  ‰}ü‰uø‰$ècèÿÿ…À‰Ç„Ž   1Éº   ‹³”ÿÿÿ1À‰L$‰T$‰D$‹G(‰D$‹G‰D$‹‰$èîÿÿ‹G‰D$‹G‰D$‹‰$èîæÿÿ¸ Z  ‰D$ 1À‰D$‹E‰D$‹E‰D$‹E‰D$‹E‰D$‹G‰D$‹G‰D$‹‰$èëìÿÿ‹]ô‹uø‹}ü‰ì]Ã¶    U‰åƒì8‰]ô‹EèÄðÿÿÃSø  ‰}ü‰uø‰$è“çÿÿ…À‰Ç„Ž   1À‹³”ÿÿÿ‰D$¸   ‰D$1À‰D$‹G(‰D$‹G‰D$‹‰$è6íÿÿ‹G‰D$‹G‰D$‹‰$èæÿÿ¸ Z  ‰D$ 1À‰D$‹E‰D$‹E‰D$‹E‰D$‹E‰D$‹G‰D$‹G‰D$‹‰$èûçÿÿ‹]ô‹uø‹}ü‰ì]Ã¶    U‰åƒì(‰]ô‹EèôïÿÿÃƒ÷  ‰}ü‰uø‰$èÃæÿÿ…À‰Çt1Éº   ‹³”ÿÿÿ1À‰L$‰T$‰D$‹G(‰D$‹G‰D$‹‰$èjìÿÿ‹G‰D$‹G‰D$‹‰$èRåÿÿ‹E‰D$‹E‰D$‹E‰D$‹E‰D$‹G‰D$‹G‰D$‹‰$èÞéÿÿ‹]ô‹uø‹}ü‰ì]Ã´&    U‰åSè<ïÿÿÃËö  ƒì‹E‰$èæÿÿ…À‰Ât‹E‰B(X[]Ã‰öU‰åWVSè
ïÿÿÃ™ö  ƒì,‹E‰$èÙåÿÿ…À‰Æ„Ô   ‹}‹E‹UÁçÁà	ø	Ð‰F‹F…Àt>‹“œÿÿÿ‰D$‹‹“øÿÿÿ‰D$‹‹“”ÿÿÿ‰D$‹‰$è†ëÿÿ‹F‰$è{íÿÿÇF    ‹Ef¶UfÇEòÿÿÁà	Ðf¶Uf‰Eìf¶E	Ç‹Ef‰}îÁà	Ðf‰EðÇ$   è%éÿÿ‹“œÿÿÿ‰F‰D$Eì‰D$‹‹“øÿÿÿ‰D$‹‹“”ÿÿÿ‰D$‹‰$è/èÿÿ…ÀtƒÄ,[^_]Ã‹F‰$èèìÿÿÇF    ƒÄ,[^_]ÃU‰åSèìíÿÿÃ{õ  ƒì‹E‰$è»äÿÿ…Àt‹@‰D$‹ƒ”ÿÿÿ‹ ‰$èâÿÿƒÄ[]Ã‰öU‰åSè¬íÿÿÃ;õ  ƒì‹E‰$è{äÿÿ…Àt‹@‰D$‹ƒ”ÿÿÿ‹ ‰$èàëÿÿƒÄ[]Ã‰öU‰åƒì(‰]ô‹EèdíÿÿÃóô  ‰}ü‰uø‰$è3äÿÿ…À‰Çt6‹@‹³”ÿÿÿ‰D$‹‰$è6áÿÿ‹G$‰D$‹G ‰D$‹G‰D$‹‰$è×äÿÿ‹]ô‹uø‹}ü‰ì]Ã‰öU‰åƒì8‰]ô‹EèôìÿÿÃƒô  ‰}ü‰uø‰$èÃãÿÿ…À‰ÇtK¾   ¹   ‰t$‹³”ÿÿÿEä‰D$‰EàE‰L$‰D$‹‰$èzéÿÿ‹Eà‰D$‹G‰D$‹‰$èÒäÿÿ‹]ô‹uø‹}ü‰ì]Ã¶    ¿    U‰åWVSèjìÿÿÃùó  ƒì|‹E‰$è9ãÿÿ…À‰Æ„§   ‹@‹»”ÿÿÿ‰D$‹‰$è(ßÿÿ‹F…Àt‰$è¹âÿÿÇF    E˜‰D$‹F‰D$‹‰$èêáÿÿ‹E¬‰D$‹E‰D$‹E‰D$‹F‰D$‹‰$è4êÿÿ‰F‹E‰F ‹E‰F$‹E‰D$‹E‰D$‹E‰D$‹E‰D$‹F‰D$‹‰$èHâÿÿƒÄ|[^_]Ã´&    U‰åWVSèŠëÿÿÃó  ƒì‹ƒäÿÿÿ‹‹P1À)ÊÁúë4…    ‹}‰uð‹49~t@9ÐuæƒÄ[^_]Ã‹F…Àt‰$èÏáÿÿÇF    ‹F…Àt>‰D$‹ƒœÿÿÿ‹ ‰D$‹ƒøÿÿÿ‹ ‰D$‹ƒ”ÿÿÿ‹ ‰$èåçÿÿ‹F‰$èÚéÿÿÇF    ‹ƒäÿÿÿ‹Mð‹8‹PùA9Âu‹»äÿÿÿƒo‰4$èªéÿÿƒÄ[^_]Ã)Â‰T$‰D$‰$èâÿÿëÒ¶    U‰åƒì‰]ô‹Eè”êÿÿÃ#ò  ‰uø‰}ü‰$ècáÿÿ…À‰EðtZ‹p‹x‰4$è>ßÿÿ‰<$è¶ãÿÿ‰t$‹³”ÿÿÿ‹‰$è‚ãÿÿ‹Uð‹B‰D$‹‰$è.Ýÿÿ‹Uð‹B…Àt‰$è¼àÿÿ‹EðÇ@    ‹]ô‹uø‹}ü‰ì]Ã¶    ¿    U‰åƒì‰$è÷éÿÿÃ†ñ  ‰t$‰|$‹}‹ƒäÿÿÿ‹‹@)È‰ÆÁþu1À‹$‹t$‹|$‰ì]Ã1Òë	‹‘9xtåB9òuóëÜ´&    U‰åWVSèšéÿÿÃ)ñ  ƒì‹ƒÄÿÿÿ‹‹P1À)ÊÁúë4…    ‹}‰uð‹49>t@9ÐuçƒÄ[^_]Ã‹N…Ét1‹ƒÄÿÿÿ‹Mð‹Ñ‹PA9Âu3‹»Äÿÿÿƒo‰4$èèÿÿƒÄ[^_]Ã‹F‰D$‹ƒ”ÿÿÿ‹ ‰$èâÿÿë¶)Â‰T$‰D$‰$è\àÿÿë¹‰öU‰åƒì‰]ôèçèÿÿÃvð  ‰uø‰}ü‹}‹ƒÄÿÿÿ‹‹@)È‰ÆÁþu1À‹]ô‹uø‹}ü‰ì]Ã1Òë‹‘98t	B9ò‰öuòëÝ9òrÛƒÿÆÿÿ‰$è’åÿÿv ¼'    U‰åSè|èÿÿÃð  ƒì‹E‰$è«Ûÿÿ1Ò…Àt‹P‰ÐZ[]Ãt& U‰åSèLèÿÿÃÛï  ƒì‹E‰$è{Ûÿÿ1Ò…Àt‹PY‰Ð[]Ãt& U‰åƒì‰]ôèèÿÿÃ¦ï  ‰uø‰}ü‹}‹ƒ¬ÿÿÿ‹‹@)È‰ÆÁþu1À‹]ô‹uø‹}ü‰ì]Ã1Òë‹‘98t	B9ò‰öuòëÝ9ÖwÛƒÿÆÿÿ‰$èÂäÿÿv ¼'    U‰åƒì‰]ôè§çÿÿÃ6ï  ‰uø‰}ü‹}‹ƒ¬ÿÿÿ‹‹@)È‰ÆÁþu1À‹]ô‹uø‹}ü‰ì]Ã1Òë	‹‘9xtB9òuòëÝ9ÖwÛƒÿÆÿÿ‰$èRäÿÿv ¼'    U‰åWVSè:çÿÿÃÉî  ƒìl‹“€ÿÿÿJ‹B‰M¤‰Êt& ¼'    …Àt‹M;H‡à  ‰Â‹@…Àuë‹E¤9Â‰E¨t{‹M;Jrs‹‹°ÿÿÿ‹Rq‹A‰ñt& …Àt;P‡³  ‰Á‹@…Àuî9ñt;Q‰Ès0EÐ‰UÐUÀÇEÔ    ‰D$‹ƒ°ÿÿÿ‰L$‰$‰D$èÍäÿÿ‹EÀƒì‹xeô[^‰ø_]ÃèåÝÿÿ¿   1ö‰E˜ƒÇÿÿ‰D$ƒ!Çÿÿ‰D$‹U˜‰$èÌÝÿÿ‹E‰D$ƒ(Çÿÿ‰D$‹M˜‰$è€Ùÿÿ1À‰D$¸  X@‰D$ƒ-Çÿÿ‰D$‹E˜‰$èÞÿÿè÷áÿÿ‹U‰E ‰T$‰$èÜÿÿ‹M ƒ1Çÿÿ‰D$‰L$‹E˜‰$è	àÿÿ¸   ‰D$ƒ9Çÿÿ‰D$‹U˜‰$è‹Ùÿÿ¸   ‰D$ƒBÇÿÿ‰D$‹M˜‰$èmÙÿÿƒLÇÿÿ‰|$1ÿ‰D$‹E˜‰$èÒØÿÿ‰t$‹U˜Ç$    ‰T$è+Þÿÿ‹M˜‰$è`äÿÿEð‰D$‹E˜Ç$    ‰D$èãÿÿ…À‰Eœ„ï   ‰$èsÜÿÿ‹“°ÿÿÿJ‰M°‰Ï‰Æ‹B´&    …Àt;p‡ë   ‰Ç‹@…Àuî‹E°9Ç‰E¬t	;wƒX  ‹Uœ‹ƒ”ÿÿÿ‰T$‹ ‰$èàÿÿ…À‰Ç„À  ‹‹°ÿÿÿ‹A…Àuéí   t& ‰E°‹@…Àt;pv vî‹@…Àuñ‹E°9E¬„Ä   ;p‚¸   ‹“€ÿÿÿ‰x‹B…Àuëk‰E¤‹@…Àt‹M;Hvî‹@…Àuñ‹E¤9E¨tJ‹U;Pr?‰p‹U ‰$èÁâÿÿ‹M˜‰$èÝÿÿeô‰ø[^_]Ãt& ‹@éýÿÿ‹@é ÿÿÿ‹@é8ýÿÿ‰E¨‹MEèÇEì    U´‰Mè‹‹€ÿÿÿ‰D$‹E¨‰$‰L$‰D$èÞÿÿ‹E´‰pƒìë†‰E¬Eà‰uàU¸ÇEä    ‰D$‹ƒ°ÿÿÿ‹M¬‰$‰D$‰L$èâáÿÿ‹E¸ƒìéÿÿÿ‹“€ÿÿÿ‹B…ÀuëB‰E¤‹@…Àt‹M;Hvî‹@…Àuñ‹E¤9E¨t!‹U;Pr‰p‹Eœ‰$è1Üÿÿ‹éýþÿÿ‰E¨‹MEØÇEÜ    U¼‰MØ‹‹€ÿÿÿ‰D$‹E¨‰$‰L$‰D$èÆÝÿÿ‹E¼ƒìë¯‹Eœ‰$èãÛÿÿé²þÿÿ¶    U‰åWVSèêâÿÿÃyê  ƒì‹“€ÿÿÿ‹B…Àt*‰Æë‰þ‹F‰D$‹ƒ€ÿÿÿ‰$èÜßÿÿ‹~‰4$è‘áÿÿ…ÿuÚƒÄ[^_]Ã‰$èàÿÿt& U‰åWVSèŠâÿÿÃê  ƒì‹“°ÿÿÿ‹B…Àt*‰Æë‰þ‹F‰D$‹ƒ°ÿÿÿ‰$èlÕÿÿ‹~‰4$è1áÿÿ…ÿuÚƒÄ[^_]Ã‰$è­ßÿÿt& U‰åWVSè*âÿÿÃ¹é  ƒì‹“ðÿÿÿ‹‹J1Ò)ÁÁùë4•    ‹}‰uð‹0ƒÀ9>tB9ÊuåƒÄ[^_]ÃF‰$èÒÙÿÿ‹ƒðÿÿÿ‹Mð‹Ñ‹PA9Âu)‹“ðÿÿÿ‹Fƒj…Àt‰$è’àÿÿ‰4$èŠàÿÿƒÄ[^_]Ã)Â‰T$‰D$‰$èðØÿÿëÃ¶    U‰åWVSèzáÿÿÃ	é  ƒì\EÔ‰EÀ‰$èÖÔÿÿ‹E‰D$‹EÀ‰$èØÿÿ‹EÀ‰$è¹Õÿÿ„ÀÇEÄ    u‹EÔ…Àt‰$èàÿÿ‹EÄƒÄ\[^_]Ã‹EÀ‰$è©ßÿÿ‰Æ‹EÀ‰$èØÿÿ¯ðƒÆ‰ðÁà‰uÄ‰$èØÿÿ‰Æ‹E‰0‹EÀ‰$ètßÿÿ‰‹E‹0‹EÀƒÆ‰$èÏ×ÿÿ‰ÇEÈ   ÇEÌ    ‹EÀ‰$èDßÿÿH9EÌ‡   ‹EÈ1ÿÁà‰EÐëkt& Eð‰D$Eñ‰D$Eò‰D$Eó‰D$‹EÌ‰|$‰D$‹EÀ‰$èÖÿÿ‹EG¶Uð¶MòÿEÈ‹0¶EóÁâÁáÁà	Â¶Eñ	Â‹EÐ	Ñ‰0ƒÀ‰EÐ‹EÀ‰$è'×ÿÿH9ÇvŠÿEÌé[ÿÿÿ‹EÀ‰$èÿ×ÿÿéÌþÿÿ‰Æ‹EÔ…Àt‰$èÙÞÿÿ‰4$èaÝÿÿ´&    U‰åWVSèÚßÿÿÃiç  ì  ‹}‹³tÿÿÿ‹“”ÿÿÿ‹‰D$‹‰$è2Õÿÿ‰Eœ‹ƒ”ÿÿÿ‹‹‹‘Œ   €Áà‹T(‹ƒøÿÿÿ‰E˜‰D$,¸   ‰D$(¸   ‰T$$‰D$ ‹‹‘Œ   €Áà‹D$1Ò‰T$‰D$‹U‰T$‹E‰D$‹U‰T$‹E‰D$‹ƒ¼ÿÿÿ‹ ‰$‰D$èdÛÿÿ‰… ÿÿÿ¸   ‰D$‹ƒ„ÿÿÿ‰D$‹• ÿÿÿ‰T$‹“”ÿÿÿ‹‰$èÒÿÿ1À‹“”ÿÿÿ‰D$1À‰D$‹… ÿÿÿ‰D$‹‰$è‹Ýÿÿƒÿd”…ÿÿÿƒÿ‰…$ÿÿÿt€½ÿÿÿ „Ð  èÕÿÿ‹U‰ÆÇ 0   ‹E‰V ‰V‹“”ÿÿÿ‰F‰F‰t$‹… ÿÿÿ‰D$‹‰$èŒÙÿÿ‰4$èäÖÿÿÿ,  „Ð  €½ÿÿÿ …ù  ÿÈ   „w  ‹M …É„  ‹E ‰¥ÿÿÿ‰$èó×ÿÿ‹U …   ƒàð)Ät$?ƒæð‰T$‰4$èq×ÿÿEè“Éÿÿ‰…ÿÿÿ‰D$‰•ÿÿÿ‰T$‰4$è,Úÿÿ…À„¸  1Ò1ÿ‰•(ÿÿÿUä‰•ÿÿÿé¬   t& …    ‰…,ÿÿÿ‰$èÃÔÿÿ‰µ0ÿÿÿ‰…(ÿÿÿ‰Â<º‹•,ÿÿÿ‹uäƒúv÷Ç   t‹ƒêƒÆ‰ƒÇ´&    ‰ÑÁéöÂüó¥t·ƒÆf‰ƒÇöÂt¶ˆ‹Eä‰$èÊÙÿÿ‹½0ÿÿÿ‹…ÿÿÿ‰D$‹•ÿÿÿÇ$    ‰T$èdÙÿÿ…Àt]‹•ÿÿÿÇEä    ‰$‰T$è‡Õÿÿ…À‰Æ~½…ÿ„1ÿÿÿ8‰ÐÁà‰•0ÿÿÿÁæ‰D$‹…(ÿÿÿ‰$è¦×ÿÿ‰µ,ÿÿÿ‰Â‰…(ÿÿÿéÿÿÿ…ÿŽ   ‹“”ÿÿÿ1À‰D$ƒ"Èÿÿ‰D$‹‰$èKØÿÿ‹“”ÿÿÿ‰Æ1À‰D$ƒ/Èÿÿ‰D$‹‰$è)Øÿÿ‰|$1É‹•(ÿÿÿ‰L$‰D$‰t$‰T$º    ‰T$‹“”ÿÿÿ‹… ÿÿÿ‰D$‹‰$è:Õÿÿ‹…(ÿÿÿ‰$è¬Øÿÿ‹¥ÿÿÿ1ÿ¾  ‰|$ƒ8Èÿÿ‹• ÿÿÿ‰D$ƒDÈÿÿ‰D$ƒQÈÿÿ‰D$‹ƒÐÿÿÿ‰t$‰T$‰T$‹ ‰$èë×ÿÿÇEð    …À‰Æt'Eð1É‰D$ƒ\Èÿÿ‰L$‰D$‰4$èOÐÿÿ‰4$è‡Õÿÿ‹Eð‹“”ÿÿÿO€! ‰D$‹… ÿÿÿ‰D$‹‰$èØÿÿ‰t$‹…$ÿÿÿ‰D$‹• ÿÿÿ‰T$‹E‰$èÔÿÿ‹“”ÿÿÿ‰Æ…<ÿÿÿ‰D$‹… ÿÿÿ‰D$‹‰$èÑÿÿ‹…Pÿÿÿ‹“”ÿÿÿ‰D$‹…Hÿÿÿ‰D$‹…Dÿÿÿ‰D$‹… ÿÿÿ‰D$‹‰$è@Ùÿÿ‹U‰F‹E‰V$‰F eô[^_]Ãÿ,  …‚üÿÿè(Ñÿÿ‹U‰ÆÇ 0   ‹E‰V ‰V‹“”ÿÿÿ‰F‰F‰t$‹… ÿÿÿ‰D$‹‰$è°Õÿÿ‰4$èÓÿÿ‹“”ÿÿÿ¸   ‰D$ƒVÇÿÿ‰D$‹‰$è%Öÿÿ‰Æ¸   ‰D$ƒjÇÿÿë4‹“”ÿÿÿ¸   ¿   ‰D$ƒVÇÿÿ‰D$‹‰$èêÕÿÿ‰|$‰ÆƒƒÇÿÿ‹“”ÿÿÿ1ÿ‰D$‹‰$èÈÕÿÿº   ‰EìEì‰D$1À‰D$¸    ‰D$¸   ‰T$‹“”ÿÿÿ‰t$‰D$‹… ÿÿÿ‰D$‹‰$èÏÒÿÿ‹“”ÿÿÿ1À‰D$ƒ·Çÿÿ‰D$‹‰$è_Õÿÿ‹“”ÿÿÿ‰Æ1À‰D$ƒÅÇÿÿ‰D$‹‰$è=Õÿÿ‹“”ÿÿÿ‰EÔ1À‰D$ƒàÇÿÿ‰D$‹‰$èÕÿÿ‹“”ÿÿÿ‰EØƒùÇÿÿ‰|$¿   ‰D$‹‰$èôÔÿÿ‹“”ÿÿÿ1É‰EÜƒÈÿÿ‰L$‰D$‹‰$èÑÔÿÿº   ‰EàEÔ‰D$1À‰D$¸    ‰T$‹“”ÿÿÿ‰D$‰|$‰t$‹… ÿÿÿ‰D$‹‰$èÝÑÿÿé‰úÿÿ‹“”ÿÿÿ¾   ƒVÇÿÿ‰t$‰D$‹‰$èeÔÿÿ¹   ‰L$‰ÆƒžÇÿÿéqþÿÿ‹¥ÿÿÿ‰$èñÕÿÿ´&    U1Ò‰åWVSƒì\èeØÿÿÃôß  ‰T$‹U‹B‹“”ÿÿÿ‰D$‹‰$èÎÿÿ‹U‹E‰T$‹U‰D$1À‰D$1À‰D$‹B‰D$‹B‹“”ÿÿÿ‰D$‹‰$è‰ÕÿÿEÔ‰EÀ‰$èkËÿÿ‹U‹B‰D$‹EÀ‰$è–Îÿÿ‹UÀ‰$èKÌÿÿ„Àu‹EÔ…Àt‰$è¨ÖÿÿƒÄ\[^_]Ã‹U‹E‰P‹U‰P‹EÀ‰$è6Öÿÿ9EÇEÄ    ~(‹E‹UÁè4‹EÀÑþ‰$èÖÿÿ‰ÂÁêÂÑú‰uÄ)UÄ‹UÀ‰$ègÎÿÿ9EÇEÈ    %  ‹UÄ‰UÐ‹EÄ)Â‹EÀ‰UÌ‰$èÎÕÿÿH;EÌ‚ò   ‹uÈ‰ö¼'    ‹EÈ‰÷)Ç‹EÀ‰$èÎÿÿH9Ç‡À   ‹EÐ9E~M9u~HEð‹UÌ‰D$Eñ‰D$Eò‰D$Eó‰D$‹EÀ‰|$‰T$‰$ènÌÿÿ€}ðÿ¶Eó¶Mò¶Uñtt& Fë¶À¶ÒÁà¶É   ÿ	Ð‹UÁá	Á‰L$‹B‹“”ÿÿÿ‰D$‹‰$è?Ìÿÿ‹EÐ‹U‰t$‰D$‹B‰D$‹B‹“”ÿÿÿ‰D$‹‰$è3ÊÿÿFé%ÿÿÿÿEÐ‹UÐéñþÿÿ‹UÀ‰$è'Îÿÿé[þÿÿ‹E‹UÁè4‹EÀÑþ‰$èÍÿÿ‰ÂÁêÂÑú‰uÈ)UÈé®þÿÿ‰Æ‹EÔ…Àt‰$èÔÔÿÿ‰4$è\Óÿÿt& U‰åƒìH‰]ôè×ÕÿÿÃfÝ  ‰uøuØ‰}ü‹}‰4$è0Éÿÿ‹E‰4$‰D$èaÌÿÿ‰4$è9Ôÿÿ‰‰4$èŸÌÿÿ‰G‹EØ…Àt‰$èmÔÿÿ‹]ô‹uø‹}ü‰ì]Ã‰Æ‹EØ…Àt‰$èOÔÿÿ‰4$è×Òÿÿ´&    ¼'    U‰åWVSƒì\èGÕÿÿÃÖÜ  ‹E‰$èÌÿÿ‹U‰EÄ‰$èkÈÿÿ‹}Ä…ÿ‰EÈ„¬  …À„¤  ‹p…ö„¡  ‹EÄ‹P…Ò„<  ‹EÄ‹x…ÿ„}  ‹UEà‰$‰T$èìÒÿÿ‹Eä‰EÐ‹Eàƒì9EÐ„é  ‹U‰ÇEð‰EÀ‰UÌé‰   ‹U‰T$‹E‰$è"Éÿÿ¹   ‰L$‹UÀ‰T$‹UÐ‰D$‹EÌ‰t$‰D$‹UÄ‹B‰D$‹B‰$èÈÿÿEÔ‰D$¸   ‰D$‹EÀ‰D$‹ƒ”ÿÿÿ‰t$‹ ‰$èŽÎÿÿ¿EÜEÌƒÇ9}Ð„«   ‹¾   ‰Eð‰t$‰$èeÌÿÿ…À‰Æ…Wÿÿÿ¾   ÇEìýÿ  ‰t$Ç$ýÿ  è?Ìÿÿ…Àt´‹U‰T$‹E‰$èYÈÿÿ¹   ‰L$‹UÀ‰T$‹UÐ‰D$‹EÌ‰D$1À‰D$‹UÄ‹B‰D$‹B‰$èNÇÿÿEÔ1ö‰D$¸   ‰D$Eì‰D$é.ÿÿÿ‹Eà…Àt‰$èQÒÿÿeô[^_]Ã‹UÄ‹»”ÿÿÿ‹B‰D$‹B‰D$‹‰$èÉÿÿ‹E‰$èÍÿÿ‹U‰T$‰Æ‹E‰$è©Çÿÿ‰t$‹U‰T$‹MÈ‰D$‹E‰D$‹UÄ‹B‰D$‹UÈ‹B‰D$‹UÄ‹B‰D$‹‰$èÊÿÿeô[^_]Ã‹MÐ…É„bÿÿÿ‹EÐ‰$è¨Ñÿÿeô[^_]Ã‰Â‹ƒœÿÿÿ‹ ‰D$‹ƒøÿÿÿ‹ ‰D$‹B‰D$‹ƒ”ÿÿÿ‹ ‰$è?Îÿÿ‹UÄ…À‰B……ýÿÿéÿÿÿ‰Æ‹Eà…Àt‰$èKÑÿÿ‰4$èÓÏÿÿv ¼'    U‰åW1ÿVSƒì<èEÒÿÿÃÔÙ  ‹E‰$èwÅÿÿ…À‰Æ„™   ‹H…É„˜   ‹UEä1ÿ‰$‰T$èÐÿÿ‹Eè‰EÐ‹Eäƒì9EÐtZ‰Æv ‹º   ‰Eð‰T$‰$è2Êÿÿ…À‰Ât1EØ‰D$¸   ‰D$Eð‰D$‹ƒ”ÿÿÿ‰T$‹ ‰$èÌÿÿ¿EàÇƒÆ9uÐu«‹Eä…Àt‰$ètÐÿÿeô‰ø[^_]Ã‹E‰$èOËÿÿ‰D$‹U‰T$‹F‰$èÉÍÿÿeô[^‰Ç‰ø_]Ã‰Æ‹Eä…Àt‰$è,Ðÿÿ‰4$è´Îÿÿ¶    ¿    U‰åVSƒì è(ÑÿÿÃ·Ø  ‹uÇF   Ç$    èÿÄÿÿ1Ò…Àu	eø‰Ð[^]Ã‹EUì‰$‰D$èþÎÿÿ¸   ƒì‰D$‹Eì‹ ‰$è%Éÿÿ‹‰Vº   ‹@‰F‹Eì…Àtµ‰$è–Ïÿÿeøº   [‰Ð^]Ã‰Æ‹Eì…Àt‰$èwÏÿÿ‰4$èÿÍÿÿ¶    U‰åƒì‰]ô‹EètÐÿÿÃØ  ‰uø‰}ü‹}‰$è Ïÿÿ‰|$‰Æ‰$èâÍÿÿ„Àu‰|$‰4$èÌÿÿ‹]ô‹uø‹}ü‰ì]Ã¶    ¿    U‰åƒì(‰]øèÐÿÿÃ¦×  ‰uü‹ƒhÿÿÿ‹0ƒî;³pÿÿÿu
‹]ø‹uü‰ì]Ã¸ÿÿÿÿ‰D$F‰$è0Íÿÿ…ÀÞE÷‰D$‰4$èýÂÿÿëÍ‰$è3Íÿÿv ¼'    U‰åWVSèªÏÿÿÃ9×  ì¬  ‹E‰$è6Íÿÿ‹“tÿÿÿ‰ÇE¬‰D$¸   ‰D$¸    ‰D$‹‹“”ÿÿÿ‰D$‹‰$èÉÿÿ…À„A  1À‹³¼ÿÿÿ‰D$‹E¬‹“”ÿÿÿ‰D$‹‰D$‹‰$èÎÈÿÿº
   1É‰T$(‹“”ÿÿÿ‰tÿÿÿ‰E¤1À‰…|ÿÿÿ…pÿÿÿ‰D$,‹E¬‰D$$¸   ‰D$ ‹E¸‰D$1À‰D$¸   ‰D$¸   ‰D$¸èÿÿÿ‰D$¸èÿÿÿ‰D$‹‰D$‹‰$èñÊÿÿ‰G1À‹“”ÿÿÿ‰D$1À‰D$‹G‰D$‹‰$èKÍÿÿ‰GèãÄÿÿ‹“”ÿÿÿÇ    ‰ÆÇ@   Ç@   ‰D$‹G‰D$‹‰$èrÉÿÿ‰4$¾   èÅÆÿÿ‹“”ÿÿÿ1À‰D$ƒiÈÿÿ‰D$‹‰$èåÉÿÿUä1É‰T$º    ‰L$‰t$¾L€" ‰T$‹“”ÿÿÿÇEä    ‰D$‰D$ÇEè   ‹G‰D$‹‰$èéÆÿÿ‹“”ÿÿÿ‰t$µþÿÿ‹G‰D$‹‰$èXÊÿÿ‹“tÿÿÿ‹‰4$‰D$ƒvÈÿÿ‰D$èŠËÿÿ‹“”ÿÿÿ1É‰L$‰t$‹‰$è@Éÿÿ‹“”ÿÿÿ‰D$‹‰$èÌÆÿÿ…À‰…€þÿÿ…ì  ‹“”ÿÿÿ¸   ¹   uÔ‰D$E‰t$‰L$‰D$‹‰$èþÉÿÿ‹“”ÿÿÿ‰t$uì‹G‰D$‹‰$èPÅÿÿEñ‰D$‹E‰4$‰D$èÚÁÿÿG‰t$‰$èËÊÿÿ‹uìƒî;³pÿÿÿ…‰  ¸`   µÿÿÿ‰D$1À‰4$‰D$è¬Éÿÿ¸!   ‹“”ÿÿÿ‰…ÿÿÿ‹…€þÿÿ‰… ÿÿÿ1À‰D$ƒ‹Èÿÿ‰D$‹‰$èEÈÿÿ1É1Ò‰•0ÿÿÿ‹“”ÿÿÿ‰,ÿÿÿ‰…$ÿÿÿ¸    ‰…(ÿÿÿ‹G‰t$‰…4ÿÿÿ1À‰…8ÿÿÿ1À‰…<ÿÿÿ1À‰D$1À‰D$‹…€þÿÿ‰D$‹‰$è1ÄÿÿÄ¬  [^_]Ã‹ƒ”ÿÿÿ1É¾
  ‹“tÿÿÿ‰tÿÿÿÇE    ‹‹ÇE˜€  ‹‘Œ   €Áà‰t$(1öÐ•pÿÿÿ‰T$,‹P(‰T$$º   ‰T$ º   ‹@$‰t$‰T$‰D$¸   ‰D$¸èÿÿÿ‰D$¸èÿÿÿ‰D$‹ƒ¼ÿÿÿ‹ ‰$‰D$èºÇÿÿ‰GéÄüÿÿº   ‰T$‹“”ÿÿÿ‰D$‹‰$èõÇÿÿéòýÿÿ¸ÿÿÿÿ‰D$F‰$èŒÈÿÿ…À[þÿÿEó‰D$‰4$èU¾ÿÿéGþÿÿ‹uì‰Çƒî;³pÿÿÿu‰<$èxÈÿÿ‰ÇëôëúºÿÿÿÿF‰T$‰$è>Èÿÿ…ÀÚEò‰D$‰4$è¾ÿÿëÉU‰åƒì8‰]ô‹EèÄÊÿÿÃSÒ  ‰uø‰}ü‰$è£¿ÿÿ…À‰Æt[‹@‰D$‹ƒ”ÿÿÿ‹ ‰$èÆÃÿÿ‹»pÿÿÿÇF    ÇF    ÇF    G‰EìEìÇF    ‰D$F‰$è<Èÿÿ‹uìƒî9÷u‹]ô‹uø‹}ü‰ì]ÃFºÿÿÿÿ‰T$‰$èÇÿÿ…ÀÛEó‰D$‰4$èN½ÿÿëÊ‹uì‰Eàƒî9÷u‹Eà‰$ètÇÿÿëöF¹ÿÿÿÿ‰L$‰$è>Çÿÿ…ÀÛEò‰D$‰4$è½ÿÿëÊëË´&    ¼'    U‰åWVSèºÉÿÿÃIÑ  ìœ   ‹E‰$è–¾ÿÿ…À‰Ç„  ‹“”ÿÿÿ¸   ‰D$¸   uÜ‰D$E‰t$‰D$‹‰$è<Æÿÿ‹“”ÿÿÿ‰t$uì‹G‰D$‹‰$èŽÁÿÿEñ‰D$‹E‰4$‰D$è¾ÿÿG‰t$‰$è	Çÿÿ‹uìƒî;³pÿÿÿ…‹   ‹G…À~y‹G…À~r¸`   µ|ÿÿÿ‰D$1À‰4$‰D$èÜÅÿÿ¸   ‹“”ÿÿÿ‰…|ÿÿÿ‹GÇE    ÇE”    ‰EŒ‹G‰E˜‹G‰t$1ö‰t$‰Eœ¸ €  ‰D$‹G‰D$‹‰$è§ÀÿÿÄœ   [^_]ÃºÿÿÿÿF‰T$‰$èÈÅÿÿ…ÀYÿÿÿEó‰D$‰4$è‘»ÿÿéEÿÿÿ‹uì‰Çƒî;³pÿÿÿu‰<$è´Åÿÿ‰Çëôëú¹ÿÿÿÿF‰L$‰$èzÅÿÿ…ÀÚEò‰D$‰4$èG»ÿÿëÉ¶    ¿    U‰åWVSèúÇÿÿÃ‰Ï  ƒì|Ç$(   }°u´è¿ÿÿº
   ‰E ‰|$‰t$‰T$‰D$‹E‰D$‹U‹B‰$èÕÀÿÿƒø‰Eœ~Áø‰Eœƒ}°ÿ„l  ‹ƒpÿÿÿƒÀ‰E¬‹E°ƒø„  }+1ÿ‹M ‰$èÄÿÿ‹u¬ƒî9³pÿÿÿ…ª  eô‰ø[^_]Ã‰öƒøÐ‹E´=ÿ  „e  =¾ÿ  „’  =‘ÿ  „‡  =¿ÿ  ‰ö„/  =’ÿ  t& „  =Àÿ  t& „5  =“ÿ  t& „%  =Áÿ  t& „X  =”ÿ  t& „H  =Âÿ  t& „  =Ãÿ  t& „  =Äÿ  t& „  =Åÿ  t& „'  =Æÿ  t& „  =Çÿ  t& „@  =Èÿ  t& „  =Éÿ  t& „   =aÿ  t& „ý  =ÿ  t& „z  =ÿ  t& „  =kÿ  t& „,  =ÿ  t& „	  =	ÿ  t& „š  =‰ÿ  t& „Š  = þ  t& „z  =ÿ  t& „¶  =ÿ  t& „¦  =åÿ  t& „	  =æÿ  t& „á  =ÿÿ  t& „¾  =Ÿÿ  t& „®  =Qÿ  t& „‹  =–ÿ  t& „{  =Sÿ  t& „X  =˜ÿ  t& „H  =Rÿ  t& „%  =—ÿ  t& „  =Tÿ  t& „ò  =™ÿ  t& „â  =Pÿ  t& „¿  =•ÿ  t& „¯  =Wÿ  t& t=œÿ  u8³8Ëÿÿ‰4$è¾ÿÿë´&    ³0Éÿÿ‰4$èj¾ÿÿ‰D$E¬‰t$‰$è×»ÿÿ‹E¬ƒè‹0…ö…   ƒ}°„êüÿÿt& ‹uœ…öŽÚüÿÿ‹Uœ‹M ‰e˜•"   1Òƒàð)Ät$'ƒæð´&    ‹‘‰–B9Uœuô‹EœUÈÇ†    EÞ‰D$ƒ„Ëÿÿ‰D$‰U”‰$èã¸ÿÿEß‰D$}ÌƒXËÿÿ‰D$‰<$èÇ¸ÿÿ‹M”‹ƒhÿÿÿ‰|$‰L$‰$èžºÿÿ‹}Ìƒï9»pÿÿÿ…u  ‹}Èƒï9»pÿÿÿ…“  Eà}Ð‰D$‰t$‰<$èt¸ÿÿEá‰D$uÔƒlËÿÿ‰D$‰4$èX¸ÿÿ‹“hÿÿÿ‰|$‰t$‰$è2ºÿÿ‹uÔƒî9³pÿÿÿ…i  ‹uÐƒî9³pÿÿÿ…Ç  ‹e˜¿   é°ûÿÿ‹EœÁà‰D$‹M ‰$èü½ÿÿ‰E ‰|$‰t$‹Eœ‰D$‹U ‰T$‹M‰L$‹U‹B‰$è¼ÿÿƒø‰EœŽEûÿÿÁø‰Eœé:ûÿÿEÛ‰D$}¸ƒHËÿÿ‰D$‰<$è›·ÿÿEÜ‰D$u¼ƒXËÿÿ‰D$‰4$è·ÿÿ‹‹hÿÿÿ‰|$‰t$‰$èY¹ÿÿ‹u¼ƒî9³pÿÿÿ…  ‹u¸ƒî9³pÿÿÿ…À  E¬}À‰D$‰<$èƒºÿÿEÝ‰D$uÄƒlËÿÿ‰D$‰4$è·ÿÿ‹ƒhÿÿÿ‰|$‰t$‰$èñ¸ÿÿ‹uÄƒî9³pÿÿÿ…'  ‹uÀƒî9³pÿÿÿ…Þ  ¿   érúÿÿ³<Éÿÿ‰4$èµ»ÿÿéFýÿÿ³Éÿÿ‰4$è¢»ÿÿé3ýÿÿ³HÉÿÿ‰4$è»ÿÿé ýÿÿF¹ÿÿÿÿ‰L$‰$èö¾ÿÿ…À:úÿÿEò‰D$‰4$è¿´ÿÿé&úÿÿ³TÉÿÿ‰4$èL»ÿÿéÝüÿÿ¸ÿÿÿÿ‰D$F‰$è³¾ÿÿ…ÀþÿÿEð‰D$‰4$è|´ÿÿé	þÿÿºÿÿÿÿG‰T$‰$èƒ¾ÿÿ…ÀoýÿÿEë‰D$‰<$èL´ÿÿé[ýÿÿ¸ÿÿÿÿ‰D$G‰$èS¾ÿÿ…ÀQýÿÿEì‰D$‰<$è´ÿÿé=ýÿÿ¸ÿÿÿÿ‰D$F‰$è#¾ÿÿ…À{ýÿÿEï‰D$‰4$èì³ÿÿégýÿÿ³`Éÿÿ‰4$èyºÿÿé
üÿÿ³lÉÿÿ‰4$èfºÿÿé÷ûÿÿ³xÉÿÿ‰4$èSºÿÿéäûÿÿ³Éÿÿ‰4$è@ºÿÿéÑûÿÿ³„Éÿÿ‰4$è-ºÿÿé¾ûÿÿ³dÊÿÿ‰4$èºÿÿé«ûÿÿ³¬Éÿÿ‰4$èºÿÿé˜ûÿÿ³œÉÿÿ‰4$èô¹ÿÿé…ûÿÿ¸ÿÿÿÿ‰D$F‰$è[½ÿÿ…ÀþÿÿEè¿   ‰D$‰4$è³ÿÿéiøÿÿ‰ö¸ÿÿÿÿ‰D$F‰$è$½ÿÿ…À½ýÿÿEç‰D$‰4$èí²ÿÿé©ýÿÿ³äÉÿÿ‰4$èz¹ÿÿéûÿÿ¸ÿÿÿÿ‰D$F‰$èá¼ÿÿ…À$ýÿÿEä‰D$‰4$èª²ÿÿéýÿÿºÿÿÿÿF‰T$‰$è±¼ÿÿ…ÀâüÿÿEã‰D$‰4$èz²ÿÿéÎüÿÿ³ÌÉÿÿ‰4$è¹ÿÿé˜úÿÿ³¼Éÿÿ‰4$èô¸ÿÿé…úÿÿ³Êÿÿ‰4$èá¸ÿÿérúÿÿ³tÊÿÿ‰4$èÎ¸ÿÿé_úÿÿ³<Êÿÿ‰4$è»¸ÿÿéLúÿÿ³$Êÿÿ‰4$è¨¸ÿÿé9úÿÿ‰Æ‹e˜‹}¬ƒï9»pÿÿÿuA‰4$è(¼ÿÿ‰Æ‹}Ðƒï9»pÿÿÿt×¸ÿÿÿÿ‰D$G‰$èä»ÿÿ…À¿Eñ‰D$‰<$è±±ÿÿë®Gºÿÿÿÿ‰T$‰$è»»ÿÿ…À§Eó‰D$‰<$èˆ±ÿÿë–ë‰$‰ö¼'    è³»ÿÿ‰Æ‹}¸ƒï9»pÿÿÿ„aÿÿÿ¸ÿÿÿÿ‰D$G‰$èk»ÿÿ…ÀEÿÿÿEå‰D$‰<$è4±ÿÿé1ÿÿÿ‰Æ‹}Àƒï9»pÿÿÿ„ÿÿÿ¸ÿÿÿÿ‰D$G‰$è'»ÿÿ…ÀÿÿÿEé‰D$‰<$èð°ÿÿéíþÿÿ‰Æéæþÿÿë÷‰Æ‹}Èƒï9»pÿÿÿ„Íþÿÿ¸ÿÿÿÿ‰D$G‰$èÚºÿÿ…À±þÿÿEí‰D$‰<$è£°ÿÿéþÿÿ‹}Ì‰Æƒï9»pÿÿÿt®¹ÿÿÿÿG‰L$‰$èšºÿÿ…À–Eê‰D$‰<$èg°ÿÿë…é]þÿÿ´&    éqÿÿÿ³$Ëÿÿ‰4$èå¶ÿÿévøÿÿ³Íÿÿ‰4$èÒ¶ÿÿécøÿÿ³LÍÿÿ‰4$è¿¶ÿÿéPøÿÿ³Ëÿÿ‰4$è¬¶ÿÿé=øÿÿ³øÊÿÿ‰4$è™¶ÿÿé*øÿÿ³ÜÊÿÿ‰4$è†¶ÿÿéøÿÿ³´Êÿÿ‰4$ès¶ÿÿéøÿÿ³Êÿÿ‰4$è`¶ÿÿéñ÷ÿÿ‹}¼‰Æƒï9»pÿÿÿ„6þÿÿ¹ÿÿÿÿG‰L$‰$è³¹ÿÿ…ÀþÿÿEâ‰D$‰<$è|¯ÿÿéþÿÿé‡þÿÿv ¼'    éðýÿÿ‹}Ä‰Æƒï9»pÿÿÿ„"þÿÿ¸ÿÿÿÿ‰D$G‰$è[¹ÿÿ…ÀþÿÿEæ‰D$‰<$è$¯ÿÿéòýÿÿé/þÿÿ‰öé(þÿÿt& ¼'    éÔýÿÿ‹}Ô‰Æƒï9»pÿÿÿ„	ýÿÿ¸ÿÿÿÿ‰D$G‰$èû¸ÿÿ…ÀíüÿÿEî‰D$‰<$èÄ®ÿÿéÙüÿÿé·üÿÿ‰öéËüÿÿt& ¼'    é üÿÿv ¼'    U‰åWVSèZ»ÿÿÃéÂ  ì\  ‹E‹“¤ÿÿÿ‰ƒ£Èÿÿ‰$èH°ÿÿÇ$   ‰D$èX±ÿÿÇ$    èì¹ÿÿ‹‹”ÿÿÿ…À‰„Î)  ‹»”ÿÿÿ1ÉƒÁÈÿÿ‰L$‰D$‹‰$è¬¶ÿÿ‹“ìÿÿÿ‰1ÒƒÎÈÿÿ‰T$‰D$‹‰$èŠ¶ÿÿ‹‹„ÿÿÿ‰ƒÀÈÿÿ‰$èD²ÿÿ‹7‹»tÿÿÿ‹–„   ‹ŽŒ   ’Áà‹L‹ƒ¼ÿÿÿ‰‰‰T$‰4$è0¹ÿÿ‹“Œÿÿÿ‰1À‹“”ÿÿÿ‰D$1À‰D$1À‰D$‹‰$è¯ÿÿ‹³Ðÿÿÿ…À‰„9)  1À‰D$…øýÿÿ‰D$ƒúÈÿÿ‰D$‹‰$è²®ÿÿ‹øýÿÿ‹» ÿÿÿfƒ9 Ç    t;1öë·F9ð~/‹A‹°‰Ð%  9Âuç‹F‰$‰D$èî¯ÿÿ‹øýÿÿ‰·9ðÑ‰$èG²ÿÿ‹»”ÿÿÿ‹“tÿÿÿ‹‹‹»œÿÿÿ‹‘Œ   €Áà‹D0‹“ˆÿÿÿ‰‹A‹‹¤ÿÿÿ‰Ç$    ÿ¶    ¼'    ‹ƒ´ÿÿÿ€8 …J  ‹³xÿÿÿ1À¹    ‰÷üó«‹“ˆÿÿÿ‹‰ÂƒàÁê«–‹ƒ|ÿÿÿ1É1ÿÇ@'  Ç     ‰L$‹‹ˆÿÿÿ‰|$‰D$‰t$‹@‰$è»®ÿÿ‹»”ÿÿÿ‹‰$è[­ÿÿ…À„K  …<ýÿÿ‰D$‰…Èüÿÿ‹‰$èYµÿÿ‹…<ýÿÿƒø„7  ƒø„6  ƒø"„0  ƒø„:  ƒøt& „@
  ƒø„Q  ƒø„[  ƒø	t& „{  ƒø
„‚  ƒø!„œ  ƒøt& …êþÿÿ‹…Lýÿÿ‰$èô°ÿÿ…À‰Â„Òþÿÿ‹…`ýÿÿ‰$‰D$‹…\ýÿÿ‰D$èÞ±ÿÿ‹ƒ´ÿÿÿ€8 „¶þÿÿ‹“Äÿÿÿ‹B‹2)ðÁø‰…Øüÿÿ„“  1ÿëG‰4$èÖ¶ÿÿ9½Øüÿÿ„œ  ‹‹Äÿÿÿ‹‹A)ÐÁø9ø†š%  ‹4º‹N…ÉuÉ‹F‹“”ÿÿÿ‰D$‹‰$è±°ÿÿë°´&    ‹»¤ÿÿÿÇ$    ÿéþÿÿ‹…Lýÿÿ‰$èÅ±ÿÿ…À‰…ìüÿÿ„ã  ‹“hÿÿÿ½üýÿÿ‰$èÓ¯ÿÿ‹‹hÿÿÿ‰$è•´ÿÿ…#ÿÿÿ‰D$ƒ˜Ëÿÿ‰D$‰<$è¬ÿÿ…$ÿÿÿ‰D$µ þÿÿƒ¸Ëÿÿ‰D$‰4$è÷«ÿÿ‰|$‹»hÿÿÿ‰t$‰<$èÑ­ÿÿ‹µ þÿÿƒî;³pÿÿÿ…  ‹µüýÿÿƒî9³pÿÿÿ…h  ‹…ìüÿÿµþÿÿ‹8…%ÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$è«ÿÿ‹“hÿÿÿ‰|$‰t$‰$è÷©ÿÿ‹µþÿÿƒî9³pÿÿÿ…à  …&ÿÿÿ‹½Pýÿÿ‰D$µþÿÿƒØËÿÿ‰D$‰4$è:«ÿÿ‹‹hÿÿÿ‰|$‰t$‰$è¤©ÿÿ‹µþÿÿƒî9³pÿÿÿ…Œ  …'ÿÿÿ‹½Týÿÿ‰D$µþÿÿƒàËÿÿ‰D$‰4$èçªÿÿ‰|$‹»hÿÿÿ‰t$‰<$èQ©ÿÿ‹µþÿÿƒî9³pÿÿÿ…  …(ÿÿÿ‹½Xýÿÿ‰D$µþÿÿƒèËÿÿ‰D$‰4$è”ªÿÿ‹ƒhÿÿÿ‰|$‰t$‰$èþ¨ÿÿ‹µþÿÿƒî9³pÿÿÿ…€  …)ÿÿÿ‹½\ýÿÿ‰D$µþÿÿƒ Ìÿÿ‰D$‰4$èAªÿÿ‹“hÿÿÿ‰|$‰t$‰$è«¨ÿÿ‹µþÿÿƒî9³pÿÿÿ…ú  ‹‹hÿÿÿ‰$èX±ÿÿ‹»¤ÿÿÿ…þÿÿ‹“hÿÿÿ‹7‰T$‰$è©ÿÿ‹½þÿÿƒì‰<$ÿÖwô9³pÿÿÿ…ã  ‹…\ýÿÿ‹•Týÿÿ‹Pýÿÿ‰D$‹…Xýÿÿ‰T$$‰T$‹•ìüÿÿ‰L$ ‰L$‹‹”ÿÿÿ‰D$‹B‰D$‹B‰D$‹B‰D$‹‰$èàªÿÿéûÿÿ‹…Lýÿÿ‰$è½®ÿÿ…À‰…ðüÿÿ„÷úÿÿ‹ƒhÿÿÿ½þÿÿ‰$èË¬ÿÿ‹“hÿÿÿ‰$è±ÿÿ…*ÿÿÿ‰D$ƒÌÿÿ‰D$‰<$è©ÿÿ…+ÿÿÿ‰D$µ þÿÿƒ¸Ëÿÿ‰D$‰4$èï¨ÿÿ‹‹hÿÿÿ‰|$‰t$‰$èÉªÿÿ‹µ þÿÿƒî;³pÿÿÿ…?  ‹µþÿÿƒî9³pÿÿÿ…÷  ‹…ðüÿÿµ$þÿÿ‹8…,ÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$è…¨ÿÿ‹“hÿÿÿ‰|$‰t$‰$èï¦ÿÿ‹µ$þÿÿƒî9³pÿÿÿ…m  ‹Èüÿÿ‹½ðüÿÿ‰L$‰<$è²®ÿÿ„À„s  ‹…lýÿÿµ(þÿÿ‰4$ƒà¶ø…-ÿÿÿ‰D$ƒ@Ìÿÿ‰D$è¨ÿÿ‹ƒhÿÿÿ‰|$‰t$‰$è¬ÿÿ‹µ(þÿÿƒî9³pÿÿÿ…  ‹µlýÿÿ….ÿÿÿ‰D$½,þÿÿƒXÌÿÿ‰D$Áîƒæ‰<$è³§ÿÿ‹“hÿÿÿ‰t$‰|$‰$è­«ÿÿ‹µ,þÿÿƒî9³pÿÿÿ…ó  …/ÿÿÿ‰D$µ0þÿÿƒlÌÿÿ‰D$‰4$èf§ÿÿ‹‹hÿÿÿ1À‰D$‰t$‰$è^«ÿÿ‹µ0þÿÿƒî9³pÿÿÿ…±  …0ÿÿÿ‰D$µ4þÿÿƒ|Ìÿÿ‰D$‰4$è§ÿÿ‹»hÿÿÿ1À‰D$‰t$‰<$è«ÿÿ‹µ4þÿÿƒî9³pÿÿÿ…(  ‹ƒhÿÿÿ‰$è,®ÿÿ‹“¤ÿÿÿ…8þÿÿ‹‹hÿÿÿ‹2‰L$‰$èì¥ÿÿ‹½8þÿÿƒì‰<$ÿÖwô9³pÿÿÿ„GøÿÿºÿÿÿÿGü‰T$‰$èû®ÿÿ…À+øÿÿE‰D$‰4$èÄ¤ÿÿéøÿÿ´&    ‹½Èüÿÿ‰<$è:«ÿÿéý÷ÿÿ‹…Lýÿÿ‰$è§«ÿÿ…À‰…ôüÿÿ„á÷ÿÿ‹ƒhÿÿÿ½<þÿÿ‰$èµ©ÿÿ‹“hÿÿÿ‰$èw®ÿÿ…1ÿÿÿ‰D$ƒœÌÿÿ‰D$‰<$èû¥ÿÿ…2ÿÿÿ‰D$µ@þÿÿƒ¸Ëÿÿ‰D$‰4$èÙ¥ÿÿ‹‹hÿÿÿ‰|$‰t$‰$è³§ÿÿ‹µ@þÿÿƒî;³pÿÿÿ…Ü  ‹µ<þÿÿƒî9³pÿÿÿ…—  …3ÿÿÿ‰D$½Dþÿÿƒ´Ìÿÿ‰D$‰<$èw¥ÿÿ…4ÿÿÿ‰D$µHþÿÿƒÈÌÿÿ‰D$‰4$èU¥ÿÿ‰|$‹»hÿÿÿ‰t$‰<$è/§ÿÿ‹µHþÿÿƒî9³pÿÿÿ…ø  ‹µDþÿÿƒî9³pÿÿÿ…³  ‹…ôüÿÿµLþÿÿ‹8…5ÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$èë¤ÿÿ‹“hÿÿÿ‰|$‰t$‰$èU£ÿÿ‹µLþÿÿƒî9³pÿÿÿ….  …6ÿÿÿ‹½\ýÿÿ‰D$µPþÿÿƒØËÿÿ‰D$‰4$è˜¤ÿÿ‹‹hÿÿÿ‰|$‰t$‰$è£ÿÿ‹µPþÿÿƒî9³pÿÿÿ…«  …7ÿÿÿ‹½`ýÿÿ‰D$µTþÿÿƒàËÿÿ‰D$‰4$èE¤ÿÿ‰|$‹»hÿÿÿ‰t$‰<$è¯¢ÿÿ‹µTþÿÿƒî9³pÿÿÿ…(  ‹…ÈüÿÿµXþÿÿ‰$è&¢ÿÿ‰4$‰Ç…8ÿÿÿ‰D$ƒäÌÿÿ‰D$èè£ÿÿ‹“hÿÿÿ‰|$‰t$‰$èR¢ÿÿ‹µXþÿÿƒî9³pÿÿÿ…›  ‹‹hÿÿÿ‰$èÿªÿÿ‹»¤ÿÿÿ…\þÿÿ‹“hÿÿÿ‹7‰T$‰$è¿¢ÿÿ‹½\þÿÿƒì‰<$ÿÖwô9³pÿÿÿ„õÿÿºÿÿÿÿGü‰T$‰$èÎ«ÿÿ…ÀþôÿÿE“‰D$‰4$è—¡ÿÿéêôÿÿ‹…Lýÿÿ‰$è”¨ÿÿ…À‰…øüÿÿ„Îôÿÿ‹ƒhÿÿÿ½`þÿÿ‰$è¢¦ÿÿ‹“hÿÿÿ‰$èd«ÿÿ…9ÿÿÿ‰D$ƒœÌÿÿ‰D$‰<$èè¢ÿÿ…:ÿÿÿ‰D$µdþÿÿƒ¸Ëÿÿ‰D$‰4$èÆ¢ÿÿ‹‹hÿÿÿ‰|$‰t$‰$è ¤ÿÿ‹µdþÿÿƒî;³pÿÿÿ…©  ‹µ`þÿÿƒî9³pÿÿÿ…N  …;ÿÿÿ‰D$½hþÿÿƒ Íÿÿ‰D$‰<$èd¢ÿÿ…<ÿÿÿ‰D$µlþÿÿƒÈÌÿÿ‰D$‰4$èB¢ÿÿ‰|$‹»hÿÿÿ‰t$‰<$è¤ÿÿ‹µlþÿÿƒî9³pÿÿÿ…¯  ‹µhþÿÿƒî9³pÿÿÿ…j  ‹…øüÿÿµpþÿÿ‹8…=ÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$èØ¡ÿÿ‹“hÿÿÿ‰|$‰t$‰$èB ÿÿ‹µpþÿÿƒî9³pÿÿÿ…å  …>ÿÿÿ‹½\ýÿÿ‰D$µtþÿÿƒØËÿÿ‰D$‰4$è…¡ÿÿ‹‹hÿÿÿ‰|$‰t$‰$èïŸÿÿ‹µtþÿÿƒî9³pÿÿÿ…b  …?ÿÿÿ‹½`ýÿÿ‰D$µxþÿÿƒàËÿÿ‰D$‰4$è2¡ÿÿ‰|$‹»hÿÿÿ‰t$‰<$èœŸÿÿ‹µxþÿÿƒî9³pÿÿÿ…ß  ‹…Èüÿÿµ|þÿÿ‰$èŸÿÿ‰4$‰Ç…@ÿÿÿ‰D$ƒäÌÿÿ‰D$èÕ ÿÿ‹“hÿÿÿ‰|$‰t$‰$è?Ÿÿÿ‹µ|þÿÿƒî9³pÿÿÿ…ˆ  ‹‹hÿÿÿ‰$èì§ÿÿ‹»¤ÿÿÿ…€þÿÿ‹“hÿÿÿ‹7‰T$‰$è¬Ÿÿÿ‹½€þÿÿƒì‰<$ÿÖwô9³pÿÿÿ„òÿÿºÿÿÿÿGü‰T$‰$è»¨ÿÿ…ÀëñÿÿE¥‰D$‰4$è„žÿÿé×ñÿÿ´&    ‹…Lýÿÿ‰$èz¥ÿÿ…À‰…üüÿÿ„ò	  ‹ƒhÿÿÿ½„þÿÿ‰$èˆ£ÿÿ‹“hÿÿÿ‰$èJ¨ÿÿ…Aÿÿÿ‰D$ƒœÌÿÿ‰D$‰<$èÎŸÿÿ…Bÿÿÿ‰D$µˆþÿÿƒ¸Ëÿÿ‰D$‰4$è¬Ÿÿÿ‹‹hÿÿÿ‰|$‰t$‰$è†¡ÿÿ‹µˆþÿÿƒî;³pÿÿÿ…/  ‹µ„þÿÿƒî9³pÿÿÿ…ê  …Cÿÿÿ‰D$½Œþÿÿƒ0Íÿÿ‰D$‰<$èJŸÿÿ…Dÿÿÿ‰D$µþÿÿƒÈÌÿÿ‰D$‰4$è(Ÿÿÿ‰|$‹»hÿÿÿ‰t$‰<$è¡ÿÿ‹µþÿÿƒî9³pÿÿÿ…K  ‹µŒþÿÿƒî9³pÿÿÿ…  ‹…üüÿÿµ”þÿÿ‹8…Eÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$è¾žÿÿ‹“hÿÿÿ‰|$‰t$‰$è(ÿÿ‹µ”þÿÿƒî9³pÿÿÿ…  …Fÿÿÿ‹½\ýÿÿ‰D$µ˜þÿÿƒØËÿÿ‰D$‰4$èkžÿÿ‹‹hÿÿÿ‰|$‰t$‰$èÕœÿÿ‹µ˜þÿÿƒî9³pÿÿÿ…Î  …Gÿÿÿ‹½`ýÿÿ‰D$µœþÿÿƒàËÿÿ‰D$‰4$èžÿÿ‰|$‹»hÿÿÿ‰t$‰<$è‚œÿÿ‹µœþÿÿƒî9³pÿÿÿ…K  ‹…Èüÿÿµ þÿÿ‰$èù›ÿÿ‰4$‰Ç…Hÿÿÿ‰D$ƒäÌÿÿ‰D$è»ÿÿ‹“hÿÿÿ‰|$‰t$‰$è%œÿÿ‹µ þÿÿƒî9³pÿÿÿ…N  ‹‹hÿÿÿ‰$èÒ¤ÿÿ‹»¤ÿÿÿ…¤þÿÿ‹“hÿÿÿ‹7‰T$‰$è’œÿÿ‹½¤þÿÿƒì‰<$ÿÖwô9³pÿÿÿ„íîÿÿ¸ÿÿÿÿ‰D$Gü‰$è¡¥ÿÿ…ÀÑîÿÿE·‰D$‰4$èj›ÿÿé½îÿÿ1À‹»”ÿÿÿ‰D$¸   ‰D$‹…Lýÿÿ‰D$‹‰$èìšÿÿéîÿÿ‹…Lýÿÿ‰$è9¢ÿÿ…À‰… ýÿÿ„sîÿÿ‹ƒhÿÿÿ½Øþÿÿ‰$èG ÿÿ‹“hÿÿÿ‰$è	¥ÿÿ…Sÿÿÿ‰D$ƒÈÍÿÿ‰D$‰<$èœÿÿ…Tÿÿÿ‰D$µÜþÿÿƒ¸Ëÿÿ‰D$‰4$èkœÿÿ‹‹hÿÿÿ‰|$‰t$‰$èEžÿÿ‹µÜþÿÿƒî;³pÿÿÿ…î  ‹µØþÿÿƒî9³pÿÿÿ…f  …Uÿÿÿ‰D$½àþÿÿƒìÍÿÿ‰D$‰<$è	œÿÿ…Vÿÿÿ‰D$µäþÿÿƒÈÌÿÿ‰D$‰4$èç›ÿÿ‰|$‹»hÿÿÿ‰t$‰<$èÁÿÿ‹µäþÿÿƒî9³pÿÿÿ…Ç  ‹µàþÿÿƒî9³pÿÿÿ…‚  ‹… ýÿÿµèþÿÿ‹8…Wÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$è}›ÿÿ‹“hÿÿÿ‰|$‰t$‰$èç™ÿÿ‹µèþÿÿƒî9³pÿÿÿ…ý  ‹‹hÿÿÿ‰$è”¢ÿÿ‹»¤ÿÿÿ…ìþÿÿ‹“hÿÿÿ‹7‰T$‰$èTšÿÿ‹½ìþÿÿƒì‰<$ÿÖwô9³pÿÿÿ„¯ìÿÿ¸ÿÿÿÿ‰D$Gü‰$èc£ÿÿ…À“ìÿÿEÛ‰D$‰4$è,™ÿÿéìÿÿ‹…Lýÿÿ‰$è) ÿÿ…À‰…ýÿÿ„cìÿÿ‹ƒhÿÿÿ½ðþÿÿ‰$è7žÿÿ‹“hÿÿÿ‰$èù¢ÿÿ…Xÿÿÿ‰D$ƒÈÍÿÿ‰D$‰<$è}šÿÿ…Yÿÿÿ‰D$µôþÿÿƒ¸Ëÿÿ‰D$‰4$è[šÿÿ‹‹hÿÿÿ‰|$‰t$‰$è5œÿÿ‹µôþÿÿƒî;³pÿÿÿ…è  ‹µðþÿÿƒî9³pÿÿÿ…£  …Zÿÿÿ‰D$½øþÿÿƒäÍÿÿ‰D$‰<$èù™ÿÿ…[ÿÿÿ‰D$µüþÿÿƒÈÌÿÿ‰D$‰4$è×™ÿÿ‰|$‹»hÿÿÿ‰t$‰<$è±›ÿÿ‹µüþÿÿƒî9³pÿÿÿ…  ‹µøþÿÿƒî9³pÿÿÿ…¿  ‹…ýÿÿµ ÿÿÿ‹8…\ÿÿÿ‰D$ƒÌËÿÿ‰D$‰4$èm™ÿÿ‹“hÿÿÿ‰|$‰t$‰$è×—ÿÿ‹µ ÿÿÿƒî9³pÿÿÿ…:  ‹‹hÿÿÿ‰$è„ ÿÿ‹»¤ÿÿÿ…ÿÿÿ‹“hÿÿÿ‹7‰T$‰$èD˜ÿÿ‹½ÿÿÿƒì‰<$ÿÖwô9³pÿÿÿ„Ÿêÿÿ¸ÿÿÿÿ‰D$Gü‰$èS¡ÿÿ…ÀƒêÿÿEç‰D$‰4$è—ÿÿéoêÿÿ‹‹hÿÿÿ‰$èIœÿÿé\êÿÿ‹…Lýÿÿ‰$èžÿÿ…À‰Ç„Dêÿÿ‹“ìÿÿÿ‹…Pýÿÿ;…0êÿÿ‹‹„ÿÿÿ‹…Xýÿÿ;…êÿÿ‹ƒhÿÿÿ‰$èö›ÿÿ‹“hÿÿÿ‰$è¸ ÿÿ…]ÿÿÿÿÿÿ‰D$ƒÈÍÿÿ‰D$‰Üüÿÿ‰$è0˜ÿÿ…^ÿÿÿ‰D$µÿÿÿƒ¸Ëÿÿ‰D$‰4$è˜ÿÿ‹…Üüÿÿ‹“hÿÿÿ‰t$‰D$‰$èâ™ÿÿ‹µÿÿÿƒî;³pÿÿÿ…¦'  ‹µÿÿÿƒî9³pÿÿÿ…Á'  …_ÿÿÿÿÿÿ‰D$ƒÎÿÿ‰D$‰Ìüÿÿ‰$è —ÿÿ…`ÿÿÿ‰D$µÿÿÿƒÈÌÿÿ‰D$‰4$è~—ÿÿ‹…Ìüÿÿ‹“hÿÿÿ‰t$‰D$‰$èR™ÿÿ‹µÿÿÿƒî9³pÿÿÿ…A(  ‹µÿÿÿƒî9³pÿÿÿ…h'  …aÿÿÿ‹7‰D$½ÿÿÿƒÌËÿÿ‰D$‰<$è—ÿÿ‹‹hÿÿÿ‰t$‰|$‰$è~•ÿÿ‹µÿÿÿƒî9³pÿÿÿ…b+  ‹»hÿÿÿ‰<$è+žÿÿ‹ƒ¤ÿÿÿ‹0…ÿÿÿ‰|$‰$èñ•ÿÿ‹½ÿÿÿƒì‰<$ÿÖwô9³pÿÿÿ„Lèÿÿ¸ÿÿÿÿ‰D$Gü‰$è Ÿÿÿ…À0èÿÿEó‰D$‰4$èÉ”ÿÿéèÿÿ‹…Lýÿÿ‰$è&šÿÿ…À‰Æ„èÿÿ…œýÿÿ‹»”ÿÿÿ‰D$‹F‰D$‹‰$è;—ÿÿ‹…¨ýÿÿ‰4$‰D$‹…¤ýÿÿ‰D$èïšÿÿéÂçÿÿ‹…Lýÿÿ‰$èÌ™ÿÿ…À‰Ç„ªçÿÿ‹…pýÿÿƒø„  ƒø…’çÿÿ‹ƒhÿÿÿ‰$èl™ÿÿ‹“hÿÿÿ‰$è.žÿÿ…NÿÿÿÀþÿÿ‰D$ƒXÍÿÿ‰D$‰àüÿÿ‰$è¦•ÿÿ…Oÿÿÿ‰D$µÄþÿÿƒ¸Ëÿÿ‰D$‰4$è„•ÿÿ‹…àüÿÿ‹“hÿÿÿ‰t$‰D$‰$èX—ÿÿ‹µÄþÿÿƒî;³pÿÿÿ…)  ‹µÀþÿÿƒî9³pÿÿÿ…›(  …PÿÿÿÈþÿÿ‰D$ƒ˜Íÿÿ‰D$‰Ðüÿÿ‰$è•ÿÿ…Qÿÿÿ‰D$µÌþÿÿƒÈÌÿÿ‰D$‰4$èô”ÿÿ‹…Ðüÿÿ‹“hÿÿÿ‰t$‰D$‰$èÈ–ÿÿ‹µÌþÿÿƒî9³pÿÿÿ…P(  ‹µÈþÿÿƒî9³pÿÿÿ…›(  …Rÿÿÿ‹7‰D$½ÐþÿÿƒÌËÿÿ‰D$‰<$èŠ”ÿÿ‹‹hÿÿÿ‰t$‰|$‰$èô’ÿÿ‹µÐþÿÿƒî9³pÿÿÿ…“  ‹»hÿÿÿ‰<$è¡›ÿÿ‹ƒ¤ÿÿÿ‹0…Ôþÿÿ‰|$‰$èg“ÿÿ‹½Ôþÿÿƒì‰<$ÿÖwô9³pÿÿÿ„ÂåÿÿºÿÿÿÿGü‰T$‰$èvœÿÿ…À¦åÿÿEÏ‰D$‰4$è?’ÿÿé’åÿÿ‰ö‹ƒhÿÿÿ‰$èj—ÿÿ‹“hÿÿÿ‰$è,œÿÿ…Iÿÿÿ¨þÿÿ‰D$ƒXÍÿÿ‰D$‰äüÿÿ‰$è¤“ÿÿ…Jÿÿÿ‰D$µ¬þÿÿƒ¸Ëÿÿ‰D$‰4$è‚“ÿÿ‹…äüÿÿ‹“hÿÿÿ‰t$‰D$‰$èV•ÿÿ‹µ¬þÿÿƒî;³pÿÿÿ…¾  ‹µ¨þÿÿƒî9³pÿÿÿ…Ù  …Kÿÿÿ°þÿÿ‰D$ƒtÍÿÿ‰D$‰Ôüÿÿ‰$è“ÿÿ…Lÿÿÿ‰D$µ´þÿÿƒÈÌÿÿ‰D$‰4$èò’ÿÿ‹…Ôüÿÿ‹“hÿÿÿ‰t$‰D$‰$èÆ”ÿÿ‹µ´þÿÿƒî9³pÿÿÿ…P   ‹µ°þÿÿƒî9³pÿÿÿ…   …Mÿÿÿ‹7‰D$½¸þÿÿƒÌËÿÿ‰D$‰<$èˆ’ÿÿ‹‹hÿÿÿ‰t$‰|$‰$èòÿÿ‹µ¸þÿÿƒî9³pÿÿÿ…‹  ‹»hÿÿÿ‰<$èŸ™ÿÿ‹ƒ¤ÿÿÿ‹0…¼þÿÿ‰|$‰$èe‘ÿÿ‹½¼þÿÿƒì‰<$ÿÖwô9³pÿÿÿ„Àãÿÿ¸ÿÿÿÿ‰D$Gü‰$ètšÿÿ…À¤ãÿÿEÃ‰D$‰4$è=ÿÿéãÿÿ¹ÿÿÿÿGü‰L$‰$èDšÿÿ…Àèÿÿ…qÿÿÿ‰D$‰4$è
ÿÿéêçÿÿ¸ÿÿÿÿ‰D$F‰$èšÿÿ…ÀÍåÿÿ…cÿÿÿ‰D$‰4$è×ÿÿé¶åÿÿ¸ÿÿÿÿ‰D$F‰$èÞ™ÿÿ…Àæÿÿ…gÿÿÿ‰D$‰4$è¤ÿÿéíåÿÿ¸ÿÿÿÿ‰D$F‰$è«™ÿÿ…À|åÿÿ…dÿÿÿ‰D$‰4$èqÿÿéeåÿÿ¸ÿÿÿÿ‰D$F‰$èx™ÿÿ…Àêæÿÿ…oÿÿÿ‰D$‰4$è>ÿÿéÓæÿÿ¸ÿÿÿÿ‰D$F‰$èE™ÿÿ…Àdæÿÿ…mÿÿÿ‰D$‰4$èÿÿéMæÿÿ¸ÿÿÿÿ‰D$F‰$è™ÿÿ…ÀÞåÿÿ…kÿÿÿ‰D$‰4$èØŽÿÿéÇåÿÿ¹ÿÿÿÿF‰L$‰$èß˜ÿÿ…ÀXåÿÿ…iÿÿÿ‰D$‰4$è¥ŽÿÿéAåÿÿ‹“°ÿÿÿ‹rJ‰0ýÿÿ9Ît-‹F…Àt‹»”ÿÿÿ‰D$‹‰$è¯™ÿÿ‰4$èÇ•ÿÿ;…0ýÿÿ‰ÆuÓ‹“€ÿÿÿ‹B…Àt*‰Æë‰þ‹F‹‹€ÿÿÿ‰D$‰$è%˜ÿÿ‹~‰4$èÚ™ÿÿ…ÿuÚ‹»€ÿÿÿ‹“°ÿÿÿG‰G‰G‹BÇG    ÇG    …Àt*‰Æë‰þ‹F‹‹°ÿÿÿ‰D$‰$èÁÿÿ‹~‰4$è†™ÿÿ…ÿuÚ‹»°ÿÿÿ‹…0ýÿÿ‹“œÿÿÿ‹‹”ÿÿÿÇG    ‰G‰G‹ÇG    ‰D$‹‰$è6ÿÿ‹»”ÿÿÿ‹‰$è–Žÿÿeô[^_]Ã1öë‹ƒÄÿÿÿFƒh9µØüÿÿ„Ãþÿÿ‹»Äÿÿÿ‹‹WA9Ât×)Â‰T$‰D$‰$èo‘ÿÿëÃ¸ÿÿÿÿ‰D$F‰$èI—ÿÿ…Àwæÿÿ…wÿÿÿ‰D$‰4$èÿÿé`æÿÿ‰ö¸ÿÿÿÿ‰D$F‰$è—ÿÿ…Àíåÿÿ…tÿÿÿ‰D$‰4$èÚŒÿÿéÖåÿÿ¸ÿÿÿÿ‰D$F‰$èá–ÿÿ…À¥åÿÿ…sÿÿÿ‰D$‰4$è§ŒÿÿéŽåÿÿ¸ÿÿÿÿ‰D$F‰$è®–ÿÿ…ÀµîÿÿE§‰D$‰4$èwŒÿÿé¡îÿÿ¿ÿÿÿÿF‰|$‰$è~–ÿÿ…ÀIêÿÿE‘‰D$‰4$èGŒÿÿé5êÿÿ¸ÿÿÿÿ‰D$F‰$èN–ÿÿ…À¼éÿÿE‰D$‰4$èŒÿÿé¨éÿÿ¸ÿÿÿÿ‰D$F‰$è–ÿÿ…À9éÿÿE‰D$‰4$èç‹ÿÿé%éÿÿ¸ÿÿÿÿ‰D$F‰$èî•ÿÿ…À¶èÿÿE‹‰D$‰4$è·‹ÿÿé¢èÿÿ¿ÿÿÿÿF‰|$‰$è¾•ÿÿ…À1èÿÿEˆ‰D$‰4$è‡‹ÿÿéèÿÿ¸ÿÿÿÿ‰D$F‰$èŽ•ÿÿ…ÀìçÿÿE‡‰D$‰4$èW‹ÿÿéØçÿÿ¸ÿÿÿÿ‰D$F‰$è^•ÿÿ…ÀMçÿÿE„‰D$‰4$è'‹ÿÿé9çÿÿ¸ÿÿÿÿ‰D$F‰$è.•ÿÿ…ÀçÿÿEƒ‰D$‰4$è÷Šÿÿéôæÿÿ¸ÿÿÿÿ‰D$F‰$èþ”ÿÿ…À™îÿÿE³‰D$‰4$èÇŠÿÿé…îÿÿ¸ÿÿÿÿ‰D$F‰$èÎ”ÿÿ…ÀîÿÿE±‰D$‰4$è—Šÿÿéîÿÿ¹ÿÿÿÿF‰L$‰$èž”ÿÿ…À–îÿÿEµ‰D$‰4$ègŠÿÿé‚îÿÿ¸ÿÿÿÿ‰D$F‰$èn”ÿÿ…ÀcíÿÿE¯‰D$‰4$è7ŠÿÿéOíÿÿ¿ÿÿÿÿF‰|$‰$è>”ÿÿ…ÀÞìÿÿE¬‰D$‰4$èŠÿÿéÊìÿÿ¸ÿÿÿÿ‰D$F‰$è”ÿÿ…À™ìÿÿE«‰D$‰4$è×‰ÿÿé…ìÿÿ¸ÿÿÿÿ‰D$F‰$èÞ“ÿÿ…ÀúëÿÿE¨‰D$‰4$è§‰ÿÿéæëÿÿ¸ÿÿÿÿ‰D$F‰$è®“ÿÿ…ÀöîÿÿEÑ‰D$‰4$èw‰ÿÿéâîÿÿ¿ÿÿÿÿF‰|$‰$è~“ÿÿ…À\êÿÿE£‰D$‰4$èG‰ÿÿéHêÿÿ¸ÿÿÿÿ‰D$F‰$èN“ÿÿ…À;èÿÿE•‰D$‰4$è‰ÿÿé'èÿÿ¿ÿÿÿÿF‰|$‰$è“ÿÿ…À¼ãÿÿ…ÿÿÿ‰D$‰4$èäˆÿÿé¥ãÿÿ´&    ¸ÿÿÿÿ‰D$F‰$èä’ÿÿ…À3ãÿÿ…}ÿÿÿ‰D$‰4$èªˆÿÿéãÿÿ¸ÿÿÿÿ‰D$F‰$è±’ÿÿ…ÀçîÿÿEÙ‰D$‰4$èzˆÿÿéÓîÿÿ¸ÿÿÿÿ‰D$F‰$è’ÿÿ…ÀbîÿÿEÖ‰D$‰4$èJˆÿÿéNîÿÿºÿÿÿÿF‰T$‰$èQ’ÿÿ…ÀîÿÿEÕ‰D$‰4$èˆÿÿé	îÿÿ¸ÿÿÿÿ‰D$F‰$è!’ÿÿ…À~íÿÿEÒ‰D$‰4$èê‡ÿÿéjíÿÿ¸ÿÿÿÿ‰D$F‰$èñ‘ÿÿ…Àñáÿÿ…{ÿÿÿ‰D$‰4$è·‡ÿÿéÚáÿÿ¹ÿÿÿÿF‰L$‰$è¾‘ÿÿ…Àeáÿÿ…yÿÿÿ‰D$‰4$è„‡ÿÿéNáÿÿ´&    ¸ÿÿÿÿ‰D$F‰$è„‘ÿÿ…ÀèÿÿE¡‰D$‰4$èM‡ÿÿéñçÿÿ¸ÿÿÿÿ‰D$F‰$èT‘ÿÿ…À‚çÿÿEŸ‰D$‰4$è‡ÿÿénçÿÿ¸ÿÿÿÿ‰D$F‰$è$‘ÿÿ…ÀÿæÿÿE‰D$‰4$èí†ÿÿéëæÿÿ¿ÿÿÿÿF‰|$‰$èôÿÿ…ÀzæÿÿEš‰D$‰4$è½†ÿÿéfæÿÿ¸ÿÿÿÿ‰D$F‰$èÄÿÿ…À5æÿÿE™‰D$‰4$è†ÿÿé!æÿÿ¸ÿÿÿÿ‰D$F‰$è”ÿÿ…À–åÿÿE–‰D$‰4$è]†ÿÿé‚åÿÿºÿÿÿÿF‰T$‰$èdÿÿ…ÀªîÿÿEå‰D$‰4$è-†ÿÿé–îÿÿ¸ÿÿÿÿ‰D$F‰$è4ÿÿ…À%îÿÿEâ‰D$‰4$èý…ÿÿéîÿÿ¸ÿÿÿÿ‰D$F‰$èÿÿ…ÀàíÿÿEá‰D$‰4$èÍ…ÿÿéÌíÿÿ¸ÿÿÿÿ‰D$F‰$èÔÿÿ…ÀAíÿÿEÞ‰D$‰4$è…ÿÿé-íÿÿºÿÿÿÿF‰T$‰$è¤ÿÿ…ÀüìÿÿEÝ‰D$‰4$èm…ÿÿéèìÿÿƒÿÆÿÿ‰$è*ÿÿ‰$è’ÿÿ‰Æ‰4$èˆÿÿ‰Æëô‰Æ‹½hþÿÿƒï9»pÿÿÿtá¹ÿÿÿÿG‰L$‰$è=ÿÿ…ÀÉE›‰D$‰<$è
…ÿÿë¸‰Æë´‰Æë°‰Æ‹½üýÿÿƒï;»pÿÿÿt¸ÿÿÿÿ‰D$G‰$èùŽÿÿ…À……eÿÿÿ‰D$‰<$èÃ„ÿÿénÿÿÿ‹½ þÿÿ‰Æƒï;»pÿÿÿt­ºÿÿÿÿG‰T$‰$è·Žÿÿ…À•…bÿÿÿ‰D$‰<$è„ÿÿë‰Æé(ÿÿÿéoÿÿÿénÿÿÿ‹ƒ¨ÿÿÿ¿   ¾   ‹ ‰|$‰t$‰D$ƒ¨Èÿÿ‰$èÿÿéÖÿÿ‹ƒ¨ÿÿÿ‹ ‰D$¸   ‰D$¸   ‰D$ƒßÈÿÿ‰$èáŽÿÿé–Öÿÿé¿þÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„ þÿÿ¸ÿÿÿÿ‰D$G‰$èüÿÿ…À„þÿÿ…fÿÿÿ‰D$‰<$èÂƒÿÿémþÿÿ‰Æéfþÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„Oþÿÿ¸ÿÿÿÿ‰D$G‰$è«ÿÿ…À3þÿÿ…hÿÿÿ‰D$‰<$èqƒÿÿéþÿÿ‰Æéþÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„þýÿÿºÿÿÿÿG‰T$‰$èZÿÿ…Àâýÿÿ…jÿÿÿ‰D$‰<$è ƒÿÿéËýÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„´ýÿÿ¸ÿÿÿÿ‰D$G‰$èÿÿ…À˜ýÿÿ…lÿÿÿ‰D$‰<$èÖ‚ÿÿéýÿÿ‰Æézýÿÿ‰Æésýÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„\ýÿÿ¸ÿÿÿÿ‰D$G‰$è¸Œÿÿ…À@ýÿÿ…nÿÿÿ‰D$‰<$è~‚ÿÿé)ýÿÿOô‰Æ9‹pÿÿÿ‰ýÿÿ„ýÿÿ¸ÿÿÿÿ‰D$Gü‰$ènŒÿÿ…Àöüÿÿ‹½ýÿÿ…pÿÿÿ‰D$‰<$è.‚ÿÿéÙüÿÿéÊüÿÿ‰ÆéÍüÿÿ‰Æ‹½þÿÿƒï;»pÿÿÿ„¶üÿÿ¸ÿÿÿÿ‰D$G‰$èŒÿÿ…Àšüÿÿ…uÿÿÿ‰D$‰<$èØÿÿéƒüÿÿ‹½ þÿÿ‰Æƒï;»pÿÿÿt¥ºÿÿÿÿG‰T$‰$èÌ‹ÿÿ…À…rÿÿÿ‰D$‰<$è–ÿÿévÿÿÿ‹½$þÿÿ‰Æƒï9»pÿÿÿ„*üÿÿ¸ÿÿÿÿ‰D$G‰$è†‹ÿÿ…Àüÿÿ…vÿÿÿ‰D$‰<$èLÿÿé÷ûÿÿ‰Æéðûÿÿ‰Æ¶    éãûÿÿéÿÿÿ¶    éÿþÿÿ‹½(þÿÿ‰Æƒï9»pÿÿÿ„¼ûÿÿ¸ÿÿÿÿ‰D$G‰$è‹ÿÿ…À ûÿÿ…xÿÿÿ‰D$‰<$èÞ€ÿÿé‰ûÿÿ‰Æé‚ûÿÿ‹½,þÿÿ‰Æƒï9»pÿÿÿ„kûÿÿºÿÿÿÿG‰T$‰$èÇŠÿÿ…ÀOûÿÿ…zÿÿÿ‰D$‰<$è€ÿÿé8ûÿÿ‰Æé1ûÿÿ‹½0þÿÿ‰Æƒï9»pÿÿÿ„ûÿÿ¸ÿÿÿÿ‰D$G‰$èvŠÿÿ…Àþúÿÿ…|ÿÿÿ‰D$‰<$è<€ÿÿéçúÿÿ‹½4þÿÿ‰Æƒï9»pÿÿÿ„Ðúÿÿ¸ÿÿÿÿ‰D$G‰$è,Šÿÿ…À´úÿÿ…~ÿÿÿ‰D$‰<$èòÿÿéúÿÿ‰Æé–úÿÿ‰ÆGô9ƒpÿÿÿ‰…ýÿÿ„úÿÿ¹ÿÿÿÿGü‰L$‰$èÛ‰ÿÿ…Àcúÿÿ‹•ýÿÿE€‰D$‰$èžÿÿéIúÿÿé:úÿÿé5úÿÿ‹½@þÿÿ‰Æƒï;»pÿÿÿuL‹½<þÿÿƒï;»pÿÿÿ„úÿÿ¸ÿÿÿÿ‰D$G‰$ès‰ÿÿ…ÀûùÿÿE…‰D$‰<$è<ÿÿéçùÿÿ‰Æéàùÿÿ¸ÿÿÿÿ‰D$G‰$è<‰ÿÿ…ÀœE‚‰D$‰<$è	ÿÿë‹‰Æé°ùÿÿ‰Æ‹½Dþÿÿƒï9»pÿÿÿ„™ùÿÿ¹ÿÿÿÿG‰L$‰$èõˆÿÿ…À}ùÿÿE‰‰D$‰<$è¾~ÿÿéiùÿÿ‹½Hþÿÿ‰Æƒï9»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è²ˆÿÿ…ÀE†‰D$‰<$è~ÿÿé|ÿÿÿé>ÿÿÿépÿÿÿ‰Æ¶    éçþÿÿ‰Æéùÿÿ‹½Lþÿÿ‰Æƒï9»pÿÿÿ„õøÿÿºÿÿÿÿG‰T$‰$èQˆÿÿ…ÀÙøÿÿEŠ‰D$‰<$è~ÿÿéÅøÿÿ‰Æé¾øÿÿ‹½Pþÿÿ‰Æƒï9»pÿÿÿ„§øÿÿ¸ÿÿÿÿ‰D$G‰$èˆÿÿ…À‹øÿÿEŒ‰D$‰<$èÌ}ÿÿéwøÿÿ‰Æépøÿÿ‹½Tþÿÿ‰Æƒï9»pÿÿÿ„Yøÿÿ¸ÿÿÿÿ‰D$G‰$èµ‡ÿÿ…À=øÿÿEŽ‰D$‰<$è~}ÿÿé)øÿÿ‰Æé"øÿÿ‹½Xþÿÿ‰Æƒï9»pÿÿÿ„øÿÿ¸ÿÿÿÿ‰D$G‰$èg‡ÿÿ…Àï÷ÿÿE‰D$‰<$è0}ÿÿéÛ÷ÿÿOô‰Æ9‹pÿÿÿ‰ýÿÿ„Ä÷ÿÿ¹ÿÿÿÿGü‰L$‰$è ‡ÿÿ…À¨÷ÿÿ‹½ýÿÿE’‰D$‰<$èã|ÿÿéŽ÷ÿÿ‰Æ‹½`þÿÿƒï;»pÿÿÿ„w÷ÿÿ¸ÿÿÿÿ‰D$G‰$èÓ†ÿÿ…À[÷ÿÿE—‰D$‰<$èœ|ÿÿéG÷ÿÿ‹½dþÿÿ‰Æƒï;»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è†ÿÿ…ÀE”‰D$‰<$è]|ÿÿé|ÿÿÿéùöÿÿt& ¼'    éeÿÿÿt& ¼'    éÙöÿÿ‹½lþÿÿ‰Æƒï9»pÿÿÿ„Úöÿÿ¸ÿÿÿÿ‰D$G‰$è(†ÿÿ…À¾öÿÿE˜‰D$‰<$èñ{ÿÿéªöÿÿ‰Æ‹½Øþÿÿƒï;»pÿÿÿ„…öÿÿ¸ÿÿÿÿ‰D$G‰$èá…ÿÿ…ÀiöÿÿEÓ‰D$‰<$èª{ÿÿéUöÿÿ‹½Üþÿÿ‰Æƒï;»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$èž…ÿÿ…ÀEÐ‰D$‰<$èk{ÿÿé|ÿÿÿ‰Æéöÿÿ´&    égÿÿÿ‰Æ‹½Œþÿÿƒï9»pÿÿÿ„ìõÿÿ¹ÿÿÿÿG‰L$‰$èH…ÿÿ…ÀÐõÿÿE­‰D$‰<$è{ÿÿé¼õÿÿ‰Æéµõÿÿ‰Æ‹½„þÿÿƒï;»pÿÿÿ„žõÿÿ¸ÿÿÿÿ‰D$G‰$èú„ÿÿ…À‚õÿÿE©‰D$‰<$èÃzÿÿénõÿÿ‹½ˆþÿÿ‰Æƒï;»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è·„ÿÿ…ÀE¦‰D$‰<$è„zÿÿé|ÿÿÿ‰Æé(õÿÿénÿÿÿëò‰ö¼'    éWÿÿÿt& ¼'    éfúÿÿ‰Æ‰ö¼'    éóôÿÿ‰Æéìôÿÿ‹½”þÿÿ‰Æƒï9»pÿÿÿ„ÕôÿÿºÿÿÿÿG‰T$‰$è1„ÿÿ…À¹ôÿÿE®‰D$‰<$èúyÿÿé¥ôÿÿ‹½üþÿÿ‰Æƒï9»pÿÿÿ…Œ   ‹½øþÿÿƒï9»pÿÿÿ„yôÿÿ¸ÿÿÿÿ‰D$G‰$èÕƒÿÿ…À]ôÿÿEã‰D$‰<$èžyÿÿéIôÿÿ‹½pþÿÿ‰Æƒï9»pÿÿÿ„2ôÿÿºÿÿÿÿG‰T$‰$èŽƒÿÿ…ÀôÿÿEœ‰D$‰<$èWyÿÿéôÿÿ¸ÿÿÿÿ‰D$G‰$è^ƒÿÿ…ÀXÿÿÿEà‰D$‰<$è'yÿÿéDÿÿÿ‰ÆéËóÿÿv éÐþÿÿ‰Æé¼óÿÿ‰Æ‰öé%ÿÿÿé¬óÿÿ‰Æ‹½ðþÿÿƒï;»pÿÿÿ„—óÿÿ¸ÿÿÿÿ‰D$G‰$èó‚ÿÿ…À{óÿÿEß‰D$‰<$è¼xÿÿégóÿÿ‹½¸þÿÿ‰Æƒï9»pÿÿÿ„Póÿÿ¸ÿÿÿÿ‰D$G‰$è¬‚ÿÿ…À4óÿÿEÀ‰D$‰<$èuxÿÿé óÿÿ‹½ôþÿÿ‰Æƒï;»pÿÿÿ„]ÿÿÿ¹ÿÿÿÿG‰L$‰$èe‚ÿÿ…ÀAÿÿÿEÜ‰D$‰<$è.xÿÿé-ÿÿÿ‰ÆéÒòÿÿ¸ÿÿÿÿ‰D$F‰$è.‚ÿÿ…ÀYçÿÿEÁ‰D$‰4$è÷wÿÿéEçÿÿé“òÿÿWô‰Æ9“pÿÿÿ‰•ýÿÿ„†òÿÿ¸ÿÿÿÿ‰D$Gü‰$èâÿÿ…Àjòÿÿ‹ýÿÿEÂ‰D$‰$è¥wÿÿéPòÿÿéAòÿÿv é9òÿÿ‰Æ‰ö¼'    é3òÿÿé€þÿÿ¶    é¢ôÿÿt& ¼'    é÷óÿÿt& ¼'    é‰ôÿÿt& ¼'    ë³éÿÿÿ‰ö¼'    é'þÿÿt& ¼'    éþÿÿ‰Æ‰ö¼'    éÃñÿÿ‹½tþÿÿ‰Æƒï9»pÿÿÿ„¬ñÿÿ¸ÿÿÿÿ‰D$G‰$èÿÿ…ÀñÿÿEž‰D$‰<$èÑvÿÿé|ñÿÿ‹½xþÿÿ‰Æƒï9»pÿÿÿ„eñÿÿ¸ÿÿÿÿ‰D$G‰$èÁ€ÿÿ…ÀIñÿÿE ‰D$‰<$èŠvÿÿé5ñÿÿ‰Æé.ñÿÿ‹½|þÿÿ‰Æƒï9»pÿÿÿ„ñÿÿ¸ÿÿÿÿ‰D$G‰$ès€ÿÿ…ÀûðÿÿE¢‰D$‰<$è<vÿÿéçðÿÿOô‰Æ9‹pÿÿÿ‰ýÿÿ„Ððÿÿ¹ÿÿÿÿGü‰L$‰$è,€ÿÿ…À´ðÿÿ‹½ýÿÿE¤‰D$‰<$èïuÿÿéšðÿÿé’ûÿÿé†ðÿÿ´&    éyðÿÿt& ¼'    é`÷ÿÿt& ¼'    élôÿÿt& ¼'    éÜ÷ÿÿt& ¼'    é~÷ÿÿt& ¼'    é
øÿÿt& ¼'    é/ðÿÿt& ¼'    éÛôÿÿ‰Æ‰ö¼'    éðÿÿ‰Æéüïÿÿ‰Æ‹½àþÿÿƒï9»pÿÿÿ„åïÿÿ¸ÿÿÿÿ‰D$G‰$èAÿÿ…ÀÉïÿÿE×‰D$‰<$è
uÿÿéµïÿÿéšùÿÿ´&    é³óÿÿt& ¼'    é^þÿÿt& ¼'    éúóÿÿt& ¼'    épÿÿÿ‹½ ÿÿÿ‰Æƒï9»pÿÿÿ„\ïÿÿ¹ÿÿÿÿG‰L$‰$è¸~ÿÿ…À@ïÿÿEä‰D$‰<$ètÿÿé,ïÿÿ‹½äþÿÿ‰Æƒï9»pÿÿÿ„ÿÿÿ¹ÿÿÿÿG‰L$‰$èq~ÿÿ…ÀÿþÿÿEÔ‰D$‰<$è:tÿÿéëþÿÿéýÿÿ´&    é×þÿÿ‹½èþÿÿ‰Æƒï9»pÿÿÿ„¼îÿÿ¸ÿÿÿÿ‰D$G‰$è~ÿÿ…À îÿÿEØ‰D$‰<$èásÿÿéŒîÿÿOô‰Æ9‹pÿÿÿ‰$ýÿÿ„uîÿÿ¸ÿÿÿÿ‰D$Gü‰$èÑ}ÿÿ…ÀYîÿÿ‹½$ýÿÿEÚ‰D$‰<$è”sÿÿé?îÿÿé'þÿÿ‰öé)îÿÿt& ¼'    éîÿÿ‰Æ‰ö¼'    éîÿÿ‹½Ðþÿÿ‰Æƒï9»pÿÿÿ„üíÿÿ¸ÿÿÿÿ‰D$G‰$èX}ÿÿ…ÀàíÿÿEÌ‰D$‰<$è!sÿÿéÌíÿÿ¿ÿÿÿÿF‰|$‰$è(}ÿÿ…ÀQàÿÿEÍ‰D$‰4$èñrÿÿé=àÿÿWô‰Æ9“pÿÿÿ‰• ýÿÿ„…íÿÿ¹ÿÿÿÿGü‰L$‰$èá|ÿÿ…Àiíÿÿ‹ ýÿÿEÎ‰D$‰$è¤rÿÿéOíÿÿé'ÿÿÿ‰öé9íÿÿ‰Æ‰ö¼'    é3íÿÿé$íÿÿ‰Æ‹½¨þÿÿƒï;»pÿÿÿ„íÿÿ¸ÿÿÿÿ‰D$G‰$ès|ÿÿ…ÀûìÿÿE»‰D$‰<$è<rÿÿéçìÿÿ‹½¬þÿÿ‰Æƒï;»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è0|ÿÿ…ÀE¸‰D$‰<$èýqÿÿé|ÿÿÿé`ÿÿÿt& ¼'    éeÿÿÿ¸ÿÿÿÿ‰D$F‰$èï{ÿÿ…À&àÿÿE¹‰D$‰4$è¸qÿÿéàÿÿ¸ÿÿÿÿ‰D$F‰$è¿{ÿÿ…ÀàÿÿEº‰D$‰4$èˆqÿÿé÷ßÿÿ‰Æé,ìÿÿ‰Æ‹½°þÿÿƒï9»pÿÿÿ„ìÿÿ¸ÿÿÿÿ‰D$G‰$èq{ÿÿ…ÀùëÿÿE¿‰D$‰<$è:qÿÿéåëÿÿ‹½´þÿÿ‰Æƒï9»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è.{ÿÿ…ÀE¼‰D$‰<$èûpÿÿé|ÿÿÿºÿÿÿÿF‰T$‰$è{ÿÿ…ÀÞßÿÿE¾‰D$‰4$èËpÿÿéÊßÿÿéEÿÿÿ¹ÿÿÿÿF‰L$‰$èÍzÿÿ…À”ßÿÿE½‰D$‰4$è–pÿÿé€ßÿÿé	ÿÿÿt& éa÷ÿÿt& ¼'    élñÿÿt& ¼'    éóñÿÿ‰Æ‰ö¼'    éëÿÿ‹½œþÿÿ‰Æƒï9»pÿÿÿ„ìêÿÿ¸ÿÿÿÿ‰D$G‰$èHzÿÿ…ÀÐêÿÿE²‰D$‰<$èpÿÿé¼êÿÿ‰Æéµêÿÿ‹½˜þÿÿ‰Æƒï9»pÿÿÿ„žêÿÿ¸ÿÿÿÿ‰D$G‰$èúyÿÿ…À‚êÿÿE°‰D$‰<$èÃoÿÿénêÿÿ‰Æégêÿÿ‹½ þÿÿ‰Æƒï9»pÿÿÿ„Pêÿÿ¸ÿÿÿÿ‰D$G‰$è¬yÿÿ…À4êÿÿE´‰D$‰<$èuoÿÿé êÿÿOô‰Æ9‹pÿÿÿ‰ýÿÿ„	êÿÿºÿÿÿÿGü‰T$‰$èeyÿÿ…Àíéÿÿ‹½ýÿÿE¶‰D$‰<$è(oÿÿéÓéÿÿéÄéÿÿ¶    éUÿÿÿt& ¼'    é©éÿÿt& ¼'    éþÿÿt& ¼'    é×þÿÿ‹½ÿÿÿ‰Æƒï;»pÿÿÿ…¹  ‹½ÿÿÿƒï;»pÿÿÿ„géÿÿ¸ÿÿÿÿ‰D$G‰$èÃxÿÿ…ÀKéÿÿEë‰D$‰<$èŒnÿÿé7éÿÿ¸ÿÿÿÿ‰D$F‰$è“xÿÿ…À>ØÿÿEé‰D$‰4$è\nÿÿé*Øÿÿ¸ÿÿÿÿ‰D$F‰$ècxÿÿ…À#ØÿÿEê‰D$‰4$è,nÿÿéØÿÿ‰ÆéTÿÿÿ¸ÿÿÿÿ‰D$F‰$è,xÿÿ…À|ØÿÿEî‰D$‰4$èõmÿÿéhØÿÿ‰Æé™èÿÿ‰Æé’èÿÿ‰Æ‹½ÿÿÿƒï9»pÿÿÿ„{èÿÿ¸ÿÿÿÿ‰D$G‰$è×wÿÿ…À_èÿÿEï‰D$‰<$è mÿÿéKèÿÿ‹½ÿÿÿ‰Æƒï9»pÿÿÿt¨¹ÿÿÿÿG‰L$‰$è”wÿÿ…ÀEì‰D$‰<$èamÿÿé|ÿÿÿºÿÿÿÿF‰T$‰$èhwÿÿ…À£×ÿÿEí‰D$‰4$è1mÿÿé×ÿÿé>ÿÿÿé@ÿÿÿv ¼'    é”èÿÿ¸ÿÿÿÿ‰D$G‰$èwÿÿ…À+þÿÿEè‰D$‰<$èèlÿÿéþÿÿéîþÿÿ¶    é¬þÿÿOô‰Æ9‹pÿÿÿ‰(ýÿÿ„lçÿÿ¸ÿÿÿÿ‰D$Gü‰$èÈvÿÿ…ÀPçÿÿ‹½(ýÿÿEæ‰D$‰<$è‹lÿÿé6çÿÿéÄèÿÿ‹½þÿÿ‰Æƒï9»pÿÿÿ„ñÿÿ¸ÿÿÿÿ‰D$G‰$èvvÿÿ…ÀýðÿÿEª‰D$‰<$è?lÿÿééðÿÿé-çÿÿ‹½Äþÿÿ‰Æƒï;»pÿÿÿ…›  ‹½Àþÿÿƒï;»pÿÿÿ„¹æÿÿ¸ÿÿÿÿ‰D$G‰$èvÿÿ…ÀæÿÿEÇ‰D$‰<$èÞkÿÿé‰æÿÿWô‰Æ9“pÿÿÿ‰•,ýÿÿ„ræÿÿ¸ÿÿÿÿ‰D$Gü‰$èÎuÿÿ…ÀVæÿÿ‹,ýÿÿEò‰D$‰$è‘kÿÿé<æÿÿ‰Æé5æÿÿ‰Æ‹½Èþÿÿƒï9»pÿÿÿ„æÿÿ¸ÿÿÿÿ‰D$G‰$èzuÿÿ…ÀæÿÿEË‰D$‰<$èCkÿÿéîåÿÿ‹½Ìþÿÿ‰Æƒï9»pÿÿÿt¨¸ÿÿÿÿ‰D$G‰$è7uÿÿ…ÀEÈ‰D$‰<$èkÿÿé|ÿÿÿ‰Æé¨åÿÿénÿÿÿºÿÿÿÿF‰T$‰$èÿtÿÿ…ÀI×ÿÿEÆ‰D$‰4$èÈjÿÿé5×ÿÿ¸ÿÿÿÿ‰D$F‰$èÏtÿÿ…À”×ÿÿEÉ‰D$‰4$è˜jÿÿé€×ÿÿ¹ÿÿÿÿF‰L$‰$èŸtÿÿ…ÀÔÖÿÿEÅ‰D$‰4$èhjÿÿéÀÖÿÿ¸ÿÿÿÿ‰D$F‰$èotÿÿ…ÀI×ÿÿEÊ‰D$‰4$è8jÿÿé5×ÿÿéÛîÿÿ‰Æt& éÓäÿÿéÿÿÿ‹½ÿÿÿ‰Æƒï9»pÿÿÿ„·äÿÿ¸ÿÿÿÿ‰D$G‰$ètÿÿ…À›äÿÿEð‰D$‰<$èÜiÿÿé‡äÿÿ¸ÿÿÿÿ‰D$F‰$èãsÿÿ…À‚ÔÿÿEñ‰D$‰4$è¬iÿÿénÔÿÿ‰ÆéPäÿÿ´&    ëï‰Æéqýÿÿ´&    é)äÿÿ¸ÿÿÿÿ‰D$G‰$èsÿÿ…ÀIýÿÿEÄ‰D$‰<$èXiÿÿé5ýÿÿé ÿÿÿ¶    ë°U‰åƒì(‹E‰}ü‰]ôèñuÿÿÃ€}  x‹E‰uø…Àt^ÇEð   Ç$   èžpÿÿ‰Á‰ÆƒÁt‹E‹‹@‰V‰A‹U‹Eð‰|$‰t$‰T$‰$èÍpÿÿ‹U‹EÿB‰0‹]ô‹uø‹}ü‰ì]Â 9}t‹U‹‹U;B’À¶À‰EðëŽU‰åƒì(‹E‰}ü‰]ôèQuÿÿÃà|  x‹E‰uø…Àt^ÇEð   Ç$   èþoÿÿ‰Á‰ÆƒÁt‹E‹‹@‰V‰A‹U‹Eð‰|$‰t$‰T$‰$è-pÿÿ‹U‹EÿB‰0‹]ô‹uø‹}ü‰ì]Â 9}t‹U‹‹U;B’À¶À‰EðëŽU‰åƒì(‰}ü‹}‰]ô‰uøè®tÿÿÃ=|  ‹W;WtK…Òt‹Bü‰B‰G‹E‹}‹M‹0Bü)øƒàü)Â‰D$‰L$‰$èÏkÿÿ‹E‰0‹]ô‹uø‹}ü‰ì]Ãt& ‹7‰Ð)ðÁø=ÿÿÿ?„¾   …Àº   t 9Â‚    ´&    1Àúÿÿÿ?—À…À…   Áâ‰Uì‰$è×nÿÿ‹u‰Eè‹‹Mè)Æ‰t$‰D$‰$èJkÿÿ‹Uèòt‹M‹‰‹wƒÂ‹M‹E‰Uð‰$)Î‰t$‰D$èkÿÿ‹…Àt‰$èrÿÿ‹Eè‹Uì‰‹Eðð‰G‹EèÐ‰Gé&ÿÿÿºÿÿÿ?éqÿÿÿƒéÆÿÿ‰$èˆoÿÿèÓhÿÿU‰åWVSƒì‹UèTsÿÿÃãz  ‹}‹B…ÀtK‹M‰Â‹1ë¶    ‹B…Àt‰Â;r’Á„Éuí‹B…Àuí„É‰Öu!‹M‹B;r3‰‰øÆG eô[^_]Â ‰ÖƒÆ‹E;ptL‰4$èçlÿÿ‹M‰Â‹B;sÍ1Ò‰t$Eì‰L$‰T$‹U‰$‰T$è»hÿÿ‹EìÆG‰‰øƒìeô[^_]Â ‹U‰Á‰t$Eð1ö‰t$‰$‰T$‰L$èhÿÿ‹EðÆG‰‰øƒìeô[^_]Â U‰åƒìh‰}ü‹}‰uø‹u‰]ôèKrÿÿÃÚy  G9ð„å   ‹M‹F9s[;w„1  ‰4$è"lÿÿ‹M‰Â‹@;ƒ÷   ‹B…À„;  ‹MEà‰$‰t$‰t$‰L$‰|$èégÿÿ‹Eà‹U‰‰Ðƒìër‰öv^;w„0  ‰4$‰öèSlÿÿ‹M‰Â‹;BƒH  ‹F…À„‘  ‹MEÌ‰T$‰T$‰$‰L$‰|$èŠgÿÿ‹EÌ‹U‰‰Ðƒìëv ‹E‰0t& ¼'    ‹]ô‹uø‹}ü‰ì]Â ‹O…Ét‹W‹M‹B;‚ú   ‹UE¸‰$‰|$‰T$èZnÿÿ‹E¸‹M‰‰Èƒìë³EØ‰L$‰$‰|$è8nÿÿ‹EØ‹M‰‰Èƒìë‘Eè‰$‰L$‰t$‰t$‰|$èÞfÿÿ‹Eè‹U‰‰ÐƒìédÿÿÿEä‰L$1É‰T$‰$‰L$‰|$è¯fÿÿ‹Eä‹U‰‰Ðƒìé5ÿÿÿ‹UEÔ‰$‰t$‰|$‰T$1Ò‰T$è}fÿÿ‹EÔ‹M‰‰ÈƒìéÿÿÿEÀ‰L$‰$‰|$èˆmÿÿ‹EÀ‹M‰‰ÈƒìéÞþÿÿEì‰T$1Ò‰T$‰$‰L$‰|$è)fÿÿ‹Eì‹U‰‰Ðƒìé¯þÿÿEÐ1Ò‰T$‰$‰L$‰t$‰|$èúeÿÿ‹EÐ‹U‰‰Ðƒìé€þÿÿU‰åWVSƒì‹UèÔoÿÿÃcw  ‹}‹B…ÀtK‹M‰Â‹1ë¶    ‹B…Àt‰Â;r’Á„Éuí‹B…Àuí„É‰Öu!‹M‹B;r3‰‰øÆG eô[^_]Â ‰ÖƒÆ‹E;ptL‰4$ègiÿÿ‹M‰Â‹B;sÍ‰t$1ö‰t$Eì‰L$‹U‰$‰T$è{dÿÿ‹EìÆG‰‰øƒìeô[^_]Â ‹U‰ÁEð‰t$‰$‰T$1Ò‰T$‰L$èAdÿÿ‹EðÆG‰‰øƒìeô[^_]Â U‰åƒìh‰}ü‹}‰uø‹u‰]ôèËnÿÿÃZv  G9ð„å   ‹M‹F9s[9w„1  ‰4$è¢hÿÿ‹M‰Â‹@;ƒ÷   ‹B…À„;  ‹MEà‰$‰t$‰t$‰L$‰|$è©cÿÿ‹Eà‹U‰‰Ðƒìër‰öv^9w„0  ‰4$‰öèÓhÿÿ‹M‰Â‹;BƒH  ‹F…À„‘  ‹MEÌ‰T$‰T$‰$‰L$‰|$èJcÿÿ‹EÌ‹U‰‰Ðƒìëv ‹E‰0t& ¼'    ‹]ô‹uø‹}ü‰ì]Â ‹O…Ét‹W‹M‹B;‚ú   ‹UE¸‰$‰|$‰T$èjaÿÿ‹E¸‹M‰‰Èƒìë³EØ‰L$‰$‰|$èHaÿÿ‹EØ‹M‰‰Èƒìë‘Eè‰$‰L$‰t$‰t$‰|$èžbÿÿ‹Eè‹U‰‰ÐƒìédÿÿÿEä‰L$1É‰T$‰$‰L$‰|$èobÿÿ‹Eä‹U‰‰Ðƒìé5ÿÿÿ‹UEÔ‰$‰t$‰|$‰T$1Ò‰T$è=bÿÿ‹EÔ‹M‰‰ÈƒìéÿÿÿEÀ‰L$‰$‰|$è˜`ÿÿ‹EÀ‹M‰‰ÈƒìéÞþÿÿEì‰T$1Ò‰T$‰$‰L$‰|$èéaÿÿ‹Eì‹U‰‰Ðƒìé¯þÿÿEÐ‰L$1É‰$‰t$‰L$‰|$èºaÿÿ‹EÐ‹U‰‰Ðƒìé€þÿÿU‰åƒì(‰}ü‹}‰]ô‰uøèNlÿÿÃÝs  ‹W;WtK…Òt‹Bü‰B‰G‹E‹M‹0Bü)È‹Mƒàü)Â‰D$‰L$‰$èocÿÿ‹E‰0‹]ô‹uø‹}ü‰ì]Ãt& ‰Ð‹)ÐÁø=ÿÿÿ?„¾   …Àº   t 9Â‚    ´&    1Àúÿÿÿ?—À…À…   Áâ‰Uì‰$èwfÿÿ‹u‰Eè‹‹Mè)Æ‰t$‰D$‰$èêbÿÿ‹Uèòt‹M‹‰‹wƒÂ‹E‰Uð‰$)Æ‹E‰t$‰D$è»bÿÿ‹…Àt‰$è-jÿÿ‹Eè‰‹Eðð‹uì‰G‹Eèð‰Gé&ÿÿÿºÿÿÿ?éqÿÿÿƒéÆÿÿ‰$è(gÿÿès`ÿÿU‰åƒì(‰}ü‹}‰]ô‰uøèîjÿÿÃ}r  ‹W;WtK…Òt‹Bü‰B‰G‹E‹M‹0Bü)È‹Mƒàü)Â‰D$‰L$‰$èbÿÿ‹E‰0‹]ô‹uø‹}ü‰ì]Ãt& ‰Ð‹)ÐÁø=ÿÿÿ?„¾   …Àº   t 9Â‚    ´&    1Àúÿÿÿ?—À…À…   Áâ‰Uì‰$èeÿÿ‹u‰Eè‹‹Mè)Æ‰t$‰D$‰$èŠaÿÿ‹Uèòt‹M‹‰‹wƒÂ‹E‰Uð‰$)Æ‹E‰t$‰D$è[aÿÿ‹…Àt‰$èÍhÿÿ‹Eè‰‹Eðð‹uì‰G‹Eèð‰Gé&ÿÿÿºÿÿÿ?éqÿÿÿƒéÆÿÿ‰$èÈeÿÿè_ÿÿU‰åƒì(‰}ü‹}‰]ô‰uøèŽiÿÿÃq  ‹W;WtK…Òt‹Bü‰B‰G‹E‹M‹0Bü)È‹Mƒàü)Â‰D$‰L$‰$è¯`ÿÿ‹E‰0‹]ô‹uø‹}ü‰ì]Ãt& ‰Ð‹)ÐÁø=ÿÿÿ?„¾   …Àº   t 9Â‚    ´&    1Àúÿÿÿ?—À…À…   Áâ‰Uì‰$è·cÿÿ‹u‰Eè‹‹Mè)Æ‰t$‰D$‰$è*`ÿÿ‹Uèòt‹M‹‰‹wƒÂ‹E‰Uð‰$)Æ‹E‰t$‰D$èû_ÿÿ‹…Àt‰$èmgÿÿ‹Eè‰‹Eðð‹uì‰G‹Eèð‰Gé&ÿÿÿºÿÿÿ?éqÿÿÿƒéÆÿÿ‰$èhdÿÿè³]ÿÿU‰åƒì(‰}ü‹}‰]ô‰uøè.hÿÿÃ½o  ‹W;WtK…Òt‹Bü‰B‰G‹E‹M‹0Bü)È‹Mƒàü)Â‰D$‰L$‰$èO_ÿÿ‹E‰0‹]ô‹uø‹}ü‰ì]Ãt& ‰Ð‹)ÐÁø=ÿÿÿ?„¾   …Àº   t 9Â‚    ´&    1Àúÿÿÿ?—À…À…   Áâ‰Uì‰$èWbÿÿ‹u‰Eè‹‹Mè)Æ‰t$‰D$‰$èÊ^ÿÿ‹Uèòt‹M‹‰‹wƒÂ‹E‰Uð‰$)Æ‹E‰t$‰D$è›^ÿÿ‹…Àt‰$èfÿÿ‹Eè‰‹Eðð‹uì‰G‹Eèð‰Gé&ÿÿÿºÿÿÿ?éqÿÿÿƒéÆÿÿ‰$ècÿÿèS\ÿÿU‰åWVSƒì,‹EèÔfÿÿÃcn  …À„„  ‹U‹B…À„\  ‰Eð‹Uð‹B…À„1  ‰Eì‹Uì‹B…À„  ‰Eè‹Uè‹B…À„Û   ‰Eä‹Uä‹B…À„°   ‰Eà‰Â‹B…À„„   ‰EÜ‰Â‹B…Àt_‰EØ‰Â´&    ¼'    ‹B…Àt,‰Æët& ‰þ‹F‰D$‹E‰$èDcÿÿ‹~‰4$èùdÿÿ…ÿuÝ‹UØ‹r‰$èçdÿÿ…öt‰ò‰uØë´‹EÜ‹p‰$èÎdÿÿ…öt‰ò‰uÜë‹Uà‹r‰$èµdÿÿ…öt
‰ò‰uàéUÿÿÿ‹Eä‹p‰$è™dÿÿ…öt‰uäé(ÿÿÿ‹Uè‹r‰$èdÿÿ…öt‰uèéýþÿÿ‹Eì‹p‰$èedÿÿ…öt‰uìéÒþÿÿ‹Uð‹r‰$èKdÿÿ…öt‰uðé§þÿÿ‹E‹p‰$è1dÿÿ…öt‰ué|þÿÿƒÄ,[^_]ÃU‰åWVSƒì,‹Eè$eÿÿÃ³l  …À„„  ‹U‹B…À„\  ‰Eð‹Uð‹B…À„1  ‰Eì‹Uì‹B…À„  ‰Eè‹Uè‹B…À„Û   ‰Eä‹Uä‹B…À„°   ‰Eà‰Â‹B…À„„   ‰EÜ‰Â‹B…Àt_‰EØ‰Â´&    ¼'    ‹B…Àt,‰Æët& ‰þ‹F‰D$‹E‰$è„Wÿÿ‹~‰4$èIcÿÿ…ÿuÝ‹UØ‹r‰$è7cÿÿ…öt‰ò‰uØë´‹EÜ‹p‰$ècÿÿ…öt‰ò‰uÜë‹Uà‹r‰$ècÿÿ…öt
‰ò‰uàéUÿÿÿ‹Eä‹p‰$èébÿÿ…öt‰uäé(ÿÿÿ‹Uè‹r‰$èÏbÿÿ…öt‰uèéýþÿÿ‹Eì‹p‰$èµbÿÿ…öt‰uìéÒþÿÿ‹Uð‹r‰$è›bÿÿ…öt‰uðé§þÿÿ‹E‹p‰$èbÿÿ…öt‰ué|þÿÿƒÄ,[^_]Ã‹$ÃU‰å‹EÆ@ Ç@    Ç@    Ç@    ]Ã´&    ¼'    U‰å‹E]¶@Ãt& U‰å‹E]‹@Ãt& U‰å‹E]‹@Ãt& U‰åSƒìècÿÿÃ¨j  HtƒÄ[]Ãt& úÿÿ  uíƒŒ  ‰$è‚Vÿÿ‹ƒÿÿÿ‰D$1À‰D$ƒ¼•ÿÿ‰$èYÿÿƒÄ[]Ã¶    Uºÿÿ  ‰å¸   ]ëU‰åSè¬bÿÿÃ;j  ƒìƒŒ  ‰$èˆaÿÿZ[]Ã¶    ¿    U‰åƒì‰4$‹u‰|$‹M€~ „ƒ   ‹V;Uv{‹F9Èvt)Èxÿ‹F¯×‰ÁÁùÁéÁ‹EÁùÐ‹¯Á¶‹Eˆ‰ø‹V¯Â‹UÐ‹¯Á¶T‹Eˆ‰ø‹V¯Â‹UÐ‹¯Áƒù¶T‹Eˆt‹E Æ ÿ¶    ‹4$‹|$‰ì]Ã‹N‹E‹¯ùø¶D‚‹U ˆëÜ¶    ¿    U‰å‹EÇ     Ç@    Ç@    Æ@ Ç@    Ç@    Ç@    ]Ãv ¼'    U‰å‹EÇ     Ç@    Ç@    Æ@ Ç@    Ç@    Ç@    ]Ãv ¼'    U1À‰åWVSì\  è"aÿÿÃ±h  ‹u‰¥¸þÿÿ‰D$Ç$    ‰t$èbYÿÿPƒâð)Ô|$Áàƒçð‰D$‰t$‰<$è@Yÿÿ•`ÿÿÿ…Ðþÿÿ‰…¬þÿÿ‰•Ìþÿÿ‰$è`Uÿÿ‹ƒ¸ÿÿÿÆEÔ ÇEÐ    ÆEÕ ‹H‹@ÇEØ    ÇEÜ    ‰Àþÿÿƒé‹µÀþÿÿ‰…Èþÿÿ‹•Èþÿÿ‰Äþÿÿ‹‹àÿÿÿ‹FôµØþÿÿÇEà    ÇEä    ‰µ¨þÿÿ‰”Ðþÿÿ1À‰…ÔþÿÿA‰…ÐþÿÿA ‰…`ÿÿÿ‰4$èWÿÿ‰t$‹…Ìþÿÿ‰$èx]ÿÿ¸   ‰D$‰|$‰4$èSUÿÿ…À„G  1É‰L$‹…Ðþÿÿ‹•¬þÿÿ‹@ôÐ‰$èL[ÿÿö…tÿÿÿ„·   ‹³àÿÿÿ‹•Ìþÿÿ‹¨þÿÿF‰…ÐþÿÿF ‰‹ƒèÿÿÿƒÀ‰…Øþÿÿ‰$è˜Tÿÿ…ÿÿÿ‰$è:Wÿÿ‹ƒÈÿÿÿƒÀ‰…Øþÿÿ…ôþÿÿ‰$èSÿÿ‹µÀþÿÿ‹•Äþÿÿ‹Èþÿÿ‰µÐþÿÿ‹³Øÿÿÿ‹‹•Ìþÿÿ‰ŒÐþÿÿ1ÉF‰Ôþÿÿ‰‰$è+Zÿÿ‹¥¸þÿÿeô[^_]Ãt& Eìº   ‰T$‰D$‹¬þÿÿ‰$èª\ÿÿf}ìBMtf‹…¨þÿÿ‰$èäSÿÿ…À…ÿÿÿ‹…Ðþÿÿ‹•¬þÿÿ‹HôÊ‹B‰$ƒÈ‰D$è)Zÿÿéåþÿÿ‹…Ðþÿÿ‹•¬þÿÿ‹pôò‹B‰$ƒÈ‰D$èZÿÿé°þÿÿ¾
   1ÿ1É‰|$‰t$‰L$‹µ¬þÿÿ‰4$è)\ÿÿEèº   ‰T$‰D$‰4$è\ÿÿ1À‰D$¸   ‰D$1À‰D$‰4$èô[ÿÿ¿   ‰|$‹E‰4$ƒÀ‰D$èÉ[ÿÿ¹   ‰L$‹E‰4$ƒÀ‰D$è®[ÿÿ¸   1Ò‰D$1À‰T$‰D$‰4$è¡[ÿÿ¸   ‰D$‹E‰4$ƒÀ‰D$èv[ÿÿ‹E‹P…ÒŽÆþÿÿ‰Á‹@…ÀŽ¹þÿÿ¯Ð‹AÆEï ¯Ð‰ÐÁøÁè‹‹IÁú‰Î)Æ9òƒÙ   Ð)Á‹E)H1À‰D$1À‹Mè‰D$‰L$‹µ¬þÿÿ‰4$è[ÿÿ‹E‹HöÁ„Â   ‹P‰ÐÁøÁèÐÁø¯È1ÀöÁ‰¼þÿÿt‰Èt& ¼'    @¨uû‹½¼þÿÿ)ø‹U‹r…ö~O…Àé  1ÿ1ö¶    ¼'    ‹¼þÿÿ‰ð‰L$‹U‹
È‰D$‹¬þÿÿ‰$èsZÿÿ‹…¼þÿÿGÆ‹E9xÊ‹uÆFé´ýÿÿEï‰D$‰Ð)ð‰D$‰L$‹U‰$è¸Qÿÿéÿÿÿ‹‹@‰4$‰T$)Ð‰D$èZÿÿë¸‹“àÿÿÿ‰Æ‹ÌþÿÿB‰…ÐþÿÿB ‰‹ƒèÿÿÿƒÀ‰…Øþÿÿ‹…¨þÿÿ‰$è1Qÿÿ…ÿÿÿ‰$èÓSÿÿ‹ƒÈÿÿÿƒÀ‰…Øþÿÿ…ôþÿÿ‰$è6Pÿÿ‹Àþÿÿ‰Ðþÿÿ‹•Äþÿÿ1ÿ‹Èþÿÿ‹‹“Øÿÿÿ‰½Ôþÿÿ‰ŒÐþÿÿ‹ÌþÿÿB‰‰$èÄVÿÿ‹¥¸þÿÿ‰4$è&Yÿÿ‰Æ‹ƒèÿÿÿ‹•¨þÿÿƒÀ‰…Øþÿÿ‰$è—Pÿÿ…ÿÿÿ‰$è9Sÿÿéaÿÿÿ‰Æ‹ƒÈÿÿÿƒÀ‰…Øþÿÿ…ôþÿÿ‰$è•Oÿÿ‹•Àþÿÿ‹Äþÿÿ‰•Ðþÿÿ‹•Èþÿÿ‹‹‹Øÿÿÿ‰”Ðþÿÿ‹•Ìþÿÿ1À‰…ÔþÿÿA‰‰$è#VÿÿéZÿÿÿ‰Æéôþÿÿ‰Æé
ÿÿÿ™1ÿ1ö‰…°þÿÿ‰•´þÿÿ‹¼þÿÿ‰ð‰L$‹U‹
È‰D$‹¬þÿÿ‰$èŠXÿÿ¸   ‰D$‹•´þÿÿ‹…°þÿÿ‰T$‰D$‹•¬þÿÿ‰$èoXÿÿ‹…¼þÿÿG‹MÆ9yŸéçýÿÿ‰ÆéÎþÿÿ‰Æ‹ƒÈÿÿÿƒÀ‰…Øþÿÿ…ôþÿÿ‰$è£Nÿÿ‹…Àþÿÿ‰…Ðþÿÿéhþÿÿv ¼'    U‰åSƒì‹EèFZÿÿÃÕa  ‰D$‹E‰$èDWÿÿƒÄ[]ÃU‰åWVSƒì,‹UèZÿÿÃ£a  …Ò„ê   ‹E‹p‹@)ð9Â†ß   ‹E‰ñ‹0)ñ‰È÷Ð9Â‰Mð‡Í  9ÊEð‡®  ‹ È9Á‰EÜ‡“  ¶    ¿    ‹UÜ‰$è}Tÿÿ‹M‹u‰Ç‹‰<$)Æ‰t$47‰D$èîPÿÿ‹M‹U…É¶t‰ò´&    ˆBIuú‹E‹MÆ‰uà‹q‹M)Î‰t$‹E‰D$‹Uà‰$è©Pÿÿ‹M‹…Àt‰$èXÿÿ‹E‹U‹MÜ‰8‹Eàð‰B‰BƒÄ,[^_]Ã‹E‰÷¶ ˆEÛ‹E)Ç9úr`¶EÛ)ú‰T$‰4$‰D$èÝUÿÿ‹U‹E‹J)øÈ‰B‰|$‹M‰$‰L$è*Pÿÿ‹Ex;ut ‹M‰Êë‰Ñ¶EÛB9ÖˆuóƒÄ,[^_]Ã‰ð)Ð‰T$‰4$‰D$èïOÿÿ‹U‰ñ‹EB)Á‰È‹})ø‰D$)Æ‹U‰4$‰T$èÆOÿÿ‹M‹uñ9M„6ÿÿÿ‹E‰Î‰Âët& ‰Â¶MÛˆB9ÆuñƒÄ,[^_]ÃÇEÜÿÿÿÿémþÿÿE‹ È9Á‰EÜ†[þÿÿëàƒ(Îÿÿ‰$èTÿÿèfôÿÿÁ_  U‰å‹E‹‘pÿÿÿƒÂ‰]Ã‰öU1É‰åSƒì‹E‰L$èÀWÿÿÃO_  ‹‹Rô‰$‰T$1Ò‰T$èRÿÿƒÄ[]Ã´&    èôÿÿÁ_  U‰å‹E‹‘pÿÿÿƒÂ‰]Ã‰öU‰åƒì‰]ôègWÿÿÃö^  ‰uø‰}ü‹}³ŒÎÿÿ‰4$èQÿÿ‰t$‰<$‰D$èNÿÿ‹E‰<$‰D$è¾Rÿÿ‰4$èöPÿÿ‰t$³lÎÿÿ‰<$‰D$è`Nÿÿ‰4$èØPÿÿ‰t$‰<$‰D$èHNÿÿ‹]ô‹uø‹}ü‰ì]Ã‰öU‰åƒì‰]øè×VÿÿÃf^  ‰uü³xÎÿÿ‰4$è“Pÿÿ‰t$‰D$‹E‰$è Nÿÿ‹]ø‹uü‰ì]Ã´&    ¼'    U‰åƒì‰]øè‡VÿÿÃ^  ‰uü³€Îÿÿ‰4$èCPÿÿ‰t$‰D$‹E‰$è°Mÿÿ‹]ø‹uü‰ì]Ã´&    ¼'    U‰åƒì8‰}ü‹}‰]ô‰uøè.VÿÿÃ½]  ‹ÆEß ‹@ô…ÀtUPÿ9Ð‚Œ   ¸ÿÿÿÿuì‰D$‰T$‰|$‰4$è7OÿÿƒìÎÿÿÆEß‰D$‰4$èÑKÿÿ‹uì‰Eàƒî;³pÿÿÿuW‹Eà…Àt!‹E‰|$‰$èêMÿÿ‹E‹]ô‹uø‹}ü‰ì]Â ‹‹@ô‰|$H‰D$1À‰D$‹E‰$èÉNÿÿëÍƒÏÿÿ‰$èyRÿÿ¸ÿÿÿÿ‰D$F‰$èµRÿÿ…À‘Eó‰D$‰4$è‚Hÿÿë€€}ß ‰Çu‰<$è°Rÿÿ‰Çëô‹uìƒî;³pÿÿÿtæ¸ÿÿÿÿ‰D$F‰$èjRÿÿ…ÀÎEò‰D$‰4$è7Hÿÿë½¶    ¿    U‰åƒì8‰}ü‹}‰]ô‰uøèÞTÿÿÃm\  ‹ÆEß ‹Pô…ÒtfBÿ9Âroºÿÿÿÿuì‰T$‰D$‰|$‰4$èëMÿÿƒìÎÿÿÆEß‰D$‰4$è…Jÿÿ‹uì‰Eàƒî;³pÿÿÿu:‹Uà…Òu‹‹@ôHë‹t& ¼'    ‹@ô‹]ô‹uø‹}ü‰ì]ÃƒÏÿÿ‰$èJQÿÿ¹ÿÿÿÿF‰L$‰$è†Qÿÿ…À®Eó‰D$‰4$èSGÿÿë€}ß ‰Çu‰<$èQÿÿ‰Çëô‹uìƒî;³pÿÿÿtæ¸ÿÿÿÿ‰D$F‰$è;Qÿÿ…ÀÎEò‰D$‰4$èGÿÿë½´&    ¼'    U‰åWVSì  ¶EuÜè­SÿÿÃ<[  ‰4$ˆ…ÿÿÿ‹E‰D$èÅKÿÿ‹U‰t$‰$èGÿÿ‹uÜƒî;³pÿÿÿ…}  •Pÿÿÿ‰•ÿÿÿ‰$è Hÿÿ‹“˜ÿÿÿÇEÀ    ÇEÄ    ÆEÈ ‹z‹RÇEÌ    ÇEÐ    Gô‰…ÿÿÿ‹Gô‰•ÿÿÿÇEÔ    ÇEØ    ‰”$ÿÿÿ‹ƒÜÿÿÿPƒÀ ‰•$ÿÿÿ‹“Àÿÿÿ‰…PÿÿÿB1Ò‰…(ÿÿÿ1À‰…0ÿÿÿ1À‰…4ÿÿÿ1À‰…8ÿÿÿ1À‰…<ÿÿÿ1À‰…@ÿÿÿ…Dÿÿÿ‰•,ÿÿÿ‰…ÿÿÿ‰$èOÿÿ‹“Ìÿÿÿ‹³pÿÿÿB‰…(ÿÿÿ¸   ƒÆ‰…Hÿÿÿ…(ÿÿÿ‰D$‹…ÿÿÿ‰µLÿÿÿ‰$è‘Pÿÿ¶…ÿÿÿ•$ÿÿÿ‰•ÿÿÿ‰$‰D$èâEÿÿ‹•<ÿÿÿ‰uà…Ò„ð   ‹4ÿÿÿ9Ê†œ   ¶…"ÿÿÿ}à‰T$ˆD$Eñ‰D$‹…8ÿÿÿ‰$èœIÿÿuè‰Eè‰t$‰<$èÊOÿÿ‰4$èBMÿÿ‹E‰|$‰$ècMÿÿ‹uàƒî9³pÿÿÿ…š   ³ìÎÿÿ‰4$èƒKÿÿ‹U‰t$‰$‰D$èðHÿÿ‹…ÿÿÿ‰$è"KÿÿÄ  [^_]ÃEð¶•#ÿÿÿ‰D$‹…8ÿÿÿ}à‰L$ˆT$‰$è Iÿÿuä‰Eä‰t$‰<$è.Oÿÿ‰4$è¦Lÿÿé_ÿÿÿ…Lÿÿÿ}à‰D$‰<$èOÿÿéEÿÿÿF¹ÿÿÿÿ‰L$‰$ècNÿÿ…ÀJÿÿÿEó‰D$‰4$è,Dÿÿé6ÿÿÿ¹ÿÿÿÿF‰L$‰$è3Nÿÿ…ÀgýÿÿEï‰D$‰4$èüCÿÿéSýÿÿ‰…ÿÿÿ‰<$èLÿÿ‹•ÿÿÿ‰$è;Jÿÿ‹…ÿÿÿ‰$èNÿÿëÔëô‰…ÿÿÿ‰4$èëKÿÿëÈ‰…ÿÿÿëÈ‹“Ìÿÿÿ‰…ÿÿÿB‰…(ÿÿÿ…Lÿÿÿ‰$è¾Kÿÿ‹“ÀÿÿÿB‰…(ÿÿÿ‹…ÿÿÿ‰$èqDÿÿ‹•ÿÿÿ‰½$ÿÿÿ‹‹•ÿÿÿ‰”$ÿÿÿ‹ƒlÿÿÿ‹•ÿÿÿƒÀ‰‰$èKÿÿ‹…ÿÿÿ‰$èoMÿÿ‹uÜ‰…ÿÿÿƒî;³pÿÿÿ„<ÿÿÿ¿ÿÿÿÿF‰|$‰$è#Mÿÿ…À ÿÿÿEî‰D$‰4$èìBÿÿéÿÿÿ‰…ÿÿÿéNÿÿÿt& éþþÿÿ‹uà‰…ÿÿÿƒî9³pÿÿÿ„ÒþÿÿF¿ÿÿÿÿ‰|$‰$èÇLÿÿ…À¶þÿÿEò‰D$‰4$èBÿÿé¢þÿÿéÍþÿÿ´&    ¼'    U‰åWVSè:OÿÿÃÉV  ƒì,‹Euì‰4$‰D$èRGÿÿ‹E‰t$‰$è“Bÿÿ‹uìƒî;³pÿÿÿ…b  ³ŒÎÿÿ‰4$èÃHÿÿ‹U‰t$‰$‰D$è0Fÿÿ‹ƒpÿÿÿ‹UƒÀ‰Eè‹‹@ô‰D$Eè‰EÜ‰$èšHÿÿ‹U‹ƒè‹…Ò„À  ÇEà    éŠ   t& ƒø	„O  ƒø
t& „g  ƒø„n  ‹Bü…À‰>  ‹Eè‹<2ƒè‹0F;pw‹@…À~‹UÜ‰t$‰$è'Hÿÿ‹Eè‹PôÇ@ü    ‰pô‰<Ç°    t& ‹UÿEà‹‹Uàƒè9†*  ‹@…ÀyX‹E‹uà‹Áæ‹2ƒøtRŽZÿÿÿƒø"t{t& Pƒø…dÿÿÿ³ÄÎÿÿ‰4$èŸGÿÿ´&    ‰D$‹EÜ‰t$‰$èEÿÿë‹‹E‰$è(Gÿÿë›³¬Îÿÿ‰4$èhGÿÿëÎƒø/„’   ƒø\‰ö…	ÿÿÿ³ÜÎÿÿ‰4$èDGÿÿëª³ˆÎÿÿ‰4$è4Gÿÿ¶    ¿    ‹UÜ‰D$‰t$‰$è•Dÿÿéÿÿÿ³ÐÎÿÿ‰4$èGÿÿëØ‹U‰$è¥Fÿÿ‹E‹é­þÿÿ³¸Îÿÿ‰4$èÝFÿÿë³³ Îÿÿ‰4$èÍFÿÿë£³”Îÿÿ‰4$è½Fÿÿé ÿÿÿ‹EÜ‹U‰D$‰$èfHÿÿ³èÎÿÿ‰4$è˜Fÿÿ‰t$‰D$‹E‰$èDÿÿ‹uèƒî9³pÿÿÿu?ƒÄ,[^_]Ã¹ÿÿÿÿF‰L$‰$èÛIÿÿ…À‚ýÿÿEñ‰D$‰4$è¤?ÿÿénýÿÿ´&    Fºÿÿÿÿ‰T$‰$è¤Iÿÿ…À©Eó‰D$‰4$èq?ÿÿë˜‹}ì‰Æƒï;»pÿÿÿu‰4$è—Iÿÿ‰Æëô¸ÿÿÿÿ‰D$G‰$è_Iÿÿ…ÀÜEð‰D$‰<$è,?ÿÿëË‹}è‰Æƒï9»pÿÿÿt»G¹ÿÿÿÿ‰L$‰$è&Iÿÿ…À£Eò‰D$‰<$èó>ÿÿë’‰$è)Iÿÿëõ´&    ¼'    U‰åƒì8‹U‰]ô‰uø‰}ü‹èŒKÿÿÃS  ‹@ôPÿ9Ð‚¡   ¸ÿÿÿÿ‰D$‹Euì‰T$‰4$‰D$èœDÿÿƒìÎÿÿ‰D$‰4$è:Aÿÿ‹uì‰Çƒî;³pÿÿÿun…ÿu.‹U‹‹@ôPÿ9Ð‚‡   )Ð1É‰D$‹E‰L$‰T$‰$èxEÿÿ³ôÎÿÿ‰4$èÊDÿÿ‹U‰t$‰$‰D$è7Bÿÿ‹]ô‹uø‹}ü‰ì]ÃƒÏÿÿ‰$èÌGÿÿ¸ÿÿÿÿ‰D$F‰$èHÿÿ…ÀvÿÿÿEò‰D$‰4$èÑ=ÿÿébÿÿÿƒ!Ïÿÿ‰$èŽGÿÿ‹uì‰Çƒî;³pÿÿÿu‰<$èæGÿÿ‰$èÞGÿÿ¸ÿÿÿÿ‰D$F‰$èªGÿÿ…ÀØEó‰D$‰4$èw=ÿÿëÇ¶    ¿    U‰åƒì8‹U‰]ô‰uø‰}ü‹èJÿÿÃ«Q  ‹@ôPÿ9Ð‚¡   ¸ÿÿÿÿ‰D$‹Euì‰T$‰4$‰D$è,CÿÿƒìÎÿÿ‰D$‰4$èÊ?ÿÿ‹uì‰Çƒî;³pÿÿÿun…ÿu.‹U‹‹@ôPÿ9Ð‚‡   )Ð1É‰D$‹E‰L$‰T$‰$èDÿÿ³ Ïÿÿ‰4$èZCÿÿ‹U‰t$‰$‰D$èÇ@ÿÿ‹]ô‹uø‹}ü‰ì]ÃƒÏÿÿ‰$è\Fÿÿ¸ÿÿÿÿ‰D$F‰$è˜Fÿÿ…ÀvÿÿÿEò‰D$‰4$èa<ÿÿébÿÿÿƒ!Ïÿÿ‰$èFÿÿ‹uì‰Çƒî;³pÿÿÿu‰<$èvFÿÿ‰$ènFÿÿ¸ÿÿÿÿ‰D$F‰$è:Fÿÿ…ÀØEó‰D$‰4$è<ÿÿëÇ¶    ¿    U‰åWVSèºHÿÿÃIP  ìü   ‹EuÜ‰4$‰D$èÏ@ÿÿ‹E‰t$‰$è<ÿÿ‹uÜƒî;³pÿÿÿ…˜  …Pÿÿÿ1ö‰…ÿÿÿ‰$è=ÿÿ‹“˜ÿÿÿ1É‰µ,ÿÿÿÇEÀ    ÇEÄ    ‹z‹RÆEÈ ÇEÌ    Gô‰…ÿÿÿ‹Gô‰•ÿÿÿÇEÐ    ÇEÔ    ‰”$ÿÿÿ‹ƒÜÿÿÿÇEØ    ‰0ÿÿÿPƒÀ ‰•$ÿÿÿ‹“Àÿÿÿ‰…PÿÿÿB1Ò‰…(ÿÿÿ1À‰…8ÿÿÿ1À‰…<ÿÿÿ1À‰…@ÿÿÿ…Dÿÿÿ‰•4ÿÿÿ‰…ÿÿÿ‰$èDÿÿ‹“Ìÿÿÿ‹³pÿÿÿB‰…(ÿÿÿ¸   ƒÆ‰…Hÿÿÿ…(ÿÿÿ‰D$‹…ÿÿÿ‰µLÿÿÿ‰$è›Eÿÿ‹E½$ÿÿÿ‰<$‰D$è>ÿÿ‹•<ÿÿÿ‰uà…Ò„  ‹4ÿÿÿ9Ê†¯   ¶…"ÿÿÿ‰T$ˆD$Eð‰D$‹…8ÿÿÿ‰$è³>ÿÿUàuè‰Eè‰t$‰•ÿÿÿ‰$èØDÿÿ‹uèƒî9³pÿÿÿ…0  ‹…ÿÿÿ‹U‰D$‰$èaBÿÿ‹uàƒî9³pÿÿÿ…©   ³ìÎÿÿ‰4$è@ÿÿ‰t$‰D$‹E‰$èî=ÿÿ‰<$è&@ÿÿÄü   [^_]Ãv Eï¶•#ÿÿÿ‰D$‹…8ÿÿÿ‰L$ˆT$‰$Eà‰…ÿÿÿèû=ÿÿ‹•ÿÿÿuä‰Eä‰t$‰$è#Dÿÿ‰4$è›AÿÿéPÿÿÿ…Lÿÿÿ‰D$Eà‰…ÿÿÿ‰$èûCÿÿé0ÿÿÿFºÿÿÿÿ‰T$‰$èRCÿÿ…À;ÿÿÿEó‰D$‰4$è9ÿÿé'ÿÿÿ¿ÿÿÿÿF‰|$‰$è"Cÿÿ…ÀLýÿÿEí‰D$‰4$èë8ÿÿé8ýÿÿ¸ÿÿÿÿ‰D$F‰$èòBÿÿ…À´þÿÿEñ‰D$‰4$è»8ÿÿé þÿÿ‰…ÿÿÿ‹•ÿÿÿ‰$èÒ@ÿÿ‰<$èú>ÿÿ‹•ÿÿÿ‰$èÌBÿÿ‰…ÿÿÿëâ‹µLÿÿÿ‹“Ìÿÿÿ‰…ÿÿÿƒî9³pÿÿÿB‰…(ÿÿÿ…>  ‹“ÀÿÿÿB‰…(ÿÿÿ‹…ÿÿÿ‰$è=9ÿÿ‹•ÿÿÿ‰½$ÿÿÿ‹‹•ÿÿÿ‰”$ÿÿÿ‹ƒlÿÿÿ‹•ÿÿÿƒÀ‰‰$èÙ?ÿÿ‹…ÿÿÿ‰$è;Bÿÿé@ÿÿÿ‹uà‰…ÿÿÿƒî9³pÿÿÿ„<ÿÿÿF¹ÿÿÿÿ‰L$‰$èêAÿÿ…À ÿÿÿEò‰D$‰4$è³7ÿÿéÿÿÿ‹uÜ‰…ÿÿÿƒî;³pÿÿÿ„üþÿÿ¸ÿÿÿÿ‰D$F‰$è¢Aÿÿ…ÀàþÿÿEì‰D$‰4$èk7ÿÿéÌþÿÿé^ÿÿÿ‰ö¼'    éÇþÿÿt& ¼'    é@ÿÿÿ‰…ÿÿÿEà‰…ÿÿÿéþÿÿ‰…ÿÿÿ‰4$èQ?ÿÿélþÿÿ¸ÿÿÿÿ‰D$F‰$è(Aÿÿ…À¦þÿÿEî‰D$‰4$èñ6ÿÿé’þÿÿ‰…ÿÿÿé‡þÿÿ´&    U‰åWVSì  ‹EuÔèŽCÿÿÃK  ‹U‰4$‰…øþÿÿ‹E‰•üþÿÿ‰D$è;ÿÿ‹U‰t$‰$èÞ6ÿÿ‹uÔƒî;³pÿÿÿ…Î  …Hÿÿÿ1ö‰…ÿÿÿ‰$èÖ7ÿÿ‹“˜ÿÿÿ1É‰µ(ÿÿÿÇE¸    ÇE¼    ‹z‹RÆEÀ ÇEÄ    Gô‰… ÿÿÿ‹Gô‰•ÿÿÿÇEÈ    ÇEÌ    ‰”ÿÿÿ‹ƒÜÿÿÿÇEÐ    ‰,ÿÿÿPƒÀ ‰•ÿÿÿ‹“Àÿÿÿ‰…HÿÿÿB1Ò‰… ÿÿÿ1À‰…$ÿÿÿ1À‰…4ÿÿÿ1À‰…8ÿÿÿ…<ÿÿÿ‰•0ÿÿÿ‰…ôþÿÿ‰$èê>ÿÿ‹“Ìÿÿÿ‹³pÿÿÿB‰… ÿÿÿ¸   ƒÆ‰…@ÿÿÿ… ÿÿÿ‰D$‹…ÿÿÿ‰µDÿÿÿ‰$èi@ÿÿ‹•üþÿÿ‹…øþÿÿ‰T$•ÿÿÿ‰D$‰•ðþÿÿ‰$è7ÿÿ‹•4ÿÿÿ‰uØ…Ò„8  ‹,ÿÿÿ9Ê†ª   ¶…ÿÿÿ‰T$ˆD$Eè‰D$‹…0ÿÿÿ‰$èn9ÿÿ‰Eà}ØEà‰D$‰<$è™?ÿÿ‹uàƒî9³pÿÿÿ…Y  ‹E‰|$‰$è(=ÿÿ‹uØƒî9³pÿÿÿ…Ø   ³ìÎÿÿ‰4$èH;ÿÿ‹U‰t$‰$‰D$èµ8ÿÿ‹…ðþÿÿ‰$èç:ÿÿÄ  [^_]Ãt& Eç¶•ÿÿÿ‰D$‹…0ÿÿÿ‰L$ˆT$‰$èÄ8ÿÿ‰EÜ}ØEÜ‰D$‰<$èï>ÿÿ‹uÜƒî9³pÿÿÿ„Vÿÿÿ¸ÿÿÿÿ‰D$F‰$è9>ÿÿ…À:ÿÿÿEë‰D$‰4$è4ÿÿé&ÿÿÿt& …Dÿÿÿ}Ø‰D$‰<$è“>ÿÿéÿÿÿFºÿÿÿÿ‰T$‰$èê=ÿÿ…ÀÿÿÿEï‰D$‰4$è³3ÿÿéøþÿÿ¸ÿÿÿÿ‰D$F‰$èº=ÿÿ…ÀýÿÿEæ‰D$‰4$èƒ3ÿÿéýÿÿ¸ÿÿÿÿ‰D$F‰$èŠ=ÿÿ…À‹þÿÿEé‰D$‰4$èS3ÿÿéwþÿÿ‰Æ‹}Øƒï9»pÿÿÿu‹•ðþÿÿ‰$è9ÿÿ‰4$èh=ÿÿ‰ÆëæGºÿÿÿÿ‰T$‰$è0=ÿÿ…ÀÎEí‰D$‰<$èý2ÿÿë½ë«‰$è1=ÿÿëÇ‹“Ìÿÿÿ‰ÆB‰… ÿÿÿ…Dÿÿÿ‰$è ;ÿÿ‹“ÀÿÿÿB‰… ÿÿÿ‹…ôþÿÿ‰$è³3ÿÿ‹• ÿÿÿ‰½ÿÿÿ‹‹•ÿÿÿ‰”ÿÿÿ‹ƒlÿÿÿ‹•ÿÿÿƒÀ‰‰$èO:ÿÿ‰4$è·<ÿÿé$ÿÿÿ‰Æëž‹}Ô‰Æƒï;»pÿÿÿ„*ÿÿÿ¸ÿÿÿÿ‰D$G‰$èf<ÿÿ…ÀÿÿÿEå‰D$‰<$è/2ÿÿéúþÿÿ‹}à‰Æƒï9»pÿÿÿ„Êþÿÿ¸ÿÿÿÿ‰D$G‰$è"<ÿÿ…À®þÿÿEê‰D$‰<$èë1ÿÿéšþÿÿ‹}Ü‰Æƒï9»pÿÿÿ„†þÿÿ¹ÿÿÿÿG‰L$‰$èÞ;ÿÿ…ÀjþÿÿEì‰D$‰<$è§1ÿÿéVþÿÿ‹}Ø‰Æƒï9»pÿÿÿ„PþÿÿG¹ÿÿÿÿ‰L$‰$èš;ÿÿ…À4þÿÿEî‰D$‰<$èc1ÿÿé þÿÿéþÿÿéþÿÿt& ¼'    éõýÿÿt& ¼'    éþÿÿv ¼'    U‰åWVSèê=ÿÿÃyE  ìü   ‹EuÜ‰4$‰D$èÿ5ÿÿ‹E‰t$‰$è@1ÿÿ‹uÜƒî;³pÿÿÿ…y  …Pÿÿÿ‰…ÿÿÿ‰$è:2ÿÿ‹“˜ÿÿÿ1ÉÇEÀ    ÇEÄ    ÆEÈ ‹z‹RÇEÌ    ÇEÐ    Gô‰…ÿÿÿ‹Gô‰•ÿÿÿÇEÔ    ÇEØ    ‰”$ÿÿÿ‹ƒÜÿÿÿ‰,ÿÿÿPƒÀ ‰•$ÿÿÿ‹“Àÿÿÿ‰…PÿÿÿB1Ò‰…(ÿÿÿ1À‰…4ÿÿÿ1À‰…8ÿÿÿ1À‰…<ÿÿÿ1À‰…@ÿÿÿ…Dÿÿÿ‰•0ÿÿÿ‰…ÿÿÿ‰$èL9ÿÿ‹“Ìÿÿÿ‹³pÿÿÿB‰…(ÿÿÿ¸   ƒÆ‰…Hÿÿÿ…(ÿÿÿ‰D$‹…ÿÿÿ‰µLÿÿÿ‰$èË:ÿÿ‹E•$ÿÿÿ‰•ÿÿÿ‰$‰D$è :ÿÿ‹•<ÿÿÿ‰uà…Ò„ð   ‹4ÿÿÿ9Ê†œ   ¶…"ÿÿÿ‰T$ˆD$Eð‰D$‹…8ÿÿÿ‰$èÝ3ÿÿuè}à‰Eè‰t$‰<$è:ÿÿ‰4$è€7ÿÿ‹E‰|$‰$è¡7ÿÿ‹uàƒî9³pÿÿÿ…š   ³ìÎÿÿ‰4$èÁ5ÿÿ‹U‰t$‰$‰D$è.3ÿÿ‹…ÿÿÿ‰$è`5ÿÿÄü   [^_]ÃEï¶•#ÿÿÿ‰D$‹…8ÿÿÿ‰L$ˆT$‰$èA3ÿÿuä}à‰Eä‰t$‰<$èl9ÿÿ‰4$èä6ÿÿé_ÿÿÿ…Lÿÿÿ}à‰D$‰<$èJ9ÿÿéEÿÿÿFºÿÿÿÿ‰T$‰$è¡8ÿÿ…ÀJÿÿÿEó‰D$‰4$èj.ÿÿé6ÿÿÿ¿ÿÿÿÿF‰|$‰$èq8ÿÿ…ÀkýÿÿEí‰D$‰4$è:.ÿÿéWýÿÿ‰…ÿÿÿ‹uàƒî9³pÿÿÿu ‹•ÿÿÿ‰$ès4ÿÿ‹…ÿÿÿ‰$èE8ÿÿëÎëôF¿ÿÿÿÿ‰|$‰$è8ÿÿ…ÀÈEñ‰D$‰4$èÚ-ÿÿë·‰…ÿÿÿ‰4$èú5ÿÿë™‰…ÿÿÿëŸ‹µLÿÿÿ‹“Ìÿÿÿ‰…ÿÿÿƒî9³pÿÿÿB‰…(ÿÿÿ…   ‹“ÀÿÿÿB‰…(ÿÿÿ‹…ÿÿÿ‰$èy.ÿÿ‹•ÿÿÿ‰½$ÿÿÿ‹‹•ÿÿÿ‰”$ÿÿÿ‹ƒlÿÿÿ‹•ÿÿÿƒÀ‰‰$è5ÿÿ‹…ÿÿÿ‰$èw7ÿÿ‹uÜ‰…ÿÿÿƒî;³pÿÿÿu>‹•ÿÿÿ‰$èU7ÿÿ¸ÿÿÿÿ‰D$F‰$è!7ÿÿ…ÀcÿÿÿEî‰D$‰4$èê,ÿÿéOÿÿÿ¸ÿÿÿÿ‰D$F‰$èñ6ÿÿ…ÀªEì‰D$‰4$è¾,ÿÿë™‰…ÿÿÿéÿÿÿéŸþÿÿ‹uà‰…ÿÿÿƒî9³pÿÿÿ„sþÿÿF¹ÿÿÿÿ‰L$‰$è 6ÿÿ…ÀWþÿÿEò‰D$‰4$èi,ÿÿéCþÿÿé—þÿÿ´&    é‹þÿÿv ¼'    U‰åWVSè
9ÿÿÃ™@  ìü   ‹EuÜ‰4$‰D$è1ÿÿ‹E‰t$‰$è`,ÿÿ‹uÜƒî;³pÿÿÿ…y  …Pÿÿÿ‰…ÿÿÿ‰$èZ-ÿÿ‹“˜ÿÿÿ1ÉÇEÀ    ÇEÄ    ÆEÈ ‹z‹RÇEÌ    ÇEÐ    Gô‰…ÿÿÿ‹Gô‰•ÿÿÿÇEÔ    ÇEØ    ‰”$ÿÿÿ‹ƒÜÿÿÿ‰,ÿÿÿPƒÀ ‰•$ÿÿÿ‹“Àÿÿÿ‰…PÿÿÿB1Ò‰…(ÿÿÿ1À‰…4ÿÿÿ1À‰…8ÿÿÿ1À‰…<ÿÿÿ1À‰…@ÿÿÿ…Dÿÿÿ‰•0ÿÿÿ‰…ÿÿÿ‰$èl4ÿÿ‹“Ìÿÿÿ‹³pÿÿÿB‰…(ÿÿÿ¸   ƒÆ‰…Hÿÿÿ…(ÿÿÿ‰D$‹…ÿÿÿ‰µLÿÿÿ‰$èë5ÿÿ‹E•$ÿÿÿ‰•ÿÿÿ‰$‰D$è@2ÿÿ‹•<ÿÿÿ‰uà…Ò„ð   ‹4ÿÿÿ9Ê†œ   ¶…"ÿÿÿ‰T$ˆD$Eð‰D$‹…8ÿÿÿ‰$èý.ÿÿuè}à‰Eè‰t$‰<$è(5ÿÿ‰4$è 2ÿÿ‹E‰|$‰$èÁ2ÿÿ‹uàƒî9³pÿÿÿ…š   ³ìÎÿÿ‰4$èá0ÿÿ‹U‰t$‰$‰D$èN.ÿÿ‹…ÿÿÿ‰$è€0ÿÿÄü   [^_]ÃEï¶•#ÿÿÿ‰D$‹…8ÿÿÿ‰L$ˆT$‰$èa.ÿÿuä}à‰Eä‰t$‰<$èŒ4ÿÿ‰4$è2ÿÿé_ÿÿÿ…Lÿÿÿ}à‰D$‰<$èj4ÿÿéEÿÿÿFºÿÿÿÿ‰T$‰$èÁ3ÿÿ…ÀJÿÿÿEó‰D$‰4$èŠ)ÿÿé6ÿÿÿ¿ÿÿÿÿF‰|$‰$è‘3ÿÿ…ÀkýÿÿEí‰D$‰4$èZ)ÿÿéWýÿÿ‰…ÿÿÿ‹uàƒî9³pÿÿÿu ‹•ÿÿÿ‰$è“/ÿÿ‹…ÿÿÿ‰$èe3ÿÿëÎëôF¿ÿÿÿÿ‰|$‰$è-3ÿÿ…ÀÈEñ‰D$‰4$èú(ÿÿë·‰…ÿÿÿ‰4$è1ÿÿë™‰…ÿÿÿëŸ‹µLÿÿÿ‹“Ìÿÿÿ‰…ÿÿÿƒî9³pÿÿÿB‰…(ÿÿÿ…   ‹“ÀÿÿÿB‰…(ÿÿÿ‹…ÿÿÿ‰$è™)ÿÿ‹•ÿÿÿ‰½$ÿÿÿ‹‹•ÿÿÿ‰”$ÿÿÿ‹ƒlÿÿÿ‹•ÿÿÿƒÀ‰‰$è50ÿÿ‹…ÿÿÿ‰$è—2ÿÿ‹uÜ‰…ÿÿÿƒî;³pÿÿÿu>‹•ÿÿÿ‰$èu2ÿÿ¸ÿÿÿÿ‰D$F‰$èA2ÿÿ…ÀcÿÿÿEî‰D$‰4$è
(ÿÿéOÿÿÿ¸ÿÿÿÿ‰D$F‰$è2ÿÿ…ÀªEì‰D$‰4$èÞ'ÿÿë™‰…ÿÿÿéÿÿÿéŸþÿÿ‹uà‰…ÿÿÿƒî9³pÿÿÿ„sþÿÿF¹ÿÿÿÿ‰L$‰$èÀ1ÿÿ…ÀWþÿÿEò‰D$‰4$è‰'ÿÿéCþÿÿé—þÿÿ´&    é‹þÿÿU‰åƒì(‹E‰]ôè$4ÿÿÃ³;  9E‰uø‰}ütp‹u…ötw‰Æ‹E1ÿ‰|$)Æ‹EÁþ‰4$‰D$è€)ÿÿƒþP‰Ç‰Uðt3‹E‰t$‰$‰D$èà*ÿÿ‹EðÇG    ‰7Ç°    ‹]ô‹uø‹}ü‰ì]Ã‹U‹‰GëÖ‹ƒpÿÿÿƒÀ‰EðëÛƒ@Îÿÿ‰$èª2ÿÿL$ƒäðÿqü1ÀU‰åQY]aüÃv ¼'    U‰åSƒìèY3ÿÿÃè:  HtƒÄ[]Ãt& úÿÿ  uíƒ  ‰$èÂ&ÿÿ‹ƒÿÿÿ‰D$1À‰D$ƒ|Åÿÿ‰$èT)ÿÿƒÄ[]Ã¶    Uºÿÿ  ‰å¸   ]ëU‰åSèì2ÿÿÃ{:  ƒìƒ  ‰$èÈ1ÿÿZ[]ÃU‰åVSè»2ÿÿÃJ:  ƒhþÿÿpü‹@üƒøÿtëƒîÿÐ‹ƒøÿuô[^]ÃU‰åSƒìè    [Ã:  èÔ1ÿÿY[ÉÃ-*-*-medium-*-*--13-*-*-*-*-*-*-*   -*-*-medium-*-*--12-*-*-*-*-*-*-*   -*-*-medium-*-*--14-*-*-*-*-*-*-* -*-*-*-*-*--13-*-*-*-*-*-*-* -*-*-*-*-*--12-*-*-*-*-*-*-* -*-*-*-*-*--14-*-*-*-*-*-*-* -*-*-*-*-*--*-*-*-*-*-*-*-* vector::_M_insert_aux vector::_M_range_check sans-serif family size dpi charset scalable antialias hintstyle _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_MENU _NET_WM_WINDOW_TYPE_DIALOG _NET_WM_WINDOW_TYPE_DOCK _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR _NET_WM_STATE_SKIP_PAGER _NET_WM_STATE_ABOVE _NET_WM_STATE_STICKY _NET_WM_ICON CARDINAL focusWindow clientWindow inputStyle filterEvents _XEMBED_INFO _NET_SYSTEM_TRAY_S%i _NET_SYSTEM_TRAY_OPCODE LANG Could not open display.
 WM_PROTOCOLS WM_DELETE_WINDOW Couldn't open input method queryInputStyle   
       E   S   C   A   P   E       F   1       F   2       F   3       F   4       F   5       F   6       F   7       F   8       F   9       F   1   0       F   1   1       F   1   2       P   R   I   N   T       S   C   R   O   L   L   O   C   K       P   A   U   S   E       B   R   E   A   K       B   A   C   K   S   P   A   C   E       T   A   B       R   E   T   U   R   N       C   A   P   S   L   O   C   K       S   H   I   F   T   L   O   C   K       D   E   L   E   T   E       L   E   F   T       R   I   G   H   T       H   O   M   E       E   N   D       K   E   Y       t   y   p   e       v   a   l   u   e       C   H   A   R       R   E   P   A   I   N   T       n   a   m   e       i   d       x       y       w   i   d   t   h       h   e   i   g   h   t       K   E   Y   B   O   A   R   D       s   h   i   f   t       c   t   r   l       a   l   t       c   o   m   m   a   n   d       M   O   U   S   E       M   O   V   E       a   c   t   i   o   n       b   u   t   t   o   n       B   U   T   T   O   N   _   D   O   W   N       B   U   T   T   O   N   _   U   P       N   O   T   I   F   Y       A   C   T   I   V   A   T   E       C   O   N   T   E   X   T   M   E   N   U       W   I   N   D   O   W       I   N   A   C   T   I   V   E       O   N   C   L   O   S   E       vector::_M_fill_insert  basic_string::_S_construct NULL not valid   :           [       {       \   "       \   /       \   b       \   f       \   n       \   r       \   t       \   \       "   ,       ]   ,       }   ,       basic_string::substr basic_string::erase    ;P  i   D)ÿÿt  ´)ÿÿ”  ä)ÿÿ´  ô)ÿÿÔ  *ÿÿô  $*ÿÿ  +ÿÿ4  4+ÿÿT  ´+ÿÿx  Ô-ÿÿì  Ä/ÿÿ8  t0ÿÿ  1ÿÿD  d1ÿÿ”  ä1ÿÿà  d2ÿÿ  Ô2ÿÿT  „3ÿÿx  ä3ÿÿ   44ÿÿÀ  ´4ÿÿà  d5ÿÿ  Ô6ÿÿ,  ”7ÿÿT  d8ÿÿ|  49ÿÿ¤  ô9ÿÿÌ  $:ÿÿì  D;ÿÿ	  „;ÿÿ0	  Ä;ÿÿP	  4<ÿÿx	  Ä<ÿÿ 	  ¤=ÿÿÄ	  ”>ÿÿè	  4?ÿÿ
  ”?ÿÿ8
  D@ÿÿ\
  ´@ÿÿ„
  ä@ÿÿ¤
  AÿÿÄ
  „Aÿÿì
  ôAÿÿ  DFÿÿ\  ¤Fÿÿ¤  GÿÿÈ  ´Gÿÿì  TIÿÿ  ÄPÿÿ4  TSÿÿX  äSÿÿ€  äVÿÿ¤  XÿÿÌ  ´Xÿÿð  Yÿÿ  „Yÿÿ<  d^ÿÿ`  t_ÿÿˆ  4aÿÿ¬  ÔmÿÿÐ  4³ÿÿœ  Ô³ÿÿÄ  t´ÿÿ  Ôµÿÿ\  Ô¶ÿÿ€  T¹ÿÿ¨  TºÿÿÌ  Ô¼ÿÿô  4¾ÿÿl  ”¿ÿÿ¸  ôÀÿÿ,  TÂÿÿ8  Äÿÿ€  ´Åÿÿô  äÅÿÿ  ôÅÿÿ4  ÆÿÿT  Æÿÿt  „Æÿÿ”  ´Æÿÿ´  „ÇÿÿØ  ÄÇÿÿø  Èÿÿ<  äÎÿÿ`  Ïÿÿ  DÑÿÿ€  dÑÿÿ   ¤ÑÿÿÀ  ÄÑÿÿ  TÒÿÿ0  ¤ÒÿÿT  ôÒÿÿx  DÔÿÿ   tÕÿÿÈ  ôÙÿÿì  ”Ýÿÿ  ßÿÿ4  tàÿÿX  ”åÿÿ|  Dëÿÿ   $ðÿÿÄ  õÿÿà  ´õÿÿ  Ôõÿÿ,  DöÿÿH         zPLR |›‰0  ˆ     $   È%ÿÿg       A…BA†   D   &ÿÿ(       A…BAƒ   d   (&ÿÿ       A…B      „   &ÿÿ       A…D      ¤   &ÿÿ       A…B      Ä   &ÿÿ       L…B      ä   È&ÿÿ$       A…BAƒ      Ø&ÿÿu       A…BEƒ†      (  4'ÿÿ      A…BCƒ†‡$   L  ®ÿÿ        A…BLƒ‡T†   $   t  ¯ÿÿ        A…BLƒ‡T†       œ  à(ÿÿÈ      A…BFƒO† $   À  \¯ÿÿU      A…BF‡I†ƒ       è  „*ÿÿ¨     A…BFƒ†‡      p°ÿÿÿ       A…BFƒ†‡$   0  L±ÿÿ€      A…BF‡F†Fƒ      X  ¤³ÿÿÿ       A…BFƒ†‡$   |  €´ÿÿ€      A…BF‡F†Fƒ  $   ¤  Ø¶ÿÿU      A…BF‡I†ƒ   $   Ì  P*ÿÿŒ   I  A…BFƒQ†‡   $   ô  ¸*ÿÿ\       A…BFƒQ†F‡  $     À·ÿÿU      A…BF‡I†ƒ       D  È*ÿÿ|       A…BBƒ†  $   h  Ô¸ÿÿU      A…BF‡I†ƒ         ü*ÿÿ~       A…BBƒ†  $   ´  X+ÿÿf       A…BFƒQ‡†   $   Ü  À¹ÿÿU      A…BF‡I†ƒ         x+ÿÿ£       A…BBƒ‡  $   (  ,ÿÿV       A…BFƒS‡†      P  <,ÿÿD       A…BAƒ   p  l,ÿÿ~       A…BAƒ$     Ì,ÿÿ¤       A…BIƒT†‡       ¸  T-ÿÿm      A…BCƒ†‡$   Ü   .ÿÿ·       A…BFƒT†‡   $     8/ÿÿÊ       A…BFƒT†‡   $   ,  à/ÿÿÊ       A…BFƒT†‡   $   T  ˆ0ÿÿ·       A…BFƒT†‡      |   1ÿÿ-       A…BAƒ    œ  01ÿÿ      A…BCƒ†‡   À  ,2ÿÿ>       A…BAƒ   à  L2ÿÿ>       A…BAƒ$      l2ÿÿn       A…BFƒT†‡   $   (  ´2ÿÿƒ       A…BFƒT†‡       P  3ÿÿØ       A…BCƒ†‡    t  Ø3ÿÿê       A…BCƒ†‡$   ˜  ¤4ÿÿ“       A…BFƒT‡†   $   À  5ÿÿW       A…BFƒS‡†       è  T5ÿÿ®       A…BCƒ†‡$     à5ÿÿf       A…BFƒQ‡†      4  (6ÿÿ,       A…BAƒ   T  86ÿÿ,       A…BAƒ$   t  H6ÿÿf       A…BFƒQ‡†   $   œ  6ÿÿf       A…BFƒQ‡†       Ä  Ø6ÿÿJ      A…BCƒ†‡    è  ·ÿÿ«      A…BFƒ†‡      à:ÿÿ[     A…BCƒ†‡    0  |¸ÿÿ«      A…BFƒ†‡    T  ø:ÿÿ[   Ý  A…BCƒ†‡    x  4;ÿÿª       A…BCƒ†‡    œ  À;ÿÿ—  ¡  A…BCƒ†‡    À  <=ÿÿg    A…BCƒ†‡    ä  ˆDÿÿŒ  ‚  A…DFƒ†‡$   	  ôFÿÿ   r  A…BFƒN†F‡      0	  \Gÿÿõ  Z  A…BFƒ†‡$   T	  8Jÿÿ  K  A…BA‡Gƒ†       |	  0Kÿÿ©   5  A…BEƒ†  $    	  ¼KÿÿS       A…BFƒT‡†       È	  ôKÿÿe   û  A…BFƒN†     ì	  @Lÿÿß  ã  A…BCƒ†‡$   
  üPÿÿ  ë  A…BFƒT‡†       8
  äQÿÿ³  á  A…BCƒ†‡    \
  €Sÿÿ•  ç  A…BCƒ†‡    €
  ü_ÿÿRE  •  A…BCƒ†‡   ¤
  ¸·ÿÿ!       A…B      Ä
  È·ÿÿ       A…B      ä
  ¸·ÿÿ       A…B        ¨·ÿÿ       A…B      $  ˜·ÿÿZ       A…BDƒ   D  è·ÿÿ$       A…BAƒ    d  ø·ÿÿÄ       A…BF†G‡    ˆ  ¤¸ÿÿ5       A…B      ¨  Ä¸ÿÿ5       A…B       È  ô¿ÿÿ%      A…BFƒ†‡    ì  À¸ÿÿÖ  #  A…DIƒ†‡     |¿ÿÿ*       A…BDƒ   0  ¼Áÿÿ       L…B      P  ¼Áÿÿ8       A…DDƒ   p  ÜÁÿÿ       L…B   $     åÿÿ®       A…BIƒT‡†   $   ¸  ´Áÿÿ       A…BFƒQ‡†       à  ÂÿÿB       A…BFƒN†       HÂÿÿB       A…BFƒN† $   (  tÂÿÿC  2  A…BF‡I†ƒ   $   P  œÃÿÿ"  /  A…BF‡I†ƒ       x  ¤Äÿÿr  !  A…BIƒ†‡    œ   Éÿÿ’  }  A…BCƒ†‡    À  |Ìÿÿc  “  A…BO‡†ƒ    ä  ÈÍÿÿc  ’  A…BO‡†ƒ      Ïÿÿ  ‘  A…BCƒ†‡    ,  Ôÿÿ¥  í  A…BIƒ†‡    P  œÙÿÿÕ  a  A…BCƒ†‡    t  XÞÿÿÕ  Ä  A…BCƒ†‡       zPR |›ö!  ˆ$       ¨ãÿÿ    D 	FC…BA„    H    ãÿÿZ    A…BDƒ   d   ôãÿÿ$    A…BAƒ    ÿÿ
y £  ÿÿ!  .z s  ÿÿ7S V  ÿÿ7S V  ÿÿ  /Êþ ’  ÿÿ1Ó  ìÒÙ ˜Ï  ÿÿ/N  Òó ‡  ÿÿ#  2h |  ÿÿb  ±‰Ü ‹ê  ÿÿ.  q6û ê*  ÿÿ$&  ^ ¤  ÿÿC] `  ÿÿ(‹  ¹°	 È˜	 ®µ  ÷´	 «	  Å	°	 ÿÿ "  w¼ ¢Ô Ï  åÿ ÿÿ&]  ‹„ šì ¬  Ëˆ ÿ  ™„ ÿÿÍN  üÍ €µ œÖ µš ïµ ‹	Ð ¡	µ •
  È
Á ä
Å ú
ý °Í Ì‰ âÕ Ý´  ù ÐÖ €… °Ð ø™ ¯‰ òž ¢Å Ë  ï² ˜´ À  èÍ ¬Ô ùÓ ¹Ø  Æ ø¥ Øþ ÿÿõGÌ  ª”S Ì˜S âÚS ¶	™T Ì	‘U ‰
ÛU Ÿ
âU Ü
¬V ò
³V ¯ÇW ÅýV ‚ÎW ˜ÕW »%  ìŸX ÓH  ²ôX ÔûX êÅY ¾ÑZ Ô‡Z   ·ØZ ÍõZ ¿[ ¦Æ[ Ý\ õ—\ ¬«] Äá\ ç%  ˜²] ¸„^ éH  È‘_ ê¨` €‰^ Ìá^ î˜_ „ß_ Øµ` î¼` «ƒa ÁŠa þÑa ”Øa ½  ÛŸb ñ¦b ”%  Åíb åÕd 5  ÛS ýºc “d ßÐR ÔR —åd ëÆR ÿi ¾öj Ô…o ‘“p §Ìo Ð  îÅh „šp §%  Øáp ø¸q © 5  õ Œg —!“g ­!Úg ù!™h ›"Åf ±"—„ …#Õh ›#Üh Ø#Œ} î#“} «$µ| Á$Å| ê$  ˆ%Ú} ž%á} Á%%  ò%¨~ ’&õ~ ×&H  ¶'²f Ø'¬e î'óe º(År Ü(Ìr ò(œt Æ)µr Ü)õt ÿ)%  °*¼u Ð*•v ú*5  Æ+ïl è+šk þ+¨l Ê,…k ì,Œk ‚-£i Ö-õn ì-Õs .%  À.Åƒ à.¾R Š/f  “0¨ µ0ñ€ Ñ0µ £1¯ Å1¶ á1ý ¯2ñ‰ Å2úˆ è2  “3¿… ³3Œ† Ý3  5êˆ ¿5‚Š Û5ã„ ­6™‡ Ï6“† ë6Ú† ¹7¥v Ï7µv ò7  8¬w ½8•x é8  Ÿ9…x Á9šx Ý9áx ¯:•z Ñ:œz í:ãz »;…n Ñ;ák ô;  Ÿ<«m ¿<øm ï<¦m ¢=˜S Õ=ö‚ ˆ>”S »>µn î>šn ¡?¥n Ô?’„ ¤@î  êBÕq ŸCôX ÒCûX …D“g µD…r åDåq •Eõq ÅEÅq õEá^ ¥F˜_ ÕF•| …G¥| µGµ| åGŒ} •HÚ} ÅHÕh õH™h ¥IÅf ÕIŒg …J¬e µJÅh åJºc •Kµh ÏK¥r ‚Lµr ²LÅr âLÌr ’M“s ÂMµs õM˜s ¯N¥s ßNŒ| OÆR ¿OÐR ïOÔR ŸPS ÏPõn ÿPån ¯Q×n ßQÒn Ršk ¹R  öRŒU ºS T üS¥T ÑT6  ·U™T ˆVÛU ÙV¬V £WÇW ûWÎW ÅXïX ¡YêZ çYåZ ­ZÑZ ›[ØZ ì[¿[ ½\\ ‡]«] Ø]ÿ] À^‘_ ÷^¨` ¾_ž` `£` â`µ` °aƒa þaÑa ÌbŸb “cÀd àcÞ„ £dÅd ‹e•r Òe²f •f¹f ëf¥h ¹g§h üg h ‚iýj Þi…k ¥j•k ÕjŒk Àkïl ‡lÅn Îl•n …m…n Ñmým «oöj òo“p Àp®q ‡q³q òrÅs ûsãt Âtèt ›u‰v âuŽv Ûv¥v ‹wùw Òwþw Àx y ƒy¥y Äyšx ôy…x Âz‡| …{Ò{ ±{•z æ{œz ë|• ¹}¥ ‡~ú~ Î~… ðµƒ  €ñ€ Ð€¨ ‡¯ Üì‚ Ÿ‚ñ‚ Ë‚¶ ”ƒºƒ ëƒ‰Š ½„åˆ ž…ÅŠ å…¾R ¹†™‡ ü† ‡ ´‡êˆ ä‡“† ”ˆ‚Š Äˆõˆ  ‰ø‰ Ð‰ñ‰ ¤ŠÊŠ ÿÿGsŸ ‰¡ ›A‚ ©¦ ˆŸ ¹FÎ	 ¢‚ Ê‚Î	 
´ ý
  ªš Ù0Î	 ÿÿ!Lø ‰6  Êø Þˆ ƒ  ©ˆ ÿÿHf× ½ç â  ˆç ÿÿ|.  =É c  âÇ ¿ Ç« Ù¯ á« ð¥ £¿ ±  ã õ¯ ý — °í à­ ¦  å‘ Ä  ðœ Ì¿ ÿÿ6!  0‰ c  ‰ŠÎ ¸‡ ï¡ œ  ´ í‡ Š  ÿÿG  Yš ›A  ë² •%  É² ÿÿG  Yš ›A  ë² •%  É² ÿÿ|$  3Ê [  Øô íì °µ	 ËÉ	 ò‚ ¥ì ­  èý €É	 ˆý ¨Â Á—	 ñ¥	 ¡Â ç  ø  ©ì ñ’	 ë	Œ
 ÿÿ“6  Eê m  êé ’° Õá ê®	 ‹¶
 ¾° Ì  ÿŠ ”ò	 ºÝ ðŠ ‰° ¹ß éú
 «  Ãç â  ƒæ Ü  	ß Ñ	… •
ÿ
 Ù
• ÿÿ‚$  3ñ Y  Øè óà ¶£ ËÐ Ó£ âü •à £  Òó çÐ ïó ‰ó ¢Ä	 Ò¥ ž  ¶à ì'  ¢ì Ò÷ £	É	 ÿÿ‚$  3ñ Y  Øè óà ¶£ ËÐ Ó£ âü •à £  Òó çÐ ïó ‰ó ¢Ä	 Ò¥ ž  ¶à ì'  ¢ì Ò÷ £	É	 ÿÿÿÿ`W  0î  ð     ÿÿÿÿ           Ê     Ö     â     î     ý               °C     t    Ô      ð     	  
   l           „X    (           ˆ=     (<     `        þÿÿo¨;  ÿÿÿo   ðÿÿo\9  úÿÿo                                                                                   ¤[                                                                                                             üV         ÞC  îC  þC  D  D  .D  >D  ND  ^D  nD  ~D  ŽD  žD  ®D  ¾D  ÎD  ÞD  îD  þD  E  E  .E  >E  NE  ^E  nE  ~E  ŽE  žE  ®E  ¾E  ÎE  ÞE  îE  þE  F  F  .F  >F  NF  ^F  nF  ~F  ŽF  žF  ®F  ¾F  ÎF  ÞF  îF  þF  G  G  .G  >G  NG  ^G  nG  ~G  ŽG  žG  ®G  ¾G  ÎG  ÞG  îG  þG  H  H  .H  >H  NH  ^H  nH  ~H  ŽH  žH  ®H  ¾H  ÎH  ÞH  îH  þH  I  I  .I  >I  NI  ^I  nI  ~I  ŽI  žI  ®I  ¾I  ÎI  ÞI  îI  þI  J  J  .J  >J  NJ  ^J  nJ  ~J  ŽJ  žJ  ®J  ¾J  ÎJ  ÞJ  îJ  þJ  K  K  .K  >K  NK  ^K  nK  ~K  ŽK  žK  ®K  ¾K  ÎK  ÞK  îK  þK  L  L  .L  >L  NL  ^L  nL  ~L  ŽL  žL  ®L  ¾L  ÎL  ÞL  îL  þL  M  M  .M  >M  NM  ^M  nM  ~M  ŽM  žM  ®M  ¾M  ÎM  ÞM  îM  þM  N  N  .N  >N  NN  ^N  nN  ~N  ŽN  žN  ®N  ¾N  ÎN  ÞN  îN  þN  O  O  .O  >O  NO  ^O  nO  ~O  ŽO  žO  ®O  ¾O  ÎO  ÞO  îO  þO  P  P  ¤[ ôV      GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  .shstrtab .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame .gcc_except_table .ctors .dtors .jcr .dynamic .got .got.plt .data .bss .comment                                                   Ô   Ô   ¼                        	  	  `                       ð  ð  l                 !   ÿÿÿo   \9  \9  L               .   þÿÿo   ¨;  ¨;  €                =   	      (<  (<  `               F   	      ˆ=  ˆ=  (     	         O         °C  °C                    J         ÈC  ÈC  `                U         0P  0P  DÎ                 [         t t                   a           )	                 i         ¼' ¼' T                 w         + +                           $: $: ¸                 “         ÜV ÜF                   š         ðV ðF                   ¡         øV øF                   ¦         üV üF ð                ¯         ìW ìG ˜                 ´         „X „H                  ½         ¤[ ¤K                   Ã         À[ °K X                  È              °K 
                               ºM Ñ                                                                                                                                                                                                                                                                                                                                                                                      dwaggdi_x86_64.so                                                                                   0000644 0001750 0001750 00000261570 15030763277 013360  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ELF          >    ðh      @       ø\         @ 8  @                                 oP     oP                  pP     pP     pP     ¨	      è                   °P     °P     °P     à      à             Påtd   h0     h0     h0     Œ      Œ             Qåtd                                                    '      #  Ú       ­   ©      Ï   Ì              $            Q       S       Û   “       n   ô     ž   G               ¾   ð   ›   +                 á   Æ                       æ   Ë   b   [       s       œ   é   »                       —   ¶   &              ä   %    x       O           ý       ÷                     ¯   P   ç   š           ò         '       ¿   i                   ù   t               í   v       ;       ^   ƒ             Ö               1       ß   ã               Å     =   û   3   µ   ñ       p   Õ       ²              Ž   ‹   Ò       
         !   ê   Î       0   ®   î   r                 Ô             ö   Ä   Í   |   ‚   ¢   º      ˜   ë   ø               ¨   Ø   :          •   ¡         ¹       ó   Ñ   C   ú       u       °                  ª   Ù       ÿ   Ó   ¸         "                     ·   Ü   2                    ‰   ´         Ý     !  z   ¥           D   -   L   &   ï         ¬       à           Œ   ü   	           J   Ê       ×                                                                                                                                                                                                                                                                                                      5                               (   7       N   $                               R                   >                          M       H   c   Z       j   g   _   "       m       I   a       d                  E   {                  A   W           K       8                             T           <                                  @           4       ~           \   ™   U       *               V       l           Š               –   ?   6       †   q   B   ¤   ³   f      ’   h   k   Á   Â       `   ±   §          Ã   ]   €       }           ”                       ,          ¼   Ç                   o   F   w       y       Ÿ           Ð   ˆ       ½   «   â   „               è   ‡   %              õ       £   e   þ   )       X               .   9   …       å       À               È       Þ   ì           #   ¦   Y                                         /   É   ‘                                 x\                   
 ðh                    È&                   Ø&                   h0                   ø3                   ÌC                   pP                   ˜P                   ¨P                    Z                    Z             ±             Â       ½                    ÷   
              ¿             U       G   
 @j      #       Q  " 
 °     È      Þ             |       s                    !   
 Ð«      *       i   
  ›      U       Ö             !       Ì    HZ            ú                     Ê   
  ‚      Å      M   
  ²      î       	   
 0               " 
  $     ý      S                      d   
 À     1       ²   
 Ài      y       §             –      1             ø      Æ             0      «
  " 
 ð     ¢       2             !       E             ƒ                    B       D                    ¼              Å      “   
  j      -      ú             «       é             E       Û             Ü       ˜             Í       ª    hZ               
 Ð¬                                 j    ÀZ     €       q    @[            {             a           
 ð            Ž   
 €›             K             þ       Ø    `[     0       ý             –       <             	      C             |       Ô   
 `œ      Â       ¯             V       Í    ˜Z            E             Z       c
             ’       ½   
  œ      ^       ø                   É   
 ðŒ             ó             õ       c     Z                         Õ      ú  " 
 p     e      K   
 pš      Š       9   
  ¬      _       ÷	  " 
 @     «       y             &       M             !      þ   
 w      Ü      f             2       ÿ             ­       œ             ø      ³                    Â    pZ            ª   
 Ðk            #   
       £       6             t       Í             ›       ·   
 Ð³      “      b             r       Ù             x       '   
 Ð°      €       2  " 
       ³       –   
 pŒ      Y                            @             v                   -      …                    Ù             †       È	                   î             Ž       ð             b      Ý             ñ       ‰   
 $            é                    6             ø      •	    XZ            3   
 @q      Ä      ­   
 @¤      8                            ý    P[            ò   
 À¶            ä   
 `ª      @      Ú             	           x\              m             ª       X    ˆZ            ?    
 i             ¿   
             t             œ       ¡   
 Ð¨      ¼       Ö             
       p   
 àº      ì       ç             d       v                     ³             C       Ã                     Õ   
 €Ë      ²@                   Š       þ   " 
 À‹      ©       *                    O             Í       ×	             "       à    @Z            Ž             f       ³             -      G	    ð[            Ë   
 Ð            ê             #                    3      	             a                   w       „             
       š   
  ž      5      ›   
 `”      Å      ç     [     0       É   
 P­      í       ¤    
  i             §                                 ñ      $	    PZ            æ   
 À˜      ¡      ¢   
  ›      ^       ç	                    C             	       x   
 0      Ï       ø             )       ¨             ´       Ã   
 àl      U      \             	                    Æ      À   
 €¤      ,       Å                    †   
 ¨      ¼       ú             û      ®                    y   
  ’      X       ‚                     £             M       	    xZ            F             €       2             ®       —             7       y	   
 Ð      g       &   
 ¦      E      °             ¡                          >	    \               
 €®      N      ™             …      I                    ®   
 ÐŒ                          Q       ó             `      &   ñÿZ             Å   
  &               
 @¥      Æ       	             I                           ï   
 @®      :       `             (      W   
  ‘      r       0   
 ð†      Å      Ë             ­      ð             Q          "           Í       §             Å       h             ø        " 
 À     v      %  " 
 ð     e      “             ò       [   
 `¬      p       E             €       Ü   
 €’      U                     „       ò  " 
 `     _      •             
       º             €       Õ   
 @ª             i
             [      „             t            È&             /    €Z            Ÿ   
 ½      å      Œ             D       ‘             1       ½  " 
 €     e                   ª       ä             º                          «	   
 @Ž      ¢      z   
 `›             à   
               V             Ÿ       ê    
 °i             ý                     r                     ˜             ­      Ç   
 u      5      H             Þ       2                   *                    â   
 Pv      5      ¿             _      q             
       ©             ª       „                       ñÿZ                          	       æ   
 °¤      „       2   ñÿX\             U             º         " 
 `     e      d             Ö       j             ’                    "       .             Þ       s             P       \   
 °     \      î  " 
 à     È      ®             P       P   
 `§      ¬          " 
 @     ¢       e   
 pj      #       V	    Ð[            L                    Í             €                    i                    ¾       „             õ       w                   ƒ   
 ð²             ˆ   
 ð“      p       ¹   
 0˜      …       j             Z       _             Ú       ¼   
 ©      ¬       :   
 P±      «       ÷   
 €     1           Z            -	    0\                               ì             l       €  " 
 ð     v      +                       î                                       ¨   
 €³      P       w                   ,                        `Z            d   
 p|      ¥      À             y       —             ¯       £   
                 
 €“      g       ˆ   
 Ð»      »      2                    î             ž         
  «      *                    ó      7	                    a	             |       V             ±                             •             Þ        __gmon_start__ _init _fini __cxa_finalize _Jv_RegisterClasses _ZN10JSONWriterC2Ev _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE __gxx_personality_v0 _ZN10JSONWriter5clearEv _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm _ZN10JSONWriterC1Ev _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructIPwEES4_T_S5_RKS1_St20forward_iterator_tag _ZNSbIwSt11char_traitsIwESaIwEE4_Rep9_S_createEmmRKS1_ wmemcpy _ZSt19__throw_logic_errorPKc _ZN10JSONWriter7addPropESbIwSt11char_traitsIwESaIwEE wcslen _ZNSbIwSt11char_traitsIwESaIwEE6appendEPKwm _ZNSbIwSt11char_traitsIwESaIwEE6appendERKS2_ _ZN10JSONWriter10beginArrayEv _ZN10JSONWriter11beginObjectEv _Unwind_Resume _ZN10JSONWriter9getStringEv _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm _ZNKSbIwSt11char_traitsIwESaIwEE7compareEPKw _ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_ _ZSt20__throw_out_of_rangePKc _ZN9__gnu_cxx18__exchange_and_addEPVii _ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroyERKS1_ _ZN10JSONWriter6lengthEv _ZN10JSONWriter10addBooleanESbIwSt11char_traitsIwESaIwEEb _ZNSt8ios_baseC2Ev _ZTTSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZTVSt15basic_streambufIwSt11char_traitsIwEE _ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE _ZNSt6localeC1Ev _ZTVSt15basic_stringbufIwSt11char_traitsIwESaIwEE _ZNSt9basic_iosIwSt11char_traitsIwEE4initEPSt15basic_streambufIwS1_E _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEb _ZNSbIwSt11char_traitsIwESaIwEE6assignERKS2_ _ZNSbIwSt11char_traitsIwESaIwEED1Ev _ZNSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev _ZNSt6localeD1Ev _ZTVSt9basic_iosIwSt11char_traitsIwEE _ZNSt8ios_baseD2Ev _ZN10JSONWriter9addStringESbIwSt11char_traitsIwESaIwEES3_ _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv _ZN10JSONWriter8endArrayEv _ZN10JSONWriter9endObjectEv _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEm _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEm _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEy _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEi _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEi _ZN10JSONWriter9addNumberESbIwSt11char_traitsIwESaIwEEl _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEl _Z17ChooseBetterStylemm DWAGDIGetScreenSize screen DWAGDISetClipboardText DWAGDIGetClipboardText _Z17detectMouseButtonP7_XEvent DWAGDIEndLoop exitloop imageList _ZdlPv fontList notifyIconList windowList _ZNSt8ios_base4InitD1Ev DWAGDIGetMousePosition root display XQueryPointer _Z13loadFontType0P7DWAFontPw XCreateFontSet XFreeStringList XFontsOfFontSet _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_ _Znwm _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13insert_uniqueERKS2_ _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE9_M_insertEPSt18_Rb_tree_node_baseSC_RKS4_ _ZNSt8ios_base4InitC1Ev __cxa_atexit jonextevent charToFontHash hashToFont _ZNSt6vectorIjSaIjEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPjS1_EERKj memmove _ZSt20__throw_length_errorPKc _ZSt17__throw_bad_allocv _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13insert_uniqueESt17_Rb_tree_iteratorIS2_ERKS2_ _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE13insert_uniqueERKS4_ _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE13insert_uniqueESt17_Rb_tree_iteratorIS4_ERKS4_ _ZNSt6vectorIP8DWAImageSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z8addImagei _ZN11ImageReaderC1Ev DWAGDILoadImage _ZN11ImageReader4loadEPKw _ZN11ImageReader8getWidthEv _ZN11ImageReader9getHeightEv _Z12getImageByIDi _ZNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E _ZNSt8_Rb_treeIjSt4pairIKjP8_XftFontESt10_Select1stIS4_ESt4lessIjESaIS4_EE8_M_eraseEPSt13_Rb_tree_nodeIS4_E _ZNSt6vectorIP7DWAFontSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z7addFonti _ZNSt6vectorIP13DWANotifyIconSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z13addNotifyIconi _Z17findXtfFontbyCharji FcPatternCreate FcPatternAddString FcPatternAddInteger FcPatternAddDouble FcCharSetCreate FcCharSetAddChar FcPatternAddCharSet FcPatternAddBool FcConfigSubstitute FcDefaultSubstitute FcFontMatch FcPatternHash XftFontOpenPattern FcCharSetDestroy FcPatternDestroy DWAGDIUnloadImage _ZN11ImageReader7destroyEv _Z16addImageToBufferPwRPm _ZN11ImageReader8isLoadedEv malloc _ZN11ImageReader8getPixelEjjPhS0_S0_S0_ DWAGDIUnloadFont XFreeFontSet _Z11getFontByIDi DWAGDIGetTextHeight _Z13getFontAscentii _Z21getNotifyIconByHandlem _Z17getNotifyIconByIDi _Z20removeWindowByHandlem XftDrawDestroy colormap visual XftColorFree _ZNSt6vectorIP9DWAWindowSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_ _Z9addWindowimP4_XGCP4_XIC memset DWAGDINewWindow screenid XWhitePixel XCreateWindow wm_delete_window XSetWMProtocols XCreateGC wcpcpy wcstok free realloc XInternAtom XChangeProperty im XCreateIC XGetICValues XSetICFocus XSelectInput XGetWindowAttributes XCreatePixmap XAllocSizeHints XSetWMNormalHints XFree _Z13getWindowByIDi DWAGDIClearClipRectangle XSetClipMask DWAGDIClipRectangle XSetClipRectangles DWAGDIRepaint XSendEvent DWAGDIDrawImage XSetForeground XDrawPoint DWAGDIFillRectangle XSetLineAttributes XFillRectangle DWAGDIFillEllipse XFillArc DWAGDIDrawEllipse XDrawArc DWAGDIDrawLine XDrawLine DWAGDIPenWidth DWAGDIPenColor XftColorAllocValue DWAGDIToFront XRaiseWindow DWAGDIHide XUnmapWindow DWAGDIShow XMapWindow XMoveWindow DWAGDISetTitle XwcTextListToTextProperty XSetWMName DWAGDIDestroyWindow XDestroyIC XDestroyWindow XFreePixmap DWAGDIPosSizeWindow XMoveResizeWindow _Z17getWindowByHandlem _Z10drawNotifyP13DWANotifyIconii DWAGDIGetImageSize _Z11wcharToUcs4PKw DWAGDIGetTextWidth XftTextExtents32 XwcTextEscapement _Z13loadFontType1P7DWAFontPw XftInit DWAGDILoadFont DWAGDIDrawText XftDrawString32 XwcDrawString XftDrawCreate DWAGDICreateNotifyIcon XMatchVisualInfo XCreateColormap sprintf XGetSelectionOwner _ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_ DWAGDIDestroyNotifyIcon DWAGDIUpdateNotifyIcon _Z13detectKeyTypeP9DWAWindowP7_XEvent XwcLookupString DWAGDILoop g_callEventMessage getenv setlocale XOpenDisplay wm_protocols XSetLocaleModifiers XScreenOfDisplay XOpenIM XGetIMValues best_style x11_fd in_fds tv select XPending XNextEvent XCopyArea XRefreshKeyboardMapping XSetInputFocus XftFontClose XFreeColormap XCloseDisplay stderr fwrite _ZN11ImageReaderC2Ev _ZNSt6vectorIhSaIhEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPhS1_EEmRKh _ZN11ImageReader7readBMPEPKw wcstombs _ZTTSt14basic_ifstreamIcSt11char_traitsIcEE _ZTVSt14basic_ifstreamIcSt11char_traitsIcEE _ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev _ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E _ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode _ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate _ZTVSt13basic_filebufIcSt11char_traitsIcEE _ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv _ZNSt12__basic_fileIcED1Ev _ZTVSt15basic_streambufIcSt11char_traitsIcEE _ZTVSt9basic_iosIcSt11char_traitsIcEE _ZNSi4readEPcl _ZNSi5seekgElSt12_Ios_Seekdir main libX11.so.6 libXpm.so.4 libXft.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 _edata __bss_start _end GCC_3.0 CXXABI_1.3 GLIBCXX_3.4 GLIBC_2.2.5                                                                                                                                                                                                                                                                                                                                                                                                                   P&y   7        î     0   Ó¯k   ?     t)’   J                 ui	   V      xP            ‘      €P            `     ˆP            p&     àR             Z      Z             Z     Z             P     R                   ˜R                    R                   ¨R        /           °R        2           ¸R        3           ÀR        8           ÈR        >           ÐR        E           ØR        R           èR        g           ðR        i           øR        l            S        m           S        s           S        „           S        ‡            S                   (S        •           0S        ¦           8S        ¨           @S        ©           HS        °           PS        Â           XS        É           `S        Î           hS        Ó           pS        á           xS        ö           €S        ù           ˆS        ý           S        ÿ           ˜S                   S                  ¨S                  °S                  ¸S        %          Z                  ØS                   àS                   èS                   ðS                   øS                    T                   T                   T                   T                    T                   (T                   0T                   8T                    @T        !           HT        "           PT        #           XT        $           `T        %           hT        &           pT        '           xT        (           €T        )           ˆT        *           T        +           ˜T        ,            T        -           ¨T        .           °T        1           ¸T        4           ÀT        5           ÈT        6           ÐT        7           ØT        9           àT        :           èT        ;           ðT        <           øT        =            U        ?           U        @           U        A           U        B            U        D           (U        F           0U        G           8U        J           @U        K           HU        L           PU        N           XU        O           `U        P           hU        Q           pU        T           xU        U           €U        V           ˆU        X           U        Y           ˜U        [            U        \           ¨U        ]           °U        ^           ¸U        _           ÀU        `           ÈU        a           ÐU        b           ØU        c           àU        d           èU        e           ðU        f           øU        h            V        j           V        k           V        p           V        r            V        u           (V        v           0V        x           8V        z           @V        {           HV        |           PV        }           XV                   `V        €           hV                   pV        ‚           xV        ƒ           €V        …           ˆV        †           V        ˆ           ˜V        ‰            V        Š           ¨V        ‹           °V        Œ           ¸V                   ÀV                   ÈV        ’           ÐV        “           ØV        ”           àV        –           èV        —           ðV        ˜           øV        ™            W        š           W        ›           W        œ           W                    W        ž           (W        Ÿ           0W        ¡           8W        £           @W        ¤           HW        §           PW        ª           XW        «           `W        ®           hW        ¯           pW        ±           xW        ²           €W        ³           ˆW        µ           W        ¶           ˜W        º            W        »           ¨W        ¼           °W        ½           ¸W        ¾           ÀW        À           ÈW        Á           ÐW        Â           ØW        Ã           àW        Ä           èW        Å           ðW        Æ           øW        Ç            X        Ê           X        Ë           X        Ì           X        Í            X        Ð           (X        Ñ           0X        Ô           8X        Õ           @X        Ö           HX        ×           PX        Ø           XX        Ù           `X        Ú           hX        Û           pX        Þ           xX        ß           €X        à           ˆX        â           X        ä           ˜X        å            X        æ           ¨X        ç           °X        è           ¸X        é           ÀX        ê           ÈX        ë           ÐX        í           ØX        ð           àX        ñ           èX        ò           ðX        ó           øX        ô            Y        õ           Y        ÷           Y        ø           Y        û            Y        ü           (Y        þ           0Y                   8Y                  @Y                  HY                  PY                  XY                  `Y                  hY                  pY        
          xY                  €Y                  ˆY                  Y                  ˜Y                   Y                  ¨Y                  °Y                  ¸Y                  ÀY                  ÈY                  ÐY                  ØY        !          àY        "          èY        #          ðY        $          øY        &          Hƒìèo  èÚ  èÊ  HƒÄÃÿ52÷ ÿ%4÷ ÿ%2÷ h    éàÿÿÿÿ%*÷ h   éÐÿÿÿÿ%"÷ h   éÀÿÿÿÿ%÷ h   é°ÿÿÿÿ%÷ h   é ÿÿÿÿ%
÷ h   éÿÿÿÿ%÷ h   é€ÿÿÿÿ%úö h   épÿÿÿÿ%òö h   é`ÿÿÿÿ%êö h	   éPÿÿÿÿ%âö h
   é@ÿÿÿÿ%Úö h   é0ÿÿÿÿ%Òö h   é ÿÿÿÿ%Êö h   éÿÿÿÿ%Âö h   é ÿÿÿÿ%ºö h   éðþÿÿÿ%²ö h   éàþÿÿÿ%ªö h   éÐþÿÿÿ%¢ö h   éÀþÿÿÿ%šö h   é°þÿÿÿ%’ö h   é þÿÿÿ%Šö h   éþÿÿÿ%‚ö h   é€þÿÿÿ%zö h   épþÿÿÿ%rö h   é`þÿÿÿ%jö h   éPþÿÿÿ%bö h   é@þÿÿÿ%Zö h   é0þÿÿÿ%Rö h   é þÿÿÿ%Jö h   éþÿÿÿ%Bö h   é þÿÿÿ%:ö h   éðýÿÿÿ%2ö h    éàýÿÿÿ%*ö h!   éÐýÿÿÿ%"ö h"   éÀýÿÿÿ%ö h#   é°ýÿÿÿ%ö h$   é ýÿÿÿ%
ö h%   éýÿÿÿ%ö h&   é€ýÿÿÿ%úõ h'   épýÿÿÿ%òõ h(   é`ýÿÿÿ%êõ h)   éPýÿÿÿ%âõ h*   é@ýÿÿÿ%Úõ h+   é0ýÿÿÿ%Òõ h,   é ýÿÿÿ%Êõ h-   éýÿÿÿ%Âõ h.   é ýÿÿÿ%ºõ h/   éðüÿÿÿ%²õ h0   éàüÿÿÿ%ªõ h1   éÐüÿÿÿ%¢õ h2   éÀüÿÿÿ%šõ h3   é°üÿÿÿ%’õ h4   é üÿÿÿ%Šõ h5   éüÿÿÿ%‚õ h6   é€üÿÿÿ%zõ h7   épüÿÿÿ%rõ h8   é`üÿÿÿ%jõ h9   éPüÿÿÿ%bõ h:   é@üÿÿÿ%Zõ h;   é0üÿÿÿ%Rõ h<   é üÿÿÿ%Jõ h=   éüÿÿÿ%Bõ h>   é üÿÿÿ%:õ h?   éðûÿÿÿ%2õ h@   éàûÿÿÿ%*õ hA   éÐûÿÿÿ%"õ hB   éÀûÿÿÿ%õ hC   é°ûÿÿÿ%õ hD   é ûÿÿÿ%
õ hE   éûÿÿÿ%õ hF   é€ûÿÿÿ%úô hG   épûÿÿÿ%òô hH   é`ûÿÿÿ%êô hI   éPûÿÿÿ%âô hJ   é@ûÿÿÿ%Úô hK   é0ûÿÿÿ%Òô hL   é ûÿÿÿ%Êô hM   éûÿÿÿ%Âô hN   é ûÿÿÿ%ºô hO   éðúÿÿÿ%²ô hP   éàúÿÿÿ%ªô hQ   éÐúÿÿÿ%¢ô hR   éÀúÿÿÿ%šô hS   é°úÿÿÿ%’ô hT   é úÿÿÿ%Šô hU   éúÿÿÿ%‚ô hV   é€úÿÿÿ%zô hW   épúÿÿÿ%rô hX   é`úÿÿÿ%jô hY   éPúÿÿÿ%bô hZ   é@úÿÿÿ%Zô h[   é0úÿÿÿ%Rô h\   é úÿÿÿ%Jô h]   éúÿÿÿ%Bô h^   é úÿÿÿ%:ô h_   éðùÿÿÿ%2ô h`   éàùÿÿÿ%*ô ha   éÐùÿÿÿ%"ô hb   éÀùÿÿÿ%ô hc   é°ùÿÿÿ%ô hd   é ùÿÿÿ%
ô he   éùÿÿÿ%ô hf   é€ùÿÿÿ%úó hg   épùÿÿÿ%òó hh   é`ùÿÿÿ%êó hi   éPùÿÿÿ%âó hj   é@ùÿÿÿ%Úó hk   é0ùÿÿÿ%Òó hl   é ùÿÿÿ%Êó hm   éùÿÿÿ%Âó hn   é ùÿÿÿ%ºó ho   éðøÿÿÿ%²ó hp   éàøÿÿÿ%ªó hq   éÐøÿÿÿ%¢ó hr   éÀøÿÿÿ%šó hs   é°øÿÿÿ%’ó ht   é øÿÿÿ%Šó hu   éøÿÿÿ%‚ó hv   é€øÿÿÿ%zó hw   épøÿÿÿ%ró hx   é`øÿÿÿ%jó hy   éPøÿÿÿ%bó hz   é@øÿÿÿ%Zó h{   é0øÿÿÿ%Ró h|   é øÿÿÿ%Jó h}   éøÿÿÿ%Bó h~   é øÿÿÿ%:ó h   éð÷ÿÿÿ%2ó h€   éà÷ÿÿÿ%*ó h   éÐ÷ÿÿÿ%"ó h‚   éÀ÷ÿÿÿ%ó hƒ   é°÷ÿÿÿ%ó h„   é ÷ÿÿÿ%
ó h…   é÷ÿÿÿ%ó h†   é€÷ÿÿÿ%úò h‡   ép÷ÿÿÿ%òò hˆ   é`÷ÿÿÿ%êò h‰   éP÷ÿÿÿ%âò hŠ   é@÷ÿÿÿ%Úò h‹   é0÷ÿÿÿ%Òò hŒ   é ÷ÿÿÿ%Êò h   é÷ÿÿÿ%Âò hŽ   é ÷ÿÿÿ%ºò h   éðöÿÿÿ%²ò h   éàöÿÿÿ%ªò h‘   éÐöÿÿÿ%¢ò h’   éÀöÿÿÿ%šò h“   é°öÿÿÿ%’ò h”   é öÿÿÿ%Šò h•   éöÿÿÿ%‚ò h–   é€öÿÿÿ%zò h—   épöÿÿÿ%rò h˜   é`öÿÿÿ%jò h™   éPöÿÿÿ%bò hš   é@öÿÿÿ%Zò h›   é0öÿÿÿ%Rò hœ   é öÿÿÿ%Jò h   éöÿÿÿ%Bò hž   é öÿÿÿ%:ò hŸ   éðõÿÿÿ%2ò h    éàõÿÿÿ%*ò h¡   éÐõÿÿÿ%"ò h¢   éÀõÿÿÿ%ò h£   é°õÿÿÿ%ò h¤   é õÿÿÿ%
ò h¥   éõÿÿÿ%ò h¦   é€õÿÿÿ%úñ h§   épõÿÿÿ%òñ h¨   é`õÿÿÿ%êñ h©   éPõÿÿÿ%âñ hª   é@õÿÿÿ%Úñ h«   é0õÿÿÿ%Òñ h¬   é õÿÿÿ%Êñ h­   éõÿÿÿ%Âñ h®   é õÿÿÿ%ºñ h¯   éðôÿÿÿ%²ñ h°   éàôÿÿÿ%ªñ h±   éÐôÿÿÿ%¢ñ h²   éÀôÿÿÿ%šñ h³   é°ôÿÿÿ%’ñ h´   é ôÿÿÿ%Šñ hµ   éôÿÿÿ%‚ñ h¶   é€ôÿÿÿ%zñ h·   épôÿÿÿ%rñ h¸   é`ôÿÿÿ%jñ h¹   éPôÿÿÿ%bñ hº   é@ôÿÿÿ%Zñ h»   é0ôÿÿÿ%Rñ h¼   é ôÿÿÿ%Jñ h½   éôÿÿÿ%Bñ h¾   é ôÿÿÿ%:ñ h¿   éðóÿÿÿ%2ñ hÀ   éàóÿÿÿ%*ñ hÁ   éÐóÿÿÿ%"ñ hÂ   éÀóÿÿÿ%ñ hÃ   é°óÿÿÿ%ñ hÄ   é óÿÿHƒìH‹½ê H…ÀtÿÐHƒÄÃ€=	ñ  UH‰åu;Hƒ=+ê  tH‹=Òð è]ûÿÿëHƒÀH‰Èð ÿÒH‹¿ð H‹H…ÒuäÆÈð ÉÃffffUHƒ=?ç  H‰åtH‹3ê H…ÀtH='ç I‰ÃÉAÿãÉÃH‹	é HƒÀH‰ÃH‹1É1öH‹Pèé@ôÿÿH‹éè HƒÀH‰ÃATI‰ôSH‰ûH=T½  Hƒìè‡÷ÿÿH5D½  H‰ÂH‰ßè%þÿÿL‰æH‰ßèšûÿÿH='½  è^÷ÿÿH5½  H‰ÂH‰ßèüýÿÿH=é¼  è@÷ÿÿHƒÄH‰ßH5Ö¼  [A\H‰Âé×ýÿÿffffSH‰ûH=Å¼  è÷ÿÿH‰ßH5¶¼  H‰Â[é­ýÿÿfffffffffSH‰ûH=¼  èàöÿÿH‰ßH5Ž¼  H‰Â[é}ýÿÿfffffffffH‰\$àL‰d$ðH‰óL‰l$øH‰l$èHƒì8H‹E1íI‰üH‹@èH…ÀtJHPÿH9Ð‚   HÇÁÿÿÿÿH‰çè÷óÿÿA½   H5Ž¼  H‰çèõÿÿH‹,$A‰ÅHƒíH;-ç uSE…ít)H‰ÞL‰çè.÷ÿÿL‰àH‹\$H‹l$ L‹d$(L‹l$0HƒÄ8ÃfH‹1ÒH‰ÞL‰çH‹HèHÿÉè‰óÿÿëÉH=D¼  è‹ûÿÿH}¾ÿÿÿÿèÍûÿÿ…À›Ht$H‰ïè|ñÿÿëŒE„íH‰ÅuH‰ïèÚûÿÿH‰ÅëóH‹$HƒëH;öæ tâH{¾ÿÿÿÿè†ûÿÿ…ÀÐHt$H‰ßè5ñÿÿëÁfH‰\$èL‰d$øE1äH‰l$ðHƒì(H‹H‰ûH‹HèH…Ét[HQÿH9ÑriH‰þHÇÁÿÿÿÿH‰çèÐòÿÿA¼   H5g»  H‰çèëóÿÿH‹,$A‰ÄHƒíH;-iæ u:E…äu
H‹‹@èÿÈëH‹fff‹@èH‹\$H‹l$L‹d$ HƒÄ(ÃH=6»  è}úÿÿH}¾ÿÿÿÿè¿úÿÿ…À´Ht$H‰ïènðÿÿë¥E„äH‰ÅuH‰ïèËúÿÿH‰ÅëòH‹$HƒëH;çå táH{¾ÿÿÿÿèwúÿÿ…ÀÏHt$H‰ßè&ðÿÿëÀfffAWI‰ÿAVAUATUSHìØ  Hœ$  ˆT$H‰ßèHõÿÿH‰ÞL‰ÿèMðÿÿH‹œ$  HƒëH;zå …œ  HD$0H‰ÃH‰D$HƒÃXH‰ßè[ñÿÿH‹¬å L‹5íå H‹|$HÇƒØ       Çƒà       Æƒä    L‹`H‹@HƒÇ@HÇƒè       HÇƒð       HÇƒø       HÇƒ       IT$èH‰D$(I‹D$èHÇD$@    HÇD$H    H‰T$ H‹T$(HÇD$P    HÇD$X    HÇD$`    HÇD$h    H‰T0H‹qå HPHƒÀ@H‰„$ˆ   IFH‰T$0H‰D$8èFøÿÿL‹-/å H‹-hä H‰ßH‹t$ÇD$x   IEHƒÅH‰¬$€   HƒÆH‰D$8èŠùÿÿ¶t$H‹|$èïÿÿH‹t$`H‰¬$   H…ö„ô   H‹D$PH9Æ†ž   H‹|$XH”$Í  ˆ$H¬$   èúòÿÿHœ$À  H‰„$À  H‰ïH‰ÞèïøÿÿH‰ßè‡öÿÿH‰îL‰ÿè¬öÿÿH‹œ$   HƒëH9©ã …    H=€¸  èWòÿÿH5t¸  H‰ÂL‰ÿèõøÿÿH‹|$è‹ôÿÿHÄØ  []A\A]A^A_ÃH‹|$XH”$Ì  ˆ$H¬$   H‰ÆèYòÿÿHœ$°  H‰„$°  H‰ïH‰ÞèNøÿÿH‰ßèæõÿÿéZÿÿÿH‹t$H¬$   H‰ïHƒÆPè(øÿÿé<ÿÿÿH{¾ÿÿÿÿè•÷ÿÿ…ÀJÿÿÿH´$Ï  H‰ßè=íÿÿé5ÿÿÿH{¾ÿÿÿÿèj÷ÿÿ…ÀNýÿÿH´$Ë  H‰ßèíÿÿé9ýÿÿI‰ÇH‰ïèbõÿÿH‹|$è¨óÿÿL‰ÿè`÷ÿÿH‰ÇèX÷ÿÿI‰ÇH‰ßè=õÿÿëÑëÌI‰ÇffffëÌH‹|$I‰ÇIEH‰D$8HƒÇPèõÿÿH‹T$IFH‰×H‰BHƒÇ@è»íÿÿH‹T$ L‰d$0H‰ßH‹H‹T$(H‰T0H‹â HƒÀH‰ènôÿÿL‰ÿèÖöÿÿH‹œ$  I‰ÇHƒëH;ðá „RÿÿÿH{¾ÿÿÿÿè|öÿÿ…À<ÿÿÿH´$Ê  H‰ßè$ìÿÿé'ÿÿÿI‰ÇécÿÿÿH‹œ$   I‰ÇHƒëH9¡á „ùþÿÿH{¾ÿÿÿÿè-öÿÿ…ÀãþÿÿH´$Î  H‰ßèÕëÿÿéÎþÿÿéòþÿÿfffffffAWI‰ÿAVAUATUH‰ÕSHƒì(H\$H‰ßèïðÿÿH‰ÞL‰ÿèôëÿÿH‹\$HƒëH;$á …·  H=›µ  èÒïÿÿH5µ  L‰ÿH‰ÂèpöÿÿH‹ùà H‰çHƒÀH‰$H‹E H‹pèèaïÿÿH‹E HƒèHƒ8 „  E1íé   fffffƒø	„j  ƒø
fff„‘  ƒø„«  ‹Jø…É‰l  H‹$D‹$HƒèH‹HÿÃH;Xw‹@…À~H‰ÞH‰çèìîÿÿH‹$H‹PèÇ@ø    H‰XèD‰$Ç˜    H‹E IÿÅHƒèL9(†Š  ‹p…öySH‹U J­    ‹ƒøtOŽYÿÿÿƒø"„    aƒø…dÿÿÿH=º´  è¹îÿÿH5®´  H‰ÂH‰çèWõÿÿë—fffH‰ïèØðÿÿë£ffffH=m´  è„îÿÿH5a´  H‰ÂH‰çè"õÿÿé_ÿÿÿƒø/„Ñ   ƒø\…ùþÿÿH=g´  èNîÿÿH5[´  H‰ÂH‰çèìôÿÿé)ÿÿÿfffffH=é³  è$îÿÿH5Ý³  H‰ÂH‰çèÂôÿÿéÿþÿÿH=´  èîÿÿH5´  H‰ÂH‰çèŸôÿÿéÜþÿÿH‰ïè"ðÿÿH‹U éƒþÿÿH=Â³  èÍíÿÿH5¶³  H‰ÂH‰çèkôÿÿé¨þÿÿH=‡³  èªíÿÿH5{³  H‰ÂH‰çèHôÿÿé…þÿÿH=X³  è‡íÿÿH5L³  H‰ÂH‰çè%ôÿÿébþÿÿH‰æL‰ÿè•ñÿÿH=~³  èYíÿÿH5r³  H‰ÂL‰ÿè÷óÿÿH‹$HƒëH9xÞ u7HƒÄ([]A\A]A^A_ÃH{¾ÿÿÿÿèùòÿÿ…À3ýÿÿHt$H‰ßè¤èÿÿé!ýÿÿH{¾ÿÿÿÿèÑòÿÿ…À·Ht$H‰ßè€èÿÿë¨H‹l$H‰ÃHƒíH;-Þ uH‰ßèÑòÿÿH‰ÃëóH}¾ÿÿÿÿèŽòÿÿ…ÀáHt$H‰ïè=èÿÿëÒH‹,$H‰ÃHƒíH9-ÉÝ t¾H}¾ÿÿÿÿèYòÿÿ…À¬Ht$H‰ïèèÿÿëH‰ÇènòÿÿëöfffffffffH‰l$ðH‰\$èH‰ýL‰d$øHƒì(H‹H‹@èHPÿH9Ð‚Š   H‰þHÇÁÿÿÿÿH‰çè”éÿÿH51²  H‰çèµêÿÿH‹$A‰ÄHƒëH;3Ý uaE…äuH‹E H‹PèHrÿH9òroH)ò1ÉH‰ïè^èÿÿH=ó±  èÂëÿÿH5ç±  H‰ïH‰Âè`òÿÿH‹\$H‹l$L‹d$ HƒÄ(ÃH=Ù±  è ñÿÿH{¾ÿÿÿÿèbñÿÿ…ÀHt$H‰ßèçÿÿé{ÿÿÿH=¾±  èððÿÿH‹$H‰ÅHƒëH;ŽÜ uH‰ïèTñÿÿH‰ÇèLñÿÿH{¾ÿÿÿÿèñÿÿ…ÀÞHt$H‰ßè½æÿÿëÏfffffffH‰l$ðH‰\$èH‰ýL‰d$øHƒì(H‹H‹@èHPÿH9Ð‚Š   H‰þHÇÁÿÿÿÿH‰çèTèÿÿH5ñ°  H‰çèuéÿÿH‹$A‰ÄHƒëH;óÛ uaE…äuH‹E H‹PèHrÿH9òroH)ò1ÉH‰ïèçÿÿH=¿°  è‚êÿÿH5³°  H‰ïH‰Âè ñÿÿH‹\$H‹l$L‹d$ HƒÄ(ÃH=™°  èàïÿÿH{¾ÿÿÿÿè"ðÿÿ…ÀHt$H‰ßèÑåÿÿé{ÿÿÿH=~°  è°ïÿÿH‹$H‰ÅHƒëH;NÛ uH‰ïèðÿÿH‰ÇèðÿÿH{¾ÿÿÿÿèÎïÿÿ…ÀÞHt$H‰ßè}åÿÿëÏfffffffAWAVI‰þAUATUSHìØ  Hœ$  H‰T$H‰ßè—êÿÿH‰ÞL‰÷èœåÿÿH‹œ$  HƒëH;ÉÚ …´  HD$0H‰ÃH‰D$HƒÃXH‰ßèªæÿÿH‹ûÚ L‹=<Û H‹|$HÇƒØ       Çƒà       Æƒä    L‹`H‹@HƒÇ@HÇƒè       HÇƒð       HÇƒø       HÇƒ       IT$èH‰D$(I‹D$èHÇD$@    HÇD$H    H‰T$ H‹T$(HÇD$P    HÇD$X    HÇD$`    HÇD$h    H‰T0H‹ÀÚ HPHƒÀ@H‰„$ˆ   IGH‰T$0H‰D$8è•íÿÿL‹-~Ú H‹-·Ù H‰ßH‹t$ÇD$x   IEHƒÅH‰¬$€   HƒÆH‰D$8èÙîÿÿH‹t$H‹|$èºçÿÿH‹t$`H‰¬$   H…ö„  H‹D$PH9Æ†¶   H‹|$XH”$Ì  ˆ$èQèÿÿHœ$À  H¬$   H‰„$À  H‰ÞH‰ïè>îÿÿH‹œ$À  HƒëH9Ù …!  H‰îL‰÷èêëÿÿH‹œ$   HƒëH9çØ …§   H=¾­  è•çÿÿH5²­  H‰ÂL‰÷è3îÿÿH‹|$èÉéÿÿHÄØ  []A\A]A^A_ÃfffffH‹|$XH”$Ë  ˆ$H¬$   H‰ÆèçÿÿHœ$°  H‰„$°  H‰ïH‰Þè…íÿÿH‰ßèëÿÿéSÿÿÿH‹t$H¬$   H‰ïHƒÆPè_íÿÿé5ÿÿÿH{¾ÿÿÿÿèÌìÿÿ…ÀCÿÿÿH´$Ï  H‰ßètâÿÿé.ÿÿÿH{¾ÿÿÿÿè¡ìÿÿ…À6ýÿÿH´$É  H‰ßèIâÿÿé!ýÿÿH{¾ÿÿÿÿèvìÿÿ…ÀÉþÿÿH´$Í  H‰ßèâÿÿé´þÿÿI‰ÆH‰ïènêÿÿH‹|$è´èÿÿL‰÷èlìÿÿëáI‰ÆëçH‹¬$€   I‰ÆIEH‰D$8HƒíH9-v× …	  H‹T$IGH‰×H‰BHƒÇ@è×âÿÿH‹T$ L‰d$0H‰ßH‹H‹T$(H‰T0H‹.× HƒÀH‰èŠéÿÿL‰÷èòëÿÿH‹œ$   I‰ÆHƒëH9× „XÿÿÿH{¾ÿÿÿÿè˜ëÿÿ…ÀBÿÿÿH´$Î  H‰ßè@áÿÿé-ÿÿÿH‹œ$  I‰ÆHƒëH;ÅÖ „ÿÿÿH{¾ÿÿÿÿèQëÿÿ…ÀÿÿÿH´$È  H‰ßèùàÿÿéðþÿÿH‰Çè\ëÿÿéíþÿÿH¬$   I‰ÆéÁþÿÿI‰ÆH‰ßè,éÿÿé±þÿÿH}¾ÿÿÿÿèùêÿÿ…ÀáþÿÿH´$Ê  H‰ïè¡àÿÿéÌþÿÿI‰ÆéÄþÿÿfffAWI‰ÿAVAUATUSHìè  Hœ$  H‰T$H‰ßè·åÿÿH‰ÞL‰ÿè¼àÿÿH‹œ$  HƒëH;éÕ …Þ  HD$0H‰ÃH‰D$HƒÃXH‰ßèÊáÿÿH‹Ö L‹5\Ö H‹|$HÇƒØ       Çƒà       Æƒä    L‹`H‹@HƒÇ@HÇƒè       HÇƒð       HÇƒø       HÇƒ       IT$èH‰D$(I‹D$èHÇD$@    HÇD$H    H‰T$ H‹T$(HÇD$P    HÇD$X    HÇD$`    HÇD$h    H‰T0H‹àÕ HPHƒÀ@H‰„$ˆ   IFH‰T$0H‰D$8èµèÿÿL‹-žÕ H‹-×Ô H‰ßH‹t$ÇD$x   IEHƒÅH‰¬$€   HƒÆH‰D$8èùéÿÿH‹t$H‹|$èªáÿÿH‹t$`H‰¬$   H…ö„6  H‹D$PH9Æ†¬   H‹|$XH”$Ø  ˆ$èqãÿÿH¬$   H‰„$À  H´$À  H‰ïèaéÿÿH‹œ$À  HƒëH9.Ô …N  H‰îL‰ÿèçÿÿH‹œ$   HƒëH9
Ô …Ô   H=á¨  è¸âÿÿH5Õ¨  H‰ÂL‰ÿèVéÿÿH‹|$èìäÿÿHÄè  []A\A]A^A_ÃH‹|$XH”$×  ˆ$H‰ÆèÂâÿÿH¬$   H‰„$°  H´$°  H‰ïè²èÿÿH‹œ$°  HƒëH9Ó „QÿÿÿH{¾ÿÿÿÿèèÿÿ…À;ÿÿÿH´$Û  H‰ßè³Ýÿÿé&ÿÿÿH‹t$H¬$   H‰ïHƒÆPèUèÿÿéÿÿÿH{¾ÿÿÿÿèÂçÿÿ…ÀÿÿÿH´$ß  H‰ßèjÝÿÿéÿÿÿH{¾ÿÿÿÿè—çÿÿ…ÀýÿÿH´$Ö  H‰ßè?Ýÿÿé÷üÿÿH{¾ÿÿÿÿèlçÿÿ…ÀœþÿÿH´$Ù  H‰ßèÝÿÿé‡þÿÿH‰ÅH‹œ$   HƒëH9™Ò uH‹|$èãÿÿH‰ïèUçÿÿH‰ÅëéH{¾ÿÿÿÿèçÿÿ…À×H´$Ý  H‰ßè¾ÜÿÿëÅë«H‰ÇfffffèçÿÿëÄH‹|$H‰ÅIEH‰D$8HƒÇPèïäÿÿH‹T$IFH‰×H‰BHƒÇ@è–ÝÿÿH‹T$ L‰d$0H‰ßH‹H‹T$(H‰T0H‹íÑ HƒÀH‰èIäÿÿH‰ïè±æÿÿé-ÿÿÿH‰Åë¨H‹œ$  H‰ÅHƒëH;ÁÑ „.ÿÿÿH{¾ÿÿÿÿèMæÿÿ…ÀÿÿÿH´$Õ  H‰ßèõÛÿÿéÿÿÿH‹œ$À  H‰ÅHƒëH9zÑ „ÈþÿÿH{¾ÿÿÿÿèæÿÿ…À²þÿÿH´$Ú  H‰ßè®ÛÿÿéþÿÿH‹œ$°  H‰ÅHƒëH93Ñ „þÿÿH{¾ÿÿÿÿè¿åÿÿ…ÀkþÿÿH´$Ü  H‰ßègÛÿÿéVþÿÿH‹œ$   H‰ÅHƒëH9ìÐ „OþÿÿH{¾ÿÿÿÿèxåÿÿ…À9þÿÿH´$Þ  H‰ßè Ûÿÿé$þÿÿéþÿÿfffféüýÿÿfffffffféìýÿÿfffffffféþÿÿfffffffAWAVI‰þAUATUSHìØ  Hœ$  ‰T$H‰ßèàÿÿH‰ÞL‰÷èÛÿÿH‹œ$  HƒëH;:Ð …›  HD$0H‰ÃH‰D$HƒÃXH‰ßèÜÿÿH‹lÐ L‹=­Ð H‹|$HÇƒØ       Çƒà       Æƒä    L‹`H‹@HƒÇ@HÇƒè       HÇƒð       HÇƒø       HÇƒ       IT$èH‰D$(I‹D$èHÇD$@    HÇD$H    H‰T$ H‹T$(HÇD$P    HÇD$X    HÇD$`    HÇD$h    H‰T0H‹1Ð HPHƒÀ@H‰„$ˆ   IGH‰T$0H‰D$8èãÿÿL‹-ïÏ H‹-(Ï H‰ßH‹t$ÇD$x   IEHƒÅH‰¬$€   HƒÆH‰D$8èJäÿÿ‹t$H‹|$è,äÿÿH‹t$`H‰¬$   H…ö„ô   H‹D$PH9Æ†ž   H‹|$XH”$Ì  ˆ$èÃÝÿÿHœ$À  H¬$   H‰„$À  H‰ÞH‰ïè°ãÿÿH‰ßèHáÿÿH‰îL‰÷èmáÿÿH‹œ$   HƒëH9jÎ …    H=A£  èÝÿÿH55£  H‰ÂL‰÷è¶ãÿÿH‹|$èLßÿÿHÄØ  []A\A]A^A_ÃH‹|$XH”$Ë  ˆ$H‰Æè"ÝÿÿHœ$°  H¬$   H‰„$°  H‰ÞH‰ïèãÿÿH‰ßè§àÿÿéZÿÿÿH‹t$H¬$   H‰ïHƒÆPèéâÿÿé<ÿÿÿH{¾ÿÿÿÿèVâÿÿ…ÀJÿÿÿH´$Ï  H‰ßèþ×ÿÿé5ÿÿÿH{¾ÿÿÿÿè+âÿÿ…ÀOýÿÿH´$É  H‰ßèÓ×ÿÿé:ýÿÿH‰ÅH‹œ$   HƒëH9XÍ uH‹|$è\ÞÿÿH‰ïèâÿÿH‰ÇèâÿÿH{¾ÿÿÿÿèÎáÿÿ…ÀÔH´$Í  H‰ßèz×ÿÿëÂH‰ÅH‰ßèÍßÿÿë H‰Åë°ffffëH‰ÅIEL‹¬$€   H‰D$8IƒíL9-ßÌ …•   H‹T$IGH‰×H‰BHƒÇ@è@ØÿÿH‹T$ L‰d$0H‰ßH‹H‹T$(H‰T0H‹—Ì HƒÀH‰èóÞÿÿH‰ïè[áÿÿH‹œ$  H‰ÅHƒëH;uÌ „#ÿÿÿH{¾ÿÿÿÿèáÿÿ…ÀÿÿÿH´$È  H‰ßè©ÖÿÿéøþÿÿI}¾ÿÿÿÿèÖàÿÿ…ÀUÿÿÿH´$Ê  L‰ïè~Öÿÿé@ÿÿÿH‰Åé8ÿÿÿH‹œ$   H‰ÅHƒëH9ûË „ŸþÿÿH{¾ÿÿÿÿè‡àÿÿ…À‰þÿÿH´$Î  H‰ßè/Öÿÿétþÿÿéºþÿÿfffé°þÿÿfffffffAWAVI‰þAUATUSHìØ  Hœ$  H‰T$H‰ßè7ÛÿÿH‰ÞL‰÷è<ÖÿÿH‹œ$  HƒëH;iË …ž  HD$0H‰ÃH‰D$HƒÃXH‰ßèJ×ÿÿH‹›Ë L‹=ÜË H‹|$HÇƒØ       Çƒà       Æƒä    L‹`H‹@HƒÇ@HÇƒè       HÇƒð       HÇƒø       HÇƒ       IT$èH‰D$(I‹D$èHÇD$@    HÇD$H    H‰T$ H‹T$(HÇD$P    HÇD$X    HÇD$`    HÇD$h    H‰T0H‹`Ë HPHƒÀ@H‰„$ˆ   IGH‰T$0H‰D$8è5ÞÿÿL‹-Ë H‹-WÊ H‰ßH‹t$ÇD$x   IEHƒÅH‰¬$€   HƒÆH‰D$8èyßÿÿH‹t$H‹|$è*ÜÿÿH‹t$`H‰¬$   H…ö„ô   H‹D$PH9Æ†ž   H‹|$XH”$Ì  ˆ$èñØÿÿHœ$À  H¬$   H‰„$À  H‰ÞH‰ïèÞÞÿÿH‰ßèvÜÿÿH‰îL‰÷è›ÜÿÿH‹œ$   HƒëH9˜É …    H=ož  èFØÿÿH5cž  H‰ÂL‰÷èäÞÿÿH‹|$èzÚÿÿHÄØ  []A\A]A^A_ÃH‹|$XH”$Ë  ˆ$H‰ÆèPØÿÿHœ$°  H¬$   H‰„$°  H‰ÞH‰ïè=ÞÿÿH‰ßèÕÛÿÿéZÿÿÿH‹t$H¬$   H‰ïHƒÆPèÞÿÿé<ÿÿÿH{¾ÿÿÿÿè„Ýÿÿ…ÀfHÿÿÿH´$Ï  H‰ßè*Óÿÿé3ÿÿÿH{¾ÿÿÿÿèWÝÿÿ…ÀLýÿÿH´$É  H‰ßèÿÒÿÿé7ýÿÿH‰ÅH‹œ$   HƒëH9„È uH‹|$èˆÙÿÿH‰ïè@ÝÿÿH‰Çè8ÝÿÿH{¾ÿÿÿÿèúÜÿÿ…ÀÔH´$Í  H‰ßè¦ÒÿÿëÂH‰ÅH‰ßèùÚÿÿë H‰Åë°fë”H‰ÅIEL‹¬$€   H‰D$8IƒíL9-È …•   H‹T$IGH‰×H‰BHƒÇ@èpÓÿÿH‹T$ L‰d$0H‰ßH‹H‹T$(H‰T0H‹ÇÇ HƒÀH‰è#ÚÿÿH‰ïè‹ÜÿÿH‹œ$  H‰ÅHƒëH;¥Ç „'ÿÿÿH{¾ÿÿÿÿè1Üÿÿ…ÀÿÿÿH´$È  H‰ßèÙÑÿÿéüþÿÿI}¾ÿÿÿÿèÜÿÿ…ÀUÿÿÿH´$Ê  L‰ïè®Ñÿÿé@ÿÿÿH‰Åé8ÿÿÿH‹œ$   H‰ÅHƒëH9+Ç „£þÿÿH{¾ÿÿÿÿè·Ûÿÿ…ÀþÿÿH´$Î  H‰ßè_Ñÿÿéxþÿÿé¾þÿÿfffé´þÿÿL‰d$ðH‰\$àI‰üH‰l$èL‰l$øHƒì(H9÷tpH…ÿtxH‰ó1öL)ãHÁûH‰ßè×ÙÿÿHƒûH‰ÅLht>H‰ÚL‰æL‰ïè|ÚÿÿÇE    H‰] AÇD     L‰èH‹\$H‹l$L‹d$L‹l$ HƒÄ(ÃA‹$‰EëÇffL‹-IÆ IƒÅëËH=tš  èwÜÿÿH…ÿt2H…ötHH‰úH‰ðâ  %  H9Ât2H‰úH‰ðƒâƒàH9ÂtHƒútH‰ðÃfffH‰ø%   H=   fuåH‰þH‰ðÃffffH‹Æ H‹‹B‰‹B‰GÃfffffffóÃffffffffff1ÀÃfffffffff‹WT¸   ƒút
1Àƒú”ÀÀóÃffffH‹ñÅ Æ ÃfffH‹YÆ H‹8H…ÿté\ÛÿÿóÃfffffffH‹áÅ H‹8H…ÿté<ÛÿÿóÃfffffffH‹‘Å H‹8H…ÿtéÛÿÿóÃfffffffH‹áÅ H‹8H…ÿtéüÚÿÿóÃfffffffH=Î éôÚÿÿfffSH‰ûHƒì@HD$<HT$ LL$,LD$0H‰D$HD$4H‰ÑH‰D$HD$8H‰$H‹*Å H‹0H‹ØÄ H‹8è ÔÿÿÿÈu‹D$0‰‹D$,‰CHƒÄ@[ÃffffffAVH5‡™  AUATUSH‰ûHƒì0L‹5“Ä ÇG    Hl$Ld$,Ll$ I‹>I‰èL‰áL‰êèÒÿÿH…ÀH‰Ct{‹D$,…À~
H‹|$ èAÓÿÿH‹{HT$Ht$ÇC    ÇC    èÔÿÿ…À~2H‹t$1ÿfffH‹‹QX9S}‰S‹Q\QX9S}‰SÿÇHƒÆ9øuÚHƒÄ0¸   []A\A]A^ÃI‹>H5æ˜  I‰èL‰áL‰êèpÑÿÿH…ÀH‰C…`ÿÿÿI‹>H5™  I‰èL‰áL‰êèKÑÿÿH…ÀH‰C…;ÿÿÿI‹>H5	™  I‰èL‰áL‰êè&ÑÿÿH…ÀH‰C…ÿÿÿI‹>H5Ÿ˜  I‰èL‰áL‰êèÑÿÿH…ÀH‰C…ñþÿÿI‹>H5Ü˜  I‰èL‰áL‰êèÜÐÿÿH…ÀH‰C…ÌþÿÿI‹>H5Ô˜  I‰èL‰áL‰êè·ÐÿÿH‰Cé«þÿÿffffffffffÿÏSt[Ãþÿÿ  uöH=BÌ èeÍÿÿH‹ÎÂ H=§ýÿÿ1öH‰Úè­ÌÿÿH‹=fÂ è±ÕÿÿH=:&  H‰Ú1öèÌÿÿH‹yÂ H=’  1öHPHÇ@    HÇ@    HÇ@(    Ç@    H‰PH‰P H‰ÚèMÌÿÿH‹–Â H=Ÿ  1öHPHÇ@    HÇ@    HÇ@(    Ç@    H‰PH‰P H‰Úè
ÌÿÿH‹»Â H=ÌüÿÿH‰Ú1öHÇ     HÇ@    HÇ@    èÛËÿÿH‹Â H=}üÿÿH‰Ú1öHÇ     HÇ@    HÇ@    è¬ËÿÿH‹Â H=.üÿÿH‰Ú1öHÇ     HÇ@    HÇ@    è}ËÿÿH‹FÂ H‰ÚH=Üûÿÿ1öHÇ     HÇ@    HÇ@    [éMËÿÿfffffffff¾ÿÿ  ¿   éQþÿÿUS‰û¿0   HƒìèNÍÿÿH‰ÅHxè’ËÿÿH‹=ÛÁ H‰l$‰] H‹wH;wtH…ötH‰.HFH‰GH‹D$HƒÄ[]ÃHT$èSÍÿÿëèH‰ÃH‰ïè¦ÖÿÿH‰ßè^ÕÿÿffffffffffH‰\$èL‰d$ðI‰ôL‰l$øHƒìI‰Õè"ÒÿÿHXL‰æH‰ßèƒÎÿÿH‰ßèÖÿÿH‰ßA‰E èÏÎÿÿH‹$A‰EL‹d$L‹l$HƒÄÃffffffHƒìH‹Á H‹0H‹@H)ðI‰ÀIÁøu1ÀHƒÄÃ1ÉëfffffH‹ÖHÿÁ98t	‰ÊL9ÂrîëÚI9Ðw×H=–  èÔÿÿfffffffATL‹%×¿ USI‹|$H…ÿt+H‰ûë	ffffH‰ëH‹sL‰çèÔÿÿH‹kH‰ßè•ÕÿÿH…íuà[]A\ÃH‰ÇèCÔÿÿfATL‹%ç¿ USI‹|$H…ÿt+H‰ûë	ffffH‰ëH‹sL‰çèÉÿÿH‹kH‰ßèEÕÿÿH…íuà[]A\ÃH‰ÇèóÓÿÿfS‰û¿   HƒìèoËÿÿH‹=°¿ HÇ     HÇ@    HÇ@    H‰D$‰H‹wH;wtH…ötH‰HFH‰GH‹D$HƒÄ[ÃHT$è›ÑÿÿëéffffffS‰û¿(   HƒìèÿÊÿÿH‹=¿ H‰ÂH‹Ž¾ H‰T$‰ÇB     ÇB$    HƒÀH‹wH;wH‰BtH…ötH‰HFH‰GH‹D$HƒÄ[ÃHT$èrÐÿÿëéAWAVAUATU‰õS‰ûHìˆ   H‹D¾ H‰ÂH‰D$H‹@HƒÂH‰T$8H…Àt;X ‡˜  H‰ÂH‹@H…ÀuëH‹D$8H9ÂH‰D$0ts;Z rnL‹5Z¾ ‹R$I‹FINH‰ÎH…Àt!H‰ÎëfH‰ÆH‹@H…Àt;P vïH‹@H…ÀuòH9Îfft;V H‰ðs‰T$@HT$@L‰÷HÇD$H    èÜÒÿÿL‹`(éõ  èNÌÿÿH¯“  H5³“  H‰ÇI‰ÅE1äèBÌÿÿH5¥“  ‰êL‰ïèÁÇÿÿfy•  H5‘“  L‰ïèªÌÿÿèuÐÿÿ‰ÞH‰ÇH‰D$(è¶ÊÿÿH‹T$(H5m“  L‰ïè’ÎÿÿH5f“  º   L‰ïèþÇÿÿH5[“  º   L‰ïèêÇÿÿH5Q“  º   L‰ïèFÇÿÿ1ÒL‰î1ÿèúÌÿÿL‰ïèâÒÿÿHT$|1ÿL‰îè³ÑÿÿH…ÀH‰D$ „  H‹|$ è[ËÿÿL‹5½ ‰ÅM~I‹FM‰üfffffH…Àt;h ‡  I‰ÄH‹@H…ÀuëM9üM‰øtA;l$ ƒ;  H‹Œ¼ H‹t$ L‰D$H‹8èÊÎÿÿH…ÀI‰ÄL‹D$„  I‹FH…Àuéá   I‰ÇH‹@H…Àt;h vïH‹@H…ÀuòM9ø„¾   A;o L‰ø‚®   H‹T$L‰`(H‹BH…ÀuëufffffH‰D$8H‹@H…Àt;X víH‹@H…ÀuòH‹D$8H9D$0tF;X r<‰h$H‹|$(è6ÑÿÿL‰ïèîËÿÿHÄˆ   L‰à[]A\A]A^A_ÃH‹@éQýÿÿH‹@éçþÿÿH‰D$0H‹t$0H‹|$HT$p‰\$pÇD$t    èRÍÿÿ‰h$ëM‰øHT$PL‰ÆL‰÷‰l$PHÇD$X    èmÐÿÿé-ÿÿÿH‹T$H‹BH…ÀuëLH‰D$8H‹@H…Àt;X víH‹@H…ÀuòH‹T$8H9T$0t$;Z H‰ÐrH‹|$ ‰h$è+ËÿÿM‹d$(é!ÿÿÿH‰T$0H‹t$0H‹|$HT$`‰\$`ÇD$d    è¬ÌÿÿëÂH‹|$ èðÊÿÿéëþÿÿfffffffATL‹%g» 1ÀUSI‹$I‹T$H)ÊHÁúëH‹,ÙHÿÀ9} t‰ÃH9Órí[]A\ÃH}èŸÉÿÿH<Ý    I<$I‹T$HwH9òu H‹}Iƒl$H…ÿtèÐÿÿ[H‰ï]A\éÐÿÿH)òèÇÿÿëÖfffffffAWAVAUATUSH‰ûHƒìhLt$0H‰t$L‰÷èmÄÿÿH‰ÞL‰÷èâÇÿÿL‰÷èzÅÿÿ„ÀÇD$     u"H‹|$0H…ÿtèŸÏÿÿ‹D$ HƒÄh[]A\A]A^A_ÃL‰÷è4Ïÿÿ‰ÃL‰÷èúÇÿÿ¯ØƒÃHcû‰\$ HÁçèôÅÿÿH‰ÃH‹D$L‰÷H‰èÏÿÿH˜L‰÷H‰H‹D$H‹HƒÃè¸ÇÿÿH˜ÇD$$   HÇD$(    H‰D‹|$(L‰÷èÅÎÿÿÿÈD9ø‚”   HcD$$1íL$Å    ë^HD$\HL$_LL$]LD$^‰êD‰þH‰$L‰÷èôÅÿÿH‹D$¶T$\HÿÅ¶L$^H‹0¶D$_ÁâÁáÁà	Â¶D$]	Â	ÑHcÉI‰4IƒÄD‹l$$L‰÷AíèÇÿÿÿÈ9ÅvŒHÿD$(D‰l$$éTÿÿÿL‰÷èÎÇÿÿé»þÿÿH‹|$0H‰ÃH…ÿtèWÎÿÿH‰ßèÍÿÿffffffffffATL‹%Ï¸ 1ÀUSI‹$I‹T$H)ÊHÁúëH‹,ÙHÿÀ9} t‰ÃH9Órí[]A\Ã‹U…Òt,H<Ý    I<$I‹T$HwH9òu'Iƒl$H‰ï[]A\éÕÍÿÿH‹¸ H‹uH‹8èBÈÿÿë¿H)òèXÅÿÿëÏffffHƒìH‹=¸ H‹0H‹@H)ðI‰ÀIÁøu1ÀHƒÄÃ1ÉëfffffH‹ÖHÿÁ98t	‰ÊL9ÂrîëÚI9Ðw×H=  è›ËÿÿfffffffHƒì‰÷è¥Áÿÿ1ÒH…Àt‹P‰ÐHƒÄÃfffHƒì‰÷è…Áÿÿ1ÒH…Àt‹P‰ÐHƒÄÃfffHƒìH‹m· L‹ H‹@L)ÀH‰ÆHÁþu1ÀHƒÄÃLNÿ1Ò1ÉffH9òsI‹ÐHÿÁH9xt	‰ÊL9ÊvçëÓH9ÖfwÎH=ØŒ  èòÊÿÿfHƒìH‹· L‹ H‹@L)ÀH‰ÆHÁþu1ÀHƒÄÃLNÿ1Ò1ÉffH9òsI‹ÐHÿÁ98t	‰ÊL9ÊvéëÕH9ÖfffwÎH=xŒ  è’ÊÿÿfATL‹%· 1ÀUSI‹$I‹T$H)ÊHÁúëH‹,ÙHÿÀH9}t‰ÃH9Órì[]A\ÃH‹}0H…ÿtèùÃÿÿHÇE0    H‹M8H…Ét4H‹A¶ H‹H‹ç¶ H‹0H‹¶ H‹8èÊÿÿH‹}8èÌËÿÿHÇE8    H<Ý    I<$I‹T$HwH9òuIƒl$H‰ï[]A\é˜ËÿÿH)òè0ÃÿÿëäffffffffffH‰\$ØH‰l$àH‰ËL‰d$èL‰l$ðA‰üL‰t$ø¿P   Hƒì8I‰õI‰ÖèÁÿÿ1öH‰ÇºP   H‰ÅèkÇÿÿH‹=¶ H‰l$D‰e H‰]L‰mL‰uH‹wH;wÇE@    ÇED    ÇEH   HÇE0    HÇE8    t3H…ötH‰.HFH‰GH‹D$H‹\$H‹l$L‹d$ L‹l$(L‹t$0HƒÄ8ÃHT$è³ÈÿÿëÑUH‰åAWE‰ÏAVE‰ÆAUA‰õATSHì¸  H‹„´ H‹Å´ ‰½tþÿÿ‰•pþÿÿ‰lþÿÿ‹3H‹8èyÁÿÿH‹¢´ H‰…(ÿÿÿE‰ùHcE‰ðH‹:HÁàH‹—è   H‹T@H‹8µ H‰H… ÿÿÿHÇD$    H‰T$ÇD$   H‰D$(HcH‹—è   HÁà‹D8Ç$    ‰D$H‹w´ ‹lþÿÿ‹•pþÿÿH‹0è{ÇÿÿH‰ÆH‰…€þÿÿH‹
´ H‹Û³ ¹   H‹8èö½ÿÿH‹ï³ H‹µ€þÿÿ1É1ÒH‹8è|ÉÿÿAƒýdH‰…ˆþÿÿA”ÄAƒý”ÀDà…?  Aý,  „·  E„ä…  AýÈ   „¡  Hƒ} fff„u  H‹}H‰¥xþÿÿèêÁÿÿH…   H‹uHƒàðH)ÄH\$?HƒãðH‰ßèfÃÿÿHU¸H5C‹  H‰ßH‰•Xþÿÿèì¿ÿÿH…À„  HU°E1ÿE1öH‰•`þÿÿëQH˜A‰ÝL$Å    L‰çè[¿ÿÿI‰ÇIcþH‹u°L‰âI<ÿE‰îèòÁÿÿH‹}°èYÇÿÿH‹•XþÿÿH5ÓŠ  1ÿè„¿ÿÿH…ÀtEHÇE°    H‹µ`þÿÿH‰ÇèxÂÿÿ…À‰Ã~ÉE…ötF,3L‰ÿIcõHÁæèJÂÿÿI‰ÇHcÃL$Å    ë‚E…ö~iH‹~² 1ÒH5y‰  H‹8è-ÅÿÿH‰ÃH‹c² 1ÒH5k‰  H‹8èÅÿÿH‰ÁH‹H² D‰t$L‰<$E1ÉA¸    H‰ÚH‹µ€þÿÿH‹8ètÂÿÿL‰ÿèŒÆÿÿH‹¥xþÿÿHÇD$    H‹}² L‰  H‹•€þÿÿH‰  H5‰  H‰$H‹8I‰Ð1Àº  èÅÿÿH…ÀH‰ÃHÇEÈ    tHUÈH5öˆ  H‰Ç1É1Àèl½ÿÿH‰ßè¤ÂÿÿH‹± H‹UÈH‹µ€þÿÿH‹8HÊO€! è3ÅÿÿH‹•ˆþÿÿH‹µ€þÿÿH‰Ù‹½tþÿÿègÁÿÿH‰ÃH‹]± H‹µ€þÿÿH•þÿÿH‹8èW¾ÿÿH‹@± ‹•˜þÿÿ‹œþÿÿD‹…¤þÿÿH‹µ€þÿÿH‹8èNÆÿÿ‹•pþÿÿH‰C(‹…lþÿÿ‰S@‰CDHeØ[A\A]A^A_ÉÃèt¾ÿÿH‰ÃHÇ 0   D‰p D‰pD‰x$H‰ÂD‰xH‹Ð° H‹µ€þÿÿH‹8èñÂÿÿH‰ßèYÀÿÿH‹²° H5ã†  º   H‹8è^ÃÿÿH5ã†  H‰Ãº   H‹ˆ° H‹8è@ÃÿÿH‰EÀHEÀÇD$   E1ÉA¸    ¹   H‰$H‹W° H‰ÚH‹µ€þÿÿH‹8è•ÀÿÿH‹>° H5Ð†  1ÒH‹8èíÂÿÿH‰ÃH‹#° H5Ã†  1ÒH‹8èÒÂÿÿH‰EH‹° H5Â†  1ÒH‹8è¶ÂÿÿH‰E˜H‹ë¯ H5¿†  1ÒH‹8èšÂÿÿH‰E H‹Ï¯ H5·†  1ÒH‹8è~ÂÿÿH‰E¨HEÇD$   E1ÉA¸    ¹   H‰$H‹•¯ H‰ÚH‹µ€þÿÿH‹8èÓ¿ÿÿéäûÿÿèù¼ÿÿH‰ÂH‰ÃHÇ 0   D‰p D‰pD‰x$D‰xH‹U¯ H‹µ€þÿÿH‹8èvÁÿÿH‰ßèÞ¾ÿÿAý,  „xþÿÿE„ä„ûÿÿH‹!¯ H5R…  º   H‹8èÍÁÿÿH5k…  H‰Ãº   éjþÿÿH‹ò® H5#…  º   H‹8èžÁÿÿH5W…  H‰Ãº   é;þÿÿH‹¥xþÿÿH‰Çè;ÃÿÿfffffffH‹A¯ H‹H‹@H)ÈH‰ÆHÁþu1ÀóÃ1ÒëH‹ÁHÿÂ98tï‰ÐH9ðrî1ÀëäffffffHƒìèw¼ÿÿH…ÀtH‹pH‹W® 1ÒH‹8HƒÄéÙ»ÿÿHƒÄÃfffH‰\$àH‰l$è‰óL‰d$ðL‰l$øHƒìH‰ÕA‰ÌE‰Åè)¼ÿÿH…Àt?H‹pH‹	® LD$Ç$    A¹   1É1Òf‰\$f‰l$H‹8fD‰d$fD‰l$èõ¸ÿÿH‹\$(H‹l$0L‹d$8L‹l$@HƒÄHÃfffffffffH‰l$ØL‰d$àA‰ôL‰l$èL‰t$ðA‰ÕL‰|$øH‰\$ÐHìø   A‰ÎE‰ÇèŠ»ÿÿH…ÀH‰ÅtPºÀ   1öH‰çèS¿ÿÿÇ$   H‹EI‰àD‰d$(D‰l$,¹ €  D‰t$0D‰|$41ÒH‰D$ H‹.­ H‹uH‹8èb¼ÿÿH‹œ$È   H‹¬$Ð   L‹¤$Ø   L‹¬$à   L‹´$è   L‹¼$ð   HÄø   ÃfffffffAWAVAUATUS‰óHƒì8‰T$$‰L$ èÓºÿÿ‰ßI‰Æè¹¾ÿÿM…öH‰Á•ÂH…À•À„ÐuHƒÄ8[]A\A]A^A_ÃLaL|$4E1íL‰çèóÁÿÿHD$5H‰D$HD$6H‰D$HD$7H‰D$fffL‰ç1íè–ºÿÿëfffL‰çÿÅè†ºÿÿÿÈ9èfr~L‹L$L‹D$‰êH‹L$D‰îL‰çL‰<$èþ¸ÿÿ€|$4ÿuÇ¶D$7¶L$5¶T$6H‹¬ I‹vÁàH‹;	ÈÁâ	ÂHcÒèØ¸ÿÿ‹L$$D‹D$ I‹VI‹v(H‹;DéAèè™¶ÿÿétÿÿÿfffL‰çAÿÅè%ÁÿÿÿÈD9èƒJÿÿÿHƒÄ8[]A\A]A^A_ÃfffffffH‰l$ØL‰d$àE‰ÄL‰l$èL‰t$ðA‰ÍL‰|$øH‰\$ÐHƒì8A‰÷A‰Öèm¹ÿÿH…ÀH‰ÅtNH‹N« ‹PHE1ÉH‹pA¸   1ÉH‹;è¿ÿÿH‹U H‹uH‹;è¸ÿÿH‹UH‹u(E‰éD‰$$H‹;E‰ðD‰ùè—¿ÿÿH‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffH‰l$ØL‰d$àE‰ÄL‰l$èL‰t$ðA‰ÍL‰|$øH‰\$ÐHƒìHA‰÷A‰Öè½¸ÿÿH…ÀH‰Åt^H‹žª ‹PHE1ÉH‹pA¸   1ÉH‹;èT¾ÿÿH‹U H‹uH‹;èd·ÿÿH‹UH‹u(E‰éÇD$ Z  ÇD$    E‰ðD‰$$H‹;D‰ùèW½ÿÿH‹\$H‹l$ L‹d$(L‹l$0L‹t$8L‹|$@HƒÄHÃfffH‰l$ØL‰d$àE‰ÄL‰l$èL‰t$ðA‰ÍL‰|$øH‰\$ÐHƒìHA‰÷A‰Öèý·ÿÿH…ÀH‰Åt^H‹Þ© ‹PHE1ÉH‹pA¸   1ÉH‹;è”½ÿÿH‹U H‹uH‹;è¤¶ÿÿH‹UH‹u(E‰éÇD$ Z  ÇD$    E‰ðD‰$$H‹;D‰ùè—¸ÿÿH‹\$H‹l$ L‹d$(L‹l$0L‹t$8L‹|$@HƒÄHÃfffH‰l$ØL‰d$àE‰ÄL‰l$èL‰t$ðA‰ÍL‰|$øH‰\$ÐHƒì8A‰÷A‰Öè=·ÿÿH…ÀH‰ÅtNH‹© ‹PHE1ÉH‹pA¸   1ÉH‹;èÔ¼ÿÿH‹U H‹uH‹;èäµÿÿH‹UH‹u(E‰éD‰$$H‹;E‰ðD‰ùèWºÿÿH‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffS‰óè¸¶ÿÿH…Àt‰XH[ÃffffffffffH‰\$ÐH‰l$Ø‰õL‰d$àL‰t$ðA‰ÌL‰l$èL‰|$øHƒìHA‰Öèq¶ÿÿH…ÀH‰Ã„Ã   E‰õ‰èH‹K8AÁåÁàD	èD	àH…ÉH˜H‰C „Ô   H‹9¨ L‹="¨ H‹H‹Ø¨ I‹?H‹0èý»ÿÿH‹{8èÄ½ÿÿHÇC8    ‰êf@¶Å¿   ÁâfÇD$ÿÿ	ÐD‰âf‰$fA¶ÆÁâD	èf‰D$fA¶Ä	Ðf‰D$èÌ³ÿÿH‰C8I‰ÀH‹¾§ I‹?H‰áH‹H‹^¨ H‹0è¶¸ÿÿ…Àt#H‹\$H‹l$ L‹d$(L‹l$0L‹t$8L‹|$@HƒÄHÃH‹{8è&½ÿÿHÇC8    ëÊL‹=U§ éTÿÿÿHƒìèWµÿÿH…ÀtH‹pH‹7§ H‹8HƒÄé‹²ÿÿHƒÄÃffffHƒìè'µÿÿH…ÀtH‹pH‹§ H‹8HƒÄé;¼ÿÿHƒÄÃffffH‰l$øH‰\$ðHƒìèí´ÿÿH…ÀH‰Åt5H‹Î¦ H‹pH‹;è²±ÿÿ‹MD‹U@H‹uH‹;H‹l$H‹\$HƒÄé‚µÿÿfH‹\$H‹l$HƒÄÃH‰l$ðH‰\$èL‰d$øHƒìHH‰t$èƒ´ÿÿH…ÀH‰Åt7L‹%d¦ H\$Ht$º   ¹   I‰ØI‹<$è$ºÿÿH‹uI‹<$H‰Úè¤µÿÿH‹\$0H‹l$8L‹d$@HƒÄHÃH‰l$ðH‰\$èL‰d$øHƒìè´ÿÿH…ÀH‰ÅtLL‹`H‹XL‰çèÐ±ÿÿH‰ßèx¶ÿÿH‹á¥ L‰æH‹;èV¶ÿÿH‹;H‹u(èŠ¯ÿÿH‹}0H…ÿtèl³ÿÿHÇE0    H‹$H‹l$L‹d$HƒÄÃH‰\$ÐL‰d$àE‰ÄL‰l$èL‰t$ðA‰ÍL‰|$øH‰l$ØHìÈ   A‰÷A‰Öèz³ÿÿH…ÀH‰ÃtwH‹-[¥ H‹p(H‹} è¯ÿÿH‹{0H…ÿtèð²ÿÿHÇC0    H‹sH‹} H‰âè8²ÿÿH‹sD‹D$D‰áH‹} D‰êè@ºÿÿH‹sH‹} E‰áH‰C(D‰{@E‰èD‰sDD‰ñD‰úè»²ÿÿH‹œ$˜   H‹¬$    L‹¤$¨   L‹¬$°   L‹´$¸   L‹¼$À   HÄÈ   ÃfH‹A¥ H‹H‹@H)ÈH‰ÆHÁþu1ÀóÃ1ÒëH‹ÁHÿÂH9xtí‰ÐH9ðrì1ÀëâffffAWA‰×1ÒAVAUATUSHƒìhH‹V¤ H‰|$‰t$Lt$0H‹wH‹8è,±ÿÿH‹D$D‹L$E1À1ÉH‹PH‹pH‹¤ D‰<$H‹8è¢¸ÿÿL‰÷èj®ÿÿH‹T$L‰÷H‹rèÙ±ÿÿL‰÷èq¯ÿÿ„ÀuH‹|$0H…ÿtèž¹ÿÿHƒÄh[]A\A]A^A_ÃH‹D$‹T$L‰÷‰P D‰x$è'¹ÿÿ1í9D$~%‹D$‹T$L‰÷ÁèÑûè¹ÿÿ‰Â‰ÝÁêÂÑú)ÕL‰÷èÂ±ÿÿA9ÇÇD$       A‰íHÇD$(    ‹T$(L‰÷‰T$$èÅ¸ÿÿÿÈ;D$$‚Ö   D‹d$ 1íëHÿÅAÿÄL‰÷èr±ÿÿÿÈ9Å‡¨   D9l$ŸÂE9çŸÀ„ÐtÖHD$\HL$_LL$]LD$^‰ê‹t$$H‰$L‰÷èÐ¯ÿÿ€|$\ÿ¶D$_¶T$^¶L$]uš¶À¶Ò¶ÉÁàÁâ   ÿ	È	ÂH‹D$HcÒH‹pH‹¯¢ H‹8è—¯ÿÿH‹D$E‰àD‰éH‹PH‹pH‹¢ H‹8èU­ÿÿé@ÿÿÿHÿD$(AÿÅéÿÿÿL‰÷è‹±ÿÿéyþÿÿD‰øL‰÷ÁèB8Ñûè’°ÿÿ‰Â‰\$ ÁêÂÑú)T$ éËþÿÿH‹|$0H‰ÃH…ÿtèê·ÿÿH‰ßè¢¶ÿÿfH‰\$èL‰d$øH‰ûH‰l$ðHƒìHI‰ôH‰çè_¬ÿÿH‰ÞH‰çèÔ¯ÿÿH‰çè\·ÿÿA‰$H‰çè °ÿÿH‹<$A‰D$H…ÿtè·ÿÿH‹\$0H‹l$8L‹d$@HƒÄHÃH‹<$H‰ÃH…ÿtèh·ÿÿH‰ßè ¶ÿÿAVAUATI‰ôUSH‰ûHƒìH…öHÇ    HÇG    HÇG    tUH‰÷èÚ¯ÿÿH…ÀI‰ÅtELt$1íëH…öt‰HFHÿÅI9íH‰Ct%H‹sH;sA‹¬‰D$u×L‰òH‰ßèE³ÿÿHÿÅI9íuÛHƒÄH‰Ø[]A\A]A^ÃH‹;H‰ÅH…ÿtè½¶ÿÿH‰ïèuµÿÿfffAW‰÷AVAUATI‰ÔU1íSHƒì8èöªÿÿH…ÀH‰Ã„„   ‹H…É„Š   L‰æH‰ç1íè’µÿÿL‹d$H‹$I9ÄtPL‹-  L|$ Lt$,H‰Ã‹;¾   ‰|$,è °ÿÿH…ÀtM‰ø¹   L‰òH‰ÆI‹} èÄ±ÿÿ¿D$(ÅHƒÃI9ÜuÄH‹<$H…ÿtè¶ÿÿHƒÄ8‰è[]A\A]A^A_ÃL‰çè®ÿÿH‹{‰ÂL‰æè³ÿÿ‰ÅëÕH‹<$H‰ÃH…ÿtèÊµÿÿH‰ßè‚´ÿÿfUH‰õSH‰ûHƒì(ÇG   1ÿèÆªÿÿ1Ò…ÀuHƒÄ(‰Ð[]ÃfffffH‰çH‰îè¥´ÿÿH‹$¾   ‹8è5¯ÿÿ‹H‹<$‰S‹@H…ÿº   ‰Ct¼èWµÿÿHƒÄ(º   []‰ÐÃH‹<$H‰ÃH…ÿtè8µÿÿH‰ßèð³ÿÿH‰\$ðH‰l$øHƒìH‰õèÚ´ÿÿH‰îH‰ÇH‰Ãèì³ÿÿ„ÀtH‹\$H‹l$HƒÄÃH‰îH‰ßH‹l$H‹\$HƒÄéð±ÿÿAWA‰ÏAVI‰ÖAUATUSHƒìx‰|$,‰t$(D‰D$$è
­ÿÿ‹|$(I‰Åè©ÿÿM…íH‰Å•ÂH…À•À„Ð„e  ‹u…ö„i  Iƒ}0 „á  Iƒ}8 „D  H|$0L‰öè‰³ÿÿL‹t$8H‹D$0I9Æ„š  I‰ÄD‰ýHD$PHT$hL|$lH‰D$H‰T$ëifff‹t$(‹|$,èó©ÿÿD‹D$$I‹u8M‰ùI‹}0‰éÇ$   H‰ÚAÀèß¨ÿÿH‹8ž L‹D$¹   L‰úH‰ÞH‹8è€¯ÿÿ¿D$XÅIƒÄM9æ„‹   A‹<$¾   ‰|$lèz­ÿÿH…ÀH‰Ãu‚ÇD$hýÿ  ¾   ¿ýÿ  è[­ÿÿH…Àt½‹t$(‹|$,èY©ÿÿ‹T$$I‹u8M‰ùI‹}0‰éÇ$   D1ÒèF¨ÿÿH‹Ÿ L‹D$¹   H‹T$1öH‹8èæ®ÿÿéaÿÿÿH‹|$0H…ÿtè2³ÿÿHƒÄx[]A\A]A^A_ÃL‹%\ I‹U I‹uI‹<$è;ªÿÿL‰÷è³«ÿÿ‹t$(‹|$,H‰ÃèÃ¨ÿÿD‹L$$I‹ME‰øH‹UI‹u(‰\$L‰4$I‹<$AÁèk«ÿÿHƒÄx[]A\A]A^A_ÃM…öt…L‰÷è¯²ÿÿHƒÄx[]A\A]A^A_ÃH‹éœ I‹u(H‹H‹‹ H‹H‹Áœ H‹8èi¯ÿÿH…ÀI‰E0…ëýÿÿé5ÿÿÿH‹|$0H‰ÃH…ÿtèU²ÿÿH‰ßè±ÿÿfffffffffSHƒìH‹œ H‹HƒëH;œ uHƒÄ[ÃH{¾ÿÿÿÿè °ÿÿ…ÀèHt$H‰ßèO¦ÿÿëÙH‰Çèµ°ÿÿfffAVI‰öAUATUSHìp  H‰T$8èÄ°ÿÿL‹-Å› L‹%œ L„$ð  ¹   º    H‰ÅA‹u I‹<$è­ÿÿ…À„¤  H‹œ H‹”$ð  1ÉI‹<$H‹3è¬ÿÿH‰„$à  H„$€  HÇD$ 
   ÇD$   Ç$    ¹èÿÿÿH‰D$(H‹„$ð  A¹   A¸   ‰ÊHÇ„$˜      HÇ„$ˆ      H‰D$‹„$  ‰D$H‹3I‹<$è£®ÿÿH‰EH‰ÆI‹<$1É1ÒèÏ°ÿÿH‰Eè¦¨ÿÿI‹<$HÇ    H‰ÃH‹uH‰ÂÇ@   Ç@   è.­ÿÿH‰ßHœ$   èŽªÿÿI‹<$H5.r  1Òèœ­ÿÿH”$P  HÇ„$P      HÇ„$X     H‹uÇD$   E1ÉH‰$I‹<$A¸    H‰ÁH‰ÂèäªÿÿH‹uI‹<$ºL€" è2®ÿÿA‹U H5Ïq  H‰ß1Àè­­ÿÿI‹<$1ÒH‰Þè­ÿÿI‹<$H‰ÆèóªÿÿH…ÀI‰Å…¨  Hœ$0  I‹<$Ht$8¹   º   I‰Øè®ÿÿH‹uI‹<$H‰ÚHœ$`  è|©ÿÿH”$m  L‰öH‰ßèù¥ÿÿH}H‰Þè½®ÿÿH‹œ$`  HƒëH;Š™ …K  H\$@ºÀ   1öH‰ßè°«ÿÿI‹<$H5"q  1ÒL‰l$`ÇD$@!   èa¬ÿÿÇD$p    H‰D$hI‰ØHÇD$x    HÇ„$€       L‰îH‹EI‹<$1É1ÒHÇ„$       HÇ„$˜       H‰„$ˆ   èˆ¨ÿÿHÄp  []A\A]A^ÃIcU I‹<$H„$€  Ç„$Ø     ¹èÿÿÿA¹   A¸   HÇ„$ˆ      HÇ„$È  €  HÁâH—è   H‰D$(HÇD$ 
  H‹B@ÇD$   H‰D$‹B8‰ÊÇ$    ‰D$H‹û˜ H‹0è¬ÿÿH‰ÆH‰EécýÿÿI‹<$º   H‰Æè>¬ÿÿéBþÿÿH{¾ÿÿÿÿèË¬ÿÿ…ÀŸþÿÿH´$o  H‰ßès¢ÿÿéŠþÿÿH‹œ$`  H‰ÅHƒëH;ø— uH‰ïè¾¬ÿÿH‰ÅëóëùH{¾ÿÿÿÿèy¬ÿÿ…ÀßH´$n  H‰ßè%¢ÿÿëÍfH‰\$èH‰l$ðL‰d$øHƒì(è¤ÿÿH…ÀH‰ÃtYH‹pH‹å— H‹8è]¨ÿÿH‹-†— HÇC    H‰æHÇC    ÇC     H{ÇC$    HEH‰$èt¬ÿÿH‹$HƒëH9ÝuH‹\$H‹l$L‹d$ HƒÄ(ÃH{¾ÿÿÿÿèÅ«ÿÿ…ÀÚHt$H‰ßèt¡ÿÿëËH‹$I‰ÄHƒëH9ÝuL‰çèÊ«ÿÿI‰ÄëóH{¾ÿÿÿÿè‡«ÿÿ…ÀáHt$H‰ßè6¡ÿÿëÒfffH‰l$èL‰d$ðI‰ôH‰\$àL‰l$øHì(  H‰T$è£ÿÿH…ÀH‰Å„ä   L‹-å– Hœ$Ð   Ht$¹   º   I‰ØI‹} è¢ªÿÿH‹uI‹} H‰ÚHœ$ð   è¦ÿÿH”$ý   L‰æH‰ßè—¢ÿÿH}H‰Þè[«ÿÿH‹œ$ð   HƒëH;(– …’   D‹E E…À~a‹}$…ÿ~ZH\$ºÀ   1öH‰ßè>¨ÿÿÇD$   H‹EI‰ØÇD$8    ÇD$<    ¹ €  I‹} 1ÒH‰D$0‹E ‰D$@‹E$‰D$DH‹uèH¥ÿÿH‹œ$  H‹¬$  L‹¤$  L‹¬$   HÄ(  ÃH{¾ÿÿÿÿè"ªÿÿ…ÀXÿÿÿH´$ÿ   H‰ßèÊŸÿÿéCÿÿÿH‹œ$ð   H‰ÅHƒëH;O• uH‰ïèªÿÿH‰ÅëóëùH{¾ÿÿÿÿfffèË©ÿÿ…ÀÚH´$þ   H‰ßèwŸÿÿëÈfffUH‰åH‰]ØL‰eàH‰ûL‰mèL‰uð¿(   L‰}øHìð   I‰õLu°L½(ÿÿÿèv¡ÿÿH‹{M‰ñM‰ø¹
   H‰ÂL‰îH‰…ÿÿÿèe¥ÿÿA‰ÄÁøAƒüDMàƒ}°ÿ„
  L‹5–” IFH‰… ÿÿÿ‹E°ƒø„Ç  }=E1äH‹½ÿÿÿè.©ÿÿH‹ ÿÿÿHƒëI9Þ…±  D‰àH‹]ØL‹eàL‹mèL‹uðL‹}øÉÃƒø¾H‹(ÿÿÿHùÿ  „0  Hù¾ÿ  ”ÂHù‘ÿ  ”ÀÂ…Æ  Hù¿ÿ  ”ÂHù’ÿ  ”ÀÂ…Ñ  HùÀÿ  ”ÂHù“ÿ  ”ÀÂ…  HùÁÿ  ”ÂHù”ÿ  ”ÀÂ…i  HùÂÿ  „(  HùÃÿ  „B  HùÄÿ  „\  HùÅÿ  „v  HùÆÿ  „  HùÇÿ  „ª  HùÈÿ  f„Š  HùÉÿ  ff„¡  Hùaÿ  ff„¸  Hùÿ  ff„Ï  Hùÿ  ff„æ  Hùkÿ  ff„ý  Hùÿ  ff„  Hù	ÿ  ”ÂHù‰ÿ  ”ÀÂ…F  Hù þ  „9  Hùÿ  ”ÂHùÿ  ”ÀÂ…ö  Hùåÿ  „ß  Hùæÿ  „n  Hùÿÿ  ”ÂHùŸÿ  ”ÀÂ…  HùQÿ  ”ÂHù–ÿ  ”ÀÂ…  HùSÿ  ”ÂHù˜ÿ  ”ÀÂ…Ì  HùRÿ  ”ÂHù—ÿ  ”ÀÂ…‰  HùTÿ  ”ÂHù™ÿ  ”ÀÂ…Q	  HùPÿ  ”ÂHù•ÿ  ”ÀÂ…ˆ	  HùWÿ  ”ÂHùœÿ  ”ÀÂ…E	  H‹… ÿÿÿHƒèHƒ8 …›  ƒ}°„;ýÿÿE…äŽ2ýÿÿAD$I‰çH‹µÿÿÿ1É1ÒH˜H…   HƒàðH)ÄH\$Hƒãðf‹–ÿÁ‰“HÿÂA9ÌuðIcÄL­pÿÿÿHUºÇƒ    H5˜k  L‰ïèœÿÿLe€HU»H5Uk  L‰çè…ÿÿL‰êL‹-‘ L‰æL‰ïèpŸÿÿL‹e€IƒìM9æ…ï  L‹¥pÿÿÿIƒìM9æ…  LeHU¼H‰ÞL‰çè8ÿÿH] HU½H5k  H‰ßè!ÿÿL‰âH‰ÞL‰ïèŸÿÿH‹] HƒëI9Þ…A  H‹]HƒëI9Þ…X  A¼   L‰üéüÿÿH‹½ÿÿÿIcôHÁæè€ ÿÿH‹{D‰áM‰ñM‰øH‰ÂL‰îH‰…ÿÿÿè¡ÿÿA‰ÄÁøAƒüDMàé±ûÿÿH=×h  èŸÿÿH½ ÿÿÿH‰ÂH5Áh  èœ¥ÿÿéPþÿÿL¥0ÿÿÿHU·H5j  L‰çè]œÿÿH@ÿÿÿHU¸H5j  H‰ßèCœÿÿL‹-Ü L‰âH‰ÞL‰ïè.žÿÿH‹@ÿÿÿHƒëI9Þ…  H‹0ÿÿÿHƒëI9Þ…F  L¥PÿÿÿHµ ÿÿÿL‰çèPŸÿÿH`ÿÿÿHU¹H5ºi  H‰ßèÖ›ÿÿL‰âH‰ÞL‰ïèÈÿÿH‹`ÿÿÿHƒëI9Þ…Ì  H‹PÿÿÿHƒëI9Þ…0  A¼   éËúÿÿH=ªg  èùÿÿH½ ÿÿÿH‰ÂH5”g  è“¤ÿÿéGýÿÿH=g  èÒÿÿH½ ÿÿÿH‰ÂH5yg  èl¤ÿÿé ýÿÿH=@g  è«ÿÿH½ ÿÿÿH‰ÂH5*g  èE¤ÿÿéùüÿÿH=Mg  è„ÿÿH½ ÿÿÿH‰ÂH57g  è¤ÿÿéÒüÿÿH{¾ÿÿÿÿè;£ÿÿ…À9úÿÿHuÎH‰ßèç˜ÿÿé(úÿÿH=g  è6ÿÿH½ ÿÿÿH‰ÂH5g  èÐ£ÿÿé„üÿÿH=üf  èÿÿH½ ÿÿÿH‰ÂH5æf  è©£ÿÿé]üÿÿH=áf  èèœÿÿH½ ÿÿÿH‰ÂH5Ëf  è‚£ÿÿé6üÿÿH=Æf  èÁœÿÿH½ ÿÿÿH‰ÂH5°f  è[£ÿÿéüÿÿH=«f  èšœÿÿH½ ÿÿÿH‰ÂH5•f  è4£ÿÿéèûÿÿH=f  èsœÿÿH½ ÿÿÿH‰ÂH5zf  è£ÿÿéÁûÿÿH=áf  èLœÿÿH½ ÿÿÿH‰ÂH5Ëf  èæ¢ÿÿéšûÿÿH{¾ÿÿÿÿè¢ÿÿ…À¨üÿÿHuËH‰ßè®—ÿÿé—üÿÿH{¾ÿÿÿÿèÛ¡ÿÿ…À’üÿÿHuÌH‰ßè‡—ÿÿéüÿÿfI|$¾ÿÿÿÿè±¡ÿÿ…ÀúûÿÿHuÇL‰çè]—ÿÿééûÿÿI|$¾ÿÿÿÿè‰¡ÿÿ…ÀæûÿÿHuÈL‰çè5—ÿÿéÕûÿÿH=±e  è„›ÿÿH½ ÿÿÿH‰ÂH5›e  è¢ÿÿéÒúÿÿH=še  è]›ÿÿH½ ÿÿÿH‰ÂH5„e  è÷¡ÿÿé«úÿÿH=ƒe  è6›ÿÿH½ ÿÿÿH‰ÂH5me  èÐ¡ÿÿé„úÿÿH=h  è›ÿÿH½ ÿÿÿH‰ÂH5îg  è©¡ÿÿé]úÿÿH=Me  èèšÿÿH½ ÿÿÿH‰ÂH57e  è‚¡ÿÿé6úÿÿH=>e  èÁšÿÿH½ ÿÿÿH‰ÂH5(e  è[¡ÿÿéúÿÿH=·g  èššÿÿH½ ÿÿÿH‰ÂH5¡g  è4¡ÿÿéèùÿÿH=e  èsšÿÿH½ ÿÿÿH‰ÂH5e  è¡ÿÿéÁùÿÿH{¾ÿÿÿÿè* ÿÿ…ÀüÿÿHuÃH‰ßèÖ•ÿÿéüÿÿH{¾ÿÿÿÿè ÿÿ…À¤ûÿÿHuÀH‰ßè®•ÿÿé“ûÿÿH{¾ÿÿÿÿèÛŸÿÿ…ÀiûÿÿHu¿H‰ßè‡•ÿÿéXûÿÿfH{¾ÿÿÿÿè²Ÿÿÿ…ÀºûÿÿHuÄH‰ßA¼   èX•ÿÿéyöÿÿffH=ed  è¤™ÿÿH½ ÿÿÿH‰ÂH5Od  è> ÿÿéòøÿÿH=Âf  è}™ÿÿH½ ÿÿÿH‰ÂH5¬f  è ÿÿéËøÿÿH=_d  èV™ÿÿH½ ÿÿÿH‰ÂH5Id  èðŸÿÿé¤øÿÿH= d  è/™ÿÿH½ ÿÿÿH‰ÂH5
d  èÉŸÿÿé}øÿÿH=åc  è™ÿÿH½ ÿÿÿH‰ÂH5Ïc  è¢ŸÿÿéVøÿÿH=Nf  èá˜ÿÿH½ ÿÿÿH‰ÂH58f  è{Ÿÿÿé/øÿÿL‹¥`ÿÿÿH‰ÃIƒìM9æuuL‹¥PÿÿÿIƒìM9æuAL‹¥ ÿÿÿIƒìM9æuH‰ßè›žÿÿH‰Çè“žÿÿI|$¾ÿÿÿÿèTžÿÿ…ÀÝHuÏL‰çè”ÿÿëÏI|$¾ÿÿÿÿè3žÿÿ…À«HuÅL‰çèâ“ÿÿfë›I|$¾ÿÿÿÿèžÿÿ…ÀtÿÿÿHuÂL‰çè»“ÿÿécÿÿÿH‰ÃékÿÿÿH‰ÃL‹¥0ÿÿÿIƒìM9æ„TÿÿÿI|$¾ÿÿÿÿèÈÿÿ…À=ÿÿÿHuÁL‰çèt“ÿÿé,ÿÿÿë·ëµL‹¥@ÿÿÿH‰ÃIƒìM9æt­I|$¾ÿÿÿÿè‰ÿÿ…ÀšHu¾L‰çè9“ÿÿëŒé|ÿÿÿfë€H‰ÃéÓþÿÿffffëðH=‡b  èr—ÿÿH½ ÿÿÿH‰ÂH5qb  èžÿÿéÀöÿÿé<ÿÿÿH=ƒb  èF—ÿÿH½ ÿÿÿH‰ÂH5mb  èàÿÿé”öÿÿH=Hb  è—ÿÿH½ ÿÿÿH‰ÂH52b  è¹ÿÿémöÿÿH‰ÃL‰üéVþÿÿL‹e€H‰ÃIƒìM9æu;L‹¥pÿÿÿIƒìM9ætØI|$¾ÿÿÿÿèªœÿÿ…ÀÅHuÉL‰çèZ’ÿÿë·H‰ÃëÊffëªI|$¾ÿÿÿÿfffè{œÿÿ…À®HuÆL‰çè+’ÿÿë H‰ÃL‹eIƒìM9æ„tÿÿÿI|$¾ÿÿÿÿèFœÿÿ…À]ÿÿÿHuÍL‰çèò‘ÿÿféJÿÿÿéBÿÿÿffffé7ÿÿÿffffffffé'ÿÿÿL‹e H‰ÃIƒìM9æt•I|$¾ÿÿÿÿèì›ÿÿ…À‚HuÊL‰çèœ‘ÿÿéqÿÿÿé:ÿÿÿfébÿÿÿfffffffAWAVAUATUSHìØ  H‹x‡ H‰8H=Ó^  è‰“ÿÿ¿   H‰Æè¬—ÿÿ1ÿèåœÿÿL‹=.‡ H…ÀI‰„,&  I‹?H5»^  1ÒèÑ™ÿÿH‹²‡ I‹?H5°^  H‰1Òè¶™ÿÿH‹Ç† H=Š^  H‰è•ÿÿI‹?L‹-Ž† ‹·à   H‹—è   HcÆA‰u HÁàH‹TH‹ú† H‰è:œÿÿH‹‹† I‹?1É1öH‰1Òèb’ÿÿH‹‡ H…ÀH‰„®%  H‹;H”$h  H5I^  1É1Àè’ÿÿH‹”$h  L‹%m† fƒ: IÇ$    tJ1í1Ûë·ÿÅHƒÃ9è~7H‹BH‹<H‰ø%  H9ÇuÞI‹4$ÿÅHƒÃèP“ÿÿH‹”$h  I‰$·9èÉH‰×è••ÿÿI‹IcE 1ÿH‹‘è   HÁàH‹DPH‹å… H‰‹AH‹¨… ‰H‹ß… ÿH‹î… €8 …–  H‹†… H‹5_… ¸   L‹[… ‹
HÇ    HÇF    HÇF    HÇF    HÇF     HcÑƒá?HÇF(    HÁêHÓàHÇF0    HÇF8    HÇF@    1ÉHÇFH    HÇFP    HÇFX    HÇF`    HÇFh    HÇFp    HÇFx    H	Ö1ÒH‹Ö„ IÇ@'  IÇ     ‹8ÿÇè.“ÿÿI‹?èFÿÿ…À„.  Lt$ I‹?L‰öèN˜ÿÿ‹D$ ƒø„!  ƒø„¬  ƒø"„?  ƒø„C  ƒøff„ú  ƒø„±  ƒø„h  ƒø	fff„s  ƒø
„G  ƒø!„-  ƒøfff…þÿÿH‹|$@è”ÿÿH…À„zþÿÿ‹T$\‹t$XH‰Çè•ÿÿH‹X„ €8 „jþÿÿL‹%h„ I‹D$I+$HÁø…À„3  1íA‰ÅëH‰ßHÿÅè©™ÿÿAEÿHÿÀH9è„  I‹$I‹D$‰éH)ÐHÁøH9ÁƒÎ!  H‹ÊD‹KE…Éu½H‹sI‹?èå“ÿÿë¯ffH‹¹ƒ 1ÿÿéÓýÿÿH‹|$@èÖ”ÿÿH…ÀI‰Å„Z  L‹%ƒ H¬$p  L‰çèó’ÿÿL‰çè›—ÿÿH”$ÿ  H5L_  H‰ïèDÿÿHœ$€  H”$   H55]  H‰ßè%ÿÿH‰êH‰ÞL‰çè‘ÿÿH‹œ$€  HƒëH;´‚ …	  H‹œ$p  HƒëH9›‚ …F  H¬$  A‹] H”$  H5æ\  H‰ïèÂŽÿÿ‰ÚH‰îL‰çèõŒÿÿH‹œ$  HƒëH9R‚ …Ò  H¬$   ‹\$HH”$  H5©\  H‰ïèyŽÿÿ‰ÚH‰îL‰çè¬ŒÿÿH‹œ$   HƒëH9	‚ …`  H¬$°  ‹\$LH”$  H5h\  H‰ïè0Žÿÿ‰ÚH‰îL‰çècŒÿÿH‹œ$°  HƒëH9À …ì  H¬$À  ‹\$PH”$  H5'\  H‰ïèçÿÿ‰ÚH‰îL‰çèŒÿÿH‹œ$À  HƒëH9w …x  H¬$Ð  ‹\$TH”$  H5ö[  H‰ïèžÿÿ‰ÚH‰îL‰çèÑ‹ÿÿH‹œ$Ð  HƒëH9. …  L‰çèÀ”ÿÿH‹‰ H¼$à  L‰æH‹èfŒÿÿH‹¬$à  H‰ïÿÓH]èH9î€ …  ‹D$TI‹MI‹UI‹u(D‹L$LD‹D$H‰D$‹D$PD‰L$D‰D$‰$I‹?èqŽÿÿé?ûÿÿH‹|$@èB’ÿÿH…ÀI‰Å„)ûÿÿL‹%€ H¬$ð  L‰çè_ÿÿL‰çè•ÿÿH”$  H5Ø\  H‰ïè°ŒÿÿHœ$   H”$  H5¡Z  H‰ßè‘ŒÿÿH‰êH‰ÞL‰çèƒŽÿÿH‹œ$   HƒëH; € …*  H‹œ$ð  HƒëH9€ …ã  H¬$  A‹] H”$  H5RZ  H‰ïè.Œÿÿ‰ÚH‰îL‰çèaŠÿÿH‹œ$  HƒëH9¾ …o  L‰öL‰ïè]’ÿÿ„À„¸  ‹D$pH¬$   H”$	  H5FZ  H‰ïƒà¶ØèÌ‹ÿÿ‰ÚH‰îL‰çèïÿÿH‹œ$   HƒëH9\ …v  ‹\$pH¬$0  H”$
  H5Z  H‰ïÁëƒãè}‹ÿÿ‰ÚH‰îL‰çè ÿÿH‹œ$0  HƒëH9 …÷  Hœ$@  H”$  H5ØY  H‰ßè8‹ÿÿ1ÒH‰ÞL‰çè[ÿÿH‹œ$@  HƒëH9È~ …Â  Hœ$P  H”$  H5C[  H‰ßèóŠÿÿ1ÒH‰ÞL‰çèÿÿH‹œ$P  HƒëH9ƒ~ …M  L‰çè’ÿÿH‹Þ~ H¼$`  L‰æH‹è»‰ÿÿH‹¬$`  H‰ïÿÓH]èH9C~ „ÐøÿÿH{¾ÿÿÿÿèÏ’ÿÿ…ÀºøÿÿH´$]  H‰ßèwˆÿÿé¥øÿÿfL‰÷èHÿÿé–øÿÿH‹|$@è™ÿÿH…ÀI‰Å„€øÿÿL‹%Ö} H¬$p  L‰çè¶ÿÿL‰çè^’ÿÿH”$  H5·X  H‰ïèŠÿÿHœ$€  H”$  H5øW  H‰ßèè‰ÿÿH‰êH‰ÞL‰çèÚ‹ÿÿH‹œ$€  HƒëH;w} …1  H‹œ$p  HƒëH9^} …è  H¬$  H”$  H5QX  H‰ïè‰‰ÿÿHœ$   H”$  H5FX  H‰ßèj‰ÿÿH‰êH‰ÞL‰çè\‹ÿÿH‹œ$   HƒëH9ù| …S  H‹œ$  HƒëH9à| …
  H¬$°  A‹] H”$  H5+W  H‰ïè‰ÿÿ‰ÚH‰îL‰çè:‡ÿÿH‹œ$°  HƒëH9—| …‘  H¬$À  ‹\$`H”$  H5îV  H‰ïè¾ˆÿÿ‰ÚH‰îL‰çèñ†ÿÿH‹œ$À  HƒëH9N| …  H¬$Ð  ‹\$dH”$  H5­V  H‰ïèuˆÿÿ‰ÚH‰îL‰çè¨†ÿÿH‹œ$Ð  HƒëH9| …Ÿ  H¬$à  L‰÷è†ÿÿH”$  ‰ÃH5W  H‰ïè&ˆÿÿ‰ÚH‰îL‰çèY†ÿÿH‹œ$à  HƒëH9¶{ …   L‰çèHÿÿH‹| H¼$ð  L‰æH‹èî†ÿÿH‹¬$ð  H‰ïÿÓH]èH9v{ „öÿÿH{¾ÿÿÿÿèÿÿ…ÀíõÿÿH´$o  H‰ßèª…ÿÿéØõÿÿfffH‹|$@èÖŒÿÿH…ÀI‰Å„½õÿÿL‹%{ H¬$   L‰çèóŠÿÿL‰çè›ÿÿH”$  H5ôU  H‰ïèD‡ÿÿHœ$  H”$  H55U  H‰ßè%‡ÿÿH‰êH‰ÞL‰çè‰ÿÿH‹œ$  HƒëH;´z …N  H‹œ$   HƒëH9›z …Õ  H¬$   H”$  H56W  H‰ïèÆ†ÿÿHœ$0  H”$  H5ƒU  H‰ßè§†ÿÿH‰êH‰ÞL‰çè™ˆÿÿH‹œ$0  HƒëH96z …@  H‹œ$   HƒëH9z …÷  H¬$@  A‹] H”$  H5hT  H‰ïèD†ÿÿ‰ÚH‰îL‰çèw„ÿÿH‹œ$@  HƒëH9Ôy …~  H¬$P  ‹\$`H”$  H5+T  H‰ïèû…ÿÿ‰ÚH‰îL‰çè.„ÿÿH‹œ$P  HƒëH9‹y …  H¬$`  ‹\$dH”$  H5êS  H‰ïè²…ÿÿ‰ÚH‰îL‰çèåƒÿÿH‹œ$`  HƒëH9By …Œ  H¬$p  L‰÷èLƒÿÿH”$  ‰ÃH5[T  H‰ïèc…ÿÿ‰ÚH‰îL‰çè–ƒÿÿH‹œ$p  HƒëH9óx …]  L‰çè…ŒÿÿH‹Ny H¼$€  L‰æH‹è+„ÿÿH‹¬$€  H‰ïÿÓH]èH9³x „@óÿÿH{¾ÿÿÿÿè?ÿÿ…À*óÿÿH´$  H‰ßèç‚ÿÿéóÿÿfH‹|$@èŠÿÿH…ÀI‰Å„ß  L‹%Sx H¬$  L‰çè3ˆÿÿL‰çèÛŒÿÿH”$  H54S  H‰ïè„„ÿÿHœ$   H”$  H5uR  H‰ßèe„ÿÿH‰êH‰ÞL‰çèW†ÿÿH‹œ$   HƒëH;ôw ….  H‹œ$  HƒëH9Ûw …å  H¬$°  H”$  H5¦T  H‰ïè„ÿÿHœ$À  H”$   H5ÃR  H‰ßèçƒÿÿH‰êH‰ÞL‰çèÙ…ÿÿH‹œ$À  HƒëH9vw …P  H‹œ$°  HƒëH9]w …  H¬$Ð  A‹] H”$!  H5¨Q  H‰ïè„ƒÿÿ‰ÚH‰îL‰çè·ÿÿH‹œ$Ð  HƒëH9w …Ž  H¬$à  ‹\$`H”$"  H5kQ  H‰ïè;ƒÿÿ‰ÚH‰îL‰çènÿÿH‹œ$à  HƒëH9Ëv …å  H¬$ð  ‹\$dH”$#  H5*Q  H‰ïèò‚ÿÿ‰ÚH‰îL‰çè%ÿÿH‹œ$ð  HƒëH9‚v …l  H¬$   L‰÷èŒ€ÿÿH”$$  ‰ÃH5›Q  H‰ïè£‚ÿÿ‰ÚH‰îL‰çèÖ€ÿÿH‹œ$   HƒëH93v …}  L‰çèÅ‰ÿÿH‹Žv H¼$  L‰æH‹èkÿÿH‹¬$  H‰ïÿÓH]èH9óu „€ðÿÿH{¾ÿÿÿÿèŠÿÿ…ÀjðÿÿH´$“  H‰ßè'€ÿÿéUðÿÿfH‹t$@I‹?1Éº   è¬ÿÿé:ðÿÿH‹|$@è=‡ÿÿH…ÀI‰Å„$ðÿÿL‹%zu H¬$à  L‰çèZ…ÿÿL‰çèŠÿÿH”$/  H5ÛP  H‰ïè«ÿÿHœ$ð  H”$0  H5œO  H‰ßèŒÿÿH‰êH‰ÞL‰çè~ƒÿÿH‹œ$ð  HƒëH;u …U  H‹œ$à  HƒëH9u …¼  H¬$   H”$1  H5yP  H‰ïè-ÿÿHœ$  H”$2  H5êO  H‰ßèÿÿH‰êH‰ÞL‰çè ƒÿÿH‹œ$  HƒëH9t …'  H‹œ$   HƒëH9„t …Þ  H¬$   A‹] H”$3  H5ÏN  H‰ïè«€ÿÿ‰ÚH‰îL‰çèÞ~ÿÿH‹œ$   HƒëH9;t …e  L‰çèÍ‡ÿÿH‹–t H¼$0  L‰æH‹èsÿÿH‹¬$0  H‰ïÿÓH]èH9ûs „ˆîÿÿH{¾ÿÿÿÿè‡ˆÿÿ…ÀrîÿÿH´$·  H‰ßè/~ÿÿé]îÿÿH‹|$@è`…ÿÿH…ÀI‰Å„GîÿÿL‹%s H¬$@  L‰çè}ƒÿÿL‰çè%ˆÿÿH”$4  H5þN  H‰ïèÎÿÿHœ$P  H”$5  H5¿M  H‰ßè¯ÿÿH‰êH‰ÞL‰çè¡ÿÿH‹œ$P  HƒëH;>s …h  H‹œ$@  HƒëH9%s …  H¬$`  H”$6  H5pP  H‰ïèPÿÿHœ$p  H”$7  H5N  H‰ßè1ÿÿH‰êH‰ÞL‰çè#ÿÿH‹œ$p  HƒëH9Àr …Š  H‹œ$`  HƒëH9§r …A  H¬$€  A‹] H”$8  H5òL  H‰ïèÎ~ÿÿ‰ÚH‰îL‰çè}ÿÿH‹œ$€  HƒëH9^r …È  L‰çèð…ÿÿH‹¹r H¼$  L‰æH‹è–}ÿÿH‹¬$  H‰ïÿÓH]èH9r „«ìÿÿH{¾ÿÿÿÿèª†ÿÿ…À•ìÿÿH´$Ã  H‰ßèR|ÿÿé€ìÿÿL‰çèÅÿÿfffénìÿÿH‹|$@èqƒÿÿH…ÀH‰Å„XìÿÿH‹¶r H‹ H9D$H…CìÿÿH‹Ñq H‹H9T$X….ìÿÿL‹%„q L¬$   L‰çèdÿÿL‰çè†ÿÿH”$9  H5åL  L‰ïèµ}ÿÿHœ$°  H”$:  H5¦K  H‰ßè–}ÿÿL‰êH‰ÞL‰çèˆÿÿH‹œ$°  HƒëH;%q …¤%  H‹œ$   HƒëH9q …¶%  L¬$À  H”$;  H5N  L‰ïè7}ÿÿHœ$Ð  H”$<  H5ôK  H‰ßè}ÿÿL‰êH‰ÞL‰çè
ÿÿH‹œ$Ð  HƒëH9§p …I&  H‹œ$À  HƒëH9Žp …k%  ‹] H¬$à  H”$=  H5ÚJ  H‰ïè¶|ÿÿ‰ÚH‰îL‰çèézÿÿH‹œ$à  HƒëH9Fp …Q)  L‰çèØƒÿÿH‹¡p H¼$ð  L‰æH‹è~{ÿÿH‹¬$ð  H‰ïÿÓH]èH9p „“êÿÿH{¾ÿÿÿÿè’„ÿÿ…À}êÿÿH´$Ï  H‰ßè:zÿÿéhêÿÿfffH‹|$@èæÿÿH…ÀH‰Ã„MêÿÿI‹?H‹pH”$à   è}ÿÿ‹”$ì   ‹´$è   H‰ßèÀ€ÿÿéêÿÿH‹|$@è¡ÿÿH…ÀH‰Å„êÿÿ‹D$tƒø„Ï  ƒø…òéÿÿL‹%Ho L¬$€  L‰çè(ÿÿL‰çèÐƒÿÿH”$*  H5J  L‰ïèy{ÿÿHœ$  H”$+  H5jI  H‰ßèZ{ÿÿL‰êH‰ÞL‰çèL}ÿÿH‹œ$  HƒëH;én …@'  H‹œ$€  HƒëH9Ðn …Ï&  L¬$   H”$,  H5ëK  L‰ïèûzÿÿHœ$°  H”$-  H5¸I  H‰ßèÜzÿÿL‰êH‰ÞL‰çèÎ|ÿÿH‹œ$°  HƒëH9kn …—&  H‹œ$   HƒëH9Rn …Ô&  ‹] H¬$À  H”$.  H5žH  H‰ïèzzÿÿ‰ÚH‰îL‰çè­xÿÿH‹œ$À  HƒëH9
n …0  L‰çèœÿÿH‹en H¼$Ð  L‰æH‹èByÿÿH‹¬$Ð  H‰ïÿÓH]èH9Êm „WèÿÿH{¾ÿÿÿÿèV‚ÿÿ…ÀAèÿÿH´$«  H‰ßèþwÿÿé,èÿÿL‹%‚m L¬$   L‰çèb}ÿÿL‰çè
‚ÿÿH”$%  H5ÇH  L‰ïè³yÿÿHœ$0  H”$&  H5¤G  H‰ßè”yÿÿL‰êH‰ÞL‰çè†{ÿÿH‹œ$0  HƒëH;#m …d  H‹œ$   HƒëH9
m …v  L¬$@  H”$'  H5ýI  L‰ïè5yÿÿHœ$P  H”$(  H5òG  H‰ßèyÿÿL‰êH‰ÞL‰çè{ÿÿH‹œ$P  HƒëH9¥l …÷  H‹œ$@  HƒëH9Œl …®  ‹] H¬$`  H”$)  H5ØF  H‰ïè´xÿÿ‰ÚH‰îL‰çèçvÿÿH‹œ$`  HƒëH9Dl ……  L‰çèÖÿÿH‹Ÿl H¼$p  L‰æH‹è|wÿÿH‹¬$p  H‰ïÿÓH]èH9l „‘æÿÿH{¾ÿÿÿÿè€ÿÿ…À{æÿÿH´$Ÿ  H‰ßè8vÿÿéfæÿÿffH{¾ÿÿÿÿèb€ÿÿ…ÀÒêÿÿH´$M  H‰ßè
vÿÿé½êÿÿH{¾ÿÿÿÿè7€ÿÿ…ÀáèÿÿH´$?  H‰ßèßuÿÿéÌèÿÿH{¾ÿÿÿÿè€ÿÿ…ÀéÿÿH´$C  H‰ßè´uÿÿééÿÿH{¾ÿÿÿÿèáÿÿ…À¤èÿÿH´$@  H‰ßè‰uÿÿéèÿÿH{¾ÿÿÿÿè¶ÿÿ…ÀæéÿÿH´$K  H‰ßè^uÿÿéÑéÿÿH{¾ÿÿÿÿè‹ÿÿ…ÀréÿÿH´$I  H‰ßè3uÿÿé]éÿÿH{¾ÿÿÿÿè`ÿÿ…ÀþèÿÿH´$G  H‰ßèuÿÿééèÿÿH{¾ÿÿÿÿè5ÿÿ…ÀŠèÿÿH´$E  H‰ßèÝtÿÿéuèÿÿL‹-ñj I‹]MuL9ót!H‹s(H…ötI‹?èóÿÿH‰ßè+|ÿÿL9ðH‰ÃußL‹%\j I‹|$H…ÿt%H‰ûëH‰ëH‹sL‰çèŽ~ÿÿH‹kH‰ßè"€ÿÿH…íuàI‹}ID$IÇD$    IÇD$(    I‰D$I‰D$ H…ÿt%H‰ûëH‰ëH‹sL‰ïètÿÿH‹kH‰ßèÓÿÿH…íuàH‹j I‹?M‰uM‰u IÇE    IÇE(    H‹2èävÿÿI‹?èuÿÿHÄØ  []A\A]A^A_Ã1ÛëÿÃIƒl$A9Ý„íþÿÿI‹<$I‹T$HwH9òtÝH)òèûvÿÿëÓH{¾ÿÿÿÿèÛ}ÿÿ…À{éÿÿH´$S  H‰ßèƒsÿÿéféÿÿH{¾ÿÿÿÿè°}ÿÿ…ÀéÿÿH´$P  H‰ßèXsÿÿéòèÿÿffH{¾ÿÿÿÿè‚}ÿÿ…ÀÀèÿÿH´$O  H‰ßè*sÿÿé«èÿÿfffH{¾ÿÿÿÿèR}ÿÿ…À¼ðÿÿH´$ƒ  H‰ßèúrÿÿé§ðÿÿfffH{¾ÿÿÿÿè"}ÿÿ…ÀÊìÿÿH´$m  H‰ßèÊrÿÿéµìÿÿfffH{¾ÿÿÿÿèò|ÿÿ…ÀKìÿÿH´$k  H‰ßèšrÿÿé6ìÿÿfffH{¾ÿÿÿÿèÂ|ÿÿ…ÀÒëÿÿH´$i  H‰ßèjrÿÿé½ëÿÿfffH{¾ÿÿÿÿè’|ÿÿ…ÀYëÿÿH´$g  H‰ßè:rÿÿéDëÿÿfffH{¾ÿÿÿÿèb|ÿÿ…ÀàêÿÿH´$d  H‰ßè
rÿÿéËêÿÿfffH{¾ÿÿÿÿè2|ÿÿ…À—êÿÿH´$c  H‰ßèÚqÿÿé‚êÿÿfffH{¾ÿÿÿÿè|ÿÿ…ÀêÿÿH´$`  H‰ßèªqÿÿéíéÿÿfffH{¾ÿÿÿÿèÒ{ÿÿ…À¹éÿÿH´$_  H‰ßèzqÿÿé¤éÿÿfffH{¾ÿÿÿÿè¢{ÿÿ…À~ðÿÿH´$  H‰ßèJqÿÿéiðÿÿfffH{¾ÿÿÿÿèr{ÿÿ…ÀðÿÿH´$  H‰ßèqÿÿéðïÿÿfffH{¾ÿÿÿÿèB{ÿÿ…ÀmðÿÿH´$‘  H‰ßèêpÿÿéXðÿÿfffH{¾ÿÿÿÿè{ÿÿ…À\ïÿÿH´$‹  H‰ßèºpÿÿéGïÿÿfffH{¾ÿÿÿÿèâzÿÿ…ÀãîÿÿH´$ˆ  H‰ßèŠpÿÿéÎîÿÿfffH{¾ÿÿÿÿè²zÿÿ…ÀšîÿÿH´$‡  H‰ßèZpÿÿé…îÿÿfffH{¾ÿÿÿÿè‚zÿÿ…ÀîÿÿH´$„  H‰ßè*pÿÿéðíÿÿfffH{¾ÿÿÿÿèRzÿÿ…À•ðÿÿH´$­  H‰ßèúoÿÿé€ðÿÿfffH{¾ÿÿÿÿè"zÿÿ…ÀìÿÿH´$  H‰ßèÊoÿÿéxìÿÿfffH{¾ÿÿÿÿèòyÿÿ…ÀœêÿÿH´$q  H‰ßèšoÿÿé‡êÿÿfffH{¾ÿÿÿÿèÂyÿÿ…ÀæÿÿH´$[  H‰ßèjoÿÿéˆæÿÿfffH{¾ÿÿÿÿè’yÿÿ…À(æÿÿH´$Y  H‰ßè:oÿÿéæÿÿfffH{¾ÿÿÿÿèbyÿÿ…À…ðÿÿH´$µ  H‰ßè
oÿÿépðÿÿfffH{¾ÿÿÿÿè2yÿÿ…ÀðÿÿH´$²  H‰ßèÚnÿÿé÷ïÿÿfffH{¾ÿÿÿÿèyÿÿ…ÀÃïÿÿH´$±  H‰ßèªnÿÿé®ïÿÿfffH{¾ÿÿÿÿèÒxÿÿ…À.ïÿÿH´$®  H‰ßèznÿÿéïÿÿfffH{¾ÿÿÿÿè¢xÿÿ…ÀóäÿÿH´$W  H‰ßèJnÿÿéÞäÿÿfffH{¾ÿÿÿÿèrxÿÿ…ÀtäÿÿH´$U  H‰ßènÿÿé_äÿÿfffH{¾ÿÿÿÿèBxÿÿ…À^êÿÿH´$}  H‰ßèêmÿÿéIêÿÿfffH{¾ÿÿÿÿèxÿÿ…ÀåéÿÿH´${  H‰ßèºmÿÿéÐéÿÿfffH{¾ÿÿÿÿèâwÿÿ…ÀléÿÿH´$y  H‰ßèŠmÿÿéWéÿÿfffH{¾ÿÿÿÿè²wÿÿ…ÀóèÿÿH´$v  H‰ßèZmÿÿéÞèÿÿfffH{¾ÿÿÿÿè‚wÿÿ…ÀªèÿÿH´$u  H‰ßè*mÿÿé•èÿÿfffH{¾ÿÿÿÿèRwÿÿ…ÀèÿÿH´$r  H‰ßèúlÿÿé èÿÿfffH{¾ÿÿÿÿè"wÿÿ…À"ðÿÿH´$Á  H‰ßèÊlÿÿéðÿÿfffH{¾ÿÿÿÿèòvÿÿ…À©ïÿÿH´$¾  H‰ßèšlÿÿé”ïÿÿfffH{¾ÿÿÿÿèÂvÿÿ…À`ïÿÿH´$½  H‰ßèjlÿÿéKïÿÿfffH{¾ÿÿÿÿè’vÿÿ…ÀËîÿÿH´$º  H‰ßè:lÿÿé¶îÿÿfffH{¾ÿÿÿÿèbvÿÿ…À‚îÿÿH´$¹  H‰ßè
lÿÿémîÿÿfffH=Ê7  èäuÿÿH‰Çè\vÿÿH‰ÃH‰ßèQvÿÿH‰ÃëóH‰ÃH‹¬$   HƒíH9-fa tÛH}¾ÿÿÿÿèöuÿÿ…ÀÉH´$w  H‰ïè¢kÿÿë·H‰Ãë²H‰Ãë­H‰ÃH‹¬$p  HƒíH;- a t•H}¾ÿÿÿÿè°uÿÿ…ÀƒH´$A  H‰ïè\kÿÿénÿÿÿH‹¬$€  H‰ÃHƒíH;-á` t¬H}¾ÿÿÿÿèquÿÿ…ÀšH´$>  H‰ïèkÿÿëˆH‰Ãé*ÿÿÿffépÿÿÿépÿÿÿH‹ç` H=r8  º   ¾   H‹è–nÿÿé¯ÙÿÿH‹Â` H=„8  º   ¾   H‹èqnÿÿé-ÚÿÿéÖþÿÿH‹¬$  H‰ÃHƒíH9-A` „²þÿÿH}¾ÿÿÿÿèÍtÿÿ…ÀœþÿÿH´$B  H‰ïèujÿÿé‡þÿÿH‰ÃéþÿÿH‹¬$   H‰ÃHƒíH9-ò_ „cþÿÿH}¾ÿÿÿÿè~tÿÿ…ÀMþÿÿH´$D  H‰ïè&jÿÿé8þÿÿH‰Ãé0þÿÿH‹¬$°  H‰ÃHƒíH9-£_ „þÿÿH}¾ÿÿÿÿè/tÿÿ…ÀþýÿÿH´$F  H‰ïè×iÿÿééýÿÿH‹¬$À  H‰ÃHƒíH9-\_ „ÍýÿÿH}¾ÿÿÿÿèèsÿÿ…À·ýÿÿH´$H  H‰ïèiÿÿé¢ýÿÿH‰ÃéšýÿÿH‰Ãé’ýÿÿH‹¬$Ð  H‰ÃHƒíH9-_ „výÿÿH}¾ÿÿÿÿè‘sÿÿ…À`ýÿÿH´$J  H‰ïè9iÿÿéKýÿÿHƒíH9-É^ H‰Ã„7ýÿÿH}¾ÿÿÿÿèRsÿÿ…À!ýÿÿH´$L  H‰ïèúhÿÿéýÿÿéüüÿÿH‰ÃéÿüÿÿH‰ÃH‹¬$ð  HƒíH;-r^ „ãüÿÿH}¾ÿÿÿÿèþrÿÿ…ÀÍüÿÿH´$Q  H‰ïè¦hÿÿé¸üÿÿH‹¬$   H‰ÃHƒíH;-+^ t¤H}¾ÿÿÿÿè»rÿÿ…À’H´$N  H‰ïèghÿÿë€H‹¬$  H‰ÃHƒíH9-ï] „`üÿÿH}¾ÿÿÿÿè{rÿÿ…ÀJüÿÿH´$R  H‰ïè#hÿÿé5üÿÿH‰Ãé-üÿÿH‰Ãffé"üÿÿéÿÿÿfffféÿÿÿH‹¬$   H‰ÃHƒíH9-…] „öûÿÿH}¾ÿÿÿÿèrÿÿ…ÀàûÿÿH´$T  H‰ïè¹gÿÿéËûÿÿH‰ÃéÃûÿÿH‹¬$0  H‰ÃHƒíH9-6] „§ûÿÿH}¾ÿÿÿÿèÂqÿÿ…À‘ûÿÿH´$V  H‰ïèjgÿÿé|ûÿÿH‰ÃétûÿÿH‹¬$@  H‰ÃHƒíH9-ç\ „XûÿÿH}¾ÿÿÿÿèsqÿÿ…ÀBûÿÿH´$X  H‰ïègÿÿé-ûÿÿH‹¬$P  H‰ÃHƒíH9- \ „ûÿÿH}¾ÿÿÿÿè,qÿÿ…ÀûúÿÿH´$Z  H‰ïèÔfÿÿéæúÿÿH‰ÃéÞúÿÿHƒíH9-\\ H‰Ã„ÊúÿÿH}¾ÿÿÿÿèåpÿÿ…À´úÿÿH´$\  H‰ïèfÿÿéŸúÿÿéúÿÿffé‡úÿÿH‹¬$€  H‰ÃHƒíH;-\ uLH‹¬$p  HƒíH;-ð[ „aúÿÿH}¾ÿÿÿÿè|pÿÿ…ÀKúÿÿH´$a  H‰ïè$fÿÿé6úÿÿH‰Ãé.úÿÿH}¾ÿÿÿÿèIpÿÿ…À¢H´$^  H‰ïèõeÿÿëH‰ÃéúÿÿH‰ÃH‹¬$  HƒíH9-u[ „æùÿÿH}¾ÿÿÿÿèpÿÿ…ÀÐùÿÿH´$e  H‰ïè©eÿÿé»ùÿÿH‹¬$   H‰ÃHƒíH9-.[ t¤H}¾ÿÿÿÿè¾oÿÿ…À’H´$b  H‰ïèjeÿÿë€éDÿÿÿffépÿÿÿH‰ÃfffffféèþÿÿH‰ÃéZùÿÿH‹¬$°  H‰ÃHƒíH9-ÍZ „>ùÿÿH}¾ÿÿÿÿèYoÿÿ…À(ùÿÿH´$f  H‰ïèeÿÿéùÿÿH‰ÃéùÿÿH‹¬$À  H‰ÃHƒíH9-~Z „ïøÿÿH}¾ÿÿÿÿè
oÿÿ…ÀÙøÿÿH´$h  H‰ïè²dÿÿéÄøÿÿH‰Ãé¼øÿÿH‹¬$Ð  H‰ÃHƒíH9-/Z „ øÿÿH}¾ÿÿÿÿè»nÿÿ…ÀŠøÿÿH´$j  H‰ïècdÿÿéuøÿÿH‰ÃémøÿÿH‹¬$à  H‰ÃHƒíH9-àY „QøÿÿH}¾ÿÿÿÿèlnÿÿ…À;øÿÿH´$l  H‰ïèdÿÿé&øÿÿHƒíH9-¤Y H‰Ã„øÿÿH}¾ÿÿÿÿè-nÿÿ…Àü÷ÿÿH´$n  H‰ïèÕcÿÿéç÷ÿÿH‰ÃH‹¬$   HƒíH;-ZY „Ë÷ÿÿH}¾ÿÿÿÿèæmÿÿ…Àµ÷ÿÿH´$s  H‰ïèŽcÿÿé ÷ÿÿH‹¬$  H‰ÃHƒíH;-Y t¤H}¾ÿÿÿÿè£mÿÿ…À’H´$p  H‰ïèOcÿÿë€éT÷ÿÿffffffékÿÿÿffffffffé7÷ÿÿH‹¬$0  H‰ÃHƒíH9-µX „6÷ÿÿH}¾ÿÿÿÿèAmÿÿ…À ÷ÿÿH´$t  H‰ïèébÿÿé÷ÿÿH‰ÃH‹¬$à  HƒíH;-nX „ßöÿÿH}¾ÿÿÿÿèúlÿÿ…ÀÉöÿÿH´$¯  H‰ïè¢bÿÿé´öÿÿH‹¬$ð  H‰ÃHƒíH;-'X t¤H}¾ÿÿÿÿè·lÿÿ…À’H´$¬  H‰ïècbÿÿë€H‰ÃépöÿÿffffffégÿÿÿH‰ÃH‹¬$°  HƒíH9-ÕW „FöÿÿH}¾ÿÿÿÿèalÿÿ…À0öÿÿH´$‰  H‰ïè	bÿÿéöÿÿH‰ÃéöÿÿH‰ÃH‹¬$  HƒíH;-†W „÷õÿÿH}¾ÿÿÿÿèlÿÿ…ÀáõÿÿH´$…  H‰ïèºaÿÿéÌõÿÿH‹¬$   H‰ÃHƒíH;-?W t¤H}¾ÿÿÿÿèÏkÿÿ…À’H´$‚  H‰ïè{aÿÿë€H‰ÃéˆõÿÿéoÿÿÿëðfffffféWÿÿÿffffffffé|úÿÿH‰ÃfffffféRõÿÿH‰ÃéJõÿÿH‹¬$Ð  H‰ÃHƒíH9-½V „.õÿÿH}¾ÿÿÿÿèIkÿÿ…ÀõÿÿH´$Š  H‰ïèñ`ÿÿéõÿÿH‹¬$p  H‰ÃHƒíH9-vV …‹   H‹¬$`  HƒíH9-]V „ÎôÿÿH}¾ÿÿÿÿèéjÿÿ…À¸ôÿÿH´$¿  H‰ïè‘`ÿÿé£ôÿÿH‹¬$@  H‰ÃHƒíH9-V „‡ôÿÿH}¾ÿÿÿÿè¢jÿÿ…ÀqôÿÿH´$x  H‰ïèJ`ÿÿé\ôÿÿH}¾ÿÿÿÿèwjÿÿ…À_ÿÿÿH´$¼  H‰ïè`ÿÿéJÿÿÿH‰Ãé)ôÿÿféÐþÿÿH‰ÃéôÿÿH‰Ãé+ÿÿÿé
ôÿÿH‰ÃH‹¬$@  HƒíH;-€U „ñóÿÿH}¾ÿÿÿÿèjÿÿ…ÀÛóÿÿH´$»  H‰ïè´_ÿÿéÆóÿÿH‹¬$`  H‰ÃHƒíH9-9U „ªóÿÿH}¾ÿÿÿÿèÅiÿÿ…À”óÿÿH´$œ  H‰ïèm_ÿÿéóÿÿH‹¬$P  H‰ÃHƒíH;-òT „YÿÿÿH}¾ÿÿÿÿè~iÿÿ…ÀCÿÿÿH´$¸  H‰ïè&_ÿÿé.ÿÿÿH‰Ãé0óÿÿH{¾ÿÿÿÿèKiÿÿ…ÀeèÿÿH´$  H‰ßèó^ÿÿéPèÿÿéõòÿÿHƒíH9-~T H‰Ã„ìòÿÿH}¾ÿÿÿÿèiÿÿ…ÀÖòÿÿH´$ž  H‰ïè¯^ÿÿéÁòÿÿé±òÿÿfffé§òÿÿH‰Ãffffffé¢òÿÿéþÿÿfffféðôÿÿfffffffféJôÿÿfffffffféØôÿÿffffffffë³é(ÿÿÿffffffé8þÿÿffffffffé þÿÿH‰Ãffffffé2òÿÿH‹¬$P  H‰ÃHƒíH9-¥S „òÿÿH}¾ÿÿÿÿè1hÿÿ…À òÿÿH´$z  H‰ïèÙ]ÿÿéëñÿÿH‹¬$`  H‰ÃHƒíH9-^S „ÏñÿÿH}¾ÿÿÿÿèêgÿÿ…À¹ñÿÿH´$|  H‰ïè’]ÿÿé¤ñÿÿH‰ÃéœñÿÿH‹¬$p  H‰ÃHƒíH9-S „€ñÿÿH}¾ÿÿÿÿè›gÿÿ…ÀjñÿÿH´$~  H‰ïèC]ÿÿéUñÿÿHƒíH9-ÓR H‰Ã„AñÿÿH}¾ÿÿÿÿè\gÿÿ…À+ñÿÿH´$€  H‰ïè]ÿÿéñÿÿé¯ûÿÿfffffffé÷ðÿÿfffffffféçðÿÿffffffffé€÷ÿÿfffffffféôÿÿfffffffféþ÷ÿÿfffffffféŸ÷ÿÿffffffffé-øÿÿfffffffféŸðÿÿfffffffféõÿÿH‰ÃfffffférðÿÿH‰ÃéjðÿÿH‰ÃH‹¬$   HƒíH9-ÝQ „NðÿÿH}¾ÿÿÿÿèifÿÿ…À8ðÿÿH´$³  H‰ïè\ÿÿé#ðÿÿé¦ùÿÿffffféåóÿÿffffffffé^þÿÿffffffffé'ôÿÿffffffffépÿÿÿH‹¬$€  H‰ÃHƒíH9-UQ „ÆïÿÿH}¾ÿÿÿÿèáeÿÿ…À°ïÿÿH´$À  H‰ïè‰[ÿÿé›ïÿÿH‹¬$  H‰ÃHƒíH9-Q „ÿÿÿH}¾ÿÿÿÿèšeÿÿ…ÀÿÿÿH´$°  H‰ïèB[ÿÿéíþÿÿéýÿÿfffffféØþÿÿH‹¬$   H‰ÃHƒíH9-µP „&ïÿÿH}¾ÿÿÿÿèAeÿÿ…ÀïÿÿH´$´  H‰ïèéZÿÿéûîÿÿHƒíH9-yP H‰Ã„çîÿÿH}¾ÿÿÿÿèeÿÿ…ÀÑîÿÿH´$¶  H‰ïèªZÿÿé¼îÿÿé5þÿÿé§îÿÿffffffffé—îÿÿH‰Ãffffffé’îÿÿH‹¬$À  H‰ÃHƒíH9-P „vîÿÿH}¾ÿÿÿÿè‘dÿÿ…À`îÿÿH´$¨  H‰ïè9ZÿÿéKîÿÿH{¾ÿÿÿÿèfdÿÿ…ÀºáÿÿH´$©  H‰ßèZÿÿé¥áÿÿHƒíH9-žO H‰Ã„îÿÿH}¾ÿÿÿÿè'dÿÿ…ÀöíÿÿH´$ª  H‰ïèÏYÿÿéáíÿÿé:ÿÿÿffféÇíÿÿH‰ÃfffffféÂíÿÿé²íÿÿH‰ÃH‹¬$   HƒíH;-0O „¡íÿÿH}¾ÿÿÿÿè¼cÿÿ…À‹íÿÿH´$—  H‰ïèdYÿÿévíÿÿH‹¬$0  H‰ÃHƒíH;-éN t¤H}¾ÿÿÿÿèycÿÿ…À’H´$”  H‰ïè%Yÿÿë€écÿÿÿésÿÿÿH{¾ÿÿÿÿèKcÿÿ…À†áÿÿH´$•  H‰ßèóXÿÿéqáÿÿH{¾ÿÿÿÿè cÿÿ…ÀtáÿÿH´$–  H‰ßèÈXÿÿé_áÿÿH‰ÃéÒìÿÿH‰ÃH‹¬$@  HƒíH9-EN „¶ìÿÿH}¾ÿÿÿÿèÑbÿÿ…À ìÿÿH´$›  H‰ïèyXÿÿé‹ìÿÿH‹¬$P  H‰ÃHƒíH9-þM t¤H}¾ÿÿÿÿèŽbÿÿ…À’H´$˜  H‰ïè:Xÿÿë€H{¾ÿÿÿÿèjbÿÿ…À<áÿÿH´$š  H‰ßèXÿÿé'áÿÿéMÿÿÿH{¾ÿÿÿÿè:bÿÿ…ÀóàÿÿH´$™  H‰ßèâWÿÿéÞàÿÿéÿÿÿffffffé±÷ÿÿfffffffféÈñÿÿfffffffféPòÿÿH‰Ãffffffé²ëÿÿH‹¬$ð  H‰ÃHƒíH9-%M „–ëÿÿH}¾ÿÿÿÿè±aÿÿ…À€ëÿÿH´$Ž  H‰ïèYWÿÿékëÿÿH‰ÃécëÿÿH‹¬$à  H‰ÃHƒíH9-ÖL „GëÿÿH}¾ÿÿÿÿèbaÿÿ…À1ëÿÿH´$Œ  H‰ïè
WÿÿéëÿÿH‰ÃéëÿÿH‹¬$   H‰ÃHƒíH9-‡L „øêÿÿH}¾ÿÿÿÿèaÿÿ…ÀâêÿÿH´$  H‰ïè»VÿÿéÍêÿÿHƒíH9-KL H‰Ã„¹êÿÿH}¾ÿÿÿÿèÔ`ÿÿ…À£êÿÿH´$’  H‰ïè|VÿÿéŽêÿÿé~êÿÿféfÿÿÿffffffffégêÿÿffffffffé þÿÿfffffffféçþÿÿH‹¬$°  H‰ÃHƒíH;-ÅK …´  H‹¬$   HƒíH;-¬K „êÿÿH}¾ÿÿÿÿè8`ÿÿ…ÀêÿÿH´$Ç  H‰ïèàUÿÿéòéÿÿH{¾ÿÿÿÿè`ÿÿ…ÀFÚÿÿH´$Å  H‰ßèµUÿÿé1ÚÿÿH{¾ÿÿÿÿèâ_ÿÿ…À4ÚÿÿH´$Æ  H‰ßèŠUÿÿéÚÿÿH‰Ãé^ÿÿÿH{¾ÿÿÿÿfffè«_ÿÿ…À{ÚÿÿH´$Ê  H‰ßèSUÿÿéfÚÿÿH‰Ãé]éÿÿH‰ÃfféRéÿÿH‰ÃH‹¬$À  HƒíH9-ÅJ „6éÿÿH}¾ÿÿÿÿèQ_ÿÿ…À éÿÿH´$Ë  H‰ïèùTÿÿééÿÿH‹¬$Ð  H‰ÃHƒíH9-~J t¤H}¾ÿÿÿÿè_ÿÿ…À’H´$È  H‰ïèºTÿÿë€H{¾ÿÿÿÿèê^ÿÿ…À¡ÙÿÿH´$É  H‰ßè’TÿÿéŒÙÿÿéBÿÿÿffffffé@ÿÿÿfffffffféPéÿÿH}¾ÿÿÿÿfè›^ÿÿ…À4þÿÿH´$Ä  H‰ïèCTÿÿéþÿÿéëþÿÿffffffé¦þÿÿHƒíH9-ÀI H‰Ã„.èÿÿH}¾ÿÿÿÿèI^ÿÿ…ÀèÿÿH´$Â  H‰ïèñSÿÿéèÿÿéwéÿÿH‹¬$À  H‰ÃHƒíH9-qI „ƒñÿÿH}¾ÿÿÿÿèý]ÿÿ…ÀmñÿÿH´$†  H‰ïè¥SÿÿéXñÿÿéûçÿÿH‹¬$  H‰ÃHƒíH;-%I …y  H‹¬$€  HƒíH;-I „}çÿÿH}¾ÿÿÿÿè˜]ÿÿ…ÀgçÿÿH´$£  H‰ïè@SÿÿéRçÿÿHƒíH9-ÐH H‰Ã„>çÿÿH}¾ÿÿÿÿèY]ÿÿ…À(çÿÿH´$Î  H‰ïèSÿÿéçÿÿH‰ÃéçÿÿH‰ÃH‹¬$   HƒíH9-~H „ïæÿÿH}¾ÿÿÿÿè
]ÿÿ…ÀÙæÿÿH´$§  H‰ïè²RÿÿéÄæÿÿH‹¬$°  H‰ÃHƒíH9-7H t¤H}¾ÿÿÿÿèÇ\ÿÿ…À’H´$¤  H‰ïèsRÿÿë€H‰Ãé€æÿÿffffffégÿÿÿH{¾ÿÿÿÿfè‹\ÿÿ…ÀÙÿÿH´$¢  H‰ßè3RÿÿéÙÿÿH{¾ÿÿÿÿè`\ÿÿ…ÀSÙÿÿH´$¥  H‰ßèRÿÿé>ÙÿÿH{¾ÿÿÿÿè5\ÿÿ…ÀªØÿÿH´$¡  H‰ßèÝQÿÿé•ØÿÿH{¾ÿÿÿÿè
\ÿÿ…ÀÙÿÿH´$¦  H‰ßè²QÿÿéÙÿÿé]ïÿÿH‰Ãfffé²åÿÿé%ÿÿÿH‹¬$à  H‰ÃHƒíH9- G „‘åÿÿH}¾ÿÿÿÿè¬[ÿÿ…À{åÿÿH´$Ì  H‰ïèTQÿÿéfåÿÿH{¾ÿÿÿÿè[ÿÿ…À™ÖÿÿH´$Í  H‰ßè)Qÿÿé„ÖÿÿH‰Ãé3åÿÿëöH‰ÃffffféŒýÿÿéåÿÿH}¾ÿÿÿÿè8[ÿÿ…ÀqýÿÿH´$   H‰ïèàPÿÿé\ýÿÿé.ÿÿÿffffë´H‰l$ØL‰d$àH‰ÍL‰l$èL‰t$ðI‰üH‰\$ÐL‰|$øHƒì8H…öI‰ÖLotdA¿   ¿(   è|RÿÿH‰ÁH‰ÃHƒÁ t‹U ‹E‰S ‰AL‰éL‰òH‰ÞD‰ÿèƒXÿÿIÿD$(H‰ØH‹l$H‹\$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃL9êt—E1ÿ‹;B A’ÇëATI‰üUH‰õSHƒì H‹GH…ÀtQ‹>H‰ÁëfH‰Á;y HQHA@’Æ@„öHDÂH‹ H…Àuß@„öH‰Ëu#‹A 1Ò;E r5ˆT$H‹T$HƒÄ []A\H‰ÈÃH_I9\$tH‰ßè•VÿÿH‰Á1Ò‹A ;E sËH‰éH‰Ú1öL‰çèØQÿÿº   H‰Áë±H‰l$ØL‰d$àH‰ÍL‰l$èL‰t$ðI‰üH‰\$ÐL‰|$øHƒì8H…öI‰ÖLotlA¿   ¿0   èQÿÿH‰ÂH‰ÃHƒÂ tH‹E H‰C H‹EH‰BL‰éL‰òH‰ÞD‰ÿèWÿÿIÿD$(H‰ØH‹l$H‹\$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffL9êtE1ÿ‹;B A’Çë‡H‰l$ØH‰ýL‰d$àL‰t$ðH‰\$ÐI‰ôL‰l$èL‰|$øHƒì8H‹H;}I‰ÖtRH…ÿt‹Gü‰HWüHGA‹L‰æL)âH‰EHƒâüH)×èQÿÿA‰$H‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃH‰øH+E H¹ÿÿÿÿÿÿÿ?HÁøH9È„©   H…Àº   tH H9Â‚   fffH¸ÿÿÿÿÿÿÿ?H9Â‡‡   L<•    L‰ãL‰ÿèºOÿÿH‹u I‰ÅH‰ÇH)óH‰ÚèõPÿÿL‰êHÚtA‹‰H‹]LrL‰æL‰÷L)ãH‰ÚèÏPÿÿH‹} H…ÿtè!YÿÿIL‰m H‰EKD= H‰EéÿÿÿH‰Êë…H=  èVVÿÿèÑOÿÿHGH‰\$èH‰l$ðL‰d$øHƒìXI‰üH9ðH‰ÕH‰ó„¼   ‹F 9sPH9wtH‰÷èTÿÿH‰Â‹@ ;E ƒÕ   Hƒz tjH‰ÚH‰ÞH‰éL‰çè;OÿÿH‰ÃH‰ØH‹l$HH‹\$@L‹d$PHƒÄXÃvæH9w tHH‰÷fffè+TÿÿH‰Æ‹E ;F ƒ¨   Hƒ{ t%H‰éH‰òL‰çèçNÿÿH‰ÃëªH‰é1öL‰çèÕNÿÿH‰Ãë˜H‰ÚH‰é1öL‰çèÀNÿÿH‰ÃëƒHƒ( tH‹W ‹B ;E rÆH‰îL‰çèÝLÿÿH‰T$¶T$H‰ÃH‰$H‰D$ˆT$éFÿÿÿH‰îL‰çè³LÿÿH‰T$¶T$H‰ÃH‰$H‰D$ ˆT$(éÿÿÿH‰îL‰çè‰LÿÿH‰T$¶T$H‰ÃH‰$H‰D$0ˆT$8éòþÿÿATI‰üUH‰õSHƒì H‹GH…ÀtQ‹>H‰ÁëfH‰Á;y HQHA@’Æ@„öHDÂH‹ H…Àuß@„öH‰Ëu#‹A 1Ò;E r5ˆT$H‹T$HƒÄ []A\H‰ÈÃH_I9\$tH‰ßèERÿÿH‰Á1Ò‹A ;E sËH‰éH‰Ú1öL‰çèHNÿÿº   H‰Áë±HGH‰\$èH‰l$ðL‰d$øHƒìXI‰üH9ðH‰ÕH‰ó„¼   ‹F 9sPH9wtH‰÷èÒQÿÿH‰Â‹@ ;E ƒÕ   Hƒz tjH‰ÚH‰ÞH‰éL‰çèËMÿÿH‰ÃH‰ØH‹l$HH‹\$@L‹d$PHƒÄXÃvæH9w tHH‰÷fffèûQÿÿH‰Æ‹E ;F ƒ¨   Hƒ{ t%H‰éH‰òL‰çèwMÿÿH‰ÃëªH‰é1öL‰çèeMÿÿH‰Ãë˜H‰ÚH‰é1öL‰çèPMÿÿH‰ÃëƒHƒ( tH‹W ‹B ;E rÆH‰îL‰çè-TÿÿH‰T$¶T$H‰ÃH‰$H‰D$ˆT$éFÿÿÿH‰îL‰çèTÿÿH‰T$¶T$H‰ÃH‰$H‰D$ ˆT$(éÿÿÿH‰îL‰çèÙSÿÿH‰T$¶T$H‰ÃH‰$H‰D$0ˆT$8éòþÿÿH‰l$ØH‰ýL‰d$àL‰t$ðH‰\$ÐI‰ôL‰l$èL‰|$øHƒì8H‹H;}I‰Öt[H…ÿtH‹GøH‰HWøHGI‹L‰æL)âH‰EHƒâøH)×è~LÿÿI‰$H‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffffH‰øH+E H¹ÿÿÿÿÿÿÿHÁøH9È„¦   H…Àº   tH H9Â‚Š   H¸ÿÿÿÿÿÿÿH9Â‡ˆ   L<Õ    L‰ãL‰ÿè¥JÿÿH‹u I‰ÅH‰ÇH)óH‰ÚèàKÿÿL‰êHÚtI‹H‰H‹]LrL‰æL‰÷L)ãH‰Úè¹KÿÿH‹} H…ÿtèTÿÿIL‰m H‰EKD= H‰EéÿÿÿH‰Êë„H=ð  è@Qÿÿè»JÿÿAWAVAUI‰ýATUSHƒì(H…öH‰4$„›  H‹$H‹xH…ÿ„l  H‰|$ H‹D$ H‹xH…ÿ„5  H‰|$H‹D$H‹xH…ÿ„þ   H‰|$H‹D$H‹xH…ÿ„Ç   H‰|$H‹D$H‹xH…ÿ„   I‰ÿI‹H…ÿtkI‰þI‹~H…ÿtII‰üI‹|$H…ÿt%H‰ûëH‰ëH‹sL‰ïèlQÿÿH‹kH‰ßè SÿÿH…íuàI‹\$L‰çèîRÿÿH…ÛtI‰ÜëºI‹^L‰÷èØRÿÿH…ÛtI‰Þë˜I‹_L‰ÿèÂRÿÿH…ÛtI‰ßésÿÿÿH‹D$H‹XH‰Çè¤RÿÿH…Ût
H‰\$é>ÿÿÿH‹D$H‹XH‰Çè„RÿÿH…Ût
H‰\$éÿÿÿH‹D$H‹XH‰ÇèdRÿÿH…Ût
H‰\$éÐþÿÿH‹D$ H‹XH‰ÇèDRÿÿH…Ût
H‰\$ é™þÿÿH‹$H‹XH‰Çè%RÿÿH…Ût	H‰$éeþÿÿHƒÄ([]A\A]A^A_ÃAWAVAUI‰ýATUSHƒì(H…öH‰4$„›  H‹$H‹xH…ÿ„l  H‰|$ H‹D$ H‹xH…ÿ„5  H‰|$H‹D$H‹xH…ÿ„þ   H‰|$H‹D$H‹xH…ÿ„Ç   H‰|$H‹D$H‹xH…ÿ„   I‰ÿI‹H…ÿtkI‰þI‹~H…ÿtII‰üI‹|$H…ÿt%H‰ûëH‰ëH‹sL‰ïèlEÿÿH‹kH‰ßè0QÿÿH…íuàI‹\$L‰çèQÿÿH…ÛtI‰ÜëºI‹^L‰÷èQÿÿH…ÛtI‰Þë˜I‹_L‰ÿèòPÿÿH…ÛtI‰ßésÿÿÿH‹D$H‹XH‰ÇèÔPÿÿH…Ût
H‰\$é>ÿÿÿH‹D$H‹XH‰Çè´PÿÿH…Ût
H‰\$éÿÿÿH‹D$H‹XH‰Çè”PÿÿH…Ût
H‰\$éÐþÿÿH‹D$ H‹XH‰ÇètPÿÿH…Ût
H‰\$ é™þÿÿH‹$H‹XH‰ÇèUPÿÿH…Ût	H‰$éeþÿÿHƒÄ([]A\A]A^A_ÃH‰l$ØH‰ýL‰d$àL‰t$ðH‰\$ÐI‰ôL‰l$èL‰|$øHƒì8H‹H;}I‰Öt[H…ÿtH‹GøH‰HWøHGI‹L‰æL)âH‰EHƒâøH)×ènGÿÿI‰$H‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffffH‰øH+E H¹ÿÿÿÿÿÿÿHÁøH9È„¦   H…Àº   tH H9Â‚Š   H¸ÿÿÿÿÿÿÿH9Â‡ˆ   L<Õ    L‰ãL‰ÿè•EÿÿH‹u I‰ÅH‰ÇH)óH‰ÚèÐFÿÿL‰êHÚtI‹H‰H‹]LrL‰æL‰÷L)ãH‰Úè©FÿÿH‹} H…ÿtèûNÿÿIL‰m H‰EKD= H‰EéÿÿÿH‰Êë„H=à  è0Lÿÿè«EÿÿH‰l$ØH‰ýL‰d$àL‰t$ðH‰\$ÐI‰ôL‰l$èL‰|$øHƒì8H‹H;}I‰Öt[H…ÿtH‹GøH‰HWøHGI‹L‰æL)âH‰EHƒâøH)×èþEÿÿI‰$H‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffffH‰øH+E H¹ÿÿÿÿÿÿÿHÁøH9È„¦   H…Àº   tH H9Â‚Š   H¸ÿÿÿÿÿÿÿH9Â‡ˆ   L<Õ    L‰ãL‰ÿè%DÿÿH‹u I‰ÅH‰ÇH)óH‰Úè`EÿÿL‰êHÚtI‹H‰H‹]LrL‰æL‰÷L)ãH‰Úè9EÿÿH‹} H…ÿtè‹MÿÿIL‰m H‰EKD= H‰EéÿÿÿH‰Êë„H=p  èÀJÿÿè;DÿÿH‰l$ØH‰ýL‰d$àL‰t$ðH‰\$ÐI‰ôL‰l$èL‰|$øHƒì8H‹H;}I‰Öt[H…ÿtH‹GøH‰HWøHGI‹L‰æL)âH‰EHƒâøH)×èŽDÿÿI‰$H‹\$H‹l$L‹d$L‹l$ L‹t$(L‹|$0HƒÄ8ÃfffffH‰øH+E H¹ÿÿÿÿÿÿÿHÁøH9È„¦   H…Àº   tH H9Â‚Š   H¸ÿÿÿÿÿÿÿH9Â‡ˆ   L<Õ    L‰ãL‰ÿèµBÿÿH‹u I‰ÅH‰ÇH)óH‰ÚèðCÿÿL‰êHÚtI‹H‰H‹]LrL‰æL‰÷L)ãH‰ÚèÉCÿÿH‹} H…ÿtèLÿÿIL‰m H‰EKD= H‰EéÿÿÿH‰Êë„H=   èPIÿÿèËBÿÿÆG$ ÇG    ÇG    ÇG     Ãffff¶G$Ãfffffff‹GÃfffffffff‹GÃfffffffffHƒìÿÏtHƒÄÃffþÿÿ  uðH=? è,@ÿÿH‹•5 H=   1öHƒÄés?ÿÿf¾ÿÿ  ¿   ë´fffH=Õ> éDKÿÿfffHÇ    HÇG    HÇG    ÆG$ ÇG    ÇG    ÇG     ÃffffffffffHÇ    HÇG    HÇG    ÆG$ ÇG    ÇG    ÇG     Ãffffffffff€$ USH‰ËH‹l$ttD‹WA9òvk‹G9Ðvd)ÐH‹DXÿ‹G H…ÀIÈE¯ÓÁùB¯Á¶AˆD‰ØH‹¯G¯ÁÿÀ¶Aˆ D‰ØH‹¯G¯ÁƒÀƒù¶ˆtÆE ÿ[]ÃD¯_H‹B…   ¶ˆE ëáfffffffffU1ÒH‰åAWI‰ÿ1ÿAVLµÀýÿÿAUM®   ATSH‰óHìX  H‰¥ýÿÿèˆ@ÿÿH˜H‰ÞHPHƒâðH)ÔH…    Ld$IƒäðL‰çè_@ÿÿL‰ïè‡?ÿÿH‹4 AÆ…à    I^IÇ…Ø       AÆ…á    IÇ…è       IÇ…ð       H‰ßH‹PH‹@IÇ…ø       IÇ…       H‰• ýÿÿHƒêH‰…°ýÿÿH‰•¨ýÿÿH‹• ýÿÿH‹BèH‹•°ýÿÿHÇ…Èýÿÿ    H‰”ÀýÿÿH‹Å3 HBH‰…ÀýÿÿHB@H‰…Àþÿÿè:AÿÿH‰ÞL‰ïèoGÿÿº   L‰æH‰ßè?ÿÿH…À„&  H‹…ÀýÿÿL‰÷1öHxèèaEÿÿö…àþÿÿ„µ   H‹]3 I~HBH‰…ÀýÿÿHB@I‰E H‹O3 HƒÀH‰…ÐýÿÿèÏ>ÿÿI~xèfAÿÿH‹÷2 I~HHƒÀI‰Fè®=ÿÿH‹… ýÿÿH‹•¨ýÿÿL‰ïH‰…ÀýÿÿH‹H‹•°ýÿÿHÇ…Èýÿÿ    H‰”ÀýÿÿH‹Â2 HBI‰E èEDÿÿH‹¥ýÿÿHeØ[A\A]A^A_ÉÃHuÌº   L‰÷è^=ÿÿf}ÌBMtTI~è->ÿÿH…À… ÿÿÿH‹…ÀýÿÿL‰÷Hxè‹w ƒÎè[DÿÿéÿÿÿffffH‹…ÀýÿÿL‰÷Hxè‹w ƒÎè7DÿÿéÑþÿÿ1Ò¾
   L‰÷èSCÿÿHuÈº   L‰÷èâ<ÿÿ1Ò¾   L‰÷è3CÿÿIwº   L‰÷èÂ<ÿÿIwº   L‰÷è±<ÿÿ1Ò¾   L‰÷èCÿÿIw º   L‰÷è‘<ÿÿA‹W…ÒŽ/ÿÿÿA‹G…ÀŽ#ÿÿÿ¯ÂI‹wÆEÏ A¯G H‰÷P…ÀHÂÁøHcÐI‹H)ÇH9úƒ¦   HÐH)ÆI)w‹uÈ1ÒL‰÷è’BÿÿA‹OöÁ„–   A‹G P…ÀHÂÁø¯È1ÀöÁ‰œýÿÿt‰ÈfffÿÀ¨uú+…œýÿÿA‹W…Ò~?‹•œýÿÿ…ÀH‰•¸ýÿÿQ  E1ä1Ûf‰ÞH‹•¸ýÿÿI7L‰÷è¼;ÿÿAÿÄœýÿÿE9gÝAÆG$éMþÿÿH)úHMÏL‰ÿè”:ÿÿéPÿÿÿI‹7I‹WL‰÷H)òè};ÿÿëÎH‹´0 H‰ÃI~HBH‰…ÀýÿÿHB@I‰E H‹£0 HƒÀH‰…Ðýÿÿè#<ÿÿI~xèº>ÿÿH‹K0 I~HHƒÀI‰Fè;ÿÿH‹… ýÿÿH‹•¨ýÿÿL‰ïH‰…ÀýÿÿH‹H‹•°ýÿÿHÇ…Èýÿÿ    H‰”ÀýÿÿH‹0 HBI‰E è™AÿÿH‹¥ýÿÿH‰ßèúCÿÿH‰ÃH‹0 I~HƒÀH‰…ÐýÿÿèŒ;ÿÿI~xè#>ÿÿédÿÿÿH‰Ãé\ÿÿÿffffëðH‰ÃédÿÿÿH˜E1ä1ÛH‰…ˆýÿÿ‰ÞH‹•¸ýÿÿI7L‰÷èd:ÿÿº   H‹µˆýÿÿL‰÷è°@ÿÿAÿÄœýÿÿE9gÉéþÿÿH‰Ãé[ÿÿÿffféëBÿÿH‰l$ØL‰t$ðH‰ýL‰|$øH‰\$ÐI‰ÏL‰d$àL‰l$èHƒìHH…ÒI‰öH‰$H‰Ñ„Í   H‹_H‹GH)ØH9Â†á   H‰ÞH+7H‰ðH‰t$H÷ÐH9Â‡ˆ  HD$H9ñI‰õL‰óHGÄL(HÇÀÿÿÿÿL9îLGèL‰ïèL:ÿÿH‹u H‰ÇI‰ÄH)óH‰Úè‡;ÿÿL‹$IA¶M…ÀtH‰Âffˆ
HÿÂIÿÈuöI‰ÇH‹]L<$L‰öL)óL‰ÿH‰ÚèJ;ÿÿH‹} H…ÿtèœCÿÿIL‰e H‰EK,H‰EH‹\$H‹l$ L‹d$(L‹l$0L‹t$8L‹|$@HƒÄHÃfffI‰ÜE¶/I)ôL9ârTL)áA¶õH‰ßH‰Êèo?ÿÿH‹<$L‰âL‰öL)çH}H‰}èÅ:ÿÿLeL9ót”L‰öL‰ðH‰ßëH‰ÆHÿÀDˆ.H9ÇuòéuÿÿÿH‰ÞH‰ßH)ÖH‰ÚH)òè‰:ÿÿH‹$H‰ÚHEL‰öH)ÂL)òH)ÓH‰ßèj:ÿÿL‰òH$I9Ö„2ÿÿÿL‰öfffffDˆ.HvH9òuôéÿÿÿH=8
  èó?ÿÿ1ÀÃfffffffffHƒìÿÏtHƒÄÃffþÿÿ  uðH=6 è7ÿÿH‹…, H=   1öHƒÄéc6ÿÿf¾ÿÿ  ¿   ë´fffH=É5 é4BÿÿUH‰åSHì) HƒìH‹á) HƒøÿtffHƒëÿÐH‹HƒøÿuñHƒÄ[ÉÃHƒìè?BÿÿHƒÄÃ  basic_string::_S_construct NULL not valid   :           [       {       \   "       \   /       \   b       \   f       \   n       \   r       \   t       \   \       "   ,       ]   ,       }   ,       basic_string::substr basic_string::erase    -*-*-medium-*-*--13-*-*-*-*-*-*-*       -*-*-medium-*-*--12-*-*-*-*-*-*-*       -*-*-medium-*-*--14-*-*-*-*-*-*-*       -*-*-*-*-*--13-*-*-*-*-*-*-* -*-*-*-*-*--12-*-*-*-*-*-*-* -*-*-*-*-*--14-*-*-*-*-*-*-* -*-*-*-*-*--*-*-*-*-*-*-*-* vector::_M_insert_aux vector::_M_range_check sans-serif family size dpi charset scalable antialias hintstyle _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_MENU _NET_WM_WINDOW_TYPE_DIALOG _NET_WM_WINDOW_TYPE_DOCK _NET_WM_STATE _NET_WM_STATE_SKIP_TASKBAR _NET_WM_STATE_SKIP_PAGER _NET_WM_STATE_ABOVE _NET_WM_STATE_STICKY _NET_WM_ICON CARDINAL focusWindow clientWindow inputStyle filterEvents _XEMBED_INFO _NET_SYSTEM_TRAY_S%i _NET_SYSTEM_TRAY_OPCODE LANG Could not open display.
 WM_PROTOCOLS WM_DELETE_WINDOW Couldn't open input method queryInputStyle           X@
       E   S   C   A   P   E       F   1       F   2       F   3       F   4       F   5       F   6       F   7       F   8       F   9       F   1   0       F   1   1       F   1   2       P   R   I   N   T       P   A   U   S   E       B   R   E   A   K       T   A   B       R   E   T   U   R   N       D   E   L   E   T   E       L   E   F   T       R   I   G   H   T       U   P       D   O   W   N       H   O   M   E       E   N   D       K   E   Y       t   y   p   e       v   a   l   u   e       C   H   A   R       n   a   m   e       i   d       x       y       w   i   d   t   h       h   e   i   g   h   t       s   h   i   f   t       c   t   r   l       a   l   t       M   O   U   S   E       M   O   V   E       a   c   t   i   o   n       b   u   t   t   o   n       N   O   T   I   F   Y       W   I   N   D   O   W       A   C   T   I   V   E       S   C   R   O   L   L   O   C   K       B   A   C   K   S   P   A   C   E       C   A   P   S   L   O   C   K           S   H   I   F   T   L   O   C   K       R   E   P   A   I   N   T       K   E   Y   B   O   A   R   D           c   o   m   m   a   n   d       B   U   T   T   O   N   _   D   O   W   N       B   U   T   T   O   N   _   U   P       A   C   T   I   V   A   T   E           C   O   N   T   E   X   T   M   E   N   U       I   N   A   C   T   I   V   E           O   N   C   L   O   S   E       vector::_M_fill_insert  ;Œ  p   (9ÿÿ°  89ÿÿÈ  H9ÿÿà  X9ÿÿ   Ø9ÿÿH  :ÿÿh  8:ÿÿˆ  h;ÿÿ°  x<ÿÿÐ  Ø@ÿÿ  ¨Dÿÿ@  èEÿÿ`  (Gÿÿ€  Lÿÿ¸  ¸Qÿÿð  ˆVÿÿ(  X[ÿÿø  \ÿÿ`  h\ÿÿx  ˆ\ÿÿ  ˜\ÿÿ¨  ¨\ÿÿÀ  È\ÿÿØ  Ø\ÿÿð  ø\ÿÿ  ]ÿÿ   8]ÿÿ8  X]ÿÿP  h]ÿÿh  Ø]ÿÿˆ  ˆ_ÿÿ8  (aÿÿX  8aÿÿ(	  ¸aÿÿP	  bÿÿp	  xbÿÿÀ	  Èbÿÿ 
  cÿÿp
  ˆcÿÿ¸
  øcÿÿØ
  Ègÿÿ  Xhÿÿ8  jÿÿp  ˜jÿÿ˜  øjÿÿ°  kÿÿÈ  8kÿÿà  ˜kÿÿø  økÿÿ  Èlÿÿ`  ˜mÿÿˆ  Øsÿÿ¸  tÿÿÐ  Htÿÿè  Øtÿÿ  ¨uÿÿ8  øvÿÿp  ¨wÿÿ˜  hxÿÿÀ  (yÿÿè  Øyÿÿ  øyÿÿ0  8{ÿÿX  h{ÿÿp  ˜{ÿÿˆ  ø{ÿÿ¨  h|ÿÿÈ  è|ÿÿè  Ø}ÿÿ  ~ÿÿ(  h€ÿÿ`  è€ÿÿ€  ˜ÿÿ¸  ˆ‚ÿÿð  ƒÿÿ  hƒÿÿ8  †ÿÿp  X†ÿÿ  xŠÿÿÈ  h‹ÿÿè  (ÿÿ  ›ÿÿ@  ØÛÿÿÀ  ˆÜÿÿè  8Ýÿÿ  øÝÿÿp  Xßÿÿ˜  Øàÿÿ¸  ˆáÿÿà  ãÿÿ 	  xäÿÿˆ	  Hæÿÿè	  èÿÿH
  ˆéÿÿ
  øêÿÿ8  hìÿÿx  ˆìÿÿ  ˜ìÿÿ¨  ¨ìÿÿÀ  ¸ìÿÿØ  øìÿÿð  íÿÿ  íÿÿ   Xíÿÿ8  ˜íÿÿP  Hîÿÿ˜  ¨óÿÿÈ  ¸óÿÿp  ¸õÿÿ   Èõÿÿ  öÿÿ0  öÿÿH             zPLR x›&      $   p5ÿÿ             <   h5ÿÿ             T   `5ÿÿ          $   l   XWÿÿ©       JƒŒQ0†       $   ”   05ÿÿy       BŒDƒN          ¼   ˆ5ÿÿ#       Aƒ         Ü   ˜5ÿÿ#       Aƒ      $   ü   ¨5ÿÿ-  Ë  JŒƒQ@†          $  °6ÿÿ  Ç  JŒƒL0† 4   D   7ÿÿU  Á  BEB B(A0A8Gƒ†ŒŽ 4   |  È;ÿÿÄ  	  BEB B(A0†ŒŽD8D`ƒ     ´  `?ÿÿ5  
  Jƒ†L0Œ    Ô  €@ÿÿ5    Jƒ†L0Œ 4   ô   AÿÿÜ    BBŽE B(A0A8Gƒ†Œ 4   ,  HFÿÿ¥  \  BEB B(A0A8G ƒ†ŒŽ 4   d  ÀKÿÿÅ  ¼  BBŽE B(A0A8Gƒ†Œ 4   œ  XPÿÿÅ    BBŽE B(A0A8Gƒ†Œ    Ô   UÿÿY             ì  èUÿÿ               ðUÿÿ               èUÿÿ             4  àUÿÿ             L  èUÿÿ             d  àUÿÿ             |  èUÿÿ             ”  ðUÿÿ             ¬  øUÿÿ             Ä   Vÿÿ             Ü  øUÿÿg       AƒGP   4   ü  HVÿÿ¢      BIB A(A0ƒ†ŒŽG`       $   4  Ôÿÿ«       JŒ†^@ƒŽ   $   \  ˜Ôÿÿ¢       BŒD†D D@ƒ $   „   Õÿÿ³       JŒ†^@ƒŽ      ¬  HWÿÿ“      Cƒ         Ì  ÈXÿÿ          $   ä  €Õÿÿ_      E†RƒŽŒQ@       ¸Öÿÿv      W`Œ†ƒ  $   ,  Øÿÿ¢       BŒD†D D@ƒ    T   Øÿÿv      W`Œ†ƒ  $   t   Úÿÿe      E†RƒŽŒQ@  $   œ  Xÿÿr   ’  AAƒ†K0         Ä  `XÿÿX       JŒƒL     ä   XÿÿU       D4   ü  èÚÿÿÈ      BBB ŽE(A0A8D`ƒ†Œ  $   4  °XÿÿM   
  BŒHA ƒ†    4   \  XÜÿÿÈ      BBB ŽE(A0A8D`ƒ†Œ  $   ”   XÿÿM   ¶  BŒHA ƒ†    $   ¼  ÈÝÿÿe      E†RƒŽŒQ@     ä   Xÿÿg       AƒK    $     ðÞÿÿe      E†RƒŽŒQ@     ,  ÈXÿÿp       AƒK    4   L  YÿÿÅ      BBB B(A0†ŒŽC8ƒIÀ $   „  °\ÿÿ…       BŒJA ƒ†    4   ¬  ]ÿÿ¡  ª  BBB B(A0A8ƒ†ŒŽG  $   ä  ^ÿÿŠ       BŒJA ƒ†         ø^ÿÿU       D   $  @_ÿÿ       D   <  H_ÿÿ       D   T  P_ÿÿ^       D   l  ˜_ÿÿ^       D$   „  à_ÿÿÂ       BŒJA ƒ†    $   ¬  ¸Þÿÿe      E†RƒŽŒQ@  $   Ô  ``ÿÿÏ       J†ƒMŒQ@Ž    ,   ü  aÿÿ5  m
  A†CBEŽEMƒŒ        ,	  gÿÿ8             D	  @gÿÿ,       D$   \	  Xgÿÿ„       J†ƒPPŒ       $   „	  ÀgÿÿÆ       JŒ†MŽT€ƒ 4   ¬	  hhÿÿE      BBB B(A0A8ƒ†ŒŽFp  $   ä	  €iÿÿ¬       JŒ†MŽQ@ƒ  $   
  jÿÿ¼       JŒ†MŽQPƒ  $   4
   jÿÿ¼       JŒ†MŽQPƒ  $   \
  8kÿÿ¬       JŒ†MŽQ@ƒ     „
  Àkÿÿ       Aƒ      $   ¤
  Àkÿÿ@      J†ƒLŽŒQP     Ì
  Ølÿÿ*       D   ä
  ðlÿÿ*       D   ü
  mÿÿ_       N ƒ†         Hmÿÿp       SPŒƒ†     <  ˜mÿÿ       S Œƒ†  $   \  ømÿÿí       JŒƒMŽTÐ†    „  Ànÿÿ:          4   œ  ènÿÿN  ã  BGB B(A0A8D ƒ†ŒŽ    Ô   qÿÿ€   ¾  JŒƒLP† 4   ô  `qÿÿ«   ®  BBB ŒŽD(A0ƒ†G@       4   ,  Øqÿÿî   „  BDB B(ŒŽD0†C8Dpƒ  $   d  rÿÿ   ^  A†DƒG@         Œ  ørÿÿP       N †ƒ    4   ¬  (sÿÿ“  '  BEŽE B(A0A8D°ƒ†Œ    ä  uÿÿK     AD ƒ   4     Àuÿÿ  ð  BŽEB A(A0G ƒ†Œ         <  ¨yÿÿì   ä  S0Œ†ƒ  $   \  xzÿÿ»  â  JŒ†T°ƒ      ,   „  |ÿÿå  ä  A†CHŒƒ[Ž       4   ´  Ð‰ÿÿ²@  ¢  BBB B(A0A8Gƒ†ŒŽ    ì  èÚÿÿ               ðÚÿÿ               èÚÿÿ             4  àÚÿÿ             L  ØÚÿÿ=       D   d   Ûÿÿ             |  øÚÿÿ             ”  ðÚÿÿ1             ¬  Ûÿÿ1             Ä  @Ûÿÿ£       EAƒ† $   ä  @áÿÿý      JŽ†MƒQPŒ  ,     ¨Ûÿÿ\    A†EBGŽIJƒŒ        <  Øàÿÿ                 zPR x›¶        $   °âÿÿ              <   ¨âÿÿ=    D       T   Ðâÿÿ              l   Èâÿÿ               ÿÿ Dæ }:  Àæ Îö ñ  •ö ÿÿ;hÄ ¬Õ Ð  ôÕ ÿÿ|#  .º `  Ò Ç Ñ“ ì¸ ô“ ÿ‰ ¶Ç À  òÅ ¸ •Å ³“ ÆÐ ñ° «  ç µ  ß° ®Ç ÿÿ5  'Â [  zß… ‚º ªß Ú  íÂ ¢º ½  ÿÿ7  Fð }C  ÉŒ ë)  Œ ÿÿ7  Fð }C  ÉŒ ë)  Œ ÿÿ$  /µ a  ‚û ‘ö Ê‰	 í™	 ‘î Èö Ò  ‹× ¦™	 ®× Ì× ß„	 Šü µô ï  é  “ö Úü ÿ  ²	Ô	 ÿÿ“$  /Ù a  ‚ç ‘« ÊÏ ê 	 Ž®
 Å« Ï  ù ™ç	 ÀÔ ö ‰« ´Ö ßõ
 ¦  ¹å à  üÔ Ê  þÖ Å	… Œ
ú
 Ó
• ÿÿ‚#  .õ `  ‚ õ È’ ëè ó’ þï µõ ¿  éú Œè ”ú ²’ Å¶	 ð¼ ·  Íõ ð  š¼ Åç ”	»	 ÿÿ‚$  /õ a  ‚‚ ‘ù Ê– íì õ– €ï ·ù Á  ëþ Žì –þ ´– Ç¶	 ôÀ »  Ñù ð  šÀ Åç ”	»	 ÿÿ  _ X  ÿÿ*E H  ÿÿ*E H  ÿÿ  )Ù‡ œ  ÿÿBÒ  ³™¦ ˜  ÿÿ/7  r¬´ É  ÿÿ  'g {  ÿÿ
v“ ¦  ÿÿ)  k!Õ Ì"  ÿÿ&  Fw ‹  ÿÿ!V  ¸âù ÐÃ  ÿÿ+C F  ÿÿ(  ²ò ¾Ò Š˜  °÷ í  ‚ò ÿÿ   g® –Æ Á  ÔÆ ÿÿ&#S  „‹ ë “  É †   ‹ ÿÿéV  ¿Ì Ö˜ ë× £Ì ºÇ È¥ ª	  ß	º þ	 ˜
Â ­
… ë
º …Â “Š èzº ðÅ «ïº ¨Ç Ð• ú˜ ¢… Ý–º Â ©¹ ÐÂ ùù ½Èº À  ×Å øº œÊ ãƒ ¢¾ ïXº  °Ù åŠ ¿Þ ÿÿÄ6ß  §åK ÆêK Ô©L ©	åL ¶	ÉM ò	N ÿ	˜N »
ßN È
çN „õO ‘®O ÍýO Ú…P û  ¥ÌP ê?  »Q Ú˜Q èßQ ½âR Ê›R î  ŸêR ¬…S îÌS ûÔS ³›T À£T ø±U …êT ¦  Ð¹U ìýU “?  äW ƒ¥X ‘…V âáV •W ÜW äµX ñ½X ­„Y ºŒY öÓY ƒÛY ¬  Å¢Z ÒªZ ó  ñZ ¹Å\ å0  §àK Æ°[ Ô÷[ ¥ŸK Ä¤K ÒÕ\ §”K ´ôa ðæb ýåf ¹óg Æ¬g ï  ˆµ` •ûg ¶  àÂh ü•i ¥0  çü^ †„_ ”Ë_ å‡` „µ^ ’™{ çÅ` ôÍ` ° ¬t ½ ´t ù Õs †!ås ¯!  È!ût Õ!ƒu ö!   "Êu ¼"‰v ï"?  À#Ÿ^ ß#œ] í#ã] ¾$¥j Ý$­j ë$ük À%•j Í%Õl î%  ˜&œm ´&åm Û&0  'ßd ¼'Šc Ê'˜d ›(õb º(ýb È(”a )Õf ª)µk Ë)  õ)Õz ‘*ŒK ¶*n  ¶+²x Õ+ûw ã+Åv ´,ºx Ó,Åx á,Œy µ-Ü€ Â-ê ã-  .Å| ©.„} Õ.‹  ò/Ø ‘0æ€ Ÿ0å{ ð0~ 1Œ} 1Ó} ñ1õm þ1…n Ÿ2  É2÷n å2Õo ™3  ¸3Åo ×3Úo å3¡p ¶4½q Õ4Åq ã4Œr ·5åe Ä5Ñc å5  6—e «6Öe Ù6’e „7êK ¯7…z Ú7åK …8•f °8úe Û8…f †9”{ È9Ì  à;µi ‹<Q ¹<˜Q é<„_ ™=åi É=Åi ù=Õi ©>¥i Ù>áV ‰?•W ¹?µs é?Ås ™@Õs É@¬t ù@ût ©AÅ` ÙA‡` ‰Bµ^ ¹Bü^ éBœ] ™Cµ` ÉC°[ ùC¥` ©D…j ÙD•j ‰E¥j ¹E­j éEôj ™F•k ÉFùj ùF…k ©G¨s ÙG”K ‰HŸK ¹H¤K éHàK ™IÕf ÉIÅf ùI·f ©J²f ÙJŠc ‡K  ÅKÄM ‹LíL ÊLõL •M*  îMåL ½NN ŒOßN ÓOõO ªPýO éP‹Q ½QúR €RõR ÀRâR ªSêR ùSÌS ÈT›T U±U ÖUøU ¿VW òV¥X ºW˜X ýWX âXµX ±Y„Y €ZÓY ÏZ¢Z Ž[³\ Õ[à{ ˜\¸\ ú\õi Á]Ÿ^ „^§^ Ú^•` ©_—` ì_` ò`îb Òaõb ™b…c Äbýb ¯cßd öc¥f ½dõe ðdåe ´eÛe Šgæb Ñgóg  hi ßh†i Òj¥k ÚkÃl ¡lÈl úlÛm ¹màm ªnõm Õn¶o ”o»o ÿoÝp Âpâp ðpÚo ›qÅo êq£s ­rór Ñr½q sÅq Št¥v Ùtµv ¨uŽv çu•v ƒwÂz ®wûw Ùw²x xºx êxóy ­yøy ÑyÅx  zÇz òzõ€ ¾{Ó £|¥ â|ŒK ±}~ ô}—~ °~Ø Û~Œ} †æ€ ±å €ä€ º€Ü€ ƒª ÿÿGdÔ
 ¡‚
 ¬3Æ	 ¥ò	 †Ô
 ­8• „Æ	 ˜û• Ñò	 Á	  è	ú	 §
•  ÿÿÿÿÿÿÿÿ‘      `     p&             ÿÿÿÿÿÿÿÿ                       Ê             Ö             â             î             ý                                       x\             È&            X             À%             
      
       b                           ÀS            x                            J             àE                    	              þÿÿo    pE      ÿÿÿo           ðÿÿo    "C      ùÿÿo                                                                                                                                                                            Z                                                                                                                                                                                                                             °P                     ¦\      ¶\      Æ\      Ö\      æ\      ö\      ]      ]      &]      6]      F]      V]      f]      v]      †]      –]      ¦]      ¶]      Æ]      Ö]      æ]      ö]      ^      ^      &^      6^      F^      V^      f^      v^      †^      –^      ¦^      ¶^      Æ^      Ö^      æ^      ö^      _      _      &_      6_      F_      V_      f_      v_      †_      –_      ¦_      ¶_      Æ_      Ö_      æ_      ö_      `      `      &`      6`      F`      V`      f`      v`      †`      –`      ¦`      ¶`      Æ`      Ö`      æ`      ö`      a      a      &a      6a      Fa      Va      fa      va      †a      –a      ¦a      ¶a      Æa      Öa      æa      öa      b      b      &b      6b      Fb      Vb      fb      vb      †b      –b      ¦b      ¶b      Æb      Öb      æb      öb      c      c      &c      6c      Fc      Vc      fc      vc      †c      –c      ¦c      ¶c      Æc      Öc      æc      öc      d      d      &d      6d      Fd      Vd      fd      vd      †d      –d      ¦d      ¶d      Æd      Öd      æd      öd      e      e      &e      6e      Fe      Ve      fe      ve      †e      –e      ¦e      ¶e      Æe      Öe      æe      öe      f      f      &f      6f      Ff      Vf      ff      vf      †f      –f      ¦f      ¶f      Æf      Öf      æf      öf      g      g      &g      6g      Fg      Vg      fg      vg      †g      –g      ¦g      ¶g      Æg      Ög      æg      ög      h      h      &h      6h      Fh      Vh      fh      vh      †h      –h      ¦h      ¶h      Æh      Öh      æh       Z      P              GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)  .shstrtab .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame .gcc_except_table .ctors .dtors .jcr .dynamic .got .got.plt .data .bss .comment                                                                                 X      X      À                                        
      
      ¨                                       À%      À%      b                             !   ÿÿÿo       "C      "C      N                           .   þÿÿo       pE      pE      p                            =             àE      àE                                  G              J       J      x         	                 Q             x\      x\                                    L             \      \      `                            W             ðh      ðh      Ø½                             ]             È&     È&                                   c             Ø&     Ø&     	                             k             h0     h0     Œ                             y             ø3     ø3     Ô                             ƒ             ÌC     ÌC     £                             •             pP     pP     (                              œ             ˜P     ˜P                                   £             ¨P     ¨P                                   ¨             °P     °P     à                           ±             R     R     0                            ¶             ÀS     ÀS     @                            ¿              Z      Z                                   Å              Z     Z     8                              Ê                      Z     
                                                   "\     Ó                                                                                                                                                                      installer.py                                                                                        0000644 0001750 0001750 00000000141 15064774431 012722  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 import sys

if __name__ == "__main__":
    import ui.installer
    ui.installer.fmain(sys.argv)                                                                                                                                                                                                                                                                                                                                                                                                                                 ipc.py                                                                                              0000644 0001750 0001750 00000306114 15046146440 011502  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-
'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
import sys
import subprocess
import os
import struct
import time
import copy
import utils
import ctypes
import json
import string
import random
import mmap
import stat
import native
import importlib
import threading

_struct_IIcc=struct.Struct("!IIcc")
_struct_I=struct.Struct("!I")
_struct_BI=struct.Struct("!BI")
_struct_c=struct.Struct("!c")
_struct_cc=struct.Struct("!cc")
_struct_utmp = struct.Struct('hi32s4s32s256shhiii4i20s')

IPC_PATH="sharedmem"
MMP_NAME="/dwammp"
SEM_NAME="/dwasem"

_ipcmap={}
_ipcmap["libbaseloaded"] = False
_ipcmap["semaphore"] = threading.Condition()
_ipcmap["picklesemaphore"] = threading.Condition()
_ipcmap["pickleprocess"] = None
_ipcmap["childsharedobjsemaphore"] = threading.Condition()
_ipcmap["childsharedobj"] = []
_ipcmap["threadsharedobj"]={}
_ipcmap["list_names_lock"]=threading.RLock()
_ipcmap["list_names"]=[]

try:
    import _multiprocessing
    import multiprocessing.synchronize
    if utils.is_windows():
        if utils.is_py2():
            import multiprocessing.forking
            import _subprocess
        else:
            import _winapi
except:
    _ipcmap["libbaseloaded"] = True



class SEMAPHORE_DEF(ctypes.Structure):
    _fields_ = [("create",ctypes.c_int),
                ("mode",ctypes.c_int),
                ("fd",ctypes.c_int),
                ("semvalue",ctypes.c_int),
                ("sem",ctypes.c_void_p),
                ("name", ctypes.c_char_p)]

class SHAREDMEMORY_DEF(ctypes.Structure):
    _fields_ = [("create",ctypes.c_int),
                ("mode",ctypes.c_int),
                ("fd",ctypes.c_int),
                ("size",ctypes.c_int),
                ("name", ctypes.c_char_p)]

def _add_child_shared_obj(obj):
    _ipcmap["childsharedobjsemaphore"].acquire()    
    try:
        _ipcmap["childsharedobj"].append(obj)
    finally:
        _ipcmap["childsharedobjsemaphore"].release()

def _destroy_child_shared_obj():
    _ipcmap["childsharedobjsemaphore"].acquire()    
    try:
        for i in reversed(range(len(_ipcmap["childsharedobj"]))):
            try:
                obj=_ipcmap["childsharedobj"][i]
                obj._destroy()
            except:
                ex = utils.get_exception()
                print("_destroy_child_shared_obj  " + str(obj) + " - err: " + utils.exception_to_string(ex))
        _ipcmap["childsharedobj"]=None
    finally:
        _ipcmap["childsharedobjsemaphore"].release()

def _rndseq(cnt):
        ar=[]
        for x in range(cnt):
            if x==0:
                ar.append(random.choice(string.ascii_lowercase))
            else:
                ar.append(random.choice(string.ascii_lowercase + string.digits))            
        return ''.join(ar)

def _add_name(suffix):
        with _ipcmap["list_names_lock"]: 
            while True:
                spid=str(os.getpid())
                nm = suffix + "_" + spid + "_" + _rndseq(10)
                if nm not in _ipcmap["list_names"]:
                    _ipcmap["list_names"].append(nm)
                    if not utils.is_windows():
                        pth = process_manager._get_release_path("dwa_" + spid)
                        if not os.path.exists(pth):
                            with utils.file_open(pth, "w", encoding="utf-8") as f:
                                f.write("[]")
                            utils.path_change_permissions(pth, stat.S_IRUSR | stat.S_IWUSR)
                        with utils.file_open(pth, "w", encoding="utf-8") as f:
                            f.write(json.dumps(_ipcmap["list_names"])) 
                    return nm

def _rem_name(nm):
    with _ipcmap["list_names_lock"]:
        if nm in _ipcmap["list_names"]:
            _ipcmap["list_names"].remove(nm)
            if not utils.is_windows():
                spid=str(os.getpid())
                pth = process_manager._get_release_path("dwa_" + spid)
                with utils.file_open(pth, "w", encoding="utf-8") as f:
                    f.write(json.dumps(_ipcmap["list_names"]))

def _fix_perm_get_mode(fixperm):
    if fixperm is not None:
        jo = fixperm()
        if "mode" in jo:
            return jo["mode"]        
    return stat.S_IRUSR | stat.S_IWUSR 

def _fix_perm_path(fpath, fixperm):
    if utils.is_windows():
        None        
    else:
        utils.path_change_permissions(fpath, _fix_perm_get_mode(fixperm))

def initialize():
        try:
            if not utils.path_exists(IPC_PATH):
                utils.path_makedir(IPC_PATH)
            else:
                clear_path(True)
                if utils.is_mac():
                    _mac_clear_path(True)
        except:
            e = utils.get_exception()
            print("ipc init_path error: " + utils.exception_to_string(e))        
        process_manager.start()

def terminate():
    process_manager.destroy()
    process_manager.join(5)

#2024-10-04 Fix Mac
def _mac_clear_path(bforce=False):
    for fn in os.listdir(IPC_PATH):
        if fn.endswith(".lac"):
            ffn = os.path.join(IPC_PATH, fn)
            if bforce or utils.path_size(ffn)>=0:
                try:
                    utils.path_remove(ffn)                                
                except:
                    None
##########################

def clear_path(checkpid=False):
    if utils.path_exists(IPC_PATH):
        lst=utils.path_list(IPC_PATH);
        for fname in lst:
            try:
                if fname.endswith(".mmp") or fname.endswith(".cfg"):
                    if utils.path_exists(IPC_PATH + utils.path_sep + fname):
                        utils.path_remove(IPC_PATH + utils.path_sep + fname)
            except:
                None
            try:
                if not utils.is_windows():
                    if fname.endswith(".rls"):
                        bdelfile=True                        
                        if is_load_libbase():                        
                            spid = fname[0:len(fname)-4].split("_")[1]
                            if checkpid==True:
                                try:
                                    if native.get_instance().is_task_running(int(spid)):
                                        bdelfile=False
                                except:
                                    bdelfile=False
                            if bdelfile:
                                applst=[]
                                try:
                                    with utils.file_open(IPC_PATH + utils.path_sep + fname, "rb") as f:
                                        applst=json.loads(f.read())
                                except:
                                    None
                                for n in applst:
                                    try:
                                        if n.startswith(SEM_NAME):
                                            _ipcmap["libbase"].semUnlink(str(n))
                                        elif n.startswith(MMP_NAME):
                                            _ipcmap["libbase"].shmUnlink(str(n))
                                    except:
                                        None                                
                        if bdelfile:
                            if utils.path_exists(IPC_PATH + utils.path_sep + fname):
                                utils.path_remove(IPC_PATH + utils.path_sep + fname)
            except:
                None

def _dump_obj(o, prc):    
    dtret=None
    _ipcmap["picklesemaphore"].acquire()
    oldprc = _ipcmap["pickleprocess"]
    try:
        _ipcmap["pickleprocess"] = prc
        sfile = utils.BytesIO()
        utils.Pickler(sfile, -1).dump(o)
        dtret = sfile.getvalue()
    finally:
        _ipcmap["pickleprocess"] = oldprc
        _ipcmap["picklesemaphore"].release()
    return dtret

def _load_obj(dt):
    if dt is None:
        return None    
    sfile = utils.BytesIO(dt)
    return utils.Unpickler(sfile).load()

def is_load_libbase():
    _ipcmap["semaphore"].acquire()
    try:
        if _ipcmap["libbaseloaded"]:
            return "libbase" in _ipcmap
        _ipcmap["libbaseloaded"]=True
        
        if utils.is_windows():
            _libbase = native.get_instance().get_library()
            if _libbase is not None:
                _ipcmap["libbase"]=_libbase
                return True
        else:
            try:
                _libbase = native.get_instance().get_library()
                if _libbase is not None:                    
                    _ipcmap["libbase"]=_libbase
                    return True                                
            except:
                None            
    finally:
        _ipcmap["semaphore"].release()
    return False


class SemIPC(object):

    def __init__(self, kind, value, maxvalue, fixperm=None):
        self._bdestroy=False
        self._bcreate=True
        self._countdup=0
        self._sem_name=None
        self._sem_def=None
        if is_load_libbase():
            self._libbase=_ipcmap["libbase"]
            if utils.is_windows():
                if utils.is_py2():
                    self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
                else:
                    self._semlock = _multiprocessing.SemLock(kind, value, maxvalue, "", True)
            else:
                cnttry=0
                while True:
                    sid=_add_name(SEM_NAME)
                    self._sem_name=sid
                    self._sem_def = SEMAPHORE_DEF()
                    self._sem_def.name=utils.str_to_bytes(self._sem_name)
                    self._sem_def.create=1
                    self._sem_def.mode=_fix_perm_get_mode(fixperm)
                    self._sem_def.semvalue=value
                    iret = self._libbase.semaphoreInitialize(ctypes.byref(self._sem_def))
                    if iret==0:
                        break
                    if sid is not None:
                        _rem_name(sid)
                        sid=None
                    cnttry+=1
                    if cnttry>=10 or iret!=-1:
                        raise Exception("Semaphore initialize failed.")
                    else:
                        time.sleep(0.2)
                
                if utils.is_py2():
                    self._semlock = _multiprocessing.SemLock._rebuild(*(self._sem_def.sem, kind, maxvalue))
                else:
                    self._semlock = _multiprocessing.SemLock._rebuild(*(self._sem_def.sem, kind, maxvalue, None))
            
            self._type=kind
            self._max=maxvalue
        else:
            raise Exception("Semaphore libabase load failed.")
            
                
    def __getstate__(self):
        prc = _ipcmap["pickleprocess"];
        if prc is None:
            raise Exception("No child process attached")
        sid=None        
        if utils.is_windows():
            if utils.is_py2():
                chandle = _multiprocessing.win32.OpenProcess(_multiprocessing.win32.PROCESS_ALL_ACCESS, False, prc.get_pid())
                sid = _subprocess.DuplicateHandle(_subprocess.GetCurrentProcess(), self._semlock.handle, chandle, 0, False, _subprocess.DUPLICATE_SAME_ACCESS).Detach()
                multiprocessing.forking.close(chandle)
            else:
                chandle = _winapi.OpenProcess(_winapi.PROCESS_ALL_ACCESS, False, prc.get_pid())
                sid = _winapi.DuplicateHandle(_winapi.GetCurrentProcess(), self._semlock.handle, chandle, 0, False, _winapi.DUPLICATE_SAME_ACCESS)
                _winapi.CloseHandle(chandle)
        else:
            sid = self._sem_name
        prc._add_shared_obj(self)
        self._countdup+=1        
        return (sid, self._type, self._max)

    def __setstate__(self, state):
        self._bdestroy=False
        self._bcreate=False
        self._countdup=0
        self._sem_def=None
        self._sem_name=None
        if is_load_libbase():
            self._libbase=_ipcmap["libbase"]
            if utils.is_windows():
                if utils.is_py2():
                    self._semlock = _multiprocessing.SemLock._rebuild(*state)
                else:
                    self._semlock = _multiprocessing.SemLock._rebuild(*(state[0],state[1],state[2],None))
            else: 
                self._sem_name=state[0]
                self._sem_def=SEMAPHORE_DEF()
                self._sem_def.name=utils.str_to_bytes(self._sem_name)
                self._sem_def.create=0
                iret = self._libbase.semaphoreInitialize(ctypes.byref(self._sem_def))                    
                if iret==0:
                    if utils.is_py2():
                        self._semlock=_multiprocessing.SemLock._rebuild(*(self._sem_def.sem,state[1],state[2]))
                    else:
                        self._semlock=_multiprocessing.SemLock._rebuild(*(self._sem_def.sem,state[1],state[2],None))
                else:
                    raise Exception("Semaphore initialize failed.")
            _add_child_shared_obj(self)
        else:
            raise Exception("Semaphore libbase load failed.")

       
    def acquire(self, blocking=True, timeout=None):
        if blocking and timeout is None:
            while not self._semlock.acquire(blocking,1):
                if self._bdestroy:
                    raise Exception("Semaphore destroyed.")
            return True
        else:
            return self._semlock.acquire(blocking,timeout)        
    
    def release(self):
        return self._semlock.release()

    def __enter__(self):
        return self.acquire()

    def __exit__(self, *args):
        return self.release()
    
    def get_value(self):
        return self._semlock._get_value()
    
    def __del__(self):
        try:
            self._destroy()            
        except:
            None
    
    def _destroy(self):
        if self._bdestroy==False:
            self._bdestroy=True
            if self._bcreate==True:
                if self._sem_name is not None:
                    _rem_name(self._sem_name)
                    self._sem_name=None
            if self._semlock is not None:
                if utils.is_windows():
                    self._libbase.closeHandle(self._semlock.handle)
                else:
                    self._libbase.semaphoreDestroy(ctypes.byref(self._sem_def))
                self._semlock=None
            

class SemTHC(object):

    def __init__(self, objthc):
        self._threadsharedobjid = None
        self._objthc=objthc
        self._make_methods()
    
    def __del__(self):
        try:
            if self._threadsharedobjid is not None and self._threadsharedobjid in _ipcmap["threadsharedobj"]:            
                del _ipcmap["threadsharedobj"][self._threadsharedobjid]
        except:
            None
    
    def __getstate__(self):
        if self._threadsharedobjid is None: 
            self._threadsharedobjid = id(self)
            _ipcmap["threadsharedobj"][self._threadsharedobjid]=self
        return self._threadsharedobjid
    
    def __setstate__(self, state):
        self._threadsharedobjid = None
        self._objthc=_ipcmap["threadsharedobj"][state]._objthc
        self._make_methods()
    
    def _make_methods(self):
        None
    
class LockIPC(SemIPC):

    def __init__(self, fixperm=None):
        SemIPC.__init__(self, multiprocessing.synchronize.SEMAPHORE, 1, 1, fixperm)

class LockTHC(SemTHC):
    
    def __init__(self):
        SemTHC.__init__(self, threading.Lock())
        
    def _make_methods(self):
        self.acquire = self._objthc.acquire
        self.release = self._objthc.release        

def Lock(fixperm=None):
    if is_load_libbase():
        return LockIPC(fixperm)
    else:
        return LockTHC()
   
class RLockIPC(SemIPC): 
    
    def __init__(self, fixperm=None):
        SemIPC.__init__(self, multiprocessing.synchronize.RECURSIVE_MUTEX, 1, 1, fixperm)

class RLockTHC(SemTHC): 
    
    def __init__(self):
        SemTHC.__init__(self, threading.RLock())
    
    def _make_methods(self):
        self.acquire = self._objthc.acquire
        self.release = self._objthc.release

def RLock(fixperm=None):
    if is_load_libbase():
        return RLockIPC(fixperm)
    else:
        return RLockTHC()

class SemaphoreIPC(SemIPC): 
    
    def __init__(self, value=1, fixperm=None):
        SemIPC.__init__(self, multiprocessing.synchronize.SEMAPHORE, value, _multiprocessing.SemLock.SEM_VALUE_MAX, fixperm)

class SemaphoreTHC(SemTHC): 
    
    def __init__(self, value=1):
        SemTHC.__init__(self, threading.Semaphore(value))
    
    def _make_methods(self):
        self.acquire = self._objthc.acquire
        self.release = self._objthc.release

def Semaphore(fixperm=None):
    if is_load_libbase():
        return SemaphoreIPC(fixperm)
    else:
        return SemaphoreTHC()
    
class BoundedSemaphoreIPC(SemaphoreIPC):

    def __init__(self, value=1, fixperm=None):
        SemIPC.__init__(self, multiprocessing.synchronize.SEMAPHORE, value, value, fixperm)


class BoundedSemaphoreTHC(SemTHC):

    def __init__(self, value=1):
        SemTHC.__init__(self, threading.BoundedSemaphore(value))
    
    def _make_methods(self):
        self.acquire = self._objthc.acquire
        self.release = self._objthc.release

def BoundedSemaphore(fixperm=None):
    if is_load_libbase():
        return BoundedSemaphoreIPC(fixperm)
    else:
        return BoundedSemaphoreTHC()

class ConditionIPC(object):
    
    def __init__(self, lock=None, fixperm=None):
        self._bdestroy=False
        self._lock = lock or RLockIPC(fixperm)
        self._sleeping_count = SemaphoreIPC(0,fixperm)
        self._woken_count = SemaphoreIPC(0,fixperm)
        self._wait_semaphore = SemaphoreIPC(0,fixperm)
        self._make_methods()
    
    def __del__(self):
        self._destroy()
    
    def _destroy(self):
        self._bdestroy=True
        self._wait_semaphore=None
        self._woken_count=None
        self._sleeping_count=None
        self._lock=None                    
    
    def __getstate__(self):
        prc = _ipcmap["pickleprocess"];
        if prc is None:
            raise Exception("No child process attached")
        prc._add_shared_obj(self)
        return (self._lock,self._sleeping_count,self._woken_count,self._wait_semaphore)
    
    def __setstate__(self, st):
        self._lock,self._sleeping_count,self._woken_count,self._wait_semaphore = st
        self._make_methods()
        _add_child_shared_obj(self)
    
    def __enter__(self):
        return self._lock.__enter__()

    def __exit__(self, *args):
        return self._lock.__exit__(*args)
        
    def _make_methods(self):        
        self.acquire = self._lock.acquire        
        self.release = self._lock.release        
    
    def wait(self, timeout=None):
        assert self._lock._semlock._is_mine(), 'must acquire() condition before using wait()'
        self._sleeping_count.release()
        count = self._lock._semlock._count()
        for i in utils.nrange(count):
            self._lock.release()
        try:
            self._wait_semaphore.acquire(True, timeout)
        finally:
            self._woken_count.release()
            for i in utils.nrange(count):
                self._lock.acquire()
        
    def notify(self):
        assert self._lock._semlock._is_mine(), 'lock is not owned'
        assert not self._wait_semaphore.acquire(False)
        while self._woken_count.acquire(False):
            res = self._sleeping_count.acquire(False)
            assert res

        if self._sleeping_count.acquire(False): 
            self._wait_semaphore.release()      
            self._woken_count.acquire()         
            self._wait_semaphore.acquire(False)        
    
    def notify_all(self):
        assert self._lock._semlock._is_mine(), 'lock is not owned'
        assert not self._wait_semaphore.acquire(False)
        while self._woken_count.acquire(False):
            res = self._sleeping_count.acquire(False)
            assert res
        sleepers = 0
        while self._sleeping_count.acquire(False):
            self._wait_semaphore.release()
            sleepers += 1

        if sleepers:
            for i in utils.nrange(sleepers):
                self._woken_count.acquire()
            while self._wait_semaphore.acquire(False):
                pass


class ConditionTHC(SemTHC):
    
    def __init__(self, lock=None):
        SemTHC.__init__(self, threading.Condition(lock))        
    
    def _make_methods(self):
        self.acquire = self._objthc.acquire
        self.release = self._objthc.release
        self.wait=self._objthc.wait
        self.notify=self._objthc.notify
        self.notify_all=self._objthc.notify_all

def Condition(lock=None,fixperm=None):
    if is_load_libbase():
        return ConditionIPC(lock=lock,fixperm=fixperm)
    else:
        return ConditionTHC(lock)

class EventIPC(object):

    def __init__(self, fixperm=None):
        self._cond = ConditionIPC(LockIPC(fixperm),fixperm)
        self._flag = SemaphoreIPC(0)

    def __del__(self):
        self._destroy()
    
    def _destroy(self):
        self._cond=None
        self._flag=None                    
    
    def __getstate__(self):
        prc = _ipcmap["pickleprocess"];
        if prc is None:
            raise Exception("No child process attached")
        prc._add_shared_obj(self)        
        return (self._cond,self._flag)
    
    def __setstate__(self, st):        
        self._cond, self._flag = st
        _add_child_shared_obj(self)
    
    def is_set(self):
        self._cond.acquire()
        try:
            if self._flag.acquire(False):
                self._flag.release()
                return True
            return False
        finally:
            self._cond.release()

    def set(self):
        self._cond.acquire()
        try:
            self._flag.acquire(False)
            self._flag.release()
            self._cond.notify_all()
        finally:
            self._cond.release()

    def clear(self):
        self._cond.acquire()
        try:
            self._flag.acquire(False)
        finally:
            self._cond.release()

    def wait(self, timeout=None):
        self._cond.acquire()
        try:
            if self._flag.acquire(False):
                self._flag.release()
            else:
                self._cond.wait(timeout)

            if self._flag.acquire(False):
                self._flag.release()
                return True
            return False
        finally:
            self._cond.release()

class EventTHC(SemTHC):

    def __init__(self):
        SemTHC.__init__(self, threading.Event())
        
    def _make_methods(self):
        self.is_set=self._objthc.is_set
        self.set=self._objthc.set
        self.clear=self._objthc.clear
        self.wait=self._objthc.wait

def Event(fixperm=None):
    if is_load_libbase():
        return EventIPC(fixperm)
    else:
        return EventTHC()


    
'''
STREAM FILES MAP:

04 bytes: position write side 1 (DATA1)
04 bytes: position read side 2 (DATA1)
01 bytes: State side 1 (C:Connected X:Close T:Terminate)
04 bytes: position write side 2 (DATA2)
04 bytes: position read side 1 (DATA2)
01 bytes: State side 2 (I:Initializing C:Connected X:Close T:Terminate)    
DATA1 - write for Side 1 and read for Side 2)
DATA2 - write for Side 2 and read for Side 1)
'''
class StreamIPC():
    
    def __init__(self,prop=None):
        self._bdestroy=False
        self._prop=prop
        self._side=0
        self._bclose=False        
        self._binit=False        
        self._mmap_state_size = 18
        self._size1 = 0
        self._size2 = 0
        self._read_start_pos=0
        self._write_start_pos=0
        self._write_size = 0
        self._read_size = 0
        self._mmap = None
        self._cond = None
        self._read_timeout_function=None
        self._mconf = None
        self._cprocess = None
        self._keepalive_counter = utils.Counter()
        self._semaphore = threading.Condition()
        #self._otherpid = None
    
    def __del__(self):
        try:
            self._destroy()
        except:
            None        
        
    def _destroy(self):
        if self._bdestroy==False:
            self._bdestroy=True
            try:
                if self._mmap is not None:
                    self._mmap.close()
            except:
                None        
            self._mmap=None
            self._cond = None
    
    def __getstate__(self):
        if self._cprocess is not None:
            raise Exception("Stream already attached to child process.")        
        self._cprocess = _ipcmap["pickleprocess"];
        self._create()
        self._cprocess._add_shared_obj(self)
        return (os.getpid(), self._mmap,self._cond,self._size1,self._size2)
    
    def __setstate__(self, st):
        self._bdestroy=False
        self.__init__()
        self._open(st)
        _add_child_shared_obj(self)
    
    def _is_init(self):
        return self._binit
    
    def _create(self):
        self._semaphore.acquire()
        try:                
            if self._binit==True:
                raise Exception("Stream already initialized.")
            fixperm=None
            if self._prop is not None and "fixperm" in self._prop:
                fixperm=self._prop["fixperm"]
            appsz = 1*1024*1024
            if self._prop is not None and "size" in self._prop:
                appsz=self._prop["size"] 
            self._size1 = int(appsz/2)
            if self._prop is not None and "size1" in self._prop:
                self._size1 = self._prop["size1"] 
            self._size2 = int(appsz/2)
            if self._prop is not None and "size2" in self._prop:
                self._size2 = self._prop["size2"]       
            
            self._mmap = MemMap(self._mmap_state_size + self._size1 + self._size2, fixperm)
            self._cond = Condition(fixperm=fixperm)
            #self._otherpid=self._cprocess.get_pid()
            self._initialize(1)
            self._binit=True            
        except:
            e = utils.get_exception()
            self._destroy()
            raise e
        finally:
            self._semaphore.release() 
        
    def _open(self, ostate):
        self._semaphore.acquire()
        try:
            if self._binit==True:
                raise Exception("Stream already initialized.")
            self._otherpid, self._mmap, self._cond, self._size1, self._size2 = ostate            
            self._initialize(2)
            self._binit=True
        except:
            e = utils.get_exception()
            self._destroy()
            raise e
        finally:
            self._semaphore.release() 
    
    def _initialize(self, side):
        self._side=side
        if self._side==1:
            self._write_size = self._size1
            self._read_size = self._size2
            self._write_pos=0
            self._read_pos=9
            self._state_pos=8
            self._state_pos_other=17
            self._write_start_pos=self._mmap_state_size
            self._read_start_pos=self._mmap_state_size + self._size1
            self._mmap.seek(0)
            self._mmap.write(_struct_IIcc.pack(self._write_start_pos,self._write_start_pos,b"C",b"K"))
            self._mmap.write(_struct_IIcc.pack(0,0,b"I",b"K"))
        elif self._side==2:
            self._write_size = self._size2
            self._read_size = self._size1
            self._write_pos=9
            self._read_pos=0
            self._state_pos=17
            self._state_pos_other=8
            self._write_start_pos=self._mmap_state_size + self._size1
            self._read_start_pos=self._mmap_state_size
            self._mmap.seek(self._write_pos)
            self._mmap.write(_struct_IIcc.pack(self._write_start_pos,self._write_start_pos,b"C",b"K"))                
     
    def _close_nosync(self):
        if not self._bclose:
            self._bclose=True
            self._mmap.seek(self._state_pos)
            self._mmap.write(_struct_c.pack(b"X"))
    
    def close(self):
        if self._binit==False or self._cond is None or self._mmap is None:
            return
        try:
            self._cond.acquire()
            try:
                self._close_nosync()
            finally:
                self._cond.release()
        except:
            self._close_nosync()
    
    def is_closed(self):
        return self._bclose
    
    def write(self, data):
        if self._bclose:
            raise Exception("Stream closed")
        self._cond.acquire()
        try:
            p=0
            sz=len(data)
            while not self._bclose and sz>0:
                self._mmap.seek(self._write_pos)
                pw, pr, st, ka = _struct_IIcc.unpack(self._mmap.read(10))
                self._mmap.seek(self._state_pos_other)
                st_other, ka_other = _struct_cc.unpack(self._mmap.read(2))
                #if st_other==b"X" or st_other==b"T":
                if st_other==b"X":
                    self._close_nosync()
                    break
                if pw>=pr:
                    szspace=self._write_size-(pw-pr)-1
                    szlimit=self._write_size-(pw-self._write_start_pos)
                    szremain=(pr-self._write_start_pos)-1
                    if szremain<=0:
                        szlimit-=1
                else: 
                    szspace=pr-pw-1
                    szlimit=szspace
                    szremain=0
                if szspace==0:
                    self._cond.wait(1)
                else:   
                    self._mmap.seek(pw)
                    if sz<=szlimit:
                        self._mmap.write(utils.buffer_new(data,p,len(data)-p))
                        pw+=sz
                        if pw-self._write_start_pos==self._write_size:
                            pw=self._write_start_pos
                        p+=sz
                        sz=0                                                    
                    else:
                        self._mmap.write(utils.buffer_new(data,p,szlimit))
                        pw+=szlimit
                        if pw-self._write_start_pos==self._write_size:
                            pw=self._write_start_pos
                        p+=szlimit
                        sz-=szlimit
                        if szremain>0:
                            ln = sz
                            if sz>szremain:
                                ln = szremain
                            self._mmap.seek(pw)
                            self._mmap.write(utils.buffer_new(data,p,ln))
                            pw+=ln
                            if pw-self._write_start_pos==self._write_size:
                                pw=self._write_start_pos
                            p+=ln
                            sz-=ln                            
                        
                    self._mmap.seek(self._write_pos)
                    self._mmap.write(_struct_I.pack(pw))
                    self._cond.notify_all()
        finally:
            self._cond.release()
        if self._bclose:
            raise Exception("Stream closed")
    
    def set_read_timeout_function(self,f):
        self._read_timeout_function=f    
    
    def read(self,numbytes=0):
        dt=None
        ardt=[]
        self._cond.acquire()
        try:
            while not self._bclose:
                self._mmap.seek(self._read_pos)
                pw, pr, st, ka = _struct_IIcc.unpack(self._mmap.read(10))
                if pw>pr:
                    sz=pw-pr
                elif pw<pr:
                    sz=self._read_size-(pr-self._read_start_pos)
                if pw==pr: # or (numbytes>0 and numbytes>sz):
                    #if st==b"X" or st==b"T":
                    if st==b"X":
                        self._close_nosync()
                        break
                    self._cond.wait(1)
                    if self._read_timeout_function is not None and self._read_timeout_function(self):
                        raise Exception("Read timeout")                    
                    if self._bdestroy:
                        raise Exception("Stream closed.")
                else: 
                    self._mmap.seek(pr)
                    if numbytes>0:
                        if sz>numbytes:
                            sz=numbytes                    
                        ardt.append(self._mmap.read(sz))
                        numbytes-=sz
                    else:
                        dt = self._mmap.read(sz)
                    pr+=sz
                    if pr-self._read_start_pos==self._read_size:
                        pr=self._read_start_pos
                    self._mmap.seek(self._read_pos+4)
                    self._mmap.write(_struct_I.pack(pr))
                    self._cond.notify_all()
                    if numbytes==0:
                        if dt is None:
                            dt=utils.bytes_join(ardt)
                        break
        finally:
            self._cond.release()
        return dt
    
    def write_int(self, i):
        self.write(_struct_I.pack(i))
    
    def read_int(self):
        bt = self.read(numbytes=4)
        if bt is None:
            return None
        return _struct_I.unpack(bt)[0]        
    
    def write_bytes(self, bts):
        self.write(_struct_I.pack(len(bts))+bts)
    
    def read_bytes(self):
        bt = self.read(numbytes=4)
        if bt is None:
            return None
        sz = _struct_I.unpack(bt)[0]
        if sz==0:
            return ""
        return self.read(numbytes=sz)
    
    def write_str(self, s, enc="utf8"):
        ba = bytearray(s,enc)
        self.write(_struct_BI.pack(len(enc),len(ba))+enc+ba)        
    
    def read_str(self):
        bt = self.read(numbytes=5)
        if bt is None:
            return None
        encsz, sz=_struct_BI.unpack(bt)
        enc = self.read(numbytes=encsz)
        if enc is None:
            return None
        if sz==0:
            return ""
        return self.read(numbytes=sz).decode(enc)
    
    def write_obj(self, o):
        bts = _dump_obj(o,self._cprocess)
        self.write(_struct_I.pack(len(bts))+bts)
    
    def read_obj(self):
        bt = self.read(numbytes=4)
        if bt is None:
            return None
        sz = _struct_I.unpack(bt)[0]
        return _load_obj(self.read(numbytes=sz))

class StreamTHC(StreamIPC):
    
    def __init__(self,prop=None):
        StreamIPC.__init__(self, prop)
        self._threadsharedobjid=None
    
    def __del__(self):
        try:
            if self._threadsharedobjid is not None and self._threadsharedobjid in _ipcmap["threadsharedobj"]:            
                del _ipcmap["threadsharedobj"][self._threadsharedobjid]
        except:
            None
    
    def __getstate__(self):
        if self._threadsharedobjid is None:
            self._create() 
            self._threadsharedobjid = id(self)
            _ipcmap["threadsharedobj"][self._threadsharedobjid]=self
        return self._threadsharedobjid
    
    def __setstate__(self, state):
        self.__init__()
        pobj=_ipcmap["threadsharedobj"][state]
        self._open((None, pobj._mmap,pobj._cond,pobj._size1,pobj._size2))
    

def Stream(prop=None):
    if is_load_libbase():
        return StreamIPC(prop)
    else:
        return StreamTHC(prop)

class MemMapIPC():
    
    def __init__(self,size,fixperm=None):
        self.shm_def = None
        self.file=None
        self.fixperm=fixperm
        self.mmap=None
        self.size=size
        self.bcreate=True
        self.bclose=False
        self.bdestroy=False
        self._create()
    
    def __del__(self):
        try: 
            self._destroy()        
        except:
            None
        
    def _destroy(self):
        if not self.bdestroy:
            self.bdestroy=True
            if self.bcreate:
                self.close()
                if self.ftype=="F":
                    if utils.path_exists(self.fpath):
                        try:
                            utils.path_remove(self.fpath)
                        except:
                            ex = utils.get_exception()
                            print("MemMap remove file error: " + utils.exception_to_string(ex))
                elif self.ftype=="M":
                    _rem_name(self.fname)
                    if not utils.is_windows():                        
                        iret = self._libbase.sharedMemoryDestroy(ctypes.byref(self.shm_def))
                        if iret!=0:
                            print("Shared memory destroy failed.")
            
    
    def __getstate__(self):
        if not self.bcreate:
            raise Exception("MemMap not initialized")
        prc = _ipcmap["pickleprocess"];
        if prc is None:
            raise Exception("No child process attached")
        prc._add_shared_obj(self)
        return {"type":self.ftype, "name":self.fname, "size":self.size}
    
    def __setstate__(self, st):
        self.file=None
        self.fixperm=None
        self.mmap=None
        self.size=None
        self.bcreate=False
        self.bclose=False
        self.bdestroy=False
        self._open(st)
        _add_child_shared_obj(self)
    
    def _create_mem(self, fixperm):
        if not utils.is_windows():
            if is_load_libbase():
                self._libbase=_ipcmap["libbase"]
                cnt=0
                while True:
                    self.fname = _add_name(MMP_NAME)
                    self.shm_def = SHAREDMEMORY_DEF()
                    self.shm_def.name=utils.str_to_bytes(self.fname)
                    self.shm_def.create=1
                    self.shm_def.size=self.size
                    self.shm_def.mode=_fix_perm_get_mode(fixperm)
                    iret = self._libbase.sharedMemoryInitialize(ctypes.byref(self.shm_def))
                    if iret==0:
                        self.ftype="M"
                        try:
                            self._prepare_map()
                            return
                        except:
                            ex = utils.get_exception()
                            self._libbase.sharedMemoryDestroy(ctypes.byref(self.shm_def))
                            _rem_name(self.fname)
                            raise ex
                    else:     
                        _rem_name(self.fname)               
                        cnt+=1
                        if cnt>=5 or iret!=-1:
                            raise Exception("SharedMemory initialize failed")
                        else:
                            time.sleep(0.2)            
            else:
                raise Exception("SharedMemory libbase load failed")
        else:
            self.fname = _add_name(MMP_NAME)
            self.ftype="M"
            try:
                self._prepare_map()
            except:
                _rem_name(self.fname)
                raise Exception(utils.get_exception())
            
    def _create_disk(self, fixperm):
        while True:
            spid=str(os.getpid())
            self.fname = MMP_NAME + "_" + spid + "_" + _rndseq(10)
            self.fpath=IPC_PATH + utils.path_sep + self.fname + ".mmp"
            if not utils.path_exists(self.fpath):
                with utils.file_open(self.fpath, "wb") as f:
                    f.write(" "*self.size)
                _fix_perm_path(self.fpath,fixperm)
                self.file=utils.file_open(self.fpath, "r+b")
                self.ftype="F"
                self._prepare_map()
                break
    
    def _create(self):
        try:
            self._create_mem(self.fixperm)
        except:
            self._create_disk(self.fixperm)

    def _open(self, mconf):
        self.ftype=mconf["type"]
        self.fname=mconf["name"]
        self.size=mconf["size"]
        if self.ftype=="F":
            self.fpath=process_manager._get_memmap_path(self.fname)
            if not utils.path_exists(self.fpath):
                raise Exception("Shared file not found.")
            self.file=utils.file_open(self.fpath, "r+b")
        elif self.ftype=="M":            
            if not utils.is_windows():
                if is_load_libbase():
                    self._libbase=_ipcmap["libbase"]
                    self.shm_def = SHAREDMEMORY_DEF()
                    self.shm_def.name=utils.str_to_bytes(self.fname)
                    self.shm_def.create=0
                    self.shm_def.size=self.size
                    iret = self._libbase.sharedMemoryInitialize(ctypes.byref(self.shm_def))
                    if iret!=0:
                        raise Exception("SharedMemory initialize failed")
                else:
                    raise Exception("SharedMemory libbase load failed")
        self._prepare_map()                
    
    def _prepare_map(self):
        try:
            if self.ftype=="F":
                self.mmap=mmap.mmap(self.file.fileno(), 0)                                
            elif self.ftype=="M":
                if not utils.is_windows():
                    self.mmap=mmap.mmap(self.shm_def.fd, self.size)
                else:
                    try:
                        self.mmap=mmap.mmap(0, self.size, "Global\\" + self.fname)
                    except:
                        e = utils.get_exception()
                        if self.mmap is None:
                            self.mmap=mmap.mmap(0, self.size, "Local\\" + self.fname)
                        else:
                            raise e
        except:
            ex = utils.get_exception()
            try:
                self.close()
            except:
                None
            raise ex
    
    def seek(self, p):
        self.mmap.seek(p)        
    
    def tell(self):
        return self.mmap.tell()     
    
    def write(self, dt):
        self.mmap.write(dt)
        
    def read(self, sz):
        return self.mmap.read(sz)        

    def close(self):
        if not self.bclose:            
            self.bclose=True
            self._mconf=None
            serr=""
            try:
                if self.mmap is not None:
                    self.mmap.close()
                    self.mmap=None                    
            except:
                e = utils.get_exception()
                serr+="Error map close: " + utils.exception_to_string(e) + "; ";
            
            if self.ftype=="F":
                if self.file is not None:  
                    self.file.close()
                    self.file=None
            elif self.ftype=="M":
                if not utils.is_windows():
                    if self.bcreate==False:
                        self._libbase.sharedMemoryDestroy(ctypes.byref(self.shm_def))            
            if serr!="":
                raise Exception(serr)
                        
    def get_size(self):
        return self.size


class MemMapTHC():
    
    def __init__(self,size,fixperm=None):
        self.fixperm=fixperm
        self.size=size
        self.pos=0
        self.data=bytearray(self.size)
        self.lck=threading.Lock()
        self._threadsharedobjid=None

    def __del__(self):
        try:
            if self._threadsharedobjid is not None and self._threadsharedobjid in _ipcmap["threadsharedobj"]:            
                del _ipcmap["threadsharedobj"][self._threadsharedobjid]
        except:
            None
    
    def __getstate__(self):
        if self._threadsharedobjid is None: 
            self._threadsharedobjid = id(self)
            _ipcmap["threadsharedobj"][self._threadsharedobjid]=self
        return self._threadsharedobjid
    
    def __setstate__(self, state):
        pobj=_ipcmap["threadsharedobj"][state]
        self.data=pobj.data
        self.size=pobj.size
        self.fixperm=pobj.fixperm
        self.lck=pobj.lck
        self.pos=0
        

    def seek(self, p):
        self.pos=p        
    
    def tell(self):
        return self.pos     
    
    def write(self, dt):
        if isinstance(dt,ctypes.Structure):
            dt=utils.convert_struct_to_bytes(dt)        
        with self.lck:
            sz=len(dt)
            self.data[self.pos:self.pos+sz]=dt
            self.pos+=sz
        
    def read(self, sz):
        with self.lck:
            sret = utils.bytes_new(self.data[self.pos:self.pos+sz])
            self.pos+=sz
            return sret

    def close(self):
        self.data=None
        self.lck=None
                        
    def get_size(self):
        return self.size


def MemMap(size,fixperm=None):
    if is_load_libbase():
        return MemMapIPC(size,fixperm)
    else:
        return MemMapTHC(size,fixperm)


class Property():
    
    def __init__(self):
        self._semaphore = threading.Condition()
        self._binit=False
        if utils.is_py2():
            self._mmap_write = lambda s: self._mmap.write(s.encode("utf8", errors="replace"))
            self._mmap_read = lambda n: self._mmap.read(n).decode("utf8", errors="replace")
        else:
            self._mmap_write = lambda s: self._mmap.write(bytes(s, "utf8"))
            self._mmap_read = lambda n: str(self._mmap.read(n), "utf8")
            
    
    def create(self, fname, fieldsdef, fixperm=None):
        self._semaphore.acquire()
        try:
            if self._binit:
                raise Exception("Already initialized.")
            self._path = process_manager._get_property_path(fname)
            if utils.path_exists(self._path):
                if fixperm is not None:
                    fixperm(self._path)
                self.open(fname)
                bok=True
                for f in fieldsdef:
                    if f["name"] in self._fields:
                        if f["size"]!=self._fields[f["name"]]["size"]:
                            bok=False
                            break
                    else:
                        bok=False
                        break
                if not bok:
                    self.close()
                    try:
                        utils.path_remove(self._path)
                    except:
                        raise Exception("Shared file is locked.")
                else:
                    self._binit=True
                    return
            self._fields={}
            szdata=0
            for f in fieldsdef:
                self._fields[f["name"]]={"pos":szdata,"size":f["size"]}
                szdata+=f["size"]
            shead=json.dumps(self._fields)
            self._len_def=len(shead)
            self._size=4+self._len_def+szdata
            with utils.file_open(self._path, "wb") as f:
                f.write(b" "*self._size)
            if fixperm is not None:
                fixperm(self._path)
            self._file=utils.file_open(self._path, "r+b")
            self._mmap = mmap.mmap(self._file.fileno(), 0)
            self._mmap.seek(0)
            self._mmap.write(struct.pack('!i', self._len_def))
            self._mmap.write(utils.str_to_bytes(shead))
            self._binit=True
        finally:
            self._semaphore.release()
    
    def exists(self, fname, bpath=None):
        return utils.path_exists(process_manager._get_property_path(fname, path=bpath))
    
    def open(self, fname, bpath=None):
        self._semaphore.acquire()
        try:
            if self._binit:
                raise Exception("Already initialized.")
            self._path = process_manager._get_property_path(fname, path=bpath)
            if not utils.path_exists(self._path):
                raise Exception("Shared file not found")
            self._file=utils.file_open(self._path, "r+b")
            self._mmap = mmap.mmap(self._file.fileno(), 0)
            self._mmap.seek(0)
            #Legge struttura
            self._len_def=struct.unpack('!i',self._mmap.read(4))[0]
            shead=utils.bytes_to_str(self._mmap.read(self._len_def),"utf8")
            self._fields = json.loads(shead)
            self._binit=True
        finally:
            self._semaphore.release()
    
    def close(self):
        self._semaphore.acquire()
        try:
            if self._binit:
                self._binit=False
                self._fields=None
                err=""
                try:
                    self._mmap.close()
                except:
                    e = utils.get_exception()
                    err+="Error map close:" + utils.exception_to_string(e) + "; "
                try:
                    self._file.close()
                except:
                    e = utils.get_exception()
                    err+="Error shared file close:" + utils.exception_to_string(e) + ";"
                if (err!=""):
                    raise Exception(err)
        finally:
            self._semaphore.release()
    
    def is_close(self):
        self._semaphore.acquire()
        try:
            return not self._binit;
        finally:
            self._semaphore.release()
    
    def set_property(self, name, val):
        self._semaphore.acquire()
        try:
            if self._binit:
                if name in self._fields:
                    f=self._fields[name]
                    if len(val)<=f["size"]:
                        self._mmap.seek(4+self._len_def+f["pos"])
                        appv=val + " "*(f["size"]-len(val)) 
                        self._mmap_write(appv)
                    else:
                        raise Exception("Invalid size for property " + name + ".")
                else:
                    raise Exception("Property " + name + " not found.")
            else:
                raise Exception("Not initialized.")
        finally:
            self._semaphore.release()
    
    def get_property(self, name):
        self._semaphore.acquire()
        try:
            if self._binit:
                if name in self._fields:
                    f=self._fields[name]
                    self._mmap.seek(4+self._len_def+f["pos"])
                    sret = self._mmap_read(f["size"])
                    return sret.strip() 
                else:
                    raise Exception("Property " + name + " not found.")
            else:
                raise Exception("Not initialized.")
        finally:
            self._semaphore.release()


class ProcessManager(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self,name="IPCProcessManager")
        self.daemon=True                
        self._lock=threading.RLock()
        #self._list_release_obj=[]
        self._list_process=[]
        self._bdestroy=False
            
    def _get_release_path(self,name,path=None):
        if path is None:
            return IPC_PATH + utils.path_sep + name + ".rls"
        else:
            return path + utils.path_sep + IPC_PATH + utils.path_sep + name + ".rls"
    
    def _get_config_path(self,name,path=None):
        if path is None:
            return IPC_PATH + utils.path_sep + name + ".cfg"
        else:
            return path + utils.path_sep + IPC_PATH + utils.path_sep + name + ".cfg"
    
    def _get_memmap_path(self,name,path=None):
        if path is None:
            return IPC_PATH + utils.path_sep + name + ".mmp"
        else:
            return path + utils.path_sep + IPC_PATH + utils.path_sep + name + ".mmp"
    
    def _get_property_path(self,name,path=None):
        if path is None:
            return IPC_PATH + utils.path_sep + name + ".shm"
        else:
            return path + utils.path_sep + IPC_PATH + utils.path_sep + name + ".shm"
    
    
    def _destroy_process_by_shared_obj(self, obj):
        tocloselist=[]
        with self._lock:
            for prc in self._list_process:
                if prc._contains_shared_object(obj):
                    tocloselist.append(prc)
        
        for prc in tocloselist:
            try:
                prc.close()                
            except:
                e = utils.get_exception()
                print("IPC manager _destroy_process_by_shared_obj error: " + utils.exception_to_string(e))
        
    def _add_process(self, prc):
        with self._lock:
            self._list_process.append(prc)
    
    def destroy(self):
        self._bdestroy=True
            
    def run(self):
        try:
            while not self._bdestroy:
                time.sleep(1)
                if is_load_libbase():
                    #CHECK PROCESS
                    remlist=[]
                    lstprcs={}
                    with self._lock:
                        lstprcs=copy.copy(self._list_process)
                        
                    for prc in lstprcs:
                        try:
                            if prc._check_close():
                                remlist.append(prc)                        
                        except:
                            e = utils.get_exception()
                            print("IPC manager process check close error: " + utils.exception_to_string(e))
                            remlist.append(prc)
                    
                    #REMOVE PROCESS
                    with self._lock:
                        for prc in remlist:
                            self._list_process.remove(prc)
                            #print("PROCES REMOVED " + str(prc))                
                
        except:
            #ex = utils.get_exception()
            #print(utils.exception_to_string(ex))
            None #Sometime shutdown error (most likely raised during interpreter shutdown) errore: <type 'exceptions.TypeError'>: 'NoneType' object is not callable
        
process_manager=ProcessManager()
    
class ProcessConfig():
    
    def __init__(self):
        #STATUS: I=Init  O=OPEN  C=CLOSE
        self.POS_STATUS_PARENT=0
        self.POS_PID_PARENT=self.POS_STATUS_PARENT+1
        self.POS_STATUS_CHILD=self.POS_PID_PARENT+4
        self.POS_PID_CHILD=self.POS_STATUS_CHILD+1
        self.POS_ALIVE_TIME=self.POS_PID_CHILD+4
        self.POS_RUN_INFO=self.POS_ALIVE_TIME+8
        self._key=None   
        self._bclose=True             
    
    def create(self, prc, fixperm=None):        
        self._bcreate=True
        self._process=prc
        self._fixperm=fixperm
        _ipcmap["semaphore"].acquire()
        try:
            while True:
                spid=str(os.getpid())
                self._key = "dwa_" + spid + "_" + _rndseq(10)
                pth = process_manager._get_config_path(self._key)
                if not os.path.exists(pth):
                    break
            with utils.file_open(pth, "wb") as f:
                f.write(utils.bytes_new())
            _fix_perm_path(pth,fixperm)
        finally:
            _ipcmap["semaphore"].release()
        with utils.file_open(pth, "r+b") as f:
            f.write(struct.pack("!cIcIQI",b"I",os.getpid(),b"I",0,int(time.time()*1000),0))
        
        self._bclose=False
    
    def open(self, key):
        self._bcreate=False
        self._process=None
        self._key=key        
        pth = process_manager._get_config_path(self._key)
        if not os.path.exists(pth):
            self._key=None
            raise Exception("File config missing.")
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_PID_CHILD)
            f.write(struct.pack("!I",os.getpid()))
        self._bclose=False
        
    def set_status_parent(self, s):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_STATUS_PARENT)
            f.write(s)
        
    def get_status_child(self):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_STATUS_CHILD)
            return f.read(1)
    
    def set_status_child(self, s):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_STATUS_CHILD)
            f.write(s)            
        
    def get_pid_child(self):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_PID_CHILD)
            return struct.unpack("!I",f.read(4))[0]    
    
    def get_status_parent_and_alive_time(self):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_STATUS_PARENT)
            s = f.read(1)
            f.seek(self.POS_ALIVE_TIME)
            t= struct.unpack("!Q",f.read(8))[0]
            return(s,t)
    
    def set_alive_time(self):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_ALIVE_TIME)
            f.write(struct.pack("!Q",int(time.time()*1000)))
    
    def set_run_info(self, oconf):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_RUN_INFO+4)
            apps = _dump_obj(oconf,self._process)
            f.write(apps)
            f.seek(self.POS_RUN_INFO)
            f.write(struct.pack("!I",len(apps)))
        self._process=None            
    
    def get_run_info(self):
        pth = process_manager._get_config_path(self._key)
        with utils.file_open(pth, "r+b") as f:
            f.seek(self.POS_RUN_INFO)
            ln = struct.unpack("!I",f.read(4))[0]
            if ln>0:
                oconf=_load_obj(f.read(ln))
                f.seek(self.POS_RUN_INFO)
                f.write(struct.pack("!I",0))
                f.write(b" "*ln)
                f.flush()
                return oconf
            else:
                return {}
    
    def is_close(self):
        return self._bclose
    
    def close(self):
        if not self._bclose:
            self._bclose=True
            if self._bcreate:
                pth = process_manager._get_config_path(self._key)
                if os.path.exists(pth):
                    if utils.path_exists(pth):
                        utils.path_remove(pth)
            self._key=None
            self._process=None
    
    def get_key(self):
        return self._key

class Process():
    
    def __init__(self, pkg, cls, args=None, fixperm=None,forcesubprocess=False):
        self._process=None
        self._ppid=None
        self._pkg=pkg
        self._cls=cls
        self._args=args
        if self._args is None:
            self._args=[]
        self._fixperm=fixperm
        self._forcesubprocess=forcesubprocess
        self._stream=None
        self._binit=False
        self._bclose=False
        self._tdclose=None
        self._config=None
        self._lock=threading.RLock()
        self._list_shared_obj=[]
        self._tdchild=None
        self._py_exe_path=None
        self._py_home_path=None        
    
    def __del__(self):
        self._stream=None
        self._process=None
        self._ppid=None
    
    def _add_shared_obj(self, obj):
        with self._lock:
            self._list_shared_obj.append(obj)
            
    def _contains_shared_object(self, obj):
        with self._lock:
            if self._list_shared_obj is not None:
                return obj in self._list_shared_obj
        return False
    
    def get_fixperm(self):
        return self._fixperm
    
    def get_pid(self):
        return self._ppid
    
    def _create_process(self, args):
        if utils.is_windows() and not self._forcesubprocess:
            appcmd=u"\"" + self._py_exe_path + u"\" -S -m agent " + utils.str_new(args[2]) + u" " + utils.str_new(args[3])            
            self._process=None
            self._ppid = native.get_instance().start_process(appcmd,self._py_home_path)
            if self._ppid==-1:
                self._ppid=None
                raise Exception("Start process error")
        elif utils.is_linux():
            libenv = os.environ
            if utils.path_exists("runtime"):
                libenv["LD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
            elif "LD_LIBRARY_PATH" in os.environ:
                libenv["LD_LIBRARY_PATH"]=os.environ["LD_LIBRARY_PATH"]
            self._process=subprocess.Popen(args, env=libenv)
            self._ppid=self._process.pid
        elif utils.is_mac():
            libenv = os.environ
            if utils.path_exists("runtime"):
                libenv["DYLD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
            elif "DYLD_LIBRARY_PATH" in os.environ:
                libenv["DYLD_LIBRARY_PATH"]=os.environ["DYLD_LIBRARY_PATH"]
            self._process=subprocess.Popen(args, env=libenv)
            self._ppid=self._process.pid
        else:
            self._process=subprocess.Popen(args)
            self._ppid=self._process.pid
    
    def _start_ipc(self):
        try:
            self._config=ProcessConfig()
            self._config.create(self, self._fixperm)
            #START CHILD PROCESS
            self._py_exe_path=utils.str_new(sys.executable) 
            if utils.is_windows():
                #sys.executable don't work well with unicode path
                self._py_home_path=u""
                appth="native\\service.properties"
                if (utils.path_exists(appth)):
                    f = utils.file_open(appth, 'r', encoding='utf-8')
                    sprop = f.read()
                    f.close()
                    lns = sprop.splitlines()
                    for line in lns:
                        if line.startswith("pythonPath="):
                            self._py_exe_path=utils.str_new(line[11:])
                        elif line.startswith("pythonHome="):
                            self._py_home_path=utils.str_new(line[11:])   
                                     
            self._create_process([self._py_exe_path, u"agent.py", u"app=ipc", self._config.get_key()])
            #WAIT CHILD PROCESS
            cnt=utils.Counter()
            cnt_timeout=15
            while True:
                if not self.is_running():
                    raise Exception("Process closed (child pid).")
                try:
                    apppid=self._config.get_pid_child()
                    if apppid!=0:
                        self._ppid=apppid
                        break
                except:
                    None
                if cnt.is_elapsed(cnt_timeout):
                    raise Exception("Start process timeout")
                time.sleep(0.5)                
            
            self._stream = Stream({"fixperm":self._fixperm})
            oconf={}
            oconf["package"]=self._pkg
            oconf["class"]=self._cls
            oconf["arguments"]=self._args
            oconf["stream"]=self._stream
            oconf["aliveTime"]=time.time()
            self._config.set_run_info(oconf)
            self._config.set_status_parent(b"O")
            while True:
                if not self.is_running():
                    raise Exception("Process closed (child status).")
                try:
                    stcl=self._config.get_status_child()
                    if stcl==b"O":
                        break
                    elif stcl==b"C":
                        raise Exception("Process closed (child status).")
                except:
                    None
                if cnt.is_elapsed(cnt_timeout):
                    raise Exception("Start process timeout")
                time.sleep(0.5)
            process_manager._add_process(self)
            #print("STARTED " + str(self._ppid) + " self._cls:" + self._cls)
        except:
            ex = utils.get_exception()
            try:
                self._config.set_status_parent(b"C")
                self._config.close()
            except:
                ex1 = utils.get_exception()
                print("_start_ipc close config file - err: " + str(ex1))
            self._kill()
            if self._stream is not None:
                self._stream.close()
                self._stream=None
            raise ex    
    
    def _start_thp(self):
        try:
            self._stream = Stream()
            pkn=self._pkg.rsplit('.',1)[0]
            if pkn==self._pkg:
                pkn=None                    
            cls = self._cls
            objlib = importlib.import_module(self._pkg,pkn)
            cls = getattr(objlib, cls, None)                    
            cstrm = _load_obj(_dump_obj(self._stream, None))
            self._tdchild = cls(cstrm,self._args)
            self._tdchild.start()
        except:
            ex = utils.get_exception()
            self._tdchild=None
            if self._stream is not None:
                self._stream.close()
                self._stream=None                
            raise ex
        
    
    def start(self):
        if self._binit:
            raise Exception("Process already initialized.")
        self._binit=True
        if is_load_libbase():
            self._start_ipc()
        else:
            self._start_thp()
        return self._stream

    def is_running(self):
        if is_load_libbase():
            try:
                if self._process!=None:
                    if self._process.poll() == None:
                        return True
                    else:
                        return False
            except:
                None
            if self._ppid!=None:
                if native.get_instance().is_task_running(self._ppid):
                    return True
        elif self._tdchild is not None:
            try:
                return self._tdchild.is_alive()
            except:
                None            
        return False

    def join(self, timeout=None):
        if is_load_libbase():
            cnt=utils.Counter() 
            while self.is_running():
                if timeout is not None and cnt.is_elapsed(timeout):
                    return
                time.sleep(0.5)
            self._stream=None
            self._process=None
            self._ppid=None
        elif self._tdchild is not None:
            self._tdchild.join(timeout)
            self._stream=None
            self._tdchild=None            
    
    def close(self):
        if not self._bclose:
            self._bclose=True
            if self.is_running():
                if is_load_libbase():
                    if self._tdclose is None:
                        try:
                            if self._config is not None:
                                self._config.set_status_parent(b"C")
                        except:
                            None
                        if self._stream is not None: 
                            self._stream.close()
                            self._stream=None
                        self._tdclose=threading.Thread(target=self._close_wait, name="IPCProcessClose")
                        self._tdclose.start()
                else:
                    if self._stream is not None: 
                        self._stream.close()
                        self._stream=None
                    self._tdchild.join(2)
                    self._tdchild=None
            else:
                if self._stream is not None: 
                    self._stream.close()
                    self._stream=None
                self._process=None
                self._ppid=None   
                self._tdchild=None
        
    def _close_wait(self):
        cnt=utils.Counter() 
        while self.is_running():
            if cnt.is_elapsed(5):
                break
            time.sleep(1)
        self._kill()
    
    def _check_close(self):
        if self._config is None:
            return True
        if self.is_running():
            self._config.set_alive_time()
        else:
            self._bclose=True
            stcl=self._config.get_status_child()
            try:
                self._config.close()
            except:
                ex = utils.get_exception()
                print("_check_close config file - err: " + utils.exception_to_string(ex))
            self._config=None
            if stcl==b"C":
                with self._lock:
                    self._list_shared_obj=None                                        
            else:
                #PROCESS TERMINATED ABNORMALLY
                lstshobj=None
                with self._lock:
                    lstshobj=self._list_shared_obj
                    self._list_shared_obj=None
                #CLOSE ALL PROCESS THAT USE SHARE OBJECT
                if lstshobj is not None:
                    for i in reversed(range(len(lstshobj))):
                        try:
                            obj=lstshobj[i]
                            process_manager._destroy_process_by_shared_obj(obj)
                        except:
                            ex = utils.get_exception()
                            print("_check_close close other process shared obj:  " + str(obj) + " - err: " + utils.exception_to_string(ex))
                    #DESTROY OBJECT (RELEASE LOCKS)
                    for i in reversed(range(len(lstshobj))):
                        try:
                            obj=lstshobj[i]
                            obj._destroy()
                        except:
                            ex = utils.get_exception()
                            print("_check_close destroy shared obj:  " + str(obj) + " - err: " + utils.exception_to_string(ex))                    
            self._stream=None
            self._process=None
            self._ppid=None            
            return True
        return False

    def _kill(self):
        if self.is_running():
            if self._stream is not None:
                self._stream.close()
                self._stream=None
            if self._process!=None:
                self._process.kill()
                self._process.poll()
                time.sleep(1)
            if self._ppid!=None:
                native.get_instance().task_kill(self._ppid)
        self._process=None
        self._ppid=None
        

class ProcessInActiveConsole(Process):
        
    def __init__(self, mdl, func, args=None, forcesubprocess=False):
        Process.__init__(self, mdl, func, args, self._process_fix_perm, forcesubprocess)
        self._forcesubprocess=forcesubprocess
        self._currentconsole=None
        self._currentconsolecounter=utils.Counter()
        if utils.is_mac():
            self._bmaclac=(os.getuid()==0 and utils.path_exists("native/dwaglac.plist"))        
        
    
    def _process_fix_perm(self):
        jo={}
        appconsole = self._currentconsole
        if (utils.is_mac() or utils.is_linux()) and appconsole!=None and "uid" in appconsole and appconsole["uid"]!=os.getuid():
            jo["mode"]=stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH
        return jo
    
    def _get_linux_envirionment(self,uid,tty):
        bwaylandok=False
        lstret={}
        
        #DETECT BY PROCESS
        if uid!=-1:       
            lst = native.get_instance().get_process_ids()
            try:
                bok=False
                cnt = utils.Counter()
                while not bok and cnt.get_value()<=2:
                    for pid in lst:
                        if native.get_instance().get_process_uid(pid)==uid:
                            lstret={}
                            arenv = native.get_instance().get_process_environ(pid)
                            for apps in arenv:                        
                                if apps=="XAUTHORITY" or apps=="DISPLAY" or apps.startswith("WAYLAND_") or apps.startswith("XDG_") or apps.startswith("LC_") or apps.startswith("LANG"):
                                    lstret[apps]=arenv[apps]
                                    #print("DETECT BY PROCESS- " + apps + ": " + lstret[apps])                                        
                            if ("DISPLAY" in lstret and "XAUTHORITY" in lstret):                                    
                                bok=True
                                break
                            lstret={}
                    time.sleep(0.5)
            except:
                lstret={}
        
        #DETECT BY WHAT OF w COMMAND
        swhatcmd=None
        if uid!=-1:
            try:
                import pwd
                pwinfo=pwd.getpwuid(uid)
                if pwinfo is not None and pwinfo.pw_name is not None:
                    data = subprocess.Popen(["w"], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
                    so, se = data.communicate()
                    if so is not None and len(so)>0:
                        so=utils.bytes_to_str(so, "utf8")
                        ar = so.split("\n")
                        del ar[0]
                        bhead=True
                        pwhat=-1
                        for s in ar:
                            if bhead:
                                #DETECT WHAT position
                                bhead=False
                                pwhat = s.upper().index("WHAT")                                
                            elif pwhat>=0 and s.split(" ")[0].rstrip(" ")==pwinfo.pw_name:
                                swhatcmd = s[pwhat:].lstrip(" ").rstrip(" ")
                                break
            except:
                None
        if swhatcmd is not None:
            try:
                lst = native.get_instance().get_process_ids()
                for pid in lst:
                    sst = native.get_instance().get_process_stat(pid)
                    if native.get_instance().get_process_uid(pid)==uid:
                        bok=False
                        lret = native.get_instance().get_process_cmdline(pid)
                        lcmd=" ".join(lret).lstrip(" ").rstrip(" ")
                        if lcmd==swhatcmd:
                            arenv = native.get_instance().get_process_environ(pid)
                            for apps in arenv:                        
                                if apps=="XAUTHORITY" or apps=="DISPLAY" or apps.startswith("WAYLAND_") or apps.startswith("XDG_") or apps.startswith("LC_") or apps.startswith("LANG"):
                                    lstret[apps]=arenv[apps]
                                    #print("DETECT BY WHAT OF w COMMAND - " + apps + ": " + lstret[apps])
                            break
                                            
            except:
                None
        
        #DETECT DISPLAY BY w COMMAND
        if uid!=-1:
            try:
                import pwd
                pwinfo=pwd.getpwuid(uid)
                if pwinfo is not None and pwinfo.pw_name is not None:
                    data = subprocess.Popen(["w"], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
                    so, se = data.communicate()
                    if so is not None and len(so)>0:
                        so=utils.bytes_to_str(so, "utf8")
                        ar = so.split("\n")
                        del ar[0]
                        bhead=True
                        ptty=-1
                        for s in ar:
                            if bhead:
                                #DETECT WHAT position
                                bhead=False
                                ptty = s.upper().index("TTY")                                
                            elif ptty>=0 and s.split(" ")[0].rstrip(" ")==pwinfo.pw_name:
                                sdisplay = s[ptty:]
                                sdisplay=sdisplay[0:sdisplay.index(" ")]
                                if len(sdisplay)==2:
                                    if sdisplay[0]==":" and sdisplay[1].isdigit():
                                        sdsp=sdisplay
                                elif len(sdisplay)==4:
                                    if sdisplay[0]==":" and sdisplay[1].isdigit() and sdisplay[2]=="." and sdisplay[3].isdigit():
                                        sdsp=sdisplay
                                if sdsp is not None:
                                    lstret["DISPLAY"] = sdsp
                                    #print("DETECT DISPLAY BY w COMMAND - DISPLAY: " + lstret["DISPLAY"])
                                    break
            except:
                None
        
        #DETECT BY CMDLINE
        try:
            if tty is not None:
                st = os.stat("/dev/" + tty)
            lst = native.get_instance().get_process_ids()
            for pid in lst:
                sst = native.get_instance().get_process_stat(pid)
                if (tty is None or sst["tty"]==st.st_rdev) and (uid==-1 or native.get_instance().get_process_uid(pid)==uid):
                    lret = native.get_instance().get_process_cmdline(pid)
                    bok=False
                    sxauth=None
                    sdsp=None
                    for i in range(len(lret)):
                        if i==0:
                            scmd = lret[i]
                            arcmd = scmd.split("/")
                            if len(arcmd)>0:
                                scmd=arcmd[len(arcmd)-1]
                                if scmd.upper()=="X" or "XORG" in scmd.upper():
                                    bok=True
                                elif scmd.upper()=="XWAYLAND" or scmd.upper()=="WAYLAND":
                                    bwaylandok=True
                        if bok:
                            sitm = lret[i]
                            if i>0 and lret[i-1]=="-auth":
                                sxauth=sitm
                            elif len(sitm)==2:
                                if sitm[0]==":" and sitm[1].isdigit():
                                    sdsp=sitm
                            elif len(sitm)==4:
                                if sitm[0]==":" and sitm[1].isdigit() and sitm[2]=="." and sitm[3].isdigit():
                                    sdsp=sitm
                    if sxauth is not None:
                        lstret["XAUTHORITY"] = sxauth                            
                        #print("DETECT BY CMDLINE - XAUTHORITY: " + lstret["XAUTHORITY"])                            
                    if sdsp is not None:
                        lstret["DISPLAY"] = sdsp
                        #print("DETECT BY CMDLINE - DISPLAY: " + lstret["DISPLAY"])
                    if bok:
                        bwaylandok=False
                        break
            
        except:
            None            
        
        if bwaylandok or (("XDG_SESSION_TYPE" in lstret) and (lstret["XDG_SESSION_TYPE"].upper()=="WAYLAND")):            
            unm=""
            try:
                if uid>0:
                    import pwd
                    unm = pwd.getpwuid(uid).pw_name
            except:
                None
            if uid<=0 or unm=="gdm" or unm=="sddm" or unm=="lightdm" or unm=="xdm": #LOGIN MANAGER
                raise Exception("Capturing the login manager screen is not allowed under Wayland.")
            if "XDG_SESSION_TYPE" not in lstret or lstret["XDG_SESSION_TYPE"].upper()!="WAYLAND":
                lstret["XDG_SESSION_TYPE"]="wayland"
            if "DISPLAY" not in lstret:
                lstret["DISPLAY"]=":0"
        else:
            if "DISPLAY" not in lstret:
                lstret["DISPLAY"]=":0"                    
            if "XAUTHORITY" in lstret:
                sxauth = lstret["XAUTHORITY"]
                if not os.path.exists(sxauth):
                    try:
                        p = sxauth.rindex("/")
                        if p>=0:
                            sxauthdir = sxauth[0:p]
                            os.makedirs(sxauthdir, 0o700)
                            fd = os.open(sxauth,os.O_RDWR|os.O_CREAT, 0o600)
                            os.close(fd)                                                        
                    except:
                        None                
            if "XAUTHORITY" not in lstret and (uid!=-1 or tty is not None): 
                return self._get_linux_envirionment(-1, None)                
            '''
            if "DISPLAY" in lstret:
                print("DISPLAY: " + lstret["DISPLAY"])
            if "XAUTHORITY" in lstret:
                print("XAUTHORITY: " + lstret["XAUTHORITY"])
            '''
            
        return lstret
    
    def _load_linux_console_info(self,appconsole):
        if appconsole is not None:
            stty=appconsole["tty"]
            #print("\n\nTTY: " + stty)
            pwinfo=None
            try:
                import pwd
                if os.getuid()==0 and "cktype" in appconsole and appconsole["cktype"]!="":
                    if appconsole["cktype"]=="USER_NAME":
                        pwinfo=pwd.getpwnam(appconsole["ckvalue"])
                    elif appconsole["cktype"]=="USER_ID":
                        pwinfo=pwd.getpwuid(appconsole["ckvalue"])
                else:
                    pwinfo=pwd.getpwuid(os.getuid())
            except:
                None
            
            appuid=-1
            libenv={}
            if pwinfo is not None:
                #print("uid: " + str(pwinfo.pw_uid))                                    
                appconsole["user"] = pwinfo.pw_name
                appconsole["uid"] = pwinfo.pw_uid
                appconsole["gid"] = pwinfo.pw_gid
                appconsole["home"] = pwinfo.pw_dir
                appuid=pwinfo.pw_uid
            else:
                libenv = os.environ
            
            lstret = self._get_linux_envirionment(appuid, stty)
            for k in lstret:
                libenv[k]=lstret[k]
            if pwinfo is not None:
                libenv['HOME'] = appconsole["home"]
                libenv['LOGNAME'] = appconsole["user"]
                libenv['USER'] = appconsole["user"]
            appconsole["env"]=libenv
    
    def _fix_linux_lang(self,libenv):
        bok=False            
        if "LANG" in libenv:
            ar = libenv["LANG"].split(".")
            if len(ar)>1 and (ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8"):
                bok=True
        if not bok:
            if "LC_ALL" in libenv:
                ar = libenv["LC_ALL"].split(".")
                if len(ar)>1 and (ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8"):
                    libenv["LANG"]=libenv["LC_ALL"]
                    bok=True
        if not bok:
            if "LC_NAME" in libenv:
                ar = libenv["LC_NAME"].split(".")
                if len(ar)>1 and (ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8"):
                    libenv["LANG"]=libenv["LC_NAME"]
                    bok=True
        if not bok:
            dlng = native.get_instance().get_utf8_lang()
            if dlng is not None:
                libenv["LANG"]=dlng
        #print("_fix_linux_lang: " + str(libenv))            
    
    def _load_mac_console_info(self,appconsole):
        if appconsole is not None:
            pwinfo=None            
            try:
                import pwd
                if os.getuid()==0:
                    pwinfo=pwd.getpwuid(appconsole["uid"])
                else:
                    pwinfo=pwd.getpwuid(os.getuid())
            except:
                None                
            libenv = os.environ                
            if pwinfo is not None:
                try:
                    appconsole["user"] = pwinfo.pw_name
                    appconsole["gid"] = pwinfo.pw_gid
                    appconsole["home"] = pwinfo.pw_dir
                    libenv['HOME'] = appconsole["home"]
                    libenv['LOGNAME'] = appconsole["user"]
                    libenv['USER'] = appconsole["user"]
                except:
                    None
            appconsole["env"]=libenv
    
    def _init_process_demote(self,user_uid, user_gid):
        def set_ids():
            os.setgid(user_gid)
            os.setuid(user_uid)
        return set_ids        

    def _is_old_windows(self):
        return (utils.is_windows() and (native.get_instance().is_win_xp()==1 or native.get_instance().is_win_2003_server()==1))
    
    def is_change_console(self):
        if utils.is_mac() and self._bmaclac:
            return False
        if self._currentconsole is not None and self._currentconsolecounter.is_elapsed(1):
            self._currentconsolecounter.reset()
            appc=self._detect_console()
            if appc is not None:
                if utils.is_windows():
                    if self._is_old_windows() and appc["id"]>0:
                        native.get_instance().win_station_connect()
                        time.sleep(1)
                        return True
                    elif appc["id"]!=self._currentconsole["id"]:
                        return True
                elif utils.is_mac():
                    if appc["uid"]!=self._currentconsole["uid"]:
                        return True
                elif utils.is_linux():
                    if appc["tty"]!=self._currentconsole["tty"]:
                        if appc["cktype"]=="" or appc["cktype"]!=self._currentconsole["cktype"]:
                            return True
                        else:
                            return appc["ckvalue"]!=self._currentconsole["ckvalue"]
        return False
    
    def _detect_console(self):
        if utils.is_windows():
            return {"id": native.get_instance().get_active_console_id()}            
        elif utils.is_mac():
            return {"uid": native.get_instance().get_console_user_id()}            
        elif utils.is_linux():
            try:
                ar={}
                stty=native.get_instance().get_tty_active()
                if stty is not None:
                    ar["tty"] = stty
                    ar["cktype"] = ""
                    ar["ckvalue"] = ""
                    try:
                        if os.getuid()==0:
                            sbuf = None
                            offset = 0                        
                            with open('/var/run/utmp', 'rb') as fd:
                                sbuf = fd.read()
                            if sbuf is not None:
                                while offset < len(sbuf):
                                    arutmp = _struct_utmp.unpack_from(sbuf, offset)
                                    stype=arutmp[0]
                                    if stype==7: #USER_PROCESS
                                        appstty=utils.bytes_to_str(arutmp[2].rstrip(b'\0'),"utf8")
                                        if appstty==stty:
                                            ar["cktype"]="USER_NAME"
                                            ar["ckvalue"]=utils.bytes_to_str(arutmp[4].rstrip(b'\0'),"utf8")
                                            break                                     
                                    offset += _struct_utmp.size
                    except:
                        None
                    if ar["cktype"]=="":
                        try:    
                            st = os.stat("/dev/" + stty)
                            ar["cktype"]="USER_ID"
                            ar["ckvalue"]=st.st_uid
                        except:
                            None
                    #print("_detect_console_:" + ar["cktype"] + " " + str(ar["ckvalue"]))
                    return ar
            except:
                None 
            
        return None
                    
    def _create_process(self, args):        
        if utils.is_windows():
            if self._forcesubprocess:
                self._currentconsole=None
                self._process=subprocess.Popen(args)
                self._ppid=self._process.pid
            else:
                '''
                runaselevatore=u"False"
                if self._get_screen_module().DWAScreenCaptureIsUserInAdminGroup()==1:
                    if self._get_screen_module().DWAScreenCaptureIsRunAsAdmin()==1:
                        if self._get_screen_module().DWAScreenCaptureIsProcessElevated()==1:
                            runaselevatore=u"True"
                '''            
                appcmd=u"\"" + self._py_exe_path + u"\" -S -m agent " + utils.str_new(args[2]) + u" " + utils.str_new(args[3]) #+ u" " + TMP_str_new(str(self._agent_main._agent_debug_mode)) + u" windows " + runaselevatore            
                self._process=None
                self._ppid = native.get_instance().start_process_in_active_console(appcmd,self._py_home_path)
                if self._ppid==-1:
                    self._ppid=None
                    self._currentconsole=None
                    raise Exception("Start process error")
        elif utils.is_linux():
            bfaultback=True
            if self._currentconsole!=None and "env" in self._currentconsole:
                try:
                    libenv=self._currentconsole["env"]
                    if utils.path_exists("runtime"):
                        libenv["LD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
                    elif "LD_LIBRARY_PATH" in os.environ:
                        libenv["LD_LIBRARY_PATH"]=os.environ["LD_LIBRARY_PATH"]
                    self._fix_linux_lang(libenv)
                    self._process=subprocess.Popen(args, env=libenv, preexec_fn=self._init_process_demote(self._currentconsole["uid"], self._currentconsole["gid"]))                        
                    self._ppid=self._process.pid
                    bfaultback=False
                except:
                    None
            if bfaultback:
                libenv = os.environ
                lstret = self._get_linux_envirionment(-1, None)
                for k in lstret:
                    libenv[k]=lstret[k]
                if utils.path_exists("runtime"):
                    libenv["LD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
                elif "LD_LIBRARY_PATH" in os.environ:
                    libenv["LD_LIBRARY_PATH"]=os.environ["LD_LIBRARY_PATH"]
                self._fix_linux_lang(libenv)
                self._process=subprocess.Popen(args, env=libenv)
                self._ppid=self._process.pid
                
        elif utils.is_mac():
            bfaultback=True
            self._ppid=None
            if not self._forcesubprocess:
                if self._bmaclac:
                    pth = process_manager._get_config_path(self._config.get_key())
                    pth=pth[0:len(pth)-4] + ".lac"
                    if utils.path_exists(pth):
                        utils.path_remove(pth)
                    with utils.file_open(pth, "wb"):
                        None
                    _fix_perm_path(pth,self._fixperm)
                    
                    #ATTENDE PID
                    for i in range(4):
                        time.sleep(1)
                        if utils.path_size(pth)>=0:
                            try:
                                with utils.file_open(pth, "rt") as f:
                                    apps = f.read().strip()
                                    if apps!="ERROR":
                                        self._ppid = int(apps)
                            except:
                                None
                            break
                    try:
                        utils.path_remove(pth)                                
                    except:
                        None
                    _mac_clear_path()
                    bfaultback=False
                else:
                    if not hasattr(native.get_instance(), "is_old_guilnc") or native.get_instance().is_old_guilnc():                
                        #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
                        if self._currentconsole!=None and "uid" in self._currentconsole:
                            self._ppid=native.get_instance().exec_guilnc(self._currentconsole["uid"],"ipc",[args[3]])
                    else:
                        if self._currentconsole!=None and "env" in self._currentconsole:
                            try:
                                if self._currentconsole["uid"]==os.getuid() or "user" not in self._currentconsole:
                                    libenv=self._currentconsole["env"]
                                    if utils.path_exists("runtime"):
                                        libenv["DYLD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
                                    elif "DYLD_LIBRARY_PATH" in os.environ:
                                        libenv["DYLD_LIBRARY_PATH"]=os.environ["DYLD_LIBRARY_PATH"]
                                    self._process=subprocess.Popen(args, env=libenv, preexec_fn=self._init_process_demote(self._currentconsole["uid"], self._currentconsole["gid"]))                        
                                else:
                                    argsAA=[]
                                    argsAA.append("su")
                                    argsAA.append("-l")
                                    argsAA.append(self._currentconsole["user"])
                                    argsAA.append("-c")
                                    sdypth=""
                                    if utils.path_exists("runtime"):
                                        sdypth=" DYLD_LIBRARY_PATH=" + utils.path_absname("runtime/lib") + " "
                                    elif "DYLD_LIBRARY_PATH" in os.environ:
                                        sdypth=" DYLD_LIBRARY_PATH=" + os.environ["DYLD_LIBRARY_PATH"] + " "                                    
                                    argsAA.append("(cd " + os.getcwd() + " &&" + sdypth + " ".join(args) + ")")
                                    self._process=subprocess.Popen(argsAA)                            
                                self._ppid=self._process.pid
                                bfaultback=False
                            except:
                                None
                                            
                if self._ppid is not None:
                    self._process = None
                    bfaultback=False                                    
            if bfaultback:
                libenv = os.environ
                if utils.path_exists("runtime"):
                    libenv["DYLD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
                elif "DYLD_LIBRARY_PATH" in os.environ:
                    libenv["DYLD_LIBRARY_PATH"]=os.environ["DYLD_LIBRARY_PATH"]
                self._process=subprocess.Popen(args, env=libenv)
                self._ppid=self._process.pid
                
            
    def _start_ipc(self):
        try:            
            self._currentconsole=self._detect_console()
            if utils.is_linux():                
                self._load_linux_console_info(self._currentconsole)
            elif utils.is_mac():
                self._load_mac_console_info(self._currentconsole)
            Process._start_ipc(self)
            self._currentconsolecounter.reset()
        except:
            ex = utils.get_exception()
            self._currentconsole=None
            raise ex

class ChildProcessThread(threading.Thread):
    
    def _get_thread_name(self):
        return type(self).__name__
    
    def _on_init(self):
        None
    
    def __init__(self, strm, args):
        threading.Thread.__init__(self,  name=self._get_thread_name())
        self._stream=strm
        self._args=args
        self._destroy=False
        self._on_init()
    
    def get_stream(self):
        return self._stream
    
    def get_arguments(self):
        return self._args
    
    def is_destroy(self):
        return self._destroy or self._stream.is_closed()
    
    def destroy(self):
        self._destroy=True
        self._stream.close()

def ctrlHandler(ctrlType):    
    return 1


def fmain(args): #SERVE PER MACOS APP
    if utils.is_windows():
        try:
            #Evita che si chiude durante il logoff
            HandlerRoutine = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_uint)(ctrlHandler)
            ctypes.windll.kernel32.SetConsoleCtrlHandler(HandlerRoutine, 1)
        except:
            None
    
    #fk = args[1]
    waittm=0.5
    parentAliveTime=None
    parentAliveCounter=utils.Counter()
    parentAliveTimeout=15    
    tdchild=None 
    #oconf={}
    conf=ProcessConfig()
    try:
        conf.open(args[1])
        while ((not parentAliveCounter.is_elapsed(parentAliveTimeout)) and (tdchild is None or tdchild.is_alive())):
            appst, apptm = conf.get_status_parent_and_alive_time()
            apptm = apptm*1000.0
            if parentAliveTime is None or parentAliveTime!=apptm:
                    parentAliveTime=apptm
                    parentAliveCounter.reset()
            if tdchild is None and appst==b"O":
                oconf=conf.get_run_info()            
                pkn = oconf["package"].rsplit('.',1)[0]
                if pkn == oconf["package"]:
                    pkn=None                    
                cls = oconf["class"]
                objlib = importlib.import_module(oconf["package"],pkn)
                cls = getattr(objlib, cls, None)                    
                cstrm = oconf["stream"]
                cargs = oconf["arguments"]
                if cls is not None:
                    tdchild = cls(cstrm,cargs)
                    tdchild.start()
                    conf.set_status_child(b"O")
                    waittm=1.0
                else:
                    break                    
            if appst==b"C":
                break            
            time.sleep(waittm)           
    except:
        ex = utils.get_exception()
        print(utils.exception_to_string(ex))
    if tdchild is not None:
        try:
            tdchild.destroy()
            tdchild.join(5)
        except:
            None
    _destroy_child_shared_obj()
    if not conf.is_close():
        conf.set_status_child(b"C")
    conf.close()
    
    
     
    
                                                                                                                                                                                                                                                                                                                                                                                                                                                    LICENSES/                                                                                           0000755 0001750 0001750 00000000000 15064774431 011564  5                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 LICENSES/ui                                                                                         0000644 0001750 0001750 00000041313 13422307023 012107  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 Mozilla Public License Version 2.0
==================================

1. Definitions
--------------

1.1. "Contributor"
    means each individual or legal entity that creates, contributes to
    the creation of, or owns Covered Software.

1.2. "Contributor Version"
    means the combination of the Contributions of others (if any) used
    by a Contributor and that particular Contributor's Contribution.

1.3. "Contribution"
    means Covered Software of a particular Contributor.

1.4. "Covered Software"
    means Source Code Form to which the initial Contributor has attached
    the notice in Exhibit A, the Executable Form of such Source Code
    Form, and Modifications of such Source Code Form, in each case
    including portions thereof.

1.5. "Incompatible With Secondary Licenses"
    means

    (a) that the initial Contributor has attached the notice described
        in Exhibit B to the Covered Software; or

    (b) that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the
        terms of a Secondary License.

1.6. "Executable Form"
    means any form of the work other than Source Code Form.

1.7. "Larger Work"
    means a work that combines Covered Software with other material, in 
    a separate file or files, that is not Covered Software.

1.8. "License"
    means this document.

1.9. "Licensable"
    means having the right to grant, to the maximum extent possible,
    whether at the time of the initial grant or subsequently, any and
    all of the rights conveyed by this License.

1.10. "Modifications"
    means any of the following:

    (a) any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered
        Software; or

    (b) any new file in Source Code Form that contains any Covered
        Software.

1.11. "Patent Claims" of a Contributor
    means any patent claim(s), including without limitation, method,
    process, and apparatus claims, in any patent Licensable by such
    Contributor that would be infringed, but for the grant of the
    License, by the making, using, selling, offering for sale, having
    made, import, or transfer of either its Contributions or its
    Contributor Version.

1.12. "Secondary License"
    means either the GNU General Public License, Version 2.0, the GNU
    Lesser General Public License, Version 2.1, the GNU Affero General
    Public License, Version 3.0, or any later versions of those
    licenses.

1.13. "Source Code Form"
    means the form of the work preferred for making modifications.

1.14. "You" (or "Your")
    means an individual or a legal entity exercising rights under this
    License. For legal entities, "You" includes any entity that
    controls, is controlled by, or is under common control with You. For
    purposes of this definition, "control" means (a) the power, direct
    or indirect, to cause the direction or management of such entity,
    whether by contract or otherwise, or (b) ownership of more than
    fifty percent (50%) of the outstanding shares or beneficial
    ownership of such entity.

2. License Grants and Conditions
--------------------------------

2.1. Grants

Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:

(a) under intellectual property rights (other than patent or trademark)
    Licensable by such Contributor to use, reproduce, make available,
    modify, display, perform, distribute, and otherwise exploit its
    Contributions, either on an unmodified basis, with Modifications, or
    as part of a Larger Work; and

(b) under Patent Claims of such Contributor to make, use, sell, offer
    for sale, have made, import, and otherwise transfer either its
    Contributions or its Contributor Version.

2.2. Effective Date

The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.

2.3. Limitations on Grant Scope

The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:

(a) for any code that a Contributor has removed from Covered Software;
    or

(b) for infringements caused by: (i) Your and any other third party's
    modifications of Covered Software, or (ii) the combination of its
    Contributions with other software (except as part of its Contributor
    Version); or

(c) under Patent Claims infringed by Covered Software in the absence of
    its Contributions.

This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).

2.4. Subsequent Licenses

No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).

2.5. Representation

Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.

2.7. Conditions

Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.

3. Responsibilities
-------------------

3.1. Distribution of Source Form

All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.

3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

(a) such Covered Software must also be made available in Source Code
    Form, as described in Section 3.1, and You must inform recipients of
    the Executable Form how they can obtain a copy of such Source Code
    Form by reasonable means in a timely manner, at a charge no more
    than the cost of distribution to the recipient; and

(b) You may distribute such Executable Form under the terms of this
    License, or sublicense it under different terms, provided that the
    license for the Executable Form does not attempt to limit or alter
    the recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).

3.4. Notices

You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.

4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------

If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.

5. Termination
--------------

5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.

************************************************************************
*                                                                      *
*  6. Disclaimer of Warranty                                           *
*  -------------------------                                           *
*                                                                      *
*  Covered Software is provided under this License on an "as is"       *
*  basis, without warranty of any kind, either expressed, implied, or  *
*  statutory, including, without limitation, warranties that the       *
*  Covered Software is free of defects, merchantable, fit for a        *
*  particular purpose or non-infringing. The entire risk as to the     *
*  quality and performance of the Covered Software is with You.        *
*  Should any Covered Software prove defective in any respect, You     *
*  (not any Contributor) assume the cost of any necessary servicing,   *
*  repair, or correction. This disclaimer of warranty constitutes an   *
*  essential part of this License. No use of any Covered Software is   *
*  authorized under this License except under this disclaimer.         *
*                                                                      *
************************************************************************

************************************************************************
*                                                                      *
*  7. Limitation of Liability                                          *
*  --------------------------                                          *
*                                                                      *
*  Under no circumstances and under no legal theory, whether tort      *
*  (including negligence), contract, or otherwise, shall any           *
*  Contributor, or anyone who distributes Covered Software as          *
*  permitted above, be liable to You for any direct, indirect,         *
*  special, incidental, or consequential damages of any character      *
*  including, without limitation, damages for lost profits, loss of    *
*  goodwill, work stoppage, computer failure or malfunction, or any    *
*  and all other commercial damages or losses, even if such party      *
*  shall have been informed of the possibility of such damages. This   *
*  limitation of liability shall not apply to liability for death or   *
*  personal injury resulting from such party's negligence to the       *
*  extent applicable law prohibits such limitation. Some               *
*  jurisdictions do not allow the exclusion or limitation of           *
*  incidental or consequential damages, so this exclusion and          *
*  limitation may not apply to You.                                    *
*                                                                      *
************************************************************************

8. Litigation
-------------

Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.

9. Miscellaneous
----------------

This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.

10. Versions of the License
---------------------------

10.1. New Versions

Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.

10.2. Effect of New Versions

You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.

10.3. Modified Versions

If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses

If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice
-------------------------------------------

  This Source Code Form is subject to the terms of the Mozilla Public
  License, v. 2.0. If a copy of the MPL was not distributed with this
  file, You can obtain one at http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------

  This Source Code Form is "Incompatible With Secondary Licenses", as
  defined by the Mozilla Public License, v. 2.0.
                                                                                                                                                                                                                                                                                                                     LICENSES/core                                                                                       0000644 0001750 0001750 00000041313 13422307023 012422  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 Mozilla Public License Version 2.0
==================================

1. Definitions
--------------

1.1. "Contributor"
    means each individual or legal entity that creates, contributes to
    the creation of, or owns Covered Software.

1.2. "Contributor Version"
    means the combination of the Contributions of others (if any) used
    by a Contributor and that particular Contributor's Contribution.

1.3. "Contribution"
    means Covered Software of a particular Contributor.

1.4. "Covered Software"
    means Source Code Form to which the initial Contributor has attached
    the notice in Exhibit A, the Executable Form of such Source Code
    Form, and Modifications of such Source Code Form, in each case
    including portions thereof.

1.5. "Incompatible With Secondary Licenses"
    means

    (a) that the initial Contributor has attached the notice described
        in Exhibit B to the Covered Software; or

    (b) that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the
        terms of a Secondary License.

1.6. "Executable Form"
    means any form of the work other than Source Code Form.

1.7. "Larger Work"
    means a work that combines Covered Software with other material, in 
    a separate file or files, that is not Covered Software.

1.8. "License"
    means this document.

1.9. "Licensable"
    means having the right to grant, to the maximum extent possible,
    whether at the time of the initial grant or subsequently, any and
    all of the rights conveyed by this License.

1.10. "Modifications"
    means any of the following:

    (a) any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered
        Software; or

    (b) any new file in Source Code Form that contains any Covered
        Software.

1.11. "Patent Claims" of a Contributor
    means any patent claim(s), including without limitation, method,
    process, and apparatus claims, in any patent Licensable by such
    Contributor that would be infringed, but for the grant of the
    License, by the making, using, selling, offering for sale, having
    made, import, or transfer of either its Contributions or its
    Contributor Version.

1.12. "Secondary License"
    means either the GNU General Public License, Version 2.0, the GNU
    Lesser General Public License, Version 2.1, the GNU Affero General
    Public License, Version 3.0, or any later versions of those
    licenses.

1.13. "Source Code Form"
    means the form of the work preferred for making modifications.

1.14. "You" (or "Your")
    means an individual or a legal entity exercising rights under this
    License. For legal entities, "You" includes any entity that
    controls, is controlled by, or is under common control with You. For
    purposes of this definition, "control" means (a) the power, direct
    or indirect, to cause the direction or management of such entity,
    whether by contract or otherwise, or (b) ownership of more than
    fifty percent (50%) of the outstanding shares or beneficial
    ownership of such entity.

2. License Grants and Conditions
--------------------------------

2.1. Grants

Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:

(a) under intellectual property rights (other than patent or trademark)
    Licensable by such Contributor to use, reproduce, make available,
    modify, display, perform, distribute, and otherwise exploit its
    Contributions, either on an unmodified basis, with Modifications, or
    as part of a Larger Work; and

(b) under Patent Claims of such Contributor to make, use, sell, offer
    for sale, have made, import, and otherwise transfer either its
    Contributions or its Contributor Version.

2.2. Effective Date

The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.

2.3. Limitations on Grant Scope

The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:

(a) for any code that a Contributor has removed from Covered Software;
    or

(b) for infringements caused by: (i) Your and any other third party's
    modifications of Covered Software, or (ii) the combination of its
    Contributions with other software (except as part of its Contributor
    Version); or

(c) under Patent Claims infringed by Covered Software in the absence of
    its Contributions.

This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).

2.4. Subsequent Licenses

No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).

2.5. Representation

Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.

2.7. Conditions

Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.

3. Responsibilities
-------------------

3.1. Distribution of Source Form

All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.

3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

(a) such Covered Software must also be made available in Source Code
    Form, as described in Section 3.1, and You must inform recipients of
    the Executable Form how they can obtain a copy of such Source Code
    Form by reasonable means in a timely manner, at a charge no more
    than the cost of distribution to the recipient; and

(b) You may distribute such Executable Form under the terms of this
    License, or sublicense it under different terms, provided that the
    license for the Executable Form does not attempt to limit or alter
    the recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).

3.4. Notices

You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.

4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------

If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.

5. Termination
--------------

5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.

************************************************************************
*                                                                      *
*  6. Disclaimer of Warranty                                           *
*  -------------------------                                           *
*                                                                      *
*  Covered Software is provided under this License on an "as is"       *
*  basis, without warranty of any kind, either expressed, implied, or  *
*  statutory, including, without limitation, warranties that the       *
*  Covered Software is free of defects, merchantable, fit for a        *
*  particular purpose or non-infringing. The entire risk as to the     *
*  quality and performance of the Covered Software is with You.        *
*  Should any Covered Software prove defective in any respect, You     *
*  (not any Contributor) assume the cost of any necessary servicing,   *
*  repair, or correction. This disclaimer of warranty constitutes an   *
*  essential part of this License. No use of any Covered Software is   *
*  authorized under this License except under this disclaimer.         *
*                                                                      *
************************************************************************

************************************************************************
*                                                                      *
*  7. Limitation of Liability                                          *
*  --------------------------                                          *
*                                                                      *
*  Under no circumstances and under no legal theory, whether tort      *
*  (including negligence), contract, or otherwise, shall any           *
*  Contributor, or anyone who distributes Covered Software as          *
*  permitted above, be liable to You for any direct, indirect,         *
*  special, incidental, or consequential damages of any character      *
*  including, without limitation, damages for lost profits, loss of    *
*  goodwill, work stoppage, computer failure or malfunction, or any    *
*  and all other commercial damages or losses, even if such party      *
*  shall have been informed of the possibility of such damages. This   *
*  limitation of liability shall not apply to liability for death or   *
*  personal injury resulting from such party's negligence to the       *
*  extent applicable law prohibits such limitation. Some               *
*  jurisdictions do not allow the exclusion or limitation of           *
*  incidental or consequential damages, so this exclusion and          *
*  limitation may not apply to You.                                    *
*                                                                      *
************************************************************************

8. Litigation
-------------

Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.

9. Miscellaneous
----------------

This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.

10. Versions of the License
---------------------------

10.1. New Versions

Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.

10.2. Effect of New Versions

You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.

10.3. Modified Versions

If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses

If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice
-------------------------------------------

  This Source Code Form is subject to the terms of the Mozilla Public
  License, v. 2.0. If a copy of the MPL was not distributed with this
  file, You can obtain one at http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------

  This Source Code Form is "Incompatible With Secondary Licenses", as
  defined by the Mozilla Public License, v. 2.0.
                                                                                                                                                                                                                                                                                                                     LICENSES/runtime                                                                                    0000644 0001750 0001750 00000113706 13410204240 013155  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 Most part of this software has been written in Python. 
To execute it you need the Python framework you can find in the runtime folder.
For information about Python visit https://www.python.org/.

This Python software is governed by the following license:
A. HISTORY OF THE SOFTWARE
==========================

Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC.  Guido remains Python's
principal author, although it includes many contributions from others.

In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.

In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
year, the PythonLabs team moved to Digital Creations (now Zope
Corporation, see http://www.zope.com).  In 2001, the Python Software
Foundation (PSF, see http://www.python.org/psf/) was formed, a
non-profit organization created specifically to own Python-related
Intellectual Property.  Zope Corporation is a sponsoring member of
the PSF.

All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition).  Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.

    Release         Derived     Year        Owner       GPL-
                    from                                compatible? (1)

    0.9.0 thru 1.2              1991-1995   CWI         yes
    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
    1.6             1.5.2       2000        CNRI        no
    2.0             1.6         2000        BeOpen.com  no
    1.6.1           1.6         2001        CNRI        yes (2)
    2.1             2.0+1.6.1   2001        PSF         no
    2.0.1           2.0+1.6.1   2001        PSF         yes
    2.1.1           2.1+2.0.1   2001        PSF         yes
    2.1.2           2.1.1       2002        PSF         yes
    2.1.3           2.1.2       2002        PSF         yes
    2.2 and above   2.1.1       2001-now    PSF         yes

Footnotes:

(1) GPL-compatible doesn't mean that we're distributing Python under
    the GPL.  All Python licenses, unlike the GPL, let you distribute
    a modified version without making your changes open source.  The
    GPL-compatible licenses make it possible to combine Python with
    other software that is released under the GPL; the others don't.

(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
    because its license has a choice of law clause.  According to
    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
    is "not incompatible" with the GPL.

Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.


B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------

1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016 Python Software Foundation; All Rights
Reserved" are retained in Python alone or in any derivative version prepared by
Licensee.

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS"
basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee.  This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------

BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").

2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.

3. BeOpen is making the Software available to Licensee on an "AS IS"
basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions.  Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee.  This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party.  As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.

7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.


CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------

1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee.  Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement.  This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013.  This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".

3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.

4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.

5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.

7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee.  This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.

8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.

        ACCEPT


CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------

Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands.  All rights reserved.

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


Additional Conditions for this Windows binary build
---------------------------------------------------

This program is linked with and uses Microsoft Distributable Code,
copyrighted by Microsoft Corporation. The Microsoft Distributable Code
includes the following files:

msvcr90.dll
msvcp90.dll
msvcm90.dll

If you further distribute programs that include the Microsoft
Distributable Code, you must comply with the restrictions on
distribution specified by Microsoft. In particular, you must require
distributors and external end users to agree to terms that protect the
Microsoft Distributable Code at least as much as Microsoft's own
requirements for the Distributable Code. See Microsoft's documentation
(included in its developer tools and on its website at microsoft.com)
for specific details.

Redistribution of the Windows binary build of the Python interpreter
complies with this agreement, provided that you do not:

- alter any copyright, trademark or patent notice in Microsoft's
Distributable Code;

- use Microsoft's trademarks in your programs' names or in a way that
suggests your programs come from or are endorsed by Microsoft;

- distribute Microsoft's Distributable Code to run on a platform other
than Microsoft operating systems, run-time technologies or application
platforms; or

- include Microsoft Distributable Code in malicious, deceptive or
unlawful programs.

These restrictions apply only to the Microsoft Distributable Code as
defined above, not to Python itself or any programs running on the
Python interpreter. The redistribution of the Python interpreter and
libraries is governed by the Python Software License included with this
file, or by other licenses as marked.


This copy of Python includes a copy of bzip2, which is licensed under the following terms:


--------------------------------------------------------------------------

This program, "bzip2", the associated library "libbzip2", and all
documentation, are copyright (C) 1996-2010 Julian R Seward.  All
rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. The origin of this software must not be misrepresented; you must 
   not claim that you wrote the original software.  If you use this 
   software in a product, an acknowledgment in the product 
   documentation would be appreciated but is not required.

3. Altered source versions must be plainly marked as such, and must
   not be misrepresented as being the original software.

4. The name of the author may not be used to endorse or promote 
   products derived from this software without specific prior written 
   permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Julian Seward, jseward@bzip.org
bzip2/libbzip2 version 1.0.6 of 6 September 2010

--------------------------------------------------------------------------

This copy of Python includes a copy of Berkeley DB, which is licensed under the following terms:

/*-
 * $Id: LICENSE,v 12.9 2008/02/07 17:12:17 mark Exp $
 */

The following is the license that applies to this copy of the Berkeley DB
software.  For a license to use the Berkeley DB software under conditions
other than those described here, or to purchase support for this software,
please contact Oracle at berkeleydb-info_us@oracle.com.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/*
 * Copyright (c) 1990,2008 Oracle.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Redistributions in any form must be accompanied by information on
 *    how to obtain complete source code for the DB software and any
 *    accompanying software that uses the DB software.  The source code
 *    must either be included in the distribution or be available for no
 *    more than the cost of distribution plus a nominal fee, and must be
 *    freely redistributable under reasonable conditions.  For an
 *    executable file, complete source code means the source code for all
 *    modules it contains.  It does not include source code for modules or
 *    files that typically accompany the major components of the operating
 *    system on which the executable file runs.
 *
 * THIS SOFTWARE IS PROVIDED BY ORACLE ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT, ARE DISCLAIMED.  IN NO EVENT SHALL ORACLE BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
/*
 * Copyright (c) 1990, 1993, 1994, 1995
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
/*
 * Copyright (c) 1995, 1996
 *	The President and Fellows of Harvard University.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/***
 * ASM: a very small and fast Java bytecode manipulation framework
 * Copyright (c) 2000-2005 INRIA, France Telecom
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holders nor the names of its
 *    contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

This copy of Python includes a copy of openssl, which is licensed under the following terms:


  LICENSE ISSUES
  ==============

  The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
  the OpenSSL License and the original SSLeay license apply to the toolkit.
  See below for the actual license texts. Actually both licenses are BSD-style
  Open Source licenses. In case of any license issues related to OpenSSL
  please contact openssl-core@openssl.org.

  OpenSSL License
  ---------------

/* ====================================================================
 * Copyright (c) 1998-2016 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 *
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 *    endorse or promote products derived from this software without
 *    prior written permission. For written permission, please contact
 *    openssl-core@openssl.org.
 *
 * 5. Products derived from this software may not be called "OpenSSL"
 *    nor may "OpenSSL" appear in their names without prior written
 *    permission of the OpenSSL Project.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 *
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

 Original SSLeay License
 -----------------------

/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 * 
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from 
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 * 
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */


This copy of Python includes a copy of Tcl, which is licensed under the following terms:

This software is copyrighted by the Regents of the University of
California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
Corporation and other parties.  The following terms apply to all files
associated with the software unless explicitly disclaimed in
individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal 
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (b) (3) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license. 

This copy of Python includes a copy of Tk, which is licensed under the following terms:

This software is copyrighted by the Regents of the University of
California, Sun Microsystems, Inc., and other parties.  The following
terms apply to all files associated with the software unless explicitly
disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (b) (3) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license.

This copy of Python includes a copy of Tix, which is licensed under the following terms:

Copyright (c) 1993-1999 Ioi Kim Lam.
Copyright (c) 2000-2001 Tix Project Group.
Copyright (c) 2004 ActiveState

This software is copyrighted by the above entities
and other parties.  The following terms apply to all files associated
with the software unless explicitly disclaimed in individual files.

The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.

GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal 
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license. 

----------------------------------------------------------------------

Parts of this software are based on the Tcl/Tk software copyrighted by
the Regents of the University of California, Sun Microsystems, Inc.,
and other parties. The original license terms of the Tcl/Tk software
distribution is included in the file docs/license.tcltk.

Parts of this software are based on the HTML Library software
copyrighted by Sun Microsystems, Inc. The original license terms of
the HTML Library software distribution is included in the file
docs/license.html_lib.

                                                          LICENSES/README                                                                                     0000644 0001750 0001750 00000001271 13410204240 012420  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 License
-------
This software is free and open source.
It consists of one core component and several libraries and components defined "app" that could be governed by different licenses. The "LICENSES" folder contains all the licenses:

runtime: license of Python runtime.
core: license of core component.
ui: license of ui component.
app_<appname>: license of each app.
<libname>: license of each library.


Security
--------
To protect your privacy we guarantee that no information will be stored on our servers and communications are encrypted so third parties can't read them anyway.


Software updates
----------------
The updates of this software are automatic.





                                                                                                                                                                                                                                                                                                                                       listener.py                                                                                         0000644 0001750 0001750 00000035776 15057517063 012576  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
import threading
import time
import ipc
import json
import os
import hashlib
import base64
import utils


##############################
######### IPCSERVER ##########
##############################
class IPCServer(threading.Thread):
    def __init__(self,agent):
        threading.Thread.__init__(self, name="ListenerIPCServer")
        self._agent=agent
        self._prop = None
        self._status = None
        self._config = None
    
    def start(self):
        self._prop = ipc.Property()
        fieldsdef=[]
        fieldsdef.append({"name":"counter","size":30})
        fieldsdef.append({"name":"state","size":5})
        fieldsdef.append({"name":"connections","size":20}) #TO REMOVE 2021-02-11
        fieldsdef.append({"name":"group","size":100*5})
        fieldsdef.append({"name":"name","size":100*5})        
        fieldsdef.append({"name":"request_pid","size":20})
        fieldsdef.append({"name":"request_data","size":1024*16})
        fieldsdef.append({"name":"response_data","size":1024*16})        
        fieldsdef.append({"name":"sessions_status","size":1024*512})
        def fix_perm(fn):
            self._agent.get_osmodule().set_file_permission_everyone(fn)            
        self._prop.create("status_config", fieldsdef, fix_perm)
        self._prop.set_property("response_data","")
        self._prop.set_property("request_data","")
        self._prop.set_property("request_pid","")
        
        self._status=IPCStatus(self._agent,self._prop)
        self._status.start();
        self._config=IPCConfig(self._agent,self._prop)
        self._config.start();
    
    def close(self):
        if self._config!=None:
            self._config.close();
            self._config.join(5000)
        if self._status!=None:
            self._status.close();
            self._status.join(5000)
        self._prop.close()

class IPCStatus(threading.Thread):
    def __init__(self,agent,prop):
        threading.Thread.__init__(self, name="ListenerIPCStatus")
        self.daemon=True
        self._agent=agent
        self._prop=prop
        self._bclose=False
        self._cnt=0

    def run(self):
        logwait=60*10
        while not self._bclose:
            if self._cnt==utils.sys_maxsize:
                self._cnt=0
            else:
                self._cnt+=1
            try:
                self._prop.set_property("counter", str(self._cnt))
                self._prop.set_property("state", str(self._agent.get_status()))
                
                self._prop.set_property("group", "") #TO REMOVE 2022-09-13
                
                sapp = self._agent.get_name()
                if sapp is None:
                    sapp=""
                if utils.is_py2():
                    sapp=sapp.encode("unicode-escape");
                self._prop.set_property("name", sapp)
                
                jo = self._agent.get_active_sessions_status()                
                self._prop.set_property("connections", str(len(jo))) #TO REMOVE 2021-02-11                
                self._prop.set_property("sessions_status", json.dumps(jo))
            except:
                e=utils.get_exception()
                if logwait>=60*10:
                    logwait=0
                    self._agent.write_except(e)                    
                logwait+=1
            time.sleep(1)
                
        self._bclose=True        
    
    def close(self):
        self._bclose=True
        

class IPCConfig(threading.Thread):
    
    def __init__(self,agent,prop):
        threading.Thread.__init__(self, name="ListenerIPCConfig")
        self.daemon=True
        self._agent=agent
        self._prop=prop
        self._bclose=False
        self._cnt=0
        
    
    def run(self):

        while not self._bclose:
            #VARIFICA NUOVE RICHIESTE DI CONFIGURAZIONE
            request_pid = self._prop.get_property("request_pid");
            if request_pid!="":
                try:
                    request_data = None
                    #Wait 2 seconds for request
                    for i in range(20):
                        request_data = self._prop.get_property("request_data");
                        if request_data!="":
                            break
                        time.sleep(0.1)
                    if request_data is not None:
                        self._prop.set_property("response_data",self._invoke_request(request_data))
                        #Wait 2 seconds for read response
                        for i in range(20):
                            if self._prop.get_property("request_data")=="":
                                break
                            time.sleep(0.1)
                except:
                    e=utils.get_exception()
                    self._agent.write_except(e);
                self._prop.set_property("response_data","")
                self._prop.set_property("request_data","")
                self._prop.set_property("request_pid","")
            time.sleep(0.1)
        self._bclose=True
    
    def _invoke_request(self, request_data):
        if request_data!=None:
            try:
                prms=json.loads(request_data)
                req = prms["_request"]
                func = getattr(self,  '_req_' + req)
                try:
                    return func(prms)
                except:
                    e=utils.get_exception()
                    return "ERROR:" + utils.exception_to_string(e)
            except:
                return "ERROR:INVALID_REQUEST"
        else:
            return "ERROR:INVALID_REQUEST"
    
    def _req_check_auth(self, prms):
        if "_user" in prms and "_password" in prms :
            usr=prms["_user"]
            pwd=prms["_password"]
            if self._agent.check_config_auth(usr, pwd):
                return "OK"
        return "ERROR:FORBIDDEN"
    
    #COMPATIBILITY OLD AGENT UI VERSION 25-05-2022
    def _req_change_pwd(self, prms):
        return self._req_change_config_pwd(prms)

    def _req_change_config_pwd(self, prms):
        if 'nopassword' in prms:
            nopwd = prms['nopassword']
            if nopwd=='true':
                self._agent.set_config_password("")
                return "OK"
            else:
                return "ERROR:INVALID_AUTHENTICATION"
        elif 'password' in prms:
            pwd = prms['password']
            self._agent.set_config_password(pwd)
            return "OK"
        else:
            return "ERROR:INVALID_AUTHENTICATION"
    
    def _req_change_session_pwd(self, prms):
        if 'nopassword' in prms:
            nopwd = prms['nopassword']
            if nopwd=='true':
                self._agent.set_session_password("")
                return "OK"
            else:
                return "ERROR:INVALID_AUTHENTICATION"
        elif 'password' in prms:
            pwd = prms['password']
            self._agent.set_session_password(pwd)
            return "OK"
        else:
            return "ERROR:INVALID_AUTHENTICATION"
    
    def _req_set_config(self, prms):
        if "key" in prms and "value" in prms:
            key=prms["key"]
            value=prms["value"]
            self._agent.set_config_str(key, value)
            return "OK"
        return "ERROR:INVALID_PARAMETERS."
    
    def _req_get_config(self, prms):
        if "key" in prms:
            key=prms["key"]
            return "OK:" + self._agent.get_config_str(key)
        return "ERROR:INVALID_PARAMETERS."
    
    def _req_remove_key(self, prms):
        self._agent.remove_key()
        return "OK"
    
    def _req_install_key(self, prms):
        if "code" in prms:
            code=prms["code"]
            self._agent.install_key(code)
            return "OK"
        return "ERROR:INVALID_PARAMETERS."
    
    def _req_install_new_agent(self, prms):
        #user, password, name, id, group
        if "user" in prms and "password" in prms and "name" in prms:
            user=prms["user"]
            password=prms["password"]
            name=prms["name"]
            group=None
            groupCreate=False
            if "group" in prms:
                group=prms["group"]
                if "groupCreate" in prms and prms["groupCreate"] == True:                    
                    groupCreate=True
            self._agent.install_new_agent(user,password,name,group,groupCreate)
            return "OK"
        return "ERROR:INVALID_PARAMETERS."
    
    def _req_set_proxy(self, prms):
        ptype = None
        host = None
        port = None
        user = None
        password = None
        if 'type' in prms:
            ptype = prms['type']
        if 'host' in prms:
            host = prms['host']
        if 'port' in prms and prms['port'] is not None and prms['port'].strip()!="":
            port = int(prms['port'])
        if 'user' in prms:
            user = prms['user']
        if 'password' in prms:
            password = prms['password']
        self._agent.set_proxy(ptype,  host,  port,  user,  password)
        return "OK"

    def _req_accept_session(self, prms):
        if "id" in prms:
            sid=prms["id"]
            self._agent.accept_session(sid)
            return "OK"
        return "ERROR:INVALID_PARAMETERS."
    
    def _req_reject_session(self, prms):
        if "id" in prms:
            sid=prms["id"]
            self._agent.reject_session(sid)
            return "OK"
        return "ERROR:INVALID_PARAMETERS."
    
    def close(self):
        self._bclose=True

class IPCClient():
    
    def __init__(self,path=None):
        self._prop=ipc.Property()
        self._prop.open("status_config",bpath=path)
    
    def close(self):
        self._prop.close()
        self._prop=None
    
    def is_close(self):
        return self._prop is None or self._prop.is_close()

    def get_property(self,name):
        return self._prop.get_property(name)

    def send_request(self, usr, pwd, req, prms=None):
        sret=""
        try:
            spid=str(os.getpid())
            bok=False
            #Attende 40 secondi
            cnt=self._prop.get_property("counter")
            testcnt=0
            for i in range(400):
                bok=True
                if self._prop.get_property("request_pid")=="": #PRONTO AD ACCETTARE RICHIESTE
                    self._prop.set_property("request_pid",spid)
                    if prms is None:
                        prms={}
                    prms["_request"]=req
                    prms["_user"]=usr
                    #Hash password
                    encpwd=hashlib.sha256(utils.str_to_bytes(pwd,"utf8")).digest()
                    encpwd=base64.b64encode(encpwd)
                    prms["_password"]=utils.bytes_to_str(encpwd)
                    
                    self._prop.set_property("request_data",json.dumps(prms))
                    self._prop.set_property("response_data","")
                    break
                time.sleep(0.1)
                testcnt+=1
                if testcnt==20:
                    testcnt=0
                    appcnt=self._prop.get_property("counter")
                    if cnt==appcnt:
                        break
            if bok:
                #Attende 40 secondi
                cnt=self._prop.get_property("counter")
                testcnt=0
                for i in range(400):
                    sret=self._prop.get_property("response_data")
                    #Gestione concorrenza
                    if self._prop.get_property("request_pid")!=spid:
                        sret=""
                        break
                    if sret!="":
                        break
                    time.sleep(0.1)
                    testcnt+=1
                    if testcnt==20:
                        testcnt=0
                        appcnt=self._prop.get_property("counter")
                        if cnt==appcnt:
                            break
                if self._prop.get_property("request_pid")==spid:
                    self._prop.set_property("response_data","")
                    self._prop.set_property("request_data","")
                if sret=="":
                    sret = 'ERROR:REQUEST_TIMEOUT'
            else:
                sret = 'ERROR:REQUEST_TIMEOUT'
        except: 
            sret = 'ERROR:REQUEST_TIMEOUT'
        return sret



###############################
######### HTTPSERVER ##########
###############################
#CREATO PER USI FUTURI
class HttpServer(threading.Thread):
    
    def __init__(self, port,  agent):
        threading.Thread.__init__(self, name="HttpServer")
        self.daemon=True
        self._agent = agent
        self._port = port
        self._close=False
        self._httpd = None
    
    def run(self):        
        self._httpd = HttpConfigServer(self._port,  self._agent)
        self._close=False
        while not self._close:
            self._httpd.handle_request()

    def close(self):
        if  not self._close:
            self._close=True
            try:
                self._httpd.server_close()
            except:
                None
            self._httpd = None

'''
La versione attiva lascia la porta aperta in linux e mac
quella commentata da testare non vorrei che self._httpd.shutdown() blocca il thread principale
class HttpServer(threading.Thread):
    
    def __init__(self, port,  agent):
        threading.Thread.__init__(self, name="AgentListener")
        self.daemon=True
        self._agent = agent
        self._port = port
        self._close=False
        self._httpd = None
    
    def run(self):        
        self._httpd = HttpConfigServer(self._port,  self._agent)
        self._close=False
        self._httpd.serve_forever()
        self._httpd = None

    def close(self):
        if  not self._close:
            self._close=True
            self._httpd.shutdown() 
'''
class HttpConfigServer(utils.HTTPServer):
    
    def __init__(self, port, agent):
        server_address = ('127.0.0.1', port)
        utils.HTTPServer.__init__(self, server_address, HttpConfigHandler)
        self._agent = agent
    
    def get_agent(self):
        return self._agent


class HttpConfigHandler(utils.BaseHTTPRequestHandler):

    def do_GET(self):
        #Legge richiesta
        o = utils.url_parse(self.path)
        nm = o.path
        qs = utils.url_parse_qs(o.query)
        #Invia risposta
        resp={}
        resp['code']=404
        if 'code' in resp:
            self.send_response(resp['code'])
        else:
            self.send_response(200)
        if 'headers' in resp:
            hds = resp['headers']
            for k in hds.keys():
                self.send_header(k, hds[k])
            self.end_headers()
        if 'data' in resp:
            self.wfile.write(resp['data'])
        
    def do_HEAD(self):
        self.send_response(404)

    def do_POST(self):
        self.send_response(404)
    
    def log_message(self, format, *args):
        return



if __name__ == "__main__":
    ac = HttpServer(9000, None)
    ac.start()
    ac.join()
    
    
    
    
  native/                                                                                             0000755 0001750 0001750 00000000000 15064774431 011645  5                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 native/dwagent.openrc                                                                               0000644 0001750 0001750 00000000362 14340126151 014471  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/sbin/openrc-run

name="@NAME@"

depend() {
        use net
        use dns
}

start(){
        "@PATH_DWA@/native/dwagsvc" start
}

stop(){
        "@PATH_DWA@/native/dwagsvc" stop
}

status(){
        "@PATH_DWA@/native/dwagsvc" status
}
                                                                                                                                                                                                                                                                              native/dwagent.service                                                                              0000644 0001750 0001750 00000000402 13777623120 014651  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 [Unit]
Description=@NAME@
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/bin/sh -c '"@PATH_DWA@/native/dwagsvc" start_internal'
ExecStop=/bin/sh -c '"@PATH_DWA@/native/dwagsvc" stop_internal'

[Install]
WantedBy=multi-user.target





                                                                                                                                                                                                                                                              native/systray.desktop                                                                              0000644 0001750 0001750 00000000211 14000355257 014736  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 [Desktop Entry]
Encoding=UTF-8
Type=Application
Terminal=false
Icon=@PATH_LOGOOS@
Exec="@PATH_DWA@/native/systray"
Name=@NAME@ - Systray
                                                                                                                                                                                                                                                                                                                                                                                       native/dwagent.desktop                                                                              0000644 0001750 0001750 00000000300 14000354570 014645  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 [Desktop Entry]
Encoding=UTF-8
Version=1.0
Terminal=false
Icon=@PATH_LOGOOS@
Exec="@PATH_DWA@/native/@EXE_NAME@"
Categories=System;Application;
Type=Application
Name=@NAME@
GenericName=@NAME@
                                                                                                                                                                                                                                                                                                                                native/dwagsvc                                                                                      0000644 0001750 0001750 00000034705 15005167317 013231  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/bin/sh
#
# chkconfig: 2345 80 30
# description: @NAME@ Service
#
### BEGIN INIT INFO
# Provides: @NAME@
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and Stop @NAME@ Service
# Description: @NAME@ Service
### END INIT INFO
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

RETVAL=0
PATH_DWA="@PATH_DWA@"
PATH_DWA_NATIVE="$PATH_DWA/native"
PATH_DWA_RUNTIME="$PATH_DWA/runtime/bin"
PATH_DWA_RUNTIME_LIBRARY="$PATH_DWA/runtime/lib"
TIMEOUT_START_STOP=30
INST_VER=0
if [ -f "${PATH_DWA_NATIVE}/installer.ver" ]; then
	INST_VER=$(cat "${PATH_DWA_NATIVE}/installer.ver")
fi

install_systemctl(){
	if [ ! -f /etc/systemd/system/@EXE_NAME@.service ]; then
		cp "${PATH_DWA_NATIVE}/@EXE_NAME@.service" /etc/systemd/system/@EXE_NAME@.service
		if [ $? -eq 0 ]; then
			systemctl --system daemon-reload
			systemctl enable @EXE_NAME@.service
			if [ $? -eq 0 ]; then
				echo "systemctl" > "${PATH_DWA_NATIVE}/service.mng"
				echo "Installed"
			else
				echo "Error: Enable systemctl."
				RETVAL=11
			fi
		else
			echo "Error: Copy file service in systemd."
			RETVAL=12
		fi
	else
		echo "Error: Service already installed."
		RETVAL=1
	fi
}

install_chkconfig(){
	if [ ! -f /etc/init.d/@EXE_NAME@ ]; then
		ln -s "${PATH_DWA_NATIVE}/dwagsvc" /etc/init.d/@EXE_NAME@
		if [ $? -eq 0 ]; then
			chkconfig --add @EXE_NAME@
			if [ $? -eq 0 ]; then
				echo "chkconfig" > "${PATH_DWA_NATIVE}/service.mng"
				echo "Installed"
			else
				echo "Error: Add chkconfig."
				RETVAL=11
			fi
		else
			echo "Error: Create symbolic link."
			RETVAL=12
		fi
	else
		echo "Error: Service already installed."
		RETVAL=1
	fi
}

install_updatercd(){
	if [ ! -f /etc/init.d/@EXE_NAME@ ]; then
		ln -s "${PATH_DWA_NATIVE}/dwagsvc" /etc/init.d/@EXE_NAME@
		if [ $? -eq 0 ]; then
			#update-rc.d -f @EXE_NAME@ start 80 2 3 4 5 . stop 30 0 1 6 .
			update-rc.d -f @EXE_NAME@ defaults
			if [ $? -eq 0 ]; then
				echo "updatercd" > "${PATH_DWA_NATIVE}/service.mng"
				echo "Installed"
			else
				echo "Error: Add update-rc.d."
				RETVAL=11
			fi
		else
			echo "Error: Create symbolic link."
			RETVAL=12
		fi
	else
		echo "Error: Service already installed."
		RETVAL=1
	fi
}

install_openrc(){
	if [ ! -f /etc/init.d/@EXE_NAME@ ]; then
		cp "${PATH_DWA_NATIVE}/dwagent.openrc" /etc/init.d/@EXE_NAME@
		if [ $? -eq 0 ]; then
			rc-update add @EXE_NAME@
			if [ $? -eq 0 ]; then
				echo "openrc" > "${PATH_DWA_NATIVE}/service.mng"
				echo "Installed"
			else
				echo "Error: Add rc-update."
				RETVAL=11
			fi
		else
			echo "Error: Create symbolic link."
			RETVAL=12
		fi
	else
		echo "Error: Service already installed."
		RETVAL=1
	fi
}

install_rclocal(){
	if [ ! -f /etc/rc.d/rc.@EXE_NAME@ ]; then
		ln -s "${PATH_DWA_NATIVE}/dwagsvc" /etc/rc.d/rc.@EXE_NAME@
        if [ -f /etc/rc.d/rc.local ]; then
			sed -i '/\/etc\/rc.d\/rc.@EXE_NAME@ start/d' /etc/rc.d/rc.local
        fi
        echo "/etc/rc.d/rc.@EXE_NAME@ start" >> /etc/rc.d/rc.local
        if [ -f /etc/rc.d/rc.local_shutdown ]; then
        	sed -i '/\/etc\/rc.d\/rc.@EXE_NAME@ stop/d' /etc/rc.d/rc.local_shutdown
        fi
        echo "/etc/rc.d/rc.@EXE_NAME@ stop" >> /etc/rc.d/rc.local_shutdown
        chmod +x /etc/rc.d/rc.local_shutdown
        echo "rclocal" > "${PATH_DWA_NATIVE}/service.mng"
        echo "Installed"
	else
		echo "Error: Service already installed."
		RETVAL=1
	fi   
}

install(){
	if [ "$(which "systemctl" 2>/dev/null)" ] && [ "$(systemctl list-units -t service 2>/dev/null)" ]; then
    	install_systemctl
    elif [ "$(which "chkconfig" 2>/dev/null)" ]; then
    	install_chkconfig
	elif [ "$(which "update-rc.d" 2>/dev/null)" ]; then
        install_updatercd
	elif [ "$(which "rc-update" 2>/dev/null)" ]; then
        install_openrc
    elif [ -f /etc/rc.d/rc.local ]; then
    	install_rclocal
	else
		echo "Error: Missing systemctl or chkconfig or update-rc.d command."
		RETVAL=2
	fi
}

delete_systemctl(){
	if [ -f /etc/systemd/system/@EXE_NAME@.service ]; then
		systemctl disable @EXE_NAME@.service
		if [ $? -eq 0 ]; then
			rm /etc/systemd/system/@EXE_NAME@.service
			if [ $? -eq 0 ]; then
				systemctl --system daemon-reload
				if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
					rm "${PATH_DWA_NATIVE}/service.mng"
				fi
				echo "Deleted"
			else
				echo "Error: Remove service file."
				RETVAL=11
			fi
		else
			echo "Error: Disable service in systemd."
			RETVAL=12
		fi
	else
		echo "Error: Service not installed."
		RETVAL=1
	fi
}

delete_chkconfig(){
	if [ -f /etc/init.d/@EXE_NAME@ ]; then
		chkconfig --del @EXE_NAME@
		if [ $? -eq 0 ]; then
			rm /etc/init.d/@EXE_NAME@
			if [ $? -eq 0 ]; then
				if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
					rm "${PATH_DWA_NATIVE}/service.mng"
				fi
				echo "Deleted"
			else
				echo "Error: Remove symbolic link."
				RETVAL=12
			fi
		else
			echo "Error: Del chkconfig."
			RETVAL=11
		fi
	else
		chkconfig --del @EXE_NAME@ &>/dev/null
		echo "Error: Service not installed."
		RETVAL=1
	fi
}

delete_updatercd(){
	if [ -f /etc/init.d/@EXE_NAME@ ]; then
		update-rc.d -f @EXE_NAME@ remove
		if [ $? -eq 0 ]; then
			rm /etc/init.d/@EXE_NAME@
			if [ $? -eq 0 ]; then
				if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
					rm "${PATH_DWA_NATIVE}/service.mng"
				fi
				echo "Deleted"
			else
				echo "Error: Remove symbolic link."
				RETVAL=12
			fi
		else
			echo "Error: Del update-rc.d."
			RETVAL=11
		fi
	else
		update-rc.d -f @EXE_NAME@ remove > /dev/null 2>&1
		echo "Error: Service not installed."
		RETVAL=1
	fi
}

delete_openrc(){
	if [ -f /etc/init.d/@EXE_NAME@ ]; then
		rc-update del @EXE_NAME@
		if [ $? -eq 0 ]; then
			rm /etc/init.d/@EXE_NAME@
			if [ $? -eq 0 ]; then
				if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
					rm "${PATH_DWA_NATIVE}/service.mng"
				fi
				echo "Deleted"
			else
				echo "Error: Remove symbolic link."
				RETVAL=12
			fi
		else
			echo "Error: Del rc-update."
			RETVAL=11
		fi
	else
		rc-update del @EXE_NAME@ > /dev/null 2>&1
		echo "Error: Service not installed."
		RETVAL=1
	fi
}

delete_rclocal(){
	if [ -f /etc/rc.d/rc.@EXE_NAME@ ]; then
    	if [ -f /etc/rc.d/rc.local ]; then
			sed -i '/\/etc\/rc.d\/rc.@EXE_NAME@ start/d' /etc/rc.d/rc.local
        fi
        if [ -f /etc/rc.d/rc.local_shutdown ]; then
        	sed -i '/\/etc\/rc.d\/rc.@EXE_NAME@ stop/d' /etc/rc.d/rc.local_shutdown
        fi
        rm /etc/rc.d/rc.@EXE_NAME@
        if [ $? -eq 0 ]; then
			if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
				rm "${PATH_DWA_NATIVE}/service.mng"
            fi
        	echo "Deleted"
        else
        	echo "Error: Remove symbolic link."
        	RETVAL=12
        fi
    else			
		echo "Error: Service not installed."
		RETVAL=1
	fi
}

delete(){
	if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
		if [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "systemctl" ]; then
			delete_systemctl
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "chkconfig" ]; then
			delete_chkconfig
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "updatercd" ]; then
			delete_updatercd
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "openrc" ]; then
			delete_openrc
        elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "rclocal" ]; then
			delete_rclocal
		fi				
	else
		if [ "$(which "systemctl" 2>/dev/null)" ] && [ "$(systemctl list-units -t service 2>/dev/null)" ]; then
			delete_systemctl
		elif [ "$(which "chkconfig" 2>/dev/null)" ]; then
			delete_chkconfig
		elif [ "$(which "update-rc.d" 2>/dev/null)" ]; then
			delete_updatercd
		elif [ "$(which "rc-update" 2>/dev/null)" ]; then
			delete_openrc
        elif [ -f /etc/rc.d/rc.local ]; then
        	delete_rclocal
		else
			echo "Error: Missing chkconfig or update-rc.d command."
			RETVAL=2
		fi
	fi
}

rem_file() {
	if [ -f $1 ]; then
		rm -f $1
	fi
}

test_pid() {
	if [ -f dwagent.pid ]; then
		PIDDW=`cat dwagent.pid`
		kill -0 $PIDDW > /dev/null 2>&1
		if test $? -eq 0; then
			cmdtest=$(cat "/proc/$PIDDW/comm")
			cmdexpected=$(cat "/proc/$$/comm")
        	if [ "$cmdtest" = "$cmdexpected" ]; then
        		return 1
        	else
        		echo "Warning: @NAME@ is not running, but pid file exists "
				rem_file dwagent.pid
        	fi			
		else
			echo "Warning: @NAME@ is not running, but pid file exists "
			rem_file dwagent.pid
		fi
	fi
	return 0
}

run() {
	cd "${PATH_DWA}"
	test_pid
	if [ $? -eq 0 ]; then
		echo $$ > dwagent.pid
		while [ ! -f dwagent.stop ]
		do
			. "${PATH_DWA_NATIVE}/dwagupd"
			if check_update "${PATH_DWA}" "@EXE_NAME@"; then
				cd "${PATH_DWA}"
				export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
				export PYTHONIOENCODING=utf-8
				"${PATH_DWA_RUNTIME}/@EXE_NAME@" agent.py -filelog
			fi
			for X in $(seq 5)
			do
				if [ ! -f dwagent.stop ]; then
					sleep 1
				fi
			done
		done
		rem_file dwagent.stop
		rem_file dwagent.pid
	else
		echo "Error: @NAME@ already run."
	fi
}

start_internal() {
	cd "${PATH_DWA}"
	test_pid
	if [ $? -eq 0 ]; then
		echo "Starting @NAME@ daemon"
		rem_file dwagent.stop
		rem_file dwagent.start
		export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
		export PYTHONIOENCODING=utf-8
		"${PATH_DWA_RUNTIME}/@EXE_NAME@" "${PATH_DWA}/daemon.py" "${PATH_DWA_NATIVE}/dwagsvc" run  > "${PATH_DWA_NATIVE}/service.log" 2>&1
		c=0
		while [ ! -f dwagent.start ]
		do
			sleep 1
			c=`expr $c + 1`
			if [ $c -ge $TIMEOUT_START_STOP ]; then
				echo "Warning: Starting timeout."
				RETVAL=11
				break
			fi
		done
		rem_file dwagent.start
	else
		echo "@NAME@ already stared."
		RETVAL=1
	fi
}

start() {
	if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
		if [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "systemctl" ]; then
			if ! systemctl start @EXE_NAME@.service; then
				RETVAL=1
			fi
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "chkconfig" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "updatercd" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "openrc" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		else
			start_internal
		fi				
	else
		if [ "$(which "systemctl" 2>/dev/null)" ] && [ "$(systemctl list-units -t service 2>/dev/null)" ]; then
			if ! systemctl start @EXE_NAME@.service; then
				RETVAL=1
			fi
		elif [ "$(which "chkconfig" 2>/dev/null)" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		elif [ "$(which "update-rc.d" 2>/dev/null)" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		elif [ "$(which "rc-update" 2>/dev/null)" ]; then
			if [ "$(which "start-stop-daemon" 2>/dev/null)" ]; then
				if ! start-stop-daemon --start --quiet --oknodo --exec "${PATH_DWA_NATIVE}/dwagsvc" -- start_internal; then
					RETVAL=1
				fi
			else
				start_internal
			fi
		else
			start_internal
		fi
	fi
}

stop_internal() {
	cd "${PATH_DWA}"
	test_pid
	if [ $? -eq 1 ]; then
		echo "Stopping @NAME@ daemon"
		echo "" > dwagent.stop
		c=0
		while [ -f dwagent.stop ]
		do
			sleep 1
			c=`expr $c + 1`
			if [ $c -ge $TIMEOUT_START_STOP ]; then
				echo "Warning: Stopping timeout."
				PIDDW=`cat dwagent.pid`
				echo "Warning: Kill process $PIDDW."
				kill -9 $PIDDW
				break
			fi
		done
	else
		echo "@NAME@ already stopped."
		RETVAL=1
	fi
}

stop() {
	if [ -f "${PATH_DWA_NATIVE}/service.mng" ]; then
		if [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "systemctl" ]; then
			if ! systemctl stop @EXE_NAME@.service; then
				RETVAL=1
			fi
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "chkconfig" ]; then
			stop_internal
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "updatercd" ]; then
			stop_internal
		elif [ "$(cat "${PATH_DWA_NATIVE}/service.mng")" = "openrc" ]; then
			stop_internal
		else
			stop_internal
		fi				
	else
		if [ "$(which "systemctl" 2>/dev/null)" ] && [ "$(systemctl list-units -t service 2>/dev/null)" ]; then
			if ! systemctl stop @EXE_NAME@.service; then
				RETVAL=1
			fi
		elif [ "$(which "chkconfig" 2>/dev/null)" ]; then
			stop_internal
		elif [ "$(which "update-rc.d" 2>/dev/null)" ]; then
			stop_internal
		elif [ "$(which "rc-update" 2>/dev/null)" ]; then
			stop_internal
		else
			stop_internal
		fi
	fi
}

restart() {
	stop
	start
}

status() {
	cd "${PATH_DWA}"
	test_pid
	if [ ! $? -eq 1 ]; then
		echo "Not running."
		RETVAL=3
	else
		echo "Running."
	fi
}

install_bin(){
	ln -s '@PATH_DWA@/native/@EXE_NAME@' $1/@EXE_NAME@_monitor
	ln -s '@PATH_DWA@/native/configure' $1/@EXE_NAME@_configure
	ln -s '@PATH_DWA@/native/uninstall' $1/@EXE_NAME@_uninstall
}

uninstall_bin(){
	if [ -f $1/@EXE_NAME@_monitor ]; then
		rm $1/@EXE_NAME@_monitor
	fi
	if [ -f $1/@EXE_NAME@_configure ]; then
		rm $1/@EXE_NAME@_configure
	fi
	if [ -f $1/@EXE_NAME@_uninstall ]; then
		rm $1/@EXE_NAME@_uninstall
	fi
}

install_shortcuts(){
	if [ -d /usr/bin ]; then
		install_bin /usr/bin
	elif [ -d /bin ]; then
		install_bin /bin
	fi
	if [ "$(which "xdg-desktop-menu")" ]; then
		cd "${PATH_DWA_NATIVE}"
		xdg-desktop-menu install --noupdate --mode system --novendor @EXE_NAME@.desktop
		xdg-desktop-menu forceupdate
	else
		RETVAL=1
	fi
}

uninstall_shortcuts(){
	uninstall_bin /usr/bin
	uninstall_bin /bin
	if [ "$(which "xdg-desktop-menu")" ]; then
		cd "${PATH_DWA_NATIVE}"
		xdg-desktop-menu uninstall --mode system --novendor @EXE_NAME@.desktop
	else
		RETVAL=1
	fi
}

case "$1" in
start)
  start
;;
start_internal)
  start_internal
;;
stop_internal)
  stop_internal
;;
stop)
  stop
;;
restart)
  restart
;;
status)
  status
;;
run)
  run
;;
install)
  install
;;
delete)
  delete
;;
install_shortcuts)
  install_shortcuts
;;
uninstall_shortcuts)
  uninstall_shortcuts
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac

exit $RETVAL
                                                           native/uninstall                                                                                    0000644 0001750 0001750 00000002116 14145713554 013577  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/bin/sh
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

PATH_DWA="@PATH_DWA@"
PATH_DWA_RUNTIME="$PATH_DWA/runtime/bin"
PATH_DWA_RUNTIME_LIBRARY="$PATH_DWA/runtime/lib"
PATH_DWA_NATIVE="$PATH_DWA/native"

if [ "$(id -u)" != "0" ]; then
	echo "You must have root privileges to run this installer. Please try again, this time running the script using the root user." 
	exit 1
else
	cd "${PATH_DWA}"
	export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
	export PYTHONIOENCODING=utf-8
	"${PATH_DWA_RUNTIME}/@EXE_NAME@" installer.py uninstall $@
	if [ ! $? -eq 0 ]; then
		echo "Error starting gui, attempt to start console mode..."
		"${PATH_DWA_RUNTIME}/@EXE_NAME@" installer.py uninstall -console
	fi
	if [ -f "${PATH_DWA}/agent.uninstall" ]; then
		cd /tmp
		echo '#!/bin/sh' > @EXE_NAME@_remove
		echo 'sleep 2' >> @EXE_NAME@_remove
		echo 'rm -r -f "@PATH_DWA@"' >> @EXE_NAME@_remove
		chmod u+x @EXE_NAME@_remove
		./@EXE_NAME@_remove &
	fi
fi
exit 0
                                                                                                                                                                                                                                                                                                                                                                                                                                                  native/configure                                                                                    0000644 0001750 0001750 00000001215 14145713554 013546  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/bin/sh
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

PATH_DWA="@PATH_DWA@"
PATH_DWA_RUNTIME="$PATH_DWA/runtime/bin"
PATH_DWA_RUNTIME_LIBRARY="$PATH_DWA/runtime/lib"
PATH_DWA_NATIVE="$PATH_DWA/native"

cd "${PATH_DWA}"
export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
export PYTHONIOENCODING=utf-8
"${PATH_DWA_RUNTIME}/@EXE_NAME@" configure.py $@
if [ ! $? -eq 0 ]; then
	echo "Error starting gui, attempt to start console mode..."
	"${PATH_DWA_RUNTIME}/@EXE_NAME@" configure.py -console
fi
exit 0
                                                                                                                                                                                                                                                                                                                                                                                   native/systray                                                                                      0000644 0001750 0001750 00000001002 14137773703 013300  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/bin/sh
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

PATH_DWA="@PATH_DWA@"
PATH_DWA_RUNTIME="$PATH_DWA/runtime/bin"
PATH_DWA_RUNTIME_LIBRARY="$PATH_DWA/runtime/lib"
PATH_DWA_NATIVE="$PATH_DWA/native"

cd "${PATH_DWA}"
export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
export PYTHONIOENCODING=utf-8
"${PATH_DWA_RUNTIME}/@EXE_NAME@" monitor.py systray &
exit 0
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              native/dwagent                                                                                      0000644 0001750 0001750 00000001205 14145713554 013215  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 #!/bin/sh
#This Source Code Form is subject to the terms of the Mozilla
#Public License, v. 2.0. If a copy of the MPL was not distributed
#with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

PATH_DWA="@PATH_DWA@"
PATH_DWA_RUNTIME="$PATH_DWA/runtime/bin"
PATH_DWA_RUNTIME_LIBRARY="$PATH_DWA/runtime/lib"
PATH_DWA_NATIVE="$PATH_DWA/native"

cd "${PATH_DWA}"
export LD_LIBRARY_PATH=${PATH_DWA_RUNTIME_LIBRARY}
export PYTHONIOENCODING=utf-8
"${PATH_DWA_RUNTIME}/@EXE_NAME@" monitor.py $@
if [ ! $? -eq 0 ]; then
	echo "Error starting gui, attempt to start console mode..."
	"${PATH_DWA_RUNTIME}/@EXE_NAME@" monitor.py info
fi
exit 0
                                                                                                                                                                                                                                                                                                                                                                                           native.py                                                                                           0000755 0001750 0001750 00000063655 14446565117 012243  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

import ctypes
import utils
import os
import stat
import subprocess
import sys
import time
import ipc
import threading
import signal
import json

GUILNC_ARG_MAX=10 #COMPATIBILITA VERSIONI PRECEDENTI
GUILNC_ARG_SIZE=1024 #COMPATIBILITA VERSIONI PRECEDENTI

_nativemap={}
_nativemap["semaphore"] = threading.Condition()

def get_instance():
    oret=None
    _nativemap["semaphore"].acquire()
    try:
        if "instance" in _nativemap:
            oret=_nativemap["instance"]
        else:
            if utils.is_windows():
                oret = Windows()
            elif utils.is_linux():
                oret = Linux()
            elif utils.is_mac():
                oret = Mac()
            oret.load_library();
            _nativemap["instance"]=oret
    finally:
        _nativemap["semaphore"].release()
    return oret

def fmain(args):
    if utils.is_mac():
        if len(args)>1:
            a1=args[1]            
            if a1 is not None and a1.lower()=="guilnc": #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE) (DO NOT REMOVE)
                main = Mac()
                main.start_guilnc()
                sys.exit(0)

def get_suffix():
    if utils.is_windows():
        return "win"
    elif utils.is_linux():
        return "linux"
    elif utils.is_mac():
        return "mac"
    return None

def get_library_config(name):
    fn=None
    if utils.path_exists(".srcmode"):
        fn=".." + utils.path_sep + "lib_" + name + utils.path_sep + "config.json"        
    else:
        fn="native" + utils.path_sep + "lib_" + name + ".json"
    if utils.path_exists(fn):
        f = utils.file_open(fn)
        jsapp = json.loads(f.read())
        f.close()
        return jsapp
    else:
        return None

def _load_libraries_with_deps_list(ar,name):
    cnflib=get_library_config(name)
    if cnflib is not None:
        if "lib_dependencies" in cnflib:
            for ln in cnflib["lib_dependencies"]:
                _load_libraries_with_deps_list(ar,ln)
        if "filename_" + get_suffix() in cnflib:
            fn = cnflib["filename_" + get_suffix()]
            ar.insert(0,_load_lib_obj(fn))

def load_libraries_with_deps(name):
    lstlibs=[]
    _load_libraries_with_deps_list(lstlibs,name)
    return lstlibs

def unload_libraries(lstlibs):
    for i in range(len(lstlibs)):
        _unload_lib_obj(lstlibs[i])

def _load_lib_obj(name):
    retlib = None
    if utils.is_windows():
        if not utils.path_exists(".srcmode"):
            retlib = ctypes.CDLL("native\\" + name)
        else:
            retlib = ctypes.CDLL("..\\make\\native\\" + name)
        if retlib is None:
            raise Exception("Missing library " + name + ".")
    elif utils.is_linux():
        if not utils.path_exists(".srcmode"):
            retlib  = ctypes.CDLL("native/" + name, ctypes.RTLD_GLOBAL)
        else: 
            retlib = ctypes.CDLL("../make/native/" + name, ctypes.RTLD_GLOBAL)
        if retlib is None:
            raise Exception("Missing library " + name + ".")
    elif utils.is_mac():
        if not utils.path_exists(".srcmode"):
            retlib  = ctypes.CDLL("native/" + name, ctypes.RTLD_GLOBAL)
        else: 
            retlib = ctypes.CDLL("../make/native/" + name, ctypes.RTLD_GLOBAL)
        if retlib is None:
            raise Exception("Missing library " + name + ".")
    return retlib;
    

def _unload_lib_obj(olib):
    if olib is not None:
        try:
            if utils.is_windows():
                import _ctypes
                _ctypes.FreeLibrary(olib._handle)
                del olib
            elif utils.is_linux():
                import _ctypes
                _ctypes.dlclose(olib._handle)
                del olib
            elif utils.is_mac():
                import _ctypes
                _ctypes.dlclose(olib._handle)
                del olib
        except:
            None
'''
del olib
    olib.dlclose(olib._handle)
while isLoaded('./mylib.so'):
    dlclose(handle)

It's so unclean that I only checked it works using:

def isLoaded(lib):
   libp = utils.path_absname(lib)
   ret = os.system("lsof -p %d | grep %s > /dev/null" % (os.getpid(), libp))
   return (ret == 0)

def dlclose(handle)
   libdl = ctypes.CDLL("libdl.so")
   libdl.dlclose(handle)
'''

class Windows():
        
    def __init__(self):
        self._dwaglib=None

    def load_library(self):
        if self._dwaglib is None:
            self._dwaglib = _load_lib_obj("dwaglib.dll");
    
    def unload_library(self):
        _unload_lib_obj(self._dwaglib)
        self._dwaglib=None
    
    def get_library(self):
        return self._dwaglib

    def task_kill(self, pid) :
        bret = self._dwaglib.taskKill(pid)
        return bret==1
    
    def is_task_running(self, pid):
        bret=self._dwaglib.isTaskRunning(pid);
        return bret==1
    
    def set_file_permission_everyone(self,fl):
        if utils.is_py2():
            self._dwaglib.setFilePermissionEveryone(fl)
        else:
            self._dwaglib.setFilePermissionEveryone(fl.encode('utf-8'))
    
    def fix_file_permissions(self,operation,path,path_src=None):
        None
        
    def is_win_xp(self):
        return self._dwaglib.isWinXP()
        
    def is_win_2003_server(self):
        return self._dwaglib.isWin2003Server()
    
    def is_user_in_admin_group(self):
        return self._dwaglib.isUserInAdminGroup()
    
    def is_run_as_admin(self):
        return self._dwaglib.isRunAsAdmin()
        
    def is_process_elevated(self):
        return self._dwaglib.isProcessElevated()
    
    def get_active_console_id(self):
        return self._dwaglib.getActiveConsoleId();
    
    def start_process(self, scmd, spythonHome):
        return self._dwaglib.startProcess(scmd, spythonHome);
    
    def start_process_in_active_console(self, scmd, spythonHome):
        return self._dwaglib.startProcessInActiveConsole(scmd, spythonHome);
    
    def win_station_connect(self):
        self._dwaglib.winStationConnect()
    
    def is_gui(self):
        return True 
    
    def reboot(self):
        os.system("shutdown -r -f -t 0")

class Linux():
    
    def __init__(self):
        self._dwaglib=None
    
    def load_library(self):
        try:
            if self._dwaglib is None:
                self._dwaglib = _load_lib_obj("dwaglib.so")
        except:
            None
    
    def unload_library(self):
        _unload_lib_obj(self._dwaglib)
        self._dwaglib=None
    
    def get_library(self):
        return self._dwaglib 
    
    def task_kill(self, pid) :
        try:
            os.kill(pid, -9)
        except OSError:
            return False
        return True
    
    def is_task_running(self, pid):
        try:
            os.kill(pid, 0)
        except OSError:
            return False
        return True
    
    def set_file_permission_everyone(self,f):
        utils.path_change_permissions(f, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
    
        
    def fix_file_permissions(self,operation,path,path_template=None):
        apppath=path
        if apppath.endswith(utils.path_sep):
            apppath=apppath[0:len(apppath)-1]
        apppath_template=path_template
        if apppath_template is not None:
            if apppath_template.endswith(utils.path_sep):
                apppath_template=apppath_template[0:len(apppath_template)-1]
        
        if operation=="CREATE_DIRECTORY":
            apppath_template=utils.path_dirname(path)    
            stat_info = utils.path_stat(apppath_template)
            mode = stat.S_IMODE(stat_info.st_mode)
            utils.path_change_permissions(path,mode)
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="CREATE_FILE":
            apppath_template=utils.path_dirname(path)    
            stat_info = utils.path_stat(apppath_template)
            mode = stat.S_IMODE(stat_info.st_mode)
            utils.path_change_permissions(path, ((mode & ~stat.S_IXUSR) & ~stat.S_IXGRP) & ~stat.S_IXOTH)
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="COPY_DIRECTORY" or operation=="COPY_FILE":
            if apppath_template is not None:
                stat_info = utils.path_stat(apppath_template)
                mode = stat.S_IMODE(stat_info.st_mode)
                utils.path_change_permissions(path,mode)
                stat_info = utils.path_stat(utils.path_dirname(path)) #PRENDE IL GRUPPO E L'UTENTE DELLA CARTELLA PADRE 
                utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="MOVE_DIRECTORY" or operation=="MOVE_FILE":
            if apppath_template is not None:
                stat_info = utils.path_stat(apppath_template)
                mode = stat.S_IMODE(stat_info.st_mode)
                utils.path_change_permissions(path,mode)
                utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        
    def is_gui(self):
        try:
            import detectinfo
            appnsfx = detectinfo.get_native_suffix()
            if not appnsfx=="linux_generic":
                appout = subprocess.Popen("ps ax -ww | grep 'X.*-auth .*'", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() 
                lines = appout[0].splitlines()
                for l in lines:
                    if 'X.*-auth .*' not in l:
                        return True
        except:
            None
        return False
    
    def reboot(self):
        os.system("reboot")
        
    def get_tty_active(self):
        scons=None
        try:
            sactive=None
            fn = "/sys/class/tty/console/active"
            if os.path.exists(fn):
                f = open(fn, "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")    
                    if s is not None and len(s)>0:
                        s=s.strip("\n").strip("\r")
                        appar = s.split(" ")
                        for apps in appar:
                            if apps[3:].isdigit():
                                sactive = apps
                                break
                        
                finally:
                    f.close()
            if sactive is not None:
                fn = "/sys/class/tty/" + sactive+ "/active"
                if os.path.exists(fn):
                    f = open(fn , "rb")
                    try:
                        s = utils.bytes_to_str(f.read(),"utf8")
                        if s is not None and len(s)>0:
                            s=s.strip("\n").strip("\r")
                            scons = s.split(" ")[0]                        
                    finally:
                        f.close()
                else:
                    scons = None
            if scons is None:
                #Try fgconsole
                data = subprocess.Popen(["fgconsole"], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
                so, se = data.communicate()
                if so is not None and len(so)>0:
                    so=utils.bytes_to_str(so, "utf8")
                    scons="tty"+so.replace("\n","").replace("\r","")
                    if not os.path.exists("/sys/class/tty/" + scons):
                        scons=None                    
            if scons is None:
                scons = sactive
        except:
            None
        return scons
    
    def get_process_ids(self):
        lret=[]
        lst = os.listdir("/proc")
        for name in lst:
            if name.isdigit():
                lret.append(int(name))
        return lret
    
    def get_process_environ(self,pid):
        eret = {} 
        try:
            fn = "/proc/" + str(pid) + "/" + "environ"
            if os.path.exists(fn):
                f = open(fn , "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")    
                    if s is not None and len(s)>0:
                        arenv = s.split("\0")
                        for apps in arenv:
                            p = apps.index("=")
                            if p>0:
                                eret[apps[:p]]=apps[p+1:]                            
                finally:
                    f.close()
        except:
            None
        return eret
    
    def get_process_stat(self,pid):
        sret = {} 
        try:
            fn = "/proc/" + str(pid) + "/" + "stat"
            if os.path.exists(fn):
                f = open(fn , "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")
                    if s is not None and len(s)>0:
                        rpar = s.rfind(r')')
                        name = s[s.find(r'(') + 1:rpar]
                        fields = s[rpar + 2:].split()            
                        sret['name'] = name
                        sret['status'] = fields[0]
                        sret['ppid'] = int(fields[1])
                        sret['pgrp'] = int(fields[2])
                        sret['session'] = fields[3]
                        sret['tty'] = int(fields[4])
                        sret['tpgid'] = int(fields[5])             
                finally:
                    f.close()
        except:
            None
        return sret

    def get_process_uid(self,pid):
        sret = -1
        try:
            fn = "/proc/" + str(pid) + "/" + "status"
            if os.path.exists(fn):
                f = open(fn , "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")
                    if s is not None and len(s)>0:
                        import re
                        reuids=re.compile(r'Uid:\t(\d+)\t(\d+)\t(\d+)')
                        ur, ue, us = reuids.findall(s)[0]
                        sret = int(ur)
                finally:
                    f.close()
        except:
            None
        return sret
    
    def get_process_gid(self, pid):
        sret = -1
        try:
            fn = "/proc/" + str(pid) + "/" + "status"
            if os.path.exists(fn):
                f = open(fn , "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")
                    if s is not None and len(s)>0:
                        import re
                        reuids=re.compile(r'Gid:\t(\d+)\t(\d+)\t(\d+)')
                        gr, ge, gs = reuids.findall(s)[0]
                        sret = gr
                finally:
                    f.close()
        except:
            None
        return sret
    
    
    def get_process_cmdline(self, pid):
        lret = [] 
        try:
            fn = "/proc/" + str(pid) + "/" + "cmdline"
            if os.path.exists(fn):
                f = open(fn , "rb")
                try:
                    s = utils.bytes_to_str(f.read(),"utf8")
                    if s is not None and len(s)>0:
                        lret = s.split("\0")             
                finally:
                    f.close()
        except:
            None
        return lret
    
    def get_utf8_lang(self):
        altret=None
        try:
            p = subprocess.Popen("locale | grep LANG=", stdout=subprocess.PIPE, shell=True)
            (po, pe) = p.communicate()
            p.wait()
            if len(po) > 0:                
                po = utils.bytes_to_str(po, "utf8")                
                ar = po.split("\n")[0].split("=")[1].split(".")
                if ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8":
                    if ar[0].upper()=="C":
                        altret = ar[0] + "." + ar[1]
                    else:
                        return ar[0] + "." + ar[1]
        except:
            None        
        try:                
            p = subprocess.Popen("locale -a", stdout=subprocess.PIPE, shell=True)
            (po, pe) = p.communicate()
            p.wait()
            if len(po) > 0:
                po = utils.bytes_to_str(po, "utf8")
                arlines = po.split("\n")
                for r in arlines:
                    ar = r.split(".")
                    if len(ar)>1 and ar[0].upper()=="EN_US" and (ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8"):
                        if ar[0].upper()=="C":
                            altret = ar[0] + "." + ar[1]
                        else:
                            return ar[0] + "." + ar[1]
                #If not found get the first utf8
                for r in arlines:
                    ar = r.split(".")
                    if len(ar)>1 and (ar[1].upper()=="UTF8" or ar[1].upper()=="UTF-8"):
                        if ar[0].upper()=="C":
                            altret = ar[0] + "." + ar[1]
                        else:
                            return ar[0] + "." + ar[1]
        except:
            None
        return altret

class Mac():
        
    def __init__(self):
        self._dwaglib = None
        self._propguilnc = None #COMPATIBILITA VERSIONI PRECEDENTI
        self._propguilnc_semaphore = threading.Condition() #COMPATIBILITA VERSIONI PRECEDENTI
            
    def load_library(self):
        try:
            if self._dwaglib is None:
                lbn="dwaglib.dylib"
                #COMPATIBILITY BEFORE 14/11/2019
                if not utils.path_exists(".srcmode"):
                    if not utils.path_exists("native/"+lbn):
                        lbn="dwaglib.so"
                #COMPATIBILITY BEFORE 14/11/2019
                self._dwaglib = _load_lib_obj(lbn)
        except:
            None
    
    def unload_library(self):
        _unload_lib_obj(self._dwaglib)
        self._dwaglib=None
    
    def get_library(self):        
        return self._dwaglib
    
    def task_kill(self, pid) :
        try:
            os.kill(pid, -9)
        except OSError:
            return False
        return True
    
    def is_task_running(self, pid):
        try:
            os.kill(pid, 0)
        except OSError:
            return False
        return True
    
    def set_file_permission_everyone(self,f):
        utils.path_change_permissions(f, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
    
    def fix_file_permissions(self,operation,path,path_src=None):
        apppath=path
        if apppath.endswith(utils.path_sep):
            apppath=apppath[0:len(apppath)-1]
        apppath_src=path_src
        if apppath_src is not None:
            if apppath_src.endswith(utils.path_sep):
                apppath_src=apppath_src[0:len(apppath_src)-1]
        else:
            apppath_src=utils.path_dirname(path)    
        stat_info = utils.path_stat(apppath_src)
        mode = stat.S_IMODE(stat_info.st_mode)
        if operation=="CREATE_DIRECTORY":
            utils.path_change_permissions(path,mode)
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="CREATE_FILE":
            utils.path_change_permissions(path, ((mode & ~stat.S_IXUSR) & ~stat.S_IXGRP) & ~stat.S_IXOTH)
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="COPY_DIRECTORY" or operation=="COPY_FILE":
            utils.path_change_permissions(path,mode)
            stat_info = utils.path_stat(utils.path_dirname(path)) #PRENDE IL GRUPPO E L'UTENTE DELLA CARTELLA PADRE 
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
        elif operation=="MOVE_DIRECTORY" or operation=="MOVE_FILE":
            utils.path_change_permissions(path,mode)
            utils.path_change_owner(path, stat_info.st_uid, stat_info.st_gid)
    
    def is_gui(self):
        return True
    
    def get_console_user_id(self):
        return self._dwaglib.getConsoleUserId();
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def is_old_guilnc(self):
        #READ installer.ver
        bold=False
        try:
            sver="0"
            ptver="native" + os.sep + "installer.ver"
            if utils.path_exists(ptver):
                fver = utils.file_open(ptver, "rb")
                sver=utils.bytes_to_str(fver.read())
                fver.close()
            bold=(int(sver)==0)
        except:
            None
        return bold
    
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def _signal_handler(self, signal, frame):
        self._propguilnc_stop=True
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def start_guilnc(self):        
        self._propguilnc_stop=False
        signal.signal(signal.SIGTERM, self._signal_handler)
        bload=False
        suid=str(os.getuid())
        spid=str(os.getpid())
        lnc = ipc.Property()
        prcs = []
        try:
            while not self._propguilnc_stop and utils.path_exists("guilnc.run"):
                if not bload:
                    if lnc.exists("gui_launcher_" + suid):
                        try:
                            lnc.open("gui_launcher_" + suid)
                            lnc.set_property("pid", spid)
                            bload=True
                        except:
                            time.sleep(1)
                    else:
                        time.sleep(1)
                if bload:
                    if lnc.get_property("state")=="LNC":
                        popenar=[]
                        popenar.append(sys.executable)
                        popenar.append("agent.py")
                        popenar.append(u"app=" + lnc.get_property("app"))
                        for i in range(GUILNC_ARG_MAX):
                            a = lnc.get_property("arg" + str(i))
                            if a=="":
                                break;
                            popenar.append(a)
                        libenv = os.environ
                        libenv["LD_LIBRARY_PATH"]=utils.path_absname("runtime/lib")
                        #print("Popen: " + " , ".join(popenar))
                        try:
                            p = subprocess.Popen(popenar, env=libenv)
                            prcs.append(p)
                            #print("PID: " + str(p.pid))
                            if p.poll() is None:
                                lnc.set_property("state", str(p.pid))
                            else:
                                lnc.set_property("state", "ERR")
                        except:
                            lnc.set_property("state", "ERR")
                    time.sleep(0.2)
                #Pulisce processi
                prcs = [p for p in prcs if p.poll() is None]
        finally:
            if bload:
                lnc.close()
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def init_guilnc(self,ag):
        if self.is_old_guilnc():
            self._propguilnc_semaphore.acquire()
            try:
                #COMPATIBILITA VERSIONI PRECEDENTI
                if utils.path_exists("native/dwagguilnc"):
                    self._propguilnc = {}
                    if not utils.path_exists("guilnc.run"):
                        f = utils.file_open("guilnc.run","wb")
                        f.close()
            finally:
                self._propguilnc_semaphore.release()                        
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def term_guilnc(self):
        if self.is_old_guilnc():
            self._propguilnc_semaphore.acquire()
            try:
                if utils.path_exists("guilnc.run"):
                    utils.path_remove("guilnc.run")
                if self._propguilnc is not None:
                    for l in self._propguilnc:
                        self._propguilnc[l].close()
                    self._propguilnc=None
            finally:
                self._propguilnc_semaphore.release()            
    
    #GUI LAUNCHER OLD VERSION 03/11/2021 (DO NOT REMOVE)
    def exec_guilnc(self, uid, app, args):
        self._propguilnc_semaphore.acquire()
        try:
            if self._propguilnc is not None:
                suid=str(uid)
                lnc = None
                if suid not in self._propguilnc:
                    lnc = ipc.Property()
                    fieldsdef=[]
                    fieldsdef.append({"name":"pid","size":20})
                    fieldsdef.append({"name":"state","size":20}) # ""=NESSUNA OPERAZIONE; "LNC"="ESEGUI"; "NUM"=PID ESEGUITO 
                    fieldsdef.append({"name":"app","size":100})
                    for i in range(GUILNC_ARG_MAX):
                        fieldsdef.append({"name":"arg" + str(i),"size":GUILNC_ARG_SIZE})
                    def fix_perm(fn):
                        utils.path_change_owner(fn, uid, -1)
                        utils.path_change_permissions(fn, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP)
                    lnc.create("gui_launcher_" + suid, fieldsdef, fix_perm)
                    self._propguilnc[suid]=lnc
                else:
                    lnc=self._propguilnc[suid]
                
                cnt=20.0                
                #PULISCE
                lnc.set_property("state","")
                lnc.set_property("app","")
                for i in range(GUILNC_ARG_MAX):
                    lnc.set_property("arg" + str(i),"")
                #RICHIESTA                        
                lnc.set_property("app", app)
                for i in range(len(args)):
                    lnc.set_property("arg" + str(i), args[i])
                st="LNC" 
                lnc.set_property("state", st)
                while st=="LNC" and cnt>0.0:
                    st = lnc.get_property("state")
                    time.sleep(0.2)
                    cnt-=0.2                        
                if st=="LNC":
                    lnc.set_property("state", "")
                    raise Exception("GUI launcher timeout.")
                if st=="ERR":
                    raise Exception("GUI launcher error.")
                return int(st)          
        finally:
            self._propguilnc_semaphore.release() 
        return None
    
    def reboot(self):
        os.system("shutdown -r now")                                                                                   resources.py                                                                                        0000755 0001750 0001750 00000010204 15013314767 012737  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

import locale
import subprocess
import utils
import threading
import importlib

class ResText:
    
    def __init__(self, pkgnm):
        if utils.path_exists(".srcmode"):
            self._pkgnm = pkgnm.split(".")[1]
        else:
            self._pkgnm=pkgnm
        self._data_default = self._get_data("default")
        self._lang_current = None
        self._data_current = None
        self._semaphore=threading.Condition()

    def _get_data(self,lng):
        try:
            if lng is None or lng=="":
                return None
            arlng = lng.split("_")
            testlng=""
            for i in range(len(arlng)):
                if i==0:
                    arlng[i]=arlng[i].lower()
                    testlng=arlng[i]
                else:
                    arlng[i]=arlng[i].upper()
                    testlng+="_" + arlng[i]            
            objlib = importlib.import_module(self._pkgnm + "." + lng)
            if objlib is None:
                raise Exception("Not found.")
            return getattr(objlib, 'data', None)
        except:
            arlng = lng.split("_")
            if len(arlng)>1:
                testlng=""
                for i in range(len(arlng)-1):
                    if i>0:
                        testlng+="_"
                    testlng+=arlng[i]
                return self._get_data(testlng)
            else:
                return None

    def set_locale(self, lng):
        self._semaphore.acquire()
        try:
            self._set_locale(lng)
        finally:
            self._semaphore.release()
    
    def _set_locale(self, lng):
        appdt = self._get_data(lng)
        if appdt is not None:
            self._lang_current=lng
            self._data_current=appdt
        else:
            self._lang_current="default"
            self._data_current=self._data_default        
        
    def get_locale(self):
        self._semaphore.acquire()
        try:
            if self._lang_current is None:
                applng=None
                try:
                    if utils.is_windows():
                        import ctypes
                        windll = ctypes.windll.kernel32
                        wl = locale.windows_locale[windll.GetUserDefaultUILanguage()]
                        #applng=wl.split("_")[0]
                        applng=wl
                    elif utils.is_mac():
                        p = subprocess.Popen(['defaults', 'read', '-g', 'AppleLocale'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
                        sout, serr = p.communicate()
                        if sout is not None:
                            applng = sout.replace("\n","").replace(" ","_")[:10]
                except:
                    None                    
                try:
                    if applng is None:
                        l = locale.getdefaultlocale()
                        if l is not None:
                            applng=l[0]
                except:
                    None
                
                self._set_locale(applng)
                
        finally:
            self._semaphore.release()
        return self._lang_current;
     
    def get(self, key):
        try:
            
            #LOAD DATA
            self.get_locale()
            
            if key in self._data_current:
                return self._data_current[key]
            elif key in self._data_default:
                return self._data_default[key]
            else:
                return "RES_MISSING#" + key
        except:
            return "RES_ERROR#" + key
    
class ResImage:
    
    def __init__(self, pkgnm):
        if utils.path_exists(".srcmode"):
            self._pkgnm=pkgnm.split(".")[1]
        else:
            self._pkgnm=pkgnm        
        self._basepth=utils.str_new(self._pkgnm.replace(".",utils.path_sep))
        
    def get(self, nm):        
        return self._basepth + utils.path_sep + utils.str_new(nm)
        
                                                                                                                                                                                                                                                                                                                                                                                                    ui/                                                                                                 0000755 0001750 0001750 00000000000 15064774431 010774  5                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ui/images/                                                                                          0000755 0001750 0001750 00000000000 15064774431 012241  5                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ui/images/logo.png                                                                                  0000644 0001750 0001750 00000014304 13422307023 013672  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ‰PNG

   IHDR   @   @   ªiqÞ   bKGD ÿ ÿ ÿ ½§“   	pHYs     šœ   tIMEß
6CC£H   tEXtComment Created with GIMPW  ,IDATxÚí›y|]Õuï¿{Ÿsî¨Ñ’-Y’my`žcƒ3;q	mhÒÒ@ÞËƒ4y¡Ÿ´iÉM(M!¡/É'!a
ÌTÂ`&6xØÆ–%Ù–åI²®†{uuÇ3ìýþ8G²’±MâöóyÝöÖ=çî3ìõ[k¯µöZëÂ·ÿ¿›8Þ/ü×ŸÜSÑÝ×W•J%AkþŠùë×­•Û[[¶Ïù˜Ç€|±ðýÏÏ™sGº4h­ÐJc;†”lom9X}¼æ#ÿ˜ûÉ½?=‚ŠêB¡€Dø (PJ#¥Á´NDyíHóúõý¿ý¯À“Ï<ÀØ±c?÷ð#¦'LœtÅyÎqyY–Õè:.ž§ð<Oy(¥PžG<'ŒÞ÷o‹Çç>õú?¾ë%Óÿ% xê‰Çýõ[ÈO˜¿`ÑŠ¦N{srãäÒ¯}í¯¬YµrüH÷””ÄÇºž‹§”ß½àSyX¦EIiiõH üî±Ç¯3¥ù…±Uã®ÿÁ?N~ýæ[îþO`÷ÞýÆ¢7ßz`ê”öX¦9+›É/˜uá¬ð—nøòÓ#—Œw]Ïç¾§PžÂu=<Waš&c*«Æ ¡ÁëŸq>ùx,‹¿ÔÑÑA6›#ŠrÊ)güð‡wþ8óÍÿuë ÷Ü÷‹ãÀo|øË—\vEÑ2Ì[³Ù,EÛA)R
×ó¸æšk/;ÿ‚Y·ÜtÓ×‡î«¨¨¬Q^ öÊÃS
HƒišÔŽ¯-Üq=ÕåcuH\«”¢P,`š¡x}Cã¾zãßlyöé§k«üîwÿî‹—Ïžý²)M´V(­ÑÚ@kVšîž„wÛ­ßœ¶zÍê1JqM6›»¼³óÀ¥®ëù÷€©àX{ŠB1gÇãñ×ªª*ßt
ù§&Mžvã–¦æGz{{ÑJ×ú–c¸M›6©×_}ñfà)@7?à§÷ýüÀ©§œZ£ÔA‚'©•F£0“P8D>W P(®=§zˆ»>¦eQZ'›ÍÒßŸî9øìÁÏd*Å’Åo|¸uËæ¿–W°wÏž;íb!à| ŸÁwEÛ& X,€Ö¾	D£5þù°û
…‰D7YŸOB dÀ2áóNHA2™Ô[·l~ØpÜ•àý¿þå#Ý½}ýƒÂ¤ÿ ZÐ-4 PBQ ƒk@  8BøßúÇAîH¤H)I§3lßÞÜ¼dÿd h­G«(/¹[bðíÿÓøß	å;<þƒ0‚1üe¢ÑW¤- ©Ñ" C
>Ç»4R
V¿·b1°æXæ~D ôööÝÐ××wåh;ã´ÓÞ*+/ó9H0yBdiq@q¨úÑ‡>1ƒÜ–B"„DJÃŽ¥†” h¨¯Í €ôHsïO¥îùÉ=÷– ×­Ckmd²Ï¶´îXØÒÒº'•JýåGÐ=S±)™L!ôA.jq^!±pUË€xésW¾¨R`H_ä}â}î[¦I¡è”¼¾`Ñ½Ãý­u¬»§÷¾ßÔ?ùÙ/þ)+y°ŽÉ
d2ÙÖ¬]«ãºh­…ÂŒ_Ó3±¡á±XtisKkKKëÐøš<0ƒ¨@™j÷@ùiíË‚Ö×uq]¥¼  *¾‰S¨Á’–Ó ©Ò3]ñ¬ó?H§z®ùÌŒ™w­zïýo¼³tù\!ÕUU|°nÍçÏõÕ#ÀqLÓœØÔÜ²»££s˜–ö'aHƒŠŠrt%Ô‡›@ô \×£¯·Ûvéíé!ÑÝG.ï[Ó4()‰SWWK8dŽ„‰D#C–Eûð¥) 0“ÉÉæÈfs†Á©§œÄ¶æ\×–’¿Ûö<—‰v}ÿ{ß=È±ôôö­Ü´yË…ƒ *P]ƒc‡žûæÌu]]ÝìØÑFËöv\åb†*qt	Ñ’*L+Žv³ØNKäÐNžªÊÓ&×SZ^J<ó‚l6ËÀ@†\.?Dä‘¸:á°E²§ûŸT!óÓß<üÈá(&“¥e¶yËÖEétzÈ6£@¡Ð
_s«@Û«á ´å ‰D7[·´°òýõ¼8s®ú±²víÉ"„1¤…Yn?gœZKSó^œB’®}Û˜Tk0mòxÌE>ŸGk=´TŽ¦i­)‰Çß»ýo§ Ÿ(«Þ_“ÖšR¥|S5è¸ 	Ž}“¦ôG‰Lš¶»XøÆš¶wqÒ™s˜>óbª«ã¬|¿…@+qÐø	MYùXÆUºìïHaš …&bä¹øLØÚ´ÒòRÂáð'šµ5½”ìjk'“N=ùØ£ÞxƒcÆH7´·íiDã×_#Ãá0RÒð5±41¤ôÏÓ0|íl˜†Ä0¶55óÄ“/Ð“)¡ñô?§fÒL¦OŸÊüÅ{ðD)®(ÅqÆÕž+˜<1Në>çq8Ž¢²²œ«¯ºˆžXpúi˜PC4%Uïéé¥e[S÷ž{j#ð?, ‰DWËü×_Y¬1g4ÔO¨©ªªD&†á›"Ã–Ò0ýcÓÄ4-¶·îä§ÿþc'ENœŽ'cÜðÅSyáõV×ÃQàºO	”£Êª ¡¡’½]6„ªp•…!f|¦ß·„¿<›y>¤vŒK}}‘È'ƒ‰Dð<EÓÖm¼ôü3ëW®xw®ÖúÁ.cd+`+`Ï¦ë_jnn6êêÎŸ2y²ð‰61LŸë¦i„›˜†Io_/÷ýûý´uE¸üó_cSË çÏ<‰Ž¤d_WmÆÑ"‚6Â(BO<×¥¾&ÌžŽ<X1âc*¸ü‚zž~©•xXqÿ?Ïæ³—}†¿»k>'MLš4‘p8t Bd39^™÷Rê‰Ç|­§§û·À“@÷ÑE»6oÚpÇ­ß¼eáòå«Þ;®-Óz˜=~á…—ÙÔÒOùÄ«	ÇËQVgž9‘GçuE	éÐÐRC{P„iak‹Ó&ÔT›ü~Þ.B¡8W\~"w=ÔLXöãÈj~v¿>ãdÊ+ª»æŸxüÑŽy/þÇÀ\ åPïá(¢ÂZëâ/õ«tÍøñ˜†¹¦ˆ5ó¦M›yéÕw¨˜0‡Py-±’8WÎ97ßïC…"•ByS@JüÀ¨€HXpÝ¬JjÂ¬ÜÔÏò]Œ?†s§Y<ôÌVÓâÏg%R>‘|ZóüËË¸ýÛ7¡”7* “§VñæO¯¯«ÿBeE%Ží0ê‘i4Ï=÷uSÎÁŽŸÄä)Üö¥“°•ä/ïÜŠEðŠBƒRøn³§1¤àôiqÎ>±„ªr“——õÒÛïPQæÜSJxqi/Ñ²rË ¥-É)'–±}W#ï~°•ÿ™I2n\ÝÈ–_À9ç|&œ4}j jkÇÏ6L‰”V°Í=h?µ†D¢‡%Ë×S1õK|nÎY|eÎT¦ÔÅÑZsù¹Õ¬Ým#mI<nR]nÑP&1°]Å‡;²<öz»E:û"!ÉœYU<µð ÑÒ0®ŽbFLÚ:S\9«]í¡t
KWnæ–›NÕ,ÎšucÇ›ÕH<3Òøy^ÈšU«ðÃ¾«|úôsþ¡¬¬¬J
1%
U›¦UgYfÍ¸q5"d™YE"ˆSÖ¬~›
ÌÒ–­ëbjC5—œU§`R}YÁ-¸dŠdÚáÝúÉRúÜ2ÃÛU|vFÓ&Dy|a‚hÌD{±š2P.î@”h<†a:9ÞXÖÌ?Ü^I.Ÿ CJ^|qÞ·òùü-†iìWž—(
ûúúúö<÷‡ç·,œÿÚï‘€çùÆ-_ÿ?'N<èÚÎÏá¶LRJÖ®ßÈéçœK±|:eþ†³/ÈÓ™t˜÷~že¢ŠÞAnYµä Ñ°äo®¨bæ‰qž[ÑG8*}%‹ÀŒ ª$Š0-Â±ØšÎ„I±!‰:·sÏˆˆLBNB`™’¥ï.Û¬¶°aýÉø»t~üé<m!Ø¾s7ÝùS¸þê©t(R“yR”FM\C
hS \}pé{F$"SæO%–„¢ž
òH®G¸.ŽÊd)*¨SB®ßÃ­<}{Û9åÔ3Ú3Lõ§b@Å¡:@¹hul¾v_²ŸXÍXVlìâä“kyü['³zG–wZr4ÖEH¤]Œ˜‰—÷†”¦æˆ¬Ù]`m{Žw¶f!8(1ÑeQ"Õ%ä±Uq:‹EŒp=Ý=Ç4_ÏSzD%¨´Ÿª:Š]RJ<¥	ÇJˆDCìë-²zÇ í}.W]ÆÉ5!¾5wÅ‰>4i¡Aj+M6wø -Ë¥§•±»ßEP€P˜žƒ#<<¥ez{-°ÂØN×sŽŠxÃ01Ÿæ¡ÈxØŽýq=äDä&%¥%èE(d‚”ìNº¼²±Ÿ=)—kª¹ê¼J\)hÙ›§½Çöc
† l&W…8oJŒ¹ï%‰—™d\EmuˆTÖÚm†EÌ¨À04e%!¬…¶â±ùQ”àá n9ÌC]`×q88®ƒÿb4G
ÃÐLj¨e·P„B&ÚX¦ ´öÚüÛâjÊ-v¤\&”\;¥K

ŠÚ¸äª“â8žfÓÍ]6;SM‹³´5ƒ@£<ÐŠÊ¸É-—TµoÖD±ó}Œ©ŠS,Ú£êh}0‚>Li¸î/-Ó/¿ò:ÝÝ½TWWSZZJ¼$NYY)Bh”çˆC žâ¤&ÒÖ4@Èò0$„M°"’”­˜Uá€“§ÇVôuÊ#3&”2!CpÝYå´%l×w®ŸQA®èaa	51É9SJ0¤`Éæ>–/kâW^…íŒ¾LÓ"›Í‘ÉfÉd²¤ÓìØÙF__Òü Ùôî{ÿíîÏi”E£ÑŠX4VVQYýÑ~4mögg›C¢£
|Ú¶ÃyçžÇ‹Ë_Ç².SbHˆ
	¬¨Á¶Þ"3'FÙÙïâi0‚5=6*Lvõ»,ÝW Uð-Bijã¹¼Gg_L²€*¸Ø™*ªKLÒEÍ¥g×+øqÅÍ³Üô×7÷mÛÖÔ“Íf²ù|>íØvFkÕô ™‘<ÁçWµòB¹l&œËf¢==‰ð¶ææû/¹ìòÙžë¯K‚4€Ÿõ˜Ð8…q±R8˜VS
"&D,…%Ž€Š¸ÉxCvÀ4R@È¬Mº´¥=Ì¨IeHã¸
ÛQtf]KMÒiAQÀäúÕºSEšÚ3Ü2#N&“Í6³½uKß]²Âuû‚]`>èEÀ	>?€ôCžÜ¾k×«¶ãÎö7ˆýkŠEÏó‚÷¹\yéY,Ý¿‡š)g`’hÈ jI"aA8b°sÀå¢úk“n €`RL’(*b1Óz×ñ°‹K+öõÙÜtî
gW$XÖœ¦uo–I¥ýÔÖÖR(:£p_²~Ý\×Y@¼O•Ú°aÝ³‰®ÛqÈfóäòyŠ¶MÑ¶)‹Ì<ÿ"[0M!Ñ¨E4bÄÂÑdWNqN•E4$‰†$•a¦A<,‰…~ÆB’XÈ ±:DgÚ¡kÀ%5)‹[”äs§GÈä†ÞÿÑn;6;w¶v¡ÃÚuãpƒMMÛøÍo~Ãüo”†y­ÛqÉçóSÛA×Z3¡:ÊÖ½I&4N@iD¢‘ˆA$l‚%)±å!IAÀØ`@ã‡Ò$B0˜ÿ¬ŽHLàÃýÚN¯‹qÝôJìL‚š°çcsÞ-SŠ½{ÚI$»9=Þºm[L›Ö¢BÑ¹¸P´ÑZ“ÍæãKZv´Ñ]9“O¬g_Æ%·ˆDÂ+$0ÉäÄ$Ä%l,$Að—€«	y
é*ö÷9d
9—0ðgFHu¶Ñ?;]â¹6=]ÿøÕ¯~ågGÀÞýû™P_OGGçuÙÜK}É´ð<o(.¯Ô'E`{{3Œ;m&;ó&±¸I$j	 ¨2aVÜ7§K2šB €§ÀsÕÚ’.ùœK>ã’Ï»T‡áÂŠnöw&Ž¢¬Acš&B;¿µhÎ=÷ÜÛ=”19œìÞ³÷µdúêdª(}/p÷È6HR/-e³l$R^J$j
,Kb‚¨çÄåì´aGAI@­»ÒNQ‘ËºäscLÅŒèvïÝ7š?öÉõ‰ùKÞ~ç+>ðËç>1 ÒÒº­ý$¥ŸÖrÉæòGUN’Ï8g¼Ángy£!%…ÖO	¶æü—xšÆ° ×Ñ8B“.€çhlGc»0cœ Ú»“–íŽ¹œEÁ®ö½,Y¼èZ!ÄÛZëÞÃJÀ)§žÞx×¿üë®h,Z“J§GÚQ«ª,£rÊiì1«Ë÷ÊÂ¾ÂK»OAmHpEµÁê^–>‡º°`|±“–¦­äryãbP.›cÅ²eÝOÎ}ônàÀÔ.Ûš¶´wìëøuM]íwŠÅ"Žã{»ŸÎRJ»:}Ø·ïïÌ³¯£‹úÚ±Lš0ªëIËýy?‰™µ}=åÁž<ÄíÓíý4mneWÿÀçÿ´ÖH)‚å­Q†]¼øÂ³‹—‡ÿIV òÈ£s“Ù|.2X¶ìK+cZ¡’PÈ:$F83ÌBÆT”Q=¦’h,ŠeY¸ŽCz C¢§l.?îàr¹<ÉÞždyEee(È.ºí©T?ï¯ZµsÁü—ï<Ý#Š:öïÿ®4Í‡Ã •JamýáæMÛ¿½p°ô®»ï½s@3-	•TærYöîïüX$÷XŠÖº=¼³øõ|°nî‰'Z5kÖÅ7ÕÕOh4-Ë²èéîUæ¿<xû˜Êä¾ý¿ß‘Éd&µïÚÑúî»o/Þ
ÊÑº†ÿûó_-éOœ ”âx6!®ë²`þ«6mÜð;àqÃ0Ïó¦ÔÕ5\wÉ¥³o‰Æâ'oÞ´~Ý†õk¾§µ^vL Ì˜~ÞéëÖ¯ù°6$¦†ßvÛ­gqÖômmíÇ ¿ÆÐëýÅÏvG ÉzHÏó&Œ;öšîîn<<¸ù9–BIÔàŒø€-[›{èáGoVJs|E ¢‘+—/½é½÷V>y˜¹[€ý'©uŠv|î3ÿ‘Y¹ò½#"ÿñšöCx!ËÜüðC¿½ðXë?Õ/FV¯_÷/«V½GÑ.ŽŠ®R
9˜–LýÄŠè @c4[( Ó2Ïllœ2»½½íÕc¡Á8–›.þ7±{ýFñò+¯-jmÝŽòËßí…B‘þd_g&“5=OY~¼Qz½çy8¶C6“%Ÿ+ÐÕÕÙ]KÛ¶-¥Ôˆ×ç²9jkk›·5=óQÿ'“€å¿›Ëj&Ý»uë¶Q×í8ôõö¦V¿¿âwÀÊH$:sRcãô™ç_xmªÅ¦)r}?Ø°¡;ÑµØ:¾®>}Þy<3º2Ôô§ú/¨¬¬º(™ì}ë¸  µ¦rLÕ/¦N=aviYùôP(ä‹ùà.KÒýý¬]ûÞBà÷@[¡»¥y›˜qîÌl±X}L¬µÆq]öïÝ³¯;ÑõAZ;×Ù±Ÿ¾¾Þ³#±Ø÷y¨À
r¹œ·oïîÍÉdo}àQr ‚ÄF×úu«¯©¨óW'MþûÒÒÒq¡pØwo³YvîhY«<ïI m0íào¬œŽ¢]li];¶C.ŸK{†×ô-_öÎ³.¾ìzË
 ¥Äqòù<Ý‰m»ÛÛóßDO%¨ÎL&ýóÍ›Ö¿6®füícÇÕÜX™t¢§;ñ<°äcKÃvºÛiÉÇµ‡l&“
‚–‡HúÖ-›¾8qâ”&_º’={÷´/÷<ï5`>8V">õï]?ËÐÜ8p{¢«óéñu?:Ð¹¿xf$ß!Nw8ŽÃHö X,R,’#ÙíT2¹-íúßý©äÕ¹\öàE`Ç!ø#0L/€åûn Ê€ý#uuî1¤9bR3“ÉPðQ›wvì{Xì>œsóŸÀ°–úˆ-ÑÕ½MkÕËG*¸ýzheºŽÓ{˜H®üQZ{Ü;¸Õ—¥£Œ·ëùïv|Úÿwù	¤ÿ#í    IEND®B`‚                                                                                                                                                                                                                                                                                                                            ui/images/activities_transfers.bmp                                                                  0000644 0001750 0001750 00000002212 14011016041 017142  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ      Š   |                  µ   µ             ÿ  ÿ  ÿ      ÿBGRs                                                               3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿi ÿ!w´ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ v²ÿb–ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ&…Èÿ   ÿ   ÿ*Ùÿ3ªÿÿ3ªÿÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ.›éÿ2ÿ'@ÿ,Gÿ0Mÿ0¡òÿ3ªÿÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ2§úÿGnÿ;]ÿHpÿ]Žÿ*EÿW†ÿ3©ýÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿm¦ÿÿ,–âÿJsÿd˜ÿ(ŒÔÿ   ÿ#|»ÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ)Bÿ#}½ÿ3ªÿÿJsÿd˜ÿ3ªÿÿo¨ÿJsÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ/žíÿ3©þÿ3ªÿÿJsÿd˜ÿ3ªÿÿ2¨üÿ/Ÿïÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿ/Ÿïÿ2¨üÿ3ªÿÿd˜ÿJsÿ3ªÿÿ3©þÿ/žíÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿJsÿo¨ÿ3ªÿÿd˜ÿJsÿ3ªÿÿ#}½ÿ)Bÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿ#|»ÿ   ÿ(ŒÔÿd˜ÿJsÿ,–âÿÿm¦ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿ3©þÿZŠÿ%=ÿ\ÿHpÿ>bÿCiÿ2¦ùÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿ3ªÿÿ0¡òÿ0Mÿ,Gÿ'@ÿ2ÿ.›éÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿJsÿd˜ÿ3ªÿÿ3ªÿÿ3ªÿÿ*Ùÿ   ÿ   ÿ&…Èÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿb–ÿ v²ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ!w´ÿi ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ                                                                                                                                                                                                                                                                                                                                                                                      ui/images/activities_shell.bmp                                                                      0000644 0001750 0001750 00000002212 14011014244 016245  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ      Š   |                  }   }             ÿ  ÿ  ÿ      ÿBGRs                                                               3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ+”ßÿCiÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿDjÿ,•àÿ=`ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ?cÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ+“Ýÿ#}¾ÿÿ#~¾ÿ3ªÿÿ3ªÿÿm¦ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ	4Sÿ+“Þÿ,–âÿ9Zÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ.ÿ.œëÿ+“Þÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ	4Sÿ+“Þÿ,–âÿ9Zÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ*‘Ûÿ#}¾ÿÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ=`ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ>bÿ+”ÞÿBhÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿBhÿ+”ßÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ                                                                                                                                                                                                                                                                                                                                                                                      ui/images/activities_screencapture.bmp                                                              0000644 0001750 0001750 00000002212 14011004043 017775  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ      Š   |                  }   }             ÿ  ÿ  ÿ      ÿBGRs                                                               3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ.ìÿ
ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ
ÿ.ìÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¥øÿ0£õÿ ÿ   ÿ   ÿ ÿ0£õÿ1¥øÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ(ŒÔÿAfÿ
6Uÿ
6Uÿ
6Uÿ
6Uÿ
ÿ ÿ ÿ
ÿ
6Uÿ
6Uÿ
6Uÿ
6UÿAfÿ(ŒÔÿ"8ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿRÿQ}ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ$;ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ8Xÿ8Xÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ%‚Åÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ'‡Ëÿ%‚Åÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ   ÿ1¤÷ÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ1¤÷ÿ   ÿ 5ÿ-šçÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ1¥÷ÿ-™çÿ"8ÿ$Àÿ 5ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ 5ÿ$Àÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ3ªÿÿ                                                                                                                                                                                                                                                                                                                                                                                      ui/images/activities_logo.bmp                                                                       0000644 0001750 0001750 00000003312 14011005221 016073  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMÊ      Š   |               @  a  a            ÿ  ÿ  ÿ      ÿBGRs                                                               651ÿ651ÿ651ÿ651ÿ651ÿ:96ÿKKHÿ651ÿuutÿšššÿšššÿuutÿ651ÿIIFÿ:96ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿfedÿ•••ÿ“““ÿ?>;ÿ~ÿÿÿ~ÿ?>;ÿ““’ÿ•••ÿfedÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿDC@ÿ›››ÿÿÿ~ÿŠŠŠÿÿÿ‹‹‹ÿ~ÿÿÿ›››ÿDC@ÿ651ÿ651ÿ651ÿ651ÿ651ÿDC@ÿ651ÿ~ÿÿÿÿÿÿÿÿÿÿÿ~ÿ651ÿDC@ÿ651ÿ651ÿ651ÿfedÿ›››ÿ~ÿkkjÿÿÿÿÿÿÿÿÿÿÿkkjÿ~ÿ›››ÿfedÿ651ÿ:96ÿ•••ÿÿÿÿÿÿÔÇ¢ÿ÷ê»ÿþôÍÿýï¯ÿóä«ÿÌÀ¡ÿÿÿÿÿÿ––•ÿ<;8ÿKKHÿ“““ÿÿÿÿÿàÆ•ÿøá¨ÿûæ¦ÿüë³ÿüæ¢ÿúãÿõØ”ÿÕ»’ÿÿÿÿÿ“““ÿKKHÿ651ÿ?>;ÿ~ÿÿÿÆ¬ÿë¼sÿõØŸÿóÏ…ÿôÓÿùç¾ÿòÍ‚ÿïÆ{ÿïÈŒÿ»¡Œÿÿÿ~ÿ?>;ÿ651ÿuutÿ~ÿ‹‹‹ÿÿÿÞ©nÿëº|ÿé³gÿïÅˆÿóÓ¦ÿÿÿÿÿðÉ–ÿïÆÿë¶wÿÞµ…ÿÿÿ‹‹‹ÿ~ÿuutÿšššÿÿÿÿÿé¶…ÿôÖºÿæ¨gÿà“Jÿà”Kÿç­tÿá—Pÿæ¨jÿß’Iÿá›Rÿÿÿÿÿšššÿ›››ÿÿÿÿÿê¶‹ÿÜ…@ÿÜ„@ÿÛ?ÿÛ?ÿÚ<ÿøåÖÿá˜aÿÚ>ÿã–Hÿÿÿÿÿ›››ÿuutÿ~ÿŠŠŠÿÿÿòéÝÿßXÿÝ†OÿØx<ÿÕm/ÿÕn0ÿïÈ°ÿá—gÿÕp4ÿÐŒaÿÿÿŠŠŠÿ~ÿuutÿ651ÿ?>;ÿ~ÿÿÿÎÌÈÿÔo8ÿÓj4ÿÚ}KÿÞ‰ZÿÞŠZÿá—oÿÙ{Iÿ×t;ÿ®Šÿÿÿ~ÿ?>;ÿ651ÿKKHÿ“““ÿÿÿÿÿÄ“{ÿÍ`1ÿÓh9ÿÕk=ÿÓi9ÿæ¦‡ÿÛˆ`ÿ½Œyÿÿÿÿÿ“““ÿKKHÿ:96ÿ•••ÿÿÿÿÿÿ­Ž…ÿÆƒfÿÍnHÿÐmFÿÏ‘uÿµ†ÿÿÿÿÿÿ––•ÿ<;8ÿ651ÿfedÿ›››ÿ~ÿkkjÿÿÿÿÿÿÿÿÿÿÿkkjÿ~ÿ›››ÿfedÿ651ÿ651ÿ651ÿDC@ÿ651ÿ~ÿÿÿÿÿÿÿÿÿÿÿ~ÿ651ÿDC@ÿ651ÿ651ÿ651ÿ651ÿ651ÿDC@ÿ›››ÿÿÿ~ÿŠŠŠÿÿÿ‹‹‹ÿ~ÿÿÿ›››ÿDC@ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿedcÿ•••ÿ“““ÿ?>;ÿ~~}ÿÿÿ~ÿ?>;ÿ““’ÿ•••ÿedcÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ651ÿ:96ÿKKHÿ651ÿttsÿšššÿšššÿttsÿ651ÿIIFÿ:96ÿ651ÿ651ÿ651ÿ651ÿ651ÿ                                                                                                                                                                                                                                                                                                                      ui/images/logo48x48.bmp                                                                             0000644 0001750 0001750 00000022212 14304066772 014416  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ$      Š   |   0   0          $  ›  ›            ÿ  ÿ  ÿ      ÿBGRs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               SÎâõõâÎS                                                                                                                                        ªªªœœœ;                €ÿÿÿÿÿÿ€                œœœ;ªªª                                                                                                        •••œœœoâýžžž?            ‘ÿÿÿÿÿÿžžž            žžž:üè€ŸŸŸ                                                                                            ŸŸŸJäÿÿÿÞ        ¢ÿÿÿÿÿÿ¡        ¢¢¢Úÿÿÿé›››R                                                                                ŸŸŸœœœ£ÿÿÿÿÿÿžžž˜        ³ÿÿÿÿÿÿ³        žžž˜ÿÿÿÿÿÿœœœ£ŸŸŸ                                                                        ¡¡¡òÿÿÿÿÿÿþI    ÄÿÿÿÿÿÿÃ    ›››Eþÿÿÿÿÿÿôžžž                                                                            œœœ†ÿÿÿÿÿÿÿæÃûÿÿÿÿÿÿûÃæÿÿÿÿÿÿÿœœœ†                                                                                ¡¡¡ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóžžž                                                            ™™™œœœH                œœœ„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœ„                œœœH™™™                                        žžžªÿÐ^ªªª    ŸŸŸïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñœœœ    ÿÿÿœœœMÉÿœœœ°                                    žžždÿÿÿÿžžžÔœœœZŸŸŸ0ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŸŸŸ0œœœZžžžÔÿÿÿÿe                            žžžòÿÿÿÿÿÿþÿÿÿÿÿÿÿž›ÿª¥žÿ¾¸¬ÿÊÅ»ÿÏÉ¾ÿÇÁ·ÿ¸²©ÿª¥žÿœ›ÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿó¢¢¢                        œœœ†ÿÿÿÿÿÿÿÿÿÿÿÿÿ¤£¢ÿÉÀ¯ÿéØ´ÿüçµÿÿé¯ÿÿé±ÿýã ÿþå©ÿÿûìÿ÷éÍÿßÑ¹ÿÃ¾´ÿ¢¡Ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœ†                    ™™™ïÿÿÿÿÿÿÿÿÿÿÿŸŸžÿ·³¯ÿèÐ¦ÿøÝ¡ÿûä¦ÿüéªÿýí´ÿþñÀÿþî·ÿýñÆÿýðÅÿüçµÿøÛÿóÒ›ÿãÔÀÿµ²­ÿŸŸžÿÿÿÿÿÿÿÿÿÿÿÿÿó™™™                œœœ$žžžÔÿÿÿÿÿÿÿÿÿÿ  Ÿÿ»¶°ÿçÉ˜ÿøØ™ÿûã¥ÿýë¬ÿþï±ÿÿøÕÿÿþúÿÿöÍÿþð°ÿýí­ÿýî¾ÿúà£ÿõÓ—ÿñÇ‹ÿæÏ´ÿ¾¹²ÿ  ŸÿÿÿÿÿÿÿÿÿÿÿÿÕœœœ$                    ™™™œœœwùÿÿÿÿÿÿÿÿ®¨¢ÿÝÁžÿòÍ“ÿöØšÿúã¤ÿüì¬ÿþð³ÿÿúßÿÿýôÿþò¶ÿþñ³ÿþï°ÿüê­ÿúå³ÿôÓ˜ÿîÃŠÿìº„ÿçÚÍÿ½¹´ÿÿÿÿÿÿÿÿÿÿûžžžˆ’’’                                ŸŸŸ-Êÿÿÿÿÿÿ§¥¥ÿ¹‘lÿïÈ›ÿíÄ‹ÿóÑ”ÿøÝžÿûæ¤ÿýòÁÿþñ»ÿþõÎÿþï­ÿþî­ÿüêªÿúä£ÿøÞ¥ÿô×§ÿêº€ÿé»ŒÿûñèÿÕÂ±ÿ±¯­ÿÿÿÿÿÿÿÿÑ›››3                                            €€€«ÿÿÿÿÿ–ƒtÿà¤sÿëÀ•ÿé¹~ÿîÈ‰ÿôÕ’ÿùå­ÿýí¼ÿûæŸÿýñÃÿýé¥ÿüç£ÿúäŸÿ÷Ý™ÿòÑŽÿðÌ“ÿôÞÄÿêÁœÿé½—ÿÙžrÿËÄ»ÿÿÿÿÿÿÿ«€€€                                        žžž›››.Ãÿÿÿÿ¡Ÿžÿ±{UÿÝžoÿç¹Œÿä¯qÿë¿{ÿòÑÿùä²ÿ÷ÙÿøÝ”ÿúä¨ÿùã§ÿ÷Û’ÿöØÿóÒ‰ÿïÈÿíÃ…ÿîÎ¨ÿåµ‹ÿìÇ«ÿà¯ÿË¬–ÿ²°¯ÿÿÿÿÿÿÄ›››.žžž                    œœœ¨ëüÿÿÿÿÿÿÿÿ—‡ÿÁ~SÿØ—gÿå´ƒÿã©dÿé¶mÿòÏ•ÿòÌˆÿñÉÿòËÿôÒ‘ÿüòÜÿõÙ¢ÿðÇ}ÿïÅzÿïÇ„ÿïÇŽÿä®mÿÛš_ÿëÈ®ÿíÑ½ÿÉ ƒÿÉÆÁÿÿÿÿÿÿÿÿÿÿüë©        ÖÿÿÿÿÿÿÿÿÿÿŠthÿÄ{NÿÔ‘_ÿå±|ÿâ¡Xÿè°hÿïÅˆÿé´iÿëºqÿì¾xÿ÷à¾ÿÿÿÿÿüòåÿóÔ¦ÿòÏÿóÑ¡ÿïÅŽÿîÅ’ÿîÉ ÿûóìÿúñëÿÂnÿÕÐÉÿÿÿÿÿÿÿÿÿÿÿÿÕ        ëÿÿÿÿÿÿÿÿÿÿ{XFÿÃvIÿÓ‹Wÿäªqÿâ ]ÿòÐ¨ÿîÀ†ÿë·zÿë·{ÿê´wÿë¸€ÿõÜÁÿðÊ ÿãžSÿç«gÿæ¦bÿá˜Lÿß—LÿÜ•Pÿã´ÿà´™ÿÈ‰bÿÈÂ¼ÿÿÿÿÿÿÿÿÿÿÿÿê        úÿÿÿÿÿÿÿÿÿÿjB-ÿ½oAÿÑˆTÿíÅ¡ÿòÐ¯ÿøçØÿãœWÿà•Nÿß‘Iÿß‘Jÿà’Kÿá—Sÿç¬rÿß‘Jÿé±yÿÞŽFÿÝŽHÿà“Hÿà–IÿØ•bÿË‡]ÿºf9ÿ¹®§ÿÿÿÿÿÿÿÿÿÿÿÿú        ìÿÿÿÿÿÿÿÿÿÿgF7ÿ¸i>ÿÙžwÿôÝËÿè¯ÿßOÿÝ‰AÿÜ…AÿÜ„AÿÜ„AÿÜ„AÿÛ„@ÿå¨vÿòÒ·ÿãhÿÚ‚=ÿÛƒ@ÿáAÿä•?ÿØ•dÿÁwMÿ®X/ÿ¼±«ÿÿÿÿÿÿÿÿÿÿÿÿë        ×ÿÿÿÿÿÿÿÿÿÿr`Yÿ¸uRÿÇuFÿÞžrÿíÁŸÿÖu3ÿÚ|7ÿØw6ÿØx7ÿØy9ÿÙx9ÿØy9ÿè±Œÿÿÿÿÿë¼œÿØv5ÿ×y9ÿÛ‚<ÿÕ{8ÿ×–mÿ³`7ÿ”E$ÿÊÂ¾ÿÿÿÿÿÿÿÿÿÿÿÿÖ        œœœ¨ëûÿÿÿÿÿÿÿÿywÿ‘E%ÿ·_5ÿîÓÃÿýøöÿå¥{ÿã™dÿà]ÿÚJÿÕo3ÿÔk.ÿÕl0ÿÝ‡Tÿç«‡ÿè­…ÿÔl.ÿÔm2ÿÙy5ÿÊi/ÿÒ’nÿ¤N)ÿƒB*ÿËÆÄÿÿÿÿÿÿÿÿÿÿûë©                    •••žžžŸŸŸ-Ãÿÿÿÿ–”“ÿn8"ÿÈ‹kÿóâÚÿþþýÿÛˆ\ÿÖp6ÿ×wBÿÞˆXÿäœqÿärÿÜ‚OÿßŒ]ÿÖq;ÿÖr>ÿÝŠZÿÖl-ÿÊ`*ÿÂ`-ÿÄ‚bÿ˜@ÿ–dRÿµ³²ÿÿÿÿÿÿÄ›››.žžž                                        €€€«ÿÿÿÿÿcWTÿ;ÿÄ„iÿä¹¢ÿËc2ÿÏ\%ÿÐ_+ÿÑc.ÿÒd0ÿÔg5ÿÛRÿí¿¨ÿå¤‚ÿÕo>ÿØzJÿÙƒTÿ¹KÿÁg>ÿ®Z9ÿ9ÿ¡Šÿÿÿÿÿÿÿ«€€€                                            ŸŸŸ-ËÿÿÿÿÿÿÿFÿ§]@ÿ®S/ÿÙ—tÿÇX)ÿÎd6ÿÒh:ÿÔj=ÿÔl>ÿÔl>ÿÝ‰aÿ×zPÿÞ“nÿÕ~TÿÈjAÿ×”sÿÐ•|ÿ?#ÿq?1ÿ«©¨ÿÿÿÿÿÿÿÿÑ4                                ™™™œœœwùÿÿÿÿÿÿÿÿwrqÿsB0ÿ˜C%ÿÁz]ÿËyWÿÅe?ÿËgAÿÍi@ÿÏi@ÿÐi@ÿ×€\ÿÏqKÿÚsEÿá–rÿÂqPÿ´r[ÿòèåÿ€L=ÿœ˜—ÿÿÿÿÿÿÿÿÿÿûžžžˆ’’’                    œœœ$Õÿÿÿÿÿÿÿÿÿÿžžžÿwpoÿo<,ÿ¬aHÿÜ›ÿÀlNÿÃhHÿÇhGÿÈhEÿÈiEÿÎ_ÿÍuRÿÄnNÿ·iNÿÇ’~ÿÄ”ƒÿ‡ZMÿ“ŠÿžžÿÿÿÿÿÿÿÿÿÿÿÿÕœœœ$                ™™™ïÿÿÿÿÿÿÿÿÿÿÿžÿ~yxÿY6*ÿ³|hÿÐˆÿ³hPÿµjQÿ´jOÿ³iOÿ½sYÿÅ…nÿ³oXÿ³t^ÿ¬xfÿ¬¨¦ÿŠˆÿœœœÿÿÿÿÿÿÿÿÿÿÿÿÿó™™™                    œœœ†ÿÿÿÿÿÿÿÿÿÿÿÿÿ‘ÿf\Yÿ†laÿ©qÿ¥jWÿªmYÿ°o[ÿ²oYÿº|ÿŸl[ÿ„_Rÿwsÿ™—–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœ†                        žžžòÿÿÿÿÿÿþÿÿÿÿÿÿÿ’‘ÿƒ~ÿvjgÿpZRÿrVMÿr]Vÿsoÿˆƒÿ—–•ÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿó¢¢¢                            žžždÿÿÿÿÓœœœZ/ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŸŸŸ0œœœZÓÿÿÿÿžžžd                                    žžžªÿÐ^ªªª    ŸŸŸïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó™™™    ÿÿÿœœœMÈÿœœœ°                                        ™™™žžžG                œœœ„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…                žžžG™™™                                                            ¡¡¡òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóžžž                                                                                œœœ†ÿÿÿÿÿÿÿæœœœÂûÿÿÿÿÿÿûœœœÂæÿÿÿÿÿÿÿ‡                                                                            ¡¡¡òÿÿÿÿÿÿþI    ÅÿÿÿÿÿÿÄ    ›››Eþÿÿÿÿÿÿô¢¢¢                                                                        ™™™¢ÿÿÿÿÿÿžžž˜        ³ÿÿÿÿÿÿ³        —ÿÿÿÿÿÿ¢™™™                                                                                ŸŸŸJåÿÿÿÞ        œœœ£ÿÿÿÿÿÿ¢        ¢¢¢Úÿÿÿé›››R                                                                                            •••œœœoâýžžž?            ’ÿÿÿÿÿÿ‘            žžž:üè€ŸŸŸ                                                                                                        ªªªœœœ;                €ÿÿÿÿÿÿ€                œœœ;ªªª                                                                                                                                        SÍâõõâÍS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ui/images/logo32x32.bmp                                                                             0000644 0001750 0001750 00000010212 14010256004 014354  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ      Š   |                    h  h            ÿ  ÿ  ÿ      ÿBGRs                                                                                                                                                                                                                                                   žžž7âõõâžžž7                                                                                    ¤¤¤œœœw·™™™    QÿÿÿÿQ    ™™™·œœœw¤¤¤                                                            œœœHåÿÿœœœ|    žžžaÿÿÿÿžžža    }ÿÿéœœœP                                                    ŸŸŸ(ÿÿÿÿù›››.rÿÿÿÿr›››.ùÿÿÿÿ›››)                                                    ¼ÿÿÿÿæñÿÿÿÿñæÿÿÿÿ½                                            ›››)        œœœ>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžž?        ›››)                            œœœMÿ½žžž?    ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžÌ    žžž?½ÿN                    ¤¤¤èÿÿÿÍýÿÿÿœ›ÿ©§¥ÿËÀ®ÿÞÐ¶ÿáÑ²ÿÑÇ¶ÿ±®«ÿœÿÿÿÿýÍÿÿÿè¤¤¤                xÿÿÿÿÿÿÿŸŸžÿ­ª§ÿâÑ±ÿüâ£ÿüç¦ÿýï»ÿýìµÿýóÑÿüã­ÿôÛ¯ÿ¶²®ÿŸžžÿÿÿÿÿÿÿÿœœœw                ·ÿÿÿÿÿÿ¡  ÿ¶±«ÿçÍ¤ÿùÜÿüê«ÿþñµÿÿÿÿÿþó½ÿþï¯ÿüì¸ÿö×™ÿñÄ‹ÿÄ¼´ÿ¡  ÿÿÿÿÿÿÿ·                €€€œœœwøÿÿÿÿ¸´±ÿÇ¤ÿðÉ”ÿöÖ˜ÿûæ¥ÿþóÂÿÿõÎÿþð¯ÿýí­ÿúä¥ÿõÚ©ÿé¸}ÿõÝÆÿ¼¶²ÿÿÿÿÿûžžžˆªªª                        ›››.çÿÿ­«ªÿŸŠ{ÿé·ÿå°wÿïÊ‰ÿøá¨ÿûæ¦ÿüë³ÿüæ¢ÿúãÿõØ”ÿîÆ…ÿöæÒÿä°„ÿÑ¡}ÿ­¬«ÿÿÿç›››.                    ›››8QœœœbsñÿÿÄÄÂÿ˜eDÿá­ƒÿà¤cÿë¼sÿõØŸÿóÏ…ÿôÓÿùç¾ÿòÍ‚ÿïÆ{ÿïÈŒÿà¥eÿç½›ÿä¶–ÿ¼¸µÿÿÿñsœœœbQ›››8        àÿÿÿÿÿÿ²³°ÿ³mCÿÞ¦yÿßšQÿëº|ÿé³gÿïÅˆÿóÓ¦ÿÿÿÿÿðÉ–ÿïÆÿë¶wÿèµyÿñ×¾ÿðÖÄÿÂ°¤ÿÿÿÿÿÿÿà        õÿÿÿÿÿÿ ™ÿ´h>ÿÝ¢vÿé´ƒÿôÖºÿæ¨gÿà“Jÿà”Kÿç­tÿá—Pÿæ¨jÿß’Iÿâ™LÿØWÿÄ{Qÿ¹”}ÿÿÿÿÿÿÿô        õÿÿÿÿÿÿ¥¡ ÿ©c?ÿß©…ÿêµŠÿÜ…@ÿÜ„@ÿÛ?ÿÛ?ÿÚ<ÿøåÖÿá˜aÿÚ>ÿä”Aÿ×‹Uÿ·h?ÿ³Œ{ÿÿÿÿÿÿÿö        žžžáÿÿÿÿÿÿÀ¿¿ÿ{>#ÿÃmAÿüôîÿßXÿÝ†OÿØx<ÿÕm/ÿÕn0ÿïÈ°ÿá—gÿÕp4ÿÚ}8ÿÎVÿ¥N)ÿ¯›”ÿÿÿÿÿÿÿžžžá        žžž7œœœPžžžažžžqñÿÿÒÐÏÿP1%ÿÄƒfÿÿýüÿÔo8ÿÓj4ÿÚ}KÿÞ‰ZÿÞŠZÿá—oÿÙ{Iÿ×t;ÿÈ](ÿ»qNÿ6ÿ»¹¸ÿÿÿñržžžaœœœPžžž7                    ›››.çÿÿ±¯¯ÿ‡}ÿm"
ÿÀuRÿÑuIÿÍ`1ÿÓh9ÿÕk=ÿÓi9ÿæ¦‡ÿÛˆ`ÿÐuIÿÇpLÿ¯eIÿ€YMÿ¬«ªÿÿÿç›››.                        €€€œœœwøÿÿÿÿ½º¹ÿN:4ÿ”Q9ÿÈ‡kÿ¿b?ÿÇgBÿÍhAÿÐh?ÿ×ƒ_ÿ×sHÿÍqÿÈ•…ÿ‘k`ÿ§¥£ÿÿÿÿÿúžžžˆªªª                ·ÿÿÿÿÿÿ¡¡ ÿ±¯­ÿ]OKÿŒR?ÿ×†ÿ»iNÿ»jMÿµgKÿÈ‚hÿ³oWÿ²u`ÿ¥–‘ÿ•Žÿœœÿÿÿÿÿÿÿ·                xÿÿÿÿÿÿÿ ŸŸÿª¨¦ÿyvÿfSLÿ†dWÿ•aOÿ£gTÿ™n^ÿ„`Tÿ~pkÿ›˜–ÿœ››ÿÿÿÿÿÿÿÿœœœw                ¤¤¤èÿÿÿžžžÌýÿÿÿ¡ Ÿÿ¢¡Ÿÿš•”ÿ„~|ÿ€zxÿŒŠÿ›˜—ÿœ›ÿÿÿÿýžžžÌÿÿÿè¤¤¤                    œœœMÿ¼œœœ>    žžžÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ    œœœ>¼ÿœœœM                            ŸŸŸ(        œœœ>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžž?        ŸŸŸ(                                            ¼ÿÿÿÿæñÿÿÿÿñæÿÿÿÿ½                                                    ŸŸŸ(ÿÿÿÿù›››.rÿÿÿÿr›››.ùÿÿÿÿ›››)                                                    œœœHåÿÿœœœ|    œœœbÿÿÿÿœœœb    }ÿÿéœœœP                                                            ¤¤¤žžžv¶€€€    QÿÿÿÿQ    €€€¶žžžv¤¤¤                                                                                    œœœ6žžžáõõžžžáœœœ6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ui/images/logo16x16.bmp                                                                             0000644 0001750 0001750 00000002212 13763160606 014401  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 BMŠ      Š   |                  ´  ´            ÿ  ÿ  ÿ      ÿBGRs                                                                               œœœ,™™™4õõ4™™™œœœ,                            žžžþ´œœœHÿÿœœœH´þžžž                        œÿÿàÿÿàÿÿœ                žžžœœœœ]ÿÿÿÿÿÿÿÿœœœ]œžžž    ›››)ýÿÿÿ§¥ŸÿÐÃ¥ÿîÞ±ÿñã¾ÿÒÅ©ÿ£¡Ÿÿÿÿÿþœœœ,™™™´ÿÿ®«¦ÿÜÂÿûá ÿÿø×ÿþñ±ÿùâ©ÿêÊ¢ÿ©§¦ÿÿÿ´™™™žžž2œœœHàÿÁ±›ÿç¯{ÿòÑ“ÿøÜ˜ÿùàŸÿðË‡ÿé¾—ÿÏ¹¦ÿÿàœœœHžžž2õÿÿÿ¬‡nÿã¨rÿí½…ÿè¯oÿïÆœÿç­nÿæ®wÿÌ¥‹ÿÿÿÿôöÿÿÿ¡€mÿç¶–ÿÜ„DÿØy9ÿçª‚ÿÛ…KÿÛŠJÿ­u[ÿÿÿÿöžžž2œœœHàÿ³ªÿÀ‰sÿÑg3ÿØvGÿßŽeÿØyIÿ¿hAÿ¬•‰ÿÿàœœœHžžž2™™™´ÿÿ¬«©ÿ‘}iÿ¿y^ÿÅhGÿËvUÿÃwZÿª”‡ÿ ŸŸÿÿÿ´™™™›››)ýÿÿÿ¤£¢ÿŸ˜ÿyoÿ“ynÿš‘ˆÿœ›šÿÿÿÿþœœœ,    žžžœœœœ]ÿÿÿÿÿÿÿÿœœœ]œžžž                œÿÿàÿÿàÿÿœ                        þ´œœœHÿÿœœœH´þ                            ššš+™™™4õõ4™™™ššš+                                                                                                                                                                                                                                                                                                                                                                                                      ui/images/__init__.py                                                                               0000644 0001750 0001750 00000000514 13422307023 014333  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
import resources

resimage=resources.ResImage("ui.images")

def get_image(nm):
    return resimage.get(nm)                                                                                                                                                                                    ui/messages/                                                                                        0000755 0001750 0001750 00000000000 15064774431 012603  5                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 ui/messages/uk.py                                                                                   0000644 0001750 0001750 00000041156 14630344565 013602  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Ð¯ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°ÑŽ',
    'accessConfirm':u'Ð¥Ð¾Ñ‚Ñ–Ð² Ð±Ð¸ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ð´Ð¾ Ð²Ð°ÑˆÐ¾Ð³Ð¾ Ð¿Ñ€Ð¸ÑÑ‚Ñ€Ð¾ÑŽ.',
    'agentName':u'ÐÐ°Ð·Ð²Ð° Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'alreadyInstalled':u'DWAgent Ð²Ð¶Ðµ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾.\n\nÐÐ³ÐµÐ½Ñ‚ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ð¾Ð½Ð¾Ð²Ð»ÑŽÑ”Ñ‚ÑŒÑÑ Ð´Ð¾ Ð¾ÑÑ‚Ð°Ð½Ð½ÑŒÐ¾Ñ— Ð²ÐµÑ€ÑÑ–Ñ—. Ð¦Ðµ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ”, Ñ‰Ð¾ Ð²Ð°Ð¼ Ð½Ðµ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÐ²Ð°Ñ‚Ð¸ Ð½Ð¾Ð²Ñ–ÑˆÑ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ.',
    'back':u'ÐÐ°Ð·Ð°Ð´',
    'cancel':u'Ð’Ñ–Ð´Ð¼Ñ–Ð½Ð°',
    'cancelInstall':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑÐºÐ°ÑÐ¾Ð²Ð°Ð½Ð¾.',
    'cancelUninstall':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ ÑÐºÐ°ÑÐ¾Ð²Ð°Ð½Ð¾.',
    'checkInstallCode':u'ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° ÐºÐ¾Ð´Ñƒ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ...',
    'chooseProxyType':u'Ð¯ÐºÐ¸Ð¹ Ñ‚Ð¸Ð¿ proxy Ð²Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸?',
    'close':u'Ð—Ð°ÐºÑ€Ð¸Ñ‚Ð¸',
    'code':u'ÐšÐ¾Ð´',
    'commands':u'ÐšÐ¾Ð¼Ð°Ð½Ð´Ð¸',
    'configureAgent':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¹.',
    'configureAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.',
    'configureChangeInstallKey':u'Ð—Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ†Ñ–Ð¹Ð½Ð¸Ð¹ ÐºÐ¾Ð´',
    'configureChooseMonitorTrayIconVisibility':u'Ð¥Ð¾Ñ‡ÐµÑ‚Ðµ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡Ð¾Ðº Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€Ð° Ñƒ Ñ‚Ñ€ÐµÑ—?',
    'configureChooseOperation':u'Ð’Ð¸Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–ÑŽ:',
    'configureDesktopNotification':u'Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‡Ð¾Ð¼Ñƒ ÑÑ‚Ð¾Ð»Ñ–',
    'configureDesktopNotificationOK':u'Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‡Ð¾Ð¼Ñƒ ÑÑ‚Ð¾Ð»Ñ– Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð¾ ÑƒÑÐ¿Ñ–ÑˆÐ½Ð¾.',
    'configureDisableAgent':u'Ð’Ð¸Ð¼ÐºÐ½Ð½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚',
    'configureDisableAgentQuestion':u'Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnableAgent':u'Ð£Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚',
    'configureEnableAgentQuestion':u'Ð¥Ð¾Ñ‡ÐµÑ‚Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnd':u'ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°.',
    'configureErrorConnection':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ, Ñ‡Ð¸ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾ ÑÐ»ÑƒÐ¶Ð±Ñƒ DWAgent.',
    'configureExit':u'Ð²Ð¸Ñ…Ñ–Ð´',
    'configureInsertPassword':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—:',
    'configureInstallAgent':u'Ð¯Ðº Ð²Ð¸ Ð²Ð²Ð°Ð¶Ð°Ñ”Ñ‚Ðµ Ð·Ð° ÐºÑ€Ð°Ñ‰Ðµ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureInstallCode':u'Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñƒ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ',
    'configureInstallNewAgent':u'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureInstallPassword':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ†Ñ–Ñ—',
    'configureInstallUser':u'ÐšÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡',
    'configureInvalidPassword':u'ÐÐµÐ´Ñ–Ð¹ÑÐ½Ð¸Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'configureKeyInstalled':u'ÐšÐ»ÑŽÑ‡ ÑƒÑÐ¿Ñ–ÑˆÐ½Ð¾ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾.',
    'configureLater':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð·Ð½Ñ–ÑˆÐµ',
    'configureMonitor':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€',
    'configurePassword':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configurePasswordErrNoMatch':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ Ð½Ðµ ÑÐ¿Ñ–Ð²Ð¿Ð°Ð´Ð°Ñ”.',
    'configurePasswordUpdated':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾.',
    'configureProxy':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ€Ð¾ÐºÑÑ–',
    'configureProxyEnd':u'ÐŸÑ€Ð¾ÐºÑÑ– Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð¾ ÑƒÑÐ¿Ñ–ÑˆÐ½Ð¾.',
    'configureRemovePassword':u'Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configureRemovePasswordQuestion':u'Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ?',
    'configureSetPassword':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configureTitle':u'DWAgent - ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ',
    'configureTrayIconOK':u'Ð’Ð¸Ð´Ð¸Ð¼Ñ–ÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐºÐ° Ñƒ Ñ‚Ñ€ÐµÑ— ÑƒÑÐ¿Ñ–ÑˆÐ½Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð°.',
    'configureTrayIconVisibility':u'Ð’Ð¸Ð´Ð¸Ð¼Ñ–ÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐºÐ° Ñƒ Ñ‚Ñ€ÐµÑ—',
    'configureUninstallKeyQuestion':u'Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¹ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸?',
    'configureUninstallationKey':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ',
    'confirmExit':u'Ð’Ð¸ Ð²Ð¿ÐµÐ²Ð½ÐµÐ½Ñ– Ñ‰Ð¾ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸Ð¹Ñ‚Ð¸?',
    'confirmInstall':u'Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ DWAgent Ñƒ \'{0}\'?',
    'confirmUninstall':u'Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ DWAgent?',
    'copyFiles':u'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² ...',
    'createNewAgent':u'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° ...',
    'decline':u'Ð¯ Ð½Ðµ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°ÑŽ',
    'desktopNotificationAutoHide':u'ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸',
    'desktopNotificationNone':u'Ð–Ð¾Ð´ÐµÐ½',
    'desktopNotificationVisible':u'Ð²Ð¸Ð´Ð¸Ð¼Ð¸Ð¹',
    'downloadFile':u'Ð¡ÐºÐ°Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ {0}...',
    'endInstall':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾.',
    'endInstallConfigLater':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾.\nÐÐ³ÐµÐ½Ñ‚ Ð½Ðµ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð¸Ð¹. Ð’Ð¸ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð·Ð½Ñ–ÑˆÐµ.',
    'endUninstall':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾.',
    'enter':u'Ð²Ð²ÐµÐ´Ñ–Ñ‚ÑŒ',
    'enterInstallCode':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸',
    'enterInstallNewAgent':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ Ð´Ð°Ð½Ñ–, Ñ‰Ð¾Ð± ÑÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°:',
    'enterRunCode':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ ÐºÐ¾Ð´ Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ',
    'error':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°',
    'errorAgentAlreadyExsists':u'ÐÐ³ÐµÐ½Ñ‚ {0} Ð²Ð¶Ðµ Ñ–ÑÐ½ÑƒÑ”.',
    'errorAgentMax':u'ÐŸÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð¾ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ñƒ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ñ–Ð².',
    'errorAgentNameNotValid':u'ÐÐ°Ð·Ð²Ð° Ð°Ð³ÐµÐ½Ñ‚Ð° Ð½ÐµÐ´Ñ–Ð¹ÑÐ½Ð°. ÐÐµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸  / \\ | # @ : .',
    'errorConnectionConfig':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ, Ñ‡Ð¸ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾ ÑÐ»ÑƒÐ¶Ð±Ñƒ DWAgent.',
    'errorConnectionQuestion':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ð†Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ñƒ Ð°Ð±Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°Ð½Ð´Ð¼Ð°ÑƒÐµÑ€Ð°.\nÐ’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ€Ð¾ÐºÑÑ–-ÑÐµÑ€Ð²ÐµÑ€?',
    'errorInvalidCode':u'Ð’Ð²ÐµÐ´ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ð´ Ð½ÐµÐ´Ñ–Ð¹ÑÐ½Ð¸Ð¹.',
    'errorInvalidUserPassword':u'ÐÐµÐ´Ñ–Ð¹ÑÐ½Ð¸Ð¹ ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡ Ð°Ð±Ð¾ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'fieldRequired':u'ÐŸÐ¾Ð»Ðµ \'{0}\' Ñ” Ð¾Ð±Ð¾Ð²\'ÑÐ·ÐºÐ¾Ð²Ð¸Ð¼.',
    'install':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸',
    'installMonitor':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€Ð° ...',
    'installMonitorErr':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€Ð°.',
    'installService':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑÐ»ÑƒÐ¶Ð±Ð¸ ...',
    'installServiceErr':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ†Ñ–Ñ— ÑÐ»ÑƒÐ¶Ð±Ð¸.',
    'installShortcuts':u'Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑÑ€Ð»Ð¸ÐºÑ–Ð² ...',
    'installShortcutsErr':u'ÐÐµ Ð²Ð´Ð°Ð»Ð¾ÑÑ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ ÑÑ€Ð»Ð¸ÐºÐ¸ Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ†Ñ–Ñ—.',
    'installerNotSupported':u'Ð¦ÐµÐ¹ Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ‚Ð¾Ñ€ Ð±Ñ–Ð»ÑŒÑˆÐµ Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑÑ. Ð‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ñ‚Ðµ Ð¾ÑÑ‚Ð°Ð½Ð½ÑŽ Ð²ÐµÑ€ÑÑ–ÑŽ.',
    'ipAddress':u'IP ÐÐ´Ñ€ÐµÑÐ°: {0}',
    'linuxRootPrivileges':u'Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ DWAgent Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¾ Ð¼Ð°Ñ‚Ð¸ Ð¿Ñ€Ð°Ð²Ð° Ð°Ð´Ð¼Ñ–Ð½Ñ–ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.\nÐ—Ð°Ð¿ÑƒÑÑ‚Ñ–Ñ‚ÑŒ ÑÐºÑ€Ð¸Ð¿Ñ‚ Ð²Ñ–Ð´ Ñ–Ð¼ÐµÐ½Ñ– Ð°Ð´Ð¼Ñ–Ð½Ñ–ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.',
    'menuConfigure':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸',
    'menuMonitor':u'ÐœÐ¾Ð½Ñ–Ñ‚Ð¾Ñ€',
    'menuUninstall':u'Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸',
    'missingInfoFile':u'Ð¤Ð°Ð¹Ð» info.json Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾.',
    'missingNative':u'Native Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾',
    'missingRuntime':u'Runtime Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾.',
    'monitorActive':u'ÐÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹',
    'monitorAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾.',
    'monitorAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.',
    'monitorConfigure':u'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ñ‚Ð¸',
    'monitorConnections':u'Ð—\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ',
    'monitorCurrentActivities':u'ÐŸÐ¾Ñ‚Ð¾Ñ‡Ð½Ð° Ð´Ñ–ÑÐ»ÑŒÐ½Ñ–ÑÑ‚ÑŒ',
    'monitorDisable':u'Ð’Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸',
    'monitorDisableAgentQuestion':u'Ð’Ð¸ Ñ…Ð¾Ñ‡ÐµÑ‚Ðµ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorDownload':u'Ð¡ÐºÐ°Ñ‡Ð°Ñ‚Ð¸',
    'monitorEnable':u'Ð£Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸',
    'monitorEnableAgentQuestion':u'Ð¥Ð¾Ñ‡ÐµÑ‚Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorEnterPassword':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ:',
    'monitorErrorConnectionConfig':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ. ÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ, Ñ‡Ð¸ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾ ÑÐ»ÑƒÐ¶Ð±Ñƒ DWAgent.',
    'monitorHide':u'ÐŸÑ€Ð¸Ñ…Ð¾Ð²Ð°Ñ‚Ð¸',
    'monitorInvalidPassword':u'ÐÐµÐ´Ñ–Ð¹ÑÐ½Ð¸Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'monitorNoActivities':u'Ð–Ð¾Ð´Ð½Ð¾Ñ— Ð´Ñ–ÑÐ»ÑŒÐ½Ð¾ÑÑ‚Ñ–',
    'monitorScreenCapture':u'Ð¡ÐºÑ€Ñ–Ð½ÑˆÐ¾Ñ‚',
    'monitorSession':u'Ð¡ÐµÑÑ–Ñ',
    'monitorShellSession':u'ÐžÐ±Ð¾Ð»Ð¾Ð½ÐºÐ°',
    'monitorShow':u'ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚Ð¸',
    'monitorStatus':u'Ð¡Ñ‚Ð°Ð½',
    'monitorStatusDisabled':u'Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾',
    'monitorStatusNoService':u'ÐÐµ Ð¾Ð±ÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑÑ',
    'monitorStatusOffline':u'ÐžÑ„Ð»Ð°Ð¹Ð½',
    'monitorStatusOnline':u'ÐžÐ½Ð»Ð°Ð¹Ð½',
    'monitorStatusUpdating':u'ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ',
    'monitorTitle':u'DWAgent - Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€',
    'monitorUninstall':u'Ð’Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸',
    'monitorUninstallNotRun':u'Ð’Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð±ÐµÐ· Ð¿Ñ€Ð°Ð² Ð°Ð´Ð¼Ñ–Ð½Ñ–ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.\nÐ—Ð°Ð¿ÑƒÑÑ‚Ñ–Ñ‚ÑŒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ dwaguninstall Ð² Ð¾Ð±Ð¾Ð»Ð¾Ð½Ñ†Ñ–.',
    'monitorUpload':u'Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸',
    'mustAccept':u'Ð©Ð¾Ð± Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚Ð¸, Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ Ð¾Ð¿Ñ†Ñ–ÑŽ {0}',
    'mustSelectOptions':u'ÐÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¾ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ Ð¾Ð¿Ñ†Ñ–ÑŽ.',
    'next':u'Ð”Ð°Ð»Ñ–',
    'no':u'ÐÑ–',
    'noTryAgain':u'ÐÑ–, ÑÐ¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ñ‰Ðµ Ñ€Ð°Ð·',
    'notInstalled':u'DWAgent Ð½Ðµ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾.',
    'ok':u'Ok',
    'option':u'Ð¾Ð¿Ñ†Ñ–Ñ',
    'optionNotValid':u'Ð’Ð¸Ð±Ñ€Ð°Ð½Ð° Ð¾Ð¿Ñ†Ñ–Ñ Ð½ÐµÐ´Ñ–Ð¹ÑÐ½Ð°.',
    'or':u'Ð°Ð±Ð¾',
    'password':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ',
    'path':u'Ð¨Ð»ÑÑ… Ð´Ð¾',
    'pathCreating':u'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸ ...',
    'pathNotCreate':u'ÐÐµ Ð²Ð´Ð°Ð»Ð¾ÑÑ ÑÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¿Ð°Ð¿ÐºÑƒ. ÐÐµÐ´Ñ–Ð¹ÑÐ½Ð¸Ð¹ ÑˆÐ»ÑÑ… Ð°Ð±Ð¾ Ð´Ð¾Ð·Ð²Ñ–Ð» Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾.',
    'pressEnter':u'ÐÐ°Ñ‚Ð¸ÑÐ½Ñ–Ñ‚ÑŒ enter, Ñ‰Ð¾Ð± Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚Ð¸.',
    'privacyPolicy':u'ÐŸÐ¾Ð»Ñ–Ñ‚Ð¸ÐºÐ° ÐºÐ¾Ð½Ñ„Ñ–Ð´ÐµÐ½Ñ†Ñ–Ð¹Ð½Ð¾ÑÑ‚Ñ–',
    'proxyAuthPassword':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ',
    'proxyAuthUser':u'ÐšÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡',
    'proxyHost':u'Ð¥Ð¾ÑÑ‚',
    'proxyHttp':u'Http',
    'proxyInfo':u'Ð’ÑÑ‚Ð°Ð²Ð¸Ñ‚Ð¸ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–ÑŽ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾ÐºÑÑ–.',
    'proxyNone':u'ÐÐµÐ¼Ð°Ñ”',
    'proxyPort':u'ÐŸÐ¾Ñ€Ñ‚',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Ð¡Ð¸ÑÑ‚ÐµÐ¼Ð°',
    'reEnterCode':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ ÐºÐ¾Ð´ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾',
    'reEnterData':u'Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾',
    'rePassword':u'ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ñ–Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'reject':u'Ð²Ñ–Ð´Ñ…Ð¸Ð»Ð¸Ð½Ð¾',
    'removeFile':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ ...',
    'runWithoutInstallation':u'Ð—Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ð¸',
    'runWithoutInstallationClosing':u'Ð—Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÑÐµÐ°Ð½ÑÑƒ ...',
    'runWithoutInstallationConnecting':u'Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÑÐµÐ°Ð½ÑÑƒ ...',
    'runWithoutInstallationEnd':u'Ð¡ÐµÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑ.',
    'runWithoutInstallationOnlineBottom':u'Ð£Ð’ÐÐ“Ð:\nÐÐµ Ñ€Ð¾Ð·Ð³Ð¾Ð»Ð¾ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ñ†ÑŽ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–ÑŽ Ð»ÑŽÐ´ÑÐ¼, ÑÐºÐ¸Ð¼ Ð½Ðµ Ð´Ð¾Ð²Ñ–Ñ€ÑÑ”Ñ‚Ðµ, Ñ–Ð½Ð°ÐºÑˆÐµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑŒÑ‚Ðµ Ñ—Ð¼ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ð´Ð¾ Ñ†ÑŒÐ¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°. ÐžÑ‚Ð¶Ðµ, ÑÐºÑ‰Ð¾ Ð²Ð¸ Ð½Ðµ Ð²Ð¿ÐµÐ²Ð½ÐµÐ½Ñ–, Ñ‰Ð¾ Ñ€Ð¾Ð±Ð¸Ñ‚Ðµ, Ð·Ð°ÐºÑ€Ð¸Ð¹Ñ‚Ðµ Ñ†ÑŽ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ.',
    'runWithoutInstallationOnlineBottomPutCode':u'Ð£Ð’ÐÐ“Ð:\nÐ¢ÐµÐ¿ÐµÑ€ Ð°Ð³ÐµÐ½Ñ‚ Ð³Ð¾Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°Ñ‚Ð¸ Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ. ÐžÑ‚Ð¶Ðµ, ÑÐºÑ‰Ð¾ Ð²Ð¸ Ð½Ðµ Ð²Ð¿ÐµÐ²Ð½ÐµÐ½Ñ–, Ñ‰Ð¾ Ñ€Ð¾Ð±Ð¸Ñ‚Ðµ, Ð·Ð°ÐºÑ€Ð¸Ð¹Ñ‚Ðµ Ñ†ÑŽ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ñƒ.',
    'runWithoutInstallationOnlinePassword':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ: {0}',
    'runWithoutInstallationOnlineTop':u'Ð¡ÐµÐ°Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹.\nÐ©Ð¾Ð± Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑ Ð´Ð¾ Ñ†ÑŒÐ¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°, Ð¿ÐµÑ€ÐµÐ¹Ð´Ñ–Ñ‚ÑŒ Ð½Ð° ÑÑ‚Ð¾Ñ€Ñ–Ð½ÐºÑƒ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Ð¡ÐµÐ°Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹.',
    'runWithoutInstallationOnlineUser':u'ÐšÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡: {0}',
    'runWithoutInstallationStarting':u'Ð—Ð°Ð¿ÑƒÑÐº Ð°Ð³ÐµÐ½Ñ‚Ð° ...',
    'runWithoutInstallationUnexpectedError':u'ÐÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.\nÐÐµ Ð²Ð´Ð°Ð»Ð¾ÑÑ Ð·Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ð¸ DWAgent. Ð¯ÐºÑ‰Ð¾ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° Ð½Ðµ Ð·Ð½Ð¸ÐºÐ°Ñ”, ÑÐ¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ ÑÐºÐ°Ñ‡Ð°Ñ‚Ð¸ Ð¾ÑÑ‚Ð°Ð½Ð½ÑŽ Ð²ÐµÑ€ÑÑ–ÑŽ DWAgent, Ð²Ð¸Ð´Ð°Ð»Ñ–Ñ‚ÑŒ Ð¿Ð°Ð¿ÐºÑƒ \'{0}\' Ñ– Ð·Ð½Ð¾Ð²Ñƒ Ð·Ð°Ð¿ÑƒÑÑ‚Ñ–Ñ‚ÑŒ DWAgent.',
    'runWithoutInstallationUpdating':u'ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° ...',
    'runWithoutInstallationWait':u'Ð—Ð°Ñ‡ÐµÐºÐ°Ð¹Ñ‚Ðµ, Ð¿Ð¾ÐºÐ¸ Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ‚Ð¸Ð¼ÐµÑ‚ÑŒÑÑ Ð½Ð¾Ð²Ðµ Ð·\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (ÑÐ¿Ñ€Ð¾Ð±Ð° {0}) ...',
    'selectPathInstall':u'Ð’Ð¸Ð±ÐµÑ€Ñ–Ñ‚ÑŒ ÑˆÐ»ÑÑ… Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ:',
    'skipCertValidation':u'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ: Ð¡ÐµÑ€Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸, ÑÐºÑ‰Ð¾ Ð²Ð¸ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚Ðµ, Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ð½ÐµÐ·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¼.\nÐŸÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ð¼ÐµÑ€ÐµÐ¶ÐµÐ²Ñƒ Ð°Ð±Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñƒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–ÑŽ Ð¼Ð°Ñ€ÑˆÑ€ÑƒÑ‚Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð°/Ð±Ñ€Ð°Ð½Ð´Ð¼Ð°ÑƒÐµÑ€Ð°/Ð°Ð½Ñ‚Ð¸Ð²Ñ–Ñ€ÑƒÑÑƒ.\nÐ’ÑÐµ Ð¾Ð´Ð½Ð¾ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶Ð¸Ñ‚Ð¸?',
    'startService':u'Ð—Ð°Ð¿ÑƒÑÐº ÑÐ»ÑƒÐ¶Ð±Ð¸ ...',
    'startServiceErr':u'ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð·Ð°Ð¿ÑƒÑÐºÑƒ ÑÐ»ÑƒÐ¶Ð±Ð¸.',
    'termsAndConditions':u'ÐŸÑ€Ð°Ð²Ð¸Ð»Ð° Ñ‚Ð° ÑƒÐ¼Ð¾Ð²Ð¸',
    'titleInstall':u'DWAgent - Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ°',
    'titleUninstall':u'DWAgent - Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ',
    'toBack':u'Ð¿Ð¾Ð²ÐµÑ€Ð½ÑƒÑ‚Ð¸ÑÑ.',
    'toExit':u'Ð´Ð¾ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ.',
    'unattendedAccess':u'ÐÐµÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ¾Ð²Ð°Ð½Ð¸Ð¹\nÐ´Ð¾ÑÑ‚ÑƒÐ¿',
    'unexpectedError':u'ÐÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.\n{0}',
    'uninstallMonitor':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð½Ñ–Ñ‚Ð¾Ñ€Ð° ...',
    'uninstallService':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑÐ»ÑƒÐ¶Ð±Ð¸ ...',
    'uninstallShortcuts':u'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑÑ€Ð»Ð¸ÐºÑ–Ð² ...',
    'unknownUser':u'ÐÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡',
    'user':u'ÐšÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡',
    'validInteger':u'ÐŸÐ¾Ð»Ðµ \'{0}\' Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ñ†Ñ–Ð»Ð¸Ð¼ Ñ‡Ð¸ÑÐ»Ð¾Ð¼.',
    'versionInstallNotValid':u'Ð’ÐµÑ€ÑÑ–Ñ Ñ–Ð½ÑÑ‚Ð°Ð»ÑÑ‚Ð¾Ñ€Ð° Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð° Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹Ð½Ð¾Ñ— ÑÐ¸ÑÑ‚ÐµÐ¼Ð¸.\nÐ¡ÐºÐ°Ñ‡Ð°Ð¹Ñ‚Ðµ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñƒ Ð²ÐµÑ€ÑÑ–ÑŽ. {0}',
    'waiting':u'ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ ...',
    'warningLoginLogout':u'Ð©Ð¾Ð± Ñ†Ñ Ð·Ð¼Ñ–Ð½Ð° Ð½Ð°Ð±Ñ€Ð°Ð»Ð° Ñ‡Ð¸Ð½Ð½Ð¾ÑÑ‚Ñ–, ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ Ð²Ð¸Ð¹Ñ‚Ð¸ Ñ‚Ð° Ð²Ð²Ñ–Ð¹Ñ‚Ð¸ Ñ‰Ðµ Ñ€Ð°Ð·.',
    'warningRemovePath':u'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ: Ð¿Ð°Ð¿ÐºÐ° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñ–ÑÐ½ÑƒÑ”, Ð²Ð¾Ð½Ð° Ð±ÑƒÐ´Ðµ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð°.',
    'warningSpyingTool':u'Ð—Ð²ÐµÑ€Ð½Ñ–Ñ‚ÑŒ ÑƒÐ²Ð°Ð³Ñƒ, Ñ‰Ð¾ Ð²Ð¸ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ð´Ð¾ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿â€™ÑŽÑ‚ÐµÑ€Ð° Ð±ÐµÐ· Ð·Ð³Ð¾Ð´Ð¸ Ð¹Ð¾Ð³Ð¾ ÐºÐ¾Ñ€Ð¸ÑÑ‚ÑƒÐ²Ð°Ñ‡Ð°. Ð’Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÑŽÑ‡Ð¸ DWService ÑÐº Ñ–Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚ ÑˆÐ¿Ð¸Ð³ÑƒÐ½ÑÑ‚Ð²Ð°, Ð²Ð¸, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ñ€ÑƒÑˆÑƒÑ”Ñ‚Ðµ Ð·Ð°ÐºÐ¾Ð½Ð¸ Ð²Ð°ÑˆÐ¾Ñ— ÐºÑ€Ð°Ñ—Ð½Ð¸ Ð¿Ñ€Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ.',
    'welcomeLicense':u'Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ\nÐ¦Ðµ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ðµ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ” Ð²Ñ–Ð»ÑŒÐ½Ð¸Ð¼ Ñ– Ð· Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸Ð¼ ÐºÐ¾Ð´Ð¾Ð¼.\nÐ’Ñ–Ð½ ÑÐºÐ»Ð°Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ð· Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ð¾ÑÐ½Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° Ñ– Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð², Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ… "app", ÑÐºÑ– Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ñ€ÐµÐ³ÑƒÐ»ÑŽÐ²Ð°Ñ‚Ð¸ÑÑ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–ÑÐ¼Ð¸. Ð”Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð° Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ-Ð½Ð° ÑÐ°Ð¹Ñ‚Ñ–: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶ÑƒÑŽÑ‡Ð¸ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ Ð·Ð°Ð¿ÑƒÑÐº Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ, Ð²Ð¸ Ð¿Ð¾Ð³Ð¾Ð´Ð¶ÑƒÑ”Ñ‚ÐµÑÑŒ Ð· #TERMSANDCONDITIONS Ñ– #PRIVACYPOLICY',
    'welcomeSecurity':u'Ð‘ÐµÐ·Ð¿ÐµÐºÐ°\nÐ©Ð¾Ð± Ð·Ð°Ñ…Ð¸ÑÑ‚Ð¸Ñ‚Ð¸ Ð²Ð°ÑˆÑƒ ÐºÐ¾Ð½Ñ„Ñ–Ð´ÐµÐ½Ñ†Ñ–Ð¹Ð½Ñ–ÑÑ‚ÑŒ, Ð¼Ð¸ Ð³Ð°Ñ€Ð°Ð½Ñ‚ÑƒÑ”Ð¼Ð¾, Ñ‰Ð¾ Ð½Ð° Ð½Ð°ÑˆÐ¸Ñ… ÑÐµÑ€Ð²ÐµÑ€Ð°Ñ… Ð½Ðµ Ð±ÑƒÐ´Ðµ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ð¶Ð¾Ð´Ð½Ð¾Ñ— Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ—, Ð° Ð·Ð²\'ÑÐ·Ð¾Ðº Ð±ÑƒÐ´Ðµ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ð¼, Ñ‚Ð¾Ð¼Ñƒ Ñ‚Ñ€ÐµÑ‚Ñ– ÑÑ‚Ð¾Ñ€Ð¾Ð½Ð¸ Ð½Ðµ Ð·Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ñ—Ñ… Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸.',
    'welcomeSoftwareUpdates':u'ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ\nÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ” Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¼Ð¸.',
    'welcomeTermsAndConditions':u'Ð’Ð¸Ð±Ñ€Ð°Ð²ÑˆÐ¸ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ \'{0}\' Ð°Ð±Ð¾ \'{1}\', Ñ Ð¿Ñ€Ð¸Ð¹Ð¼Ð°ÑŽ #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ DWAgent Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¾ Ð¼Ð°Ñ‚Ð¸ Ð¿Ñ€Ð°Ð²Ð° Ð°Ð´Ð¼Ñ–Ð½Ñ–ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.\nÐ‘ÑƒÐ´ÑŒ Ð»Ð°ÑÐºÐ°, Ð·Ð°Ð¿ÑƒÑÑ‚Ñ–Ñ‚ÑŒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ñ–Ð· \'Ð·Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ð¸ Ð²Ñ–Ð´ Ñ–Ð¼ÐµÐ½Ñ– Ð°Ð´Ð¼Ñ–Ð½Ñ–ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°\'.',
    'yes':u'Ð¢Ð°Ðº'
}
                                                                                                                                                                                                                                                                                                                                                                                                                  ui/messages/ru.py                                                                                   0000644 0001750 0001750 00000041050 14630344562 013577  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'ÐŸÑ€Ð¸Ð½Ð¸Ð¼Ð°ÑŽ',
    'accessConfirm':u'ÐŸÐ¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ðº ÑÐ²Ð¾ÐµÐ¼Ñƒ ÑƒÑÑ‚Ñ€Ð¾Ð¹ÑÑ‚Ð²Ñƒ.',
    'agentName':u'Ð˜Ð¼Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'alreadyInstalled':u'DWAgent ÑƒÐ¶Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½.\n\nÐÐ³ÐµÐ½Ñ‚ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¸ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÐµÑ‚ÑÑ Ð´Ð¾ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½ÐµÐ¹ Ð²ÐµÑ€ÑÐ¸Ð¸. Ð­Ñ‚Ð¾ Ð¾Ð·Ð½Ð°Ñ‡Ð°ÐµÑ‚, Ñ‡Ñ‚Ð¾ Ð²Ð°Ð¼ Ð½Ðµ Ð½ÑƒÐ¶Ð½Ð¾ Ð²Ñ€ÑƒÑ‡Ð½ÑƒÑŽ ÑƒÑÑ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ‚ÑŒ Ð½Ð¾Ð²Ñ‹Ðµ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ.',
    'back':u'ÐÐ°Ð·Ð°Ð´',
    'cancel':u'ÐžÑ‚Ð¼ÐµÐ½Ð°',
    'cancelInstall':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° Ð±Ñ‹Ð»Ð° Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°.',
    'cancelUninstall':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð»ÑÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°.',
    'checkInstallCode':u'ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° ÐºÐ¾Ð´Ð° ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸...',
    'chooseProxyType':u'ÐšÐ°ÐºÐ¾Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾ÐºÑÐ¸ Ð²Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ?',
    'close':u'Ð—Ð°ÐºÑ€Ñ‹Ñ‚ÑŒ',
    'code':u'ÐšÐ¾Ð´',
    'commands':u'ÐšÐ¾Ð¼Ð°Ð½Ð´Ñ‹',
    'configureAgent':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'configureAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'configureChangeInstallKey':u'Ð¡Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸',
    'configureChooseMonitorTrayIconVisibility':u'ÐŸÐ¾ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ Ð·Ð½Ð°Ñ‡Ð¾Ðº Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð° Ð² Ñ‚Ñ€ÐµÐµ?',
    'configureChooseOperation':u'ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ Ð´ÐµÐ¹ÑÑ‚Ð¸Ðµ:',
    'configureDesktopNotification':u'Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¼ ÑÑ‚Ð¾Ð»Ðµ',
    'configureDesktopNotificationOK':u'Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ¼ ÑÑ‚Ð¾Ð»Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½Ñ‹.',
    'configureDisableAgent':u'ÐžÑ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureDisableAgentQuestion':u'Ð’Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnableAgent':u'Ð’ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureEnableAgentQuestion':u'Ð’Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnd':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°.',
    'configureErrorConnection':u'ÐžÑˆÐ¸Ð±ÐºÐ° ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ, Ñ‡Ñ‚Ð¾ ÑÐ»ÑƒÐ¶Ð±Ð° DWAgent Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð°.',
    'configureExit':u'Ð’Ñ‹Ñ…Ð¾Ð´',
    'configureInsertPassword':u'ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð²ÑÑ‚Ð°Ð²ÑŒÑ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸:',
    'configureInstallAgent':u'ÐšÐ°Ðº Ð²Ñ‹ Ñ…Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureInstallCode':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸',
    'configureInstallNewAgent':u'Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureInstallPassword':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° Ð¿Ð°Ñ€Ð¾Ð»Ñ',
    'configureInstallUser':u'ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ',
    'configureInvalidPassword':u'ÐÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'configureKeyInstalled':u'ÐšÐ»ÑŽÑ‡ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½ ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureLater':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð·Ð¶Ðµ',
    'configureMonitor':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³',
    'configurePassword':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configurePasswordErrNoMatch':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ Ð½Ðµ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ‚.',
    'configurePasswordUpdated':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½.',
    'configureProxy':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð¿Ñ€Ð¾ÐºÑÐ¸',
    'configureProxyEnd':u'ÐŸÑ€Ð¾ÐºÑÐ¸ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½ ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureRemovePassword':u'Ð£Ð±Ñ€Ð°Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configureRemovePasswordQuestion':u'Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ ÑƒÐ±Ñ€Ð°Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ?',
    'configureSetPassword':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'configureTitle':u'DWAgent - ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸',
    'configureTrayIconOK':u'Ð’Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐºÐ° Ð² Ñ‚Ñ€ÐµÐµ Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½Ð° ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureTrayIconVisibility':u'Ð’Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐºÐ° Ð² Ñ‚Ñ€ÐµÐµ',
    'configureUninstallKeyQuestion':u'Ð£Ð´Ð°Ð»Ð¸Ñ‚ÑŒ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸?',
    'configureUninstallationKey':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ...',
    'confirmExit':u'Ð”ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ Ð²Ñ‹Ð¹Ñ‚Ð¸?',
    'confirmInstall':u'Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ DWAgent Ð½Ð° \'{0}\'?',
    'confirmUninstall':u'Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ DWAgent?',
    'copyFiles':u'ÐšÐ¾Ð¿Ð¸Ñ€ÑƒÑŽ...',
    'createNewAgent':u'Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°...',
    'decline':u'ÐÐµ Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°ÑŽ',
    'desktopNotificationAutoHide':u'ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¾Ðµ ÑÐºÑ€Ñ‹Ñ‚Ð¸Ðµ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ',
    'desktopNotificationNone':u'Ð‘ÐµÐ· ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ',
    'desktopNotificationVisible':u'Ð’Ð¸Ð´Ð¸Ð¼Ð¾Ðµ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ',
    'downloadFile':u'Ð¡ÐºÐ°Ñ‡Ð¸Ð²Ð°Ð½Ð¸Ðµ Ñ„Ð°Ð¹Ð»Ð° {0}...',
    'endInstall':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°.',
    'endInstallConfigLater':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°.\nÐÐ³ÐµÐ½Ñ‚ Ð½Ðµ Ð±Ñ‹Ð» Ð½Ð°ÑÑ‚Ñ€Ð¾ÐµÐ½. Ð’Ñ‹ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð¿Ñ€Ð¸ÑÑ‚ÑƒÐ¿Ð¸Ñ‚ÑŒ Ðº ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ð¾Ð·Ð´Ð½ÐµÐµ.',
    'endUninstall':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾.',
    'enter':u'Ð²Ð²Ð¾Ð´',
    'enterInstallCode':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ ÐºÐ¾Ð´ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸',
    'enterInstallNewAgent':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð°:',
    'enterRunCode':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ ÐºÐ¾Ð´ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ',
    'error':u'ÐžÑˆÐ¸Ð±ÐºÐ°',
    'errorAgentAlreadyExsists':u'ÐÐ³ÐµÐ½Ñ‚ {0} ÑƒÐ¶Ðµ ÑÑƒÑ‰ÐµÑÑ‚Ð²ÑƒÐµÑ‚.',
    'errorAgentMax':u'ÐŸÑ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¾ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ðµ Ñ‡Ð¸ÑÐ»Ð¾ Ð°Ð³ÐµÐ½Ñ‚Ð¾Ð².',
    'errorAgentNameNotValid':u'Ð˜Ð¼Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° Ð½ÐµÐ´Ð¾Ð¿ÑƒÑÑ‚Ð¸Ð¼Ð¾. ÐÐµÐ»ÑŒÐ·Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ‹ / \\ | # @ : .',
    'errorConnectionConfig':u'ÐžÑˆÐ¸Ð±ÐºÐ° ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ, Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð° Ð»Ð¸ ÑÐ»ÑƒÐ¶Ð±Ð° DWAgent.',
    'errorConnectionQuestion':u'ÐžÑˆÐ¸Ð±ÐºÐ° ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ðº Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ñƒ Ð¸Ð»Ð¸ Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð±Ñ€Ð°Ð½Ð´Ð¼Ð°ÑƒÑÑ€Ð°.\nÐ¥Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÑŒ Ð¿Ñ€Ð¾ÐºÑÐ¸?',
    'errorInvalidCode':u'Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ‹Ð¹ ÐºÐ¾Ð´ Ð½ÐµÐ´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ‚ÐµÐ»ÐµÐ½.',
    'errorInvalidUserPassword':u'ÐÐµÐ²ÐµÑ€Ð½Ð¾Ðµ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'fieldRequired':u'ÐŸÐ¾Ð»Ðµ \'{0}\' ÑÐ²Ð»ÑÐµÑ‚ÑÑ Ð¾Ð±ÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼.',
    'install':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ',
    'installMonitor':u'ÐœÐ¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³ ÑƒÑÑ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ‚ÑÑ...',
    'installMonitorErr':u'ÐÐµ ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³.',
    'installService':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° ÑÐ»ÑƒÐ¶Ð±Ñ‹...',
    'installServiceErr':u'ÐÐµ ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ ÑÐ»ÑƒÐ¶Ð±Ñƒ.',
    'installShortcuts':u'Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ° ÑÑ€Ð»Ñ‹ÐºÐ¾Ð²...',
    'installShortcutsErr':u'ÐÐµ ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ ÑÑ€Ð»Ñ‹ÐºÐ¸.',
    'installerNotSupported':u'Ð­Ñ‚Ð° Ð²ÐµÑ€ÑÐ¸Ñ ÑƒÑÑ‚Ð°Ñ€ÐµÐ»Ð°. ÐŸÐ¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, ÑÐºÐ°Ñ‡Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½ÑŽÑŽ Ð²ÐµÑ€ÑÐ¸ÑŽ.',
    'ipAddress':u'IP-Ð°Ð´Ñ€ÐµÑ: {0}',
    'linuxRootPrivileges':u'Ð£ Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ Ð±Ñ‹Ñ‚ÑŒ Ð¿Ñ€Ð°Ð²Ð° ÑÑƒÐ¿ÐµÑ€Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, Ñ‡Ñ‚Ð¾Ð±Ñ‹ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ DWAgent.\nÐ—Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ðµ ÑÐºÑ€Ð¸Ð¿Ñ‚ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ root.',
    'menuConfigure':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ°',
    'menuMonitor':u'ÐœÐ¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³',
    'menuUninstall':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ',
    'missingInfoFile':u'Ð¤Ð°Ð¹Ð» info.json Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½.',
    'missingNative':u'Native Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½.',
    'missingRuntime':u'Runtime Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½.',
    'monitorActive':u'Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾',
    'monitorAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'monitorAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'monitorConfigure':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ°',
    'monitorConnections':u'Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ',
    'monitorCurrentActivities':u'ÐÐºÑ‚Ð¸Ð²Ð½Ñ‹Ðµ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ',
    'monitorDisable':u'ÐžÑ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ',
    'monitorDisableAgentQuestion':u'Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorDownload':u'Ð¡ÐºÐ°Ñ‡Ð°Ñ‚ÑŒ',
    'monitorEnable':u'Ð’ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ',
    'monitorEnableAgentQuestion':u'Ð¥Ð¾Ñ‚Ð¸Ñ‚Ðµ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorEnterPassword':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ:',
    'monitorErrorConnectionConfig':u'ÐžÑˆÐ¸Ð±ÐºÐ° ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ. ÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ, Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð° Ð»Ð¸ ÑÐ»ÑƒÐ¶Ð±Ð° DWAgent.',
    'monitorHide':u'Ð¡ÐºÑ€Ñ‹Ñ‚ÑŒ',
    'monitorInvalidPassword':u'ÐÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ.',
    'monitorNoActivities':u'ÐÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚Ð¸ Ð½ÐµÑ‚',
    'monitorScreenCapture':u'Ð—Ð°Ñ…Ð²Ð°Ñ‚ ÑÐºÑ€Ð°Ð½Ð°',
    'monitorSession':u'Ð¡ÐµÑÑÐ¸Ñ',
    'monitorShellSession':u'ÐšÐ¾Ð½ÑÐ¾Ð»ÑŒ',
    'monitorShow':u'ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ',
    'monitorStatus':u'Ð¡Ð¾ÑÑ‚Ð¾ÑÐ½Ð¸Ðµ',
    'monitorStatusDisabled':u'Ð’Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾',
    'monitorStatusNoService':u'ÐÐµ Ð¾Ð±ÑÐ»ÑƒÐ¶Ð¸Ð²Ð°ÐµÑ‚ÑÑ',
    'monitorStatusOffline':u'ÐžÑ„Ð»Ð°Ð¹Ð½',
    'monitorStatusOnline':u'ÐžÐ½Ð»Ð°Ð¹Ð½',
    'monitorStatusUpdating':u'ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ',
    'monitorTitle':u'DWAgent - ÐœÐ¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³',
    'monitorUninstall':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ',
    'monitorUninstallNotRun':u'Ð’Ñ‹ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð±ÐµÐ· Ð¿Ñ€Ð°Ð² ÑÑƒÐ¿ÐµÑ€Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ.\nÐ—Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ðµ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ dwaguninstall Ð² ÐºÐ¾Ð½ÑÐ¾Ð»Ð¸.',
    'monitorUpload':u'Ð—Ð°ÐºÐ°Ñ‡Ð°Ñ‚ÑŒ',
    'mustAccept':u'Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð¾Ð¿Ñ†Ð¸ÑŽ {0}',
    'mustSelectOptions':u'ÐÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ Ð²Ñ‹Ð±Ñ€Ð°Ñ‚ÑŒ Ð¾Ð¿Ñ†Ð¸ÑŽ.',
    'next':u'Ð”Ð°Ð»ÐµÐµ',
    'no':u'ÐÐµÑ‚',
    'noTryAgain':u'ÐÐµÑ‚, Ð¿Ð¾Ð¿Ñ€Ð¾Ð±Ð¾Ð²Ð°Ñ‚ÑŒ ÐµÑ‰Ðµ Ñ€Ð°Ð·',
    'notInstalled':u'DWAgent Ð½Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½.',
    'ok':u'Ok',
    'option':u'ÐžÐ¿Ñ†Ð¸Ð¸',
    'optionNotValid':u'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑÑ‚Ð¸Ð¼.',
    'or':u'Ð¸Ð»Ð¸',
    'password':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ',
    'path':u'ÐŸÑƒÑ‚ÑŒ',
    'pathCreating':u'Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ Ð¿Ð°Ð¿ÐºÐ¸...',
    'pathNotCreate':u'ÐŸÐ°Ð¿ÐºÐ° Ð½Ðµ ÑÐ¾Ð·Ð´Ð°Ð½Ð°. ÐÐµÐ²ÐµÑ€Ð½Ñ‹Ð¹ Ð¿ÑƒÑ‚ÑŒ Ð¸Ð»Ð¸ Ð·Ð°Ð¿Ñ€ÐµÑ‰ÐµÐ½ Ð´Ð¾ÑÑ‚ÑƒÐ¿.',
    'pressEnter':u'ÐÐ°Ð¶Ð¼Ð¸Ñ‚Ðµ Enter Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ.',
    'privacyPolicy':u'ÐŸÐ¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚Ð¸',
    'proxyAuthPassword':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ',
    'proxyAuthUser':u'ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÑŽ Ð¾ Ð¿Ñ€Ð¾ÐºÑÐ¸-ÑÐµÑ€Ð²ÐµÑ€Ðµ.',
    'proxyNone':u'ÐÐµÑ‚',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Ð¡Ð¸ÑÑ‚ÐµÐ¼Ð°',
    'reEnterCode':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ ÐºÐ¾Ð´ ÐµÑ‰Ðµ Ñ€Ð°Ð·',
    'reEnterData':u'Ð’Ð²ÐµÐ´Ð¸Ñ‚Ðµ Ð´Ð°Ð½Ð½Ñ‹Ðµ ÐµÑ‰Ðµ Ñ€Ð°Ð·',
    'rePassword':u'ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»ÑŒ',
    'reject':u'ÐžÑ‚ÐºÐ»Ð¾Ð½Ð¸Ñ‚ÑŒ',
    'removeFile':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ Ñ„Ð°Ð¹Ð»Ð°...',
    'runWithoutInstallation':u'Ð—Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚ÑŒ',
    'runWithoutInstallationClosing':u'Ð—Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ðµ ÑÐµÐ°Ð½ÑÐ°...',
    'runWithoutInstallationConnecting':u'ÐžÑ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ðµ ÑÐµÐ°Ð½ÑÐ°...',
    'runWithoutInstallationEnd':u'Ð¡ÐµÐ°Ð½Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡ÐµÐ½.',
    'runWithoutInstallationOnlineBottom':u'ÐŸÐ Ð•Ð”Ð£ÐŸÐ Ð•Ð–Ð”Ð•ÐÐ˜Ð•:\nÐÐµ ÑÐ¾Ð¾Ð±Ñ‰Ð°Ð¹Ñ‚Ðµ ÑÑ‚Ñƒ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÑŽ Ð»ÑŽÐ´ÑÐ¼, ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ Ð½Ðµ Ð´Ð¾Ð²ÐµÑ€ÑÐµÑ‚Ðµ, Ð¸Ð½Ð°Ñ‡Ðµ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚Ðµ Ð¸Ð¼ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ðº Ð°Ð³ÐµÐ½Ñ‚Ñƒ. Ð•ÑÐ»Ð¸ Ð²Ñ‹ Ð½Ðµ Ð¿Ð¾Ð½Ð¸Ð¼Ð°ÐµÑ‚Ðµ Ð´Ð¾ ÐºÐ¾Ð½Ñ†Ð°, Ñ‡Ñ‚Ð¾ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð²Ñ‹ Ð´ÐµÐ»Ð°ÐµÑ‚Ðµ, Ð¿Ð¾Ð¶Ð°Ð»ÑƒÐ¹ÑÑ‚Ð°, Ð·Ð°ÐºÑ€Ð¾Ð¹Ñ‚Ðµ ÑÑ‚Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ.',
    'runWithoutInstallationOnlineBottomPutCode':u'Ð’Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ: \nÑÐµÐ¹Ñ‡Ð°Ñ Ð°Ð³ÐµÐ½Ñ‚ Ð³Ð¾Ñ‚Ð¾Ð² Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°Ñ‚ÑŒ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ðµ. Ð•ÑÐ»Ð¸ Ð²Ñ‹ Ð½Ðµ ÑƒÐ²ÐµÑ€ÐµÐ½Ñ‹ Ð² Ñ‚Ð¾Ð¼, Ñ‡Ñ‚Ð¾ Ð´ÐµÐ»Ð°ÐµÑ‚Ðµ, - Ð·Ð°ÐºÑ€Ð¾Ð¹Ñ‚Ðµ ÑÑ‚Ð¾ Ð¾ÐºÐ½Ð¾.',
    'runWithoutInstallationOnlinePassword':u'ÐŸÐ°Ñ€Ð¾Ð»ÑŒ: {0}',
    'runWithoutInstallationOnlineTop':u'Ð¡ÐµÐ°Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²ÐµÐ½.\nÐ”Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº Ð°Ð³ÐµÐ½Ñ‚Ñƒ Ð¿ÐµÑ€ÐµÐ¹Ð´Ð¸Ñ‚Ðµ Ð¿Ð¾ ÑÑÑ‹Ð»ÐºÐµ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Ð¡ÐµÑÑÐ¸Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°.',
    'runWithoutInstallationOnlineUser':u'ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ: {0}',
    'runWithoutInstallationStarting':u'ÐÐ³ÐµÐ½Ñ‚ Ð·Ð°Ð¿ÑƒÑÐºÐ°ÐµÑ‚ÑÑ...',
    'runWithoutInstallationUnexpectedError':u'ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°.\nDWAgent Ð½Ðµ Ð±Ñ‹Ð» Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½. Ð•ÑÐ»Ð¸ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° ÑÐ¾Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑÑ, Ð¿Ð¾Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½ÑŽÑŽ Ð²ÐµÑ€ÑÐ¸ÑŽ DWAgent, ÑƒÐ´Ð°Ð»Ð¸Ñ‚Ðµ Ð¿Ð°Ð¿ÐºÑƒ "{0} " Ð¸ Ð·Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ðµ DWAgent ÑÐ½Ð¾Ð²Ð°.',
    'runWithoutInstallationUpdating':u'ÐÐ³ÐµÐ½Ñ‚ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÐµÑ‚ÑÑ...',
    'runWithoutInstallationWait':u'ÐžÐ¶Ð¸Ð´Ð°ÐµÐ¼ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° {0})...',
    'selectPathInstall':u'Ð’Ñ‹Ð±ÐµÑ€Ð¸Ñ‚Ðµ Ð¿ÑƒÑ‚ÑŒ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸:',
    'skipCertValidation':u'ÐÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ ÑÐµÑ€Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚Ð¸, ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ñ‹Ð¼.\nÐŸÑ€Ð¾Ð²ÐµÑ€ÑŒÑ‚Ðµ Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð¼Ð°Ñ€ÑˆÑ€ÑƒÑ‚Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð°, Ñ„Ð°Ð¹Ñ€Ð²Ð¾Ð»Ð° Ð¸Ð»Ð¸ Ð°Ð½Ñ‚Ð¸Ð²Ð¸Ñ€ÑƒÑÐ°.\nÐŸÑ€Ð¾Ð´Ð¾Ð»Ð¶Ð¸Ñ‚ÑŒ Ð²ÑÐµ Ñ€Ð°Ð²Ð½Ð¾?',
    'startService':u'Ð¡Ð»ÑƒÐ¶Ð±Ð° Ð·Ð°Ð¿ÑƒÑÐºÐ°ÐµÑ‚ÑÑ...',
    'startServiceErr':u'ÐÐµ ÑƒÐ´Ð°Ð»Ð¾ÑÑŒ Ð·Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚ÑŒ ÑÐ»ÑƒÐ¶Ð±Ñƒ.',
    'termsAndConditions':u'Ð£ÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ',
    'titleInstall':u'DWAgent - Ð£ÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ°',
    'titleUninstall':u'DWAgent - Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ',
    'toBack':u'Ð½Ð°Ð·Ð°Ð´.',
    'toExit':u'Ð²Ñ‹Ñ…Ð¾Ð´.',
    'unattendedAccess':u'ÐÐµÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¹\nÐ´Ð¾ÑÑ‚ÑƒÐ¿',
    'unexpectedError':u'ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°.\n{0}',
    'uninstallMonitor':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð¸Ð½Ð³Ð°...',
    'uninstallService':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ ÑÐ»ÑƒÐ¶Ð±Ñ‹...',
    'uninstallShortcuts':u'Ð£Ð´Ð°Ð»ÐµÐ½Ð¸Ðµ ÑÑ€Ð»Ñ‹ÐºÐ¾Ð²...',
    'unknownUser':u'ÐÐµÐ¸Ð·Ð²ÐµÑÑ‚Ð½Ñ‹Ð¹ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ',
    'user':u'ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ',
    'validInteger':u'ÐŸÐ¾Ð»Ðµ \'{0}\' Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ð±Ñ‹Ñ‚ÑŒ Ñ†ÐµÐ»Ñ‹Ð¼ Ñ‡Ð¸ÑÐ»Ð¾Ð¼.',
    'versionInstallNotValid':u'Ð’ÐµÑ€ÑÐ¸Ñ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ñ‰Ð¸ÐºÐ° Ð½Ðµ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ð¸Ñ‚ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑÐ¸ÑÑ‚ÐµÐ¼Ñ‹.\nÐ¡ÐºÐ°Ñ‡Ð°Ð¹Ñ‚Ðµ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½ÑƒÑŽ Ð²ÐµÑ€ÑÐ¸ÑŽ. {0}',
    'waiting':u'ÐžÐ¶Ð¸Ð´Ð°Ð½Ð¸Ðµ...',
    'warningLoginLogout':u'Ð§Ñ‚Ð¾Ð±Ñ‹ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ Ð²ÑÑ‚ÑƒÐ¿Ð¸Ð»Ð¾ Ð² ÑÐ¸Ð»Ñƒ, Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð²Ñ‹Ð¹Ñ‚Ð¸ Ð¸ ÑÐ½Ð¾Ð²Ð° Ð²Ð¾Ð¹Ñ‚Ð¸ Ð² ÑÐ¸ÑÑ‚ÐµÐ¼Ñƒ.',
    'warningRemovePath':u'ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ðµ: Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° ÑƒÐ¶Ðµ ÑÑƒÑ‰ÐµÑÑ‚Ð²ÑƒÐµÑ‚ Ð¸ Ð±ÑƒÐ´ÐµÑ‚ ÑƒÐ´Ð°Ð»ÐµÐ½Ð°.',
    'warningSpyingTool':u'Ð’Ð°Ð¶Ð½Ð¾! Ð’Ñ‹ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ‚Ðµ Ð¿Ñ€Ð°Ð²Ð° Ð¾ÑÑƒÑ‰ÐµÑÑ‚Ð²Ð»ÑÑ‚ÑŒ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ðº ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ñƒ Ð±ÐµÐ· ÑÐ¾Ð³Ð»Ð°ÑÐ¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. Ð˜ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ DWService Ð² Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð¾Ð¿Ñ€Ð°Ð²Ð½Ñ‹Ñ… Ñ†ÐµÐ»ÑÑ…, Ð²Ñ‹ Ð½Ð°Ñ€ÑƒÑˆÐ°ÐµÑ‚Ðµ ÑƒÐ³Ð¾Ð»Ð¾Ð²Ð½Ñ‹Ð¹ Ð·Ð°ÐºÐ¾Ð½.',
    'welcomeLicense':u'Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ\nÐ­Ñ‚Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ðµ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ðµ ÑÐ²Ð»ÑÐµÑ‚ÑÑ Ð±ÐµÑÐ¿Ð»Ð°Ñ‚Ð½Ñ‹Ð¼ Ð¸ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ (open source).\nÐžÐ½Ð¾ ÑÐ¾ÑÑ‚Ð¾Ð¸Ñ‚ Ð¸Ð· Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ð¾ÑÐ½Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° Ð¸ Ð½ÐµÑÐºÐ¾Ð»ÑŒÐºÐ¸Ñ… Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð¾Ð², ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ Ð¼Ð¾Ð³ÑƒÑ‚ Ñ€ÐµÐ³ÑƒÐ»Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒÑÑ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸ÑÐ¼Ð¸. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ Ð¿Ð¾ÑÐµÑ‚Ð¸Ñ‚Ðµ: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Ð£ÑÑ‚Ð°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ Ð¸Ð»Ð¸ Ð·Ð°Ð¿ÑƒÑÐºÐ°Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¹ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ñ‹Ð¹ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚, Ð²Ñ‹ ÑÐ¾Ð³Ð»Ð°ÑˆÐ°ÐµÑ‚ÐµÑÑŒ Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ¾Ð¹ Ð² Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¸ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ Ð¿ÐµÑ€ÑÐ¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… Ð´Ð°Ð½Ð½Ñ‹Ñ… (#PRIVACYPOLICY) Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑÐºÐ¸Ð¼ ÑÐ¾Ð³Ð»Ð°ÑˆÐµÐ½Ð¸ÐµÐ¼ (#TERMSANDCONDITIONS).',
    'welcomeSecurity':u'Ð‘ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚ÑŒ\nÐ”Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ Ð²Ð°ÑˆÐµÐ¹ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚Ð¸ Ð¼Ñ‹ Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€ÑƒÐµÐ¼, Ñ‡Ñ‚Ð¾ Ð½Ð¸ÐºÐ°ÐºÐ°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ Ð±ÑƒÐ´ÐµÑ‚ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒÑÑ Ð½Ð° Ð½Ð°ÑˆÐ¸Ñ… ÑÐµÑ€Ð²ÐµÑ€Ð°Ñ…, ÑÐµÑ‚ÐµÐ²Ñ‹Ðµ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ñ‹, Ñ‚Ð°Ðº Ñ‡Ñ‚Ð¾ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¸ Ð»Ð¸Ñ†Ð° Ð½Ðµ Ð¼Ð¾Ð³ÑƒÑ‚ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ð¸Ñ… Ð² Ð»ÑŽÐ±Ð¾Ð¼ ÑÐ»ÑƒÑ‡Ð°Ðµ.',
    'welcomeSoftwareUpdates':u'ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ\nÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¾ÑÑƒÑ‰ÐµÑÑ‚Ð²Ð»ÑÑŽÑ‚ÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑÐºÐ¸.',
    'welcomeTermsAndConditions':u'Ð’Ñ‹Ð±Ñ€Ð°Ð² Ð¾Ð¿Ñ†Ð¸ÑŽ \'{0}\' Ð¸Ð»Ð¸ \'{1}\', Ñ Ð¿Ñ€Ð¸Ð½Ð¸Ð¼Ð°ÑŽ ÑƒÑÐ»Ð¾Ð²Ð¸Ñ #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'ÐÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ Ð¸Ð¼ÐµÑ‚ÑŒ Ð¿Ñ€Ð°Ð²Ð° Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð° Ð´Ð»Ñ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²ÐºÐ¸ DWAgent.\nÐ—Ð°Ð¿ÑƒÑÑ‚Ð¸Ñ‚Ðµ Ð¸ÑÐ¿Ð¾Ð»Ð½ÑÐµÐ¼Ñ‹Ð¹ Ð¾Ñ‚ Ð¸Ð¼ÐµÐ½Ð¸ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.',
    'yes':u'Ð”Ð°'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ui/messages/es.py                                                                                   0000644 0001750 0001750 00000031073 14647167542 013575  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Aceptar',
    'accessConfirm':u'Me gustarÃ­a acceder a su dispositivo.',
    'agentName':u'Nombre del agente',
    'alreadyInstalled':u'DWAgente ya instalado.\n\nEl agente se actualiza automÃ¡ticamente a la Ãºltima versiÃ³n. Esto significa que no es necesario instalar manualmente las actualizaciones mÃ¡s recientes.',
    'back':u'Volver',
    'cancel':u'Cancelar',
    'cancelInstall':u'La instalaciÃ³n ha sido cancelada.',
    'cancelUninstall':u'La desinstalaciÃ³n ha sido cancelada.',
    'checkInstallCode':u'Verificando cÃ³digo de instalaciÃ³n...',
    'chooseProxyType':u'Â¿QuÃ© tipo de proxy desea usar?',
    'close':u'Cerrar',
    'code':u'CÃ³digo',
    'commands':u'Comandos',
    'configureAgent':u'Configurar agente',
    'configureAgentDisabled':u'Agente deshabilitado.',
    'configureAgentEnabled':u'Agente habilitado.',
    'configureChangeInstallKey':u'Cambiar el cÃ³digo de instalaciÃ³n',
    'configureChooseMonitorTrayIconVisibility':u'Â¿Mostrar icono de la aplicaciÃ³n en la bandeja de iconos?',
    'configureChooseOperation':u'Por favor, elija una operaciÃ³n:',
    'configureDesktopNotification':u'NotificaciÃ³n de escritorio',
    'configureDesktopNotificationOK':u'NotificaciÃ³n de escritorio configurada correctamente.',
    'configureDisableAgent':u'Deshabilitar agente',
    'configureDisableAgentQuestion':u'Â¿Desea deshabilitar el agente?',
    'configureEnableAgent':u'Habilitar el agente',
    'configureEnableAgentQuestion':u'Â¿Desea activar el agente?',
    'configureEnd':u'La configuraciÃ³n ha sido completada',
    'configureErrorConnection':u'Error de conexiÃ³n. Compruebe que el servicio DWAgent estÃ© iniciado.',
    'configureExit':u'Salir',
    'configureInsertPassword':u'Por favor introduzca la contraseÃ±a:',
    'configureInstallAgent':u'Â¿CÃ³mo prefiere configurar el agente?',
    'configureInstallCode':u'Ingrese el cÃ³digo de instalaciÃ³n',
    'configureInstallNewAgent':u'Crear un nuevo agente',
    'configureInstallPassword':u'ContraseÃ±a de instalaciÃ³n',
    'configureInstallUser':u'Usuario',
    'configureInvalidPassword':u'ContraseÃ±a invÃ¡lida.',
    'configureKeyInstalled':u'Clave instalada correctamente.',
    'configureLater':u'Configurar despuÃ©s',
    'configureMonitor':u'Configurar monitor',
    'configurePassword':u'Configurar contraseÃ±a',
    'configurePasswordErrNoMatch':u'Las contraseÃ±as no coinciden.',
    'configurePasswordUpdated':u'ContraseÃ±a actualizada.',
    'configureProxy':u'Configurar proxy',
    'configureProxyEnd':u'Proxy configurado correctamente.',
    'configureRemovePassword':u'Eliminar contraseÃ±a',
    'configureRemovePasswordQuestion':u'Â¿Desea eliminar la contraseÃ±a?',
    'configureSetPassword':u'Establecer contraseÃ±a',
    'configureTitle':u'ConfiguraciÃ³n DWAgent',
    'configureTrayIconOK':u'Visibilidad del icono en la bandeja configurada correctamente.',
    'configureTrayIconVisibility':u'Visibilidad del icono en la bandeja de sistema',
    'configureUninstallKeyQuestion':u'Â¿Desinstalar el cÃ³digo de instalaciÃ³n actual?',
    'configureUninstallationKey':u'DesintalaciÃ³n...',
    'confirmExit':u'Â¿Seguro que desea salir?',
    'confirmInstall':u'Â¿Desea instalar DWAgent en \'{0}\'?',
    'confirmUninstall':u'Â¿Desea eliminar DWAgent?',
    'copyFiles':u'Copiando archivos...',
    'createNewAgent':u'CreaciÃ³n del agente en progreso...',
    'decline':u'No acepto',
    'desktopNotificationAutoHide':u'Ocultar automÃ¡ticamente',
    'desktopNotificationNone':u'Ninguna/o',
    'desktopNotificationVisible':u'Visible',
    'downloadFile':u'Descargando archivo {0}...',
    'endInstall':u'La instalaciÃ³n ha sido completada.',
    'endInstallConfigLater':u'La instalaciÃ³n se ha completado.\nEl agente no ha sido configurado. Puede proceder con la configuraciÃ³n despuÃ©s.',
    'endUninstall':u'Las desinstalaciÃ³n ha sido completada.',
    'enter':u'ingresar',
    'enterInstallCode':u'Ingresar el cÃ³digo de instalaciÃ³n',
    'enterInstallNewAgent':u'Ingresar datos para crear un nuevo agente:',
    'enterRunCode':u'Introduce el cÃ³digo de conexiÃ³n',
    'error':u'Error',
    'errorAgentAlreadyExsists':u'El agente {0} ya existe.',
    'errorAgentMax':u'Se ha sobrepasado el nÃºmero mÃ¡ximo de agentes.',
    'errorAgentNameNotValid':u'El nombre de agente es invÃ¡lido. No puede usar los caracteres / \\ | # @ : .',
    'errorConnectionConfig':u'Error en la conexiÃ³n. Comprueba que el servicio DWAgent estÃ© iniciado.',
    'errorConnectionQuestion':u'Error de conexiÃ³n. Compruebe su conexiÃ³n a internet o la configuraciÃ³n de su cortafuegos.\nÂ¿Desea configurar un proxy?',
    'errorInvalidCode':u'El cÃ³digo introducido es invÃ¡lido.',
    'errorInvalidUserPassword':u'Usuario invÃ¡lido o contraseÃ±a incorrecta',
    'fieldRequired':u'Se requiere el campo \'{0}\'',
    'install':u'Instalar',
    'installMonitor':u'Instalando monitor...',
    'installMonitorErr':u'FallÃ³ la instalaciÃ³n del monitor',
    'installService':u'Instalando servicio...',
    'installServiceErr':u'FallÃ³ la instalaciÃ³n del servicio...',
    'installShortcuts':u'Creando accesos directos...',
    'installShortcutsErr':u'FallÃ³ la instalaciÃ³n de los accesos directos.',
    'installerNotSupported':u'Este instalador ya no es compatible. Descargue la Ãºltima versiÃ³n.',
    'ipAddress':u'DirecciÃ³n IP: {0}',
    'linuxRootPrivileges':u'Debe tener privilegios de administrador para instalar DWAgent.\nPor favor inicie el script usando un usuario administrador.',
    'menuConfigure':u'Configurar',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Desinstalar',
    'missingInfoFile':u'No se encuentra el archivo info.json.',
    'missingNative':u'Nativo no encontrado.',
    'missingRuntime':u'Tiempo de ejecuciÃ³n no encontrado.',
    'monitorActive':u'activa/o',
    'monitorAgentDisabled':u'Agente deshabilitado.',
    'monitorAgentEnabled':u'Agente habilitado.',
    'monitorConfigure':u'Configurar',
    'monitorConnections':u'Conexiones',
    'monitorCurrentActivities':u'Actividades actuales',
    'monitorDisable':u'Deshabilitar',
    'monitorDisableAgentQuestion':u'Â¿Deshabilitar el agente?',
    'monitorDownload':u'Descargar',
    'monitorEnable':u'Habilitar',
    'monitorEnableAgentQuestion':u'Â¿Habilitar el agente?',
    'monitorEnterPassword':u'Ingresar contraseÃ±a:',
    'monitorErrorConnectionConfig':u'Error en la conexiÃ³n. Por favor compruebe que el servicio DWAgent estÃ© iniciado.',
    'monitorHide':u'Ocultar',
    'monitorInvalidPassword':u'ContraseÃ±a invÃ¡lida.',
    'monitorNoActivities':u'Sin actividades',
    'monitorScreenCapture':u'Acceso a la pantalla',
    'monitorSession':u'SesiÃ³n',
    'monitorShellSession':u'Acceso a Shell',
    'monitorShow':u'Mostrar',
    'monitorStatus':u'Estado',
    'monitorStatusDisabled':u'Deshabilitado',
    'monitorStatusNoService':u'Sin servicio',
    'monitorStatusOffline':u'Fuera de lÃ­nea',
    'monitorStatusOnline':u'En lÃ­nea',
    'monitorStatusUpdating':u'Actualizando',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Desinstalar',
    'monitorUninstallNotRun':u'No se puede desinstalar sin permisos de administrador.\nEjecute el comando dwaguninstall desde la lÃ­nea de comandos.',
    'monitorUpload':u'Subir',
    'mustAccept':u'Para continuar, debe seleccionar la opciÃ³n {0}',
    'mustSelectOptions':u'Debe seleccionar una opciÃ³n.',
    'next':u'Siguiente',
    'no':u'No',
    'noTryAgain':u'No, intentar de nuevo',
    'notInstalled':u'No se ha instalado DWAgent.',
    'ok':u'Ok',
    'option':u'OpciÃ³n',
    'optionNotValid':u'La opciÃ³n seleccionada es invÃ¡lida.',
    'or':u'o',
    'password':u'ContraseÃ±a',
    'path':u'Ruta',
    'pathCreating':u'Crear carpeta...',
    'pathNotCreate':u'No se pudo crear la carpeta. Ruta incorrecta o permiso denegado.',
    'pressEnter':u'Presione Enter para continuar.',
    'privacyPolicy':u'PolÃ­tica de privacidad',
    'proxyAuthPassword':u'ContraseÃ±a',
    'proxyAuthUser':u'Usuario',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Ingrese informaciÃ³n del proxy.',
    'proxyNone':u'Ninguno',
    'proxyPort':u'Puerto',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistema',
    'reEnterCode':u'Reingrese el cÃ³digo',
    'reEnterData':u'Reingrese los datos',
    'rePassword':u'Reescriba la contraseÃ±a',
    'reject':u'Rechazar',
    'removeFile':u'Borrando archivo...',
    'runWithoutInstallation':u'Ejecutar',
    'runWithoutInstallationClosing':u'Cerrando sesiÃ³n...',
    'runWithoutInstallationConnecting':u'Abriendo sesiÃ³n...',
    'runWithoutInstallationEnd':u'SesiÃ³n finalizada.',
    'runWithoutInstallationOnlineBottom':u'ADVERTENCIA:\nNo revelar esta informaciÃ³n a personas que no son de confianza, de otro modo, les permitirÃ¡ acceder a este agente. Por lo tanto, si no estÃ¡ seguro de lo que estÃ¡ haciendo, cierre esta aplicaciÃ³n.',
    'runWithoutInstallationOnlineBottomPutCode':u'ADVERTENCIA:\nAhora el agente estÃ¡ listo para aceptar la conexiÃ³n. Si no estÃ¡ seguro de lo que estÃ¡ haciendo, cierre esta aplicaciÃ³n.',
    'runWithoutInstallationOnlinePassword':u'ContraseÃ±a: {0}',
    'runWithoutInstallationOnlineTop':u'La sesiÃ³n estÃ¡ activa.\nPara conectarse a este agente, vaya a https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'La sesiÃ³n estÃ¡ activa',
    'runWithoutInstallationOnlineUser':u'User: {0}',
    'runWithoutInstallationStarting':u'Iniciando agente...',
    'runWithoutInstallationUnexpectedError':u'Error inesperado.\nNo se pudo iniciar DWAgent. Si el problema persiste, intenta descargar la ultima versiÃ³n de DWAgent, elimine la carpeta \'{0}\' y ejecute DWAgent de nuevo.',
    'runWithoutInstallationUpdating':u'Actualizar Agente...',
    'runWithoutInstallationWait':u'Esperando por una nueva conexiÃ³n en progreso (intento {0})...',
    'selectPathInstall':u'Seleccione la ruta de instalaciÃ³n:',
    'skipCertValidation':u'Advertencia: el certificado de seguridad no se puede validar, si continÃºa, es posible que la conexiÃ³n no sea segura.\nVerifique la configuraciÃ³n del enrutador/cortafuegos/antivirus de la red o local.\nÂ¿Acceder de todas maneras?',
    'startService':u'Iniciando servicio...',
    'startServiceErr':u'FallÃ³ iniciar el servicio.',
    'termsAndConditions':u'TÃ©rminos y condiciones',
    'titleInstall':u'InstalaciÃ³n de DWAgent',
    'titleUninstall':u'DesinstalaciÃ³n de DWAgent',
    'toBack':u'volver.',
    'toExit':u'salir.',
    'unattendedAccess':u'Acceso\ndesantendido',
    'unexpectedError':u'Error inesperado.\n{0}',
    'uninstallMonitor':u'Desinstalando monitor...',
    'uninstallService':u'Desinstalando servicio...',
    'uninstallShortcuts':u'Eliminando accesos directos',
    'unknownUser':u'Usuario desconocido',
    'user':u'Usuario',
    'validInteger':u'El campo \'{0}\' debe ser un entero.',
    'versionInstallNotValid':u'La versiÃ³n del instalador no corresponde con su sistema operativo.\nDescargue la versiÃ³n correcta. {0}',
    'waiting':u'Esperando...',
    'warningLoginLogout':u'Para que este cambio surta efecto, el usuario debe cerrar la sesiÃ³n y volver a iniciar sesiÃ³n.',
    'warningRemovePath':u'Advertencia: la carpeta de destino ya existe y serÃ¡ eliminada.',
    'warningSpyingTool':u'Tenga en cuenta que no puede acceder a una computadora remota sin el consentimiento de su usuario. Al utilizar DWService como herramienta de espionaje, puede estar infringiendo las leyes de su paÃ­s de residencia.',
    'welcomeLicense':u'Licencia\nEste software es gratuito y de cÃ³digo abierto.\nestÃ¡ constituido de un componente principal y varios componentes accesorios llamados "app" que podrÃ­an regirse por diferentes licencias. Para obtener mÃ¡s informaciÃ³n, visite: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Al continuar con la instalaciÃ³n o ejecutar este software, usted acepta los #TERMSANDCONDITIONS y la #PRIVACYPOLICY',
    'welcomeSecurity':u'Seguridad\nPara proteger su privacidad garantizamos que no se almacenarÃ¡ informaciÃ³n en nuestros servidores y las comunicaciones se cifrarÃ¡n para que terceros no puedan leerlas de ningÃºn modo.',
    'welcomeSoftwareUpdates':u'Actualizaciones\nLas actualizaciones de este software son automÃ¡ticas.',
    'welcomeTermsAndConditions':u'Al seleccionar la opciÃ³n \'{0}\' o \'{1}\' acepto los #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Desbe tener privilegios de administrador para instalar DWAgent.\nPor favor inicie el instalador con \'Ejecutar como Administrador\'.',
    'yes':u'Si'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ui/messages/fr.py                                                                                   0000644 0001750 0001750 00000032133 14630344552 013561  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'J\'accepte',
    'accessConfirm':u'Souhaite accÃ©der Ã  votre appareil.',
    'agentName':u'Nom de l\'agent',
    'alreadyInstalled':u'DWAgent est dÃ©jÃ  installÃ©.\n\nL\'agent est automatiquement mis Ã  jour vers la derniÃ¨re version. Cela signifie que vous n\'avez pas besoin d\'installer manuellement les nouvelles mises Ã  jour.',
    'back':u'Retour',
    'cancel':u'Annuler',
    'cancelInstall':u'L\'installation a Ã©tÃ© annulÃ©e.',
    'cancelUninstall':u'La dÃ©sinstallation a Ã©tÃ© annulÃ©e.',
    'checkInstallCode':u'VÃ©rification du code d\'installation...',
    'chooseProxyType':u'Quel type de proxy utilisez-vous ?',
    'close':u'Fermer',
    'code':u'Code',
    'commands':u'Commandes',
    'configureAgent':u'Configurer l\'agent',
    'configureAgentDisabled':u'Agent dÃ©sactivÃ©.',
    'configureAgentEnabled':u'Agent activÃ©.',
    'configureChangeInstallKey':u'Changer le code d\'installation',
    'configureChooseMonitorTrayIconVisibility':u'Voulez-vous afficher l\'icÃ´ne du moniteur dans la barre des tÃ¢ches ?',
    'configureChooseOperation':u'Veuillez choisir une opÃ©ration :',
    'configureDesktopNotification':u'Notification sur le bureau',
    'configureDesktopNotificationOK':u'Notification configurÃ©e avec succÃ¨s.',
    'configureDisableAgent':u'DÃ©sactiver l\'agent',
    'configureDisableAgentQuestion':u'Voulez-vous dÃ©sactiver l\'agent ?',
    'configureEnableAgent':u'Activer l\'agent',
    'configureEnableAgentQuestion':u'Voulez-vous activer l\'agent ?',
    'configureEnd':u'La configuration est terminÃ©e.',
    'configureErrorConnection':u'Erreur de connexion. VÃ©rifiez que le service DWAgent est dÃ©marrÃ©.',
    'configureExit':u'Sortir',
    'configureInsertPassword':u'Veuillez taper le mot de passe de configuration :',
    'configureInstallAgent':u'Comment prÃ©fÃ©rez vous paramÃ©trer l\'agent ?',
    'configureInstallCode':u'Entrez le code d\'installation',
    'configureInstallNewAgent':u'CrÃ©er un nouvel agent',
    'configureInstallPassword':u'Mot de passe d\'installation',
    'configureInstallUser':u'Utilisateur',
    'configureInvalidPassword':u'Mot de passe invalide.',
    'configureKeyInstalled':u'La clÃ© a Ã©tÃ© installÃ©e correctement.',
    'configureLater':u'Configurer plus tard',
    'configureMonitor':u'Configurer le moniteur',
    'configurePassword':u'Configurer le mot de passe',
    'configurePasswordErrNoMatch':u'Les mots de passe ne correspondent pas.',
    'configurePasswordUpdated':u'Mot de passe mis Ã  jour.',
    'configureProxy':u'Configurer le mandataire (proxy)',
    'configureProxyEnd':u'Configuration du mandataire (proxy) rÃ©ussie.',
    'configureRemovePassword':u'Supprimer le mot de passe',
    'configureRemovePasswordQuestion':u'Voulez-vous supprimer le mot de passe ?',
    'configureSetPassword':u'DÃ©finir le mot de passe',
    'configureTitle':u'DWAgent - Configuration',
    'configureTrayIconOK':u'La visibilitÃ© de l\'icÃ´ne dans la barre des tÃ¢ches a Ã©tÃ© configurÃ©e avec succÃ¨s.',
    'configureTrayIconVisibility':u'VisibilitÃ© de l\'icÃ´ne dans la barre des tÃ¢ches',
    'configureUninstallKeyQuestion':u'DÃ©sinstaller le code actuel ?',
    'configureUninstallationKey':u'DÃ©sinstallation...',
    'confirmExit':u'ÃŠtes-vous sÃ»r de vouloir quitter ?',
    'confirmInstall':u'Voulez-vous installer DWAgent dans \'{0}\' ?',
    'confirmUninstall':u'Voulez-vous supprimer DWAgent ?',
    'copyFiles':u'Copie des fichiers ...',
    'createNewAgent':u'CrÃ©ation de l\'agent en cours...',
    'decline':u'Je refuse',
    'desktopNotificationAutoHide':u'Masquer automatiquement',
    'desktopNotificationNone':u'Aucune',
    'desktopNotificationVisible':u'Visible',
    'downloadFile':u'TÃ©lÃ©chargement du fichier {0}...',
    'endInstall':u'L\'installation est terminÃ©e.',
    'endInstallConfigLater':u'L\'installation est terminÃ©e.\nL\'agent n\'a pas Ã©tÃ© configurÃ©. Vous pouvez toujours effectuer la configuration plus tard.',
    'endUninstall':u'La dÃ©sinstallation est terminÃ©e.',
    'enter':u'entrer',
    'enterInstallCode':u'Saisissez le code d\'installation',
    'enterInstallNewAgent':u'Saisissez les donnÃ©es pour crÃ©er un nouvel agent :',
    'enterRunCode':u'Entrez le code de connexion',
    'error':u'Erreur',
    'errorAgentAlreadyExsists':u'L\'agent {0} existe dÃ©jÃ .',
    'errorAgentMax':u'Le nombre maximum d\'agents est atteint.',
    'errorAgentNameNotValid':u'Le nom de l\'agent n\'est pas valide. Vous ne pouvez pas utiliser les caractÃ¨res / \\ | # @ : .',
    'errorConnectionConfig':u'Erreur de connexion. Veuillez vÃ©rifier que le service DWAgent est dÃ©marrÃ©.',
    'errorConnectionQuestion':u'Erreur de connexion. Veuillez vÃ©rifier votre connexion internet ou la configuration de votre pare-feu.\nVoulez-vous configurer un serveur mandataire (proxy) ?',
    'errorInvalidCode':u'Le code saisi est incorrect.',
    'errorInvalidUserPassword':u'Nom d\'utilisateur ou mot de passe incorrect.',
    'fieldRequired':u'Le champ \'{0}\' est obligatoire.',
    'install':u'Installer',
    'installMonitor':u'Installation du moniteur...',
    'installMonitorErr':u'L\'installation du moniteur a Ã©chouÃ©.',
    'installService':u'Installation du service...',
    'installServiceErr':u'L\'installation du service a Ã©chouÃ©.',
    'installShortcuts':u'Installation des raccourcis...',
    'installShortcutsErr':u'L\'installation des raccourcis a Ã©chouÃ©.',
    'installerNotSupported':u'Ce programme d\'installation n\'est plus pris en charge. Veuillez tÃ©lÃ©charger la derniÃ¨re version.',
    'ipAddress':u'Adresse IP : {0}',
    'linuxRootPrivileges':u'Vous devez avoir les droits administrateur pour installer DWAgent.\nVeuillez dÃ©marrer le script en tant qu\'administrateur.',
    'menuConfigure':u'Configurer',
    'menuMonitor':u'Moniteur',
    'menuUninstall':u'DÃ©sinstaller',
    'missingInfoFile':u'Le fichier info.json est introuvable.',
    'missingNative':u'Natif introuvable.',
    'missingRuntime':u'Runtime introuvable.',
    'monitorActive':u'actif',
    'monitorAgentDisabled':u'Agent dÃ©sactivÃ©',
    'monitorAgentEnabled':u'Agent activÃ©',
    'monitorConfigure':u'Configurer',
    'monitorConnections':u'Connexions',
    'monitorCurrentActivities':u'ActivitÃ©s actuelles',
    'monitorDisable':u'DÃ©sactiver',
    'monitorDisableAgentQuestion':u'Voulez vous dÃ©sactiver l\'agent ?',
    'monitorDownload':u'TÃ©lÃ©chargement',
    'monitorEnable':u'Activer',
    'monitorEnableAgentQuestion':u'Voulez vous activer l\'agent ?',
    'monitorEnterPassword':u'Entrez le mot de passe :',
    'monitorErrorConnectionConfig':u'Erreur de connexion. Veuillez vÃ©rifier que le service DWAgent est dÃ©marrÃ©.',
    'monitorHide':u'Cacher',
    'monitorInvalidPassword':u'Mot de passe invalide',
    'monitorNoActivities':u'Aucune activitÃ©',
    'monitorScreenCapture':u'Capture d\'Ã©cran',
    'monitorSession':u'Session',
    'monitorShellSession':u'Interface systÃ¨me',
    'monitorShow':u'Afficher',
    'monitorStatus':u'Ã‰tat',
    'monitorStatusDisabled':u'DÃ©sactivÃ©',
    'monitorStatusNoService':u'Aucun service',
    'monitorStatusOffline':u'Non connectÃ©',
    'monitorStatusOnline':u'En ligne',
    'monitorStatusUpdating':u'Mise Ã  jour',
    'monitorTitle':u'DWAgent - Moniteur',
    'monitorUninstall':u'DÃ©sinstaller',
    'monitorUninstallNotRun':u'Vous ne pouvez pas dÃ©sinstaller sans les droits administrateur.\nexecuter la commande dwaguninstall dans l\'invite de commande.',
    'monitorUpload':u'Envoi',
    'mustAccept':u'Pour continuer, vous devez sÃ©lectionner l\'option {0}',
    'mustSelectOptions':u'Vous devez choisir une option',
    'next':u'Suivant',
    'no':u'Non',
    'noTryAgain':u'Non, essayez encore',
    'notInstalled':u'DWAgent n\'est pas installÃ©.',
    'ok':u'Ok',
    'option':u'Option',
    'optionNotValid':u'L\'option sÃ©lectionnÃ©e est invalide.',
    'or':u'ou',
    'password':u'Mot de passe',
    'path':u'Chemin',
    'pathCreating':u'CrÃ©ation du dossier...',
    'pathNotCreate':u'Impossible de crÃ©er le dossier. Chemin invalide ou permission refusÃ©e.',
    'pressEnter':u'Appuyez sur EntrÃ©e pour continuer',
    'privacyPolicy':u'Politique de confidentialitÃ©',
    'proxyAuthPassword':u'Mot de passe',
    'proxyAuthUser':u'Utilisateur',
    'proxyHost':u'HÃ´te',
    'proxyHttp':u'http',
    'proxyInfo':u'InsÃ©rez les informations du serveur mandataire (proxy)',
    'proxyNone':u'Aucun',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'SystÃ¨me',
    'reEnterCode':u'Veuillez rÃ©-entrer le code',
    'reEnterData':u'Veuillez rÃ©-entrer les donnÃ©es',
    'rePassword':u'Veuillez retaper le mot de passe',
    'reject':u'RefusÃ©',
    'removeFile':u'Suppression du fichier...',
    'runWithoutInstallation':u'ExÃ©cuter',
    'runWithoutInstallationClosing':u'Fermeture de session...',
    'runWithoutInstallationConnecting':u'Ouverture de session...',
    'runWithoutInstallationEnd':u'Session terminÃ©e.',
    'runWithoutInstallationOnlineBottom':u'ATTENTION :\nNe divulguez pas ces informations Ã  des personnes qui ne sont pas dignes de confiance. Si vous n\'Ãªtes pas sÃ»r de ce que vous faites, fermez cette application.',
    'runWithoutInstallationOnlineBottomPutCode':u'ATTENTION  :\nL\'agent est maintenant prÃªt pour accepter les connexions. Si vous n\'Ãªtes pas sÃ»r de ce que vous faites, merci de fermer cette application.',
    'runWithoutInstallationOnlinePassword':u'Mot de passe : {0}',
    'runWithoutInstallationOnlineTop':u'La session est active.\nPour connecter cet agent, rendez-vous sur le site https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'La session est active.',
    'runWithoutInstallationOnlineUser':u'Utilisateur : {0}',
    'runWithoutInstallationStarting':u'DÃ©marrage de l\'agent...',
    'runWithoutInstallationUnexpectedError':u'Erreur inattendue.\nImpossible de dÃ©marrer DWAgent. Si le problÃ¨me persiste, essayez de tÃ©lÃ©charger la derniÃ¨re version de DWAgent, effacez le dossier \'{0}\' et relancez Ã  nouveau l\'installation.',
    'runWithoutInstallationUpdating':u'Mise Ã  jour de l\'agent...',
    'runWithoutInstallationWait':u'Attente d\'une nouvelle connexion en cours (attempt {0})...',
    'selectPathInstall':u'Choisissez le chemin d\'installation :',
    'skipCertValidation':u'Attention : Le certificat de sÃ©curitÃ© ne peut pas Ãªtre validÃ©, si vous continuez la connexion risque de ne pas Ãªtre sÃ©curisÃ©e.\nVeuillez vÃ©rifier la configuration du routeur/pare-feu/antivirus du rÃ©seau ou local.\nContinuer malgrÃ© tout ?',
    'startService':u'DÃ©marrage du service...',
    'startServiceErr':u'Ã‰chec de dÃ©marrage du service.',
    'termsAndConditions':u'Termes et conditions',
    'titleInstall':u'DWAgent - Installation',
    'titleUninstall':u'DWAgent - DÃ©sinstallation',
    'toBack':u'Retour',
    'toExit':u'Sortir',
    'unattendedAccess':u'AccÃ¨s sans\nsurveillance',
    'unexpectedError':u'Erreur innatendue.\n{0}',
    'uninstallMonitor':u'DÃ©sinstallation du moniteur...',
    'uninstallService':u'DÃ©sinstallation du service...',
    'uninstallShortcuts':u'DÃ©sinstallation des raccourcis...',
    'unknownUser':u'Utilisateur inconnu',
    'user':u'Utilisateur',
    'validInteger':u'Le champ \'{0}\' doit Ãªtre un entier.',
    'versionInstallNotValid':u'La version de l\'installeur n\'est pas compatible avec votre systÃ¨me d\'exploitation.\nVeuillez tÃ©lÃ©charger la bonne version. {0}',
    'waiting':u'Patientez...',
    'warningLoginLogout':u'Pour que cette modification prenne effet, l\'utilisateur doit se dÃ©connecter et se reconnecter.',
    'warningRemovePath':u'Attention, le dossier de destination existe dÃ©jÃ , il sera supprimÃ©.',
    'warningSpyingTool':u'Veuillez noter que vous ne pouvez pas accÃ©der Ã  un ordinateur distant sans le consentement de son utilisateur. En utilisant DWService comme outil d\'espionnage, vous enfreignez peut-Ãªtre les lois de votre pays de rÃ©sidence',
    'welcomeLicense':u'Licence\nCe logiciel est libre (gratuit) et open source.\nIl est constituÃ© d\'un composant principal et de plusieurs composants accessoires "app" dÃ©finis qui pourraient Ãªtre sous licences diffÃ©rentes. Pour plus d\'informations visitez: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'En poursuivant l\'installation ou en exÃ©cutant ce logiciel, vous acceptez les #TERMSANDCONDITIONS et la #PRIVACYPOLICY',
    'welcomeSecurity':u'SÃ©curitÃ©\nPour protÃ©ger votre vie privÃ©e, nous garantissons qu\'aucune informations ne sera stockÃ©e sur nos serveurs et que les communications sont chiffrÃ©es afin que de tierces parties ne puissent y accÃ©der.',
    'welcomeSoftwareUpdates':u'Mises Ã  jour logiciel\nLes mises Ã  jour de ce logiciel sont automatiques.',
    'welcomeTermsAndConditions':u'En sÃ©lectionnant l\'option \'{0}\' ou \'{1}\', j\'accepte les #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Vous devez avoir les droits administrateur pour installer DWAgent.\nVeuillez dÃ©marrer l\'exÃ©cutable avec \'exÃ©cuter en tant qu\'administrateur\'.',
    'yes':u'Oui'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                     ui/messages/iw.py                                                                                   0000644 0001750 0001750 00000033304 14760032320 013561  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'×× ×™ ×ž×¡×›×™×',
    'accessConfirm':u'×¨×•×¦×” ×œ×’×©×ª ×œ×ž×›×©×™×¨ ×©×œ×š.',
    'agentName':u'×©× ×¡×•×›×Ÿ',
    'alreadyInstalled':u'DWAgent ×›×‘×¨ ×ž×•×ª×§×Ÿ\n\n×”×¡×•×›×Ÿ ×ž×ª×¢×“×›×Ÿ ××•×˜×•×ž×˜×™×ª ×œ×’×¨×¡×” ×”××—×¨×•× ×”. ×–×” ××•×ž×¨ ×©×œ× ×¦×¨×™×š ×œ×”×ª×§×™×Ÿ ×™×“× ×™×ª ×¢×“×›×•× ×™× ×—×“×©×™× ×™×•×ª×¨.',
    'back':u'×—×–×¨×”',
    'cancel':u'×‘×™×˜×•×œ',
    'cancelInstall':u'×”×”×ª×§× ×” ×‘×•×˜×œ×”',
    'cancelUninstall':u'×”×¡×¨×ª ×”×”×ª×§× ×” ×‘×•×˜×œ×”',
    'checkInstallCode':u'×‘×•×“×§ ×”×’×“×¨×•×ª ×”×ª×§× ×”...',
    'chooseProxyType':u'×‘××™×–×” ×¡×•×’ ×¤×¨×•×§×¡×™ ×ª×¨×¦×” ×œ×”×©×ª×ž×©',
    'close':u'×¡×’×™×¨×”',
    'code':u'×§×•×“',
    'commands':u'×”×•×¨××•×ª',
    'configureAgent':u'×”×’×“×¨×ª ×”×ª×—× ×”',
    'configureAgentDisabled':u'×¡×•×›×Ÿ ×ž×‘×•×˜×œ',
    'configureAgentEnabled':u'×¡×•×›×Ÿ ×¤×¢×™×œ',
    'configureChangeInstallKey':u'×©× ×” ×”×’×“×¨×•×ª ×”×ª×§× ×”',
    'configureChooseMonitorTrayIconVisibility':u'×”×× ×œ×”×¦×™×’ ××™×§×•×Ÿ ×¡×•×›×Ÿ ×‘×©×•×¨×ª ×”×ž×©×™×ž×•×ª?',
    'configureChooseOperation':u'× × ×œ×‘×—×•×¨ ××ª ×”×¤×¢×•×œ×” ×”×¨×¦×•×™×”:',
    'configureDesktopNotification':u'×”×ª×¨××” ×¢×œ ×©×•×œ×—×Ÿ ×”×¢×‘×•×“×”',
    'configureDesktopNotificationOK':u'×”×•×“×¢×ª ×©×•×œ×—×Ÿ ×”×¢×‘×•×“×” ×”×•×’×“×¨×” ×‘×”×¦×œ×—×”.',
    'configureDisableAgent':u'×‘×˜×œ ×¡×•×›×Ÿ',
    'configureDisableAgentQuestion':u'×”×× ××ª×” ×ž×¢×•× ×™×™×Ÿ ×œ×‘×˜×œ ××ª ×”×¡×•×›×Ÿ?',
    'configureEnableAgent':u'×”×¤×¢×œ ×¡×•×›×Ÿ',
    'configureEnableAgentQuestion':u'×”×× ×œ×”×¤×¢×™×œ ×¡×•×›×Ÿ',
    'configureEnd':u'×”×’×“×¨×ª ×”×¡×•×›×Ÿ ×”×¡×ª×™×™×ž×”.',
    'configureErrorConnection':u'×©×’×™××ª ×—×™×‘×•×¨. ×× × ×‘×“×•×§ ×× DWAgent ×”×•×¤×¢×œ.',
    'configureExit':u'×™×¦×™××”',
    'configureInsertPassword':u'×× × ×”×–×Ÿ ×¡×™×¡×ž×ª ×§×•× ×¤×™×’×•×¨×¦×™×”:',
    'configureInstallAgent':u'××™×š ××ª×” ×ž×¢×“×™×£ ×œ×”×’×“×™×¨ ××ª ×”×¡×•×›×Ÿ?',
    'configureInstallCode':u'×”×–× ×ª ×§×•×“ ×”×ª×§× ×”',
    'configureInstallNewAgent':u'×™×•×¦×¨ ×¡×•×›×Ÿ ×—×“×©',
    'configureInstallPassword':u'×¡×™×¡×ž× ×©×œ ×”×”×ª×§× ×”',
    'configureInstallUser':u'×ž×©×ª×ž×©',
    'configureInvalidPassword':u'×¡×™×¡×ž×” ×©×’×•×™×”.',
    'configureKeyInstalled':u'×ž×¤×ª×— ×”×•×ª×§×Ÿ ×‘×”×¦×œ×—×”.',
    'configureLater':u'×”×’×“×¨ ×ž××•×—×¨ ×™×•×ª×¨',
    'configureMonitor':u'×”×’×“×¨ ×ž×•× ×™×˜×•×¨',
    'configurePassword':u'×”×’×“×¨ ×¡×™×¡×ž×”',
    'configurePasswordErrNoMatch':u'×”×¡×™×¡×ž××•×ª ×œ× ×ž×ª××™×ž×•×ª.',
    'configurePasswordUpdated':u'×¡×™×¡×ž×” ×¢×•×“×›× ×”.',
    'configureProxy':u'×”×’×“×¨ ×¤×¨×•×§×¡×™',
    'configureProxyEnd':u'×¤×¨×•×§×¡×™ ×”×•×’×“×¨ ×‘×”×¦×œ×—×”.',
    'configureRemovePassword':u'×ž×—×§ ×¡×™×¡×ž×”',
    'configureRemovePasswordQuestion':u'×”×× ××ª×” ×ž×¢×•× ×™×™×Ÿ ×œ×ž×—×•×§ ××ª ×”×¡×™×¡×ž×”?',
    'configureSetPassword':u'×”×’×“×¨ ×¡×™×¡×ž×”',
    'configureTitle':u'DWAgent - ×§×•× ×¤×™×’×•×¨×¦×™×”',
    'configureTrayIconOK':u'××™×™×§×•×Ÿ ×©×•×¨×ª ×”×ž×©×™×ž×•×ª ×”×’×“×¨ ×‘×”×¦×œ×—×”',
    'configureTrayIconVisibility':u'× ×¨××•×ª ××™×™×§×•×Ÿ ×©×•×¨×ª ×”×ž×©×™×ž×•×ª',
    'configureUninstallKeyQuestion':u'×”×× ×œ×”×¡×™×¨ ××ª ×”×”×ª×§× ×” ×”× ×•×›×—×™×ª?',
    'configureUninstallationKey':u'×”×¡×¨×ª ×”×ª×§× ×”...',
    'confirmExit':u'×”×× ××ª×” ×ž×¢×•× ×™×™×Ÿ ×œ×¦××ª?',
    'confirmInstall':u'×”×× ××ª×  ×ž×¢×•× ×™×™×Ÿ ×œ×”×ª×§×™×Ÿ ××ª DWAgent ××œ \'{0}\'?',
    'confirmUninstall':u'×”×× ××ª×” ×ž×¢×•× ×™×™×Ÿ ×œ×”×¡×™×¨ ××ª DWAgent?',
    'copyFiles':u'×ž×¢×ª×™×§ ×§×‘×¦×™×...',
    'createNewAgent':u'×ž×ª×§×™×Ÿ ××ª ×”×¡×•×›×Ÿ...',
    'decline':u'×¡×™×¨×•×‘',
    'desktopNotificationAutoHide':u'×”×¡×ª×¨ ××•×˜×•×ž×˜×™×ª',
    'desktopNotificationNone':u'×œ×œ×',
    'desktopNotificationVisible':u'×’Ö¼Ö¸×œ×•Ö¼×™ ×œÖ¸×¢Ö·×™Ö´×Ÿ',
    'downloadFile':u'×ž×•×¨×™×“ ×§×•×‘×¥ {0}...',
    'endInstall':u'×”×”×ª×§× ×” ×”×¡×ª×™×™×ž×”.',
    'endInstallConfigLater':u'×”×”×ª×§× ×” ×”×¡×ª×™×™×ž×”.\n×”×¡×•×›×Ÿ ×œ× ×”×•×’×“×¨. ×ª×•×›×œ ×œ×”×ž×©×™×š ×¢× ×”×’×“×¨×ª ×”×¡×•×›×Ÿ ×ž××•×—×¨ ×™×•×ª×¨.',
    'endUninstall':u'×”×¡×¨×ª ×”×”×ª×§× ×” ×”×¡×ª×™×™×ž×”.',
    'enter':u'×”×–×Ÿ',
    'enterInstallCode':u'×”×–×Ÿ ××ª ×§×•×“ ×”×”×ª×§× ×”',
    'enterInstallNewAgent':u'×”×–×Ÿ × ×ª×•× ×™× ×œ×™×¦×™×¨×ª ×¡×•×›×Ÿ ×—×“×©:',
    'enterRunCode':u'×”×–×Ÿ ××ª ×§×•×“ ×”×—×™×‘×•×¨',
    'error':u'×©×’×™××”',
    'errorAgentAlreadyExsists':u'×”×¡×•×›×Ÿ {0} ×›×‘×¨ ×ž×•×ª×§×Ÿ',
    'errorAgentMax':u'×—×¨×™×’×” ×ž×ž×¡×¤×¨ ×”×œ×§×•×—×•×ª ×”×ž×§×¡×™×ž×œ×™ ×”××¤×©×¨×™.',
    'errorAgentNameNotValid':u'×©× ×”×¡×•×›×Ÿ ×œ× ×—×•×§×™. ××™×Ÿ ×œ×”×©×ª×ž×© ×‘×ª×•×•×™× / \\ | # @ : .',
    'errorConnectionConfig':u'×©×’×™××ª ×—×™×‘×•×¨. ×× × ×‘×“×•×§ ×× DWAgent ×”×•×¤×¢×œ.',
    'errorConnectionQuestion':u'×©×’×™××ª ×—×™×‘×•×¨. ×× × ×‘×“×•×§ ××ª ×”×—×™×‘×•×¨ ×œ××™× ×˜×¨× ×˜ ××• ××ª ×”×’×“×¨×•×ª ×—×•×ž×ª ×”××©.\n×”×× ×‘×¨×¦×•× ×š ×œ×”×’×“×™×¨ ×¤×¨×•×§×¡×™?',
    'errorInvalidCode':u'×”×§×•×“ ×©×”×•×–×Ÿ ×©×’×•×™.',
    'errorInvalidUserPassword':u'×©× ×”×ž×©×ª×ž×© ××• ×”×¡×™×¡×ž×” ×©×’×•×™×™×.',
    'fieldRequired':u'×”× ×ª×•×Ÿ \'{0}\' ×“×¨×•×©.',
    'install':u'×”×ª×§×Ÿ',
    'installMonitor':u'×ž×ª×§×™×Ÿ ×ž×•× ×™×˜×•×¨...',
    'installMonitorErr':u'×”×ª×§× ×ª ×ž×•× ×™×˜×•×¨ × ×›×©×œ×”.',
    'installService':u'×ž×ª×§×™×Ÿ ×©×™×¨×•×ª...',
    'installServiceErr':u'×”×ª×§× ×ª ×”×©×™×¨×•×ª × ×›×©×œ×”.',
    'installShortcuts':u'×ž×ª×§×™×Ÿ ×§×™×¦×•×¨×™ ×“×¨×š...',
    'installShortcutsErr':u'×”×ª×§× ×ª ×§×™×¦×•×¨×™ ×”×“×¨×š × ×›×©×œ×”.',
    'installerNotSupported':u'×ª×•×›× ×™×ª ×”×”×ª×§× ×” ×”×–×• ××™× ×” × ×ª×ž×›×ª ×¢×•×“. ×× × ×”×•×¨×“ ××ª ×”×’×¨×¡×” ×”××—×¨×•× ×”.',
    'ipAddress':u'×›×ª×•×‘×ª IP: {0}',
    'linuxRootPrivileges':u'××ª×” ×—×™×™×‘ ×œ×”×™×•×ª ×‘×¢×œ ×”×¨×©××•×ª ×©×•×¨×© ×›×“×™ ×œ×”×ª×§×™×Ÿ DWAgent.\n× × ×œ×”×¤×¢×™×œ ××ª ×”×¡×§×¨×™×¤×˜ ×¢× sudo ××• ×›×©×•×¨×©.',
    'menuConfigure':u'×”×’×“×¨×•×ª',
    'menuMonitor':u'×ž×•× ×™×˜×•×¨',
    'menuUninstall':u'×”×¡×¨×ª ×”×ª×§× ×”',
    'missingInfoFile':u'×”×§×•×‘×¥ info.json ×œ× × ×ž×¦×.',
    'missingNative':u'×ž×§×•×ž×™ ×œ× × ×ž×¦×.',
    'missingRuntime':u'×–×ž×Ÿ ×¨×™×¦×” ×œ× × ×ž×¦×.',
    'monitorActive':u'×ž×•×¤×¢×œ',
    'monitorAgentDisabled':u'×”×¡×•×›×Ÿ ×œ× ×–×ž×™×Ÿ.',
    'monitorAgentEnabled':u'×”×¡×•×›×Ÿ ×ž×•×¤×¢×œ.',
    'monitorConfigure':u'×”×’×“×¨×•×ª',
    'monitorConnections':u'×—×™×‘×•×¨×™×',
    'monitorCurrentActivities':u'×¤×¢×™×œ×•×ª × ×•×›×—×™×ª',
    'monitorDisable':u'×ž×›×•×‘×” ×œ× ×–×ž×™×Ÿ',
    'monitorDisableAgentQuestion':u'×”×× ×‘×¨×¦×•× ×š ×œ×›×‘×•×ª ××ª ×”×¡×•×›×Ÿ?',
    'monitorDownload':u'×”×•×¨×“×”',
    'monitorEnable':u'×”×¤×¢×œ',
    'monitorEnableAgentQuestion':u'×”×× ×‘×¨×¦×•× ×š ×œ×”×¤×¢×™×œ ××ª ×”×¡×•×›×Ÿ?',
    'monitorEnterPassword':u'×”×–×Ÿ ×¡×™×¡×ž×”:',
    'monitorErrorConnectionConfig':u'×©×’×™××ª ×—×™×‘×•×¨. ×× × ×‘×“×•×§ ×× ×¡×•×›×Ÿ DWservice ×¤×•×¢×œ.',
    'monitorHide':u'×”×¡×ª×¨',
    'monitorInvalidPassword':u'×¡×™×¡×ž×” ×©×’×•×™×”.',
    'monitorNoActivities':u'××™×Ÿ ×¤×¢×™×œ×•×ª',
    'monitorScreenCapture':u'×’×™×©×” ×œ×ž×¡×š',
    'monitorSession':u'×¡×©×™×•×Ÿ',
    'monitorShellSession':u'×›× ×™×¡×ª Shell',
    'monitorShow':u'×”×¦×’',
    'monitorStatus':u'×ž×¦×‘',
    'monitorStatusDisabled':u'×ž×›×•×‘×”',
    'monitorStatusNoService':u'××™×Ÿ ×©×™×¨×•×ª',
    'monitorStatusOffline':u'×›×‘×•×™',
    'monitorStatusOnline':u'×¤×•×¢×œ',
    'monitorStatusUpdating':u'×ž×¢×“×›×Ÿ',
    'monitorTitle':u'DWAgent - ×ž×•× ×™×˜×•×¨',
    'monitorUninstall':u'×”×¡×¨ ×”×ª×§× ×”',
    'monitorUninstallNotRun':u'××™×Ÿ ××¤×©×¨×•×ª ×œ×”×¡×™×¨ ×”×ª×§× ×” ×œ×œ× ×”×¨×©××•×ª root.\n×”×¤×¢×œ ××ª ×”×¤×§×•×“×” dwaguninstall ×¢× sudo ××• ×‘×ª×•×¨ root.',
    'monitorUpload':u'×”×¢×œ××”',
    'mustAccept':u'×›×“×™ ×œ×”×ž×©×™×š ×œ×¢×“×›×Ÿ ×¢×œ×™×š ×œ×‘×—×•×¨ ×‘××¤×©×¨×•×ª {0}',
    'mustSelectOptions':u'×¢×œ×™×š ×œ×‘×—×•×¨ ×‘××—×ª ×”××¤×©×¨×•×™×•×ª',
    'next':u'×”×‘×',
    'no':u'×œ×',
    'noTryAgain':u'×œ×, × ×¡×” ×©×•×‘',
    'notInstalled':u'DWAgent ×œ× ×ž×•×ª×§×Ÿ.',
    'ok':u'×›×Ÿ',
    'option':u'××¤×©×¨×•×ª',
    'optionNotValid':u'×”××¤×©×¨×•×ª ×©× ×‘×—×¨×” ××™× ×” ×—×•×§×™×ª.',
    'or':u'××•',
    'password':u'×¡×™×¡×ž×”',
    'path':u'× ×ª×™×‘',
    'pathCreating':u'×™×•×¦×¨ ×ª×§×™×™×”...',
    'pathNotCreate':u'××™×Ÿ ××¤×©×¨×•×ª ×œ×™×¦×•×¨ ×ª×§×™×™×”. × ×ª×™×‘ ×©×’×•×™ ××• ××™×Ÿ ×”×¨×©××”.',
    'pressEnter':u'×”×§×© Enter ×œ×”×ž×©×š.',
    'privacyPolicy':u'×ž×“×™× ×™×•×ª ×¤×¨×˜×™×•×ª',
    'proxyAuthPassword':u'×¡×™×¡×ž×”',
    'proxyAuthUser':u'×ž×©×ª×ž×©',
    'proxyHost':u'×©×¨×ª',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'×”×›× ×¡ ×¤×¨×˜×™ ×¤×¨×•×§×¡×™.',
    'proxyNone':u'××£ ××—×ª',
    'proxyPort':u'×¤Ö¼Ö´×ªÖ°×—Ö¸×” (×™×¦×™××”)',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'×ž×¢×¨×›×ª',
    'reEnterCode':u'×”×–×Ÿ ×©×•×‘ ××ª ×”×§×•×“',
    'reEnterData':u'×”×–×Ÿ ×©×•×‘ ××ª ×”× ×ª×•× ×™×',
    'rePassword':u'×”×–×Ÿ ×©×•×‘ ×¡×™×¡×ž×”',
    'reject':u'×“×—×”',
    'removeFile':u'×ž×•×—×§ ×§×•×‘×¥...',
    'runWithoutInstallation':u'×”×¨×¥',
    'runWithoutInstallationClosing':u'×¡×•×’×¨ ×—×™×‘×•×¨...',
    'runWithoutInstallationConnecting':u'×¤×•×ª×— ×—×™×‘×•×¨...',
    'runWithoutInstallationEnd':u'×”×—×™×‘×•×¨ ×”×¡×ª×™×™×.',
    'runWithoutInstallationOnlineBottom':u'××–×”×¨×”:\n××œ ×ª×—×©×•×£ ×ž×™×“×¢ ×–×” ×œ×× ×©×™× ×©××™× ×š ×¡×•×ž×š ×¢×œ×™×”×. ×–×” ×™××¤×©×¨ ×œ×”× ×œ×’×©×ª ×œ×ž×›×©×™×¨ ×”×–×”. ×× ××™× ×š ×‘×˜×•×— ×ž×” ××ª×” ×¢×•×©×”, ×× × ×¡×’×•×¨ ××ª ×”×™×™×©×•× ×”×–×”.',
    'runWithoutInstallationOnlineBottomPutCode':u'××–×”×¨×”:\n×”×œ×§×•×— ×ž×•×›×Ÿ ×œ×”×ª×—×‘×¨×•×ª. ×× ××™× ×š ×‘×˜×•×— ×ž×” ××ª×” ×¢×•×©×”, ×× × ×¡×’×•×¨ ××ª ×”×ª×•×›× ×”.',
    'runWithoutInstallationOnlinePassword':u'×¡×™×¡×ž×”: {0}',
    'runWithoutInstallationOnlineTop':u'×”×—×™×‘×•×¨ ×¤×¢×™×œ.\n×›×“×™ ×œ×”×ª×—×‘×¨ ×œ×¡×•×›×Ÿ ×–×” ×”×›× ×¡ ××œ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'×”×—×™×‘×•×¨ ×¤×¢×™×œ.',
    'runWithoutInstallationOnlineUser':u'×ž×©×ª×ž×©: {0}',
    'runWithoutInstallationStarting':u'×¡×•×›×Ÿ × ×˜×¢×Ÿ...',
    'runWithoutInstallationUnexpectedError':u'×©×’×™××” ×œ× ×¦×¤×•×™×™×”.\nDWAgent ×œ× ×”×¦×œ×™×— ×œ×”×¤×¢×™×œ. ×× ×”×‘×¢×™×” × ×ž×©×›×ª, ×× × ×”×•×¨×“ ××ª ×”×ž×”×“×•×¨×” ×”××—×¨×•× ×” ×©×œ DWAgent, ×ž×—×§ ××ª ×”×ª×™×§×™×” \'{0}\' ×•×”×¤×¢×œ ××ª DWAgent ×©×•×‘.',
    'runWithoutInstallationUpdating':u'×¢×“×›×•×Ÿ ×¡×•×›×Ÿ...',
    'runWithoutInstallationWait':u'×”×ž×ª×Ÿ ×œ×—×™×‘×•×¨ ×¤×¢×™×œ (× ×¡×™×•×Ÿ {0})',
    'selectPathInstall':u'×‘×—×¨ ××ª × ×ª×™×‘ ×”×”×ª×§× ×”:',
    'skipCertValidation':u'××–×”×¨×”: ×œ× × ×™×ª×Ÿ ×œ××ž×ª ××ª ××™×©×•×¨ ×”××‘×˜×—×”, ×× ×ª×ž×©×™×š ×™×™×ª×›×Ÿ ×©×”×—×™×‘×•×¨ ×œ× ×™×”×™×” ×ž××•×‘×˜×—.\n×× × ×‘×“×•×§ ××ª ×ª×¦×•×¨×ª ×”× ×ª×‘/×—×•×ž×ª ×”××©/×× ×˜×™ ×•×™×¨×•×¡ ×©×œ ×”×¨×©×ª ××• ×¨×©×ª ×ž×§×•×ž×™×ª.\n×œ×”×ž×©×™×š ×‘×›×œ ×–××ª?',
    'startService':u'×ž×¤×¢×™×œ ×©×™×¨×•×ª...',
    'startServiceErr':u'××ª×—×•×œ ×”×©×™×¨×•×ª × ×›×©×œ.',
    'termsAndConditions':u'×ª× ××™× ×•×”×’×‘×œ×•×ª',
    'titleInstall':u'DWAgent - ×”×ª×§× ×”',
    'titleUninstall':u'DWAgent - ×”×¡×¨×ª ×”×ª×§× ×”',
    'toBack':u'×œ×—×–×•×¨ ×—×–×¨×”.',
    'toExit':u'×œ×¦××ª.',
    'unattendedAccess':u'×’×™×©×” ×œ×œ×\n× ×•×›×—×•×ª ×ž×•×œ',
    'unexpectedError':u'×©×’×™××” ×œ× ×¦×¤×•×™×™×”.\n{0}',
    'uninstallMonitor':u'×ž×¡×™×¨ ×ž×•× ×™×˜×•×¨...',
    'uninstallService':u'×ž×¡×™×¨ ×©×™×¨×•×ª...',
    'uninstallShortcuts':u'×ž×¡×™×¨ ×§×™×¦×•×¨×™ ×“×¨×š...',
    'unknownUser':u'×ž×©×ª×ž×© ×œ× ×ž×•×›×¨',
    'user':u'×ž×©×ª×ž×©',
    'validInteger':u'×”× ×ª×•×Ÿ \'{0}\' ×—×™×™×‘ ×œ×”×™×•×ª ×ž×¡×¤×¨ ×©×œ×.',
    'versionInstallNotValid':u'×’×™×¨×¡×ª ×”×”×ª×§× ×” ××™× ×” ×ª×•××ž×ª ××ª ×ž×¢×¨×›×ª ×”×”×¤×¢×œ×”.\n×× × ×”×•×¨×“ ××ª ×”×’×™×¨×¡×” ×”×ž×ª××™×ž×”. {0}',
    'waiting':u'×ž×ž×ª×™×Ÿ...',
    'warningLoginLogout':u'×›×“×™ ×©×©×™× ×•×™ ×–×” ×™×™×›× ×¡ ×œ×ª×•×§×£, ×¢×œ ×”×ž×©×ª×ž×© ×œ×”×ª× ×ª×§ ×•×œ×”×™×›× ×¡ ×©×•×‘.',
    'warningRemovePath':u'××–×”×¨×” - ×ª×§×™×™×ª ×”×™×¢×“ ×›×‘×¨ ×§×™×™×ž×ª ×•×ª×ž×—×§.',
    'warningSpyingTool':u'×× × ×©×™× ×œ×‘ ×©××™× ×š ×¨×©××™ ×œ×’×©×ª ×œ×ž×—×©×‘ ×ž×¨×•×—×§ ×œ×œ× ×”×¡×›×ž×ª ×”×ž×©×ª×ž×© ×©×œ×•. ×¢×œ ×™×“×™ ×©×™×ž×•×© ×‘-DWService ×›×›×œ×™ ×¨×™×’×•×œ ××ª×” ×¢×œ×•×œ ×œ×”×¤×¨ ××ª ×”×—×•×§×™× ×‘×ž×“×™× ×ª ×”×ž×’×•×¨×™× ×©×œ×š.',
    'welcomeLicense':u'×¨×©×™×•×Ÿ\n×ª×•×›× ×” ×–×• ×”×™× ×—×™× ×ž×™×ª ×•×§×•×“ ×¤×ª×•×—.\n×”×™× ×ž×•×¨×›×‘×ª ×ž×ž×¨×›×™×‘ ××—×“ ×¢×™×§×¨×™ ×©×©×•×—×¨×¨ ×ª×—×ª ×¨×™×©×™×•×Ÿ MPLv2 ×•×ž×ž×¡×¤×¨ ×¨×›×™×‘×™× × ×•×¡×¤×™× ×”× ×©×œ×˜×™× ×¢×œ ×™×“×™ ×¨×™×©×™×•× ×•×ª ×©×•× ×™×. ×œ×ž×™×“×¢ × ×•×¡×£, ×‘×§×¨ ×‘×›×ª×•×‘×ª: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'×¢×œ ×™×“×™ ×”×ž×©×š ×”×”×ª×§× ×” ××• ×”×¤×¢×œ×ª ×”×ª×•×›× ×” ×”×–×• ××ª×” ×ž×¡×›×™× ×œ-#TERMSANDCONDITIONS and the #PRIVACYPOLICY',
    'welcomeSecurity':u'××‘×˜×—×”\n×¢×œ ×ž× ×ª ×œ×”×’×Ÿ ×¢×œ ×¤×¨×˜×™×•×ª×š, ×× ×• ×ž×ª×—×™×™×‘×™× ×›×™ ×œ× ×™××•×—×¡×Ÿ ×›×œ ×ž×™×“×¢ ×‘×©×¨×ª×™ ×”×—×‘×¨×” ×•×›×™ ×”×ª×§×©×•×¨×ª ×ž×•×¦×¤× ×ª ×•×‘×›×œ ×ž×§×¨×” ×œ× ×™×›×•×œ×” ×œ×”×™×§×¨× ×¢"×™ ×¦×“ ×©×œ×™×©×™.',
    'welcomeSoftwareUpdates':u'×¢×“×›×•× ×™ ×ª×•×›× ×”\n×ª×•×›× ×” ×–×• ×ž×ª×¢×“×›× ×ª ×‘××•×¤×Ÿ ××•×˜×•×ž×˜×™.',
    'welcomeTermsAndConditions':u'×¢×œ ×™×“×™ ×‘×—×™×¨×” ×‘××¤×©×¨×•×ª \'{0}\' ××• \'{1}\' ×× ×™ ×ž×§×‘×œ ××ª #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'×¢×œ ×ž× ×ª ×œ×”×ª×§×™×Ÿ ×ª×•×›× ×” ×–×• ×¢×œ×™×š ×œ×”×™×•×ª ×‘×¢×œ ×”×¨×©××•×ª ××“×ž×™× ×™×¡×˜×¨×˜×•×¨ ×‘×ž×—×©×‘.\n×× × ×”×¨×¥ ×©×•×‘ ××ª ×§×•×‘×¥ ×”×”×ª×§× ×” ×‘××ž×¦×¢×•×ª \'run as asminitrator\'.',
    'yes':u'×›×Ÿ'
}
                                                                                                                                                                                                                                                                                                                            ui/messages/ca.py                                                                                   0000644 0001750 0001750 00000031064 14630344561 013537  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Accepto',
    'accessConfirm':u'Vol accedir al teu dispositiu.',
    'agentName':u'Nom de l\'agent',
    'alreadyInstalled':u'DWAgent ja instalÂ·lat.\n\nL\'agent s\'actualitza automÃ ticament a la darrera versiÃ³. AixÃ² vol dir que no cal instalÂ·lar manualment les actualitzacions mÃ©s recents.',
    'back':u'Enrere',
    'cancel':u'CancelÂ·lar',
    'cancelInstall':u'La instalÂ·laciÃ³ s\'ha cancelÂ·lat.',
    'cancelUninstall':u'La desinstalÂ·laciÃ³ s\'ha cancelÂ·lat.',
    'checkInstallCode':u'Comprovant el codi d\'activaciÃ³...',
    'chooseProxyType':u'Quin tipus de proxy vols utilitzar?',
    'close':u'Tancar',
    'code':u'Codi',
    'commands':u'Ordres',
    'configureAgent':u'Configurar l\'agent',
    'configureAgentDisabled':u'Agent desactivat',
    'configureAgentEnabled':u'Agent habilitat',
    'configureChangeInstallKey':u'Canviar el codi d\'activaciÃ³',
    'configureChooseMonitorTrayIconVisibility':u'Vols que es mostri el monitor d\'estat a la barra d\'estat?',
    'configureChooseOperation':u'Escull una opciÃ³, si us plau:',
    'configureDesktopNotification':u'NotificaciÃ³ d\'escriptori',
    'configureDesktopNotificationOK':u'NotificaciÃ³ d\'escriptori configurada correctament.',
    'configureDisableAgent':u'Desactivar l\'agent',
    'configureDisableAgentQuestion':u'Vols desactivar l\'agent?',
    'configureEnableAgent':u'Activar l\'agent',
    'configureEnableAgentQuestion':u'Vols activar l\'agent?',
    'configureEnd':u'S\'ha acabat la configuraciÃ³.',
    'configureErrorConnection':u'Error de connexiÃ³. Si et plau, verifica que el servei DWAgent Ã©s engegat.',
    'configureExit':u'Tancar',
    'configureInsertPassword':u'Si et plau, escriu la paraula de pas de configuraciÃ³:',
    'configureInstallAgent':u'Com vols configurar l\'agent?',
    'configureInstallCode':u'IntroduÃ¯nt el codi d\'instalÂ·laciÃ³',
    'configureInstallNewAgent':u'Creant un nou agent',
    'configureInstallPassword':u'Paraula de pas de la instalÂ·laciÃ³',
    'configureInstallUser':u'Usuari',
    'configureInvalidPassword':u'Paraula de pas incorrecta',
    'configureKeyInstalled':u'Clau instalÂ·lada correctament',
    'configureLater':u'Configurar mÃ©s tard',
    'configureMonitor':u'Configurar el monitor',
    'configurePassword':u'Establir la paraula de pas',
    'configurePasswordErrNoMatch':u'Els passwords no sÃ³n iguals.',
    'configurePasswordUpdated':u'Paraula de pas canviada.',
    'configureProxy':u'Configurar el servidor intermediari',
    'configureProxyEnd':u'Servidor intermediari configurat correctament',
    'configureRemovePassword':u'Esborrar la paraula de pas',
    'configureRemovePasswordQuestion':u'Vols esborrar la paraula de pas?',
    'configureSetPassword':u'Establir paraula de pas',
    'configureTitle':u'DWAgent - ConfiguraciÃ³',
    'configureTrayIconOK':u'Configurada correctament la visibilitat de la icona a la barra de tasques.',
    'configureTrayIconVisibility':u'Visibilitat de la icona a la barra de tasques',
    'configureUninstallKeyQuestion':u'DesinstalÂ·lar l\'actual codi d\'instalÂ·laciÃ³?',
    'configureUninstallationKey':u'DesinstalÂ·laciÃ³...',
    'confirmExit':u'Segur que vols sortir?',
    'confirmInstall':u'Vols instalÂ·lar el DWAgent a \'{0}\'?',
    'confirmUninstall':u'Vols esborrar el DWAgent?',
    'copyFiles':u'Copiant arxius...',
    'createNewAgent':u'CreaciÃ³ de l\'agent en progrÃ©s...',
    'decline':u'No ho accepto',
    'desktopNotificationAutoHide':u'Amagar automÃ ticament',
    'desktopNotificationNone':u'Cap',
    'desktopNotificationVisible':u'Visible',
    'downloadFile':u'Descarregant l\'arxiu \'{0}\'...',
    'endInstall':u'La instalÂ·laciÃ³ ha acabat.',
    'endInstallConfigLater':u'La instalÂ·laciÃ³ ha acabat.\nL\'agent no ha estat pas configurat. Pots continuar mÃ©s tard amb la configuraciÃ³.',
    'endUninstall':u'La desinstalÂ·laciÃ³ ha acabat.',
    'enter':u'Introdueix',
    'enterInstallCode':u'Escriu el codi d\'instalÂ·laciÃ³',
    'enterInstallNewAgent':u'Escriu la informaciÃ³ per a crear el nou agent:',
    'enterRunCode':u'Escriu el codi de connexiÃ³',
    'error':u'Error',
    'errorAgentAlreadyExsists':u'L\'agent {0} ja existia',
    'errorAgentMax':u'Has excedit el nombre mÃ xim d\'agents.',
    'errorAgentNameNotValid':u'El nom de l\'agent no Ã©s vÃ lid. No pots pas fer servir els caracters / \\ | # @ : .',
    'errorConnectionConfig':u'Error de connexiÃ³. Si et plau, verifica que el servei DWAgent sigui engegat.',
    'errorConnectionQuestion':u'Error de connexiÃ³. Si et plau, verifica que la connexiÃ³ a internet o el tallafocs.\nVols configurar un servidor intermediari (proxy)?',
    'errorInvalidCode':u'El codi que has introduÃ¯t no Ã©s vÃ lid.',
    'errorInvalidUserPassword':u'Usuari o paraula de pas no correctes.',
    'fieldRequired':u'Es requereix el camp \'{0}\'.',
    'install':u'InstalÂ·lar',
    'installMonitor':u'InstalÂ·lant el monitor...',
    'installMonitorErr':u'InstalÂ·laciÃ³ del monitor fallida.',
    'installService':u'InstalÂ·lant el servei...',
    'installServiceErr':u'InstalÂ·laciÃ³ del servei fallida.',
    'installShortcuts':u'InstalÂ·lant dreceres...',
    'installShortcutsErr':u'InstalÂ·laciÃ³ de les dreceres fallida.',
    'installerNotSupported':u'Aquest instalÂ·lador ja no Ã©s compatible. Si us plau, descarregueu la darrera versiÃ³.',
    'ipAddress':u'AdreÃ§a IP: {0}',
    'linuxRootPrivileges':u'Hauries de tindre privilegis de root per instalÂ·lar el DWAgent.\nSi et plau, reinicia l\'script amb l\'usuari root.',
    'menuConfigure':u'Configurar',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'DesinstalÂ·lar',
    'missingInfoFile':u'Arxiu info.json no trobat.',
    'missingNative':u'Native no trobat.',
    'missingRuntime':u'Runtime no trobat.',
    'monitorActive':u'actiu',
    'monitorAgentDisabled':u'Agent desactivat.',
    'monitorAgentEnabled':u'Agent actiu.',
    'monitorConfigure':u'Configurar',
    'monitorConnections':u'Connexions',
    'monitorCurrentActivities':u'Activitats actuals',
    'monitorDisable':u'Desactivar',
    'monitorDisableAgentQuestion':u'Vols desactivar l\'agent?',
    'monitorDownload':u'DescÃ rrega',
    'monitorEnable':u'Activar',
    'monitorEnableAgentQuestion':u'Vols activar l\'agent?',
    'monitorEnterPassword':u'Escriu la paraula de pas:',
    'monitorErrorConnectionConfig':u'Error de connexiÃ³. Si et plau, verifica que el servei DWAgent Ã©s engegat.',
    'monitorHide':u'Amagar',
    'monitorInvalidPassword':u'Paraula de pas no vÃ lida.',
    'monitorNoActivities':u'Sense activitats',
    'monitorScreenCapture':u'Captura de pantalla',
    'monitorSession':u'SessiÃ³',
    'monitorShellSession':u'Consola',
    'monitorShow':u'Veure',
    'monitorStatus':u'Estat',
    'monitorStatusDisabled':u'Desactivat',
    'monitorStatusNoService':u'Sense servei',
    'monitorStatusOffline':u'Fora de lÃ­nia',
    'monitorStatusOnline':u'En lÃ­nia',
    'monitorStatusUpdating':u'Actualitzant',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'DesinstalÂ·lar',
    'monitorUninstallNotRun':u'No pots desinstalÂ·lar sense permisos de root.\nExecuta la comanda "dwaguninstall" des de la lÃ­nia de comandes.',
    'monitorUpload':u'Pujar',
    'mustAccept':u'Per poder continuar, has d\'escollir la opciÃ³ {0}',
    'mustSelectOptions':u'Has d\'escollir una opciÃ³.',
    'next':u'SegÃ¼ent',
    'no':u'No',
    'noTryAgain':u'No; prova-ho de nou',
    'notInstalled':u'El DWAgent no Ã©s instalÂ·lat.',
    'ok':u'D\'acord',
    'option':u'OpciÃ³',
    'optionNotValid':u'L\'opciÃ³ escollida no Ã©s vÃ lida.',
    'or':u'o',
    'password':u'Paraula de pas',
    'path':u'Ruta',
    'pathCreating':u'CreaciÃ³ del directori...',
    'pathNotCreate':u'No es pot crear el directori. Ruta incorrecta o permÃ­s denegat.',
    'pressEnter':u'Prem "enter" per continuar.',
    'privacyPolicy':u'PolÃ­tica de privacitat',
    'proxyAuthPassword':u'Paraula de pas',
    'proxyAuthUser':u'Usuari',
    'proxyHost':u'Host',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'Escriu la informaciÃ³ del servidor intermediari.',
    'proxyNone':u'Cap',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistema',
    'reEnterCode':u'Torna a entrar el codi',
    'reEnterData':u'Torna a entrar la informaciÃ³',
    'rePassword':u'Torna a escriure la paraula de pas',
    'reject':u'Rebutjar',
    'removeFile':u'Esborrant arxiu...',
    'runWithoutInstallation':u'Executar',
    'runWithoutInstallationClosing':u'Tancant la sessiÃ³...',
    'runWithoutInstallationConnecting':u'Obrint la sessiÃ³...',
    'runWithoutInstallationEnd':u'SessiÃ³ acabada.',
    'runWithoutInstallationOnlineBottom':u'COMPTE!!!\nNo donis pas aquesta informaciÃ³ a desconeguts, doncs tindrien accÃ©s a aquest agent. Si no tens clar el que ets fent, millor que tanquis aquesta aplicaciÃ³.',
    'runWithoutInstallationOnlineBottomPutCode':u'COMPTE!\nAra l\'agent Ã©s a punt per acceptar connexions.',
    'runWithoutInstallationOnlinePassword':u'Paraula de pas: {0}',
    'runWithoutInstallationOnlineTop':u'La sessiÃ³ Ã©s activa.\nPer connectar amb aquest agent, vÃ©s a https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'La sessiÃ³ Ã©s activa.',
    'runWithoutInstallationOnlineUser':u'Usuari: {0}',
    'runWithoutInstallationStarting':u'Iniciant l\'agent...',
    'runWithoutInstallationUnexpectedError':u'Error inesperat.\nNo ha estat possible iniciar el DWAgent. Si el problema segueix, prova de descarregar-te la darrera versiÃ³ del DWAgent, esborra el directori \'{0}\' i torna a iniciar el DWAgent.',
    'runWithoutInstallationUpdating':u'ActualitzaciÃ³ de l\'agent...',
    'runWithoutInstallationWait':u'Esperant per la nova connexiÃ³ (intent {0})...',
    'selectPathInstall':u'Escull la ruta per la instalÂ·laciÃ³:',
    'skipCertValidation':u'Compte: el certificat de seguretat no s\'ha pogut pas validar; si seguiu, la connexiÃ³ pot Ã©sser insegura.\nVerifiqueu la configuraciÃ³ de l\'enrutador/tallafocs/antivirus de la xarxa (o de l\'equip).\nDe tota manera, seguim endavant?',
    'startService':u'Iniciant el servei...',
    'startServiceErr':u'No s\'ha pogut iniciar el servei.',
    'termsAndConditions':u'Termes i condicions',
    'titleInstall':u'DWAgent - InstalÂ·laciÃ³',
    'titleUninstall':u'DWAgent - DesinstalÂ·laciÃ³',
    'toBack':u'anar enrere.',
    'toExit':u'sortir.',
    'unattendedAccess':u'AccÃ©s\nno atÃ¨s',
    'unexpectedError':u'Error inesperat.\n{0}',
    'uninstallMonitor':u'DesinstalÂ·lant el monitor...',
    'uninstallService':u'DesinstalÂ·lant el servei...',
    'uninstallShortcuts':u'DesinstalÂ·lant les dreceres...',
    'unknownUser':u'Usuari desconegut',
    'user':u'Usuari',
    'validInteger':u'El camp \'{0}\' ha d\'Ã©sser un nombre enter.',
    'versionInstallNotValid':u'La versiÃ³ de l\'instalÂ·lador no Ã©s la correcta per al teu sistema operatiu.\nSi et plau, descarrega\'t la versiÃ³ correcta. {0}',
    'waiting':u'Esperant...',
    'warningLoginLogout':u'Per tal que els canvis siguin efectius, l\'usuari ha de tancar i tornar a obrir sessiÃ³.',
    'warningRemovePath':u'Compte: el directori destÃ­ ja existeix; l\'esborrarem.',
    'warningSpyingTool':u'Tingues en compte que no has d\'accedir a un ordinador remot sense el consentiment de l\'usuari. Fent Ãºs del DWService com a eina d\'espionatge pot estar infringint les lleis al teu paÃ­s de residÃ¨ncia.',
    'welcomeLicense':u'LlicÃ¨ncia.\nAquest programari Ã©s lliure i de codi obert.\nTÃ© un principal component i uns quants accessoris que poden contindre diferents llicÃ¨ncies. En tot cas, consulteu mÃ©s informaciÃ³ al respecte aquÃ­: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Si instalÂ·leu o feu anar aquest programari vol dir que sou acceptant els #TERMSANDCONDITIONS i la #PRIVACYPOLICY',
    'welcomeSecurity':u'Seguretat\nPer tal de protegir la teva privacitat, et garantim que no emmagatzemarem pas informaciÃ³ teva dins dels nostres servidors; a mÃ©s que les comunicacions sÃ³n xifrades i, per tant, les aplicacions de tercers no poden pas llegir-ne res.',
    'welcomeSoftwareUpdates':u'Actualitzacions del programari\nAquest programari s\'actualitza automÃ ticament.',
    'welcomeTermsAndConditions':u'Triant les opcions \'{0}\' o \'{1}\', accepto els #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Has de tindre privilegis d\'administrador per tal d\'instalÂ·lar el DWAgent.\nSi et plau, inicia l\'executable amb la opciÃ³ "executar com a administrador".',
    'yes':u'Si'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ui/messages/da.py                                                                                   0000644 0001750 0001750 00000030163 14671745733 013552  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Jeg accepterer',
    'accessConfirm':u'Vil gerne have adgang til din enhed.',
    'agentName':u'Agentnavn',
    'alreadyInstalled':u'DWAgent er allerede installeret.\n\nAgent opdaterer automatisk til den sidste version. Det betyder, at du ikke behÃ¸ver manuelt at installere nyere opdateringer.',
    'back':u'Tilbage',
    'cancel':u'Annuller',
    'cancelInstall':u'Installationen blev annulleret.',
    'cancelUninstall':u'Afinstallationen blev annulleret.',
    'checkInstallCode':u'Kontrollerer installationskode...',
    'chooseProxyType':u'Hvilken type proxy vil du benytte?',
    'close':u'Luk',
    'code':u'Kode',
    'commands':u'Kommandoer',
    'configureAgent':u'Konfigurer agent',
    'configureAgentDisabled':u'Agent deaktiveret.',
    'configureAgentEnabled':u'Agent aktiveret.',
    'configureChangeInstallKey':u'Ã†ndre installationskode',
    'configureChooseMonitorTrayIconVisibility':u'Vil du have agenten vist som bakkeikon?',
    'configureChooseOperation':u'VÃ¦lg venligst en handling:',
    'configureDesktopNotification':u'Skrivebordsnotifikation',
    'configureDesktopNotificationOK':u'Skrivebordsnotifikationer er konfigureret med succes.',
    'configureDisableAgent':u'Deaktiver agent',
    'configureDisableAgentQuestion':u'Er du sikker pÃ¥ at du vil deaktivere agenten?',
    'configureEnableAgent':u'Aktiver agent',
    'configureEnableAgentQuestion':u'Vil du aktivere agenten?',
    'configureEnd':u'OpsÃ¦tningen er fuldfÃ¸rt',
    'configureErrorConnection':u'Forbindelsesfejl. Tjek venligst at DWAgent servicen er startet.',
    'configureExit':u'Afslut',
    'configureInsertPassword':u'IndsÃ¦t venligst konfigurationskodeordet:',
    'configureInstallAgent':u'Hvordan foretrÃ¦kker du at konfigurere agenten?',
    'configureInstallCode':u'Indtastning af installationskoden',
    'configureInstallNewAgent':u'Opretter en ny agent',
    'configureInstallPassword':u'Installationskodeord',
    'configureInstallUser':u'Bruger',
    'configureInvalidPassword':u'Forkert kodeord.',
    'configureKeyInstalled':u'NÃ¸gle installeret med succes.',
    'configureLater':u'Konfigurer senere',
    'configureMonitor':u'Konfigurer monitor',
    'configurePassword':u'Konfigurer kodeord',
    'configurePasswordErrNoMatch':u'Adgangskoderne stemmer ikke overens.',
    'configurePasswordUpdated':u'Kodeord opdateret.',
    'configureProxy':u'Konfigurer proxy',
    'configureProxyEnd':u'Proxy konfigureret med succes.',
    'configureRemovePassword':u'Fjern kodeord',
    'configureRemovePasswordQuestion':u'Vil Du fjerne kodeordet?',
    'configureSetPassword':u'Indstil kodeord',
    'configureTitle':u'DWAgent - Konfiguration',
    'configureTrayIconOK':u'Synlighed af bakkeikon, konfigureret med succes.',
    'configureTrayIconVisibility':u'Synlighed af bakkeikon',
    'configureUninstallKeyQuestion':u'Afinstaller nuvÃ¦rende installations kode?',
    'configureUninstallationKey':u'Afinstallation...',
    'confirmExit':u'Er du sikker pÃ¥ du vil afslutte',
    'confirmInstall':u'Vil du ogsÃ¥ installere DWAgent I mappen \'{0}\'?',
    'confirmUninstall':u'Vil du afinstallere DWAgent?',
    'copyFiles':u'Kopierer filer...',
    'createNewAgent':u'Agentoprettelse i gang...',
    'decline':u'Jeg accepterer ikke',
    'desktopNotificationAutoHide':u'Skjul automatisk',
    'desktopNotificationNone':u'Ingen',
    'desktopNotificationVisible':u'Synlig',
    'downloadFile':u'Downloader fil {0}...',
    'endInstall':u'Installationen er fuldfÃ¸rt.',
    'endInstallConfigLater':u'Installationen er fuldfÃ¸rt.\nAgenten er ikke konfigureret. Du kan Ã¦ndre dette senere.',
    'endUninstall':u'Afinstallation fuldfÃ¸rt.',
    'enter':u'indtast',
    'enterInstallCode':u'Indtast installationskode',
    'enterInstallNewAgent':u'Indtast data for at oprette en ny agent:',
    'enterRunCode':u'Indtast forbindelselskoden',
    'error':u'Fejl',
    'errorAgentAlreadyExsists':u'Agent {0} eksisterer allerede.',
    'errorAgentMax':u'Maksimalt antal agenter er overskredet .',
    'errorAgentNameNotValid':u'Agent navnet er ikke gyldigt. Du kan ikke bruge tegnene / \\ # @ : .',
    'errorConnectionConfig':u'Forbindelsesfejl. Kontroller, om DWAgent-tjenesten er startet.',
    'errorConnectionQuestion':u'Forbindelsesfejl. Tjek venligst din internetforbindelse eller firewall-konfiguration.\nVil du konfigurere proxy?',
    'errorInvalidCode':u'Koden er ugyldig.',
    'errorInvalidUserPassword':u'Forkert brugernavn eller kodeord.',
    'fieldRequired':u'Feltet \'{0}\' er pÃ¥krÃ¦vet.',
    'install':u'Installer',
    'installMonitor':u'Installation af monitor...',
    'installMonitorErr':u'Installation af monitor mislykkedes.',
    'installService':u'Installation af service...',
    'installServiceErr':u'Installations tjenesten mislykkedes.',
    'installShortcuts':u'Installation af genveje...',
    'installShortcutsErr':u'Installations genveje mislykkedes.',
    'installerNotSupported':u'Installationsprogrammet understÃ¸ttes ikke lÃ¦ngere. Hent venligst den nyeste version.',
    'ipAddress':u'IP-adresse: {0}',
    'linuxRootPrivileges':u'Du skal have root privilegier for at installere DWAgent.\nStart venligst scriptet ved hjÃ¦lp af root-brugeren.',
    'menuConfigure':u'Konfigurer',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Afinstaller',
    'missingInfoFile':u'Filen info.json ikke fundet.',
    'missingNative':u'Native ikke fundet.',
    'missingRuntime':u'Runtime ikke fundet.',
    'monitorActive':u'aktiv',
    'monitorAgentDisabled':u'Agent deaktiveret.',
    'monitorAgentEnabled':u'Agent aktiveret.',
    'monitorConfigure':u'Konfigurer',
    'monitorConnections':u'Forbindelser',
    'monitorCurrentActivities':u'NuvÃ¦rende aktiviteter',
    'monitorDisable':u'Deaktiver',
    'monitorDisableAgentQuestion':u'Vil du deaktivere agenten?',
    'monitorDownload':u'Download',
    'monitorEnable':u'Aktiver',
    'monitorEnableAgentQuestion':u'Vil du aktivere agenten?',
    'monitorEnterPassword':u'Indtast Kodeord',
    'monitorErrorConnectionConfig':u'Forbindelsesfejl. Tjek venligst om DWAgent-tjenesten er startet.',
    'monitorHide':u'Skjul',
    'monitorInvalidPassword':u'Forkert Kodeord!',
    'monitorNoActivities':u'Ingen aktiviteter',
    'monitorScreenCapture':u'skÃ¦rm-dump',
    'monitorSession':u'Session',
    'monitorShellSession':u'Shell',
    'monitorShow':u'Vis',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Deaktiveret',
    'monitorStatusNoService':u'Ingen service',
    'monitorStatusOffline':u'Ikke forbundet',
    'monitorStatusOnline':u'Forbundet',
    'monitorStatusUpdating':u'Opdatere',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Afinstaller',
    'monitorUninstallNotRun':u'Du kan ikke afinstallere uden adminstrator-rettigheder.\nKÃ¸r kommandoen dwaguninstall i et terminal/kommandovindue.',
    'monitorUpload':u'Upload',
    'mustAccept':u'For at kunne fortsÃ¦tte, skal du vÃ¦lge mulighed {0}',
    'mustSelectOptions':u'Du skal vÃ¦lge en valgmulighed.',
    'next':u'NÃ¦ste',
    'no':u'Nej',
    'noTryAgain':u'Nej, prÃ¸v igen',
    'notInstalled':u'DWAgent er ikke installeret.',
    'ok':u'OK',
    'option':u'Valgmulighed',
    'optionNotValid':u'Den valgte valgmulighed er ikke gyldig.',
    'or':u'eller',
    'password':u'Kodeord',
    'path':u'Sti',
    'pathCreating':u'Folder dannelse...',
    'pathNotCreate':u'Kunne ikke lave folderen. Stien er ugyldig, eller manglende rettigheder.',
    'pressEnter':u'Tryk pÃ¥ retur for at fortsÃ¦tte.',
    'privacyPolicy':u'Privatlivspolitik',
    'proxyAuthPassword':u'Kodeord',
    'proxyAuthUser':u'Bruger',
    'proxyHost':u'Agent',
    'proxyHttp':u'Http',
    'proxyInfo':u'IndsÃ¦t proxy-information.',
    'proxyNone':u'Ingen',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'System',
    'reEnterCode':u'Indtast koden igen',
    'reEnterData':u'Indtast data igen',
    'rePassword':u'Indtast kodeordet igen',
    'reject':u'Afvis',
    'removeFile':u'Fjerner filen...',
    'runWithoutInstallation':u'KÃ¸r',
    'runWithoutInstallationClosing':u'Lukker session...',
    'runWithoutInstallationConnecting':u'Ã…bner session...',
    'runWithoutInstallationEnd':u'Sessionen er afsluttet.',
    'runWithoutInstallationOnlineBottom':u'ADVARSEL:\nDu bÃ¸r ikke dele denne information med andre som der ikke er tillid til, da det vil give dem adgang til denne agent. SÃ¥ hvis du ikke er sikker pÃ¥, hvad du gÃ¸r, bÃ¸r du lukke denne applikation.',
    'runWithoutInstallationOnlineBottomPutCode':u'ADVARSEL:\nAgenten er nu klar til at modtage en forbindelse. Hvis du ikke er sikker pÃ¥ hvad du gÃ¸r, bÃ¸r du lukke denne applikation.',
    'runWithoutInstallationOnlinePassword':u'Kodeord: {0}',
    'runWithoutInstallationOnlineTop':u'Sessionen er aktiv.\nFor at forbinde til denne agent, gÃ¥ til https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sessionen er aktiv.',
    'runWithoutInstallationOnlineUser':u'Bruger: {0}',
    'runWithoutInstallationStarting':u'Agenten starter...',
    'runWithoutInstallationUnexpectedError':u'Uventet fejl.\nDet var ikke muligt at starte DWAgent. Hvis problemet fortsÃ¦tter, sÃ¥ prÃ¸v at downloade den seneste udgave af DWAgent, slet folderen \'{0}\' og kÃ¸re DWAgent igen.',
    'runWithoutInstallationUpdating':u'Agenten opdateres...',
    'runWithoutInstallationWait':u'Vent til den nye forbindelse oprettes (forsÃ¸g {0})...',
    'selectPathInstall':u'VÃ¦lg stien til installationen:',
    'skipCertValidation':u'Advarsel: Sikkerhedscrtifikatet kunne ikke valideres. Hvis du fortsÃ¦tter er forbindelsen muligvis ikke sikker.\nKontroller venligst konfigurationen af router/firewall/antivirus pÃ¥ netvÃ¦rket eller lokalt.\nÃ˜nsker du at fortsÃ¦tte?',
    'startService':u'Starter servicen...',
    'startServiceErr':u'Fejl ved start af servicen...',
    'termsAndConditions':u'VilkÃ¥r og betingelser',
    'titleInstall':u'DWAgent - Installation',
    'titleUninstall':u'DWAgent - Afinstallation',
    'toBack':u'for at vende tilbage.',
    'toExit':u'for at afslutte.',
    'unattendedAccess':u'UovervÃ¥get\nadgang',
    'unexpectedError':u'Uventet fejl.\n{0}',
    'uninstallMonitor':u'Afinstallerer monitor...',
    'uninstallService':u'Afinstallerer service...',
    'uninstallShortcuts':u'Afinstallerer genveje...',
    'unknownUser':u'Ukendt bruger',
    'user':u'Bruger',
    'validInteger':u'Feltet \'{0}\' skal vÃ¦re et heltal.',
    'versionInstallNotValid':u'Installationsprogrammet er ikke den korrekte version for dit operativsystem.\nDownload venligst den korrekte version. {0}',
    'waiting':u'Venter...',
    'warningLoginLogout':u'Brugeren skal logge ud og ind igen fÃ¸r Ã¦ndringen trÃ¦der i kraft.',
    'warningRemovePath':u'Advarsel destinationsfolderen eksisterer allerede, derefter vil den blive slettet.',
    'warningSpyingTool':u'VÃ¦r opmÃ¦rksom pÃ¥, at du muligvis ikke mÃ¥ tilgÃ¥ en fjerncomputer uden brugerens tilladelse. Ved at anvende DWService som et spionvÃ¦rktÃ¸j kan du vÃ¦re i konflikt med loven i det land du bor i.',
    'welcomeLicense':u'Licens\nDenne software er gratis og Open Source.\nDen bestÃ¥r af en hovedkomponent og adskillige tilhÃ¸rende komponenter, defineret som "apps" som kan vÃ¦re reguleret af forskellige licenser. For flere informationer, besÃ¸g https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Ved at fortsÃ¦tte installationen eller ved at afvikle denne softeware accepterer du #TERMSANDCONDITIONS og #PRIVACYPOLICY',
    'welcomeSecurity':u'Sikkerhed\nFor at beskytte dit privatliv garanterer vi, at ingen information vil blive opbevaret pÃ¥ vores servere, og at kommunikationer er krypterede sÃ¥ trediepart ikke kan aflÃ¦se dem.',
    'welcomeSoftwareUpdates':u'Softwareopdateringer\nDenne software bliver automatisk opdateret.',
    'welcomeTermsAndConditions':u'Ved at vÃ¦lge valgmuligheden \'{0}\' eller \'{1}\' accepterer jeg #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Du skal have administatorrettigheder for at installere DWAgent.\nKÃ¸r venligst programmet igen med "KÃ¸r som administrator"',
    'yes':u'Ja'
}
                                                                                                                                                                                                                                                                                                                                                                                                             ui/messages/cs.py                                                                                   0000644 0001750 0001750 00000030517 14630344554 013565  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'SouhlasÃ­m',
    'accessConfirm':u'chce zÃ­skat pÅ™Ã­stup k VaÅ¡emu zaÅ™Ã­zenÃ­.',
    'agentName':u'NÃ¡zev agenta',
    'alreadyInstalled':u'DWAgent je uÅ¾ nainstalovanÃ½.\n\nAgent se aktualizuje automaticky. To znamenÃ¡, Å¾e ho nenÃ­ tÅ™eba aktualizovat ruÄnÄ›.',
    'back':u'ZpÄ›t',
    'cancel':u'Storno',
    'cancelInstall':u'Instalace byla zruÅ¡ena.',
    'cancelUninstall':u'Odinstalace byla zruÅ¡ena.',
    'checkInstallCode':u'ProvÄ›Å™ovÃ¡nÃ­ kÃ³du instalaceâ€¦',
    'chooseProxyType':u'JakÃ½ typ proxy chcete pouÅ¾Ã­t?',
    'close':u'ZavÅ™Ã­t',
    'code':u'KÃ³d',
    'commands':u'PÅ™Ã­kazy',
    'configureAgent':u'Nastavit agenta',
    'configureAgentDisabled':u'Agent vypnut.',
    'configureAgentEnabled':u'Agent zapnut.',
    'configureChangeInstallKey':u'ZmÄ›nit kÃ³d instalace',
    'configureChooseMonitorTrayIconVisibility':u'Chcete zobrazovat ikonu monitoru v oznamovacÃ­ oblasti systÃ©movÃ©ho panelu?',
    'configureChooseOperation':u'Zvolte akci:',
    'configureDesktopNotification':u'OznÃ¡menÃ­ na ploÅ¡e',
    'configureDesktopNotificationOK':u'OznÃ¡menÃ­ na ploÅ¡e byla nastavena.',
    'configureDisableAgent':u'Vypnout agenta',
    'configureDisableAgentQuestion':u'Chcete agenta vypnout?',
    'configureEnableAgent':u'Zapnout agenta',
    'configureEnableAgentQuestion':u'Chcete agenta zapnout?',
    'configureEnd':u'NastavenÃ­ je dokonÄeno.',
    'configureErrorConnection':u'Chyba spojenÃ­. OvÄ›Å™te zda je spuÅ¡tÄ›nÃ¡ sluÅ¾ba DWAgent.',
    'configureExit':u'UkonÄit',
    'configureInsertPassword':u'Zadejte heslo pro odemÄenÃ­ nastavenÃ­:',
    'configureInstallAgent':u'Jak chcete agenta nastavovat?',
    'configureInstallCode':u'ZadÃ¡nÃ­m kÃ³du instalace',
    'configureInstallNewAgent':u'VytvoÅ™enÃ­m novÃ©ho agenta',
    'configureInstallPassword':u'Heslo pro instalaci',
    'configureInstallUser':u'UÅ¾ivatel',
    'configureInvalidPassword':u'NeplatnÃ© heslo.',
    'configureKeyInstalled':u'KlÃ­Ä byl ÃºspÄ›Å¡nÄ› nainstalovÃ¡n.',
    'configureLater':u'Nastavit pozdÄ›ji',
    'configureMonitor':u'Nastavit monitor',
    'configurePassword':u'Nastavit heslo',
    'configurePasswordErrNoMatch':u'ZadanÃ¡ hesla se neshodujÃ­.',
    'configurePasswordUpdated':u'Heslo bylo zmÄ›nÄ›no.',
    'configureProxy':u'Nastavit proxy',
    'configureProxyEnd':u'Proxy ÃºspÄ›Å¡nÄ› nastavena.',
    'configureRemovePassword':u'Odstranit heslo',
    'configureRemovePasswordQuestion':u'Opravdu odstranit heslo?',
    'configureSetPassword':u'Nastavit heslo',
    'configureTitle':u'NastavenÃ­ DWAgent',
    'configureTrayIconOK':u'ZobrazovÃ¡nÃ­ ikony v oznamovacÃ­ oblasti systÃ©movÃ©ho panelu ÃºspÄ›Å¡nÄ› nastaveno.',
    'configureTrayIconVisibility':u'ZobrazovÃ¡nÃ­ ikony v oznamovacÃ­ oblasti systÃ©movÃ©ho panelu',
    'configureUninstallKeyQuestion':u'Odinstalovat stÃ¡vajÃ­cÃ­ kÃ³d instalace?',
    'configureUninstallationKey':u'Odinstalaceâ€¦',
    'confirmExit':u'Opravdu ukonÄit?',
    'confirmInstall':u'Opravdu chcete nainstalovat DWAgenta do â€ž{0}â€œ?',
    'confirmUninstall':u'Opravdu odstranit DWAgenta?',
    'copyFiles':u'KopÃ­rovÃ¡nÃ­ souborÅ¯â€¦',
    'createNewAgent':u'VytvÃ¡Å™enÃ­ agentaâ€¦',
    'decline':u'NesouhlasÃ­m',
    'desktopNotificationAutoHide':u'Automaticky skrÃ½t',
    'desktopNotificationNone':u'Å½Ã¡dnÃ©',
    'desktopNotificationVisible':u'ViditelnÃ©',
    'downloadFile':u'StahovÃ¡nÃ­ souboru {0}â€¦',
    'endInstall':u'Instalace je dokonÄena.',
    'endInstallConfigLater':u'Instalace dokonÄena.\nAgent nenÃ­ nastaven. MÅ¯Å¾ete ho ovÅ¡em nastavit pozdÄ›ji.',
    'endUninstall':u'Odinstalace je dokonÄena.',
    'enter':u'vstup',
    'enterInstallCode':u'Zadejte kÃ³d instalace',
    'enterInstallNewAgent':u'Zadejte Ãºdaje pro vytvoÅ™enÃ­ novÃ©ho agenta:',
    'enterRunCode':u'Zadejte kÃ³d spojenÃ­',
    'error':u'Chyba',
    'errorAgentAlreadyExsists':u'Agent {0} uÅ¾ existuje.',
    'errorAgentMax':u'PÅ™ekroÄen nejvyÅ¡Å¡Ã­ moÅ¾nÃ½ poÄet agentÅ¯.',
    'errorAgentNameNotValid':u'NÃ¡zev agenta nenÃ­ platnÃ½. Nelze pouÅ¾Ã­t znaky / \\ | # @ :',
    'errorConnectionConfig':u'Chyba spojenÃ­. Zkontrolujte zda je spuÅ¡tÄ›nÃ¡ sluÅ¾ba DWAgent.',
    'errorConnectionQuestion':u'Chyba spojenÃ­. Zkontroluje pÅ™ipojenÃ­ k Internetu nebo nastavenÃ­ brÃ¡ny firewall.\nChcete nastavit proxy?',
    'errorInvalidCode':u'ZadanÃ½ kÃ³d nenÃ­ platnÃ½.',
    'errorInvalidUserPassword':u'NeplatnÃ© uÅ¾ivatelskÃ© jmÃ©no nebo heslo.',
    'fieldRequired':u'Je tÅ™eba, aby kolonka â€ž{0}â€œ byla vyplnÄ›nÃ¡.',
    'install':u'Instalace',
    'installMonitor':u'Instalace monitoruâ€¦',
    'installMonitorErr':u'Instalace monitoru se nezdaÅ™ila.',
    'installService':u'Instalace sluÅ¾byâ€¦',
    'installServiceErr':u'Instalace sluÅ¾by se nezdaÅ™ila.',
    'installShortcuts':u'Instalace zÃ¡stupcÅ¯â€¦',
    'installShortcutsErr':u'Instalace zÃ¡stupcÅ¯ se nezdaÅ™ila.',
    'installerNotSupported':u'Tento instalÃ¡tor jiÅ¾ nenÃ­ podporovÃ¡n. StÃ¡hnÄ›te si prosÃ­m nejnovÄ›jÅ¡Ã­ verzi.',
    'ipAddress':u'IP adresa: {0}',
    'linuxRootPrivileges':u'Pro instalaci DWAgenta jsou zapotÅ™ebÃ­ prÃ¡va pro sprÃ¡vu systÃ©mu.\nSpusÅ¥te instalaÄnÃ­ skript jako superuÅ¾ivatel (napÅ™. pomocÃ­ sudo).',
    'menuConfigure':u'Nastavit',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Odinstalovat',
    'missingInfoFile':u'Soubor info.json nenalezen.',
    'missingNative':u'NativnÃ­ chyba.',
    'missingRuntime':u'BÄ›hovÃ© prostÅ™edÃ­ nenalezeno.',
    'monitorActive':u'aktivnÃ­',
    'monitorAgentDisabled':u'Agent je vypnutÃ½.',
    'monitorAgentEnabled':u'Agent je zapnutÃ½.',
    'monitorConfigure':u'Nastavit',
    'monitorConnections':u'SpojenÃ­',
    'monitorCurrentActivities':u'SouÄasnÃ© aktivity',
    'monitorDisable':u'Vypnout',
    'monitorDisableAgentQuestion':u'Vypnout spouÅ¡tÄ›nÃ­ agenta?',
    'monitorDownload':u'StahovÃ¡nÃ­',
    'monitorEnable':u'Zapnout',
    'monitorEnableAgentQuestion':u'Chcete zapnout spouÅ¡tÄ›nÃ­ agenta?',
    'monitorEnterPassword':u'Zadejte heslo:',
    'monitorErrorConnectionConfig':u'Chyba spojenÃ­. Zkontrolujte zda je spuÅ¡tÄ›nÃ¡ sluÅ¾ba DWAgent.',
    'monitorHide':u'SkrÃ½t',
    'monitorInvalidPassword':u'NeplatnÃ© heslo.',
    'monitorNoActivities':u'Å½Ã¡dnÃ¡ aktivita',
    'monitorScreenCapture':u'PÅ™Ã­stup k obrazovce',
    'monitorSession':u'SezenÃ­',
    'monitorShellSession':u'PÅ™Ã­stup k shellu',
    'monitorShow':u'Zobrazit',
    'monitorStatus':u'Stav',
    'monitorStatusDisabled':u'Vypnuto',
    'monitorStatusNoService':u'Å½Ã¡dnÃ¡ sluÅ¾ba',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Aktualizace',
    'monitorTitle':u'DWAgent â€“ Monitor',
    'monitorUninstall':u'Odinstalovat',
    'monitorUninstallNotRun':u'Pro odinstalaci jsou zapotÅ™ebÃ­ prÃ¡va pro sprÃ¡vu systÃ©mu.\nSpusÅ¥te pÅ™Ã­kaz dwaguninstall v pÅ™Ã­kazovÃ©m Å™Ã¡dku.',
    'monitorUpload':u'NahrÃ¡vÃ¡nÃ­',
    'mustAccept':u'Aby bylo moÅ¾nÃ© pokraÄovat, je tÅ™eba vybrat moÅ¾nost {0}',
    'mustSelectOptions':u'Vyberte jednu z moÅ¾nostÃ­.',
    'next':u'DalÅ¡Ã­',
    'no':u'Ne',
    'noTryAgain':u'Ne, zkusit znovu',
    'notInstalled':u'DWAgent nenÃ­ nainstalovanÃ½.',
    'ok':u'Ok',
    'option':u'Volba',
    'optionNotValid':u'VybranÃ¡ volba nenÃ­ platnÃ¡.',
    'or':u'nebo',
    'password':u'Heslo',
    'path':u'Cesta',
    'pathCreating':u'VytvÃ¡Å™enÃ­ sloÅ¾kyâ€¦',
    'pathNotCreate':u'SloÅ¾ku se nepodaÅ™ilo vytvoÅ™it. NeplatnÃ¡ cesta nebo nedostateÄnÃ¡ oprÃ¡vnÄ›nÃ­.',
    'pressEnter':u'PokraÄujte stiskem klÃ¡vesy Enter.',
    'privacyPolicy':u'ZÃ¡sadami ochrany osobnÃ­ch ÃºdajÅ¯',
    'proxyAuthPassword':u'Heslo',
    'proxyAuthUser':u'UÅ¾ivatel',
    'proxyHost':u'Stroj',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'Zadejte informace o proxy.',
    'proxyNone':u'NepouÅ¾Ã­vat',
    'proxyPort':u'Port',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'PÅ™evzÃ­t ze systÃ©mu',
    'reEnterCode':u'Znovu zadejte kÃ³d.',
    'reEnterData':u'Znovu zadejte Ãºdaje',
    'rePassword':u'Zadejte heslo znovu',
    'reject':u'OdmÃ­tnout',
    'removeFile':u'OdstraÅˆovÃ¡nÃ­ souboruâ€¦',
    'runWithoutInstallation':u'Spustit',
    'runWithoutInstallationClosing':u'UkonÄovÃ¡nÃ­ relaceâ€¦',
    'runWithoutInstallationConnecting':u'OtevÃ­rÃ¡nÃ­ relaceâ€¦',
    'runWithoutInstallationEnd':u'Relace ukonÄena.',
    'runWithoutInstallationOnlineBottom':u'VAROVÃNÃ:\nTyto Ãºdaje poskytnÄ›te jen dÅ¯vÄ›ryhodnÃ½m osobÃ¡m, protoÅ¾e jim tÃ­m dÃ¡vÃ¡te pÅ™Ã­stup do tohoto poÄÃ­taÄe. Pokud si nejste jisti tÃ­m, co dÄ›lÃ¡te, radÄ›ji tuto aplikaci ukonÄete.',
    'runWithoutInstallationOnlineBottomPutCode':u'VAROVÃNÃ:\nAgent je nynÃ­ pÅ™ipraven pÅ™ijÃ­mat pÅ™ipojenÃ­. Pokud si nejste jistÃ­, co dÄ›lÃ¡te, tuto aplikaci prosÃ­m zavÅ™ete.',
    'runWithoutInstallationOnlinePassword':u'Heslo: {0}',
    'runWithoutInstallationOnlineTop':u'Relace je aktivnÃ­.\nPro pÅ™ipojenÃ­ k tomuto agentovi navÅ¡tivte https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Relace je aktivnÃ­.',
    'runWithoutInstallationOnlineUser':u'UÅ¾ivatel: {0}',
    'runWithoutInstallationStarting':u'SpouÅ¡tÄ›nÃ­ agentaâ€¦',
    'runWithoutInstallationUnexpectedError':u'NeoÄekÃ¡vanÃ¡ chyba.\nNepodaÅ™ilo se spustit DWAgenta. Pokud problÃ©m pÅ™etrvÃ¡vÃ¡, zkuste si stÃ¡hnout nejnovÄ›jÅ¡Ã­ verzi DWAgenta, smaÅ¾te sloÅ¾ku â€ž{0}â€œ a spusÅ¥te DWAgenta znovu.',
    'runWithoutInstallationUpdating':u'Aktualizace agentaâ€¦',
    'runWithoutInstallationWait':u'ÄŒekejte, navazuje se novÃ© spojenÃ­ (pokus {0})â€¦',
    'selectPathInstall':u'Vyberte cestu k instalaci:',
    'skipCertValidation':u'Pozor: bezpeÄnostnÃ­ certifikÃ¡t nelze ovÄ›Å™it. Pokud budete pokraÄovat, pÅ™ipojenÃ­ nemusÃ­ bÃ½t bezpeÄnÃ©.\nZkontrolujte prosÃ­m nastavenÃ­ firewallu/antiviru a VaÅ¡Ã­ sÃ­tÄ› (router/modem).\nPÅ™esto pokraÄovat?',
    'startService':u'SpouÅ¡tÄ›nÃ­ sluÅ¾byâ€¦',
    'startServiceErr':u'SpuÅ¡tÄ›nÃ­ sluÅ¾by se nezdaÅ™ilo.',
    'termsAndConditions':u'SmluvnÃ­mi podmÃ­nkami',
    'titleInstall':u'DWAgent - instalace',
    'titleUninstall':u'DWAgent - odinstalace',
    'toBack':u'pro nÃ¡vrat zpÄ›t.',
    'toExit':u'pro ukonÄenÃ­.',
    'unattendedAccess':u'BezobsluÅ¾nÃ½\npÅ™Ã­stup',
    'unexpectedError':u'NeoÄekÃ¡vanÃ¡ chyba.\n{0}',
    'uninstallMonitor':u'OdstraÅˆovÃ¡nÃ­ monitoruâ€¦',
    'uninstallService':u'OdstraÅˆovÃ¡nÃ­ sluÅ¾byâ€¦',
    'uninstallShortcuts':u'OdstraÅˆovÃ¡nÃ­ zÃ¡stupcÅ¯â€¦',
    'unknownUser':u'NeznÃ¡mÃ½ uÅ¾ivatel',
    'user':u'UÅ¾ivatel',
    'validInteger':u'Je tÅ™eba, aby kolonka â€ž{0}â€œ bylo celÃ© kladnÃ© ÄÃ­slo.',
    'versionInstallNotValid':u'Tato varianta instalÃ¡toru nenÃ­ urÄenÃ¡ pro vÃ¡Å¡ operaÄnÃ­ sytÃ©m.\nStÃ¡hnÄ›te si sprÃ¡vnou verzi. {0}',
    'waiting':u'ÄŒekejteâ€¦',
    'warningLoginLogout':u'Aby se tato zmÄ›na projevila, uÅ¾ivatel se musÃ­ odhlÃ¡sit a znovu pÅ™ihlÃ¡sit.',
    'warningRemovePath':u'VarovÃ¡nÃ­: cÃ­lovÃ¡ sloÅ¾ka uÅ¾ existuje â€“ stÃ¡vajÃ­cÃ­ obsah bude smazÃ¡n.',
    'warningSpyingTool':u'UpozorÅˆujeme, Å¾e ke vzdÃ¡lenÃ©mu poÄÃ­taÄi nelze pÅ™istupovat bez souhlasu jeho uÅ¾ivatele. PouÅ¾Ã­vÃ¡nÃ­m sluÅ¾by DWService jako Å¡pionÃ¡Å¾nÃ­ho nÃ¡stroje mÅ¯Å¾ete poruÅ¡ovat zÃ¡kony zemÄ›, ve kterÃ© Å¾ijete.',
    'welcomeLicense':u'Licence\nTento software je svobodnÃ½ a opensource.\nSklÃ¡dÃ¡ se z jednÃ© hlavnÃ­ komponenty, vydanÃ© pod licencÃ­ MPLv2, a nÄ›kolika pomocnÃ½ch komponent, vydanÃ½ch pod rÅ¯znÃ½mi licencemi. VÃ­ce informacÃ­ naleznete na: https://www.dwservice.net/cs/licenses-sources.html',
    'welcomePrivacyTerms':u'PokraÄovÃ¡nÃ­m v instalaci nebo spuÅ¡tÄ›nÃ­ tohoto software vyjadÅ™ujete souhlas se #TERMSANDCONDITIONS a #PRIVACYPOLICY',
    'welcomeSecurity':u'ZabezpeÄenÃ­\nAby bylo ochrÃ¡nÄ›no VaÅ¡e soukromÃ­, garantujeme Å¾e na naÅ¡ich serverech nejsou uklÃ¡dÃ¡ny Å¾Ã¡dnÃ© Ãºdaje a komunikace je zaÅ¡ifrovÃ¡na tak, Å¾e je pro vÅ¡echny ostatnÃ­ neÄitelnÃ¡.',
    'welcomeSoftwareUpdates':u'Aktualizace software\nAktualizace tohoto software se dÄ›je automaticky.',
    'welcomeTermsAndConditions':u'VÃ½bÄ›rem moÅ¾nosti â€ž{0}â€œ nebo â€ž{1}â€œ pÅ™ijÃ­mÃ¡m #TERMSANDCONDITIONS.',
    'windowsAdminPrivileges':u'Pro instalaci DWAgenta jsou zapotÅ™ebÃ­ prÃ¡va pro sprÃ¡vu systÃ©mu.\nKliknÄ›te na instalaÄnÃ­ soubor pravÃ½m tlaÄÃ­tkem a z kontextovÃ© nabÃ­dky zvolte â€žSpustit jako sprÃ¡vceâ€œ.',
    'yes':u'Ano'
}
                                                                                                                                                                                 ui/messages/de.py                                                                                   0000644 0001750 0001750 00000031452 14647167544 013561  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Akzeptieren',
    'accessConfirm':u'MÃ¶chten Sie auf Ihr GerÃ¤t zugreifen.',
    'agentName':u'Agentenname',
    'alreadyInstalled':u'DWAgent ist bereits installiert. \n\nDer Agent wird automatisch auf die neueste Version aktualisiert. Das heisst, es kÃ¶nnen keine manuellen Updates durchgefÃ¼hrt werden.',
    'back':u'ZurÃ¼ck',
    'cancel':u'Abbrechen',
    'cancelInstall':u'Die Installation wurde abgebrochen.',
    'cancelUninstall':u'Die Deinstallation wurde abgebrochen.',
    'checkInstallCode':u'PrÃ¼fe Installationscode...',
    'chooseProxyType':u'Welcher Proxy-Typ soll verwendet werden?',
    'close':u'Schliessen',
    'code':u'Code',
    'commands':u'Befehle',
    'configureAgent':u'Agent konfigurieren',
    'configureAgentDisabled':u'Agent deaktiviert',
    'configureAgentEnabled':u'Agent aktiviert',
    'configureChangeInstallKey':u'Installations-Code Ã¤ndern',
    'configureChooseMonitorTrayIconVisibility':u'Monitor-Symbol in der Taskleiste anzeigen?',
    'configureChooseOperation':u'Bitte einen Vorgang auswÃ¤hlen:',
    'configureDesktopNotification':u'Desktopbenachrichtigung',
    'configureDesktopNotificationOK':u'Desktopbenachrichtigung erfolgreich konfiguriert.',
    'configureDisableAgent':u'Agent deaktivieren',
    'configureDisableAgentQuestion':u'Wollen Sie den Agenten deaktivieren?',
    'configureEnableAgent':u'Agent aktivieren',
    'configureEnableAgentQuestion':u'Wollen Sie den Agenten aktivieren?',
    'configureEnd':u'Die Konfiguration wurde fertiggestellt.',
    'configureErrorConnection':u'Verbindungsfehler. Bitte prÃ¼fen, ob der DWAgent-Dienst lÃ¤uft.',
    'configureExit':u'Beenden',
    'configureInsertPassword':u'Bitte Konfigurations-Passwort eingeben:',
    'configureInstallAgent':u'Wie soll der Agent bevorzugt konfiguriert werden?',
    'configureInstallCode':u'Bitte Installations-Code eingeben',
    'configureInstallNewAgent':u'Erzeuge neuen Agenten',
    'configureInstallPassword':u'Installations Passwort',
    'configureInstallUser':u'Benutzer',
    'configureInvalidPassword':u'UngÃ¼ltiges Passwort.',
    'configureKeyInstalled':u'SchlÃ¼ssel erfolgreich installiert.',
    'configureLater':u'SpÃ¤ter konfigurieren',
    'configureMonitor':u'Monitor konfigurieren',
    'configurePassword':u'Passwort konfigurieren',
    'configurePasswordErrNoMatch':u'Die PasswÃ¶rter stimmen nicht Ã¼berein.',
    'configurePasswordUpdated':u'Passwort aktualisiert.',
    'configureProxy':u'Proxy konfigurieren',
    'configureProxyEnd':u'Proxy erfolgreich konfiguriert.',
    'configureRemovePassword':u'Passwort entfernen',
    'configureRemovePasswordQuestion':u'MÃ¶chten Sie das Passwort entfernen?',
    'configureSetPassword':u'Passwort festlegen',
    'configureTitle':u'DWAgent - Konfiguration',
    'configureTrayIconOK':u'Taskleistensymbol erfolgreich konfiguriert.',
    'configureTrayIconVisibility':u'Sichtbarkeit des Taskleistensymbols',
    'configureUninstallKeyQuestion':u'Aktuellen Installations-Code entfernen?',
    'configureUninstallationKey':u'Deinstallation...',
    'confirmExit':u'Sind Sie sicher, dass das Programm beendet werden soll?',
    'confirmInstall':u'Den DWAgent in \'{0}\' installieren?',
    'confirmUninstall':u'Wollen Sie den DWAgent entfernen?',
    'copyFiles':u'Kopiere Dateien...',
    'createNewAgent':u'Agent wird erzeugt...',
    'decline':u'Ich lehne ab',
    'desktopNotificationAutoHide':u'Automatisch ausblenden',
    'desktopNotificationNone':u'Keine',
    'desktopNotificationVisible':u'Sichtbar',
    'downloadFile':u'Lade Datei {0} herunter...',
    'endInstall':u'Installation abgeschlossen.',
    'endInstallConfigLater':u'Installation abgeschlossen.\nDer Agent wurde nicht konfiguriert. Die Konfiguration kann aber spÃ¤ter erstellt werden.',
    'endUninstall':u'Deinstallation abgeschlossen.',
    'enter':u'Eingabe',
    'enterInstallCode':u'Installationscode eingeben',
    'enterInstallNewAgent':u'Daten fÃ¼r neuen Agenten eingeben:',
    'enterRunCode':u'Geben Sie den Verbindungscode ein',
    'error':u'Fehler',
    'errorAgentAlreadyExsists':u'Der Agent {0} existiert bereits.',
    'errorAgentMax':u'Maximale Anzahl an Agenten Ã¼berschritten.',
    'errorAgentNameNotValid':u'Der Agentenname ist ungÃ¼ltig. Die Zeichen / \\ | # @ : . kÃ¶nnen nicht verwendet werden.',
    'errorConnectionConfig':u'Verbindungsfehler. Bitte prÃ¼fen, ob der DWAgent-Dienst lÃ¤uft.',
    'errorConnectionQuestion':u'Verbindungsfehler. Bitte Internetverbindung oder Firewalleinstellungen prÃ¼fen.\nWollen Sie den Proxy konfigurieren?',
    'errorInvalidCode':u'Der eingegebene Code ist ungÃ¼ltig.',
    'errorInvalidUserPassword':u'Benutzername oder Passwort ungÃ¼ltig.',
    'fieldRequired':u'Das Feld \'{0}\' ist erforderlich.',
    'install':u'Installieren',
    'installMonitor':u'Installiere Monitor...',
    'installMonitorErr':u'Installation des Monitors fehlgeschlagen.',
    'installService':u'Installiere Dienst...',
    'installServiceErr':u'Installation des Dienstes fehlgeschlagen.',
    'installShortcuts':u'Installiere VerknÃ¼pfungen...',
    'installShortcutsErr':u'Installation der VerknÃ¼pfungen fehlgeschlagen.',
    'installerNotSupported':u'Dieses Installationsprogramm wird nicht mehr unterstÃ¼tzt. Bitte laden Sie die neueste Version herunter.',
    'ipAddress':u'IP-Adresse: {0}',
    'linuxRootPrivileges':u'FÃ¼r die Installation des DWAgent sind root-Rechte erforderlich.\nSkript bitte als root-Benutzer starten.',
    'menuConfigure':u'Konfigurieren',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Deinstallieren',
    'missingInfoFile':u'Datei info.json nicht gefunden.',
    'missingNative':u'Native nicht gefunden.',
    'missingRuntime':u'Laufzeitumgebung nicht gefunden.',
    'monitorActive':u'aktiv',
    'monitorAgentDisabled':u'Agent deaktiviert.',
    'monitorAgentEnabled':u'Agent aktiviert.',
    'monitorConfigure':u'Konfigurieren',
    'monitorConnections':u'Verbindungen',
    'monitorCurrentActivities':u'Momentane AktivitÃ¤ten',
    'monitorDisable':u'Deaktivieren',
    'monitorDisableAgentQuestion':u'Den Agenten deaktivieren?',
    'monitorDownload':u'Download',
    'monitorEnable':u'Aktivieren',
    'monitorEnableAgentQuestion':u'Den Agenten aktivieren?',
    'monitorEnterPassword':u'Passwort eingeben:',
    'monitorErrorConnectionConfig':u'Verbindungsfehler. Bitte prÃ¼fen, ob der DWAgent-Dienst lÃ¤uft.',
    'monitorHide':u'Ausblenden',
    'monitorInvalidPassword':u'UngÃ¼ltiges Passwort.',
    'monitorNoActivities':u'Keine AktivitÃ¤ten',
    'monitorScreenCapture':u'Bildschirmzugriff',
    'monitorSession':u'Sitzung',
    'monitorShellSession':u'Shell-Zugriff',
    'monitorShow':u'Einblenden',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Deaktiviert',
    'monitorStatusNoService':u'Kein Dienst',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Aktualisiere',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Deinstallieren',
    'monitorUninstallNotRun':u'FÃ¼r die Deinstallation sind root-Rechte erforderlich.\nBefehl dwaguninstall in der Shell mit root-Rechte ausfÃ¼hren.',
    'monitorUpload':u'Upload',
    'mustAccept':u'Zum Fortsetzen {0} auswÃ¤hlen',
    'mustSelectOptions':u'Auswahl einer Option erforderlcih.',
    'next':u'Weiter',
    'no':u'Nein',
    'noTryAgain':u'Nein, erneut versuchen',
    'notInstalled':u'DWAgent nicht installiert.',
    'ok':u'Ok',
    'option':u'Option',
    'optionNotValid':u'GewÃ¤hlte Option ungÃ¼ltig.',
    'or':u'oder',
    'password':u'Passwort',
    'path':u'Pfad',
    'pathCreating':u'Ordner wird erstellt...',
    'pathNotCreate':u'Ordner konnte nicht erstellt werden. UngÃ¼ltiger Pfad oder fehlende Berechtigungen.',
    'pressEnter':u'Zum Fortsetzen die Enter-Taste drÃ¼cken.',
    'privacyPolicy':u'Datenschutzbestimmungen',
    'proxyAuthPassword':u'Proxy-Passwort',
    'proxyAuthUser':u'Proxy-Benutzer',
    'proxyHost':u'Proxy-Host',
    'proxyHttp':u'Proxy-URL',
    'proxyInfo':u'Proxy-Informationen eingeben.',
    'proxyNone':u'Keiner',
    'proxyPort':u'Port',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'System',
    'reEnterCode':u'Code erneut eingeben',
    'reEnterData':u'Daten erneut eingeben',
    'rePassword':u'Passwort erneut eingeben',
    'reject':u'Ablehnen',
    'removeFile':u'Datei wird gelÃ¶scht...',
    'runWithoutInstallation':u'AusfÃ¼hren',
    'runWithoutInstallationClosing':u'Schliesse Sitzung...',
    'runWithoutInstallationConnecting':u'Ã–ffne Sitzung...',
    'runWithoutInstallationEnd':u'Sitzung beendet.',
    'runWithoutInstallationOnlineBottom':u'WARNUNG:\nGeben Sie diese Informationen nicht Dritten, denen Sie nicht vertrauen. Sonst kÃ¶nnen sich diese mit diesem Agenten vebinden. Im Zweifelsfall schliessen Sie dieses Programm.',
    'runWithoutInstallationOnlineBottomPutCode':u'WARNUNG:\nDer Agent kann nun Verbindungen annehmen. Wenn Sie sich nicht sicher sind, was Sie tun, schliessen Sie bitte diese Anwendung.',
    'runWithoutInstallationOnlinePassword':u'Passwort: {0}',
    'runWithoutInstallationOnlineTop':u'Die Sitzung ist aktiv.\nUm sich nun mit diesem Computer zu verbinden, mÃ¼ssen in einem Browser die Webadresse https://www.dwservice.net aufgerufen und bei "Login" die folgenden Angaben eingegeben werden:',
    'runWithoutInstallationOnlineTopPutCode':u'Die Sitzung ist aktiv.',
    'runWithoutInstallationOnlineUser':u'Benutzer: {0}',
    'runWithoutInstallationStarting':u'Agent startet...',
    'runWithoutInstallationUnexpectedError':u'Unerwarteter Fehler.\nDWAgent konnte nicht gestartet werden. Wenn das Problem bestehen bleibt, bitte die neueste Version von DWAgent herunterladen, den Ordner \'{0}\' lÃ¶schen und DWAgent erneut ausfÃ¼hren.',
    'runWithoutInstallationUpdating':u'Aktualisiere Agenten...',
    'runWithoutInstallationWait':u'Warte auf neue Verbindung ({0}. Versuch)...',
    'selectPathInstall':u'Installationsverzeichnis auswÃ¤hlen:',
    'skipCertValidation':u'Warnung: Das Sicherheitszertifikat kann nicht validiert werden, wenn Sie fortfahren, ist die Verbindung mÃ¶glicherweise nicht sicher.\nBitte Ã¼berprÃ¼fen Sie die Router-/Firewall-/Antivirenkonfiguration des Netzwerks oder des Standorts an dem Sie gerade arbeiten.\nTrotzdem fortfahren?',
    'startService':u'Dienst wird gestartet...',
    'startServiceErr':u'Dienst konnte nicht gestartet werden.',
    'termsAndConditions':u'Konditionen und Bedingungen',
    'titleInstall':u'DWAgent - Installation',
    'titleUninstall':u'DWAgent - Deinstallation',
    'toBack':u'um zurÃ¼ckzukehren.',
    'toExit':u'um zu beenden.',
    'unattendedAccess':u'Unbeaufsichtigter\nZugriff',
    'unexpectedError':u'Unerwarteter Fehler.\n{0}',
    'uninstallMonitor':u'Deinstalliere Monitor...',
    'uninstallService':u'Deinstalliere Dienst...',
    'uninstallShortcuts':u'Deinstalliere VerknÃ¼pfungen...',
    'unknownUser':u'Unbekannter Benutzer',
    'user':u'Benutzer',
    'validInteger':u'Das Feld \'{0}\' muss ganzzahlig sein.',
    'versionInstallNotValid':u'Diese Version des Installationsprogrammes passt nicht zu ihrem Betriebssystem.\nBitte die richtige Version herunterladen. {0}',
    'waiting':u'Warte...',
    'warningLoginLogout':u'Um die Ã„nderungen anzuwenden, muss der Benutzer sich erneut anmelden.',
    'warningRemovePath':u'Warnung: Der Zielordner ist bereits vorhanden und wird gelÃ¶scht.',
    'warningSpyingTool':u'Seien Sie sich bewusst, dass Sie auf einen Remotecomputer nicht ohne die Zustimmung des Benutzers zugreifen dÃ¼rfen. Wenn Sie DWService als Spionagewerkzeug verwenden, machen Sie sich mÃ¶glicherweise in der Rechtsprechung Ihres Landes strafbar.',
    'welcomeLicense':u'Lizenz:\nDiese Software ist frei und Open Source. \nDer Hauptbestandteil der Software ist der MPLv2-Lizenz unterstellt, einige zusÃ¤tzliche Softwarekomponenten sind anderen Lizenzen unterstellt. FÃ¼r mehr Informationen siehe: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Indem Sie mit der Installation fortfahren oder diese Software ausfÃ¼hren, erklÃ¤ren Sie sich mit den #TERMSANDCONDITIONS und der #PRIVACYPOLICY einverstanden',
    'welcomeSecurity':u'Sicherheit:\nUm den Datenschutz zu gewÃ¤hrleisten, garantieren wir, dass keine Informationen auf unseren Servern gespeichert werden und die Kommunikation verschlÃ¼sselt ist, sodass Dritte keinen Zugriff darauf haben.',
    'welcomeSoftwareUpdates':u'Software-Aktualisierungen:\nDiese Software wird automatisch aktualisiert',
    'welcomeTermsAndConditions':u'Durch AuswÃ¤hlen der Option \'{0}\' oder \'{1}\' akzeptiere ich die #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Zur Installation von DWAgent sind Administratorenrechte erforderlich.\nBitte die Installation "Als Administrator ausfÃ¼hren".',
    'yes':u'Ja'
}
                                                                                                                                                                                                                      ui/messages/sv.py                                                                                   0000644 0001750 0001750 00000027772 14630344564 013622  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Jag accepterar',
    'accessConfirm':u'Vill komma Ã¥t din enhet.',
    'agentName':u'Agentnamn',
    'alreadyInstalled':u'DWAgent redan installerat.\n\nAgenten uppdaterar automatiskt till den senaste versionen. Det betyder att du inte behÃ¶ver installera nyare uppdateringar manuellt.',
    'back':u'Tillbaka',
    'cancel':u'Avbryt',
    'cancelInstall':u'Installationen avbrÃ¶ts.',
    'cancelUninstall':u'Jag accepterar',
    'checkInstallCode':u'Kontrollerar installationskod...',
    'chooseProxyType':u'Vilken proxytyp vill du anvÃ¤nda?',
    'close':u'StÃ¤ng',
    'code':u'Kod',
    'commands':u'Kommandon',
    'configureAgent':u'Konfigurera agenten',
    'configureAgentDisabled':u'Agenten inaktiverad.',
    'configureAgentEnabled':u'Agenten aktiverad.',
    'configureChangeInstallKey':u'Byt installationskod',
    'configureChooseMonitorTrayIconVisibility':u'Vill du visa monitor i aktivitetsfÃ¤ltet?',
    'configureChooseOperation':u'VÃ¤lj en operation:',
    'configureDesktopNotification':u'Skrivbordsavisering',
    'configureDesktopNotificationOK':u'Skrivbordsavisering framgÃ¥ngsrikt konfigurerad.',
    'configureDisableAgent':u'Inaktivera agenten',
    'configureDisableAgentQuestion':u'Vill du avaktivera agenten?',
    'configureEnableAgent':u'Aktivera agenten',
    'configureEnableAgentQuestion':u'Vill du aktivera agenten?',
    'configureEnd':u'Konfigurationen har slutfÃ¶rts.',
    'configureErrorConnection':u'Anslutningsfel. Kontrollera om DWAgent-tjÃ¤nsten Ã¤r igÃ¥ng.',
    'configureExit':u'Avsluta',
    'configureInsertPassword':u'Ange konfigurationslÃ¶senord:',
    'configureInstallAgent':u'Hur fÃ¶redrar du att konfigurera agenten?',
    'configureInstallCode':u'LÃ¤gga in installationskod',
    'configureInstallNewAgent':u'Skapa en ny agent',
    'configureInstallPassword':u'InstallationslÃ¶senord',
    'configureInstallUser':u'AnvÃ¤ndare',
    'configureInvalidPassword':u'Felaktigt lÃ¶senord.',
    'configureKeyInstalled':u'Nyckeln korrekt installerad.',
    'configureLater':u'Konfigurera senare',
    'configureMonitor':u'Konfigurera monitor',
    'configurePassword':u'Konfigurera lÃ¶senord',
    'configurePasswordErrNoMatch':u'LÃ¶senorden Ã¤r olika.',
    'configurePasswordUpdated':u'LÃ¶senurdet uppdaterat.',
    'configureProxy':u'Konfigurera proxy',
    'configureProxyEnd':u'Proxy konfigurerad.',
    'configureRemovePassword':u'Ta bort lÃ¶senord',
    'configureRemovePasswordQuestion':u'Vill du ta bort lÃ¶senordet?',
    'configureSetPassword':u'VÃ¤lj lÃ¶senord',
    'configureTitle':u'DWAgent - Konfiguration',
    'configureTrayIconOK':u'AktivitetsfÃ¤ltsikons synlighet konfigurerad.',
    'configureTrayIconVisibility':u'AktivitetsfÃ¤ltsikons synlighet',
    'configureUninstallKeyQuestion':u'Avinstallera nuvarande installationskod?',
    'configureUninstallationKey':u'Avinstallerar...',
    'confirmExit':u'Ã„r du sÃ¤ker pÃ¥ att du vill avsluta?',
    'confirmInstall':u'Vill du installera DWAgent pÃ¥ \'{0}\'?',
    'confirmUninstall':u'Vill du ta bort DWAgent?',
    'copyFiles':u'Kopierar filer...',
    'createNewAgent':u'Skapa agent pÃ¥gÃ¥r...',
    'decline':u'Jag accepterar inte',
    'desktopNotificationAutoHide':u'GÃ¶m automatiskt',
    'desktopNotificationNone':u'Ingen',
    'desktopNotificationVisible':u'Synlig',
    'downloadFile':u'Laddar ned fil {0}...',
    'endInstall':u'Installation har slutfÃ¶rts.',
    'endInstallConfigLater':u'Installation har slutfÃ¶rts.\nAgenten har inte konfigurerats. Du kan fortfarande fortsÃ¤tta med konfigurationen senare.',
    'endUninstall':u'Avinstallationen Ã¤r klar.',
    'enter':u'enter',
    'enterInstallCode':u'Skriv in installationskod',
    'enterInstallNewAgent':u'Ange data fÃ¶r att skapa en ny agent:',
    'enterRunCode':u'Ange anslutningskoden',
    'error':u'Fel',
    'errorAgentAlreadyExsists':u'Agenten {0} existerar redan.',
    'errorAgentMax':u'Maximalt antal agenter har Ã¶verskridits.',
    'errorAgentNameNotValid':u'Agentnamnet Ã¤r inte giltigt. Du kan inte anvÃ¤nda tecknen / \\ | # @ : .',
    'errorConnectionConfig':u'Anslutningsfel. Kontrollera om DWAgent-tjÃ¤nsten Ã¤r igÃ¥ng.',
    'errorConnectionQuestion':u'Anslutningsfel. Kontrollera din internetanslutning eller brandvÃ¤ggs-konfiguration.\nVill du konfigurera proxy?',
    'errorInvalidCode':u'Inskriven kod Ã¤r felaktig.',
    'errorInvalidUserPassword':u'Ogiltig anvÃ¤ndare eller lÃ¶senord.',
    'fieldRequired':u'FÃ¤ltet \'{0}\' Ã¤r obligatoriskt.',
    'install':u'Installera',
    'installMonitor':u'Installerar monitor...',
    'installMonitorErr':u'Installation av monitor misslyckades.',
    'installService':u'Installerar tjÃ¤nst...',
    'installServiceErr':u'Installation av tjÃ¤nsten misslyckades.',
    'installShortcuts':u'Installerar genvÃ¤gar...',
    'installShortcutsErr':u'Installationen av genvÃ¤gar misslyckades.',
    'installerNotSupported':u'Det hÃ¤r installationsprogrammet stÃ¶ds inte lÃ¤ngre. Ladda ner den senaste versionen.',
    'ipAddress':u'IP Adress: {0}',
    'linuxRootPrivileges':u'Du mÃ¥ste ha root privilegier fÃ¶r att installera DWAgent.\nStarta skriptet som root-anvÃ¤ndaren.',
    'menuConfigure':u'Konfigurera',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Avinstallera',
    'missingInfoFile':u'Filen info.json ej hittad.',
    'missingNative':u'Native ej hittad.',
    'missingRuntime':u'Runtime ej hittad.',
    'monitorActive':u'aktiv',
    'monitorAgentDisabled':u'Agenten inaktiverad.',
    'monitorAgentEnabled':u'Agenten aktiverad.',
    'monitorConfigure':u'Konfigurera',
    'monitorConnections':u'Anslutningar',
    'monitorCurrentActivities':u'Aktuella aktiviteter',
    'monitorDisable':u'Inaktivera',
    'monitorDisableAgentQuestion':u'Vill du inaktivera agenten?',
    'monitorDownload':u'Ladda ned',
    'monitorEnable':u'Aktivera',
    'monitorEnableAgentQuestion':u'Vill du aktivera agenten?',
    'monitorEnterPassword':u'Skriv in lÃ¶senord:',
    'monitorErrorConnectionConfig':u'Anslutningsfel. Kontrollera om DWAgent-tjÃ¤nsten Ã¤r igÃ¥ng.',
    'monitorHide':u'GÃ¶m',
    'monitorInvalidPassword':u'Felaktigt lÃ¶senord.',
    'monitorNoActivities':u'Inga aktiviteter',
    'monitorScreenCapture':u'SkÃ¤rminspelning',
    'monitorSession':u'Session',
    'monitorShellSession':u'Skal',
    'monitorShow':u'Visa',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Inaktiverad',
    'monitorStatusNoService':u'Ingen service',
    'monitorStatusOffline':u'Ej tillgÃ¤nglig',
    'monitorStatusOnline':u'TillgÃ¤nglig',
    'monitorStatusUpdating':u'Uppdaterar',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Avinstallera',
    'monitorUninstallNotRun':u'Du kan inte avinstallera utan root-behÃ¶righeter.\nKÃ¶r kommandot dwaguninstall i terminalsessionen.',
    'monitorUpload':u'Ladda upp',
    'mustAccept':u'FÃ¶r att fortsÃ¤tta mÃ¥ste du vÃ¤lja alternativet {0}',
    'mustSelectOptions':u'Du mÃ¥ste vÃ¤lja ett alternativ.',
    'next':u'NÃ¤sta',
    'no':u'Nej',
    'noTryAgain':u'Nej, fÃ¶rsÃ¶k igen.',
    'notInstalled':u'DWAgent ej installerad.',
    'ok':u'Ok',
    'option':u'Alternativ',
    'optionNotValid':u'Det valda alternativet Ã¤r ogiltigt.',
    'or':u'eller',
    'password':u'LÃ¶senord',
    'path':u'SÃ¶kvÃ¤g',
    'pathCreating':u'Mapp skapande...',
    'pathNotCreate':u'Mappen kunde ej skapas. Ogiltig sÃ¶kvÃ¤g eller behÃ¶righet nekad.',
    'pressEnter':u'Tryck pÃ¥ enter fÃ¶r att fortsÃ¤tta.',
    'privacyPolicy':u'Integritetspolicy',
    'proxyAuthPassword':u'LÃ¶senord',
    'proxyAuthUser':u'AnvÃ¤ndare',
    'proxyHost':u'VÃ¤rd',
    'proxyHttp':u'Http',
    'proxyInfo':u'Skriv in proxy info.',
    'proxyNone':u'Ingen',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'System',
    'reEnterCode':u'Skriv in koden igen',
    'reEnterData':u'Ange data igen',
    'rePassword':u'Skriv lÃ¶senord igen',
    'reject':u'Avvisa',
    'removeFile':u'Raderar fil...',
    'runWithoutInstallation':u'KÃ¶r',
    'runWithoutInstallationClosing':u'Stanger session...',
    'runWithoutInstallationConnecting':u'Ã–ppnar session...',
    'runWithoutInstallationEnd':u'Session avslutad.',
    'runWithoutInstallationOnlineBottom':u'VARNING:\nOffentliggÃ¶r inte denna information till personer som inte Ã¤r betrodda, eftersom de dÃ¥ kan ansluta till den hÃ¤r agenten. SÃ¥ om du Ã¤r osÃ¤ker pÃ¥ vad gÃ¶r du, vÃ¤nligen avsluta denna ansÃ¶kan.',
    'runWithoutInstallationOnlineBottomPutCode':u'VARNING:\nNu Ã¤r agenten redo att acceptera anslutningar. SÃ¥ om du Ã¤r osÃ¤ker pÃ¥ vad gÃ¶r du, vÃ¤nligen stÃ¤ng denna applikation.',
    'runWithoutInstallationOnlinePassword':u'LÃ¶senord: {0}',
    'runWithoutInstallationOnlineTop':u'Sessionen Ã¤r aktiv.\nFÃ¶r att ansluta till den hÃ¤r agenten, gÃ¥ till https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sessionen Ã¤r aktiv.',
    'runWithoutInstallationOnlineUser':u'AnvÃ¤ndare: {0}',
    'runWithoutInstallationStarting':u'Startar agent...',
    'runWithoutInstallationUnexpectedError':u'OvÃ¤ntat fel.\nDet var inte mÃ¶jligt att starta DWAgent. Om problemet kvarstÃ¥r, fÃ¶rsÃ¶k ladda ner den senaste versionen av DWAgent, ta bort mappen "{0}" och kÃ¶r DWAgent igen.',
    'runWithoutInstallationUpdating':u'Uppdaterar agent...',
    'runWithoutInstallationWait':u'VÃ¤nta pÃ¥ den nya anslutningen (fÃ¶rsÃ¶k {0})...',
    'selectPathInstall':u'VÃ¤lj sÃ¶kvÃ¤g till installationen:',
    'skipCertValidation':u'Varning: SÃ¤kerhetscertifikatet kan inte valideras, om du fortsÃ¤tter kanske anslutningen inte Ã¤r sÃ¤ker.\nKontrollera nÃ¤tverkets router/brandvÃ¤gg/antiviruskonfiguration.\nFortsÃ¤tt Ã¤ndÃ¥?',
    'startService':u'Startar tjÃ¤nsten...',
    'startServiceErr':u'Start av tjÃ¤nsten misslyckades.',
    'termsAndConditions':u'Villkor',
    'titleInstall':u'DWAgent - Installation',
    'titleUninstall':u'DWAgent - Avinstallation',
    'toBack':u'fÃ¶r att gÃ¥ tillbaka.',
    'toExit':u'fÃ¶r att avsluta.',
    'unattendedAccess':u'Obevakad\nÃ¥tkomst',
    'unexpectedError':u'OvÃ¤ntat fel.\n{0}',
    'uninstallMonitor':u'Avinstallerar monitor...',
    'uninstallService':u'Avinstallerar tjÃ¤nst...',
    'uninstallShortcuts':u'Avinstallerar genvÃ¤gar...',
    'unknownUser':u'OkÃ¤nd anvÃ¤ndare',
    'user':u'AnvÃ¤ndare',
    'validInteger':u'FÃ¤ltet \'{0}\' mÃ¥ste vara ett heltal.',
    'versionInstallNotValid':u'Versionen av installationsprogrammet Ã¤r inte korrekt fÃ¶r ditt operativsystem.\nVar god ladda ner rÃ¤tt version. {0}',
    'waiting':u'VÃ¤ntar...',
    'warningLoginLogout':u'FÃ¶r att denna Ã¤ndring ska trÃ¤da i kraft mÃ¥ste anvÃ¤ndaren logga ut och logga in igen.',
    'warningRemovePath':u'Varning: om destinationsmappen redan finns kommer den att tas bort.',
    'warningSpyingTool':u'TÃ¤nk pÃ¥ att du inte fÃ¥r ansluta till en fjÃ¤rrdator utan fjÃ¤rrdatorns anvÃ¤ndares medgivande. Genom att anvÃ¤nda DWService som ett spioneringsverktyg kan du bryta mot lagar i ditt hemland.',
    'welcomeLicense':u'Licens\nDenna programvara Ã¤r fri och Ã¶ppen kÃ¤llkod.\nDen bestÃ¥r av en huvudkomponent och flera tillbehÃ¶rskomponenter definierade som "app", som kan styras av olika licenser. FÃ¶r mer information besÃ¶k: https://www.dwservice.net/sv/licenses-sources.html',
    'welcomePrivacyTerms':u'Genom att fortsÃ¤tta med installationen eller kÃ¶ra denna programvara godkÃ¤nner du #TERMSANDCONDITIONS och #PRIVACYPOLICY',
    'welcomeSecurity':u'SÃ¤kerhet\nFÃ¶r att skydda din integritet garanterar vi att ingen information lagras pÃ¥ vÃ¥ra servrar, och kommunikationen Ã¤r krypterad sÃ¥ att tredje part inte kan lÃ¤sa dem.',
    'welcomeSoftwareUpdates':u'Mjukvaruuppdateringar\nUppdatering av denna programvara sker automatiskt.',
    'welcomeTermsAndConditions':u'Genom att vÃ¤lja alternativet \'{0}\' eller \'{1}\' accepterar jag #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Du mÃ¥ste ha administratÃ¶rsbehÃ¶righeter fÃ¶r att installera DWAgent.\nStarta programmet med \'KÃ¶r som administratÃ¶r\'.',
    'yes':u'Ja'
}
      ui/messages/zh_TW.py                                                                                0000644 0001750 0001750 00000026540 14630344570 014212  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'æˆ‘æŽ¥å—',
    'accessConfirm':u'æƒ³è¦å­˜å–æ‚¨çš„è£ç½®ã€‚',
    'agentName':u'ä»£ç†å™¨åç¨±',
    'alreadyInstalled':u'DWAgent å·²ç¶“å®‰è£ã€‚\n\nä»£ç†å™¨æœƒè‡ªå‹•æ›´æ–°åˆ°æœ€æ–°ç‰ˆæœ¬ï¼Œäº¦å³æ‚¨ä¸éœ€è¦æ‰‹å‹•å®‰è£æ›´æ–°ã€‚',
    'back':u'ä¸Šä¸€æ­¥',
    'cancel':u'å–æ¶ˆ',
    'cancelInstall':u'å·²å–æ¶ˆå®‰è£ã€‚',
    'cancelUninstall':u'å·²å–æ¶ˆè§£é™¤å®‰è£ã€‚',
    'checkInstallCode':u'æª¢æŸ¥å®‰è£ç¢¼â€¦',
    'chooseProxyType':u'æ‚¨è¦ä½¿ç”¨ä½•ç¨®ä»£ç†ä¼ºæœå™¨é¡žåž‹ï¼Ÿ',
    'close':u'é—œé–‰',
    'code':u'å®‰è£ç¢¼',
    'commands':u'å‘½ä»¤',
    'configureAgent':u'çµ„é…ä»£ç†å™¨',
    'configureAgentDisabled':u'å·²åœç”¨ä»£ç†å™¨ã€‚',
    'configureAgentEnabled':u'å·²å•Ÿç”¨ä»£ç†å™¨ã€‚',
    'configureChangeInstallKey':u'è®Šæ›´å®‰è£ç¢¼',
    'configureChooseMonitorTrayIconVisibility':u'æ‚¨æƒ³è¦åœ¨ç³»çµ±åŒ£ä¸­é¡¯ç¤ºç›£æŽ§åœ–ç¤ºå—Žï¼Ÿ',
    'configureChooseOperation':u'è«‹é¸æ“‡ä¸€é …æ“ä½œï¼š',
    'configureDesktopNotification':u'æ¡Œé¢é€šçŸ¥',
    'configureDesktopNotificationOK':u'å·²æˆåŠŸçµ„é…æ¡Œé¢é€šçŸ¥ã€‚',
    'configureDisableAgent':u'åœç”¨ä»£ç†å™¨',
    'configureDisableAgentQuestion':u'æ‚¨æƒ³è¦åœç”¨ä»£ç†å™¨å—Žï¼Ÿ',
    'configureEnableAgent':u'å•Ÿç”¨ä»£ç†å™¨',
    'configureEnableAgentQuestion':u'æ‚¨æƒ³è¦å•Ÿç”¨ä»£ç†å™¨å—Žï¼Ÿ',
    'configureEnd':u'çµ„æ…‹å·²ç¶“å®Œæˆã€‚',
    'configureErrorConnection':u'é€£ç·šéŒ¯èª¤ã€‚è«‹æª¢æŸ¥æ˜¯å¦åµæ¸¬å¾—åˆ° DWAgent æœå‹™ã€‚',
    'configureExit':u'é€€å‡º',
    'configureInsertPassword':u'è«‹è¼¸å…¥çµ„é…å¯†ç¢¼ï¼š',
    'configureInstallAgent':u'æ‚¨æƒ³è¦å¦‚ä½•çµ„é…ä»£ç†å™¨ï¼Ÿ',
    'configureInstallCode':u'è¼¸å…¥å®‰è£ç¢¼',
    'configureInstallNewAgent':u'å»ºç«‹æ–°çš„ä»£ç†å™¨',
    'configureInstallPassword':u'å®‰è£å¯†ç¢¼',
    'configureInstallUser':u'ä½¿ç”¨è€…',
    'configureInvalidPassword':u'ç„¡æ•ˆçš„å¯†ç¢¼ã€‚',
    'configureKeyInstalled':u'å·²æˆåŠŸå®‰è£é‡‘é‘°ã€‚',
    'configureLater':u'ç¨å¾Œé€²è¡Œçµ„é…',
    'configureMonitor':u'çµ„é…ç›£æŽ§å™¨',
    'configurePassword':u'é…ç½®å¯†ç¢¼',
    'configurePasswordErrNoMatch':u'å¯†ç¢¼ä¸ç¬¦åˆã€‚',
    'configurePasswordUpdated':u'å·²æ›´æ–°å¯†ç¢¼ã€‚',
    'configureProxy':u'çµ„é…ä»£ç†ä¼ºæœå™¨',
    'configureProxyEnd':u'å·²æˆåŠŸçµ„é…ä»£ç†ä¼ºæœå™¨ã€‚',
    'configureRemovePassword':u'ç§»é™¤å¯†ç¢¼',
    'configureRemovePasswordQuestion':u'æ‚¨æƒ³è¦ç§»é™¤å¯†ç¢¼å—Žï¼Ÿ',
    'configureSetPassword':u'è¨­å®šå¯†ç¢¼',
    'configureTitle':u'DWAgent - çµ„æ…‹',
    'configureTrayIconOK':u'å·²æˆåŠŸçµ„é…ç³»çµ±åŒ£åœ–ç¤ºã€‚',
    'configureTrayIconVisibility':u'ç³»çµ±åŒ£åœ–ç¤ºå¯è¦–æ€§',
    'configureUninstallKeyQuestion':u'è§£é™¤å®‰è£ç›®å‰çš„å®‰è£ç¢¼ï¼Ÿ',
    'configureUninstallationKey':u'è§£é™¤å®‰è£â€¦',
    'confirmExit':u'ç¢ºå®šè¦é€€å‡ºï¼Ÿ',
    'confirmInstall':u'æ‚¨æƒ³è¦å®‰è£ DWAgent åˆ°ã€Œ{0}ã€ï¼Ÿ',
    'confirmUninstall':u'æ‚¨æƒ³è¦ç§»é™¤ DWAgent å—Žï¼Ÿ',
    'copyFiles':u'æ‹·è²æª”æ¡ˆâ€¦',
    'createNewAgent':u'æ­£åœ¨å»ºç«‹ä»£ç†å™¨â€¦',
    'decline':u'ä¸æŽ¥å—',
    'desktopNotificationAutoHide':u'è‡ªå‹•éš±è—',
    'desktopNotificationNone':u'æ²’æœ‰',
    'desktopNotificationVisible':u'å¯è¦‹',
    'downloadFile':u'ä¸‹è¼‰æª”æ¡ˆ {0}â€¦',
    'endInstall':u'å·²å®Œæˆå®‰è£ã€‚',
    'endInstallConfigLater':u'å·²å®Œæˆå®‰è£ã€‚\nå°šæœªçµ„é…ä»£ç†å™¨ã€‚æ‚¨ä»ç„¶èƒ½å¤ ç¨å¾Œå»ºç«‹çµ„æ…‹ã€‚',
    'endUninstall':u'å·²å®Œæˆè§£é™¤å®‰è£ã€‚',
    'enter':u'è¼¸å…¥',
    'enterInstallCode':u'è¼¸å…¥å®‰è£ç¢¼',
    'enterInstallNewAgent':u'è¼¸å…¥è³‡æ–™ä»¥å»ºç«‹æ–°çš„ä»£ç†å™¨ï¼š',
    'enterRunCode':u'è¼¸å…¥é€£ç·šç¢¼',
    'error':u'éŒ¯èª¤',
    'errorAgentAlreadyExsists':u'å·²ç¶“å­˜åœ¨ä»£ç†å™¨ {0}ã€‚',
    'errorAgentMax':u'è¶…å‡ºä»£ç†å™¨çš„æœ€å¤§æ•¸é‡ã€‚',
    'errorAgentNameNotValid':u'ä»£ç†å™¨åç¨±ç„¡æ•ˆã€‚æ‚¨ä¸å¯ä»¥ä½¿ç”¨å­—å…ƒ / \\ | # @ : ã€‚',
    'errorConnectionConfig':u'é€£ç·šéŒ¯èª¤ã€‚è«‹æª¢æŸ¥æ˜¯å¦åµæ¸¬å¾—åˆ° DWAgent æœå‹™ã€‚',
    'errorConnectionQuestion':u'é€£ç·šéŒ¯èª¤ã€‚è«‹æª¢æŸ¥æ‚¨çš„ç¶²éš›ç¶²è·¯é€£ç·šæˆ–é˜²ç«ç‰†ã€‚\næ‚¨è¦çµ„é…ä»£ç†ä¼ºæœå™¨å—Žï¼Ÿ',
    'errorInvalidCode':u'è¼¸å…¥çš„ç¢¼ç„¡æ•ˆã€‚',
    'errorInvalidUserPassword':u'ç„¡æ•ˆçš„ä½¿ç”¨è€…æˆ–å¯†ç¢¼ã€‚',
    'fieldRequired':u'æ¬„ä½ã€Œ{0}ã€æ˜¯å¿…è¦é …ç›®ã€‚',
    'install':u'å®‰è£',
    'installMonitor':u'å®‰è£ç›£æŽ§å™¨â€¦',
    'installMonitorErr':u'å®‰è£ç›£æŽ§å™¨å¤±æ•—ã€‚',
    'installService':u'å®‰è£æœå‹™â€¦',
    'installServiceErr':u'å®‰è£æœå‹™å¤±æ•—ã€‚',
    'installShortcuts':u'å®‰è£å¿«æ·éµâ€¦',
    'installShortcutsErr':u'å®‰è£å¿«æ·éµå¤±æ•—ã€‚',
    'installerNotSupported':u'å·²ä¸å†æ”¯æ´é€™å€‹å®‰è£ç¨‹å¼ã€‚è«‹ä¸‹è¼‰æœ€æ–°ç‰ˆæœ¬ã€‚',
    'ipAddress':u'IP ä½å€ï¼š{0}',
    'linuxRootPrivileges':u'æ‚¨å¿…é ˆæœ‰ç®¡ç†å“¡æ¬ŠåŠ›æ‰èƒ½å®‰è£ DWAgentã€‚\nè«‹é…åˆ sudo æˆ–ä»¥ root èº«åˆ†é‹è¡Œå‘½ä»¤ç¨¿ã€‚',
    'menuConfigure':u'çµ„é…',
    'menuMonitor':u'ç›£æŽ§å™¨',
    'menuUninstall':u'è§£é™¤å®‰è£',
    'missingInfoFile':u'æ‰¾ä¸åˆ°æª”æ¡ˆ info.jsonã€‚',
    'missingNative':u'æ‰¾ä¸åˆ°åŽŸç”Ÿæž¶æ§‹ç¨‹å¼ã€‚',
    'missingRuntime':u'æ‰¾ä¸åˆ°åŸ·è¡ŒéšŽæ®µå‡½å¼åº«ã€‚',
    'monitorActive':u'ä½œç”¨ä¸­',
    'monitorAgentDisabled':u'å·²åœç”¨ä»£ç†å™¨ã€‚',
    'monitorAgentEnabled':u'å·²å•Ÿç”¨ä»£ç†å™¨ã€‚',
    'monitorConfigure':u'çµ„é…',
    'monitorConnections':u'é€£ç·š',
    'monitorCurrentActivities':u'ç›®å‰æ´»å‹•',
    'monitorDisable':u'åœç”¨',
    'monitorDisableAgentQuestion':u'æ‚¨æƒ³è¦åœç”¨ä»£ç†å™¨å—Žï¼Ÿ',
    'monitorDownload':u'ä¸‹è¼‰',
    'monitorEnable':u'å•Ÿç”¨',
    'monitorEnableAgentQuestion':u'æ‚¨æƒ³è¦å•Ÿç”¨ä»£ç†å™¨å—Žï¼Ÿ',
    'monitorEnterPassword':u'è¼¸å…¥å¯†ç¢¼ï¼š',
    'monitorErrorConnectionConfig':u'é€£ç·šéŒ¯èª¤ã€‚è«‹æª¢æŸ¥æ˜¯å¦åµæ¸¬å¾—åˆ° DWAgent æœå‹™ã€‚',
    'monitorHide':u'éš±è—',
    'monitorInvalidPassword':u'ç„¡æ•ˆçš„å¯†ç¢¼ã€‚',
    'monitorNoActivities':u'æ²’æœ‰æ´»å‹•',
    'monitorScreenCapture':u'ç•«é¢å­˜å–',
    'monitorSession':u'ä½œæ¥­éšŽæ®µ',
    'monitorShellSession':u'å‘½ä»¤æ®¼å­˜å–',
    'monitorShow':u'é¡¯ç¤º',
    'monitorStatus':u'ç‹€æ…‹',
    'monitorStatusDisabled':u'å·²åœç”¨',
    'monitorStatusNoService':u'æ²’æœ‰æœå‹™',
    'monitorStatusOffline':u'é›¢ç·š',
    'monitorStatusOnline':u'ä¸Šç·š',
    'monitorStatusUpdating':u'æ›´æ–°ä¸­',
    'monitorTitle':u'DWAgent - ç›£æŽ§å™¨',
    'monitorUninstall':u'è§£é™¤å®‰è£',
    'monitorUninstallNotRun':u'æ‚¨ç„¡æ³•ä¸å…·ç®¡ç†å“¡è¨±å¯å°±é€²è¡Œè§£é™¤å®‰è£ã€‚\né…åˆ sudo æˆ–ä»¥ root èº«åˆ†é‹è¡Œå‘½ä»¤ dwaguninstallã€‚',
    'monitorUpload':u'ä¸Šå‚³',
    'mustAccept':u'ç‚ºäº†è¦ç¹¼çºŒé€²è¡Œï¼Œæ‚¨å¿…é ˆé¸å–é¸é … {0}',
    'mustSelectOptions':u'æ‚¨å¿…é ˆé¸å–é¸é …ã€‚',
    'next':u'ä¸‹ä¸€æ­¥',
    'no':u'å¦',
    'noTryAgain':u'å¦ï¼Œå†è©¦ä¸€æ¬¡',
    'notInstalled':u'DWAgent æœªå®‰è£ã€‚',
    'ok':u'ç¢ºå®š',
    'option':u'é¸é …',
    'optionNotValid':u'æ‰€é¸é …ç›®ç„¡æ•ˆã€‚',
    'or':u'æˆ–',
    'password':u'å¯†ç¢¼',
    'path':u'è·¯å¾‘',
    'pathCreating':u'å»ºç«‹è³‡æ–™å¤¾â€¦',
    'pathNotCreate':u'ç„¡æ³•å»ºç«‹è³‡æ–™å¤¾ã€‚ç„¡æ•ˆçš„è·¯å¾‘æˆ–æœªç²è¨±å¯ã€‚',
    'pressEnter':u'æŒ‰ä¸‹è¼¸å…¥ä»¥ç¹¼çºŒã€‚',
    'privacyPolicy':u'éš±ç§æ”¿ç­–',
    'proxyAuthPassword':u'å¯†ç¢¼',
    'proxyAuthUser':u'ä½¿ç”¨è€…',
    'proxyHost':u'ä¸»æ©Ÿ',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'åŠ å…¥ä»£ç†ä¼ºæœå™¨è³‡è¨Šã€‚',
    'proxyNone':u'ç„¡',
    'proxyPort':u'é€šè¨ŠåŸ ',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'ç³»çµ±',
    'reEnterCode':u'é‡æ–°è¼¸å…¥å®‰è£ç¢¼',
    'reEnterData':u'é‡æ–°è¼¸å…¥è³‡æ–™',
    'rePassword':u'é‡æ‰“å¯†ç¢¼',
    'reject':u'æ‹’çµ•',
    'removeFile':u'ç§»é™¤æª”æ¡ˆâ€¦',
    'runWithoutInstallation':u'é‹è¡Œ',
    'runWithoutInstallationClosing':u'é—œé–‰ä½œæ¥­éšŽæ®µâ€¦',
    'runWithoutInstallationConnecting':u'é–‹å•Ÿä½œæ¥­éšŽæ®µâ€¦',
    'runWithoutInstallationEnd':u'ä½œæ¥­éšŽæ®µçµæŸã€‚',
    'runWithoutInstallationOnlineBottom':u'è­¦å‘Šï¼š\nä¸è¦é€éœ²é€™å€‹è³‡è¨Šçµ¦æ‚¨ä¸ä¿¡è³´çš„äººï¼Œå®ƒå°‡å…è¨±ä»–å€‘å­˜å–é€™å€‹è£ç½®ã€‚å¦‚æžœæ‚¨ä¸ç¢ºå®šåœ¨åšä»€éº¼ï¼Œè«‹é—œé–‰é€™å€‹æ‡‰ç”¨ç¨‹å¼ã€‚',
    'runWithoutInstallationOnlineBottomPutCode':u'è­¦å‘Šï¼š\nä»£ç†å™¨ç¾åœ¨å·²æº–å‚™å¥½æŽ¥å—é€£ç·šã€‚å¦‚æžœæ‚¨ä¸ç¢ºå®šåœ¨åšä»€éº¼ï¼Œè«‹é—œé–‰é€™å€‹æ‡‰ç”¨ç¨‹å¼ã€‚',
    'runWithoutInstallationOnlinePassword':u'å¯†ç¢¼ï¼š{0}',
    'runWithoutInstallationOnlineTop':u'ä½œæ¥­éšŽæ®µæ­£åœ¨é‹ä½œã€‚\nè¦é€£ç·šé€™å€‹ä»£ç†å™¨è«‹å‰å¾€ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'ä½œæ¥­éšŽæ®µæ­£åœ¨é‹ä½œã€‚',
    'runWithoutInstallationOnlineUser':u'ä½¿ç”¨è€…ï¼š{0}',
    'runWithoutInstallationStarting':u'å•Ÿå‹•ä»£ç†å™¨â€¦',
    'runWithoutInstallationUnexpectedError':u'éžé æœŸéŒ¯èª¤ã€‚\nDWAgent ç„¡æ³•å•Ÿå‹•ã€‚å¦‚æžœå•é¡ŒæŒçºŒï¼Œè«‹ä¸‹è¼‰æœ€è¿‘çš„ DWAgent é‡‹å‡ºç‰ˆæœ¬ï¼Œåˆªé™¤è³‡æ–™å¤¾ã€Œ{0}ã€ä¸¦å†æ¬¡é‹è¡Œ DWAgentã€‚',
    'runWithoutInstallationUpdating':u'æ›´æ–°ä»£ç†å™¨â€¦',
    'runWithoutInstallationWait':u'ç­‰å¾…æ–°çš„é€£ç·š (å˜—è©¦ {0})â€¦',
    'selectPathInstall':u'é¸å–å®‰è£è·¯å¾‘ï¼š',
    'skipCertValidation':u'è­¦å‘Šï¼šç„¡æ³•é©—è­‰å®‰å…¨æ†‘è­‰ï¼Œè‹¥æ˜¯æ‚¨ç¹¼çºŒé€£ç·šå¯èƒ½æœƒä¸å®‰å…¨ã€‚\nè«‹æª¢æŸ¥ç¶²è·¯æˆ–æœ¬åœ°çš„è·¯ç”±å™¨â•±é˜²ç«ç‰†â•±é˜²æ¯’çµ„æ…‹ã€‚\né‚„è¦ç¹¼çºŒå—Žï¼Ÿ',
    'startService':u'å•Ÿå‹•æœå‹™â€¦',
    'startServiceErr':u'å•Ÿå‹•æœå‹™æ™‚å¤±æ•—ã€‚',
    'termsAndConditions':u'æ¢æ¬¾èˆ‡ç´°å‰‡',
    'titleInstall':u'DWAgent - å®‰è£',
    'titleUninstall':u'DWAgent - è§£é™¤å®‰è£',
    'toBack':u'å°‡è¦è¿”å›žã€‚',
    'toExit':u'å°‡è¦é€€å‡ºã€‚',
    'unattendedAccess':u'ç„¡äººå€¼å®ˆçš„\nå­˜å–',
    'unexpectedError':u'éžé æœŸéŒ¯èª¤ã€‚\n{0}',
    'uninstallMonitor':u'è§£é™¤å®‰è£ç›£æŽ§å™¨â€¦',
    'uninstallService':u'è§£é™¤å®‰è£æœå‹™â€¦',
    'uninstallShortcuts':u'è§£é™¤å®‰è£å¿«æ·éµâ€¦',
    'unknownUser':u'ä¸æ˜Žä½¿ç”¨è€…',
    'user':u'ä½¿ç”¨è€…',
    'validInteger':u'æ¬„ä½ã€Œ{0}ã€å¿…é ˆæ˜¯æ•´æ•¸ã€‚',
    'versionInstallNotValid':u'é€™å€‹ç‰ˆæœ¬çš„å®‰è£ç¨‹å¼ä¸é©ç”¨æ–¼æ‚¨çš„ä½œæ¥­ç³»çµ±ã€‚\nè«‹ä¸‹è¼‰æ­£ç¢ºç‰ˆæœ¬ã€‚{0}',
    'waiting':u'ç­‰å¾…â€¦',
    'warningLoginLogout':u'ç‚ºäº†è®“è®Šæ›´ç”Ÿæ•ˆï¼Œä½¿ç”¨è€…å¿…é ˆç™»å‡ºå†ç™»å…¥ã€‚',
    'warningRemovePath':u'è­¦å‘Šï¼šç›®çš„è³‡æ–™å¤¾å·²ç¶“å­˜åœ¨ï¼Œä¸¦ä¸”å°‡è¢«åˆªé™¤ã€‚',
    'warningSpyingTool':u'è«‹æ³¨æ„æ‚¨å¦‚æžœæ²’æœ‰å¾—åˆ°å…¶ä½¿ç”¨è€…çš„å…è¨±ï¼Œå°‡ç„¡æ³•å­˜å–é ç«¯é›»è…¦ã€‚åˆ©ç”¨ DWService åšç‚ºé–“è«œå·¥å…·ï¼Œå¯èƒ½é•åæ‚¨æ‰€åœ¨åœ‹å®¶çš„æ³•å¾‹ã€‚',
    'welcomeLicense':u'æŽˆæ¬Š\né€™å€‹è»Ÿé«”æ˜¯è‡ªç”±è»Ÿé«”èˆ‡é–‹æ”¾åŽŸå§‹ç¢¼ã€‚\nå®ƒç”±ä¸€å€‹åŸºæ–¼ MPLv2 æŽˆæ¬Šçš„ä¸»è¦æˆåˆ†æ‰€çµ„æˆï¼ŒåŠ ä¸Šå¤šå€‹ç”±ä¸åŒæŽˆæ¬Šæ‰€è¦ç¯„çš„é¡å¤–æˆåˆ†ã€‚æƒ³è¦ç²å¾—æ›´å¤šè³‡è¨Šï¼Œè«‹é€ è¨ªï¼šhttps://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'ç¹¼çºŒå®‰è£æˆ–åŸ·è¡Œé€™å€‹è»Ÿé«”è¡¨ç¤ºæ‚¨åŒæ„ #TERMSANDCONDITIONS èˆ‡ #PRIVACYPOLICY',
    'welcomeSecurity':u'å®‰å…¨\nç‚ºäº†ä¿è­·æ‚¨çš„éš±ç§ï¼Œæˆ‘å€‘ä¸æœƒåœ¨æˆ‘å€‘çš„ä¼ºæœå™¨ä¸Šå„²å­˜ä¾†è‡ªä»£ç†å™¨çš„è³‡è¨Šã€‚é€šè¨Šæ˜¯ä»‹æ–¼ä½¿ç”¨è€…ä¹‹é–“ï¼Œæˆ‘å€‘çš„ä¼ºæœå™¨èˆ‡ä»£ç†å™¨ä¹‹é–“æœ‰åŠ å¯†ï¼Œå› è€Œç¬¬ä¸‰æ–¹ç„¡æ³•å­˜å–å®ƒå€‘ã€‚',
    'welcomeSoftwareUpdates':u'è»Ÿé«”æ›´æ–°\né€™å€‹è»Ÿé«”æœƒè‡ªå‹•æ›´æ–°',
    'welcomeTermsAndConditions':u'è—‰ç”±é¸å–ã€Œ{0}ã€æˆ–ã€Œ{1}ã€é¸é …ï¼Œæˆ‘æŽ¥å— #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'æ‚¨å¿…é ˆæœ‰ç®¡ç†è€…æ¬ŠåŠ›æ‰èƒ½å®‰è£ DWAgentã€‚\nè«‹æŒ‰ä¸€ä¸‹å³éµä»¥åŸ·è¡Œæª”æ¡ˆï¼Œä¸¦æŒ‰ä¸€ä¸‹ã€Œä»¥ç®¡ç†è€…èº«åˆ†é‹è¡Œã€ä¾†å•Ÿå§‹å®‰è£ç¨‹å¼ã€‚',
    'yes':u'æ˜¯'
}
                                                                                                                                                                ui/messages/lt.py                                                                                   0000644 0001750 0001750 00000027072 14036550607 013577  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'AÅ¡ sutinku',
    'agentName':u'Agento pavadinimas',
    'alreadyInstalled':u'DWAgent jau instaliuotas. \n\nAgentas automatiÅ¡kai atsinaujina. Jums nereikia atnaujinti patiems.',
    'back':u'Atgal',
    'cancel':u'AtÅ¡aukti',
    'cancelInstall':u'Diegimas nutrauktas',
    'cancelUninstall':u'Diegimas nutrauktas',
    'checkInstallCode':u'Diegimo kodo tikrinimas',
    'chooseProxyType':u'KokÄ¯ tarpinÄ¯ serverÄ¯ norite naudoti ?',
    'close':u'UÅ¾daryti',
    'code':u'Kodas',
    'commands':u'Komandos',
    'configureAgent':u'KonfigÅ«ruoti agentÄ…',
    'configureAgentDisabled':u'Agentas iÅ¡jungtas',
    'configureAgentEnabled':u'Agentas Ä¯jungtas',
    'configureChangeInstallKey':u'Pakeisti diegimo kodÄ…',
    'configureChooseMonitorTrayIconVisibility':u'Ar norite rodyti piktogramÄ… uÅ¾duoÄiÅ³ juostoje?',
    'configureChooseOperation':u'Pasirinkite operacijÄ…:',
    'configureDesktopNotification':u'PraneÅ¡imas darbalaukyje',
    'configureDesktopNotificationOK':u'Darbalaukio praneÅ¡imas sÄ—kmingai sukonfigÅ«ruotas.',
    'configureDisableAgent':u'IÅ¡jungti agentÄ…',
    'configureDisableAgentQuestion':u'Ar norite iÅ¡jungti agentÄ… ?',
    'configureEnableAgent':u'Ä®jungti agentÄ…',
    'configureEnableAgentQuestion':u'Ar norite Ä¯jungti agentÄ… ?',
    'configureEnd':u'KonfigÅ«ravimas baigtas',
    'configureErrorConnection':u'Prijungimo klaida. Patikrinkite ar DWAgent servisas yra Ä¯jungtas.',
    'configureExit':u'IÅ¡eiti',
    'configureInsertPassword':u'Ä®raÅ¡ykite konfigÅ«ravimo slaptaÅ¾odÄ¯',
    'configureInstallAgent':u'Kaip JÅ«s norite konfigÅ«ruoti agentÄ… ?',
    'configureInstallCode':u'Ä®veskite diegimo kodÄ…',
    'configureInstallNewAgent':u'Sukurti naujÄ… agentÄ…',
    'configureInvalidPassword':u'Neteisingas slaptaÅ¾odis',
    'configureKeyInstalled':u'Raktas Ä¯diegtas sÄ—kmingai',
    'configureLater':u'KonfigÅ«ruoti vÄ—liau',
    'configureMonitor':u'KonfigÅ«ruoti monitoriÅ³',
    'configurePassword':u'KonfigÅ«ruoti slaptaÅ¾odÄ¯',
    'configurePasswordErrNoMatch':u'SlaptaÅ¾odis neatitinka',
    'configurePasswordUpdated':u'SlaptaÅ¾odis atjaujintas',
    'configureProxy':u'KonfigÅ«ruoti tarpinÄ¯ serverÄ¯',
    'configureProxyEnd':u'Tarpinis serveris sÄ—kmingai sukonfigÅ«ruotas',
    'configureRemovePassword':u'PaÅ¡alinti slaptaÅ¾odÄ¯',
    'configureRemovePasswordQuestion':u'Ar norite paÅ¡alinti slaptaÅ¾odÄ¯?',
    'configureSetPassword':u'Nustatyti slaptaÅ¾odÄ¯',
    'configureTitle':u'DWAgent konfigÅ«racija',
    'configureTrayIconOK':u'Piktogramos matomumas sÄ—kmingai sukonfigÅ«ruotas.',
    'configureTrayIconVisibility':u'Piktogramos matomumas',
    'configureUninstallKeyQuestion':u'PaÅ¡alinti dabartinÄ¯ diegimo kodÄ…?',
    'configureUninstallationKey':u'PaÅ¡alinama...',
    'confirmExit':u'Ar tikrai kad norite iÅ¡eiti?',
    'confirmInstall':u'Ar norite Ä¯diegti DWAgent Ä¯ â€ž{0}â€œ?',
    'confirmUninstall':u'Ar norite paÅ¡alinti DWAgent?',
    'copyFiles':u'Failai kopijuojami...',
    'createNewAgent':u'Kuriamas agentas...',
    'decline':u'Nesutinku',
    'desktopNotificationAutoHide':u'AutomatiÅ¡kai slÄ—pti',
    'desktopNotificationNone':u'NÄ— vienas',
    'desktopNotificationVisible':u'Matomas',
    'downloadFile':u'AtsisiunÄiamas failas{0}...',
    'dwsPassword':u'DWS slaptaÅ¾odis',
    'dwsUser':u'DWS vartotojas',
    'endInstall':u'Diegimas baigtas.',
    'endInstallConfigLater':u'Diegimas baigtas.\nAgentas nebuvo sukonfigÅ«ruotas. VÄ—liau galÄ—site tÄ™sti konfigÅ«racijÄ….',
    'endUninstall':u'PaÅ¡alinimas baigtas.',
    'enter':u'Ä¯eiti',
    'enterInstallCode':u'Ä®veskite diegimo kodÄ…',
    'enterInstallNewAgent':u'Ä®veskite duomenis, kad sukurtumÄ—te naujÄ… agentÄ…:',
    'enterRunCode':u'Ä®veskite ryÅ¡io kodÄ…',
    'error':u'Klaida',
    'errorAgentAlreadyExsists':u'Agentas {0} jau egzistuoja.',
    'errorAgentMax':u'VirÅ¡ytas maksimalus agentÅ³ skaiÄius.',
    'errorAgentNameNotValid':u'Agento vardas negalioja. Negalite naudoti Å¾enklÅ³ / \ | # @:.',
    'errorConnectionConfig':u'RyÅ¡io klaida. Patikrinkite, ar DWAgent servisas paleistas.',
    'errorConnectionQuestion':u'RyÅ¡io klaida. Patikrinkite savo interneto ryÅ¡Ä¯ arba ugniasienÄ—s konfigÅ«racijÄ….\nAr norite sukonfigÅ«ruoti tarpinÄ¯ serverÄ¯?',
    'errorInvalidCode':u'Ä®vestas kodas neteisingas.',
    'errorInvalidUserPassword':u'Netinkamas vartotojas arba slaptaÅ¾odis.',
    'fieldRequired':u'Laukas â€ž{0}â€œ yra bÅ«tinas.',
    'install':u'Laukia instaliacijos',
    'installMonitor':u'Diegiamas monitorius...',
    'installMonitorErr':u'Nepavyko Ä¯diegti monitoriaus.',
    'installService':u'Diegiamas servisas...',
    'installServiceErr':u'Nepavyko Ä¯diegti serviso.',
    'installShortcuts':u'Diegiamos nuorodos...',
    'installShortcutsErr':u'Nepavyko Ä¯diegti nuorodÅ³.',
    'linuxRootPrivileges':u'NorÄ—dami Ä¯diegti DWAgent, turite turÄ—ti Administratoriaus teises.\nPradÄ—kite scenarijÅ³ naudodami administratoriaus teisÄ—mis.',
    'menuConfigure':u'KonfigÅ«ruoti',
    'menuMonitor':u'Monitorius',
    'menuUninstall':u'IÅ¡instaliuoti',
    'missingInfoFile':u'Failas info.json nerastas.',
    'missingNative':u'Native nerasta.',
    'missingRuntime':u'Klaidos nerasta.',
    'monitorActive':u'aktyvus',
    'monitorAgentDisabled':u'Agentas iÅ¡jungtas.',
    'monitorAgentEnabled':u'Agentas Ä¯jungtas.',
    'monitorConfigure':u'KonfigÅ«ruoti',
    'monitorConnections':u'RyÅ¡iai',
    'monitorCurrentActivities':u'DabartinÄ— veikla',
    'monitorDisable':u'IÅ¡jungti',
    'monitorDisableAgentQuestion':u'Ar norite iÅ¡jungti agentÄ…?',
    'monitorDownload':u'AtsisiÅ³sti',
    'monitorEnable':u'Ä®galinti',
    'monitorEnableAgentQuestion':u'Ar norite Ä¯jungti agentÄ…?',
    'monitorEnterPassword':u'Ä®vesti slaptaÅ¾odÄ¯:',
    'monitorErrorConnectionConfig':u'RyÅ¡io klaida. Patikrinkite, ar DWAgent servisas paleistas.',
    'monitorHide':u'SlÄ—pti',
    'monitorInvalidPassword':u'Netinkamas slaptaÅ¾odis',
    'monitorNoActivities':u'NÄ—ra jokios veiklos',
    'monitorScreenCapture':u'Ekrano prieiga',
    'monitorSession':u'Sesija',
    'monitorShellSession':u'Shell prieiga',
    'monitorShow':u'Rodyti',
    'monitorStatus':u'Statusas',
    'monitorStatusDisabled':u'IÅ¡ungta',
    'monitorStatusNoService':u'NÄ—ra ryÅ¡io su servisu',
    'monitorStatusOffline':u'AtsijungÄ™s',
    'monitorStatusOnline':u'PrisijungÄ™s',
    'monitorStatusUpdating':u'Atnaujinama',
    'monitorTitle':u'DWAgent - Monitorius',
    'monitorUninstall':u'PaÅ¡alinti',
    'monitorUninstallNotRun':u'NeÄ¯manoma paÅ¡alinti be administratoriaus teisiÅ³.\nVykdykite komandÄ… dwaguninstall administratoriaus teisÄ—mis.',
    'monitorUpload':u'Ä®kelti',
    'mustAccept':u'NorÄ—dami tÄ™sti, turite pasirinkti {0}',
    'mustSelectOptions':u'Turite pasirinkti parinktÄ¯.',
    'next':u'Kitas',
    'no':u'Ne',
    'noTryAgain':u'Bandykite dar kartÄ…',
    'notInstalled':u'â€žDWAgentâ€œ neÄ¯diegta.',
    'ok':u'Gerai',
    'option':u'Parinktis',
    'optionNotValid':u'Pasirinkta parinktis netinkama.',
    'or':u'arba',
    'password':u'SlaptaÅ¾odis',
    'path':u'kelias',
    'pathCreating':u'Aplanko kÅ«rimas...',
    'pathNotCreate':u'Nepavyko sukurti aplanko. Netinkamas kelias arba leidimas nesuteiktas.',
    'pressEnter':u'NorÄ—dami tÄ™sti, paspauskite â€žEnterâ€œ.',
    'privacyPolicy':u'Privatumo politika',
    'proxyAuthPassword':u'SlaptaÅ¾odis',
    'proxyAuthUser':u'Naudotojas',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Ä®terpkite tarpinio serverio informacijÄ….',
    'proxyNone':u'Joks',
    'proxyPort':u'Prievadas',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistema',
    'reEnterCode':u'IÅ¡ naujo Ä¯veskite kodÄ…',
    'reEnterData':u'IÅ¡ naujo Ä¯veskite duomenis',
    'rePassword':u'Pakartokite slaptaÅ¾odÄ¯',
    'removeFile':u'Failas Å¡alinama...',
    'runWithoutInstallation':u'Paleisti',
    'runWithoutInstallationClosing':u'UÅ¾daroma sesija ...',
    'runWithoutInstallationConnecting':u'Atidaroma sesija ...',
    'runWithoutInstallationEnd':u'Sesija baigÄ—si.',
    'runWithoutInstallationOnlineBottom':u'Ä®SPÄ–JIMAS:\nNeatskleiskite Å¡ios informacijos Å¾monÄ—ms, kuriems nepasitikite. Jei ne, leidÅ¾ia jiems susisiekti su Å¡iuo agentu. Taigi, jei nesate tikri, kÄ… darote, uÅ¾darykite Å¡iÄ… programÄ….',
    'runWithoutInstallationOnlineBottomPutCode':u'Ä®SPÄ–JIMAS:\nDabar agentas yra pasirengÄ™s priimti ryÅ¡Ä¯. Taigi, jei nesate tikri, kÄ… darote, uÅ¾darykite Å¡iÄ… programÄ….',
    'runWithoutInstallationOnlinePassword':u'SlaptaÅ¾odis: {0}',
    'runWithoutInstallationOnlineTop':u'Sesija aktyvi.\nNorÄ—dami prisijungti prie Å¡io agento, eikite Ä¯ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sesija aktyvi.',
    'runWithoutInstallationOnlineUser':u'Vartotojas: {0}',
    'runWithoutInstallationStarting':u'Agentas paleidÅ¾iamas ...',
    'runWithoutInstallationUnexpectedError':u'NetikÄ—ta klaida.\nNepavyko paleisti DWAgent. Jei problema iÅ¡lieka, pabandykite atsisiÅ³sti naujausiÄ… â€žDWAgentâ€œ versijÄ…, iÅ¡trinkite aplankÄ… â€ž{0}â€œ ir paleiskite â€žDWAgentâ€œ dar kartÄ….',
    'runWithoutInstallationUpdating':u'AgentÅ³ atnaujinimas ...',
    'runWithoutInstallationWait':u'Palaukite, kol vyksta naujas susijungimas (bandymas {0}) ...',
    'selectPathInstall':u'Pasirinkite diegimo keliÄ…:',
    'startService':u'PaleidÅ¾iamas servisas...',
    'startServiceErr':u'Nepavyko paleisti serviso.',
    'termsAndConditions':u'Terminai ir sÄ…lygos',
    'titleInstall':u'DWAgent - diegimas',
    'titleUninstall':u'DWAgent - paÅ¡alinimas',
    'toBack':u'grÄ¯Å¾ti atgal.',
    'toExit':u'iÅ¡eiti.',
    'unexpectedError':u'NetikÄ—ta klaida.\n{0}',
    'uninstallMonitor':u'PaÅ¡alinamas monitorius ...',
    'uninstallService':u'PaÅ¡alinama servisas ...',
    'uninstallShortcuts':u'PaÅ¡alinamos nuorodos ...',
    'user':u'Vartotojas',
    'validInteger':u'Laukas â€ž{0}â€œ turi bÅ«ti sveikasis skaiÄius.',
    'versionInstallNotValid':u'Diegimo programos versija netinkama jÅ«sÅ³ operacinei sistemai.\nAtsisiÅ³skite tinkamÄ… versijÄ…. {0}',
    'waiting':u'Laukiama...',
    'warningLoginLogout':u'Kad Å¡is pakeitimas Ä¯sigaliotÅ³, vartotojas turi atsijungti ir prisijungti dar kartÄ….',
    'warningRemovePath':u'Ä®spÄ—jimas paskirties aplankas jau yra, tada jis bus iÅ¡trintas.',
    'warningSpyingTool':u'Atminkite, kad negalite pasiekti nuotolinio kompiuterio be jo vartotojo sutikimo. Naudodami â€žDWServiceâ€œ kaip Å¡nipinÄ—jimo Ä¯rankÄ¯ galite paÅ¾eisti savo gyvenamosios Å¡alies Ä¯statymus.',
    'welcomeLicense':u'Licencija\nÅ i programinÄ— Ä¯ranga yra nemokama ir atvira.\nJÄ¯ sudaro vienas pagrindinis komponentas ir keli pagalbiniai komponentai, apibrÄ—Å¾ti â€žprogramaâ€œ, kuriÄ… gali valdyti skirtingos licencijos. NorÄ—dami gauti daugiau informacijos, apsilankykite https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'TÄ™sdami diegimÄ… arba vykdydami Å¡iÄ… programinÄ™ Ä¯rangÄ… sutinkate su #TERMSANDCONDITIONS ir #PRIVACYPOLICY',
    'welcomeSecurity':u'Saugumas\nNorÄ—dami apsaugoti jÅ«sÅ³ privatumÄ…, mes garantuojame, kad jokia informacija nebus saugoma mÅ«sÅ³ serveriuose, o ryÅ¡iai yra Å¡ifruojami, kad treÄiosios Å¡alys jÅ³ niekaip negalÄ—tÅ³ skaityti.',
    'welcomeSoftwareUpdates':u'PrograminÄ—s Ä¯rangos atnaujinimai\nÅ ios programinÄ—s Ä¯rangos atnaujinimai yra automatiniai.',
    'windowsAdminPrivileges':u'NorÄ—dami Ä¯diegti DWAgent, turite turÄ—ti administratoriaus teises.\nPradÄ—kite vykdomÄ…jÄ¯ failÄ… â€žvykdyti kaip administratoriÅ³â€œ.',
    'yes':u'Taip'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ui/messages/__init__.py                                                                             0000644 0001750 0001750 00000001176 15017535532 014714  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
import resources

restext=resources.ResText("ui.messages")

def set_locale(lng):
    restext.set_locale(lng)
    
def get_locale():
    return restext.get_locale()

def is_rtl():
    try:
        l=restext.get_locale()
        if l is not None:
            if l=="iw" or l.startswith("iw_"):
                return True
    except:
        None
    return False

def get_message(key):
    return restext.get(key)                                                                                                                                                                                                                                                                                                                                                                                                  ui/messages/no.py                                                                                   0000644 0001750 0001750 00000023666 14630343127 013576  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Jeg godtar',
    'agentName':u'Agentnavn',
    'alreadyInstalled':u'DWAgent er allerede installert.\n\nAgenten vil automatisk oppdatere seg til nyere versjon. Dette betyr at du aldri mer vil trenge Ã¥ manuelt installere oppdateringer.',
    'back':u'Tilbake',
    'cancel':u'Avbryt',
    'cancelInstall':u'Installasjonen ble kanselert.',
    'cancelUninstall':u'Jeg godtar',
    'checkInstallCode':u'Sjekker installasjonskode...',
    'chooseProxyType':u'Hvilken proxy vil du bruke?',
    'close':u'Lukk',
    'code':u'Kode',
    'commands':u'Kommandoer',
    'configureAgent':u'Konfigurer agent',
    'configureAgentDisabled':u'Agenten er deaktivert.',
    'configureAgentEnabled':u'Agenten er pÃ¥.',
    'configureChangeInstallKey':u'Endre installasjonskode',
    'configureChooseMonitorTrayIconVisibility':u'Vil du vise agenten i oppgavelinjen?',
    'configureChooseOperation':u'Vennligst velg en oppgave:',
    'configureDisableAgent':u'Deaktiver agent',
    'configureDisableAgentQuestion':u'Ã˜nsker du Ã¥ deaktivere agenten?',
    'configureEnableAgent':u'SlÃ¥ pÃ¥ agent',
    'configureEnableAgentQuestion':u'Ã˜nsker du Ã¥ slÃ¥ pÃ¥ agenten?',
    'configureEnd':u'Konfigurasjonen er fullfÃ¸rt.',
    'configureErrorConnection':u'Tilkoblingsfeil. VÃ¦r vennlig Ã¥ sjekke om DWAgent tjenesten kjÃ¸rer.',
    'configureExit':u'GÃ¥ ut',
    'configureInsertPassword':u'Venligst skriv konfigurasjonspassord:',
    'configureInstallAgent':u'Hvordan foretrekker du Ã¥ konfigurere agenten?',
    'configureInstallCode':u'Skriv inn installasjonskoden',
    'configureInstallNewAgent':u'Lag ny agent',
    'configureInvalidPassword':u'Ugyldig passord',
    'configureKeyInstalled':u'NÃ¸kkel ble installert',
    'configureLater':u'Konfigurer senere',
    'configureMonitor':u'Konfigurer monitor',
    'configurePassword':u'Konfigurer passord',
    'configurePasswordErrNoMatch':u'Passordene er ikke like',
    'configurePasswordUpdated':u'Passord oppdatert.',
    'configureProxy':u'Konfigurer proxy.',
    'configureProxyEnd':u'Proxy er nÃ¥ konfigurert.',
    'configureRemovePassword':u'Fjern passord',
    'configureRemovePasswordQuestion':u'Ã˜nsker du Ã¥ fjerne passordet?',
    'configureSetPassword':u'Sett passord',
    'configureTitle':u'DWAgent - konfigurasjon',
    'configureTrayIconOK':u'Skuff ikon synlighet, konfigurert vellykket.',
    'configureTrayIconVisibility':u'Skuff ikon synlighet',
    'configureUninstallKeyQuestion':u'Fjern den gjeldende installasjonskoden?',
    'configureUninstallationKey':u'Avinstallerer...',
    'confirmExit':u'Ã˜nsker du Ã¥ avslutte?',
    'confirmInstall':u'Vil du installere DWAgent til \'{0}\'?',
    'confirmUninstall':u'Ã˜nsker du Ã¥ fjerne DWAgent?',
    'copyFiles':u'Kopierer filer...',
    'createNewAgent':u'Oppretter agent...',
    'decline':u'Jeg godtar ikke',
    'downloadFile':u'Last ned fil {0}...',
    'dwsPassword':u'DWS passord',
    'dwsUser':u'DWS bruker',
    'endInstall':u'Installasjonen er fullfÃ¸rt.',
    'endInstallConfigLater':u'Installasjon er fullfÃ¸rt.\nAgenten har ikke blitt konfigurert. Du kan fortsette med konfigurasjonen senere.',
    'endUninstall':u'Avinstallering fullfÃ¸rt.',
    'enter':u'skriv inn',
    'enterInstallCode':u'Skriv inn installasjonskoden',
    'enterInstallNewAgent':u'Angi data for Ã¥ lage en ny agent:',
    'enterRunCode':u'Skriv inn tilkoblingskoden',
    'error':u'Feil',
    'errorAgentAlreadyExsists':u'Agenten {0} finnes allerede.',
    'errorAgentMax':u'OvergÃ¥tt maksimum antall agenter.',
    'errorAgentNameNotValid':u'Agent navnet er ikke gyldig. Du kan ikke bruke symbolene / \ | # @ : .',
    'errorConnectionConfig':u'Tilkoblingsfeil. VÃ¦r sÃ¥ snill Ã¥ sjekke om DWAgent tjenesten er startet.',
    'errorConnectionQuestion':u'Tilkoblingsfeil. VÃ¦r sÃ¥ snill Ã¥ sjekke internett tilkoblingen din eller brannmur konfigurasjonen.\nVil du konfigurere proxy?',
    'errorInvalidCode':u'Koden angitt er invalid.',
    'errorInvalidUserPassword':u'Ugyldig bruker eller passord.',
    'fieldRequired':u'Feltet \'{0}\' er krevet.',
    'install':u'Installer',
    'installMonitor':u'Installerer monitor...',
    'installMonitorErr':u'Installasjon monitor feilet.',
    'installService':u'Installerer tjeneste...',
    'installServiceErr':u'Installasjon tjeneste feilet.',
    'installShortcuts':u'Installerer snarveier...',
    'installShortcutsErr':u'Installasjon snarveier feilet.',
    'linuxRootPrivileges':u'Du mÃ¥ ha rot privilegier for Ã¥ installere DWAgent.\nVennligst start skriptet ved bruk av rot bruker.',
    'menuConfigure':u'Konfigurer',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Avinstaller',
    'missingInfoFile':u'Fil info.json ikke funnet.',
    'missingNative':u'Native ikke funnet.',
    'missingRuntime':u'Runtime ikke funnet.',
    'monitorAgentDisabled':u'Agent deaktivert.',
    'monitorAgentEnabled':u'Agent aktivert.',
    'monitorConfigure':u'Konfigurer',
    'monitorConnections':u'Tilkoblinger',
    'monitorDisable':u'Deaktiver',
    'monitorDisableAgentQuestion':u'Vil du deaktivere agenten?',
    'monitorEnable':u'Aktiver',
    'monitorEnableAgentQuestion':u'Vil du aktivere agenten?',
    'monitorEnterPassword':u'Angi passord:',
    'monitorErrorConnectionConfig':u'Tilkoblingsfeil. VÃ¦r sÃ¥ snill Ã¥ sjekke om DWAgent tjenesten er startet.',
    'monitorHide':u'Skjul',
    'monitorInvalidPassword':u'Ugyldig passord.',
    'monitorShow':u'Vis',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Deaktivert',
    'monitorStatusNoService':u'Ingen tjeneste',
    'monitorStatusOffline':u'Av nett',
    'monitorStatusOnline':u'PÃ¥ nett',
    'monitorStatusUpdating':u'Oppdaterer',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Avinstaller',
    'monitorUninstallNotRun':u'Du kan ikke installere uten rot permisjoner.\nKjÃ¸r kommandoen dwaguninstall i shell.',
    'mustAccept':u'For Ã¥ fortsette, mÃ¥ du velge alternativ {0}',
    'mustSelectOptions':u'Du mÃ¥ velge et alternativ.',
    'next':u'Neste',
    'no':u'Nei',
    'noTryAgain':u'Nei, prÃ¸v igjen',
    'notInstalled':u'DWAgent ikke installert.',
    'ok':u'Ok',
    'option':u'Alternativ',
    'optionNotValid':u'Alternativ valgt er ugyldig.',
    'or':u'eller',
    'password':u'Passord',
    'path':u'Sti',
    'pathCreating':u'Mappe opprettelse...',
    'pathNotCreate':u'Kunne ikke lage mappe. Ugyldig sti eller permisjon benektet.',
    'pressEnter':u'Trykk pÃ¥ enter for Ã¥ fortsette.',
    'proxyAuthPassword':u'Passord',
    'proxyAuthUser':u'Bruker',
    'proxyHost':u'Vert',
    'proxyHttp':u'Http',
    'proxyInfo':u'Sett inn proxy informasjon.',
    'proxyNone':u'Ingen',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'System',
    'reEnterCode':u'Skriv koden pÃ¥ nytt',
    'reEnterData':u'Skriv data-en pÃ¥ nytt',
    'rePassword':u'Skriv passord igjen',
    'removeFile':u'Fjerner fil...',
    'runWithoutInstallation':u'KjÃ¸r',
    'runWithoutInstallationClosing':u'Lukker Ã¸kt...',
    'runWithoutInstallationConnecting':u'Ã…pner Ã¸kt...',
    'runWithoutInstallationEnd':u'Ã˜kt avsluttet.',
    'runWithoutInstallationOnlineBottom':u'ADVARSEL:\nIkke del denne informasjonen med folk som ikke er klarert, ellers vil du tillate dem tilgang til denne agenten. Dersom du ikke er sikker pÃ¥ hva du gjÃ¸r, vÃ¦r sÃ¥ snill Ã¥ lukke denne applikasjonen.',
    'runWithoutInstallationOnlineBottomPutCode':u'ADVARSEL:\nAgenten er nÃ¥ klar til tilkobling',
    'runWithoutInstallationOnlinePassword':u'Passord: {0}',
    'runWithoutInstallationOnlineTop':u'Denne Ã¸kten er aktiv.\nFor Ã¥ koble til denne agenten gÃ¥ til https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Ã˜kten er aktiv.',
    'runWithoutInstallationOnlineUser':u'Bruker: {0}',
    'runWithoutInstallationStarting':u'Agent oppstart...',
    'runWithoutInstallationUnexpectedError':u'Uforventet feil.\nDet var ikke mulig Ã¥ starte DWAgent. Hvis problemet fortsetter, prÃ¸v Ã¥ laste ned den nyeste utgaven av DWAgent, slett mappen \'{0}\' og kjÃ¸r DWAgent igjen.',
    'runWithoutInstallationUpdating':u'Agent oppdatering...',
    'runWithoutInstallationWait':u'Vent pÃ¥ den nye tilkoblingen i prosess (forsÃ¸k {0})...',
    'selectPathInstall':u'Velg en ny installasjons vei:',
    'startService':u'Starter tjenesten...',
    'startServiceErr':u'Tjeneste start feilet.',
    'titleInstall':u'DWAgent - Installasjon',
    'titleUninstall':u'DWAgent - Avinstallasjon',
    'toBack':u'Ã¥ gÃ¥ tilbake.',
    'toExit':u'Ã¥ gÃ¥ ut av.',
    'unexpectedError':u'Uforventet feil.\n{0}',
    'uninstallMonitor':u'Avinstallerer monitor...',
    'uninstallService':u'Avinstallerer tjeneste...',
    'uninstallShortcuts':u'Avinstallerer snarveier...',
    'user':u'Bruker',
    'validInteger':u'Feltet \'{0}\' mÃ¥ vÃ¦re et integer.',
    'versionInstallNotValid':u'Versjonen av installatÃ¸ren er ikke korrekt for ditt operativsystem.\nVÃ¦r sÃ¥ snill Ã¥ laste ned korrekt versjon. {0}',
    'waiting':u'Venter...',
    'warningRemovePath':u'Advarsel destinasjons mappen eksisterer allerede da blir den slettet',
    'welcomeLicense':u'Lisens\nDette programvare er gratis og Ã¥pen kilde.\nDen bestÃ¥r av en hoved komponent og flere tilbehÃ¸r komponenter definert "app" som kan bli styrt av forskjellige lisenser. For mer informasjon besÃ¸k: https://www.dwservice.net/en/licenses-sources.html',
    'welcomeSecurity':u'Sikkerhet\nFor Ã¥ beskytte ditt privatliv garanterer vi at ingen informasjon vil bli lagret i vÃ¥re servere og kommunikasjoner er kryptert sÃ¥ tredjepartier ikke kan lese de.',
    'welcomeSoftwareUpdates':u'Programvare oppdateringer\nOppdateringene til denne programvaren er automatisk.',
    'windowsAdminPrivileges':u'Du mÃ¥ ha administrator privilegier for Ã¥ installere DWAgent.\nVÃ¦r sÃ¥ snill Ã¥ starte den kjÃ¸rbare med \'kjÃ¸r som administrator\'.',
    'yes':u'Ja'
}
                                                                          ui/messages/hr.py                                                                                   0000644 0001750 0001750 00000023375 14630343127 013570  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'runWithoutInstallationClosing':u'Zatvaranje sesije...',
    'configureInvalidPassword':u'PogreÅ¡na lozinka',
    'configureEnd':u'Konfiguracija je zavrÅ¡ena.',
    'noTryAgain':u'Ne, pokuÅ¡ajte ponovno.',
    'chooseProxyType':u'Kakav proxy Å¾elite koristiti?',
    'monitorTitle':u'DWAgent - Monitor',
    'agentName':u'Ime agenta',
    'installShortcutsErr':u'Instalacija preÄaca nije uspjela.',
    'runWithoutInstallationUpdating':u'Nadogradnja Agenta...',
    'proxyHttp':u'Http',
    'proxyPort':u'Port',
    'runWithoutInstallationOnlineTop':u'Sesija je aktivna. \nZa spajanje na ovog agenta posjetite https://www.dwservice.net',
    'cancelUninstall':u'Deinstalacija je bila prekinuta.',
    'back':u'Natrag',
    'toExit':u'za izlaz',
    'pathNotCreate':u'Izrada mape nije uspjela. PogreÅ¡na putanja ili odbijen pristup. Provjerite putanju i dozvole mape.',
    'configureRemovePassword':u'Ukloni lozinku.',
    'welcomeSoftwareUpdates':u'AÅ¾uriranja softvera\nAÅ¾uriranja ovog softvera su automatski.',
    'monitorDisableAgentQuestion':u'Å½elite li onemoguÄ‡iti agenta?',
    'errorConnectionQuestion':u'MreÅ¾na pogreÅ¡ka- Molimo provjerite vaÅ¡u internet vezu ili postavke vatrozida.\nÅ½elite li podesiti proxy?',
    'titleUninstall':u'DWAgent - Deinstalacija',
    'installShortcuts':u'Instaliram preÄace...',
    'dwsPassword':u'DWS lozinka',
    'configureExit':u'Izlaz',
    'uninstallService':u'Deinstaliram servis...',
    'monitorStatusOffline':u'Izvan mreÅ¾e',
    'configureInsertPassword':u'Unesite lozinku konfiguracije:',
    'monitorStatusNoService':u'Nema usluge',
    'configureChangeInstallKey':u'Promjeni kod instalacije.',
    'monitorUninstall':u'Deinstaliraj',
    'reEnterCode':u'Ponovno unesite kod',
    'monitorEnable':u'OmoguÄ‡i',
    'copyFiles':u'Kopiram datoteke...',
    'removeFile':u'Uklanjanje datoteke...',
    'configureEnableAgent':u'OmoguÄ‡i agenta',
    'configureProxyEnd':u'Proxy uspjeÅ¡no podeÅ¡en.',
    'mustSelectOptions':u'Morate odabrati opciju',
    'unexpectedError':u'NeoÄekivana pogreÅ¡ka. \n{0}',
    'code':u'Kod',
    'monitorHide':u'Sakrij',
    'proxyAuthPassword':u'Lozinka',
    'errorAgentNameNotValid':u'Ime agenta nije ispravno.  Zabranjeni znakovi su:  / \ | # @ : .',
    'validInteger':u'Polje "{0}" mora biti cijeli broj.',
    'confirmExit':u'Sigurno Å¾elite izaÄ‡i?',
    'configureTrayIconVisibility':u'Vidljivost tray ikone.',
    'monitorConnections':u'Veze',
    'fieldRequired':u'Polje \'{0}\' je obavezno',
    'decline':u'Ne prihvaÄ‡am',
    'password':u'Lozinka',
    'installMonitorErr':u'Instalacija monitora nije uspjela.',
    'missingInfoFile':u'Datoteka info.json nije pronaÄ‘ena',
    'alreadyInstalled':u'DWAgent je veÄ‡ instaliran na ovome raÄunalu.\n\nAgent je podeÅ¡en na automatsku nadogradnju, pa nije potrebna ruÄna instalacija novih verzija.',
    'configureUninstallationKey':u'Deinstalacija...',
    'configureChooseMonitorTrayIconVisibility':u'Å½elite li prikaz monitora u tray ikoni?',
    'installMonitor':u'Instaliram monitor...',
    'errorInvalidUserPassword':u'PogreÅ¡no korisniÄko ime ili lozinka.',
    'rePassword':u'Ponovno upiÅ¡ite lozinku',
    'runWithoutInstallationUnexpectedError':u'NeoÄekivana greÅ¡ka.\nNije moguÄ‡e pokrenuti DWAgent--a. Ukoliko se progrem ponovi, pokupajte preuzeti posljednju inaÄicu DWAgent-a, obriÅ¡ite mapu \'{0}\' i pokrenite DWAgenta ponovno.',
    'enterInstallNewAgent':u'Unesite podatke za izradu novog agenta',
    'no':u'Ne',
    'selectPathInstall':u'Odaberite instalacijsku putanju:',
    'confirmUninstall':u'Å½elite li ukloniti DWAgent?',
    'next':u'Dalje',
    'ok':u'Ok',
    'monitorStatusUpdating':u'Nadogradnja',
    'or':u'ili',
    'versionInstallNotValid':u'Verzija instalacijskog programa nije ispravna za vaÅ¡ operativni sustav.\nPreuzmite ispravnu verziju. {0}',
    'monitorStatus':u'Status',
    'proxySocks4a':u'Socks4a',
    'cancel':u'Prekini',
    'linuxRootPrivileges':u'Morate imati root ovlasti za instalaciju DWAgent-a\nPonovno pokrenite skriptu kao root korisnik,',
    'errorInvalidCode':u'Uneseni kod nije ispravan.',
    'configureInstallNewAgent':u'Izrada novog agenta',
    'error':u'GreÅ¡ka',
    'menuMonitor':u'Monitor',
    'runWithoutInstallation':u'Pokreni',
    'proxySocks4':u'Socks4',
    'proxySocks5':u'Socks5',
    'monitorUninstallNotRun':u'Ne moÅ¾ete deinstalirati bez root ovlasti.\nPokrenite naredbu dwaguninstall u shell-u.',
    'path':u'Putanja',
    'welcomeSecurity':u'Sigurnosti\nDa bismo zaÅ¡titili vaÅ¡u privatnost jamÄimo da se na naÅ¡im posluÅ¾iteljima neÄ‡e pohranjivati â€‹â€‹nikakvi podaci, a komunikacije su Å¡ifrirane kako ih treÄ‡e strane ne bi mogle Äitati.',
    'monitorStatusOnline':u'Na mreÅ¾i',
    'windowsAdminPrivileges':u'Morate imati administratorske ovlasti za instalaciju DWAgenta.\nPokrenite izvrÅ¡nu datoteku s opcijom "pokreni kao administrator".',
    'user':u'Korisnik',
    'monitorAgentDisabled':u'Agent onemoguÄ‡en.',
    'configureTrayIconOK':u'VIdljivost tray ikone uspjeÅ¡no podeÅ¡ena.',
    'runWithoutInstallationWait':u'ÄŒekanje na novi pokuÅ¡aj spajanja (attempt {0})...',
    'enter':u'enter',
    'proxyAuthUser':u'Korisnik',
    'notInstalled':u'DWAgent nije instaliran.',
    'configureEnableAgentQuestion':u'Å½elite li omoguÄ‡iti agenta?',
    'proxyInfo':u'Unesite podatke proxyja.',
    'monitorShow':u'PrikaÅ¾i',
    'runWithoutInstallationOnlineBottom':u'UPOZORENJE: \nNe prenosite slijedeÄ‡e podatke osobama kojima ne vjerujete, Davanjem podataka  dopuÅ¡tate udaljeni pristup bez nadzora. Ako niste sigurni Å¡to radite, molimo Vas da zatvorite aplikaciju.',
    'startService':u'Pokretanje servisa...',
    'errorAgentMax':u'PremaÅ¡en najveÄ‡i broj agenata.',
    'configureLater':u'Podesi kasnije',
    'option':u'Opcija',
    'installServiceErr':u'Instalacija servisa nije uspjela.',
    'configureDisableAgent':u'OnemoguÄ‡i agenta.',
    'configurePasswordUpdated':u'Lozinka promijenjena.',
    'errorAgentAlreadyExsists':u'Agent {0} veÄ‡ postoji.',
    'configureUninstallKeyQuestion':u'Deinstalirati trenutni instalacijski kod?',
    'configureChooseOperation':u'Molimo izaberite operaciju:',
    'configureAgent':u'Konfiguriraj Agenta',
    'configureRemovePasswordQuestion':u'Å½elite li ukloniti lozinku?',
    'configureErrorConnection':u'GreÅ¡ka u komunikaciji. Provjerite da li je DWAgent servis pokrenut.',
    'menuUninstall':u'Deinstaliraj',
    'startServiceErr':u'Pokretanje servisa neuspjeÅ¡no.',
    'configureDisableAgentQuestion':u'Å½elite li onemoguÄ‡iti agenta?',
    'createNewAgent':u'Kreiranje agenta...',
    'missingNative':u'Lokalizacija nije pronaÄ‘ena.',
    'toBack':u'za povratak',
    'proxySystem':u'Sistem',
    'proxyHost':u'DomaÄ‡in',
    'monitorStatusDisabled':u'OnemoguÄ‡eno',
    'installService':u'Instalacija servisa...',
    'mustAccept':u'Za nastavak odaberite opciju {0}',
    'monitorConfigure':u'Podesi',
    'runWithoutInstallationOnlineUser':u'Korisnik: {0}',
    'waiting':u'ÄŒekam...',
    'configureAgentDisabled':u'Agent onemuguÄ‡en.',
    'monitorInvalidPassword':u'PogreÅ¡na lozinka',
    'configureSetPassword':u'Postavi lozinku',
    'optionNotValid':u'Odabrana opcija je neispravna',
    'runWithoutInstallationConnecting':u'Otvaranje sesije',
    'enterInstallCode':u'Unesite instalacijski kod',
    'configureKeyInstalled':u'KljuÄ instaliran uspjeÅ¡no.',
    'configureInstallCode':u'Unos instalacijskog koda',
    'pathCreating':u'Izrada mape...',
    'endInstallConfigLater':u'Instalacija je zavrÅ¡ena.\nAgent nije podeÅ¡en. PodeÅ¡avanje moÅ¾ete obaviti i naknadno.',
    'endUninstall':u'Deinstalacija je zavrÅ¡ena',
    'errorConnectionConfig':u'MreÅ¾na pogreÅ¡ka. Provjerite status servisa DWAgent',
    'monitorDisable':u'OnemoguÄ‡i',
    'warningRemovePath':u'Upozorenje da odrediÅ¡na mapa veÄ‡ postoji i bit Ä‡e izbrisana.',
    'cancelInstall':u'Instalacija je bila prekinuta.',
    'monitorErrorConnectionConfig':u'MreÅ¾na pogreÅ¡ka. Provjerite status DWAgent servisa.',
    'menuConfigure':u'PodeÅ¡avanja',
    'configureInstallAgent':u'Kako Å¾elite podesiti agenta?',
    'confirmInstall':u'Å½elite li instalirati DWAgent na \'{0}\'?',
    'dwsUser':u'DWS korisnik:',
    'configureAgentEnabled':u'Agent omoguÄ‡en.',
    'titleInstall':u'DWAgent - Instalacija',
    'checkInstallCode':u'Provjeravam kod instalacije...',
    'pressEnter':u'Pritisnite enter za nastavak.',
    'endInstall':u'Instalacija je zavrÅ¡ena.',
    'missingRuntime':u'Runtime nije pronaÄ‘en.',
    'runWithoutInstallationEnd':u'Sesija zavrÅ¡ena.',
    'yes':u'Da',
    'downloadFile':u'Preuzimanje datoteke {0}...',
    'runWithoutInstallationOnlinePassword':u'Lozinka: {0}',
    'reEnterData':u'Ponovno unesite podatke',
    'configureTitle':u'DWAgent - PodeÅ¡enja',
    'configureProxy':u'Podesi proxy',
    'monitorAgentEnabled':u'Agent omoguÄ‡en',
    'runWithoutInstallationStarting':u'Pokretanje agenta...',
    'accept':u'PrihvaÄ‡am',
    'configurePasswordErrNoMatch':u'Lozinke se ne podudaraju.',
    'welcomeLicense':u'Licenca\nOvaj softver je besplatan i otvorenog koda.\nSastoji se od jedne glavne komponente i nekoliko dodatnih komponenti definiranih "aplikacija" koje bi mogle biti regulirane razliÄitim licencama. Za viÅ¡e informacija posjetite: https://www.dwservice.net/en/licenses-sources.html',
    'commands':u'Naredbe',
    'close':u'Zatvori',
    'monitorEnterPassword':u'Unesite lozinku',
    'configurePassword':u'Postavi lozinku',
    'uninstallShortcuts':u'Deinstaliram preÄace...',
    'install':u'Instaliraj',
    'configureMonitor':u'Podesi monitor',
    'uninstallMonitor':u'Deinstaliram monitor...',
    'proxyNone':u'NiÅ¡ta.',
    'monitorEnableAgentQuestion':u'Å½elite li omoguÄ‡iti klijenta?'
}
                                                                                                                                                                                                                                                                   ui/messages/it.py                                                                                   0000644 0001750 0001750 00000031431 15022034071 013552  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'titleInstall': u'DWAgent - Installazione', 
    'titleUninstall': u'DWAgent - Disinstallazione', 
    'welcomeLicense': u'Licenza\nQuesto software Ã¨ libero e open source.\nConsiste di una componente principale e diverse componenti accessorie definite "app" che potrebbero essere regolate da licenze differenti. Per maggiorni informazioni visita: https://www.dwservice.net/it/licenses-sources.html',
    'welcomeSecurity': u'Sicurezza\nA tutela della vostra privacy garantiamo che nessuna informazione verrÃ  memorizzata sui nostri server e le comunicazioni sono criptate in modo che terze parti non possono leggerle.',
    'welcomeSoftwareUpdates': u'Aggiornamenti software\nGli aggiornamenti di questo software avvengono in modo automatico.',
    'welcomePrivacyTerms':u'Procedendo con l\'installazione o l\'esecuzione di questo software accetti i #TERMSANDCONDITIONS e la #PRIVACYPOLICY',
    'welcomeTermsAndConditions':u'Selezionando l\'opzione \'{0}\' o \'{1}\' accetto i #TERMSANDCONDITIONS',
    'termsAndConditions': u'Termini e Condizioni',
    'privacyPolicy': u'Informativa sulla Privacy',
    'confirmUninstall': u'Vuoi eliminare DWAgent?',
    'mustAccept': u'Per poter continuare devi selezionare l\'opzione {0}',
    'or' : u'o',
    'accept': u'Accetta',
    'decline': u'Non accetto', 
    'next': u'Successivo', 
    'back': u'Indietro', 
    'yes': u'SÃ¬', 
    'no': u'No', 
    'ok': u'Ok',
    'cancel': u'Annulla', 
    'close': u'Chiudi', 
    'waiting': u'Attendere...', 
    'alreadyInstalled': u'DWAgent giÃ  installato.\n\nL\'agente si aggiorna automaticamente all\'ultima versione. CiÃ² significa che non Ã¨ necessario installare manualmente gli aggiornamenti piÃ¹ recenti.', 
    'notInstalled': u'DWAgent non installato.', 
    'fieldRequired': u'Il campo \'{0}\' Ã¨ obbligatorio.', 
    'selectPathInstall': u'Selezionare il percorso di installazione:', 
    'path': u'Percorso', 
    'mustSelectOptions': u'Devi selezionare un opzione.', 
    'confirmInstall': u'Vuoi installare DWAgent in \'{0}\'?', 
    'warningRemovePath': u'Attenzione la cartella di destinazione giÃ  esiste quindi verrÃ  eliminata.', 
    'pathNotCreate': u'Impossibile creare la cartella. Percorso invalido o accesso negato.', 
    'pathCreating': u'Creazione cartella...', 
    'unexpectedError': u'Errore inaspettato.\n{0}', 
    'downloadFile': u'Scaricamento file {0}...',
    'copyFiles': u'Copia file...', 
    'installService': u'Installazione servizio...', 
    'installServiceErr': u'Installazione servizio fallita.', 
    'uninstallService': u'Disinstallazione servizio...', 
    'startService': u'Avvio servizio...', 
    'startServiceErr': u'Avvio servizio fallito.', 
    'installMonitor': u'Installazione monitor...', 
    'uninstallMonitor': u'Disinstallazione monitor...', 
    'installMonitorErr': u'Installazione monitor fallita.',
    'monitorStatus': u'Stato',
    'monitorConnections': u'Connessioni', 
    'monitorStatusOffline': u'Offline', 
    'monitorStatusOnline': u'Online', 
    'monitorStatusDisabled': u'Disabilitato', 
    'monitorStatusUpdating': u'Aggiornamento', 
    'monitorStatusNoService': u'Nessun servizio', 
    'monitorShow': u'Mostra', 
    'monitorHide': u'Nascondi',
    'monitorUninstall': u'Disinstalla', 
    'monitorConfigure': u'Configura', 
    'monitorEnable': u'Abilita', 
    'monitorDisable': u'Disabilita', 
    'monitorErrorConnectionConfig': u'Errore di connessione. Verificare se il servizio DWAgent Ã¨ attivo.', 
    'monitorDisableAgentQuestion': u'Vuoi disabilitare l\'agente', 
    'monitorEnableAgentQuestion': u'Vuoi abilitare l\'agente?', 
    'monitorEnterPassword': u'Inserire password:', 
    'monitorInvalidPassword': u'Password invalida.', 
    'monitorAgentDisabled': u'Agente disabilitato.', 
    'monitorAgentEnabled': u'Agente abilitato.',
    'monitorUninstallNotRun': u'Non Ã¨ possibile eseguire la disinstallazione senza i permessi di root.\nEseguire il comand dwaguninstall da console.',
    'monitorTitle': u'DWAgent - Monitor', 
    'configureTitle':u'DWAgent - Configurazione', 
    'configureChooseOperation':u'Scegliere un operazione:', 
    'configureAgent':u'Configurare agente',
    'configureProxy':u'Configurare proxy', 
    'configureMonitor':u'Configurare monitor',
    'configurePassword':u'Configurare password',
    'configureSetPassword':u'Imposta password', 
    'configureRemovePassword':u'Rimuovi password',  
    'configureRemovePasswordQuestion':u'Vuoi rimuovere la password?', 
    'configureExit':u'Esci', 
    'configureEnd':u'Configurazione completata.', 
    'configureChangeInstallKey':u'Modifica codice di installazione', 
    'configureEnableAgent': u'Abilita agente', 
    'configureAgentEnabled': u'Agente abilitato.', 
    'configureEnableAgentQuestion': u'Vuoi abilitare l\'agente?', 
    'configureDisableAgent': u'Disabilita agente',     
    'configureAgentDisabled': u'Agente disabilitato.', 
    'configureDisableAgentQuestion': u'Vuoi disabilitare l\'agente?', 
    'configureErrorConnection': u'Errore di connessione. Verificare se il servizio DWAgent Ã¨ avviato.', 
    'configureUninstallKeyQuestion':u'Disinstallare il codice di installazione corrente?', 
    'configureUninstallationKey':u'Disinstallazione...', 
    'configureKeyInstalled':u'Chiave installata correttamente.', 
    'configureProxyEnd':u'Proxy configurato correttamente.', 
    'configureTrayIconVisibility':u'VisibilitÃ  icona nella barra di sistema', 
    'configureChooseMonitorTrayIconVisibility':u'Vuoi visualizzare l\'icona nel monitor nella barra di sistema?', 
    'configureTrayIconOK':u'VisibilitÃ  icona nella barra di sistema, configurata correttamente.', 
    'configurePasswordErrNoMatch':u'Le password non coincidono.', 
    'configurePasswordUpdated':u'Password aggioranta.', 
    'configureInsertPassword':u'Inserire la password di configurazione:', 
    'configureInvalidPassword':u'Password invalida.', 
    'installShortcuts':u'Installazione collegamenti...', 
    'installShortcutsErr': u'Installazione collegamenti fallita.', 
    'uninstallShortcuts':u'Disinstallazione collegamenti...', 
    'enterInstallCode': u'Inserire il codice di installazione:', 
    'code': u'Codice', 
    'checkInstallCode': u'Verifica codice di installazione...', 
    'errorConnectionConfig': u'Errore di connessione. Verificare se il servizio DWAgent Ã¨ avviato.', 
    'errorInvalidCode': u'Il codice inserito non Ã¨ valido.', 
    'reEnterCode': u'Reinserisci il codice', 
    'endInstall': u'Installazione completata correttamente.', 
    'cancelInstall': u'L\'installazione Ã¨ stata annullata.', 
    'cancelUninstall': u'La disinstallazione Ã¨ stata annullata.', 
    'endInstallConfigLater': u'Installazione completata correttamente.\nL\'agente non Ã¨ stato configurato. Si puÃ² comunque procedere con la configurazione successivamente.', 
    'errorConnectionQuestion': u'Errore di connessione. Verificare la connessione ad internet o verificare la configurazione del firewall.\nVuoi configurare un proxy?', 
    'noTryAgain': u'No, Riprova', 
    'configureLater': u'Configura piÃ¹ tardi', 
    'chooseProxyType': u'Che tipo di proxy vuoi usare?', 
    'proxySystem': u'Sistema', 
    'proxyHttp': u'Http', 
    'proxySocks4': u'Socks4', 
    'proxySocks4a': u'Socks4a',
    'proxySocks5': u'Socks5', 
    'proxyNone': u'Nessuno', 
    'proxyInfo': u'Inserire informazioni proxy.', 
    'proxyHost': u'Host', 
    'proxyPort': u'Porta', 
    'proxyAuthUser': u'Utente', 
    'proxyAuthPassword': u'Password', 
    'validInteger':u'Il campo \'{0}\' deve essere un numero intero.', 
    'endUninstall': u'Disinstallazione completata.', 
    'removeFile': u'Rimozione file...', 
    'menuUninstall': u'Disinstalla', 
    'menuConfigure': u'Configura', 
    'menuMonitor': u'Monitor', 
    'missingRuntime':u'Runtime non trovati.',
    'missingNative':u'Native non trovati.',  
    'missingInfoFile':u'File info.json non trovato.',  
    'versionInstallNotValid':u'La versione dell\'installatore non Ã¨ corretta per il tuo sistema operativo.\nSi prega di scaricare la versione corretta. {0}',
    'user':u'Utente',     
    'password':u'Password', 
    'rePassword':u'Ripeti Password', 
    'confirmExit':u'Sicuro di voler Uscire?', 
    'linuxRootPrivileges':u'Ãˆ necessario disporre dei privilegi di root per installare DWAgent.\nSi prega di avviare lo script usando l\'utente root.',
    'windowsAdminPrivileges':u'Ãˆ necessario disporre dei privilegi di amministratore per installare DWAgent.\nSi prega di avviare l\'eseguibile con \'Esegui come amministratore\'.', 
    'pressEnter':u'Premi invio per continuare.', 
    'error':u'Errore', 
    'option':u'Opzione', 
    'optionNotValid':u'Opzione selezionata non valida.', 
    'enter':u'invio', 
    'commands':u'Comandi', 
    'toBack':u'per andare indietro.', 
    'toExit':u'per uscire.',
    'install':u'Installa',
    'runWithoutInstallation':u'Esegui',
    'runWithoutInstallationStarting':u'Avvio agente...',
    'runWithoutInstallationUpdating':u'Aggiornamento agente...',
    'runWithoutInstallationConnecting':u'Apertura sessione...',
    'runWithoutInstallationOnlineTop':u'La sessione Ã¨ attiva.\nPer collegarsi a questo agente vai su https://www.dwservice.net',
    'runWithoutInstallationOnlineUser':u'Utente: {0}',
    'runWithoutInstallationOnlinePassword':u'Password: {0}',
    'runWithoutInstallationOnlineBottom':u'ATTENZIONE:\nNon comunicare queste informazioni a persone non fidate altrimenti consenti loro l\'accesso a questo agente. Quindi se non sei sicuro di quello che stai facendo, chiudi questa applicazione.',
    'runWithoutInstallationWait':u'Attendere nuova connessione in corso (tentativo {0})...',
    'runWithoutInstallationClosing':u'Chiusura sessione...',
    'runWithoutInstallationEnd':u'Sessione terminata.',
    'runWithoutInstallationUnexpectedError':u'Errore inaspettato.\nNon Ã¨ stato possibile avviare DWAgent. Se il problema persiste, provare a scaricare l\'ultima versione di DWAgent, ad eliminare la cartella \'{0}\' ed eseguire nuovamente DWAgent.',
    'configureInstallAgent':u'Come preferisci configurare l\'agente?',
    'configureInstallNewAgent':u'Creando un nuovo agente',
    'configureInstallCode':u'Digitando il codice di installazione',
    'createNewAgent':u'Creazione dell\'agente in corso...',
    'groupName':u'Nome gruppo',
    'agentName':u'Nome agente',
    'enterInstallNewAgent':u'Inserire i dati per creare un nuovo agente:',
    'configureInstallUser':u'Utente',
    'configureInstallPassword':u'Password di installazione',    
    'reEnterData':u'Reinserire i dati',
    'errorInvalidUserPassword':u'l\'utente o la password non sono validi.',
    'errorAgentNameNotValid':u'Il nome dell\'agente non Ã¨ valido. Non puoi usare i caratteri / \\ | # @ : .',
    'errorAgentAlreadyExsists':u'L\'agente {0} giÃ  esiste.',
    'errorAgentMax':u'Superato numero massimo agenti.',
    'enterRunCode': u'Inserire il codice di connessione',
    'runWithoutInstallationOnlineTopPutCode':u'La sessione Ã¨ attiva.' ,
    'runWithoutInstallationOnlineBottomPutCode':u'ATTENZIONE:\nL\'agente Ã¨ pronto ad accettare connessioni. Quindi se non sei sicuro di quello che stai facendo, chiudi questa applicazione.',
    'monitorCurrentActivities': u'AttivitÃ  correnti',
    'monitorNoActivities': u'Nessuna attivitÃ ',
    'monitorSession': u'Sessione',
    'monitorScreenCapture': u'Accesso allo schermo',
    'monitorShellSession': u'Accesso al terminale',
    'monitorDownload': u'Download',
    'monitorUpload': u'Upload',
    'monitorActive': u'attivo',
    'configureDesktopNotification': u'Notifica desktop',
    'configureDesktopNotificationOK': u'Notifica desktop configurata correttamente.',
    'desktopNotificationVisible': u'Visibile',
    'desktopNotificationAutoHide': u'Nascondi automaticamente',
    'desktopNotificationNone': u'Nessuna',
    'warningSpyingTool': u'Sii consapevole che non puoi accedere a un computer remoto senza il consenso dell\'utente. Utilizzando DWService come strumento di spionaggio potresti violare le leggi del tuo paese di residenza.',
    'warningLoginLogout': u'AffinchÃ© questa modifica abbia effetto, l\'utente deve disconnettersi e accedere nuovamente.',
    'reject': u'Rifiuta',
    'ipAddress': u'Indirizzo IP: {0}',
    'accessConfirm': u'Desidera accedere al tuo dispositivo.',
    'unattendedAccess': u'Accesso\nnon presidiato',
    'unknownUser': u'Utente sconosciuto',
    'skipCertValidation':u'Attenzione: Il certificato di sicurezza non puÃ² essere convalidato, se si procede la connessione potrebbe non essere sicura.\nSi prega di verificare la configurazione del router/firewall/antivirus di rete o locale.\nProcedere comunque?',
    'installerNotSupported': u'Questo programma di installazione non Ã¨ piÃ¹ supportato. Si prega di scaricare l\'ultima versione.'
}
                                                                                                                                                                                                                                       ui/messages/ro.py                                                                                   0000644 0001750 0001750 00000030131 14630344557 013573  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Accept',
    'accessConfirm':u'Doreste sa acceseze dispozitivul tau.',
    'agentName':u'Nume agent',
    'alreadyInstalled':u'DWAgent a fost instalat.\n\nAgentul isi va face update automat la ultima versiune. Inseamna ca nu este necesar ca dvs. sa instalati manual update-uri.',
    'back':u'Inapoi',
    'cancel':u'Anuleaza',
    'cancelInstall':u'Instalarea a fost anulata',
    'cancelUninstall':u'Dezinstalarea a fost anulatÄƒ.',
    'checkInstallCode':u'Verific codul de instalare...',
    'chooseProxyType':u'Ce tip de proxy utilizaÅ£i?',
    'close':u'ÃŽnchide',
    'code':u'Cod',
    'commands':u'Comenzi',
    'configureAgent':u'ConfigureazÄƒ agent',
    'configureAgentDisabled':u'Agent inactiv',
    'configureAgentEnabled':u'Agent activ',
    'configureChangeInstallKey':u'SchimbÄƒ codul de instalare',
    'configureChooseMonitorTrayIconVisibility':u'DoriÈ›i afiÈ™are Ã®n zona de notificare?',
    'configureChooseOperation':u'AlegeÈ›i operaÈ›iunea:',
    'configureDesktopNotification':u'Notificare desktop',
    'configureDesktopNotificationOK':u'Configurarea notificarii desktop a fost facuta cu succes.',
    'configureDisableAgent':u'Dezactivare agent',
    'configureDisableAgentQuestion':u'DoriÈ›i dezactivarea agentului?',
    'configureEnableAgent':u'ActiveazÄƒ agent',
    'configureEnableAgentQuestion':u'DoriÈ›i activarea agentului?',
    'configureEnd':u'Configurare completÄƒ.',
    'configureErrorConnection':u'Eroare de conexiune. VerificaÈ›i dacÄƒ procesul DWAgent este pornit.',
    'configureExit':u'IeÈ™ire',
    'configureInsertPassword':u'VÄƒ rog introduceÈ›i parola:',
    'configureInstallAgent':u'Cum doriÈ›i configurarea agentului?',
    'configureInstallCode':u'IntroduceÈ›i codul de instalare',
    'configureInstallNewAgent':u'Creare agent nou',
    'configureInstallPassword':u'Parola de instalare',
    'configureInstallUser':u'Utilizator',
    'configureInvalidPassword':u'ParolÄƒ incorectÄƒ.',
    'configureKeyInstalled':u'Cheie instalatÄƒ cu succes.',
    'configureLater':u'ConfigureazÄƒ mai tÃ¢rziu',
    'configureMonitor':u'SeteazÄƒ monitor',
    'configurePassword':u'StabileÈ™te parola',
    'configurePasswordErrNoMatch':u'Parola nu se potriveÈ™te.',
    'configurePasswordUpdated':u'ParolÄƒ actualizatÄƒ.',
    'configureProxy':u'SeteazÄƒ proxy',
    'configureProxyEnd':u'Proxy setat cu succes.',
    'configureRemovePassword':u'È˜terge parola',
    'configureRemovePasswordQuestion':u'DoriÈ›i È™tergerea parolei?',
    'configureSetPassword':u'StabileÈ™te parola.',
    'configureTitle':u'DWAgent - Configurare',
    'configureTrayIconOK':u'Vizibilitate Ã®n zona de notificare, realizatÄƒ cu succes.',
    'configureTrayIconVisibility':u'Vizibilitate Ã®n zona de notificare',
    'configureUninstallKeyQuestion':u'Dezinstalare cod curent de instalare?',
    'configureUninstallationKey':u'Dezinstalare...',
    'confirmExit':u'Sigur doriÈ›i ieÈ™irea?',
    'confirmInstall':u'DoriÈ›i instalare DWAgent pe \'{0}\'?',
    'confirmUninstall':u'DoriÈ›i È™tergerea DWAgent?',
    'copyFiles':u'Copiere fiÈ™iere...',
    'createNewAgent':u'Se creeazÄƒ agentul...',
    'decline':u'Refuzare',
    'desktopNotificationAutoHide':u'Ascunde automat',
    'desktopNotificationNone':u'Niciunul(a)',
    'desktopNotificationVisible':u'Vizibil(a)',
    'downloadFile':u'DescÄƒrcare fiÈ™ier {0}...',
    'endInstall':u'Instalarea s-a finalizat.',
    'endInstallConfigLater':u'Instalarea s-a finalizat cu succes.\nAgentul nu s-a configurat. PuteÈ›i sÄƒ Ã®l setaÈ›i mai tÃ¢rziu.',
    'endUninstall':u'Dezinstalare finalizatÄƒ cu succes.',
    'enter':u'accept',
    'enterInstallCode':u'IntroduceÈ›i codul de instalare',
    'enterInstallNewAgent':u'IntroduceÈ›i date pentru noul agent',
    'enterRunCode':u'Introduceti codul de conectare',
    'error':u'Eroare',
    'errorAgentAlreadyExsists':u'Agentul {0} existÄƒ deja.',
    'errorAgentMax':u'S-a depÄƒÈ™it numÄƒrul maxim de agenÈ›i posibili.',
    'errorAgentNameNotValid':u'Nume invalid. Nu se pot utiliza caracterele / \\ | # @ : .',
    'errorConnectionConfig':u'Eroare de conexiune. VerificaÈ›i starea procesului DWAgent.',
    'errorConnectionQuestion':u'Eroare de conexiune. VerificaÈ›i conexiunea la internet sau firewall. \nDoriÈ›i sa configuraÈ›i un proxy?',
    'errorInvalidCode':u'Codul este invalid.',
    'errorInvalidUserPassword':u'Utilizator sau parolÄƒ greÈ™itÄƒ.',
    'fieldRequired':u'Campul \'{0}\' este necesar',
    'install':u'Instalare',
    'installMonitor':u'Instalare monitor...',
    'installMonitorErr':u'Instalare monitor esuata',
    'installService':u'Instalare serviciu...',
    'installServiceErr':u'Instalare serviciu esuata',
    'installShortcuts':u'Instalare comenzi rapide...',
    'installShortcutsErr':u'Instalare comenzi rapide esuata.',
    'installerNotSupported':u'Acest kit de instalare nu mai este valabil. Te rog descarca ultima versiune.',
    'ipAddress':u'Adresa IP: {0}',
    'linuxRootPrivileges':u'Trebuie sa ai privilegii de root pentru a instala DWAgent.\nTe rog porneste scriptul folosind un utilizator root.',
    'menuConfigure':u'Configurare',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Dezinstalare',
    'missingInfoFile':u'FiÈ™ier info.json negÄƒsit.',
    'missingNative':u'Nativ negasit.',
    'missingRuntime':u'Runtime nu a fost gasit',
    'monitorActive':u'activ(a)',
    'monitorAgentDisabled':u'Agent dezactivat.',
    'monitorAgentEnabled':u'Agent activ.',
    'monitorConfigure':u'Configurare',
    'monitorConnections':u'Conexiuni',
    'monitorCurrentActivities':u'Activitati curente',
    'monitorDisable':u'Dezactivare',
    'monitorDisableAgentQuestion':u'Vreti sa dezactivati agentul?',
    'monitorDownload':u'Download',
    'monitorEnable':u'Activat',
    'monitorEnableAgentQuestion':u'Vreti sa activati agentul?',
    'monitorEnterPassword':u'Introduceti parola:',
    'monitorErrorConnectionConfig':u'Eroare de conexiune. Verificati daca serviciul DWAgent este pornit.',
    'monitorHide':u'Ascunde',
    'monitorInvalidPassword':u'Parola invalida',
    'monitorNoActivities':u'Nicio activitate',
    'monitorScreenCapture':u'Acces la ecran',
    'monitorSession':u'Sesiune',
    'monitorShellSession':u'Acces la shell',
    'monitorShow':u'Arata',
    'monitorStatus':u'Stare',
    'monitorStatusDisabled':u'Dezactivat',
    'monitorStatusNoService':u'Fara serviciu',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Se actualizeaza',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Dezinstalare',
    'monitorUninstallNotRun':u'Nu puteti instala fara permisiuni root.\nExecutati comanda dwaguninstall in shell.',
    'monitorUpload':u'Incarca',
    'mustAccept':u'Pentru a continua, trebuie sa selectati optiunea {0}',
    'mustSelectOptions':u'Trebuie sa selectati o optiune.',
    'next':u'Urmator',
    'no':u'Nu',
    'noTryAgain':u'Nu, Ã®ncearcÄƒ din nou',
    'notInstalled':u'DWAgent nu este instalat',
    'ok':u'Ok',
    'option':u'OpÈ›iune',
    'optionNotValid':u'Optiunea selectata este invalida.',
    'or':u'sau',
    'password':u'Parola',
    'path':u'Cale',
    'pathCreating':u'Creare director...',
    'pathNotCreate':u'Directorul nu se poate crea. Cale invalida sau permisiune refuzata.',
    'pressEnter':u'Apasati enter pentru a continua.',
    'privacyPolicy':u'Politica de confidentialitate',
    'proxyAuthPassword':u'Parola',
    'proxyAuthUser':u'Utilizator',
    'proxyHost':u'Gazda',
    'proxyHttp':u'Http',
    'proxyInfo':u'Introdu informatii despre proxy.',
    'proxyNone':u'Nimic',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistem',
    'reEnterCode':u'Reintroduceti codul',
    'reEnterData':u'Reintroduceti datele',
    'rePassword':u'Reintroduceti Parola',
    'reject':u'Respinge',
    'removeFile':u'Indeparteaza fisier...',
    'runWithoutInstallation':u'Porneste',
    'runWithoutInstallationClosing':u'Inchidere sesiune...',
    'runWithoutInstallationConnecting':u'Deschidere sesiune...',
    'runWithoutInstallationEnd':u'Sesiune terminata.',
    'runWithoutInstallationOnlineBottom':u'ATENTIE:\nNu impartasiti aceasta informatie celor in care nu aveti incredere altfel le veti permite sa acceseze acet agent. Deci daca nu sunteti sigur ce faceti va rog inchideti aceasta aplicatie.',
    'runWithoutInstallationOnlineBottomPutCode':u'ATENTIE:\nAgentul este pregatit sa accepte conexiunea. Deci daca nu sunteti sigur pe ceea ce faceti, va rog inchideti aplicatia.',
    'runWithoutInstallationOnlinePassword':u'Parola: {0}',
    'runWithoutInstallationOnlineTop':u'Sesiunea este activa.\nPentru a va conecta la acest agent mergeti la https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sesiunea este activa.',
    'runWithoutInstallationOnlineUser':u'Utilizator: {0}',
    'runWithoutInstallationStarting':u'Pornire agent...',
    'runWithoutInstallationUnexpectedError':u'Eroare neasteptata.\nnu a fost posibila pornirea DWAgent. Daca problema persista, incercati sa descarcati ultima revizie a DWAgent, stergeti dosarul \'{0}\' si rulati DWAgent din nou.',
    'runWithoutInstallationUpdating':u'Actualizare agent...',
    'runWithoutInstallationWait':u'Asteptare conexiune noua in curs (attempt {0})...',
    'selectPathInstall':u'Selecteaza calea de instalare:',
    'skipCertValidation':u'Atentie: Certificatul de securitate nu poate fi validat, daca continui, conexiunea poate sa fie nesecurizata.\nTe rog verifica configuratia ruter-ului/firewall-ului/antivirus-ului din retea sau local.\nDoresti sa continui oricum?',
    'startService':u'Porneste serviciu...',
    'startServiceErr':u'Pornire serviciu esuata.',
    'termsAndConditions':u'Termeni si conditii',
    'titleInstall':u'Instalare - DWAgent',
    'titleUninstall':u'Dezinstalare - DWAgent',
    'toBack':u'catre inapoi.',
    'toExit':u'catre iesire.',
    'unattendedAccess':u'Acces\nnesupravegheat',
    'unexpectedError':u'Eroare neasteptata.\n{0}',
    'uninstallMonitor':u'Dezinstalare monitor...',
    'uninstallService':u'Dezinstalare serviciu...',
    'uninstallShortcuts':u'Dezinstalare scurtatura...',
    'unknownUser':u'Utilizator necunoscut',
    'user':u'Utilizator',
    'validInteger':u'Campul \'{0}\' trebuie sa fie un intreg.',
    'versionInstallNotValid':u'Aceasa versiune de instalare nu este corecta pentru sistemul dvs. de operare.\nVa rugam descarcati versiunea corecta. {0}',
    'waiting':u'Asteptare...',
    'warningLoginLogout':u'Pentru ca aceasta schimbare sa aiba efect, utilizatorul trebuie sa se delogheze si sa se logheze din nou.',
    'warningRemovePath':u'Atentie: folderul-destinatie exista deja si va fi sters.',
    'warningSpyingTool':u'Va rugam sa fiti constienti ca nu puteti accesa un computer la distanta fara permisiunea utilizatorului sau. Daca folositi DWService ca unealta de spionare ati putea intra sub incidenta legilor din tara dvs. de resedinta.',
    'welcomeLicense':u'Licenta.\nAcest program este gratuit si sursa-deschisa.\nEste alcatuit dintr-o componenta principala lansata sub licenta MPLv2 si cateva componente aditionale care sunt guvernate de diferite licente. Pentru mai multe informatii, vizitati: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Continuind cu instalarea sau folosirea acestui program insemneaza ca sunteti de acord cu #TERMSANDCONDITIONS si cu #PRIVACYPOLICY',
    'welcomeSecurity':u'Securitate\nPentru a va proteja intimitatea, noi nu stocam informatii din agent pe serverele noastre. Comunicarile de date intre utilizatori, serverul nostru si agenti sunt criptate in asa fel incat terte parti nu au access la acestea.',
    'welcomeSoftwareUpdates':u'Actualizari program\nAcest program se actualizeaza in mod automat',
    'welcomeTermsAndConditions':u'Prin selectarea optiunii \'{0}\' sau \'{1}\' accept #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Trebuie sa aveti drepturi de administrator pentru a instala DWAgent.\nVa rog porniti executabilul cu \'ruleaza ca adminstrator\'.',
    'yes':u'Da'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                       ui/messages/nl.py                                                                                   0000644 0001750 0001750 00000027545 14630343127 013573  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Accepteren',
    'accessConfirm':u'Wil toegang krijgen tot uw apparaat.',
    'agentName':u'Naam agent',
    'alreadyInstalled':u'DWAgent is al geÃ¯nstalleerd.\n\nDe agent wordt automatisch bijgewerkt naar de laatste versie. Dit betekent dat u nieuwe updates niet handmatig hoeft te installeren.',
    'back':u'Terug',
    'cancel':u'Annuleren',
    'cancelInstall':u'De installatie is geannuleerd.',
    'cancelUninstall':u'De verwijdering is geannuleerd.',
    'checkInstallCode':u'Installatiecode controleren...',
    'chooseProxyType':u'Welk type proxy wilt u gebruiken?',
    'close':u'Sluiten',
    'code':u'Code',
    'commands':u'Opdrachten',
    'configureAgent':u'Agent configureren',
    'configureAgentDisabled':u'Agent uitgeschakeld.',
    'configureAgentEnabled':u'Agent ingeschakeld.',
    'configureChangeInstallKey':u'Installatiecode wijzigen.',
    'configureChooseMonitorTrayIconVisibility':u'Wilt u het monitorpictogram in het systeemvak weergeven?',
    'configureChooseOperation':u'Kies een bewerking:',
    'configureDesktopNotification':u'Bureaubladmelding',
    'configureDesktopNotificationOK':u'Bureaubladmelding met succes geconfigureerd.',
    'configureDisableAgent':u'Agent uitschakelen',
    'configureDisableAgentQuestion':u'Wilt u de agent uitschakelen?',
    'configureEnableAgent':u'Agent inschakelen',
    'configureEnableAgentQuestion':u'Wilt u de agent inschakelen?',
    'configureEnd':u'De configuratie is voltooid.',
    'configureErrorConnection':u'Verbindingsfout. Controleer of de DWAgent-service draait.',
    'configureExit':u'Afsluiten',
    'configureInsertPassword':u'Voer het configuratiewachtwoord in:',
    'configureInstallAgent':u'Hoe wilt u de agent configureren?',
    'configureInstallCode':u'Voer de installatiecode in',
    'configureInstallNewAgent':u'Een nieuwe agent aanmaken',
    'configureInvalidPassword':u'Ongeldig wachtwoord.',
    'configureKeyInstalled':u'Sleutel met succes geÃ¯nstalleerd.',
    'configureLater':u'Later configureren',
    'configureMonitor':u'Monitor configureren',
    'configurePassword':u'Wachtwoord configureren',
    'configurePasswordErrNoMatch':u'De wachtwoorden komen niet overeen.',
    'configurePasswordUpdated':u'Wachtwoord bijgewerkt.',
    'configureProxy':u'Proxy configureren',
    'configureProxyEnd':u'Proxy met succes geconfigureerd.',
    'configureRemovePassword':u'Wachtwoord verwijderen',
    'configureRemovePasswordQuestion':u'Wilt u het wachtwoord verwijderen?',
    'configureSetPassword':u'Wachtwoord instellen',
    'configureTitle':u'DWAgent - Configuratie',
    'configureTrayIconOK':u'Systeemvakpictogram met succes geconfigureerd.',
    'configureTrayIconVisibility':u'Zichtbaarheid systeemvakpictogram',
    'configureUninstallKeyQuestion':u'De huidige installatiecode verwijderen?',
    'configureUninstallationKey':u'Verwijderen...',
    'confirmExit':u'Weet u zeker dat u wilt afsluiten?',
    'confirmInstall':u'Wilt u DWAgent installeren in \'{0}\'?',
    'confirmUninstall':u'Wilt u DWAgent verwijderen?',
    'copyFiles':u'Bestanden kopiÃ«ren...',
    'createNewAgent':u'Aanmaken van nieuwe agent in uitvoering...',
    'decline':u'Niet accepteren',
    'desktopNotificationAutoHide':u'Automatisch verbergen',
    'desktopNotificationNone':u'Geen',
    'desktopNotificationVisible':u'Zichtbaar',
    'downloadFile':u'Bestand {0} downloaden...',
    'dwsPassword':u'DWS-wachtwoord',
    'dwsUser':u'DWS-gebruiker',
    'endInstall':u'Installatie is voltooid.',
    'endInstallConfigLater':u'De installatie is voltooid.\nDe agent is niet geconfigureerd. U kunt de configuratie later nog aanmaken.',
    'endUninstall':u'Verwijdering is voltooid.',
    'enter':u'invoeren',
    'enterInstallCode':u'Voor de installatiecode in',
    'enterInstallNewAgent':u'Voer gegevens in om een nieuwe agent aan te maken:',
    'enterRunCode':u'Voer de verbindingscode in',
    'error':u'Fout',
    'errorAgentAlreadyExsists':u'Agent {0} bestaat al.',
    'errorAgentMax':u'Maximum aantal agents overschreden.',
    'errorAgentNameNotValid':u'De naam van de agent is ongeldig. U kunt geen gebruik maken van de tekens / \ | # @ : .',
    'errorConnectionConfig':u'Verbindingsfout. Controleer of de DWAgent-service draait.',
    'errorConnectionQuestion':u'Verbindingsfout. Controleer uw internetverbinding of firewall.\nWilt u een proxy configureren?',
    'errorInvalidCode':u'De ingevoerde code is ongeldig.',
    'errorInvalidUserPassword':u'Ongeldige gebruiker of wachtwoord.',
    'fieldRequired':u'Het veld \'{0}\' is vereist.',
    'install':u'Installeren',
    'installMonitor':u'Monitor installeren...',
    'installMonitorErr':u'Installatie van monitor mislukt.',
    'installService':u'Service installeren...',
    'installServiceErr':u'Installatie van service mislukt.',
    'installShortcuts':u'Snelkoppelingen installeren...',
    'installShortcutsErr':u'Installatie van snelkoppelingen mislukt.',
    'ipAddress':u'IP-adres: {0}',
    'linuxRootPrivileges':u'U moet root-rechten hebben om DWAgent te installeren.\nVoer het script uit met sudo of als root.',
    'menuConfigure':u'Configureren',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Verwijderen',
    'missingInfoFile':u'Bestand info.json niet gevonden.',
    'missingNative':u'Bron niet gevonden.',
    'missingRuntime':u'Uitvoerbestand niet gevonden.',
    'monitorActive':u'actief',
    'monitorAgentDisabled':u'Agent uitgeschakeld.',
    'monitorAgentEnabled':u'Agent ingeschakeld.',
    'monitorConfigure':u'Configureren',
    'monitorConnections':u'Verbindingen',
    'monitorCurrentActivities':u'Huidige activiteiten',
    'monitorDisable':u'Uitschakelen',
    'monitorDisableAgentQuestion':u'Wilt u de agent uitschakelen?',
    'monitorDownload':u'Downloaden',
    'monitorEnable':u'Inschakelen',
    'monitorEnableAgentQuestion':u'Wilt u de agent inschakelen?',
    'monitorEnterPassword':u'Wachtwoord invoeren:',
    'monitorErrorConnectionConfig':u'Verbindingsfout. Controleer of de DWAgent-service draait.',
    'monitorHide':u'Verbergen',
    'monitorInvalidPassword':u'Ongeldig wachtwoord.',
    'monitorNoActivities':u'Geen activiteiten',
    'monitorScreenCapture':u'Schermtoegang',
    'monitorSession':u'Sessie',
    'monitorShellSession':u'Shell-toegang',
    'monitorShow':u'Weergeven',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Uitgeschakeld',
    'monitorStatusNoService':u'Geen service',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Bijwerken',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Verwijderen',
    'monitorUninstallNotRun':u'U kunt de installatie niet ongedaan maken zonder root-rechten.\nVoer de opdracht dwaguninstall uit met sudo of als root.',
    'monitorUpload':u'Uploaden',
    'mustAccept':u'Om verder te gaan, moet u de optie {0} selecteren',
    'mustSelectOptions':u'U moet een optie kiezen.',
    'next':u'Volgende',
    'no':u'Nee',
    'noTryAgain':u'Nee, opnieuw proberen',
    'notInstalled':u'DWAgent is niet geÃ¯nstalleerd.',
    'ok':u'Ok',
    'option':u'Optie',
    'optionNotValid':u'Geselecteerde optie is ongeldig.',
    'or':u'of',
    'password':u'Wachtwoord',
    'path':u'Pad',
    'pathCreating':u'Map maken...',
    'pathNotCreate':u'Kon de map niet aanmaken. Ongeldig pad of geen toestemming.',
    'pressEnter':u'Druk op enter om verder te gaan.',
    'privacyPolicy':u'Privacybeleid',
    'proxyAuthPassword':u'Wachtwoord',
    'proxyAuthUser':u'Gebruiker',
    'proxyHost':u'Host',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'Proxy-informatie invoeren.',
    'proxyNone':u'Geen',
    'proxyPort':u'Poort',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'Systeem',
    'reEnterCode':u'Code opnieuw invoeren',
    'reEnterData':u'Gegevens opnieuw invoeren',
    'rePassword':u'Wachtwoord opnieuw invoeren',
    'reject':u'Verwerpen',
    'removeFile':u'Bestand verwijderen...',
    'runWithoutInstallation':u'Uitvoeren',
    'runWithoutInstallationClosing':u'Sessie sluiten...',
    'runWithoutInstallationConnecting':u'Sessie openen...',
    'runWithoutInstallationEnd':u'Sessie afgelopen.',
    'runWithoutInstallationOnlineBottom':u'WAARSCHUWING:\nGeef deze informatie niet aan mensen die u niet vertrouwt. Het zal hen in staat stellen toegang te krijgen tot dit apparaat. Als u niet zeker weet wat u doet, sluit deze toepassing dan af.',
    'runWithoutInstallationOnlineBottomPutCode':u'WAARSCHUWING:\nDe agent is nu klaar om een verbinding te accepteren. Als u niet zeker weet wat u doet, sluit deze toepassing dan af.',
    'runWithoutInstallationOnlinePassword':u'Wachtwoord: {0}',
    'runWithoutInstallationOnlineTop':u'De sessie is actief.\nGa naar https://www.dwservice.net om met de agent te verbinden',
    'runWithoutInstallationOnlineTopPutCode':u'De sessie is actief.',
    'runWithoutInstallationOnlineUser':u'Gebruiker: {0}',
    'runWithoutInstallationStarting':u'Agent opstarten...',
    'runWithoutInstallationUnexpectedError':u'Onverwachte fout.\nDWAgent kon niet starten. Als het probleem zich blijft voordoen, download dan de laatste versie van DWAgent, verwijder de map \'{0}\' en start DWAgent opnieuw.',
    'runWithoutInstallationUpdating':u'Agent bijwerken...',
    'runWithoutInstallationWait':u'Wachten tot de nieuwe verbinding gemaakt is (poging {0})...',
    'selectPathInstall':u'Selecteer het installatiepad:',
    'startService':u'Service starten...',
    'startServiceErr':u'Service starten mislukt.',
    'termsAndConditions':u'Algemene voorwaarden',
    'titleInstall':u'DWAgent - Installatie',
    'titleUninstall':u'DWAgent - Verwijderen',
    'toBack':u'om terug te keren.',
    'toExit':u'om af te sluiten.',
    'unattendedAccess':u'Toegang\nzonder toezicht',
    'unexpectedError':u'Onverwachte fout.\n{0}',
    'uninstallMonitor':u'Monitor verwijderen...',
    'uninstallService':u'Service verwijderen...',
    'uninstallShortcuts':u'Snelkoppelingen verwijderen...',
    'unknownUser':u'Onbekende gebruiker',
    'user':u'Gebruiker',
    'validInteger':u'Het veld \'{0}\' moet een getal zijn.',
    'versionInstallNotValid':u'Deze versie van het installatieprogramma is niet correct voor uw besturingssysteem.\nDownload de juiste versie. {0}',
    'waiting':u'Wachten...',
    'warningLoginLogout':u'Om deze wijziging van kracht te laten worden, moet de gebruiker afmelden en opnieuw aanmelden.',
    'warningRemovePath':u'Waarschuwing: de doelmap bestaat al en zal worden verwijderd.',
    'warningSpyingTool':u'Hou er rekening mee dat u geen toegang mag krijgen tot een computer op afstand zonder de toestemming van de gebruiker. Door DWService als spionagemiddel te gebruiken overtreedt u mogelijk de wetten in het land waar u woont.',
    'welcomeLicense':u'Licentie\nDeze software is gratis en open source.\nHet bestaat uit Ã©Ã©n hoofdonderdeel dat is vrijgegeven onder de MPLv2-licentie en verscheidene bijkomende onderdelen die onder verschillende licenties vallen. Bezoek https://www.dwservice.net/en/licenses-sources.html voor meer informatie.',
    'welcomePrivacyTerms':u'Door verder te gaan met de installatie of het uitvoeren van deze software gaat u akkoord met de #TERMSANDCONDITIONS en het #PRIVACYPOLICY',
    'welcomeSecurity':u'Beveiliging\nOm uw privacy te beschermen slaan wij geen informatie van de agent op onze servers op. De communicatie tussen gebruikers, onze servers en agenten wordt versleuteld, zodat derden er geen toegang toe kunnen krijgen.',
    'welcomeSoftwareUpdates':u'Software-updates\nDeze software wordt automatisch bijgewerkt',
    'windowsAdminPrivileges':u'U moet beheerdersrechten hebben om DWAgent te installeren.\nKlik met de rechtermuisknop op het uitvoerbare bestand en klik op \'als administrator uitvoeren\' om het installatieprogramma te starten.',
    'yes':u'Ja'
}
                                                                                                                                                           ui/messages/zh.py                                                                                   0000644 0001750 0001750 00000025523 14630344555 013603  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'æˆ‘æŽ¥å—',
    'accessConfirm':u'æƒ³è¦è®¿é—®æ‚¨çš„è®¾å¤‡.',
    'agentName':u'ä»£ç†åç§°',
    'alreadyInstalled':u'å·²ç»å®‰è£…äº†DWAgent.\n\nDWAgentä¼šè‡ªåŠ¨æ›´æ–°åˆ°æœ€æ–°ç‰ˆæœ¬. ä»£è¡¨æ‚¨ä¸éœ€è¦æ‰‹åŠ¨å®‰è£…æ–°çš„æ›´æ–°.',
    'back':u'è¿”å›ž',
    'cancel':u'å–æ¶ˆ',
    'cancelInstall':u'å®‰è£ç¨‹åºå·²è¢«å–æ¶ˆ.',
    'cancelUninstall':u'ç§»é™¤ç¨‹åºå·²è¢«å–æ¶ˆ.',
    'checkInstallCode':u'æ­£åœ¨æ£€æŸ¥å®‰è£…ä»£ç ...',
    'chooseProxyType':u'ä½ éœ€è¦å“ªç§ç±»åž‹çš„ä¼ºæœæœåŠ¡å™¨?',
    'close':u'å…³é—­',
    'code':u'ä»£ç ',
    'commands':u'æŒ‡ä»¤',
    'configureAgent':u'è®¾ç½®ä»£ç†',
    'configureAgentDisabled':u'ä»£ç†å·²è¢«åœç”¨.',
    'configureAgentEnabled':u'ä»£ç†å·²å¯ç”¨.',
    'configureChangeInstallKey':u'æ”¹å˜å®‰è£…ç¨‹å¼ç ',
    'configureChooseMonitorTrayIconVisibility':u'æ˜¯å¦è¦åœ¨æ‰˜ç›˜å›¾æ ‡ä¸­æ˜¾ç¤ºç›‘è§†å™¨?',
    'configureChooseOperation':u'è¯·é€‰æ‹©ä½œä¸šé¡¹ç›®:',
    'configureDesktopNotification':u'æ¡Œé¢é€šçŸ¥',
    'configureDesktopNotificationOK':u'æ¡Œé¢é€šçŸ¥å·²æˆåŠŸé…ç½®.',
    'configureDisableAgent':u'åœç”¨ä»£ç†',
    'configureDisableAgentQuestion':u'è¦ç¦ç”¨ä»£ç†å—?',
    'configureEnableAgent':u'å¯ç”¨ä»£ç†',
    'configureEnableAgentQuestion':u'è¯·ç¡®è®¤å¯ç”¨ä»£ç†?',
    'configureEnd':u'è®¾ç½®å·²å®Œæˆ.',
    'configureErrorConnection':u'è¿žçº¿é”™è¯¯. è¯·æ£€å¯Ÿ DWAgent æœåŠ¡ä½¿å¦å¯ç”¨',
    'configureExit':u'é€€å‡º',
    'configureInsertPassword':u'è¯·è¾“å…¥è®¾ç½®æ—¶éœ€è¦çš„å¯†ç :',
    'configureInstallAgent':u'è¦å¦‚ä½•è®¾ç½®æ­¤ä»£ç†çš„æœåŠ¡?',
    'configureInstallCode':u'è¾“å…¥å®‰è£…ä»£ç ',
    'configureInstallNewAgent':u'åˆ›å»ºä¸€ä¸ªæ–°ä»£ç†',
    'configureInstallPassword':u'å®‰è£…å¯†ç ',
    'configureInstallUser':u'ç”¨æˆ·',
    'configureInvalidPassword':u'å¯†ç é”™è¯¯.',
    'configureKeyInstalled':u'å¯†é’¥å·²æˆåŠŸå®‰è£….',
    'configureLater':u'ç¨åŽè®¾ç½®',
    'configureMonitor':u'è®¾ç½®ç›‘è§†å™¨',
    'configurePassword':u'è®¾ç½®å¯†ç ',
    'configurePasswordErrNoMatch':u'å¯†ç ä¸åˆ.',
    'configurePasswordUpdated':u'å¯†ç å·²æ›´æ–°.',
    'configureProxy':u'é…ç½®ä¼ºæœæœåŠ¡å™¨',
    'configureProxyEnd':u'ä¼ºæœæœåŠ¡å™¨è®¾ç½®æˆåŠŸ.',
    'configureRemovePassword':u'ç§»é™¤å¯†ç ',
    'configureRemovePasswordQuestion':u'ç¡®è®¤è¦ç§»é™¤å¯†ç ?',
    'configureSetPassword':u'è®¾å®šå¯†ç ',
    'configureTitle':u'DWAgent - è®¾ç½®',
    'configureTrayIconOK':u'æˆåŠŸè®¾ç½®åœ¨ç³»ç»ŸåŒºæ˜¾ç¤ºå›¾ç¤º.',
    'configureTrayIconVisibility':u'ç³»ç»ŸåŒºæ˜¾ç¤ºå›¾ç¤º',
    'configureUninstallKeyQuestion':u'å¸è½½ç›®å‰å®‰è£…çš„ç¨‹å¼ç ?',
    'configureUninstallationKey':u'å¸è½½ç¨‹å¼ä¸­...',
    'confirmExit':u'ç¡®å®šé€€å‡º?',
    'confirmInstall':u'ç¡®è®¤å®‰è£… DWAgent åˆ°\'{0}\'å—?',
    'confirmUninstall':u'ç¡®è®¤åˆ é™¤ DWAgent?',
    'copyFiles':u'å¤åˆ¶æ–‡ä»¶ä¸­...',
    'createNewAgent':u'æ­£åœ¨æ–°å»ºä»£ç†ä¸­...',
    'decline':u'æˆ‘ä¸æŽ¥å—',
    'desktopNotificationAutoHide':u'è‡ªåŠ¨éšè—',
    'desktopNotificationNone':u'æ²¡æœ‰',
    'desktopNotificationVisible':u'å¯è§çš„',
    'downloadFile':u'æ­£åœ¨ä¸‹è½½æ¡£æ¡ˆ {0}...',
    'endInstall':u'å®Œæˆå®‰è£.',
    'endInstallConfigLater':u'å®Œæˆå®‰è£….\nå°šæœªè®¾ç½®ä»£ç†, ä½ ä»å¯ä»¥ç»§ç»­, ç¨åŽå†è®¾ç½®.',
    'endUninstall':u'å®Œæˆå¸è½½.',
    'enter':u'è¾“å…¥',
    'enterInstallCode':u'è¾“å…¥å®‰è£…ç¨‹å¼ç ',
    'enterInstallNewAgent':u'è¾“å…¥å»ºç«‹æ–°ä»£ç†çš„èµ„æ–™:',
    'enterRunCode':u'è¾“å…¥è¿žæŽ¥ä»£ç ',
    'error':u'é”™è¯¯',
    'errorAgentAlreadyExsists':u'æ­¤ä»£ç†{0}å·²ç»å­˜åœ¨.',
    'errorAgentMax':u'è¶…è¿‡æœ€å¤§çš„ä»£ç†æ•°é‡.',
    'errorAgentNameNotValid':u'ä»£ç†åç§°æ— æ•ˆ. ä½ ä¸èƒ½ä½¿ç”¨å­—ç¬¦ / \\ |',
    'errorConnectionConfig':u'è¿žçº¿é”™è¯¯. è¯·æ£€å¯Ÿä»£ç†æ˜¯å¦å·²å¯åŠ¨.',
    'errorConnectionQuestion':u'è¿žçº¿é”™è¯¯. è¯·æ£€å¯Ÿå¯¹å¤–è¿žçº¿æˆ–é˜²ç«å¢™çš„è®¾ç½®.\næ˜¯å¦æœ‰ä½¿ç”¨ä»£ç†æœåŠ¡å™¨?',
    'errorInvalidCode':u'è¾“å…¥çš„ç¨‹å¼ç é”™è¯¯.',
    'errorInvalidUserPassword':u'å¯†ç æˆ–æ˜¯å¸å·é”™è¯¯.',
    'fieldRequired':u'\'{0}\' æ ä½å¿…å¡«.',
    'install':u'å®‰è£',
    'installMonitor':u'å®‰è£ç›‘è§†å™¨...',
    'installMonitorErr':u'é”™è¯¯, æ— æ³•å®‰è£…ç›‘è§†å™¨.',
    'installService':u'å®‰è£…æœåŠ¡...',
    'installServiceErr':u'å®‰è£…æœåŠ¡é”™è¯¯.',
    'installShortcuts':u'å®‰è£…æ·å¾„...',
    'installShortcutsErr':u'å®‰è£…æ·å¾„é”™è¯¯.',
    'installerNotSupported':u'ä¸å†æ”¯æŒæ­¤å®‰è£ç¨‹åº.  è«‹ä¸‹è¼‰æœ€æ–°ç‰ˆæœ¬.',
    'ipAddress':u'IP åœ°å€: {0}',
    'linuxRootPrivileges':u'æ‚¨å¿…é¡»å…·æœ‰rootæƒé™æ‰èƒ½å®‰è£…DWAgent.\nè¯·ä½¿ç”¨rootç”¨æˆ·å¯åŠ¨è„šæœ¬.',
    'menuConfigure':u'è®¾ç½®',
    'menuMonitor':u'ç›‘è§†å™¨',
    'menuUninstall':u'å¸è½½',
    'missingInfoFile':u'æ‰¾ä¸åˆ° info.json æ¡£æ¡ˆ.',
    'missingNative':u'æ‰¾ä¸åˆ° Native ç¨‹åº.',
    'missingRuntime':u'æ‰¾ä¸åˆ°  Runtime ç¨‹åº.',
    'monitorActive':u'æ´»è·ƒ',
    'monitorAgentDisabled':u'ä»£ç†å·²åœç”¨.',
    'monitorAgentEnabled':u'ä»£ç†å·²å¯åŠ¨.',
    'monitorConfigure':u'è®¾ç½®',
    'monitorConnections':u'è¿žçº¿',
    'monitorCurrentActivities':u'å½“å‰æ´»åŠ¨',
    'monitorDisable':u'åœç”¨',
    'monitorDisableAgentQuestion':u'ç¡®è®¤åœç”¨æ­¤ä»£ç†?',
    'monitorDownload':u'ä¸‹è½½',
    'monitorEnable':u'å•Ÿç”¨',
    'monitorEnableAgentQuestion':u'ç¢ºèªå•Ÿç”¨æ­¤ä»£ç†?',
    'monitorEnterPassword':u'è¼¸å…¥å¯†ç¢¼:',
    'monitorErrorConnectionConfig':u'é€£ç·šéŒ¯èª¤. è«‹æª¢å¯Ÿ DWAgent æœå‹™ä½¿å¦å•Ÿç”¨.',
    'monitorHide':u'éš±è—',
    'monitorInvalidPassword':u'å¯†ç¢¼éŒ¯èª¤.',
    'monitorNoActivities':u'æ²¡æœ‰æ´»åŠ¨',
    'monitorScreenCapture':u'å±å¹•æˆªå›¾',
    'monitorSession':u'ä¼šè¯',
    'monitorShellSession':u'Shell',
    'monitorShow':u'é¡¯ç¤º',
    'monitorStatus':u'ç‹€æ…‹',
    'monitorStatusDisabled':u'ç¦ç”¨',
    'monitorStatusNoService':u'ç„¡æœå‹™',
    'monitorStatusOffline':u'é›¢ç·š',
    'monitorStatusOnline':u'ä¸Šç·š',
    'monitorStatusUpdating':u'æ›´æ–°ä¸­',
    'monitorTitle':u'DWAgent - ç›£è¦–å™¨',
    'monitorUninstall':u'å¸è¼‰',
    'monitorUninstallNotRun':u'æ²¡æœ‰rootæƒé™å°±æ— æ³•å¸è½½.\nè¯·åœ¨æŒ‡ä»¤ä»‹é¢ä¸­æ‰§è¡Œdwaguninstallå‘½ä»¤.',
    'monitorUpload':u'ä¸Šä¼ ',
    'mustAccept':u'è¦ç¹¼çºŒ, å¿…é ˆé¸æ“‡ {0}',
    'mustSelectOptions':u'å¿…é ˆé¸æ“‡ä½œæ¥­é¸é ….',
    'next':u'ä¸‹ä¸€æ­¥',
    'no':u'å¦',
    'noTryAgain':u'ä¸, è«‹å†è©¦ä¸€æ¬¡',
    'notInstalled':u'DWAgent æœªå®‰è£.',
    'ok':u'å¥½',
    'option':u'é¸é …',
    'optionNotValid':u'é¸æ“‡çš„é¸é …ç„¡æ•ˆ.',
    'or':u'æˆ–æ˜¯',
    'password':u'å¯†ç¢¼',
    'path':u'è·¯å¾‘',
    'pathCreating':u'å»ºç«‹è³‡æ–™å¤¾...',
    'pathNotCreate':u'ç„¡æ³•å»ºç«‹è³‡æ–™å¤¾. è·¯å¾‘ç„¡æ•ˆæˆ–ç„¡æ¬Šé™.',
    'pressEnter':u'è«‹æŒ‰ Enter ä¾†ç¹¼çºŒ.',
    'privacyPolicy':u'éšç§æ”¿ç­–',
    'proxyAuthPassword':u'å¯†ç¢¼',
    'proxyAuthUser':u'ç”¨æˆ·',
    'proxyHost':u'æœå‹™ä¸»æ©Ÿ',
    'proxyHttp':u'Http',
    'proxyInfo':u'æ’å…¥ä¼ºæœå™¨è¨Šæ¯.',
    'proxyNone':u'ç„¡',
    'proxyPort':u'é€£æŽ¥åŸ ',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'ç³»çµ±',
    'reEnterCode':u'è«‹é‡æ–°è¼¸å…¥ä»£ç¢¼',
    'reEnterData':u'è«‹é‡æ–°è¼¸å…¥è³‡æ–™',
    'rePassword':u'è«‹é‡æ–°è¼¸å…¥å¯†ç¢¼',
    'reject':u'æ‹’ç»',
    'removeFile':u'ç§»é™¤æª”æ¡ˆ...',
    'runWithoutInstallation':u'åŸ·è¡Œ',
    'runWithoutInstallationClosing':u'é—œé–‰é€£ç·šæœƒæœŸ...',
    'runWithoutInstallationConnecting':u'å•Ÿå‹•é€£ç·šæœƒæœŸ...',
    'runWithoutInstallationEnd':u'é€£ç·šæœƒæœŸçµæŸ.',
    'runWithoutInstallationOnlineBottom':u'è­¦å‘Š:\nä¸è¦å°‡æ­¤ä¿¡æ¯é€éœ²çµ¦ä¸ä¿¡ä»»çš„äºº, å¦å‰‡å°‡æœƒå…è¨±ä»–å€‘å­˜å–æ­¤è¨­å‚™çš„ä»£ç†. æ‰€ä»¥å¦‚æžœä½ ä¸ç¢ºå®š, è«‹é—œé–‰é€™å€‹æ‡‰ç”¨ç¨‹å¼.',
    'runWithoutInstallationOnlineBottomPutCode':u'è­¦å‘Š:\nç¾åœ¨ä»£ç†å·²æº–å‚™å¥½æŽ¥å—é€£æŽ¥.  å› æ­¤, å¦‚æžœæ‚¨ä¸ç¢ºå®šè‡ªå·±åœ¨åšä»€éº¼, è«‹é—œé–‰æ­¤æ‡‰ç”¨ç¨‹åº.',
    'runWithoutInstallationOnlinePassword':u'å¯†ç¢¼: {0}',
    'runWithoutInstallationOnlineTop':u'æ­¤é€£ç·šæœƒæœŸå·²å•Ÿç”¨.\nè¦é€£ç·šæ­¤ä»£ç†, è«‹é€£æŽ¥åˆ° https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'æœƒè©±è™•æ–¼æ´»å‹•ç‹€æ…‹.',
    'runWithoutInstallationOnlineUser':u'ç”¨æˆ¶: {0}',
    'runWithoutInstallationStarting':u'å•Ÿå‹•ä»£ç† ...',
    'runWithoutInstallationUnexpectedError':u'æ„å¤–éŒ¯èª¤.\nç„¡æ³•å•Ÿå‹• DWAgent. å¦‚æžœå•é¡Œä»ç„¶å­˜åœ¨, è«‹å˜—è©¦ä¸‹è¼‰æœ€æ–°ç‰ˆæœ¬çš„ DWAgent, åˆªé™¤è³‡æ–™å¤¾ \'{0}\' ä¸¦å†æ¬¡åŸ·è¡Œ DWAgent.',
    'runWithoutInstallationUpdating':u'æ›´æ–°ä»£ç† ...',
    'runWithoutInstallationWait':u'æ­£ç­‰å¾…æ–°çš„é€£ç·šä¸­(å˜—è©¦æ¬¡æ•¸ {0})...',
    'selectPathInstall':u'é¸æ“‡æ­¤å®‰è£çš„è·¯å¾‘:',
    'skipCertValidation':u'è­¦å‘Š: æ— æ³•éªŒè¯å®‰å…¨è¯ä¹¦, å¦‚æžœç»§ç»­, è¿žæŽ¥å¯èƒ½ä¸å®‰å…¨.\nè¯·æ£€æŸ¥ç½‘ç»œæˆ–æœ¬åœ°çš„è·¯ç”±å™¨/é˜²ç«å¢™/é˜²ç—…æ¯’é…ç½® of the network or local.\nä»è¦ç»§ç»­?',
    'startService':u'å•Ÿå‹•æœå‹™...',
    'startServiceErr':u'å•Ÿå‹•æœå‹™éŒ¯èª¤.',
    'termsAndConditions':u'æ¡æ¬¾å’Œæ¡ä»¶',
    'titleInstall':u'DWAgent - å®‰è£',
    'titleUninstall':u'DWAgent - å¸è¼‰',
    'toBack':u'è¿”å›ž.',
    'toExit':u'é›¢é–‹.',
    'unattendedAccess':u'æ— äººå€¼å®ˆ\nä½¿ç”¨æƒ',
    'unexpectedError':u'æ„å¤–éŒ¯èª¤.\n{0}',
    'uninstallMonitor':u'å¸è¼‰ç›£æŽ§...',
    'uninstallService':u'å¸è¼‰æœå‹™...',
    'uninstallShortcuts':u'å¸è¼‰å¿«æ·æ–¹å¼...',
    'unknownUser':u'æœªçŸ¥ç”¨æˆ·',
    'user':u'ç”¨æˆ¶',
    'validInteger':u'å­—æ®µ \'{0}\' å¿…é ˆæ˜¯æ•´æ•¸.',
    'versionInstallNotValid':u'å®‰è£ç¨‹åºçš„ç‰ˆæœ¬ä¸é©ç”¨æ–¼æ‚¨çš„æ“ä½œç³»çµ±.\nè«‹ä¸‹è¼‰æ­£ç¢ºçš„ç‰ˆæœ¬. {0}',
    'waiting':u'è«‹ç­‰å€™...',
    'warningLoginLogout':u'ä¸ºäº†ä½¿æ­¤æ›´æ”¹ç”Ÿæ•ˆï¼Œç”¨æˆ·å¿…é¡»æ³¨é”€å¹¶å†æ¬¡ç™»å½•.',
    'warningRemovePath':u'è­¦å‘Šç›®æ¨™æ–‡ä»¶å¤¾å·²ç¶“å­˜åœ¨, å®ƒå°‡è¢«åˆªé™¤.',
    'warningSpyingTool':u'è¯·æ³¨æ„, æœªç»ç”¨æˆ·çš„åŒæ„, æ‚¨ä¸å¾—è®¿é—®è¿œç¨‹è®¡ç®—æœº. é€šè¿‡å°†DWServiceç”¨ä½œé—´è°å·¥å…·, æ‚¨å¯èƒ½è¿åäº†å±…ä½å›½å®¶/åœ°åŒºçš„æ³•å¾‹.',
    'welcomeLicense':u'è¨±å¯è­‰\nè©²è»Ÿä»¶æ˜¯å…è²»å’Œé–‹æºçš„.\nå®ƒç”±ä¸€å€‹ä¸»è¦çµ„ä»¶å’Œå¹¾å€‹å®šç¾©ç‚º "app" çš„é™„ä»¶çµ„ä»¶çµ„æˆ, å¯ä»¥ç”±ä¸åŒçš„è¨±å¯è­‰ç®¡ç†. æœ‰é—œæ›´å¤šä¿¡æ¯, è«‹è¨ªå•: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'é€šè¿‡ç»§ç»­å®‰è£…æˆ–è¿è¡Œæ­¤è½¯ä»¶, æ‚¨åŒæ„#TERMSANDCONDITIONSå’Œ#PRIVACYPOLICY',
    'welcomeSecurity':u'å®‰å…¨æ€§\nç‚ºäº†ä¿è­·æ‚¨çš„éš±ç§, æˆ‘å€‘ä¿è­‰ä¸æœƒåœ¨æˆ‘å€‘çš„æœå‹™å™¨ä¸Šå­˜å„²ä»»ä½•ä¿¡æ¯, ä¸¦ä¸”é€šä¿¡ä¹Ÿæœƒè¢«åŠ å¯†, å› æ­¤ç„¡è«–å¦‚ä½•ç¬¬ä¸‰æ–¹éƒ½ç„¡æ³•è®€å–å®ƒå€‘.',
    'welcomeSoftwareUpdates':u'è»Ÿä»¶æ›´æ–°\næ­¤è»Ÿä»¶çš„æ›´æ–°æ˜¯è‡ªå‹•çš„.',
    'welcomeTermsAndConditions':u'é€éŽé¸æ“‡ \'{0}\' æˆ– \'{1}\' é¸é …, æˆ‘æŽ¥â€‹â€‹å— #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'æ‚¨å¿…é ˆå…·æœ‰ç®¡ç†å“¡æ¬Šé™æ‰èƒ½å®‰è£DWAgent.\nè«‹ä»¥ \'ä»¥ç®¡ç†å“¡èº«ä»½é‹è¡Œ\' å•Ÿå‹•å¯åŸ·è¡Œæ–‡ä»¶.',
    'yes':u'æ˜¯'
}
                                                                                                                                                                             ui/messages/el.py                                                                                   0000644 0001750 0001750 00000042374 14113374076 013562  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Î‘Ï€Î¿Î´Î­Ï‡Î¿Î¼Î±Î¹',
    'agentName':u'ÎŒÎ½Î¿Î¼Î± Agent',
    'alreadyInstalled':u'Î¤Î¿ DWAgent Î­Ï‡ÎµÎ¹ Î®Î´Î· ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î±Î¸ÎµÎ¯.\n\nÎŸ DWAgent ÎµÎ½Î·Î¼ÎµÏÏŽÎ½ÎµÏ„Î±Î¹ Î±Ï…Ï„ÏŒÎ¼Î±Ï„Î± ÏƒÏ„Î·Î½ Ï„ÎµÎ»ÎµÏ…Ï„Î±Î¯Î± Î­ÎºÎ´Î¿ÏƒÎ·. Î‘Ï…Ï„ÏŒ ÏƒÎ·Î¼Î±Î¯Î½ÎµÎ¹ ÏŒÏ„Î¹ Î´ÎµÎ½ Ï‡ÏÎµÎ¹Î¬Î¶ÎµÏ„Î±Î¹ Î½Î± ÎºÎ¬Î½ÎµÏ„Îµ Ï‡ÎµÎ¹ÏÎ¿ÎºÎ¯Î½Î·Ï„Î± ÎµÎ½Î·Î¼ÎµÏÏŽÏƒÎµÎ¹Ï‚.',
    'back':u'Î Î¯ÏƒÏ‰',
    'cancel':u'Î†ÎºÏ…ÏÎ¿',
    'cancelInstall':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î±ÎºÏ…ÏÏŽÎ¸Î·ÎºÎµ.',
    'cancelUninstall':u'Î— Î±Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î±ÎºÏ…ÏÏŽÎ¸Î·ÎºÎµ.',
    'checkInstallCode':u'ÎˆÎ»ÎµÎ³Ï‡Î¿Ï‚ ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚ ...',
    'chooseProxyType':u'Î¤ÏÏ€Î¿Ï‚ Î´Î¹Î±Î¼ÎµÏƒÎ¿Î»Î±Î²Î·Ï„Î® (proxy) Ï€Î¿Ï… Î¸Î­Î»ÎµÏ„Îµ Î½Î± Ï‡ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ;',
    'close':u'ÎšÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿',
    'code':u'ÎšÏ‰Î´Î¹ÎºÏŒÏ‚',
    'commands':u'Î•Î½Ï„Î¿Î»Î­Ï‚',
    'configureAgent':u'Î¡ÏÎ¸Î¼Î¹ÏƒÎ· agent',
    'configureAgentDisabled':u'ÎŸ Agent Î±Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î®Î¸Î·ÎºÎµ.',
    'configureAgentEnabled':u'ÎŸ Agent ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î®Î¸Î·ÎºÎµ.',
    'configureChangeInstallKey':u'Î‘Î»Î»Î±Î³Î® ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚',
    'configureChooseMonitorTrayIconVisibility':u'Î•Ï€Î¹Î¸Ï…Î¼ÎµÎ¯Ï„Îµ ÎµÎ¼Ï†Î¬Î½Î¹ÏƒÎ· ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… ÎµÎ¹Î´Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚ (tray icon);',
    'configureChooseOperation':u'Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÏ€Î¹Î»Î­Î¾Ï„Îµ Î»ÎµÎ¹Ï„Î¿Ï…ÏÎ³Î¯Î±:',
    'configureDesktopNotification':u'Î•Î¹Î´Î¿Ï€Î¿Î¯Î·ÏƒÎ· ÎµÏ€Î¹Ï†Î¬Î½ÎµÎ¹Î±Ï‚ ÎµÏÎ³Î±ÏƒÎ¯Î±Ï‚',
    'configureDesktopNotificationOK':u'Î— ÎµÎ¹Î´Î¿Ï€Î¿Î¯Î·ÏƒÎ· ÎµÏ€Î¹Ï†Î¬Î½ÎµÎ¹Î±Ï‚ ÎµÏÎ³Î±ÏƒÎ¯Î±Ï‚ Î´Î¹Î±Î¼Î¿ÏÏ†ÏŽÎ¸Î·ÎºÎµ Î¼Îµ ÎµÏ€Î¹Ï„Ï…Ï‡Î¯Î±.',
    'configureDisableAgent':u'Î‘Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎ· agent',
    'configureDisableAgentQuestion':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± Î±Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ Ï„Î¿Î½ agent;',
    'configureEnableAgent':u'Î•Î½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎ· agent',
    'configureEnableAgentQuestion':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î·Î¸ÎµÎ¯ Î¿ agent;',
    'configureEnd':u'Î— Î´Î¹Î±Î¼ÏŒÏÏ†Ï‰ÏƒÎ· Î­Ï‡ÎµÎ¹ Î¿Î»Î¿ÎºÎ»Î·ÏÏ‰Î¸ÎµÎ¯.',
    'configureErrorConnection':u'Î£Ï†Î¬Î»Î¼Î± ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚.  Î•Î»Î­Î³Î¾Ï„Îµ Î±Î½ Î­Ï‡ÎµÎ¹ Î¾ÎµÎºÎ¹Î½Î®ÏƒÎµÎ¹ Î· Ï…Ï€Î·ÏÎµÏƒÎ¯Î± DWAgent.',
    'configureExit':u'ÎˆÎ¾Î¿Î´Î¿Ï‚',
    'configureInsertPassword':u'Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÎ¹ÏƒÎ¬Î³ÎµÏ„Îµ ÎºÏ‰Î´Î¹ÎºÏŒ ÏÏ…Î¸Î¼Î¯ÏƒÎµÏ‰Î½:',
    'configureInstallAgent':u'Î ÏŽÏ‚ Ï€ÏÎ¿Ï„Î¹Î¼Î¬Ï„Îµ Î½Î± Î´Î¹Î±Î¼Î¿ÏÏ†ÏŽÏƒÎµÏ„Îµ Ï„Î¿Î½ agent;',
    'configureInstallCode':u'Î•Î¹ÏƒÎ±Î³Ï‰Î³Î® ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚',
    'configureInstallNewAgent':u'Î”Î·Î¼Î¹Î¿Ï…ÏÎ³Î¯Î± Î½Î­Î¿Ï… agent',
    'configureInvalidPassword':u'Î›Î±Î½Î¸Î±ÏƒÎ¼Î­Î½Î¿Ï‚ ÎºÏ‰Î´Î¹ÎºÏŒÏ‚.',
    'configureKeyInstalled':u'Î¤Î¿ ÎºÎ»ÎµÎ¹Î´Î¯ ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î¬Î¸Î·ÎºÎµ Î¼Îµ ÎµÏ€Î¹Ï„Ï…Ï‡Î¯Î±.',
    'configureLater':u'Î¡ÏÎ¸Î¼Î¹ÏƒÎ· Î±ÏÎ³ÏŒÏ„ÎµÏÎ±',
    'configureMonitor':u'Î¡ÏÎ¸Î¼Î¹ÏƒÎ· Î¿Î¸ÏŒÎ½Î·Ï‚',
    'configurePassword':u'Î¡ÏÎ¸Î¼Î¹ÏƒÎ· ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'configurePasswordErrNoMatch':u'ÎŸÎ¹ ÎºÏ‰Î´Î¹ÎºÎ¿Î¯ Î´ÎµÎ½ Ï„Î±Î¹ÏÎ¹Î¬Î¶Î¿Ï…Î½.',
    'configurePasswordUpdated':u'ÎŸ ÎºÏ‰Î´Î¹ÎºÏŒÏ‚ ÎµÎ½Î·Î¼ÎµÏÏŽÎ¸Î·ÎºÎµ.',
    'configureProxy':u'Î¡ÏÎ¸Î¼Î¹ÏƒÎ· Î´Î¹Î±Î¼ÎµÏƒÎ¿Î»Î±Î²Î·Ï„Î® (proxy)',
    'configureProxyEnd':u'Î•Ï€Î¹Ï„Ï…Ï‡Î®Ï‚ ÏÏÎ¸Î¼Î¹ÏƒÎ· Î´Î¹Î±Î¼ÎµÏƒÎ¿Î»Î±Î²Î·Ï„Î® (proxy)',
    'configureRemovePassword':u'ÎšÎ±Ï„Î¬ÏÎ³Î·ÏƒÎ· Ï„Î¿Ï… ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'configureRemovePasswordQuestion':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± ÎºÎ±Ï„Î±ÏÎ³Î®ÏƒÎµÏ„Îµ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚;',
    'configureSetPassword':u'ÎŸÏÎ¹ÏƒÎ¼ÏŒÏ‚ ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'configureTitle':u'DWAgent - Î¡Ï…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚',
    'configureTrayIconOK':u'Î— ÎµÎ¼Ï†Î¬Î½Î¹ÏƒÎ· ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï… ÎµÎ¹Î´Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚ ÏÏ…Î¸Î¼Î¯ÏƒÏ„Î·ÎºÎµ Î¼Îµ ÎµÏ€Î¹Ï„Ï…Ï‡Î¯Î±.',
    'configureTrayIconVisibility':u'Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· ÎµÎ¹ÎºÎ¿Î½Î¹Î´Î¯Î¿Ï…',
    'configureUninstallKeyQuestion':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Ï„ÏÎ­Ï‡Î¿Î½Ï„Î¿Ï‚ ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚;',
    'configureUninstallationKey':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·....',
    'confirmExit':u'Î•Î¯ÏƒÏ„Îµ ÏƒÎ¯Î³Î¿Ï…ÏÎ¿Î¹ ÏŒÏ„Î¹ Î¸Î­Î»ÎµÏ„Îµ Î­Î¾Î¿Î´Î¿;',
    'confirmInstall':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î®ÏƒÎµÏ„Îµ Ï„Î¿ DWAgent ÏƒÏ„Î¿ \'{0}\'?',
    'confirmUninstall':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± Î±Ï†Î±Î¹ÏÎ­ÏƒÎµÏ„Îµ Ï„Î¿Î½ DWAgent;',
    'copyFiles':u'Î‘Î½Ï„Î¹Î³ÏÎ±Ï†Î® Î±ÏÏ‡ÎµÎ¯Ï‰Î½...',
    'createNewAgent':u'Î”Î·Î¼Î¹Î¿Ï…ÏÎ³Î¯Î± agent ÏƒÎµ ÎµÎ¾Î­Î»Î¹Î¾Î·...',
    'decline':u'Î”ÎµÎ½ Î±Ï€Î¿Î´Î­Ï‡Î¿Î¼Î±Î¹',
    'desktopNotificationAutoHide':u'Î‘Ï…Ï„ÏŒÎ¼Î±Ï„Î· Î±Ï€ÏŒÎºÏÏ…ÏˆÎ·',
    'desktopNotificationNone':u'ÎšÎ±Î¸ÏŒÎ»Î¿Ï…',
    'desktopNotificationVisible':u'ÎŸÏÎ±Ï„ÏŒ',
    'downloadFile':u'Î›Î®ÏˆÎ· Î±ÏÏ‡ÎµÎ¯Î¿Ï… {0}...',
    'dwsPassword':u'DWS ÎºÏ‰Î´Î¹ÎºÏŒÏ‚ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'dwsUser':u'DWS Ï‡ÏÎ®ÏƒÏ„Î·Ï‚',
    'endInstall':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ.',
    'endInstallConfigLater':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ.\nÎ”ÎµÎ½ Î­Ï‡ÎµÎ¹ ÏÏ…Î¸Î¼Î¹ÏƒÏ„ÎµÎ¯ Î¿ agent.  ÎœÏ€Î¿ÏÎµÎ¯Ï„Îµ Î½Î± Ï€ÏÎ¿Ï‡Ï‰ÏÎ®ÏƒÎµÏ„Îµ ÏƒÏ„Î· ÏÏÎ¸Î¼Î¹ÏƒÎ· Î±ÏÎ³ÏŒÏ„ÎµÏÎ±.',
    'endUninstall':u'Î— ÎºÎ±Ï„Î¬ÏÎ³Î·ÏƒÎ· Ï„Î·Ï‚ ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚ Î¿Î»Î¿ÎºÎ»Î·ÏÏŽÎ¸Î·ÎºÎµ.',
    'enter':u'ÎµÎ¯ÏƒÎ¿Î´Î¿Ï‚',
    'enterInstallCode':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚',
    'enterInstallNewAgent':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Î´ÎµÎ´Î¿Î¼Î­Î½Î± Î´Î·Î¼Î¹Î¿Ï…ÏÎ³Î¯Î±Ï‚ Î½Î­Î¿Ï… agent:',
    'enterRunCode':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚',
    'error':u'Î£Ï†Î¬Î»Î¼Î±',
    'errorAgentAlreadyExsists':u'O agent {0} Ï…Ï€Î¬ÏÏ‡ÎµÎ¹ Î®Î´Î·.',
    'errorAgentMax':u'Î¥Ï€Î­ÏÎ²Î±ÏƒÎ· Ï„Î¿Ï… Î¼Î­Î³Î¹ÏƒÏ„Î¿Ï… Î±ÏÎ¹Î¸Î¼Î¿Ï Ï„Ï‰Î½ agents.',
    'errorAgentNameNotValid':u'Î¤Î¿ ÏŒÎ½Î¿Î¼Î± Ï„Î¿Ï… agent Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î­Î³ÎºÏ…ÏÎ¿.  Î”ÎµÎ½ Î¼Ï€Î¿ÏÎµÎ¯Ï„Îµ Î½Î± Ï‡ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ Ï„Î¿Ï…Ï‚ Ï‡Î±ÏÎ±ÎºÏ„Î®ÏÎµÏ‚ / \ |  # @ : .',
    'errorConnectionConfig':u'Î£Ï†Î¬Î»Î¼Î± ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚. Î Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎµÎ»Î­Î³Î¾Ï„Îµ ÎµÎ¬Î½ Î­Ï‡ÎµÎ¹ Î¾ÎµÎºÎ¹Î½Î®ÏƒÎµÎ¹ Î· Ï…Ï€Î·ÏÎµÏƒÎ¯Î± DWagent.',
    'errorConnectionQuestion':u'Î£Ï†Î¬Î»Î¼Î± ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚. Î•Î»Î­Î³Î¾Ï„Îµ Ï„Î· ÏƒÏÎ½Î´ÎµÏƒÎ· ÏƒÏ„Î¿ Î´Î¹Î±Î´Î¯ÎºÏ„Ï…Î¿ Î® Ï„Î· Î´Î¹Î±Î¼ÏŒÏÏ†Ï‰ÏƒÎ· Ï„Î¿Ï… Ï„ÎµÎ¯Ï‡Î¿Ï…Ï‚ Ï€ÏÎ¿ÏƒÏ„Î±ÏƒÎ¯Î±Ï‚.\nÎ˜Î­Î»ÎµÏ„Îµ Î½Î± ÏÏ…Î¸Î¼Î¯ÏƒÎµÏ„Îµ Ï„Î¿Î½ Î´Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î® Î¼ÎµÏƒÎ¿Î»Î¬Î²Î·ÏƒÎ·Ï‚ (proxy);',
    'errorInvalidCode':u'ÎŸ ÎºÏ‰Î´Î¹ÎºÏŒÏ‚ Ï€Î¿Ï… ÎºÎ±Ï„Î±Ï‡Ï‰ÏÎ¯ÏƒÎ±Ï„Îµ Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î­Î³ÎºÏ…ÏÎ¿Ï‚.',
    'errorInvalidUserPassword':u'ÎœÎ· Î­Î³ÎºÏ…ÏÎ¿Ï‚ Ï‡ÏÎ®ÏƒÏ„Î·Ï‚ Î® ÎºÏ‰Î´Î¹ÎºÏŒÏ‚ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚.',
    'fieldRequired':u'Î¤Î¿ Ï€ÎµÎ´Î¯Î¿ \'{0}\' Î±Ï€Î±Î¹Ï„ÎµÎ¯Ï„Î±Î¹.',
    'install':u'Î•Î³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'installMonitor':u'Î•Î³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¿Î¸ÏŒÎ½Î·Ï‚...',
    'installMonitorErr':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¿Î¸ÏŒÎ½Î·Ï‚ Î±Ï€Î­Ï„Ï…Ï‡Îµ...',
    'installService':u'Î•Î³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Ï…Ï€Î·ÏÎµÏƒÎ¯Î±Ï‚...',
    'installServiceErr':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Ï…Ï€Î·ÏÎµÏƒÎ¯Î±Ï‚ Î±Ï€Î­Ï„Ï…Ï‡Îµ.',
    'installShortcuts':u'Î•Î³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· ÏƒÏ…Î½Ï„Î¿Î¼ÎµÏÏƒÎµÏ‰Î½...',
    'installShortcutsErr':u'Î— ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· ÏƒÏ…Î½Ï„Î¿Î¼ÎµÏÏƒÎµÏ‰Î½ Î±Ï€Î­Ï„Ï…Ï‡Îµ.',
    'linuxRootPrivileges':u'Î ÏÎ­Ï€ÎµÎ¹ Î½Î± Î­Ï‡ÎµÏ„Îµ Î´Î¹ÎºÎ±Î¹ÏŽÎ¼Î±Ï„Î± root Î³Î¹Î± Î½Î± ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î®ÏƒÎµÏ„Îµ Ï„Î¿ DWAgent.\nÎžÎµÎºÎ¹Î½Î®ÏƒÏ„Îµ Ï„Î· Î´Î­ÏƒÎ¼Î· ÎµÎ½ÎµÏÎ³ÎµÎ¹ÏŽÎ½ (script) Ï‡ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹ÏŽÎ½Ï„Î±Ï‚ Ï„Î¿Î½ Ï‡ÏÎ®ÏƒÏ„Î· root.',
    'menuConfigure':u'Î”Î¹Î±Î¼Î¿ÏÏ†ÏŽÏƒÏ„Îµ',
    'menuMonitor':u'ÎŸÎ¸ÏŒÎ½Î·',
    'menuUninstall':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'missingInfoFile':u'Î¤Î¿ Î±ÏÏ‡ÎµÎ¯Î¿ info.json Î´ÎµÎ½ Î²ÏÎ­Î¸Î·ÎºÎµ.',
    'missingNative':u'Native not found.',
    'missingRuntime':u'Runtime not found.',
    'monitorActive':u'ÎµÎ½ÎµÏÎ³ÏŒ',
    'monitorAgentDisabled':u'Agent Î±Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î·Î¼Î­Î½Î¿Ï‚.',
    'monitorAgentEnabled':u'Agent ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î·Î¼Î­Î½Î¿Ï‚.',
    'monitorConfigure':u'Î”Î¹Î±Î¼ÏŒÏÏ†Ï‰ÏƒÎ·',
    'monitorConnections':u'Î£Ï…Î½Î´Î­ÏƒÎµÎ¹Ï‚',
    'monitorCurrentActivities':u'Î¤ÏÎ­Ï‡Î¿Ï…ÏƒÎµÏ‚ Î´ÏÎ±ÏƒÏ„Î·ÏÎ¹ÏŒÏ„Î·Ï„ÎµÏ‚',
    'monitorDisable':u'Î‘Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎ·',
    'monitorDisableAgentQuestion':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± Î±Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎµÏ„Îµ Ï„Î¿Î½ agent;',
    'monitorDownload':u'Î›Î®ÏˆÎ·',
    'monitorEnable':u'Î•Î½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎ·',
    'monitorEnableAgentQuestion':u'Î˜Î­Î»ÎµÏ„Îµ Î½Î± ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¯Î·ÏƒÎµÏ„Îµ Ï„Î¿Î½ agent;',
    'monitorEnterPassword':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚:',
    'monitorErrorConnectionConfig':u'Î£Ï†Î¬Î»Î¼Î± ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚. Î•Î»Î­Î³Î¾Ï„Îµ Î±Î½ Î­Ï‡ÎµÎ¹ Î¾ÎµÎºÎ¹Î½Î®ÏƒÎµÎ¹ Î· Ï…Ï€Î·ÏÎµÏƒÎ¯Î± DWAgent.',
    'monitorHide':u'Î‘Ï€ÏŒÎºÏÏ…ÏˆÎ·',
    'monitorInvalidPassword':u'Î›Î±Î½Î¸Î±ÏƒÎ¼Î­Î½Î¿Ï‚ ÎºÏ‰Î´Î¹ÎºÏŒÏ‚.',
    'monitorNoActivities':u'ÎšÎ±Î¼Î¯Î± Î´ÏÎ±ÏƒÏ„Î·ÏÎ¹ÏŒÏ„Î·Ï„Î±',
    'monitorScreenCapture':u'Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ· Î¿Î¸ÏŒÎ½Î·Ï‚',
    'monitorSession':u'Î£Ï…Î½ÎµÎ´ÏÎ¯Î±',
    'monitorShellSession':u'Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ· ÏƒÏ„Î¿ Ï„ÎµÏÎ¼Î±Ï„Î¹ÎºÏŒ',
    'monitorShow':u'Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ·',
    'monitorStatus':u'ÎšÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'monitorStatusDisabled':u'Î‘Ï€ÎµÎ½ÎµÏÎ³Î¿Ï€Î¿Î¹Î·Î¼Î­Î½Î¿',
    'monitorStatusNoService':u'Î”ÎµÎ½ Ï…Ï€Î¬ÏÏ‡ÎµÎ¹ Ï…Ï€Î·ÏÎµÏƒÎ¯Î±',
    'monitorStatusOffline':u'Î•ÎºÏ„ÏŒÏ‚ ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚',
    'monitorStatusOnline':u'Î£Îµ ÏƒÏÎ½Î´ÎµÏƒÎ·',
    'monitorStatusUpdating':u'Î•Î½Î·Î¼Î­ÏÏ‰ÏƒÎ·',
    'monitorTitle':u'DWAgent - ÎŸÎ¸ÏŒÎ½Î·',
    'monitorUninstall':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'monitorUninstallNotRun':u'Î”ÎµÎ½ Î¼Ï€Î¿ÏÎµÎ¯Ï„Îµ Î½Î± Î±Ï€ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î®ÏƒÎµÏ„Îµ Ï‡Ï‰ÏÎ¯Ï‚ Î´Î¹ÎºÎ±Î¹ÏŽÎ¼Î±Ï„Î± root.\nÎ•ÎºÏ„ÎµÎ»Î­ÏƒÏ„Îµ Ï„Î·Î½ ÎµÎ½Ï„Î¿Î»Î® dwaguninstall ÏƒÏ„Î¿ ÎºÎ­Î»Ï…Ï†Î¿Ï‚ (shell).',
    'monitorUpload':u'Î¼ÎµÏ„Î±Ï†ÏŒÏÏ„Ï‰ÏƒÎ·',
    'mustAccept':u'Î“Î¹Î± Î½Î± ÏƒÏ…Î½ÎµÏ‡Î¯ÏƒÎµÏ„Îµ, Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± ÎµÏ€Î¹Î»Î­Î¾ÎµÏ„Îµ Ï„Î·Î½ ÎµÏ€Î¹Î»Î¿Î³Î® {0}',
    'mustSelectOptions':u'Î ÏÎ­Ï€ÎµÎ¹ Î½Î± ÎµÏ€Î¹Î»Î­Î¾ÎµÏ„Îµ Î¼Î¹Î± ÎµÏ€Î¹Î»Î¿Î³Î®.',
    'next':u'Î•Ï€ÏŒÎ¼ÎµÎ½Î¿',
    'no':u'ÎŒÏ‡Î¹',
    'noTryAgain':u'ÎŒÏ‡Î¹, Ï€ÏÎ¿ÏƒÏ€Î±Î¸ÎµÎ¯ÏƒÏ„Îµ Ï€Î¬Î»Î¹',
    'notInstalled':u'Î¤Î¿ DWAgent Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ ÎµÎ³ÎºÎ±Ï„ÎµÏƒÏ„Î·Î¼Î­Î½Î¿.',
    'ok':u'Î•Î½Ï„Î¬Î¾ÎµÎ¹',
    'option':u'Î•Ï€Î¹Î»Î¿Î³Î®',
    'optionNotValid':u'Î— ÎµÏ€Î¹Î»ÎµÎ³Î¼Î­Î½Î· ÎµÏ€Î¹Î»Î¿Î³Î® Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î­Î³ÎºÏ…ÏÎ·.',
    'or':u'Î®',
    'password':u'ÎšÏ‰Î´Î¹ÎºÏŒÏ‚ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'path':u'Î”Î¹Î±Î´ÏÎ¿Î¼Î®',
    'pathCreating':u'Î”Î·Î¼Î¹Î¿Ï…ÏÎ³Î¯Î± Ï†Î±ÎºÎ­Î»Î¿Ï…...',
    'pathNotCreate':u'Î”ÎµÎ½ Î®Ï„Î±Î½ Î´Ï…Î½Î±Ï„Î® Î· Î´Î·Î¼Î¹Î¿Ï…ÏÎ³Î¯Î± Ï„Î¿Ï… Ï†Î±ÎºÎ­Î»Î¿Ï…. ÎœÎ· Î­Î³ÎºÏ…ÏÎ· Î´Î¹Î±Î´ÏÎ¿Î¼Î® Î® Î´ÎµÎ½ Î­Ï‡ÎµÏ„Îµ Î¬Î´ÎµÎ¹Î±.',
    'pressEnter':u'Î Î±Ï„Î®ÏƒÏ„Îµ Ï„Î¿ Ï€Î»Î®ÎºÏ„ÏÎ¿ enter Î³Î¹Î± Î½Î± ÏƒÏ…Î½ÎµÏ‡Î¯ÏƒÎµÏ„Îµ.',
    'privacyPolicy':u'Î Î¿Î»Î¹Ï„Î¹ÎºÎ® Î±Ï€Î¿ÏÏÎ®Ï„Î¿Ï…',
    'proxyAuthPassword':u'ÎšÏ‰Î´Î¹ÎºÏŒÏ‚ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'proxyAuthUser':u'Î§ÏÎ®ÏƒÏ„Î·Ï‚',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï€Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ Î´Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î® Î¼ÎµÏƒÎ¿Î»Î¬Î²Î·ÏƒÎ·Ï‚ (proxy).',
    'proxyNone':u'ÎšÎ±Î½Î­Î½Î±',
    'proxyPort':u'Î˜ÏÏÎ±',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Î£ÏÏƒÏ„Î·Î¼Î±',
    'reEnterCode':u'Î•Î¹ÏƒÎ±Î³Î¬Î³ÎµÏ„Îµ Î¾Î±Î½Î¬ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ',
    'reEnterData':u'Î•Ï€Î±Î½ÎµÎ¹ÏƒÎ¬Î³ÎµÏ„Îµ Ï„Î± Î´ÎµÎ´Î¿Î¼Î­Î½Î±',
    'rePassword':u'Î•Î¹ÏƒÎ¬Î³ÎµÏ„Îµ Î¾Î±Î½Î¬ Ï„Î¿Î½ ÎºÏ‰Î´Î¹ÎºÏŒ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ·Ï‚',
    'removeFile':u'ÎšÎ±Ï„Î¬ÏÎ³Î·ÏƒÎ· Î±ÏÏ‡ÎµÎ¯Î¿Ï…...',
    'runWithoutInstallation':u'Î•ÎºÏ„Î­Î»ÎµÏƒÎ·',
    'runWithoutInstallationClosing':u'ÎšÎ»ÎµÎ¯ÏƒÎ¹Î¼Î¿ ÏƒÏ…Î½ÎµÎ´ÏÎ¯Î±Ï‚...',
    'runWithoutInstallationConnecting':u'ÎˆÎ½Î±ÏÎ¾Î· ÏƒÏ…Î½ÎµÎ´ÏÎ¯Î±Ï‚...',
    'runWithoutInstallationEnd':u'Î— ÏƒÏ…Î½ÎµÎ´ÏÎ¯Î± Ï„ÎµÎ»ÎµÎ¯Ï‰ÏƒÎµ.',
    'runWithoutInstallationOnlineBottom':u'Î Î¡ÎŸÎ•Î™Î”ÎŸÎ ÎŸÎ™Î—Î£Î—:\nÎœÎ·Î½ Î±Ï€Î¿ÎºÎ±Î»ÏÏ€Ï„ÎµÏ„Îµ Î±Ï…Ï„Î­Ï‚ Ï„Î¹Ï‚ Ï€Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ ÏƒÎµ Î¼Î· Î­Î¼Ï€Î¹ÏƒÏ„Î± Ï€ÏÏŒÏƒÏ‰Ï€Î±, ÎµÎ¹Î´Î¬Î»Î»Ï‰Ï‚ Î¸Î± Ï„Î¿Ï…Ï‚ ÎµÏ€Î¹Ï„ÏÎ­ÏˆÎµÏ„Îµ Î½Î± Î­Ï‡Î¿Ï…Î½ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ· ÏƒÎµ Î±Ï…Ï„ÏŒÎ½ Ï„Î¿Î½ Ï…Ï€Î¿Î»Î¿Î³Î¹ÏƒÏ„Î®. Î‘Î½ Î´ÎµÎ½ ÎµÎ¯ÏƒÏ„Îµ ÏƒÎ¯Î³Î¿Ï…ÏÎ¿Î¹ Ï„Î¹ ÎºÎ¬Î½ÎµÏ„Îµ, ÎºÎ»ÎµÎ¯ÏƒÏ„Îµ Î±Ï…Ï„Î®Î½ Ï„Î·Î½ ÎµÏ†Î±ÏÎ¼Î¿Î³Î®.',
    'runWithoutInstallationOnlineBottomPutCode':u'Î Î¡ÎŸÎ•Î™Î”ÎŸÎ ÎŸÎ™Î—Î£Î—:\nÎ¤ÏŽÏÎ± Î¿ agent ÎµÎ¯Î½Î±Î¹ Î­Ï„Î¿Î¹Î¼Î¿Ï‚ Î½Î± Î´ÎµÏ‡Ï„ÎµÎ¯ ÏƒÏÎ½Î´ÎµÏƒÎ·. Î•Î¬Î½ Î´ÎµÎ½ ÎµÎ¯ÏƒÏ„Îµ ÏƒÎ¯Î³Î¿Ï…ÏÎ¿Î¹ Ï„Î¹ ÎºÎ¬Î½ÎµÏ„Îµ, Ï€Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎºÎ»ÎµÎ¯ÏƒÏ„Îµ Î±Ï…Ï„Î®Î½ Ï„Î·Î½ ÎµÏ†Î±ÏÎ¼Î¿Î³Î®.',
    'runWithoutInstallationOnlinePassword':u'ÎšÏ‰Î´Î¹ÎºÏŒÏ‚: {0}',
    'runWithoutInstallationOnlineTop':u'Î— ÏƒÏ…Î½ÎµÎ´ÏÎ¯Î± ÎµÎ¯Î½Î±Î¹ ÎµÎ½ÎµÏÎ³Î®.\nÎ“Î¹Î± Î½Î± ÏƒÏ…Î½Î´ÎµÎ¸ÎµÎ¯Ï„Îµ Î¼Îµ Î±Ï…Ï„ÏŒÎ½ Ï„Î¿Î½ Ï…Ï€Î¿Î»Î¿Î³Î¹ÏƒÏ„Î®, Î¼ÎµÏ„Î±Î²ÎµÎ¯Ï„Îµ ÏƒÏ„Î· Î´Î¹ÎµÏÎ¸Ï…Î½ÏƒÎ· https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Î— ÏƒÏ…Î½ÎµÎ´ÏÎ¯Î± ÎµÎ¯Î½Î±Î¹ ÎµÎ½ÎµÏÎ³Î®.',
    'runWithoutInstallationOnlineUser':u'Î§ÏÎ®ÏƒÏ„Î·Ï‚: {0}',
    'runWithoutInstallationStarting':u'ÎˆÎ½Î±ÏÎ¾Î· agent...',
    'runWithoutInstallationUnexpectedError':u'Î‘Ï€ÏÏŒÏƒÎ¼ÎµÎ½Î¿ ÏƒÏ†Î¬Î»Î¼Î±.\nÎ”ÎµÎ½ Î®Ï„Î±Î½ Î´Ï…Î½Î±Ï„ÏŒ Î½Î± Î¾ÎµÎºÎ¹Î½Î®ÏƒÎµÎ¹ Ï„Î¿ DWAgent. Î•Î¬Î½ Ï„Î¿ Ï€ÏÏŒÎ²Î»Î·Î¼Î± Ï€Î±ÏÎ±Î¼Î­Î½ÎµÎ¹, Î´Î¿ÎºÎ¹Î¼Î¬ÏƒÏ„Îµ Î½Î± ÎºÎ±Ï„ÎµÎ²Î¬ÏƒÎµÏ„Îµ Ï„Î·Î½ Ï„ÎµÎ»ÎµÏ…Ï„Î±Î¯Î± Î­ÎºÎ´Î¿ÏƒÎ· Ï„Î¿Ï… DWAgent, Î½Î± Î´Î¹Î±Î³ÏÎ¬ÏˆÎµÏ„Îµ Ï„Î¿ Ï†Î¬ÎºÎµÎ»Î¿ \'{0}\' ÎºÎ±Î¹ Î½Î± ÎµÎºÏ„ÎµÎ»Î­ÏƒÎµÏ„Îµ Î¾Î±Î½Î¬ Ï„Î¿ DWAgent.',
    'runWithoutInstallationUpdating':u'Î•Î½Î·Î¼Î­ÏÏ‰ÏƒÎ· agent...',
    'runWithoutInstallationWait':u'Î‘Î½Î±Î¼Î¿Î½Î® Î½Î­Î±Ï‚ ÏƒÏÎ½Î´ÎµÏƒÎ·Ï‚ ÏƒÎµ ÎµÎ¾Î­Î»Î¹Î¾Î· (Î±Ï€ÏŒÏ€ÎµÎ¹ÏÎ± {0}) ...',
    'selectPathInstall':u'Î•Ï€Î¹Î»Î­Î¾Ï„Îµ Ï„Î· Î´Î¹Î±Î´ÏÎ¿Î¼Î® ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚:',
    'startService':u'Î•ÎºÎºÎ¯Î½Î·ÏƒÎ· Ï…Ï€Î·ÏÎµÏƒÎ¯Î±Ï‚...',
    'startServiceErr':u'Î— ÎµÎºÎºÎ¯Î½Î·ÏƒÎ· Ï„Î·Ï‚ Ï…Ï€Î·ÏÎµÏƒÎ¯Î±Ï‚ Î±Ï€Î­Ï„Ï…Ï‡Îµ.',
    'termsAndConditions':u'ÎŸÏÎ¿Î¹ ÎºÎ±Î¹ Î ÏÎ¿Ï‹Ï€Î¿Î¸Î­ÏƒÎµÎ¹Ï‚',
    'titleInstall':u'DWAgent - Î•Î³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'titleUninstall':u'DWAgent - Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·',
    'toBack':u'Î³Î¹Î± Î¼ÎµÏ„Î¬Î²Î±ÏƒÎ· Ï€Î¯ÏƒÏ‰.',
    'toExit':u'Î³Î¹Î± Î­Î¾Î¿Î´Î¿.',
    'unexpectedError':u'Î‘Ï€ÏÏŒÏƒÎ¼ÎµÎ½Î¿ ÏƒÏ†Î¬Î»Î¼Î±.\n{0}',
    'uninstallMonitor':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î¿Î¸ÏŒÎ½Î·Ï‚...',
    'uninstallService':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Ï…Ï€Î·ÏÎµÏƒÎ¯Î±Ï‚...',
    'uninstallShortcuts':u'Î‘Ï€ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· ÏƒÏ…Î½Ï„Î¿Î¼ÎµÏÏƒÎµÏ‰Î½...',
    'user':u'Î§ÏÎ®ÏƒÏ„Î·Ï‚',
    'validInteger':u'Î¤Î¿ Ï€ÎµÎ´Î¯Î¿ \'{0}\' Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± ÎµÎ¯Î½Î±Î¹ Î±ÎºÎ­ÏÎ±Î¹Î¿Ï‚ Î±ÏÎ¹Î¸Î¼ÏŒÏ‚.',
    'versionInstallNotValid':u'Î— Î­ÎºÎ´Î¿ÏƒÎ· Ï„Î¿Ï… Ï€ÏÎ¿Î³ÏÎ¬Î¼Î¼Î±Ï„Î¿Ï‚ ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ·Ï‚ Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î· ÏƒÏ‰ÏƒÏ„Î® Î³Î¹Î± Ï„Î¿ Î»ÎµÎ¹Ï„Î¿Ï…ÏÎ³Î¹ÎºÏŒ ÏƒÎ±Ï‚ ÏƒÏÏƒÏ„Î·Î¼Î±.\nÎ Î±ÏÎ±ÎºÎ±Î»ÏŽ ÎºÎ¬Î½ÎµÏ„Îµ Î»Î®ÏˆÎ· Ï„Î·Ï‚ ÏƒÏ‰ÏƒÏ„Î®Ï‚ Î­ÎºÎ´Î¿ÏƒÎ·Ï‚. {0}',
    'waiting':u'Î‘Î½Î±Î¼Î¿Î½Î®...',
    'warningLoginLogout':u'Î“Î¹Î± Î½Î± Ï„ÎµÎ¸ÎµÎ¯ ÏƒÎµ Î¹ÏƒÏ‡Ï Î±Ï…Ï„Î® Î· Î±Î»Î»Î±Î³Î®, Î¿ Ï‡ÏÎ®ÏƒÏ„Î·Ï‚ Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± Î±Ï€Î¿ÏƒÏ…Î½Î´ÎµÎ¸ÎµÎ¯ ÎºÎ±Î¹ Î½Î± ÏƒÏ…Î½Î´ÎµÎ¸ÎµÎ¯ Î¾Î±Î½Î¬.',
    'warningRemovePath':u'Î ÏÎ¿ÎµÎ¹Î´Î¿Ï€Î¿Î¯Î·ÏƒÎ·, Î¿ Ï†Î¬ÎºÎµÎ»Î¿Ï‚ Ï€ÏÎ¿Î¿ÏÎ¹ÏƒÎ¼Î¿Ï Ï…Ï€Î¬ÏÏ‡ÎµÎ¹ Î®Î´Î· Î¿Ï€ÏŒÏ„Îµ Î¸Î± Î´Î¹Î±Î³ÏÎ±Ï†ÎµÎ¯.',
    'warningSpyingTool':u'Î›Î¬Î²ÎµÏ„Îµ Ï…Ï€ÏŒÏˆÎ· ÏŒÏ„Î¹ Î´ÎµÎ½ Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± Î­Ï‡ÎµÏ„Îµ Ï€ÏÏŒÏƒÎ²Î±ÏƒÎ· ÏƒÎµ Î­Î½Î±Î½ Î±Ï€Î¿Î¼Î±ÎºÏÏ…ÏƒÎ¼Î­Î½Î¿ Ï…Ï€Î¿Î»Î¿Î³Î¹ÏƒÏ„Î® Ï‡Ï‰ÏÎ¯Ï‚ Ï„Î· ÏƒÏ…Î³ÎºÎ±Ï„Î¬Î¸ÎµÏƒÎ· Ï„Î¿Ï… Ï‡ÏÎ®ÏƒÏ„Î· Ï„Î¿Ï…. Î§ÏÎ·ÏƒÎ¹Î¼Î¿Ï€Î¿Î¹ÏŽÎ½Ï„Î±Ï‚ Ï„Î¿ DWService Ï‰Ï‚ ÎµÏÎ³Î±Î»ÎµÎ¯Î¿ ÎºÎ±Ï„Î±ÏƒÎºÎ¿Ï€ÎµÎ¯Î±Ï‚, ÎµÎ½Î´Î­Ï‡ÎµÏ„Î±Î¹ Î½Î± Ï€Î±ÏÎ±Î²Î¹Î¬Î¶ÎµÏ„Îµ Î½ÏŒÎ¼Î¿Ï…Ï‚ ÏƒÏ„Î· Ï‡ÏŽÏÎ± Î´Î¹Î±Î¼Î¿Î½Î®Ï‚ ÏƒÎ±Ï‚.',
    'welcomeLicense':u'Î‘Î´ÎµÎ¹Î±\nÎ‘Ï…Ï„ÏŒ Ï„Î¿ Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÏŒ ÎµÎ¯Î½Î±Î¹ Î´Ï‰ÏÎµÎ¬Î½ Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÏŒ Î±Î½Î¿Î¹Ï‡Ï„Î¿Ï ÎºÏŽÎ´Î¹ÎºÎ± (free & open source). \nÎ‘Ï€Î¿Ï„ÎµÎ»ÎµÎ¯Ï„Î±Î¹ Î±Ï€ÏŒ Î­Î½Î± ÎºÏÏÎ¹Î¿ ÏƒÏ„Î¿Î¹Ï‡ÎµÎ¯Î¿ ÎºÎ±Î¹ Î´Î¹Î¬Ï†Î¿ÏÎ± Ï€ÏÏŒÏƒÎ¸ÎµÏ„Î± Ï€Î¿Ï… Î¿ÏÎ¯Î¶Î¿Î½Ï„Î±Î¹ Ï‰Ï‚ "app" ÎºÎ±Î¹ Ï„Î± Î¿Ï€Î¿Î¯Î± ÎµÎ½Î´Î­Ï‡ÎµÏ„Î±Î¹ Î½Î± Î´Î¹Î­Ï€Î¿Î½Ï„Î±Î¹ Î±Ï€ÏŒ Î´Î¹Î±Ï†Î¿ÏÎµÏ„Î¹ÎºÎ­Ï‚ Î¬Î´ÎµÎ¹ÎµÏ‚. Î“Î¹Î± Ï€ÎµÏÎ¹ÏƒÏƒÏŒÏ„ÎµÏÎµÏ‚ Ï€Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ ÎµÏ€Î¹ÏƒÎºÎµÏ†Ï„ÎµÎ¯Ï„Îµ: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Î£Ï…Î½ÎµÏ‡Î¯Î¶Î¿Î½Ï„Î±Ï‚ Ï„Î·Î½ ÎµÎ³ÎºÎ±Ï„Î¬ÏƒÏ„Î±ÏƒÎ· Î® ÎµÎºÏ„ÎµÎ»ÏŽÎ½Ï„Î±Ï‚ Î±Ï…Ï„ÏŒ Ï„Î¿ Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÏŒ, Î±Ï€Î¿Î´Î­Ï‡ÎµÏƒÏ„Îµ Ï„Î¿Ï…Ï‚ #TERMSANDCONDITIONS ÎºÎ±Î¹ Ï„Î¿Ï…Ï‚ #PRIVACYPOLICY',
    'welcomeSecurity':u'Î‘ÏƒÏ†Î¬Î»ÎµÎ¹Î±\nÎ ÏÎ¿ÎºÎµÎ¹Î¼Î­Î½Î¿Ï… Î½Î± Ï€ÏÎ¿ÏƒÏ„Î±Ï„ÎµÏÏƒÎ¿Ï…Î¼Îµ Ï„Î¿ Î¹Î´Î¹Ï‰Ï„Î¹ÎºÏŒ ÏƒÎ±Ï‚ Î±Ï€ÏŒÏÏÎ·Ï„Î¿, ÎµÎ³Î³Ï…ÏŒÎ¼Î±ÏƒÏ„Îµ ÏŒÏ„Î¹ Î´ÎµÎ½ Î¸Î± Î±Ï€Î¿Î¸Î·ÎºÎµÏÎ¿Î½Ï„Î±Î¹ Ï€Î»Î·ÏÎ¿Ï†Î¿ÏÎ¯ÎµÏ‚ ÏƒÏ„Î¿Ï…Ï‚ Î´Î¹Î±ÎºÎ¿Î¼Î¹ÏƒÏ„Î­Ï‚ Î¼Î±Ï‚ ÎµÎ½ÏŽ Î¿Î¹ ÎµÏ€Î¹ÎºÎ¿Î¹Î½Ï‰Î½Î¯ÎµÏ‚ ÎµÎ¯Î½Î±Î¹ ÎºÏÏ…Ï€Ï„Î¿Î³ÏÎ±Ï†Î·Î¼Î­Î½ÎµÏ‚, Î­Ï„ÏƒÎ¹ ÏŽÏƒÏ„Îµ Î½Î± Î¼Î·Î½ Î¼Ï€Î¿ÏÎ¿ÏÎ½ Î½Î± Î´Î¹Î±Î²Î±ÏƒÏ„Î¿ÏÎ½ Î¼Îµ ÎºÎ±Î½Î­Î½Î± Ï„ÏÏŒÏ€Î¿ Î±Ï€ÏŒ Ï„ÏÎ¯Ï„Î¿Ï…Ï‚.',
    'welcomeSoftwareUpdates':u'Î•Î½Î·Î¼ÎµÏÏŽÏƒÎµÎ¹Ï‚ Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï\nÎŸÎ¹ ÎµÎ½Î·Î¼ÎµÏÏŽÏƒÎµÎ¹Ï‚ Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï ÎµÎ¯Î½Î±Î¹ Î±Ï…Ï„ÏŒÎ¼Î±Ï„ÎµÏ‚.',
    'windowsAdminPrivileges':u'Î ÏÎ­Ï€ÎµÎ¹ Î½Î± Î­Ï‡ÎµÏ„Îµ Î´Î¹ÎºÎ±Î¹ÏŽÎ¼Î±Ï„Î± Î´Î¹Î±Ï‡ÎµÎ¹ÏÎ¹ÏƒÏ„Î® Î³Î¹Î± Î½Î± ÎµÎ³ÎºÎ±Ï„Î±ÏƒÏ„Î®ÏƒÎµÏ„Îµ Ï„Î¿ DWAgent.\nÎžÎµÎºÎ¹Î½Î®ÏƒÏ„Îµ Ï„Î¿ ÎµÎºÏ„ÎµÎ»Î­ÏƒÎ¹Î¼Î¿ Î¼Îµ  "ÎµÎºÏ„Î­Î»ÎµÏƒÎ· Ï‰Ï‚ Î´Î¹Î±Ï‡ÎµÎ¹ÏÎ¹ÏƒÏ„Î®Ï‚".',
    'yes':u'ÎÎ±Î¯'
}
                                                                                                                                                                                                                                                                    ui/messages/tr.py                                                                                   0000644 0001750 0001750 00000031317 14630344560 013601  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Kabul ediyorum',
    'accessConfirm':u'CihazÄ±nÄ±za eriÅŸmek istiyorum.',
    'agentName':u'Ajan adÄ±',
    'alreadyInstalled':u'DWAgent zaten yÃ¼klendi.\n\nAjan son sÃ¼rÃ¼me otomatik olarak gÃ¼ncellenir. Yeni gÃ¼ncellemeleri elle kurmanÄ±za gerek yoktur.',
    'back':u'Geri',
    'cancel':u'Ä°ptal Et',
    'cancelInstall':u'Kurulum iÅŸlemi iptal edildi.',
    'cancelUninstall':u'KaldÄ±rma iÅŸlemi iptal edildi.',
    'checkInstallCode':u'Kurulum kodu kontrol ediliyor...',
    'chooseProxyType':u'Hangi proxy tÃ¼rÃ¼nÃ¼ kullanmak istiyorsunuz?',
    'close':u'Kapat',
    'code':u'Kod',
    'commands':u'Komutlar',
    'configureAgent':u'AjanÄ± yapÄ±landÄ±r',
    'configureAgentDisabled':u'Ajan pasif edildi.',
    'configureAgentEnabled':u'Ajan aktif edildi.',
    'configureChangeInstallKey':u'Kurulum kodunu deÄŸiÅŸtir',
    'configureChooseMonitorTrayIconVisibility':u'UygulamayÄ± Tepsi Simgesinde gÃ¶stermek istiyor musunuz?',
    'configureChooseOperation':u'LÃ¼tfen bir aksiyon seÃ§iniz.',
    'configureDesktopNotification':u'Sistem bildirimleri',
    'configureDesktopNotificationOK':u'Sistem bildirimleri baÅŸarÄ±lÄ± ÅŸekilde ayarlandÄ±.',
    'configureDisableAgent':u'AjanÄ± devre dÄ±ÅŸÄ± bÄ±rak',
    'configureDisableAgentQuestion':u'DWAgent\'i devre dÄ±ÅŸÄ± bÄ±rakmak istiyor musunuz?',
    'configureEnableAgent':u'AjanÄ± etkinleÅŸtir.',
    'configureEnableAgentQuestion':u'DWAgent\'i devreye almak istiyor musunuz?',
    'configureEnd':u'KonfigÃ¼rasyon tamamlanmÄ±ÅŸtÄ±r.',
    'configureErrorConnection':u'BaÄŸlantÄ± hatasÄ±. DWAgent servisinin baÅŸladÄ±ÄŸÄ±ndan emin olunuz.',
    'configureExit':u'Ã‡Ä±kÄ±ÅŸ',
    'configureInsertPassword':u'LÃ¼tfen yapÄ±landÄ±rma ÅŸifresini giriniz:',
    'configureInstallAgent':u'DWAgent\'i nasÄ±l yapÄ±landÄ±rmayÄ± tercih edersiniz?',
    'configureInstallCode':u'Kurulum kodunu giriniz',
    'configureInstallNewAgent':u'Yeni bir ajan oluÅŸtur',
    'configureInstallPassword':u'Kurulum ÅŸifresi',
    'configureInstallUser':u'KullanÄ±cÄ±',
    'configureInvalidPassword':u'HatalÄ± ÅŸifre.',
    'configureKeyInstalled':u'Anahtar baÅŸarÄ±yla kuruldu.',
    'configureLater':u'Daha sonra yapÄ±landÄ±r.',
    'configureMonitor':u'MonitÃ¶r yapÄ±landÄ±rmasÄ±.',
    'configurePassword':u'Åžifreyi yapÄ±landÄ±r',
    'configurePasswordErrNoMatch':u'Parolalar uyuÅŸmuyor.',
    'configurePasswordUpdated':u'Parola gÃ¼ncellendi.',
    'configureProxy':u'Vekil sunucuyu yapÄ±landÄ±r',
    'configureProxyEnd':u'Vekil sunucu baÅŸarÄ±yla yapÄ±landÄ±rÄ±ldÄ±.',
    'configureRemovePassword':u'ParolayÄ± kaldÄ±r.',
    'configureRemovePasswordQuestion':u'ParolayÄ± kaldÄ±rmak istediÄŸinizden emin misiniz?',
    'configureSetPassword':u'Parola belirle',
    'configureTitle':u'DWAgent - YapÄ±landÄ±rma',
    'configureTrayIconOK':u'Sistem tepsisi simge gÃ¶rÃ¼nÃ¼rlÃ¼ÄŸÃ¼ baÅŸarÄ± bir ÅŸekilde ayarlandÄ±.',
    'configureTrayIconVisibility':u'Sistem tepsisi simge gÃ¶rÃ¼nÃ¼rlÃ¼ÄŸÃ¼',
    'configureUninstallKeyQuestion':u'Mevcut yÃ¼kleme kodu kaldÄ±rÄ±lsÄ±n mÄ±?',
    'configureUninstallationKey':u'KaldÄ±rma...',
    'confirmExit':u'Ã‡Ä±kmak istediÄŸinizden emin misiniz?',
    'confirmInstall':u'DWAgent\'i \'{0}\' konumuna yÃ¼klemek istiyor musunuz?',
    'confirmUninstall':u'WGAgent\'i kaldÄ±rmak istiyor musunuz?',
    'copyFiles':u'Dosyalar kopyalanÄ±yor...',
    'createNewAgent':u'Ajan oluÅŸturma devam ediyor...',
    'decline':u'Kabul etmiyorum.',
    'desktopNotificationAutoHide':u'Otomatik olarak gizle',
    'desktopNotificationNone':u'HiÃ§biri',
    'desktopNotificationVisible':u'GÃ¶rÃ¼nÃ¼r',
    'downloadFile':u'{0} DosyasÄ±  Ä°ndiriliyor...',
    'endInstall':u'Kurulum tamamlandÄ±.',
    'endInstallConfigLater':u'Kurulum TamamlandÄ±.\nAjan yazÄ±lÄ±mÄ± yapÄ±landÄ±rÄ±lmadÄ±. Daha sonra yapÄ±landÄ±rmaya devam edebilirsiniz.',
    'endUninstall':u'KaldÄ±rma Ä°ÅŸlemi Sorunsuz KaldÄ±rÄ±ldÄ±.',
    'enter':u'giriÅŸ',
    'enterInstallCode':u'Kurulum kodunu giriniz.',
    'enterInstallNewAgent':u'Yeni ajan oluÅŸturmak iÃ§in verileri giriniz:',
    'enterRunCode':u'BaÄŸlantÄ± kodunu giriniz',
    'error':u'Hata',
    'errorAgentAlreadyExsists':u'{0} aracÄ±sÄ± zaten var.',
    'errorAgentMax':u'Maksimum ajan sayÄ±sÄ± aÅŸÄ±ldÄ±.',
    'errorAgentNameNotValid':u'Ajan adÄ± geÃ§erli deÄŸil. Karakterleri kullanamazsÄ±nÄ±z. / \\ #@ : . |',
    'errorConnectionConfig':u'BaÄŸlantÄ± HatasÄ±.LÃ¼tfen DWAjan YazÄ±lÄ±mÄ±nÄ±n Ã§alÄ±ÅŸma durumunu kontrol edin.',
    'errorConnectionQuestion':u'BaÄŸlantÄ± hatasÄ±. LÃ¼tfen internet baÄŸlantÄ±nÄ±zÄ± veya gÃ¼venlik duvarÄ± yapÄ±landÄ±rmanÄ±zÄ± kontrol edin.\nProxy\'yi yapÄ±landÄ±rmak ister misiniz?',
    'errorInvalidCode':u'Girilen kod geÃ§eriz',
    'errorInvalidUserPassword':u'GeÃ§ersiz kullanÄ±cÄ± veya ÅŸifre',
    'fieldRequired':u'Bu Alan \'{0}\' Gereklidir.',
    'install':u'Kur',
    'installMonitor':u'Ekran Kuruluyor...',
    'installMonitorErr':u'Ekran yÃ¼klemesi baÅŸarÄ±sÄ±z oldu.',
    'installService':u'Servis yÃ¼kleniyor...',
    'installServiceErr':u'Servis yÃ¼klemesi baÅŸarÄ±sÄ±z oldu.',
    'installShortcuts':u'KÄ±sayollar yÃ¼kleniyor...',
    'installShortcutsErr':u'KÄ±sayollarÄ±n yÃ¼klenmesi baÅŸarÄ±sÄ±z oldu.',
    'installerNotSupported':u'Yukleyici artÄ±k desteklenmiyor. LÃ¼tfen son versiyonu indiriniz.',
    'ipAddress':u'IP Adresi: {0}',
    'linuxRootPrivileges':u'DWAgent\'i yÃ¼klemek iÃ§in root ayrÄ±calÄ±klarÄ±na sahip olmalÄ±sÄ±nÄ±z.\nLÃ¼tfen root kullanÄ±cÄ±sÄ± olarak betiÄŸi Ã§alÄ±ÅŸtÄ±rÄ±nÄ±z.',
    'menuConfigure':u'YapÄ±landÄ±rma',
    'menuMonitor':u'Ekran',
    'menuUninstall':u'KaldÄ±r',
    'missingInfoFile':u'info.json dosyasÄ± bulunamadÄ±.',
    'missingNative':u'Native bulunamadÄ±.',
    'missingRuntime':u'Ã‡alÄ±ÅŸma ZamanÄ± bulunamadÄ±.',
    'monitorActive':u'aktif',
    'monitorAgentDisabled':u'Ajan devre dÄ±ÅŸÄ± bÄ±rakÄ±ldÄ±.',
    'monitorAgentEnabled':u'Ajan etkinleÅŸtirildi.',
    'monitorConfigure':u'YapÄ±landÄ±rma',
    'monitorConnections':u'BaÄŸlantÄ±lar',
    'monitorCurrentActivities':u'Mevcut aktiviteler',
    'monitorDisable':u'Devre dÄ±ÅŸÄ±',
    'monitorDisableAgentQuestion':u'Ajan\'Ä± devre dÄ±ÅŸÄ± bÄ±rakmak istiyor musunuz?',
    'monitorDownload':u'Ä°ndirme',
    'monitorEnable':u'Etkin',
    'monitorEnableAgentQuestion':u'Ajan\'Ä± etkinleÅŸtirmek istiyor musunuz?',
    'monitorEnterPassword':u'Åžifrenizi giriniz:',
    'monitorErrorConnectionConfig':u'BaÄŸlantÄ± hatasÄ±. LÃ¼tfen DWAgent hizmetinin baÅŸlatÄ±ldÄ±ÄŸÄ±ndan emin olunuz.',
    'monitorHide':u'Gizle',
    'monitorInvalidPassword':u'GeÃ§ersiz ÅŸifre.',
    'monitorNoActivities':u'Aktivite mevcut deÄŸil',
    'monitorScreenCapture':u'Ekran eriÅŸimi',
    'monitorSession':u'Oturum',
    'monitorShellSession':u'Shell eriÅŸimi',
    'monitorShow':u'GÃ¶ster',
    'monitorStatus':u'Durum',
    'monitorStatusDisabled':u'Etkin DeÄŸil',
    'monitorStatusNoService':u'Servis yok',
    'monitorStatusOffline':u'Ã‡evrimdÄ±ÅŸÄ±',
    'monitorStatusOnline':u'Ã‡evrimiÃ§i',
    'monitorStatusUpdating':u'GÃ¼ncelleniyor',
    'monitorTitle':u'DWAgent - Ekran',
    'monitorUninstall':u'KaldÄ±r',
    'monitorUninstallNotRun':u'Root izinleri olmadan kaldÄ±ramazsÄ±nÄ±z.\ndwaguninstall komutunu, komut satÄ±rÄ±nda Ã§alÄ±ÅŸtÄ±rÄ±n.',
    'monitorUpload':u'KarÅŸÄ±ya yÃ¼kleme (Upload)',
    'mustAccept':u'Devam etmek iÃ§in {0} seÃ§eneÄŸini iÅŸaretlemelisiniz.',
    'mustSelectOptions':u'Bir seÃ§eneÄŸi iÅŸaretlemelisiniz.',
    'next':u'Sonraki',
    'no':u'HayÄ±r',
    'noTryAgain':u'HayÄ±r, yeniden deneyin',
    'notInstalled':u'DWAgent kurulu deÄŸil.',
    'ok':u'Tamam',
    'option':u'SeÃ§enek',
    'optionNotValid':u'Ä°ÅŸaretli seÃ§enek geÃ§ersizdir.',
    'or':u'veya',
    'password':u'Åžifre',
    'path':u'Yol',
    'pathCreating':u'KlasÃ¶r oluÅŸturma...',
    'pathNotCreate':u'KlasÃ¶r oluÅŸturulamadÄ±. Yetki reddedildi veya yol geÃ§ersiz.',
    'pressEnter':u'Devam etmek iÃ§in Enter tuÅŸuna basÄ±nÄ±z.',
    'privacyPolicy':u'Gizlilik politikasÄ±',
    'proxyAuthPassword':u'Åžifre',
    'proxyAuthUser':u'KullanÄ±cÄ±',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Vekil Sunucu bilgisi giriniz.',
    'proxyNone':u'HiÃ§biri',
    'proxyPort':u'Port',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'Sistem',
    'reEnterCode':u'Kodu tekrar gir.',
    'reEnterData':u'Veriyi tekrar gir.',
    'rePassword':u'Åžifreyi TekrarÄ±',
    'reject':u'Reddet',
    'removeFile':u'Dosya kaldÄ±rÄ±lÄ±yor...',
    'runWithoutInstallation':u'Ã‡alÄ±ÅŸtÄ±r',
    'runWithoutInstallationClosing':u'Oturum kapatÄ±lÄ±yor...',
    'runWithoutInstallationConnecting':u'Oturum aÃ§Ä±lÄ±yor...',
    'runWithoutInstallationEnd':u'Oturum sonlandÄ±rÄ±ldÄ±.',
    'runWithoutInstallationOnlineBottom':u'UYARI:\nBu bilgileri gÃ¼venmediÄŸiniz kiÅŸilerle paylaÅŸmayÄ±n. Bu istenmeyen kiÅŸilerin cihazÄ±nÄ±za eriÅŸmesine sebep olabilir. EÄŸer ne yaptÄ±ÄŸÄ±nÄ±zdan emin deÄŸilseniz lÃ¼tfen uygulamayÄ± kapatÄ±n.',
    'runWithoutInstallationOnlineBottomPutCode':u'UYARI:\nAjan, ÅŸuan baÄŸlantÄ± kabul etmeye hazÄ±r. Ne yaptÄ±ÄŸÄ±nÄ±zdan emin deÄŸilseniz lÃ¼tfen bu uygulamayÄ± kapatÄ±nÄ±z.',
    'runWithoutInstallationOnlinePassword':u'Åžifre: {0}',
    'runWithoutInstallationOnlineTop':u'Oturum aktif.\nBu Ajan\'a baÄŸlanmak iÃ§in https://www.dwservice.net adresini ziyaret ediniz.',
    'runWithoutInstallationOnlineTopPutCode':u'Oturum aktif.',
    'runWithoutInstallationOnlineUser':u'KullanÄ±cÄ±: {0}',
    'runWithoutInstallationStarting':u'Ajan baÅŸlatÄ±lÄ±yor...',
    'runWithoutInstallationUnexpectedError':u'Beklenmeyen hata.\nDWAgent\'i baÅŸlatmak mÃ¼mkÃ¼n olmadÄ±. EÄŸer sorun kalÄ±cÄ±ysa, DWAgent\'in son sÃ¼rÃ¼mÃ¼nÃ¼ karÅŸÄ±dan yÃ¼klemeyi deneyin, \'{0}\' klasÃ¶rÃ¼nÃ¼ silin ve DWAgent\'i tekrar Ã§alÄ±ÅŸtÄ±rÄ±n.',
    'runWithoutInstallationUpdating':u'Ajan gÃ¼ncellemesi...',
    'runWithoutInstallationWait':u'Yeni baÄŸlantÄ± bekleyiÅŸi devam ediyor (deneme {0})...',
    'selectPathInstall':u'YÃ¼kleme yolunu seÃ§iniz:',
    'skipCertValidation':u'UyarÄ±: GÃ¼venlik sertifikasÄ± doÄŸrulanamÄ±yor, devam ederseniz baÄŸlantÄ± gÃ¼venli olmayabilir.\nLÃ¼tfen aÄŸÄ±n veya yerelin yÃ¶nlendirici/gÃ¼venlik duvarÄ±/antivirÃ¼s yapÄ±landÄ±rmasÄ±nÄ± kontrol edin.\nYine de devam edilsin mi?',
    'startService':u'Hizmet baÅŸlatÄ±lÄ±yor...',
    'startServiceErr':u'Hizmet baÅŸlatÄ±lamadÄ±.',
    'termsAndConditions':u'Åžartlar ve KoÅŸullar',
    'titleInstall':u'DWAgent - YÃ¼kleme',
    'titleUninstall':u'DWAgent - KaldÄ±rma',
    'toBack':u'geri git.',
    'toExit':u'Ã§Ä±k.',
    'unattendedAccess':u'KatÄ±lÄ±msÄ±z\neriÅŸim',
    'unexpectedError':u'Beklenmeyen hata.\n{0}',
    'uninstallMonitor':u'Ekran kaldÄ±rÄ±lÄ±yor...',
    'uninstallService':u'Hizmet kaldÄ±rÄ±lÄ±yor...',
    'uninstallShortcuts':u'KÄ±sayollar kaldÄ±rÄ±lÄ±yor...',
    'unknownUser':u'Bilinmeyen kullanÄ±cÄ±',
    'user':u'KullanÄ±cÄ±',
    'validInteger':u'\'{0}\' alanÄ± tamsayÄ± olmalÄ±dÄ±r.',
    'versionInstallNotValid':u'YÃ¼kleyicinin versiyonu, iÅŸletim sisteminiz iÃ§in uygun deÄŸildir.\nLÃ¼tfen uygun versiyonu karÅŸÄ±dan yÃ¼kleyiniz. {0}',
    'waiting':u'Bekleniyor...',
    'warningLoginLogout':u'Bu deÄŸiÅŸikliklerin geÃ§erli olmasÄ± iÃ§in kullanÄ±cÄ±nÄ±n Ã§Ä±kÄ±ÅŸ yaptÄ±ktan sonra tekrar giriÅŸ yapmasÄ± gerekmetedir.',
    'warningRemovePath':u'UYARI: Hedef klasÃ¶z zaten var, bunu nedenle silinecek.',
    'warningSpyingTool':u'LÃ¼tfen Dikkat!  KullanÄ±cÄ± rÄ±zasÄ± olmadan kullanÄ±cÄ±nÄ±n bilgisayarÄ±na eriÅŸemezsiniz. DWService\'i casusuluk amacÄ± ile kullanmak bulunduÄŸunuz Ã¼lkenin yerel kanunlarÄ±nÄ± ihlale sebep olabilir.',
    'welcomeLicense':u'Lisans\nBu yazÄ±lÄ±m Ã¼cretsiz ve aÃ§Ä±k kaynaktÄ±r.\nAna bileÅŸenler MPLv2 lisansÄ± altÄ±nda piyasaya sunulmuÅŸtur, ancak bazÄ± bileÅŸenler farklÄ± lisanslara sahip olabilir. AÅŸaÄŸÄ±daki linkten daha fazla bilgi alabilirsiniz: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Kuruluma devam ederek veya bu yazÄ±lÄ±mÄ± Ã§alÄ±ÅŸtÄ±rarak #TERMSANDCONDITIONS ve #PRIVACYPOLICY\'nÄ± kabul etmiÅŸ olursunuz.',
    'welcomeSecurity':u'GÃ¼venlik\nGizliliÄŸinizi korumak iÃ§in uygulama bilgilerinizi sunucularÄ±mÄ±zda  saklamÄ±yoruz. KullanÄ±cÄ±lar, sunucularÄ±mÄ±z ve uygulamalar arasÄ±ndaki iletiÅŸim ÅŸifrelidir ve Ã¼Ã§Ã¼ncÃ¼ kiÅŸiler tarafÄ±ndan ulaÅŸÄ±lamaz.',
    'welcomeSoftwareUpdates':u'YazÄ±lÄ±m gÃ¼ncellemeleri.\nBu yazÄ±lÄ±mÄ±n gÃ¼ncellemeleri kendiliÄŸinden yapÄ±lÄ±r.',
    'welcomeTermsAndConditions':u'\'{0}\' veya \'{1}\' seÃ§eneÄŸini seÃ§erek #TERMSANDCONDITIONS anlaÅŸmayÄ± kabul edebilirsiniz.',
    'windowsAdminPrivileges':u'DWAgent\'i yÃ¼klemek iÃ§in yÃ¶netici ayrÄ±calÄ±klarÄ±na sahip olmalÄ±sÄ±nÄ±z.\nLÃ¼tfen Ã§alÄ±ÅŸtÄ±rÄ±labilir dosyayÄ± \'YÃ¶netici olarak Ã§alÄ±ÅŸtÄ±r\' ile baÅŸlatÄ±nÄ±z.',
    'yes':u'Evet'
}
                                                                                                                                                                                                                                                                                                                 ui/messages/default.py                                                                              0000755 0001750 0001750 00000027351 15022033740 014575  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Accept',
    'groupName':u'Group name',
    'agentName':u'Agent name',
    'alreadyInstalled':u'DWAgent already installed.\n\nThe agent automatically updates to the last version. It means that you do not need to manually install newer updates.',
    'back':u'Back',
    'cancel':u'Cancel',
    'cancelInstall':u'Install canceled.',
    'cancelUninstall':u'Uninstallation canceled.',
    'checkInstallCode':u'Checking installation code...',
    'chooseProxyType':u'What proxy type do you want to use?',
    'close':u'Close',
    'code':u'Code',
    'commands':u'Commands',
    'configureAgent':u'Configure agent',
    'configureAgentDisabled':u'Agent disabled.',
    'configureAgentEnabled':u'Agent enabled.',
    'configureChangeInstallKey':u'Change installation code',
    'configureChooseMonitorTrayIconVisibility':u'Do you want to show icon in tray?',
    'configureChooseOperation':u'Please choose an operation:',
    'configureDisableAgent':u'Disable agent',
    'configureDisableAgentQuestion':u'Do you want disable the agent?',
    'configureEnableAgent':u'Enable agent',
    'configureEnableAgentQuestion':u'Do you want enable the agent?',
    'configureEnd':u'Configuration has been completed.',
    'configureErrorConnection':u'Connection error. Please check if the DWAgent service is running.',
    'configureExit':u'Exit',
    'configureInsertPassword':u'Please enter config password:',
    'configureInstallAgent':u'How would you like to configure the agent?',
    'configureInstallCode':u'Enter the installation code',
    'configureInstallNewAgent':u'Creating a new agent',
    'configureInvalidPassword':u'Invalid password.',
    'configureKeyInstalled':u'Key installed successfully.',
    'configureLater':u'Configure later',
    'configureMonitor':u'Configure monitor',
    'configurePassword':u'Configure password',
    'configurePasswordErrNoMatch':u'The passwords do not match.',
    'configurePasswordUpdated':u'Password updated.',
    'configureProxy':u'Configure proxy',
    'configureProxyEnd':u'Proxy configured successfully.',
    'configureRemovePassword':u'Remove password',
    'configureRemovePasswordQuestion':u'Do you want remove the password?',
    'configureSetPassword':u'Set password',
    'configureTitle':u'DWAgent - Configuration',
    'configureTrayIconOK':u'Tray icon configured successfully.',
    'configureTrayIconVisibility':u'Tray icon visibility',
    'configureUninstallKeyQuestion':u'Uninstall the current installation code?',
    'configureUninstallationKey':u'Uninstallation...',
    'confirmExit':u'Are you sure you want to exit?',
    'confirmInstall':u'Do you want to install DWAgent to \'{0}\'?',
    'confirmUninstall':u'Do you want remove DWAgent?',
    'copyFiles':u'Copying files...',
    'createNewAgent':u'Agent creation in progress...',
    'decline':u'Decline',
    'downloadFile':u'Downloading file {0}...',
    'configureInstallPassword':u'Installation password',
    'configureInstallUser':u'User',
    'endInstall':u'Installation has been completed.',
    'endInstallConfigLater':u'Installation has completed.\nThe agent has not been configured. You can still create the configuration later.',
    'endUninstall':u'Uninstallation has completed.',
    'enter':u'enter',
    'enterInstallCode':u'Enter the installation code',
    'enterInstallNewAgent':u'Enter data to create a new agent:',
    'enterRunCode':u'Enter the connection code',
    'error':u'Error',
    'errorAgentAlreadyExsists':u'The agent {0} already exists.',
    'errorAgentMax':u'Exceeded maximum number of agents.',
    'errorAgentNameNotValid':u'The agent name is not valid. You can not use the characters / \\ | # @ : .',
    'errorConnectionConfig':u'Connection error. Please check if the DWAgent service is running.',
    'errorConnectionQuestion':u'Connection error. Please check your internet connection or firewall.\nDo you want to configure a proxy?',
    'errorInvalidCode':u'The code entered is invalid.',
    'errorInvalidUserPassword':u'Invalid user or password.',
    'fieldRequired':u'The field \'{0}\' is required.',
    'install':u'Install',
    'installMonitor':u'Installing monitor...',
    'installMonitorErr':u'Installation monitor failed.',
    'installService':u'Installing service...',
    'installServiceErr':u'Service installation failed.',
    'installShortcuts':u'Installing shortcuts...',
    'installShortcutsErr':u'Shortcut installation failed.',
    'linuxRootPrivileges':u'You must have root privileges to install DWAgent.\nPlease run the script with sudo or as root.',
    'menuConfigure':u'Configure',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Uninstall',
    'missingInfoFile':u'File info.json not found.',
    'missingNative':u'Native not found.',
    'missingRuntime':u'Runtime not found.',
    'monitorAgentDisabled':u'Agent disabled.',
    'monitorAgentEnabled':u'Agent enabled.',
    'monitorConfigure':u'Configure',
    'monitorConnections':u'Connections',
    'monitorDisable':u'Disable',
    'monitorDisableAgentQuestion':u'Do you want disable the agent?',
    'monitorEnable':u'Enable',
    'monitorEnableAgentQuestion':u'Do you want enable the agent?',
    'monitorEnterPassword':u'Enter password:',
    'monitorErrorConnectionConfig':u'Connection error. Please check if the DWAgent service is running.',
    'monitorHide':u'Hide',
    'monitorInvalidPassword':u'Invalid password.',
    'monitorShow':u'Show',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Disabled',
    'monitorStatusNoService':u'No service',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Updating',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Uninstall',
    'monitorUninstallNotRun':u'You can not uninstall without root permissions.\nRun the command dwaguninstall with sudo or as root.',
    'mustAccept':u'In order to continue, you must select the option {0}',
    'mustSelectOptions':u'You must select an option.',
    'next':u'Next',
    'no':u'No',
    'noTryAgain':u'No, retry',
    'notInstalled':u'DWAgent not installed.',
    'ok':u'OK',
    'option':u'Option',
    'optionNotValid':u'Selected option is invalid.',
    'or':u'or',
    'password':u'Password',
    'path':u'Path',
    'pathCreating':u'Folder creation...',
    'pathNotCreate':u'Could not create the folder. Invalid path or permission denied.',
    'pressEnter':u'Press enter to continue.',
    'proxyAuthPassword':u'Password',
    'proxyAuthUser':u'User',
    'proxyHost':u'Host',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'Insert proxy info.',
    'proxyNone':u'None',
    'proxyPort':u'Port',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'System',
    'reEnterCode':u'Re-enter the code',
    'reEnterData':u'Re-enter the data',
    'rePassword':u'Retype Password',
    'removeFile':u'Removing file...',
    'runWithoutInstallation':u'Run',
    'runWithoutInstallationClosing':u'Closing session...',
    'runWithoutInstallationConnecting':u'Opening session...',
    'runWithoutInstallationEnd':u'Session ended.',
    'runWithoutInstallationOnlineBottom':u'WARNING:\nDo not disclose this information to people you don\'t trust. It will allow them to access this device. If you are not sure what are you doing, please close this application.',
    'runWithoutInstallationOnlineBottomPutCode':u'WARNING:\nThe agent is now ready to accept a connection. If you are not sure what are you doing, please close this application.',
    'runWithoutInstallationOnlinePassword':u'Password: {0}',
    'runWithoutInstallationOnlineTop':u'The session is active.\nTo connect to this agent go to https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'The session is active.',
    'runWithoutInstallationOnlineUser':u'User: {0}',
    'runWithoutInstallationStarting':u'Agent startup...',
    'runWithoutInstallationUnexpectedError':u'Unexpected error.\nDWAgent was unable to start. If the problem persists, please download the latest release of DWAgent, delete the folder \'{0}\' and run DWAgent again.',
    'runWithoutInstallationUpdating':u'Agent update...',
    'runWithoutInstallationWait':u'Wait for the new connection in progress (attempt {0})...',
    'selectPathInstall':u'Select the installation path:',
    'startService':u'Starting service...',
    'startServiceErr':u'Failed to start service.',
    'titleInstall':u'DWAgent - Installation',
    'titleUninstall':u'DWAgent - Uninstallation',
    'toBack':u'to go back.',
    'toExit':u'to exit.',
    'unexpectedError':u'Unexpected error.\n{0}',
    'uninstallMonitor':u'Uninstalling monitor...',
    'uninstallService':u'Uninstalling service...',
    'uninstallShortcuts':u'Uninstalling shortcuts...',
    'user':u'User',
    'validInteger':u'The field \'{0}\' must be an integer.',
    'versionInstallNotValid':u'This version of the installer is not correct for your operating system.\nPlease download the correct version. {0}',
    'waiting':u'Waiting...',
    'warningRemovePath':u'Warning: the destination folder already exists and will be deleted.',
    'welcomeLicense':u'License\nThis software is free and open source.\nIt consists of one main component released under the MPLv2 license and several additional components that are governed by different licenses. For more information, visit: https://www.dwservice.net/en/licenses-sources.html',
    'welcomeSecurity':u'Security\nTo protect your privacy we don\'t store information from the agent on our servers. Communications between users, our servers and agents are encrypted so that third parties can\'t access them.',
    'welcomeSoftwareUpdates':u'Software updates\nThis software updates automatically',
    'welcomePrivacyTerms':u'By proceeding with the installation or running this software you agree to the #TERMSANDCONDITIONS and the #PRIVACYPOLICY',
    'welcomeTermsAndConditions':u'By selecting the \'{0}\' or \'{1}\' option I accept the #TERMSANDCONDITIONS',
    'termsAndConditions': u'Terms and Conditions',
    'privacyPolicy': u'Privacy policy',
    'windowsAdminPrivileges':u'You must have administrative privileges to install DWAgent.\nPlease right click the executable and click \'run as administrator\' to start the installer.',
    'yes':u'Yes',
    'monitorCurrentActivities': u'Current activities',
    'monitorNoActivities': u'No activities',
    'monitorSession': u'Session',
    'monitorScreenCapture': u'Screen access',
    'monitorShellSession': u'Shell access',
    'monitorDownload': u'Download',
    'monitorUpload': u'Upload',
    'monitorActive': u'active',
    'configureDesktopNotification': u'Desktop notification',
    'configureDesktopNotificationOK': u'Desktop notification configured successfully.',
    'desktopNotificationVisible': u'Visible',
    'desktopNotificationAutoHide': u'Automatically hide',
    'desktopNotificationNone': u'None',
    'warningSpyingTool': u'Please be aware that you may not access a remote computer without the consent of its user. By using DWService as a spying tool you may be infringing laws in your country of residence.',
    'warningLoginLogout': u'For this change to take effect, the user must logout and login again.',
    'reject': u'Reject',
    'ipAddress': u'IP Address: {0}',
    'accessConfirm': u'Would like to access to your device.',
    'unattendedAccess': u'Unattended\naccess',
    'unknownUser': u'Unknown user',
    'skipCertValidation': u'Warning: The security certificate cannot be validated, if you proceed the connection may not be secure.\nPlease check the router/firewall/antivirus configuration of the network or local.\nProceed anyway?',
    'installerNotSupported': u'This installer is no longer supported. Please download latest version.'
}
                                                                                                                                                                                                                                                                                       ui/messages/az.py                                                                                   0000644 0001750 0001750 00000031502 14630344567 013571  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'QÉ™bul edirÉ™m',
    'accessConfirm':u'CihazÄ±nÄ±za daxil olmaq istÉ™rdiniz.',
    'agentName':u'IstifadÉ™Ã§i adÄ±',
    'alreadyInstalled':u'DWAgent artÄ±q quraÅŸdÄ±rÄ±lÄ±b.\n\nAgent avtomatik olaraq son versiyaya yenilÉ™nir. Bu o demÉ™kdir ki, daha yeni yenilÉ™mÉ™lÉ™ri É™l ilÉ™ quraÅŸdÄ±rmanÄ±za ehtiyac yoxdur.',
    'back':u'cArxa',
    'cancel':u'LÉ™ÄŸv et',
    'cancelInstall':u'QuraÅŸdÄ±rma lÉ™ÄŸv edildi.',
    'cancelUninstall':u'SilinmÉ™ lÉ™ÄŸv edildi.',
    'checkInstallCode':u'QuraÅŸdÄ±rma kodu yoxlanÄ±lÄ±r...',
    'chooseProxyType':u'HansÄ± proxy nÃ¶vÃ¼ndÉ™n istifadÉ™ etmÉ™k istÉ™yirsiniz?',
    'close':u'YaxÄ±n',
    'code':u'Kod',
    'commands':u'É™mr',
    'configureAgent':u'Agenti konfiqurasiya edin',
    'configureAgentDisabled':u'Agent É™lildir.',
    'configureAgentEnabled':u'Agent aktivdir.',
    'configureChangeInstallKey':u'QuraÅŸdÄ±rma kodunu dÉ™yiÅŸdirin',
    'configureChooseMonitorTrayIconVisibility':u'TepsidÉ™ki monitor niÅŸanÄ±nÄ± gÃ¶stÉ™rmÉ™k istÉ™yirsiniz?',
    'configureChooseOperation':u'ZÉ™hmÉ™t olmasa bir É™mÉ™liyyat seÃ§in:',
    'configureDesktopNotification':u'MasaÃ¼stÃ¼ bildiriÅŸ',
    'configureDesktopNotificationOK':u'MasaÃ¼stÃ¼ bildiriÅŸi uÄŸurla konfiqurasiya edildi.',
    'configureDisableAgent':u'Agenti deaktiv edin',
    'configureDisableAgentQuestion':u'Agenti sÃ¶ndÃ¼rmÉ™k istÉ™yirsiniz?',
    'configureEnableAgent':u'Agenti aktiv edin',
    'configureEnableAgentQuestion':u'Agenti aktivlÉ™ÅŸdirmÉ™k istÉ™yirsiniz?',
    'configureEnd':u'Konfiqurasiya tamamlandÄ±.',
    'configureErrorConnection':u'ÆlaqÉ™ xÉ™tasÄ±. XahiÅŸ edirÉ™m DWAgent xidmÉ™tinin iÅŸlÉ™diyini yoxlayÄ±n.',
    'configureExit':u'Ã‡Ä±x',
    'configureInsertPassword':u'ZÉ™hmÉ™t olmasa konfiqurasiya parolunu daxil edin:',
    'configureInstallAgent':u'Agenti necÉ™ konfiqurasiya etmÉ™k istÉ™rdiniz?',
    'configureInstallCode':u'QuraÅŸdÄ±rma kodunu daxil edin',
    'configureInstallNewAgent':u'Yeni agent yaratmaq',
    'configureInstallPassword':u'QuraÅŸdÄ±rma parolu',
    'configureInstallUser':u'Ä°stifadÉ™Ã§i',
    'configureInvalidPassword':u'EtibarsÄ±z ÅžifrÉ™.',
    'configureKeyInstalled':u'Key installed succesfully.',
    'configureLater':u'Sonra konfiqurasiya edin',
    'configureMonitor':u'Monitoru konfiqurasiya edin',
    'configurePassword':u'Parolu konfiqurasiya edin',
    'configurePasswordErrNoMatch':u'Parollar uyÄŸun gÉ™lmir.',
    'configurePasswordUpdated':u'ÅžifrÉ™ yenilÉ™ndi.',
    'configureProxy':u'Proxy konfiqurasiya edin',
    'configureProxyEnd':u'Proxy uÄŸurla konfiqurasiya edildi.',
    'configureRemovePassword':u'ÅžifrÉ™ni silin',
    'configureRemovePasswordQuestion':u'Parolu silmÉ™k istÉ™yirsiniz?',
    'configureSetPassword':u'Parol seÃ§in',
    'configureTitle':u'DWAgent - Konfiqurasiya',
    'configureTrayIconOK':u'Tabla niÅŸanÄ± uÄŸurla konfiqurasiya edildi.',
    'configureTrayIconVisibility':u'Tepsiya niÅŸanÄ±nÄ±n gÃ¶rÃ¼nmÉ™si',
    'configureUninstallKeyQuestion':u'Cari quraÅŸdÄ±rma kodu silinsin?',
    'configureUninstallationKey':u'Silinir ...',
    'confirmExit':u'Ã‡Ä±xmaq istÉ™diyinizÉ™ É™minsiniz?',
    'confirmInstall':u'DWAgent-i \'{0}\' quraÅŸdÄ±rmaq istÉ™yirsiniz?',
    'confirmUninstall':u'DWAgent silmÉ™k istÉ™yirsiniz?',
    'copyFiles':u'Fayllar kopyalanÄ±r ...',
    'createNewAgent':u'Agent yaradÄ±lmasÄ± davam edir ...',
    'decline':u'QÉ™bul etmirÉ™m',
    'desktopNotificationAutoHide':u'Avtomatik olaraq gizlÉ™din',
    'desktopNotificationNone':u'Yoxdur',
    'desktopNotificationVisible':u'GÃ¶rÃ¼nÉ™n',
    'downloadFile':u'{0} faylÄ± endirilir ...',
    'endInstall':u'QuraÅŸdÄ±rma baÅŸa Ã§atÄ±b.',
    'endInstallConfigLater':u'QuraÅŸdÄ±rma baÅŸa Ã§atÄ±b.\nAgent konfiqurasiya edilmÉ™yib. YenidÉ™n konfiqurasiya yarada bilÉ™rsiniz.',
    'endUninstall':u'SilinmÉ™ tamamlandÄ±.',
    'enter':u'daxil edin',
    'enterInstallCode':u'QuraÅŸdÄ±rma kodunu daxil edin',
    'enterInstallNewAgent':u'Yeni agent yaratmaq Ã¼Ã§Ã¼n mÉ™lumat daxil edin:',
    'enterRunCode':u'BaÄŸlantÄ± kodunu daxil edin',
    'error':u'XÉ™ta',
    'errorAgentAlreadyExsists':u'Agent {0} artÄ±q mÃ¶vcuddur.',
    'errorAgentMax':u'Maksimum agent sayÄ±nÄ± keÃ§di.',
    'errorAgentNameNotValid':u'Agent adÄ± etibarlÄ± deyil. / \\ | SimvollarÄ±ndan istifadÉ™ edÉ™ bilmÉ™zsiniz # @:.',
    'errorConnectionConfig':u'ÆlaqÉ™ xÉ™tasÄ±. XahiÅŸ edirÉ™m DWAgent xidmÉ™tinin iÅŸlÉ™diyini yoxlayÄ±n.',
    'errorConnectionQuestion':u'ÆlaqÉ™ xÉ™tasÄ±. ZÉ™hmÉ™t olmasa internet baÄŸlantÄ±nÄ±zÄ± vÉ™ ya tÉ™hlÃ¼kÉ™sizlik divarÄ±nÄ±zÄ± yoxlayÄ±n.\nBir proxy konfiqurasiya etmÉ™k istÉ™yirsiniz?',
    'errorInvalidCode':u'GirilÉ™n kod etibarsÄ±zdÄ±r.',
    'errorInvalidUserPassword':u'YanlÄ±ÅŸ istifadÉ™Ã§i vÉ™ ya parol.',
    'fieldRequired':u'\'{0}\' sahÉ™si tÉ™lÉ™b olunur.',
    'install':u'YÃ¼klemek',
    'installMonitor':u'Monitor quraÅŸdÄ±rÄ±lÄ±r ...',
    'installMonitorErr':u'QuraÅŸdÄ±rma monitoru alÄ±nmadÄ±.',
    'installService':u'XidmÉ™t quraÅŸdÄ±rÄ±lÄ±r ...',
    'installServiceErr':u'XidmÉ™t quraÅŸdÄ±rÄ±lmasÄ± uÄŸursuz oldu.',
    'installShortcuts':u'QÄ±sayollar quraÅŸdÄ±rÄ±lÄ±r ...',
    'installShortcutsErr':u'QÄ±sayol quraÅŸdÄ±rÄ±la bilmÉ™di.',
    'installerNotSupported':u'Bu quraÅŸdÄ±rÄ±cÄ± artÄ±q dÉ™stÉ™klÉ™nmir. ZÉ™hmÉ™t olmasa son versiyanÄ± endirin.',
    'ipAddress':u'IP Ã¼nvanÄ±: {0}',
    'linuxRootPrivileges':u'DWAgent qurmaq Ã¼Ã§Ã¼n kÃ¶k imtiyazlarÄ±nÄ±z olmalÄ±dÄ±r.\nZÉ™hmÉ™t olmasa skripti sudo ilÉ™ vÉ™ ya kÃ¶k olaraq Ã§alÄ±ÅŸtÄ±rÄ±n.',
    'menuConfigure':u'Konfiqurasiya edin',
    'menuMonitor':u'Ekran',
    'menuUninstall':u'Sil',
    'missingInfoFile':u'Fayl mÉ™lumatÄ±.json tapÄ±lmadÄ±.',
    'missingNative':u'Yerli tapÄ±lmadÄ±.',
    'missingRuntime':u'Ä°ÅŸ vaxtÄ± tapÄ±lmadÄ±.',
    'monitorActive':u'aktivdir',
    'monitorAgentDisabled':u'Agent É™lildir.',
    'monitorAgentEnabled':u'Agent aktivdir.',
    'monitorConfigure':u'Konfiqurasiya edin',
    'monitorConnections':u'ÆlaqÉ™lÉ™r',
    'monitorCurrentActivities':u'Cari fÉ™aliyyÉ™tlÉ™r',
    'monitorDisable':u'Deaktiv edin',
    'monitorDisableAgentQuestion':u'Agenti sÃ¶ndÃ¼rmÉ™k istÉ™yirsiniz?',
    'monitorDownload':u'YÃ¼klÉ™yin',
    'monitorEnable':u'Aktiv edin',
    'monitorEnableAgentQuestion':u'Agenti aktivlÉ™ÅŸdirmÉ™k istÉ™yirsiniz?',
    'monitorEnterPassword':u'Parol daxil edin:',
    'monitorErrorConnectionConfig':u'ÆlaqÉ™ xÉ™tasÄ±. XahiÅŸ edirÉ™m DWAgent xidmÉ™tinin iÅŸlÉ™diyini yoxlayÄ±n.',
    'monitorHide':u'GizlÉ™din',
    'monitorInvalidPassword':u'EtibarsÄ±z ÅžifrÉ™.',
    'monitorNoActivities':u'FÉ™aliyyÉ™t yoxdur',
    'monitorScreenCapture':u'Ekrana giriÅŸ',
    'monitorSession':u'Sessiya',
    'monitorShellSession':u'QabÄ±q giriÅŸi',
    'monitorShow':u'GÃ¶stÉ™r',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'Ælildir',
    'monitorStatusNoService':u'XidmÉ™t yoxdur',
    'monitorStatusOffline':u'Oflayn',
    'monitorStatusOnline':u'Onlayn',
    'monitorStatusUpdating':u'YenilÉ™nir',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Sil',
    'monitorUninstallNotRun':u'KÃ¶k icazÉ™lÉ™ri olmadan silÉ™ bilmÉ™zsiniz.\nSudo ilÉ™ vÉ™ ya kÃ¶k kimi dwaguninstall É™mrini iÅŸÉ™ salÄ±n.',
    'monitorUpload':u'YÃ¼klÉ™mÉ™k',
    'mustAccept':u'Davam etmÉ™k Ã¼Ã§Ã¼n {0} seÃ§imini seÃ§mÉ™lisiniz',
    'mustSelectOptions':u'Bir seÃ§im seÃ§mÉ™lisiniz.',
    'next':u'NÃ¶vbÉ™ti',
    'no':u'Yox',
    'noTryAgain':u'Xeyr, yenidÉ™n cÉ™hd edin',
    'notInstalled':u'DWAgent quraÅŸdÄ±rÄ±lmayÄ±b.',
    'ok':u'tamam',
    'option':u'SeÃ§im',
    'optionNotValid':u'SeÃ§ilmiÅŸ seÃ§im etibarsÄ±zdÄ±r.',
    'or':u'vÉ™ ya',
    'password':u'ÅžifrÉ™',
    'path':u'Yol',
    'pathCreating':u'Qovluq yaradÄ±lmasÄ± ...',
    'pathNotCreate':u'Qovluq yarana bilmÉ™di. YanlÄ±ÅŸ yol vÉ™ ya icazÉ™ rÉ™dd edildi.',
    'pressEnter':u'Davam etmÉ™k Ã¼Ã§Ã¼n enter dÃ¼ymÉ™sini basÄ±n.',
    'privacyPolicy':u'Gizlilik SiyasÉ™ti',
    'proxyAuthPassword':u'ÅžifrÉ™',
    'proxyAuthUser':u'Ä°stifadÉ™Ã§i',
    'proxyHost':u'Ev sahibi',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'VÉ™kil mÉ™lumatÄ±nÄ± daxil edin.',
    'proxyNone':u'Yoxdur',
    'proxyPort':u'Liman',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'Sistem',
    'reEnterCode':u'Kodu yenidÉ™n daxil edin',
    'reEnterData':u'MÉ™lumatlarÄ± yenidÉ™n daxil edin',
    'rePassword':u'Parolu yenidÉ™n yÄ±ÄŸÄ±n',
    'reject':u'RÉ™dd edin',
    'removeFile':u'Fayl silinir ...',
    'runWithoutInstallation':u'QaÃ§',
    'runWithoutInstallationClosing':u'BaÄŸlanÄ±ÅŸ sessiyasÄ± ...',
    'runWithoutInstallationConnecting':u'Sessiya aÃ§Ä±lÄ±r ...',
    'runWithoutInstallationEnd':u'Sessiya baÅŸa Ã§atdÄ±.',
    'runWithoutInstallationOnlineBottom':u'XÆBÆRDARLIQ:\nBu mÉ™lumatlarÄ± etibar etmÉ™diyiniz insanlara aÃ§Ä±qlamayÄ±n. Bu cihazÄ± É™ldÉ™ etmÉ™lÉ™rinÉ™ imkan verÉ™cÉ™kdir. NÉ™ etdiyinizdÉ™n É™min deyilsinizsÉ™, xahiÅŸ edirÉ™m bu tÉ™tbiqi baÄŸlayÄ±n.',
    'runWithoutInstallationOnlineBottomPutCode':u'XÆBÆRDARLIQ:\nAgent artÄ±q bir É™laqÉ™ qÉ™bul etmÉ™yÉ™ hazÄ±rdÄ±r. NÉ™ etdiyinizdÉ™n É™min deyilsinizsÉ™, xahiÅŸ edirÉ™m bu tÉ™tbiqi baÄŸlayÄ±n.',
    'runWithoutInstallationOnlinePassword':u'ÅžifrÉ™: {0}',
    'runWithoutInstallationOnlineTop':u'Sessiya aktivdir.\nBu agentÉ™ qoÅŸulmaq Ã¼Ã§Ã¼n https://www.dwservice.net saytÄ±na daxil olun',
    'runWithoutInstallationOnlineTopPutCode':u'Sessiya aktivdir.',
    'runWithoutInstallationOnlineUser':u'Ä°stifadÉ™Ã§i: {0}',
    'runWithoutInstallationStarting':u'Agentin iÅŸÉ™ salÄ±nmasÄ± ...',
    'runWithoutInstallationUnexpectedError':u'GÃ¶zlÉ™nilmÉ™z sÉ™hv.\nDWAgent baÅŸlaya bilmÉ™di. Problem davam edÉ™rsÉ™, xahiÅŸ edirÉ™m DWAgent-in É™n son versiyasÄ±nÄ± yÃ¼klÉ™yin, \'{0}\' qovluÄŸunu silin vÉ™ DWAgent-i yenidÉ™n Ã§alÄ±ÅŸtÄ±rÄ±n.',
    'runWithoutInstallationUpdating':u'Agent yenilÉ™mÉ™si ...',
    'runWithoutInstallationWait':u'Yeni É™laqÉ™nin davam etmÉ™sini gÃ¶zlÉ™yin (cÉ™hd {0}) ...',
    'selectPathInstall':u'QuraÅŸdÄ±rma yolunu seÃ§in:',
    'skipCertValidation':u'XÉ™bÉ™rdarlÄ±q: TÉ™hlÃ¼kÉ™sizlik sertifikatÄ± tÉ™sdiq edilÉ™ bilmÉ™z, É™gÉ™r davam etsÉ™niz, É™laqÉ™ tÉ™hlÃ¼kÉ™siz olmaya bilÉ™r.\nÅžÉ™bÉ™kÉ™nin vÉ™ ya lokalÄ±n marÅŸrutlaÅŸdÄ±rÄ±cÄ±/firewall/antivirus konfiqurasiyasÄ±nÄ± yoxlayÄ±n.\nHÉ™r halda davam etmÉ™k?',
    'startService':u'XidmÉ™t baÅŸlayÄ±r ...',
    'startServiceErr':u'XidmÉ™tÉ™ baÅŸlamaq alÄ±nmadÄ±.',
    'termsAndConditions':u'ÅžÉ™rtlÉ™r vÉ™ Qaydalar',
    'titleInstall':u'DWAgent - QuraÅŸdÄ±rma',
    'titleUninstall':u'DWAgent - SilinmÉ™',
    'toBack':u'geriyÉ™ qayÄ±tmaq.',
    'toExit':u'Ã§Ä±xmaq.',
    'unattendedAccess':u'NÉ™zarÉ™tsiz\nGiriÅŸ',
    'unexpectedError':u'GÃ¶zlÉ™nilmÉ™z sÉ™hv.\n{0}',
    'uninstallMonitor':u'Monitor silinir ...',
    'uninstallService':u'XidmÉ™t silinir ...',
    'uninstallShortcuts':u'QÄ±sayollar silinir ...',
    'unknownUser':u'NamÉ™lum istifadÉ™Ã§i',
    'user':u'Ä°stifadÉ™Ã§i',
    'validInteger':u'\'{0}\' sahÉ™si bir tam olmalÄ±dÄ±r.',
    'versionInstallNotValid':u'QuraÅŸdÄ±rÄ±cÄ±nÄ±n bu versiyasÄ± É™mÉ™liyyat sisteminiz Ã¼Ã§Ã¼n dÃ¼zgÃ¼n deyil.\nXahiÅŸ edirÉ™m dÃ¼zgÃ¼n versiyanÄ± yÃ¼klÉ™yin. {0}',
    'waiting':u'GÃ¶zlÉ™yirÉ™m ...',
    'warningLoginLogout':u'Bu dÉ™yiÅŸikliyin qÃ¼vvÉ™yÉ™ minmÉ™si Ã¼Ã§Ã¼n istifadÉ™Ã§i yenidÉ™n Ã§Ä±xÄ±ÅŸ etmÉ™li vÉ™ giriÅŸ etmÉ™lidir.',
    'warningRemovePath':u'XÉ™bÉ™rdarlÄ±q: tÉ™yinat qovluÄŸu artÄ±q mÃ¶vcuddur vÉ™ silinÉ™cÉ™kdir.',
    'warningSpyingTool':u'LÃ¼tfÉ™n, istifadÉ™Ã§inin razÄ±lÄ±ÄŸÄ± olmadan uzaq bir kompÃ¼terÉ™ daxil ola bilmÉ™yÉ™cÉ™yinizi unutmayÄ±n. DWService\'i casusluq vasitÉ™si kimi istifadÉ™ edÉ™rÉ™k, yaÅŸadÄ±ÄŸÄ±nÄ±z Ã¶lkÉ™dÉ™ki qanunlarÄ± pozmuÅŸ ola bilÉ™rsiniz.',
    'welcomeLicense':u'Lisenziya\nBu proqram pulsuz vÉ™ aÃ§Ä±q mÉ™nbÉ™lidir.\nMPLv2 lisenziyasÄ± altÄ±nda buraxÄ±lmÄ±ÅŸ bir É™sas komponentdÉ™n vÉ™ fÉ™rqli lisenziyalarla idarÉ™ olunan bir neÃ§É™ É™lavÉ™ komponentdÉ™n ibarÉ™tdir. Daha Ã§ox mÉ™lumat Ã¼Ã§Ã¼n mÃ¼raciÉ™t edin: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Bu proqramÄ± quraÅŸdÄ±rmaÄŸa vÉ™ ya iÅŸÉ™ salmaqla #TERMSANDCONDITIONS vÉ™ #PRIVACYPOLICY qÉ™bul edirsiniz',
    'welcomeSecurity':u'TÉ™hlÃ¼kÉ™sizlik\nMÉ™xfiliyinizi qorumaq Ã¼Ã§Ã¼n agentdÉ™ki mÉ™lumatlarÄ± serverlÉ™rimizdÉ™ saxlamÄ±rÄ±q. Ä°stifadÉ™Ã§ilÉ™r, serverlÉ™rimiz vÉ™ agentlÉ™rimiz arasÄ±nda rabitÉ™ ÅŸifrÉ™lÉ™nir ki, Ã¼Ã§Ã¼ncÃ¼ tÉ™rÉ™flÉ™r onlara daxil ola bilmÉ™sin.',
    'welcomeSoftwareUpdates':u'Proqram yenilÉ™mÉ™lÉ™ri\nBu proqram avtomatik olaraq yenilÉ™nir',
    'welcomeTermsAndConditions':u'\'{0}\' vÉ™ ya \'{1}\' seÃ§imini seÃ§mÉ™klÉ™ #TERMSANDCONDITIONS qÉ™bul edirÉ™m',
    'windowsAdminPrivileges':u'DWAgent qurmaq Ã¼Ã§Ã¼n inzibati imtiyazlarÄ±nÄ±z olmalÄ±dÄ±r.\nZÉ™hmÉ™t olmasa yÃ¼rÃ¼tÃ¼lÉ™ bilÉ™n dÃ¼ymÉ™ni vurun vÉ™ quraÅŸdÄ±rÄ±cÄ±yÄ± baÅŸlamaq Ã¼Ã§Ã¼n \'idarÉ™Ã§i olaraq Ã§alÄ±ÅŸtÄ±r\' dÃ¼ymÉ™sini basÄ±n.',
    'yes':u'BÉ™li'
}
                                                                                                                                                                                              ui/messages/et.py                                                                                   0000644 0001750 0001750 00000027640 14630344566 013576  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'NÃµustun',
    'accessConfirm':u'Me soovime juurdepÃ¤Ã¤su teie seadmele.',
    'agentName':u'Agendi nimi',
    'alreadyInstalled':u'DWAgent on juba installitud.\n\nAgent vÃ¤rskendab automaatselt viimast versiooni. See tÃ¤hendab, et te ei pea uuemaid vÃ¤rskendusi kÃ¤sitsi installima.',
    'back':u'Tagasi',
    'cancel':u'TÃ¼hista',
    'cancelInstall':u'Paigaldamine tÃ¼histati.',
    'cancelUninstall':u'Eemaldamine tÃ¼histati',
    'checkInstallCode':u'Paigalduskoodi kontrollimine ...',
    'chooseProxyType':u'Millist puhverserverit soovite kasutada?',
    'close':u'Sulge',
    'code':u'Kood',
    'commands':u'KÃ¤sud',
    'configureAgent':u'Agendi konfigureerimine',
    'configureAgentDisabled':u'Agent on keelatud.',
    'configureAgentEnabled':u'Agent on lubatud.',
    'configureChangeInstallKey':u'Muuda paigalduskood',
    'configureChooseMonitorTrayIconVisibility':u'Kas soovite kuvada ikooni tegumiribal?',
    'configureChooseOperation':u'Valige operatsioon:',
    'configureDesktopNotification':u'TÃ¶Ã¶laua teavitused',
    'configureDesktopNotificationOK':u'TÃ¶Ã¶laua teavitused on edukalt seadistatud.',
    'configureDisableAgent':u'Keela agent',
    'configureDisableAgentQuestion':u'Kas soovite vahendit keelata?',
    'configureEnableAgent':u'Luba agent',
    'configureEnableAgentQuestion':u'Kas soovite agenti lubada?',
    'configureEnd':u'Konfiguratsioon on lÃµpetatud.',
    'configureErrorConnection':u'Ãœhenduse viga. Palun kontrollige, kas DWAgent teenust alustatakse.',
    'configureExit':u'VÃ¤lju',
    'configureInsertPassword':u'Palun sisesta config parool:',
    'configureInstallAgent':u'Kuidas soovite agenti konfigureerida?',
    'configureInstallCode':u'Paigalduskoodi sisestamine',
    'configureInstallNewAgent':u'Uue agendi loomine',
    'configureInstallPassword':u'Paigalduse parool',
    'configureInstallUser':u'Kasutaja',
    'configureInvalidPassword':u'Vale parool.',
    'configureKeyInstalled':u'VÃµti on edukalt installitud.',
    'configureLater':u'Konfigureerige hiljem',
    'configureMonitor':u'Monitori seadistamine',
    'configurePassword':u'Parooli seadistamine',
    'configurePasswordErrNoMatch':u'Parool ei sobi.',
    'configurePasswordUpdated':u'Parool uuendatud.',
    'configureProxy':u'Puhverserveri seadistamine',
    'configureProxyEnd':u'Proksi seadistatakse edukalt',
    'configureRemovePassword':u'Eemalda parool',
    'configureRemovePasswordQuestion':u'Kas soovite parooli eemaldada?',
    'configureSetPassword':u'MÃ¤Ã¤ra parool',
    'configureTitle':u'DWAgent - Seadistamine',
    'configureTrayIconOK':u'Salveikooni nÃ¤htavus, seadistatud edukalt.',
    'configureTrayIconVisibility':u'Salve ikooni nÃ¤htavus',
    'configureUninstallKeyQuestion':u'Kas soovid paigalduskoodi desinstallida?',
    'configureUninstallationKey':u'Desinstallimine ...',
    'confirmExit':u'Kas olete kindel, et soovite vÃ¤ljuda?',
    'confirmInstall':u'Kas soovite paigaldada DWAgendi asukohta "{0}"?',
    'confirmUninstall':u'Kas soovite eemaldada DWAgendi?',
    'copyFiles':u'Failide kopeerimine ...',
    'createNewAgent':u'Agendi loomine kÃ¤sil...',
    'decline':u'Ei nÃµustu',
    'desktopNotificationAutoHide':u'Peiad automaatselt',
    'desktopNotificationNone':u'Puuduvad',
    'desktopNotificationVisible':u'NÃ¤htaval',
    'downloadFile':u'Faili allalaadimine {0} ...',
    'endInstall':u'Paigaldus on lÃµpetatud.',
    'endInstallConfigLater':u'Paigaldus on lÃµpetatud.\nAgent ei ole konfigureeritud. Konfiguratsiooni saate siiski jÃ¤tkata hiljem.',
    'endUninstall':u'Desinstallimine on lÃµpetatud.',
    'enter':u'sisesta',
    'enterInstallCode':u'Sisesta installeerimise kood',
    'enterInstallNewAgent':u'Sisesta andmed uue agendi loomiseks:',
    'enterRunCode':u'Sisesta Ã¼hendamise kood',
    'error':u'Viga',
    'errorAgentAlreadyExsists':u'Agent {0} juba eksiteerib',
    'errorAgentMax':u'Agentide maksimaalne arv Ã¼letatud.',
    'errorAgentNameNotValid':u'Agendi nimi sisaldab keelatud tÃ¤hemÃ¤rke. Keelatud mÃ¤rgid: / \\ | # @ : .',
    'errorConnectionConfig':u'Ãœhenduse viga. Kontrolli kas DWAgendi teenus tÃ¶Ã¶tab Ã¼hendatavas arvutis.',
    'errorConnectionQuestion':u'Ãœhendumise viga. Kontrolli interneti Ã¼hendust vÃµi tulemÃ¼Ã¼ri seadeid.\nKas soovid konfigureerida proxy Ã¼henduse?',
    'errorInvalidCode':u'Sisestatud kood ei ole Ãµige.',
    'errorInvalidUserPassword':u'Vale kasutaja vÃµi parool.',
    'fieldRequired':u'VÃ¤lja \'{0}\' tÃ¤itmine on kohustuslik.',
    'install':u'Paigalda',
    'installMonitor':u'Lisan monitori...',
    'installMonitorErr':u'Monitori lisamine nurjus.',
    'installService':u'Paigaldan service moodulit...',
    'installServiceErr':u'Service mooduli paigaldus ebaÃµnnestus.',
    'installShortcuts':u'Paigaldan otseteid...',
    'installShortcutsErr':u'Otseteede paigaldus nurjus.',
    'installerNotSupported':u'Seda paigaldusprogrammi ei toetata enam. Palun laadige alla uusim versioon.',
    'ipAddress':u'IP Aadress: {0}',
    'linuxRootPrivileges':u'Sa pead olema root privileegidega kasutaja DWAgendi paigaldamiseks.\nPalun kÃ¤ivita script root kasutaja alt.',
    'menuConfigure':u'Konfigureeri',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Deinstalleeri',
    'missingInfoFile':u'Ei leia faili info.json.',
    'missingNative':u'Loomulikku (Native) ei leitud.',
    'missingRuntime':u'KÃ¤itusaega (Runtime) ei leitud',
    'monitorActive':u'aktiivne',
    'monitorAgentDisabled':u'Agent keelatud.',
    'monitorAgentEnabled':u'Agent lubatud.',
    'monitorConfigure':u'Konfigureeri',
    'monitorConnections':u'Ãœhendused',
    'monitorCurrentActivities':u'Hetke tegevused',
    'monitorDisable':u'Keela',
    'monitorDisableAgentQuestion':u'Kas tahad agenti keelata?',
    'monitorDownload':u'Lae alla',
    'monitorEnable':u'Luba',
    'monitorEnableAgentQuestion':u'Kas tahad seda agenti lubada?',
    'monitorEnterPassword':u'Sisesta parool:',
    'monitorErrorConnectionConfig':u'Ãœhenduse viga. Kontrolli kas DWAgendi teenus on kÃ¤ivitunud.',
    'monitorHide':u'Peida',
    'monitorInvalidPassword':u'Vale parool.',
    'monitorNoActivities':u'Pole tegevusi',
    'monitorScreenCapture':u'EkraanitÃµmmis',
    'monitorSession':u'Sessioon',
    'monitorShellSession':u'KÃ¤sukest',
    'monitorShow':u'NÃ¤ita',
    'monitorStatus':u'Olek',
    'monitorStatusDisabled':u'Keelatud',
    'monitorStatusNoService':u'Teenus puudub',
    'monitorStatusOffline':u'VÃµrguÃ¼henduseta',
    'monitorStatusOnline':u'VÃµrgus saadaval',
    'monitorStatusUpdating':u'Uuendan',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Desinstalli',
    'monitorUninstallNotRun':u'Sa ei saa desinstallida ilma root Ãµigusteta.\nKÃ¤ivita kÃ¤surealt kÃ¤sk "sudo dwaguninstall".',
    'monitorUpload':u'Lae Ã¼lesse',
    'mustAccept':u'Et jÃ¤tkata pead valima valiku {0}',
    'mustSelectOptions':u'Pead valima valiku',
    'next':u'JÃ¤rgmine',
    'no':u'Ei',
    'noTryAgain':u'Ei, proovi uuesti.',
    'notInstalled':u'Rakendus DWAgent pole paigaldatud.',
    'ok':u'Ok',
    'option':u'Valik',
    'optionNotValid':u'Valitud valik pole Ãµige.',
    'or':u'vÃµi',
    'password':u'Parool',
    'path':u'Kausta asukoht:',
    'pathCreating':u'Kausta loomine...',
    'pathNotCreate':u'Ei saanud kausta luua. Vale kausta asukoht vÃµi puuduvad admin Ãµigused.',
    'pressEnter':u'JÃ¤tkamiseks vajuta Enter klahvi',
    'privacyPolicy':u'Andmekaitse pÃµhimÃµtted',
    'proxyAuthPassword':u'Parool',
    'proxyAuthUser':u'Kasutaja',
    'proxyHost':u'VÃµÃµrustaja',
    'proxyHttp':u'Http',
    'proxyInfo':u'Sisesta puhverserveri info.',
    'proxyNone':u'Puudub',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'SÃ¼steem',
    'reEnterCode':u'Sisesta kood uuesti',
    'reEnterData':u'Sisesta andmed uuesti',
    'rePassword':u'Sisesta parool uuesti',
    'reject':u'Keeldu',
    'removeFile':u'Eemaldan faili...',
    'runWithoutInstallation':u'KÃ¤ivita',
    'runWithoutInstallationClosing':u'Sulgen sessiooni...',
    'runWithoutInstallationConnecting':u'Avan sessiooni...',
    'runWithoutInstallationEnd':u'Sessioon lÃµppes.',
    'runWithoutInstallationOnlineBottom':u'HOIATUS:\nÃ„ra avalda antud informatsiooni inimestele keda sa ei saa usaldada ega luba neil teist viisi sellele agendile ligi pÃ¤Ã¤seda. Kui sa pole kindel mida teed siis palun sulge see rakendus.',
    'runWithoutInstallationOnlineBottomPutCode':u'HOIATUS:\nNÃ¼Ã¼d on agent Ã¼hendumiseks valmis. Kui sa pole kindel mida teed, siis palun sulge see rakendus.',
    'runWithoutInstallationOnlinePassword':u'Parool: {0}',
    'runWithoutInstallationOnlineTop':u'Sessioon on aktiivne.\nSelle agendiga Ã¼hendumiseks mine https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sessioon on aktiivne.',
    'runWithoutInstallationOnlineUser':u'Kasutaja: {0}',
    'runWithoutInstallationStarting':u'Agent kÃ¤ivitub...',
    'runWithoutInstallationUnexpectedError':u'Ootamatu viga.\nPolnud vÃµimalik DWAgendi rakendust kÃ¤ivitada. Kui probleem pÃ¼sib, proovi alla laadida uusim versioon, kustuta kaust \'{0}\' ja kÃ¤ivita DWAgent uuesti.',
    'runWithoutInstallationUpdating':u'Agendi uuendamine...',
    'runWithoutInstallationWait':u'Oota uue Ã¼henduse loomist (katse {0})...',
    'selectPathInstall':u'Vali programmi paigaldamise asukoht:',
    'skipCertValidation':u'Hoiatus. Turvasertifikaati ei saa kinnitada, jÃ¤tkamisel ei pruugi Ã¼hendus olla turvaline.\nKontrollige vÃµrgu vÃµi kohaliku ruuteri/tulemÃ¼Ã¼ri/viirusetÃµrje konfiguratsiooni.\nKas soovite siiski jÃ¤tkata?',
    'startService':u'KÃ¤ivitan teenust...',
    'startServiceErr':u'Teenuse kÃ¤ivitus ebaÃµnnestus.',
    'termsAndConditions':u'Ãœldtingimused',
    'titleInstall':u'DWAgent - Paigaldamine',
    'titleUninstall':u'DWAgent - Eemaldamine',
    'toBack':u'mine tagasi.',
    'toExit':u'vÃ¤ljapÃ¤Ã¤suni.',
    'unattendedAccess':u'JÃ¤relevalveta\njuurdepÃ¤Ã¤s',
    'unexpectedError':u'Ootamatu viga.\n{0}',
    'uninstallMonitor':u'Deinstallin monitori...',
    'uninstallService':u'Deinstallin teenust...',
    'uninstallShortcuts':u'Eemaldan otseteid...',
    'unknownUser':u'Tundmatu kasutaja',
    'user':u'Kasutaja',
    'validInteger':u'VÃ¤li \'{0}\' peab olema tÃ¤isarv.',
    'versionInstallNotValid':u'Paigaldusprogrammi versioon ei vasta sinu operatsiooni sÃ¼steemile.\nPalun lae alla Ãµige versioon. {0}',
    'waiting':u'Ootan...',
    'warningLoginLogout':u'Selle muudatuse jÃµustumiseks peab kasutaja vÃ¤lja logima ja uuesti sisse logima.',
    'warningRemovePath':u'Hoiatus- kui sihtkaust juba eksisteerib, siis see kustutatakse.',
    'warningSpyingTool':u'Pange palun tÃ¤hele, et kaugarvutile juurdepÃ¤Ã¤su ei tohi kasutada ilma kaugarvuti kasutaja nÃµusolekuta. Kasutades DWService\'i nuhkimisvahendina, vÃµite rikkuda oma asukohariigi seadusi.',
    'welcomeLicense':u'Litsents\nSee tarkvara on tasuta ja avatud lÃ¤htekoodiga.\nSee koosneb Ã¼hest pÃµhikomponendist ja mitmest lisakomponendist, mis on mÃ¤Ã¤ratletud kui "rakendus" ja mida vÃµiks reguleerida erinevate litsentsidega. Lisateabe saamiseks kÃ¼lastage: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'JÃ¤tkates selle tarkvara paigaldamisega vÃµi selle kÃ¤ivitamisel nÃµustute dokumendiga: #TERMSANDCONDITIONS ja #PRIVACYPOLICY',
    'welcomeSecurity':u'Turvalisus\nTeie privaatsuse kaitsmiseks tagame, et meie serverites ei salvestata Ã¼htegi teavet ja side on krÃ¼pteeritud nii, et kolmandad osapooled ei saa neid andmeid lugeda.',
    'welcomeSoftwareUpdates':u'Tarkvara uuendused\nSelle tarkvara vÃ¤rskendused on automaatsed.',
    'welcomeTermsAndConditions':u'Valides valiku â€ž{0}â€ vÃµi â€ž{1}â€, nÃµustun #TERMSANDCONDITIONS.',
    'windowsAdminPrivileges':u'DWAgendi paigaldamiseks peate omama administraatoriÃµigusi.\nKÃ¤ivita paigaldusprogramm kÃ¤suga \'kÃ¤ivita administraatorina\'.',
    'yes':u'Jah'
}
                                                                                                ui/messages/sk.py                                                                                   0000644 0001750 0001750 00000030603 14630344563 013571  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'SÃºhlasÃ­m',
    'accessConfirm':u'Å½iada o prÃ­stup k zariadeniu',
    'agentName':u'NÃ¡zov agenta',
    'alreadyInstalled':u'DWAgent je uÅ¾ nainÅ¡talovanÃ½.\n\nAplikÃ¡cia agenta sa automaticky aktualizuje na najnovÅ¡iu verziu. To znamenÃ¡, Å¾e nemusÃ­te manuÃ¡lne inÅ¡talovaÅ¥ novÅ¡iu verziu.',
    'back':u'SpÃ¤Å¥',
    'cancel':u'ZruÅ¡iÅ¥',
    'cancelInstall':u'ZdieÄ¾ania od uÅ¾Ã­vateÄ¾ov',
    'cancelUninstall':u'OdinÅ¡talÃ¡cia bola preruÅ¡enÃ¡.',
    'checkInstallCode':u'Kontrolujem inÅ¡talaÄnÃ½ kÃ³d...',
    'chooseProxyType':u'AkÃ½ typ proxy chcete pouÅ¾iÅ¥?',
    'close':u'ZatvoriÅ¥',
    'code':u'KÃ³d',
    'commands':u'PrÃ­kazy',
    'configureAgent':u'Nakonfiguruj agenta',
    'configureAgentDisabled':u'Agent vypnutÃ½.',
    'configureAgentEnabled':u'Agent zapnutÃ½.',
    'configureChangeInstallKey':u'Zmena inÅ¡talaÄnÃ©ho kÃ³du',
    'configureChooseMonitorTrayIconVisibility':u'Chcete zobrazovaÅ¥ ikonku monitora v panely?',
    'configureChooseOperation':u'Vyberte prosÃ­m operÃ¡ciu',
    'configureDesktopNotification':u'Upozornenie na pracovnej ploche',
    'configureDesktopNotificationOK':u'Upozornenie na pracovnej ploche bolo ÃºspeÅ¡ne nastavenÃ©.',
    'configureDisableAgent':u'VypnÃºÅ¥ agenta',
    'configureDisableAgentQuestion':u'Å½elÃ¡te si vypnÃºÅ¥ agenta?',
    'configureEnableAgent':u'ZapnÃºÅ¥ agenta',
    'configureEnableAgentQuestion':u'Å½elÃ¡te si zapnÃºÅ¥ agenta?',
    'configureEnd':u'KonfigurÃ¡cia bola ukonÄenÃ¡.',
    'configureErrorConnection':u'ProblÃ©m pripojenia. Skontrolujte, Äi je DWAgent sluÅ¾ba spustenÃ¡.',
    'configureExit':u'Koniec',
    'configureInsertPassword':u'VloÅ¾te heslo konfigurÃ¡cie:',
    'configureInstallAgent':u'Ako uprednostÅˆujete konfigurÃ¡ciu agenta?',
    'configureInstallCode':u'VloÅ¾te inÅ¡talaÄnÃ½ kÃ³d',
    'configureInstallNewAgent':u'VytvoriÅ¥ novÃ©ho agenta',
    'configureInstallPassword':u'InÅ¡talaÄnÃ© heslo',
    'configureInstallUser':u'UÅ¾Ã­vateÄ¾',
    'configureInvalidPassword':u'NesprÃ¡vne heslo.',
    'configureKeyInstalled':u'KÄ¾ÃºÄ bol ÃºspeÅ¡ne nainÅ¡talovanÃ½.',
    'configureLater':u'KonfigurovaÅ¥ neskÃ´r',
    'configureMonitor':u'KonfigurÃ¡cia monitoru',
    'configurePassword':u'KonfigurÃ¡cia hesla',
    'configurePasswordErrNoMatch':u'Heslo sa nezhoduje.',
    'configurePasswordUpdated':u'Heslo bolo aktualizovanÃ©.',
    'configureProxy':u'KonfigurÃ¡cia proxy',
    'configureProxyEnd':u'KonfigurÃ¡cia Proxy bola ÃºspeÅ¡nÃ¡.',
    'configureRemovePassword':u'OdstrÃ¡niÅ¥ heslo',
    'configureRemovePasswordQuestion':u'Chcete odstrÃ¡niÅ¥ heslo?',
    'configureSetPassword':u'NastaviÅ¥ heslo',
    'configureTitle':u'DWAgent - KonfigurÃ¡cia',
    'configureTrayIconOK':u'Zobrazenie ikony na paneli, konfigurÃ¡cia ÃºspeÅ¡nÃ¡.',
    'configureTrayIconVisibility':u'Zobrazenie ikony na paneli.',
    'configureUninstallKeyQuestion':u'OdinÅ¡talovaÅ¥ aktuÃ¡lny inÅ¡talaÄnÃ½ kÃ³d?',
    'configureUninstallationKey':u'OdinÅ¡talovanie',
    'confirmExit':u'Ste si istÃ½, Å¾e chcete skonÄiÅ¥?',
    'confirmInstall':u'Chcete nainÅ¡talovaÅ¥ DWAgent na \'{0}\'?',
    'confirmUninstall':u'Chcete odstrÃ¡niÅ¥ DWAgenta?',
    'copyFiles':u'KopÃ­rovanie sÃºborov...',
    'createNewAgent':u'VytvÃ¡ranie agenta',
    'decline':u'NesÃºhlasÃ­m',
    'desktopNotificationAutoHide':u'SkryÅ¥ automaticky',
    'desktopNotificationNone':u'Å½iadna',
    'desktopNotificationVisible':u'ViditeÄ¾nÃ¡',
    'downloadFile':u'SÅ¥ahovanie sÃºboru {0}...',
    'endInstall':u'InÅ¡talÃ¡cia je kompletnÃ¡',
    'endInstallConfigLater':u'InÅ¡talÃ¡cia je kompletnÃ¡.\nAgent  nie je nakonfigurovanÃ½. KonfigurÃ¡ciu mÃ´Å¾ete urobiÅ¥ neskÃ´r.',
    'endUninstall':u'OdinÅ¡talovanie bolo ukonÄenÃ©.',
    'enter':u'vloÅ¾iÅ¥',
    'enterInstallCode':u'VloÅ¾te inÅ¡talaÄnÃ½ kÃ³d',
    'enterInstallNewAgent':u'VloÅ¾te Ãºdaje na vytvorenie novÃ©ho agenta.',
    'enterRunCode':u'Zadajte kÃ³d pripojenia',
    'error':u'Chyba',
    'errorAgentAlreadyExsists':u'Agent {0} uÅ¾ existuje.',
    'errorAgentMax':u'MaximÃ¡lny poÄet agentov je prekroÄenÃ½.',
    'errorAgentNameNotValid':u'NÃ¡zov agenta nie je platnÃ½. NemÃ´Å¾ete pouÅ¾iÅ¥ znaky / \\ | # @:.',
    'errorConnectionConfig':u'Chyba spojenia. Skontrolujte, Äi je sluÅ¾ba DWAgent spustenÃ¡.',
    'errorConnectionQuestion':u'Chyba spojenia. Skontrolujte pripojenie k internetu alebo konfigurÃ¡ciu brÃ¡ny firewall.\nChcete konfigurovaÅ¥ proxy?',
    'errorInvalidCode':u'ChybnÃ½ vloÅ¾enÃ½ kÃ³d.',
    'errorInvalidUserPassword':u'NesprÃ¡vnÃ½ uÅ¾Ã­vateÄ¾ alebo heslo',
    'fieldRequired':u'Pole \'{0}\' je potrebnÃ©.',
    'install':u'InÅ¡talÃ¡cia',
    'installMonitor':u'InÅ¡taluje sa monitor',
    'installMonitorErr':u'InÅ¡talÃ¡cia monitoru bola neuÃºspeÅ¡nÃ¡.',
    'installService':u'InÅ¡talÃ¡cia sluÅ¾by',
    'installServiceErr':u'InÅ¡talÃ¡cia sluÅ¾by bola neÃºspeÅ¡nÃ¡.',
    'installShortcuts':u'InÅ¡talÃ¡cia odkazu ...',
    'installShortcutsErr':u'InÅ¡talÃ¡cia odkazu bola neÃºspeÅ¡nÃ¡',
    'installerNotSupported':u'Tento inÅ¡talaÄnÃ½ sÃºbor uÅ¾ nie je podporovanÃ½. ProsÃ­m stiahnite si najnovÅ¡iu verziu.',
    'ipAddress':u'IP adresa: {0}',
    'linuxRootPrivileges':u'Na inÅ¡talÃ¡ciu DWAgent musÃ­te maÅ¥ oprÃ¡vnenia sprÃ¡vcu (root.)\nSpustite skript pomocou pouÅ¾Ã­vateÄ¾a sprÃ¡vcu (root.)',
    'menuConfigure':u'KonfigurÃ¡cia',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'OdinÅ¡talÃ¡cia',
    'missingInfoFile':u'SÃºbor info.json sa nenaÅ¡iel.',
    'missingNative':u'Native sa nenaÅ¡iel',
    'missingRuntime':u'Runtime sa nenaÅ¡iel.',
    'monitorActive':u'aktÃ­vny',
    'monitorAgentDisabled':u'Agent vypnutÃ½.',
    'monitorAgentEnabled':u'Agent zapnutÃ½.',
    'monitorConfigure':u'KonfigurovaÅ¥',
    'monitorConnections':u'Pripojenia',
    'monitorCurrentActivities':u'PrÃ¡ve prebiehajÃºce aktivity',
    'monitorDisable':u'ZakÃ¡zaÅ¥',
    'monitorDisableAgentQuestion':u'Chcete zakÃ¡zaÅ¥ sluÅ¾bu agenta ?',
    'monitorDownload':u'StiahnuÅ¥',
    'monitorEnable':u'PovoliÅ¥',
    'monitorEnableAgentQuestion':u'Chcete povoliÅ¥ sluÅ¾bu agenta ?',
    'monitorEnterPassword':u'VloÅ¾te heslo:',
    'monitorErrorConnectionConfig':u'Chyba spojenia. Skontrolujte, Äi je sluÅ¾ba DWAgent spustenÃ¡.',
    'monitorHide':u'SkryÅ¥',
    'monitorInvalidPassword':u'ChybnÃ© heslo.',
    'monitorNoActivities':u'Å½iadne aktivity',
    'monitorScreenCapture':u'PrÃ­stup k obrazovke',
    'monitorSession':u'RelÃ¡cia',
    'monitorShellSession':u'PrÃ­stup k Shell',
    'monitorShow':u'UkÃ¡Å¾',
    'monitorStatus':u'Stav',
    'monitorStatusDisabled':u'VypnutÃ©',
    'monitorStatusNoService':u'Å½iadna sluÅ¾ba',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'AktualizÃ¡cia',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'OdinÅ¡talovanie',
    'monitorUninstallNotRun':u'Nie je moÅ¾nÃ© odinÅ¡talovaÅ¥ bez oprÃ¡vnenÃ­ pouÅ¾Ã­vateÄ¾a root.\nSpustite prÃ­kaz dwaguninstall v prostredÃ­ shell.',
    'monitorUpload':u'NahraÅ¥',
    'mustAccept':u'Ak chcete pokraÄovaÅ¥, musÃ­te vybraÅ¥ moÅ¾nosÅ¥ {0}',
    'mustSelectOptions':u'MusÃ­te vybraÅ¥ jednu z moÅ¾nostÃ­.',
    'next':u'NasledujÃºci',
    'no':u'Nie',
    'noTryAgain':u'Nie, skÃºste znova',
    'notInstalled':u'DWAgent nie je inÅ¡talovanÃ½.',
    'ok':u'Dobre',
    'option':u'VoÄ¾ba',
    'optionNotValid':u'ChybnÃ½ vÃ½ber voÄ¾by.',
    'or':u'alebo',
    'password':u'Heslo',
    'path':u'Cesta',
    'pathCreating':u'VytvÃ¡ranie prieÄinka',
    'pathNotCreate':u'PrieÄinok sa nepodarilo vytvoriÅ¥. NeplatnÃ¡ cesta alebo nedostatoÄnÃ© oprÃ¡vnenie.',
    'pressEnter':u'PokraÄujte stlaÄenÃ­m Enter.',
    'privacyPolicy':u'ZÃ¡sady ochrany osobnÃ½ch Ãºdajov',
    'proxyAuthPassword':u'Heslo',
    'proxyAuthUser':u'UÅ¾Ã­vateÄ¾',
    'proxyHost':u'PoÄÃ­taÄ',
    'proxyHttp':u'Http',
    'proxyInfo':u'VloÅ¾te informÃ¡ciu o proxy.',
    'proxyNone':u'Å¾iadny',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'SystÃ©m',
    'reEnterCode':u'Zopakujte kÃ³d',
    'reEnterData':u'Zopakujte dÃ¡ta',
    'rePassword':u'Zopakujte heslo',
    'reject':u'OdmietnuÅ¥',
    'removeFile':u'OdstrÃ¡niÅ¥ sÃºbor...',
    'runWithoutInstallation':u'SpustiÅ¥',
    'runWithoutInstallationClosing':u'RelÃ¡cia sa uzatvÃ¡ra...',
    'runWithoutInstallationConnecting':u'RelÃ¡cia sa otvÃ¡ra...',
    'runWithoutInstallationEnd':u'RelÃ¡cia je ukonÄenÃ¡.',
    'runWithoutInstallationOnlineBottom':u'UPOZORNENIE:\nNezverejÅˆujte tieto informÃ¡cie nedÃ´veryhodnÃ½m osobÃ¡m, inak im umoÅ¾Åˆujete prÃ­stup k tomuto agentovi. TakÅ¾e ak si nie ste istÃ­, Äo robÃ­te, zavrite tÃºto aplikÃ¡ciu.',
    'runWithoutInstallationOnlineBottomPutCode':u'UPOZORNENIE:\nAgent je teraz pripravenÃ½ prijÃ­maÅ¥ pripojenia. V prÃ­pade Å¾e si nie ste istÃ½ Äo robÃ­te, prosÃ­m zatvorte tÃºto aplikÃ¡ciu.',
    'runWithoutInstallationOnlinePassword':u'Heslo: {0}',
    'runWithoutInstallationOnlineTop':u'RelÃ¡cia je aktÃ­vna.\nPre spojenie s tÃ½mto agentom navÅ¡tÃ­vte https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'RelÃ¡cia je aktÃ­vna.',
    'runWithoutInstallationOnlineUser':u'UÅ¾Ã­vateÄ¾: {0}',
    'runWithoutInstallationStarting':u'Agent sa spÃºÅ¡Å¥a...',
    'runWithoutInstallationUnexpectedError':u'NeoÄakÃ¡vanÃ¡ chyba.\nnebolo moÅ¾nÃ© spustiÅ¥ DWAgent. Ak problÃ©m naÄalej pretrvÃ¡va, skÃºste prevziaÅ¥ najnovÅ¡ie vydanie DWAgent, odstrÃ¡nte prieÄinok \'{0}\' a znova spustite DWAgent.',
    'runWithoutInstallationUpdating':u'Agent sa aktualizuje...',
    'runWithoutInstallationWait':u'ÄŒakajte na novÃ© prebiehajÃºce pripojenie (pokus {0}) ...',
    'selectPathInstall':u'Vyberte inÅ¡talaÄnÃº cestu:',
    'skipCertValidation':u'Upozornenie: BezpeÄnostnÃ½ certifikÃ¡t nie je moÅ¾nÃ© overiÅ¥, ak budete pokraÄovaÅ¥, pripojenie nemusÃ­ byÅ¥ bezpeÄnÃ©.\nSkontrolujte nastavenie smerovaÄa/brÃ¡ny firewall/antivÃ­rusu v sieti alebo v poÄÃ­taÄi.\nChcete napriek tomu pokraÄovaÅ¥?',
    'startService':u'SpÃºÅ¡Å¥am sluÅ¾bu...',
    'startServiceErr':u'Spustenie sluÅ¾by sa nepodarilo.',
    'termsAndConditions':u'Podmienky',
    'titleInstall':u'DWAgent - InÅ¡talÃ¡cia',
    'titleUninstall':u'DWAgent - OdinÅ¡talÃ¡cia',
    'toBack':u'nÃ¡vrat.',
    'toExit':u'ukonÄiÅ¥.',
    'unattendedAccess':u'BezobsluÅ¾nÃ½\nprÃ­stup',
    'unexpectedError':u'NeoÄakÃ¡vanÃ¡ chyba.\n{0}',
    'uninstallMonitor':u'OdinÅ¡talovanie monitora ...',
    'uninstallService':u'OdinÅ¡talovanie sluÅ¾by...',
    'uninstallShortcuts':u'OdinÅ¡talovanie zÃ¡stupcu ...',
    'unknownUser':u'NeznÃ¡my pouÅ¾Ã­vateÄ¾',
    'user':u'UÅ¾Ã­vateÄ¾',
    'validInteger':u'Pole \'{0}\' musÃ­ byÅ¥ celÃ© ÄÃ­slo.',
    'versionInstallNotValid':u'Verzia inÅ¡talaÄnÃ©ho programu nie je sprÃ¡vna pre vÃ¡Å¡ operaÄnÃ½ systÃ©m.\nStiahnite si sprÃ¡vnu verziu. {0}',
    'waiting':u'ÄŒakajte...',
    'warningLoginLogout':u'Pre aplikovanie tejto zmeny je potrebnÃ© odhlÃ¡senie a opÃ¤tovnÃ© prihlÃ¡senie.',
    'warningRemovePath':u'Upozornenie, cieÄ¾ovÃ¡ zloÅ¾ka uÅ¾ existuje, potom sa odstrÃ¡ni.',
    'warningSpyingTool':u'ProsÃ­m berte na vedomie Å¾e nesmiete pristupovat na vzdialenÃ½ poÄÃ­taÄ bez sÃºhlasu jeho pouÅ¾Ã­vateÄ¾a. V prÃ­pade vyuÅ¾Ã­vania sluÅ¾by DWService ako nÃ¡stroja na sledovanie mÃ´Å¾ete poruÅ¡ovaÅ¥ zÃ¡kony VaÅ¡ej krajiny.',
    'welcomeLicense':u'Licencia\nTento softvÃ©r je bezplatnÃ½ a open source.\nSkladÃ¡ sa z jednej hlavnej zloÅ¾ky a niekoÄ¾kÃ½ch prÃ­sluÅ¡nÃ½ch komponentov definovanÃ½ch ako "aplikÃ¡cie" ("app"), ktorÃ© by mohli byÅ¥ riadenÃ© rÃ´znymi licenciami. ÄŽalÅ¡ie informÃ¡cie nÃ¡jdete na strÃ¡nke https://www.dwservice.net/sk/licenses-sources.html',
    'welcomePrivacyTerms':u'S pokraÄovanÃ­m inÅ¡talÃ¡cie alebo pouÅ¾Ã­vanÃ­m toho softvÃ©ru sÃºhlasÃ­te s #TERMSANDCONDITIONS a s #PRIVACYPOLICY',
    'welcomeSecurity':u'ZabezpeÄenie\nAby sme chrÃ¡nili vaÅ¡e sÃºkromie, zaruÄujeme, Å¾e na naÅ¡ich serveroch nebudÃº uloÅ¾enÃ© Å¾iadne informÃ¡cie a komunikÃ¡cia je Å¡ifrovanÃ¡, takÅ¾e tretie strany ich nemÃ´Å¾u ÄÃ­taÅ¥.',
    'welcomeSoftwareUpdates':u'AktualizÃ¡cie softvÃ©ru\nAktualizÃ¡cie tohto softvÃ©ru sÃº automatickÃ©.',
    'welcomeTermsAndConditions':u'VÃ½berom moÅ¾nosti \'{0}\' alebo \'{1}\' sÃºhlasÃ­m s #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Na inÅ¡talÃ¡ciu DWAgent musÃ­te maÅ¥ oprÃ¡vnenia sprÃ¡vcu.\nSpustite spustiteÄ¾nÃ½ sÃºbor "SpustiÅ¥ ako sprÃ¡vca".',
    'yes':u'Ãno'
}
                                                                                                                             ui/messages/pt.py                                                                                   0000644 0001750 0001750 00000030461 14630344553 013600  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Eu aceito',
    'accessConfirm':u'Deseja aceder ao seu dispositivo.',
    'agentName':u'Nome do agente',
    'alreadyInstalled':u'DWAgent jÃ¡ instalado.\n\nO agente atualiza automaticamente para a Ãºltima versÃ£o. Isso significa que nÃ£o necessita de instalar manualmente as novas atualizaÃ§Ãµes.',
    'back':u'Voltar',
    'cancel':u'Cancelar',
    'cancelInstall':u'A instalaÃ§Ã£o foi cancelada.',
    'cancelUninstall':u'A desinstalaÃ§Ã£o foi cancelada.',
    'checkInstallCode':u'A verificar o cÃ³digo de instalaÃ§Ã£o...',
    'chooseProxyType':u'Qual o tipo de proxy que deseja usar?',
    'close':u'Fechar',
    'code':u'CÃ³digo',
    'commands':u'Comandos',
    'configureAgent':u'Configurar agente',
    'configureAgentDisabled':u'Agente desativado.',
    'configureAgentEnabled':u'Agente ativado.',
    'configureChangeInstallKey':u'Alterar cÃ³digo de instalaÃ§Ã£o',
    'configureChooseMonitorTrayIconVisibility':u'Deseja exibir o monitor na barra de notificaÃ§Ãµes?',
    'configureChooseOperation':u'Escolha uma operaÃ§Ã£o:',
    'configureDesktopNotification':u'NotificaÃ§Ã£o na Ã¡rea de trabalho',
    'configureDesktopNotificationOK':u'NotificaÃ§Ã£o na Ã¡rea de trabalho configurada com sucesso.',
    'configureDisableAgent':u'Desativar agente',
    'configureDisableAgentQuestion':u'Deseja desativar o agente?',
    'configureEnableAgent':u'Ativar agente',
    'configureEnableAgentQuestion':u'Deseja ativar o agente?',
    'configureEnd':u'ConfiguraÃ§Ã£o completada',
    'configureErrorConnection':u'Erro de ligaÃ§Ã£o. Verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'configureExit':u'Sair',
    'configureInsertPassword':u'Insira senha de configuraÃ§Ã£o:',
    'configureInstallAgent':u'Configurar o agente?',
    'configureInstallCode':u'Insira o cÃ³digo de instalaÃ§Ã£o',
    'configureInstallNewAgent':u'Criando um novo agente',
    'configureInstallPassword':u'Senha de instalaÃ§Ã£o',
    'configureInstallUser':u'Utilizador',
    'configureInvalidPassword':u'Senha invÃ¡lida.',
    'configureKeyInstalled':u'Chave instalada com sucesso.',
    'configureLater':u'Configurar mais tarde',
    'configureMonitor':u'Configurar monitor',
    'configurePassword':u'Configurar senha',
    'configurePasswordErrNoMatch':u'Senha nÃ£o confere.',
    'configurePasswordUpdated':u'Senha atualizada.',
    'configureProxy':u'Configurar proxy',
    'configureProxyEnd':u'Proxy configurado com sucesso.',
    'configureRemovePassword':u'Remover senha',
    'configureRemovePasswordQuestion':u'Deseja remover a senha?',
    'configureSetPassword':u'Definir senha',
    'configureTitle':u'DWAgent - ConfiguraÃ§Ã£o',
    'configureTrayIconOK':u'Visibilidade do Ã­cone da Ã¡rea de notificaÃ§Ã£o configurado com sucesso.',
    'configureTrayIconVisibility':u'Visibilidade do Ã­cone da Ã¡rea de notificaÃ§Ã£o.',
    'configureUninstallKeyQuestion':u'Desinstalar o cÃ³digo de instalaÃ§Ã£o atual?',
    'configureUninstallationKey':u'DesinstalaÃ§Ã£o...',
    'confirmExit':u'Tem a certeza que deseja sair?',
    'confirmInstall':u'Deseja instalar o DWAgent em \'{0}\'?',
    'confirmUninstall':u'Deseja remover o DWAgent?',
    'copyFiles':u'Copiando ficheiros...',
    'createNewAgent':u'CriaÃ§Ã£o do agente em progresso...',
    'decline':u'Eu nÃ£o aceito',
    'desktopNotificationAutoHide':u'Ocultar automÃ¡ticamente',
    'desktopNotificationNone':u'Nenhum',
    'desktopNotificationVisible':u'VisÃ­vel',
    'downloadFile':u'A efectuar download do ficheiro {0}...',
    'endInstall':u'InstalaÃ§Ã£o concluÃ­da com sucesso.',
    'endInstallConfigLater':u'InstalaÃ§Ã£o concluÃ­da com sucesso.\nO agente nÃ£o foi configurado. PoderÃ¡ configurÃ¡-lo depois.',
    'endUninstall':u'DesinstalaÃ§Ã£o concluÃ­da com sucesso.',
    'enter':u'entrar',
    'enterInstallCode':u'Inserir o cÃ³digo de instalaÃ§Ã£o',
    'enterInstallNewAgent':u'Insira os dados para criar um novo agente:',
    'enterRunCode':u'Insira o cÃ³digo da ligaÃ§Ã£o',
    'error':u'Erro',
    'errorAgentAlreadyExsists':u'O agente {0} jÃ¡ existe.',
    'errorAgentMax':u'NÃºmero mÃ¡ximo de agentes atingido.',
    'errorAgentNameNotValid':u'O nome do agente nÃ£o Ã© vÃ¡lido. NÃ£o pode usar os caracteres / \\ | # @ : .',
    'errorConnectionConfig':u'Erro de ligaÃ§Ã£o. Por favor verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'errorConnectionQuestion':u'Erro de ligaÃ§Ã£o. Por favor verifique sua ligaÃ§Ã£o Ã  internet ou a configuraÃ§Ã£o da firewall.\nDeseja configurar proxy?',
    'errorInvalidCode':u'O cÃ³digo inserido Ã© invÃ¡lido.',
    'errorInvalidUserPassword':u'Utilizador ou senha invÃ¡lidos.',
    'fieldRequired':u'O campo \'{0}\' Ã© obrigatÃ³rio.',
    'install':u'Instalar',
    'installMonitor':u'A instalar monitor...',
    'installMonitorErr':u'InstalaÃ§Ã£o do monitor falhou.',
    'installService':u'A instalar serviÃ§o',
    'installServiceErr':u'InstalaÃ§Ã£o do serviÃ§o falhou.',
    'installShortcuts':u'A instalar atalhos',
    'installShortcutsErr':u'InstalaÃ§Ã£o dos atalhos falharam.',
    'installerNotSupported':u'Este instalador jÃ¡ nÃ£o Ã© compativel.. FaÃ§a o download da versÃ£o mais recente.',
    'ipAddress':u'EndereÃ§o IP: {0}',
    'linuxRootPrivileges':u'Necessita de ter privilÃ©gios de root para instalar o DWAgent.\nPor favor inicie o script usando um utilizador root.',
    'menuConfigure':u'Configurar',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Desinstalar',
    'missingInfoFile':u'Ficheiro info.json nÃ£o encontrado.',
    'missingNative':u'Native nÃ£o encontrado.',
    'missingRuntime':u'Runtime nÃ£o encontrado.',
    'monitorActive':u'ativo',
    'monitorAgentDisabled':u'Agente desativado.',
    'monitorAgentEnabled':u'Agente ativado.',
    'monitorConfigure':u'Configurar',
    'monitorConnections':u'LigaÃ§Ãµes',
    'monitorCurrentActivities':u'Actividades Actuais',
    'monitorDisable':u'Desativar',
    'monitorDisableAgentQuestion':u'Deseja desativar o agente?',
    'monitorDownload':u'Download',
    'monitorEnable':u'Ativar',
    'monitorEnableAgentQuestion':u'Deseja ativar o agente?',
    'monitorEnterPassword':u'Insira a senha:',
    'monitorErrorConnectionConfig':u'Erro de ligaÃ§Ã£o. Por favor verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'monitorHide':u'Esconder',
    'monitorInvalidPassword':u'Senha invÃ¡lida.',
    'monitorNoActivities':u'Sem actividades',
    'monitorScreenCapture':u'Captura de ecrÃ¢',
    'monitorSession':u'SessÃ£o',
    'monitorShellSession':u'Shell',
    'monitorShow':u'Mostrar',
    'monitorStatus':u'Estado',
    'monitorStatusDisabled':u'Desativado',
    'monitorStatusNoService':u'Sem serviÃ§o',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'A atualizar',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Desinstalar',
    'monitorUninstallNotRun':u'NÃ£o pode desinstalar sem permissÃµes de root.\nExecute o comando dwaguninstall na shell.',
    'monitorUpload':u'Upload',
    'mustAccept':u'Para continuar, deve selecionar a opÃ§Ã£o {0}',
    'mustSelectOptions':u'Deve selecionar uma opÃ§Ã£o.',
    'next':u'Seguinte',
    'no':u'NÃ£o',
    'noTryAgain':u'NÃ£o, tente novamente',
    'notInstalled':u'DWAgent nÃ£o instalado.',
    'ok':u'Ok',
    'option':u'OpÃ§Ã£o',
    'optionNotValid':u'OpÃ§Ã£o selecionada Ã© invÃ¡lida.',
    'or':u'ou',
    'password':u'Senha',
    'path':u'Caminho',
    'pathCreating':u'CriaÃ§Ã£o de pasta...',
    'pathNotCreate':u'NÃ£o foi possÃ­vel criar a pasta. Caminho invÃ¡lido ou permissÃ£o negada.',
    'pressEnter':u'Pressione enter para continuar.',
    'privacyPolicy':u'PolÃ­tica de Privacidade',
    'proxyAuthPassword':u'Senha',
    'proxyAuthUser':u'Utilizador',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Insira as informaÃ§Ãµes de proxy.',
    'proxyNone':u'Nenhum',
    'proxyPort':u'Porta',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistema',
    'reEnterCode':u'Reinsira o cÃ³digo',
    'reEnterData':u'Reinsira os dados',
    'rePassword':u'Redigite a senha',
    'reject':u'Rejeitar',
    'removeFile':u'Removendo ficheiro...',
    'runWithoutInstallation':u'Executar',
    'runWithoutInstallationClosing':u'Fechando sessÃ£o',
    'runWithoutInstallationConnecting':u'Abrindo sessÃ£o:',
    'runWithoutInstallationEnd':u'SessÃ£o finalizada.',
    'runWithoutInstallationOnlineBottom':u'ATENÃ‡ÃƒO:\nNÃ£o divulgue essas informaÃ§Ãµes a pessoas que nÃ£o sÃ£o confiÃ¡veis, pois de outra forma irÃ¡ permitir que elas acedam a este agente. EntÃ£o, se nÃ£o tem certeza do que estÃ¡ a fazer, feche esta aplicaÃ§Ã£o.',
    'runWithoutInstallationOnlineBottomPutCode':u'AVISO:\nAgora o agente estÃ¡ pronto para receber a ligaÃ§Ã£o. Se nÃ£o tem a certeza do que estÃ¡ a fazer, por favor feche esta aplicaÃ§Ã£o.',
    'runWithoutInstallationOnlinePassword':u'Senha: {0}',
    'runWithoutInstallationOnlineTop':u'A sessÃ£o estÃ¡ ativa.\nPara se conectar a este agente vÃ¡ para https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'A sessÃ£o estÃ¡ ativa.',
    'runWithoutInstallationOnlineUser':u'Utilizador: {0}',
    'runWithoutInstallationStarting':u'Iniciando agente...',
    'runWithoutInstallationUnexpectedError':u'Erro inesperado.\nNÃ£o foi possÃ­vel iniciar o DWAgent. Se o problema persistir, tente efetuar o download da Ãºltima versÃ£o do DWAgent, apague a pasta \'{0}\' e execute o DWAgent novamente.',
    'runWithoutInstallationUpdating':u'Atualizando agente...',
    'runWithoutInstallationWait':u'Aguarde pela nova ligaÃ§Ã£o em progresso (tentativa {0})...',
    'selectPathInstall':u'Selecione o caminho de instalaÃ§Ã£o:',
    'skipCertValidation':u'Aviso: O certificado de seguranÃ§a nÃ£o pode ser validado, se continuar a conexÃ£o pode nÃ£o ser segura.\nVerifique a configuraÃ§Ã£o do router/firewall/antivÃ­rus da rede ou local.\nContinuar mesmo assim?',
    'startService':u'Iniciando serviÃ§o...',
    'startServiceErr':u'InicializaÃ§Ã£o do serviÃ§o falhou.',
    'termsAndConditions':u'Termos e CondiÃ§Ãµes',
    'titleInstall':u'DWAgent - InstalaÃ§Ã£o',
    'titleUninstall':u'DWAgent - DesinstalaÃ§Ã£o',
    'toBack':u'para voltar.',
    'toExit':u'para sair.',
    'unattendedAccess':u'Acesso\nsem supervisÃ£o',
    'unexpectedError':u'Erro inesperado.\n{0}',
    'uninstallMonitor':u'Desinstalando monitor...',
    'uninstallService':u'Desinstalando serviÃ§o...',
    'uninstallShortcuts':u'Desinstalando atalhos...',
    'unknownUser':u'Utilizador desconhecido',
    'user':u'Utilizador',
    'validInteger':u'O campo \'{0}\' precisa ser um inteiro.',
    'versionInstallNotValid':u'A versÃ£o do instalador nÃ£o Ã© a correta para o seu sistema operativo.\nPor favor efetue o download da versÃ£o correta. {0}',
    'waiting':u'Aguardando...',
    'warningLoginLogout':u'Para que esta alteraÃ§Ã£o tenha efeito, o utilizador deve fazer logout e login novamente.',
    'warningRemovePath':u'Aviso: a pasta de destino jÃ¡ existe entÃ£o ela serÃ¡ apagada.',
    'warningSpyingTool':u'Esteja ciente de que nÃ£o pode aceder a um computador remoto sem o consentimento de seu utilizador. Ao usar o DWService como uma ferramenta de espionagem, poderÃ¡ estar a infringir as leis do seu paÃ­s.',
    'welcomeLicense':u'LicenÃ§a\nEste software Ã© gratuito e open source.\nEle consiste de um componente principal e vÃ¡rios componentes acessÃ³rios definidos "app" que podem ser regidos por diferentes licenÃ§as. Para mais informaÃ§Ãµes visite: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Ao prosseguir com a instalaÃ§Ã£o ou executar este software, estarÃ¡ a concordar com os #TERMSANDCONDITIONS e com a #PRIVACYPOLICY',
    'welcomeSecurity':u'SeguranÃ§a\nPara proteger sua privacidade nÃ³s garantimos que nenhuma informaÃ§Ã£o serÃ¡ armazenada nos nossos servidores e as comunicaÃ§Ãµes sÃ£o criptografadas para que terceiros nÃ£o possam acessÃ¡-las.',
    'welcomeSoftwareUpdates':u'AtualizaÃ§Ãµes de software\nAs atualizaÃ§Ãµes deste software sÃ£o automÃ¡ticas.',
    'welcomeTermsAndConditions':u'Ao selecionar a opÃ§Ã£o \'{0}\' ou \'{1}\' eu aceito os #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Deve ter privilÃ©gios de administrador para instalar o DWAgent.\nPor favor inicie o executÃ¡vel com \'Executar como administrador\'.',
    'yes':u'Sim'
}
                                                                                                                                                                                                               ui/messages/pt_BR.py                                                                                0000644 0001750 0001750 00000030510 14630344567 014163  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Eu aceito',
    'accessConfirm':u'Gostaria de acessar seu dispositivo.',
    'agentName':u'Nome do agente',
    'alreadyInstalled':u'DWAgent jÃ¡ instalado.\n\nO agente atualiza automaticamente para a Ãºltima versÃ£o. Isso significa que vocÃª nÃ£o precisa instalar manualmente as novas atualizaÃ§Ãµes.',
    'back':u'Voltar',
    'cancel':u'Cancelar',
    'cancelInstall':u'A instalaÃ§Ã£o foi cancelada.',
    'cancelUninstall':u'Eu aceito',
    'checkInstallCode':u'Verificando cÃ³digo de instalaÃ§Ã£o...',
    'chooseProxyType':u'Qual tipo de proxy deseja usar?',
    'close':u'Fechar',
    'code':u'CÃ³digo',
    'commands':u'Comandos',
    'configureAgent':u'Configurar agente',
    'configureAgentDisabled':u'Agente desativado.',
    'configureAgentEnabled':u'Agente ativado.',
    'configureChangeInstallKey':u'Alterar cÃ³digo de instalaÃ§Ã£o',
    'configureChooseMonitorTrayIconVisibility':u'Deseja exibir o monitor na barra de notificaÃ§Ãµes?',
    'configureChooseOperation':u'Escolha uma operaÃ§Ã£o:',
    'configureDesktopNotification':u'NotificaÃ§Ã£o na Ã¡rea de trabalho',
    'configureDesktopNotificationOK':u'NotificaÃ§Ã£o na Ã¡rea de trabalho configurada com sucesso.',
    'configureDisableAgent':u'Desativar agente',
    'configureDisableAgentQuestion':u'Deseja desativar o agente?',
    'configureEnableAgent':u'Ativar agente',
    'configureEnableAgentQuestion':u'Deseja ativar o agente?',
    'configureEnd':u'ConfiguraÃ§Ã£o completada',
    'configureErrorConnection':u'Erro de conexÃ£o. Verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'configureExit':u'Sair',
    'configureInsertPassword':u'Insira senha de configuraÃ§Ã£o:',
    'configureInstallAgent':u'Configurar o agente?',
    'configureInstallCode':u'Insira o cÃ³digo de instalaÃ§Ã£o',
    'configureInstallNewAgent':u'Criar um novo agente',
    'configureInstallPassword':u'Senha de instalaÃ§Ã£o',
    'configureInstallUser':u'UsuÃ¡rio',
    'configureInvalidPassword':u'Senha invÃ¡lida.',
    'configureKeyInstalled':u'Chave instalada com sucesso.',
    'configureLater':u'Configurar depois',
    'configureMonitor':u'Configurar monitor',
    'configurePassword':u'Configurar senha',
    'configurePasswordErrNoMatch':u'Senha nÃ£o confere.',
    'configurePasswordUpdated':u'Senha atualizada.',
    'configureProxy':u'Configurar proxy',
    'configureProxyEnd':u'Proxy configurado com sucesso.',
    'configureRemovePassword':u'Remover senha',
    'configureRemovePasswordQuestion':u'Deseja remover a senha?',
    'configureSetPassword':u'Definir senha',
    'configureTitle':u'DWAgent - ConfiguraÃ§Ã£o',
    'configureTrayIconOK':u'Visibilidade do Ã­cone da Ã¡rea de notificaÃ§Ã£o configurado com sucesso.',
    'configureTrayIconVisibility':u'Visibilidade do Ã­cone da Ã¡rea de notificaÃ§Ã£o.',
    'configureUninstallKeyQuestion':u'Desinstalar o cÃ³digo de instalaÃ§Ã£o atual?',
    'configureUninstallationKey':u'DesinstalaÃ§Ã£o...',
    'confirmExit':u'VocÃª tem certeza que deseja sair?',
    'confirmInstall':u'VocÃª deseja instalar o DWAgent em \'{0}\'?',
    'confirmUninstall':u'VocÃª deseja remover o DWAgent?',
    'copyFiles':u'Copiando arquivos...',
    'createNewAgent':u'CriaÃ§Ã£o do agente em progresso...',
    'decline':u'Eu nÃ£o aceito',
    'desktopNotificationAutoHide':u'Ocultar automaticamente',
    'desktopNotificationNone':u'Nenhum',
    'desktopNotificationVisible':u'VisÃ­vel',
    'downloadFile':u'Baixando arquivo {0}...',
    'endInstall':u'InstalaÃ§Ã£o concluÃ­da com sucesso.',
    'endInstallConfigLater':u'InstalaÃ§Ã£o concluÃ­da com sucesso.\nO agente nÃ£o foi configurado. VocÃª poderÃ¡ configurÃ¡-lo depois.',
    'endUninstall':u'DesinstalaÃ§Ã£o concluÃ­da com sucesso.',
    'enter':u'entrar',
    'enterInstallCode':u'Inserir o cÃ³digo de instalaÃ§Ã£o',
    'enterInstallNewAgent':u'Insira os dados para criar um novo agente:',
    'enterRunCode':u'Insira o cÃ³digo de conexÃ£o',
    'error':u'Erro',
    'errorAgentAlreadyExsists':u'O agente {0} jÃ¡ existe.',
    'errorAgentMax':u'NÃºmero mÃ¡ximo de agentes atingido.',
    'errorAgentNameNotValid':u'O nome do agente nÃ£o Ã© vÃ¡lido. VocÃª nÃ£o pode usar os caracteres / \\ | # @ : .',
    'errorConnectionConfig':u'Erro de conexÃ£o. Por favor verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'errorConnectionQuestion':u'Erro de conexÃ£o. Por favor verifique sua conexÃ£o a internet ou configuraÃ§Ã£o de firewall.\nVocÃª deseja configurar proxy?',
    'errorInvalidCode':u'O cÃ³digo inserido Ã© invÃ¡lido.',
    'errorInvalidUserPassword':u'UsuÃ¡rio ou senha invÃ¡lidos.',
    'fieldRequired':u'O campo \'{0}\' Ã© obrigatÃ³rio.',
    'install':u'Instalar',
    'installMonitor':u'Instalando monitor...',
    'installMonitorErr':u'InstalaÃ§Ã£o do monitor falhou.',
    'installService':u'Instalando serviÃ§o',
    'installServiceErr':u'InstalaÃ§Ã£o do serviÃ§o falhou.',
    'installShortcuts':u'Instalando atalhos',
    'installShortcutsErr':u'InstalaÃ§Ã£o dos atalhos falharam.',
    'installerNotSupported':u'Este instalador nÃ£o Ã© mais suportado. Por favor, faÃ§a o download da versÃ£o mais recente.',
    'ipAddress':u'EndereÃ§o IP: {0}',
    'linuxRootPrivileges':u'VocÃª necessita ter privilÃ©gios de root para instalar o DWAgent.\nPor favor inicie o script usando um usuÃ¡rio root.',
    'menuConfigure':u'Configurar',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Desinstalar',
    'missingInfoFile':u'Arquivo info.json nÃ£o encontrado.',
    'missingNative':u'Native nÃ£o encontrado.',
    'missingRuntime':u'Runtime nÃ£o encontrado.',
    'monitorActive':u'ativo',
    'monitorAgentDisabled':u'Agente desativado.',
    'monitorAgentEnabled':u'Agente ativado.',
    'monitorConfigure':u'Configurar',
    'monitorConnections':u'ConexÃµes',
    'monitorCurrentActivities':u'Atividades atuais',
    'monitorDisable':u'Desativar',
    'monitorDisableAgentQuestion':u'VocÃª deseja desativar o agente?',
    'monitorDownload':u'Download',
    'monitorEnable':u'Ativar',
    'monitorEnableAgentQuestion':u'VocÃª deseja ativar o agente?',
    'monitorEnterPassword':u'Insira a senha:',
    'monitorErrorConnectionConfig':u'Erro de conexÃ£o. Por favor verifique se o serviÃ§o DWAgent estÃ¡ iniciado.',
    'monitorHide':u'Esconder',
    'monitorInvalidPassword':u'Senha invÃ¡lida.',
    'monitorNoActivities':u'Sem atividades',
    'monitorScreenCapture':u'Capturar tela',
    'monitorSession':u'SessÃ£o',
    'monitorShellSession':u'Shell',
    'monitorShow':u'Mostrar',
    'monitorStatus':u'Estado',
    'monitorStatusDisabled':u'Desabilitado',
    'monitorStatusNoService':u'Sem serviÃ§o',
    'monitorStatusOffline':u'Offiline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'Atualizando',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Desinstalar',
    'monitorUninstallNotRun':u'VocÃª nÃ£o pode desinstalar sem permissÃµes de root.\nExecute o comando dwaguninstall no shell.',
    'monitorUpload':u'Upload',
    'mustAccept':u'Para continuar, vocÃª deve selecionar a opÃ§Ã£o {0}',
    'mustSelectOptions':u'VocÃª deve selecionar uma opÃ§Ã£o.',
    'next':u'PrÃ³ximo',
    'no':u'NÃ£o',
    'noTryAgain':u'NÃ£o, tente novamente',
    'notInstalled':u'DWAgent nÃ£o instalado.',
    'ok':u'Ok',
    'option':u'OpÃ§Ã£o',
    'optionNotValid':u'OpÃ§Ã£o selecionada Ã© invÃ¡lida.',
    'or':u'ou',
    'password':u'Senha',
    'path':u'Caminho',
    'pathCreating':u'CriaÃ§Ã£o de pasta...',
    'pathNotCreate':u'NÃ£o pode criar a pasta. Caminho invÃ¡lido ou permissÃ£o negada.',
    'pressEnter':u'Pressione enter para continuar.',
    'privacyPolicy':u'PolÃ­tica de privacidade',
    'proxyAuthPassword':u'Senha',
    'proxyAuthUser':u'UsuÃ¡rio',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'Insira as informaÃ§Ãµes de proxy.',
    'proxyNone':u'Nenhum',
    'proxyPort':u'Porta',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Sistema',
    'reEnterCode':u'Reinsira o cÃ³digo',
    'reEnterData':u'Reinsira os dados',
    'rePassword':u'Redigite a senha',
    'reject':u'Rejeitar',
    'removeFile':u'Removendo arquivo...',
    'runWithoutInstallation':u'Executar',
    'runWithoutInstallationClosing':u'Fechando sessÃ£o',
    'runWithoutInstallationConnecting':u'Abrindo sessÃ£o:',
    'runWithoutInstallationEnd':u'SessÃ£o finalizada.',
    'runWithoutInstallationOnlineBottom':u'ATENÃ‡ÃƒO:\nNÃ£o divulgue essas informaÃ§Ãµes a pessoas que nÃ£o sÃ£o confiÃ¡veis, pois de outra forma vocÃª permitirÃ¡ que elas acessem a este agente. EntÃ£o, se vocÃª nÃ£o tem certeza do que estÃ¡ fazendo, feche esta aplicaÃ§Ã£o.',
    'runWithoutInstallationOnlineBottomPutCode':u'AVISO:\nAgora o agente estÃ¡ pronto para aceitar a conexÃ£o. EntÃ£o, se vocÃª nÃ£o tem certeza do que estÃ¡ fazendo, por favor, feche esta aplicaÃ§Ã£o.',
    'runWithoutInstallationOnlinePassword':u'Senha: {0}',
    'runWithoutInstallationOnlineTop':u'A sessÃ£o estÃ¡ ativa.\nPara se conectar a este agente vÃ¡ para https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'A sessÃ£o estÃ¡ ativa.',
    'runWithoutInstallationOnlineUser':u'UsuÃ¡rio: {0}',
    'runWithoutInstallationStarting':u'Iniciando agente...',
    'runWithoutInstallationUnexpectedError':u'Erro inesperado.\nNÃ£o foi possÃ­vel iniciar o DWAgent. Se o problema persistir, tente baixar a Ãºltima versÃ£o do DWAgent, apague a pasta \'{0}\' e execute o DWAgent novamente.',
    'runWithoutInstallationUpdating':u'Atualizando agente...',
    'runWithoutInstallationWait':u'Aguarde pela nova conexÃ£o em progresso (tentativa {0})...',
    'selectPathInstall':u'Selecione o caminho de instalaÃ§Ã£o:',
    'skipCertValidation':u'Aviso: O certificado de seguranÃ§a nÃ£o pode ser validado, se vocÃª continuar, a conexÃ£o pode nÃ£o ser segura.\nPor favor, verifique a configuraÃ§Ã£o do roteador/firewall/antivÃ­rus da rede ou do local.\nContinuar mesmo assim?',
    'startService':u'Iniciando serviÃ§o...',
    'startServiceErr':u'InicializaÃ§Ã£o do serviÃ§o falhou.',
    'termsAndConditions':u'Termos e CondiÃ§Ãµes',
    'titleInstall':u'DWAgent - InstalaÃ§Ã£o',
    'titleUninstall':u'DWAgent - DesinstalaÃ§Ã£o',
    'toBack':u'para voltar.',
    'toExit':u'para sair.',
    'unattendedAccess':u'Acesso\nautÃ´nomo',
    'unexpectedError':u'Erro inesperado.\n{0}',
    'uninstallMonitor':u'Desinstalando monitor...',
    'uninstallService':u'Desinstalando serviÃ§o...',
    'uninstallShortcuts':u'Desinstalando atalhos...',
    'unknownUser':u'UsuÃ¡rio desconhecido',
    'user':u'UsuÃ¡rio',
    'validInteger':u'O campo \'{0}\' precisa ser um inteiro.',
    'versionInstallNotValid':u'A versÃ£o do instalador nÃ£o Ã© a correta para o seu sistema operacional.\nPor favor baixe a versÃ£o correta. {0}',
    'waiting':u'Aguardando...',
    'warningLoginLogout':u'Para que essa alteraÃ§Ã£o tenha efeito, o usuÃ¡rio deve fazer logout e login novamente.',
    'warningRemovePath':u'Aviso: a pasta de destino jÃ¡ existe entÃ£o ela serÃ¡ apagada.',
    'warningSpyingTool':u'Esteja ciente de que vocÃª nÃ£o pode acessar um computador remoto sem o consentimento de seu usuÃ¡rio. Ao usar o DWService como uma ferramenta de espionagem, vocÃª pode estar infringindo as leis de seu paÃ­s de residÃªncia.',
    'welcomeLicense':u'LicenÃ§a\nEste software Ã© gratuito e open source.\nEle consiste de um componente principal e vÃ¡rios componentes acessÃ³rios definidos "app" que podem ser regidos por diferentes licenÃ§as. Para mais informaÃ§Ãµes visite: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'Ao prosseguir com a instalaÃ§Ã£o ou executar este software, vocÃª concorda com os #TERMSANDCONDITIONS e com a #PRIVACYPOLICY',
    'welcomeSecurity':u'SeguranÃ§a\nPara proteger sua privacidade nÃ³s garantimos que nenhuma informaÃ§Ã£o serÃ¡ armazenada nos nossos servidores e as comunicaÃ§Ãµes sÃ£o criptografadas para que terceiros nÃ£o possam acessÃ¡-las.',
    'welcomeSoftwareUpdates':u'AtualizaÃ§Ãµes de software\nAs atualizaÃ§Ãµes deste software sÃ£o automÃ¡ticas.',
    'welcomeTermsAndConditions':u'Ao selecionar a opÃ§Ã£o \'{0}\' ou \'{1}\' eu aceito os #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'VocÃª deve ter privilÃ©gios de administrador para instalar o DWAgent.\nPor favor inicie o executÃ¡vel com \'Executar como administrador\'.',
    'yes':u'Sim'
}
                                                                                                                                                                                        ui/messages/bg.py                                                                                   0000644 0001750 0001750 00000043063 14630344556 013552  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'ÐŸÑ€Ð¸ÐµÐ¼Ð°Ð¼',
    'accessConfirm':u'Ð˜ÑÐºÐ°Ð¼ Ð´Ð¾ÑÑ‚ÑŠÐ¿ Ð´Ð¾ Ð²Ð°ÑˆÐµÑ‚Ð¾ ÑƒÑÑ‚Ñ€Ð¾Ð¹ÑÑ‚Ð²Ð¾.',
    'agentName':u'Ð˜Ð¼Ðµ Ð½Ð° Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'alreadyInstalled':u'DWAgent Ðµ Ð²ÐµÑ‡Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½.\n\nÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ ÑÐµ Ð°ÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð¸Ñ€Ð° Ð´Ð¾ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½Ð°Ñ‚Ð° Ð²ÐµÑ€ÑÐ¸Ñ. Ð¢Ð¾Ð²Ð° Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð°, Ñ‡Ðµ Ð½Ðµ Ðµ Ð½ÑƒÐ¶Ð½Ð¾ Ð´Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ Ñ€ÑŠÑ‡Ð½Ð¾ Ð½Ð¾Ð²Ð¸Ñ‚Ðµ Ð°ÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸.',
    'back':u'ÐÐ°Ð·Ð°Ð´',
    'cancel':u'ÐžÑ‚ÐºÐ°Ð·',
    'cancelInstall':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ðµ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð¾.',
    'cancelUninstall':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ðµ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð¾.',
    'checkInstallCode':u'ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð½Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡...',
    'chooseProxyType':u'ÐšÐ°ÐºÑŠÐ² Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾ÐºÑÐ¸ Ð¸ÑÐºÐ°Ñ‚Ðµ Ð´Ð° Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ?',
    'close':u'Ð—Ð°Ñ‚Ð²Ð¾Ñ€Ð¸',
    'code':u'ÐšÐ¾Ð´',
    'commands':u'ÐšÐ¾Ð¼Ð°Ð½Ð´Ð¸',
    'configureAgent':u'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ðµ Ð·Ð°Ð±Ñ€Ð°Ð½ÐµÐ½.',
    'configureAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ðµ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½.',
    'configureChangeInstallKey':u'Ð¡Ð¼ÐµÐ½Ð¸ Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡',
    'configureChooseMonitorTrayIconVisibility':u'Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð¸ÐºÐ¾Ð½Ð° Ð² Ð¿Ð°Ð½ÐµÐ»Ð° Ð·Ð° Ð¸Ð·Ð²ÐµÑÑ‚Ð¸Ñ?',
    'configureChooseOperation':u'ÐœÐ¾Ð»Ñ, Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ðµ:',
    'configureDesktopNotification':u'Ð˜Ð·Ð²ÐµÑÑ‚Ð¸Ðµ Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ Ð¿Ð»Ð¾Ñ‚',
    'configureDesktopNotificationOK':u'Ð˜Ð·Ð²ÐµÑÑ‚Ð¸ÐµÑ‚Ð¾ Ð½Ð° Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ Ð¿Ð»Ð¾Ñ‚ Ðµ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½Ð¾ ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureDisableAgent':u'Ð—Ð°Ð±Ñ€Ð°Ð½Ð¸ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureDisableAgentQuestion':u'Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð´Ð° Ð·Ð°Ð±Ñ€Ð°Ð½Ð¸Ñ‚Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnableAgent':u'Ð Ð°Ð·Ñ€ÐµÑˆÐ¸ Ð°Ð³ÐµÐ½Ñ‚Ð°',
    'configureEnableAgentQuestion':u'Ð–ÐµÐ»Ð°ÐµÑ‚Ðµ Ð»Ð¸ Ð·Ð° Ñ€Ð°Ð·Ñ€ÐµÑˆÐ¸Ñ‚Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureEnd':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ°Ñ‚Ð° Ð¿Ñ€Ð¸ÐºÐ»ÑŽÑ‡Ð¸.',
    'configureErrorConnection':u'Ð“Ñ€ÐµÑˆÐºÐ° Ð¿Ñ€Ð¸ ÑÐ²ÑŠÑ€Ð·Ð²Ð°Ð½Ðµ. ÐœÐ¾Ð»Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ Ð´Ð°Ð»Ð¸ ÑƒÑÐ»ÑƒÐ³Ð°Ñ‚Ð° DWAgent Ðµ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ð°.',
    'configureExit':u'Ð˜Ð·Ñ…Ð¾Ð´',
    'configureInsertPassword':u'ÐœÐ¾Ð»Ñ, Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ð° Ð·Ð° Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸:',
    'configureInstallAgent':u'ÐšÐ°Ðº Ð¶ÐµÐ»Ð°ÐµÑ‚Ðµ Ð´Ð° Ð½Ð°ÑÑ‚Ñ€Ð¾Ð¸Ñ‚Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'configureInstallCode':u'Ð’ÑŠÐ²ÐµÐ¶Ð´Ð°Ð½Ðµ Ð½Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡',
    'configureInstallNewAgent':u'Ð¡ÑŠÐ·Ð´Ð°Ð²Ð°Ð½Ðµ Ð½Ð° Ð½Ð¾Ð² Ð°Ð³ÐµÐ½Ñ‚',
    'configureInstallPassword':u'ÐŸÐ°Ñ€Ð¾Ð»Ð° Ð·Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ',
    'configureInstallUser':u'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»',
    'configureInvalidPassword':u'Ð“Ñ€ÐµÑˆÐ½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ð°.',
    'configureKeyInstalled':u'ÐšÐ»ÑŽÑ‡Ð° Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureLater':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ Ð¿Ð¾-ÐºÑŠÑÐ½Ð¾',
    'configureMonitor':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ Ð½Ð° Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð°',
    'configurePassword':u'ÐÐ°ÑÑ‚Ñ€Ð¾Ð¹ Ð¿Ð°Ñ€Ð¾Ð»Ð°',
    'configurePasswordErrNoMatch':u'ÐŸÐ°Ñ€Ð¾Ð»Ð°Ñ‚Ð° Ð½Ðµ ÑÑŠÐ²Ð¿Ð°Ð´Ð°.',
    'configurePasswordUpdated':u'ÐŸÐ°Ñ€Ð¾Ð»Ð°Ñ‚Ð° Ð±Ðµ Ð°ÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð¸Ñ€Ð°Ð½Ð°.',
    'configureProxy':u'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¿Ñ€Ð¾ÐºÑÐ¸ ÑÑŠÑ€Ð²ÑŠÑ€',
    'configureProxyEnd':u'ÐŸÑ€Ð¾ÐºÑÐ¸ ÑÑŠÑ€Ð²ÑŠÑ€ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½ ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureRemovePassword':u'ÐŸÑ€ÐµÐ¼Ð°Ñ…Ð²Ð°Ð½Ðµ Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°',
    'configureRemovePasswordQuestion':u'Ð˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½ÐµÑ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°?',
    'configureSetPassword':u'Ð—Ð°Ð´Ð°Ð¹Ñ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ð°',
    'configureTitle':u'DWAgent - ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ',
    'configureTrayIconOK':u'Ð’Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚Ñ‚Ð° Ð½Ð° Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð° Ð² Ð¾Ð±Ð»Ð°ÑÑ‚Ñ‚Ð° Ð·Ð° ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ Ðµ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½Ð° ÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'configureTrayIconVisibility':u'Ð’Ð¸Ð´Ð¸Ð¼Ð¾ÑÑ‚ Ð½Ð° Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð° Ð² Ð¾Ð±Ð»Ð°ÑÑ‚Ñ‚Ð° Ð·Ð° ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ',
    'configureUninstallKeyQuestion':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ ÐºÐ¾Ð´ Ð·Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ?',
    'configureUninstallationKey':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ ...',
    'confirmExit':u'Ð¡Ð¸Ð³ÑƒÑ€Ð½Ð¸ Ð»Ð¸ ÑÑ‚Ðµ, Ñ‡Ðµ Ð¸ÑÐºÐ°Ñ‚Ðµ Ð´Ð° Ð¸Ð·Ð»ÐµÐ·ÐµÑ‚Ðµ?',
    'confirmInstall':u'Ð˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ DWAgent Ð½Ð° \'{0}\'?',
    'confirmUninstall':u'Ð˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½ÐµÑ‚Ðµ DWAgent?',
    'copyFiles':u'ÐšÐ¾Ð¿Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ñ„Ð°Ð¹Ð»Ð¾Ð²Ðµ...',
    'createNewAgent':u'Ð¡ÑŠÐ·Ð´Ð°Ð²Ð°Ð½Ðµ Ð½Ð° Ð°Ð³ÐµÐ½Ñ‚...',
    'decline':u'ÐÐµ Ð¿Ñ€Ð¸ÐµÐ¼Ð°Ð¼',
    'desktopNotificationAutoHide':u'ÐÐ²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ ÑÐºÑ€Ð¸Ð²Ð°Ð½Ðµ',
    'desktopNotificationNone':u'ÐÐ¸Ñ‰Ð¾',
    'desktopNotificationVisible':u'Ð’Ð¸Ð´Ð¸Ð¼',
    'downloadFile':u'Ð˜Ð·Ñ‚ÐµÐ³Ð»ÑÐ½Ðµ Ð½Ð° Ñ„Ð°Ð¹Ð»Ð° {0}...',
    'endInstall':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸ÑÑ‚Ð° Ðµ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°.',
    'endInstallConfigLater':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸ÑÑ‚Ð° Ðµ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°.\nÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ð½Ðµ Ðµ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½. Ð’ÑÐµ Ð¿Ð°Ðº Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚Ðµ Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑÑ‚Ð° Ð¿Ð¾-ÐºÑŠÑÐ½Ð¾.',
    'endUninstall':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸ÑÑ‚Ð° Ðµ Ð·Ð°Ð²ÑŠÑ€ÑˆÐµÐ½Ð°.',
    'enter':u'Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ',
    'enterInstallCode':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ ÐºÐ¾Ð´',
    'enterInstallNewAgent':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð´Ð°Ð½Ð½Ð¸, Ð·Ð° Ð´Ð° ÑÑŠÐ·Ð´Ð°Ð´ÐµÑ‚Ðµ Ð½Ð¾Ð² Ð°Ð³ÐµÐ½Ñ‚:',
    'enterRunCode':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ ÐºÐ¾Ð´Ð° Ð½Ð° Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð°',
    'error':u'Ð“Ñ€ÐµÑˆÐºÐ°',
    'errorAgentAlreadyExsists':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ {0} Ð²ÐµÑ‡Ðµ ÑÑŠÑ‰ÐµÑÑ‚Ð²ÑƒÐ²Ð°.',
    'errorAgentMax':u'ÐŸÑ€ÐµÐ²Ð¸ÑˆÐµÐ½ Ðµ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»Ð½Ð¸ÑÑ‚ Ð±Ñ€Ð¾Ð¹ Ð°Ð³ÐµÐ½Ñ‚Ð¸.',
    'errorAgentNameNotValid':u'Ð˜Ð¼ÐµÑ‚Ð¾ Ð½Ð° Ð°Ð³ÐµÐ½Ñ‚Ð° Ð½Ðµ Ðµ Ð²Ð°Ð»Ð¸Ð´Ð½Ð¾. ÐÐµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð´Ð° Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ‚Ðµ ÑÐ¸Ð¼Ð²Ð¾Ð»Ð¸Ñ‚Ðµ / \\ | # @:',
    'errorConnectionConfig':u'Ð“Ñ€ÐµÑˆÐºÐ° Ð¿Ñ€Ð¸ ÑÐ²ÑŠÑ€Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾. ÐœÐ¾Ð»Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ Ð´Ð°Ð»Ð¸ ÑƒÑÐ»ÑƒÐ³Ð°Ñ‚Ð° DWAgent Ðµ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ð°.',
    'errorConnectionQuestion':u'Ð“Ñ€ÐµÑˆÐºÐ° Ð¿Ñ€Ð¸ ÑÐ²ÑŠÑ€Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾. ÐœÐ¾Ð»Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð° ÑÐ¸ Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚ Ð¸Ð»Ð¸ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑÑ‚Ð° Ð½Ð° Ð·Ð°Ñ‰Ð¸Ñ‚Ð½Ð°Ñ‚Ð° ÑÑ‚ÐµÐ½Ð°.\nÐ˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ñ‚Ðµ Ð¿Ñ€Ð¾ÐºÑÐ¸ ÑÑŠÑ€Ð²ÑŠÑ€?',
    'errorInvalidCode':u'Ð’ÑŠÐ²ÐµÐ´ÐµÐ½Ð¸ÑÑ‚ ÐºÐ¾Ð´ Ðµ Ð½ÐµÐ²Ð°Ð»Ð¸Ð´ÐµÐ½.',
    'errorInvalidUserPassword':u'ÐÐµÐ²Ð°Ð»Ð¸Ð´ÐµÐ½ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ» Ð¸Ð»Ð¸ Ð¿Ð°Ñ€Ð¾Ð»Ð°.',
    'fieldRequired':u'ÐŸÐ¾Ð»ÐµÑ‚Ð¾ "{0}" Ðµ Ð·Ð°Ð´ÑŠÐ»Ð¶Ð¸Ñ‚ÐµÐ»Ð½Ð¾.',
    'install':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð¹',
    'installMonitor':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€Ð° ...',
    'installMonitorErr':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ð½Ð° Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€ Ðµ Ð½ÐµÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'installService':u'Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° ÑƒÑÐ»ÑƒÐ³Ð°...',
    'installServiceErr':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ð½Ð° ÑƒÑÐ»ÑƒÐ³Ð°Ñ‚Ð° Ðµ Ð½ÐµÑƒÑÐ¿ÐµÑˆÐ½Ð¾...',
    'installShortcuts':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¿Ñ€ÐµÐºÐ¸ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð° (Ð¸ÐºÐ¾Ð½Ð¸)...',
    'installShortcutsErr':u'Ð˜Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ð½Ð° Ð¿Ñ€ÐµÐºÐ¸ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð° (Ð¸ÐºÐ¾Ð½Ð¸) Ðµ Ð½ÐµÑƒÑÐ¿ÐµÑˆÐ½Ð¾.',
    'installerNotSupported':u'Ð¢Ð¾Ð·Ð¸ Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ‚Ð¾Ñ€ Ð²ÐµÑ‡Ðµ Ð½Ðµ ÑÐµ Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°. ÐœÐ¾Ð»Ñ, Ð¸Ð·Ñ‚ÐµÐ³Ð»ÐµÑ‚Ðµ Ð½Ð°Ð¹-Ð½Ð¾Ð²Ð°Ñ‚Ð° Ð²ÐµÑ€ÑÐ¸Ñ.',
    'ipAddress':u'IP Ð°Ð´Ñ€ÐµÑ: {0}',
    'linuxRootPrivileges':u'Ð¢Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ð¸Ð¼Ð°Ñ‚Ðµ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€ÑÐºÐ¸ Ð¿Ñ€Ð°Ð²Ð°, Ð·Ð° Ð´Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ DWAgent.\nÐœÐ¾Ð»Ñ, ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð¹Ñ‚Ðµ ÑÐºÑ€Ð¸Ð¿Ñ‚Ð°, ÐºÐ°Ñ‚Ð¾ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€.',
    'menuConfigure':u'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ',
    'menuMonitor':u'ÐœÐ¾Ð½Ð¸Ñ‚Ð¾Ñ€',
    'menuUninstall':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ',
    'missingInfoFile':u'Ð¤Ð°Ð¹Ð»ÑŠÑ‚ info.json Ð½Ðµ Ðµ Ð½Ð°Ð¼ÐµÑ€ÐµÐ½.',
    'missingNative':u'ÐÐ°ÑÑ‚Ð¾ÑÑ‰ Ð½Ðµ Ðµ Ð½Ð°Ð¼ÐµÑ€ÐµÐ½.',
    'missingRuntime':u'Ð’Ñ€ÐµÐ¼ÐµÑ‚Ð¾ Ð·Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ðµ Ð½Ðµ Ðµ Ð½Ð°Ð¼ÐµÑ€ÐµÐ½Ð¾.',
    'monitorActive':u'Ð°ÐºÑ‚Ð¸Ð²ÐµÐ½',
    'monitorAgentDisabled':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ðµ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'monitorAgentEnabled':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ Ðµ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½.',
    'monitorConfigure':u'ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð½Ðµ',
    'monitorConnections':u'Ð’Ñ€ÑŠÐ·ÐºÐ¸',
    'monitorCurrentActivities':u'Ð¢ÐµÐºÑƒÑ‰Ð¸ Ð´ÐµÐ¹Ð½Ð¾ÑÑ‚Ð¸',
    'monitorDisable':u'Ð˜Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½',
    'monitorDisableAgentQuestion':u'Ð˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° Ð´ÐµÐ°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð°Ñ‚Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorDownload':u'Ð¡Ð²Ð°Ð»ÑÐ½Ðµ',
    'monitorEnable':u'Ð’ÐºÐ»ÑŽÑ‡Ð¸',
    'monitorEnableAgentQuestion':u'Ð˜ÑÐºÐ°Ñ‚Ðµ Ð»Ð¸ Ð´Ð° Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð°Ñ‚Ðµ Ð°Ð³ÐµÐ½Ñ‚Ð°?',
    'monitorEnterPassword':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ð°:',
    'monitorErrorConnectionConfig':u'Ð“Ñ€ÐµÑˆÐºÐ° Ð¿Ñ€Ð¸ ÑÐ²ÑŠÑ€Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾. ÐœÐ¾Ð»Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ Ð´Ð°Ð»Ð¸ ÑƒÑÐ»ÑƒÐ³Ð°Ñ‚Ð° DWAgent Ðµ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ð°.',
    'monitorHide':u'Ð¡ÐºÑ€Ð¸Ð¹',
    'monitorInvalidPassword':u'ÐÐµÐ²Ð°Ð»Ð¸Ð´Ð½Ð° Ð¿Ð°Ñ€Ð¾Ð»Ð°.',
    'monitorNoActivities':u'ÐÑÐ¼Ð° Ð´ÐµÐ¹Ð½Ð¾ÑÑ‚Ð¸',
    'monitorScreenCapture':u'Ð—Ð°ÑÐ½ÐµÐ¼Ð°Ð½Ðµ Ð½Ð° ÐµÐºÑ€Ð°Ð½Ð°',
    'monitorSession':u'Ð¡ÐµÑÐ¸Ñ',
    'monitorShellSession':u'ÐžÐ±Ð²Ð¸Ð²ÐºÐ°',
    'monitorShow':u'ÐŸÐ¾ÐºÐ°Ð¶Ð¸',
    'monitorStatus':u'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ',
    'monitorStatusDisabled':u'Ð˜Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½',
    'monitorStatusNoService':u'ÐÑÐ¼Ð° ÑƒÑÐ»ÑƒÐ³Ð°',
    'monitorStatusOffline':u'ÐžÑ„Ð»Ð°Ð¹Ð½',
    'monitorStatusOnline':u'ÐžÐ½Ð»Ð°Ð¹Ð½',
    'monitorStatusUpdating':u'ÐžÐ±Ð½Ð¾Ð²ÑÐ²Ð°Ð½Ðµ',
    'monitorTitle':u'DWAgent - ÐœÐ¾Ð½Ð¸Ñ‚Ð¾Ñ€',
    'monitorUninstall':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð¹',
    'monitorUninstallNotRun':u'ÐÐµ Ð¼Ð¾Ð¶ÐµÑ‚Ðµ Ð´Ð° Ð´ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ Ð±ÐµÐ· Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ Ð½Ð° Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€Ð°.\nÐ¡Ñ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð¹Ñ‚Ðµ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° dwaguninstall Ð² ÑÐ¸ÑÑ‚ÐµÐ¼Ð½Ð°Ñ‚Ð° Ð¾Ð±Ð²Ð¸Ð²ÐºÐ°.',
    'monitorUpload':u'ÐšÐ°Ñ‡Ð²Ð°Ð½Ðµ',
    'mustAccept':u'Ð—Ð° Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚Ðµ, Ñ‚Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ Ð¾Ð¿Ñ†Ð¸ÑÑ‚Ð° {0}',
    'mustSelectOptions':u'Ð¢Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ Ð¾Ð¿Ñ†Ð¸Ñ.',
    'next':u'Ð¡Ð»ÐµÐ´Ð²Ð°Ñ‰',
    'no':u'ÐÐµ',
    'noTryAgain':u'ÐÐµ, Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹ Ð¿Ð°Ðº.',
    'notInstalled':u'DWAgent Ð½Ðµ Ðµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½.',
    'ok':u'ÐžÐº',
    'option':u'ÐžÐ¿Ñ†Ð¸Ñ',
    'optionNotValid':u'Ð˜Ð·Ð±Ñ€Ð°Ð½Ð°Ñ‚Ð° Ð¾Ð¿Ñ†Ð¸Ñ Ðµ Ð½ÐµÐ²Ð°Ð»Ð¸Ð´Ð½Ð°.',
    'or':u'Ð¸Ð»Ð¸',
    'password':u'ÐŸÐ°Ñ€Ð¾Ð»Ð°',
    'path':u'ÐŸÑŠÑ‚',
    'pathCreating':u'Ð¡ÑŠÐ·Ð´Ð°Ð²Ð°Ð½Ðµ Ð½Ð° Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ...',
    'pathNotCreate':u'Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸ÑÑ‚Ð° Ð½Ðµ Ð¼Ð¾Ð¶Ð° Ð´Ð° Ð±ÑŠÐ´Ðµ ÑÑŠÐ·Ð´Ð°Ð´ÐµÐ½Ð°. ÐÐµÐ²Ð°Ð»Ð¸Ð´ÐµÐ½ Ð¿ÑŠÑ‚ Ð¸Ð»Ð¸ Ð¾Ñ‚ÐºÐ°Ð·Ð°Ð½ Ð´Ð¾ÑÑ‚ÑŠÐ¿.',
    'pressEnter':u'ÐÐ°Ñ‚Ð¸ÑÐ½ÐµÑ‚Ðµ "Enter", Ð·Ð° Ð´Ð° Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚Ðµ.',
    'privacyPolicy':u'ÐŸÐ¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° Ð·Ð° Ð¿Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¾ÑÑ‚',
    'proxyAuthPassword':u'ÐŸÐ°Ñ€Ð¾Ð»Ð°',
    'proxyAuthUser':u'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»',
    'proxyHost':u'Ð¥Ð¾ÑÑ‚',
    'proxyHttp':u'Http',
    'proxyInfo':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ð¿Ñ€Ð¾ÐºÑÐ¸ ÑÑŠÑ€Ð²ÑŠÑ€Ð°.',
    'proxyNone':u'ÐÐ¸Ñ‰Ð¾',
    'proxyPort':u'ÐŸÐ¾Ñ€Ñ‚',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Ð¡Ð¸ÑÑ‚ÐµÐ¼Ð°',
    'reEnterCode':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¾Ñ‚Ð½Ð¾Ð²Ð¾ ÐºÐ¾Ð´Ð°.',
    'reEnterData':u'Ð’ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð¾Ñ‚Ð½Ð¾Ð²Ð¾ Ð´Ð°Ð½Ð½Ð¸Ñ‚Ðµ.',
    'rePassword':u'ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÐµÑ‚Ðµ Ð¿Ð°Ñ€Ð¾Ð»Ð°Ñ‚Ð°',
    'reject':u'ÐžÑ‚Ñ…Ð²ÑŠÑ€Ð»ÑÐ½Ðµ',
    'removeFile':u'ÐŸÑ€ÐµÐ¼Ð°Ñ…Ð²Ð°Ð½Ðµ Ð½Ð° Ñ„Ð°Ð¹Ð»Ð°...',
    'runWithoutInstallation':u'Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð¹',
    'runWithoutInstallationClosing':u'Ð—Ð°Ñ‚Ð²Ð°Ñ€ÑÐ½Ðµ Ð½Ð° ÑÐµÑÐ¸ÑÑ‚Ð°...',
    'runWithoutInstallationConnecting':u'ÐžÑ‚Ð²Ð°Ñ€ÑÐ½Ðµ Ð½Ð° ÑÐµÑÐ¸ÑÑ‚Ð°...',
    'runWithoutInstallationEnd':u'Ð¡ÐµÑÐ¸ÑÑ‚Ð° Ð·Ð°Ð²ÑŠÑ€ÑˆÐ¸.',
    'runWithoutInstallationOnlineBottom':u'Ð’ÐÐ˜ÐœÐÐÐ˜Ð•:\nÐÐµ Ñ€Ð°Ð·ÐºÑ€Ð¸Ð²Ð°Ð¹Ñ‚Ðµ Ñ‚Ð°Ð·Ð¸ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° Ñ…Ð¾Ñ€Ð°, Ð½Ð° ÐºÐ¾Ð¸Ñ‚Ð¾ Ð½ÑÐ¼Ð°Ñ‚Ðµ Ð´Ð¾Ð²ÐµÑ€Ð¸Ðµ, Ð¸Ð½Ð°Ñ‡Ðµ Ñ‰Ðµ Ð¸Ð¼ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚Ðµ Ð´Ð¾ÑÑ‚ÑŠÐ¿ Ð´Ð¾ Ñ‚Ð¾Ð·Ð¸ Ð°Ð³ÐµÐ½Ñ‚. Ð¢Ð°ÐºÐ° Ñ‡Ðµ, Ð°ÐºÐ¾ Ð½Ðµ ÑÑ‚Ðµ ÑÐ¸Ð³ÑƒÑ€Ð½Ð¸ ÐºÐ°ÐºÐ²Ð¾ Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ðµ, Ð¼Ð¾Ð»Ñ, Ð·Ð°Ñ‚Ð²Ð¾Ñ€ÐµÑ‚Ðµ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÑ‚Ð¾.',
    'runWithoutInstallationOnlineBottomPutCode':u'Ð’ÐÐ˜ÐœÐÐÐ˜Ð•:\nÐ¡ÐµÐ³Ð° Ð°Ð³ÐµÐ½Ñ‚ÑŠÑ‚ Ðµ Ð³Ð¾Ñ‚Ð¾Ð² Ð´Ð° Ð¿Ñ€Ð¸ÐµÐ¼Ðµ Ð²Ñ€ÑŠÐ·ÐºÐ°. Ð¢Ð°ÐºÐ° Ñ‡Ðµ, Ð°ÐºÐ¾ Ð½Ðµ ÑÑ‚Ðµ ÑÐ¸Ð³ÑƒÑ€Ð½Ð¸ ÐºÐ°ÐºÐ²Ð¾ Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ðµ, Ð¼Ð¾Ð»Ñ, Ð·Ð°Ñ‚Ð²Ð¾Ñ€ÐµÑ‚Ðµ Ñ‚Ð¾Ð²Ð° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ.',
    'runWithoutInstallationOnlinePassword':u'ÐŸÐ°Ñ€Ð¾Ð»Ð°: {0}',
    'runWithoutInstallationOnlineTop':u'Ð¡ÐµÑÐ¸ÑÑ‚Ð° Ðµ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°.\nÐ—Ð° Ð´Ð° ÑÐµ ÑÐ²ÑŠÑ€Ð¶ÐµÑ‚Ðµ Ñ Ñ‚Ð¾Ð·Ð¸ Ð°Ð³ÐµÐ½Ñ‚, Ð¿Ð¾ÑÐµÑ‚ÐµÑ‚Ðµ https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Ð¡ÐµÑÐ¸ÑÑ‚Ð° Ðµ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°.',
    'runWithoutInstallationOnlineUser':u'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»: {0}',
    'runWithoutInstallationStarting':u'Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð°Ð³ÐµÐ½Ñ‚Ð°...',
    'runWithoutInstallationUnexpectedError':u'ÐÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð° Ð³Ñ€ÐµÑˆÐºÐ°.\nDWAgent Ð½Ðµ Ð¼Ð¾Ð¶Ð° Ð´Ð° ÑÐµ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°. ÐÐºÐ¾ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ÑŠÑ‚ Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð°Ð²Ð°, Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ Ð´Ð° Ð¸Ð·Ñ‚ÐµÐ³Ð»Ð¸Ñ‚Ðµ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½Ð°Ñ‚Ð° Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ð° DWAgent, Ð´Ð° Ð¸Ð·Ñ‚Ñ€Ð¸ÐµÑ‚Ðµ Ð¿Ð°Ð¿ÐºÐ°Ñ‚Ð° \'{0}\' Ð¸ Ð¾Ñ‚Ð½Ð¾Ð²Ð¾ Ð´Ð° ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ñ‚Ðµ DWAgent.',
    'runWithoutInstallationUpdating':u'ÐÐ³ÐµÐ½Ñ‚ÑŠÑ‚ ÑÐµ Ð¾Ð±Ð½Ð¾Ð²ÑÐ²Ð°...',
    'runWithoutInstallationWait':u'Ð˜Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ, Ð² Ñ…Ð¾Ð´ Ðµ Ð½Ð¾Ð²Ð° Ð²Ñ€ÑŠÐ·ÐºÐ° (Ð¾Ð¿Ð¸Ñ‚ {0}) ...',
    'selectPathInstall':u'Ð˜Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ ÐºÑŠÐ´Ðµ Ð´Ð° ÑÐµ Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°:',
    'skipCertValidation':u'ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ðµ: Ð¡ÐµÑ€Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚ÑŠÑ‚ Ð·Ð° ÑÐ¸Ð³ÑƒÑ€Ð½Ð¾ÑÑ‚ Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±ÑŠÐ´Ðµ Ð²Ð°Ð»Ð¸Ð´Ð¸Ñ€Ð°Ð½, Ð°ÐºÐ¾ Ð¿Ñ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸Ñ‚Ðµ, Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð° Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð½Ðµ Ðµ Ð·Ð°Ñ‰Ð¸Ñ‚ÐµÐ½Ð°.\nÐœÐ¾Ð»Ñ, Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑÑ‚Ð° Ð½Ð° Ñ€ÑƒÑ‚ÐµÑ€Ð°/Ð·Ð°Ñ‰Ð¸Ñ‚Ð½Ð°Ñ‚Ð° ÑÑ‚ÐµÐ½Ð°/Ð°Ð½Ñ‚Ð¸Ð²Ð¸Ñ€ÑƒÑÐ½Ð°Ñ‚Ð° Ð¼Ñ€ÐµÐ¶Ð° Ð¸Ð»Ð¸ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾.\nÐŸÑ€Ð¾Ð´ÑŠÐ»Ð¶Ð¸ Ð²ÑŠÐ¿Ñ€ÐµÐºÐ¸ Ñ‚Ð¾Ð²Ð°?',
    'startService':u'Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° ÑƒÑÐ»ÑƒÐ³Ð°...',
    'startServiceErr':u'Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ð½Ð° ÑƒÑÐ»ÑƒÐ³Ð°Ñ‚Ð° Ð¿Ñ€Ð¾Ð¿Ð°Ð´Ð½Ð°.',
    'termsAndConditions':u'ÐŸÑ€Ð°Ð²Ð¸Ð»Ð° Ð¸ ÑƒÑÐ»Ð¾Ð²Ð¸Ñ',
    'titleInstall':u'DWAgent - Ð˜Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ',
    'titleUninstall':u'DWAgent - Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸Ñ',
    'toBack':u'ÑÐµ Ð·Ð°Ð²Ñ€ÑŠÑ‰Ð°',
    'toExit':u'Ð¸Ð·Ð»Ð¸Ð·Ð°.',
    'unattendedAccess':u'Ð”Ð¾ÑÑ‚ÑŠÐ¿\nÐ±ÐµÐ· Ð½Ð°Ð´Ð·Ð¾Ñ€',
    'unexpectedError':u'ÐÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð° Ð³Ñ€ÐµÑˆÐºÐ°.\n{0}',
    'uninstallMonitor':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¼Ð¾Ð½Ð¸Ñ‚Ð¾Ñ€...',
    'uninstallService':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° ÑƒÑÐ»ÑƒÐ³Ð°...',
    'uninstallShortcuts':u'Ð”ÐµÐ¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ð½Ðµ Ð½Ð° Ð¿Ñ€ÐµÐºÐ¸ Ð¿ÑŠÑ‚Ð¸Ñ‰Ð°...',
    'unknownUser':u'ÐÐµÐ¸Ð·Ð²ÐµÑÑ‚ÐµÐ½ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»',
    'user':u'ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»',
    'validInteger':u'ÐŸÐ¾Ð»ÐµÑ‚Ð¾ "{0}" Ñ‚Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ðµ Ñ†ÑÐ»Ð¾ Ñ‡Ð¸ÑÐ»Ð¾.',
    'versionInstallNotValid':u'Ð’ÐµÑ€ÑÐ¸ÑÑ‚Ð° Ð½Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ‚Ð¾Ñ€Ð° Ð½Ðµ Ðµ Ð¿Ð¾Ð´Ñ…Ð¾Ð´ÑÑ‰Ð° Ð·Ð° Ð²Ð°ÑˆÐ°Ñ‚Ð° Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð° ÑÐ¸ÑÑ‚ÐµÐ¼Ð°.\nÐœÐ¾Ð»Ñ, Ð¸Ð·Ñ‚ÐµÐ³Ð»ÐµÑ‚Ðµ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð°Ñ‚Ð° Ð²ÐµÑ€ÑÐ¸Ñ. {0}',
    'waiting':u'ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...',
    'warningLoginLogout':u'Ð—Ð° Ð´Ð° Ð²Ð»ÐµÐ·Ðµ Ð² ÑÐ¸Ð»Ð° Ñ‚Ð°Ð·Ð¸ Ð¿Ñ€Ð¾Ð¼ÑÐ½Ð°, Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»ÑÑ‚ Ñ‚Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ð¸Ð·Ð»ÐµÐ·Ðµ Ð¸ Ð´Ð° Ð²Ð»ÐµÐ·Ðµ Ð¾Ñ‚Ð½Ð¾Ð²Ð¾.',
    'warningRemovePath':u'ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ðµ, Ñ‡Ðµ Ð°ÐºÐ¾ Ð¿Ð°Ð¿ÐºÐ°Ñ‚Ð° Ð·Ð° Ð¼ÐµÑÑ‚Ð¾Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ð²ÐµÑ‡Ðµ ÑÑŠÑ‰ÐµÑÑ‚Ð²ÑƒÐ²Ð°, Ñ‚Ð¾ Ñ‚Ñ Ñ‰Ðµ Ð±ÑŠÐ´Ðµ Ð¸Ð·Ñ‚Ñ€Ð¸Ñ‚Ð°.',
    'warningSpyingTool':u'ÐœÐ¾Ð»Ñ, Ð¸Ð¼Ð°Ð¹Ñ‚Ðµ Ð¿Ñ€ÐµÐ´Ð²Ð¸Ð´, Ñ‡Ðµ Ð½ÑÐ¼Ð°Ñ‚Ðµ Ð´Ð¾ÑÑ‚ÑŠÐ¿ Ð´Ð¾ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ Ð±ÐµÐ· ÑÑŠÐ³Ð»Ð°ÑÐ¸ÐµÑ‚Ð¾ Ð½Ð° Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ». Ð˜Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹ÐºÐ¸ DWService ÐºÐ°Ñ‚Ð¾ ÑˆÐ¿Ð¸Ð¾Ð½ÑÐºÐ¸ Ð¸Ð½ÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚, Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð½Ð°Ñ€ÑƒÑˆÐ¸Ñ‚Ðµ Ð·Ð°ÐºÐ¾Ð½Ð¸Ñ‚Ðµ Ð²ÑŠÐ² Ð²Ð°ÑˆÐ°Ñ‚Ð° Ð´ÑŠÑ€Ð¶Ð°Ð²Ð°.',
    'welcomeLicense':u'Ð›Ð¸Ñ†ÐµÐ½Ð·\nÐ¢Ð¾Ð·Ð¸ ÑÐ¾Ñ„Ñ‚ÑƒÐµÑ€ Ðµ Ð±ÐµÐ·Ð¿Ð»Ð°Ñ‚ÐµÐ½ Ð¸ Ñ Ð¾Ñ‚Ð²Ð¾Ñ€ÐµÐ½ ÐºÐ¾Ð´.\nÐ¡ÑŠÑÑ‚Ð¾Ð¸ ÑÐµ Ð¾Ñ‚ ÐµÐ´Ð¸Ð½ Ð¾ÑÐ½Ð¾Ð²ÐµÐ½ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚ Ð¸ Ð½ÑÐºÐ¾Ð»ÐºÐ¾ Ð´Ð¾Ð¿ÑŠÐ»Ð½Ð¸Ñ‚ÐµÐ»Ð½Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð°, Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð¸ ÐºÐ°Ñ‚Ð¾ "Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ", ÐºÐ¾Ð¸Ñ‚Ð¾ Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð±ÑŠÐ´Ð°Ñ‚ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÑÐ²Ð°Ð½Ð¸ Ð¾Ñ‚ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸. Ð—Ð° Ð¿Ð¾Ð²ÐµÑ‡Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾ÑÐµÑ‚ÐµÑ‚Ðµ https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'ÐŸÑ€Ð¾Ð´ÑŠÐ»Ð¶Ð°Ð²Ð°Ð¹ÐºÐ¸ Ð¸Ð½ÑÑ‚Ð°Ð»Ð°Ñ†Ð¸ÑÑ‚Ð° Ð¸Ð»Ð¸ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð½ÐµÑ‚Ð¾ Ð½Ð° Ñ‚Ð¾Ð·Ð¸ ÑÐ¾Ñ„Ñ‚ÑƒÐµÑ€, Ð²Ð¸Ðµ ÑÐµ ÑÑŠÐ³Ð»Ð°ÑÑÐ²Ð°Ñ‚Ðµ Ñ #TERMSANDCONDITIONS Ð¸ #PRIVACYPOLICY',
    'welcomeSecurity':u'Ð¡Ð¸Ð³ÑƒÑ€Ð½Ð¾ÑÑ‚\nÐ’ Ð·Ð°Ñ‰Ð¸Ñ‚Ð° Ð½Ð° Ð²Ð°ÑˆÐ°Ñ‚Ð° Ð¿Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¾ÑÑ‚ Ð½Ð¸Ðµ Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ñ€Ð°Ð¼Ðµ, Ñ‡Ðµ Ð½Ð° Ð½Ð°ÑˆÐ¸Ñ‚Ðµ ÑÑŠÑ€Ð²ÑŠÑ€Ð¸ Ð½ÑÐ¼Ð° Ð´Ð° ÑÐµ ÑÑŠÑ…Ñ€Ð°Ð½ÑÐ²Ð° Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ð¸Ñ‚Ðµ ÑÐ° ÐºÐ¾Ð´Ð¸Ñ€Ð°Ð½Ð¸, Ñ‚Ð°ÐºÐ° Ñ‡Ðµ Ñ‚Ñ€ÐµÑ‚Ð¸ ÑÑ‚Ñ€Ð°Ð½Ð¸ Ð´Ð° Ð½Ðµ Ð¼Ð¾Ð³Ð°Ñ‚ Ð´Ð° Ð³Ð¸ Ð¿Ñ€Ð¾Ñ‡ÐµÑ‚Ð°Ñ‚.',
    'welcomeSoftwareUpdates':u'ÐÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ Ð½Ð° ÑÐ¾Ñ„Ñ‚ÑƒÐµÑ€Ð°.\nÐÐºÑ‚ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸Ñ‚Ðµ Ð½Ð° Ñ‚Ð¾Ð·Ð¸ ÑÐ¾Ñ„Ñ‚ÑƒÐµÑ€ ÑÐ° Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸.',
    'welcomeTermsAndConditions':u'Ð˜Ð·Ð±Ð¸Ñ€Ð°Ð¹ÐºÐ¸ Ð¾Ð¿Ñ†Ð¸ÑÑ‚Ð° \'{0}\' Ð¸Ð»Ð¸ \'{1}\', Ð¿Ñ€Ð¸ÐµÐ¼Ð°Ð¼ #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Ð¢Ñ€ÑÐ±Ð²Ð° Ð´Ð° Ð¸Ð¼Ð°Ñ‚Ðµ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€ÑÐºÐ¸ Ð¿Ñ€Ð°Ð²Ð°, Ð·Ð° Ð´Ð° Ð¸Ð½ÑÑ‚Ð°Ð»Ð¸Ñ€Ð°Ñ‚Ðµ DWAgent.\nÐœÐ¾Ð»Ñ ÑÑ‚Ð°Ñ€Ñ‚Ð¸Ñ€Ð°Ð¹Ñ‚Ðµ Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð», ÐºÐ°Ñ‚Ð¾ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€. (\'run as administrator\' Ð¸Ð»Ð¸ \'Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸ ÐºÐ°Ñ‚Ð¾ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑ‚Ñ€Ð°Ñ‚Ð¾Ñ€\').',
    'yes':u'Ð”Ð°'
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ui/messages/hu.py                                                                                   0000644 0001750 0001750 00000032617 14630344564 013600  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'Elfogadom',
    'accessConfirm':u'Szeretne hozzÃ¡fÃ©rni a kÃ©szÃ¼lÃ©kÃ©hez.',
    'agentName':u'ÃœgynÃ¶k neve',
    'alreadyInstalled':u'A DWÃœgynÃ¶k mÃ¡r telepÃ­tve van.\n\nAz Ã¼gynÃ¶k automatikusan frissÃ¼l a legutÃ³bbi verziÃ³ra. Ez azt jelenti, hogy nem kell manuÃ¡lisan telepÃ­tenie az Ãºjabb frissÃ­tÃ©seket.',
    'back':u'Vissza',
    'cancel':u'MÃ©gse',
    'cancelInstall':u'A telepÃ­tÃ©s megszakadt.',
    'cancelUninstall':u'Az eltÃ¡volÃ­tÃ¡s megszakadt.',
    'checkInstallCode':u'A telepÃ­tÃ©si kÃ³d ellenÅ‘rzÃ©se...',
    'chooseProxyType':u'Milyen proxy tÃ­pust szeretne hasznÃ¡lni?',
    'close':u'BezÃ¡rÃ¡s',
    'code':u'KÃ³d',
    'commands':u'Parancsok',
    'configureAgent':u'ÃœgynÃ¶k konfigurÃ¡lÃ¡sa',
    'configureAgentDisabled':u'ÃœgynÃ¶k letiltva.',
    'configureAgentEnabled':u'ÃœgynÃ¶k engedÃ©lyezve.',
    'configureChangeInstallKey':u'TelepÃ­tÃ©si kÃ³d mÃ³dosÃ­tÃ¡sa',
    'configureChooseMonitorTrayIconVisibility':u'SzeretnÃ©, hogy a figyelÅ‘ ikonja megjelenjen a tÃ¡lcÃ¡n?',
    'configureChooseOperation':u'KÃ©rjÃ¼k, vÃ¡lasszon egy mÅ±veletet:',
    'configureDesktopNotification':u'Asztali Ã©rtesÃ­tÃ©s',
    'configureDesktopNotificationOK':u'Az asztali Ã©rtesÃ­tÃ©s sikeresen konfigurÃ¡lva.',
    'configureDisableAgent':u'ÃœgynÃ¶k letiltÃ¡sa',
    'configureDisableAgentQuestion':u'SzeretnÃ© letiltani az Ã¼gynÃ¶kÃ¶t?',
    'configureEnableAgent':u'ÃœgynÃ¶k engedÃ©lyezÃ©se',
    'configureEnableAgentQuestion':u'SzeretnÃ© engedÃ©lyezni az Ã¼gynÃ¶kÃ¶t?',
    'configureEnd':u'A konfigurÃ¡lÃ¡s befejezÅ‘dÃ¶tt.',
    'configureErrorConnection':u'CsatlakozÃ¡si hiba. KÃ©rjÃ¼k, ellenÅ‘rizze, hogy fut-e a DWAgent szolgÃ¡ltatÃ¡s.',
    'configureExit':u'KilÃ©pÃ©s',
    'configureInsertPassword':u'KÃ©rjÃ¼k, adja meg a konfigurÃ¡ciÃ³s jelszÃ³t:',
    'configureInstallAgent':u'Hogyan szeretnÃ© konfigurÃ¡lni az Ã¼gynÃ¶kÃ¶t?',
    'configureInstallCode':u'Adja meg a telepÃ­tÃ©si kÃ³dot',
    'configureInstallNewAgent':u'Ãšj Ã¼gynÃ¶k lÃ©trehozÃ¡sa',
    'configureInstallPassword':u'TelepÃ­tÃ©si jelszÃ³',
    'configureInstallUser':u'FelhasznÃ¡lÃ³',
    'configureInvalidPassword':u'Ã‰rvÃ©nytelen jelszÃ³.',
    'configureKeyInstalled':u'Kulcs sikeresen telepÃ­tve.',
    'configureLater':u'KonfigurÃ¡lÃ¡s kÃ©sÅ‘bb',
    'configureMonitor':u'FigyelÅ‘ konfigurÃ¡lÃ¡sa',
    'configurePassword':u'JelszÃ³ konfigurÃ¡lÃ¡sa',
    'configurePasswordErrNoMatch':u'A jelszavak nem egyeznek.',
    'configurePasswordUpdated':u'JelszÃ³ frissÃ­tve.',
    'configureProxy':u'Proxy konfigurÃ¡lÃ¡sa',
    'configureProxyEnd':u'A proxy konfigurÃ¡lÃ¡sa sikeresen megtÃ¶rtÃ©nt.',
    'configureRemovePassword':u'JelszÃ³ eltÃ¡volÃ­tÃ¡sa',
    'configureRemovePasswordQuestion':u'El szeretnÃ© tÃ¡volÃ­tani a jelszÃ³t?',
    'configureSetPassword':u'JelszÃ³ beÃ¡llÃ­tÃ¡sa',
    'configureTitle':u'DWÃœgynÃ¶k - KonfigurÃ¡lÃ¡s',
    'configureTrayIconOK':u'TÃ¡lca ikon konfigurÃ¡lÃ¡sa sikeresen megtÃ¶rtÃ©nt.',
    'configureTrayIconVisibility':u'TÃ¡lca ikon lÃ¡thatÃ³sÃ¡ga',
    'configureUninstallKeyQuestion':u'EltÃ¡volÃ­tja a jelenlegi telepÃ­tÃ©si kÃ³dot?',
    'configureUninstallationKey':u'EltÃ¡volÃ­tÃ¡s...',
    'confirmExit':u'Biztosan ki szeretne lÃ©pni?',
    'confirmInstall':u'SzeretnÃ© telepÃ­teni a DWÃœgynÃ¶kÃ¶t a kÃ¶vetkezÅ‘ helyre: \'{0}\'?',
    'confirmUninstall':u'El szeretnÃ© tÃ¡volÃ­tani a DWÃœgynÃ¶k programot?',
    'copyFiles':u'FÃ¡jlok mÃ¡solÃ¡sa...',
    'createNewAgent':u'Az Ã¼gynÃ¶k lÃ©trehozÃ¡sa folyamatban...',
    'decline':u'Nem fogadom el',
    'desktopNotificationAutoHide':u'Automatikus elrejtÃ©s',
    'desktopNotificationNone':u'Nincs',
    'desktopNotificationVisible':u'LÃ¡thatÃ³',
    'downloadFile':u'{0} fÃ¡jl letÃ¶ltÃ©se...',
    'endInstall':u'A telepÃ­tÃ©s befejezÅ‘dÃ¶tt.',
    'endInstallConfigLater':u'A telepÃ­tÃ©s befejezÅ‘dÃ¶tt.\nAz Ã¼gynÃ¶k nem lett konfigurÃ¡lva. A konfigurÃ¡ciÃ³t kÃ©sÅ‘bb is lÃ©trehozhatja.',
    'endUninstall':u'Az eltÃ¡volÃ­tÃ¡s befejezÅ‘dÃ¶tt.',
    'enter':u'enter',
    'enterInstallCode':u'Adja meg a telepÃ­tÃ©si kÃ³dot',
    'enterInstallNewAgent':u'Adja meg az adatokat egy Ãºj Ã¼gynÃ¶k lÃ©trehozÃ¡sÃ¡hoz:',
    'enterRunCode':u'Ãrja be a csatlakozÃ¡si kÃ³dot',
    'error':u'Hiba',
    'errorAgentAlreadyExsists':u'Az Ã¼gynÃ¶k mÃ¡r lÃ©tezik: \'{0}\'.',
    'errorAgentMax':u'TÃºllÃ©pte az Ã¼gynÃ¶kÃ¶k maximÃ¡lis szÃ¡mÃ¡t.',
    'errorAgentNameNotValid':u'Az Ã¼gynÃ¶k neve Ã©rvÃ©nytelen. Nem hasznÃ¡lhatja a kÃ¶vetkezÅ‘ karaktereket: / \\ | # @ : .',
    'errorConnectionConfig':u'CsatlakozÃ¡si hiba. KÃ©rjÃ¼k, ellenÅ‘rizze, hogy fut-e a DWAgent szolgÃ¡ltatÃ¡s.',
    'errorConnectionQuestion':u'CsatlakozÃ¡si hiba. KÃ©rjÃ¼k, ellenÅ‘rizze internetkapcsolatÃ¡t vagy tÅ±zfalÃ¡t.\nSzeretne proxy-t beÃ¡llÃ­tani?',
    'errorInvalidCode':u'A megadott kÃ³d Ã©rvÃ©nytelen.',
    'errorInvalidUserPassword':u'Ã‰rvÃ©nytelen felhasznÃ¡lÃ³nÃ©v vagy jelszÃ³.',
    'fieldRequired':u'A \'{0}\' mezÅ‘ kitÃ¶ltÃ©se kÃ¶telezÅ‘.',
    'install':u'TelepÃ­tÃ©s',
    'installMonitor':u'FigyelÅ‘ telepÃ­tÃ©se...',
    'installMonitorErr':u'FigyelÅ‘ telepÃ­tÃ©se sikertelen.',
    'installService':u'SzolgÃ¡ltatÃ¡s telepÃ­tÃ©se...',
    'installServiceErr':u'SzolgÃ¡ltatÃ¡s telepÃ­tÃ©se sikertelen.',
    'installShortcuts':u'Parancsikonok telepÃ­tÃ©se...',
    'installShortcutsErr':u'A parancsikon telepÃ­tÃ©se sikertelen.',
    'installerNotSupported':u'Ez a telepÃ­tÅ‘ mÃ¡r nem tÃ¡mogatott. KÃ©rjÃ¼k, tÃ¶ltse le a legÃºjabb verziÃ³t.',
    'ipAddress':u'IP-cÃ­m: {0}',
    'linuxRootPrivileges':u'A DWÃœgynÃ¶k telepÃ­tÃ©sÃ©hez root jogosultsÃ¡gokkal kell rendelkeznie.\nKÃ©rjÃ¼k, futtassa a szkriptet sudo-val vagy root-kÃ©nt.',
    'menuConfigure':u'KonfigurÃ¡lÃ¡s',
    'menuMonitor':u'FigyelÅ‘',
    'menuUninstall':u'EltÃ¡volÃ­tÃ¡s',
    'missingInfoFile':u'Az info.json fÃ¡jl nem talÃ¡lhatÃ³.',
    'missingNative':u'NatÃ­v nem talÃ¡lhatÃ³.',
    'missingRuntime':u'A futtatÃ³kÃ¶rnyezet nem talÃ¡hatÃ³.',
    'monitorActive':u'aktÃ­v',
    'monitorAgentDisabled':u'ÃœgynÃ¶k letiltva.',
    'monitorAgentEnabled':u'ÃœgynÃ¶k engedÃ©lyezve.',
    'monitorConfigure':u'KonfigurÃ¡lÃ¡s',
    'monitorConnections':u'Kapcsolatok',
    'monitorCurrentActivities':u'Jelenlegi tevÃ©kenysÃ©gek',
    'monitorDisable':u'LetiltÃ¡s',
    'monitorDisableAgentQuestion':u'SzeretnÃ© letiltani az Ã¼gynÃ¶kÃ¶t?',
    'monitorDownload':u'LetÃ¶ltÃ©s',
    'monitorEnable':u'EngedÃ©lyezÃ©s',
    'monitorEnableAgentQuestion':u'SzeretnÃ© engedÃ©lyezni az Ã¼gynÃ¶kÃ¶t?',
    'monitorEnterPassword':u'Adja meg a jelszÃ³t:',
    'monitorErrorConnectionConfig':u'CsatlakozÃ¡si hiba. KÃ©rjÃ¼k, ellenÅ‘rizze, hogy fut-e a DWAgent szolgÃ¡ltatÃ¡s.',
    'monitorHide':u'ElrejtÃ©s',
    'monitorInvalidPassword':u'Ã‰rvÃ©nytelen jelszÃ³.',
    'monitorNoActivities':u'Nincs tevÃ©kenysÃ©g',
    'monitorScreenCapture':u'KÃ©pernyÅ‘-hozzÃ¡fÃ©rÃ©s',
    'monitorSession':u'Munkamenet',
    'monitorShellSession':u'Shell hozzÃ¡fÃ©rÃ©s',
    'monitorShow':u'MegjelenÃ­tÃ©s',
    'monitorStatus':u'Ãllapot',
    'monitorStatusDisabled':u'Letiltva',
    'monitorStatusNoService':u'Nincs szolgÃ¡ltatÃ¡s',
    'monitorStatusOffline':u'Offline',
    'monitorStatusOnline':u'Online',
    'monitorStatusUpdating':u'FrissÃ­tÃ©s',
    'monitorTitle':u'DWÃœgynÃ¶k - FigyelÅ‘',
    'monitorUninstall':u'EltÃ¡volÃ­tÃ¡s',
    'monitorUninstallNotRun':u'Root jogosultsÃ¡gok nÃ©lkÃ¼l nem lehet eltÃ¡volÃ­tani.\nFuttassa a dwaguninstall parancsot sudo-val vagy root-kÃ©nt.',
    'monitorUpload':u'FeltÃ¶ltÃ©s',
    'mustAccept':u'A folytatÃ¡shoz ki kell vÃ¡lasztania a(z) {0} lehetÅ‘sÃ©get',
    'mustSelectOptions':u'Ki kell vÃ¡lasztania egy lehetÅ‘sÃ©get.',
    'next':u'TovÃ¡bb',
    'no':u'Nem',
    'noTryAgain':u'Nem, prÃ³bÃ¡lja Ãºjra',
    'notInstalled':u'A DWÃœgynÃ¶k nincs telepÃ­tve.',
    'ok':u'OK',
    'option':u'BeÃ¡llÃ­tÃ¡s',
    'optionNotValid':u'A kivÃ¡lasztott lehetÅ‘sÃ©g Ã©rvÃ©nytelen.',
    'or':u'vagy',
    'password':u'JelszÃ³',
    'path':u'ElÃ©rÃ©si Ãºtvonal',
    'pathCreating':u'Mappa lÃ©trehozÃ¡sa...',
    'pathNotCreate':u'Nem sikerÃ¼lt lÃ©trehozni a mappÃ¡t. Ã‰rvÃ©nytelen elÃ©rÃ©si Ãºtvonal vagy az engedÃ©ly megtagadva.',
    'pressEnter':u'A folytatÃ¡shoz nyomja meg az Enter billentyÅ±t.',
    'privacyPolicy':u'AdatvÃ©delmi szabÃ¡lyzat',
    'proxyAuthPassword':u'JelszÃ³',
    'proxyAuthUser':u'FelhasznÃ¡lÃ³',
    'proxyHost':u'CÃ­m',
    'proxyHttp':u'HTTP',
    'proxyInfo':u'Proxy-informÃ¡ciÃ³ beillesztÃ©se.',
    'proxyNone':u'Nincs',
    'proxyPort':u'Port',
    'proxySocks4':u'SOCKS4',
    'proxySocks4a':u'SOCKS4a',
    'proxySocks5':u'SOCKS5',
    'proxySystem':u'Rendszer',
    'reEnterCode':u'Adja meg Ãºjra a kÃ³dot',
    'reEnterData':u'Adja meg Ãºjra az adatot',
    'rePassword':u'JelszÃ³ ismÃ©telt megadÃ¡sa',
    'reject':u'ElutasÃ­tom',
    'removeFile':u'FÃ¡jl eltÃ¡volÃ­tÃ¡sa...',
    'runWithoutInstallation':u'FuttatÃ¡s',
    'runWithoutInstallationClosing':u'Munkamenet bezÃ¡rÃ¡sa...',
    'runWithoutInstallationConnecting':u'Munkamenet megnyitÃ¡sa...',
    'runWithoutInstallationEnd':u'A munkamenet vÃ©get Ã©rt.',
    'runWithoutInstallationOnlineBottom':u'FIGYELMEZTETÃ‰S:\nNe adja ki ezeket az informÃ¡ciÃ³kat olyan embereknek, akikben nem bÃ­zik. Ez lehetÅ‘vÃ© teszi szÃ¡mukra, hogy hozzÃ¡fÃ©rjenek ehhez az eszkÃ¶zhÃ¶z. Ha nem biztos benne, hogy mit csinÃ¡l, kÃ©rjÃ¼k, zÃ¡rja be ezt az alkalmazÃ¡st.',
    'runWithoutInstallationOnlineBottomPutCode':u'FIGYELMEZTETÃ‰S:\nAz Ã¼gynÃ¶k kÃ©szen Ã¡ll a csatlakozÃ¡s elfogadÃ¡sÃ¡ra. Ha nem biztos benne, hogy mit csinÃ¡l, kÃ©rjÃ¼k, zÃ¡rja be ezt az alkalmazÃ¡st.',
    'runWithoutInstallationOnlinePassword':u'JelszÃ³: {0}',
    'runWithoutInstallationOnlineTop':u'A munkamenet aktÃ­v.\nAz Ã¼gynÃ¶khÃ¶z valÃ³ csatlakozÃ¡shoz lÃ©pjen a https://www.dwservice.net webhelyre.',
    'runWithoutInstallationOnlineTopPutCode':u'A munkamenet aktÃ­v.',
    'runWithoutInstallationOnlineUser':u'FelhasznÃ¡lÃ³: {0}',
    'runWithoutInstallationStarting':u'ÃœgynÃ¶k indÃ­tÃ¡sa...',
    'runWithoutInstallationUnexpectedError':u'VÃ¡ratlan hiba.\nA DWÃœgynÃ¶k nem tudott elindulni. Ha a problÃ©ma tovÃ¡bbra is fennÃ¡ll, kÃ©rjÃ¼k, tÃ¶ltse le a DWÃœgynÃ¶k legÃºjabb verziÃ³jÃ¡t, tÃ¶rÃ¶lje a \'{0}\' mappÃ¡t, Ã©s futtassa Ãºjra a DWÃœgynÃ¶kÃ¶t.',
    'runWithoutInstallationUpdating':u'ÃœgynÃ¶k frissÃ­tÃ©se...',
    'runWithoutInstallationWait':u'VÃ¡rjon a folyamatban lÃ©vÅ‘ Ãºj kapcsolatra (kÃ­sÃ©rlet {0})...',
    'selectPathInstall':u'VÃ¡lassza ki a telepÃ­tÃ©si Ãºtvonalat:',
    'skipCertValidation':u'FigyelmeztetÃ©s: A biztonsÃ¡gi tanÃºsÃ­tvÃ¡nyt nem lehet Ã©rvÃ©nyesÃ­teni. Ha folytatja, a kapcsolat lehet, hogy nem biztonsÃ¡gos.\nKÃ©rjÃ¼k, ellenÅ‘rizze a hÃ¡lÃ³zati vagy helyi router/tÅ±zfal/vÃ­rusÃ­rtÃ³ konfigurÃ¡ciÃ³jÃ¡t.\nMindenkÃ©ppen folytatja?',
    'startService':u'SzolgÃ¡ltatÃ¡s indÃ­tÃ¡sa...',
    'startServiceErr':u'Nem sikerÃ¼lt elindÃ­tani a szolgÃ¡ltatÃ¡st.',
    'termsAndConditions':u'FelhasznÃ¡lÃ¡si feltÃ©telek',
    'titleInstall':u'DWÃœgynÃ¶k - TelepÃ­tÃ©s',
    'titleUninstall':u'DWÃœgynÃ¶k - EltÃ¡volÃ­tÃ¡s',
    'toBack':u'visszalÃ©pni.',
    'toExit':u'kilÃ©pni.',
    'unattendedAccess':u'FelÃ¼gyelet nÃ©lkÃ¼li\nhozzÃ¡fÃ©rÃ©s',
    'unexpectedError':u'VÃ¡ratlan hiba.\n{0}',
    'uninstallMonitor':u'FigyelÅ‘ eltÃ¡volÃ­tÃ¡sa...',
    'uninstallService':u'SzolgÃ¡ltatÃ¡s eltÃ¡volÃ­tÃ¡sa...',
    'uninstallShortcuts':u'Parancsikonok eltÃ¡volÃ­tÃ¡sa...',
    'unknownUser':u'Ismeretlen felhasznÃ¡lÃ³',
    'user':u'FelhasznÃ¡lÃ³',
    'validInteger':u'A \'{0}\' mezÅ‘nek egÃ©sz szÃ¡mnak kell lennie.',
    'versionInstallNotValid':u'A telepÃ­tÅ‘nek ez a verziÃ³ja nem megfelelÅ‘ az Ã–n operÃ¡ciÃ³s rendszerÃ©hez.\nKÃ©rjÃ¼k, tÃ¶ltse le a megfelelÅ‘ verziÃ³t. {0}',
    'waiting':u'VÃ¡rakozÃ¡s...',
    'warningLoginLogout':u'A mÃ³dosÃ­tÃ¡s Ã©rvÃ©nybe lÃ©pÃ©sÃ©hez a felhasznÃ¡lÃ³nak ki kell jelentkeznie, majd Ãºjra be kell jelentkeznie.',
    'warningRemovePath':u'Figyelem: a cÃ©lmappa mÃ¡r lÃ©tezik, Ã©s tÃ¶rlÃ©sre kerÃ¼l.',
    'warningSpyingTool':u'FelhÃ­vjuk figyelmÃ©t, hogy a tÃ¡voli szÃ¡mÃ­tÃ³gÃ©phez nem fÃ©rhet hozzÃ¡ a felhasznÃ¡lÃ³ beleegyezÃ©se nÃ©lkÃ¼l. A DWService kÃ©mkedÃ©si eszkÃ¶zkÃ©nt valÃ³ hasznÃ¡latÃ¡val megsÃ©rtheti a lakÃ³helye szerinti orszÃ¡g tÃ¶rvÃ©nyeit.',
    'welcomeLicense':u'Licenc\nEz a szoftver ingyenes Ã©s nyÃ­lt forrÃ¡skÃ³dÃº.\nEgy fÅ‘ komponensbÅ‘l Ã¡ll, amelyet az MPLv2 licenc alatt adtak ki, Ã©s tÃ¶bb tovÃ¡bbi komponensbÅ‘l, amelyek kÃ¼lÃ¶nbÃ¶zÅ‘ licencek alÃ¡ tartoznak. TovÃ¡bbi informÃ¡ciÃ³Ã©rt lÃ¡togasson el a kÃ¶vetkezÅ‘ weboldalra: https://www.dwservice.net/en/licenses-sources.html',
    'welcomePrivacyTerms':u'A telepÃ­tÃ©s folytatÃ¡sÃ¡val vagy a szoftver futtatÃ¡sÃ¡val Ã–n elfogadja a kÃ¶vetkezÅ‘ket: #TERMSANDCONDITIONS Ã©s #PRIVACYPOLICY',
    'welcomeSecurity':u'BiztonsÃ¡g\nAz Ã–n adatainak vÃ©delme Ã©rdekÃ©ben az Ã¼gynÃ¶ktÅ‘l szÃ¡rmazÃ³ informÃ¡ciÃ³kat nem tÃ¡roljuk a szervereinken. A felhasznÃ¡lÃ³k, szervereink Ã©s az Ã¼gynÃ¶kÃ¶k kÃ¶zÃ¶tti kommunikÃ¡ciÃ³ titkosÃ­tott, Ã­gy harmadik felek nem fÃ©rhetnek hozzÃ¡.',
    'welcomeSoftwareUpdates':u'SzoftverfrissÃ­tÃ©sek\nEz a szoftver automatikusan frissÃ¼l',
    'welcomeTermsAndConditions':u'A \'{0}\' vagy a \'{1}\' lehetÅ‘sÃ©g kivÃ¡lasztÃ¡sÃ¡val elfogadom a #TERMSANDCONDITIONS-et.',
    'windowsAdminPrivileges':u'A DWÃœgynÃ¶k telepÃ­tÃ©sÃ©hez rendszergazdai jogosultsÃ¡gokkal kell rendelkeznie.\nKÃ©rjÃ¼k, a telepÃ­tÅ‘ indÃ­tÃ¡sÃ¡hoz kattintson a jobb gombbal a vÃ©grehajthatÃ³ fÃ¡jlra, Ã©s kattintson a "FuttatÃ¡s rendszergazdakÃ©nt" parancsra.',
    'yes':u'Igen'
}
                                                                                                                 ui/messages/pl.py                                                                                   0000644 0001750 0001750 00000030274 14630344551 013570  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

data={
    'accept':u'AkceptujÄ™',
    'accessConfirm':u'Chcesz uzyskaÄ‡ dostÄ™p do swojego urzÄ…dzenia.',
    'agentName':u'Nazwa agenta',
    'alreadyInstalled':u'DWAgent jest juÅ¼ zainstalowany.\n\nAgent automatycznie aktualizuje siÄ™ do najnowszej wersji. Znaczy to, Å¼e nie bÄ™dziesz musiaÅ‚ instalowaÄ‡ aktualizacji rÄ™cznie.',
    'back':u'Cofnij',
    'cancel':u'Anuluj',
    'cancelInstall':u'Instalacja zostaÅ‚a anulowana',
    'cancelUninstall':u'Dezinstalacja zostaÅ‚a anulowana',
    'checkInstallCode':u'Sprawdzanie kodu instalacji...',
    'chooseProxyType':u'Jakiego typu proxy chcesz uÅ¼yÄ‡?',
    'close':u'Zamknij',
    'code':u'Kod',
    'commands':u'Polecenia',
    'configureAgent':u'Konfiguruj agenta',
    'configureAgentDisabled':u'Agent wyÅ‚Ä…czony',
    'configureAgentEnabled':u'Agent wÅ‚Ä…czony',
    'configureChangeInstallKey':u'ZmieÅ„ kod instalacji',
    'configureChooseMonitorTrayIconVisibility':u'Czy wyÅ›wietlaÄ‡ ikonÄ™ w tray\'u',
    'configureChooseOperation':u'Wybierz operacjÄ™:',
    'configureDesktopNotification':u'Powiadomienia',
    'configureDesktopNotificationOK':u'Powiadomienia zostaÅ‚y skonfigurowane pomyÅ›lnie.',
    'configureDisableAgent':u'WyÅ‚Ä…cz agenta',
    'configureDisableAgentQuestion':u'Czy chcesz wyÅ‚Ä…czyÄ‡ agenta?',
    'configureEnableAgent':u'WÅ‚Ä…cz agenta',
    'configureEnableAgentQuestion':u'Czy chcesz wÅ‚Ä…czyÄ‡ agenta?',
    'configureEnd':u'Konfiguracja zostaÅ‚a zakoÅ„czona.',
    'configureErrorConnection':u'Problem z poÅ‚Ä…czeniem. ProszÄ™ sprawdziÄ‡ czy usÅ‚uga DWAgent jest uruchomiona.',
    'configureExit':u'WyjÅ›cie',
    'configureInsertPassword':u'ProszÄ™ podaÄ‡ hasÅ‚o konfiguracji:',
    'configureInstallAgent':u'Jak chcesz skonfigurowaÄ‡ agenta?',
    'configureInstallCode':u'Podaj kod instalacji',
    'configureInstallNewAgent':u'UtwÃ³rz nowego agenta',
    'configureInstallPassword':u'HasÅ‚o instalacji',
    'configureInstallUser':u'UÅ¼ytkownik',
    'configureInvalidPassword':u'ZÅ‚e hasÅ‚o.',
    'configureKeyInstalled':u'Klucz zainstalowany pomyÅ›lnie.',
    'configureLater':u'Skonfiguruj pÃ³Åºniej',
    'configureMonitor':u'Skonfiguruj monitor',
    'configurePassword':u'Skonfiguruj hasÅ‚o',
    'configurePasswordErrNoMatch':u'HasÅ‚a nie sÄ… takie same.',
    'configurePasswordUpdated':u'HasÅ‚o zaktualizowane.',
    'configureProxy':u'Skonfiguruj proxy',
    'configureProxyEnd':u'Proxy skonfigurowane prawidÅ‚owo.',
    'configureRemovePassword':u'UsuÅ„ hasÅ‚o.',
    'configureRemovePasswordQuestion':u'Czy chcesz usunÄ…Ä‡ hasÅ‚o?',
    'configureSetPassword':u'Ustaw hasÅ‚o',
    'configureTitle':u'DWAgent - konfiguracja',
    'configureTrayIconOK':u'WidocznoÅ›Ä‡ ikony w tray\'u - skonfigurowano pomyÅ›lnie.',
    'configureTrayIconVisibility':u'WidocznoÅ›Ä‡ ikony w tray\'u',
    'configureUninstallKeyQuestion':u'OdinstalowaÄ‡ obecny kod instalacyjny?',
    'configureUninstallationKey':u'Dezinstalacja...',
    'confirmExit':u'Czy jesteÅ› pewien, Å¼e chcesz wyjÅ›Ä‡?',
    'confirmInstall':u'Chcesz zainstalowaÄ‡ DWAgent w \'{0}\'?',
    'confirmUninstall':u'Czy chcesz usunÄ…Ä‡ DWAgent?',
    'copyFiles':u'Kopiowanie plikÃ³w...',
    'createNewAgent':u'Tworzenie agenta w toku...',
    'decline':u'Nie zgadzam siÄ™',
    'desktopNotificationAutoHide':u'Automatycznie ukryj',
    'desktopNotificationNone':u'Brak',
    'desktopNotificationVisible':u'Widoczne',
    'downloadFile':u'Pobieranie pliku {0}...',
    'endInstall':u'Instalacja zostaÅ‚a zakoÅ„czona.',
    'endInstallConfigLater':u'Instalacja zostaÅ‚a zakoÅ„czona.\nAgent nie zostaÅ‚ skonfigurowany. MoÅ¼esz skonfigurowaÄ‡ go pÃ³Åºniej.',
    'endUninstall':u'Odinstalowywanie zakoÅ„czyÅ‚o siÄ™.',
    'enter':u'wprowadÅº',
    'enterInstallCode':u'WprowadÅº kod instalacji',
    'enterInstallNewAgent':u'WprowadÅº dane, aby stworzyÄ‡ nowego agenta:',
    'enterRunCode':u'WprowadÅº kod poÅ‚Ä…czenia',
    'error':u'BÅ‚Ä…d',
    'errorAgentAlreadyExsists':u'Agent {0} juÅ¼ istnieje.',
    'errorAgentMax':u'Przekroczono maksymalnÄ… liczbÄ™ agentÃ³w.',
    'errorAgentNameNotValid':u'Nazwa agenta nie jest prawidÅ‚owa. Nie moÅ¼esz uÅ¼yÄ‡ znakÃ³w / \\ | # @ : .',
    'errorConnectionConfig':u'BÅ‚Ä…d poÅ‚Ä…czenia. ProszÄ™ sprawdziÄ‡ czy usÅ‚uga DWAgent jest uruchomiona.',
    'errorConnectionQuestion':u'BÅ‚Ä…d poÅ‚Ä…czenia. ProszÄ™ sprawdziÄ‡ poÅ‚Ä…czenie internetowe lub konfiguracjÄ™ zapory.\nCzy chcesz skonfigurowaÄ‡ proxy?',
    'errorInvalidCode':u'Wprowadzono bÅ‚Ä™dny kod.',
    'errorInvalidUserPassword':u'NieprawidÅ‚owy uÅ¼ytkownik lub hasÅ‚o.',
    'fieldRequired':u'Pole \'{0}\' jest wymagane.',
    'install':u'Zainstaluj',
    'installMonitor':u'Instalowanie monitora...',
    'installMonitorErr':u'Instalacja monitora nie powiodÅ‚a siÄ™.',
    'installService':u'Instalowanie usÅ‚ugi...',
    'installServiceErr':u'Instalacja usÅ‚ugi nie powiodÅ‚a siÄ™.',
    'installShortcuts':u'Instalacja skrÃ³tÃ³w...',
    'installShortcutsErr':u'Instalacja skrÃ³tÃ³w nie powiodÅ‚a siÄ™.',
    'installerNotSupported':u'Ten instalator nie jest juÅ¼ obsÅ‚ugiwany. Pobierz najnowszÄ… wersjÄ™.',
    'ipAddress':u'Adres IP: {0}',
    'linuxRootPrivileges':u'Potrzebujesz uprawnieÅ„ administratora, aby zainstalowaÄ‡ DWAgent.\nProszÄ™ rozpoczÄ…Ä‡ skrypt uÅ¼ywajÄ…c uÅ¼ytkownika administracyjnego.',
    'menuConfigure':u'Konfiguruj',
    'menuMonitor':u'Monitor',
    'menuUninstall':u'Odinstaluj',
    'missingInfoFile':u'Plik info.json nie znaleziony.',
    'missingNative':u'Nie znaleziono natywnej wersji.',
    'missingRuntime':u'Nie znaleziono pliku wykonywalnego.',
    'monitorActive':u'aktywny',
    'monitorAgentDisabled':u'Agent wyÅ‚Ä…czony.',
    'monitorAgentEnabled':u'Agent wÅ‚Ä…czony.',
    'monitorConfigure':u'Konfiguruj',
    'monitorConnections':u'PoÅ‚Ä…czenia',
    'monitorCurrentActivities':u'Obecne poÅ‚Ä…czenia',
    'monitorDisable':u'WyÅ‚Ä…cz',
    'monitorDisableAgentQuestion':u'Czy chcesz wyÅ‚Ä…czyÄ‡ agenta?',
    'monitorDownload':u'Pobieranie',
    'monitorEnable':u'WÅ‚Ä…cz',
    'monitorEnableAgentQuestion':u'Czy chcesz wÅ‚Ä…czyÄ‡ agenta?',
    'monitorEnterPassword':u'WprowadÅº hasÅ‚o:',
    'monitorErrorConnectionConfig':u'BÅ‚Ä…d poÅ‚Ä…czenia. ProszÄ™ sprawdziÄ‡ czy usÅ‚uga DWAgent jest uruchomiona.',
    'monitorHide':u'Ukryj',
    'monitorInvalidPassword':u'NieprawidÅ‚owe hasÅ‚o.',
    'monitorNoActivities':u'Brak aktywnoÅ›ci',
    'monitorScreenCapture':u'Przechwytywanie ekranu',
    'monitorSession':u'Sesja',
    'monitorShellSession':u'Terminal',
    'monitorShow':u'PokaÅ¼',
    'monitorStatus':u'Status',
    'monitorStatusDisabled':u'WyÅ‚Ä…czony',
    'monitorStatusNoService':u'Brak usÅ‚ugi',
    'monitorStatusOffline':u'WyÅ‚Ä…czony',
    'monitorStatusOnline':u'WÅ‚Ä…czony',
    'monitorStatusUpdating':u'Aktualizacja',
    'monitorTitle':u'DWAgent - Monitor',
    'monitorUninstall':u'Odinstaluj',
    'monitorUninstallNotRun':u'Nie moÅ¼esz odinstalowaÄ‡ bez praw administratora.\nUruchom komendÄ™ dwaguninstall w konsoli.',
    'monitorUpload':u'Wgrywanie',
    'mustAccept':u'Aby kontynuowaÄ‡, musisz wybraÄ‡ opcjÄ™ {0}',
    'mustSelectOptions':u'Musisz wybraÄ‡ opcjÄ™.',
    'next':u'Dalej',
    'no':u'Nie',
    'noTryAgain':u'Nie, sprÃ³buj ponownie',
    'notInstalled':u'DWAgent nie zainstalowany.',
    'ok':u'Ok',
    'option':u'Opcja',
    'optionNotValid':u'Wybrana opcja jest nieprawidÅ‚owa.',
    'or':u'lub',
    'password':u'HasÅ‚o',
    'path':u'ÅšcieÅ¼ka',
    'pathCreating':u'Tworzenie folderu...',
    'pathNotCreate':u'Nie moÅ¼na stworzyÄ‡ folderu. NieprawidÅ‚owa Å›cieÅ¼ka, lub odmowa dostÄ™pu.',
    'pressEnter':u'WciÅ›nij enter, aby kontynuowaÄ‡.',
    'privacyPolicy':u'Polityka prywatnoÅ›ci',
    'proxyAuthPassword':u'HasÅ‚o',
    'proxyAuthUser':u'UÅ¼ytkownik',
    'proxyHost':u'Host',
    'proxyHttp':u'Http',
    'proxyInfo':u'WprowadÅº dane proxy.',
    'proxyNone':u'Brak',
    'proxyPort':u'Port',
    'proxySocks4':u'Socks4',
    'proxySocks4a':u'Socks4a',
    'proxySocks5':u'Socks5',
    'proxySystem':u'Systemowe',
    'reEnterCode':u'WprowadÅº kod ponownie',
    'reEnterData':u'WprowadÅº dane ponownie',
    'rePassword':u'PowtÃ³rz hasÅ‚o',
    'reject':u'Odrzucony',
    'removeFile':u'Usuwanie pliku...',
    'runWithoutInstallation':u'Uruchom',
    'runWithoutInstallationClosing':u'Zamykanie sesji...',
    'runWithoutInstallationConnecting':u'Otwieranie sesji...',
    'runWithoutInstallationEnd':u'Sesja zakoÅ„czona.',
    'runWithoutInstallationOnlineBottom':u'UWAGA:\nNie ujawniaj tych informacji ludziom, ktÃ³rym nie ufasz, ani nie pozwalaj na dostÄ™p w Å¼aden inny sposÃ³b. JeÅ›li nie wiesz co robisz, proszÄ™ zamknij tÄ… aplikacjÄ™.',
    'runWithoutInstallationOnlineBottomPutCode':u'UWAGA:\nAgent jest teraz gotowy do przyjmowania poÅ‚Ä…czeÅ„. JeÅ›li nie jesteÅ› pewien co robisz, zamknij ten program.',
    'runWithoutInstallationOnlinePassword':u'HasÅ‚o: {0}',
    'runWithoutInstallationOnlineTop':u'Sesja jest aktywna.\nAby poÅ‚Ä…czyÄ‡ siÄ™ z tym agentem odwiedÅº https://www.dwservice.net',
    'runWithoutInstallationOnlineTopPutCode':u'Sesja jest aktywna.',
    'runWithoutInstallationOnlineUser':u'UÅ¼ytkownik: {0}',
    'runWithoutInstallationStarting':u'Uruchamianie agenta...',
    'runWithoutInstallationUnexpectedError':u'Niespodziewany bÅ‚Ä…d.\nNie udaÅ‚o siÄ™ uruchomiÄ‡ DWAgent. JeÅ›li problem bÄ™dzie dalej wystÄ™powaÄ‡, sprÃ³buj pobraÄ‡ najnowszÄ… wersjÄ™ DWAgent, usuÅ„ folder \'{0}\' i uruchom DWAgent ponownie.',
    'runWithoutInstallationUpdating':u'Aktualizacja agenta...',
    'runWithoutInstallationWait':u'Oczekiwanie na nowe poÅ‚Ä…czenie (prÃ³ba {0})...',
    'selectPathInstall':u'Wybierz folder instalacji:',
    'skipCertValidation':u'OstrzeÅ¼enie: Certyfikat bezpieczeÅ„stwa nie moÅ¼e byÄ‡ zatwierdzony, jeÅ›li bÄ™dziesz kontynuowaÄ‡ poÅ‚Ä…czenie moÅ¼e nie byÄ‡ bezpieczne.\nProszÄ™ sprawdziÄ‡ konfiguracjÄ™ sieciowÄ… lub lokalnÄ… routera/firewalla/antywirusa.\nKontynuowaÄ‡ mimo wszystko?',
    'startService':u'Uruchamianie usÅ‚ugi...',
    'startServiceErr':u'Uruchamianie usÅ‚ugi nie powiodÅ‚o siÄ™.',
    'termsAndConditions':u'Warunki UÅ¼ytkowania',
    'titleInstall':u'DWAgent - Instalacja',
    'titleUninstall':u'DWAgent - Deinstalacja',
    'toBack':u'aby wrÃ³ciÄ‡.',
    'toExit':u'aby wyjÅ›Ä‡.',
    'unattendedAccess':u'DostÄ™p\nbez nadzoru',
    'unexpectedError':u'Niespodziewany bÅ‚Ä…d.\n{0}',
    'uninstallMonitor':u'Odinstalowywanie monitora...',
    'uninstallService':u'Odinstalowywanie usÅ‚ugi...',
    'uninstallShortcuts':u'Odinstalowywanie skrÃ³tÃ³w...',
    'unknownUser':u'UÅ¼ytkownik nieznany',
    'user':u'UÅ¼ytkownik',
    'validInteger':u'Pole \'{0}\' musi byÄ‡ liczbÄ… caÅ‚kowitÄ….',
    'versionInstallNotValid':u'Wersja instalatora nie jest prawidÅ‚owa dla Twojego systemu operacyjnego.\nProszÄ™ pobraÄ‡ prawidÅ‚owÄ… wersjÄ™. {0}',
    'waiting':u'Czekam...',
    'warningLoginLogout':u'Aby zmiany weszÅ‚y w Å¼ycie, musisz wylogowaÄ‡ siÄ™ i zalogowaÄ‡ ponownie.',
    'warningRemovePath':u'OstrzeÅ¼enie. JeÅ›li folder docelowy istnieje, zostanie usuniÄ™ty.',
    'warningSpyingTool':u'Nie Å‚Ä…cz siÄ™ z komputerem bez pozwolenia jego uÅ¼ytkownika. JeÅ›li uÅ¼ywasz DWService jako programu szpiegowskiego, moÅ¼esz Å‚amaÄ‡ prawo swojego kraju.',
    'welcomeLicense':u'Licencja\nTo jest wolne i otwarte oprogramowanie.\nSkÅ‚ada siÄ™ z jednego gÅ‚Ã³wnego komponentu i kilku dodatkowych, ktÃ³re mogÄ… wykorzystywaÄ‡ inne licencje. Aby dowiedzieÄ‡ siÄ™ wiÄ™cej, odwiedÅº: https://www.dwservice.net/pl/licenses-sources.html',
    'welcomePrivacyTerms':u'#TERMSANDCONDITIONSLINK, #PRIVACYPOLICYLINK - InstalujÄ…c program wyraÅ¼asz na nie zgodÄ™.',
    'welcomeSecurity':u'BezpieczeÅ„stwo\nAby chroniÄ‡ TwojÄ… prywatnoÅ›Ä‡, gwarantujemy, Å¼e Å¼adne informacje nie bÄ™dÄ… gromadzone na naszych serwerach, a komunikacja jest szyfrowana, aby osoby trzecie nie mogÅ‚y jej odczytaÄ‡.',
    'welcomeSoftwareUpdates':u'Aktualizacje oprogramowania\nOprogramowanie aktualizuje siÄ™ automatycznie.',
    'welcomeTermsAndConditions':u'WybierajÄ…c opcjÄ™ \'{0}\' lub \'{1}\' akceptujÄ™ #TERMSANDCONDITIONS',
    'windowsAdminPrivileges':u'Musisz mieÄ‡ uprawnienia administratora, aby zainstalowaÄ‡ DWAgent.\nProszÄ™ uruchomiÄ‡ plik wykonywalny z opcjÄ… \'uruchom jako administrator\'.',
    'yes':u'Tak'
}
                                                                                                                                                                                                                                                                                                                                    ui/configure.py                                                                                     0000644 0001750 0001750 00000070521 15017535532 013327  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

try:
    from . import messages
except: #FIX INSTALLER
    import messages
try:
    from . import images
except: #FIX INSTALLER
    import images
try:
    from . import gdi
except: #FIX INSTALLER
    import gdi 
try:
    from . import ui
except: #FIX INSTALLER
    import ui
import sys
import listener
import utils
import json

class Configure:
    
    def __init__(self):
        #self._config_port = 7950
        #self._path_config='config.json'
        self._ipc_client=None
        self._install_code=ui.VarString()
        self._proxy_type=ui.VarString("SYSTEM")
        self._proxy_host=ui.VarString("")
        self._proxy_port=ui.VarString("")
        self._proxy_user=ui.VarString("")
        self._proxy_password=ui.VarString("", True)
        self._password=""
        self._main_menu_sel=ui.VarString("configureAgent")
        self._agent_menu_sel=ui.VarString("configureChangeInstallKey")
        self._password_menu_sel=ui.VarString("configureSetPassword")
        self._name=None
        self._config_base_path=None
    
    def _set_config_base_path(self, pth):
        self._config_base_path=pth
    
    def _get_message(self, key):
        smsg = messages.get_message(key)
        if self._name is not None:
            return smsg.replace(u"DWAgent",self._name)
        else:
            return smsg
    
    def send_req(self, req, prms=None):
        try:
            if self._ipc_client==None or self._ipc_client.is_close():
                self._ipc_client=listener.IPCClient(path=self._config_base_path)
            return self._ipc_client.send_request("admin", self._password, req, prms);
        except: 
            return 'ERROR:REQUEST_TIMEOUT'
    
    def close_req(self):
        if self._ipc_client!=None and not self._ipc_client.is_close():
            self._ipc_client.close()
            
    def check_auth(self):
        sret=self.send_req("check_auth", None)
        if sret=="OK":
            return True
        elif sret=="ERROR:FORBIDDEN":
            return False
        else:
            raise Exception(sret[6:])
    
    def get_config(self, key):
        sret=self.send_req("get_config", {'key':key})
        if sret[0:2]=="OK":
            return sret[3:]
        else:
            raise Exception(sret[6:])
        return sret     
    
    def set_config(self, key, val):
        sret=self.send_req("set_config", {'key':key, 'value':val})
        if sret!="OK":
            raise Exception(sret[6:])
            
    def uninstall_key(self):
        sret=self.send_req("remove_key", None)
        if sret!="OK":
            raise Exception(sret[6:])
        return sret  
    
    def install_key(self, code):
        sret=self.send_req("install_key", {'code':code})
        if sret!="OK":
            raise Exception(sret[6:])
        return sret  
    
    def change_config_pwd(self, pwd):
        if pwd!="":
            sret=self.send_req("change_config_pwd", {'password':self._change_config_pwd.get()})
        else:
            sret=self.send_req("change_config_pwd", {'nopassword':'true'})
        if sret!="OK":
            raise Exception(sret[6:])
        return sret
    
    def change_session_pwd(self, pwd):
        if pwd!="":
            sret=self.send_req("change_session_pwd", {'password':self._change_session_pwd.get()})
        else:
            sret=self.send_req("change_session_pwd", {'nopassword':'true'})
        if sret!="OK":
            raise Exception(sret[6:])
        return sret  
    
    def is_agent_enable(self):
        s = self.get_config("enabled")
        return s=="True"
    
    def read_proxy_info(self):
        pt = self.get_config("proxy_type")
        self._proxy_type.set(pt)
        if self._proxy_type.get()=='HTTP' or self._proxy_type.get()=='SOCKS4' or self._proxy_type.get()=='SOCKS4A' or self._proxy_type.get()=='SOCKS5':
            self._proxy_host.set(self.get_config("proxy_host"))
            self._proxy_port.set(self.get_config("proxy_port"))
            self._proxy_user.set(self.get_config("proxy_user"))
    
    def start(self, bgui=True):        
        confjson={}
        try:
            f = utils.file_open('config.json')
            confjson = json.loads(f.read())
            f.close()
        except Exception:
            None
        prmsui={}
        if "name" in confjson:
            self._name=utils.str_new(confjson["name"])            
        prmsui["title"]=self._get_message('configureTitle')
        if "topinfo" in confjson:
            prmsui["topinfo"]=confjson["topinfo"]
        if "topimage" in confjson:
            prmsui["topimage"]=u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep + confjson["topimage"]
        applg = gdi._get_logo_from_conf(confjson, u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep)
        if applg != "":
            prmsui["logo"]=applg
        if "leftcolor" in confjson:
            prmsui["leftcolor"]=confjson["leftcolor"]
        self._uinterface = ui.UI(prmsui, self.step_init)
        self._uinterface.start(bgui)
        self.close_req();
            

    def step_init(self, curui):
        '''
        try:
            msg = ui.Message(self._get_message('configureWelcome'))
            msg.next_step(self.step_check_password)
        except Exception as e:
            msg = ui.Message(utils.exception_to_string(e))
        return msg
        '''
        return self.step_check_password(curui);
    
    def step_check_password(self, curui):
        try:
            if curui.get_key() is not None and curui.get_key()=='insert_password':
                self._password=self._ins_pwd.get()
            if not self.check_auth():
                if curui.get_key() is not None and curui.get_key()=='insert_password':
                    return ui.ErrorDialog(self._get_message('configureInvalidPassword'))
                return self.step_password(curui)
            else:
                return self.step_menu_main(curui)
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
    
    def step_password(self, curui):
        self._ins_pwd=ui.VarString("", True)
        ipt = ui.Inputs()
        ipt.set_key("insert_password")
        ipt.set_message(self._get_message('configureInsertPassword'))
        ipt.add('password', self._get_message('password'), self._ins_pwd,  True)
        ipt.next_step(self.step_check_password)
        return ipt
    
    def step_menu_main(self, curui):
        try:
            self.read_proxy_info()
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureChooseOperation'))
        chs.add("configureAgent", self._get_message('configureAgent'))
        chs.add("configureProxy", self._get_message('configureProxy'))
        chs.add("configureMonitor", self._get_message('configureMonitor'))        #
        #chs.add("configureExit", self._get_message('configureExit'))
        chs.set_variable(self._main_menu_sel)
        chs.next_step(self.step_menu_main_selected)
        return chs

    def step_menu_main_selected(self, curui):
        if curui.get_variable().get()=="configureAgent":
            return self.step_menu_agent(curui)
        elif curui.get_variable().get()=="configureProxy":
            curui.set_key("menuProxy")
            return self.step_configure_proxy_type(curui)
        elif curui.get_variable().get()=="configureMonitor":
            return self.step_menu_monitor(curui)
        elif curui.get_variable().get()=="configureExit":
            return ui.Message(self._get_message('configureEnd'))
    
    def step_menu_agent(self, curui):
        try:
            self._install_code.set("")
            key = self.get_config("key")
            if key == "":
                return self.step_menu_agent_install_key_selected(curui)
            else:
                chs = ui.Chooser()
                chs.set_message(self._get_message('configureChooseOperation'))
                chs.add("configureChangeInstallKey", self._get_message('configureChangeInstallKey'))
                chs.add("configurePassword", self._get_message('configurePassword'))
                if self.is_agent_enable():
                    chs.add("configureDisableAgent", self._get_message('configureDisableAgent'))
                else:
                    chs.add("configureEnableAgent", self._get_message('configureEnableAgent'))
                chs.set_variable(self._agent_menu_sel)
                chs.prev_step(self.step_menu_main)
                chs.next_step(self.step_menu_agent_selected)
                return chs
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
            
    
    def step_menu_agent_selected(self, curui):
        if curui.get_variable().get()=="configureChangeInstallKey":
            return self.step_menu_agent_install_key(curui)
        elif curui.get_variable().get()=="configurePassword":
                return self.step_menu_agent_password(curui)
        elif curui.get_variable().get()=="configureEnableAgent":
            return self.step_menu_agent_enable(curui)
        elif curui.get_variable().get()=="configureDisableAgent":
            return self.step_menu_agent_disable(curui)
    
    
    def step_menu_agent_password(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureChooseOperation'))
        chs.add("configureSetPassword", self._get_message('configureSetPassword'))
        chs.add("configureRemovePassword", self._get_message('configureRemovePassword'))
        chs.set_variable(self._password_menu_sel)
        chs.prev_step(self.step_menu_agent)
        chs.next_step(self.step_config_agent_password)
        return chs

    def step_config_agent_password(self, curui):
        if curui.get_variable().get()=='configureSetPassword':
            self._change_session_pwd=ui.VarString("", True)
            self._change_resession_pwd=ui.VarString("", True)
            ipt = ui.Inputs()
            ipt.set_key("set_password")
            ipt.set_message(self._get_message('configurePassword'))
            ipt.add('password', self._get_message('password'), self._change_session_pwd,  True)
            ipt.add('rePassword', self._get_message('rePassword'), self._change_resession_pwd,  True)
            ipt.prev_step(self.step_menu_agent_password)
            ipt.next_step(self.step_config_agent_password_procede)
            return ipt
        elif curui.get_variable().get()=='configureRemovePassword':
            chs = ui.Chooser()
            chs.set_key("remove_password")
            chs.set_message(self._get_message('configureRemovePasswordQuestion'))
            chs.add("yes", self._get_message('yes'))
            chs.add("no", self._get_message('no'))
            chs.set_variable(ui.VarString("no"))
            chs.set_accept_key("yes")
            chs.prev_step(self.step_menu_agent_password)
            chs.next_step(self.step_config_agent_password_procede)
            return chs
    
    def step_config_agent_password_procede(self, curui):
        if curui.get_key() is not None and curui.get_key()=='set_password':
            if self._change_session_pwd.get()==self._change_resession_pwd.get():
                try:
                    self.change_session_pwd(self._change_session_pwd.get())
                    self._password=self._change_session_pwd.get()
                    msg = ui.Message(self._get_message('configurePasswordUpdated'))
                    msg.next_step(self.step_menu_main)
                    return msg
                except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
            else:
                return ui.ErrorDialog(self._get_message('configurePasswordErrNoMatch'))
        elif curui.get_key() is not None and curui.get_key()=='remove_password':
            if curui.get_variable().get()=='yes':
                try:
                    self.change_session_pwd("")
                    self._password=""
                    msg = ui.Message(self._get_message('configurePasswordUpdated'))
                    msg.next_step(self.step_menu_main)
                    return msg
                except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
    
    def step_menu_agent_install_key(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureUninstallKeyQuestion'))
        chs.add("yes", self._get_message('yes'))
        chs.add("no", self._get_message('no'))
        chs.set_variable(ui.VarString("no"))
        chs.set_accept_key("yes")
        chs.prev_step(self.step_menu_agent)
        chs.next_step(self.step_menu_agent_remove_key_selected)
        return chs
    
    def step_menu_agent_remove_key_selected(self, curui):
        if curui.get_variable().get()=='yes':
            try:
                self._uinterface.wait_message(self._get_message('configureUninstallationKey'),  0)
                self.uninstall_key()
            except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
            return self.step_menu_agent_install_key_selected(curui)
        else:
            return self.step_menu_agent(curui)
    
    def step_menu_agent_install_key_selected(self, curui):
        ipt = ui.Inputs()
        ipt.set_message(self._get_message('enterInstallCode'))
        ipt.add('code', self._get_message('code'), self._install_code, True)
        ipt.prev_step(self.step_menu_agent)
        ipt.next_step(self.step_check_install_code)
        return ipt
    
    def step_check_install_code(self, curui):
        if curui.get_key() is not None and curui.get_key()=='tryAgain':
            if curui.get_variable().get()=='configureLater':
                return self.step_menu_main(curui)
            elif curui.get_variable().get()=='configProxy':
                curui.set_key("installCode")
                return self.step_configure_proxy_type(curui)
            elif curui.get_variable().get()=='reEnterCode':
                return self.step_menu_agent_install_key_selected(curui)
        msg=self._get_message('checkInstallCode')
        self._uinterface.wait_message(msg)
        key = self._install_code.get()
        try:
            self.install_key(key)
            msg = ui.Message(self._get_message('configureKeyInstalled'))
            msg.next_step(self.step_menu_main)
            return msg
        except Exception as e:
            s = utils.exception_to_string(e)
            if s=="INVALID_CODE":
                chs = ui.Chooser()
                chs.set_key("tryAgain")
                chs.set_message(self._get_message('errorInvalidCode'))
                chs.add("reEnterCode", self._get_message('reEnterCode'))
                chs.add("configureLater", self._get_message('configureLater'))
                chs.set_variable(ui.VarString("reEnterCode"))
                chs.prev_step(self.step_menu_agent_install_key_selected)
                chs.next_step(self.step_check_install_code)
                return chs
            elif s=="CONNECT_ERROR":
                chs = ui.Chooser()
                chs.set_key("tryAgain")
                chs.set_message(self._get_message('errorConnectionQuestion'))
                chs.add("configProxy", self._get_message('yes'))
                chs.add("noTryAgain", self._get_message('noTryAgain'))
                chs.add("configureLater", self._get_message('configureLater'))
                chs.set_variable(ui.VarString("noTryAgain"))
                chs.prev_step(self.step_menu_agent_install_key_selected)
                chs.next_step(self.step_check_install_code)
                return chs
            elif s=="REQUEST_TIMEOUT":
                return ui.ErrorDialog(self._get_message('configureErrorConnection'))
            else:
                return ui.ErrorDialog(s) 
    
    def step_configure_proxy_type(self, curui):
        chs = ui.Chooser()
        chs.set_key(curui.get_key())
        chs.set_message(self._get_message('chooseProxyType'))
        chs.add("SYSTEM", self._get_message('proxySystem'))
        chs.add("HTTP", self._get_message('proxyHttp'))
        chs.add("SOCKS4", self._get_message('proxySocks4'))
        chs.add("SOCKS4A", self._get_message('proxySocks4a'))
        chs.add("SOCKS5", self._get_message('proxySocks5'))
        chs.add("NONE", self._get_message('proxyNone'))
        chs.set_variable(self._proxy_type)
        
        if curui.get_key()=="menuProxy":
            chs.prev_step(self.step_menu_main)
        elif curui.get_key()=="installCode":
            chs.prev_step(self.step_menu_agent_install_key_selected)
        
        chs.next_step(self.step_configure_proxy_info)
        return chs
    
    def step_configure_proxy_info(self, curui):
        if curui.get_variable().get()=='HTTP' or curui.get_variable().get()=='SOCKS4' or curui.get_variable().get()=='SOCKS4A' or curui.get_variable().get()=='SOCKS5':
            ipt = ui.Inputs()
            ipt.set_key(curui.get_key())
            ipt.set_message(self._get_message('proxyInfo'))
            ipt.add('proxyHost', self._get_message('proxyHost'), self._proxy_host,  True)
            ipt.add('proxyPort', self._get_message('proxyPort'), self._proxy_port,  True)
            ipt.add('proxyAuthUser', self._get_message('proxyAuthUser'), self._proxy_user,  False)
            ipt.add('proxyAuthPassword', self._get_message('proxyAuthPassword'), self._proxy_password,  False)
            ipt.prev_step(self.step_configure_proxy_type)
            ipt.next_step(self.step_configure_proxy_set)
            return ipt
        else:
            self._proxy_host.set("")
            self._proxy_port.set("")
            self._proxy_user.set("")
            self._proxy_password.set("")
            return self.step_configure_proxy_set(curui)
    
    
    def step_configure_proxy_set(self, curui):
        ar = curui.get_key().split('_')
        curui.set_key(ar[0]) 
        if len(ar)==2 and ar[1]=='tryAgain':
            if curui.get_variable() is not None and curui.get_variable().get()=='configureLater':
                if curui.get_key()=="menuProxy":
                    return self.step_menu_main(curui)
                elif curui.get_key()=="installCode":
                    return self.step_menu_agent_install_key_selected(curui)
        try:
            if self._proxy_type.get()=='HTTP' or self._proxy_type.get()=='SOCKS4' or self._proxy_type.get()=='SOCKS4A' or self._proxy_type.get()=='SOCKS5':
                try:
                    int(self._proxy_port.get())
                except:
                    return ui.ErrorDialog(self._get_message("validInteger") .format(self._get_message('proxyPort')))
            sret=self.send_req("set_proxy",  {'type': self._proxy_type.get(), 
                                                       'host':  self._proxy_host.get(), 
                                                       'port': self._proxy_port.get(), 
                                                       'user': self._proxy_user.get(), 
                                                       'password': self._proxy_password.get()})
            if sret!="OK":
                raise Exception(sret[6:])
        except:
            chs = ui.Chooser()
            chs.set_key(curui.get_key() + "_tryAgain")
            chs.set_message(self._get_message('errorConnectionConfig'))
            chs.add("noTryAgain", self._get_message('noTryAgain'))
            chs.add("configureLater", self._get_message('configureLater'))
            chs.set_variable(ui.VarString("noTryAgain"))
            if curui.get_key()=="menuProxy":
                chs.prev_step(self.step_menu_main)
            elif curui.get_key()=="installCode":
                chs.prev_step(self.step_menu_agent_install_key_selected)
            chs.next_step(self.step_configure_proxy_set)
            return chs
        if curui.get_key()=="menuProxy":
            msg = ui.Message(self._get_message('configureProxyEnd'))
            msg.next_step(self.step_menu_main)
            return msg
        elif curui.get_key()=="installCode":
            return self.step_check_install_code(curui)
        
    
    def step_menu_agent_enable(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureEnableAgentQuestion'))
        chs.add("yes", self._get_message('yes'))
        chs.add("no", self._get_message('no'))
        chs.set_variable(ui.VarString("no"))
        chs.set_accept_key("yes")
        chs.prev_step(self.step_menu_agent)
        chs.next_step(self.step_menu_agent_enable_procede)
        return chs
    
    def step_menu_agent_disable(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureDisableAgentQuestion'))
        chs.add("yes", self._get_message('yes'))
        chs.add("no", self._get_message('no'))
        chs.set_variable(ui.VarString("no"))
        chs.set_accept_key("yes")
        chs.prev_step(self.step_menu_agent)
        chs.next_step(self.step_menu_agent_disable_procede)
        return chs
        
    def step_menu_agent_enable_procede(self, curui):
        if curui.get_variable().get()=='yes':
            try:
                self.set_config("enabled", "True")
                msg = ui.Message(self._get_message('configureAgentEnabled'))
                msg.next_step(self.step_menu_main)
                return msg
            except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
        else:
            return self.step_menu_agent(curui)
    
    def step_menu_agent_disable_procede(self, curui):
        if curui.get_variable().get()=='yes':
            try:
                self.set_config("enabled", "False")
                msg = ui.Message(self._get_message('configureAgentDisabled'))
                msg.next_step(self.step_menu_main)
                return msg
            except:
                return ui.ErrorDialog(self._get_message('configureErrorConnection'))
        else:
            return self.step_menu_agent(curui)
    
    def step_menu_monitor(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureChooseOperation'))
        chs.add("configurePassword", self._get_message('configurePassword'))
        chs.add("configureDesktopNotification", self._get_message('configureDesktopNotification'))
        #chs.add("configureTrayIconVisibility", self._get_message('configureTrayIconVisibility'))
        chs.set_variable(ui.VarString("configurePassword"))
        chs.prev_step(self.step_menu_main)        
        chs.next_step(self.step_menu_monitor_selected)
        return chs
    
    def step_menu_monitor_selected(self, curui):
        try:
            if curui.get_variable().get()=="configurePassword":
                return self.step_menu_monitor_password(curui)
            elif curui.get_variable().get()=="configureDesktopNotification":
                return self.step_menu_monitor_desktop_notification(curui)
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
       
    def step_menu_monitor_desktop_notification(self, curui):
        try:
            chs = ui.Chooser()
            chs.set_message(self._get_message('configureDesktopNotification') + "\n\n" + self._get_message('warningSpyingTool'))
            chs.add("visible", self._get_message('desktopNotificationVisible'))
            chs.add("autohide", self._get_message('desktopNotificationAutoHide'))
            chs.add("none", self._get_message('desktopNotificationNone'))
               
            appv = self.get_config("monitor_desktop_notification")                     
            if appv=="autohide":
                chs.set_variable(ui.VarString("autohide"))
            elif appv=="none":
                chs.set_variable(ui.VarString("none"))
            else:
                chs.set_variable(ui.VarString("visible"))
            
            chs.prev_step(self.step_menu_monitor)
            chs.next_step(self.step_menu_monitor_desktop_notification_procede)
            return chs
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
    
    def step_menu_monitor_desktop_notification_procede(self, curui):
        try:
            self.set_config("monitor_desktop_notification", curui.get_variable().get())
            msg = ui.Message(self._get_message('configureDesktopNotificationOK') + "\n\n" + self._get_message('warningLoginLogout'))
            msg.next_step(self.step_menu_main)
            return msg
        except:
            return ui.ErrorDialog(self._get_message('configureErrorConnection'))
        
    def step_menu_monitor_password(self, curui):
        chs = ui.Chooser()
        chs.set_message(self._get_message('configureChooseOperation'))
        chs.add("configureSetPassword", self._get_message('configureSetPassword'))
        chs.add("configureRemovePassword", self._get_message('configureRemovePassword'))
        chs.set_variable(self._password_menu_sel)
        chs.prev_step(self.step_menu_monitor)
        chs.next_step(self.step_config_monitor_password)
        return chs

    def step_config_monitor_password(self, curui):
        if curui.get_variable().get()=='configureSetPassword':
            self._change_config_pwd=ui.VarString("", True)
            self._change_reconfig_pwd=ui.VarString("", True)
            ipt = ui.Inputs()
            ipt.set_key("set_password")
            ipt.set_message(self._get_message('configurePassword'))
            ipt.add('password', self._get_message('password'), self._change_config_pwd,  True)
            ipt.add('rePassword', self._get_message('rePassword'), self._change_reconfig_pwd,  True)
            ipt.prev_step(self.step_menu_monitor_password)
            ipt.next_step(self.step_config_monitor_password_procede)
            return ipt
        elif curui.get_variable().get()=='configureRemovePassword':
            chs = ui.Chooser()
            chs.set_key("remove_password")
            chs.set_message(self._get_message('configureRemovePasswordQuestion'))
            chs.add("yes", self._get_message('yes'))
            chs.add("no", self._get_message('no'))
            chs.set_variable(ui.VarString("no"))
            chs.set_accept_key("yes")
            chs.prev_step(self.step_menu_monitor_password)
            chs.next_step(self.step_config_monitor_password_procede)
            return chs
    
    def step_config_monitor_password_procede(self, curui):
        if curui.get_key() is not None and curui.get_key()=='set_password':
            if self._change_config_pwd.get()==self._change_reconfig_pwd.get():
                try:
                    self.change_config_pwd(self._change_config_pwd.get())
                    self._password=self._change_config_pwd.get()
                    msg = ui.Message(self._get_message('configurePasswordUpdated'))
                    msg.next_step(self.step_menu_main)
                    return msg
                except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
            else:
                return ui.ErrorDialog(self._get_message('configurePasswordErrNoMatch'))
        elif curui.get_key() is not None and curui.get_key()=='remove_password':
            if curui.get_variable().get()=='yes':
                try:
                    self.change_config_pwd("")
                    self._password=""
                    msg = ui.Message(self._get_message('configurePasswordUpdated'))
                    msg.next_step(self.step_menu_main)
                    return msg
                except:
                    return ui.ErrorDialog(self._get_message('configureErrorConnection'))
                
def fmain(args): #SERVE PER MACOS APP
    bgui=True
    for arg in args: 
        if arg.lower() == "-console":
            bgui=False
    i = Configure()
    i.start(bgui)

if __name__ == "__main__":
    fmain(sys.argv)
    
                                                                                                                                                                               ui/monitor.py                                                                                       0000755 0001750 0001750 00000166772 15045135467 013062  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
try:
    from . import messages
except: #FIX INSTALLER
    import messages
try:
    from . import images
except: #FIX INSTALLER
    import images
try:
    from . import gdi
except: #FIX INSTALLER
    import gdi 
import utils
import json
import sys
import subprocess
import threading
import listener
import time
import os

_WIDTH=550
_HEIGHT=300

_WIDTH_RIGHT=140
_CONTENT_WIDTH=_WIDTH-_WIDTH_RIGHT
_HEIGHT_STATUS_BAR=28
_HEIGHT_STATUS=60

MENU_SHOW = 1
MENU_HIDE = 2
MENU_ENABLE = 11
MENU_DISABLE = 12
MENU_CONFIGURE = 21

COLOR_NOSERVICE="949494"
COLOR_ONLINE="259126"
COLOR_ONLINE_DISABLE="e08803"
COLOR_OFFLINE="949494"
COLOR_UPDATING="bfba34"
COLOR_DISABLE="c21b1a"

TIMEOUT_REQ=5

def is_windows():
    return utils.is_windows()

def is_linux():
    return utils.is_linux()

def is_mac():
    return utils.is_mac()

def get_user_dir():
    try:
        import ctypes
        buf = ctypes.create_unicode_buffer(1024)
        ctypes.windll.shell32.SHGetFolderPathW(None, 40, None, 0, buf) #40 = CSIDL_PROFILE
        return buf.value
    except:
        return utils.path_expanduser("~")


class NotifyActivitiesHideEffect():
    def __init__(self, dlg):
        self._dlg = dlg
        self._cancel=False
        self._first=True
    
    def run(self):
        if self._cancel:
            return            
        if self._first:
            self._first=False
            gdi.add_scheduler(4, self.run)
        else:
            cx = self._dlg.get_x()+2
            self._dlg.set_position(cx,self._dlg.get_y())
            ar = gdi.get_screen_size()
            if cx>=ar["width"]:
                self._dlg.hide()
            else:            
                gdi.add_scheduler(0.05, self.run)

    def cancel(self):
        self._cancel=True

class NotifyAcceptSession():
    
    def __init__(self, prt):
        self._parent=prt
        self._rtl=self._parent._rtl
        self._curitm=None
        self._dlg = gdi.Window(gdi.WINDOW_TYPE_POPUP,isrtl=self._rtl)
        self._dlg.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN);
        self._dlg_brdsz=1        
        self._dlg_w=340
        self._dlg_h=168
        self._dlg.set_background("a0a0a0")
        gapbtn=20
        wbtn=(self._dlg_w-((gapbtn*2)+6))/2
        hbtn=36
        
        self._pnl = gdi.Panel()
        self._pnl.set_position(self._dlg_brdsz, self._dlg_brdsz)        
        self._pnl.set_size(self._dlg_w-(2*self._dlg_brdsz), self._dlg_h-(2*self._dlg_brdsz))
        self._pnl.set_background("f2f2f2")
        self._dlg.add_component(self._pnl)
        
        self._btn_accept = gdi.Button()
        self._btn_accept.set_text(messages.get_message("accept"))
        if self._rtl:
            self._btn_accept.set_position(gapbtn+wbtn+6, self._dlg_h-hbtn-12)
        else:
            self._btn_accept.set_position(gapbtn, self._dlg_h-hbtn-12)
        self._btn_accept.set_size(wbtn, hbtn)
        self._btn_accept.set_action(self._on_accept)
        self._pnl.add_component(self._btn_accept)
        
        self._btn_reject = gdi.Button()
        self._btn_reject.set_text(messages.get_message("reject"))
        if self._rtl:
            self._btn_reject.set_position(gapbtn, self._dlg_h-hbtn-12)
        else:
            self._btn_reject.set_position(gapbtn+wbtn+6, self._dlg_h-hbtn-12)
        self._btn_reject.set_size(wbtn, hbtn)
        self._btn_reject.set_action(self._on_reject)
        self._pnl.add_component(self._btn_reject)
                
        '''
        implogo = gdi.ImagePanel()
        implogo.set_position(10, 16)
        implogo.set_filename(self._parent._get_image(u"logo48x48.bmp"))
        self._pnl.add_component(implogo)
        
        self._lbl_user = gdi.Label()
        self._lbl_user.set_position(16+48,16)
        self._lbl_user.set_size(self._dlg_w-(2*self._dlg_brdsz)-16-48-10,20)
        self._pnl.add_component(self._lbl_user)
        '''
        
        wimg=48
        gapbimg=10
        gapaimg=6
        wlbl=self._dlg_w-(2*self._dlg_brdsz)-(gapbimg+wimg+gapaimg)
        implogo = gdi.ImagePanel()
        if self._rtl:
            implogo.set_position(wlbl+gapaimg, 16)
        else:
            implogo.set_position(gapbimg, 16)
        implogo.set_filename(self._parent._get_image(u"logo48x48.bmp"))
        self._pnl.add_component(implogo)
        
        self._lbl_user = gdi.Label()
        if self._rtl:
            self._lbl_user.set_position(0,16)            
        else:
            self._lbl_user.set_position(gapbimg+wimg+gapaimg,16)            
        self._lbl_user.set_size(wlbl,20)
        self._pnl.add_component(self._lbl_user)
        
        self._lbl_ip = gdi.Label()
        self._lbl_ip.set_position(self._lbl_user.get_x(),self._lbl_user.get_y()+self._lbl_user.get_height())
        self._lbl_ip.set_size(self._lbl_user.get_width(),self._lbl_user.get_height())
        self._pnl.add_component(self._lbl_ip)
        
        self._lbl_msg = gdi.Label()
        self._lbl_msg.set_text_align(gdi.TEXT_ALIGN_STARTTOP)
        self._lbl_msg.set_text(messages.get_message("accessConfirm"))
        self._lbl_msg.set_wordwrap(True)
        self._lbl_msg.set_position(self._lbl_ip.get_x(),self._lbl_ip.get_y()+self._lbl_ip.get_height()+4)
        self._lbl_msg.set_size(self._lbl_ip.get_width(),self._btn_accept.get_y()-self._lbl_msg.get_y())
        self._pnl.add_component(self._lbl_msg)
                
        self._list=[]
        self._skip_ids=[]
    
    def _on_accept(self, e):
        if e["action"]=="PERFORMED":
            if self._curitm is not None:
                self._parent.accept_session(self._curitm["idSession"])
                self._skip_ids.append(self._curitm["idSession"])
                self._curitm=None
            self._dlg.hide()
    
    def _on_reject(self, e):
        if e["action"]=="PERFORMED":
            if self._curitm is not None:
                self._parent.reject_session(self._curitm["idSession"])
                self._skip_ids.append(self._curitm["idSession"])
                self._curitm=None
            self._dlg.hide()
        
    def update(self, ar):
        itm=None
        for i in ar:
            bok=True
            for idses in self._skip_ids:
                if i["idSession"]==idses:
                    bok=False
                    break
            if bok:
                itm=i
                break
    
        self._skip_ids=[]
        self._list=ar        
        bok=False
        if self._curitm is None and itm is not None:
            bok=True 
        elif self._curitm is not None and itm is None:
            bok=True 
        elif self._curitm is not None and itm is not None and self._curitm["idSession"]!=itm["idSession"]:
            bok=True            
        if bok:
            if itm is not None:
                self._curitm=itm
                susr=""
                if self._parent._mode!="runonfly" and "accessType" in self._curitm and (self._curitm["accessType"]=="ACCOUNT" or self._curitm["accessType"]=="SHARE_USER") and "userName" in self._curitm: 
                    susr=self._curitm["userName"]
                if susr=="":
                    susr=messages.get_message("unknownUser")
                self._lbl_user.set_text(susr)
                self._lbl_ip.set_text(messages.get_message("ipAddress").format(self._curitm["ipAddress"]))
                self._dlg.set_size(self._dlg_w, self._dlg_h)
                self._dlg.show()
            else:
                self._curitm=None
                self._dlg.hide()
    
    def destroy(self):
        try:
            if self._dlg is not None:
                self._dlg.destroy()
        except:
            None

class NotifyActivities():
    
    def __init__(self, prt):
        self._parent=prt        
        self._list=[u"screencapture",u"shell",u"transfers"]
        self._sessions=False
        self._cmps={}
        self._visible_cmps={}
        self._screen_w=0
        self._screen_h=0
        self._dlg_y_gap=180                
        self._dlg_w=21
        self._move_y=None
        self._skip_click=False
        self._hide_effect=None
        self._dlg = gdi.Window(gdi.WINDOW_TYPE_POPUP,isrtl=self._parent._rtl)
        self._dlg.set_background("ffaa33")
        self._pnl = gdi.Panel()
        self._pnl.set_position(1, 1)      
        self._pnl.set_size(self._dlg_w, 20)  
        self._pnl.set_background("313536")
        self._dlg.add_component(self._pnl)
        implogo = gdi.ImagePanel()
        implogo.set_position(2, 2)        
        implogo.set_filename(self._parent._get_image(u"logo16x16.bmp"))
        self._pnl.add_component(implogo)        
        
        for k in self._list:
            self._cmps[k] = gdi.ImagePanel()            
            self._cmps[k].set_filename(self._parent._get_image(u"activities_" + k + u".bmp"))            
            self._dlg.add_component(self._cmps[k])
            self._visible_cmps[k]=False
            self._cmps[k].set_visible(False)
                
        self._sessions_last_update=self._sessions
        self._visible_cmps_last_update=self._visible_cmps.copy()
        self._dlg.set_action(self.on_action)
        
                        
            
    def set_sessions(self, i):
        self._sessions=i
        
    def set_visible(self, k, b):        
        self._visible_cmps[k]=b
    
    def _move_y_timer(self):
        if self._move_y is not None:
            mp = gdi.get_mouse_position()
            ar = gdi.get_screen_size()
            if mp["x"]<=ar["width"]-self._dlg.get_width():
                self._move_y=None
            else:
                ny=mp["y"]-self._move_y            
                if ny>=0 and ny<=ar["height"]-120 and self._dlg.get_y()!=ny:
                    self._dlg.set_position(self._dlg.get_x(),ny)
                    self._dlg_y_gap=ar["height"]-ny
                self._skip_click=True
                gdi.add_scheduler(0.1, self._move_y_timer)
    
    def on_action(self,e):
        if e["action"]=="MOUSEBUTTONDOWN":            
            if e["button"]==1:
                self._move_y=e["y"]
                gdi.add_scheduler(0.1, self._move_y_timer)
        if e["action"]=="MOUSEBUTTONUP":
            self._move_y=None
        if e["action"]=="MOUSECLICK":
            if not self._skip_click:
                self._parent._app.show()
                self._parent._app.to_front()
            self._skip_click=False
    
    def update(self):
        bok=False
        if self._sessions_last_update != self._sessions:
            bok=True
        else:
            for k in self._list:
                if self._visible_cmps_last_update[k] != self._visible_cmps[k]:
                    bok=True
        ar = gdi.get_screen_size()
        if self._screen_w!=ar["width"] or self._screen_h!=ar["height"]:
            self._screen_w=ar["width"]
            self._screen_h=ar["height"]
            bok=True 
        if bok:
            if self._hide_effect is not None:
                self._hide_effect.cancel()
            if self._sessions>0:
                self._dlg_h=22
                for k in self._list:
                    if self._visible_cmps[k]:
                        self._cmps[k].set_position(3, self._dlg_h)
                        self._cmps[k].set_visible(True)
                        self._dlg_h+=18
                    else:
                        self._cmps[k].set_visible(False)
                self._dlg.set_position(self._screen_w-self._dlg_w,self._screen_h-self._dlg_y_gap)
                self._dlg.set_size(self._dlg_w, self._dlg_h)
                self._dlg.show()                
                if self._parent._monitor_desktop_notification=="autohide":                    
                    self._hide_effect = NotifyActivitiesHideEffect(self._dlg)
                    self._hide_effect.run()                                    
            else:
                self._dlg.hide()
                for k in self._list:
                    self._visible_cmps[k]=False
                    self._cmps[k].set_visible(False)
            self._sessions_last_update=self._sessions
            self._visible_cmps_last_update=self._visible_cmps.copy()
    
    def destroy(self):
        try:
            if self._dlg is not None:
                self._dlg.destroy()
        except:
            None
       
class Main():
    
    def __init__(self):
        self._name=u"DWAgent"
        self._logo=None
        self._properties={}
        self._config_base_path=None
        self._runonfly_base_path=None
        self._bstop=True
        self._notifyActivities=None
        self._notifyAcceptSession=None
        try:
            self._rtl=messages.is_rtl()
        except:
            self._rtl=False
        try:
            f = utils.file_open('config.json', "rb")
            s=f.read()
            self._properties = json.loads(utils.bytes_to_str(s,"utf8"))
            f.close()
        except Exception:
            None
        if 'name' in self._properties:
            self._name=utils.str_new(self._properties["name"])
        applg = gdi._get_logo_from_conf(self._properties, u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep)
        if applg != "":
            self._logo=applg        
    
    def _get_image(self, name):
        apps = images.get_image(name)
        if self._mode=="runonfly":            
            apps=self._runonfly_base_path + utils.path_sep + apps
        return apps
    
    def _get_message(self, key):
        smsg = messages.get_message(key)
        if not self._name==u"DWAgent":
            return smsg.replace(u"DWAgent",self._name)
        else:
            return smsg
    
    @staticmethod
    def get_instance():
        return Main._instance_monitor
    
    @staticmethod
    def set_instance(i):
        Main._instance_monitor=i
    
    def _set_config_base_path(self, pth):
        self._config_base_path=pth
        f = utils.file_open(self._config_base_path + os.sep + 'config.json', "rb")
        s=f.read()
        self._properties = json.loads(utils.bytes_to_str(s,"utf8"))
        f.close()
    
    def lock(self):
        self._homedir = get_user_dir() + utils.path_sep + u"." + self._name.lower()
        if not utils.path_exists(self._homedir):
            utils.path_makedirs(self._homedir)
        self._lockfilename = self._homedir + utils.path_sep + "monitor.lock"
        try:
            if is_linux() or is_mac():
                import fcntl
                self._lockfile = utils.file_open(self._lockfilename , "w")
                fcntl.lockf(self._lockfile, fcntl.LOCK_EX | fcntl.LOCK_NB)
            else:
                if utils.path_exists(self._lockfilename ):
                    utils.path_remove(self._lockfilename ) 
                self._lockfile = utils.file_open(self._lockfilename , "w")
                self._lockfile.write("\x00")
        except:
            try:
                self._lockfile.close()
            except:
                None
            if self._mode=="systray":
                print("An Instance is already running.")
            else:
                self.add_show_file()
            return False
        
        #self.remove_show_file()
        return True

    def unlock(self):
        self._lockfile.close()  
        try:
            utils.path_remove(self._lockfilename ) 
        except:
            None
        #self.remove_show_file()
        
    def check_stop(self):
        stopfilename = "monitor.stop"
        return utils.path_exists(stopfilename)
    
    def check_update(self):
        stopfilename = "monitor.update"
        return utils.path_exists(stopfilename)
    
    def add_show_file(self):
        showfilename  = self._homedir + utils.path_sep + "monitor.show"
        if not utils.path_exists(showfilename):
            f = utils.file_open(showfilename, "w")
            f.write("\x00")
            f.close()
        
    def remove_show_file(self):
        showfilename  = self._homedir + utils.path_sep + "monitor.show"        
        try:
            utils.path_remove(showfilename)
        except:
            None
    
    def check_show(self):
        showfilename = self._homedir + utils.path_sep + "monitor.show"
        return utils.path_exists(showfilename)
    
    def get_ico_file(self, name):
        return self._get_image(name + ".bmp")
    
    def get_activities(self, csts):
        ar = {}
        ar["screenCapture"]=0
        ar["shellSession"]=0
        ar["downloads"]=0
        ar["uploads"]=0
        cnt=0
        for itm in csts:
            if "waitAccept" not in itm or not itm["waitAccept"]:
                cnt+=1
                actvs = itm["activities"]
                if actvs["screenCapture"]>0:
                    ar["screenCapture"]+=actvs["screenCapture"]
                if actvs["shellSession"]>0:
                    ar["shellSession"]+=actvs["shellSession"]
                if actvs["downloads"]>0:
                    ar["downloads"]+=actvs["downloads"]
                if actvs["uploads"]>0:
                    ar["uploads"]+=actvs["uploads"]            
        ar["sessions"]=cnt
        return ar
    
    def get_wait_sessions(self, csts):
        ar = []
        for itm in csts:
            if "waitAccept" in itm and itm["waitAccept"]:
                ar.append({"idSession": itm["idSession"],"ipAddress": itm["ipAddress"],"userName": itm["userName"],"initTime": itm["initTime"],"accessType": itm["accessType"]})
        ar = sorted(ar, key=lambda k: k['initTime'])
        return ar
    
    def get_info(self):
        ret={"state": "-1","sessions_status":[]}
        self._semaphore.acquire()
        try:
            if self._ipc_client==None or self._ipc_client.is_close():                
                self._ipc_client=listener.IPCClient(path=self._config_base_path)
                self._status_cnt=-1

            cnt=int(self._ipc_client.get_property("counter"))
            if self._status_cnt!=cnt:
                if self._status_cnt==-1: #SKIP FIRST READ
                    self._status_cnt=cnt
                    return ret;
                else:
                    self._status_cnt=cnt                
                    ret["state"] = self._ipc_client.get_property("state")
                    try:
                        ret["name"] = self._ipc_client.get_property("name")
                        if utils.is_py2():
                            ret["name"]=ret["name"].decode("unicode-escape")
                    except:
                        None
                    try:
                        if ret["state"]=='1':
                            csts = json.loads(self._ipc_client.get_property("sessions_status"))
                        else:
                            csts = []
                        ret["sessions_status"] = csts
                        if self._monitor_desktop_notification!="none":
                            if self._notifyActivities is None:
                                self._notifyActivities=NotifyActivities(self)
                            appar=self.get_activities(csts)
                            self._notifyActivities.set_sessions(appar["sessions"])
                            self._notifyActivities.set_visible("screencapture", appar["screenCapture"]>0)
                            self._notifyActivities.set_visible("shell", appar["shellSession"]>0)
                            self._notifyActivities.set_visible("transfers", (appar["downloads"]+appar["uploads"])>0)
                            self._notifyActivities.update()                            
                                                        
                        appar = self.get_wait_sessions(csts)
                        if len(appar)>0 and self._notifyAcceptSession is None:
                            self._notifyAcceptSession=NotifyAcceptSession(self)                                
                        if self._notifyAcceptSession is not None:
                            self._notifyAcceptSession.update(appar)
                        
                    except Exception as ex:
                        print(utils.get_exception_string(ex))
                    return ret;
            else:
                if self._monitor_desktop_notification!="none":
                    if self._notifyActivities is not None:
                        self._notifyActivities.set_sessions(0)
                        self._notifyActivities.update()
                    
                        
                return ret
        except Exception as e:            
            print(utils.get_exception_string(e))
            return ret
        finally:
            self._semaphore.release()
            
    def check_events(self):
        if self._bstop:
            return
        if self.check_stop():
            if self._notifyActivities is not None:
                self._notifyActivities.destroy()
            if self._notifyAcceptSession is not None:
                self._notifyAcceptSession.destroy()
            if self._monitor_tray_icon:
                self._monitor_tray_obj.destroy()
            self._app.destroy()
            return
        if self.check_update():
            self._update=True
            if self._notifyActivities is not None:
                self._notifyActivities.destroy()
            if self._notifyAcceptSession is not None:
                self._notifyAcceptSession.destroy()
            if self._monitor_tray_icon:
                self._monitor_tray_obj.destroy()
            self._app.destroy()
            return
        if self.check_show():
            self._app.show()
            self._app.to_front()
            self.remove_show_file()
        gdi.add_scheduler(0.5, self.check_events)
    
    def update_status(self):
        if self._bstop:
            return        
        bground=""
        self.msgst=""
        self.icofile=""
        stateBtnEnDis=True
        msgBtnEnDis="monitorDisable"
        appar = self.get_info()
        s=appar["state"]
        newst=""
        newnm=""
        if "name" in appar:
            newnm=appar["name"]
        if s=='0': #STATUS_OFFLINE 
            newst="OFFLINE"
            self.msgst=self._get_message('monitorStatusOffline')
            bground=COLOR_OFFLINE
            self.icofile="monitor_grey"
        elif s=='1': #STATUS_ONLINE 
            newst="ONLINE"
            self.msgst=self._get_message('monitorStatusOnline')
            bground=COLOR_ONLINE
            self.icofile="monitor_green"
        elif s=='2': #STATUS_ONLINE_DISABLE
            newst="ONLINE_DISABLE"
            self.msgst=self._get_message('monitorStatusOnline') + " (" + self._get_message('monitorStatusDisabled') + ")"
            bground=COLOR_ONLINE_DISABLE
            self.icofile="monitor_orange"
        elif s=='3': #STATUS_DISABLE 
            newst="DISABLE"
            self.msgst=self._get_message('monitorStatusDisabled')
            bground=COLOR_DISABLE
            msgBtnEnDis="monitorEnable"
            self.icofile="monitor_red"
        elif s=='10': #STATUS_UPDATING 
            newst="UPDATING"
            self.msgst=self._get_message('monitorStatusUpdating')
            bground=COLOR_UPDATING
            self.icofile="monitor_yellow"
        else:
            newst="NOSERVICE"
            stateBtnEnDis=False
            self.msgst=self._get_message('monitorStatusNoService')
            bground=COLOR_NOSERVICE
            self.icofile="monitor_warning"
        
        breadconf=(newst!=self._cur_status) or self._mode=="runonfly"
        if not breadconf and not stateBtnEnDis and self._lbl_unattended_mode_yes.get_selected()==False and self._lbl_unattended_mode_no.get_selected()==False:
            breadconf=True        
        curact = self.get_activities(appar["sessions_status"])
        bchgact=False                
        
        if self._cur_activities is None:
            bchgact=True
        else:
            for k in curact:
                if curact[k]!=self._cur_activities[k]:
                    bchgact=True
                    break;
        if newst != self._cur_status or newnm != self._cur_agent_name or bchgact is True:
            self._cur_status=newst 
            self._cur_activities=curact
            self._reload_activities=False
            self.update_systray(self.icofile, self.msgst)
            if self._mode!="runonfly":
                self._img_status_top.set_background_gradient(bground,"ffffff",gdi.GRADIENT_DIRECTION_TOPBOTTOM)
                self._img_status_bottom.set_background_gradient(bground,"ffffff",gdi.GRADIENT_DIRECTION_BOTTONTOP)
            apptx=[]
            bexline=False
            if "name" in appar and appar["name"]!="":
                self._cur_agent_name=appar["name"]
                apptx.append(appar["name"])
                apptx.append(u"\n")
                bexline=True
            else:
                self._cur_agent_name=""
            if bexline is True:
                apptx.append(u"\n")
            apptx.append(self.msgst)
            if self._mode!="runonfly":
                self._lbl_status.set_text(u"".join(apptx))                        
            
            if curact["sessions"]==0:
                self._lbl_notificationsn.set_visible(True)
                self._lbl_notificationsl.set_text("")
                self._lbl_notificationsr.set_text("")
            else:
                apptxl=""
                apptxr=""
                apptxl+=self._get_message('monitorSession') + ":"
                apptxr+=self._get_message('monitorActive') + " (" + str(curact["sessions"]) + ")"
                                
                if curact["screenCapture"]>0:
                    apptxl+="\n" + self._get_message('monitorScreenCapture') + ":"
                    apptxr+="\n" + self._get_message('monitorActive') + " (" + str(curact["screenCapture"]) + ")"
                
                if curact["shellSession"]>0:
                    apptxl+="\n" + self._get_message('monitorShellSession') + ":"
                    apptxr+="\n" + self._get_message('monitorActive') + " (" + str(curact["shellSession"]) + ")"
                
                if curact["downloads"]>0:
                    apptxl+="\n" + self._get_message('monitorDownload') + ":"
                    apptxr+="\n" + self._get_message('monitorActive') + " (" + str(curact["downloads"]) + ")"
                
                if curact["uploads"]>0:
                    apptxl+="\n" + self._get_message('monitorUpload') + ":"
                    apptxr+="\n" + self._get_message('monitorActive') + " (" + str(curact["uploads"]) + ")"
                
                self._lbl_notificationsn.set_visible(False)
                self._lbl_notificationsl.set_text(apptxl)
                self._lbl_notificationsr.set_text(apptxr)
            
            if self._mode!="runonfly":
                self._btconfig.set_enable(stateBtnEnDis)
                self._btends.set_text(self._get_message(msgBtnEnDis))
                self._btends.set_enable(stateBtnEnDis)            
                self._lbl_unattended_mode.set_enable(stateBtnEnDis);
                self._lbl_unattended_mode_yes.set_enable(stateBtnEnDis);
                self._lbl_unattended_mode_no.set_enable(stateBtnEnDis);
            
        if breadconf:
            if stateBtnEnDis or self._mode=="runonfly":
                self.update_unattended()
            else:
                self._lbl_unattended_mode_yes.set_selected(False)
                self._lbl_unattended_mode_no.set_selected(False)            
        gdi.add_scheduler(2, self.update_status)
    
    def update_unattended(self):
        try:
            sua=self.get_config("unattended_access") 
            self._lbl_unattended_mode_yes.set_selected(sua=="True")
            self._lbl_unattended_mode_no.set_selected(sua!="True")                                
        except Exception as e:
            self._lbl_unattended_mode_yes.set_selected(False)
            self._lbl_unattended_mode_no.set_selected(False)

    
    def send_req(self, usr, pwd, req, prms=None):
        self._semaphore.acquire()
        try:
            if self._ipc_client==None or self._ipc_client.is_close():
                self._ipc_client=listener.IPCClient(path=self._config_base_path)
            return self._ipc_client.send_request(usr, pwd, req, prms);
        except: 
            return 'ERROR:REQUEST_TIMEOUT'
        finally:
            self._semaphore.release()

    def get_config(self, key):
        sret=self.send_req("", "", 'get_config',  {'key':key})
        if sret.startswith("OK:"):
            return sret[3:]
        else:
            raise Exception(sret[6:])
            

    def set_config(self, pwd, key, val):
        sret=self.send_req("admin", pwd, 'set_config',  {'key':key, 'value':val})
        if sret!="OK":
            raise Exception(sret[6:])

    
    def check_auth(self, pwd):
        sret=self.send_req("admin", pwd, "check_auth", None)
        if sret=="OK":
            return True
        elif sret=="ERROR:FORBIDDEN":
            return False
        else:
            raise Exception(sret[6:])
    
    
    def accept_session(self, sid):
        try:
            sret=self.send_req("", "", "accept_session",  {"id":sid})
            if sret!="OK":
                raise Exception(sret[6:])                
        except Exception as e:
            dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
            dlg.set_title(self._get_message('monitorTitle'))
            dlg.set_message(utils.exception_to_string(e))
            dlg.show();
    
    def reject_session(self, sid):
        try:
            sret=self.send_req("", "", "reject_session",  {"id":sid})
            if sret!="OK":
                raise Exception(sret[6:])                
        except Exception as e:
            dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
            dlg.set_title(self._get_message('monitorTitle'))
            dlg.set_message(utils.exception_to_string(e))
            dlg.show();
            
    def _enable_disable_action_pwd(self,e):
        if e["action"]=="PERFORMED":
            pwd = ""
            for c in e["window"].get_components():
                if c.get_name()=="txtPassword":
                    pwd=c.get_text()            
            e["window"].destroy()        
            val = "false"
            mess_ok='monitorAgentDisabled'
            if self._cur_status=="DISABLE":
                val="true"
                mess_ok='monitorAgentEnabled'
            if self.check_auth(pwd):
                self.set_config(pwd, "enabled", val)
                dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_INFO,self._app,isrtl=self._rtl)
                dlg.set_title(self._get_message('monitorTitle'))
                dlg.set_message(self._get_message(mess_ok))
                dlg.show();
            else:
                dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
                dlg.set_title(self._get_message('monitorTitle'))
                dlg.set_message(self._get_message('monitorInvalidPassword'))
                dlg.show();            
    
    def _enable_disable_action(self,e):
        if e["action"]=="DIALOG_YES":
            try:
                val = "false"
                mess_ok='monitorAgentDisabled'
                if self._cur_status=="DISABLE":
                    val="true"
                    mess_ok='monitorAgentEnabled'
                pwd = ""
                if self.check_auth(pwd):
                    self.set_config(pwd, "enabled", val)
                    dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_INFO,self._app,isrtl=self._rtl)
                    dlg.set_title(self._get_message('monitorTitle'))
                    dlg.set_message(self._get_message(mess_ok))
                    dlg.show();
                else:
                    self.ask_password(self._enable_disable_action_pwd)
            except Exception as e:
                dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
                dlg.set_title(self._get_message('monitorTitle'))
                dlg.set_message(utils.exception_to_string(e))
                dlg.show();
    
    def ask_password(self, faction):
        dlg = gdi.Window(gdi.WINDOW_TYPE_DIALOG, self._app, isrtl=self._rtl)
        def fdlgact(e):
            if e["action"]=="ONCLOSE":
                faction(e)
        dlg.set_action(fdlgact)
        dlg.set_title(self._get_message('monitorTitle'))
        dlg.set_size(220, 140)
        dlg.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN)
        lbl = gdi.Label()
        lbl.set_text(self._get_message('monitorEnterPassword'))
        lbl.set_position(10, 10)
        lbl.set_width(200)
        dlg.add_component(lbl)
        txt = gdi.TextBox()
        txt.set_name("txtPassword");
        txt.set_password_mask(True)
        txt.set_position(10, 10+lbl.get_height())
        txt.set_width(200)
        dlg.add_component(txt)
        pnlBottomH=55
        pnl = gdi.Panel();
        pnl.set_position(0, dlg.get_height()-pnlBottomH)
        pnl.set_size(dlg.get_width(),pnlBottomH)
        dlg.add_component(pnl)
        bt = gdi.Button();
        bt.set_position(int((dlg.get_width()/2)-(bt.get_width()/2)), 10)
        bt.set_text(self._get_message('ok'))
        bt.set_action(faction)        
        pnl.add_component(bt)
        dlg.show()
    
    def _set_unattended_access_pwd(self, e):
        if e["action"]=="PERFORMED":
            pwd = ""
            for c in e["window"].get_components():
                if c.get_name()=="txtPassword":
                    pwd=c.get_text()            
            e["window"].destroy()  
            if self.check_auth(pwd):
                val="false"
                if self._lbl_unattended_mode_yes.get_selected():
                    val="true"
                self.set_config("", "unattended_access", val)
            else:           
                self.update_unattended()     
                dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
                dlg.set_title(self._get_message('monitorTitle'))
                dlg.set_message(self._get_message('monitorInvalidPassword'))
                dlg.show();   
        elif e["action"]=="ONCLOSE":
            self.update_unattended()
    
    def set_unattended_access(self, e):
        if e["action"]=="SELECTED":
            pwd = ""
            if self.check_auth(pwd):
                val="false"
                if e["source"]==self._lbl_unattended_mode_yes:
                    val="true"
                self.set_config("", "unattended_access", val)                
            else:
                self.ask_password(self._set_unattended_access_pwd)        
    
    def enable_disable(self, e):
        if e["action"]=="PERFORMED":
            msg=self._get_message('monitorDisableAgentQuestion')
            if self._cur_status=="DISABLE":
                msg=self._get_message('monitorEnableAgentQuestion')
            
            dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_YESNO,gdi.DIALOGMESSAGE_LEVEL_INFO,self._app,isrtl=self._rtl)
            dlg.set_title(self._get_message('monitorTitle'))
            dlg.set_message(msg)
            dlg.set_action(self._enable_disable_action)
            dlg.show()    
    
    def configure(self, e):
        if e["action"]=="PERFORMED":
            if is_windows():
                subprocess.call(["native" + utils.path_sep + "dwaglnc.exe" , "configure"]) 
            elif is_linux():
                self._runproc(["native" + utils.path_sep + "configure"])
            elif is_mac():
                #KEEP FOR COMPATIBILITY
                if utils.path_exists("native/Configure.app/Contents/MacOS/Configure"):
                    self._runproc(["open", "-a", os.path.abspath("native/Configure.app")])
                    #self._runproc(["native/Configure.app/Contents/MacOS/Configure"])
                else:
                    self._runproc(["native/Configure.app/Contents/MacOS/Run"])            
            
    def run_update(self):
        #run self  because the monitor.update file wait library update
        if is_windows():
            subprocess.call(["native" + utils.path_sep + "dwaglnc.exe" , "systray"]) 
        elif is_linux():
            self._runproc(["native" + utils.path_sep + self._name.lower(),"systray","&"])
        elif is_mac():
            None            
    
    def unistall(self, e):
        if e["action"]=="PERFORMED":
            if is_windows():
                subprocess.call(["native" + utils.path_sep + "dwaglnc.exe" , "uninstall"]) 
            elif is_linux():
                sucmd=None
                if self._which("gksu"):
                    sucmd="gksu"
                elif self._which("kdesu"):
                    sucmd="kdesu"
                if sucmd is not None:
                    osenv = os.environ
                    libenv = {}
                    for k in osenv:
                        if k!="LD_LIBRARY_PATH":
                            libenv[k]=osenv[k]
                    subprocess.Popen([sucmd , utils.path_absname("native" + utils.path_sep + "uninstall")],env=libenv)
                else:
                    dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,self._app,isrtl=self._rtl)
                    dlg.set_title(self._get_message('monitorTitle'))
                    dlg.set_message(self._get_message('monitorUninstallNotRun'))
                    dlg.show();
            elif is_mac():
                self._runproc(["open", "-a", os.path.abspath("native/Uninstall.app")])
                  
    
    def _runproc(self, ar, ev=None):
        if ev is None:
            p = subprocess.Popen(ar)
        else:
            p = subprocess.Popen(ar,env=ev)
        p.communicate()
        p.wait()
    
    def _which(self, name):
        p = subprocess.Popen("which " + name, stdout=subprocess.PIPE, shell=True)
        (po, pe) = p.communicate()
        p.wait()
        return len(po) > 0     
    
    def printInfo(self):
        msgst=u""
        appar = self.get_info()
        s=appar["state"]
        if s=='0': #STATUS_OFFLINE 
            msgst=self._get_message('monitorStatusOffline')
        elif s=='1': #STATUS_ONLINE 
            msgst=self._get_message('monitorStatusOnline')
        elif s=='3': #STATUS_DISABLE 
            msgst=self._get_message('monitorStatusDisabled')
        elif s=='10': #STATUS_UPDATING 
            msgst=self._get_message('monitorStatusUpdating')
        else:
            msgst=self._get_message('monitorStatusNoService')
        print(self._get_message('monitorStatus') + u": " + msgst) 
        if "sessions" in appar: 
            print(self._get_message('monitorSession') + u" : " + self._get_message('monitorActive') + u" (" + str(appar["sessions"]) + u")")
        if "screenCapture" in appar:
            if appar["screenCapture"]>0:
                print(self._get_message('monitorScreenCapture')+ u": " + self._get_message('monitorActive') + u" (" + str(appar["screenCapture"]) + u")")            
        if "shellSession" in appar:
            if appar["shellSession"]>0:
                print(self._get_message('monitorShellSession')+ u": " + self._get_message('monitorActive') + u" (" + str(appar["shellSession"]) + u")")
        if "downloads" in appar:
            if appar["downloads"]>0:
                print(self._get_message('monitorDownload')+ u": " + self._get_message('monitorActive') + u" (" + str(appar["downloads"]) + u")")
        if "uploads" in appar:
            if appar["uploads"]>0:
                print(self._get_message('monitorUpload')+ u": " + self._get_message('monitorActive') + u" (" + str(appar["uploads"]) + u")")
            
            
    
    def _actions_systray(self,e):
        if e["action"]=="PERFORMED":
            if e["name"]=="show":
                self._app.show()
                self._app.to_front()
            elif e["name"]=="hide":
                self._app.hide()
            elif e["name"]=="enable":
                self.enable_disable(e)
            elif e["name"]=="disable":
                self.enable_disable(e)
            elif e["name"]=="configure":
                self.configure(e)
    
    def _window_action(self,e):
        if e["action"]==u"ONCLOSE":
            if self._monitor_tray_icon:
                e["source"].hide()
                e["cancel"]=True        
            else:
                if self._notifyActivities is not None:
                    self._notifyActivities.destroy()
                if self._notifyAcceptSession is not None:
                    self._notifyAcceptSession.destroy()
            
    
    def notify_action(self, e):
        if e["action"]==u"ACTIVATE":
            e["source"].get_object("window").show()
            e["source"].get_object("window").to_front()
        elif e["action"]==u"CONTEXTMENU":
            pp=gdi.PopupMenu()
            if not e["source"].get_object("window").is_show():
                pp.add_item("show",self._get_message('monitorShow'))
            else:
                pp.add_item("hide",self._get_message('monitorHide'))
            
            if self._cur_status!="NOSERVICE":
                if self._cur_status=="DISABLE":
                    pp.add_item("enable",self._get_message('monitorEnable'))
                else:
                    pp.add_item("disable",self._get_message('monitorDisable'))
                pp.add_item("configure",self._get_message('monitorConfigure'))
            pp.set_action(self._actions_systray);
            pp.show()
    
    def update_systray(self,icon,msg):
        if self._monitor_tray_icon:
            self._monitor_tray_obj.update(self.get_ico_file(icon), self._name + " - " + msg)
        
    def prepare_systray(self):
        ti=True
        try:
            if 'monitor_tray_icon' in self._properties:
                ti=self._properties['monitor_tray_icon']
        except Exception:
            None
        if self._monitor_tray_icon!=ti:
            msgst=self._get_message('monitorStatusNoService')
            self._monitor_tray_obj=gdi.NotifyIcon(self.get_ico_file(u"monitor_warning"), self._name + " - " + msgst)
            self._monitor_tray_obj.set_object("window",self._app)
            self._monitor_tray_obj.set_action(self.notify_action)            
            self._monitor_tray_icon=ti
    
    def prepare_window(self):        
        #msgst=self._get_message('monitorStatusNoService')        
                
        self._app = gdi.Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE,None,self._logo,isrtl=self._rtl);
        self._app.set_title(self._get_message('monitorTitle'))
        self._app.set_size(_WIDTH, _HEIGHT)
        self._app.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN)
        self._app.set_action(self._window_action)
        
        if self._rtl:
            gapx=_WIDTH_RIGHT
        else:
            gapx=0
                
        self._img_status_top = gdi.Panel()
        self._img_status_top.set_position(gapx, 0)
        self._img_status_top.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS_BAR)
        self._img_status_top.set_background_gradient("ffffff", "ffffff", gdi.GRADIENT_DIRECTION_TOPBOTTOM)
        self._app.add_component(self._img_status_top)        
        
        self._lbl_status = gdi.Label()
        self._lbl_status.set_background("ffffff")
        self._lbl_status.set_opaque(True)
        self._lbl_status.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_status.set_text(self._get_message('waiting'))
        self._lbl_status.set_position(gapx, _HEIGHT_STATUS_BAR)        
        self._lbl_status.set_size(_CONTENT_WIDTH,_HEIGHT_STATUS)        
        self._app.add_component(self._lbl_status)
        
        self._img_status_bottom = gdi.Panel()
        self._img_status_bottom.set_position(gapx, self._lbl_status.get_y() + self._lbl_status.get_height())
        self._img_status_bottom.set_size(_CONTENT_WIDTH,_HEIGHT_STATUS_BAR)
        self._img_status_bottom.set_background_gradient("ffffff", "ffffff", gdi.GRADIENT_DIRECTION_BOTTONTOP)
        self._app.add_component(self._img_status_bottom)
        
        self._lbl_notificationst = gdi.Label()
        self._lbl_notificationst.set_background("d9d9d9")
        self._lbl_notificationst.set_opaque(True)
        self._lbl_notificationst.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_notificationst.set_text(self._get_message('monitorCurrentActivities'))        
        self._lbl_notificationst.set_position(gapx, self._img_status_bottom.get_y() + self._img_status_bottom.get_height())
        self._lbl_notificationst.set_size(_CONTENT_WIDTH,25)
        self._app.add_component(self._lbl_notificationst)
        
        sthalfy=self._lbl_notificationst.get_y() + self._lbl_notificationst.get_height()
        sthalfw=int(_CONTENT_WIDTH/2)
        sthalfh=_HEIGHT-sthalfy
        
        self._lbl_notificationsl = gdi.Label()
        self._lbl_notificationsl.set_background("ffffff")
        self._lbl_notificationsl.set_opaque(True)
        if self._rtl:
            self._lbl_notificationsl.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE)
            self._lbl_notificationsl.set_position(gapx+sthalfw, sthalfy)
        else:
            self._lbl_notificationsl.set_text_align(gdi.TEXT_ALIGN_RIGHTMIDDLE)
            self._lbl_notificationsl.set_position(gapx, sthalfy)
        self._lbl_notificationsl.set_size(sthalfw,sthalfh)
        self._app.add_component(self._lbl_notificationsl)
        
        self._lbl_notificationsr = gdi.Label()
        self._lbl_notificationsr.set_background("ffffff")
        self._lbl_notificationsr.set_opaque(True)
        if self._rtl:
            self._lbl_notificationsr.set_text_align(gdi.TEXT_ALIGN_RIGHTMIDDLE)
            self._lbl_notificationsr.set_position(gapx,sthalfy)
        else:
            self._lbl_notificationsr.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE)
            self._lbl_notificationsr.set_position(gapx+sthalfw,sthalfy)
        self._lbl_notificationsr.set_size(sthalfw,sthalfh)
        self._app.add_component(self._lbl_notificationsr)
        
        self._lbl_notificationsn = gdi.Label()
        self._lbl_notificationsn.set_background("ffffff")
        self._lbl_notificationsn.set_position(gapx,self._lbl_notificationsl.get_y()+(int(self._lbl_notificationsl.get_height()/2)-(26/2)))
        self._lbl_notificationsn.set_text(self._get_message('monitorNoActivities'))
        self._lbl_notificationsn.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_notificationsn.set_size(_CONTENT_WIDTH,26)
        self._lbl_notificationsn.set_opaque(True)
        self._app.add_component(self._lbl_notificationsn)
                
        self._pnl_bottom = gdi.Panel()
        if self._rtl:
            self._pnl_bottom.set_position(0, 0)
        else:
            self._pnl_bottom.set_position(_CONTENT_WIDTH, 0)
        self._pnl_bottom.set_size(_WIDTH_RIGHT, _HEIGHT)
        self._app.add_component(self._pnl_bottom)
        
        wbtn=_WIDTH_RIGHT-20
        hbtn=36
        appy=10
        
        self._btends = gdi.Button()
        self._btends.set_position(10, appy)
        self._btends.set_size(wbtn, hbtn)
        self._btends.set_text(self._get_message('monitorDisable'))
        self._btends.set_action(self.enable_disable)
        self._btends.set_enable(False)
        self._pnl_bottom.add_component(self._btends)
        appy+=hbtn+6        
        
        self._btconfig = gdi.Button()
        self._btconfig.set_position(10, appy)
        self._btconfig.set_size(wbtn, hbtn)
        self._btconfig.set_text(self._get_message('monitorConfigure'))
        self._btconfig.set_action(self.configure)
        self._btconfig.set_enable(False)
        self._pnl_bottom.add_component(self._btconfig)
        appy+=hbtn+6
        
        self._btunistall = gdi.Button()
        self._btunistall.set_position(10, appy)
        self._btunistall.set_size(wbtn, hbtn)
        self._btunistall.set_text(self._get_message('monitorUninstall'))
        self._btunistall.set_action(self.unistall)
        self._pnl_bottom.add_component(self._btunistall)
        appy+=hbtn+6
        
        hunm=40
        gapunm=80
        wum = int(wbtn/2)
        self._lbl_unattended_mode = gdi.Label()
        self._lbl_unattended_mode.set_position(10, appy+gapunm)
        self._lbl_unattended_mode.set_text(self._get_message('unattendedAccess'))
        self._lbl_unattended_mode.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_unattended_mode.set_size(wbtn, hunm)
        self._lbl_unattended_mode.set_enable(False);
        self._pnl_bottom.add_component(self._lbl_unattended_mode)
        appy+=gapunm+hunm        
        self._lbl_unattended_mode_yes = gdi.RadioButton()
        self._lbl_unattended_mode_yes.set_group("unattendedaccess")
        if self._rtl:
            self._lbl_unattended_mode_yes.set_position(10+wum, appy)
        else:
            self._lbl_unattended_mode_yes.set_position(10, appy)
        self._lbl_unattended_mode_yes.set_size(wum,hunm)        
        self._lbl_unattended_mode_yes.set_text(self._get_message('yes'))
        self._lbl_unattended_mode_yes.set_enable(False);
        self._lbl_unattended_mode_yes.set_action(self.set_unattended_access)
        self._pnl_bottom.add_component(self._lbl_unattended_mode_yes)
        
        self._lbl_unattended_mode_no = gdi.RadioButton()
        self._lbl_unattended_mode_no.set_group("unattendedaccess")
        if self._rtl:
            self._lbl_unattended_mode_no.set_position(10, appy)
        else:
            self._lbl_unattended_mode_no.set_position(10+wum, appy)
        self._lbl_unattended_mode_no.set_size(wum,hunm)
        
        self._lbl_unattended_mode_no.set_text(self._get_message('no'))
        self._lbl_unattended_mode_no.set_enable(False);
        self._lbl_unattended_mode_no.set_action(self.set_unattended_access)
        self._pnl_bottom.add_component(self._lbl_unattended_mode_no)
        
        appy+=hbtn+6
        
    def prepare_runonfly_panel(self, capp, bpth, appwmsg):
        
        try:
            isrtl=capp._rtl
            if isrtl is None:
                isrtl=False
        except:
            isrtl=False
        
        self._runonfly_base_path = bpth
        try:
            from . import ui
        except: #FIX INSTALLER
            import ui
        self._app = capp
                
        pnl = gdi.Panel()
        pnl.set_background("ffffff")
        w=ui._CONTENT_WIDTH
        h=ui._CONTENT_HEIGHT
        lblh= int(h*60/100)
        rpw = ui._BUTTON_WIDTH+(2*ui._BUTTON_GAP)
        pnl.set_size(w, h)
        
        lblmsg = gdi.Label()
        lblmsg.set_wordwrap(True)
        lblmsg.set_text(u"".join(appwmsg))
        lblmsg.set_position(ui._GAP_TEXT,0)
        lblmsg.set_size(w-(2*ui._GAP_TEXT),lblh)
        pnl.add_component(lblmsg)            
        
        self._lbl_notificationst = gdi.Label()
        self._lbl_notificationst.set_background("d9d9d9")
        self._lbl_notificationst.set_opaque(True)
        self._lbl_notificationst.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_notificationst.set_text(self._get_message('monitorCurrentActivities'))
        self._lbl_notificationst.set_position(ui._GAP_TEXT, lblh)
        if isrtl:
            self._lbl_notificationst.set_position(rpw, lblh)
        else:
            self._lbl_notificationst.set_position(ui._GAP_TEXT, lblh)        
        self._lbl_notificationst.set_size(w-ui._GAP_TEXT-rpw,25)
        pnl.add_component(self._lbl_notificationst)
        
        sthalfy=self._lbl_notificationst.get_y() + self._lbl_notificationst.get_height()
        sthalfw=int(self._lbl_notificationst.get_width()/2)
        sthalfh=h-sthalfy
        
        self._lbl_notificationsl = gdi.Label()
        self._lbl_notificationsl.set_background("ffffff")
        self._lbl_notificationsl.set_opaque(True)
        if isrtl:
            self._lbl_notificationsl.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE)
            self._lbl_notificationsl.set_position(self._lbl_notificationst.get_x()+sthalfw, sthalfy)
        else:
            self._lbl_notificationsl.set_text_align(gdi.TEXT_ALIGN_RIGHTMIDDLE)
            self._lbl_notificationsl.set_position(self._lbl_notificationst.get_x(), sthalfy)
        self._lbl_notificationsl.set_size(sthalfw,sthalfh)
        pnl.add_component(self._lbl_notificationsl)
        
        self._lbl_notificationsr = gdi.Label()
        self._lbl_notificationsr.set_background("ffffff")
        self._lbl_notificationsr.set_opaque(True)
        if isrtl:
            self._lbl_notificationsr.set_text_align(gdi.TEXT_ALIGN_RIGHTMIDDLE)        
            self._lbl_notificationsr.set_position(self._lbl_notificationst.get_x(), sthalfy)
        else:
            self._lbl_notificationsr.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE)        
            self._lbl_notificationsr.set_position(self._lbl_notificationst.get_x()+sthalfw, sthalfy)
        self._lbl_notificationsr.set_size(sthalfw,sthalfh)
        pnl.add_component(self._lbl_notificationsr)
        
        self._lbl_notificationsn = gdi.Label()
        self._lbl_notificationsn.set_background("ffffff")
        self._lbl_notificationsn.set_position(self._lbl_notificationst.get_x(),self._lbl_notificationsl.get_y()+(int(self._lbl_notificationsl.get_height()/2)-(26/2)))
        self._lbl_notificationsn.set_text(self._get_message('monitorNoActivities'))
        self._lbl_notificationsn.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_notificationsn.set_size(self._lbl_notificationst.get_width(),26)
        self._lbl_notificationsn.set_opaque(True)
        pnl.add_component(self._lbl_notificationsn)
        
        pnlr = gdi.Panel()
        pnlr.set_background("d9d9d9")
        if isrtl:
            pnlr.set_position(0, lblh)
        else:
            pnlr.set_position(w-rpw, lblh)
        pnlr.set_size(rpw,h-lblh)
        pnl.add_component(pnlr)
                
        appy=20
        hunm=40
        wum = int(ui._BUTTON_WIDTH/2)
        gapunm=80
        self._lbl_unattended_mode = gdi.Label()
        self._lbl_unattended_mode.set_position(ui._BUTTON_GAP, appy+gapunm)
        self._lbl_unattended_mode.set_text(self._get_message('unattendedAccess'))
        self._lbl_unattended_mode.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE)
        self._lbl_unattended_mode.set_size(ui._BUTTON_WIDTH, hunm)
        pnlr.add_component(self._lbl_unattended_mode)
        appy+=gapunm+hunm
        
        self._lbl_unattended_mode_yes = gdi.RadioButton()
        self._lbl_unattended_mode_yes.set_group("unattendedaccess")
        if isrtl:
            self._lbl_unattended_mode_yes.set_position(ui._BUTTON_GAP+wum, appy)
        else:
            self._lbl_unattended_mode_yes.set_position(ui._BUTTON_GAP, appy)
        self._lbl_unattended_mode_yes.set_size(wum,hunm)
        self._lbl_unattended_mode_yes.set_text(self._get_message('yes'))
        self._lbl_unattended_mode_yes.set_action(self.set_unattended_access)
        pnlr.add_component(self._lbl_unattended_mode_yes)
        
        self._lbl_unattended_mode_no = gdi.RadioButton()
        self._lbl_unattended_mode_no.set_group("unattendedaccess")
        if isrtl:
            self._lbl_unattended_mode_no.set_position(ui._BUTTON_GAP, appy)
        else:
            self._lbl_unattended_mode_no.set_position(ui._BUTTON_GAP+wum, appy)
        self._lbl_unattended_mode_no.set_size(wum,hunm)
        self._lbl_unattended_mode_no.set_text(self._get_message('no'))
        self._lbl_unattended_mode_no.set_action(self.set_unattended_access)
        pnlr.add_component(self._lbl_unattended_mode_no)
        
        return pnl
    
    def stop(self):
        self._bstop=True
        if self._notifyActivities is not None:
            self._notifyActivities.destroy()
        if self._notifyAcceptSession is not None:
            self._notifyAcceptSession.destroy()
        if self._ipc_client is not None:
            self._ipc_client.close()
        
        
    def start(self, mode):
        self._semaphore = threading.Condition()
        self._ipc_client = None
        self._mode=mode
        self._monitor_tray_icon=False
        self._monitor_tray_obj=None
        self._monitor_desktop_notification="visible"
        self._update=False
        self._cur_status="NOSERVICE"
        self._cur_activities=None
        self._cur_agent_name=""
        self._bstop=False
        
        if mode=="info":
            self.printInfo()
        elif mode=="runonfly":
            gdi.add_scheduler(0.1, self.update_status)                        
        else:
            if not self.lock():
                if mode=="window":
                    self.add_show_file()
                return            
            
            while self.check_update() or self.check_stop():
                time.sleep(2)
        
            try:
                if 'monitor_desktop_notification' in self._properties:
                    self._monitor_desktop_notification=self._properties['monitor_desktop_notification']
            except Exception:
                None
            
            self.prepare_window()
            if mode=="systray":                
                self.prepare_systray()
                try:
                    if utils.is_mac():
                        gdi.mac_nsapp_set_activation_policy(1)
                except:
                    None
            else:
                self._app.show()
            
            #Start Shedulers
            gdi.add_scheduler(0.5, self.update_status)
            gdi.add_scheduler(1, self.check_events)
            
            gdi.loop()
            self.unlock()
            if self._update:
                self.run_update()
        if self._ipc_client is not None:
            self._ipc_client.close()


def fmain(args): #SERVE PER MACOS APP
    try:
        mode = None
        for arg in args: 
            if arg.lower() == "systray":
                mode = "systray"
                break
            elif arg.lower() == "window":
                mode = "window"
                break
            elif arg.lower() == "info":
                mode = "info"
                break
        if mode is not None:
            main = Main()
            Main.set_instance(main)
            main.start(mode)
        else:
            try:
                main = Main()
                Main.set_instance(main)
                main.start("window")
            except:
                main = Main()
                Main.set_instance(main)
                main.start("info")
        sys.exit(0)
    except Exception as e:
        print(utils.get_exception_string(e))
        sys.exit(1)

def ctrlHandler(ctrlType):    
    return 1

if __name__ == "__main__":
    fmain(sys.argv)
    
          ui/installer.py                                                                                     0000644 0001750 0001750 00000370574 15064774426 013367  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
try:
    from . import messages
except: #FIX INSTALLER
    import messages
try:
    from . import gdi
except: #FIX INSTALLER
    import gdi
try:
    from . import ui
except: #FIX INSTALLER
    import ui
import os
import hashlib
import json
import shutil
import time
import sys
import communication
import stat
import platform
import listener
import importlib
import zlib
import base64
import ipc
import ctypes
import subprocess
import utils


_MAIN_URL = "https://www.dwservice.net/"
_MAIN_URL_QA = "https://qa.dwservice.net/"
_MAIN_URL_DEV = "https://dev.dwservice.net/dws_site/"
_NATIVE_PATH = u"native"
_RUNTIME_PATH = u"runtime"
_INSTALLER_VERSION=3

def get_native():
    if gdi.is_windows():
        return NativeWindows()
    elif gdi.is_linux():
        return NativeLinux()
    elif gdi.is_mac():
        return NativeMac()
    
def get_os_type():
    if gdi.is_linux():
        return "Linux"
    elif gdi.is_windows():
        return "Windows"
    elif gdi.is_mac():
        return "Mac"
    else:
        return "Unknown"

def get_os_type_code():
    if gdi.is_linux():
        return 0
    elif gdi.is_windows():
        return 1
    elif gdi.is_mac():
        return 2
    else:
        return -1

def stop_monitor(installpath):
    try:
        stopfilename = installpath + utils.path_sep + u"monitor.stop"
        if not utils.path_exists(stopfilename):
            stopfile = utils.file_open(stopfilename, "w", encoding="utf-8")
            stopfile.close()
        time.sleep(5)
        utils.path_remove(stopfilename) 
    except:
        None
        
def get_installer_ver(installpath):
    try:
        sver="0"
        ptver = installpath + utils.path_sep + "native" + utils.path_sep + "installer.ver"
        if utils.path_exists(ptver):
            fver = utils.file_open(ptver, "rb")
            sver=utils.bytes_to_str(fver.read())
            fver.close()
        return int(sver)
    except:
        return 0

class NativeLinux:
    
    def __init__(self):
        self._name=None
        self._current_path=None
        self._install_path=None
        self._etc_path=None
        self._logo_path=u"/ui/images/logo.png"
        self._uinterface=None
    
    def set_uinterface(self, o):
        self._uinterface=o
    
    def set_name(self, k):
        self._name=k
        self._etc_path = u"/etc/" + self._name.lower()
    
    def set_logo_path(self, pth):
        self._logo_path=pth
    
    def set_current_path(self, pth):
        self._current_path=pth
    
    def set_install_path(self, pth):
        self._install_path=pth
        
    def set_install_log(self, log):
        self._install_log=log
        
    def get_proposal_path(self):
        return u"/usr/share/" + self._name.lower()
    
    def get_install_path(self) :
        if utils.path_exists(self._etc_path):
            f = utils.file_open(self._etc_path,"rb")
            try:
                s=f.read()
                ar = json.loads(utils.bytes_to_str(s,"utf8"))
                pth = ar["path"]
                if utils.path_exists(pth):
                    return pth
            finally:
                f.close()
        return  None
    
    def is_task_running(self, pid):
        try:
            os.kill(pid, 0)
        except OSError:
            return False
        return True
    
    def check_init_run(self):
        return None         
     
    def check_init_install(self, onlycheck=False):
        if os.geteuid() != 0: #DEVE ESSERE EUID
            return messages.get_message("linuxRootPrivileges")
        return None
    
    def check_init_uninstall(self):
        if os.geteuid() != 0: #DEVE ESSERE EUID
            return messages.get_message("linuxRootPrivileges")
        return None

    def stop_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc stop", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def start_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc start", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def replace_key_file(self, path, lst):
        fin = utils.file_open(path, "r", encoding="utf-8")
        data = fin.read()
        fin.close()
        fout = utils.file_open(path, "w", encoding="utf-8")
        for k in lst:
            data = data.replace(k,lst[k])
        fout.write(data)
        fout.close()
    
    def get_replace_list(self):
        return {
                u"@NAME@": self._name, 
                u"@EXE_NAME@": self._name.lower(), 
                u"@PATH_DWA@": self._install_path,
                u"@PATH_LOGOOS@": self._install_path + self._logo_path
            }
    
    def prepare_file_service(self, pth):
        lstrepl = self.get_replace_list()
        fdwagsvc=pth + utils.path_sep + u"dwagsvc"
        self.replace_key_file(fdwagsvc, lstrepl)
        utils.path_change_permissions(fdwagsvc,  stat.S_IRWXU + stat.S_IRGRP + stat.S_IROTH)
        fdwagent=pth + utils.path_sep + u"dwagent.service"
        if self._name.lower()!=u"dwagent":
            utils.path_rename(fdwagent,pth + utils.path_sep  + self._name.lower() + u".service")
            fdwagent=pth + utils.path_sep  + self._name.lower() + u".service"
        self.replace_key_file(fdwagent, lstrepl)
        utils.path_change_permissions(fdwagent,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)        
        fdwagent=pth + utils.path_sep + u"dwagent.openrc"
        if self._name.lower()!=u"dwagent":
            utils.path_rename(fdwagent,pth + utils.path_sep  + self._name.lower() + u".openrc")
            fdwagent=pth + utils.path_sep  + self._name.lower() + u".openrc"
        self.replace_key_file(fdwagent, lstrepl)
        utils.path_change_permissions(fdwagent,  stat.S_IRWXU + stat.S_IRGRP + stat.S_IROTH)
        
    
    def prepare_file_sh(self, pth):
        lstrepl = self.get_replace_list()        
        appf=pth + utils.path_sep + u"dwagent"        
        if self._name.lower()!=u"dwagent":
            utils.path_rename(appf, pth + utils.path_sep + self._name.lower())
            appf=pth + utils.path_sep + self._name.lower()
        self.replace_key_file(appf, lstrepl)        
        utils.path_change_permissions(appf,  stat.S_IRWXU + stat.S_IRGRP +  stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        
        appf=pth + utils.path_sep + u"configure"
        self.replace_key_file(appf, lstrepl)
        utils.path_change_permissions(appf,  stat.S_IRWXU + stat.S_IRGRP +  stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        
        appf=pth + utils.path_sep + u"uninstall"
        self.replace_key_file(appf, lstrepl)
        utils.path_change_permissions(appf,  stat.S_IRWXU + stat.S_IRGRP +  stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        
        #Menu
        fmenuconf=pth + utils.path_sep + u"dwagent.desktop"
        if utils.path_exists(fmenuconf):
            if self._name.lower()!=u"dwagent":
                utils.path_rename(fmenuconf, pth + utils.path_sep + self._name.lower() + u".desktop")
                fmenuconf=pth + utils.path_sep + self._name.lower() + u".desktop"        
            self.replace_key_file(fmenuconf, lstrepl)
            utils.path_change_permissions(fmenuconf,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
        
    
    def prepare_file_monitor(self, pth):
        lstrepl = self.get_replace_list()
        appf=pth + utils.path_sep + u"systray"
        if utils.path_exists(appf):
            self.replace_key_file(appf, lstrepl)
            utils.path_change_permissions(appf,  stat.S_IRWXU + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        
        fmenusystray=pth + utils.path_sep + u"systray.desktop"
        if utils.path_exists(fmenusystray):
            self.replace_key_file(fmenusystray, lstrepl)
            utils.path_change_permissions(fmenusystray,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
    
    def prepare_file(self):
        self.prepare_file_service(self._install_path + utils.path_sep + u"native")
        self.prepare_file_sh(self._install_path + utils.path_sep + u"native")
        self.prepare_file_monitor(self._install_path + utils.path_sep + u"native")
    
    def prepare_file_runonfly(self, runcode):
        None
    
    def start_runonfly(self, runcode):
        pargs=[]
        pargs.append(sys.executable)
        pargs.append(u"agent.py")
        pargs.append(u"-runonfly")
        pargs.append(u"-filelog")
        if runcode is not None:
            pargs.append(u"runcode=" + runcode)
        
        libenv = os.environ
        libenv["LD_LIBRARY_PATH"]=utils.path_absname(self._current_path + utils.path_sep + u"runtime" + utils.path_sep + u"lib")
        return subprocess.Popen(pargs, env=libenv)

    
    def prepare_runtime_by_os(self,ds):
        utils.path_makedir(ds)
        utils.path_makedir(ds + utils.path_sep + u"bin")
        utils.path_makedir(ds + utils.path_sep + u"lib")
        utils.path_symlink(sys.executable, ds + utils.path_sep + u"bin" + utils.path_sep + self._name.lower())
        return True;
    
    def install_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc install", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def delete_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc delete", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def install_auto_run_monitor(self):
        try:
            pautos = u"/etc/xdg/autostart"
            utils.path_copy(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"systray.desktop", pautos + utils.path_sep + self._name.lower() + u"_systray.desktop")
            utils.path_change_permissions(pautos + utils.path_sep + self._name.lower() + u"_systray.desktop",  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
            if self._uinterface.is_gui() and utils.path_exists(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"systray"):
                os.system(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"systray")
        except:
            None
        return True
    
    def remove_auto_run_monitor(self):
        try:
            fnm = u"/etc/xdg/autostart/" + self._name.lower() + u"_systray.desktop"
            if utils.path_exists(fnm):
                utils.path_remove(fnm)
        except:
            None
        return True
    
    def install_extra(self):
        return True
    
    def install_shortcuts(self):
        try:
            #Crea MENU
            utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc install_shortcuts", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
            
            #CREA /etc/dwagent
            if utils.path_exists(self._etc_path):
                utils.path_remove(self._etc_path)
            ar = {"path": self._install_path}
            s = json.dumps(ar, sort_keys=True, indent=1)
            f = utils.file_open(self._etc_path, "wb")
            f.write(utils.str_to_bytes(s,"utf8"))            
            f.close()
            return True
        except:
            return False
        
        
    def remove_shortcuts(self) :
        try:
            #RIMUOVE /etc/dwagent
            if utils.path_exists(self._etc_path):
                utils.path_remove(self._etc_path)
                
            #RIMUOVE MENU
            utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc uninstall_shortcuts", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
        
            return True
        except:
            return False

class NativeMac:
    
    def __init__(self):
        self._name=None
        self._current_path = None
        self._install_path = None
        self._svcnm = None
        self._lacnm = None
        self._systraynm = None
        self._logo_path=u"/ui/images/logo.icns"
        self._uinterface=None
    
    def set_uinterface(self, o):
        self._uinterface=o

    def set_name(self, k):
        self._name=k
        if self._name.lower()==u"dwagent":            
            self._svcnm = u"net.dwservice.agsvc"
            self._lacnm = u"net.dwservice.aglac"
            self._systraynm = u"net.dwservice.agsystray"
        else:
            self._svcnm = u"com.apiremoteaccess." + self._name.lower() + u"svc"
            self._lacnm = u"com.apiremoteaccess." + self._name.lower() + u"lac"
            self._systraynm = u"com.apiremoteaccess." + self._name.lower() +  u"systray"
        
    def set_logo_path(self, pth):
        self._logo_path=pth
    
    def set_current_path(self, pth):
        self._current_path=pth

    def set_install_path(self, pth):
        self._install_path=pth
        
    def set_install_log(self, log):
        self._install_log=log
        
    def get_proposal_path(self):
        return u"/Library/" + self._name 
    
    def get_install_path(self) :        
        ldpth = u"/Library/LaunchDaemons/" + self._svcnm + u".plist"
        if utils.path_exists(ldpth) and utils.path_islink(ldpth):
            return utils.path_dirname(utils.path_dirname(utils.path_realname(ldpth)))
        
        if self._name.lower()==u"dwagent":
            #KEEP FOR COMPATIBILITY
            oldlncdmn_path = u"/Library/LaunchDaemons/net.dwservice.agent.plist"
            if utils.path_exists(oldlncdmn_path) and utils.path_islink(oldlncdmn_path):
                return utils.path_dirname(utils.path_dirname(utils.path_realname(oldlncdmn_path)))
            #KEEP FOR COMPATIBILITY                        
            oldlncdmn_path = u"/System/Library/LaunchDaemons/org.dwservice.agent.plist"
            if utils.path_exists(oldlncdmn_path) and utils.path_islink(oldlncdmn_path):
                return utils.path_dirname(utils.path_dirname(utils.path_realname(oldlncdmn_path)))        
        
        return None             
    
    def is_task_running(self, pid):
        try:
            os.kill(pid, 0)
        except OSError:
            return False
        return True
    
    def check_init_run(self):
        return None
    
    def check_init_install(self, onlycheck=False):
        if os.geteuid() != 0: #MUST BE EUID
            if onlycheck:
                return messages.get_message("linuxRootPrivileges")
            else:
                f = utils.file_open(u"runasadmin.install", "wb")
                f.close()
                raise SystemExit
        return None
    
    def check_init_uninstall(self):
        if os.geteuid() != 0: #MUST BE EUID
            return messages.get_message(u"linuxRootPrivileges")
        return None

    #2024 11 27 KEEP COMPATIBILITY OLD INSTALLATION
    def _get_os_ver(self):
        try:
            sver = platform.mac_ver()[0]
            ar = sver.split(".")
            if len(ar)==0:
                return [99999,99999]
            elif len(ar)==1:
                return [int(ar[0]),0]
            else:
                return [int(ar[0]),int(ar[1])]
        except:
            return [99999,99999]
    
    '''
    def _bootstrap_agent(self,pn):
        arver=self._get_os_ver()
        if arver[0]<10 or (arver[0]==10 and arver[1]<=9):
            utils.system_call(u"sudo -u $(id -nu `stat -f '%u' /dev/console`) launchctl load -S Aqua /Library/LaunchAgents/" + pn, shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
        else:
            utils.system_call(u"launchctl bootstrap gui/`stat -f '%u' /dev/console` /Library/LaunchAgents/" + pn, shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
    '''
    
    #2024 11 27 KEEP COMPATIBILITY OLD INSTALLATION
    def _bootout_agent(self,pn):
        arver=self._get_os_ver()
        if arver[0]<10 or (arver[0]==10 and arver[1]<=9):
            utils.system_call(u"launchctl unload /Library/LaunchAgents/" + pn, shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
            utils.system_call(u"for USER in `users`; do sudo -u $USER launchctl unload -S Aqua /Library/LaunchAgents/" + pn + "; done", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
        else:
            utils.system_call(u"launchctl bootout gui/0 /Library/LaunchAgents/" + pn, shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
            utils.system_call(u"for USER in `users`; do launchctl bootout gui/`id -u $USER` /Library/LaunchAgents/" + pn + "; done", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
            self._install_log.flush()
    
    def stop_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc stop", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def start_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc start", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def get_replace_list(self):
        return {
            u"@NAME@": self._name, 
            u"@EXE_NAME@": self._name.lower(), 
            u"@PATH_DWA@": self._install_path,
            u"@PATH_LOGOOS@": self._install_path + self._logo_path,
            u"@LDNAME_SERVICE@": self._svcnm ,
            u"@LDNAME_LAC@": self._lacnm ,
            u"@LDNAME_SYSTRAY@": self._systraynm 
        }
    
    def replace_key_file(self, path, enc,  lst):
        fin=utils.file_open(path, "r", enc)
        data = fin.read()
        fin.close()
        fout=utils.file_open(path,"w", enc)
        for k in lst:
            data = data.replace(k,lst[k])
        fout.write(data)
        fout.close()
            
    def prepare_file_service(self, pth):
        lstrepl = self.get_replace_list()
        #Service
        fapp=pth + utils.path_sep + "dwagsvc"
        self.replace_key_file(fapp, "utf-8", lstrepl)
        utils.path_change_permissions(fapp,  stat.S_IRWXU + stat.S_IRGRP + stat.S_IROTH)
        
        fapp=pth + utils.path_sep + "dwagsvc.plist"
        self.replace_key_file(fapp, "utf-8", lstrepl)
        utils.path_change_permissions(fapp,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
        
        #Lac
        fapp=pth + utils.path_sep + "dwaglac.plist"
        self.replace_key_file(fapp, "utf-8", lstrepl)
        utils.path_change_permissions(fapp,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
        
        #DWAGENTSVC
        #utils.path_change_permissions(pth + u"/DWAgentSvc.app/Contents/MacOS/DWAgentSvc",  stat.S_IRWXU + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)           
        
    
    def prepare_file_app(self, pth):
        lstrepl = self.get_replace_list()
        self.replace_key_file(pth + u"/dwagent", "utf-8", lstrepl)
        utils.path_change_permissions(pth + u"/dwagent",  stat.S_IRUSR + stat.S_IWUSR + stat.S_IXUSR + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        
        '''
        utils.path_makedir(pth + u"/DWAgent.app/Contents/Resources")
        utils.path_copy(self._install_path + self._logo_path, pth + u"/DWAgent.app/Contents/Resources/Icon.icns")
        shutil.copytree(pth + u"/DWAgent.app",pth + u"/Configure.app")
        shutil.copytree(pth + u"/DWAgent.app",pth + u"/Uninstall.app")
        idname=u"net.dwservice."
        if self._name.lower()!=u"dwagent":
            shutil.move(pth + u"/DWAgent.app",pth + u"/" + self._name + u".app")            
            idname=u"com.apiremoteaccess."
        
        #DWAGENT
        utils.path_change_permissions(pth + u"/" + self._name + u".app/Contents/MacOS/Run",  stat.S_IRUSR + stat.S_IWUSR + stat.S_IXUSR + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)           
        lstrepl = self.get_replace_list()
        lstrepl["@MOD_DWA@"]=u"monitor"
        self.replace_key_file(pth + u"/" + self._name + u".app/Contents/MacOS/Run", "utf-8", lstrepl)
        lstrepl["@ID_NAME@"]=idname + lstrepl["@EXE_NAME@"] 
        self.replace_key_file(pth + u"/" + self._name + u".app/Contents/Info.plist", "utf-8", lstrepl)        
        
        #CONFIGURE
        utils.path_change_permissions(pth + u"/Configure.app/Contents/MacOS/Run",  stat.S_IRUSR + stat.S_IWUSR + stat.S_IXUSR + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        lstrepl = self.get_replace_list()
        lstrepl["@MOD_DWA@"]=u"configure"
        self.replace_key_file(pth + u"/Configure.app/Contents/MacOS/Run", "utf-8", lstrepl)
        lstrepl["@NAME@"]=u"Configure"
        lstrepl["@EXE_NAME@"]=u"configure"        
        lstrepl["@ID_NAME@"]=idname + lstrepl["@EXE_NAME@"]
        self.replace_key_file(pth + u"/Configure.app/Contents/Info.plist", "utf-8", lstrepl)                
        
        #UNINSTALL        
        utils.path_change_permissions(pth + u"/Uninstall.app/Contents/MacOS/Run",  stat.S_IRUSR + stat.S_IWUSR + stat.S_IXUSR + stat.S_IRGRP + stat.S_IXGRP + stat.S_IROTH + stat.S_IXOTH)
        lstrepl = self.get_replace_list()
        lstrepl["@MOD_DWA@"]=u"uninstall"
        self.replace_key_file(pth + u"/Uninstall.app/Contents/MacOS/Run", "utf-8", lstrepl)
        lstrepl["@NAME@"]=u"Uninstall"
        lstrepl["@EXE_NAME@"]=u"uninstall"        
        lstrepl["@ID_NAME@"]=idname + lstrepl["@EXE_NAME@"]
        self.replace_key_file(pth + u"/Uninstall.app/Contents/Info.plist", "utf-8", lstrepl)
        '''                
    
    def prepare_file_monitor(self, pth):
        lstrepl = self.get_replace_list()
        
        fapp=pth + utils.path_sep + "dwagsystray.plist"
        self.replace_key_file(fapp, "utf-8", lstrepl)
        utils.path_change_permissions(fapp,  stat.S_IRUSR + stat.S_IWUSR + stat.S_IRGRP + stat.S_IROTH)
        
        
    def prepare_file(self):
        self.prepare_file_service(self._install_path + utils.path_sep + u"native")
        self.prepare_file_app(self._install_path + utils.path_sep + u"native")
        self.prepare_file_monitor(self._install_path + utils.path_sep + u"native")
    
    def prepare_file_runonfly(self, runcode):
        None

    def start_runonfly(self, runcode):
        pargs=[]
        pargs.append(sys.executable)
        pargs.append(u"agent.py")
        pargs.append(u"-runonfly")
        pargs.append(u"-filelog")
        if runcode is not None:
            pargs.append(u"runcode=" + runcode)
        libenv = os.environ
        libenv["LD_LIBRARY_PATH"]=utils.path_absname(self._current_path + utils.path_sep + u"runtime" + utils.path_sep + u"lib")
        return subprocess.Popen(pargs, env=libenv)

    def prepare_runtime_by_os(self,ds):
        utils.path_makedir(ds)
        utils.path_makedir(ds + utils.path_sep + u"bin")
        utils.path_makedir(ds + utils.path_sep + u"lib")
        utils.path_symlink(sys.executable, ds + utils.path_sep + u"bin" + utils.path_sep + self._name.lower())
        return True;
    
    def install_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc install", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def delete_service(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc delete", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def install_auto_run_monitor(self):
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc installAutoRun", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        '''
        bret = (ret==0)
        if bret:
            #Start systray
            self._bootstrap_agent(self._systraynm + u".plist")
        '''
        return ret==0
    
    def remove_auto_run_monitor(self):
        if get_installer_ver(self._install_path)<3:
            #Stop systray 2024 11 27 KEEP COMPATIBILITY OLD INSTALLATION
            self._bootout_agent(self._systraynm + u".plist")
        ret = utils.system_call(self._install_path + utils.path_sep + u"native" + utils.path_sep + u"dwagsvc removeAutoRun", shell=True, stdout=self._install_log, stderr=subprocess.STDOUT)
        self._install_log.flush()
        return ret==0
    
    def install_extra(self):
        return True
    
    def install_shortcuts(self):
        try:
            pathsrc = self._install_path + utils.path_sep + u"native/" + self._name + u".app"
            pathdst = u"/Applications/" + self._name +u".app"
            if utils.path_exists(pathdst):
                utils.path_remove(pathdst)
            shutil.copytree(pathsrc, pathdst, symlinks=True)                
            return True
        except:
            return False
        
    def remove_shortcuts(self) :
        try:
            pathsrc = u"/Applications/" + self._name + u".app"
            if utils.path_exists(pathsrc):
                utils.path_remove(pathsrc)
            return True
        except:
            return False


if gdi.is_windows():
    
    if utils.is_py2():
        import types
        import _subprocess
        from ctypes import byref, windll, c_char_p, c_wchar_p, c_void_p, Structure, sizeof, c_wchar, WinError
        from ctypes.wintypes import BYTE, WORD, LPWSTR, BOOL, DWORD, LPVOID, HANDLE
    
        class NativeWindowsPopenUnicodeSTARTUPINFOW(Structure):
            _fields_ = [
                ("cb",              DWORD),  ("lpReserved",    LPWSTR),
                ("lpDesktop",       LPWSTR), ("lpTitle",       LPWSTR),
                ("dwX",             DWORD),  ("dwY",           DWORD),
                ("dwXSize",         DWORD),  ("dwYSize",       DWORD),
                ("dwXCountChars",   DWORD),  ("dwYCountChars", DWORD),
                ("dwFillAtrribute", DWORD),  ("dwFlags",       DWORD),
                ("wShowWindow",     WORD),   ("cbReserved2",   WORD),
                ("lpReserved2",     ctypes.POINTER(BYTE)), ("hStdInput",     HANDLE),
                ("hStdOutput",      HANDLE), ("hStdError",     HANDLE),
            ]
        
        
        class NativeWindowsPopenUnicodePROCESS_INFORMATION(Structure):
            _fields_ = [
                ("hProcess",         HANDLE), ("hThread",          HANDLE),
                ("dwProcessId",      DWORD),  ("dwThreadId",       DWORD),
            ]
        
        
        class NativeWindowsPopenUnicodeHANDLE(ctypes.c_void_p):
        
            def __init__(self, *a, **kw):
                super(NativeWindowsPopenUnicodeHANDLE, self).__init__(*a, **kw)
                self.closed = False
        
            def Close(self):
                if not self.closed:
                    windll.kernel32.CloseHandle(self)
                    self.closed = True
        
            def __int__(self):
                return self.value
    
        
        NativeWindowsPopenUnicodeCreateProcessW = windll.kernel32.CreateProcessW
        NativeWindowsPopenUnicodeCreateProcessW.argtypes = [
            c_char_p, c_wchar_p, c_void_p,
            c_void_p, BOOL, DWORD, LPVOID, c_char_p,
            ctypes.POINTER(NativeWindowsPopenUnicodeSTARTUPINFOW), ctypes.POINTER(NativeWindowsPopenUnicodePROCESS_INFORMATION),
        ]
        NativeWindowsPopenUnicodeCreateProcessW.restype = BOOL
    
        class NativeWindowsPopenUnicode(subprocess.Popen):
            
            def _createProcessW(self, executable, args, _p_attr, _t_attr,
                              inherit_handles, creation_flags, env, cwd,
                              startup_info):
                si = NativeWindowsPopenUnicodeSTARTUPINFOW(
                    dwFlags=startup_info.dwFlags,
                    wShowWindow=startup_info.wShowWindow,
                    cb=sizeof(NativeWindowsPopenUnicodeSTARTUPINFOW),
                    hStdInput=int(startup_info.hStdInput),
                    hStdOutput=int(startup_info.hStdOutput),
                    hStdError=int(startup_info.hStdError),
                )    
                wenv = None
                if env is not None:
                    '''
                    env = (utils.str_new("").join([
                        utils.str_new("%s=%s\0") % (k, v)
                        for k, v in env.items()])) + utils.str_new("\0")
                    '''
                    appenv=[]
                    for k, v in env.items():
                        k = utils.str_new(k)
                        n= ctypes.windll.kernel32.GetEnvironmentVariableW(k, None, 0)
                        if n>0:
                            buf= ctypes.create_unicode_buffer(u"\0"*n)
                            ctypes.windll.kernel32.GetEnvironmentVariableW(k, buf, n)
                            appenv.append(utils.str_new("%s=%s\0") % (k , buf.value))
                    appenv.append(utils.str_new("\0"))
                    env = utils.str_new("").join(appenv)
                    wenv = (c_wchar * len(env))()
                    wenv.value = env
            
                pi = NativeWindowsPopenUnicodePROCESS_INFORMATION()
                creation_flags |= 0x00000400 #CREATE_UNICODE_ENVIRONMENT
            
                if NativeWindowsPopenUnicodeCreateProcessW(executable, args, None, None,
                                  inherit_handles, creation_flags,
                                  wenv, cwd, byref(si), byref(pi)):
                    return (NativeWindowsPopenUnicodeHANDLE(pi.hProcess), NativeWindowsPopenUnicodeHANDLE(pi.hThread),
                            pi.dwProcessId, pi.dwThreadId)
                raise WinError()
        
        
            def _execute_child(self, args, executable, preexec_fn, close_fds,
                                   cwd, env, universal_newlines,
                                   startupinfo, creationflags, shell, to_close,
                                   p2cread, p2cwrite,
                                   c2pread, c2pwrite,
                                   errread, errwrite):
                    """Execute program (MS Windows version)"""
        
                    if not isinstance(args, types.StringTypes):
                        args = subprocess.list2cmdline(args)
        
                    # Process startup details
                    if startupinfo is None:
                        startupinfo = subprocess.STARTUPINFO()
                    if None not in (p2cread, c2pwrite, errwrite):
                        startupinfo.dwFlags |= _subprocess.STARTF_USESTDHANDLES
                        startupinfo.hStdInput = p2cread
                        startupinfo.hStdOutput = c2pwrite
                        startupinfo.hStdError = errwrite
        
                    if shell:
                        startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
                        startupinfo.wShowWindow = _subprocess.SW_HIDE
                        comspec = os.environ.get("COMSPEC", utils.str_new("cmd.exe"))
                        args = utils.str_new('{} /c "{}"').format (comspec, args)
                        if (_subprocess.GetVersion() >= 0x80000000 or
                                utils.path_basename(comspec).lower() == "command.com"):
                            w9xpopen = self._find_w9xpopen()
                            args = utils.str_new('"%s" %s') % (w9xpopen, args)
                            creationflags |= _subprocess.CREATE_NEW_CONSOLE
        
                    def _close_in_parent(fd):
                        fd.Close()
                        to_close.remove(fd)
        
                    try:
                        hp, ht, pid, tid = self._createProcessW(executable, args,
                                                 None, None,
                                                 int(not close_fds),
                                                 creationflags,
                                                 env,
                                                 cwd,
                                                 startupinfo)
                    except subprocess.pywintypes.error as e:
                        raise WindowsError(*e.args)
                    finally:
                        if p2cread is not None:
                            _close_in_parent(p2cread)
                        if c2pwrite is not None:
                            _close_in_parent(c2pwrite)
                        if errwrite is not None:
                            _close_in_parent(errwrite)
        
                    self._child_created = True
                    self._handle = hp
                    self.pid = pid
                    ht.Close()
        
        NativeWindowsRegCloseKey = ctypes.windll.advapi32.RegCloseKey
        NativeWindowsRegCloseKey.restype = ctypes.c_long
        NativeWindowsRegCloseKey.argtypes = [ctypes.c_void_p]
        
        NativeWindowsRegOpenKeyEx = ctypes.windll.advapi32.RegOpenKeyExW
        NativeWindowsRegOpenKeyEx.restype = ctypes.c_long
        NativeWindowsRegOpenKeyEx.argtypes = [ctypes.c_void_p, ctypes.c_wchar_p, ctypes.c_ulong,
                                 ctypes.c_ulong, ctypes.POINTER(ctypes.c_void_p)]
        
        RegQueryValueEx = ctypes.windll.advapi32.RegQueryValueExW
        RegQueryValueEx.restype = ctypes.c_long
        RegQueryValueEx.argtypes = [ctypes.c_void_p, ctypes.c_wchar_p, ctypes.POINTER(ctypes.wintypes.DWORD), ctypes.POINTER(ctypes.wintypes.DWORD),
                                ctypes.POINTER(ctypes.wintypes.BYTE), ctypes.POINTER(ctypes.wintypes.DWORD)]

    else:        
        
        from ctypes.wintypes import BYTE, WORD, LPWSTR, BOOL, DWORD, LPVOID, HANDLE
        
        NativeWindowsPopenUnicode=subprocess.Popen
                        
        dll_advapi32 = ctypes.WinDLL("advapi32")
        NativeWindowsRegCloseKey = dll_advapi32.RegCloseKey
        NativeWindowsRegCloseKey.restype = ctypes.c_long
        NativeWindowsRegCloseKey.argtypes = [ctypes.c_void_p]
        
        NativeWindowsRegOpenKeyEx = dll_advapi32.RegOpenKeyExW
        NativeWindowsRegOpenKeyEx.restype = ctypes.c_long
        NativeWindowsRegOpenKeyEx.argtypes = [ctypes.c_void_p, ctypes.c_wchar_p, ctypes.c_ulong,
                                 ctypes.c_ulong, ctypes.POINTER(ctypes.c_void_p)]
        
        RegQueryValueEx = dll_advapi32.RegQueryValueExW
        RegQueryValueEx.restype = ctypes.c_long
        RegQueryValueEx.argtypes = [ctypes.c_void_p, ctypes.c_wchar_p, ctypes.POINTER(ctypes.wintypes.DWORD), ctypes.POINTER(ctypes.wintypes.DWORD),
                                ctypes.POINTER(ctypes.wintypes.BYTE), ctypes.POINTER(ctypes.wintypes.DWORD)]
        


class NativeWindows:
        
    def __init__(self):
        self._name=None
        self._current_path=None
        self._install_path=None
        self._os_env=None
        self._py_exe=None
        self._runtime=None
        self._logo_path=u"\\ui\\images\\logo.ico"
        self._uinterface=None
    
    def set_uinterface(self, o):
        self._uinterface=o
    
    def set_name(self, k):
        self._name=k
        self._runtime=k.lower() + u".exe"
    
    def set_logo_path(self, pth):
        self._logo_path=pth
    
    def set_current_path(self, pth):
        self._current_path=pth
    
    def set_install_path(self, pth):
        self._install_path=pth
        
    def set_install_log(self, log):
        None
        #self._install_log=log

    def get_proposal_path(self):
        return utils.str_new(os.environ["ProgramFiles"]) + utils.path_sep + self._name
    
    def get_install_path(self) :
        vret = None
        try:
            rk = ctypes.c_void_p()
            #HKEY_LOCAL_MACHINE = 0x80000002
            ret = NativeWindowsRegOpenKeyEx(ctypes.c_void_p(0x80000002), u"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + self._name, 0, 0x20019, ctypes.cast(ctypes.byref(rk), ctypes.POINTER(ctypes.c_void_p)))
            if ret == 0:
                sz = 256
                tp = ctypes.wintypes.DWORD()
                while True:
                    tmp_size = ctypes.wintypes.DWORD(sz)
                    buf = ctypes.create_string_buffer(sz)
                    ret = RegQueryValueEx(rk, u"InstallLocation", ctypes.POINTER(ctypes.wintypes.DWORD)(),
                                         ctypes.byref(tp),
                                         ctypes.cast(buf, ctypes.POINTER(ctypes.wintypes.BYTE)), ctypes.byref(tmp_size))
                    if ret != 234:
                        break
                    sz *= 2
                if ret == 0:
                    if tp.value == 1 or tp.value == 2:
                        vret = ctypes.wstring_at(buf, tmp_size.value // 2).rstrip(u"\x00")
                    elif tp.value != 4 or tp.value != 7:
                        vret = ctypes.string_at(buf, tmp_size.value)
                
                NativeWindowsRegCloseKey(rk)
            return vret
        except:
            None 
        return None
    
    def is_task_running(self, pid):
        return gdi.is_windows_task_running(pid)
    
    def check_init_run(self):
        if gdi.is_windows_user_in_admin_group():
            if gdi.is_windows_run_as_admin():
                if gdi.is_windows_process_elevated():
                    return None
                else:
                    f = utils.file_open(u"runasadmin.install", "w", encoding="utf-8")
                    f.close()
                    raise SystemExit
            else:
                f = utils.file_open(u"runasadmin.run", "w", encoding="utf-8")
                f.close()
                raise SystemExit
        else:
            return None
    
    def check_init_install(self, onlycheck=False):
        if gdi.is_windows_user_in_admin_group() and gdi.is_windows_run_as_admin():
            if gdi.is_windows_process_elevated():
                return None
            else:
                if onlycheck:
                    return messages.get_message("windowsAdminPrivileges")
                else:
                    f = utils.file_open(u"runasadmin.install", "w", encoding="utf-8")
                    f.close()
                    raise SystemExit
        else:
            if onlycheck:
                return messages.get_message("windowsAdminPrivileges")
            else:
                f = utils.file_open(u"runasadmin.install", "w", encoding="utf-8")
                f.close()
                raise SystemExit
                        
    
    def check_init_uninstall(self):
        if gdi.is_windows_user_in_admin_group() and gdi.is_windows_run_as_admin():
            try:
                if gdi.is_windows_process_elevated():
                    return None
                else:
                    return messages.get_message("windowsAdminPrivileges")
            except:
                return None #XP
        else:
            return messages.get_message("windowsAdminPrivileges")
        
    
    def prepare_file(self):
        #Scrive service.properties
        pth=self._install_path
        arf = []
        arf.append(u"".join([u"serviceName=",self._name,u"\r\n"]))
        arf.append(u"".join([u"iconPath=" ,  pth, self._logo_path + u"\r\n"]))
        #FIX UNICODE PATH
        arf.append(u"".join([u"pythonHome=runtime\r\n"]))
        arf.append(u"".join([u"pythonPath=",  pth, utils.path_sep, u"runtime", utils.path_sep, self._runtime, u"\r\n"]))
        arf.append(u"parameters=-S -m agent -filelog")
        f=utils.file_open(pth + utils.path_sep + u"native" + utils.path_sep + u"service.properties", "w", encoding="utf-8") 
        f.write(u"".join(arf))
        f.close()
    
    def prepare_file_runonfly(self, runcode):
        #Scrive service.properties
        pth=self._install_path
        arf = []
        arf.append(u"".join([u"serviceName=",self._name + u"RunOnFly",u"\r\n"]))
        arf.append(u"".join([u"iconPath=" ,  pth, self._logo_path + u"\r\n"]))
        #FIX UNICODE PATH
        ar = self._current_path.split(utils.path_sep)
        arf.append(u"".join([u"pythonHome=.." + utils.path_sep + ar[len(ar)-1] + utils.path_sep + u"runtime\r\n"]))
        arf.append(u"".join([u"pythonPath=",  self._current_path, utils.path_sep, u"runtime", utils.path_sep, self._runtime, u"\r\n"]))
        arf.append(u"parameters=-S -m agent -runonfly -filelog")        
        if runcode is not None:
            arf.append(u" runcode=" + runcode)
        
        f=utils.file_open(pth + utils.path_sep + u"native" + utils.path_sep + u"service.properties", "w", encoding="utf-8") 
        f.write(u"".join(arf))
        f.close()        
        self._os_env = os.environ
        self._os_env["PYTHONHOME"] = u".." + utils.path_sep + ar[len(ar)-1] + utils.path_sep + u"runtime"
        self._py_exe = self._current_path + utils.path_sep + u"runtime" + utils.path_sep + self._runtime    
    
    def start_runonfly(self, runcode):
        pargs=[]
        pargs.append(self._py_exe)
        pargs.append(u"-S")
        pargs.append(u"-m")
        pargs.append(u"agent")
        pargs.append(u"-runonfly")
        pargs.append(u"-filelog")
        if runcode is not None:
            pargs.append(u"runcode=" + runcode)         
        
        badmin=False
        if gdi.is_windows_user_in_admin_group() and gdi.is_windows_run_as_admin():
            try:
                if gdi.is_windows_process_elevated():
                    badmin=True
            except:
                badmin=True #XP
        if badmin:
            bsvcok=False
            cmd=u'"' + u'native' + utils.path_sep + u'dwagsvc.exe" startRunOnFly'
            appout = NativeWindowsPopenUnicode(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() 
            lines = utils.bytes_to_str(appout[0],"utf8").splitlines()
            for l in lines:
                if l=="OK":
                    bsvcok = True
            if bsvcok==False:
                return NativeWindowsPopenUnicode(pargs, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self._os_env)
            else:
                return None
        else:
            return NativeWindowsPopenUnicode(pargs, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self._os_env)
    
    def prepare_runtime_by_os(self,ds):
        return False;    
    
    def executecmd(self, cmd):
        appout = NativeWindowsPopenUnicode(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
        lines = utils.bytes_to_str(appout[0],"utf8").splitlines()
        for l in lines:
            if l=="OK":
                return True
        return False
    
    def stop_service(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" stopService'
        return self.executecmd(cmd)
    
    def start_service(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" startService'
        return self.executecmd(cmd)
    
    def install_service(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" installService'
        return self.executecmd(cmd)
    
    def delete_service(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" deleteService'
        return self.executecmd(cmd)
        
    def install_auto_run_monitor(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" installAutoRun'
        b = self.executecmd(cmd)
        if b==True:
            #run monitor
            cmdmon=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwaglnc.exe" systray' 
            NativeWindowsPopenUnicode(cmdmon, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
        return b    
    
    def remove_auto_run_monitor(self):
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" removeAutoRun'
        return self.executecmd(cmd)
    
    def install_extra(self):
        return True
    
    def install_shortcuts(self) :        
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" installShortcuts'
        return self.executecmd(cmd)
            
    def remove_shortcuts(self) :
        cmd=u'"' + self._install_path + utils.path_sep + u'native' + utils.path_sep + u'dwagsvc.exe" removeShortcuts'
        return self.executecmd(cmd)


class Install:
    
    def __init__(self):
        self._gotoopt=None
        self._silent=False
        self._options={}
        self._native = get_native()
        self._main_url = None
        self._ambient="PROD"
        self._uinterface=None
        self._current_path=None;
        self._install_path=ui.VarString()
        self._install_log_path=None
        self._install_log=None
        self._inatall_agent_mode=None
        self._install_code=ui.VarString()
        self._run_code=ui.VarString()
        self._install_newag_user=ui.VarString()
        self._install_newag_password=ui.VarString("", True)
        self._install_newag_group=ui.VarString()
        self._install_newag_name=ui.VarString()
        self._proxy_type=ui.VarString("SYSTEM")
        self._proxy_host=ui.VarString("")
        self._proxy_port=ui.VarString("")
        self._proxy_user=ui.VarString("")
        self._proxy_password=ui.VarString("", True)
        self._proxy = None
        self._ipc_client = None
        self._name = None
        self._listen_port = 7950
        self._runWithoutInstall = False
        self._runWithoutInstallProxySet = False;
        self._runWithoutInstallAgentAlive = True
        self._runWithoutInstallAgentCloseByClient=False
        self._runWithoutInstallAgentCloseEnd=True
        self._skipcertsvalidity=False
        self._main_monitor=None
        self._bmock=False        
        
    
    def _get_message(self, key):
        smsg = messages.get_message(key)
        if self._name is not None:
            return smsg.replace(u"DWAgent",self._name)
        else:
            return smsg
    
    def _get_main_url(self):
        if self._main_url is not None:
            return self._main_url
        elif self._ambient=="QA":
            return _MAIN_URL_QA
        elif self._ambient=="DEV":
            return _MAIN_URL_DEV
        return _MAIN_URL

    def _uinterface_action(self,e):
        if e["action"]=="CLOSE":
            self._runWithoutInstallAgentAlive=False
            self._runWithoutInstallAgentCloseByClient=True
            if self._uinterface.is_gui():
                cnt=0
                while not self._runWithoutInstallAgentCloseEnd:
                    time.sleep(1)
                    cnt+=1
                    if cnt>=20:
                        break
            
    
    def start(self, aropts={}):
        self._options=aropts
        
        #debug purpose
        if 'mock' in self._options:
            self._bmock = self._options['mock']
            if "lang" in self._options:
                messages.set_locale(self._options["lang"])
        
        #Load install.json
        appjs=None
        if utils.path_exists("install.json"):
            f=None
            try:
                f = utils.file_open("install.json","rb")
                s=f.read()
                appjs = json.loads(utils.bytes_to_str(s,"utf8"))
            except:
                None
            finally:
                if f is not None:
                    f.close()
        elif 'install.json' in self._options:
            appjs = self._options['install.json']
            del self._options['install.json']
        if appjs is not None:
            for p in appjs:
                if p=="lang":
                    messages.set_locale(appjs[p])
                else:
                    self._options[p]=appjs[p]
                    
        self._gotoopt=None
        if "mainurl" in self._options:
            self._main_url=self._options["mainurl"]
        if "logpath" in self._options:
            self._install_log_path=self._options["logpath"]
            if self._install_log_path[len(self._install_log_path)-1:]==utils.path_sep or self._install_log_path[len(self._install_log_path)-1:]=='"':
                self._install_log_path=self._install_log_path[0:len(self._install_log_path)-1]
            if utils.path_isdir(self._install_log_path):
                self._install_log_path = self._install_log_path + utils.path_sep + "dwaginstall.log"
        if "gotoopt" in self._options:
            self._gotoopt=self._options["gotoopt"]
        bgui=True
        if "gui" in self._options:
            bgui=self._options["gui"]
        self._silent=False;
        if "silent" in self._options:
            self._silent=self._options["silent"]
            if self._silent:
                bgui=False
                messages.set_locale(None)
            self._gotoopt="install"        
                
        if "name" in self._options:
            self._name=utils.str_new(self._options["name"])
            self._native.set_name(self._name)
        else:
            self._native.set_name(u"DWAgent")
        
        self._current_path=utils.os_getcwd()
        if self._current_path.endswith(utils.path_sep) is True:
            self._current_path=self._current_path[0:len(self._current_path)-1]
        self._native.set_current_path(self._current_path)
        if self._silent:
            self._runWithoutInstall=False
        prmsui = {}
        if "title" in self._options:
            prmsui["title"]=self._options["title"]
        else:
            prmsui["title"]="DWAgent"
        if "topinfo" in self._options:
            prmsui["topinfo"]=self._options["topinfo"]
        if "topimage" in self._options:
            prmsui["topimage"]=self._options["topimage"]
        applg = gdi._get_logo_from_conf(self._options,None)
        if applg != "":
            prmsui["logo"]=applg
        if "leftcolor" in self._options:
            prmsui["leftcolor"]=self._options["leftcolor"]        
        self._uinterface = ui.UI(prmsui, self.step_init)
        self._native.set_uinterface(self._uinterface)        
        if not self._silent:
            self._uinterface.set_action(self._uinterface_action)
        self._uinterface.start(bgui)         
        self.close_req()
                
        #CHIUDE LOG
        try:
            if self._install_log is not None:
                self._install_log.close()
        except:
            None
                
    '''def _read_info_file(self):
        try:
            f = utils.file_open("info.json")
            prop = json.loads(f.read())
            f.close()   
            return prop
        except Exception:
            return None'''
    
    def step_init(self, curui):
        #Check if instraller version is valid for machine
        if not gdi.is_windows() and not gdi.is_linux() and not gdi.is_mac():
            return ui.Message(self._get_message('versionInstallNotValid').format(""))
        if not self._silent:
            chs = ui.Chooser()
                        
            #self._options["welcometext"]=self._get_message('confirmInstall').format("Pippo 123 pluto 986+56")
            #self._options["welcometext"]=self._get_message('confirmInstall').format("/usr/share/dwagent")
            #self._options["welcometext"]=self._get_message('confirmInstall').format("c:\\programs files\\dwagent")
            #self._options["welcometext"]=self._get_message('runWithoutInstallationWait').format("40%")
            #self._options["welcometext"]=self._get_message('runWithoutInstallationOnlineUser').format("MOCK")
            #self._options["welcometext"]=self._get_message('downloadFile').format("MOCK")
            #self._options["welcometext"]=self._get_message('downloadFile').format("config") + " (10%)"
            #self._options["welcometext"]="Prova pippo (10%)"            
            
            if "welcometext" in self._options:
                m=utils.str_new(self._options["welcometext"])
            else:            
                m=self._get_message('welcomeLicense') + "\n\n" 
                m+=self._get_message('welcomeSecurity') + "\n\n" 
                m+=self._get_message('welcomeSoftwareUpdates') + "\n\n"
                #m+=self._get_message('welcomePrivacyTerms')
                m+=self._get_message('welcomeTermsAndConditions').format(self._get_message('install'),self._get_message('runWithoutInstallation'))                
                
                p1 = m.index("https://www.dwservice.net/")
                p2 = m.index(".html",p1)
                surl= m[p1:p2+5]
                chs.add_message_hyperlink(p1, len(surl), "https://www.dwservice.net/licenses-sources.html")
                
                mtc = self._get_message('termsAndConditions')                
                ptc = m.index("#TERMSANDCONDITIONS")                
                chs.add_message_hyperlink(ptc, len(mtc), "https://www.dwservice.net/terms-and-conditions.html")
                m=m.replace("#TERMSANDCONDITIONS", mtc)
                '''
                mpp = self._get_message('privacyPolicy')
                ppp = m.index("#PRIVACYPOLICY")                
                chs.add_message_hyperlink(ppp, len(mpp), "https://www.dwservice.net/privacy-policy.html")
                m=m.replace("#PRIVACYPOLICY", mpp)
                '''
                
            chs.set_message(m)            
            chs.set_message_height(340)
            if "mode" in self._options and self._options["mode"]=="install":
                chs.add("install", self._get_message('install'))
            elif "mode" in self._options and self._options["mode"]=="run":
                chs.add("runWithoutInstallation", self._get_message('runWithoutInstallation'))
            else:
                chs.add("install", self._get_message('install'))
                chs.add("runWithoutInstallation", self._get_message('runWithoutInstallation'))
            chs.add("decline", self._get_message('decline'))
            chs.set_variable(ui.VarString("decline"))
            chs.set_accept_key("install;runWithoutInstallation")
            
            if self._gotoopt is not None:
                return self.step_install_choose(chs)
            else:
                chs.next_step(self.step_install_choose)
                return chs
        else:
            return self.step_install_choose(curui)
    
    def step_install_choose(self, curui):
        sopt=None
        if self._gotoopt is not None and self._gotoopt=="install":
            self._gotoopt=None
            sopt="install"
        elif self._gotoopt is not None and self._gotoopt=="run":
            self._gotoopt=None
            sopt="run"
        elif self._gotoopt is not None:
            self._gotoopt=None
            return self.step_init(curui)
        else:
            if curui.get_key() is None and curui.get_variable().get()=="runWithoutInstallation":
                if not self._silent:
                    if not self._bmock:
                        msg = self._native.check_init_run()
                        if msg is not None:
                            return ui.Message(msg)
                    sopt="run"
            else:
                if not self._silent:
                    if not self._bmock:
                        msg = self._native.check_init_install()
                        if msg is not None:
                            return ui.Message(msg)
                sopt="install"
                
        if sopt=="run":
            self._runWithoutInstall=True
            return self.step_install(curui)
        else:
            self._runWithoutInstall=False
            return self.step_check_already_install(curui)

    def step_check_already_install(self, curui):
        if not self._bmock:
            pth = self._native.get_install_path()
        else:
            pth=None
        if pth is not None:     
            if self._silent:       
                try:
                    if self._install_log_path is not None:
                        if self._install_log is None:
                            self._install_log = utils.file_open(self._install_log_path, "w", encoding='utf-8')
                        self._append_log(self._get_message('alreadyInstalled'))
                        self._install_log.close()
                        self._install_log=None
                        
                except:
                    None
            return ui.Message(self._get_message('alreadyInstalled'))
        else:
            if not self._silent and not gdi.is_mac():
                ipt = ui.Inputs()
                if self._install_path.get() is None:
                    self._install_path.set(self._native.get_proposal_path())
                ipt.set_message(self._get_message('selectPathInstall'))
                ipt.add('path', self._get_message('path'), self._install_path, True)
                ipt.prev_step(self.step_init)
                ipt.next_step(self.step_check_install_path)
                return ipt
            else:
                self._install_path.set(self._native.get_proposal_path())
                return self.step_check_install_path(curui)

    def step_check_install_path(self, curui):
        pth = self._install_path.get()
        if pth.startswith("#DEV#"):
            self._ambient="DEV"
            pth=pth[5:]
            self._install_path.set(pth)
        elif pth.startswith("#QA#"):
            self._ambient="QA"
            pth=pth[4:]
            self._install_path.set(pth)
        if not self._silent and not gdi.is_mac():
            if not self._bmock and utils.path_exists(pth):
                m=self._get_message('confirmInstall').format(pth) + u'\n' + self._get_message('warningRemovePath')
            else:
                m=self._get_message('confirmInstall').format(pth)
            chs = ui.Chooser()
            chs.set_message(m)
            chs.add("yes", self._get_message('yes'))
            chs.add("no", self._get_message('no'))
            chs.set_variable(ui.VarString("no"))
            chs.set_accept_key("yes")
            chs.prev_step(self.step_check_already_install)
            chs.next_step(self.step_install)
            return chs
        else:
            return self.step_install(curui)
    
    def _download_progress(self, rtp):
        if "downloadtext" in self._options:
            dwnmsg=self._options["downloadtext"]
        else:
            dwnmsg=self._get_message("downloadFile")
        perc = int((float(rtp.get_byte_transfer()) / float(rtp.get_byte_length())) * 100.0)
        msg=dwnmsg.format(rtp.get_property("file_name"))
        prog = rtp.get_property("prog_start") + ((rtp.get_property("prog_end") - rtp.get_property("prog_start")) * (float(perc)/100.0))
        if "downloadtext" in self._options:
            perc=None
        self._uinterface.wait_message(msg, perc, prog)
    
    def _download_file(self, url, name, pstart,  pend):
        pth = self._install_path.get()
        file_name = pth + utils.path_sep + name
        rtp = communication.Response_Transfer_Progress({"on_data": self._download_progress})
        rtp.set_property("file_name", name)
        rtp.set_property("prog_start", pstart)
        rtp.set_property("prog_end", pend)
        communication.download_url_file(url, file_name, self._proxy, rtp)
    
    def _check_hash_file(self, name, shash):
        pth = self._install_path.get()
        fpath=pth + utils.path_sep + name
        
        md5 = hashlib.md5()
        with utils.file_open(fpath,"rb") as f: 
            for chunk in iter(lambda: f.read(8192), b""): 
                md5.update(chunk)
        h = md5.hexdigest()
        if h!=shash:
            raise Exception("Hash not valid. (file '{0}').".format(name))

    def _unzip_file(self, name, unzippath):
        pth = self._install_path.get()
        if unzippath!="":
            unzippath+=utils.path_sep 
        fpath=pth + utils.path_sep + name
        zfile = utils.zipfile_open(fpath)
        for nm in zfile.namelist():
            npath=pth + utils.path_sep + unzippath
            appnm = nm
            appar = nm.split("/")
            if (len(appar)>1):
                appnm = appar[len(appar)-1]
                npath+= nm[0:len(nm)-len(appnm)].replace("/",utils.path_sep)
            if not utils.path_exists(npath):
                utils.path_makedirs(npath)
            npath+=appnm
            fd = utils.file_open(npath,"wb")
            fd.write(zfile.read(nm))
            fd.close()
        zfile.close()
        
        #TO REMOVE 03/11/2021 KEEP COMPATIBILITY WITH OLD LINUX INSTALLER
        try:
            if name=="agent.zip":
                if utils.path_exists(unzippath + "daemon.pyc"):
                    utils.path_remove(unzippath + "daemon.pyc")                    
        except:
            None
    
    def load_prop_json(self, fname):
        f = utils.file_open(fname, "rb")
        s=f.read()
        prp  = json.loads(utils.bytes_to_str(s,"utf8"))
        f.close()
        return prp        
    
    def store_prop_json(self, prp, fname):
        s = json.dumps(prp, sort_keys=True, indent=1)
        f = utils.file_open(fname, "wb")
        f.write(utils.str_to_bytes(s,"utf8"))
        f.close()
    
    def obfuscate_password(self, pwd):
        return utils.bytes_to_str(utils.enc_base64_encode(utils.zlib_compress(utils.str_to_bytes(pwd,"utf8"))))        

    def read_obfuscated_password(self, enpwd):
        return utils.bytes_to_str(utils.zlib_decompress(utils.enc_base64_decode(enpwd)),"utf8")
    
    def _copy_custom_images(self, prpconf, pth):
        ar = ["topimage", "logoxos", "logo16x16", "logo32x32", "logo48x48"]
        for nm in ar:
            if nm in prpconf and utils.path_exists(prpconf[nm]):
                dstpth = pth + utils.path_sep + "ui" + utils.path_sep + "images" + utils.path_sep + "custom"
                if not utils.path_exists(dstpth):
                    utils.path_makedirs(dstpth)
                utils.path_copy(self._options[nm], dstpth + utils.path_sep + self._options[nm])
    
    def _download_files(self, pstart, pend):
        iniperc=0;
        if "downloadtext" in self._options:
            dwnmsg=self._options["downloadtext"]
            iniperc=None
        else:
            dwnmsg=self._get_message("downloadFile")
        
        if self._bmock:            
            msg=dwnmsg.format(u"MOCK")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(2)
            self._uinterface.wait_message(msg, None,  pend)
            return
        
        pth = self._install_path.get()
        fileversions = {}
                        
        msg=dwnmsg.format(u"distr.json")
        self._uinterface.wait_message(msg,  iniperc,  pstart)
        jocheck={}
        jocheck["version"]=_INSTALLER_VERSION
        jocheck["os"]=get_os_type_code()
        jocheck["osname"]=get_os_type()        
        if self._runWithoutInstall:
            jocheck["mode"]="R"
        else:
            jocheck["mode"]="I"
        if self._silent:
            jocheck["silent"]={}
            if "key" in self._options:
                jocheck["silent"]["key"]=self._options["key"]                
            elif "user" in self._options:
                jocheck["silent"]["user"]=self._options["user"]
        scheck = utils.bytes_to_str(utils.enc_base64_encode(utils.str_to_bytes(json.dumps(jocheck),"utf8")))
        prpfiles = communication.get_url_prop(self._get_main_url() + "getAgentConfig.dw?id=latest&checkInstaller=" + scheck, self._proxy)
        if "error" in prpfiles:
            raise Exception(prpfiles["error"])
        prpconf = {}
        prpconf["url_primary"]=self._get_main_url()
        if "name" in self._options:
            prpconf["name"] = self._options["name"]
        if "topinfo" in self._options:
            prpconf["topinfo"]=self._options["topinfo"]
        if "topimage" in self._options and utils.path_exists(self._options["topimage"]):
            prpconf["topimage"]=self._options["topimage"]
        if "logoxos" in self._options and utils.path_exists(self._options["logoxos"]):
            prpconf["logoxos"]=self._options["logoxos"]
            self._native.set_logo_path(utils.path_sep + u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep + prpconf["logoxos"])        
        if "logo16x16" in self._options and utils.path_exists(self._options["logo16x16"]):
            prpconf["logo16x16"]=self._options["logo16x16"]
        if "logo32x32" in self._options and utils.path_exists(self._options["logo32x32"]):
            prpconf["logo32x32"]=self._options["logo32x32"]
        if "logo48x48" in self._options and utils.path_exists(self._options["logo48x48"]):
            prpconf["logo48x48"]=self._options["logo48x48"]
        if "leftcolor" in self._options:
            prpconf["leftcolor"]=self._options["leftcolor"]                    
        if not self._runWithoutInstall:
            if "listenport" in self._options:
                prpconf["listen_port"] = self._options["listenport"]
            else:
                prpconf["listen_port"] = self._listen_port
        
        if self._runWithoutInstall:
            try:
                bmonok=False
                if self._uinterface.is_gui():
                    try:
                        try:
                            from ui import monitor
                        except: #FIX INSTALLER
                            import monitor
                        bmonok=True
                    except:
                        None
                if utils.path_exists(self._install_path.get() + utils.path_sep +  u"config.json"):				
                    appconf = self.load_prop_json(self._install_path.get() + utils.path_sep +  u"config.json")
                    if "preferred_run_user" in appconf:
                        prpconf["preferred_run_user"]=appconf["preferred_run_user"]
                    if bmonok:
                        if "unattended_access" in appconf:
                            prpconf["unattended_access"]=appconf["unattended_access"]
                        else:
                            prpconf["unattended_access"]=False
                    else:
                        prpconf["unattended_access"]=True
                    if "ssl_cert_required" in appconf:
                        del prpconf["ssl_cert_required"] 
                else:
                    if bmonok:
                        prpconf["unattended_access"]=False
                    else:
                        prpconf["unattended_access"]=True
            except:
                None
        
        
        self._copy_custom_images(prpconf, pth)        
        if self._skipcertsvalidity:
            prpconf["ssl_cert_required"]=False        
        self.store_prop_json(prpconf, pth + utils.path_sep + u"config.json")
        
        if not (self._runWithoutInstall and utils.path_exists(pth + utils.path_sep + u"config.json") 
                and utils.path_exists(pth + utils.path_sep + u"versions.json") and utils.path_exists(pth + utils.path_sep + u"agent.py") 
                and utils.path_exists(pth + utils.path_sep + u"communication.py") and utils.path_exists(pth + utils.path_sep + u"ipc.py")):
            fls = []            
            import detectinfo
            appnsfx = detectinfo.get_native_suffix()
            if not self._runWithoutInstall:
                if appnsfx is not None:
                    fls.append({"suffix": appnsfx, "name":u"agentupd.zip", "unzippath":u"native"})
            
            fls.append({"name":"agent.zip", "unzippath":u""})
            if not self._runWithoutInstall:
                fls.append({"name":u"agentui.zip", "unzippath":u""})
            fls.append({"name":u"agentapps.zip", "unzippath":u""})            
            if appnsfx is not None:
                if not appnsfx=="linux_generic":
                    if not self._runWithoutInstall:
                        fls.append({"suffix": appnsfx, "name":u"agentui.zip", "unzippath":u"native"})
                    fls.append({"suffix": appnsfx, "name": u"agentlib.zip", "unzippath":u"native"})
            step = (pend-pstart) / float(len(fls))
            pos = pstart
            for i in range(len(fls)):
                fnm=fls[i]["name"];
                file_name = pth + utils.path_sep + fnm
                try:
                    utils.path_remove(file_name)
                except Exception:
                    None
                
                if "suffix" in fls[i]:
                    unm="agent/" + fls[i]["suffix"]+"/"+fnm
                else:
                    unm="agent/" + fnm
                fitm=prpfiles["files"][unm]
                self._append_log(u"Download file " + fnm + " ...")                
                self._download_file(self._get_main_url() + "app/" + fitm["file"], fnm, pos, pos+step)                
                self._append_log(u"Download file " + fnm + u".OK!")
                self._append_log(u"Check file hash " + fnm + " ...")
                self._check_hash_file(fnm, fitm["md5"])
                self._append_log(u"Check file hash " + fnm + u".OK!")
                self._append_log(u"Unzip file " + fnm + " ...")
                self._unzip_file(fnm, fls[i]["unzippath"])
                self._append_log(u"Unzip file " + fnm + u".OK!")
                try:
                    utils.path_remove(file_name)
                except Exception:
                    None
                fileversions[unm]=fitm
                pos+=step
            
            self.store_prop_json(fileversions, pth + utils.path_sep + u"versions.json")
    
    def _count_file_in_path(self, valid_path):
        x = 0
        for root, dirs, files in utils.path_walk(valid_path):
            for f in files:
                x = x+1
        return x

    def _copy_tree_file(self, fs, fd, msginfo):
        if utils.path_isdir(fs):
            if not utils.path_exists(fd):
                utils.path_makedirs(fd)
            lst=utils.path_list(fs)
            for fname in lst:
                self._copy_tree_file(fs + utils.path_sep + fname, fd + utils.path_sep + fname, msginfo)
        else:
            msginfo["progr"]+=msginfo["step"]
            perc =  int(((msginfo["progr"] - msginfo["pstart"] ) / (msginfo["pend"] - msginfo["pstart"] )) * 100.0)
            self._uinterface.wait_message(msginfo["message"], perc,  msginfo["progr"])
            if utils.path_exists(fd):
                utils.path_remove(fd)
            if utils.path_islink(fs):
                linkto = utils.path_readlink(fs)
                utils.path_symlink(linkto, fd)
            else:
                utils.path_copy(fs, fd)
                
        
    def _copy_tree(self, fs, ds, msg, pstart, pend):
        self._uinterface.wait_message(msg, 0, pstart)
        nfile = self._count_file_in_path(fs)
        step = (pend-pstart) / nfile
        self._copy_tree_file(fs, ds, {"message":msg,  "pstart":pstart,  "pend":pend,  "progr":pstart, "step":step })
    
    def _make_directory(self, pstart, pend):
        if self._bmock:
            return 
            
        pth = self._install_path.get()
        if utils.path_exists(pth):
            self._uinterface.wait_message(self._get_message("removeFile"), None, pstart)
            try:
                try:
                    self._native.stop_service()
                    self._native.delete_service()
                except:
                    None 
                utils.path_remove(pth)
            except:
                raise Exception(u"Can not remove path.") #Inserire messaggio in lingua
            
        try:
            self._uinterface.wait_message(self._get_message("pathCreating"),  None, pend)
            utils.path_makedirs(pth)
        except:
            raise Exception(self._get_message("pathNotCreate"))
        
    def copy_runtime(self,pstart, pend):
        if self._bmock:
            msg=self._get_message("copyFiles")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            self._uinterface.wait_message(msg,  None,  pend)
            return
        ds=self._install_path.get() + utils.path_sep + "runtime"
        msg=self._get_message("copyFiles")
        if utils.path_exists(_RUNTIME_PATH):
            self._copy_tree(_RUNTIME_PATH,ds,msg,pstart,pend)
        else:
            if not self._native.prepare_runtime_by_os(ds):
                raise Exception(self._get_message("missingRuntime"))
    
    
    def copy_native(self,pstart, pend):
        if self._bmock:
            msg=self._get_message("copyFiles")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            self._uinterface.wait_message(msg,  None,  pend)
            return
        
        if not utils.path_exists(_NATIVE_PATH):
            raise Exception(self._get_message("missingNative"))            
        ds=self._install_path.get() + utils.path_sep + "native"
        msg=self._get_message("copyFiles")
        self._copy_tree(_NATIVE_PATH,ds,msg,0.76, 0.8)
        
        #CREATE installer.ver
        dsver=ds + utils.path_sep + "installer.ver"
        if utils.path_exists(dsver):
            utils.path_remove(dsver)
        fver = utils.file_open(dsver,"wb")
        fver.write(utils.str_to_bytes(str(_INSTALLER_VERSION)))
        fver.close()
        
    
    def _install_service(self, pstart, pend):
        if self._bmock:
            msg=self._get_message("installService")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            msg=self._get_message("startService")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            self._uinterface.wait_message(msg,  None,  pend)
            return
        msg=self._get_message("installService")
        self._uinterface.wait_message(msg, None,  pstart)
        
        self._append_log(u"Service - Try to remove dirty installation...")
        self._native.stop_service()
        self._native.delete_service()
                
        self._append_log(u"Service - Installation...")
        if not self._native.install_service():
            raise Exception(self._get_message("installServiceErr"))
            
        self._append_log(u"Service - Starting...")
        msg=self._get_message("startService")
        self._uinterface.wait_message(msg, None,  pend)
        if not self._native.start_service():
            raise Exception(self._get_message("startServiceErr"))        
    
    def _install_monitor(self, pstart, pend):
        if self._bmock:
            msg=self._get_message("installMonitor")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            self._uinterface.wait_message(msg,  None,  pend)
            return
        
        msg=self._get_message("installMonitor")
        self._uinterface.wait_message(msg,  None, pstart)        
        
        self._append_log(u"Monitor - Stopping...")
        stop_monitor(self._install_path.get())
        
        self._append_log(u"Monitor - Try to remove dirty installation...")
        self._native.remove_auto_run_monitor()
        
        self._append_log(u"Monitor - Installing...")
        if not self._native.install_auto_run_monitor():
            raise Exception(self._get_message("installMonitorErr"))
        self._uinterface.wait_message(msg,  None, pend)
    
    def _install_shortcuts(self, pstart, pend):
        if self._bmock:
            msg=self._get_message("installShortcuts")
            self._uinterface.wait_message(msg,  None,  pstart)
            time.sleep(1)
            self._uinterface.wait_message(msg,  None,  pend)
            return
        
        msg=self._get_message("installShortcuts")
        self._uinterface.wait_message(msg,  None, pstart)
        
        self._append_log(u"Shortcut - Try to remove dirty installation...")
        self._native.remove_shortcuts()
        
        self._append_log(u"Shortcut - Installing...")
        if not self._native.install_shortcuts():
            raise Exception(self._get_message("installShortcutsErr"))
        self._uinterface.wait_message(msg,  None, pend)
    
    def step_config_init(self, curui):
        chs = ui.Chooser()
        m=self._get_message("configureInstallAgent")
        chs.set_message(m)
        chs.set_key("chooseInstallMode")
        chs.set_param("firstConfig",curui.get_param("firstConfig",False))
        chs.add("installCode", self._get_message("configureInstallCode"))
        chs.add("installNewAgent", self._get_message("configureInstallNewAgent"))        
        chs.set_variable(ui.VarString("installCode"))
        chs.next_step(self.step_config)
        if "installputcode" in self._options and self._options["installputcode"]:
            return self.step_config(chs)
        return chs
    
    def step_config(self, curui):
        if curui.get_param("tryAgain",False):
            if curui.get_variable().get()=="configureLater":
                return ui.Message(self._get_message("endInstallConfigLater"))
        
        if curui.get_key() is not None and curui.get_key()=="chooseInstallMode":
            self._inatall_agent_mode=curui.get_variable().get()
        
        if self._inatall_agent_mode=="installNewAgent":
            ipt = ui.Inputs()
            ipt.set_key("configure")
            ipt.set_param("firstConfig",curui.get_param("firstConfig",False))
            ipt.set_message(self._get_message("enterInstallNewAgent"))
            if self._install_newag_user.get() is None:
                self._install_newag_user.set("")
            ipt.add("user", self._get_message("configureInstallUser"), self._install_newag_user, True)
            if self._install_newag_password.get() is None:
                self._install_newag_password.set("")
            ipt.add("password", self._get_message("configureInstallPassword"), self._install_newag_password, True)            
            if self._install_newag_group.get() is None:
                self._install_newag_group.set("")
            #ipt.add("group", self._get_message("groupName"), self._install_newag_group, True)            
            if self._install_newag_name.get() is None:
                self._install_newag_name.set("")            
            ipt.add("name", self._get_message("agentName"), self._install_newag_name, True)
        else:
            ipt = ui.Inputs()
            ipt.set_key("configure")
            ipt.set_param("firstConfig",curui.get_param("firstConfig",False))
            if self._install_code.get() is None:
                self._install_code.set("")
            ipt.set_message(self._get_message("enterInstallCode"))
            ipt.add("code", self._get_message("code"), self._install_code, True)
        if not ("installputcode" in self._options and self._options["installputcode"]):            
            ipt.prev_step(self.step_config_init)
        ipt.next_step(self.step_config_install_request)
        return ipt
    
    def send_req(self, req, prms=None):
        try:
            if self._ipc_client==None or self._ipc_client.is_close():
                self._ipc_client=listener.IPCClient(self._install_path.get())
            return self._ipc_client.send_request("admin", "", req, prms)
        except: 
            return "ERROR:REQUEST_TIMEOUT"
    
    def close_req(self):
        if self._ipc_client!=None and not self._ipc_client.is_close():
            self._ipc_client.close()
    
    def _send_password_config(self):
        if "configPassword" in self._options:
            self.send_req("change_pwd",{"password": self._options["configPassword"]})
    
    def _send_proxy_config(self):
        pt = ""
        if self._proxy.get_port() is not None:
            pt=str(self._proxy.get_port())
        return self.send_req("set_proxy",{"type": self._proxy.get_type(), 
                                   "host": self._proxy.get_host(), 
                                   "port": pt, 
                                   "user": self._proxy.get_user(), 
                                   "password": self._proxy.get_password()})
    
    def step_configure_proxy_type(self, curui):
        chs = ui.Chooser()
        chs.set_key(curui.get_key())
        chs.set_message(self._get_message("chooseProxyType"))
        chs.add("SYSTEM", self._get_message("proxySystem"))
        chs.add("HTTP", self._get_message("proxyHttp"))
        chs.add("SOCKS4", self._get_message("proxySocks4"))
        chs.add("SOCKS4A", self._get_message("proxySocks4a"))
        chs.add("SOCKS5", self._get_message("proxySocks5"))
        chs.add("NONE", self._get_message("proxyNone"))
        chs.set_variable(self._proxy_type)
        if curui.get_key()=="install":
            if not self._runWithoutInstall:
                chs.prev_step(self.step_check_install_path)
            else:
                chs.prev_step(self.step_init)
        elif curui.get_key()=="runonfly":
            None #disable prev button
        else:
            chs.prev_step(self.step_config)
        chs.next_step(self.step_configure_proxy_info)
        return chs
    
    def step_configure_proxy_info(self, curui):
        if curui.get_variable().get()=="HTTP" or curui.get_variable().get()=="SOCKS4" or curui.get_variable().get()=="SOCKS4A" or curui.get_variable().get()=="SOCKS5":
            ipt = ui.Inputs()
            ipt.set_key(curui.get_key())
            ipt.set_message(self._get_message("proxyInfo"))
            ipt.add("proxyHost", self._get_message("proxyHost"), self._proxy_host,  True)
            ipt.add("proxyPort", self._get_message("proxyPort"), self._proxy_port,  True)
            ipt.add("proxyAuthUser", self._get_message("proxyAuthUser"), self._proxy_user,  False)
            ipt.add("proxyAuthPassword", self._get_message("proxyAuthPassword"), self._proxy_password,  False)
            ipt.prev_step(self.step_configure_proxy_type)
            ipt.next_step(self.step_configure_proxy_set)
            return ipt
        else:
            self._proxy_host.set("")
            self._proxy_port.set("")
            self._proxy_user.set("")
            self._proxy_password.set("")
            return self.step_configure_proxy_set(curui)
    
    def step_configure_proxy_set(self, curui):
        if curui.get_param("tryAgain",False):
            if curui.get_variable() is not None and curui.get_variable().get()=="configureLater":
                return self.step_config(curui)
        oldprx = self._proxy
        self._proxy=communication.ProxyInfo()
        self._proxy.set_type(self._proxy_type.get())
        self._proxy.set_host(self._proxy_host.get())
        if self._proxy_type.get()=="HTTP" or self._proxy_type.get()=="SOCKS4" or self._proxy_type.get()=="SOCKS4A" or self._proxy_type.get()=="SOCKS5":
            try:
                self._proxy.set_port(int(self._proxy_port.get()))
            except:
                self._proxy = oldprx
                return ui.ErrorDialog(self._get_message("validInteger") .format(self._get_message("proxyPort")))
        self._proxy.set_user(self._proxy_user.get())
        self._proxy.set_password(self._proxy_password.get())
        if curui.get_key()=="install":
            curui.set_key("retryDownloadProxy")
            return self.step_install(curui)
        elif curui.get_key()=="runonfly":
            curui.set_key("retryRunOnFlyProxy")
            return self.step_runonfly(curui)
        else:
            try:
                s=self._send_proxy_config()
                if s=="OK":
                    return self.step_config_install_request(curui)
                elif s=="ERROR:REQUEST_TIMEOUT":
                    return ui.ErrorDialog(self._get_message("errorConnectionConfig"))
                else:
                    return ui.ErrorDialog(s) 
            except:
                chs = ui.Chooser()
                chs.set_key(curui.get_key())
                chs.set_param("tryAgain", True)
                chs.set_message(self._get_message("errorConnectionConfig"))
                chs.add("noTryAgain", self._get_message("noTryAgain"))
                chs.add("configureLater", self._get_message("configureLater"))
                chs.set_variable(ui.VarString("noTryAgain"))
                chs.prev_step(self.step_config)
                chs.next_step(self.step_configure_proxy_set)
                return chs
            return self._configure_proxy_set(curui)

    def step_config_install_request(self, curui):
        if self._bmock:
            self._append_log(u"End Installation.")
            return ui.Message(self._get_message("endInstall"))
        
        if not self._silent:
            if curui.get_param("tryAgain",False):
                if curui.get_variable().get()=="configureLater":
                    return ui.Message(self._get_message("endInstallConfigLater"))
                elif curui.get_variable().get()=="configProxy":
                    return self.step_configure_proxy_type(curui)
        
        if self._silent:
            if gdi.is_mac():
                time.sleep(14) #silent install on Mac 
            if "key" in self._options:
                self._inatall_agent_mode="installCode"
                self._install_code.set(self._options["key"])
            elif "user" in self._options and "password" in self._options:
                self._inatall_agent_mode="installNewAgent"
                self._install_newag_user.set(self._options["user"])
                self._install_newag_password.set(self._options["password"])
                if "agentGroup" in self._options:
                    self._install_newag_group.set(self._options["agentGroup"])
                if "agentName" in self._options:
                    self._install_newag_name.set(self._options["agentName"])
                else:
                    self._install_newag_name.set(platform.node())                
            else:
                self._append_log(u"End Installation.")
                return ui.Message(self._get_message("endInstall"))
            
        if self._inatall_agent_mode=="installNewAgent":
            self._append_log(u"Create new Agent ...")
            msg=self._get_message("createNewAgent")
        else:
            self._append_log(u"Check Install Code ...")
            msg=self._get_message("checkInstallCode")            
        self._uinterface.wait_message(msg)
        page = None
        try:
            if curui.get_param("firstConfig",False) and self._proxy is not None:
                s=self._send_proxy_config()
                if s!="OK":
                    if s=="ERROR:REQUEST_TIMEOUT":
                        self._append_log(u"Error Configure: Request timeout")
                        return ui.ErrorDialog(self._get_message("errorConnectionConfig"))
                    else:
                        self._append_log(u"Error Configure: " + s)
                        return ui.ErrorDialog(s)
            s = None
            if self._inatall_agent_mode=="installNewAgent":
                prminst={"user": self._install_newag_user.get(), "password": self._install_newag_password.get(), "name":self._install_newag_name.get()}
                if self._install_newag_group.get() is not None and self._install_newag_group.get().strip()!="":
                    prminst["group"]=self._install_newag_group.get().strip()
                s = self.send_req("install_new_agent",prminst)
            else:
                s = self.send_req("install_key",{"code": self._install_code.get().strip().replace(" ", "")})
            if s=="OK":
                self._append_log(u"End Installation.")
                return ui.Message(self._get_message("endInstall"))
            elif s=="ERROR:INVALID_CODE" or s=="ERROR:INVALID_USER_PASSWORD" or s=="ERROR:NAME_NOT_VALID" or s=="ERROR:ALREADY_EXISTS" or s=="ERROR:AGENT_MAX":
                if not self._silent:
                    chs = ui.Chooser()
                    chs.set_key("configure")
                    chs.set_param("tryAgain",True)
                    if s=="ERROR:INVALID_CODE":
                        chs.set_message(self._get_message("errorInvalidCode"))
                    elif s=="ERROR:INVALID_USER_PASSWORD":
                        chs.set_message(self._get_message("errorInvalidUserPassword"))
                    elif s=="ERROR:NAME_NOT_VALID":
                        chs.set_message(self._get_message("errorAgentNameNotValid"))
                    elif s=="ERROR:ALREADY_EXISTS":
                        chs.set_message(self._get_message("errorAgentAlreadyExsists").format(self._install_newag_name.get()))
                    elif s=="ERROR:AGENT_MAX":
                        chs.set_message(self._get_message("errorAgentMax"))
                    else:
                        chs.set_message(s)
                    chs.add("reEnter", self._get_message("reEnterData"))
                    chs.add("configureLater", self._get_message("configureLater"))
                    chs.set_variable(ui.VarString("reEnter"))
                    chs.next_step(self.step_config)
                    chs.prev_step(self.step_config)
                    return chs
                else:
                    appse=s.split(":")[1];
                    self._append_log(u"Error Configure: " + appse)
                    return ui.ErrorDialog(appse)
            elif s=="ERROR:CONNECT_ERROR":
                if not self._silent:
                    chs = ui.Chooser()
                    chs.set_key("configure")
                    chs.set_param("tryAgain",True)
                    chs.set_message(self._get_message("errorConnectionQuestion"))
                    chs.add("configProxy", self._get_message("yes"))
                    chs.add("noTryAgain", self._get_message("noTryAgain"))
                    chs.add("configureLater", self._get_message("configureLater"))
                    chs.set_variable(ui.VarString("noTryAgain"))
                    chs.prev_step(self.step_config)
                    chs.next_step(self.step_config_install_request)
                    return chs
                else:
                    appse="Connect Error";
                    self._append_log(u"Error Configure: " + appse)
                    return ui.ErrorDialog(appse)
            
            elif s=="ERROR:REQUEST_TIMEOUT":
                self._append_log(u"Error Configure: Request timeout")
                return ui.ErrorDialog(self._get_message("errorConnectionConfig"))
            else:
                self._append_log(u"Error Configure: " + s)
                return ui.ErrorDialog(s) 
        except Exception as e:
            if not self._silent:
                chs = ui.Chooser()
                chs.set_key("configure")
                chs.set_param("tryAgain",True)
                chs.set_message(self._get_message("errorConnectionConfig"))
                chs.add("noTryAgain", self._get_message("noTryAgain"))
                chs.add("configureLater", self._get_message("configureLater"))
                chs.set_variable(ui.VarString("noTryAgain"))
                chs.prev_step(self.step_config)
                chs.next_step(self.step_config_install_request)
                return chs
            else:
                self._append_log(u"Error Configure: " + utils.exception_to_string(e))
                return ui.ErrorDialog(utils.exception_to_string(e))
        finally:
            if page is not None:
                page.close()
    
    def _append_log(self, txt):
        try:
            if not self._bmock:
                if self._install_log is not None:
                    self._install_log.write(utils.str_new(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) + u" - " + txt + u"\n")
                    self._install_log.flush()
        except:
            None    
    
    def _runonfly_update(self,pthsrc,pthdst):
        lst=utils.path_list(pthsrc)
        for fname in lst:
            if utils.path_isfile(pthsrc + utils.path_sep + fname):
                if utils.path_isfile(pthdst + utils.path_sep + fname):
                    utils.path_remove(pthdst + utils.path_sep + fname)
                utils.path_copy(pthsrc + utils.path_sep + fname, pthdst + utils.path_sep + fname)
            elif utils.path_isdir(pthsrc + utils.path_sep + fname):
                self._runonfly_update(pthsrc + utils.path_sep + fname,pthdst + utils.path_sep + fname)
    
    
    #COMPATIBILITY OLD VERSIONS OF RUNONFLY
    def _fix_runonfly_old_version(self):
        if utils.path_exists(u"fileversions.json"):            
            fver = self.load_prop_json("fileversions.json")
            if "agent.zip" in fver:
                lver = int(fver["agent.zip"])
                if lver<1484751796000:
                    self._append_log(u"Fixing old version...")
                    sys.path.insert(0,self._install_path.get())
                    objlib = importlib.import_module("agent")
                    try:
                        if utils.is_py2():
                            reload(objlib)                            
                        else:
                            importlib.reload(objlib)
                        func = getattr(objlib,  "Main")
                        appcls = func(["-runonfly","-filelog"])
                        #IMPOSTARE IL PROXY
                        appcls._read_config_file()
                        appcls._load_config()
                        appcls._update_ready=False
                        bnoupd = appcls._check_update()
                        #appcls.set_runonfly_action(self._runonfly_action)
                        #appcls.start()
                    finally:
                        if appcls is not None:
                            try:
                                appcls.unload_library()
                            except:
                                None
                        sys.path.remove(sys.path[0])
                    if bnoupd:
                        raise Exception("") #DONE IN step_runonfly
                    return True
        return False                
        
    def _step_runonfly_conn_msg(self, usr, pwd):
        appwmsg=[]
        if "runputcode" in self._options and self._options["runputcode"]:
            if "runtoptext" in self._options:                            
                appwmsg.append(self._options["runtoptext"])
            else:
                appwmsg.append(self._get_message("runWithoutInstallationOnlineTopPutCode"))
            appwmsg.append(u"\n\n\n\n")
            if "runbottomtext" in self._options:                            
                appwmsg.append(self._options["runbottomtext"])
            else:
                appwmsg.append(self._get_message("runWithoutInstallationOnlineBottomPutCode"))
        else:
            if "runtoptext" in self._options:                            
                appwmsg.append(self._options["runtoptext"])
            else:
                appwmsg.append(self._get_message("runWithoutInstallationOnlineTop").replace("https://www.dwservice.net", "https://access.dwservice.net/login.dw"))
            appwmsg.append(u"\n\n")
            appwmsg.append(self._get_message("runWithoutInstallationOnlineUser").format(usr))
            appwmsg.append(u"\n\n")
            appwmsg.append(self._get_message("runWithoutInstallationOnlinePassword").format(pwd))
            appwmsg.append(u"\n\n")
            if "runbottomtext" in self._options:                            
                appwmsg.append(self._options["runbottomtext"])
            else:
                appwmsg.append(self._get_message("runWithoutInstallationOnlineBottom"))
        
        
        if not self._uinterface.is_gui() or self._bmock:
            self._uinterface.wait_message(u"".join(appwmsg), allowclose=True)
        else:
            try:
                try:
                    from ui import monitor
                except: #FIX INSTALLER
                    import monitor
                self._destroy_main_monitor()
                self._main_monitor = monitor.Main()
                self._main_monitor._set_config_base_path(self._install_path.get())
                pnl = self._main_monitor.prepare_runonfly_panel(self._uinterface._app, self._current_path, u"".join(appwmsg))                
                self._main_monitor.start("runonfly")
                self._uinterface.wait_panel(pnl,self._destroy_main_monitor, allowclose=True)
            except Exception as e:
                print(u"Error: " + utils.exception_to_string(e) + u"\n" + utils.get_stacktrace_string())
                self._append_log(u"Error: " + utils.exception_to_string(e) + u"\n" + utils.get_stacktrace_string())
                self._uinterface.wait_message(u"".join(appwmsg), allowclose=True)
    
    def _destroy_main_monitor(self):
        if self._main_monitor is not None:
            self._main_monitor.stop()
            self._main_monitor=None        
    
    def step_runonfly_putcode(self, curui):
        ipt = ui.Inputs()
        ipt.set_key("configure")
        #ipt.set_param("firstConfig",curui.get_param("firstConfig",False))
        if self._run_code.get() is None:
            self._run_code.set("")
        ipt.set_message(self._get_message("enterRunCode"))
        ipt.add("code", self._get_message("code"), self._run_code, True)
        ipt.prev_step(self.step_init)
        ipt.next_step(self.step_runonfly)
        return ipt
    
    def step_runonfly(self, curui):
        if self._bmock:
            self._uinterface.wait_message(self._get_message("runWithoutInstallationStarting"))
            time.sleep(1)
            self._step_runonfly_conn_msg("MOCK","MOCK")
            while self._runWithoutInstallAgentAlive:
                time.sleep(1)
            return ui.Message(self._get_message("runWithoutInstallationEnd")) 
        
        #Prepare file
        self._append_log(u"Prepare file...")
        if "runputcode" in self._options and self._options["runputcode"]:
            self._native.prepare_file_runonfly(self._run_code.get())
        else:
            self._native.prepare_file_runonfly(None)
        self._append_log(u"Prepare file.OK!")
        
        #Start agent
        if self._proxy is not None:
            prpconf = self.load_prop_json(self._install_path.get() + utils.path_sep +  u"config.json")
            if self._proxy.get_type() is not None:
                prpconf["proxy_type"] = self._proxy.get_type()
            if self._proxy.get_host() is not None:
                prpconf["proxy_host"] = self._proxy.get_host()
            if self._proxy.get_port() is not None:
                prpconf["proxy_port"] = self._proxy.get_port()
            if self._proxy.get_user() is not None:
                prpconf["proxy_user"] = self._proxy.get_user()
            else:
                prpconf["proxy_user"] = ""
            if self._proxy.get_password() is not None:
                prpconf["proxy_password"] = self.obfuscate_password(self._proxy.get_password())
            else:
                prpconf["proxy_password"] = ""
            self.store_prop_json(prpconf, self._install_path.get() + utils.path_sep +  u"config.json")
        
        if curui.get_key() is not None and curui.get_key()=="retryRunOnFly":
            if curui.get_variable().get()=="configProxy":
                curui.set_key("runonfly")
                return self.step_configure_proxy_type(curui)
        
        self._append_log(u"Changing current directory to " + utils.path_absname(self._install_path.get()) + u" ...")
        utils.system_changedir(self._install_path.get())
        self._runWithoutInstallAgentCloseEnd=False
        runcode_notfound=False
        runcode_connected=False
        pstipc=None
        try:   
            while self._runWithoutInstallAgentAlive:
                self._uinterface.wait_message(self._get_message("runWithoutInstallationStarting"))
                self._append_log(u"Starting...")
                if utils.path_exists(u"update"):
                    self._append_log(u"Updating...")
                    self._uinterface.wait_message(self._get_message("runWithoutInstallationUpdating"))
                    self._runonfly_update(u"update",".")
                    utils.path_remove(u"update")
            
                #COMPATIBILITY OLD VERSIONS OF RUNONFLY
                if self._fix_runonfly_old_version():
                    if utils.path_exists(u"update"):
                        self._uinterface.wait_message(self._get_message("runWithoutInstallationUpdating"))
                        self._runonfly_update(u"update",".")
                        utils.path_remove(u"update")
            
                #CHECK FILE
                if utils.path_exists(u"dwagent.pid"):
                    utils.path_remove(u"dwagent.pid")
                if utils.path_exists(u"dwagent.start"):
                    utils.path_remove(u"dwagent.start")
                if utils.path_exists(u"dwagent.stop"):
                    utils.path_remove(u"dwagent.stop")
                if utils.path_exists(u"dwagent.status"):
                    utils.path_remove(u"dwagent.status")
                
                #Write pid
                f = utils.file_open(u"dwagent.pid", "wb")
                f.write(utils.str_to_bytes(str(os.getpid())))
                f.close()            
                 
                #Start service
                self._append_log(u"Run... ")
                if "runputcode" in self._options and self._options["runputcode"]:
                    ponfly=self._native.start_runonfly(self._run_code.get())
                else:
                    ponfly=self._native.start_runonfly(None)
                
                #Wait the start
                cnt=0
                while (not utils.path_exists(u"dwagent.start")):
                    time.sleep(1)
                    cnt+=1
                    if cnt>10: #10 Seconds
                        raise Exception("")
                if utils.path_exists(u"dwagent.start"):
                    utils.path_remove(u"dwagent.start")
                self._append_log(u"Started.")
                
                #Handle the status
                pstipc = ipc.Property()
                pstipc.open("runonfly")
                agpid=int(pstipc.get_property("pid"))
                curst=""
                while self._native.is_task_running(agpid) and (ponfly is None or ponfly.poll() is None):
                    st = pstipc.get_property("status")
                    if st!=curst:
                        curst=st
                        if st=="CONNECTED":
                            if "runputcode" in self._options and self._options["runputcode"]:
                                runcode_connected=True
                                self._step_runonfly_conn_msg(None,None)
                            else:            
                                usr=pstipc.get_property("user")
                                usr=usr[0:3] + u"-" + usr[3:6] + u"-" + usr[6:9] + u"-" + usr[9:]
                                self._step_runonfly_conn_msg(usr, pstipc.get_property("password"))                            
                        elif st=="CONNECTING":
                            self._uinterface.wait_message(self._get_message("runWithoutInstallationConnecting"), allowclose=True)
                        elif st=="RUNCODE_NOTFOUND":
                            if "runputcode" in self._options and self._options["runputcode"]:
                                self._runWithoutInstallAgentAlive=False
                                if runcode_connected:
                                    self._runWithoutInstallAgentCloseByClient=True
                                else:
                                    runcode_notfound=True
                        elif st is not None and st.startswith("WAIT:"):
                            retry=int(st.split(":")[1])
                            if retry>3:
                                self._runWithoutInstallAgentAlive=False
                            else:
                                self._uinterface.wait_message(self._get_message("runWithoutInstallationWait").format(str(retry)), allowclose=True)

                    if self._runWithoutInstallAgentAlive==False:
                        break
                    time.sleep(1)
                
                if runcode_notfound==False:
                    self._uinterface.wait_message(self._get_message("runWithoutInstallationClosing"))
                
                f = utils.file_open(u"dwagent.stop", "wb")
                f.close()
                cnt=0
                while self._native.is_task_running(agpid) and (ponfly is None or ponfly.poll() is None):
                    time.sleep(1)
                    cnt+=1
                    if cnt>10: #10 Seconds
                        break
                pstipc.close()
                pstipc=None
                time.sleep(1)
                                
                
        except Exception as e:
            f = utils.file_open(u"dwagent.stop", "wb")
            f.close()
            try:
                if pstipc is not None:
                    pstipc.close()
                    pstipc=None
            except:
                None
            utils.system_changedir(self._current_path)
            self._runWithoutInstallAgentCloseEnd=True
            #If does not start it could be depend by corrupted files
            self._append_log(u"Error: " + utils.exception_to_string(e) + u"\n" + utils.get_stacktrace_string())
            return ui.Message(self._get_message("runWithoutInstallationUnexpectedError").format(utils.path_absname(self._install_path.get())) + "\n\n" + utils.exception_to_string(e))
            
        
        utils.system_changedir(self._current_path)
        self._runWithoutInstallAgentCloseEnd=True
        if self._runWithoutInstallAgentCloseByClient:
            return ui.Message(self._get_message("runWithoutInstallationEnd"))  
        else:
            self._runWithoutInstallAgentAlive=True
            if runcode_notfound:
                return ui.ErrorDialog(self._get_message("errorInvalidCode"))                
            else:
                chs = ui.Chooser()
                chs.set_key("retryRunOnFly")
                chs.set_message(self._get_message("errorConnectionQuestion"))
                chs.add("configProxy", self._get_message("yes"))
                chs.add("noTryAgain", self._get_message("noTryAgain"))
                chs.set_variable(ui.VarString("noTryAgain"))
                chs.next_step(self.step_runonfly)
                return chs
        
            
    
    def step_install(self, curui):
        if utils.path_exists(self._current_path + utils.path_sep + "ambient.dev"):
            self._ambient="DEV"
        elif utils.path_exists(self._current_path + utils.path_sep + "ambient.qa"):
            self._ambient="QA"
            
        if not self._silent:
            if curui.get_key() is None and curui.get_variable().get()=="no":
                return ui.Message(self._get_message("cancelInstall"))
            
            if curui.get_key() is not None and curui.get_key()=="retryDownload":
                if curui.get_variable().get()=="configProxy":
                    curui.set_key("install")
                    return self.step_configure_proxy_type(curui)
                if curui.get_variable().get()=="skipCertsValidity":
                    self._skipcertsvalidity=True
                    communication.set_cacerts_path("")
        
        if self._runWithoutInstall:
            if self._name is None:
                self._install_path.set(u".." + utils.path_sep + u"dwagentonfly")
            else:
                self._install_path.set(u".." + utils.path_sep + self._name.lower() + u"onfly")
            #load proxy from file
            if self._runWithoutInstallProxySet==False and utils.path_exists(self._install_path.get() + utils.path_sep + u"config.json"):
                self._runWithoutInstallProxySet=True
                prpconf=self.load_prop_json(self._install_path.get() + utils.path_sep + u"config.json")
                if "proxy_type" in prpconf and prpconf["proxy_type"]!="":
                    self._proxy=communication.ProxyInfo()
                    self._proxy.set_type(prpconf["proxy_type"])
                    self._proxy_type.set(prpconf["proxy_type"])
                    if "proxy_host" in prpconf:
                        self._proxy.set_host(prpconf["proxy_host"])
                        self._proxy_host.set(prpconf["proxy_host"])
                    if "proxy_port" in prpconf and prpconf["proxy_port"]!="":
                        self._proxy.set_port(prpconf["proxy_port"])
                        self._proxy_port.set(str(prpconf["proxy_port"]))
                    if "proxy_user" in prpconf:
                        self._proxy.set_user(prpconf["proxy_user"])
                        self._proxy_user.set(prpconf["proxy_user"])
                    if "proxy_password" in prpconf and prpconf["proxy_password"]!="":
                        self._proxy.set_password(self.read_obfuscated_password(prpconf["proxy_password"]))
        
        if self._silent: 
            #SETUP PROXY
            if "proxyType" in self._options:
                self._proxy=communication.ProxyInfo()
                self._proxy.set_type(self._options["proxyType"])
            if self._proxy is not None and "proxyHost" in self._options:
                self._proxy.set_host(self._options["proxyHost"])
            if self._proxy is not None and "proxyPort" in self._options:
                self._proxy.set_port(int(self._options["proxyPort"]))
            if self._proxy is not None and "proxyUser" in self._options:
                self._proxy.set_user(self._options["proxyUser"])
            if self._proxy is not None and "proxyPassword" in self._options:
                self._proxy.set_password(self._options["proxyPassword"])
        
        pth = self._install_path.get()
        if pth.endswith(utils.path_sep) is True:
            pth=pth[0:len(pth)-1]
        
        if not self._bmock:
            if self._runWithoutInstall and not utils.path_exists(pth):
                utils.path_makedir(pth)
                
        #Init log
        if not self._bmock:
            if self._install_log is None:
                try:
                    if self._install_log_path is not None:
                        try:
                            self._install_log = utils.file_open(self._install_log_path, "wb", encoding="utf-8")
                        except:
                            None
                    if self._install_log is None:
                        self._install_log = utils.file_open(u"install.log", "wb", encoding="utf-8")
                except:
                    try:
                        self._install_log = utils.file_open(u".." + utils.path_sep + u"dwagent_install.log", "wb", encoding="utf-8")                    
                    except:
                        None
            
        
        self._install_path.set(utils.str_new(pth))
        #set native path
        self._native.set_install_path(utils.str_new(pth))
        self._native.set_install_log(self._install_log)
            
            
        try:
            #Check admin permission (ONLY if silent else already did previous)
            if self._silent: 
                msg = self._native.check_init_install(True)
                if msg is not None:
                    raise Exception(msg)
                if self._proxy is None:
                    self._append_log(u"Proxy NONE.")
                else:
                    self._append_log(u"Proxy " + self._proxy.get_type() + u" " + self._proxy.get_host() + u":" + str(self._proxy.get_port()) + u".")
        
            
            if not self._runWithoutInstall:
                if curui.get_key()!="retryDownload" and curui.get_key()!="retryDownloadProxy":
                    #Crea cartella
                    self._append_log(u"Make folder " + pth + u"...")
                    self._make_directory(0.01, 0.02)
                    self._append_log(u"Make folder " + pth + u".OK!")
                                        
            #Copy License
            if not self._bmock:
                pthlic = self._install_path.get() + utils.path_sep + u"LICENSES"
                if not utils.path_exists(pthlic):
                    utils.path_makedirs(pthlic)
                    #if not self._runWithoutInstall:
                    utils.path_copy(u"LICENSES" + utils.path_sep + u"README", self._install_path.get() + utils.path_sep + u"README")
                    utils.path_copy(u"LICENSES" + utils.path_sep + u"runtime", pthlic + utils.path_sep + u"runtime")
                    utils.path_copy(u"LICENSES" + utils.path_sep + u"core", pthlic + utils.path_sep + u"core")
                    utils.path_copy(u"LICENSES" + utils.path_sep + u"ui", pthlic + utils.path_sep + u"ui")
            #Download file
            try:
                self._append_log(u"Download files...")
                if not self._runWithoutInstall:
                    self._download_files(0.03, 0.5)
                else:
                    self._download_files(0.01, 0.9)
                self._append_log(u"Download files.OK!")
            except Exception as e:
                se=utils.exception_to_string(e)                
                if se=="#NOTSUPPORTED":
                    raise Exception(self._get_message("installerNotSupported"))                    
                elif se=="#SILENTFORBIDDEN":
                    raise Exception("Silent installation forbidden. Please contact the support.")
                else:                
                    if not self._silent:
                        self._append_log(u"Error Download files: " + se + u"\n" + utils.get_stacktrace_string())
                        chs = ui.Chooser()
                        chs.set_key("retryDownload")
                        if u"CERTIFICATE_VERIFY_FAILED" in se:
                            self._skipcertsvalidity=False
                            communication.set_cacerts_path("cacerts.pem")
                            chs.set_message(self._get_message("skipCertValidation"))
                            chs.add("skipCertsValidity", self._get_message("yes"))
                            chs.add("noTryAgain", self._get_message("noTryAgain"))
                            chs.add("configProxy", self._get_message("configureProxy"))
                            chs.set_variable(ui.VarString("noTryAgain"))
                        else:                        
                            chs.set_message(se + u"\n" + self._get_message("errorConnectionQuestion"))
                            chs.add("configProxy", self._get_message("yes"))
                            chs.add("noTryAgain", self._get_message("noTryAgain"))
                            chs.set_variable(ui.VarString("noTryAgain"))
                        if not self._runWithoutInstall:
                            chs.prev_step(self.step_check_install_path)
                        else:
                            chs.prev_step(self.step_init)
                            self._install_path.set(None)
                        chs.next_step(self.step_install)
                        return chs
                    else:
                        raise Exception(u"Error Download files: " + se + u"\n" + utils.get_stacktrace_string())
            
            if not self._runWithoutInstall:
                self._append_log(u"Copy runtime...")
                self.copy_runtime(0.51, 0.75)
                self._append_log(u"Copy runtime.OK!")
                
                self._append_log(u"Copy native...")
                self.copy_native(0.76, 0.8)           
                self._append_log(u"Copy native.OK!")
                
                self._append_log(u"Prepare file...")
                if not self._bmock:
                    self._native.prepare_file()
                self._append_log(u"Prepare file.OK!")
                
                self._append_log(u"Install service...")
                self._install_service(0.81, 0.85)
                self._append_log(u"Install service.OK!")
                
                self._append_log(u"Install monitor...")
                self._install_monitor(0.86, 0.90)
                self._append_log(u"Install monitor.OK!")
                
                self._append_log(u"Install Shortcuts...")
                self._install_shortcuts(0.91,  1)
                self._append_log(u"Install Shortcuts.OK!")
                
                self._append_log(u"Install Extra OS...")
                if not self._bmock:
                    self._native.install_extra()
                self._append_log(u"Install Extra OS.OK!")
                
                if not self._silent:
                    curui.set_param("firstConfig",True)
                    return self.step_config_init(curui)
                else:
                    curui.set_param("firstConfig",False)
                    if self._proxy is not None:
                        self._send_proxy_config()
                    self._send_password_config()
                    return self.step_config_install_request(curui)
                
            else:
                #Update cacerts.pem
                if not self._bmock:
                    utils.path_copy("cacerts.pem",self._install_path.get() + utils.path_sep + "cacerts.pem")
                
                self._append_log(u"Copy native...")
                self.copy_native(0.91, 1)
                self._append_log(u"Copy native.OK!")
                
                if "runputcode" in self._options and self._options["runputcode"]:
                    return self.step_runonfly_putcode(curui)
                else:                    
                    return self.step_runonfly(curui)
            
        except Exception as e:
            self._append_log(u"Error Install: " + utils.exception_to_string(e))
            return ui.ErrorDialog(utils.exception_to_string(e)) 
            

class Uninstall:
    
    def __init__(self):
        self._native = get_native()
        self._uinterface=None
        self._install_path=None
        self._options=None
        #self._install_log_path=None
        self._silent=False;
        self._name=None
    
    def _get_message(self, key):
        smsg = messages.get_message(key)
        if self._name is not None:
            return smsg.replace(u"DWAgent",self._name)
        else:
            return smsg
        
    def start(self, aropts={}):
        self._options=aropts
        #if "logpath" in self._options:
        #    self._install_log_path=self._options["logpath"]
        bgui=True
        if "gui" in self._options:
            bgui=self._options["gui"]
        self._silent=False;
        if "silent" in self._options:
            self._silent=self._options["silent"]
            if self._silent:
                bgui=False
                messages.set_locale(None)     
        
        confjson={}
        try:
            f = utils.file_open("config.json", "rb")
            s=f.read()
            confjson = json.loads(utils.bytes_to_str(s,"utf8"))
            f.close()
        except Exception:
            None
        prmsui={}
        if "name" in confjson:
            self._name=utils.str_new(confjson["name"])
            self._native.set_name(self._name)
        else:
            self._native.set_name(u"DWAgent")
        prmsui["title"]=self._get_message("titleUninstall")
        if "topinfo" in confjson:
            prmsui["topinfo"]=confjson["topinfo"]
        if "topimage" in confjson:
            prmsui["topimage"]=u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep + confjson["topimage"]
        applg = gdi._get_logo_from_conf(confjson, u"ui" + utils.path_sep + u"images" + utils.path_sep + u"custom" + utils.path_sep)
        if applg != "":
            prmsui["logo"]=applg
        if "leftcolor" in confjson:
            prmsui["leftcolor"]=confjson["leftcolor"]
        self._uinterface = ui.UI(prmsui, self.step_init)
        self._native.set_uinterface(self._uinterface)
        self._uinterface.start(bgui)        
        
        #CHIUDE IL LOG
        try:
            if self._install_log is not None:
                self._install_log.close()
        except:
            None
        
    def step_init(self, curui):
        msg = self._native.check_init_uninstall()
        if msg is not None:
            return ui.Message(msg)
        self._install_path = self._native.get_install_path()
        if self._install_path is None:
            return ui.Message(self._get_message("notInstalled"))
        else:
            if self._silent==False:
                self._install_path = utils.str_new(self._install_path)
                #Conferma disinstallazione
                chs = ui.Chooser()
                chs.set_message(self._get_message("confirmUninstall"))
                chs.add("yes", self._get_message("yes"))
                chs.add("no", self._get_message("no"))
                chs.set_variable(ui.VarString("no"))
                chs.set_accept_key("yes")
                chs.next_step(self.step_remove)
                return chs
            else:
                return self.step_remove(curui)
    
    def _uninstall_monitor(self, pstart, pend):
        msg=self._get_message("uninstallMonitor")
        self._uinterface.wait_message(msg,  None, pstart)
        stop_monitor(self._install_path)
        self._native.remove_auto_run_monitor()
    
    def _uninstall_service(self, pstart, pend):
        msg=self._get_message("uninstallService")
        self._uinterface.wait_message(msg,  None, pstart)
        self._native.stop_service()
        self._native.delete_service()
    
    def _uninstall_shortcuts(self, pstart, pend):
        msg=self._get_message("uninstallShortcuts")
        self._uinterface.wait_message(msg,  None, pstart)
        self._native.remove_shortcuts()
    
    def _append_log(self, txt):
        try:
            if self._install_log is not None:
                self._install_log.write(utils.str_new(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) + u" - " + txt + u"\n")
                self._install_log.flush()
        except:
            None   
    
    def step_remove(self, curui):
        if self._silent==False:
            if curui.get_key() is None and curui.get_variable().get()=="no":
                return ui.Message(self._get_message("cancelUninstall"))
        try:
            #Inizializza log
            try:
                self._install_log = utils.file_open(u"unistall.log", "wb", encoding="utf-8")
            except:
                try:
                    self._install_log = utils.file_open(u".." + utils.path_sep + u"dwagent_unistall.log", "wb", encoding="utf-8")                    
                except:
                    None
            
            self._native.set_install_path(self._install_path)
            self._native.set_install_log(self._install_log)
            
            self._append_log(u"Uninstall monitor...")
            self._uninstall_monitor(0.01, 0.4)
            
            self._append_log(u"Uninstall service...")
            self._uninstall_service(0.41, 0.8)
            
            self._append_log(u"Uninstall shortcuts...")
            self._uninstall_shortcuts(0.81, 1)
    
            #Scrive file per eliminazione della cartella
            f = utils.file_open(self._install_path + utils.path_sep + u"agent.uninstall", "w")
            f.write("\x00")
            f.close()

            self._append_log(u"End Uninstallation.")
            return ui.Message(self._get_message("endUninstall"))
        except Exception as e:
            self._append_log(u"Error Uninstall: " + utils.exception_to_string(e))
            return ui.ErrorDialog(utils.exception_to_string(e))
            

def fmain(args): #SERVE PER MACOS APP
    i = None
    arotps={}
    arotps["gui"]=True
    for arg in args: 
        if arg.lower() == "uninstall":
            i = Uninstall()
        elif arg.lower() == "-console":
            arotps["gui"]=False
        elif arg.lower() == "-silent":
            arotps["silent"]=True
        elif arg.lower().startswith("gotoopt="):
            arotps["gotoopt"]=arg[8:]
        elif arg.lower().startswith("key="):
            arotps["key"]=arg[4:]
        elif arg.lower().startswith("user="):
            arotps["user"]=arg[5:]
        elif arg.lower().startswith("password="):
            arotps["password"]=arg[9:]
        elif arg.lower().startswith("name="):
            arotps["agentName"]=arg[5:]
        elif arg.lower().startswith("group="):
            arotps["agentGroup"]=arg[6:]
        elif arg.lower().startswith("proxytype="):            
            arotps["proxyType"]=arg[10:]
        elif arg.lower().startswith("proxyhost="):            
            arotps["proxyHost"]=arg[10:]
        elif arg.lower().startswith("proxyport="):            
            arotps["proxyPort"]=arg[10:]
        elif arg.lower().startswith("proxyuser="):            
            arotps["proxyUser"]=arg[10:]
        elif arg.lower().startswith("proxypassword="):            
            arotps["proxyPassword"]=arg[14:]
        elif arg.lower().startswith("configpassword="):
            arotps["configPassword"]=arg[15:]
        elif arg.lower().startswith("logpath="):
            arotps["logpath"]=arg[8:]
        elif arg.lower().startswith("lang="):
            try:
                messages.set_locale(arg[5:])
            except:
                None            
    if i is None:
        i = Install()
    i.start(arotps)    
    sys.exit(0)
    
if __name__ == "__main__":
    fmain(sys.argv)    
    
                                                                                                                                        ui/ui.py                                                                                            0000644 0001750 0001750 00000104724 15022034420 011750  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

try:
    from . import messages
except: #FIX INSTALLER
    import messages
try:
    from . import gdi
except: #FIX INSTALLER
    import gdi
import os
import sys
import threading
import traceback
import utils

_WIDTH=780
_HEIGHT=530
_HEIGHT_BOTTOM=55
_WIDTH_LEFT=90
_CONTENT_WIDTH=_WIDTH-_WIDTH_LEFT
_CONTENT_HEIGHT=_HEIGHT-_HEIGHT_BOTTOM
_GAP_TEXT=20
_BUTTON_WIDTH=140
_BUTTON_HEIGTH=36
_BUTTON_GAP=10

class VarString:
        
    def __init__(self, value=None,  password=False):
        self._value=value
        self._password=password
    
    def is_password(self):
        return self._password
    
    def set(self, v):
        self._value=v
    
    def get(self):
        return self._value

class BaseUI:
    def __init__(self):
        self._cancel=False
        self._prev_step=None
        self._next_step=None
        self._key=None
        self._params={}
  
    def set_key(self,  k):
        self._key=k
        
    def get_key(self):
        return self._key
    
    def set_param(self,  k, v):
        self._params[k]=v
        
    def get_param(self, k, d=None):
        if k in self._params:
            return self._params[k]
        else:
            return d
        
    def is_next_enabled(self):
        return self._next_step is not None
    
    def is_back_enabled(self):
        return self._prev_step is not None
    
    def prev_step(self, np):
        self._prev_step=np
    
    def next_step(self, np):
        self._next_step=np
    
    def fire_prev_step(self):
        if self._prev_step is not None:
            return self._prev_step(self)
        return None
        
    def fire_next_step(self):
        if self._next_step is not None:
            return self._next_step(self)
        return None

class Message(BaseUI):
    def __init__(self, msg=''):
        BaseUI.__init__(self)
        self._message=msg
    
    def set_message(self, msg):
        self._message=msg
        
    def get_message(self):
        return self._message
    
class Inputs(BaseUI):
   
    def __init__(self):
        BaseUI.__init__(self)
        self._message=None
        self._arinputs=[]
    
    def set_message(self, msg):
        self._message=msg
        
    def get_message(self):
        return self._message
    
    def add(self, key, label, variable, mandatory):
        self._arinputs.append({'key':key,  'label':label,  'variable':variable,  'mandatory':mandatory })
    
    def get_inputs(self):
        return self._arinputs
    
    def fire_next_step(self):
        #Verifica mandatory
        for i in range(len(self._arinputs)):
            inp = self._arinputs[i]
            if inp['mandatory'] is True and inp['variable'].get().strip()=="":
                return ErrorDialog(messages.get_message("fieldRequired").format(inp['label']))
        return BaseUI.fire_next_step(self)

    def on_validate(self,e):
        for i in range(len(self._arinputs)):
            inp = self._arinputs[i]
            if inp["key"]==e["source"].get_name():
                inp["variable"].set(e["source"].get_text())
                break
        
class Chooser(BaseUI):
        
    def __init__(self):
        BaseUI.__init__(self)
        self._archooser=[]
        self._selected_key=None
        self._variable=None
        self._message=None
        self._message_hyperlink=[]
        self._message_height=100
        self._accept_key=None
        self._main=None
        self._selected=None        
        
    def set_message(self, m):
        self._message=m
    
    def add_message_hyperlink(self, ps, ln, url):
        self._message_hyperlink.append({"start":ps, "length":ln, "url": url})
    
    def set_message_height(self, h):
        self._message_height=h
    
    def get_message_height(self):
        return self._message_height
    
    def get_message(self):
        return self._message
    
    def get_message_hyperlinks(self):
        return self._message_hyperlink
    
    def set_accept_key(self, k):
        self._accept_key=k
    
    def get_accept_key(self):
        return self._accept_key
    
    def is_accept_key(self,s):
        if self._accept_key is not None:
            ar = self._accept_key.split(";")
            for i in ar:
                if i==s:
                    return True
        return False
    
    def add(self, key, label):
        self._archooser.append({'key':key,  'label':label})
    
    def get_choices(self):
        return self._archooser
    
    def get_variable(self):
        return self._variable
        
    def set_variable(self, v):
        self._variable=v
    
    def fire_next_step(self):
        #Check selecterd
        bok = False
        for i in range(len(self._archooser)):
            inp = self._archooser[i]
            if self._variable.get()==inp["key"]:
                bok = True
                break
        if not bok:
            return ErrorDialog(messages.get_message("mustSelectOptions"))
        return BaseUI.fire_next_step(self)
    
    def set_main(self, main):
        self._main=main
        self._disble_next_button()

    def on_selected(self,e):
        if e["action"]=="SELECTED":
            self.get_variable().set(e["source"].get_name())
            self._disble_next_button()
    
    def is_next_enabled(self):
        if self._main is not None and self.get_accept_key() is not None:
            if self.is_accept_key(self.get_variable().get()):
                return self._next_step is not None
            else:
                return False
        return self._next_step is not None
    
    def _disble_next_button(self):
        if self._main is not None and self.get_accept_key() is not None:
            if self.is_accept_key(self.get_variable().get()):
                self._main._enable_next_button()
            else:
                self._main._disable_next_button()


class Custom(BaseUI):
        
    def __init__(self):
        BaseUI.__init__(self)
        self._content=None
        
    def set_content(self, cnt):
        self._content=cnt
            
class ErrorDialog():
    
    def __init__(self, msg):
        self._message=msg
    
    def get_message(self):
        return self._message

class AsyncInvoke(threading.Thread):
    def __init__(self, main, func, callback=None):
        threading.Thread.__init__(self, name="User_Interface")
        self._func=func
        self._callback=callback
        self._main=main
    
    def run(self):
        try:
            self._main._wait_ui=None
            self._main.wait_message(messages.get_message("waiting"))
            ret=self._func()  
        except SystemExit:
            self._main._action=None
            self._main.close()
            return         
        except Exception as e:
            msg = e.__class__.__name__
            if e.args is not None and len(e.args)>0 and e.args[0] != '':
                msg = e.args[0]
            ret=ErrorDialog(messages.get_message('unexpectedError').format(msg))
        if self._callback is not None:
            self._callback(ret)

'''
class DialogMessage(gdi.DialogMessage):
    def on_keyboard(self,tp,c,shift,ctrl,alt,meta):
        if alt==1 and tp==u"CHAR" and c==u"o":
            self._ok_action(None)
        if alt==1 and tp==u"CHAR" and c==u"y":
            self._yes_action(None)
        if alt==1 and tp==u"CHAR" and c==u"n":
            self._no_action(None)
        #print(tp + " " + c + " " + str(alt))
        gdi.Window.on_keyboard(self, tp, c, shift, ctrl, alt, meta)

class Window(gdi.Window):
    def setUI(self,v):
        self._ui=v
    
    def on_keyboard(self,tp,c,shift,ctrl,alt,meta):
        if alt==1 and tp==u"CHAR" and c==u"c" and self._ui._cur_step_ui is not None:
            self._ui.close()
            return
        if alt==1 and tp==u"CHAR" and c==u"b" and self._ui._cur_step_ui is not None:
            if self._ui._cur_step_ui.is_back_enabled():
                self._ui.back()
            return
        if alt==1 and tp==u"CHAR" and c==u"n" and self._ui._cur_step_ui is not None:
            if self._ui._cur_step_ui.is_next_enabled():
                if hasattr(self._ui._cur_step_ui,"on_validate"):
                    fc = self.get_focus_component()
                    if fc is not None:
                        self._ui._cur_step_ui.on_validate({"source":fc})
                self._ui.next()
            return
        if alt==1 and tp==u"CHAR" and c==u"u" and self._ui._cur_step_ui is not None:
            if self._ui._cur_step_ui.on_selected:
                cmps = self._ui._pnlmain.get_components();
                for i in range(len(cmps)):
                    if i>=1:
                        rb = cmps[i]
                        if rb.get_selected():
                            if i>1:
                                rb.set_selected(False)
                                cmps[i-1].set_selected(True)
                                self._ui._cur_step_ui.on_selected({"source":cmps[i-1]})
                            break;
        if alt==1 and tp==u"CHAR" and  c==u"d" and self._ui._cur_step_ui is not None:
            if self._ui._cur_step_ui.on_selected:
                cmps = self._ui._pnlmain.get_components();
                for i in range(len(cmps)):
                    if i>=1:
                        rb = cmps[i]
                        if rb.get_selected():
                            if i<len(cmps)-1:
                                rb.set_selected(False)
                                cmps[i+1].set_selected(True)
                                self._ui._cur_step_ui.on_selected({"source":cmps[i+1]})
                            break;
        #print(tp + " " + c + " " + str(alt))
        gdi.Window.on_keyboard(self, tp, c, shift, ctrl, alt, meta)
'''
            
class UI():
    def __init__(self, params, step_init):
        self._title = "DWAgent"
        if "title" in params:
            self._title = utils.str_new(params["title"])
        try:
            self._rtl=messages.is_rtl()
        except:
            self._rtl=False            
        self._logo = None
        self._topimage = None
        self._topinfo = None
        self._leftcolor = None
        if "logo" in params:
            self._logo = utils.str_new(params["logo"])
        if "topimage" in params:
            self._topimage = utils.str_new(params["topimage"])
        if "topinfo" in params:
            self._topinfo = utils.str_new(params["topinfo"])
        if "leftcolor" in params:
            self._leftcolor = params["leftcolor"]
        self._step_init=step_init
        self._cur_step_ui=None
        self._wait_ui=None
        self._wait_panel_on_destroy=None
        self._action=None
        self._closing=False
        self._is_raw_input=False
        self._gui_enable=False
        self._prev_msg_wait=""
    
    def set_action(self,f):
        self._action=f
    
    def is_gui(self):
        return self._gui_enable
    
    def start(self, bgui=True):
        if bgui:
            try:
                if gdi.is_linux():
                    if not "DISPLAY" in os.environ:
                        raise("NODIPLAY") 
                    d = os.environ["DISPLAY"]
                    if d is None or d=="":
                        raise("NODIPLAY")    
                self._gui_enable=True
                self._guimode_start()
            except Exception as e:
                if gdi.is_linux():
                    self._gui_enable=False
                    self._clmode_start()
                else:
                    raise e
        else:
            self._gui_enable=False
            self._clmode_start()
    
    def _prepare_step(self, stp):
        if not self._closing:
            self._prev_msg_wait=""
            self._prepare_buttons(stp)
            func = getattr(self,  '_show_' + stp.__class__.__name__ .lower())
            func(stp)
    
    def next(self):
        if self._gui_enable==True:            
            self._guimode_next(None)
        else:
            self._clmode_next()
            
    def back(self):
        if self._gui_enable==True:
            self._guimode_back(None)
        else:
            self._clmode_back()
    
    def _op_complete(self, app):
        if app is None and self._wait_ui is not None:
            self._prepare_step(self._cur_step_ui)
        elif app.__class__.__name__ .lower()=='errordialog':
            self._show_error(app.get_message())
        else:
            self._cur_step_ui = app
            self._prepare_step(self._cur_step_ui)
            
    def _signal_close(self, signal, frame):
        if self._gui_enable is False:
            print("")
        if self._is_raw_input:
            raise Exception("#EXIT");
        else:
            self.close()
    
    def _printcl(self, msg):
        #print("ENC:" + sys.stdout.encoding)
        if utils.is_py2():
            if sys.stdout.encoding is None:
                print(msg)
            else:
                print(msg.encode(sys.stdout.encoding,'replace'))
        else:
            print(msg)
    
    def _raw_input(self,msg,bpasswd=False):
        try:
            appmsg=msg + u" "
            if utils.is_py2():
                if sys.stdout.encoding is not None:
                    appmsg=appmsg.encode(sys.stdout.encoding,'replace')            
            self._is_raw_input=True
            if not bpasswd:
                if utils.is_py2():
                    sr = raw_input(appmsg)
                else:
                    sr = input(appmsg)
            else:
                import getpass
                sr = getpass.getpass(appmsg)
            if utils.is_py2():
                sr=sr.decode('utf-8','replace')            
            if sr.lower()==u"#exit":
                raise Exception("#EXIT")
            elif sr.lower()==u"#back":
                raise Exception("#BACK")
            self._is_raw_input=False
            return sr
        except Exception as e:
            self._is_raw_input=False
            msg = utils.exception_to_string(e)
            if msg==u"#EXIT":
                self.close()
            elif msg==u"#BACK":
                if self._cur_step_ui.is_back_enabled():
                    self._clmode_back()
                else:
                    return u""
            else:
                self._printcl(u"")
                self._printcl(u"")
                self._printcl(messages.get_message('unexpectedError').format(utils.str_new(traceback.format_exc())))
                self.close()
            return None
        
    
    def close(self):
        self._closing=True
        if self._action is not None:
            self._action({"action":"CLOSE"})
        if self._gui_enable is True:
            self._app.destroy()
                
        
    def _clmode_next(self):
        try:
            self.wait_message(messages.get_message("waiting"))
            ret=self._cur_step_ui.fire_next_step()
        except Exception:
            ret=ErrorDialog(messages.get_message('unexpectedError').format(utils.str_new(traceback.format_exc())))
        self._op_complete(ret)
    
    def _clmode_back(self):
        try:
            self.wait_message(messages.get_message("waiting"))
            ret=self._cur_step_ui.fire_prev_step()
        except Exception:
            ret=ErrorDialog(messages.get_message('unexpectedError').format(utils.str_new(traceback.format_exc())))            
        self._op_complete(ret)
     
    def _clmode_start(self):
        try:
            import signal 
            signal.signal(signal.SIGINT, self._signal_close)
            signal.signal(signal.SIGTERM, self._signal_close)
            signal.signal(signal.SIGQUIT, self._signal_close)
        except:
            None            
        
        self._printcl(u"")
        self._printcl(u"****************************************")
        self._printcl(messages.get_message('commands') + u":")
        self._printcl(u" #BACK <" + messages.get_message('enter')  + "> " + messages.get_message('toBack'))
        self._printcl(u" #EXIT <" + messages.get_message('enter')  + "> " + messages.get_message('toExit'))
        self._printcl(u"****************************************")            
        try:
            self._cur_step_ui=self._step_init(BaseUI())
            if isinstance(self._cur_step_ui,ErrorDialog):
                self._cur_step_ui=Message(self._cur_step_ui.get_message())
        except Exception as e:            
            self._cur_step_ui=Message("Error: " + utils.exception_to_string(e))        
        self._prepare_step(self._cur_step_ui)
        self._printcl(u"")
    
    def _guimode_next(self, e):
        if e["action"]=="PERFORMED":
            self._guimode_execute(self._cur_step_ui.fire_next_step, self._op_complete)
        
    def _guimode_back(self, e):
        if e["action"]=="PERFORMED":
            self._guimode_execute(self._cur_step_ui.fire_prev_step, self._op_complete)
        
    def _guimode_close_action(self, e):
        if e["action"]=="DIALOG_YES":
            self._guimode_execute(self.close)
    
    def _guimode_close(self, e):
        if e["action"]=="PERFORMED":
            if self._cur_step_ui is None or (self._cur_step_ui.is_next_enabled() or self._cur_step_ui.is_back_enabled()) :
                dlgerr = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_YESNO,gdi.DIALOGMESSAGE_LEVEL_INFO,parentwin=self._app, logopath=self._logo, isrtl=self._rtl)
                dlgerr.set_title(self._title)
                dlgerr.set_message(messages.get_message('confirmExit'))
                dlgerr.set_action(self._guimode_close_action)
                dlgerr.show();
            else:
                self.close()
    
    def _guimode_action(self, e):
        if e["action"]==u"ONCLOSE":
            e["cancel"]=True
            if self._btclose.is_enable():
                self._guimode_close(e)
    
    def _guimode_step_init_start(self):
        self._guimode_execute(self._guimode_step_init, self._guimode_step_init_callback)        
    
    def _guimode_step_init(self):
        ui=None
        try:
            ui=self._step_init(BaseUI())
            if isinstance(ui,ErrorDialog):
                ui=Message(ui.get_message())
        except Exception as e:            
            ui=Message("Error: " + utils.exception_to_string(e))
        return ui
    
    def _guimode_step_init_callback(self,curui):
        self._cur_step_ui=curui
        self._prepare_step(self._cur_step_ui)
    
    
    def _guimode_start(self):
        
        gdi.gdw_lib() #Se non Ã¨ presente la libreria va in errore quindi in modalita console
        
        self._top_height=0
        if self._topimage is not None:
            self._top_height=gdi.get_image_size(self._topimage)["height"]
        elif self._topinfo is not None:
            self._top_height=(22*len(self._topinfo.split("\n"))) + 10
        
        self._app = gdi.Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, logopath=self._logo, isrtl=self._rtl)
        #self._app = Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, logopath=self._logo)
        #self._app.setUI(self)
        
        self._app.set_title(self._title)
        self._app.set_size(_WIDTH, _HEIGHT+self._top_height)
        self._app.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN)
        self._app.set_action(self._guimode_action)
        
        pnl_left = gdi.Panel();
        if self._rtl:
            pnl_left.set_position(_WIDTH-_WIDTH_LEFT, self._top_height)
        else:
            pnl_left.set_position(0, self._top_height)
        pnl_left.set_size(_WIDTH_LEFT,_HEIGHT)
        
        if self._rtl:
            if self._leftcolor is not None:
                pnl_left.set_background_gradient(self._leftcolor, "FFFFFF", gdi.GRADIENT_DIRECTION_RIGHTLEFT)
            else:
                pnl_left.set_background_gradient("83e5ff", "FFFFFF", gdi.GRADIENT_DIRECTION_RIGHTLEFT)
        else:
            if self._leftcolor is not None:
                pnl_left.set_background_gradient(self._leftcolor, "FFFFFF", gdi.GRADIENT_DIRECTION_LEFTRIGHT)
            else:
                pnl_left.set_background_gradient("83e5ff", "FFFFFF", gdi.GRADIENT_DIRECTION_LEFTRIGHT)
        self._app.add_component(pnl_left)
        
        if self._topimage is not None:
            pnl_top = gdi.ImagePanel();
            pnl_top.set_position(0, 0)
            pnl_top.set_filename(self._topimage)
            pnl_top.set_size(_WIDTH,self._top_height)
            self._app.add_component(pnl_top)
        elif self._topinfo is not None:
            pnl_top = gdi.Panel();
            pnl_top.set_position(0, 0)
            pnl_top.set_size(_WIDTH,self._top_height)
            pnl_top.set_background("d9d9d9")
            self._app.add_component(pnl_top)
            
            pnl_top_text = gdi.Label()
            pnl_top_text.set_position(10,0)
            pnl_top_text.set_size(_WIDTH-(2*10),self._top_height)
            pnl_top_text.set_wordwrap(True)
            pnl_top_text.set_foreground("000000")
                        
            pnl_top_text.set_text(self._topinfo)
            pnl_top.add_component(pnl_top_text)
        
        
        pnl_bottom = gdi.Panel();
        pnl_bottom.set_position(0, _CONTENT_HEIGHT+self._top_height)
        pnl_bottom.set_size(_WIDTH,_HEIGHT_BOTTOM)
        self._app.add_component(pnl_bottom)
        
        wbtn=_BUTTON_WIDTH
        hbtn=_BUTTON_HEIGTH
                
        self._btback = gdi.Button();
        if self._rtl:
            self._btback.set_position(_WIDTH-wbtn-_BUTTON_GAP, _BUTTON_GAP)
        else:
            self._btback.set_position(_BUTTON_GAP, _BUTTON_GAP)
        self._btback.set_size(wbtn, hbtn)
        self._btback.set_text(messages.get_message('back'))
        self._btback.set_enable(False);
        self._btback.set_action(self._guimode_back)
        pnl_bottom.add_component(self._btback)
                
        self._btnext = gdi.Button();
        if self._rtl:
            self._btnext.set_position(_WIDTH-(2*wbtn)-(2*_BUTTON_GAP), _BUTTON_GAP)
        else:
            self._btnext.set_position(_BUTTON_GAP+wbtn+5, _BUTTON_GAP)
        self._btnext.set_size(wbtn, hbtn)
        self._btnext.set_text(messages.get_message('next'))
        self._btnext.set_enable(False);
        self._btnext.set_action(self._guimode_next)
        pnl_bottom.add_component(self._btnext)
        
        self._btclose = gdi.Button();
        if self._rtl:
            self._btclose.set_position(_BUTTON_GAP, _BUTTON_GAP)
        else:
            self._btclose.set_position(_WIDTH-wbtn-_BUTTON_GAP, _BUTTON_GAP)
        self._btclose.set_size(wbtn, hbtn)
        self._btclose.set_text(messages.get_message('close'))
        self._btclose.set_enable(False);
        self._btclose.set_action(self._guimode_close)
        pnl_bottom.add_component(self._btclose)
        
        self._pnlmain=None
        self._cur_step_ui=None
        self._step_init_run=False
        
        self._guimode_step_init_start()
        self._app.show()
        gdi.loop()
        
    
    def _guimode_execute(self, func, callback=None):
        ac = AsyncInvoke(self, func, callback)
        ac.start()        
   
    def _prepare_main_panel(self):
        if self._gui_enable is True:
            if (self._pnlmain is not None):
                if self._wait_panel_on_destroy is not None:
                    self._wait_panel_on_destroy()
                    #print("self._pnlmain.remove_component(self._wait_panel)")
                    #self._pnlmain.remove_component(self._wait_panel)
                self._wait_panel_on_destroy=None
                self._pnlmain.remove_all_components()
            else:
                self._pnlmain = gdi.Panel();
                self._pnlmain.set_background("ffffff")
                if self._rtl:
                    self._pnlmain.set_position(0, self._top_height)
                else:
                    self._pnlmain.set_position(_WIDTH_LEFT, self._top_height)
                self._pnlmain.set_size(_CONTENT_WIDTH,_CONTENT_HEIGHT)
                self._app.add_component(self._pnlmain)

    def _prepare_buttons(self,  curui):
        if self._gui_enable is True:
            self._btnext.set_enable(curui.is_next_enabled())
            self._btback.set_enable(curui.is_back_enabled())
            self._btclose.set_enable(True)
    
    def _disable_next_button(self):
        if self._gui_enable is True:
            self._btnext.set_enable(False)
    
    def _enable_next_button(self):
        if self._gui_enable is True:
            self._btnext.set_enable(True)
    
    def _show_error_gui_ok(self,e):
        if self._wait_ui is not None and e["action"]==u"MOUSECLICK":
            self._prepare_step(self._cur_step_ui)
            
    def _show_error(self,  msg):
        if self._gui_enable is True:
            dlgerr = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK,gdi.DIALOGMESSAGE_LEVEL_ERROR,parentwin=self._app, logopath=self._logo, isrtl=self._rtl)
            dlgerr.set_title(self._title)
            dlgerr.set_message(msg)
            dlgerr.set_action(self._show_error_gui_ok)
            dlgerr.show();
        else:
            self._printcl(u"")
            self._printcl(messages.get_message('error') + u": " + msg)
            if self._raw_input(messages.get_message('pressEnter')) is not None:
                self._prepare_step(self._cur_step_ui)
            
    
    def wait_panel(self, pnl, ondestroy, allowclose=False):
        if self._gui_enable is True:
            self._btnext.set_enable(False)
            self._btback.set_enable(False)
            self._btclose.set_enable(allowclose)
            self._prepare_main_panel()
            self._wait_ui=None
            self._wait_panel_on_destroy=ondestroy
            self._pnlmain.add_component(pnl)
        else:
            self._show_error("wait_panel allowed only in gui mode.")
            
    
    def wait_message(self, msg, perc=None, progr=None, allowclose=False):
        if self._gui_enable is True:
            if perc is not None:
                msg=msg + "     (" + str(perc) + "%)"
            self._wait_message_gui(msg, progr, allowclose)
        else:
            if self._prev_msg_wait!=msg:
                self._prev_msg_wait=msg
                if allowclose:
                    msg+=u"\n\nCTRL+C " + messages.get_message('toExit') + u"\n" 
                self._printcl(msg) 
    
    def _wait_message_gui(self, msg, progr=None, allowclose=False):
        if self._wait_ui is None:
            self._btnext.set_enable(False)
            self._btback.set_enable(False)
            self._btclose.set_enable(allowclose)
            self._prepare_main_panel()
            lbl=gdi.Label()
            lbl.set_wordwrap(True)
            lbl.set_position(_GAP_TEXT,(_CONTENT_HEIGHT/2)-60)
            lbl.set_size(_CONTENT_WIDTH-(2*_GAP_TEXT),60)
            lbl.set_text_align(gdi.TEXT_ALIGN_STARTTOP)
            self._pnlmain.add_component(lbl)
            pbarw=_CONTENT_WIDTH-(4*_GAP_TEXT)
            pbar = gdi.ProgressBar()
            if self._rtl:
                pbar.set_position(_CONTENT_WIDTH - pbarw - _GAP_TEXT,_CONTENT_HEIGHT/2)
            else:
                pbar.set_position(_GAP_TEXT,_CONTENT_HEIGHT/2)                
            pbar.set_size(pbarw,22)
            self._pnlmain.add_component(pbar)
            self._wait_ui={'label':lbl, 'progress':pbar}
        else:
            self._btclose.set_enable(allowclose)
            lbl=self._wait_ui['label']
            pbar=self._wait_ui['progress']
        
        if 'label_value' not in self._wait_ui or self._wait_ui['label_value'] !=msg:
            lbl.set_text(msg)
        self._wait_ui['label_value']=msg
        if progr is None:
            if 'progress_value' not in self._wait_ui or self._wait_ui['progress_value'] is not None:
                pbar.set_y(-100)
                lbl.set_y(0)
                lbl.set_height(_CONTENT_HEIGHT)
                lbl.set_text_align(gdi.TEXT_ALIGN_STARTMIDDLE)
            self._wait_ui['progress_value']=None
        else:
            if 'progress_value' not in self._wait_ui  or self._wait_ui['progress_value'] is None or self._wait_ui['progress_value']!=progr:
                lbl.set_y((_CONTENT_HEIGHT/2)-40)
                lbl.set_height(30)
                lbl.set_text_align(gdi.TEXT_ALIGN_STARTTOP)
                pbar.set_y(_CONTENT_HEIGHT/2)
                pbar.set_percent(progr)                
            self._wait_ui['progress_value']=progr
            
            
        
    def _clmode_read(self, msg,  bpwd=False):
        ui = self._cur_step_ui;
        if not ui.is_next_enabled() and not ui.is_back_enabled():
            self.close()
            return None #Termina Installazione
        if not bpwd:
            return self._raw_input(msg)
        else:
            return self._raw_input(msg,True)
    
    def _show_message(self,  msg):
        if self._gui_enable is True:
            self._prepare_main_panel()
            w=_CONTENT_WIDTH-(2*_GAP_TEXT)
            h=_CONTENT_HEIGHT-(2*_GAP_TEXT)
            
            l = gdi.Label()
            l.set_position(_GAP_TEXT,_GAP_TEXT)
            l.set_size(w,h)
            l.set_wordwrap(True)
            l.set_text(msg.get_message())
            self._pnlmain.add_component(l)
        else:
            self._printcl(u"")
            self._printcl(msg.get_message())
            rd = self._clmode_read(messages.get_message('pressEnter'))
            if rd is not None:
                self._clmode_next()

    def _show_inputs(self,  inps):
        if self._gui_enable is True:
            self._prepare_main_panel()
            w=_CONTENT_WIDTH-(2*_GAP_TEXT)
            h=100
            
            l = gdi.Label()
            l.set_position(_GAP_TEXT,_GAP_TEXT)
            l.set_size(w,h)
            l.set_wordwrap(True)
            l.set_text_align(gdi.TEXT_ALIGN_STARTTOP)
            l.set_text(inps.get_message())
            self._pnlmain.add_component(l)

            lblw=210
            ar = inps.get_inputs()
            p=120
            for i in range(len(ar)):
                inp=ar[i]
                #LABEL
                l = gdi.Label()
                if self._rtl:
                    l.set_position(_CONTENT_WIDTH-_GAP_TEXT-lblw,p)
                else:
                    l.set_position(_GAP_TEXT,p)
                l.set_size(lblw-1,30)
                l.set_text(inp['label'])
                self._pnlmain.add_component(l)
                
                #TEXTBOX
                tw=_CONTENT_WIDTH-(4*_GAP_TEXT)-lblw
                t = gdi.TextBox()
                t.set_name(inp['key'])
                if self._rtl:
                    t.set_position(_CONTENT_WIDTH-tw-(_GAP_TEXT+lblw),p)
                else:
                    t.set_position(_GAP_TEXT+lblw,p)
                t.set_size(tw,30)
                t.set_text(inp['variable'].get())
                if inp['variable'].is_password():
                    t.set_password_mask(True)
                self._pnlmain.add_component(t)
                t.set_validate(inps.on_validate)
                if i==0:
                    t.focus()
                p+=36
        else:
            self._printcl(u"")
            self._printcl(inps.get_message())
            ar = inps.get_inputs()
            for i in range(len(ar)):
                inp=ar[i]
                v=inp['variable'].get()
                if v is None:
                    v=u""
                if v!=u"" and not inp['variable'].is_password():
                    v=u" (" + v + u")"
                rd = self._clmode_read(inp['label']  +  v + u":", inp['variable'].is_password())
                if rd is not None:
                    if rd.strip()!=u"":
                        inp['variable'].set(rd)
                else:
                    return
            self._clmode_next()
                            
               
    def _show_chooser(self,  chs):
        if self._gui_enable is True:
            self._prepare_main_panel()
            h=chs.get_message_height()
            w=_CONTENT_WIDTH-(2*_GAP_TEXT)
            l = gdi.Label() 
            l.set_wordwrap(True)
            l.set_text_align(gdi.TEXT_ALIGN_STARTTOP)
            l.set_text(chs.get_message())
            
            if len(chs.get_message_hyperlinks())>0:
                for i in range(len(chs.get_message_hyperlinks())):
                    itm=chs.get_message_hyperlinks()[i]
                    l.add_hyperlink("k" + str(i), itm["start"], itm["length"], itm["url"])  
            
            l.set_position(_GAP_TEXT, _GAP_TEXT)
            l.set_size(w, h)
            
            self._pnlmain.add_component(l)
        
            ar = chs.get_choices()
            p=h+_GAP_TEXT
            for i in range(len(ar)):
                inp=ar[i]
                rb = gdi.RadioButton()
                rb.set_text(inp['label'])
                rb.set_position(_GAP_TEXT, p)
                rb.set_size(_CONTENT_WIDTH-(2*_GAP_TEXT), 30)
                rb.set_name(inp['key'])
                rb.set_group("RADIOBUTTON")
                if chs.get_variable().get()==inp['key']:
                    rb.set_selected(True);
                rb.set_action(chs.on_selected)
                self._pnlmain.add_component(rb)
                p+=30
            chs.set_main(self)
        else:
            self._printcl(u"")
            self._printcl(chs.get_message())
            self._printcl(u"")
            ar = chs.get_choices()
            df = u""
            ar_idx_accept=[]
            idx_default=None
            for i in range(len(ar)):
                inp=ar[i]
                self._printcl(str(i+1) + u". " + inp['label'])
                if chs.get_variable().get()==inp['key']:
                    idx_default=i+1
                    df = u" (" + str(idx_default) + u")"
                if chs.is_accept_key(inp['key']):
                    ar_idx_accept.append(i+1)
            rd = self._clmode_read(messages.get_message('option') + df + u":")
            if rd is not None:
                if rd=="":
                    rd=str(idx_default)
                try:
                    ird=int(rd)
                    if (ird>len(ar)):
                        raise Exception("")
                    if len(ar_idx_accept) > 0:
                        serr=[]
                        berr=True
                        for idxcur in ar_idx_accept:
                            serr.append(str(idxcur))
                            if ird==idxcur:
                                berr=False
                        if berr:
                            self._show_error(messages.get_message('mustAccept').format((u" " + messages.get_message('or') + u" ").join(serr)))
                            return
                    inp=ar[ird-1]
                except:
                    self._show_error(messages.get_message('optionNotValid'))
                    return
                chs.get_variable().set(inp['key'])
                self._clmode_next()
               
                                               ui/gdi.py                                                                                           0000755 0001750 0001750 00000264560 15031521703 012113  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
try:
    from . import messages
except: #FIX INSTALLER
    import messages
try:
    from . import images
except: #FIX INSTALLER
    import images
import ctypes
import _ctypes
import utils
import platform
import sys
import time
import threading
import struct
import subprocess
import json

WINDOW_TYPE_NORMAL=0
WINDOW_TYPE_NORMAL_NOT_RESIZABLE=1
WINDOW_TYPE_DIALOG=100
WINDOW_TYPE_POPUP=200
WINDOW_TYPE_TOOL=300

WINDOW_POSITION_XY=0
WINDOW_POSITION_CENTER_SCREEN=1

TEXT_ALIGN_LEFTMIDDLE=0
TEXT_ALIGN_LEFTTOP=1

TEXT_ALIGN_CENTERMIDDLE=10
TEXT_ALIGN_CENTERTOP=11

TEXT_ALIGN_RIGHTMIDDLE=20
TEXT_ALIGN_RIGHTTOP=21

TEXT_ALIGN_STARTMIDDLE=100
TEXT_ALIGN_STARTTOP=101

TEXT_ALIGN_ENDMIDDLE=120
TEXT_ALIGN_ENDTOP=121

DIALOGMESSAGE_ACTIONS_OK=0
DIALOGMESSAGE_ACTIONS_YESNO=10

DIALOGMESSAGE_LEVEL_INFO=0
DIALOGMESSAGE_LEVEL_WARN=1
DIALOGMESSAGE_LEVEL_ERROR=2

POPUP_POSITION_BOTTONRIGHT=0
POPUP_POSITION_BOTTONLEFT=1
POPUP_POSITION_TOPRIGHT=10
POPUP_POSITION_TOPLEFT=11

GRADIENT_DIRECTION_LEFTRIGHT=0;
GRADIENT_DIRECTION_RIGHTLEFT=1;
GRADIENT_DIRECTION_TOPBOTTOM=2;
GRADIENT_DIRECTION_BOTTONTOP=3;

_STYLE_WINDOW_BACKGROUND_COLOR="ffffff"
_STYLE_WINDOW_FOREGROUND_COLOR="000000"
_STYLE_COMPONENT_BACKGROUND_COLOR="d9d9d9"
_STYLE_COMPONENT_FOREGROUND_COLOR="000000"
_STYLE_COMPONENT_BORDER_COLOR="a0a0a0"
_STYLE_EDITOR_BACKGROUND_COLOR="ffffff"
_STYLE_EDITOR_FOREGROUND_COLOR="000000"
_STYLE_EDITOR_SELECTION_COLOR="c0c0c0"

_gdimap={}
_gdimap["init"]=False
_gdimap["lock"]=threading.Lock()
_gdimap["cntwin"]=0
_gdimap["cntnfi"]=0
_gdimap["cntfnt"]=0
_gdimap["cntimg"]=0
_gdimap["windows"]={}
_gdimap["notifyicon"]={}
_gdimap["fontmanager"]=None
_gdimap["imagemanager"]=None
_gdimap["scheduler"]=None
_gdimap["postaction"]=[]
_gdimap["screensize"]={"width":0, "height":0, "_lastcheck":0.0}
#_gdimap["repaint"]={}

def is_windows():
    return (platform.system().lower().find("window") > -1)

def is_linux():
    return (platform.system().lower().find("linux") > -1)

def is_mac():
    return (platform.system().lower().find("darwin") > -1)

def is_os_32bit():
    return not sys.maxsize > 2**32

def is_os_64bit():
    return sys.maxsize > 2**32

def check_hw_string(s):
    if s is not None:
        if "raspberry" in s.lower():
            return "RaspberryPi"
        elif "wandboard" in s.lower():
            return "Wandboard"
        elif "pine64" in s.lower() or "rock64" in s.lower():
            return "Pine64"
    return None

def get_hw_name():
    sapp = platform.machine()
    if is_linux() and ((len(sapp)>=3 and sapp[0:3].lower()=="arm") or (len(sapp)>=7 and sapp[0:7].lower()=="aarch64")):
        #VERIFICA SE RASPBERRY
        try:
            if utils.path_exists("/sys/firmware/devicetree/base/model"):
                fin=utils.file_open("/sys/firmware/devicetree/base/model","r")
                appmdl = fin.read()
                fin.close()
                appmdl=check_hw_string(appmdl);
                if appmdl is not None:
                    return appmdl
            appmdl=check_hw_string(platform.node());
            if appmdl is not None:
                return appmdl
        except:
            None
    return None

def _get_logo_from_conf(jocfg, pth):
    if pth is None:
        pth=""
    ret=""
    if not is_linux():
        if "logo16x16" in jocfg:
            ret+=pth + jocfg["logo16x16"]
    else:
        if "logo16x16" in jocfg:
            ret+=pth + jocfg["logo16x16"]+"\n"
        if "logo32x32" in jocfg:
            ret+=pth + jocfg["logo32x32"]+"\n"
        if "logo48x48" in jocfg:
            ret+=pth + jocfg["logo48x48"]+"\n"
    return ret

def is_windows_user_in_admin_group():
    if is_windows():
        return gdw_lib().isUserInAdminGroup()==1
    else:
        raise Exception("invalid os.")

def is_windows_run_as_admin():
    if is_windows():
        return gdw_lib().isRunAsAdmin()==1
    else:
        raise Exception("invalid os.")

def is_windows_process_elevated():
    return gdw_lib().isProcessElevated()==1

def is_windows_task_running(pid):
    bret=gdw_lib().isTaskRunning(pid);
    return bret==1

def _fix_rtl_text(s,bedit=False):
    return correct_rtl_ltr_text(s)


def _fix_rtl_get_bidi(c):
    import unicodedata
    bdtype = unicodedata.bidirectional(c)
    if bdtype in ["R", "AL"]:
        bdtype="RTL"
    elif bdtype in ["WS"]:
        bdtype="WS"
    elif bdtype in ["ON", "BN"]:
        bdtype="NEUTRAL"
    elif bdtype in ["CS", "ET"]:
        bdtype="SEPARATOR"                        
    else:
        bdtype="LTR"
    return bdtype

def correct_rtl_ltr_text(s):    
    if not s:
        return ""
    
    arsgm=[]
    ssgm=[]
    bdtypeprev=None
    for i in range(len(s)):
        c=s[i]
        bdtype = _fix_rtl_get_bidi(c)
        if bdtype=="SEPARATOR":
            bdtype="NEUTRAL"
            if bdtypeprev=="RTL":
                bdtype=bdtypeprev
            elif bdtypeprev=="LTR":
                bdtype=bdtypeprev
            elif i<len(s)-1:
                cnext=s[i+1]
                bdtypenext = _fix_rtl_get_bidi(cnext)
                if bdtypenext=="RTL":
                    bdtype=bdtypenext
                elif bdtypenext=="LTR":
                    bdtype=bdtypenext
        if c =="(":
            c=")"
            bdtype="CONTAINER"
        elif c ==")":
            c="("
            bdtype="CONTAINER"
        elif c =="[":
            c="]"
            bdtype="CONTAINER"
        elif c =="]":
            c="["
            bdtype="CONTAINER"
        elif c =="{":
            c="}"
            bdtype="CONTAINER"
        elif c =="}":
            c="{"
            bdtype="CONTAINER"
        elif c =="<":
            c=">"
            bdtype="CONTAINER"
        elif c ==">":
            c=">"
            bdtype="CONTAINER"
        if bdtypeprev is None:
            bdtypeprev=bdtype
        if bdtype!=bdtypeprev or bdtype=="NEUTRAL":
            smsgadd="".join(ssgm)
            #SPECIAL FIX STRING ENDS WITH LTR+... (LIKE WAITING MSG)
            if bdtypeprev=="LTR" and smsgadd.endswith("..."):
                arsgm.append((smsgadd[0:-3],bdtypeprev))
                arsgm.append((".","NEUTRAL"))
                arsgm.append((".","NEUTRAL"))
                arsgm.append((".","NEUTRAL"))
            else:
                arsgm.append((smsgadd,bdtypeprev))
            bdtypeprev=bdtype
            ssgm=[]
            ssgm.append(c)
        else:
            if bdtype=="RTL":
                ssgm.insert(0,c)                
            else:
                ssgm.append(c)
    
    if len(ssgm):
        smsgadd="".join(ssgm)
        #SPECIAL FIX STRING ENDS WITH LTR+... (LIKE WAITING MSG)
        if bdtypeprev=="LTR" and smsgadd.endswith("..."):
            arsgm.append((smsgadd[0:-3],bdtypeprev))
            arsgm.append((".","NEUTRAL"))
            arsgm.append((".","NEUTRAL"))
            arsgm.append((".","NEUTRAL"))
        else:
            arsgm.append((smsgadd,bdtypeprev))
    
    
    '''
    #SPECIAL FIX STRING ENDS WITH LTR+... (LIKE WAITING MSG)
    if len(arsgm)>0 and arsgm[len(arsgm)-1][1]=="LTR":
        appsq=arsgm[len(arsgm)-1][0]
        if appsq.endswith("..."):
            arsgm[len(arsgm)-1]=(appsq[0:-3],arsgm[len(arsgm)-1][1])
            arsgm.append((".","NEUTRAL"))
            arsgm.append((".","NEUTRAL"))
            arsgm.append((".","NEUTRAL"))
    '''
    
     
    #FIX LTR SEQUENZE
    sltr=None
    eltr=None
    for i in range(len(arsgm)):
        if arsgm[i][1]=="LTR":
            if sltr is None:
                sltr = i
            else:
                eltr = i
        elif arsgm[i][1]=="RTL" or arsgm[i][1]=="CONTAINER":
            if sltr is not None and eltr is not None and sltr!=eltr:
                while sltr < eltr:
                    arsgm[sltr], arsgm[eltr] = arsgm[eltr], arsgm[sltr]
                    sltr += 1
                    eltr -= 1
            sltr=None
            eltr=None
    if sltr is not None and eltr is not None and sltr!=eltr:
        while sltr < eltr:
            arsgm[sltr], arsgm[eltr] = arsgm[eltr], arsgm[sltr]
            sltr += 1
            eltr -= 1                
    res=[]
    for sgm in reversed(arsgm):
        res.append(sgm[0])
            
    return "".join(res)

def gdw_lib():
    if "gdwlib" in _gdimap:
        return _gdimap["gdwlib"]
    else:
        gdwlib=None
        namelib=None
        namelibinst=None
        if is_windows():
            namelib="dwaggdi.dll"
            #Installer Mode
            sapp = platform.machine()
            if sapp is not None and sapp.upper()=="ARM64":
                namelibinst="dwaggdi_x86_32.dll"
            elif is_os_32bit():
                namelibinst="dwaggdi_x86_32.dll"
            elif is_os_64bit():
                namelibinst="dwaggdi_x86_64.dll"
        elif is_linux():
            namelib="dwaggdi.so"
            #Installer Mode            
            hwnm = get_hw_name()
            if hwnm == "RaspberryPi":
                if is_os_64bit():
                    namelibinst="linux_arm64_v1"
                else:
                    namelibinst="linux_armhf_v2"        
            elif hwnm == "Wandboard":
                if is_os_64bit():
                    namelibinst="linux_arm64_v1"
                else:
                    namelibinst="linux_armhf_v1"
            elif hwnm == "Pine64":
                if is_os_64bit():
                    namelibinst="linux_arm64_v1"
                else:
                    namelibinst="linux_armhf_v2"
            else:
                sapp = platform.machine()
                if sapp is not None and len(sapp)>=7 and sapp[0:7].lower()=="aarch64":
                    namelibinst="linux_armhf_v1"
            if namelibinst is None:
                if is_os_32bit():
                    namelibinst="dwaggdi_x86_32.so"
                elif is_os_64bit():
                    namelibinst="dwaggdi_x86_64.so"
        elif is_mac():
            namelib="dwaggdi.dylib"
            #Installer Mode
            sapp = platform.machine()
            if sapp is not None and sapp.upper()=="ARM64":
                namelibinst="dwaggdi_arm64_v1.dylib"
            elif is_os_32bit():
                namelibinst="dwaggdi_x86_32.dylib"
            elif is_os_64bit():
                namelibinst="dwaggdi_x86_64.dylib"
        if not utils.path_exists(".srcmode"):
            if namelibinst is not None and utils.path_exists(namelibinst): #Installer Mode
                gdwlib = ctypes.CDLL("." + utils.path_sep + namelibinst)
            elif utils.path_exists("native" + utils.path_sep + namelib):
                gdwlib = ctypes.CDLL("native" + utils.path_sep + namelib)
        else:
            gdwlib = ctypes.CDLL(".." + utils.path_sep + "make" + utils.path_sep + "native" + utils.path_sep + namelib)
        if gdwlib==None:
            raise Exception("Missing gdi library.")
        
        gdwlib.DWAGDIGetClipboardText.restype = ctypes.c_wchar_p
        _gdimap["gdwlib"]=gdwlib
        return gdwlib 


def getRGBColor(s):
    return struct.unpack('BBB', utils.str_hex_to_bytes(s))

def getHexColor(r, g, b):
    return utils.bytes_to_str_hex(struct.pack('BBB', r, g, b))

def _repaint(sid,x,y,w,h):
    with _gdimap["lock"]:
        '''
        if sid not in _gdimap["repaint"]:
            arsid={}
            arsid["x"]=x
            arsid["y"]=y
            arsid["w"]=w
            arsid["h"]=h
            _gdimap["repaint"][sid]=arsid
        else:
            arsid=_gdimap["repaint"][sid]
            
                  
        x1_1, y1_1 = x, y
        x2_1, y2_1 = x + w, y + h
        x1_2, y1_2 = arsid["x"], arsid["y"]
        x2_2, y2_2 = arsid["x"] + arsid["w"], arsid["y"] + arsid["h"]
        x1_r = min(x1_1, x1_2)
        y1_r = min(y1_1, y1_2)
        x2_r = max(x2_1, x2_2)
        y2_r = max(y2_1, y2_2)
        arsid["x"] = x1_r
        arsid["y"] = y1_r
        arsid["w"] = x2_r - x1_r
        arsid["h"] = y2_r - y1_r           
        '''
        _gdimap["postaction"].append({"name":"REPAINT","id":sid,"x":x,"y":y,"width":w,"height":h})

def _show_window(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"SHOW","id":sid})
    
def _update_pos_size(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"UPDATEPOSSIZE","id":sid})

def _hide_window(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"HIDE","id":sid})
    
def _to_front_window(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"TO_FRONT","id":sid})
        
def _init_window(sid,wnd):
    with _gdimap["lock"]:
        _gdimap["windows"][sid]=wnd;
        _gdimap["postaction"].append({"name":"INIT","id":sid})

def _term_window(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"TERM","id":sid})

def _set_title(sid, title):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"SET_TITLE","id":sid,"title":title})

def _create_notify_icon(sid, nfi, iconpath, tooltip):
    with _gdimap["lock"]:
        _gdimap["notifyicon"][sid]= nfi
        _gdimap["postaction"].append({"name":"CREATE_NOTIFY_ICON","id":sid,"iconpath":iconpath,"tooltip":tooltip})

def _update_notify_icon(sid, iconpath, tooltip):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"UPDATE_NOTIFY_ICON","id":sid,"iconpath":iconpath,"tooltip":tooltip})

def _destroy_notify_icon(sid):
    with _gdimap["lock"]:
        _gdimap["postaction"].append({"name":"DESTROY_NOTIFY_ICON","id":sid})

def mac_nsapp_set_activation_policy(v):
    _gdimap["mac_nsapp_set_activation_policy"]=v
    
CMPFUNCEVENTMESSAGE = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_wchar_p)

@CMPFUNCEVENTMESSAGE 
def cb_func_event_message(smsg):
    okscreensize=False
    if _gdimap["init"]==False:
        okscreensize=True
        _gdimap["init"]=True
        _gdimap["fontmanager"].load("default")
    else:
        elp = time.time() - _gdimap["screensize"]["_lastcheck"]
        if elp>3.0 or elp<0.0:
            okscreensize=True
    if okscreensize:
        sz_array = (ctypes.c_int * 2)()
        gdw_lib().DWAGDIGetScreenSize(sz_array)
        appsz={}
        appsz["width"] = int(sz_array[0])
        appsz["height"] = int(sz_array[1])
        appsz["_lastcheck"] = time.time()
        _gdimap["screensize"]=appsz
            
    gdwlib=gdw_lib()
    
    
    #EVENTS
    if smsg is not None:
        wnd = None
        #print("EVENT:" + smsg)                
        jo = json.loads(smsg)
        if jo is not None:
            if jo["name"]=="REPAINT":
                if jo["id"] in _gdimap["windows"]:
                    wnd=_gdimap["windows"][jo["id"]]                    
                    #print("REPAINT: " + str(jo["x"])+ " " + str(jo["y"]) + " " + str(jo["width"]) + " " + str(jo["height"]))
                    wnd.on_paint(jo["x"],jo["y"],jo["width"],jo["height"]);
            elif jo["name"]=="MOUSE":
                if jo["id"] in _gdimap["windows"]:
                    wnd=_gdimap["windows"][jo["id"]]
                    wnd.on_mouse(jo["action"],jo["x"],jo["y"],jo["button"]);
            elif jo["name"]=="KEYBOARD":
                if jo["id"] in _gdimap["windows"]:
                    wnd=_gdimap["windows"][jo["id"]]
                    wnd.on_keyboard(jo["type"],jo["value"],jo["shift"],jo["ctrl"],jo["alt"],jo["command"]);
            elif jo["name"]=="WINDOW":
                if jo["id"] in _gdimap["windows"]:
                    wnd=_gdimap["windows"][jo["id"]]
                    bret = wnd.on_window(jo["action"]);
                    if jo["action"]=="ONCLOSE":
                        if bret==True:
                            wnd.destroy() 
            elif jo["name"]=="NOTIFY":
                if jo["id"] in _gdimap["notifyicon"]:
                    nfi=_gdimap["notifyicon"][jo["id"]]
                    bret = nfi.on_action(jo["action"]);
    #else:
    #    print("ON TICK: " + str(time.time()))
    
    #SCHEDULER
    _gdimap["scheduler"].run()
    
    #POST ACTION
    with _gdimap["lock"]:
        postactionar=_gdimap["postaction"]
        _gdimap["postaction"]=[]
    while len(postactionar)>0: 
        jopa = postactionar.pop(0)
        if "id" in jopa:            
            #print("POST ACTION:" + jopa["name"])            
            if jopa["name"]=="INIT":
                wnd=_gdimap["windows"][jopa["id"]]
                logo=wnd._logo_path
                if logo is None:
                    if is_linux():
                        logo=images.get_image(u"logo16x16.bmp") + "\n" + images.get_image(u"logo32x32.bmp") + "\n" + images.get_image(u"logo48x48.bmp")                        
                    else:
                        logo=images.get_image(u"logo16x16.bmp")
                if is_linux():
                    if not "\n" in logo:
                        logo+="\n"
                sx=wnd._x
                sy=wnd._y
                if wnd._show_position==WINDOW_POSITION_CENTER_SCREEN:
                    appsz=_gdimap["screensize"]                    
                    sx=int((appsz["width"]/2)-(wnd._w/2))
                    sy=int((appsz["height"]/2)-(wnd._h/2))
                gdwlib.DWAGDINewWindow(wnd._id, wnd._type, int(sx), int(sy), int(wnd._w), int(wnd._h), logo)
                gdwlib.DWAGDISetTitle(wnd._id,wnd._title)
            elif jopa["name"]=="TERM":
                gdwlib.DWAGDIDestroyWindow(jopa["id"])
                del _gdimap["windows"][jopa["id"]]
                if len(_gdimap["windows"])==0:
                    gdwlib.DWAGDIEndLoop()
                    return
            elif jopa["name"]=="SET_TITLE":
                gdwlib.DWAGDISetTitle(jopa["id"],jopa["title"])
            elif jopa["name"]=="REPAINT":
                #print("DWAGDIRepaint: " + str(jopa["x"])+ " " + str(jopa["y"]) + " " + str(jopa["width"]) + " " + str(jopa["height"]))                
                gdwlib.DWAGDIRepaint(jopa["id"],int(jopa["x"]),int(jopa["y"]),int(jopa["width"]),int(jopa["height"]));
            elif jopa["name"]=="SHOW":
                wnd=_gdimap["windows"][jopa["id"]]
                sx=wnd._x
                sy=wnd._y
                if wnd._show_position==WINDOW_POSITION_CENTER_SCREEN:
                    appsz=_gdimap["screensize"]
                    sx=int((appsz["width"]/2)-(wnd._w/2))
                    sy=int((appsz["height"]/2)-(wnd._h/2))
                gdwlib.DWAGDIPosSizeWindow(wnd._id, int(sx), int(sy), int(wnd._w), int(wnd._h))
                gdwlib.DWAGDIShow(jopa["id"],0)
                gdwlib.DWAGDIToFront(jopa["id"])
                wnd.on_show()
            elif jopa["name"]=="UPDATEPOSSIZE":
                wnd=_gdimap["windows"][jopa["id"]]
                sx=wnd._x
                sy=wnd._y
                if wnd._show_position==WINDOW_POSITION_CENTER_SCREEN:
                    appsz=_gdimap["screensize"]
                    sx=int((appsz["width"]/2)-(wnd._w/2))
                    sy=int((appsz["height"]/2)-(wnd._h/2))
                gdwlib.DWAGDIPosSizeWindow(wnd._id, int(sx), int(sy), int(wnd._w), int(wnd._h))
            elif jopa["name"]=="HIDE":
                sappid=jopa["id"]
                gdwlib.DWAGDIHide(sappid)
                if sappid in _gdimap["windows"]:                                        
                    wnd=_gdimap["windows"][sappid]
                    wnd.on_hide()
            elif jopa["name"]=="TO_FRONT":
                gdwlib.DWAGDIToFront(jopa["id"])
            elif jopa["name"]=="CREATE_NOTIFY_ICON":
                gdwlib.DWAGDICreateNotifyIcon(jopa["id"],jopa["iconpath"],jopa["tooltip"])
            elif jopa["name"]=="UPDATE_NOTIFY_ICON":
                gdwlib.DWAGDIUpdateNotifyIcon(jopa["id"],jopa["iconpath"],jopa["tooltip"])
            elif jopa["name"]=="DESTROY_NOTIFY_ICON":
                gdwlib.DWAGDIDestroyNotifyIcon(jopa["id"])
                del _gdimap["notifyicon"][jopa["id"]]
        
    '''
    #REPAINT
    with _gdimap["lock"]:
        lstrepaint=_gdimap["repaint"]
        _gdimap["repaint"]={}
        
    for sid in lstrepaint:
        arrp=lstrepaint[sid]
        #print("DWAGDIRepaint: " + str(sid) + ": " + str(arrp["x"])+ " " + str(arrp["y"]) + " " + str(arrp["w"]) + " " + str(arrp["h"]))                
        gdwlib.DWAGDIRepaint(sid,int(arrp["x"]),int(arrp["y"]),int(arrp["w"]),int(arrp["h"]));
    '''

def loop():
    gdwlib=gdw_lib()
    _gdimap["fontmanager"]=FontManager()
    _gdimap["imagemanager"]=ImageManager()
    if _gdimap["scheduler"] is None:
        _gdimap["scheduler"]=Scheduler()
    
    
    if "mac_nsapp_set_activation_policy" in _gdimap:    
        gdw_lib().DWAGDINSAppSetActivationPolicy(_gdimap["mac_nsapp_set_activation_policy"])
    
    gdwlib.DWAGDILoop(cb_func_event_message)
    _gdimap["scheduler"].destroy()
    _gdimap["imagemanager"].destroy()
    _gdimap["fontmanager"].destroy()
    _gdimap["scheduler"]=None
    _gdimap["imagemanager"]=None
    _gdimap["fontmanager"]=None
    _gdimap["init"]=False
    if is_windows():
        _ctypes.FreeLibrary(gdwlib._handle)
    else:
        _ctypes.dlclose(gdwlib._handle)        
    del _gdimap["gdwlib"]

def get_mouse_position():
    pos_array = (ctypes.c_int * 2)()
    gdw_lib().DWAGDIGetMousePosition(pos_array)
    return {"x":int(pos_array[0]), "y":int(pos_array[1])}        

def get_screen_size():
    return _gdimap["screensize"]

def add_scheduler(tm, func):
    if _gdimap["scheduler"] is None:
        _gdimap["scheduler"]=Scheduler()
    _gdimap["scheduler"].add(tm, func)

class Scheduler:
    def __init__(self):
        self._list=[]
        
    def add(self, tm, func):
        itm = {"intervall": tm, "time": time.time(), "func": func}
        self._list.append(itm)
        return itm 
    
    def cancel(self, itm):
        self._list.remove(itm)
         
    
    def destroy(self):
        self._list=[]
    
    def run(self):
        if len(self._list)>0:
            ar = self._list[:]
            for itm in ar:
                elps = time.time()-itm["time"]
                if elps<0:
                    itm["time"]=time.time()
                elif elps>itm["intervall"]:
                    self._list.remove(itm)
                    itm["func"]()
                    
            
            
class FontManager:
    
    def __init__(self):
        self._list={}
    
    def load(self, name):
        if name not in self._list:
            i = 0
            with _gdimap["lock"]:
                _gdimap["cntfnt"]+=1
                i=_gdimap["cntfnt"]
            gdw_lib().DWAGDILoadFont(i,name)
            self._list[name]=i
    
    def unload(self, name):
        if name in self._list:
            gdw_lib().DWAGDIUnloadFont(self._list[name])
            del self._list[name]
    
    def destroy(self):
        for name in self._list:
            gdw_lib().DWAGDIUnloadFont(self._list[name])
        self._list={}
    
    def get_id(self, name):
        return self._list[name]


def get_image_size(name):
    sz_array = (ctypes.c_int * 2)()
    gdw_lib().DWAGDIGetImageSize(name,sz_array)
    return {"width":sz_array[0], "height":sz_array[1]} 

class ImageManager:
    
    def __init__(self):
        self._list={}
    
    def load(self, name):
        with _gdimap["lock"]:
            _gdimap["cntimg"]+=1
            i=_gdimap["cntimg"]
        sz_array = (ctypes.c_int * 2)()
        gdw_lib().DWAGDILoadImage(i,name,sz_array)
        itm={"id" : i, "name" : name, "width":sz_array[0], "height":sz_array[1]}
        self._list["K" + str(i)]=itm 
        return itm
    
    def unload(self, itm):
        sid = "K" + str(itm[id]);
        if sid in self._list:
            gdw_lib().DWAGDIUnloadImage(self._list[sid]["id"])
            del self._list[sid]
    
    def destroy(self):
        for sid in self._list:
            gdw_lib().DWAGDIUnloadImage(self._list[sid]["id"])
        self._list={}

class Paint:
    def __init__(self,win,offx,offy,clipx,clipy,clipw,cliph):
        self._window=win
        self._offx=offx;
        self._offy=offy;
        self._clipx=clipx;
        self._clipy=clipy;
        self._clipw=clipw;
        self._cliph=cliph;
        self._fontid=_gdimap["fontmanager"].get_id("default")
    
    def pen_color(self, col):
        rgb=getRGBColor(col.upper());
        gdw_lib().DWAGDIPenColor(self._window._id,rgb[0],rgb[1],rgb[2])

    def fill_rectangle(self,x,y,w,h):
        gdw_lib().DWAGDIFillRectangle(self._window._id,int(self._offx+x),int(self._offy+y),int(w),int(h))
        
    def fill_ellipse(self,x,y,w,h):
        gdw_lib().DWAGDIFillEllipse(self._window._id,int(self._offx+x),int(self._offy+y),int(w),int(h))

    def draw_image(self,imgitm,x,y):
        gdw_lib().DWAGDIDrawImage(self._window._id,imgitm["id"],int(self._offx+x),int(self._offy+y))                  
        
    def draw_ellipse(self,x,y,w,h):
        gdw_lib().DWAGDIDrawEllipse(self._window._id,int(self._offx+x),int(self._offy+y),int(w),int(h))
        
    def draw_line(self,x1,y1,x2,y2):
        gdw_lib().DWAGDIDrawLine(self._window._id,int(self._offx+x1),int(self._offy+y1),int(self._offx+x2),int(self._offy+y2))
    
    def get_text_height(self):
        return gdw_lib().DWAGDIGetTextHeight(self._window._id,self._fontid)
    
    def get_text_width(self,s):
        return gdw_lib().DWAGDIGetTextWidth(self._window._id,self._fontid,s)
    
    def draw_text(self,s,x,y):
        gdw_lib().DWAGDIDrawText(self._window._id,self._fontid,s,int(self._offx+x),int(self._offy+y))
    
    def clip_rectangle(self,x,y,w,h):
        appx=self._offx+x
        appy=self._offy+y
        if appx<self._clipx:
            appx=self._clipx
        if appy<self._clipy:
            appy=self._clipy
        if appx+w>self._clipx+self._clipw:
            w=(self._clipx+self._clipw)-appx
        if appy+h>self._clipy+self._cliph:
            h=(self._clipy+self._cliph)-appy
        gdw_lib().DWAGDIClipRectangle(self._window._id,int(appx),int(appy),int(w),int(h))
    
    def clear_clip_rectangle(self):
        gdw_lib().DWAGDIClipRectangle(self._window._id,int(self._clipx),int(self._clipy),int(self._clipw),int(self._cliph))    

class NotifyIcon:
    def __init__(self,imgpath,tooltip):
        with _gdimap["lock"]:
            _gdimap["cntnfi"]+=1
            self._id=_gdimap["cntnfi"]
        self._imgpath=imgpath
        self._tooltip=tooltip
        self._action=None
        self._object={}
        _create_notify_icon(self._id,self,imgpath,tooltip)
        
    def update(self,imgpath,tooltip):
        self._imgpath=imgpath
        self._tooltip=tooltip
        _update_notify_icon(self._id,imgpath,tooltip)
    
    def _fire_action(self,e):
        if self._action is not None:
            e["source"]=self
            self._action(e)
    
    def set_action(self,f):
        self._action=f
        
    def get_action(self):
        return self._action
    
    def set_object(self,k,v):
        self._object[k]=v
        
    def get_object(self,k):
        return self._object[k] 
    
    def on_action(self, tp):
        if tp=="ACTIVATE":
            self._fire_action({"action":"ACTIVATE"})
        elif tp=="CONTEXTMENU":
            self._fire_action({"action":"CONTEXTMENU"})
        
    def destroy(self):
        _destroy_notify_icon(self._id)
    
class EventMouseDetect:
    def __init__(self, s):
        self._source=s
        self._click_time=None
    
    def check(self,tp,x,y,b):
        if tp=="MOVE":
            self._source._fire_action({"action":"MOUSEMOVE", "x":x, "y":y, "button":b})
        if tp=="BUTTON_DOWN":
            self._source._fire_action({"action":"MOUSEBUTTONDOWN", "x":x, "y":y, "button":b})
            self._click_time=time.time()
        if tp=="BUTTON_UP":
            self._source._fire_action({"action":"MOUSEBUTTONUP", "x":x, "y":y, "button":b})
            if self._click_time is not None:
                self._source._fire_action({"action":"MOUSECLICK", "x":x, "y":y})
                self._click_time=None
        

class Window:
    def __init__(self,tp=WINDOW_TYPE_NORMAL_NOT_RESIZABLE,parentwin=None,logopath=None,isrtl=False):
        with _gdimap["lock"]:
            _gdimap["cntwin"]+=1
            self._id=_gdimap["cntwin"]
        self._type=tp
        self._top_windows=[]
        self._title="";
        self._show_position=WINDOW_POSITION_XY
        self._x=0;
        self._y=0;
        self._w=300;
        self._h=200;
        self._rtl=isrtl;
        self._logo_path=logopath;
        self._background=_STYLE_WINDOW_BACKGROUND_COLOR
        self._foreground=_STYLE_WINDOW_FOREGROUND_COLOR
        self._components=[]
        self._show=False
        self._activate=False
        self._disable=False
        self._focus_sequence_index_lost=None
        self._focus_sequence_index=None
        self._focus_sequence=[]
        self._mouse_enter_component=None
        self._action=None
        self._object={}
        self._parent_window=parentwin
        self._eventMouseDetect=EventMouseDetect(self)
        if self._parent_window is not None:
            self._parent_window._top_windows.append(self)
            self._title=parentwin.get_title()
        _init_window(self._id,self)    
    
    def _fire_action(self,e):
        if self._action is not None:
            e["source"]=self
            if "window" not in e:
                e["window"]=self
            self._action(e)            
    
    def set_action(self,f):
        self._action=f
    
    def get_action(self):
        return self._action
    
    def set_object(self,k,v):
        self._object[k]=v
        
    def get_object(self,k):
        return self._object[k]
    
    def get_x(self):
        return self._x;
    
    def get_y(self):
        return self._y;
    
    def get_width(self):
        return self._w;
    
    def get_height(self):
        return self._h;
    
    def get_logo_path(self):
        return self._logo_path;
    
    def set_foreground(self,c):
        self._foreground=c
    
    def get_foreground(self):
        return self._foreground
    
    def set_background(self,c):
        self._background=c
    
    def get_background(self):
        return self._background    
    
    def set_title(self,t):
        self._title=utils.str_new(t)
        _set_title(self._id,self._title)
    
    def get_title(self):
        return self._title

    def set_show_position(self,p):
        self._show_position=p

    def set_position(self,x,y):
        self._x=x;
        self._y=y;
        if self._show:
            _update_pos_size(self._id)
            #_repaint(self._id,0,0,self._w,self._h)
    
    def set_size(self,w,h):
        self._w=w
        self._h=h
        if self._show:            
            _update_pos_size(self._id)
            _repaint(self._id,0,0,self._w,self._h)
    
    def get_mouse_enter_component(self):
        return self._mouse_enter_component
    
    def get_focus_component(self):
        if self._focus_sequence_index is not None and self._focus_sequence_index<=len(self._focus_sequence)-1:
            return self._focus_sequence[self._focus_sequence_index]
        return  None
    
    def _add_focus_sequence(self, c):
        self._focus_sequence.append(c)
     
    def add_component(self, c):
        c._window=self;
        self._components.append(c)
        self._add_focus_sequence(c)
    
    def get_components(self):
        return self._components
    
    def remove_component(self, crem):
        for c in self._components:
            if c==crem:
                if c._container:
                    c.remove_all_components()
                c._destroy()
                bchangefocus=False
                if self.get_focus_component()==c:
                    self._set_focus_component_byindex(None)
                self._components.remove(c)
                self._focus_sequence.remove(c)
                if bchangefocus:
                    self.next_focus_component()
                _repaint(self._id,c._x,c._y,c._w,c._h)
                break
    
    def get_all_components(self):
        return self._focus_sequence
    
    def repaint(self):
        if self._id is not None:
            _repaint(self._id,0,0,self._w,self._h)
    
    def destroy(self):
        if self._id is not None:
            if self._parent_window is not None and self._parent_window._id is not None:
                self._parent_window._disable=False
                self._parent_window._top_windows.remove(self)
            for w in self._top_windows:
                w.hide()
            _term_window(self._id)
            if self._parent_window is not None and self._parent_window._id is not None:
                if self._parent_window.is_show():
                    self._parent_window.to_front()
    
    def is_show(self):
        return self._show
    
    def show(self):
        if not self._show:
            self._show=True
            if self._parent_window is not None:
                self._parent_window._disable=True
            _show_window(self._id)            
    
    def hide(self):
        if self._show:
            self._show=False
            _hide_window(self._id)            
    
    def to_front(self):        
        _to_front_window(self._id)
        
    def on_show(self):
        self._set_activate()
    
    def on_hide(self):
        self._set_inactivate()
    
    def _set_activate(self):
        if not self._activate:
            self._activate=True
            self.next_focus_component()
    
    def _set_inactivate(self):
        if self._activate:
            self._activate=False    
            self._focus_sequence_index_lost=self._focus_sequence_index
            self._set_focus_component_byindex(None,{"mode":"WINDOW"})
            self._set_mouse_enter_component(None, "", 0, 0, False)
    
    def _set_focus_component(self,c,e):
        if c is not None and c in self._focus_sequence:
            self._set_focus_component_byindex(self._focus_sequence.index(c),e)
        
    def _set_focus_component_byindex(self,idx,e):
        if self._focus_sequence_index==idx:
            return
        oldc=self.get_focus_component()
        self._focus_sequence_index=idx
        if oldc is not None:
            oldc.on_focus_lost(e)
        if self._focus_sequence_index is not None:
            if self._activate:
                newc=self.get_focus_component()
                if newc is not None:
                    newc.on_focus_get(e)
            else:
                self._focus_sequence_index_lost=self._focus_sequence_index
            
    def next_focus_component(self):
        if self._focus_sequence_index_lost is not None:
            self._focus_sequence_index=None            
            self._set_focus_component_byindex(self._focus_sequence_index_lost,{"mode":"WINDOW"})
            self._focus_sequence_index_lost=None
            return
        if self._focus_sequence_index is None:
            if len(self._components)>0:
                for c in self._focus_sequence:
                    if c.is_focusable() and c.is_enable():
                        self._set_focus_component(c,{"mode":"KEYBOARD"})
                        break 
        else:            
            #print("focus NEXT len: " + str(len(self._focus_sequence)) + "  idx: " + str(self._focus_sequence_index))            
            i=self._focus_sequence_index+1;
            while i!=self._focus_sequence_index:
                if i>(len(self._focus_sequence)-1):
                    i=0
                c=self._focus_sequence[i]
                if c.is_focusable() and c.is_enable():
                    self._set_focus_component_byindex(i,{"mode":"KEYBOARD"})
                    break
                i+=1

    def previous_focus_component(self):        
        if self._focus_sequence_index is None:
            if len(self._components)>0:
                for c in reversed(self._focus_sequence):
                    if c.is_focusable() and c.is_enable():
                        self._set_focus_component(c,{"mode":"KEYBOARD"})
                        break 
        else:
            #print("focus PREV len: " + str(len(self._focus_sequence)) + "  idx: " + str(self._focus_sequence_index))            
            i=self._focus_sequence_index-1;
            while i!=self._focus_sequence_index:
                if i<0:
                    i=len(self._focus_sequence)-1
                c=self._focus_sequence[i]
                if c.is_focusable() and c.is_enable():
                    self._set_focus_component_byindex(i,{"mode":"KEYBOARD"})
                    break
                i-=1
    
    def _set_mouse_enter_component(self,c,tp,x,y,b):
        if self._mouse_enter_component==c:
            return
        if self._mouse_enter_component is not None:
            self._mouse_enter_component.on_mouse_leave({})
        self._mouse_enter_component=c;
        if self._mouse_enter_component is not None:
            self._mouse_enter_component.on_mouse_enter({})
    
    def _is_intersect(self,r1,r2):
        if r1["x"] < r2["x"] + r2["w"] and r2["x"] < r1["x"] + r1["w"] and r1["y"] < r2["y"] + r2["h"]:
            return r2["y"] < r1["y"] + r1["h"]
        return False
        
    
    def on_paint(self,x,y,w,h):
        if self._id is not None:
            rgb=getRGBColor(self._background)
            gdw_lib().DWAGDIPenColor(self._id,rgb[0],rgb[1],rgb[2])
            gdw_lib().DWAGDIFillRectangle(self._id,x,y,w,h)
            #print(str("*******************************"))
            for c in self._components:
                self._on_paint_component(c,x,y,w,h,0,0)
                if c._container:
                    self._on_paint_container(c,x,y,w,h,0,0)
    
    def _on_paint_component(self,c,x,y,w,h,offx,offy):
        if c._visible:
            r1={"x":c._x+offx, "y":c._y+offy, "w":c._w, "h":c._h}
            r2={"x":x, "y":y, "w":w, "h":h}
            if self._is_intersect(r1,r2) :
                clipx=c._x+offx
                if x>c._x+offx:
                    clipx=x
                clipw=c._w-(clipx-(c._x+offx))
                if clipw>(x+w)-clipx:
                    clipw=(x+w)-clipx
                clipy=c._y+offy
                if y>c._y+offy:
                    clipy=y
                cliph=c._h-(clipy-(c._y+offy))
                if cliph>(y+h)-clipy:
                    cliph=(y+h)-clipy
                
                gdw_lib().DWAGDIClipRectangle(self._id,int(clipx),int(clipy),int(clipw),int(cliph))
                pobj=Paint(self,c._x+offx,c._y+offy,clipx,clipy,clipw,cliph)
                c.on_paint(pobj) #DA FARE GESTIRE INTERSEZIONE DARE CORDINATE CORRETTE
                gdw_lib().DWAGDIClearClipRectangle(self._id)
                #print(str(c) + " " + str(c._x+offx) + " " + str(c._y+offy) + " CLIP:" + str(clipx) + " " + str(clipy) + " " + str(clipw) + " " + str(cliph))            
        
    def _on_paint_container(self,cnt,x,y,w,h,offx,offy):
        for c in cnt._components:
            self._on_paint_component(c,x,y,w,h,offx+cnt._x,offy+cnt._y)
            if c._container:
                self._on_paint_container(c,x,y,w,h,offx+cnt._x,offy+cnt._y)
    
    
    def on_keyboard(self,tp,c,shift,ctrl,alt,meta):
        if self._disable:
            return
        if self.get_focus_component() is not None:
            self.get_focus_component().on_keyboard(tp,c,shift,ctrl,alt,meta)

    
    def _on_mouse_component(self,c,tp,x,y,b,offx,offy):
        if x>=c._x+offx and y>=c._y+offy and x<c._x+offx+c._w and y<c._y+offy+c._h:
            self._set_mouse_enter_component(c, tp, x, y, b)
            c.on_mouse(tp,x-(c._x+offx),y-(c._y+offy),b)
            return True
        return False
    
    def _on_mouse_container(self,cnt,tp,x,y,b,offx,offy):
        for c in reversed(cnt._components):
            if c._container:
                if self._on_mouse_container(c,tp,x,y,b,offx+cnt._x,offy+cnt._y):
                    return True
                else:
                    if self._on_mouse_component(c,tp,x,y,b,offx+cnt._x,offy+cnt._y):
                        return True
            else:
                if self._on_mouse_component(c,tp,x,y,b,offx+cnt._x,offy+cnt._y):
                    return True
        return False
        
    def on_mouse(self,tp,x,y,b):
        if self._disable:
            return
        self._eventMouseDetect.check(tp, x, y, b)
        #CHECK FOCUS
        if tp=="BUTTON_DOWN":
            for c in reversed(self._focus_sequence):
                if c.is_focusable() and c.is_enable():
                    xy = c._get_win_pos()
                    if x>=xy[0] and y>=xy[1] and x<xy[0]+c._w and y<xy[1]+c._h:
                        self._set_focus_component(c,{"mode":"MOUSE","x":x-xy[0],"y":y-xy[1]})
                        break
        benter=False
        for c in reversed(self._components):
            if c._container:
                if self._on_mouse_container(c,tp,x,y,b,0,0):
                    benter=True
                    break
                else:
                    if self._on_mouse_component(c,tp,x,y,b,0,0):
                        benter=True
                        break
            else:       
                if self._on_mouse_component(c,tp,x,y,b,0,0):
                    benter=True
                    break
        if not benter:
            self._set_mouse_enter_component(None, tp, x, y, b)
    
    def on_window(self,tp):
        if tp=="ACTIVE":
            if not self._disable:
                self._set_activate()
            for w in self._top_windows:
                if w.is_show():
                    w.to_front()
        elif tp=="INACTIVE":
            self._set_inactivate()
        elif tp=="ONCLOSE":
            if not self._disable:
                e={"window":self, "action":"ONCLOSE"};                
                self._fire_action(e)
                if "cancel" in e and e["cancel"] == True:
                    return False
            else:
                return False
        return True
 
class DialogMessage(Window):
    
    def __init__(self,act,lv,parentwin=None,logopath=None,isrtl=False):
        if parentwin is None:
            Window.__init__(self,WINDOW_TYPE_DIALOG,parentwin=parentwin,logopath=logopath,isrtl=isrtl)
        else:
            if parentwin.is_show():
                Window.__init__(self,WINDOW_TYPE_TOOL,parentwin=parentwin,logopath=logopath,isrtl=isrtl)
            else:
                Window.__init__(self,WINDOW_TYPE_DIALOG,parentwin=parentwin,logopath=logopath,isrtl=isrtl)
        self._actions=act
        self._level=lv
        self._message=u""
        self._action=None        
        
    def get_message(self):
        return self._message

    def set_message(self, value):
        self._message = utils.str_new(value)

    def _ok_action(self,e):
        if e["action"]=="PERFORMED":
            self._fire_action({"action":"DIALOG_OK"})
            self.destroy()
    
    def _yes_action(self,e):
        if e["action"]=="PERFORMED":
            self._fire_action({"action":"DIALOG_YES"})
            self.destroy()
    
    def _no_action(self,e):
        if e["action"]=="PERFORMED":
            self._fire_action({"action":"DIALOG_NO"})
            self.destroy()
    
    def show(self):
        gapLabel=6
        pnlLeftW=50
        pnlBottomH=55   
        
        self.set_size(300, 180)
        self.set_show_position(WINDOW_POSITION_CENTER_SCREEN)
        
        pnlLeft = Panel()
        col="064f7e"
        if self._level==DIALOGMESSAGE_LEVEL_ERROR:
            col="a61515"
        elif self._level==DIALOGMESSAGE_LEVEL_WARN:
            col="d2d90c"
        if self._rtl:
            pnlLeft.set_position(self.get_width()-pnlLeftW, 0)
            pnlLeft.set_background_gradient(col, "FFFFFF", GRADIENT_DIRECTION_RIGHTLEFT)
        else:
            pnlLeft.set_position(0, 0)
            pnlLeft.set_background_gradient(col, "FFFFFF", GRADIENT_DIRECTION_LEFTRIGHT)
        pnlLeft.set_size(pnlLeftW,self.get_height())                
        self.add_component(pnlLeft)        
             
        lb = Label()
        if self._rtl:
            lb.set_position(gapLabel, gapLabel)
        else:
            lb.set_position(gapLabel+pnlLeftW, gapLabel)            
        lb.set_size(self.get_width()-pnlLeft.get_width()-(gapLabel*2), self.get_height()-55-(gapLabel*2))
        lb.set_wordwrap(True)
        lb.set_text(self._message)
        self.add_component(lb)
        
        pnl = Panel()
        pnl.set_position(0, self.get_height()-pnlBottomH)
        pnl.set_size(self.get_width(),pnlBottomH)
        self.add_component(pnl)
        
        if self._actions==DIALOGMESSAGE_ACTIONS_YESNO:
            bty = Button()
            bty.set_position(int((self._w/2)-((bty._w*2)/2))-5, 10)
            bty.set_text(messages.get_message('yes'))
            bty.set_action(self._yes_action)
            
            btn = Button()
            btn.set_text(messages.get_message('no'))
            btn.set_action(self._no_action)
                        
            if self._rtl:
                bty.set_position(bty._x+bty._w+10, 10)
                btn.set_position(int((self._w/2)-((bty._w*2)/2))-5, 10)                
            else:
                bty.set_position(int((self._w/2)-((bty._w*2)/2))-5, 10)
                btn.set_position(bty._x+bty._w+10, 10)
            
            pnl.add_component(bty)
            pnl.add_component(btn)
            
        else:
            bt = Button()
            bt.set_position(int((self._w/2)-(bt._w/2)), 10)
            bt.set_text(messages.get_message('ok'))
            bt.set_action(self._ok_action)
            pnl.add_component(bt)
        
        Window.show(self)                 
                

    def on_window(self, tp):
        if tp=="ONCLOSE":
            return False
        return Window.on_window(self, tp)
        

class PopupMenu(Window):
    
    def __init__(self):
        Window.__init__(self,WINDOW_TYPE_POPUP)
        self._w=110;
        self._h=30;
        self._show_position=[POPUP_POSITION_BOTTONRIGHT, POPUP_POSITION_BOTTONLEFT, POPUP_POSITION_TOPRIGHT, POPUP_POSITION_TOPLEFT]
        #self._show_position=[POPUP_POSITION_TOPRIGHT]
        self._list=[]        
    
    def set_show_position(self,p):
        self._show_position=p
        
    def get_show_position(self,p):
        return self._show_position

    def _do_actions(self,e):
        if e["action"]=="MOUSECLICK":
            self.destroy()
            self._fire_action({"action":"PERFORMED", "name":e["source"].get_name()})
    
    def show(self):
        self._h=len(self._list)*30+4        
        pos_array = (ctypes.c_int * 2)()
        gdw_lib().DWAGDIGetMousePosition(pos_array)
        appsz=_gdimap["screensize"]
        self._x=int(pos_array[0])
        self._y=int(pos_array[1])
        for p in self._show_position:
            if p==POPUP_POSITION_BOTTONRIGHT:
                if (pos_array[1]+self._h<appsz["height"]) and (pos_array[0]+self._w<appsz["width"]):                    
                    self._x=int(pos_array[0])
                    self._y=int(pos_array[1])
                    break;
            elif p==POPUP_POSITION_BOTTONLEFT:
                if (pos_array[1]+self._h<appsz["height"]) and (pos_array[0]-self._w>=0):
                    self._x=int(pos_array[0])-self._w
                    self._y=int(pos_array[1])
                    break;
            elif p==POPUP_POSITION_TOPRIGHT:
                if (pos_array[1]-self._h>=0) and (pos_array[0]+self._w<appsz["width"]):
                    self._x=int(pos_array[0])
                    self._y=int(pos_array[1])-self._h
                    break;
            elif p==POPUP_POSITION_TOPLEFT:
                if (pos_array[1]-self._h>=0) and (pos_array[0]-self._w>=0):
                    self._x=int(pos_array[0])-self._w
                    self._y=int(pos_array[1])-self._h
                    break;            
        
        pnl = Panel()
        pnl.set_background("ffffff")
        pnl.set_border(BorderLine())
        pnl.set_position(0, 0)
        pnl.set_size(self._w, self._h)
        self.add_component(pnl)        
        y=2
        for itm in self._list:
            lbl = Label()
            lbl.set_name(itm["key"])
            lbl.set_text(itm["label"])
            lbl.set_highlight(True)
            lbl.set_position(2, y)
            lbl.set_width(self._w-4)
            lbl.set_action(self._do_actions)
            pnl.add_component(lbl)
            y+=30
        
        Window.show(self)
    
    def add_item(self,k,l):
        self._list.append({"key": k, "label": l})
        
    def on_window(self, tp):
        if tp=="INACTIVE":
            self.destroy()
            return True
        return Window.on_window(self, tp)
    
   
class BorderLine:
    
    def __init__(self):
        None
        self._color=_STYLE_COMPONENT_BORDER_COLOR
        self.size_l=1
        self.size_t=1
        self.size_b=1
        self.size_r=1
    
    def set_color(self,c):
        self._color=c
    
    def get_color(self):
        return self.color
            
    def on_paint(self,c,pobj):
        pobj.pen_color(self._color)
        pobj.draw_line(0,0,0,c._h-1) #LEFT
        pobj.draw_line(0,0,c._w-1,0) #TOP       
        pobj.draw_line(c._w-1,0,c._w-1,c._h) #RIGHT 
        pobj.draw_line(0,c._h-1,c._w,c._h-1) #BOTTOM
        

class Component:
    
    def __init__(self):
        self._window=None
        self._x=0;
        self._y=0;
        self._w=0;
        self._h=0;
        self._background=_STYLE_COMPONENT_BACKGROUND_COLOR
        self._foreground=_STYLE_COMPONENT_FOREGROUND_COLOR
        self._name=None
        self._border=None
        self._opaque=True
        self._visible=True
        self._focusable=False
        self._parent=None
        self._container=False
        self._enable=True
        self._components=[]
        self._gradient_background_start=None
        self._gradient_background_end=None
        self._gradient_direction=None
        self._action=None
        self._eventMouseDetect=EventMouseDetect(self)
    
    def _destroy(self):
        self._window=None
    
    def set_action(self,f):
        self._action=f
        
    def get_action(self):
        return self._action
    
    def _fire_action(self, e):
        if self._action is not None:
            e["source"]=self
            if "window" not in e:
                e["window"]=self._window
            self._action(e)
    
    def _set_window_tree(self, c, w):
        if c._window is not None:
            self._window._focus_sequence.remove(c)            
        c._window=w;
        if self._window is not None:
            self._window._add_focus_sequence(c)
        if c._container:
            for appc in c._components:
                self._set_window_tree(appc,w)
    
    def add_component(self, c):
        if self._container:
            c._parent=self;
            self._components.append(c)
            self._set_window_tree(c,self._window)    
            c.repaint()
    
    def remove_component(self, crem):
        if self._container:
            for c in self._components:
                if c==crem:
                    if c._container:
                        c.remove_all_components()
                    c._destroy()
                    bchangefocus=False
                    if self._window is not None and self._window.get_focus_component()==c:
                        self._window._set_focus_component_byindex(None)
                    self._components.remove(c)
                    self._set_window_tree(c, None)
                    if self._window is not None:
                        if bchangefocus:
                            self._window.next_focus_component()
                        xy=self._get_win_pos()
                        _repaint(self._window._id,c._x+xy[0],c._y+xy[1],c._w,c._h)
                    break
    
    def get_components(self):
        return self._components
    
    def remove_all_components(self):
        if self._container:
            while len(self._components)>0:
                c=self._components[0]
                if c._container:
                    c.remove_all_components()
                c._destroy()
                bchangefocus=False
                if self._window is not None and self._window.get_focus_component()==c:
                        self._window._set_focus_component_byindex(None)
                self._components.remove(c)
                if self._window is not None and c in self._window._focus_sequence:
                    self._window._focus_sequence.remove(c)
                if bchangefocus:
                        self._window.next_focus_component()
                xy=self._get_win_pos()
                if self._window is not None:
                    _repaint(self._window._id,c._x+xy[0],c._y+xy[1],c._w,c._h)
    
    def focus(self):
        if self._window:
            self._window._set_focus_component(self,{"mode":"CODE"})
    
    def get_name(self):
        return self._name
    
    def set_name(self,value):
        self._name=value
    
    def set_position(self,x,y):
        x=int(x)
        y=int(y)
        if self._x!=x or self._y!=y:
            self._x=x;
            self._y=y;
            self.repaint_parent()
    
    def set_size(self,w,h):
        if self._w!=w or self._h!=h:
            self._w=w;
            self._h=h;
            self.repaint_parent()
    
    def set_x(self,x):
        x=int(x)
        if self._x!=x:
            self._x=x;
            self.repaint_parent()
    
    def get_x(self):
        return self._x;
    
    def set_y(self,y):
        y=int(y)
        if self._y!=y:
            self._y=y;
            self.repaint_parent()
    
    def get_y(self):
        return self._y;
    
    def set_width(self,w):
        w=int(w)
        if self._w!=w:
            self._w=w;
            self.repaint_parent()
    
    def get_width(self):
        return self._w;
    
    def set_height(self,h):
        h=int(h)
        if self._h!=h:
            self._h=h;
            self.repaint_parent()
    
    def get_height(self):
        return self._h;    
    
    def set_visible(self,b):
        if self._visible!=b:
            self._visible=b
            self.repaint_parent()
    
    def get_visible(self):
        return self._visible
        
    def set_foreground(self,c):
        self._foreground=c
    
    def get_foreground(self):
        return self._foreground
    
    def set_background(self,c):
        self._background=c
        self.clear_background_gradient()
    
    def get_background(self):
        return self._background
    
    def set_background_gradient(self,cstart,cend,direction): #DA GESTIRE direction al momento fisso sinistra verso destra
        self._gradient_background_start=cstart
        self._gradient_background_end=cend
        self._gradient_direction=direction
        self.repaint()
        
    def is_background_gradient(self):
        return (self._gradient_background_start is not None and self._gradient_background_end is not None and self._gradient_direction is not None)
        
    def clear_background_gradient(self):
        self._gradient_background_start=None
        self._gradient_background_end=None
        self._gradient_direction=None
    
    def set_border(self,b):
        self._border=b;
    
    def get_border(self):
        return self._border;
    
    def set_enable(self,b):
        self._enable=b;
        self.repaint()
    
    def is_enable(self):
        return self._enable
        
    def set_opaque(self,b):
        self._opaque=b;
    
    def is_opaque(self):
        return self._opaque;    
    
    def is_focusable(self):
        return self._focusable
    
    def has_focus(self):
        if self._window:            
            return self._window.get_focus_component()==self
        else:
            return False
    
    def on_focus_get(self,e):
        None
    
    def on_focus_lost(self,e):
        None
    
    def on_mouse_enter(self,e):
        None
    
    def on_mouse_leave(self,e):
        None
        
    def _get_win_pos(self):
        x=self._x;
        y=self._y;
        if self._parent is not None:
            xy=self._parent._get_win_pos()
            return (xy[0]+x,xy[1]+y)
        else:
            return (x,y)
        
        
    def repaint_parent(self):
        if self._parent is not None and self._window is not None and self._window._id is not None:
            #print("repaint_parent")
            self._parent.repaint()
        elif self._window is not None and self._window._id is not None:
            #print("repaint_parent")
            self._window.repaint()
            
    def repaint(self):
        if self._window is not None and self._window._id is not None:
            #print("repaint")
            xy=self._get_win_pos()
            _repaint(self._window._id,xy[0],xy[1],self._w,self._h)            
    
    def repaint_area(self,x,y,w,h):
        if self._window is not None and self._window._id is not None:
            #print(repaint_area")
            xy=self._get_win_pos()
            _repaint(self._window._id,xy[0]+x,xy[1]+y,w,h)            
    
    def _draw_background_gradient(self,pobj,x,y,w,h):
        rgbstart = getRGBColor(self._gradient_background_start)
        rgbend = getRGBColor(self._gradient_background_end)
        rstart=rgbstart[0]
        gstart=rgbstart[1]
        bstart=rgbstart[2]
        rend=rgbend[0]
        gend=rgbend[1]
        bend=rgbend[2]        
        if rstart>rend:
            app=rend
            rend=rstart
            rstart=app
        
        if gstart>gend:
            app=gend
            gend=gstart
            gstart=app
            
        if bstart>bend:
            app=bend
            bend=bstart
            bstart=app        
        if self._gradient_direction==GRADIENT_DIRECTION_LEFTRIGHT:
            rstep = float(rend-rstart)/float(w)
            gstep = float(gend-gstart)/float(w)
            bstep = float(bend-bstart)/float(w)
            for i in range(w):
                hexc=getHexColor(int(rstart),int(gstart),int(bstart))
                pobj.pen_color(hexc)
                pobj.draw_line(i,0,i,h-1)
                rstart+=rstep
                gstart+=gstep
                bstart+=bstep
        elif self._gradient_direction==GRADIENT_DIRECTION_RIGHTLEFT:
            rstep = float(rend-rstart)/float(w)
            gstep = float(gend-gstart)/float(w)
            bstep = float(bend-bstart)/float(w)
            for i in range(w):
                hexc=getHexColor(int(rstart),int(gstart),int(bstart))
                pobj.pen_color(hexc)
                pobj.draw_line(w-i,0,w-i,h-1)
                rstart+=rstep
                gstart+=gstep
                bstart+=bstep
        elif self._gradient_direction==GRADIENT_DIRECTION_TOPBOTTOM:
            rstep = float(rend-rstart)/float(h)
            gstep = float(gend-gstart)/float(h)
            bstep = float(bend-bstart)/float(h)
            for i in range(h):
                hexc=getHexColor(int(rstart),int(gstart),int(bstart))
                pobj.pen_color(hexc)
                pobj.draw_line(0,i,w-1,i)
                rstart+=rstep
                gstart+=gstep
                bstart+=bstep
        elif self._gradient_direction==GRADIENT_DIRECTION_BOTTONTOP:
            rstep = float(rend-rstart)/float(h)
            gstep = float(gend-gstart)/float(h)
            bstep = float(bend-bstart)/float(h)
            for i in reversed(range(h)):
                hexc=getHexColor(int(rstart),int(gstart),int(bstart))
                pobj.pen_color(hexc)
                pobj.draw_line(0,i,w-1,i)
                rstart+=rstep
                gstart+=gstep
                bstart+=bstep
    
    def on_paint(self,pobj):
        if self._opaque:
            if self.is_background_gradient():
                self._draw_background_gradient(pobj,0,0,self._w,self._h)
            else:
                pobj.pen_color(self._background)
                pobj.fill_rectangle(0, 0,self._w,self._h)
        if self._border is not None:
            self._border.on_paint(self,pobj) 
        pobj.pen_color(self._foreground)
    
    def on_keyboard(self,tp,c,shift,ctrl,alt,meta):
        if tp=="KEY":
            if c=="TAB":
                if shift:
                    self._window.previous_focus_component()
                else:
                    self._window.next_focus_component()
    
    def on_mouse(self,tp,x,y,b):
        if self.is_enable():
            self._eventMouseDetect.check(tp, x, y, b)                
        #print("tp: " + tp + " - x: " + str(x) + " - y: " + str(y) + " - b: " + str(b) + "  " + str(self))

class Panel(Component):
    def __init__(self):
        Component.__init__(self)
        self._border=None;
        self._w=300;
        self._h=200;
        self._focusable=False
        self._opaque=True
        self._container=True
        
class Label(Component):
    
    def __init__(self):
        Component.__init__(self)
        self._background=_STYLE_EDITOR_BACKGROUND_COLOR
        self._foreground=_STYLE_EDITOR_FOREGROUND_COLOR
        self._border=None;
        self._w=150;
        self._h=30;
        self._focusable=False
        self._opaque=False
        self._text=u""
        self._wordwrap=False
        self._text_align=TEXT_ALIGN_STARTMIDDLE
        self._highlight=False
        self._hyperlinks={}
    
    def _fire_action(self, e):
        Component._fire_action(self, e)
        if e["action"]=="MOUSECLICK":
            for k in self._hyperlinks:
                itm = self._hyperlinks[k]
                for a in itm["clickareas"]:
                    if e["x"]>=a["x1"] and e["x"]<=a["x2"] and e["y"]>=a["y1"] and e["y"]<=a["y2"]:
                        try:
                            import webbrowser
                            webbrowser.open(itm["url"])
                        except:
                            None
                        return
    
    def get_text(self):
        return self._text

    def set_text(self, value):
        self._text = utils.str_new(value)
        self._hyperlinks={}
        self.repaint()
    
    def add_hyperlink(self, key, ps, ln, url):
        self._hyperlinks[key]={"start":ps, "length":ln, "url": url , "clickareas":[]}
        self.repaint()
    
    def del_hyperlink(self, key):
        del self._hyperlinks[key]
        self.repaint()
    
    def get_text_align(self):
        return self._text_align

    def set_text_align(self, value):
        self._text_align = value
        self.repaint()    
        
    def set_wordwrap(self,b):
        self._wordwrap=b
        
    def is_wordwrap(self):
        return self._wordwrap 

    def set_highlight(self,b):
        self._highlight=b
    
    def is_highlight(self):
        return self._highlight

    def on_mouse_enter(self,e):
        if self._enable and self._highlight:
            self.repaint()
    
    def on_mouse_leave(self,e):
        if self._enable and self._highlight:
            self.repaint()
    
    def on_paint(self,pobj):
        if self._enable:
            if self._highlight and self._window.get_mouse_enter_component()==self:
                pobj.pen_color("e2e9ed")
                pobj.fill_rectangle(0,0,self._w,self._h)
                if self._border is not None:
                    self._border.on_paint(self,pobj)     
            else:
                Component.on_paint(self, pobj)
        else:
            Component.on_paint(self, pobj)
        pobj.clip_rectangle(2,2,self._w-4,self._h-4)
        gapw=2        
        s = self._text
        if s!=u"":
            if self._enable:
                pobj.pen_color(self._foreground)
            else:
                pobj.pen_color("a0a0a0")
            ar=[]
            appar = s.split(u"\n")
            for appsr in appar:
                if not self._wordwrap:
                    ar.append(appsr)
                else:
                    if appsr=="":
                        ar.append("")
                    else:
                        wordar = appsr.split(" ")
                        curs=u""
                        bfirst=True
                        for wsr in wordar:
                            news=None
                            if bfirst:
                                bfirst=False
                                news=wsr
                            else:
                                news=curs + u" " + wsr
                            if pobj.get_text_width(news)>self._w-(gapw*2):
                                ar.append(curs)
                                curs=wsr
                            else:
                                curs=news
                        if curs!=u"":
                            ar.append(curs)                        
            
            
            for k in self._hyperlinks:
                itm = self._hyperlinks[k]
                itm["clickareas"]=[]
            th=pobj.get_text_height()*len(ar)
            ty=2;
            
            talign=self._text_align
            if self._window._rtl:
                if talign==TEXT_ALIGN_STARTTOP:
                    talign=TEXT_ALIGN_RIGHTTOP
                if talign==TEXT_ALIGN_STARTMIDDLE:
                    talign=TEXT_ALIGN_RIGHTMIDDLE
            else:
                if talign==TEXT_ALIGN_STARTTOP:
                    talign=TEXT_ALIGN_LEFTTOP
                if talign==TEXT_ALIGN_STARTMIDDLE:
                    talign=TEXT_ALIGN_LEFTMIDDLE
                            
            
            if talign==TEXT_ALIGN_LEFTMIDDLE or talign==TEXT_ALIGN_CENTERMIDDLE or talign==TEXT_ALIGN_RIGHTMIDDLE:
                ty=(self._h/2)-(th/2)            
            cpos=0
            for sr in ar:
                srhl=sr
                if self._window._rtl:
                    sr=_fix_rtl_text(sr)
                tx=gapw
                srw=pobj.get_text_width(sr)
                srh=pobj.get_text_height()
                if talign==TEXT_ALIGN_CENTERMIDDLE:
                    tx=((self._w-(gapw*2))/2)-(srw/2)
                    if tx<gapw:
                        tx=gapw
                elif talign==TEXT_ALIGN_RIGHTMIDDLE or talign==TEXT_ALIGN_RIGHTTOP:
                    tx=(self._w-(gapw*2))-srw
                pobj.draw_text(sr,tx,ty)
                
                for k in self._hyperlinks:
                    itm = self._hyperlinks[k]
                    lnpi = cpos
                    lnpe = cpos+len(srhl)
                    klpi = itm["start"]
                    klpe = itm["start"]+itm["length"]
                    x1 = -1
                    x2 = -1
                    if klpi>=lnpi and klpi<=lnpe and klpe>=lnpi and klpe<=lnpe: #FULL INSIDE
                        x1 = pobj.get_text_width(srhl[0:(klpi-lnpi)])
                        x2 = x1 + pobj.get_text_width(srhl[(klpi-lnpi):(klpe-lnpi)])                        
                    elif klpi>=lnpi and klpi<=lnpe: #START INSIDE
                        x1 = pobj.get_text_width(srhl[0:(klpi-lnpi)])
                        x2 = x1 + pobj.get_text_width(srhl[(klpi-lnpi):])
                    elif klpe>=lnpi and klpe<=lnpe: #END INSIDE
                        x1 = 0
                        x2 = x1 + pobj.get_text_width(srhl[0:(klpe-lnpi)])
                    if x1!=-1 and x2 !=-1:
                        if self._window._rtl:
                            txsr=pobj.get_text_width(srhl)
                            appx1=txsr-x2
                            appx2=txsr-x1
                            x1=appx1
                            x2=appx2
                        y1 = ty
                        y2 = ty+srh
                        pobj.draw_line(x1+tx,y2,x2+tx,y2)
                        itm["clickareas"].append({"x1":x1+tx,"y1":y1,"x2":x2+tx,"y2":y2})

                cpos+=len(sr)+1                              
                ty+=srh
        pobj.clear_clip_rectangle()

                    

class Button(Component):
    def __init__(self):
        Component.__init__(self)
        self._w=100;
        self._h=36;
        self._focusable=True
        self._opaque=True
        self._text=u""
        self._border=BorderLine()        
        
    
    def get_text(self):
        return self._text

    def set_text(self, value):
        self._text = utils.str_new(value)
        self.repaint() 
    
    def on_mouse_enter(self,e):
        if self._enable:
            self.repaint()
    
    def on_mouse_leave(self,e):
        if self._enable:
            self.repaint()

    def on_paint(self,pobj):
        if self._enable:
            if self._window.get_mouse_enter_component()==self:
                pobj.pen_color("e2e9ed")
                pobj.fill_rectangle(0,0,self._w,self._h)
                if self._border is not None:
                    self._border.on_paint(self,pobj)     
            else:
                Component.on_paint(self, pobj)
        else:
            Component.on_paint(self, pobj)
        pobj.clip_rectangle(2,2,self._w-4,self._h-4)
        s = self._text 
        if s!=u"":
            if self._window._rtl:
                s=_fix_rtl_text(s)
            if self._enable:
                pobj.pen_color(self._foreground)
            else:
                pobj.pen_color("a0a0a0")
            tx=(self._w/2)-(pobj.get_text_width(s)/2)
            ty=(self._h/2)-(pobj.get_text_height()/2)
            pobj.draw_text(s,tx,ty)
        pobj.clear_clip_rectangle()
    
    def on_mouse(self,tp,x,y,b):
        Component.on_mouse(self, tp, x, y, b)
        if self.is_enable():
            if tp=="BUTTON_DOWN":
                self.focus()                
            elif tp=="BUTTON_UP":
                if self._enable:
                    self._fire_action({"action":"PERFORMED"})
            

class RadioButton(Component):
    def __init__(self):
        Component.__init__(self)
        self._w=150;
        self._h=30;
        self._focusable=True
        self._opaque=False
        self._text=""
        self._border=None;
        self._selected=False
        self._group=None
            
    def get_text(self):
        return self._text

    def set_text(self, value):
        self._text = utils.str_new(value)
        self.repaint() 
    
    def get_selected(self):
        return self._selected

    def set_selected(self, value):
        self._selected= value
        self._repaint_check()
    
    def get_group(self):
        return self._group

    def set_group(self, value):
        self._group= value

    def _repaint_check(self):
        if self._window is not None:
            if self._window._rtl:
                self.repaint_area(self._w-22,0,self._w,self._h)
            else:
                self.repaint_area(0,0,22,self._h)
    
    '''def on_mouse_enter(self,e):
        if self._enable:
            self.repaint_area(0,0,22,self._h)
    
    def on_mouse_leave(self,e):
        if self._enable:
            self.repaint_area(0,0,22,self._h)'''

    def on_paint(self,pobj):
        Component.on_paint(self, pobj)
        pobj.clip_rectangle(2,2,self._w-4,self._h-4)
        #if self._window.get_mouse_enter_component()==self:
        #    pobj.pen_color("f8fbfd")
        #else:
        if self._enable:
            pobj.pen_color(_STYLE_EDITOR_BACKGROUND_COLOR)
        else:
            pobj.pen_color("f2f2f2")        
        rsz=18        
        if self._window._rtl:
            rpx=self._w-4-rsz-2
        else:
            rpx=2
        ty=int((self._h/2)-(rsz/2))
        pobj.fill_ellipse(rpx,ty,rsz,rsz)
        pobj.pen_color(_STYLE_COMPONENT_BORDER_COLOR)
        pobj.draw_ellipse(rpx,ty,rsz,rsz)
        
        if self._selected:
            gap=8
            pobj.pen_color(_STYLE_EDITOR_FOREGROUND_COLOR)
            ty=int((self._h/2)-((rsz-gap)/2))
            pobj.fill_ellipse(rpx+(gap/2),ty,rsz-gap,rsz-gap)
        
        s = self._text 
        if s!=u"":                
            if self._window._rtl:
                s=_fix_rtl_text(s)
                tw=pobj.get_text_width(s)
                lpx=self._w-4-rsz-8-tw
            else:
                lpx=rsz+8
            if self._enable:
                pobj.pen_color(self._foreground)
            else:
                pobj.pen_color("a0a0a0")
            ty=(self._h/2)-(pobj.get_text_height()/2)
            pobj.draw_text(s,lpx,ty)
        pobj.clear_clip_rectangle()
            
    def on_mouse(self,tp,x,y,b):
        Component.on_mouse(self, tp, x, y, b)
        if self.is_enable():
            if tp=="BUTTON_DOWN":
                self.focus()
                if not self._selected:
                    old_selected=None
                    if self._group is not None and self._window is not None:
                        for c in self._window.get_all_components():
                            if isinstance(c, RadioButton):
                                if c._group is not None:
                                    if self._group==c._group:
                                        if c._selected:
                                            old_selected=c
                                            old_selected._selected=False
                                            old_selected._repaint_check()
                    self._selected=True
                    self._repaint_check()
                    if self._enable:
                        self._fire_action({"action":"SELECTED", "old_selected":old_selected})


class ProgressBar(Component):
    
    def __init__(self):
        Component.__init__(self)
        self._foreground="86a7d4"
        self._border=BorderLine()
        self._w=250;
        self._h=24;
        self._focusable=False
        self._opaque=True
        self._percent=0
    
    def get_percent(self):
        return self._percent

    def set_percent(self, value):
        self._percent = value
        self.repaint() 

    def on_paint(self,pobj):
        Component.on_paint(self, pobj)
        p=self._percent
        if p<0.0:
            p=0.0;
        elif p>1.0:
            p=1.0;
        if self._percent>0.0:
            pobj.pen_color(self._foreground)
            pw=int((self._w-4)*p)
            if self._window._rtl:
                pobj.fill_rectangle(self._w-pw-2,2,pw,self._h-4)
            else:
                pobj.fill_rectangle(2,2,pw,self._h-4)

class ImagePanel(Component):
    
    def __init__(self):
        Component.__init__(self)
        self._imgreload=True
        self._imgitm=None
        self._filename=None
        self._w=250;
        self._h=100;
        self._focusable=False
        self._opaque=False
     
    def _destroy(self):
        if self._imgitm is not None:
            _gdimap["imagemanager"].unload(self._imgitm)
            self._imgitm=None
        Component._destroy(self)   
    
    def get_filename(self):
        return self._filename

    def set_filename(self, fn):
        if self._filename != fn:
            self._filename = fn
            self._imgreload = True
            self.repaint() 

    def on_paint(self,pobj):
        Component.on_paint(self, pobj)
        if self._imgreload:
            if self._imgitm is not None:
                _gdimap["imagemanager"].unload(self._imgitm)
                self._imgitm=None
            if utils.path_exists(self._filename):
                self._imgitm = _gdimap["imagemanager"].load(self._filename)
            self._imgreload=False
        
        if self._imgitm is not None:
            pobj.draw_image(self._imgitm,0,0)            
         
                
class TextBox(Component):
    
    def __init__(self):
        Component.__init__(self)
        self._background=_STYLE_EDITOR_BACKGROUND_COLOR
        self._foreground=_STYLE_EDITOR_FOREGROUND_COLOR
        self._border=BorderLine()
        self._focusable=True
        self._w=200;
        self._h=30;
        self._text=u""
        self._cursor_position=0
        self._selection_start=0
        self._selection_end=0
        self._blink=False
        self._blinkitm=None
        self._password_mask=False
        self._validate=None
        self._cursor_x=-1
        self._text_offx=0
    
        
    def set_password_mask(self,value):
        self._password_mask=value
    
    def is_password_mask(self):
        return self._password_mask
   
    def set_validate(self,value):
        self._validate=value
    
    def get_validate(self):
        return self._validate
   
    def get_text(self):
        return self._text

    def set_text(self, value):
        self._text = utils.str_new(value)
        self._cursor_position=len(self._text)
        self._selection_start=self._cursor_position
        self._selection_end=self._cursor_position
        self.repaint()        
              
    def _blinktimer(self):
        self._blink=not self._blink
        self._repaint_cursor()
        self._blinkitm=_gdimap["scheduler"].add(0.5,self._blinktimer)        
    
    def on_focus_get(self,e):
        if e["mode"]=="KEYBOARD":
            self._selection_start=len(self._text)
            self._selection_end=len(self._text)
            self._cursor_position=self._selection_end
        self._blink=True
        self._repaint_text_area()
        self._blinkitm=_gdimap["scheduler"].add(0.5,self._blinktimer)
    
    def on_focus_lost(self,e):
        if self._blinkitm is not None:
            _gdimap["scheduler"].cancel(self._blinkitm)
        self._blinkitm=None
        if self._validate is not None:
            self._validate({"window":self._window, "source": self})
        self._selection_start=0
        self._selection_end=0
        self._blink=False
        self._repaint_text_area()
    
    def _get_cursor_pos_by_x(self,x):
        fontid=_gdimap["fontmanager"].get_id("default")
        if self._window._rtl:
            xi=self._w-2
            xf=self._w-2
            for i in reversed(range(len(self._text))):
                s=self._text[i:len(self._text)]
                if len(s)!=0:
                    xi = self._w-gdw_lib().DWAGDIGetTextWidth(self._window._id,fontid,s)+2-self._text_offx
                    if x>=xi and x<=xf:
                        return len(self._text)-i-1
                    xf=xi
            return len(self._text)
        else:
            xi=2
            xf=2
            for i in range(len(self._text)):
                s=self._text[0:i]
                if len(s)!=0:
                    xf = gdw_lib().DWAGDIGetTextWidth(self._window._id,fontid,s)+2-self._text_offx
                    if x>=xi and x<=xf:
                        return i-1
                    xi=xf
            if len(self._text)!=0:
                xf = gdw_lib().DWAGDIGetTextWidth(self._window._id,fontid,self._text)+2-self._text_offx
                if x>=xi and x<=xf:
                    return len(self._text)-1
            return len(self._text)
    
    def _repaint_text_area(self):
        self.repaint_area(2, 2, self._w-4, self._h-4)
    
    def _repaint_cursor(self):
        if self._cursor_x!=-1:
            self.repaint_area(self._cursor_x-self._text_offx, 0, 1, self._h)
    
    def on_paint(self,pobj):
        #if self._window.get_mouse_enter_component()==self:
        #    pobj.pen_color("f8fbfd")
        #    pobj.fill_rectangle(x,y,w,h)
        #    if self._border is not None:
        #        self._border.on_paint(self,pobj)     
        #else:
        Component.on_paint(self, pobj)
        pobj.clip_rectangle(2,2,self._w-4,self._h-4)
        s = self._text
        lns = len(s)
        if self._password_mask:
            s=u"*" * len(s)
        if self._window._rtl:
            self._cursor_x=self._w-4
        else:
            self._cursor_x=3
        if s!=u"":
            if self._window._rtl:
                s=_fix_rtl_text(s,True)
            wtx=pobj.get_text_width(s)
            #CALCOLA CURSORE
            if self._window._rtl:
                self._cursor_x -= pobj.get_text_width(s[lns-self._cursor_position:lns])
                if wtx>self._w-4:
                    if self._cursor_x-self._text_offx<2:
                        self._text_offx=self._cursor_x-int(self._w/3)                        
                    elif self._cursor_x-self._text_offx>self._w-4:
                        self._text_offx=self._cursor_x-(self._w-4)+int(self._w/3)                        
                    if abs(self._text_offx)>(wtx+2)-(self._w-4):
                        self._text_offx=((wtx+2)-(self._w-4))*-1                                                
                    if self._text_offx>0:
                        self._text_offx=0                    
                else:
                    self._text_offx=0
            else:
                self._cursor_x += pobj.get_text_width(s[0:self._cursor_position])
                if wtx>self._w-4:
                    if self._cursor_x-self._text_offx>self._w-4:
                        self._text_offx=self._cursor_x-(self._w-4)+int(self._w/3)                        
                    elif self._cursor_x-self._text_offx<2:
                        self._text_offx=self._cursor_x-int(self._w/3)
                    if self._text_offx>(wtx+2)-(self._w-4):
                        self._text_offx=(wtx+2)-(self._w-4)
                    if self._text_offx<0:
                        self._text_offx=0                                   
                else:
                    self._text_offx=0
                
                    
            #SELECTION
            if self._selection_end>self._selection_start:
                pobj.pen_color(_STYLE_EDITOR_SELECTION_COLOR)
                if self._window._rtl:                    
                    xend=self._w-pobj.get_text_width(s[lns-self._selection_start:lns])
                    xstart=self._w-pobj.get_text_width(s[lns-self._selection_end:lns])
                    pobj.fill_rectangle(xstart-4-self._text_offx,3,(xend-xstart),self._h-(2*3))
                else:
                    xstart=pobj.get_text_width(s[0:self._selection_start])
                    xend=pobj.get_text_width(s[0:self._selection_end])                    
                    pobj.fill_rectangle(3+xstart-self._text_offx,3,(xend-xstart),self._h-(2*3))
                
            #TESTO
            pobj.pen_color(self._foreground)
            ty=(self._h/2)-(pobj.get_text_height()/2)            
            if self._window._rtl:
                tx=self._w-wtx-4-self._text_offx
            else:
                tx=4-self._text_offx
            pobj.draw_text(s,tx,ty)
        else:
            self._text_offx=0
        if self._blink:
            pobj.pen_color(self._foreground)            
            pobj.draw_line(self._cursor_x-self._text_offx,3,self._cursor_x-self._text_offx,self._h-4)
        pobj.clear_clip_rectangle()        
    
    def _on_keyboard_char(self,c,shift,ctrl,alt,meta):
        if self._selection_start!=self._selection_end:
            self._text=self._text[0:self._selection_start] + self._text[self._selection_end:]
            self._cursor_position=self._selection_start
        self._text=self._text[0:self._cursor_position] + utils.str_new(c) + self._text[self._cursor_position:]
        self._cursor_position+=len(utils.str_new(c))
        self._selection_start=self._cursor_position
        self._selection_end=self._cursor_position
        self._blink=True
        self._repaint_text_area()
        
    def _on_keyboard_key(self,c,shift,ctrl,alt,meta):
        if c=="BACKSPACE":
            if self._selection_start==self._selection_end: 
                if self._cursor_position>0:
                    self._text=self._text[0:self._cursor_position-1] + self._text[self._cursor_position:]
                    self._cursor_position-=1
            else:
                self._text=self._text[0:self._selection_start] + self._text[self._selection_end:]
                self._cursor_position=self._selection_start
            self._selection_start=self._cursor_position
            self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()
        elif c=="DELETE":
            if self._selection_start==self._selection_end:
                if self._cursor_position<len(self._text):
                    self._text=self._text[0:self._cursor_position] + self._text[self._cursor_position+1:]
            else:
                self._text=self._text[0:self._selection_start] + self._text[self._selection_end:]
                self._cursor_position=self._selection_start
            self._selection_start=self._cursor_position
            self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()
        elif not self._window._rtl and c=="LEFT" or self._window._rtl and c=="RIGHT":
            if self._cursor_position>0:
                if shift and self._cursor_position==self._selection_start:
                    self._cursor_position-=1
                    self._selection_start=self._cursor_position
                elif shift and self._cursor_position==self._selection_end:
                    self._cursor_position-=1
                    self._selection_end=self._cursor_position
                else:
                    self._cursor_position-=1
                    self._selection_start=self._cursor_position
                    self._selection_end=self._cursor_position
            elif not shift :
                self._selection_start=self._cursor_position
                self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()
        elif not self._window._rtl and c=="RIGHT" or self._window._rtl and c=="LEFT":
            if self._cursor_position<len(self._text):
                if shift and self._cursor_position==self._selection_end:
                    self._cursor_position+=1
                    self._selection_end=self._cursor_position
                elif shift and self._cursor_position==self._selection_start:
                    self._cursor_position+=1
                    self._selection_start=self._cursor_position
                else:
                    self._cursor_position+=1
                    self._selection_start=self._cursor_position
                    self._selection_end=self._cursor_position
            elif not shift :
                self._selection_start=self._cursor_position
                self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()
        elif  c=="HOME":
            if self._cursor_position>0:
                if shift and self._cursor_position==self._selection_start:
                    self._cursor_position=0
                    self._selection_start=0
                elif shift and self._cursor_position==self._selection_end:
                    self._cursor_position=0
                    self._selection_end=self._selection_start
                    self._selection_start=0                        
                else:
                    self._cursor_position=0
                    self._selection_start=self._cursor_position
                    self._selection_end=self._cursor_position
            elif not shift :
                self._selection_start=self._cursor_position
                self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()
        elif c=="END":
            if self._cursor_position<len(self._text):
                if shift and self._cursor_position==self._selection_end:
                    self._cursor_position=len(self._text)
                    self._selection_end=self._cursor_position
                elif shift and self._cursor_position==self._selection_start:
                    self._cursor_position=len(self._text)
                    self._selection_start=self._selection_end
                    self._selection_end=self._cursor_position
                else:
                    self._cursor_position=len(self._text)
                    self._selection_start=self._cursor_position
                    self._selection_end=self._cursor_position
            elif not shift :
                self._selection_start=self._cursor_position
                self._selection_end=self._cursor_position
            self._blink=True
            self._repaint_text_area()

    def _on_keyboard_command(self,c,shift,ctrl,alt,meta):
        if c=="COPY":
            s=self._text[self._selection_start:self._selection_end]
            if len(s)>0:
                gdw_lib().DWAGDISetClipboardText(s)  
        elif c=="CUT":
            s=self._text[self._selection_start:self._selection_end]
            if len(s)>0:
                gdw_lib().DWAGDISetClipboardText(s) 
            self._on_keyboard_key("DELETE",shift,ctrl,alt,meta)
        elif c=="PASTE":
            s=gdw_lib().DWAGDIGetClipboardText()
            if len(s)>0:
                self._on_keyboard_char(s,shift,ctrl,alt,meta) 

    def on_keyboard(self,tp,c,shift,ctrl,alt,meta):
        Component.on_keyboard(self,tp,c,shift,ctrl,alt,meta)
        if tp=="CHAR":
            self._on_keyboard_char(c,shift,ctrl,alt,meta)
        elif tp=="KEY":
            self._on_keyboard_key(c,shift,ctrl,alt,meta)
        elif tp=="COMMAND":
            self._on_keyboard_command(c,shift,ctrl,alt,meta)
            
               
    def on_mouse(self,tp,x,y,b):
        Component.on_mouse(self, tp, x, y, b)
        if tp=="BUTTON_DOWN":
            self._cursor_position=self._get_cursor_pos_by_x(x)
            self._selection_start=self._cursor_position
            self._selection_end=self._cursor_position
            self._repaint_text_area()


                                                                                                                                                ui/__init__.py                                                                                      0000644 0001750 0001750 00000000342 14472427331 013100  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-

'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
                                                                                                                                                                                                                                                                                              utils.py                                                                                            0000755 0001750 0001750 00000040045 15036423214 012064  0                                                                                                    ustar   webdel                          webdel                                                                                                                                                                                                                 # -*- coding: utf-8 -*-
'''
This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed
with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''

import sys
import os
import shutil
import codecs
import subprocess
import zipfile
import platform
import traceback
import time
import ctypes
import threading
import logging.handlers
import zlib
import base64

path_sep=os.sep
line_sep=os.linesep

_biswindows=(platform.system().lower().find("window") > -1)
_bislinux=(platform.system().lower().find("linux") > -1)
_bismac=(platform.system().lower().find("darwin") > -1)


def is_py2():
    return sys.version_info[0]==2

if is_py2():    
    import Queue
    import BaseHTTPServer
    import urllib
    import urlparse
    try:
        import cStringIO
        BytesIO = cStringIO.StringIO
    except ImportError:
        import StringIO
        BytesIO = StringIO.StringIO    
    try:
        import cPickle
        Pickler = cPickle.Pickler
        Unpickler = cPickle.Unpickler
    except ImportError:
        import pickle 
        Pickler = pickle.Pickler
        Unpickler = pickle.Unpickler    
    Queue = Queue.Queue
    HTTPServer = BaseHTTPServer.HTTPServer
    BaseHTTPRequestHandler = BaseHTTPServer.BaseHTTPRequestHandler
    nrange=xrange
    sys_maxsize=sys.maxint
    os_getcwd=os.getcwdu        
else:
    import queue
    import http.server
    import urllib
    import io
    import pickle 
    BytesIO = io.BytesIO    
    Pickler = pickle.Pickler
    Unpickler = pickle.Unpickler        
    Queue = queue.Queue
    HTTPServer = http.server.HTTPServer
    BaseHTTPRequestHandler = http.server.BaseHTTPRequestHandler    
    nrange=range
    sys_maxsize=sys.maxsize
    os_getcwd=os.getcwd


def is_windows():
    return _biswindows

def is_linux():
    return _bislinux

def is_mac():
    return _bismac

def exception_to_string(e):
    bamsg=False;
    try:
        if len(e.message)>0:
            bamsg=True;
    except:
        None
    try:
        appmsg=None
        if bamsg:
            appmsg=str_new(e.message)
        else:
            appmsg=str_new(e)
        return appmsg
    except:
        return u"Unexpected error."
    
def get_stacktrace_string():
    try:
        s = traceback.format_exc();
        if s is None:
            return u""
        else:
            return str_new(s)
    except:
        return u"Unexpected error (get_stacktrace_string)."

def get_exception_string(e, tx=u""):
    msg = str_new(tx)
    msg += exception_to_string(e)
    msg += u"\n" + get_stacktrace_string()
    #msg += e.__class__.__name__
    #if e.args is not None and len(e.args)>0 and e.args[0] != '':
    #        msg = e.args[0]
    return msg

def get_exception():
    try:
        ar = sys.exc_info()
        if len(ar)>1 and sys.exc_info()[1] is not None:
            return sys.exc_info()[1]
        else:
            return sys.exc_info()[0]
    except:
        return Exception("Unexpected error (get_exception).")

def is_connection_refused_exception(e):
    try:
        import socket
        if is_py2(): 
            return type(e) == socket.error and e.errno == socket.errno.ECONNREFUSED
        else: 
            return  isinstance(e, ConnectionRefusedError)
    except:
        None
    return False

if is_windows():
    if is_py2():
        get_time=time.clock        
    else:
        get_time=time.perf_counter
else:
    get_time=time.time

def unload_package(pknm):
    mdtorem=[]
    for nm in sys.modules:
        if nm.startswith(pknm):
            mdtorem.append(nm)
    for nm in mdtorem:
        del sys.modules[nm]

def convert_bytes_to_structure(st, byte):
    ctypes.memmove(ctypes.addressof(st), byte, ctypes.sizeof(st))

def convert_struct_to_bytes(st):
    bf = ctypes.create_string_buffer(ctypes.sizeof(st))
    ctypes.memmove(bf, ctypes.addressof(st), ctypes.sizeof(st))
    return bf.raw

##########
# BUFFER #
##########
if is_py2():
    buffer_new=lambda o, p, l: buffer(o,p,l)        
else:
    buffer_new=lambda o, p, l: memoryview(o)[p:p+l]    


#########
# BYTES #
#########
if is_py2():
    bytes_new=str
    bytes_init=lambda sz: "\x00"*sz
    bytes_join=lambda ar: "".join(ar)
    bytes_get=lambda b, i: ord(b[i])
    bytes_to_str_hex=lambda s: s.encode('hex')            
else:
    bytes_new=bytes
    bytes_init=lambda sz: b"\x00"*sz
    bytes_join=lambda ar: b"".join(ar)
    bytes_get=lambda b, i: b[i]
    bytes_to_str_hex=bytes.hex
bytes_random=os.urandom
bytes_to_str=lambda b, enc="ascii": b.decode(enc, errors="replace")


#######
# STR #
#######
if is_py2():
    def _py2_str_new(o):
        if isinstance(o, unicode):
            return o 
        elif isinstance(o, str):
            return o.decode("utf8", errors="replace")
        else:
            return str(o).decode("utf8", errors="replace")
    str_new=_py2_str_new
    str_is_unicode=lambda s: isinstance(s, unicode) #TO REMOVE
    str_hex_to_bytes=lambda s: s.decode('hex')
else:
    str_new=str
    str_is_unicode=lambda s: isinstance(s, str) #TO REMOVE
    str_hex_to_bytes=bytes.fromhex
str_to_bytes=lambda s, enc="ascii": s.encode(enc, errors="replace")

#######
# URL #
#######
if is_py2():
    url_parse=urlparse.urlparse
    url_parse_quote_plus=urllib.quote_plus
    url_parse_quote=urllib.quote
    url_parse_qs=urlparse.parse_qs        
else:    
    url_parse=urllib.parse.urlparse
    url_parse_quote_plus=urllib.parse.quote_plus
    url_parse_quote=urllib.parse.quote
    url_parse_qs=urllib.parse.parse_qs
    

##############
# FILESYSTEM #
##############
def _path_fix(pth):
    if not is_py2() or not is_linux() or isinstance(pth, str):
        return pth
    else:
        return pth.encode('utf-8')
            
def path_exists(pth):
    return os.path.exists(_path_fix(pth))

def path_isdir(pth):
    return os.path.isdir(_path_fix(pth))

def path_isfile(pth):
    return os.path.isfile(_path_fix(pth))

def path_makedirs(pth):
    os.makedirs(_path_fix(pth))

def path_makedir(pth):
    os.mkdir(_path_fix(pth))

def path_remove(pth):
    apppt=_path_fix(pth)
    if os.path.isdir(apppt):
        shutil.rmtree(apppt)
    else:
        os.remove(apppt)        

def path_list(pth):
    return os.listdir(_path_fix(pth))

def path_walk(pth):
    return os.walk(_path_fix(pth))

def path_islink(pth):    
    return os.path.islink(_path_fix(pth))
          
def path_readlink(pth):        
    return os.readlink(_path_fix(pth))

def path_symlink(pths,pthd):
    os.symlink(_path_fix(pths), _path_fix(pthd))

def path_copy(pths,pthd):
    shutil.copy2(_path_fix(pths), _path_fix(pthd))
    
def path_move(pths,pthd):
    shutil.move(_path_fix(pths), _path_fix(pthd))

def path_rename(pths,pthd):
    os.rename(_path_fix(pths), _path_fix(pthd))

def path_change_permissions(pth, prms):
    os.chmod(_path_fix(pth),  prms)

def path_change_owner(pth, uid, gid):
    os.chown(_path_fix(pth), uid, gid)

def path_dirname(pth):
    return os.path.dirname(pth)

def path_basename(pth):
    return os.path.basename(pth)

def path_absname(pth):
    return os.path.abspath(pth)

def path_realname(pth):
    return os.path.realpath(pth)

def path_expanduser(pth):
    return os.path.expanduser(pth)

def path_size(pth):
    return os.path.getsize(_path_fix(pth))

def path_time(pth):
    return os.path.getmtime(_path_fix(pth))

def path_stat(pth):
    return os.stat(_path_fix(pth))

########
# FILE #
########
if is_py2():
    def file_open(filename, mode='rb', encoding=None, errors='strict', buffering=1):
        return codecs.open(_path_fix(filename), mode, encoding, errors, buffering)
else:
    def file_open(filename, mode='r', encoding=None, errors='strict', buffering=-1):
        return codecs.open(_path_fix(filename), mode, encoding, errors, buffering)

##########
# SYSTEM #
##########
def system_changedir(pth):
    os.chdir(_path_fix(pth))

def system_call(*popenargs, **kwargs):
    lst = list(popenargs)
    for i in range(len(lst)):
        lst[i]=_path_fix(popenargs[i])
    return subprocess.call(*lst,**kwargs)


###########
# ENCODER #
###########
if is_py2():    
    enc_base64_encode=lambda b: base64.b64encode(buffer(b))
    enc_base64_decode=lambda b: base64.b64decode(buffer(b))    
else:
    enc_base64_encode=lambda b: base64.b64encode(b)
    enc_base64_decode=lambda b: base64.b64decode(b)
    

############
# COMPRESS #
############
def zipfile_open(filename, mode="r", compression=zipfile.ZIP_STORED, allowZip64=False):
    return zipfile.ZipFile(_path_fix(filename),mode, compression, allowZip64)

if is_py2():    
    zlib_decompress=lambda b: zlib.decompress(buffer(b))
    zlib_compress=lambda b: zlib.compress(buffer(b))
else:
    zlib_decompress=lambda b: zlib.decompress(b)
    zlib_compress=lambda b: zlib.compress(b)


##########
# SOCKET #
##########
def socket_sendall(sock, bts):
    count = 0
    amount = len(bts)
    v = sock.send(bts)
    count += v
    while (count < amount):
        v = sock.send(buffer_new(bts,count,amount-count))
        count += v


LOGGER_INFO=logging.INFO
LOGGER_WARN=logging.WARN
LOGGER_CRITICAL=logging.CRITICAL
LOGGER_FATAL=logging.FATAL
LOGGER_DEBUG=logging.DEBUG
LOGGER_ERROR=logging.ERROR

class LoggerStdRedirect(object):
    
    def __init__(self,lg,lv):
        self._logger = lg;
        self._level = lv;
        
    def write(self, data):
        for line in data.rstrip().splitlines():
            self._logger.log(self._level, line.rstrip())
    
    def flush(self):
        None


class Logger():
    
    def __init__(self, conf):
        self._logger = logging.getLogger()
        if "filename" in conf:
            hdlr = logging.handlers.RotatingFileHandler(conf["filename"], "a", 1000000, 3)
        else:
            hdlr = logging.StreamHandler()
        formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")
        hdlr.setFormatter(formatter)
        self._logger.addHandler(hdlr) 
        self._logger.setLevel(logging.INFO)
        #Redirect stdout e stderr
        sys.stdout=LoggerStdRedirect(self._logger,logging.DEBUG)
        sys.stderr=LoggerStdRedirect(self._logger,logging.ERROR)
        self._lock = threading.Lock()

    def set_level(self, lv):
        self._logger.setLevel(lv)
    
    def write(self, lv, msg):
        self._lock.acquire()
        try:
            ar = []
            ar.append(str_new(threading.current_thread().name))
            ar.append(str_new(u" "))
            ar.append(str_new(msg))
            self._logger.log(lv, u"".join(ar))
        except:
            e=get_exception()
            print(exception_to_string(e))
        finally:
            self._lock.release()

class DebugProfile():

    def __init__(self, writeobj, conf):
        self._write_obj=writeobj
        self._debug_path = conf["debug_path"]
        self._debug_indentation_max=conf["debug_indentation_max"]
        self._debug_thread_filter=conf["debug_thread_filter"]
        self._debug_class_filter=conf["debug_class_filter"]
        self._debug_info = {}
    
    def _trunc_msg(self, msg, sz):
        smsg="None"
        if msg is not None:
            smsg=u""
            try:
                smsg = str_new(msg)
            except:
                e = get_exception()
                smsg = u"EXCEPTION:" + exception_to_string(e)
            if len(smsg)>sz:
                smsg=smsg[0:sz] + u" ..."
            smsg = smsg.replace("\n", " ").replace("\r", " ").replace("\t", "   ")
        return smsg
    
    def _filter_check(self,nm,flt):
        if flt is not None:
            ar = flt.split(";")
            for f in ar:
                if f.startswith("*") and nm.endswith(f[1:]):
                    return True
                elif f.endswith("*") and nm.startswith(f[0:len(f)-1]):
                    return True
                elif nm==f:
                    return True
            return False
        return False
    
    def get_function(self, frame, event, arg): 
        #sys._getframe(0)
        if event == "call" or event == "return":
            try:
                bshow = True
                fcode = frame.f_code
                flocs = frame.f_locals
                fn = path_absname(str_new(fcode.co_filename))
                if not fcode.co_name.startswith("<") and fn.startswith(self._debug_path):
                    fn = fn[len(self._debug_path):]
                    fn = fn.split(".")[0]
                    fn = fn.replace(path_sep,".")
                    nm = fcode.co_name
                    if flocs is not None and "self" in flocs:
                        flocssf=flocs["self"]
                        nm = flocssf.__class__.__name__ + "." +nm
                    nm=fn + u"." + nm
                    thdn = threading.current_thread().name
                    if thdn not in self._debug_info:
                        self._debug_info[thdn]={}
                        self._debug_info[thdn]["time"]=[]
                        self._debug_info[thdn]["indent"]=0
                    debug_time=self._debug_info[thdn]["time"]
                    debug_indent=self._debug_info[thdn]["indent"]
                    bshow=self._debug_indentation_max==-1 or debug_indent<=self._debug_indentation_max
                    #THREAD NAME
                    if bshow:
                        bshow=self._filter_check(thdn, self._debug_thread_filter)
                    #CLASS NAME
                    if bshow:
                        bshow=self._filter_check(nm, self._debug_class_filter)
                    #VISUALIZZA
                    if bshow:
                        if event == "return":
                            debug_indent -= 1
                        soper=""
                        arpp = []
                        if event == "call":
                            soper="INIT"
                            debug_time.append(int(time.time() * 1000))
                            if flocs is not None:
                                sarg=[]
                                for k in flocs:
                                    if not k == "self":
                                        sarg.append(str_new(k) + u"=" + self._trunc_msg(flocs[k], 20))
                                if len(sarg)>0:
                                    arpp.append(u"args: " + u",".join(sarg))
                            
                        elif event == "return":
                            soper="TERM"
                            tm = debug_time.pop()
                            arpp.append(u"time: " + str(int(time.time() * 1000) - tm) + u" ms")
                            arpp.append(u"return: " + self._trunc_msg(arg, 80))
                                
                        armsg=[]
                        armsg.append(u"   "*debug_indent + nm + u" > " + soper)
                        if len(arpp)>0:
                            armsg.append(u" ")
                            armsg.append(u"; ".join(arpp))
                        self._write_obj.write_debug(u"".join(armsg))
                        if event == "call":
                            debug_indent += 1
                        self._debug_info[thdn]["indent"]=debug_indent
            except:
                e = get_exception()
                self._write_obj.write_except(e)


class Counter:
    
    def __init__(self, v=None):
        self._current_elapsed = 0
        self._current_time = get_time()
        if v is not None:
            self._time_to_elapsed=v
        else:
            self._time_to_elapsed=0
        self._stopped=False

    def start(self):
        if self._stopped:
            self._current_time = get_time()
            self._stopped=False
    
    def stop(self):
        if not self._stopped:
            self._stopped=True

    def reset(self):
        self._current_elapsed = 0
        self._current_time = get_time()
    
    def is_elapsed(self, v=None):
        if v is None:
            v=self._time_to_elapsed
        return self.get_value()>=v
   
    def get_value(self):
        if self._stopped:
            return self._current_elapsed
        apptm=get_time()
        elp=apptm-self._current_time
        if elp>=0:
            self._current_elapsed+=elp
            self._current_time=apptm
        else:
            self._current_time=get_time()
        #print("self._current_elapsed(" + str(self) + "): " +  str(self._current_elapsed))
        return self._current_elapsed




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           