From johndorovski at googlemail.com Wed Nov 18 14:40:56 2009 Content-Type: multipart/mixed; boundary="===============4559238903088509740==" MIME-Version: 1.0 From: John Dorovski To: users at lists.dogtagpki.org Subject: Re: [Pki-users] (forwarded) Help needed on dogtag Date: Wed, 18 Nov 2009 14:40:43 -0500 Message-ID: In-Reply-To: 150446754087724BA4B8F287083846B205ACEDF1@AZ25EXM04.gddsi.com --===============4559238903088509740== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable I found the error code from Mozilla site also. I am not sure that is the case. Since I installed dogtag on two separate systems with the exact configuration. The systems were all installed with brand new OS (Fedora 10). One system even unplugged from internet after dogtag was installed. They all got the exact same error. On Wed, Nov 18, 2009 at 12:38 PM, Adewumi, Julius-p99373 < Julius.Adewumi(a)gdc4s.com> wrote: > SSL_ERROR_BAD_MAC_ALERT -12272 > "SSL peer reports incorrect Message Authentication Code." > > The remote system has reported that it received a message with a bad > Message Authentication Code from the local system. This may indicate that= an > attack on that server is underway. > > > *The trace shows "cipher-change-request" as last capture before Error > reported.* > > ** > > *From: Julius Adewumi* > *@GDC4S.com* > *Ph:480-441-6768* > *Contract Corp:MTSI* > > > ------------------------------ > *From:* John Dorovski [mailto:johndorovski(a)googlemail.com] > *Sent:* Wednesday, November 18, 2009 7:34 AM > *To:* Chandrasekar Kannan > *Cc:* Adewumi, Julius-p99373; pki-users(a)redhat.com > *Subject:* Re: [Pki-users] (forwarded) Help needed on dogtag > > Here are the two certs ssltap captured. > > > On Wed, Nov 18, 2009 at 9:20 AM, John Dorovski < > johndorovski(a)googlemail.com> wrote: > >> Here is my ssltap output: >> >> [root(a)rd1 linux-i386]# ssltap -sfxl localhost.localdomain:9545 >> SSLTAP output >>
>> Looking up "localhost.localdomain"...
>> Proxy socket ready and listening
>> 


Connection #1 [Wed Nov 18 09:14:56 2009] >>

Connected to localhost.localdomain:9545 >> --> [ >> (120 bytes of 115) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 01 00 73 | ....s >> type =3D 22 (handshake) >> version =3D { 3,1 } >> length =3D 115 (0x73) >> handshake { >> 0: 01 00 00 6f | ...o >> type =3D 1 (client_hello) >> length =3D 111 (0x00006f) >> ClientHelloV3 { >> client_version =3D {3, 1} >> random =3D {...} >> 0: 4b 04 01 60 3e dd 86 f2 6c 26 cb 29 b3 a4 eb 26 | >> K..`>...l&.)...& >> 10: c0 17 f1 8e 24 0a 75 79 03 91 78 40 7b 58 5e 7b | ....$.uy..x@ >> {X^{ >> session ID =3D { >> length =3D 0 >> contents =3D {...} >> } >> cipher_suites[18] =3D { >> (0x0088) TLS/DHE-RSA/CAMELLIA256-CBC/SHA >> (0x0087) TLS/DHE-DSS/CAMELLIA256-CBC/SHA >> (0x0039) TLS/DHE-RSA/AES256-CBC/SHA >> (0x0038) TLS/DHE-DSS/AES256-CBC/SHA >> (0x0084) TLS/RSA/CAMELLIA256-CBC/SHA >> (0x0035) TLS/RSA/AES256-CBC/SHA >> (0x0045) TLS/DHE-RSA/CAMELLIA128-CBC/SHA >> (0x0044) TLS/DHE-DSS/CAMELLIA128-CBC/SHA >> (0x0033) TLS/DHE-RSA/AES128-CBC/SHA >> (0x0032) TLS/DHE-DSS/AES128-CBC/SHA >> (0x0041) TLS/RSA/CAMELLIA128-CBC/SHA >> (0x0004) SSL3/RSA/RC4-128/MD5 >> (0x0005) SSL3/RSA/RC4-128/SHA >> (0x002f) TLS/RSA/AES128-CBC/SHA >> (0x0016) SSL3/DHE-RSA/3DES192EDE-CBC/SHA >> (0x0013) SSL3/DHE-DSS/DES192EDE3CBC/SHA >> (0xfeff) SSL3/RSA-FIPS/3DESEDE-CBC/SHA >> (0x000a) SSL3/RSA/3DES192EDE-CBC/SHA >> } >> compression[1] =3D { 00 } >> extensions[34] =3D { >> extension type server_name, length [26] =3D { >> 0: 00 18 00 00 15 6c 6f 63 61 6c 68 6f 73 74 2e 6c | >> .....localhost.l >> 10: 6f 63 61 6c 64 6f 6d 61 69 6e | ocaldomain >> } >> extension type session_ticket, length [0] >> } >> } >> } >> } >> ] >> <-- [ >> (1903 bytes of 1898) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 01 07 6a | ....j >> type =3D 22 (handshake) >> version =3D { 3,1 } >> length =3D 1898 (0x76a) >> handshake { >> 0: 02 00 00 46 | ...F >> type =3D 2 (server_hello) >> length =3D 70 (0x000046) >> ServerHello { >> server_version =3D {3, 1} >> random =3D {...} >> 0: 4b 04 01 60 d1 86 09 69 01 8d c2 5e 1a 9c 99 16 | >> K..`...i...^.... >> 10: de 0e bd 27 b6 c5 be 57 23 f1 1e 03 69 40 55 9d | >> ...'...W#...i(a)U. >> session ID =3D { >> length =3D 32 >> contents =3D {...} >> 0: 67 66 c6 7f f7 ac d6 98 45 f2 6d 9f c6 84 e1 df | gf. >> ....E.m..... >> 10: ff ff c0 87 d8 e9 97 f9 f6 37 8b 6e 09 d9 2b 25 | >> .........7.n..+% >> } >> cipher_suite =3D (0x0004) SSL3/RSA/RC4-128/MD5 >> compression method =3D 00 >> } >> 0: 0b 00 07 18 | .... >> type =3D 11 (certificate) >> length =3D 1816 (0x000718) >> CertificateChain { >> chainlength =3D 1813 (0x0715) >> Certificate { >> size =3D 890 (0x037a) >> data =3D { saved in file 'cert.001' } >> } >> Certificate { >> size =3D 917 (0x0395) >> data =3D { saved in file 'cert.002' } >> } >> } >> 0: 0e 00 00 00 | .... >> type =3D 14 (server_hello_done) >> length =3D 0 (0x000000) >> } >> } >> ] >> --> [ >> (310 bytes of 262, with 43 left over) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 01 01 06 | ..... >> type =3D 22 (handshake) >> version =3D { 3,1 } >> length =3D 262 (0x106) >> handshake { >> 0: 10 00 01 02 | .... >> type =3D 16 (client_key_exchange) >> length =3D 258 (0x000102) >> ClientKeyExchange { >> message =3D {...} >> } >> } >> } >> (310 bytes of 1, with 37 left over) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 14 03 01 00 01 | ..... >> type =3D 20 (change_cipher_spec) >> version =3D { 3,1 } >> length =3D 1 (0x1) >> 0: 01 | . >> } >> (310 bytes of 32) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 01 00 20 | .... >> type =3D 22 (handshake) >> version =3D { 3,1 } >> length =3D 32 (0x20) >> < encrypted > >> } >> ] >> ssltap: Error -5961: TCP connection reset by peer.: error on server-side >> socket. >> Connection 1 Complete [Wed Nov 18 09:14:56 2009] >>


Connection #2 [Wed Nov 18 09:14:56 2009] >>

Connected to localhost.localdomain:9545 >> --> [ >> recordLen =3D 81 bytes >> (81 bytes of 81) >> [Wed Nov 18 09:14:56 2009] [ssl2] ClientHelloV2 { >> version =3D {0x03, 0x00} >> cipher-specs-length =3D 54 (0x36) >> sid-length =3D 0 (0x00) >> challenge-length =3D 16 (0x10) >> cipher-suites =3D { >> (0x000088) TLS/DHE-RSA/CAMELLIA256-CBC/SHA >> (0x000087) TLS/DHE-DSS/CAMELLIA256-CBC/SHA >> (0x000039) TLS/DHE-RSA/AES256-CBC/SHA >> (0x000038) TLS/DHE-DSS/AES256-CBC/SHA >> (0x000084) TLS/RSA/CAMELLIA256-CBC/SHA >> (0x000035) TLS/RSA/AES256-CBC/SHA >> (0x000045) TLS/DHE-RSA/CAMELLIA128-CBC/SHA >> (0x000044) TLS/DHE-DSS/CAMELLIA128-CBC/SHA >> (0x000033) TLS/DHE-RSA/AES128-CBC/SHA >> (0x000032) TLS/DHE-DSS/AES128-CBC/SHA >> (0x000041) TLS/RSA/CAMELLIA128-CBC/SHA >> (0x000004) SSL3/RSA/RC4-128/MD5 >> (0x000005) SSL3/RSA/RC4-128/SHA >> (0x00002f) TLS/RSA/AES128-CBC/SHA >> (0x000016) SSL3/DHE-RSA/3DES192EDE-CBC/SHA >> (0x000013) SSL3/DHE-DSS/DES192EDE3CBC/SHA >> (0x00feff) SSL3/RSA-FIPS/3DESEDE-CBC/SHA >> (0x00000a) SSL3/RSA/3DES192EDE-CBC/SHA >> } >> session-id =3D { } >> challenge =3D { 0xde1b 0xaea2 0x262a 0xaae3 0x5135 0x4f6a 0x5= 742 >> 0xf716 } >> } >> ] >> <-- [ >> (1903 bytes of 1898) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 00 07 6a | ....j >> type =3D 22 (handshake) >> version =3D { 3,0 } >> length =3D 1898 (0x76a) >> handshake { >> 0: 02 00 00 46 | ...F >> type =3D 2 (server_hello) >> length =3D 70 (0x000046) >> ServerHello { >> server_version =3D {3, 0} >> random =3D {...} >> 0: 4b 04 01 60 55 ce 82 33 ab d7 da 7f bc 74 ed ca | K..`U..3... >> .t.. >> 10: 1e f3 95 26 21 fa db ce 83 94 24 0a bc 4e 89 51 | >> ...&!.....$..N.Q >> session ID =3D { >> length =3D 32 >> contents =3D {...} >> 0: 67 66 50 ba 19 6d d9 38 7d 86 a9 e0 43 cb 57 0b | >> gfP..m.8}...C.W. >> 10: 19 d5 a7 e0 90 99 e5 78 03 f6 55 26 c4 f1 bc 03 | >> .......x..U&.... >> } >> cipher_suite =3D (0x0004) SSL3/RSA/RC4-128/MD5 >> compression method =3D 00 >> } >> 0: 0b 00 07 18 | .... >> type =3D 11 (certificate) >> length =3D 1816 (0x000718) >> CertificateChain { >> chainlength =3D 1813 (0x0715) >> Certificate { >> size =3D 890 (0x037a) >> data =3D { saved in file 'cert.003' } >> } >> Certificate { >> size =3D 917 (0x0395) >> data =3D { saved in file 'cert.004' } >> } >> } >> 0: 0e 00 00 00 | .... >> type =3D 14 (server_hello_done) >> length =3D 0 (0x000000) >> } >> } >> ] >> --> [ >> (332 bytes of 260, with 67 left over) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 00 01 04 | ..... >> type =3D 22 (handshake) >> version =3D { 3,0 } >> length =3D 260 (0x104) >> handshake { >> 0: 10 00 01 00 | .... >> type =3D 16 (client_key_exchange) >> length =3D 256 (0x000100) >> ClientKeyExchange { >> message =3D {...} >> } >> } >> } >> (332 bytes of 1, with 61 left over) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 14 03 00 00 01 | ..... >> type =3D 20 (change_cipher_spec) >> version =3D { 3,0 } >> length =3D 1 (0x1) >> 0: 01 | . >> } >> (332 bytes of 56) >> SSLRecord { [Wed Nov 18 09:14:56 2009] >> 0: 16 03 00 00 38 | ....8 >> type =3D 22 (handshake) >> version =3D { 3,0 } >> length =3D 56 (0x38) >> < encrypted > >> } >> ] >> ssltap: Error -5961: TCP connection reset by peer.: error on server-side >> socket. >> Connection 2 Complete [Wed Nov 18 09:14:56 2009] >> >> >> >> >> On Tue, Nov 17, 2009 at 7:21 PM, Chandrasekar Kannan wrote: >> >>> On 11/17/2009 01:09 PM, John Dorovski wrote: >>> >>> It was not a typo. I did use the port number 9545. >>> >>> >>> Ok. one idea would be to run the utility "ssltap" as a proxy >>> and using your browser to connect to the "ssltap" port and >>> pasting the output here so folks can see what's happening >>> during the SSL handshake. >>> http://www.mozilla.org/projects/security/pki/nss/tools/ssltap.html >>> >>> >>> On a Fedora 10 system, its packaged with nss-tools rpm. >>> >>> Run ssltap like this... >>> >>> ssltap -sfxl CA_HOSTNAME:CA_PORT >>> >>> in your case, it will be >>> >>> ssltap -sfxl localhost:9545 >>> >>> Then use a browser and connect to ssltap. ssltap >>> listens on port 1924. So on the browser type.. >>> >>> https://localhost.localdomain:1924 >>> >>> >>> ssltap will capture the results of the ssl handshake. >>> >>> Copy and paste it here so we can tell what's happening >>> during that phase while you get the bad mac alert. >>> >>> Thanks, >>> --Chandra >>> >>> >>> >>> >>> >>> >>> John >>> >>> On Tue, Nov 17, 2009 at 3:51 PM, Adewumi, Julius-p99373 < >>> Julius.Adewumi(a)gdc4s.com> wrote: >>> >>>> >>>> Unless it's a typo on your part, the two port numbers are different... >>>> Could that be the problem? >>>> 8445 vs 9545 >>>> >>>> From: Julius Adewumi >>>> @GDC4S.com >>>> Ph:480-441-6768 >>>> Contract Corp:MTSI >>>> >>>> >>>> -----Original Message----- >>>> From: pki-users-bounces(a)redhat.com [mailto:pki-users-bounces(a)redha= t.com >>>> ] >>>> On Behalf Of Christina Fu >>>> Sent: Tuesday, November 17, 2009 12:56 PM >>>> To: pki-users(a)redhat.com >>>> Cc: johndorovski(a)googlemail.com >>>> Subject: [Pki-users] (forwarded) Help needed on dogtag >>>> >>>> I might have messed up when managing pki-users and this did not come >>>> through. Hence the forward. >>>> Christina >>>> >>>> Subject: >>>> Help needed on dogtag >>>> From: >>>> John Dorovski >>>> Date: >>>> Tue, 17 Nov 2009 10:58:18 -0500 >>>> >>>> To: >>>> pki-users(a)redhat.com >>>> >>>> >>>> Hi, >>>> >>>> I just installed a dogtag (1.2.0) instance on my Fedora 10 system. >>>> I used a SafeNet ProtectServer Gold HSM as keystore. >>>> The dogtag system installation and configuration were fine. No error w= as >>>> reported. >>>> All keys and certificates were generated inside the HSM. >>>> >>>> But when I tried to access the secure admin interface at >>>> https://localhost:localdomain:9545 >>>> I got error message: >>>> Secure Connection Failed >>>> An error occurred during a connection to localhost.localdomain:8445 >>>> SSL peer reports incorrect Message Authentication Code. >>>> (Error code: ssl_error_bad_mac_alert) >>>> >>>> I checked the server certificate (viewed it with IE on a Windows box). >>>> It seems fine. >>>> >>>> Does any body know what is wrong and how can I fix it? >>>> >>>> Thanks, >>>> >>>> John >>>> >>>> _______________________________________________ >>>> Pki-users mailing list >>>> Pki-users(a)redhat.com >>>> https://www.redhat.com/mailman/listinfo/pki-users >>>> >>> >>> >>> _______________________________________________ >>> Pki-users mailing listPki-users(a)redhat.comhttps://www.redhat.com/mail= man/listinfo/pki-users >>> >>> >>> >>> _______________________________________________ >>> Pki-users mailing list >>> Pki-users(a)redhat.com >>> https://www.redhat.com/mailman/listinfo/pki-users >>> >>> >> > > _______________________________________________ > Pki-users mailing list > Pki-users(a)redhat.com > https://www.redhat.com/mailman/listinfo/pki-users > > --===============4559238903088509740== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" SSBmb3VuZCB0aGUgZXJyb3IgY29kZSBmcm9tIE1vemlsbGEgc2l0ZSBhbHNvLiA8YnI+SSBhbSBu b3Qgc3VyZSB0aGF0IGlzIHRoZSBjYXNlLiA8YnI+U2luY2UgSSBpbnN0YWxsZWQgZG9ndGFnIG9u IHR3byBzZXBhcmF0ZSBzeXN0ZW1zIHdpdGggdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24uPGJyPlRo ZSBzeXN0ZW1zIHdlcmUgYWxsIGluc3RhbGxlZCB3aXRoIGJyYW5kIG5ldyBPUyAoRmVkb3JhIDEw KS4gPGJyPgpPbmUgc3lzdGVtIGV2ZW4gdW5wbHVnZ2VkIGZyb20gaW50ZXJuZXQgYWZ0ZXIgZG9n dGFnIHdhcyBpbnN0YWxsZWQuPGJyPlRoZXkgYWxsIGdvdCB0aGUgZXhhY3Qgc2FtZSBlcnJvci4g PGJyPqA8YnI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBXZWQsIE5vdiAxOCwgMjAw OSBhdCAxMjozOCBQTSwgQWRld3VtaSwgSnVsaXVzLXA5OTM3MyA8c3BhbiBkaXI9Imx0ciI+Jmx0 OzxhIGhyZWY9Im1haWx0bzpKdWxpdXMuQWRld3VtaUBnZGM0cy5jb20iPkp1bGl1cy5BZGV3dW1p QGdkYzRzLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+CjxibG9ja3F1b3RlIGNsYXNzPSJn bWFpbF9xdW90ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAy MDQpOyBtYXJnaW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgoKCgo8 ZGl2Pgo8ZGl2IGRpcj0ibHRyIiBhbGlnbj0ibGVmdCI+Cjx0YWJsZSBib3JkZXI9IjIiIGNlbGxw YWRkaW5nPSI1Ij4KICA8dGJvZHk+CiAgPHRyPgogICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249 ImJhc2VsaW5lIj48YSBuYW1lPSIxMjUwODVmY2RjOThjODViXzEwNDAzNTMiPjwvYT48dHQ+U1NM X0VSUk9SX0JBRF9NQUNfQUxFUlQ8L3R0PjwvdGQ+CiAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGln bj0iYmFzZWxpbmUiPi0xMjI3MjwvdGQ+CiAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFz ZWxpbmUiPjxkaXYgY2xhc3M9ImltIj48YSBuYW1lPSIxMjUwODVmY2RjOThjODViXzEwNDAzNTUi PjwvYT4mcXVvdDtTU0wgcGVlciByZXBvcnRzIGluY29ycmVjdCBNZXNzYWdlIEF1dGhlbnRpY2F0 aW9uIENvZGUuJnF1b3Q7IAoKICAgICAgPC9kaXY+PHA+PGEgbmFtZT0iMTI1MDg1ZmNkYzk4Yzg1 Yl8xMDQwMzU2Ij48L2E+VGhlIHJlbW90ZSBzeXN0ZW0gaGFzIAogICAgICByZXBvcnRlZCB0aGF0 IGl0IHJlY2VpdmVkIGEgbWVzc2FnZSB3aXRoIGEgYmFkIE1lc3NhZ2UgQXV0aGVudGljYXRpb24g Q29kZSAKICAgICAgZnJvbSB0aGUgbG9jYWwgc3lzdGVtLiBUaGlzIG1heSBpbmRpY2F0ZSB0aGF0 IGFuIGF0dGFjayBvbiB0aGF0IHNlcnZlciBpcyAKICAgICAgdW5kZXJ3YXkuPC9wPjwvdGQ+PC90 cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+CjxkaXY+oDwvZGl2Pgo8cD48aT48c3BhbiBsYW5nPSJl bi11cyI+PGZvbnQgZmFjZT0iQXJpYWwgTmFycm93IiBzaXplPSIyIj48c3Bhbj5UaGUgdHJhY2Ug c2hvd3MgJnF1b3Q7Y2lwaGVyLWNoYW5nZS1yZXF1ZXN0JnF1b3Q7IGFzIGxhc3QgY2FwdHVyZSAK YmVmb3JlIEVycm9yIHJlcG9ydGVkLjwvc3Bhbj48L2ZvbnQ+PC9zcGFuPjwvaT48L3A+PGRpdiBj bGFzcz0iaW0iPgo8cD48aT48c3BhbiBsYW5nPSJlbi11cyI+PGZvbnQgZmFjZT0iQXJpYWwgTmFy cm93IiBzaXplPSIyIj48L2ZvbnQ+PC9zcGFuPjwvaT6gPC9wPgo8cD48aT48c3BhbiBsYW5nPSJl bi11cyI+PGZvbnQgZmFjZT0iQXJpYWwgTmFycm93IiBzaXplPSIyIj5Gcm9tOiBKdWxpdXMgCkFk ZXd1bWk8L2ZvbnQ+PC9zcGFuPjwvaT4gPGJyPjxpPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBm YWNlPSJBcmlhbCBOYXJyb3ciIHNpemU9IjIiPkBHREM0Uy5jb208L2ZvbnQ+PC9zcGFuPjwvaT4g PGJyPjxpPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJBcmlhbCBOYXJyb3ciIHNpemU9 IjIiPlBoOjQ4MC00NDEtNjc2ODwvZm9udD48L3NwYW4+PC9pPiA8YnI+PGk+PHNwYW4gbGFuZz0i ZW4tdXMiPjxmb250IGZhY2U9IkFyaWFsIE5hcnJvdyIgc2l6ZT0iMiI+Q29udHJhY3QgCkNvcnA6 TVRTSTwvZm9udD48L3NwYW4+PC9pPjxzcGFuIGxhbmc9ImVuLXVzIj48L3NwYW4+IDwvcD4KPGRp dj6gPC9kaXY+PGJyPgo8L2Rpdj48ZGl2IGRpcj0ibHRyIiBhbGlnbj0ibGVmdCIgbGFuZz0iZW4t dXMiPgo8aHI+Cjxmb250IGZhY2U9IlRhaG9tYSIgc2l6ZT0iMiI+PGI+RnJvbTo8L2I+IEpvaG4g RG9yb3Zza2kgClttYWlsdG86PGEgaHJlZj0ibWFpbHRvOmpvaG5kb3JvdnNraUBnb29nbGVtYWls LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmpvaG5kb3JvdnNraUBnb29nbGVtYWlsLmNvbTwvYT5dIDxi cj48Yj5TZW50OjwvYj4gV2VkbmVzZGF5LCBOb3ZlbWJlciAxOCwgCjIwMDkgNzozNCBBTTxicj48 Yj5Ubzo8L2I+IENoYW5kcmFzZWthciBLYW5uYW48YnI+PGI+Q2M6PC9iPiBBZGV3dW1pLCAKSnVs aXVzLXA5OTM3MzsgPGEgaHJlZj0ibWFpbHRvOnBraS11c2Vyc0ByZWRoYXQuY29tIiB0YXJnZXQ9 Il9ibGFuayI+cGtpLXVzZXJzQHJlZGhhdC5jb208L2E+PGJyPjxiPlN1YmplY3Q6PC9iPiBSZTog W1BraS11c2Vyc10gCihmb3J3YXJkZWQpIEhlbHAgbmVlZGVkIG9uIGRvZ3RhZzxicj48L2ZvbnQ+ PGJyPjwvZGl2PjxkaXY+PGRpdj48L2Rpdj48ZGl2IGNsYXNzPSJoNSI+CjxkaXY+PC9kaXY+SGVy ZSBhcmUgdGhloKAgdHdvIGNlcnRzIHNzbHRhcCBjYXB0dXJlZC48YnI+PGJyPjxicj4KPGRpdiBj bGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgTm92IDE4LCAyMDA5IGF0IDk6MjAgQU0sIEpvaG4g RG9yb3Zza2kgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86am9obmRvcm92c2tp QGdvb2dsZW1haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+am9obmRvcm92c2tpQGdvb2dsZW1haWwu Y29tPC9hPiZndDs8L3NwYW4+IAp3cm90ZTo8YnI+CjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x dW90ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBt YXJnaW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPkhlcmUgCiAgaXMg bXkgc3NsdGFwIG91dHB1dDo8YnI+PGJyPltyb290QHJkMSBsaW51eC1pMzg2XSMgc3NsdGFwIC1z ZnhsoCAKICBsb2NhbGhvc3QubG9jYWxkb21haW46OTU0NTxicj4mbHQ7SFRNTCZndDsmbHQ7SEVB RCZndDsmbHQ7VElUTEUmZ3Q7U1NMVEFQIAogIG91dHB1dCZsdDsvVElUTEUmZ3Q7Jmx0Oy9IRUFE Jmd0Ozxicj4mbHQ7Qk9EWSZndDsmbHQ7UFJFJmd0Ozxicj5Mb29raW5nIHVwIAogICZxdW90O2xv Y2FsaG9zdC5sb2NhbGRvbWFpbiZxdW90Oy4uLjxicj5Qcm94eSBzb2NrZXQgcmVhZHkgYW5kIAog IGxpc3RlbmluZzxicj4mbHQ7cCZndDsmbHQ7SFImZ3Q7Jmx0O0gyJmd0O0Nvbm5lY3Rpb24gIzEg W1dlZCBOb3YgMTggMDk6MTQ6NTYgCiAgMjAwOV08YnI+Jmx0Oy9IMiZndDtDb25uZWN0ZWQgdG8g bG9jYWxob3N0LmxvY2FsZG9tYWluOjk1NDU8YnI+LS0mZ3Q7IAogIFs8YnI+Jmx0O2ZvbnQgY29s b3I9Ymx1ZSZndDsoMTIwIGJ5dGVzIG9mIDExNSk8YnI+U1NMUmVjb3JkIHsgW1dlZCBOb3YgMTgg CiAgMDk6MTQ6NTYgMjAwOV08YnI+oKAgMDogMTYgMDMgMDEgMDCgIAogIDczoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIAogIHwgLi4uLnM8YnI+oKAgdHlwZaCgoCA9IDIyIAog IChoYW5kc2hha2UpPGJyPqCgIHZlcnNpb24gPSB7IDMsMSB9PGJyPqCgIGxlbmd0aKAgPSAKICAx MTUgKDB4NzMpPGJyPqCgIGhhbmRzaGFrZSB7PGJyPqCgIDA6IDAxIDAwIDAwIAogIDZmoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLm88YnI+oKCgoKAgdHlw ZSA9IDEgCiAgKGNsaWVudF9oZWxsbyk8YnI+oKCgoKAgbGVuZ3RoID0gMTExIAogICgweDAwMDA2 Zik8YnI+oKCgoKCgoKAgQ2xpZW50SGVsbG9WMyAKICB7PGJyPqCgoKCgoKCgoKCgIAogIGNsaWVu dF92ZXJzaW9uID0gezMsIAogIDF9PGJyPqCgoKCgoKCgoKCgIAogIHJhbmRvbSA9IHsuLi59PGJy PqCgIDA6IDRiIDA0IDAxIDYwoCAzZSBkZCA4NiBmMqAgNmMgMjYgY2IgCiAgMjmgIGIzIGE0IGVi IDI2oCB8IEsuLmAmYW1wO2d0Oy4uLmwmYW1wO2FtcDsuKS4uLiZhbXA7YW1wOzxicj6gIAogIDEw OiBjMCAxNyBmMSA4ZaAgMjQgMGEgNzUgNzmgIDAzIDkxIDc4IDQwoCA3YiA1OCA1ZSA3YqAgfCAK ICAuLi4uJC51eS4ueEB7WF57PGJyPqCgoKCgoKCgoKCgIAogIHNlc3Npb24gSUQgPSAKICB7PGJy PqCgoKCgoKCgoKCgoKCgoCAKICBsZW5ndGggPSAKICAwPGJyPqCgoKCgoKCgoKCgoKCgoCAKICBj b250ZW50cyA9IAogIHsuLi59PGJyPqCgoKCgoKCgoKCgIAogIH08YnI+oKCgoKCgoKCgoKAgCiAg Y2lwaGVyX3N1aXRlc1sxOF0gPSB7IAogIDxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDA4OCkg CiAgVExTL0RIRS1SU0EvQ0FNRUxMSUEyNTYtQ0JDL1NIQTxicj6goKCgoKCgoKCgoKCgoKAgCiAg KDB4MDA4NykgCiAgVExTL0RIRS1EU1MvQ0FNRUxMSUEyNTYtQ0JDL1NIQTxicj6goKCgoKCgoKCg oKCgoKAgCiAgKDB4MDAzOSkgCiAgVExTL0RIRS1SU0EvQUVTMjU2LUNCQy9TSEE8YnI+oKCgoKCg oKCgoKCgoKCgIAogICgweDAwMzgpIAogIFRMUy9ESEUtRFNTL0FFUzI1Ni1DQkMvU0hBPGJyPqCg oKCgoKCgoKCgoKCgoCAKICAoMHgwMDg0KSAKICBUTFMvUlNBL0NBTUVMTElBMjU2LUNCQy9TSEE8 YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwMzUpIAogIFRMUy9SU0EvQUVTMjU2LUNCQy9TSEE8 YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwNDUpIAogIFRMUy9ESEUtUlNBL0NBTUVMTElBMTI4 LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwNDQpIAogIFRMUy9ESEUtRFNTL0NB TUVMTElBMTI4LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwMzMpIAogIFRMUy9E SEUtUlNBL0FFUzEyOC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDMyKSAKICBU TFMvREhFLURTUy9BRVMxMjgtQ0JDL1NIQTxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDA0MSkg CiAgVExTL1JTQS9DQU1FTExJQTEyOC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgw MDA0KSAKICBTU0wzL1JTQS9SQzQtMTI4L01ENTxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAw NSkgCiAgU1NMMy9SU0EvUkM0LTEyOC9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwMmYp IAogIFRMUy9SU0EvQUVTMTI4LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwMTYp IAogIFNTTDMvREhFLVJTQS8zREVTMTkyRURFLUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAog ICgweDAwMTMpIAogIFNTTDMvREhFLURTUy9ERVMxOTJFREUzQ0JDL1NIQTxicj6goKCgoKCgoKCg oKCgoKAgCiAgKDB4ZmVmZikgCiAgU1NMMy9SU0EtRklQUy8zREVTRURFLUNCQy9TSEE8YnI+oKCg oKCgoKCgoKCgoKCgIAogICgweDAwMGEpIAogIFNTTDMvUlNBLzNERVMxOTJFREUtQ0JDL1NIQTxi cj6goKCgoKCgoKCgoCAKICB9PGJyPqCgoKCgoKCgoKCgIAogIGNvbXByZXNzaW9uWzFdID0geyAw MCAKICB9PGJyPqCgoKCgoKCgoKCgIAogIGV4dGVuc2lvbnNbMzRdID0gCiAgezxicj6goKCgoKCg oKCgoKCgIAogIGV4dGVuc2lvbiB0eXBlIHNlcnZlcl9uYW1lLCBsZW5ndGggWzI2XSA9IHs8YnI+ oKAgMDogMDAgMTggMDAgCiAgMDCgIDE1IDZjIDZmIDYzoCA2MSA2YyA2OCA2ZqAgNzMgNzQgMmUg NmOgIHwgCiAgLi4uLi5sb2NhbGhvc3QubDxicj6gIDEwOiA2ZiA2MyA2MSA2Y6AgNjQgNmYgNmQg NjGgIDY5IAogIDZloKCgoKCgoKCgoKCgoKCgoKCgoKAgCiAgfCAKICBvY2FsZG9tYWluPGJyPqCg oKCgoKCgoKCgoKAgCiAgfTxicj6goKCgoKCgoKCgoKCgIAogIGV4dGVuc2lvbiB0eXBlIHNlc3Np b25fdGlja2V0LCBsZW5ndGggCiAgWzBdPGJyPqCgoKCgoKCgoKCgIAogIH08YnI+oKCgoKCgoKAg fTxicj6goCAKICB9PGJyPn08YnI+Jmx0Oy9mb250Jmd0O108YnI+Jmx0Oy0tIFs8YnI+Jmx0O2Zv bnQgY29sb3I9cmVkJmd0OygxOTAzIGJ5dGVzIG9mIAogIDE4OTgpPGJyPlNTTFJlY29yZCB7IFtX ZWQgTm92IDE4IDA5OjE0OjU2IDIwMDldPGJyPqCgIDA6IDE2IDAzIDAxIAogIDA3oCAKICA2YaCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi5qPGJyPqCgIHR5cGWg oKAgPSAyMiAKICAoaGFuZHNoYWtlKTxicj6goCB2ZXJzaW9uID0geyAzLDEgfTxicj6goCBsZW5n dGigID0gCiAgMTg5OCAoMHg3NmEpPGJyPqCgIGhhbmRzaGFrZSB7PGJyPqCgIDA6IDAyIDAwIDAw IAogIDQ2oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLkY8 YnI+oKCgoKAgdHlwZSA9IDIgCiAgKHNlcnZlcl9oZWxsbyk8YnI+oKCgoKAgbGVuZ3RoID0gNzAg CiAgKDB4MDAwMDQ2KTxicj6goKCgoKCgoCBTZXJ2ZXJIZWxsbyAKICB7PGJyPqCgoKCgoKCgoKCg IAogIHNlcnZlcl92ZXJzaW9uID0gezMsIAogIDF9PGJyPqCgoKCgoKCgoKCgIAogIHJhbmRvbSA9 IHsuLi59PGJyPqCgIDA6IDRiIDA0IDAxIDYwoCBkMSA4NiAwOSA2OaAgMDEgOGQgYzIgCiAgNWWg IDFhIDljIDk5IDE2oCB8IEsuLmAuLi5pLi4uXi4uLi48YnI+oCAxMDogZGUgMGUgYmQgMjegIAog IGI2IGM1IGJlIDU3oCAyMyBmMSAxZSAwM6AgNjkgNDAgNTUgOWSgIHwgCiAgLi4uJiMzOTsuLi5X Iy4uLmlAVS48YnI+oKCgoKCgoKCgoKAgCiAgc2Vzc2lvbiBJRCA9IAogIHs8YnI+oKCgoKCgoKCg oKCgoKCgIAogIGxlbmd0aCA9IAogIDMyPGJyPqCgoKCgoKCgoKCgoKCgoCAKICBjb250ZW50cyA9 IHsuLi59PGJyPqCgIDA6IDY3IDY2IGM2IDdmoCBmNyBhYyBkNiA5OKAgNDUgZjIgCiAgNmQgOWag IGM2IDg0IGUxIGRmoCB8IGdmLiAuLi4uRS5tLi4uLi48YnI+oCAxMDogZmYgZmYgYzAgCiAgODeg IGQ4IGU5IDk3IGY5oCBmNiAzNyA4YiA2ZaAgMDkgZDkgMmIgMjWgIHwgCiAgLi4uLi4uLi4uNy5u Li4rJTxicj6goKCgoKCgoKCgoCAKICB9PGJyPqCgoKCgoKCgoKCgIAogIGNpcGhlcl9zdWl0ZSA9 ICgweDAwMDQpIAogIFNTTDMvUlNBL1JDNC0xMjgvTUQ1PGJyPqCgoKCgoKCgoKCgIAogIGNvbXBy ZXNzaW9uIG1ldGhvZCA9IDAwPGJyPqCgoKCgoKCgIAogIH08YnI+oKAgMDogMGIgMDAgMDcgCiAg MTigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIAogIHwgLi4uLjxicj6g oKCgoCB0eXBlID0gMTEgCiAgKGNlcnRpZmljYXRlKTxicj6goKCgoCBsZW5ndGggPSAxODE2IAog ICgweDAwMDcxOCk8YnI+oKCgoKCgoKAgCiAgQ2VydGlmaWNhdGVDaGFpbiAKICB7PGJyPqCgoKCg oKCgoKCgIAogIGNoYWlubGVuZ3RoID0gMTgxMyAKICAoMHgwNzE1KTxicj6goKCgoKCgoKCgoCAK ICBDZXJ0aWZpY2F0ZSAKICB7PGJyPqCgoKCgoKCgoKCgoKCgIAogIHNpemUgPSA4OTAgCiAgKDB4 MDM3YSk8YnI+oKCgoKCgoKCgoKCgoKAgCiAgZGF0YSA9IHsgc2F2ZWQgaW4gZmlsZSAmIzM5O2Nl cnQuMDAxJiMzOTsgCiAgfTxicj6goKCgoKCgoKCgoCAKICB9PGJyPqCgoKCgoKCgoKCgIAogIENl cnRpZmljYXRlIAogIHs8YnI+oKCgoKCgoKCgoKCgoKAgCiAgc2l6ZSA9IDkxNyAKICAoMHgwMzk1 KTxicj6goKCgoKCgoKCgoKCgoCAKICBkYXRhID0geyBzYXZlZCBpbiBmaWxlICYjMzk7Y2VydC4w MDImIzM5OyAKICB9PGJyPqCgoKCgoKCgoKCgIAogIH08YnI+oKCgoKCgoKAgfTxicj6goCAwOiAw ZSAKICAwMCAwMCAKICAwMKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAg CiAgfCAuLi4uPGJyPqCgoKCgIHR5cGUgPSAxNCAKICAoc2VydmVyX2hlbGxvX2RvbmUpPGJyPqCg oKCgIGxlbmd0aCA9IDAgCiAgKDB4MDAwMDAwKTxicj6goCB9PGJyPn08YnI+Jmx0Oy9mb250Jmd0 O108YnI+LS0mZ3Q7IFs8YnI+Jmx0O2ZvbnQgCiAgY29sb3I9Ymx1ZSZndDsoMzEwIGJ5dGVzIG9m IDI2Miwgd2l0aCA0MyBsZWZ0IG92ZXIpPGJyPlNTTFJlY29yZCB7IFtXZWQgTm92IDE4IAogIDA5 OjE0OjU2IDIwMDldPGJyPqCgIDA6IDE2IDAzIDAxIDAxoCAKICAwNqCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi4uPGJyPqCgIHR5cGWgoKAgPSAyMiAKICAoaGFu ZHNoYWtlKTxicj6goCB2ZXJzaW9uID0geyAzLDEgfTxicj6goCBsZW5ndGigID0gCiAgMjYyICgw eDEwNik8YnI+oKAgaGFuZHNoYWtlIHs8YnI+oKAgMDogMTAgMDAgMDEgCiAgMDKgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIAogIHwgLi4uLjxicj6goKCgoCB0eXBlID0g MTYgCiAgKGNsaWVudF9rZXlfZXhjaGFuZ2UpPGJyPqCgoKCgIGxlbmd0aCA9IDI1OCAKICAoMHgw MDAxMDIpPGJyPqCgoKCgoKCgIAogIENsaWVudEtleUV4Y2hhbmdlIAogIHs8YnI+oKCgoKCgoKCg oKAgCiAgbWVzc2FnZSA9IHsuLi59PGJyPqCgoKCgoKCgIAogIH08YnI+oKAgfTxicj59PGJyPigz MTAgYnl0ZXMgb2YgMSwgd2l0aCAzNyBsZWZ0IG92ZXIpPGJyPlNTTFJlY29yZCB7IAogIFtXZWQg Tm92IDE4IDA5OjE0OjU2IDIwMDldPGJyPqCgIDA6IDE0IDAzIDAxIDAwoCAKICAwMaCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi4uPGJyPqCgIHR5cGWgoKAgPSAy MCAKICAoY2hhbmdlX2NpcGhlcl9zcGVjKTxicj6goCB2ZXJzaW9uID0geyAzLDEgfTxicj6goCAK ICBsZW5ndGigID0gMSAoMHgxKTxicj6goCAwOiAKICAwMaCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgCiAgfCAuPGJyPn08YnI+KDMxMCBieXRlcyBvZiAz Mik8YnI+U1NMUmVjb3JkIHsgW1dlZCBOb3YgMTggMDk6MTQ6NTYgCiAgMjAwOV08YnI+oKAgMDog MTYgMDMgMDEgMDCgIAogIDIwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIAog IHwgLi4uLiA8YnI+oKAgdHlwZaCgoCA9IDIyIAogIChoYW5kc2hha2UpPGJyPqCgIHZlcnNpb24g PSB7IDMsMSB9PGJyPqCgIGxlbmd0aKAgPSAKICAzMiAKICAoMHgyMCk8YnI+oKCgoKCgoKCgoKAg CiAgJmx0OyBlbmNyeXB0ZWQgJmd0Ozxicj59PGJyPiZsdDsvZm9udCZndDtdPGJyPnNzbHRhcDog RXJyb3IgLTU5NjE6IFRDUCAKICBjb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIuOiBlcnJvciBvbiBz ZXJ2ZXItc2lkZSBzb2NrZXQuPGJyPkNvbm5lY3Rpb24gMSAKICBDb21wbGV0ZSBbV2VkIE5vdiAx OCAwOToxNDo1NiAyMDA5XTxicj4mbHQ7cCZndDsmbHQ7SFImZ3Q7Jmx0O0gyJmd0O0Nvbm5lY3Rp b24gCiAgIzIgW1dlZCBOb3YgMTggMDk6MTQ6NTYgMjAwOV08YnI+Jmx0Oy9IMiZndDtDb25uZWN0 ZWQgdG8gCiAgbG9jYWxob3N0LmxvY2FsZG9tYWluOjk1NDU8YnI+LS0mZ3Q7IFs8YnI+Jmx0O2Zv bnQgY29sb3I9Ymx1ZSZndDtyZWNvcmRMZW4gPSAKICA4MSBieXRlczxicj4oODEgYnl0ZXMgb2Yg ODEpPGJyPqBbV2VkIE5vdiAxOCAwOToxNDo1NiAyMDA5XSBbc3NsMl2gIAogIENsaWVudEhlbGxv VjIgCiAgezxicj6goKCgoKCgoKCgIHZlcnNpb24gPSAKICB7MHgwMywgMHgwMH08YnI+oKCgoKCg oKCgoCAKICBjaXBoZXItc3BlY3MtbGVuZ3RoID0gNTQgCiAgKDB4MzYpPGJyPqCgoKCgoKCgoKAg CiAgc2lkLWxlbmd0aCA9IDAgCiAgKDB4MDApPGJyPqCgoKCgoKCgoKAgCiAgY2hhbGxlbmdlLWxl bmd0aCA9IDE2IAogICgweDEwKTxicj6goKCgoKCgoKCgIAogIGNpcGhlci1zdWl0ZXMgPSB7IAog IDxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAwMDg4KSAKICBUTFMvREhFLVJTQS9DQU1FTExJ QTI1Ni1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDAwODcpIAogIFRMUy9ESEUt RFNTL0NBTUVMTElBMjU2LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAwMDAzOSkg CiAgVExTL0RIRS1SU0EvQUVTMjU2LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAogICgweDAw MDAzOCkgCiAgVExTL0RIRS1EU1MvQUVTMjU2LUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCgoKCgIAog ICgweDAwMDA4NCkgCiAgVExTL1JTQS9DQU1FTExJQTI1Ni1DQkMvU0hBPGJyPqCgoKCgoKCgoKCg oKCgoCAKICAoMHgwMDAwMzUpIAogIFRMUy9SU0EvQUVTMjU2LUNCQy9TSEE8YnI+oKCgoKCgoKCg oKCgoKCgIAogICgweDAwMDA0NSkgCiAgVExTL0RIRS1SU0EvQ0FNRUxMSUExMjgtQ0JDL1NIQTxi cj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAwMDQ0KSAKICBUTFMvREhFLURTUy9DQU1FTExJQTEy OC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDAwMzMpIAogIFRMUy9ESEUtUlNB L0FFUzEyOC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDAwMzIpIAogIFRMUy9E SEUtRFNTL0FFUzEyOC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDAwNDEpIAog IFRMUy9SU0EvQ0FNRUxMSUExMjgtQ0JDL1NIQTxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAw MDA0KSAKICBTU0wzL1JTQS9SQzQtMTI4L01ENTxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAw MDA1KSAKICBTU0wzL1JTQS9SQzQtMTI4L1NIQTxicj6goKCgoKCgoKCgoKCgoKAgCiAgKDB4MDAw MDJmKSAKICBUTFMvUlNBL0FFUzEyOC1DQkMvU0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgw MDAwMTYpIAogIFNTTDMvREhFLVJTQS8zREVTMTkyRURFLUNCQy9TSEE8YnI+oKCgoKCgoKCgoKCg oKCgIAogICgweDAwMDAxMykgCiAgU1NMMy9ESEUtRFNTL0RFUzE5MkVERTNDQkMvU0hBPGJyPqCg oKCgoKCgoKCgoKCgoCAKICAoMHgwMGZlZmYpIAogIFNTTDMvUlNBLUZJUFMvM0RFU0VERS1DQkMv U0hBPGJyPqCgoKCgoKCgoKCgoKCgoCAKICAoMHgwMDAwMGEpIAogIFNTTDMvUlNBLzNERVMxOTJF REUtQ0JDL1NIQTxicj6goKCgoKCgoKCgoKCgoKAgCiAgfTxicj6goKCgoKCgoKCgIHNlc3Npb24t aWQgPSAKICB7IH08YnI+oKCgoKCgoKCgoCBjaGFsbGVuZ2UgCiAgPSB7IDB4ZGUxYiAweGFlYTIg MHgyNjJhIDB4YWFlMyAweDUxMzUgMHg0ZjZhIDB4NTc0MiAweGY3MTYgCiAgfTxicj59PGJyPiZs dDsvZm9udCZndDtdPGJyPiZsdDstLSBbPGJyPiZsdDtmb250IGNvbG9yPXJlZCZndDsoMTkwMyBi eXRlcyBvZiAKICAxODk4KTxicj5TU0xSZWNvcmQgeyBbV2VkIE5vdiAxOCAwOToxNDo1NiAyMDA5 XTxicj6goCAwOiAxNiAwMyAwMCAKICAwN6AgCiAgNmGgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKAgCiAgfCAuLi4uajxicj6goCB0eXBloKCgID0gMjIgCiAgKGhhbmRzaGFrZSk8 YnI+oKAgdmVyc2lvbiA9IHsgMywwIH08YnI+oKAgbGVuZ3RooCA9IAogIDE4OTggKDB4NzZhKTxi cj6goCBoYW5kc2hha2Ugezxicj6goCAwOiAwMiAwMCAwMCAKICA0NqCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgCiAgfCAuLi5GPGJyPqCgoKCgIHR5cGUgPSAyIAogIChz ZXJ2ZXJfaGVsbG8pPGJyPqCgoKCgIGxlbmd0aCA9IDcwIAogICgweDAwMDA0Nik8YnI+oKCgoKCg oKAgU2VydmVySGVsbG8gCiAgezxicj6goKCgoKCgoKCgoCAKICBzZXJ2ZXJfdmVyc2lvbiA9IHsz LCAKICAwfTxicj6goKCgoKCgoKCgoCAKICByYW5kb20gPSB7Li4ufTxicj6goCAwOiA0YiAwNCAw MSA2MKAgNTUgY2UgODIgMzOgIGFiIGQ3IGRhIAogIDdmoCBiYyA3NCBlZCBjYaAgfCBLLi5gVS4u My4uLiAudC4uPGJyPqAgMTA6IDFlIGYzIDk1IDI2oCAKICAyMSBmYSBkYiBjZaAgODMgOTQgMjQg MGGgIGJjIDRlIDg5IDUxoCB8IAogIC4uLiZhbXA7YW1wOyEuLi4uLiQuLk4uUTxicj6goKCgoKCg oKCgoCAKICBzZXNzaW9uIElEID0gCiAgezxicj6goKCgoKCgoKCgoKCgoKAgCiAgbGVuZ3RoID0g CiAgMzI8YnI+oKCgoKCgoKCgoKCgoKCgIAogIGNvbnRlbnRzID0gey4uLn08YnI+oKAgMDogNjcg NjYgNTAgYmGgIDE5IDZkIGQ5IDM4oCA3ZCA4NiAKICBhOSBlMKAgNDMgY2IgNTcgMGKgIHwgZ2ZQ Li5tLjh9Li4uQy5XLjxicj6gIDEwOiAxOSBkNSBhNyAKICBlMKAgOTAgOTkgZTUgNzigIDAzIGY2 IDU1IDI2oCBjNCBmMSBiYyAwM6AgfCAKICAuLi4uLi4ueC4uVSZhbXA7YW1wOy4uLi48YnI+oKCg oKCgoKCgoKAgCiAgfTxicj6goKCgoKCgoKCgoCAKICBjaXBoZXJfc3VpdGUgPSAoMHgwMDA0KSAK ICBTU0wzL1JTQS9SQzQtMTI4L01ENTxicj6goKCgoKCgoKCgoCAKICBjb21wcmVzc2lvbiBtZXRo b2QgPSAwMDxicj6goKCgoKCgoCAKICB9PGJyPqCgIDA6IDBiIDAwIDA3IAogIDE4oKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi48YnI+oKCgoKAgdHlwZSA9 IDExIAogIChjZXJ0aWZpY2F0ZSk8YnI+oKCgoKAgbGVuZ3RoID0gMTgxNiAKICAoMHgwMDA3MTgp PGJyPqCgoKCgoKCgIAogIENlcnRpZmljYXRlQ2hhaW4gCiAgezxicj6goKCgoKCgoKCgoCAKICBj aGFpbmxlbmd0aCA9IDE4MTMgCiAgKDB4MDcxNSk8YnI+oKCgoKCgoKCgoKAgCiAgQ2VydGlmaWNh dGUgCiAgezxicj6goKCgoKCgoKCgoKCgoCAKICBzaXplID0gODkwIAogICgweDAzN2EpPGJyPqCg oKCgoKCgoKCgoKCgIAogIGRhdGEgPSB7IHNhdmVkIGluIGZpbGUgJiMzOTtjZXJ0LjAwMyYjMzk7 IAogIH08YnI+oKCgoKCgoKCgoKAgCiAgfTxicj6goKCgoKCgoKCgoCAKICBDZXJ0aWZpY2F0ZSAK ICB7PGJyPqCgoKCgoKCgoKCgoKCgIAogIHNpemUgPSA5MTcgCiAgKDB4MDM5NSk8YnI+oKCgoKCg oKCgoKCgoKAgCiAgZGF0YSA9IHsgc2F2ZWQgaW4gZmlsZSAmIzM5O2NlcnQuMDA0JiMzOTsgCiAg fTxicj6goKCgoKCgoKCgoCAKICB9PGJyPqCgoKCgoKCgIH08YnI+oKAgMDogMGUgCiAgMDAgMDAg CiAgMDCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIAogIHwgLi4uLjxi cj6goKCgoCB0eXBlID0gMTQgCiAgKHNlcnZlcl9oZWxsb19kb25lKTxicj6goKCgoCBsZW5ndGgg PSAwIAogICgweDAwMDAwMCk8YnI+oKAgfTxicj59PGJyPiZsdDsvZm9udCZndDtdPGJyPi0tJmd0 OyBbPGJyPiZsdDtmb250IAogIGNvbG9yPWJsdWUmZ3Q7KDMzMiBieXRlcyBvZiAyNjAsIHdpdGgg NjcgbGVmdCBvdmVyKTxicj5TU0xSZWNvcmQgeyBbV2VkIE5vdiAxOCAKICAwOToxNDo1NiAyMDA5 XTxicj6goCAwOiAxNiAwMyAwMCAwMaAgCiAgMDSgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKAgCiAgfCAuLi4uLjxicj6goCB0eXBloKCgID0gMjIgCiAgKGhhbmRzaGFrZSk8YnI+ oKAgdmVyc2lvbiA9IHsgMywwIH08YnI+oKAgbGVuZ3RooCA9IAogIDI2MCAoMHgxMDQpPGJyPqCg IGhhbmRzaGFrZSB7PGJyPqCgIDA6IDEwIDAwIDAxIAogIDAwoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi48YnI+oKCgoKAgdHlwZSA9IDE2IAogIChjbGll bnRfa2V5X2V4Y2hhbmdlKTxicj6goKCgoCBsZW5ndGggPSAyNTYgCiAgKDB4MDAwMTAwKTxicj6g oKCgoKCgoCAKICBDbGllbnRLZXlFeGNoYW5nZSAKICB7PGJyPqCgoKCgoKCgoKCgIAogIG1lc3Nh Z2UgPSB7Li4ufTxicj6goKCgoKCgoCAKICB9PGJyPqCgIH08YnI+fTxicj4oMzMyIGJ5dGVzIG9m IDEsIHdpdGggNjEgbGVmdCBvdmVyKTxicj5TU0xSZWNvcmQgeyAKICBbV2VkIE5vdiAxOCAwOTox NDo1NiAyMDA5XTxicj6goCAwOiAxNCAwMyAwMCAwMKAgCiAgMDGgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKAgCiAgfCAuLi4uLjxicj6goCB0eXBloKCgID0gMjAgCiAgKGNoYW5n ZV9jaXBoZXJfc3BlYyk8YnI+oKAgdmVyc2lvbiA9IHsgMywwIH08YnI+oKAgCiAgbGVuZ3RooCA9 IDEgKDB4MSk8YnI+oKAgMDogCiAgMDGgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgIAogIHwgLjxicj59PGJyPigzMzIgYnl0ZXMgb2YgNTYpPGJyPlNTTFJl Y29yZCB7IFtXZWQgTm92IDE4IDA5OjE0OjU2IAogIDIwMDldPGJyPqCgIDA6IDE2IDAzIDAwIDAw oCAKICAzOKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAKICB8IC4uLi44PGJy PqCgIHR5cGWgoKAgPSAyMiAKICAoaGFuZHNoYWtlKTxicj6goCB2ZXJzaW9uID0geyAzLDAgfTxi cj6goCBsZW5ndGigID0gCiAgNTYgCiAgKDB4MzgpPGJyPqCgoKCgoKCgoKCgIAogICZsdDsgZW5j cnlwdGVkICZndDs8YnI+fTxicj4mbHQ7L2ZvbnQmZ3Q7XTxicj5zc2x0YXA6IEVycm9yIC01OTYx OiBUQ1AgCiAgY29ubmVjdGlvbiByZXNldCBieSBwZWVyLjogZXJyb3Igb24gc2VydmVyLXNpZGUg c29ja2V0Ljxicj5Db25uZWN0aW9uIDIgCiAgQ29tcGxldGUgW1dlZCBOb3YgMTggMDk6MTQ6NTYg MjAwOV0KICA8ZGl2PgogIDxkaXY+PC9kaXY+CiAgPGRpdj48YnI+PGJyPjxicj48YnI+CiAgPGRp diBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFR1ZSwgTm92IDE3LCAyMDA5IGF0IDc6MjEgUE0sIENo YW5kcmFzZWthciBLYW5uYW4gCiAgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86 Y2thbm5hbkByZWRoYXQuY29tIiB0YXJnZXQ9Il9ibGFuayI+Y2thbm5hbkByZWRoYXQuY29tPC9h PiZndDs8L3NwYW4+IHdyb3RlOjxicj4KICA8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUi IHN0eWxlPSJib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTsgbWFyZ2lu OiAwcHQgMHB0IDBwdCAwLjhleDsgcGFkZGluZy1sZWZ0OiAxZXg7Ij4KICAgIDxkaXYgdGV4dD0i IzAwMDAwMCIgYmdjb2xvcj0iI2ZmZmZmZiI+CiAgICA8ZGl2Pk9uIDExLzE3LzIwMDkgMDE6MDkg UE0sIEpvaG4gRG9yb3Zza2kgd3JvdGU6IAogICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+SXQg d2FzIG5vdCBhIHR5cG8uIEkgZGlkIHVzZSB0aGUgcG9ydCBudW1iZXIgCiAgICAgIDk1NDUuPGJy PjwvYmxvY2txdW90ZT48YnI+PC9kaXY+T2suIG9uZSBpZGVhIHdvdWxkIGJlIHRvIHJ1biB0aGUg dXRpbGl0eSAKICAgICZxdW90O3NzbHRhcCZxdW90OyBhcyBhIHByb3h5PGJyPmFuZCB1c2luZyB5 b3VyIGJyb3dzZXIgdG8gY29ubmVjdCB0byB0aGUgJnF1b3Q7c3NsdGFwJnF1b3Q7IAogICAgcG9y dCBhbmQ8YnI+cGFzdGluZyB0aGUgb3V0cHV0IGhlcmUgc28gZm9sa3MgY2FuIHNlZSB3aGF0JiMz OTtzIAogICAgaGFwcGVuaW5nPGJyPmR1cmluZyB0aGUgU1NMIGhhbmRzaGFrZS48YnI+PGEgaHJl Zj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9wcm9qZWN0cy9zZWN1cml0eS9wa2kvbnNzL3Rvb2xz L3NzbHRhcC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9wcm9q ZWN0cy9zZWN1cml0eS9wa2kvbnNzL3Rvb2xzL3NzbHRhcC5odG1sPC9hPjxicj48YnI+PGJyPgpP biAKICAgIGEgRmVkb3JhIDEwIHN5c3RlbSwgaXRzIHBhY2thZ2VkIHdpdGggbnNzLXRvb2xzIHJw bS48YnI+PGJyPlJ1biBzc2x0YXAgbGlrZSAKICAgIHRoaXMuLi48YnI+PGJyPnNzbHRhcCAtc2Z4 bCBDQV9IT1NUTkFNRTpDQV9QT1JUPGJyPjxicj5pbiB5b3VyIGNhc2UsIGl0IHdpbGwgCiAgICBi ZSA8YnI+PGJyPnNzbHRhcCAtc2Z4bCBsb2NhbGhvc3Q6OTU0NTxicj48YnI+VGhlbiB1c2UgYSBi cm93c2VyIGFuZCBjb25uZWN0IAogICAgdG8gc3NsdGFwLiBzc2x0YXA8YnI+bGlzdGVucyBvbiBw b3J0IDE5MjQuIFNvIG9uIHRoZSBicm93c2VyIAogICAgdHlwZS4uPGJyPjxicj6gPGEgaHJlZj0i aHR0cHM6Ly9sb2NhbGhvc3QubG9jYWxkb21haW46MTkyNCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vbG9jYWxob3N0LmxvY2FsZG9tYWluOjE5MjQ8L2E+PGJyPjxicj48YnI+c3NsdGFwIHdpbGwg CiAgICBjYXB0dXJlIHRoZSByZXN1bHRzIG9mIHRoZSBzc2wgaGFuZHNoYWtlLiA8YnI+PGJyPkNv cHkgYW5kIHBhc3RlIGl0IGhlcmUgc28gCiAgICB3ZSBjYW4gdGVsbCB3aGF0JiMzOTtzIGhhcHBl bmluZzxicj5kdXJpbmcgdGhhdCBwaGFzZSB3aGlsZSB5b3UgZ2V0IHRoZSBiYWQgbWFjIAogICAg YWxlcnQuPGJyPjxicj5UaGFua3MsPGJyPi0tQ2hhbmRyYQogICAgPGRpdj4KICAgIDxkaXY+PC9k aXY+CiAgICA8ZGl2Pjxicj48YnI+PGJyPjxicj4KICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUi Pjxicj48YnI+Sm9objxicj48YnI+CiAgICAgIDxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBU dWUsIE5vdiAxNywgMjAwOSBhdCAzOjUxIFBNLCBBZGV3dW1pLCAKICAgICAgSnVsaXVzLXA5OTM3 MyA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzpKdWxpdXMuQWRld3VtaUBnZGM0 cy5jb20iIHRhcmdldD0iX2JsYW5rIj5KdWxpdXMuQWRld3VtaUBnZGM0cy5jb208L2E+Jmd0Ozwv c3Bhbj4gd3JvdGU6PGJyPgogICAgICA8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0 eWxlPSJib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTsgbWFyZ2luOiAw cHQgMHB0IDBwdCAwLjhleDsgcGFkZGluZy1sZWZ0OiAxZXg7Ij48YnI+VW5sZXNzIAogICAgICAg IGl0JiMzOTtzIGEgdHlwbyBvbiB5b3VyIHBhcnQsIHRoZSB0d28gcG9ydCBudW1iZXJzIGFyZSBk aWZmZXJlbnQuLi48YnI+Q291bGQgCiAgICAgICAgdGhhdCBiZSB0aGUgcHJvYmxlbT88YnI+ODQ0 NSCgdnMgOTU0NTxicj48YnI+RnJvbTogSnVsaXVzIAogICAgICAgIEFkZXd1bWk8YnI+QEdEQzRT LmNvbTxicj5QaDo0ODAtNDQxLTY3Njg8YnI+Q29udHJhY3QgQ29ycDpNVFNJPGJyPgogICAgICAg IDxkaXY+PGJyPjxicj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLTxicj5Gcm9tOiA8YSBocmVm PSJtYWlsdG86cGtpLXVzZXJzLWJvdW5jZXNAcmVkaGF0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnBr aS11c2Vycy1ib3VuY2VzQHJlZGhhdC5jb208L2E+IFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOnBr aS11c2Vycy1ib3VuY2VzQHJlZGhhdC5jb20iIHRhcmdldD0iX2JsYW5rIj5wa2ktdXNlcnMtYm91 bmNlc0ByZWRoYXQuY29tPC9hPl08YnI+Ck9uIEJlaGFsZiBPZiAKICAgICAgICBDaHJpc3RpbmEg RnU8YnI+U2VudDogVHVlc2RheSwgTm92ZW1iZXIgMTcsIDIwMDkgMTI6NTYgUE08YnI+VG86IDxh IGhyZWY9Im1haWx0bzpwa2ktdXNlcnNAcmVkaGF0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnBraS11 c2Vyc0ByZWRoYXQuY29tPC9hPjxicj48L2Rpdj4KICAgICAgICA8ZGl2PgogICAgICAgIDxkaXY+ Q2M6IDxhIGhyZWY9Im1haWx0bzpqb2huZG9yb3Zza2lAZ29vZ2xlbWFpbC5jb20iIHRhcmdldD0i X2JsYW5rIj5qb2huZG9yb3Zza2lAZ29vZ2xlbWFpbC5jb208L2E+PGJyPlN1YmplY3Q6IFtQa2kt dXNlcnNdIAogICAgICAgIChmb3J3YXJkZWQpIEhlbHAgbmVlZGVkIG9uIGRvZ3RhZzxicj48YnI+ SSBtaWdodCBoYXZlIG1lc3NlZCB1cCB3aGVuIAogICAgICAgIG1hbmFnaW5nIHBraS11c2VycyBh bmQgdGhpcyBkaWQgbm90IGNvbWU8YnI+dGhyb3VnaC4goEhlbmNlIHRoZSAKICAgICAgICBmb3J3 YXJkLjxicj5DaHJpc3RpbmE8YnI+PGJyPlN1YmplY3Q6PGJyPkhlbHAgbmVlZGVkIG9uIAogICAg ICAgIGRvZ3RhZzxicj5Gcm9tOjxicj5Kb2huIERvcm92c2tpICZsdDs8YSBocmVmPSJtYWlsdG86 am9obmRvcm92c2tpQGdvb2dsZW1haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+am9obmRvcm92c2tp QGdvb2dsZW1haWwuY29tPC9hPiZndDs8YnI+RGF0ZTo8YnI+VHVlLCAxNyAKICAgICAgICBOb3Yg MjAwOSAxMDo1ODoxOCAtMDUwMDxicj48YnI+VG86PGJyPjxhIGhyZWY9Im1haWx0bzpwa2ktdXNl cnNAcmVkaGF0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnBraS11c2Vyc0ByZWRoYXQuY29tPC9hPjxi cj48YnI+PGJyPkhpLDxicj48YnI+SSBqdXN0IAogICAgICAgIGluc3RhbGxlZCBhIGRvZ3RhZyAo MS4yLjApIGluc3RhbmNlIG9uIG15IEZlZG9yYSAxMCBzeXN0ZW0uPGJyPkkgdXNlZCBhIAogICAg ICAgIFNhZmVOZXQgUHJvdGVjdFNlcnZlciBHb2xkIEhTTSBhcyBrZXlzdG9yZS48YnI+VGhlIGRv Z3RhZyBzeXN0ZW0gCiAgICAgICAgaW5zdGFsbGF0aW9uIGFuZCBjb25maWd1cmF0aW9uIHdlcmUg ZmluZS4gTm8gZXJyb3IgCiAgICAgICAgd2FzPGJyPnJlcG9ydGVkLjxicj5BbGwga2V5cyBhbmQg Y2VydGlmaWNhdGVzIHdlcmUgZ2VuZXJhdGVkIGluc2lkZSB0aGUgCiAgICAgICAgSFNNLjxicj48 YnI+QnV0IHdoZW4gSSB0cmllZCB0byBhY2Nlc3MgdGhlIHNlY3VyZSBhZG1pbiBpbnRlcmZhY2Ug CiAgICAgICAgYXQ8YnI+oCCgIDxhIGhyZWY9Imh0dHBzOi8vbG9jYWxob3N0OmxvY2FsZG9tYWlu Ojk1NDUiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xvY2FsaG9zdDpsb2NhbGRvbWFpbjo5NTQ1 PC9hPjxicj5JIGdvdCBlcnJvciAKICAgICAgICBtZXNzYWdlOjxicj6gIKBTZWN1cmUgQ29ubmVj dGlvbiBGYWlsZWQ8YnI+oCCgQW4gCiAgICAgICAgZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGEgY29u bmVjdGlvbiB0byAKICAgICAgICBsb2NhbGhvc3QubG9jYWxkb21haW46ODQ0NTxicj6gIKBTU0wg cGVlciByZXBvcnRzIGluY29ycmVjdCAKICAgICAgICBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENv ZGUuPGJyPqAgoChFcnJvciBjb2RlOiAKICAgICAgICBzc2xfZXJyb3JfYmFkX21hY19hbGVydCk8 YnI+PGJyPkkgY2hlY2tlZCB0aGUgc2VydmVyIGNlcnRpZmljYXRlICh2aWV3ZWQgCiAgICAgICAg aXQgd2l0aCBJRSBvbiBhIFdpbmRvd3MgYm94KS48YnI+SXQgc2VlbXMgZmluZS48YnI+PGJyPkRv ZXMgYW55IGJvZHkgCiAgICAgICAga25vdyB3aGF0IGlzIHdyb25nIGFuZCBob3cgY2FuIEkgZml4 IAogICAgICAgIGl0Pzxicj48YnI+VGhhbmtzLDxicj48YnI+Sm9objxicj48YnI+X19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+UGtpLXVzZXJzIAogICAg ICAgIG1haWxpbmcgbGlzdDxicj48YSBocmVmPSJtYWlsdG86UGtpLXVzZXJzQHJlZGhhdC5jb20i IHRhcmdldD0iX2JsYW5rIj5Qa2ktdXNlcnNAcmVkaGF0LmNvbTwvYT48YnI+PGEgaHJlZj0iaHR0 cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL3BraS11c2VycyIgdGFyZ2V0PSJf YmxhbmsiPmh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9wa2ktdXNlcnM8 L2E+PGJyPgo8L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjxwcmU+PGZpZWxkc2V0 PjwvZmllbGRzZXQ+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClBraS11c2VycyBtYWlsaW5nIGxpc3QKPGEgaHJlZj0ibWFpbHRvOlBraS11c2Vyc0ByZWRo YXQuY29tIiB0YXJnZXQ9Il9ibGFuayI+UGtpLXVzZXJzQHJlZGhhdC5jb208L2E+CjxhIGhyZWY9 Imh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9wa2ktdXNlcnMiIHRhcmdl dD0iX2JsYW5rIj5odHRwczovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vbGlzdGluZm8vcGtpLXVz ZXJzPC9hPgogIDwvcHJlPjwvYmxvY2txdW90ZT48YnI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyPl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPlBraS11c2Vy cyAKICAgIG1haWxpbmcgbGlzdDxicj48YSBocmVmPSJtYWlsdG86UGtpLXVzZXJzQHJlZGhhdC5j b20iIHRhcmdldD0iX2JsYW5rIj5Qa2ktdXNlcnNAcmVkaGF0LmNvbTwvYT48YnI+PGEgaHJlZj0i aHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL3BraS11c2VycyIgdGFyZ2V0 PSJfYmxhbmsiPmh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9wa2ktdXNl cnM8L2E+PGJyPgo8YnI+PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PC9kaXY+PGJyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8YnI+X19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+ClBraS11c2VycyBtYWlsaW5nIGxpc3Q8 YnI+CjxhIGhyZWY9Im1haWx0bzpQa2ktdXNlcnNAcmVkaGF0LmNvbSI+UGtpLXVzZXJzQHJlZGhh dC5jb208L2E+PGJyPgo8YSBocmVmPSJodHRwczovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vbGlz dGluZm8vcGtpLXVzZXJzIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cucmVkaGF0LmNvbS9t YWlsbWFuL2xpc3RpbmZvL3BraS11c2VyczwvYT48YnI+Cjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+ PGJyPgo= --===============4559238903088509740==--