python-nss-0.16.0-1.fc22$> d 2ץod>3?d   O $3B_ n   < t  N.. u.( 8 .9 .:.GH,IdXtY|\]^nbdeflCpython-nss0.16.01.fc22Python bindings for Network Security Services (NSS)This package provides Python bindings for Network Security Services (NSS) and the Netscape Portable Runtime (NSPR). NSS is a set of libraries supporting security-enabled client and server applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards. Specific NSS implementations have been FIPS-140 certified.Udarm04-builder20.arm.fedoraproject.org aFedora ProjectFedora ProjectMPLv2.0 or GPLv2+ or LGPLv2+Fedora ProjectDevelopment/Languagesftp://ftp.mozilla.org/pub/mozilla.org/security/python-nsslinuxarmv7hl...DdFCgBAV0A큤큤UdTN`UdUdUdUdUdUdUdTL3QQQRn#7d14c940e0e1d594020dc1c188fd1e409e6c6b4ce6ebfeb36a8586b32a9fbb18570b3fbbf89c5ae658a957a52be1f09dbba27b83c8d84bc53b9c047c9dcd7682570b3fbbf89c5ae658a957a52be1f09dbba27b83c8d84bc53b9c047c9dcd7682364ba6c9f519f112cd6ae91e7f180c9da5b66d64456db586f02a83b55fc41edec6e8016af0ac54506bfaabd479bd5e2b5c63e5a8d3a89c6aa78d9ce5202bbe180e0fdb1c68c4c44717ce017f706a96dadfe0c380fd3da2d2ee8461c7a993526210a90d35b2f823b65e0a033e951a7c83e858e1fdbb27de8244843ead456696a9f89ed995653b70490621118f84939c99e895350c33cf4d2b33510d65270b9b9f03f807ce2dbe93fee3fda967f0aeab9841ff8e7a57abbf0dfd173935ba397a0fab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c636b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85950ccd94628de27e6b0a4de91ac1236e347640c05dc19dcd28961e0a002f075frootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-nss-0.16.0-1.fc22.src.rpmpython-nsspython-nss(armv7hl-32)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     @ld-linux-armhf.so.3ld-linux-armhf.so.3(GLIBC_2.4)libc.so.6libc.so.6(GLIBC_2.4)libgcc_s.so.1libgcc_s.so.1(GCC_3.5)libnspr4.solibnss3.solibnss3.so(NSS_3.10)libnss3.so(NSS_3.11.1)libnss3.so(NSS_3.11.7)libnss3.so(NSS_3.12)libnss3.so(NSS_3.12.5)libnss3.so(NSS_3.12.9)libnss3.so(NSS_3.13)libnss3.so(NSS_3.14)libnss3.so(NSS_3.2)libnss3.so(NSS_3.2.1)libnss3.so(NSS_3.3)libnss3.so(NSS_3.4)libnss3.so(NSS_3.5)libnss3.so(NSS_3.6)libnss3.so(NSS_3.7)libnss3.so(NSS_3.8)libnss3.so(NSS_3.9)libnss3.so(NSS_3.9.2)libpthread.so.0libpthread.so.0(GLIBC_2.4)libpython2.7.so.1.0libsmime3.solibsmime3.so(NSS_3.10)libsmime3.so(NSS_3.2)libssl3.solibssl3.so(NSS_3.11.4)libssl3.so(NSS_3.12.6)libssl3.so(NSS_3.14)libssl3.so(NSS_3.2)libssl3.so(NSS_3.4)libssl3.so(NSS_3.7.4)python(abi)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)2.73.0.4-14.6.0-14.0.4-14.0-15.2-14.12.0.1Ud`@TO@S@SQ@SScR@RiQB@QQ"Pr@P On@N@M@M@MbSMQ0@M,F@M,F@M*LH2L@IL5L#HLL@L L@K@KJjJv@JlE@JUJT@JKOJI@J'@J#I@I1.He@Ht@Hd@John Dennis - 0.16.0-1John Dennis - 0.16.0-0Fedora Release Engineering - 0.15.0-5Toshio Kuratomi - 0.15.0-4Fedora Release Engineering - 0.15.0-3John Dennis - 0.15.0-2John Dennis - 0.15.0-1Ville Skyttä - 0.14.0-3Fedora Release Engineering - 0.14.0-2John Dennis - 0.14-1John Dennis - 0.13-1John Dennis - 0.13-0Fedora Release Engineering - 0.12-4Fedora Release Engineering - 0.12-3John Dennis - 0.12-2John Dennis - 0.12-1John Dennis - 0.11-2John Dennis - 0.11-1Fedora Release Engineering - 0.10-4John Dennis - 0.10-3John Dennis - 0.10-2John Dennis - 0.10-1David Malcolm - 0.9-9John Dennis - 0.9-8John Dennis - 0.9-7John Dennis - 0.9-6John Dennis - 0.9-5John Dennis - 0.9-4John Dennis - 0.9-3John Dennis - 0.9-2John Dennis - 0.9-1John Dennis - 0.8-2John Dennis - 0.8-1John Dennis - 0.7-1Fedora Release Engineering - 0.6-3John Dennis - 0.6-2John Dennis - 0.6-1John Dennis - 0.5-1John Dennis - 0.4-1John Dennis - 0.3-1John Dennis - 0.2-1Fedora Release Engineering - 0.1-3Ignacio Vazquez-Abrams - 0.1-2John Dennis - 0.1-1John Dennis - 0.0-2John Dennis - 0.0-1- Resolves: #1225211 Reads from file like objects actually only worked for file objectsThe primary enhancements in this version is adding support for the setting trust attributes on a Certificate, the SSL version range API, information on the SSL cipher suites and information on the SSL connection. * The following module functions were added: - ssl.get_ssl_version_from_major_minor - ssl.get_default_ssl_version_range - ssl.get_supported_ssl_version_range - ssl.set_default_ssl_version_range - ssl.ssl_library_version_from_name - ssl.ssl_library_version_name - ssl.get_cipher_suite_info - ssl.ssl_cipher_suite_name - ssl.ssl_cipher_suite_from_name * The following deprecated module functions were removed: - ssl.nssinit - ssl.nss_ini - ssl.nss_shutdown * The following classes were added: - SSLCipherSuiteInfo - SSLChannelInfo * The following class methods were added: - Certificate.trust_flags - Certificate.set_trust_attributes - SSLSocket.set_ssl_version_range - SSLSocket.get_ssl_version_range - SSLSocket.get_ssl_channel_info - SSLSocket.get_negotiated_host - SSLSocket.connection_info_format_lines - SSLSocket.connection_info_format - SSLSocket.connection_info_str - SSLCipherSuiteInfo.format_lines - SSLCipherSuiteInfo.format - SSLChannelInfo.format_lines - SSLChannelInfo.format * The following class properties were added: - Certificate.ssl_trust_flags - Certificate.email_trust_flags - Certificate.signing_trust_flags - SSLCipherSuiteInfo.cipher_suite - SSLCipherSuiteInfo.cipher_suite_name - SSLCipherSuiteInfo.auth_algorithm - SSLCipherSuiteInfo.auth_algorithm_name - SSLCipherSuiteInfo.kea_type - SSLCipherSuiteInfo.kea_type_name - SSLCipherSuiteInfo.symmetric_cipher - SSLCipherSuiteInfo.symmetric_cipher_name - SSLCipherSuiteInfo.symmetric_key_bits - SSLCipherSuiteInfo.symmetric_key_space - SSLCipherSuiteInfo.effective_key_bits - SSLCipherSuiteInfo.mac_algorithm - SSLCipherSuiteInfo.mac_algorithm_name - SSLCipherSuiteInfo.mac_bits - SSLCipherSuiteInfo.is_fips - SSLCipherSuiteInfo.is_exportable - SSLCipherSuiteInfo.is_nonstandard - SSLChannelInfo.protocol_version - SSLChannelInfo.protocol_version_str - SSLChannelInfo.protocol_version_enum - SSLChannelInfo.major_protocol_version - SSLChannelInfo.minor_protocol_version - SSLChannelInfo.cipher_suite - SSLChannelInfo.auth_key_bits - SSLChannelInfo.kea_key_bits - SSLChannelInfo.creation_time - SSLChannelInfo.creation_time_utc - SSLChannelInfo.last_access_time - SSLChannelInfo.last_access_time_utc - SSLChannelInfo.expiration_time - SSLChannelInfo.expiration_time_utc - SSLChannelInfo.compression_method - SSLChannelInfo.compression_method_name - SSLChannelInfo.session_id * The following files were added: - doc/examples/cert_trust.py - doc/examples/ssl_version_range.py * The following constants were added: - nss.CERTDB_TERMINAL_RECORD - nss.CERTDB_VALID_PEER - nss.CERTDB_TRUSTED - nss.CERTDB_SEND_WARN - nss.CERTDB_VALID_CA - nss.CERTDB_TRUSTED_CA - nss.CERTDB_NS_TRUSTED_CA - nss.CERTDB_USER - nss.CERTDB_TRUSTED_CLIENT_CA - nss.CERTDB_GOVT_APPROVED_CA - ssl.SRTP_AES128_CM_HMAC_SHA1_32 - ssl.SRTP_AES128_CM_HMAC_SHA1_80 - ssl.SRTP_NULL_HMAC_SHA1_32 - ssl.SRTP_NULL_HMAC_SHA1_80 - ssl.SSL_CK_DES_192_EDE3_CBC_WITH_MD5 - ssl.SSL_CK_DES_64_CBC_WITH_MD5 - ssl.SSL_CK_IDEA_128_CBC_WITH_MD5 - ssl.SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 - ssl.SSL_CK_RC2_128_CBC_WITH_MD5 - ssl.SSL_CK_RC4_128_EXPORT40_WITH_MD5 - ssl.SSL_CK_RC4_128_WITH_MD5 - ssl.SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA - ssl.SSL_FORTEZZA_DMS_WITH_NULL_SHA - ssl.SSL_FORTEZZA_DMS_WITH_RC4_128_SHA - ssl.SSL_RSA_OLDFIPS_WITH_3DES_EDE_CBC_SHA - ssl.SSL_RSA_OLDFIPS_WITH_DES_CBC_SHA - ssl.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA - ssl.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 - ssl.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DHE_DSS_WITH_DES_CBC_SHA - ssl.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - ssl.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - ssl.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - ssl.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DHE_RSA_WITH_DES_CBC_SHA - ssl.TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA - ssl.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DH_DSS_WITH_DES_CBC_SHA - ssl.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA - ssl.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DH_RSA_WITH_DES_CBC_SHA - ssl.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 - ssl.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA - ssl.TLS_DH_anon_WITH_AES_128_CBC_SHA - ssl.TLS_DH_anon_WITH_AES_256_CBC_SHA - ssl.TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_DH_anon_WITH_DES_CBC_SHA - ssl.TLS_DH_anon_WITH_RC4_128_MD5 - ssl.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 - ssl.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - ssl.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_EMPTY_RENEGOTIATION_INFO_SCSV - ssl.TLS_FALLBACK_SCSV - ssl.TLS_NULL_WITH_NULL_NULL - ssl.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA - ssl.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - ssl.TLS_RSA_EXPORT_WITH_RC4_40_MD5 - ssl.TLS_RSA_WITH_3DES_EDE_CBC_SHA - ssl.TLS_RSA_WITH_AES_128_CBC_SHA256 - ssl.TLS_RSA_WITH_AES_128_GCM_SHA256 - ssl.TLS_RSA_WITH_AES_256_CBC_SHA256 - ssl.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - ssl.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - ssl.TLS_RSA_WITH_DES_CBC_SHA - ssl.TLS_RSA_WITH_IDEA_CBC_SHA - ssl.TLS_RSA_WITH_NULL_MD5 - ssl.TLS_RSA_WITH_NULL_SHA - ssl.TLS_RSA_WITH_NULL_SHA256 - ssl.TLS_RSA_WITH_RC4_128_MD5 - ssl.TLS_RSA_WITH_RC4_128_SHA - ssl.TLS_RSA_WITH_SEED_CBC_SHA - ssl.SSL_VARIANT_DATAGRAM - ssl.SSL_VARIANT_STREAM - ssl.SSL_LIBRARY_VERSION_2 - ssl.SSL_LIBRARY_VERSION_3_0 - ssl.SSL_LIBRARY_VERSION_TLS_1_0 - ssl.SSL_LIBRARY_VERSION_TLS_1_1 - ssl.SSL_LIBRARY_VERSION_TLS_1_2 - ssl.SSL_LIBRARY_VERSION_TLS_1_3 - ssl.ssl2 - ssl.ssl3 - ssl.tls1.0 - ssl.tls1.1 - ssl.tls1.2 - ssl.tls1.3 * The following methods were missing thread locks, this has been fixed. - nss.nss_initialize - nss.nss_init_context - nss.nss_shutdown_context- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Replace python-setuptools-devel BR with python-setuptools- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- resolves bug #1087031, bad parameter spec for check_ocsp_status- fix fedora bug 1060314, CSR extensions sometimes not found Also adds support for accessing CSR attributes. See doc/Changelog for details- Install docs to %{_pkgdocdir} where available (#994060).- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_RebuildExternal Changes: ----------------- The primary enhancements in this version is support of certifcate validation, OCSP support, and support for the certificate "Authority Information Access" extension. Enhanced certifcate validation including CA certs can be done via Certificate.verify() or Certificate.is_ca_cert(). When cert validation fails you can now obtain diagnostic information as to why the cert failed to validate. This is encapsulated in the CertVerifyLog class which is a iterable collection of CertVerifyLogNode objects. Most people will probablby just print the string representation of the returned CertVerifyLog object. Cert validation logging is handled by the Certificate.verify() method. Support has also been added for the various key usage and cert type entities which feature prominently during cert validation. * Certificate() constructor signature changed from Certificate(data=None, der_is_signed=True) to Certificate(data, certdb=cert_get_default_certdb(), perm=False, nickname=None) This change was necessary because all certs should be added to the NSS temporary database when they are loaded, but earlier code failed to to that. It's is not likely that an previous code was failing to pass initialization data or the der_is_signed flag so this change should be backwards compatible. * Fix bug #922247, PKCS12Decoder.database_import() method. Importing into a NSS database would sometimes fail or segfault. * Error codes and descriptions were updated from upstream NSPR & NSS. * The password callback did not allow for breaking out of a password prompting loop, now if None is returned from the password callback the password prompting is terminated. * nss.nss_shutdown_context now called from InitContext destructor, this assures the context is shutdown even if the programmer forgot to. It's still best to explicitly shut it down, this is just failsafe. * Support was added for shutdown callbacks. * The following classes were added: - nss.CertVerifyLogNode - nss.CertVerifyLog - error.CertVerifyError (exception) - nss.AuthorityInfoAccess - nss.AuthorityInfoAccesses * The following class methods were added: - nss.Certificate.is_ca_cert - nss.Certificate.verify - nss.Certificate.verify_with_log - nss.Certificate.get_cert_chain - nss.Certificate.check_ocsp_status - nss.PK11Slot.list_certs - nss.CertVerifyLogNode.format_lines - nss.CertVerifyLog.format_lines - nss.CRLDistributionPts.format_lines * The following class properties were added: - nss.CertVerifyLogNode.certificate - nss.CertVerifyLogNode.error - nss.CertVerifyLogNode.depth - nss.CertVerifyLog.count * The following module functions were added: - nss.x509_cert_type - nss.key_usage_flags - nss.list_certs - nss.find_certs_from_email_addr - nss.find_certs_from_nickname - nss.nss_get_version - nss.nss_version_check - nss.set_shutdown_callback - nss.get_use_pkix_for_validation - nss.set_use_pkix_for_validation - nss.enable_ocsp_checking - nss.disable_ocsp_checking - nss.set_ocsp_cache_settings - nss.set_ocsp_failure_mode - nss.set_ocsp_timeout - nss.clear_ocsp_cache - nss.set_ocsp_default_responder - nss.enable_ocsp_default_responder - nss.disable_ocsp_default_responder * The following files were added: src/py_traceback.h doc/examples/verify_cert.py test/test_misc.py * The following constants were added: - nss.KU_DIGITAL_SIGNATURE - nss.KU_NON_REPUDIATION - nss.KU_KEY_ENCIPHERMENT - nss.KU_DATA_ENCIPHERMENT - nss.KU_KEY_AGREEMENT - nss.KU_KEY_CERT_SIGN - nss.KU_CRL_SIGN - nss.KU_ENCIPHER_ONLY - nss.KU_ALL - nss.KU_DIGITAL_SIGNATURE_OR_NON_REPUDIATION - nss.KU_KEY_AGREEMENT_OR_ENCIPHERMENT - nss.KU_NS_GOVT_APPROVED - nss.PK11CertListUnique - nss.PK11CertListUser - nss.PK11CertListRootUnique - nss.PK11CertListCA - nss.PK11CertListCAUnique - nss.PK11CertListUserUnique - nss.PK11CertListAll - nss.certUsageSSLClient - nss.certUsageSSLServer - nss.certUsageSSLServerWithStepUp - nss.certUsageSSLCA - nss.certUsageEmailSigner - nss.certUsageEmailRecipient - nss.certUsageObjectSigner - nss.certUsageUserCertImport - nss.certUsageVerifyCA - nss.certUsageProtectedObjectSigner - nss.certUsageStatusResponder - nss.certUsageAnyCA - nss.ocspMode_FailureIsVerificationFailure - nss.ocspMode_FailureIsNotAVerificationFailure * cert_dump.py extended to print NS_CERT_TYPE_EXTENSION * cert_usage_flags, nss_init_flags now support optional repr_kind parameter Internal Changes: ----------------- * Reimplement exception handling - NSPRError is now derived from StandardException instead of EnvironmentError. It was never correct to derive from EnvironmentError but was difficult to implement a new subclassed exception with it's own attributes, using EnvironmentError had been expedient. - NSPRError now derived from StandardException, provides: * errno (numeric error code) * strerror (error description associated with error code) * error_message (optional detailed message) * error_code (alias for errno) * error_desc (alias for strerror) - CertVerifyError derived from NSPRError, extends with: * usages (bitmask of returned usages) * log (CertVerifyLog object) * Expose error lookup to sibling modules * Use macros for bitmask_to_list functions to reduce code duplication and centralize logic. * Add repr_kind parameter to cert_trust_flags_str() * Add support for repr_kind AsEnumName to bitstring table lookup. * Add cert_type_bitstr_to_tuple() lookup function * Add PRTimeConvert(), used to convert Python time values to PRTime, centralizes conversion logic, reduces duplication * Add UTF8OrNoneConvert to better handle unicode parameters which are optional. * Add Certificate_summary_format_lines() utility to generate concise certificate identification info for output. * Certificate_new_from_CERTCertificate now takes add_reference parameter to properly reference count certs, should fix shutdown busy problems. * Add print_traceback(), print_cert() debugging support.- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild- Update to version 0.13 Introduced in 0.13: * Fix NSS SECITEM_CompareItem bug via workaround. * Fix incorrect format strings in PyArg_ParseTuple* for: - GeneralName - BasicConstraints - cert_x509_key_usage * Fix bug when decoding certificate BasicConstraints extension * Fix hang in setup_certs. * For NSS >= 3.13 support CERTDB_TERMINAL_RECORD * You can now query for a specific certificate extension Certficate.get_extension() * The following classes were added: - RSAGenParams * The following class methods were added: - nss.nss.Certificate.get_extension - nss.nss.PK11Slot.generate_key_pair - nss.nss.DSAPublicKey.format - nss.nss.DSAPublicKey.format_lines * The following module functions were added: - nss.nss.pub_wrap_sym_key * The following internal utilities were added: - PyString_UTF8 - SecItem_new_alloc() * The following class constructors were modified to accept intialization parameters - KEYPQGParams (DSA generation parameters) * The PublicKey formatting (i.e. format_lines) was augmented to format DSA keys (formerly it only recognized RSA keys). * Allow lables and values to be justified when printing objects * The following were deprecated: - nss.nss.make_line_pairs (replaced by nss.nss.make_line_fmt_tuples) Deprecated Functionality: ------------------------- - make_line_pairs() has been replaced by make_line_fmt_tuples() because 2-valued tuples were not sufficently general. It is expected very few programs will have used this function, it's mostly used internally but provided as a support utility.- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild- add patch python-nss-0.12-rsapssparams.patch to fix build problem which appears only with nss 3.13 and later.* Major new enhancement is additon of PKCS12 support and AlgorithmID's. * setup.py build enhancements - Now searches for the NSS and NSPR header files rather than hardcoding their location. This makes building friendlier on other systems (i.e. debian) - Now takes optional command line arguments, -d or --debug will turn on debug options during the build. * Fix reference counting bug in PK11_password_callback() which contributed to NSS not being able to shutdown due to resources still in use. * Add UTF-8 support to ssl.config_server_session_id_cache() * Added unit tests for cipher, digest, client_server. * All unittests now run, added test/run_tests to invoke full test suite. * Fix bug in test/setup_certs.py, hardcoded full path to libnssckbi.so was causing failures on 64-bit systems, just use the libnssckbi.so basename, modutil will find it on the standard search path. * doc/examples/cert_dump.py uses new AlgorithmID class to dump Signature Algorithm * doc/examples/ssl_example.py now can cleanly shutdown NSS. * Exception error messages now include PR error text if available. * The following classes were replaced: - SignatureAlgorithm replaced by new class AlgorithmID * The following classes were added: - AlgorithmID - PKCS12DecodeItem - PKCS12Decoder * The following class methods were added: - PK11Slot.authenticate() - PK11Slot.get_disabled_reason() - PK11Slot.has_protected_authentication_path() - PK11Slot.has_root_certs() - PK11Slot.is_disabled() - PK11Slot.is_friendly() - PK11Slot.is_internal() - PK11Slot.is_logged_in() - PK11Slot.is_removable() - PK11Slot.logout() - PK11Slot.need_login() - PK11Slot.need_user_init() - PK11Slot.user_disable() - PK11Slot.user_enable() - PKCS12DecodeItem.format() - PKCS12DecodeItem.format_lines() - PKCS12Decoder.database_import() - PKCS12Decoder.format() - PKCS12Decoder.format_lines() * The following class properties were added: - AlgorithmID.id_oid - AlgorithmID.id_str - AlgorithmID.id_tag - AlgorithmID.parameters - PKCS12DecodeItem.certificate - PKCS12DecodeItem.friendly_name - PKCS12DecodeItem.has_key - PKCS12DecodeItem.shroud_algorithm_id - PKCS12DecodeItem.signed_cert_der - PKCS12DecodeItem.type - SignedData.data - SignedData.der * The following module functions were added: - nss.nss.dump_certificate_cache_info() - nss.nss.find_slot_by_name() - nss.nss.fingerprint_format_lines() - nss.nss.get_internal_slot() - nss.nss.is_fips() - nss.nss.need_pw_init() - nss.nss.nss_init_read_write() - nss.nss.pk11_disabled_reason_name() - nss.nss.pk11_disabled_reason_str() - nss.nss.pk11_logout_all() - nss.nss.pkcs12_cipher_from_name() - nss.nss.pkcs12_cipher_name() - nss.nss.pkcs12_enable_all_ciphers() - nss.nss.pkcs12_enable_cipher() - nss.nss.pkcs12_export() - nss.nss.pkcs12_map_cipher() - nss.nss.pkcs12_set_nickname_collision_callback() - nss.nss.pkcs12_set_preferred_cipher() - nss.nss.token_exists() - nss.ssl.config_mp_server_sid_cache() - nss.ssl.config_server_session_id_cache_with_opt() - nss.ssl.get_max_server_cache_locks() - nss.ssl.set_max_server_cache_locks() - nss.ssl.shutdown_server_session_id_cache() * The following constants were added: - nss.nss.int.PK11_DIS_COULD_NOT_INIT_TOKEN - nss.nss.int.PK11_DIS_NONE - nss.nss.int.PK11_DIS_TOKEN_NOT_PRESENT - nss.nss.int.PK11_DIS_TOKEN_VERIFY_FAILED - nss.nss.int.PK11_DIS_USER_SELECTED - nss.nss.int.PKCS12_DES_56 - nss.nss.int.PKCS12_DES_EDE3_168 - nss.nss.int.PKCS12_RC2_CBC_128 - nss.nss.int.PKCS12_RC2_CBC_40 - nss.nss.int.PKCS12_RC4_128 - nss.nss.int.PKCS12_RC4_40 * The following files were added: - test/run_tests - test/test_cipher.py (replaces cipher_test.py) - test/test_client_server.py - test/test_digest.py (replaces digest_test.py) - test/test_pkcs12.py * The following were deprecated: - SignatureAlgorithm- Resolves: #689059 Add family parameter to Socket constructors in examples and doc. Mark implicit family parameter as deprecated. Raise exception if Socket family does not match NetworkAddress family. Add --server-subject to setup_certs.py (made testing IPv6 easier without DNS)* Better support for IPv6 * Add AddrInfo class to support IPv6 address resolution. Supports iteration over it's set of NetworkAddress objects and provides hostname, canonical_name object properties. * Add PR_AI_* constants. * NetworkAddress constructor and NetworkAddress.set_from_string() added optional family parameter. This is necessary for utilizing PR_GetAddrInfoByName(). * NetworkAddress initialized via a string paramter are now initalized via PR_GetAddrInfoByName using family. * Add NetworkAddress.address property to return the address sans the port as a string. NetworkAddress.str() includes the port. For IPv6 the a hex string must be enclosed in brackets if a port is appended to it, the bracketed hex address with appended with a port is unappropriate in some circumstances, hence the new address property to permit either the address string with a port or without a port. * Fix the implementation of the NetworkAddress.family property, it was returning bogus data due to wrong native data size. * HostEntry objects now support iteration and indexing of their NetworkAddress members. * Add io.addr_family_name() function to return string representation of PR_AF_* constants. * Modify example and test code to utilize AddrInfo instead of deprecated NetworkAddress functionality. Add address family command argument to ssl_example. * Fix pty import statement in test/setup_certs.py Deprecated Functionality: ------------------------- * NetworkAddress initialized via a string paramter is now deprecated. AddrInfo should be used instead. * NetworkAddress.set_from_string is now deprecated. AddrInfo should be used instead. * NetworkAddress.hostentry is deprecated. It was a bad idea, NetworkAddress objects can support both IPv4 and IPv6, but a HostEntry object can only support IPv4. Plus the implementation depdended on being able to perform a reverse DNS lookup which is not always possible. * HostEntry.get_network_addresses() and HostEntry.get_network_address() are now deprecated. In addition their port parameter is now no longer respected. HostEntry objects now support iteration and indexing of their NetworkAddress and that should be used to access their NetworkAddress objects instead.- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild- Fix all rpmlint warnings - doc for license, changelog etc. now in main package, doc subpackage now only contains api doc, examples, test, etc. - Filter provides for .so files - Remove execute permission on everything in docdir - Capitalize description- split documentation out into separate doc sub-package and make building api documentation optional- The following classes were added: InitParameters InitContext -The following module functions were added: nss.nss.nss_initialize() nss.nss.nss_init_context() nss.nss.nss_shutdown_context() nss.nss.nss_init_flags()- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild- add nss_is_initialized()- Remove nss_init_nodb() when nss modules loads from previous version apparently this prevents subsequent calls to nss_init with a database to silently fail. - Clean up some cruft in doc/examples/verify_server.py- Invoke nss_init_nodb() when nss modules loads, this prevents segfaults in NSS if Python programmer forgot to call one of the NSS initialization routines. - Rename the classes X500Name, X500RDN, X500AVA to DN, RDN, AVA respectively. - DN and RDN objects now return a list of their contents when indexed by type, this is to support multi-valued items. - Fix bug where AVA object's string representation did not include it's type. - Enhance test/test_cert_components.py unit test to test for above changes. - Add CertificateRequest object- Fix incomplete read bug (due to read ahead buffer bookkeeping). - Remove python-nss specific httplib.py, no longer needed python-nss now compatible with standard library - Rewrite httplib_example.py to use standard library and illustrate ssl, non-ssl, connection class, http class usage- add nss.cert_usage_flags(), use it in ssl_example.py- Add format_lines() & format() methods to the new certificate extension objects. - Add printing of certificate extensions. - Add BasicContstraints certificate extension. - Fix several reference counting and memory problems discovered with valgrind.- fold in more ref counting patches from Miloslav Trmač into upstream. Did not bump upstream version, just bumped release ver in this spec file.- Unicode objects now accepted as well as str objects for interfaces expecting a string. - Sockets were enhanced thusly: - Threads will now yield during blocking IO. - Socket.makefile() reimplemented file object methods that had been missing (readlines(), sendall(), and iteration) were implemented, makefile now just returns the same Socket object but increments an "open" ref count. Thus a Socket object behaves like a file object and must be closed once for each makefile() call before it's actually closed. - Sockets now support the iter protocol - Add Socket.readlines(), Socket.sendall() - The following classes were added: AuthKeyID BasicConstraints CRLDistributionPoint CRLDistributionPts CertificateExtension GeneralName SignedCRL X500AVA X500Name X500RDN - The following module functions were added: nss.nss.cert_crl_reason_from_name() nss.nss.cert_crl_reason_name() nss.nss.cert_general_name_type_from_name() nss.nss.cert_general_name_type_name() nss.nss.cert_usage_flags() nss.nss.decode_der_crl() nss.nss.der_universal_secitem_fmt_lines() nss.nss.import_crl() nss.nss.make_line_pairs() nss.nss.oid_dotted_decimal() nss.nss.oid_str() nss.nss.oid_tag() nss.nss.oid_tag_name() nss.nss.read_der_from_file() nss.nss.x509_alt_name() nss.nss.x509_ext_key_usage() nss.nss.x509_key_usage() - The following class methods and properties were added: Note: it's a method if the name is suffixed with (), a propety otherwise Socket.next() Socket.readlines() Socket.sendall() SSLSocket.next() SSLSocket.readlines() SSLSocket.sendall() AuthKeyID.key_id AuthKeyID.serial_number AuthKeyID.get_general_names() CRLDistributionPoint.issuer CRLDistributionPoint.get_general_names() CRLDistributionPoint.get_reasons() CertDB.find_crl_by_cert() CertDB.find_crl_by_name() Certificate.extensions CertificateExtension.critical CertificateExtension.name CertificateExtension.oid CertificateExtension.oid_tag CertificateExtension.value GeneralName.type_enum GeneralName.type_name GeneralName.type_string SecItem.der_to_hex() SecItem.get_oid_sequence() SecItem.to_hex() SignedCRL.delete_permanently() X500AVA.oid X500AVA.oid_tag X500AVA.value X500AVA.value_str X500Name.cert_uid X500Name.common_name X500Name.country_name X500Name.dc_name X500Name.email_address X500Name.locality_name X500Name.org_name X500Name.org_unit_name X500Name.state_name X500Name.add_rdn() X500Name.has_key() X500RDN.has_key() - The following module functions were removed: Note: use nss.nss.oid_tag() instead nss.nss.sec_oid_tag_from_name() nss.nss.sec_oid_tag_name() nss.nss.sec_oid_tag_str() - The following files were added: doc/examples/cert_dump.py test/test_cert_components.py - Apply patches from Miloslav Trmač for ref counting and threading support. Thanks Miloslav! - Review all ref counting, numerous ref counting fixes - Implement cyclic garbage collection support by adding object traversal and clear methods - Identify static variables, move to thread local storage- change %define to %global- The following methods, properties and functions were added: SecItem.type SecItem.len, SecItem.data PK11SymKey.key_data, PK11SymKey.key_length, PK11SymKey.slot create_context_by_sym_key param_from_iv generate_new_param get_iv_length get_block_size get_pad_mechanism - SecItem's now support indexing and slicing on their data - Clean up parsing and parameter validation of variable arg functions- add support for symmetric encryption/decryption more support for digests (hashes) The following classes were added: PK11SymKey PK11Context The following methods and functions were added: get_best_wrap_mechanism get_best_key_length key_gen derive get_key_length digest_key clone_context digest_begin digest_op cipher_op finalize digest_final read_hex hash_buf sec_oid_tag_str sec_oid_tag_name sec_oid_tag_from_name key_mechanism_type_name key_mechanism_type_from_name pk11_attribute_type_name pk11_attribute_type_from_name get_best_slot get_internal_key_slot create_context_by_sym_key import_sym_key create_digest_context param_from_iv param_from_algid generate_new_param algtag_to_mechanism mechanism_to_algtag The following files were added: cipher_test.py digest_test.py- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild- restore nss.nssinit(), make deprecated- fix bug #510343 client_auth_data_callback seg faults if False is returned from callback- restore ssl.nss_init and ssl.nss_shutdown but make them deprecated add __version__ string to nss module- add binding for NSS_NoDB_Init(), bug #509002 move nss_init and nss_shutdown from ssl module to nss module- installed source code in Mozilla CVS repository update URL tag to point to CVS repositoy (not yet a valid URL, still have to coordinate with Mozilla) minor tweak to src directory layout- Convert licensing to MPL tri-license - apply patch from bug #472805, (Miloslav Trmač) Don't allow closing a socket twice, that causes crashes. New function nss.io.Socket.new_socket_pair() New function nss.io.Socket.poll() New function nss.io.Socket.import_tcp_socket() New method nss.nss.Certificate.get_subject_common_name() New function nss.nss.generate_random() Fix return value creation in SSLSocket.get_security_status New function nss.ssl.SSLSocket.import_tcp_socket()- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild- Rebuild for Python 2.6- clean up ssl_example.py, fix arg list in get_cert_nicknames, make certdir cmd line arg consistent with other NSS tools - update httplib.py to support client auth, add httplib_example.py which illustrates it's use - fix some documentation - fix some type usage which were unsafe on 64-bit- add docutils to build requires so restructured text works- initial release 0.16.0-1.fc220.16.0-1.fc22nss__init__.py__init__.pyc__init__.pyoerror.soio.sonss.sossl.sopython_nss-0.16.0-py2.7.egg-infoChangeLogLICENSE.gplLICENSE.lgplLICENSE.mplREADME/usr/lib/python2.7/site-packages//usr/lib/python2.7/site-packages/nss//usr/share/doc/python-nss/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=harddrpmxz2armv7hl-redhat-linux-gnueabi?7zXZ !PH6ី]"k%ne) 8ܼ*uUS3ɚ֥]I4F/a"zR(]%T:H9{!@rHɡ<*E;Gso=l+~(U"Ĺ율?4x`τVAu|"Nx?Cq ]-d\ҝpHN~=Zhg.MbiAbpi wnjWM~Yy⃞J'"I􈦂.:]?ˉ!QnX>q2;RK+HT^ /Cʥ}i^*tð05,xO}hBT(srhX~(mh-3g ~eA*oHJaPty~:Sױ2`="=-Kk/?~W{/ TH6bPSuT" O%E:z.]ІZN["A#C: e6ɑ!#.;{dä[BZ0|Zr,2d;#3(17Y}áN:`B۟cxΎH,{ns߹l5i?^5l~6B|ܨtq @#dWMV$;{N#'ф2U1,0-piϳNo).ӎW׹y}|"U(@,<[tZXrJj ,'t%.EO7f mǼ r.K_" MHL7- jɤ;_ H5$) ˁק  Q{k1od( R6 +صH+*Ck ?.j1 J_4UhX'(G{Y x,!T "@tE͋7+Q?mч lnѪ4mױ[Jj< h x|i,SJ9 +\V&FԴ6>0} G:O6R((c8ooʡd8vHO 5@Z~Hh?@.!Ie+0Ԭ9:6U{2φގy7X`p KX2{&c<= EĨ*j(xp֨u͑OKAM)ow^G_J+@SwIIו5IĆ]^$̈́%=IR:=ӭP H̓AA`TgS4|6ےV?d@^0[߳y=ow&s:fdB@jE{Ǐ\d0^̹mږtOb3okSD2Tn5<技l+0/2jR#|6KkL;<-0j~^xk)Hj]'PX,Q~}$Ռf}MD;=i@8g|9k\GADt mOIGUh $6ٰ=8a QFDhTRqRtvKj̣\Oi $3[T!GY5x օ XgDy6Պ1bvNgp\{nR=[e `%lǶ=m EdG8׍ǹv !_h'@tHOI\pIqcuO; v8"GՆ9xyUv>wT;ȓ,8}h/lv{,*ԱyRZہP" 8sj T?m> B?'p (&É1RV@̋Z z!kڱ_՝ab]AlZwO3xȑ=9+=%x jDmJk a B &޵'!$!5dN/M# GV tj|6%\GlNGq0e*` >Ou>nSȨ"[MfbCPE #Oi=bo{zf+s%hzUM6 ޤO4aP sѣy8mUɼIT[^6X4t{ɂ7kB\7q $|ۿsiK!n~(<0ӑlXYY(;_ȼ!ն|YyzS o[ۋ:(ht)5}O X+'LgH-9RR ^Cjߩ#jm'*(=1R5Y,RtL"SQ>ok/F5h7Pخ s 2Ypeܝ^~a$`zj"is#XK-cTa2:l=و  eky!\UMcJp/e<=큤;5h8 dt/&Y'Г|1i+ a1|GnzmuPo= +[jb|"|=ն0> 7J; [Rg"+hGr9]u')1i:-zg)Mߋ9Cda밅 i{5 FtJ"✉UuJkg{8ॱp^úl D}SN) ǂ8Վ Tŧ\usY왕.Ӿl=j!S5k[ޑZEAx&w҄|RV&/11@1jmً$ތ~ !X?l!w,P*=әQPNOA5)],N_V&;)]P\P?K{] Єi%MvQ gIM@ vј?#uH)?^7w-9ՑFm<Ppb(f|ǃʱJGQ+6doP{4.B͙8e. k@v ~KjR46Xo ER.(E^"+`{bQH4'͕5D뻢{XlΐLo,x IS[)LG^Z[)3QTx״)O9E732tIjf.M5t ty!CC^GNyۮy&R%ֆ*T5?;Ґ6Fyyw0 )&\wyUc<I8!e?67%ib8q e :َ5J Zr+mݏji $8لc\Mkz)RIF:=s322+xJYoW;g5툚6H{N-UYdXtYfՙ2& E ,moDaU?h=olU[ FϏHοh,$?]·KUVgP`B3?x(S67]|UÊ֮j$3m p=w%z\+Su;í5*%ȣV?(͠=+(bH`V(ٟ3C-? a˼ᛏL^ O*)0`'fĎя1);v4iE`먰|mP9`TU?az|heTXImas}FL]᜕w0[r>ND08XU>T4}s1텐Z81^ZiN1ސ$-"N"?kdȊx  +K--hM 6l5jR-Ir~NDIq}vRZN2@ J 1Ad F-qEf;lp:[M߻E*׌܋Gmc _籟wGO'j[Q@hHۙBEϵ&Ǎ9@ .%K,@lrL=y]Qkfoah}>GmP!Lj` .[Z3m _%kd$\l˛lJs_]%E$%x#V`tFkuHsOKf;!jxoD3K*0Ɩ:D1U,vډg2<~YիVBZh=5Xj*Y5q|^Lw8L9Ei6$0 (5'wԒcÈC/肻\!H4T0&N!`R.e&?kp) an,nP7v< F7D]HFQdPTs&Rag5JQL=ս ti=88)_VmA/+U%c7sON^;Llr00]!!@f]7|'O^u* ❙AVf!x^M%l6Vw+SqsKQAkGjU68\%XNkw(D.e頃!E]M1ꁦ`w8tUAo'.m t} :L zU Ns94Sfepq(ECݟAyu[^p5/ >Π=)K(r8 1%7zhd@03BOM) aeKei+C`бicBĬpݝYJKTw`UV7>S>yp\8c'x`orPsԌ0]m^ ICαzݱƂ|}xqryKh2ܘtyӤfEIO,qrLn~q^XADZwT:ٷWN 7N\U'YY[QÜ@iWB68(b*t!MK>HpAZ YPV!:d}(UroCWY)Dp`c7KjC{# 0I hB(6ˆ-o qG&|3%=XeCeg8zЏ.[4F\ `aQ8nnS&DYQSȽdVuT0%[@Bo\h8Jt*\FYxiaT̉lE)X^P7"&Fwug* n[^` rX᪅d3wM%qn=5j-w!VEKq "# w>4&u<__?0=GZNjڢZpUڴ '3*pֿ`L~|OFׂvRɾ S?E-DAQ IUPTЫSy O/Ǝn#iU10m<,s?_@,,|MsP A Cmsiӂ[ioT;eo~` hxjY)ؘ2awU(: V/fLjeQȳf5:>}INO.Fݻy_!}f&ſ4J?fü,fFW[| 'f zw-kB j޽[GE;s7.*>PiArX ?2J?k+!cyk:DQ+LIkF>"fuim\8!3Ϣk">@'Asyyu™ ΎB G[H=G-ԁc!Y7a{eAJ)D|x$ѻ>gE3Xue>&"0߬\qw7 zI!dHaȂgx7p=H/^!4hr q8 ГiP60aVp3 ˕bO*I[-O/0Ԕm0v6 uD=a#xne&b{NS_0@Q|s:q2Rb2T.{,nwujaY{?GY^;cknI|uM%I%<}]-l*-`y(WҬY11Q*6D^ K̘3 y MO[\tI#^=;ow"v:Q$ epJHQxj%d~VZ8FNӁrl%) Wpڢd6 }-3!I꿛1d1ΉuQkwRŔ.c8f900? ^r[h l`AJR[ K;ۭ=Zv&R%%V+2vw ,&t$g]e=}lLB^ /|2\UNQ꡻, vn:I EA*- a*,KdĒfUh_Y8ۆb?Fn1MֻxŜ.D\ʥĻQ+Ȳ\ FXԺonu75-)qQ 6 ^EHV^V1O+z% W"q#$/Oy#W*g]||ؔF:$m ٺT/ni[:/bRcC1W*dz"p:щѩFi'{e3닐bޖwDS|,($]wI*4#HSfn`77h=LR>;0إ7t!!j]4鍭, ޖ-#H4QQ } K]{%%2n3AvO f#LJ~oxmIU&"ol!mjv9<"N8avXGX 7r߫lE%iLn@Bh(|tR{y^hS >>n!Y8Za˙`zIImydOug4^xjd^2M~uNk2,θA0#!^ 4^u\D͠0?'-\UxDW{jo45>YzގINWp'̢zJ]?Xu˪t1҄;Oh#pWbl碊JWOE# R,eDwXJBC0^@ԖFeOlV*{=l[Hiҟ u) ngQoB(Wmt9Y?Qg0Rn QYjI/r` &kn| H4;A4 IU( C3Ww,zzKEqĊs8G7d. |N)WU69٭Ś댔4fB~s'Ol<0F!:B2tn_"5CTNEzW:=X嘱ˉ*k" 릓D>V&҅U,aB ()nEҪ !7aP;+ԥ~hO/Ik*g&\G 6SM^#[I:)GɮRii:Lrtg-Xe[;x%^'ՅAg23\%cʰd_*/sY $v z1ZΒq~*pf'WQ\L&gVZӿ,>.7K{Q{YDTϏJw/KGӇbI0p/1}TJ=]1孓 (TJD{2EmM+Cye-.ל ~?:]*䄑WH : Cs&}13+b@A_RQg hj5 bM2gVQ <iT<N(v:\0<&ᣍ_;ܦmU?t鄙d@ KxȨ@29;}nݑX @6twN.Re:cGljṇb&%]w6A)ho^2b3K1-6[?me6:OиQXx^-2o0F4BAx% ǿ}@Es9.Ig/QH8>)b~4Ezy*\޲ɅW]sC)c_ᕫmT?oqb=\0*ʠ|auNų&p_2XRMHQw3r(atk ƽerFw QR2eMXSZ!fl>^G }E:moy ZiEBSX&)ܝpG KO"~\nc]2gC:NsaEV}cL Z)P@+r53v3a@n٘s[Z _n|fC3(^N]?d.BVjk!< ~ VrJ=HÓ% GqaĀsk>) m2)^=#9  b>Ie"xpKrt]|Zfc΍[┾! YVt+4gyMt űPf6Q"Fn>xw sqp+ċWSO ݨ%(W\poq7lc\%. p͸̎Ru/p4qJ8$%u p ᯾u=Ғ2a iv@ VѵiLJ7Bi\ .E͑=Lo56)zʶ+Quf:,6<xr8r^EN8TGfP t{~m\D`(!_U94DMuA|ȲWHȘ?!Ј:6 SS6g=IE*Wa֣d)}9;;ġö\6cܫ.TdT5PXNo*cqS4-'F981j-4l| 2I)EHl&DfB \z!p_uo?-X~QdIqԴ/V[iU;N=1Xy8!a,PasYjIf_'pjD27 ȺUk(=gLJ-SXv7TK<Ӫ٭qywRbNeq #̙p0Pvͺ/*#FjF_ . 1y:@Jw9#)F'C2ʳ3*yfEw,;<ڲcKn7NLLEٿ&$j+JszVӌ:_XW|jM G6 , 7(6@?婘qIXN;R]D5XFfsK`u7`lpM^Byr}Yߙ,\:%*=GB-YJ_ؼ/jhWmO^̣k4 /$p͌A~FI+7)Yj7* WzFrq0H|z&o"_UXE }ѭvSNjv,'w}cN.Oa)b^ t"s޽[;|3b}J{ZwrP1[ c: qls { tjBoB]gFKJQpeݢ<_C6FY7 I]4(bexC!&18 M $h _QD : X>aؠs3u"&wOm;`,pS so%iAVK%g1lm\%o)DTEUQ>턮 z W8*T﫱祄Ā0 o| 7Κ$<{RVS 2S V6A)fEI]^WpkvON:ٔ%D9,@s;/u ˄2zO/Nԭʭ#ܻ5Yog,;ESߵmӑ݈daGo.c+`"w%.\՗}SJrW|4EH\RQ'L'9'Y zz)@W!`wn+}rD!" qdF/ hEN}1 ] SO ~mM>D۶Mו&!=ry c\, :-ٸ!~|D/pyNN2l9jY%YL5f_ _pf[y3ï2v{3fS(}.%4hѠ-}zef*iwNIA  { LwDx Ώ)3|M=io2^ctL)6 YׅdGyK둽4VUS! `ΟYzjO6*l?- xVk{pA`SA;#6Of]Iez]AӊHm!nfVպ1?Y51\Zr/kh#S C7_̌yt2bE6i!5ڪWZ~rBZbc O˳郓HEHk˚b;~I ;;CI^>'T&מע8CPMN<>srw|>z:(tg0EC'@X0˅uL9ln5̻wx}?% h+\Iz H[QwDGPj:L?2YP4LH+}g8,PrƧ'y<ٱ#S3 ۰/8WbyT2'x{YKI0&!Qܿ> &Iٺ {Xe֣R"yREcSS+8ȿchΒ&@p=ʐY= %0jRs'#5s[q] ldIhp)ǃoE^}ѧRgbU`6zW:'6IK Vc)Syo4{۽br-N ^ՙ·Y29qR<金^}H}IE?B6|428Xns:vH/UD羚MGcrk]wgYo8O{VoYO9ӻVw  M3H+x֧~8nC7Qu8bicŸb0˒q1rFHupȸn@,77k; R!W7Hv?Ϳ^FD|J8J-(nGѐL pE4wɗxv%*aY7b%ꛆ )G0؏/y/8յ?p`pBXT:z Θb@(N=OnJ񻈙,mCQS@KТ W_0Ę&Yie+ 0}iNX]hQ\ˬb !g=jVgNLHmvԯ'`va 2e#w_ՙs1Q0o#s1 -@kIIʑ#ڈ`5bGɁaӋ-n>ˢ_"-JR2C^3|zA zI frL% gPy}d( q0De$-.t5]y=9wN-K55e218uGvB,XH8%? !|H;?dWد֩X>>^j ~eun`Zw1>~*HW5䖮>#A TT BnLvd%E#'bS񌘱'TIvY"ZbU4JʭBZC{-qP[JDyDфT*DJ* q ,2x!(RKlE)0_{$Z,b2?.lf86?I*X9Ma'˃e t?w=-؁U'6s˚WVN8@Yok7rw{3Z嚻؏Ϯ9=ktbd>^֟< a܈ҖKI. >cjj/k3DĦzbI ]I%rTCq˄saW?.l#hv?\:W"FȯXvW t@)wc,@_. aw!ڜD*zrW0QdHdZt[Z_(PߎYYr] iӲoZ hfxպ:e+F5YLY.I.<ҕhX-*"/]~ çLKG@?~=g(90^mטɅ*IK!yR a'^=qIUoF ׵P:e p8K̈^۝\HXt𜱚˶sDBfjuϞR L6T/DntjBNAn:3hvNO-Ҡob~ʓkA֝_W RfCO}wBb uQyWAI٠mj3,E\/ Y"RV+Jؓ^]o[t(=MpUOY a`4dK_h9*sˢf^CG'ўΠt-:+4ҥK8z?DoR0EǕ0L2þ&je8pp%68 VlݪT3$wi@L+^~c>p9enFc˷N^MT5FqH7, CM3[rw $e~V $lb6DPt ru !)u"-G+Hhw(| Bx{%@'>̢{ Gdٻ/OH-"'|? Xn`YKJhIexN͝t,2n1x;>[מdPL)fKLAj3h!4Hxi*>[tHTh%wV~ T~_`Kٌ]b紂$;}ܞ3dmA!e Po dc鰲$;;v-UD9!1h-Q {&q[HM{x7r[5ǴkU-Rw2H=Ƒ_C BW9=|ױvVriCɝ`LP@HDkde?a`:wr2C }fr_=)fda6V: ik1e˺ȂZ|iWO#5S((PEP#$ {'}Nf/b?{cuf?^6k]F:f"kv0H+O`|ϡV&M+|zJZ7k`KG؋/q/,'l{*Y r HȾ@PkM'(Hb`'&1V hb?Mk]G.ZnGK! fe S|Y+"so_PLCҌfY{ /{tj@oQļOj_:8=PmzYhE䈤ϜaOy[Ԍː1g%Fxo7En,V[vѻTL[.o;e%u TO+6&82$˵.qe<2Xփ|%`'.}-"켴Q+dn$!!YW#D>FL[df'QnK W9kzG pEƇSYT(Ѽnu_)6Ȟ!nFBUq'գ6RS/B D2`\Z!8z*uFε%"k 01SEz+d -k%х }) \lRCV϶kVo=ML@pvH'sĆ.Lk'EQC8 󘠜tn]R!d$$^iC(Ƙdkr}l#-6Xa¬VC)&aסش 0qD).y37u!岐W{?Rʯi^w՗.8_8m {AJ wJtC~J6>BEB$(Ek0mGCn&w@](LwC B oRP)bfJfJ VFC[i!wz`*TVR,s-WKiw*i jt!<0H]cta!n`DIf0l_:r ADK6wT@㕷[6>d&fB&B]N/j#s bnIEb?-$V % ײ%Be2?x˪DCb"-!@aYP1z8 ɧ*[;W _vcC\ǨƉv{S>E_ZAM+ǜ1Gpo' H]ٖ{x5q BRk0kZ= Uec.չ=n!*b8}kXH$}ktcDŏf8i k(O6(aoƵIHq@jhzt\Ȇ8ˊi6B{Kd\i&_ᩘ(8P^LZq <w!]$s=~ Ԧl"tQ֨Ido(snx1+/?HYܸwwP*ʶ&KuR])e~^*WHeRә22IK8(0Q[&wF4bk|h~TGЬdSӔ昚ḑ- a?I(+.(.0}W $pg[EEgc2Sr,UR |klzj\l3),0V}9f0 XleΖ<=D\Ĥ.0Ά,NXB" RKCA6v ⒼX?oyMN~ay.$ҹJ8 q'eBBUF#DL]mWprX2Þ=Β$]qs&>VCS)K,Wq'IR Vɑcs=EjR|om dErHPE 5= E0=_Ȇ$77n{s\6RDѣEQ{I gy ofdLA$I3m2߱z:;%5O-ƯyH4Z4 ~wh:+!D1{+n=KN(]]>ֲc(DxS=m+v6nʕRPZjкK &YqЌ ee^>\ Ҍ੿@[3@/#Q :~,ק)9ڨ^MT3d$ 2j&Sdlpuvr\h Bte4~6ŧ+#|ǫC"Ge7ӣg]nR ~#%|b-ScdW{vZzī>T# n D"{K_</Ml7I<缞%K68Ƌpؿ"hrgŽfԂs@'1Og|#N{yyuDы:*L4_h$ϣ\-+_qJTD菭 gPnJd8̿J1.mHo-#[.LeŤffU&ZKU'f.i%+ŜqB]׫oh;g1 |dƽ7}cӄP UE? UYP\7 {Pٰ}y[p|!pthQ9+ߍVI0gbR_` XԫxzK؛y 0vJP31}Ӻ'$sahvM~bqu+"ɢ^T's'1 k[A5wY EUSa|0~;MҽD~@S8NDv1-cr{$h+[RQ q#V"&VoNYe,/$ģB3Z఺5{_S\D~;~,S\N (N?RWwQ/v\LGm_ڮkYDZ@=3^u-#Βd^gI'u0'>’scr#r~xaj$&Dcj'XFb ZU=@A8MljWIRgf'H?p 7E(w!8B37U`<=3xL;}Ӕ)K*ti|yȚ3ha{Gq3>Gk\`i˘d ZZ4 yQvք=Ķj!,cϝ2FZGp5SdrOXv:<ZU_Jp_p&EC3Q`]?E̯f&i=r_{Y>mz^vQ:iE/ϼaZ7+qZ>E7{|_}3 $ {B̐fm'Hr+%\>#hibWd]cg;%w It􍹇6[AEX^nNZxUY<XdP@kx!<^D?hiHc#2W'Y>3~14 k>f 6ų|yv%b\uf;G+Kl) t/ u*ʣo1ZmS.O4:1]φa~1 }7a]q `{);{pyW `HQj롾t"]F1`qv8k2zo2֤W0L٤/Ql=ʬ mDHnẒp( xvtrcTHn fh魛>I13^`u朘6i_sI+md🈖.30\̥f}P Ccrn$)]n=xj֚SʈwZA&y"[{oWZb|/9@}_m][c&u,ҙ-!P}Y18_ tfj䴅RS!J|4!t|GIh`fGa[[9ۨA꬜M dwo-G ͛L^>bMylпid (K\Py!,v(mS[cjJ>6X`+i#%M/; Y#$"âC828]Dz&Vd`VtI>o5O/$Q.Byԥl9ɑ4xGUiz{"r &bQu,5f KZwTrESCnX7?gIE1Gg |׆L B1T< 2yta n# Uw 'D~x[>^&]SzR36W"4ky2hX6ONE/r0+Kxُײ@c.U.V?NQ" A(86YBTq?pτ`.9!}C:츀 &A‘{"lWLySPTvR;q6r>BF|1mce?ץP!lLHE[` 8#_;4:Az(ݶwQdC-W:,TPj9yg*=" \I$@6.^i][WgaxЫ@"cJAJPgjuUgc>lȶz'YUW9'`ד} b3&>xv4NLe|z:ߕ`r@QdfaW5IBS|C֡JNoaJF!L!FY"NP3 Y_@lpfdȑDTj\ɞ*iw'NׄHUjT U[%Dvu X.| >?dVPDC>RB̦'c@} A2r|D?aOa (& w AX Q(jP*yw!4k푯YusB=M&NcbBVAK`Eۻ2Ċ-`IA<\.E8r,Zaf3{^x1D',n"=Wg.uP/Hz!Zys L şϔZJwy!ɧ>Ylb-He@ݚ%%ń~zliHHs ƇmޗtƿYnŋi`0\'lL"~a0|yqnֻ:Bh\r-W}x2f%0]ySG{CA˪N:T+(\8ة {9wF Bp_.t$N$d㊏oF ]EAO]% b΋fmipZF7X6LL72s(&i0=G>3vLG7pOdzފAW+}:*xap!:2d4#?8Kָwρh- n*Kˀl mskE}vw!x:<9raR5AE[.٘u%D by2tKVOIj߀LvsbxH%e'|5wS7Iɕ ` QZ rVxDK݉͠="@YpGx5cv?=]^P7-c)kbR^N9nC[C'i8PI:o^^IHn jL\J|ay)ǧ~)1eOO@BԚ!C2yrUwQr JdM)xp9%"5ln~S"Pm7jHJ^e3]ů2H nUAIO;#shvevo;Zoo+o-|3S&IXZʰB\[Oɒ0gaf$19 l-w|8 A-3-sn /TOaP / yAcn7g(E KZ&F' "g/=^.E2h9f)JV]I׫hw%C>dd#˪wU!&ဨg2 Rk# h0[s0^Ibp+fpM}1}#P{gjޘcoAuC%t-h@0FRv0Mk0z7ݡa[w_Rmm=5H^bbtn{KS&tdYnҞ-8\Ut ً.ڸ矾K!feyfva0h1;'fִ kn'VE~fm |^VzPw 8wBoM@pjۧB |a^@">)uM[zB=^(R2g]9t?cbɈ:MfWW㣭q9$n4gI(uSSD,p镧P_ACE=^%&z'?b+П6݈'6и] PĆXc 7Ѻ)|OY9yQ`aj%`]ױU;ݶ/FE$(hgmYQoLd-\ C )LI9\㓸`NILLWO"ÞT_IyB8&Aqs e60l%%jx#MNhGZ3HvP|m( O4a=y 8jĸb#11fKnMJsqQ(Qݠ8?spE8x60J=X-`=VǍ0nV|n2ehLsvcqUtqImffv*ݲ_30tFrz4//&׻'>!jJI[gI6H; H0dVC43Bu'mxB`l6eZphwۗp2%wH06LrԮ3Ns`=˭!q*/ mo3(W-L7Nf+ǎp|&]&:c]V3uF1jO7Hdʹj9fMFPm`G|4 ne/Q_Zݯ8O7_KuMԁFoB]`UDuIN_qʨx =ᬀ3ȅ;oR^Q36Vu^> I4;MY"^BF[uhRq6sż$kw}-4GsFXEb!E *nRv\:QXuȎ%XFg]>K옷7a 2Xh4(rXa&J++z*5)TYq=f`FشlW!q\Eq&\Ob>3K ;l,z3^Hf onK#evk-65'dMt8ZIFoK7P]vjlENqRe>V|&^bKR?;[* (BRrLOtV%Vϓ) CXÌB BK5k_:ҟ61yY7em$4dN<jqkTՅK*F0ҤHUUWב 5XR'zE뎋NEX2{@O_/(UU Dn|g.cka1X2.wc2f;ՠX4[] EF&)漧Ў궰E^EUH͐fuNZG ٴG zן?zdU<]'%`/,$R_3qҥ|E Rd:p*MgbF_<,'4";z8=iw}`zIA@]&N)$ ZA#tFtT9Gwa;~(GB&;_(n)agq8SLU%Ϻ@2֬17zI>f墰.8@Q5CbS}~-Hд']vvi2OlE7Zpб3@D,8 Kvpdt+mi%KdF"¼9JN-?uٵz9b)\"`F',\:6ޗ7ʛFԞhqc`30nCp*]V=_U+D*> n} pi &MRd:Lw|yn75e[Mʜ(5N7&S:?YG{P ?ښ8rAa/ fC bUMgm.BMzPtpFkKȳ BD@G-_jM$S_\a^TulC㵹ʥܤ89Gb,[>J[#Kױ~{J x,\#&5{sv§;s Kl25ѐ;ܯ;F ,Sx)nZ=z!У#7+w@3@^ef#OFƕHen|sN'L853=xxK< OErT,z#Yc%H<'mDۡɸ~яߍDV%%j̴1j@1VUӣv;y@q Gzr9D7 W9QKmrbupރ$#5<P`68nJ[ 7ƛLهw_J|Lu7SYp8oۯً c)IHEI28sI,lD^ˆt؆/aE݀Ĭjm]xM_u2'4K= jvBYIYZːuzY¤!T |ANæzc,HV2Exnc/x/+rD\@SS)o}NM!z@&2fg'ӆ-@1Nxu 4踟`nME,՟ĸw^[_VБO03 HJE<{/KC7!n\jkzE("seƁ'@M/͈q ػCRtC)asIڅT[z8LbsLE:Px_ʂwU%FE;Aڄ-֚\+:֮@Zt\㨦ZKh_Ȝ0K2#_Gq$ 6~ 6A8~EWեٻA7:ǎ{bk0qe@$}0S[fұiT > _NTs=^(ݤ|6]BXY 3,=6Y/7Uϡ M<%=MaD4~`,#SЦ*Ka;ƗNjP\;ۆ}yYh@: \҉ $M0$4's/to.> n"¦uR_Tp*4$d#Ti#^hԊXuR]~~vH숎Zcڡ "Wm>{ݪg#iB4UrK`&D-\~NQ~l/`MZ몀bDx}4Z1`U'\QSkANw!x'{xsyԓ %֞G`?kLג J}1T0{jN\!pE\t̻vyZtsGiec}]RE*BBˬOӲ%"!V86zf5V޽hW@WeՐ UsbU-C@;,vL)ZC`jIݚýyW瞸Sh lSo˕KGe'CMBk֣= σ8ft\} xSLGɮ#Z1H=Kn`VO Z7dT>KVaGF?ęNu/#~c6 4HL,g0>:a?0&M=X3`.nuz]ߝо1jn^r*N4"}>\O O_vCоnwAfgYdԯ 7_+l$SmʭQE)|Tt]~8g]FUъf1u00l䕚^ L\$jÃOZwP'^.-M˘k*[5XjzNER`a]AԝF 篁[NL9*(/ N0@sBȒ۬_g'>0q> p9 Zr% )7ci٧_0R$T]>hHOy`7 PʿҠf9+ǍvK'﵇ʆyb5\/zpN-,7σ@\Ph@B*5$j>̠6؜YC&^N M /(~] v Ͳ0QZ#%%C)NpPEN#}WJQvP52}s+QQ4L6xH !XLeyUcYI '#,W6hYM/S \.Ӝ19n;q1l竪}V9Sם¨]0۫(]7N>.p p(}{&xzyrTI]h?U1|jǗC ^TdHdL@aږ|7‘XA {?q1LJ]olE]z $땅-lp KoЍdV 뼁[<=9&r홫{[K5;zМ%@JWީ3>?R U?~E_ALjoFcd%0:X%[S+P]RU7\. M:'P}a?Rk2@?y 55QO~=8}yLm+AuQ8Rɨ[xȥV|5cuGLsd[`<kFR[cOUa ĭ jS!c-/)a҂-ijӘtT%5 xdn{kh/o35ҕzDإ.^GtIJX`$~fOp54]xSKGߚ~֨5]ڞ%0nM#6%C(FvZ+TuyXjhs^Xu+⥯Y9tX?g`ľ 5vW24|J/[!DH֦0΍cViZ1ÈRo~wj6:gfh^mfo8񖍭a1)܇-Vs09Goa։`~ LMBM6%lXf~-?M{O7'mWp혎ToPH"QᮊӮT!J Z}Y3=Лςae8_AJ z6ʀנv\t3KU [ GAUY79%6 v:VλHA|(&mٹ %&K#*֭*HhK¬B4RU^iD!n,5k3Z.@a!Hm͆eu7ةlv߸{d k sYı&e뒓?[ˍJ|?VUۓo3$~iir4ت.E*} AKxxH"3 fe_⒏yh#V6!NK" ۟m٧' \e`1D UU޽KlRZRzNXs,?~m/|ډXYYaӣ &Ds0w@᫙H1sұ;/~Jq$" ƚv`~ z:@ '^+.FF{-+jtXsT._Ԗ)!D.}ϧ#ROfcXڒ+u߭دё/Hj6iUPL)k4&z?d4#lj @^@,ϫK<&s&ρ{}ۃ=ԪC?5".+() P7Z4؃JzC(Ubذ? ATS+@<pȫd3 (i XA1E@Aqˠ0Uz-E ͟0tt3%-6.&z'7jG/V5W~*ڔ{,݌Ȧv1]0 M5Q S/p91+a8nsfET_1 "b ݀}w',4v[7ET3r wOSId*^o^_"FvCJqW;"jz?f荎dԑ6Efu "uĩz>w:+НBdߋ?gM\s !=K AFM48~FzʹyyW駙+'E%pn8zwNc)ހ2E??Tn:<|KDmU0蚆-1C58$B9ci L.nܙʮj7=s増ߙ{='7w 2{C3,l/0!] WJk} GP{c\ч* skg{udI#A} S"Rj!WO>1w8ܒE ĮnYi¿NɎ3_k<CutU?~_tcE? Hݨ.kzwAţB1XVaZצ{%8:^`TDeeݍ6X]遳ay/rכ/ЗbH)bţQICUG3^` <`m^7;zg_N֏n dI^St3{9KrsyV7^gZ*Q*9#8Va ϒ?]I/H{^]`gSdP?;&q?>ݯ0`|Ƶo#p֎Tǹz#}b>'fDe֏vt ѷ|rKϰJ4C* X ':kzZx/4[X4@֩܎#o:nRIUSxC*=E9IwJ6r<^kn¦3~dy?5 5r*!%h-PYi %E/4}\ ˴-TR h7.lJorDo9e7ԝF9LTQT|Zw>CMHeIJFLJ҅۟5rOuZy}ƕepr`:}fD˻̌2'[t~G!]VΞee;J`gҺd(סe'PB@ح~ETfVN.Cxc} )GGE3H^,P LI硞aO17ဧ FnX )D$ H|TNC/s.sdrs%hGy'c UL_mI?6ǛX`&Mcf3֠jMxߺ)4$ށSπJH@Ug2a`FaYqTN"'U@mVlS&y!wgHЩtp#־곋J#@͖nUwWؓR91r 5RqWHɫLӓJSJ{h7c8?}`QiK|IZ)rѕԠ)`ạv)o8KsHwe̕y7s?Jރ_]!Q pn1}k)3ApS#nIW"tDpå._3(瑿o 3@@gۍ)5~wTI~*oj^t Qa|qNC|HGR!̶9'9"pSEJh6޴C,y PU6Z L 6ޗLSb'FRPp $%FژGZװR$N/.+پ^`a(_aPH-~b& m7moIZHkYcZ.H",sg5E9)t1ܾN f$R v|ph},LjVГݍ[NlzN}s$%k!g2pZCK3b;|kNXLOPtRÃRUQq(:ǧPƅnzn'rA,*xW'^H~nͫ-t iY`f1FCz>!*;ňizܿZ893˶bT|+ =Aܤ/ %$ldNVb4 p"HG8ѳ?EU?xj!;|e^HZ7C|4;l%m↊g _B0~ċ;eCCxd<$. 60դX?f[E:̶۬cg"%z|Z4d8ek*/( 5Ƶ5[<[,~Wl^gD95Z[M1yTZ1{ i>QX3})(5A\NwE$[䰾 {ӆQ;): @sTN'**3cnp5:ㅃ*;>H/V (9nC~4;v; p~ uc`W΃|j FŝXڹ_ޤL`1'w` 7h#1*Bj62H5c U>bJ,L|$N"{‡J3w:W?ue(Pwq8 B<8V̍_CH@ X_)_d5ir~/Ve6V]'<7϶)ae/ 7D)@ 3$ L)*cE_4zH7IU7y)$N)M:*Z^}fŴ:)sEeTA,jT >[? F^u-~ʬT}İT.VOtʚ8oY|],y"U6V'=*n.AsB`,y9wSr&̝~gR9Z{\a C =3&,t$88-4g6zn3esUO2cj),zp=NEa$%blK-vSG!\sf4=s؅,&ygU>#\i8O,!r~nFHHQwlzcb(ݷV ^03ꄡ4nfL`?lBTbVyNA!vq-y |XZے|vd2AfV9v}uI.¼L6kVWjZĺKmO&wVܣ"CeK" mxk㸰|,ʶn'N#YU9!rт{iCR?IFפ-$xVxmXgv!?㪒٪6-y\a O2v5ɢO#Ґi,ڈW=TQ"\J-[B-/ioA YM!u?)%|`&i/bSma1庥ldi<#y G5[Hm ̮s %@*&?B)(1Ӓ{bLKR4\凜Vc/+(>2Fؘ}7L9iżbro\z KJ\j CN|ҠS44Ӂ|uf@(HW~Wrrt66$% uiqGgd7 DFSJFj1xRc<|d諫yb)p/I.1K N7VNkpM财 &(myY-?<5:eFg`51I)y3loZf˒ZC3ekcK7GM2V+,>X7P.5xpZd`ƨ=dc \8^bV`j/½; 譐 Peٖ2 ZGto"'Dz'r6Ft桅GKwyq..8AdvYfAq%[ˆ?eTxٷ44%ПuJ=Kș&(Jk)/k*9}4]m`? qkP哑gj,P!<8j&&.f[S桟(wOÔ9 :{uZ>jR#PD? hZq&ֳ՛@HK_i[Anm6B0uNqfq~|Ho'+kCʯ}^gx FIZ-萼h!Ȟ~(4c ~QmBT&Y|9j"oIמXF?nh *x}I^AF1.I`3RE`M*]_YxVv] P@x#4v `җ5hڒPHJ\`߂%gLQQCn+0JC*|tL(MFGЈ'">n頕t8'B Zxpjꒉ,tTO H\냺D&-PH6I J3Y~AjvtR."G y怾g13 L:1=A^QC]eu'.>&QA0Np8TVوnnʤ{C|aqRo0DsuH;#&~ѵ:|sf]|ib.:3 V52o/{iķ]4 b1k,zů})k&y%*/% %uM|NV QQ*D۝-տGA !X/2zEC%bs'ĿE\c/+ ?&傴$Hc*ʳt޳N7G@9ލ$NЙܥQZ̅۶-Y˒ XiT+$޽Sрjl,]e|ᕙNޤM!6ղY)~$|xf&0d^ºO`ooLcѓNa55uVhMzJ'$XNa ] xF_cs3E~s(:h L(B}N(c{.F~0al̜*o5h,rm7I ;#cA04Jh(mS[y`tVOP4)z0.PzɮZn\g-pUF>"TAoOft6Zҍg3 4p^[CIkCc;F !( m]zS=TkhSѾ PEeLbOA0EELfMB"E8űD:y8]B-mM.H@h0|{/&rBiO-\u䙍x&دFhNJ znB#;h>H; tͺDќ~WS$e+?E(LI< 5ߋfDP& qcL?ê?rLad5rsqh\6, _0ԸsWh ^h nma*4"ozrJuf_~JR 1!5Ve1ͽuX|&z.4%/g811R;^e~Hte=NI$ٮE!ՂEW\z5dWΛ#D[,DdHW9Ǜ*-jwsd+6p퉮P'G/YbpX/d8Ηv a;^;7& fsA 9)-`/ 7gl Ao_'jCMII- ɍ>D>b!A{0Sou{%**Ԡj#8s\YۘFt`$~m ~%ƶ5_1$e9m[->TBhJIGaN9&CϹ}l0Tf[w~"-+.ѾLhCv4߸Qu]"D_'nDDyaau}e3]JyZ輳`_}>LˌmTI//?&-BGr*,A>OI9Jdjh.*뀒Gy{7덺@c8)6-2(^l5h}sNU+gX8?+ZwV|WIւ?ZPaѹO'@z/wR<(K]T/u\T :ٷnQqzP&3EM?a*yf =}˃5AVP)f2kN3c_or?dn -_|z~ =`B{~|e򞃗͟252_&6|1'ث;룳tCc.rD0_e>qkab[䙘*~Ŵ7g d^H5q=!ōVa`*Eȃ KZS>HpO#dQ-`LHƚ`b[(b@31Woe@2p.ICޤC=r C،` =+d!l ygDfbzp"=kU\mXlK#,HJc-{5}Xo 5OW#"ACc8<VUG=;jS p|){X $;Nȼ|햗/,C \)/KgsJ_K҅{F7[.<@l5= ^! .PDY64<3UOsg? ބPY|େ-38*3\ӽ$-Q_(W'5F[_01p,V h@gVG;v\Xl<̰*>ۇ9[ &HmFjl ^Es\O$&Dcmi0% k9Y½. Oxh5 amT0P>HM/~4oe`` r]"B`RD*J݉s:ǀ ){ p:2D;1i683bq.K .lms+f)úWwVoV0BX54bxZEtS-w&MCCBnoXgLjȟl6"Yh".z&7dIqH@sl81oebjg|7~滳zrlP9fho G>TBg~6HjBJpbPZUT(S.ci!tvqрoTЮ+#tDWzdKޖ[8)H.S{YΤrPN@foI" T)|[׿MzF 6IһyޥLEV0T>v Ukj|JllAx}`gtkO >5} m<ߢɠp$03c{H~DU\q1S֜Ud'U Kg|ӔV?z.z'0EcEs\Zj_^مKYVԱVJ~Qʕqw 9 i0QFGkܬ|wxZj}av]K ׬гjUv<L{*uɞwEyH)}$([QkI 1o>mܺ”YET }qRd+FQ/4d.iCufy><<4U뇹H-:(m~-8eP aqCdzޡNZW븱;2(vDM ?UϘ d<]Wק 4ydOoGY^"1w_Dwד)WmCC\?ML!҉.*Ey&Jx "=J'Xy`. NX4|GB}8)G8fwDI*^d:SF`8M\d'{$~s\7f;/xh a EMyrLOn~\)i:RV@yKWk~U7"eܶtHe TP6iBjO!_- nyHm|9;%r2qgwq iM6{'0j8,l˂뇒k[[xL b3QEeuςт-c= 9~뢴X1S#Bx@ C*}.'s%VU1ùL NVEQ}dp|vŁXZ|?7xRHQAhzjSM^;qW 񯧱4(B;$DwJf;O?*7{,O3|R@Fx;s*:+B s!2W|0]/)QW&ZItzD`FԺ lh.+CyɈViG;v y>KLAٻ>hЕZ6hCv1׃3sj5aQYUk; 7gTQ]CUw׃-3E5j5TbZ,R3z}  r5 ,SeV%o Wl&eEFrpU܋rg:Je;b(Px'W$,KvU&Nj,xGCl'BUU>|n; e>ckZڋw}2nQig:r-b K @@!!} VU,7j**N3e?#`2; VsfqnkE? Qr޸8m7?_axNN5 #Z"| 3bm'S@ S|![=/urC 3@ko5&̦l¾я_r ȊZpQDl#"р_| ,LmBlHva#mrK QE Gy-Z?[~NmPƵ5G>< jeϣ}_vHu]\ܗؚR{ʮB[+kF2;6r{XO\f `I/ŵ=ThɉդJQUGR8n!ۚ;҅G>+D(l?ؽ) AAP+ @Qsʂ=v'&+ldPW,8/INC ,ttPʑ1xs7U·<S+Gue) Eh\慫!PiZ`~ 31i{"zw wŅvzde8Q43eQ)p- E||DJ# Se*E)F\91s͠ 4fzay%H=y#`"4'F]G=%!Ÿ[aqh7($Nܱ %ylþRs[N,Ebt/lPi+Pc/>ի+vlTlP, @/ѣO=[.)_܇;Zj{֮T^#f72;h.ګ&27_ @.}C-+QGuZiik5Gv A˅u 2,69@_Ng TZ༓I?-.#]PrHy +b>FεLsBɔz>v$عl{7F-5Lc9w\>{`oXr~)zRS #F ЈM +E(0M4h'0-RW$ow-ϖ~ptŴ:' >/ ku3'{]2lmOA/2 X ,4"ΊJ#axwwyeT|wLzE[9GtAyoth|RZyVUAGBn y_Z!JciYY 'CaW.I~Z`PFk i/ Μ}bOW4: wUsT\2꒷H:䌶sv?$6W\ԒH;+*Kpnam,6M@ ̘yY8 U$5˜ MB"ş;6M|>U|4֛"` ?HN5c)r jZ)7R]'u;Ean豿OA|;^,})Lav{A -x5PB>t6F7NIpsLJl,W"Rau}i\N JbFK߹p]{A{~ҏei(PP|N GvLٯwZY3*,P:Eȝ9װp^wVd' A P{%ۉY$'miWC%:d`@A(3P̝K c 5{~~dve(?K7Xb\ڮaV#~C0>B6чT:ACEvz`m<(IYDve޲_^("|ui&q4gdQ`YZbUrPvpS13=p=rXP:k O "!Hm$˗U+F2mhbgRc]W6r$<&8oysxTЩ9u<ĺȉex["Hocl@dSPDÕ KWmTwem'K K":ŶӮg< tÚL1YXnTgD:{G(?˭k]e2e.mꊿ*+̻zhAxʚ=84/.ti, $򓱍6 "`71YXQ/RV*sơ r"sOzM/16j0AI4~?Gq@K.rI }4& ov9fo"w:WeS$_3A^>5;}mZ3hD_6m)#RHfo_qK #z׵ЈFuj`tq~r{JBËSvjmeQ-Ci⥱"E@\1eT]B-6nu^ CO.F< w&jbhʺB. mZ;lic^45Y!AGJ fܙS73V4]OdX k<-s%ܚbxA:!VHY4č PL..! |g=(6ྤVc"*P-rJ['FfV:ki{o2?8D+dx@GŲۼ?h]8b_LNKV9vc`Zi|iPP㪤~x4WS{Rͤtlшzx{Lf`d]^SCld{; u8ǷK^Y-@"1b+bg#^;PIU)wO5&g|4yXj/F581w1^n,3fy}2Pu‡4C͝vݣӎMoCᰁ=ۋևXD0Q:O,'Jqn e6ޫ=oc|@$4'ZU󫉼âRd8ga_؜ xz`Th}MʩNsL3-<Jfre0yXQQ=oi~@0fPϜ1kXP;K<|2/b*ojL q([a6(3 2-F~( 0%?"`]tXB77$6kNH=;|ɌGYRKL\a3ςYmm5.3|XYRj1RZ|ֹ}<褔C]Dr2cf.i0\u_NU1w1U{ )MX9"B{9{-ĩoG;!06]!zg-aO..iA[^}_ IkFIsAOoa~/uD6ED QLDmmA>hk9p@*W]yɰ4Ydxv~anTb;ww+9IAןhj^5RE gElF〮 C 8;1Wax\S3﬊:&qjGd>_O|x&8^*9 bu)(o/#PJF7VgRDο ReI|q+ }>(ꖚ[3P|%#$-rxZjK:!w0syώ9İUv㣹Ja`m ^(Jf8`TԋN3cS{Se Mz5'2J̑.4aMѶZDz33=U^Y^*@^L؊g4ƗX5g8 -vD@ݮp 竕<ni6HJ}e'3j(t)/ry)˦=fଌpJC0k.<|v=viސ@xDk%Զ %(zNyjoDˈL.ˡ|BV-C53"brਅ';*"}hQBo$:Q꟠@N/ƉM iyD8!xp@* !a-\u4)]*6b"!>.C :c b$=VQ6s$%*^4ދ ?gwwR$P1zjiA$] (nh8MeiXޕaESc􎭽4;*0K˥gB =/- db5swlޅRVOag iW![yN.ٳ`aet ĊJǨQVFyLL;F5! srə-n<uOF@z(zgʘ%8C~~X*#m D0эLDU Xfeu@gP[ۆsxpLMՎrˢS5Ұj?7H>ư>we}ȡ/ZPQf] 9ptPֶwPvXa t%wO a zxfsVa#o(zVf(Q!ӱ6rΩPE*?$*S'H|Œ,>7m[]Feq ) RjQ> lip4G{&dU]YU G3$>"FUܽ0Jw%ɴߍn6j{jJ8~64-`2HDM$;kW1/ڮJwլ&A#ZW@L6xCכ(3(:2ne A9WQ;mz賮tq KQMbR?cj\PeNkj2ts= ]&uiNìpc0Z<װ,ꗚV~$ñE!w+\kؼBFuԆ;r`ʿUm?-2YHf-&7` EQj(Q ,]?g`s]'oyK{ּ,$osV3&/Lψ=hQ7]ݸZ+Wx]ΩZGA}+,d$^uB}gȾ}T#l.α{fj]=w /%dm!0ّAv̦wsla ^3;*Fƭ\"ݿhOH HLA"AlpUJ0{ȻR07r>Y4Rj~ 1@IO甶 l1kM}cΉ7Aa< h?`ĥk$ւS[-hЋ+!Sy$BðK"y}=p=ug6g{Ո 6g5&CH@¢{f G{_АcX>zxG^7cIϕ@FƷe3[>CЊ>+&~d='7_AgAt+0}:>~^:X2ԗ*w 0Ws}'H4XLiQHZf}&<UV؀L q/A,3LI O@',c1~`7:cA &jEag͕}VOԦ":.XlpL/\~ <n(ck,,v*`Z4882* 9H%+Ev Eo@uި|o:xOhw,&.qa EtR->dc>&\z>W);-!v0N=ǹ9nK5ז>ߢ0R)Z3+o#O6P!s_U]/gQt,g\3(+TƢ%-=}D֕įW?"٥Mw<jw<:fr!h8Oӹ@mN:ik!L,kdYoRY&bv$%3U3$W-C!89ρkKgF(z >1Od5z_mk~'g} +"QFS`os1[f3twy4ɷJ`A浞H2.@T<d9wpFKƝuɽwCjɽdzL~Z_\)Q~>1Mj`:W@!]Wuu\zzNsR_SyOI/LN@o[iIgHjs|ׅR_YDM+"`o EqƑ 밺] r96$(ưk֔mdH{Eվc\`C2kYSMˀ% g[8mdGm2A}zn<#hjL&;e;.jБ9v]um\nVzևBqUKL/Ä+xf7q&!\*pͱ"(3@i&|F@yydE>\ )D9P qM 3!%lsɆE!HEa)BP}5NyA[| *4UEgX7DbYY(.:#S94x21Ϭ p+'$QY_b|҆)J3Uoњi {뤺!`jzɧ.[ԉKog-+<hU.c!Sl̾h}Rke6'."Adb@uá#f1ᘗ%&'7&]ܟE%uI&Fh2ց|#_7qj"}EΚV2XU{\rB}*{ùrkbNSsI'wƬԶ0& F xmM8۹(Iy-=͕YZ4R= leR`?3$a;Oʙbpw}X_@i[ʃ!ѻvQFo,h$g w W{!Vƒ y <%' }QAd^еZA~Eߖ&&rKL5HW-G;͸sp҄F2½`Qr:orU"j4'(H3_~tKPeGB'nkGHnL"|J/'>GZy $4'A4:n CFyp^_l?]5j$ $4as:<%l" Kj+!^AeW-4 G`L'#HVǑz0FOU3dp@/^ݹ(BCCz6pRcD65v.NEg\/}1cLT> yH_E'ϴY%YxXΠ3,D:e?@9R89>s_ʍSbd(p6zj2Cݺ|!D v<5~D0vEFkKYo ZUP Z}j||=A',a? w=&8/-`oЖYk.^WRG*yo5'W&H:ש;Vfiيʸl܅&?%+ծK%*LfymjBl0lȄ%-̳6mV5T }DDCutF1 )F Q=s׎Ԛ9`\? Wy4_>Bꘃ挧@}i09DT5*76i "~Lr$Ւw]Jtw^9 vMCI_.6-ZD"&qX=C1>%; W$ IxsfP?iajkqU \y"9i+LW ;gJĸĈ03J-%6`?>0[RK-_ =#|Ңxp=`hLz2] F_ϤGյ' 8Sn }LKaG՜o=htoP |4TJg)=X6<雬6 L8Nla5Hz?{g`ɋ+:\c AKPڼ-o8r6Q3,W!uA?AzMף@Lb>f A3j, ٙ_'Jiؘo^ Ej,8`T']}5ð5(|@0 8RZ#PgNݷMEXCh^R=LYhn".d[\pܩ u/fR[]2&[}gkdb5,0y)-5W6`#sĴ6L/&( AGE-˷(A:}(e:U:*C<^MNFO]wjXA'87Nt햃H΀TfˏvP 5<Q a&~+0y8hz f| o8nҧdkvYóɶngc t lt*7eCȶ+ּ=vLs |)M9e]ee>\笚sj CLv QL&Ü3ŸM*:TgΗKi%#Zvc{ Mv*)nW)vb/1ف6< J}I9ɳ8T5o2TʮZʍPs^Ʀ LwD1v,|_JqF'c3*oƬ$OJ XV`H\Fwy V 5,|UG&88 l Pp>?+/ -8z]~9h6Y_O%9Krl1=L3 k{171+L81r[u#f[U#YKZ^BMDE㟓5YzsE{:_4$zgB6iHNwwS XvHcO|o$j˾ Dēf:i?ǖ@q1=WIț|+i ChUfCR `Q*zU3j_1Z*2|jmL6*A9U$qyP GKCS+"RzGafaSmt:d5 %Cȉ >+x*4鈶/mg IVEOrdbS3w`+a 'NUt7@ rwF{\/IX0Ň>,Ĩe$!rU;X !I$i] 8Y)I϶O~KFݎ !YC`ð p=aq93),;>{ dW1μ{ NV [{zcT*;O|$ѶM쐭r r͐ W 2;dP2xngK!~lL{d!I _m ,{;킂BIv&`uDwD-,>oe^p1! !Fst:H@vS{K& lN -.W7$KJHϡqWvwrG2 ^_A 0{v-& 盢 p\}O>8nK [6YqT>KJh^BÌ1gLJDL?h0"ia-xӬȭ^HDFK_ uO?: kcDuI>K[)k'F_ vXOȿUWEdu^|գ۫x"XFny:CWNPox"#(%UnWc4f1]%Rղ+31Kf@)K jFKvND⨨`fÀ;3>GT|P}amIθ?I&,xG~+bA֚ab|dspc[۞@,4$FD$Nb>&t W<%@x$5Bbn2&l_ Q-jjVAvfm3. Q 䌾(b3fD"5~ 67$eu?Hqd iۆP9 g8g7#wۺ=SIfhGJHthх0v{dF]ljh&.E !.}51]]Al"lv*(!EM6Y m?m͵Zo=>DnR [Cܝn~ƣ0N#̤ yw꧍3hبaR[wvm9I㻿jjJxlF$YeJ~~ގrΞ=~ZGIhȷpF0;^*O@}ŨEAMzbkӮDžD|1![hOؐϦ&wx/e] D:9rA Nb3eteےL*a^nrӣ]ϞMf0J[w| ̎eӟ趨QE{x~Ez01/Pwx&CHտKu \ ~8݋%~xGL)¯dԞۚ;/OX+t2P^ё?ۆ~J<88`<jwq%UIfRY -%weYnć硡}4 c/h4Us"To6•+? R9Vރ ,Mx=67" 8 Rol}7c0D1>!=qW E?&N34>c.x· Zi/2L˜ )!1L"wV8(sRwʫdA錝Xsts!8&$3b/Dt{Xja` 4o(On^(ngSܾ3߷kSUڪzʒ3Q.YЦ!W+84B7m ܣWšJh+S9'u%dtQŎ(B1Ty s ]H/՗iK#1 R{YC*وN="NJރ`s'󩝡u1׊3k]o[>0C=jaЊ{ ѭe` J #'e+Aϙ&1_d Ut;O?amO~X1k|-YsAAij8F=+eְ7350ݣr|/5Ikތ QdUo˙sT/w& DŽA,z$-btaB"xlzwT4 VW$٢yZdHw&'v1˖V3+ðaaOJXKOh(aT/SSs&'LtuN$QVHK OJu#dIWpy8ǫNb/뉺z6&JɩVr8BoCv 1Aq{`6w`Wgeb'ɾo%9O"4=liC`h_b'7a8shss<AR3Kgܚ~5r{0#(]_/q_qgmJ { yX' &>U03VdPKP񦏗\QN G_`X)BV2(EipfBp: -tf!Xu!XN&5{).@'ݱs"^B!Ǟ.eޕ>JfY}J[/^WS-<ؠcGsgHĪ? 1ab{^S$tSSZŽ %_^A{ J׬Rð&wAƤG>3%r1A grOus>zK,d`~gC>ާ xssº ~_͇^__fR8 7MCIq\ZG1Y>x2 ߹veⳕS屳; G=H28R2ZEg6>ڭһsF0yօ*<ߗ)+k'#k +S6wsX$+?{G\-wAHޥ@f]`DZ7* 0f !w'FGfdut_ShMӎ[raaVRi/J9] =!+\E﨣VJ8p$TDON~$O)w{ȹ`0^mZo%GmG5? 5mwU m [WG4:(e{;3yb1*у]hlj4c].T'+Ԏ!G:4~p@8&M;D ݁\A-)ARܙ¯7bM^>_yN(_~eX;b"X/7ń(\$[TpT2YPf~!y~8V0QlwD;rIHRtlluTsjbEM'oB*/Df< 0Vgm=Դ(;1WadON 3,\9iǴ !d~oˏ!*"2Nݎ]Jzg:!4 ]ԇN Csck}]98c<32"[#.M,KBUɓLϋ}~mFұc^HVv)`lHbn Sa(hEZr?-F`v EpNLIi7Js&ۚ F%=>0gIIUErk;oAdi܇*b3pHt9VV7: œwYS8S k2\1ĸox\Jr&˞׃[!JC7٧B qؙ Ye3N`qB}.`L72;xG;/T(LЏ4uY g1dgqg>.z;6 #*{ 5i$(NiiL#(b#lϿ\oK`b"5F5OrRhWrg~ +7@`b N/@:fnttV{٦ {Mv2w,'@1"8ć=Ouͽv<#B0_s {:Ah\$ F~[H"˓Ktd+OK|EjATb7dH GTWs=%Dr恚@f¶2Yyqr}UdS@NەHaSТ2s^,}>99n`9C!Cm8A/8]7¿LVCUv"[/}οzĚPҘouAY*"fYp*d5RYi1P#εʇ%^EI3t}AQ^I Zan!5&Z6oo+U au?B^^笅  YH+ev1_<\]9} /tkLs̫o:j ^?C.kNDž̔tU$:7sp+(OuW%÷ʓy A@m_|qB g?a7hw]PHiGޔ s~hgя`{VؖRcЕVi -E9i ʧd0$!!+=8^OV |zf|ND7XɁ`i],߸]9[Х8f.S~Uޜ Mp({-rA&˦8}&' 7G,o)a+z  & G=n~G;%ͪ x~8tՉj%3wSK"^JbDt9)}7Tp Q]_ z԰Z%]0)*'eh=r`@z9PT7!&V,Y/b;ETK#=fI4SݯG\8/Ch#1xl"iwAsύOpIĕizʥW*$bO H^G>_ZFl{Oq՗ q(g0Ҝ-X dvU#I5tY=̀!4Fta*'^lcͶmOLmJYYK9 ~u!ά%`HK&&Q!"Cw%|JHdr(ږ- V˚A!w>a%d'+Ls;@pOX"0jjCWpAIimy>!&T,U}pp5ӓ8}LFz^]r4b58-;5lELF0X$uAo#2fI?6<\|H'z|-0ʞ WcJz( _J >s }aI=X.jd'+q$qP3! bN}R=ſ:Tyzm=BZuZ CڛU] |Е\=:Ӈ^7 nWJ᱀rmz>㋵E[ͭ:o?upz x#ʡ m.\ mmeU.fׁ*Rɔ?BF$糖 E bVw?7az)松n:%:<2QK9 V'ݝg 7"cpyB9܋lO8!"Ƅ6>&F +ɘ+ &B#؜#@燛f'DRv_Oq=+VJU:맨ݺ]Jl#FODAO6gM>iVeTTFlH3 ,R ɞ_Q?@xpX +A~RṘVV z0}(ع(b]2埦I9ٶ Cq}휽p;yݐe ;b=B%;5ӅvsѬB17cđ>I0Xf\c]5:BHY-gue^J,`jIȥx*a7byQsA+gIHPu[9V7g~8էθ?ḛw0F`Z\sw5*~}²,ݚg ^(T2nc[튥RzxRЪML@zQMkM"Wg~"?O;FW{ZE?[uŏcD2)ԴJ4OI4q:X$^76C)ѣ{uʆ`F\ji]|Kh%&xĵWxFsZ`GFKdl}%  Nw(@txM3i !MmgTXz4/qcS|5QyUeȘɔs" 0N X_7v582.Omos]^haߥ)'j,H*8@:̒tUJ %@%Sgu9hy0@]c2Mx}ݦ%91<=6ɝ:_UnV@/sv7˩dd_nWKeƾ; 쏚@rHPݥSǓ(:1;'j XtΖqkƘ. _hv 7d]*MÑqa{rxYJ ߭+Vcܒᮝvwø+#ٍwh &Y x/xY\a _"_ Nz8o9?]\<9/u%u`@Ӑ.fRko FoXqYofp? W 1tLo(&> 쫉 ▚08c`HDi"Ч l?i9vKdA=T=7Zl4Y"5c}QZT$[%Ml%E'QmZ31n' \I5xci6UPWnnw9{$\/xQ_lXj%L6>Z+11,ٴf(4E 6`q\y`<"7-fۺ̞xտk@9 '3ŧ^-] pN{Kp3GfB޷jv/:"2,)b(Ɂ t.ϵ6Qڶ$xBvLJQ [vw*ΖOSMp555Ʃ q@Yo E"tny vilEFfh~geMv- fuk1 =p%/kiݫ88̬L^!I+! |6y=:JR-է tWЩCӟ˷fpJ| *?{HEZ >❡-WE熡1K'W@wYr B# Ǜkp@7gY!%0{RR1Ânbw mnwHg1 {l'N*P=drhMӣC(Av}G W>UO%+$3޸kbF&iyS=^̵/棽?Ou͗RVO Z沰Khm# K|yt!U:B:>H ԉ8ޑS)mnE5 A9$̿n?jMAyRƝR8tۻy"1t:.[+kFטX=ʟO8#-Zebs5 Zn3 aylሾ~ahP}F$ AH&\ S,KX>D(0ZZ>aM!n *U~'->ߨNPM|N Aqa$jRL+*D i䷬As t6٫f;f6S0>3dP$OkDkIam;|t3^7=}1Mj֛4zup^DNV=i2q?ºQP:vܺEO{oD6b!z_F||Dzk_\%Z5=dbԄP7W|Bd'Obax+gX[t'&OZGl,c/{ms#; 044xն~\5Jf^%֣1F- J<'pRAL>K=*AZw܉۽Y>܍% ,@fo6?6M~2횀Xe&HI/:)GebkpŠ*"cym9MڕVwM+ Vu:eG0D,Sy?++'+" lbQFךWUօ,>0iY̒_׾Dzd,Y'vɝ@?=ZZy[¤ 1%)ݣ4\4  IJ /ucmNs,[@^O8 J*VobnEtAEy a ]NY͠U#wc{s`^iIջ>ujT{VO h1jf 2βPM.vg}SWr@Xy5e5Txm[G^rh? LˁR%v;z]MbhV4y.[26""lKoBiO*WO| jϦp$U^MV$0Y[B Z?Iݳ>94'XA`LP4Q]@lTg{SIe#2)b u#TFftvzϕW`o*lf5㔀:;Jdif:Nw۹60s~;7ˆt"Du^7vOvz}4lgk7H41RB)`7x ď/iSf]{!H =/ S|dPZkGp&=C1[4P ;'}2m%20S0Lqnrԭ;%maCNZRo ʰQ am#g.OgMЅ-ܚ&//y@c_tBtMR[/W"= vsWu|vu9F[Y5v$ ԛbZ9T>( ^vFLO_†4ǧ.((<P8ZCHSM?x(w^۹v 2a b7,Fsj)+4eǧ}SʄWǰ:o1c0PXYzx] Ĉj!)WY+@YSQ2;?w}Q"&oY?[>Gd1%cN "Ä' exKhwo_By`p1iC*y ; OǤ7r?}f[ Q>tů?*; a anEb zzbdeNju G*bOOV[&#R_~+"*[zQ۔Z}%__Δ#H=|9+ [`):[ gg&I'ivް_rx49O1V"L}8>l^ɻ[Ck7)11:F&!vYqǢ!   +[u]K HHkO[bqǗ8lO'UT|5csF|xrIg$ vcӸ+IN1OEHMRN P#^/Օid$5@DNO$KXeк9wwg"$ Izxwx_5Ǯ4L@Z6x4! 8r/R&%fDa=GhxP) .Ca&G/|)>\ y¢oGCKos!'Gj;k<[ܯO#d Wo<jJ o;s8` {@G=1ıHGM_tz" IGnkW#H;]2bIsVg [*bϱ*Tvk,}\I;@K".Ik4xwGԿy&ЌzxKW-qXN/&ⅢR,;] |~)("s5[n}܆xXzt\f?R:>!CsXL씨=m@rWH[ziґLdyUwlŒGA |K u ,#7OOjyY|,{}_)TZrV{}(mlNJOCB6 - A?@z|nk "#ԮG6+-C~NؔwUUo)!o!ldw¤cȳVd6j\\LtO{].֘ d]L!KA}w]o~le# `5몟,m hR K_cJ{0A5r9ωo]{$AJy&;=RG `ɲ\HwיAzof\s\6sed0_Ds0,5"d ;71-n͇wn{U,bA JtјCM~vV;%TBU/μ03̗Eٺ4sw!΂]9wd8?MԤ͇ Ң:=qG]" F)Ѝn޳5 ּ $1Tύm^8*K^,Fjn&`VhXON.#= cfo :Vƴq6B.7S_f?L*[ڀ^%ۚdZ.}͖I]O mMyNdcR Y3f@f,%osԮbĤ7zR,x<^'S5ۿ߭!{n D2g$|p{Hʩ+P#ns3 w^HM37f5uv{j?L+ )am'^fsCK~#0{Ld}lPhq\WT P1CD *V.)RT~S|Iꅴk-VEx*|Z-U͑\ܚaQx$bb!R4\Mm7*)Y)6L M.<@!bCLeì~DǬ$\zvnJ6CO](vKSͥj_á%߼,Ḛ̄˟wfӽ\SYI)Ckgm|nqq[\>65E31z8AފwNXDD3uywҬla`aES1X |+'8 y:gR/FzT6$@ۆOo gW3#e52?VV/{J-=*QOw\E k=Ƚm{3]sT eHVCs1~EM`K2uQ</8v9k. &8Ay6G6&K(.بzd5G-Fwf[B΢rt$๡AuJQesUn^CmflU܄m9~"]N+`d@[>}7~f =)fBtF}cc,r=vUf55~ypㆁKi 8h\]˫綧o"0aQ5G턷v iӛېUjkL(td2r{Uz4̢R -T jrN4$ݗ"a]jxHzK $6~-/ 5w=I&kS9tM0}=cQ6]o!|턜: BnFk b<*17֓ xH}Ccrj#K5ȿ( o>y:ՠĞ+g~VD;L`L|ņ` ZAZ RȀ3 _9= ~Gެ.F']A p(#z4DloD߳;Bi(,$um)0?eX<+m.䳁iXjMzM%󮤍tDjaB*V3 ߉|Nlo =V%(8x`%R39h_/4hЬy z ГOWʏ}\ezN H#*NYϼlދ(ܺ}+&ߴ#Q۲k=ma09rq> 1aR)uG 93bbӌN.2q' b?JE~(7-}ZBGO=/JuCءW8̫O|X0u|tVr\Csj(*|˴Oĵ% 8# %Y;ߟqI@d~Qr,й@⿜!@,syꐒ ʘ ㍅w0]T"ӆY:*L\!ThR{THSb+@ovI. C͍գUxq aVk)dmwU9A\@st@uC-/e"LKx*<iy)׹=[  gsO F糲2aֹNs/rϐ]UxCE;V^@.2Cƺ儔ĥ!KVJ |/e*2>lc.0{8{NPCL`3Tnh/ HŞG!PZhq_.L%&J8ŏ}}oP*nAE38>PgڤateZw+'O1(ռ9gJ6*Ē}Y+HVaqsj];[7;D&bt{r4k0q^Of!pVz <C=JZ$=ՂOIj򿅼9hPWHFD҅\z~Q/|aS̍ Ao^mGh0 Q|ݬG.[jXk]kCfM ^>\w8!3T`ǰS3ܝU2˗6/ݸy~Ц&8O8㳭Rҥ*iԞwRI/7Z!괟ZyբVΎ*݅OJA2S T]f_k2A= sswX NO0㑄ߩR]njncC k?ќK~Y_KPby˼.@|{Y@u!c*"ؠz=w,<~5P-1TZ_(Ȯ\@5>ŃٌfkRQ*M8K6nD,(V}6eb٘+Kge%/jLeQrC]NzL`z_TJ8 j;t C985@vCO?J`~KsK h' v?vP7%,p!,ƙt,ҡlxcP& An<; ߦ!Tw7l}@`+GABUAOРFo 4Let zGݭo!~^(K42'"ZpFjJt0e|P,ư<4ĝS_<%>"Lp]Z{ga) 9N\oUEtm Pq [c` .f U'#_pvF dVB NHI!δBW3Sc"vs+jz}^bL;l=-8=ݰYeDAuq Iܕ^ab.Lj/>g8>ʳʞYD:,$'vzrrhF(RK+bh`5>s$gfd%e2Unc$mzw9D;*hT&#Ǐp _\*yi %+VN)E1\P˛5109}Y܌@&7Z֛QZ%i{iǵw`:{^wSz Yl˂>xV秶 U,`J٘]\< .y)m c0o9T+NӷE - >IB⬂WO#G+T*ұ֥pYI"K`U]8{?(GkQ7GQԋQEmcwRW Bp,>0sР #'D5s|fɯ8Z!V?jFػ>)FJq6)1 /?#X#*1a #XA -%T\rI:2=t0Ǯ8cQTxøW%\)[!R!1C-E}Gc 5=e֊-;O=dÛS UbQ`φzz`^qrBq9 .lJ=m +oF'.T0x+)poGӀh뽵jS܌pa&k r.4l~i`і:|;ZYgNM0+ȗfT)){24wBh DDor]+_H/]ۂh#l[0lgkgGIJ^ُKHIdg6xF!"j-HbynLEs[) w 5JݚmTֱ:/HA-;HaFhtG‰̶9= ֨XoD|n};q z gR*타U:?1d xO$u쌸Q`Wa y7JAT,{ /q!E\,nF!A._ϩ +YN3;:0@?vYlAyi#um^0j]ME ۘ4W*_`!ӴZGlɏ4ZV >N.JJԋZRNo58p98r?w1!d7w d=wHsVꗯ -WO;ۋ >puG^t xK 1E!V`ͺ.ODr*Oxpbx9; SPVNNMgXx"KywZ-WRaW\Pw[@]S)zvy_QGcK3*8\:0 _E9)߾ V`8iQ@[Bvb ϿͧÛ7aX%O2sW"8+VQ+2@ A1,;ʀE3bfEa!+NQB |.`Ƿs` )I;AHGWE9ө+]s-uYTVExW(T>yMUpf =Ԓ@R0^G.܅:S=Cu28ֱ6'B(7/Vk" ,굞ӌF`Qq Pi|K>} @JAEPoX oV@Ŭ8 )7x3)җ*2f`%t||bVifn| B- 45dý˚1gi+6i{B"^VHe8$𸄡 Bwsh.u SWg&Ic qt7n6Í2`/><]=]Cu Yhf7BQFWcrUA,W$C|3s!. ]K V[(,wtyOP[g6$N9/k`lM/bGi۠,}PC;+U %վf`1gz _Pc@V|$ƊT1V|#}).V樍h ?r$\y%n+0~sE M:SHCOg}'56EBE۾ Ə\27gszpnwEۦ6m`e P^V:0Bhju_Γ&XoWenHx=gEbĕoς>Ti.030_Ixm]SMAm0LShֱ1;2 lE*W?pkGH\=) ~|/ll0-DBB:ށlU6H7pt5`_EĻg7Jo 'Y48.cD#CŃT:7M342[Qikkp/e2 +ZOr T1E .2)`6xK _Եw^??cS͚ 2Jt.qNNeg+ڍpk8]X w1ȡ3rWj$iQuN'LojrR;g-KC򶏩lerXZAIDaLz3VϬ { G$W]DDB}kdjSrc2I/sK%c ~d/?*X2e1Po}iɣ wR}+ʽ\Ga$V#|ړj|PK? :{Ώp ¯8ڠI{}𯱬sivPhK@GZ obC&Dh{IR3[]K$\\t[jv|V9V5WgT߂q3&vCFuإT N+\&A*T?}2C)g ]olaDdKjS0m^ `,WPϮgF/Od=:)$ډ[FE`rx2 O//mE7[!~ŸdKwFWaCn]?1QB7fV$ Fb䐔rqJF~Vjiy_KP?d9==ߝ^aW3{|OM&Ds#9e7PP!6Hchu` $-*W:Ԯ8 e ISoN^b>]hsKp/HԅC%I0z7>7.fyq{WNd2݀t+Os_12Ҫw9AZ,ގBANsfY-FNeg,pē51R-$'u*6%W_!Zι^u^ݸdsY bt}pjCFseM$&>ʲc }]Bqۏә).vځO!}iꀄQkq_%rON* PBٞ)=+_B17je˾PgJIjФPCbDH\Ւ]2aPIj\vA/^ إz= 1&"ܜWcqbg@ ɱX#T{˹Fm) mq?z@B?)G|݃>DtLc+PCT2{Qi 7lB8W>_mmq3,Dg{ӽ4PUH=NR `K@m |">3w Rg 3oJX3}gǩl.ݬybʮ/8:|[5R Ҏm+^J]U0ZXR>P>*2*N%`_؍]L)FPpz F{d2#qh`Y]wW'Bؖ~ހ# 4p̂:3RBZhɈvZ-\Fͷ䪱tT9B${ieN)Db@3 4,MM8We׍@Oxԣv7j$\|AC^f^e%2?lxTдADuLU9ic4R=s{g~PNѢ]g߮>k<ƀgg!C!3kꐂ VC1jCnS K)FŖt6?Mv}Xc@O`1 SflNDlHNj: dϬvkbz> e~hVw_;vqH'|4rX0%^/Y N"N3y{e82?)# ɨk-QsM6II^)W<||Xq&Jy9BU RV=Nu}|p`sZ|3myB0})?)ffFr=[~ 7P2+e2YZȻ#ޚTI`>JQ`$ױ(8AK. vL(J}s_l@d@r4sl3 < <͋Vƻv3UUW K 0Op#EO6~j1&N;':Ҫ YʟLmR\WIvGq_ž%dאDGHܑ_!1W S,[0|ke۩Z4;ʞͷ&sٱDVr:DOh"Sw#%gDIsc -L!hOdz w;OѴ%cd0A>bJ7n` 6ӘE!ؠ2xY/fr}k|9{6"/3%ՕCU{?eu4JO?z:D2=M/x2s!-q#Y ?*;2OxsxJ+:wکt?kKVƯU&FiUGT@&%%NiM_;]5$(=Ey]3#ioaqv>T5AY3aFQOظ37HQ%޼JMx+c X}?Y]vS2M Ce;Zc{;L:|NEO?*ED>CT2}o~Ԑ<n!>}.j+Ӏr2:38&B^o?mY&p/.>4k?'5D$)Uav_Xۛs"s.-.% c\ˎ|?vJ'|8Эƚ˵?\tnPŅXĔ~]y H&"''|QꎘŞ4giA=7񊳝h"|7q2au݌M5(xCt}C !!Ϡ"U }ŮFgY2h5 3(GL=~I \@(~)^ޑF;jjEԛٺfZ)wt\ݐÓVwWw΁tFe70^5`Т"f"!ysnd$n*'i?f3Jl BYC\ Q0J֐2pcjVYig&2:;xŹ4 iw^%l=DS,g-Xn{e4-oCR_kliB;xjs  [pX3isݑWls SmԒ~Ϙ|80f_.ND%ׇ|S HU 1 tsP%X4$nUC/< *ҋaddI:Iޛ˜[6164~dUsVݴV73 kV8Q(@7'TGO. 0ckQc;|qH44p ,Uۥ; t"'N+yk 1$Y3P҅^XzQq\NUGUfnNyA[gL2T $K #.A-_53Zȸw!^zI {oLgyF?\fys7StQ.<&!WJ/i`vڴF#7Hj9yQ ccP[݋P@g73(RIγ zVI|>ߦsXt {A%اV2ŝwp-w^S?UI*N:&"ɐ5_F }h!N%.$U&cY wծB6lgwaIdE2Cv-KBFXD_bYM]qY~Ʉ,d)`ൊx8㌩_emZ3t}G\̟{IV j1Fxkhs/V1ڞ,6o!JbA+#[LUM|kL识Q1o{b봘tl~.nTs9_U xD2)L% AtwB2)Ũ Ğ[w *Z 38}VӴ+&+!Ժ|+]ˡǣZ/v"M)C!kj7> >I4K 0u+C;Xj0ecD5Gni 4Jl.$YCCg#( >h7&uXqdguTDHԹ_*R;!M ι38~K)<=`#Bӟn!30% MzϪm d!MkeLͲkv7z#q/*Z49>j22&[Vk\[15O둄N~pz,,fO!1c|5i(vz9<;łȥBtv$6)ϧI% Oq7YyiP&^!e`^CN5kt+;Ed>M{HM{wj %K٫!h='p܂EEzy]'a*?w~RqjDuQL "[`87;z- mJ5 5S?Zm&t;qj:ٙ_O]$ O]n3@O剕꣄aݓd<'5yǜB΁Ul|9(v[B+ B(aɆ7gdocIXi!{3zNi|+!l h$40ɋČ[lͻVOh5qu}|E篜Q}kdiQ+ϛS0PVMQ[QZV_3b-'Oʘ~epd@*;2ʣNZ` kj<1ɏ]r*},K+5ng`H0לay (j-$sFO e#,N(-3Bt%S z  WgL Jg=Zd0G;hȂEtkJD%2Uvs>$)EٶEdv!_^i}ۧ^U++\Deڃ]zd foAG$b,09B&|/@oΉ:a~aW>VQړVȤ]P+Ny0:ց[0m "p YFEp2!g^_'P۠ L>nUff=66nF< N w'E6QnʥûaimV48ضOOxWoP;d)KIt:=^&s9,#G>nOf•oZCl}+$&z"Xj*bp,D@y+OÄH`/OWߦAZ0@[R^ ( pk`6;{sOx*1sRGh$]tta"Y<2G%aBhD6mUhcJ^nؿk Tk@MH_ECՏ ֦&Oˊ"`j)A$^*Z+6WXhGYOOOFڌbɼ= 5stCAvD)BW`UM?Nˊ@@G@]ezJP9c^0`!^%u2-tɳ#OGlFm41n)Hk_}ef]~<'=eO$LjɒF0qR\L9I>qmnHGeo#,CviFim?]~f ^UF UuXͶ>˯w ϛaev#ޡ.*ǝ{6zO;'ڐ4VDT{ļH}o肯T8O\{XF*(5ˢ[͝TGʕM: rx^8H{3#C@v`~lIqY|kqAxiwyfd(qNs7C[G *ɩoz0elx;\ȗN fgqO'Rېm?J 3F~N__f-wA}+^ =Z(e .Ņ6𒞩ѵewuub RqcsssQAM4J-%@#xpЋT`72q&Y.m|c_Tsɑ\"\ׂ\õ; 1?qf%c"VͬDp}eeQCZ}fe1`5GGH!th" "uo\v\/ܺGOael4s"ބKPѻ߁bCҸΓYo)u]`Fo:JFJI,؊Hdu XX\Ս7v@5o8KCQV`*ϳ؉ ="n75[DȑI'5ղ=@K VI-~GP+&M~U OVF-_3M:R]w+iȳ4ZʍmtZKC Qp–h 4k ٛ\[`0'Cث&Av{YYva;:W Z74Wժ2ŧb!8cqcR v zg3+O#^"f/_ܷVw}RӲ d6Uwj5mLjntz%shjgXw$TY[DqI{p Rdg+< <|A/K&/[x[Y"5'?c;pjӾ ׺ϯ{vCy & NYy(:u+T$5v>s@2 4q@_}ޯ9mńcAQXco%(@`QiIAQي5AL3 P–~;)UXW?[G #us ic>*=67aii初wZ~筡$g)'L?J$M2P!+F %1?YX"l0PBi0D1A]TuaC:3L53)/Q!F$IKgfJ,/ ^RN hϻ)^DUyp+k4+h7_QUx`7 A0]AKF>'v+ʁ*oyvr YP\t4E#RD,wŷ*696 Ki:8lPCɮ~NedJv+M3e?0.9hΓ/?^B˯nb0B~h%Vujc}.'1l;V%cEJ* *!=?M7I%WNȾ%w瑼]) @_\3RJ}(g)AJ_3S9!rbMtVf:Bvk!?j:  Du6yd(Ɋ5\AY[`cGi&E-ɛUvؾ$+NK '8~^Ǿ$xEJ_A wb`BtI,zx5?; -P59^<4L-GNdAoS D]>;s3|g-^ mkEuj3:2`#o| yHq<U~ETfŚ7Oq,_dGͲdü Q;7x-#D~tbws mįhB Il qRey@-G2: .v"+5ӽ$6q)hy'L6ՊFVaL׍uS+_z4RDKڗ.Jrq1s:.ϭn.&֞T4;<Ώ-jOk$q+ V+%j& ^86$p9P`>:jI&^ QJ_LZ+$[r2]axo96axSCP2lu!'Z(/{H|l3xZX{ Ƿp6mnVwy;-A?<ә$4$i t8~fmf}Tܟfm|"tѬ YZB ]|L. *O8mމSߌ2*\,yzʛ%yfcHܰQuhl"O+A7Z9ɃWrV&\Og`pvyw.nXcLoQl<`a3s HQ*>N@ -*( y灁wtqp oF4(,:#Vr02'&%Z494H3biʶ/62v;Xo  bqi(6=lMw-jG֞2&L>E0lNyJI0t&BXp;1v`eUp $ $y?QWIK>7MMxs'S3SVDd(ɣedp}o( $w YZ