From 56afb067ed4ca45e1accd5279534ab83a9bda47788809f13e5bb322d7a2b69c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Wed, 23 Oct 2024 12:04:25 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main libxcb revision c3d4393f9034f5cde5ffb786fc06d520 --- bug-262309_xcb-xauthlocalhostname.diff | 22 +- libxcb-1.15.tar.xz | 3 - libxcb-1.15.tar.xz.sig | Bin 215 -> 0 bytes libxcb-1.17.0.tar.xz | 3 + libxcb-1.17.0.tar.xz.sig | Bin 0 -> 215 bytes libxcb.changes | 74 ++ libxcb.keyring | 740 ++++++++++++++++++ libxcb.spec | 23 +- ...-fails-retry-with-XAUTHLOCALHOSTNAME.patch | 63 +- 9 files changed, 885 insertions(+), 43 deletions(-) delete mode 100644 libxcb-1.15.tar.xz delete mode 100644 libxcb-1.15.tar.xz.sig create mode 100644 libxcb-1.17.0.tar.xz create mode 100644 libxcb-1.17.0.tar.xz.sig diff --git a/bug-262309_xcb-xauthlocalhostname.diff b/bug-262309_xcb-xauthlocalhostname.diff index ffd3eb7..0e2d3ba 100644 --- a/bug-262309_xcb-xauthlocalhostname.diff +++ b/bug-262309_xcb-xauthlocalhostname.diff @@ -1,24 +1,34 @@ ---- src/xcb_auth.c.orig 2009-05-29 17:48:24.000000000 +0200 -+++ src/xcb_auth.c 2009-05-29 17:56:01.000000000 +0200 -@@ -119,2 +119,3 @@ static Xauth *get_authptr(struct sockadd +Index: src/xcb_auth.c +=================================================================== +--- src/xcb_auth.c.orig ++++ src/xcb_auth.c +@@ -118,6 +118,7 @@ static Xauth *get_authptr(struct sockadd + char hostnamebuf[256]; /* big enough for max hostname */ + char dispbuf[40]; /* big enough to hold more than 2^64 base 10 */ int dispbuflen; + Xauth *authptr = NULL; -@@ -163,6 +163,16 @@ static Xauth *get_authptr(struct sockadd + family = FamilyLocal; /* 256 */ + switch(sockname->sa_family) +@@ -162,10 +163,20 @@ static Xauth *get_authptr(struct sockadd + addrlen = strlen(addr); + } - return XauGetBestAuthByAddr (family, + authptr = XauGetBestAuthByAddr (family, (unsigned short) addrlen, addr, (unsigned short) dispbuflen, dispbuf, - N_AUTH_PROTOS, authnames, authnameslen); + N_AUTH_PROTOS, (char **)authnames, authnameslen); + // && !phostname + if ((!authptr || !authptr->data_length) && family == FamilyLocal) { + if ( (addr = getenv("XAUTHLOCALHOSTNAME")) ) { + authptr = XauGetBestAuthByAddr (family, + (unsigned short) strlen(addr), addr, + (unsigned short) dispbuflen, dispbuf, -+ N_AUTH_PROTOS, authnames, authnameslen); ++ N_AUTH_PROTOS, (char **) authnames, authnameslen); + } + } + return authptr; } + + #ifdef HASXDMAUTH diff --git a/libxcb-1.15.tar.xz b/libxcb-1.15.tar.xz deleted file mode 100644 index 4da335d..0000000 --- a/libxcb-1.15.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc38744f817cf6814c847e2df37fcb8997357d72fa4bcbc228ae0fe47219a059 -size 446492 diff --git a/libxcb-1.15.tar.xz.sig b/libxcb-1.15.tar.xz.sig deleted file mode 100644 index 8a5db3596c752612e911ef6bb2427a1298b9d5fde202f5a0ceb35b2d7350412f..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeCU%EBPV#ZW7z$P%|+k!4ofj-@`QrGKq?ty#h|%Wpa>Q&Qn7ws?^S1|ZO5(8w$< zE=?`cO)DsJ$jdKDEXmBzE7r>|NX;uqFVIWNOe@LA$S*2R%}vbH%S$aWb#-(zGBhx; zbhI#YvT!stadvhxbaHcabar(zvNSg_aJFOtZwvCpbC+u^% zW7(GZD=4$>_^dQ;ui!Zm442#Y>%386_`~&(!!=jh*p;Us_0-edQXQurD@&B8dukq3OKAGN z?bp!-W+_)=7@4C^wx+G#xq9~0Z<>q@>*9qsJ=e(9Uy~rXO7=vsmW0m(-J7@XT9p-i K-aDu1A2$H{s!q=U literal 0 HcmV?d00001 diff --git a/libxcb.changes b/libxcb.changes index 22b4f2c..cfd06ad 100644 --- a/libxcb.changes +++ b/libxcb.changes @@ -1,3 +1,77 @@ +------------------------------------------------------------------- +Wed Apr 17 12:49:57 UTC 2024 - Stefan Dirsch + +- Update to 1.17.0 + * tests: fix -Werror=discarded-qualifiers errors in check_public.c + * xcb_popcount: Use __builtin_popcount if compiler supports it + * Add xcb-dri3 dependency to xcb-present.pc.in + * configure.ac: Require xcb-proto >= 1.17.0 + * Always write C code in UTF-8 + +------------------------------------------------------------------- +Tue Mar 19 13:15:30 UTC 2024 - Stefan Dirsch + +- bug-262309_xcb-xauthlocalhostname.diff, + n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch + * fixed build against GCC 14 (boo#1221703) + +------------------------------------------------------------------- +Wed Mar 6 15:18:25 UTC 2024 - Fabian Vogt + +- Fix n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch, + the rebase in 1.16 caused an regression: It loops indefinitely if + XAUTHLOCALHOSTNAME is unset (boo#1221078) + +------------------------------------------------------------------- +Sun Mar 3 02:58:42 UTC 2024 - Stefan Dirsch + +- Update to version 1.16.1 + * This release fixes build issues for Windows & NetBSD platforms + * For those building for 32-bit platforms, it also enables use of + the "large file" APIs - though xcb mainly uses stat() calls on + sockets, not normal files. + +------------------------------------------------------------------- +Fri Mar 1 10:33:22 UTC 2024 - pgajdos@suse.com + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Mon Feb 5 14:22:08 UTC 2024 - Stefan Dirsch + +- devel package: added missing Requires to libxcb-dbe0 (boo#1219572) + +------------------------------------------------------------------- +Sat Aug 26 14:44:23 UTC 2023 - Stefan Dirsch + +- Update to version 1.16 + * gitlab CI: add a basic build test + * configure.ac: drop dependency `pthread-stubs` on Solaris + * configure.ac: Remove obsolete AC_HEADER_STDC + * Raise minimum required version of Python from 2.6 to 3.0 + * Fix windows build. + * Fix indentation. + * Fix a compiler warning + * Fix handling of documented enum parameters + * Allow full paths to sockets on non-macOS + * DISPLAY starting with / or unix: is always a socket path + * Add tests for unix socket parsing + * autogen.sh: use quoted string variables + * c_client: Fix crash in xcb_randr_set_monitor + * configure.ac: drop `pthread-stubs` dependency on DragonFly and FreeBSD + * xcb_conn: Add a check for NULL to silence a UBSan runtime error + * configure.ac: Require xcb-proto >= 1.16.0 + * Fix xcb_connect() call with a custom xcb_auth_info_t + * autogen: add default patch prefix + * Build DOUBLE-BUFFER extension. + * Require xcb-proto >= 1.15.1, which has Dbe + * configure.ac: drop dependency `pthread-stubs` on macOS + * autogen.sh: use exec instead of waiting for configure to finish + * Improve tutorial example +- adjusted bug-262309_xcb-xauthlocalhostname.diff, + n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch +- added libxcb-dbe0 subpackage for libxcb-dbe.so.0* + ------------------------------------------------------------------- Thu Jan 5 20:19:45 UTC 2023 - Dirk Müller diff --git a/libxcb.keyring b/libxcb.keyring index 41ef66e..6d929dc 100644 --- a/libxcb.keyring +++ b/libxcb.keyring @@ -218,3 +218,743 @@ GtFxytk/Se55X3OyPOpl1ixz7MYKgloZhMob/essPnrQvYrWcHC/GJ87DnMqo2pX TGc= =Mxu+ -----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: 4A19 3C06 D35E 7C67 0FA4 EF0B A2FB 9E08 1F2D 130E + +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 +=DYro +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: 3BB6 39E5 6F86 1FA2 E865 0569 0FDD 682D 974C A72A +Comment: Matt Turner +Comment: Matt Turner +Comment: Matt Turner +Comment: Matt Turner + +xsFNBE6HVy4BEADACp0EU6HZ4KyFx/qfhzNarCfnlyEoCFY08k516UaHrUOrYWPp +ukoahcceA/M3H/xM0CGIn6uiuG/Cq7+qODAZNBsr6haIbDaqSUt+953b5qCSbD65 +LBR8TXvW+9KkXPhXTKi/osYBdmsbFLeVLqU5Kd4QJqWKRLtuo0ENbFkQPVypEJk8 +Ozg2zZ2yeSQAy0pgeFh8lezI7A23yj229kFq0EEfeqHpgifIzR2hNIhS5pTSOt8V +RDapO3FpOmxPPUMsaJ1KATD92+SgbZW8evW7ffz4QUiQiFsfTSOTCaTFu8qpu6Fb +a9u/u6mTrJQGRdqDcFp3iWjEUOVr0gUdLSr3zey152PBRaC26/eLqH8PFgCerBkn +o9vso0Vr+Kh63OOQeDHATZGy7tMHbWW5AEXVkTpNoSRYr48pd6u9Z1TfWVcovNAZ +tWiFVKKxniTa4MZY2czOSyh2YahCbEt3P0DoNihy3YHhTvW1k0Os2x5yCsfpGzp3 +U8x1apfQqAyRNIa9SptLpQ7xF+lv52D9kp3XdkWXw1BFY+nmm/FqoC4tKU8AmbuB +n3SX/sYjq3Z6aLoBOmZ849G0Zp1xEYHCbfWBxvqhIc6dlPc3Y9uYV01+FlTzX9Mh +THa8p6oABrXbWRJpkOvaVbdDhXON+02Jlvawy3T3rwVkuEfEZu8akv7miwARAQAB +zSZNYXR0IFR1cm5lciA8bWF0dHN0ODhAZnJlZWRlc2t0b3Aub3JnPsLBlgQTAQgA +QAIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEO7Y55W+GH6LoZQVpD91o +LZdMpyoFAmOgvjsFCRjuHWQACgkQD91oLZdMpyocxg//XrmtPB5jlIojESB4btMv +S15kOX1xIW6q5H/h/N1MjfP0E7my/GQYOIYiZFO/QiCnUQfYStKKdo8XVhwDcNkt +aB9riYUkcFb3Xa7h9lESixSDBmoWiQK6PCfASnZwFQ71VHPxwObSaDPyz2fbc3Oq +6a8180U6lgdMvM9AJWXwdq7gGQwzfL3L7NL/meI1Hp6in9K97toEXiNC2HiNgh3g +hiDfVc+HrWwU8nO6rviNJSa9ifaegVONV3+MX9B5gBoWBL1sRmJTKaRpJmVC3vcJ +FLJoalx9s0wT21/W+2Fb/EWDkNQeC9CWfNy7t1SxDoc21kgoViVG7qi5hP+gGLXd +st598e4SkK5Zv0DoJjqzjmfQkoce4l+Zomu4XwNouO51cEji1FK4YWd+d/oUlVaX +s8sH6H2CKTNaCdjr7ylOpc9bUpoVOl1kuwz61Kz34TxCOQWnreveBLl8+DtxACMg +VcQp9JGM9oHHr16OnHleipwhSqVqRBtMmDRawotQ1DCy9DiQd06krudWSLVeOCxz +tbjH7pxOZ0HTml9CNMfnLYQpfrtdhD9AFCO0TUW+0m/Ck5YKlgy1hS4uGOCQrvGH +EJnrfiqpBgsfWWHTMret973UsAcSFrngTNocRlxq746caRKcO10DPitCXTpolFyE +7D6rqjdP5B/D0BnWRRHymMXCwZYEEwEIAEACGwMHCwkIBwMCAQYVCAIJCgsEFgID +AQIeAQIXgBYhBDu2OeVvhh+i6GUFaQ/daC2XTKcqBQJgBLcFBQkVKXXbAAoJEA/d +aC2XTKcqtXoP/0cUWKwegegobN2EcgMmm2jmlFgUtE9CDcW7GImBeY2c/3BRrn0Q +sw22TXodkSBB52pyiiUzcYDXo2MIDau27qa+GqhmzuXrN1JIFJHhjdGkjs2qR9q8 +Sg6/g00ZqdSaUSQHa77t+wMFhQ21iSHXse6mnJ7S8Q22uYNzpcNQsKhDWrBQfqBM +eGxlqBX4yPLEvyJbdof5pNZ5AW6DuhVdUa+JKJZuRRcHQ3h1dfRRhmKJNM4GRfZa +tAlkGsw/3ccWF7cbMcUdCVcRli7xkS63aL702BOp9taWZ8o/W3YTlD3Si4x6qH/C +1xWb8K/0be24/Y/y6s6wsEwz4ONHScjP2ZLvbrUl/xBXcAxP24DxrVVmRJ7lso18 +NmQnkdM2FS764r9oNjVZ9M4tl5REaR0S06ycjzykJmrU3GEFG5SDrrYsMZWJ+w0E +wBc87KkPhjpr1SiU5obGRd24+oDh15a9ZnyTSMotBBWhVNTU6Z5FykzMptIVYul/ +b4olSyVSdbL4ZWdnb2Fx27Bxeo2Z7y1LzluNMkly8psyhTvy/kmWKY3kLG6jAce0 +CAT7ZIVoLINT/PGg2C2e21PQWb9XLaap/TrIDUR7zAftNV6DXQ0cFjl/yqVLHdCc +S3bSYt6OIyCvzHBzZzvKrv+aPc+31MHfjj6r3AuZ8t5fy4alEasudhNgwsGWBBMB +CABAAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AWIQQ7tjnlb4YfouhlBWkP +3Wgtl0ynKgUCXEbE6wUJEZEGlAAKCRAP3Wgtl0ynKmnyD/9oesnUKT4uoX7cbMTB +izNy1RD9KzGUE+uVZQXHL/mFajlAssE0BRRxNmBObs71gnJGCTowe+KpceDP4ctO +5eariubClSRutOGBmMxdwwcN/BVWN2hN+EMK55RUt62RviInwQp2S/F+jgjOT4Cx +gvm4ZowiLgzy+8q/WG9Snvm7Shi3oLB6d0/XVv0BVyrzrWo30UviuEhDmqeojVfz +kli7E08E77HsEfsHXYUmSe5scF3ko3jKFBrUA9SLZyllOf4SQvnugnG8QDF+8soO +Wa/1F+MN4rnLsyp9Ck7GoGiG3hFtYc09Bs1LR7yRP8G5/03GnkPrDhTxL0c8z5Hy +DOh/jvUB7lAjbBMlnl3i8lN7EUYgtHlex8Xuzy1ZDbMILfHFJAPQIGutNKfuTlqr +o/50+NRuWbpMAt9LjPyQSUCsM6v0gBBLb5Mj9M8fmv34H3U3URjNi3qc7Hw7vXPq +BeOoE3CUKSukhXXjOysmyUokheRpW2/aa+usB3NTSf5k1bYQu0jA6dtIH6POvnO9 +ufPJ8KML1ETMp/lBeqcKsK+13Dine9IQWy7Dw81FitXaFhi22MbuUOswEiHlWiCI +8Wwf6FCV+h4xTE+DEIu3Uij3hvDvecyK3n2b5q4RmtbFw1CdMYUEgrQcPFQXZ77X +Pp7dZj6vxB5pXeOepHG+iEApDMLBlgQTAQIAKQIbAwcLCQgHAwIBBhUIAgkKCwQW +AgMBAh4BAheABQJYkWFSBQkNzHEkACEJEA/daC2XTKcqFiEEO7Y55W+GH6LoZQVp +D91oLZdMpyqXlw/9E84wZwqmEIo3tmRwUdeQaXMOE/ayKDpzhiBwWpSAMsZPYj6D +utdLSC2N//Wx4HDw3ZvS+X6lLkSboauSS3a1Mdb3XBdhUyJIO/Yqt47ZlMd3oYk4 +GBGy9ItR8C9Kv9OF/PHFqZnK5FdYEtk9QB7dj4dRyw2f01ECIXcKE6P2KVn4rUw/ +phRIICGmWjWhzySVKIQYeyUEbVRfiX+OeHaT3EeOuCOSe+9+2COyf+OYc8leT7fg +q1jNBZfsTTJXTg+ZIir4YvTQlhes95vKktjaa/rfPSgfA5JmYDXm4So7Av3U82+U +/zkqQmUziUBs/xRGCgIhwnaIOM1w+JnPePv3KBqpXCoI9JS4AvWbiNylgNGq3QcH +ytHYqxN1ZMpwD4S8ww3xlQ0RFW372//gt1c2dmh63Qw3mKeYb+J9H/rvZIKtB7It +IOVDnZ/3209KW5CMcTbKO0DV/AsmSNGZbD1wbBiPRJW3BdpWL+42iRgDWB/+gjpl +lJXz5H3vQ3zXIVXZNbXpCWKzJqB5AIQorstRNWMkH5xMCIWYS0F/ykoXSiPXuZwT +7sHhTo5Zdxem/1I7cevhgeJhOrZ5Pv4lec4FmUnEToVnDHzgfGnHNtGC3y4GNc/F +/4pR4CVQEi3WtIu6v9sFClibE/RGNMVyRgR+p8XXiZjHFVhvVBWd5fmLVHTCwZYE +EwECACkCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAUCVACazQUJCxzeGwAh +CRAP3Wgtl0ynKhYhBDu2OeVvhh+i6GUFaQ/daC2XTKcqUd8QAJh2l6MVX2YfYBhx +OQPuaYpWz5QFLjtXfxujNBYXK58S4Uo3PKUGixzV6S0gZJlqV8z9CAgHk9KVwhNs +Rdwrb6lEjJ48Sp33NgLdvh8GBbgjTx7MDfJ+K58sbf29ghJcUF2/vPLn97Q9iFVu +ooqq8SVrQ8bOvbWuIl5eRgZmePAp2rhMzdouLPdY4ZjMCc1TAhzlCXgihAa5jOqI +SMcnlAR6WWxXqxD7b+tKVdxvPv8AQDdFtm6B6LfYcfiuOgzRchDTWBhta5rT7OLd +/Rm+SarpprY9LbmLO4Gr9qScW1lXAyqLMs5qgUgrlUuxrVkqfRSX1axIxeWj+T4R +WbK5lIC9MbmhA8hCx7ZMLl+n7xW39xxnRsiloobPQ6Tii65rrrvVZ9IxfUs8DP4G +1TNaQevMx+6+aMFfl5ONKdmt0kY0QGBj2hEOwTXi7bW7sHb8ZnMjIdjomVPgiTd3 +gpYXYGjmlxeT+d7WT41hDT7p1unsE9JHzEtN+WpqTsfNxxLofCyvK4a1gC7Ei29Y +jDQHIQ6tLoKQ6ZJdhptnaF0M5FPOYfwYclugVY0USidLBbXUnrOq2dq2xYWPHxwj +wZSf1Fn+zN80cyAhv8RmpcQzYoJG8Thy0Df79/4blP/Izd26s4y3CpVLOyQL/T4i +Hf/WVLRktUBtbxIzWBJInAnrDLKzwsGWBBMBAgApBQJS3YKdAhsDBQkFo5qABwsJ +CAcDAgEGFQgCCQoLBBYCAwECHgECF4AAIQkQD91oLZdMpyoWIQQ7tjnlb4Yfouhl +BWkP3Wgtl0ynKqcIEACVN5PPXRUpAGvL4lvi9aqhLeRn2rDsOwmXDK8kjC3AQloW +2CkX5hUI28yy5CgXETBbSAMCo+gpdwsWJ3M5ym31cn4z6iIi6PfgsIHB0D8Jggfi +M0bd072HFEM+F7cqtZftxG2IAjCROBJzgswJFwMPFHMIRI55wRCv63F2sxw6D11p +ZB0xpob2ycmNgmaBeS21bApRkzUSAAdxJafl4w93T6qrSM0ihWRuF5qOmrShmTRL ++rqA+lqB4F3Dn07JWW8Mk8gp+gu/Z7qeEPAxELnhH4GrNuI/7WvaVTwAs52Fxmi7 +rHhLWCJD73uKC3hpT24Knh4wLHYqTpH+l+R5fxBgwmSlJ0sQ4qU+HF3VPtQp5g2b +EzQiwp5uHWglAj1pUZ+4FshwnIJ3whTV4Q6CDxr7oLXcH+FMceMSwq2gHVgYrJo4 +oJQXdSzCaFyhYfVPZi7lBkadnaruqPUd6iCo8UuXv/ytg6joLP/aemClC+KiY12I +QpwS+DLMkXAdip0oGohFApI1vdvPlrG0n1wji1//TEfd+ybbtopM9CziuQB3laoI +pcWSHxHFFhKPfNRmBzlcFMmyul5fUSaeIoYXLqxHfNHd870zZhru95DQNNFgRC5c +ePLmAwwair1tcQQKPwEY35Vh9iZFPTkiGfG6e6kD+PmbE8e4b8VYUQgKclg2dM0h +TWF0dCBUdXJuZXIgPG1hdHRzdDg4QGdlbnRvby5vcmc+wsGVBBMBCAA/AhsDBgsJ +CAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBDu2OeVvhh+i6GUFaQ/daC2XTKcqBQJj +oL47BQkY7h1kAAoJEA/daC2XTKcqq18QAIV1pxhiM6YJOAu+6aBKjplA6YDSSKJX +a89Q/ra7kK47QMHISmeO2olQp/bWAwv5Qc3Pq/9sJVuSKByhdZs5X7vOBkKaGvdX +ZRInluZ6dtAJztdwQtTbtXgn8Te7E0+ALJW4x8Avoz/W0MUVDYdrdvA58H7asEfM +u5OtKrLxZphH8LmTFkKZ7qHOJbpTryls1NUnR2cQKMlB7s+7pRzouO3LWzgd7THZ +JVonSkeIJP5WMKrQ3l7OOLya5d5eenS7u2j8Xya7v+5dVG1wAvUd7D+8xWvdSiC9 +QHCdklOvLRUPm9P9t1qabM3LWbXp/xmNjkTYYbMKto+eW4ntVauH5cW2Z++gsiGq +VzPpa7w1oIu+vbgXXZsxi5O0OgPNN8Au8/BQtD2DzI6rloCpzik0b0iiM1xaLDnT +4gplku7amoLJcV/vGKDLDQuvAstxZg1mfQbWDY4dMjyO7okcW+eyqk6eoGhmNO1/ +tQbWG3Np5dtoY5NWnU9gG6VoJq7mVd8TUIgyeCZqV908WjP0NkyngG0tEfzg9AQB +73SoNDHJMZDMBKutDOX5IogEbWOY82DYVx6q4pjIpoEmhVBj71ScBYB4H0jh5Wsk +s2+mNaTxARHCUOcVDUL0NTyYBddRf2N76G984vgRQaS3DW+4/pTQV5AFsf6XYdyv +2NULqVaD8L3rwsGVBBMBCAA/AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYh +BDu2OeVvhh+i6GUFaQ/daC2XTKcqBQJgBLcFBQkVKXXbAAoJEA/daC2XTKcqdiEQ +AKT7WGDB2f4drI4HScQSZbI4YWcSqSfBz+dHEn3op1z6hbLNyhlmP2/OoZ2bJL/m +KuFhA53++ZEZ8qqMPvZdJ8mcdoqbB2snaj2OBjMDYP32dprKvg0YzKajnWKJdR9i +R0Fa4JwRclI1VENoNgGit7DXbLdRTt/FmPcG+urPmWGue2DRKoKS1vJrmqY06Nq9 +W3Hz+1yqGHUr1b3yZTiy3aHlEbxGpcYcUL3Altce03UrLVO820NtDKsPgPUzUpSC +I7LSAFkxGKkt2GuI2MDIANMcfwLiX6X9PZS1PaJkvVJhH60J9N8Oo8+XBXM9LdL3 +4tLHvHlif4i+qH+Zjg25Z2j1js8Fbs9YPtT1jlBbQUVgnDQNuSmZHMnUU9pjuJ2w +L3HH2gUKPwxDm4ydb20hbZKVu10nWDlO096Qx0yl7UyCVsbSIGYpZXC7ikrTR+jl +WBMK1aTSdN0wYWEDDjbJ2g6jqyX6z6ei+8MRQADTeCbtJAgvLrF8E4XOiQZZ8+lw +Qpw8bnorvePE6hBMXVJKgWyxYJlgphaB+dfEUj/4YNK2jrSmrZFRGKHUooby+gJ3 +ghwGcnacenwrJm518iqkf+u0+SVveyoul69UDo9w7HUPNHS7NbSG8XEp0IgVe+eQ ++PtlBYAPts743N7dZPcrITQ2hmUz059w17aodgUq5BMvwsGVBBMBCAA/AhsDBgsJ +CAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBDu2OeVvhh+i6GUFaQ/daC2XTKcqBQJc +RsTrBQkRkQaUAAoJEA/daC2XTKcqayYQAIAdo715gbvXARFdXIPrLsP3brniTLZ0 +AV5g/ysLvmcTurGSARUbbBDjReRVJwOq0/FRbElIZuR+wSSGUbH/f4UvyKzwDMHW +HxyROAWDI1hxPN/AId2CV4YcjptcHPi3odDYuG8NZo1nNecGhSXkJYfLLe1D5yyj +7Tmia28uXfDJhE9gDKG99lV6lPhTAV9Hr83g+QI5W4l0Utnczo2aiH8nis5RP7R6 +qjaqod23x4s9MJUZqXl+U8Gv/XGUtQrHM0rGz3gsIRRLqvZN0F2MCQQk241Ukswv +7fIHsyEzmn6CruSSjSZ8Y1sbN/bJgbd/lTybgO4faUjdBrFTDhnBnFNiplAvya24 +7MfFzZKOq55jdE3MLzTJfenddy3SzaXOma8PA/BUXYGa3D1xg+mZjB+0MkEP4LLC +91s0dq2XmWE0BxSMCiSilwbjsrrWV+Qsq9yKElBPnF7v/JaNL+AWizDhA/XIFRBT +cbBRCAayPE2CNmY6/hO3UtoG5W8vGoZ0JYMCafV2U13ENf9uqtq6mQWhUPnHzkMT +ulMQbIa7zsC4goD86C5Y3PUQr2wPeD+JbYM1zyzeFng74oFDBWnjwMmUYC2xKB02 +amBpBMVMHyrmGje1ODrLZ0Tl3JNpZttxLOutoyStxrf5UT/a3k7Ua5m8xehkXQqy +FccrRtT4Rj09wsGVBBMBAgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUC +WJFhUgUJDcxxJAAhCRAP3Wgtl0ynKhYhBDu2OeVvhh+i6GUFaQ/daC2XTKcq3u8P +/jAvYCXi5M5KiwJEP7O4KLkZscez82M1CUN3sM+yWt7jzLKwngIAxJaPzg3ztvHn +WChyAh7KO3czRbpD5FGFCqqdNp9cjuQYuepo7LKIYeDLm08kYetQ1hOCXXXfDDAb +27RDBJ3O0LcvNTxVeiREYC62+O/vx9J//Dxk3Fr8t2mTwWx3UQqS1KVGqRhrygbA +W0xVn4drYZ57MLUJvR5DgkbwUR1ggoOchb+8dCHPsLGPqvNjL+EV0o4dCtYMhZNK +2EHEWpH6WcCCRyWsnBrfOcmWMq3N6iSwDqluIZxWa5t5KXfgbTw30jNeZ/AQbQZf +36cZaVUVW3k+7DImB7c8JbNFrv/gBg8xlKwCGESZOfLYVo8DKKJSOnuEtRxk8vhN +DEw8vnsE0Nanrir/DXhOfEqKvxk4V3FzGr7nivTYutb5zBIgp0J4n0xIGYXyxpc/ +gmoaIeM3oIIdDQubuX66w4zGxqozj7YUoSpTB1Gt2jivLflPcSLX96cEgUkW4xNu +rKLmwREMyezopYvPjSlCeuP9iPv4Gu2zlYS0aX5Z1WNy8/Om/+1Zt3I5X6JHiQt6 +OzN2VbP17muTe2ZZyGRW6/xqbI/IhgdMSQ3jZekC/AZe4Rxrc04htCYn9LTf0Z1x +/WX4tvDAp3cOcLYYKVJpDYkSjTQiLiibtu758KiYa1WFwsGVBBMBAgAoAhsDBgsJ +CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCVACazQUJCxzeGwAhCRAP3Wgtl0ynKhYh +BDu2OeVvhh+i6GUFaQ/daC2XTKcqodkP/jY9MnpN7M22sCTFT9kUOlUuNOKH3j8D +x6KYa7o8Ht3E1gJKhLPgn4wpVZb5PeihpD072lzjlPBe3LEZ/210Fuxyq1Wnvxag +AKSVPeUvYVeaB3N6niYo6z4XAQfT1mt+JOzEcRRdUalvX/+Y1mqGXKI42PLPTtcl +PN8bq+/2gW/KUlQmI0z2BJuA861zq2A/40h8QqW0FUpbpoVi+DleyrT5jJerDLww +HWPvcnyHN6vNg5cjrPv3VXLEE8k0j2QGUycPf95HlEtT3Gz+PqhAwg5RLG/jdM3t +gCuNbqZOYUueiNfaQi4CnOxdMmpIZn3NEt3V6lnyGclbYi2LtVpnkRsf1xCS5Ol3 +hx5L0MoOJ0DC0P44H72NtJLcq+nucVLpfFnNO3vGzw+G+OYTD91YwcDZ52l9VZbs +S3plGY0oV2/j7c+QfTH1og1jlGXqSxOEJkX5XONKn0unY+H1Kdxa3sacgBPpVjQP +pcKoFFzqRzFPKXLDa/9V7Xc4RO+6QIUtbztY+XSoXIeaSyRbWIGZoudEnzZupmbN +tPeuiTypmBtIkq25TBRDNG+pK1BT/UmCG/gWpW1V3czZE/GO+ImhzH/WVOayBjI8 +wpjEBf5+fKAo6Jxg9AxCvZ03oPKT7i+06KnWN1MtMCvSOiGFDibzPdcbwAaItyMC +ShfiS94zQgphwsGVBBMBAgAoBQJOh1i2AhsDBQkFo5qABgsJCAcDAgYVCAIJCgsE +FgIDAQIeAQIXgAAhCRAP3Wgtl0ynKhYhBDu2OeVvhh+i6GUFaQ/daC2XTKcq+X4P +/jTOxU138yIHjsRk73IQh0Egj//20Tdjo1nnlZjW8+dpk3DL9QU/HFu3UWtLqKCp +CifsXMSppLA3ALHbLIAXeF0tmQ8zgslB7u69ruTNtv19BEeAnbNbxqM2L8Q+3bMQ +Atj0YiU/xiz4r1fs2w20OUnmv07NgLkqaqApqglCWcUnBQgS5GI2RX8GJvcVaC5s +cBqe+ii+N4mvlhV/248g1gGfJ20hxdbP3L4GlSpoiCt4nCzlk0Gx8uMGjONmXAyQ +XbHsNZMoFSXpTJCHgZkbe2r+bGA5hZMWFItYnVbvIPQG/T2fQ31lQk4HES8k3C9G +uyUnDcL6FcMv5WtB/POOeUgT/CJKk1ZOME3keq13u65s9C7fL88A0A45d+QC9sHB +5t4KdgDgXIu9PCg3nI5MQrByDcJM+tPeuXohBd8iTE6UeS6gwkmCjmT8Zda0Pvij +TZgFGgnoOeN2h8JJSYIit1dz96n/PpJLC06/cD/YHa4A9XFbfEacyNIIG5IBZnAp +jZujniMjM7cfm7GyEpbcx1PbtE7exG0ADljZHGObdOBOJTZShJBwgv4Q41ssOXaJ +lHijgBcjRGc4lZO+LKwy1g1D3bbwd3RK48TMTBfmiCffho6mLDwPhrj87/lk2FAV +fH7bFczRhbm8I9DOBSfv8zRw/ofG9bJlrvVlqv9ZjNG5zSBNYXR0IFR1cm5lciA8 +bWF0dHN0ODhAZ21haWwuY29tPsLBmAQTAQgAQgIbAwYLCQgHAwIGFQgCCQoLBBYC +AwECHgECF4ACGQEWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKgUCY6C+NwUJGO4dZAAK +CRAP3Wgtl0ynKiJAD/4urw49qj8Q4+kIaR5IZZZT5vK5Tyog1zWsAW1gAVgxc1eu +AvH0MDqIp4cSLwQC5rlzVoZ1L9DeLXMEBpK8ROYM6fnTAol06AGumIxSZXzcKG6b +th/1jOIyRW19b1eEzExtjnTE69BaN+nGCCoOUlHJBJ9MAgJhA452p1IZ5cZDg4U4 +uNMvY2O+UcVIj3/d6MGDpMm6KWQtjOST4OAYWqS421kYdjyXEGiJCYJtC9Yvvsz/ +Mv4Wru1BS5xJZ1VNVwxueJ+Xy+3DfkmMfsACjR1wtAXkPsbilTvQl0dlBOViqxYF +oibWvczNoVYskW8cjyDc24daPOu+zbxHq3xzfuplFs+Vlsf4ne4LkqL+a/y79lJS +pRDxVSueINLhZxBexYXjdICaQqm1m4XDVZzqpwOyp6OKKmYGBJiRpE+JspxZTUB3 +ayW5WicesX07oQ95R2GBW4wSvs4PLW/sXGuYL3+9+IIc2Kusb8Ah4vBlzp2MBwlE +g0mGLz00tlHX0YYVkjp/67hymzyTLAj/HfuahazE0BzbSQ/8GzgYw/a6HXxlyodC +mz2qWmKvz4SwwXMvFpE63VTqEuItEBPcrEwgXeBAf/1EqDpdyF3RZEc9fwSwUXi1 +iasGd+A//TS8fyLTMzeVR4zEKbVeiTihqyHYz5Vx1/JVZo1T0tSqo28jYToancLB +mAQTAQgAQgIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4ACGQEWIQQ7tjnlb4Yf +ouhlBWkP3Wgtl0ynKgUCYAS3AAUJFSl12wAKCRAP3Wgtl0ynKtWrEACJ80y/7+Ts +PU/EBviQM9SWyQpychWYM6XMQoyE8MweujhwlAtVr6QTm/dD87m50rw2MAILyyij +rj/WGpgSGz999PRTzJEGB0OG8mhx4SOPWis+aUwSgdCaS7phPsbqzIh4qfUuG53v +1Eg5cZ2yHxBdHbrq+YDsFq6Kq2bmIRIhuz7xLg/VicVom+lKOqeWMTQCX6NFeRn9 +8AS/VM18dvNZbMyeDlRvqRzDi9pl6+FbHzi7ZosP1q0y8pezlVkZE7C6ESfpoxn/ +jWcoRp/TXGf3lkz2W3jqbIr0qb+lq1TxMHQGGhhVGBY/slD8YLnr1bAdSxr1Mia6 +vqyR3Cn2QmlFIxrhZZek+SroxGJBQdXUhru+RP7AKrx+SvXXNHMaCFXcEiJ+3rQi +F8vQhb/tgphj0ThDioSTtuQ5W2rqLcwxVikqBDCtvk6X8HkEzkgbgHjYI3BgV6Re +2mzA3YUolganxmrIldVR9R1yZkdchQbIcfZ7qjdF/td8rPAm0JH4ScEhQHwL/KxD +njZkQs7nbL3wj84BvU+Y24abcnQx70tM7kSnlZBMqhuQDiCWMadr5HIB0CusN4FN +rwjiA0d6deAQzcf4rRWmm/vkptvcygs1itvLwi+q5dC3cAiWAUACQ65qJs2ptRpM +NiMTYVGk5j/2Vf1madw1Nxg/3f339vCLAcLBmAQTAQgAQgIbAwYLCQgHAwIGFQgC +CQoLBBYCAwECHgECF4ACGQEWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKgUCXEbE5wUJ +EZEGlAAKCRAP3Wgtl0ynKjzMD/9DYhJ2OEosC6ZDo98Co3hk+Eqy+egLbU5JVfue +C5r3hVjvD4OORvx2bgOAt1bYJZkFgruoA3UmPkGYICROVGwwijZzXU7uttZl9fEZ +ZYNYUlawtixEyz5104hW7EfJ1df2NGvyqNu32gRH/hqhTeHugHa4MEfQQbbQjUSH +qgUzKXBcZ3BKU9Ndmh8/4fSMdAO70rYTNet3JN74ey4ztHeJbRjvcqKjbMowO8ql +Qh7aIAo4hnXzwtygyVvrzHRoMZ3yd35t/6N3XBIw0m2RuPKegIFdM5fntLcrfmHk +92v9CWEOVAmcm4XFFV4uYQtQZcnxys6fMakksaRkIwH804gaKwajL0eILnQ8xGW/ +0xlzKW4mSJnk2Mtn8dURbT4ngDSradYii3vIFsfbP3q8t/exlZak9/o5RYnQpkkJ +biRJveLvqmKexMRwn7ALi3O5NYKTlHcP+EMGvkmeOeMtMAYb3G+d3ihOT+CLdiI6 +YTLNVw7h1zvNcxBkGsNuxNzAhuMa5TEADqzGwP41+e67LfX6aYzKNZyR8OOJfh3f +JgiBN6oluHXtb0dEyk4x8czycpQlwQpdBgj+djUM2it6pgku2bdt/Q5azSUTjKLA +2NSbSch3kN/5sawCt6V6O6MGnUaGDbmOZ4agEGkoW1awSIyo3FbM01vkHu+VqMuz ++Wk4XMLBmAQTAQIAKwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4ACGQEFAliR +YVIFCQ3McSQAIQkQD91oLZdMpyoWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKt+mD/9U +n8TqPQFzVcg55U+Nn8Lxr2knzkm8t+HW8u0HkQkzqZz38PsYmQKOqXq2xxl8FV7A +1ser4G30NJcLH/17kHTG1g5K9qKB5i338/ESd1uwUo4n/6zs/VcawpUlFm17OvZW +G4cMtB8KGoqOEJH9eoDlZlD3qNQr+VLuQ8S0pHBEkrS9b0ePVsPeCHZw1AD/VMed +xmSKFmkUmFR0rffzZmUtTZ/kQiWAxKq5V4wqaW9T5gmDBenxgfgk9GFRtwFnIYLN +iA60EFKaH5jy/PGGOks3OmeRXjrPHgeC7P3Fw5rVepcgvEi5caqbWkMPW2/ftZ/v +wpyMvuqoqXcaXyrp5FirK/tz/sG33qzELNUFZOFCvz9/PVzxNaeZTP3GLVyD3g9Y +Ct6xHzvwKvho8IW0lDhkfOXKY8C3yxzZpbyXvrzXn2HoHYfAVSdoGxUJsIYMO7X+ +EzFqY5H2NBkLD1Qw0oogOg0xMqZ4PkMB6j5LhW7Rr/msVtUvn+zjtXFimiHlA/y4 +Oa7BrATN/sacSs1dKR2oi+FZF9Hx7/Sydr8NPJvP+XPr9swEewY2YvWfhkwEGq+V +VPLbpRP1eqQtl1ACYZDLTHWv1Vb2zMx2ZosQzm9O9HSpBejJCGeg24k8RW++4Oy3 +xZLbG4k12h1EhnVH51kVnHgre0jDpmzxRcA3tbwvEMLBmAQTAQIAKwIbAwYLCQgH +AwIGFQgCCQoLBBYCAwECHgECF4ACGQEFAlQAmskFCQsc3hsAIQkQD91oLZdMpyoW +IQQ7tjnlb4YfouhlBWkP3Wgtl0ynKjknD/9BpaGwL1NZQZMs7hBz/kHoZh55nFT8 +bwZaHPR7T3+u0tl3QqpMvBe/8JOeOGrj3CVJyBvP/ZqHEKxJvKFOzTCIC1l4NDnD +cPdVOOeLysipcTFc84eUAzUmqkoihpJjZVUqj9mMMfYJ9kx3uHzox4T3XWyhytNw +oWXvVi+h90tEDRbSck/IX+VJzoG1uUACzRod8FRmnFdihml1nMTWxc/E7yFvLKGZ +OgEC0+1+PiGtKtq0jsZcQZCg8d7n6AFDta+37SnuS83fQ7ASWUHNYXQEdtrOd8PO +TB+kgttzHIBRUkWjRhw4IJ6zgqMLRoVbaaNN5uy3pLcgSy2QqVJbpVC52kILdiiR +cmyGpaDRbK3qRURhZRR5lWKWabLGrnlrYiEDr7hFkSz/sutvfb1gkMTK1xur4qhq +4AWZ4dYNiJ1tcEWBrYzNV01YEf1HRxj8NcTG661mOKCtXrYZDmHIdpvyJG87eeyr +LfYHRepdjXenUqvTzb3QdMEXHlysnW+9UAmkx+wRGYuF1x2TFsixdfRx2wUD6sK8 +FDqjtqfQBBRFB7je+KQzYznDuYAy1m4nePIbKZVe+KZpKXlKvdmZDEm33GSeSEz6 +ykMJP/jFCmIDYRP/9v2Okq+JLVWfIpFzXAyJRbEWfU9QyF+ffViwBTmmscN2LVoy +berfI//rNSbD/8LBmAQTAQIAKwIbAwUJBaOagAYLCQgHAwIGFQgCCQoLBBYCAwEC +HgECF4AFAk6HWL4CGQEAIQkQD91oLZdMpyoWIQQ7tjnlb4YfouhlBWkP3Wgtl0yn +KivMD/9V2JfvXZLYx5Af/F2/bGkc+5ReyB06jTeuCDEhhDwdDXrBQoJFnDsbaGE6 +4tZ17e5YHuiNZTwyJ+NoOVybpyxIPZheYPPdiek8m7C7BC1XJrOez1CuBMxZTSO3 +3ZMYxgfXEOr30o0+kU++2webzcC0TftFjSm2ywbPECLzcSGTi0SdYzyoOVYOz+/g +wSAPMEL5PW+RtUd3X+Bc+vPbecXFvQ1XHbArD701kW/irzum1hsra3PbDgs0oWDo +C9l7l1rrGgF54VttBJ6DMGwHALXNcafSmtqoBiyokLTzokhIo1be5l0ytn5RdpX4 +KLf6rM3FN6OBxt7wqACOdgwuXxX5UHljY8SiXXKoY6FGDq5MSJHv0mRqnx9bn5LP +9qxUepPUpnw7iWfyzkaw8GtX/dkc6nCznLRjuRFe/B/6MtYihF2lBFtP0MJ5bdVC +TymWbf8eAHAZJSrttRJuwhITQ7VqZxmaggfuxv33zotYcSIYutmNwcWi8t57QQ2c +kLQAH4xWnpkmJ+cs3BB48BHlHUyjhDlRRtQ/e7+WAEwHpXcBKhXaerKcVVhXCS55 +mHKqVzreHsl1xbfqy8WJTxeonb95rzAbd0VysudqrIU/iSi/kLaTaHjiMIfc7H+y +vNSqjMc4DeypQ0IVQG3pDILQJXrV40DSXBTFT8fWmvjMwaOoY80hTWF0dCBUdXJu +ZXIgPG1zdHVybmVyQGdvb2dsZS5jb20+wsGUBBMBCAA+AhsDBQsJCAcDBRUKCQgL +BRYDAgEAAh4BAheAFiEEO7Y55W+GH6LoZQVpD91oLZdMpyoFAmOgvjsFCRjuHWQA +CgkQD91oLZdMpypZ+xAAtjU4TPcWiHPJn19sy3tUhnf7MzuPUcda2TYwkOEKf6gL +eaIYQM2yV7ykbYr9u2geOD42S/pd1dCSvTZy56kgfq3ZFrUAdAH4sLaq1oMmBCtN +MKYvibbpz+UCs3JVU0VLNciJ3/SMV5ooYGwwdoLGcbCNm6beYAOEFr0b0GqoDg+p +H7fwWj8XxsOgYzRodrAshHdbKkavGaolmJWAoDtdLCNyADysJ7BpFg8p+fCW6Me2 +tPY7WLbZlF77urF2i2Py3iSIdZfv7b31JGL+XdXkkM6PmJLpeWiIAVGCSTcZeZ39 +zTajh3y9kxZu3ZxTXPjeOnT6wpu+F0B60rJ16BNYMOKpQpR/HCveLT8RjkKy51KZ +MWJLxwagsmSlm4+Xq8Aye0DmeyGRE2I1oYmMNDF2JSIcdYUyNX6gcSrhFLu7iU1S +8S1lyAqNgJEau502l9wFwVV1/hC0uHs8ZqZSPZvm2fTFZYGMZHG49TuK4DLaCgDE ++ul5wdh2Fn7f770UMaDmTHpLA40DIcuSsNd8AHR4yykXM1KxMXqnkzIsXhgog+fu +ovEE6peOiz9ehf7gsp8D6OiFNZ1g3RGRGMHX5wni5lLxVz9rgV9ertuZIKryyLZU +TrAwBvCGqY5APl+rM/zELKOKBVmAchl7FomSUE7MnRpuHKsJ+OaWr/hVM+rzp5jC +wZQEEwEIAD4CGwMFCwkIBwMFFQoJCAsFFgMCAQACHgECF4AWIQQ7tjnlb4Yfouhl +BWkP3Wgtl0ynKgUCYAS3BQUJFSl12wAKCRAP3Wgtl0ynKsQXEAC+AQZEOtaQK+7T +bKUruJ3uGqp03jb8wPAQwYnEuEBVrnO7mWUA4OVQNFnoOKKJvZPW4QJAw2EYdzub +ZCYmE3O8GOiNf2eRVLjsKayoDRq/kK/QNh728jLhyxNrXtDAXIvQJjYAWutjywej +kgrN+ERYJkzcJmJpolAXiCoYq1iDyrQNW+g3LMPh9yDAQYZ+pAku367pyIoDHpOX +pSA1HWQfIAczgtUpTzWH9B7XM4unvdgLShrEEnLq9ueMjJEv4cn58lX82cYu/zAv +Se4DulMFsR0B3uu7FAl73qHHl2f+Nj8vHntBe03n3bIqSnThIDAmT+HWYd7vLUOI +OWjaIybaiBUIqH1crTHqx1F9L6g5jSfXXf+IUNc2K9HOFe32VpFyBeBUMZJv+1lC +AtQ+Y0QzjGipfOYO2NE6HckT3d2pQFmaeiVGyzsuwA83xfXAf1dA209xVBBtoxTw +esyrMZVurmLN/OxRTSwueL9ZGWA7OITz//u7jCaVSOxdc1tULvLUeoX8tX34JDgo +lqyyNfw8cJulqutwjrnfGgYgBG7PqcDbZxl/KHILYAHGKS3l47lZK2CSMQ2wVpXB +Ghqbxx3CQSznx1FI3QwUOBahVS31DDZQektkZwXJ50/rUPAjUIwrXbp7ws22AMBk +zzIKHb1YHfHj5+O51IDjP0mHD3fSzsLBlAQTAQgAPhYhBDu2OeVvhh+i6GUFaQ/d +aC2XTKcqBQJfuu9PAhsDBQkRkQaUBQsJCAcDBRUKCQgLBRYDAgEAAh4BAheAAAoJ +EA/daC2XTKcqMZYP/RlqQbGc1phM0/+6RjvQNKzm9Des5Ee4CMXlq7Hm1xhDH6l/ +pBFSg2RQFMLw7y/hG8I2A55525Lj4v7xB5h0BuCkZdYo9RTl9+CwaFdqmWWwl7d8 +5ghz4P7tzUamieMFMdRCyWDf9EAVaNuHDO7q6DKxcRXhF/+zoiRbwFtkw9AZ6zW+ +upq72FgeOvu8GquDsn+Tsvj5l0O4DuOXXdNa1BA+suzSp64J1Dw1baH81NjgLb+u +9viUHBBLGs+Oego1fWF+gHljwU2oaiaPPobiBdJs0DW9qzVR4bqLscAzZ8Uye3Xk +s2ug3Op0DlHwqQ9AhHYQVEqL1Nq2VoH7HR1S4q2Wd94dWcI2Sg5oq1uxKTbkr17I +11ump/nyvABArlzB4HamZRyidfrAngYXkUaor5xvNgpIuHNr0QXGGDaB1awmQv65 +jzkxYnofT1yIWLQEoORygIty/u1VVbXl/vzKzswkzozz3O98QFld49kY5sYCqPox +Jz3+L7pAX8s25tzInryXfKpWORIcCjak0OvItejzf7cjMUs3iF1OSE1KglkMPrCq +0D93brVk9npJN42Dy15nneUz1A393Wjqh79Uj+cjXLjRTkqt0jaP1VSSzBgpBWW7 +SnBb4kTXLS7vHpuesrQm4XQ/X8djwa4F24u+LwhT6YlAehpYd9qMeQlcgxLxzsBN +BGAq+3ABCACmXnZUBQd5ybaGKpt4CpIAqknCap1Bt90DAJtIMdMhMTuIP9YNxmxo +vdNpX4FOan5LpqqDWOxb+GD68fr03jFNFpPGWLGdL/ngSgwCTiKqBxgixMqkBPb0 +PtyNRyL13z7w0QgHXu8PvXe3GMszr+lX/U3Y10+YpJ5oilIvIgsz8B1FBglULFqd +OgEXdyHC3wHj+dh/Luwcx6pauaTkeWwAwDg630lKxsKNOz/ORbayDAycrUN8ZNRf +y13IeMz1CB6ZUjeDI8L6t5SfGHJ5o17F1KEcvwBeErfecRLtnCEA9IRk3KcjrRb8 +n7fegz/y3lDzg4M6w7NhJ6XH9W4xhzrJABEBAAHCwxIEGAEIACYCGwIWIQQ7tjnl +b4YfouhlBWkP3Wgtl0ynKgUCY6C+kgUJB0p5IgGgCRAP3Wgtl0ynKsDUIAQZAQgA +fRYhBL7vSUtbKR6zAKJ/E+0u0Z+Fs2gsBQJgKvtwXxSAAAAAAC4AKGlzc3Vlci1m +cHJAbm90YXRpb25zLm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCRUVGNDk0QjVC +MjkxRUIzMDBBMjdGMTNFRDJFRDE5Rjg1QjM2ODJDAAoJEO0u0Z+Fs2gslqAH/RmX +BFn3UrNkq2NTC0v1XcYRU/N47rHXprCQz3UMjTylJLv0onsK4gn+P+vY+/ndpC4J +te47aLCcWr+Qdd7F5FTSOhFsl+TbbrkKmvJP7ApeeA5LoCFEY8zZzwzf4IaziL0x +i/6hDOCC0NCm0NOMnjDfYwfxoE4PDzRnBryOn5/0bD1mgIKKIwd5LgA4R6fsPG4N +hKgF9M8qDthOVwExm1F6vlgxFCIiO8ColuG/YZBN/h+ij5LSE0dgjKEhk9EQGJA+ +WNqEH9vrZ12HHWz6fLBE5iTBXeLKy8UQA0wWR+7Kx8W+7u9jJKKEVgdaLbZqucZ6 +3QPRLr8KRdL+SpgaV8eL6RAAvYRWewZ2sEhicQvs9cj1XNax0gUkypvuY8oNJuZp +dYnJbEvsssToLpxD6VRBBGU1hrDmfZhiT5GnwfdxKasKzOxeaN42RbQayBDpboMo +RlkJtMdcFz6Bc0S9txnW2BcdDGEFmuwLJNanpTmI48aF+zU/tfPkFTfboR7Ofg9M +o0lA0lVHohvSxOpjl2l+iQGoNOtmOMIUDVvn3nDFVVgUOBc011GJTSZZDFFJ2F0/ +atoC9ZkrEIkRmIcOPxX6lj6J79HWTSUoKnO3D0hD0EnCPchAqeae1vBt+UbAbcea +pJ4zdPEngRLP+6fwR7niR46Hc6G8Qhe8RZFtGbGwzIDl+O3YnPy4vjFzG0rIgSYg +Digm9ScAUrjeGcoXvDKYX0AkI9hU8823Lk0pQZ/qoGdzw44vVVTS33q0aNSOrNLt +dIRilgkZ1pjYUkhvQmtB8Xiw1wYAe31R+5HBOh4mAZBT1DMLjAaiik7rWAucUUxj +XGenSKbMmghe21LIp/i9L1dOR/YVy1dwO1s6KPMrZt5vCU/ajMvn7I49I6mSIlEZ +p2UTPyAlyOAaoBWUtVUQoRR0N7JBxutwkeoukwhRzW1wQUJqoDBGu8ZiYs7MJDaV +nOEF9YDGzaF3EFzvew4oVa6fPzUOKpWnG5yNZSPad7fyoWZy/UrWyniPMiDm8Zpm +81bCwxIEGAEIACYWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKgUCYCr7cAIbAgUJA4bA +QwGgCRAP3Wgtl0ynKsDUIAQZAQgAfRYhBL7vSUtbKR6zAKJ/E+0u0Z+Fs2gsBQJg +KvtwXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9wZW5wZ3AuZmlmdGho +b3JzZW1hbi5uZXRCRUVGNDk0QjVCMjkxRUIzMDBBMjdGMTNFRDJFRDE5Rjg1QjM2 +ODJDAAoJEO0u0Z+Fs2gslqAH/RmXBFn3UrNkq2NTC0v1XcYRU/N47rHXprCQz3UM +jTylJLv0onsK4gn+P+vY+/ndpC4Jte47aLCcWr+Qdd7F5FTSOhFsl+TbbrkKmvJP +7ApeeA5LoCFEY8zZzwzf4IaziL0xi/6hDOCC0NCm0NOMnjDfYwfxoE4PDzRnBryO +n5/0bD1mgIKKIwd5LgA4R6fsPG4NhKgF9M8qDthOVwExm1F6vlgxFCIiO8ColuG/ +YZBN/h+ij5LSE0dgjKEhk9EQGJA+WNqEH9vrZ12HHWz6fLBE5iTBXeLKy8UQA0wW +R+7Kx8W+7u9jJKKEVgdaLbZqucZ63QPRLr8KRdL+SpgaV8cyhhAArKxA8KqsXJ5w +f2PCQY8qTTx5lxl6NzvDmq7+SBKL8whzcLJNWLZ+Tc+XlZUUsv3ujohjAgIia+9a +8IcGih5Vg+xyRQbqgNNPcJ0rZ2fUb26sK+ngiWiCJi2J2nIMLTR81ToI58AEwLXr +goSMisrUTtUSmBNRU5TbOU72eySLioKDZ9OCKZYT7kQFTJwkXMI3JBfV+bdBLfKX +avQA7F+SElKPUGmqGfhSFFs63jNe4MAH2TddOUNocgfYYkJaI03JOohI38fubX2B +gfVt0rAfG/RyFb6bShiC0TATyH04rdFn+mnJO+81K8cYBvmsBrupoJz36NksBW5h +iVuBdZKzG11YkwQHMEvq4lmMw4ifwr9/6LJudze2lGTAiBg3QsSnJ/BmzLtewQY1 ++v41ERa3L1qVOdcA+eSRMO4xJe5KKnLOmH8JRWKDAF3fpI92ZkFZlNViRa2n/98U +FMV9Yc8EOerRDOqpdfxaPJgrGH1az88RMAf444sEnUL9tBUjIMwELQreK0CU5frV +rC/lClPCre5xU4YswIPgburs9GP3umn4ODByFEiWwb92zDjCpGxZjdJXouGWzlEr +yRWEiXHt/sFILZfBulUkVgwv5fLDBXc676qS3VJ3Bs9OlB0zmpT7l8NdQh77UdPT +Ry469+7JMtpKd1nTo9ECa0/mX0vQnKfOwU0ETodXLgEQAKvlwepeqGbkmKOTHchH +Y1cnO95BHnlOBbiflU+abvKSzR4zm/QIMccn7E0hGsAvrDSndtD2vSsVHGbCDIkl +0WNrr+z8aIP5FrOkDyLIO8rCNr+CxKt4cl7vpxQ0CP/Erq/M6jeGvBwFfbyQcM1M +/P6xVJAk1AAj0ts38c2DUOz11FQmMDy0Zwb832mfXO6lMznKkWdAl9Qql1vO4cH5 +XWn45V97nqnsg1fIK8sTov3Dr29RiW5VKuPuQgT1pIzvPCsN9Of/1Eb8nwgHSP9x +2CqUHSsomBQbvZoJIwbeWW2cziy2/jKlbsBnG/9d4X2KyS9jOIgnPULf0NoEk6qg +hqZeh1Eccegbq6VdKwz4TI3lcX9pEnU9nyAeIAcvERLbNWwWIAMd6JcriJ/SBklB +UFEn9on4Qf7ex63KoOxDjj5ze2TYuy7dqZrcIq0qmosMV8OcaY1bz7eFQdnFT6Hg +1q+yOfKptnnt0AJNdgRL/72hMU5a3CrF1stXMgtlLfz28i81+UI9wmRBFNuvFffT +tS8M6sRybbbq1WHJ0nC5XSdOfjTRRjHLoyNoJydVRMLacU8RSpdRP7r+xYjDpaUm +Imuzi+ZYF/Ym/Pt7RiKgrjtXqjyS7F9dkmE7Vt3xjPn45lwfkkYum+16FQTPIhNW +bmqnFs3Wb7pN6M/gc8VbXzkPABEBAAHCwXwEGAEIACYCGwwWIQQ7tjnlb4Yfouhl +BWkP3Wgtl0ynKgUCY6C+kgUJGO4dZAAKCRAP3Wgtl0ynKlKqEACN+UMzNu3br3SL +4o6JdCJE2xHF/D/kEX1J/yqhd8SYiR1FP1oZM28rDFIuXWTTjD1QipLyy2AnsK3U +HouA6mk57P0JEN1VoVMB/UecJWAKuDyqBlgj/m7xmLMzsL7f5hBKrhaxJBv73bgS +fRfb48W1Mi3sKEy1EzCKGLOsuH1t4HBkpVy/mJYqVfS7Q9LFNBz82QYqPabHevvY +GjnPxVfX7p2f95gHYgOBjpbH5n9Z6gMaJLyBeF/b2ExY+NxtbSA2YgYj3eDTUu+g +qKVwrBQJhZ0KqvAfTRf6MxkbXU0ZgedG3qByQwNO/d/qZADslyau6tVUaBLxQ0/r +aDpq2KUPmid5286hGK6Uf2n9ueNWHUePyBtCtZ5M9m/IG+d8d0NbJl6gzzXmdlAj +jddf836z+Pgyi2SNo9VwJRemLEVGq85BMz0Np/RiyEFoOXgeQwtLxIoHB3reV9Bw +Bgj5GKxEWNWFKbSUu0FBVS00rcqr9zU3lsDMA5oWxoSuOubIO3PbUk40JJEwJV82 +zhTHYHOvAfYRXj4wZe19S7WhzliBC1jAbFNqqpP29u0BQ9mjScl8tWHFCT/6I8b/ +H6xFa6gfgUqevVRDyOxLiXX3Yz9wo4aerf09GCz9nXpZH9tsj8s7avOzGhucgJZ0 +q/Q6Cx0tx4L6hJKadkSqgIVbXbmMkMLBfAQYAQgAJgIbDBYhBDu2OeVvhh+i6GUF +aQ/daC2XTKcqBQJgBLcoBQkVKXXWAAoJEA/daC2XTKcqq2gQALklGvNvjJGz+C1S +bVAOdIbJv1KFsLKeA4hqVNP99057I2GOEGfyeUbSFTjTeRKmjDP2iFlqLPaqgciL +cJpT3J5sCO+g4qPdP+S3I3ZL15tvg2lvdARiHKGLs3JZU9jhisuBV9YncdxNrKyC +6kktiMzbuI1yF8krLN2wImqPTB1xkqhjA0UlO9YsapYVF+ULHZ3ovljF9cC05HmP +MJkW7peANE9/x+2/oUEKfjpJkmg1Lbh3bxLmnDEmkSAOHZsysIzkJLLF0Aehjx8H +eMyCezCgcQIztnyQ/DQJs2BzL7xxnGES1akVxBEDvqzGAyUaE99miwwvIINeRlE7 +Ypy62RikrrV9akTlF9hqirM0l0PgZaYmBL0BuLlo5nS/+C1ZdcfWi60g+kFJJaES +fDQPrrqXPB5cUKbthsZSzP1pOkFWtLWVZ7MLogKio1dC9tXGsgXxgVwWCTxBz9AC +69Eimk+XvEva1dHoVgP7K0evwefwzCChz5NM/Qaq5JvpcmF7NsKk5VFPAKmqO5bf +qv7kqmkHICl23JmA18QnXEeWqKyjhxD4CuVZTHsfhm6/ZWjku1via01H8sSWdoy5 +4KNG+o+C/PsZV88k5xh4Q3eCAbhKTCtITcEDfWh747iZQEQqEwrbB/W22qXpFEYh +QVWi5Y5wdU2Onzs3OKz74WabHKdTwsF8BBgBCAAmAhsMFiEEO7Y55W+GH6LoZQVp +D91oLZdMpyoFAlxGxSEFCRGRBpUACgkQD91oLZdMpyqzpBAAhQwixclGSwkXY3OF +sW9wfyaqFwu7F0Tf1VKd+FuTHOMRapXSfTjzxJXtUC7SqoSjI3sLq69zVEMJonmJ +IRlN2nhAf3x8OTu9UVhl7qmHaa2LbDDX9au1bigsEPCVWeSAHHgMbmOSL+wilpwV +JydTndH6rgKfQALnnrV5mt6MsKshHg2QiV+bC887FPwABCUqJQYONPUD81HGJeQF +RZiX8PIRQRrXhbUbRmpvQbFRdaVB/bIJwtHXymm3FD/wAuSUKu5mxpvQKdmlVvG+ +RsfWiBZo99FOgAQjr6Z/F991x7yzwcspqiIsSlsiQRaoSwW9jHV1TIWgNgCOquGm +GbA8V01ZQdAQEzhzmEKBlFlJtK7tXZBd2cnVGWIiUnuQFg8qEyK3UCOPiEUnKdYt +M64sKeQbO4pC9otl9oRYyr98SWjxrqTUrXKA6xpuO1TAx6lH/jpgPy6yqHgspP7c +NgTRARW6BNYD0ULI8BnSgr5g7O7lWDWNQ6SK04XHTmtBRqTA/EkAC6flHGXtBbHS +nnHFSf9bM+Q5Tq4g1HeNH5TH0vaJm4OJ25BM4muhordBm0vJhYmqEbkLT8k1zl8W +ibl+0H35L1uYbr2xu0Tn0aMqMUfdFJYr94HjPokrSrFyxDw6PrmG+1xFDKisaUin +niJiHWE9qCGEDH2heisdY5brVdPCwXwEGAECAA8CGwwFAliRYVkFCQ3McSsAIQkQ +D91oLZdMpyoWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKp/kEAC0n6/tsDFnlpuJVWro +8f2En6xCPmJ8FGTiRi+uiv3noh+p7WX4eUVDHenEEvIa1t/JSk8DD93Y3Bcwk6gH +foAAjf62bjKSulJ6tXhjz7P9F1O6dfSRgF6KB2O73sr/Mf9XZbrGgXrTkV05V0fj +Oh5RJblnETkCqeMImRiGCeIvxzVPNy24V6cyusr7J+TnLa0pQOoSTPqDxrGsq0t5 +okFVkBOIRWuth27WYD1uLChVRXtFa/+Ks08LQq8Fva058dwrPNYRvzm1tpZihblT +4Ud07qs3yy6Gwt+ibCHVCmHZQ5aZMTCZkGAatdJoQmbIp7mdiPDb+EGhBtDadjvN +sVLR72Qwrzq9VWSo5/VCklZfYBQmUy83GyN6jlETblVpxyl0riVdFH0SZvLdXOPN +g/Af12k41O9wmZqd/5leFPqPiExZSVKxVW5pswTzHnxPmdcEMaThE97YRB3VwKgk +mWlV3CqjHg9CexK6lkIOi/2W+jhBYYGceWYVyOtWT63gv7/Nmj/3dA4fMhUXkFkc +xP7XRV/fl2YmD7kcDOl71MY0qgLQLnvnksf9bHvRza+DkRcHdKFRoJ9lnCePOQKI +qa9rkmU4VZVdcO7m0DBLahXQQm5ytpXvPZBbe+E1I5D3Vz5qZij9nu+RGcPJk8uW +yg6VxE2OvlTj+VjJLQAlL9ENncLBfAQYAQIADwIbDAUCVACa8wUJCxzeRQAhCRAP +3Wgtl0ynKhYhBDu2OeVvhh+i6GUFaQ/daC2XTKcqRf8P/32HSus0zRfO9y7r2nsS +fURIf/dcE5HfhZ35MGevx7ueFIpioLCq96Of6zN1+uNKzegdlpiTj5FkYCdXbNAK +4yokHJdJY/Xnqh70d8L3jrl/Awv6g2MJDlyddwhjBW3dx40ozIiNCn64/P9uCvc6 +G5NteKZJpaFdoU257/iVZ6CUv4FQPRUBBrqoR3ksbvPYti0NnQowkB5GtwhhXHMm +gAHviAf1IPc5avQOxXAeVaCmG3W4RoQq432sYgdgqAW2uX+z9fiEKKOj7w0UXjLJ +sH4rFYNPc7xVrE1ylJVbaVbl1ZeZxZDw7KBGjEG8DHwcCXnmlRdQLxuxWW6F7kM5 +QH3OnxfbYvydrkNDFC9uNWbehn7ScjhQy2mx4WAQbJsCeVo5QwdOAJ5kclrMeJXO +E58K0dKAkS2jkeD1Na0FohqY2qEZD5dMD23xlt1bslSp09k9xrkq9wysMAU2SsQ9 +gvhyaiFbTgoqU7LfTu8Wj3iz4m/V1cc3pEykb9lCx2UPo8rq/kt3paSREeP9o4mK +bAcigdsXX2OARwDkOMhxD8JQc8xVshwLG922/9hsvxBUDLrSbGaDgqLVXb3ntyxF +c6BSFoEP7s3GOhxfIA0PbUKlpWMaphtSTM+9GKb9OICAzfN0FhGep9af7LTI0tdt +RDD1ZXudNPr9LJ6qpyKGS47EwsF8BBgBAgAPBQJOh1cuAhsMBQkFo5qAACEJEA/d +aC2XTKcqFiEEO7Y55W+GH6LoZQVpD91oLZdMpyq3Jg//RWiOpPn8smxwYJ3iICTQ +mD+HMJNL/tSsRAnCSwGsUfTnuurdPMrXho4+J1TKqtNBtunfIAL1RujeC6SeISIO +K434DIzQZVsotSV6Cxr3vv+sWNcuEQTjlKnCXNR+RcoPliMvn/K9UupLPuqTNm1H +R7aKO+aeWlV+3la2QjLYQliBmrS54sQkAihI1xt08fxnGh5W3InPI/R/7Bz59fqO +L3HH2wykui4PrFZsw43GH7o5VDGyMFAkF9P8JHVPaoVSRRqezYKe3lp2odOghl89 +Hy2qRlY7rks6j5tyewYDX07zZmwPRPpwc+V2tSEMLOm1822G98yVtVtFC7N9Ecyh +lpWfGf+mnJDgDem8xDuTYTzSfQv60HVEjW9kxTQu6y1oeLI4wbq6v3q+tumvIqSF +u6wZsOqtPFX03ENuJqQM+elDdrihX9iZn31T34Li8kNgM5F0nqqpSJxDfXj5UJu6 +9n49jEgQN2HZZXQtIb6qg9XLeVEthHp6AwC4Y1HlYpb6WdbZpUVz1cEwdBol4e77 +UrRtwwdG9/vezsrRYgXb7HJ/WzVuIqa4/Fh7Mup+2yKW7Pr8r4S38uuIHpY0O5i6 +RKJz381Azq8Hu8XRwVHRM1rwpsliDcT8hoID4uYlyTG9vjMsYgnDG9BhJMWiBQAy +oUJZVxkU/PpmXg85HRyyNaTOMwRlouUuFgkrBgEEAdpHDwEBB0AYoXrYJj167gsi +HhCmC8Zon14bt4eMTjM1gLHuDkdyK8LBfAQYAQgAJhYhBDu2OeVvhh+i6GUFaQ/d +aC2XTKcqBQJlouUuAhsgBQkDwmcAAAoJEA/daC2XTKcqsywP/152eA5CrjvDw/VO +CjXexD58URmV/AUPPtm7+TP3BxWu2BpXLQsSH8C8qDuU3rs/Fv/CUN5QvX3fs/pA +bRmlPPCZ/bxizzIOBu1jaoJrrYQA/u5sWFXi0gX8PZ1QPDnDjD223SftJiNWhuBK +yY1CYgMXbOPT7G/dx4ZT4Exb26OmkcI48plhiI0z5OhWAXp+DAuLKURPYhIhmrD/ +jP5LC+y3OMijwaDiQbmtVVdDxLfEZm+J8ZHACbqrDlhcb6xeKlmL0cdM5VgPOYCc +UyiLMonB8pkb2FuboDJdjk59ClqUdWYrIuJQfWxerEYnXbzCW7PLnecIUOZp7mxA +JzFqaz30lKcWi9tLuIDXhF37hc7q7JGWK10P6IHj5PLOtQMobLhXZs0orydB/KyS +0vFlyV45D/mW9gBElqf47TG37gRYdFgOpOMVdMZ1INbz0oVLbTcI9uhVx83XkmK9 +ek1ygmeD71uDLs94tDeHkZSbvmg92zT0c38MViZQkWybvNOdFu2ZcI1ui9cVuWoU +dw8Tn/RAW3n44MBxmZioNNvhIS/m5HSmpw5c6J1tLxin3COUZeLXxtsmv7MKvyoR +1Cc8I291wEz3IkVJu6bPjxy7fPrR3hz+4CGx7shSCJgflb+rMbP4Vf0s9nsQpoki +mjOBaMKc/zHE5HdHVszBI63BP2bzzjMEYQr6PRYJKwYBBAHaRw8BAQdAGWG/mhW0 +D1Kdn9OgdklH01wLQ2egl9/0vjj5y4SbKQfCwlQEGAEIACYCGwIWIQQ7tjnlb4Yf +ouhlBWkP3Wgtl0ynKgUCY6C+kgUJBmp6VQDiCRAP3Wgtl0ynKsAWIAQZFggAfRYh +BF6vIQSahrilTMsb+qzrKXQMmk6XBQJhCvo9XxSAAAAAAC4AKGlzc3Vlci1mcHJA +bm90YXRpb25zLm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ1RUFGMjEwNDlBODZC +OEE1NENDQjFCRkFBQ0VCMjk3NDBDOUE0RTk3AAoJEKzrKXQMmk6XfFYA/1utiSdy +yKd4qEeZnLflvz5aW88TVuSlzodKOhXS6PoLAP94cztfBCjcM4f1hp+yFGSQA1Ct +Oqq1dVWBEjjqMv/RAwBWEACmVO8qrKOSfUvPoTSP6rwbCMllDX7jAeUF5NioJmdC +zH7bob6TCqkNfuOusmBu+6mDx8gYYeUbO8VtSey6f+Gh7bS3cO9L0DSgr8XaDosS +Ql6jjN0ZvDKCeBTKe2s2yYBNfKwCInxO4oUdPusxkbizwvyRJYe/BvcbHKG2kdXz +58WMUZG7qL/CYfkze+hSvJbia56QYK6UV8/dYEFke/2v7L16q7qG2QvIVjc9igcm +YivYCYxsheo428UzIInxGcubkwNCwYakcobjhjBNt46HGmImou0yUtMzb/BSGoQR +TGr4likUa2cqmlwgghY4d9+tb0ZCniamlnxy+6aoGpBdcUuB8+b51gQGSgB9OzId +25GA4AdKeQPrR2DOCnrYZ3BRJJ4bSCz1YanwOoS3BQ+anzlRV0n+NRgJ3slM+qhK +28XgDJODbB276VCfCZZF/24hZgNChfzFYsbVdABnkdQPJHN8Rv9/j2IaDyJNDetz +4tk9QpnmmFA1SPb6y3EhOsOJooh1+JjFoRaarJIagTYfgG9165efEQbO86IrDT7L +WquwL2LyWNWFb2s7U1Le66g3QkkodWyOz2ZSg8KgNGJeuw6tyMuwgNWhOZ60pIDo +y8kQzbribgnTj8x3uJSy1JMT1ra54yWxfeyeWozkTO5MWiOdP8g9nSizSJTcDMrm +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 +pyrAFiAEGRYIAH0WIQQWI4p9kkSLArexA0S2sc6uUQPbBwUCZaLlF18UgAAAAAAu +AChpc3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0 +MTYyMzhBN0Q5MjQ0OEIwMkI3QjEwMzQ0QjZCMUNFQUU1MTAzREIwNwAKCRC2sc6u +UQPbB9XaAQDbJ2l9rBYW4cR7TIJukyNzMVZEomGD3xccJTegABXMswD/SG6c8g4p +V55WHegiR6hgNS9QQe/CIs9ic6vIhM1v2QsVDA/+IMBfMDJQ6sYKu1sArToqiq0Z +x04BLQdesgvpg6Xho4kKVknyWByggykz/0+disE0QeV+Nl4sm6ir+WqKDgRiEORe +x9lUMi6lBlmmYlTdn2n/x14T8+8AwhcH9+Hrc9ULJUMj0Yb/c9uJp9dCOFyeWlkw +Tou15Bs6M9JWqp9vkm9ufhNf7mMqqU3PeairGWcEqTKqs4zsOfHxjzV7Z8s8vrZ+ +5L3kb16Am/mK7NMZGa0NRIoK7wbrnpgAajpr8iQBE9BPoUYFRGLiIo047Di8rT1B +wWFl8sIAYhqtEYCejuCceIYXPzZNzjTrJT28vtMFbAy3Sm/Xp0KB7NmqVaFl94lq +BCZpiRLo/cKc8tZ+9vk8j15aa8GdvRirRDnt1qNVcmdOJb8W769UVGNEBHv/88d4 +z4OHY5bUHOnmPp8BHbOFgmVcOMpqpB+h5kIRj4TBD/o3uPcQ4J/qmwM8gLYbMIKd +uKR3vFxniLc4WgKCe3Ois0stymT4DQL5FdsR/VEO1d5hqp37CR/5+SWs9AxPk6P1 +54kP7EQKwmPoGtciT4+PMtn89JMxmH0Qo6FblYsCgBlK2H1lLbWgPPJ/3UsJLuBC +sCEy2YaV3kemh4CL5nwNwWoCAeztT+MYsoQ3+N3Sm5twtR9ON3u89hvtXa6G8EVN +40A8/Jr10Jr/kTnQghnOUgRgKb6bEwgqhkjOPQMBBwIDBNQE4USOt6mOaT7Om2in +i9q3W2bAMnAnKFef4fnj/PpIXn3pxtfFetkyMCbO7anzbtLKOGSorcuVNK6Dj9OC +IE/CwZYEKAEIAEAWIQQ7tjnlb4YfouhlBWkP3Wgtl0ynKgUCYCsf7iIdAVN1cGVy +c2VkZWQgYnkgMHhFRDJFRDE5Rjg1QjM2ODJDAAoJEA/daC2XTKcq5D8QAIanccXk +EdQ/ULOigVg99hnZ28kiHWCTWXfHqhfOc2gvRuWBXtu5UR/HfA7BtM2Q4PW2Liy5 +uyfOiavttUiI7g9YR8Sw3dHDHpRtlMLVutzNevfiewJf2WjwxRA5qarpBYvE7yZF +WLm3mwJKChHR1qIR52yB3zS3uZuiZ0NFGN/ls8kJpYkVJhM5Ov35GoLRyKhffDJl +TY77+4G+vWCoSW1SlMv3XkZ5Tsv64DizrnmkPonjaYzgenD6tWNDyZJVxHSD9+dC +MaMQ7KF7gGIjwnBxqr7PRbS/CXKWuALivj3d9G9IElIjiZ80skJ213uniVETpRFw +olvuY+xa3gxYemyjOZwIBrDOj4j6wCT9RcoBuauVyobaCTspxXVaCh8+bygXxva0 +1KOxreoVRxmYRWOGlyP+JSLBy0qNg7AlQfqiWtc8bQj7837/bHcx73iIX1JDisdq +Pj49aiqmKoo/mcBFdv76zNlZV5I+XNkpJAEAfhFMXJg+tW2hxFcatVtZ7tzQ+lac +wRXPF8rWR+SCz6+33yNg2YJrJ6xXc39Ll2intqgHtmp94ZcCHb2ZWSSzN0SvgsUB +z7hUwjyBLjANh9DUp3eNAgMACa4CTEIOiRrRccrZP0nueV9zsjzqZdYsc+zGCoJa +GYTKG/3rLD560L2K1nBwvxifOw5zKqNqV0xnwsJUBBgBCAAmFiEEO7Y55W+GH6Lo +ZQVpD91oLZdMpyoFAmApvpsCGwIFCQOH/WwA4gkQD91oLZdMpyrAFiAEGRMIAH0W +IQRVO5ofcovqVfhjXwf0XCQx74taZgUCYCm+m18UgAAAAAAuAChpc3N1ZXItZnBy +QG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0NTUzQjlBMUY3MjhC +RUE1NUY4NjM1RjA3RjQ1QzI0MzFFRjhCNUE2NgAKCRD0XCQx74taZn2qAP4sOg0c +eNS23ns2fkxE2foeGT5zHnD0iq5BbBAr+JNw7AEA2zLfVC3XT1I5DJyhJVuVfoUN +V5rxwYjlLsF79nngPa0KXBAAh/aYUm36v847ivAXhCX5CpKFxXANuy7KjrFeU0Nv +l9yCo6QdAZKkcyCwAlW34sdcdg7nGh9s9UDv04A6cqpnaumKGdcNUF0pn7TqaXgM +TPq1Ynlb7t/x8hIeYtVqYWaTs9k+pAuqeMBfJjY7XMEMnElN9jZN8CJzzTc3JykR +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 +h79aly1rE0Gs559JqTXJSu8K +=ABzU +-----END PGP PUBLIC KEY BLOCK----- diff --git a/libxcb.spec b/libxcb.spec index 864923b..bf1fc2a 100644 --- a/libxcb.spec +++ b/libxcb.spec @@ -1,7 +1,7 @@ # # spec file for package libxcb # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,7 +23,7 @@ %bcond_without python2 %endif Name: libxcb -Version: 1.15 +Version: 1.17.0 Release: 0 Summary: X11 core protocol C library License: MIT @@ -101,6 +101,15 @@ protocol, improved threading support, and extensibility. The X Damage Extension allows applications to track modified regions of drawables. +%package -n libxcb-dbe0 +Summary: X11 Dbe Extension C library +Group: System/Libraries + +%description -n libxcb-dbe0 +The X protocol C-language Binding (XCB) is a replacement for Xlib +featuring a small footprint, latency hiding, direct access to the +protocol, improved threading support, and extensibility. + %package -n libxcb-dpms0 Summary: X11 DPMS Extension C library Group: System/Libraries @@ -342,6 +351,7 @@ Summary: Development files for the X11 protocol C library Group: Development/Libraries/C and C++ Requires: libxcb-composite0 = %{version} Requires: libxcb-damage0 = %{version} +Requires: libxcb-dbe0 = %{version} Requires: libxcb-dpms0 = %{version} Requires: libxcb-dri2-0 = %{version} Requires: libxcb-dri3-0 = %{version} @@ -390,8 +400,8 @@ libxcb. %prep %setup -q -%patch1 -%patch2 -p1 +%patch -P 1 +%patch -P 2 -p1 %build NOCONFIGURE=1 ./autogen.sh @@ -412,6 +422,8 @@ find %{buildroot} -type f -name "*.la" -delete -print %postun -n libxcb-composite0 -p /sbin/ldconfig %post -n libxcb-damage0 -p /sbin/ldconfig %postun -n libxcb-damage0 -p /sbin/ldconfig +%post -n libxcb-dbe0 -p /sbin/ldconfig +%postun -n libxcb-dbe0 -p /sbin/ldconfig %post -n libxcb-dpms0 -p /sbin/ldconfig %postun -n libxcb-dpms0 -p /sbin/ldconfig %post -n libxcb-dri2-0 -p /sbin/ldconfig @@ -464,6 +476,9 @@ find %{buildroot} -type f -name "*.la" -delete -print %files -n libxcb-damage0 %{_libdir}/libxcb-damage.so.0* +%files -n libxcb-dbe0 +%{_libdir}/libxcb-dbe.so.0* + %files -n libxcb-dpms0 %{_libdir}/libxcb-dpms.so.0* diff --git a/n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch b/n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch index f1f7774..a7ef08f 100644 --- a/n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch +++ b/n_If-auth-with-credentials-for-hostname-fails-retry-with-XAUTHLOCALHOSTNAME.patch @@ -11,11 +11,11 @@ Signed-off-by: Egbert Eich src/xcb_auth.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) -Index: libxcb-1.12/src/xcb_auth.c +Index: libxcb-1.16.1/src/xcb_auth.c =================================================================== ---- libxcb-1.12.orig/src/xcb_auth.c -+++ libxcb-1.12/src/xcb_auth.c -@@ -109,7 +109,7 @@ static int authname_match(enum auth_prot +--- libxcb-1.16.1.orig/src/xcb_auth.c ++++ libxcb-1.16.1/src/xcb_auth.c +@@ -110,7 +110,7 @@ static int authname_match(enum auth_prot #define SIN6_ADDR(s) (&((struct sockaddr_in6 *)s)->sin6_addr) @@ -24,7 +24,7 @@ Index: libxcb-1.12/src/xcb_auth.c { char *addr = 0; int addrlen = 0; -@@ -119,6 +119,8 @@ static Xauth *get_authptr(struct sockadd +@@ -120,6 +120,8 @@ static Xauth *get_authptr(struct sockadd int dispbuflen; Xauth *authptr = NULL; @@ -33,38 +33,41 @@ Index: libxcb-1.12/src/xcb_auth.c family = FamilyLocal; /* 256 */ switch(sockname->sa_family) { -@@ -161,18 +163,23 @@ static Xauth *get_authptr(struct sockadd +@@ -163,18 +165,23 @@ static Xauth *get_authptr(struct sockadd addrlen = strlen(addr); } - authptr = XauGetBestAuthByAddr (family, - (unsigned short) addrlen, addr, - (unsigned short) dispbuflen, dispbuf, -- N_AUTH_PROTOS, authnames, authnameslen); +- N_AUTH_PROTOS, (char **)authnames, authnameslen); - // && !phostname - if ((!authptr || !authptr->data_length) && family == FamilyLocal) { - if ( (addr = getenv("XAUTHLOCALHOSTNAME")) ) { + if (*stage == 0) { + authptr = XauGetBestAuthByAddr (family, -+ (unsigned short) addrlen, addr, -+ (unsigned short) dispbuflen, dispbuf, -+ N_AUTH_PROTOS, authnames, authnameslen); ++ (unsigned short) addrlen, addr, ++ (unsigned short) dispbuflen, dispbuf, ++ N_AUTH_PROTOS, (char **)authnames, authnameslen); + *stage = 1; + return authptr; + } + if (*stage == 1) { + if ((!authptr || !authptr->data_length) && family == FamilyLocal && (addr = getenv("XAUTHLOCALHOSTNAME"))) { authptr = XauGetBestAuthByAddr (family, - (unsigned short) strlen(addr), addr, - (unsigned short) dispbuflen, dispbuf, - N_AUTH_PROTOS, authnames, authnameslen); +- (unsigned short) strlen(addr), addr, +- (unsigned short) dispbuflen, dispbuf, +- N_AUTH_PROTOS, (char **) authnames, authnameslen); ++ (unsigned short) strlen(addr), addr, ++ (unsigned short) dispbuflen, dispbuf, ++ N_AUTH_PROTOS, (char **) authnames, authnameslen); } + *stage = 2; + return authptr; } return authptr; } -@@ -320,7 +327,7 @@ static struct sockaddr *get_peer_sock_na +@@ -329,7 +336,7 @@ static struct sockaddr *get_peer_sock_na return NULL; } @@ -73,7 +76,7 @@ Index: libxcb-1.12/src/xcb_auth.c { /* code adapted from Xlib/ConnDis.c, xtrans/Xtranssocket.c, xtrans/Xtransutils.c */ -@@ -345,7 +352,7 @@ int _xcb_get_auth_info(int fd, xcb_auth_ +@@ -354,7 +361,7 @@ int _xcb_get_auth_info(int fd, xcb_auth_ gotsockname = 1; } @@ -82,11 +85,11 @@ Index: libxcb-1.12/src/xcb_auth.c if (authptr == 0) { free(sockname); -Index: libxcb-1.12/src/xcbint.h +Index: libxcb-1.16.1/src/xcbint.h =================================================================== ---- libxcb-1.12.orig/src/xcbint.h -+++ libxcb-1.12/src/xcbint.h -@@ -219,7 +219,7 @@ int _xcb_conn_wait(xcb_connection_t *c, +--- libxcb-1.16.1.orig/src/xcbint.h ++++ libxcb-1.16.1/src/xcbint.h +@@ -232,7 +232,7 @@ int _xcb_conn_wait(xcb_connection_t *c, /* xcb_auth.c */ @@ -95,11 +98,11 @@ Index: libxcb-1.12/src/xcbint.h #ifdef GCC_HAS_VISIBILITY #pragma GCC visibility pop -Index: libxcb-1.12/src/xcb_util.c +Index: libxcb-1.16.1/src/xcb_util.c =================================================================== ---- libxcb-1.12.orig/src/xcb_util.c -+++ libxcb-1.12/src/xcb_util.c -@@ -494,6 +494,7 @@ xcb_connection_t *xcb_connect_to_display +--- libxcb-1.16.1.orig/src/xcb_util.c ++++ libxcb-1.16.1/src/xcb_util.c +@@ -516,6 +516,7 @@ xcb_connection_t *xcb_connect_to_display char *protocol = NULL; xcb_auth_info_t ourauth; xcb_connection_t *c; @@ -107,7 +110,7 @@ Index: libxcb-1.12/src/xcb_util.c int parsed = _xcb_parse_display(displayname, &host, &protocol, &display, screenp); -@@ -510,6 +511,7 @@ xcb_connection_t *xcb_connect_to_display +@@ -532,6 +533,7 @@ xcb_connection_t *xcb_connect_to_display } #endif @@ -115,16 +118,16 @@ Index: libxcb-1.12/src/xcb_util.c fd = _xcb_open(host, protocol, display); if(fd == -1) { -@@ -525,7 +527,7 @@ xcb_connection_t *xcb_connect_to_display - goto out; +@@ -545,7 +547,7 @@ xcb_connection_t *xcb_connect_to_display + if(auth) { + c = xcb_connect_to_fd(fd, auth); } - -- if(_xcb_get_auth_info(fd, &ourauth, display)) -+ if(_xcb_get_auth_info(fd, &ourauth, display, &stage)) +- else if(_xcb_get_auth_info(fd, &ourauth, display)) ++ else if(_xcb_get_auth_info(fd, &ourauth, display, &stage)) { c = xcb_connect_to_fd(fd, &ourauth); free(ourauth.name); -@@ -534,8 +536,11 @@ xcb_connection_t *xcb_connect_to_display +@@ -554,8 +556,11 @@ xcb_connection_t *xcb_connect_to_display else c = xcb_connect_to_fd(fd, 0);