From natxo.asenjo at gmail.com Wed Nov 20 19:13:58 2019 Content-Type: multipart/mixed; boundary="===============7987944396640420347==" MIME-Version: 1.0 From: Natxo Asenjo To: freeipa-users at lists.fedorahosted.org Subject: [Freeipa-users] yum update problem Date: Wed, 20 Nov 2019 20:13:18 +0100 Message-ID: --===============7987944396640420347== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable hi, after patching our centos 7 hosts to the latest version today, one of the two replicas is having trouble. [root(a)kdc2 ~]# ipactl status Directory Service: RUNNING krb5kdc Service: STOPPED kadmin Service: STOPPED named Service: STOPPED httpd Service: RUNNING ipa-custodia Service: STOPPED ntpd Service: STOPPED pki-tomcatd Service: RUNNING smb Service: STOPPED winbind Service: STOPPED ipa-otpd Service: STOPPED ipa-dnskeysyncd Service: STOPPED ipa: INFO: The ipactl command was successful and after digging in the logs I come across this in /var/log/ipaupgrade.log: 2019-11-20T18:18:29Z DEBUG stderr=3D 2019-11-20T18:18:31Z INFO Certmonger certificate renewal configuration already up-to-date 2019-11-20T18:18:31Z INFO [Enable PKIX certificate path discovery and validation] 2019-11-20T18:18:31Z DEBUG Loading StateFile from '/var/lib/ipa/sysupgrade/sysupgrade.state' 2019-11-20T18:18:31Z INFO PKIX already enabled 2019-11-20T18:18:31Z INFO [Authorizing RA Agent to modify profiles] 2019-11-20T18:18:31Z INFO [Authorizing RA Agent to manage lightweight CAs] 2019-11-20T18:18:31Z INFO [Ensuring Lightweight CAs container exists in Dogtag database] 2019-11-20T18:18:31Z DEBUG Created connection context.ldap2_139740162547472 2019-11-20T18:18:31Z DEBUG flushing ldapi://%2fvar%2frun%2fslapd-L-DOMAIN-IT.socket from SchemaCache 2019-11-20T18:18:31Z DEBUG retrieving schema for SchemaCache url=3Dldapi://%2fvar%2frun%2fslapd-L-DOMAIN-IT.socket conn=3D 2019-11-20T18:18:31Z DEBUG Destroyed connection context.ldap2_139740162547472 2019-11-20T18:18:31Z INFO [Adding default OCSP URI configuration] 2019-11-20T18:18:31Z INFO [Ensuring CA is using LDAPProfileSubsystem] 2019-11-20T18:18:31Z INFO [Migrating certificate profiles to LDAP] 2019-11-20T18:18:31Z DEBUG Created connection context.ldap2_139740160021648 2019-11-20T18:18:31Z DEBUG flushing ldapi://%2fvar%2frun%2fslapd-L-DOMAIN-IT.socket from SchemaCache 2019-11-20T18:18:31Z DEBUG retrieving schema for SchemaCache url=3Dldapi://%2fvar%2frun%2fslapd-L-DOMAIN-IT.socket conn=3D 2019-11-20T18:18:31Z DEBUG Destroyed connection context.ldap2_139740160021648 2019-11-20T18:18:31Z DEBUG request GET https://kdc2.l.domain.it:8443/ca/rest/account/login 2019-11-20T18:18:31Z DEBUG request body '' 2019-11-20T18:18:31Z DEBUG response status 401 2019-11-20T18:18:31Z DEBUG response headers Server: Apache-Coyote/1.1 Cache-Control: private Expires: Thu, 01 Jan 1970 01:00:00 CET WWW-Authenticate: Basic realm=3D"Certificate Authority" Content-Type: text/html;charset=3Dutf-8 Content-Language: en Content-Length: 951 Date: Wed, 20 Nov 2019 18:18:31 GMT 2019-11-20T18:18:31Z DEBUG response body 'Apache Tomcat/7.0.76 - Error report

HTTP Status 401 -


type Status report

message

description This request requires HTTP authentication.


Apache Tomcat/7.0.76

' 2019-11-20T18:18:31Z ERROR IPA server upgrade failed: Inspect /var/log/ipaupgrade.log and run command ipa-server-upgrade manually. 2019-11-20T18:18:31Z DEBUG File "/usr/lib/python2.7/site-packages/ipapython/admintool.py", line 178, in execute return_value =3D self.run() File "/usr/lib/python2.7/site-packages/ipaserver/install/ipa_server_upgrade.py", line 54, in run server.upgrade() File "/usr/lib/python2.7/site-packages/ipaserver/install/server/upgrade.py", line 2146, in upgrade upgrade_configuration() File "/usr/lib/python2.7/site-packages/ipaserver/install/server/upgrade.py", line 2018, in upgrade_configuration ca_enable_ldap_profile_subsystem(ca) File "/usr/lib/python2.7/site-packages/ipaserver/install/server/upgrade.py", line 406, in ca_enable_ldap_profile_subsystem cainstance.migrate_profiles_to_ldap() File "/usr/lib/python2.7/site-packages/ipaserver/install/cainstance.py", line 2027, in migrate_profiles_to_ldap _create_dogtag_profile(profile_id, profile_data, overwrite=3DFalse) File "/usr/lib/python2.7/site-packages/ipaserver/install/cainstance.py", line 2033, in _create_dogtag_profile with api.Backend.ra_certprofile as profile_api: File "/usr/lib/python2.7/site-packages/ipaserver/plugins/dogtag.py", line 1315, in __enter__ raise errors.RemoteRetrieveError(reason=3D_('Failed to authenticate to = CA REST API')) 2019-11-20T18:18:31Z DEBUG The ipa-server-upgrade command failed, exception: RemoteRetrieveError: Failed to authenticate to CA REST API 2019-11-20T18:18:31Z ERROR Unexpected error - see /var/log/ipaupgrade.log for details: RemoteRetrieveError: Failed to authenticate to CA REST API In this kdc I see these errors in getcert list: Request ID '20190220182014': status: MONITORING ca-error: Invalid cookie: u'' stuck: no key pair storage: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'auditSignin= gCert cert-pki-ca',token=3D'NSS Certificate DB',pin set certificate: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'auditSignin= gCert cert-pki-ca',token=3D'NSS Certificate DB' CA: dogtag-ipa-ca-renew-agent issuer: CN=3DCertificate Authority,O=3DL.DOMAIN.IT subject: CN=3DCA Audit,O=3DL.DOMAIN.IT expires: 2019-12-05 13:58:24 UTC key usage: digitalSignature,nonRepudiation pre-save command: /usr/libexec/ipa/certmonger/stop_pkicad post-save command: /usr/libexec/ipa/certmonger/renew_ca_cert "auditSigningCert cert-pki-ca" track: yes auto-renew: yes Request ID '20190220182015': status: MONITORING ca-error: Invalid cookie: u'' stuck: no key pair storage: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'ocspSigning= Cert cert-pki-ca',token=3D'NSS Certificate DB',pin set certificate: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'ocspSigning= Cert cert-pki-ca',token=3D'NSS Certificate DB' CA: dogtag-ipa-ca-renew-agent issuer: CN=3DCertificate Authority,O=3DL.DOMAIN.IT subject: CN=3DOCSP Subsystem,O=3DL.DOMAIN.IT expires: 2019-12-05 13:58:24 UTC key usage: digitalSignature,nonRepudiation,keyCertSign,cRLSign eku: id-kp-OCSPSigning pre-save command: /usr/libexec/ipa/certmonger/stop_pkicad post-save command: /usr/libexec/ipa/certmonger/renew_ca_cert "ocspSigningCert cert-pki-ca" track: yes auto-renew: yes Request ID '20190220182016': status: MONITORING ca-error: Invalid cookie: u'' stuck: no key pair storage: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'subsystemCe= rt cert-pki-ca',token=3D'NSS Certificate DB',pin set certificate: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'subsystemCe= rt cert-pki-ca',token=3D'NSS Certificate DB' CA: dogtag-ipa-ca-renew-agent issuer: CN=3DCertificate Authority,O=3DL.DOMAIN.IT subject: CN=3DCA Subsystem,O=3DL.DOMAIN.IT expires: 2019-12-05 13:58:24 UTC key usage: digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment eku: id-kp-serverAuth,id-kp-clientAuth pre-save command: /usr/libexec/ipa/certmonger/stop_pkicad post-save command: /usr/libexec/ipa/certmonger/renew_ca_cert "subsystemCert cert-pki-ca" track: yes auto-renew: yes Request ID '20190220182018': status: MONITORING ca-error: Invalid cookie: u'' stuck: no key pair storage: type=3DFILE,location=3D'/var/lib/ipa/ra-agent.key' certificate: type=3DFILE,location=3D'/var/lib/ipa/ra-agent.pem' CA: dogtag-ipa-ca-renew-agent issuer: CN=3DCertificate Authority,O=3DL.DOMAIN.IT subject: CN=3DIPA RA,O=3DL.DOMAIN.IT expires: 2019-12-05 13:58:44 UTC key usage: digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment eku: id-kp-serverAuth,id-kp-clientAuth pre-save command: /usr/libexec/ipa/certmonger/renew_ra_cert_pre post-save command: /usr/libexec/ipa/certmonger/renew_ra_cert track: yes auto-renew: yes Request ID '20190220182019': status: MONITORING ca-error: Server at " https://kdc2.l.domain.it:8443/ca/agent/ca/profileProcess" replied: 1: Invalid Credential. stuck: no key pair storage: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'Server-Cert cert-pki-ca',token=3D'NSS Certificate DB',pin set certificate: type=3DNSSDB,location=3D'/etc/pki/pki-tomcat/alias',nickname=3D'Server-Cert cert-pki-ca',token=3D'NSS Certificate DB' CA: dogtag-ipa-ca-renew-agent issuer: CN=3DCertificate Authority,O=3DL.DOMAIN.IT subject: CN=3Dkdc2.l.domain.it,O=3DL.DOMAIN.IT expires: 2019-12-10 10:57:52 UTC key usage: digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment eku: id-kp-serverAuth,id-kp-clientAuth,id-kp-emailProtection pre-save command: /usr/libexec/ipa/certmonger/stop_pkicad post-save command: /usr/libexec/ipa/certmonger/renew_ca_cert "Server-Cert cert-pki-ca" track: yes auto-renew: yes I still have a working replica, so I could just reinstall and have a working set in a couple of minutes, but I would like to find out what has gone wrong. The systems are running ipa-server-4.6.5-11.el7.centos.3.x86_64 Any help welcome ;-) Thanks, -- Groeten, natxo --===============7987944396640420347== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+PGRpdj48YnI+PC9kaXY+PGRpdj5oaSw8L2Rpdj48ZGl2Pjxicj48L2Rp dj48ZGl2PmFmdGVyIHBhdGNoaW5nIG91ciBjZW50b3MgNyBob3N0cyB0byB0aGUgbGF0ZXN0IHZl cnNpb24gdG9kYXksIG9uZSBvZiB0aGUgdHdvIHJlcGxpY2FzIGlzIGhhdmluZyB0cm91YmxlLjwv ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+W3Jvb3RAa2RjMiB+XSMgaXBhY3RsIHN0YXR1czxicj5E aXJlY3RvcnkgU2VydmljZTogUlVOTklORzxicj5rcmI1a2RjIFNlcnZpY2U6IFNUT1BQRUQ8YnI+ a2FkbWluIFNlcnZpY2U6IFNUT1BQRUQ8YnI+bmFtZWQgU2VydmljZTogU1RPUFBFRDxicj5odHRw ZCBTZXJ2aWNlOiBSVU5OSU5HPGJyPmlwYS1jdXN0b2RpYSBTZXJ2aWNlOiBTVE9QUEVEPGJyPm50 cGQgU2VydmljZTogU1RPUFBFRDxicj5wa2ktdG9tY2F0ZCBTZXJ2aWNlOiBSVU5OSU5HPGJyPnNt YiBTZXJ2aWNlOiBTVE9QUEVEPGJyPndpbmJpbmQgU2VydmljZTogU1RPUFBFRDxicj5pcGEtb3Rw ZCBTZXJ2aWNlOiBTVE9QUEVEPGJyPmlwYS1kbnNrZXlzeW5jZCBTZXJ2aWNlOiBTVE9QUEVEPGJy PmlwYTogSU5GTzogVGhlIGlwYWN0bCBjb21tYW5kIHdhcyBzdWNjZXNzZnVsPC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj5hbmQgYWZ0ZXIgZGlnZ2luZyBpbiB0aGUgbG9ncyBJIGNvbWUgYWNyb3Nz IHRoaXMgaW4gL3Zhci9sb2cvaXBhdXBncmFkZS5sb2c6PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+MjAxOS0xMS0yMFQxODoxODoyOVogREVCVUcgc3RkZXJyPTxicj4yMDE5LTExLTIwVDE4 OjE4OjMxWiBJTkZPIENlcnRtb25nZXIgY2VydGlmaWNhdGUgcmVuZXdhbCBjb25maWd1cmF0aW9u IGFscmVhZHkgdXAtdG8tZGF0ZTxicj4yMDE5LTExLTIwVDE4OjE4OjMxWiBJTkZPIFtFbmFibGUg UEtJWCBjZXJ0aWZpY2F0ZSBwYXRoIGRpc2NvdmVyeSBhbmQgdmFsaWRhdGlvbl08YnI+MjAxOS0x MS0yMFQxODoxODozMVogREVCVUcgTG9hZGluZyBTdGF0ZUZpbGUgZnJvbSAmIzM5Oy92YXIvbGli L2lwYS9zeXN1cGdyYWRlL3N5c3VwZ3JhZGUuc3RhdGUmIzM5Ozxicj4yMDE5LTExLTIwVDE4OjE4 OjMxWiBJTkZPIFBLSVggYWxyZWFkeSBlbmFibGVkPGJyPjIwMTktMTEtMjBUMTg6MTg6MzFaIElO Rk8gW0F1dGhvcml6aW5nIFJBIEFnZW50IHRvIG1vZGlmeSBwcm9maWxlc108YnI+MjAxOS0xMS0y MFQxODoxODozMVogSU5GTyBbQXV0aG9yaXppbmcgUkEgQWdlbnQgdG8gbWFuYWdlIGxpZ2h0d2Vp Z2h0IENBc108YnI+MjAxOS0xMS0yMFQxODoxODozMVogSU5GTyBbRW5zdXJpbmcgTGlnaHR3ZWln aHQgQ0FzIGNvbnRhaW5lciBleGlzdHMgaW4gRG9ndGFnIGRhdGFiYXNlXTxicj4yMDE5LTExLTIw VDE4OjE4OjMxWiBERUJVRyBDcmVhdGVkIGNvbm5lY3Rpb24gY29udGV4dC5sZGFwMl8xMzk3NDAx NjI1NDc0NzI8YnI+MjAxOS0xMS0yMFQxODoxODozMVogREVCVUcgZmx1c2hpbmcgbGRhcGk6Ly8l MmZ2YXIlMmZydW4lMmZzbGFwZC1MLURPTUFJTi1JVC5zb2NrZXQgZnJvbSBTY2hlbWFDYWNoZTxi cj4yMDE5LTExLTIwVDE4OjE4OjMxWiBERUJVRyByZXRyaWV2aW5nIHNjaGVtYSBmb3IgU2NoZW1h Q2FjaGUgdXJsPWxkYXBpOi8vJTJmdmFyJTJmcnVuJTJmc2xhcGQtTC1ET01BSU4tSVQuc29ja2V0 IGNvbm49Jmx0O2xkYXAubGRhcG9iamVjdC5TaW1wbGVMREFQT2JqZWN0IGluc3RhbmNlIGF0IDB4 N2YxN2NjMjRiNjM4Jmd0Ozxicj4yMDE5LTExLTIwVDE4OjE4OjMxWiBERUJVRyBEZXN0cm95ZWQg Y29ubmVjdGlvbiBjb250ZXh0LmxkYXAyXzEzOTc0MDE2MjU0NzQ3Mjxicj4yMDE5LTExLTIwVDE4 OjE4OjMxWiBJTkZPIFtBZGRpbmcgZGVmYXVsdCBPQ1NQIFVSSSBjb25maWd1cmF0aW9uXTxicj4y MDE5LTExLTIwVDE4OjE4OjMxWiBJTkZPIFtFbnN1cmluZyBDQSBpcyB1c2luZyBMREFQUHJvZmls ZVN1YnN5c3RlbV08YnI+MjAxOS0xMS0yMFQxODoxODozMVogSU5GTyBbTWlncmF0aW5nIGNlcnRp ZmljYXRlIHByb2ZpbGVzIHRvIExEQVBdPGJyPjIwMTktMTEtMjBUMTg6MTg6MzFaIERFQlVHIENy ZWF0ZWQgY29ubmVjdGlvbiBjb250ZXh0LmxkYXAyXzEzOTc0MDE2MDAyMTY0ODxicj4yMDE5LTEx LTIwVDE4OjE4OjMxWiBERUJVRyBmbHVzaGluZyBsZGFwaTovLyUyZnZhciUyZnJ1biUyZnNsYXBk LUwtRE9NQUlOLUlULnNvY2tldCBmcm9tIFNjaGVtYUNhY2hlPGJyPjIwMTktMTEtMjBUMTg6MTg6 MzFaIERFQlVHIHJldHJpZXZpbmcgc2NoZW1hIGZvciBTY2hlbWFDYWNoZSB1cmw9bGRhcGk6Ly8l MmZ2YXIlMmZydW4lMmZzbGFwZC1MLURPTUFJTi1JVC5zb2NrZXQgY29ubj0mbHQ7bGRhcC5sZGFw b2JqZWN0LlNpbXBsZUxEQVBPYmplY3QgaW5zdGFuY2UgYXQgMHg3ZjE3Y2MyODliMDAmZ3Q7PGJy PjIwMTktMTEtMjBUMTg6MTg6MzFaIERFQlVHIERlc3Ryb3llZCBjb25uZWN0aW9uIGNvbnRleHQu bGRhcDJfMTM5NzQwMTYwMDIxNjQ4PGJyPjIwMTktMTEtMjBUMTg6MTg6MzFaIERFQlVHIHJlcXVl c3QgR0VUIDxhIGhyZWY9Imh0dHBzOi8va2RjMi5sLmRvbWFpbi5pdDo4NDQzL2NhL3Jlc3QvYWNj b3VudC9sb2dpbiI+aHR0cHM6Ly9rZGMyLmwuZG9tYWluLml0Ojg0NDMvY2EvcmVzdC9hY2NvdW50 L2xvZ2luPC9hPjxicj4yMDE5LTExLTIwVDE4OjE4OjMxWiBERUJVRyByZXF1ZXN0IGJvZHkgJiMz OTsmIzM5Ozxicj4yMDE5LTExLTIwVDE4OjE4OjMxWiBERUJVRyByZXNwb25zZSBzdGF0dXMgNDAx PGJyPjIwMTktMTEtMjBUMTg6MTg6MzFaIERFQlVHIHJlc3BvbnNlIGhlYWRlcnMgU2VydmVyOiBB cGFjaGUtQ295b3RlLzEuMTxicj5DYWNoZS1Db250cm9sOiBwcml2YXRlPGJyPkV4cGlyZXM6IFRo dSwgMDEgSmFuIDE5NzAgMDE6MDA6MDAgQ0VUPGJyPldXVy1BdXRoZW50aWNhdGU6IEJhc2ljIHJl YWxtPSZxdW90O0NlcnRpZmljYXRlIEF1dGhvcml0eSZxdW90Ozxicj5Db250ZW50LVR5cGU6IHRl eHQvaHRtbDtjaGFyc2V0PXV0Zi04PGJyPkNvbnRlbnQtTGFuZ3VhZ2U6IGVuPGJyPkNvbnRlbnQt TGVuZ3RoOiA5NTE8YnI+RGF0ZTogV2VkLCAyMCBOb3YgMjAxOSAxODoxODozMSBHTVQ8YnI+PGJy PjIwMTktMTEtMjBUMTg6MTg6MzFaIERFQlVHIHJlc3BvbnNlIGJvZHkgJiMzOTsmbHQ7aHRtbCZn dDsmbHQ7aGVhZCZndDsmbHQ7dGl0bGUmZ3Q7QXBhY2hlIFRvbWNhdC83LjAuNzYgLSBFcnJvciBy ZXBvcnQmbHQ7L3RpdGxlJmd0OyZsdDtzdHlsZSZndDsmbHQ7IS0tSDEge2ZvbnQtZmFtaWx5OlRh aG9tYSxBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOndoaXRlO2JhY2tncm91bmQtY29sb3I6IzUyNUQ3 Njtmb250LXNpemU6MjJweDt9IEgyIHtmb250LWZhbWlseTpUYWhvbWEsQXJpYWwsc2Fucy1zZXJp Zjtjb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLWNvbG9yOiM1MjVENzY7Zm9udC1zaXplOjE2cHg7fSBI MyB7Zm9udC1mYW1pbHk6VGFob21hLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6d2hpdGU7YmFja2dy b3VuZC1jb2xvcjojNTI1RDc2O2ZvbnQtc2l6ZToxNHB4O30gQk9EWSB7Zm9udC1mYW1pbHk6VGFo b21hLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6YmxhY2s7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTt9 IEIge2ZvbnQtZmFtaWx5OlRhaG9tYSxBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOndoaXRlO2JhY2tn cm91bmQtY29sb3I6IzUyNUQ3Njt9IFAge2ZvbnQtZmFtaWx5OlRhaG9tYSxBcmlhbCxzYW5zLXNl cmlmO2JhY2tncm91bmQ6d2hpdGU7Y29sb3I6YmxhY2s7Zm9udC1zaXplOjEycHg7fUEge2NvbG9y IDogYmxhY2s7fUEubmFtZSB7Y29sb3IgOiBibGFjazt9SFIge2NvbG9yIDogIzUyNUQ3Njt9LS0m Z3Q7Jmx0Oy9zdHlsZSZndDsgJmx0Oy9oZWFkJmd0OyZsdDtib2R5Jmd0OyZsdDtoMSZndDtIVFRQ IFN0YXR1cyA0MDEgLSAmbHQ7L2gxJmd0OyZsdDtIUiBzaXplPSZxdW90OzEmcXVvdDsgbm9zaGFk ZT0mcXVvdDtub3NoYWRlJnF1b3Q7Jmd0OyZsdDtwJmd0OyZsdDtiJmd0O3R5cGUmbHQ7L2ImZ3Q7 IFN0YXR1cyByZXBvcnQmbHQ7L3AmZ3Q7Jmx0O3AmZ3Q7Jmx0O2ImZ3Q7bWVzc2FnZSZsdDsvYiZn dDsgJmx0O3UmZ3Q7Jmx0Oy91Jmd0OyZsdDsvcCZndDsmbHQ7cCZndDsmbHQ7YiZndDtkZXNjcmlw dGlvbiZsdDsvYiZndDsgJmx0O3UmZ3Q7VGhpcyByZXF1ZXN0IHJlcXVpcmVzIEhUVFAgYXV0aGVu dGljYXRpb24uJmx0Oy91Jmd0OyZsdDsvcCZndDsmbHQ7SFIgc2l6ZT0mcXVvdDsxJnF1b3Q7IG5v c2hhZGU9JnF1b3Q7bm9zaGFkZSZxdW90OyZndDsmbHQ7aDMmZ3Q7QXBhY2hlIFRvbWNhdC83LjAu NzYmbHQ7L2gzJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7JiMzOTs8YnI+MjAxOS0xMS0y MFQxODoxODozMVogRVJST1IgSVBBIHNlcnZlciB1cGdyYWRlIGZhaWxlZDogSW5zcGVjdCAvdmFy L2xvZy9pcGF1cGdyYWRlLmxvZyBhbmQgcnVuIGNvbW1hbmQgaXBhLXNlcnZlci11cGdyYWRlIG1h bnVhbGx5Ljxicj4yMDE5LTExLTIwVDE4OjE4OjMxWiBERUJVRyDCoCBGaWxlICZxdW90Oy91c3Iv bGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2lwYXB5dGhvbi9hZG1pbnRvb2wucHkmcXVvdDss IGxpbmUgMTc4LCBpbiBleGVjdXRlPGJyPsKgIMKgIHJldHVybl92YWx1ZSA9IHNlbGYucnVuKCk8 YnI+wqAgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9pcGFzZXJ2 ZXIvaW5zdGFsbC9pcGFfc2VydmVyX3VwZ3JhZGUucHkmcXVvdDssIGxpbmUgNTQsIGluIHJ1bjxi cj7CoCDCoCBzZXJ2ZXIudXBncmFkZSgpPGJyPsKgIEZpbGUgJnF1b3Q7L3Vzci9saWIvcHl0aG9u Mi43L3NpdGUtcGFja2FnZXMvaXBhc2VydmVyL2luc3RhbGwvc2VydmVyL3VwZ3JhZGUucHkmcXVv dDssIGxpbmUgMjE0NiwgaW4gdXBncmFkZTxicj7CoCDCoCB1cGdyYWRlX2NvbmZpZ3VyYXRpb24o KTxicj7CoCBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2lwYXNl cnZlci9pbnN0YWxsL3NlcnZlci91cGdyYWRlLnB5JnF1b3Q7LCBsaW5lIDIwMTgsIGluIHVwZ3Jh ZGVfY29uZmlndXJhdGlvbjxicj7CoCDCoCBjYV9lbmFibGVfbGRhcF9wcm9maWxlX3N1YnN5c3Rl bShjYSk8YnI+wqAgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9p cGFzZXJ2ZXIvaW5zdGFsbC9zZXJ2ZXIvdXBncmFkZS5weSZxdW90OywgbGluZSA0MDYsIGluIGNh X2VuYWJsZV9sZGFwX3Byb2ZpbGVfc3Vic3lzdGVtPGJyPsKgIMKgIGNhaW5zdGFuY2UubWlncmF0 ZV9wcm9maWxlc190b19sZGFwKCk8YnI+wqAgRmlsZSAmcXVvdDsvdXNyL2xpYi9weXRob24yLjcv c2l0ZS1wYWNrYWdlcy9pcGFzZXJ2ZXIvaW5zdGFsbC9jYWluc3RhbmNlLnB5JnF1b3Q7LCBsaW5l IDIwMjcsIGluIG1pZ3JhdGVfcHJvZmlsZXNfdG9fbGRhcDxicj7CoCDCoCBfY3JlYXRlX2RvZ3Rh Z19wcm9maWxlKHByb2ZpbGVfaWQsIHByb2ZpbGVfZGF0YSwgb3ZlcndyaXRlPUZhbHNlKTxicj7C oCBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL2lwYXNlcnZlci9p bnN0YWxsL2NhaW5zdGFuY2UucHkmcXVvdDssIGxpbmUgMjAzMywgaW4gX2NyZWF0ZV9kb2d0YWdf cHJvZmlsZTxicj7CoCDCoCB3aXRoIGFwaS5CYWNrZW5kLnJhX2NlcnRwcm9maWxlIGFzIHByb2Zp bGVfYXBpOjxicj7CoCBGaWxlICZxdW90Oy91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2Vz L2lwYXNlcnZlci9wbHVnaW5zL2RvZ3RhZy5weSZxdW90OywgbGluZSAxMzE1LCBpbiBfX2VudGVy X188YnI+wqAgwqAgcmFpc2UgZXJyb3JzLlJlbW90ZVJldHJpZXZlRXJyb3IocmVhc29uPV8oJiMz OTtGYWlsZWQgdG8gYXV0aGVudGljYXRlIHRvIENBIFJFU1QgQVBJJiMzOTspKTxicj48YnI+MjAx OS0xMS0yMFQxODoxODozMVogREVCVUcgVGhlIGlwYS1zZXJ2ZXItdXBncmFkZSBjb21tYW5kIGZh aWxlZCwgZXhjZXB0aW9uOiBSZW1vdGVSZXRyaWV2ZUVycm9yOiBGYWlsZWQgdG8gYXV0aGVudGlj YXRlIHRvIENBIFJFU1QgQVBJPGJyPjIwMTktMTEtMjBUMTg6MTg6MzFaIEVSUk9SIFVuZXhwZWN0 ZWQgZXJyb3IgLSBzZWUgL3Zhci9sb2cvaXBhdXBncmFkZS5sb2cgZm9yIGRldGFpbHM6PGJyPlJl bW90ZVJldHJpZXZlRXJyb3I6IEZhaWxlZCB0byBhdXRoZW50aWNhdGUgdG8gQ0EgUkVTVCBBUEk8 L2Rpdj48ZGl2PjxkaXY+PGRpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pklu IHRoaXMga2RjIEkgc2VlIHRoZXNlIGVycm9ycyBpbiBnZXRjZXJ0IGxpc3Q6PC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj5SZXF1ZXN0IElEICYjMzk7MjAxOTAyMjAxODIwMTQmIzM5Ozo8YnI+wqAg wqAgwqAgwqAgc3RhdHVzOiBNT05JVE9SSU5HPGJyPsKgIMKgIMKgIMKgIGNhLWVycm9yOiBJbnZh bGlkIGNvb2tpZTogdSYjMzk7JiMzOTs8YnI+wqAgwqAgwqAgwqAgc3R1Y2s6IG5vPGJyPsKgIMKg IMKgIMKgIGtleSBwYWlyIHN0b3JhZ2U6IHR5cGU9TlNTREIsbG9jYXRpb249JiMzOTsvZXRjL3Br aS9wa2ktdG9tY2F0L2FsaWFzJiMzOTssbmlja25hbWU9JiMzOTthdWRpdFNpZ25pbmdDZXJ0IGNl cnQtcGtpLWNhJiMzOTssdG9rZW49JiMzOTtOU1MgQ2VydGlmaWNhdGUgREImIzM5OyxwaW4gc2V0 PGJyPsKgIMKgIMKgIMKgIGNlcnRpZmljYXRlOiB0eXBlPU5TU0RCLGxvY2F0aW9uPSYjMzk7L2V0 Yy9wa2kvcGtpLXRvbWNhdC9hbGlhcyYjMzk7LG5pY2tuYW1lPSYjMzk7YXVkaXRTaWduaW5nQ2Vy dCBjZXJ0LXBraS1jYSYjMzk7LHRva2VuPSYjMzk7TlNTIENlcnRpZmljYXRlIERCJiMzOTs8YnI+ wqAgwqAgwqAgwqAgQ0E6IGRvZ3RhZy1pcGEtY2EtcmVuZXctYWdlbnQ8YnI+wqAgwqAgwqAgwqAg aXNzdWVyOiBDTj1DZXJ0aWZpY2F0ZSBBdXRob3JpdHksTz08YSBocmVmPSJodHRwOi8vTC5ET01B SU4uSVQiPkwuRE9NQUlOLklUPC9hPjxicj7CoCDCoCDCoCDCoCBzdWJqZWN0OiBDTj1DQSBBdWRp dCxPPTxhIGhyZWY9Imh0dHA6Ly9MLkRPTUFJTi5JVCI+TC5ET01BSU4uSVQ8L2E+PGJyPsKgIMKg IMKgIMKgIGV4cGlyZXM6IDIwMTktMTItMDUgMTM6NTg6MjQgVVRDPGJyPsKgIMKgIMKgIMKgIGtl eSB1c2FnZTogZGlnaXRhbFNpZ25hdHVyZSxub25SZXB1ZGlhdGlvbjxicj7CoCDCoCDCoCDCoCBw cmUtc2F2ZSBjb21tYW5kOiAvdXNyL2xpYmV4ZWMvaXBhL2NlcnRtb25nZXIvc3RvcF9wa2ljYWQ8 YnI+wqAgwqAgwqAgwqAgcG9zdC1zYXZlIGNvbW1hbmQ6IC91c3IvbGliZXhlYy9pcGEvY2VydG1v bmdlci9yZW5ld19jYV9jZXJ0ICZxdW90O2F1ZGl0U2lnbmluZ0NlcnQgY2VydC1wa2ktY2EmcXVv dDs8YnI+wqAgwqAgwqAgwqAgdHJhY2s6IHllczxicj7CoCDCoCDCoCDCoCBhdXRvLXJlbmV3OiB5 ZXM8YnI+UmVxdWVzdCBJRCAmIzM5OzIwMTkwMjIwMTgyMDE1JiMzOTs6PGJyPsKgIMKgIMKgIMKg IHN0YXR1czogTU9OSVRPUklORzxicj7CoCDCoCDCoCDCoCBjYS1lcnJvcjogSW52YWxpZCBjb29r aWU6IHUmIzM5OyYjMzk7PGJyPsKgIMKgIMKgIMKgIHN0dWNrOiBubzxicj7CoCDCoCDCoCDCoCBr ZXkgcGFpciBzdG9yYWdlOiB0eXBlPU5TU0RCLGxvY2F0aW9uPSYjMzk7L2V0Yy9wa2kvcGtpLXRv bWNhdC9hbGlhcyYjMzk7LG5pY2tuYW1lPSYjMzk7b2NzcFNpZ25pbmdDZXJ0IGNlcnQtcGtpLWNh JiMzOTssdG9rZW49JiMzOTtOU1MgQ2VydGlmaWNhdGUgREImIzM5OyxwaW4gc2V0PGJyPsKgIMKg IMKgIMKgIGNlcnRpZmljYXRlOiB0eXBlPU5TU0RCLGxvY2F0aW9uPSYjMzk7L2V0Yy9wa2kvcGtp LXRvbWNhdC9hbGlhcyYjMzk7LG5pY2tuYW1lPSYjMzk7b2NzcFNpZ25pbmdDZXJ0IGNlcnQtcGtp LWNhJiMzOTssdG9rZW49JiMzOTtOU1MgQ2VydGlmaWNhdGUgREImIzM5Ozxicj7CoCDCoCDCoCDC oCBDQTogZG9ndGFnLWlwYS1jYS1yZW5ldy1hZ2VudDxicj7CoCDCoCDCoCDCoCBpc3N1ZXI6IENO PUNlcnRpZmljYXRlIEF1dGhvcml0eSxPPTxhIGhyZWY9Imh0dHA6Ly9MLkRPTUFJTi5JVCI+TC5E T01BSU4uSVQ8L2E+PGJyPsKgIMKgIMKgIMKgIHN1YmplY3Q6IENOPU9DU1AgU3Vic3lzdGVtLE89 PGEgaHJlZj0iaHR0cDovL0wuRE9NQUlOLklUIj5MLkRPTUFJTi5JVDwvYT48YnI+wqAgwqAgwqAg wqAgZXhwaXJlczogMjAxOS0xMi0wNSAxMzo1ODoyNCBVVEM8YnI+wqAgwqAgwqAgwqAga2V5IHVz YWdlOiBkaWdpdGFsU2lnbmF0dXJlLG5vblJlcHVkaWF0aW9uLGtleUNlcnRTaWduLGNSTFNpZ248 YnI+wqAgwqAgwqAgwqAgZWt1OiBpZC1rcC1PQ1NQU2lnbmluZzxicj7CoCDCoCDCoCDCoCBwcmUt c2F2ZSBjb21tYW5kOiAvdXNyL2xpYmV4ZWMvaXBhL2NlcnRtb25nZXIvc3RvcF9wa2ljYWQ8YnI+ wqAgwqAgwqAgwqAgcG9zdC1zYXZlIGNvbW1hbmQ6IC91c3IvbGliZXhlYy9pcGEvY2VydG1vbmdl ci9yZW5ld19jYV9jZXJ0ICZxdW90O29jc3BTaWduaW5nQ2VydCBjZXJ0LXBraS1jYSZxdW90Ozxi cj7CoCDCoCDCoCDCoCB0cmFjazogeWVzPGJyPsKgIMKgIMKgIMKgIGF1dG8tcmVuZXc6IHllczxi cj5SZXF1ZXN0IElEICYjMzk7MjAxOTAyMjAxODIwMTYmIzM5Ozo8YnI+wqAgwqAgwqAgwqAgc3Rh dHVzOiBNT05JVE9SSU5HPGJyPsKgIMKgIMKgIMKgIGNhLWVycm9yOiBJbnZhbGlkIGNvb2tpZTog dSYjMzk7JiMzOTs8YnI+wqAgwqAgwqAgwqAgc3R1Y2s6IG5vPGJyPsKgIMKgIMKgIMKgIGtleSBw YWlyIHN0b3JhZ2U6IHR5cGU9TlNTREIsbG9jYXRpb249JiMzOTsvZXRjL3BraS9wa2ktdG9tY2F0 L2FsaWFzJiMzOTssbmlja25hbWU9JiMzOTtzdWJzeXN0ZW1DZXJ0IGNlcnQtcGtpLWNhJiMzOTss dG9rZW49JiMzOTtOU1MgQ2VydGlmaWNhdGUgREImIzM5OyxwaW4gc2V0PGJyPsKgIMKgIMKgIMKg IGNlcnRpZmljYXRlOiB0eXBlPU5TU0RCLGxvY2F0aW9uPSYjMzk7L2V0Yy9wa2kvcGtpLXRvbWNh dC9hbGlhcyYjMzk7LG5pY2tuYW1lPSYjMzk7c3Vic3lzdGVtQ2VydCBjZXJ0LXBraS1jYSYjMzk7 LHRva2VuPSYjMzk7TlNTIENlcnRpZmljYXRlIERCJiMzOTs8YnI+wqAgwqAgwqAgwqAgQ0E6IGRv Z3RhZy1pcGEtY2EtcmVuZXctYWdlbnQ8YnI+wqAgwqAgwqAgwqAgaXNzdWVyOiBDTj1DZXJ0aWZp Y2F0ZSBBdXRob3JpdHksTz08YSBocmVmPSJodHRwOi8vTC5ET01BSU4uSVQiPkwuRE9NQUlOLklU PC9hPjxicj7CoCDCoCDCoCDCoCBzdWJqZWN0OiBDTj1DQSBTdWJzeXN0ZW0sTz08YSBocmVmPSJo dHRwOi8vTC5ET01BSU4uSVQiPkwuRE9NQUlOLklUPC9hPjxicj7CoCDCoCDCoCDCoCBleHBpcmVz OiAyMDE5LTEyLTA1IDEzOjU4OjI0IFVUQzxicj7CoCDCoCDCoCDCoCBrZXkgdXNhZ2U6IGRpZ2l0 YWxTaWduYXR1cmUsbm9uUmVwdWRpYXRpb24sa2V5RW5jaXBoZXJtZW50LGRhdGFFbmNpcGhlcm1l bnQ8YnI+wqAgwqAgwqAgwqAgZWt1OiBpZC1rcC1zZXJ2ZXJBdXRoLGlkLWtwLWNsaWVudEF1dGg8 YnI+wqAgwqAgwqAgwqAgcHJlLXNhdmUgY29tbWFuZDogL3Vzci9saWJleGVjL2lwYS9jZXJ0bW9u Z2VyL3N0b3BfcGtpY2FkPGJyPsKgIMKgIMKgIMKgIHBvc3Qtc2F2ZSBjb21tYW5kOiAvdXNyL2xp YmV4ZWMvaXBhL2NlcnRtb25nZXIvcmVuZXdfY2FfY2VydCAmcXVvdDtzdWJzeXN0ZW1DZXJ0IGNl cnQtcGtpLWNhJnF1b3Q7PGJyPsKgIMKgIMKgIMKgIHRyYWNrOiB5ZXM8YnI+wqAgwqAgwqAgwqAg YXV0by1yZW5ldzogeWVzPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5SZXF1ZXN0IElEICYjMzk7 MjAxOTAyMjAxODIwMTgmIzM5Ozo8YnI+wqAgwqAgwqAgwqAgc3RhdHVzOiBNT05JVE9SSU5HPGJy PsKgIMKgIMKgIMKgIGNhLWVycm9yOiBJbnZhbGlkIGNvb2tpZTogdSYjMzk7JiMzOTs8YnI+wqAg wqAgwqAgwqAgc3R1Y2s6IG5vPGJyPsKgIMKgIMKgIMKgIGtleSBwYWlyIHN0b3JhZ2U6IHR5cGU9 RklMRSxsb2NhdGlvbj0mIzM5Oy92YXIvbGliL2lwYS9yYS1hZ2VudC5rZXkmIzM5Ozxicj7CoCDC oCDCoCDCoCBjZXJ0aWZpY2F0ZTogdHlwZT1GSUxFLGxvY2F0aW9uPSYjMzk7L3Zhci9saWIvaXBh L3JhLWFnZW50LnBlbSYjMzk7PGJyPsKgIMKgIMKgIMKgIENBOiBkb2d0YWctaXBhLWNhLXJlbmV3 LWFnZW50PGJyPsKgIMKgIMKgIMKgIGlzc3VlcjogQ049Q2VydGlmaWNhdGUgQXV0aG9yaXR5LE89 PGEgaHJlZj0iaHR0cDovL0wuRE9NQUlOLklUIj5MLkRPTUFJTi5JVDwvYT48YnI+wqAgwqAgwqAg wqAgc3ViamVjdDogQ049SVBBIFJBLE89PGEgaHJlZj0iaHR0cDovL0wuRE9NQUlOLklUIj5MLkRP TUFJTi5JVDwvYT48YnI+wqAgwqAgwqAgwqAgZXhwaXJlczogMjAxOS0xMi0wNSAxMzo1ODo0NCBV VEM8YnI+wqAgwqAgwqAgwqAga2V5IHVzYWdlOiBkaWdpdGFsU2lnbmF0dXJlLG5vblJlcHVkaWF0 aW9uLGtleUVuY2lwaGVybWVudCxkYXRhRW5jaXBoZXJtZW50PGJyPsKgIMKgIMKgIMKgIGVrdTog aWQta3Atc2VydmVyQXV0aCxpZC1rcC1jbGllbnRBdXRoPGJyPsKgIMKgIMKgIMKgIHByZS1zYXZl IGNvbW1hbmQ6IC91c3IvbGliZXhlYy9pcGEvY2VydG1vbmdlci9yZW5ld19yYV9jZXJ0X3ByZTxi cj7CoCDCoCDCoCDCoCBwb3N0LXNhdmUgY29tbWFuZDogL3Vzci9saWJleGVjL2lwYS9jZXJ0bW9u Z2VyL3JlbmV3X3JhX2NlcnQ8YnI+wqAgwqAgwqAgwqAgdHJhY2s6IHllczxicj7CoCDCoCDCoCDC oCBhdXRvLXJlbmV3OiB5ZXM8YnI+UmVxdWVzdCBJRCAmIzM5OzIwMTkwMjIwMTgyMDE5JiMzOTs6 PGJyPsKgIMKgIMKgIMKgIHN0YXR1czogTU9OSVRPUklORzxicj7CoCDCoCDCoCDCoCBjYS1lcnJv cjogU2VydmVyIGF0ICZxdW90OzxhIGhyZWY9Imh0dHBzOi8va2RjMi5sLmRvbWFpbi5pdDo4NDQz L2NhL2FnZW50L2NhL3Byb2ZpbGVQcm9jZXNzIj5odHRwczovL2tkYzIubC5kb21haW4uaXQ6ODQ0 My9jYS9hZ2VudC9jYS9wcm9maWxlUHJvY2VzczwvYT4mcXVvdDsgcmVwbGllZDogMTogSW52YWxp ZCBDcmVkZW50aWFsLjxicj7CoCDCoCDCoCDCoCBzdHVjazogbm88YnI+wqAgwqAgwqAgwqAga2V5 IHBhaXIgc3RvcmFnZTogdHlwZT1OU1NEQixsb2NhdGlvbj0mIzM5Oy9ldGMvcGtpL3BraS10b21j YXQvYWxpYXMmIzM5OyxuaWNrbmFtZT0mIzM5O1NlcnZlci1DZXJ0IGNlcnQtcGtpLWNhJiMzOTss dG9rZW49JiMzOTtOU1MgQ2VydGlmaWNhdGUgREImIzM5OyxwaW4gc2V0PGJyPsKgIMKgIMKgIMKg IGNlcnRpZmljYXRlOiB0eXBlPU5TU0RCLGxvY2F0aW9uPSYjMzk7L2V0Yy9wa2kvcGtpLXRvbWNh dC9hbGlhcyYjMzk7LG5pY2tuYW1lPSYjMzk7U2VydmVyLUNlcnQgY2VydC1wa2ktY2EmIzM5Oyx0 b2tlbj0mIzM5O05TUyBDZXJ0aWZpY2F0ZSBEQiYjMzk7PGJyPsKgIMKgIMKgIMKgIENBOiBkb2d0 YWctaXBhLWNhLXJlbmV3LWFnZW50PGJyPsKgIMKgIMKgIMKgIGlzc3VlcjogQ049Q2VydGlmaWNh dGUgQXV0aG9yaXR5LE89PGEgaHJlZj0iaHR0cDovL0wuRE9NQUlOLklUIj5MLkRPTUFJTi5JVDwv YT48YnI+wqAgwqAgwqAgwqAgc3ViamVjdDogQ049PGEgaHJlZj0iaHR0cDovL2tkYzIubC5kb21h aW4uaXQiPmtkYzIubC5kb21haW4uaXQ8L2E+LE89PGEgaHJlZj0iaHR0cDovL0wuRE9NQUlOLklU Ij5MLkRPTUFJTi5JVDwvYT48YnI+wqAgwqAgwqAgwqAgZXhwaXJlczogMjAxOS0xMi0xMCAxMDo1 Nzo1MiBVVEM8YnI+wqAgwqAgwqAgwqAga2V5IHVzYWdlOiBkaWdpdGFsU2lnbmF0dXJlLG5vblJl cHVkaWF0aW9uLGtleUVuY2lwaGVybWVudCxkYXRhRW5jaXBoZXJtZW50PGJyPsKgIMKgIMKgIMKg IGVrdTogaWQta3Atc2VydmVyQXV0aCxpZC1rcC1jbGllbnRBdXRoLGlkLWtwLWVtYWlsUHJvdGVj dGlvbjxicj7CoCDCoCDCoCDCoCBwcmUtc2F2ZSBjb21tYW5kOiAvdXNyL2xpYmV4ZWMvaXBhL2Nl cnRtb25nZXIvc3RvcF9wa2ljYWQ8YnI+wqAgwqAgwqAgwqAgcG9zdC1zYXZlIGNvbW1hbmQ6IC91 c3IvbGliZXhlYy9pcGEvY2VydG1vbmdlci9yZW5ld19jYV9jZXJ0ICZxdW90O1NlcnZlci1DZXJ0 IGNlcnQtcGtpLWNhJnF1b3Q7PGJyPsKgIMKgIMKgIMKgIHRyYWNrOiB5ZXM8YnI+wqAgwqAgwqAg wqAgYXV0by1yZW5ldzogeWVzPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JIHN0aWxsIGhhdmUg YSB3b3JraW5nIHJlcGxpY2EsIHNvIEkgY291bGQganVzdCByZWluc3RhbGwgYW5kIGhhdmUgYSB3 b3JraW5nIHNldCBpbiBhIGNvdXBsZSBvZiBtaW51dGVzLCBidXQgSSB3b3VsZCBsaWtlIHRvIGZp bmQgb3V0IHdoYXQgaGFzIGdvbmUgd3JvbmcuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUg c3lzdGVtcyBhcmUgcnVubmluZyBpcGEtc2VydmVyLTQuNi41LTExLmVsNy5jZW50b3MuMy54ODZf NjQ8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFueSBoZWxwIHdlbGNvbWUgOy0pPC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj5UaGFua3MsPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2IGRp cj0ibHRyIiBjbGFzcz0iZ21haWxfc2lnbmF0dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2ln bmF0dXJlIj4tLTxicj5Hcm9ldGVuLDxicj5uYXR4bzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pjwv ZGl2PjwvZGl2Pgo= --===============7987944396640420347==--