libgcrypt20-1.10.3-150600.3.9.1<>,hfp9|so>d\;UzsY]֚Lъ ^Do)CCڀf=3t/tOhr"XڢkA,%T&6g>?1$ߊe'5ĊW]Gsh(%:euYMv9KRkym&׊ΰ^B4$z0{]}XoUAl| 2[Jbı_x%n{+CǭEfj4u>C,?d " 9  #4Y_h   ( 8 \<d(t i( 8 k9 `k:k>@BFGHXIŘXŨYZ[\,]l^ bǞcGdefluv(wxHyʈ zʼClibgcrypt201.10.3150600.3.9.1The GNU Crypto LibraryLibgcrypt is a general purpose crypto library based on the code used in GnuPG (alpha version).hfh04-armsrv2_SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/System/Librarieshttps://gnupg.org/software/libgcryptlinuxaarch6421D!n `+FHg2A큤A큤A큤hfPhfPhfPhfPhfQhfe0zeSaeS`qe0zR7 Y$Uhfe0ze0ze0za4440a78ef2541eebf94e36112ec795c9be63732f1613ff8d79e08018ea6e7edc5b50971a811c31215ff7be581cae7659b63b43d413a4b389b1ab0e8e8789eaeb4b2437d9ba328f7f8215753960a20f5558b28d1a06b708bbbd544c5eef1a97ee3bc9ca3830c0aa7c793bb8a8e3683a21f0b643dfaf5f74460b0e71ff141895f8e09961ada87a5c61d12badc57f7d4516f3397ce137f0031afd1fd93159d29f90f7a4c95e1f1e5bb4b6c0b214a0cf44b497c43a9d796bfddbe729986ae88ab733a7a30ecbbb421c0acac3d7e27359ff2fcd80b2bb14e643456fc26cccfd2b2ec6d3eb2da4dd3fd7fd4e0a9cd53bff761ebd12827a90012de478537e87c8e70a0a2dea5f8bf4a444512f010f49ed3c785de5101a8b57fe3f202b1d7740f432a0a32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670ca0061fc1381a3ab242310e4b3f56389f28e3d460eb2fd822ed7a21c6f030532819030c60337759c3411dc480a303a4275657a5734e6ae65b24bfb68a7ecc4eflibgcrypt.so.20.4.3rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlibgcrypt-1.10.3-150600.3.9.1.src.rpmconfig(libgcrypt20)libgcrypt.so.20()(64bit)libgcrypt.so.20(GCRYPT_1.6)(64bit)libgcrypt20libgcrypt20(aarch-64)libgcrypt20-hmac@@@@@@@@@@@     /sbin/ldconfig/sbin/ldconfigconfig(libgcrypt20)ld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.25)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libgpg-error.so.0()(64bit)libgpg-error.so.0(GPG_ERROR_1.0)(64bit)libjitterentropy.so.3()(64bit)libjitterentropy3rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.10.3-150600.3.9.13.4.03.0.4-14.6.0-14.0-15.2-14.14.3hFh@gg@g@g@g@g@g@eee@e@e\eTe.w@e@dkY@d5KdxcOc!@c@ccc@bb@bX b9@a a@aLa@a@a@a(@azaI@aI@a#a#`#@`P@`~@`-@`>`@`` l_@_c^@^@^H^@^@^|@^j$@^U @^!]@]e@]]ʞ]i]^@] ] \\@\C@\@\@\@\[@[դ[:[!@Z@Z@ZZ1@YYu@YqYTY3@Y1S@XXRXOWF@WQW9@W9@VVUUJ@T@TTԬTԬTԬTZ@angel.yankov@suse.comangel.yankov@suse.comlucas.mulling@suse.comlucas.mulling@suse.comlucas.mulling@suse.comlucas.mulling@suse.comlucas.mulling@suse.comlucas.mulling@suse.comlucas.mulling@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.comdmueller@suse.comotto.hollmann@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.commpluskal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.comcoolo@suse.comdennis.knorr@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.cominfo@paolostivanin.comandreas.stieger@gmx.depmonreal@suse.compmonreal@suse.compmonreal@suse.compmonreal@suse.comandreas.stieger@gmx.depmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.comvcizek@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.comandreas.stieger@gmx.dejsikes@suse.depmonrealgonzalez@suse.compmonrealgonzalez@suse.comjsikes@suse.dejsikes@suse.dejsikes@suse.devcizek@suse.comvcizek@suse.comvcizek@suse.compmonrealgonzalez@suse.comvcizek@suse.comastieger@suse.comschwab@suse.dekbabioch@suse.compmonrealgonzalez@suse.compmonrealgonzalez@suse.comfvogt@suse.comastieger@suse.comastieger@suse.comjengelh@inai.deastieger@suse.comastieger@suse.comastieger@suse.compmonrealgonzalez@suse.comrmaliska@suse.comastieger@suse.comastieger@suse.commpluskal,vcizek,astieger}@suse.comastieger@suse.compjanouch@suse.depjanouch@suse.deastieger@suse.comastieger@suse.comvcizek@suse.comdvaleev@suse.comastieger@suse.comastieger@suse.comcoolo@suse.comdimstar@opensuse.orgcoolo@suse.comandreas.stieger@gmx.de- Security fix [bsc#1221107, CVE-2024-2236] * Add --enable-marvin-workaround to spec to enable workaround * Fix timing based side-channel in RSA implementation ( Marvin attack ) * Add libgcrypt-CVE-2024-2236_01.patch * Add libgcrypt-CVE-2024-2236_02.patch- FIPS: Pad PKCS1.5 signatures with SHA3 correctly [bsc#1241605] * Add libgcrypt-FIPS-sha3-asn.patch- FIPS: Differentiate non-compliant flags in the SLI [bsc#1225939] * Add libgcrypt-FIPS-SLI-Differentiate-non-compliant-flags-in-the-SLI.patch- FIPS: Implement KAT for non-deterministic ECDSA [bsc#1225939] * Add libgcrypt-FIPS-SLI-cipher-Add-KAT-for-non-rfc6979-ECDSA-with-fixed-k.patch- FIPS: Disable setting the library in non-FIPS mode [bsc#1220893] * Add libgcrypt-FIPS-disable-GCRYCTL_NO_FIPS_MODE.patch- FIPS: Disallow rsa < 2048 [bsc#1225941] * Mark RSA operations with keysize < 2048 as non-approved in the SLI * Add libgcrypt-FIPS-SLI-Disallow-RSA-keys-with-size-lt-2048.patch- FIPS: Service level indicator for libgcrypt [bsc#1225939] * Factor out `prepare_datasexp_to_be_signed` for FIPS SLI * Add libgcrypt-FIPS-SLI-Factor-out-data-SEXP-preparation.patch * Include missing checks for EdDSA and ECDSA for FIPS SLI * Add libgcrypt-FIPS-SLI-Only-allow-defined-digest-algo-for-EdDSA.patch * Add libgcrypt-FIPS-SLI-Reject-use-of-SHAKE-when-its-ECDSA-with-RFC6979.patch * Include upstream patches for FIPS SLI for libgcrypt * Add libgcrypt-FIPS-SLI-Introduce-an-internal-API-for-FIPS-service-indicator.patch * Add libgcrypt-FIPS-SLI-Introduce-GCRYCTL_FIPS_SERVICE_INDICATOR-and-the-macro.patch * Add libgcrypt-FIPS-SLI-Implement-new-FIPS-service-indicator-for-gcry_kdf_derive.patch * Add libgcrypt-FIPS-SLI-Implement-new-FIPS-service-indicator-for-gcry_md_hash_*.patch * Add libgcrypt-FIPS-SLI-Add-t-digest.patch * Add libgcrypt-FIPS-SLI-Fix-t-digest-for-a-minimal-configuration.patch * Add libgcrypt-FIPS-SLI-Extend-tests-t-digest-to-test-hmac-too.patch * Add libgcrypt-FIPS-SLI-Fix-comment-in-t-thread-local.patch * Add libgcrypt-FIPS-SLI-Change-the-internal-API-for-new-FIPS-service-indicator.patch * Add libgcrypt-FIPS-SLI-Implement-new-FIPS-service-indicator-for-gcry_md_open-API.patch * Add libgcrypt-FIPS-SLI-Add-tests-for-md_open-write-read-close-for-t-digest.patch * Add libgcrypt-FIPS-SLI-Implement-new-FIPS-service-indicator-for-gcry_mac_open.patch * Add libgcrypt-FIPS-SLI-Implement-new-FIPS-service-indicator-for-cipher_open.patch * Add libgcrypt-FIPS-SLI-Add-gcry_mac_open-tests.patch * Add libgcrypt-FIPS-SLI-Rename-t-fips-service-ind.patch * Add libgcrypt-FIPS-SLI-Move-KDF-tests-to-t-fips-service-ind.patch * Add libgcrypt-FIPS-SLI-Add-gcry_cipher_open-tests.patch * Add libgcrypt-FIPS-SLI-gcry_md_copy-should-care-about-FIPS-service-indicator.patch * Add libgcrypt-FIPS-SLI-Implement-FIPS-service-indicator-for-gcry_pk_hash_API.patch * Add libgcrypt-FIPS-SLI-Introduce-GCRYCTL_FIPS_REJECT_NON_FIPS.patch * Add libgcrypt-FIPS-SLI-Fix-the-previous-change.patch * Add libgcrypt-FIPS-SLI-Rejection-by-GCRYCTL_FIPS_REJECT_NON_FIPS-not-by-open-flags.patch * Add libgcrypt-FIPS-SLI-Add-behavior-not-to-reject-but-mark-non-compliant.patch * Add libgcrypt-FIPS-SLI-Add-rejecting-or-marking-for-gcry_pk_get_curve.patch * Add libgcrypt-FIPS-SLI-Add-more-tests-to-tests-t-fips-service-ind.patch * Add libgcrypt-FIPS-SLI-Check-DATA-in-gcry_pk_sign-verify-in-FIPS-mode.patch * Add libgcrypt-FIPS-SLI-Fix-memory-leak-for-gcry_pk_hash_sign.patch * Add libgcrypt-FIPS-SLI-Improve-__thread-specifier-check.patch * Add libgcrypt-FIPS-SLI-mark-non-compliant-cipher-modes-as-non-approved-in-the-SLI.patch * Add libgcrypt-FIPS-SLI-cipher-Don-t-differentiate-GCRY_CIPHER_MODE_CMAC-in-.patch * Add libgcrypt-FIPS-SLI-cipher-Rename-_gcry_cipher_is_mode_fips_compliant.patch * Implement `hex2buffer` in tests/t-common.h for FIPS SLI testing * Add hex2buffer-Factor-from-existing-uses.patch * Remove redundant/reworked patches now in FIPS SLI * Remove libgcrypt-FIPS-SLI-pk.patch * Remove libgcrypt-FIPS-SLI-hash-mac.patch * Remove libgcrypt-FIPS-SLI-kdf-leylength.patch * Rebased patches: * libgcrypt-1.10.0-allow_FSM_same_state.patch * libgcrypt-no-deprecated-grep-alias.patch * libgcrypt-FIPS-rndjent_poll.patch * libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch- FIPS: Consider deprecate sha1 [bsc#1225942] * In FIPS 180-5 revision, NIST announced EOL for SHA-1 and will transition at the end of 2030. Mark SHA1 as non-approved in SLI. * Add libgcrypt-FIPS-SLI-md-Make-SHA1-non-FIPS-and-differentiate-in-the-SLI.patch * Add libgcrypt-FIPS-SLI-cipher-Differentiate-SHA1-with-GCRY_FIPS_FLAG_REJECT_MD_SHA1.patch- FIPS: Unnecessary RSA KAT Encryption/Decryption [bsc#1225936] * cipher: Do not run RSA encryption selftest by default * Add libgcrypt-FIPS-SLI-Do-not-run-RSA-encryption-selftest-by-default.patch- FIPS: Make sure that Libgcrypt makes use of the built-in Jitter RNG for the whole length entropy buffer in FIPS mode. [bsc#1220893] * Add libgcrypt-FIPS-jitter-whole-entropy.patch- FIPS: Set the FSM into error state if Jitter RNG is returning an error code to the caller when an health test error occurs when random bytes are requested through the jent_read_entropy_safe() function. [bsc#1220895] * Add libgcrypt-FIPS-jitter-errorcodes.patch- FIPS: Replace the built-in jitter rng with standalone version * Remove the internal jitterentropy copy [bsc#1220896] * Add libgcrypt-FIPS-jitter-standalone.patch * Remove not needed libgcrypt-jitterentropy-3.4.0.patch- add libgcrypt-no-deprecated-grep-alias.patch- Re-create HMAC checksum after RPM build strips the library (bsc#1217058)- Update to 1.10.3: * Bug fixes: - Fix public key computation for other EdDSA curves. [rC469919751d6e] - Remove out of core handler diagnostic in FIPS mode. [T6515] - Check that the digest size is not zero in gcry_pk_sign_md and gcry_pk_verify_md. [T6539] - Make store an s-exp with \0 is considered to be binary. [T6747] - Various constant-time improvements. * Portability: - Use getrandom call only when supported by the platform. [T6442] - Change the default for --with-libtool-modification to never. [T6619] * Release-info: https://dev.gnupg.org/T6817 * Remove patch upstream libgcrypt-1.10.0-out-of-core-handler.patch- Do not pull revision info from GIT when autoconf is run. This removes the -unknown suffix after the version number. * Add libgcrypt-nobetasuffix.patch [bsc#1216334]- POWER: performance enhancements for cryptography [jsc#PED-5088] * Optimize Chacha20 and Poly1305 for PPC P10 LE: [T6006] - Chacha20/poly1305: Optimized chacha20/poly1305 for P10 operation [rC88fe7ac33eb4] - ppc: enable P10 assembly with ENABLE_FORCE_SOFT_HWFEATURES on arch-3.00 [rC2c5e5ab6843d] * Add patches: - libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch - libgcrypt-ppc-enable-P10-assembly-with-ENABLE_FORCE_SOF.patch- FIPS: Merge the libgcrypt20-hmac package into the library and remove the "module is complete" trigger file .fips [bsc#1185116] * Remove libgcrypt-1.10.0-use-fipscheck.patch- Update to 1.10.2: * Bug fixes: - Fix Argon2 for the case output > 64. [rC13b5454d26] - Fix missing HWF_PPC_ARCH_3_10 in HW feature. [rCe073f0ed44] - Fix RSA key generation failure in forced FIPS mode. [T5919] - Fix gcry_pk_hash_verify for explicit hash. [T6066] - Fix a wrong result of gcry_mpi_invm. [T5970] - Allow building with --disable-asm for HPPA. [T5976] - Allow building with -Oz. [T6432] - Enable the fast path to ChaCha20 only when supported. [T6384] - Use size_t to avoid counter overflow in Keccak when directly feeding more than 4GiB. [T6217] * Other: - Do not use secure memory for a DRBG instance. [T5933] - Do not allow PKCS#1.5 padding for encryption in FIPS mode. [T5918] - Fix the behaviour for child process re-seeding in the DRBG. [rC019a40c990] - Allow verification of small RSA signatures in FIPS mode. [T5975] - Allow the use of a shorter salt for KDFs in FIPS mode. [T6039] - Run digest+sign self tests for RSA and ECC in FIPS mode. [rC06c9350165] - Add function-name based FIPS indicator function. GCRYCTL_FIPS_SERVICE_INDICATOR_FUNCTION. This is not considered an ABI changes because the new FIPS features were not yet approved. [rC822ee57f07] - Improve PCT in FIPS mode. [rC285bf54b1a, rC4963c127ae, T6397] - Use getrandom (GRND_RANDOM) in FIPS mode. [rCcf10c74bd9] - Disable RSA-OAEP padding in FIPS mode. [rCe5bfda492a] - Check minimum allowed key size in PBKDF in FIPS mode. [T6039,T6219] - Get maximum 32B of entropy at once in FIPS mode. [rCce0df08bba] - Prefer gpgrt-config when available. [T5034] - Mark AESWRAP as approved FIPS algorithm. [T5512] - Prevent usage of long salt for PSS in FIPS mode. [rCfdd2a8b332] - Prevent usage of X9.31 keygen in FIPS mode. [rC392e0ccd25] - Remove GCM mode from the allowed FIPS indicators. [rC1540698389] - Add explicit FIPS indicators for hash and MAC algorithms. [T6376] * Release-info: https://dev.gnupg.org/T5905 * Rebase FIPS patches: - libgcrypt-FIPS-SLI-hash-mac.patch - libgcrypt-FIPS-SLI-kdf-leylength.patch - libgcrypt-FIPS-SLI-pk.patch- Build AVX2 enabled hwcaps library for x86_64-v3- Update to 1.10.1: * Bug fixes: - Fix minor memory leaks in FIPS mode. - Build fixes for MUSL libc. * Other: - More portable integrity check in FIPS mode. - Add X9.62 OIDs to sha256 and sha512 modules. * Add the hardware optimizations config file hwf.deny to the /etc/gcrypt/ directory. This file can be used to globally disable the use of hardware based optimizations. * Remove not needed separate_hmac256_binary hmac256 package- Update to 1.10.0: * New and extended interfaces: - New control codes to check for FIPS 140-3 approved algorithms. - New control code to switch into non-FIPS mode. - New cipher modes SIV and GCM-SIV as specified by RFC-5297. - Extended cipher mode AESWRAP with padding as specified by RFC-5649. - New set of KDF functions. - New KDF modes Argon2 and Balloon. - New functions for combining hashing and signing/verification. * Performance: - Improved support for PowerPC architectures. - Improved ECC performance on zSeries/s390x by using accelerated scalar multiplication. - Many more assembler performance improvements for several architectures. * Bug fixes: - Fix Elgamal encryption for other implementations. [bsc#1190239, CVE-2021-40528] - Check the input length of the point in ECDH. - Fix an abort in gcry_pk_get_param for "Curve25519". * Other features: - The control code GCRYCTL_SET_ENFORCED_FIPS_FLAG is ignored because it is useless with the FIPS 140-3 related changes. - Update of the jitter entropy RNG code. - Simplification of the entropy gatherer when using the getentropy system call. * Interface changes relative to the 1.10.0 release: - GCRYCTL_SET_DECRYPTION_TAG NEW control code. - GCRYCTL_FIPS_SERVICE_INDICATOR_CIPHER NEW control code. - GCRYCTL_FIPS_SERVICE_INDICATOR_KDF NEW control code. - GCRYCTL_NO_FIPS_MODE = 83 NEW control code. - GCRY_CIPHER_MODE_SIV NEW mode. - GCRY_CIPHER_MODE_GCM_SIV NEW mode. - GCRY_CIPHER_EXTENDED NEW flag. - GCRY_SIV_BLOCK_LEN NEW macro. - gcry_cipher_set_decryption_tag NEW macro. - GCRY_KDF_ARGON2 NEW constant. - GCRY_KDF_BALLOON NEW constant. - GCRY_KDF_ARGON2D NEW constant. - GCRY_KDF_ARGON2I NEW constant. - GCRY_KDF_ARGON2ID NEW constant. - gcry_kdf_hd_t NEW type. - gcry_kdf_job_fn_t NEW type. - gcry_kdf_dispatch_job_fn_t NEW type. - gcry_kdf_wait_all_jobs_fn_t NEW type. - struct gcry_kdf_thread_ops NEW struct. - gcry_kdf_open NEW function. - gcry_kdf_compute NEW function. - gcry_kdf_final NEW function. - gcry_kdf_close NEW function. - gcry_pk_hash_sign NEW function. - gcry_pk_hash_verify NEW function. - gcry_pk_random_override_new NEW function. * Rebase libgcrypt-1.8.4-allow_FSM_same_state.patch and rename to libgcrypt-1.10.0-allow_FSM_same_state.patch * Remove unused CAVS tests and related patches: - cavs_driver.pl cavs-test.sh - libgcrypt-1.6.1-fips-cavs.patch - drbg_test.patch * Remove DSA sign/verify patches for the FIPS CAVS test since DSA has been disabled in FIPS mode: - libgcrypt-fipsdrv-enable-algo-for-dsa-sign.patch - libgcrypt-fipsdrv-enable-algo-for-dsa-verify.patch * Rebase libgcrypt-FIPS-SLI-pk.patch * Rebase libgcrypt_indicators_changes.patch and libgcrypt-indicate-shake.patch and merge both into libgcrypt-FIPS-SLI-hash-mac.patch * Rebase libgcrypt-FIPS-kdf-leylength.patch and rename to libgcrypt-FIPS-SLI-kdf-leylength.patch * Rebase libgcrypt-jitterentropy-3.4.0.patch * Rebase libgcrypt-FIPS-rndjent_poll.patch * Rebase libgcrypt-out-of-core-handler.patch and rename to libgcrypt-1.10.0-out-of-core-handler.patch * Since the FIPS .hmac file is now calculated with the internal tool hmac256, only the "module is complete" trigger .fips file is checked. Rename libgcrypt-1.6.1-use-fipscheck.patch to libgcrypt-1.10.0-use-fipscheck.patch * Remove patches fixed upstream: - libgcrypt-1.4.1-rijndael_no_strict_aliasing.patch - libgcrypt-1.5.0-LIBGCRYPT_FORCE_FIPS_MODE-env.diff - libgcrypt-fix-rng.patch - libgcrypt-1.8.3-fips-ctor.patch - libgcrypt-1.8.4-use_xfree.patch - libgcrypt-1.8.4-getrandom.patch - libgcrypt-1.8.4-fips_ctor_skip_integrity_check.patch - libgcrypt-dsa-rfc6979-test-fix.patch - libgcrypt-fix-tests-fipsmode.patch - libgcrypt-FIPS-RSA-DSA-ECDSA-hashing-operation.patch - libgcrypt-1.8.4-fips-keygen.patch - libgcrypt-invoke-global_init-from-constructor.patch - libgcrypt-Restore-self-tests-from-constructor.patch - libgcrypt-FIPS-GMAC_AES-benckmark.patch - libgcrypt-global_init-constructor.patch - libgcrypt-random_selftests-testentropy.patch - libgcrypt-rsa-no-blinding.patch - libgcrypt-ecc-ecdsa-no-blinding.patch - libgcrypt-PCT-DSA.patch - libgcrypt-PCT-ECC.patch - libgcrypt-PCT-RSA.patch - libgcrypt-fips_selftest_trigger_file.patch - libgcrypt-pthread-in-t-lock-test.patch - libgcrypt-FIPS-hw-optimizations.patch - libgcrypt-FIPS-module-version.patch - libgcrypt-FIPS-disable-3DES.patch - libgcrypt-FIPS-fix-regression-tests.patch - libgcrypt-FIPS-RSA-keylen.patch - libgcrypt-FIPS-RSA-keylen-tests.patch - libgcrypt-FIPS-fix-gcry_mpi_sub_ui.patch - libgcrypt-FIPS-verify-unsupported-KDF-test.patch - libgcrypt-FIPS-HMAC-short-keylen.patch - libgcrypt-FIPS-service-indicators.patch - libgcrypt-FIPS-disable-DSA.patch - libgcrypt-jitterentropy-3.3.0.patch - libgcrypt-FIPS-Zeroize-hmac.patch * Update libgcrypt.keyring- FIPS: Get most of the entropy from rndjent_poll [bsc#1202117] * Add libgcrypt-FIPS-rndjent_poll.patch * Rebase libgcrypt-jitterentropy-3.4.0.patch- FIPS: Check keylength in gcry_fips_indicator_kdf() [bsc#1190700] * Consider approved keylength greater or equal to 112 bits. * Add libgcrypt-FIPS-kdf-leylength.patch- FIPS: Zeroize buffer and digest in check_binary_integrity() * Add libgcrypt-FIPS-Zeroize-hmac.patch [bsc#1191020]- FIPS: gpg/gpg2 gets out of core handler in FIPS mode while typing Tab key to Auto-Completion. [bsc#1182983] * Add libgcrypt-out-of-core-handler.patch- FIPS: Port libgcrypt to use jitterentropy [bsc#1202117, jsc#SLE-24941] * Enable the jitter based entropy generator by default in random.conf - Add libgcrypt-jitterentropy-3.3.0.patch * Update the internal jitterentropy to version 3.4.0 - Add libgcrypt-jitterentropy-3.4.0.patch- Fix reproducible build problems: - Do not use %release in binaries (but use SOURCE_DATE_EPOCH) - Fix date call messed up by spec-cleaner- FIPS: extend the service indicator [bsc#1190700] * introduced a pk indicator function * adapted the approved and non approved ciphersuites * Add libgcrypt_indicators_changes.patch * Add libgcrypt-indicate-shake.patch- FIPS: Implement a service indicator for asymmetric ciphers [bsc#1190700] * Mark RSA public key encryption and private key decryption with padding (e.g. OAEP, PKCS) as non-approved since RSA-OAEP lacks peer key assurance validation requirements per SP800-56Brev2. * Mark ECC as approved only for NIST curves P-224, P-256, P-384 and P-521 with check for common NIST names and aliases. * Mark DSA, ELG, EDDSA, ECDSA and ECDH as non-approved. * Add libgcrypt-FIPS-SLI-pk.patch * Rebase libgcrypt-FIPS-service-indicators.patch - Run the regression tests also in FIPS mode. * Disable tests for non-FIPS approved algos. * Rebase: libgcrypt-FIPS-verify-unsupported-KDF-test.patch- FIPS: Disable DSA in FIPS mode [bsc#1195385] * Upstream task: https://dev.gnupg.org/T5710 * Add libgcrypt-FIPS-disable-DSA.patch- FIPS: Service level indicator [bsc#1190700] * Provide an indicator to check wether the service utilizes an approved cryptographic algorithm or not. * Add patches: - libgcrypt-FIPS-service-indicators.patch - libgcrypt-FIPS-verify-unsupported-KDF-test.patch - libgcrypt-FIPS-HMAC-short-keylen.patch- FIPS: Fix gcry_mpi_sub_ui subtraction [bsc#1193480] * gcry_mpi_sub_ui: fix subtracting from negative value * Add libgcrypt-FIPS-fix-gcry_mpi_sub_ui.patch- FIPS: Define an entropy source SP800-90B compliant [bsc#1185140] * Disable jitter entropy by default in random.conf * Disable only-urandom option by default in random.conf- FIPS: RSA KeyGen/SigGen fail with 4096 bit key sizes [bsc#1192240] * rsa: Check RSA keylen constraints for key operations. * rsa: Fix regression in not returning an error for prime generation. * tests: Add 2k RSA key working in FIPS mode. * tests: pubkey: Replace RSA key to one of 2k. * tests: pkcs1v2: Skip tests with small keys in FIPS. * Add patches: - libgcrypt-FIPS-RSA-keylen.patch - libgcrypt-FIPS-RSA-keylen-tests.patch- FIPS: Disable 3DES/Triple-DES in FIPS mode [bsc#1185138] * Add libgcrypt-FIPS-disable-3DES.patch- FIPS: PBKDF requirements [bsc#1185137] * The PBKDF2 selftests were introduced in libgcrypt version 1.9.1 in the function selftest_pbkdf2() * Upstream task: https://dev.gnupg.org/T5182- FIPS: Fix regression tests in FIPS mode [bsc#1192131] * Add libgcrypt-FIPS-fix-regression-tests.patch * Upstream task: https://dev.gnupg.org/T5520- FIPS: Provide a module name/identifier and version that can be mapped to the validation records. [bsc#1190706] * Add libgcrypt-FIPS-module-version.patch * Upstream task: https://dev.gnupg.org/T5600- FIPS: Enable hardware support also in FIPS mode [bsc#1187110] * Add libgcrypt-FIPS-hw-optimizations.patch * Upstream task: https://dev.gnupg.org/T5508- Update to 1.9.4: * Bug fixes: - Fix Elgamal encryption for other implementations. [CVE-2021-33560] - Fix alignment problem on macOS. - Check the input length of the point in ECDH. - Fix an abort in gcry_pk_get_param for "Curve25519". * Other features: - Add GCM and CCM to OID mapping table for AES. * Upstream libgcrypt-CVE-2021-33560-fix-ElGamal-enc.patch- Remove not needed patch libgcrypt-sparcv9.diff- Fix building test t-lock with pthread. [bsc#1189745] * Explicitly add -lpthread to compile the t-lock test. * Add libgcrypt-pthread-in-t-lock-test.patch- Security fix: [bsc#1187212, CVE-2021-33560] * cipher: Fix ElGamal encryption for other implementations. * Exponent blinding was added in version 1.9.3. This patch fixes ElGamal encryption, see: https://dev.gnupg.org/T5328 - Add libgcrypt-CVE-2021-33560-fix-ElGamal-enc.patch- libgcrypt 1.9.3: * Bug fixes: - Fix build problems on i386 using gcc-4.7. - Fix checksum calculation in OCB decryption for AES on s390. - Fix a regression in gcry_mpi_ec_add related to certain usages of curve 25519. - Fix a symbol not found problem on Apple M1. - Fix for Apple iOS getentropy peculiarity. - Make keygrip computation work for compressed points. * Performance: - Add x86_64 VAES/AVX2 accelerated implementation of Camellia. - Add x86_64 VAES/AVX2 accelerated implementation of AES. - Add VPMSUMD acceleration for GCM mode on PPC. * Internal changes. - Harden MPI conditional code against EM leakage. - Harden Elgamal by introducing exponent blinding.- libgcrypt 1.9.2: * Fix building with --disable-asm on x86 * Check public key for ECDSA verify operation * Make sure gcry_get_config (NULL) returns a nul-terminated string * Fix a memory leak in the ECDH code * Fix a reading beyond end of input buffer in SHA2-avx2 - remove obsolete texinfo packaging macros- Update to 1.9.1 * *Fix exploitable bug* in hash functions introduced with 1.9.0. [bsc#1181632, CVE-2021-3345] * Return an error if a negative MPI is used with sexp scan functions. * Check for operational FIPS in the random and KDF functions. * Fix compile error on ARMv7 with NEON disabled. * Fix self-test in KDF module. * Improve assembler checks for better LTO support. * Fix 32-bit cross build on x86. * Fix non-NEON ARM assembly implementation for SHA512. * Fix build problems with the cipher_bulk_ops_t typedef. * Fix Ed25519 private key handling for preceding ZEROs. * Fix overflow in modular inverse implementation. * Fix register access for AVX/AVX2 implementations of Blake2. * Add optimized cipher and hash functions for s390x/zSeries. * Use hardware bit counting functionx when available. * Update DSA functions to match FIPS 186-3. * New self-tests for CMACs and KDFs. * Add bulk cipher functions for OFB and GCM modes. - Update libgpg-error required version- Use the suffix variable correctly in get_hmac_path() - Rebase libgcrypt-fips_selftest_trigger_file.patch- Add the global config file /etc/gcrypt/random.conf * This file can be used to globally change parameters of the random generator with the options: only-urandom and disable-jent.- Update to 1.9.0: New stable branch of Libgcrypt with full API and ABI compatibility to the 1.8 series. Release-info: https://dev.gnupg.org/T4294 * New and extended interfaces: - New curves Ed448, X448, and SM2. - New cipher mode EAX. - New cipher algo SM4. - New hash algo SM3. - New hash algo variants SHA512/224 and SHA512/256. - New MAC algos for Blake-2 algorithms, the new SHA512 variants, SM3, SM4 and for a GOST variant. - New convenience function gcry_mpi_get_ui. - gcry_sexp_extract_param understands new format specifiers to directly store to integers and strings. - New function gcry_ecc_mul_point and curve constants for Curve448 and Curve25519. - New function gcry_ecc_get_algo_keylen. - New control code GCRYCTL_AUTO_EXPAND_SECMEM to allow growing the secure memory area. * Performance optimizations and bug fixes: See Release-info. * Other features: - Add OIDs from RFC-8410 as aliases for Ed25519 and Curve25519. - Add mitigation against ECC timing attack CVE-2019-13627. - Internal cleanup of the ECC implementation. - Support reading EC point in compressed format for some curves. - Rebase patches: * libgcrypt-1.4.1-rijndael_no_strict_aliasing.patch * libgcrypt-1.5.0-LIBGCRYPT_FORCE_FIPS_MODE-env.diff * libgcrypt-1.6.1-use-fipscheck.patch * drbg_test.patch * libgcrypt-fipsdrv-enable-algo-for-dsa-sign.patch * libgcrypt-FIPS-RSA-DSA-ECDSA-hashing-operation.patch * libgcrypt-1.8.4-fips-keygen.patch * libgcrypt-1.8.4-getrandom.patch * libgcrypt-fix-tests-fipsmode.patch * libgcrypt-global_init-constructor.patch * libgcrypt-ecc-ecdsa-no-blinding.patch * libgcrypt-PCT-RSA.patch * libgcrypt-PCT-ECC.patch - Remove patches: * libgcrypt-unresolved-dladdr.patch * libgcrypt-CVE-2019-12904-GCM-Prefetch.patch * libgcrypt-CVE-2019-12904-GCM.patch * libgcrypt-CVE-2019-12904-AES.patch * libgcrypt-CMAC-AES-TDES-selftest.patch * libgcrypt-1.6.1-fips-cfgrandom.patch * libgcrypt-fips_rsa_no_enforced_mode.patch- libgcrypt 1.8.7: * Support opaque MPI with gcry_mpi_print * Fix extra entropy collection via clock_gettime, a fallback code path for legacy hardware- Update to 1.8.6 * mpi: Consider +0 and -0 the same in mpi_cmp * mpi: Fix flags in mpi_copy for opaque MPI * mpi: Fix the return value of mpi_invm_generic * mpi: DSA,ECDSA: Fix use of mpi_invm - Call mpi_invm before _gcry_dsa_modify_k - Call mpi_invm before _gcry_ecc_ecdsa_sign * mpi: Constant time mpi_inv with some conditions - mpi/mpi-inv.c (mpih_add_n_cond, mpih_sub_n_cond, mpih_swap_cond) - New: mpih_abs_cond, mpi_invm_odd - Rename from _gcry_mpi_invm: mpi_invm_generic - Use mpi_invm_odd for usual odd cases: _gcry_mpi_invm * mpi: Abort on division by zero also in _gcry_mpi_tdiv_qr * Fix wrong code execution in Poly1305 ARM/NEON implementation - Set r14 to -1 at function entry: (_gcry_poly1305_armv7_neon_init_ext) * Set vZZ.16b register to zero before use in armv8 gcm implementation * random: Fix include of config.h * Fix declaration of internal function _gcry_mpi_get_ui: Don't use ulong * ecc: Fix wrong handling of shorten PK bytes - Zeros are already recovered: (_gcry_ecc_mont_decodepoint) - Update libgcrypt-ecc-ecdsa-no-blinding.patch- FIPS: RSA/DSA/ECC test_keys() print out debug messages [bsc#1171872] * Print the debug messages in test_keys() only in debug mode. - Update patches: libgcrypt-PCT-RSA.patch libgcrypt-PCT-DSA.patch libgcrypt-PCT-ECC.patch- FIPS: libgcrypt: Double free in test_keys() on failed signature verification [bsc#1169944] * Use safer gcry_mpi_release() instead of mpi_free() - Update patches: * libgcrypt-PCT-DSA.patch * libgcrypt-PCT-RSA.patch * libgcrypt-PCT-ECC.patch- Ship the FIPS checksum file in the shared library package and create a separate trigger file for the FIPS selftests (bsc#1169569) * add libgcrypt-fips_selftest_trigger_file.patch * refresh libgcrypt-global_init-constructor.patch - Remove libgcrypt-binary_integrity_in_non-FIPS.patch obsoleted by libgcrypt-global_init-constructor.patch- FIPS: Verify that the generated signature and the original input differ in test_keys function for RSA, DSA and ECC: [bsc#1165539] - Add zero-padding when qx and qy have different lengths when assembling the Q point from affine coordinates. - Refreshed patches: * libgcrypt-PCT-DSA.patch * libgcrypt-PCT-RSA.patch * libgcrypt-PCT-ECC.patch- FIPS: Switch the PCT to use the new signature operation [bsc#1165539] * Patches for DSA, RSA and ECDSA test_keys functions: - libgcrypt-PCT-DSA.patch - libgcrypt-PCT-RSA.patch - libgcrypt-PCT-ECC.patch - Update patch: libgcrypt-FIPS-RSA-DSA-ECDSA-hashing-operation.patch- FIPS: Run self-tests from constructor during power-on [bsc#1166748] * Set up global_init as the constructor function: - libgcrypt-global_init-constructor.patch * Relax the entropy requirements on selftest. This is especially important for virtual machines to boot properly before the RNG is available: - libgcrypt-random_selftests-testentropy.patch - libgcrypt-rsa-no-blinding.patch - libgcrypt-ecc-ecdsa-no-blinding.patch * Fix benchmark regression test in FIPS mode: - libgcrypt-FIPS-GMAC_AES-benckmark.patch- Remove check not needed in _gcry_global_constructor [bsc#1164950] * Update libgcrypt-Restore-self-tests-from-constructor.patch- FIPS: Run the self-tests from the constructor [bsc#1164950] * Add libgcrypt-invoke-global_init-from-constructor.patch- FIPS: libgcrypt DSA PQG parameter generation: Missing value [bsc#1161219] - FIPS: libgcrypt DSA PQG verification incorrect results [bsc#1161215] - FIPS: libgcrypt RSA siggen/keygen: 4k not supported [bsc#1161220] * Add patch from Fedora libgcrypt-1.8.4-fips-keygen.patch- FIPS: RSA/DSA/ECDSA are missing hashing operation [bsc#1155337] * Add libgcrypt-FIPS-RSA-DSA-ECDSA-hashing-operation.patch- Fix tests in FIPS mode: * Fix tests: basic benchmark bench-slope pubkey t-cv25519 t-secmem * Add patch libgcrypt-fix-tests-fipsmode.patch- Fix test dsa-rfc6979 in FIPS mode: * Disable tests in elliptic curves with 192 bits which are not recommended in FIPS mode * Add patch libgcrypt-dsa-rfc6979-test-fix.patch- CMAC AES and TDES FIPS self-tests: * CMAC AES self test missing [bsc#1155339] * CMAC TDES self test missing [bsc#1155338] - Add libgcrypt-CMAC-AES-TDES-selftest.patch- libgcrypt 1.8.5: * CVE-2019-13627: mitigation against an ECDSA timing attack (boo#1148987) * Improve ECDSA unblinding * Provide a pkg-config file- Fixed redundant fips tests in some situations causing sudo to stop working when pam-kwallet is installed. bsc#1133808 * Added libgcrypt-1.8.4-fips_ctor_skip_integrity_check.patch * Removed libgcrypt-fips_run_selftest_at_constructor.patch because it was obsoleted by libgcrypt-1.8.3-fips-ctor.patch * Removed libgcrypt-fips_ignore_FIPS_MODULE_PATH.patch because it was obsoleted by libgcrypt-1.8.4-fips_ctor_skip_integrity_check.patch- Fixed env-script-interpreter in cavs_driver.pl- Security fix: [bsc#1138939, CVE-2019-12904] * The C implementation of AES is vulnerable to a flush-and-reload side-channel attack because physical addresses are available to other processes. (The C implementation is used on platforms where an assembly-language implementation is unavailable.) * Added patches: - libgcrypt-CVE-2019-12904-GCM-Prefetch.patch - libgcrypt-CVE-2019-12904-GCM.patch - libgcrypt-CVE-2019-12904-AES.patch- do not try to open /dev/urandom if getrandom() works * Added libgcrypt-1.8.4-getrandom.patch - Drop libgcrypt-init-at-elf-load-fips.patch obsoleted by libgcrypt-1.8.3-fips-ctor.patch- Restored libgcrypt-binary_integrity_in_non-FIPS.patch sans section that was partially causing bsc#1131183. - Fixed race condition in multi-threaded applications by allowing a FSM state transition to the current state. This means some tests are run twice. * Added libgcrypt-1.8.4-allow_FSM_same_state.patch - Fixed an issue in malloc/free wrappers so that memory created by the malloc() wrappers will be destroyed using the free() wrappers. * Added libgcrypt-1.8.4-use_xfree.patch- removed libgcrypt-binary_integrity_in_non-FIPS.patch since it was breaking libotr. bsc#1131183- libgcrypt-1.8.3-fips-ctor.patch changed the way the fips selftests are invoked as well as the state transition, adjust the code so a missing checksum file is not an issue in non-FIPS mode (bsc#1097073) * update libgcrypt-binary_integrity_in_non-FIPS.patch- Enforce the minimal RSA keygen size in fips mode (bsc#1125740) * add libgcrypt-fips_rsa_no_enforced_mode.patch- Don't run full self-tests from constructor (bsc#1097073) * Don't call global_init() from the constructor, _gcry_global_constructor() from libgcrypt-1.8.3-fips-ctor.patch takes care of the binary integrity check instead. * Only the binary checksum will be verified, the remaining self-tests will be run upon the library initialization - Add libgcrypt-fips_ignore_FIPS_MODULE_PATH.patch - Drop libgcrypt-init-at-elf-load-fips.patch and libgcrypt-fips_run_selftest_at_constructor.patch obsoleted by libgcrypt-1.8.3-fips-ctor.patch- Skip all the self-tests except for binary integrity when called from the constructor (bsc#1097073) * Added libgcrypt-1.8.3-fips-ctor.patch from Fedora- Fail selftests when checksum file is missing in FIPS mode only (bsc#1117355) * add libgcrypt-binary_integrity_in_non-FIPS.patch- libgcrypt 1.8.4: * Fix infinite loop with specific application implementations * Fix possible leak of a few bits of secret primes to pageable memory * Fix possible hang in the RNG (1.8.3) * Always make use of getrandom if possible and then use its /dev/urandom behaviour- libgcrypt-1.6.3-aliasing.patch, libgcrypt-ppc64.patch, libgcrypt-strict-aliasing.patch: Remove obsolete patches - libgcrypt-1.4.1-rijndael_no_strict_aliasing.patch: Rediff - Reenable testsuite- Update to version 1.8.3: - Use blinding for ECDSA signing to mitigate a novel side-channel attack. (CVE-2018-0495 bsc#1097410) - Fix incorrect counter overflow handling for GCM when using an IV size other than 96 bit. - Fix incorrect output of AES-keywrap mode for in-place encryption on some platforms. - Fix the gcry_mpi_ec_curve_point point validation function. - Fix rare assertion failure in gcry_prime_check. - Applied spec-cleaner- Suggest libgcrypt20-hmac for package libgcrypt20 to ensure they are installed in the right order. [bsc#1090766]- Extended the fipsdrv dsa-sign and dsa-verify commands with the - -algo parameter for the FIPS testing of DSA SigVer and SigGen (bsc#1064455). * Added libgcrypt-fipsdrv-enable-algo-for-dsa-sign.patch * Added libgcrypt-fipsdrv-enable-algo-for-dsa-verify.patch- Use %license (boo#1082318)- libgcrypt 1.8.2: * Fix fatal out of secure memory status in the s-expression parser on heavy loaded systems. * Add auto expand secmem feature or use by GnuPG 2.2.4- libgcrypt 1.8.1: * Mitigate a local side-channel attack on Curve25519 dubbed "May the Fourth be With You" CVE-2017-0379 bsc#1055837 * Add more extra bytes to the pool after reading a seed file * Add the OID SHA384WithECDSA from RFC-7427 to SHA-384 * Fix build problems with the Jitter RNG * Fix assembler code build problems on Rasbian (ARMv8/AArch32-CE)- RPM group fixes.- libgcrypt 1.8.0: * New cipher mode XTS * New hash function Blake-2 * New function gcry_mpi_point_copy. * New function gcry_get_config. * GCRYCTL_REINIT_SYSCALL_CLAMP allows to init nPth after Libgcrypt. * New gobal configuration file /etc/gcrypt/random.conf. * GCRYCTL_PRINT_CONFIG does now also print build information for libgpg-error and the used compiler version. * GCRY_CIPHER_MODE_CFB8 is now supported. * A jitter based entropy collector is now used in addition to the other entropy collectors. * Optimized gcry_md_hash_buffers for SHA-256 and SHA-512. random pool lock). * Interface changes relative to the 1.7.0 release: gcry_get_config NEW function. gcry_mpi_point_copy NEW function. GCRYCTL_REINIT_SYSCALL_CLAMP NEW macro. GCRY_MD_BLAKE2B_512 NEW constant. GCRY_MD_BLAKE2B_384 NEW constant. GCRY_MD_BLAKE2B_256 NEW constant. GCRY_MD_BLAKE2B_160 NEW constant. GCRY_MD_BLAKE2S_256 NEW constant. GCRY_MD_BLAKE2S_224 NEW constant. GCRY_MD_BLAKE2S_160 NEW constant. GCRY_MD_BLAKE2S_128 NEW constant. GCRY_CIPHER_MODE_XTS NEW constant. gcry_md_info DEPRECATED. - Refresh patch libgcrypt-1.6.3-aliasing.patch- libgcrypt 1.7.8: * CVE-2017-7526: Mitigate a flush+reload side-channel attack on RSA secret keys (bsc#1046607)- libgcrypt 1.7.7: * Fix possible timing attack on EdDSA session key (previously patched, drop libgcrypt-secure-EdDSA-session-key.patch) * Fix long standing bug in secure memory implementation which could lead to a segv on free- Added libgcrypt-secure-EdDSA-session-key.patch [bsc#1042326] * Store the session key in secure memory to ensure that constant time point operations are used in the MPI library.- libgcrypt 1.7.6: * Fix counter operand from read-only to read/write * Fix too large jump alignment in mpih-rshift- libgcrypt 1.7.5: * Fix regression in mlock detection introduced with 1.7.4- libgcrypt 1.7.4: * ARMv8/AArch32 performance improvements for AES, GCM, SHA-256, and SHA-1. * Add ARMv8/AArch32 assembly implementation for Twofish and Camellia. * Add bulk processing implementation for ARMv8/AArch32. * Add Stribog OIDs. * Improve the DRBG performance and sync the code with the Linux version. * When secure memory is requested by the MPI functions or by gcry_xmalloc_secure, they do not anymore lead to a fatal error if the secure memory pool is used up. Instead new pools are allocated as needed. These new pools are not protected against being swapped out (mlock can't be used). Mitigation for minor confidentiality issues is encryption swap space. * Fix GOST 28147 CryptoPro-B S-box. * Fix error code handling of mlock calls.- libgcrypt 1.7.3: * security issue already fixes with 1.6.6 * Fix building of some asm modules with older compilers and CPUs. * ARMv8/AArch32 improvements for AES, GCM, SHA-256, and SHA-1. - includes changes from libgcrypt 1.7.2: * Bug fixes: - Fix setting of the ECC cofactor if parameters are specified. - Fix memory leak in the ECC code. - Remove debug message about unsupported getrandom syscall. - Fix build problems related to AVX use. - Fix bus errors on ARM for Poly1305, ChaCha20, AES, and SHA-512. * Internal changes: - Improved fatal error message for wrong use of gcry_md_read. - Disallow symmetric encryption/decryption if key is not set. - includes changes from 1.7.1: * Bug fixes: - Fix ecc_verify for cofactor support. - Fix portability bug when using gcc with Solaris 9 SPARC. - Build fix for OpenBSD/amd64 - Add OIDs to the Serpent ciphers. * Internal changes: - Use getrandom system call on Linux if available. - Blinding is now also used for RSA signature creation. - Changed names of debug envvars - includes changes from 1.7.0: * New algorithms and modes: - SHA3-224, SHA3-256, SHA3-384, SHA3-512, and MD2 hash algorithms. - SHAKE128 and SHAKE256 extendable-output hash algorithms. - ChaCha20 stream cipher. - Poly1305 message authentication algorithm - ChaCha20-Poly1305 Authenticated Encryption with Associated Data mode. - OCB mode. - HMAC-MD2 for use by legacy applications. * New curves for ECC: - Curve25519. - sec256k1. - GOST R 34.10-2001 and GOST R 34.10-2012. * Performance: - Improved performance of KDF functions. - Assembler optimized implementations of Blowfish and Serpent on ARM. - Assembler optimized implementation of 3DES on x86. - Improved AES using the SSSE3 based vector permutation method by Mike Hamburg. - AVX/BMI is used for SHA-1 and SHA-256 on x86. This is for SHA-1 about 20% faster than SSSE3 and more than 100% faster than the generic C implementation. - 40% speedup for SHA-512 and 72% for SHA-1 on ARM Cortex-A8. - 60-90% speedup for Whirlpool on x86. - 300% speedup for RIPE MD-160. - Up to 11 times speedup for CRC functions on x86. * Other features: - Improved ECDSA and FIPS 186-4 compliance. - Support for Montgomery curves. - gcry_cipher_set_sbox to tweak S-boxes of the gost28147 cipher algorithm. - gcry_mpi_ec_sub to subtract two points on a curve. - gcry_mpi_ec_decode_point to decode an MPI into a point object. - Emulation for broken Whirlpool code prior to 1.6.0. [from 1.6.1] - Flag "pkcs1-raw" to enable PCKS#1 padding with a user supplied hash part. - Parameter "saltlen" to set a non-default salt length for RSA PSS. - A SP800-90A conforming DRNG replaces the former X9.31 alternative random number generator. - Map deprecated RSA algo number to the RSA algo number for better backward compatibility. [from 1.6.2] - Use ciphertext blinding for Elgamal decryption [CVE-2014-3591]. See http://www.cs.tau.ac.il/~tromer/radioexp/ for details. [from 1.6.3] - Fixed data-dependent timing variations in modular exponentiation [related to CVE-2015-0837, Last-Level Cache Side-Channel Attacks are Practical]. [from 1.6.3] - Flag "no-keytest" for ECC key generation. Due to a bug in the parser that flag will also be accepted but ignored by older version of Libgcrypt. [from 1.6.4] - Speed up the random number generator by requiring less extra seeding. [from 1.6.4] - Always verify a created RSA signature to avoid private key leaks due to hardware failures. [from 1.6.4] - Mitigate side-channel attack on ECDH with Weierstrass curves [CVE-2015-7511]. See http://www.cs.tau.ac.IL/~tromer/ecdh/ for details. [from 1.6.5] * Internal changes: - Moved locking out to libgpg-error. - Support of the SYSROOT envvar in the build system. - Refactor some code. - The availability of a 64 bit integer type is now mandatory. * Bug fixes: - Fixed message digest lookup by OID (regression in 1.6.0). - Fixed a build problem on NetBSD - Fixed some asm build problems and feature detection bugs. * Interface changes relative to the 1.6.0 release: gcry_cipher_final NEW macro. GCRY_CIPHER_MODE_CFB8 NEW constant. GCRY_CIPHER_MODE_OCB NEW. GCRY_CIPHER_MODE_POLY1305 NEW. gcry_cipher_set_sbox NEW macro. gcry_mac_get_algo NEW. GCRY_MAC_HMAC_MD2 NEW. GCRY_MAC_HMAC_SHA3_224 NEW. GCRY_MAC_HMAC_SHA3_256 NEW. GCRY_MAC_HMAC_SHA3_384 NEW. GCRY_MAC_HMAC_SHA3_512 NEW. GCRY_MAC_POLY1305 NEW. GCRY_MAC_POLY1305_AES NEW. GCRY_MAC_POLY1305_CAMELLIA NEW. GCRY_MAC_POLY1305_SEED NEW. GCRY_MAC_POLY1305_SERPENT NEW. GCRY_MAC_POLY1305_TWOFISH NEW. gcry_md_extract NEW. GCRY_MD_FLAG_BUGEMU1 NEW [from 1.6.1]. GCRY_MD_GOSTR3411_CP NEW. GCRY_MD_SHA3_224 NEW. GCRY_MD_SHA3_256 NEW. GCRY_MD_SHA3_384 NEW. GCRY_MD_SHA3_512 NEW. GCRY_MD_SHAKE128 NEW. GCRY_MD_SHAKE256 NEW. gcry_mpi_ec_decode_point NEW. gcry_mpi_ec_sub NEW. GCRY_PK_EDDSA NEW constant. GCRYCTL_GET_TAGLEN NEW. GCRYCTL_SET_SBOX NEW. GCRYCTL_SET_TAGLEN NEW. - Apply libgcrypt-1.6.3-aliasing.patch only on big-endian architectures - update drbg_test.patch and install cavs testing directory again - As DRBG is upstream, drop pateches: v9-0001-SP800-90A-Deterministic-Random-Bit-Generator.patch 0002-Compile-DRBG.patch 0003-Function-definitions-of-interfaces-for-random.c.patch 0004-Invoke-DRBG-from-common-libgcrypt-RNG-code.patch 0005-Function-definitions-for-gcry_control-callbacks.patch 0006-DRBG-specific-gcry_control-requests.patch v9-0007-User-interface-to-DRBG.patch libgcrypt-fix-rng.patch - drop obsolete: libgcrypt-fips-dsa.patch libgcrypt-fips_ecdsa.patch- libgcrypt 1.6.6: * fix CVE-2016-6313: Issue in the mixing functions of the random number generators allowed an attacker who obtained a number of bytes from the standard RNG to predict some of the next ouput. (bsc#994157)- remove conditionals for unsupported distributions (before 13.2), it would not build anyway because of new dependencies- make the -hmac package depend on the same version of the library, fixing bsc#979629 FIPS: system fails to reboot after installing fips pattern- update to 1.6.5: * CVE-2015-7511: Mitigate side-channel attack on ECDH with Weierstrass curves (boo#965902)- follow-up to libgcrypt 1.6.4 update: sosuffix is 20.0.4- update to 1.6.4 - fixes libgcrypt equivalent of CVE-2015-5738 (bsc#944456) * Speed up the random number generator by requiring less extra seeding. * New flag "no-keytest" for ECC key generation. Due to a bug in the parser that flag will also be accepted but ignored by older version of Libgcrypt. * Always verify a created RSA signature to avoid private key leaks due to hardware failures. * Other minor bug fixes.- Fix gpg2 tests on BigEndian architectures: s390x ppc64 libgcrypt-1.6.3-aliasing.patch- fix sosuffix for 1.6.3 (20.0.3)- libgcrypt 1.6.3 [bnc#920057]: * Use ciphertext blinding for Elgamal decryption [CVE-2014-3591]. * Fixed data-dependent timing variations in modular exponentiation [related to CVE-2015-0837, Last-Level Cache Side-Channel Attacks are Practical]. - update upstream signing keyring- making the build reproducible - see http://lists.gnupg.org/pipermail/gnupg-commits/2014-September/010683.html for a very similiar problem- Move %install_info_delete calls from postun to preun: the files must still be present to be parsed. - Fix the names passed to install_info for gcrypt.info-[12].gz instead of gcrypt-[12].info.gz.- fix filename for info pages in %post scripts- libgcrypt 1.6.2: * Map deprecated RSA algo number to the RSA algo number for better backward compatibility. * Support a 0x40 compression prefix for EdDSA. * Improve ARM hardware feature detection and building. * Fix building for the x32 ABI platform. * Fix some possible NULL deref bugs. - remove libgcrypt-1.6.0-use-intenal-functions.patch, upstream via xtrymalloc macro - remove libgcrypt-fixed-sizet.patch, upstream - adjust libgcrypt-1.6.1-use-fipscheck.patch for xtrymalloc change/sbin/ldconfig/sbin/ldconfiglibgcrypt20-hmach04-armsrv2 1751552220 1.10.3-150600.3.9.11.10.3-150600.3.9.11.10.3-150600.3.9.11.10.3-150600.3.9.11.10.3-150600.3.9.1gcrypthwf.denyrandom.conflibgcrypt.so.20libgcrypt.so.20.4.3libgcrypt20AUTHORSChangeLogNEWSREADMETHANKSTODOlibgcrypt20COPYINGCOPYING.LIBLICENSES/etc//etc/gcrypt//usr/lib64//usr/share/doc/packages//usr/share/doc/packages/libgcrypt20//usr/share/licenses//usr/share/licenses/libgcrypt20/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:39539/SUSE_SLE-15-SP6_Update/2b8c9bd28a3c01201edd0384a141d7f1-libgcrypt.SUSE_SLE-15-SP6_Updatedrpmxz5aarch64-suse-linuxdirectoryASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4eee3d25abb06a5d09da840f93af845523c337b4, strippedUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode text PPRR RR RR RR R RR=`msWgfAutf-84be14b23160dacb4eee321fcf33d30e7045bf5e71e4300a7d3f9249d9cead808?7zXZ !t/+]"k%]dJtZI y C,Ŧ/ָ0  .07\E w8!!~BfM|ݝip ̗pc(@IM*KݽMLl0*ZEIu^I#cvx VTZ$u)-5!e/gyZAH|{<+Ud<yjҰ\alYϜv`{QQRXj0ыlpO Rx\/Yӽƽ$ڤM)ёgy&xEӹ\>_s<jͷ( -G蝼rc?Ec$Rȣۆku^>.r0V-;c{ߓ)ő^r:Y]%N' &9omU'WJH?GT2wIdg\V`HTpsE}/WvA\'C/IA*"ޙbW[Vt.OQKOlj,>H~=$>_%^IؠJˋT rO7ˁTq)=ΎTՆ" ҍl?YHNҋp4z}ɣ8β@a#[O[LR]"vPn(?r.תJdk3cX0;Eӵ2lĒAi'C~l< ?Z4k*q4.ĊiUH؃Z+._%t;RXʪvݏrMzy-4f)m>:av 2rE2sR>1OTDTȀ:@ <-3y[tY߽%L=5E߫Qdt(?0ɄVȿ c> }{vy.IoZfBREԊ6u5)ԣE~ss$W=ڤDѿi05a-e,>+aH䩉 gpf6nz)}oVZs)gU7,dfe 1[ƭ1/윹ԎTP4~nb*6ߨ}, @Rġ3jQ RB@ 1CM  iYvC9=ĹaCN^6d! t5Ak~Pvj2Dȋ>}ѹrX$< YV`WY| ޥL\iF87Z#񴱰 T\ԊhA2(@uozj)?'yY iؖ} mi^FWgQO^xqb]fe>yВع_?,ۢ T~_vj*lOv7լP۔JIXSvLWŒKz/zKB6m5=Дx+Enjjz˕E6qx|:bxR&DIؒJ+_[xsswPFGF0_ĐF1S;^a +wv=eUMi=:+(3T8 zi[Oq-*)@o;b˘#&e0BQ{Ð(![],vXIp6]쐤ȹ0VsY+(TTXUOAŔ뤊VOh*`/ܽ0TsM1ѯ4Z9=HUu&AQ/=2k/E%$|Dweŕa|/I .䭨l8'T鐨eń k ǹ>i":./묯5}* K8-Aa/BL=}G%l'ố ?")Jf$ɮ/GԂ{:L8DZ]eۙ c7$wݡѹ5NY7,8>R$tS0d-i@N;elp֭юt9Wg$;C$1=ahKI?ЃIgdr \&'6 tXxM*:.'\Y]>TmOpӮ^rRe:f%^E . v GM8x$Z}|v#džuRuqds_TKM(2+]<µSc1Aɨ˦ D.[!A 6auGdqNsLaz2̫FHc-2juN7PA}HJ(+Ag,N\\Ko ("|`rQӢ4HIb} }yU s wlQİu'# Ӳ$X{?z-VY#3u@7.K.Eəwc?^ϲW&BlCZ##?ILHh%d- Xڡs5q|P"k$v:TwJCHg'x!ֆ\Dstä.vii>~#XYUV8hA:[2p7]z`g4*AHy.lu4j#"mZǠiy5u-;H@YY#hS#%0 W Il)ȆZN4"aKqvh !Den[rzPم|`!/ƓZeůzbGvIy)*s3r>_ ABW6R*| /OkJFѴf^GDZ; X%F $R,?GWr@i3qPb{ y_tB&`Ffƅ^cUzC#<4m̷CnUGVVBea_҆7|pO2nBp_ॼ,RP3y(\Al BN(bj~,I3 eW5ڌǽqKŴ8ζKr`cgokE!%S3&xr}ІƙQӕj[[GC|p呴/他r}.\rv;lc/Z!ͻGH<{C]z(uY47+9i݁~[j[en|*TFTyoO^]q-rah}kS&mOkJfU*JRϤD.nƕ,5v"Qm m> ë JDMc|,}H7?i\AA @Fc&PH' UZj%R'/t#y6ngw&mQA @vWry0$pTLZSfB 4c= y檯U.T+Q^ e¾D>O2cAX1=>*ߎ.2ҺdIw}4? 'g>zVfEB??|6QSt@JKO\Y\O&5Z[`T?fI' ~&=ҭ  uW+$M?P<-5&|5 #5=?y'9娄C^vaJièP3ƱLl{ +fr>gH , cn_^4ZM`ͨPWETD6|DO9BnD Px6YG y $Xq|CE&ņm!Gpdy{ +`:VKLHK#⽍7go@!5e,l~$vf~ömBOq^zrYǾa<L"NH{~bM=kBdw4&CۘvL#lTOtq:B~&&DϘ ZE~;׿MM v vO으hx vaFq_G'+P@9x!vߤANըǴɇ50\ʹah+*+]ܧ<D"]_c} n Ow^3WY Ke*߳7/VU.dL0Q߮@ e/;γQIs#)MQltA|:{XYrRtU&Z'&g!UbKUBgi3ۏį ʑMΘ٤F(.SYt' >j ,'k Aϧno$m;LtP\ (d3Vٺ!:)Mji02VrH45Fle*,ow@$xc2S3P 4#{Ү'sIԑk z@H/kl==<--fs*Uv 9'"T'?ALr4s˪vs f mOF rNŴbeK h!(:GSp\JkoXKJ UjaU'\ftbrɴVycǨh"ȭ zqdN h\w֔YtS,k[l^rPV5Gš[o9wc+7\\{OdeZ +'ڠ%nNume)_Ў27CONl[cʇ(C;?>_(Â[*t@[<Σ>-CW -iCna'vEUzu2DDjj$u&nnt%ǎuˍN lYw͸$ƋUWIWlM:^D|dU6`uUXБNߎq*09*KV)k|3MB˸@hϯ+9yK"܎Cr V)w#1{[e K!k\} xr@3R E|X$rW U|8rjb`weGy{jlC_!I0szA^[e LNkA3W1*Q]]r vk mC[H稌bu&G،:щuI4T>qWzĕ!: }sO`[D a{G]>݄ tcy`8.u瘹2ix29HS 0h _虇~fGOe;BTy,n4no-&Kˆ;>-=C*.NɤdL,8WP|KyV qyGNGMj6TshJ)1rmfqe LwmvҖ@͌0jo۸XywFYo&亗;vQ$IO +!%T.Y3)lo^)0ǭot|CD;B u޸̛*Ct)wrfiE?L]deY0i+~@"(++:*NK^hD&CܾY5+.3{|3՝5SyVU) $TU0'At t ( I">OY$T"qI5\48߂c[7hJY0TZ|"(eb YeG|ݒ9Y?Sߡ ) u%q6ǶS@=Bd;so#nJJD!Ɨ=>0eGL˗32ƃUڴS&Q & >pnŶRN4m2deD$bՆkJSrQ-1:bυIr%,Ju،% |7vASDjK|l=1m5>@c+?ks5^ :|#n ^+Z95?.Τ4<ut7)'2z_w̤Nbq\&9Jw #68 HY[WMF3D3Őc/M{éYV$0ŷ`Z#5*4`NRq.п7ƻŘVH: V#yRC.y: ҄a`u`mcZ}^)~+h5{S}t%!ϒưcn $%q1,F^Ay_GGDP|iy ␚`8h,!d7{TƄ7T2ǔ)@{!XUf58pXk!Ւu W;O6A"ԀoL\S.H/ų^sӆZXEVހZ }%(w^m kOTv9!U3|ft<˃' vg:gOK/p֜w25“d@ХmY]gGiwkOo'Gҋ%0|U:::Zc(<7\.^ìcB<Z e#(z5(ɌusXtSZ(l Tv̼aimanҊѥb!RH&[Sg*rXL)6L;EsJ) Q^oCkQj[w3 OVĥZ{CTWg?:Cq vtt I<yrDjS,hotz~5g&ls _0b1"t 10>'m4 ^q Kmӥ"R[L)2*S"+6Wc2!Gv3m_%}yK)5 %8$Vo0~aN~={ cQ"6$\ bΡA(d).O"UsxSlPS,lP8@ih i&%JjMm0<>uykj'~Љ$~͘a=G27{~bBW[>YElMoaUjZ!T&8,1ϼru>4k* J8bO]+ Kwl:x6R# yx&F–,#3 QQxK*ӏ%f[u!B@<0~|g.rjq\uuYGv@uh?p%-"U#<'h`iH>=XT#2Q^Gp4l`C-'Du<_C^E3hZf U;mx<+,h*5%3;g.Ժs ȠQڲi-nFIzvɹM L[;B66ہ i;t|> f#B F_ G\H["EtҍkIr78GӋ'ojꎭ\\ v5 "$^Yh-Ҟҏ3 4[k,)]_'B[8/<ϟϓ݇l n_ ~dJ,XBpZtT^ZCQEVV ~/'WC}rRVw^!&csa rֲꭺ46}s~x[HHGB ూWQ88Ʒ6P=Q2cCm< Qؿ[T@@)7OpBC+' r*yMOP^iJ n7]91*NMkh5܂}=,MTGLء.A\54X7 _0CX12IkTܸr4DQtcc}tRue}h.92)8I,u4ܴs-dpzOgm&='Gl"&f< K鸃#QW*EϞ҈lfjfdfV?%p0r,:u/}u"='eh 10h:ݝ>'O[v,χrߒUNt/q/mM0{͸MQhjϽw}ĶP!m L\EQv#;HuR[mZ~us)wzj$IMC$OE+Ǿ`\\i6b~=ʲ[EHx?:0]Kuk"5a@#ZyWoS*Y95ʧܦBWN80 p/7(ȯ> CEI39f(V:=ǐwAQIeլr&A{FmϷ X> P\%צ7CD.smSa{wߥ~ RUp,kr"4Icl-Ňvq .dFvƄ ۺ3wrmWUi+X Ζ%;7Oyu.һkC<qnHӏn&;FsQۆd a|p#|ZΛN0P47=mBN6=6 :[vE0FR\3@*0,l>PUۭP#/|‰{ - KDxP.)OFg-\Xu SQ Iq_rԐzNAPd߹$wM;wfM 4Vp7̳s?Cgyr Z}kԩ.eLut$elP2 2 :rnA`VJbi K"WS|i::`^C==&%u6_b"ZQv3]e==z(̞'K")_e)W ? hE'-$%AM*!u9} JP!('"Q/ v9 $8y9"ZN~F9M(aIyz{ }щoK6-+L~N•QXla.3k`pڗPb,yqnŗY)+)fd&5 6$u%=Cf }{OnOT}>] ϿJ g?;$2J2pUIҚ>HhAiqdԐO@Y*9EMa@^VND^;̺{ h3>4O~g \z?ɋ =d9ہj]khqd{HI1pj6R]bEC΢x,%BPù!C,l;ׄs y9\"ǡ|}kDoe|=~ssa9XsD|7ɏc)S;2|M`P^\sUy.tp3!#lrNczKEs 3X\:jpRRU<\Y4N&rޙzaku4|f7 iM63qk\Q`.DʼXu=h *e+>Hj[((䓊b's!PGw|\'W7~@*t$%y(>}'l$,, FZIm^~p2Twův?ity$WT-<ךCAcQ~,r_5 #`M$wǜpcH ݜlU]ӉFi8oN]k|ް}#(1p`2Ԉ4G;q Oּev")trE\y"H0oʈgU }EҕIgAe+ș1 hN\۲"G D/8d8QG)h(`5T)?~ Z N? AKX.5g Ќ%2_F冱n1Cl1&N jOݼ1W5.tYGր48h ZqOAN~cZ/bG RLID٠Kz(c;@s=-(@s:K닒E1dÒE@d/㿺iqi(d;!hxѭ':ǻƤlDKa5-t(B(WOg^akCo1w6mF% a[jBkWܢGF ErI`2HDq"Kj^yڏ(4)jlHv^ }<t"9\PrҶ 9ɕt14fj^)t6m*#;$ .~wmr,Țk:DpV,iJzJRy]y(tX9^hrE^Њb-`2)O`9'.BmA/x؍&e@ 8 b-CT:qT9 ">VJwD;L0+?,ee7`xj>mx+i%=b{q[?ygEC-*zXD!^ƚM".f} ejF dBwJߧh38C#=: V-ڔ"\c=JD^j,(#YJ)>FɵUN%[HC2.̩ԗw xM x{X\m`!qɈ)81p' nv{m|8l1s@'HU~M[hLq+m'1lZWJ0Ф&BHPaƭ JMmG(C oƳ1Aʨw`WH"#^ω}S)%3Hw5V5^< -RQ"Y)yK#Ib3UF3vsFThx L؝9yZvr5>?i1glsmTzCFSjS&K(v,dɱ~t=8eiȼ!lI2i w(wP8vEMj y`J#D%ēp͚]2"}JiA+ l0lCgѓvb8w$Ĵ)l |ok 'r4h<ȱVK 4:'J?_X,Ā\\/BJRM+Kj;4|ugoW)'@ A,Upf> =;=m5ߍFiRMܒ¼BiT-w0`ī}99bP+xP*6-mԧr3a~:1F=zk &?r=<<)@ܟ2# 4$Gq5J#Lɢ&hgzgCI^}](u~+#=\$#2|پ<8}?t4je  ~66ybs lh6ĭk*8/'#C>gl׈A@e#AܧHfIr lxۑ_4δiS$$̅4t_n?#W,-o8 +ة P$7w }ytW j%KQg6Lx^Sl)XZzG?dL oׄà 2f6xBR FTrĒm]*ȓmaumExOUmn,W"6l]#n}mCxI|ğqђ#cjTtF;h~RJ̮L~q*1{9/&@lZaDY_>l,ľ s`r;8гetL^B",!wzU 2sL[%Rfǵ݃ykSk2/Li тHlUAqmiî.R=f r\#gpBh7^ס8J*M|NcGH/exa} KobD$a'U蠈 OZB6J&lP)UW-,G-}L&+ ܾo($#ui6?=S*Ӏ}ī#겇Uw)/B_놴 "2^4}->{;zI~ANo:MSZ]@Kf|iX#e'xjfxL GsȍlB?$9Kا k͒p}?й/a1)3'GPoL^h • =1 S Zc"!̨Nȁ!פgwtĊ:Q#@?uHvL#h1{zq:Il4ʄ#`Ӹu 1|j^ 1,IrLK@z ͧO6Sɲ2nT!!a+3Ae1UI_RcT!|&Ag,7kO)#x*- hټ_Zb+U`H-|VhG =i9^=(j$Qj~mUvn*T2WM%3ߣb0h'./TQ۾]-*j-lDixvX-ĉ8[ϮN r#^<u¤⎔usn#ѵk+pYR:oM#Y{% NA#SAbCǾgJ`K$TVg# zgLB]P̂SSf=rK%e8{6'Tt K@rI>9 sz4FBXL ƺs3y+< tG3i]h`:=ņXJ971%}mڂ^5wr>R`!!D+UY΍f"F*Zi]͍ 孃~HG mTW4(+/(*h-ǽ$EW&-6)F>9vCV{%mueP>FO "hKZjq`XBḮrGvC k]k}6(SkB3S#XrmﲯPoԴM[͆HPrW.kl\> ̯K/48E$[|%wkb+W拏1gc݇~vuyYޕUN!+_;$+Sg\qQC (Ť ],a:T81D] `eY峒Zp|@v+&nź(G,~ZQ,Ҧ÷[\ETcй>D=V=F6 %-htlM() cYì_X6a'<%?3Cm|ڃm** 0%$ڳ(ذ][l(ܪbud{hϰwh@"߿jД4JI1ӆ6CA8x),]R!5j*ak694nc`dE!-;3ǯ*~\aɛbVw|"?IE`'eo kň" G R "<I6U6FZŗP Wj?hn~ rYIFt-/i{hX4qw$tE1Wtcf pL.L\|-,~9ḽg;!& 1цCbf0]w=s[ٴf*B7 <陵!q>〪9,bƻ$1{a ōIJ!TSFa^=k!ՐE`-z|;Y qc/gCfMa5AQUt̉h$gDAX?mHTs av/dsf`kcknVMG,8 ‹ 7 3RQbrgoH7w]ih6 G+(w`uz)isB0pKET}#vߒ MoZ͑D:o~ZcEKO p G r ;x'Bya1k৭2Di6dd%n*,4<;VhpH?JX4sJ}BՏJ*T E&>?otR`?@`ǜbݏӏM{Dxu]GAJP9J&fξX P./EAMj; [3a &͗K nL ֚jް4U1!:.{c>Hx.d 0>ڋ)H/s8ZnҩNAn M @Nb+C>li!H|dL|a#oi=HrLXYaSڷ涺g=ib[<Ib0!s G7;_ڀ_s6A> 4Guh.WAžڽw.h 9 B ( 7 I57p)zQ#2OvϺ$u>5RMEԙ;4ZGZ0lN2L\"k pơ_dt3h!+1K=Ug2_v6B{4{Z=2+:ysv;e˴dY[l!`R} Cg1y7(Ҹ>rإiY6Zt`,TLє 3D3]WZQm<"C(z}mvuu. :H T'@H,*hv|BXnebvm |fT\^[bVG ٖ Eo23ZrVLލME*is/nV怪vyjv\=v+3 XSوq"g%Ǎ*:`/.: po]vi] ڄ9Z!N-7J˂TPz+h_.;jZ0IdfUxEEm@K,-@e(Ş]@߭O_GSղ0O]6%BI;> 3'xȍ'L2bwZoȼo~xGYv?L0 . `:m@Ao!v=<^*nk꫖o~'&<%1:3ܼqUS-9q'+<˘\Nz䊲<1D}- +)]ׄ(- ?Pfk^ky7ꇅ__'aPR`$!{1܂8Ԁc/4uz/>(>`C+*& /?-YW)'6` {Œܝ(#Q<Ф܇zoηS)6m;   A[#"Uzd&MUVnQDoA*?ȞOHywS3-BLfdZ硜1 ;Uh?\h 0X.>J Et!M@Νv! |G'q^xLMknr씓ssJQ0B 7 45-5f`XP.&oF*2YnۭM$^^$s(B6%RJ`iIKKc6q(L%F pPIZ eѩ?jgDE=&:p1h/r6ͥ2>C\V+DMW skggcjv,hLnV]G@40\NxyhH5xƫT!25H5KgdaicAI8hOM1%dBXjf=f^3YUR*jYE`S*ע86Rn< =\V@{tUᡌ/QjD†D|]^ eIzοrXdTP61&3\fPqv%) mQv):/r]#//֜\orVo"Kl9YErt覬VdU|6WLkݞſj9QngEl6̲o|ݤsv$ENudz6xױiOQwIXSDhZdp7=?=> 3M "3:fzK?őB\eM-؛fw׏+u9".tFXP!|@٘i6ԛ  qesWJ Te:hOFP/ 2u0l&eY{:~\hnęAn 8D+bgԢfO_ U 85}j3)UB9< f£C 𢟾Y$WJK' ]awYlA 0~)}(H$j[˛a|_e a^`p@wN&aH% MD[,X6W"vJUՇ4]2g軬GtH&2 Kc AbDTH,j!3F2UbO.~ߴQ97 ĭ7\3$-b)pVnIW< IA gJae)*kY3__5xފ#uxox~$8hvfvvLYKD_(&lwO`RQ4vlOw֍aД8vfQiYKp3 `tjh~_l(a5.UHV3S919e2>@:˭EnBJH"H<l ɴ',Mڮ?pB} yb]qԄ'VrbN4Ju?cC+{.%v90CtnF)n{-Co>ldgLTtkCyäF-eS]zx#ugab B^kRw EY0c7k.Ipsn"T2pci08z?СC2Ő +{[xTl95 66\kyۂefWA 92īVz5mсuP4H#n> 57IcaamgkO_]i#&Ȯhx.rn) ?N^?#@{ kZ_U9t3N[w0bd*n90NtD o&IkC4ҀX2ol3u×գid&X>3…/IX-4{>g{;w֬TAB;`"ةl;/-B\F)#/JRŚ4d)cݥu&VX[6&jEK9S)nvw 0=UQB&xf(&/O~4bJ$^ĭEGvS˲ i< zæ`{ ,oJ[2 _ _%9΅c5Ci_'gi/sS8^fqx좆R0`bmX pʶlw/_JFx[[oNF۸|Wc1G <BΛyӹI&:Sî }:Yٓ>E, 3Nv`'c(72b-yմO.Wl.1qYFUf)b1cgīHEP']N{Trٶ+ZF(xj_y_>g޴`meKϦ-b CPV%lE'JRYˍ wD+O~>ƈ8w!z ͦ@dT)zY?\(ESgAG*qH*];T9PnC.qTQ@ĺ.67}e9pz:n+/'vUokٷQ8$JƙTAzP7Jz+WaTi.Deɶ\[{Og1wDx 'f6#zHs러KlX0G-[l. Pw8S0+8 N%=6*=jt2e5y&@dWvg+2R:MMI4!wVo{[e=1S!ĭ66޷%=ڹ a&MQ;/ U}zTe2>o|>Sr06%RswRsd_V0 kw"s)@iEz”W{sTY/#qTm\9/߶Q,0N~ ]-_Agm2&UHplq6Wз27+IVtŻ pheu F"Xf`UoD$ٕץtmX;+(vzΕFYیk]|a6<OO#;_n}wzXC~Jя/3̯W1nm!)$#bdp|4gK.Xr5ROK'<yrI>TxJ zru/>YG)>9m(r:DD&GhYA%آ颅 366\8T2 ΚHCe"O/13'!9gzi7#X=pP),qɃ'/Ɠ6a3RTv~R⣫ ,xX _>:OQ =8]>.BbNA-ljAt Ei?XkOUQ?^`ďL*iƂe6g˨3Q_~qL:Ab}'1>HT3fF=*zڨ58 0Q1k'pby.er:']퍡Fy7%WP?/cstMTҫaI3M|Z<\.UGL}SkkEՒIXgSZ:ٹ8\aNj7b_ml`YM+ΏhZ"wί@Y&8oi@Qtj G$/}f st;J uhix'$*A_ }w'ߋS;n$+e^dŕ@Q1/+;"}%t^d\UqrPVh"((OhU%ge+r 0Yێ-TBkm0%6VSJ$8ڿb&;fm;Ū̞T0+y j*'c9CjW](5-b״ F[uMkE-a/;>Ҁ=a܎iW ˭eW8ܝ Dt!Cʣt~inɬYt%v|\/GǟkRrQ+" N=JireeoZQnvO&bu:dWZp1q(֛fm*NO?hNCRCJOWS4D1̩+9,4j WR߅CGuOʩ7c zX4tUW@GήD.D~ǏARw )р j"/k)zN XrTBluq25ϐtWOY@f4i{FX0$]8B=`=~v`}b VJ%%UaΠh믡:Hv7#&pl^QH{Ŀ<--}TRec'=*mdSg6̫ɵ]?;\#8/:I\i*@ Kp༾8̠"H#ͬ bY% X%rCLͨP`vW(JuMTK)S6Uה%aKP EGJgRK -œ8e5 56 &Ɨ_s*i{8JJ^[Yp/$ގ{N&iYj[hvwf]*3>*p𨗯-!9 3]F[iHt \fhyD#F`2{\d< (э9V<QW lURs^nkuأ! s\u,8Նq'ksxd*?S˸TÒV Tz oШȳ@V1W#ÒR<Ç))d7S_ͻ{3Tp.,.;FqUso#RYX&}dsjqhrg`.֋{| j=]K:%&] :T M(\*î0G_uhx,)4EeipG+dWك9Q-6uW^IYӺƄ3Fs2kK` zJ9PlVFy]JLx; y=KDRy YR6%&gX!Xy(ɋ]YF'hvAB`&{7MSvl9q f ŬnE{:M ~DԂU X!@ҧ5ݶK!y Q=G6-e>#:Z{nrJ WkijT,28$9qMcNJv3~{>+Ao5?LѣaAM@D ^vPm=n|Qꗻ, EF)uo8DHD`#7qku'̍\b,-p&U^E_ OO7o*Ѥ\q!PIzyt(6*^IQoSKEhA~70>,~$[(:R#YXc:j/ D܊&UU^J3}o eFXXH32kYؠυ"?Ze&ˁGO&CuO"]~GR-ݰo 8`m͏M3mZzP5Mҥ8=,@EѪqneđ! AhIQ ^6jjh^& GsT1DiLP<ImUsJWE7"T6 xR`#H$260Ak{9Vr$ufpcx&|iRtk\̣X:#(n1^O..7-{cUgT ̒^O@,CWS8)##HYָ!+2g WiO1 T8*mo Ǣ|\`[̽gl D[;OJ`nHs#dWD/UVtw]ހ=n[$ZAճ3qaR0?Xb ,b?ٟ-WXYL1pT;~hg<^OAU@;A톻 Q . ~s:AAk M=0=1s Qo̍-kY03WRirOfvX:Zn"㗸Ioz9'l iw܉ 5*l1] 5MwOU6˴ LdIK'ʫ$l"X.qk(7 E=M=*_BM[&DIA7;Et²d<4BG`~ma)gH 塝A.[i@ DcXvJ}J7K\~ߥIG2׍qqJgk1n[gKX[կ/S.WUЋ İɻr.amPOAFA4}|WӝF5'#E}S}P~:i)̺go(\J_M +7 @@;6{;'PPQV6Cy !s4BݎCgpP"קiˑ$G|:rϯ .SvVa纠#j(jQ3btƕ,>a 0[G˰\-p}'`pY$xe',<@f8TTP#KU_ocWa>q\Ϻ&hI cm};|! ii݇᜖'<(Ә} m=T3lTJj)ftn1+=uXب3 z}KmdnXU;p ɸf麭yNI "^RX-wo>N:̹VʯƄQYk+R@SIPߖkI`i5*n»7%(!-=ύ ne{ ي}tXW⋌mUB/#|A :`U҃mqUn_.!/)7Ɵn#. A e@lywzۗ^koRV Y*c v,bUqdea{U6t\ʈ>%yYblw5FHP.!D芍4~//I̹SlD@ט%IgnRJsS2@9>p *ݵy$a:^"^vT.6Al 0 YC-d̷/ēXEK"ڑ$P(N,禝}-ؖbEɘA.\pWVFDhwqp T)~͠zr[ Ĵ#r$#ќU&WlWns2a-S73&ohÌCӟIf|df}Hd `c?m˗hȍ%P,qn|vqp ;}BAhqM99 U0lXYOS㹖ᱯ1?Tƍsx= ffk^EK5ၪ^:һ>{ d"^oN nib}A5jĭT|wR͠sDsq"̗=?=P6'8!j"} sߟ]WŴh+ELI5DߥPPf;AsTJެ-E*{Kgi;Km 7CV\aa8Y"v6dTertCr^!iU%ny\|/AJGb6 /scrh_C쬎Z{PoF |?CXJC;nA')"zP)d=zħLl}݁> =*,n. Wh.&g/H;<#_xEUWB)?(v(4_,@ʡ瘮/a{eq&ڑp^I5*(&/}vG-s]ya8s~I9kB:; oMI`J,2/mSs;V^qyY4*ԛ=QgGTE^!I#[= ګl`ݍ\hyARJP}7n9vGܳ]KZ3Jv->eW\bߺxoXǙMQ;)Vt ok;B{>UvEPZur⣀h0m7J2`SIyó۩׳rޯW9s~Y8)hbkhJN~6MPH'F$zyWͶ[ͳ(Di^Mm9ܕsQi_*BUQx1Gm(vc^URAy tWBєJSY7u5Ac@ֹH8 Q?g<NBGPY 0MуxP\U&>ם0i_Dς$PJ6#IϗBlIvhfu;İ' 5 3RY7[k͐{4\IFf0iT%d?j;'#!]GKC?aJ⬷}e#v%^>!^1HPE05ٵ!hfzWmYMs%,|cݶkli=)߻@:JhVc4˗XQ )u| ظsr!_:H-,7f[{=}$RC 2|ūo88)\i2* [<;%84"`Ej6g cQ^F&X,fGr D)5B* 4E}{Ky(h*$<'qy|ի.*u%1Od!7L>mRy,=7`} q ܊ {m^SC9M-t[>zq3!vM~qTօdu作 Zg-& 9ΗX4AL49eDgb99Nډ裪u7+@]6$S&>D4nUj{]i;{cbL @nxsB[-_M?'9,xL*l7'4|^"~4܎ lؚ"F>F#Em7=d: !kX R&vhL~ij< Px^l6MFá0ٵ\H]x\§WY?"`5&idD67b^l<%<ã`/ts&oT5+%Fܧ U([-Uuw CXsX "Q@ ˸&yE)QEg#=Yӓ}((~5b ն`\t(߫VolS=!Ȑ\;fJ'<.k 'ў5d8G埈Я U7c$^Ga̱' ;᪘u8P[P){`µCdK(p:Msum1<@<D^S1೪DJKE4Kh gk`(E@rZy2X=)WF}EE-Na6ZETUz\TJ3.>^? g eޚU|Q5Bϣ8j$DrEf oGvH6O3 m U pؗ!6oDɠ6ܴF9]:><| ,f}2vopRK%wv+Ǩ6#X'-j~G^W︾ ihɦ;z|q+"LI֮2FhΰyR ݆n2jGQq|ːPh];šCHE7J%)F',)s;!g}4 *3V!PV5X|"۽U{fQ (,Ϛޙț)Z_~J6jwhjx;ndS`/UxXDr"qTU~5IjwU; .66@]H'-t tg_#\hK EH!|G@cFђS/˦- ?a5Ycs#_i>9UenUИPf1}E<(!'d܉O8 y8yG2ZA/ϲWOmI֥H C!)/R/5!{?5dzqػ^NϹ k/.M95W,HdĮ|a%EhIOsauNj/< @IO5S29@19C޽gnuySW[Gِoʤ B̻\C}:[ˎ8LPbw@èxF^i44id`RAPgYjI@?̢Z Marzzv7$c]i,l06kd#N*R84 ]g\_hRzV㢗W՟⨿;{ovP5ʅ !zO&@o=\@a3/Nk<աcv*MBg~ &%~ $V>SSۏI~+rGRw-$ʄ7PSЗN3hC摦}PށJ>y1Ё^m"q"[ش7])t N?=2YlE /p'!d5g$ndR<]6:2ZT!7ax(Cj ,7iO7X;XˡDߐqo:uQPfp(Ni!EW)/g0BaVMT"ldR,̈́N{d733pP.KXfeaIrX.8?{nTJbɓ (߱(;mDsܩ׋5ucDi. 085 uFx2jʨP}¢Gu ́m6:w (Pj ڱ?h(]Psi{wϻ*j@Xs EtAP62]50ߕaa9!thB1 iI sY*nk_휂֨댷qYKO6m [+ގk= WaHh*iGm%`tZn1QCǀ-U6h աXb=>kx= Aaoڱ$6pmb5Sўq A|d BNEZJ3xY~AN[vV%I-bn& #>v|G@RF^Z!vujt31wX">d8Js=!ڊ緎4X5VYP XMO/>| !-&"n_d \%1Hz`W C% js}fV i C]ڊ)Iw0Km#݃,Ś &abW=yB. >v)f[?qq40x׫>H&Pq =$bL{] !Q Grj>B X|n=nE;ma$x߸9y"\iډRIδ:,HhA*'4:/]Zoٽ 0*ǫsFDcc`̩!/Umb-C KtqS@^gS1(zXj*vܴR\$\}nzjP&ōY+Fw˕PlS(FѠkr~ R%Л2U3S!oc /{Y-"PPYRoyv4{D\r%hjFXP6e?G]tHf+ f;enTf1:"IQờBZ&Sp|;qsVـou6Y\U!>oNԢ:&q])ץ<pMuē .`/IĺH9c۞ NSЅ8]R̬goș6_OىZ#R F/fxOBpw/kz&Z@/DqĿwL EX֏Wb/^Jn}7bM41ǜk|f~6ԭ }u}+|ҩ6eja H崶$sF8\'#'!- 5_!eZJwQ=xFҝZfޭ͞Re;lIlQY &mO1evFk9ܮf$P¾mo!X%<"ZÀy|P}%L Q$Q6BCG|[ NSw/9uquuD0P\Qpmwak6D &*n3Ym(/`mH}b9t$D'Ma}k j,ū+3z\KY)Y@[?wYh6j :A&jƽ7fU;uѻˁү7Qo9:6ILS3N&5lB䌙0?g֒v?N>+̛%:0?0SzYf^ܬIFmq(+b2@Umrv]g*¯͋{VҰhx@$l݀nKry!P[@h9ׇw}+>JNGnIBN'qp5^XRkF"A #MՊn)eyPlO*MW3}P${ʂo~VAĂIbũ_Qӏ./k `J:c ˗hiX&<%5]6FlZ??:a˙o0,eaR`3W] .ɺv$m=(/(N8mYXU1݋ېPV}2xK_$;dl{XѢq)6şcǠ 1NJS wuzErI\eKH og@ ٛ0؜M|U%"a5~㙣=7i;_ $ryy |G4/.[^OeXƖ$^ݖONJ i,)tCԽu"Vqifye0^4pqv{B} Y:XmeϹ qv05_N2jt$Imilu5rEu(ރe-L˘bi ~CjԹ| B 뉷sw;Raabis168,P lV;\s{߶^9ժvOz'xKnS]QUiltt\-g恋j/J1n8Xo9P&+&H gO k /q`&3tfV`୼Z,QlaVWN&1c1U -x)qw|̋Т0 1 SJSM~g/8)X5xK9(mt>2;⬀H}{vryސAÖ`G#^&ROK"a$ЀiG no$:ϻvKJd@FmL -|$ˌ.qu+!x<>Zޞ$|"&ix2m|,X6˶/I4cB# ^+qaX:;~|&^x|) >^gX6\D]ϔm_8d}YGD-v1C,x7MsSP2ZЅJڋUO>y7P}\ ֤I~)GFM24A3uA B)ʆ!!ءӹ5xŔ?O=Յ~t2Ec2M=@l+>Υi%Niu\ OE/6>U 䋿CY`-EWhQqa.cr\P#/xm*}"w^Be%5,e%r!kGpq2;kݓ&%{ZA ƌU~ ҳ8eHCxN9 ዦ5m%/ {9EHvNn&JMX74{~C}7ʞ4HۅV ꤠ&ez.s?DcAu,MkYrňCn?˅ a>#?ug%2We7݉T *:p9vDՕ?h.+×zS<&:RŁ؉H#8!>cs" :%ܕ!scR7{ceChlɏvpj YG&Jdb LAq{//L?JͶ|߹eXclmz/] :T׎R, =A"|l,)XSŎ_BWx}Z#Ph.pHZB,6*gԉm9FJd RƚyVƌZGբFL 6;s&gsHl* ja|f8e)gaUPMߘф[RhS%ZUD+;TmS(*IU B9/S1L!#w|f6#CtLЂJכV fr"׾b%BXKQbjRnw:UBS-<2w^v!qZ`?zˆw6kίDD4jiѡ/14/2(okWnj[ dILp=a裛 :?("m.b|i"Ў)|jSFг ^NNf5ԏ\c_CL{>a2fǻ7tи 5,uG>6~L^?T۾0n=z=<*A!J`'Â*նpp0.LˇPDe3H]%.3MYd ORHT4%U ^**wߓv'(3vs=AXs`f#vڳ3kE_aed@0`*KO=WK k@ǐ%yX wx#u4=NRz˧PAc2v%Sf3X߆*'[ x]4Ϳom*tK7o-8;C7:w%͜H-Y?FP6-:fgcQbbDi*Q x9 yܜ G5χIY3CvMlW"PfF@ $d zaVHl`)b!FgHT-A[fKBcBgG?߸5tǭn>,B:9lΟO5 Q929xÙ#b:D vVIuk|xC8hXA k2L:Q͂GNVo/X%lx %[KNDMhfJ|']im$^ r%-BG!xY^ "OS8 %b%mu9fZ&P",uUԁѼ0S ONܸ(=:j!¤f@B3O<" vINēde~pħ`LYF l#I@T=臱.0'Ҽ8O(8rx䃻+2'R> ,P+%&@W &ӳjrPTǀ_]PYEv{闎/k)Vq\I _q˸$>MT@Xx#.2CG1\]2,WD}٬G^\",`{}tSim‡W?Šӝ :V/4^ 0?@i *jlW5ڌB_9WʕEL[H,Y_ޠbGnҡZ !D T܆OH!"Evf"^,~q Q=߄a3\WiYFFu'ijF W]2r8:[o^dzE+&#]-3"ޅiUX]& iA@UVS0I˦Y'L% -~;?D\{ksGxtl(|lKՕjw6#J\p(Ӏι9tzXCr7lt*)’bٶR(Qf8zհ+闇%0 dkOf%-V~=k Hrga+v%b#h2-B'ak( 7Wkz̆mĩA'ςHj(K+7X5\5ϘPujRCμ,#X=ڹzoIIh E:TDf">=dy~|-k5=8Cz ra6)`U+ Gɹ~q .ڛS\>jI;rZ\ SU^*Nt;ؤ };9>P(?(2s::XAVdt -5sDAQHBIa !| 0ψ/a] O@GheXNX, >McwbR#U&}zVP`HªPGI}Jwi M giNzR#_.5m/5+u2 B6DbK(: Ѕ<#xJi3S%~yDǟt8 x/?%[V hFڱ.;02RN0O}¾-k4nPwe[-}9Huu,o ЃbR =`l9<~lazK<,/sbD ԝ̬Y!|:1AU%r}yO .Q a}Ih\~yn0 HʦqsR8iB 7ZŮu¢%Q|xa!<6uu@شZBI_ Π5YAXuXʖƵ<]o#yJtu#<-'Z*`KOht<~!r@Qϙp>?;5(|w<ZKʁQtE} w7g) >ڥP6>'T$O-AjbS ̨fG,Rgڕ%%3)y" j,,b(/" jQ__\MaDMR+f;fNOm<$Zj9: ݀|MȭkP1A|\"hmTj5iH񋼍ax(_={ZWȠ У~Ҵrt=J ;1 /i!h}O/4"dhۻov!5]9ϭ@ gBɇzw\Z6phH''o{g{;@kQ?l%[yتWU ؏ĉB$ >1dvNX~gi!p C?7UR!3]Y_ZrM"0mή/ĸ(Aw#)z}x )wF3P76tM L:BUbyK:礬se瀴rDU@́*F, afx_6"ί~Z*^׿6t`_\`7ZpY/׹Es#qvg*n&P O环^vLNtըyt8u(xBwsI~# (0x(5b hrh݆5hONgBh %~ ,wc9YfnHotfAz4u^=#)h~S Bᓤ&= 3 cD Ug["liYK57b0F D"yoI&Hz< UP{EN }ۈC5>,ow&!-ghkL.q9!G^45(80J3Ρ~x7Ux1ژ[jذ-:g>8H(=]q[>! a4i NSp݇^kW0{^͐zeQ0\Plåipaͼ RC*!.=nd VKhXMZRF\_ʷ 418]2w@f^*n͵r{ zF ꂡ[O mb]1Wh,gwSćKc >}'Vxpeޛ<KVe*{ˣMiH xhWj#JFf3u˜X42lEɯl!6)=Z$, X$gſBr'H=Pw# AhKf f-WAj_v;L1IQ"ߨu-+C)oO=O3dLҘ̺^c<9j @5%{^ܚ*\9q(V 5i`ୁY$BZ igE[tnlUM+PNj\sN0xj]Ɵag;q)ڨ)u9l/ύ+-¢TUIYMc̾k\G;S]s~3xS/|OP6TєI~:rm%m'.=>!S'kfd 'OJ"Ԥ}+DZ;5LBе;f,~jl-n`gȽLpx2$Upiǀ("竆ᜥ $HQ#^X0x;SSm!@h ,ETh|>Z2|ʓzol Z>B>vzK;"|1 LcdJ6o<څOoS"ؑ[tt2r/njh?PLe פ EGMB'Sw}hۻ)?{iǝ Łh+ MX4*k8R[SL'HjXp <#Zx6pϜ->澪Vn@.18`p5 on'J<$$c$]IW1AP.@p[2 tw?uFJ7Wܙ~Z, b8K+v&dmRͪ IcN~nBf8[[, >lzBN}t8ݍI95\%Cw_:OKN3HDs<\X3-e^+UVUiZ#)o:WNiRg&)rr#>(0)4zǺFeE8٨R:]L2am&^o:j ]MIς*/טZ I)e0N(谩XE]<1U4|gz4W:-vL9~x1'`r-Xss R&ɺe`Cz԰lgQ0jxt%S巴b8_p)@dY؍ bz kYfݎl_TXi^˿\:*ֱz" u00Ҋ3LOXFg\Q/\c9b_m=y[ |cɋҨs-'IӋtb/}Lx*Ƚ\I^`cN0bWR`M h V؎ e\/"wǹU[2YEK RP+: Nk p3Dԝ7?iQp n̚x'8ہ$E ^M!* 2HNM,t#3)_X?XRzrd,1BFk7W=*fUb:q0)qP|7*ZT41Ip'FLLZrHCt]Dr}}X4;ē|5z* 4dG$zjr^II'Nj~x(@$pݲyΊ7]o@P0֊ATNd3tD iQ8E МKhB}E ChΌ3xE2%m8YGJoۡs2Ds71VCTo; |sY5lniQV kJ@I=?y%fF"5T$_hrM&n VXR7n3|1EC 795%tAt!ƒdړ}ؑB1}>֋)'cn:T"'-n<]^Ej`<HDG;/:; &we![2tş ~ZrՄ=D皬t2ZޫWX-zDSOG5eKZC(5@s?JcjPT 'I(i=m=ծYφUpNP52y^}[+7+ ;cM͏hGʒiڢ?wiRC$sM*I_}9eb z?Sz%u]$H;'IIv8WWdjݷCq#9[=j1/yzACTB}N 5|*߰TIYۼEL\Bȣ=}fy<.,_3l?-CzL- >L] U/ ^0wq )6@_p997q pBb)pi)tvs$jI8{Kok~w'Ho)HH\E])t*L3F_;X#2[qNY< 9J BRE9j>$zv$JKgȪ -w ~!mIÛD^Ф-phC=q޴9R;柫/PrqױX}I cyޞ `y7ζ?:(:V׻Ҹ咙hQ2 '7s2G3C7 es*í@OjOͅ,,"HgQ"i}vYu9tA&pRh`)^td9vY*uP(N:w xTjJ+%ŎLvL\c g~4M vlY ԡ{#֟f'屚5|L"4,p$1-ƭ]ojֿKs^(saI3.5 ]'ֳqV,]%.tģ0x{~Ӓ8e ^`b+$ -'יC{+ KRcGongMjWlݜ:U)+ɗF"2 ~VWMJwAX7YDx:W ڋԯ|<9"HD@܍ Mh\i4z\,b]xڸmf:d6kn7ǩ]X;+anu_LHۅTLE߁ *'zj(4aHR /l)` VJĎ˰L*AP$lIqpU:`RڠKwr/c#޽@FP$4_IDzjNOx0~nu'[ڛlh7 n2 X^;4o&P`h׼ ы׃E "T|!CN!{zNՇgSnB+0(~^8ScV7U)"Z2\ֽ_0:r-hsYz}";tGw c/ r倽!8ڶu?m.0*åwWIܑ(P G /8G1ү5Qt23V-o2 tJX3:#E mQk䎐fW Ժ)FNO1sIɯ?+"_^&r/|ՅF\^Mt9 wԀ^2k:fGa#0Nu4:]̟E +LJyI;o}&uU>;P-Xt53g!L1aL++ݔgGZ{ҠG/LSyuцCFzNtJiF)HbaX@0=b》!YZ7~eZ'Vp x+w^tGHR=}$%?ҟbb WgeX8-N!TU 6uBNm\i;|x M5>U<5P9D u QxEi/f=+]Z u'\t~G-U=43 tsкukJg)_%4ÖW]@-a8 !~i@ :07<5s Mzp09peTฺtM'FB}KyA\a}bgPU3WLq= p!U#Fg{|D'r[Ryz{O,ppgPzyr]d{t[+sō'`g JŸqI-_|=OIC!팷*:rO[<2c*8pTyб@$q獤ndaF,aoKâeV~| %[8awE7oV hf(62Rf3(+wX1`'3+9YnS\13+RgI{v}$7/M.3[G<Bi1 >6}0 F6a J1{q|+L`XDKQ)DVn[c?KGŜVL1jy01蘲-)Fd N8Ӯ"_)hWUj[,R- J"qQjNstMWj3߰l8>ʿBnիm׷sUh +PI=*=4>R\Ц_{j{?kfjV/J^.Bby"?J8)wd ,ߥw1rF# W'ъ+-x[!zCO5} V=w]k슉=h|A0Oz^ N -w .$ĩ_huU'm4ULԏ\6u%*]{*n'ҿD~ܿEic')c:dm5l_l&V:F\?}A43ɐn\W\f}C TL7łY0zv;TK'H_iӽ!] l4HEtTxC@8d qp Cq؈f6м}ANhj[쩉8¯g"XS@Fx#mXm Af e%6c. l,cMIa} Zv!]$X|Gf]F=d雬1} YbۚYH ų~7c`>_Q&=J(c\ E6HA,,㙻j+X݌ו0CFI"hlvSKY0OY"YC]z!oOT\[w܇+ ;>iI(zAp@f-W $Iкm(lz):y\R`4E--޺Ĕ9|} &s3AnCD{ .T-KMC7l=W?x$*pfuBИW hmpn.O~tX\,]ٸ)3A,k ~YAtu+",d g5յ8s. g&[61Zjxd ‚AwEqXS%p(U]X\TV&NZr"Gv0LγBܯO uvHF֪lv|){c?yA & h8PaHxQ>tטup g!y74BYΒ]ET%y["GPWiaߧG ,/5g&Ǔck6ڼȽJ,YZ\{kCx_6kB N_lqKʠUG6OqSNR-+ &C8[BԈJj!M͠I%wf~0sR!k]qm~i]ȒP4na`/Rw \#މYkL ˁ$܎X LG̻H)[BJ\MnG_;Bg\pR`&i-Ԗf"5V}tNF;uRxY~g]iią돻Қ|vz52[Nl%7ו_bOUPƚPlcBC1\G=WC=m\lUCD1~;Pȍ+-;2LXU}>,˿hTUJܬ*lw0E6S"1LwoRIK%UzѨ]^է:s'S']H0zms&s2;򭧵a9r}ڡ4^p\#E Ibzcq"]C>uR1*|XLQNpz)+dbd5T(((iib7;oZיpYI0LobS}sƫ@0[R#%&xho>:֜/,8"|>r|O :1j&j•x]uXHQ|?VDH+ѫuaHdN,U卾0FGkgG}(ҳ wrIߤ )55m EDtIg+.',#㊏- KJ/)쀧Lo._[Z='t.V$W4nKp֛ߩ%0f LZ΋.z 2SNԦ3lu)jk3%ܱb4?7Sݦ:8H~צ}J4wEN'Vٸho"a8ͥR/v{"nS"2Y2ep+nw!9 q eb+*Ӥt[-n46lI(?;pNOoKU fTTKKޟ][NkRb>K(jn!a RċMjw$k~v*/gu7?.W^U|FmXXGƼ7V 1wį.Yx10;T%V v$~VO)p8,?b#)eh0̩U >P mj YVN+( g9*bC d ]zd_(*S {R4f0L3h D V)]KhΩ5.#ʻ OMd,̤#'p69A&A`SMBտefD8rBXASu/IvV-9A"88;gS-I: AE@ D mЃduI Bà),ecAXQ I|ESveJP^ӧ+ߍ&xtWՇxt VSh`^Fogsӥ:gwR]6#M侃p X.R>{o ?Z%& #*w9IV&ml5`( q( -=6r0ɯ>V"9|B7߹X;,!:M/OazW0G[fs vd.PqC9-|~_sDc"M Or1*:C)p -!UiM;>tZb'CMЎ~펛ιĴGv)?%@XS@p ] lB'Y!G$ꨃ=;Q(Yεk2BPפUOơ) @z*5*ef$lԧ4O١$lq AӨ:DkLF\LZ@i`&}#O:,BO•RM^ޖ+ҮNEQq^s ,0$]E9=,?"AӃ_IS+5}/6}@+PA^]V@uGBrvBPR1¢;Ǹ}!o?GP͟'7_ƎߍVs"[_0Do|g+-KE@+9C. /Ϭ(Wj-orIZq S-4캱<*[,QFI;20ke H'%uԯ`OV4B-PU&8# 2,D pexL3Z({i"Nh^#`*ᎦYa(d ză[ȭJ1x-:"oxD2(*jn֖ ,ҫ&DlU4B5\_7gi|܇3l5J#'pӅc͏G"9#:PF;@uqJ _99֕0f%nɨ/z;g'QLEf5y`"uy ?G@lyWGr9)kE[C֟`"rC(&;hˇKq.Za>u> ꅃ*Whp\G}xԾ7GET 4ryvXy~+<*-zp?vVУgdnE?nᰂE/ Kd*w,1q)4uFo{_il4eejt IKV BpPB"&{R=d`jIP [y\c[G} ANBУmZ̎81R.I9vEj+f3mB\k4uX˙wq9wxu%# >IHj"7ɜ(B,'ki$L(ba e<?7:S$r7KCjbUh\.䌍>"W';ڐd:!z>,Mx9OWIʑ4 F&9KRMJh֌G8UEU|YzHd鮯X8WzDǐ໰Z; 췖@ߞ 1KR{@r~epݳiIS$c>BcbԞMzH-|&/>OqO;@fdAX 2:F,+NA8/X3t)%i~RKDbD\$(J hxv&0)UkX.Y#1Qte:+ (.YI7cnI (%X('hK7X"72Įr><))7V?c;-!GPL8A[I mClOCEx-G^"5%p)HoYwAw[F)z=7Z!硺&^&no5tR|.fY}`GFZsSiCթwI%rǮ)+xed8?N-[7"zz#Cerzad3V:?NTR6ƹጭ7vS#l&73tynp֡9K5~>\1'&AO ŘrT2gqTW"P,BtDLc~~Ssz[)ETzҳŜMVc P?¼Z&fv4͵h@~l/OR|[Jv{7@/.ot( N@\߅$}ρ׀Gӧא%,uH;X{s4V.14ն'~Z wmD覈6$/_8ѹøfަ]{DI[aS!l?S!n?gRo8.hEQe6/ o[W1tyAaېVШύOǯu J-q.7̵8umpKMo=si2H }MRSMQD Z|ă@܃AueSp|;Hes2mȋiXc&EKkn"WJdO츫4 Űr9~Y}*Gj*ĵfCsZ,%Wĩo^սad\U\Dc & %Je!LbH|f`!ްG\>)AmVS/b?[vyxa]rYQ5,/񲋼7,6 @g\EQ$̱, !cI!_UJ^5ir:'^<3ͻI|EG;g}@#0g6P'%9"Ѯ?Uي,kt: 5̒w٨fp NA0KIq$f= l H^*!Y6Kf&{r"?&z]voX"rԿZ@i0sTg/#,߁>Zag0.h73FJf0:CjR>}ۣw"t/q]R]MP)܋^ ?lM4Li(!R@nبf : V,AW"2ϻՍCo7:֝si>/dj7fs}(vPRyY6:ue^]H2ϰAjVBJ{~tK _ M & n<%S,+-1ލXLL6]BH̀U}A3v6RULQEB6)ŷlt 8Q&C>N-Zcؤo+i TRБa{\E ʸ bj!4-m::/ c5G x@+|F8oanJh,闬I+ҪD HP2`ѥ B\3Ϙ FR?PB'*5ः8}1 +88i/JjI碤 #0ǥg~Ai$ms8'!)q|ėޮ>7~Z GBݭ}TաL_q 5Myƨ-&=77x:7%^0s)/Vt*\ ((m"BM/#a3u[ O)͈0g+s2kxaQg_^tEK(ZB8D~r8k s900xrSR92R ?ơOogcɛf=dA/Q-_>ջy+~v X^WK*̪)ǿ\’K^wK`v'Vrex Ǚx(A89J!zSAGK!>7 Q(Λ][ǞSG/t8dή꿧N/;5WL%vo$TZst=O[JKj8|o94UHE~7q92uAQFP0NXo8ĭt4#<7I 48Y+-q%O2 c>,aBs=FQ<G\x Lfr>QˇG"UFvRA5i[RKϬ\,T*Z,tj}#^6XR~"FN$?4̾-[~!0dA{G3t)|+$Q)&[6L6H󋗾y!+Bi%B1;_%`nvˇ~;)\ɔ#،*tiPzr^I7<U~A:xP_&mdX/$bRTV\kIx*7Y sMAJ[#R` Ew[/=}'-t`,kF߭+hCt+P,xyzNG+R0 nXFF C~ߋ6.ykVОOFF0ASl]CF_*[V},yfӋL8 &u)AV (h9aA tŸ%VKga@N<#.N+kԴe‚H/YrA歌q:@L,=/Nxצ;ˁWĵQ`zZ4K_Xf`MJEtd禶bWzKΆs2pf=z1!z5M\0ZRT'lYcHiK3zzatS,Mx1$ <IgW):c*KcGb"J~6c`9a{K$5 )aĩ+a~¡Jy5#4ϋtي"X5İ7WD5}EF s[ `{i?H9Q{Ps.YןfzJo82$9Ť;9s8_̆@S EJ`~T(~(Kފ9 JZ:_ec#5ڮŕ67ڈB@ ȨfInr RՖޫUPR1 0l [qK.GbLNŞg/xi0:Nl?_ N6o$v- pU$dL>Rty{x[vČ^sBRk r;dЮm2PE$r)_E$t7#+([\ |*"t6ZT=M^DPa2 *I͠/U15H"K]@#7pNhb޹Xt!>'̞4I}(F."ΒDL[Z5rJs!,"|`}Cm[ޯK#EM ΀}s(3eAћՌ&Y]@%r:N=3s3D&BP/cr:$.#y1aCicLVUbў-՘d#FGY|mĖ"͌KO6) \d1?hM%Ԍ͹wA]? Axeb| Gʼ^^< ^$!|N&&霼G!Lp+GC!ALֻ*cn&PIqT=y;  ]PĐj3E>g|(mѴOqf/j2 lE~gy_;ɌpvU Yw3Z>Í )h{\}wDMS0I]JS B-TL*=nw p^KLp&|r@vYy?X7`PV ]]B Y#ݺV,Ԣ `8ƳjH^$ s6^ +zqa̿Du^>)T%yq+/}^=kQA7.t;wkGX:N[Mi⡗Du :m`uXꌶ7 wK[-vb'τZ Zr5ws<)Ȱ1.]iH eu-i}<1Eyak[ $%3*p!عz(1Hʜ @2\ZbnԳxb2٭oGAVZָEY> [9L Z8͝TNE(^Wx:½֮JpWo943mJ"2ay[C%)n$beUTG|r]uP?d1f;Oh/5F92 :x0@A_OVd9ն$* XYMxE.h n7/i/R%3Lqu8`nd^8Nc-h-T+x8-p{C3<|4\ϕLd!81ihu\'B.Pavp[\5fubOB>}Aq#ͱD6=i*wL >WOsVm6NN8D-(F RNܺ+wmoˤ*H̳ @Dn<p9闉*&au0ኸ&uϕVlS GT@95, Fg),?,vv7TsGnȓwJ!߻;ENw1*iBFԣEdu<'sj C?:OM\?:IحJkd:@y[B^ԶQNz\ 'l-YXfN+񥌩 Ӊ+2Zpfql}`|6ڼY.R]Ȧn!;g.z8Wޝ]6{Zo$|Onə4"r/[5 4הP(KEsbAwχGq.VI3%P jm^l2@r y~ItD{ 9& CH Y|T;] (]) F;NZ،BX:ga}E䰷?3MkIv;aRN_UPaNg#㡔?,~e_og =]O'cVMyL0 ".'s(懦hQ|[Xc dMدk]e85xK?fEF{q\v 3hnSwl]`SeaKPvD*5 ⟅6EJ^ BDOPnXٱi~/cd( 8~q#)zY:߸ J!v0qN Á#NB;jޘ9W5E 1\ibktWNܗwBXkJ؁#,0](%#ކsRW9u@Ao%n64Ԣ5[r6eW f b Ih׹ öO ^ _хeJ-Ҧ}F\6Yu`.=ax!|OOeirmB@ƍr? /s u}]Ff\J{5c>N^t^ d:\cp:E0ڍpٝu _l{Xɕ1)o-3~uz-oi]?s>CHj2[x1aZ YKrU>ZQM)2{Y >xȵY˖t Q)wtxF_[w3Y- SX ?VE.#y,=j.)12;31o.,CsLo7ٚTx]b^6 'WD$;]|>ֻT']dJ sD/]",sAؕHLjMZۧw.>JUckGY.=|Վ=H\H2q}[LY^ i晍H9azSLk@%'aY}ҔA# ̠@z? bڣY2Bv`SCY>sJyqkn:ض!11^t gc($&FiN,cb9ބw#nt( A*Eeo,+niJ9DW|҂G!33Š֡@fBA5OrđˬƺAz)Ң'={%B kOb(gerD@0}/!DϬg j,aOnn%O@,`=Qj~':4K= <9mÓ!W?N&W{ځT 84_x, pD8~s$CCo mšc; HB8FaN >W<qSYIqtiN9DYc.n xlT`';;;] #8T+q"u@ezlf#uq6 4sVD+9AWDSu"Q!G 16 =gptOa:(A*<4P F^ \ 'V0z1y~lj`<ٜyA0j,@Sn3&RQZRبu3Wܥf')yᷰrq=7Gs{T]YoK%SټAڅyD^r:ѥ# i̿6j$DћJڝ En'kQj@S|ƼlK~(#3YUߤ&{Xݩ+ƶ&IWT  jJgS2n]s^ݛbzP t0܈HED2qf2e-n9&uCKvF=pP>wJO NCI-$uD<,C)=nIYxuc=j#:C' 0LеQ$qRj#X+NbܴG4PP_X{D?[`öߕ$<=n6{2v⌤?wP X)Zz<Nzk~vujzC+vSM0=y~r=' '\]OE5Mp VAqdMyP&O.\e0h8[j"X?xiL7wP1¼-zWM>qE{/z^Ef;X10=;4seGa."?sG%6L>:4}Ba|ƕ9*ː_4UPKD;v@l"MG%^\t B9d6&:_1pؘ"|΋(_OkwjXaܨzqkaFPFZfMm{s@.Àto}=͡ [gD &>/[M[ P?c|5}Y*$Q[8"~/_@T(ƻuY/6Oo wM-]]]#͸Zhק>1N.?d$;W5ۨ9 D zC}eZDg"lYa6-MsQRSRuA:GlũB%?QתLjPe@׏~JC'YU$ᖐ’`1W{ۆL\6zÂ?^#voέ D*YC 4\8#hq*Zڗ{BtboSK(3C8̝ lj,4ܸٴ:t?72UI~ntl}8Z9*=NmJ!l.(>'~~J+ ͸}e7ݒzeAb_}]Fzɝs>WQIP ~">} @ A2hy >'oISlIU,X<00s*;\QjYVDoo;\cn#8D@H (a A#F~FezZF\y)K^v2EN4r- U ([V&<2gːܲXh:*{l)oK9~kmkhk&.2K݀@'OЎ5g*n.t -ozTQU\IZpm7_}) @P?tjUSct8znݒ*F]R8lf9ôcsuX whgzG (txO#՛Ļ#~A5nQgAD%6|LUtCF6M]n!DQKS {zş]hSC|I]%h* 6i 5UX="&Qx2a=ulշh!hxaQ0X0mPjP l *L.{1wEzMzDHGݴ?T CgB^] T=o 0V0S:vzs/h  ܺ< 'x( sTAGQD0 h>d;4y0YtTx-Z@j/ z<OdMV2 CZ?ա~v(Y(! p YZ