From cb2a0c9bf455c76f30da589a8b89e421016b9e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=A4=A7=E5=8F=8C?= <2250785099@qq.com> Date: Wed, 13 Mar 2024 02:15:11 -0400 Subject: [PATCH 1/2] update to 1.21.2 --- 0004-downstream-Remove-3des-support.patch | 6228 ----------------- ...-variable-for-default-PKCS-11-module.patch | 201 - ...asonable-supportedCMSTypes-in-PKINIT.patch | 159 - 0009-Simplify-plugin-loading-code.patch | 622 -- 0012-Add-and-use-ts_interval-helper.patch | 239 - 0017-Add-PAC-full-checksums.patch | 672 -- krb5-1.20.2.tar.gz | Bin 8662259 -> 0 bytes krb5-1.21.2.tar.gz | Bin 0 -> 43612160 bytes krb5.spec | 11 +- 9 files changed, 4 insertions(+), 8128 deletions(-) delete mode 100644 0004-downstream-Remove-3des-support.patch delete mode 100644 0007-Add-configure-variable-for-default-PKCS-11-module.patch delete mode 100644 0008-Set-reasonable-supportedCMSTypes-in-PKINIT.patch delete mode 100644 0009-Simplify-plugin-loading-code.patch delete mode 100644 0012-Add-and-use-ts_interval-helper.patch delete mode 100644 0017-Add-PAC-full-checksums.patch delete mode 100644 krb5-1.20.2.tar.gz create mode 100644 krb5-1.21.2.tar.gz diff --git a/0004-downstream-Remove-3des-support.patch b/0004-downstream-Remove-3des-support.patch deleted file mode 100644 index 4ec3a0f..0000000 --- a/0004-downstream-Remove-3des-support.patch +++ /dev/null @@ -1,6228 +0,0 @@ -From 7b40250066bbcc529b5348b68199c58fbad82376 Mon Sep 17 00:00:00 2001 -From: Robbie Harwood -Date: Tue, 26 Mar 2019 18:51:10 -0400 -Subject: [PATCH] [downstream] Remove 3des support - -Completely remove support for all DES3 enctypes (des3-cbc-raw, -des3-hmac-sha1, des3-cbc-sha1-kd). Update all tests and documentation -to user other enctypes. Mark the 3DES enctypes UNSUPPORTED and retain -their constants. - -Last-updated: 1.20-final -[antorres@redhat.com: remove diffs for: - - src/kdamin/testing/proto/kdc.conf.proto - - src/lib/kadm5/unit-test/api.current/chpass-principal-v2.exp - - src/lib/kadm5/unit-test/api.current/get-principal-v2.exp - - src/lib/kadm5/unit-test/api.current/randkey-principal-v2.exp - since they were removed by Remove-TCL-based-libkadm5-API-tests.patch] -[jrische@redhat.com: restore supportedCMSTypes (not using 3DES any more): - - src/plugins/preauth/pkinit/pkinit_crypto.h - - src/plugins/preauth/pkinit/pkinit_crypto_openssl.c - - src/plugins/preauth/pkinit/pkinit_clnt.c] ---- - doc/admin/advanced/retiring-des.rst | 11 + - doc/admin/conf_files/kdc_conf.rst | 7 +- - doc/admin/enctypes.rst | 10 +- - doc/admin/troubleshoot.rst | 9 +- - doc/appdev/refs/macros/index.rst | 1 - - doc/conf.py | 2 +- - doc/mitK5features.rst | 2 +- - src/Makefile.in | 4 +- - src/configure.ac | 4 +- - src/include/krb5/krb5.hin | 10 +- - src/kdc/kdc_util.c | 4 - - src/lib/crypto/Makefile.in | 8 +- - src/lib/crypto/builtin/Makefile.in | 6 +- - src/lib/crypto/builtin/des/ISSUES | 13 - - src/lib/crypto/builtin/des/Makefile.in | 82 ---- - src/lib/crypto/builtin/des/d3_aead.c | 137 ------ - src/lib/crypto/builtin/des/d3_kysched.c | 55 --- - src/lib/crypto/builtin/des/deps | 146 ------- - src/lib/crypto/builtin/des/des_int.h | 285 ------------- - src/lib/crypto/builtin/des/des_keys.c | 38 -- - src/lib/crypto/builtin/des/destest.c | 240 ----------- - src/lib/crypto/builtin/des/doc/libdes.doc | 208 --------- - src/lib/crypto/builtin/des/f_aead.c | 177 -------- - src/lib/crypto/builtin/des/f_cbc.c | 256 ------------ - src/lib/crypto/builtin/des/f_cksum.c | 141 ------- - src/lib/crypto/builtin/des/f_parity.c | 64 --- - src/lib/crypto/builtin/des/f_sched.c | 363 ---------------- - src/lib/crypto/builtin/des/f_tables.c | 375 ----------------- - src/lib/crypto/builtin/des/f_tables.h | 285 ------------- - src/lib/crypto/builtin/des/key_sched.c | 66 --- - src/lib/crypto/builtin/des/keytest.data | 171 -------- - src/lib/crypto/builtin/des/t_verify.c | 395 ------------------ - src/lib/crypto/builtin/des/weak_key.c | 90 ---- - .../crypto/builtin/enc_provider/Makefile.in | 5 +- - src/lib/crypto/builtin/enc_provider/deps | 11 - - src/lib/crypto/builtin/enc_provider/des3.c | 109 ----- - src/lib/crypto/crypto_tests/t_cf2.expected | 1 - - src/lib/crypto/crypto_tests/t_cf2.in | 5 - - src/lib/crypto/crypto_tests/t_cksums.c | 10 - - src/lib/crypto/crypto_tests/t_decrypt.c | 57 --- - src/lib/crypto/crypto_tests/t_derive.c | 36 -- - src/lib/crypto/crypto_tests/t_encrypt.c | 1 - - src/lib/crypto/crypto_tests/t_short.c | 1 - - src/lib/crypto/crypto_tests/t_str2key.c | 52 --- - src/lib/crypto/crypto_tests/vectors.c | 4 - - src/lib/crypto/krb/Makefile.in | 3 - - src/lib/crypto/krb/cksumtypes.c | 6 - - src/lib/crypto/krb/crypto_int.h | 11 - - src/lib/crypto/krb/default_state.c | 10 - - src/lib/crypto/krb/enctype_util.c | 3 + - src/lib/crypto/krb/etypes.c | 21 - - src/lib/crypto/krb/prf_des.c | 47 --- - src/lib/crypto/krb/random_to_key.c | 28 -- - src/lib/crypto/libk5crypto.exports | 1 - - src/lib/crypto/openssl/Makefile.in | 8 +- - src/lib/crypto/openssl/des/Makefile.in | 20 - - src/lib/crypto/openssl/des/deps | 14 - - src/lib/crypto/openssl/des/des_keys.c | 39 -- - .../crypto/openssl/enc_provider/Makefile.in | 3 - - src/lib/crypto/openssl/enc_provider/deps | 11 - - src/lib/crypto/openssl/enc_provider/des3.c | 188 --------- - src/lib/crypto/openssl/kdf.c | 2 - - src/lib/gssapi/krb5/accept_sec_context.c | 1 - - src/lib/gssapi/krb5/gssapiP_krb5.h | 6 +- - src/lib/gssapi/krb5/k5seal.c | 35 +- - src/lib/gssapi/krb5/k5sealiov.c | 27 +- - src/lib/gssapi/krb5/k5unseal.c | 88 ++-- - src/lib/gssapi/krb5/k5unsealiov.c | 38 +- - src/lib/gssapi/krb5/util_crypt.c | 11 - - src/lib/krb5/krb/init_ctx.c | 3 - - src/lib/krb5/krb/s4u_creds.c | 2 - - src/lib/krb5/krb/t_etypes.c | 48 +-- - src/lib/krb5/os/t_trace.c | 4 +- - src/lib/krb5/os/t_trace.ref | 2 +- - src/plugins/preauth/pkinit/pkcs11.h | 6 +- - src/plugins/preauth/pkinit/pkinit_crypto.h | 10 +- - src/plugins/preauth/pkinit/pkinit_kdf_test.c | 30 -- - src/plugins/preauth/spake/t_vectors.c | 25 -- - src/tests/gssapi/t_enctypes.py | 33 +- - src/tests/gssapi/t_invalid.c | 12 - - src/tests/gssapi/t_pcontok.c | 16 +- - src/tests/gssapi/t_prf.c | 7 - - src/tests/t_authdata.py | 2 +- - src/tests/t_etype_info.py | 18 +- - src/tests/t_keyrollover.py | 8 +- - src/tests/t_mkey.py | 35 -- - src/tests/t_salt.py | 5 +- - src/util/k5test.py | 7 - - .../leash/htmlhelp/html/Encryption_Types.htm | 13 - - 89 files changed, 151 insertions(+), 4713 deletions(-) - delete mode 100644 src/lib/crypto/builtin/des/ISSUES - delete mode 100644 src/lib/crypto/builtin/des/Makefile.in - delete mode 100644 src/lib/crypto/builtin/des/d3_aead.c - delete mode 100644 src/lib/crypto/builtin/des/d3_kysched.c - delete mode 100644 src/lib/crypto/builtin/des/deps - delete mode 100644 src/lib/crypto/builtin/des/des_int.h - delete mode 100644 src/lib/crypto/builtin/des/des_keys.c - delete mode 100644 src/lib/crypto/builtin/des/destest.c - delete mode 100644 src/lib/crypto/builtin/des/doc/libdes.doc - delete mode 100644 src/lib/crypto/builtin/des/f_aead.c - delete mode 100644 src/lib/crypto/builtin/des/f_cbc.c - delete mode 100644 src/lib/crypto/builtin/des/f_cksum.c - delete mode 100644 src/lib/crypto/builtin/des/f_parity.c - delete mode 100644 src/lib/crypto/builtin/des/f_sched.c - delete mode 100644 src/lib/crypto/builtin/des/f_tables.c - delete mode 100644 src/lib/crypto/builtin/des/f_tables.h - delete mode 100644 src/lib/crypto/builtin/des/key_sched.c - delete mode 100644 src/lib/crypto/builtin/des/keytest.data - delete mode 100644 src/lib/crypto/builtin/des/t_verify.c - delete mode 100644 src/lib/crypto/builtin/des/weak_key.c - delete mode 100644 src/lib/crypto/builtin/enc_provider/des3.c - delete mode 100644 src/lib/crypto/krb/prf_des.c - delete mode 100644 src/lib/crypto/openssl/des/Makefile.in - delete mode 100644 src/lib/crypto/openssl/des/deps - delete mode 100644 src/lib/crypto/openssl/des/des_keys.c - delete mode 100644 src/lib/crypto/openssl/enc_provider/des3.c - -diff --git a/doc/admin/advanced/retiring-des.rst b/doc/admin/advanced/retiring-des.rst -index 38f76d3f45..d5e3c30c04 100644 ---- a/doc/admin/advanced/retiring-des.rst -+++ b/doc/admin/advanced/retiring-des.rst -@@ -10,6 +10,13 @@ ability have rendered DES vulnerable to brute force attacks on its 56-bit - keyspace. As such, it is now considered insecure and should not be - used (:rfc:`6649`). - -+In 1999, MIT krb5 added support for Triple-DES (3DES) encryption types. -+However, due to weakenings of DES and other security concerns, it is now also -+considered insecure and should not be used (:rfc:`8429`). AES encryption -+types were added to MIT in 2003, meaning that the number of deployments with -+3DES as the strongest encryption type is hopefully small. The rotation -+procedure described herein works for both DES and 3DES. -+ - History - ------- - -@@ -27,6 +34,10 @@ and removed DES (single-DES) support in release 1.18. As a - consequence, a release prior to 1.18 is required to perform these - migrations. - -+3DES (a flagged deprecated encryption type) was also removed downstream by -+rharwood@redhat.com starting in 1.18; likewise, a pre-1.18 release is required -+to perform these migrations. -+ - Types of keys - ------------- - -diff --git a/doc/admin/conf_files/kdc_conf.rst b/doc/admin/conf_files/kdc_conf.rst -index 74a0a2acef..846c58ed82 100644 ---- a/doc/admin/conf_files/kdc_conf.rst -+++ b/doc/admin/conf_files/kdc_conf.rst -@@ -854,8 +854,6 @@ Encryption types marked as "weak" and "deprecated" are available for - compatibility but not recommended for use. - - ==================================================== ========================================================= --des3-cbc-raw Triple DES cbc mode raw (weak) --des3-cbc-sha1 des3-hmac-sha1 des3-cbc-sha1-kd Triple DES cbc mode with HMAC/sha1 (deprecated) - aes256-cts-hmac-sha1-96 aes256-cts aes256-sha1 AES-256 CTS mode with 96-bit SHA-1 HMAC - aes128-cts-hmac-sha1-96 aes128-cts aes128-sha1 AES-128 CTS mode with 96-bit SHA-1 HMAC - aes256-cts-hmac-sha384-192 aes256-sha2 AES-256 CTS mode with 192-bit SHA-384 HMAC -@@ -864,7 +862,6 @@ arcfour-hmac rc4-hmac arcfour-hmac-md5 RC4 with HMAC/MD5 (deprecat - arcfour-hmac-exp rc4-hmac-exp arcfour-hmac-md5-exp Exportable RC4 with HMAC/MD5 (weak) - camellia256-cts-cmac camellia256-cts Camellia-256 CTS mode with CMAC - camellia128-cts-cmac camellia128-cts Camellia-128 CTS mode with CMAC --des3 The triple DES family: des3-cbc-sha1 - aes The AES family: aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, aes256-cts-hmac-sha384-192, and aes128-cts-hmac-sha256-128 - rc4 The RC4 family: arcfour-hmac - camellia The Camellia family: camellia256-cts-cmac and camellia128-cts-cmac -@@ -876,8 +873,8 @@ from the current list by prefixing them with a minus sign ("-"). - Types or families can be prefixed with a plus sign ("+") for symmetry; - it has the same meaning as just listing the type or family. For - example, "``DEFAULT -rc4``" would be the default set of encryption --types with RC4 types removed, and "``des3 DEFAULT``" would be the --default set of encryption types with triple DES types moved to the -+types with RC4 types removed, and "``aes128-sha2 DEFAULT``" would be -+the default set of encryption types with aes128-sha2 moved to the - front. - - While **aes128-cts** and **aes256-cts** are supported for all Kerberos -diff --git a/doc/admin/enctypes.rst b/doc/admin/enctypes.rst -index 694922c0d9..c4d5499d3b 100644 ---- a/doc/admin/enctypes.rst -+++ b/doc/admin/enctypes.rst -@@ -129,7 +129,7 @@ enctype weak? krb5 Windows - des-cbc-crc weak <1.18 >=2000 - des-cbc-md4 weak <1.18 ? - des-cbc-md5 weak <1.18 >=2000 --des3-cbc-sha1 deprecated >=1.1 none -+des3-cbc-sha1 deprecated <1.18 none - arcfour-hmac deprecated >=1.3 >=2000 - arcfour-hmac-exp weak >=1.3 >=2000 - aes128-cts-hmac-sha1-96 >=1.3 >=Vista -@@ -148,9 +148,11 @@ default. - krb5 releases 1.17 and later flag deprecated encryption types - (including ``des3-cbc-sha1`` and ``arcfour-hmac``) in KDC logs and - kadmin output. krb5 release 1.19 issues a warning during initial --authentication if ``des3-cbc-sha1`` is used. Future releases will --disable ``des3-cbc-sha1`` by default and eventually remove support for --it. -+authentication if ``des3-cbc-sha1`` is used. -+ -+krb5 releases 1.18 and later remove single-DES and 3DES -+(downstream-only patch) enctype support. Microsoft Windows never -+supported 3DES. - - - Migrating away from older encryption types -diff --git a/doc/admin/troubleshoot.rst b/doc/admin/troubleshoot.rst -index ade5e1f87a..e4dc54f7e5 100644 ---- a/doc/admin/troubleshoot.rst -+++ b/doc/admin/troubleshoot.rst -@@ -73,11 +73,10 @@ credential verification failed: KDC has no support for encryption type - ...................................................................... - - This most commonly happens when trying to use a principal with only --DES keys, in a release (MIT krb5 1.7 or later) which disables DES by --default. DES encryption is considered weak due to its inadequate key --size. If you cannot migrate away from its use, you can re-enable DES --by adding ``allow_weak_crypto = true`` to the :ref:`libdefaults` --section of :ref:`krb5.conf(5)`. -+DES/3DES keys, in a release (MIT krb5 1.7 or later) which disables DES -+by default. DES encryption is considered weak due to its inadequate -+key size and has been removed upstream; 3DES is not recommended, and -+has been removed downstream by rharwood@redhat.com. - - - .. _err_cert_chain_cert_expired: -diff --git a/doc/appdev/refs/macros/index.rst b/doc/appdev/refs/macros/index.rst -index a0d4f26701..5f34dea5e8 100644 ---- a/doc/appdev/refs/macros/index.rst -+++ b/doc/appdev/refs/macros/index.rst -@@ -36,7 +36,6 @@ Public - CKSUMTYPE_HMAC_SHA1_96_AES256.rst - CKSUMTYPE_HMAC_SHA256_128_AES128.rst - CKSUMTYPE_HMAC_SHA384_192_AES256.rst -- CKSUMTYPE_HMAC_SHA1_DES3.rst - CKSUMTYPE_MD5_HMAC_ARCFOUR.rst - CKSUMTYPE_NIST_SHA.rst - CKSUMTYPE_RSA_MD4.rst -diff --git a/doc/conf.py b/doc/conf.py -index fa0eb80f1f..12168fa695 100644 ---- a/doc/conf.py -+++ b/doc/conf.py -@@ -278,7 +278,7 @@ else: - rst_epilog += ''' - .. |krb5conf| replace:: ``/etc/krb5.conf`` - .. |defkeysalts| replace:: ``aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal`` --.. |defetypes| replace:: ``aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac`` -+.. |defetypes| replace:: ``aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac`` - .. |defmkey| replace:: ``aes256-cts-hmac-sha1-96`` - .. |copy| unicode:: U+000A9 - ''' -diff --git a/doc/mitK5features.rst b/doc/mitK5features.rst -index ca2d6ef117..100c64a1c1 100644 ---- a/doc/mitK5features.rst -+++ b/doc/mitK5features.rst -@@ -37,7 +37,7 @@ Database backends: LDAP, DB2, LMDB - - krb4 support: Kerberos 5 release < 1.8 - --DES support: Kerberos 5 release < 1.18 (See :ref:`retiring-des`) -+DES/3DES support: Kerberos 5 release < 1.18 (See :ref:`retiring-des`) - - Interoperability - ---------------- -diff --git a/src/Makefile.in b/src/Makefile.in -index 8f14e9bf2c..ba3bb18eec 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -130,7 +130,7 @@ WINMAKEFILES=Makefile \ - lib\Makefile lib\crypto\Makefile lib\crypto\krb\Makefile \ - lib\crypto\builtin\Makefile lib\crypto\builtin\aes\Makefile \ - lib\crypto\builtin\enc_provider\Makefile \ -- lib\crypto\builtin\des\Makefile lib\crypto\builtin\md5\Makefile \ -+ lib\crypto\builtin\md5\Makefile \ - lib\crypto\builtin\camellia\Makefile lib\crypto\builtin\md4\Makefile \ - lib\crypto\builtin\hash_provider\Makefile \ - lib\crypto\builtin\sha2\Makefile lib\crypto\builtin\sha1\Makefile \ -@@ -202,8 +202,6 @@ WINMAKEFILES=Makefile \ - ##DOS## $(WCONFIG) config < $@.in > $@ - ##DOS##lib\crypto\builtin\enc_provider\Makefile: lib\crypto\builtin\enc_provider\Makefile.in $(MKFDEP) - ##DOS## $(WCONFIG) config < $@.in > $@ --##DOS##lib\crypto\builtin\des\Makefile: lib\crypto\builtin\des\Makefile.in $(MKFDEP) --##DOS## $(WCONFIG) config < $@.in > $@ - ##DOS##lib\crypto\builtin\md5\Makefile: lib\crypto\builtin\md5\Makefile.in $(MKFDEP) - ##DOS## $(WCONFIG) config < $@.in > $@ - ##DOS##lib\crypto\builtin\camellia\Makefile: lib\crypto\builtin\camellia\Makefile.in $(MKFDEP) -diff --git a/src/configure.ac b/src/configure.ac -index 40545f2bfc..8dc864718d 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -1489,12 +1489,12 @@ V5_AC_OUTPUT_MAKEFILE(. - lib lib/kdb - - lib/crypto lib/crypto/krb lib/crypto/crypto_tests -- lib/crypto/builtin lib/crypto/builtin/des -+ lib/crypto/builtin - lib/crypto/builtin/aes lib/crypto/builtin/camellia - lib/crypto/builtin/md4 lib/crypto/builtin/md5 - lib/crypto/builtin/sha1 lib/crypto/builtin/sha2 - lib/crypto/builtin/enc_provider lib/crypto/builtin/hash_provider -- lib/crypto/openssl lib/crypto/openssl/des -+ lib/crypto/openssl - lib/crypto/openssl/enc_provider lib/crypto/openssl/hash_provider - - lib/krb5 lib/krb5/error_tables lib/krb5/asn.1 lib/krb5/ccache -diff --git a/src/include/krb5/krb5.hin b/src/include/krb5/krb5.hin -index 7e1dea2cbf..fb9f2a366c 100644 ---- a/src/include/krb5/krb5.hin -+++ b/src/include/krb5/krb5.hin -@@ -426,8 +426,8 @@ typedef struct _krb5_crypto_iov { - #define ENCTYPE_DES_CBC_MD4 0x0002 /**< @deprecated no longer supported */ - #define ENCTYPE_DES_CBC_MD5 0x0003 /**< @deprecated no longer supported */ - #define ENCTYPE_DES_CBC_RAW 0x0004 /**< @deprecated no longer supported */ --#define ENCTYPE_DES3_CBC_SHA 0x0005 /**< @deprecated DES-3 cbc with SHA1 */ --#define ENCTYPE_DES3_CBC_RAW 0x0006 /**< @deprecated DES-3 cbc mode raw */ -+#define ENCTYPE_DES3_CBC_SHA 0x0005 /**< @deprecated no longer supported */ -+#define ENCTYPE_DES3_CBC_RAW 0x0006 /**< @deprecated no longer supported */ - #define ENCTYPE_DES_HMAC_SHA1 0x0008 /**< @deprecated no longer supported */ - /* PKINIT */ - #define ENCTYPE_DSA_SHA1_CMS 0x0009 /**< DSA with SHA1, CMS signature */ -@@ -436,9 +436,9 @@ typedef struct _krb5_crypto_iov { - #define ENCTYPE_RC2_CBC_ENV 0x000c /**< RC2 cbc mode, CMS enveloped data */ - #define ENCTYPE_RSA_ENV 0x000d /**< RSA encryption, CMS enveloped data */ - #define ENCTYPE_RSA_ES_OAEP_ENV 0x000e /**< RSA w/OEAP encryption, CMS enveloped data */ --#define ENCTYPE_DES3_CBC_ENV 0x000f /**< DES-3 cbc mode, CMS enveloped data */ -+#define ENCTYPE_DES3_CBC_ENV 0x000f /**< @deprecated no longer supported */ - --#define ENCTYPE_DES3_CBC_SHA1 0x0010 -+#define ENCTYPE_DES3_CBC_SHA1 0x0010 /**< @deprecated removed */ - #define ENCTYPE_AES128_CTS_HMAC_SHA1_96 0x0011 /**< RFC 3962 */ - #define ENCTYPE_AES256_CTS_HMAC_SHA1_96 0x0012 /**< RFC 3962 */ - #define ENCTYPE_AES128_CTS_HMAC_SHA256_128 0x0013 /**< RFC 8009 */ -@@ -463,7 +463,7 @@ typedef struct _krb5_crypto_iov { - #define CKSUMTYPE_RSA_MD5 0x0007 - #define CKSUMTYPE_RSA_MD5_DES 0x0008 - #define CKSUMTYPE_NIST_SHA 0x0009 --#define CKSUMTYPE_HMAC_SHA1_DES3 0x000c -+#define CKSUMTYPE_HMAC_SHA1_DES3 0x000c /* @deprecated removed */ - #define CKSUMTYPE_SHA1 0x000e /**< RFC 3961 */ - #define CKSUMTYPE_HMAC_SHA1_96_AES128 0x000f /**< RFC 3962. Used with - ENCTYPE_AES128_CTS_HMAC_SHA1_96 */ -diff --git a/src/kdc/kdc_util.c b/src/kdc/kdc_util.c -index 9f2a67d189..b7a9aa4992 100644 ---- a/src/kdc/kdc_util.c -+++ b/src/kdc/kdc_util.c -@@ -1111,8 +1111,6 @@ enctype_name(krb5_enctype ktype, char *buf, size_t buflen) - name = "rsaEncryption-EnvOID"; - else if (ktype == ENCTYPE_RSA_ES_OAEP_ENV) - name = "id-RSAES-OAEP-EnvOID"; -- else if (ktype == ENCTYPE_DES3_CBC_ENV) -- name = "des-ede3-cbc-EnvOID"; - else - return krb5_enctype_to_name(ktype, FALSE, buf, buflen); - -@@ -1704,8 +1702,6 @@ krb5_boolean - enctype_requires_etype_info_2(krb5_enctype enctype) - { - switch(enctype) { -- case ENCTYPE_DES3_CBC_SHA1: -- case ENCTYPE_DES3_CBC_RAW: - case ENCTYPE_ARCFOUR_HMAC: - case ENCTYPE_ARCFOUR_HMAC_EXP : - return 0; -diff --git a/src/lib/crypto/Makefile.in b/src/lib/crypto/Makefile.in -index 10e8c74cf8..25c4f40cc3 100644 ---- a/src/lib/crypto/Makefile.in -+++ b/src/lib/crypto/Makefile.in -@@ -10,12 +10,12 @@ LIBMINOR=1 - RELDIR=crypto - - STOBJLISTS=krb/OBJS.ST \ -- builtin/OBJS.ST builtin/des/OBJS.ST \ -+ builtin/OBJS.ST \ - builtin/aes/OBJS.ST builtin/camellia/OBJS.ST \ - builtin/md4/OBJS.ST builtin/md5/OBJS.ST \ - builtin/sha1/OBJS.ST builtin/sha2/OBJS.ST \ - builtin/enc_provider/OBJS.ST builtin/hash_provider/OBJS.ST \ -- openssl/OBJS.ST openssl/des/OBJS.ST \ -+ openssl/OBJS.ST \ - openssl/enc_provider/OBJS.ST openssl/hash_provider/OBJS.ST - - SUBDIROBJLISTS=$(STOBJLISTS) -@@ -28,8 +28,8 @@ SHLIB_EXPDEPLIBS= $(SUPPORT_DEPLIB) - SHLIB_LDFLAGS= $(LDFLAGS) @SHLIB_RPATH_DIRS@ - - ##DOS##LIBNAME=$(OUTPRE)crypto.lib --##DOS##OBJFILEDEP=$(OUTPRE)krb.lst $(OUTPRE)aes.lst $(OUTPRE)enc_provider.lst $(OUTPRE)des.lst $(OUTPRE)md5.lst $(OUTPRE)camellia.lst $(OUTPRE)md4.lst $(OUTPRE)hash_provider.lst $(OUTPRE)sha2.lst $(OUTPRE)sha1.lst $(OUTPRE)builtin.lst --##DOS##OBJFILELIST=@$(OUTPRE)krb.lst @$(OUTPRE)aes.lst @$(OUTPRE)enc_provider.lst @$(OUTPRE)des.lst @$(OUTPRE)md5.lst @$(OUTPRE)camellia.lst @$(OUTPRE)md4.lst @$(OUTPRE)hash_provider.lst @$(OUTPRE)sha2.lst @$(OUTPRE)sha1.lst @$(OUTPRE)builtin.lst -+##DOS##OBJFILEDEP=$(OUTPRE)krb.lst $(OUTPRE)aes.lst $(OUTPRE)enc_provider.lst $(OUTPRE)md5.lst $(OUTPRE)camellia.lst $(OUTPRE)md4.lst $(OUTPRE)hash_provider.lst $(OUTPRE)sha2.lst $(OUTPRE)sha1.lst $(OUTPRE)builtin.lst -+##DOS##OBJFILELIST=@$(OUTPRE)krb.lst @$(OUTPRE)aes.lst @$(OUTPRE)enc_provider.lst @$(OUTPRE)md5.lst @$(OUTPRE)camellia.lst @$(OUTPRE)md4.lst @$(OUTPRE)hash_provider.lst @$(OUTPRE)sha2.lst @$(OUTPRE)sha1.lst @$(OUTPRE)builtin.lst - - all-unix: all-liblinks - install-unix: install-libs -diff --git a/src/lib/crypto/builtin/Makefile.in b/src/lib/crypto/builtin/Makefile.in -index daf19da195..c9e967c807 100644 ---- a/src/lib/crypto/builtin/Makefile.in -+++ b/src/lib/crypto/builtin/Makefile.in -@@ -1,6 +1,6 @@ - mydir=lib$(S)crypto$(S)builtin - BUILDTOP=$(REL)..$(S)..$(S).. --SUBDIRS=camellia des aes md4 md5 sha1 sha2 enc_provider hash_provider -+SUBDIRS=camellia aes md4 md5 sha1 sha2 enc_provider hash_provider - LOCALINCLUDES=-I$(srcdir)/../krb $(CRYPTO_IMPL_CFLAGS) - - ##DOS##BUILDTOP = ..\..\.. -@@ -25,7 +25,7 @@ SRCS=\ - $(srcdir)/kdf.c \ - $(srcdir)/pbkdf2.c - --STOBJLISTS= des/OBJS.ST md4/OBJS.ST \ -+STOBJLISTS= md4/OBJS.ST \ - md5/OBJS.ST sha1/OBJS.ST sha2/OBJS.ST \ - enc_provider/OBJS.ST \ - hash_provider/OBJS.ST \ -@@ -33,7 +33,7 @@ STOBJLISTS= des/OBJS.ST md4/OBJS.ST \ - camellia/OBJS.ST \ - OBJS.ST - --SUBDIROBJLISTS= des/OBJS.ST md4/OBJS.ST \ -+SUBDIROBJLISTS= md4/OBJS.ST \ - md5/OBJS.ST sha1/OBJS.ST sha2/OBJS.ST \ - enc_provider/OBJS.ST \ - hash_provider/OBJS.ST \ -diff --git a/src/lib/crypto/builtin/des/ISSUES b/src/lib/crypto/builtin/des/ISSUES -deleted file mode 100644 -index 1578911033..0000000000 ---- a/src/lib/crypto/builtin/des/ISSUES -+++ /dev/null -@@ -1,13 +0,0 @@ --Issues to be addressed for src/lib/crypto/des: -*- text -*- -- -- --"const" could be used in more places -- -- --Array types are used in calling interfaces. Under ANSI C, a value of --type "arraytype *" cannot be assigned to a variable of type "const --arraytype *", so we get compilation warnings. -- --Possible fix: Rewrite internal interfaces to not use arrays this way. --Provide external routines compatible with old API, but not using --const? -diff --git a/src/lib/crypto/builtin/des/Makefile.in b/src/lib/crypto/builtin/des/Makefile.in -deleted file mode 100644 -index 397ac87ed4..0000000000 ---- a/src/lib/crypto/builtin/des/Makefile.in -+++ /dev/null -@@ -1,82 +0,0 @@ --mydir=lib$(S)crypto$(S)builtin$(S)des --BUILDTOP=$(REL)..$(S)..$(S)..$(S).. --LOCALINCLUDES=-I$(srcdir)/../../krb $(CRYPTO_IMPL_CFLAGS) -- --##DOS##BUILDTOP = ..\..\..\.. --##DOS##PREFIXDIR = builtin\des --##DOS##OBJFILE = ..\..\$(OUTPRE)des.lst -- --STLIBOBJS=\ -- d3_aead.o \ -- d3_kysched.o \ -- des_keys.o \ -- f_aead.o \ -- f_cksum.o \ -- f_parity.o \ -- f_sched.o \ -- f_tables.o \ -- key_sched.o \ -- weak_key.o -- --OBJS= $(OUTPRE)d3_aead.$(OBJEXT) \ -- $(OUTPRE)d3_kysched.$(OBJEXT) \ -- $(OUTPRE)des_keys.$(OBJEXT) \ -- $(OUTPRE)f_aead.$(OBJEXT) \ -- $(OUTPRE)f_cksum.$(OBJEXT) \ -- $(OUTPRE)f_parity.$(OBJEXT) \ -- $(OUTPRE)f_sched.$(OBJEXT) \ -- $(OUTPRE)f_tables.$(OBJEXT) \ -- $(OUTPRE)key_sched.$(OBJEXT) \ -- $(OUTPRE)weak_key.$(OBJEXT) -- --SRCS= $(srcdir)/d3_aead.c \ -- $(srcdir)/d3_kysched.c \ -- $(srcdir)/des_keys.c \ -- $(srcdir)/f_aead.c \ -- $(srcdir)/f_cksum.c \ -- $(srcdir)/f_parity.c \ -- $(srcdir)/f_sched.c \ -- $(srcdir)/f_tables.c \ -- $(srcdir)/key_sched.c \ -- $(srcdir)/weak_key.c -- --EXTRADEPSRCS = $(srcdir)/destest.c $(srcdir)/f_cbc.c $(srcdir)/t_verify.c -- --##DOS##LIBOBJS = $(OBJS) -- --TOBJS = $(OUTPRE)key_sched.$(OBJEXT) $(OUTPRE)f_sched.$(OBJEXT) \ -- $(OUTPRE)f_cbc.$(OBJEXT) $(OUTPRE)f_tables.$(OBJEXT) \ -- $(OUTPRE)f_cksum.$(OBJEXT) -- --verify$(EXEEXT): t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ -- $(COM_ERR_DEPLIB) $(SUPPORT_DEPLIB) -- $(CC_LINK) -o $@ t_verify.$(OBJEXT) $(TOBJS) f_parity.$(OBJEXT) \ -- $(COM_ERR_LIB) $(SUPPORT_LIB) -- --destest$(EXEEXT): destest.$(OBJEXT) $(TOBJS) $(SUPPORT_DEPLIB) -- $(CC_LINK) -o $@ destest.$(OBJEXT) $(TOBJS) $(SUPPORT_LIB) -- --all-unix: all-libobjs -- --check-unix: check-unix-@CRYPTO_BUILTIN_TESTS@ --check-unix-no: --check-unix-yes: verify destest -- $(RUN_TEST) ./verify -z -- $(RUN_TEST) ./verify -m -- $(RUN_TEST) ./verify -- $(RUN_TEST) ./destest < $(srcdir)/keytest.data -- --includes: depend -- --depend: $(SRCS) -- --check-windows: -- --clean: -- $(RM) destest.$(OBJEXT) destest$(EXEEXT) verify$(EXEEXT) \ -- t_verify.$(OBJEXT) $(TOBJS) -- --clean-unix:: clean-libobjs -- --@libobj_frag@ -- -diff --git a/src/lib/crypto/builtin/des/d3_aead.c b/src/lib/crypto/builtin/des/d3_aead.c -deleted file mode 100644 -index fb83f73b43..0000000000 ---- a/src/lib/crypto/builtin/des/d3_aead.c -+++ /dev/null -@@ -1,137 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* -- * Copyright (C) 2008 by the Massachusetts Institute of Technology. -- * Copyright 1995 by Richard P. Basch. All Rights Reserved. -- * Copyright 1995 by Lehman Brothers, Inc. All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of Richard P. Basch, Lehman Brothers and M.I.T. not be used -- * in advertising or publicity pertaining to distribution of the software -- * without specific, written prior permission. Richard P. Basch, -- * Lehman Brothers and M.I.T. make no representations about the suitability -- * of this software for any purpose. It is provided "as is" without -- * express or implied warranty. -- */ -- --#include "crypto_int.h" --#include "des_int.h" --#include "f_tables.h" -- --#ifdef K5_BUILTIN_DES -- --void --krb5int_des3_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule ks1, -- const mit_des_key_schedule ks2, -- const mit_des_key_schedule ks3, -- mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp1, *kp2, *kp3; -- const unsigned char *ip; -- struct iov_cursor cursor; -- unsigned char block[MIT_DES_BLOCK_LENGTH]; -- -- /* Get key pointers here. These won't need to be reinitialized. */ -- kp1 = (const unsigned DES_INT32 *)ks1; -- kp2 = (const unsigned DES_INT32 *)ks2; -- kp3 = (const unsigned DES_INT32 *)ks3; -- -- /* Initialize left and right with the contents of the initial vector. */ -- ip = (ivec != NULL) ? ivec : mit_des_zeroblock; -- left = load_32_be(ip); -- right = load_32_be(ip + 4); -- -- k5_iov_cursor_init(&cursor, data, num_data, MIT_DES_BLOCK_LENGTH, FALSE); -- while (k5_iov_cursor_get(&cursor, block)) { -- /* xor this block with the previous ciphertext. */ -- left ^= load_32_be(block); -- right ^= load_32_be(block + 4); -- -- /* Encrypt what we have and store it back into block. */ -- DES_DO_ENCRYPT(left, right, kp1); -- DES_DO_DECRYPT(left, right, kp2); -- DES_DO_ENCRYPT(left, right, kp3); -- store_32_be(left, block); -- store_32_be(right, block + 4); -- -- k5_iov_cursor_put(&cursor, block); -- } -- -- if (ivec != NULL) { -- store_32_be(left, ivec); -- store_32_be(right, ivec + 4); -- } --} -- --void --krb5int_des3_cbc_decrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule ks1, -- const mit_des_key_schedule ks2, -- const mit_des_key_schedule ks3, -- mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp1, *kp2, *kp3; -- const unsigned char *ip; -- unsigned DES_INT32 ocipherl, ocipherr; -- unsigned DES_INT32 cipherl, cipherr; -- struct iov_cursor cursor; -- unsigned char block[MIT_DES_BLOCK_LENGTH]; -- -- /* Get key pointers here. These won't need to be reinitialized. */ -- kp1 = (const unsigned DES_INT32 *)ks1; -- kp2 = (const unsigned DES_INT32 *)ks2; -- kp3 = (const unsigned DES_INT32 *)ks3; -- -- /* -- * Decrypting is harder than encrypting because of -- * the necessity of remembering a lot more things. -- * Should think about this a little more... -- */ -- -- /* Prime the old cipher with ivec.*/ -- ip = (ivec != NULL) ? ivec : mit_des_zeroblock; -- ocipherl = load_32_be(ip); -- ocipherr = load_32_be(ip + 4); -- -- k5_iov_cursor_init(&cursor, data, num_data, MIT_DES_BLOCK_LENGTH, FALSE); -- while (k5_iov_cursor_get(&cursor, block)) { -- /* Split this block into left and right. */ -- cipherl = left = load_32_be(block); -- cipherr = right = load_32_be(block + 4); -- -- /* Decrypt and xor with the old cipher to get plain text. */ -- DES_DO_DECRYPT(left, right, kp3); -- DES_DO_ENCRYPT(left, right, kp2); -- DES_DO_DECRYPT(left, right, kp1); -- left ^= ocipherl; -- right ^= ocipherr; -- -- /* Store the encrypted halves back into block. */ -- store_32_be(left, block); -- store_32_be(right, block + 4); -- -- /* Save current cipher block halves. */ -- ocipherl = cipherl; -- ocipherr = cipherr; -- -- k5_iov_cursor_put(&cursor, block); -- } -- -- if (ivec != NULL) { -- store_32_be(ocipherl, ivec); -- store_32_be(ocipherr, ivec + 4); -- } --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/d3_kysched.c b/src/lib/crypto/builtin/des/d3_kysched.c -deleted file mode 100644 -index 55fb9449b5..0000000000 ---- a/src/lib/crypto/builtin/des/d3_kysched.c -+++ /dev/null -@@ -1,55 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* -- * Copyright 1995 by Richard P. Basch. All Rights Reserved. -- * Copyright 1995 by Lehman Brothers, Inc. All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of Richard P. Basch, Lehman Brothers and M.I.T. not be used -- * in advertising or publicity pertaining to distribution of the software -- * without specific, written prior permission. Richard P. Basch, -- * Lehman Brothers and M.I.T. make no representations about the suitability -- * of this software for any purpose. It is provided "as is" without -- * express or implied warranty. -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES -- --int --mit_des3_key_sched(mit_des3_cblock k, mit_des3_key_schedule schedule) --{ -- mit_des_make_key_sched(k[0],schedule[0]); -- mit_des_make_key_sched(k[1],schedule[1]); -- mit_des_make_key_sched(k[2],schedule[2]); -- -- if (!mit_des_check_key_parity(k[0])) /* bad parity --> return -1 */ -- return(-1); -- if (mit_des_is_weak_key(k[0])) -- return(-2); -- -- if (!mit_des_check_key_parity(k[1])) -- return(-1); -- if (mit_des_is_weak_key(k[1])) -- return(-2); -- -- if (!mit_des_check_key_parity(k[2])) -- return(-1); -- if (mit_des_is_weak_key(k[2])) -- return(-2); -- -- /* if key was good, return 0 */ -- return 0; --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/deps b/src/lib/crypto/builtin/des/deps -deleted file mode 100644 -index 1c1239d696..0000000000 ---- a/src/lib/crypto/builtin/des/deps -+++ /dev/null -@@ -1,146 +0,0 @@ --# --# Generated makefile dependencies follow. --# --d3_aead.so d3_aead.po $(OUTPRE)d3_aead.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- d3_aead.c des_int.h f_tables.h --d3_kysched.so d3_kysched.po $(OUTPRE)d3_kysched.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h d3_kysched.c des_int.h --des_keys.so des_keys.po $(OUTPRE)des_keys.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h des_keys.c --f_aead.so f_aead.po $(OUTPRE)f_aead.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- des_int.h f_aead.c f_tables.h --f_cksum.so f_cksum.po $(OUTPRE)f_cksum.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- des_int.h f_cksum.c f_tables.h --f_parity.so f_parity.po $(OUTPRE)f_parity.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h f_parity.c --f_sched.so f_sched.po $(OUTPRE)f_sched.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- des_int.h f_sched.c --f_tables.so f_tables.po $(OUTPRE)f_tables.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h f_tables.c \ -- f_tables.h --key_sched.so key_sched.po $(OUTPRE)key_sched.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h key_sched.c --weak_key.so weak_key.po $(OUTPRE)weak_key.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h weak_key.c --destest.so destest.po $(OUTPRE)destest.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h destest.c --f_cbc.so f_cbc.po $(OUTPRE)f_cbc.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_int.h f_cbc.c \ -- f_tables.h --t_verify.so t_verify.po $(OUTPRE)t_verify.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- des_int.h t_verify.c -diff --git a/src/lib/crypto/builtin/des/des_int.h b/src/lib/crypto/builtin/des/des_int.h -deleted file mode 100644 -index f8dc6b296a..0000000000 ---- a/src/lib/crypto/builtin/des/des_int.h -+++ /dev/null -@@ -1,285 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/des_int.h */ --/* -- * Copyright 1987, 1988, 1990, 2002 by the Massachusetts Institute of -- * Technology. All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ --/* -- * Copyright (C) 1998 by the FundsXpress, INC. -- * -- * All rights reserved. -- * -- * Export of this software from the United States of America may require -- * a specific license from the United States Government. It is the -- * responsibility of any person or organization contemplating export to -- * obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of FundsXpress. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. FundsXpress makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- */ -- --/* Private include file for the Data Encryption Standard library. */ -- --/* only do the whole thing once */ --#ifndef DES_INTERNAL_DEFS --#define DES_INTERNAL_DEFS -- --#include "k5-int.h" --/* -- * Begin "mit-des.h" -- */ --#ifndef KRB5_MIT_DES__ --#define KRB5_MIT_DES__ -- --#if defined(__MACH__) && defined(__APPLE__) --#include --#include --#if TARGET_RT_MAC_CFM --#error "Use KfM 4.0 SDK headers for CFM compilation." --#endif --#if defined(DEPRECATED_IN_MAC_OS_X_VERSION_10_5) && !defined(KRB5_SUPRESS_DEPRECATED_WARNINGS) --#define KRB5INT_DES_DEPRECATED DEPRECATED_IN_MAC_OS_X_VERSION_10_5 --#endif --#endif /* defined(__MACH__) && defined(__APPLE__) */ -- --/* Macro to add deprecated attribute to DES types and functions */ --/* Currently only defined on macOS 10.5 and later. */ --#ifndef KRB5INT_DES_DEPRECATED --#define KRB5INT_DES_DEPRECATED --#endif -- --#include -- --#if UINT_MAX >= 0xFFFFFFFFUL --#define DES_INT32 int --#define DES_UINT32 unsigned int --#else --#define DES_INT32 long --#define DES_UINT32 unsigned long --#endif -- --typedef unsigned char des_cblock[8] /* crypto-block size */ --KRB5INT_DES_DEPRECATED; -- --/* -- * Key schedule. -- * -- * This used to be -- * -- * typedef struct des_ks_struct { -- * union { DES_INT32 pad; des_cblock _;} __; -- * } des_key_schedule[16]; -- * -- * but it would cause trouble if DES_INT32 were ever more than 4 -- * bytes. The reason is that all the encryption functions cast it to -- * (DES_INT32 *), and treat it as if it were DES_INT32[32]. If -- * 2*sizeof(DES_INT32) is ever more than sizeof(des_cblock), the -- * caller-allocated des_key_schedule will be overflowed by the key -- * scheduling functions. We can't assume that every platform will -- * have an exact 32-bit int, and nothing should be looking inside a -- * des_key_schedule anyway. -- */ --typedef struct des_ks_struct { DES_INT32 _[2]; } des_key_schedule[16] --KRB5INT_DES_DEPRECATED; -- --typedef des_cblock mit_des_cblock; --typedef des_key_schedule mit_des_key_schedule; -- --/* Triple-DES structures */ --typedef mit_des_cblock mit_des3_cblock[3]; --typedef mit_des_key_schedule mit_des3_key_schedule[3]; -- --#define MIT_DES_ENCRYPT 1 --#define MIT_DES_DECRYPT 0 -- --typedef struct mit_des_ran_key_seed { -- krb5_encrypt_block eblock; -- krb5_data sequence; --} mit_des_random_state; -- --/* the first byte of the key is already in the keyblock */ -- --#define MIT_DES_BLOCK_LENGTH (8*sizeof(krb5_octet)) --/* This used to be 8*sizeof(krb5_octet) */ --#define MIT_DES_KEYSIZE 8 -- --#define MIT_DES_CBC_CKSUM_LENGTH (4*sizeof(krb5_octet)) -- --#endif /* KRB5_MIT_DES__ */ --/* -- * End "mit-des.h" -- */ -- --/* afsstring2key.c */ --krb5_error_code mit_afs_string_to_key(krb5_keyblock *keyblock, -- const krb5_data *data, -- const krb5_data *salt); --char *mit_afs_crypt(const char *pw, const char *salt, char *iobuf); -- --/* f_cksum.c */ --unsigned long mit_des_cbc_cksum(const krb5_octet *, krb5_octet *, -- unsigned long, const mit_des_key_schedule, -- const krb5_octet *); -- --/* f_cbc.c (used by test programs) */ --int --mit_des_cbc_encrypt(const mit_des_cblock *in, mit_des_cblock *out, -- unsigned long length, const mit_des_key_schedule schedule, -- const mit_des_cblock ivec, int enc); -- --#define mit_des_zeroblock krb5int_c_mit_des_zeroblock --extern const mit_des_cblock mit_des_zeroblock; -- --/* fin_rndkey.c */ --krb5_error_code mit_des_finish_random_key(const krb5_encrypt_block *, -- krb5_pointer *); -- --/* finish_key.c */ --krb5_error_code mit_des_finish_key(krb5_encrypt_block *); -- --/* init_rkey.c */ --krb5_error_code mit_des_init_random_key(const krb5_encrypt_block *, -- const krb5_keyblock *, -- krb5_pointer *); -- --/* key_parity.c */ --void mit_des_fixup_key_parity(mit_des_cblock); --int mit_des_check_key_parity(mit_des_cblock); -- --/* key_sched.c */ --int mit_des_key_sched(mit_des_cblock, mit_des_key_schedule); -- --/* process_ky.c */ --krb5_error_code mit_des_process_key(krb5_encrypt_block *, -- const krb5_keyblock *); -- --/* random_key.c */ --krb5_error_code mit_des_random_key(const krb5_encrypt_block *, -- krb5_pointer, krb5_keyblock **); -- --/* string2key.c */ --krb5_error_code mit_des_string_to_key(const krb5_encrypt_block *, -- krb5_keyblock *, const krb5_data *, -- const krb5_data *); --krb5_error_code mit_des_string_to_key_int(krb5_keyblock *, const krb5_data *, -- const krb5_data *); -- --/* weak_key.c */ --int mit_des_is_weak_key(mit_des_cblock); -- --/* cmb_keys.c */ --krb5_error_code mit_des_combine_subkeys(const krb5_keyblock *, -- const krb5_keyblock *, -- krb5_keyblock **); -- --/* f_pcbc.c */ --int mit_des_pcbc_encrypt(); -- --/* f_sched.c */ --int mit_des_make_key_sched(mit_des_cblock, mit_des_key_schedule); -- -- --/* misc.c */ --extern void swap_bits(char *); --extern unsigned long long_swap_bits(unsigned long); --extern unsigned long swap_six_bits_to_ansi(unsigned long); --extern unsigned long swap_four_bits_to_ansi(unsigned long); --extern unsigned long swap_bit_pos_1(unsigned long); --extern unsigned long swap_bit_pos_0(unsigned long); --extern unsigned long swap_bit_pos_0_to_ansi(unsigned long); --extern unsigned long rev_swap_bit_pos_0(unsigned long); --extern unsigned long swap_byte_bits(unsigned long); --extern unsigned long swap_long_bytes_bit_number(unsigned long); --#ifdef FILE --/* XXX depends on FILE being a #define! */ --extern void test_set(FILE *, const char *, int, const char *, int); --#endif -- --void --krb5int_des3_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule ks1, -- const mit_des_key_schedule ks2, -- const mit_des_key_schedule ks3, -- mit_des_cblock ivec); -- --void --krb5int_des3_cbc_decrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule ks1, -- const mit_des_key_schedule ks2, -- const mit_des_key_schedule ks3, -- mit_des_cblock ivec); -- --void --krb5int_des_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, -- mit_des_cblock ivec); -- --void --krb5int_des_cbc_decrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, -- mit_des_cblock ivec); -- --void --krb5int_des_cbc_mac(const krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, mit_des_cblock ivec, -- mit_des_cblock out); -- --/* d3_procky.c */ --krb5_error_code mit_des3_process_key(krb5_encrypt_block *eblock, -- const krb5_keyblock *keyblock); -- --/* d3_kysched.c */ --int mit_des3_key_sched(mit_des3_cblock key, mit_des3_key_schedule schedule); -- --/* d3_str2ky.c */ --krb5_error_code mit_des3_string_to_key(const krb5_encrypt_block *eblock, -- krb5_keyblock *keyblock, -- const krb5_data *data, -- const krb5_data *salt); -- --/* u_nfold.c */ --krb5_error_code mit_des_n_fold(const krb5_octet *input, const size_t in_len, -- krb5_octet *output, const size_t out_len); -- --/* u_rn_key.c */ --int mit_des_is_weak_keyblock(krb5_keyblock *keyblock); -- --void mit_des_fixup_keyblock_parity(krb5_keyblock *keyblock); -- --krb5_error_code mit_des_set_random_generator_seed(const krb5_data *seed, -- krb5_pointer random_state); -- --krb5_error_code mit_des_set_random_sequence_number(const krb5_data *sequence, -- krb5_pointer random_state); --#endif /*DES_INTERNAL_DEFS*/ -diff --git a/src/lib/crypto/builtin/des/des_keys.c b/src/lib/crypto/builtin/des/des_keys.c -deleted file mode 100644 -index 027b09d728..0000000000 ---- a/src/lib/crypto/builtin/des/des_keys.c -+++ /dev/null -@@ -1,38 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/des_keys.c - Key functions used by Kerberos code */ --/* -- * Copyright (C) 2011 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES_KEY_PARITY -- --void --k5_des_fixup_key_parity(unsigned char *keybits) --{ -- mit_des_fixup_key_parity(keybits); --} -- --#endif /* K5_BUILTIN_DES_KEY_PARITY */ -diff --git a/src/lib/crypto/builtin/des/destest.c b/src/lib/crypto/builtin/des/destest.c -deleted file mode 100644 -index 52114304e3..0000000000 ---- a/src/lib/crypto/builtin/des/destest.c -+++ /dev/null -@@ -1,240 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/destest.c */ --/* -- * Copyright 1990,1991 by the Massachusetts Institute of Technology. -- * All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ --/* -- * Copyright (C) 1998 by the FundsXpress, INC. -- * -- * All rights reserved. -- * -- * Export of this software from the United States of America may require -- * a specific license from the United States Government. It is the -- * responsibility of any person or organization contemplating export to -- * obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of FundsXpress. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. FundsXpress makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- */ -- --/* Test a DES implementation against known inputs & outputs. */ -- --#include "des_int.h" --#include --#include -- --void convert (char *, unsigned char []); -- --void des_cblock_print_file (mit_des_cblock, FILE *); -- --krb5_octet zeroblock[8] = {0,0,0,0,0,0,0,0}; -- --int --main(argc, argv) -- int argc; -- char *argv[]; --{ -- char block1[17], block2[17], block3[17]; -- /* Force tests of unaligned accesses. */ -- union { unsigned char c[8*4+3]; long l; } u; -- unsigned char *ioblocks = u.c; -- unsigned char *input = ioblocks+1; -- unsigned char *output = ioblocks+10; -- unsigned char *output2 = ioblocks+19; -- unsigned char *key = ioblocks+27; -- mit_des_key_schedule sched; -- int num = 0; -- int retval; -- -- int error = 0; -- -- while (scanf("%16s %16s %16s", block1, block2, block3) == 3) { -- convert(block1, key); -- convert(block2, input); -- convert(block3, output); -- -- retval = mit_des_key_sched(key, sched); -- if (retval) { -- fprintf(stderr, "des test: can't process key: %d\n", retval); -- fprintf(stderr, "des test: %s %s %s\n", block1, block2, block3); -- exit(1); -- } -- mit_des_cbc_encrypt((const mit_des_cblock *) input, -- (mit_des_cblock *) output2, 8, -- sched, zeroblock, 1); -- -- if (memcmp((char *)output2, (char *)output, 8)) { -- fprintf(stderr, -- "DES ENCRYPT ERROR, key %s, text %s, real cipher %s, computed cyphertext %02X%02X%02X%02X%02X%02X%02X%02X\n", -- block1, block2, block3, -- output2[0],output2[1],output2[2],output2[3], -- output2[4],output2[5],output2[6],output2[7]); -- error++; -- } -- -- /* -- * Now try decrypting.... -- */ -- mit_des_cbc_encrypt((const mit_des_cblock *) output, -- (mit_des_cblock *) output2, 8, -- sched, zeroblock, 0); -- -- if (memcmp((char *)output2, (char *)input, 8)) { -- fprintf(stderr, -- "DES DECRYPT ERROR, key %s, text %s, real cipher %s, computed cleartext %02X%02X%02X%02X%02X%02X%02X%02X\n", -- block1, block2, block3, -- output2[0],output2[1],output2[2],output2[3], -- output2[4],output2[5],output2[6],output2[7]); -- error++; -- } -- -- num++; -- } -- -- if (error) -- printf("destest: failed to pass the test\n"); -- else -- printf("destest: %d tests passed successfully\n", num); -- -- exit( (error > 256 && error % 256) ? 1 : error); --} -- --int value[128] = { -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- 0, 1, 2, 3, 4, 5, 6, 7, -- 8, 9, -1, -1, -1, -1, -1, -1, -- -1, 10, 11, 12, 13, 14, 15, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, --}; -- --void --convert(text, cblock) -- char *text; -- unsigned char cblock[]; --{ -- int i; -- for (i = 0; i < 8; i++) { -- if (!isascii((unsigned char)text[i * 2])) -- abort (); -- if (value[(int) text[i*2]] == -1 || value[(int) text[i*2+1]] == -1) { -- printf("Bad value byte %d in %s\n", i, text); -- exit(1); -- } -- cblock[i] = 16*value[(int) text[i*2]] + value[(int) text[i*2+1]]; -- } -- return; --} -- --/* -- * Fake out the DES library, for the purposes of testing. -- */ -- --int --mit_des_is_weak_key(key) -- mit_des_cblock key; --{ -- return 0; /* fake it out for testing */ --} -- --void --des_cblock_print_file(x, fp) -- mit_des_cblock x; -- FILE *fp; --{ -- unsigned char *y = (unsigned char *) x; -- int i = 0; -- fprintf(fp," 0x { "); -- -- while (i++ < 8) { -- fprintf(fp,"%x",*y++); -- if (i < 8) -- fprintf(fp,", "); -- } -- fprintf(fp," }"); --} -- -- --#define smask(step) ((1<>step)&smask(step))) --#define parity_char(x) pstep(pstep(pstep((x),4),2),1) -- --/* -- * des_check_key_parity: returns true iff key has the correct des parity. -- * See des_fix_key_parity for the definition of -- * correct des parity. -- */ --int --mit_des_check_key_parity(key) -- mit_des_cblock key; --{ -- unsigned int i; -- -- for (i=0; i decrypt, else encrypt */ -- Key_schedule schedule; /* addr of key schedule */ -- --This is the low level routine that encrypts or decrypts a single 8-byte --block in electronic code book mode. Always transforms the input --data into the output data. -- --If encrypt is non-zero, the input (cleartext) is encrypted into the --output (ciphertext) using the specified key_schedule, pre-set via "des_set_key". -- --If encrypt is zero, the input (now ciphertext) is decrypted into --the output (now cleartext). -- --Input and output may be the same space. -- --Does not return any meaningful value. Void is not used for compatibility --with other compilers. -- --/* -------------------------------------------------------------- */ -- --int -- cbc_encrypt(input,output,length,schedule,ivec,encrypt) -- -- C_Block *input; /* ptr to input data */ -- C_Block *output; /* ptr to output data */ -- int length; /* desired length, in bytes */ -- Key_schedule schedule; /* addr of precomputed schedule */ -- C_Block *ivec; /* pointer to 8 byte initialization -- * vector -- */ -- int encrypt /* 0 ==> decrypt; else encrypt*/ -- -- -- If encrypt is non-zero, the routine cipher-block-chain encrypts -- the INPUT (cleartext) into the OUTPUT (ciphertext) using the provided -- key schedule and initialization vector. If the length is not an integral -- multiple of eight bytes, the last block is copied to a temp and zero -- filled (highest addresses). The output is ALWAYS an integral multiple -- of eight bytes. -- -- If encrypt is zero, the routine cipher-block chain decrypts the INPUT -- (ciphertext) into the OUTPUT (cleartext) using the provided key schedule -- and initialization vector. Decryption ALWAYS operates on integral -- multiples of 8 bytes, so will round the length provided up to the -- appropriate multiple. Consequently, it will always produce the rounded-up -- number of bytes of output cleartext. The application must determine if -- the output cleartext was zero-padded due to cleartext lengths not integral -- multiples of 8. -- -- No errors or meaningful value are returned. Void is not used for -- compatibility with other compilers. -- -- --/* cbc checksum (MAC) only routine ---------------------------------------- */ --int -- cbc_cksum(input,output,length,schedule,ivec) -- -- C_Block *input; /* >= length bytes of inputtext */ -- C_Block *output; /* >= length bytes of outputtext */ -- int length; /* in bytes */ -- Key_schedule schedule; /* precomputed key schedule */ -- C_Block *ivec; /* 8 bytes of ivec */ -- -- -- Produces a cryptographic checksum, 8 bytes, by cipher-block-chain -- encrypting the input, discarding the ciphertext output, and only retaining -- the last ciphertext 8-byte block. Uses the provided key schedule and ivec. -- The input is effectively zero-padded to an integral multiple of -- eight bytes, though the original input is not modified. -- -- No meaningful value is returned. Void is not used for compatibility -- with other compilers. -- -- --/* random_key ----------------------------------------*/ --int -- random_key(key) -- -- C_Block *key; -- -- The start for the random number generated is set from the current time -- in microseconds, then the random number generator is invoked -- to create an eight byte output key (not a schedule). The key -- generated is set to odd parity per FIPS spec. -- -- The caller must supply space for the output key, pointed to -- by "*key", then after getting a new key, call the des_set_key() -- routine when needed. -- -- No meaningful value is returned. Void is not used for compatibility -- with other compilers. -- -- --/* string_to_key --------------------------------------------*/ -- --int -- string_to_key(str,key) -- char *str; -- C_Block *key; -- -- This routines converts an arbitrary length, null terminated string -- to an 8 byte DES key, with each byte parity set to odd, per FIPS spec. -- -- The algorithm is as follows: -- --| Take the first 8 bytes and remove the parity (leaving 56 bits). --| Do the same for the second 8 bytes, and the third, etc. Do this for --| as many sets of 8 bytes as necessary, filling in the remainder of the --| last set with nulls. Fold the second set back on the first (i.e. bit --| 0 over bit 55, and bit 55 over bit 0). Fold the third over the second --| (bit 0 of the third set is now over bit 0 of the first set). Repeat --| until you have done this to all sets. Xor the folded sets. Break the --| result into 8 7 bit bytes, and generate odd parity for each byte. You --| now have 64 bits. Note that DES takes a 64 bit key, and uses only the --| non parity bits. -- -- --/* read_password -------------------------------------------*/ -- --read_password(k,prompt,verify) -- C_Block *k; -- char *prompt; -- int verify; -- --This routine issues the supplied prompt, turns off echo, if possible, and --reads an input string. If verify is non-zero, it does it again, for use --in applications such as changing a password. If verify is non-zero, both --versions are compared, and the input is requested repeatedly until they --match. Then, the input string is mapped into a valid DES key, internally --using the string_to_key routine. The newly created key is copied to the --area pointed to by parameter "k". -- --No meaningful value is returned. If an error occurs trying to manipulate --the terminal echo, the routine forces the process to exit. -- --/* get_line ------------------------*/ --long get_line(p,max) -- char *p; -- long max; -- --Reads input characters from standard input until either a newline appears or --else the max length is reached. The characters read are stuffed into --the string pointed to, which will always be null terminated. The newline --is not inserted in the string. The max parameter includes the byte needed --for the null terminator, so allocate and pass one more than the maximum --string length desired. -diff --git a/src/lib/crypto/builtin/des/f_aead.c b/src/lib/crypto/builtin/des/f_aead.c -deleted file mode 100644 -index f887735820..0000000000 ---- a/src/lib/crypto/builtin/des/f_aead.c -+++ /dev/null -@@ -1,177 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* -- * Copyright (C) 2008 by the Massachusetts Institute of Technology. -- * Copyright 1995 by Richard P. Basch. All Rights Reserved. -- * Copyright 1995 by Lehman Brothers, Inc. All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of Richard P. Basch, Lehman Brothers and M.I.T. not be used -- * in advertising or publicity pertaining to distribution of the software -- * without specific, written prior permission. Richard P. Basch, -- * Lehman Brothers and M.I.T. make no representations about the suitability -- * of this software for any purpose. It is provided "as is" without -- * express or implied warranty. -- */ -- --#include "crypto_int.h" --#include "des_int.h" --#include "f_tables.h" -- --#ifdef K5_BUILTIN_DES -- --const mit_des_cblock mit_des_zeroblock /* = all zero */; -- --void --krb5int_des_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, -- mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- struct iov_cursor cursor; -- unsigned char block[MIT_DES_BLOCK_LENGTH]; -- -- /* Get key pointer here. This won't need to be reinitialized. */ -- kp = (const unsigned DES_INT32 *)schedule; -- -- /* Initialize left and right with the contents of the initial vector. */ -- ip = (ivec != NULL) ? ivec : mit_des_zeroblock; -- left = load_32_be(ip); -- right = load_32_be(ip + 4); -- -- k5_iov_cursor_init(&cursor, data, num_data, MIT_DES_BLOCK_LENGTH, FALSE); -- while (k5_iov_cursor_get(&cursor, block)) { -- /* Decompose this block and xor it with the previous ciphertext. */ -- left ^= load_32_be(block); -- right ^= load_32_be(block + 4); -- -- /* Encrypt what we have and put back into block. */ -- DES_DO_ENCRYPT(left, right, kp); -- store_32_be(left, block); -- store_32_be(right, block + 4); -- -- k5_iov_cursor_put(&cursor, block); -- } -- -- if (ivec != NULL) { -- store_32_be(left, ivec); -- store_32_be(right, ivec + 4); -- } --} -- --void --krb5int_des_cbc_decrypt(krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, -- mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- unsigned DES_INT32 ocipherl, ocipherr; -- unsigned DES_INT32 cipherl, cipherr; -- struct iov_cursor cursor; -- unsigned char block[MIT_DES_BLOCK_LENGTH]; -- -- /* Get key pointer here. This won't need to be reinitialized. */ -- kp = (const unsigned DES_INT32 *)schedule; -- -- /* -- * Decrypting is harder than encrypting because of -- * the necessity of remembering a lot more things. -- * Should think about this a little more... -- */ -- -- /* Prime the old cipher with ivec. */ -- ip = (ivec != NULL) ? ivec : mit_des_zeroblock; -- ocipherl = load_32_be(ip); -- ocipherr = load_32_be(ip + 4); -- -- k5_iov_cursor_init(&cursor, data, num_data, MIT_DES_BLOCK_LENGTH, FALSE); -- while (k5_iov_cursor_get(&cursor, block)) { -- /* Split this block into left and right. */ -- cipherl = left = load_32_be(block); -- cipherr = right = load_32_be(block + 4); -- -- /* Decrypt and xor with the old cipher to get plain text. */ -- DES_DO_DECRYPT(left, right, kp); -- left ^= ocipherl; -- right ^= ocipherr; -- -- /* Store the encrypted halves back into block. */ -- store_32_be(left, block); -- store_32_be(right, block + 4); -- -- /* Save current cipher block halves. */ -- ocipherl = cipherl; -- ocipherr = cipherr; -- -- k5_iov_cursor_put(&cursor, block); -- } -- -- if (ivec != NULL) { -- store_32_be(ocipherl, ivec); -- store_32_be(ocipherr, ivec + 4); -- } --} -- --void --krb5int_des_cbc_mac(const krb5_crypto_iov *data, unsigned long num_data, -- const mit_des_key_schedule schedule, mit_des_cblock ivec, -- mit_des_cblock out) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- struct iov_cursor cursor; -- unsigned char block[MIT_DES_BLOCK_LENGTH]; -- -- /* Get key pointer here. This won't need to be reinitialized. */ -- kp = (const unsigned DES_INT32 *)schedule; -- -- /* Initialize left and right with the contents of the initial vector. */ -- ip = (ivec != NULL) ? ivec : mit_des_zeroblock; -- left = load_32_be(ip); -- right = load_32_be(ip + 4); -- -- k5_iov_cursor_init(&cursor, data, num_data, MIT_DES_BLOCK_LENGTH, TRUE); -- while (k5_iov_cursor_get(&cursor, block)) { -- /* Decompose this block and xor it with the previous ciphertext. */ -- left ^= load_32_be(block); -- right ^= load_32_be(block + 4); -- -- /* Encrypt what we have. */ -- DES_DO_ENCRYPT(left, right, kp); -- } -- -- /* Output the final ciphertext block. */ -- store_32_be(left, out); -- store_32_be(right, out + 4); --} -- --#if defined(CONFIG_SMALL) && !defined(CONFIG_SMALL_NO_CRYPTO) --void krb5int_des_do_encrypt_2 (unsigned DES_INT32 *left, -- unsigned DES_INT32 *right, -- const unsigned DES_INT32 *kp) --{ -- DES_DO_ENCRYPT_1 (*left, *right, kp); --} -- --void krb5int_des_do_decrypt_2 (unsigned DES_INT32 *left, -- unsigned DES_INT32 *right, -- const unsigned DES_INT32 *kp) --{ -- DES_DO_DECRYPT_1 (*left, *right, kp); --} --#endif -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/f_cbc.c b/src/lib/crypto/builtin/des/f_cbc.c -deleted file mode 100644 -index 84d5382f22..0000000000 ---- a/src/lib/crypto/builtin/des/f_cbc.c -+++ /dev/null -@@ -1,256 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/f_cbc.c */ --/* -- * Copyright (C) 1990 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* -- * CBC functions; used only by the test programs at this time. (krb5 uses the -- * functions in f_aead.c instead.) -- */ -- --/* -- * des_cbc_encrypt.c - an implementation of the DES cipher function in cbc mode -- */ --#include "des_int.h" --#include "f_tables.h" -- --/* -- * des_cbc_encrypt - {en,de}crypt a stream in CBC mode -- */ -- --/* -- * This routine performs DES cipher-block-chaining operation, either -- * encrypting from cleartext to ciphertext, if encrypt != 0 or -- * decrypting from ciphertext to cleartext, if encrypt == 0. -- * -- * The key schedule is passed as an arg, as well as the cleartext or -- * ciphertext. The cleartext and ciphertext should be in host order. -- * -- * NOTE-- the output is ALWAYS an multiple of 8 bytes long. If not -- * enough space was provided, your program will get trashed. -- * -- * For encryption, the cleartext string is null padded, at the end, to -- * an integral multiple of eight bytes. -- * -- * For decryption, the ciphertext will be used in integral multiples -- * of 8 bytes, but only the first "length" bytes returned into the -- * cleartext. -- */ -- --const mit_des_cblock mit_des_zeroblock /* = all zero */; -- --static void --des_cbc_encrypt(const mit_des_cblock *in, mit_des_cblock *out, -- unsigned long length, const mit_des_key_schedule schedule, -- const mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- unsigned char *op; -- -- /* -- * Get key pointer here. This won't need to be reinitialized -- */ -- kp = (const unsigned DES_INT32 *)schedule; -- -- /* -- * Initialize left and right with the contents of the initial -- * vector. -- */ -- ip = ivec; -- GET_HALF_BLOCK(left, ip); -- GET_HALF_BLOCK(right, ip); -- -- /* -- * Suitably initialized, now work the length down 8 bytes -- * at a time. -- */ -- ip = *in; -- op = *out; -- while (length > 0) { -- /* -- * Get more input, xor it in. If the length is -- * greater than or equal to 8 this is straight -- * forward. Otherwise we have to fart around. -- */ -- if (length >= 8) { -- unsigned DES_INT32 temp; -- GET_HALF_BLOCK(temp, ip); -- left ^= temp; -- GET_HALF_BLOCK(temp, ip); -- right ^= temp; -- length -= 8; -- } else { -- /* -- * Oh, shoot. We need to pad the -- * end with zeroes. Work backwards -- * to do this. -- */ -- ip += (int) length; -- switch(length) { -- case 7: -- right ^= (*(--ip) & FF_UINT32) << 8; -- case 6: -- right ^= (*(--ip) & FF_UINT32) << 16; -- case 5: -- right ^= (*(--ip) & FF_UINT32) << 24; -- case 4: -- left ^= *(--ip) & FF_UINT32; -- case 3: -- left ^= (*(--ip) & FF_UINT32) << 8; -- case 2: -- left ^= (*(--ip) & FF_UINT32) << 16; -- case 1: -- left ^= (*(--ip) & FF_UINT32) << 24; -- break; -- } -- length = 0; -- } -- -- /* -- * Encrypt what we have -- */ -- DES_DO_ENCRYPT(left, right, kp); -- -- /* -- * Copy the results out -- */ -- PUT_HALF_BLOCK(left, op); -- PUT_HALF_BLOCK(right, op); -- } --} -- --static void --des_cbc_decrypt(const mit_des_cblock *in, mit_des_cblock *out, -- unsigned long length, const mit_des_key_schedule schedule, -- const mit_des_cblock ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- unsigned char *op; -- unsigned DES_INT32 ocipherl, ocipherr; -- unsigned DES_INT32 cipherl, cipherr; -- -- /* -- * Get key pointer here. This won't need to be reinitialized -- */ -- kp = (const unsigned DES_INT32 *)schedule; -- -- /* -- * Decrypting is harder than encrypting because of -- * the necessity of remembering a lot more things. -- * Should think about this a little more... -- */ -- -- if (length <= 0) -- return; -- -- /* -- * Prime the old cipher with ivec. -- */ -- ip = ivec; -- GET_HALF_BLOCK(ocipherl, ip); -- GET_HALF_BLOCK(ocipherr, ip); -- -- /* -- * Now do this in earnest until we run out of length. -- */ -- ip = *in; -- op = *out; -- for (;;) { /* check done inside loop */ -- /* -- * Read a block from the input into left and -- * right. Save this cipher block for later. -- */ -- GET_HALF_BLOCK(left, ip); -- GET_HALF_BLOCK(right, ip); -- cipherl = left; -- cipherr = right; -- -- /* -- * Decrypt this. -- */ -- DES_DO_DECRYPT(left, right, kp); -- -- /* -- * Xor with the old cipher to get plain -- * text. Output 8 or less bytes of this. -- */ -- left ^= ocipherl; -- right ^= ocipherr; -- if (length > 8) { -- length -= 8; -- PUT_HALF_BLOCK(left, op); -- PUT_HALF_BLOCK(right, op); -- /* -- * Save current cipher block here -- */ -- ocipherl = cipherl; -- ocipherr = cipherr; -- } else { -- /* -- * Trouble here. Start at end of output, -- * work backwards. -- */ -- op += (int) length; -- switch(length) { -- case 8: -- *(--op) = (unsigned char) (right & 0xff); -- case 7: -- *(--op) = (unsigned char) ((right >> 8) & 0xff); -- case 6: -- *(--op) = (unsigned char) ((right >> 16) & 0xff); -- case 5: -- *(--op) = (unsigned char) ((right >> 24) & 0xff); -- case 4: -- *(--op) = (unsigned char) (left & 0xff); -- case 3: -- *(--op) = (unsigned char) ((left >> 8) & 0xff); -- case 2: -- *(--op) = (unsigned char) ((left >> 16) & 0xff); -- case 1: -- *(--op) = (unsigned char) ((left >> 24) & 0xff); -- break; -- } -- break; /* we're done */ -- } -- } --} -- --int --mit_des_cbc_encrypt(const mit_des_cblock *in, mit_des_cblock *out, -- unsigned long length, const mit_des_key_schedule schedule, -- const mit_des_cblock ivec, int enc) --{ -- /* -- * Deal with encryption and decryption separately. -- */ -- if (enc) -- des_cbc_encrypt(in, out, length, schedule, ivec); -- else -- des_cbc_decrypt(in, out, length, schedule, ivec); -- return 0; --} -diff --git a/src/lib/crypto/builtin/des/f_cksum.c b/src/lib/crypto/builtin/des/f_cksum.c -deleted file mode 100644 -index 615a947f4a..0000000000 ---- a/src/lib/crypto/builtin/des/f_cksum.c -+++ /dev/null -@@ -1,141 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/f_cksum.c */ --/* -- * Copyright (C) 1990 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* DES implementation donated by Dennis Ferguson */ -- --/* -- * des_cbc_cksum.c - compute an 8 byte checksum using DES in CBC mode -- */ --#include "crypto_int.h" --#include "des_int.h" --#include "f_tables.h" -- --#ifdef K5_BUILTIN_DES -- --/* -- * This routine performs DES cipher-block-chaining checksum operation, -- * a.k.a. Message Authentication Code. It ALWAYS encrypts from input -- * to a single 64 bit output MAC checksum. -- * -- * The key schedule is passed as an arg, as well as the cleartext or -- * ciphertext. The cleartext and ciphertext should be in host order. -- * -- * NOTE-- the output is ALWAYS 8 bytes long. If not enough space was -- * provided, your program will get trashed. -- * -- * The input is null padded, at the end (highest addr), to an integral -- * multiple of eight bytes. -- */ -- --unsigned long --mit_des_cbc_cksum(const krb5_octet *in, krb5_octet *out, -- unsigned long length, const mit_des_key_schedule schedule, -- const krb5_octet *ivec) --{ -- unsigned DES_INT32 left, right; -- const unsigned DES_INT32 *kp; -- const unsigned char *ip; -- unsigned char *op; -- DES_INT32 len; -- -- /* -- * Initialize left and right with the contents of the initial -- * vector. -- */ -- ip = ivec; -- GET_HALF_BLOCK(left, ip); -- GET_HALF_BLOCK(right, ip); -- -- /* -- * Suitably initialized, now work the length down 8 bytes -- * at a time. -- */ -- ip = in; -- len = length; -- while (len > 0) { -- /* -- * Get more input, xor it in. If the length is -- * greater than or equal to 8 this is straight -- * forward. Otherwise we have to fart around. -- */ -- if (len >= 8) { -- unsigned DES_INT32 temp; -- GET_HALF_BLOCK(temp, ip); -- left ^= temp; -- GET_HALF_BLOCK(temp, ip); -- right ^= temp; -- len -= 8; -- } else { -- /* -- * Oh, shoot. We need to pad the -- * end with zeroes. Work backwards -- * to do this. -- */ -- ip += (int) len; -- switch(len) { -- case 7: -- right ^= (*(--ip) & FF_UINT32) << 8; -- case 6: -- right ^= (*(--ip) & FF_UINT32) << 16; -- case 5: -- right ^= (*(--ip) & FF_UINT32) << 24; -- case 4: -- left ^= *(--ip) & FF_UINT32; -- case 3: -- left ^= (*(--ip) & FF_UINT32) << 8; -- case 2: -- left ^= (*(--ip) & FF_UINT32) << 16; -- case 1: -- left ^= (*(--ip) & FF_UINT32) << 24; -- break; -- } -- len = 0; -- } -- -- /* -- * Encrypt what we have -- */ -- kp = (const unsigned DES_INT32 *)schedule; -- DES_DO_ENCRYPT(left, right, kp); -- } -- -- /* -- * Done. Left and right have the checksum. Put it into -- * the output. -- */ -- op = out; -- PUT_HALF_BLOCK(left, op); -- PUT_HALF_BLOCK(right, op); -- -- /* -- * Return right. I'll bet the MIT code returns this -- * inconsistantly (with the low order byte of the checksum -- * not always in the low order byte of the DES_INT32). We won't. -- */ -- return right & 0xFFFFFFFFUL; --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/f_parity.c b/src/lib/crypto/builtin/des/f_parity.c -deleted file mode 100644 -index a658878f6f..0000000000 ---- a/src/lib/crypto/builtin/des/f_parity.c -+++ /dev/null -@@ -1,64 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* -- * These routines check and fix parity of encryption keys for the DES -- * algorithm. -- * -- * They are a replacement for routines in key_parity.c, that don't require -- * the table building that they do. -- * -- * Mark Eichin -- Cygnus Support -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES_KEY_PARITY -- --/* -- * des_fixup_key_parity: Forces odd parity per byte; parity is bits -- * 8,16,...64 in des order, implies 0, 8, 16, ... -- * vax order. -- */ --#define smask(step) ((1<>step)&smask(step))) --#define parity_char(x) pstep(pstep(pstep((x),4),2),1) -- --void --mit_des_fixup_key_parity(mit_des_cblock key) --{ -- unsigned int i; -- for (i=0; i> 29) & 0x7] -- | (PC1_CL[(tmp >> 21) & 0x7] << 1) -- | (PC1_CL[(tmp >> 13) & 0x7] << 2) -- | (PC1_CL[(tmp >> 5) & 0x7] << 3); -- d = PC1_DL[(tmp >> 25) & 0xf] -- | (PC1_DL[(tmp >> 17) & 0xf] << 1) -- | (PC1_DL[(tmp >> 9) & 0xf] << 2) -- | (PC1_DL[(tmp >> 1) & 0xf] << 3); -- -- tmp = load_32_be(k), k += 4; -- -- c |= PC1_CR[(tmp >> 28) & 0xf] -- | (PC1_CR[(tmp >> 20) & 0xf] << 1) -- | (PC1_CR[(tmp >> 12) & 0xf] << 2) -- | (PC1_CR[(tmp >> 4) & 0xf] << 3); -- d |= PC1_DR[(tmp >> 25) & 0x7] -- | (PC1_DR[(tmp >> 17) & 0x7] << 1) -- | (PC1_DR[(tmp >> 9) & 0x7] << 2) -- | (PC1_DR[(tmp >> 1) & 0x7] << 3); -- } -- -- { -- /* -- * Need several temporaries in here -- */ -- unsigned DES_INT32 ltmp, rtmp; -- unsigned DES_INT32 *k; -- int two_bit_shifts; -- int i; -- /* -- * Now iterate to compute the key schedule. Note that we -- * record the entire set of subkeys in 6 bit chunks since -- * they are used that way. At 6 bits/char, we need -- * 48/6 char's/subkey * 16 subkeys/encryption == 128 bytes. -- * The schedule must be this big. -- */ -- k = (unsigned DES_INT32 *)schedule; -- two_bit_shifts = TWO_BIT_SHIFTS; -- for (i = 16; i > 0; i--) { -- /* -- * Do the rotation. One bit and two bit rotations -- * are done separately. Note C and D are 28 bits. -- */ -- if (two_bit_shifts & 0x1) { -- c = ((c << 2) & 0xffffffc) | (c >> 26); -- d = ((d << 2) & 0xffffffc) | (d >> 26); -- } else { -- c = ((c << 1) & 0xffffffe) | (c >> 27); -- d = ((d << 1) & 0xffffffe) | (d >> 27); -- } -- two_bit_shifts >>= 1; -- -- /* -- * Apply permutted choice 2 to C to get the first -- * 24 bits worth of keys. Note that bits 9, 18, 22 -- * and 25 (using DES numbering) in C are unused. The -- * shift-mask stuff is done to delete these bits from -- * the indices, since this cuts the table size in half. -- * -- * The table is torqued, by the way. If the standard -- * byte order for this (high to low order) is 1234, -- * the table actually gives us 4132. -- */ -- ltmp = PC2_C[0][((c >> 22) & 0x3f)] -- | PC2_C[1][((c >> 15) & 0xf) | ((c >> 16) & 0x30)] -- | PC2_C[2][((c >> 4) & 0x3) | ((c >> 9) & 0x3c)] -- | PC2_C[3][((c ) & 0x7) | ((c >> 4) & 0x38)]; -- /* -- * Apply permutted choice 2 to D to get the other half. -- * Here, bits 7, 10, 15 and 26 go unused. The sqeezing -- * actually turns out to be cheaper here. -- * -- * This table is similarly torqued. If the standard -- * byte order is 5678, the table has the bytes permuted -- * to give us 7685. -- */ -- rtmp = PC2_D[0][((d >> 22) & 0x3f)] -- | PC2_D[1][((d >> 14) & 0xf) | ((d >> 15) & 0x30)] -- | PC2_D[2][((d >> 7) & 0x3f)] -- | PC2_D[3][((d ) & 0x3) | ((d >> 1) & 0x3c)]; -- -- /* -- * Make up two words of the key schedule, with a -- * byte order which is convenient for the DES -- * inner loop. The high order (first) word will -- * hold bytes 7135 (high to low order) while the -- * second holds bytes 4682. -- */ -- *k++ = (ltmp & 0x00ffff00) | (rtmp & 0xff0000ff); -- *k++ = (ltmp & 0xff0000ff) | (rtmp & 0x00ffff00); -- } -- } -- return (0); --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/f_tables.c b/src/lib/crypto/builtin/des/f_tables.c -deleted file mode 100644 -index e50ab1fc60..0000000000 ---- a/src/lib/crypto/builtin/des/f_tables.c -+++ /dev/null -@@ -1,375 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/f_tables.c */ --/* -- * Copyright (C) 1990 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* DES implementation donated by Dennis Ferguson */ -- --/* -- * des_tables.c - precomputed tables used for the DES cipher function -- */ -- --/* -- * Include the header file so something will complain if the -- * declarations get out of sync -- */ --#include "crypto_int.h" --#include "des_int.h" --#include "f_tables.h" -- --#ifdef K5_BUILTIN_DES -- --/* -- * These tables may be declared const if you want. Many compilers -- * don't support this, though. -- */ -- --/* -- * The DES algorithm which uses these is intended to be fairly speedy -- * at the expense of some memory. All the standard hacks are used. -- * The S boxes and the P permutation are precomputed into one table. -- * The E box never actually appears explicitly since it is easy to apply -- * this algorithmically as needed. The initial permutation and final -- * (inverse initial) permutation are computed from tables designed to -- * permute one byte at a time. This should run pretty fast on machines -- * with 32 bit words and bit field/multiple bit shift instructions which -- * are fast. -- */ -- --/* -- * The initial permutation array. This is used to compute both the -- * left and the right halves of the initial permutation using bytes -- * from words made from the following operations: -- * -- * ((left & 0x55555555) << 1) | (right & 0x55555555) for left half -- * (left & 0xaaaaaaaa) | ((right & 0xaaaaaaaa) >> 1) for right half -- * -- * The scheme is that we index into the table using each byte. The -- * result from the high order byte is or'd with the result from the -- * next byte shifted left once is or'd with the result from the next -- * byte shifted left twice if or'd with the result from the low order -- * byte shifted left by three. Clear? -- */ -- --const unsigned DES_INT32 des_IP_table[256] = { -- 0x00000000, 0x00000010, 0x00000001, 0x00000011, -- 0x00001000, 0x00001010, 0x00001001, 0x00001011, -- 0x00000100, 0x00000110, 0x00000101, 0x00000111, -- 0x00001100, 0x00001110, 0x00001101, 0x00001111, -- 0x00100000, 0x00100010, 0x00100001, 0x00100011, -- 0x00101000, 0x00101010, 0x00101001, 0x00101011, -- 0x00100100, 0x00100110, 0x00100101, 0x00100111, -- 0x00101100, 0x00101110, 0x00101101, 0x00101111, -- 0x00010000, 0x00010010, 0x00010001, 0x00010011, -- 0x00011000, 0x00011010, 0x00011001, 0x00011011, -- 0x00010100, 0x00010110, 0x00010101, 0x00010111, -- 0x00011100, 0x00011110, 0x00011101, 0x00011111, -- 0x00110000, 0x00110010, 0x00110001, 0x00110011, -- 0x00111000, 0x00111010, 0x00111001, 0x00111011, -- 0x00110100, 0x00110110, 0x00110101, 0x00110111, -- 0x00111100, 0x00111110, 0x00111101, 0x00111111, -- 0x10000000, 0x10000010, 0x10000001, 0x10000011, -- 0x10001000, 0x10001010, 0x10001001, 0x10001011, -- 0x10000100, 0x10000110, 0x10000101, 0x10000111, -- 0x10001100, 0x10001110, 0x10001101, 0x10001111, -- 0x10100000, 0x10100010, 0x10100001, 0x10100011, -- 0x10101000, 0x10101010, 0x10101001, 0x10101011, -- 0x10100100, 0x10100110, 0x10100101, 0x10100111, -- 0x10101100, 0x10101110, 0x10101101, 0x10101111, -- 0x10010000, 0x10010010, 0x10010001, 0x10010011, -- 0x10011000, 0x10011010, 0x10011001, 0x10011011, -- 0x10010100, 0x10010110, 0x10010101, 0x10010111, -- 0x10011100, 0x10011110, 0x10011101, 0x10011111, -- 0x10110000, 0x10110010, 0x10110001, 0x10110011, -- 0x10111000, 0x10111010, 0x10111001, 0x10111011, -- 0x10110100, 0x10110110, 0x10110101, 0x10110111, -- 0x10111100, 0x10111110, 0x10111101, 0x10111111, -- 0x01000000, 0x01000010, 0x01000001, 0x01000011, -- 0x01001000, 0x01001010, 0x01001001, 0x01001011, -- 0x01000100, 0x01000110, 0x01000101, 0x01000111, -- 0x01001100, 0x01001110, 0x01001101, 0x01001111, -- 0x01100000, 0x01100010, 0x01100001, 0x01100011, -- 0x01101000, 0x01101010, 0x01101001, 0x01101011, -- 0x01100100, 0x01100110, 0x01100101, 0x01100111, -- 0x01101100, 0x01101110, 0x01101101, 0x01101111, -- 0x01010000, 0x01010010, 0x01010001, 0x01010011, -- 0x01011000, 0x01011010, 0x01011001, 0x01011011, -- 0x01010100, 0x01010110, 0x01010101, 0x01010111, -- 0x01011100, 0x01011110, 0x01011101, 0x01011111, -- 0x01110000, 0x01110010, 0x01110001, 0x01110011, -- 0x01111000, 0x01111010, 0x01111001, 0x01111011, -- 0x01110100, 0x01110110, 0x01110101, 0x01110111, -- 0x01111100, 0x01111110, 0x01111101, 0x01111111, -- 0x11000000, 0x11000010, 0x11000001, 0x11000011, -- 0x11001000, 0x11001010, 0x11001001, 0x11001011, -- 0x11000100, 0x11000110, 0x11000101, 0x11000111, -- 0x11001100, 0x11001110, 0x11001101, 0x11001111, -- 0x11100000, 0x11100010, 0x11100001, 0x11100011, -- 0x11101000, 0x11101010, 0x11101001, 0x11101011, -- 0x11100100, 0x11100110, 0x11100101, 0x11100111, -- 0x11101100, 0x11101110, 0x11101101, 0x11101111, -- 0x11010000, 0x11010010, 0x11010001, 0x11010011, -- 0x11011000, 0x11011010, 0x11011001, 0x11011011, -- 0x11010100, 0x11010110, 0x11010101, 0x11010111, -- 0x11011100, 0x11011110, 0x11011101, 0x11011111, -- 0x11110000, 0x11110010, 0x11110001, 0x11110011, -- 0x11111000, 0x11111010, 0x11111001, 0x11111011, -- 0x11110100, 0x11110110, 0x11110101, 0x11110111, -- 0x11111100, 0x11111110, 0x11111101, 0x11111111 --}; -- --/* -- * The final permutation array. Like the IP array, used -- * to compute both the left and right results from the bytes -- * of words computed from: -- * -- * ((left & 0x0f0f0f0f) << 4) | (right & 0x0f0f0f0f) for left result -- * (left & 0xf0f0f0f0) | ((right & 0xf0f0f0f0) >> 4) for right result -- * -- * The result from the high order byte is shifted left 6 bits and -- * or'd with the result from the next byte shifted left 4 bits, which -- * is or'd with the result from the next byte shifted left 2 bits, -- * which is or'd with the result from the low byte. -- */ --const unsigned DES_INT32 des_FP_table[256] = { -- 0x00000000, 0x02000000, 0x00020000, 0x02020000, -- 0x00000200, 0x02000200, 0x00020200, 0x02020200, -- 0x00000002, 0x02000002, 0x00020002, 0x02020002, -- 0x00000202, 0x02000202, 0x00020202, 0x02020202, -- 0x01000000, 0x03000000, 0x01020000, 0x03020000, -- 0x01000200, 0x03000200, 0x01020200, 0x03020200, -- 0x01000002, 0x03000002, 0x01020002, 0x03020002, -- 0x01000202, 0x03000202, 0x01020202, 0x03020202, -- 0x00010000, 0x02010000, 0x00030000, 0x02030000, -- 0x00010200, 0x02010200, 0x00030200, 0x02030200, -- 0x00010002, 0x02010002, 0x00030002, 0x02030002, -- 0x00010202, 0x02010202, 0x00030202, 0x02030202, -- 0x01010000, 0x03010000, 0x01030000, 0x03030000, -- 0x01010200, 0x03010200, 0x01030200, 0x03030200, -- 0x01010002, 0x03010002, 0x01030002, 0x03030002, -- 0x01010202, 0x03010202, 0x01030202, 0x03030202, -- 0x00000100, 0x02000100, 0x00020100, 0x02020100, -- 0x00000300, 0x02000300, 0x00020300, 0x02020300, -- 0x00000102, 0x02000102, 0x00020102, 0x02020102, -- 0x00000302, 0x02000302, 0x00020302, 0x02020302, -- 0x01000100, 0x03000100, 0x01020100, 0x03020100, -- 0x01000300, 0x03000300, 0x01020300, 0x03020300, -- 0x01000102, 0x03000102, 0x01020102, 0x03020102, -- 0x01000302, 0x03000302, 0x01020302, 0x03020302, -- 0x00010100, 0x02010100, 0x00030100, 0x02030100, -- 0x00010300, 0x02010300, 0x00030300, 0x02030300, -- 0x00010102, 0x02010102, 0x00030102, 0x02030102, -- 0x00010302, 0x02010302, 0x00030302, 0x02030302, -- 0x01010100, 0x03010100, 0x01030100, 0x03030100, -- 0x01010300, 0x03010300, 0x01030300, 0x03030300, -- 0x01010102, 0x03010102, 0x01030102, 0x03030102, -- 0x01010302, 0x03010302, 0x01030302, 0x03030302, -- 0x00000001, 0x02000001, 0x00020001, 0x02020001, -- 0x00000201, 0x02000201, 0x00020201, 0x02020201, -- 0x00000003, 0x02000003, 0x00020003, 0x02020003, -- 0x00000203, 0x02000203, 0x00020203, 0x02020203, -- 0x01000001, 0x03000001, 0x01020001, 0x03020001, -- 0x01000201, 0x03000201, 0x01020201, 0x03020201, -- 0x01000003, 0x03000003, 0x01020003, 0x03020003, -- 0x01000203, 0x03000203, 0x01020203, 0x03020203, -- 0x00010001, 0x02010001, 0x00030001, 0x02030001, -- 0x00010201, 0x02010201, 0x00030201, 0x02030201, -- 0x00010003, 0x02010003, 0x00030003, 0x02030003, -- 0x00010203, 0x02010203, 0x00030203, 0x02030203, -- 0x01010001, 0x03010001, 0x01030001, 0x03030001, -- 0x01010201, 0x03010201, 0x01030201, 0x03030201, -- 0x01010003, 0x03010003, 0x01030003, 0x03030003, -- 0x01010203, 0x03010203, 0x01030203, 0x03030203, -- 0x00000101, 0x02000101, 0x00020101, 0x02020101, -- 0x00000301, 0x02000301, 0x00020301, 0x02020301, -- 0x00000103, 0x02000103, 0x00020103, 0x02020103, -- 0x00000303, 0x02000303, 0x00020303, 0x02020303, -- 0x01000101, 0x03000101, 0x01020101, 0x03020101, -- 0x01000301, 0x03000301, 0x01020301, 0x03020301, -- 0x01000103, 0x03000103, 0x01020103, 0x03020103, -- 0x01000303, 0x03000303, 0x01020303, 0x03020303, -- 0x00010101, 0x02010101, 0x00030101, 0x02030101, -- 0x00010301, 0x02010301, 0x00030301, 0x02030301, -- 0x00010103, 0x02010103, 0x00030103, 0x02030103, -- 0x00010303, 0x02010303, 0x00030303, 0x02030303, -- 0x01010101, 0x03010101, 0x01030101, 0x03030101, -- 0x01010301, 0x03010301, 0x01030301, 0x03030301, -- 0x01010103, 0x03010103, 0x01030103, 0x03030103, -- 0x01010303, 0x03010303, 0x01030303, 0x03030303 --}; -- -- --/* -- * The SP table is actually the S boxes and the P permutation -- * table combined. This table is actually reordered from the -- * spec, to match the order of key application we follow. -- */ --const unsigned DES_INT32 des_SP_table[8][64] = { -- { -- 0x00100000, 0x02100001, 0x02000401, 0x00000000, /* 7 */ -- 0x00000400, 0x02000401, 0x00100401, 0x02100400, -- 0x02100401, 0x00100000, 0x00000000, 0x02000001, -- 0x00000001, 0x02000000, 0x02100001, 0x00000401, -- 0x02000400, 0x00100401, 0x00100001, 0x02000400, -- 0x02000001, 0x02100000, 0x02100400, 0x00100001, -- 0x02100000, 0x00000400, 0x00000401, 0x02100401, -- 0x00100400, 0x00000001, 0x02000000, 0x00100400, -- 0x02000000, 0x00100400, 0x00100000, 0x02000401, -- 0x02000401, 0x02100001, 0x02100001, 0x00000001, -- 0x00100001, 0x02000000, 0x02000400, 0x00100000, -- 0x02100400, 0x00000401, 0x00100401, 0x02100400, -- 0x00000401, 0x02000001, 0x02100401, 0x02100000, -- 0x00100400, 0x00000000, 0x00000001, 0x02100401, -- 0x00000000, 0x00100401, 0x02100000, 0x00000400, -- 0x02000001, 0x02000400, 0x00000400, 0x00100001, -- }, -- { -- 0x00808200, 0x00000000, 0x00008000, 0x00808202, /* 1 */ -- 0x00808002, 0x00008202, 0x00000002, 0x00008000, -- 0x00000200, 0x00808200, 0x00808202, 0x00000200, -- 0x00800202, 0x00808002, 0x00800000, 0x00000002, -- 0x00000202, 0x00800200, 0x00800200, 0x00008200, -- 0x00008200, 0x00808000, 0x00808000, 0x00800202, -- 0x00008002, 0x00800002, 0x00800002, 0x00008002, -- 0x00000000, 0x00000202, 0x00008202, 0x00800000, -- 0x00008000, 0x00808202, 0x00000002, 0x00808000, -- 0x00808200, 0x00800000, 0x00800000, 0x00000200, -- 0x00808002, 0x00008000, 0x00008200, 0x00800002, -- 0x00000200, 0x00000002, 0x00800202, 0x00008202, -- 0x00808202, 0x00008002, 0x00808000, 0x00800202, -- 0x00800002, 0x00000202, 0x00008202, 0x00808200, -- 0x00000202, 0x00800200, 0x00800200, 0x00000000, -- 0x00008002, 0x00008200, 0x00000000, 0x00808002, -- }, -- { -- 0x00000104, 0x04010100, 0x00000000, 0x04010004, /* 3 */ -- 0x04000100, 0x00000000, 0x00010104, 0x04000100, -- 0x00010004, 0x04000004, 0x04000004, 0x00010000, -- 0x04010104, 0x00010004, 0x04010000, 0x00000104, -- 0x04000000, 0x00000004, 0x04010100, 0x00000100, -- 0x00010100, 0x04010000, 0x04010004, 0x00010104, -- 0x04000104, 0x00010100, 0x00010000, 0x04000104, -- 0x00000004, 0x04010104, 0x00000100, 0x04000000, -- 0x04010100, 0x04000000, 0x00010004, 0x00000104, -- 0x00010000, 0x04010100, 0x04000100, 0x00000000, -- 0x00000100, 0x00010004, 0x04010104, 0x04000100, -- 0x04000004, 0x00000100, 0x00000000, 0x04010004, -- 0x04000104, 0x00010000, 0x04000000, 0x04010104, -- 0x00000004, 0x00010104, 0x00010100, 0x04000004, -- 0x04010000, 0x04000104, 0x00000104, 0x04010000, -- 0x00010104, 0x00000004, 0x04010004, 0x00010100, -- }, -- { -- 0x00000080, 0x01040080, 0x01040000, 0x21000080, /* 5 */ -- 0x00040000, 0x00000080, 0x20000000, 0x01040000, -- 0x20040080, 0x00040000, 0x01000080, 0x20040080, -- 0x21000080, 0x21040000, 0x00040080, 0x20000000, -- 0x01000000, 0x20040000, 0x20040000, 0x00000000, -- 0x20000080, 0x21040080, 0x21040080, 0x01000080, -- 0x21040000, 0x20000080, 0x00000000, 0x21000000, -- 0x01040080, 0x01000000, 0x21000000, 0x00040080, -- 0x00040000, 0x21000080, 0x00000080, 0x01000000, -- 0x20000000, 0x01040000, 0x21000080, 0x20040080, -- 0x01000080, 0x20000000, 0x21040000, 0x01040080, -- 0x20040080, 0x00000080, 0x01000000, 0x21040000, -- 0x21040080, 0x00040080, 0x21000000, 0x21040080, -- 0x01040000, 0x00000000, 0x20040000, 0x21000000, -- 0x00040080, 0x01000080, 0x20000080, 0x00040000, -- 0x00000000, 0x20040000, 0x01040080, 0x20000080, -- }, -- { -- 0x80401000, 0x80001040, 0x80001040, 0x00000040, /* 4 */ -- 0x00401040, 0x80400040, 0x80400000, 0x80001000, -- 0x00000000, 0x00401000, 0x00401000, 0x80401040, -- 0x80000040, 0x00000000, 0x00400040, 0x80400000, -- 0x80000000, 0x00001000, 0x00400000, 0x80401000, -- 0x00000040, 0x00400000, 0x80001000, 0x00001040, -- 0x80400040, 0x80000000, 0x00001040, 0x00400040, -- 0x00001000, 0x00401040, 0x80401040, 0x80000040, -- 0x00400040, 0x80400000, 0x00401000, 0x80401040, -- 0x80000040, 0x00000000, 0x00000000, 0x00401000, -- 0x00001040, 0x00400040, 0x80400040, 0x80000000, -- 0x80401000, 0x80001040, 0x80001040, 0x00000040, -- 0x80401040, 0x80000040, 0x80000000, 0x00001000, -- 0x80400000, 0x80001000, 0x00401040, 0x80400040, -- 0x80001000, 0x00001040, 0x00400000, 0x80401000, -- 0x00000040, 0x00400000, 0x00001000, 0x00401040, -- }, -- { -- 0x10000008, 0x10200000, 0x00002000, 0x10202008, /* 6 */ -- 0x10200000, 0x00000008, 0x10202008, 0x00200000, -- 0x10002000, 0x00202008, 0x00200000, 0x10000008, -- 0x00200008, 0x10002000, 0x10000000, 0x00002008, -- 0x00000000, 0x00200008, 0x10002008, 0x00002000, -- 0x00202000, 0x10002008, 0x00000008, 0x10200008, -- 0x10200008, 0x00000000, 0x00202008, 0x10202000, -- 0x00002008, 0x00202000, 0x10202000, 0x10000000, -- 0x10002000, 0x00000008, 0x10200008, 0x00202000, -- 0x10202008, 0x00200000, 0x00002008, 0x10000008, -- 0x00200000, 0x10002000, 0x10000000, 0x00002008, -- 0x10000008, 0x10202008, 0x00202000, 0x10200000, -- 0x00202008, 0x10202000, 0x00000000, 0x10200008, -- 0x00000008, 0x00002000, 0x10200000, 0x00202008, -- 0x00002000, 0x00200008, 0x10002008, 0x00000000, -- 0x10202000, 0x10000000, 0x00200008, 0x10002008, -- }, -- { -- 0x08000820, 0x00000800, 0x00020000, 0x08020820, /* 8 */ -- 0x08000000, 0x08000820, 0x00000020, 0x08000000, -- 0x00020020, 0x08020000, 0x08020820, 0x00020800, -- 0x08020800, 0x00020820, 0x00000800, 0x00000020, -- 0x08020000, 0x08000020, 0x08000800, 0x00000820, -- 0x00020800, 0x00020020, 0x08020020, 0x08020800, -- 0x00000820, 0x00000000, 0x00000000, 0x08020020, -- 0x08000020, 0x08000800, 0x00020820, 0x00020000, -- 0x00020820, 0x00020000, 0x08020800, 0x00000800, -- 0x00000020, 0x08020020, 0x00000800, 0x00020820, -- 0x08000800, 0x00000020, 0x08000020, 0x08020000, -- 0x08020020, 0x08000000, 0x00020000, 0x08000820, -- 0x00000000, 0x08020820, 0x00020020, 0x08000020, -- 0x08020000, 0x08000800, 0x08000820, 0x00000000, -- 0x08020820, 0x00020800, 0x00020800, 0x00000820, -- 0x00000820, 0x00020020, 0x08000000, 0x08020800, -- }, -- { -- 0x40084010, 0x40004000, 0x00004000, 0x00084010, /* 2 */ -- 0x00080000, 0x00000010, 0x40080010, 0x40004010, -- 0x40000010, 0x40084010, 0x40084000, 0x40000000, -- 0x40004000, 0x00080000, 0x00000010, 0x40080010, -- 0x00084000, 0x00080010, 0x40004010, 0x00000000, -- 0x40000000, 0x00004000, 0x00084010, 0x40080000, -- 0x00080010, 0x40000010, 0x00000000, 0x00084000, -- 0x00004010, 0x40084000, 0x40080000, 0x00004010, -- 0x00000000, 0x00084010, 0x40080010, 0x00080000, -- 0x40004010, 0x40080000, 0x40084000, 0x00004000, -- 0x40080000, 0x40004000, 0x00000010, 0x40084010, -- 0x00084010, 0x00000010, 0x00004000, 0x40000000, -- 0x00004010, 0x40084000, 0x00080000, 0x40000010, -- 0x00080010, 0x40004010, 0x40000010, 0x00080010, -- 0x00084000, 0x00000000, 0x40004000, 0x00004010, -- 0x40000000, 0x40080010, 0x40084010, 0x00084000 -- }, --}; -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/f_tables.h b/src/lib/crypto/builtin/des/f_tables.h -deleted file mode 100644 -index fc91b566cf..0000000000 ---- a/src/lib/crypto/builtin/des/f_tables.h -+++ /dev/null -@@ -1,285 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/f_tables.h */ --/* -- * Copyright (C) 1990 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* -- * DES implementation donated by Dennis Ferguson -- */ -- --/* -- * des_tables.h - declarations to import the DES tables, used internally -- * by some of the library routines. -- */ --#ifndef __DES_TABLES_H__ --#define __DES_TABLES_H__ /* nothing */ -- --#include "k5-platform.h" --/* -- * These may be declared const if you wish. Be sure to change the -- * declarations in des_tables.c as well. -- */ --extern const unsigned DES_INT32 des_IP_table[256]; --extern const unsigned DES_INT32 des_FP_table[256]; --extern const unsigned DES_INT32 des_SP_table[8][64]; -- --/* -- * Use standard shortforms to reference these to save typing -- */ --#define IP des_IP_table --#define FP des_FP_table --#define SP des_SP_table -- --#ifdef DEBUG --#define DEB(foofraw) printf foofraw --#else --#define DEB(foofraw) /* nothing */ --#endif -- --/* -- * Code to do a DES round using the tables. Note that the E expansion -- * is easy to compute algorithmically, especially if done out-of-order. -- * Take a look at its form and compare it to everything involving temp -- * below. Since SP[0-7] don't have any bits in common set it is okay -- * to do the successive xor's. -- * -- * Note too that the SP table has been reordered to match the order of -- * the keys (if the original order of SP was 12345678, the reordered -- * table is 71354682). This is unnecessary, but was done since some -- * compilers seem to like you going through the matrix from beginning -- * to end. -- * -- * There is a difference in the best way to do this depending on whether -- * one is encrypting or decrypting. If encrypting we move forward through -- * the keys and hence should move forward through the table. If decrypting -- * we go back. Part of the need for this comes from trying to emulate -- * existing software which generates a single key schedule and uses it -- * both for encrypting and decrypting. Generating separate encryption -- * and decryption key schedules would allow one to use the same code -- * for both. -- * -- * left, right and temp should be unsigned DES_INT32 values. left and right -- * should be the high and low order parts of the cipher block at the -- * current stage of processing (this makes sense if you read the spec). -- * kp should be an unsigned DES_INT32 pointer which points at the current -- * set of subkeys in the key schedule. It is advanced to the next set -- * (i.e. by 8 bytes) when this is done. -- * -- * This occurs in the innermost loop of the DES function. The four -- * variables should really be in registers. -- * -- * When using this, the inner loop of the DES function might look like: -- * -- * for (i = 0; i < 8; i++) { -- * DES_SP_{EN,DE}CRYPT_ROUND(left, right, temp, kp); -- * DES_SP_{EN,DE}CRYPT_ROUND(right, left, temp, kp); -- * } -- * -- * Note the trick above. You are supposed to do 16 rounds, swapping -- * left and right at the end of each round. By doing two rounds at -- * a time and swapping left and right in the code we can avoid the -- * swaps altogether. -- */ --#define DES_SP_ENCRYPT_ROUND(left, right, temp, kp) do { \ -- (temp) = (((right) >> 11) | ((right) << 21)) ^ *(kp)++; \ -- (left) ^= SP[0][((temp) >> 24) & 0x3f] \ -- | SP[1][((temp) >> 16) & 0x3f] \ -- | SP[2][((temp) >> 8) & 0x3f] \ -- | SP[3][((temp) ) & 0x3f]; \ -- (temp) = (((right) >> 23) | ((right) << 9)) ^ *(kp)++; \ -- (left) ^= SP[4][((temp) >> 24) & 0x3f] \ -- | SP[5][((temp) >> 16) & 0x3f] \ -- | SP[6][((temp) >> 8) & 0x3f] \ -- | SP[7][((temp) ) & 0x3f]; \ -- } while(0); -- --#define DES_SP_DECRYPT_ROUND(left, right, temp, kp) do { \ -- (temp) = (((right) >> 23) | ((right) << 9)) ^ *(--(kp)); \ -- (left) ^= SP[7][((temp) ) & 0x3f] \ -- | SP[6][((temp) >> 8) & 0x3f] \ -- | SP[5][((temp) >> 16) & 0x3f] \ -- | SP[4][((temp) >> 24) & 0x3f]; \ -- (temp) = (((right) >> 11) | ((right) << 21)) ^ *(--(kp)); \ -- (left) ^= SP[3][((temp) ) & 0x3f] \ -- | SP[2][((temp) >> 8) & 0x3f] \ -- | SP[1][((temp) >> 16) & 0x3f] \ -- | SP[0][((temp) >> 24) & 0x3f]; \ -- } while (0); -- --/* -- * Macros to help deal with the initial permutation table. Note -- * the IP table only deals with 32 bits at a time, allowing us to -- * collect the bits we need to deal with each half into an unsigned -- * DES_INT32. By carefully selecting how the bits are ordered we also -- * take advantages of symmetries in the table so that we can use a -- * single table to compute the permutation of all bytes. This sounds -- * complicated, but if you go through the process of designing the -- * table you'll find the symmetries fall right out. -- * -- * The follow macros compute the set of bits used to index the -- * table for produce the left and right permuted result. -- * -- * The inserted cast to unsigned DES_INT32 circumvents a bug in -- * the Macintosh MPW 3.2 C compiler which loses the unsignedness and -- * propagates the high-order bit in the shift. -- */ --#define DES_IP_LEFT_BITS(left, right) \ -- ((((left) & 0x55555555) << 1) | ((right) & 0x55555555)) --#define DES_IP_RIGHT_BITS(left, right) \ -- (((left) & 0xaaaaaaaa) | \ -- ( ( (unsigned DES_INT32) ((right) & 0xaaaaaaaa) ) >> 1)) -- --/* -- * The following macro does an in-place initial permutation given -- * the current left and right parts of the block and a single -- * temporary. Use this more as a guide for rolling your own, though. -- * The best way to do the IP depends on the form of the data you -- * are dealing with. If you use this, though, try to make left, -- * right and temp unsigned DES_INT32s. -- */ --#define DES_INITIAL_PERM(left, right, temp) do { \ -- (temp) = DES_IP_RIGHT_BITS((left), (right)); \ -- (right) = DES_IP_LEFT_BITS((left), (right)); \ -- (left) = IP[((right) >> 24) & 0xff] \ -- | (IP[((right) >> 16) & 0xff] << 1) \ -- | (IP[((right) >> 8) & 0xff] << 2) \ -- | (IP[(right) & 0xff] << 3); \ -- (right) = IP[((temp) >> 24) & 0xff] \ -- | (IP[((temp) >> 16) & 0xff] << 1) \ -- | (IP[((temp) >> 8) & 0xff] << 2) \ -- | (IP[(temp) & 0xff] << 3); \ -- } while(0); -- --/* -- * Now the final permutation stuff. The same comments apply to -- * this as to the initial permutation, except that we use different -- * bits and shifts. -- * -- * The inserted cast to unsigned DES_INT32 circumvents a bug in -- * the Macintosh MPW 3.2 C compiler which loses the unsignedness and -- * propagates the high-order bit in the shift. -- */ --#define DES_FP_LEFT_BITS(left, right) \ -- ((((left) & 0x0f0f0f0f) << 4) | ((right) & 0x0f0f0f0f)) --#define DES_FP_RIGHT_BITS(left, right) \ -- (((left) & 0xf0f0f0f0) | \ -- ( ( (unsigned DES_INT32) ((right) & 0xf0f0f0f0) ) >> 4)) -- -- --/* -- * Here is a sample final permutation. Note that there is a trick -- * here. DES requires swapping the left and right parts after the -- * last cipher round but before the final permutation. We do this -- * swapping internally, which is why left and right are confused -- * at the beginning. -- */ --#define DES_FINAL_PERM(left, right, temp) do { \ -- (temp) = DES_FP_RIGHT_BITS((right), (left)); \ -- (right) = DES_FP_LEFT_BITS((right), (left)); \ -- (left) = (FP[((right) >> 24) & 0xff] << 6) \ -- | (FP[((right) >> 16) & 0xff] << 4) \ -- | (FP[((right) >> 8) & 0xff] << 2) \ -- | FP[(right) & 0xff]; \ -- (right) = (FP[((temp) >> 24) & 0xff] << 6) \ -- | (FP[((temp) >> 16) & 0xff] << 4) \ -- | (FP[((temp) >> 8) & 0xff] << 2) \ -- | FP[temp & 0xff]; \ -- } while(0); -- -- --/* -- * Finally, as a sample of how all this might be held together, the -- * following two macros do in-place encryptions and decryptions. left -- * and right are two unsigned DES_INT32 variables which at the beginning -- * are expected to hold the clear (encrypted) block in host byte order -- * (left the high order four bytes, right the low order). At the end -- * they will contain the encrypted (clear) block. temp is an unsigned DES_INT32 -- * used as a temporary. kp is an unsigned DES_INT32 pointer pointing at -- * the start of the key schedule. All these should be in registers. -- * -- * You can probably do better than these by rewriting for particular -- * situations. These aren't bad, though. -- * -- * The DEB macros enable debugging when this code breaks (typically -- * when a buggy compiler breaks it), by printing the intermediate values -- * at each stage of the encryption, so that by comparing the output to -- * a known good machine, the location of the first error can be found. -- */ --#define DES_DO_ENCRYPT_1(left, right, kp) \ -- do { \ -- int i; \ -- unsigned DES_INT32 temp1; \ -- DEB (("do_encrypt %8lX %8lX \n", left, right)); \ -- DES_INITIAL_PERM((left), (right), (temp1)); \ -- DEB ((" after IP %8lX %8lX\n", left, right)); \ -- for (i = 0; i < 8; i++) { \ -- DES_SP_ENCRYPT_ROUND((left), (right), (temp1), (kp)); \ -- DEB ((" round %2d %8lX %8lX \n", i*2, left, right)); \ -- DES_SP_ENCRYPT_ROUND((right), (left), (temp1), (kp)); \ -- DEB ((" round %2d %8lX %8lX \n", 1+i*2, left, right)); \ -- } \ -- DES_FINAL_PERM((left), (right), (temp1)); \ -- (kp) -= (2 * 16); \ -- DEB ((" after FP %8lX %8lX \n", left, right)); \ -- } while (0) -- --#define DES_DO_DECRYPT_1(left, right, kp) \ -- do { \ -- int i; \ -- unsigned DES_INT32 temp2; \ -- DES_INITIAL_PERM((left), (right), (temp2)); \ -- (kp) += (2 * 16); \ -- for (i = 0; i < 8; i++) { \ -- DES_SP_DECRYPT_ROUND((left), (right), (temp2), (kp)); \ -- DES_SP_DECRYPT_ROUND((right), (left), (temp2), (kp)); \ -- } \ -- DES_FINAL_PERM((left), (right), (temp2)); \ -- } while (0) -- --#if defined(CONFIG_SMALL) && !defined(CONFIG_SMALL_NO_CRYPTO) --extern void krb5int_des_do_encrypt_2(unsigned DES_INT32 *l, -- unsigned DES_INT32 *r, -- const unsigned DES_INT32 *k); --extern void krb5int_des_do_decrypt_2(unsigned DES_INT32 *l, -- unsigned DES_INT32 *r, -- const unsigned DES_INT32 *k); --#define DES_DO_ENCRYPT(L,R,K) krb5int_des_do_encrypt_2(&(L), &(R), (K)) --#define DES_DO_DECRYPT(L,R,K) krb5int_des_do_decrypt_2(&(L), &(R), (K)) --#else --#define DES_DO_ENCRYPT DES_DO_ENCRYPT_1 --#define DES_DO_DECRYPT DES_DO_DECRYPT_1 --#endif -- --/* -- * These are handy dandy utility thingies for straightening out bytes. -- * Included here because they're used a couple of places. -- */ --#define GET_HALF_BLOCK(lr, ip) ((lr) = load_32_be(ip), (ip) += 4) --#define PUT_HALF_BLOCK(lr, op) (store_32_be(lr, op), (op) += 4) -- --/* Shorthand that we'll need in several places, for creating values that -- really can hold 32 bits regardless of the prevailing int size. */ --#define FF_UINT32 ((unsigned DES_INT32) 0xFF) -- --#endif /* __DES_TABLES_H__ */ -diff --git a/src/lib/crypto/builtin/des/key_sched.c b/src/lib/crypto/builtin/des/key_sched.c -deleted file mode 100644 -index d6dedd93c6..0000000000 ---- a/src/lib/crypto/builtin/des/key_sched.c -+++ /dev/null -@@ -1,66 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/key_sched.c */ --/* -- * Copyright 1985, 1986, 1987, 1988, 1990 by the Massachusetts Institute -- * of Technology. -- * All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* -- * This routine computes the DES key schedule given a key. The -- * permutations and shifts have been done at compile time, resulting -- * in a direct one-step mapping from the input key to the key -- * schedule. -- * -- * Also checks parity and weak keys. -- * -- * Watch out for the subscripts -- most effectively start at 1 instead -- * of at zero. Maybe some bugs in that area. -- * -- * In case the user wants to cache the computed key schedule, it is -- * passed as an arg. Also implies that caller has explicit control -- * over zeroing both the key schedule and the key. -- * -- * Originally written 6/85 by Steve Miller, MIT Project Athena. -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES -- --int --mit_des_key_sched(mit_des_cblock k, mit_des_key_schedule schedule) --{ -- mit_des_make_key_sched(k,schedule); -- -- if (!mit_des_check_key_parity(k)) /* bad parity --> return -1 */ -- return(-1); -- -- if (mit_des_is_weak_key(k)) -- return(-2); -- -- /* if key was good, return 0 */ -- return 0; --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/des/keytest.data b/src/lib/crypto/builtin/des/keytest.data -deleted file mode 100644 -index 7ff34eedcf..0000000000 ---- a/src/lib/crypto/builtin/des/keytest.data -+++ /dev/null -@@ -1,171 +0,0 @@ --0101010101010101 95F8A5E5DD31D900 8000000000000000 --0101010101010101 DD7F121CA5015619 4000000000000000 --0101010101010101 2E8653104F3834EA 2000000000000000 --0101010101010101 4BD388FF6CD81D4F 1000000000000000 --0101010101010101 20B9E767B2FB1456 0800000000000000 --0101010101010101 55579380D77138EF 0400000000000000 --0101010101010101 6CC5DEFAAF04512F 0200000000000000 --0101010101010101 0D9F279BA5D87260 0100000000000000 --0101010101010101 D9031B0271BD5A0A 0080000000000000 --0101010101010101 424250B37C3DD951 0040000000000000 --0101010101010101 B8061B7ECD9A21E5 0020000000000000 --0101010101010101 F15D0F286B65BD28 0010000000000000 --0101010101010101 ADD0CC8D6E5DEBA1 0008000000000000 --0101010101010101 E6D5F82752AD63D1 0004000000000000 --0101010101010101 ECBFE3BD3F591A5E 0002000000000000 --0101010101010101 F356834379D165CD 0001000000000000 --0101010101010101 2B9F982F20037FA9 0000800000000000 --0101010101010101 889DE068A16F0BE6 0000400000000000 --0101010101010101 E19E275D846A1298 0000200000000000 --0101010101010101 329A8ED523D71AEC 0000100000000000 --0101010101010101 E7FCE22557D23C97 0000080000000000 --0101010101010101 12A9F5817FF2D65D 0000040000000000 --0101010101010101 A484C3AD38DC9C19 0000020000000000 --0101010101010101 FBE00A8A1EF8AD72 0000010000000000 --0101010101010101 750D079407521363 0000008000000000 --0101010101010101 64FEED9C724C2FAF 0000004000000000 --0101010101010101 F02B263B328E2B60 0000002000000000 --0101010101010101 9D64555A9A10B852 0000001000000000 --0101010101010101 D106FF0BED5255D7 0000000800000000 --0101010101010101 E1652C6B138C64A5 0000000400000000 --0101010101010101 E428581186EC8F46 0000000200000000 --0101010101010101 AEB5F5EDE22D1A36 0000000100000000 --0101010101010101 E943D7568AEC0C5C 0000000080000000 --0101010101010101 DF98C8276F54B04B 0000000040000000 --0101010101010101 B160E4680F6C696F 0000000020000000 --0101010101010101 FA0752B07D9C4AB8 0000000010000000 --0101010101010101 CA3A2B036DBC8502 0000000008000000 --0101010101010101 5E0905517BB59BCF 0000000004000000 --0101010101010101 814EEB3B91D90726 0000000002000000 --0101010101010101 4D49DB1532919C9F 0000000001000000 --0101010101010101 25EB5FC3F8CF0621 0000000000800000 --0101010101010101 AB6A20C0620D1C6F 0000000000400000 --0101010101010101 79E90DBC98F92CCA 0000000000200000 --0101010101010101 866ECEDD8072BB0E 0000000000100000 --0101010101010101 8B54536F2F3E64A8 0000000000080000 --0101010101010101 EA51D3975595B86B 0000000000040000 --0101010101010101 CAFFC6AC4542DE31 0000000000020000 --0101010101010101 8DD45A2DDF90796C 0000000000010000 --0101010101010101 1029D55E880EC2D0 0000000000008000 --0101010101010101 5D86CB23639DBEA9 0000000000004000 --0101010101010101 1D1CA853AE7C0C5F 0000000000002000 --0101010101010101 CE332329248F3228 0000000000001000 --0101010101010101 8405D1ABE24FB942 0000000000000800 --0101010101010101 E643D78090CA4207 0000000000000400 --0101010101010101 48221B9937748A23 0000000000000200 --0101010101010101 DD7C0BBD61FAFD54 0000000000000100 --0101010101010101 2FBC291A570DB5C4 0000000000000080 --0101010101010101 E07C30D7E4E26E12 0000000000000040 --0101010101010101 0953E2258E8E90A1 0000000000000020 --0101010101010101 5B711BC4CEEBF2EE 0000000000000010 --0101010101010101 CC083F1E6D9E85F6 0000000000000008 --0101010101010101 D2FD8867D50D2DFE 0000000000000004 --0101010101010101 06E7EA22CE92708F 0000000000000002 --0101010101010101 166B40B44ABA4BD6 0000000000000001 --8001010101010101 0000000000000000 95A8D72813DAA94D --4001010101010101 0000000000000000 0EEC1487DD8C26D5 --2001010101010101 0000000000000000 7AD16FFB79C45926 --1001010101010101 0000000000000000 D3746294CA6A6CF3 --0801010101010101 0000000000000000 809F5F873C1FD761 --0401010101010101 0000000000000000 C02FAFFEC989D1FC --0201010101010101 0000000000000000 4615AA1D33E72F10 --0180010101010101 0000000000000000 2055123350C00858 --0140010101010101 0000000000000000 DF3B99D6577397C8 --0120010101010101 0000000000000000 31FE17369B5288C9 --0110010101010101 0000000000000000 DFDD3CC64DAE1642 --0108010101010101 0000000000000000 178C83CE2B399D94 --0104010101010101 0000000000000000 50F636324A9B7F80 --0102010101010101 0000000000000000 A8468EE3BC18F06D --0101800101010101 0000000000000000 A2DC9E92FD3CDE92 --0101400101010101 0000000000000000 CAC09F797D031287 --0101200101010101 0000000000000000 90BA680B22AEB525 --0101100101010101 0000000000000000 CE7A24F350E280B6 --0101080101010101 0000000000000000 882BFF0AA01A0B87 --0101040101010101 0000000000000000 25610288924511C2 --0101020101010101 0000000000000000 C71516C29C75D170 --0101018001010101 0000000000000000 5199C29A52C9F059 --0101014001010101 0000000000000000 C22F0A294A71F29F --0101012001010101 0000000000000000 EE371483714C02EA --0101011001010101 0000000000000000 A81FBD448F9E522F --0101010801010101 0000000000000000 4F644C92E192DFED --0101010401010101 0000000000000000 1AFA9A66A6DF92AE --0101010201010101 0000000000000000 B3C1CC715CB879D8 --0101010180010101 0000000000000000 19D032E64AB0BD8B --0101010140010101 0000000000000000 3CFAA7A7DC8720DC --0101010120010101 0000000000000000 B7265F7F447AC6F3 --0101010110010101 0000000000000000 9DB73B3C0D163F54 --0101010108010101 0000000000000000 8181B65BABF4A975 --0101010104010101 0000000000000000 93C9B64042EAA240 --0101010102010101 0000000000000000 5570530829705592 --0101010101800101 0000000000000000 8638809E878787A0 --0101010101400101 0000000000000000 41B9A79AF79AC208 --0101010101200101 0000000000000000 7A9BE42F2009A892 --0101010101100101 0000000000000000 29038D56BA6D2745 --0101010101080101 0000000000000000 5495C6ABF1E5DF51 --0101010101040101 0000000000000000 AE13DBD561488933 --0101010101020101 0000000000000000 024D1FFA8904E389 --0101010101018001 0000000000000000 D1399712F99BF02E --0101010101014001 0000000000000000 14C1D7C1CFFEC79E --0101010101012001 0000000000000000 1DE5279DAE3BED6F --0101010101011001 0000000000000000 E941A33F85501303 --0101010101010801 0000000000000000 DA99DBBC9A03F379 --0101010101010401 0000000000000000 B7FC92F91D8E92E9 --0101010101010201 0000000000000000 AE8E5CAA3CA04E85 --0101010101010180 0000000000000000 9CC62DF43B6EED74 --0101010101010140 0000000000000000 D863DBB5C59A91A0 --0101010101010120 0000000000000000 A1AB2190545B91D7 --0101010101010110 0000000000000000 0875041E64C570F7 --0101010101010108 0000000000000000 5A594528BEBEF1CC --0101010101010104 0000000000000000 FCDB3291DE21F0C0 --0101010101010102 0000000000000000 869EFD7F9F265A09 --1046913489980131 0000000000000000 88D55E54F54C97B4 --1007103489988020 0000000000000000 0C0CC00C83EA48FD --10071034C8980120 0000000000000000 83BC8EF3A6570183 --1046103489988020 0000000000000000 DF725DCAD94EA2E9 --1086911519190101 0000000000000000 E652B53B550BE8B0 --1086911519580101 0000000000000000 AF527120C485CBB0 --5107B01519580101 0000000000000000 0F04CE393DB926D5 --1007B01519190101 0000000000000000 C9F00FFC74079067 --3107915498080101 0000000000000000 7CFD82A593252B4E --3107919498080101 0000000000000000 CB49A2F9E91363E3 --10079115B9080140 0000000000000000 00B588BE70D23F56 --3107911598080140 0000000000000000 406A9A6AB43399AE --1007D01589980101 0000000000000000 6CB773611DCA9ADA --9107911589980101 0000000000000000 67FD21C17DBB5D70 --9107D01589190101 0000000000000000 9592CB4110430787 --1007D01598980120 0000000000000000 A6B7FF68A318DDD3 --1007940498190101 0000000000000000 4D102196C914CA16 --0107910491190401 0000000000000000 2DFA9F4573594965 --0107910491190101 0000000000000000 B46604816C0E0774 --0107940491190401 0000000000000000 6E7E6221A4F34E87 --19079210981A0101 0000000000000000 AA85E74643233199 --1007911998190801 0000000000000000 2E5A19DB4D1962D6 --10079119981A0801 0000000000000000 23A866A809D30894 --1007921098190101 0000000000000000 D812D961F017D320 --100791159819010B 0000000000000000 055605816E58608F --1004801598190101 0000000000000000 ABD88E8B1B7716F1 --1004801598190102 0000000000000000 537AC95BE69DA1E1 --1004801598190108 0000000000000000 AED0F6AE3C25CDD8 --1002911598100104 0000000000000000 B3E35A5EE53E7B8D --1002911598190104 0000000000000000 61C79C71921A2EF8 --1002911598100201 0000000000000000 E2F5728F0995013C --1002911698100101 0000000000000000 1AEAC39A61F0A464 --7CA110454A1A6E57 01A1D6D039776742 690F5B0D9A26939B --0131D9619DC1376E 5CD54CA83DEF57DA 7A389D10354BD271 --07A1133E4A0B2686 0248D43806F67172 868EBB51CAB4599A --3849674C2602319E 51454B582DDF440A 7178876E01F19B2A --04B915BA43FEB5B6 42FD443059577FA2 AF37FB421F8C4095 --0113B970FD34F2CE 059B5E0851CF143A 86A560F10EC6D85B --0170F175468FB5E6 0756D8E0774761D2 0CD3DA020021DC09 --43297FAD38E373FE 762514B829BF486A EA676B2CB7DB2B7A --07A7137045DA2A16 3BDD119049372802 DFD64A815CAF1A0F --04689104C2FD3B2F 26955F6835AF609A 5C513C9C4886C088 --37D06BB516CB7546 164D5E404F275232 0A2AEEAE3FF4AB77 --1F08260D1AC2465E 6B056E18759F5CCA EF1BF03E5DFA575A --584023641ABA6176 004BD6EF09176062 88BF0DB6D70DEE56 --025816164629B007 480D39006EE762F2 A1F9915541020B56 --49793EBC79B3258F 437540C8698F3CFA 6FBF1CAFCFFD0556 --4FB05E1515AB73A7 072D43A077075292 2F22E49BAB7CA1AC --49E95D6D4CA229BF 02FE55778117F12A 5A6B612CC26CCE4A --018310DC409B26D6 1D9D5C5018F728C2 5F4C038ED12B2E41 --1C587F1C13924FEF 305532286D6F295A 63FAC0D034D9F793 -diff --git a/src/lib/crypto/builtin/des/t_verify.c b/src/lib/crypto/builtin/des/t_verify.c -deleted file mode 100644 -index 4a19933cad..0000000000 ---- a/src/lib/crypto/builtin/des/t_verify.c -+++ /dev/null -@@ -1,395 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/t_verify.c */ --/* -- * Copyright 1988, 1990 by the Massachusetts Institute of Technology. -- * All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ --/* -- * Copyright (C) 1998 by the FundsXpress, INC. -- * -- * All rights reserved. -- * -- * Export of this software from the United States of America may require -- * a specific license from the United States Government. It is the -- * responsibility of any person or organization contemplating export to -- * obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of FundsXpress. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. FundsXpress makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- */ -- --/* -- * -- * Program to test the correctness of the DES library -- * implementation. -- * -- * exit returns 0 ==> success -- * -1 ==> error -- */ -- --#include "k5-int.h" --#include "des_int.h" --#include --#include "com_err.h" -- --static void do_encrypt(unsigned char *, unsigned char *); --static void do_decrypt(unsigned char *, unsigned char *); -- --char *progname; --int nflag = 2; --int vflag; --int mflag; --int zflag; --int pid; --int mit_des_debug; -- --unsigned char cipher_text[64]; --unsigned char clear_text[64] = "Now is the time for all " ; --unsigned char clear_text2[64] = "7654321 Now is the time for "; --unsigned char clear_text3[64] = {2,0,0,0, 1,0,0,0}; --unsigned char output[64]; --unsigned char zero_text[8] = {0x0,0,0,0,0,0,0,0}; --unsigned char msb_text[8] = {0x0,0,0,0, 0,0,0,0x40}; /* to ANSI MSB */ --unsigned char *input; -- --/* 0x0123456789abcdef */ --unsigned char default_key[8] = { -- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef --}; --unsigned char key2[8] = { 0x08,0x19,0x2a,0x3b,0x4c,0x5d,0x6e,0x7f }; --unsigned char key3[8] = { 0x80,1,1,1,1,1,1,1 }; --mit_des_cblock s_key; --unsigned char default_ivec[8] = { -- 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef --}; --unsigned char *ivec; --unsigned char zero_key[8] = {1,1,1,1,1,1,1,1}; /* just parity bits */ -- --unsigned char cipher1[8] = { -- 0x25,0xdd,0xac,0x3e,0x96,0x17,0x64,0x67 --}; --unsigned char cipher2[8] = { -- 0x3f,0xa4,0x0e,0x8a,0x98,0x4d,0x48,0x15 --}; --unsigned char cipher3[64] = { -- 0xe5,0xc7,0xcd,0xde,0x87,0x2b,0xf2,0x7c, -- 0x43,0xe9,0x34,0x00,0x8c,0x38,0x9c,0x0f, -- 0x68,0x37,0x88,0x49,0x9a,0x7c,0x05,0xf6 --}; --unsigned char checksum[8] = { -- 0x58,0xd2,0xe7,0x7e,0x86,0x06,0x27,0x33 --}; -- --unsigned char zresult[8] = { -- 0x8c, 0xa6, 0x4d, 0xe9, 0xc1, 0xb1, 0x23, 0xa7 --}; -- --unsigned char mresult[8] = { -- 0xa3, 0x80, 0xe0, 0x2a, 0x6b, 0xe5, 0x46, 0x96 --}; -- -- --/* -- * Can also add : -- * plaintext = 0, key = 0, cipher = 0x8ca64de9c1b123a7 (or is it a 1?) -- */ -- --mit_des_key_schedule sched; -- --int --main(argc,argv) -- int argc; -- char *argv[]; --{ -- /* Local Declarations */ -- size_t in_length; -- int retval; -- int i, j; -- --#ifdef WINDOWS -- /* Set screen window buffer to infinite size -- MS default is tiny. */ -- _wsetscreenbuf (fileno (stdout), _WINBUFINF); --#endif -- progname=argv[0]; /* salt away invoking program */ -- -- while (--argc > 0 && (*++argv)[0] == '-') -- for (i=1; argv[0][i] != '\0'; i++) { -- switch (argv[0][i]) { -- -- /* debug flag */ -- case 'd': -- mit_des_debug=3; -- continue; -- -- case 'z': -- zflag = 1; -- continue; -- -- case 'm': -- mflag = 1; -- continue; -- -- default: -- printf("%s: illegal flag \"%c\" ", -- progname,argv[0][i]); -- exit(1); -- } -- }; -- -- if (argc) { -- fprintf(stderr, "Usage: %s [-dmz]\n", progname); -- exit(1); -- } -- -- /* do some initialisation */ -- -- /* use known input and key */ -- -- /* ECB zero text zero key */ -- if (zflag) { -- input = zero_text; -- mit_des_key_sched(zero_key, sched); -- printf("plaintext = key = 0, cipher = 0x8ca64de9c1b123a7\n"); -- do_encrypt(input,cipher_text); -- printf("\tcipher = (low to high bytes)\n\t\t"); -- for (j = 0; j<=7; j++) -- printf("%02x ",cipher_text[j]); -- printf("\n"); -- do_decrypt(output,cipher_text); -- if ( memcmp((char *)cipher_text, (char *)zresult, 8) ) { -- printf("verify: error in zero key test\n"); -- exit(-1); -- } -- -- exit(0); -- } -- -- if (mflag) { -- input = msb_text; -- mit_des_key_sched(key3, sched); -- printf("plaintext = 0x00 00 00 00 00 00 00 40, "); -- printf("key = 0x80 01 01 01 01 01 01 01\n"); -- printf(" cipher = 0xa380e02a6be54696\n"); -- do_encrypt(input,cipher_text); -- printf("\tcipher = (low to high bytes)\n\t\t"); -- for (j = 0; j<=7; j++) { -- printf("%02x ",cipher_text[j]); -- } -- printf("\n"); -- do_decrypt(output,cipher_text); -- if ( memcmp((char *)cipher_text, (char *)mresult, 8) ) { -- printf("verify: error in msb test\n"); -- exit(-1); -- } -- exit(0); -- } -- -- /* ECB mode Davies and Price */ -- { -- input = zero_text; -- mit_des_key_sched(key2, sched); -- printf("Examples per FIPS publication 81, keys ivs and cipher\n"); -- printf("in hex. These are the correct answers, see below for\n"); -- printf("the actual answers.\n\n"); -- printf("Examples per Davies and Price.\n\n"); -- printf("EXAMPLE ECB\tkey = 08192a3b4c5d6e7f\n"); -- printf("\tclear = 0\n"); -- printf("\tcipher = 25 dd ac 3e 96 17 64 67\n"); -- printf("ACTUAL ECB\n"); -- printf("\tclear \"%s\"\n", input); -- do_encrypt(input,cipher_text); -- printf("\tcipher = (low to high bytes)\n\t\t"); -- for (j = 0; j<=7; j++) -- printf("%02x ",cipher_text[j]); -- printf("\n\n"); -- do_decrypt(output,cipher_text); -- if ( memcmp((char *)cipher_text, (char *)cipher1, 8) ) { -- printf("verify: error in ECB encryption\n"); -- exit(-1); -- } -- else -- printf("verify: ECB encryption is correct\n\n"); -- } -- -- /* ECB mode */ -- { -- mit_des_key_sched(default_key, sched); -- input = clear_text; -- ivec = default_ivec; -- printf("EXAMPLE ECB\tkey = 0123456789abcdef\n"); -- printf("\tclear = \"Now is the time for all \"\n"); -- printf("\tcipher = 3f a4 0e 8a 98 4d 48 15 ...\n"); -- printf("ACTUAL ECB\n\tclear \"%s\"",input); -- do_encrypt(input,cipher_text); -- printf("\n\tcipher = (low to high bytes)\n\t\t"); -- for (j = 0; j<=7; j++) { -- printf("%02x ",cipher_text[j]); -- } -- printf("\n\n"); -- do_decrypt(output,cipher_text); -- if ( memcmp((char *)cipher_text, (char *)cipher2, 8) ) { -- printf("verify: error in ECB encryption\n"); -- exit(-1); -- } -- else -- printf("verify: ECB encryption is correct\n\n"); -- } -- -- /* CBC mode */ -- printf("EXAMPLE CBC\tkey = 0123456789abcdef"); -- printf("\tiv = 1234567890abcdef\n"); -- printf("\tclear = \"Now is the time for all \"\n"); -- printf("\tcipher =\te5 c7 cd de 87 2b f2 7c\n"); -- printf("\t\t\t43 e9 34 00 8c 38 9c 0f\n"); -- printf("\t\t\t68 37 88 49 9a 7c 05 f6\n"); -- -- printf("ACTUAL CBC\n\tclear \"%s\"\n",input); -- in_length = strlen((char *)input); -- if ((retval = mit_des_cbc_encrypt((const mit_des_cblock *) input, -- (mit_des_cblock *) cipher_text, -- (size_t) in_length, -- sched, -- ivec, -- MIT_DES_ENCRYPT))) { -- com_err("des verify", retval, "can't encrypt"); -- exit(-1); -- } -- printf("\tciphertext = (low to high bytes)\n"); -- for (i = 0; i <= 2; i++) { -- printf("\t\t"); -- for (j = 0; j <= 7; j++) { -- printf("%02x ",cipher_text[i*8+j]); -- } -- printf("\n"); -- } -- if ((retval = mit_des_cbc_encrypt((const mit_des_cblock *) cipher_text, -- (mit_des_cblock *) clear_text, -- (size_t) in_length, -- sched, -- ivec, -- MIT_DES_DECRYPT))) { -- com_err("des verify", retval, "can't decrypt"); -- exit(-1); -- } -- printf("\tdecrypted clear_text = \"%s\"\n",clear_text); -- -- if ( memcmp((char *)cipher_text, (char *)cipher3, in_length) ) { -- printf("verify: error in CBC encryption\n"); -- exit(-1); -- } -- else -- printf("verify: CBC encryption is correct\n\n"); -- -- printf("EXAMPLE CBC checksum"); -- printf("\tkey = 0123456789abcdef\tiv = 1234567890abcdef\n"); -- printf("\tclear =\t\t\"7654321 Now is the time for \"\n"); -- printf("\tchecksum\t58 d2 e7 7e 86 06 27 33, "); -- printf("or some part thereof\n"); -- input = clear_text2; -- mit_des_cbc_cksum(input,cipher_text, strlen((char *)input), -- sched,ivec); -- printf("ACTUAL CBC checksum\n"); -- printf("\t\tencrypted cksum = (low to high bytes)\n\t\t"); -- for (j = 0; j<=7; j++) -- printf("%02x ",cipher_text[j]); -- printf("\n\n"); -- if ( memcmp((char *)cipher_text, (char *)checksum, 8) ) { -- printf("verify: error in CBC checksum\n"); -- exit(-1); -- } -- else -- printf("verify: CBC checksum is correct\n\n"); -- -- exit(0); --} -- --static void --do_encrypt(in,out) -- unsigned char *in; -- unsigned char *out; --{ -- int i, j; -- for (i =1; i<=nflag; i++) { -- mit_des_cbc_encrypt((const mit_des_cblock *)in, -- (mit_des_cblock *)out, -- 8, -- sched, -- zero_text, -- MIT_DES_ENCRYPT); -- if (mit_des_debug) { -- printf("\nclear %s\n",in); -- for (j = 0; j<=7; j++) -- printf("%02X ",in[j] & 0xff); -- printf("\tcipher "); -- for (j = 0; j<=7; j++) -- printf("%02X ",out[j] & 0xff); -- } -- } --} -- --static void --do_decrypt(in,out) -- unsigned char *out; -- unsigned char *in; -- /* try to invert it */ --{ -- int i, j; -- for (i =1; i<=nflag; i++) { -- mit_des_cbc_encrypt((const mit_des_cblock *)out, -- (mit_des_cblock *)in, -- 8, -- sched, -- zero_text, -- MIT_DES_DECRYPT); -- if (mit_des_debug) { -- printf("clear %s\n",in); -- for (j = 0; j<=7; j++) -- printf("%02X ",in[j] & 0xff); -- printf("\tcipher "); -- for (j = 0; j<=7; j++) -- printf("%02X ",out[j] & 0xff); -- } -- } --} -- --/* -- * Fake out the DES library, for the purposes of testing. -- */ -- --int --mit_des_is_weak_key(key) -- mit_des_cblock key; --{ -- return 0; /* fake it out for testing */ --} -diff --git a/src/lib/crypto/builtin/des/weak_key.c b/src/lib/crypto/builtin/des/weak_key.c -deleted file mode 100644 -index f8304a3638..0000000000 ---- a/src/lib/crypto/builtin/des/weak_key.c -+++ /dev/null -@@ -1,90 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/builtin/des/weak_key.c */ --/* -- * Copyright 1989,1990 by the Massachusetts Institute of Technology. -- * All Rights Reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --/* -- * Under U.S. law, this software may not be exported outside the US -- * without license from the U.S. Commerce department. -- * -- * These routines form the library interface to the DES facilities. -- * -- * Originally written 8/85 by Steve Miller, MIT Project Athena. -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES -- --/* -- * The following are the weak DES keys: -- */ --static const mit_des_cblock weak[16] = { -- /* weak keys */ -- {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, -- {0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe}, -- {0x1f,0x1f,0x1f,0x1f,0x0e,0x0e,0x0e,0x0e}, -- {0xe0,0xe0,0xe0,0xe0,0xf1,0xf1,0xf1,0xf1}, -- -- /* semi-weak */ -- {0x01,0xfe,0x01,0xfe,0x01,0xfe,0x01,0xfe}, -- {0xfe,0x01,0xfe,0x01,0xfe,0x01,0xfe,0x01}, -- -- {0x1f,0xe0,0x1f,0xe0,0x0e,0xf1,0x0e,0xf1}, -- {0xe0,0x1f,0xe0,0x1f,0xf1,0x0e,0xf1,0x0e}, -- -- {0x01,0xe0,0x01,0xe0,0x01,0xf1,0x01,0xf1}, -- {0xe0,0x01,0xe0,0x01,0xf1,0x01,0xf1,0x01}, -- -- {0x1f,0xfe,0x1f,0xfe,0x0e,0xfe,0x0e,0xfe}, -- {0xfe,0x1f,0xfe,0x1f,0xfe,0x0e,0xfe,0x0e}, -- -- {0x01,0x1f,0x01,0x1f,0x01,0x0e,0x01,0x0e}, -- {0x1f,0x01,0x1f,0x01,0x0e,0x01,0x0e,0x01}, -- -- {0xe0,0xfe,0xe0,0xfe,0xf1,0xfe,0xf1,0xfe}, -- {0xfe,0xe0,0xfe,0xe0,0xfe,0xf1,0xfe,0xf1} --}; -- --/* -- * mit_des_is_weak_key: returns true iff key is a [semi-]weak des key. -- * -- * Requires: key has correct odd parity. -- */ --int --mit_des_is_weak_key(mit_des_cblock key) --{ -- unsigned int i; -- const mit_des_cblock *weak_p = weak; -- -- for (i = 0; i < (sizeof(weak)/sizeof(mit_des_cblock)); i++) { -- if (!memcmp(weak_p++,key,sizeof(mit_des_cblock))) -- return 1; -- } -- -- return 0; --} -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/builtin/enc_provider/Makefile.in b/src/lib/crypto/builtin/enc_provider/Makefile.in -index 6ad7cbd4e0..655966b255 100644 ---- a/src/lib/crypto/builtin/enc_provider/Makefile.in -+++ b/src/lib/crypto/builtin/enc_provider/Makefile.in -@@ -1,6 +1,6 @@ - mydir=lib$(S)crypto$(S)builtin$(S)enc_provider - BUILDTOP=$(REL)..$(S)..$(S)..$(S).. --LOCALINCLUDES = -I$(srcdir)/../des -I$(srcdir)/../aes -I$(srcdir)/../camellia \ -+LOCALINCLUDES = -I$(srcdir)/../aes -I$(srcdir)/../camellia \ - -I$(srcdir)/../../krb $(CRYPTO_IMPL_CFLAGS) - - ##DOS##BUILDTOP = ..\..\..\.. -@@ -8,19 +8,16 @@ LOCALINCLUDES = -I$(srcdir)/../des -I$(srcdir)/../aes -I$(srcdir)/../camellia \ - ##DOS##OBJFILE = ..\..\$(OUTPRE)enc_provider.lst - - STLIBOBJS= \ -- des3.o \ - rc4.o \ - aes.o \ - camellia.o - - OBJS= \ -- $(OUTPRE)des3.$(OBJEXT) \ - $(OUTPRE)aes.$(OBJEXT) \ - $(OUTPRE)camellia.$(OBJEXT) \ - $(OUTPRE)rc4.$(OBJEXT) - - SRCS= \ -- $(srcdir)/des3.c \ - $(srcdir)/aes.c \ - $(srcdir)/camellia.c \ - $(srcdir)/rc4.c -diff --git a/src/lib/crypto/builtin/enc_provider/deps b/src/lib/crypto/builtin/enc_provider/deps -index a3414a38ec..dc29d9fce8 100644 ---- a/src/lib/crypto/builtin/enc_provider/deps -+++ b/src/lib/crypto/builtin/enc_provider/deps -@@ -1,17 +1,6 @@ - # - # Generated makefile dependencies follow. - # --des3.so des3.po $(OUTPRE)des3.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(srcdir)/../des/des_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des3.c - aes.so aes.po $(OUTPRE)aes.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ - $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ - $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -diff --git a/src/lib/crypto/builtin/enc_provider/des3.c b/src/lib/crypto/builtin/enc_provider/des3.c -deleted file mode 100644 -index c2634d5e10..0000000000 ---- a/src/lib/crypto/builtin/enc_provider/des3.c -+++ /dev/null -@@ -1,109 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* -- * Copyright (C) 1998 by the FundsXpress, INC. -- * -- * All rights reserved. -- * -- * Export of this software from the United States of America may require -- * a specific license from the United States Government. It is the -- * responsibility of any person or organization contemplating export to -- * obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of FundsXpress. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. FundsXpress makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- */ -- --#include "crypto_int.h" --#include "des_int.h" -- --#ifdef K5_BUILTIN_DES -- --static krb5_error_code --validate_and_schedule(krb5_key key, const krb5_data *ivec, -- const krb5_crypto_iov *data, size_t num_data, -- mit_des3_key_schedule *schedule) --{ -- if (key->keyblock.length != 24) -- return(KRB5_BAD_KEYSIZE); -- if (iov_total_length(data, num_data, FALSE) % 8 != 0) -- return(KRB5_BAD_MSIZE); -- if (ivec && (ivec->length != 8)) -- return(KRB5_BAD_MSIZE); -- -- switch (mit_des3_key_sched(*(mit_des3_cblock *)key->keyblock.contents, -- *schedule)) { -- case -1: -- return(KRB5DES_BAD_KEYPAR); -- case -2: -- return(KRB5DES_WEAK_KEY); -- } -- return 0; --} -- --static krb5_error_code --k5_des3_encrypt(krb5_key key, const krb5_data *ivec, krb5_crypto_iov *data, -- size_t num_data) --{ -- mit_des3_key_schedule schedule; -- krb5_error_code err; -- -- err = validate_and_schedule(key, ivec, data, num_data, &schedule); -- if (err) -- return err; -- -- /* this has a return value, but the code always returns zero */ -- krb5int_des3_cbc_encrypt(data, num_data, -- schedule[0], schedule[1], schedule[2], -- ivec != NULL ? (unsigned char *) ivec->data : -- NULL); -- -- zap(schedule, sizeof(schedule)); -- -- return(0); --} -- --static krb5_error_code --k5_des3_decrypt(krb5_key key, const krb5_data *ivec, krb5_crypto_iov *data, -- size_t num_data) --{ -- mit_des3_key_schedule schedule; -- krb5_error_code err; -- -- err = validate_and_schedule(key, ivec, data, num_data, &schedule); -- if (err) -- return err; -- -- /* this has a return value, but the code always returns zero */ -- krb5int_des3_cbc_decrypt(data, num_data, -- schedule[0], schedule[1], schedule[2], -- ivec != NULL ? (unsigned char *) ivec->data : -- NULL); -- -- zap(schedule, sizeof(schedule)); -- -- return 0; --} -- --const struct krb5_enc_provider krb5int_enc_des3 = { -- 8, -- 21, 24, -- k5_des3_encrypt, -- k5_des3_decrypt, -- NULL, -- krb5int_des_init_state, -- krb5int_default_free_state --}; -- --#endif /* K5_BUILTIN_DES */ -diff --git a/src/lib/crypto/crypto_tests/t_cf2.expected b/src/lib/crypto/crypto_tests/t_cf2.expected -index f8251a16cb..bc6aa50c84 100644 ---- a/src/lib/crypto/crypto_tests/t_cf2.expected -+++ b/src/lib/crypto/crypto_tests/t_cf2.expected -@@ -1,6 +1,5 @@ - 97df97e4b798b29eb31ed7280287a92a - 4d6ca4e629785c1f01baf55e2e548566b9617ae3a96868c337cb93b5e72b1c7b --e58f9eb643862c13ad38e529313462a7f73e62834fe54a01 - 24d7f6b6bae4e5c00d2082c5ebab3672 - edd02a39d2dbde31611c16e610be062c - 67f6ea530aea85a37dcbb23349ea52dcc61ca8493ff557252327fd8304341584 -diff --git a/src/lib/crypto/crypto_tests/t_cf2.in b/src/lib/crypto/crypto_tests/t_cf2.in -index 73e2f8fbc9..c4d23b506b 100644 ---- a/src/lib/crypto/crypto_tests/t_cf2.in -+++ b/src/lib/crypto/crypto_tests/t_cf2.in -@@ -8,11 +8,6 @@ key1 - key2 - a - b --16 --key1 --key2 --a --b - 23 - key1 - key2 -diff --git a/src/lib/crypto/crypto_tests/t_cksums.c b/src/lib/crypto/crypto_tests/t_cksums.c -index 557340ec5e..9f9a177ef0 100644 ---- a/src/lib/crypto/crypto_tests/t_cksums.c -+++ b/src/lib/crypto/crypto_tests/t_cksums.c -@@ -59,16 +59,6 @@ struct test { - "\xDA\x39\xA3\xEE\x5E\x6B\x4B\x0D\x32\x55\xBF\xEF\x95\x60\x18\x90" - "\xAF\xD8\x07\x09" } - }, -- { -- { KV5M_DATA, 9, "six seven" }, -- CKSUMTYPE_HMAC_SHA1_DES3, ENCTYPE_DES3_CBC_SHA1, 2, -- { KV5M_DATA, 24, -- "\x7A\x25\xDF\x89\x92\x29\x6D\xCE\xDA\x0E\x13\x5B\xC4\x04\x6E\x23" -- "\x75\xB3\xC1\x4C\x98\xFB\xC1\x62" }, -- { KV5M_DATA, 20, -- "\x0E\xEF\xC9\xC3\xE0\x49\xAA\xBC\x1B\xA5\xC4\x01\x67\x7D\x9A\xB6" -- "\x99\x08\x2B\xB4" } -- }, - { - { KV5M_DATA, 37, "eight nine ten eleven twelve thirteen" }, - CKSUMTYPE_HMAC_SHA1_96_AES128, ENCTYPE_AES128_CTS_HMAC_SHA1_96, 3, -diff --git a/src/lib/crypto/crypto_tests/t_decrypt.c b/src/lib/crypto/crypto_tests/t_decrypt.c -index a40a855007..716f2c337a 100644 ---- a/src/lib/crypto/crypto_tests/t_decrypt.c -+++ b/src/lib/crypto/crypto_tests/t_decrypt.c -@@ -39,62 +39,6 @@ struct test { - krb5_data keybits; - krb5_data ciphertext; - } test_cases[] = { -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 0, "", }, 0, -- { KV5M_DATA, 24, -- "\x7A\x25\xDF\x89\x92\x29\x6D\xCE\xDA\x0E\x13\x5B\xC4\x04\x6E\x23" -- "\x75\xB3\xC1\x4C\x98\xFB\xC1\x62" }, -- { KV5M_DATA, 28, -- "\x54\x8A\xF4\xD5\x04\xF7\xD7\x23\x30\x3F\x12\x17\x5F\xE8\x38\x6B" -- "\x7B\x53\x35\xA9\x67\xBA\xD6\x1F\x3B\xF0\xB1\x43" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 1, "1", }, 1, -- { KV5M_DATA, 24, -- "\xBC\x07\x83\x89\x15\x13\xD5\xCE\x57\xBC\x13\x8F\xD3\xC1\x1A\xE6" -- "\x40\x45\x23\x85\x32\x29\x62\xB6" }, -- { KV5M_DATA, 36, -- "\x9C\x3C\x1D\xBA\x47\x47\xD8\x5A\xF2\x91\x6E\x47\x45\xF2\xDC\xE3" -- "\x80\x46\x79\x6E\x51\x04\xBC\xCD\xFB\x66\x9A\x91\xD4\x4B\xC3\x56" -- "\x66\x09\x45\xC7" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 9, "9 bytesss", }, 2, -- { KV5M_DATA, 24, -- "\x2F\xD0\xF7\x25\xCE\x04\x10\x0D\x2F\xC8\xA1\x80\x98\x83\x1F\x85" -- "\x0B\x45\xD9\xEF\x85\x0B\xD9\x20" }, -- { KV5M_DATA, 44, -- "\xCF\x91\x44\xEB\xC8\x69\x79\x81\x07\x5A\x8B\xAD\x8D\x74\xE5\xD7" -- "\xD5\x91\xEB\x7D\x97\x70\xC7\xAD\xA2\x5E\xE8\xC5\xB3\xD6\x94\x44" -- "\xDF\xEC\x79\xA5\xB7\xA0\x14\x82\xD9\xAF\x74\xE6" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 13, "13 bytes byte", }, 3, -- { KV5M_DATA, 24, -- "\x0D\xD5\x20\x94\xE0\xF4\x1C\xEC\xCB\x5B\xE5\x10\xA7\x64\xB3\x51" -- "\x76\xE3\x98\x13\x32\xF1\xE5\x98" }, -- { KV5M_DATA, 44, -- "\x83\x9A\x17\x08\x1E\xCB\xAF\xBC\xDC\x91\xB8\x8C\x69\x55\xDD\x3C" -- "\x45\x14\x02\x3C\xF1\x77\xB7\x7B\xF0\xD0\x17\x7A\x16\xF7\x05\xE8" -- "\x49\xCB\x77\x81\xD7\x6A\x31\x6B\x19\x3F\x8D\x30" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 30, "30 bytes bytes bytes bytes byt", }, 4, -- { KV5M_DATA, 24, -- "\xF1\x16\x86\xCB\xBC\x9E\x23\xEA\x54\xFE\xCD\x2A\x3D\xCD\xFB\x20" -- "\xB6\xFE\x98\xBF\x26\x45\xC4\xC4" }, -- { KV5M_DATA, 60, -- "\x89\x43\x3E\x83\xFD\x0E\xA3\x66\x6C\xFF\xCD\x18\xD8\xDE\xEB\xC5" -- "\x3B\x9A\x34\xED\xBE\xB1\x59\xD9\xF6\x67\xC6\xC2\xB9\xA9\x64\x40" -- "\x1D\x55\xE7\xE9\xC6\x8D\x64\x8D\x65\xC3\xAA\x84\xFF\xA3\x79\x0C" -- "\x14\xA8\x64\xDA\x80\x73\xA9\xA9\x5C\x4B\xA2\xBC" } -- }, -- - { - ENCTYPE_ARCFOUR_HMAC, - { KV5M_DATA, 0, "", }, 0, -@@ -524,7 +468,6 @@ printhex(const char *head, void *data, size_t len) - - static krb5_enctype - enctypes[] = { -- ENCTYPE_DES3_CBC_SHA1, - ENCTYPE_ARCFOUR_HMAC, - ENCTYPE_ARCFOUR_HMAC_EXP, - ENCTYPE_AES128_CTS_HMAC_SHA1_96, -diff --git a/src/lib/crypto/crypto_tests/t_derive.c b/src/lib/crypto/crypto_tests/t_derive.c -index afbf7477f6..93ce30da20 100644 ---- a/src/lib/crypto/crypto_tests/t_derive.c -+++ b/src/lib/crypto/crypto_tests/t_derive.c -@@ -38,41 +38,6 @@ struct test { - enum deriv_alg alg; - krb5_data expected_key; - } test_cases[] = { -- /* Kc, Ke, Kei for a DES3 key */ -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 24, -- "\x85\x0B\xB5\x13\x58\x54\x8C\xD0\x5E\x86\x76\x8C\x31\x3E\x3B\xFE" -- "\xF7\x51\x19\x37\xDC\xF7\x2C\x3E" }, -- { KV5M_DATA, 5, "\0\0\0\2\x99" }, -- DERIVE_RFC3961, -- { KV5M_DATA, 24, -- "\xF7\x8C\x49\x6D\x16\xE6\xC2\xDA\xE0\xE0\xB6\xC2\x40\x57\xA8\x4C" -- "\x04\x26\xAE\xEF\x26\xFD\x6D\xCE" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 24, -- "\x85\x0B\xB5\x13\x58\x54\x8C\xD0\x5E\x86\x76\x8C\x31\x3E\x3B\xFE" -- "\xF7\x51\x19\x37\xDC\xF7\x2C\x3E" }, -- { KV5M_DATA, 5, "\0\0\0\2\xAA" }, -- DERIVE_RFC3961, -- { KV5M_DATA, 24, -- "\x5B\x57\x23\xD0\xB6\x34\xCB\x68\x4C\x3E\xBA\x52\x64\xE9\xA7\x0D" -- "\x52\xE6\x83\x23\x1A\xD3\xC4\xCE" } -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- { KV5M_DATA, 24, -- "\x85\x0B\xB5\x13\x58\x54\x8C\xD0\x5E\x86\x76\x8C\x31\x3E\x3B\xFE" -- "\xF7\x51\x19\x37\xDC\xF7\x2C\x3E" }, -- { KV5M_DATA, 5, "\0\0\0\2\x55" }, -- DERIVE_RFC3961, -- { KV5M_DATA, 24, -- "\xA7\x7C\x94\x98\x0E\x9B\x73\x45\xA8\x15\x25\xC4\x23\xA7\x37\xCE" -- "\x67\xF4\xCD\x91\xB6\xB3\xDA\x45" } -- }, -- - /* Kc, Ke, Ki for an AES-128 key */ - { - ENCTYPE_AES128_CTS_HMAC_SHA1_96, -@@ -286,7 +251,6 @@ static const struct krb5_enc_provider * - get_enc_provider(krb5_enctype enctype) - { - switch (enctype) { -- case ENCTYPE_DES3_CBC_SHA1: return &krb5int_enc_des3; - case ENCTYPE_AES128_CTS_HMAC_SHA1_96: return &krb5int_enc_aes128; - case ENCTYPE_AES256_CTS_HMAC_SHA1_96: return &krb5int_enc_aes256; - case ENCTYPE_CAMELLIA128_CTS_CMAC: return &krb5int_enc_camellia128; -diff --git a/src/lib/crypto/crypto_tests/t_encrypt.c b/src/lib/crypto/crypto_tests/t_encrypt.c -index bd9b94691c..290a72e1e0 100644 ---- a/src/lib/crypto/crypto_tests/t_encrypt.c -+++ b/src/lib/crypto/crypto_tests/t_encrypt.c -@@ -37,7 +37,6 @@ - - /* What enctypes should we test?*/ - krb5_enctype interesting_enctypes[] = { -- ENCTYPE_DES3_CBC_SHA1, - ENCTYPE_ARCFOUR_HMAC, - ENCTYPE_ARCFOUR_HMAC_EXP, - ENCTYPE_AES256_CTS_HMAC_SHA1_96, -diff --git a/src/lib/crypto/crypto_tests/t_short.c b/src/lib/crypto/crypto_tests/t_short.c -index d4c2b97dfd..4466b71158 100644 ---- a/src/lib/crypto/crypto_tests/t_short.c -+++ b/src/lib/crypto/crypto_tests/t_short.c -@@ -34,7 +34,6 @@ - #include "k5-int.h" - - krb5_enctype interesting_enctypes[] = { -- ENCTYPE_DES3_CBC_SHA1, - ENCTYPE_ARCFOUR_HMAC, - ENCTYPE_ARCFOUR_HMAC_EXP, - ENCTYPE_AES256_CTS_HMAC_SHA1_96, -diff --git a/src/lib/crypto/crypto_tests/t_str2key.c b/src/lib/crypto/crypto_tests/t_str2key.c -index cdb1acc6d0..ef4c4a7d3b 100644 ---- a/src/lib/crypto/crypto_tests/t_str2key.c -+++ b/src/lib/crypto/crypto_tests/t_str2key.c -@@ -35,58 +35,6 @@ struct test { - krb5_error_code expected_err; - krb5_boolean allow_weak; - } test_cases[] = { -- /* Test vectors from RFC 3961 appendix A.4. */ -- { -- ENCTYPE_DES3_CBC_SHA1, -- "password", -- { KV5M_DATA, 21, "ATHENA.MIT.EDUraeburn" }, -- { KV5M_DATA, 0, NULL }, -- { KV5M_DATA, 24, "\x85\x0B\xB5\x13\x58\x54\x8C\xD0\x5E\x86\x76\x8C" -- "\x31\x3E\x3B\xFE\xF7\x51\x19\x37\xDC\xF7\x2C\x3E" }, -- 0, -- FALSE -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- "potatoe", -- { KV5M_DATA, 19, "WHITEHOUSE.GOVdanny" }, -- { KV5M_DATA, 0, NULL }, -- { KV5M_DATA, 24, "\xDF\xCD\x23\x3D\xD0\xA4\x32\x04\xEA\x6D\xC4\x37" -- "\xFB\x15\xE0\x61\xB0\x29\x79\xC1\xF7\x4F\x37\x7A" }, -- 0, -- FALSE -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- "penny", -- { KV5M_DATA, 19, "EXAMPLE.COMbuckaroo" }, -- { KV5M_DATA, 0, NULL }, -- { KV5M_DATA, 24, "\x6D\x2F\xCD\xF2\xD6\xFB\xBC\x3D\xDC\xAD\xB5\xDA" -- "\x57\x10\xA2\x34\x89\xB0\xD3\xB6\x9D\x5D\x9D\x4A" }, -- 0, -- FALSE -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- "\xC3\x9F", -- { KV5M_DATA, 23, "ATHENA.MIT.EDUJuri\xC5\xA1\x69\xC4\x87" }, -- { KV5M_DATA, 0, NULL }, -- { KV5M_DATA, 24, "\x16\xD5\xA4\x0E\x1C\xE3\xBA\xCB\x61\xB9\xDC\xE0" -- "\x04\x70\x32\x4C\x83\x19\x73\xA7\xB9\x52\xFE\xB0" }, -- 0, -- FALSE -- }, -- { -- ENCTYPE_DES3_CBC_SHA1, -- "\xF0\x9D\x84\x9E", -- { KV5M_DATA, 18, "EXAMPLE.COMpianist" }, -- { KV5M_DATA, 0, NULL }, -- { KV5M_DATA, 24, "\x85\x76\x37\x26\x58\x5D\xBC\x1C\xCE\x6E\xC4\x3E" -- "\x1F\x75\x1F\x07\xF1\xC4\xCB\xB0\x98\xF4\x0B\x19" }, -- 0, -- FALSE -- }, -- - /* Test vectors from RFC 3962 appendix B. */ - { - ENCTYPE_AES128_CTS_HMAC_SHA1_96, -diff --git a/src/lib/crypto/crypto_tests/vectors.c b/src/lib/crypto/crypto_tests/vectors.c -index bcf5c9106f..eb107dbcd2 100644 ---- a/src/lib/crypto/crypto_tests/vectors.c -+++ b/src/lib/crypto/crypto_tests/vectors.c -@@ -190,8 +190,6 @@ test_s2k (krb5_enctype enctype) - } - } - --static void test_des3_s2k () { test_s2k (ENCTYPE_DES3_CBC_SHA1); } -- - static void - keyToData (krb5_keyblock *k, krb5_data *d) - { -@@ -208,8 +206,6 @@ void check_error (int r, int line) { - } - #define CHECK check_error(r, __LINE__) - --extern struct krb5_enc_provider krb5int_enc_des3; --struct krb5_enc_provider *enc = &krb5int_enc_des3; - extern struct krb5_enc_provider krb5int_enc_aes128, krb5int_enc_aes256; - - void DK (krb5_keyblock *out, krb5_keyblock *in, const krb5_data *usage) { -diff --git a/src/lib/crypto/krb/Makefile.in b/src/lib/crypto/krb/Makefile.in -index cb2e40a3a5..f66698bd53 100644 ---- a/src/lib/crypto/krb/Makefile.in -+++ b/src/lib/crypto/krb/Makefile.in -@@ -47,7 +47,6 @@ STLIBOBJS=\ - prf.o \ - prf_aes2.o \ - prf_cmac.o \ -- prf_des.o \ - prf_dk.o \ - prf_rc4.o \ - prng.o \ -@@ -103,7 +102,6 @@ OBJS=\ - $(OUTPRE)prf.$(OBJEXT) \ - $(OUTPRE)prf_aes2.$(OBJEXT) \ - $(OUTPRE)prf_cmac.$(OBJEXT) \ -- $(OUTPRE)prf_des.$(OBJEXT) \ - $(OUTPRE)prf_dk.$(OBJEXT) \ - $(OUTPRE)prf_rc4.$(OBJEXT) \ - $(OUTPRE)prng.$(OBJEXT) \ -@@ -159,7 +157,6 @@ SRCS=\ - $(srcdir)/prf.c \ - $(srcdir)/prf_aes2.c \ - $(srcdir)/prf_cmac.c \ -- $(srcdir)/prf_des.c \ - $(srcdir)/prf_dk.c \ - $(srcdir)/prf_rc4.c \ - $(srcdir)/prng.c \ -diff --git a/src/lib/crypto/krb/cksumtypes.c b/src/lib/crypto/krb/cksumtypes.c -index f7ba322f24..25a3ffd2d2 100644 ---- a/src/lib/crypto/krb/cksumtypes.c -+++ b/src/lib/crypto/krb/cksumtypes.c -@@ -52,12 +52,6 @@ const struct krb5_cksumtypes krb5int_cksumtypes_list[] = { - krb5int_unkeyed_checksum, NULL, - 20, 20, CKSUM_UNKEYED }, - -- { CKSUMTYPE_HMAC_SHA1_DES3, -- "hmac-sha1-des3", { "hmac-sha1-des3-kd" }, "HMAC-SHA1 DES3 key", -- &krb5int_enc_des3, &krb5int_hash_sha1, -- krb5int_dk_checksum, NULL, -- 20, 20, 0 }, -- - { CKSUMTYPE_HMAC_MD5_ARCFOUR, - "hmac-md5-rc4", { "hmac-md5-enc", "hmac-md5-earcfour" }, - "Microsoft HMAC MD5", -diff --git a/src/lib/crypto/krb/crypto_int.h b/src/lib/crypto/krb/crypto_int.h -index 3629616d96..1ee4b30e02 100644 ---- a/src/lib/crypto/krb/crypto_int.h -+++ b/src/lib/crypto/krb/crypto_int.h -@@ -332,8 +332,6 @@ krb5_error_code krb5int_aes2_string_to_key(const struct krb5_keytypes *enc, - /* Random to key */ - krb5_error_code k5_rand2key_direct(const krb5_data *randombits, - krb5_keyblock *keyblock); --krb5_error_code k5_rand2key_des3(const krb5_data *randombits, -- krb5_keyblock *keyblock); - - /* Pseudo-random function */ - krb5_error_code krb5int_des_prf(const struct krb5_keytypes *ktp, -@@ -411,11 +409,6 @@ krb5_keyusage krb5int_arcfour_translate_usage(krb5_keyusage usage); - /* Ensure library initialization has occurred. */ - int krb5int_crypto_init(void); - --/* DES default state initialization handler (used by module enc providers). */ --krb5_error_code krb5int_des_init_state(const krb5_keyblock *key, -- krb5_keyusage keyusage, -- krb5_data *state_out); -- - /* Default state cleanup handler (used by module enc providers). */ - void krb5int_default_free_state(krb5_data *state); - -@@ -468,7 +461,6 @@ void k5_iov_cursor_put(struct iov_cursor *cursor, unsigned char *block); - /* Modules must implement the k5_sha256() function prototyped in k5-int.h. */ - - /* Modules must implement the following enc_providers and hash_providers: */ --extern const struct krb5_enc_provider krb5int_enc_des3; - extern const struct krb5_enc_provider krb5int_enc_arcfour; - extern const struct krb5_enc_provider krb5int_enc_aes128; - extern const struct krb5_enc_provider krb5int_enc_aes256; -@@ -485,9 +477,6 @@ extern const struct krb5_hash_provider krb5int_hash_sha384; - - /* Modules must implement the following functions. */ - --/* Set the parity bits to the correct values in keybits. */ --void k5_des_fixup_key_parity(unsigned char *keybits); -- - /* Compute an HMAC using the provided hash function, key, and data, storing the - * result into output (caller-allocated). */ - krb5_error_code krb5int_hmac(const struct krb5_hash_provider *hash, -diff --git a/src/lib/crypto/krb/default_state.c b/src/lib/crypto/krb/default_state.c -index 0757c8b02c..f89dc79023 100644 ---- a/src/lib/crypto/krb/default_state.c -+++ b/src/lib/crypto/krb/default_state.c -@@ -32,16 +32,6 @@ - - #include "crypto_int.h" - --krb5_error_code --krb5int_des_init_state(const krb5_keyblock *key, krb5_keyusage usage, -- krb5_data *state_out) --{ -- if (alloc_data(state_out, 8)) -- return ENOMEM; -- -- return 0; --} -- - void - krb5int_default_free_state(krb5_data *state) - { -diff --git a/src/lib/crypto/krb/enctype_util.c b/src/lib/crypto/krb/enctype_util.c -index 1542d40629..a0037912a7 100644 ---- a/src/lib/crypto/krb/enctype_util.c -+++ b/src/lib/crypto/krb/enctype_util.c -@@ -45,6 +45,9 @@ struct { - { ENCTYPE_DES_CBC_MD5, "des-cbc-md5" }, - { ENCTYPE_DES_CBC_RAW, "des-cbc-raw" }, - { ENCTYPE_DES_HMAC_SHA1, "des-hmac-sha1" }, -+ { ENCTYPE_DES3_CBC_SHA, "des3-cbc-sha1" }, -+ { ENCTYPE_DES3_CBC_RAW, "des3-cbc-raw" }, -+ { ENCTYPE_DES3_CBC_SHA1, "des3-hmac-sha1" }, - { ENCTYPE_NULL, NULL } - }; - -diff --git a/src/lib/crypto/krb/etypes.c b/src/lib/crypto/krb/etypes.c -index fc278783b9..7635393a41 100644 ---- a/src/lib/crypto/krb/etypes.c -+++ b/src/lib/crypto/krb/etypes.c -@@ -35,27 +35,6 @@ - - /* Deprecations come from RFC 6649 and RFC 8249. */ - const struct krb5_keytypes krb5int_enctypes_list[] = { -- { ENCTYPE_DES3_CBC_RAW, -- "des3-cbc-raw", { 0 }, "Triple DES cbc mode raw", -- &krb5int_enc_des3, NULL, -- 16, -- krb5int_raw_crypto_length, krb5int_raw_encrypt, krb5int_raw_decrypt, -- krb5int_dk_string_to_key, k5_rand2key_des3, -- NULL, /*PRF*/ -- 0, -- ETYPE_WEAK | ETYPE_DEPRECATED, 112 }, -- -- { ENCTYPE_DES3_CBC_SHA1, -- "des3-cbc-sha1", { "des3-hmac-sha1", "des3-cbc-sha1-kd" }, -- "Triple DES cbc mode with HMAC/sha1", -- &krb5int_enc_des3, &krb5int_hash_sha1, -- 16, -- krb5int_dk_crypto_length, krb5int_dk_encrypt, krb5int_dk_decrypt, -- krb5int_dk_string_to_key, k5_rand2key_des3, -- krb5int_dk_prf, -- CKSUMTYPE_HMAC_SHA1_DES3, -- ETYPE_DEPRECATED, 112 }, -- - /* rc4-hmac uses a 128-bit key, but due to weaknesses in the RC4 cipher, we - * consider its strength degraded and assign it an SSF value of 64. */ - { ENCTYPE_ARCFOUR_HMAC, -diff --git a/src/lib/crypto/krb/prf_des.c b/src/lib/crypto/krb/prf_des.c -deleted file mode 100644 -index 7a2d719c5f..0000000000 ---- a/src/lib/crypto/krb/prf_des.c -+++ /dev/null -@@ -1,47 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/krb/prf_des.c - RFC 3961 DES-based PRF */ --/* -- * Copyright (C) 2004, 2009 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --#include "crypto_int.h" -- --krb5_error_code --krb5int_des_prf(const struct krb5_keytypes *ktp, krb5_key key, -- const krb5_data *in, krb5_data *out) --{ -- const struct krb5_hash_provider *hash = &krb5int_hash_md5; -- krb5_crypto_iov iov; -- krb5_error_code ret; -- -- /* Compute a hash of the input, storing into the output buffer. */ -- iov.flags = KRB5_CRYPTO_TYPE_DATA; -- iov.data = *in; -- ret = hash->hash(&iov, 1, out); -- if (ret != 0) -- return ret; -- -- /* Encrypt the hash in place. */ -- iov.data = *out; -- return ktp->enc->encrypt(key, NULL, &iov, 1); --} -diff --git a/src/lib/crypto/krb/random_to_key.c b/src/lib/crypto/krb/random_to_key.c -index 9394385aa0..863090beb2 100644 ---- a/src/lib/crypto/krb/random_to_key.c -+++ b/src/lib/crypto/krb/random_to_key.c -@@ -71,31 +71,3 @@ k5_rand2key_direct(const krb5_data *randombits, krb5_keyblock *keyblock) - memcpy(keyblock->contents, randombits->data, randombits->length); - return 0; - } -- --static inline void --eighth_byte(unsigned char *b) --{ -- b[7] = (((b[0] & 1) << 1) | ((b[1] & 1) << 2) | ((b[2] & 1) << 3) | -- ((b[3] & 1) << 4) | ((b[4] & 1) << 5) | ((b[5] & 1) << 6) | -- ((b[6] & 1) << 7)); --} -- --krb5_error_code --k5_rand2key_des3(const krb5_data *randombits, krb5_keyblock *keyblock) --{ -- int i; -- -- if (randombits->length != 21) -- return KRB5_CRYPTO_INTERNAL; -- -- keyblock->magic = KV5M_KEYBLOCK; -- -- /* Take the seven bytes, move them around into the top 7 bits of the -- * 8 key bytes, then compute the parity bits. Do this three times. */ -- for (i = 0; i < 3; i++) { -- memcpy(&keyblock->contents[i * 8], &randombits->data[i * 7], 7); -- eighth_byte(&keyblock->contents[i * 8]); -- k5_des_fixup_key_parity(&keyblock->contents[i * 8]); -- } -- return 0; --} -diff --git a/src/lib/crypto/libk5crypto.exports b/src/lib/crypto/libk5crypto.exports -index 052f4d4b51..d8ffa63304 100644 ---- a/src/lib/crypto/libk5crypto.exports -+++ b/src/lib/crypto/libk5crypto.exports -@@ -86,7 +86,6 @@ krb5_k_verify_checksum - krb5_k_verify_checksum_iov - krb5int_aes_encrypt - krb5int_aes_decrypt --krb5int_enc_des3 - krb5int_arcfour_gsscrypt - krb5int_camellia_encrypt - krb5int_cmac_checksum -diff --git a/src/lib/crypto/openssl/Makefile.in b/src/lib/crypto/openssl/Makefile.in -index 08de047d0a..88f7fd0a09 100644 ---- a/src/lib/crypto/openssl/Makefile.in -+++ b/src/lib/crypto/openssl/Makefile.in -@@ -1,6 +1,6 @@ - mydir=lib$(S)crypto$(S)openssl - BUILDTOP=$(REL)..$(S)..$(S).. --SUBDIRS=des enc_provider hash_provider -+SUBDIRS=enc_provider hash_provider - LOCALINCLUDES=-I$(srcdir)/../krb $(CRYPTO_IMPL_CFLAGS) - - STLIBOBJS=\ -@@ -24,14 +24,14 @@ SRCS=\ - $(srcdir)/pbkdf2.c \ - $(srcdir)/sha256.c - --STOBJLISTS= des/OBJS.ST md4/OBJS.ST \ -+STOBJLISTS= md4/OBJS.ST \ - md5/OBJS.ST sha1/OBJS.ST sha2/OBJS.ST \ - enc_provider/OBJS.ST \ - hash_provider/OBJS.ST \ - aes/OBJS.ST \ - OBJS.ST - --SUBDIROBJLISTS= des/OBJS.ST md4/OBJS.ST \ -+SUBDIROBJLISTS= md4/OBJS.ST \ - md5/OBJS.ST sha1/OBJS.ST sha2/OBJS.ST \ - enc_provider/OBJS.ST \ - hash_provider/OBJS.ST \ -@@ -42,7 +42,7 @@ includes: depend - - depend: $(SRCS) - --clean-unix:: clean-libobjs -+clean-unix:: clean-libobjsn - - @lib_frag@ - @libobj_frag@ -diff --git a/src/lib/crypto/openssl/des/Makefile.in b/src/lib/crypto/openssl/des/Makefile.in -deleted file mode 100644 -index a6cece1dd1..0000000000 ---- a/src/lib/crypto/openssl/des/Makefile.in -+++ /dev/null -@@ -1,20 +0,0 @@ --mydir=lib$(S)crypto$(S)openssl$(S)des --BUILDTOP=$(REL)..$(S)..$(S)..$(S).. --LOCALINCLUDES = -I$(srcdir)/../../krb $(CRYPTO_IMPL_CFLAGS) -- --STLIBOBJS= des_keys.o -- --OBJS= $(OUTPRE)des_keys.$(OBJEXT) -- --SRCS= $(srcdir)/des_keys.c -- --all-unix: all-libobjs -- --includes: depend -- --depend: $(SRCS) -- --clean-unix:: clean-libobjs -- --@libobj_frag@ -- -diff --git a/src/lib/crypto/openssl/des/deps b/src/lib/crypto/openssl/des/deps -deleted file mode 100644 -index 723c268082..0000000000 ---- a/src/lib/crypto/openssl/des/deps -+++ /dev/null -@@ -1,14 +0,0 @@ --# --# Generated makefile dependencies follow. --# --des_keys.so des_keys.po $(OUTPRE)des_keys.$(OBJEXT): \ -- $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5/krb5.h \ -- $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ -- $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h $(top_srcdir)/include/k5-buf.h \ -- $(top_srcdir)/include/k5-err.h $(top_srcdir)/include/k5-gmt_mktime.h \ -- $(top_srcdir)/include/k5-int-pkinit.h $(top_srcdir)/include/k5-int.h \ -- $(top_srcdir)/include/k5-platform.h $(top_srcdir)/include/k5-plugin.h \ -- $(top_srcdir)/include/k5-thread.h $(top_srcdir)/include/k5-trace.h \ -- $(top_srcdir)/include/krb5.h $(top_srcdir)/include/krb5/authdata_plugin.h \ -- $(top_srcdir)/include/krb5/plugin.h $(top_srcdir)/include/port-sockets.h \ -- $(top_srcdir)/include/socket-utils.h des_keys.c -diff --git a/src/lib/crypto/openssl/des/des_keys.c b/src/lib/crypto/openssl/des/des_keys.c -deleted file mode 100644 -index 83f1cbf22a..0000000000 ---- a/src/lib/crypto/openssl/des/des_keys.c -+++ /dev/null -@@ -1,39 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/openssl/des/des_keys.c - Key functions used by Kerberos code */ --/* -- * Copyright (C) 2011 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ -- --#include "crypto_int.h" -- --#ifdef K5_OPENSSL_DES_KEY_PARITY -- --#include -- --void --k5_des_fixup_key_parity(unsigned char *keybits) --{ -- DES_set_odd_parity((DES_cblock *)keybits); --} -- --#endif -diff --git a/src/lib/crypto/openssl/enc_provider/Makefile.in b/src/lib/crypto/openssl/enc_provider/Makefile.in -index 26827cfed5..f0d37c1213 100644 ---- a/src/lib/crypto/openssl/enc_provider/Makefile.in -+++ b/src/lib/crypto/openssl/enc_provider/Makefile.in -@@ -3,19 +3,16 @@ BUILDTOP=$(REL)..$(S)..$(S)..$(S).. - LOCALINCLUDES = -I$(srcdir)/../../krb $(CRYPTO_IMPL_CFLAGS) - - STLIBOBJS= \ -- des3.o \ - rc4.o \ - aes.o \ - camellia.o - - OBJS= \ -- $(OUTPRE)des3.$(OBJEXT) \ - $(OUTPRE)aes.$(OBJEXT) \ - $(OUTPRE)camellia.$(OBJEXT) \ - $(OUTPRE)rc4.$(OBJEXT) - - SRCS= \ -- $(srcdir)/des3.c \ - $(srcdir)/aes.c \ - $(srcdir)/camellia.c \ - $(srcdir)/rc4.c -diff --git a/src/lib/crypto/openssl/enc_provider/deps b/src/lib/crypto/openssl/enc_provider/deps -index 1c87a526d0..a502990a0c 100644 ---- a/src/lib/crypto/openssl/enc_provider/deps -+++ b/src/lib/crypto/openssl/enc_provider/deps -@@ -1,17 +1,6 @@ - # - # Generated makefile dependencies follow. - # --des3.so des3.po $(OUTPRE)des3.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ -- $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ -- $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -- $(top_srcdir)/include/k5-buf.h $(top_srcdir)/include/k5-err.h \ -- $(top_srcdir)/include/k5-gmt_mktime.h $(top_srcdir)/include/k5-int-pkinit.h \ -- $(top_srcdir)/include/k5-int.h $(top_srcdir)/include/k5-platform.h \ -- $(top_srcdir)/include/k5-plugin.h $(top_srcdir)/include/k5-thread.h \ -- $(top_srcdir)/include/k5-trace.h $(top_srcdir)/include/krb5.h \ -- $(top_srcdir)/include/krb5/authdata_plugin.h $(top_srcdir)/include/krb5/plugin.h \ -- $(top_srcdir)/include/port-sockets.h $(top_srcdir)/include/socket-utils.h \ -- des3.c - aes.so aes.po $(OUTPRE)aes.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ - $(BUILDTOP)/include/krb5/krb5.h $(BUILDTOP)/include/osconf.h \ - $(BUILDTOP)/include/profile.h $(COM_ERR_DEPS) $(srcdir)/../../krb/crypto_int.h \ -diff --git a/src/lib/crypto/openssl/enc_provider/des3.c b/src/lib/crypto/openssl/enc_provider/des3.c -deleted file mode 100644 -index 90fcf9acb5..0000000000 ---- a/src/lib/crypto/openssl/enc_provider/des3.c -+++ /dev/null -@@ -1,188 +0,0 @@ --/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ --/* lib/crypto/openssl/enc_provider/des3.c */ --/* -- * Copyright (C) 2009 by the Massachusetts Institute of Technology. -- * All rights reserved. -- * -- * Export of this software from the United States of America may -- * require a specific license from the United States Government. -- * It is the responsibility of any person or organization contemplating -- * export to obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of M.I.T. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. Furthermore if you modify this software you must label -- * your software as modified software and not distribute it in such a -- * fashion that it might be confused with the original M.I.T. software. -- * M.I.T. makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- */ --/* -- * Copyright (C) 1998 by the FundsXpress, INC. -- * -- * All rights reserved. -- * -- * Export of this software from the United States of America may require -- * a specific license from the United States Government. It is the -- * responsibility of any person or organization contemplating export to -- * obtain such a license before exporting. -- * -- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -- * distribute this software and its documentation for any purpose and -- * without fee is hereby granted, provided that the above copyright -- * notice appear in all copies and that both that copyright notice and -- * this permission notice appear in supporting documentation, and that -- * the name of FundsXpress. not be used in advertising or publicity pertaining -- * to distribution of the software without specific, written prior -- * permission. FundsXpress makes no representations about the suitability of -- * this software for any purpose. It is provided "as is" without express -- * or implied warranty. -- * -- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- */ -- --#include "crypto_int.h" -- --#ifdef K5_OPENSSL_DES -- --#include -- --#define DES3_BLOCK_SIZE 8 --#define DES3_KEY_SIZE 24 --#define DES3_KEY_BYTES 21 -- --static krb5_error_code --validate(krb5_key key, const krb5_data *ivec, const krb5_crypto_iov *data, -- size_t num_data, krb5_boolean *empty) --{ -- size_t input_length = iov_total_length(data, num_data, FALSE); -- -- if (key->keyblock.length != DES3_KEY_SIZE) -- return(KRB5_BAD_KEYSIZE); -- if ((input_length%DES3_BLOCK_SIZE) != 0) -- return(KRB5_BAD_MSIZE); -- if (ivec && (ivec->length != 8)) -- return(KRB5_BAD_MSIZE); -- -- *empty = (input_length == 0); -- return 0; --} -- --static krb5_error_code --k5_des3_encrypt(krb5_key key, const krb5_data *ivec, krb5_crypto_iov *data, -- size_t num_data) --{ -- int ret, olen = DES3_BLOCK_SIZE; -- unsigned char iblock[DES3_BLOCK_SIZE], oblock[DES3_BLOCK_SIZE]; -- struct iov_cursor cursor; -- EVP_CIPHER_CTX *ctx; -- krb5_boolean empty; -- -- ret = validate(key, ivec, data, num_data, &empty); -- if (ret != 0 || empty) -- return ret; -- -- ctx = EVP_CIPHER_CTX_new(); -- if (ctx == NULL) -- return ENOMEM; -- -- ret = EVP_EncryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, -- key->keyblock.contents, -- (ivec) ? (unsigned char*)ivec->data : NULL); -- if (!ret) { -- EVP_CIPHER_CTX_free(ctx); -- return KRB5_CRYPTO_INTERNAL; -- } -- -- EVP_CIPHER_CTX_set_padding(ctx,0); -- -- k5_iov_cursor_init(&cursor, data, num_data, DES3_BLOCK_SIZE, FALSE); -- while (k5_iov_cursor_get(&cursor, iblock)) { -- ret = EVP_EncryptUpdate(ctx, oblock, &olen, iblock, DES3_BLOCK_SIZE); -- if (!ret) -- break; -- k5_iov_cursor_put(&cursor, oblock); -- } -- -- if (ivec != NULL) -- memcpy(ivec->data, oblock, DES3_BLOCK_SIZE); -- -- EVP_CIPHER_CTX_free(ctx); -- -- zap(iblock, sizeof(iblock)); -- zap(oblock, sizeof(oblock)); -- -- if (ret != 1) -- return KRB5_CRYPTO_INTERNAL; -- return 0; --} -- --static krb5_error_code --k5_des3_decrypt(krb5_key key, const krb5_data *ivec, krb5_crypto_iov *data, -- size_t num_data) --{ -- int ret, olen = DES3_BLOCK_SIZE; -- unsigned char iblock[DES3_BLOCK_SIZE], oblock[DES3_BLOCK_SIZE]; -- struct iov_cursor cursor; -- EVP_CIPHER_CTX *ctx; -- krb5_boolean empty; -- -- ret = validate(key, ivec, data, num_data, &empty); -- if (ret != 0 || empty) -- return ret; -- -- ctx = EVP_CIPHER_CTX_new(); -- if (ctx == NULL) -- return ENOMEM; -- -- ret = EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, -- key->keyblock.contents, -- (ivec) ? (unsigned char*)ivec->data : NULL); -- if (!ret) { -- EVP_CIPHER_CTX_free(ctx); -- return KRB5_CRYPTO_INTERNAL; -- } -- -- EVP_CIPHER_CTX_set_padding(ctx,0); -- -- k5_iov_cursor_init(&cursor, data, num_data, DES3_BLOCK_SIZE, FALSE); -- while (k5_iov_cursor_get(&cursor, iblock)) { -- ret = EVP_DecryptUpdate(ctx, oblock, &olen, -- (unsigned char *)iblock, DES3_BLOCK_SIZE); -- if (!ret) -- break; -- k5_iov_cursor_put(&cursor, oblock); -- } -- -- if (ivec != NULL) -- memcpy(ivec->data, iblock, DES3_BLOCK_SIZE); -- -- EVP_CIPHER_CTX_free(ctx); -- -- zap(iblock, sizeof(iblock)); -- zap(oblock, sizeof(oblock)); -- -- if (ret != 1) -- return KRB5_CRYPTO_INTERNAL; -- return 0; --} -- --const struct krb5_enc_provider krb5int_enc_des3 = { -- DES3_BLOCK_SIZE, -- DES3_KEY_BYTES, DES3_KEY_SIZE, -- k5_des3_encrypt, -- k5_des3_decrypt, -- NULL, -- krb5int_des_init_state, -- krb5int_default_free_state --}; -- --#endif /* K5_OPENSSL_DES */ -diff --git a/src/lib/crypto/openssl/kdf.c b/src/lib/crypto/openssl/kdf.c -index 41e845eae0..5a43c3d9eb 100644 ---- a/src/lib/crypto/openssl/kdf.c -+++ b/src/lib/crypto/openssl/kdf.c -@@ -60,8 +60,6 @@ enc_name(const struct krb5_enc_provider *enc) - return "AES-128-CBC"; - if (enc == &krb5int_enc_aes256) - return "AES-256-CBC"; -- if (enc == &krb5int_enc_des3) -- return "DES-EDE3-CBC"; - return NULL; - } - -diff --git a/src/lib/gssapi/krb5/accept_sec_context.c b/src/lib/gssapi/krb5/accept_sec_context.c -index d4e90793f9..1bc807172b 100644 ---- a/src/lib/gssapi/krb5/accept_sec_context.c -+++ b/src/lib/gssapi/krb5/accept_sec_context.c -@@ -1030,7 +1030,6 @@ kg_accept_krb5(minor_status, context_handle, - } - - switch (negotiated_etype) { -- case ENCTYPE_DES3_CBC_SHA1: - case ENCTYPE_ARCFOUR_HMAC: - case ENCTYPE_ARCFOUR_HMAC_EXP: - /* RFC 4121 accidentally omits RC4-HMAC-EXP as a "not-newer" -diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h -index a4446530fc..88d41130a7 100644 ---- a/src/lib/gssapi/krb5/gssapiP_krb5.h -+++ b/src/lib/gssapi/krb5/gssapiP_krb5.h -@@ -125,14 +125,14 @@ enum sgn_alg { - /* SGN_ALG_DES_MAC = 0x0002, */ - /* SGN_ALG_3 = 0x0003, /\* not published *\/ */ - SGN_ALG_HMAC_MD5 = 0x0011, /* microsoft w2k; */ -- SGN_ALG_HMAC_SHA1_DES3_KD = 0x0004 -+ /* SGN_ALG_HMAC_SHA1_DES3_KD = 0x0004 */ - }; - enum seal_alg { - SEAL_ALG_NONE = 0xffff, - /* SEAL_ALG_DES = 0x0000, */ - /* SEAL_ALG_1 = 0x0001, /\* not published *\/ */ - SEAL_ALG_MICROSOFT_RC4 = 0x0010, /* microsoft w2k; */ -- SEAL_ALG_DES3KD = 0x0002 -+ /* SEAL_ALG_DES3KD = 0x0002 */ - }; - - /* for 3DES */ -@@ -153,7 +153,7 @@ enum qop { - GSS_KRB5_INTEG_C_QOP_HMAC_SHA1 = 0x0004, - GSS_KRB5_INTEG_C_QOP_MASK = 0x00ff, - /* GSS_KRB5_CONF_C_QOP_DES = 0x0100, */ -- GSS_KRB5_CONF_C_QOP_DES3_KD = 0x0200, -+ /* GSS_KRB5_CONF_C_QOP_DES3_KD = 0x0200, */ - GSS_KRB5_CONF_C_QOP_MASK = 0xff00 - }; - -diff --git a/src/lib/gssapi/krb5/k5seal.c b/src/lib/gssapi/krb5/k5seal.c -index d1cdce486f..7f7146a0a2 100644 ---- a/src/lib/gssapi/krb5/k5seal.c -+++ b/src/lib/gssapi/krb5/k5seal.c -@@ -136,19 +136,12 @@ make_seal_token_v1 (krb5_context context, - - /* pad the plaintext, encrypt if needed, and stick it in the token */ - -- /* initialize the the checksum */ -- switch (signalg) { -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_SHA1_DES3; -- break; -- case SGN_ALG_HMAC_MD5: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -- if (toktype != KG_TOK_SEAL_MSG) -- sign_usage = 15; -- break; -- default: -- abort (); -- } -+ if (signalg != SGN_ALG_HMAC_MD5) -+ abort(); -+ -+ md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -+ if (toktype != KG_TOK_SEAL_MSG) -+ sign_usage = 15; - - code = krb5_c_checksum_length(context, md5cksum.checksum_type, &sumlen); - if (code) { -@@ -196,20 +189,8 @@ make_seal_token_v1 (krb5_context context, - gssalloc_free(t); - return(code); - } -- switch(signalg) { -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- /* -- * Using key derivation, the call to krb5_c_make_checksum -- * already dealt with encrypting. -- */ -- if (md5cksum.length != cksum_size) -- abort (); -- memcpy (ptr+14, md5cksum.contents, md5cksum.length); -- break; -- case SGN_ALG_HMAC_MD5: -- memcpy (ptr+14, md5cksum.contents, cksum_size); -- break; -- } -+ -+ memcpy (ptr+14, md5cksum.contents, cksum_size); - - krb5_free_checksum_contents(context, &md5cksum); - -diff --git a/src/lib/gssapi/krb5/k5sealiov.c b/src/lib/gssapi/krb5/k5sealiov.c -index 9bb2ee1099..9147bb2c78 100644 ---- a/src/lib/gssapi/krb5/k5sealiov.c -+++ b/src/lib/gssapi/krb5/k5sealiov.c -@@ -144,18 +144,11 @@ make_seal_token_v1_iov(krb5_context context, - /* pad the plaintext, encrypt if needed, and stick it in the token */ - - /* initialize the checksum */ -- switch (ctx->signalg) { -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_SHA1_DES3; -- break; -- case SGN_ALG_HMAC_MD5: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -- if (toktype != KG_TOK_WRAP_MSG) -- sign_usage = 15; -- break; -- default: -- abort (); -- } -+ if (ctx->signalg != SGN_ALG_HMAC_MD5) -+ abort(); -+ md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -+ if (toktype != KG_TOK_WRAP_MSG) -+ sign_usage = 15; - - code = krb5_c_checksum_length(context, md5cksum.checksum_type, &k5_trailerlen); - if (code != 0) -@@ -177,15 +170,7 @@ make_seal_token_v1_iov(krb5_context context, - if (code != 0) - goto cleanup; - -- switch (ctx->signalg) { -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- assert(md5cksum.length == ctx->cksum_size); -- memcpy(ptr + 14, md5cksum.contents, md5cksum.length); -- break; -- case SGN_ALG_HMAC_MD5: -- memcpy(ptr + 14, md5cksum.contents, ctx->cksum_size); -- break; -- } -+ memcpy(ptr + 14, md5cksum.contents, ctx->cksum_size); - - /* create the seq_num */ - code = kg_make_seq_num(context, ctx->seq, ctx->initiate ? 0 : 0xFF, -diff --git a/src/lib/gssapi/krb5/k5unseal.c b/src/lib/gssapi/krb5/k5unseal.c -index 9b183bc337..f0cc4a6809 100644 ---- a/src/lib/gssapi/krb5/k5unseal.c -+++ b/src/lib/gssapi/krb5/k5unseal.c -@@ -131,28 +131,21 @@ kg_unseal_v1(context, minor_status, ctx, ptr, bodysize, message_buffer, - but few enough that we can try them all. */ - - if ((ctx->sealalg == SEAL_ALG_NONE && signalg > 1) || -- (ctx->sealalg == SEAL_ALG_DES3KD && -- signalg != SGN_ALG_HMAC_SHA1_DES3_KD)|| - (ctx->sealalg == SEAL_ALG_MICROSOFT_RC4 && - signalg != SGN_ALG_HMAC_MD5)) { - *minor_status = 0; - return GSS_S_DEFECTIVE_TOKEN; - } - -- switch (signalg) { -- case SGN_ALG_HMAC_MD5: -- cksum_len = 8; -- if (toktype != KG_TOK_SEAL_MSG) -- sign_usage = 15; -- break; -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- cksum_len = 20; -- break; -- default: -+ if (signalg != SGN_ALG_HMAC_MD5) { - *minor_status = 0; - return GSS_S_DEFECTIVE_TOKEN; - } - -+ cksum_len = 8; -+ if (toktype != KG_TOK_SEAL_MSG) -+ sign_usage = 15; -+ - if ((size_t)bodysize < 14 + cksum_len) { - *minor_status = 0; - return GSS_S_DEFECTIVE_TOKEN; -@@ -252,64 +245,53 @@ kg_unseal_v1(context, minor_status, ctx, ptr, bodysize, message_buffer, - /* compute the checksum of the message */ - - /* initialize the the cksum */ -- switch (signalg) { -- case SGN_ALG_HMAC_MD5: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -- break; -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_SHA1_DES3; -- break; -- default: -- abort (); -- } -+ if (signalg != SGN_ALG_HMAC_MD5) -+ abort(); -+ md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; - - code = krb5_c_checksum_length(context, md5cksum.checksum_type, &sumlen); - if (code) - return(code); - md5cksum.length = sumlen; - -- switch (signalg) { -- default: -+ if (signalg != SGN_ALG_HMAC_MD5) { - *minor_status = 0; - return(GSS_S_DEFECTIVE_TOKEN); -+ } - -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- case SGN_ALG_HMAC_MD5: -- /* compute the checksum of the message */ -- -- /* 8 = bytes of token body to be checksummed according to spec */ -+ /* compute the checksum of the message */ - -- if (! (data_ptr = xmalloc(8 + plainlen))) { -- if (sealalg != 0xffff) -- xfree(plain); -- if (toktype == KG_TOK_SEAL_MSG) -- gssalloc_free(token.value); -- *minor_status = ENOMEM; -- return(GSS_S_FAILURE); -- } -+ /* 8 = bytes of token body to be checksummed according to spec */ - -- (void) memcpy(data_ptr, ptr-2, 8); -+ if (! (data_ptr = xmalloc(8 + plainlen))) { -+ if (sealalg != 0xffff) -+ xfree(plain); -+ if (toktype == KG_TOK_SEAL_MSG) -+ gssalloc_free(token.value); -+ *minor_status = ENOMEM; -+ return(GSS_S_FAILURE); -+ } - -- (void) memcpy(data_ptr+8, plain, plainlen); -+ (void) memcpy(data_ptr, ptr-2, 8); - -- plaind.length = 8 + plainlen; -- plaind.data = data_ptr; -- code = krb5_k_make_checksum(context, md5cksum.checksum_type, -- ctx->seq, sign_usage, -- &plaind, &md5cksum); -- xfree(data_ptr); -+ (void) memcpy(data_ptr+8, plain, plainlen); - -- if (code) { -- if (toktype == KG_TOK_SEAL_MSG) -- gssalloc_free(token.value); -- *minor_status = code; -- return(GSS_S_FAILURE); -- } -+ plaind.length = 8 + plainlen; -+ plaind.data = data_ptr; -+ code = krb5_k_make_checksum(context, md5cksum.checksum_type, -+ ctx->seq, sign_usage, -+ &plaind, &md5cksum); -+ xfree(data_ptr); - -- code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len); -- break; -+ if (code) { -+ if (toktype == KG_TOK_SEAL_MSG) -+ gssalloc_free(token.value); -+ *minor_status = code; -+ return(GSS_S_FAILURE); - } - -+ code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len); -+ - krb5_free_checksum_contents(context, &md5cksum); - if (sealalg != 0xffff) - xfree(plain); -diff --git a/src/lib/gssapi/krb5/k5unsealiov.c b/src/lib/gssapi/krb5/k5unsealiov.c -index 85a9574f36..3ce2a90ce9 100644 ---- a/src/lib/gssapi/krb5/k5unsealiov.c -+++ b/src/lib/gssapi/krb5/k5unsealiov.c -@@ -102,28 +102,21 @@ kg_unseal_v1_iov(krb5_context context, - } - - if ((ctx->sealalg == SEAL_ALG_NONE && signalg > 1) || -- (ctx->sealalg == SEAL_ALG_DES3KD && -- signalg != SGN_ALG_HMAC_SHA1_DES3_KD)|| - (ctx->sealalg == SEAL_ALG_MICROSOFT_RC4 && - signalg != SGN_ALG_HMAC_MD5)) { - *minor_status = 0; - return GSS_S_DEFECTIVE_TOKEN; - } - -- switch (signalg) { -- case SGN_ALG_HMAC_MD5: -- cksum_len = 8; -- if (toktype != KG_TOK_WRAP_MSG) -- sign_usage = 15; -- break; -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- cksum_len = 20; -- break; -- default: -+ if (signalg != SGN_ALG_HMAC_MD5) { - *minor_status = 0; - return GSS_S_DEFECTIVE_TOKEN; - } - -+ cksum_len = 8; -+ if (toktype != KG_TOK_WRAP_MSG) -+ sign_usage = 15; -+ - /* get the token parameters */ - code = kg_get_seq_num(context, ctx->seq, ptr + 14, ptr + 6, &direction, - &seqnum); -@@ -181,16 +174,10 @@ kg_unseal_v1_iov(krb5_context context, - - /* initialize the checksum */ - -- switch (signalg) { -- case SGN_ALG_HMAC_MD5: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; -- break; -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- md5cksum.checksum_type = CKSUMTYPE_HMAC_SHA1_DES3; -- break; -- default: -+ if (signalg != SGN_ALG_HMAC_MD5) - abort(); -- } -+ -+ md5cksum.checksum_type = CKSUMTYPE_HMAC_MD5_ARCFOUR; - - code = krb5_c_checksum_length(context, md5cksum.checksum_type, &sumlen); - if (code != 0) { -@@ -209,18 +196,13 @@ kg_unseal_v1_iov(krb5_context context, - goto cleanup; - } - -- switch (signalg) { -- case SGN_ALG_HMAC_SHA1_DES3_KD: -- case SGN_ALG_HMAC_MD5: -- code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len); -- break; -- default: -+ if (signalg != SGN_ALG_HMAC_MD5) { - code = 0; - retval = GSS_S_DEFECTIVE_TOKEN; - goto cleanup; -- break; - } - -+ code = k5_bcmp(md5cksum.contents, ptr + 14, cksum_len); - if (code != 0) { - code = 0; - retval = GSS_S_BAD_SIG; -diff --git a/src/lib/gssapi/krb5/util_crypt.c b/src/lib/gssapi/krb5/util_crypt.c -index 84f1949887..32150f5e34 100644 ---- a/src/lib/gssapi/krb5/util_crypt.c -+++ b/src/lib/gssapi/krb5/util_crypt.c -@@ -97,17 +97,6 @@ kg_setup_keys(krb5_context context, krb5_gss_ctx_id_rec *ctx, krb5_key subkey, - return code; - - switch (subkey->keyblock.enctype) { -- case ENCTYPE_DES3_CBC_SHA1: -- code = kg_copy_keys(context, ctx, subkey); -- if (code != 0) -- return code; -- -- ctx->enc->keyblock.enctype = ENCTYPE_DES3_CBC_RAW; -- ctx->seq->keyblock.enctype = ENCTYPE_DES3_CBC_RAW; -- ctx->signalg = SGN_ALG_HMAC_SHA1_DES3_KD; -- ctx->cksum_size = 20; -- ctx->sealalg = SEAL_ALG_DES3KD; -- break; - case ENCTYPE_ARCFOUR_HMAC: - case ENCTYPE_ARCFOUR_HMAC_EXP: - /* RFC 4121 accidentally omits RC4-HMAC-EXP as a "not-newer" enctype, -diff --git a/src/lib/krb5/krb/init_ctx.c b/src/lib/krb5/krb/init_ctx.c -index 87b486c53f..2b5abcd817 100644 ---- a/src/lib/krb5/krb/init_ctx.c -+++ b/src/lib/krb5/krb/init_ctx.c -@@ -59,7 +59,6 @@ - static krb5_enctype default_enctype_list[] = { - ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, - ENCTYPE_AES256_CTS_HMAC_SHA384_192, ENCTYPE_AES128_CTS_HMAC_SHA256_128, -- ENCTYPE_DES3_CBC_SHA1, - ENCTYPE_ARCFOUR_HMAC, - ENCTYPE_CAMELLIA128_CTS_CMAC, ENCTYPE_CAMELLIA256_CTS_CMAC, - 0 -@@ -450,8 +449,6 @@ krb5int_parse_enctype_list(krb5_context context, const char *profkey, - /* Set all enctypes in the default list. */ - for (i = 0; default_list[i]; i++) - mod_list(default_list[i], sel, weak, &list); -- } else if (strcasecmp(token, "des3") == 0) { -- mod_list(ENCTYPE_DES3_CBC_SHA1, sel, weak, &list); - } else if (strcasecmp(token, "aes") == 0) { - mod_list(ENCTYPE_AES256_CTS_HMAC_SHA1_96, sel, weak, &list); - mod_list(ENCTYPE_AES128_CTS_HMAC_SHA1_96, sel, weak, &list); -diff --git a/src/lib/krb5/krb/s4u_creds.c b/src/lib/krb5/krb/s4u_creds.c -index 44d113e7c5..9662785783 100644 ---- a/src/lib/krb5/krb/s4u_creds.c -+++ b/src/lib/krb5/krb/s4u_creds.c -@@ -288,8 +288,6 @@ verify_s4u2self_reply(krb5_context context, - assert(req_s4u_user != NULL); - - switch (subkey->enctype) { -- case ENCTYPE_DES3_CBC_SHA1: -- case ENCTYPE_DES3_CBC_RAW: - case ENCTYPE_ARCFOUR_HMAC: - case ENCTYPE_ARCFOUR_HMAC_EXP : - not_newer = TRUE; -diff --git a/src/lib/krb5/krb/t_etypes.c b/src/lib/krb5/krb/t_etypes.c -index 90c9f626c6..935aca12f5 100644 ---- a/src/lib/krb5/krb/t_etypes.c -+++ b/src/lib/krb5/krb/t_etypes.c -@@ -50,17 +50,6 @@ static struct { - { ENCTYPE_AES256_CTS_HMAC_SHA1_96, 0 }, - 0, 0 - }, -- /* Family followed by enctype */ -- { "aes des3-cbc-sha1-kd", -- { 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_AES256_CTS_HMAC_SHA384_192, ENCTYPE_AES128_CTS_HMAC_SHA256_128, -- ENCTYPE_DES3_CBC_SHA1, 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_AES256_CTS_HMAC_SHA384_192, ENCTYPE_AES128_CTS_HMAC_SHA256_128, -- ENCTYPE_DES3_CBC_SHA1, 0 }, -- 0, 0 -- }, - /* Family with enctype removed */ - { "camellia -camellia256-cts-cmac", - { 0 }, -@@ -69,46 +58,15 @@ static struct { - }, - /* Default set with family added and enctype removed */ - { "DEFAULT +aes -arcfour-hmac-md5", -- { ENCTYPE_ARCFOUR_HMAC, ENCTYPE_DES3_CBC_SHA1, 0 }, -- { ENCTYPE_DES3_CBC_SHA1, ENCTYPE_AES256_CTS_HMAC_SHA1_96, -+ { ENCTYPE_ARCFOUR_HMAC, 0 }, -+ { ENCTYPE_AES256_CTS_HMAC_SHA1_96, - ENCTYPE_AES128_CTS_HMAC_SHA1_96, ENCTYPE_AES256_CTS_HMAC_SHA384_192, - ENCTYPE_AES128_CTS_HMAC_SHA256_128, 0 }, -- { ENCTYPE_DES3_CBC_SHA1, -- ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -+ { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, - ENCTYPE_AES256_CTS_HMAC_SHA384_192, ENCTYPE_AES128_CTS_HMAC_SHA256_128, - 0 }, - 0, 0 - }, -- /* Default set with families removed and enctypes added (one redundant) */ -- { "DEFAULT -des3 rc4-hmac rc4-hmac-exp", -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_DES3_CBC_SHA1, ENCTYPE_ARCFOUR_HMAC, 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_ARCFOUR_HMAC, 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_ARCFOUR_HMAC, ENCTYPE_ARCFOUR_HMAC_EXP, 0 }, -- 0, 0 -- }, -- /* Default set with family moved to front */ -- { "des3 +DEFAULT", -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES128_CTS_HMAC_SHA1_96, -- ENCTYPE_DES3_CBC_SHA1, 0 }, -- { ENCTYPE_DES3_CBC_SHA1, ENCTYPE_AES256_CTS_HMAC_SHA1_96, -- ENCTYPE_AES128_CTS_HMAC_SHA1_96, 0 }, -- { ENCTYPE_DES3_CBC_SHA1, ENCTYPE_AES256_CTS_HMAC_SHA1_96, -- ENCTYPE_AES128_CTS_HMAC_SHA1_96, 0 }, -- 0, 0 -- }, -- /* Two families with default set removed (exotic case), enctype added */ -- { "aes +rc4 -DEFaulT des3-hmac-sha1", -- { ENCTYPE_AES128_CTS_HMAC_SHA1_96, ENCTYPE_DES3_CBC_SHA1, -- ENCTYPE_ARCFOUR_HMAC, 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES256_CTS_HMAC_SHA384_192, -- ENCTYPE_AES128_CTS_HMAC_SHA256_128, ENCTYPE_DES3_CBC_SHA1, 0 }, -- { ENCTYPE_AES256_CTS_HMAC_SHA1_96, ENCTYPE_AES256_CTS_HMAC_SHA384_192, -- ENCTYPE_AES128_CTS_HMAC_SHA256_128, ENCTYPE_DES3_CBC_SHA1, 0 }, -- 0, 0 -- }, - /* Test krb5_set_default_in_tkt_ktypes */ - { NULL, - { ENCTYPE_AES256_CTS_HMAC_SHA1_96, 0 }, -diff --git a/src/lib/krb5/os/t_trace.c b/src/lib/krb5/os/t_trace.c -index 10ba8d0ac7..24064ffcfd 100644 ---- a/src/lib/krb5/os/t_trace.c -+++ b/src/lib/krb5/os/t_trace.c -@@ -65,8 +65,8 @@ main (int argc, char *argv[]) - krb5_principal princ = &principal_data; - krb5_pa_data padata, padata2, **padatap; - krb5_enctype enctypes[4] = { -- ENCTYPE_DES3_CBC_SHA, ENCTYPE_ARCFOUR_HMAC_EXP, ENCTYPE_UNKNOWN, -- ENCTYPE_NULL}; -+ ENCTYPE_AES128_CTS_HMAC_SHA1_96, ENCTYPE_ARCFOUR_HMAC_EXP, -+ ENCTYPE_UNKNOWN, ENCTYPE_NULL}; - krb5_ccache ccache; - krb5_keytab keytab; - krb5_creds creds; -diff --git a/src/lib/krb5/os/t_trace.ref b/src/lib/krb5/os/t_trace.ref -index 044a66999e..98fb14f3f7 100644 ---- a/src/lib/krb5/os/t_trace.ref -+++ b/src/lib/krb5/os/t_trace.ref -@@ -41,7 +41,7 @@ int, krb5_principal type: ? - krb5_pa_data **, display list of padata type numbers: PA-PW-SALT (3), 0 - krb5_pa_data **, display list of padata type numbers: (empty) - krb5_enctype, display shortest name of enctype: aes128-cts --krb5_enctype *, display list of enctypes: 5, rc4-hmac-exp, 511 -+krb5_enctype *, display list of enctypes: aes128-cts, rc4-hmac-exp, 511 - krb5_enctype *, display list of enctypes: (empty) - krb5_ccache, display type:name: FILE:/path/to/ccache - krb5_keytab, display name: FILE:/etc/krb5.keytab -diff --git a/src/plugins/preauth/pkinit/pkcs11.h b/src/plugins/preauth/pkinit/pkcs11.h -index e3d2846315..586661bb7e 100644 ---- a/src/plugins/preauth/pkinit/pkcs11.h -+++ b/src/plugins/preauth/pkinit/pkcs11.h -@@ -339,9 +339,9 @@ typedef unsigned long ck_key_type_t; - #define CKK_GENERIC_SECRET (0x10) - #define CKK_RC2 (0x11) - #define CKK_RC4 (0x12) --#define CKK_DES (0x13) --#define CKK_DES2 (0x14) --#define CKK_DES3 (0x15) -+/* #define CKK_DES (0x13) */ -+/* #define CKK_DES2 (0x14) */ -+/* #define CKK_DES3 (0x15) */ - #define CKK_CAST (0x16) - #define CKK_CAST3 (0x17) - #define CKK_CAST128 (0x18) -diff --git a/src/plugins/preauth/pkinit/pkinit_crypto.h b/src/plugins/preauth/pkinit/pkinit_crypto.h -index 94a1b22fb1..65f6210727 100644 ---- a/src/plugins/preauth/pkinit/pkinit_crypto.h -+++ b/src/plugins/preauth/pkinit/pkinit_crypto.h -@@ -376,11 +376,11 @@ krb5_error_code server_process_dh - * krb5_algorithm_identifier - */ - krb5_error_code create_krb5_supportedCMSTypes -- (krb5_context context, /* IN */ -- pkinit_plg_crypto_context plg_cryptoctx, /* IN */ -- pkinit_req_crypto_context req_cryptoctx, /* IN */ -- pkinit_identity_crypto_context id_cryptoctx, /* IN */ -- krb5_algorithm_identifier ***supportedCMSTypes); /* OUT */ -+ (krb5_context context, /* IN */ -+ pkinit_plg_crypto_context plg_cryptoctx, /* IN */ -+ pkinit_req_crypto_context req_cryptoctx, /* IN */ -+ pkinit_identity_crypto_context id_cryptoctx, /* IN */ -+ krb5_algorithm_identifier ***supportedCMSTypes); /* OUT */ - - /* - * this functions takes in crypto specific representation of -diff --git a/src/plugins/preauth/pkinit/pkinit_kdf_test.c b/src/plugins/preauth/pkinit/pkinit_kdf_test.c -index 7f38e84910..99c93ac128 100644 ---- a/src/plugins/preauth/pkinit/pkinit_kdf_test.c -+++ b/src/plugins/preauth/pkinit/pkinit_kdf_test.c -@@ -49,7 +49,6 @@ char eighteen_bs[9]; - char party_u_name[] = "lha@SU.SE"; - char party_v_name[] = "krbtgt/SU.SE@SU.SE"; - int enctype_aes = ENCTYPE_AES256_CTS_HMAC_SHA1_96; --int enctype_des3 = ENCTYPE_DES3_CBC_SHA1; - const krb5_data lha_data = DATA_FROM_STRING("lha"); - - krb5_octet key1_hex[] = -@@ -187,35 +186,6 @@ main(int argc, char **argv) - goto cleanup; - } - -- /* TEST 3: SHA-512/DES3 */ -- /* set up algorithm id */ -- alg_id.algorithm = sha512_id; -- -- enctype = enctype_des3; -- -- /* call pkinit_alg_agility_kdf() with test vector values*/ -- if (0 != (retval = pkinit_alg_agility_kdf(context, &secret, -- &alg_id.algorithm, -- u_principal, v_principal, -- enctype, &as_req, &pk_as_rep, -- &key_block))) { -- printf("ERROR in pkinit_kdf_test: kdf call failed, retval = %d\n", -- retval); -- goto cleanup; -- } -- -- /* compare key to expected key value */ -- -- if ((key_block.length == sizeof(key3_hex)) && -- (0 == memcmp(key_block.contents, key3_hex, key_block.length))) { -- printf("SUCCESS: TEST 3 (SHA-512/DES3), Correct key value generated.\n"); -- retval = 0; -- } else { -- printf("FAILURE: TEST 2 (SHA-512/DES3), Incorrect key value generated!\n"); -- retval = 1; -- goto cleanup; -- } -- - cleanup: - /* release all allocated resources, whether good or bad return */ - free(secret.data); -diff --git a/src/plugins/preauth/spake/t_vectors.c b/src/plugins/preauth/spake/t_vectors.c -index 2279202d3a..96b0307d78 100644 ---- a/src/plugins/preauth/spake/t_vectors.c -+++ b/src/plugins/preauth/spake/t_vectors.c -@@ -56,31 +56,6 @@ struct test { - const char *K2; - const char *K3; - } tests[] = { -- { ENCTYPE_DES3_CBC_SHA1, SPAKE_GROUP_EDWARDS25519, -- /* initial key, w, x, y, T, S, K */ -- "850BB51358548CD05E86768C313E3BFEF7511937DCF72C3E", -- "686D84730CB8679AE95416C6567C6A63F2C9CEF124F7A3371AE81E11CAD42A37", -- "201012D07BFD48DDFA33C4AAC4FB1E229FB0D043CFE65EBFB14399091C71A723", -- "500B294797B8B042ACA1BEDC0F5931A4F52C537B3608B2D05CC8A2372F439F25", -- "18F511E750C97B592ACD30DB7D9E5FCA660389102E6BF610C1BFBED4616C8362", -- "5D10705E0D1E43D5DBF30240CCFBDE4A0230C70D4C79147AB0B317EDAD2F8AE7", -- "25BDE0D875F0FEB5755F45BA5E857889D916ECF7476F116AA31DC3E037EC4292", -- /* support, challenge, thash, body */ -- "A0093007A0053003020101", -- "A1363034A003020101A122042018F511E750C97B592ACD30DB7D9E5FCA660389" -- "102E6BF610C1BFBED4616C8362A20930073005A003020101", -- "EAAA08807D0616026FF51C849EFBF35BA0CE3C5300E7D486DA46351B13D4605B", -- "3075A00703050000000000A1143012A003020101A10B30091B07726165627572" -- "6EA2101B0E415448454E412E4D49542E454455A3233021A003020102A11A3018" -- "1B066B72627467741B0E415448454E412E4D49542E454455A511180F31393730" -- "303130313030303030305AA703020100A8053003020110", -- /* K'[0], K'[1], K'[2], K'[3] */ -- "BAF12FAE7CD958CBF1A29BFBC71F89CE49E03E295D89DAFD", -- "64F73DD9C41908206BCEC1F719026B574F9D13463D7A2520", -- "0454520B086B152C455829E6BAEFF78A61DFE9E3D04A895D", -- "4A92260B25E3EF94C125D5C24C3E5BCED5B37976E67F25C4", -- }, -- - { ENCTYPE_ARCFOUR_HMAC, SPAKE_GROUP_EDWARDS25519, - /* initial key, w, x, y, T, S, K */ - "8846F7EAEE8FB117AD06BDD830B7586C", -diff --git a/src/tests/gssapi/t_enctypes.py b/src/tests/gssapi/t_enctypes.py -index 7494d7fcdb..2f95d89967 100755 ---- a/src/tests/gssapi/t_enctypes.py -+++ b/src/tests/gssapi/t_enctypes.py -@@ -1,24 +1,17 @@ - from k5test import * - --# Define some convenience abbreviations for enctypes we will see in --# test program output. For background, aes256 and aes128 are "CFX --# enctypes", meaning that they imply support for RFC 4121, while des3 --# and rc4 are not. DES3 keys will appear as 'des3-cbc-raw' in --# t_enctypes output because that's how GSSAPI does raw triple-DES --# encryption without the RFC3961 framing. -+# Define some convenience abbreviations for enctypes we will see in test -+# program output. For background, aes256 and aes128 are "CFX enctypes", -+# meaning that they imply support for RFC 4121, while rc4 does not. - aes256 = 'aes256-cts-hmac-sha1-96' - aes128 = 'aes128-cts-hmac-sha1-96' --des3 = 'des3-cbc-sha1' --d_des3 = 'DEPRECATED:des3-cbc-sha1' --des3raw = 'des3-cbc-raw' --d_des3raw = 'DEPRECATED:des3-cbc-raw' - rc4 = 'arcfour-hmac' - d_rc4 = 'DEPRECATED:arcfour-hmac' - - # These tests make assumptions about the default enctype lists, so set - # them explicitly rather than relying on the library defaults. --supp='aes256-cts:normal aes128-cts:normal des3-cbc-sha1:normal rc4-hmac:normal' --conf = {'libdefaults': {'permitted_enctypes': 'aes des3 rc4'}, -+supp='aes256-cts:normal aes128-cts:normal rc4-hmac:normal' -+conf = {'libdefaults': {'permitted_enctypes': 'aes rc4'}, - 'realms': {'$realm': {'supported_enctypes': supp}}} - realm = K5Realm(krb5_conf=conf) - shutil.copyfile(realm.ccache, os.path.join(realm.testdir, 'save')) -@@ -87,19 +80,12 @@ test('both aes128', 'aes128-cts', 'aes128-cts', - test_err('acc aes128', None, 'aes128-cts', - 'Encryption type aes256-cts-hmac-sha1-96 not permitted') - --# If the initiator constrains the permitted session enctypes to des3, --# no acceptor subkey will be generated because we can't upgrade to a --# CFX enctype. --test('init des3', 'des3', None, -- tktenc=aes256, tktsession=d_des3, -- proto='rfc1964', isubkey=des3raw, asubkey=None) -- - # Force the ticket session key to be rc4, so we can test some subkey - # upgrade cases. The ticket encryption key remains aes256. - realm.run([kadminl, 'setstr', realm.host_princ, 'session_enctypes', 'rc4']) - - # With no arguments, the initiator should send an upgrade list of --# [aes256 aes128 des3] and the acceptor should upgrade to an aes256 -+# [aes256 aes128] and the acceptor should upgrade to an aes256 - # subkey. - test('upgrade noargs', None, None, - tktenc=aes256, tktsession=d_rc4, -@@ -115,13 +101,6 @@ test('upgrade init aes128+rc4', 'aes128-cts rc4', None, - tktenc=aes256, tktsession=d_rc4, - proto='cfx', isubkey=rc4, asubkey=aes128) - --# If the initiator permits rc4 but prefers des3, it will send an --# upgrade list of [des3], but the acceptor won't generate a subkey --# because des3 isn't a CFX enctype. --test('upgrade init des3+rc4', 'des3 rc4', None, -- tktenc=aes256, tktsession=d_rc4, -- proto='rfc1964', isubkey=rc4, asubkey=None) -- - # If the acceptor permits only aes128, subkey negotiation will fail - # because the ticket session key and initiator subkey are - # non-permitted. (This is unfortunate if the acceptor's restriction -diff --git a/src/tests/gssapi/t_invalid.c b/src/tests/gssapi/t_invalid.c -index 9876a11e67..fb8fe55111 100644 ---- a/src/tests/gssapi/t_invalid.c -+++ b/src/tests/gssapi/t_invalid.c -@@ -84,18 +84,6 @@ struct test { - size_t toklen; - const char *token; - } tests[] = { -- { -- ENCTYPE_DES3_CBC_SHA1, ENCTYPE_DES3_CBC_RAW, -- SEAL_ALG_DES3KD, SGN_ALG_HMAC_SHA1_DES3_KD, 20, -- 24, -- "\x4F\xEA\x19\x19\x5E\x0E\x10\xDF\x3D\x29\xB5\x13\x8F\x01\xC7\xA7" -- "\x92\x3D\x38\xF7\x26\x73\x0D\x6D", -- 65, -- "\x60\x3F\x06\x09\x2A\x86\x48\x86\xF7\x12\x01\x02\x02\x02\x01\x04" -- "\x00\x02\x00\xFF\xFF\xEB\xF3\x9A\x89\x24\x57\xB8\x63\x95\x25\xE8" -- "\x6E\x8E\x79\xE6\x2E\xCA\xD3\xFF\x57\x9F\x8C\xAB\xEF\xDD\x28\x10" -- "\x2F\x93\x21\x2E\xF2\x52\xB6\x6F\xA8\xBB\x8A\x6D\xAA\x6F\xB7\xF4\xD4" -- }, - { - ENCTYPE_ARCFOUR_HMAC, ENCTYPE_ARCFOUR_HMAC, - SEAL_ALG_MICROSOFT_RC4, SGN_ALG_HMAC_MD5, 8, -diff --git a/src/tests/gssapi/t_pcontok.c b/src/tests/gssapi/t_pcontok.c -index 7368f752f0..bf22bd3da1 100644 ---- a/src/tests/gssapi/t_pcontok.c -+++ b/src/tests/gssapi/t_pcontok.c -@@ -43,7 +43,6 @@ - #include "k5-int.h" - #include "common.h" - --#define SGN_ALG_HMAC_SHA1_DES3_KD 0x04 - #define SGN_ALG_HMAC_MD5 0x11 - - /* -@@ -77,17 +76,12 @@ make_delete_token(gss_krb5_lucid_context_v1_t *lctx, gss_buffer_desc *out) - ret = krb5_k_create_key(context, &seqkb, &seq); - check_k5err(context, "krb5_k_create_key", ret); - -- if (signalg == SGN_ALG_HMAC_SHA1_DES3_KD) { -- cktype = CKSUMTYPE_HMAC_SHA1_DES3; -- cksize = 20; -- ckusage = 23; -- } else if (signalg == SGN_ALG_HMAC_MD5) { -- cktype = CKSUMTYPE_HMAC_MD5_ARCFOUR; -- cksize = 8; -- ckusage = 15; -- } else { -+ if (signalg != SGN_ALG_HMAC_MD5) - abort(); -- } -+ -+ cktype = CKSUMTYPE_HMAC_MD5_ARCFOUR; -+ cksize = 8; -+ ckusage = 15; - - tlen = 20 + mech_krb5.length + cksize; - token = malloc(tlen); -diff --git a/src/tests/gssapi/t_prf.c b/src/tests/gssapi/t_prf.c -index f71774cdc9..d1857c433f 100644 ---- a/src/tests/gssapi/t_prf.c -+++ b/src/tests/gssapi/t_prf.c -@@ -41,13 +41,6 @@ static struct { - const char *key2; - const char *out2; - } tests[] = { -- { ENCTYPE_DES3_CBC_SHA1, -- "70378A19CD64134580C27C0115D6B34A1CF2FEECEF9886A2", -- "9F8D127C520BB826BFF3E0FE5EF352389C17E0C073D9" -- "AC4A333D644D21BA3EF24F4A886D143F85AC9F6377FB", -- "3452A167DF1094BA1089E0A20E9E51ABEF1525922558B69E", -- "6BF24FABC858F8DD9752E4FCD331BB831F238B5BE190" -- "4EEA42E38F7A60C588F075C5C96A67E7F8B7BD0AECF4" }, - { ENCTYPE_ARCFOUR_HMAC, - "3BB3AE288C12B3B9D06B208A4151B3B6", - "9AEA11A3BCF3C53F1F91F5A0BA2132E2501ADF5F3C28" -diff --git a/src/tests/t_authdata.py b/src/tests/t_authdata.py -index 97e2474bf8..47ea9e4b47 100644 ---- a/src/tests/t_authdata.py -+++ b/src/tests/t_authdata.py -@@ -164,7 +164,7 @@ realm.run([kvno, 'restricted']) - # preferred krbtgt enctype changes. - mark('#8139 regression test') - realm.kinit(realm.user_princ, password('user'), ['-f']) --realm.run([kadminl, 'cpw', '-randkey', '-keepold', '-e', 'des3-cbc-sha1', -+realm.run([kadminl, 'cpw', '-randkey', '-keepold', '-e', 'aes256-sha2', - realm.krbtgt_princ]) - realm.run(['./forward']) - realm.run([kvno, realm.host_princ]) -diff --git a/src/tests/t_etype_info.py b/src/tests/t_etype_info.py -index c982508d8b..96e90a69d2 100644 ---- a/src/tests/t_etype_info.py -+++ b/src/tests/t_etype_info.py -@@ -1,6 +1,6 @@ - from k5test import * - --supported_enctypes = 'aes128-cts des3-cbc-sha1 rc4-hmac' -+supported_enctypes = 'aes128-cts rc4-hmac' - conf = {'libdefaults': {'allow_weak_crypto': 'true'}, - 'realms': {'$realm': {'supported_enctypes': supported_enctypes}}} - realm = K5Realm(create_host=False, get_creds=False, krb5_conf=conf) -@@ -26,9 +26,9 @@ def test_etinfo(princ, enctypes, expected_lines): - # With no newer enctypes in the request, PA-ETYPE-INFO2, - # PA-ETYPE-INFO, and PA-PW-SALT appear in the AS-REP, each listing one - # key for the most preferred matching enctype. --test_etinfo('user', 'rc4-hmac-exp des3 rc4', -- ['asrep etype_info2 des3-cbc-sha1 KRBTEST.COMuser', -- 'asrep etype_info des3-cbc-sha1 KRBTEST.COMuser', -+test_etinfo('user', 'rc4-hmac-exp rc4', -+ ['asrep etype_info2 rc4-hmac KRBTEST.COMuser', -+ 'asrep etype_info rc4-hmac KRBTEST.COMuser', - 'asrep pw_salt KRBTEST.COMuser']) - - # With a newer enctype in the request (even if it is not the most -@@ -39,9 +39,9 @@ test_etinfo('user', 'rc4 aes256-cts', - - # In preauth-required errors, PA-PW-SALT does not appear, but the same - # etype-info2 values are expected. --test_etinfo('preauthuser', 'rc4-hmac-exp des3 rc4', -- ['error etype_info2 des3-cbc-sha1 KRBTEST.COMpreauthuser', -- 'error etype_info des3-cbc-sha1 KRBTEST.COMpreauthuser']) -+test_etinfo('preauthuser', 'rc4-hmac-exp rc4', -+ ['error etype_info2 rc4-hmac KRBTEST.COMpreauthuser', -+ 'error etype_info rc4-hmac KRBTEST.COMpreauthuser']) - test_etinfo('preauthuser', 'rc4 aes256-cts', - ['error etype_info2 rc4-hmac KRBTEST.COMpreauthuser']) - -@@ -50,8 +50,8 @@ test_etinfo('preauthuser', 'rc4 aes256-cts', - # (to allow for preauth mechs which don't depend on long-term keys). - # An AS-REP cannot be generated without preauth as there is no reply - # key. --test_etinfo('rc4user', 'des3', []) --test_etinfo('nokeyuser', 'des3', []) -+test_etinfo('rc4user', 'aes128-cts', []) -+test_etinfo('nokeyuser', 'aes128-cts', []) - - # Verify that etype-info2 is included in a MORE_PREAUTH_DATA_REQUIRED - # error if the client does optimistic preauth. -diff --git a/src/tests/t_keyrollover.py b/src/tests/t_keyrollover.py -index 2c825a6922..f29e0d5500 100755 ---- a/src/tests/t_keyrollover.py -+++ b/src/tests/t_keyrollover.py -@@ -37,9 +37,9 @@ realm.run([klist, '-e'], expected_msg=msg) - - # Test that the KDC only accepts the first enctype for a kvno, for a - # local-realm TGS request. To set this up, we abuse an edge-case --# behavior of modprinc -kvno. First, set up a DES3 krbtgt entry at -+# behavior of modprinc -kvno. First, set up an aes128-sha2 krbtgt entry at - # kvno 1 and cache a krbtgt ticket. --realm.run([kadminl, 'cpw', '-randkey', '-e', 'des3-cbc-sha1', -+realm.run([kadminl, 'cpw', '-randkey', '-e', 'aes128-cts-hmac-sha256-128', - realm.krbtgt_princ]) - realm.run([kadminl, 'modprinc', '-kvno', '1', realm.krbtgt_princ]) - realm.kinit(realm.user_princ, password('user')) -@@ -50,9 +50,9 @@ realm.run([kadminl, 'cpw', '-randkey', '-keepold', '-e', 'aes256-cts', - realm.run([kadminl, 'modprinc', '-kvno', '1', realm.krbtgt_princ]) - out = realm.run([kadminl, 'getprinc', realm.krbtgt_princ]) - if 'vno 1, aes256-cts' not in out or \ -- 'vno 1, DEPRECATED:des3-cbc-sha1' not in out: -+ 'vno 1, aes128-cts-hmac-sha256-128' not in out: - fail('keyrollover: setup for TGS enctype test failed') --# Now present the DES3 ticket to the KDC and make sure it's rejected. -+# Now present the aes128-sha2 ticket to the KDC and make sure it's rejected. - realm.run([kvno, realm.host_princ], expected_code=1) - - realm.stop() -diff --git a/src/tests/t_mkey.py b/src/tests/t_mkey.py -index 32f4070bcb..da0ed1831e 100755 ---- a/src/tests/t_mkey.py -+++ b/src/tests/t_mkey.py -@@ -7,7 +7,6 @@ import struct - # default enctype for master keys. - aes256 = 'aes256-cts-hmac-sha1-96' - aes128 = 'aes128-cts-hmac-sha1-96' --des3 = 'des3-cbc-sha1' - defetype = aes256 - - realm = K5Realm(create_host=False, start_kadmind=True) -@@ -300,40 +299,6 @@ if 'Decrypt integrity check failed' in out or 'added to keytab' not in out: - - realm.stop() - --# Load a dump file created with krb5 1.6, before the master key --# rollover changes were introduced. Write out an old-format stash --# file consistent with the dump's master password ("footes"). The K/M --# entry in this database will not have actkvno tl-data because it was --# created prior to master key rollover support. Verify that: --# 1. We can access the database using the old-format stash file. --# 2. list_mkeys displays the same list as for a post-1.7 KDB. --mark('pre-1.7 stash file') --dumpfile = os.path.join(srctop, 'tests', 'dumpfiles', 'dump.16') --os.remove(stash_file) --f = open(stash_file, 'wb') --f.write(struct.pack('=HL24s', 16, 24, -- b'\xF8\x3E\xFB\xBA\x6D\x80\xD9\x54\xE5\x5D\xF2\xE0' -- b'\x94\xAD\x6D\x86\xB5\x16\x37\xEC\x7C\x8A\xBC\x86')) --f.close() --realm.run([kdb5_util, 'load', dumpfile]) --nprincs = len(realm.run([kadminl, 'listprincs']).splitlines()) --check_mkvno('K/M', 1) --check_mkey_list((1, des3, True, True)) -- --# Create a new master key and verify that, without actkvkno tl-data: --# 1. list_mkeys displays the same as for a post-1.7 KDB. --# 2. update_princ_encryption still targets mkvno 1. --# 3. libkadm5 still uses mkvno 1 for key changes. --# 4. use_mkey creates the same list as for a post-1.7 KDB. --mark('rollover from pre-1.7 KDB') --add_mkey([]) --check_mkey_list((2, defetype, False, False), (1, des3, True, True)) --update_princ_encryption(False, 1, 0, nprincs - 1) --realm.run([kadminl, 'addprinc', '-randkey', realm.user_princ]) --check_mkvno(realm.user_princ, 1) --realm.run([kdb5_util, 'use_mkey', '2', 'now-1day']) --check_mkey_list((2, defetype, True, True), (1, des3, True, False)) -- - # Regression test for #8395. Purge the master key and verify that a - # master key fetch does not segfault. - mark('#8395 regression test') -diff --git a/src/tests/t_salt.py b/src/tests/t_salt.py -index 65084bbf35..55ca897459 100755 ---- a/src/tests/t_salt.py -+++ b/src/tests/t_salt.py -@@ -16,13 +16,12 @@ def test_salt(realm, e1, salt, e2): - - # Enctype/salt pairs chosen with non-default salt types. - # The enctypes are mostly arbitrary. --salts = [('des3-cbc-sha1', 'norealm'), -+salts = [('aes128-cts-hmac-sha1-96', 'norealm'), - ('arcfour-hmac', 'onlyrealm'), - ('aes128-cts-hmac-sha1-96', 'special')] - # These enctypes are chosen to cover the different string-to-key routines. - # Omit ":normal" from aes256 to check that salttype defaulting works. --second_kstypes = ['aes256-cts-hmac-sha1-96', 'arcfour-hmac:normal', -- 'des3-cbc-sha1:normal'] -+second_kstypes = ['aes256-cts-hmac-sha1-96', 'arcfour-hmac:normal'] - - # Test using different salt types in a principal's key list. - # Parameters from one key in the list must not leak over to later ones. -diff --git a/src/util/k5test.py b/src/util/k5test.py -index 619f1995f8..771f82e3cc 100644 ---- a/src/util/k5test.py -+++ b/src/util/k5test.py -@@ -1344,13 +1344,6 @@ _passes = [ - # No special settings; exercises AES256. - ('default', None, None, None), - -- # Exercise the DES3 enctype. -- ('des3', None, -- {'libdefaults': {'permitted_enctypes': 'des3'}}, -- {'realms': {'$realm': { -- 'supported_enctypes': 'des3-cbc-sha1:normal', -- 'master_key_type': 'des3-cbc-sha1'}}}), -- - # Exercise the arcfour enctype. - ('arcfour', None, - {'libdefaults': {'permitted_enctypes': 'rc4'}}, -diff --git a/src/windows/leash/htmlhelp/html/Encryption_Types.htm b/src/windows/leash/htmlhelp/html/Encryption_Types.htm -index 1aebdd0b4a..c38eefd2bd 100644 ---- a/src/windows/leash/htmlhelp/html/Encryption_Types.htm -+++ b/src/windows/leash/htmlhelp/html/Encryption_Types.htm -@@ -79,19 +79,6 @@ will have an entry in the Encryption type column.
- Description - - -- des3- -- The triple DES family improves on --the original DES (Data Encryption Standard) by using 3 separate 56-bit --keys. Some modes of 3DES are considered weak while others are strong --(if slow).
    --
  • des3-cbc-sha1
  • --
  • des3-cbc-raw (weak)
  • --
  • des3-hmac-sha1
  • --
  • des3-cbc-sha1-kd
  • --
-- -- -- - aes - The AES Advanced Encryption Standard - family, like 3DES, is a symmetric block cipher and was designed --- -2.38.1 - diff --git a/0007-Add-configure-variable-for-default-PKCS-11-module.patch b/0007-Add-configure-variable-for-default-PKCS-11-module.patch deleted file mode 100644 index 1445133..0000000 --- a/0007-Add-configure-variable-for-default-PKCS-11-module.patch +++ /dev/null @@ -1,201 +0,0 @@ -From 842b4c3b5695e2518e6f1a1545db78865c04b59c Mon Sep 17 00:00:00 2001 -From: Julien Rische -Date: Fri, 22 Apr 2022 14:12:37 +0200 -Subject: [PATCH] Add configure variable for default PKCS#11 module - -[ghudson@mit.edu: added documentation of configure variable and doc -substitution; shortened commit message] - -ticket: 9058 (new) ---- - doc/admin/conf_files/krb5_conf.rst | 2 +- - doc/build/options2configure.rst | 3 +++ - doc/conf.py | 3 +++ - doc/mitK5defaults.rst | 25 +++++++++++++------------ - src/configure.ac | 8 ++++++++ - src/doc/Makefile.in | 2 ++ - src/man/Makefile.in | 4 +++- - src/man/krb5.conf.man | 2 +- - src/plugins/preauth/pkinit/pkinit.h | 1 - - 9 files changed, 34 insertions(+), 16 deletions(-) - -diff --git a/doc/admin/conf_files/krb5_conf.rst b/doc/admin/conf_files/krb5_conf.rst -index 2a4962069f..a33711d918 100644 ---- a/doc/admin/conf_files/krb5_conf.rst -+++ b/doc/admin/conf_files/krb5_conf.rst -@@ -1017,7 +1017,7 @@ information for PKINIT is as follows: - All keyword/values are optional. *modname* specifies the location - of a library implementing PKCS #11. If a value is encountered - with no keyword, it is assumed to be the *modname*. If no -- module-name is specified, the default is ``opensc-pkcs11.so``. -+ module-name is specified, the default is |pkcs11_modname|. - ``slotid=`` and/or ``token=`` may be specified to force the use of - a particular smard card reader or token if there is more than one - available. ``certid=`` and/or ``certlabel=`` may be specified to -diff --git a/doc/build/options2configure.rst b/doc/build/options2configure.rst -index 9e355dc2c5..e879b18bd2 100644 ---- a/doc/build/options2configure.rst -+++ b/doc/build/options2configure.rst -@@ -137,6 +137,9 @@ Environment variables - This option allows one to specify libraries to be passed to the - linker (e.g., ``-l``) - -+**PKCS11_MODNAME=**\ *library* -+ Override the built-in default PKCS11 library name. -+ - **SS_LIB=**\ *libs*... - If ``-lss`` is not the correct way to link in your installed ss - library, for example if additional support libraries are needed, -diff --git a/doc/conf.py b/doc/conf.py -index 12168fa695..0ab5ff9606 100644 ---- a/doc/conf.py -+++ b/doc/conf.py -@@ -242,6 +242,7 @@ if 'mansubs' in tags: - ccache = '``@CCNAME@``' - keytab = '``@KTNAME@``' - ckeytab = '``@CKTNAME@``' -+ pkcs11_modname = '``@PKCS11MOD@``' - elif 'pathsubs' in tags: - # Read configured paths from a file produced by the build system. - exec(open("paths.py").read()) -@@ -255,6 +256,7 @@ else: - ccache = ':ref:`DEFCCNAME `' - keytab = ':ref:`DEFKTNAME `' - ckeytab = ':ref:`DEFCKTNAME `' -+ pkcs11_modname = ':ref:`PKCS11_MODNAME `' - - rst_epilog = '\n' - -@@ -275,6 +277,7 @@ else: - rst_epilog += '.. |ccache| replace:: %s\n' % ccache - rst_epilog += '.. |keytab| replace:: %s\n' % keytab - rst_epilog += '.. |ckeytab| replace:: %s\n' % ckeytab -+ rst_epilog += '.. |pkcs11_modname| replace:: %s\n' % pkcs11_modname - rst_epilog += ''' - .. |krb5conf| replace:: ``/etc/krb5.conf`` - .. |defkeysalts| replace:: ``aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal`` -diff --git a/doc/mitK5defaults.rst b/doc/mitK5defaults.rst -index 74e69f4ad0..aea7af3dbb 100644 ---- a/doc/mitK5defaults.rst -+++ b/doc/mitK5defaults.rst -@@ -59,18 +59,19 @@ subdirectories of ``/usr/local``. When MIT krb5 is integrated into an - operating system, the paths are generally chosen to match the - operating system's filesystem layout. - --========================== ============= =========================== =========================== --Description Symbolic name Custom build path Typical OS path --========================== ============= =========================== =========================== --User programs BINDIR ``/usr/local/bin`` ``/usr/bin`` --Libraries and plugins LIBDIR ``/usr/local/lib`` ``/usr/lib`` --Parent of KDC state dir LOCALSTATEDIR ``/usr/local/var`` ``/var`` --Parent of KDC runtime dir RUNSTATEDIR ``/usr/local/var/run`` ``/run`` --Administrative programs SBINDIR ``/usr/local/sbin`` ``/usr/sbin`` --Alternate krb5.conf dir SYSCONFDIR ``/usr/local/etc`` ``/etc`` --Default ccache name DEFCCNAME ``FILE:/tmp/krb5cc_%{uid}`` ``FILE:/tmp/krb5cc_%{uid}`` --Default keytab name DEFKTNAME ``FILE:/etc/krb5.keytab`` ``FILE:/etc/krb5.keytab`` --========================== ============= =========================== =========================== -+========================== ============== =========================== =========================== -+Description Symbolic name Custom build path Typical OS path -+========================== ============== =========================== =========================== -+User programs BINDIR ``/usr/local/bin`` ``/usr/bin`` -+Libraries and plugins LIBDIR ``/usr/local/lib`` ``/usr/lib`` -+Parent of KDC state dir LOCALSTATEDIR ``/usr/local/var`` ``/var`` -+Parent of KDC runtime dir RUNSTATEDIR ``/usr/local/var/run`` ``/run`` -+Administrative programs SBINDIR ``/usr/local/sbin`` ``/usr/sbin`` -+Alternate krb5.conf dir SYSCONFDIR ``/usr/local/etc`` ``/etc`` -+Default ccache name DEFCCNAME ``FILE:/tmp/krb5cc_%{uid}`` ``FILE:/tmp/krb5cc_%{uid}`` -+Default keytab name DEFKTNAME ``FILE:/etc/krb5.keytab`` ``FILE:/etc/krb5.keytab`` -+Default PKCS11 module PKCS11_MODNAME ``opensc-pkcs11.so`` ``opensc-pkcs11.so`` -+========================== ============== =========================== =========================== - - The default client keytab name (DEFCKTNAME) typically defaults to - ``FILE:/usr/local/var/krb5/user/%{euid}/client.keytab`` for a custom -diff --git a/src/configure.ac b/src/configure.ac -index 8dc864718d..9774cb71ae 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -1471,6 +1471,14 @@ AC_DEFINE_UNQUOTED(DEFKTNAME, ["$DEFKTNAME"], [Define to default keytab name]) - AC_DEFINE_UNQUOTED(DEFCKTNAME, ["$DEFCKTNAME"], - [Define to default client keytab name]) - -+AC_ARG_VAR(PKCS11_MODNAME, [Default PKCS11 module name]) -+if test "${PKCS11_MODNAME+set}" != set; then -+ PKCS11_MODNAME=opensc-pkcs11.so -+fi -+AC_MSG_NOTICE([Default PKCS11 module name: $PKCS11_MODNAME]) -+AC_DEFINE_UNQUOTED(PKCS11_MODNAME, ["$PKCS11_MODNAME"], -+ [Default PKCS11 module name]) -+ - AC_CONFIG_FILES([build-tools/krb5-config], [chmod +x build-tools/krb5-config]) - AC_CONFIG_FILES([build-tools/kadm-server.pc - build-tools/kadm-client.pc -diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in -index 379bc36511..a1b0cff0a4 100644 ---- a/src/doc/Makefile.in -+++ b/src/doc/Makefile.in -@@ -10,6 +10,7 @@ sysconfdir=@sysconfdir@ - DEFCCNAME=@DEFCCNAME@ - DEFKTNAME=@DEFKTNAME@ - DEFCKTNAME=@DEFCKTNAME@ -+PKCS11_MODNAME=@PKCS11_MODNAME@ - - RST_SOURCES= _static \ - _templates \ -@@ -118,6 +119,7 @@ paths.py: - echo 'ccache = "``$(DEFCCNAME)``"' >> $@ - echo 'keytab = "``$(DEFKTNAME)``"' >> $@ - echo 'ckeytab = "``$(DEFCKTNAME)``"' >> $@ -+ echo 'pkcs11_modname = "``$(PKCS11_MODNAME)``"' >> $@ - - # Dummy rule that man/Makefile can invoke - version.py: $(docsrc)/version.py -diff --git a/src/man/Makefile.in b/src/man/Makefile.in -index 00b1b2de06..85cae0914e 100644 ---- a/src/man/Makefile.in -+++ b/src/man/Makefile.in -@@ -8,6 +8,7 @@ sysconfdir=@sysconfdir@ - DEFCCNAME=@DEFCCNAME@ - DEFKTNAME=@DEFKTNAME@ - DEFCKTNAME=@DEFCKTNAME@ -+PKCS11_MODNAME=@PKCS11_MODNAME@ - - MANSUBS=k5identity.sub k5login.sub k5srvutil.sub kadm5.acl.sub kadmin.sub \ - kadmind.sub kdb5_ldap_util.sub kdb5_util.sub kdc.conf.sub \ -@@ -47,7 +48,8 @@ $(docsrc)/version.py: $(top_srcdir)/patchlevel.h - -e 's|@SYSCONFDIR@|$(sysconfdir)|g' \ - -e 's|@CCNAME@|$(DEFCCNAME)|g' \ - -e 's|@KTNAME@|$(DEFKTNAME)|g' \ -- -e 's|@CKTNAME@|$(DEFCKTNAME)|g' $? > $@ -+ -e 's|@CKTNAME@|$(DEFCKTNAME)|g' \ -+ -e 's|@PKCS11MOD@|$(PKCS11_MODNAME)|g' $? > $@ - - all: $(MANSUBS) - -diff --git a/src/man/krb5.conf.man b/src/man/krb5.conf.man -index 51acb38815..fd2c6f2bc4 100644 ---- a/src/man/krb5.conf.man -+++ b/src/man/krb5.conf.man -@@ -1148,7 +1148,7 @@ user\(aqs certificate and private key. - All keyword/values are optional. \fImodname\fP specifies the location - of a library implementing PKCS #11. If a value is encountered - with no keyword, it is assumed to be the \fImodname\fP\&. If no --module\-name is specified, the default is \fBopensc\-pkcs11.so\fP\&. -+module\-name is specified, the default is \fB@PKCS11MOD@\fP\&. - \fBslotid=\fP and/or \fBtoken=\fP may be specified to force the use of - a particular smard card reader or token if there is more than one - available. \fBcertid=\fP and/or \fBcertlabel=\fP may be specified to -diff --git a/src/plugins/preauth/pkinit/pkinit.h b/src/plugins/preauth/pkinit/pkinit.h -index 8135535e2c..66f92d8f03 100644 ---- a/src/plugins/preauth/pkinit/pkinit.h -+++ b/src/plugins/preauth/pkinit/pkinit.h -@@ -42,7 +42,6 @@ - #ifndef WITHOUT_PKCS11 - #include "pkcs11.h" - --#define PKCS11_MODNAME "opensc-pkcs11.so" - #define PK_SIGLEN_GUESS 1000 - #define PK_NOSLOT 999999 - #endif --- -2.38.1 - diff --git a/0008-Set-reasonable-supportedCMSTypes-in-PKINIT.patch b/0008-Set-reasonable-supportedCMSTypes-in-PKINIT.patch deleted file mode 100644 index 3755c15..0000000 --- a/0008-Set-reasonable-supportedCMSTypes-in-PKINIT.patch +++ /dev/null @@ -1,159 +0,0 @@ -From 3fb8c4c68274d2ff4addb44b7b95b4698c2c4f34 Mon Sep 17 00:00:00 2001 -From: Julien Rische -Date: Wed, 1 Jun 2022 18:02:04 +0200 -Subject: [PATCH] Set reasonable supportedCMSTypes in PKINIT - -The PKINIT client uses AuthPack.supportedCMSTypes to let the KDC know -the algorithms it supports for verification of the CMS data signature. -(The MIT krb5 KDC currently ignores this list, but other -implementations use it.) - -Replace 3DES with sha512WithRSAEncryption and sha256WithRSAEncryption. - -[ghudson@mit.edu: simplified code and used appropriate helpers; edited -commit message] - -ticket: 9066 (new) ---- - src/plugins/preauth/pkinit/pkinit_constants.c | 33 ++++++++++++- - src/plugins/preauth/pkinit/pkinit_crypto.h | 4 ++ - .../preauth/pkinit/pkinit_crypto_openssl.c | 49 ++++++++++--------- - 3 files changed, 60 insertions(+), 26 deletions(-) - -diff --git a/src/plugins/preauth/pkinit/pkinit_constants.c b/src/plugins/preauth/pkinit/pkinit_constants.c -index 652897fa14..1da482e0b4 100644 ---- a/src/plugins/preauth/pkinit/pkinit_constants.c -+++ b/src/plugins/preauth/pkinit/pkinit_constants.c -@@ -32,9 +32,14 @@ - - #include "pkinit.h" - --/* statically declare OID constants for all three algorithms */ --static char sha1_oid[8] = { 0x2B, 0x06, 0x01, 0x05, 0x02, 0x03, 0x06, 0x01}; -+/* RFC 8636 id-pkinit-kdf-ah-sha1: iso(1) identified-organization(3) dod(6) -+ * internet(1) security(5) kerberosv5(2) pkinit(3) kdf(6) sha1(1) */ -+static char sha1_oid[8] = { 0x2B, 0x06, 0x01, 0x05, 0x02, 0x03, 0x06, 0x01 }; -+/* RFC 8636 id-pkinit-kdf-ah-sha256: iso(1) identified-organization(3) dod(6) -+ * internet(1) security(5) kerberosv5(2) pkinit(3) kdf(6) sha256(2) */ - static char sha256_oid[8] = { 0x2B, 0x06, 0x01, 0x05, 0x02, 0x03, 0x06, 0x02 }; -+/* RFC 8636 id-pkinit-kdf-ah-sha512: iso(1) identified-organization(3) dod(6) -+ * internet(1) security(5) kerberosv5(2) pkinit(3) kdf(6) sha512(3) */ - static char sha512_oid[8] = { 0x2B, 0x06, 0x01, 0x05, 0x02, 0x03, 0x06, 0x03 }; - - const krb5_data sha1_id = { KV5M_DATA, sizeof(sha1_oid), sha1_oid }; -@@ -48,6 +53,30 @@ krb5_data const * const supported_kdf_alg_ids[] = { - NULL - }; - -+/* RFC 4055 sha256WithRSAEncryption: iso(1) member-body(2) us(840) -+ * rsadsi(113549) pkcs(1) 1 11 */ -+static char sha256WithRSAEncr_oid[9] = { -+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b -+}; -+/* RFC 4055 sha256WithRSAEncryption: iso(1) member-body(2) us(840) -+ * rsadsi(113549) pkcs(1) 1 13 */ -+static char sha512WithRSAEncr_oid[9] = { -+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0d -+}; -+ -+const krb5_data sha256WithRSAEncr_id = { -+ KV5M_DATA, sizeof(sha256WithRSAEncr_oid), sha256WithRSAEncr_oid -+}; -+const krb5_data sha512WithRSAEncr_id = { -+ KV5M_DATA, sizeof(sha512WithRSAEncr_oid), sha512WithRSAEncr_oid -+}; -+ -+krb5_data const * const supported_cms_algs[] = { -+ &sha512WithRSAEncr_id, -+ &sha256WithRSAEncr_id, -+ NULL -+}; -+ - /* RFC 2412 section E.2 (well-known group 2) parameters, DER-encoded as - * DomainParameters (RFC 3279 section 2.3.3). */ - static const uint8_t o1024[] = { -diff --git a/src/plugins/preauth/pkinit/pkinit_crypto.h b/src/plugins/preauth/pkinit/pkinit_crypto.h -index 65f6210727..64300da856 100644 ---- a/src/plugins/preauth/pkinit/pkinit_crypto.h -+++ b/src/plugins/preauth/pkinit/pkinit_crypto.h -@@ -620,6 +620,10 @@ extern const krb5_data oakley_4096; - */ - extern krb5_data const * const supported_kdf_alg_ids[]; - -+/* CMS signature algorithms supported by this implementation, in order of -+ * decreasing preference. */ -+extern krb5_data const * const supported_cms_algs[]; -+ - krb5_error_code - crypto_encode_der_cert(krb5_context context, pkinit_req_crypto_context reqctx, - uint8_t **der_out, size_t *der_len); -diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c -index d500455dec..1c2aa02827 100644 ---- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c -+++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c -@@ -5475,37 +5475,38 @@ create_krb5_supportedCMSTypes(krb5_context context, - pkinit_plg_crypto_context plg_cryptoctx, - pkinit_req_crypto_context req_cryptoctx, - pkinit_identity_crypto_context id_cryptoctx, -- krb5_algorithm_identifier ***oids) -+ krb5_algorithm_identifier ***algs_out) - { -+ krb5_error_code ret; -+ krb5_algorithm_identifier **algs = NULL; -+ size_t i, count; - -- krb5_error_code retval = ENOMEM; -- krb5_algorithm_identifier **loids = NULL; -- krb5_data des3oid = {0, 8, "\x2A\x86\x48\x86\xF7\x0D\x03\x07" }; -+ *algs_out = NULL; - -- *oids = NULL; -- loids = malloc(2 * sizeof(krb5_algorithm_identifier *)); -- if (loids == NULL) -- goto cleanup; -- loids[1] = NULL; -- loids[0] = malloc(sizeof(krb5_algorithm_identifier)); -- if (loids[0] == NULL) { -- free(loids); -- goto cleanup; -- } -- retval = pkinit_copy_krb5_data(&loids[0]->algorithm, &des3oid); -- if (retval) { -- free(loids[0]); -- free(loids); -+ /* Count supported OIDs and allocate list (including null terminator). */ -+ for (count = 0; supported_cms_algs[count] != NULL; count++); -+ algs = k5calloc(count + 1, sizeof(*algs), &ret); -+ if (algs == NULL) - goto cleanup; -+ -+ /* Add an algorithm identifier for each OID, with no parameters. */ -+ for (i = 0; i < count; i++) { -+ algs[i] = k5alloc(sizeof(*algs[i]), &ret); -+ if (algs[i] == NULL) -+ goto cleanup; -+ ret = krb5int_copy_data_contents(context, supported_cms_algs[i], -+ &algs[i]->algorithm); -+ if (ret) -+ goto cleanup; -+ algs[i]->parameters = empty_data(); - } -- loids[0]->parameters.length = 0; -- loids[0]->parameters.data = NULL; - -- *oids = loids; -- retval = 0; --cleanup: -+ *algs_out = algs; -+ algs = NULL; - -- return retval; -+cleanup: -+ free_krb5_algorithm_identifiers(&algs); -+ return ret; - } - - krb5_error_code --- -2.38.1 - diff --git a/0009-Simplify-plugin-loading-code.patch b/0009-Simplify-plugin-loading-code.patch deleted file mode 100644 index 42802e5..0000000 --- a/0009-Simplify-plugin-loading-code.patch +++ /dev/null @@ -1,622 +0,0 @@ -From ffb47e4120d68aef015453350a3a50a9bab1ec58 Mon Sep 17 00:00:00 2001 -From: Greg Hudson -Date: Thu, 23 Jun 2022 16:41:40 -0400 -Subject: [PATCH] Simplify plugin loading code - -Remove the USE_CFBUNDLE code, which was only used by KfM. Handle -platform conditionals according to current practice. Use -k5_dir_filenames() instead of opendir() and remove the Windows -implementation of opendir(). ---- - src/util/support/plugins.c | 507 +++++++++++-------------------------- - 1 file changed, 150 insertions(+), 357 deletions(-) - -diff --git a/src/util/support/plugins.c b/src/util/support/plugins.c -index c6a9a21d57..0850565687 100644 ---- a/src/util/support/plugins.c -+++ b/src/util/support/plugins.c -@@ -29,16 +29,6 @@ - #if USE_DLOPEN - #include - #endif --#include --#ifdef HAVE_SYS_STAT_H --#include --#endif --#ifdef HAVE_SYS_PARAM_H --#include --#endif --#ifdef HAVE_UNISTD_H --#include --#endif - - #if USE_DLOPEN - #ifdef RTLD_GROUP -@@ -68,16 +58,6 @@ - #endif - #endif - --#if USE_DLOPEN && USE_CFBUNDLE --#include -- --/* Currently CoreFoundation only exists on the Mac so we just use -- * pthreads directly to avoid creating empty function calls on other -- * platforms. If a thread initializer ever gets created in the common -- * plugin code, move this there */ --static pthread_mutex_t krb5int_bundle_mutex = PTHREAD_MUTEX_INITIALIZER; --#endif -- - #include - static void Tprintf (const char *fmt, ...) - { -@@ -90,374 +70,193 @@ static void Tprintf (const char *fmt, ...) - } - - struct plugin_file_handle { --#if USE_DLOPEN -+#if defined(USE_DLOPEN) - void *dlhandle; --#endif --#ifdef _WIN32 -- HMODULE hinstPlugin; --#endif --#if !defined (USE_DLOPEN) && !defined (_WIN32) -+#elif defined(_WIN32) -+ HMODULE module; -+#else - char dummy; - #endif - }; - --#ifdef _WIN32 --struct dirent { -- long d_ino; /* inode (always 1 in WIN32) */ -- off_t d_off; /* offset to this dirent */ -- unsigned short d_reclen; /* length of d_name */ -- char d_name[_MAX_FNAME+1]; /* filename (null terminated) */ --}; -- --typedef struct { -- intptr_t handle; /* _findfirst/_findnext handle */ -- short offset; /* offset into directory */ -- short finished; /* 1 if there are not more files */ -- struct _finddata_t fileinfo;/* from _findfirst/_findnext */ -- char *dir; /* the dir we are reading */ -- struct dirent dent; /* the dirent to return */ --} DIR; -+#if defined(USE_DLOPEN) - --DIR * opendir(const char *dir) -+static long -+open_plugin_dlfcn(struct plugin_file_handle *h, const char *filename, -+ struct errinfo *ep) - { -- DIR *dp; -- char *filespec; -- intptr_t handle; -- int index; -- -- filespec = malloc(strlen(dir) + 2 + 1); -- strcpy(filespec, dir); -- index = strlen(filespec) - 1; -- if (index >= 0 && (filespec[index] == '/' || filespec[index] == '\\')) -- filespec[index] = '\0'; -- strcat(filespec, "/*"); -- -- dp = (DIR *)malloc(sizeof(DIR)); -- dp->offset = 0; -- dp->finished = 0; -- dp->dir = strdup(dir); -- -- if ((handle = _findfirst(filespec, &(dp->fileinfo))) < 0) { -- if (errno == ENOENT) -- dp->finished = 1; -- else { -- free(filespec); -- free(dp->dir); -- free(dp); -- return NULL; -- } -+ const char *e; -+ -+ h->dlhandle = dlopen(filename, PLUGIN_DLOPEN_FLAGS); -+ if (h->dlhandle == NULL) { -+ e = dlerror(); -+ if (e == NULL) -+ e = _("unknown failure"); -+ Tprintf("dlopen(%s): %s\n", filename, e); -+ k5_set_error(ep, ENOENT, _("unable to load plugin [%s]: %s"), -+ filename, e); -+ return ENOENT; - } -- -- dp->handle = handle; -- free(filespec); -- -- return dp; -+ return 0; - } -+#define open_plugin open_plugin_dlfcn - --struct dirent * readdir(DIR *dp) -+static long -+get_sym_dlfcn(struct plugin_file_handle *h, const char *csymname, -+ void **sym_out, struct errinfo *ep) - { -- if (!dp || dp->finished) return NULL; -- -- if (dp->offset != 0) { -- if (_findnext(dp->handle, &(dp->fileinfo)) < 0) { -- dp->finished = 1; -- return NULL; -- } -+ const char *e; -+ -+ if (h->dlhandle == NULL) -+ return ENOENT; -+ *sym_out = dlsym(h->dlhandle, csymname); -+ if (*sym_out == NULL) { -+ e = dlerror(); -+ if (e == NULL) -+ e = _("unknown failure"); -+ Tprintf("dlsym(%s): %s\n", csymname, e); -+ k5_set_error(ep, ENOENT, "%s", e); -+ return ENOENT; - } -- dp->offset++; -- -- strncpy(dp->dent.d_name, dp->fileinfo.name, _MAX_FNAME); -- dp->dent.d_ino = 1; -- dp->dent.d_reclen = (unsigned short)strlen(dp->dent.d_name); -- dp->dent.d_off = dp->offset; -- -- return &(dp->dent); --} -- --int closedir(DIR *dp) --{ -- if (!dp) return 0; -- _findclose(dp->handle); -- free(dp->dir); -- free(dp); -- - return 0; - } --#endif -+#define get_sym get_sym_dlfcn - --long KRB5_CALLCONV --krb5int_open_plugin (const char *filepath, struct plugin_file_handle **h, struct errinfo *ep) -+static void -+close_plugin_dlfcn(struct plugin_file_handle *h) - { -- long err = 0; -- struct plugin_file_handle *htmp = NULL; -- int got_plugin = 0; --#if defined(USE_CFBUNDLE) || defined(_WIN32) -- struct stat statbuf; -- -- if (!err) { -- if (stat (filepath, &statbuf) < 0) { -- err = errno; -- Tprintf ("stat(%s): %s\n", filepath, strerror (err)); -- k5_set_error(ep, err, _("unable to find plugin [%s]: %s"), -- filepath, strerror(err)); -- } -- } --#endif -- -- if (!err) { -- htmp = calloc (1, sizeof (*htmp)); /* calloc initializes ptrs to NULL */ -- if (htmp == NULL) { err = ENOMEM; } -- } -- --#if USE_DLOPEN -- if (!err --#if USE_CFBUNDLE -- && ((statbuf.st_mode & S_IFMT) == S_IFREG -- || (statbuf.st_mode & S_IFMT) == S_IFDIR) --#endif /* USE_CFBUNDLE */ -- ) { -- void *handle = NULL; -- --#if USE_CFBUNDLE -- char executablepath[MAXPATHLEN]; -- -- if ((statbuf.st_mode & S_IFMT) == S_IFDIR) { -- int lock_err = 0; -- CFStringRef pluginString = NULL; -- CFURLRef pluginURL = NULL; -- CFBundleRef pluginBundle = NULL; -- CFURLRef executableURL = NULL; -- -- /* Lock around CoreFoundation calls since objects are refcounted -- * and the refcounts are not thread-safe. Using pthreads directly -- * because this code is Mac-specific */ -- lock_err = pthread_mutex_lock(&krb5int_bundle_mutex); -- if (lock_err) { err = lock_err; } -- -- if (!err) { -- pluginString = CFStringCreateWithCString (kCFAllocatorDefault, -- filepath, -- kCFStringEncodingASCII); -- if (pluginString == NULL) { err = ENOMEM; } -- } -- -- if (!err) { -- pluginURL = CFURLCreateWithFileSystemPath (kCFAllocatorDefault, -- pluginString, -- kCFURLPOSIXPathStyle, -- true); -- if (pluginURL == NULL) { err = ENOMEM; } -- } -- -- if (!err) { -- pluginBundle = CFBundleCreate (kCFAllocatorDefault, pluginURL); -- if (pluginBundle == NULL) { err = ENOENT; } /* XXX need better error */ -- } -- -- if (!err) { -- executableURL = CFBundleCopyExecutableURL (pluginBundle); -- if (executableURL == NULL) { err = ENOMEM; } -- } -- -- if (!err) { -- if (!CFURLGetFileSystemRepresentation (executableURL, -- true, /* absolute */ -- (UInt8 *)executablepath, -- sizeof (executablepath))) { -- err = ENOMEM; -- } -- } -- -- if (!err) { -- /* override the path the caller passed in */ -- filepath = executablepath; -- } -- -- if (executableURL != NULL) { CFRelease (executableURL); } -- if (pluginBundle != NULL) { CFRelease (pluginBundle); } -- if (pluginURL != NULL) { CFRelease (pluginURL); } -- if (pluginString != NULL) { CFRelease (pluginString); } -- -- /* unlock after CFRelease calls since they modify refcounts */ -- if (!lock_err) { pthread_mutex_unlock (&krb5int_bundle_mutex); } -- } --#endif /* USE_CFBUNDLE */ -- -- if (!err) { -- handle = dlopen(filepath, PLUGIN_DLOPEN_FLAGS); -- if (handle == NULL) { -- const char *e = dlerror(); -- if (e == NULL) -- e = _("unknown failure"); -- Tprintf ("dlopen(%s): %s\n", filepath, e); -- err = ENOENT; /* XXX */ -- k5_set_error(ep, err, _("unable to load plugin [%s]: %s"), -- filepath, e); -- } -- } -+ if (h->dlhandle != NULL) -+ dlclose(h->dlhandle); -+} -+#define close_plugin close_plugin_dlfcn - -- if (!err) { -- got_plugin = 1; -- htmp->dlhandle = handle; -- handle = NULL; -- } -+#elif defined(_WIN32) - -- if (handle != NULL) { dlclose (handle); } -+static long -+open_plugin_win32(struct plugin_file_handle *h, const char *filename, -+ struct errinfo *ep) -+{ -+ h->module = LoadLibrary(filename); -+ if (h == NULL) { -+ Tprintf("Unable to load dll: %s\n", filename); -+ k5_set_error(ep, ENOENT, _("unable to load DLL [%s]"), filename); -+ return ENOENT; - } --#endif /* USE_DLOPEN */ -- --#ifdef _WIN32 -- if (!err && (statbuf.st_mode & S_IFMT) == S_IFREG) { -- HMODULE handle = NULL; -+ return 0; -+} -+#define open_plugin open_plugin_win32 - -- handle = LoadLibrary(filepath); -- if (handle == NULL) { -- Tprintf ("Unable to load dll: %s\n", filepath); -- err = ENOENT; /* XXX */ -- k5_set_error(ep, err, _("unable to load DLL [%s]"), filepath); -- } -+static long -+get_sym_win32(struct plugin_file_handle *h, const char *csymname, -+ void **sym_out, struct errinfo *ep) -+{ -+ LPVOID lpMsgBuf; -+ DWORD dw; - -- if (!err) { -- got_plugin = 1; -- htmp->hinstPlugin = handle; -- handle = NULL; -+ if (h->module == NULL) -+ return ENOENT; -+ *sym_out = GetProcAddress(h->module, csymname); -+ if (*sym_out == NULL) { -+ Tprintf("GetProcAddress(%s): %i\n", csymname, GetLastError()); -+ dw = GetLastError(); -+ if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | -+ FORMAT_MESSAGE_FROM_SYSTEM, -+ NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), -+ (LPTSTR)&lpMsgBuf, 0, NULL)) { -+ k5_set_error(ep, ENOENT, _("unable to get DLL Symbol: %s"), -+ (char *)lpMsgBuf); -+ LocalFree(lpMsgBuf); - } -- -- if (handle != NULL) -- FreeLibrary(handle); -- } --#endif -- -- if (!err && !got_plugin) { -- err = ENOENT; /* no plugin or no way to load plugins */ -- k5_set_error(ep, err, _("plugin unavailable: %s"), strerror(err)); -+ return ENOENT; - } -+ return 0; -+} -+#define get_sym get_sym_win32 - -- if (!err) { -- *h = htmp; -- htmp = NULL; /* h takes ownership */ -- } -+static void -+close_plugin_win32(struct plugin_file_handle *h) -+{ -+ if (h->module != NULL) -+ FreeLibrary(h->module); -+} -+#define close_plugin close_plugin_win32 - -- free(htmp); -+#else - -- return err; -+static long -+open_plugin_dummy(struct plugin_file_handle *h, const char *filename, -+ struct errinfo *ep) -+{ -+ k5_set_error(ep, ENOENT, _("plugin loading unavailable")); -+ return ENOENT; - } -+#define open_plugin open_plugin_dummy - - static long --krb5int_get_plugin_sym (struct plugin_file_handle *h, -- const char *csymname, int isfunc, void **ptr, -- struct errinfo *ep) -+get_sym_dummy(struct plugin_file_handle *h, const char *csymname, -+ void **sym_out, struct errinfo *ep) - { -- long err = 0; -- void *sym = NULL; -+ return ENOENT; -+} -+#define get_sym get_sym_dummy -+ -+static void -+close_plugin_dummy(struct plugin_file_handle *h) -+{ -+} -+#define close_plugin close_plugin_dummy - --#if USE_DLOPEN -- if (!err && !sym && (h->dlhandle != NULL)) { -- /* XXX Do we need to add a leading "_" to the symbol name on any -- modern platforms? */ -- sym = dlsym (h->dlhandle, csymname); -- if (sym == NULL) { -- const char *e = dlerror (); /* XXX copy and save away */ -- if (e == NULL) -- e = "unknown failure"; -- Tprintf ("dlsym(%s): %s\n", csymname, e); -- err = ENOENT; /* XXX */ -- k5_set_error(ep, err, "%s", e); -- } -- } - #endif - --#ifdef _WIN32 -- LPVOID lpMsgBuf; -- DWORD dw; -+long KRB5_CALLCONV -+krb5int_open_plugin(const char *filename, -+ struct plugin_file_handle **handle_out, struct errinfo *ep) -+{ -+ long ret; -+ struct plugin_file_handle *h; - -- if (!err && !sym && (h->hinstPlugin != NULL)) { -- sym = GetProcAddress(h->hinstPlugin, csymname); -- if (sym == NULL) { -- const char *e = "unable to get dll symbol"; /* XXX copy and save away */ -- Tprintf ("GetProcAddress(%s): %i\n", csymname, GetLastError()); -- err = ENOENT; /* XXX */ -- k5_set_error(ep, err, "%s", e); -- -- dw = GetLastError(); -- if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | -- FORMAT_MESSAGE_FROM_SYSTEM, -- NULL, -- dw, -- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), -- (LPTSTR) &lpMsgBuf, -- 0, NULL )) { -- -- fprintf (stderr, "unable to get dll symbol, %s\n", (LPCTSTR)lpMsgBuf); -- LocalFree(lpMsgBuf); -- } -- } -- } --#endif -+ *handle_out = NULL; - -- if (!err && (sym == NULL)) { -- err = ENOENT; /* unimplemented */ -- } -+ h = calloc(1, sizeof(*h)); -+ if (h == NULL) -+ return ENOMEM; - -- if (!err) { -- *ptr = sym; -+ ret = open_plugin(h, filename, ep); -+ if (ret) { -+ free(h); -+ return ret; - } - -- return err; -+ *handle_out = h; -+ return 0; - } - - long KRB5_CALLCONV --krb5int_get_plugin_data (struct plugin_file_handle *h, const char *csymname, -- void **ptr, struct errinfo *ep) -+krb5int_get_plugin_data(struct plugin_file_handle *h, const char *csymname, -+ void **sym_out, struct errinfo *ep) - { -- return krb5int_get_plugin_sym (h, csymname, 0, ptr, ep); -+ return get_sym(h, csymname, sym_out, ep); - } - - long KRB5_CALLCONV --krb5int_get_plugin_func (struct plugin_file_handle *h, const char *csymname, -- void (**ptr)(), struct errinfo *ep) -+krb5int_get_plugin_func(struct plugin_file_handle *h, const char *csymname, -+ void (**sym_out)(), struct errinfo *ep) - { - void *dptr = NULL; -- long err = krb5int_get_plugin_sym (h, csymname, 1, &dptr, ep); -- if (!err) { -- /* Cast function pointers to avoid code duplication */ -- *ptr = (void (*)()) dptr; -- } -- return err; -+ long ret = get_sym(h, csymname, &dptr, ep); -+ -+ if (!ret) -+ *sym_out = (void (*)())dptr; -+ return ret; - } - - void KRB5_CALLCONV - krb5int_close_plugin (struct plugin_file_handle *h) - { --#if USE_DLOPEN -- if (h->dlhandle != NULL) { dlclose(h->dlhandle); } --#endif --#ifdef _WIN32 -- if (h->hinstPlugin != NULL) { FreeLibrary(h->hinstPlugin); } --#endif -- free (h); -+ close_plugin(h); -+ free(h); - } - --/* autoconf docs suggest using this preference order */ --#if HAVE_DIRENT_H || USE_DIRENT_H --#include --#define NAMELEN(D) strlen((D)->d_name) --#else --#ifndef _WIN32 --#define dirent direct --#define NAMELEN(D) ((D)->d->namlen) --#else --#define NAMELEN(D) strlen((D)->d_name) --#endif --#if HAVE_SYS_NDIR_H --# include --#elif HAVE_SYS_DIR_H --# include --#elif HAVE_NDIR_H --# include --#endif --#endif -- - static long - krb5int_plugin_file_handle_array_init (struct plugin_file_handle ***harray) - { -@@ -619,42 +418,36 @@ krb5int_open_plugin_dirs (const char * const *dirnames, - if (handle != NULL) { krb5int_close_plugin (handle); } - } - } else { -- /* load all plugins in each directory */ -- DIR *dir = opendir (dirnames[i]); -+ char **fnames = NULL; -+ int j; - -- while (dir != NULL && !err) { -- struct dirent *d = NULL; -+ err = k5_dir_filenames(dirnames[i], &fnames); -+ for (j = 0; !err && fnames[j] != NULL; j++) { - char *filepath = NULL; - struct plugin_file_handle *handle = NULL; - -- d = readdir (dir); -- if (d == NULL) { break; } -- -- if ((strcmp (d->d_name, ".") == 0) || -- (strcmp (d->d_name, "..") == 0)) { -+ if (strcmp(fnames[j], ".") == 0 || -+ strcmp(fnames[j], "..") == 0) - continue; -- } - -- if (!err) { -- int len = NAMELEN (d); -- if (asprintf(&filepath, "%s/%*s", dirnames[i], len, d->d_name) < 0) { -- filepath = NULL; -- err = ENOMEM; -- } -+ if (asprintf(&filepath, "%s/%s", dirnames[i], fnames[j]) < 0) { -+ filepath = NULL; -+ err = ENOMEM; - } - -- if (!err) { -- if (krb5int_open_plugin (filepath, &handle, ep) == 0) { -- err = krb5int_plugin_file_handle_array_add (&h, &count, handle); -- if (!err) { handle = NULL; } /* h takes ownership */ -- } -+ if (!err && krb5int_open_plugin(filepath, &handle, ep) == 0) { -+ err = krb5int_plugin_file_handle_array_add(&h, &count, -+ handle); -+ if (!err) -+ handle = NULL; /* h takes ownership */ - } - - free(filepath); -- if (handle != NULL) { krb5int_close_plugin (handle); } -+ if (handle != NULL) -+ krb5int_close_plugin(handle); - } - -- if (dir != NULL) { closedir (dir); } -+ k5_free_filenames(fnames); - } - } - --- -2.38.1 - diff --git a/0012-Add-and-use-ts_interval-helper.patch b/0012-Add-and-use-ts_interval-helper.patch deleted file mode 100644 index 5f9647e..0000000 --- a/0012-Add-and-use-ts_interval-helper.patch +++ /dev/null @@ -1,239 +0,0 @@ -From 07ec260c65ec036d44362868df0f796a53495f27 Mon Sep 17 00:00:00 2001 -From: Greg Hudson -Date: Mon, 19 Sep 2022 15:18:50 -0400 -Subject: [PATCH] Add and use ts_interval() helper - -ts_delta() returns a signed result, which cannot hold an interval -larger than 2^31-1 seconds. Intervals like this have been seen when -admins set password expiration dates more than 68 years in the future. - -Add a second helper ts_interval() which returns a signed result, and -has the arguments reversed so that the start time is first. Use it in -warn_pw_expiry() to handle the password expiration case, in the GSS -krb5 mech where we return an unsigned context or credential lifetime -to the caller, and in the KEYRING ccache type where we compute an -unsigned keyring timeout. - -ticket: 9071 (new) ---- - src/include/k5-int.h | 9 +++++++++ - src/lib/gssapi/krb5/accept_sec_context.c | 10 ++++++---- - src/lib/gssapi/krb5/acquire_cred.c | 3 +-- - src/lib/gssapi/krb5/context_time.c | 2 +- - src/lib/gssapi/krb5/init_sec_context.c | 4 ++-- - src/lib/gssapi/krb5/inq_context.c | 2 +- - src/lib/gssapi/krb5/inq_cred.c | 2 +- - src/lib/gssapi/krb5/s4u_gss_glue.c | 2 +- - src/lib/krb5/ccache/cc_keyring.c | 4 ++-- - src/lib/krb5/krb/get_in_tkt.c | 15 +++++++-------- - 10 files changed, 31 insertions(+), 22 deletions(-) - -diff --git a/src/include/k5-int.h b/src/include/k5-int.h -index c3aecba7d4..768110e5ef 100644 ---- a/src/include/k5-int.h -+++ b/src/include/k5-int.h -@@ -2325,6 +2325,15 @@ ts_delta(krb5_timestamp a, krb5_timestamp b) - return (krb5_deltat)((uint32_t)a - (uint32_t)b); - } - -+/* Return (end - start) as an unsigned 32-bit value, or 0 if start > end. */ -+static inline uint32_t -+ts_interval(krb5_timestamp start, krb5_timestamp end) -+{ -+ if ((uint32_t)start > (uint32_t)end) -+ return 0; -+ return (uint32_t)end - (uint32_t)start; -+} -+ - /* Increment a timestamp by a signed 32-bit interval, without relying on - * undefined behavior. */ - static inline krb5_timestamp -diff --git a/src/lib/gssapi/krb5/accept_sec_context.c b/src/lib/gssapi/krb5/accept_sec_context.c -index 1bc807172b..7de2c9fd77 100644 ---- a/src/lib/gssapi/krb5/accept_sec_context.c -+++ b/src/lib/gssapi/krb5/accept_sec_context.c -@@ -353,8 +353,8 @@ kg_accept_dce(minor_status, context_handle, verifier_cred_handle, - *mech_type = ctx->mech_used; - - if (time_rec) { -- *time_rec = ts_delta(ctx->krb_times.endtime, now) + -- ctx->k5_context->clockskew; -+ *time_rec = ts_interval(now - ctx->k5_context->clockskew, -+ ctx->krb_times.endtime); - } - - /* Never return GSS_C_DELEG_FLAG since we don't support DCE credential -@@ -1151,8 +1151,10 @@ kg_accept_krb5(minor_status, context_handle, - - /* Add the maximum allowable clock skew as a grace period for context - * expiration, just as we do for the ticket. */ -- if (time_rec) -- *time_rec = ts_delta(ctx->krb_times.endtime, now) + context->clockskew; -+ if (time_rec) { -+ *time_rec = ts_interval(now - context->clockskew, -+ ctx->krb_times.endtime); -+ } - - if (ret_flags) - *ret_flags = ctx->gss_flags; -diff --git a/src/lib/gssapi/krb5/acquire_cred.c b/src/lib/gssapi/krb5/acquire_cred.c -index e226a02692..006eba114d 100644 ---- a/src/lib/gssapi/krb5/acquire_cred.c -+++ b/src/lib/gssapi/krb5/acquire_cred.c -@@ -879,8 +879,7 @@ acquire_cred_context(krb5_context context, OM_uint32 *minor_status, - GSS_C_NO_NAME); - if (GSS_ERROR(ret)) - goto error_out; -- *time_rec = ts_after(cred->expire, now) ? -- ts_delta(cred->expire, now) : 0; -+ *time_rec = ts_interval(now, cred->expire); - k5_mutex_unlock(&cred->lock); - } - } -diff --git a/src/lib/gssapi/krb5/context_time.c b/src/lib/gssapi/krb5/context_time.c -index 1fdb5a16f2..5469d8154c 100644 ---- a/src/lib/gssapi/krb5/context_time.c -+++ b/src/lib/gssapi/krb5/context_time.c -@@ -51,7 +51,7 @@ krb5_gss_context_time(minor_status, context_handle, time_rec) - return(GSS_S_FAILURE); - } - -- lifetime = ts_delta(ctx->krb_times.endtime, now); -+ lifetime = ts_interval(now, ctx->krb_times.endtime); - if (!ctx->initiate) - lifetime += ctx->k5_context->clockskew; - if (lifetime <= 0) { -diff --git a/src/lib/gssapi/krb5/init_sec_context.c b/src/lib/gssapi/krb5/init_sec_context.c -index ea87cf6432..f0f094ccb7 100644 ---- a/src/lib/gssapi/krb5/init_sec_context.c -+++ b/src/lib/gssapi/krb5/init_sec_context.c -@@ -664,7 +664,7 @@ kg_new_connection( - if (time_rec) { - if ((code = krb5_timeofday(context, &now))) - goto cleanup; -- *time_rec = ts_delta(ctx->krb_times.endtime, now); -+ *time_rec = ts_interval(now, ctx->krb_times.endtime); - } - - /* set the other returns */ -@@ -878,7 +878,7 @@ mutual_auth( - if (time_rec) { - if ((code = krb5_timeofday(context, &now))) - goto fail; -- *time_rec = ts_delta(ctx->krb_times.endtime, now); -+ *time_rec = ts_interval(now, ctx->krb_times.endtime); - } - - if (ret_flags) -diff --git a/src/lib/gssapi/krb5/inq_context.c b/src/lib/gssapi/krb5/inq_context.c -index cac024da1f..51c484fdfe 100644 ---- a/src/lib/gssapi/krb5/inq_context.c -+++ b/src/lib/gssapi/krb5/inq_context.c -@@ -120,7 +120,7 @@ krb5_gss_inquire_context(minor_status, context_handle, initiator_name, - - /* Add the maximum allowable clock skew as a grace period for context - * expiration, just as we do for the ticket during authentication. */ -- lifetime = ts_delta(ctx->krb_times.endtime, now); -+ lifetime = ts_interval(now, ctx->krb_times.endtime); - if (!ctx->initiate) - lifetime += context->clockskew; - if (lifetime < 0) -diff --git a/src/lib/gssapi/krb5/inq_cred.c b/src/lib/gssapi/krb5/inq_cred.c -index bb63b726c8..0e675959a3 100644 ---- a/src/lib/gssapi/krb5/inq_cred.c -+++ b/src/lib/gssapi/krb5/inq_cred.c -@@ -131,7 +131,7 @@ krb5_gss_inquire_cred(minor_status, cred_handle, name, lifetime_ret, - } - - if (cred->expire != 0) { -- lifetime = ts_delta(cred->expire, now); -+ lifetime = ts_interval(now, cred->expire); - if (lifetime < 0) - lifetime = 0; - } -diff --git a/src/lib/gssapi/krb5/s4u_gss_glue.c b/src/lib/gssapi/krb5/s4u_gss_glue.c -index 7dcfe4e1eb..fa7f980af7 100644 ---- a/src/lib/gssapi/krb5/s4u_gss_glue.c -+++ b/src/lib/gssapi/krb5/s4u_gss_glue.c -@@ -279,7 +279,7 @@ kg_compose_deleg_cred(OM_uint32 *minor_status, - if (code != 0) - goto cleanup; - -- *time_rec = ts_delta(cred->expire, now); -+ *time_rec = ts_interval(now, cred->expire); - } - - major_status = GSS_S_COMPLETE; -diff --git a/src/lib/krb5/ccache/cc_keyring.c b/src/lib/krb5/ccache/cc_keyring.c -index ebef37d607..1dadeef64f 100644 ---- a/src/lib/krb5/ccache/cc_keyring.c -+++ b/src/lib/krb5/ccache/cc_keyring.c -@@ -762,7 +762,7 @@ update_keyring_expiration(krb5_context context, krb5_ccache id) - - /* Setting the timeout to zero would reset the timeout, so we set it to one - * second instead if creds are already expired. */ -- timeout = ts_after(endtime, now) ? ts_delta(endtime, now) : 1; -+ timeout = ts_after(endtime, now) ? ts_interval(now, endtime) : 1; - (void)keyctl_set_timeout(data->cache_id, timeout); - } - -@@ -1343,7 +1343,7 @@ krcc_store(krb5_context context, krb5_ccache id, krb5_creds *creds) - - if (ts_after(creds->times.endtime, now)) { - (void)keyctl_set_timeout(cred_key, -- ts_delta(creds->times.endtime, now)); -+ ts_interval(now, creds->times.endtime)); - } - - update_keyring_expiration(context, id); -diff --git a/src/lib/krb5/krb/get_in_tkt.c b/src/lib/krb5/krb/get_in_tkt.c -index 8b5ab595e9..1b420a3ac2 100644 ---- a/src/lib/krb5/krb/get_in_tkt.c -+++ b/src/lib/krb5/krb/get_in_tkt.c -@@ -1522,7 +1522,7 @@ warn_pw_expiry(krb5_context context, krb5_get_init_creds_opt *options, - void *expire_data; - krb5_timestamp pw_exp, acct_exp, now; - krb5_boolean is_last_req; -- krb5_deltat delta; -+ uint32_t interval; - char ts[256], banner[1024]; - - if (as_reply == NULL || as_reply->enc_part2 == NULL) -@@ -1553,8 +1553,8 @@ warn_pw_expiry(krb5_context context, krb5_get_init_creds_opt *options, - ret = krb5_timeofday(context, &now); - if (ret != 0) - return; -- if (!is_last_req && -- (ts_after(now, pw_exp) || ts_delta(pw_exp, now) > 7 * 24 * 60 * 60)) -+ interval = ts_interval(now, pw_exp); -+ if (!is_last_req && (!interval || interval > 7 * 24 * 60 * 60)) - return; - - if (!prompter) -@@ -1564,19 +1564,18 @@ warn_pw_expiry(krb5_context context, krb5_get_init_creds_opt *options, - if (ret != 0) - return; - -- delta = ts_delta(pw_exp, now); -- if (delta < 3600) { -+ if (interval < 3600) { - snprintf(banner, sizeof(banner), - _("Warning: Your password will expire in less than one hour " - "on %s"), ts); -- } else if (delta < 86400 * 2) { -+ } else if (interval < 86400 * 2) { - snprintf(banner, sizeof(banner), - _("Warning: Your password will expire in %d hour%s on %s"), -- delta / 3600, delta < 7200 ? "" : "s", ts); -+ interval / 3600, interval < 7200 ? "" : "s", ts); - } else { - snprintf(banner, sizeof(banner), - _("Warning: Your password will expire in %d days on %s"), -- delta / 86400, ts); -+ interval / 86400, ts); - } - - /* PROMPTER_INVOCATION */ --- -2.38.1 - diff --git a/0017-Add-PAC-full-checksums.patch b/0017-Add-PAC-full-checksums.patch deleted file mode 100644 index f0a20f6..0000000 --- a/0017-Add-PAC-full-checksums.patch +++ /dev/null @@ -1,672 +0,0 @@ -From 5801da1ddc3b0984ad6997bb7a692eac85ff7dd3 Mon Sep 17 00:00:00 2001 -From: Greg Hudson -Date: Thu, 22 Dec 2022 03:05:23 -0500 -Subject: [PATCH] Add PAC full checksums - -A paper by Tom Tervoort noted that computing the PAC privsvr checksum -over only the server checksum is vulnerable to collision attacks -(CVE-2022-37967). In response, Microsoft has added a second KDC -checksum over the full contents of the PAC. Generate and verify full -KDC checksums in PACs for service tickets. Update the t_pac.c ticket -test case to use a ticket issued by a recent version of Active -Directory (provided by Stefan Metzmacher). - -ticket: 9084 (new) ---- - doc/appdev/refs/macros/index.rst | 1 + - src/include/krb5/krb5.hin | 1 + - src/lib/krb5/krb/pac.c | 92 +++++++++-------- - src/lib/krb5/krb/pac_sign.c | 146 +++++++++++++++----------- - src/lib/krb5/krb/t_pac.c | 171 ++++++++++++++++++------------- - src/tests/t_authdata.py | 4 +- - 6 files changed, 240 insertions(+), 175 deletions(-) - -diff --git a/doc/appdev/refs/macros/index.rst b/doc/appdev/refs/macros/index.rst -index 5f34dea5e8..3eeee25593 100644 ---- a/doc/appdev/refs/macros/index.rst -+++ b/doc/appdev/refs/macros/index.rst -@@ -247,6 +247,7 @@ Public - KRB5_PAC_SERVER_CHECKSUM.rst - KRB5_PAC_TICKET_CHECKSUM.rst - KRB5_PAC_UPN_DNS_INFO.rst -+ KRB5_PAC_FULL_CHECKSUM.rst - KRB5_PADATA_AFS3_SALT.rst - KRB5_PADATA_AP_REQ.rst - KRB5_PADATA_AS_CHECKSUM.rst -diff --git a/src/include/krb5/krb5.hin b/src/include/krb5/krb5.hin -index fb9f2a366c..2ba4010514 100644 ---- a/src/include/krb5/krb5.hin -+++ b/src/include/krb5/krb5.hin -@@ -8164,6 +8164,7 @@ krb5_verify_authdata_kdc_issued(krb5_context context, - #define KRB5_PAC_TICKET_CHECKSUM 16 /**< Ticket checksum */ - #define KRB5_PAC_ATTRIBUTES_INFO 17 /**< PAC attributes */ - #define KRB5_PAC_REQUESTOR 18 /**< PAC requestor SID */ -+#define KRB5_PAC_FULL_CHECKSUM 19 /**< KDC full checksum */ - - struct krb5_pac_data; - /** PAC data structure to convey authorization information */ -diff --git a/src/lib/krb5/krb/pac.c b/src/lib/krb5/krb/pac.c -index f6c4373de0..954482e0c7 100644 ---- a/src/lib/krb5/krb/pac.c -+++ b/src/lib/krb5/krb/pac.c -@@ -490,7 +490,8 @@ zero_signature(krb5_context context, const krb5_pac pac, krb5_ui_4 type, - size_t i; - - assert(type == KRB5_PAC_SERVER_CHECKSUM || -- type == KRB5_PAC_PRIVSVR_CHECKSUM); -+ type == KRB5_PAC_PRIVSVR_CHECKSUM || -+ type == KRB5_PAC_FULL_CHECKSUM); - assert(data->length >= pac->data.length); - - for (i = 0; i < pac->pac->cBuffers; i++) { -@@ -557,17 +558,17 @@ verify_checksum(krb5_context context, const krb5_pac pac, uint32_t buffer_type, - } - - static krb5_error_code --verify_server_checksum(krb5_context context, const krb5_pac pac, -- const krb5_keyblock *server) -+verify_pac_checksums(krb5_context context, const krb5_pac pac, -+ krb5_boolean expect_full_checksum, -+ const krb5_keyblock *server, const krb5_keyblock *privsvr) - { - krb5_error_code ret; -- krb5_data copy; /* PAC with zeroed checksums */ -+ krb5_data copy, server_checksum; - -+ /* Make a copy of the PAC with zeroed out server and privsvr checksums. */ - ret = krb5int_copy_data_contents(context, &pac->data, ©); - if (ret) - return ret; -- -- /* Zero out both checksum buffers */ - ret = zero_signature(context, pac, KRB5_PAC_SERVER_CHECKSUM, ©); - if (ret) - goto cleanup; -@@ -575,32 +576,46 @@ verify_server_checksum(krb5_context context, const krb5_pac pac, - if (ret) - goto cleanup; - -- ret = verify_checksum(context, pac, KRB5_PAC_SERVER_CHECKSUM, server, -- KRB5_KEYUSAGE_APP_DATA_CKSUM, ©); -+ if (server != NULL) { -+ /* Verify the server checksum over the PAC copy. */ -+ ret = verify_checksum(context, pac, KRB5_PAC_SERVER_CHECKSUM, server, -+ KRB5_KEYUSAGE_APP_DATA_CKSUM, ©); -+ } - --cleanup: -- free(copy.data); -- return ret; --} -+ if (privsvr != NULL && expect_full_checksum) { -+ /* Zero the full checksum buffer in the copy and verify the full -+ * checksum over the copy with all three checksums zeroed. */ -+ ret = zero_signature(context, pac, KRB5_PAC_FULL_CHECKSUM, ©); -+ if (ret) -+ goto cleanup; -+ ret = verify_checksum(context, pac, KRB5_PAC_FULL_CHECKSUM, privsvr, -+ KRB5_KEYUSAGE_APP_DATA_CKSUM, ©); -+ if (ret) -+ goto cleanup; -+ } - --static krb5_error_code --verify_kdc_checksum(krb5_context context, const krb5_pac pac, -- const krb5_keyblock *privsvr) --{ -- krb5_error_code ret; -- krb5_data server_checksum; -+ if (privsvr != NULL) { -+ /* Verify the privsvr checksum over the server checksum. */ -+ ret = k5_pac_locate_buffer(context, pac, KRB5_PAC_SERVER_CHECKSUM, -+ &server_checksum); -+ if (ret) -+ return ret; -+ if (server_checksum.length < PAC_SIGNATURE_DATA_LENGTH) -+ return KRB5_BAD_MSIZE; -+ server_checksum.data += PAC_SIGNATURE_DATA_LENGTH; -+ server_checksum.length -= PAC_SIGNATURE_DATA_LENGTH; - -- ret = k5_pac_locate_buffer(context, pac, KRB5_PAC_SERVER_CHECKSUM, -- &server_checksum); -- if (ret) -- return ret; -- if (server_checksum.length < PAC_SIGNATURE_DATA_LENGTH) -- return KRB5_BAD_MSIZE; -- server_checksum.data += PAC_SIGNATURE_DATA_LENGTH; -- server_checksum.length -= PAC_SIGNATURE_DATA_LENGTH; -+ ret = verify_checksum(context, pac, KRB5_PAC_PRIVSVR_CHECKSUM, privsvr, -+ KRB5_KEYUSAGE_APP_DATA_CKSUM, &server_checksum); -+ if (ret) -+ goto cleanup; -+ } -+ -+ pac->verified = TRUE; - -- return verify_checksum(context, pac, KRB5_PAC_PRIVSVR_CHECKSUM, privsvr, -- KRB5_KEYUSAGE_APP_DATA_CKSUM, &server_checksum); -+cleanup: -+ free(copy.data); -+ return ret; - } - - /* Per MS-PAC 2.8.3, tickets encrypted to TGS and password change principals -@@ -628,6 +643,7 @@ krb5_kdc_verify_ticket(krb5_context context, const krb5_enc_tkt_part *enc_tkt, - krb5_authdata **authdata, *orig, **ifrel = NULL, **recoded_ifrel = NULL; - uint8_t z = 0; - krb5_authdata zpac = { KV5M_AUTHDATA, KRB5_AUTHDATA_WIN2K_PAC, 1, &z }; -+ krb5_boolean is_service_tkt; - size_t i, j; - - *pac_out = NULL; -@@ -669,7 +685,8 @@ krb5_kdc_verify_ticket(krb5_context context, const krb5_enc_tkt_part *enc_tkt, - if (ret) - goto cleanup; - -- if (privsvr != NULL && k5_pac_should_have_ticket_signature(server_princ)) { -+ is_service_tkt = k5_pac_should_have_ticket_signature(server_princ); -+ if (privsvr != NULL && is_service_tkt) { - /* To check the PAC ticket signatures, re-encode the ticket with the - * PAC contents replaced by a single zero. */ - orig = ifrel[j]; -@@ -693,8 +710,9 @@ krb5_kdc_verify_ticket(krb5_context context, const krb5_enc_tkt_part *enc_tkt, - goto cleanup; - } - -- ret = krb5_pac_verify_ext(context, pac, enc_tkt->times.authtime, NULL, -- server, privsvr, FALSE); -+ ret = verify_pac_checksums(context, pac, is_service_tkt, server, privsvr); -+ if (ret) -+ goto cleanup; - - *pac_out = pac; - pac = NULL; -@@ -730,14 +748,8 @@ krb5_pac_verify_ext(krb5_context context, - { - krb5_error_code ret; - -- if (server != NULL) { -- ret = verify_server_checksum(context, pac, server); -- if (ret != 0) -- return ret; -- } -- -- if (privsvr != NULL) { -- ret = verify_kdc_checksum(context, pac, privsvr); -+ if (server != NULL || privsvr != NULL) { -+ ret = verify_pac_checksums(context, pac, FALSE, server, privsvr); - if (ret != 0) - return ret; - } -@@ -749,8 +761,6 @@ krb5_pac_verify_ext(krb5_context context, - return ret; - } - -- pac->verified = TRUE; -- - return 0; - } - -diff --git a/src/lib/krb5/krb/pac_sign.c b/src/lib/krb5/krb/pac_sign.c -index 0f9581abbb..8ea61ac17b 100644 ---- a/src/lib/krb5/krb/pac_sign.c -+++ b/src/lib/krb5/krb/pac_sign.c -@@ -187,26 +187,41 @@ k5_pac_encode_header(krb5_context context, krb5_pac pac) - return 0; - } - --krb5_error_code KRB5_CALLCONV --krb5_pac_sign(krb5_context context, krb5_pac pac, krb5_timestamp authtime, -- krb5_const_principal principal, const krb5_keyblock *server_key, -- const krb5_keyblock *privsvr_key, krb5_data *data) -+/* Find the buffer of type buftype in pac and write within it a checksum of -+ * type cksumtype over data. Set *cksum_out to the checksum. */ -+static krb5_error_code -+compute_pac_checksum(krb5_context context, krb5_pac pac, uint32_t buftype, -+ const krb5_keyblock *key, krb5_cksumtype cksumtype, -+ const krb5_data *data, krb5_data *cksum_out) - { -- return krb5_pac_sign_ext(context, pac, authtime, principal, server_key, -- privsvr_key, FALSE, data); -+ krb5_error_code ret; -+ krb5_data buf; -+ krb5_crypto_iov iov[2]; -+ -+ ret = k5_pac_locate_buffer(context, pac, buftype, &buf); -+ if (ret) -+ return ret; -+ -+ assert(buf.length > PAC_SIGNATURE_DATA_LENGTH); -+ *cksum_out = make_data(buf.data + PAC_SIGNATURE_DATA_LENGTH, -+ buf.length - PAC_SIGNATURE_DATA_LENGTH); -+ iov[0].flags = KRB5_CRYPTO_TYPE_DATA; -+ iov[0].data = *data; -+ iov[1].flags = KRB5_CRYPTO_TYPE_CHECKSUM; -+ iov[1].data = *cksum_out; -+ return krb5_c_make_checksum_iov(context, cksumtype, key, -+ KRB5_KEYUSAGE_APP_DATA_CKSUM, iov, 2); - } - --krb5_error_code KRB5_CALLCONV --krb5_pac_sign_ext(krb5_context context, krb5_pac pac, krb5_timestamp authtime, -- krb5_const_principal principal, -- const krb5_keyblock *server_key, -- const krb5_keyblock *privsvr_key, krb5_boolean with_realm, -- krb5_data *data) -+static krb5_error_code -+sign_pac(krb5_context context, krb5_pac pac, krb5_timestamp authtime, -+ krb5_const_principal principal, const krb5_keyblock *server_key, -+ const krb5_keyblock *privsvr_key, krb5_boolean with_realm, -+ krb5_boolean is_service_tkt, krb5_data *data) - { - krb5_error_code ret; -- krb5_data server_cksum, privsvr_cksum; -+ krb5_data full_cksum, server_cksum, privsvr_cksum; - krb5_cksumtype server_cksumtype, privsvr_cksumtype; -- krb5_crypto_iov iov[2]; - - data->length = 0; - data->data = NULL; -@@ -214,67 +229,53 @@ krb5_pac_sign_ext(krb5_context context, krb5_pac pac, krb5_timestamp authtime, - if (principal != NULL) { - ret = k5_insert_client_info(context, pac, authtime, principal, - with_realm); -- if (ret != 0) -+ if (ret) - return ret; - } - -- /* Create zeroed buffers for both checksums */ -+ /* Create zeroed buffers for all checksums. */ - ret = k5_insert_checksum(context, pac, KRB5_PAC_SERVER_CHECKSUM, - server_key, &server_cksumtype); -- if (ret != 0) -+ if (ret) - return ret; -- - ret = k5_insert_checksum(context, pac, KRB5_PAC_PRIVSVR_CHECKSUM, - privsvr_key, &privsvr_cksumtype); -- if (ret != 0) -+ if (ret) - return ret; -+ if (is_service_tkt) { -+ ret = k5_insert_checksum(context, pac, KRB5_PAC_FULL_CHECKSUM, -+ privsvr_key, &privsvr_cksumtype); -+ if (ret) -+ return ret; -+ } - -- /* Now, encode the PAC header so that the checksums will include it */ -+ /* Encode the PAC header so that the checksums will include it. */ - ret = k5_pac_encode_header(context, pac); -- if (ret != 0) -- return ret; -- -- /* Generate the server checksum over the entire PAC */ -- ret = k5_pac_locate_buffer(context, pac, KRB5_PAC_SERVER_CHECKSUM, -- &server_cksum); -- if (ret != 0) -+ if (ret) - return ret; - -- assert(server_cksum.length > PAC_SIGNATURE_DATA_LENGTH); -- -- iov[0].flags = KRB5_CRYPTO_TYPE_DATA; -- iov[0].data = pac->data; -- -- iov[1].flags = KRB5_CRYPTO_TYPE_CHECKSUM; -- iov[1].data.data = server_cksum.data + PAC_SIGNATURE_DATA_LENGTH; -- iov[1].data.length = server_cksum.length - PAC_SIGNATURE_DATA_LENGTH; -+ if (is_service_tkt) { -+ /* Generate a full KDC checksum over the whole PAC. */ -+ ret = compute_pac_checksum(context, pac, KRB5_PAC_FULL_CHECKSUM, -+ privsvr_key, privsvr_cksumtype, -+ &pac->data, &full_cksum); -+ if (ret) -+ return ret; -+ } - -- ret = krb5_c_make_checksum_iov(context, server_cksumtype, -- server_key, KRB5_KEYUSAGE_APP_DATA_CKSUM, -- iov, sizeof(iov)/sizeof(iov[0])); -- if (ret != 0) -+ /* Generate the server checksum over the whole PAC, including the full KDC -+ * checksum if we added one. */ -+ ret = compute_pac_checksum(context, pac, KRB5_PAC_SERVER_CHECKSUM, -+ server_key, server_cksumtype, &pac->data, -+ &server_cksum); -+ if (ret) - return ret; - -- /* Generate the privsvr checksum over the server checksum buffer */ -- ret = k5_pac_locate_buffer(context, pac, KRB5_PAC_PRIVSVR_CHECKSUM, -+ /* Generate the privsvr checksum over the server checksum buffer. */ -+ ret = compute_pac_checksum(context, pac, KRB5_PAC_PRIVSVR_CHECKSUM, -+ privsvr_key, privsvr_cksumtype, &server_cksum, - &privsvr_cksum); -- if (ret != 0) -- return ret; -- -- assert(privsvr_cksum.length > PAC_SIGNATURE_DATA_LENGTH); -- -- iov[0].flags = KRB5_CRYPTO_TYPE_DATA; -- iov[0].data.data = server_cksum.data + PAC_SIGNATURE_DATA_LENGTH; -- iov[0].data.length = server_cksum.length - PAC_SIGNATURE_DATA_LENGTH; -- -- iov[1].flags = KRB5_CRYPTO_TYPE_CHECKSUM; -- iov[1].data.data = privsvr_cksum.data + PAC_SIGNATURE_DATA_LENGTH; -- iov[1].data.length = privsvr_cksum.length - PAC_SIGNATURE_DATA_LENGTH; -- -- ret = krb5_c_make_checksum_iov(context, privsvr_cksumtype, -- privsvr_key, KRB5_KEYUSAGE_APP_DATA_CKSUM, -- iov, sizeof(iov)/sizeof(iov[0])); -- if (ret != 0) -+ if (ret) - return ret; - - data->data = k5memdup(pac->data.data, pac->data.length, &ret); -@@ -288,6 +289,26 @@ krb5_pac_sign_ext(krb5_context context, krb5_pac pac, krb5_timestamp authtime, - return 0; - } - -+krb5_error_code KRB5_CALLCONV -+krb5_pac_sign(krb5_context context, krb5_pac pac, krb5_timestamp authtime, -+ krb5_const_principal principal, const krb5_keyblock *server_key, -+ const krb5_keyblock *privsvr_key, krb5_data *data) -+{ -+ return sign_pac(context, pac, authtime, principal, server_key, -+ privsvr_key, FALSE, FALSE, data); -+} -+ -+krb5_error_code KRB5_CALLCONV -+krb5_pac_sign_ext(krb5_context context, krb5_pac pac, krb5_timestamp authtime, -+ krb5_const_principal principal, -+ const krb5_keyblock *server_key, -+ const krb5_keyblock *privsvr_key, krb5_boolean with_realm, -+ krb5_data *data) -+{ -+ return sign_pac(context, pac, authtime, principal, server_key, privsvr_key, -+ with_realm, FALSE, data); -+} -+ - /* Add a signature over der_enc_tkt in privsvr to pac. der_enc_tkt should be - * encoded with a dummy PAC authdata element containing a single zero byte. */ - static krb5_error_code -@@ -359,6 +380,7 @@ krb5_kdc_sign_ticket(krb5_context context, krb5_enc_tkt_part *enc_tkt, - krb5_error_code ret; - krb5_data *der_enc_tkt = NULL, pac_data = empty_data(); - krb5_authdata **list, *pac_ad; -+ krb5_boolean is_service_tkt; - size_t count; - - /* Reallocate space for another authdata element in enc_tkt. */ -@@ -377,7 +399,8 @@ krb5_kdc_sign_ticket(krb5_context context, krb5_enc_tkt_part *enc_tkt, - memmove(list + 1, list, (count + 1) * sizeof(*list)); - list[0] = pac_ad; - -- if (k5_pac_should_have_ticket_signature(server_princ)) { -+ is_service_tkt = k5_pac_should_have_ticket_signature(server_princ); -+ if (is_service_tkt) { - ret = encode_krb5_enc_tkt_part(enc_tkt, &der_enc_tkt); - if (ret) - goto cleanup; -@@ -388,9 +411,8 @@ krb5_kdc_sign_ticket(krb5_context context, krb5_enc_tkt_part *enc_tkt, - goto cleanup; - } - -- ret = krb5_pac_sign_ext(context, pac, enc_tkt->times.authtime, -- client_princ, server, privsvr, with_realm, -- &pac_data); -+ ret = sign_pac(context, pac, enc_tkt->times.authtime, client_princ, server, -+ privsvr, with_realm, is_service_tkt, &pac_data); - if (ret) - goto cleanup; - -diff --git a/src/lib/krb5/krb/t_pac.c b/src/lib/krb5/krb/t_pac.c -index 173bde7bab..81f1642ab0 100644 ---- a/src/lib/krb5/krb/t_pac.c -+++ b/src/lib/krb5/krb/t_pac.c -@@ -607,78 +607,102 @@ check_pac(krb5_context context, int index, const unsigned char *pdata, - - static const krb5_keyblock ticket_sig_krbtgt_key = { - 0, ENCTYPE_AES256_CTS_HMAC_SHA1_96, -- 32, U("\x7a\x58\x98\xd2\xaf\xa6\xaf\xc0\x6a\xce\x06\x04\x4b\xc2\x70\x84" -- "\x9b\x8e\x0a\x6c\x4c\x07\xdc\x6f\xbb\x48\x43\xe1\xd2\xaa\x97\xf7") -+ 32, U("\x03\x73\x81\xEC\x43\x96\x7B\xC2\xAC\x3D\xF5\x2A\xAE\x95\xA6\x8E" -+ "\xBE\x24\x58\xDB\xCE\x52\x28\x20\xAF\x5E\xB7\x04\xA2\x22\x71\x4F") - }; - - static const krb5_keyblock ticket_sig_server_key = { -- 0, ENCTYPE_ARCFOUR_HMAC, -- 16, U("\xed\x23\x11\x20\x7a\x21\x44\x20\xbf\xc0\x8d\x36\xf7\xf6\xb2\x3e") -+ 0, ENCTYPE_AES256_CTS_HMAC_SHA1_96, -+ 32, U("\x11\x4A\x84\xE3\x14\x8F\xAA\xB1\xFA\x7B\x53\x51\xB2\x8A\xC2\xF1" -+ "\xFD\x19\x6D\x61\xE0\xF3\xF2\x3E\x1F\xDB\xD3\xC1\x79\x7D\xC1\xEE") - }; - -+/* A ticket issued by an Active Directory KDC (Windows Server 2022), containing -+ * a PAC with a full checksum. */ - static const krb5_data ticket_data = { -- .length = 972, .data = -- "\x61\x82\x03\xC8\x30\x82\x03\xC4\xA0\x03\x02\x01\x05\xA1\x0A\x1B" -- "\x08\x43\x44\x4F\x4D\x2E\x43\x4F\x4D\xA2\x0F\x30\x0D\xA0\x03\x02" -- "\x01\x01\xA1\x06\x30\x04\x1B\x02\x73\x31\xA3\x82\x03\x9E\x30\x82" -- "\x03\x9A\xA0\x03\x02\x01\x17\xA1\x03\x02\x01\x03\xA2\x82\x03\x8C" -- "\x04\x82\x03\x88\x44\x31\x61\x20\x17\xC9\xFE\xBC\xAC\x46\xB5\x77" -- "\xE9\x68\x04\x4C\x9B\x31\x91\x0C\xC1\xD4\xDD\xEF\xC7\x34\x20\x08" -- "\x90\x91\xE8\x79\xE0\xB5\x03\x26\xA4\x65\xDE\xEC\x47\x03\x2A\x8F" -- "\x61\xE7\x4D\x38\x5A\x42\x95\x5A\xF9\x2F\x41\x2C\x2A\x6E\x60\xA1" -- "\xEB\x51\xB3\xBD\x4C\x00\x41\x2A\x44\x76\x08\x37\x1A\x51\xFD\x65" -- "\x67\x7E\xBF\x3D\x90\x86\xE3\x9A\x54\x6B\x67\xA8\x08\x7A\x73\xCC" -- "\xC3\xB7\x4B\xD5\x5C\x3A\x14\x6C\xC1\x5F\x54\x4B\x92\x55\xB4\xB7" -- "\x92\x23\x3F\x53\x89\x47\x8E\x1F\x8B\xB9\xDB\x3B\x93\xE8\x70\xE4" -- "\x24\xB8\x9D\xF0\x0E\x35\x28\xF8\x7A\x27\x5D\xF7\x25\x97\x9C\xF5" -- "\x9F\x9F\x64\x04\xF2\xA3\xAB\x11\x15\xB6\xDA\x18\xD6\x46\xD5\xE6" -- "\xB8\x08\xDE\x0A\x62\xFD\xF8\xAA\x52\x90\xD9\x67\x29\xB2\xCD\x06" -- "\xB6\xB0\x50\x2B\x3F\x0F\xA3\xA5\xBF\xAA\x6E\x40\x03\xD6\x5F\x02" -- "\xBC\xD8\x18\x47\x97\x09\xD7\xE4\x96\x3B\xCB\xEB\x92\x2C\x3C\x49" -- "\xFF\x1F\x71\xE0\x52\x94\x0F\x8B\x9F\xB8\x2A\xBB\x9C\xE2\xA3\xDD" -- "\x38\x89\xE2\xB1\x0B\x9E\x1F\x7A\xB3\xE3\xD2\xB0\x94\xDC\x87\xBE" -- "\x37\xA6\xD3\xB3\x29\x35\x9A\x72\xC3\x7A\xF1\xA9\xE6\xC5\xD1\x26" -- "\x83\x65\x44\x17\xBA\x55\xA8\x5E\x94\x26\xED\xE9\x8A\x93\x11\x5D" -- "\x7E\x20\x1B\x9C\x15\x9E\x13\x37\x03\x4D\xDD\x99\x51\xD8\x66\x29" -- "\x6A\xB9\xFB\x49\xFE\x52\x78\xDA\x86\x85\xA9\xA3\xB9\xEF\xEC\xAD" -- "\x35\xA6\x8D\xAC\x0F\x75\x22\xBB\x0B\x49\x1C\x13\x52\x40\xC9\x52" -- "\x69\x09\x54\xD1\x0F\x94\x3F\x22\x48\x67\xB0\x96\x28\xAA\xE6\x28" -- "\xD9\x0C\x08\xEF\x51\xED\x15\x5E\xA2\x53\x59\xA5\x03\xB4\x06\x20" -- "\x3D\xCC\xB4\xC5\xF8\x8C\x73\x67\xA3\x21\x3D\x19\xCD\xD4\x12\x28" -- "\xD2\x93\xDE\x0D\xF0\x71\x10\x50\xD6\x33\x35\x04\x11\x64\x43\x39" -- "\xC3\xDF\x96\xE3\x66\xE3\x85\xCA\xE7\x67\x14\x3A\xF0\x43\xAA\xBB" -- "\xD4\x1D\xB5\x24\xB5\x74\x90\x25\xA7\x87\x7E\xDB\xD3\x83\x8A\x3A" -- "\x69\xA8\x2D\xAF\xB7\xB8\xF3\xDC\x13\xAF\x45\x61\x3F\x59\x39\x7E" -- "\x69\xDE\x0C\x04\xF1\x10\x6B\xB4\x56\xFA\x21\x9F\x72\x2B\x60\x86" -- "\xE3\x23\x0E\xC4\x51\xF6\xBE\xD8\xE1\x5F\xEE\x73\x4C\x17\x4C\x2C" -- "\x1B\xFB\x9F\x1F\x7A\x3B\x07\x5B\x8E\xF1\x01\xAC\xD6\x30\x94\x8A" -- "\x5D\x22\x6F\x08\xCE\xED\x5E\xB6\xDB\x86\x8C\x87\xEB\x8D\x91\xFF" -- "\x0A\x86\x30\xBD\xC0\xF8\x25\xE7\xAE\x24\x35\xF2\xFC\xE5\xFD\x1B" -- "\xB0\x05\x4A\xA3\xE5\xEB\x2E\x05\xAD\x99\x67\x49\x87\xE6\xB3\x87" -- "\x82\xA4\x59\xA7\x6E\xDD\xF2\xB6\x66\xE8\xF7\x70\xF5\xBD\xC9\x0E" -- "\xFA\x9C\x79\x84\xD4\x9B\x05\x0E\xBB\xF5\xDB\xEF\xFC\xCC\x26\xF2" -- "\x93\xCF\xD2\x04\x3C\xA9\x2C\x65\x42\x97\x86\xD8\x38\x0A\x1E\xF6" -- "\xD6\xCA\x30\xB5\x1A\xEC\xFB\xBA\x3B\x84\x57\xB0\xFD\xFB\xE6\xBC" -- "\xF2\x76\xF6\x4C\xBB\xAB\xB1\x31\xA1\x27\x7C\xE6\xE6\x81\xB6\xCE" -- "\x84\x86\x40\xB6\x40\x33\xC4\xF8\xB4\x15\xCF\xAA\xA5\x51\x78\xB9" -- "\x8B\x50\x25\xB2\x88\x86\x96\x72\x8C\x71\x4D\xB5\x3A\x94\x86\x77" -- "\x0E\x95\x9B\x16\x93\xEF\x3A\x11\x79\xBA\x83\xF7\x74\xD3\x8D\xBA" -- "\x15\xE1\x2C\x04\x57\xA8\x92\x1E\x9D\x00\x8E\x20\xFD\x30\x70\xE7" -- "\xF5\x65\x2F\x19\x0C\x94\xBA\x03\x71\x12\x96\xCD\xC8\xB4\x96\xDB" -- "\xCE\x19\xC2\xDF\x3C\xC2\xF6\x3D\x53\xED\x98\xA5\x41\x72\x2A\x22" -- "\x7B\xF3\x2B\x17\x6C\xE1\x39\x7D\xAE\x9B\x11\xF9\xC1\xA6\x9E\x9F" -- "\x89\x3C\x12\xAA\x94\x74\xA7\x4F\x70\xE8\xB9\xDE\x04\xF0\x9D\x39" -- "\x24\x2D\x92\xE8\x46\x2D\x2E\xF0\x40\x66\x1A\xD9\x27\xF9\x98\xF1" -- "\x81\x1D\x70\x62\x63\x30\x6D\xCD\x84\x04\x5F\xFA\x83\xD3\xEC\x8D" -- "\x86\xFB\x40\x61\xC1\x8A\x45\xFF\x7B\xD9\xD4\x18\x61\x7F\x51\xE3" -- "\xFC\x1E\x18\xF0\xAF\xC6\x18\x2C\xE1\x6D\x5D\xF9\x62\xFC\x20\xA3" -- "\xB2\x8A\x5F\xE5\xBB\x29\x0F\x99\x63\x07\x88\x38\x3A\x3B\x73\x2A" -- "\x6D\xDA\x3D\xA8\x0D\x8F\x56\x41\x89\x82\xE5\xB8\x61\x00\x64\x7D" -- "\x17\x0C\xCE\x03\x55\x8F\xF4\x5B\x0D\x50\xF2\xEB\x05\x67\xBE\xDB" -- "\x7B\x75\xC5\xEA\xA1\xAB\x1D\xB0\x3C\x6D\x42\x08\x0B\x9A\x45\x20" -- "\xA8\x8F\xE5\x67\x47\x30\xDE\x93\x5F\x43\x05\xEB\xA8\x2D\x80\xF5" -- "\x1A\xB8\x4A\x4E\x42\x2D\x0B\x7A\xDC\x46\x20\x2D\x13\x17\xDD\x4B" -- "\x94\x96\xAA\x1F\x06\x0C\x1F\x62\x07\x9C\x40\xA1" -+ .length = 1307, .data = -+ "\x61\x82\x05\x17\x30\x82\x05\x13\xA0\x03\x02\x01\x05\xA1\x0F\x1B" -+ "\x0D\x57\x32\x30\x32\x32\x2D\x4C\x37\x2E\x42\x41\x53\x45\xA2\x2A" -+ "\x30\x28\xA0\x03\x02\x01\x01\xA1\x21\x30\x1F\x1B\x04\x63\x69\x66" -+ "\x73\x1B\x17\x77\x32\x30\x32\x32\x2D\x31\x31\x38\x2E\x77\x32\x30" -+ "\x32\x32\x2D\x6C\x37\x2E\x62\x61\x73\x65\xA3\x82\x04\xCD\x30\x82" -+ "\x04\xC9\xA0\x03\x02\x01\x12\xA1\x03\x02\x01\x05\xA2\x82\x04\xBB" -+ "\x04\x82\x04\xB7\x44\x5C\x7B\x5A\x3F\x2E\xA3\x50\x34\xDE\xB0\x69" -+ "\x23\x2D\x47\x89\x2C\xC0\xA3\xF9\xDD\x70\xAA\xA5\x1E\xFE\x74\xE5" -+ "\x19\xA2\x4F\x65\x6C\x9E\x00\xB4\x60\x00\x7C\x0C\x29\x43\x31\x99" -+ "\x77\x02\x73\xED\xB9\x40\xF5\xD2\xD1\xC9\x20\x0F\xE3\x38\xF9\xCC" -+ "\x5E\x2A\xBD\x1F\x91\x66\x1A\xD8\x2A\x80\x3C\x2C\x00\x3C\x1E\xC9" -+ "\x2A\x29\x19\x19\x96\x18\x54\x03\x97\x8F\x1D\x5F\xDB\xE9\x66\x68" -+ "\xCD\xB1\xD5\x00\x35\x69\x49\x45\xF1\x6A\x78\x7B\x37\x71\x87\x14" -+ "\x1C\x98\x4D\x69\xCB\x1B\xD8\xF5\xA3\xD8\x53\x4A\x75\x76\x62\xBA" -+ "\x6C\x3F\xEA\x8B\x97\x21\xCA\x8A\x46\x4B\x38\xDA\x09\x9F\x5A\xC8" -+ "\x38\xFF\x34\x97\x5B\xA2\xE5\xBA\xC9\x87\x17\xD8\x08\x05\x7A\x83" -+ "\x04\xD6\x02\x8E\x9B\x18\xB6\x40\x1A\xF7\x47\x25\x24\x3E\x37\x1E" -+ "\xF6\xC1\x3A\x1F\xCA\xB3\x43\x5A\xAE\x94\x83\x31\xAF\xFB\xEE\xED" -+ "\x46\x71\xEF\xE2\x37\x37\x15\xFE\x1B\x0B\x9E\xF8\x3E\x0C\x43\x96" -+ "\xB6\x0A\x04\x78\xF8\x5E\xAA\x33\x1F\xE2\x07\x5A\x8D\xC4\x4E\x32" -+ "\x6D\xD6\xA0\xC5\xEA\x3D\x12\x59\xD4\x41\x40\x4E\xA1\xD8\xBE\xED" -+ "\x17\xCB\x68\xCC\x59\xCB\x53\xB2\x0E\x58\x8A\xA9\x33\x7F\x6F\x2B" -+ "\x37\x89\x08\x44\xBA\xC7\x67\x17\xBB\x91\xF7\xC3\x0F\x00\xF8\xAA" -+ "\xA1\x33\xA6\x08\x47\xCA\xFA\xE8\x49\x27\x45\x46\xF1\xC1\xC3\x5F" -+ "\xE2\x45\x0A\x7D\x64\x52\x8C\x2E\xE1\xDE\xFF\xB2\x64\xEC\x69\x98" -+ "\x15\xDF\x9E\xB1\xEB\xD6\x9D\x08\x06\x4E\x73\xC1\x0B\x71\x21\x05" -+ "\x9E\xBC\xA2\x17\xCF\xB3\x70\xF4\xEF\xB8\x69\xA9\x94\x27\xFD\x5E" -+ "\x72\xB1\x2D\xD2\x20\x1B\x57\x80\xAB\x38\x97\xCF\x22\x68\x4F\xB8" -+ "\xB7\x17\x53\x25\x67\x0B\xED\xD1\x58\x20\x0D\x45\xF9\x09\xFA\xE7" -+ "\x61\x3E\xDB\xC2\x59\x7B\x3A\x3B\x59\x81\x51\xAA\xA4\x81\xF4\x96" -+ "\x3B\xE1\x6F\x6F\xF4\x8E\x68\x9E\xBA\x1E\x0F\xF2\x44\x68\x11\xFC" -+ "\x2B\x5F\xBE\xF2\xEA\x07\x80\xB9\xCA\x9E\x41\xBD\x2F\x81\xF5\x11" -+ "\x2A\x12\xF3\x4F\xD6\x12\x16\x0F\x21\x90\xF1\xD3\x1E\xF1\xA4\x94" -+ "\x46\xEA\x30\xF3\x84\x06\xC1\xA4\x51\xFC\x43\x35\xBD\xEF\x4D\x89" -+ "\x1D\xA5\x44\xB2\x69\xC4\x0F\xBF\x86\x01\x08\x44\x77\xD5\xB4\xB7" -+ "\x5C\x3F\xA7\xD4\x2F\x39\x73\x85\x88\xEE\xB1\x64\x1D\x80\x6C\xEE" -+ "\x6E\x31\x90\x92\x0D\xA1\xB7\xC4\x5C\xCC\xEE\x91\xC8\xCB\x11\x2D" -+ "\x4A\x1A\x7D\x43\x8F\xEB\x60\x09\xED\x1B\x07\x58\xBE\xBC\xBD\x29" -+ "\xF3\xB3\xA3\x4F\xC5\x8A\x30\x33\xB9\xA9\x9F\x43\x08\x27\x15\xC4" -+ "\x9C\x5D\x8E\xBD\x5C\x05\xC6\x05\x9C\x87\x60\x08\x1E\xE2\x52\xB8" -+ "\x45\x8D\x28\xB6\x2C\x15\x46\x74\x9F\x0E\xAA\x6B\x70\x3A\x2A\x55" -+ "\x45\x26\xB2\x58\x4D\x35\xA6\xF1\x96\xBE\x60\xB2\x71\x7B\xF8\x54" -+ "\xB9\x90\x21\x8E\xB9\x0F\x35\x98\x5E\x88\xEB\x1A\x53\xB4\x59\x7F" -+ "\xAF\x69\x1C\x61\x67\xF4\xF6\xBD\xAC\x24\xCD\xB7\xA9\x67\xE8\xA1" -+ "\x83\x85\x5F\x11\x74\x1F\xF7\x4C\x78\x36\xEF\x50\x74\x88\x58\x4B" -+ "\x1A\x9F\x84\x9A\x9A\x05\x92\xEC\x1D\xD5\xF3\xC4\x95\x51\x28\xE2" -+ "\x3F\x32\x87\xB2\xFD\x21\x27\x66\xE4\x6B\x85\x2F\xDC\x7B\xC0\x22" -+ "\xEB\x7A\x94\x20\x5A\x7B\xD3\x7A\xB9\x5B\xF8\x1A\x5A\x84\x4E\xA1" -+ "\x73\x41\x53\xD2\x60\xF7\x7C\xEE\x68\x59\x85\x80\xFC\x3D\x70\x4B" -+ "\x04\x32\xE7\xF2\xFD\xBD\xB3\xD9\x21\xE2\x37\x56\xA2\x16\xCC\xDE" -+ "\x8A\xD3\xBC\x71\xEF\x58\x19\x0E\x45\x8A\x5B\x53\xD6\x77\x30\x6A" -+ "\xA7\xF8\x68\x06\x4E\x07\xCA\xCE\x30\xD7\x35\xAB\x1A\xC7\x18\xD4" -+ "\xC6\x2F\x1A\xFF\xE9\x7A\x94\x0B\x76\x5E\x7E\x29\x0C\xE6\xD3\x3B" -+ "\x5B\x44\x96\xA8\xF1\x29\x23\x95\xD9\x79\xB3\x39\xFC\x76\xED\xE1" -+ "\x1E\x67\x4E\xF7\xE8\x7B\x7A\x12\x9E\xD8\x4B\x35\x09\x0A\xF2\xC1" -+ "\x63\x5B\xEE\xFD\x2A\xC2\xA6\x66\x30\x3C\x1F\x95\xAF\x65\x22\x95" -+ "\x14\x1D\xF5\xD5\xDC\x38\x79\x35\x1C\xCD\x24\x47\xE0\xFD\x08\xC8" -+ "\xF4\x15\x55\x9F\xD9\xC7\xAC\x3F\x67\xB3\x4F\xEB\x26\x7C\x8E\xD6" -+ "\x74\xB3\x0A\xCD\xE7\xFA\xBE\x7E\xA3\x3E\xEC\x61\x50\x77\x52\x56" -+ "\xCF\x90\x5D\x48\xFB\xD4\x2C\x6C\x61\x8B\xDD\x2B\xF5\x92\x1F\x30" -+ "\xBF\x3F\x80\x0D\x31\xDB\xB2\x0B\x7D\x84\xE3\xA6\x42\x7F\x00\x38" -+ "\x44\x02\xC5\xB8\xD9\x58\x29\x9D\x68\x5C\x32\x8B\x76\xAE\xED\x15" -+ "\xF9\x7C\xAE\x7B\xB6\x8E\xD6\x54\x24\xFF\xFA\x87\x05\xEF\x15\x08" -+ "\x5E\x4B\x21\xA2\x2F\x49\xE7\x0F\xC3\xD0\xB9\x49\x22\xEF\xD5\xCA" -+ "\xB2\x11\xF2\x17\xB6\x77\x24\x68\x76\xB2\x07\xF8\x0A\x73\xDD\x65" -+ "\x9C\x75\x64\xF7\xA1\xC6\x23\x08\x84\x72\x3E\x54\x2E\xEB\x9B\x40" -+ "\xA6\x83\x87\xEB\xB5\x00\x40\x4F\xE1\x72\x2A\x59\x3A\x06\x60\x29" -+ "\x7E\x25\x2F\xD8\x80\x40\x8C\x59\xCA\xCF\x8E\x44\xE4\x2D\x84\x7E" -+ "\xCB\xFD\x1E\x3B\xD5\xFF\x9A\xB9\x66\x93\x6D\x5E\xC8\xB7\x13\x26" -+ "\xD6\x38\x1B\x2B\xE1\x87\x96\x05\xD5\xF3\xAB\x68\xF7\x12\x62\x2C" -+ "\x58\xC1\xC9\x85\x3C\x72\xF1\x26\xEE\xC0\x09\x5F\x1D\x4B\xAC\x01" -+ "\x41\xC8\x12\xF8\xF3\x93\x43\x41\xFF\xEC\x0B\x80\xE2\xEE\x20\x85" -+ "\x25\xCD\x6C\x30\x8C\x0D\x24\x2E\xBA\x19\xEA\x28\x7F\xCF\xD5\x10" -+ "\x5C\xE9\xB2\x9D\x5F\x16\xE4\xC0\xF3\xCC\xD9\x68\x4A\x05\x08\x70" -+ "\x17\x26\xC8\x5C\x4A\xBF\x94\x6A\x0E\xD5\xDA\x67\x47\x4B\xAF\x44" -+ "\xE3\x94\xAA\x05\xDB\xA2\x49\x74\xFA\x5C\x69\xAB\x44\xB7\xF7\xBA" -+ "\xAE\x7A\x23\x87\xEB\x54\x7E\x80\xF1\x5B\x60\xA5\x93\xE5\xD4\x24" -+ "\x84\xF7\x0A\x16\x10\xBE\xE9\x4D\xD8\x6B\x15\x40\x5D\x74\xDA\x1B" -+ "\xFF\x2E\x4D\x17\x9D\x35\xF7\x0D\xCF\x66\x38\x0D\x8A\xE4\xDD\x6B" -+ "\xE1\x0F\x1F\xBD\xFD\x4F\x30\x37\x3F\x96\xB4\x92\x54\xD3\x9A\x7A" -+ "\xD1\x5B\x5B\xA9\x54\x16\xE6\x24\xAB\xD4\x23\x39\x7D\xD2\xC7\x09" -+ "\xFA\xD4\x86\x55\x4D\x60\xC2\x87\x67\x6B\xE6" - }; - - static void -@@ -686,7 +710,7 @@ test_pac_ticket_signature(krb5_context context) - { - krb5_error_code ret; - krb5_ticket *ticket; -- krb5_principal sprinc; -+ krb5_principal cprinc, sprinc; - krb5_authdata **authdata1, **authdata2; - krb5_pac pac, pac2, pac3; - uint32_t *list; -@@ -701,7 +725,13 @@ test_pac_ticket_signature(krb5_context context) - if (ret) - err(context, ret, "while decrypting ticket"); - -- ret = krb5_parse_name(context, "s1@CDOM.COM", &sprinc); -+ ret = krb5_parse_name(context, "administrator@W2022-L7.BASE", &cprinc); -+ if (ret) -+ err(context, ret, "krb5_parse_name"); -+ -+ ret = krb5_parse_name(context, -+ "cifs/w2022-118.w2022-l7.base@W2022-L7.BASE", -+ &sprinc); - if (ret) - err(context, ret, "krb5_parse_name"); - -@@ -713,7 +743,7 @@ test_pac_ticket_signature(krb5_context context) - - /* In this test, the server is also the client. */ - ret = krb5_pac_verify(context, pac, ticket->enc_part2->times.authtime, -- ticket->server, NULL, NULL); -+ cprinc, NULL, NULL); - if (ret) - err(context, ret, "while verifying PAC client info"); - -@@ -722,7 +752,7 @@ test_pac_ticket_signature(krb5_context context) - ticket->enc_part2->authorization_data = NULL; - - ret = krb5_kdc_sign_ticket(context, ticket->enc_part2, pac, sprinc, -- sprinc, &ticket_sig_server_key, -+ cprinc, &ticket_sig_server_key, - &ticket_sig_krbtgt_key, FALSE); - if (ret) - err(context, ret, "while signing ticket"); -@@ -781,6 +811,7 @@ test_pac_ticket_signature(krb5_context context) - krb5_pac_free(context, pac); - krb5_pac_free(context, pac2); - krb5_pac_free(context, pac3); -+ krb5_free_principal(context, cprinc); - krb5_free_principal(context, sprinc); - krb5_free_ticket(context, ticket); - } -diff --git a/src/tests/t_authdata.py b/src/tests/t_authdata.py -index 47ea9e4b47..e934799268 100644 ---- a/src/tests/t_authdata.py -+++ b/src/tests/t_authdata.py -@@ -11,7 +11,7 @@ realm = K5Realm(krb5_conf=conf) - # container. - mark('baseline authdata') - out = realm.run(['./adata', realm.host_princ]) --if '?128: [6, 7, 10, 16]' not in out or '^-42: Hello' not in out: -+if '?128: [6, 7, 10, 16, 19]' not in out or '^-42: Hello' not in out: - fail('expected authdata not seen for basic request') - - # Requested authdata is copied into the ticket, with KDC-only types -@@ -243,7 +243,7 @@ out = realm.run(['./adata', '-p', realm.user_princ, 'service/2']) - if '+97: [indcl]' not in out or '[inds1]' in out: - fail('correct auth-indicator not seen for S4U2Proxy req') - # Make sure a PAC with an S4U_DELEGATION_INFO(11) buffer is included. --if '?128: [1, 6, 7, 10, 11, 16]' not in out: -+if '?128: [1, 6, 7, 10, 11, 16, 19]' not in out: - fail('PAC with delegation info not seen for S4U2Proxy req') - - # Get another S4U2Proxy ticket including request-authdata. --- -2.39.1 - diff --git a/krb5-1.20.2.tar.gz b/krb5-1.20.2.tar.gz deleted file mode 100644 index 10cac7806cf91f735e92e9f50ed4a9b2b5505b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8662259 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

tOPU=R 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÷Zx=X-vql-Fo}Yy#t~d%6!* zEr#?ZKz@-OFk;tqF`JfdpfBM5ALp`eB_9zHAmHkT$pP+*uam?Hi*qKP5rCj%ln*)q z>BA|ah@&ghRYXc7F%@k6lDdT9c?gt{|AO-{Nw>c6Jg|(;q*M`(m|mhy2fuemA~mco zBGkJPsa!^eQ13~k;RycM5otR#8BwZ~MZUl3KU@^9bL~w2Z?NL+maYz{Y4H>tD2113r zD03yW@(E#6ZD*8ewytwVC=5Dw3F1_RF~m&a`EENbbYXQW2H} z)<>HrS;}@`6Nc%$li`+%n~XXETpq#^g*Y!TKrV!$sGrZ)o^=IV6jyid26fqyQbCAq4mIa19hSoXqaI79d#aGk6O*7{El=YU z$`O#cOs~rs&NIWRvN#R{&`M@GzZw~o$GN0HY-J$|EHKJ3At;;N5VS0YXXI?zD(30R zDVGv}@i!aQ#LB~Q!hD0WUJr@Ms|xf-eV`#qhE!plS<4sPF{nfWESaSQ$s*(`;(EaD zT+KCz^SYcooFmMHo+Dc!qWv7%${qi$&XGOfc%M|{^Cp!;*q$#h;cH6eT3=!*yJ^;p zpWyoC6D(CWC@%+DHE^8c|#mKX32;3@O4vPr1HOVz&d_{Q@0N?yAn&GHtb zEo8o&UCkTyaE3oYYo|K~P7H|>1dvkZl#{EKOtlk~w}Lmk+`zB0pJ;LF?xp!+u5qz$ zks(H_-e3CrH++8iJLDMn#kO#68~{xY%6APEPuNb9=a!+YwqOJYU{Y5SbcOY-Js7c< zp+z*IXnSA59+}}KWnM|m3uFf9A>H3Pt~l5lt%zLpm83fCqYJ@sfZ7HJJxHbSh{yr@ zT;_FB9~_3KTg)DOZ3s8S+96(}o0Mj0f=i#VHsMgTI5?U-8^QL<`(l04S~^ff7go;r zOQoLuGD2+wkmT|G6vE5#(Jv{M&&!OO3JoOVF}Z_N?7bu%j`~pyB9y2AkH!yvNQHJ{ z3macENFpN11I>7MD*=E^Zc=+^8%*5*T@WGfv;b8*t|T^6$ChL|uwt}ILhM-mK<`@Q zdA`Tp*$ALP!Py9hLKB z9HpGdL0xc}jJ>naBG5dxc*Qhjkp~M0pf;WW8A7(7M4MNbT*OC#V2~WO^z58HDVEn0 zZ@QOgYnlY2FWewF7Onp9Y5)L217-}o_y}JyJm{k^(TTmU)~tT&S^_RGRo24NW}w|5 ztKNPiXrCI{?LKOB;Cf`%KrA>p=>jO^8;C?ZI@}J#Z8ax^U9$8J-L_p6POO@p_b#4{ zdu}zT@FK2DRl?20E3y+V0me|V6aMX__^34k@EskD9xgmeOABBYH%ly zK4h~;v&H05?;U}u5T)gG%#d zSf@lm)bDiwVbLL#MrzyN+{rP}YTsw#=a?yi&;*N8Ry8<>Waw@FLyp;McBZsSigDCd zXx4XIfN_NbkorMdiR6^%jzknY8%Pdz3{)sMY*C{<$STur-ay44@o^;J@dVUfp9O<4 z2|k=xB@%sNxhI>Hhvh!_IC?vPi+3x7JMTzgFeQ+Mfu&HZG?Rf)QMdHPbXr4a5T68K z1w@W3!Vq_-;c7aUNFx+qB|b``mq$>pqhMx3I&YiCsJm}MhaNzj`ubD%zbEd0n-7Re zsS7leAk)G{hs&M^#MS`D+$iL>P=_5aS^2T}Y$aLW{-spprUEv0SX}>FOfzmq5xs{s zl9ab#E%B~L^EWOOxbGW18Ehz9h;qFWVU^ul8;2Y}9%qd6lBfnqtvf;iSzUJir~(}^ zO9*O~+48BQ>&Qv4SI(t$jwcOFw4R3<#HjXXSwk`cOeeeKd zS5}%rPgY^C3DSM(Wk?Y6#%&jR?Lc|t*k^UN@$%YtLgyY;)~&ntnhhwa@s{1C7*gQ$ z>zG*u2CQ4JSu}?X=ChjtZE@9RZO;T}m`TA`TC5x1`GoR$356cAznE%eJVfS?0+7a39tl9>xPTb>_+yWxC_Gg@uZOS&>sjAtrk6>6J#c3b>nAa>tZ=dgGl3I6 zxPW%6F}FS(O=3Nz5#d&CvEOYpOt!3QnqB644WG}-#Z+i`%S0Zf6oy>0{sP5alj8*! zG>E5T8&ZjYzLSVKkU|Ta2}|FW1EO*M?Rd?6r^I@nsR|I*AXz9YU9b1^>5N$ z`-f9#+`hZjKN~(jdG>7c>yuS{8X>5K~S8RL&%B>8!65r!A68vtl5W4jlSxeK{g$@?HNo;_-3itFc(*&mxHN|V9PDU zDUJ!+)j|h>5yjh<2_KzI>FCwCLrMune`oGQr#GL=D+i0l!BvCf~uzVp+!`#mU4jILP75ToCG za#)gJ+CM72WKEJsQiFi#6J0|aa2COH)Ww%v^y$oIzcZ|>WW-^3qMLxoM+EJLmHe;~ zDDUBGMo3SXn2}*-4hjKb+O6xh8RbF)6CPG(NR-=V0(_bcEFL1i<_FW@_yC0q*|$`a zV#(AO(I%XF5ri~Y=2+|yY}2Q!7op!W*u5;$&{0*h9@W-k(tFbvSZ zsiWRr4$xU(Rd+JT#Oiw{V9;2ClWe+#q++VPqd#7fN{tsnh5LD=SeW{%nE5!7=z4c# zFe{mQkkLo=4k>;H&^1KF#0mssvad7h*Pptg~`t|*8-hFw^QPdUc4FUn9 zsye-bEpfB%y_1vGUd_59#pz_%J7K?M39KGH`pfxyvH|kSAvzr5lzR-D1>p***p5e^ zBs3xk^2xXvudO+9VRwZu)N32}W^3d^=_na?wCU5#-#vxz9kTVZq(~ zh(SNJYl%|J#@E>m)QySLV(EbM9_}uM9D5m+(xFMn(De9vAc9o9@*yKJO`qlNcu(S$#NqfDa5I<4mHM zEOfn_2VQOUk9(e~a8^(S5rebXyUgoKjy50*#`A3-L(ev+D!8nW7>=m;AcQoCprbqG zcWH@L>0&;g4zkJcqMTLMf}>!Nmsq@Sq`qt9Js3}eX)P4A_WkkkVV~S#B!SZ5s=+P* zt5EQ#+`#kF9&T?180u{M6g$2ItW{jWuBfU-9%J8gNE!^~#_Ms8-pBdbJY7sw1MR3c zll(^AYruY#%cLSWyKq2i8aG%6h~9;sHqm8(PZn1ND9C8^B7lq_rbP@^Q_RBk%MWX& zdJq<6ai6V8EZQ1>qkp3|56BLRf*qIyCMgsv?)P7J2?=qSbx#+Q5rdC;A#d*pyBQTT z+l%~J@5D81J?gMW3PBnz7@dkOMR%(syYWp5ED+GXUTCU=AmP~NI5u{Y9`3$jt!|Z3 z$n2G@Q`_DD5vP_SWmKFk%&P{L`@u7rjbsjfw6??lAeTn#{5bSJ7VgS>aLxH^SABk$Qz#BL45 z2BuEfs2v1!r{OESoj2XaLsNpom#gp|m1}|PJWkTR!w*m8RYx$6LyiGZus{hl!rxR! zVS!;+i=w(Sf9WIaRsnXx)aD>bW=f5XaU zO{L*A{I$bSl{3W*tf&1EdloYQ!Lb9S&@~X+#Fn%bEk`>*_SGR?$AY-!#M{g@_0ayMj5i|(UNNJ-^5X`xljR0<)cOVZHna-L)&BWe|n?*!!6IK zy;q-#9!RbLgw%W1L_T37Q811Zz{KI?oRgD=?%V^`3&~u8lk_tRTcNZw0%oRq=(PPO zCuTOLr*vsgl)eVB>a9}#5CFUIXUqo6oSPGB|4#0 zC*&VxI!8`HrguYcE4gKmsR=4)LIHTvwFhhy zhRjgCz>E1;!-m~H8sD)P+PDPoN{rsS8o>94rlL+<@xv{rTgNzt59XXTp#@7KjMUdi zwgNk#rm+b3g8`D1jWy zQ4mSQof-{4zz+6p;)|5Fnq<7QO?2kgEI?0nx61zO-ggH-f|2Ru?U3>7Vr->5LA%v#;O^nT6HYv;+#Q>gTjt!IwIp z=CA3apvg~3ORwROnnvSaJ-qd;XfXa&JK}r4tn<0cV3X#pltU2Qbr=nY+`pVeWWrmW z-fycvW107&gLN6z5GWOi3w@DjghNw&0R%+z zXRTyFEi}|V9F$zDLVJr1b4@7cn2|&zNbfGC9{y6j=K$AQKq&=_hH>Vn`9=1jD7AK6 zHn)w1cafgMVEP&=l#eG))uNG>0x ze?J_dZy@Rcxgr(uJ_A<+I-o(&2u=37MSicb%+N)74L5Y6lsW>mv#g>}QP4pl?!A}p zO-R^RVF3g~S{)xxn^?O@y8EZCH;1oxd)o(ZFe#BlI1s>nMkL0L%W{HcR%T}kEm(NE zOgfcv)wai^t`^&ubb^^N!#oo4NIW-tj&oTyCT0`)~ zCxZ)jr`Nw5jwSJmA{a(P{aYWc60p>%M_NaaMs?vNY=P?6KnaW+$7YKm=Z_~;-i8dg zuuY4Zl)OQhCB*eRI|H|YlUE70Thq_aF&$NhM8PDDqj^EFpc4TS7?pUYN9Aw%mu-sqto*33M_P=d?joH^^cBhVW@ZXkZ;yj@1pJ>b(4Fu7ls!erOo_sI3Dk zb<1S!5HvG_gi7c=$(%y{fv}>6Zf1PFL7KWI<_koi-?Ah;6O^!FR;IRzR8w<>iX@|( z%A=iX5Hx)PyRrJ5@Z89kH5V55mTcEO|3y$5xe*YJlonj6%%Us#m|n4=+fFRNA<2i} zF<5}roe)sfNkB^{P6GDb$~t0nVuWaZ7Bp_47Ape<+3^>tJSpvnC;bki2}XkA3Q8hw zap{*OWJW~BkKIOML68grNz8A&Odt%|+UmAuvT= z(a!lkA4(j2dFH7g!=3x}CfuLq8I%sfLapw}*;j(rJjca!dnoicLVV5jZ0m_j*>i zV~|PZMmYR8li|gzoIvii(|`Or(-p>n(Hc`DC1$oLP zBv=Z9Z=et@xj=-=KweA6!pfZ_y|_=^4em(g_O^Y_guaAX9SoQlH5_Nt+^J!oGGoUJ zqyWN+gly^W%lRDbw14<^F1N9S%c1BrFS}94!rn5(Y_eHy61r8MB|*JnACXr1yvvIc zkM&uYw0S?Wsc|_jqu#Iqj5oxFl;-d@z1g`IJLe?_z|+yHNK#wJ=Q}r6kJI>kS=?~e zTt}i|+~A%fiO|;dfWI{~I2aK_U~;OR3@TpZy*XJUh^qp3J~Jw?376(M1n^d&>Cru2 zOP~{8&T&T<`CI zcw(^H29SsCQS?pN7i`%=O>;5M@6t9TINz(`TB2+1OgcfiB|A0-!)S|e zZpHQBz8n<}sX|2US@kJSYQ@hKKZPibg*XWVGz{U&$))9pD!cIMZ|Mbh*kZyj7v3z= zJ=&0&Y>A=*AyI?z`OAk@1IE4=9J9&B_{%ys%r1%nr)bX7o-=-jHw50r&ZwiQxE6?WX+r#~|zqKD$KeCy7_v1XDKt$UQ`Azy3LCjQDp}<%-^@)#p z4)aUhNCpxJ>CN1=agR=MHI{E$IcuFl?WhYe7IVc^AqLIkf|m!}XH5f31=O@br|RfM z?jMIb^&H2SBnc}E>=sSB!4IBpx5@#^M{FenO_y5fYKcg0j?PD=ZXn5Aq@Nh(Dhwjd zDnV|M&yYUJnrvF((qF#s$Teph#TM8!>|5}I$f~%p@Ir}!#%vVZR^zMQ;NKx{%m_V* z9f70bbRou12^K)BUfGaT!uBN3LIG;wdhZ_dH`^F|Zo@51h(c4mNSKN3o}jeZMKybb z*TW-@hUg8;tKM)nPeSCAjb8IIwJfk5a09r^!SVOIM@PF`uix|zj=uY>;i6%Vjy4pH zsE_!op6paK)Nr%v<852u+K?cx+>D5O8*l>uz=`XRBoKgJ6~Bb*tnWiw1ixFH7RDwT zWi++@(6ww5^-aLc;o@}cmH^nQ^w1%UfezPY`oI_kNnBS?23Ao$UCimj`;Qa%-f&dM8gxd8on11qi4eiy&YbLyRDJ zxcjCnP-z8e(r^dK?P%&K8LrR1Lp!TlzG^3a-!bwJaAQD;WQ;U&PtG+Q+fkyyILM&* z;1~cF4}hkxi;5GxYkkHwahfJ!dTv-v55!;>b6S?;a2Z2P1j*38ANYa*FT69z3;!Hy z2)gsckOi;|PL3eR28v-gIavcH!r4ynms>$DeCSaa2{H*{^@BZ-O1By;LMVkKc`=Z+ zdlTLX!TZ_W5kb`2 zvkVyI?w}xcZGpL8=1bPGX$>h4digr~TZ4l25L+-@OC{N+^_;aXXtbEL(f40aSxjFY z3_yZNRsk0ndW1v*^8tkT+DSY8kXR;j zEf9p9(XlKZO-DddYA`}NAmMUkx5Z`c3P+Ewc!SyxA*}hN8g{3b!^(}TDj{=~cr33y zT_%q(KZjP`eNqDorlJ-@1%3dh11U%biMYC=nj$l-q&cDjd)Q`ES{va^QY#;_VhmPg zg!kk9wFC1z+dMc4sT)e2%&}Kef+1S+Eya)r9#2}8ex5H;j>D7}mJaY1g&9F0xJ0%{ zxK3NwTouO)uy}R|DCwO?O8O;$l4@W?p9hr0(8HR!76K(LM@eFWvyTT5PPalNi6Oz4 z*A|mPyS7okyJ?3T&oxe+G0o`tbOix9!~3nV{t~{2X3VNMN65Aid@B?tje)=uum+H# zdong`m{=&FKN13@V3r6i0>FnxL{BQX=AsQsA|}J*j@>XurwfG-RWmSFCc+xdXD?RP(o6e|A=Dzm_MbLgyb0Q=}v{I>sYfW5lU2?RR zGsjFp=+JPoE;_H$UXMFKo+Vg+^|w6$2!&`d8p+AYAN~Lw53;S%NXf-532cW(=8r+g zXA;4yfB(CEmE6Js+%j&ff8EqHu$aquxx+97W-pp!Jaog~)w)Xg5WX6NV1IeA^Tou; zy9(B6D&~k^Gn#fU32bD4cNgiu_TRqze|NW!|Bcbv&*3uc<{yDj00(-l{>EOv|91E2 z9xwE__V4lZ?hkMOjgjrip5Jw1Sa$*T{4NOGYsvr7XXVlO2@gu&)(9QKma;9^_M|E@=*x3*L6_K2Q)YyWPnM1?VuoqGSU-D4f*ASybww!xDeW z%8E0U(IROK#ZHuQap-at8Gq(J*{_D>NUq!n^6U7!J_BjFZ9& zB`l7Eb?b~+oOxVhTw};_3d#l)qb{vq_lLtDMnhZ(Hw8*U#<7uju=(W4Q@x+ufcltu z4HRX@g*h+bcact8Tbj_pip%TR@3dQK8#pAfkYrrZS_Cw(VlF)4`9?en<5fvP=vVn{ zSYSF3!W;|!a)hqS6P&ny{ zH6zaFFbk0a9l5E&DYWwc=wbjsoTtUSSy{5Rzjlf<_j&jGd_0DvRanvpw>&7MMf$E} zwfa#TE6n=ijm=KF@p$uV^7(8&{^n_~R_@Ks03NZ!ws!R;D&9)9YM`M4@FX^E{i)}a zB|5DQZZ1=y#II(X3P&YWbm(x4!K}XX$9aj|>=sLROeLv*|93I9W}d zpm4#Z<5)}(?~-Rv6`YYu>VY*er{y}E?y85|5Ab6-TiiM(3~_6`qm4;}iLYb|olGMF zTqCm@t9CcY$#9G9B7ppPw$^&3Kx&vO-HimZVRz~|B#sXzE*#S&ed>4b) zVkE{2uHeHyCtr^;^f+bd_R(wN4Z)zP&Y))2*|)HI7e5We;sa(u$`xM*H0x2N3BcKX zroyj)XL&J%MnR?FmoB~5&f|N_4xChff(w*;P@yAi^j3S*7`?@D(=$b6=Hc62@!KYg zYbMh&G^yVh#9_6J#RHz%xH22Nh>0guyc}>~fY~jk5Ks-6#xUNhrgR_>1i}q$Z-rD& zKCfGj^|m2|BTuZa(JSOST;*K#fOh4E3(xqqE|7&NDMpaz$WDzWiA06(&pOo%o=(uNP^(^Nl=;=?#dtUu2PL|BR>O4#N)fZBh+qI+U!hN|I|{ALQyP>sw1 z-DVw0x{>ZHUNWjN0|L>HjG3(uG}q^)g0;6+tZggY`}?1dci$X-3XrLCfGGmqLEVP@ z=%N?}Po{4t#Yc>FO5g77z`_5?-NJxo-QU~cck=ipe1|H3!!3&9Lfgx4`@2VbJLdI1 zqAOQC7Jh277>|Q4cH_$IzyJC5-pif6BlFZAAYqTk;@>=Nobb!N{UvXm7L%rz`te)A zOO)T&@+vF_5Qx6J0;{zOnbb4!wA7Z4-`zSq+}S$b^4+fRdakBNWrqHh0LLYpXOz`W zx%Su^H{}%lHwXIz-=c47tEq{MV6tYFEcU_n)@$>+dH*$qSKo0U{Xh2|d7Ab24GFPu z&caza9_ed8xeYk@ssCxoYr*qCX4?n*ulBzC6hD8M&$_tIZ`kh>ct7I(qlGg~`G&Tg zl1hn!*js9yI`aOF~zpMog6I z@|m_h*fx=-=RYk)E^kK~Z$a3+71J$Thu%F`s;P?ra}vD3{e%z4-+}sp`2X%?iT>_x zy7jt$kod#nc+j{!U-@b^`OPo$1O2&u*?8RBcr+@9RPyu@j9`FqJ&!o2eK_vTs`=;j z@!0)5-Q0wKpFQ4uihr+fKEZ$Cx38W(`_201=9Bej8=IT!?zxSPub!>{CVl*yf5MNG zU$a@7{^tB*F{;W*>vP2YN8P`c3wJ?|fAc@&M^pU-(Kt z+K(VV^bi}#r0!F42Ffia@sOf~TsLeq9#^F%KqX`^Fj4v>{Xg#?Z~ZBe4I&YBjA>e8{DQbZt7Hh^)|4VTR!&ZS3so&3G+{HnPv5s>%fKikV`CET zD=ePio=Qe3Mh2@79m^G%#;EKu6C;xxr(I$Kz8QZ>n5{7C0AyiJ{~+CVC~E8+%1 zRYWKtc#Q+9hmHc=v=KFH&GZ&4?da7qhYnijOdvAl`$Ah-X^pHAex3Y&1mR-1IX&;U zu^@8j%;%^Uh^~np`|3Z{IaF*NDrS_X-Gw}DjyuJ`MCjR?pyWlY((YebGu{iGv&0tz z{1qiQwl#$HS8i_zS9?C!aA7BkfBRWK9HW^2Wv8g#2L+!P7tF1Z;dMabVC50I8`j@M z*c09c5A<|q4+k5Z>+cE#&@H{@^*8g6b6CarT?AR7MGN04CTI``9(M|ro|p7CuJ<;k zqI;-_IF7L7<*WM377FQ>iB9WpO9`+5A3|oU2uCa8rz4Kro=kY510CVn}(8W!Vf+QV=I2zqub7NDJ0s6d$G8~F+M{ccUo zB_DfVNWV>7{}|a6lZ3l3bu_+AI~8t}D?u1tVw4|x;{|4gYA75nkYmw~u-#4Pt$zA~ zHenVP)pRV=j3Yv#^pRh(Y2?-8zO)&4nnnttcMeEG5WYv%!9JA52zUyViChqu^FZE8 z`D6-5Jo&OxR!BnEBh1%uLjC-F{%Fn0D`8O8nqy4E%Takf0c&BkW*)T}z9CK**8tW= zfR4;L#RbrGA#)05`MKMRF_-qVUhMN(hH(zM+Hmv4q57a>kP)a>qls{3F!?bey+QTK5_>0`~E{+vGZ%fx03W%AVzyqdb&f0o&6Q-HX zTbdc)vOe4ll?AP?s+JBvVl!PnN9i{gsXM0?9uZ^=+|1J?S)sLFWz2oW^N^g&=IVhQ z1TslZPH>!m*rGO{!==(~o;E6GU7|UUD15eJe*j0}QQ>E+OuT~{K3gWP3^Eej; z1zn?3QgexKj>H-q;spj@$7AdyzR^Z9bmv#K*uXw;z(5|HI!yK(C~l|o=-{8wPol+Yopjqf?{!4lbT4BF`{AZSF5sh=_b*UJ{S;G12GM;1{Mw}QC<`x{F0dBl;LPyrKD9R zB`A{M0SGe%h6O9K230LaISA*VoQEQbV4QowD1f*jJB$%IICLnmu{arx7vRZfECBkC z+{sMlrdEZKLM1^pkj{f=MN^BO6qNu+hA2D~v`qppZCFQ(QDdOGrwg(sLe2x!QfG0O zkXWD|9hUAbz0^#iU=r9FX-S^0`ikN(x<2EUzCn8_W}o%RLFtvclao4cTYCD_==4)H z;Rd2E=7fSu$UJ;+RyLed%g^I{EZ3xRhh(4OUpW{KxvblXap~xnBi+79FUkcLFM4yZ z^Y-;_`f~UCtsnOej*^;Z@z@#zVcmx%0Y+i-!~sG`D}z_haTW={W09TIjTh>{RK7O0 z60QNWMY!J+1M!&fm*U1mVUgq>9UQKcTa*HLI%uB)bd(sgS_{rC3Qu%!xxOEi6$~&W z$4~_Z1SkXV+ew`|L2DqhMlGYM=OV9^^F2bd4k;3=y&*{QoHlHdGq|GC}&HyT1&`LoY=|1J0b zt*<|Mvawn7|E+)ZtN-tx=Ku4D1l)i8SK>`_h;7av69WTOdjY>};CE~u=F(G?M2t%L z%@k@1V+P>(M$0E+sI5k_Sq|$ObseK85%4(L{EHrlR*wDYlfhzMjPV&BNG~}Opi*0k zgpy;k8#1`WC~7*b7aG(|$kaSH1VV5EkJA}_;0gm^(;uQSU*+y2;KvN6Se zZS9Anmrn++L&$1}z=bt1LL5?r;zT3&Z(NU3c9zv-9Vu(m2qnAWLYObD>eY$6qn)G-6?9aZQtJ{?r$-z2LwsO zHkpY4Z$Oa0Trse+0?_1NqSzRGCp`*r;?%PcQXpnV5gAn6&gj(kt)2Vg3-RMDUYt;g z&wSQxdvsi$gJbE0we4+zB)urFt*f67xD+nnmwu@QR#bdj64U%yD~Z{MN;QgjtnhXA z6%_^<@GZTUqj@y!6TzZwJ9-Gjx|!YNuAXfKo{hJ26xB^U?~+%|o?b7&kdVG^R_Rgm%J z81I}DLc)a_fP(F)orkcp=WZ*f6+xC{pQUM=pGGgG|GCIr+fYdWkkptWB$0*AQc(My zT^8fw3JcV`Ti~Ft=d>53pm_9Z82b|{vN3gRdLU&EQC5tqAFT9IcE@1{t9U*u9iJvY zWdCsMhh2=czd{^$Uk)KgsR=v8HmU$Ve$r4wO~7(M5mNTh7VAdX zN*KgbOXVpi4RLdjnAT7`h>)Xsu7jXlrP-z9U}iRNGlc96rBHMV@Bwmiwj<=4Xakfj zy?dd`AE#R4;ke93$e>gh;!KdX1r#^AuWe%TaYLak77hp|y;JAgRe+(V2^BgdKmKre zOGLG4vTh>S9 zvW#y<9s)1&?ewe%^n~fK=1)c!EcPzzMq|uQD{zmBgSCDuO2@u|6qD^3LB)ota-q>; zV%Du~_>VgV$_t=)Fkv$4q-8GFH@@-;obNsm$v7l`O#x8)uGJdp|)z~testy#l10(!2wMy|8j z$baAjRjLoU#&H@T(enL8PXP2=;r|>hrrqi?zoEa7`*+z;j_G`iO9~avP!MBomJC8Rg)P0Km;EK;$sNu~My7X-Q_{7joGoOk5XCK&3zMnnJFt zCW+CtKwcL!w|Gv{dq4%bQ z0xf`wpw{mV(WcP6q8v!N8d0vY1=mxjPfU4sv~ym}=272+(!g)o-+bH8$7i)23pv~u z(6Mc(l|Gp0ZeM&d8`leTFnwop8~WKu=rsbDBoj2HDF`CN5P90xF{kMPLNLZvfjcxt zS)3$@Z!;|Oc3wi<6inrYx&@dAFf4HT>OMXG?l=rNh-T=+VNWS2*etu=Kwq-M0Abp` zwbx|bUET%8m0^LUu%v8Q^FG*D(}UiKcRIUQ+3d24mprqb8%!b`gd9Q^c=;%cdtYL- zQM|;`-IW02hygUs>vyPp`ph{ z2;50ffD6-!{s_@R0gJ5QSTRMY)U@KysF5S@FypLoRb@2Tj>pQv)F%9@iydsMfd5LldZ0W%~jar4@ty z8PigO#khuM1jZ`^W36Y!@yv%xpm`lTjAXS zTYAdbZAR!C+vE2Xq0y^0jE(3H_Pio5t_CulGO!hi$XLL)p|US4@Oig}qRdl+&?B5u zv$KUz9+d97APhGt#CUoNK410k9w1Si(al;)- zC(JY$0P*0A3dmF%(B<1onKr|aE4aB;#3%!k3njHvHEYV>>TT8!BsVjT#kf2--krd; z(&*{&O0#=Yb6#yMI8y+^PMJZQakdR^{qf_+MB#_C0?P+Pm_K$P9E9(dd*g|FEj|_4 zjC<=FGuf-G0w|(r&c|W_r9!3gy1-`F#_~-71y>j&Ckjnkb{BE5YAwdqnamKu-{wxk zz%fTbep}he$MXzvl^V@W;3F>2<}4y{15`BJHBza^2kNsgrX#faYK9g=VYKbY$;rkQ z=jyCbv?KUuugmnRn1E4hwb#In)}NUPRpabKe*1J9Hz8aM-3X>L(_Oe3%^Sh8Lu1QJ zHbh;u_u)C=(ZPn&qr+_v-8Nyxd`9(Vxz+`GfK@GTi|{eISC}WPsad8jsk99Ms?aJQ zTPnm!W_^Bw3c2`4Qa>9=Sawq!d;Cjn*H*2m=$Q(XJxJFhz<($E|K|dvkJDKuN+OkN zl8&XsQCPr41Ec+8ROSX>mqZi8cNzPgzV2fzWHW_m|1kB9FH>mvh=!((oL zud{-4l!?tR#=*W?bWZ~(AVrU0&UJqu2D_4sE4V1i=0p);!xoIk1nRu6SxyPvPx8@cGKP2Exr-Z!>Q4RpF|8yXe~jJsrvDe)=3_kF8j1}x!S#7)1_r)c>!!)Y~uZ{=i%84L{4923atD58 zH)wjC&BMA33N@w2na=UoU$2I5$HDvm#XO5+-hxrL7zu^#n3&|dQeqtAbl9SaKj}oW z{TPjJ!n~>g4Zn>x4cFpOZb$Zlp@1Y%XQxqE@g>AQ0jzra`MBYHyl%K1~I>x>L8$o9{k;EF7)j`q{3(L zbZZipZWt&%?yD>J#@{(dA=B{UjL;e|TGm9%3PO;$F$i}9^YS1Xdl$u{)ytLR05*&EQG{|t^ z*l{f!ycRUzBiV7t4XJ`(;2sBt26%{M!32xiIj2G|_mX!4H#xbxnaC-!tig94ddkI| z!qGyAXI7O_wWF4R04yCJFN71v)=o~mt6${4CLez`o|ot7Xva03Q2Uje#Dzp#E~2K*+^OP>OpTP{iqBM+3tvhBvtJSbrVGSe3(V5U zgFFZTgZx`tb-@g>|7=R%fPEvZGVjWhni_rOMMG7*Z)SM}vg6I<_UT;3h#R zC%GK}4{kPtqQe|PGt1|T*`!tl6c#7XMn>Q+j2D=TKcL9=L!Cpw$wW-IKT^#aH}rp2z3LYGKIVl!dvyoBzwlvfgn#Wxs> z&h!oopdM(N@WTN5EBjz0)SBs9syY$Dq6@*SmA}w=nz$R#3Uq`e)-pa#>u5Q@*>!!XFr4XV)Kwp zjJ-uZ)++QEIjH2}F6AiFFb=Bab)q;%rc&va%g{53CP#t;BY_QcoE1Z_ve}h~mSX9Y zvmYfD)VCM~fceQ(%M!OKpr}D2{iY!+`cA=U+2pRVXj)Y9F0p8oSltkG))bY;$m(`NVz%80gKM^F{8wso+Iv;xcv^{o0V z(MHq?>xZlZSIFI&+!46KBy}3x3OomQ!mSvOvgts|2@RwM>1;3(APRb5G;H{!%BnHK zyA6v`>vw-^`R*zoUNnAzRgsBM>gZ(%(91Co+@u(QEWScR ze@+!z2C;yaAbl90^4tzBKYXDzC8GN|+zy`rLWY4)sApr}4M)K&_Z^`WBwBpzROSH| zHLa?+INH5X6dI5I^R`rSyi#^vZgdU$<$08(AJ^6K;Vlz2ePiejqO&b=WHzR4pAMLe z?1<`vum+BL9zRXl@cy7u@@bCnu^T5Rx{E%g9Z*#-$5*3M^X=<5J1@D;2|a=Uw3l%1 z>{Afy!adu-f4h}DDKGJzoWRzC2N&*O_P@ZXk^os2_aD4=t)$$_*@6q32lB%Mx9a(L z6xQYtt7BpeR$jFE_ei^6mA^Ok? z1F@M9eW(@4qA?`)-~pmueE%W_aFyu#?aV@RmDh(;>39O^bY~yWEZEB_saM&S9RcyJ zR)5c;((?AfIMI$f&X;;aJoa8(J4c>v1=5Al!n5&7+Ho`si?>Gzqbb4;}AYGc%;B5UBJPwuZnkBeyLo z;R^DP-A6O4&8KGw0!aY6;DTwC;o0BnzfM8=%G{z~iID^J(Re?NoJPUHZBkrFuJ*MC zsEAwcPd%LX=WXd8;D9@hGc0Dq#T6F<5H@`yGKS!pTCum$%F(m{tYWoJUsSOB zO`h$oex78jy!Tw~JSk7W%r&3iI?ERA`p#FkWBDG3i&{v_Q!qs`oAwxXsF&ea-kyy* z0tX=|IXmU?K0^>spINOcvbYK3mv0GR9z_keR(yjsw!=O*pEB${Qv8~EJd8z0Jrlou zd$h+U|2ZX!fNu+<>V*PMPGI)Mb17N@e^v0;+oRVNB}L$9<#fc<5v*U6{(tAyj1#mu z0tfg8sRWwFydr2&r#Bc`boyj~L-5h5)$GIc8txh!8FNQ@O-KcmsFwGmOQ+@P^$(z@ zNz)4(E*3GC5>_x*n!AMJ3XX{`W;wfDr$I6%EUHudmMyCISS{%1{JIRYJ`8L#V$)vb z=NSQvwq>7ge9dG9Nm5yrTYu8r$D%ygHGt4OdO{6_Q#o`y`+yV;aA7So|B|yg8^s6o zjg}~$Ou04@>xx*Ociq0OPMUY3yW@(pB?|Mr(M*Is zJ4fPkTNKO|g7%rqf!zo?WUa|&yJrlIXCXi8+OQcH?l(hILDdxG#B~4SoTxS)C^VV^ z5TGQ0R5DszO;J}LL)8~gr;1@gm^$Zh07aE`iMR zX`fc*7>ZT0zZuNXj1dk-X#UlhpxFQ|UwCt{@*A+p-nITf1WQhbrxhVSQTGJF%R)P$ zts~5EZ|$$r4moOd+3RK!jj!{$ZEPYhkVUX9A%0y8Ih|Hm1d17y#~Su$w&ZiDX`!S1 zba8$UEC_raJ9QUum7Nn6N`kMJe}&vg$K)K7Vka~?p!dZmaoFq5?vH!hyqo_@(2KCn|7J#U@BX7mU}}}t5|0aX z_7~UR8qrDx#&k#0;iqTW5M>ef`}_A_G#EW+9Qy)paY*3>_)83`a&%8}PX}!zG#Yn& z&lfC~hId^@L4rjL4;)qsaHep;smz6Cc)p0ad5xbU1D^@dk=OjQAp){~PiWE_cFbtJ zo(m))a% z4^8{Fzk5W$vv0QcUej+oTf1)#_UZSnx5wYpZ?6ye!TsHz`lf-m+lTb|_7S~A%Gv9K z?XB03odPAX75ve&wKWNRC#_1>sviAr{CYAFw+VZ36&A(VBY#~)avC_OQBO#L37a3_ zC{i3@Oq9HN!G5~69MI|z&cpH^BO#yleIYAhX9@R=Z0_Xb(T8jXRklbgyWbwo=Qocx0c%~I!zu=8?e5Vq{WfJ*7JW*G|M}kjtApn>JCF5dBo_B1 z-XjeoY;CuK1_KSH{Ecs(dTZZCbjKniwDtoFR}Se+z{yF?iO{NLQeO|i8K(7 z1L|F#Xdq2FpMu!v{$Y`kYc-fq7Izf!`&x~LNqTU6=*D&l_y8Jpj>fyh8(xE`7;^j9 zAm{^}QU(A{v*f@%dki7ghhhun_&n6q)1$4Oy|;aD&H?_3aMpfEo#?DIdh=0ssC(dw zAfg!~&2Fb-f^9n8#`s;!~v2@ZbG(zlc1qti~ootIW6 zMr-nWHSa&Z5kvs|D_)sBdXJ+3$h6%a0g$C4(*Q;eaBhuUAJaj0OCi0i+W25KeUb58 za1a?9&aT{4Gk_$BfZt(N2Y5p^6M>Y9sbW=7xfXy|IL7aUmwbHog5t;7AcD+nmK9@; z#Ah3%WX54LKIHhyNn?~sq>f50GUADX>Ws8+MMuNkB8C`(YBVHRbj z=4fkgKLC;bx~TF_5K$-R1$Q*WnAxJNuXDY4!@C(%778p9P)_;dZ>q?LII2t?RnhLP{+Npka_6&$?oHQO;mXijvHHu-}%4Q-6uGmM&|QOLHWOf`hj2*@lA1;fxv&s0}gs-3`8{arI;Y6@b^M-D}(sx%jQ~YI>PMrIF8u&aU zjGY(E8h`QzSX=K4V8T(WvX7RJHzXjOrq@O7Ye$8nK@ogU6w}+VipwH;IitWUntIqc z0KJd}QO>Q&TEOZJsIwJSgZSKKvAGSki#7o*rd^iOKyU=IWyvE$hB4PW0l+2R?i{Mr zfw!oL0&i}P@Zn>a(lN{^jz?25Vdgm3qUv4U5Oe7{+5h?a*XtY6)5toUxUze7R%CxY z+uZnF@Bp&`_r&^>;0vM3Z`1H|LzfLl$i z&8Z!y3?_9`E}X7g%oo^r^G5Ov>)RJBA6hl+`f=<&(P)*##hab*1qCFfOZo}znLv8e zONjaPwqS0qCw^0oT9&va1x*h$zpzYPR&haY*;euwk;GD*qqp1t9H1ZN#IU94=*70Bo(DmQ3_W@cZNlNa1gK{{>$=AiZ7 z-NtWrpjMj;z!(0s_2%&PZg2bGO^pJ83FH0@vdQqGoK>nKEUMWf@Y9YTF-L(j-5bv4 z_I*br8$Fq=Fy1Bg741lal8wv8v$J<(hr_)M+-a{6LpZA*k>qSEQ)Q=e?Nm4J&i@GO zg+cKecg}Q(k@{>VCKKijP%hKH#3ux8|0@qszWlcnQxQ8TA`TZ%IG@Jygh9+KO)I76 z)0G)`c+z1$n-jrEB&FUz2)+z2QDRSVK9RgL`%;t;QUviYD8bP<4GLXspAffEkXDk^ zPHS{^nI#xq3_!O$E#}S30J?VQF@#5Tk_812aHIs3Z=255tt*u!9#-j2aps!rexHxW zSMEx0%v;`gy!myoJHW99i|M3cV5U}1(-4|gTXUH3%{K+ej^)`red{hvjf~w#1?BDG z{%YD^pxfKAp?N-=ppHWBO?;%kwZEzcCay+7WG0)b_QKYvouP6;APPQ&;-S)_n~C7KQs2S;7GB0vE1S1=ZaJR3eg*?jWkDVMDy z+)T~LV^C|M$GNvExHa>MeZK6n-Shl%F_1^BP{@r{#-HIxV3$3HDde-i1v^o?virl^ zRk^<`=6EBS6z%6yE6zTecXg2WnfB30A&X%UFw>+-yqgatqN!^nczuv{TB0Sc*lxcXO6 zwR#&2FVq?gY{d=ws_I@&yVbBeF3-!!YM?`)n1CCUk4(*@NmP-fRxE%)C7XxHppT{t zq%%?lzy?k+VeAV6s>cx^;krRHO)Px;fWk>A`{pQm4JopOE%(yxcMZ|3uz}bi97-v3`)cfztYj81ksGh;CO@qBa5GZE3uaSYn z50nYrHd$OVnUy-et}%#u_wm0U_oA+}n#OlrX{+sci@s6_2T1 zcUX-ZH^?R`KXcDrOnlZ^J$?ftvM4}a>XsQc3`P971+rC0XgRA+2Hk9F5XDL}tUOlc z2LDcs)8m96{}H8eN2UodPC%--$tJBMu?zn-G5it=oNMz5HXlU_q8e$^*6W^L$$+m7 z)D&NNaGhtDoE_$o=pInbPfKq};77+4uITO;JO#JQ-+snV`t9fbB%{3gsyjR#c4ygj zde@)h8M5D<-G1s`g?KT?4&D1Jup+Cz&FUgsPw}sdtIYl>Uv@7?%i2Uy@%uMh+mGNtRa|Po8#%^U62g{pM-vKbK$eT~5y3?RVWr>GpBo^zhBoE)?hMf4|jT$L^r< z^^LC^8|TmE*Qjy#(OnvkNB-5@K6I){Il6P#@RA-EX1#&*TBgqeE*4Ng~((+j)m@ZxE!5OPS>1>NguKq z7Ab{m7^ML=cjH5l;Q^~s_#2kJ*@*_=u%(Bt=F=Mvf?{ppO3J8Gs1%w$R~~d9toD-D z9;g9ODZ2b8l?-MEW&KD&95EWv30>!PAziE4tL8tL(dFk%w*#ywC!Q`&X( zd2;d~y%wRbzKnGd1cwXsNq_P}(NTB+fimv+t0OCHJ85k@HEkO{z@iFtAYqSgL$EH~ zPZ)>4w&qWt=JNOh%bC005P$|+rxS_AG4XNr9WsPS{l~y~fWm9(<^efb0vZGEuJ8K& zt;4+poO@Iy2q&`ww)gIO@2lQA4k^!OZs%vKm>9sgfwRSA!b**_m|#H^aa04-;z5u^ zO@-__Nx+;G$57aS&d-d_HL~ADIgXk~C@nZ=BUT zyJfOT?Syk*CL1^KFb>da8xSC#o|PvE zi#T&9kj&{NrU-e%0s+BY;A;sD(mVPg3K(=n8Y(-9l|SN+dp?m>3DFXqw=a_k60S6D zaff`dBtN+yiRYwG;025!Fp&kY7Fpnd=qOL3iP9@(H4^X_g$-dqI=Yc+Pp5h>yF(}S zyZw(46T|>G5^-z;AN<0VNs>N6L8(gy3V_wj55(BM&u95VI`Rx4g_u==H%H?&8olAZ z3Pk#C`t{er=K-ESe^>MV-vTFPOZ&JlpKX2|GgE(>}{VhAi$ax+i!2tdX!@-o3##be#&|?^2@c{LP zSBum6EYGWk(Q3;2FFj(9#q*CEdm~nWo5rJj?x>Av=#fCYy5kDpH#d`Gd=8-&Jkoc2 zZUK5gTD5m#w5TAS&mFG>4njW>1{wr{3)?(70WQ3|n{K`CA0&p|HpJg_>iLu%lcD*f zmkr18T=JX$i+)(k*?8RBcr+@9kC5&j!IW_)t4EG7^N+n*HUIoR9=o5Xo15_Ov&WlH z@$dD`C-^V?y774ZH|v|5Pu8DpY;LZ*=Qh@#e)aS>>EnOK0xUqNOw-?-Uo1vdIca^4 z5`jkDzdDt1l8t}!KjddSP;Nl}sFFrmMFlmKqMAG);3Wr{(dIcp%$?7$b1DR;)MHtm z3x_+!GzI_-t&+KprY{5*X3GZjeOS1Ud~gDP}VB{BGmBz3)oCTE|*d0Ggx^if6Vo^Th0Kpirp8s&#zd zbQ@Ixn8#yLd*D#kzoEm&uEWXy`1tQvD*xe-{b_>#PV#^I(bo2EB>%S_?LPV_|3Ab( zaIooY@8Kp#0R=KZMLxQ8-#85(;i8}k0`uch#mdB`CoS7xw%<9p3b2+1olG2@4 zOU4Z4=S|E=z>~!HS(G{ykdU!6O82J`He@|H&o8NNFaX**q<8gamNdkOm@mF!T5kzh zp!2nMD{dk}zhW|Y_ulnlvPl>!wbN%$HsK{V-QjlumK6N0Dzpy4%!zjxsia+8AzlSM z-n%BjWZOeqP@XXSQz~eX>F}FWre`x9o~E0C$FkW}J-u*kJsPFY&MTlqd;WSA^&_0! zZ6Fjr%>~TN5&@cZMIj9W8KWRiaq0{uI9Z*FFp@l#8_6H$&Sp&frwBx#thxaqgFY7|amj$+E)l3|^h|1=Hot0K%e~oV&G*wIWwJ2ka0LEp&XNBGmKTVBbVG za~k;tBo^rYbgP5fKD;RAOOh1J_kPV~*29-0`7>YtLU$qKJF->(4V4`+) z>t=#*45PwjR4NC(JAt?u*C5@<;7s~`$rof?007C9>wb4K2H5K`UwbwDq~DG`yAj)X z7r8wG{ynGg3p^oWKa_cfkH@|+xnB#I95!429%3g9ofO>KaA?Abo~2ltXNzxPJ_(*x(&%2xP)t=E(952&>-b}7LZ=5rlX;T%})4~ zQ`xOhS!7~%*n*}n6E^}LI8R3aUEG%91HvRwlfvt>UiYAib!FYXmsl}d-NYx>6r_@Q zIo6X~Lnlc)K9O_>0g_w&>q&>}-1YMlC;0t|N@Gq3zfl)e??5ejtnJNHz0hiT zG)OBz*Xx| za$`BARhjOptOe!ytrUAIfhcCC@=B6zya{EL$+iMIkjgG3jpUk!YzE>_z}}3ci!u~z zXLaYTDkBsybb%HDQN$bu=TmYExQ52#{BM8;0dW+@?stc6P`B%TCMP)z+dQIf0bo@3 zrB8CZr=Md9DP8F5_{|IG10_^4;9tXaCEts|s~(;-CrVIcon|&VJXZOjofVmYEc^bl z66|{TOldB!bG-?<%>%<01POxJQEh^(TW);-89qg$#VAv#n}h=rReQH{%VNHq*|LcQ z`!C%<&Numleaz&gbz>DST%ryeE=GX7;h1D>zVx4?iLm_gS10hKH3h6ou`ZkW55Vf zc#7T9E@t7XeI`t_a&g>w2FUV9IMslCL;ke#C8Gm>&8WbhRj)EZ}gR!YXX*d^c7XBK~e}C9eK^^s!5w5^)uo> zrh-GOt73u=!^{XVZgtw^Wuj%WYx(GGgxq0Rr8;~D{!q&LZubaZRcUe)@^-q>L?o(! z>~{1q7V|OwLx%?V!`(6lJ@sdZ0IiPyJbtqKq!s^p`e^rK{O3dbdqFde;hyKuTCsn~ z(a%e9u7Yx+x)qk|&Jl|qWsRYpkW=r3&>#~`NHR(iM!E5MPAXUBSzSo=5wuub!a2z$ z>zYoR1MZdU#1gb|s%WGVMnN9Hej(6>VQ|K@X=qB0`~+g~^XM-2{}?7R+Y8kepc7zk zqvy=FLMpH{G2nw8sWB*^uLOTd`0{YYnbTkvRM_thzZ&7AW^FXqD^?t_s=IOGWNP;dqRP7^y!=lU+od82LMCpDhUIUB9;WkJan!Yly zSQLlolxFo{aysK`Ex;gwk-RA<=WgHQ&YOT|SL)PF};TMjT3`>Gr9P1$;6h0lSKI`R?0@ADJ=o2uGNs=pHS ziY6(dONjNS#t{=A|(wX75%I$Tj0G69|)H#49j&nrl& zDNtoR10;@a_jD5G7ei&t3p1LNz};`QV`naTM{>C|ri+WWnmShA91dA@OcAUWfvqcl zLBc`mwL>K;pH{~w%VIW#aC0}h-&d@y&zFmNRr8($)WmASi0h0@yR0Mco@oU6n8J3! zRTX8A(t5Nb(|Nhmg!G1?UHjqXQ6hXwtxjk2~lw06P;d)UguW3dF-Ymb$1Xvtlc;>}~^4Z{Mn&M6o*lTRg zGy<_pT)c!MNfOE^2C#4soGmBkYMeuutX`(CFg>jgf??2|Jm_g#0>3d;p3a2ZNCc(z z@aU0CFr-78;LB`2$DBYI$rdXdj>@{n(!_g4$=a>6WDyu-#=JA$7u?~i!j^hf)s6Ci z5&vw*$e`*Kpk?qGjJ`;xM_jmFHk)zwA2Y}k-V)F*@(y30Lj6-FL#fhy?OoB zi?1~riQl<}c>MO=8%Pz$qDft+$*^!Q>H`MoT@Zd_l@;83a{kg;tb|WuEnIp!n-T(or_EivN(2+;fNQm8XDroo{)bFs{s0ewnho|JrqV_bJ6|SKoCN-2Fy^Z1IU{fV7uI!|F)hEa!vh ze(|-=ZXzw(N0RA0+ly|r<$mb<{vr)3?ZO~Va32f~s()H6Wp8Y&i|rP&$*l8Utpm8d z%U3_M7&L0%AZVcv_0n$JiBGD41lI@@tB=RwfHT3)cpM8V_k*4TO#70M0V;YRXF6!P zNvIX{7(y_Bgp10>dz5J9t24yBZ-6MW(Ny3fsK{F*9m)Jirw)c&))f!Yo!@rd3Ud?v z+t>&fr{`~yC5N0#h|9ov0@D*n8#lpMQ#F$Gs`Bv4fo<23(JC?e4!;(76}tky-dV-e zG)g1G?izeE1eL{z(ztI*SYMe?mLmuf>%lPATZmF@Z6T+R&dJv$Iz9eZ*;HV=K&}6comNR3&Q9U^nfDz5H7_lO69bCT134wy#kvI$h(Cn_r zXEmt-XG`)09njH>AS@@@)Fkbq{|Nsgh+^sn;aj2?ds?9Gg+*h~J6LysAmHAznxlJ` zAT)AD2AC07+-0@I5~><(MTq9PIjErMOt3FVg(e6R3htsqh&T;7ipT6u17*5{9E>@o zP&C(&^_Aq!WV9~CIqGz-Nz?GJNpK{FDF_+l%4IeiA#+rK8=#ZIxUo%` zUI65};W)~hhOpalzd(lv3FK-uMWg9FfbgC#T$dg^exR!q-|d0>^neDAtpal5&%voo z6c>o0s65N%6mTNL!iXXUT>x5C4Y0eR>=ZtUmk=G|Yha@KD+J$Y)d>|JL}|xCBr>f& zcbe}1O7$U{yS0dwM@iIrK{4Xu@6b(sv4=gd0;=ph#0j87@L|~WLlQ_v24cq_e!KbV z57Cv09Ey^LO=2jYwm7}hSJd2FO-{$oqu;r>L`c4}@j-{zZ;sNh-n{$z;E1-zJh<%u zVlZK)rSI)tntuKTVvTi4LCGc`=BwK9fZe7wx6?9k{f^8`!5WnK1y9u}q|1;R!`=HXiGg0u2*sL!KPFx)_h4348QLnLR;^L4zaI zQni7;`;e)-=jIXos4dvTSOlN!*YUWmPXjZe9Pm@fImi4tSSaDa4nYcHH?DjQPC!Bh ziFsK4Luv+d?zMnw2HZ^yJtldnqv?DZow(bCZXeWvwD>=+OSNm*i8v zi`V~k{=Ol{2|!1vKr7RI3PL<%tD2y;UDNB#832jEGy+Kn?E{=IAiA@cb6jh+V;j6CS#4xal$O{u0F^&6+HZ20S6uiT8v^Xi@`yk-IA=%7TG0IJJBia zngnkAWDoKtmuPFg0!=-;VMnZ@MG>!IijH0g93sWdROzS$0`c z;9iZuv~){!)B&<6(*i&?`Uje)8KBQ3WXY~5y1^YMT$I>z+Eu0jB$LcT*Wx$YBJ%zj<{3Cgzd(Nz`$wHu?A+Q$O7TfH+#@sY}JMV z|Ip>heO(ERyHA~lrS+iy#s|a;>NFO&D&XB7uq1k5)t|tw^KaPSEU7YdbJnL2{m523 z6eOR}x$0GA_($zACb5VHGu2_>J_ew>Lo}kJ6^cK0?3?>YM}&~)(ngFV4Kx^n8R*`E z4;~IrS!>lpQ>tf6YwGJKMKY!UG(SKWcDy2~<@O?-3iC1fu~^)pN_q-{Owu?wi~{EC z*#d0pK9|aVT`wTrz`s-hgDf=e zNCgn8#l#s)obXQn_y=$SIr%dlOKHKM%;`m3I_9Px|4~3B&$4?&?k(t<(({mxenW2v zNfeSl16Z2EEXCGMu}JVTHx5c7UX%fyx!3hkiB*!M&e*Jxc6>kPCv~85@&bUWfV9^g z`#hhdTRZ9Y&fcTly~j_1NyKS9CyVO6ET%s{+WzF}4{M;gtnZ~1*PbAonCP`Do)-FY zgNN`U&S*|w(#rU3*B%pLBe>OyV zh+fD81zEz50n@Y;r=pg@Vp-b;&;n){Nl>8GOme>6wUuJDQ}bxI$Y_%rD*PTEW|8wM%?0^gacRXH3s|$yrYWuD*K+2 z`K+Il()wZ*r!T9IBnW8^)^khQ^5k<;d}bK+E&*!-iKdPCy`4T+GN&^%766Xa27`i= zafGZ`tUqoFW8n~7^DcK(-`qD&lGW^dG4uDIclgJ09$tkY1T!Zgp;;#x!D&&Ht5Rj_ zoY0O5Wq`Gi%Vo1{0f1qeR3`gLwSsMYdvo`moxQ7$l-q*diqzEnuB2C9cm0GwRWQY6kG)3LFVdqq$>T9R=X;dPka1H_37N#5Cts8x@SLf`!rKNp#X`Zo4 zcc+%Ta(ACsiBc2p_A>sapZ+@iZJ8G$*Cht7n?(U2Z(;42(kI%*<#SOw12GglDKzqN z?uO?^&_S*_+0O=(uCsY^R~b4IKa%?&hOiI7v=m>-q*U zGD!&Qfd7qk1r&@$TD6i@&I|}6Yir_<5C)uklSx+uvyY$;?e-?Aklen%sfamFPhh`f z2&}%BUNoQ;ui60zSkf07WIfl@>|b1!Rk|~`~bMvaGpBJv0j3wkPj zJNm`?)Xkps&+St$>C!*5Tb4`djvcXihLZllOP?_EW#4L+>mAp9XV5I(oTgl$$syVU zR~kvdkIgir|6$EPckh=s)%Hepzn%|RLQZ10( zE@6Y+wCEQIYHZzW2$W}!gmeeJI7yz1HmYhW#Ph4U5R*>I`+&NBjX<8)Mf*~Dh}uC5N~O1Gw5bBq@H zB;yTDZiGKI;cUakIZbgx@~UEug}W*-Oj78J1>_gFL0TZCtw~-2jUvMn)2)DBe>Xl{ z>zu)U;m`pg5$misRRU^_kDA-2XnCq7Qq+FhrYo(HU`<^WnT=aP6EVgF6#GrpJ=1wHn-XI-iNw8&hTp!hS9e~WzU9W53OqWh+k(orn8aIL2{}fOumXZg z0N{<#_lWd3DuDdUn3(j8{Zru0v+>B4y%lTT_cbBF z>{9{ps1!3sF=W;CmcoW_%=43E=JT&s=K!U_o z^0eUqi+o9v2>X++X^A7q1BBno=@6=~b1$E$Vzu^26X>yVi)BH?XtUs0ge(iJtp&UF zH3U;-1gw?^=~HZ15-+`%v!*dLy#9ax@BbGv8*>$Qd~ybEqLw(Otpr_ob9AtmKCjq% zmT-#g%uU{WMp|S88{Tj(rBoN5^q%YDiNk?BZYpufLEz|ZcUPms7+3y(-uYjWd<8jh z1D|My(w;KPPQxd4Da(e#sV@r*8|+Ex5|1N1!|C&7ExVrb{{U3v&Toyy7VMp9g;wL< z;pPA!)I0X8tM-IK2VJ@xYO3+|d+FhK&z>C|JU@7DGLvy3x}7pv6mxWu;BXNNUe}wC zKv7FpBo1cjmjE7-)2nL3QjKTAN1bQdJI;mmK5*G83(XSj9yG?YrGKrw!JdO2(t`Q< zzxkh=AYtosmSNKg9yDL14?4^V{c1q}6!8+nnMW@V1tZ-SbW7*2)d>#vl2goh{#fQIfI~tNxe3-v<3WPNkv0l9J;5UY zGY)zM=Q+yhm0%Sb0ZqKP6L@D5>OH|;2w-(-!t8D0%m>_ z+y+~_L#%}7g<(*91a>-Uce)k*^)X+N!f(xXKFwUa(|=8V)BZ>EiEz9c@{4jiAUdca z))D&fGfKK5WVC#mK#k#2YcLcEZIU5QI@Wnqvn3f$ZdFb$L>5!yPQ|#8^qZWv7A-AW z2+g8eLW$|Qdp}zO==MJ+Ebr~5qfL7m;PD{W29DkkGy3<^6c^Mn4F@GR5F&^a)^OEn(Sd2A^B_K)9fzLFN7P)(Vw#cRi%+c@FYLOJD0fvbY z9B$!WIJxEQaKa0W*1kbIO-OwCfTXB8-Pk6OD1$#>iDi#Lb*KE(|3X6u64L~zDLgN( zrD=Lc5SyeM#0H+oFu7j*ui-lyG>pWf=s+=ud!khVKzFDp;T3%?hz(Q`v&Np*)JI4? zqy_7qoL12yVNteG&88cPxz{!Ln^F30!5IUR0*TwHcFV{8_?)1=sWWLJf}Ipyiw-Y z8)<7SeCk+l*0MSOTghke1Zaf>WjJQNme3t~4Q=|Ah-a_&Umd9H5~#3Y+k#`rypM;~ z0mb5B!x|Rlq`Ge(8vTe?Sw!0rVM2fg1U355NC>Y361Jmeg}`mR$=S6Ok~=`!1RkL9 zIo4J=fn5d5V{w*yx{T|hK1ZJ+%}AdK%(}OFMhKae#scm+7EKS2ErnbC)#Lv$K>yFe z{&YM4)6V0a82@j3d+Q_q--qIV;@O7kfC*~KDSy*O1KdaP;rZh~@#U|aTwqQ`)ZRcN zUIq?QDMBrmXwACzNF{AClQa<2YsgY5m@u%YrU*$3wm_Oj{lz}u83@VfsK*zlr^N)k zabUqXTf}uI^M3Y+raJZHCOug|c-?K)3Fl0p0}&dmp+)!3Hw>hkP+Oe#nU^;v#Xa*c zYa>t?4~@omb;fY?a_H%W1cL~5*_(37#>Vf2?ZU~O90qh_gJ5KxBy$7yy%sM)(T)2) zm_Gn61`c}g`=OTN9)nI#k=#t^K?<_7aXB#pOVbHVwrG;VX-fHYBxQIwhNc#;^0>nr zLkw;l*H;VaCd|8^A3psWL}qHtWRYtfP@hkS=*IOWygbc`2W30@`cOb_4O#*B0$hr- zOerb#$uOpEgCwid$f+g~WM?5z_EBpFQva6e+jlQs<1yTxUcj`!gz6$Pn#?|ez!LR@ zGnSZKA^99X7kT~ru_89X>2*ShD+063ce$~vCI!Z{aKV59WkXH^cZGAKDNTI$I)*3Z zcvJ;|U6TnY5umMOYPviJ_6$A={ekefU}qrCCUwocyMa}Yb_)y(#v%o==sm~{(Eex~ zZjSv|zaQ^OX>cTCSg5$UBeOWd$S;um>;hajZhy+NxK-?qIC}J{T|e^kla#`DToT4N zN_A1(r43Ee#`m2{tXLiteJ}3_b?81a1&{1|AGG$6NxtozH2JomYxxPmeSu0MFQamr z$P}ZSvoX-E^wfB7KxSSwONVC4wztw@=csOfvZWrqVLTE~wq!9JQ*XMr;E=l-UTZgB za+K5FxT8c)Ag2or2&%G=RwmTyI>C%q6!KV^lMEhGhvD6H?Yx@jBt=2K!p@;I6)D4a z$K4WY+!Qnyrj`Ufn(NojJUH{kHk5ygITIzEUCyT6*zltb7+p0}EJ2co+r|k!s?OEP z{98^GN3no;jJ9S6zWu|u@4h@bI6MN*AVP4#JNEpQ?)?}?kCN-pcu@)BxRV!C!n>@0 zJOhX2->yx|zFhKNY8Hhj2~q{!9(50wTlA z=WvK)D&A@gU1Gc{q^j|`2Vs^V*E>PULP!4*XSL+BsZu&uCm2ASTFyr|yEy(E8f2Y+qntn8()+<0Qe%pQORdd+CmLC|G@zhXVdE+y&+=5j2-zw1IHCq>BlXEpbuN1po8)&K;6QKcn?M091&g16?Z5> zuGmAFxD^>49E}fh3?>b@Dg(?S^z5J~31xhzCjyy{FepKU9R-8e`M1~C&dOAc7qyqv z#KKKWb{15z^7&Kva(CY%dpuev4;doC>7(idYuR)jyY`(Lz=hKcHhQWqRIa@;keumS z7C4+q8j8OQ5pv9{VVWqs9C%$X0XWC~_wkk=h}-o)>@C(iE*A->zU-GR4jWpJw`7fl z8DrR5I`uVDC6v#H6KdmJFoE%d6MitEgk%Dw)i0Jc1;-@C@kXiAZSnSEPk8Dm!IvD; zb|NVF73>=9Rep9uQ5aBXIJF6V?A@z&kXn-i33a}G{$)z6Y$T9z0S+m(kjQ<^Lz(ok zd(ZKKU^f}*-HDVPNJi%*UkKkFs!0UB@wF4 z^Rh0`xsEtp6kvg6pA?M*dTWNVBU}#7v%#tvD3)|DRb0-YN}|HL3_FgamaFO0K?fZb zF!+EIpnH@O96{34{NTE0E+8k>JZ)eYgjs&wlgQMg1#_N@hyS6~Y#0Ws({6U?4%On% z%2DW%8{H0xAwIi0>n;K&)$Z$fl%h-iBT3#cp!9X+UumF2(>p8-<%b$vVqz|fGq9Q5 zj1^ROr_&t_z8>2YkV2C=iDy)N9WaGdM+_doZ>sAYk^BozqG9)60v;#7PFTz1Uaize z@dQLei%XGNML_t_`)_Zw94SRNZTc02G9ZBpHus4;!T2>~pGSw5iE9g{{_`()c;yY8 z6iXPmj$fjvg%o#cZb9iP_ec+(zt&D5M@TL#z#*iELH{A&l;=O>RzQUW4`yOmcn7V~ zP;5g{?mv=J{WIb}?yNu7?f;XbK&#_F5CM7=#ecSU9zXgR|M?LA4vbc(Gako%B>JN? znQ%31=*#NLrZY+E-`Z1vpZd7D{>$!vf|Ov3y59U5;=fOKcYF80`xnQ5pSYjX-H-eK z*D?PW0Jb{&(dWP|^8fM9lgH8g?>ybv{wV)HRQ#W&cWoOg{pjyRB>v%_UcY&J_~J0} z>g>h_U9+*_6yxUyhtJ-5Idhzn;d1ogwmhO`2g!Ir5u&Ugm@H^H48bvj%7hbR`0j_cOMR|w{Lbd-3urwdL_pI4?ScFdbm4ol zc-k#@r1$o8&i3J&`Y@U0+2U9y*!Bav;(v#$pTVcw-VSeptEc%ackh8=n4yH~`ta|t8guv8U;gnI zSc(!K*x2|F{0QAt6K{hXfc5JJ`KqioWCx@hya;(yoN9|TzG*gVV3$DBxoMBf$8lB( zfD+brwXpF`HYTY}%-8_;wAm`qc7T;C*wLps)p6>;IfL{w!3j<#8M{sS1uzLkVo8@p z(?Hwc;noNf$PILegP#skg&<)C3p^1io(G__%L?t{yX_yH(4+fUvwU44zNx$&LM{=s zR08R~i()#>OB>9>p;vrjT_aGqPiq9m{a8q#lmF~mvcV;AkIK0WYfdp)_%v1CPm%Do zJTWKvvmnX$uh7KbmPIID;S2cT|12TZhjotN{``Hxvh#0v`W*b*{;Rhy4-ysGsYZ?P z?mgfQ;Z>gMqIQ1)8Tcgs!dQWU=gk>J6Dhg-->M(drhl(kLEXq>vR-b zt8LYgPKl)52ASnugrQWMrIj5N7)(w{$%7z^Tb_GK2Wc!Gokx-`-D=qr#fQJy7dT}g zV#~K?@ziTGzBrp4d8?J!0-w}S)iYxDCTvm;g##Fu>5>q%j{Y zZJ^MA6|i-NoNq>j#oWJU?(E2G+(c0|8h`u+~d)%YoL+qdLPlHWF1}s2XN0uBnoYGcwd7&B~y z^M~A#n!qpX*gKOTvHfVk5c4*hDXgUzNNHF}3%C40%HlZrjE`K_7NKw%s z>U`qt*Z_?%3nIb+zX(ARw-J3q-y0S2t3uiBm@8@@s7G4$;2lJ*)ALF3n%Mwzr(lO1 zyQ|rC*kN{s$dw)zGnkf+yOrINH0g%BoliRwjD@FDjys{zww@5%LVTYyn--Vo0)++w zUr7s{Zyac>s(c)_l@G7?pa*W!bi**S(-Zl1N**}$T*8dev!-kgLET;hTKLJ5n4gRf zkFK-}xT9Z!rY*B#=_`H}C#;Oh>ZqG%ozoNcox}sfFVL}iT}}6{qeskeFX*{^91g&!4S#p7uxNLo}}{ezGoKD;x~o@a7YaJu|`A|p3Be3c5Al#u`__FQE;l+K%n--Du6m~N>dM$tSAB;g-BXSD9+WG4 zfFX0`XF+B(e{2Ht|WTjX5lK7_JIaSt%gDZS8&J_y}`n-$_PiMgxao7&?@ z6(_17Gye!Ds&$|y-hs-m6^Q5V^(A(|chBGA(~h3KMLj(sM|y1p76uGST5+6#V&oly zHW7E)Ak8#~d|2lIEdT};XISIlTxGLmo^m>*u@tlifiyD4g0n}IAjenhcEk@u%n_e= z>C7P94&G;neW@{DqpY}RvZDpY%vozrtC-}2F8+x0lTZBc$LCz{xD{69 zT3_B58z;PHIf0^eEkjvw$dWg_-ZRCd;L`*qk3vb@fZPqas%GB=DpGsjtn&3H{jT0S zxp|XrH!pV#^&wV;+WpD|#Rq;zXFL(G*6apRIfHY-W!ZEVD*zx=d6Wc(KO_9ahQYVy z%f;L+8R$(bl~?j?V2`l|V^WNeV>ZxB(zVO%eQ~+GOdsv=SL?J|`FE)PU|MH3|0QlR zqr9fK`C`bf6dqkXG5}sbP?S3EhLjXY{qcmcCKS$qfeDZ>!=bX^MO-7!5daSWG=O`v zvPnI&xaK-w_Lb&ucfk*_jyjyDJI=65hYQLV*ye9`^c(-zqa^7$8ND1v`GYOOTXBKouFO0)<4Hf{QYlQ=gNlTq&xSEZPZ{K~n zd+grq`0cwlz)t7Zd)`s>I!fMl^)c$4CSU=|z#LLkoYbGt5s=8TS-DgU8hb~2k#+IF z$eu12C|nde_*dXN>hu%^XJdzce}@RoN6*r)*8dYs+P&RCtNlMaPj;VdNB*D3J5N8> z|9?3DPrN6=4HSIW27>PJ3bmU$u5Zd}ULym+#zy!XyN;fN`T^K@$J3I^$WXr7!q%R`f)8Px?JR!F`h97=mwA3nE)6voldI1}aiL z0STH~1dA--H6veYI(+%!^+6i>eT-zPF1--_^axPn*_WjhfKj^`s^>@tbAvp z=NJdo&&TeId;#hkEF^!!h4|3eQ?1`$$q#>g{l7-f{VMN$}S)PI?cI6wI%8!bRM*h*e6iwBT!+eS_Kw zD|(~)0&Z>)k6zTgIAC=N_{W%JMBSJjZ`|*7k6qd{N0dXzB3qquYB|#F$L{uHeBy@9 zu*G}(vTQ?9(a}?JYx+v1)&2cUQ(H}Ux7}O3t{TP;-|`f-SSdq2358SFsoEJ0ST%GB z6D)UBvSSk~(wEJMVt+R7l(Q@e|A+UECJ+EgsZ_w0ydTC9~4@G&$ zK=yTIbY}&n>tN`TOB(Tr)=m4-lB&`-e5R>F3gcw6)6lOxfJk7`w4LP*oon~(iZ(*MsZMEeV1q4sl~%`s!!sJ&vsrZl#3l5u zL@gqlN)EPt<%FQ$rN&LD-n=U;a@%l)+H`vC(K9v-oQ@Sr>H`MvYUD8tmDu6)bW(nS z*AJ>Ms>NA4{3eB;>%GlQ`0tSPPS3Ba1PzNcq+=IG5LFXWZjg@M^zgec+b9MP!lyqV z7=srCtzY~d&Rw5KRxS8&co;tUA>O1Et|wT*c8T;fGW^=eE7~t_b(`Sx$XV@)YJ_F? z^_!#gt2ghyJ~-m?s^GQ*4Cx1DxL$VBo4m`1`Kqg6&sCRXUx zbcO2G^zm1qSARHV_7%Lch|8>@1Po$K$aE9_chPFu0LCVn2%4Hy{vU=1`XI`0{ZG+; z`!rwCM(?Ekc4)qI|HlLIzx#nG^w`n4*gD<1PD(utSDlzCN#Qm**j-OU>fs7`&&R`6 zkzXghM+5w-2LpTvu$=m(<%iTD@D1)bD(`T!f^%{&YK9ge36s6FT7E%v(Rg#~H?CQ? zzoO7P1R=PWzIlCsU%qN@+dXG?O=0Y|w)eKS-2Vp`hMP*S-QF_S9+`cymp*@Sxc~Cy zo9~aE!twq7yXX5~zC1|Z9sHl~Uc5UvJbwHAvv2lae|^w9x4a14CTSMcjfeQ_xSX%q z^Qd(Aneh!z3C)ncs{=MU-m}5+dCKaAvkHwxs9@ftiFv;Qz-Pr4?Ht>o4Ox8QTPUToTUyK@aFBo zYw(>1U%onc{$hXla{tTV+ZBU~0C+T_XfxM~tNC?+9oZFg(kpe0{Z~dI*YX_W3f>^= zKiTh(KOrmM)7F$vP7#7&e5dN}YL&!*-r8pSj<`ETt*Z+pT0C)=5lbLa&8U-#eN86f zMy@mhdc+oBQnHqh5?32CiDT01Lce050Qfopt?6;J1#}ISEyC~e=pODLzFhe(5nUWK zVPELBm#MRQb_{JyiYdO9h$#DN(M3Ly=N4tf@4<9=R%X%m}oz--kfgM=>}4)<~oeW~yU1 znBJ5noUKL(Po8%SMkq(pGOfi3D#6$Pv)pNdT-1 zAT7LgX^N~Nhb^cv_ahBC7CmCjbs2Ku;#n>4gZ1=J@QMl#ty!w+gKe-09{79hs)Apy z^Zeq0P)N_K8duLW{T%@HP0q9O%nK^M$SsiTY%wLypo_*3<=&z}-6}T%7v$Y#PjG$Y zm;80fo|TTnaQUe8p@d#oW*H&;w8ZLo<1>6|HN)Us#OWv&XZNy6={Ms5|0OP*VEfP9?AU&dhjUZ}`_;%rMDT@O8-k)|n zw`7EjdLrtg`7gSoTGojoe5UG0FbDI0m2)zjp&zmCL9fA)ntC>cV4%~7+USpS)c~7q zUxWPA>F5rt()efYD(1|!fz!q>Xz|^&l1@L|6xtWMvfQatY+CR6_w|?k?tL3;#V$r503c!8uMnkW*B+V;GC6sS@|JS(QyC)ouUq*^3thiats$)}?EY z^LPyW6?1SyzKYF2TWIfR!0-#;(@+f8PHA*P^Ls!w@Xsj_`xqgv<`geK*%wizF;ON4s*nhT$K6;a-5JO}``8?8y|}er>R4m0KP}k}B?V^MdEDB_Dky3Kf#)nwHM7)IDc{vKci!ceF}d}HE=QkkF@mtGYaiy#DRATkZjlDi)$FH6z@ zk~acip!_%iVUQboMDmZQsajP|<%^0;WTninqdnE)ic3R!JzZdlWQ(Ju^pzpZ4NboK zQz%v!01Yp0XRsY^5v%21NcJ`KdddCQZLDn)Af44+`+dz#t!mNjamQSG8FWN#~g0Php0G9}fh|5?ZB0 zPiDmXTu*?9HAqJ0ay6JvlugPhM)DRh`jH_0&?=S(2G|YB>dHp{BC-yg(wuaz0QZBR ze)oaj_2j8?T`smCnZG}=1%0lgCr(reX)GLv&de^|*UBjC_U18uPhypx?7OAnFOM0JCoY`6~mOi^L#qu)V3^X5`D8L}P>T zCS_y8O`|kVz^Q}uf!AQc2*H6=?c?bK5(oC+iOwa!+mV9~BB#lN;e&yK&7$yt$6;cO zdlNWft7S7^HnD#eW-2DVz$Pf|L$J+cRCd!Z^CnB5@{6Qv=0%8vDSny94>T(qB#*Yw z4Y-XrT~4qRn-jy4!3B9+$R6At?YRFV)g0E+y?VPndUW@$?*8;bPc>sx7;&7~vUQSc@WhS?9B>y!J_&V5MR_nO`E3LskZ< zGHaF14zV38@@U@4HN^Q5zN39VF{4(z8Nex`;bbonVbuF#C_9xtg2^yoo#n(dA=3d? zIMnD}f@_TsSrc4&1gGu6C&>c3$%Eb<%AHb zfH_QaP@>7el4wES>VKkt;8E0y(i}lIrU(-U+S{@O$CF|2+8t;U(+ZIqd1Cl{^UP?O zpM0Q1f!-kUWLr^@Ad?fPoyrXS;6q97!(Egayy6_Syk5nIh?d}!QAv`Q?g?OiM40>n zqDdilvM+>?jJ^wOm87g<)LGafYNrY_7Mu&>tP&i43aavtY}_I*Vn~w)BHvB!bVgD> zn*(0@0+2t!4kfm2UM=#bZ6I77(MhM>m6)0_M8=ctZG|0oI<^|%R)Fz?+%P~OoV)E& zRLgpH<73oj%)Dy`O`~Nk?O-Y|FlI$ANaZEhw-fquPW}M7)vZ(o#CY25om49dzONil=crdC8OZ11?LA{r!0~aeW`Q%~{d#=<<&NJUcm&+c z^Sh)hwoiU8-eY<1o=RsVJ+>1y$QI-S$gHXs6lL)(nf{~C_@b|3~9JltX%pBHE6?ltWl;)s_;>_j^wqN{3=Z}cE9OIb3j(8$nQP7`=T+(~uJ zXhxmC#&>h$2;1^ahN!^dV!hEhmF670(GHK5NH} zPZg~n+3Ddh38t6&ScPb)g_47QPZ+fFVH5g3m1MXz3E;1tqFe*OZw*fp5l8WqDQz?P4L|N71>z~ zA_&6d4HoaX_ng;UdP4<91F;_ys#Bhd;Dkj6auXMrr){;5a@#{zyF4vP&8$>*7KF&#dU$xDmNuE=1>Cnar-5`59jUU>p1RW93Ppk+12k`^->QhRR_Sv;XH zz;iiZZ`Dg2u{p4`O0e5pV>Q4-OU`Y>BH=qJ0u9F<`kU~e7w(Xqf-*h3;a$RqDQqb2 zN+FE#QN2X}5|76um{oTo((0n}f@3ceOu2aERi+yth?#`LmI{Rfw&Bmp$g9K2eV6EU zv8jC~a}R%%#667j8#yNWo34!4%)IFeQ11MW_huT7fIJf6Fy^nKkY`B@i=WhTg<9;$8Z;Zzbe$CXJ zm*~&QovhCT7c^L0v^0X@n=cnT^-(D_TTAF?K~tjZdJdai*h1m7xQqVtdp{09@g&Yr&Y9V(U1P z(@|ATLqQrSW$B>#y||&o8(0$Y*-B=j9uP3bQ#_|NR_vyV*g)V%n%NuCAZW<(QV<|D z`E^*^6@R=Frrmon%I$8=c>fk&G5aPEGMq!6(E>nelJ9hPn~4xTc@2R|&?c`Cs;5x| zlq6~j@hwvRw7$xRsp3-PUaWBN%YBV6@x?@uZM2wND zLeC(C?UdLvpyL@heaop3EM+yZQ&T3Fvwfft3XKH!I%sJupyU4Gh76`_51?Tp8$r%# zDC=SE3wOeK=EnCV2S<~8LD*St<}^fTRw#eXEAkszh!goEZ>`Y^`4^TA$4IdmXo50} zFkI(Ur5Q;Dcf`)7b)14lK~wkl5=1qhrS-CC2vNmJbfTS_NsPS(KKILY0~xE?#wz7gLE zcPh1hKht}fbn}*km&A83Yfh{1=uv{igd?l&7aT1}M+Hao- zmL=Q-dv#gn^(33;Q)wJKBpwLjIf5L|8`tUguGbTMBx!ZBu-)dSOZc$@iwo+ zq61%qaYXu<$qrSfQ_wIcv*i?z9z68*Fe6v3FyS)AR7)ZD=i0gmNRxfn z&H(h8WlrGd@6C1iSs6c!y&NTwc(f4LjMH;X6Kx+0U&qsJE{!|}zFSdqyAm{> zjL0FYT}vq4M)^v24S6czUCf)1F3DtEg{mKAU-lWIqPrD_n{i&%g(tet7Ty`!m+g(3 zjA~VN&gFJSh_pS*+-=CbM)$6l1D@o^JF+NU8H7POyWxB7%$d83Q_rwg&nv{xknjpg z{=6C8XS=|?<{EvJ6vBecF~7@v5f$0m7U^~Fs|B9P+YBPptow%V8-3RBgnx0sJB)SH?qcvqK!JZ@VQu)ER zf)1B(G;}bqF}%M$kn`*5%G-464NSqtMo@f03e(qI%bT=o=UK6+ z?|Y`2OSIKhg2G>fzxd8-y{30949$WIP+Q>5tsW5qtZ?G>X-=H8_jsTD{k$OHs?IC@ z&(H&1d)LR^_sL4_z73Ei2xUU==)j4AS1>nV(R|-+zM?*EKq_@>Db@Y0aZR&znGUOz z6@XFmzLCHAa<@P|J&B~laKY^AFTdc_8Sy`Oq3u@zWe*rYG(`F(RUqS*XKYTJnl0FQ>=z}7tSNP0Blb9&K;IyimJ>~(V17nPksQTUh^H(okfAi+> zXgp5VNO9WG?>3~E2W#$!e_OhBfKJYHXMWrIRgy=vQP)k);3CJR1PSdZ96X(ZBDI|| z-2k;z=ZPIoNjGB&W7<2W_Ik=7GsuI$<~b8$#n^>;a{M$96Ofg~GORKva?%_`v1@ChOF5!Lud(WD9PwSg8Ck$XdH zF}^!Ic-O<%JrJ-BC|)fIev!f-Cx}eWX=IR;a=k33m@R|lJro8P_7KH$(4oju5}#C4 z;N$qPEXZS92jLfAkSnF$Sx{upg-?@AWPrT89~qmlJRZZM*%UE2_R!1=u8NfY`M{7S z%#r&6b)rgZZ}O0ul<&6rVl)U=lky9LzgRUIngRo1PVj$ovs~fD8FqoZ3qyGCRQ8lr zd2?AUYZHWq)~_qhU&UCeza}UbLf^hr*^dx=k4_hJi-^&IN3>4ge*5C}iz7*GmzQH! zR=#FqV}9Y3oaWda(dQL7=_CL}^7&zHQ8+BWE2l%If*uowIXGAydS!X}BdE@J{D*f3 z`!8R)jkN{{gcu!d;bsudhQ(*dnqgg>k#Z-bHgGW?p(qiX#zSPVZ1+QDFo$)mEb_(~ zKRCGiP_$l^Q|e_fEdo?5;S8CQ&*&7U&I}2&VX9Z3OZ_&fh+2_F+1_*rLV$%sIXdpj zA@h~ESHbTy!0~pf2uvC_F$CGf!_9S7;V{y`c$fw|Fwzfy$C~s7AHQyf2pO34_HaCH ze%?MaD@Xy@CnOzSxuvLwJ%X{rj^b`nEAgUM-F7570O>|cpD|my{hJ&eEv`R<=5n1(wPknjwp~wsx4_Sv$lgIyFQ-OV_18pMl=M2QmXnMRJn&Dl8C8U}Ug} zyHuO7ku3E%tTsXV=dG#}m&6oE%uw)zV);l8en~hn=}e3%u@x_cj%)d<_ap+%cSKi* z<(JGkG;!i`K;ch6hY_NEQK1MZvr;HxKwl1XyO+MD1`w3< zzC{xXu*KOiZ!CZ=3UhZgWYO+_cl6Ei*N2DuZ(l@lS%`dJRm>Iqn(u!LrQI0Goy|_N z$pyUF9h+#w0EIKJv!hTzl0PqCKw29F051|e#qfF`7*L?`vjgW)@+(n%nTp}Zm@NuZ z6L@R17hEDkz%gj>aKi&ihLAI>;o<A)%hkrPSudC6naa9Z;~uWlI4*^h2vv!!wMZv zG1P&2_g(#&Z!R&=)tu!^uLxBum~Q750Va*XI0-uLZa^fXP6^2#;BJeSEa)8yObsLyMtAGzOn~1jX=jjO}bN&E{Q4JZTUm>2C zTeMOe%^IPpj|L(A$PW3kyw{-9<>6r?$!G1Phk;cIV7|m}+c#ywkjGQj{f6V~qQ2}KSR72f z>h}4wpe%Tin{<#GXC)Q$!}gBa6cV{KeeD$9J8WvpLq@N$N<>ErCn4k3f?CL&YWyzR zgxv^y%!R#{x*_u(f)wF}8XAQ3Qn$a%-|zY|)uQ9XpAR7wV$%hqwDk zzOR+tvfc6NZ?_LI1_!!^RU3(WKFv>-XDs`G|JtN|iy8K2o|o7uc6!Z<6LbsUt;Cw` zp2xRiVRvbEZj+yJ=#jN+r`8&87B>d);n3WfRfPSUo0Mt`r`??bp5 z4n)$64Gdy}WSR(Ew$P2`(w;N7vEWr#7|^q)5rCf;qA{FF^xS4l@_xYk60*3tf_dc@v#6@4uL zR!ZnuoCd3SCSCAF?Fw6_0ih-=45&BWg2BL?_Gm=Vs4>;L0h|ubEbzO?3WH+vSpl_e zd-NmMHv_g)RzlDytlh%&QA+1{Pw*=%ng7Tr3o=fX97y$C3fo=#rt$B)HQtxks{Dn9 zJFP`jD2k%tIqiH%M=GrPIXYgYgSO3o{wdGboLWsP#=$hKi5pAS>cw^!!-ntBNnO)% z7tIg%>R_CB9(2z(dWX)r=e{qxI%j^k-}K6TozrU?y+h}w%lUEbiypLZ{(JGb;oe#d zn`($)+Ob2Jql$6S+l{^%)|`U@R!8sD3XUbFwor5yJ0=h7^yup&cN3K&Bj5vd{&%g; zuN;Dyp-~6nckN&75g1Gmoy!3MIC)mE=$}Od2c99%2ZSb0*s$Xvrn|}v3ozv*S-QG~ zc+L$b(zFxL20^GEbqx%YqVqEvb&>r(TPX^+OF^ClltubSD*;@UoK7gE;k+pF@XGF~ zIKS?h3Hjl^6Cscg=T4$rqX#+1ms>qSvK!iuZ>^|~>CuaQsbb#@-F0@1uFy3@_m~|E zb7CMf;_+z@XE0&a#c@_21CigE$Io+P5P$CtHn_)`EtqAezhV_8LOuDnWY;|FsKFd_ z{GDIl4gE8GUowc69K+R}!F7OpR_oSG%=NHt0KL56^k+_oe+VJtex; zEUrBjZzu+1S%S1S1VNRxG@fJ6a$2?EI(6Qo3t3(JB;s6}K5Z8+aa%o~opL6ETNw?yuh1(!z;&>!bCZYStY>!x zW^4e8Ky|-z2jVldOw}fepF;e0ccc>(>X*-|ioM!zH=G z%*3aq;GlL(roK^z_{y}pE{_?^jr$dS?fY}#p+MUzv0GhNqFTri3f_C4QjQ5(=dc)1 z5V|D|QBxZ?qSLOFgemqanRHV*fV9L{n_V!?o<{ar4x;F!XqviqC><~a5oHV@0$d{x zi&pJMJ!Go2vLMSg>=5gJCT*7)5O@?34-x7hAOS8URK#JVJiO46g!P)lf4ewo&YH~) zSQea*wn4)JFJkV1@2X`Ja)cX*ecxa4ML9Vv!Im;_0PP)7-Kt5&aHo zK#cwDM$sEGHe09VEW!;cc(sPEuB?0m&pg&}aGyaKrGcoJnxezA%^qKLOtll#w2M9p z*3r)}5lpJxIi0)<+Ai>m0;2hzdX`PDo>N9SPcetA2uwuzCGy+40E8tyuZ~_WNUUOX z4TW?i^{3z zwiEmk`9gZ4U#y5x>owALOrp7>H$@%pYug!xaNu~habv>2{kpCu1(OzpfDUm1pgj_q z9s^3|1ik=MuQ`>+i~!X@Aqpx?jj4mu93Q{u zVjk&K0okFEO>0gEER^JBK@($xwstQ3JZeqB)aNK6t?I&mFiq%<_8sx%aQuR|^QIpR zlK@ID5%|8A1nhhFtb;usjr0wU>O^Rg^XIR)W$B}>JRE^@!iReuN>;~#ux$xqoV zEu|59?Ss;$zhZO#4SL$$uimeF&)W zg>m%J0@%Mo*q+vDWR|m7A0Ar}q3euK-%5MHzHh}oQHe9D)jqZcgv?M+o5(3)b(ulR z%EN%=fPrtX$>N6{s3lC20oV%b(fI&h1;F|ODs*ZU-_^lC8rqKN-yV%S$Nn_rm#!7Q zlOh&vlu%x0oq~gu%q4|p_yMFV{5JsRUW1ZV67c7k#W~55jJT-)UbVboXsIsqRavw} zZOzMSd3H_!S0_#z&8ZgbGS#R$*%@fG#lfrfw65q7=2D7)B|CDUbuDbO=E({O)_nX` z@0yP<6u4i?j&+N^n%Omp0rq3N5#Hs5ycX_*_%>MH;hh|K7Q*d-!_5NW4kDM5F!1qLy#pU#*cx~{$b_-o8e}uTo_r*# z*5Cn2?D*od?=rUOUBN(z}qsPU!gfwk%oEOWo^lB54?+R%r zmFPx>Agb(%r{~i-nZN@n1KmT&TlGzohxUFhE4jy(ZJCT+mTPCmrZ+}^ycr56sQQBb zTbZF3dG5{`@#B4)=S)kh89>4Z+$A!Ej!cjNBpsp5VSvEjNXiFzzR$BcZIkhs{66Dx z$j8*9-nu17lfa0wE0s{b@DE?UJUDm@fLnJ{KYMO_Yp-ry9po%XxZZ7}>RL(?I^T!#?_>}%OI4T;Gmy>cs2~ultHF(GeB9$-OtZFcj_; z1!lUf}SZ?Tpr5Bt;r3e=UCA*ImQ%9Stn#lv{H@^sFM(UyZ48)#?a@xPA817bHK=f!yZ=N}NJ zWq%f9O4I>$jD4UxFcQwOR~9bwGsXoGBn;5cJKAmCAGPlbH3g}m1S}D!`slkr?~~}e z7)vB2WFvA>7BxfuXs&qTpLmPVhKcR7zu-4~znUCF!K(7#$tArCTk0E1VVf{dx%=zU z9}W+mefREQcyw@hG_4)=_ErCh_&<6v+YVmt#){!R=Kqy_{!+f?pbLTl1f+}yFn5M0s={7}Dsk5^9 zy9elT?V;7mV}EQi1AX`hz<5IU9$4b_R6kT(N4gvpJ9P_VUVpb*Tmo;TS;{qo<+fO4 zH-bP#@y2>Ub=T*Zl%j-9?kItmcP9rOfP%pWgny{wy|fJ??EZssOK1fOj0CUKC?}_U36-jV_C3luwswycbiC z%O2m0N8(p+-k=icR(AT}&;S150o?WA!QO)h=kBWq4+ak&$cn*lv)O|O|MA0v`1AfVwd|+OlVTSw${}uY9xuukT>}g{%%K!@%8lkGQo<=+?iPzuxUN0Bb32m~caLNF4 zr+pvH8~Mcuu+p8U^0y^z8l-c;Z(e4;%+%>5ZeM|Ju(`zW6j9xI(}~`XDN%Y~&Tv&` z#EcG(JD&p<1AzD-oA8r*9YC{1FtsPZbydhObf@9&aFY2wvlQuq<8@rmGa1eOpTB_$Wz`?kiyBGz)eIwjoFDPwY=s8-Yr6m z0ugEaE_7`NI_y3PDL+0Q#dRxPGw3YqzT}D-rNZ&&cgB8V?fMluG9l{M@e9lefB(~V zHzv1o67!`LIZ>>YaYs=rx@4IXW1Ndgt{Oa^IRR}l(S3M5AL|c z&=jZ%fqC1{N$}L(S-H$JO6JRbSv*e(&y$QN%|`Sk3OoAhr%i-H(+H5RPjd_ObxxU} z1oN<>1@eeFPogV9LdUC`OqPovyVoQu(M7ah5`k5KB}bD+;lBLS5t{z4K@W!ySEj}B_DMzONgwQ>ll(#Ib%b;`Jwxcwp3E`Y zfbFy~Q5b{I$;xc8)tY0FC$?ID1T1i?;ML6fbK(Y?(D1CLI{GPw3aoNcFk3I*k=`PM z5`0cpX0`Z12~t{QRBS%Wt%LHmCo@PWvL%~EPhuJnbcleskt#=z?@FVAkfodxM+GnSo3G<2oxF0tCl057YApblZb}r9Tk2im=c zGea9>FWrfvaGEXvhQMCB%c&JY6@v%0>-^K+q2N%Oe}4i3!YJA9?(WVOM9eVA^#uNB z2mWUle|;J*TiCr1q9;F)6esg?K1WPBS0H zo2C_qW4;)T!tv*1MFfs7xqJN0Z=Zi=@Xhq%XN$afL?YX|ZRN*BzH%S?s%AFwrDH$P z9be;N+PCLZX+#540M$ZS^~IzaYPDJA7Sk{r$|jI2hh;Ut?rAbLQ8aBeys;>t4enyfj=eI3znNj<*v zsX^((T`8Njkvo3Oz-^5bJDD)suU@&f9v~Ax$;F>>tbSO@ACjp7Vum$hM~Wy)*hS(Q zN`AI%M};!~pc#(>1;F}9ih0e>*xYtyn~` zRS*{D(9W`y?7`51=CPFnRJ|6!vZ0yDEv(vp2@tXX9xd$Xao+7i0JJUsw(JPoq3H_} zH$h}hL?x8qq|e&ZU`upA+JuTPo{&8V?ON68J*?$k#TVsDI=o0Xo69-GK89|I40#>K z@es)d<(Ku=eSBe5EaYa~xkW&F>#NhLTfTv>Uc5Zm>*#n}GUICo5}B%x zQ7F@&Nvsga4}G%PX$Y8p3Gx|I9^t=`vx&L_+=vL@i^9;|t*8$W_N5WA0wI7Y6oYvN zuYtPE+^W$u7jb^7CPiFZZUt~|3`ct&xGp}3QaSOI54xCHb|yILxk&pnG1R0r_o8=c zEwRkhn3qgZLS5G9#o0OFdf?)qqycXSU+~D+fsimcX@#)>n!G&h$YQeq`LwD@OyqRobEVq9n zQY*X{!Ht*Drh5rs-MWh1YMD6;f)Vk*lO+R~5BVj44lH3H{%2H3gYg1@9x#FvP~f{G zAml|%WY@prSTm{3{CIyGTsvY*Ldb7oOX4L06nc2qQ-xVjzMM!4UXZr?uP}p1eN7D= z0A)c$%wzfjkX+;+9eAK~bcN$9Ov8r&{{cM)7Fd#e^WyO6&AUH&&OJOvm7x<8h2aVA zJUVknAe0$gF91cS1h>qQoBTg5Q@4ejbRW>>OOz;80<8e%`^N%LVy&2t_)_KdehtLi zXp~O_=50@q`jL$L|62a<-Fk5a@a;c>{QFk^@2$sM+dC2e_oGMd@{j!AABz85rk5$e zH; zYAUM#2C%_05nU23dV=NjmR}5tWbafhbdb;k*wGDaIZ|OxjRY#I8xlVV8jA7^#6C?1 z6)G~Xsc?ZfNyLn^Jpfb(%&ZA5x|9l%EsiCU7(&AVM4Fn${$xWiB6zJO;z$S2ZDES& zVGF1XZt%$doZSr1@-ipaHr&g^z}R5$CR)7cSyfT}S`L0E+}o8nmNN|m%(!y^SZzk&LFB+(g!*ZGN2YMQ<&mr zv|O&Rc!>ySnwJ5zdLFz0X!zoxCp&`6{CH}Fua?mS#Gx9%G=l55D3`d*Ky#%)FNUnJ z0MLM&U}`0Cni0P!ED>&oVA2NyDvv;6O_L$i!Wl%~8y#bGoxpaHN080IVLyBsf@Nf^ z7|gr^K4(B=03u>ujat?&Qb57M{7Q>Dk1lgeB9lZLfhm+b1eSq~7U}PRZ&07K=UPQ* zQ8lm)5GK&C@wiNHTj;n^?y=g{*Av33OB6B~(K)c#O_nov+FD^FVlH6+>L69tjpQtP zD!hcGw7SQlq;Xd003wPqiy5ME3@BioSpL-&B+aV9mM0WuC!ZFLUExmJA^YpELYLPb ztKQ!58UIm}|M>5I`oCNA^I3KFx)Rd&tQ-w!0z)!~1Y|;^dBfE~RHeM$?cx%|axz;^b49NQWPYCp1HG9+7C(1MvCL!@XM!_1C3V>C*vq**%G?Q> zPQ=ZMk%D)uW4@!@=U`S9Duyt@0ksTrq;JZ}xznVWvyLD>B>WH#4_l2{qu=1_kj0$Y zCP$vtyESJXDummq!-k+4$-s9_Nu5L#1nHRx`=%x|q7$R$x5~)SiXI>%uzDy0o7vAK zjSz1-R@~i#>8ke3og#54q4etF}ZzqO|~ix9|*IMKc7Iu2;o$naym0B9zbYB2H5Xl2d%jW*#u9w71(q z$bj1jU)&<8en)SH;VOgXDc|!3{7t%-KJNJ0+oOBw{&d=Lg+Ju>Fv;f+2miMJ>g~$| zt!j^+2WbfISvy@%0~w5*1MZ5W#WL@>#H^gX^s7aYewCl3J6q|_qrFE@_a5)Kzqf*> zJ&uN8Af=LF82o!1IL3m1-@4NdR(Z!wnz{%}iQ8{qhUwBb0kU|{Man85WhKGCqnFf= zUqjeOw1|&};Ya(g!~S!UEr0(bjlbLNzpckxvHiER>%RJE|9yae`(ZFzyj!)8{Y3vT zf1#-+04lwQXhwUN+52fehh*<K95At>3!U37K~C z5d>B6VH$j57X^N9f_7{G6TYY!-2py+-2Zp-|4e_h09d{Mx3{+*$MN5tCr>}de?P4M zXKK7Z)8ux~4+KoW-2-G;Ou$XC-F^6i77%SR{yxL+C$nR)wry;ft)k=U@^Wr|`zpY1 zI2OxTCL!R+3Z;6+6(eUTtyqFHL-HpGbUjW%bF|~boE`jQ){89T1H@R@N z$4W-T`yI$F5PM=grpyaUOwOt9Hc|VSlB3egY??=2B6xy0dVD&Rby&d_*_rV6I6V+F zzbR&SJH@}Kro_SQpVHy4NxD2TBPQ~;Z^NcMI5Mzn-kOaXVAlc?dFOMj^u3$|m4@}* zVL%(ACp8wsf+Y@vuN>ATj;g4vGV?ejkOEL;Q`@vQTa@hYq1aO5lg9)@NuXLh1dBUz zpj|N+l?=;x~MM)-FI^$RP>eiz#)aN*WvL@Xo!M! z7Ih7M4HyK>!1o7adAQiXGiY!?+zc=BU`a&l31XlyR5GC{Cma&BBl(vSC}>7MYTkfA zAta@;y3UHm08fb#K1IaM8zI|(>fcg_W<16;N^A;K?Z?FB&J#DQstaOtLU*O+d*Wh* z{ME_aG^I~>AE#?VDh6M)DNYiWWs)Rt zNMME1Das8{iCbCQ|)jN6lHP2h>`V|L{rC-!Iz13TmK z1rEz5w*}=KkW}@DcL)0~Upeu!b`3%@*@%AM&;roxQa!2m*oO<5=meWW{@nNmmD{LH zt!w@mW3+ir9&Gnv9aN|VuAH9nL`S$dt+5fxf`X$J-`lLe4u?B=+>N@|0WZN+MyJ8@ zWTgjhZ!3o#t@tzbgu`i*ra#2=86pRQ z0*tpA2&0IXD`xHC+8z)tLauj3$;StrN`wAkfiQx+`0&Cd@DrSIV21GrgZK>G zU-5yUAQ7hPzBh!iP+Ypb>{cv|*gAFbt({hK7=t>~0O(%BDhG#NusDM{&8f6Gyp@pO zFxDYzc@#A1D+>%yaK@wwjJ~_BG+AZrcX0RPDvo!$zg}0B>>*rGdbg~oep65uTBKPF zu;L>R$Twa*_rWsI0@1=?=uK&k9@nxXgWZ~$j99Q8aFUQ+7jHA)<~{=2gJYN^ga?)) zeCx{$%D{653lgsI4q((ctjO}LNYpO5}u<1POM z;y+Jz9__~Ye_KyK=Kp;#|1VE3Ie_^?vO4*XuL2)%D&AQ1xu!qRH;1N5n7*Ssj^(Nq zF4fxPx{+wA3Dp_TBLp5x>jJYVrf>pl^op+96LQfQXfBBdelnGVdfITX-s%md-mXMD%^ZwB^@{bM} z9*RAm1@LjSy`DI{J^oG_OYwJtyOX`0=w|I1PvXp)j_JA zpd>Qsf_T1JT_mfnrPvK%3s8gY@(JDX@Ca%5EN^@>T!zzb1z_Ky5d^5JE40I*6)ck? zaw>EL$&Qoa65O?Zv7zRwOHCJ8BQ;-%_?VGBd4S%BrEJWT${8HcLfsyWU_z9smq#8} z6U@Gh0MlzB1dFvG39b+xgW-r;;zjVHV7SW5A%-ATLe)+ehAJp@yLPPV+*x5x7?M!S z5sM3aR-o_iajqnMnz^Su+8Jn4IQ{k~9^i6zR?M6R^N0Wa;?)ZQVQ~k~vp26^y?LD; zynFZNUHa_O67%qiz4RHqC+wS3FwkLG+BO7I zjl=rUA~^pK+JO{4WA))fP!0;HY(_&lEv8T-Nd(k>R$&s|&%`E)BHp_)TAguIwX?1h zwCWX?<%N?hr5+wE#N8VCES;R^lZ$9A_4c}gPOn~wa%Lo63dmY?9e#AT4)d09v!d}A zfYgKY&Ueo3w-aYl-Ec3>uwrdjB#T{}i-l_nN-n7^&D^laL6dAGCPH<3(}JTd(uC{( z^R&-P!A#PKbY4yp@NZJHCI)9?5h zh$mn7$TaD`gWX~_3(o7(ZT*_PsXjXvD~K;}aR|k$qV`Bf4SG+2Lc)XUW?}b^vmlaa zkpmwJ2qL^B5=Z>+!Rw0ZQL+0#V_d*`sTMa6de@vt^9c+UEF?Fs(+&`w7Z`g>$jM3# zz>@HajEA3toMV0RufZo_^!Kh5(}B!ey|%ml(e?1pxBvBc_|Z9^cenqaKG}M@9ohfx z|8_sx{~zL?`h-JNqNF$bbHC&4(ULc=Ldqx*_^|fZdQ?k#@tu}ONO!PidLC2Zl@v^^W{vSFxu~j=^xkUmB~g*R@H^W z@x%oLT5c9rqa>z?a1H3boG8abis0cmj{%P~A_cea(?)Bu4`(O=8f4Jebf8D;Y!VX= zvfKk61PI^5we0d6vN_6VR*0uSwi=8rq7>Sf2&S#n^1IrHrGs=W#@9vqFVaIQ)(-}Z zv@*baE<|jFaA}ftXs&o7Vup?`KY1=@j8w1|F^+6|O7T=UT6rq5Otd}+42Ej1#Z`!h zQF)5{cB!U!P8nA^hlB_|Lsp;WY6;zh>mw8i73CZmP`XwUjgQ!4SUQ@Q8QALfAhw$- zL^3aO-d3Uz!3#CSy|PAnMGcumuhl`(Bvc-h*POJKH-N(-d}?IX_IRowWediBSrXwI zMg%+X!%mjsCc><`x%^BY_xG({*-o zZpC@Rq|k`-QJ{qG(6Cuu-PjmTHa5};HR5@h0@8HYPt>MlUPgpM@cG;Q=dX6#(3k9J zCX8bM(Fw|Jr7;^!=Ed9LiuJzFHlfiQ*k?R_=g4uP`BN~iVI$}_)|A?;JzYUQCX5`t zzt4&K_W3hLPokx5%orZ3-XRJU_%LLPGp@D|zYRkDn3bQX#Ka?*MiVr7zMj8HVy6gr zSSFZa25!xE2Nds-H<%`ban)msFOFa_xoCBdnF>q+LPtf(9-7-jG_?1$=%l_Wt9i|4 z*`71rhJ?tp7hk~0n;RRP=EO`RKcx%De2uRjhm5Bo zmQ9jkRHG*?CRQSEN21Yu_!@4)`1D)P9cG_pW9mI7y%7u@XAtJS;;J*;yQM#mY_T_| zj98dm=$dffTvk(LOe8MnJw$VNi)BEJ@;5|RI%QTBTZq}>74QF-BuC<(_OB4pBMxE> zQdfAwOgD;NthxUqY?wM4urQz6C;66H8S`X4eN8e3-HJvGxlLyyKXrKrZ``rEgWo;M z^iO(bJSrWJjW79`o*WNl$CKkrWJ3#4L-HH`hwu=VIY*qfX&fAs6h+C_&4?s~*mwsC z7+BB_c*YQzuu6-%gMf+&!rrIT@{39N#b5KXEKc*qU^@AN3((a9695tu%u>UQ^dpQb$oNu4gWjQ4tMM=!U$&?AkU~A$`tqVNiOAqU2=RCdloNN1T z^4k;cE`UeU!kA{x(&$(f`2Ff7ftUQ;>!GXBpR^cy8(h5-I$!Q?%RrAgH}9;!@c?4d zpOM~nVw1j!^=yCd)8?X~roI5D0JrL=>el{W64P7z1qPBuPhOaFw=M_4O98x!vxvZ! znGhQhLpjb7UdJgL{~L^2r#x&A0JULjpw0_qC8n-U$Wi^EZl>@84+g9lra&!PEugSU zr*X~u8>kZ|UzA-O#ig?tVWej_>)c)Np(o;>FnFtdy9LK79nyQG54JbAH<1i#duMNJ zJG)E|4v!wBL)ie-?euprVbq5YzoHqGb!DT!#IkOyA06azG^oLmawqb*;N^P7@V|Bt z%H2hJ)06o9UV(4U2gfy}FR1gr1Zx(Rf9ILC061wqNF8x`@I%>P)y`wAq zcmrXp#W6BqJL)E92c38-06=Yt8jx6JkauEQXgNH=Z;1y$3YmX++|GNRVw!3B(!~%p zw0UoZG0&UJ`-ZDC!{gCy10wr61Fv%#%=3sj7@?QoHvw8UKzkD=cd%wJyC@mKYIl2T z1><|2z|9>*?!FB0a@Iuns zhRDdw^3bAlmFTDp-5))|w4kfEXgFOon%Uc^dQDp~X>S^k_FBbY)mDj*`#bE5fCSes zMDfvTV_5E@{B$ghw0J8zt~~+h&wN<-&3YGq>CbRXs}S!wq(hcUmGmLKLa$IWH*m2n zCY_U=ZWbP~ViC-$WI{=*sD?IV3K5gt-A_{;IMv3Z^g!uIee>?w$w{u}ozFszn?{Q6 zAyS^lkK-_8>`c?+5UXuno5xN+hP0yNiyY{gzvHi&#SDLfU}MrR_mTD?@+n}%v77G~ zHQnn9`hHn02<#$Z?uW|K4lua^WkO}PGXw8j(+oOj<$|#QMVZ#v4c|K+2ma}2N)e(# z%(4>aJX>j)dj+v)3_WwZwkrt)L2r0(`dGcaCSAjL8+&9V$d~~VC6FFOe1YpJC-F_H znv=_~vRT2?;%QC%kR`+#nI2U=9T-5`ZfxE~%3V5Sddf5$vxuoQkeg@+n(!P%@$!65 z1P`zdG5F^CT9tVMT7exDp|{}uGf08nA#T;OMs5P3MPe#dYvK+-&%m--!dkk{0duCr zq>bWiLBTaZil~(<11ua_X1s2E5&@>) zLWS~?O4qs@-Lgq+QYulSTW-g64YMb+I^y^Vked?=<{7=$Iyu?2?RJ=I1d%q=gx_Z3 zU>cAATICYGb*tiB(v_`SAZPgsu`u91}Q~JXAf@ENn((}R=ig6!}`O<9T(j@bbR-ItOy;)*LXE)1sY@We0e#i z3Zu3Rz^ww?KDoQa2I*LxjUmpKKz6N4ymQ8rYr`v+u)YjO*0;}})j!|7!lPCWCS0&0 zY^Mb&KwtmAJZvS6gCN$KOTx=fruOooaF_=7*>sV}bxFT3PMWi3GyJ9V!r&b4y5if- zS1WE5*6^-Nf5 zddu%UBPGKS5!#voP+StBE+fv`FoO&c!sNmefrQcH^&amXyokM9r)o;H;WA?xHAdUi zKY@4;;Fl=XjjGckA`Lz>pyI{tr(*=Fp`GT;T==d};xJ#HcH!>n8rC?*r*^ha4bwvc zNz|E#>TKOAn|>fk1dm!NiQs}2lE}+mu9F9-#(Xa?!hnq@LPdtRR1BG7!} zRFE64tnLQz*+Yis3M8D~*sVy$tiIR*429R;Te-n4v%P8xk@z1on0ZXl4O-NoXnPPB zjj)F*M7vYpq5bUNu94wKRuM&;>;Qr)S}K{(ExjiG6{iX#U?8qk&KO0XC8QEVn}K%e z9=$!<8ErXr%GpG2mi3Mx$-VVzPQ(riRq)7cI>uyY_omO_BW+X4f9~Io;OzF-C=Vwh zo5h)l48s)VQ6(^hMT1GnqTu(_3maq-l$0G?m)x|PaN&EmQuS~f9ni0Du88(`qPx3uN8v4WT*-HP>9efFN~4F!*FIsb<=ZbCHFd@_?0AAN0%sgGdilyS07Jw_b;$qso|CDmE{F3*yyczzyhGP zd%qkv@(a8jx4c^Kr)z$U>OWkhk+#XRJS55gvZ9SgOu3$H|g^ur#=DtkB`!?yPNPz&S5jYbTc28Bd>^op8$8*JGZn6O_!nog5R`VXv$ z*Kdx}uim`-`rwFDCxYAVBR4ulg=WL_w1GgO`NGMK-u#y?!)(Q5^2+esrC9i4pYHu; zw@=;xJ#CTz^REQihY3m#Z}R#f$_QdqUH?~n0ZD9m^X%fU7mk)T=a@Y#U93(lLr8P+6h!frK(k$VK3v2D$KfZp$1v;9ZROVM4SRhWKjy`jEb3pqL_c;J-%n-O(p0O=r?YC)H ze>p`;nj{ah=2-2aUHt94FOLomkCYP%y1NH?e+T6RR<@JedA+myWH@Q+;rV4Y8P@07 zqfZ_Ww?Ew(r27cN?iAy_^yqw<{_m_zx3<%*tv&qz^t+>H>Gr2jx6+L}kG4Bzu=D9Q zjdou8^e&XVW{403o>HAXyUX5y7BN5o(L7%`NiZD)u zCryqGsUIUCchB91wJCydqb%sW_U-<{6cnO3HxTu*Om{dO4_Ab$sP&sL$ukTB`kNrN z4`e?sF&e8@14RrInSrd8R7w3ko8cl zh4)Gjf%YbPorRW$0w50zP?Na?<$=#&?g7W& z8FbLZGBkKXoRM&>svcL=8q;;N0viGWzw^`6eA3)wCeYbJX#mGQ;0!>z0%H*SzeiQAge*dgQ|Hp>=gxi6A@{^ia|E%y11%rz&2lce!2p-cTaG^Dg5w46`<<`l9%CeEC7q>

3dA^b^zw@2!DTXBT4LV=0-cwZ*@+uW&A~)Lue2!BE?Jx~VmCFB5dd~6inx6^ zD}2%{7tT&;Yj9C62@o1Qi`^~^xp&?b^QBvbR>ndm4LI~zh$pm+>Z_K3_8<|QzE z)jFLprXGey{#J{>#R=ExV%Mu~jpVkk{88cD`*!P=z;5e8aZJGa!5`TlgTo&BZ$sjU zw|uZ6 zqsQGoWSs0LW$2x5(A$RRKYP7{aU-1$!BBd2cm;pqp}NIa*t$>#>y|p7yAR)82Gr18 z$2snIA6alhe6V4KhuuD=aFq<`OO9T7bt4?ZI}{eI95~5*R+^gnPNN35eXvo3huuDE zXy_R+N0BAgE)L-X;^H!d2vrfA@}cBTarRX@28Yq=#nn7mQKB;>EuDcP_O{j$rXuX3 zr~D(^KMB+bPf@FoIatnPJkA|3DT%6AN<#GWD;zo&cThR>TA9Ej(um$tIIj>vcnt0C^rPb=cobu3L zb+GDknIfw-+-<;r6I3Ow80|X^c2uf#pK#faQylI*TwT>c_GElvPR4yc8SglPeS^B{ zEDXl^&S&BW8Cdh6J06SSpa#0xU5Ais*;pGh@DkkvwMu~%?dL;`RrsvCYi8kywe<-* zY=sH+t{y+s8v?Gr(1xXB>+WipFFX2$htWLfjygp+fS_8u$M-shQ?*2+v#RSMiR};p zFj?iWcu}VAcxI|G${Q*u(~g>o&uvxw2>KERIPqBcJk&))ZqWLi2tg>0z}{begh#Z% zn?}$RM8g+nM?K(D9wA$#WZO2#9R5D4`8d>1uFUQO>Zr`43&~CwgU+T^u|Wo!h~v zjX*!FgWtzGGLV7I+?e_mE79I-ko4~?%2%T->H8o-}#;To7nr= z+E5^n&ZN=_iV!wI(5rUdBVQiQvv8@yG>pLDQspT~6wovd0Ulnn-tUEJ{1)hpP zo769=FbCiypJZ^dO{ePq^*$5c28`rD)s4{Fk#CkDm=@gpc>Z2$1tix+8=zt>EA38Wv>GUN=L zXC}NZCl^G?dk0x?^0=p&hyrhVh}W$0ow`YgzIK8 zUdNsx;a~BPmuPGg9csn2kX-PH$=FHjQ4%C}BgtD3Mg(wVgWRQ2Fn@fNui7Tbe=mp^ zRt&WKH)j+AXNy(K8p$f^r5k?Nv6|*;!3je+A(OZ_1J48nx*EquMa6B^?s{OZW9yMw zkwIo@(cDLdw*kae53mr%csB%Rf7Z^Dm z8Xj)a3%FhvYh4>yh&cFR8(ikdzb|JX-C0ns5ves5%&w;=izTHQO!BCSrpYE3QnX#c zU_jCUj4tR$khQ=afzi?>88!mzbD&C#Vwqr669m0kN*s3f6@C93wC4OnL_}<5_*sz)SOZ zFqrl5Ok^H+1IX<}oDc*zI*MBxo8$cnuV&wiS|4UvuPcum&CO!PEoCuw3#G{VSgUg} zCHZC${KvJM7zFqoLz3W^d^nd?IfNrgWh&=1BuKLbFha;>gScIn1w6FxJy9C)B<>$3 z5=KW^%P1HA>=bDib-htsghWg7;|EEGogimSa9tNpFUA2mE3PE(ha2~Yi7oT54Z4Hy z&p9E&1d&`P#ECqV@qYuxLGBs;V)19^cEDL+Y<95fCDV~p#v|+;XBuGZ;*$~!fSNML z=9))rc8wm>ePiJ5e!k?IT%Z&835IpLJ^DoPu^@>A$k1TP(*fzG01yiRLz4Fum`-qF zB7i@qB36sSy&hm3(|HaRR8(9}IT7Tj&l0n_1ci)~(iC3A1GsAg=!8Jrgi-RH);EbM z9;P(;R7pCznN*8}t9x}(dfb35pe`L!MW6=3eMBS$dpw)OyX5v-^fy}E(z9?ON zVw0HK>2!QtgM&ziz%o(GR&!>Q=YfJ`QW~p+{iuP62e(^_JC`EkpF@g8mOj|Vli2| z$#Sa&yh7yto#YF+CaIm~2y}}|*j}}>Cj$aluj(>^gq@5v51^t@9)675sd=@}c1b7) zteBuk(rl#QjbY62utN&h%WMkE53n;ZWa*5A1iAG<&YOHfPV)oOJy>U;o#nWI0Vl_G z1zh5zaL3pwT?&PUsk{!@X&`%z>_ODe6cC;U?zA|gimNq4K46NhfJL~QJt)29^QwPI z0k3dO%hBi(8z)r-Sy&ssnslRCEc1;4<+Jv!>!LPG+imeRIw|1n$=#r=iw2H#>hYay z-%dxkE#=5}KWv=3)t+yRxVKy|v2<%0mZj@0Y{RpBp}j4q=<}>2NIsblVuMf?JyNFq z`tw_*)syY5t*y_vLg2jx4|Kon>~3vI7kO8J^LIuAib4#zf1ED6VY+zkY@f;r`ZADD z+&jEKk_oZk3-jxv4hL(O`i9^*_Fp`FhYBA>kZhillx!`fS?*Z{Bho<7cYw~6sXFWA zH7I|TUX>RAk^|Aqbt=PH-;|SM7&{Paw{_Lebe+3a37`ded&x(RNxOE@HD2xaot8}H z6savc`iOoM8e)9HqpdA{;M%SX_qx1&w6-;fJ#05bcBiM=?koZk*qIB)`o1=q0 zkQ%{5U5|i@F{mkRKYIXz@;sY+7g;NvGd*#3Tbh#vc#>lxYMm3cm6opZ6Wfp5n4UPT z3s6Nj{4*PIpPV~=YdERkP?v#(!H-0sO4K#sDqm-v zu3mCZi!m=m&O60kDt)pjlhXqoSd$^`?xKZ0@e$0lVI^ zM(0o8CAa~B+B&(5Rw1rQ)-~k-l=rHrcHIsb61E|UFl&oGZ@p%2`amnW%;9h?>PxGW zh%=$5iwPSG*6UH627>{IiT6_QSPa$;?<{(wQ}$CwE}o z132Io%SqFECqezNh3=kiZrK6SGc3ayZ?!samh;4Tjfn;L zgm-p`;KVMM$wMeZ)^BH|n&)MWJOLyf26Fau7}cs=YEn(-E~{F4dAo1{|R$ zQIQV!-3Ys7lxLSl$hiil)pbeV>kCte44od>JQ#373+PMIw7o>SjUr&d;EnJ`APJC_ z9m>EK#e^0UuNhgeYPaHiIpb{DawhQda*uARNi}mrlhZ~*#|P@w)_)<;$DG~=);2^M znB;>mjCMDQLRgkWS@VTlCHsN9}Jy|wNd5SXY8ER z!cbo_i0YWXU7GGvCL{|)q#i|s+`t??dn;m`N7yw?IT1LG@Z~_UQ;--B%%>bnmR|24 zAvyN4+yn=0-_ao%E|a{zALNK@7<>R!OJzNMpc)dkC=FID5wzqeGBhAA;&gowxIxX9 z_fhZ)gV(96B}6L#fRMBq0hqWdG#nfzPXOgD<&S{9P069qjVT-m?qx7n*$FU|RnPpg zqo2an?7bzWcs&!elTT;J)}F$CaXKlUoiI?=Oz>-{x*&CIJg%4J_3`w?_!`FJK@xr+ zS@q+whyr_2J##~bR`qzyXLqmrj@?g19r&0stiO8m`dRw!?X!e0lEaMNCLD}`We_E! zR+Um%o5^B6IVsTB0WLX`9PTMF2$x_INtKpo&ZMEC0yn%a@%A+)?oJxtBLH+ji@#jm zQIAN`#_f=iy@ox()7)*yd{G7fSkglfKwyBe>WQiZga-$$j>w*E*-mz*D>mwzaN{R| z6*2OwBwA!@XyM8{2icBNc05)%jj^(BCibl6(IkHwJ&R6Ig}|$W@k_d9RGz7tx_Lr} z)tHz!A9QxXKRm<%PX6I+W+&19@fUbC@eF~Oz;oc(A8e!Ke|-G+-{Bvu-Qo6VXKS>x zIjtrHB)K^yRl;o(NH+bc&)9PRo;-dG|9!gk_z8aAe!PqSb$@L=cHeD3e!RQ=bm#Ho zZFk+y)|0KR|B-HehyhrF!Ih@}%Vg2fi7~l|k!Hkz6dqQwy(*0j8ui9CErrl{9_<=i-9M z3~DgonXg?k;}Vk%%il?gD+2WaGU5y(R{7~E=p`6Py!O6-@=$|e1pZKr$4Sl|d*(cQ z{m5q32+04F6YhWm*?-LK;cwQoe zyHooKnhUaple#!7fff@J2}C~-8((w3Ie8m00$a~LiqHQBz``Z$}4N~0l1q3zO@v^`i1GMUN#PKB*lAc{VQk|yk z-{gU$lq{<}TgU~}+a!Mj$lT{Z9qCirKy{|5C-KZ&6UQj$$dE^7lFhS8(cIWH^n}$t zxz;sBR1D!;2h$6LBW`OGh66E~Fk=ZbM1pAs=FsQ-$L|I9KE2E{%nmAKX*IBIliG=f z`ZVLpsH`Tp04JEbTgX)z>^4ZU0XPoj2gu}AEO7_SAWdh-%*RtmISnKxTmx=OAQLkY z;yWv*WQJ9YDD6YnI!I*UqlD9zeHu)YpFss42pjEMQHD!Ft0H*{eAiKYoD%p1N{&p| zEj7nwmE1O(XpGRhNLn**L32I4tAt14l$gDD3Z_x{1* z`oKg+0K2-?2r--BgYjYc`*~j0fDlHBF~g=BVn*q*oNykdP1bV8o*U33MdHwqR^d!?{g?r;oa`-nkgm8PXzson zgk& z{-Fvcia^FkFrT>U8PZ(ajg8;+WTH#%lsqLp`r1Eb4O4~!wE(Vxv(wl5zyPdMhZ3&) zy-SCNn5TPOUoAYZ%u$s{+DmKvz#B?3HYi+Xrz+&h(dvb!YVcA7fbY$Dry%H}X!g8H zX=~6@-)m|gEG=9~I?ej5;>yc&p71qrB3_?YC>Sm)r**+WNDD0KSzu{vfl=Ux9cez9 z=hDq2c*%3rO7g-TkJqKNzE1Qm@#0H67hi%B7JU@7@Z#F28``4_BWAH&g2`q;*ujo# zRTc~k{}XB*O?EkF&m^l9KHbGBCg;_(PN3u9>PEkQ`2k&pv&(E7?4jLaOXtSIz_I1P=CSVYW8L3Qyd$g`Z-Ma`GQY-SafAuGD`jnrflxNi z8leFWl4ioqW4BFKn`ju89S!tW<9Nh2A41kVcvmn7#bX_q=U}oL^$_uei+Td_PS`Y` zUrZ;*`o-_ZHk};;(>;K<`2U{lY(0+rf7{!S zo_zHGeTaYib9C|>WSvg`UJF_YYnC{JKz)6G+zm3sK_dC)6A@H%%1L+IohZ)$y=lHralOlvb%GDGIh)Gee$LpM7 zjgeiTqq3~Usc zo>^l z;tUn*r=+{`zmbR!?}kxo-_1RA!wfUX_8`Y33De5t=HZ&BGJbb*UksSl{emng0L+|n z#Wg^(-=vGGV<)-#FpCbETF|{6jd}Og#;%YvkDi6bY)p8`!3#(63cPYKr`vx(I$( z|17pWaL-_Alw=zDCDl~!T_9pAg*s~39$z$jLKGjd!tp>Rx6*sHw%UNz4dROT1~eI& zifJPkgX%(FfQ!c6Vrm*O8o+1^Kb>A0Tkir^f$vw)ihRS&!5IK#K!qCDk_}jG@5nKy z4Z@WVuzHgHgG1v=iyaNv1)RdoX?A+*ERxyi(iw&MblHQQu(*lf4mxipa|mia)15)u zGA`Pn|J%b)pQL2w>Jmu5dhzmLZ!>Qu7&jl$w?A`7ws$`HDIHN1hvZ#;SzSe|nby%A z*0Z6kyR2dYSqx2euiuc5{i31Ue^x4XX|!_z(@(O7C1fVT8XTB}$|A;-vwcA1ui#1V z8Jh1AIhuzO^=~Jr3#XJ9vl}&cz}}t*PocqMAIKm5BJ}`u!p#Ya*P=ZWq3h?IKOPiFbdbA z1IQ7{H4uObrAfpp&jg^58)JolIqHb>FjomduV16fo?X=dqmCVGZkYQ4 zi2>~BK_E^BE7b#;<7d1G2I7PeQ16Y6Z{K~nd;IL>i-Xrk$KM{k-hXwlu@U6AS|r7KQ=Z%l!JVvwT%67`-ayC zh7vI=9W^FwLb{Lra4Xa8hlag<{M2PlRiqmmuMS?ldG{x5eu51I58*{35(F^t$q|Vj zh#5u$I3^28m1=BEur+6EoZ`N!$}uzpqd0{kzgZ1gi!fJM4`3#NOArth$H*!XK(xoT z`T&viyLNMH7aI?dZWm9u?vu>o=@@Vd?Wt1=&nZ|yXGw~JnNS>%a}O<;LubJxJ)krl z)&(k}nB#}c1hBc-61piT=WhQYP7FAP8c8umS8U{0)aqM%bO4ACr64lyYI&BBnP0;i z#Y$)KO%>QAskV8gd1DahZRXsBI?(N6EFKTDO;T`hQ@BxL!Je0;KJ( z1xVk|Ye_J{H+Fr>8JS~IoHiVr&E~}vqpxmNa%~9TozPvJ)hL1ik3Di2dxH`|O`K>& zb}8BO8ynQX1;9opt7Q;O@7L_M1^=S0^X9?1o!8)yGuks4od%Ox3in)U~P#yy#D&WF4i8|mM;bJ|v)~nf4fPpZ6jG65f zaUvz=2{a10goP72k4Pv44aYbQK!r%EMLP!KmN?LpPzeL&#iH2Ks8AX|I|)ld2b7f{ zZh^3eZVCGUz(|3v z02LlQKg42^V}L>TY)X3;okS?EI>ZQhA_lFoVKx-q?1FAI9;0D^UV$;uhPu6m2Lo<3 z=(bzvNSNh;ZU|?*)I?o&c|EM{3T@M#!(I^^&I}p;izdN0B)~wk0w6*LtEfwQiEi3LWNZ{gKX1XC`y(&P)s8Jo?D4^ze(kO;-sS!3`S}% z?X>ZLwazo!;a4Dr(&10|Cn!fdcQd}lr+SU0)Kyx;`AJ1d^v1NaQ#x7gflZpo8Ue8+ zFtzK3!iy~q7!R;G7^sSdS_TouN~NR8^1!LMOYgC&fxzk9ZaqGAhy1nMLVJGq!qP?; zru>FA?kcg2%QyKELmfDzA)^CeTf7s{1ihSnST%_NNn|q^w7z6 z@!6ppabB_NhrTrpE(^>G z3xRQ0&Jrb?B;RZmVzaW6@>0xKKX=Y7Jqi5@0-x%S*}1+TE#oRVG_S#*I45M zTk+1?2yMl?y_lO3se;9ji*8SHadnFXeQfZ=gsO$?Bk*+?3{0V-E~`co1Wf@u)~^HF zPr^m`?hHgYt?}4m9#N-vAG-r(GGAwd;RKG^jqhH+__y>B^($w)PMlD0ZZ-y>em&2e zRg^wkE+AJIH3`5x=(WUdGQ+`*VBz|IuUj ze_{N8`{~n1k3Po#KUDn>&9>9rI4viz7nAP#9=;SeemjlJ15*yumptb^h5W%#}CwuM<;YqZh`R5M%v{L_df^BD9I1pHk=`8eE))xN$5(P$e43M z(kvnrkbJ_dBV|HMzdO>IeVTmQQJdiDeC$vpJxVXXuBxE!wOiw;{&6W4sMsO})4Ww4 z!Bavfo*jI0C(;8MhF9|?xgU}?Z69v1v^bfVy%Kh!xoig=tZ0BP#2rS6u&fB#cCFjh zykKIkq30R&bb|-LcXf0|i?ay>1fvrS7b3}mlF5b$Xt1(s@QxSGD9h~gar`PcBB?@y z0vdqrI|Xl&ELHn#rz>9+^CWm0tIU*+#&sxn8l!}I+@kzMxNlKI}L;Yiu@UR8Xi(z>l&;YSMQ>`J`41 zw{yj#v5_HTn=7T{%f3_ct?#WGvjLTK`7)VaWV|*=yem_*$%BTgge`pHWf}n_< z__@hxNVtQFG=d=v$%>IuQ8Ka1)OS9?+fK8E`qh?=6W*V}UZpaj=tXPlyqnNRPuUv` zIU@*BfIh_&a`NLgL;GNX8w4;%FA1nyWQKM6!aOMZhhSg;rXi+q49qG4-~qof+|c=- z1TP9B3mLAt;fWiDcZd6kYLyWnx5VLOXeX|N=qQxzC5$$h)fco&a})|rIs~LWWK>sk zA76mOB0lvDUjyfjg$23?TQ6e@R}JN?7O~Mfh{SOyRU&D2O9s(?r}R^S;MEq}E254j z(s0ZG<_)Iff<=gDzE>FK!Uo?sX>fS>67RmIJhn?x4*&}3E5Iv{Z99sy+W2S1@y3-n34;aYrgp4Au{_7XY#-94(94scs7@H+Z)f7ZOtF7q$w(;nn0+GohmXr#km zd$vP6pB*0jpYIM{KReii;i4=wDxA_W^k33QqM`rA!N0xT+ZxbHn;l|3#NKcJ{owT< z_x6y_;y>_ORg>_3ylH#Tek5K|=YNZzD&NzCp^0M%Uh~6WygoYk`rzH(j{lVkGgdyQ z?s`c5gYWM47vWnm0=fRa^Tn#S2ET>jY_9+|nk$XGSinVspe-ZU4P~;|G>-V~6`c97Ft`Kc}+up>dL!PT4CsN&zJe)UEq!5`k1C z0hf?~TcJ5HHjUFz7gJAt0hKgO(E!dpxn0pEOhqmVRTB`pL!s+TM~Gc!WYyygPDOvLn`H?HBF{YFbpzfIrEhj0 zt2AW(a2+MSEjf6CjB=^(H)=pj0Z6<8pb-)Xq6rB_=Vly_!`06VANI@;3(AIN<(4(z zT*+~#=|2D>C1#Q3=7b0N3~ma23T_qA{hG9>6y&PAzL1YXfMaf4w)Iygx4S^y${cKT5hFr&}L@G#!&6wO~xQMOSW&47g z!UNV?wWCMJ50awWO@@jH7fWNl+z^xzx5NW`AI7hxl30;Wc$RCv_Dj=)V4R}s=$u$L z+KlQioYr=473OExSswptb(WUC^2_NeU3$trbd>Gebd;8Uawpw{--2>0@2`B&5>x#n z@%zN&SjaadzR=rv2i^>zn!Ep4l7$z9a7J1Sb%c@k_UbfD;B>(RA{tSekc zoQU;V613N;Y}tWp>04gQ;skht1UTXBX9R$$1J)GlYYB8Ht24!}c~YA)AoT6kd~VaK z65YVWlGCf0j8yoxA_UkC9UUS%I?sr~Sv8DgEgzkYBzcGvw?^*gKQKMyx-jG#;fdbB80!!3ruYolcC5D+w#CfGfWq$$xDw|nQlCxkVBbR@C& zi0=AJ*GozCguRp|#gll?dNnXelfjS*Ec33b2An`hgQNJ~*;Mtb`ya5||8c7qfG*tm z589($H4e3o>9(>|^IbAon1x36WWr*Y1U^+(h`ma$%!G5Cn-m!%lx1c!$|Ua786G?0 z{pQtcZ(kX3nl4LdjZL2Q#GrE6-H%tW$bc-NXPU|oXcEaH=hEd{vZWZGl>to{u|hA? z)M~#!7F55YmmGJ%TA*A{EQq)Q)~?IKp>Xf9)XJn^a3vf-+0Kd+%#?J^Z}NZ)x_%I! zie$M+c(yN$xX8~i017Ni)f`GgsLn{DQtKL)YU~uEt+aX`Lr-?P=2ah`5*g@uHnn(7 zG{Mdxi$^RgCr*8+dk4%v8tSkJSA!kq2z|dukpv2n?>V1`N+)W!6KbvCkdc7oK!{HS zxmT2jgy~1|a@I0Xw=|l`{21vpO4r*@K7m5US_?^d1yQdtM`)VmmxTR|7>|ti9OeN? zA{OnkIDuW_%iQ}R7qik)qHcKftD39fZNM%pcTIkC8A`1JxgDtxw@lVtx=EB33@MTzqzE3T(J)y3u2$>5o3dvHm7)) z6RxK>bUBY8$`LnGPMbxXrE*$O#oh_SlhhYnt3Y_Bm@d~bHcIb`0Aua(I0}icm6F1y zRQMFofUZW!ktqge3i{f;xE1`YtU$)LdKc2(k!aBDhZSBHiR$1XDiQbt_7gyQc#56^ z+;es- zIHjQP1u#+1!YOTRuqcC09HXw%LtSbkd(k2vCB2l)sb@6B^h{Ed($+)M2cI8)_vQaS zcy{#rXRp8TSN`?^NtZkJlb0I}-i=cU-wO?I63RJ$=yta(XSQYeMkse?`mV}h|621* zKeAoQ97J=5U|tEsS24dgtT|+Eq#^Q@vfQowVtFjTn~r^k3oshpBEy$hKE#{%{Wc!>9sf3ALtfKvv`L)y5HNOMu3%d;VfrUf! zHG#LO27yD>ss7l?tg<3ABk9r=2>hFW|W~Hwcr_ zb$+5o5MU8XYM=#z6%f>78rP}h{fsmvhZ&V&?VsHE%3;WOBVaTD(By02(bwnIEKjr{ ze4IP)dPn2=i+3~_&J@^${?-uOzhkl(?naB{)jkV&KSx%s>vYE<;jK~#O(fyEaVJ~B zG>okpcS$mc-ZI*o7xP1Wg?+c$?PZ|IX}#AMTKYArPDf}+n6;g}5=&SmiM`uMlAelx zDAhlMVp?xgN2`rf@J%_1=7l9bFN|sdeL3l3pa)Q2&x$%xfvLoEn)uVi0u`;w9(hS9 z4UCE0V|1h~qoV~Tm)%Fwba|MatWp1zF+;Ev7LBUAQlw`IAm=3`p{?eL{Hd9q#$QQ)yoddA6U#DS4*fl!htg22l zUeGU8KA3__Je@$QvrzPZ!n6_qqX-8SK#XFz(Duo=A14;WAp0s4QcY|wC0E{OT!gkN zX&C6VeA=+j7k0WQBAp5cI|Mx>zZH{>34C#J3CAv8BJfF?(`*x+8S$X2Vphjwc0;?$ zmu_@qR6_s;_ldgEM2WpFh^8H$p0u+;aMpvhjxb^9?*~x;4NnO|f=yr>2QlVZ;m0fkwxk}VPz<&VeTAH00|?dvz+zuw$`{pR(bUcLG5 za6GmQCB41~rw@=XVh8}mAly6J0zU-U`ko|K6O?OF!MX|!*uOB#CKm}wNI8l4#AUp~ zMTW4!?g@fXA7FFe5X83A$q)kDI_xL}MR>{qiQ|BVk6>}5floYSHT%LP{*sa4(S%y9 zpRx>*VriM@b8cz@?#>iKrY|#=tjh`bB!I~J%UIc<+_r4IsH)W?}4(KhQ zmVy)|96y;@^FZ8V81JZagGA$&Fy*Ryyn1p7GYG|H3JyR(9(xhEnV#ZB_}ifSH8eoT zST2^{g}6h@CiSc_6o4_~S~vxj4jZ!Ar1vJ z9xZSdu70iLMAz)YT7lpQ8Nx(efuB)N9>C>L$0X@=d+}p%F?r^w&tw1B?}MAm>i+i= z8X)<-TknXjTr;Ac{3u<^-y;eh%!8J~MQWp0*wzPaWrv@7tWRByoo?0t! z8x7JPoeS2N0Nmk==BKBwy-0-pn~+-jUXRDg)`yd>aa;f)krX{o6A25 zl0^r>W3!0ba6?SAB@ba6FeINYQ3>-8Fl~z~!$qmuPcTv>T?~Al6^4a0E^~wd1-xc zh+PS{dMH!W4KHs8DI?w`j?mR7rAO{}4`y*&ku)dNtuXiW_+!%R%zI*pVu1d{S zN|*x4W(9d}6I_YDrZVz+vJzv8@ho;BXk;EH3TfyOb03n}izx!Ni*I`|Eo(9fPu&x9 z^^8ywfm0Sy#cxS@j7Q|Ez34KT`i!Xi1Sycl))@B=5BUx zxlYa>@cc*@1Y%JT@Iawo&Q(?tS`}u>YT78ic~K{zyb_Rq0gg6A6LgbSBd>UgK1^A2 zpej0TT(|2fnq+80Iyol7q7qac^sG^KqhPex_4zvg$)iSynigMr5-ky@iJNO_rC_J) zisp+t!^XaCRv^pV`QVMEH|krZ`vP$U(npo(Q?m8X04T2As$I;K=j%h#bjh)sTjX&y z+ZvAz!Lp>lVKU3hGj}{<#d^&JBD{U5j~w$w-LeEoPG{#~}GMA=26%R}k>srnwR4ptY7&Rc@17=_d35R+nX%88S zI7XUEgNRk8l&CBPaMSsU9>KaQ8U}ewm=+W1Gg+#Wq@>+Wf_?0+p3iXy@OX+X3i<-q z5>lqXNlu8%6?-h{iI%;yU|=kZ>;j3Ma3;u6<-HzHLF}{7gOY4euG1D58`fQXMM-0t zI1BL=RnSz8#fM>1JHKtw1nHWI9)thg&Bq@8r|A`J(dp*T@(eKYp6>4U*?;ga#(#4E z{U7P>NBi%eJ^#)&%HRJ~9I#vL|E=wv7XR1I)2AQp{}00d#WU^1r?Yih_B{p2n`+W5 za>zRawh(t#IVH9^-%GdAo4Rn?0a7(P(+v4WK6=&u+wA{%ZhwLOzq|E#H^Tqh+1Y*i zk^k?5;s4o5-h)yB`j|dHI81u|dVh4PFDO{M8URoS(V}t!qnf4Hkax8xoE9%s2Q&2V zy*@Tf>Z@m0Zx?$di{t=gdhbstJUhlw7>}_t2FFn zf^=wJ*AiyOpxlyNWxzAX$WQ1HS%8%e?YM5FSIZgXoUodCvY_PS#UxkqPzXG@Hg}%@ zUK17wK+-=IlR_|Ev{vw|nN9+yHg(hc`6%a&hz!>D7N?WF@slTyKOF-y>o;iK-gvG* z=pDQ`(UFh}D`W1bM2B7y+@Nrk(BcxLqr>5>*r5sd4^AvNt$WM8z+1>ea*f%re6xTI z!67_+?GetCYb{Yi>nmOx+oSCPIZXka!n7dSY{9iVBXkz)iPX6$_7A{uKsJSI58MSn z0pt2GKnn7Fn#`jP2M>8P+JXg(?}wytwqwziu0v|A*!&E+pF99Qg@Y?QYDT%5(yLc9 z$dBQ6{mqJ?A@(3}UQvw>I~f`Tsi2v`z#o%i-2}C=oI(~5*CUo0a5EDp)T{ zen4);urU?I!!fY~Z*jUTCzO`j7_<_sI*RL_QVz*y0S@YhP&V-U zw0UXm+j)#naCH$8e3H`h*j>q<KT)<=nnQZNAga!p`FJSD1+ga2kso#3NDsL zi#qiI1JgIRA+GWp4^z-iO9BFJI23ek2{RfD)*&aG@MuvD7v@NS=gJUYOTVXKz6UXj zF)x*=)YJ7ZsiE>-u2VCrc=zqNjrf)4s}i47JRtZMfDq)rSadd*kgMCjm`MrVtSQJxJz8re9YhrYC>s4!ebaisBJ&hNW;rTH_wF1(h$_jmOvwV7n@F`2B zuTyy>tjWx(Q!1$#W&$b*Fz2vX$}veLCb$#O7ZB=Dnbo6pt~obyyV>W+abrRwRBN>? zaZVP?IV=f(yfqcxpw-2w>hVbcLvfwm(9Xv5A5gG7gHZ+vIk*)ycdUOnD3Pu$bG*ZF z5m!tQ-VdF6ZtdiY_94n(V_6#Wq8lx~mZ)rcWQAXiGko~KaM zO#B(R^XzL6(*Mt!*9SsoGf1eMMfirir@wB76Bze;k^?VkC6sKCr)7^fd^Gy5-J5D6 zC3FY$Y^KgcMcb%`84TPF0?|byNZQuMhNiq7i!_0PnX)U-3Z5f?G9*@lWYlXbP^eGL zp-yqQ>x?ua8hF$}L@uL!!PD-_#R#Y{ z5roRM;I#YU0D5~6%=Xpe z==Pu7L-B~Y|GjV5b_cEH`?Gh9U>WAu_wC!`zP_O(MXnf_8Ns;$C7+-eeQiB))#Ir^ zy#UNLKmk`=fHm-mAWyg3INMwahg3o5i@am`VY7HBWVUyhwM`wPZc%qAU`VFTYBa`t zah}adpq&(FXAqiY;}w9tz&)~XI@%@WJ`2hhRW0yQFv({#I3&o&fOYlF0wdnJLO4UG z_;OO1hFFJz#(b;^4U%|>-Pv56$|=QHJyc^AJXKE7DQb|{HI65OxVz>Txu)-X5O&rM z@TBGR{c<{sH9EpI2%pJKlj6y=iA-dg)mVUew#?wYa!$xEnnW{8g1T_gj-cM8?O-5e zZ3yWT6xvL1%hl&%35}sQC%Ic6;4r|mY$CiFpit3KTvH{hB6h&RN=k=?X(~!5)(TWF zU@0mCyHdkpS#g3nV3M$GV427}4h zB3%yGFS5Me*?lscH1+V@X~)C*Jlh_A`h?Hc0igr_K6RIE?|jmGncLit{14{a=-B=V zlJdc1ew_~U^tb;meg6+%k|o_70;@0%eET4JfYa z;rgKCLBY)r*uem~S#7frL?Emq5gvcA^4aH!g4*ZSZ$tag5E7E5QCwc;fDjLPXQGbd zLgtEkw#nU#US`Dg5m~(+3N;oeDUvPw=OH$;|0pKr>9Wol;FQZ@yuA+Z=XyiuhOTPb zJ|z9gP2)@xf|Z2>D12iqRY{T;XRVw|V*GB#wbBomUOBYeW6~NjACg_Hg1PaDgTD*pm!XzOL22 zWXsY!S(*T5QC>X>oy8f65A?OrB*Rkxl%sTZ;ev<^$gtFd&L6@yhZIvpvl)6)hgSs^ zW>1S6%zCtKgf6qBB`35xs!GF37x)NzMG8)M^B-y-3nnlLU$-_@PYnM+Ra66TB=dR} zt5_{4cBP=f!7i4nbo%uhIY-T_f-jhiBLM;>Hw-G%l*6pH01QEbTS|^bcIVS^1O^wD z(4dc2H$h^PJv(GQQ2&V`ZFWXWxu_G?&#ogU;Hd3b1^QRA!0X5jGhHe}vukCj!()60 zK^oe=Cd<*99<)si_PbyIb1jJ7P!--8q&V)a55Q-NzSK)a3Uj{MSdL_2X^;@R;P{!n8kRFFGj$^N!XrvN}EMaPID$p z;)R9Xk$Z>Qq$W#Z4kDw6T=?P@`JFX0&{|Oh48#4A&Ca0e{robNaH}K^Autfe3PFge zJDDQqZkjSeks#D~k|u$-oNF}e-1ZX}O~+8Rz1=}r0$tW}GJ@isQz=E6&wdrE;xDZi z+BN(O>4A2a^eccL<~?OY{-Up{yMBeb`$91s0gT>wYBz=Z}A6fKoB+- zVY-noFauQwQo2uP)ipUNyjV>*Y{=2EQ+F{Od#;O&mPLHftoT5J`*H!o5ipW5!#VTO zU~U71_o9G6c&+WJ0LsFx3OUag8WtT;t%onpW;eQ~VT-OYsgP}h)kgHFO#BE@f;9+p z(v`(KFRMf_W}NVM`rD=AMNM;tyv{);B~ry(HyIrDX9cLa3=Ul|0Swo)Ko>~M1TA4Y zHQ5a)c)C#;l6&w3iZ|4)!pXUuf8sg_bbGHaUr_*xJK}?NniCJwTXGSwba|;taE9&_ zNSMcR2R=0vOcp5$gOV+d1f9+b%Adzm4tuK>hm=P#mq|h@pJH8FtiUiJ>B9j&#K}C- zFt^-pB5%0&&ye4u3;hI3zb)hD>EHAD`ORXJ{u2tM;YB)ZRL&s)6<>|H{k*MEP+m0I zbQ+6F?;+^Dx&P_6%h44*$7RHi=y@~=*aJo0y+^yCXFeXp{{KhDob@^dd19d_M<27X zL7juT!{v$at+)f1J1Yx`@B+wxwImpIqeBU9IcgcxX=nO{oWaFHi6qbtLw!m|F2F+Q=NokP>DuU!UjbK|8_qIzfv) zR&xV1Z~#S~oV$fq{5^2^P*ed^I|9I5PDJ$gi&GE=PJOVh(Na#3C*2Z4oh|v6h{vUIi(UCO{LTPva zP8UOvBR6~hX%9bY;?@%m>1w2f(fg~*(Phz$^6B!H)9y~k+`SsdBd@J_>>nHs-G)t{ z9UWpa7+w7-mO-S4-|P>!({EnwKU=Ale9+E1@$p}yvqxBCf&P9cr%ZpLi<`Hqogb{9 z?G8SB_iXrR=YG9wZxxL5IHQaVx%e*eFhRq}i`CaWUHHe>Z_*<{+0zr~tuk#Pot^ua zw(=#@;g9?$XWmY_y|oGd@BVnYxAkam_tU$M`&!@Fu1n*O((Rp1{Qq=&ckj{m-uB%a zzvI^Z*`9TWo%gdm>-LTFvpidJv=gRDt zT%8HlU{wpWx`JvuRoj?w9aWtvr+`s*erkgb2+;0x!Z2|!(=-8r=4W$i4a{{nPD9v9 z>q2&ni40;Z^8*V4EAj+FuHlUhtdTgr&a;bSt_J)9p@TLyI1fhwuT4B2RPM%r`LrmP zoLNnKx;7Bu*88QORyU} zh^crGP4$QPqj2Imr+t6}FQQx)?j_l?P7+^L#WY=(b0{!H5cK83{SIy+7A-cj4FYhK zlg!Czl&K~-T9io#C}1`=d7ZX0BRof3ewIycT472ScCDOWTA4pN8-_x?65G|BMh)`* znA}Fx5Gc^QfAr14>-}FMyV0i%2>=!+QVHf5rq#i-B+t z(~EwlAo&}0vj_Uw9R?En7!D%W3i>^0UA8@mi%tn(=VaTNh&!X@_2=DLs~AjHi9s_N z!skA`f(+^*Pz2Ohi+t}te=k^>>EEj|2aP3oS3=#E&cQ%+Ubg3^o9b?1k;u#ZAUbfq z2#TBcI?9sr)>Zayr);7^u$OlJ>%IGJIIKMJs|KSd-f7d`WCU)@b$b+Mn0r1c* z#)U(;7ac#hpK$vI?&y`Zvsw@7H?(?N>hY%BGYIlW66NxwE;zb1D z0Tu<#a#ivbBEu04**0cuDQ6?rUNm$=1Fc-=e=#_9;HGb z&Vz&*+m?7@J7vBkL>E`dyK+cF}C0R@>O=F@J!#pR%s*P^uOmaq! z)*|jG5h__D7Mz+OTv7|+vi}vp&~y(ns>1Z(q|-2a7A+A}Hw{Z6!EV5`Ldq8);|_;I za}L*vsYyf<=!t^BkyDBG-@Ztph_u$?`UH9>FfwRC&E0t;2&GPs0#xt_p@4ya3<{=N zX6IPX(DUkueBjHB4H~gCm=jw@N>HJMJS}Q+3?sm}u8q&;uj)MEfD-r^z_kLDg$7$4 z+6pRf8HX4-eBcOog8;@u(!C_ikSbzRn23m~KI|B(W-uWxU-At~E7gH`9|o=^8j3K$ zny?&`r1`Q6cNFZV0L8kL!2d`AgDAP4{6JDd0B^@YsJdq4G62&3AVvr`2dOr+! zSIcGraJ5tvmceF2;cojJOUW`ta`wLv^Xx1YFHBeGYXB1J8PBHAA8E+s6%QH+U4$>d|Gd*Gt(HjuLHHoX> z7C%OCPF&}+R)MIIz7&K{P8P@&gf#Bu(EL#<~)+-vr6Y z8D$G0)D}z>2n_IM)G<>zhxFMTSAZ&o(+HuAiqnMiV-X13z!XeRc8@VH=acpE!x~PC z>Gb&0HRX&=_sO-VpFsS%Z&28fJMP%OkULK}>8F%=x*Pwqo;yYHr^5c;7613~-|l~VkiMnxfM?X|#{i`p=J5^bnj%431i^JekDD(~oFYrSct$LyO+Gm< z3(!hA;s)gg5`tmbqKeG4zc14 z4|E7a=UtSi3%CCl%L%gdi8Wx^SU*EL6bK{TAb+W(^tl^KRQpvp_Kg*2GY~?qLG!^x zq>OoSp1u8!vymF8Pr(>vSaI3crWgax7zUmA6kzt<(Ns9GI)SK^JI2ly)pAZXV@2ah zeTJ3_l;8;R_oOwdhKn5R$dHbWK&jw(oKJySqTbov-Trhu{)_=WUcWdzq6gOL+IajH z@(nS6-PsAtiujMg54BD~3xpOYxis1ykp}q6@IZ9d!XdYvu6+!pMIB?K}{~{LzDC-~WOSCcine zYN<{iZe9$tN!msAZCVK@6Dzbub8*0{a&Nh{F zz%$eZRF>%tfnNeE41Iv(CaX^Ql2gYL=^Dl=if9yXz! ziAK|@semZaruD*iNYKTqZ)&7+{~I!+8wAakP!N(RLjo-dW<Lh%N~`25(`~eG-d%ttm5p$>4y)SPgXUD3(ZmXJa+3aP}WroGWUR3QlR? zb00Ot=HAI;)BqR8jaLiNZCg!`r}>P0v&h`Kc9?r@9Yr>hvm%V3E}9}g<#s90c|DkY zr$7Y(Edi))p%~zrtLtTi|eLL zHUcxRd5TV(IXN%p)tn|QgjE}l|61kvm1~oMClN3YZ38Z5U8~B@POOW*EkFG)0WP{n z>e=mSdqGZB@11*rp-q`Km>n4R8^)ylr5m5tm#ga%;;TE~*!u>qSFD(K^bWbHym6oiMfDn0;Dqj zqzi9l={?2T2U1l~oUZxJ2EIqPpK#*>;-E;7b>-BloeITnwPop@G%elLDHDgF=s@E6 zM93FdX(969+i1G2CIqUFIKNe4BefMA&k(h2g#AWNXYy<&TG1F z%zb{DXMjIJ&S+B2^&OpD7ir6}NeHxChBfJ#%d|=cEO+9yygK!7}9#6qA zLe&LO;N2ED=L!m1VCszW5lhxZnryDg?4Uf&&u?nRjc4^_)Y4@slNUXz$Z%hycCCsQ zO_S1-h+X3r%Lx!pp@Y_ESzkbbbtUSi(YxBp9lU6#ayR-&68UTP|4dH^3hd{J0I&A{ zY(IY5;(y)R{^GLJv+RRf~CroLhKGD~law76QXLcvr+319oP0U79w<7?e7$ z#0M3;(L-SUL62>>G~O1WQZQMEftn8J-B5)Rn0KE7Xpn8DC&#nmWRWdyj7L6UyN-$1 zPq-7UaEK;10^p#xebh&o^rC27}68UrFHg9*oL!eB&eaC!%R7- zLCqi*#G`RcouTYdOlnOVh4JwB!r&BO4Vmt{XYe^fF#&gef+qx(kUT?VoOZWhGAgNc zRhJ(u&TxJ}#UTZA02y&}6NVzabqWbgV)hNN3uB+%lunnIb21kR$sZ^y+*g>JJsU@>zakco%VDrE6}9uivVb9|iOiA`?K-8@tW90|o?%Dokt1EQJ&FSfB20 z<=Ll#M;g+a(lRK$5;~{39SS=?cS<3wcRx|`O^V)Klqch{FJm41o#h(`yw5#g#SE?- z$YwfLZv4b*R!p4ncJf!Sb2^@fH$jD7 z|8uDceJHwt&*pOrw3s zW-c*B+}Svg8BBHJ*p_=WdKpPrf|xg_?6e}<%M#j!>wD4&e)*FS{`qcj-A-^$I)Q}{ z+O+V%wT>^#7{9J}%QY7D`LY3+3RouztrJjv+~MVZcAFtrH~~bCD8*9` z@i96x;ownvKsbC7Uu)2DV7alTz&K>yTt)R!%EZL35qnmYT$&T3+-9J`oZ zPET$-$$E}9yjNNRioedJO**phgoAf_`O2SWgt-V~K-oAaZp%Wk2?>h~Ywxi5W>yHZ zI&**Iu(L!>PwsIfru|1^(sLvZy3WM3<4hd6;kfmb!Z*S!pSi(~>OD1Glf#u~7~>H1 zoSZC7J91#NDvq41CSv|&yFo_=wOep`ztftOXMNtddG zzd;lnxi_Y%dn8p5QLmco%4(8zl{DAIL;`reun#-p3GjeTSBt9z9>vL4DDY3}c{a&E zQ;#t%i30f!A>Xf2Zstcj2#q#(W)w(Mt}jdi+GyC20IGJGpJgXEjfXe^x*;v7BTi4) z1x{9-FUu(+D!B`5G}Yph-%D2P5M>V|zuiD$kh)`PNrz<=6|AdSEFj$n%Kw}u{@}pF zb-}dZU}3`vxB7rr5pqi^rz$DeZq1$HnlS3eM9Q+9TF4DroiJkO4if5R+3;9;gdd^( zt@EZ1u7oCbw|D#q|6H0S9==J)d`pA#1w7E|mAHG(3Asv~1MsG@!o6??Pdn*1)^sH* zU|uS{3k1)!X+ED-H!xSc3?SwPBIvB5^r!^EjM>Wa4@O~IEf8pn7Ci6bPH?uoVP19j z2FKjzNUhH#nnTZs5_)k&JhX9M$MO!cMxh*$3O(_7LV=v1SBMGEJT>?fMwAp3LGH?^ zni%RR0(CtRbzMRpR*7Os2sHzB3wqhSVT@8*E;~t9D z2%0=7`vc!56p+uC4JU)xv(N72H6H|u%Z1lT2%tb_7@m!dvVu3<*hu27#~joTz&?7w zQ-Qz7BO;^G>V1cPs>K?TLM>nfcq~Dum3*U>MY6F0*LYJOHSFj6Z;ci`&E}n2wDiRN zE>~mmtj)L}hnM;yQq9(eXE0ndCEcTK$N6}W*Q1AsT&=9Fm9W?O&@f;cUSAe2f`oQJRVsu!wZkxsfNbcg>f4Lz=Uv`EJ^pvzH1qmH z)qg&E;=YUOKc8%Ee~kZqsQOQwZKv3Lb9D6f5LWK{n+R{_i~elz7p0a=Qtcy3KPf49 zLg>5aZ^42(diIvU6fQ59C1uu43t)$u-6XiUGZF&0bKT)ML!NCXliq#x?D6)_mLQNq z(h`G(X+|FSz>?YtDB$Zm&FXXXPMNYfQoIU=<6-MnI_SQ^H&5uzy$rT}HC+T!uCNCK z?~H;*nrc$bf_M1ytHa^9?%uaQxZVFuo7Ig?4SSiF+Noe`Gt3xAL<-51$8r@ZUOIK7 zdW{G$M6T_TH+|8UQ)DnMGp#6#hP4^SP&s;eNH!HGJ=H|nzQ{mh1UJuhP97C0tW@RS zy~RKtgQD+5x=0C3RXJT!s=d;4v@6tLfGK8&cZ<8jR6z0+8MqH#b~eR+0O>ZSnin#c zmt<*2viKyFb$9O1t|Bh{k z#-g7I>k0OS>rza+qB&Lb~c8r_SUgNr3Tz z*)Iw`(yjl2O;;`JN5ie{%}=(U3?J|A zKHY4n6T|III`O-kxfHDfTguDfvfc!x3?_Og>d9tP4ztDNytv9YPfi{`d9?lH>Dtv7 zh{BRLqwTHr-yD3ozaO-IvOKFtv&_k-^LaMK7hRq#%VxRxyV`AwNxtb6?Rj=NbYlN< zn$0$U=kD12v|MX}#mj90*eYF2SnEfBlwo|J1 zBftassb1v>*sm!Dp}7N(J%VF97Z$TGo%WB(g^2lH1Eica^n!Y6_NprI-70LDL;|_p z*iT?z(l2k0-lm^dPG#oCe$T0g;QOS`q1H-SJ(#lmAnO~N(SsC?yJC`CpwrGbm)dlw zN-ZW!@LELCci(QnL(?uN&Kgm@v2H!->mNr91vRe(6iBoZCjhE~wID*l64Wt%#z4A6 zpAMrw1fxu2ykbB04GZ}j5zMPc3Fi3y~eiXq>3ru{=Jvwzl$njk7E6^tG^ z5J!5tu|f0i7kY?=lC&vMxh3qfZ>HydG(sChc4W}%Q^Y9&PZR`T$tdDPE<3r@s#}Gw zJ>&@GiOFnfu9|9QwQ{Dj2QM=tCgc@}w!Cr)Wl4)rMG<{mzqs{d26vLaNe+O(WBYIj z2hZb$M;($Nl8-K47xlS^D&`Ubj#k@&Vk}E!ceE%0GOpswPof7y%{C^Ga9Sb6-|M($ zSnzo!-P}Vm8hv||U-1FSrU$fKdCBvlj7MHPhA{dJ-c<&w?n*;oheI?hI)-Q zJxGU!R8~7fO_Cc{lMmS0`8^nem~LMAh4VSj@Y?Xr{w|OaE(gU+=y5TH z$2B)!kW1(CW>Z`_1NZ=V3hr;(uG|O|(sqvnxr#b}3SODo_#)j-FhM6<`TmCF_ga7s z;#bn{wFW#K>bt!G{Juv)X^M6(^1mWRoj{3GlJXg^=gA_U60!spc2YjW?Zc2HUmqR< zin-86Tio*rRiMrh8M0SN5kI=$PjKzfNR!Xc>N=YjxH8?>#~{y~Vt{#sD%<|As8L*r z|MWrX|J-l8TXFs0*3;dO`u~Uc_o7wLopdSp&zP+y@%|KNIW*M-aVcX>W5AJRNg)wvOs~fqDIPHCv*XLAS~D!l~unyM=zH@i9E+kbFDt zIdQZ_A0&oAYMfbj^YA>m%&L0v*Q*`l;eqFV==~4R{y_2n?X5?TTKLb8KH@)rkbhr= zNnzbK{>sh1Z8y8@XiQDQWIVr?5@gtOO6@TzqVk>QeaUBEd=4Kab=sx zU2{#Yw;feM9)hRRf~*I31Ni=kCDZ~o6Oc}60Jgu{2RwS$tujXxJxJ|d44eFYLzs$i zm)5#@lBQWDiCRFNg=TqJr%!|h?{5-Y(R-7=+kgJzyF<<-mm(BO z9jz00#0{&{p=)4xQoYA)CD%5mrL)N&=iO&B$l-;br@&7`>HEN6ju|X@14&hkCpog} zG$0N^EnJj&#K|Qvr(B%Msb`w0ooPlZzl&lnGiVXQ$xbUIU8{i<>N2e>aK!NILMicO z!BrNVZk8!3@cUMwh~}q! z4$8_N<^xw$xJWmw3BxoJT%Y9bQR`6)lSSS@3wl%VyRcrl3!o(SEMM40chf(+1}dj_ z{17%v<*RkiZI7Zp0GK&BG2w=js)8~Kdjk{*g!fpF=I7*Uwl|bjX>Rb)Bs^fJMUK9} zv!Y}t*~86;ScW3iSy=z;Bvm81d$3#+U7&9yQ&Onk+;YcaE^5*~BG?t^_huZ{#ZR9tX4(U2n|=#^zbTZ^8;9^#31j z!7i3=d>8-tOFABJ(%KvS|JnP~;5f2%F%ZK}Fu63Fz1+U*%Zu*5K%ol-0^ItdN$R2j zkd4Zx%V>Dl2+ zjFIOVg3dZBEBKS42Wor5*0_BKMjj`3LrSTVyh{WdBmzAqZmc-JaC7$F?X@gg zv=9m<2{m!SS|$Q3d8Tt-%g7F(u)Z!jAyPtlFLi#nKy`;3p%FVfzg~D#5ajrWqxU0hUqnL zBV~icMIPS7U_Z5 z7?cBQCB8_@Yokz^LpAXX_Q;;N8ob^kwNQHa0R{c^GE7_QiZ^2tg5$8V(_$W3;~kB6 zvI7&Byuy{!I+R5c3y9J(kc_RbfBg{iPvH)-mpslIFEC-%h1h|&(-J#zKls|8e}*q2 z8X*3`mwsk^W##2+t4S6y94qOhA`*a}IIisPPX0F)THm+)KYih9#{TQV^p)54zpqUG zm%9yEe8G+bomB=K!HQ*;xqwuMQHxM5AQe0WL2V1Ojc)H+$^1~$i)Ko?jq&kRg##ievY15ZU@1fg+5hIl4fGCcqxJJ*T&Z&6AMRpzyH07-TPLL?!s zt*K@`G~R1*JP17M3o<);Rp%YbIqEXe7^UFAm=Y>{vl5=iKA)ePSXuaO!O&jJ__M3{ zjGU{ywOjl}U|Ycl zhy!kHn#LP5O0y$+B66$pAtO8DW7f4cOxzx&ST<4$VH9FDJ+?%%JEbW56a}I|iQFqR z4YZD6UJ8YUcHC@`r#g>1L04aZKzLmb5;Idbc55yNPf+yuT-Vzxyn_9x_Cuq9omnsVLrkrh*> zM$$PSJ#*?wRFkRw1W>p(R#($KN!(#}MTbE4mtJMvhDehm3Ngh;SruZwSl3Hlhmd1r z3ak!;-K$tXGDHn_blO9V*d}J)*rZ&gR{NnwpXtBr`4^g?n{cP&#ZdW#aj`Q3LErR=%0F z(w=x2JCL)BaIhZ>L%T&l9Y(^C06pyzr~?exu_e4Y+(1s8Ek?motLW7`GWgsrnX0|0 z-;(}soa)BH{cP|J!h?hm4%?51q}nn)k7e)#tsUk2s%l)~5U~14QX+#8G5I+Pi1nHG%&sIBlu2%l zv8Eak0u(FMnYdW!%bI~0J>4LXmJvlG%$QNsku-?Ml8bAsr?wr}gGtBIW?LQ6u>^S+ zX3!`G@2#7d&6Z-8spIQfFDoD%Mp2^pEhKDtLDnkN^r7bQsT*~#V>Csr@duI6Os$K) zopOq9hg%{O9%ExlTA}uW91qAoAIbSR=dpbf1v_QVoIO5H$`4bmFiwiG@zmCcE%{jJ zs%5Pr?Ab2tWJ1kg!^WXT4}3SOWyQ?+xahas+G&}kA_K50-Aas77{NT{fb;mGqNTWx zal8*0_eB~m<9^5<7pZpWWhSYlJBu;e6CMppW)c}O$0UBR8$lfp-)I=Jw~Xs)-@Vbw zyHsczL9Vlik8F#dX@KA|S8ZCik37?jTN^ZA%L3%Q}3lZwJ5k~%FBsd!kqjPuKb z9FlZWpk)IO?uGl^>~5rD2xJkQ7GyaQB(@+Uv?4q*TNhF`(iLLQQ2*(AfQIu=SnSnTjhYY;I(bdK9WF|yv1UE8zqWz`R{GZ5hs5&SL z;+b|6;3lNxF?q}XO4e9PoPWmG*rpk1Rv@w|Xm=3TMYCqvWePo^_^`Hz(eo!o_;|B@OpW}~|wFG~JQ~C4u z7DmZLWur1ti7T$&q*Vc;Wc+aB`t*eh7t~w3;iYcg`g6t$myg%YMS3mS4yNq4fLQ}^ zi*)KYuET5i4Da&2Ag*9cW=b*VcYNof(UbYsMD(=j9$)6ID4Cl6*ve=(HSy~!scwz8 zz5oV1@EnQox_m9&8#aR>I8(1pT~@1+pK~wwol3A9)oRs1c2>!*q#VdceAx?}>nt#B-^aH1@TuB~%C| zPljMp!;ufJI@)%(E938$95XXp*{lUyCJ0AqwYm{)bA8=9IwFP2`nn0`bTd^a8K&0Q zVwJFP!2?9b@fXbj;dp+{77VD71DZ$zaLBF-LOGmq_SUtlm@-K%a=EfE z8df4WA0nw7UYTVMwe83XS8+wXJJl^gJAx;{o`?Zf3!^x@e#Z%RKWkl_lSYZ+lQrtn z!a{Kq7?Ozw5hue4aGjqK>iAoZJ`8>zZBeoSBrQMODmUv3)lWaRiUj zsCz0D9Nl>&97rml42~+&rF8Trlua5Yd0M>8xWv*Bry=6xax$ps398q{eJ#l^0;d4X z!YDBDW4bXDJD@Tvs_cmTRPE6#fg4#M4q-1~%)|WC%HCmCO9ico>I1@3@>{M9R z6&O%QTbL1#COL3%^N9>u&ez(UuNh+>$c1PmEwX$JBm&K8b*K{H67>OY7$>tpiZh^6mx+;6k~&Xhou; zD_TmiL;zk6+K|bHqI!E*B=uHiQts4Ctzd%^D?rc4m0O{iSF^o~pcU#E2y1AOZZvM_ zsQG+r!VPfNU~NOp;R8UZfMdCB9VRiz%Srs02FVAT_mi~}q>-orEz(0xD8W&U)OGA_ zjCSm#o<+bR<*d-ZJCi>bNu`^|cIBcEU)`681xgEwLSn0bbI6DeqJooB&sUY4$ zVI*jpMG;9wO?MM2C?^e;dYkOv*M(0(N z)Cuz?o2TMPNWz%&nrZdrPawktNTPCSU1)$gW;dcIrJ|E6InHu~MxMlx;)1TsUCN%s zRs%5;>-4${1f3KA+4i6Ne(itoCvE?8_2TRNudn3ivxX6gC(qRfcxd3fD3`f9Q#vrc zh{;zpO|Qk+ba%GUL0w%5?8yvbG3LN&K z%^*gS!^+U;skmylI~2kq47rNe2!QQ=Be`iLyueG=ZI=jTrQ#kq$hsKI1;o@wEVD*f zVUfu9g&M(SRCgat^kq&ad?|bV;TS)TTZijW35BFcWhCp+O&84ztMT!Pm~^b#e*qd~ zTX-}85V4AcXi4Lq)xoT3@Wgt`OJRFeNU2Du`AO*kBSkvxb!2pa zlLDLsLZB523dJre-yjTAf6c z&h3aP-?uspo+M@l>ag67=rUde_TpPs>BlG%rlpb=9o3G`6^EV+BIjC_EuIA2VzBTi zaX>VgsX{#hOtYG3#}g?N#}L$6s77N@k!%Q)m2&6O_GJq#LsJ|!$7ZA+kR?Y$R)y1b z0ssLg8rvJAv7z%5ku{fnW-v5%0LL+!w8`3U(%HSy(^n49POm2#SYJ0*&y}^j%IV~7 zOj2O_NghBH%PQD2EwI$aidABHh!I?A=Q6<)vL}@MJJH#G2o)9C))OFLT~%JU1D~rrQTzK(&4$0IP^BufoCobTLKVJN;QLsy{}Q6IPB&Sc{aXG;ZxOc zX^pok^DK{#i&x8PDnJd>;rR1;Dl4F0V62Cc_!99fty~k&rWj6JIAWRSt-9%6aKqED zs_cyt&qfAhUDj-10(lY$DG6q@CFH}22^7-ojgVv1o+z@r6tuFN=bkdxuo@vZxq4OA zE|T7y3Ac#zMq9icsP=@$IkRuDd|`dGWva1^4HDCB(Toh5AOl$*u}M137a0;sw%P?f z(!O4A;%rg3^21yOPYPVbp&EHLbrWxQECiEWCj3M7-! zd5~kJ@!!ylzTqhq)L?@xOqU@o8124`GQ)YQHBxjN3kJ|;EEh?#+E^$;b_)_L_H|n>Y(;@81;uC=+nvb(IRBD&+wu9#Nq} z^YMtv%C;Lcn`F^R>!CHD!ZWmCbAr-q2aQ>^gFLeMdSulk6-Sr0-EzYu@MY3XtC<9w zifmU+8P_unAceA=53!gN*=x5@%;6L!hyszZ7B)b1CPL|=kfX=rv_YBM* zQwwWc&mz6URG2d(WP+vX!r@7n98eZ*fp9j+A3WA@QVv zwjI#AG)9@fecLz6!&+^fqC$vx*~tERBG?|XiPlu?!BDr84g#bx;u!Ka%Mr4JsGl*D>;<~Teo^f_(;zz2s^X6H1xqM7DT=+Sa39Dlc&fy-399)h$aABSpr3H z6=G4xqu{%aLTZ~m({@duJ`kB?ym6hsnt4|viZ;v+8C=>yue%+rh(n`= z-vNG1de9M(bOI`H-Z4&V^9lCZ>8SEY^Q7_<^Pu_^MO3YY@tz4DvnXPbg2i0ybRq^P zlz6#o-5sRx%bp1+tEh@n?21CUbdO^Q-D*)23)!aF4q&U;#?nH#iT4*AKOA1frA?Kv zXy_NvtxNJom<|NAwV?!3n-D?A$S1&TiBftawdw}q&Jn~)N^d6d z5@A)r8>m8Q8e=$*c?YQQkrBcuhoxkx*3+nLHQ3zAsN$eR6}29CH24N;735k{A*}ca>MhM5gADJe-U3`l%-zc^-#H8 z#wm!Alxg+y@#_L%v*|6#!z|fs09!yuo^F@uqx9SwU^m*Bjc};C>%HNQRdj&-n^pLk!N2ZfZ0^1_UjaafoKhf zD$xE#oDGqr0hhzCxF=WFL_wZwu z_0RVg|Et*yqsNmkwGXuNyL$O@ZvGeeNyY!Za^cFw9{=)d`@i4S{&R{04!iuq7NAGv z|G0YjN;?1N^yN#h?LS||&s}xlunSbS*%qol=I+SCse|vIBPg7{zyPAruAs{p(r3?` zsmvhP!K6?dilctN8QSlS%CdLZuN7N|ey;PD*W>5s;$b~9+_!JgGI^3Tjk(? zmZ4uo{V?-*2)#JnVeWW#Z9>*OCKhbf;5Y*r+MBHsY)N=;Vk#f0ca z+H57D(kf`79TrsGm+{QyJx|etvL_KV0e=Y%>1d2kTTwj`5M#^>i3i2GPCJ34q%Hu40lR@QwS?6xPXcqzsN~`@geyf3Xo*zp@@S%x zn><1|ev{dBt-6EfTQ8mnZtVvcmBG9~H8n|cQ9fV!^fIo?-Ic|qxy8G)x67o@$X%3_ zHKi|BNzPf1f^=dyjwBCoS!F>{tx}=S*Vje%SV1I75nbB80c*Y;1z{AIQoDK&Hd74T zr|WQ0a_{!-^77)mJsll?9K)Pa^kc!ZglU^FY1D?bFdm=sRn|ZVZJ?f&F&|FUxCUtm zUo8;L(t2@j0Rx>Lubx(YnO$QXqR3ArOWV$ADL#S}D znXKyCIY!!WA+?Fc(Lr;KY6XO?*jHD-V_GjRl2@>;0K$Rr5g_vi<6VK*&GcF{^Fn&+ zcV_24TU=Tw-&>q_93h-qH7vJ;A`q?l5F4Q3$^;%@nM0~5Z>?#kq|O~)#TL*p39mw$ z@-D-dNu(%^gz}y;G=X^b(UnOysJ+Y(q^;E#nqF&CtfI8$G@HoKlrjjWnjuooN_7`R zMu`?seal*QEBzJBC*9M+mv@&})*LG*BQ)p&*4HTmINum)f}oM3;R6Sl z{W1D-)~W&5NDL%@Y`p0EV@uH!j<0P5s=12Z7wL7OTbROJ6VH&Ih}TI~!Cuvpt$;Akz@V zAUePRgxHAzGV$7k@28mZuU@)0y&Bav`8Xiop~tOPMy?AqfFXQvWxPcux_EP_bE?}DpxkA;TTd{SW;NNSaKtugm;M7)ITW5b>j%e;^-=y) zXsv@W0EGh|MZXh3r8}Z92#tDOS}__ePrFQt zc!PSy$lq8v|6}FMHu@Y}XIq#7iZTo~T6JuI48$MQI7V=$HALVt#!cXjoA6{Tm>d<> zPES$N&rKOOhZ4Dn2+4|97V%4Der$aYCwf$nE^vtNnhhgJT7O=Wd&KN}HUq$wE!X zm1p=;?lxSBD2EE}B!f)_#+&*QP`v5!o5I{LF|nJJb(Q&!5f@$i&CpT`Pz}V%StZO+ zzPB{{#q1*DhA56HpAka}@UZQ;u9;6jReY`?o_pRQ@E-D4JejHS5 z%0W1N=oAy;DX&RNM%s$^GHcGr+H~PAa}F|Gx%CcvFR)Z9--j9x^{fT=RDax)nqw|- z7EPd_E|aQO8f;Lzu+Dh)piYee*+MST?IDl=?z!m@h7hF!1M+n|cY2qiMY~^T231I| z7KTs^4P_rttb6(>XnjuR6liCn&7i`Op@C{sPE+}SO?-8YaIffhJ+> z#Ywo#*$G5jP>T~sWJu-$RS66nO56#lgt5C;^aL z#^Dh;r#<30jtc+jggT3xof}nnmYUJRPKx;vu^_N^{?-Zb%t0i|DT>1nL zawka!U1>N`v>^+4T4L1M;l$!{On-Y!o`ZTZ4bsG56WZKn!FrR!TPg#mEJw!&aF6{V z$O3gcs>U+3moP{5W+^H?^h)BAm&>0E+1<&Xb7cE`4&BQt-+Yb;MsX!}BGVL2XdYGK zo;5VX4a6vq=Hn^*h?hs1h@4?~Yhli3>Ool9!*;*idr^8Tr{F>c8BICi!!6qz|mru}?P z@bfPFxI#)Tt8O>YJXnHT)yn&80uIMW(=vfD#bh59VIoYH$U(eEUQ414S_38LsO2*e z4)IBjvw(pV{c-xzPJ%4}9&!)l?U|jMTe!Pst2;kkUi*yFKM3|QPa?u4$Ou7%0P1S* zB->%e;K<*~T&(3u?D7cJI6)$!7CDyzGl#Ts$q7t}mluop1j7j?c6^`IVG&Ig4kEAiIuZ9L^QBLB>HbL_t3*3d&GW z1&cWiJ(YGTjmTW zI-V9ui+Ky?AGu)0l2}t!3yFQnj?(j%s_RmT!lFuBPyQjev&CjR!>m&xHX2|;dtBMr zGjqUeDcSE?^_z}}7MN&Gh6JJ`Vyvu0F-CHF zz9di)InXo3CBbWG%bkSb?55&21I!?-G*It%LEJvo{m-K6ZWz=?&A+yLxM-lT95vN-SvAPdMB#tNE$ zOrbbJjqJ^mQbNV*B1v32kQRrO62fUSA*X$*#Bwx}I`DKw*qO%IIn~^Jg1WMvl?mT6 zs#}U;ruE?;lLJIR%0X<;6k+%(0f{d@MT0SVqLRs#eY5})anKz023M|pd|_SsV|!BC zf{g$k?y)%3sxc$l!*~)`#2y&C=H>9J>05ELNfguM#laIY63=A^XDoLfTzqu9)ntRQNPZ6MYZS>qJ-7jgY`Grk z8l3Q1tRRLks@5M%XESlP;Mmn7`f97Ia{Y>8yXz5#)CgFVQ`;HTBuzF`W~)tAsZmpR z4~T&-)6K)2W`Ib=eaYgrU(k4nt!jZ#SfTrE`p z#92UXaM3gVgIEYazN^mMg=m)ZNrw@O4373_m+zF@)q3mVv`@h;^l0<@@W;is#5n<; z=20Wa7Vz-1ExBv@Gk}6r6xWGZO=@w;C@3M)u5!lRECaUvM8SShC=#o457U(ae#2 z&uK8ndsjv*?)J@>1$h?0NQ}m>htIY2hMq$-gAlZ4=U5%rgEZ9{X7*?d&=DKd%FE^? zBYV!2YFisUa0+%bZ@@eaEq0i*c`fOR+P(Q98=9k?1$uZhI@M`{Qg#PLeXXQqJCT1R zt);%k4IAph8|!5MM+`YBGw3vM^m`O7H_1rkrXbT4Ev`e)uIov(w;~}Vy@n}OG1<#d zlv`;l#ms-1x%TH-3}HB8g<-yy(U`zS>FfkC|}yso%75fFy7)0vs5i(;6(7<=BJ z9h$5T8`x>gdD|v7%_E`KN?N;bsR>X2^IrdG^MU=-IAUzis2H??$`m z%bz|sQWY!~OdA3kR+GGK`slKvH3h;F6%>WVa!Qy++cjQr)4swX3;bHzXT>>);&@<2 zPSbl5N5pO%p=P^H7nTh?7_5k56^q;>zU*+1`=T5-?fu@%-)e3*b3g&tGM?s~<1&i5 zHVfrsz?{RT-grXUe}&8}izyL!qVPQ$cuTQOoE9zJ8`(-yTkqQu4Lx70MhzQA79q{; z3bI-asVY|na%gh0rwy#7^S|*_#lA0+esrBe+O1>K&|Jm5n41wBq60`;7-#x|p*Eq| zznUmGtZmTH4-SktJ((-xG%HvjeVV#hXV{gozA|_BxFHft>p`S%f{U!Rsz*;e`>I&x zGjle>OFeG0Wn^T{k$80=ZgJn7A6gDq(Y!(eRhd8G_n!Z?O(fiG^f(XOi8V)W^j zhJ-83i;mIm>UgsnH>M>SZni^^T290yRl4Lr&9Jn5)etW@72!d^WBJ4kRNt;c3#tLG zAPIG*IZyb*`{?OL-3m7V-J!C~09xCM8-T<`$aNk6&NF;4q`}I#bq$}+iz+(fV47YE zfFv7+2UFR=3G=tvPj4^Ko$IXdb0MD(Pg@}9c1^`GhYd1L28FmmeYoMq;c2Imz*m8_ z({~efBVAuo4Wm!kgo0=2sohI6xai*mixI>jS#+|HByX;(!p_rJb|e@wY#{6`tcD$q zMY#4cA%<=fN)twzvK8Gm*Mi>En+Xg^3+<68&Ar($5#=a&93^4gppd{sas#vomySn~ z^e{88>^<@vpa3ZqTwM;WB07n3W=YJD;e`nNP_;!8I^Wj_e?^3@dPL4{oK2!#2fUmh zQl&7Vw2mYRW)F+@{vN{^w$z{n4Iu$H2Z}u*=L>FM?im}5fjGQXMHd4VP+r6sqHghu zD)!7yrIoB0Yg`n!=J^|})-g_qp$Z5$INlPtDH=NI3qde2KvNNG--qlk^F`X zcFV4RRDUT1BN{t(niVkD(I3I&BjXBvXd6fW4%GP5s^qgNudnq zP?r|7!br>;*M4mE(!GLrG_RyGXKUXTJj?jyZrpgfXC}01v>L$NnfF5?)_a|u2X~{8 zgQg13-w>27vu_4%67*b1;}rxu3=?HBDBz}SL9XPh!*nn z3Z&bWE5Y6}sQ_$1lfM>pqEm6>MW;y{;8|DL3N<-*i13QsVUqip*4H&Oh?HICf(mVC zReB65I|mV0pjO>LBQ))L$2Re)Sx61eNR!}9L&!+cQ`h-A0NxIIJ&4;=%{{7^&1koa zLHFVsx^idGo4(v7G@Tj>Q!h@bET2ii&$%rGILfHbPtQQ+V9)M{gdznvf*df%TagiP zoaSlT!rwNx^GRnd{aVc=jNCR^y^v)kBR0dzUu3j%8;UA}whWpqQY3HE@=?2_b`mJp zZbMwOYfU-nJP8kzRat7?Qh7sC`y{3)+En(Jd3{T3RbP_>H@1*@uf%qdwOOMc3E4d} zNOoA#>JSO;=*Xt?2}%keS{+SPXM&L81gc?rj%eV;LC!g!RGu*`$`kH+9|@e|;APKv zQJJ2iZLAr3KVPDD%f6jmCtv95w!;lvw^vZvMxOf?_+{J(=iO>O$Gz}Ny(8}KmiNWx z_#9WgU0nOFZ5!^qf&#*^QwjxQ*aQ<#g$))F9R7IB&GKm;uSz|f(jQT%aN{U>l3W^0 zz^2H=!ej-Bf7WuC&3Bv(z^7=$D!Zm+kM`SUSYF}DVa)Xt!qA+r+Kov_Nt*UYB@ATv z;0U$pW>7_AdpR27dZeHcco_ofci?N*EN^uqJn`7DRqUlo<&Iwm~~9rq%^8G>J!4CmLvN!K`LO_-NIa`3p`q&AG zOmVO(%&nk=)x^B#$ykcYMm^0Zl2*{-%IZ-RCd!W&#T=c5)Z{YIOrREWzRoPCB=^}= zfVh@Uf|>`b9H+0b%v&WDm*LjJ8oSpn-nqN5vbwx9ySBUnC;?EmH&)Nw(p)L}9kt{t zK!nJ@;iWAy36eMV${3+su@#o;-8-)8-O==mG9B8~=D8H|DcYxKJIgP}d0Xh(*<@xM zBd*|QqvB0w9Tv(O!A@_bpTLt z%Vgm*#Uf`BXNO_d#l<8K56+;2N6$E~V<8=lqL&AhN9*3vBXD7M-rq&bjx7+YV@@6C zJ?AA=m%yLC%))MI!`pTGD25}nmWCD62+*5GrAi_ZuIGrhpT{lQLZ8D4N_T?VGBlLt zuoP*-Y9Wd7g1e6*4x}7J!E+u!I&iJ0;=BoR*v*lHo=EG1Y69sh9`*Y7-&b(ZU>RYYt7dCc(K1}b1moEFX zA?mm|x8n+SIqW0WScpPK7cVGkyvTT6LtfKH>EilCf`tqpLDw@u90z-{Myh{Lh55&1 z^%$nW;QIqJU~U@AsTWJ$7o_gyu(^Vfv_j*4dhh1Vg_ZK!S9cf6^RsKS6zY-KQz>w; z$!LlRr6_zmQC+2W-B6^1oxy+(i7$$@2x`eUvJ|?ME(nE?fy}S4(}?USk>(IT1BQQL zMFuXE!IBk~5#bO;AVqyM<WlfMFI|cMV~@~5OWYaOi?Ul0#FPJD}3Ea!lSL0uM3D^yoM9FV8)lUXS}+$vM_r` zS_U&cXv&<8MP(7jP@th2xrAEOip)(#%Ohd4B<+WU9W%GuVcl03Z!MLVmu`Q>aNP|^ zj~e2bv>c*{i71&R?Ol!ugo0TX?8&Ivme#}+I4ug{Rqz>7 zDTzkp^_n~f3b^5DZ?!SfIq{fes;7hOdX1Q4my#;Nq*KCc9xYzYu`1<*T60fg7Yc4% zbF2ctBMg6JnrsmcN2Yf}10++Zmdb1EaC#~Dx_Nu{R(baJ?PWCU#)eC@lmf%)?wuo||^2RT@&!h&nAflu$0H zCyb}j{se|fU>gW~&z3ME(=SmX5SZa-=sAQ+u)0k8DnsmB6E_FK`jeW<7%Em5HhpXy zm?GAxC2%4YyrJqUdW@0vK~Pg6ouJs{qa51H-QW?XVJEhMWdj#G0N=m9^pMNRAsNW* z*AM;c{)mv;Mg*&Z6)!w25p-QgB2|X-?I2_RLAub|$WK&bQym+_6JpgBN0+bauj4RX z#R7{{IeZ?2KLuTHx?`7uoOL~ciyd2&DCelwI5Qva6*OcCVZWlSEBdgTSBo|=QAHyaVR#ui*#;C_aLA}fTcbUxh$4tr zzZM7eWS5K!*+lmVhLy(a3~ibw&Qr-BpXB$(9yh9CA&0${Q&a;rHP0AUOzKz_^;hUf z9CG6*i2xIt2vu7tn;1O$4q*nHRd*U5KT{@p4An(nKnL@NHa$U9U}AJnhWS=8)nup_ ziCUytpX5QrI7FNcWEa|Ga@dGDGl&k^XQA|jZh#~m5JB?LaIoZQ)Z`neiS0F9OMtU7 zpTAUmGIe44l7&->{&*7)@Ubw&cE4NgskZ+dg z!k9fkl87Su7~5WlI>U5|Eyi?0Xglf!@kW*6D;6BqmNaId4b*}$I$_5y1N$^Ky{Rie z_K2mXh>nt;pka$84jUmeZB3?<3XtGR_Oz~-k0O6jh%c12I2)GA({84(HbFN<50!+Y z^e0|Qf3oL4L3*VmAYSW^VvlEtJ+n1(MQBwYM@TEXn4!3b_F16!6`uxoCISH2VB zqItS1C>}ga89U_}kEArk6bz^|O5^AHkt8sa< zPzW(%!tGWoWh$BBi^)5SbAs@A-|JHenkLNTnpDAc_00zJn~<_oS( z7x!8Q5dF}vwwUxCbxp8FcLAhONSckhdGmo}kA};1H<1Y`l~G)Et1c`m_(nltCzUFU zSzgHw=3ZRDi{-WD&li?bcU`K%lnT2=9%160m#xM&w%C)ZUB9Cy+XM=&%*HiwsI&d! ztFtNoY{~auK%ebtPWk!u*`BR5lKO0O`W;l-o>FQ1$5m;2FHNO=v3qvQRu^TNtr3L( zsgaKC*5z*5EOjP3DX6H&>5+~~s>|JKwe|TqwkF!-DJ=HSp@|?a@Zu{_HQP#-=TI|W zd^u`nV{tlYnzPJ^Qa01AnRu3i>)bMr)Z=Y{2Y8;iShix^+sZtiO7vTDu9F8+K2yP}&)`GGxOd%rf?(=pJGY>Q^udfGB3c`4J< z^Kayo*Yo=4RsEn3)&z#nD@{*^jml)uY=+U}$?eNEKrXFv(5zw-#u5<0=kMbJ{9L(o z3IATbaOnztpSpCJ{=(12%kXUK(xuB&SEnysnu2=MQ&%ou=8PU*OqakSfLMf9pPMiV+$iv6$|M^>_)BY&7V z75<)eN*$!^peUI!{IS#b9Qo61G}|@pXkr98!lkhE4ab^2Od0PRIKYpcK11f1&flfv zs9loH!y@v6va2!6q|Y->ajl2?5W1%6I5wo}>9H-LPn@)R<=Y}yKauUnpDJA}UF_Iq z9914C?Twvij~Y(Rm;4i7c(T;Wv1Xb?^)NlE=b34xLSCvIdr7Yx{s6+6@jqqg)s0MD zpo^x!&^%yT!edO9q_Y5zOT5)4UsduKC2hv+?fbJ|t&%4{-WZk~;|0`J#@EXjT@Pbs zR54T0x)^WWUW3g0oZEtfrBZ^g6tv7?AR-YYUK$I@JVKoPRUDGzVTY&|YCl(T4X&my z!RI(lVju!a_h_b>sR}=OBexcc`SVMwrQ@_s3pvNLPpnKzyaJ@s#AQF$fHwu))JHK} zDqhJ~TNGljr2?tTmHi&+&+i@oNAd--@X3p@eqHc?7pJDKr1`%KS1(mY(MT)&Efu|rm)l93BRg`yja1C8q`>${wv6$5VSHX9XOL_Mn1ncK>>`7- z9Xzg5h-<;_h-3)Z@z@lg>1K>>HJFm|K8!!2Xshxecb$mPmwbIKgJSB4q%t)ftWLGA zqR*nU3B-ZX)K1t~&uU{uKlm6*9)25n1$l z9Bfb-hv^sas*$>m;tAoTjK)j26nM0DEqgI!KLfm1%$^N$Y^LBYAgf^j=CNvsT>qZO zVSs%*25_OM({}8!kRX6UfPjpS0~>N5T~j;`WD`}kDNBW!9Dt(VHe=Xg+KeXwC7WX} zBw7S9SdWf99WG^@gTd%3dm=X@L1@Cte>QlEMdms)(y51WP`2v+Rs#VGI7)S#g)xVW z*kyBCsIk+;t1K68oo_$$FbZ1=i6B7f{2?4^)3oO!z#uf`<)?u_D5QG>dw}AWUXO7- z&$zqN2=RFE7CcV7koe;iVnu`i!^>oq?LcQ>{s+|(Z5iXN^^Qp5V~qa zN7qH87(Rxh1PYd|=&Okq{a=|~8JccrK`Xbn8hDIrQBZF;GaclBj_ys4)$FNj_E|P( z8(Up4zdqNfGw_rhui2s18{Y$Q!!vsOP!FN^P`Bq;VO^iX;z-Pw9)sRZjFdwlrh^2d4cZW3FtUr#w@^PO;*7vm$x9%3>^)nj)RJNy(U()!hI*lfP|XKOQ5we*&-bfF&-Zcw8NG zTEy!D#>0#{ZI)25MoN61>e=F5aR#25hq=0GMh7md%x$BsHuTiXOUm zWde%HQCRcJ8%;~FV%1#{Q#xnytW`mN<7f?78=Xh*n5{$A>qmB)XiOfNw6_xF9gB-GnEn8pz&HDN`{x~&B zEDmDnSzDvbu^9pBdu(GbZEocp?tZ?ww75obCAD}}bTdW`4*6*W>t`WTWr$y2zrS$% z_UB8>_m?JTmzI~ly0d(5^*8F-jC!`d?zI1~aQIQX#i(v7i{Ccd)mrEx+7@3_l&(~} zd$fRsBQcz)SoB9mivAdZO=oF(Qlg*pIPDA}$yr52M0nmGxcIte1i1}6bgsWA{mbvOo|c?|rH$G~?V z130UmaaIA7-Ag#bQbdv@4ADVLj5&}bMuNIj`iSriB3wTRk7U2gstYqYPtn)<7gLne z!n9!e5Ixt>Cnv13cPL>s{tE_DiO31uI|$ZMp<*N;()#fd|;9wQLRH321|J(|dJCvz|5Cq)YUyNgRjQG}|e zO%KDevq`a9D>wpGnd+hu%dwLIDBp;f2{+lT3>}N;HL@VSD`zWb;r)g559TFmrmLx4 zQn~x|nv1$J_BCGTcy@5_?zT~|4YEB?J2X9RV4O>J^`MjJ%BZ0n#hGjiMP8dA*+GuR zTxvSE6jzV*ERhO@oSG^*$55A?31WN$wKzCGd1*7o83ss9DM*hrk&%l$@~R2u=h6A} z5H@t^XF1M98t&E;bkqwu?73QDfm6f+C*vNO$-~$ea3T1qPMZO{fnKC)4eYna`5ub$ z3~pD$5S_U;IG}YEV2tD=8ReLfC=SWUdCV`78qE{aQ;vJBMvQ?7Vf2AgZHNZsC@^8s z-nhC9L%Vsk-paZBx~JS8ND)se z(0~<|rayrgihzQmc;6GcZ-niNpUq&+ca6KKlCJ=v3dmhT%tOIn$vbMWsCg9Pi7l0L zk_|B`GO@P?fxOk@pjtz-5@ehKG$&Z6ZfRI$3JVNfQ?0co5L^(76%I&+tO6F4(KgP; z9=m*{3`|1x>AHxg?iuLG$OcYuYfVSGU-E6Vj=Sy@^j{e-#VnI!ewwX1UQ<%#v?8fo z2SPxUAkI|Gl7iND+-PrYtE9j}gCRv3?a1DhOr&~TSL&XUW4sJJGWvbM&c#WixsA$h zw!UdACT9~(DoDL-izrNx6P@iKJy&w@W{yYD1dlZE4UDPZjN(k{AmMRKt|4&TG^&UF z3)>YDIt%1OiBm*CEtp7ZY&t=uxb%{&pJR+By#i!Q{vnE5iTEdcJH|9g@YNi6J3Uen zrcYpSsIx0Dw!M97BxP)(tlrn#ri>FTCofNvX~Z!i)x3rEsf3AdUY`g&us$`!(2=`K z6;9i8qes~rXDVj21n5dphupqd7R1$AH*=s04<$t_?Q^KIOds8*ZcwAEbo6OkC(LiDO1Pxs=75wew1-(a;ZlcZX_vQ(gW6eE$M z>sh=OZ58J*;1J}(Io}=ush8N3jXK~(;tNRWbIjwj+s0ci5;qdEXsOmcH`7KYcI-Jt zyx^uNK%Q4J#IjxQ{qzqjv|+z@gG$_(S*JV;D+{Z4mzU-jR?5Gi_HL43yOrcF_ zNtiE?vlB_cG2uxxL2PpK=!qYD1(w(Ds>wH6O`NxG-kvwkqCu%mb{iDTF+D61okUI$ z1R%QmVvh@TM~0WVbt|ZY1}X!r@$CHJ>hjV=R7d4|DDUA|yidWj$KaT2E%8;T` z?-DGctg4EmU2F2MW1nf9@AcT z0hPx)oYajznxqEq1fVbozWCY>;*e}o!U!{7BvKb3N6fW!BuP_6%r{pgxna6`LaZPl z?O;5G7FR+|G3o>q>zYH5$Vpq`?(~>kuzaZ@M>K_mMlN|ULZ5{sz zh!>rw!1nv~gf>XxA!GA}S%Qv5Dz(#Q))Rz%5t~9p#8L5t5a%Hax4<%lr=Yr1FuB0N z=t=1V!32c5)NLbQ6z=KSkMU)qh%Tk%5!zf5a~z^WYW?KP$WXGHR)^8gz3gc01F3r9J5J`6h84% zwzjrb-I$%aWt7jJc^&7TAz-N`0O5AKX7n%m_OD;}FZjRu6(Fmc|4Y8#?rN=Vl9lf4 zLeU?Yn!b2xb)HxvUrHuL|E17KVP|k&2)+XY4>>`eD z8{s-maAdw9dn=AppEaF6!b&1-O?0Gfps(!<9d?T-HMcU>O~y^5%eu)+SvMUq1X@)x zYhabV4DsgacncHS?JP3{VorzdXTys#}&G>bznZ4 zGDpr4^Bnuth4C|919^qxa@d_Kv9+YSbq#pag3%s#sJxnhxyTZ z1Fg+{w5g5})RiLNx6N$%!qdEhCt1*(CT07SvjbV;3Ef|f8DmtDN9p=fBo>hNKHSJA zT0|#o7KKS9NOKZYDvjOUMkpfRlR$$OLr-WHfnUQspT<>CyAE?g$%t(1J!$ce*4s%- z+(uB?XJIk;M0ih-rzvH_V8&eAKd-SjSDTVQ#8q^_5VA7bTd{>UU5fd;a9TON`3A3C zu#u3;p|MHI4q98WSFDv2o&e_P0CS-*rs_)vhs3iS0YD(7+ce<|0ku%$Mp;eCR9$48 z#qip%9sGaz{$FAA^d-1{b>shk;o`-V|JT&jtJ7Cr`+vQPAEcs|&OLe@)i6PJ;vMDF z->9^Jmzp7-Y-Trj8b;05_KZJ8RF>msA_U>Lz3B@VKbBt{u_Zi;;%B-X;uB&fMc_et zc67IKw3%q&eT`?H_x#g3zN|j*j9s|G<~m^#4`uzZKWV^SqmMPgTb_33N%(Y;V-a)Jxd2 z9HHhAx{f1hwaac@l73eitL4g%gN~Ijl8jkisgx_VMiQkT3Mnw>G5Hy0%aT^y*vmX_ zH`9+~+&I^B_gqCG*+QhAYn@BFq#ivfx5-gAU4k-N?Q!ZcM=nv80CrjPiA=I>6+};) zz<-s|6Ff5^R;7vPJ(&Vl_PW}%{R{1)Cte0glLWs;m0ar=gq56|9YRGig}O zt8YW3ur%!E%?J-l*OOo?^s>Cp?B*3()k+29@*J~z_TYDVr|XT|Y{XB3I3%;yE~;1S z#~3|EB<;R-Gw7}sVj;43=&CwfA$Gl`04h(b-7ZEPA*MuE(e7%CdzWr1Cqb>N@k(FS zPIaA_Sy)D+D$?~_SxjdNY0`Mj;Y6j6F)lr71|8)*BnMuXQAgXc8}C;W5z;FMyF+4*5Y}FAn&xC#B~Q%pbZvs0)F0eP^D}=S5Kx{w^c+9ItP$rDUnmhHqXteq_5p`Dr9T{I@If` zG5fYXr=rV@sB_gL`%YUEWxG#0GC7P^9XP@)DAR3$3!Nt>^O@6pE5@MIPC}`R5f^2k zIw64G4O*3L$MaSr2PL%YIj6)d$T0O*VHUKr#n~1T3gOq-3jcX(PHXKdNunT5Z6e)Em7hex zPMH(U+of`gDa=)7Ck_92_h?ml7A8p@!RKM4(Lf`BykcR5Y?aE$m6>y9#DA?*WYN4* zJguBjy^L3)xz##1V)$1y;@nzUI5tZ`vglM+-pMVcT}h&E`ARakTAalgR1M&95;8*gFWnF-Vn{y9(g-YSH1`~=D3m~-(CoLk;Vz8{Gn}rH?3&AhcCF@A z&+IlHJ9I2hnLp2}Sg?9d5xW983)u)h`!sJVCQslRbdon!RBX2LmX1uu-Q(kECFSHv z)v-^`rx+X;go30IXHl(H3KB`D!i?$;OVKYy+G^RwXid^V>qEyIr3yH_JL!%Q+yuc( z$xd7($iKV9jmsH?1x|64I0U9VsK>|d?mJ8ui{a31;Dqx_l-XOhN{(g{i#XbYt*WcS z!E~+@>G#}=%SC84)r5mxL0QP5I_%JD?&@dl`rO5i$L_9(`^#@DpG{}&XT6dY%e7uK z`#49xNM+7lwMse+lvR>tij>iznuC9$=dPW{=Yq!$-RdsZ&!MwPR%sE%yVVwI9-M20 zRoG6b9J^Ig$hVgpo0~|Ga`hHYor$4q$>1rYER8PhqFjZEs*v5`R0Vd-$f=OwS&TBo z^$rzts)kcWOx3|9u2yoFAZbO-Y?%`dtH`%+!knE#C5lfN$I}HzSSG|RS1Bp08E(@B zc|3to+Bo0Ir6W*AMBe!pYpZy%%4wE{%83hbzMD^gcY~cMSH#qn;$$0DI62o7yHUKA zgDZD;%2OHI4iB@C2@mV8nm`L4r=P_snBYg{Fa<{R_*=)LGNs)Ovz=wMfsKS^NhBgE z-C2d8LZrw_7iCU0K17JfsV_BrNv0%o3h^Ofyv$PsZ|B2|(g6z?;By{3-yodBYS0Wq zZN}tN-GMDoM14A=s*b}f0~m)6Afc<76gV#bMC+T>TNC-GY4!`mkNOoh#S&DL!yA%;5p?|xCCWX^; z%bB`7jB2f*l~X9@lT#{JF{hYlQY+ZCx74j8Q+27`O~;ZV7u7OO2KGBgAOFXl;rTJ;gU>I|DfYa(Y1JoN z^NWZ|7>+?Zq^h`T6VLb4t564wXmy%Aii!w~Mm?{@&$NkhcR$Q zpE$M@p1Ku-yyBZ6_DK?Km;mPA&%9Q7VemV+1@G=x~Ws4&CX1 z33iUa1Us4Iyu(5*I!if**9m@ia^ctWZgU1)%)w!D>ocr~>wLJ*Sj4Q1>kP=llxcetrkQMKz*RiXBXcNV)-#&nhhYwi~+RTm>3z1g4 z3W#&bGVe}4C!>ef@q^MnDyDgV)|{ssBYV5JS|Jvq8DyspTRe3o{p8|w=4LAmul&pg zYqua{T-c@y+8GTUDlW->!hZU=ZbJ&?E~Yz}OtZTIOxJZ?lW!ljn`~vai&PY;%M0lR zkbW#Lc;&reW|6VZ<0C3$pE-_Sldsh)kIS3&^vwzD>9fxfA7rNIKEYaa$c`rK%wpK< zyG^k-Q-(p!CtTp(vUeoRe?Q+__qnB!$+VqgIlB6@&a|C+<+y zh|3;_uHSu~ftSjR?d|9JX3t!dSp|4pPpYjH{>Ghk>{z>6o=!iwbhP$g#X&%!3B=Ux zI6x7Cx&(;kJoV@y669G68C+?f0>?|PV@hluU>x5|G$bKz!lrot?e58Yt78~6~Z26 zf(qL636=ZR1_M<_V*@KYsq_VJqtHQlb~pZ?b&;eLSU|78V% zJM#R)=al~U%9Ts6&;P6VnQNe#M+>7mitA2)0^`AuHc)EII>mxJW?VQcrVu_zDVgyR zWm|Y1#_e~0{>480F7AIWUU+@~^F!JH7bXKo#Q(Z_>FUKa|2Op-|G&cfAGY-qc=x4V z{LIeJudID_ccF|Q?k=yaNgS^V=02NUUd=q6pTC=Vwz#yg=6rZ1`}D4}uf^46$FuV7 z<+<70nF46|(?!S7zFab%mFdyKmum|vOJ*DV{O01qZSnEW?CR&~;+2J4i>vVF!hE)5 zbz$WTv}FSxn=Ru5jnx+P&G^@cwV_Ev{tW&ujPI>Oy&SVRaP~ zgM7a5m9zNXr;d{Q(2F&Wp4S-9iVe2)uJR>v$xk~@2!1So?Tl* zuH^RZg{4~yB6Zg4f?ZYi36or0np<64$thl0n7w@`Q+yYm-_1Vyt^H^{PA{&m-ZOyJD!&7Zg){vM!5wS6t1YkIEYHs^ zxC?<@g0q@aws>o4ZE^1Ng`An(UtF60ynNTOoB*6lYrsyH=a-=e0PrP8|7NAN#XB7; z+=BD70!M&ZTw=nzu6z@)YqxK#EZkXMTR3LzE;_iouySXS5Ndv%m4&q~mI`ZiUaKsV zOLgW}QcyIv^3~n7<+2c77Kro7t$^E|TexuN?%G$mrJpU#&M&Ow7T<-HTU@%8TaGYT zUS7JL-vOYdh1vX}1BqF@ogTnfpDq9`you7n+`W~BMSE%Hm+#C1$@%i~g$syf?*i_$ zPblmWj2n*t;4z|7cV{zLZee95g(GgxuC8Td8Y;Pk0tD=WY+rZKvSvN!f zaw_I8iKFgkx5{_#&jWb_7(J>oqyKKkn!BdissKE6JiBQ&%Yx)oBz^*#ym@5JRp17W zs)Ni#rY)``a0;K2{PHyEF*;aX1Ag@8?b%yYd2#7px|y}9D?rG;bUj^MNx~pkCY*$I+`E==TVJP{_dJE9u+VbZBuydU&++Tr>0^nY_)kQsE z-@kBITb%uTVdc{!=7o$VZnlHj({-Q~Jkp&Z0&5ZB>jYX@2}gW%Q$(XXv;@!vaCQ@j z%x6n!B5hUzmVIt{`SZnv+#1VkccmznTZi+bmp}h9x5nzFd&oBYnn@%qX^L;@RJU{A zz@?jqq2rR+b%B)6eZDx~v9?n>RFzim0uZ^2)^1s7g0!z`)-%6ymQ797{Vn0wqub3-dW+xHEejSd=?CrK`&~*Yf*Vy+<>&%5Jax7KIm_{2HnbGZKiba2rve7-fD1 zR)=(~@Z0>twOeZ)3tb|!taJB%?(l)B%szx?ohOYII!;5JxQUER9O%0Ii=t5G@q;Lt8-&xIn-z>{{J@?(!JAjp!X0rodUHPK? zSqfW<$BRqu=U+PN-^-3AtqT>8?=RfG?JOW6(LI5?c+0W2wzBx?y|sl^7}(9_OgVEk z9n0o!&o16s&6WZ!hGKxZoTjx%m{=Vg3hIo z50=oCUWYfCIms`-cXz2gzvNsD)(+lWy_l7UWMNiuDN9!Kx|GFk_Cu5lex5Ykf+FWs zgRw2mFV3>Cl>$to7M|nPwb?s&^D5k1TKqDrBa#)wZL@ocbm_FK7`2QUv0s)sIV@e6 zB{;ea8E01!%BnY4mhX@vXFjWh64f%8TReB^J!KK#m5%#?749xBVWkc=TuhrNMu>DN ztBvALZ#y|nRp?Txrwhx=x92-m_-)6++_&%N9-)|kE0m}6 zssK`4Tv?b~%P)5@x{mUk9l_v*sU%ob;=Y5w4dii@|FmRA<|n&^nC_ttKHoKpqL zSG(wxt98*OS6o^KVs^8;ibq!x>f4Sr?=5lN`Nh?{w`adPqSg`J%4(~hEvF>qjL?4< za3$*V_!jGanK=68mHDnJm1l3wrj%%A)g#*yicY&c4T&_-@~11aOLL#$ab8K4&V51R z7f4C?7X>AEh1Jg&?>glub&9e}%10ZdD~VlEiXt7#!V=5igz%T|0nc@N`TldfdvkFK zdR|-k>N(!My$syVe9ntRCy=opDzDY~jn<&Xv`|=Fds5z3T*^ zf-3dkPWjF~5Xyj*3f>Q%&1dSYE-cL(%%Q6aVfER0q{wN##@Zan_-k;6rlA$nzQQV$ z7q#wE+NcgiAT-X-<+QxGT3*c^)8~i}+(jsep*)wl&{H*tz3ous9@WyaLv^`^92hL| z?d8?Xa8~b;X(dui9Bryc1oSkamk-OU>3b)k)^a?vi8UE*baN>}mH}U7F34DKzqEXF zcF~4sC7jX#4Kt0~D`mma6G>fIV{y?X#5y!XkHY7uD0x5rN*yUKh%O z>}{+paopOaiZlY21)trwREF|#O539!ld(?v@txVPGGMlje0ta z0heVH4$|YCEP*O4b;mMScniCNBgUzyk`7bHk266q;zqlkPR?kjC49=>{$_weVY2>G zq7tTK5@N&_vwtY3kOeXj>z`%+kG<&&7e9Upu7BP5|4m=IlJftXx_W8qb^iBP^7B;$ zv&YTGprlDPjN*Wjb^4o)7?T_(eq%EgQKd^~z_jbg^6KK3J~rY%4r=WvDf&;gtCekk zHwuz=9Qm#7$mg7J*kuyIc*4X_s_2sVhe5p^#Cvd9r+$6)0=!wR)%@sbB?1(H@4<1d z?zVTiWj{vzkN|ST{J?&-o{l@_k}VUw10LV5CO({lHilTCmGHwTsl?R{SP6TD zJX|4s1a)ItCLGC~#Wh+kzgFFdgSZ+cCC{5}HftDNj20H&Qe|QZV4d+9y@!66qE%{8 zEqemPuGHEgOasPkMBc;}8&EYiqPO`N@0Qx-ad|VsNqgPi%XRj?_WhgC2+Y0Jh%tXR zEMWkL0rn`h_4z>@ihlGss{62D&05fcwb{klMX<4fUkhUC=lE;<&V6z1+o4Z(~u=CaWmXCqLWJLN(khId15lz4V z+7zOq+$z%YV|*ZdN{NPAKrxU4_+$LFFeWP(bW7g7gtw)I@be_tOD~+56AYv7o~_?* zdTrRxntwCeh=8vl(!FkXkh>+{c$20J+T%vtw#GYJd8mQb^0%?jH#>WOA z23LGHfZ<{i4!^odTLkOqiRi!xGzyS8Nqdr>5Ufwur(d2dfcZ5T>8;gObR}-od9M@W zWQwz}$!kDyyI>&z;4pPSu#q%s?N;P*Tqob3!w6IQkcoE1)?$|ND!^I2p~l*hfa6sf zF()5zLP}F+h#eh?F8s@KIk3XqTh zB<&4YW+GR9unUZS3y<=XM!W-OkdIhY7hC`wL~M`He&C1Iq|#0ZDFqviHe)~_$$)i` z)*xvE5C)d@H@nqVDGJ*@CLITqvDyHKUeJ`m7ru+iR6_$ftMx>#IzB~;Y;EW`HKr{H~r5S*VY!6{QEF} zT&-K!E1=BPwXbe3c#>bDWr3zK^)kJ>)do}rgbn(K#`v&eeu{~twO5OXGS;IfMD=(E zUi1{!LQ+Dx(mtW!7*@C1N_c6^ zqFrRWaA!J?7#dsv7Ou$+Aiaf2@?5HQFEc*`Fxd+cI*g0g(r_l3tLiSL)Acvw#;(VF z5e6cyMtTN zY}c!sRRA^SOEK6Tz~AO3LdGtfsxkU9(MC>zKUNB`B(sTM75fKG2bET}qG2UzMwRO3 z9&HV23&g49o-2*rT?8hC0qAP6HJUL00aSLgUGrem zfvqEEM!kdk#++}X>DPd%tVyzu@;k7ZrL9ttH%Lq<#x*P9@bCj*B z4&oK!iQyHMb=+TVZ%Doe_>)Fb1txgU3t9pQ9@l3kC$TnsDhVV*L9sj!r-to~KoJdQ z#2xfB5A8xamJNQ5}UqxOOtW+mL4K&n8M<$$&u zwU8AE*dTU60Gr+sly{I&Hn@art_b?Eal(P{Qt!(Qy0?uzl)b&$NzsNKPz&-O{9G%sMh$bCasim-Sfr) z+*lM)EH`O|kk$hS(jp#^+9a}NGVpa|qrPoNi9j2KqZJ0g!_EAflr?;cOQTeAtP+AI z5Z91SPM#(lsG1z*l&x$gH5ADv=75&s8I&%z7o`rm>1qU!K@#Z&~|64Izqdqgwbj%rPqIBjGn`CcDrAwhUws017ixX?-++1CS#E2)Qp6;7DvZ#7wnFJ=C_O$PD7v zDA+|2F(QD(CFBiJLuIC=9`SG~#apE%FtB`I_dk(Dz-R&FXCMRv(jzR$7H~MSGLlvh zly(ys0?}d%U=&3_hVkyLyAvXJ0^ND>c#&C+ThIxdE@%jvdEBlc)!%^AOT^opR0)HH zugnoytVcEbShKp$DE8Oimj_@SNi_&0&~T|j+)@5%7c6Z}pJ4m=!wG2OpoM;rbdYAR zxIX4G$Ri~Q9gK>=8^`3`rZM?*FeYdZC3a%>@f4uEqg4h*#UdvE^K*DiXa)zE#} zJweY#UltBiJ$d)5J5^7^z!Ufi7)SNJa~YqM6gF(cTSj+Mw9-rNr4Zp0q2n;vJ+-+4 zZiK>u6gJ|v!rVjgCJhYv=nW;&VOK%;IH*@5lEY$>|CvyGB!0sjV@&Fj5No{w%d=(X zu)~Fx6MYhGXz5OEqBzK@VQ;pcAj|tiv{*9Ru~*9V{v4n)I0M!8uF=8|MgQAsG-@v+ z=hyScf4mC(-{q^9uD*`{_`BQxFxsrvqq3yXr55mE-y8owb@@^{{^!)ytJAOf|5x$j zjQ{-snHOPtlM)%&=v=5{MiJT>p{n%#1Q^H@iM<0&YqWTyY7YhFSGMYGA8o@}??O;Ul_kl4po`dWkx5|7!-xT6D-5)MB>JjS- zu!jyW6ueHQFlcC_y6Ks6c%@VJ-31Nb#d)u)uEKBL9MzU#p~(D^;Z z|BcEnaAmbpbMJfC|4dI^x;mA~|M}Yf>(%^>j*fbG;Vbouxb&z6CayI|lAy8;oOP>} zkYEpTMGJ3qflXh7^HOir8e4mKhg7TiEBJomukht!Sib}rL;O*Hi+S!2U0?kA`4G^ar8!fV%!MmA2jYV9Ha5XfXz`5UF zT>ETs$zS_ycFk82r`C$t=WdlHV!i-gK%u`6Dw0~aDDF0jLQNK;?85iw_Szv4!JAuK zeL}Jj&Zr#&vWi3_s8>JRc)b}J5Gexb{@2n6QGhMF0gVAZ=HG@C*X9l%~g zg{n};)2kbe);51i>+HoqXbQ&6Gp!260E&v%#EPmDY9;a!2a|fOv{+gz5p89OkZxr_ z9E_lqghb9*XxT~G0*_(mct2s?)$$5+C%Su9f}L1433NsONnCBUqB<&<8Zk=rYASfu z-i}di$=U~29r0eKc8&@F-}tp)BdS3w;=WC8Y@%;ct=+~s8sI=ScLD@a#1E2f0w&VU zwESIK{SCT^*ratK?UHqaD;7`of=5L>!V3uGSTd$s+WI1CS6hKPM{;xZ*|s6EBu}9N zwvhmDoJZ6u!?D41fKu=P@=IQ@Q_tF>QG zm!{vA*XPzt;vv*E)*PWqthuq&u>I{?3tmU1)R=A@L1`?2JuH%uWP#uwJ1m#OY6Uj0 z1gIZQX0)4(8O`Y?ONe0V;n?Vh$@LGDQU61$xq>kOU|H+_sDhUnpR11+1w+W~!CVAn z%}J(k4fbQ~*l>m33tNqN59U0o_{-5(1A8d}B~xFQrQb}$Vipb!p4zTz6r|rllat4( zaqzRzqJJ|00pWPyX4U1LEoaZ0QSie$Oq+2vLd$pSCGqh2&`2Pm8XM*F11z0_^<>Ok zc=dF&@Vhy=XpRgof^6lRqp>TAifr$1h}hX$_+u@=*Q0#21Ey3sGHT|b^HuHvhVo6_ zmpB1G3bdeG7K@dOe3)yQ3ki#L+`cijQbl_;ih8MwYDPt4ZpHNIv#g2Q=^26^U}uV|ef&bL;|FX} z{#^{I9=0p^A2C`9KR4TTYTt7T+tI(3Godkw~@X7Kzk#M++~3 z+Ym*$pqnjswD1@+(06DdRi17Eq^%AkNS9{#rJw_|6m)tMNKKUFznm$~IlJY0d)K+m zSn$K*?n33eT<(CZTy>7gCtCc00myuuH4Jyd9~h_Ox%q=8@&~%1qxb_&*v7}3UGN7m z`(;95D~%_)OzPJ_=*I-QDHI+2o<`t#g%aUC%#0{2DrUwuuXnTaFnNf%gJ86mTP%P- zw>$&lxi!muv+eJQX!M%yi%gloeDd2d&KHe z9kEXjI|&YQd1=0mbC4r1bYfW8At$r$^jP&fC*WL)Ef(L42CBMBi;>m07KCmX$P7S4bm%N5nqli6|@~0Sd z)6UZJ+CqLC8HOgWnJ)zITCKO@M%b=Iq1}+d-{du6L`lgVkDJrzsFt8k^69aVE9M)O zJ9vTo9C8Kl8+h%We(aPdzGhkCVMc+(g%V$lJ|u0D5>T?tM;F43&3s8PzOF?mITh=T zsFph%t@rI>JPswXU00SvWm`9`hIJ%ifW3mZfo`K3hxaE3?TbxEb_!lHnpUdgblZel z%Vb@B1jUz2n@jqUAuWkm68=c3RPsms>YEZAZ&wmMUt5CJC=}dN zM$L~wWazQ$oKd@DA0`EA+g=cZwB+yJWjT6i*Qm6q@p76t`S*DBa0m0BZ- zOpsDf(imwi0@#yZ^6-)|y|7WC3E}3HN@y9=ZdGfO!a2OOw_DREk`5YF+zWPVK*C^- zG#lAO5tqb};@V9RZ_IJ=f|S%yvPU;=!~UbAMS7U5OoEa!ZJhB6J;az>t<0IEhoe{l zXsEH)Mr|+EkOB*%9c$xL>m(s?Itr_;(sm1%%QzuifAVnX&9diU_Gyjn@ks6Wx~JZGWs8s%L4skvvg}^K}x|WE9uoQ z{8@nzId7Jzb?PF|NepOf7p1sx6!VmzblcRq*Q6{ zwYD4eiHlcCQ0;~7|1Mvdp0@4(r>|UmZU6mhelDIlwVBmfBPQv(ck_D{q%R>!2ta2uMO@FJs9f6x&yTnYdzs$I24`; zhr^Sh7oG}FhiAgG;Tz$(@Xf6=4~B2`gy+Mz{-`H>D?0gI{{s)cza72<-`|Nm_3{DE38 z{tLvVONHLU!3ZO&z=z)P2Lo#>_ZA)u-kiO?y71s_PDQ-7wo;y7xVy42hhd8k&v3ro z+1t0_^nG#ohV`{P_uwu2!TpuxrCSfqicF=LXZd!y{NTr#oOLqH{{wDt`S!fX`O6Jb z4B~}bi%S?Q{`TsFH|0YNy3UVIaa`g`xzS7>yg^?Yl~&ZE2*DOJ&@U;-HvEcufO7OO z)%c?xpc?Om1L5Ew^#a}aG13V5G>CKp%7&0uz~2){FW~Pm(hT@}66pr~^_XfrIK|ZB z0Z@tXNAUMd*bh|UCx<8Jfn!0{M^fn%L+KO$=5RR3x*zl&^pt_D!3({(J13s*)<{g~ zI~+hcB0d3?{$Wpi68`+@-w?dxyhPf*Z&FXb`>o=hd*3fVWiX7Xy3) z{td_h{!^s5Fu+GJ%+0=cd!F^TdLQ*2^ncg;Y~WzvQU7;6&jt?$9}R?k-vQ12anG|M zs5^Kt1m!2_`G9yn49|xShT-|i)(Lpad%6VW!{Oj}z4JW}fAj2AwddLCgHw-AhC@*M z%t2q+vooCh(E)tg8HzU!&V(m`{{C%f#XC3!t(>m+9C(jT9i0BIx3}lpjr%? zc;WEh>3??i;4CcW$))|l50l9cll@@Ic9zHxAz(0q>AU0Mp#%rPf@J;H#)M6gKEt|8RdWLD# zY1-x(H|TJ%8N^9+cw!6AX`|6P9DIuKaQJQ+9+b0<|CpXTdl*0k%i%B@xNYJvhqy;* z3Xlj0wnr&aQ#>CYzUqmz_VfT>^wX} z!2V-+c9Nfk!w19A!rwoDPe1NydHDI;>4PBv_F)3{X#n;i1n~WTPbnPkBE%#? z!0D*A;4NBW zQ2a5Ly{*cGXEA}~ndm7El@VwB6R276=n%v|#a}j;Jtqi!do8dP|GeI}0eH{$?w_%MS5b{~0&WRr|5h(jjYj~tfL!|k z`ugA-quG9XJ|LbC095tSlR) zeB_Z(Zx5T5m(GHxAwqwf-{HdV^~H<%2ii zvy?1}ygCoID*h2WDALHjA!Dkpt;k~8(Go?v{)JY6_I94Fya@bc5 z5#Y7CyeQotDorB9?Vm4Y$kP5hB^MQn2eHAP7)kVg-#6p`0z3HA-m$}z>fWVr@^DyQ zlpK1x(|C-=vKStoGHl=hnZpPU-^|>b9-d2IeZ~le`$HclCBPHnAQR4yui`I6_4w3- zryt`3tX?=5zoic5dFx>EseBtt-=UGk(P4km-Z&gUV#SC01Qj$AI(&yi6uT{nKcvG2 zWbd#aFc@?(EYISDp%y7t9}Kk0i{XRQt+Jj!mSMlKj}=b{S{nZnzj>O1J~$(>22Gt2 z0CxZ2jHD%HiVAX8PC9k$;{tJ+a8mCw)#^if^>(kMTW8_-*}n6=r-@?me?#;e%T812 z0K9|$z1>I1q3;}(pM%oBG#1CtTkAIE76o|(& z`0Eo%vI?h6zQZAqO$OqfyMrP z-vMbB!>B;*yZ|=>wf{0hpThoU{UL64KX6mM65I&44#fW^JRNHF0grX!=@kihz+;UO zK=m^~0iOgII{p;i2Amv!3Y^yfegb~zQ)K?B^j`%oX^^<6p>PO*YKUmYU~33y(h1FkKv>o1K{_+C7yZs?3rhNqf!3fhzf~k;#dqotpU}-e@(n|idr~za0;IH z!Si1n3?RMJpWwiq67PJW-{CgpbMq;`^&@`oG>=x5pH@`!ZyofTPqBXetl177bPo?1 zh+6pktayF~=634f4ADz`{)Tw|20TBF^zhj^T0;O{S)HB{z?DC#K#+Fe}ACpe^dC=-U2pb z5Uc$+t*?`Dw7LJb{YdmTsZd1sSYUtH_s75a#`DMjwAYWPmV=?eC zB8~^ALOtXMCz|nY8Jc}Cj2}ou>}?+QK7DWkh$*^~JQ&6gxR4J9Lcm4>?}Qn=b6Q5{ zabX=qHvb;tgKq@Z8NmPg&%8B?% z_=K=BuaCVR1J-&B2EXj3OA-DtEROxU2z876R9r>XYGc#ChD&#&R4QGgMZBTJ%aUqi zjkCC*ax{8E#)>i#2L=ci)h(l$pg<`E&?`oio245Ce}!#M*tt$rLD@CgsW#23m4fzg z;?RtFm4&p7a|FR!U>Vc!jf%8DEP!VJXQj!6qKsn0ED>K9E*GN@QHiCjkg$7MfgX-N zj6Xx5GJ)Vpl8+C1;cx$UJv+nkXUHm|V)474@A?4hd@gx3 z7!K_8#s5Pt0rnDE*CC+V2gF*Q;OFnsJM|KL0|qnx+f+7em7SNYsD5Vj;Xxn&8PzzI zQ{yz$_ zuQ-r-hE|rY)f$zcmfR@GX7*2(CI#(3><1bahR6$&XlltH!oLXoGIgbUBr(4kCHT(os+D#BQ4u^3;pFlT%%MO+9awyz7(K){VO}CLU zzPuKrWgf6TL^^~|@MsZ91$@0e${N=LsmB<-;V|ADW!(%~GpAcee)~pxtiphE%pne6#sR2ahglYSh_D_<24TIko`dJDg{oMfC6^bKx z*x%TAba+yl7bb^Z3)9g6F|NiB&RAB54^AKsgAeJMegVJ!P~l)Ym-}b+?5H=qm|QBH z#oI)-T0Hd1<=sZuuHom?SXSE$x3S8xa<8ZJ)2}L^hd)FKwu3A z{s^`oErQ_hAgTuFuJ>f<(OoYH*?8CcR{)JXI0<`k=I|V@$ESR^%GbI5MsM;TY5B32 zDqZQqUiXxHTYVrr0D%WaS<}(}C6X@p&lAX4u}uMbzr?wJ#ljyN=Ee{40j?_m!m!ke zJ~#o8K^MinhbPNrGA)MX*QdM_7&kj<@=GSY(Azh9Km)ywb(8hfi26;s^PV-Lux|_K%U|mQ z+JfU6Sla)&2qICY@d>j9&TI_hB-JAf_GkR3Xzct?73-cF_`6O89r4i!;Cfr}eFq|1rPhYG{aye~UvqO*HBB(C`5LcZy1oLb54;;myMnWn48Nkp0PC!plUQ z$STddhRcsA?7^^%aT={2dJ`8gH583`31-h4Q|9uGq zz^3f~uUx$JI{)V@wg3L#t)=Y02c-4hKgqZM?yvRl4m=nT_TJj|d$4w5clg0DeIBZv zTZ1s|TH(B_FC!+gZ%i9qI1#t=&kSi9=sjB{pcNKAO6;B`|#KH;jit(U)zWOUf749 z0wyYG*IF1J5x?S4%Vd)p!`HLoKIJo5u^K(;9e?mPah02K6dh@TeaSMx264PE>_>5Y z3q^D`#3nYDL~=I6J`tiB$f?5-iy{@q5d|o{joOL_*3YO}9sw zwXNA`wrgapNdRPoKva#T+p25>7ZgYJR7>62ly z`5Gd=e*c^}Dq6oIb&@Ad>GMC97r_Ili{#s$u=mG3-}Qlj-v6jye8ZcdLHvBJ=jjSs zd4b&d**AU9hMt``7$SZ8gM$-c|4x7W7tm-LO>jW!ymD~j5xzA*y7J+JVY*Def;Gay zgW-33xYqq1=xOM?9&R610%1Q$uV^6Dr>@}tLo%@Li~l)Zgduuh>#_PUwC2(H2S~m> zJRy+R;Q(&;VGr3y?hl}4$^O9C{=<*{wAUAQS7brR7KXy`on)rNfhR$2=dd4+C0k=? z!$da5D4b-=WG{>=4NmIyU^xdY^qr$^J>7>E6X!t?=I`e~c-ucMw;G3SsiTzYxhNEqh-s@@*)RYL zEH6dST74|+5qI}POJrSb;Z5r*>!6pEfHZIfX0oClq{Eh)k-pJd?vXcIAIKrY2F&H& zU%f4r{e?a@A0=bYem2Y_J8WO|q`UKUn@iHiriYXVr+Wwb(Dx3 zvYHq|r6paj?w^{I2=&8c{|ttv#ZQ0&;p^!+#2)y)_+b@oOir+jk6MkxlPZca8^V)0 z`l!7AFAVUi`Lv8X(H?8)(>o=@v7qLL6dbT{eQ)=^+xvF!Px?%p!qt`v!`)m7C`Aa_ zM6ngqn7SZ1n;i(LK1Sr`4fhZ94xc;y-tcf%+21F*ifb;%t}Ye*;Tc%_vxje@Qi+#e z@HTF?!8h23Rv)nm{UNap^m|b1$A`3LhLC@M6$ry{rO~cqAeqAj;M>iEK0M28KY`9?@uk)P8bSP}UUF&cAME)toYkv9pwlJ{x%Y z3uxm6o%-`|>Ia_<9Si|^8a^1j*7NP=eSC|pSpRMO^vF8^()#EW+fQMO@EM-dw*eU0 zNnvtvcvAVvu(#R%Tc1}^Hs$!2;^LIBW#KeI&*5;Z0W8(ysK%CwWO?X)fyj9wjvFx> zEe_EQ6Qhh%%7F2-bfp38az6RaVvk9LAutY=FN$j^6c(h@`MfG`OVPnvw78v=>KI0~c{Dc4tUQwFS zA4#>f1izCmVxoA)H}K% z2X7{d^%6TTU0w$;NL68o*=y+tEo_puMOE#TN}s5PgIfMKd*pQ;x!e)=+&h4PcTVh} z_I(znScSnf%w14`=YlUZp8T5megTLp(pNGGIzi)LcrIJ_KQflogpgNdI5eEgan-!UAa?f5<*EhT&cOAtNKGJ;5O*!S1^dV3^rO6)bm zOv*Ld9cd16SM3T(aVPk`OtKN|qHG&Q*r4&>QvJk-$3u^2b2${+oJb#8}+; z4tdC@(_)j*mcJLR*M-3qTC(>E%!bMhVQ{6k&o;Umpb2SLO6G*5`4xeh+wzLc%MNYx zt3zdem6|kO@cuK+*`GEHuz0%IpMr#6hyV>V*Z-hbLjwBipm`3t_4Nt2KD5&(Un?#r zi+%F1GU^N0K7K-m0|UafPX=<}&<#W6g@tAX_{k%?jUn=LLcb{dbee)Q43Q@;^0h@#M|$B-wWlgx-&P4u%g-9-KPx4o<^9ojEvhaJF^kyPojW z-#Pp2{K0whqk8M;+&7}49| zc|>>z=K=2CSz>NV`UM;$&qmyTzA_+}=iu*<9Xlo2pE>tcNPt~(I$p{HZ8#!VR|BiP;V zFO^Dc*gPCY71B6>P@N?4uo3_Jp5GR6sGJ>t8@DrvdHxmXKq8PRhBYPh9w|1L_UuYt6IJ7C; zU^meX*4xCjVIQ^=o9y0%59K*;3RC3(I%PJ;1vI*Lj0lt`N4@M zH*|Q)7>i3CO2%&g3#1mCL|@L6R~-x9>Hp4yU~YNyn!R{= zHh}(az{idQA3F#fn)U)4+Q0o095D4}4qyS_4e|9%fdd}s4Im2e(~NsgSzUxNA?Sx= z!#4pxVL?MnNqSA(JhuEkK_e$kL5k8Hy7W>Aaq&&|a+kAV3j6d>^lEeI_SGTC@_ z`0wK~)c-0A6YzcG0OWd#3^Kek7_WtI9l+b6hb@F}>(BKs=?!$7d>Wpi=Vw$eXW{8z zMUAFIXS0^%!+b6TRw6*du5^OP4@r`%d?t?Pc$zVe$8LAKOO@X*vHS zT4zA1Ip)o6FX1M`M(TT!lks@iFK;~gwwPs1RB4ljp>I_>iyod)Tq07VI1vGYWpCXXM*5Vzr?qPq#ULn`Z?o;uBxjbjp^ic`( zGi&<&OYz^u5&oO3!aC8#P9Oe(ldIN4BExe}%m-tL!AuISnYfR+q(i4oI`kiPqC@|| z(|H1s?g4!ytAM{)MVJI_uXP%JRu+dS;~ zTFjN9HAcL{kUI++?_KfKJeR!iUJx#JOcb z1#OnW(Z5PJ(5Bx%Uf3D2HV&SCgZ}>y*U0-{;vR%6yl=hn?FUakCb+sl8Y;TI2>S($ z3J?<6yW%SY->N_oPIq$)M_;Lc5`u}5C{}Ye;NhU+nE@T4c;R(Jm zBqBE98_jR$pZ?LoNs5{29e7lJLd8cq8UHi*J1j6rFKH1^)AN4giPXP`&5uO$i{Dv{E5ik*_56*BTPr7@jd#!ID-`5a;hGJ*;e`{u) zNu?-z5hM}+cU0(}A#OST@8XlcD;0d~oUA$MzmG)m1RD9kKMO+)+X9V-z<*nT;W;OM z`0q<35&t_9Aer&`2l$I1@vjlg!ss5HRGKFS&l3(9{qykazm70^g>gk6hVa3g+|vqA z3^V5F=V#~ohI`NU1Fh{l--lH9-CmO?>7e&=6Ww2#ME4gKUp|uI#5JRLctR+8;E(-Z$?aS?ehsbe^7qQRCxgT_&m>{avW7YF@tT$U8c?Gq#y z5#Yz){^IHM!61~6ld_(y00;q|I2ZyVdBQ?~H*j&jy#av#i~Btsl&2%=8#JKre=La* z!5qkVHp0`mF8&`VsB+=A1Nikn!tXzE@nh&%v^EP5{R(CR|5 z)BkA~;E{RB4IbP1;1NFkLjsRabHU?R1RlTW1Rl=`694EWfy6WT^}p>EZqja$c-svQ z4jt`F#u!4=`&=NQHR@t_|4&_jMCPU6Ta59KUlMryMfmlfAAvD?b1{bFS|by!fmXC+ zg2=Bd5E&=!1*+9-P#H2Y#{gcg?Du;Z)7tY+`o1Z>9-fG!W-X{hM*`2g0uJO=jevsx zj|Dn?wpQK!%I_`U{F9diIDbLdY#a?ZA2ef@f%qHL z5wcE}R(gmdbgJjb{SJh~An!oQqd|=Sg==mBnzwW~{4|a>Nt=j%-49L~7jm?MhbOT@ ztJC`kXbD_Ac$)#0w& z-G6}wFP81J#gViC=38WC1Tu9$f7AODRF@YA* z0~iPgLsL*muLw@j{|IeydW9R$Am1118wLTphl6oY--=jC!X7;P)g~LM{=_g@CVlz| zOb=X(>JNrC;wacjSWF)ztK!3cboNOB?m4PgM$64Ir566EPifYF0`krW7?QM)jqZ6l z(=X^GDud?Qk;N9K~xx%6oVh`G~wBIi{xY5JAlr!{2Qv zA5;N&29^$cpX~R4n0SBMTZCi#F-e?BD{Qn|@#i#E%2CQuWd|t-skj6?9Bg5z7m7o1 z*t>byn|4Av9Hiu$m->_~)-XwX7?EwbcmE9opg25K{Le_qxm5Ut(`xq%Y2C%)EWVVt zYIKvs>XpB#B;0>XDyK*@LZTl+{VaBA`bp-KLu6!Z#+za*%CxG!Uk=u^qNMASwwH*qRm8OZC9-(hKackWJIc4 zeJXU;a5^THGSReRQdzDxr_E8zb!eNfGNEmzQ~=t$3g{*zc*Xx~who^-zkU$h+BORhKzVWSbD;U_k-Vu zjd(x!{iG4^hw{Njr^0g}?)~eL_g&9})6wZiXH;yTH($s0c^%v5b!?y4v3-6oV*3oQ z39l5l8~x8Zy3wNs^zh`Y3~G{b_C`S=`O*lvOaO?K0ZBeH}Hlfq$9KpHf2cpeU*k9b}T5E(M!S7s0c zj4WYKT*j3c>?+jsIhEbQ<(`RR$!^z9^-4AW>G5_&Mg@k1@-wjOyxhyrV|_rKuCNX-Q>`trmK-Y zQHLis<0__%;2;EMBHVL^!`&$v(w&bcX-a=-XWjIa9#tRL4^?!7vt?krW_1vzU$N{@ zdf78MVKz!VN~t`ifG`$PZ=R$1TVFg>WYri%iA zzeoM75TxThK&j2_<9z}h{k}uJNG~Btny3Ye12T9I>QpiC#lzDWi{k)V{crSri%Qqt z{XUV+5l~%U>B3=e+ClSAy=#aX5GroW$ygjiJ^SP7wct~1M)Z-d?GJir=EApTLmwuH zbug06Am?#?OKE-IRaveEbw~=fexXPNzjEvzVuBkw;=mB)l^CYvcBHv|*F8?l&34c< z1?Niz+La3;UDD4;S^GBb+N0i9pLV0gz&~^;(7ROV=h?g?v5>%&Jm?>(Soo>ok4bEC zT4?l#$;9{VzWtx225teh6>LKJ()@%#?hz>)0W|tC2j79R*d^_8`A>T%_Pz3l$plBv z!)+IVu3!eI)v^1LL-le_#4lGaDyUo%+A?y8_=P>>boJ*Pv{rfT597emq8iS#^3^|b z+;32PYdww!sbT-z9(JnsQeilq4p@_*F{RU*&Z9_pk29gd8ubpJ8$L69a(IZIKR-XF z>|B30{FrdH989@dDn82cvt(9km@)e$wN;mG&g+V1x;o?PAdi_+YvR@|52Yi>kUm*l z0Fn!I&!fT3A;6Hm2h1|{E$z>#Mmg#u@J~fGU;IJ~fgh0A$-j#s)x#x#4}~FP!k4nM z786#11YIcZkq#N~v(!`-`;-r+F1WlX1EnZV>EibpXiGVPx|yZ_O_$6PT4yMBX-EJo zx~liGi7A6AeH%8|q>~1lH;CdDoxvqYcI(dTpY`Az!#CVf6n zpU=}#d27jtt}v)r8RTLFuVlJ7lP_$yuGv{v?6kAC!!_IV!!|gx9RF)#stRxM)$1vB zaDQnrV$5&d)w7sU+}S589?W%>Dd5kkI6j(po0SaQQAfWauZAR>c9ud6op$`U|E2^u zjSaq6nt#!t`7_G*xwn~~2c|IkOHPXaBRyhkMe`$*v^YPD!eU$fh`m_o;|N%9au5~r zy!)lv!BORE(`PVR>7ZU9BQMj{%}V3RzotdFVM-aW|Bf21S1%9mANMF}`DB>2bMXBQmmQ$uEw zMPA@EnGakgrXvM5vi}EWt&}$gRrrOfKiROpKf2F$COer1<}TNmR$?;ayByt`g(7A9JB=6!!{h;-@BL#Ehw8r&<>=&k z7c(}c?t$Ta$+*?UfSgoX(*MlVN}<2@yL~?) zkL|M@keU}yRd*X6&+{G%v%wYyHtWM^c^D|Z+U zjSqXD6oxq9B8Mj)h@&8sMuYQ)(cln+0)^E}M>Rw1!4^PCI}^Ep;-vi_daT$49wmIo zD0gzkP-m%dB41ivlIgFU7-dn$wi#xO;tdZBpP{F2OT0_R48lkjc_%Qt>)~lR=Cvqk zWpe(JHQu<$k$7bDsw^YJQqIRoVn~a_Y=rCH^+pWdR z#Q8oL*b8=RhXb`n5RzSt`CY4HRmJML&&FOMK{R49Bd+g*6Zjsw`1OjAQaQu$ zXq;5zzvwY@P5#IliLT|2q%RXYhJD24Q$kn61abf8#+FKHe>w`QtSuE6%h>0> zfxgso>n(HZGuKs`yz&tiwEv3g6@l{qqR-;#!QuYlL3(Of6`s|h;8AD$;N0AH1f*xX zByXh|6-hI}enllOD$2R2GWy}j9}MAK;7qJ{XC(M88wvKE?mPG9*^B4Sp8M^&56``W zV)twNyC0_gpDXdn^Y_u&{_pbi#pz4h{%;EEO;2CAeCf6Q->di;9UXmbMfci@?zI)& zYb&}Rs1+SzD0qqo5OA>k7)PE*D8TTL@I{%CNssFYF9}(0q}H>_r5A;)XNSw@s?xkn z)*1IaD;_uHO>^bt8-3_`#L)R7q0boeTZI{lWim1{a?JF4@(q}+FJ*`^G?pvU84>N8 zHD9OEd!0tF!a6uq&ogl$3kc)GjR$#1Pml|7so%SJc z;Hxvd6@AX|27fWb+x4#>8eq*9kl9hG*QrC<6yBSRsd<{6d_5|LHTuvPIrdj#%geDN z>N<zK?*SA-7*m0(0dqrIP-zO3zEzb*h|CKG;^tNFi#8je!ESaL$xu~jXq zB~kW8ku49V0xwXeJ7Xz|Q({*NuHnd6MZTn^Mm_3gV51n434Y1Pod&iJc@}AM~gn3X#CAxcCqS4 zL$oxM{&1||nX$9*PKS&23DUXsXtu^l(Q5~-{&}^0Gd?H%BgDYCYld;ov+Pn5jHW@r zpR$&)7OADhMY>?mO*MsUd*p1SQae2t)ymhSM%F$A8S@l9OdYwMXip$#b>1}IDk)p* zv4U&J3OKFIfY_zcZsEudB_8a$J2Ug3>J8Ue^q2*S(QoQDglnE7mG)^Yl~8ylkCzZ? z0Ar*y8SxlaLVQY-3{JS0!uhBvv@3ExJ_!_dkx0>JK@5)2N`9Ayk0wl4S2fbpr7Idd zrQNc~hGpOx3dbUW5_x~|w@ zVpcmH9-g@Kzz|2H5AxUWBGLqUH#F7%g}mLBm8^yexnND) zu>wAw%1(fuz-2J!7oUsB_bSFW#*9Q!J{BaVP_Rx;_8>g>2?!|H-54S-W4V}06gr$0 z3oE3NkIKn*#IomNlzcjzh3kASM!>VxL#9%?e-mhI=B3LGl+r|z01`G%V0w{f%`IL2 z&J*W#5L!jzxuP#2==!KgvNxJ0KB_mjL?Ro2V)@aoz_LFS8=3&45vc~a?jV~)L|m6jumjSC#un;2ra&2S-?h(+RF}z$Jlg$)I<52@RR1BFh z0Ver$pYpjG>yDS8W9t1PbzD%Fmt)kK-Z@RnQbQGKOi^pp^{Dgh%)^o*Az9>;CYaFm zC?yubb)fc9D~KPy=I0Nwz*0jw8+2`iL@4sAa%_B@{5y;##5+r|ek$`Cd{mj&QX7VX zsN65ni9H(2m;ukIZ1iiCGNm8dL+c%p$4#9I%oRr`Lk|O`>5_do=uLP^GZ0M_?f&s> zs1xAcE+^=4!Xybdid7K%@%4p=MyhiIwP1cF7qC@LP}Av`GJvGgn~bIU#RBTr?29rt zWyhG#aMp3WDhzX`8An<)YRM2gvst1tGfL+O8Pi=BQsPZE+;*n5yo!0Pri}Vs?WL+X zTXF=<%{1kx<7~?jZ8g)DqmHw!i~~ZZrA!THJ1Q4f=6y%tPiG5m2L}fJ8C zX@?(Z!f~iO?@ao*K^vK8ooA5_v_LyTD81u*hT{>vA-;EfCmq27UUcE~j%~P4G_~X^ z=-8Ha)k57R@sH0u8zDqO>tvs!ugzB<+RBD%u}NwMl|L~}TIto%hbh&AqQuZy(?y7_ z+RdZLx%!k*>onz2D`8s4vC&egG+OX)_!CpULt`)5lF`v_^!u`QM$9&HAX@Wd{gcf3 zIqDd!ey^j@thzSd$VII9GiGFBEQ&;o1$^H{256Yva&Zg?P{d!R!Zbxe2+@)&DL_`W z6A&uw+B_1w0`SWbQ++-DjxPx`+w2C#a&5xmqW*;=>f47X&-WT7?0l|Qk9vte4kWRGt~ zSS8J%Gq7UGXyHf`1HRx6@_{$^##QR;^3ns^m>AC^X}|D|yqjXB z{cgo$k?V@KP&ndEyf$=9+HsqB#HH=gSuc&fF7iE1>P`XoL|uvLd|sm&{d|tXj^5*O zI7}gMy@?BJIW+E~Fdq%1W}mue%2VW}ZZA7*{_z%vVAa_n+YNn08)yvg`(Ivj!X5gJ zGk2U&g$6Bn+_3_(xETuqM#YjnNb zahclGy=|l8R#W30n=;d)<}?SpFWc+Xl1!wkwi2SL^L4X8>d#qSOJ{9Eu4!qake9VKm&>^9={ri!Jnxw%lzT z%_O?8+cS4t2BykrbJTSJt6ZwB43~JJP@+`0W1};Ug)z+g=zI4o5&( zpf)?%$GD79g{%nsIXdIzf>(-wACqW55An{dO#a}GLC)RR3e{HLgiKzy(6L1|H*U16 zLu<$v_AQBfSm`tiCKLr}{BpYt!j^M2e?`Vn1?j&^SNdAYBSjplP$fQwBQ z%R73{1pCmjrovYvBA5Ay5Fm?sDGEolAd$P@5xb{Ue3_KnuST&ay3JQTJ(o(Zqm9ln z7_8T<)JtHcGLZHCGy2cNL%r|MCP{l2O?}Aox>2v~!LP`dLGPL%>q}MTOX9)|5urOp zd?xext2w36?e}#;U6yaJPw1;Xp&6+9;hfMT?xoUM-(Ssf5Z!)XN5W--`T9t_V);J} zSwBpo^$JLiv}SyzCk#6sb=~9LNBKKMS0Ngg2vUL05-ot_R{rLuh1BETA)%5jj zQtEhIVdtB*pc0LZd{g)Rk)jWO>8i{hDSYzWXE|$*{rV)o+LN4u-+yV(v1Ok7T!;B- z9Bp=al+k`mT>TsU3NzR2ys+g~wN;DU(5{Nzu&0VaxITLQu(niQg@XT)|FwSn@JRDM@(Z9? z5XGn-l6SyLJeLXWV^{^;DPt82+7{h~l{F<7Yf$tArij`g2^vDc0Y7u+uit}ir zWGZk1IXVU=dr2v2g^hNr1Kz-jT91u>n4l%nhyG|$ zOte-gxW<@+3`!Ic8}-Dd8}p|e1Ax7mm0xncKeKW#kCRreZ?oBGG3DVb8c6$^EB{jj zL2lYJyjIcF-S*{9y#@;k)k>|Wt+cCjYqu#^UNj^Y-*lNS1J9avn`XSyt{V`od~68? zY1d`;C@ZT#3eab5^qJifL7UQX-YYYd$7Uwe5)^yy1O70Fm-dD<=?H~MpguahQ1CjH!mu$&(xzwDO1njR-h2dv zDdy-X6ULAAn)V^iOk*)L$4#ZFaU02cJ?{?r4JDq@j~eIuNRmIm>PVKIEzEHD_<*G~ zvv1k}c1*%8ph~zOCsVso((ij+UCpW=e$lbiYEbC~wg&hdePuRGua@{ge_`d+gMYd4 zf0ilu9`XOhsj2BS{=anf!fX8hDt_qDNq(?1I`vMb5WRYhkjO{=sBjbL&>oyGkS{v7 zq|V^+C4p2RdQ9UUM4`orYm__#kl{$YZS5g;d|n=6`wDPZ5UlAW8Ctr@T8 zj5=@6W&0l(HLmNe&b*x&nDrtqpz7X0)9KNFV3AjaofQi}`>(bwYiEd>!wazETrwke zT-X*`Tb_N_5I-m6J6QtZ9!4tMg)s~$Ibs;8ce@;hVv1B#IiXg}UGK=NY{yd2bq>*d3&!cUYVvY>SD7GGTMn`IWru&++4V z7%{XJJ;l@{HRu$u%x)CaDXY#_^>IXfSL>{AAgg~sb=y3;YQ55kn|Lu1`F9rA{LiBp z#M4IN&)!`$QXSYCaVVy#7`h4=x?PRpAg*j<(jpv?D93i}w<|$iC1DQJo^Pai+C|)-I^kqVN-F<|f{t(MZWKk;&!+{t`1D z!Pu&`YJF!!H}#3GvvKUDPO&w+JFI8n;{Ww~c`Afnz-1@ONX%%!@ zB742uOEgvD01!1`%jpIvp=&wL<--6qBHvV?Frw2#NyRkt4PY`~Ev%OOTTz`NN;wt?n!iZRuVUh( zB(nN2*D>)i9dwHW>f)xAVf*R6L1advyv|jOxGP>^iJ=ki;mdJCN_uI_veH(3rGPYS zveex3C#t^P{6s^(>`%04-NcJ)nC|CEwN_L2fOV0proov>IGYllDakRUlT}q2V6g)V z#}lYV1kr?ZEGZQZ~;^$fuz*U~QX2+~u zN%wd}zzo9?B_G2TGM6w>F>-m$;JjUu$2n*=!|3rO8iqZ^?e&9@57K6%2BZmLSh$nn z<}@2src!d36qZSpQxmYstwyC4N70OVc{#HiJO#?y+MY3E=HtEYW}>_IyvsB)Ou|Q< z7;&}bdeJh7ansvDvpQ*6tfDumB5kg}PmdIJA`@3<+gNm9t3b;RM&-{F|1sj*dmB|ix7%6E4+quPP*U0SF3bwcku9NOf?Ulmb zYqPg*F5X@ckFOI(Ab5rrGL^9*{c|00J`s&Oocv8JC=L{l1NEPVCl?u}LCR^$k;|c~ zTAXQ&_osww6tr6nK(iRZiJu}E#np|H>_R!~$p?5B?2oEBj`}nH*ytn>ze#i2&>kOS zOovOGKU(nF4eALd6igM0e2YZ1j2&iGLB8kSq8mGaRMYvgPj} z|LY5-d_9i*cj@ZYt10>K>c#2T`v2GYUti~ceVzaHb^h1a`ClFRUmIp7Si%L3W{VP_ z$i!aDr1`$fXsy&nQD`R{+RZfKc2#;Ca|y<1 zkk{#V(d_!VWej69Py(^2++Z{Ck%<<%xJ*#L@QJ2&eT2j1j!=88>mvb&?G<&lqgwO& zh*&Wx0;h*u^6xg_9Blw^T-k0^QK*tti&UwI2&d%Fv(@wreWMQPJM>wrjTCZ6UFA_% z>$zj*y-~xh)-4rEho&3cH0(-V+y02$ZrOTTLxXv3ThR>bB9r!p7U)VsUX$W|C5}i5 zgu5@+XGHAQ7!N6dm5R3#5ffYG1EQP+!V)x)QJKUWC1b;=f&f%qfggCnm^D=>o`~of zfceDh!rYk1s(2}FfhPMOt)3b*Tla3eAt;1421v=u6H8RvAG6J2M{1B{J;9 zU52F?7&;l_VHf3K3+Z=E+tRLjN4Rx8!!Jh-iEUkvGo+(TY85(2BQJQh1OIQ~$rlm^ zI`jV*FHc=e-TzEaPhGh5n*V>z|G(z{U-SR3`Ty7a|4{;f_=LBCPvW2{xP7`Y6-5y$ z=am#t*~MIU26Hcy=P}cD-T&GjU0b=gfXdXHv$t32gFCFhD`i6_q`o7nzcXTgZey%- zz6~^8zWVvXSNB$DZ!MJX&X!jeZZ51qafb$$Z_k(KR=&EswwzxH&{O%-g9X>Z=KE`@b(fOp3mO83~LVaph4%pR7#jnC`TYO3s%YJrq}(ze3k( z{>VwpQDMyN-^_njjcQ@ycFB~fKxwR)M4ddwM@o~ED&6SUzo9JEBL!zt&OiUml~~*G zMt4RvB*BKD$CPY1+jd&@*n!w7AkY zmGXQ#LSO#*(F_EQ&SYWEi3nU1OapF@!xf4M5NG9lZ zPFx(KdBL7kyOebIzhR4U*~N^~%%}#)zB*N10*KE*nyAzy!m-S>1R^|Nb6Hp&>ZVi4?DNK9H~G*qgm@uBPMk!Ebcx;dm*BiEBD$2nE|uo^esv z(Xg$ZaE7R8S^0StVZ(=$$R=Wj5hP;93yT@Zv(ien90@{IySm6~UBBB+HeYUSgjIhd z1uL1a#W&b}cjgsZDhu!natP@OAHfy0%*?^Z;sr8Ex6%o>QajN(b(UGVaI7Ytqk(wz zn{j;Y8~WpZ^L>$D-rsCmS;Pr;3!ZUYpH~PMB+RvGg~M(IFmwFxp8*NA!{bQ zov|j;=_QdFv2|2tL{2-~>YR3VlsXJ*)%_^Oad#Z9$eGwpT3TlY)z*<2R9(qXH8^*A z(c)=RG&KA3%mEa3oT60PPf72YB|tU+c>?ujDzoD;SqBxc2?g#FRw_kLVG7AuN;uQd z4RyCs{UR)=LzmC4K=2lz+Fry`0s*0Lvmr5vCE?``)_%2PkQ$dDWxvl6g|ZB>lVoO_ zb9tj@Y87U3BFv&LGsckjjKWQa9@h)ja(?ZAbIe4M>D|l5D{{(nj%9Ij`_7edw&_|N zSH;}*scc7;9XcndffCIHe%Nl-s)+LP;upC(VYI7Hbiu#oNr(b0nko_&AK(V<)%txO+zJI1Sj0n*FAJRf4gbky6s#5&6#zM(S~QjFjS} z9v_)wnpvsGomr`4@luMJdfZI{Y9}}KxQl%BFC(}7aXBk56Uf!vU}sQ7EhszDSa?h{ z7M6{ju+y}M5(!z)R15F_2DQA~8Hmm+5}7JOoW}y zB98?k=AvV@Rn$fsTT*``4jTS6gK#tP3&)!75ROjP;i;QXkb{=0hNs!2^|4N)(;;KM zS{3n$<59?$?N;rLqvRZ8A0`E#(sKx)DawXAy{hn4(f_7^7z=+HRSMZ$%+6gm5rAvY z;SCJ(gge{m-AT&koms(d-pTf9L49|mH`Q#43LB&0c5^z#$&%;bQL~jt*a?NY6%f-| zKPE9|jxH{B_*M0et=|xhcQ;a85BH>9Bj~C<|D&!)IyIBWa(B_w)Whx~ie{J5{QgmQ zU3HNK__-F#K;1_$tk2CdhJPkl#<>Q@Wlti1w_R&h(Xm%>k42v_S`&2$wI~Sj?~`rx zk8TE)sFX`e1*RPF{qb+`r|yrVg(ik(x2hVLQjquO*OS@YT_?6ma&+Ml939ou=$+nB z-#WZTY+%@t4NNhC)}nNHOK^i7C+A`U!=sqM7iR&F#QKqB%aW|I3 z3;hmRq12_z(-(?HY_FH|>>ruz(J*-zSBVMfA>t}|cW?UFa2;-xN~LSGb~n`Jsm23q z&)U|ZJ1iqfVKFYg0`f#M+fF0*89^FEw+O^VF%BJbz z@mhA#2&Byky$q<~erv|mp_t6-f*Y_KMi0`W=)lA}@;cu0`(rzY=W%K|bMgc>t@m|BGZcuydv~`Wt`Zp{*#9=S0 zbzgbgIoe1q!?l=l=xkPrriw@*qeY~I@b&sA+eID7+m_KAUJlPqg2HIJb<}#?NRL%0 zs2WLYv-;E@i=LMJ@uELIz6*%1RVmp!<(g<49fX)24n>R^x9M5A8fI`fjA-&VG~7We$B{@3t&NeZ_Q&HNOWMF2*lA*%o* zJq5mLU$f&A8ku;#X!q;R)4@jH%KZEJ@^nz*2{V(0DW%VdW79F0g)?18ej*SWYi=Tt zuJUlWOxBXIg1eG&-;j)TkyyjD{UD?JkGHFJG6Biv-q7|Es#)iKZPKX|kq)3toe2|v zvhlY&RhT~0ySB^yT3?_&bd1Sfuhfv<$0e7JjfP8Xa-5avZjjPW)KD{9K!hiUFs3WH zOTp`GMB_ZgbjFerdg4HVS*hq>Xk5K~*=Cl>8;IwUYGdOOxt3P$ptH-^_;~7$LML}2 z!iZxPu*}+}d zJHk^Mu`{4Sg`mrV1mvaSc^zNr_bvX@P7v;1o`~XjH`&6ZRIeod)1^%Orz@9V=l^*n zKX>B>dTEB}iW@hA3P(~z?;*T*A(vLAuB2!U{x0DEU<<_|M6Bdp?Ge;qa6~{M_al%_ z{h$^{LAd8{HPCOm0c>`C&qoF-6`@g;$)FP69lQ@}*7hj8D?0qPQD8!CSL*d@g37VY zD4_5mCC{6q7#Wz}cdXG2zHL*uJ(w3615z}8Y+*w5L_9-L1lE|ufE{sT&(qCwjz^@6 ztqG_UCX@JSC)#TT8}tzu=}99F^^n+EIpF1(pw3XYrh3#tPy8{C!VuJE{FR85u@s+} z!aufSl=i*!Y9&4j=IFBS2QkWytm6jp&J)T*94Ttep6d7T>I^m&2?D(KB-oRIR;{IA zXG|~P2&l3RSUtnFn)V`k;*)!SEREPP>M(3HZV#;_I#>r(4@5Ma=R7Yg?q-mBmm~hM zEB(ku1EA|k6pqjsJUNDB8?~UwcWeNwxW~TG+@y|``LtCk`2HNw9M15}qxEXljW~$+ zWE&JAm0XikfGj2_yA#lKb8YMc*B^p5EZj5w{- zXEjmd=lIwa4B#B=>kGa6XiW_}!5f6MoaRs#gMh8_D5Z6!C4wG5ZAq_oYqC0Q0xA*7 z(^`+d^K|AXw+Yx&5Bjnc_jUB0W|9pN<#2aNdzc50@H^msJ zd-9#VMtd~I<027P1(vton!p*Ms+t#szlz|#Vv8i8;ySD%Tg(b88aTko<3xNaVNlH) z&L5)&QS{kyiX21?D|U3ja_Q&7^ zj#8S`pbb@ERZyQo3bq2{{i=w;Pze%_I~|M6YW9S%37RT{AFQi+a`kD%IL#W3Q&e2N zdcFXe2?^;I;+8Avkvw3bTzybzr4icjGz0nJF7G80Q{&ZEE7E)cWeETXp)(~Gh~joz z*bYUPDhp|Nle10X5qUn}J zRjYOMJH-ve$P-~GLRr%gCj@v*m=>S)7TplH?0Wd310uoSS1M)P=p2o9zcA+wW!nw=piF)NFGOgH5XQsN;{$a2e7MQ^q3Fa zqGA#xUBdwXTsB9CS|SW=WGAeM@G_X&+3TAB$2h)|FPX#W;(xr>Q z|6jg*`C^ZM`8EIl%H==W|E;Lb(aG`K_bvZTO<%cqN$vl|OVd3UrY~ShnAh^(EBNuQ z{c?VJZtbhP3qEePfA`*}w-@L9k%`I4`xoaXC+FAZ{VyqK_f+WuhiJM{aoDHR|)}ZmphNceFG0 z>tFwxUmwBys%zW84D!X*wOtTOeSBjALxerPJ|Zl7CQwl|B8>;Gk03oHp#B6opBO}> z>+RO&#K$B4q-cq<2;Nvkc=vzx{>Rf()1TN$X6DU!RM#fCKEF#*)Z?gzkstSfdB$8V zBmOpC^o^7ge4{cMY&EtTrAm^Fh#-+PB>FyijAoj9TR4d1#ar5eiFIy;t&+^*N5SKO zpN`0zLm;I-fX=-;3rlOWYm3WE<>kBhXBE|!N+o%3<#u^xd3lYJ1B{j?4J*Pg7FJfF z{tRDvG7d6|=az5Zp1r%eP+nY`U-)vy-vkNDuzW-$Im+jx;5-(Fn$+;|<+uZtSbI1SFVNuF;vOM;0B^!h&fwjBX8|0o%`@%)WY z9*?8~vf>Li1W27?I=Y(C(1JW|BL;{-;J!XGD}#L{I;&D5;fNxE(Sp0+jtGZpXpz71 zi|;$(G{SsL>V;MDmEYjP+`d$>IraLSe!?xNDyk75G0CJvCD%3@;htzXtUmVX;u3HX z6oarP6fPtBwme&D#J-2m|8i}6>c+J|j7!tkksF<`O#pia?{#R^7!WMVNY1flQMTtFfShcRxGP9<1}o4Os`r=pSS|d0(~7X^?6@14CYuiz7E^ zTzTzTupnAqK-S;q5)czG08KT>?O}D~27{N;g=&5`sMcDI8RCaF+FQwQc7bn>!uFp_ z+N2!2Zf#7t%#*pX33BpAP}#vIQ)U*hF$Ub|ui|3{<^;{k0G*>w4nWGI>IO+y&CURh zXCqr9TW7?N8@L^KkCg7)W61Zbp~MYLYZlhkP&dwwly!A{Oxn{0|2Mt_nw zop{vVZEiH4a(~c<+DTPoR-CVEs4lE;-IxXR$Dj0W9r)Sz=2Gv?b@|>x>b-?7-}^lE z-sfGucRTgo?JnQDlX~w?m+#$8y?3|E_f}Hxt#tX`YU;h!F5g>Ay|>oodtap9`@->_ zhDjI1VQ_N04Z^Ebi1IwDoDj-Y!^g{J?~@h^bq3q*t*F4%p~(k8AQi704Ai;IK5wYu z+X&?OzqUPnV_B%Kc_Q$@Q%L68Mm(u2Dsoa$q(aud)~?;~fRf8zME0zS+SCXxtD?u+Ohsn&WT;M|JgPOC zFKcSeT6+t-%XZ2oBA?{T?v`u=tS-s00Ci`I_4(rR%jqgefbTWCGI~H*tVGS$%b6AD zp-ZgJ?#2yh1~_ig!^zZxSnZ{B32e#dmp3Ew2TNQGq%3=R+g8ToF1ix=V%aj5&_F5< zwNm0!vbdLXNVLE~TqnnEMtv|RQ9Fu%e!=cxEom-t30CBHqxDI|XBiZD$<6P(d2PY# zU(zp2W>r0-qMfD+L(74axEx*4 zuu2UU2YJ{$8konDZ#EjOBgH_jG~(aLm&;fpy>YDyzyo7Rq8Xp{9oHtSHvnSvYUrO| zq3HUFW>Zp<>yIx_OkbG3Sj6K{>LiM!M^}qBTi>VH_;Mu0??pKLfysl{ zCRrPCjWm`werNjsvOsW?um1k$;-x9d|95rz_5IK9e*c-3dZqh+@iN~3T)KSa_5S}* z_8(R#*)Ag|i+11WByv2<&?D?Wfod7~e=b7#^rfp;Uf=({lAlt^FZ2HDP!=ItTw z1_7dw8GDiJjA*26Kgu&2OCmKCdQ4|*y}*mwY#`HAh4r9}(G!i$3HToGae@_p19;<| zi7F?^@kH2D5WX;SLQ&ZH1eng;Z`Wfqn55TB_}C0dFa9ehn=#ua0Z*ob_4SW zQH*++39xyAHKVGs&D@AQw9;cHu#PLfNAcj?2*)K%3-|ixUsC@M7yXYb0Fuv1`@69JnL?gF zMgK1#|Nol)zZ&|l_g6Cjan!5@dp?zi-+*dGP#`0Sv-v(+m|{-Ah=VnvnL1H5VZm>X3#m`az?g^t znO%Bm`((`68wb0>4BwicGA}i#IQoMK;>?wh23wR|FXp;#At@pYllbctH-mVhc2HaQ zIRXJvArJTw&DM}hd1KQa54o7s$@accsgm(87u17YG<_v{$EKe!oljvSw%A()<2s`r z8W(ZG`Qv%3ja|(Zpgrxa)m1bq7n?&Y815B$tfY1Z))|euTVk4je4Aj4uV6Hi$6r(aI3lVB`7_Sm6Jg))^Qt`#zdt)1 zq=mb06bhC$Xte;IV1af6cE#DL1B3ZQ?ulNbfb&@TY&0+PDv@81szfGEc@rr58*R>W z2oUKJQ&mU!!vu%H9$kS3@$P23Cb>NdVS%^^Gc6m><&X;=dNTwFDu#~%a!65>-2y+@ z!aSddm0%-7;>R%4Vk!sel6O9bH0ny6EKPUocJSQR0I433?L9qeG=*( zY8KIO0ai$!Y`QhU6Jf5ect1eEMQ;Y>H{*>^n zlOfM1O#Ks#iQfi1ftT(-%{ zFX?Hdd=+4AIsc_~T0QoK*_56R;(*{CMw?_c1SihdYC{7^U<|u$bo=v=amnCArY@YQ>wFy{UIF>8mYRaVKWanQT#T3%0#ucu43F;3+F2;z1HiSV<6B&nB?E=-L-5!C!4Cu3@89 zKyKB?(FBkR%q5D>7L6wW)6Hs3PC@g^IV;twl^adDPUuZcwAU7$r0lUE6vNHnUegFQ zOydcIL%!QgB%W#~mPBKC8_7;+2}u?bgh%*<0t(-RQAt)JOaBRu4f^j1bbvSqa}U=+ zu%3WkV3|U6n^ETy%`XJiz+L5YE1=g4;<);lD1e|Z+-lLnL&6mb*VdQF$cC#iyrKSO zL4l0vF()Bc$k4RX+l{1E5>jDBNaTLtiL)-zRL09n?1~7c5E6_rg(Ru%l8%WK&&W(6+WHc^@)J#Lz|TGbB>Hi=~nK zvk{RaEKeVg`ignXDPD-@;=k_IJMx%PePnW!akga)h6w`#8Xv_K*6OTTWM9OyiX$2H z2{``uOaAzH9S+9$I8p^vAS4;CTC^ltR}mr;ldo*m(XX{6+CiH%`ty3s0Bv@h5U{5L0Eo0wAP65?Jh@*k0B}0UuLf{l4j9_~Ji8Wx1 zRESXbXj`JGIwKJpa=2N80gFO$*~}a`g$DtO^tc)~D7Cms9N<$jXyF^$ju{+_mn!$oM#h!&;e}o%?KI zesKlX*;q}_NVP%7liygob2n4ft`|_?sRsJOVH+6%y;$&;L zxxQW$yMRGi6{8-qH+EB5hm_QO)s9rL9rC|ixVJc8Vo`W{eO>sI;zJ2mYQM$64c=Jjg{vc80on|6n-@pgf^ACJI+6Fo99o$7qJ1dj{L~&1K)Io*+K8*IJ$-h} zHCdXyvycPzZgg65HiIr*In6L%M8;dHWp)EkqE=BLfHVq$lZM&Ybys3pr1l6G1o{I= zCXmw&*Tua`t-2vzN!GEi4s%&Vgj-jV0=WzmwNm5jv?tj3`Z@sW%=&uiwJQ6?^}lTQ z^IWRmZtj0COkbW(>3=UyUA+8S|NE-+zqHF`X&4Jw$z?BVDS@>z7;naeLFEiZIGfoG zo`&$k_KZJ8mt_^DU8e92NgYs8F-w%I4U!5`1&CK&d$HF3(tiGj=KN3aQQ;| z{^#P<)a&#As?I;|FS5mO@>e;;OGLT8S>z;!Sy-?;k${B{s6D}JLwjrZvi$C4n5$|c zB|mN5;YUwV6i4Z)Wxg#%Y-O`x^Yw@}*yNrx!6+5N7b!QAC4`bQN%Y05eD^H;4qrXg z0poz3KMSlIRvymCJbAvGx%4}H1>Cniv-|Z-@-W@Q#Va!xE|_0^5Da4Ed6vSZ?WNtN zB=y3_+ZQhw&pzh*{>2MI4N0#8Gp3@fiN^(O-0aGqqF0}5(Y()45*l9`2gVKUC~$MR z$D%(Tj{6e;ZhIhejBn#-8XyJ%F?Y*D#- z+mn}^;^=*3jOwH8>Bv6%$ny^jXvEK{qj-=$e`wSFkpYJvWx+Q4i29kw)l>cK?oNi` z8q1d(?&n$*q(1byN!Bl+YiH{zqdzy9r%CPuKCkfi~jTl?(3!W<5T++ zySo!%C?8=56Bn*dOkY*&_FVfjyOA_%c(DMVKl^NE7janfu-TOTT=;kfj?3LU=DHDV zy}*37w`D(iiqjXc9}5niYd$McEg<~}d|vWfHrj`N7>)YAdp-wQ3Xy&E++!o!x{o;N zz<=QAXJK_M)z6E=&c36ci3^u5yzp9kW2;dlGzG!NMjSn^5?$xp#}tZ|fj*53JPtg_ z*H}_JN+?j?AcQ*pau9~}B863-@+bH;f8?S#)KeD#3C~=(iYqwcersC4^@l;djnTN! z^#+d7WqSQ`b2sPBi~7y!X{6=1?ubq}h-Yd_eBIA40RGjqCTBXAjOnPll0XC-iQx0p zIn7WA$(O}|r)zu6lxY$mxHaL0jP#c-jVIi$$-x6 z0Zz&e9Yb&m!4I43gZ*?oz$w|;*xcEEf&2VdXhX-oaJ4o!zy=GkwZ_-aKf?_PmtQZA zci0b;{{Q|z|KCdVNcNf_g*B+$rpj;dy$Rg8@GZEc5ECZ7v9h*4*j!(w2VTA62l%qM zvbHu@-{4=auA0AWZ1OL&8UK=rlg-`T=&9`&tK{;hK^~YYwcxk-HoVUFLi%bx=Ms0{ zU{8+T(3e%kU&;+GrqZ9TaUpfhKT-o0Id*9{B&Yt&NSXru}z)<7@oi7qkDiAnPE1_`Aqs{snooLaCm~ z8up0r*l6W>w5p&MOzAv8k2s??)o6wwe1!G5V-xMNKTwG*aMVwa4qX=(aDFRRT}I;8 zNj^!+NyK-MKFC`HMOHCx=P0+8H#_n$FCH#Iu-PhyQP5gE*(Zi) zUhZT)gk|*p9FImjqtTz^9(nG2L!|U(cp^W*@Cjtk9C6g6Jg9(dfYH?mq*g^%Dw&iAN^ zA5I8*ujKw};Ktwrk7j1jmB3Y^25R5M8~QHtLY`!mL<9JFmv|G(w7b4KQp2r-BuAss z;2I{GdD6{>lQNY$p82NIe8TG!cAXH?BZQH+vEsNe%1}c^+btn$GBriMsFTTL6iK_< z4S;X6`C>|qXcbnYF`5c9u{GOO`N4hfTs)Bn_lVfK3&x`mO3}TcyIs3nAfgr{JSkF6 zwO%?8fvRLus5qPKu4&a8-GdmS2n@_=(~UoCVusFsIK2Zf)P>g(Y5z%h9be8BNMOvN zFwvg%vFNH0*rnODwnv_6~(>+!U@7%_PwX zfsEy;3wN{^eF%7FiJ-}1xQO;*(hiXz;pUj6Ft$ZpWz@A=TBC74%_b(v=f_&mC8oOomRV)9;(*MVQ-}v9{^`|ZV4|x8o{{N-)|8YnB?_MMNAZkNB zcH1Ee6bn4oSm3K-I;ng#sTIbc6HY12;WjE$qzx7?JBatbj}hwo=Lpq-si-)Xk&H5E zy(!2|5~$)F0O|sYeXtT~e9GmakxTmYO?n=o3Ylb6RR~-hOpF+~)fg233@^g-A3ZFj zevVyc8c>cR%sX_;(Sn@=v|wF4)Liv!5WIng%0zs6IOQnuycDRiNrW4dsK7Bv71g(b z^yXu27%9+K%FZf>YZzRXiG;h*X9|B4%`CjD*g%?K5(Sk`2zF^22HU1S%+fy|@c=j_ zinFoVSNky`#{Cs?lFTr`NL66W`E7zd9}{^;vA`InfDR<4I4DPk(wK-!Whx90XE_BUOGJ33y0eB|$=!*La=0MhG z<7F{bl2Wg^1-s(;mxk{9yGM&8p)0N*LH9d!AHF}Rzcaq;;eq{rR4WuZP|9_N=J23o zx7Z!5Pt?~pho>Ip>(kG@h4ny`4W)et#4XD;Obv}=j{yW6ycdzpC1eAF%~xU=h~}Sa z#Zw`9ELx)_NKmVnI4n@mISz}+f?R4$ZimExa3B?402jGf6*x}HWIPjlfrP`-Q4~rf zvMY(LLBm^6uu!UyGT}skDE-j@AVPjdY0!wRh+E4MEX2^{h=*{+qTp&qRbgnFL_CX3 zKzMXx8BnWwXrI~XIds(_Np7-GNq{9?FEAgQWILnoyOYjMEr_YiUwhY|>C{#N2`;`yFK^#giE-mmmsIS}dkz>rQPZNg8!R04J)2b4zYXqr=aU#H4v ziJaqYhfaDLRTj66kR-kv;(>x?FwBn{>z#ox;-cM*BojHNvc+L|+X_BebMbQ?!r;PS za3ZR3TdK~|xkQd)j);{>;^189E5{7& zYP>8+ewsByZEfMZEU!_oF-u#RrdVh3rzWKfwD(>w%O&bkW6dB;ov5)xC9{sTQ z#&-x43*v!dRJ26c+}vuTWUCX5B^%F16p{q3$Ix+NS>{2Xr=_zGh%YXT|N09q+0h6p z-x-bit^TlJ@4COk8`>b{-dK>f64T;D9Z~Fa(k0p)K79UM4Z&RbBAe{sXK4i6K6~(O zuN8a90O`Yh7woyn$wc7|tWW?pPlKs>#ZxZJ)~?wcVwy_R84TQpX~r^c)0!y=tPqFS zk*^!?oopj-lDW{S$^)M|$<`P#TOf?*t2CQUk|{I=RKRy9G3@1Mw1ls+OBe_dF&{G4 zqf9v=p`T7Sg;(Nj&)aEnW7`$x)+Md_r0SUULehciq3MEr^)cd5cdPf{kH?2^zvq+h zb(Swa4%E2VS5$i?_UAHB$zMy^hGlkS`SRv78&ATE<3(QGB=b4hXQTu<`gp0}VXLcG zE$*~V{IRZ-azdGx)y=SSJ__!an9|oBFEaHTS%NzvF?FX(U&CiPH?Tgcse<)U5~ND` zNK42p+6@jw)iLMElx9}un65gG1l$6RPTr)fptgG`w^ePVUS2!@bdhIFA6tV#l$Qm8!kZfaVbdd7*PL6Z&-TW zuK~!mV=q;B5aMI1!ZoyM+R$(jeOz0Z1-UXNumnCp(M$`lr~|5-h6{_eFh?XrTC42F zvAbfbLAm8zaob!3lSxa0(p_%)dK}9M$leTs`?G!wjd(*<`WQXwK2uSW=1WJs`w{Oa zWg3!6O2jjQpB!!j@_#qm~b$zju4W z1g9LBqKCmE4{z-LO;%a#^f%PE2(w%xVb!!&T~{ye&B1vHEK#tDJr!Fb8@$DfCS1NH zTf?%s9YP_87aeOgJgqCeE%miZw9jCDAT)Zk0?ALs6`OV3T)j+-f%D`k9pjclRdHf> z;veA>TMy6$1((nw&;E+>e{pbw>!Oy?1mu1**47ybMbIO-nhr7rvGgSzjGIBj;4Bcd zg>>H!{d5@X<5Y$Ozq)gib-%7tiRMn9xjwIz^)o09$Dpe`Zncy+k3V6yqPSze%qU>e z^X_Woq_Neww-PJec<78z`)FY;>qlGl9f+J zqfTeKmgXWL)%fBd7&zcU`573Jk;KmhK+ z|32;T|3BOO%Kz|1{=F+NlRW!d;HTi(H&*FyAMh`VzDp4@OP9OzGD|Or`|CpnijbPu zI_g44Ez#U^rJg|y@23S36yk-QjuFmX&QM!AGvTzkn}y)sM&n&12uE_B6Uz>+m|WB_ zoO22J!YlMX&NEv;>vEyg*^wZFJL>vzn{60cYHZ?}@P{*nI*wL_^}<#tG#F45jgJyz z3>Z62F;5&K>5&+1=8Q-j&Awdyf{Q_Ohu}jc^`j||_eLai0{-7_Xqj;S(q{S*hbi4@ zSv#CoulxjIt zHMuE~*71UK&C-qV2`F)GI4kq2NWg_W!g>Tgw)By=bO2A@H1y`bb^kr|3Y z%2x4;QwxKB7UN&;mK&DW)VXbU4kBkwXFgtE(`=Z?t zZTr3EOH34@Mt4nUIfzixEYSP9T4l^YOAypiR#;Utd2?X9fH3;v=*wPH@on z63%`^bkAzH#g4&}#{Y@@J({R!Ix5s<&BJl)k4#*>uJhb(F+}t4#vU%mCBESgGm!~m zJ){X(U_0}Remn(1QTF3&db&@P#P~Hi$&+h17%_UH9}Dd=x>Gn<*gM@#bLbY`(KCrZ zVtKpB#jeL|bDoqH4`wjPT?|+&#Ego+2(QnWKCJpSxYs#53iI^n!Y5awlcFnWz50!N z@nms6kW^7i9eVu+SB; zR;81H$O))s)m2cVy%h^2%qt(5cj{(RW_}?r6s4IJEbThukUa71qM~)lS?a@v)2=6R z4T85yYbhG!=YU_OhH}}}1JArS)HL|px9|M{o7{}&am zz0W6rz32YFzWubB|7&w|^V!$?|CjhDb9Z@pSjQGxh*@ z3Piji;;GzhrIsoN43mdc;?NAe30JD&SfGlOTS_TxQG1>mc6>JyK9m{P&{<8A9iC$o(IVb{JpV@#y0qzT{El1#4DuIZxp ze+In^8u>GZV?S|zynjGG@(0;}3)mxP3|IR*@c$w!XN&*$tNr)O{M#?oC_?iabrbp) zJo_M$zf&zx;L8rwj11t*Gb!-JP7>x4uwU>~qHVh)Kp7(xHQ9H;Ph3xA5angslDp@H zfJH@n^{l{TfIj~Vyc-FrL=`}uVK=`jZc@tElyN(?i5QsSc=WI8k^VMtFmi>sy>66*6t{{J!LfU5dx+r1;!>?k`5gaHwu`x?`=`1 z0>E^DND64Y#cL||+24HSO8X( zllX#ue46U}{}@HH^W`1+KSzx@&OkS9K)9Cg8!;v;B+v_ZU~K@sNF5VrpIo=F}n2W#Us zhR+rtWT1s^{y$}Y%>;+DCxtGR9On1VsYf%@6CRn-{AMzGG92C`Zg5yR?gIT+NaoXG z$AO{XBF`o4HLEEGA|by5?PV;B!gMY$xcGttu-GN0#Z(-8mukjL&e%j?aZVv-(kqhF zr*^+5=HA31L@xjZ( zKlI?Dl+QlFwA0K~tXI(fqO4Y z2{R!VD&A6y2uB6OSNp8*-YU-C%3;SJMVt#_o2iTWUy32qF$Y1M5z@;9Voumf0c8l%-<@xy(7d`;=;*o@PN(~@mNvId>a3)D93u0f51 zsFWiOc9Y+!U?eG1FSv6ui&B-1uj9qsOVmh2B`wEB1U0UI8#l~q6Nd7!0EBx@#b-6C zh{4`Uh^{C5$OizYvDKWSq05Cqu@UYR9DQWK!x%h-Z|4c8n&9EUI=r_FS4q_C4SKyl z$M8Rr;d4Mys=b~Hw-RZ<%F6gb=$1vq3^*+K4ifNb<3%!3-dwiA)v~IU9D+d~%tOR^ z)iHlAngubs+Z|NKb!S4`P1JvLUHfPoZ9DS_);RqU92nsYv$3X1uh)}D{@$rmrwAUCvWKW zGZ8i@clM@fLVEzZe245|`O}Nv!=UL{;+vxp13G4uln;ZlNO%VMp>>y$78R>x8HS~y zDErhBqd-#=#1k%mid1WCZd(CqxPmc@c~P%q7(YL~T~%F#?$s_vu1s#?6*3(!@&QP$ zGM%i3CBR_5XXAu;id(#ME25a_(nR$GHYmz3zehPaD=RvB!CFO~tA>0`vMDjKI)^ z=BV&GZSbQx^m*mbcNuTu07H&Dffam?PnuIet~n|>V!{{{jL||8Q8!uxin*WAMKElA z<4%yNQ2GH9>0U}?7m>59P}JQu9b6!6FH=$gMx)@4H_URvw!dX!6;yCcQgOBK+!Q6c zvd>Xm=@Qbm(QzLwJ9Q=QA?&HP9poIzeM$7LCBmqUuZh>jmy_tbE+!qHW}E@;4%AND zky3KdX~Dwh$zNPS6VejDQtY0bJTk!kRac9GCb~yS(T+hS8sU!-9S7IPB@ibiCjJ?EA84JsDL` ziq(Y?@xr*%#MwxEMefWY*vs{|mJRhw;YL^^8dhrOAaD~ctG~X}Ngy{y6tzd#N=R%vnY~#4!gSZ+| zo~P5mg0SM5eQ3}kTPs#Ky!_j$!1s^7KZ=<_fbNSz!z337zwV=EnQ=#%!=xIoVyq2} zBC_QW1;2P4y(@}IB{^J`!G(yu4a0?KL8`+GTcR!OM{Htj8*y>0K3*&vV0z?oe#vSi zR==eEa1F~*sqXsSu^*biqQgA6Y@v&kmFud4n|0*;tRybSSD?Q-TbMC*DJmo|?*?RE zqft{yrpw52N1IR!-`?Kb{Hp(d zDgD1SzaXC9dEKt(zVAiLVv~%?)&OFRf@loU&er1`)XMJ1d2uFO;Irc zD1nIx<}bBHcL6-S0sJbR&IRmuq}*`$UC>yyW`#rr<t z9@8CiJ?AE5zda&?=W@RI-k>rbbm`y^2Ya?#r~XCt6ClV7u_CIv6F-$f6d^G%UA#1? z!Z{}0r4c=*1NV@|zjOpp^u?1zhICYdt5wR26ZFVBj%`B*OPYZ+t)`z1G^hiQ3e1er zp~8XYNk%{?YA%XiuWN{DHlcAa&soWX{QBMA?(37&-O~efr?$o!!#f(@Ib4@i5Nw%Q zF@YwKKZlw`=(>SYXd}jzSzo=^p2iBJl+bZgDG@EI=p5r$3(cnMdJ_OFlOd#6w`#@} zn76a>qG2-V8>vv&ld(xARGCy8vgpOvjObqXd@zJ~2_NKXjoxVZ=1`-#)< z^13AW3S0)&*@R-OWMuJ}8E)Yl32roAE8Myk%iIqP_u-mkX@brMtZXzIO!I2W)?4Yz zU|JQ(;%2sQ*}B#%%%m)?(_9I`Y*f>2Os;RV%iyL@s>=B|1(Aiua{Bm$U&j$f1RF&~ zHm<$PcR$_z2a~)SKz{~=Z5PRUz-9pf7vRY4zda$y4E7#fZnTLXR}IEu-mpUJZnRqU zx(U{8BAl8UJ*<&$E8D9$a6X8Bmdxj<#A0Oxw;{UMm>rqEbanyo9Yz}J93}w-T$seL z415lIvzS)`?SY@@zQrM!;%K$GVcM&bCv=e3GHxiEyoVTG)@!L;Iw*2)z>#|xqvybZ zYC-6`U_r5;oTasjuD*VM2E`1oVs;gH(~9{u2)9)R+$wecEafk52tAXH60JVmmO{iH zdS>^Ij$Xdr{r=?J!Qm6Uogu|YumN80%kQuGce?$^Q+moKbz@&qc!>mWVvsX)LB^T_ zLFA$=Aw+Z`mA%J4Es*gcofyJdS(7Z^Aw@3CLknZ?qv=L$+ZbFWCkCIx z5~Ty@5#cn&Jmpg$Oct{_E#7I7OnjIs8;XfyHf1V$@_p0TeNkzGw#?uAjkB0flv+bZ z$pJuXP4NQVR1_*q7aNj@c(SS%>T1r@8&MLR5!J>CFz)CBqD3yrRbMSGF0wJ=96{~7 zO>4A@Mh6{yb4%$}d%e9q)>!x6y*WC3eQ@lTn*T~kw7pw`7V94GYI>diH1G1~Ci}MB z&Ws<0Qk8INM@Q0_ds>v5UPF@vk=*(A@#T0N4-OuWMypbYX%u{VcXVo- zrQa-VSWqK3&d0*d{KZyvrp9`sTN6>Fj?7+Hs018X)gP@>Z zZ~wcqR|mWM2glqm7Vkv6uqYLq6rv$oFM(zWHQwezp#x=1T4Z@FR$H?j`B}!{Jc7h^qJG9FB~R zZaRS;U+>HH|M2Y(fhd(Pnqmi!HyB0Emf`{a99BSf69i?lEOa6>u^BgDdN2h% z)omo->wPcyfCn~cZsC%^r8#2>kBtkRg)kTQ0Gt5SA=bT+SVC1n|fp?xSY8zYwyMz|NW=rM?o zlwM-j!DYp<8DZM;=p|WB7KCsp)STmyxALp)?;{2nV$~SfQbocn(yVH)P6L?>Y z8;BPXmJ)U-bO2OWaE5husk=KoSD)FXyLP~x-Dpe+w(2g|kQu&*G>x1*9m|3UMvX_S zt0|!H`>A0sV%k{PcJ3asvV+z?Y-OX7veo=I6j;yUFN|`ztLd{O|5ELaj^yMgyMMIw ztP%xbsr&b+q?z%HR*q+OC&&TnBQ%k6A#!T=#92hfbwqcgl12m-8P9gTL zda@{y*5EVx&P`7#*x-E3@jER?9tir;2#cpjhF#-8#w8htllL#(IPA`O805Q88U`MM z_CuFaTp8!iNg>KfygHKnQQ1AhPs3cE?$}jSe!14ci$iHz7e59(Hf}f z4boVCLA$m!)Y=w-#9whG5Uf&sv=h+<@lq9uy3v(6*Qi&BW8fxz_x|wpzML;^jRaT+ zXpnu%->IaSkI$c;J>5d*!{X!MGGFNJ&Ve$Ds^+?0y*oLTs>-6O268j?$Zt3O67Y#t z`CoM!1wPk5zQ1&Z^OuT)=>06k+^C$Q*J& z*dj+H=4GD!4d-3ltWO354li1URlbMD7@MJ)|l{y={E zHZNAYyu3l#;zZv){$70Ohph_!1V4Uzn^r${6{f^GX*rmIo)tQcIeKa$HwVk-)AxaB zLfG6f2$OW0+@_O(Bv%(!Z5?6#GBu>ZlaxgX8B8XPqlJp&ly~eprVAgZVs2N?$p{B> z*X`*fpm9A_mpG*>lqVXMN!G5;q9tIL?+b!cpbbC=8CjFj*g&^`yrx%O1CK$>c5d{oK8EL+|^h~%9I$Lx-84qx4B$)DUKxRPgF+X8)1hP#5o$BLSDN|vlNdV3` zRb0D*IpsNOlzH^S;ag}ev#Pss?0P*(t2}GG?UD`>l{>Dn-GdVnrWobR(DFP6so_bT zI>)g}@?Luz$O=9W2#WAo&GN_0ySnY!PfG8r;w}E9tX3{XR#pZVPzWsDzlEWjIO}pd zU#Z(vevgvL1eeL9)j(8<`|ci5MMf1qk#_ff*!`Y&J+$@DKY7!m{$%AYy_n6CIm_BM zRbC-|X0-v81&|XRn4Mx#hYheIZ4p+l;> znTU`o6jKR^{F^vVdEjgU$$8m<`TD zxv@EoBIT8%h}4FDR#mzx2HtLrCd)2~v4+(#2^(-EZ=G;Bbtrsy5)OxA%9^e( zcB1nO7D%bCV2j?`b1%En(0-eHzcQlK7{u0Y-&G1@C+a61e4>4_GDt)4iXJg1DP=LE zhhfuYIUlLm6n?Tn&2F_oEep|&9)i$r)pU|5c37M84lXRO_jivx(pFib#@9U}gkp@&n|JrQ^1leOBh_hy6XiBS?IB z3TkZ5RE<=To>|2tHHCF7DbDOLK-?m zroGh`)vMeViDC;wzyicgqr%aMJaohqz~%6sk)*wX@3tAorQte1baY8us0_^BV_=D( z*Zi=p_X74PHIFwrfWleSD~|$!oCjT=R)3CX&lmWQ$m#r&Q1}P$hjXX;FETMoga?tbEu&<1}woGD! z_^68qK$V~zdelMC+&5|%Rpgj;diMzmk6x_v&N{mVv*&H14<`HK> zf|bZmVr3j#>=zg5tHBMUi6rR@!hsW{v;h}YH{rOT%ts^BB+E*ots{y!H^vH>cf%XL zjVs?=LIqG|JFRj+Cty)wkVq4>QFY!*pi`6>sdbS?*DuVN{vIeNUX)6rBTnwjMyIYM z zYS6f2HomB;#usoUk~akp^B9pY@nFiGdklI@C+aS4fY-hT2LJQK|B~wJMBwK#0Num? zzqYyF%Kx(U^lSX@7mNQ5W*G!c$oV1PM@u4qzh{-oKi4)UK0L|c-8m8C&Yz=wldtmr zf11sG$v=Z^|9iJvg4ReeI`erLM+~G6|7kXsC9URk@Mnxk1#M)Hm97WX@bmc2vZd&~ z*M|phPkjxId}Ul>M;IPAUh~&rI+UH!=+B)synFld@O#C+J@DVp9*M-cR$S$yQG{`) z9nF)Bc-lH0V3V*#9~q6B1H8YdS%ILT-=CbsvlQ6}vuYO9^niw5Rv=#CWv-*wgTl_< z9PGXF;}GP{A@9!0{&yRz-Q%z%-%Rwz<=c_&gSe}%g2m8X$nbi5h%?pWc+QA&`D*r{ z-M!brkYbL@VKSb|n1+L?KSFEXogT#;*=nMamrX4c0=g!a6CJUaheqPQ7k_3rmtPJ~ zB=auR&&@4Kw+_ajqfnbEXz9K<-rL=Kb->Aq%ut(@NH%4!X{07Nic}uCy;>z`ddRB! zH$U))GyG8fcEoSV6BP^!2By}e6>~M!9s2~{OzD}Qd0k1ZB|yOIhUGak+!K{8TiIoiX=Z^B-~p`tt5fjEEV@f0(a`FE@rXhy>A4ZKbAs2M@mchEt$BzU4Vr3=HXQT3SPeLLds2)rV^?#XSj zs6Ry<+&Rg2{&=ULI8o9xcMV}9liE3HJCJ!H3fO__2G9*3njF7yHNTXj=)lgLh#HX))v$-xKPV% z(kS!;TAt#j3eqaDL>SUci#&e+))&_<5M%XRp(t(fBOmILT>L{Cj_OG`m_dP6V=(1M z{yNem1gS^(yMCYi@dPznEjTEZu>N7c=_@CY#y&*RpKBTxr|+OvzJvN2X?^4I*}weT zBAfg>mVC#Lt`1|Nwsr80C#(Y+#}^HLhugmN$1k!uBI^Kc+uY&m;KC+X(W>nD;5~|7 zI}k1((x4^QGsPi$B5q{Y_X{JAIZFr<@~ivxT#VxAigMMWu{~j-!iX@(wi_kmF{MYi zRIh!9^kk7K(wuh4@T*nv?_vLQ6qLV!{rg`2@3qa1t%m(?l-cq&-Uh5`Ts@! zIcwc4$&<@;nGHyi6U_B#f!Gl|5NQsaI{-NeK`&#%ZdBTs^?*ij@VgJ{dECK;Dork;NihwKoG}th6y$4ab}}e{{KGV%=$!8 zKs^4Fbeh&FS0t36#D#guSA0hNQ3ggtTyYh6zT^cFN@%z}14%$HO__-`QeK0x+9f2F zZ&DQu-_HndSd=v-hg4?q@l{cf3Vc}h zFF5z5j&3@wQlDdr(-GHKC8mortn*cxiir~Le|dezGT71-u{w6jTz4xj3xg0tqAth1oZ}Ux=cIQs@$lJ;Y4p*OB%d zaeBnuklnp{h@uH{J=irBWz4W6Gi#SW>l7k`+ntgnuI=Ci|EIp(ja z$u1p4LDm)N?h0j*fYHwDU?Q2LY>DN;Miej_51c)_E-BB^oAflJN|hcIX9p5z%XneuO%spdqO!F-B6+2qB*i${`QA0x?*DApg{%vR&w|l^ZMt?f6ps)0{Z;Qiy;h@D6q<`um!_ zWk4-5hQu?F5A;_)k>vAr=U_TwBsg#)T5x@BPPn&lT_U2FX6F}-!vojLvf1xmEc$d} zIC0uK+3{?#H7)RX9KCttPFHebLbQt5R00DdI=VV8?_|lpF8^^clM<` zSe{9h7FUI5NQr>Kgz`X+I|V#6ro3&>l0%3Giw#l7xD*lg+xN>U(gY{GIzU7Y#fM_g zPgrx`<3|bv3Qp=+PU`4h7fRQuuSbF}(`hiaaChuS-N%04VN~%**ZzpY6%5%hI^lG| zF55e&wqevHA9us+ZD>W7lkZqmdTq0t1}5XW%m(&vXnP z?)N>zwIqa3QKy--7d{VRhP=}llYl1Ih!7i<*Bn)Qg-%|wWNxawV~nxK)D6sQ&LrRr zdv__-8CA*$=}q1>X*&7Act)676ep)pDqyP9=S~eD$BCICO;D9wXdY#lX%aN8n?fXP zr#qOZR&vJ2e3tMIN$_ssR7FXBjd_SL*Q{Ik+5wnbpFk{V6{5c}#qyOCgfvlj*`X+e z?oCedcX?_QSEvDdAFm+EJV!3@3}hD_wUQh~Hk*lNX)l=I{q4(>Rk7Y|-I_Eq5{jYL$x27(ZjeZpe7tysrOJY8IK@Q6m z|GG#h%9JkhGWyYdD4BQr@4gye|I^w3erfvGd;LEfYtNeYzqQSculBz$@$Y3(inKDe zzB}^7ZIE_kO~UxOzOIAMSmGH2V*TQP#L$i~3~hxmP#&lmL>1J&gFQ~W+DXGIx){|EZMW=KS;^if2Lq%9ec-=nGr z^JGk|#_#eX{2Cv17ZvyvMf(RQd&h@Ir-$#}MuBQhv*xaMNfIY(GN2{ne&pHs3svi%{Z7+n?cZrC28#-fpP>zzWrf0T%% zNmk8~0uC-j=jgkGo7Q|GL>1xkXO<~8j!h)IcO=}}!&PL6r8&f_w+yk1oYpd!_r#Sb zv;vL13_RF_X}rC&xrSsCW$@+I=Gu(dv>b6n8cSP4`UuC!(hu?mNZW!Yx#WtB-X^A=3^g_x_m87PIEF%PTYK>7eE zs-6%!oJ)o-AL&;@7s{qN3NgpbJBAda2XX>7dNzUjiM6dtYreg!p;rhpkoW0a!h6&> zvA;)ldU~JDA?N7@F+~y$A*~tHCpWQ@55h;9%RJ+9mJ%p0pm)@8UimR+3xL{q(7I&z zg9pyN=Z#BDiwE7Sg_6TfJyOFpD&i(w$ZjmPSZMuCQci5a{N&5#lX;O3mOediJ`G~) zW7dA|sH@Z^&nC@hbzxv$xH21?sg)#%EZ>B!?@x|2b9Y%mxcp6Fuu0@yes8b&9!zVI zBLr8N>O7UMm4w1?z=kfDuM8F+(b}N}RVL0mumo`I%W;ia=I0V!YkkuaLW&Rx%|t|+NC~OMix}$makJaJL#8^5-JOSazAea$hnCh{^K4|L zD;<}GjTZD$H#Y85kwd=9*1qSj$%L!zNN6B9-`)JY%8a34gQ|&u~Wd!0d~vmQK`DiczJqj9E&E z$l$_!9w8USCW}I10A?iW4f&cmkp{{;7PL%96V(d)aOU*~lV(TsFy?B!2=s^`7~vcC zJ0W{i@Q^gqQbdV5VL6&PTdYw`8{@${N;aLW12%|T*I;8PppJLwC4@Q7PJjiWw zq?bY#_rv~oJD_aw3CVG6H*7iOg^=nL-fLO#o&|ge!9;KGW%~`WxmH z^4LvZ1o=J6%s?l3&kI)YZ&)5P%Kec*PoEk1I;FYUH$zJb)ljC+)Ea+rJ7Yg&% zp58D9h(Le#8Fim;vM@IJXL>z;>MY4Yy)P;C zkBEF)e6UZtG6d_U$sK@;d#>wSj=8`qT}!SmSP8#7KG=QzMlznQ;9*5cbQ@w#wma_%B#CEHEsLWkpx4c736K_*)q};{9?-yolbmO~=0Ky`laBG9valYfq z&&oIKoRyNGQ3DXpMdc2OD!x)3Tfv+<9J0Z2rwQ^*gr^KWCrdW)NF*5SE7=#{S1_nd zhC4?f|5Or*1~)Vs9G@A~4o;{*tVmmYZ&sZXTu)p#AMHh}BS?$7Os6Ss*7f0Yt|nkd z!S%@LZe)w`niiftE!ia(<;~T$7g*Xj)z|fko0xlXrL^!tww_`Tz3}X2g;3$ERtS164p1Wz?AB*X+}^cpfZlRD#Y8^ zuA!9Bsto;>tb~+vUaHfcfMB2wTon_RJw~ee*fE$M9`d#+=I=4$cP!6L3u+ArHp-n3 za(eX@1Ci0ak|Fe!4uqB>zLHUu)TWIiD~#qleTXVa|a`1b6Vnzqnwt?ghIR(OzCc@%>~ zdAN)hlap-*x(H2yzNp0Gq-jJ>h3bBo^ahMjgvqOKQrKEbsvKMdm=;9xHTK~C(oU2s z@VGu{&rF3bjnG_1RA<_5Iaif5kC-e-)+ncAE$o3Ub&PuD#1#_!PibQz_pT=B(%xXS zE*3&)VPmLs);WY1$$l>+j#lo_RHkTI|X zq@e8hW;t_V&}Fe`V3SeAOz^^7-0}`(Yay-Dwskj1t!TJv(^wwk;TQZCA+Q_ZS8EUA zTJE&{h85zr9W?f>d6kAs-VE~Z(2Y425!6wJP^1bAAp&CNwPWpeec_nFOl0#Z<4r4jchFzL`ek3`h2J8^P|1-Ma7ACt)NB?%x=pJ` zW*>V@v@euafJv(&LYk9F=t(nJCM*RS*z5gad+o&;`NdQjLS|4ula9km`{)v&5?l)3 z1jPtT@!FIT*GL2daS!=qeu#9%siVyU1yE`fl&tYszKO>tVu{o-9XO ziJUC(Mn5hS0uVYYuF9AF>;k4}@G6~7XL4zgobYu4qDHG03e>X;I99Imw5pa=t?aFp zppD)0(AVn}j^GuNHz`X1&&dlq88dA^$dkf{-lASmbb9&`RF5kAAo8|dhzf87oa;d- zqFZs2Nqn@shqn-1OL*h^Msk(5>TZ_i%x$Dh7h#FtFv>2Yv8QVlzUdl4$_1}`ZcSbJ z+cQVnBZAJw;WM1B(dLVIQc$>kq1j06-Rn#gJKrN^Ry1z=NlmR7)TGFO3zG{>p=0P=Z3Yfgp(`>S4 zp{JRfl;)Ieg3PUIXQTTsn&99|v>8eupLO6-GI4a68lSqF#9DOi`mDDxa|}|@WS(1f zCMWI=;4TlSk9|n8DT?sEy35I=Eg82!fRx$a>`hfL2z0s6y_?3B8M?ndsoFY#4_x3a z*&3&%<|Q?%M({dw)@D1Gtw|rUtyY4f9j85~(9qLbF2Z?1e_qSMAEYLC?#+`c@x4hx zx8?}>2J~Yek>nI!)}+tR%k)E*1PttCc@^`kdP3a~7qW8j2XRSJoE&E+6(6V9=tQmi zc$5etq)T`&4 zc&C`>b4)T$VmQk=W#&@X0+-ddBwS`UhyF7wk5<#*_KTdmk21?UdE0*aPC#wc`MmQ+EV~uz?Pp(molK`ouP=1wcV3eCN}v}d=)@Z~ z(39-9_@41He2-u*T$yZix9#W2cM0qNy2w&Svb-giKB&BIF3&0Un6t}WB$y(La@6sU zTA9qP`cEXYCsiU?J;{Gf{-O+ZLJWE>$~)YS@0Yk8m-`w8j;QGZ<>2^+)$j-V96Jjk z3+^)SV{5g1K?fxJwU+Av9sBs{`B>Ep+J;ZZF>|O-d+` zcHi4~rw0-5yEgL3!nP{%LWE&u_Gy+SVJE6{2h--xxX^=&>W%Ep(V>tAFa8(*d$({cANpu3L8q)fKHzplH# zA9wyRCMQhe%V~CAk*{*98AQ-Md6%=%BppWHHNJOPawEyYF(W!pP!rkrBk(dx>`MuH zBbQj+rR}h}W_?y$r!{#+F)25rt zE(Tj0*@-ptHZK7}!ouA4#SZHxJ1EI5q9vuNEmtlRZeXm6-zbpRU$ZwxX3!-Zlg%u zeD@Y9_St3Sj2~Q(gf6TwT(d69)jP{pLC`FhH>MbrY167nUGi2vXniy!%B`T_TJ_*M zmbi8d8W!8VO*!pK;1HKxi9it?Cr-V40=K95hCeNjSd$<;77flMEc16lBju`iMMj_F zxGzDl%rkxG`;(L1qr>ody55_@C?Q*Z$AQ9n)I7 zf4jC`hWra(oSi`p;QAFtEfNw*d!pKd0wcgI?KP~ci^Y^<6=^Y$9aE+~@%(jx)S!;w zMz#shDbgk%z!&)>DJK?9Z+QlyWQi!^XpcsjqtO#snw&FeG@_6obbv?h0FsA-JX%jA zhftk<6p}m*Pi87jag#@l)bivpZ_@jkp&QVKqOUmL`D@=c%z{4n{j@(QDF+e$+4%8w z*v5D;rNs^ZvrVqc0u!GXv$M1;@3e0i>qS2vk3qkR{>k-!e-C@81>he2AO39K|DSGb zKKrWwe=+@^r&M%*{t(@x^Yc@16#iRaY4;#JYau3{n18=hIp*>t@W@5sQsh937N%tn zb}=Up@q`#J$P#V1(H%hwa9nPKRHNNCGAqw8SA{gOX)dS1u;?If2w!TR)*Ne%xEprK zG-7XBTs;zHL)j4enk}R08fvuoKf9H=%TMnt&(VJ&%kyW*|HY?rf!;0uH=k{-HSIs! z@a0$e|K;TWLS_FVx=ZFS(7qG*V8AZZn#{(%_$T~^!{+q|CxFD2Cy$U=<&|}2J+SgK zB4XuFH2e@2O+Gs-5>vy)jvJ17e&nl=g-hT48$9-}zUaUDKT{I(ysqKe1veqMxD8=I z;-BFE=n+Dyhd*FK@q_>S{_yw!W#dT{QXs!U-g)9SX~D_1jjHU8Ib`CFWB*Ij!UY#?B9VTx(f$gz&WBSYvtBG%%&=p$al zk4yn8%+D^rP+5=sM_TRhIjzUT)uC+Cv}NY?us9Q$!JMJRtwtCjpDMnvwu#~cQy zhkLutMWP9g;8J;!aZaoFA_MuZE1-|7Ob84FaRSR@4(lX^#nA|qq!wG`%@EPuiu5(B zAPiuR#GJ?#gP5Ib;G8d8&>u8O$h{(n)s5(tz;l~D^SP+y0mIurWM*~{K5mUVLct+9-)&fVPA>6ZrP;pBB)YzM@k63_N z&3@c)JwQ>b9tdS0%b3Mp85?cMGRx-aKH7>KYY4|b1aHxmfUp)}>^C+9>2oScD`v?i zn=w0)%!b{NL&leR5-eR*=RO}!norbvL<>V6R*o$}mc=Wl-=D6!mzs;*aG)Fplv;Xi zF||;N0cM%7tYwJRd5mZ=GCoMGJahA>oWdre2RI3Yxl)`v z%u2ppvP4ZoJu4V3Bi9xLNo&Z9e0hIRdjt~E}L)c56 z8kI#VtQvSpryQ7l%~2FIXAvEe>BJ_gP<@Ien%EFq_d)+)r0ilS4LignriYosOVxtx zuW0iOyUW|30(B~EoCKr0^D$ta(B7p=_@*XZ*{O1b4k=8-6e0k`Fqsk83d2FXO9{Rp=6zpnn9ziR7LfTR0H7L{ng+|)9UavKkua>rxa(3KHIBjH z%O||TyMH5dy89_Q6>==n`dt5<;3sa$^dm;8bTK~iZiy^mR^kGX^#1AjXqL}##E!0% z&)U}NTy`>38o0E^ZL~^f!=iE&h+S%nGpcBT;q)~R&`(;2?wG^H7V#ez@eno1fKsPOQ7?Qy_%7sp1YhPP)683EmUuQ2jCk~iMf7r09!z$zigo9&y3^m;QH8X zig02y3Z^yrxKfQ+JfSRjl_#q&Do+PqI>b~*&DL8`fK;e3<#jPLmjGtO5W?nO^5L#n2U|lO|zuu`wbJ1Bya|l*FHZjQBS4gzQu(91@A`uEym=c zmEs&(_$a^c@d4;QZ@-Usta#V!5dEF5f&+B)9eyq*dMB3Tg5Atz5j(yw~F} z%--N%t@i_E3=bj>sI%hM3br$ z^!W;lb%(6cK}JKlwv)sOqUIaJWAqvFpt@$uDee-Ju5b#>tQO|kRlboGXc$?rsZhyW z+be|+s$hA$gbp?}EbI_s2uJ&hk8`?#6Z+D&OcRWY`lG5>r^$GK!CaS(>!j}Qkfxk- zT%M=qeb0s}Dm9M?8v=di?^5K+#74>somyyw>hwY1;ZHHlrMCw2vsC!JuLSTD^jIir z8|tH2cJUlw?}9{iiM6JA^XG>4ms?CV@K6n=dc=7gk29Srxn8_Sbh|sveWgOl+0Q#Q z&DM^z0;^$m7G9A+muo*78bgc}@sr96xZ}EVNA12|DP%MLZkkVph<2)CWQ}T8pDw6WBH_jIBk{99nmzR3IqvON3 zduOlTz5C&8_tn8J+Jc$tJ!T84>qL8g6YT*D+{&GVFC9S`G=P$g=<4-NcV#EJX>n_d zdB?G;ZL|hl$g_?udM1nRT}qFpm~&VcvB1_HU6(YHEz9!0m@#qd`(7lgEP|X-^YG-5 zeS0qaIyOJ6dDB1jsjKQPx!9KROY0p5$KS?ImwJ59(WfWmXG-dpcs`hl7Pv%2cthL0 zXIzVqIey>?8*Y6)Vr>KZ_g6j|;jsL<(Ls;(YlBjvK*1EHh(g^ z$Yh{h`tPdZh^-%=|FPwV^$jtwBO8*m!*Q8(n$XqFj(Ahgs6Jmpin4hyN=u12(fr&<>H3`@959MUR}(j)~l9 zUg|ofg%Kjz?Il23xBlY!)^H=>^x7}P$A;#vwjE%B*4Pe9ndv4Q-x#hb7M>MxKgefX z8^8AoG*N&V8=Gfuw-+;N<=|BW-J@=r&u-|O$1*sI)D}+H;}pD zCduodbUgG6HH&$Uuhu3G>>5&hXp2z7X5qLK(&oVSXpBNMg8%B~Ie%R9(2+;vQ!PTg zEB+4}A)RHgZL-k?evc@&oRoaaBIZLqf9^6Y;RwkP`ceAV&QV%2Lb|5xC@G7}iSVm9 zH;Uw=Q2IcL3dF1SX$Xu^ElvWJb~@5zD$uXzJ`qNmKz@qwGkN?BRAWgcypS<;=+l*2Y5Nwlu~tmf+O zZ9~g_|7!l}HGCNJ^9;J6%z%lL!J){F zukBlsZu24#WZkVb`9C|xB1}}-Xls~N^m8lWLAkS{2M>x^)@Wds=Rs|toO=jn?jf3) zqe}yCF{nxu<6`aa%+bZsgDu#PD!9I*4&Y&YbqvR7KtR27QI2ndY_wv3xZ%V2K<;`_ z97UuD>Kydpyf}{sAWy1zFikE!omObwOs1Fcp}v}NqzpHl5{Wb}$af0+4AWTvWD(rZj!Rw#%Vlb@8(dM5dsr0jIlXuZGw%%%CarGVC&o*m@p3 zl%|-V7rqp_BR-%cRIB^`&Ut6SOA73~7Os@(B}Q_i$m%c0Pp%SJ>aL;BoiXUti;_yM zQ4HLiSrS#=z8nF2Z}vf3J$>aI znzt(NZ2+GcD#u-dZIYC|&Q_7sEnWrHd^ld__hdCz5sH8udx}i{_d}%k{mvsk>Px$? z?_WOg3d;o&SgWd0z}M1?{%fI1I%)^R#XC4kH96X~0%WDSH*mCayl)}4US3zw1DstQIf zL+c0Q_)j{=e{y5>(@$#HWiwz_H8Zr)LLabvXvhy0NKq6WzCAhJef^p+-7$VRe!mxZ zjqkxRwQ%-k=r53tlBS35>757!<*>(F?vl$hUNr+etTm$a16J21;QjW6Sg~O4QiMm{;p(Ift750AIDC{3XLeqxGZS$F1qXh@uvn1um!FwXn+(N?2<+e z;FPpIK#_qmh)J}VF04(m+u)?~y2GcG=1dKQJ=a8X;megJm#+hDxD*EP`#r=F2n|F1k%C; zI%$k8or_6jVrC=Q%X!LGmV{<-YC9VgRjWdrYJh0hm@WnYwfKX)7YXwYJjt_cm{r*@ zoh-atP~o4FjGp$I)|chY+n8akicSvq58{KDFAw%wQOXw4n^2+|$`5n58Qg~!A&woU zy%}2c{lVL}yZe8PS9XsNSK~Ja`#-`t^}`>(9GS!eS$G0(HgRA|Niq|h}S=X0P3Fe|LNA+ zMw9<(du!wC`Txbvf0$A^{Nbl5g@tV1z7E0fA zLijtAAL>XS8F2W-0KE+EySx}s^oskUSk(NWodGHVSV`Rq1ODq z*ZcPvowZD4_3yFP{*xq$Uu-ObKKAfB2in4VEPrf}AN5WKrVnT<8`BZap?dUU^ZM!i zo$aHqq5v%+0akATCQS^ft;qs_uCcpG4Y@B36HCY{(2)d->84hMY(|eiN8=lXliyK# z3VH+lWT`kh;SeUPu_B`qVI`8GtEi=Tw-21C=npi(r9zV{)+$^BXe~KU#@Fa1Cu1mR zG3T65tja{Esa$?fw`_%qkXTnFNL=(Wy(>#3qCC&cUO6bIq$XtSLZF>^ zDioL(w|dd@3A9Mr$*=R`CYMxEIJso`)EU*rHVlZ0CiN(uJ=X=F%L&Coh&}1T+jMWo z*!U?>sU>?G8@~vsM;3gyn0y3+UH0DSa?b^IzUmx#bvvfp)>he)A zo7+JB_8`*TZkE(zpX{t72Q;I0ZTJtLb*;_|zGraAd`z@ED)SWn$QDgpGZXyi++KS@vK(p|OTdb01RF}7z}JVG7Sp4HH-a_cu7qj^ z-!5_I!Y(PZ^g|ehuK4n1K6dtS;RHJ5K3!z@_wd@iJDI3sXqr-R<8b}Okk3t{(O3XF zedXFP>B<-E<0RC-7$`$TBvus`9%%~+4h42kXjHK5G&zi#49E9&DAdS|!g1(e&F*_2 zjx79#-Tj3YVgBXT_&Dj@F+5pLt#3A2pm*(NhuWUN>}fM{7L>Fc)Wv{pMhpmyeK*wX zLTX0BB=(vSp}wqJ`X2iQEYzKeLgqzTdy-Cutgvy2>C0~C5@-Qyd9APE@je{FlZt8d zhh*CJ1|+WgG5Ra>%K^qRptd#q2W5Qj%(MERJSFo#_Wj=^Tln&Owz+ zhyMWP+@`!Uoqve9d-(oG-~W@(T4S`wx3`z>fB2{Se|vLl1NQ&M)9tPQ7H@yu|NlVp zpXOgUA%4~TubW#i+0Fc~YhUxfelhuPm`ULP&`*(1Qgx?KH(U5YDEf#)OltoMLEeEYxyW5g`l=;y4|R;;Up5ceEH`!(nqH1G;nQVUHq3 z6Rd*5&WrQky?poXyWQjAyW{VLb(phx(R@Jl@Cee2vT51Pd7joc#QkRyvGq9uJgK6p z!X!m~L(1T~0fQ@i41GDYI47F}28OLD` z&~k+6Huhy9)N)HZ7D@2_MMAU>et6K(rm5I4^t~BG8Vub56G^!B|W(ci-fej)>khJ0Ce7 zuI$p65Hf{KpxFKZBYUY!;HT+`d{>pO{53vIWX?xat81 zFqqIX4Y2caP!0FG>oM9bGVTIVtnkp$QW)xo6=GOXCXjQl_oy*|-C>PeIgTg(y%X=T z`Gb4}8YI(3gx?T-suD5?5lCb#pizV^K{1L1Cg*92M)*rS`%8A}833g)RG=jSN3m16 z#Oy#u{X(Y@x!9(+vB^46rYZ4vRbr`T@TH`gK@tGU8;C?Utp1Y=o=b7+KQYsiJL_>} zd2u_k8JV z)7qz}*4Bp-hYkAuEShDPSL#aScjUH(`rRrKAj6it0kxVLRf2KqcL7w1feS+-Yl|;+ zYfDi#xW-o*S6oe#>dO1BmO7)epRCt`x+L>;N(1h^t(qfva;%yb^;9tR=Qjv zT{d60gO0e^#|cPQ_GSMig%t%$jw7U13npGUum6&B_PhkGku~F&@7)!V#tmg#z`5h3 zf0zUupQAvY+{sAyTd&6oW3NYkzoza=w};&L#ne$9DPBh1*UZn|pe|pH1NmC9j-zK_SG=pF(S`+GWKMkNMj$-x3C_d(&;UTsDgSsA;K!Yt`wk9mq@00 zE_g7w2F#Ki+D->)6mj^vlX8p{5zU=reekpm??Wgu9cfWKD@voBPue;-pOG{xx{1x! z!7ZjT6*HNC?>*v z4n2mQMJzuYRXs^=*-K7mAm8Q`XO@1%_~8nQxGiKiQJgt((6g37j#n9X*iwV;QTuyha_=Iepjwm5m}%jZ%VmE$mRKo@^7Z zQWt$8wmUpZ6eH#X&&AEvk0}r^(o>mduE_1+>Jja-Vt_bd9g$K+3ZouOOA(>`X@q}f zRfCp^GG?IdGOx=8A@-z#N=!>o-mOWRMjfZ-cy=M<`-*?uJwDw1&KeyX(SawjGrK4( zVZBpo6gJv8j(Fo4Q{6stS~*ElG`w>93W{70vb0!8fsnV9-FO1AkU0*PQn)uy|9EuJ z+v${4hD zr7UI|xQ#=6w)gJs%fs(`z14tF&eJPLLN7}Iq@WEtUOhqzGX*Vo-03qs_HNKsw^YICYR1QwDJ#ishs_AYSv1Fn63dr(S|e5_Y+nO&4TH# z+(7%HFk|OYR1tvIk>xLD!VKL#4)$VU8sx!XaIwG<|CxXMIh-cfeVxV!bl*wB_R=u8 zI~^ow>d$c5#Ahd2`SYJ)lAkyWIbE#YAYcg{_gDfe;+SniXkZLx&8x31|n#IU3=}ZJ@)4!T>18jpH54nKPVUF_Dsq z)Mli#)+Tt3!G^L5V$MNDxVdNw7Y?tjKmvAc#EPp?_8r`X5COT0pbtKk`26-waOF%c zruP?vrZ2H6`2o}`I^7)->eEKpO}RWJF>)3ZB`Unm1s5&=7N5|Toz`rVAnIDB!73+&MXJ9F&gk ziHTu;fK%h>?C9O`sT3}qL*flWnIUdheAz=+HQfZCZEsN#-=CbEy*b!>wd~L}%fYzW z;jP`H!+4gW<0`9Wm`G_cP1{OZdmQNsmrU9R@nuy#!2)F}IY9#*rJQ*TCWQ|Wxa(hF z4hH;Q(=j-F7UYKar-+T+Z`>B?Vg-(pP_Xs_!6ps67j1j`tJSre2r7W7ZXYNb9_=` zRKy$DC}>-Hb9fpbmBnB1_O^>R#pKC;c9|hx@xfmg*_`HmuPE^(qigcd=n1*Fzl%iU1h*i-X{Df0M_dw3Ue#;g!c%Fq5wm*wcsk z7^d&l;mPT{<3C1$$0{go+h?L=;dMh)Rv*%7F=r-1c$~Q!2>_!So3P}}$ossg5f((| z@k~Lgc+qDz3J}AXyj0TCi9}w~C1~^U!O7|IVF$Zg6zvuB+mbBM>o1;f_wm0^>Ax=q z>n~owpBrmy8~ES#b^7n~_)Sv5DF||@uB+%Uuj;Hu3M@GBPGO_wpiW=jevR<|ivNG0 z{~u&Y`tcLP|L?{BZ*4dI{{#d6>i_=&|K6j0geRBP0O$7q*8BfM{}5{nnOG+qNXcf} zT$Gpv*$^X)i~NukWq^1`Uh$d{Z|r=hLN&FLrphE^BpGYT)J zArv{T%M_7`sJG3MkCSv>U+u)}WF)hA7W(Y*&HPb0Ug(>z`#&6z2MU3E_W#y;oBwNb z&{8~ROP zNqC#~@<8)(HoGm2>Xs@R3Gurhj=wvFn=j&o*sQv25jn}6NMJ!f>I_I=h>?M3wTh+a z8CPPI$oB}@Ip-a1NFZCqV^)hs@pv#qeC#L%;NhFyBM*_uB^!ptl#NDVEP)vaVV9>~ zervw>Pq#W5Q?I`54W%yuddZW@y6{h~|JT>`+3a#w zf9kdWf%^aE+SapY4gG&}`{`Hw{}=fuc^f@^u$F9RPAP!a1xneUf3yG#ctqPk$z#%HaqSOSSJ!VE^2CEWaw=Nfm>0>nv zUyCTNkRX|r-TxbaxCZ(HIbJ>lQsXUsEDVUIK52o;3M8d-*%kc; zJB}nJSzsAJ96nbG;$gRu5!A2qDw}1P_>3mC-N{%Ldg!aHLPL02Py$5_R%z013n5V) zzt5-HH5zle2GOD6lU4#z$JR*ei4&m;j%DnqA_a}imnn=K>$}k#G?NZFTFyvHY!5hh zwlZx&58e92<0f1B0&SK`94!mZ7F~frUPe0HODMP_~nYDgbw5hvnCyzd{*uQ$!RE;d9(| zh1l_E<8+fjgHCz!HIFfwpd5b^R#63Eby@%>Hp6rYVzZ1JmC};;iO^e1ifU~3fL2vg zeqj6_$0p$1FkM3DD#g{*khB_!!&)Qm1+!zC%VHSqdYS}xapz4T5elJZl&bCdntVwW z1y7>kl0Ec(t>P&Hg>ghEC5mITlcd4(iWaRtN?&-+If#VdU|xrLgLiWp7FzCp>nSH? znf`?=HUw~OcWD?Mxm9eVLp1g=+`ihXN|Q=UEfH0on3Qw470=U)f`NE}gt~akzNzD0ZJr|QfIP#sn@##ad?A$4%dtBe+r^mzV#7VI8sb|8C zDk(akL*uJ-d~FWjP#=us)S!X3foBfFBI1IJO(z2h!NgLf5~35=YC0aS!~tVvxD) z@W@Q@d{AgcYrhGVCky9f63l_m7 zReRua#?3S8(;}-$^iqVk7Rkj+youY{l6HnhN=>8~29CyHS*roV4BE#zVoS%0qPxbR zXGL&5)xe@g{8j6g4f19xIx!jxqM(im$AMfGIYtROp@>}1w==jxwPZ_{yTdLO%J8UO^AV;(;rZ#0l=UOOBIp zm(L%!{jqF8lpHxHZmy2Y>VwQPlzfL`1#$W0sb*MoW)D%F0;`9O5L^}z>66=@@Rh+E zA3DfxSm)_S8ga;xbDGjN)Zk!Qk(OD+olhgD5{S`ThR93!q`=l$2;=u`u5jv|OQAcP z!zu}`x&KE3qT>~&6hrMp0=}csNW-N^qgA?5@~!*3X`0R%yBMz^BzRn-31(4o%7XmX z&1l5_31J3@9hFWN&R5}viG}R$DMI*%Zw^l}ryxf3pC~C$gq>3N19`;$MHV1_abzuru)p~&=cvBXbTC}4RLg#VRYI4v;HGAGr*ml=8L)gHrj|$<=a_ASwx8Edr9gy77 zP@x0bucVxJ7Ab3X#_rA0W}eyj%rZsHA_&c@~7-Ua2LF?`zTmF$|%G z<>yD=XDjX594ri7==hqSbItf8SG5H*bnAIL&APfNs*h)&eFVVP^VxTx8n!3)QS zc+=8j`!3!0{OR8^v`geMYXEq#=vkmq*&X54(1Sk`rvd96=eLcV@kq#i;SvOQE{ws& zXYK7!+;l7kKYOwORe`7xEx;m(%v2_6uJ54kf^Qr_5nUv2xu0IGXhaA2)bUlSC*p@J zy+K7`v`T~y<&4en!T7T=UZ@WY#gAd$6N|CN`x}Cu8do~gB!uoAnH_AsDocsslMy8- zU=Yxp=~Fjp>_3oXhX}hsJWH>qE0E)^7~F++3Q!4py&0;=DA1J;0gRXW7Si0j+}7Xtr14XAUl3n^&7_GwGEtgcAx#eqlOfRj!d4ma(|B_FfdV%A(Qd@o}76-*I+)n;Bf57pDUT;yy&kd-CXc9fz@xb7?% zw;$opwgQgZ@;(pH(k)zFq47FkN{C}eZo`*aUZRm@vM@X&WLxl;kCx$!%@k8kXBqLL zofZWG5U=?b*Ib*_A&P)h`!t;BJ3%yk4Qo0H0_WVlYG;{X%ahGqwM)$r!@%Zho_N{#f$6CXC zM!_`=29Os0BR0VIab;M>*UO@=(>x^di&*OYSKT|VxQ(@)jg6hnwa(%wQGIjx@7jv5 z;M{tQS~Tjz1WZULJ8V=4W}7@N72EA)=4IYlt?it2M{B1Ses9FboWx5Ouu+0>(Rhn( zB0kL~6 z8Bb%Yx4&+S3DXV>$rG1HmOREn=Bm&~ihuMJiFFA_6ox1U*hQmJl5${*2+a@}ULGi2 zUK5acXY`6*B(B3Mote$gFN>PiHPbBx-I)YZ5L6Q($g~k=EHGfDHKWaV$)YWkv#zCx zLufij+etA;qveg09THWAXd#B(&9y0>Wb7)%*aQ}{)V`>zNOJe*#3@L|CUpUgM&a0k zJVvQTPGKkx)@bR%Kl1cr%|2tg;(AfNR6wx9W-=L|l1gT~ye@A8P9m}-d?>`GBiB%T6FP+vFmtl*76E2Vz3ucE+^1oW6X-GicG*8z zC@(pr#NGPi_<~tz7!m`YkMOpqC=B>KN2(iyalqgE_%}@5zTg<(tBHI?9$NT(Oxfqe z-434*efm83lu?8Msdn(`6?}Tt;UT4hcB$TUxAFC9Otd1#_oyyG`0*X4Kx{a#A|#|i zvIz0l+&f5g@CV7B86+hJ;YXey~AE_)iOTV`#${q z5`N~)$)5-+;nxg)?Go~8Y+5eoH#gRPEh*n6=9kF%&2^G~+bHMP zp6+aHhhMGpR}Yr+`tK#~g`N22Bs&bv_6>!(YyQY?(etGJgo-me14j7*=fIx!90p?z ziNOVg&0J+_&1^EkpEp_a_4Q{jwwKLU+j8^E&*NuLa9&_i)_1lyb~av^uQt|q;Mb_pKD~kCn6u2=X9;R7R!Ns9OzNLgcHVcrjQ-z5O%kE23PYFGhRH`O06=&3m z439gJ;SOfa4{J|`!E^++VU({)b<2KK=hoCoYVI7JyM~*t12le-WYdZf0&SqYHPoeZ znkjPKHFJ`8K!UXr9NWiel0hRvej6EIgFN9YxoorXFL4Ii{<$$g{<3Z|P@(8&KH`ZV zVNO442I)U}{Lg36eSA9q$Fq$_{LjYP)35nIzsSFUhG@SSFFX;_%FjX&`SWV@?SuYB z4`AG&kTSQf@EgvQ6n-_IBTHQH9o*zE@r%aS7=AQqe3ew$IQ)va>8kKcxTOBDeUT>h z0%5bZyfYNpt}z(7q95Q%-W&f(!W!@1|2k~Htd390|4I9QeQkUFYyQuFocX_iWq*~! z(Rx-F*Xbvw|GZEBuWxTZZRP*`n*aIB{5$&L@GTqxZh~W);3`@w;djc5@y_Tu%;YGb z>YXP8%woi9=F#ri?#bE9(<%}wdQdKr7eE90g|Sgu#Dx`| zrXME1RDiij-$bb)@P83=$(KlkC#S;HkTm;AQBl+MB5(?Xe1K96o|Cv&=m|;uVVy@p zL5%jQ=2*rn?%EiVE>pU#9>qf~%E9?9wEH}}9H8Y96y~FMCx?IFkdPYG(6;_3Q`tvl6X#zcllC9!+*cDNqjlz7!C*%PS`G3N%|FeV1H!Y)6o zEi+|y0w7mV^#t1& z$!O>b&~DMv)UXToDCU!dY0H9V(D2F0f+$Ih((gOUb?Ss!V>l)Y${pizEwn(*fNrmE z4WoZn`7e0_@M?6%-+jsva8Lfft7z&=2_mKS6W7KoED6^anxt}h zfZ{&w0%FS~_8_#8bjUj|I{2Rak(u zFRP+;Cfbs*B8NS#wdXvo8QD`sTOvA&n7G*xP-=?J4Ui#qwHp7am}Pa%#00v-)_-!ZFxe{ZWd&ssc1;1#|izoS5eALSULxIapM zhQ~H2=gG_@zHCj0I>$9`7DOf4mr~jJAtxiS6umi3MB-x>nG5z&yl_*UeUk&Z@5WmtG5>gUAmV12B+$hUnt1^ ztVZub`^T(0t5DYm$8T zY)0H0sf5nCq`XGWjG&B>WXf$wGW*Uq;g7_CrA%3*_h1<$;aZo8Fi93#4DM!KYNkQx zc$@Rq=Hp_*iLi|fk|)$2KvKvUEWFlO-YP!1eNHRej86m=wb&`I0&>mK=nn(RVuU$g zb~Ka}lq!uZiTrunHzpRS$zdwVWU}p!2k7`2%i<+XcwDuC*O{X&HKXRN7ZIm+c8`;) zlp&o6YQcTR@c1qw1Cj#GqgIjhv`bv(O>pKZRY%3`-iUQ)9o)_cYKF*TOz04?Eji-h z_-|=h5M#xWa=Nhw)#P)ooZ%-SpcE-Prdg4$BAZ2)efAYu>2@8+n7cp8DoirvhSnGv zd5Qacn;;`RpRl~wy#tV!#%2h1qmgtxf2*7ZE5Ze`8Yi)$!e}Fq&QrJ2d5K7%(Imx97dK~-I@7&XIgM)W&SBTjHMvb-iW9o%AVCR& z&-kWt&g8qn5q!??q%qG- zH5bK!up|u#uU=xK@Ntl)1*mg37Fp~@;5;2CLP;WN$t6T7q||L~Fv)xF63dVQ1r7qW zPs3WhNUHjbl8(BpXKZyCOLZA@;K-#qFY-Y;o7cCxGh6%=R1Cr8;pitG<_aO^C7Zin z?w*`-c2G7rKV4tn9IeI@lwxjF?o{=+DnkSS2iIi*kMUYe>#JhoqEjZGNtYk6S>VDu^scQraLt#Y z=9{n>^=Pv^Yz-J(d2vmlKy1Vyi2U(1ZXiMViHivJZc*(xX zSlvnEB1pDGYWB(2`wc`TtKY&M#X4vAry`FHgHWBR|RE&u<7 zi9m)c>s?nHvLo7V)FEi8e&GIpM7hu(wUc+pD|tu0`eEcD0gd{o8)2p5e`U2o+ssU- zNN&xE!W`D9opzr1r{PP`G8Z|yuk$$lIG%!@_#urLss&2X?};)?_#)8$-uE;?fn}8Z zw-gLdPGsqsJj4pncv^7kpVkzy4Itn_an#;a0FR1Ge-=d)Y=JIrvbkZ+8nv2`i#Wqb zzY@AKF)F2kmk>3eyqi16FZUd#ESq1UIpCvn@0#llQN}btWzo1uL99%K1U&l)e|pFL z`UZRM`bzk(*${-{g(kR+DE;kVo=hAWJ=p;HUG}&;kepY$@w$XDJrm|~B~_P+F5yNt zS&S*byr@Zi9}`QLZ`V^P8wuM`X*(Bcs*WO2URVu zrUg1e{Ii?Sw+34;*0;4*)uLM({*znM!XN@ zjf(s=np}#0;&kO=C##t9)a^p9uA{Mh(~%vC9n|@^%g39{Xoc~DWh7P7Rx1258yF8OUouiDLX z#y4!FK!%g3`Fl940q_PH+~@=Y(SM!Z^m&v~e0R3b2{N);)AGQ9#$I#8IPqt}Zj8F- zgq#U9Ol}&KAO*dmJhqfHkG5BY+Jy6;_>tu{B_$>zuFWuYw~0|3BECUx)%CpEdGcg^ za~}c@DI00D^1Owq8!v%I;cJTB?EF#T6WtYA zAgZ+iY;mq_nBVfJy8yAB=vEJb`|{}4&p_(l4TxQX?g$_G2Z$S++|hIU*<&zrxa zY%YA7i6~PKP2ipB0+VPK4ZMLNXg-1OwzxGBUr+VUA{)nFGZ;)^a6T{rlfF*_(h~b2 zPF;nh-ilCs@HLoBK=}Yg%vZOs!sI~Rz^C^ zMcR*Ge8T!gP^m?SW!fX?+ar_weYf!zS{9Hfj|Wh-9D{TyNIjD5Wl2u8z?GbIo)bz| z)9U~F9sMWnukMq#&rH9jL;;4dY0HcnLa>@+B;(@DDrAE3V1V7Q=qS+VF|{m|kz3@C zpMEl4@;8f8WIqn;`lCAnsXxHX(hPJ2P&;F{#9DacH)_5dDC~`JG8PVI=OTn7xqfV~ zZ#s0Wd$ehWPyWH8t%GZtkAjZ0b`yo|hEjsb&)El}0BJy$zu+ms)%b2CmE?7C>h3|5}0C@k2j;#DeBg{IirhpmJA1ZEtIW7^{E8O$4?&P=rAn*z4~`wm zIBIS`p%<`;5?Jo+aT%b+#wQ2=_x-`!y@UAQg3AZ}arpN1;QNE)eh^;46npyCyO(&( z?C+lL_FLNZzbgm4!xpv!~9kQ{l(JQ;sV1cMcqk z_3d>xVG*BbxP-VhOB5HB4_H#xeTqfxQ!MdzA#+$Y%vnydatqg&z6Z^`Obt&+_fdFR z7K{14Ps#lfR}C*=b#~GKxRdnLUZ#wT<1(AGD+mf8R|&=^q3>Gkdl$*LE=o0I_1Re^ zq1znxfViZ=vdX!Xfs`W1i&~eh&WTyfyBEqCb^u$E6RZwxkP$$ zpD2}-wZ#3LxFf#RcC}N&xwGH!6gZXwb1%4`B+I4wjGYuzC-y2JP6&2_;N$Jim)!ki0JvL3kG?-UjwE3l#@>i0?=7)aV zt~28Ps(fu$eP=Hl>(g5#4P2TQE?YAe^9lR+n!1n1Q0VNg!1_Uuvte&9C;KFY#}$$T?%J*&WL{K_AEi z>McjVXWyVQ|5M(xfMgW?=@`F+;sAsv?8=I$mYLXjtgTCRzKv zaVPlvA_SMqDVsN@!5pU(pPOWoen_Wy+ruV2LBWZ1q?pH-{cdx%dT7{T3Pw<;3M`eKlYt@rrF3(Pr>bm;v=(Z!RcS66BQHSilY#F;mc(fKr$Ay7KIeUWYagp+8!I(_rnU^*kZYJ^kFNvIyZJUH0@Zg=m8M=&J0vmUmJX$XP>_{2Qge;IkmEro)@%_*Cz#i&eAs5@|jnVb@yi6yxQyqUDz zkze~^TPde4C?}*I?iU|#FDbgGyat`g;X}FP2x9>BVl(H3Mk)-!WElyTV17S#>nv&< zT_4!_>1$Yr_bgb#jTvi9Lr{;|c*KI~_q;PW;*8?Ql<ffs*LF; z&<9PC+cKv8)=C_lQ>A|KN~jx2^9c%25$$OpNcA>@w9(K&IIgOKQg#rmYdY=do*Moo zu@#~vr*4q-Q3_bBItCN>DfcTfYvezzLU@n8YqF1MfnWxTC}6JraeCDJCd1hV=wG?~Y&YZLM#t@v+9v zG)i_jalz!IOhr{T%g~N=kyKZtFBx0QG&?U70!yLVZKA9B+={8^9GtIl{f)MoCPHT# zEig0|SO^7F27UO`o0Gv0@b1x1Lu4<~Vx1Pr1#4J|Hb|yIjO^+^uM75rj%#VEkSFX2biV`PK#RqMfTwK8IzfJ%VBXuis5l94+qDQ|IJK;A``68+p0;)R8nTl z2K7P}$+EL)&iWMjAxo27=g4TCxK9;_wZrf@UUFYHv2KRbAeFM3%W*WE36~Q{5E>BU zQjF>uy&+o6;-YquVJB3I@~Hm)kE` zMC6&V!a-ZgtQAG4;U3_=_C50fCFmk!8)$PC!wdFy9Z0cSU}92K2kFJf(7}_}mXTev zD!~(byO=c5khM!Vo|t4=zz%NE52Nf`N*#(-Bd>*jnJ%W>R}KU5u16*qEgZPa^aL6p zDUIOR8)5+~+nCdc!Vef_3HPJ2fR%*}sEYu_xmM+dG`YW{Y+wf6>vKC-oI0|5X3hZv*_XvJWZP7dHLe*#VkEDf@S18#K~% zi01MPlSNLHi^Y^#cRNO7=vPr{#}Achq2D*za~qNn88u9@d3Z7_O{fMU{^~pDK-|dX z3|-2+B;Oyu_JKEcFX}YFR)NviD02=GNp3u3)mMOF$Wd&DTPM_A4y zSd8>(_$b=-zi{^IiVlp$oMD9ohG^1Mkz#>?b+-zqkrcLK|IUOQ&($MkQ-oX>cXDx;|M<@uy^hunbfsBw~;r$m&}z!ZoHbnwajnBm(tU z#Z5|zP3HR$kv`;liUmyyI`WtIkP{^0#Fq=qBp&HJ$fA(c=rj@SmYX7x2$L*76d5xh zAmltb&&bjxq{}AoX@@=J*FNegYKMYAovsF1_B!N0@vrf6HKioU?v*HP81}+lbcS?Qc6_}|2ukj99TOUG9IL*YJJ!6} zD`Rkfq9%Dy12hlKt3xG3E5_+$!HIWcVM^eAFKyHp7_F!ziw&(1UObx>le0-WWy1Rk zNoQA1(lk=Vm_+s&7L9vpC-V&KtYd<7vd&z*BTl&p83ayqNQZ z1&%{d?*3Aw^c9rJ8-=b*f)S#&$16qN*$79Zu0Q=t%)>%onrz;5>#Yoq7S|lBZH*Mq zY-sSS5eqt!Pt?byZ|<=6Oh4_!H2RHf!s=#&F=>AZ4wtjjb=+R98>a(m7bYb*>jiYk(hjd1H{$SBk=~fOHxpJ&CH zpP@rF%LNV#9oN&jBAqjmu)LzGGO@pkS{0~TUVoaVc(Axiq7REHPKLb8);N&(@6O4m zif3J}CGwbFE>I5^GY%O)i6IF`AC@H5PqCE@zPL)@Fr$#)tde-l1%u|23Nx@W%$Zbk z*9UF{tJK^*7;;KrSF`2P^OZ`tEX6aECGQGFeZf3RWb+&n9>uB0tda5wUkM6sQKnv{ zBZ8+%YiUL+s)((coZ(7YDJ}0C^`Y{#o)QIlo<`uCHj^)ltXJvKM z=v{5)4m;YZ+DT;!U(Ww$=NIq6 z<|E?EyU0J`9gy^A)8g`y!xT>Ob1a{mY2V)95jGDKG`R51_2CO5jKF9@wfM}ENvg?T z5gcM;DfxUQxOL6}aoghGGf`Vw3pF#6W^p8Yn)3+Fwvkpn2SsFjnM$CGDnrEm5ey- z31+xwp-k#g*mI#&^XzB4M~6eqH&`kg`W3?IMUBHxH*N(qhL7*5sLXs2*MtVJ$qf^< zV!D9JJxy<8)m1v3{tK>-*bnEoW(rxKZiijc+kbkozWMy8czttoV{_~IvuDqT&o?$V zo;}@(zfbGBLDElvCmXF94}R@_j}Fe>zB_q;bTl%Lpz3}$ zz5?xi=_63vnR$%62yj{5tMJoRCZ0j=EWJv z`Z^u8eu15M1|LxnwSPphgeH znpe`BE7U75WvgiF2D4?LnqTLiWaRU6(P*$quZ7-z_Q8^Kf%?7^KdeX5uhm+@-p=rh zMR`SP_7$<6YC5j+R=gYJ>Nj=*+FkfUw103y>1FziOjcO)iaDmAxnp|O=RjiqO?>n+gLEKgJJcT09-%wUXhdeeGpzQEnuPM8E*B|V`@GzTV^6wJjUpww0C~~vC8t$# z$F9ZHjof&NjKUvddTuAcLEuu6ccRaoev(x#maLKe;^>FNw=j=QR~W5UJ&hyd>Nkz+ z(_#+3z>uumUArwNLk%kEaiJsVis*33yn+{S+tZ=*us15O5B2$Ot=-a`!I{hJimIJ3 zr|LCX`alji? z=P`Q6resy(UPKOrQ3N=jOmQ0_Lx#v>3`H2A(TSv;i2Cp}gndh2?8I+j#_$`gl)b=L z!oX)d#_R};K1XoBLEX1voQ+VoU^O-ikN8+<0j@w7n86mUuh_&@X4NiHdp7J?c=hlw zKm*vrQJE3cPBx1aAF*R3aa}{Xm&bH+J=@+2hRLV~ex&yNd-B__J61z4F6@Y8gz{Hf zZ!&68gXmI(Lzv}hJ?XRi8wZ-PYV@rfN&??ec+;GSO}0swF{6P?li$K^q-JPxUDDP- zyKu>n-sa;g zkkClEv2+ud)dbQ&N|+@T8Y5u5t1Cg{VM0;N1URwTkGUA74*oc&5yVT0qgF0*JH4&~ zt(C*r0#AOJm)aF%c%mp(-Drf80u-3J%{y)@dt5nTa)-6`A@)BH(fzz2fcxx!TP^(m z*2el*``;I{|M~gdL8K}LNm4*(6Pg{DS#@1S4+;Er9;YSg0?A#%@J5HK@TQ$6(-EOO z%)#AvNz{q0q9pf=$*~%cXhqKH9mnq_uN!=Y-wgE0pmexRloTvLy9v5X$dNWuozk9h zXfc0*9vn_Z9HdNEpO9+^+_L1mTfwPet7Z%65n)hLgjLn-4Z2aci*n{g;$B0)p7WCt z|3zh-q0rX@)D$wky=dL=4oHXFh?7`W@o(reH2SwAg0`yd5n3=#WpK&8SH$xS8Ty!s z&i17P!cWo7#VjRWB%*^`5J=`?0W0AW5zRG)Y+UA~xKcD^GPX=^GOc_WO{Qp7-EY?e zEsiMPClTqSWga@h)eJ1@GeqUv?O549_d~{j#p2?E0)Yt)C|~>6B6$t{t!XJqagjoT zui8x3q$5t9XmKqG6o*1480g|N-o_s?=fkyVYXTHbvsoswpw%2Sk;qfRJgyl0!~1t$ z+;CXCbypJ%Zj8vjb|8n1;~*<`qu0UoqM07HHfNlqVHQ{rGLIqSF0%il8ulCcBuAlV{qu+=FQ#;cofsj}M1$C|4kBInb-*8}gM!z$%c3MigKt`vhf5*Sr65z_ zn@-~6f;AUrA9L&0x$-eM4=K&(Zvg|rFm`4IS~U8Rwzfxcri^% zN&8x$*PP>gVI%JzoUHbZu^-*=twPu$MHN$Js72+NR4GO;fd1iI885MTg{L{hh<>6DLYGMwv0=%w)np0GS_4iGlZ4u z{JC`*J7Kb1HctWZwa5m=Ih^O?eZw*@PTg~O8=FVt)on}`TF3)hyA(Sv>=9C0; z@8n3Oq6;iqvcTfj0%N3&*j)Ld$CkUIBqTOzB^c9#P8cbDm8xtlzPNMoMI>Q0t`DCI z^+Gh;QnQShHKuK428&vmwEKp#(y=j0&YKoHCFd8fA_iM=RAk37cYf=aNax^3++m{W zJ3!mBhp{>mz(xmuQ_Vrtg0i*3KswK94~u1exc+Qa1&z}TKptsC9~yTsHId;`R=k#Y z8lV(PHq}#ISK+)imXY~3e#?MeALi{~0veCsfI zd|&ZyccI9>Z`^lhbFx>a0-L)iim6r0FoN_Zp%_y^1?cAKl<$(f zI*(eYPK5p?7*|PWt4rJGPqgt>QB(|-@Ea#;ZJhW48;3{D?VoUuEZZF%fm`cRfJy50 z#LIN%_V=0F-yq%`#I|U8a%=Rh2{DK_eT>;G zoXbdvnLDh1+(M#r%&IYB|8Ud%=6W(db6>zl72Z|sCE0}7kLP0{`?MTr%;9ynfR*jf z#N+S3J%M{eQCx_*&S5c3pyz_5kv)ld7-TQAGXuo{zDhqe_H@Tku?3gAD-NmO=(fWW z`ImR6NAYipdakFUy_H_jA=D)s`k~3cX)a(vDeavQICRo^mxSLJqz(sn%Kyw@#fRAc z=*0T_@qcV>J!|FvUf=$j|ND#C|7d=9ltsDaD2XRmZR%?{Bc23K<;OD^!VF2wuqP7VK<}%f<>NGe>|Ou%Y)tYlma20PB9p3jENdQ2&*nb?h#1gE-+z~Dy5tfhmT3I zN$`32nOStRDjJQ_3DGldY;Ui>7>$q~yiC*h?I9cmRAGg&7e|AQ?WY_Ee>B*9z9oV1 z5q{j>SRaj6S))ZOm#DJ@6!5WDzU$h_w}?;!rd`Qa^@K{$gf|@pkky2463sgiu3Y9bM(7h7tCHH_k84qH zMQnDk>+rhvR6rPItc`Iqe7YW#7z1LD|6mXNVMd3%E~-hDuSy8rdn1Ph64jqiv*s-HB*f-)hLGD6wUlO zO5sTFb42JeL$=kiXJqfA%(7Rerg*}egnPPEO2HEiDJ7hV!U~_vToR8znP-4pj1Ru3&AFrts7)<#k@?> ze--_o7VjC~U4Q-fpN;Kj>#g{ot!H2J|9+8w$8Ea=NX~Ia6lT#qPX6!MSt&80xUWs1 zsbtUrp^El00m?WU?a-`5k@0LILLE~9a1@&Aij>?|nkr15As3sZKVt3?5K9EmB7YJ` zROadG5Xyd4+_08G=ll--pyN*%IDfknH-&=FGc1Wjh+ z=`F)MV=r6o`a5pkjSYCfkH2Lm5EdA05Tzm?y6E!pAK8aIP?|C~UVLk_Ug-eRK5sfC7Is&Yf2z%yovrNsT2&yghLjZx0&c9FfKcUiGS+ zrOJod?yy`{wL#y#J2`##c4*s$U%z_yzV$t$24~59j<{gAj&=}kN8j1CmA7}xeW{jw zOyGlxWAeJ32Hb(p@n(r>wI$A(ljZo-f_Q>go=j6o1k1%VtwME^$Lx%%@|i7{0R9ba zKNH+VGD?-g5^!afZtW0E9<8*n?i{KYHc&(w+FLe#BbRH#OgC|BX?Mho4 z1S9B}s?0Q;laU{H1U)%|PB#sGH&mJeM?+9esLoRts>22rRj2QG#YguDPNdf(ULRTw zXL`1|`+Z(8?T@z0Tr3)!46g(3Uf0@Uld-3O45MEoOrkib7rE~|{0fUAfY-IM$rwYoNi#fNFQ#h*eXbDAT9G@^$2H&e9G+N2k zcVbLP4*P;NXOcirB5WN^Fnhe1Y%L=43PE$|&Eb^pC z`D#tk`^nf7U~_~JmPJbA5oy{gQJu1ldbTH#e3+hb+ElYyzQDTkq=vX3(Ju4+d8 zR6N^y;ePOqAW11Y0jiIJO7kO!(Hki2C}|zlO?FPohLXsU#rv7lXp^|1`wTDnXcTzTfAkVf&BGnSRY{eod^R6*nmD;86|64R7^+C-J_Om|pm3HrKWqW>+>hHX z@W0PuT6e9)Jwx?p8j3XH`+&b6MB!A~pB&3(l3SOIWbv?6k9^J!pbf-19$8j+(t$p3 zZ!pZ1pc@&JK#jWxBJAEf|ePoz%NUDY7hgSKTZ(b5_hyEzi zV@ZEN1q(@s7P+S+C$6PL6dNC#rPQJ*lCgJFgrEvZg_;2zEi@4=(f$7wm83*TMIHux zk!s0ANPW@R8bLjL8KrB(4Qxx)r->VWF^3g0!Gp3OvRY4zZ~B6_;X}DGt1%cOiJ$>B zU#b{_<$f#{wZtg8@I1(NdHcnUttXF6SJ+2FjzoguZgOMV$PW3~`ss?&~zap`$d% zD1Oe=EmuTx4XHGZR#3b;WdT|U{lP(2Kk#T|bQRA}?v|mrHua&wx-fw2=MDTkgkClR zx7c(d9zi@iqwFHssMSq^`kXSC(rNT3MU}nc=mi_w2FsdwU{;O#*9jWCU)jdrXCp0 zkEK_Yx{@{0J=E;n$t|MX2tgj~r1rTxm?obDH0dHYDM~qZxlGVkS%7Yy{mrLvPHl_A zY`Lz_+7CJljk1M#&_5vN-fSctfdOSMFn4cW=@{c8(Y9XsJ6lZVqz|47`5YrTsgK-r zUW0I8zu!O7)x@FDq>0N#i)k4ZWLsR+DfaQLhGyZ?5-THlu2oG^MM6(1EQKw8riu0V zp-nv9J6cjJBhg~5IP8eGe-^W>rkI$Ewtt_pB{Fj=G#m5KcwOv9)M2L~c0}rLnobQk zG_*1NL2HZ_r0z;G1VeZGyz;~v45!pg5(YEljE@-NZRuEuyNG@dFE|jC!P0mD3B{3^ zfoyz=BTis&3Z?hsknvh*e?rm(UL=A%uo6v3uaG&x=dR(QedJ1Y)jpC)ezI2$`L1Ls z&V|ldkj|L(g${HW4~|GC#e>uR(yfvTFsB*k%)tTW@COj$&Pc5zXai!jvvlrMeS6(e z$;k(TcxG`{hvvpL0NuZ_s#|*luL?yT+S~=KVVGdZGeV`%U8}$wUQH)2)r?Ma$9YL} zLP{({6V*b(syG$WB2HGS1-ACHP+8Qd_GXlz5H)cI^8X5EG~9G%-MJSJEOn5D?Ox?&rvmWFNMlp1&KP(NE+Pq&uL7Tc7Z zguG!(BJDL@TEuDLLrawil&g}^Hc>FB44luTV>S6V!u1($%L*3ml!A48=b9nw z0@-$zP_~)zN0kAd%9Za9-|i2p`WESY|ArEVDE`G<^FQAmAAW!M7E$)+Nr`5ZVK}gH z_z!I<{O{4rckjO2Jw`{#BSs%}zafew{+lFObsIc8SYP%m%<=#_HXxADV7jn0oSzHNa;PWxS8&q!-x~ZMoa4TE%l@@qS<=b}zrVb(cK6@i*p5BWQ5ni& z`;J-2OB;w1f!}cmF-jSSqVYVnXn(ie(vPUNXNIhSxP-+@<(<8~9^7V-e6iQ#j-I*C zp`>M-Jv<&HEb6eZH^Up8bv^1fTC1He$jhPHV54i1>z082T^6Ul*k+nazDbdCp5`FR z>S&RhQXL8tPbEIZFcR}ZZ-UIk`hD$-r z9N;pzpkoHrD(oJj3VB4JjJzUIOwqEeBxRI3PLC^RiA2E+-H=vMXdAi9Z`s1vrciC% z;3N^DK)xix_he^#J+w8a~OO6@c3Z&^&7bHefYG*OX0y5k?pEtiw&AMkbfN` zhRHuaE~bS~C=F{POQ#bi)pLo>Mx$zcmCn+gKM^kWryV!TuxqPq0&3o9MDa8|ey}Hs zfm-e_@i4_5g-yeS!TO3zA%?zjWZp)W7~Bt4`2h=r@~Fa|&novf7;%@K34cU=0S)tL zf`JoeQI?De;ppxuO41K-P*3>b42>Yf{_tE479F~MsPf^=>-Ho{z2I}t}(%)H{3umnxm746x*d$ znGv&UO+P+7(#ok+Y!O|t&<4mC-GDE^8~R<>`g)0SW{6m#I6;EovT`;D-@I^GD5xUw zx$^o-4}fM+<=|*fM`C&{USEsXV_9=M zvmF@u9T?~JmKUq@AC<5XmH<un3 zPTXm*Qug&Ot~fG`C0g#JYZ*Csr>D+8VlHSru7YNW98L`{yO+X8v7(`T6j44dp^(26 z=c}DCH4vY9gx(y1X-^=P%+C4tNsQ}7iT=V&y#7AvkNFrX2gVok_$=6nnl$_ zZenObqFM4Wn=NKy{9yM=ScY6eT`NA2RsSZ*gt#GU7?GSGCZ&*)p-pV*8zPix!u=uE z67>1D+k?+WE9vlZ*!QNKBo4?xC>MvD$l$ptMchO({wz1~XC(drJqbrn2jBTmCg~K8 zv{ktXdN*@~o)Pr(m`l9x6um_N16Ev2n1p*K%aN-b0q9c>j1Ul3-_uE0qr(zJB(wxY zqyo)c*TfE&b75*Qt;K-NPx&&VMw!;{sZXN=EtLox%0c`}haYbvCVM6!Pls)Q9LjVi(5|!zzSrE*L ziyO5xUq-Lj;3$9taD`Sk^Sm>=EIq})t`d+cQp*$CPR}*P6Nc5b8sPLR#GG7GN=x@! zYo2N8`E^A}}4?qtc?re*|!DuX=p>6=`@$_mJq!STWW zT{YoGJMr!be#Z$FPQT|5q6^B6j8s2Lg+RaJ+st0oB-V{qY6YC4wUiMP-wR?wKF2Gk z-=D6ovea@VOT{GOxabhysCO!qj`9-1bG>tm!tWXMBbodXd6oH?xGN6&9}@A2$}d&! zINy%c#Nbs~L88Tj&W)FYu$3}w_$oOaT=y6)6;?`F_MA&h*smyy0N)jmFlP`pzI9EbPXpa$c#pPiTsDyWT1*zYihbyXu}X^zfk>k$5lG)9!Ad%(Fmf&?&&$ST zFeg-_5Mg<#!=d$MHA!a$YRjzHhz@q|Ai6C$cWFIl6$=X|Mnt~o(~hH$SX0otQ8gGc zpq5!iI7ZDWp%Q_N1d^*PV^!L53rnBmTzqsqC;- zF_2p7YmTxnLsWYC5mS7gxgU`)pzEdR4jdjay}Qj2)+*yiZY|~uy9osHn3ytIngO;aDeDdzqPGHDbr+<$3(8Y9MXvv9XXWf1*~3uFP);oLA>p*2>O+s0^nEXdO;g_bFx%* zQ3{ukUwxJ=G};T==X@^Foe*Ph10Rh7YK76rcd^@X&JK8%#$lgzU~>CK-xAX<7WHMo3?`sO{6^y`I#2R$tfl zSBVgDzg|}6SETVJ$OR|VN^7Tm^pFss7fTv$p#UamZO|@?qi{%&c}+G6B5A&0OF|iB zZ&UdY7J`r}EW)vV;=5?@!bo+(W5DFQT=Ctbz_=M+ua#Ya;a2jCjAJUPBwBtv0B)T# z9URGOul*TCCrBVCB zW^{A0G^wacxkc<3FfZHoqH-E$_v+G{MD-2s*eOqhCG)1F^O7CTaPFyZlYzI=yvYZ+ z&?T1wa=O5L6MB3a0q+pg+}BLxjN+riF%E|Ri;S_}IRBH6ad>86jHpnAxcp{a5pqUl zS3+tre6;e~^m>j#=`*HqfHaYG>dup_lnJ$(;bi6c>WGgG1t{TEXrrJ9VT)YKNp~wo zN3A9UbY$}0v=YwYvRj4MV!h?+jQYxYYslu+aDW>nemToQ-0`RW;Z)L&e|X^hZ2EqxHHMnk(f9AK}!fT9s%+n|-$H+}aDdyul-`O-Z*|!Gi$9Z@AT5qM*`o{Ah zqy75e#nVQ$=B*z=0Z;I?jqRtO^IEeuEC#-7zP7&YMx$NT=JTz=`iqU_?~Icf61yc@ z*|PZjO7<(*TV+LJs0g2n2Yz*g5aZyLI`+Rfsi)S5WcbDrj9Cq}~mO|(VvxL*8S$)N)Tpx{s ztpoQ3EN3*b%N&{U;6#utbZin9Jd9-j4Mz;y^Fmlv;7EltkuJa?gH_bzHM;0%i-2I! zoU|YoMAv1ywdioQUo>IR#9{3L%zWptnK2_`td8DLjz>CXU6#jUI!Vj+_zfQX4>Q_W zQg^Z_DT#>C<2r2ut|2bbq{O3OQzB~0G`&p5x2?9o$wmqY^)0(F(Y2H`ic&u+hgV~c zHe#|LkS)UH#^6Elj%J(WArb&SD-vQ_q(VQWWhKBelbJIn^0d})FX@T%4Qoc_ZXMzt z9i_;9UXyl$G8dJh&=eBcWMR_X61Cc;u~3AB&wY8Ie4%-rhnVj#6UR#&H8W1cE$M*9 ztaN-WM3Rz7SdnDj6z2gvP1_h~S(j-|PxgA6Et>6583&%w_G@*qnFm8}NzMvHrYL1= zkR=&p9>FXx6Uw2IYp5-{`;oMT`+?TlQL~5a&xNtX6f3rmir}(lI2WFQRIM5e!95eq z(VZQm;ii7Lg&e5@Y*b$gdMr43sEqGoJ|Qu1CJk+Oh3~o|0ev!t9r@}BLm%chef@&| z%eYz$JJNyBcrlaDffg3Zh4drT?&8hN69}z3_sTq5Sb9CK^UT372B_&m%Nf$cH8$qs zhbOquK7DAT_Rz*lhPGp&xZzb4GLP>2N?7_^MlsEzv_xzOz6qAdVkRka986Z_!}<0Z z#-HG&0fwqh&L@l692XX9G38lsqYLiu0 z!Df<1BI1i0$s3#J(-EFb(kYxpzNrK^q^y}~&XMzoq2aIvX5fj`{*JCSO351JN6;Wm zBqOJ?V@zk7C|eIr$I?6_%+W&i9NAS%|zx9YiaVcUTTVyvOoMD~5lY zP$R3Gc)Z9ANA@9|nn;=@t|qk!vy&}yaVmN+E_sb;PxlXA?!JG08V^um0wFQp8i@s1 zqQ*fyITM|lZj`tDtsE_70~gxZhhnM z0|Er)zRmb1i7;!=fJdyLI$j!I1-j8Cm1!B4LtiMAilYlBqK3jVpdlQ4ilrbt56uPs_If`Yf46-G6`ma(zk7N3 z`ha{gM|__}E#5O%YDBdp$o66RG+~b7Js5z<#=QraYsZR2U0J8qcb33G{&* zcO`Fdv4JSf!LK#IF4#~z33C^coc}-jPxy;UCrD%s1h2S24WaRLo6S#{P=YvcL0_mD zm`sEfzCZEo{bbqjUCI(&fQf613&*P|-ywQNtUzp&Fk&-A6p%#_yJO(#Q+E~V#Y?y# z=@%@TgYnH5gcvcO>+!t(5PoSNY;#J|*C;{CY+RrDbZvEUR$tced&7?wPJ<7ZC3{9* z7(W|Y{9rl+dP>ciB_GcwDAmshT6b1ue@n$jA%nk(mpm zILPS_X$DEsM*0N za&iI2jxp7KS5g2D&DX{JnW69Fdt=dEv;yjmQ#?6I>J+ z`!Y)rVrf8vE|AAoWj2|H3RYL>Jc0j2o;U@~g|1My{&r7a9lYHgzBxP{9_+sl$+F$x zsN<>e@VD{51rd9=OUpD*Zz$2oG`qkQ6VE2`+Eu(Zi`Odm@V_^OLybvjWW5JEUeYCM zNh~DeDP4TpYx%W_^(U|$BW)DFM(91#76=a9BxzyYmBH6IcIYP0D4!(p%zLX3r$eGt zLBc~q58&e!+xykF(LoV(T8K$0C5r~dd^2=vckeZ|uJ6GW?idlEH`27;Dq58cBBPNG zNBk{Q{yZ9u8e7PT2h~6S46i-GPHzw4ZF>Ht1ROI3lJUyJ|GREz3yBxW4;_`lY%>T` zk-na>%F&*s)1YTIJlSt8vc&~jCz1A(5MYHmWK+7KpIYWGT&-%iTRNEJnDwZQCWGyOP`sZd&WogvP4crX@V!1yJtPS4LTYH za4GlwnKz*7xJee;^9t?6BiUH(Q&B5!T40L{Wk7OPadCTPxf!=*&0iBsI2AHWlbq38 zvbo*^XWjY5PhePi=08pr^Fc+9Bcg^u=|2!xf^x%fF`|gO1Zz6{6w1TxjFjR@Vc4-J zxAk1<__iF!tqR?F>T>sT&M+JyUPuANnn9(cKAG?XR|rQ>nJ|QX8qu&=I7m4JZ;DqZ zN~4BS+Z190C4`LHtR?MV}i=xd-&1P?`?Q5}!A!$|?(ha7BcPuha*Wz+I}GP%`RCN<$(0 zhO-+8ujA5&<^^S#B$L2EYrT7T1ddt7N4tCI5#8M%oE(1t_F(@AG({5L9!E%ISSbTF zCqkCmIb&(Zgca9=q#8_8bVSwZLk1HQMPzv$#)i>F5UFKp3Hwz`G(>1#aS}+Ynh3pI zBdD!#r=?kWwzahkW_PPUVWpwp>16BuNjkk~%~&Yme!)7n1ub14E{)`UgU@E;W=x@5 z-y-dUBeSv4TMOKz`r|e2iU`)WYjYgG%j1q1l0LUl2gjAt6q)zSlGw!wnbpnWiFtk< zg%>%*PrpCqlCKh-hM580k@#PwkC*)bFZ-oWxbzOYBCcJ+Gz) zcOpJ$@6HlV6ch}3Vk`HXmm8s*Fl7HEU&gs-0v0$Ju|rjTKmV4}5D8)FhzU-6!(lmQ-7Fa8 z<`=9bSIW}$)Sm0RYiS+ujr|wQQ%g@d3=KUV>)C&pqCj~bh#OBc|H=i&swuikO(}kl z8a?s>Jx)4DRa-;lxKc=zHqs~zG@8)zhGU`@mu}X*-dH+>II2X(Ap}zL`M5R^tH3E= zHqfm5FawLpWJ`7dF@TfXg*vG+UN>Lu_#P2b+`LS(*_pjR0iNl4;;=2}-9umPi z$=5s}WP#fhsHF2`EZ6d!l9W}(uq0YRnKfos3O`hEmW_*RZBlFv7tu1eZmdzCeXe0=ojnsvPf^}y zgl>sFc~5T6_G-f`3$7+5r3u7|likD%+d;}+?w*_)at7BbxxlA`R_0*o8VHuB)TM4` z3w7l8Zru%HqEl~Qh-vo_^wejhbOTML;OSvfy}9&SvUSPGD^#Hx32eb=mb)6yP~Kst zK(ToVR|NJbLwce!K75z1Og}ZC50lhEaw9?+B;HCT!)Q31+^N3I`a#Rhv}1uFdhgu{ zTq~WP9)D?uH#KRwqx!=gA}fH%y-lM{JC`+XeQj-xSNKr}`8)?vyN2*vC{;JM;kD+j zpkfgFZ#pX|&qkkJnpFrDO5&jF}nXFvXy^)hM{%IO8a_hpbVSF9|UNxlIPsNk7?Kqysim`ksp|)P9`=$%G%@^5S;Ge2H9t>#Fxn)f@qu$ zr}PThAexezJQ1KRtV*I#tXXvyZFD%WwWpvDoNQV$(Y*GSO0I3Q3i$wDK%u`;UV}$| zvf69S&ZNOnsNr$BK>qz*eePQgXzI=yXF|x@vM2OAu!l|UwV{{IYPWPEj-kIzs7!p-!7Qof5r zGa$PpF~68jLpIC8rPLVu>@$vEH_JQxeFSf19XIp2?t=Vpc+FpSWNfozh0lk0Wi;A` z6Qui`ShsSvxU{#Qmv|{5FH}<-5+^>NWTb@91;%HN0u4QMW@Vb~g$YmEPzRUVF;#PU z=kdsx$ZS%$5;PHU_B@9Lpl#?y#s2Vre>84PH;ZOpM2fUFoTxx z!MH#}v!S?~Q*o^(^;j`Fn9jGv$U@;nlhp(?Z+j`+;UQ=P^lRYf&p=UcGnX>U!_i8fO zHtDf|;X+J-oP?dHplsUaUb*8eY@D$=^3Jg166oke!z(a8jw;_DGCmp=8h{jgby8g| zv5K8^BP;v~!M8o)%|cT#MojVAWZJ8h4_OjBbbL%zt+vkwhjyTMN24dh>upW3(3jeJ z^tq=)@p8yX1dvJM%t%{(Lojy9wU^50+V) zFxR$viIGsnj=>~9bR{-1PDe{_;@ka(ZqISwD!eL_Vj^C;HjUI0C^sy7N0Gz~_04*% z6C(3oKZpjqT+5jVZ##si^&RAgBn}^Ve&$< zm4)(R?_n1Uez!|NDA4m0ZWSF8LP~k4lvpMq1RDGRDRGyCQ0@ADDX~mK1WWw>YsIpC zXN$S#h+e+$lmzYp*9y5($U+IP6r!c-wL%sIOS7$~TdQ|%+MvKMaHnWuQyi0Fk(?;Bn`x9%Jr_l;$Z<5gE-hQoUz$apO9Np0gcK4CR6Z7H}-kQx*=aMLh2EPI zt70KI|8_{tuh3o|Y$hDjCUYahhEv5YICu**;F0XqdD^pvYPMbJV*KJJxekrSPOfFa(@n*#yrSWgK>3}U_0$Dd5= z;*uQgG^S==%eEuZ8U7fAz2wp_{vU&5}Eh)jo+ z^69YjCCXT*0RZy_B~}c~(ws-w6Za?hLSU=TL;x;}{{BX1k&@$y)!FAMaj?r!`^Q67 zy2G4i5=|tH#IpLfB(>m10hCiRP3Dp=T@f^8S}#h25fZQ~4o;d(jKZB6FR)CD0Bnd+ zK?hdLH64NWW3ou`d(`fcX?j6X^ip#&CpU-$)6jwz)s}X&=EIVCG;`*YzB7c2*5be| zg#j-W#b#pLWe72u{7ivZa)OEK%flePaDbSGJ@G2}U=eEF>sq`)vS7)DV8+TH z=+aG^4J;+q{F*MZf}DlE$J{)I3Qxo_!j1;1aqMzx;;6D`j{u}F)|?AP)c9z*48%<* zTXuP9^k?i`?xPHX9eVLIxLN|jw4#eKj2PNPaY>91=W*3U8a6?-GER(RlvS$L9{q6m z_V83Tq$0slkPvfH#n7vyoH-J8VYb)kM-2t_B{l$HzBAQbf!i07XR)P`zUYXGeh?Tf z$sdYEE+li+7i;YqN$22_oyF;^^pJwOr{K=z!DjIA6MR(92Tcdoh&^jN19qX0?RYv_vz!*X#db#9gxCZO zHCL4yp2|D5ObO9OO%vaTR#&QRP9>+X_}GIub*pIp!0*wOfwWA?x@q|<{HKty9NRWo1?LNQo>d?)z{*eF7>OhCZPkjr}kl z1vA_aq*73{_!O?pXQ2KNZ2wzQ3_g!Vp>yl+EDI&4BW3@)4Ie+x6J~?-r_Cq;2XD!p z>6@TC#LjkyBeOGX`}|Cnk!?}C5!S%bj^pPp8`;k?--r2)K!|PlOyee`9dnXjPiK>J z^Xuz3``_^$QXb)K<+$(cQ;2nunl13(PNj6pYkZ>-PAz(H@eCIK3uOTmfUKzdk6uG5 zv6OPL;EQCaKRn{h_Q4VBj8_a|b72%g5E|p|P8`#i3nhjXmCZ02r;BO8EXqT%=C$e& znrmiz7Svq3syK%WI;)`qo$Bgeci)C+a(sz|%wn&tOBnAlFZQO!=f=MnUwe4l=MFvE zU-gF8Xd249M=$Aj6TDT|=%}fr<)P+7#k8j8;nTvsZ%+*;8Y9v?>3u~6y9m~kVfcgr zTz0OwZHX)XE=l1b`dEq(u^EW|42~92jWMu?HW1h1>sK{ED1Y0hvnb6~+HOvmRn5tu z{kNQ33V)=aUMIF}3s`O~_4h2)57KBS*>R`oo!$_i8%nJGmh0B@7~%!0qsP)R^(ySY z<*`I!a+e^x%r38(qKTe^fJYaw-os&DkH)t{kR5VQoa3Sr;n2+xzTQ?K44D&cJG}2?K9`JD6_x)k|{mRIn(nvE60l&x**3QZsFNm)iIRM z)T+ImR*tR#kSo^G?&}ro(>gEqR^LyyReo|`Z9h3q!1Oh(@9pK1+x3HwZV>sNhl@*y zi*qzZikS8sc62YJpS(Sr?g#=xaLXAkkDt;6_4Jw1su~tI75w@u@_C4=0b?a6SZ6un zbMqm?-XkTina4vcI^8qr*Z0SVV)Cy!Py~HjgsRsSFdAX+vmLl5kc7Zb6@Geu{JN5S z!nqD=$La{iuj~H*;L&UbXbS=djX`87D9-Ug1ALciB)>vfB1NAjs zDs+ij@_yscS#tFH2guXp!V5bN7B!YKSFogTxlZTExG`RoskmI{K`-nj7?iy${rU@ug^x`h@Q_uTvAmWoQUYg%(DY+Xl9JtJiFX%$!LI47m1k_3}2M*oUr%8Ef)~VyLU{0M&+<_hVpG-%0r^DJeE zkDPmg>1DB;(AE(~xG$}*auo_{^{&@VCpur3ecM@tWNj5&Li2T9L@)^{Xp$AbKSIMPG<1M-5Xh&ddBweYdn2 z_Us3xk>;WcR10=dhwux2tD_>=WvKTi=eT_o(Vz!_km9xR04doOHuYLYTSrp{7nhkc zllW~%#+5wL#J9{X8$BZo{>g~fsT^88hI zH2Rh;*E0ni_Pv&fUS(MQXfUeNJV23;Mmu-Dr%|P-ePeG=PWKOvk9)tcCkhmDP*eux zz|ov09M-h=?(NAtOnvd|3>gRtkYK4}yp`o9ZgM>0sMh_19}o9rHh;s^i#X1|HLdvM z`Wr}KE|tfUwhLDFC#bK-Yo$VCIxOk%+lypOx(NLJ(@(#sF>ap;_66PI-6_5MWFz6$ z!1lddh*}z+b$v$?tZI1RuyO=vjt)51zK9Ml2eB0I@Kc&z%V8+=HUDhLfb4!}HfaYt z7B*flhG>N3R+v>jy2U}a%`WFMGf@{DszSY`ESpv~S7S`LL!s&17?{^TpP}kd-$6F+TT5R^X@JGz5D+3760}6NFIE9@cR=}!27);{(kS6 zU*gNz>vwy*uh%dOnqVvBt7pBQ0^j*orDN4bzZ<`vHUyK$HM6idjy?9*HI|$M4m#8m zt-wgk54aWM#0Qla;m?y7%qNWH8IKP0JltJlL&=x>zAh^jXOYxQVs12g@*ycP57!gP zASn^`l&2-H-MLCzH-g9EuP1eVyS9Z~>&`js)FAcifzcRSoW z&-G?B7I>1*k&YHFdtQW?ZzSdZ%L_MX!3l>GeF-C#x29h#9=yhfk&SPXg77{Lrzl7Y z-QAd?mL&GWW0;K z;Wa?Tu-m^yK_Bpx3ITAOMDO6)Q-oL_sV!LWd2~~ck9YSE-=BDM&P&QJjH1Rhso&Tu zo!)%X9oinaEI>39Qcm!;Qn7CgtHGLelZtS;Rw)|5k#V5V>QiLS+}Rqso)GYR62H&0 zk8nFhcV1i-gw~YzTHb$pBR~NBhK|f3zb7aFHf=9Q03@;MG{}*IlG`EIr@WD2D72PU ziw}0DFE*Yl528@R*^!&O2p|O!$UAb?LD`U$s*rM);3)w{F1)M&!4JwyI=%RY@#A6; zAz@Y~*;J7DVuRGkI4Z_Njxkp>hY~qQrAsp67X{}TSw0ng2Y1t`6P-?vb>_%I?q-md zAfr6Ej7JPXhDf=KD*a7XrTqX=r~8FwG~}4s<*2VqckqU1GleW0k zii0aaShP_v+uAz;4O4~96(0_Zx3g*cFgH5pWRnwzI~*z3Y1&ckrh9i~E2ckIdBPS@*t?OVmxBRaM~4?J+%kid{Oz9yRf3PEEkv_KRvbyJg`r1l@mU{rUPv<7pBdpspOu zF0$k=7h4F9lmKC?;NYjIxUzjE?0WEV{oFm1kd`JEw*4Rub0{HZGH*`YDAw_w? ztHPwiOd`AXf+FN>{eXGtV6LEMZ+M^JUdNm6WtziHcWg>&q#LwKvxu(>^aVI6_>P;Q zIcR{PdK z=6}TTB2c`;oy$5Tq`sJm*@StED_7RO;uC_heyBXW(*(@qy(mKo7c{*tC=MpSMh#!0Ywg8 zrPJvQj`YsB<&Cwi=fUit#5!Bd^Nxm@Tsd7$=o)Po!$fbs$xwGJF6#I_9GDIn`<5;! z?~mTD#wQDMdxIFN(=w+!3cEMyk(1rGtIohA*(kU@+yefrC=$6~K)F^+F|BiHGZY`; zkG5s`wDeA(w9NSN_fEBQ3!)L6M)*7(q+kInnvMboCj&hqPyzEtFeQe(81Ia>wzr>3 z+B)XVbP;(%YOU+B_ErTLGauOJ(=OXNPp=ne`iNBurLfBQGhhiEh{rI-c=q>bCyG}N zet5sC=a=Oi?_4I?@_ng?pzO(UahYd-^X`l=nK7KHF7wm%e2dYCM=0mqorB+#yI!pb1JRCg)M!$Vk#k79gaO-AxqI zM^go@GrkI-4V*Dy;tRr6Pc5K@3yqdFvGDi-M2V} zd+kN%X*X2R5T zfJ@1}UEVW|IEGi`7YY_#**ku{+R7tpf)Y*t339>PMGbRgGQkxp8{>XW=f10T&^=n! zXXA3(J{Y_twPQ@JYvxh8;iNI-ns(F*Yz+O7WK&^xaO2V#2n-x0B)Y99V20#r5c;45 zdRQ|v%tf)tCk{kqU#DO%7qP z)qxT$pjWi27FgciuJ`iYGxR3$NbS~wG+caWAUM;BhTgv_ZqUWp=X?hD7LE1-WuPci zpCf~sA6zEfwCUiQ&MavfkE=^`b!S_=5z$2Yi+5R~izx>U9zeu-famsNjwy^NL~0M= zqUtfV~oWM|V6HVG?VpsWVF#HMyPF?X472iM#(lyeAt+zeB z8Uf#Gs7b!^=q63BB|6MA(LLgvpLV@PfghbhxEg1_@+rV9fBPB#;%`6qUo=Up&B6G5 zJSdZ!_@Vz!OA^2P2PZMSig+;)hw%Oij>xJnv${&wWBPP8OYBGead17kt4vZAU%lDg zdqS_S_)%VslC;{`emWS}l`nko;%V%^*FWi93C=w@8NgTZ-sy>{;lag(jjpv<(%lGu>NAhw0NU2047ytieh^UeNtV>a#E>BqS%mp(MhrY~c- z(4m@2yR4&lUW;S655qk!(GeeGTN_`t*7u(L-ZA2PI0E{<4s%ebE|8^#wuhMt#f=ev z>Ob;z`<-)<%(Ch2PPoZ%LByX`@~$az$$sm{OZG}XUcS!7A-Qy&Mlk!I*J4};uEl26 zxGDSO5_Q^Kv7IZ5h=)2>#g`W6gtHauSj4Z9*8ubrIsf!#Ma*O#$HM129*&@t^D(Dt z(ubs^B&B!^lQtmcZh8nKJaAMpf5M74J8}RVvGnlKe10n+D7g*HG>s}lrO5QT@@VjA zbr>zJfeTQI!vrDC?#=)8h+|f&TR2$j^7fnP4vyx(EGll6UQNhTqcz?#M@;0ragUsz zDIUQ39F6|}?EU+GD2M`Q4|vJbuG+=B_sc zpn=xuL}GDFd|Z8>3?ah*7#I&wc&%JNASX*eW5C_@so1+Ard&CliommIl`(S(c zc({#C%Cotf`S}JW1~6{md{LIH)JTa55~7Hs8V)UP1WD9n$f2mF2tueeN#4%r^Q380 z>4?EG6%QGI*P0g`6bdm8!i!h;Ck^@|eE~s|S`FZh^LAx-bT(lh?N-0)o zuDbQvL#uny2hE~hav4d-A|C7Z8F#v9fxMKq!{E;J* zB*z2=r7jsD0Be~a=wSOQpXZNg%QJu!Vpav-9F5oL^oDyDi1f4cyi{ z15V0P`?w#U?tT*dELg}8kF#@`Ze6Eab?bo;h8Rkjq+8t&2k_AD$t6lb7^2d`9$fw+ zpFPWT3OSmBg&o3xxw4&TQerkS{142NjfhzlnH`5sK#Vmfa&5w#uL!bU`Kk}m7Syoz zLRp^G?@Aw+pSi;H%l>5i*>%ytfAYyeZsBX)|B^E^U=0sI$+gQ?2SS0$#vU*58^iFJoAFYl*h6Aztd8GA6b41;9OsOQ)2D{!wsxssy-=cGGF zLp;!Wn7qO(ACii0tA+U40FNEa5g0lf4H4^HlyhIrZy`a;9gL8gg>kxIMlx}_-f*K1 z@H5Df5F7%~n>`ALn!|d%uit*Yclzx0t1phe#B{os;+01784ov;NGeM=glAOHr)Xxe z?k!LQ#Uto*Mlx_7AA@ej;ZZimq3?UoDE+R}3F1>dqh?JYoTKsFs7T+N+rLm zxfSXBTX(Gk%IndqBYb$6yl}TGINzPjS1PC0qmLee=KSc>N9j64KRX5f9H3tj;TTdM zG;s$U6dq+Rt5fpap=lVixa>rzjrFam!ULCwV4039UImBJ#*GW&FAS?p@zPAe11C14w zU_n$0^TZ!2Xll&g!{&$coOduBjA+-AYbP`35I4(R2P+Slbmak)+~a^r%>mPWMkYiG z=NrM*mD7|A|{h&Fel zx%+vNWBzd|;64RVNzDm|$kmF8q?)m0!L1-TlKdYEAcIHGeEF^Lv~L=MnhGGo+wsK2 zg-;0qCx2G}RRg~-Mt;r0%qVoIyiM?>aY`4LKr=#k z95dAE#GpMc<98ArCRM6fM?;Pt$-aaQfT65q&WWP9^=rJb`Swdz-q%aPd1T-_ZJwWf zmi|yzDC?4L{6$(FrHU>ULENh~bWi4s-zE`sq#+DpCXZyI1{O_(2%t*15K5<`6fIZO zOQ&f|(w!H5+k!8@&8$k&hJ!G;mKc{n*e;#Kd0FIhNI-(q#j-qcQSM${ITjccWe3B` z?OX=IM`?4O3BVM?O7TjZyS+w;3vNgKq_dhFOeO^-HG@XrR~bT?OIVwS?(m>U?&cZK zi!)06Y_D|!*47kg%scbZS+hAF+POeo6#?^y`501vFzl82y;IWbgc^xJt1!6*B3e$- zF;Yc2yq3+$Gf`n!BfQl16|QI4PtQ8Pgi+7`WJgN_@EK@{i>VZ(j$LpHb9LHW)P{OS za7*;ptH%B+fu#VX+k~VwVJM=3{*UQiB+sSS8w2qW>Q>{;0R6(=Jv><4f z<#-G{=`qNJaIn)L11@2GmETB&Zr+5@nz*r1)XA<9#UI93Ua}Ag0WPkH6*%jS6OQK; z>`mfKT`#Ux!!isj42~mF(nX1(_{&zxJ~&<_#nK3tOk(sKMOJ*jVJhQ{I3vIg2th)k_IqHH{%! zgq;Lq-%~x`599JN6rH>n;31cNPl&SbXF#t9AvuuDfNAdCY{1)LpYY@Y4`Gv?{g|#% z3Ch1p3Ie*+IbB4%UUv}CjOq37El$H-{a(`NB^b3~w;$HusE^qFAbo~5MvMQEQwQA5 zUDubBF5aD=uGgk>^B=uV-61{&d1vVw9gQaE)BVxt@3clg4*O#`StQsgAO4z4re>ICY|!P~?C)AzuD zLdA#isfcch7JBKdK~iHG=&r+ZbdB?@JOW&_F~s;F`regp`XJ2uSAP9oFs)e6g8zN&n81q zF#UM(Ox|TBplZY05Mk-`&8obhut<)Hg|!w+Oa)uN7Bja^B;~eS3Hb-?hcZ3*k^6yV z^uokDXSH6UT^oOR&qZpEx@e)^Z;@JrU0$dUT%=(O{;yl4WqoQD*;BC{$x0O-EXn-C zdl>M&7qdEqdV`!~Q&IpFsL{JAJB0&=VKS3P-BA~`g%@C$+ z3s`DPW!*M8HLMew^-~W}-dY^co8z~?M;jL~f_O{3tPtXN5rapqsv46Qm~a6`XzE*) z3j66ZjAcN)xz5^5MYg?660QbP^?pfb|tx zoOp4LBZB}okb|F9b(XAtNO47kCg8=^Ey2qSVWl7l4;#4yyA3?=TwO z#x?2+hY>8XU~8{uRdrr#vt+hNk0sN6jZqQYF}FU=^bBn_HK6L0ReDp+v7g{$;C9e8 zhVAGx6p)NY2CRrz1`Y-mNJ&~UFkOu+vbIvNGlpm6Y}qQBbp0%^0bYx_<-3e(V&%C+ zYoy$uf{dLt*@i$@avcN&%uRyI!gE285;#n`oht7Gv<1qJ+|UrfUOs9t89?`uJGXc* zt=dQ5ygmA5?jyUwDHDTy-Weyi)3FEDxuLhcxPer9Jf&72H{F`?9*$oQ4IAgD)zxWM zpE}t*zi{KwWqwt=E2RWkqXxgGM=gVFa8&9?c~BxqGQu;N6rl-~vW%x9Us( z<)uQ;;%|6j;1AE_li>V+`JgWsIbkD=T949&Vxc! zebh;Pa2W3H2=7ErLrQW|jjpWB&;*x0gH^+(SmNO5@@xdtEANZ-Ni#kG$HXT%SrECE z3zgz;PDw?s=CQc?Ep8F~5r&kvenqi-US@=w+N}y&)KJ6#BK;@9F7{rMK1cnaLrtYF zMyTb+!v++RWV1i{n!zPvfHEuq5q`!<0e@$E$yme?GU*|ni$|iShGJ{z?gj}3J`xX$ z8)8h?+lbbI6{Fiw_H>F*^Y@~-@I4N3FeA~tT4%j%ki;+mYDV_2K206Dd#sFin; zhToO=u9!EFpa$;|#JlG@GsxKwV4>O~_ME*b0DPS?mt=!oTDf?QH%w$di(y0iAMy?v zM~Q2o_yaPpI(@3dJ%>MJn9e{eoDDuhehDMWaeU!r4t7|2Ph@5tfH6wk4p>50ol3_* zQh;YP1zTT94dRx>t-zU6xKcDj1aQqub|xKya$d;bYtU7|1lA8CSMZDgDM$=pW}JgD zR=`Bw3KTk~RrDoYTY=r3u;EU#S!J0sNe$L27|amS+nT%D7LS_1 znf{?Nq3Bisnm!D_9NIqnrC8mR-gGa~*3=0&)*aq!^321C&J z^)U(){n-0z&Fa7y2dBVHj~13T1MLQn>Sr&7MM@*P-B+CsTm_H{#e&gj0GQw}ArkHF zn`eQzt>%QVN|xS{bZRNCcQwBlUhYkYZZsI)8^(nY?Ri9=heLodRP2QBK*3kgIN4&1 zBL72%Alx@R1noNOpJp_;63iK!FUrl~WnNsLngJRF+zFUx#il$)z|{d`_XRNE(J$%x zA1bkasjNgMtql@Xy`h0s+dxKeP5wMc^!28bt@m4$OtMASn5*^l^_!E^w}-C|zdiW; z#o_7euQ#;C=-Bmyjt9$Z=U$w37x^~qoh_OciOne?FuHG{<6tx4D#6)c36Y~p&&6&k zXnW)>CO&|2Vj$pw@H}r8^D;!RD?AxM-DJQW7=RbnTFRnDE-Rc90N=3`-x(bLd+D# zY-EUR)df2%O<(3ek0VffeHIMHB=~S%l}Pl7)t+po&RFS#kE6G7fH4(Y7i7Mz?9Swh5Q9u|%?Lh&_3K?R=&;7{^l zldWW{)!8?pLu(MHzWv1g-=6!w-L<}7cacRF=jTo`(X++9G|dNa4OS)0oN=MR zec$QHU_;qLl)R{`eZkuB>;3o*>-t zd{W+Z8Ny|eTen?A&{V?BS135C;V853gw8!!KV7c9ZUahcyk&PzxEr^?>DM>C3Jh3x zUbAQpIc?^*r!>X&GHZK=eQ|TnOF@@-hvA)fDDRh0=pp+HFC+}rv_!}3=w&TPz|U%u z;E>X4KOJndrxG>|o~^J%`{|ZAFu|sMt2#*7Y)M<$_7CIT%Wv>w?)l=HL8s-qa9t%s zRgII6sUas`AAVF5+LAXY;FMEZD=*?G%fO;-`_b|PE=>m0D@Kd@aHYOE_aOjj`i{69 zLCJ8-4*h7dj;u#g6rMV7+97Pgc(&)6*Grk-AXEtmjxGwEn`1yCKI*n<|ZMNKm9+GSJZD zHwRxIwr_B5DCe^Vqy(OH;6dOygxRPBZ~epYDDGJ?z8a@x-EPsA)XFGZxzFGGC!}{EcQMB@kibQC~utUQE zjLXv#l!62=mrnEOQ)bhH_4i{Ixx8wZwRK(HwY0a>Np_2ESxjc9Ue7qiC_8J$uQ_cp zQ_qjjl<2V6!7)dUl#^#~*x`)Q?*#8(2VoVs$?DgK2O)a+(m7CWn~c&dA-)k|__OlXkB&8&BP44`rJ^UA>5- znR#L~B`}Apd{MH5Dy{^NOym|6fEC$5urNRayN-H$b&Ae{nANhazB4PGlTYRgW-?$T z6)(h-KVFhbjTb_N`!@5d;e7!6lSJ1O?V{8mtq;`&j-RQCX@cEMPO6=feWgPf3D}R` ze)Hmx80}qsmiN3$4YUiMaevSVsx})1&(6>clU; zTX)}RAx^%$fEVGHjd~Lwp27J#r`PElOlhE~4f^&1c+qV`g#XsnYKV<5s~b0><*ij- zXur-ca!=u8P{2sDfz#M{Ako3hS^2O$*;WwKB5^<>4Hoyf9|mxE95OyR!j&X~@o4m$ zEv7)n?548!2(sYR$PmA*<_Pj_{HBEP%6xb+l=vo_$B=;_^_S|hbe9joU%96nF^f|P zf7;pq&CYMO&#US?_u~ymQP-$92n39(>hubh#KpSzMx%{k%euk?sk7b>>m^HIy}9|P zi|@z=$Rk&kDdW|844Vbv3I*I&ETPeoP&`}U7?YOLE+wPji(S%WlHI0E&)dX zz!;D-SU^nB-XF>uWJ5=mnKCFs`ArlnJXpoiZVyh5td2dM>aPt3(3b&*0mQSx2t){R zG%IK>Cy)u%vUjXrIC#=e{ek7#RAqTOJ(S^;wG@?mxWgUrxXai#@510jS2D zV9joSx6Vt@9VY*uVedDa7a+K7KA?n8f3x%5x_k9gT+qL9g9_ z3A`?X=NLyb-i2_kwTYugBdBPE8Nj?L;UuX|JRW43nx#O|8vY*f_p7dj1tQHHw6dTv z#GqB6+a11UUc+Mu2aqH#Vt3aUhN*A$@+Hsk&vS%9c|b#`U_KM__ZS3)TV8DLa3I`N z*hz*4wgYPq%N{tU$!u^VQEE(Eb;0(2)7H@l*B<+kgNerUzQB861jn`{5=#f1_i%qH z%a06Bx835mH$`3%r)a0Z1w zBFawGca3Kc#?xS03k9uxb#n6NnA~9`fzsw`!7jj2q2Nz#*2-rG0aG2@KE;kN0c*Ih zK&P+kMc$&fqmVRc%B|Pq+xB=|Ph*TqNkebE~)&cWSL#?dK zz&Tl57oZ?FjEfIJlQyO$5BcMC_+iXc4?_58_gzn7(R%!genxE`kR50|m~%u;0%iJo zmY2uJF9w8!IL-!Vi*mx?V_wKRdW+Rein*;tKDH}y1zV3g%#lKnMgvB>;y}^e+Q@Ev zlfn@QXkVXds)Hcmv2k;|b2 z+|y^JAnt?lb%`YaT#nWJnj>*Ql2r|evvO$>L{JudphH{#u($Qe>6^E&|M17tX9skR zgBIS|p3x|J8rsITQ)(aOvJnb-b3NOJG9x3uE|Z|6<7anp3c;mdV+kIJ<` z4u3bHM{nLekyqVSpm7C`fG5qBRSKTZ+(RUJZ&Hqx(biB8OfY@ie0dRDc4O;iT<8*%erxPBSCf6|IpTyDu~c?frsQr5>9Q*`4V=RZO(0 z*X<{0XRE^qPtCsya5rRo~x?&SDZCs-T)^gF%qK(xVRg_o(K5G2w`1{>d+QgTqI09hpZp0Fn z)vtvTRkGBAoN!+bF6RxUZHbjz%)>AMf{{+FI+`0ii^0;0le3Yk5a_kDs~$urfi@KC zE4rD{pfUh0jLp+z7RdIkBrxLnneSVG_lw85~Th7cBkOiN=PN^UDWyY=w zq8kbWY>4K;Ghm(A(G>u+5SY@oNf^2;t|a)F?B@uEkZ}mZN7U2AaH2IbjkBUFx1U9* zOk!wu2Cr6E6YJBY!&9kpwHPM?p+obtoOOl4l@$Er#Q-SRg6n2*l@!$^S$6`BQ-8_! zU9bUAScYIJ+rm!Tkw47WUdRzT5in-!r>alAD{jsX>*)R*CMUePqD(&s)0pE4*3H8e z&6QZy#`CPc6zYxiv-IT9shXkfG5PgylE1s-8MXK7Q_%y-HGq(M&zi_5Y$OWWF&Zhw zRWcfNROcSBUPwL_I7vUFuoX%>BVcCYGoI;K%va}09vDmVV0wGg% zo=g%xV%+^WpNI@1F->-SMkC)sS+LllL_3sfhy0_w&hexm(>tiD`8c1*0iI}oXc&f&uRrc%rsFk@X7e^TdDY+ks2%qWQiCvC#&;}+HqwpL^%%W( zBY^J>O-22f@uNl(qBw>R`kZy41xq4~@M|OofgMoOSmgAB0MCN2!Hxo@yrgJqLjclp zD;hVu*B)$ziK&odSe8|31q5n)AA+*orXF8u{s(LrgadOY{B+_0fyX%#5_0lC-i)M; zWO(DKenznm#f;3pc1`!0o0RW9P{o0(2|^$A?V#8G!feH9$cw1ECWtZ0L7zN)KFHEH zNKsFguM#C2JhLGgPS7QMR_pXn@Du=^oSk9OcRe|dXbr+ZAr(dm zy~T#PCX{o`NFoxXcOR;UKh@uHfNLwDl!8UWIPrBPRFAWUo`?=Nf5-E`ig$C=*?&6F@u5Y6=wv9Tei;hv`vC!oCU%AQ;l<_;}jH z+C|dCKODS#^Wt#$?Db1bN+c1kZ}`Cb6gw`%36@#uogrGV@N}6}$^gcJB_?UB#WpGu zuq3D^_}=heV8!y|j{lJ>KLFN^fRF%cjpmW+NrHNI;(C0~xmYbwTxl>9SXC(YE-RK( z;}qdo=bgNP0_~t;qYZCoNuNL_UA^&+d<4n>=usCMhhty&L?s%%4SE97-!W;TTRNnC zfk@sR23cWd(f}JZXoDiOZ-S5FFe_MtxV9t2k)ikgL60Kn5AuA# z1>J}-o-l-Dh(+O3{67sz*YPEP6nB|{2r)bgY{P$-W@@Z$cU!6Y`!$u`y?-mo{H_6V z8U5v~VB97>X|wV<(%saCSj`pD?$zMM?m2v7WrzV*pJ+vcFYYwu!hk zWw$U36b=aOQeS_sJrZUVDD~La6Q(2ttY`t-W5cvFSsgR5N$^dKBOz&dV6$vfg|XPu z(Zrfv-rPsJUlAJ-NC7nHXnAfbK(dijA)dwfi|b2*fTpdamc@YQ8F-ppYF zm5jwXZ4lKBa+tp%e3}p%SjV+H>c)-xD1Vyk;G@<*YKA^)c|e7?OvVmDGb2c-gx-_P zDbybbD{Aa|#@8F9scT}sKm__JOTs-t2^(f)T9Zhen(IW8jBYBAcB( zkuR%}BkmirT@U>a0X1?bAQ~wxI8vEKSMo8vVner;Sb#&455Z%w0ING8psJIAhEALW z?7Nk5#OTBb(fm9p+(0eX1`4w8FH(6@$`MccJz5jA1jQAUMBL!gA1js_Ei!)Wt|b-( z$smwKbL(XSIgm|G{yay-802tMmoYi3{YNmlavX&60Nk;_6nRA}=lgstaSYGEnC{BH z08dF{;+DCVe}%85>v+>T z{X~-=(QgkideBGO9{emHD;pd;qo`w1r6vcfmA`~52-kv_K7prQKdd}@WLQv&IiNu8=LY%cRb>&EXnsJ6Y_GbZ9b%B$b%^1^1BMtMm%X=M zz}}lI#sk}EFW}ykT_98%bJqiRc!R6S$wj%r+oj216j(nc6tn@3 zAr_OJ&^9m5fX=}7Us^Kw?5lm!>Bl!E9YKSuhhRaZZ{ z`yUH8cNfN}#sNbshV$?-B%Oc)AV9U9K;iLe7p3ic^8w!N?vKsb?*E&Y4-IY%?? zAHMsP+gWkSq3G09gQ#LT-ZI2&vRQ5tx>cPg0bj9?NUMF`1b3Wsjctxojcj%G(KMjH|#a@NOZIt+*2eGT3!$M ztf9d{ix>ivQ|+Wt@faU9WR0Lx6;9`KqXL_7Y3@S+Zxxyz-Q%qUIyuWZ?&vaK%pq)k zeD8*H)MdD7y5n-BWqk{;T61tOhxbgD6xW06a;tDm3=yqo z)u&jt$j=l%g;p91aS{e-4uoqbmsS&EcH!N>q!yfEiwVD4c(X|NXhY^@ODif65;Yi~ ze|%JTVC;LrF)MebKdy3f*hMkm6wO)Lea7$bgrUrq&l{1@_|N+om*mkOqILPXow`EB|Qf|#kQLV>Za>!pu*4)aT0OHL&a(wn(k z?Vg#*jcB34ie8g5V&~&Mkfl@?rakM{bbpuJ}BK?bDuEHSVtQO=J`3~17S(8mE zO#S8Sj$CuLP%ME>!@dOHh^&qa3on!yXv{{j9dy3x4gP)d#!S$I*cUh|P8VYQlwbgq z^~#2%61FFK779=cw}%htznRA1dmCW>xYZ=cD>p6T+DuZmy7Rd(z{S_HpaoEF9=8f7#s`$yNZNz^w1 zGjA4WQ#S-~tV#`i!Wif?FVj25C`e*nJ!x1?e7cy^hxZ>R?*G|j>i;?YQ?J*@@2>J& z{rWq9(i)yGX1MZeN#dzEul=a>N2qu5q?Csmd|iNm+P4S-_F#w+1m7IK90*ieL7Ft& zL2^499wl??v+vOMs+F(WkKcC(`8&8VfFcF!U z3Er(bV@{l|PMDfIM$-c^*uk7t)ifN&5EDT%v>yh(AixWMHpmM<&uR#&^NS%1U>Teo zL68j;!!R24;1J<#C-~$>kckgH3L`-#L9Bi-2f}o#!6JlGNRk%=S-Uskoj{&|oJg}$ zusuT|ild^*524UPDdWy^%s4k0KvW?139cs<_=rHuKh7`=)UOEiLZq>H1u+d3`8|~I z%2%gBD}kgZ{FJ_Rg0uhdCE1PAp~wUADs&6#(mnC)pv8%SL1T>Gp>W*lZ_E5d!t6sa zz*XxOH9SB3h~w{36*!+~PL^AYo5ftmBQKqDHP0|B8-n+<`y+y=wPzJD$o)Y3~LqNfZ6>0hPh@>|ofixZU>})n4z- z*Uyf(ccLq=1FI&wZroexN83B8xpVr_c`ar>2u)aVH279*V=Mk7p*3iv`K;Ib?#~!- za#1r0?<1!8AL|r}P^(fnS2Z^(FX#&zax&Jw?EA z?F1LrriVOLz?5O?n-^Wr0+A&2GMVOMs@aRABpl3brg8NVV7OSyMhSxOWOPRsx27*3 zDJ>WwZIGODWVgj(9mt6uUGWCBA3|93vK|j+SL52XtF9n(mCjfmd%8?EF+Yb!-F?#n z3MNvEu>wDU(}5HugG5|k6Q{@=nKUOvu!m)KrL_^xB$e_mE2dyoMtDD-U)wN0v)zr8 zkh-z(WKO-35;V~+-%1R5;PIqUInMJH%5j+T!qNfWqR=A<1eeGb3D;RxHM8P)0T%ZT z0VVy}BPIP5KuIkyq8|p7#L&ZFJKKIMfYTE*f6nBu>MF0 z5W*}GS_FU(jfj4!;FyaxD2bR1k2`hukTsRrwH}R?%4-x{pb4ft1a@g7q!B)EDFlkf z22Tmv3{Pt-K^6~B?1?O39id=8^xS|LBnY#;2B8-YAT-8+EfrO8DgrVh>Gm|pOKwR+ zE-bU!V zch^fX^@l9W*s!oo7h8IxhtLz-F070r!1N;&Ew_bh4Emarhm&;-qVd?-*?Y`D>SQ;Z z=WPAs*b%>U&Cp6s&tI9!h$i!u_XkDLe!@8sE=06asfDX2uD1a>TC2G`OhM?-aIyh9 zuhQX=E5I{Lu>RU_djJp$(PA``(db|Q6;3?Jwnif*lUowl4z*!)-o8q1 z;Q($Kr`5l1I1Mc3GG6Y`41w8;`WQFeobPH~rF;m_#vs^V9_)NkI(b*YIt^ov_%)+$ z50k(~_Px7E|NZ!z&;R$~vyhO zyVb?9yZX~ZhRF}l*SRrP{hTS~qR_S^E9=xBf+JIs*pz#}g{pRb*7ze_2fs&B1Z6qG-?(IF%`^h!v7&EV7MVWSC&P(`P zq|>&BCUmgk@Veu7HmJ1>Y?4?=GG??E0S&B}3%~GuAs&VCx}qTT>wG>gFdYbCjs<@? zLf7REmhK{qJ4WBNmGrW6b;jJv6laU#pCyoL2+5=5o}t+2I?Qf7#(>m}IG@8Tixk$8 z>l*ArEB{X}PXUPYtZ2HGCCmNwyf}B?55CH$Q%G8cA&qd$10pTbcO|RUx7t`?wzqb6 z`{~Zs?#JZw+1>i&$*@KD=6V2+*k)V1`U(|qz1}d;Pyu)no3{QibjlL#)($t9VJPvV zxlDy4nJ*8s0BI~3=F`aREr}oP*3|bvKC6QPTdn!=nne8%ehIu1tMx!2g^yBxh;RhX z;ju0*9R{V)iPge_vMrTy! zci1ih$e*^!!de~L5M7Ll?7G?HjL?Nw>m~F_1pTb@ZpJvb$a3-n^kCCnmiSJ`^J!bC z@aKSS1RjfqnhtJYMld3J04zsmz^mHE&~DwzXurc)psXc3fXRyQV(?l_#8|-$KJ0Vy ze3YTbDNCQdeL-hK&}iZr)XX~j7P5Eo)38{4z${3);>&9GRzdoAo8>MyjuQ z$cSSG1ft(FX0|@i&Cg4OwRbYsE+g*!m;X9BeEH^Y0Wwt%Fh!s{sN0YqT@;hx$@H7D zc#pA8={HBuVdH=6Zec*PK0bQR@8t1I_zp3D!!3&9!m^jYIX--Q^xV9DjOfZWw}qc7 z7t?7_#bM0M{xARa;^_0|M{mtjM}UMqor-_+th2+PAH7=f)>%<@y>uME6}&|GeM?@2 z!GHy#@2zkYV`!n|(Ye?j5Z_iV`VACKMgG~@3JlEuO~3+L5z zqOX1HCgAnA$A4S#TJSt9vuCegeR1^V-{R-r{fz-v(jS8O~H+5oh)&Dc$gl% zIDVb@&Ew9XX?3ywcq94MPxBAzbMvyZHQd>pRO8Ld=6bq$T33s?Q!0o6brafiicvnB z?u^Ob59f6=Y~DBbtz*mmd$PL=|9!f(`vgC4@9yD$;m@6|?O$#0?(S_r-PzrJ?0(M-X3xXtUmv@cOO4}8lC@7+}9t@|DWTZLf-J{ zA)q(#F)_#g^TXq3Z;#%b9KC*(1mb)^YU58MCn&6c?9T2A`t%ap{@fv>tyd!C7vgTPQgX^;VO3PEn$+8g?4O;V5Td zLiS>lr9RFC6$c|G>34x=m8Te3POP&rqo}r2D=lg#+)c*r=>GoC>1ed6qdXd=o*aZc zmNB|%o&vlMZoyvSkrK+ZeFeF89slvw$-y5InIJMzOfgMYoF5PuZjDR=xHzMTzV*@Q zBVaXxkURGoBFNoU^8#Nqfzr@7;Xy!HNQ$)q%bcifKD9NtYtlct>M!!<)co!gEwG~y zHs5#YcT2J*p%s#`SBCQngD1Gxf+&EQAsR!4bTy_hqP^$E$V-mX?h$~+w7(+EZfJD? zveVNKWZPVS0|Sd5RDhybz#j;&hGIh-6@e1JH@r--zAmX7NK#WSO*mleIUWDKb z_`Nl3mW`LLyAy~NbPe%x(`eM=gqpEi0j}GKn%Fb7#YS6aa^-rWMU-mD z8tuo)&qok0jFU6;etQcdioskQ)d4bY+VrY zB2?Y;uk?)fTKg>dB>;a&3GT}ZLjJA03&PQE8ci4Z?6V(Yi4jw4=62KbqW&%*{9{~5 zH%8{HgC!1Depz?p_L~TM#na${{?6^@V25M-U4ekRqt?9rX8yi`QH(+muLG(GcZMgcUDew_mnUcz1Mk)_z+kAOn0L>8(oq>k_9yC%*fA zemXgWpz+y=d?Iz%7=k)cG)gVSSF*W+SZ&xROo21zgO zhy`fBbs~s#=SDu_y8ql$bNTz>k6gc9r~U~ZQ@kYHeW|UH_zofNl`BCGy2Kd2=#5Vi z6+lCwX@J}j?H0DX>AcrRU(h1Vz@nMf9lzWnT$DcYS0;_3I=C(^#_gtwLa1Hp7vmxo9?fR$d8%YJ2Wr8edJS zn-aW5boL#yH0{1wKC<{R#P6#f|bUi8Q4e<%+-88%>Ym9fPr4@d&ZFn z|NiUW{`~#mZ;-6#Uh&C#@(;eHfP(qh$39B1&4eOQSgw;tn#M8TBktQhsNJ0#?H9;{i zk6x`)>3xHYLtMQk!-2^}rik>d<7G#!GjZ%@!r0~Q7Ff>^(&bm8LK_lQ8 zFL#^VWOGngJ=j9~O9_S{QtU`H$Rajz4!{O(67}TK{P+x#=p$VBgo5^at@xqe0KEW&SG|gVm5nmK?SxI zGRQib>Wg{Iom%$b*p<`U?k>Uun8iy>O*`nq0H;d?A*!22lupw8kxh z2Ll)LBuUn3tT&i*Me&>@=f0agmV*GxWHiEIMcP@S&8C1?i0JahbnwI*L5$@vxq-_I zBs&~(W9oE!@OVSwV<8VmCXaIwQP4FiB^8(W;z+E)CSGFlP29$Q;tTCurtaBwxqx_p zfNDob(33!;ZJ6_Fj^rhjsN~lLSrfq#<1S4RcL|9L_(+kuz4B5siGoRBXQUx{vXOpKl=K#~?wE0_ zU!uJfvyYD{K*cL{qfz^8Te@)l)2Sej2>tIPyK&;Tf4v7+IhVD`0=mOy$}AsU*i1J z{vr6@d%1yE`+uMAZkzch|L@b?oe%LpKdb+@DA%{e`Rfj3jqLp6tJiOikB*Z7!<64R zt#8X}Ru=?6NZ<8($)9??!Rub{&)@$!b$`9;^}fTefa#1$o9K%feBq5w^yOdS%fBx2 z`7L|_-;CiKfvzso$uUGK(v2of7}-n_+oO#IE?TOq)P(JLvO!VXVV738t9j6 z>Bf6{=@gpO>uh4jteocM#Ldid*S)aJ09}XaA7OA%4FeK-J%dN=iU0jxVl`CAe#VVL z63?v=3^^$!n@0F#zfgtB;5QNltpYF)+R4AN;XV7u=5SalISUYjcNlu025L%B_vs=?ND!UkitB_hNMca zoYP}4B10(W|dsAD@7VPFP7j{Z4_| z(0)Jg_Iu4CWWze0N3>BljF(jz@@i$mQvh#LD{yo@3W$^K?QnWJ4Lo5?d8brfN6u>> zmt?}lTX>)Du?xUMr8YPw09%mHFk#RY#zPY>X|tJ@xHXcl7C^PIl6b-|F;ktP+9w^{ zV*R9O#9WJRcb;b%MsaLm_#liM6JTVGJSs!7Vkq2QQus#QwV#ceUcg#ipt}crX$i1> zE=vDurTCZ--i|M$o=`8&&tabcfVWX}i7sZ6#1;9a6@*$U*T;+J2XFk>q(b$Rpf~I; zgVwPH8y2%to0bw`qQ%jwhP1KQcsw5`UAHW+5WHmVts~5b@>zfzBqm84>!H@;JIWVf zoKGFA$uDAFQAQ*VA*TwDBrKXuIR+7s^XNRtbLIB=VB`pXA7vt1 zH74dns^zy^Xqtf}P)l8U8 zCpQ(cs?>!4=bs7UPmpb1NL&fSkG;eG6*)%x-l!wkW(M~kItS;Rf2IQ$S3rj>#oJQT z4@N-BFqAqBV)zQndiVWj)Qvu7O#pDzpuk-5u=`<`O1`h%7_kxSnouv3hyp{`Vyo> z0yAJJ3KJ{9m!KG{?YJxD)EB}E;?CwAxmZCIQ8=dooJ~C3OcWeN2;jhY7GOItZ8n#6 zX$w}rVTNcn&Bp%qa6G-K+l^pNcu$hv`!SskmhKW4BJL<|7L^h&YER*ayNVR1Se`Lk zy8WA69WAMf4VOehjI$X6K(vJgK9xHpLq6Wx(qVdU>5xE>yCg)uOE;uF80W(mayDj6 zt>B#Gy$TD&slMQ2s4nK&btmdc1S`)aXUymamrHL?HPN>1o>;g&c>VBeZTKO9}+?%&Iza8Z}}u#*|x;v`E1tOot+q zAU2e2rb6Ll^SIxlWhA>*#@w%K&nQiLl@%cSJcFLYPaBv4hj&OvY9<~8T7=}{6$g>C zS$*jt|Ix;<78@DX7y+0$b->}1K`cACObo071w`NC`bL*9d4Av)IL_@}`kD$jg#zkP zci0RE9(tb}1@XkpXkb9X@4i5YV@7zY+;ARzbMn>cm&eBkZ;m23QV1w{$E2BHcA|Ah zF>9U^&~@ydMFd8dj+yuL!@1gPH7d=e-dtjcN5J5!J%^6>&=lZBj#W<#!>l&QE7 z{)!-3LkfUUdWEIpVIz|X{0eK?p?f_R1?om+`bpthn%%8RRsP+WIfgu#Q$(lv2Qx6dk|LH^xfz+a2 z3X04L$*X_$@~S5a%jWZ27U+Z-#F+2uPknKTR3=n|*g7H}gRbQS6K@y8^p*t=sy*S_ z-F?o^WeJCN3m*V3tSn7kVCkH80K~@ly-8bba_04F0FU_m;P^0&)No@feJ-0_>@`tr ztPoS_so=9q1-4+A9LL*UPx|Md?(gSmUXa^q z_Cf%vRYJO!(IKpN3hJNwoCB!Gqjt+OA|W!U%sT^mJ^Z-ScNNNbn&y>2PXLQX?VWMP;&CAE3gW zzb_jyz8`%38%R`C2&q$d zcjiCu+Zi8CwX!c=>%6-!_iQ8@UOr39ix`tH?iCaF& z&lVSa_BlD%1pC*bh5_pnHj0g2iWmm3ruY`{_R#ATNN#p+lV7mwk)>-V)*5RT7v>6h z4#izqK{&DL6L70A0yRW}P9SPC2f4U&c6Pvr0gzM&ub$gjfp5w3DQ5;dBB^72O98>L zC6YlS*#P+@X+^=A2Xd;Gz`L`;?vM7>nsOmlZhAK-7OV-P9lmGCa|`TU>E{l ze!cJ9cFAw>x1Jjij*tvJZvKhBvDh>>U^e2cJmWn$Ps%EC{oaN+ywi?X+yR2M|1a(J51?tWiJa`G!MfV!N%ZX*c zzcan1%Ao8hbxoh=BG4Bks4S|y1%qLea*W@BTors>$sx(_xS6F?IL$^om=EnSujVI#O}L=tM}#I~`TvKFXXG|dnMubvBdZQ5=dOkS$8s`?o zjl0xf!NkoAetJ*?&6{0K3=6(TBXv#3O*B6|sDb)kSMzM4_h=k2mK9x%Ge10RdgZ;& z={1Gkqj8hP?6h|KH*TB%UMz07x8{IqjCoSAL72UYk^ArLR(pnNu%Lj|QJ-4QF~T}1 z(TOfHiyf0kz_oGWUZTtqB$%Ye|68l^D~CXCH8*H^=E)~qIqhHU6&Oqq-ODx-#L}Db z5y6gUi1UF%6DMrYQHg18BDuaosoUKwOtfhTcBK_~)(>3uC~Kgb6pf$JsLR>!qm?3e zJB#(|P?pm_S_xpP^tdJ{)bgUpBU-f1skppZG86K{Lnng7>MXr=;?0Yla>$J2V^N40Vi8dpLs$tFBJ7`V@dmEG{J*?el# zvx2i*q7i-Q3VU}N;zppopkP~h=e58v1T_xDyICjCn3k4U7Z_9o9Q@n5W1-^oM&x%QV zenG6fb8dZGu&kBsfE0X6ZuR@pen+STwNarZ7nb#ZbjI=t(%KM`>=sGt5U^$IxN|>9 z-KT<_bjtJO8@=KYx8vtmb;tRTh3RJZhnCz#@PP=K#l)?268)1jrLvTUu%}V*i zdG=2EgZK&s>%9*t$AGL$SPXa&3J8(S9L3wNlz^!S>&aX|3iYGK&e4c(Jo|}aAAyqU zvraMe4Z;C=V^M6#P)KW#T8Atw7^hC0TtN%*aHVF_EpHpd@}CLYWvCGzMP#6XJO~JY z3jl{{7%2`fG$bKv5*DHWNdT54z)3_=?mA-LkYrXg9_nCu#=jO;5=cbiY$@}`ZPzQf z0h?-EO=Gk3a0NQH_z-j@nPfA(H+j zFU#VbLl9n7vQ+%&!a=bnPep(vYo8{D%7xX^QVLDn7XBIdez z{%dC?U5AuaI^ZucigTP7?@%p4aCC~!6sqP>ePzN`FSh1owYa!Mb~@#?bZ=aHY#HGx z1^Z0oyxIW77)ASWQY-Qv)-|V}ga)*(g>BY6X#v5SkH1>F=HmxB@t>n(-J-9ic1@y# z-J*vkZ?S-QAH=W0@($l*$8#d3znw zJ)U+r-LJuL#{D+KNmiFr*(vVZ=$mB8SVoVnI=7z*lw_nr^@5f8#tata9_h2ic~a&D zDmM1aMRAB#wjwy?SB@RE9N*H>4j${Yp=?2Qa)H_PXj*^IWyXhe1&3n*AG7jNAXq)DioyM<7G z@OPiTI6QmLKbO4r#y;J8Ce{7Yk~yPe#++QU#rz_NA$6bi@1%83=}&yvyU|rB zADA%-m;qADx;cf9U_yqU;&bc`6jj^cu6fR>`H)P2)5~z1cr~;R$;7Xb4Spmz0*}t4 zR>fEyd6}T&aYilic&6~Y+eX06Kq(2G{h|0f8HA3~5k(P8#gIv;W#SW8=q)-6fRn52 z44Yha^s-1AUR%Lrnh6f_klc5{=k7qpD0PYOl-v>2zTLl+162*4bpWpk&SDdK$AxGZ zBBf2$iPtgyxvWvvm5(wU8Ln5YedmjOg zgvbbdUexh{AXCr`ptBwtnd%Xa+Ue!Arzbjx~sYkv#=fAFA>A);rW z(z9FkS!}VuX|HZ-x_A?)WWV&!;^zb1HGICK zf(4CoYwo)xtB7_{a0Rumf;4>$KYaXTcWVnRJ5RQDKc+va>Zc#?eX{dp@9|#xbno%b z?)J{(UHlHQ_eiqnSd%He`efTZyAUB`e%7&vBLV>Tgh2@LAycA6)Ez?=FfIE(@zW4);v;ED%` zS8P~?Mx*~2jR5(&2ME$|JdH+w`VL`Q4yG}tL>;0an+kzii(~918r1%benA8YoAg6U z8ZNi>epJ3s)D)x!08aiLU?odm`h+|ld>3Phq=allCQ2AZg#6K1@x<47$Ds`qyG;Lr z->`o*8HR#Y<-e0hmI`dCFDQj=LXsu?_4s$khtIxwdpI~bJU$t|{=FW%@Z-*^AGcTi z2=e-}--CS;E$isk=4+4dZ2puixv%->2*)XTPD#eKdeY22T}Ip<54>EXYtU6ti>7QE zWcpO=x9$u7A!&EW{}}d%vyRdpDh#eNROqr+=i z_%|2=2u~OIFq%mK~x6h`zFPKTdBC^|l>P56OFzaWS;9VGGE5eWW z>Z8rfk+L=E9AMC9ba1V=bBT5V1|F6M9xHBHjS>2(*9F1A!L&GUh!5p~6-dF=NZOjB z*xNupaHyF~+tcuVkqD%09AHRMji*=sE;hj^g87#N?Ji8SHD)KkheagGO z#Gn+G=Mnf3I?vn+qmf{+jYjN7z>YCw);OOxr+5#x*SMi(j4tCzevT{_Xw`Qm5XG8+ zTj}oB4Io|y&YCl?m?VsN@+S)%2u1*l!gy0oFKIPUGAzWyMi^XR4EAJ0rp|QvNO(h0 zH*#3V_ILu@t>BM`*_OSBn3TbQ-Of zTq$54^mgiw%cNyu_>o3s9_XxkBTazw4k^QJNyeeLyh6h0Q-d*2H4 z@&Y5|d;C{ukLHq6`f*7a<7oz1s89%Hoh>P(R5jJh@BFSm7u5)DqNj)%_g&uc9?Tor z#R#wxiBRcpGO%Ku07ne?&5O*ZnL3%o?JJNCHW%ogYACf=RVV77TW(GmxLw*g->DgB z^LTY%11_1F+Hf$aQb*K!W(IOby6X3ck7&!^c8WP}<~k!fv^ zp`2oN>G}RWml&!7H6bu>`#A|}T{%xHl)VvdvO3Xst8s>b8RJc#Z!!AkTH?UzJg6=2EHq>;PtAVAXT z9@4hJNqAJ+1*jaB^b`Rh>xk^lZF&kCu~53Bk;I~;98!V|IFgc)PuR`ZtuVPCH_-{$ zEWm;t=}W-71XjmuuQ7>yM`@08A2O5$d5dznY;q9zj|K)@qA)38SB(a z5IS^82_nsK6>G z0khTlj_?*4l;Cr+GOEQ7N)XZ_qhjM(?i`diOCp03zWODaMQ>sn5HyIuaU)rd9^a!N z#Av{|az|OE;Ob~mM*9%+y=8Y4_ps!E2jo7_>UXlqeeh*O!F`;U!&L7{(~-o z+q~W^tBw8iHt$&G!A!)SOqo&tAz9+U)QPm7$6zYOHmV5owFZUUHM8Q?OibAje4swf zD0Y(lnrsve3}*>&a{OrXYdC>jK1i8Cj&mR8zG+ef@d)K0x*CfQrbk4_!OO8s`Xhie3cc~?Pj=m16p+zRx z8z5k~f}LbOj5kfo5665l>V*@Y%M~6te&qiCH@|)Uk9&*~=K0FK z@2i?x&zFvUUw3?sm+7)SpGqO>m;$I4imETh%|NrwDz}&h*+4ddJUJ+<+0Bw7Q{zR` zQo|RQc)Pe8W;I?lPC5XNG5Bv{R^9imqxdDPHx^O8Yw?sUd8#*n^`yo=0AcdxFjEG` zhy<=wvqsFjeN=H1rpZ7E?KC|Mz(*g|KI(_!2+_M!lr~C_g6D~|6J;Y`1t(~-a_rt4b4n$Vbu;wfRF|7Xa=Zl#oayvK-=Q4 ziw?IPs=jdICWy?5sD$F2^ig~2Y>D1Solx<`6VeBvTq`=ghqb&^@Wpc_9bBcG&Gig? z9|N~U2D}bqe~3hba%a7EA3qq=%4_Ul`q-nbwtCYMTeLm++uHaiIc!!O}{hLA`2FT`x3tN*lo;BCRwJ4MmZ~35!nPq2!tDcjz zKNUqyN^>2(PiZDZp5v0qOQ_5GvbeYeTn}6v6f}Sp24`gA8M4eC1>?({LDi859w9(U zIBpKvK}5`B+5(VVWFPH&pmQ{ZV;3f2CBT0`)xZKvlCO@APhP+MV-oPk zdxlO76owkyeRScjKu9yVnFESW31*oSH~D{Dq;3nj)4fldFHxdYakK)M@9zt|i8W(7 z;!Bn8xfUJ1`u)+{*RNh4zB&n+TD?4S#igu2Rg)%}821%y>8O-X zfDWmHEWO{+gbxJj{}=LqyA?aT7xDMK_`kPyww~@q{NGQucR%od|9t%4FrjXTgA@pV zCd<6#v-Q;LF4dVeUQ%`ye<- zQl~nm1TNz2HZlANh8m$w1>3>;+J$iM)h+Ckf}97_(($&^#SjT!!_5wI(mneK^o0dB zN}@Th7NwJm&u&$$GbP0DG4mpuqrP`a^rV=7|7W0&mEnU|+|^jt;@0#_r=#)kJv0O% z5-Z_avsm!3F7W!|5n)4^#iNHAQ`$Mr*lB8l+(&O`OFOS)DL8Bwgv}e4l|UZ;MO^eU zD*d!$8TL&$qMIZ9D*15vf4KkY{tp;k?jZ=QzW;Zg>^<3z?*FGxw;q4E|9`goKc?sb zK_K{!Bm)1hQ#NQ9bz0w+)vPXv9wGdVMTqBcjzTanfMB67-e=)Ydf$<>@D+v_F;|om z7ka!Fu?+tER6`q9wuBY#6%t19o&aG&tXBXs*kF)RcEPuA-SFDa66W>{Z6s3hOMA<L~x4w@1>uuxX#GY|~Gp<-xtONQa zmQQWsfm?+D-sNh-!i~P3-XI(p;-e5wM>cnFpd(e=GC31^!X?g);i^?AyQzcvhXh@< zDs_}WPbfYhePjU)bp%E(gK6Wx-Hf9rhM9Qrse0@t0iVgU`S|jbKKln0;LLRmnXwgi zPaW*Ako*f*80`xZ+ig(L)jRp&_pe@??_bK-n6u`;zy6+OS3wkE7=;>}f$V9@=VeQ_D@Tw-)Tk@xu>q3zS?9WGRIm7=J>GvLLYx{bL$8tsopOoOsy zy>v7ke_+=kJlWCY5cH3m!!3_ofM{XgPKlVCK)#T|Yonj;U>L=M%*5+5QbOBuzvY{B z@*DCvwNNC%qTP<7FTTd!FzBeL#Z0`6w>X2dS8&*B}X!=7Pnw;1i?b`B?Ky zz=9tpt&Q0o-AXPr?l;qB!`EFnGPwmFR46H*wMDN3d^4u{^&o_rv@4+n>^v@8M@2_V zL-*|6?fq0SfJ}3@83>m=Ia>nu&T*{NlJIcqx>bY3a&^(I7&;*^Z}S&X5#W}CTjm;} zUQFIyFrwI=U__UW=5KK z_?zQE@`(j?^g;L91Dg_JmA!RC2K$XvPWso^j5I zQ^1j<+Q$S%CLc}93t)RBDkwaZP!I%HPDiAAD8vq)r{nT7e7;|OR?RQc!B;8#T<>pg z!hZ)OcWws(5C}y(PooeAT0QB&!_HEHbnT|c-+bN%xLONqU)yImYNTl>{uA!qfc}^+ zheu(}kMN~GLUgjH8^4}4CN)?Kc}e@_jcyaH56{#BsHvMwm{lO!`PJ)_^o!STzdSr) z!2aMhLIn#wt9o`uAYeZDuUm+;7tWA;dtK@2WVn0j*_yx$-Kc6rgWHf|` zRhe$W|0z-}E5KMJu^!|Rke-JN{QC>P^*==VT_*V^0fhD)(r<_4OYeWU5dWuNh!~yz zFRgpAb-Q)llzJJix-kh0?KW*O-QD*#q!z9?@A-OoSL8Rz(yIY})r$c>^y2iG?$h$; zlpwGN_Z*eCxLLtCxgQlni;xbJ{j^$qM*Ktga_cv0T<|L%ddF}G?x(L`9o~tQx3zr_ zq`WRvy%V!9_S5G_#|JN7y#Dso2^`-ZynTM~`HRE!?cx9V=IHI=@#&jypM7=k>dV8W zbIXeWpe*N=CQNlc&d==ov^e}M32|VBN}khqX#UpQg!gQ4eV(&;;j}`d5h_s-v$&|; zI8KxMM{GzLqkFD2Ob3MS2QnO_f<|I!AFnz|m*YG*G)g?W&Fe?(rG~C={D-E+z5cq- zIf7Q!?I>LW-d7w4+%btPbhEbnJb+*KZRQW02Nb<0>O7tUJfY)yhUxDpB`10l9^P_{oi-XUDZ&wT|hC9-TqRw2;-_34LD?n z2#<~xp97{RNf)0DER_bD+-Qb?a@c7%Fl_kqTWg=|Ly*X#o^K)|;pV$+zRB+qUhu^8 zWP?PqtO01D;(CRy2Sc$vdb$`waC|3f?rMcZct`{5bU{v-!2U^VtALKDX8?y*Ui3+R z@E$Sf9wE zdwg*GVr5@K+y#PWF&(q~Vn|aBVX}LhC?kJ+`(A1$@~XtB(>sh1e$0o#?*YhM;NH*5`H_ zu)_bWsyZRoQQ9h>c;bnQiKj#X@P4WA?D-irvtN)dc9-^r$k#^1l#L!+q^;a`79G4L zWClWW$D9U6_BDW;;jPP=%|?+^YE)*U{6UHwA3dVXbt!V;;#qy(2kYq{U=_8fAiPx5 zwQbM|*8ID6Rl%<}d49E)GT-j3s&Vy9Qp0=e-=&8FT2|qCyN?8Q=eZG>An$+n#KlJ1XIXEW&z$3%7|6v1cj0!v? z(fj`dW{hAZh(g-eXl7`^GtbP7?$B;-Y;y*mM zLdDa6hJ?uKmy?E`2X$gt=*kC|L^hE?uYpQpEdt)ViEu+$!B+_08W zv}EYi;O{g1emp%j`GM#3GG~4*u4m@AF9Q7TQ?ZKkuQSZQlBA_mNTObnYB-n`lL407 z`*ZpkkX;uO+lJ@8I9bu;cFBXw^92xLpGU;w^DN5RCz){`;qzzSYI;P#G&$j}CW{%! z)|wojUT2eBbZe8bg$BkT9o~%&00ERuHccc0l9l=#$pj{d?la5hMFl(zQ)FS|TFlES zwV>|EjeP#h9e3X{d4l$aX=%YsLphmTY8n^NPkBiZl4otx0|Q?QGOSYcLP2J0v;+4A z)TYEy?aG>ji+WmRlg`Y;qGYpmHU>=9#DfP2hlW7)w+y@zTERIWrc+5r#weIH)wObyH&ZDsQ2cauOP%V4X!xLviRbdj})zrg_j* z16*vbn8e_~e~a0lc1c9*34~J^Dw)uf0Vfb_qA1^008u3#oA;)MxH?y-NhRcHa9yqDpkl;SY$w~FZ zbA{G%)6NOnIC0Adfl>={UWJu2DA{p9>}$Afpm>>>b|s&-?U^?oI2Z;5<_Tv}6MSck5X$hpLBF>GcYD?38|RcjA5gEX#LUqNldq(!ufV zq}^#9AJN!LKEvIK*(8hvgs9c6Xl!k@T)j}Hb)kqiC}|z{S_jVtf5yXYT3zrCh0y^< zpk=qpFttaedk;@b<{gsMey{}KNqCLDtj_UR;H#3b#-PUbHM??<6MHp=0q~>I6%LE! zqC;Ld=*7Q#dwB5Tr8|DsF-2bC3gq{m0)QGN+FtwcAQRnVQSd?%zo6$f3R4@37{DAo zVmIe#qZd;3q*MXbXp3v4?u6p5>C#-#*!7 zaednISJ=u4&PVd*YG2&n9~puC$M=RtP&5QA!rgwbX-+9hSg;VjAjy;#%ISom2i|}$ zU3kl66$Rz@;T(nw++>h2=`|aw4!n$m<|c?Qz`k_zyQ;~R1{dsca-cRe{sWM zQMxhCNK(df{e$Gja`VU!2PhFIP7{RV2Vo+xdBZel9|FW8$iGLDxCVae3pOS(|5Om1 z4)0fdAt*?=X}WI>8LS|%09GuG*oJ1S_-Q2*2Z%EbkS;YWa&Ybuf^$)$L5@bPBxR^_ zUe9p3f|Tbb4+PRBu#n*m&YT2+(s$pLCaa7s4eoth#qmz}&+DqPh$8-NSy9VXL0M># zWYI^&uRI`MKYA_)97%zwVX);`ifdtnm|A4F3eutI4me3;5P47*M)3utM|XxmB!#-2 z-$SXBv(s!Y-rncDbOtO$j#Kv=x?Af2%T%5db2YyF?~^l5=Kbxc%g0JFMM@LlOLjK| zfZg%^AaXMdH%&9@FLb*3CH85M!=@-Hyv|w?KCFy|Q^{z&Bmp3}G^hdYwUpd(LDLQ%?KuI83dy_O8fch3^-G?eb%xUHYoReE@m+fd3NNe<}Xz z{s!PX?7v&P+b#R=?)C@!@6Tud)$m0y0Mm!$v(+YGdWvnp!Ikt~w^{gFtgB_^PP{Am zgwl?aE%Y-OZrOl4U_LQx*9~pAu@%@|t^CW^_zNnz=G!att+x=PR1ISJ-PT?Si-bkP zw#;R?o@(orcbeN7sql$44==%>6PP(vBI=giZN^=yvKC{G#0k<H7^6>0h=NllSP+1C}vt#;=3pt)K1xD#T6YEbi!^2TR@f3VM2WK_UPro z+duv}wjJ{KVlgx(+(*EqUREXC5u~cX@}+%;g?I~F0>5lv>#QODF^A&Eg9z4T+Agzz8A|4zHq(5Nsp>8DWwh z0U41uq}cB*<`FSdi}jQ*XQ#3k`5e>F$5EM$YyPylxMkaHX3rq8L;{IZrASwv&lQFu(1xECU7OOsR_&Z`uXSN zSA}gtfW+)=sc*}%7mx#wOX@u?9cs&6?ZZN%w&DJ9AF*z{Hf3AMBEL^74dj+ln3ipV zvs<%Zs8zB~h-L(U5VIRv&sHk*$cNk|*~et^>#Kl{zXLAxxdEN<_}Xkq&tzabx@24^ zUfEl=17wtCv4Wgr<~yEi8R3V{ciWij+cNn_nRS1$G!(%%fmPFn1z9B9pa4}%J}_DQ z==e`}_ukt8cnAN(-q!Bp*#7tA1OLO%9REo{0}=u1J|&-hc6Su0dyWw!E`dJzPeRh? zWG47Hc=uiO6Pu|68ZI1EUD0qX-zD%eiUi=yn@^akm%=V13FIoz zXK=5KuPAQKYkNjk40XH^Ls9}#H2B5BIwj^u5X})YVG>1ln&ff0Geg^8V(fEbvTLy$ zM6X(L*qfFxj8i&RjmL{QYF@XP2;mxeA?gClYs2JtaaO}URyI?lqQ>!-!dKW4q!LVD zm)KD2n1@kJyP{38i#%?`WeAJ0Gp@)rq;b1ZDa%?bN40bWfn>`QPiQo6xH=Nb9bw)v z6KYiC>;f0$B4}vQNT4s#%$1cTO|#mqHcXeYjcYQ^fu$?qOQcwaOTiR{c0FI-bSjuv zVY6GMWgX_4jusM$*pg<}%7Rjkr;CZ#91Fk^wV0;K)T!pF#y6uuXrimwYN^FF;!!$* zj;k_nE;C2GW%c!K4jN-PtEzWU3YL+~E}b}1{HKIO9-S-wTsS-p#XM(?enX)cyqGgv zq@qMfF?La7L75M`s>6cNyhR9cP!vnvmk|lxl9{kQ4K3v~F&;No&d3mYwhv?8Sw!zFO@L0cLfmE1+~n>FW89>+yo+WC;+ftRlLgp0eLCqZm%vO&kB1yW%*3() zb#y(Y7kSAT{pXC6haH#5W~5rAo*`YK=N#1Uc>{iw?x(vQKYIlJ{q$fm>3G6la{EZ~ z{JXF0@I=ht-M`M>Px4uFxu0(1RYe-jDTda;I`Q94^rKjBf-eG6Dg2hA z)byh;PwIzB@QIBQ__+zn*{kR8>=!jhXTZk~`~QLVA3K=$IRoz4|GQi5_^+pXAL74$ zKKqYM==wGqfaGKH*puGX&cOJRmiY}mNkWttcS0!EW4t8yUr3o0a_tan4=2SM|9 zK#&*prh+~=(Gh_{7;h6~K@Yi!#o88tpABA#H6{$D2n0|VU(`%UbnPiSJD04?*6#GK zrsyqFD~r}^V~NPc;xkrp@aC@K>Uw%R@ahV@+c##LpeL$;`e=8gpC`KncJomkcMg*B z%14b7)sy%fJw*96aidvBdsK(Itk34~S`cdC=b1am6#bAEF2dL-Axz(2A0Ca7A#Im| zu;3KHtmP1@?)n&1As&98vB(u6D&>^yBf3%r`GqYr0!jILJ}F8k-%r6PWS{dBqd^Jc zUe3$${C1|0jDU4Qlw-g`fSXZNWHyslZYbx)WRizz9(m9K0Kl2jGC;%EJZC#6PYut! z;ExK5PJn6$R@0(f)CDFu!er5)qhb6+r%f z@pX00$}hRgGuAf!8{T7k?WRE6+vgV|AR@46)CR^=(tfHu-f4Z zT;X~W$%y7k;Cq)Nw+TY0$Oi?k zFaM1@^UpKLO7~fLnG@Ut0Utz>Ip*hLGG-s(sqy4B27Z;n({x?M*Wd4^?l_km`I>L? zbXvKq)&#!{H@X>24RpQ*$VVr4Bi`;S=#q5^O3L{rg?!+HX_3|Y&;gh;7)m$go*aTY$6s4o z`{ZrTpgMXF{eI6<+3TY|fH>~6seOKh^a41ErUBXl`5|b+x0-(&mF%m$t8umsH`Ipl zG|%RzI>ELbgo~}e!_&{;(_Ov8SKw(9eooPMlY~%}0z>H^Kq{tb)gaKMA{KILtCJhu zPonP7bL|ZGjkhdw)wMa?;~6a{(M2_^zya zKJbGVA#aLvEs>bDoQ46rtctp0}rUE zLvipoIPyM~bed$0s;z1@BoH&$OGW-G++0N?-@>^uEi9x)mKfQV2cWab9a!5&p`xnU zYG4lmcA1Khi#?Uz896suqO8?c!qqjB!E?Aq5JORd6=OJOgEA?P1e`$`8ed?}AjSHf zQ>HNjS%d|tF{krqPAA`gKoNgk6yfm-U%(IlX91ZkEM)}mJGF<;&cEXA!`?|B5|Ank z6u!Nmrn<^gUDWO`cd$D3=y#vLI6QmOF$mBr-;R&?)UAO!~y^fad+%peb{qIlKo40WdDqN*kslfxuV^3J6z?F{0RJYpp0 zQD)PrgtSTWHtA);x8wnt&TdmX=+X_4urON5HRUVd+U)DxXarj^&y`Qw{dtyqU>mym zVw>b>L}hLYeA;kQL2T^ML#+*89lSgoDgLIn>ZxfvAvtlCfsVs-tww-$!3Cz^`vJ-z zX%`>*p2sIdB4oc4Uwp+m(vGUB5p()NRIS>hjg=scPCY(m8sTI1S>9#j%c4xWP%m+K zm*8E}SPI@Hz+E!hC4ybXSeMc?+2qNwTbcm1NyQL_mNpv60L zQf|4GW?0d}7@ftER|+mya!Z*PfFdh{>|MgdB|qJyV6qFOW$G(Sthn!HG1ZF(apt@PuyXP#(Ni@&@f(R;odL%lI z_}|*Aiu}=(-aq$jb!$u4oSf!k7%Esu=LH*lEWj(uf^PT|^2SmDuq3=7Q%KeUc##cH z-Y-DQH}ZRzM&FlttJn87K0wd?(*1uncJs%_|2^K@dD4pieY&;tLI3~R{C~#c1};GP zct`wS@ak!OTUN8WAPy}3dKpQ`g!0}^NFX{BuHnc-_W^zPPQLv8tJnP9OZm#YtJrci z1{)$-Y7}uuxEJEq_^u1KuE#4JyczuGDd+Qn)1te(%sR9@eo+x5R>Us~pcSTwx>lEC zhMS!%=9qYxwD8|N>Z`_T@fF(_7A^4|FyM4kK`@AD#?PcRC|HAoOfoa_cyr*BDMJAq2-C>!o9 zM}(Z<+XNg!P!2|8rMG#LivHxshn+?sI4))&cf6_^*2^#oEJ$A_#J)O}g4sol(N2C> z8sCbztp_iTULB?}V0);@gzLAmjCHF~okC#x76g|-V(WhHD1t0a$R6)uLOMXy5%L95 z)3J~kIo&))HW9$pnJi^mIN^v-b-gh3SU@>5t(@xO;{(X!p3gB&m0gC6PW&#LE^-5l zqK8#Shhf1YlU!>XDF1DcMIOLf7cF9JdL5XlPqD_H#rnZ_m*M?{M`#DgeRm?}^7ek} zGfI7Pw_Pv%!rl@;Cu8-MW+R!VDl*e=kn-0By|9 zFKbOpQOCU6gL&t$jBFS*!Hxx>VAe;i;9v$A%v@|saclgkV`(LpHPUB3cX*_=kX2Ar zZY)iMdJlk~l54o56Dykg4V!#Da+o_ODK_-|tm4DjBEJ#D7nng57J;NVgzh$&?gXY; z2t?4sKzaBi4Ip_!oE;8R7OWk4Vabs!Jcb<+NpvYEEs99P)ErT}bGTBC!AYK39b(JF zJ=Ka8NW<_7U0{h=(($BZnM0$-Ij{?Y>T9rd2FG?bh3#;g;C)&9dNmxZHWzWfb>zdn z?1t|z5Fz0dVL}tU1Y8Fym+oN*dl#}Yv8ICAf~>+$-WYZdTu3&X{CD>t^UpD*ED!TJ z#efN8Y$!rd13)$czr4~uxGnCqU(nQRH8dxSa$1yE@(kWi68h~Uqm@A+4$B5_SJ7PB z2xq}}>MP%o#B@t3!zEqiaiO{I925LWM+86l@jxe_z$zbmFk{~5dILPFP3nt3$=HcQ zWhK&!7{rAGUpSCQDm3t}?vm_0kvcje>%a-kN#_c1Kltf)AGoh)Pc_zQzWvzz{c+Eb zmb-?YxuZ&g2H`q%igoF})`&v4H&5|9`3mRN1{2b zr3bZkd-(YNP2KzPP5oFJ`tgGs`tki6`sBwqbbFg|J7f>Wtrf8;%xJNo#ncs~^&!u3 z(Fj2fEqs<4gKcdxXvB>S_pi~6xntqCVTd0ie$Vp(=Wv+@UNNMFO3O^7DoEJ&K?Q`l zuJh?T257>qc9sj~1!K{M=a4;vRG78GX2-D|3-YMm$upj8#hm1(f1*aM=$ZRja};A$ zVR^^!>{R$j2E&APmJ`yXOb2M;?r=qGh5;l;@qbdO7J|!AeCCK(iHS)JOsmad3jnNT z2-!gJt+{U!pW(|k&`mbI3cE+IP`1?i8D!%lK-GrHKfAjF%Nj4ZIQQuQqEJ(p-6{a@ z2V>mIc#ik?VXN<{SLUt9 z$KFF99VU(9;$4*J70eJhygK()*~u_zj;m_)6`n+;D9kZ5V}i+zAiXV0FgzLb?!CSi zF{vmhgeHdXH;;^-`N;?9I%o|h-n9i4A(?l_X{Rs)KX@v6_u)Rm48i@Ol($r{p+sQ# zWJHqWg{uM74_#AqgiByHJT>7+9SQEI?*d&VQJghzDZw0V)>8!;8}0=$RtZil3JeMV z$jUA9B7`vMaOAtmop5|mHUp>HydV&#Zz$TDSBvztoy@BvI_}iF5<^ynSZlJq?P14_ zj`qWS}X5KV&;{#`uC&Ur~2c#jkcM`rXq^xeabqiGiFuqM5 zzgx5-K07Z8JXo}nn^r`D`-)a~wE34LTs@?z{}}O#P6o1hczw@k6mWf9s#;K-oAvno z^BuoGBtu;c1rfz>%V-te{ESQPK?3NGq-rAsdM*#{%4?@zVz^Nj!XMP8B-4Jh8B<`4 z8w9@dXcv=lnfu{ywx3G|m7UA;<(f9B{ZZ?Iv(e~1nXn=)Saljr5G3oHBjq*N)@};q znF)?HBw6KPkLZMBse(@4_>j{y7sz!-j&1Q`xh7RMyp_cZh*#ljxqYee#h1;m5}Wdb ztPD0+skcu_Nqx|cgB&MFQmPH&1tS7fLE;h{g3J7UV**V;YUPcUkXe0*xN{oUq`L8C zadDXwc1diAmqm>9zw>u&W79k(Ub&(16f>w`@hHp#5`AF85Mez;i00Jz8^J<=bQO^D zldfE`YfKO`qi6EG$i9dp7ArRbw`#u80qh41-0l%KUEmC?Qvw12szIhFV$ z98vbv!`c~@3_$y22e5xpVM zU4^m-w5$(lHU(t0@*&RU`AzTrT)m!~DXhQOgJ}0;H0q5;9`XvT$k%Ak$=z9>2PSCH zxM*nv!#7*ZFY?y-=>VFajsJyg=<>%q_Q+srwY@@A66(5_Lf{{g3RFgdr2ApQxzxVp^T0{ApvA4O5RxIS0Mc zt>fQkrzs)w`x8degft~2;nS7&FN`(fYAg`&ip8FZiaHwGVJvKX+qM$bL!F4Pfvmo2 zt*?Z!&M@qqGEXoto2{)z0y3sMR(0TrF{di~;d3EuqrjfN0RAJiHVYhCP3%+@$>nsP z67xgov_?$>L*;$trLVke51?Wq8$s@AfbeJO3wHvhD`1vg<2ndC%gvm+2+a!RuX#m& zB@1zEQ9{BsS|N7gqG2B?76V04WD&aSoTxOVQ^8%a(@Bd3k({RPZv-IVyR=>ujfA}? zPUfm;j@I+x#Zc1Dnt28Z3Sa_FzbT9NX#U@?_+TJ=l4mZ%BN7F*Ygm8TN2h;Uu$G_i@1>pMq9%yM5j(%KC7uQOj z#yi*d@u;jm_v_g*)z_8?mFHZUs)IhTw6L#fNkbV zggx95_XZZ*QW{BfvJT3|S?+Gejo6U(mDo{hm`aZ z8d){J;AlZODj1sox~QP4KC}6$!P!Q81@oD%FG_d`_UfX{>v1;ACsMco_A5V}JCk6* zT%+H+R*$htlImn(yUk6H@Mqr!CN)gg2HR`V#YVO%SRGD38OuP!X~m`Bm8MyZxR>kO z>oYK?82tUdQWdjkL=JH@eBy|64xi`sQfY{h3rCT zBkT4FWozjf8OZ(Yc#pT~4j&!Z5sJyqZ((cp;?O&z9+Mub5Gs9Uk-)15FMYkt$W+T5 zAi~qv5{Ui1wjl?kiN0$`0Q$%>#27cv;b&Tklo0H*U4j4-yg8&8K&J6Uv~4W>oIuw2 zMsANC|~HVAxkCn#q@+^Nt^@?6AQ2EF!~Hr!yvU6 zik($;;fe0Dxi^L`i}n`$PLitX+(U86A=0)ebF(4x8qK@@9Oyv3q#*=j7D|ouuAMpa zc5&`0Dv?hW&p&dn2&MM$A=?GsHP2{O{4<_8=69Jd{61aZBDoIGtME?VraZa4+3*t& zG1Bf-QL8=(&UR^edm<2N5!LIA4Gs!dlND3QW_U=?fQaLi4Zr5ukZ{JT$KFUBVJX-G zp(Xj`UggoF-DSaVrzmloqDTUFrO2C{*Wky}i3#m97`~*vcK^Y-t|n*pKoVI4*-MNn zTY*onIKPd!p?xW6a0y342LlVcHe@DdAZIs|m9Od4lRh9?J9;r}=g6&5ok4zO(7`(o z@D3XqAq>+gSo_%hU=;bP(0i=cy98Uzy{m(#tNCqbeLg4!v3L1Nk%{9u&{aVvI~<|4 z?lK}Y^^7;`uH;SHwX>|4*AKl@%_Cass)NEmgunR4HdjqBi%zW?m<5Me2sYQk$`RMu z`{H_W%};UQ^?8n~=OO(;Kx0B$?|RbzjFjfG_HItQ-;(|@A?m#4a{PFH!`;(ntlVJVp!8X2pUR7N$cY&!zZ=PlI zANb~P()zDcCptf-je~#xHXXWSD~BPg!>>t`T{?jB9O>LC11|Ct923Q3N4OP_cx?XV z(WjlmxBZae(^eun9(69exk?9LJo zH4-cjHWx<@bvL#eOtGO3Y>sx(k+3VNdnmfHi<6G*Vs_0Th)y&b>PrLAK#5sNFg(&E zI-e+gi(kpzOkHM`AcT{)V zy0dPR}f^VL`!P-uqy+P=%L=1lZz(P)4I<3&< zSEfuV(>`d0L>v+!l|#UIA{b#G2Zxko$qM9EZ(9(YMg~N3GUmqDBTUL9S+*m0kRsOv zC*1PN(01_Y!D8~KLz7yjVe7Pp%iEL$u8_&gw{Rq&)tB?STU zXbXbAdk1Q(nN^IKe6_`63C8>Az3TIBop5HcBx}KliEUrch}Z%0ny)wcC|RtQ!1|5l3!YR89-v z=tMnda4v|xitl2AEW=3O24kwpHjdX#PBERc#T*j%p*1Zi_Y*D{_L!i$>57CxBDo}8 z7vsv~9sX*ARxAGwrhf(u;YdUY*#YmVYweqSK46Fw9$maL+)0}Rf>OuZU;;yWL3IsK zL0ABVK-C!83YW^97jcbo3jn>lIIE#&CF87;cSA%6gxgfd^A}J7nTQnYo@La*4EVCQ z)4@DN+`eu8W=FsAe?3l;B{!o#hw=Qu5}{XIB%<*6-*yuHZ3lm&(!o_akt+lvonyKJ5?MAYmkQ%VboVo{Milg5FXni-On_1klL!9s)|pOx z{@`xxknj8UZRPp>0P+9NVE=hA;rGMrKigZ6WBk9z+q)m||9+N#aGwNtbY0Bf_u%|y z7*gTahHZ~JjG>E9FcHa}ucsJAs8rpmV9Vz-3|f(o?0gPNh66;t0FC{WlL_QIfU%8g z0kv*1JB455s~N&J%crW*BI}tu-nBUeWeLx3^*!{0O-ij!0*18urkUvna2}s>0Aodr z<982dWO5D0a5&t&E}F0RL{;&vcz5cLaQ?D!nk;<2tSaqkHhBjSgOjjWc(qyp{Ls7l z126iA^WWJ2qaF6pYhd;Hzx`xqE9QUP-P`@Z|MIi^JMbhal9APM0k|9Bh=>ay+8PZ` zbl$fJ_!x2vv%MfF%om>s&&rG-51i1KYhsBl;)sf-HhsA$Cb=YgxdtQ{zUe`)QA4WE zo0|-1pKS|)djd5ZB2NhG@d@t`ipvrxW;s@q(@8$19D{na!SVGBK5p>IE3mO~>3!A| zDa@GcFz`JEnhcqd0PGvmIE<4AiiX5IJ4P(ZfcU+CIC_xq1}y3ZfbSrfPhKt@T`NfK zCR8d<#AxEJOqUeCPw@YSL&Xf9G|)%MFhRL%!T%=gH?hf}CqE;MDaQFj;%~~+adj5+ zMA~2X`7Nhu6D3RVHt}P`Z*vRXF#pkWS7g&0V7|kAaEsB7YaYo~5Y>%V4o)<{?I74%Jrp&ZJAK&HS8ObiLRP`Oan&ajzOHMWFVJi_;3=% zN!8wJ7?r48GC^P)5J*UVusrOR0oxa^8uyAx@1sBt90tl6r>G<+g2mz%J#>n5DdN#S zn&1a$k>5{&G}o0*!ke3{0p-H%^Y?<`D8W3*NBl2IzJdS}+?Yb$LzxGXlR;AJf}@aV zU2%|^uAb!J@Ysa*`&! znk69U&h@Nonv($S>SfD+=lZ4nhHXH$WqLixM*i`umkRA%!1R->;cqzgOb%-g&@E(Y zhO6ekAMg+Gz>BGzEM%Z{2X*08tzvqsuB~i5cAAl`g$9pmuQAX37X4v(!y2cUw6lX$ zr%w(rLZ-+QF)&9L7@aX_-XG#bs<*Z}Lvycf)FK!sKamj=l)y(loaRoI7)dQb_H(!ghV@6nFcE*9SU`f%KguCM-glFBT=Y z9~#LvRoG|{d0pWz4`051`$sH(e3{3U2u+o^s1_xAE}_Q36mjImi*6yJ$5`5_cleAF z44?J3{tcQdB$YCgAY7K^kMdU_6*Hq#8xVXQ;s(I}IkWZi@p0K-<MQVNxYmCQB!l>N#$i@X?1)>61;PGUm zCD2#;X`;HFC>$ubX~YqHgQFQ~A+D9~K!Mb&gy}lb$(rLu>w4_kl#|dtnHT2`W!BHL zSuw#pb+;-RE|A|&=q>j2%E5rw9#M3Ag%aTl+|gR0O0AwVD!@I^>m{qtAei1SiO?>6 z{^~eL4w6uk!RmkDzj6}}SXVGQh;3)7Ct&546tNU-1X6JsH8_#WA3taQVrrmKz$J`0 z0#OW><)t)60}vsAuO(W?L~!Yj2dK8fm;*kx-1j1nMRg~^)$0}&I;h1gAP-Z&gnpjz zG2H?kfVPYqKf$etPp$iW4!m@bzm-iTw(z4jAar9EGZdWg5Dswkh(?o+WZMR}mYxN& zf*VtrpBnE%_n)&{zh@cLAB{u=uh2e5$P&?SjSUT`-|T#k3Joh-1xDn44ua1RtnSq@ z092KpX_GLxN*_~4wY!lpD^%v%Bcs4x5gpD98D;Z@li&-IB%Nu2fURx4vZD)9$wzeA z77|Cr(o?#<^K`i7{@*s0jT!{by8a~^7(Kp)Pd^dV(pXEAFVe;d^wVMiK>Sy3_Ny}| z03;^?p3G=;g+N+^tI^13N^ztE-2xIQR#jJ+c_F=dS5(vNqg39f><7BRV5IibP95*- z-@kgDz6rA7;225=KjNR{`Rv?J`4*e%4NM&}QD4%QC}_bb`T^do_QEDfWSx_!U}`rE zO)YC2FdmddVW4|Vw4Fa4O|UFZ#eG^o8j1ObeSP!%#%-Z}zk6Y6qX|=f!+1wMv5d(# z`2j;67^JK7^Fa-PlxhS79%>fIoqmE-*ovtM!hSoVS1?Lv!%4Y>8a2IDzT>-R ziIYUh?5ajvnWyxg^W-U+(Fh{PKU+1gu-pla3!@i^34%K=3tf2YA`GwgI$yJ85O}X!Y~n7 z^#~)fPT>bb=_|o}Pxp4+g)*K=ApaR$v%PO#9sMCaCeoy103CPgPY-F%pJz@hN}ny} zbJ*n|NnBLbM8TkvSyixW1zZ#*<3stSBRzKt$_Fp}FFpT{<3)a89hl^|x3?_*3;wD9 ze{XB|S6e$fkP?{geenPPvgZE>1_Is@|F^Zh(~AFiy7lx!{KwA{|G{$$IUU8g75kCg zBUWvmHw6g$gGv4&aO{8d{*Pz+p2xuI{qIivy%zuX&en(cub(ad+fM5~_`K<3`uy;? zD;A8-h2Luiw1gvxd<_va)wr4>lSDNyE{al2-P0UwO@ge5QYoY~r5vkXnt z2S{ppDbYuz(;`eGo%X`bER{BvylP~~Uf-XekM~DUp6q@y0?GU<0u=JGUeG$|IJu)p z&6P3tQ=&u9xPF)eM?4=1h9lu{R?Lp-ih*Mx-5zd1S`-NM06xcL)P(Z|nO6g-eEl)b zlPfKu01NlFByDaFw;5p)%$TMGv3v&4?ohgx-bkH`;=olVF>9JdRl_9p(~AsPYMtsB zHaMu{@o)&7jbCZd#wj60{@mK+oC^5}%>Jj*XK zLb5~LX4j{AKE{?tF*J26df;h4AvYg{hR~*1C#U=X=idyWdFx}^02vs$D8&u^>-vbL zkNMcr3!yH}yz*|50@-?T!43>iP_d0Llz>OTPQe$PZ(V-m_U-Uc|S8Kbiu|amluKRD(Edh@d4&nH&Vq1_5us zqr*|l*cqogSi7!$sslP0w*qA_BnQNmf{O(c_sfU_*tZSYA#Z7AA?kFizpfy>6m)G# zWDE?}F~b$}Xq~_oq0G`tw+jc5rc5oAcB@+#lXWjCvcw=gv+vL+*$ecxU|lH&wJ(R$ zQ8`{gjI8m15Sg00_WT#~&f*dRp7b5VH>qKpyaq6+LVMRweekxFJ_3m#AUSL0MC0*z zo{jThvBJuaikC$7+%PD|$O|k6qcIw}cG`;Spj|#3l&{b}b0iW&_N_$PnE#;uW>#t3O;I-k;5JR` zaSm~*m4xIVFtEAau<8Ux%=J`bLZCS}h`WrTlPG8#(J+I7yG3%4Xaq^x>h%=5;Z#l& z00in}qk?*Ba&=^k*lBnx2~kKdfUNd8G=ybxlaWLuButsYi6p3B@U*+*Nsg#Lk;mja zMYn{1c2v{P(*Fv6lz)E$wzbY*NHBs>NTl9!B{=DRFg_a(#`AIK8|@JaU)mQERj1pU zKi}=jH#kY~H!Mc~DLbzp2NnK}cMe7RSaFYu-2y6+aACNu!+{=S+Bt5K44^)M%_j~5 z#{IxW5;G9QHyFnGM%){hxy%v9Hj}>zBMSuihjqH`ZCYHxi4B5J!O+%qb)BbcKutHm zWwd5{1tkV+psJeRxgAnefo;IW@V0>E}ZnC*AF(d$3Dg$4uhp-tQCx0dfu-Z1iy&Tbysw%uiI!;=(!g)lRS z=P??gs^X55Je&IjF3MHHTY;&NAx?YDw-`j8t%FSj^EBMX+1~I#?#(5TakiEp7K@ic zW?RSHM@adN&7$T2#GX6MVt%N0p23@ZewoeaKszfgE`V~8l~-Vn1M|q-$!J7xsKSJK&&G=<4B^blQt-|VjY6u$zgLG$ePs{ z`+Bj+pkFyhy%kNO9EDawQt1fX;B5l~N}NuXyF_c3=mV}3YICsx?a-RD+^vrS5fAf{ z7nvJdA+XfkG)%S;Dp3+TESXPHx?``UALWN5s=1EU8zVs$%#YHSdF43;q;bWGX5pttJwo8{)c&=FNoS6hBi# zdlnGPi{aO|iOF)st?CLprR4{AEt(crAL(+rezqjdi|^L{pRtVJE=$6a$K2+A?0+!d zM%VU_I4Rf0vzv5~r@#3xY5U*YV{R9~7)vt;5LJ!?-@b^}@EMEm2`Y!(DbOyu8GaYk zj#H|p203`~a$W1FD0q2|4Ga+1-c}1wm}XE8kKftz`3_!B6bXp!!V@s6IF1XMmcHoZ zuA|prZiKxTYQ4;v;U10;6k^@>^|}50)_fEd^L)X?$Qs$=^>yfywx%XV%flkL>+ zElzBj=STw(>{3G_KLYva5EW= zN$w}qIQ1vdS>)HDF<^HuXf^62BEFEn#s>;R1{gF*CDyKVKUWX^#suPEDRw&Gs0cyu? zU@a#|lDy7sJ8{u;3{~6O9k?aXWNq2gbBe?*0Rr|HAS(X7FmK=OUVNlYqCgd?IqueA6JJUY%CO(*cO<9r~_Fk=hNzj z3>5xYP1tS7-ZADdgC;@((o{L+N$>&QJHqRP+)T`U$hl-v#bF;= za`M}?A_Powrltl0^4ml*w(BN?tNx-um<&uxMaW=c3&zw>BqttoFao2)7;y+K)*UcZ z4*-%7Yp7d=O4O{TgFv?T^71=!KygF7v#wBFZ^0J;AqY%H3l)MhG^YT~oLfnHYltR~ zl4*!{z@DJ3@B&4A(jC`ut=*mg-a3b<$khh!J*Gv^7w+zMfU^l<+laej*| z^dmI=_8B)z|1+Om-p)7aKjDEixJn0&o^zN2$WNP0z!VQk!pn({N^c=p`ttJH?>FRsKeR3G@FcW? zMuCc~?bL%qw1sL?t@^`8#B@8=NoQS(AL~>i=bLqQ@ExX8@t@ z9_^0%&qsKzzVp0Qf^;viuu#ORUO}Fyo^N=u-NS93ox!~wYIP(Yb@`K9fm~{+cGp|d zj&<;1Y8+-qxEHm!B0`j5TYPBAF*r!nICt08i!(uSa~Cc*Ru&TGI45Mk!uYg6hDt;L zWC*#g@C&(vi@A8BNDo7KN=NQ24~0?HUt=QqfKioQ?kM5T z^Q^82>W$QKbSYus@${Q3o+A4fz4` z^K&Qt!k%YY8FM1ZJufp6?FtxdANo?vjY)!B_KD=Jp5;!^oeQsSbGNPW*hR~pYHGeL|aq2V-H zANd1E4$Xi4S96=ul{E@nX?Oun<^woKZukG&UVerXdDRU^NDN%U@cp}MMPpcf+uiG$ zdr;wc<+UY`gTv#2+py`glVc19qo+T?G>G*0tAoLI`qj&WXDg+WpS7{>`1t2&>MMp#LYX!&Y!KF?FK%3`)u%d=V7gDZxw=b$yt%>#&EGHFH4H|U@s@iP%i)O z1OJl#crcjltxfpuP+hzkUD0@40n< zvbyfE^L~=L?%p^*Nj0nIX2sEePvz#9b@cDtsqKVn4yThaZfDD(gCXsg*_?t6l*$X- z-FZ1N;2a46DQ1(wSvIAtFax`Zx((av0?Ay$U(!i+QzET8vYh;7L7rnLhs_o&b;DLQG*0@vVYzRYC)lo>Oj8*4$tPH@_ zV|FG28r8hPG6R!mRk)6<&XhyIC^|p2P6r5SGcjQpxR+^|fWShsI<*e!x*Mkf?4%7& zLbweWE4e}-qy;&bK?i{>(W$|hBXN3@XIH134fvUx%Y{>nISxl4CapgnMDC{XHsgO2 zOY-T=4Y@maoLUW;fSCAzA3@#-BHYo}eYbTX5!1Dgk@2u3v>%<)-Art`+l3EAvN3!;q_2 ze7hRcs7~G=65EIp0y%m^;J=?Ty3vOW3C#%yQca8V9Nmauq=LF6=nDE3h7_4AgGH3# zkB%;yE#?56sZfHnNn^<{DOyNjt4XsRiI)u#Xb-EXvqvy^@h`x*E9 z$~$8ldSL+F7iSTS3%hWyI(}}~aQ6o8XqDBoT9qtUw3e2%#G3LzKkVPPB@gku{vBI# zFJEg%{p2r;((vzu7E(8OUVkM5;p zl_ak+LNV{6&kY4o1X^{H5F`ana~1LxB4e0#X$`>gfI;RlZ!wM#aAnk-+-k#tTqS(F zn$UT#n*qav9QuU1={X_XOajS0ktE!ratX&AYVK&sUpby`{*Ddgj7U}z#k5j2KEf(7 z&Iy#__+^eHpO9LqN!(E&RI-kGCV&_LgiC56Tn@ef7@F=uMp2k5PC6B{XVDTtaT8jC zYm=g?NdJM5F97-+3p$Ig1>b zV1q-10tN!oC1`+fE-{~BN!Jniz^55s=b5mmJB2y1X{6Wz222()IffCSl}GjnisrBC zJYk0t*ciaHA`t%YfSVX7E6BVh)Ea;)8AGZX3=1d^N%xX4L#l{PVIU$gIRV){`eKcX z%cp#U&`NnA-iCo|iH0I{uqMKH!$I?9749h5O#zCBb+hM~GoK*rx2t6_Cif$CqZK6` z2zES?3^o$^A-jB#CX)Ifba+>bW)8Ujng?inj8GMG7*RYOX5mcT#FZj3!g^nvpS!aK z0c#TSTzVZdY8x^*TvmXA09|FRC$PxWiCJKpl_Noq6#R~9&Y)ueR)$2ri(eg%d>lH$ ztZg!41WYgU>CAQGii|+$JZF2sb6K@73ERhsNXb&{@(6-qQsrX8fL9UwM`GjqnpzqI z5xMUYg&XeqSEw(M9w0GWw>URHkYNz&2XyZsKU4E$osNA4Smd2C zx{PK7jbM8yMvUg12;`#>q(6xdJ9o{L*Vj9{xB`O^C;VXWO;GVe2r>z80bNZ4KJ~^9L08Qd{GTb=kr(#SerbUhO zF{d&J=y0bk;`VJUD?yS{83ZS16fJ~MTS#8x4h*nn)P(!ahDJ2H5O@fw;|frva2g?$ zQE{GdeC!a=rwmNN~bq(x#Prwhn()h&GoO%}X+G$0{53Q+DrWIks@X2&V8#QEUpQ7OCm)pPsJlR`mfkpOPMcO2Kp{X(T+2+{M8>cnm0g(7__YXayxpjdS940yUSED~82 z62KB;P(&62J-n;tkx4YxEsRHsth#^fB#Z#T6b8~)V9FMguRG|o3v|XMI%BvV`V6|F9U0O1;hCIymrt4_ubIMn17Twfsbc~^NFz6dENk}$E z?ONEk;nvsDbUF^04IwLuhjv0-d3M`%kpd_8;mA1zGA=1ZaDcRKo4cKLS{;zk1;Q6I zlG_&7s1@;x$Xy7pdMZoQe@GE*Xw;Jqwm6+TNy?(+7GRD$e*1espo8_5tZP*AsS<#V zHo%kp&D$e+Dm70{iW+ywE%3G%#2c94N@Oxo?ItDAx8~Usq=AB=P0fchhR*fXH&v;6yW$+ zAgM-TyrbvmR^x8Hq}rsVzk{$yTG~Q-7xCK(<%|=wYVHBjz0q?`l`P6OJ6SEHkjV2^ zr^qs@Gv;1)z1*NQc<>)c6NF+<7|?*~YcbQa(jX=Z(H`}@s1vZF5s^D0BqN&~g;JAC zT^VvxK;!`>QMapsN_FR$92S+Zs$g74vYrnwhQiTZ*OwdoCyyF2Dq4QwakNC7oNJz? zm4b~H01j#lvvb;F1qi_14_@_ut^Ra+FF20i^cm4*nhwrKk`9)1lxi0S)bq@TjEKLssL>~eUn zn`{YJm3x>CsEHixVBApw&A@rO$}on2ds{RCxmjW?pC9-ikl=4R$z~6yez}MKxBYl) zdoR-e9zT8Z_=EoUbMZgu{6^%Bq2BY_$t^FQAH2aJ&4D`)lLzU6iQB~KOVu@Ct6^zE z&?*_u6qFIt-l8XQeKdkL7WTmQu4@t`iUWvYU0LXF|6_Xihm*s%uMS?MgRfGVo=r^c zbQ0F(W>YO`g)8gvFnva5{O7Mc@RnCYoJ5ZVc1Fp^shi-pf)aocf>nA}l#^hr>386 zqbZ-!x>Z|iE2EI?ps9EyJ4~%Zj?n`b0x7mrmXFY3qQrZW(T3VIw}oZKSO@VXvxJe{Cxn{lkOdU|@Dk1u&RYa$DU=I;(=KGF==plU!t zy%_ze;Xtrq0FKi{jB;)K?5R9^3eWa>B)EZq48w;{Vq8Aj^6UA#+0AGq%Zlv#-sB-| zLAR6{Kv*t?WyWmGPv)tRN8 zVXZo!a|G@>D12nEp(9rJB|jjbBA{+;_}xig;)Y>_4KvGfzMN`pv{iLGF4>J(##{8) zhV3k@s>~pr3vlU_?(a)!3%&m);BkjHVY8ucf$4$6SH(lDHPT^j@IUZoLw?d(hSo=5 zUW1rE6y3*?fZ;L6C72A0gUNZ~CP#OBe9s;{dr^}Uk%Z>fTK4P{DXwZ%gfq&EyqOm~ zU4avhD068_IBw>2n$^vzJFVc<&~sCNtj1SPFh>v*U>bEpL&)W{?LaGLX*@nw2sLjU zoC`jKpwzVieRAuC@#Psph58Zr@4|lYE~1N&A7nS8waJ*R>`R-JLvW0Jwzg&ix!u9k z!+KY};db`1>lO+Pcf9?PTXEGpppOmv5v{6WXKilmU@?7`LXC%iIC%Ny#o_ST>z92x zTJ-Jq@e;Sn73LloH`sQ!s|I{nb-YQ7X4U&{***0A9vD&cm7`)Y>EO->E91(Yc-NR! zi_g$N@lQ88zCXPci;F_0^wzBv_*&0K#LV*{JiPnhjG#w}5kqK&&;H`JDFfq6D2_l~ zn>_K!hbmKhqSTS22r0U{q4xXBI z=2>te1YAK*qPCK8_l*=jf%0Vdm5P(W*PSv<>j@Bqlk{VE@cSE8$S@+$yviLYMFTFh z$%?@r>CR(|&&G1Og>UZxZxOc)mhKSu5S8)``+Rymea+nh6$LPGn2=dx8HWqueOgGO zl3tBmM06vXEuE%}43@vo#|trS@|B4qb+~|-0Y%EaCJHqO83LgW-y4nAm-ll6QaYfq z%vTHK9BlobzL+|M~mciK&vDFms=blKq2#wLZb)uOSkx%16wR6=$Q@J zCpkl-TX;**;;3fzX;tC^5M{%MywQF))LGQK`wDAJf8hf&L?CR$RKzr|0{$( z0e3P7L%GXV1;7dc% zvWeS^ctN6Q59anl6M6X#!uCrulH{Od&4T!LxY0b*wVybm;gUjn@dWiCc5Gfa^(9x9 z1*}QGmJ-;bnV|2_!!L#D$*k3oW!&#i^r#iJ_s{hquhsznxn@0+-`dSOfrw|$&Xets z*m=r$F#2vU&4B_VZ|*FY!zg$Z1t&-zjvLRuLVtx96H+y&3BT(0-atdII>s4?aYMtj z2zto(F>Zzyo{Og7+{7YIuxGX_)I0T;#u?+Wd}my zWI*8q3%djNG32mbHn@qa(i`*Uaf-`118t=Rvwx3%}d|MN4(|Iu-Av2f>g(&fE* z#@ULAk1ZMw-E}Yqfzqi6pg~+`?cN+*6W#G)$l8XGK=-rz1f=aAFg1AFDWs!2kaaLX(r3ntXgYb86qPo)sln zq$J{{cG~6j=HzOc&Asyi_Qh{Ur%=st<$ft@SC4g;1#;&x6Dvq{Afvh6RXf=%8#^%; zDi}{T54S(r*?TXH9|8F?IPTxNWT?G2mitu0e5{l1;{Cn4D@CfBq2-R0QK^avx zA>JZUlZ7JVr%)n9pZJh6iiv5adM}dDOZMjLqgU<}`1cu#OTQg~<%)iJeex##_o|r* zB+75uM^`(!nHr}Cq%l%urfb=kF4FU=6n2<2;1N|WE zxlER|kHh99Yofem_HOZ785-sw-Re_Lq$Irt#dlB}l(zVUJcmn%g%mHI0@n;T3hwv$EBY#Vvw}WtB2HauLrW87cV?&kf<;|0{Et=FMX;i==T^v_zse} z>_BlY6QX;9T7Ap0`ZBJf$tO|8wOR{_v~dP$&P-e`wmUUYkGrv_WHgrTQSRazolR@B zTzSbCp0n7FyhM`1=u4!u4S$%7Pc=kYP19nEjTdtI86S)85bl6STGA_7H&ClI{f^^9 z8t@zMD{S1GgcSo>Wpw1``LlcqG`B*x4_5J)2-?wKv{p7?R}6<73ET7uax{_l}rtCG7cT`IVE{lp99- za?cLTY4YzEb)C%$T$$i>f%D7>24KTVyh-i<27AbT1}|L<;X zKm8#8{~Z6`1O{9RjDG&=I9V#@d*2GjZNr|NRG7Cyt_sGz_c{a#sggP(RI45wj4I?z%FjTgpO@u;GQ zmvn?EJeHLMkkQ>40XV)X;rMcP7U6u<735bMvaW=-7x-~e&qsg-Oj8?;qC~asEg$<@ z?v;;uL^}eEk{H^}rVfrP>9-v?uEnbkgPI8t80bQ@_+HOl)~EIe)&xob{Bv4eIjI?c z!97g*d$*^U^+XS;W@}=ZgA`88I$BvzN-#zgCj&8k0^lKBH{$9uHXrs=)tZcG@(|B% z@qXdU0A4zJ^KLgGJ_`8ziR2BcBiHXv(zZq;C!NAW;KyIz7>$H$O;Aj6>H4f+^gT+x zBSO@?7yVXC#&~ik>Q3l%p#Y?I!Xt%B9h2g#*`kuh#L4MizB)9zmLMnKznTX@&$kB16(o&OuNXE^gd}bzO~%kgWdA$y@H;Lze=k#|o~E zAI2Jy!-CXQpBC(+Y4ioSa^eASd% zhfuH}ztnj)A73Us;SvMv#0|*UoiNOEP6UtuG)Dn2of{}o(@+#l!bn>=7=<_G^57@of{5FhYCDrv?c`l0&@Za6@&vm*GA{_?mvDy1 z6nqkoTYwOQkk?~`!a-T8gwb?8h8%=R)esJ=z|jKEJMB?eX4gfH*|SSUMt9%9Em?3P zb&ANMh+<4_#*BRlOhzKhqVZ=YRN-!8+)oAS=UTO*l=;RKj2I7<`Is#!T@DjHJ^U16 zNY7kOTHiziv7_H55EZW|4Tu@;&Kr09mxzdOrF`2qIX^LIp>cvgA6;n0(=&ms)1mGF z=aiTtWMBYo$QCbI%o3!7Fw`tdj7D%o3mTzYJZ+Q@nAg`HH_vJ%XE~s&xm9_mL~szB zH$1W#+SN7fT^FL2gbACYZNa5;8}%SEnPLM2gGrymj}S1sPC_Y3EAvYgV<~AX6H?g} zeLX-pl>{~#MjA{3E4{cVD=;ErKdQOzYKG2C5)J``Yd3Jh zO0=#$bR!lTg)hB}0;DGU;z zGw?VE2c=d{_GyZ-a<>p-r)`KcF^NBT(@fkzgHX3{h|~f9Z`M_+$FJvk70H- zENTp*sugk7eorA^DIpssaN&%pQE<>A)QhNhlsLnNBM=Fv&gM-$R z=m5hVS23yyZpKJWvte*@tm^?1911qXQ?sB1?7#-+X-nY1OMHmh((za}6ati=cx!~} zSfF}PXzVyRV1VSnt=g4G%P~On<*eSVgCd-CVWmp2#Arl@*JFgrJmBs2>@pu;xvf@K z7{l6*&1K}kbL7F9mjOyD0=7Hh$<>`sGItx6X|!4STg1Y+O}ckSe2hW;C3!^pscXa~ zQ%{I`pf-Pg->gQv$5{S@)!|NtOwoD32E1;Oe|Q^W0l3~|c6hykfL-fmlx(BKZ!SSD z07PO*qF%?WWt2DjY2J*78>^ak6374SKHmKh|Mzp_{{gmD(z5q|yTl4l zY_(1RnhAbHdg`gwgeH) zW#y5VAT=qHf&%iziAMzaHb2w9!4m?)4q`!N5lmEH3URtItO*FkP~b4&`0=P16mXDv zIPA-cbS=QWr&4f5A!Gu8R&i9$tZFDo!i{7HBDK0aIR#Y?sRT?_el*8Hy1&_u$^Dp0 zwJ=>=ywxDi)~PLL5fA`+v2U$C4$Tg+!w z?J@lX!W2@+ZanzE$?i3UpvW4Qi~M>Vx6QPcv>xrqbUyARA$?(B*M9hTM2MAA>0U<< zpB`TA4dXWk7Ir;&nnSKJyh{EJ=v(7IH}CincTN9#PhB(~vzskQ-odX)-liBm@W`e^ zD-g8r%4tFbIf}slN}{R7nL+@&1Q##vNuDo%KfIFY&4D2rlrB(m+$|Z-ufF_tB@EEX8Ph(~*#ZlSt$cOmOFj>EImh=M1 zCpu$386Pa%1W$xrg)Q}xp%W28H@m32wR04`0_aS>gE1EwJ>cNY#%3TGW9?4ZTCxc# zcOHond=1Gmq*%7%a4nLwsj0nU7&hp9bV0wLO*1UI!lSK)M8HE-cg{M;aMb=NlHOK` z#0>glulM!a&-YHBy?*t@(U*!wg5SA?c>3n;Yl!o6KbWPOcn>I~y;gk2`0d`ORaN?nJ zYriUKRa>CleuCgpFpV~PxefLkgsxgIvCQ)-z+Zs!b@OX*f30{GV*gqwuo&)F+bZ!P zn8@36&mr#-#R4FvW{=t(Hah|YM*9T>om?+U3YAvRX8@A}gdu+~@G$%9!*KZ`D@B}Amry%f`s0#4Xxt;=-9BmM$ST9+CR z$f^SW2FqDiwq-gtT%ZJo6*^VL7e;Wj?$$xm^-SCuLf~Z(yZXY{0sqBO8PsBEm9g!I zbVLxolGy9B&zC9U)J79$TdVWtzHQGNtYm7l8<~$k4!&>3v*5QMHi?WZf+xyn>C@d$ zf}gLm_XzO|k;gli>DG0+Rkt3P=Vg9F*iH24(@DD3{V)(_oL=R(rx@;I*=myqFx$4t zY=xB87V?pV1;jU|H{I8ZqG53)Zx*wD^nMqqS%f4*_t}2*q7lbW*&Vg{E~9hYP2FY) z;t;$CgM;E9g1N*mw#CJE3E6ns`7TWL-q8JOcN85Nv`YP=`6&HdsigXyn09zM1G0a$ zXl4sOv(5WXymP<0lTvsSB&@B@XjS*iU0PH8>@j+qs&=dEX^k(S(PL`Y? z(F?-odJ&(7on^b@6Q51MGy=fVj8w2h z5rP3E?zf8mOF(N*!M-jKN?X+XCYxWl3q+tmfwsn%vQ9FR`H^lNgj?94vl2j`dcnGd zfG}T%yD)>r>4U^%$ssXcg0QiK6Eryk*jNL;;+B!ruskGIi6TU|>p-*=jGhj=7Wy(e z0AIYZienH6EXN%rY_7qc`P{70vMFJCg}w1`kXQ?b(cb*tQFI@*kX+Bm)+I8&p)W$A z0U3^gPoY8j2Zp*Y?4%k%e_IcenyHx#O8}p91-c7*uI#i*G%VqnXWn*nR#nK*+cEf9 z&GJsnY)%PYu$`vVqBiVvaq=N3l<7rPdA8n!BC9mLYo1@{Kxj+mNF0W;!Y6VdSwJGM z1=)fQ>FR|GKRL@L2DB6HNB9?EmQyp%t3^2>EB2&7*^Bw=ZgJgJWdhJP)eOzEOMTjN-w;DSZUpp}*$&jKZ>- z8$f+a&^_qGj9BNZNz(A$Br3I;dv{JECa|p`BK;8k^dg&7=Rx)m+Nw3+7iXgYSEw5m zVx`m~6H_FZ+t%E1S=`pUU+?{|wZ7uKbJC#%G5~IXJ7VEk2=b$wn2bfRa(r(7|5|fL z*b%s7ee~iqZyJg*!uWcGq;3V&B%>r!}S^B&~pq_%kpn zFF1cRb1E?JE_ZJYH%Q#{*FV@5OFMX%M2*A8Pu6|-B!(HTeSCEU#&jKg!&Ns_d=aG` z7m=K47z6MxsaB%cZSz=o6ri>viV-aS6Pl?Vd$hTz;U0AdOt-M}2q%Cp!AD`ykLW-$ zXCOBG5pW$wPbP9HN`xLALmfPH!nXJ(AXO*3b8!sG10HN&3a>w_hHf(Dn$q z*oo%b-e0D*`)T^`pQR@t({`MKf+jo2SCs+F#>oUulQyLZt@zN)6f;C(_j#($0WOQg zD7U%42UVh&e~;%5uU>C3QIkv334OcaRz(jJMA}Q2Eoq~XPU(nww#-+<>S{ECBJ9;0 zA$tWS1_cgLO4S0Ey$7y@WiJomM=il##&YnOAD>9-Ssw)$=Rs~dmD+gMFOys!uAmur6UCb z8g%gN1=*DEWA%TPzi-HJg2XX$pq1$XIU%00R{a9N3fEoH8_aYGK%g`N{?_+FByhjL z(Vf+eb)`iOMv5ILRntnxawS)qvl!Z#?><^c6n?yPY(4}8n!YRY8*C&(JGvj=xzYi2 z^cw8P8j%0`KGU+z1Hea_5&*E$uY7ByzzSq|LYnLf&~4mt+$?H2Za-8| zm|A)HDnd1Zjx8TuiE1B^{Gh=Z`C+5e(Hg$>Ttz=6Cup^3G5TFsm0wDuk#XBmmL$WV z#uAvBBKpC8vk%S1Qmq^CcU_j;SCypUd+1bHT5HQ+T>F$TV{2Fy(6=={iPo(66XZ%O?usz0fETY0pILx?@Yxn&zD$&sj#UDHN%|lK{ z4D@Ge1N0>I)fs{av|fV`Du-IuTYM-4_1Kb{mbH^S8SYf6E2JgO;}uCIw-@Pz=_A>W zW#f0x;UJSR4tAq}`g$=3oqCx`<)E$?7#febFC>?v!HV0igRq!|mJD}*n_|FZftC{w z0+SH|&$S*fz~SXK<)+h|H|Jx>-k6&b_y;fnx$|c<5@_K+n%j#=G0jU$>_-8%4xinI zN|vO3wcp%Q5A%tSpE(0E`+R&Q>8hO30gt(HxQ2+Mi(H+%LW<{QeH3Dm#B5?vi~`@R zIqmp;j88IYz|oojRN!=}Ire!zPPcZ_?VbI{d;7aj-I1F+iRWxyy_d!Gr^nkLKmBeU zB$ti-l>FM5kE?R+irPY3Zcy3YPEZ*wQ>g3{tqcdQKq#E@HqGaAlyENnDswF%%2mcI zkrx6o9&#d0$mZcko$T2|#5$v8Co%sx&zf0-6AD(8h}AenLX3RkE><|u>LvyVS4EXF zyf`~gH+BB50Fx7tyU4*{#XFqUw~I2~;Rpt^>O#@@9~1IM;h=++23+#y-o%I4ID$pA zCEn|BV8nhk@L;5v+YQ1xDEpp*`K+Cj!unznXIWGqoggGRSj#PE)}qacUI7Koje6Gs zYaEHDjJV%Uo-3!!pu`9ON;p;<4k`}D5q3|}{R zq(6&dff#!F6_qiksqBU zmce2BKc$=c^+puveQSr4?`ZOYu5jY2P z*8rGqglOvY&@YuaJ6~x@pIwq?EYjVpBrn`Oq$^Qq!u>kqU;6RgSzeau5ScE~agBLc zPC^K<mH=SiWSk4rZ^x55r~!@+*mnRJuQlKY;aL$M>d{{gRu-yJXu zZX?6#pxJnYcnR#wl5xPs@@g*pd>l~2=~-edkz6^F)Q%=Oy14B5E%oEu{5VSdh!KFf zU6AWVBJmN2n(|nm!%cDqTh|vz`L~eQFrMF{@tJvzDMh$skuw{+p{}ipKLk`pX-y_g zA-62GC9{V#p9;y{`I94kVhUwaFkQ&+u`4>O&mY+i)vFmPLDs{9c+KH z^N(%Te0*Ll=GdnDHpIpmO85saeah7ga$NKKulr7?S-d$-xwx5#-W7?4uvIkI1K5phKp6h~1RK^@PwiXSsx0K(a@ju)=Oi^a}(f zw(d0q!n0>WyoX$zB+o?}RWTL(`PHo8q~S5+;L9z@%kz=BY!f26KYVNBFZK0t{l#kQd@;xZ#5R}M$T&L%d(cXf6^SGYCBnxnVS2O0M?xDo!; zfU}hyRmZRIUyt_Z`Jn~ zZBr#6)_AYEEsB<>Y9dALr){!Q8wu9byCSoGD=5Oct=PcCAz2!AXhN%#z#D?#9HBo% zc$B<^=X55f$rII7H3vTOB(Ji}Z>;9_OrjTXQ<8>3O~%<2oezY|#!k$wq(h4SrsAGy zyr@lyQJdt%y^n<7esHPmygGc#jWZ>9bY!;$nQa0$6q^!q^d4ab1f>8#kI?oA79xKD z`OcdnaOHGLy_zoK#@UZLZw+(wrYWaK$|wqG;tc}rKo@o0BPbC!DhNZz zidGZOqf#Ohj@vE}{mi`Q{%o4Ug2Oa^wy@^Sgp>JUdFE_qNY*o-M>IqJyNVm3e1mY{ zoWfV22<3pWGM<64DTB0HFaeuTl=`eFH|c#YhV4^e&9nZbVvDa6u!?kai~c>`+uekoh5tUXaXd8g=0bwNRkF0<0L%H3BoX&F zJ<~dlAPx|ID<=cUzRvymL>a5KXPQEbjaw{pf|{5H*CIq&U~Vnwt*;Q!gGazhc@RFu zdL={TOgipZRJ{KG|KI-~L^kGn*zwI7n2B1)F>NJi!t0a6{q%Xo+OxP*Y-4Wo=2Ma) z8`$tnok+HR%;-**-s@tC!+|_)Dly4{c8Agmj6;5$bUAd|At`r}#ev_PlSeG1-Ex6D`+j+&bJGK!kqJ zc6H^Rkn5mJmP1K3ettha{^r@U!^7u?&rM`9E=0Fe#`9u^CK4PjV!`d|`49xPWJTa$ zmVOT45dz601xq%baUXTwX>U0e*4w~ktIRb@uzS#$&z}CZ;s%#o^bi)z^?&rgHsOS= zFZm3cjPauREM4nRC-kcw`D#sG`+@5Y?@}jHK(2sWMZe+tiNdn-sRR#RIlmFd=LGqZ z!vhHY@yQTA&>I?^a!69Zme|+XCfI~taxiRKS<3%!`7H-yzC_XvED*z)7mL8m! zcuubbt56SU;*UG-Eg$MjoW0<{>XL-n+QgCHXYSy>RRba2p9q6UfpCE6Yi#1y+1l-5 zB|cBWMusY|(Mh|}E$^@Q`7%72ZfC%l%qRbmeANC&^9k`_-sKm?c7S(KU93a2;b#rO_)5-VD%^<}R}y}c)7GM;MGK*sR|`lny>$Jv zDS&SObHMWcemdN=j|pemK91f1Bl`E#6c^Mf4F?4`5Gh;kZuv801>FyyaX;)6$6DHs z;nPr^hsJ_|BW9c%G!J&=;Wnax0ni*e;vXQ~$wvI4zZ7vcvq`L5Xi&XdQ6SOQJy^r_7*=GnxMIs3g@&6DChz%Vffhg-N;?%Z;EIPnEX zYu~V)Cv<#yhop!)-Pk4&D1$#>iscf8>R$1u|3pIwC#G>w3jnLo>D&{9_R*kWBpyWvl0jUJRs;aqp`w6Sw6!2M5JAI&gnD$|h15e*u`g z2W2>BOEsZ;v>M9vArS~l?tvMn6toJ4A=4iZs{?|?qlP6cib-|fJ~HwVt+J)?u9Ex$ zkc1fB5W?%g3EPpgLf|%DEX4dbnE|Q_+y+aC~AC4+NGQ1F0mTmJ8HoU3nyu#^FL)15Uk$G!;S{%;!ZlK}z}p zNo%6^VjJ)dgkbc_f`X$4<8%?%9D_Uj$YiIU-KJ-AaId?qI_8)OG$2BOzySo|X5>=? zyk9Jf!#?x!)`YlczO&W?h5pcJd{;*dN1a1UF9aCWp<~aha!IfEZ-PH7ERnq)(a5`# z%njJLn!E%_H}3mj{>rLJ052Kreki55YS8E@CpX3~)-?&pPRHfI2uw{U@c*Jo3MVNM z#bcwOY$g}4GVGEAbZ(s1@8;4>nD>xP(w(0TA~Q8+vdFX!{3z!GG~@adUY_Q}gR-4` zc`TU!2CaZw0Vc&MfE!h%ojDxSwnCECX=GFr5311F7$2`sVG?E4+r=(+ez> z*N|PrgtLAhfn$kU!Vyc=88YuB|Bj!FycXhG1cJP!Bx}n1Cma-fE2i;4dO(|!BU$1| z0Z{PqUAC*^un0f0@D2?!A&tz&4q)B}44YeIVj#I+;MaeFTo7B@FZS3zve8o~x^u6>E^3c6!3aVVzAJq1eub9CkG)|g$ z+d8)sg8Kr6L|#VaB#|jbGiPIdFZ5Rb%@Em;hw z)SB)sIN+v+&)UtGoaD4O?s+03(=I9ylw}{SOvu%B2Qz9>5O`s4GNSSgNpjaOt65H` zD4eeVLO{L0uyZI(Mbhxyb+>>VHwDclehxg8FufhfRDH4y#h+r#L<5IS7m|T8f;$~)_MM}xyqK5WA;o954)wBlR)4rtS@twPv2F=; zEr55vSuFuT8@50|2jN$Mx>4^aCl3+S%@xtLTycjIlAZ-wtbG3zKHc4y$QF;*%|nVv zaQmn@!BRHe$F6*)p7AVB=W0Ub+$&4*u$~15XF3hV-h~J`rfV1`3Y`P1>oox9xc}~M z`GL4w{=?Q{zT;w^aOlfH87GtQdb}fQEQ}b#($a~~kt!j5KAceN=Yk20D^9p#LJ3il zwdKdMhTxc>INm5#x-HgTYza>t1^ALd+D-&Hzk*$Zt;#QM$qPe-EaZ^|8+-Sv?Wb1d zKwgxupMMTpeKF<0HC%uL3N1|V2~%mG!bQ9H9A5}_labt=NZNr!bdK}6@YSH0G-hC+ zTY*19&h|gdNv~RA}@0ybVb7o*j3BAK;t^%bdiGvmVHt*;^?gz%8qb3IL-#M zW*}J-=$)=-kR?%-X*7<*mZ|9zVUlt)jYgQH~-^Q9sRvBLk*Y6jFQURl+72R2BzXz{1X8NF}dKHUz9AwIhr zEBt7k&+#ZlkNho3UNfNdP361P*P&TDEDYs`5?o?@F7pe}ncR#Oly|4o9Spu++vJcU zp5J&z#nyp*ZkR`$BUA8Aj!6Cm2hp(kF9C~_UneZ(ajRC!qj&?NqQ$AmEFvI$=)<=+ zYK|15n>Nb@1Ox6~N1OZ1-C*1e+2_%vW&GNLssH@*9bS2TcZwwpT*sa8G*uJx3ZAa= zjB-*X5B{H@K2gZt=gl|9sg0Kf}Mzac;?&NPM9fP}h9|C?6d7fnZfo zbgX$X$kEK-D-(mHb5r(S1oJ@aizEi&T2h{+Fa%bTJJJ1@(2ISJDjY(fg+%|MKsd1VHOxe#yf7%APkZ+AVfQr8cYvrz0vsTAXtf4tG0+h z1w5wt`8;>419n@WS7G*(G>%yegBVJoPr?qRQSoQFwTe+Z2Ff!Et zFMIFa7rB+4jppCzQ|NT^i-8n0cV^n-c?Z+9hqw(LpzX|=%&!ntD$r0Rl_eE4^CsuB zpS^DTCaG>fb=xkIaf2>f`?~hp>+(Ec^l>Q#1Dy^b5~*PXm}(KpdBj+1S?B@|ie#Ee zwfaBB@VhB1Eu#Qc%{mBZgr{NeX? z`VUrsr@bt5z(apPGpZ^CdqChQ)H*!_Ccsf%=qc;OW9X<+mWrwnCY!RC8)9^H-36xu zUYXk|ll*ar)(9}kLKqAfC&Q`PD!ODOR@aL9q-9bBdRiH*H;e~I`399$(*Sf)?3ye! zhf$N-Yso0^0s)mgNSiji0)lF(|4r2Yw0U990KoD3-@*Rofv^AV>~Agke;4xeww~R! zS^qn%-P@QUmxX&ok-Tafu1PIv1(f!$i3_acjVex;!9I?z!9av*xh9IpSg%kVfMQ|g zFpc3B(EzPCrUKUE=#!sr|VU*4(GK`>>q*SDM zD1LF=*)Y$=X^(sxd$8+&+yrH-P6osy-O(&>eTZUE5Ct8Hov0L3r%}={(w;oQNTVw_ zW3|-429l^~U>0E*1L#zyH<3uPR@jaEG5iZ+9z)I$7A~sI;W^;|O+EeOyBL?9!CYkY z<)8+PUvF6iR#7=;XtY6pv^k5~P|+D|R*fXu1ntHAjBBz|a+& zc@0-yrOSlFMZ(XBtQU<=fQXA26oC!ZE1V)4I*U$HoH){iA|3cB(#Vk@(V$@DUai5( zc0ksOxD1pY8K?M)pDp6%_Q)vbYT#AV0o8$W_#~VmO6}g#)_aFV(6E890LzaQk7+h6m|@Pze)S&U1lYB;vk#Xi zXQvlyYfr91o1f8bswCjL4@eH~TNu-KsOSVvH;Zngxe`GL#p~#yB*mz(*dK1<5^n1} zVnhA{m*J%=N}tx581}ai1D0Y9n*d)e!BDdYVPG)Mx>9L6O4M_HwD#Nj@#mZkXr)Rp zUxk-#ORN%gzU+5p&6oX0WI+oRU0|>XPF%EAjp^b?TCxEu5{8+G-16jAZv{1Jze!OSZcm|- zpTchXO(*^4?{S(Yy*O`mJKqROvHDf@M<}<(gW}3l^^_8vE5eaOsT48=twck)9@*Ax zq!Q!G98W0G)XF+Gi8s@X=_u_I-=a_p<6z1F=O{7(B7&J!bjFT7=Hbj^uFF@0UmbAu z0DO`rMmJI?jhb13*T+u@eB`<3LtUXynhcEvj-Ls&jhk*7nDnPe^f&H6H#g87*q~`( zP2BURu)Hg&sBge1z@?g@npl70zp80KOM*Yi3IkA*EvHc$!b3;w;O-rN8bYQUn4JFu z4z)^o*lLB_o12?0ZM-NHg!Yg_9hJeIl&jpjTE4_EWe{?Fe6Oz215awTI~W&8=tv!Sk9-E zG%c|4g}%hJuBsn?r>ZBYQ=Kj4Fef%w^yAeO=tPg<8;xT4|AZ@#aq&6@o{vYSKAuK; z)0en?KY(q{I2ART2b|wAn1z60Gy?zxv`~e$$1YYBTX@bCSUjsr z>eRJHLv!vwlVa$#r{=5P6QUL#fyhX#yuG^P3idJ!IBUf0O!YB`5_+*Mk3MT(du7+O z+k3+FcNNS|r|)SqIUDH2QjufG^xv7kg9(ovU{l}Vi9{^ubjFZ<%pGs|N`=?SvZc#G zREhv3f^?3APnGTrBFLCtg{Ap5>5@#WtO=DH;5EkJn8f zbnZX%!Mf?2&i!#RM8j!!z%xQvRJ@^!FgFa!Epl5Hw>7k)FvTjx(WX(uW zmX&`_KS{w^+jwkGAFU5>xQfBJrQ&b*Q>+Wzw{tlP8};tiWL-7qlwXr&&4m!=;_x&JwKL;A)vy&Yl- ziz>6N^kaaBWfroJe3{~h=oUB|gJ!vp8HJurp>Xhk0GbSGgK#ebP4^)SnGYG`%>oWa z(how%8loP|WVI^OGRCzYFjR^Y9-N}E#fdVleK-8BjcTv@;b@fS>S)$~G)~Mk6XQIe z(!hy|zGrkjbGdd^kRC#UnJfS`>zQz+XR(QilQDw)MaY6Q6dmY^Uljz}PDX1xN$;b6 z!o$+hbv9iF?JkIIxV{2NeeNIcJmt=?Y`J|_myIoQ6VHK`dk(yKaXbWgL7Io?d_#_; z7$IfsPGN|CSwAg+l}r6nHC~2#<8=}BOW4@2lQa^~mJs}o$`Q<^2PMe+5$2;0lAD~I zYY!3VLDJ1|!jWml^TuMj5Yn5PkwzJUp?;8EK}!~0`7RBZYX$>EJi6sh5(yMiM@FGH^fYn zx^{ZNI3msBUhKp@RML1 zbfR(n@uER4ern&(EfHHvLN; z>m-ya21A%sR5BA=iprURqsN)b5u<3cgivBA)6p&goM&TuV^gV9>P)0YS-;@~xmTK| zMC^K^6+AjNwK3RP*u!a=T4a3r6@zg#yWAZumw06rr2q4FUJZ__T>pcitiwH;i~qB)#X(u6xRL zaZlQ!?D6#WD7qyf`iv2V^U{Q;2(Ek;WQP)01AF?T4?`U@vd4x^E0}46;wJe3x#;7l z;qMv0J<;1QFkPwOvGbMX1x;A5Ror1@bs_`P?2Y3>UZ8bc@_4c96I5=HjCV-6%{%frlAa& zj%q(ta-%W+rS4!hW-xhX5QUuhhn%k)yV>NyYoVo00$~0Rmb!ugN?$$3#aAdJ0AC;< zto|QtfCRRjecv+fsTpRAK#Hn$^>&6i#;uM$3GJHxsoU!;|JHWVC>oI?MfMmA*zKTI zyIHfI;gwFwH*{3(vX>(=26v{Q;lMIxL!ODkQ z)Y~>@1WI13i-4E@o*6JAf6gS_|!h zLLeldg62U?6nDvxx>CpHVDW0^=~+;vRGlbva96}-Km<;HZ(5UIpR?T}ab{p?*bDj; z?UhpnyZEZGXVvU0d7GMW9p7L`g*AoTPj7&NAl#?$k`8B(iNv-X^BNRF-nqhNp0|iW z$i9v)dF#p$Nzvr{8hr2^25+z_okvg}m2S^iU}ek zlAWOzto1l>y|PbNjS4IXFuaCwuNQa98Abw)EsW@69L`r)s2)^3ylQ5kzfEsTwyjfD za$RsiVAaV+lcY7XX`^Zo0&pTg5;aMZZ@=Ac$&9c$?d)D2r6&E6PQ(s-scLb78Oes2 ztPtQT^jA|;T!OD~CF$Wp2I={ zb@RrW*!5ErJ-O8<=W^%HTCE9=-O7Vvm_U9uxXJby>~`0F>(VC%a~h}c#d3tMnV>5=*E3U_zIt?zL*SNwo0{T}H1gtjp+gle>(A{Ui;&)(kqS zd;Y&h>!4pqtwGS0UNu(17w)PFw!+GT(peMoe5UWdX*x71l#cu8=ld9-rKx%rj1UX! zR`}TDK82^GL*KLa%BUM|A5M{2Ft+0)@|jL5w0BL>Yw+5_dJR4{x!3TZXNfuTEU|WR z0e=v|H$jL{7O|B+6inr3AE#rm8?DIiht7-=ogt{`4CJx5a~%nA)~+H&?Xnp{eLry2 z2#ri;AamlvwK&(nqy$>MqPJc|;n00Ch039yl>xjYjpzdtJ8IomZaGadrfg0XT8*loPL)p~+T%Ipv`_>tNjDGDNo4 zFkOfLi<6Z!rnjf+Y%f)57I)cvio?|1RhJ!P?~Etb&UnZ>=u7C}0EoO}bewTl1H(6%L5tf6g8|8pz}8>>gh8~xmo}g#*Xn{c zb`aGLpeU0?m4j`oAa~>l!*@w}+z8&;IXX$thiK_E_Lb)UHL7TEb>(`YuLxlB>gxEv z4uAOY{urEXS63Fuh5i(z&^oAe1(>WTX4rc9Pj%%7`bjUk*!e0Nx1C8C<8K5;N7!<9@d;>}dBJ5v@jeVdx6^3-i=F5=Czm7#$^YJ*CTIb)5mip}CN zTL@~(hH8&>W;;*F%x}M|B$qQrzJ)Hw0pO*?kCs(?W|HHs2$UJkq6%XGt{E)9o58}f zGPnroxIj#Khi;8o;zF*ORUp_%oFp(5wCmT8>mqZNgh?Pf@hz6Y4C5wSfJLrV26-2d zAAmUl;%-w|FNHBFnephyGL^nWLqT?vW!)Og38tH z+xr%b1L8+e#Mt4*(aA|z#-DVgy*Sd_Gz~cd=g4xe%gzN}@-ej1dTV86=sQTtgCh9v z71e@O!L)ENNZI%40@Ko>zz}gxY9pbneUT2as?25#B&bhI#3XtSlLNAWls7td_;cLP zMo^*s!$51j_xM|ig`mkawn{JuoHr{x)$qIUc^k+}JZz&||B`84B;gT*v4hH|#7V4r zl9wR#2;j&%u}d4y`0-OFYnvqhOb{=c(1X)|V@4rRXE7qPNQz>lx?feSps~t1UYtvGd(BIL(pokNP0pSx{o8w5yLwBV(=KN!q<{YGRSSHotzAqZ|X6jv5D`}+f)&88NG{+J2+pdMu0 zXfBqBP%w(IUMP8|kCh^pqa?o!g1=p;fkA-Zt5u81Ce6}y*pjqN<(P&57_|^aNRw=2j_L7^kVFg zo8(^NezLmg@x|G475m6LnJ$#C&Ym~6!HHEhlALV(fi`h9@`d2fm!6hVE^Xf zh$-R`R*pIvVCiC$k`n+GWo?@)2C-Qc+NSr^P(rRQ=j2|GZma;qBHY^eoyNz4AQH8R zW0>-^L8>7D!~(#OQ|T;B|Hn(=&butkk9wDd$Kfq$r~T2&-F~`U#s)Oh#oTr4HkFFqj5eu~C&kLhPil zbZl5879EITiV_TXn^3EcJBn4S1{!s})YLIb<2hh3sq{LkRV8Z1Y%|CaPvI8x!+rw! z+f=qbO~B!vDMR$})~Ytqa9MaFW@iVY2M#)|xJogFM0ZV~dhQjc5cad1SDXWc{1-gY zKsD_oIkCrGkH9KK*56K?!!tplG{+5qr{K__3hO=eaVLXV-m(z52zErJmBCms04f^F z!}M`AG_NqxE`dYirK6FY7DJ!mW_KN<(Cx++mm3gO2c6rv0~}u8TJeM&=BIApJOk}4 z#t95KIjSmP65nuFj6I|yq0q20uN`(8h+d=fAnIot5S}`&m)uasl|`*(Ct0nk#ahoE z6i)bi+)t1|6WTN#EnQ;mI?EsmYt3Ynt^uj}T8rXYo8~pJ9O|j9miP+o6tMTis#8`) z1HXfp{5Sc0+ugurDO#lH#fiL41rHJc%Ztsy|=k3RpeCx#@{}5C<-y;{!zN@npMSH zb@s`Wpidq7#I?isJ(=JOJ~zJJtFSY7scs04WB>TwccI~<2$D@b&aI@g7Aj?=V%N@s z4bng?K6GuYlV(u-DmB$%0wsnS(~ZSr+G#`IfmoYVRWs5>tV$(-76>zE8#xB;+LNv{ zYQL$pL@I;es;wj1QK*aY3p<;e`hzQb(%q}l2sMvzVVnNOKf&{{<~4!{XWThRQb9CA zvM1Rmdm0nUo~jPNq0(8Cm)i7YVx`c0DP%?!mJ2xo*n+7llQlg!3ie7+W`F{8D;bcS21Uiq{bf9XU+C#sl!Q0^=JBm%Z z1+)$?6=o!As<*NF60$$|wrNQgNR)-%hYCm&F-l!s-C+}73m=ljmn4^jGfBPt(t^bs5sVAr&hTfC>|o0jD$_p zyYfHu*Z-`tPFUAG>!1`p21dV-5Dd)^OQ&{jh!gq@G2!fD3!?r*gl1q}0A-|F`YD{z zE7BjvrX|37<0{GN4B&(`b6+C750Bo5P1t1Ar3n4NMkxRm(g0}oS<9fJ;aTe}^_6U{ zuHXTy+OkGxcHa@00f7KJm`1A*(J0$F|c(KF(x!rG2p|3$MI`-2G}Zbz8L1_UJPh9ypi{n*0Vn5j89Y3O1$v%jd_LkYk{Pv|;iS-M9=tBsp>g0&0IIz- zz@sB-!&C zQ8tNyoWUERMIZ@M;O&GousrF|Wa2p^6IP#FalF*wY`tPk;OV74U1puEuev6tg@lF= z)T?d#g+L#3cpsd$!PCGbAN-)Vx=|Fu{OseTMmR7`UsGyx;pG4+VMlf3zkx{h?YAN6 z8XWe)(3zMUmEL^K#z~zRYElMK9W$>>(RIp%M1hFZBX5xEn9HLNBF4FgRlyV!fx`$F zTN*nBiSgk06l2QL>ER`qv@S;JYcS9@Z5g}8@W24|12F)R==l}o+Nt+RXiTgymgWcc>puDB{5jbyCa41xx z3mbxJ48|%e0fw^b$V@xB<<4efElI`d8Q?j&2R3rmA+TPQPKtXcbd-HeFmouoBX#WR zsu-mY?e4W@Yq+{<1@3k4RDX3PqQHKr=<nQ}xvq@7;~&J2pQhg=1riF#qc8^e8<4 za1`)EvYAn9+|Fp(45DhBd+6TrJ2rPaOa(sUZj;IDoP0iK+y+2V0ej$eOL3 zo$Qg$_)uTE3qNp95gTTfc#}*Yv~XtLf^0`Adv&GZG_Ex3W?=8t+?!-iqi@j;sv+xmL z^K1Blxx2o#vAwym{kofVUf-63{_8dg^@3m}VUB|?sN~^&0l}vm<)?C%Z)~cc{oP&o z_h55(AOGIk-NS$3*R8#+f7;sJ-P=0Y-re0%_qTWV_746j++0KljNrf(hW~VPJL(o$ z+V~uCNq5)(uDV8TuD_P?|B=QPDFKVXv%36rt4?0SXb3Dbjw9_~Hp1Jo92Re0zrJHL z$3~Xlye_g{`JhC~>j(4Z223f)bQu9Ks6#u81-%>f)lnlnPde&Ely{Rb{DYMJ@bIuv zUw+AjVc~ylL-Fd+2=wN+S%&eU73ZH-=ZEAj*-&a{w4rpBB+ZgyBkqn~b8f-wlgo?O zKdD_Pdno>0tT_Mfm+zFP>RH_8qigl(+9Y9ovrW$aG z+uz&%-EzP9<;wr89L^*5rzQ@)pbV8q{ac~KCvJW~`c10DrT219NM-qcV!WMA#LcnRD z6y6}dYD92BOOz19ygR(O#4~Lg_d#1mCY*JOw7ulFw0B&G6-H>%M7tem(MS^Ex&kSv zBhhwCw!!i?QD=u?l$Vd;`Qh7>j~5}$B#C~aLuL_VqjEj#t*Zjoud`3+>{DeE zR-MqK`UbS94i3nmJLhXEmNKW3*$86|zn_;V)Q2ByjNl9XtN?_v%!3mQ;V%oBJB>cXpZhGHBr z14nG|W3xP{L6wEjwY0i}S`==3zf_sC)6}%EUd0avX`lY~)za%fUdVsyucAz*PJwYv0{{(%~YPydGBvY7?zLnR5h;Dz+*YBPV6wpguPE)%kvK>`+St@!#&Nt4XP$u zsGt!NODN`a5oNf#Y00;oAXf(hT`g~{EqByMRm1gDuv=I`kyLk<9>YkBhS;7k0kHQB z;*#X7QhNIsaDc1Q|D*|jy zv$AEurJtmS-3JplSGyy7M5z^O{_{sLxlwlwh73RQ{HA@xkNGj94D%Y+5Oy_|p?R;I zSAq#(UKwiuxb0H#4=XwrSxQ-L9GE?+OPN4Wbz)r@ay7~T?C%#=WVwz(-dJT0OfCx* z9WD@+y#Kg3JCzHxk^|n~Fk%-hr0dtz0tD0W$wVYpgZgD znwhQc|5ZN_ZftDu#Q9(TBaqlAfG*4Ph*AV_e2ljWqe*b(7nR$f3X6q5oA3}NPHb8y})4F*9l~64(hK+C&-tA!U-Cqh#ZchvLI`Xpk=wLM;~_! zzap*#)v-q?{5%mVNr^>ZsYh+<%>5j759U-_Qs3>ig%tC#c#i+_ZVvgPq ztamC_f2(2vrD#W_Wjc$pg~tNiX=#$ITwVS3Z&z2C`c_JmOc6j(pz3u#c7U5!q!WDy zUi-iQ3on8gK>Yze1nvaEaj9SSVE2Nvh#h$dD;0zQL;_~{-C|7a)13c7)oD}z&1DA| zfBxTwAK(7Fv%9%G|1aX_&lz!pTN_s0IsXtc`!hJ`X&_FG`^YxgmaU>O)h(qUwE|?t z?b!HD1x7#;4l*YINi9U_3Th5u5VZsj#fMnOr8tp6*D(Zxn5g3baiNjJ@gbsB3@OWe zRz!7&G|nnyg^BO)C)XmmubePU#H+&_q?ahcN2TR)UmDA2T~V%FP_z2<#=lx0G$6^~ne+%&3G&o+Isq}$dO1^K$qIp;lDIuHW z1zUX7rvig!V*`If6fL}4H<2~1GZ|X~5eO2isGHQXQeOp@#21*9H61t&CEx$r8Xhsr zjM&mqMD-ben9IQ#k2;>SuI!L}sw02Cp+%Cnhqv0!EhSpsS6>L~(SpDt2zw3UNn1;I zog-`c+Y;v@gkopIIK8;|GsTyDcX4s};pEWOHFace-Eia(#%>lvAe&iK!y%043lN>0 zPDkv-V#fq);3x&`20LeKQaOg=7)~x!1e_wwiXBi;RLzXW*i-c!PE7kTE+@c)syg<; zR40B=jAK`C7r12j<5-;{BdTUMomtgHgJ2<+!9!+bx*;y$d19o!RU3D9ejVDW@4$T= zspS}tPu0J=0!zPC&tZj@0Y63vHX-GpPI5plfO?J81hu<;z1FBNj?n=p))5;gp4TQ^1RhFTX& zCh1f}hG8fdbbl~JB$^#k&Y2m;xvtKL4Ken51EBu84!10QNvX|?fh!Cs11wV_Snb{Y zN5&z!iRjPubpqC~2SVy-PNMQTZ?=+|_mOeQyh6}SmL~dXLvjyRY%|2SkuHy8_bcP3 zx~~fnbO`#V59u;M+}sjdWbFwOLN;NLt_dXp5(B^vCu()w>`}VGJs9AmH$AZnfz}*& z*Su4?Q-^Y}OohZd<;p~RE)Am+EPv}LjF6fQg}t-Dam_f}nWLMxDnMVhP9)H`I3xjj z0}XH-bKbfDc9bPv5k&e3K#i>ETFLAX3jMf!=WzNw4l$kZslJj_L3e$|v(d4{Iaky?$t zQD07Z#Io)|=^@dU`u_h@c^{4yuenVS9H%}4mqbnWAMe4@>KhtN_}zKnf9?7Ap2pi% zBD5_EG5RZv1@FU{<_w9hh#VDk5N>Hjrh4SQB{)+OHB}hbJ5LE{Z=k=7{^ni;z;4>CL(?c55NsXz<97z^T?ui88pldJX;fy3AhdXK<$R%E5yKrqybJEu*M~TBk1v ztiB-TT6`1gvftEx&X$iTUwHS0Pu<{|Q?FEMWRoSCX!xz}A6i>NT)F;AX(gC9g8c_1GPO9M}^D(^R#(qD3zH zajZkP?$p8&ww~Id)GE+mM03%Sr#|tv$(ky2(XuZ9bdu;s0QL)KO17&7@VljHm?$JL z8_FbgHzM_6&=XW^ai!=ODI)YH?XKj*sWz^QiA^hgO5ZA!dtIJ zrMmJ(*+n$ChP>>DB*lbHcsjrqWzwr`u)20yXEiH9!cDtbkb&4#h1cA~*Zf6*Lf&ih z7jbhFrTC^OqG3|ejmafog{6-hTpHk}S3+;dj4VMYi2o@b3;3*VhpN$QC?r4LE{xkwwg3xQ&crDslwRm|>Q5Lz80~ z{*^H){uYLRfH;~zTKKD^G^rOzWa*cvKPZkxRbtJ?)Co-Y(d#U*DY#K1bamrvr550l zNAD8;IvnN03<(F;)JHW+k4zWbyVQvymziD}FxmyoP(kIS)@z)(P|-MR7aLT8I%W-7 zV1@k^+b%F3Z0yuo2#!MDQlpe3v$)KrAYI2HS`p%j&w3 z_)9zr=NVk8Ec+wpEq-d^+814Mmq4Y)gut!qY%q76JRowVNpN3T`p; zwSFtmai_4fW%+U~J{(^D`SkFI<2M(V=O?G%1p$Lw$@SUhIj-zrjmqLz*>p=;E@;hn z%5l$P#4ijH@ra9>A;ORx@A8;V^yXNuWAkrP#D!ZX3Vw0Qk<)izLp6iw$T8p#Efofo zr$D?JiX#*&OWMiQ&Xl89Nzg@5lLb8*v%*1mH|8pdXS-+GQ7*1G@5U6W*06G=hN1gmmvxl!E)lyQPWsjYvEp>82qTJJ*VsOfTbWmW&` z%4MC1N)AUf*k9FZZD3Lb0+uAyW#FTM$?1*{M%thn(*gvPp-tT80XioTphD3Rh72A+ zRG0-`s5RkIK(H$o5O!s>LDfO1zqmwag=JOpCYp>kuwgj0rybR=Qa_8jSfxO!1WI}~ z9Q7rK)-K4Tl2wWaO$>0eTGF=4Q*`9H@;L68woHFADGgSj2Ay%=)fErd3D!pPAqdnA zz!0s0QS1M%+rfc>4>b-K9_7D{^SihoKbl&LDNs%E)nF1@yd9Tn!H*?Cu%-$CYpRvX z9BJkWHjL}9t50~b;bp**>|(%vr^dRbYf zaIi06Xs`2R%XY*YuOmV2LJiy(HnKZ}xk9`(7w6Z!tSj!miin;57n$#tG|!sv5zHri zt?|25g#IX+V<g9942byA)maIG*VL+cLIWrC%VZ2Ziz7S0Fo60k2&Ak#nYz5!EW5g55ndXME4mU zMfmBlLi`!8N5RnMgOY;O&AGLX@+iAxF<=5$phztr= zMA|c9WGZwB7%s)iadZWIdcM01{3mHaGLRGTWgODFV*OW#ak!RIN z4~Av2iY-BRjHg31w`6RGNL$RVenHNEGz>FeOtr!4n+0xR&i+N%^?;KbU{*3_0;P5$ zH8`I1$_tI#U(YvMn>i||I8!4X7FXExMv@RD0b7Jw?FOjxU>4+Pc;+IkiFR7kqwnCQ%n!XZ7u$Fg2frz+t+ zFmOV4qAET9nb^a)R*>RgX_7@2ln)70^H_DFibxNujT<3DH02?25HaIYPz<9^%ml|o zkEy0a0{&s5Wz!_7JKO8msvCyt7zNUlLkI(xoIx$ft?l2bUb%^`AE9#%Ry{g|Iv7WS z2*89E9o&x6ZjKRH*{Hyyn!ocK$%+-C3}pyCP*Z|*-axMyo&g{f^mK{y93r<=Vz(P}jx*499S3eJF0TOZts{bj7I> z@KkA>Ah@RyfE0!{nTRuFB+khGACR}g$Du-Do2lb&E)za>K;6?Au0hK&vZZ9i3e|!( z*V$9+`4c&R!%OYJ9s%6&TQ##(pB28mqnMIAVx^<)2?cV1Rw2eA#&7~8sq8|Jl7b@G z!3-JzA%>2+9*DXwA-%Q|#gb4-ZnZK@{RCXAr!y5QV%pS&f(Wo5pjRzrih|W3a2y$z z1Is+*s}VGKw+V(=VyNYi6A|6L&tAzZYN_-`h_RsKSU8D#)rKjMRG&117Ot%Y{?g;b zkXLX%dS!?A_&s7V3cIzh(N8rXyD%TU;E4eEZNTCBZHT=Mew;q^#yz*pnwnK>Qgnwl=P96b|1^rk_&7SFAa-Kp@iiC zmCq2Ep!hDf~X)6$14q{k=G14JNb@Hn+p{!n9TU&oH^r1Q~2?kV17q}co$^m{v zNpRk%nN-g^y`S6vH^dz7`5{2Z`~P-!)&KeaKe)8?|1Ajrlg1a)2fjZ!J-M6+2Lg^k zesq59&)~l{_BMZytexOW6P}g|>L(wt7)k_%1ZEe2wLRLJgd%;$8 zgbedg8LKOT2Ez?E*PM>hu+ooOEfArKIkS9D5Bw_dkdP8?cRuZ7^g%YS8fXT(j9KkK z3Tl1aQ58UA;SV|k4H#QW+#yXXbbOpcbdsj1mmR_`*H-MU1_stM^u3!H_|>5>n-7NH zs;P`7=O7L!o%oO#ib3ryz9m!y@Jn3-Q#G7UtvX6p?W2_v3ENHDjg&SeQ`P>q+RpEi zVc>i%F?u)a5>xh3U~Q)Ue9%J|%Fuz&!hA{AJUGfD3u+e?{xm$KAl$m!T)cjpCFK^eyhXL4O#!Cm7_y4NI|7(smg*eCmXY-dB4b)?DG&#Xh;)<3~|{@Lz;yOCtW{#S^BP+4v2c5H=fF7U0`v`_YAZ)U zSZ3&aA-4{2P7esJLSzQhS?LTlnNivt1STZ5X_;99@pWcqsID`&gf9^DUm~1yXa+jJ zI7C)M=uaf2N1+`^*LEl=60?}I5{ZwnSUvlka%qfQ!O1bXTpmU>IzR@DA}y1IcNPl7 zXJG;Ae6=yxCNS6vm5`l@=Yc1VU8&+pvtUxhW}WoY0>P*)cCBz$q3cEx!DvO9SY=4- zyD_ywLOLvvP-oub+YiWq4lKR+Wu=L~1JE8y<9HB?JSGhEt@+v-rApA9lm*Y`2OM;@2Wok2nM%rl$bw{ha+IB0~cL4xk<{Xf05jzXi;vd z2ajRnzXd+Kw1mG8Z}J#D*H}{giFo3_mlC%&b~g4mwl?-Qw$*QY_)sxImxy}iM8{x% za~l=6fn@WdM0W41PbJ+JE~^}$qhAmEC16*6Lw~*LWWz`M8*&?+r|{bwyF%MvUmXAE z$K%tZ<2TSEM6j%&I$43H438Me{C?0 z$vd(7&iJhu_g;Q-LvPOJHJaV&eTWVH<}YU-&)fJb#7OI+X!FL`Apo0;`fqKJT|YYX z_I%jxtbJZ;;B5MK0jlqC{kwgL*ZJ>IRz4KYev=s3ZfN=rq*}9T5{^_P0q5mZ)@Tll zgotUz@{txgjmo41fMGTEIb=@eQnvtH8_33DYAFbWf5uQEP(9Z%QZ*S|?w1f?jN8Vrz_l2FhvaM2=nay=0 zFlEWcqXR0<3yvC4Q2+v?0O&kU@NPgtP~Fjh{pIfL=ZOz%2DvfR+RDJmc-7L|o%S9A ziJ%;dm_JE>$i>Bwc3+TOx1)nX1TWSLK!7f6$52!#Z4>tZDC^B1Mk$}>=_gGzodV{WhI6pZ(s%j`RC?ulGn6G=zGHTD`HGC#sgx zQ>+FDr+kFB(M%aclFrP=nFD;>>@Tv;mXw%Q>Mh!cW^5DI7X78wXzN?S-1-*D1x7Ims=Ag(}$WmxE z3*7lOg}N42)wN(6b!|#T%Ql`kiwO-Vda^a>T9iNQ&LdT282GOPr@UHa%kH>}zGbv5 zM)#vQuWLqiL}Z}C((^*c*5c?;w$9|6<^zF#8>9J5(y9WzfC-JLQ86(IycG`tRzvsB zfb{1mMdev*7{N-sakHVS>SJsP1UQGNU0vBb!VSC8xo}w5h=^Pf0;IcO$ATw{UTmL)J3P2BTGo)T!E_b2(bc@q{&b-(E(qA%#Dm)#9iciL8Rvxd`!q&tV0xfdug&?&i^lX%LMwdaS=CTf ze1wtJk5913fb51N9lhab5*55#I=0oY#!;delg&A}tH8ot!CfWT{>YTn)&Pbkiw@04%U5OMkh{07F^9eh-<`ZaeuGrz{p9*JM>@Rb4r$fh5St3|X+3K9Y?B)?k8jWc zx)On;2fzVDGtgeCRqd84?IFao()e+7E!p9UQGHfT3~Li^>xvGmsOvJn$D*`z3t&}E z9cDglLU7n%&f#nvjcSA4!=f(KN+{yOak&!Elg==}V_GSQoR>!*s?%9&3sa-)4BLIo zAW^mb-S2|n+~m^Lgat9-A|&`HojV{Gu!CI5&%$mQ-o5>lF&zg^wO^;E@K&PD6eem` z4L)1otKkCxV?xnzs2TVUJKau}@8TI3LetRIYQ74B3km4%F-?0!qIdZ2hj#r+W(sqtJKin#{D7r!<2CCJ<{Xc zgD6KJDj5T6L1rctsi)Ko*lCo`3F3xQ$0TI0rf-HLHTAH@>yYYG=?`)tnuZ9Li5*g5 zaoX7%8Cu%353Wk=X4N9WltCrhsH@a*#sOD?<=OKlxx<*@4YgsDL-sgQlfueJ!&iT}`1tLA93Nf& z@#yp$^W?w25-8uP>dDiMI`2`bgr9^iGjQdc*>vkmmOY!SZ6sr%zgU8+U245~t{I9^ zSuS?Gvqt(W9U*E(k+HV>^C~aNGcc=nu5A383Th@SSR6I8j zA+S}08qL7g+iF33st}MKjd2`Sw9X8gc*EJ?RSm6 z@%H4LIzt@=UPFBgf@7L0SPWMqn$-KWSyuM~UeDesS5>-ZlQ5@JN&|A{O{8hHJ>}90 zGVogIt3rt4jwE}<2+60mYc}dtGlCEBV z=m;x^4lnhwWgvK`ku-G{W+iL1eabq9bh4b3{Vt;}n6ss0ky_md8cvtiFeViX=~qQ9 z+L%o=GmZ2LW{_Tdh$L2UUx4W@X!#fI z8|oDblPXwf*wP6|MWjDyZCSA6^o%f}(1%{UWKhGH><1P@C+k>ep#-sFDYI*i>mpjS zaY4htFJr=nZR*|&Oj6|{(CJ|qywr7M6^-%%Y`gdf3SwL}9MfzEI@3U>HT;Zbl@LEm z=47i>BC2&xi#DT)5(|9lm<^%c464x}IO@(^hbPG152Apu%25vR5!iO}Jk|#EhT)ku zy;xO4YrCxkiv`3>KGPU?b;et$Q#T8&`bfD(zVRkz7YmzVDS-#P3p;iTLDS8EvxlP` zADd1#YJAkTitV%|RZ(s1*h;N{A)QyyW21N`61iG&y9zU2ts_84m`V+7>Q6*RXzWiT zWUSh6)Gk2s_ggq3tRItN&lv%UHDLn_;K=9#S64qBzkmPz>Df=GuMbbpPXF@5*~bed zON_$aY>QC(0NEnebM*iS_nNZ4@_~!3)Jsvp>JkmuzR-_4cL7OA*@<|^rOgI8r^uSn zkMH9?8Y?Vk*aErQ+lH0tF4>IHHAX~WjUm_AbI-u6% zmCA54rgNoCoHLi-T^8Yrgm5YeSCMaO7iT#dc=ZF}?V}!KVJ#J{#IH$is)bt$AXItM zDXmSS%-ZEmspg^uK+}9YXt30pNLsUP`_^F+ys~ZRMj24}g2+w94Q}s%>nX(RWDuk+ z7s5Yj2O+sbd_q#nX*KRu?qOn95EWX45^ANj3*}Gx+8b-}z-IeSm3^DiG`x#z*s-gR zQ2f7`0~y^xgkA(Hc88z~EKW4UjVYXc#!|Lu3ikZ(fYL$0I2;(vRs`HcB4Z07s#7vb z#sfeoRB9TF+VST~F?1_NMDET=Xm3qFMR zTJ_D)4nk&Xl}!ROEORE0zcztd4}y@w&k4wIVXwsikq*O9EZb;8j zyL*(hAG?cP0ZlmiNpC{4f@?izzbZ7#G;-tGUe|thQy63sNHh>}O*-8h|1&t5l6!IM z{=v6@{n2?j&1Qce*0b2XD{VwmuGOQcD^g75O8g1&mth=qDx9Y_8ij4ORaJKQt8M+& z1|+STlR_}HAZv1S;phfsjQT-TipO7$$q>|ol+T_B`!C5IH?_XHLc=*}Kum4v%6OpX zObzhO5>WUl`M<+qH@<)U#BV^B@4?<)L;f%RNdE8M&W^giy}7@)`%mHCGXM9>7=JRD zD}g;92K0pd@2#!n(@d0yti>;C5LO&5jYs&Iprn>RRrr7*gEfuSa#V6f~Orz zUtOi`S4w81Nl-`&5ca;HK~(RM5}@L>B6xFs-g+~-=YyC zI!Gd!)p{ZVH^#*s0Dwv#ts0MDL}xU!lc@&ZkSR6bUNN0#bq@jWz)@UplAw3m9mpi9 z0UypZ5rFzDSN(~RTrFW?R|;$yU9VagHChda3OXYbbxIl;b?R4b#Q-XzzwO62s>%aS z{sZ?9<6Uy*xrMC=%@4kNT<3&jgMHQbeO*0L z|3+z)XR7PKcc_leuiohDBVrdOeiy1cdcas9@ffUKVEzG<`3zzc4DYrGEg5QtV^>Su zvUvdx+4$)=U$+Q1DT^8{0oJ(`6KT2*W4x>l4TG7+B_NiBD@iwo9uG2_m^`2mtdYk3 zRS8I-RR`;jCxy+EO9S!~V9Zh`dKq_a(?p$91i(r2hzxT;PlCZ8TdNLp(0RZ5I&p{(S|<%Yqj_CyGwV)1Er#pEa)FE!Zkc_5XB8z@1!Mb z`ZQD@K z^eq+!zbLusauQCrNUOz$z-6V^WBqELZSya#iL{kHc-XbceF#w|FWaILJI<`1@H|k zNWwCRsWL3+d*6F}wb}~Et>uBbNiCdqHPxnMRg73JFB?10=@rm7CQB$-JGy`?i9W1I zDBBljzSrwVHzd1^_n?xvVrSOsyl}KW3lTlQM>AleNq$&yyl?@vm`Nkm?oa6ff4aK* z?{E!^L=^{_23!*$QIIL2A7Iv?hGcYI`d`BUo8wihUNPd3%ZgJ((v*T(Tp(dsRrMSh zK54W_)NNJe8?YC3>o#piF9N2UydS44gGWmInkeD;!B+U{RV!Rk$BH~$Tb)~3`GrVf zv)ZOus;!1a61eLsH0#R5$bpzJ%ZO9g85GA%L27iR#VY6{meDOK^5)j{ zp;vGej zvt`HOsMNjl;pDW%w~$XgNCv|=b)kSwswXy!>rTmdM0I6)nbE1hJ4@Ia5NP#5S}Uyx zYSEj9{$qNSbP9s$bAFajxv-g7-H#@l>4uTj1}QHvP#;7EWZ=m(ow7iA6EHWrbS1!` zxC4#G?rL1O7!QGVmRMuMdrd`G7=Drw&ac6W1MSOiMwo;L)UX(Pq_luldY+?Ik?B^_ zNp<=&M6g@*n^Mn$ACJ=F0dp$REUJ5$WeRt2u@*#m9z6=XFkQ9C-a-Tk(S6{)y+*0e z5LCH#n{<`bTnhox3~fiuW&3a&<18g13RSYQ!RaM5qXpc&mgo{?mSYl!k}%q|!39Vy zfTQ)1E5X3;y1)4&Js9qUa~`A_UqPNDzP$cNm{}Z2NI@R>i5BKbfyuWD#jamfo9#^r z#LoyHuSX&cU_O*J&#@Vd{uZ%IAKYkOAT@?2nC$d0;yDyoVp4~AKNwFe9GMEi1R9aS z(hgA7ycIYLTKs;%wr`l*9Y><5O^q2kig*Af`3@qlFb1+S|2Be2l?BTqA5Yv-p;O?_$dm;g6Sh%d6?Ef~8A?R=z_oSxFUC`Zpd zqR@t1n2;;Ktq{h*8V~OY0b1ZQfZ4>jKQCyVIpHDe6PBA1^=kaOqYjf!8A>h;P>#Ff z(3=Z(dWq^+Q%8HhQo^=VezJBeVWHEY?pm*=h#bGBC>%49;2duR65Aa+>;;0W4+nLCcIg+rB;g7ZvV_BkKM zbPdqF#39}A0qP`jK=Llf^>fPxFBcv+;KZW|@v7VJb<7@bj==Bn4bXW-A(nE3fAN3F zpsmJx5OwnG&DHnk-|n@~k1sx)oxVLjZ~y1V}ZVa^~9mTYVV>N2ZG0$iV#ssMhZ#77&zB*tRhABJ_C~ndg zlQF4Xh4Hkzz0Sw=!hkKIj2R}vCIA$7#&$!QX9P24&w*TI@EdIMsgHB zn%1w7Gm*|Ap+1k`;Nmf-=IG${pS%nTC7EdrnOdW>v!)zZfUR|I`|M;BGw?X&&K#wn z8dINl!f?_izPjph!&%3=I%RL}icC?L*-Co_;7m%61CP_I)vuj*D^_)@b=u2li0#I< zy|RIMU7!xPw|(pT{O$0YZ^F&+-~LSrtA6H|gI0PF&PD0vJ&*r-@P+6R9wLw8B#&78*Oh z>h_xa8OP?}IP+VMJe_^k)y%wSsr54(nOy5ogTt;G6ERO*#O$#Vb<0UDnIAFUiok!W zq0ZTiiLrqu+qW)mk;u9I=qAh4SQp(Cc+pK0s(`(UVGU%m$4UU45%FXK#KXD- zI(4g6Ak@}rzJcO*2zg5FGy_W6D=PpYctzJ<@fXB)Q{zIfEnO)e!}9A%PvM^{|90<% z(@a@kda>3!KUa{R)C09$2t+{z4FF9d@Y8uc(xNQB0+Q{(7-P7w11F@KaP=fk8~wiI z@gWy8B$!PzDYfs0J;yHTY+xNIOs3Zgtl}I(d8`UjAP?!IX@+1J5L1nG2ilMyx?#5D z@U&gI`S20a>#mU>>yrN8Y{*iqf7w1c1m&yLNPus2@XZz zBmxwi`OUcy>M5|esbV=)T_g1r%apudT>e)#{`6A(pPQRIJNp&>Pxa3-|7!t1h{9&u z+yO2Ea3yNfz;rg)#)gtlol@yiZ%`+DGl)KQ<6(LGCfveZ_NFMJVFGgo{(9Wr-1(jS zal6-V4*-#5m;lFwTy~QT1Hmb7EAiaz$9Qe>XY;sMnCZHdGtaaB{ehTK3`|)6TL*iU z{LlUU-R1gU#LowPdLKk-G8{1mB3jfbD%dDnF!3UaH zZ)#g)vb<_4sBbp5VU&(7!M<&k0rmJ;LSAVS7q#_DiZ-1M#*X40D8kuYU4OvfiuGjt z?KbNBYDPqz+qmgjJycD@gV&vDu~DaYPbL3rcI;WUfC=({XK&Y+|9ji}n@jn>h@ZF2 z@&&%fYjseI<23wpoD90mp@yk6BHRx@oJ_GB)ai=RHTbVOS${N0i#Kn=|LLp$lUr=S znYP66o0;nndR8t7c!Ko|GB@gWbC3dT^852%{|&^VFfW6kIg!nbPvsrhGt_Id*f|O5 ze~^_izA8|4Wa^<*DcB^svy^E_H88asmb@6^nCB3KQ)Vf0n4t~;CIADwk9JZ@Nw(rc zXKKA_GFSyD8Qu*yV^i2h^C%UQMoEfSok$&OlQ+#%Pc>2)+nl77I5D4^#hs=bZ|Rk%gp1>eKESeiyyIIue}0x__W4iDKoXSh|{iLt9e?gv>n*R zXh$_Y2R}amwAQyYdrcu*n+UQF0aisZ8er&WRL;^^V&Q=0BGHK)ajUxV@cmDRf4M-I z_kSosw^37HCA!-1dYjCJZSbvQ#eX0uFsBbH??YqR?5HToHg`k3nqe_NoTJwzDpPo!Nq) z)|k|;ha=nz?Zh=I+zv|r37il}1%POo667xx!>Fm-H zw^U{6Et4&Had`0_2@wTLN1%30%^{!<@pjC&mGHy7FsOj!5voHZ6@I^sp|f^=)tkJh zHizwl-5ugk(|_+mHrgQu?Ztq+2$v7k3F(TX!MbtL$&;Z#FEaHqLxxHhBo^^$mIn;! zZIG( zCkl9|6{vdJY?=O zAQ)E@6|`9;D_YzR;hUszMmki5dZJ%rY!wO`~_2-2a@FtCyzsWrM3fbc$wD5z~39 zcw9^nP+JrxR?*2hkxs$bHPtUj2zBz|@O>Mwi<>*eg)<65iA?7ox~E z4~?DBlgI=RvdyaNqcu_ES~{JaCLm+$2c4B( z>G9+yg#c<^%{q-g2<f%y~h3}j;9XiMgrQJfT9u}s=!Hnkqu<5+T(xe_`g1!onO}U zobX|l4xcep9d;9djgZ|0x0xEzc6@qye6Hl%#qk8$25U43iN!?qi!5_)3d7NWvatWV z&3(ffy0_Yr#Q|G{D&gu1`PPb2ua|r>8-fvzJkyzH_a1P&`$JXAYq?e!u+J-sbPyN5|)vjXjcv|Fr>B=r-*R^bh4BK$K1{S<7$+(tCRjB3U5w`Q2yYSxuK&=N47#zeXAp%(8eu$6XDb3X?&LZSBh{a2Z zPqQS?+DGTdZ`Im4Iebq%459$*;4T6%u`?xrK)2LMD3xJklj*G_q0&9bmQQL1K$2o0 z?;i5vE2V(|*F+w{nmwPa4wG8J(|!|W|3ni8r0E5k$t()Bu1pg&kJ*ZEXuSE0dZx1s z3F}%z0ur=D%9RgjD<-ov3W1!#KB5X^TF(dFB_g4f&eMKVm)*LeBLA@Vw!J5VF=EF}WAGwuSTtv!jHf7|e|% zRs-__XRV^LomyK8w|i|Z@1_oxz7lVQ3uf8Fu4q^ycToH@VL5I>QBtyZx+2!e5_l+3 z4N(HQYfx8Z@#(a<3aSrP!_}RvS%DtN5ZPz@eZ5F&eg!6s5+1^xqk?!AS#O$rQV9~J zH#Lq(6_8cypw^^Ah1HthJXIrJITt7y+8<93e>^+^*+BHUGE*p^+bEw(Q~{#`WF&Az zD=BCL)w|%?rg2NNYNvukGx4dCGir~oRzm1hcuU$mAr|?4PQsd@rx9?ujoT~ckzb7& zdzMlXi|!6N>j>uH?tPEGq}$jyIa~Imz)u#5F&bQBxvHOG?Wt$_9u%%tD99>76FjKj zhX4x{Z&)+mn6UBPq-cDd6jVOBIub%FG`CrXs2}x9!QyxFR{`a&VpMR{K?G`wCsxNB zxu9mv&8<2H_mHX`^3^+lB|zB5{N>uksrd#g2bzMU7sBTicI#NsuIkPKb~R+MX=KlPzM{Fu_@HntSa;Y1J8c>ZV~JUpD<|Pc?s#IDg+7ChF`uWWg0d{r2IOwT5BO zvg%}7MNT9}kDOwVrE+@Wn5y6~Gc9$a@RSKiB}4UaJI67?Y~Mi3KkhVp2X81;%ULYO z9CkeAhx#0!ZXP;(oXaPPF5NJf8>PgNJX9Cn29Cm=HM|~BKOF^T4E;NgE z`gw$9G;8QV)%a#Hi4(Q~LtbdhBeQW*+VWb&wVbTShoHv?O*<2AXW$TIpm^I3LdG7O zfJ(!*dh>!e2u|!qhzXzyVh{%u_~Q=%EE}a&fupCNq?8!}SsE=(t^^gXSZ&fr5v)Pu zROeN-Vjx2Phc5k(2K*BZF(3^Q&$QoPvOaH7>S?8M)icX#?}pNE^mI$ak6W2IpjxDv zITJ8MBEcvy5S-xbBZwH6fqkIQIlB97frENd%~}8mfN%}}KvMHHP>5xC4v&tGKU})z z&Tr2y|Gc(l)W@b15p+T25Y(ao7a2QIJH#$lXMi(9*(kLFkuHD7oT!44#cI1DDl|@{ z=g% zYCo<}>K0gosu-cJD?%RyiF^=1F>K|u8}M^2plenKwmyX4pks>xc6!R-PuFFFv%z6#(D|_C97`KY>MTF&cLYJNQw%WZD%XxAb~>OH2aOWsR!LyT9}dNcRa1z!;L$}m zevct0tnqq+c3B^ms@2yJ+Z0rcwhq7N@1Qlz?g{1DM;LM?z~&2AAz=WoL{fI!U`e&= z;tlrqf46zn5?nqxZRtoZ@|Ej~8U&`bBJc1RSfds+=&HU~+%A%Eg~)LLF6E$E9ehLN z?Cec|&QH=VwiW&6ui(l$TWzwucx68GMpAX-tVR$O0S(j~t z5&u2LNnMBV4;U?}FZ@vnva>WcPe9vr4-OF|@;>Y6h1@Wztw2d)?J75~Xtg_yA?KD^ zl=N`I8JGpIRYg6h)V8Yc0VL2KdLE990z~ZPCNLuyi*xX8e3PW94l1$=-fFRqAajF{ zLsrN~H}3Q?RXRzlP9<1g_X_5;W6wm~K{B*t-VM2y&FL+tqSyoGNk@X|_c&wgl+lC<2} zR@ED&7TQYlH^MamU#o2ZHFHu8syC?m)spI;4A!;67-a?D@w?Q^eS%2(2eJpE}^@#qMp@6#H zr;>01%~%x-E?6VUYFiwpFGf0KjgTv5=@4r+@NjfiYbO%6j4Pa$*;A&G+j7*TW^MNq z$I+Qf&ODmtZPRoJb9~5?k~(I#cO~L|+BctT<~b8aBpSWmovZ6DI|mmduq+1Zmmk90 z4&pb3!5Xw2YqzRFW5jq)&$MlV9yB8k0%2lJ2oA*Tr-HyUefS|I8bX`}f&rj7HTXte z+(FB@mGs$;l%k52`VUmFWiI?9LdR%E%8*tAVYOiHzQCSi+n^5PzFg;?gm^1Fg!p~v znTj!9<~mk=Cb3csU`1N{Je|RTBetb9{6ocJs=B}maJv>7j|5)VT3n0NIJ8bzTB04r zs_|U+rb^dXvc?SHxH>lt8xLB5hgwU``#sK3eTp#{KxkC3tjoqX1V;DJj>Pc*eXRIX zw?(0?;{{=bztb>hlJO3DOw+YYKhU}j7|zI?v5b8!Cl||+LWAcH93DMK$gCP5T3x0z zc7NT7DVRIV1Oi%7lQe8*>5`$>H>u9U^sDD3|~_ z{(ykg)rj$#S#ARi7Sw{}Jp_2mv5i-YIo<0BW+Mn>^601pvUi8ZG-|~#8j4>TuBd9& z5L3AhkRt*&9bnA{8~Z9W0EuZ^Xdk`00t?U86~tdQ8RofdTqX1gHBU)L;%skPW)ncw zw>E{EXd4LhQwxSyPsL^ItAeX7!pddGI?Y`uqn0ub21F;9=}P#X;1*e}()b~8UBw+X z#MKr-_e219xCo-*7M#tdf*c=37!aaC=`Nv}T* zaVpGH>*#)JwpOiK%@T#1;t(uE`JCV=!7?n7uV%)xrotHnRF|*qY}iq%O3($+1F}(9 ziVGM4DTGWn{4A#dm=Eg647JymdG<(*y-02GC>x=bgCPMcYmOVfn>j&r(njKW3A_m; zY8V2Q%1Y+&x5IDWAEVFpkn>zH=OZu?2&P=ya9m;*iM297!9shumBta6q!J*&Qi~Wx zzUP}@3PeifOSE5@kpQ`G%yc0<=B1m)%Gb1_0Xl@tMh zC&B81u{%=76caXoWhZF`kslvs2N9TST?CakTAw5;1sX{*q|h~HrL1FOu(Pa^^BU4R60ZII#8fsZZIPv!I1)+X+G*RNv7l( zMh){bz$){6Y&btrOA9ld=(Jpr!q!##1tFr^A}3cTZ>6b{E3(n4#eqZt1rk}%C`Hpe zBP)y^?3Nld1Iug0vmprzYrT4QiKE%-$$qubtURU}#zw?B>vf_0@m1SBN&EGi9HbE#>n#I;b4STVXD5b33STJ_AU7$Wolj+d(T%A&l{J>Zus zJwe$rUI`lMTRdJ5%-$yPl(q|7i>BHULb)O%jORYu>r*oun9j!TP_}kDOzhTD4um#U zr`}Oayw?h`;Jg~*JTo)oRV&c$e9nPUYvK;F9@u+ov`0#2R6PK3yT~9$3^ZJu3X07#z(Pmj1^Vz*pNlI8U<`9|g zkjSQuo_Yu1Qokzn$9N-!1|(g-jS%2P)WpQ)-4qN9=ZX4uPn?{*@TzOPr9)34Hdb=z z#(VPX&%WbRC!gfH9pizU)&*59WNt6;b9jWCyjpYkg`d?&Je`;KX>FXt)jNgT7kR!N zif}adYJ&nQY^=oN&5Vu+HTig?&C+UKOT-SR?MH)%;^<^41+raQN&uy~$+iNUe>HNL z!gp#FfNvp)RX$A|=+4{F7>)(+awdn>)~``Q!^&-vBxoe{^HEU(SvfdtHU%yU0D<7z zpw=S?jVP#Wpy3$3=F-Wg$DK(lTD0@~f(xv~A0&X%vJ?N#&KwC09fcI8_kldVA%Zm{ z3!##3f3{>dAl0!Lq0tCX<2ay}s48efS_L}HPTZ_u5p%rX5+O8YqRjv|QPLdiGv;KY zu20PltW0B*eo1M5IvSZvAWhqk$KS9qpJYFyU5KNv*|BVmFWOAq%_~SW>AkzsyTK%BRvh4lBYm_ zqLq*owx6dGDJq2qMo+8~-U1Csq4Rj*n4|P}0=RUv3EY$sxe^IVWCts0#Y?l_3ddT>H9*8Fhnf2k znK+ZLAKO42sMQL`^d8J=dao(^sY-_lwVBHx@9lkhZ>RIiEN`=|okC_1-4cF>UC+*+ zWl|hszjY1IwX(Gp=%UsvCzkj#36qDTY{Y_In3!2Pm^7gnjhUeAWpd=1R*|cMb4)c; zc1%+BfYPU`qgRsGnWQ>@Yz0k|aO4X_aWJQoYRbv)JG0=k zIN+lcf92}1)zXS$dZqT8tdro82>SDtiJyldx`CX-b#-d)0N4+v4-+hfA6U&NG3xO8 zr3e*iM{zXg0>lMZe&Y4U+u<}zE=lqE9#VG!27C+4`Z*h_g5bXs)pN(OMbUlOZG3U& zmxs|~Ka09ky$-cs!|Ee%(+uBY&76mxuh%>OXqG%-aGo$cwLRokdX567AD{YOn`MY* z9Hh{ierxa#z5@gE6D(EE=e45(+~q@3hb{DS)Y7j54!h) ze)OoukyPLw1`Kjk52h&Cy$rCRCHgS1qm2#x?a^^?{^3YOSxr!XlHJR+fjIVY5&7`8 z8<20k$U>7t@au|hQH;EGwLUZ+M@~I8*BYL80Y6#1&a!xFI!8_N?7oGiz#U9}7%S!G z?VzW~IKPdxB4CQI&)s%uc^hbl%iAXhyU!=->*vdq-*jixtTK0O4^CO_34P2*A?p)Q zJZe0pzI9c;G(qX?K9Ol5@Db>qiSj&plqbCJ2b$(d9kmgn-O~Fb8!*?Ga{9%M;72rf z6KpOkk`6TPw;$iVJ3en;{^i4Q`|aW7AwoT(dMXDF3K{j3P(!z6-9(K1V`Qo-)SQlO?dR$Pb5a-=3U)2St8>BLRUYULz;L zb&}elrqK5QjZ4lfvmawmbGK5oB2un;VL=##K!7?J^i5qq2$E~ifK3};(rxj@<@xd94-y$n`vFDqD9x#*Bf@AFm{|>4LO(8Jdr%?r zh+~!{eu(3ksnjw3esS{MY5VN-{a0Kpjx~xQU!Ziz3j(xUT4$s=QTo zfj*Q7L7DTats6o8-szh(#Lx&fEsOVvIyB(mX^1~jRmEu=alB{AL1gA7B!W{d{4?`V z1MDa@qO{%Tdcg;2y z{*Qmt8OX17VOwJhgB9XD%S)GB_1{1>>u$3Y$NTE{74^@md2V~`CwV)Yx&b?5OB0bZ zsWdDO$4V9C9K!w$hprW>F>Zxht&mp7f1Z74zde3;`0@Q^YZ4(3isD`AfL^!)MI4`> zpPjGZ7gtyHyQF`&F?@f;o;sqczFrG2^C&F_7+gppx(@&=4eksRn#SvCBV2n;@2%Wt zNq4nDy_F{FirSWEfE5!PtKR*!IO0WaEhPq+Fq=?PdNDDu^lJ_?P^|W81awV@=+Ufh zg*-b*H+1(C5CyhG4+Q30W2y<%i-;Bp>k}P>>%ll1n$ijB(|{SoK=wHzor&OiA7GF? z2prr9jA#li(M0hYbzK0hvadg@JlWdZ-gRV3D_k4G0-i~-d=}9$o9viTIE-2Sa?YMC z1SX#4m@@ErWP!YGbyE26GK6kV{=4*>cR8@c6ZDgN`;TFvW^mTSqAPV$)4!dm6Z=qU zM_fU!l$uX8cIvye!hf?e5r#4m;N5@!rnVK%<}t57Ai}@iZBIP;6l3xdk0smt=a6UqD*OvEG3sYkd4ma17)!RR`*qD zIJ8-^o1*$L)u-l3gnV<3E+p9_*b?E0zCy9rT|)%wsl`H{7)1GXg7}K7HPMz>XSFwA z30Cbmj$MF#vR<&YueLo@sS(jp_7ezfagM_lWTtD$)TaX2a78^$P4^-47eai&S&P`P z9t2)M?{6G!B87VUp+4bg`$^#0PaeYu*st^ni28c$u_v&OJ%@cvMJSW|81~93TF8Fr zkPh^LjPRthCt0TWU8{)tRD zbj)mlx;e)!t<$WmVIOid8~zSECxx&{4AM6RaR zqOoIhV+6SpdZ6f2YqGN75Mp7%4U$e9@4O+$Wp;5oVIo5IaB7a<4?m* zJlYl0A=V<2>w_a85)Ya;zjNxT9{3sJA?Ei?OyNbbdg2+JRZsU<&C@;4_|)@t=>k0yc8M8b{LXWmv8^Ev#IzfZwPf3q!Wgrm zPioBB;q2yY#Gl;=!zb9Y1EVR=Z_f@~qmkIN?dFd$X$RV*9nNaf4xY`Vy)(VK<(iAC z%GN8G|68xds#|;0s#$tXjx$i<7q?%HHB#+OYt=UEXJ$*Zty4JaUyUUKwZNSPn3`Q9 z%N%Cro#!z#Tb(n;(p*(Ww6PhzW_+zd*43YR#Eu&@d_YXO)~%S!bcc&H(g-Xe z-QCjN=>p5n!~OledH#TTF*Bby=Q>yX=d|3#iT=FkSBt#1PklKE;SoA|{5z2Tp)jVV zpt9WAG)?}usCk*Ur}hVq^D8E#u6E@lWIhwV$4TuyW%&bzKL!ez)V9Vo8sv z=8*cX&*;O>G%l5F+#|&aBD+Ht`FMg*(DFZ*X?yDxoRe!&D!kuU&nM#Nq_qdYz>i0f zrPVMHzM#*)tBYz=m~jx?;j@pA>xqTGtDUOp#^05Vl}E6fE8#01onuGZ|Ib+ZO2zX( zV`=7uM@Z)tdgan+67YixI(~MR*O|8m1^MmZYqp^KSX{4YedTpR(oF>5=Pt8Q*9%&w zVd%yAdHK`olkx9WfW(Ds5X7)E$w*ZbwME!B7QRscT9t%NNlL*rmH#bcgt^*65lsp2 z`X{InX?$VuV9oEVR4?jA^CrU5fB*SLIXebTljvK7!ZvHdj$W8*-xz-7JqnB`1< zUS(ty_NWXCszv#xYe0RUv{&n=XpW@V(X+XG z`U*8Gv^+GrBmMBM)24;Y{Mq8EGuYu>(4o{Z3a@WRn;zH95evsHF8|^9cdDD0#9?v+ zB-(YoP#(peO7h%T&GquPD2Ze4IOtlm?7t?!e)-9R|>$o|3Wn+5_RMGKJ zrBiXKMyQQOU2CdrRu#;RgwAWK%tVq|m6gMP5Qa#v?mBYD`BnA%9nOLC(W}wevV|)U zXp3h0mLiiXvRowm{b+Vd?Oz7<6BeO5+p^Txji#V+^wzy^-`nM zy->CvQ^?GxK#t1U%{>tIyq>oQhtxf9ywWD1zj%pSgV!gjqcXeHQ+^2j*@RN}94R0` z4SuaP-y`IyOU7MKH_NUiDhU!j{=}v564r z_jSqN(o1Z;FfG{>#uY}9M;k^AyEJu=DiBX>(KF_6nly}X8cGHAVvF9#jg|Ec_eEgh zejonjncL-AD3LWf6uVF&Xs$!Hupj4p#gQ((qlS;F&ZU?pIq@WD-`?q3m{K>8O|Am> zLJ4u;(*@DWwYkRIpQ4*PcH&A#azeBSdZc?CTewWRQSrLJ>IHVp2NfN6^DE63Qmxc^ zw*+xQFm1iH!j!(3t~elZ6rL&se8z|=pIDPwkcS>UDLJ$ef#Z{5;y7CawYoPs#&DmN zbzy_If&Q8QBA=(Naotj28>@f+?E?Gv3q3EE;cD071Gp193%|-cTvgBaBP=+9Q2+lTqMS}18n58J}K&>qOc(%)W~2jOmsz8 znG}|j12{i06$%{gg~MJ+;%G%;cp#rE+1A?&MwXB47_$gF{u!OSxfX0(W-)mN0{9Ss17?*LsdRV#eitSr` zH!98uF_MR6dFZXP14Hf=ySl^jgRd6O!05Wdzxp1{l&;NWzel7xpXX04(QUg@y}F}c zGMx}IJ>eU*hd>=0#~y&R2jMHGhl5C5ewUM!296om7fN1ghsVEZ{bFV0Szws0}FvjNR=5IT^j6S?8w?swY!Q8iR39QTOIj(bvy_C3Kwo+rINn6yhQ0OUSK zaJ@xg+;dR6<}TN)rI)j;)G-rfVq{RHAIr;N!@V*1V5j?rx; z;}yXuF&(&6A>-Fhc+VP8f7_56IbR! z?R#wIR^rrMzufGF#$UPyh@MOB+91Y8$M0CIm4Av-L&&mp{1c$}_vWjvR_zBu$L$YJ zkLKvOmcjh7SD~7cfUEP0B&~;9ogjsEgDDhKL0ws^byUek`@?78BxAd z`zdt4I-y$KO`5apxK<4ADtHFMdItH7W&lsBz{cwx;J68h%b0z(i^0n^I%#S0kKXJv z&vTOyMenHU$iV+xy?*|InF)nE!_%b%no*%4F4YnL=&Delch)3d@igUaS38qeuXiui z0)w1*qkIl-t6`==U>*YUs>5R8kcO5QAjkk{C9YdRl zY+aaL^UXw^q8=5`G8YLr&)W~3kWNI-{j%U!Ot*(Ku_u;gxw{5=_FB}f+N|m3KG(Si z7l^`Z(`e3bxjLF!o*E+|y}c1ny;)&Srb#PIf@{}UG-QHLI~$Q$!dW?cJO+#^DbdC8 z#eN`(et#N+YgaQkv0HoP&^4HNl!k%I`c-ZKBFXh%yZEyRW zK?tg}|6Q54Iek&9^MIhs$RqW3*8TG zaqVGm0;?y69IakSW>#TFjtlPkJ(kF|e5ybbCLLq7nSC-0-A0xvkike=ADxn>3?(oQ zbuszE-GjWJy2(4C;LyT!Yn-f=6!nyMp}E zk)3?iLipqNMa7PuJ_g1OVOk}lippB58vndXd)-?nH9{0e|9*keko=V?@ef7!(@&{8 zv!nOJN5A=S`Cc@(dET#nyw@-5FNhp6nfk?8gYX#Es`3F_8s&TB-0b{Vp)-fg_bJ4? zcUBk++xT{;*4BbmdsW#gW4YH_#U)BiSL^-s2Mf9u)pCxFSWqRipa-&fcyxk zq}CooAJb{tHq5KPWr*SKPvtNo+gpoz9fBAg%FVRW(iLJgj**X64q_~3;OP69!e;55 z_O6jkhmZkdX!OXtU6v+l6eJ*#NXpFk4z^H^cqG?>jU?}dZt&B`g<0Q9WXhN8fDXl- z5mr#n@=ki8aYR>_RX&fZi7>xxNC9`2SPD(qNe(4e?7CQ%J*eq^L(Irr*DhEy1z7!! z9t8jQcYg+Gk$&P%VzmvLR#C*dAYo!<3S%^y%5B@cIfx*}ncnRaUkJjbkKFPRlBd@5 z^twU~6F;mZ!Hg7ezgH|q(y2ZcR8g%d{*%(vz%f&$mMFjbq(da~=eD}~NLxsG@No$F z`v;cBtW@W_->U5A-1=~zogm8ZXYZ^Eu2XlU1phU&KhUkJK7-t^H|VsDZ;}u)Ns6F- z?;vm8od4FI$9f5rg5(4ieg73EH50A<=!sCpz=dpD1ghgvKGBVIo~ zMiO<+$G_;|A*y@vlY@orDMY5WBGKllWoV(9s-T~FmTaLJ*APNriz|quxDkdSFvwTP8HU%2*EZQjt{1jl@0^O=WBV#- z0bQkx8lTMpc+f1hFf_A z8%GcSNRd-}hSUkDQa?=RFgp{R*v7fFMD#jQQtw12MEBqr`*a)%sYB zU_Ap%T1PKYp30XVu$v;3+cKE2uvK3?%t1^}u3VYMDd_o>kK~WZkwE6x+1)_-Fw0QYAV2yhw(Usd)8l720r=? zpwZkwD_G%M0tx!G2(sT7jF&yzgp~BZPh=179?<@1Ui8+x{IGMb?bWL3Z&NWDZz&1E}3w)gr*LH3L zMWotjM$ga}A$Ngnma9{$K(EkeFgoJK7sF36vuSMGk`twC+l*i7akB?@785D5AjPLK z=qJV=<*RqGCj0iA&hl|Yj~r|xEEWKfLpRb-Kr$zwv1lSJn*0f#qzl+;=l#P~e^kS4 z%izHo0P_uS_xs|#BKaF8&1>E&uTD)2~4x2T~N;$+sK*4)K`XRo&GmG~1ShN$tyDY0K7~3Q5YZ zk4~ldw%RMPCeZdLAk9?MYq%jBm-5=HZLf(WcsTXN^jveRweoFCy}t$!HutpcT@eAwnKvRJJY_M*f zXa9j9+7Pu4UBHQyO)f@f(I+fnJAS4-M2jlXXffAZ$a#2hn?+Zt@?2eW(bgA@uh9G~ z&NOoi#<$b#rAJwXC1d{e)c89j-AcOuL>b%>a0qAq$vsCM)^{U!RY)QfY@0&$lvRy(a|puscT@kJ{pNRBpY1ajT&MHB!7IxR>NHLV zSBgEM{!yjCpQ*_%e_57?BTb;1h(}BQ%<~P?h2|k(e5m3^R5|EJUWT^voLj#(IXm&5@|?Qp z4BV27w(=1{z zRVpj0Cp{k0LBBzqt~pH(JwcMD(F2pZ)7-_KCVc2PSpD_HkwB+pPWyxtB2IkTr_;){ z2N?yTC?K=pA!>g>FNZy?6Zb;_*;`;dT2uklE{k$9pSOuh6m+l&guT_6d{)F%UaAss z{7XIzJ17*0T2!XQE8cdIag(liqAR9}hgpXPMJ*J_pmE+)_o8`E-!Pu)R&l(5Zq%dW zI|eMkgS40g!lB$VsD%hXOv@A#dlZ)BZOq`U3%Rl4 z9zu`|JWVt>S>fyUVExB|`WaJ6qs=w@QC{(tkAleKxFYJMhk9%)<>EX)Erl!Nd}M2C zuiRU!aLiv{LY!*Lu5|(p%KK7hLAz3cb6Jv#ir^?In#zO|$>9c)jC!Ep)ZOjSZn9Q1(Db5bp^T2dgIeytncrJ+kD z^>}OwtBh+84tf&hqWd&YTdpW`GxTMEm6J6Ufddb6v5c&q28xio{Ar2O-$MzMM-h|k zd!>;7=y7Q$3y3YhtCNfUv(2k(tV}0zxXJfi9`8}(j7wXDVs9wt<+$|gw{JV1?HAE_ zvDq`GP{#1q<3Yk&^<$NJ5Qlg!Djogh`X;?!)Af%4<0mj8!5n2TWJ@6LX z30hZR!*B&4YXw#rRU9k=PQxI}kKnDYgSBHj%bTVOKFU6^QV{b^^R(DM2eJx4AObr8 z&CTsGI||Rtl|EM*uCF@Gd{M4&;#wXik4aC6&{lg}~HR`k;92QEdJW{7OVF718=2x)*OVinR2HR93< z^^Q{o-d&R4ilC#ONHTshZZGpzKV*MXFJO5uj(5T@S|R2(BihmIn`w~aws!Guua?W~ zd)sm`_zXVCEXeq{Ps@Isw}nwF|LOd* z_=$!2l#JqJ=|ErjF++e}vReC;T^!;7MMjMd;dM$S60iTUg*%wvutDRNa)&qmYiFx2 z5lkCk9-S|x2|kMN_!T`Z`!m@h-#?mm_*41-{dN2bTXnSCirNj9lP>G1zlXtW@L%uJxIZRY^s-jO0}0~V9)nV!wpV^jS- z|4t!WQ)~Asb#nj4{)yVar^soYRO@Q5t5GhlK7Kr>r7?WLoq9{@g`s8k0og=4FFN%6 z#i3gySoh#>GAEU!nNK=8jh58+g;Uys?;#_>>YP45Gwy)Kknz2T%YtV7W_IW#x+*+L z{t>iBSjI>9D9mtbTvL;LlOKPu%=73+vJdd9*1$~Nn}RcJ2+AsA3Gz)(?CW7_@MSzE?qX>9#@sh)#$W-Gkie2o zr8#rid|UYpO~jE1X?7^JIFa4^V>$x}Pd6Bjvh@^l0*b8Q@vc~Ff4iMMk#jTr9V|rI`c5MU$MFx3*Q2;( z?ZFl({4&Q(kN-`C`Yv$2BjxRVkCzTF=syF96-iKzn|K= zl3f~XnZm;NMcAylbETPglkMgz6NV(1jn$GSN3|4t^`|fF@S|~1V$AH@m{z{Vg9DIt zE($&@H_IY4ITp~psO(d3c3KR4-^$maS8y4|E2<=;8(DKr+M0iXNmXMr35`Piu0bu{ z>{p=G)t4(n8YrODPR3_J)6Stl5E~}gPOu*`7l%*QOjH$K;DSY-Xuwo*HV}KIjW-?t z>_k+KcD}i!G7~pPIb|_5!~7@#O+@-C%{zeA8FCC5jsTN8057A_70_MHJ#fbdUL54V zFgU$y<3YYF6ApOmVRv-$P&NV*em@xu7e@sK@AXlEGm9g@JomrrZ^@s2f$Gukn$9-#bOt;k7u8LDBJj?6ONsoS7a zt>%1Xc@%E9pEfjO`&Om$+a)`z+#C9oPp3Qyqy(Dc0AimJXa>>k6I@dO?&|95(*~Cs zeVC-0-b9@+*T32!YxKuxfM-4lFQlF9(7Ye8fvKs!{p+@3f(ua!x@y~o&`Ze9s1z^& zuKx;&fTotFc)-XSmLX6~+K^;2iEt+OLO2nE9tivOl9n%cA&GYH24wMKZm&` zPUw=q&J|PQfaQa84*{|ALjZmB85D8?v6Wlzkb3U+kd>M!l$q0W>+iIzfO0G)we#!U zaG&jaxUA9;B#W|7=-sRKgRHM5GBK1bc^WCGu)Yh^!*#A1CL{fjf_AuI=-Y6DVfLh~ zS^V)uRo&Ctw{T?Kn@RGQcEF$?w6bPC0-z3nG6|c0N>vdc6$ZYa5!vjq{^aGc@BUiw zvh;>&*CR(^oKn8{rbWu9E*kSp_}5^#>;b`}8|8LA%rFx+2n%*HdV~yL(dCc=8~YP4 zAi2&9l5ji)+zI?MvCahri!rm&yh5z1-c3L;$N3dC+mSUTerOnwS9o!CoS{KqUI6)X zOG{Jp9h__uS!8juXMguryJ=X^28HhO8dO>hI%6y zz0-h-kunO8Sl9<^ES)1lZY+Jp_8T%8VIKn6|7-jrnmD|Dy-#KpVz1J2`vaxSxV?2B zs-)dOM$gX2hJ7qGE2$RuE~e(2yow}V!u-#$3Ok{6WTC!MjaPTV{gVH6X%LTL(hW^H-ON6I+nuwNc z$&ARQ#VrLW;u|rU1U+h%m8@3r*{Ks+v@@T`(8gLK(nWpYxiVD_+c|zUtqx0v3s zmM}RE9 z@K5jL*s)>X0P#tNC-eXrUiE=r^1AgxWs^k-!Fjv+w7Ovmc9 zXAc(~D8hDWi&HQ#g8D6gVTp1PcOdY!hJgW?AIu!#+-tc@{9%j2 zP#o9eERaPvG4qG9(tsa()aIeQ(47Dp1ye}a|^=JvxQu72)q-t65T(^ zh*A~KTt>(t9N`+CpnX-!9?2ln>O$=9Leza{=Jzx3F>H)-1wlAGUOUo8_UQS5$~}lr zT`jO6SYKAaTGhNBu}1?F0Z}StgKSOkm`*y~dfV}iX_uA`H)f48jrb)e_{)1wy{GNn z-?R72M^6xw;ho)^&cykYWTTvJd+47`uWR{NT?K?dMx%TwhIdO?3=|)|3$Qz|@Piu{ z!V1KTkuXXYu37t0<385yOFDQIU=sV%dd3Vpn`H$f{me4J%5G{e2Z3=qloh8-1g1+MskTFJ&3`3l^>l zgP^W}vK2|l;0(`bs3oc3{_}$<<>HpZ~#b@XP1nqhTB94J+4>Tr~=+Mb;Z( z`O!gnF1TTp+BmK&Qrf%Pp-viC(Gbv#)5SH9vN@Xl+l+(BGVj#C$y7RN&}vFH8qsaK z_+ES#aG|W}p!E_3-jgyPxWqA!OZ~*Y0);=P5ECO-W4E1^Te2J0QcGx@{NJNjz}bJhsTF<~tzQQcEfH5_K*+?S`0*0Z<2gaTHu6aOQNxAHk{XsO-Y;ZmhPw4Bf1!1gr7!j4DxvBv z?RFnr=Gj}~E>R5{zXrLXv%UQ{Ne0ya-rJFKxwvrRzS{WTCZ0YB)Ba0yd$k4I9efCt zv`wCZU5PMCRPg7Oyq>7`#qYvGzc+U&k7~p;e=dj9Z=mLa*)EY49Amrj&r!Fr`o1ZA z>NkvqzUvkL0oK-=t&IL!U!>Vs%(W>$p%BY<%%TMOwF3&sK@h_+R zqj@3_zMw(~h|A{4zFMY@9A z(c#ChDf+ihOMd?xk{sm{?9|xDO+-e1g~KDDZ@Jv2aZI}pj__;j zwh>RUDkH~tO@y89gII7)ufIHJKZE$QexM;_u>$N5Qs`niqtKU52pEgrCJP2F+XI=` zuBnK@uknPmqTd{i-bhZ=l`M^Ckv=pzJ9AD+u6;Bkd778|8#F0E*^=OP`mr>TYm4~s zmCOb3f_xeOd?45|>Vdm_ffk3GHxzrf9N$NZsjnZp;*BP3859DVQ7;U- ze8RpS=m8&*Y~F3WA)qi734u~~AKcDo{G%kMciS4n9MI0<5kN3P^^U{hkcqO`nGbtW zs^hBiFukR9X8U2BPCbgWC)N7ue8<5Ofq59{T$eBhHq7?{PJOsBql%35B{WdJLc8RJSlm|!jViGJWMY#)nJ~c_uCRFr0NH=RLRUf+77QgPb7td+KLH}jaFAy#<(TPyzY&-Sl-rzMK=hZw zT5|IE12>J&?ZrcA_4A~tVoIUr8L%kdgul1bQo6e!SHDN#{>9+cwf>$?pt$rF?2h+? zPVlDcL<#bLIDU=w_Z74nx}Nlo6x^#Lq%q{IX634`kEaJ}g7ovHY@z+e`F57V*PB*p zXp#Yz*i&!r>8eO?)GIfp_5~*t-e?wV)xw~!b8+Nx7)YX%&(z4n3OW7OmYn!szw-?U zL0DmJ>cf%MZk=afV5eG2N5Z33#!@3*n@g6pq`xuljB*$36BlH`zM)6^hLP^gi_)!t z$y5{ycJJ4u_MPjYEbmKnT)^_`J-92LWB{t2J}PA(w_itbTuh7uolTwQd!Qwg5#Xiz zeKFi9y$Q#r98`!hBzhQ%}t>xE}dezJO?~O!N-|mSb$3&Fda=HsHHUIWsDn z%}I9)t8&gS09*$+T|7PjIby0$liRzXo#@bVC|gn_g=fLuuoSD&x^Uq55{UT;WHryS zN8CM2R+8f(VZykqNpY2~xFn7M{dWB`W0jcyIF+vU;r{YES!tC=OVPl_*#s%nn;)A| zbG$s|^oN;qqTRcVhPa&;$JjvSY)28IR{nW?Qpy!mHjZas3Fa{Ma%JDDGkNva*NOA+ z)XsXxL&v-IR);P&bzoHJpLo)9lm~M@8{ESmWcLEZwn5?nlhWrXMUr$z%X?lGsG3VJBB`19v3GPaPLDOijv7r|=%lhHf#9>5D z0w!$Y`;!+*!1dMkDWT^E52PyTx3KTMB($2s3rVU(qLACQEgz1nVEalBjwr?YaUpt4) z;COr*tKhlH?;a{WIV#_9jX2LdUi`Vgc%`251LI#9$&P@03WXLVOT5{V{9B0^Nxixz z-k|I!NM9FG`5*~d6_;Z>4aMpoq3JI2pX!o{bE);&<3cS>_g!ugD7mg}#If&~amZ*T zk%pPA!|kO*+$Fd&iD`vO1y4Yw8MruJqzAt)l8}QnD!WO(P@!5q4C2vr-vw*# zg08Nlyyr08KDPnf6Tn4Mc|QUk-|U#KUt)JKCkq7es3?}_9EBUx zorSK#BF!%4r=RO#39EFYL4K3u&ux@5) z_RA$Z5|rdQQMR!j*BR3M=)jo!p@%yJTVWOZBmqvDWaJB;_=X?Qr(cN@jq?2GPARL* z;*eSKz9*1|cKVwG!B5pr;ZV_(U#Ab7+GSlDj|k>QNKhmX+3eb$VYw!nN{)IIz}?-u z-Lfj$NvxCrMdoC)Pqn{oL;PG$Pmu-9GH@08g;1jaA9%H7*zYPt41ZdHF9e|i&lWL2 zi|~V#pBy1tduvG({2qf@$jU1``pEcL>KpmTOR-SZ6n>kb@=Eun+2orfsW6@Ibc9>T z*TIE}>jqwEeL+vGejM>j@0$z~sN~k6pM{eg1PLq11l7Kn-(t}ti)ef;B?ya-=3vp? zviLd-`R7+xeJ~2J&IPTs1q#BF&Z^(S2j2nyA@_8Y+5|UJaz5^+WaQcxT7M}`5s3-p zoV|ZZ{s|1F{P)20?3BeY7w?cNEBU#7FwK@)U6geq=xtd}zx?C(bU_9Ili}hvVi?8h z_#YAr;&@?IJ^WBiW0&NhlQAsF&reQ5#3(4cUO2;k$!FCLjzK>Rt4*|>gdZ7jW` z_oh4EJlgOJy=@S_cLuaJE)`H`e2dt9hXVeoDFYWd1Ju>+e;v0b|H?C@K-m{qs#}qu zzOM8ICOgl~^<>e1cbq8DQK9@sX!~i5mhz25Gy?ziyCyE!6Vv!8c@5C_Ae4Z1<;fBp z1EpJ)gm3gL>=OZ2MURkp`v^oNE*&&tnr?Zq084~qwBZYDYp4K#%JzIm^+;*0TR5f< zQeHgSOm_4U68rqTYeW6pDxkpr9n;8K^ zbyf?zuwVO^qi!zlY9f2pdGD$dDY6WpLrJt1%7V zOX^G#;I~)Z&LD8=%y}dAQt?(Ysz}!z1?FZ*YNa&45LOMIF&}9o;nUX8Qz&SDKYpFs zLbrYe46=$e=*22hx5JHC8a<;YO=FSq$qvW8uE9f>dkQR?`E#Zo_I>a@6W{k;Fk|!z zuG-DkGPz9ZN-%B>Ia6S!Xe&7di3|>1vruE)k19uhC$_egJ2W5r88Rd@5r@C+rbX*L zomCr?w3~=Vc;CLN-^tAcA}iAZr#8C*|0U;$KDa@z$I* zHj~fsmn6E+9YebZse3%-^YdS9Nbxs-&2-VdQCCea$qp$PcE{?to87Ztnk7-dTF;re z`bD|!fFB~NptPI&hL6|5X9})d3ssbwjj;!O(q_T!2XSQh;>6!(5Pa46Wys?XZ%`m{ zC?vutt2MfH&q=CEL#9Kz^f&;1t5ddIJc8{Yg~GX1TA3qqGq4{pnfz=D`$R1&H2`aGdGnUZ^{#Dv-VL*^~33b#Bi4=Ns{I9lTA}EMRQs@hW|wvP6#)=@LcFeWwS#x1&}SE*Z*EaZfYI4P7P= z1wP6r*;Ghhyn#vh-~IpLHlxu-S+sHp{sBQj-ja04r%qXvCLurB3h4o}PIrmprYfQy z>BR)G+riPFXZt%TNr`nVdJ)4URVGp+AxWP%Ov7D4nRZ$VCOiOpViQ9!?wM`zq~hp| z9*dz5XJz*MyO4oznPyt+>Dh^nw<=$(_T$)(t60e0=so zs+BG>6$;mNj~vw(8uxFK+fs|py?0CBDmrAV+B#3znQfp;1ZhEXOZ#5}qebm?7+)V! zyVKSy_)7J$!NTBhw!$iKgc9 zqN1_2AB>!La9zrF`siHf_O43V__V$7ADO#|%cWqJugTyiyda(^OOtC)tenp#reFUk zQe#eBedan64%GZu;5>XYHn#)uBXd`Iv6XVCVLXb9odU`lqQnv&=6^+*8#QQ+iBajs z$*fsFD5G%i`nJBRd^LAUwD^<7(U~k%uS}CB{B3_<5<|~IoQtR7mXTBGCr(NNQ=dfG z$PAp3ff=!vXawWVA6avUwyE*Uva`)y^FZ7`_I`#jxQ(c?ufbV!jh|Um%OKrEQW75b{C-?ED2l(heb-Nd zT)!{D4O8-NZxv)g%GW1LiC;hqG?Z`|Kmok;E2)=T<~(}kv^IJM6Hgj938DPrB~>K+ zibbp6g=`Wy(Dz=$`;=d`4>+i8V6CS5BZhGpZ?STwP=}I5IivskkpV^u2}(~axKv3Y zI^@P9wIKf4FrXq%k)9O1fb)J?^$RQW@jn9=qWFTZeSe*HL(VOc@&B~;ioDCaw;}Et zQ~NMx+lp}!Wy{2Nd?3CqAf#Z-mTpE{=uw=8Gl!$ zN6Fqt$td_u2lD|PG8y&&7R{d%?OO5!^Qc2R$d5jj&Wc6?=~q`9)>A39Sl*{MOl6d7 zFJzUnkJ{*MA)-x2-^Wp>^gqN$4oB5DX$og-m^W_~22OXiio>UZUgVHs;+MI(L3&X% zBDcvih=0bJb{}h zE#FqYd1z5oeDiRL)1O93SeSNMQ z>B`tXP|%%b$&1D>(;lWCAQZY$GE?aAg|_adC!sJsT&DA^a=t$rS&As z{avQ!>cOqv63&)U%=Hadj<2L_@PU-92`A-n-g&SP~jvn~Z= ziC8I2#DiBVGzlMjdg+-pU+XzizHfo~{eWJ)KJM3z17hwsIvrsf_dO|qU(wYDPceP0 zq?R7ffQAW8msmbK)W3Pi6?&V?5a9L3nVC74n=McK=^j*66tMI*An7&4!n$gRTNy2M z7d8+$e2&%!QQ+p?_^7_z5b=-j*L6RIPHTi*GcmV}-fAJ);oct~w81#JyC?Phv?R`) zKHPJjVa{EB5mPW@L5F>Uv3O)FuP3vK5?6GO_UoOxcS#yfG*S+zylvR^N3%3Tb|4Y9 z!N94c?$3{w zqmv`1ncy~79JM+i(Ta2sYBm{8Xp-KbwzS1LDy(}_LhdLh0mr59<=KDH#E)Q*rWb&9 z#q1iweGM}gDpq=!K6||=yQV4`gFdZ_&TD+_Q2=MLiCkRxs!~}?4xOhiAOG?`&@p6T z6HTcWkxef*(kctnG)F8!IYHg<;9^N;a_s}Xg&&EHf1P6L@$k{I_~F0_wuDY>Mf95% zM?L|W!D#H+;j~?5c`PMup>(nc^Q{NStit(@Ac3uh4N4|GAcTJ}^n%spRolQfws#>C z#bkHvghYI^0*UuyL_y4G2D&ls`v{mfdmzqj{Qx@n*XcRe@wKm~znp~f)4ZB4t6jZZ zQ^vj%Nf9TVn4Fj&)~B8ZQ6cgS!&^F=bbCO?*8qp-voRyqO#--iNt#tfwcJ9QK}1|K zfVzet&>trfVF;l&rt9(H$~4X(clz zaNP=YgeECu|JDo>Rw0o+J-4Tc%c=o0#%p;g7(g^gA&IUjB#2U%-lpH)aL&0}Cx+^E zT9PM`_S**Kw^o9gPC55I{VqwY zEIfq-0)FcU-TKoa&Bj)$uQbQ~OK73$%I#=%eF=jBgBtTQhk+f@8k>c25JU4D-3YBJ z9_IdDm?6MO+!wbzUz17G$(^Z zrP{#7Uik^kfE;xTlVx&yGoxPQOk!2ivYN1{bJEV9|( z4;N@VodWxuZo%H+Dkv&zTD`yi%`{%5!rp(^PY^(@V^Qjqi?^F^kOYT{Ch0bJ`Dk~= zKHHRA(VNq9cUoi;&gZ|5kCd*}086~~a**Zl))gLWC9p)5p#;|`ccF93PkOX}Uo{Jdn66O`l zr(nE9jU*PfL}@pjq*SpW)P65Z!T;VM=1)s0%YrqFign-h&^69=fqKfzdYi&c4iEKZnZ@oKMDk?=G@vnedv&`s&Y3)q>ss=B z481kt`_EoCORu*X!wDCr@yiGM0I&xg1&EFrRvuqOYKoTlx!HbO= zDyX1rIQZPz;K4lO0O+rNnR=sXwyf!6=OrfKf^G;hu7ghLem(F9(KS6`wmwJRR0qL~ zNLMrhYtb(7@JA%MHr&z$&V8`HvKM`pB!{kx!|9^e3dSA5;rQX0Wtii0LBiG?K$Wj9xVLX&JY;Cu@$8)n*!&Gl7k#iy$PvhDy+tx< zHSY3}=`s5Ja9Dgic%pgA)E+;xACeABHT=npO;#gMTy_S8>(gKoaOyBd@bEA z%MBhU0l1rtj^+d2>Cl4zeZ-r50D8CgaM9up@9WS|U%A48ZRE^DFP`(t;4Q6p7m2LD zq-A1j5reKsb;4eD(CRWNdzFG~g2CtSf2Z<>c(=0ZAh>ERK@#%G{Yk5J6-)bP!Ci=O|G0cUAbuJSJ_;r!T*-vyzwRdM{=)7 z=^Txa0&M!k8>+%a^*Q!Vm$YcbhLPsn>XC)T3-Nd)c@384RI$ip8tAl%Esb40CCo zUXnF&=-w`T>RnunXz@pYXj;>gB!5yQJqp$i3}e*#d@);1ZcRKbUZiFx@VVZ8^Q%98Gxha9 zd8;s1kZ7t?w*xoW(fev5;6&kt|J^Ct3qN5ZOm;KLIVT@&4{ z@$*sp*Wmw>SpGJ1OVYl2Wo{Bq-LUKB6u$+2Mfyd$x~S}fIkzyEDn9chaUPN*nf6&O z!bsA)a8nve5lVFv(hBUk<@`dWT!eZG0LXKO;VRrwFgvC?c12Ljn!S8suzq=ax4};faBo zacKHVxnazodXrIy6@6|7mfopLUW9*%O8h*66yQqHUq-kk^aXw)?Z}7rQ}YNZn*!+6 zy#nY?Ij^M1z(5vZ*`I>fCmRh98QcbmAbR5bs?+h%qoPV-{o0a|>dvJ$W@>ltYAcuAUO;kG}_!kCSymzViiK zu*zA@b&mRsj>| zLMgK%+_L^3Q)d+x)%&(>Qo2RDyQLdMkWP_qkZvR;hVBNXLFw-9?vO^hLAn`WnDx%@ zzw>=NY|ReGEO^#)-{*B+yZT`tL_KbDE&H^&JE|1)cM^jH)CT`aC{wW^70DB=-jUE> zYvtMUOXf4Oio^G=r<7NyC|HDtLAJL^{`eVw_b0h>QDvL>><=cCXO0*0N#CK+qqm@w$C?Ol72I2bDf^bI=`8$=U`H{_}0$rpky6 z#BU6L_i0yhS8aekVXeN;z|9O6DBoBYxw->3U}xIp?Fh)5&JHIW%kvLN4Ga2h!&+43lq5gbnc0`SN!RmjF)E2C-f*L)N<>mK;-15ej;wHFv$Y_zV zB`Ai>8YL-laOVA!++Rof+&-4(%i_z=y`06D8u95>J#Q?5ds8$M<2T4?^c*6EIY12@oB|ne)LzVw5sy2u0(2VTnT)F$*-d zrK%XAeu{>*Lu6*zu;z|X&*odOwfkY|b!-)G_T?5O4bx14I$zo6?I(|WvG9hli-KMRHKIfSy6ySWA{NQL&?;^K{F+bIT( zI7GWlE#^sYUo>Ub$bI`}!S5$H{ySCbC!#H$NCot_>c<)TgU#9OAgSvc%ZNG4cDH=>Jj#(1ZM zbYF7;ICeadSyYA7(|M*7c^L z24p=ESxO<`IjCe9Ajm|t!}|pC@`r4lhfGZs0bakMCX^a$0GW8jvX_7fmyR{*plq=H z-FgofnMW1(yMz;w$SU~tP%ChMnMFO5X#A1KShrHISPZwgE(!crvgD8^#!JWS=ABbW zRagreoU3#I_ji(xG@5$(CSrNyFP~xxML!atMpzHCCc3hrXR@!Zi<#~@cgKE!LFC-(x_&|3BbE@3N}q#Ky=;SNa7 zJeLa!3CMa|dTO`RACWq91l*ScgT0rQ>Ru}9k6hf4%#zyNUO(DciiTb#ADgU#b&G~j zc6SQ$kCVl%0SmK>BFaALgeUZC31jW~BnCn%<8i9mNA`_G@D5j!73Csgs!oYut=9Us za!M9@sKX?iBzZT;%M&_qZE!#LuJcZM;V97Tmu@`9n=lH4(L9`)Ez1AIPZb}VeXQD}P3;oLrR>~`f z4^)D8W@{t)$a(DcF>4NhJHivtywYQ_o$vN#1?C@AkpUm;|4l_+Yk2ap0fK|Qazy6K zPxO7C2VdUa?+a^nlQecJ4vo-;Tn~6pKnLcKk`SJepE4?I@V}?~M(3n@Fs^Qfk;IQh zPbn^dA}OU3>=z8se|@0!2yWRL5A5*3ISn4UWd5Sr)$h9JvyRd?!=Q#vVFIg-pm_iu zsM}-K+CE>@!^b{o9stu;T2SW;*zkGx41h)kpMg15uie$iYbk`7D{u9F5zG~AvK;)K zd2Im0K^SA#&{~D(*y#Xd^9QFH)_(`hh|q3O;7EI2eZWA$pDNL%EdRc0E=Tq<2^tMu zhLJ;Bv6jZWBJ82XDk*_C5C?-_oH=*2Em(~P?2l2fIB*58(VVZ02l{mJd52R;&f6ho zCpTnRN*l#D00KNb@Bpy%YLAbM6t16gkS$IasyH!aw-Eq6pG6a=sRbsp$~FP~vz{px zQZmgie^GmR95#|~0$G|d!aisGfY3!!Y75@{1TyibZ$>7_!g4G=4nz&wAv==qjr@%B zq{}84;GR`k2)M!H{exuawvo$b_X79g@-4s0{oT7ejc!ufBb-1^9abSc*Nk#(Z~evQ zas*k#`bfm-g^Q(!;$nf#wUy14trcT_40wn9Ko+zNS3Htkr+lPCbPDfL8wCoy@{$*$ zzl&2X=D|h5(n*LyLmMMBpRcA%o3HnOUmGvw2xMHlU_Uvp#EAU;Ftq_Ldj<{)YUYEyT5&D1aN3qI_a#fy^%-&UH~lm?c4 zTOl!~J2Cy_p6TbcLEl)wrQn}<5+g)5Dw?Ek%Yuaaxjal>4Td9;5U#Z=Qr5Q=5DwXkdnP^5?KlcM-eP5nQ^-U46Fp)<8rajms_xd;1X1+q{^BN&Umh7J+Yv zr;eG|ft;g#WASF=|C2s6*pjO_g}K`y@nzUkKg4r~8xnIKX$5Xc^@Kt=s{X z_gG%MtJm{<8ZH_QNooGTi^xm`zd}j29*@$qq?{?uO@4)CS!@-)qJy5&KD=(s}ZI6bkseZpbo-BYg|CeTYxSh|xL7D&s% z1gc0bH}-#|p}%IKQyJPxvcN|cT)jiY4G=0WVKfczpe4&?EypM6F4!Be(M_(8eCZl% z3~}j1EY%DR^M9+AKK@?bFug;ZKA^(#0k)Tni3-K!OniLAgv=NibiX>km|FX?07Oi{ zIV}8^KeL7$$6)7D>417^BpX6At`MVDCJ>DiK<2D#|Dv&`wWq)KA>a#^1Lv>heRan! zY47D(@pK) z2*irUmEG)T=caAAc8lpu-&GSg&`Ejkl+c)OhqXrx57*2GSoR#%h0mOLX++S{--dKr z%m6%X>{|pDL~kfF{wdkHjSj9%MnThuzmfmqW(X;yI?z%T<1L6fyZHVknCkZjOl^Kq z^IvN2en|V_rPrjm9}_MEeqqwz%U7ZZXC0d(7#2sgZV?HHx%CLS(%ND&Dx|0U*`XI& zXu;EIPhp#_Q$;rUuVzR+LNk!*^MsyC(!?caOqn>j0g6&^Fqb)S>Aos6tv4tsJvk$T zWjgod+=CCG2=~DfGp&8XT(n*c1Pt-@l*UlVOVz*5AGw_l9|iy?@WBwf)x-Ko-L<0F(MMjK6bFZcws zv=2M7h$Q~6x>wIg2IFuLl}25jJ4uhw%LBBp3j~qx(4(h_lT}&xL zMjgjbO?hVwcE8meSe=^7*O;|`e?X^?wEUnhHn_vvsEo7_JG`b?2j?A`loAZ+u=nqZ z)Bq8`m7=Y$0EY|b3#}_yh6@H%*Fj+f%{c%cDd=kI9r;@geIs`~kFF`>&9L?CCi#YD z!=G*e=BBkgy|NsO*R}l(SG180o_0zm6vkly4Bg79IRkWApC1ry0l7 z^Cx5rLkxh?q<<1{qg5h)s8Z_!mVVN#-`f4MK1STRa z6%ILiR0jyNT>6oj_+k8*6H?7AWKKZoty8+KxjuGY%t+M|cT)C_F@Q%IuHX;@`M61W zSrZ?Uqz;=Y8{blZSvxQ1g!SHCoy`8V0Q%|LUQo|oFZ_irj$El`xr?I148zNNv8^7- zwL;l1j5mBD*!rclCjH5~Ropy|XBOW6!E4%ZNxx6Q9@K-k#&4jb4}a0OP{O6@JGa3t zG8MR-s}0KYz^r9l97JnxIvR*|ZNXytQC0Nh-v*qr2s&OI@jc{q!CoboHt_*a-vd?3 zi^3As^lqk;X5M%)udr0gX)SfgG=u+n8=|WUWf)oP%coq^LnEL?Pa}ExY3yk$3k8KA zQZsSivwiO@yD$bv%zUrO!Gg#b@M_b`Jt@jovGc70;I#pa5i_yjO1I{@P2=(@;1ur< zkm8_7Ju6(d1lZM|&~5$i-RXMU^=pE! zWMjg#Dpvw<`uX+AaRCcuR%H%vSG4v|V@@^fS37)5tT_e$)pnS(SL9AM^^U9iHJAoz ziT#0ENN%1?u`5_YW1uLMS~nCPfw^0)K1n1bgg+y>cnRK4(JqJz*HQXJGocSww#p4R_$l)RIce$^kfomxmrz(Df@>jQ9J^k3F*i()qFtS0kqrmbln)sr>jp-#z7!)^CXU%b-q+qE<~)U{)a z_lv{J)3);RX^bB`%M>hTX8$1DZG9QsopCj1Ef6hAJqjq2E-~_shy59prsJlEED2|a zN!YVXg>RMeekMKH#5|fk6;-FUpN_M8MH^lyMVz#O%M_G%=#g!qo`1m|zby^*&K8mB z^!EH_tP2zf{rsopHzc&h{&6!?S#btLi57Nh()TAG}6UK-f*oNyb2>{?I}DD`J`T+0p?;7{C`J2BvY zFGaCr^E&ZodR(g`!vZdJ+Jeuftqy^)$=uQ-is}wS0@yN3Mc(f{d{kh{^?L)O-g+90 zW`V~?*z3{NR-tzSjLCV9R+=&`&D%Wg8`6n@* zWSY%!$(B_bxWy>g!kvD6Sx|`c!ysp`lP)Z1f&%JPj4J4Gv`N00bBph)wL5oWS@2ec z$0~MPxt9j1TI0}xm|*S$44;oMqFEKS7@h;$;${&#%7ofp9h=@ZR`OyC8@RZC^gK3= za#;yxZ61V&NBO=HjU|$lL1MuQACQGmdJfAF-E-OFuR5TRT~K(eORu7cl?uN@#D8Zo zNBmV-I11A{QXe4#B=yom27bbX;Jk=xL3+9@AtUB9ASdvp7x_aGavnvaqU<~G9g=1! ziCRiZh@T?>FIIK?EVSQ3+`TS=wKZ@AWD_1BA>?T&rxXbr3v^%2-3_Kl!Tlkn)OI zUu|Fi`-?LoS!$v>XTG4xLvmZo((Ze4-0QXdsxqhE5`_6B$uyk6!d;|IgADU>VA^4& z12)+>z?&zdjkA_v@Xk0O)p9~!fv3_5(=GWk7N+ZnDmG}w6BKbgJss$a?&PO6s`Hz1 zBb{~HS@6uzlN>_mv(25qc9G8Y4I@h$dgRJIIp>t!Vn)20UY6jVt0LM*|J2iRFb3qD zPgz195e`7}k-?a~mB_j@Za)O!X$I=+s!DP3lDV(|fxjU3cLQ~CcMo`R4`#V(zHRNo z=bL@Rl=F^iA~&N#5wg= zK}b~m@?7vp=S*F?ALd)hMWWySXP3!Y_3C+W}2xRLl60mxf4vL5Su#zNJd`lHvjr3fe4(ch5l!98BtDV|DJ$0kCYog-_$zWlryCgweCeI>o7CC?5!AfDlB0hr< z(XF@T|C0C!b=`<7uNy@BFnt7*gqEQ4dbHZ|r8vmFU6bM2hE(#7Dx{}L?cKgGRg33{id@|$iRabU{_L9Jk5dCcPCp$zfk;VKZ} zQ!^FBG}8w(`lug(R##0f0E~5*(q(l?QdND2OmP@1#(QCEN!U;ckqIr;RV@vqyk@G%s04*NxB{CbT{wAzc5?2&e^)Zxn7GGiJ7$i7Lf7~O19&QAWDZ) zWRVBg6e8lBxXi5ZH+>aeF2Pi|zAeRmzNuM9}jW%F`2*HqQ!RXiFP4VFTg zqt#$LxH^9x>$tz&dmNFZ%r&-a@H6gpjS1HLqGDl(;n$MXWmLl_3i&vE=<}Xl5Oy5* z#Dj4#DmyrIS#F;J0UTDan!(EpEHyPW3|fe@xynu=^Po!SCo(ns8j#$4zU|lD`38md zdCzC>hHUq+=-r}QA!)<#l#+?Zzk6%!oIHzHlZ51e<ltr1VrV)`3l4s z0Q_|5C4tU6Jm3r?RW+WkDJ+&<1$>z5hN!{MpS&fl5_$QtNXUq)$(m*3LQQp0O&G{8 z-s{BO(T=B6`$=mZJuL=Q;aONl_ALH;83x1GA?KVXvQqx4`;)rK784%IXZ4n6-YJtqdY~>ZDrMOwadGDe^;o*%l_Ri{=?FGJ9Pf~ z<#8)7_tm}J$*@3@QK>69OkBY8RkJu2=ZL99j)@9;tLAq{Bu-)u^TD?t3pTciknC$J zg;`liOW$_5#3=Bk7UZZZgaJB0`zm=6N&6Y?>lHIih-XOYN%`=Ii2&39JZFE}x+~}H zGCJTs>(gZRmf)Acv?OJS@(G{tsWcD4{|v1TlM=Um^?tLbk|$oWA98pcQCDPuODhK8 z+oNe2z~%C)13UZQB-j`IVUccPw-+tn6!GU(XcEGUtwxwEj%QRY&kGSKYz;+Ua4Ax?wns1@pLmfv8PJfW;uri{P26|E|rZ zkOUHq7(gYqTHsbQ6hVEB&*Thp$vwi|cOax+GNe9iq@EXB68pjs_HnWfif5{PPvlT2 zOam`@4m(EM41|G8XRc+Se+lFv!}k6U+|xVmvG}Fe?XEP92dh74)O;%$U)q8AUXybZ+zE3~ z%|LWt+GZf+TFOSXvPRdIxsW^|3gjVuw#1bmlcgM%)^IR`PPX!W~WM|UcV1sTb3 z0$ERvNQnosM+JKLNvEq&(Oz7!q&Od$sx33bdTH3#&;SPhVzE6nrf-N_q5P++WPRBB z&xiIK3bf-LPz2Um(SI)=KEM)6iX>K8F^N$_%wZyfd9!&B!bF0C?P+9lwEQyc?cez1 zgX`<%>iXXz!uQZ*JM`p~dKZ36TGR5=$FIle38XXk5PiHqlL+HiIy!px z0cbYtfBx)t*(7FhDO%^6rMt=uOH>pvO%xVU6OR^wc>V`IV|i;)UOiFSXjtR1WkiX0 z|{z1rsD zB>jr+uwCX@O}6tFlHOW=6eA+Pwtz$Md$bL&psBrMcpF<52PWALj#K9Pz(Bv@@UQnJ z`=$r(9&V-C!}xK27ifO;WPJuUr+J_j|AUS=kvsK|Ub}G+`{l9n89&>BuAcn9FUl(W zqEb_=v>E>4$EIQSYL;eWn+?Z;mo5vR@4LP~DlmI*$6ETQ$WS*#o5jZQ zoG|sK+}wt{Hne`8*gd(fTXsW%(y3#JzYX@P!`_u}i|^K|@`$fW?Sb#@(cm&galwxo zMdh)uj7O}tI`}(bmF@G;tZ5)tQw0_n5qQ;?cqzHv8+er5){`fU0rmQfUa4w5DkPv_ zebirY3B z#Z0hWMzZ)B(Q{N=EPfYJ?nnE^xBngf0rTz!O9h?gmd5}CCco{VQp0oHXN_H0ApUt6 z1MVwDbx!u}y$ssz&{MwR@T6FrC5Z9Dg6$F6ab?7pdITb_JD(&|V60gS42RIZ0tu#p zFaP(#lX*vF7UeMqS~(~25Ds!9jB<8;jGO1QIpsRO%wg5EF*j#Aa^hq(iu}xlhqmlM zv6m9jiR*X&ma1}43tr4XU1FU7EAA2llO^7xFImIrFX1I%^T8=gP(7SJoB9po9>@VU zkrGIIl7yYjKkyjdFn9j?LSJS0+Ilp2Kzo_p)@HxuH~TB$y8>L0_x%(JhFJgA??>NQ zO2vsW+tT)q7bH{-&i3#A%ZNx-Iv}Yn4UW&iS@Tw|A$b6-cEV8;A))0?JgaRE#CMy3 zFR?S{Qr`%OF+iQY<#z4~KEg5Wf*hW}YNBf$N{|*9n}3B^r z0RPGZLc|MNQ{p;vW`suYV6Fz%Jdi`2vpTw=J^r-~`yivQkOcnxzSR2E*?ZQ@nky_6 zSG9WUt2&2HYKPvg0v&7knajrI{s9~&GcHp4*O54ehYj8;0DZ(#bnIdTEjS9=gAP4f z`fv4R;rgGHT(Y>7yV(6I?~`o8=BWEW+KdssX}ZbPOc=`qHC;TwktA>>FC z9?3g;wm(5yFQ5{m*zf^%9rP{f&z??sc0kSQf6iK%We54A|;@&-YX#E8b^^KEfjS(pk=YSe)tW^$zxM1?gE@%#3)o{>Q z92rHIeM+hbS5Iw=^Rv)=AypuE7waIOE1;jkd)NZwr6hy&f7GN=?GU|I~&8@3wTalRvQwuyp% zAx6;Z~s zsVt*mgt)4pM<)znzG3)Ev)B7lYzA@+`-CYyZlE`t5WS{r#L$0Px&_+5Lutp+o{-$> zj1r+9kBSjk-ftt@QJ5LG?M=AW%d#;i*rt~jpio};J(7&@jfRCFWX}10ArWgx9#~UX z47<7^03Hpiyd7!58gHr^BKCRY`l9?pdawWZt`0KRHph#tQ~e2f?IckMtY>Zwi)!cc;G|+~yCF5R!QjFb3_+7X|t;>MI|p49s9Rx0Ej&hOG%N2|a`lYi}09 z^f}GcBqlS5cFC43llQ#;S<2rimt)j(ea6}5L#V6hHvc>|Nxz~S{u|mq4YCt&fq!vV zJa>);0~}OchcqL744hai*t>!Z%<|?wTd#O1H{}K24)_Mm#ni}kaiv{GokTcS zS5XA$>d^g$UY$i^AZSN$&aY%l3y0XZ4Qc^|6M)#o`ksS!xe`2mVv1*w!gbG@0U>bt zkPO(u?xa*2AN>&*7sh2G;N(ccL~yr$h8G`SsjF~VJ7BWb88BgqR)vVr`IKgA5ed? z%Smt2g`)fpT6ptpUoM~U(R_>HRp<+u0+U*}}iNyfvywuU{yH^ku_#C%!i_CxRO(mH3V1R`+e z!MiVu3=9=z-J@x{Cz%4;+S-I?&#hp*;u-fgJNop*l*R~s`eP#?ze{*WOk2Cy-qUFjp4iY9 z!F3H(H!See61}qz?QsDX#jZhiUtqj;dJ7`U zc6YO)STx-wc8UDFGVr^P?-Lk%TZ!VHF{Pdtz%bZF5xR^Im?fR|@Z>W>1@}+MZ+`F9 zi9x7P5j+)jk@jc4B=tH~kp?5Mkk=;6bY{EBAMonq+#Mdld=j*PT)cvXngL)S$`8KG zQhK@E{qMFC_85Xdy2$xF`Y&iq={jI?>``jbKN?6NQwIF%FsZ(XzoS_4UYFf)k~E&& zQA_ay^X89V)7)$M212!VDMVi}`{}NG54+Gz5Y1N5V`Aa3;BwhV`Wa@vH8F%T*$P7WJl40|Z$Q2v&{_(x=9~2bBZ$rRaOCoPM|VE3 z1V|>N+I*A{qUIwudQ4G`JdDp3Q6ubo9;AAEV7bJy=*B3PAQ*D2DMndm8?w^-_V)^JKL{Dx_Iw<@9QBn z;~ldepz{6{_wZHg0=-p{*kWJw!bE(Pd8}D=4i0tX5{l3KS`rNNp0bo7g=b7%EO}Pc z8@803`Oq)-9GBx!grz?w8!f+f6&9B@8n2Ru541(a#dl!k-{mH~o?K}Du-g~eWZs=- zu1R}Qm}QJ!dGoLOBCSQ9>a&coPU%IN)4VsgMt+-TOLvxgTRZ+vZi~UzkNXaOlNyIn zFU#}8?SVh6mq$7g~@&>5DgdEW9uF1nX%hv;CvWVNv?X&@9k9HU+#U+kF(U5o&a*+Z6Vva zxo;TKWr!HGi;JywZsfMCSIs7BzWJ-}m%;Yh9ZG^@# zQJ3K%F8cH3dZp_5$+;aGaxt}Km(xD$9VRk!yw&7yg=q7)nrSFUb_$cA_n8m6jU91^ zl`rAO1mP*+Yx(<&RiW zs+m^c`|#(xse4QD+J3srWpqw${q$W98Gn*iLrif;QC}z$ukN139)_!p16f}Aw8aZ& z$6D4!(ImrWX$^O8-Lb10cb@ zxFJUcCzS9l)T-EvX1%BEjD;>s8)Xk|>%{jjO@|p$o+cI+PcqLwi-QOW zg6p6AnVnko247n>wQB_UhnCPzSdIAj2{E%QHJ1q$@%a~Og3nLZt2$Q4QuBq!W7un= z^^dAWl43jbxHtMX){Z59ex-YCUd6uQ)}}JtbSYPld7K8`zag3nKg!8r-Kkm>y|2$M zu60S(xm+Mm&$JRZtOg+Ihy9LY-<`S(Zkx*!_;eX}-hJxqC~lYGm|P9Wm+xAgE;5jw zT#K2<&JMFvj<8U4JoD#~J#_h1W&f)i_Siu+Rg(>-&Sm*?D)R=tHTYIORiu%f#dz0v ze#sHFU{z!s6By=;_o^(j54^A4Tgz5Sl@ z_W1m~aybO6Y}QG`p100{gHYIV<94XXw_?^bpQ<#z_7N_aiceg9RzO2YL3KeKdw~hW8eP_NLl@^za4nW;~br^k7l?``weO@$&GP z_jIJWL>ML-ZJK&vE_e*a2e6Fw7f$V1Y?ly5zk!2QLG{B#l15tf2s=1aZoUfS@0wfH z>E*XhTJVz{{3%FAyqkXN%aErJX{@*KT)>%0d8}}C*DVi zJj~~o3YBWn7SAPzbk%6lx1CVtw-P2SiwPQGLW&Nh8_*)6Ac;r$?Q14q$efw0^ z__UxR6Pmekht&%?h{*rr57Gt6aDf9F^cg-x0g}g@u?Zjm;@1rt)w-T~By&RPL)p4h zz|$iy9rE@d?pnm^h|=e@1YDzQlbA?UL{nisfM``@s|(U+Zcrn0t4u$&^y$hMcF&WV zC5ak(mQcyNaQ~T#&7`x)=L-I?v7FV+2BFd>1TUF?3FG5&YUirX1|GEUKlwh6&S>1? ze}_K%|7mY9?l?rkRHMfEa<0-%7xLxDI2g5Qu4m^xLR^Q=Jjh!zVa`dQl-a9x!>fau z!roU0%k*AxDzUuc9{I}p(}-5d*)vLQyxq-93B~IN?O3i4Q=4{cvD(4l9NWyA$m{1E&5(=0Zo*7PG}{QXH8L`E8>6Eziq% zSdT1Djpu)NG+Shg?p2aw^GA4P*2GmI)L`#>XyXVq?VeX_bZ#sv)^^CEd6uZW-Ly>i z_Rx&DSjd&W9F`C6Kug}PuFt+aRs^9Md|o&kacc2OgX%8A1t&{jv77Q0+!j!DkJ5$cF9|4Mv4}c{kY@4MWNm( zWRl(sF&vAujgkJMJ`0zz&$VAqEYmUlKM|H0PF`@H z#TAVFDP}|A%^u?GIb|1E-#g-aLilli`sZ%`Nd47rK%6BIZKa2sikqecACYCaMxpT z9kv5+YWTXnJUpRUeTAO{PD=tLr+qX!5S5dG7nHSb2#S0lY^a?IaVFImr4%2&<;;f< zQKJ*{>wvzl6%e$WAj3VcLnKvHNG9GaC?8!E%vzZF&|Re(mWAX*x2sc>PfZk&VBo!k zt+JDuV)B0>Yz|Y$48sc>Q{VnM0O8}T&}%5cSkb~_e+y61i-b@Z@@9~&BSJaoUHTWx z3#q^Sy=YFWJS(;Eb>&-z;(wk~T2WPeg=RON@&)d3xn7?-3S7MGeRH1KIcTm+}h>BVbb&gI8;Xw2JBXbz>yz!xz z(2Lvzpu4AK5Tr{D&5LEm@PiN%y}9Q4L@nF@!y$4q;gh^uSYlSL-1bZ`2J?>`&BBT; z*+`QFz$4chV#ILmM8k~?A@_JpaTlt;s$@rc+EMz55p8n>pGmz@=K+R1Ueh)G7+fMN zy~twQ&whr2xv03XdqlfwN!J#+1N%HnaHE8cQLp=#F`Hh9wWaK{lJFy9UBF9cxMGbK z0%#|e9dx||Hs^?3F+qKV^yHZ2-nnKAdF^=TbVQJ`sU_`+3`?@R$L(LSoIxRz|PgZ5CYg3zLZcew9@SjlIcR3ihZ z1`vNz@?cu=Ufg~y?rS*pmwE{<3C898T5EZ?#Uo(3d#^o|yJ+7>7)mAJEGz3o=m)14 z26i=A+C~xGZ>EYk$9#%f!}b4#=_FP-Oh1i1r^h1zhl|hi$59m>M>X7i_d}Ip`dV~w zrqM%w=+I~()k-rzMrU5CtNyj&6@Txyf4W8nS*JUaB{T+wj!13KJsAtYxpu`cu$}{* zNo79HHo&&}04-msInG|kCck_0=XVNM1Gc<7q$?qQ7xCIt&%$CuSwP*qL73Y~pqGq{ zDB^@I^0DE8wA1pnhVZy*0$BRz?hb9y2QF2C5qg+4rsiUQ?9tGfWYQSxlCm>6`krXC z^$I*Ny3L%owgESO23NPNS9D*1ad5e_e9rQ1NvJLMUTO_55EQK&@}+J3dK*&nScB$I zSyO~;G~JB)fOK*&;5Mvj82_)gRLr~|Gu$__BT26>BuuYrLea!8wED&3x74q33xXz( z8=Uu7_6OYzFOq~Q&R9?)4j_U8mW~3Bu+Kp%`P>6rJcBLD{2Y!vFV}q3ml$91$%R67 zvzXwlnmrIo4c{=oPH8{?7RGtofl*I0?*_u%VRRKfIH!{S8DToX<63yk#){R;)$FbQ zi!&vvM|Tp&;dD>#rz+HHRJH%y#N+DTL1TD(9a>&=MxVFh;u7tcPf$=6icP)3#B4qK z!Qn$;(DhFzPiie}W`U<~4xS%tlOF{H`R_E|uj-B`je%D5O-(;5TvKHwNGLnR&WlOF)vnnPf{2rx-vUIngnChbDp zZKi;Z?f|ZXAsvyn)iAXt1HB>x1HLN;xn&>o!dRwaTC0rJAIrK!PM9)tVx4@9(H2T! zYUmJB0fW6|Od7AaXhfIDzexy`@K3+t-Xr=@@4htdh1KnPOZg-~9KGiX_TfAHwtM)X zDY#k8DmV>D*UsLbCd*|^!^>!Re84JqM@ifsaN|mnI-_SIq%{m5s(A;(ayYziH3(6d z&wqK+Yb^t$z2_p=TdFNSnT>$K#wyUD`AU^y)Bl`s6TNsZI}LE0p`Bh5)TObsX{les zge~T`=@nr;&i-co)ywumA}#}crn=e4>}luf8F$bL5o1|voZl%^73MCBxl2=8hU5DFt`gO zVJr?;^ukD5METRH03--K$d|m(tob~SSn%$fKIsP3&iGLh%c;6%WqYf&L5I~fa840U z>j)bk%;^-zoFFv3N}?|mSlsa(b$*KR4U&Xo)634JL#!%w?F1qRxXINCqTJrHW3bNs zId&52Y@@*8Eaet3n(pHb9HVpdkK$2M=7SeAZvJD8g)KBwER}EgNiY11^4_Y3rNWIq zb5bZHJLnMZh}fNv4wFP0Eg_8NDH|HppKy8rlG$gm-v^r49H*eCji<1^_dY05#*7VW z+L4M>Y~@9azhtrs$~|2r(ET11!64<#41^dLn{T4DI#E2DDdxE(fEv!W|EL-3;itV3 zRYoD$(lf1=qfv4l`LY{%$p|Sy+Ap5u&M^=>4F4e*BkJfC9km;@V)?}U2kyFm0tIKK z(o~YxK+<@ci46}i#NYg3V?Ea@)5BCa{YY?mukX_0c3}Iv%NiBVWJT63^vBhCGXAwm=Vf7*VzUz>C?(~ zLf&5lvKd~19PJj(7m#NQU@iZa59$j}OVh1jvW?ejj@ppm3eTGD&{}H`zzDN#X$fi= z{;_TI>#f$!z$Zoa`mdqyW90p+K9~*NQyo2yp}`%(_6gSdP?H*+y`D4AS2_GRACPe4 zZXNs`UZ~S-03)A^2)tjX&{q1G3BDH3$qlO!uCV@o2|35_--_siPHO$#R}Q$usj1FG zsC{Z{n!-08SH-{mrnuCM;Y7$BbfU0m{T+SK&v-PKt)Byb>?FZ9epiftNQiDw{>qFw zNX61grS&PN!0DMMTW(dv3-AX%5ybtm55&L#ArVN*+q+Mh+DV>o6JR98JM_}J9#D=K zWYPiz6r)M>u3_96FH7{w-@aXY$Wx)&GwvB#CcpDl2@xtqL$0 zT{w~_f99|!u z$_SLK3DwB#iD%+^i@e?xuFyPOPSK|4aLdligyHam88ZR1&S2B58;76|b}}wu!5VOg z+Q-c(Y^Xl$nE%kX551V!(1p#{Be`)-PW}eQYYFhx;Igyq8mOpUI_4}sbvd6vB4UHH zjg;uYb>Qrq=rY;L-;!YWa|`JD)9ySgzsmoW9=doNL=^0$0-o z1<=|)+056zk?(@=Z79~VdYk#Ye#Af@VFxCP*h)(c0Kgnq0`k)kzWigKcY! z?`t%Op(APTy4QyC+k3)*BzcK|{T)u@#nCC$XY7n$|DFe;OW0Vl;uuQ5`~hZ?jZAKk7(Mol(?LoX6dQzbDR2-9*-ZQi6@zxuY!g&azp^jPVT+DigLWr&Jqk!V)L8jmfe$6i}Z0$YgBJ(a9twC?{?DF=SPZ zj}g3j|s6X%Tr=6Q3Z`;(d;)G8LG z$O&r~>q`kdxJSerpTnaNh)&*{f-$$TjL-hs7p*#RFx*d>;#QXdbj1eV8?kZJu!h5w zL6B36s0VZ;;0|P%Z%$W>dCl+Uyl#+k)KUrTan()B21=Al5`-WC-;|R=>F&mR^zL!Q ziw3U>!8~}PNLg!bi46ymoIzpiCa+Zb4O~lXg<~W5)Gp7FOXeTd>D~f%QCqs9pnp8#I0&*b3(s#I7^-op9wh*E=ifi%)>uU-4&AOBO%N zjzB;m@I`#`uSQ@GetLhO=YoV-hCIhXpw;T#t$JIsb+7#Q;q|p03Ul`M;DyuCwtu8YL&fj{jUme6ZU_zm*jtA_WxJY~nXm zoK#``Gt*ySBNQtF%H{vo*MGZN`+s-0{uPNHtYK>@&8$kfSjqD(a3lD?8)f?DZT`S) z-#o3iTpUuJo&&;Qlzb+q+=dRFs4?)dyKGu+}1farVaYOK8X7xDv$=j9Z4iqpf3 zHQV0mf8pSIAI0;Ck_&Bsf*yrrwF^G@mb5mv0g zCU%_qGyNWV+pXt==i@!AhF0)vdke?TCc>ufa_SeVtXS3PZc0HYUKVhKq?Ioz>Ad(( zA}h9WjEs{k3a|JqPX!73JEtm7-A2JCkx==p+kqzW2m z#|=AeWA03tbwfXF&-CLD;5E8P1u+Lg2l`s@!)6jRD}78hq5c-Nv(u_yb+$mkZ8&&fXH?k7BEmHwuF>?qn3G1+U!ahd(`9fW??vHyUe z$Tp#(0Qh3o^#65Eb^OP(+Wyum^!*yFas;<0--f5*q2ji>JUA2#Qkw>I1h$vgC)pXc_(?jmWu>x z*B9Rbtae4@@U0W3nO*VJm$+{9UYG=tl#4jBR#qY%MI&;QT9!lwq~AiO&39w}p{rzr z`9H0mUjN^1)%M@+^nXmEpolmLr1NhZFd{^=DSr4B6uh0K0RS;TfP8w znoz7qJQ{WpBqxSyRgp_AFlv(Ey~r(fiJ_XA{RoGD5BCCcIL+i>G>_pMqFJ0+fzlA* zI?n6|wrjcKsng8Zk(^BlW{uJ@qxiOS$qalhLudf@P}X|$IH#AC1pY1Q|0n|&9Ovj+ zTd)4VbEen-H*5Z<-Rb`niN=z^c+iJ_;3;4mOAX)5K9TYYrL)MTuNdBz55p0?^_~*U zGqgQ+NsSY6$$*hR`E%(2zO6z4xII^}oz`tCmwB>YY~=Et*>G4P%wITisLX^fj%5g1 zrPyJVS*2ay;2JX<)>IYFDzp~q3f*1cSWC)8F zr9;G5V4wi+h!}{>2S_sc*nQCmp(78@6TsyDE<0KY!xXVudEk3@rfAROPZ555Zd-g% zQyT-8*tC{*5xo?hVB0*1#jqaP9>o#QkZIPjfy10e!ZhJ8C z@K(fX8wmmrN&GHOh#nfaJRCT_KqKPWkenzV9&2vm`9M$Nk!MeiB=;7|);J$yK%@4s zoE`IbW*5#aA93`9_~k24JN@WUb0?TvA)d)x!<$T&KDZR2Z!pIZKm(H)h2;n_+n@na z-Z?WL#t_$KHzKqURNk@)@lOLvX<5G}HzQ+2vkg6(7wCHS*eW};@c7tjp7h>H*2Msx z$oY=h0WLXDfn{%~Uhv!x{ zaO@odAS=FKf*Y019NU^QsR-w)k}t)2%f^HqEvL>Dp9NaN!t*T*62S5?A&8scE7dV- zfiT@hB%RHj87u7n+_zzdo>?IHQ{ep9ZE5E}W&+gv|IYURghVO%o0!1C{TKIN5so`v z2j`8MV{I_@Q^J-=bowye3y9y|dmaK%vPJJREdh20MS-a1M*0fbpEKJnxc66Z@rmbC zNN8p~W}fhFQ~L$n3_XwO32gU589fC5cV+f*09&S z?_Z4u$8oN9iM~MCb2zMj4PZO*TxTLJmYMTx|HZO{R{QUbNfvH^B?exlJ4)Ca*anO$uVXKu!1)Tn@ln|3QNl&Ed$aq6R3yD?_0Rp%>y& z2naSQ*FzYBV3=c`9;TMLQlM!gygDb*M}eO#r1#J07I-6d9jQF-(f$ParF;b$C-{mP zFB#2`d$wSwo*g6{66CUokAtL_5i+VgFiK~b$?nog0HXOcUlGcHvSm|;44%7m*)U93 zzN95XPqEif(6SxmFqraeM!qc@JXPj#CS5}Z zrW=dEUQWG+&lWbbl-xu_5PQ85{`F-TWY;O4}LxK_1f< z%P@X&V;XU>&D205>BO)XyO5n}mbd{RQD>H&z2ND6WMo4}SJ{K&>S0WP^aFQ!O0zAM zhN5XeX&;$@$Ht)j^W_H!Ur-B;|Ku5Y4kUmxwQc!4w-06msCf~NVYgo2d>VX$)_B4j zdK4^YhFh@4Ac!V;B;vz&#)=Xfw(SLmcwI6fD#2 z@Zb6Izf+C>wO#Z7?Qs9sB^nC>MhE|2Pn8oV#sQk?IP064+4Z!^;vVgt0s(1*JXgKqubuzZY4=XG{IAn`{qJu5CnQQ_2SeAI&5D$q#%IWiU~0_5#F^w4y%|T70QJa$ zf?w>N5UAi^EFqn2H@_}ER|24p;zKXBd z{{P|t2^8;`$SI$DzO8f?f;nghvyPF}WQdBluks>YUSE#Q^V`A2$Q+FaL-YMr|ATpc zb3MMiz8id&U^zJEV!TCjoU09@V_3d>LgDYC9a5v7CA-ASg?T@4n8j$MXEq)okOj|1 zFmDH=;m!4EV2*EY%%3km96|g{nHgLnI3wmxsE+`-;m7Ag!?&<{4x@&57sC@HvkR8{ zN{c{b77_eL=A<>AtN?wr{6v#N_KN{di-6kTv*+3p#KTMF%0x{IAK^?zL1my7&emZy zsN0*f|G4p8F!{fL|L^oviX~9*?+1;r5W6^4mTi{aB{3L4VR+1DrT6X1!C>RqA1AjK{C9*z=lkP%H$LW5<9>IEvg%WpeM$`mkq zPxjJ>to%s;2^Wq_bo8LLy&0vR%OwRNIYK9nUozReem*# z>MoFHq9hs8BxVNufJaDpAv}deSk9{yxH3UVd;9jx2DB$-Z1Qz@eOB12{#X5dYx{pY z>^rUgx5oe5t^QZf-rWBS%-_?g13Cf`*&!{wl67BluTb;GSL_i~gcYy8N~@^KD!$rD zy_6&akySc3tE+NWRKeung{&^eDOfX|M?79YEXh~!D-0nl^lMu*e7aDd6i^k$Vv2L<3D3H64BSm zsuD<++4ctGDF^p#ly|E8{@fd*S{zyqG#HOWtJ zqA^8GhryB!rv(-PoD(N>=wnSid0$kh3_uZK?Li^MyJOi|hiE0DSA^~m)1>O#2M=@V zMXZxxpiq7$JCFuE=a!1-0k1JuZ4osgfo?^;zj4f=JgAoD-)u^sh@-Imb>aAOfL69k zxQVtq6__z&^15TWk0@Bj5#fL);Lo>wCNDqvn3Guji`H}uj1uiL3+vt&9vcO~0Z8^b zswm+i#rNyGuTk-wfHiS3+QqCod+K0nEPmg31SA&>cknj=^ABJ^`7lIBW>Qnq4 zXYlU5Sx_x(Iw8Jno-_ zcoJ<gl0>H~!_KKkk1f0~Je< zMK_ODJ)EvU#0%YECsUn9b2X{3^n+e;A0xjhWgcuR38!TBFSE}x=15%*ym9~E!uRHj z(1f{}?*Pox|E*?Eum7p-zuo%(REY`)Abn@hcb4z7lc~V)+!*5fid{hI64dXe^)yxg zZ$eeCDvup1F&USS3&!4+(Tc;e$_zTV0`Y|CBaG_fa!&kN0}F~l;bkH73UaA<0qKJ$ zvIohR^%L<#4R3Eg4aesAkKw=^_D7@NZf-C1U#e4*XsP+F17w!?Eh=)pP7X9`rq^V zS0yUeKRc-{-GCPd#V&wwtfC3_rU=&62pyp=|22s!G(ZU`LP@3};^r2y zs6_6(*cH3b`9DA;ivOPIiBF?R-O zBy2#jvo~$tm52@{yT2+Z#JbITZO}i*^8U%v43MxJ9z%U1 zWrH8LpNcp1?S(~UUKG-ovtafL?CQibzH=*>)AiwGz)r>gtX(J?0 zvb8i*uQYelga$NeM!!|^rdrR|`aeDYlTG9Y=dmaNXs-U(`QLlJI{vde{huOHEeTXX zdlLi;aL3XY`~_RZ{w$H}nS7H<2mm{;`A1JKYzoCZ2yr6WRq`+n1swO(K<+3wyHTkW zxx4YU!*|9zEmifT4*A#mzfk;-D!kcJ!kWC~ZjhV*)lTC7b-LX;|7)-Dzqmv}_1tnM zDW)YxV}f6!Y_NTX{!3Ptu6)T=8%0i10F4Hfl5QFIFA+OjS=JeW=0!5gKP)t&<3jw1 z5GY$ieNgzJ^*;tKz^0%Dv6lVc?lpD$zf=2vcB}sr5)~=H^6NMq9O!)x6S;f-pOo&d zH1c`^%!es$3~w*5&sj^K`s4Foq88vtC12Q*oiL^zwu`_7DXp(_s?^Iu1+|L)ZOzn#Ya6^YVekD{^`kCgM!Y=ynPTpVAG57$xr_0c(1 zy&d6vBh2(PBl<2F+wWiX@O?bZLLhP0$G;!y{P%*1fk|Hq{F$*A@;{#G`QPoc+Wy?T8DviGegk#K!$pjQ&W+U)^X^jZ(#B!}gtUp7gtq8GLZ>YMT=<@p4 z{?+9Lxoa+m{VM}@FRD*SIK%Xt&u^~ZUw$yp``6=};ouq^Dwg|Kq(pY1?CrsE)hdTr zw4L?d-jtONiMIgI#}-#?xe4Y;$7LhN!R(Ryhx2^0KM(~{Wwy-URVwIz$Ql5amoJ__ zHPPY2{iYT1pE}K6SHpigtNA~6r~fl0DyzN?@iXziDbtcXet7kC2Q+Zy_kqlpTe%&q z2n4wHm&F%7j({Mw(UTs4Vu_gGh#&*Ilq8OmKk#hU)Zgi+EmFyqj{x8paQe3|a&lxo zKpz{PPfNhQPj-BMAt}@%cehi9j~B?#nb|#26fL=&$rW6r89vl1$BO;u(qTIY#8W`; zs?W@8QEBV~1S-)}W%$gu=U!+Vq+53F50bnr`r=Kv>H##EmwZb(@hKqDewB?XP2Aw_ z4-IF&nAr$-W8A(!H#$t;W6QEtw%PJ6^$;<3@NaOgq3{3G$oP%z!rqr4YKej)@3_b{YRkN>r);R*HWPNjuw!+U_l^KbJOyVBT%a)GHG!N_IIX zTm&7B{#pi5OoRU$0|n)F7iS%czL!IAMD<0-@znDpiUDsm-h`JA+=>5+-bAdlBwL() zQYwnFn!uOEMzA${`K*g2`sYQ28oK1Po)d4rScc#WW)?s+IcWc-w)s`Cu~G#U+bpLn2$M6Qh;H55y%ZuOBqe0)gYU0l2s#`gEW-L8kw`- ztk8qG8fyakkGBZg0L+y@Is?`(&ss))X%TyU@;a8=-F< z;hg2k`~NhCfE`H8H{z>Ym%#<#JbJIl0Azm!9zkMl4e=0a?ms2 z04JY0x8GN5ZmF;n-&0fi*VJaj>O%i}F&N$s&imuR1=)v?9hbzOf&18YaAJIK6;JEe ze+maI!Uitemm4-^aeiDr*g zVglPYA10v$^*^TcGvPhryfw2B;1e-z7TEY!))cL(HGO8^mrhJuulfigd+XI5Wg5SH zI4Lbe%(hIP?Z{@Pk>=SX^oKmo=lZhb9TUz)&e?0yZ;NDxH;>r|0w&`%KKJ&-1HNr? z=NvZC+;zP#?@AU;IU=Ek+0tnXEq7GnGlP@AW>sWY%&r+=W{r|fBWNqqi;~Q{>)Sye zE2YjY7yL*_#xn`=7y4J$^SD!hAo zBUhI{-;B)RZx@%><6HKnoNowhhfzj<$>zm0zdQS%OB7V}d(UTk z2PAgi{@fV#-w%vAD7?p#Uf&WHJb!o|lcW4e{Ua@S3&iTG3C=^h%vxtQF8>nBp{-Y$ zW`}%%?APu2iPcU^az@2`$+=y;6W)3U%<Fndd@8i#e`Xh7TSf4EUpp@5| zGkpkM4eXE_R^rN#9v15bZv}tnb5U0t<0#KjJ~rUz5h%iEb0%&xsd41kW5pY%K3F`D z7wN-SSz}^e+?eCbPlL~#vxai-^szWbNC?(&Xw4UJ88g0S%W3w@(ugrxgSYcl3QbHq z)`AVk4Qc==9mJtr^^T*#zwQRt=d5#{zxoxT zE9o_8(I#Gm)(SzN!zq0^XNsxt3x$Yc?lS!Z2jwE;n%=48^J&tr94#Gs{lT|wQ_|u> z?2f~)!w-hsA<9CpC$lT;SYL#bfadL=O9%U#vo@m%R$PXwmvNo6x>@^Q@l9?9|D)S% zYxp0hb^Yh=?Ekn#!943vaJiYK1Ac@yi94G2B0$~ty zMj3lb^&OebLr8>h-UQ}|aip27xLJZ*jXTYNK^Z)JWJTt7T^1g#n%>`?-)uAZzbn8$ z3gmyBwz^vU_q67J+FSfrNc3RC?3xk$Mi!jzYW<7Qx0$&cVDx4^*_tt1{_q`^u-n%3 z`%B~4<@y(t$vnkB-vG?ze>m0fU)h!Q`rq05Pe_!&Kj>rl#fvNq>7QD|%qz;|kmyr} zEvLADB{4U4v$f*4_7?rT@Mvppk<4wn{;(;D15xnu!^P#d3i1_Wx#*|EYb}>U8VvY(NT8 zitui(ze#*0H z(}cvD#=RB9xH~ZV0C^kpMfl2-aoHyHH?SY*B#s6lbj))hqK)}EF!z}GJM=xke@s9^ z&M~iI$@6i=<=mLziN3(3?t)}^rZ79Jv&K(Y?~AQDam+{DCLdGAWe~(=Mi9NuA#A7c zr%W%F?-2-Aj2YyF`E{hcKK~cu|9G-qY>`Q_3IA_f^Z(ZTA3NOt6B0%LFIc;vUnBzv zR{sZRn`1Q(gpDE3&9OI#^;wQBMD288x{y7wg5(`GKjw~dTCLUCyuKN~zqz}$sST3|)A;E;d}3U>l=(NYfC^H~XoWB>>OYq8!ufe-hjy}_S59o0 z^$P^AHbUQW1Bb1|#=?S?2zE8)(N5##7l93h9ir~&CQePs-%rGQpnwK5H&wqmz80Zqac^h8=5e|&;xMq2RR^kfj*0GFY_XENF|GpOdWsmZ9t2)7|*Q5%L zFyQ4pFm;vLgPl8(%_;(8!yKDtAz_&F1_51&Tja4OzdSi?JZMy82Qh6U^FgURr@SVG zj|nEnCK~01T?Jl@7mZPEeS8%wvy$&JkzP<98Wy^pI;+-h9Z|^`X6_sr4^V}N@vpe< zQ0ruT!3zuz2W$?p3@n+36KSW|%A+G1dEmSkM=9*lDw}j2sL=j`utb3-G~Px>ITnf~N_!8qiFMDtzeulrHN-f$#RK5xfQwS zDm_E;LRanMs){Qbs#vKNHx$ZNTD_(GpNYxlthsa@_Wm2ee{J=W@xN}f#{b)4{*NkA z^#0-DL1cC$kxls;jr2Lj|0#xI@J47S-zEi6X++uR6<6j9acC|o<&J&D44wq;EZc#$ znCt^xNXM4N0Vjyq^jo2;1Qy^fgB3|LJYyykyms4+G;O+N$amAYT)QV}W0|F9uv{6Fb=%NMP_Llcn!-Blzc6;leoP zo;aEBC(wX=TQFzYE(YA-S8xQ%lZ0|?IxGN@@s5)F2qq(D_y;G3Zs)76D(oV+_9qdy zT^xZ0Ythg(n*qH7=Y-UPSotWp0v@x0Gep(+&th}&pH}y@r^kP4{I4Cye-^p%pW*J~ zKZ}jQf~nCT^#3nRwzN%jBOV>0ns~GDUy1n4FcBr4w(T5AcGD# z6(f5QakN}`h}J6H?4(3FfD+Gj5FC&X1luJY;gR3iw}S*=>dzXe~#o*RP|3vD152FMV;3u8ucB)!?1x&lQ+Bv5+GxF%W(v31{xPa zNlZuBJ{rptZ|SBXrKBgB{iDt?`}XpG`Jt@f86Xe;<*e69`hS|OI{$a4`M)Alfa#K3 z4s4%DAfSAkN{YT*Rxf{MfrQ@exZjh`@$$L6>w3ju&xNO>r7ObIQ0kK|5uPu>JISkW zyoK!+Fh(n^|AmESaZnfmJkS1Xbz8~vf3MZ4*ZgYIj=N`LD+R z+hzWjlqf;}EnbBJpf9UyfO0unvK#q;PJ+Y{{ZP|5v*QsIYryC2DGYjSB6lj#R0n&b zRgguzo74=9x`&)%_}z{Z1Cp73G6y!M&3NC8v_Lp2a|zNcZAI~pwY~Vg*ng7N8E9-a zkpI;@ZEO1fv{UQ<9qNBoq6eGd{D!6qn04?^HIi?FrmLyE_hbKw@;=EYvqBN%+kYDW z_i2s)v1|KJlc=->lV(6v+_{0UZ&~|L>t-qNPe=$k*1iqB?OBTO#3+nV#3~Fuy#59Y zj*Xo~ez8|6Cs=#|4E?f>Wm|r_Tw+yEUTpw=H~N2KPM4d^|7^B8TK;Dp|J|kjM~Q+q zxmXhYCDQ?FAy5fDU#=#LJ$5B-BWEUblVw+1C2MuuRYg%;iBH8ytvucrsjgBqa;)x- zKMoUXd`xWgB6vS)$O_<04qAE4D~b6{2z3CzaH6Hj%pm$Hhr~Kb0JoCUkmke| zOMgpc4#Z!qNZ~JGe>iSPZ*rV`$)ji_w#yj~9ib#p5`b@WfLKZ)#e-N}D4AyvcoAZy zVV|<|4Al1`Bz?A{D7eI1&wI)OVUOe}Ab{d07o4i##Re>)ncWDAj#%n6j=~+HW{YrS zph;REi1Y#Y7e5J97PYQyczbz$emU%4nZy3=XkcF7n74!e)u+$wIwV~Na1BxI#e0Z3 zwkUDqph%k>+#+gtBdrdu$Aeq;v?sX5hzwNVD zQ^)_P*Z=O;e@voO0%A?URu*4j9W8kHJ>~Zk_ObYz z&L`&L%kTxkP*yt_(iIAIFJ(0I6V@E+Omu3raxO{cy%Q=oN7}%n*e@5WC z$J&oL2y34^2YB3cq9J8}5vi9b7njc~cV3ML(4h4oXVs{9x=zST+~sH+Cq`@pRRmg_ zo$Gig)|$ou+@Jlr@6j$fRi*t_K4OLf?T9D*NobESfBr8qJKf|_agqkURTfm?$zi2-R=J| zi6(0R<@f7U0hOo+%prA8(y;HOF7R9%gYTs_uu}a8M^iKDY`AXzN2}A-?0vnSh1Bz%qA(MvF0qak5Ggh-VmC`uOAbc$rqfK?1UD!?si>tY=H#Jm1`ZG> ztQg2>)WZ`-q z(VHm=hkqG>l!EJe1|lUxL<49j1AfY|B#9o{N)jO-`YU5Uvc$mR4~C-(n@|v(dKOP- zvKKso?B}WTfZ(5@Xga93;O}?;2e&$KZjj3ySX2Ri*R)*EeVuztJsgyK{%a@kpF7=F z9sk*F{AZO!1r9V*o=Z32fY8yekUIuyLBe8;y$LlcRkFw3X0Aks|0dH z8N?YAcz`5cin^_h5hKHTvG{^sDJL`#Y?V+t`Wi<$!6o%z3@#KHy(c{O(buO znsgrc-Wc$P90H-POWF3X{~ebHMoa7evrf|g$2Nc(|8MX5UrJQye~V{x>6DOfL;IJ^ z4OsQct9*^wn}ePnu)Q;0VpFLQy3ejd29D%xSw~E|l%JF`D8_>|cV-A^)*oI5bhyCe zEWVZSJqFm3M|^XMo+zKg4r&f^XGh6UOeM_(ivl~}J;CwF6a2u!MYT`V{XH-)CuMR`4riP8@mIxyuh9;eJ6Zv07*i?X8jA3_LJu@jrmSQ?^(+) zNX49J-wHz;vr~!gTXGvi?_+(2q%V8gV1IF~T9i90X)8{zFsq|FJ)6 z{l7c^-y|IZGP(52EAn#nBe?*OaZrfKB>oLR4NkU-`8dg-<1GsIIEg_$PSV=}_AAs0 z+j4i+#&Z4N8u}j~;jQV^B#`?88$e$Cr+upPzn|6kKfBZaafyO<=}#dKp8t(C@)7w! zRdc>1<3rS;Rht12J1iuV*U~XhW6bU4peENU=t&`I$f0%rnGf%Z!~g=hgj#%_IJBD( z2pjt#l0U==AYMQ{r%=1dW1=1+JRGt@pohkWET+KyD?2gH!03OCw*`;F26?@|gjqmH z1^C~kO&L=3KqtWLTOO{ESPbdd3;lER>gL1EwRw5{{suq>uDnOIs-=Z}kager?cic? zJ-+N;jpW@bx^s~>MuXd52e;<=FN5=sqdP=7;AzhyJ0bJd;qB$GqhI6qVgxVm#`CL7 z*6pavl-Z5&78v)ztl&buzZhH%KJ>?z%J7}TI`SFB2hS%oBbu^ZD zK`ftHc9318wO5-cZ+8D*x(ciga6hh@|JUv$_x}#F32OYO-R=KLiK_TdS=czB@_GFR ztl_ou0ykhaBwu6YArjP@@?P?js1O!FP$|X1+pG%ay&zK}LSD)&xXlNN%B%2+)$USL zyb70(=ak>Lh1#4GC=h>4wu6y6>^o~I`cfv5%sj}na5F0vDyRvhN2*ekFXeBRnGVJll8*P zLHnyU2_b+Oj03}bn4@o#`?46)plv0kgJh_*bT)wSXx<1$pJzQwP94M=!m(|{BY zQ0E}t!+ZPDab1Kd0IUnx!E6XO{o@_A1PPHm%b(qcX(6>1{vP%JWMa;}7rQtBd~W_< zQ^S92_iFy1oyPw_qM-CY!N2Q8{>sJt;K2o=eSx0{_DzE==FhXI;pO94y?qp=!_iU{ zFD5f&`f!7=Tw|eE!pqCL3Z^pwyq}age93#+`2>`_I9Z&m#5m$pC$L)9@HWmI?q*3HoOUITtrZQH*M{cpQdGqC@J zq@VTUf31$j|9jSJ*8abp>VHL|X#2Be9y}owmhVt7CV;$MQe6w*gB2Rb{NW1ChH@i& zyE%X5b{OT=3T!kS)JLYIEd2n$oDKT0y)CCenqJ0@*fF{jKjv>9ht}+i^%}feb+*6> zUnmv#Ji80Y2 zaz&I`&IT1TUD!h#UwkKIN5K=?*WQ@^r>L(PdS>X%+4;v-r(~3*Z$QOv$rd(|Cfc2B!XN@a|jGS+H3GXcbcaf|8uLx|JvR9PnT$v z2h4tcaJ~w#Z1M90PjHZ1tUyg=hJZO^Ti({ge|gcr^!G~GiQ(5{P3ge@BrL&)IkP4C ziy4;xShV(=wO`5&z@ALVVRBeAS>5KGKL8Uag^mWPkVu4_NP3y2=02x}yMh;E#@q{H zqdy#W-mxZMflJhXT+Y?p<4QR>>7tOyIm-b22y%cOHu4DN{y*as6+j{=TX}8Y**rENWNfey`l9o<>8@UJJun2b;_6sh_{ha^x zj<0e8Bwq2sJ*K_l$e7%l+dbGna7yXqKxRIIIuyT2g>Fng_Yzf0K)e&<+x|IlB#!Qe zL#)eSug_T~kacjmSa@L8ii+bIf0e_fJ7emZjgQF5dlwH0rcI2*d@#JpWJ#>mtaTWD z!&}&N@C`(@HhVOL3K3yka3!7?Fjg{Y&~ab9XMUY>6)&=WK;|5=FB}_k*u(`hEA~6F zdnnm0mO3$@1R(-nM+OjaYsCD4?7l(BP8*3 zBk&-s3RK>cna%!pxlms9gq<7~3xrm|o5@Ru43zL3_Lfs8z#95^=Yy2NPdQ)2T^aHH z9()zPGv!H0Y7skCud}axZ}~{U;G<|#9vQa#;`pA6ZztSFn)dp?t?vJr zQ>VZhc>a3(fAg%R=YMu;{P*4M|GGqzAn@@Y*GGacnZX%*{HiTJ-p?JSa`w{)=bM0t zufqR0g}}+n#`6C<-Ci>Pqu1%w{-52ge=bp2^g{~wvvm*1r%;kA{0Jr2dKrdCdVJox zmOrU~q!oHQ?)~y19<~EUL`(zsmZC}DUd*glae@4Gd+I{%c2aME3dltT#P`BGk?I_! z!~PV09#S_{vX$woRtF-A#ql~X;x|fZJDVyp*48Z!DV|eKKLVuFah#wrFqUqD0DE(gk)P$Mj+c>RN?Sv0~s5kgYLi zL&uaGsmmy9d1{CD1Q-GzX7+@R^;nSzSCNPIj;-3b4>+Y7=iO&n`jS{wi1Q|k zYw~}#y3I4q|J$tN|GUipN=Q`je^Tl1*L1*7I;_n2^51N*uT&0LqVucsz@m$JN^d+v z>}cz_ohkXcSrngzp*uHiN$IK^QlX*5gez?P98qDG(AC9KfMX*4lAZ#rTm$=uk_Q~$ z3w}eM=@}n6f|Pbba7IHFJz6__FJ$JH*eoduiG0iKCUDw{ca0+yygiM+8~>l+u_#gl zp6mZRZEE=+b^XV#{ePN7^J>5)o6RQOfmOVNTF+PQ04iIL{kla89-brnQ9N%0-au$G zud=(OPjGYi?>2z7QQl8N73AVSv^4zpUZ=MIcDMd>B`N{n0YV33iFTaWF!#LiV{k3j471Pt{^vZ;`*}0-nZ57(TGv|Nb-M3W zuT#V;ZbN+R?zl%eoSISPziWF9*lN#YgdMeFiTDd2X!K;FQY^sw3;=Wo) zjr(3Upv`U`Rb-4^2>N7?Z(5an76awBqi|dGf13AljP0ZK@p%X`)*Ri6au39W?Wj6uXQ^ zCnrJOk6FqIdce?k7Gs-=yiVgT$2v6)6_QnZm&2#O3{3xi{`XW1*Mi$%!jZ0AJ)URj z?CP<-np5j2z7*|BRR_3vm&!+!)$62!ibtNXH2d1&I`M!);6soV)CQEvNZB&pBX@^% zx1j&3r!X(!`n6;?laF!U4&g@|MW;%eYDmpAh?15>gn^9qUuDVx$i77w*s^PZ3$^~w zz)$(G=XjgLNQf*>N17dO5k|^SA{%;Z1LtXFTBLX`%){5_-FIU@IzXK>}T!mcDIFX%nb;Lr~an5W%KVMNZ;L1($eIL79oZ6k*oep=dXt~U2zj`+ipgr| zKA#I~73kFj`?e%rJ65Cg>`$dy-tv3U?-%^{_*_K@-cLYPb_~$`C-)U#o&O-C>=t&e z_JtH4COM^gK*~YPUV2Dr*Ce8?r`qw2? zzhZoR*4dK2e3;%3OZ5)8wOi??$@ovBU6Fyyyre|CNk3F+N${eCMOta`9aoo&5$9&{ zY7xgs*EJ73dVfzn7xzAASHgFG16XHh>)H0AX5%}9uUC3Dz%N^cR1CfW6q4?!XwTKx zk0|(#iG7g^^GnLkcUVs#$7lEgIxwv3^j0Rv9iAIAfot%Eu=tN8c7fYe+D}*2hmt_) z2onsCqY#nwt)Zeon|IwXQJR0ptv7=i=OY^xZ2}V5vl{wwZH?tqh|hQe(D`27c~!~U zFvF#3s8~NgjRA=1iZTm|tZSdqcBDon z*TS!Tzye}wj*!s-?RM1L14*7QLb~CD`P-r|S9|Ef)~R#G3`p(Ri;V)rL7=#t%{fv*F#`PlaTgvl_)(bL}rK!gB>#l|3 zuZUgGE1Sx`hNas8Em`MlKzlkApJUbwb0+lN!Qk7Q4uX+URh5;X9aA23`7WDO9D+Zn z=*Jja5?)#mI>G=7x7deN63990eaJZ?UU)-dGP`g$a-r>xgLogO`=*#kRk->Lv$BO( z40O_-k-+1QY)%)*!u3r&Cr?W_%tyy<|`4=5^ZLUBK;=j31dLdVgyGwASBe zX<-*+3uhg{5fDa2N2osvglrK$3=XqOtM{Ki!Kp1Su;m^KErk6Lr#3G)x=8z~kQVJ{ zV$dw3{T082m(Kp}C3}9*b6Z@p8leMS?@;}qN|A(j$6vZ+|7pOV2W5lKxoBB={?kExBgzF`3LX{=4zhhW3TgJj{ zsg>lFQ2Ev4=!ZU%AvWLFA_911$2-E`Pcu)LuQrev(ZcTMyhu*N4!O~WI$w@jd*r$C z7Du_f%Qa_&)okL`}KBG3_T5# zc#XugTp3aZ#lp9LxIHO|>ny)S)v}T7=QF)vDYlUB+VG3D3ubt4(;>O;V6~00V8{2D z_=7M-KAt3$lrkXuoEey3wX2N-&i>G2mnB7a|lgd$DWcC(&&~r(2D@ zB=$F7)1x!56>>g{ClKb<&D(5Ev7l(Hka!5vIg>dzG| zMX*=G&DiK!)850)t4SYujlXR>sRD2}ARa4(0e+Z?`r4Ldy=+zA{&%~vBtji@4l z?w0xU#!fh5g$A6|x={HIN+j`Ssrp^+A!$G=CvAHiLT+^5D?eqE^gBqcNAFu+WZZAX?zF_u)K;!>em_KcHE~J zN09PKBc%U;)3X#kT89p;y)()ObJ1wN?qq<8yqnkC;AxUKXh{L9~|F5m786EhHFO#)agD&-BS{wsq-VD9%>tY(z`U zFWb)CENAeb`#5IY2?nhtTlz;2BAo}yI^jywZ1o<sCFCp#o!jNDM7kX^CB&Nq$ylUX+iY=%%U*Wcx-6g`X`t(JnP-+FFINANWDCtlD~j zBQ&~6f!A^3dcO>D_2=A1p5w@nBOI3p$z?h%`CEOK`Twk>&^E-MdVh#*mUs{Cw>ZIf z<+x{ZUzxV9Jv38+?3=)}Tih#9%ja{!T%i2`*vN&!H4$2%rPcfrx&07 zG>#O_j^_2cJf2sSDc{ot?-R(*af^bJ`XB~l!20Cr zIG%GQsEYbWxHTPKx4rh!YVfY;+n`g|)H#!h=(TWjM{Zp{Z%wxfp2HGNQL@)^cW9uj zNoIiUnT$1la(f{8LA|*kp3Fw`5T%=IaNy1+OMs`_0Q!8DA3wSw%2C|@%<0)Qq-?)O|Kp~xm9 zA!#@Ggr8U57biD<9jB$ZtEx2u#0SICKWd{V>y{^l6$iCL& zALbnoMHQr*j~u6N}J z$qrWSO4139-TV_s!a7`Hd$t)mI*$h4lHkb&s)zn_i^MCXBmq~+EOs4W7Af&h)sNfV zXE6ZJ4?Lnv?|_^HQ+!A2hhwqpl5M{b-tEDb^21eP#qL|%VgPkGC-(AJJ7X4p0Go0| z9Kr%p@+d*xYhqeD}nX5P$x%eE(5)|#|9tb zk$&L(3kUb%lQX?N;)o{Et-q z-wbP@9R2)d-P>c-a;+F`x&O+%{_#D1qtuVz_B98%G=fdZ3&SnFLd89XKWsy(qEw6@ ztiTr8O6(o&ky0dHsr{^u8{fxsks9~80-haFTQGj}J74?%oQ%tsc}8iC?|@XXI;%5h z(&8?d_ndhM(>?EP$G2+${o8^rS|xW1c@7COB!y9f6XQM&6kjAz>wAaqNT4=`20|Kb zRTOTt%vz=o(1-XP@X&uy;*7&?oGF>Oi#Psh-^P5+ZPTj8d7t*)l+}#2TDU=W);ij{ zp7sP!`{(>wuSgktO3)}?FJ%IQ%)))saic-MYn{i1xR>##{pZ6irl-9@=Em(jDe zzGm2ir`0TOV_HPODD->h{2m<(aig2a2z`~oh=mCIP%KzXw&p0z>0>CGVN)FSN@J!d zVy{*mhwK{JH&skC{Ie@3l{1Nj+mI6g(s;ZM%CdJ~c^wK}iUr&<)|Pi=gn>Qy3H7#! z|A;P*F+dWW&TsoGT2)eeF1|v7U$ufKG(h=`ByyRZ`d(Z)`dNLavAKtJ5Bl0K+{Gw4 z&XeDj;-PvBzrWV{dFbWFoC;m0jmfUCxX?-TtX8&Z{O7)$*gtGZWDIs1;ehmGrs&Fz@)QOQVg#F&lNvoILib%?Qoy@&OYJar2OPVLgJR9g7m{;bfS(pt~|oom7GeH z_tXdB-z#UjAi-f%)Qz|g5;1YsXE)3u_TZy(8T&e&9@zG&nc=#0ss$UmOf^CF$KDRA z`n@ePp+6mMKalTjJy6Lk*pM74n3K0Z{$08xQAe%6ak%AXRuZVRKWLnw~ z^aZ-eHH99<9i6C?UvZVE)R=6`TIWDfua>QINWF;UL7hTwN9DF% zp@W)B^%)<)cGE8#F7T=M?=4^e&zw6hLjd0~Ao62M2ZDK(8@26)^!#>3o9y~1tRe$G z=w!Oj1-3d+(&aGy<%+9-9epu;6Rxt4CTF_mg2*u9$2;6c&<2OS_8J-!+LS(!`=P_O zFm+c*f?=F+H=`2l^1D7^64vJe$`;SR!slqX z1?YeK9(`PdB(!HtUi30RmBAqZ8+^%8+mytpSbP>26=vDAW%yUl>)44C+k?y_=Fay) zOTLL|fFiJ^ut7*%%}ZM&pLd||thH`fQNZC8k#MBPkW$<)@Y=~{kGLaTO2BSuQYz`h zUj3Da!Jo1y&#U%>n3@709Z}$`H@+6U&FKMDHV{I|tz-A&uS|0^C#$CGPs9gxi zQ;@-!h6xe!uZAF7Zmum&aWqB6FKge=7o#X@6bFx#ZL0^u4GFmMr0Fc$caljpe^8^` zUN|(NN889%n(Zx%E`$93v{7aL&*?V{{;e5v5nBx!{kVZwWzZV*G_9-rVhdNr`tRw| z*%5pG@czcfq$aeLK**h$RSBc-m1LhE()=>jqWrAYhZocRSsVuT!Xlq1TmKh*$YFS5 zR%=#(V<{`7i8h0$R_Wu+SJDef8(}{Mx-g&PmyLX3Lg?W7a@eIE+#`Ab+A4V|Qx^SkH`>SXp92Mw=V_`_)k@{C>$Mi)*ITX*@#qS6+yLb~?aO}78^ zsBATxqfB)sp?4&ci`lZTf!hiXn9TViya7EANG3A&Mhl#nZs zJDw>#(=wx*A#q#@%((Ur(UM3)raepK%j0-+zY)Sb31gUSq%6bZ8(g^dk!ybr#60i! zBeOi|NpK8+wqM(XsA4S|4`ASibPAW|sa*9EPao<}rtkt|hq=OXLQj^+FWh>|FKWoQ zPd0w*-L$=V^3&u>*RvFwpIdBEzJG(~P8epj56*M9jJms_2)KAPmz(iFUT)>8bdDT^ zvU=-x44qwzc=)>XSK^5uN_q}EKw*Ec6+|kKB>2L+_R$2nn}7NQMiBgA@ZV%_e0Nmy zvKU;){_{>N5-k?l! z9Qf8$?L2+v!RHaLt)bME2vO2ywy1!t?1N(W7k9yska>hi1$E!>?o# zb9jiw*EGau`4A|A%AgE4$iZqi?KA;VLt)tCe>eHr5Mi*V6%%C2z)>xe+F-rz8d>je zaFPe%Q!0OJ<4C)GTwE?VOPVwG@S{l;E0Gb-kCu>In3r?!!{}g)LoCtv;hYSG4}y8FuTi%8$ja16|8NQIMY z(u^$sCr^TQiz4obRHd}8=`{X`W~b%cF5rYD{$&_lr2XlmTiZk_!(|%pdrzh}aZfWk z1BmJP8I)C5uWw#RbKZSSKW|VGHglzpecgAza-_%N#hE~rQmxS|qMb4l$5KN|8J=jx z$2N#nf?0F~{X%9rEat$hLo%_=7L?IDYPX==+=fnx=b}0KBgA{Z_7f*>`(eGY{#}ISFXOcm`pTo?WjuDAi6nO}*{?LK*(7BTNBp)XUU9e_y z-f4{FGYX#F$|L(~X{i%(kL?q7evdfl{9i^)?UQ>!@$rWPLW}puPSa(3zsO0DcZNy_ z|Jvx5oT7a913?;mzJaImYP-gMwQLvY&PFp!;zi1iWt(3H9x2!dyona zY?EI#!v6L(c9~1}ZBDj${1pOT6^ISIK!0P|G`L{+Qt_wMb>eCkD=I1swfkM=!cy!h zG7zNBhdxKzkFS&6u@0oxP^2Kar5Tf3t!)b#V>|>M5Oku8MVty`5@+lJzKnGxgQ_qm33i+%VaJHg5~9-}kRFGRtwfJ2ur zP?NzJk-2NlX<-99f^=i`6gf?2YLKsh{)|KXb%ho40N{>05}1E;z6f@boB$@%%F)o} zx*LTb4(HGo&;wR43S^fRP*pm1CF%+U4nGM!cTopWRa$P)z_aS#4IjKXhoKF8rr)_pZ5KXvXulv3U3s4 zld4={*^?c-2juHM2Y+~`33CjAt=TJ6wNo(gdK#n@8614lpUx=4^76fheIzXwKaPQx z$j8}6#Ou20Lq;y{n^EHx1Z%aB(XN^X#DOmR_U*m(&EKES_h@8p75eH+80X&_;qPLj zOMS`bm>^~B80fUvk^DaHX;Uk}8~}XPpBB8VuOS4xOo13!jmg-dyybu-4=&KWSn&dq zlmgxp#WsNQt+k8Y5726h;2k|yRZF)2F^H1| z#bXSW7elF z$3*shaBe6is;YyTccTTPtJcYK`qBWPGS5;7UQg+A(@%WGlo;{X4e?jd{Jn)ZA8d8S=`&wj zMvA=U5ES>ylfBx%FVWUk z#A`+J?^+u4b!v_DA5#+cn`P~O7B8uuiaD=49#L(r%N&ID>S?U(4In67W2_VdUA_j8 z2?NfnhCnMDFgONE4*6BJ9@gCv#zAe7@zmCT;lo+tHaLO_fZ} zrMFvYao$nxl2X-Q3?+kv3#Dc83`9(LJ)x#ry4+OWHaX9DxKD%+f|Bnd1L7EFD_kop zWKRGQGvK3`Zg%yIA9xE1+zs#jQEP{r`Zcp`#1fG7R++@U06@=&xWVc?*vT2qprv$9Hg}Omm1O<-BOxq3dLiJmw9vqH2{e>2**;N)jfGBKtO=8;p3k z+kJYywfSGj3y$kz&{#yLM!3M|y>$7@qx+;=aUAREo9nZQVb@AOb4APPlln;>Pkq9% z6Ip};!MP?Ld=D~w1AI>+X13~mH{Btg2Wh!*=~UGo8e*zH@oi zM34untI6N=-@=oX2(&O_*=i_yJBV~;4SX}dEx0@TPDI8~=k~pGg6|&Od~``|z`O4l zi`dcoojAf3HJ`RQNLtb1-}452HdM|tY?KAYEs z5GiG;^7O49v62ewaKyX5VZ4stE=Y1V-5b1goA&C2=(6uIespuCL)v+(b<7kRG{{94dF$j{#W;PE{}6gP7Lu^ zU9L~-7X7<-%HNhJ8i0|if9*S0CrO=A_R|>+8<-b3Y0-mcsT`YLhLSZ$s}%__zw>?=&*)jL%Z7HtG4veSFNoi=*4@@ArHKg0y;zPwFW z$k#!r+DZ9wS&47j1K_r9JPBt0<-9O?Rsr#!Ih}h%a#qHVB^dZKmH=(MGXv`#?`#A<(W) z?=ka9r0p>)$SQm;UYC5!&EsC9` zo_XgRr6F+@i(r4W1gd?(mq~4kTyZ*NQxO ziZxBFZ0;yjGetG5K?nMF(e3qaMnCl;W27S);Zx^J<;Ug|!y4raQN!9c{nM&MR$gDY zgWo=?+ZQT@*OGtH5{$s}k;{71>?!n|hH1Umws=L(76Z{w>% z1Tje-%W)PD8z%vSr#By%y?0g3I2P8me5FxFq8_%8$}9V4@}e}?b%Fx@U^215ag!Fj z%cL1_i~J=^KNO>)iBudxDuDi@Bi%kLPjEq04KE`!g_JETI9<|KkGY~Ro_vQ|5isNI5 z2s0K2vL^4awCjRfKlb9#g(wzH(0+c;UunXoWCOWMcN2oPLS?4aS=hMtu}}hU&$>;B zfMWlp(q8i9R#jqvG$$ysvHjlcWwCGifZ)U^h&oSaxOSS|okr z-Dp=-uKuP-)_8~1WmM6*)qdem#jd#3P01H@ual|@Zux;w(M~!}e;k6P&~*U=21a~o z(qX%ZQ9729t?#b7{lwHdKu;vR@P}W8XppQoDFbRev0#W}?oLJ7155*^Zm-}7VDu)@QFxZ#qozezkM({AP(MYk)q>Wj38Mu3(pz9fG>C+Csk9te)(F)daT`17A7n2u&|B*FHCsJV1{n7!z<~K!&^E$Owo_W zr?7?TPomq4@&BjVnE!qIV<$AFg<6Q3-FK|AD#oGkR{I9-w}?R`MGYKWYvKrOzV zjt;>295Bs-wFKWFL}1Qx&TbX9^n^P9mSAXH35J*6y|k;)Tqt`(yu&|=gVQrogMjR` zCutY5vlQzF2*D5t9Zw@5b`Rc@pgYsd?&z<}n4|hOf@#X~X%Xy^6coP+=BwLVWT!(1 z{f&L1L(6BmeBV$XA)!u5qKrAfiv!)w&q26I#WK%9ck4+c%$%HV*&Y%CF_bd;SWYxHy$UD|6D{F zS&=g1tf{ahB(waudZ(V+mW*9*c?q>+lQB0VeZ;c+{(7QjgxB0UtJ-VkOnHMcLqcP# zF_RKf7tW%|w@#9;%#ZNeQ5w|h$FNo3F;L+;LBIo>$>%j#k!E!{Va!R^b@D!Ztglol zFlKRA6*$Dsi|MkMRBi{T= zW`x>XKc|)u?lJw>XCLSIH^y%Qu4hbh9eYn8|I;S|hR>{2*MOT^^V6jStVIimXPni) zGkvYMP4C095h^H?xY9`nwQXL1f4v*Wl+ji~hcFQmHN{D}2B-G#{`?P4H4Oc7+R zm^3YycwvJdhCzR=r%_gP{x;JHEQq*LD3af$|Jt{K!Nl9zg1qS)R%pAvN4l4Vizj)u z?}V8}xXvY;wG>g5zXj2E7c&5JSa?@rdudnbDa{hyUk{ca5gcA#_x&*t3j&8GpqJ zW1YpmpmPgn;fr`g`JI=^^D>y%_lQYSNdEg92gHX%Mkt*$4N(68oH@U+v0!Q4{FwCF z%3OGC_hd2*qOdL`J+ zuLu|Z#HfQAPqz_nA48>)ejor#0Y&`1yqnymh70~a?3gJg48-WKeRxT6RX3ZnZv;Pm z#cZ|AOfEzTx;@g2wSQIh5_OEl(OF-}Od)iI6QQ{&ZiB&v{6W>rU8sk@9l_{@-1p)0 zpl3m#PP>rOmcPiuK709R;MDibOe+D2IUNx8hB@Uo|AD*u9B*Y>&=k&e!Owcx#?>IkM!|K+7c($ z>D9apCeV;yIYwyoEWO0M5Gu|#;?lWaC+(5Qr*^V2s%d<~4A$93zjh#GBN5nndb!Fy zTf}UXu)lsDCFV4}K7(Bm#jAXu4o_D8BHmc=Ci_eYfKQ~BeM#cqX`750mjC-fyR(I1 z+bw{CRvQElDoT_D2?!7CR*OdX)Nx5#mrHTneKX>EC zAc6_G9f7_{&9uN|{@9k+6u*(6&R6u4Mu_JxAitR1m-?{%*UOfp-TjuWE!;R$_R!6# z(Th-0ilTT*cT2uB^SG~y__d{>L7Y7vxrW{i4Qz#EH4R6z5ivY7y8AWIvb2A&v(ZmC zgBwg@a9oxPesIyEM|?XxczW4Kw>gSOU-rCI=!c2xKT}I$U{gyW#3PIpM%lo8%k>N6 zI3qh0cW)E;Z4=alF1Ttue>iQzKu!H{{k8Xomj6*eG}!2+_FAT8N(nk=PkIt&R%5EX+NTx2Ihry~dlJ}nQh@Gg%(Up&nKX{DL zyDv-xohTf;=sq%^EU!X2WTWq!APNJ1vyo+@U*!{>pf%F78sqrX3Zm<^jIR>3#iL#C z8T3#L>=7+`ASl-=C;Ytp%Dd9jMF8q_pF>{ND4zeZMm)QcJq{$dho2QC0qF!gzde$R zlG#}J<>aC@VPjnVHqp~ZwmB;zt4LHl)9B-9qS={_~Np(3Mj#A@}?&A;_Q<9>3LH~$HzQ>SJV_C$-5-+7zv*I^Q zF^kpfc_;fJ9#xT$5z5PZU`3ilH@yt>f8V}Rq}(eIa4xXBr>l;ayLPF$=~z!|LR2vpiDAM{MD7*`@8 z7QKtu>*#1_5muZ{!H3DvG6Y{8vkv_(OO@P6b4dKS_|Jd&DPAJYK?A(F+XE)SCgK(j z4NFMBRXGfQNp&f`Yz;kvLT!2Efb@L8``04Kz1{X6*4_AGnqDrCh-S?9h%_RYBkQVx zwn(#fmG`Yu2`Q)7QK2HgEhcD9a>xPYw_R9i94|G3u)Fzdxmm@v-)i>w_KJfUVJ563 zh|)sMq<_yNi1hI$+}U67l!hDfkmwmzu(IjxTD0nZU-6q#5|m?dwZzQaKi; zUF5&Zh+xrR1bs;vw_-(vRo*5d64^;ke=>A5*qj3NyanT)Vu)C|5n@$9_mxb{o4XW= z&PB8y(Y!GdCa(xG^HkoJSC}A2;R{t}k8@#9B*Z+ytN4t8k-kk_u{s1og0WJa))|M# zZH2y|V~0*<_S)P4z7oK@GWa1i1Jh#uRo6Aetd>%9Oq0%}>iBjwy%(zW=W}RxD!?V) z!PgKi9S?f1;;7bq8^E0Cx6`g8XL`mF1Ws(ER&3vvl)H^{zxrMpQSsJN$Bch72xUQ)GmN zm5fdz-%f81^!ji7Pwxl7|5T3IcUy6Dve_~zAN?jce2K)6WnK0}eGlS$-dN2kTrK~4 zOD!k3jcy)4v%cG6^A*a_c2(GaCZ?K4GjU}TeG`}-JO?f#Em^rI)7}VRDQg!X_|JkP zaP8%O7E2_0ekJeS>PWWjZIPVlqTqh_kSxg0!pp!MHR#CuWnpk#uJWIr`&ma3$!vZ2 z@RuTu*}W^lXd2v%aBHKtZHF5bDy#nXrhYeF%pxof5oVTuTHwMwmUiS9LAoantPe*(lRf7C|<2=aahfImPrF`6vxjkj{mxs09C0(ee+9)-fU*Tz8GM$IzR4`U=^>{g8Jbch1C-#el*{-k@!F9?MDNNAZ`-IQmu3 zn?8)|9bXy|Ooi0*Y~3S70?OwHWAP^qdqk!5KS(wAq2ZY$uQ$Vkrf`Y-Xft=2?_K?ZnQpEL24mR`+f{k31+`(={#2nX6ptJLS9LG8Hk;FYY;o@s{76{e!lg zm#<>j)6MO>^|z6b1g7owfAQyqvf9$8;ug1XFyidLs}T6X8Cp0bj)sO5g%d%<&!~40 zGV+X#7%}ibq?!0iMd)|EUw%c|=>QPTim;yxOi94s<00eUUb=6=-DJ;Y0}e=_O`Fzk zWw&m7t8NQ*QwR;wEJTFHum}VJ9`Sb`>+g=A2rsFK|)>B z?z{oRCdiOG#>_-N6mVG$Rq8H8Mwwlv<*zv9$)Ovub5%N1%#T1t#Jac0zy0czXD(^z zw~M^!en~JSaw8{<^w}1}V zHXJu7T+(>*`hIB&1Y3ZYiiqcuR3nVu19p(D&c^vQpyhvUqG_<18*kk~?Ir)l`QTN$ ztdbsH6)-_dnoHth8Zk}ZQ7I!1BN5%z} z2+5AsURwX@l|L(Lm>U1B1H!i9ga?XXd!YF6nX&gs@Ua3!K;MG4pK_-*c3G-Uix{=_ zXz>Waf@O;lQ$pW~bMaorYD!v-jTHegTP^RgqvmDH?i6~N`v+zVUk)UfkK9>B0lU=v zZ3Op}ps3c*_`froEAH)tf99)@ziIu^v6Jz+_;2)ig)>B|`cU^Z+Iz{@ z;dWx@r6n-D1OqT$11O2!zgB-j`AGNfp)3`5Wxik?)o1rct)&USV%lr5Q53 ziKZ+#MsIXCFrtRM8vtMcO83}p58HDL=jtP0-ik6g*dUY$#X>DHJA0}v z`ptEh=RiJpommu4RCiW~(^X)P0wC#3d>~pBzOZq=vpn!9<%-6Qus7dn<+_;etsYmu zuKqlDDGY;`52cHylXPzGy3@d>Z62F47l6quz_ttqGKQlEueVQeZC9>cFdRL|CwqlN zRl1~kC&2@c8trRpR_?>XbN_!hHzghG;X6^nDll{C)0?pugv45`SV| z{K_xrTP==-PAh{K-n3KrT~=%$o{m0nYukvr_lE;otE&t%Ei)Vj;H~6g@-B;(gRjH< zULCgBpK2k$Nkha85-gfC|E}rsVh{eO*EdG6VH!TE#Eu0OOOU_6|Rg2 zKi&1-PnPwvJ?zZkrs3mH4KQfmwH3#vZ5*BgDR8UZ?u zNS0ubr|wKCpxL+j4-7sjYZ)-w%ACe;hFYrM$Qqa7_1nQj=?e0vUEM)`tp z7rL$QpV!;{7aYgP1o3=L52gqwCY&Xww#!sPxZ(_bj+3{~W0%c%?P6I#YrFA@H?{?c zp&J(|h|xy!%L7GI>g`5N@FmQ>rAvI9f)=rp>QJI#vhqNIA*_ukhQSb<`qO9dhGd*T za3-NB__+2^iXFk+!XYrR#<Qx$S!<|FEj zh{>pGhWP6soX9 zZjyeAD}8X*SFa5C)S04hOGAzw!`D2RDex}D%d=1*GFNNFMOJ#}10>_=t;4II*E})q1{h>kUX;0rJ`bTw z2oS*I06u<3x>V%oL0L)ItJOB*U)s@>=kt+DTvL7-%;HecC`kjW5Dbps$it&8?%}(C zy_}M3M@hV)f>!W1Rcwfxg^-pr;b_4o)Y6}m4MNpnz){LJ_+ zuFxfCOk3fSh9-YCPqfz(oYKMp-W9h%x#&QmkO&*r{}jv4h-wz7skhD&ZsIKwMKL4&v@m^(Y~0Enn3YhE?ER}s7Z(CuoTif;`oJThahGPbwY9ZA6m zR`g;n)Wd=~C%!VZ&(E#Dc!z!MBhH4fU}koAxO(3;aduohDad~&hC#%tuZfv10VepG zyj(ZcLqKrEpO38AaqP=GrCop{BOb5jK_HT6iZNl(12TWs%`odwfTEkE(wmOy9{v=t z8Ahly<2F8=E_q33O>+a2R1CV! znoO_bF(plW{R~@5!KodnOWCN3Wi>aYu3q3wVeAX)uT&)VU-2HO`}J*z5L+h$Kg1iL zV&LOm9buKCik%lSb%`>Oe2KiDn7~iM54!HCLcsybg4q8LPhTAt)fa9}ri|E~_-f97(IJ z(hMi@tv37$_z|lwC&xZ^9=gVWcM-WV(%`(IdKI!fh%i*2rX!|Rmgd{|acR6ahV9~N zUgUysM?NPncOUV+&@=nHG`-vCPl3932pdy@Vm=d^c&uJ|#sPp8rLg~U?PIg@vw#pt z`YZoy|NIu2l_y78QYhk*N^3pq| zkKaPBEKl@M_Pd3LCwKhjyiXnT7oO!U`@6#+8h?vq^>YLhexr<cFuYAnQ&Da4eZtcbt+qQg>sIar|{VeRLapU0SJLMQH z<<;i2iMRXB2IGRYoDbjoG?J^&(43kqeUayAwK;QqMcH$v6*E_l!x)$6j(|fu*y#?R zeFKi8SvxGCEJ!G2m9XTQZMW0n-X-g4jb+L)w|1oZCa(Ib@LT=%QV42OYH>>|Tr(Uz z=bh~(`^h!GV^~c1GP3Djc^YeN1WH?u;mgfAV&bw!BG1tn@y(dDJNSKPZ~C29mcV>}{xE2MM2C8*A%Ob>zk?k1dHe_cM%J4>i;E}}lz?V?8~Y+*LBnoxfI zrfE~Ky#>zfD{1vLdBa}s$)|cdr=ljK$}2-u?=F1iX}NUwWJ-z9d^F?&(Fb{QJhi$q zm^{DLN9h{yz+_D9OWpkMCQXdO5gUcnFIm#=F_LFF~fP}fG5 zv00EvNA46FN5n<;k@59aZQJLvx0g(sHz|IH3csS_Ob->Oq%c$LdEy?an#!ah*hpYf zD|kGD+&x6gsuY1Ck4#XV0RooIti$U6Ug#MletsIigPM3r;|WJb=V$g+J^MQ)%Ji1- zpt@0Y>&fv!!XL>1Aybz3_o*A3juuV&3aRh&C1UKv`q;<8vlm)ffj+*~8MTB7$Q+yfF8VNg#v6~4II)*bXa5cyJufB@q_k$$LWTTVs>R; z47ucYKLmIS%?eH|_1l3qGki;|N#FVEwkv-g?D$r`vd91+!=8WN zL%1!JH7%~XG_XIk{{!ofQQ!B2dM5^5{V|!f-w`4A#(uX~aN2oWBR`MD&3+g(J96wQ zdT2aGn_+HRNc%RN&Mh{V^Q#+^eQ|d*@6z+B&BrX-@m`JsBS+cOK$zM$(CvF1f3-EP zc*bdc7iC;L3$XRTAd({C-W1@Yi*xx!rq~-8^c)jwO?4eZW-#Y#ZJ_wE>(+IWd0z@c z3Xk(int6!bD%lJrgL;}zC2OYN4qFs4Mi=+FYh{lt<*$n_TNd-~_;eX(4ltTAY)gl3 zwFZ5@l%-l1ekZo8W~l$~cDxKSbG!eF^DT$QfqP7U#Fa1-YTs^SzcbB}eVx*j-g6?A zAy+Mr5`3t_z$R!_m$o#Lw-tebfX(DN+FzG0SsN7ezy{(&Cy+f3-GBklyXknXs!qh@ zy2J4ZVM?V<&?RLC6f~)ANNQu^r2F#OJ{gXBZl`?0i(R{>ryIkiIkCY!@L9n6O*)lI(HJPCg5mE{0-yd${oAx6^NL?4929H4)*bhKwSP)7V?=pCD z>nrr4bL&>|%F9*XK9y}XdhM)NUq>a7rueXbPHP{TZ+#`&+eB$A^Z-~-cZNi7aOF%B z3GiKzyG{stNRjO#)8^NB>|id?Sw=;)CVO?C%$ogty^dQk(PFCuYCi|VlXxgRe8FdX zQzXxU$*Luw{9aP;MeTsU1R@D){u^plE}2c$q(TXDR&>`LIejE??^vl@>wj@}5hFH> znL@u4F{Y80-XwXY#F!9vpeJOE+!fH zX|IA!Jgy_BV3ja8M%m`#|97%`!>H;-@nLm2;f6{}%k}9d0$OIv_6+hPOr4#ws5`;Y zOKt&@#1Y$|)JKks-_7kuJ#9U1{%i2UJ3A%%XdpS5eb%qrCa`Csz?RzyU9tUe4Y+HD zYAiv7Vo#*LyOur>XZ!W2T9g2lf0;*=X2bpx|2^C}byfa=@pIz*Y$uUut#RI_ws35O z$Q9&wQ96%Cu>WA;;XLrg4OGFCyW7KOfPjSrmn(K4UmA`J^aQ@`TLq-UU%?ypr*e{N@4=WPrZwc=%x#D)D_ zr9sgdyH>830?#r$&DHEUIT?_bF;T}Jxp=*Qn&wojS-sTRVCL*~vd8OhY{=&1uT)G| z;|G|0MBza?$38G-kqsAI8~i}dhu;7I+(GwKjzv}-2&)30L5p4J2@u& zKh!2mo>gDQZ2@tCS47Q@n!)0_^OfI&m(=-m3E|i)Pj`6rj|ce2!ddM*gdZD&|F0VYOw4 z_~O$o+2So|3pc>4Yj#lV3)>FCAt1IM_5eLQ03RiKe@#kRUq}NX4;>Dy@^ZVjoqYZW zdh=M}K~AIP4~*FdK9aZjpWWCc)MQBs_`IkI^%0G{n-stii7ma!$p5xwr+e-SQEZ!( z5wZL84NO&BhvmK2m-+)i{4$@fe@&69w2E)HUhP=tJiF-QYp?c!{91!!&d~U?o2{~v zO4;KHHd0GD6KHLhhiy2MsdMAEg}Gqgn5O!D6F5_OEerM+_51Ib>4Ab znlvGraXzy1?qR$<8vBMvp`FD>^pS`AobM{#!}|q)EP?|95OKpZO_%;sR8a=-M5z$j zd&grf3AcAQzsmTDpT&c9e3`&-WHe8OuFoGi%<8(uryfwD1*I%3ALj=1I>HAQk-NHXmeza7Vqt%ttZeN0E+u*KuYQGb0^M{hGGxRyWn z(@o^Sn<%8FXC9G4GmGOXAc-TqB73>Uq1wN|j=*BNpHAiT^XQ~FXBl!&FVrps*g{bI zZvn~B-cBbD8Gv@{@=mbkj+bq>v?Zq7Y!0&MJ*Cli3Kfngn4>P$ZKsAhb6^a;oEIm5 z9IKpxC3%0I6U3b(P>IWiM>lNHuzj@zHQ=3rEgaEHBOftHM{7rNs#0s#J-)ksAwJig zn*_+)XLhXJPU_5r>br)hb02@0h#g(JD6ts8L$tL=nSDMyRjZR}>=a>gUYq?sXY(kw z?a>#$vJQkC;YHoViBwaIUi&ZF4{;M~B%RaZl-AusYW+*pSzZuWny=%($5*-rXVY zl+Ba-_Lj`XA@ZXNg^`?m$r4o#V^`R;t~cY>jlY2EQjOZ@F$$0CI6qnrr&6)U+*)s* z%!hUqva(ByexN*P+LbxEETg1gP8Az<2SuG>p7c0Gy#yu5aigq!>tzRdlk7nEij$%6 z{h1EDA&o+)SiCv+WA*YMBZ3Nvy7oy~%@ME2+1 z&yE%1{Q^(bUf)>pdK`9FJ^MLzDP8evsbiL_IU%#H8LWeP{V@UM%NMR)#-+Cph_OJL z69g}=s5fv((XTxT6d!s{`c0H?P?=D(MH1O=Y&F8OkI)(1jP*Tr#Sw$q))-z1kH;m3 zZk}dZO_8kUc^JP^sJvQtxEW~pZ1sXnFw|u!ko|UtPim&+Qx+O3Bd0N)?V&E4)cW!( zLB)l3D!s3Ie5mQj zI?RadQT)EYN@EZ!$s;z_%%6Yz&l5tBkx@p^CD9CZiXRqCzcV%kr~XQ#PsFxetwZ`; z7~ijyeIrC0EQc~5TP_>96r>2&YidU5tm}CeWey(py}Bj6Za0(jh7{Bu(34{$G#)fh zXmKqgF*t?I(u`l=Ri)(QNvt0Xs(fU@YXauMBqr$Xb@b^(Y>YpiTWW-^Es)`hPh1p* z2ik*3|+$G!3u|-XWC`F)lYI6bu*bqTym?p{^ z9^SH43%jUDbn5}Ek_b`b{1L+`kBn`TRJhO>3QQ>j<|)8v+~5yVP44a*zfL;U&Z0-pIYxMJj^ya5q(k+83d9AzIpp z>|rVf4&Nw8;)@maiUAAiLNQ43)NCiyVgGUEv5z6RHdn%ZR_r=DvIA`#qi4qua!}43 zpqb~oaO=3Jecz_tN$h-~R>98ftwNKsnhZ%E0aXv&O$~0GQ<}JLUEgC$#~erV z7W3)Sr0Gj9bG`^k{841;FtNX@)pMm?{o#R|IMQj!76Y*qq*~*?B@kbF_#^BfWqwFl zOP5==wUkM#4VmNdIPLR}!5V?a#mA}SnmVcI0k1My-U+yqkR06QUphfMp#76{{|IOo z!`VoAizs9hK#C}K({V39@HA~V6z9)AN*YlYL7P3bZ(p~$C`$K+ZWt;sW;kZi;B#}H z#0uZd&u|#u{HxC# zl#ef}1fFdK1oTv2K={Y=PPD;1O=ln2ys?{Ykedmc17h$HA!a=}XWLsQO}g~N_v^tY5{^fXzekSHH_sT7b$02lih+I2e6Zza2L@)h5OFSp zbC256?FZ+zmiMH2dXyc%Xx~A;#z*Q7hwdTF`uO${_Gd`UhKZs?IB^q7FdhgLlN;SV z{<%Y9xob{&-85k5V_d9}I`z0l=%Yo3JhCl;Z~F#{bV->L3U=R}+Pb$lo8zO`zg<80 z@Haa3QKeBGAD&Aeo6!x2S=FiB0p+lJ8;Te|@U_4mI$D-z>SGww+9#C``-N@K_|exS zR!NxH{=M$FgG+e}hV$Tituf$VZr$s^xC}sUTJx2$DH)%Y3MsVgG=#$FBk9WrysevKV_w}cZieerv^vSEM?=1N- z<>YPp;Z^E`A|d{Hb9Ej{_kTXg5r zZj7vCCn^8;a~7y)tJS9}xmV6Y8C1GGcWn!K)xVpBj>@pd|AtfuC65~u$5S@1B>Tr* z7HIx`6_u*zaOoji`D{V&N5?!*+RmE6U$IX)$A3H8s-afW)y zTZB6XcMPXGP}ss}U***O2cHJ|ZBeME{zkvK_eZMHt=D5Oa%h~zK}4LPnDwTu898wV zRU{vp#$hOH!u1ab3Q|tp?d5!_CQe>$k)zAqsMD0*G0bemFjSoWbuF{2)m)!vcce8V z$0%d_iDsoyg#L5>z#9F%!`z_OLz`j$>`ENseP9(6P^s^Op27J2P{rIEX4VC2*aL8O3)Bp&~&=u5;dc*e@|!Uiqp?KGu zElKn@oQLi)Z?^f1m_O*ac}}-hMP8cmVi47_JmoqSI(ZD5&PdFs_~*06Mi5I4hUbkj zr?FoPh>0S&=m`qKRB~Q^R+~^xw6_<=2fxwZnk0FZ1)!2zfhqXcVr(GDcfTQd4EKNJ z{xx0tPo7Ovp3X)1-RNqteX1qS(ax@V=&d7pn|I|ji$0o0M*Z`n`zRW};gLHOcvaEZ zprpUEks=0@IkC~dJPj!K(BJSW&TBV7+o7Ki4Yb%1*Wf3b2;!L-Yv5!kM+CEB**Z5ug+a2(TWsol{^%s zl3Vc0BWq9q^ih2_ZnaEix%vvb!#V4oA6J~M8HrI1dOp&BR;^6c^62hN z+uoMu%Eh#A?L8K|<(#tTlCT6AbAOF zWxB8Lqh}YP>&uqs;@}q4i}9Y~+nf88O@^!;i(+F+3wK~2oY1+aFh-d!-i0zp4pBZ> zKqbJJiMWTTh?`O{Hj+8w%lKZ|oS_T6e;!EgqE>8`vEX3+5QRC6Rd<3v>Sb!7@$n5# z=(UN!)YZ33vDNWJi(=PF5TnL7hK}`kc4Avsv!@r=R%c>=80O6*6qXU}rNAABDj$-B zug@FV$`av3D(Fikpe-q6tR_O14f%N%iyl5@IeeZm4_;MGvB3#ua60ALsflE?hxu;M z-2O3QCw;+QmVyw59gW2Ioq@!%VLEvFy1xP!y8;gpmwN(qitWu6E*5_#oTr!L6KRCM z&u6xu>blzf6Eg~yJO`YAD4F)n6q2ph6gRyypWWe&dHc955|_ee+As=ikBhDN=k_+B z%G3W;c6FY3q?KHw-6Vo}Tx*^137LQL_?oG&I^B{;%!a<7a>-F8&-M3D7w~34TXBt3 z-8GzP_HlZ3Kg~67{qPG*G|0DZg6SmeD^yH=`HD;~FLTrosRT6zwY&&0C1GFv0G@g6 z0~N@B72BN1hwajLS-S3d@NJsGr;VTNl|sy`fVFuA>+VB^r%5x9AZy-hy1Oz@0^Jn# z*p4^0t6AQ<^lV-vTI~HmdDiFNTWxgKvt7rFt$IN1OH zIn)Sbmd|_gwp{hSzj)ETYnmmAm9i;{eoA0wX>8MfGoE*iW^FHjHraPXbxY-!aMNO< zD#hq#w3p`13F!R#YkQnprX;Yy9C0a0nC;Db*5cIMw0>OvjebJ)Zo5z>2zi1_A^O`p zL{dvYCC304{cLd505=|OW#yg_DBEJZ*ROnJaoR=BlX8TgzkKtf{B;+-#;+ugS!eGV z-hQ-57&*4xV{SSR4$>yGA9hXk%-0RPDL=9>l^Neze5U6skh3T$>A1^m{`s=9k=$Nx z9zS)*i}>Z*A-P1WOoyr_l`V&mbL=fl9hS=9s6PE8{ z4ux_GatT9NN^)kx$;i?ai}T01u@n@m!`R`sm^0nB9IncEU-P7o&JU`w7cRAvI+qEV z-AF7h6>VgHgpX)SwaA1$3uRWTM*>XH!336ri&MRzXaJmz0_EJ-d8<(NrA{DwXZ38O zA_<2XnjG}m-$1BtR)`W@i@%IOp6fVFLou9B%eW&+sR$DZpU+_yPP^;3>xrZF3TmP| zYH?R7env>Z;iqa4vv?UB5*zKw2ANH&9(dx>~|XR;}D zO8I^*8dMk~C8$_B`9~aDIW?4Zlv?E7;%xnC!K$%3-+c7RkR+U+?s)C8|J#iq9WmcB z(p9u*-FYsGmk~|$yY4YpbE#1x4OVZ0jTY3Xl9{W9--aza9C^EZ^bEzmVI2=IX>T=% z%Vj5FZ!K!Bbl`vO66Rqh5}C{0f+9{iEmdUb4)+Xq)60~nMtM{uEf`oPD0xekUGFZbLpzbDpu zz5l*ni|a*OgMx;qT2aH}3#q5-sTZhb5gtH^Gen*}d zCepc(MorN1O|A32Hq=QtNY8*Xwk#+dQ}P7&D@x(x(9FZ?&6~~@__bl~ zk%z7&!fjczL5DKg1WZgoqlG63c+bmsvnrcp5>ejhM2s44*fE=@ zb)*;S9IK9^kd(9onUjrcA+)Z0mVF=RZr;E0fCcl&IO++|;yesEz&_Pw4nF zeiOF$=m(Q^1O*sEA^cM^z!RN|quA2(SASL?F*jJ9F|_2d8-U!ta=5*vH3nh)@EV(l zW;_*oxd{46GYTZm$leW)-hNkx@CrPa%p(PJ4bm~??vMJJ=b(pG9G`*aGnO{l%XUzn zZq$PzECnN{@~tn8no7`@3<4W}xD|c(a&sx(@vuUjgkz?nA&aKbtMbc2-Jns9gnb<| zxHzP5cDfKeqevo9aITw2ODfVNansg8*zqH>R9$jCnK_l%=Pdq;1?^}kjik38|LT0u zvo_b{jS#h}0mwRmgsapaTwE=@tjV!?lhdG{Qc~H`fs{A-v=b$G$F~MqekDq^bp3DA zMVasq^iiSA6i1t8w0=Al!sY5LYsR$-rC#e(_i0zG|ArH|8pV@ezZR?iDGdjzME~h% z=6b;-S|f{$Ld3AAj2(~g#((1e6T&sQxc?S1@z5`sg1efYk1xJdaIrr_J;t+)E;)WB zpz;?{nW6@jFu!(|J@{9?+xCemKf(MEbRRnN*3c>j-CI8WwRxjQq&`F?RA!34z?oX4 z(L(Rnq@~Z;g`3`6a>Lz(gqZ`oIL81M^3df+et$W#LT(5&hriC%>Ls}*<{ql^b+=m& zBU{ll%~ z$G2ViNZM{G=i| zGMXL#2-e zM}N6a$Ms3PJ)`j>Q=7WIu2j}jw3;mF{WH`jiV~eseh5|v>3=!S6<_!14z`^%>2WDK z*C@zglBFd^^0kmduR>KjTwymsWY)VZN&M?*-%akW{5QVP{^i@Jlf~yc;+djlC!Q9l zZD7e3J(Jw!;PFFtiCO;B_$4zqE8DlUzvd9LCWuVjf`O}xj z>5T$Q3lLnbw&1td;ECrNff5qgA9kl*oC}{QDWi}^(MV5B{&b%UKZ>ef)#@O5Ruu8Q zOYG(A%uUXb_3h7w4OP`B27suMcW^cDv&N1tO$1-axVRcPcw&;Noe2&paBwpzG|mNH z4pGEkp9crU(;zCNfBod7BE1$9SW%_qO!xT15bZ6hMmVZLzm@*gm~KLNwc8{7`7BPP zc%a)+<5|%j>QbYaNwD=xnz`v?pl8qn)`ySKjbn&sweKGi7j&Xb2`SzRR)VIL?YmD+vQy!A$%J}(451E zW_$;)GS}gN@bZ5o-v0_ThG3a$L`WKvn(my^2OR{;wtFD1)K<GBGCd1sYqJ|VAo=bze&=ur z=NHrS3H8htZ9AE5y|SE1LDNau$Bx+=J9Dz^xm7P`X^OFZ2q90MDP zqiQX)XRi+$mL(vGkb)CA7-IJ#0%mF!aEJVYdpTA-tEh6g7Y2vUoPk*^^siv*^^h^ z(7M+5zkOJ&Hpm^Wa!NPpm|}T!V`*92iY`Yc(A4_w2~3_7aDe{EytIw@oS66Z-d%fU zik;j6E+n*_zFG~P>kwNxj-8)#b>VfqoTGT;EwnnNbjo$pEFu@IoC2S80!F0H9gk@| zL?pO8+$BAow9{hH35Y@I=|UtG8Ml+~rc#)#pSS-`M9i!1?ZzdbRr7b2UjCDy1DEa1 z67hF_TT`^`7qiGBsV}tI_BoQFgBBWZT%us(B92s(&9;{tqm?fdB7V#3ywbxeM5=g1z5p#K z{idwew-UNN_5DCJr>MF@t2x`IHQTr?n`Z@U@VzFPraIE32Kl7wzQEgR9vE<^`PCkkOr$TqAAQT2w7$0*@j_`+m_xE#)d z=Z}8Q<>=IMpUL6f`H1R=ZVJA4(Q-Q`9_uQ>gfH9+jm47dyH5{LC|g{0RVeV#UWH() z=gjsP=`W8HL$MLqQ97@Ek3~+WG7NyJ6ltS1@n$v225M;2b{AEyT5Sw`j6ndPxZK1# zjx;CXNNn;=zy=uqR)e?^-#9f%%$cLv1qSkIns{wavI^SCBojAPt-i%O&KGoLX|?ET z9B2D49J~;Hd*n#PE=Ybw>F5pJ(;F?7D@SPlIy+KMF0?tXgaM;KW+E!-8-edtA1Kcgr zTn*FFj=~SlD5Y_VY8RhXGlGN{Z$lo)I}sHAh4NOx+BVECA{?X@QCH|Wzo1*y7-9B% zZ+7Q?J1ILpMUqik{fQ}?xU~^HDP%oo#$09_cu1io-0V`CDsePi10~t6J|oD-3w!UL zAL)3Bm7Gj~lxmh-Pla|q2emryO1L~4DBdOgI@{HaW6)XVkP+kMZU^BU23s+V3| z!dTEHa>Su1LVe#}6Sc4tayVjPCVuzSFnabdVQ+qMsaO3=*JQz2vsmH+oKU9XD|BoS zViORL*zmZ&g|ZF?=&g!z>=u0;0a&=fbAEn!Pz?v+n&@Pmy;-gqFz^m7178Z5fhaLB z$fWJl&L6YfLrv!3{00oX;=0c83VJ|S-dXB09kNJ>qIzX#artn0+!q=FckgwGaZ!$~ z%uqF=>P68e#@OQC-7PMw2y)mITk2$W0aP12!$ARL-?u=+1h~2sdch?qcv_BI>_sOX zqe~EVZQw(vk|!~WuQwfDJdt0zOI{$WGv^B3yD5Wx%&7RVH=K1&L!9PnK)}Vp_wyGE zjQKr0`LYIjkAIuqVU%rZ)u+%@j-@(vc7m-Y`Oa-lkb27y6b?aDR5bxt+nwQ0=)IDg zjo_+^0t9sQXx%_|^`8d)90JiP6YU7;UO*LD^mo|OH*P`MIf7@AUWdpc9S+oWAGwL=*_ z;)LTS*$CY~@hTtam&IS@wpjZ~792u(1dNH{G|BBOFE5$PSkXW*vFTQc!@vgZC2Dw~ ze@~INkCO%8tmOEi#$%*b$RMeW{n>{TeP}@aW#!&P6<%!9n>p*J2(f`;LCRk5`g(t;+!(L0|Gw_;le>M#Vs^l<=&Rj@wd&@;a}47v2QLg@vY|zylp(pw*+9dQvkdk4 zVjI9vG*NR@EF_rbC?bxkYp7QoA*qGCPszyu4PWhN-{A*>r>}C0)x-^{5}#^{^J5zN zoFWf?S+1F=mbSYtsBGP%48GSvhTmOIY!l15msbe#r=T>kG179#UsjY7#n6$GO))_s zw@p9~^@B`fKLQ$iYV*+PF1MImC!OHZ_@G(_Ic3fzUpv}-*T)fpD;3{H?kX%6D85^) zLr`iO0DRr9(8@{Q;hUYa%fFtj{M}xS4JwevOyg07i-->+M*s$kRJF|^=XPf)s3pFU z+~fTvKaq*Z&wTsys>u~g>8m$l3ubOtwLx5YpC(ViU830T<#B1$6~n0BjCpuRx}F(; zqt9SJ$(nkp2<-b`X+&Sif178uq1Iw!@?7hLSsRH_-BYZjlj%57PD{+{yR~OE*9g+ z0|h#PrSa~8bZW{R9Up6DzShfPPvin9(ezn{M7yo&86TZFwfYwZynmK$))juXC$Qh6 z8{Gp&<)ov$>j-b7Lc$j<_$4m@Qtn(Y+}v5vd1IM+|H4y-9By~9q8`~J9|E{r!#RD_ zLAt-bQV&@*qUwJBBD?p4b#D~tRexEA#5VRph9sc<-y?-I_`?=mXZocZ1uKSX@+4JJBB5jHpexk(gQbUqm8V>;TF%1LeG5Pt|tH6C7 zhlXkGGZwn%K!JNmfzd^iDo&D;KEiQP&y!_uweaR8MMu%9!YWQqPM7LoE+wR9D|CGK zUh!ErMO$ycG#(s0Uj_MC;5P-H|2t4QaDmE%t6WF&hPCEKtHiQ9yon+>7E!a7jvXP^ z{F>Q)&kbOsgoQK0mS4Gv)!Z%L3vk7Q+%6niJ6C5FG_V3hImOpFc5lv|h%VbXF6&;31Ve1a#3NI5YhBFnQrxRi=BAe!#G&UFWZ`tQ$D0 zDQ!9WZ9-FltjY;6XI6zDaIlvE5r7y5V;c~97jeObG?;^y>}i>hDahAJk*r&NeC~^N z^rQYI7l*l&(gb3^p<}hbFXuIUw}4POpd?I8HKX?2}E|BE8F< zn?vMs!j*UnbJ25oJ;;15pkBgiA|G`WcCaYlFgvsicz3d;Bnhr{?T~-nDe7|l-;utP zj%%werzng8!RvTHrI1kUH~M220Y6Zd7KoQyhY0${-jiFc9p<;9W*B~QE~d@O^o(k} zw}|*5mydT8eVY!F+VTTLH&N}(!$^SV6z9G@_~3lUbT#^;qB))lB<=XN6#q zfL6mJzVbL3;W}b2fvw7aV>Kv{LalcikRWL4PI93cdfp&}h6h>bwb`S5g4JAQej)1Z z@;O266;q=gk7Ja6W;)oo(+W9JYEmSh1J1ClijMGZBYza)WmmeOT`B<$28%bL`iEK!(GOm9zE-|!!JF6t zbvsbIH8o*n(9WFa&{fv1&b@-ZQYACa8pmpSYOyJ?qsMAc%iiU@qK3ceDBtz$4E)qS zR?M?Hts}q}r$Yx$DvH4D>S@aVFC~_x$K|=r^7B@x&(WXH{EzbboecE`qqSFikEh=6 zb_LdM$pi;5-rwhx852J>c;80oV<%;wgMv~o45eFi1n$(Y#w;uuF36TSR)2B|hS%rL>AbMPqlu;EtV;V3ZGBqRI$ z78K7EEkZ~u{FgY5F&To(3#ZH>nby_wa)hH_SVFZ7b!06OZIO+y;-B?`NucwS(1K0g zcB|!2olG$SaHv#z!zm8c0Uw}mX(hCA%_ynPTW5@8g*y9p(uL_!ob1J~Eo)j@iZM~3 zMcmiV=0VhG9jcT86Eg>`=QNT6P=a8?dzcZXQFoy$(=md`qOmz>bNvv#r47rTwgDfv zSZW-*VdrZ!N|st_7x8T-Ru{8fzTx*edTPFQ*ZeGSv6g)<;JKH6A91Y*4&w(s_=i(X zV*I=M4+cyC8-b^WZ2b^CU4US8%IM;KEF{W6pGN@}3NOUqFVexoyE@@lBtvkg=o}LM z1_HEYVq~1^nKEXvzuL3=isx934LrhZ!dV7zLr3919KcwnyH7o_It=j@8`ox)k2!y4 zwVGM*%sxfg6wOXfqX!8HS(`;!S{H)Xn`@s6i&WVlA_`!KIq{sga>88nf(qLwriq6uf+d5x1RXn9=hTs6rmn*A3v1aC!{A;una&7%V2Gw21Z0P?IGP`gC^kD@3TQ2T>Pkxq?w>Ca@zFuWU!47G? z98)0S4^+hkIrMJ7N|rMtQlLOl zPqbZna0JCV713ch6Vjs^nQm`}@6SCyXG7C8I=^8;?Ztc7xL{&XHZ+f7j5ZpYYV(bV~#bx9R)3xHO@@k$Iu>n&65YZB78)o zM-vB%Erh(0r1yF2Jgh^i1|%_!znmxc&(fAviT<`z{flqIP23_0QjOk^#Y`mZsE`D= z%FBO7$gaW^VM{>>_d zcYmsxALSn?MB13jA1nVUyzR-C-wz_wJWxi))rj;K!ihHy>a)aE>%olC^CL9A*Yj%jdhv<1ne|^(P5((P7i%u^Y zQi3DQrKHPQgvAcl+Mn+r?ePlkm8&l_d}hIenx8*6?@#4<<8x!cpltp=3R^??a*AYh zdBjv^3^G4ZXsx3vMOEKO=wdK^{ax)hn-gN6Ed^ERBOZ5QDUSZ{&ft2SA#v;{-e{Of z9uE*OrH=o8T?ai%$5r|k5h9$YKgVx>PqQ_^UOtX zkj+m}Y)}juvH>+PJ1+ghM{$>T>A~f9?@MI_*ncHiDj@%MJ>CCSeVtaDh9^oVqA3hq0r= z-=ep9bZ03&7~h@$4Ra+L=_`X+ZZ!@3pE`y+&tF9q?K$?&lv_*4H#yw-==rkvqE*7t zSxa(W6|g8<`=5K-I0s!n#))!c4pAurpgLF+)(9-}#8}`y2FKK)2CuvTF1O;02?&%- zytPrzE_ArL6##L4=*U5aWDo}_dAaF*#A245U(^!zJ)C8Z3&H*f?>Z_&AFq=SOSU#n zR}Zt*JGVLY-O1+-^@_j`~wYG_!I<@Z4?9k43ZBwvjtWABIRR9OGpSU zdgc9KYVkC74{AE;_=kr^HK0UR=NE$W3Jv8=dX0)Mv4fU_9s@0&aJE|B3Sd~AI~h67 z_IAt!KMWR8n^T086VO6N{n(C9&YU-K^&fuOHLqt>BW1X6b6&k@ z>$K11oQ@)|s?JBqvS(b2=wAP(Z{U2iwewi36}n9dbcw)|7HBhbbQj1JLBF8qVNkCe z^qd^J9gI(<#HYT+rIO-wr%nvusm=dT|MQBvP<&)$&jy42F;E?ltOS^?EpUB_f|Il+ z&cXodzRtf4lFxo+2>P@Ifl~N%u~;L~yyPMgZ&44?YvPg3oC+ql%sq z$GOgboL(5PcYJjGS|ax4z-}%YVQ%;Yhh>OUmYKc`4B|oQ*uSa5Mnc-ZuYWz~c^)S( zI4p&t$J&!w(lW|M`5})*Kf78vqP^a254%Ls(sOgKHuK1JpzPi6Md0j;n|Mc2o%xNI zqa;^O23`plW&rf)F;`vRB!H2W&>oP7uP2t`#Mk%12=xnIfbcLOWMyT~7mKDw;oLXQ zfx-@O@Jjh1*V6yv>AM4|{KNK-O?H`4hZZ4(jKndD$}D?iBvi=C9*<2aWF(OzDheHY zb4X<*l9_d^?7f}we11>g_xHa4o?{)){kcE)eO=dm-QPiX@*Y%gu@2nDVZXp3l(44O zh8sIV1M%fxfyqb5CYeHO2d96BtJ7QhY_!(*eXQGNc)t;b_ z%mZz|qBlS)^C|ATFLE{rF!3LBmODzP%Hl4g3nwq*O@=_j$6W+9@4*iwd`HF!@Ck5U>JC-Je5x3Frvez?xt{HyY#lVbmM(C<8Fj9zwLhb(# z1$gMytl2d59aj_u_+4`6pb&(-e|KFGe<-&?VC(w9KBTaM9aRTQMz_UhhrroQjOBj_ zc@Rh^qpguh_ClVWI(4!_L*V@93KG-BXahP2<)W)}3j?sX`Xq z#M-*Cx&~5Q!kDc#K_%jWirfLVZJ_-Nj5x9{`Wf$m2YP4ADIF@#;K&`7EUnhej=3NwMyx7;8SKnov6AT-$g8d>SB1l9A zSn3=SXBmrOo{>>Sz2WZ>lDEu7weZdKaw96uyptx?$42_^zH&M1;8Q?glMG!ff7`(K zS|LYybYKJ2T?X?O`3OO?4~)pze>wM2Qc~X*sv^ViB#fLQ%ne<)s$5`q8mi9wMn#6QL`K6fU%~4JymG;pB5Qu8D1qFD*)Cz4A(f| zZSpmaqhl>dow_6hpRp=O9R_Z(V@KvDtb@65JZ-iVLQg3fY zbw+nJ#g791V{a=c*a5Z$R()!@pi6VQ=HDCL$fJ9WKLwd(vIUqWHtHhg`~p5!wQw3JR1$&Hb5Os( zYp@pD4SYQNI5Y+eFnvxMhue^oPCLWesFWJ*!f1TP?s1MzZIs&GwXgDHXN{OcOU^@T zrUt)7sSNO*)y=QTc$#NlY}i%Do=K6A24VRo392q$1#b`&48+K+UggL?Nb?QZER)$} z4{#SVtq}Si&9B^ZxSsQe-FO^Yg@W@9b6jS@8ycIf0MIwNv{Z&oAm5RL(~%7KZ{;^q zLWlzPs4>H+A`$9yNZUXgTvCqM#dr2@eNgpx^~-vv~;rOJ=JFID_cO&RCFIrJs5l?)Z?@EQ3abaG3;! zqr;ZVfU-U}xwkjxdxvcM29%F}+=dA4L$SjTm*-h--)4D2Yda#nr*N7kGX8!!~LcSSP1FOOWg(gD+8c){)lk_5EiQ(ZMpA3 za^XC{lgZffswNm2Fh4m2fr$GcDk*OZTeGn}i1(!|1y7jJVK!s#itOWYEZswkYRKv; zCB~TxwAZv8%ApW%N?U$rJ-2c5AsO32MEjbog3)=nXA@JKByhX^hM=Jvk06)ohI5sn z^gISFV(encJV|LZx9ssN(h&O&Vx(*67V)1pph{&#$+Uk!;3$Oema3+b)NNQ2KS%hC z*~S>C9ng*0y2|{_dcu7<+l96Y+$Hh947K^nmT9Yw@_lXd*GhmI(SAqxEE3n29%_=I zH~Pt-&~N0^GPG9%(*a&ar4AAu;RM&@;g{vI{jFddsrzc9r7jQg)g|CZ=OXM8XYnGV z5=2i!fn-pW0M&qapNGahNOuG@IwA3Zpe1$aQ>Y-!!=$8dU;Z@~Tj2Kk58IhPg^I=M zju{hoWKz)fnoIro;;$ekGagj#9@x4eb=?8MFcGjae*-as)#B#(MmvVt`yygWFCcl!)wTleDY>JIg8mwq;;J3JsDi=pC}2ABVJHuE4S=`6E{ z%%O-X9ox-ZkiQB%Z(}ov4?iH^x4b)kfTj{*CvnKgx8*(Dh1^bn{5vE- z&__@Xd~8Sh?4q@vbk>XOE7eEWyl z$&LX;vx(%iH-jWZ=?~(`w&B!GmuX(vRt_Fw{tTLSgD0^C^Klc2)2M<#7^BdZK96RY zpBGVw(?n% z`&EacRb*Fv5K^NI9Aezt0YfuB0LJ*7Dw+ZDmF0H;mRRr(^n9W~;wxY@(?Byj_z9vu z9gTlJ2(l1E3d$%Dy?2v_Mt6zHR4=2o%6Kf^1x; zs*!3n7x^@!E#D>sga6=sE>Ws5`$1Zk|x(Ikb zVLFo5tjpTPsc`@FWudG#s|d!Ulkh(n4%INVXkY1n5Dr<+JQC#RBQ*!of$dYUO#CP{JAg(=1P2l{A|YB0 z@~cWzfq`k?QyxW9=>tgqFF->=9CRMV6O^td{XXi$L+A#%$21=qacw|Iwqr6HC^bP; zbk<3lUvnB0)K>h=zpTX5#I5Dd<*0m^&6uFRY*Cl)tb2+-%|X9r7&G#sIc?jdLY57E z$z7S*N3jpiHGkSu)3y#+bBJ`?_qI50cfcrnr80yjJo>zmKY5mR%RMrrD#H1LO4F4; zlD}Dh?)VO0`|M`0y7){!wv_4U z=Sq8RPdRTr9<=?s4Q@Bsl_rG4lfa}9WS9Iw^F%{E^N`z{vzvtaRb)3z9^7UTu9098 zGNZsyDBiI6TEbRO|Bw7cQGp!1uU=d|F?NW9f?#-V?d7y zX!-9A583WIOHa3k%AYn4C7X?cp6(^$dI$-6mvr%f`IFu75Z~J}r!VRcstufUj?nAk zJak3c@{)I@xp~$qglKmZiX{fSK$8HFscCGiy^{z&=1*Zt#QzfzNNwYzlloHd-*60P zldn_+*+1V;pE_ozs>`v|QW8SgHW;*zz8R8gIdmsQ-NYKqczZuq5S$oGVBnq8R&;(o zs0jR&EfIm3MH_^SShUR}vVngJ2ddlu0JNch0NQSce8k_oQ-^O=E@iKp(fFUBap=D4 z*j4PYRY7%qI5l=zB-*$9urY`M*&|0+%Ed%Iiv^X$o<~S6Q4g>iw(9NYf8jQE)$Nzlql6US7hqG`*5QALJ^?d=@uJHM}pyx-e+Li2-dwR zA{*FKW4wAqhO;lQ^tHYr_Wk+lV=?aYqZ_-)gkMOLud-J0(;$5)+AGX^8|tyNgxwLT z&^`qnjdZICtK{1|42Sh0k5@lk!j`xG&@yhb(WHC?L3wF6ejDQsFBC!9$`{H00U=8A z7`Vxjb#@I&d58$d&yw_S5-wniovC(nb6;-OPl<-DGq+LOualf@TKFdDgH+64NrA+_ z+q3pfS!f2h$IP-?5m@TK!T$`Uo8qq3I-h zC|a}Z;57+Y7>oiJ#O22h*iutpIZ{i-O||Ku7EI4Y0F}!27YKCn{d9cCdO|!-rmMb3 zl~uYS%W}Hvq{8NsgPz4fcWg#0BXP)H8!cC z{|z#BR=-4UGiOHLGtM*}BqO7mHR>cl{NBLV&?60)C-Ijqk<-fqDfmmss~=jTteeSZ z&aEw4&wzP+4qEccKJKl(UjFy~(2|$sNo-W_i{NA}{79^#vuk-&FBp7$b8#1`Ueo@z z3)*#m-JNXxc~HilB$t7_O;T>2yxkzWlCQfA_aKWPz_~qW5#Vbc+$T#tD9<6oxJp!@{lX~XG_v*|GQek> zwZX)zk}?>~DRfkv;-p*DkrGlS954JQV{2qmppVJrFHm#jw(m=zciF@*9@rKm>(cxH z8hMpJhr`SANYZ7dn*$(!oZST*vRR$E=|OW1K5t-{h^q9q zxI8zhnMTALJqLd)5&+U%{UD-|ng{8F{;BQqho~1*-X4WXpZ0FrGje@C@f-cF;EC^i zP>d0-4q!8RBMVy?9v7Ag2SMd*aH0*OzFO^Hh7eLW;4}ir2*HAEfH$N3Fv#28!1TxgU{RO=5cv`M zpYSbz1@7ch6s_Mb+`p@zNSW4kb&x5~3J4o*#8fM$_XP^&jBNLxz>_rd!c2#Oo^eMc zp)GQB+2jHK+dhzG1$hHSL%?Pq&_4ni?Jwv!cwu#$WP>f@!2G_+OSJ}J)<*Fl&Y{8P zxqZZMpVYGI2E@c?s%K#Wva1H`Q->gi1QH?}yZPPS8oo9Ip487;5WF-a-S!$167}Rq z_lqq`Y>Y9mblSO1DT2EkG!KJqINyM>{c{F-Gq?-f+kkY{5$*!V$aMXHY(HM}L2 zrv&nCCXvPpfvFpE{=w85h=yhN=PnxiXie+yGN@~O83S%1nXd`R3VXAlIApe{ZVI7*t+4CC~>{TsJJ-Q_UKUalHPWEj-_TD5B3LgZ;#rY}4+ox%0JotEmUIK0_^U0YX3e~($K+{%)uKgRh zISBklkVOXGU>UiYCOOpbmk=6Ibe5KS_|u``*BE_mDyu(Y1582NbdKybd%O>Q6I)4Dr<%ZdS!|PgU=6@>@w?+N>Tnlx94OR(wgK*ck(W<7 z3ms9SY@o4>3~7m!C%#XyhwX4pm37|ALl)Giwkq67Kfoc>CHvAq(c9AJ|GB7$4- zq-c||LiZ*?KR+h=fc<7kU}wG4?-QJ#|{{?qsnA4ZZn-P*s+K6M+Tl)8fomT6)$U4tL+g)TO!&7rx(Ic?6sQ9gw*r|gv{5lVaLoD1Dw%=dRd|Wqizq~fo z4OX8ql92zu-ft-C9>0(U{q>hr$qrumli1TBT|WLs{o%Wt7HrkjzSmx^8@z?Mf+_P6 z7$PW&XmkG5heO8s3zyy6@&??9y+?i*wo&$;%Mn8VG8+<@z4b~k{d`P=4_6Oh^5t`Pk=8NNNYXxEW@F-U zMx0rE$neF<@#zzm^VnIL2i`gJBToa16T$g37Je~Kzoh-8#hb0IUe!+=q$^+VtlMa` zJ*DH;(kZ>ulhMfF@O~Zm!|v6mry+w_m@1j7!^$h_p3+sBH^fDTT$9W#??DwJ1zT$W z)RF+NnStXw*b3d>CwhdLnu-8kZwzR=y#PaU6cGykv9_;AM4N$HeCE3+8J_5pf$q_e zUFf=>IMm2u6{ga)A0N~Kyqkt`khG($I~I3;Mr>RSJANUz33jjJFYyK1U(^QpZ7tX`|K|yG|&9Fm@ND3?S^8-r*U%pP}CKt zx<6m$TI$>MO1AxOPm*+;#3#L6^EXb&48`j6J2ap7{IGNgl0=lzZU&9NpC*HvHEROeR_i?V$;M&6$%i|* z5v;@zi}zdmcaAC~TkHb3bliuQqM!$alUvCU7em&E5Hjt?D2U5QngBuE4KL&kNZ`fE zp>30reK0muu{SmPj^Zlyvwh!akx&zh(*^BK;xX zY9!o2OUf@HOf%0I^n}TU(geX*R>{RI;Kg3yH#5k#V4-|^&q(=QIq8U~B_CtqFCb=4 zgkC;@9eW|at9w9@Me7Sf@NGz~nzARl*dDoP{W!8ZTNR1vmx8c*!(F_^N_7)hyTi;e zRv&wa)d8Lm&|j*UjC>csKt8+1o5Fv65$y z4jKF?X8h23oUhBf>=%vFeLYf--HuW&n`F5J4-ZQEFm$n`IG3Ledmf^zQf+rGdFDZH z=AGA{6Nu?EsJ;wkO_d(iuE&{K*lNki*V%bWY%6gmqqjL)Z``vDoTXn$K6H)Ul2|gn zWp8%QO{O=^JX3`i~f`6s{-x2R|Fa7Z!Y?~$7bg$ z_3wWPFTnB8gsZa`eX%a`o7lhXUf;EQd82Q)-SeQ7LwC(tXUL&5VL0LF{DWHzlP?1z zBgd$S5(k{q`JS)!561n)6r~r}U(!erea|O(L^-GnN@&nf@rQn7EV|Eo=u z^L^2a%YSR7Io3rpZ^)|7CH(2sTQfhhUs1~D$nl&??1#Y3H^;s1Cn;QoI%qz{se9yb z92xi+nb;CZ&o1cL{z~uMfvnZ)Tu7`(T0>icvzX{`3ZK?`+BUT;4R_)bbn9d9evFgM zMfWQ|9*>nyKRgi47Jb7n+pI(-!}|2clX;tZ#b$HA)cs?R{VoZP4}5=nNq`~JWVOY$ zCOKt#WOF0>0YP++?{li`V-C(uHL_ms3GS?$tf*6cGOXG^BF>paOIRuN7r@+( zig!*fOS42ili2EwT{#^a<#oNFW-$EjGnKw>e$C&<8T~|@1w&oO`67)L=ZZZSc5Wp6 z{dCr%B;Kl7CqF=7fp@Z1uOjj3)EtWMvU%uqNWbfe`=*l%;!0Q%tF$OVY=jhZ=x>9K znzlPS*QNVvH@<(;LenlC%^Aol)itB_B5Nts4gC_i#&UXH#!#fOl*t#xFqX4|rT5x> zK-GLU2Q84KRxo|)Y?ieQqJIM+~d-vt>M!Z!C^n>)?u`MWHosciv`{%>N_* z{j?-k+u1d_(m&cJC>~LR^S9+s(mdk`y-c%_bkR;J{Y($Fp`0*3D}R_G6)8t0kyiHH z%Lnp(t*G}jCvuK#j0YSW_sl4XBF_~4y3H8mvuL5>jr+-)=85;h9@IQ&Ii7UwfrE}G&Pz?=2eVIN#D%+j&ALL{ zosl=^y||l$)nvk%3=g!}+HBsPihZvBJ+8t(mhIZDHm^X-kH_xFTA#d5mOEz`2dIZ5 zdYL^QpU7f&R`*a%ObkWgl0l^nweP~~p~>b?-%twjYFvtABWD?`1>5x_7CS4Q@Xo=K z1@|@X8KpMrws>Cu{Y`{gL%7B4afJ{^u*2T%Kd;GWSQPI}X5B#vdpk~QTxO*;_8pMJ z`CQ@-&ZIl9>uFW!lxR! z?5NCCl*)>>?Jz=cr;TjXjD=+Sg%85_2~tZb7x%bK=y0-wEGI-h@S(ayOz{3YD*gr@ zo8BJRE}X2*!bS6S?CY8H%a)RSK)JL6c?>Y^L%7`^$f&hbA>58M2hg2AY~lvVNj zEK6to$FQB(ZzXYp`}>8wwmNkvR3{w!Vm)G1Bd_g7v|BLh&e27*P=39&)0O^*N80+I zzDftfmi zigwd~A?&Ps{Ou{}2ygA42fjW2j2meh!D=WS1tCK!TD=GHF;h?8@fRAkUMv6j+DYcR z?5CN?Y$bkPs$fyUt~VhmIvQ2JR7tuU&A*bf27NxF{Fz`46fTp2`c>{Dmrt1({acUE z&nPJ;ec$qrGJKKZ?ilvdQf_sd9Ke& zRXB;sH~1=#(1qWnUdcgAqjq&#D=L5KeMP;g<(*d&vKyNkmZO~+mZ6o?73z{aK>bmB zaahIS*o4{FlpT4sKjU_XoL) z#{|-K{Q0gmkhnmkdvs$%q(QWoD$8X&cOvho*eU$)q>7eRvANG1JkhSAuQ?}LI9nB* z)#hKnQsADmS)d>OQ;9KorF=2mSGGGNZkE<~_6xUHPR`XML#BGoA}z(=ezQI@-%-`Q zuUYS7ugT1ll^1Tr{N~;>GgP%P-R18RLe9=cKff2IRUMBG;oJgx@CvQ(4Iws%1pYZ`LDXJ;P)`TF1A{;s+gK~uDcfl0$KSN&Mrzm zW4P|_dPQS%#9otuUXa~-{GM*irbE|=xBs&UpN%%7zsESWxDzw3&m^oZeHG;_PGv!H zNA2B>V!o)d!315WmH0+eN*a<8sUx0mK%s4@L$3Q5TnP&lAw7=4Xr0yP$+WBPxe_q; zIfBj~-l$fCvA zRTZafN(Kd4$T{)wIi;-_|7xA$C|D-R3s1!v#V-4iHkRQz_x*{x%Tj(5Lw`>-V)$(7 z3LEFw{T4QvyTQ9VPnKt)nO%amW-p-7E@5(t+?Op)?I=U+6%+0qO!w0Y4#R$4-ObgY zGz>&UPY@$pN=(-jnyy_Ib`?#=FZW@3e*SG{=i4DHKHq@d#~&fXsz^P{lzeMf8|i(t z%2<-JrWlHjwV0iF@?GkcczFJ;;e+?{Q5fzC72!FJc~NhQuuy{e=vT8 zhD`O-zA0tycQ=&fZvUo^yV=btL$3rDUY)mXxeSlL!4K;cDofUf)0(0zdo$heWXv>idNi!2znnCmWeT7;EXU8z!ua}mFKzEJxM~Sd;fS84-EW{BBdVNqG z>=$?MkSJeG^z&k|91w@lgOjVvw{ole%KYof{IJ?7{@u@VECHq~w_TL(%S)j71wOq5 z$=v`8#zJR)Fm_~Ug`J89d*S52j2--&2Fi4Qm%wea$yrX8UIVMk zKe=YtmU*pq_C;oVl{IC`mQikIT0J{(Z3}^#Xhm2a8Ywj?PujAro zU!q!k{EGM7)~{ey$3EU~dGy4MqSE`j@1u_x_kr?^*`k}1x(KxIL4vFffWQ!7HA9dO zoOB}yBk{y$VJ<~0z$4^FUNR#6A6eb6*8`(C#8@Np01 zkFtE7QN~fK0ii}+`P(iOI~+7UA;C4JlM)4Zb3xvS^O_xa051Ao&^=TWb8>R z*r0q1e_<9FGy%dEKWca%$m@eQ;YmQm3*diVM2+2+KwUc*HX1B|s)5}pv4>*jbhhu# zREC)KvnQ=jLz#_-yjMw0#*YktfW)-M!fendyaH4>L7yB&8~z6x31`d!gE!$vV6d}N zu1Kk;(Vr=8fIlLeq!BdNTcEx6f0hvU)<3xk(I+MCTt+(N}k$ zLyXX0d=0?HkP7riz3xoW^gEoiak*do!Lydlj z8q)s?E-rvyi+3sqZ1(v!A(aN$z)w+-i3CONV1+ESt|#0;x2l|m*<&SlcK;ret6~X_ zUyr-rgxJt^DoPaGb4jn8d3Z~6LW8F{6`at3_YoZD2GQ)h{U01nvICD=F8*68IaNsl z52-2(@&53Ll05z0Ryx{Y0rZDH8Q6wmu9ADM4};@F00CH-lFK>O4mj^`+QJ>RNod{q z<@%p{Ew&N$&G_tKkDQ0^XnXh18-aC4kEf^mL5FYeI}a)z3j1Y$7}A~vmkdA#5rgXR zikl@LRf~=MB_=SRSxT-kE*reZ(-@tpRF@C)cZ8&H}E=% z+v95_r}|Wz3)m{@`-%Z2HCP5)@=(JKbqS0{x3Z%iTULOYNJog+F!=7f6H>G8)2F0? zOt)Sg1EaaXsC*C4(cu*}8@VeLPv+^{if!Tj0iPAx%f;WZ*J}bx?&UfYY zgZsx|d~d;p1-$*CdkumQUZIEtc3FVaF)0Gv3^+Puu9lH~MPsj@%cBw% zd7BE`Hr&qQ?GI93iLiB6hWO{$zF&lev-0cookGV2)TXSa>>2&=i)VAZ;2v}DK+$sQ zP^n8K{2n8TU?(~a9e)QD0mCW&vnXMk5>;!SF5LtU-1Mk+#tx?5{EGy!GwUq( z!b5GTcL@0dDG#vDL;~l>z=^XBM4B_lhCn~n z{j^$g{=E7G>SWa3l><2m>N2Ykra4l6F=VR5o>XqC4+K;;s2o99d!%^wwvP1P5}Re0Uza!LAeEV1VWi0uO< zB1A|b6fj(mc@AX!V8+c0gX5|(kvprOd2A_-JC4fid(x)v^X~XVE7N5587H(`QUU>r zJ|3*H(xj$5y{vBo*?OuM7=U!kVWR;fH@6ibNtV+Ua&4REF5f!#>I8`22g|-u6uc*q z;kuR^-K`+6TV4Xb>Mks&)@aL4Y0l&69prK zFUQ{lMHnrV5l3O@vAl8-a7bb&le^~>Trg(Y~OXk+8xub1L!(Q^|Y=C_>@lRc;_xA?f~sU#j!)! zpnzY1*@jj^NyAGYUDBm4dIy|#f0H)=+W&+VUfA%S6CPMVTenK|@wrqv*YQktbiSYY zICn4ip*FLO2Lg?9_MB9$IHxa{k+?qnS-Y<4}zVB(O7%m!u@2*Sr+#KP^ z7>halLN?KbWCT8?fXJ;2##Y7SAYb;>65_~5I77+bf((i5YBFa@BHy7WFlNz0_fL1) z?lCE|gxs%sIWNg(oi(6v7Wk1O;LMlc$RcdUxQ@}Y7H1&fPZsSJ9$H3ZTnR0Sy&X`= z#McDHc$k=H1Nrf7sr&H#9rnWWVktMw^o?E%w$ zPx0-qU6zOV{&jI-SWK|)JV_A?|$8E9R9*&&$| zAo4bt(leHJ^XtLpWvY@3zm;0%@!pquY@LA_Mof0UGYI!=sweUFog5nDcCcORWI=Og%-nCJ+WIfi{{NcLPS&X^sOKCSg;-0Uwb`Ae8`3rq~8y2O}4|ft>MH-ec z+7zhRx3C{Bz0qRYtz^$Gsu8L2G}9eHm)*!Kcqy$eHUHvdBbc*WUxdSD%F2DV2PgA+{m*Dqu{9x#p`^Wsr3b zgc2>eU$)Qhcg{Xq@XLZrb0c2}yrSMh{SAw41v6w*9fg~NkYME#WF@!NEcE6SNZiI# zCD)eYsa*dO6N`K@wos@O;>-0~-3tEkVx`XbF!!MfVE%Mo)X1Rmb~D4JW||?>eisS3 zXLmq&0T@}0C*x8|kuN|Ji^%ntr_b~~R}aw6)uJ%$jTBVxII(|JuCc=LkPPjEs{LaJ z4@GKqA$pZ&_r?qw(ZNC0F1a>J{^OmS99?Dxo6&0`#9_l!Nj{d8aWmZ_#edsuy-#ZS#KQMGkQ{ z;asb(+Itd8T;*u zl#|tkcBO$?xc7GOq<6a`&$nX&A4DmM_jcIN{lrKy-)tnZ4?fQyxBRR+u=ESU8+?U) zW4`<={@ZrZMFL71GL_U{r&vedK># zTywnUnx5VU&EUGE4?ri-BL(1Rq*YM|=}2~eC#&d{qnFmeN~Q36%?{10 z3rC$&Tqz9q*%--`{hxbt3UBON+{sxWB5A=x_* zxf5kI$^`%M(9akme~TZp?$A!L4I!fVaHkj03G55yYCq z&bT3dMgVRQkj$ZToGRJ-*4&oWh@i)CblH+BF2yaoj$xK=qCtWdBL0ZKUtoIVQr{3K>66&j*}#o4M9kDfCLRI=z$b zQ!m~z)2KP%Mf}&Y%IPh3R|@p&+%hKq0RLeTbG7W5btq@DtYDZIqow2H(2?MFhN9KE zDbK{4>Z*@IioCh3)dDMnEXQ=b{e9APhmITzw(+*+;**Hl(&CSfINh`5H*-2|8I!ja zAewr+I`xL$p+P@%BH=38wr|J1#(uSpw!{DY!V0ITFzBd_TfP>LCEm0;PUK1pT>VXzk1C7`hEhQQe}D2zFtMu zNihvPQh&9GIxHUbtXT|4k|LdYo?T4)HR!`J*X`Pf8ep~t=vBm$PFOu%HH`<0FE%kJ zJOPHEgkAykFC?_Dce|s~RgV;JB~Zwf3CDm@!;QMj_dsnMr9Tfc@35P@KRM4=HA8Rv zpqPwriE9VPD7Hwvn{U$y@skBxZ8lIH{9isq^NUNkT}!`sJX_le7h{N?AL9F2y_?dg-;2qxqL-Ur@`?r|gfZOeIIl zR#7IlnP*5oJLu5-1cf)XvW^jABFnz|)0k?2)BFWlwFCM^%sYQ=wigJedWLm^1$O{@M zNOnyNpp4+ez^ia#4mefHcOcWkyzbyvJ_ly=#Xp7n(Ngory=a z{cq(yjaTDx#q1?3#2!mtQ9WR!ZPb_;=BCd*{~AYkr5psIap005BMC~`K~x7y`NGD0Uhy-Jyt2l3lkr!#io&~y zc(*SAv%pMrw}e~Igq7?tT$OoMev0;gRyTDrJ$e@!tr=$)WzlH}~oaL|CAN#LZo#flaDBlCloPZ!iLGD>Z^Ak4v zYJzD+b{Rt2i6L<2<(Edk)3-?5h^GQd_OZ29FRRE11X81;iY=M+sH7rGsx<5?uhZ3{&^;%rALfPRLsn9l}o!ACO|Ok2ku!g`yu4OorYq3k(EM8S7LlW z1GWa0EXlUr^uZl1J+FrPpCZcKYu^T!+5r2L0|?0vQ~>=HuB~BZM%|tUrxBSvNObZy^iv z_HT?lGR60Ks9+Bs4}={>R>_SOM}9@d9)@~KU8sVOYJsjH5(fJpu# zNXRBEH{8yO?f&)QvA53VMI3k8;+!}B&;(dqCB7HU%I!%Lf85EEH%%ej7MyolxpRKc z9BDW{n*ndN9U#DZjchx!kH8^b5wj~l(HLsSCFq#Y^;v&xs-@NT?}0)_YS zg#sU-aEJMtfy*~}lrLEd$wz(Md*E0tK%$y6`GI^`KfkCEh?P+;WnhVM%lRvnRI`rt z>3L{IcS_;MERBz?hf>b#J!t=Txb4UMXDZs>f`P))zQ6!UL>LYV#^5_5zG6`dD|&_? z=#SB;0KQjso^PeX%4}+z2o0)KUU^*5!ZyPJCB`+kifo2U?YJr{$@~dbvI>2r;KipQ z{Tr~z_3l2@(J<5VxAQ+IOC_nF1 zd=-6v5wO3^J7GTXa1QLn9RPc)F+}_Y-oXt2@`kPy%=rcdlWp&wi`DP3+Bj`lru%h` znVqUY0OY-%tF%dnNmnU72pR>65y7`&!Ba{i)S`l}X#(&A{3@b)kgv+d}1 z7x6jwz1ADneI|UFoSM7Aw`GXhnu&r}CrT9n)_)MMcPc6|fhKnI8J@$x!Kq8Odvvw> z{qNAiG@8V!Z{iW@(yZBHejm>PpVn2M#*hDxrmv2Q>ixc^JEf$%kq)JXP7x3R0V(N_ zR2l}PyQI5C8l+=LDd`63?(Uhn?|i<$_5RCR! zng@W!=>J@ah!HxH+2+MUIFeEEwvd8Py~=X%`eFRjey2G|Y+GO94*vEjZ;@VdX0k(d z(SCK(DasH@=oVnq26XxXG0p#z1`xLyqLkO7EOT<$0Ai z`1TQC@oMf>Ni{4!0-*K?g@aL^5DLhzOTyACn|Cr5F`x5t3`P-N#24|iQWO-x_6VRp zc5Bvf_fsLsuJxzcv;t)ES3iIk@eBqdST{t+gMjP`ZXeL_7${TFf>p-#kcL5cDO=#E zc?o-{W{;AB=H)&W8lvoN!;debXQF?@1@8gk0DvAp6ppBQ@`$xPi0)!=CvLM#_wC=; zUl~vLlDV4jlrmsjT&ul!E{;ziQgaJ#_`jR@eSi=_X=^_rA`#WO;RdtKuSemm;sLYm z4GeMdWjFL1ko!=wi-jXVHNcX_Tbmmmp9Fwjz`zJ@I2pRmLKKntOdX#Z0Wj~&!8g{P zf36N%w?A>8+#&D(P&?h#IF7w9DZcSo;p3vKMcC^d7A;rjD>LsP$drH>(cOO#?+oyL z#ZB-FP&`JW$qSsm1chh(G}#dOaK0VZ9o%#AQd?%2{E#C*u@;>!7A_)x`^o>;n`*&E z`v+hMx^B|WcK`?>Jt z9#}|*tOzMc+URNhb|`(^U-?W4|JSN)1pssS^@VU60QmXp@x6{ez&&=r?m` z0DAd_8$fwK2^O006U`fX7C`x&(=Doq-&2B-S0U2i*>~ z1;UuVna26hqkYEQs9M@JF`9a(oDY88BR`kcIe-A!Bo94ZY_L8va0mQe3qj?p{GYOj zon-M;MvFxER5s2{F)_*lUZ$I_7+_m`2A{2mDE6(ZR4g1SXN2__x@eIaoF^VQaWT*MD32+<$nb@#b)oCEtG z8%{b4{Ma_kh5jup!eE_n4;O^;GDID+8OQ@C8qzz5C$&vwg8bOAMdSKzE>pxljW*dW^U z4$0*ixbQY#U+?^#j+tfFm|mj~e$=u`5RF&HLhJR|c0OW#i{Jr87? z1pwjal}`j_Uc=a}K$D#yS;0P6?l}ot6DOVEY5qTt|TG zhfpygo&gWx34SRf9X1^*T(fC_XaSH|P0R=W+yX3D>~i&v>4I`@cP|or$q^|>0q7O7 zCT7x=chmEEHT1=gPtVZ7YK1GlW4(lS_xZowr?BT&FBS1&rkz^?aMvYZ2u}Y+8#rgV zLC}uxufsKsvX`a5E4l`_FRr?GwcMxu*A3vz!V$g%SG`67m3nba0YdX92{xF;7@72J z6`)xTutNcj8PGhiEw6nZPYAt*L}c7PgSXVJpZxGlqN7YfvT)Shp+>U4AXy##Odn%r zxaTC>6Yy0LmZy^d$ZW>{M?i09A_X9t-w*!Fem@9Xmd8LfuofJoN%Fvv+6Ny!ZvNNK zgQOJ)-%QQ4TD>t0RA$(lT`37NkUIix4o)%_oU=>}#at0|ojQ6lE_%>dyO6MX+a zoQL!-0deR`g^-tBf2Je))4jxNFpikIYq%`%W*7dU3~c27KW_fsy!1`A6BU0Z*SUCi zKHy|Ci+GNxn}9 zYZ;yvKb}=Uesrxr2mOW+qDCRAMkB%*L+d5Du6~WA0f?G{9$hdhg<6)st5(P?J8t?s z$D%nzRKhyr$%Cp?p=N{>K{X6LVh?&t zp*%bBIgrq~IJg%(>`U`{^>@DM3jSHUt^nA*n80kn^&H{Nh7;-rT*AleBU;eEs(n)r zvzPEkBLwtcT4%c^?iK@mbZTN$=rO?(^*-FXm#Zam0@GJfJ7wci2Z;F9Zrac>o6Sr7 zT`*-*!8ifv0;Ev)IiaWE$qC?#;wzi)tM^2!ME=8^nd3D2Pua4UYo_n{qt<-Mws4gD z=@0zsOmE@`b%|ujx_iXB79C5%$L7;g;Q?KSki>38;;5h9{_}epe&0W=l$1<~?|yI^ zJPcX`5147MNt>^2iUEm{etZX>m!+6;Xr=+P7;+7x$A6FXTzvdMiXb57&0W%}6#=6S)CimmA7r8_0;hR+J3P0n`rwB&|ts z-xD|+sLB5%6Jcq82W;Z~=CXvBS<46Tf7@~JFD!Urw&A(|`OoIvb|sR_B3I6_kYzYb z+D1>i2vGhS911h;KR7R1T2%ApkgPu<}rJl)kd%4e&T+Wd@7q&Z*;uY(_ho%7?4>+@I``f zms`F=R(w960BvI?EHy$7#s0p4ZK#cjQ6ddPv!9J8z~*mX2_ z3=sGrzQ_W}C5Zhq5IzO|PiGb!Lrr*to^k|O>j&O+no2z&2@u97{olZYx#hS%plpeE z;@Ng;F^4hkm=|~Fi(C>EuM70G3Vvy}hvk`P#Q+pH2%UxG7V&&32S7w`51&BZ$7UiR zJ`n^_$F32CAh7R2@+An-Vh*e}eEwI3j7m&24oB;1pG!OgXb^Ymm?UH)d#PcH;Qjw-ax~d2OoERIque2ns*}!pTz12K42HM!m#dSv$ zZI!84m3{~f=ZX&$urBT?F^RBP4FUn}$nUo_wloMt2(FV9SY(M}Yucx5{WL@~zko94 zlX$*G^JZIA1~0is65NY9lo#aHAeNPY*L0MpX`nn%J;fA=TBmp712_bz=mkGMyMVZJaffvz7!Fsof)A&nc@L!1r=SD!gFiRQo3|tPD7w#B?3{yw!l_f z>tyv2a^$jz@4KXf?n=U-0jpWuf4N>$8KF_%Vw}*}T1-(a_8v=w?r`K^;ESHJ>onwO zU%SP?b=XK__thS7JG;5#BdCYDU7>0YkGF+`D@=BQA76mW4G;<9KNDENA9wkRzn;r$ zGTw#nNeOyTW}9&?fi>SATtgUdMP*WeJRx|^+v>e5M^VleU_JH%FhMLc8fSw;NZcG} z!JfK9berp-=r*&XfddLcs;hm28{nX~VAOExZ{X1JGzE(PZCimE6e4hDQU9?A1~`d1 z0urZOaIokln5aI2GN`T&?1_Q3WC34GUdzqZpeU{5#&3#$T)?r$3^9F4((Ma=tSH5{ ztN{cDgx*K_1TRh17cvO!*gP5$!)xxWSOCaWQ(Br1LQysVP4`n&&}_kuldu0>Ps>-yu9!GTQJOZAg_`!`j@=-USsyE8G(e zs5*i=XFL#If`bwi^@lKrAbvA4L+a1F&VAcZ`)@0&UyXdqy*vDBF3VBs*4{Qo-Y?%E zusmeKmUIp-)5HAIL`0+&+=6Gu1UH(30oI{_APkV+hLRdHMoTb;k08jYSJ+)ZDH}le!omKtZTd9Kf5{eCxtCNg2Yb|D|?DeF2SjY1os7?yB-n! zSjfGDsw-32z(@}aPLZ#AAy<>o$>?GqU?Rk7ojJ6B+%o9y z;@#1>e5U3laC-*wkKhT`Fkw8T;agB<$UEik4p<+E^R$A z@8nYDCxnL!nRr?8=Z-cUzRgvy6rELhFTGz0crGC(pG`g5$l!=t>GG!nKnvw5Opuat zv81#733yhf%pSw~e701sk^QGS+uNT-)H8OQ0Mp{le7-TANq}V^@a%g8R!8jtfaV0k zzEgX7A3*Uw6SfK)6v%PB=nUJEykUM5kWvm{UqUo%J)&Zft!sdppUuBuKtl}h7?Mqc zdb66%`;;P1e&GDZ;nhX9tkgQU&_#5|_!G#tuz$@`IK{f&M+oARw*ojT9U)>bQ(%15 zfG=EAe~1a^5eZfXrn9U9{PW5FpgL-gEm2@}kF25bMxBT1%)X8T*AcFso5Bk7iGb$m zHf=}~AIL0ft`ZASW={h2mw>CwiAMlVK)U~{t?zU$cb4=vT$(= ztbr5Y!;>Eh{5<`^v{M}L6uqMlrE$2w{GKp8-oWm54OY&)S~>L4-8kOg1WW2$b(IKe z?Z5=NoMDI=0>~EdiXPZ*ZK0^=qaxx$e+hJvIus zmxO}zwh86PF<~zOkRY+!6ENkWMHsVRtmwG!tr%HQ#W@wjs%=)E<3>s3?S5flVnz@tgF$TtAr&W!rf_sL(kWa%ddV8d+))aYCSsb2so#%O(0 zMYbK4)%b4GAv2(8A~zpyQ>+cXtn#tC){F!|JDV5RURQ%3Y1NqxG7uX<+KCN-K2*e^ z`~$rEue>0^nROUY;YAY&viWPef~9%2Sg9<&(m!O}>($OKo{ip^?nHuzuLB?t3g8l# zBi8SMK4$+mPMj)6=M{3&HMkeykv!EK0CYqVVYiAzZbSp};LdcJPDxK7viH3)y#C z)EF)i$xR&-;Mx)u0;0Fd_6Gk5Ws)YxpZ{33!GIsFp_{x9!kYHH-H^z&VMJ8Q`NYSM zx5pnyU-5)>X{z&5TpdtpU z*#sm8Crha&*0A*j@WR(ULV)JAsx5HI3NZ9&syT#h6WF;@e+97p{xgnlFG}{Uuk?gr zgINlj@#6B{nv?wIUPlG}8eGQnZ#nC&G~o{P5j=Gbsd|?J=!?QVA0awT=-r_-c{j&- z7?jt*){2WmP%Tw&2o>(J_jWf>&0_VAy!6qy%;S_4`+J@9J!6-#bJy8PH`6WHKz1(U zM%f%b;ZqFPuP~Scc!`0oCrBlf50RP-tzid9p?R*FWE((?9dE~bTit(oeC=@hnB5*7S8wjC@clQFgEGKyaCO<7I+v*`kiI)HeZ-Tfbv+6r*H&gS!e>*i7 zj&96jrf98|YElLu(} zSZOWH^6>#(EJ$yzfpB+^O2f?UA(g%Y$*xr6WlPq2;)DnQafjBd{Jby~g(I$D21{3V z%PA7K3;yn@M}{4R0J(|?-!HpbMB(z0P2cEhAJ*k8&HgNgs=bDw*^IZi+4TB_P`0_mgYlAMRC*zs5jWI6Hf{dhf?etsF3~7SJ#k zy8-!TPz8+kLyUlMY)W!uCL9Aa#&BF@MQd3f_<8WF;+y^CXmrKQxD#fUc`U!%sqb=+ zz*YJsPwn(!wfql0fNu*}sCa^utboM;FuUbC6T=>w%->H#DS&57V`kc!X^ogenL1SB zp;v}1@VUIIVhcWh2Yh zpc#P*bW80oDTih*i7^}g^ia(2f;@K9!3GlCxQu6GYjjaCa^Vl%|4o}5}+7!r(Lf}93PKFDooWDEs> zWmB|RfHH)GN~RtbKMUCD--1T^A$&lY_YRWG^&)m4GpEehjSbQ?E3yb-4$4ozK#Dq` z-9jg~TGuyEnp>E~ORt`8ePm7dRA314iQ)CaJ#$(>QX<2WT$O1Qh5$ z5JEcz1LE_7z*_z6`+%eVGk8A~Oms!O(WlGEH+#86asgJN!l&7;dH`ugf-9r@MfFp9 zfRTX(AZ<(q4&DXQ;=nx519yP-5b_CTf1VqR-j5CY9Qz}o@SbL8h2A}g9TDtVm=gm) zR$?xIW-e$N9k8zppqPW%JQ+EMCeF76qUCpMDU8M@D2Yrniemp4rx$@e7dxL1$i*O?;~P|WmNFDhmtw@vydiTl95X<`erv$z*=U2 zX69`*o0!n;4E7bc@Dk$j4Sr5@2Yh0T&hvW&Av&E=xar0lzOv@IFP;veo+vPla2~f# zqf@k8QlKcnD2Fp?nVK{75!8DNN(5?p0m=<}Z;%Y4PkMs~&VveFfFJVYPWpi1o5bAaPRZ8qJRLw>{V;If7G6ym<68(U?z?*$clq*>9kGjYe4@iqE7?({1JZwY~Noc_qagA#uCUCwEEeuwR$^h-AbTw{qc^U+qgEEf&Z@T$qTfpXUkj2CyS_@G z?4@xAAJ>Uf5<+(O0lQC14`2ka9{mHNs2?In;Xo8lnr^=n;UR=0XB}hf(X{Q-xp1ke zby9=}9;BJ`{hIwQR+=Aj6-8gx4SYDNBhjlD%=;U)4~P^(A-6cd|K8(S2u&gMA`)Z; zH@%?j7lUrGqGgb4W5DFf;3%ih0H1`Nt*b+^K1yOvU64->R@ze;!r*S1YGaxTf4Mn7^8m5!~}tyxg=q1qX^=8q$pl z+3{BNsUmE}H_r_*(DfWFz_U|l7fAU6phEL<6BOAjcTlrwOHpDoh#wyzBt}Y|ZW{RZ zjQF+JGQ%UEY`H&c?GOL%BKgw#`)5up6$iJw?c3%p6@}ydK@yV$Ksk}jjs=1QXqH6* zd8lwofDloc076J=4lw9{_7w{1=(%Y}N;%})1Jvu^J9p^&x`&n+m5;EOR|g#IYy*g6 zILB9U3s61)|4|4TWk`hy1B5v$TxQTuhzFf9o0-PF2%WUc4grKVLpSkypB##j#$tfP z8!}Im{b^??+MX62#Tsy~@Brp#ZRrKuJzz3Me;R_K@nbFZ`NcqWPJltFP%pa7KT-u@ zt({;qDBNZJLniq9=nf>}OEqT!h(>)h2lwT*3D}Xp{OiQ=J#o|(@UA3-sUrCJ(lTs7 zt9X-x5O5aj1y-saz-sZp`2!dM!gwtcu^*8D=dYrqyFjcR@$H`t1RNbX052#&n5jQ* z>GXM1!q;u-QL1~MAwsAwTu_i0Z`S!t?%jkVKwaemt(od@{BR89UF}nc)+k>lh1xAX zy(qF3hejK0S806tyhiNtH$Xp<{kTVu;ObC;($8wwZ>Xqg`Tg^ENvVTq%=*&I&PK1D z@x^NA^3a;!oHsUhBt~N7KcMl}jv~hyv!PGnXRMOtHF_JAJRHXL`}50${+-6xsj}QH zM>6fk+J)2#7G*daYu54|bF{KzG(LpqLFy)>j$tH%;K?s2uNSK?UG-EQRZl}p)_YaZ zlvTQkd-FC-qVY-YEQQk>Hkr6#^V2*zpEtCZ^X2^R*~1yI<$8;kch?%d5$da!d^)8N;9eU4uXQ~p~+-w z!Gws({f!mcnP~wpoG7wxBte`=Iwf}D^nTjExN`L6vS!_)++#s?2HOkTM3qWcPYai>M|Lm^Er4X|jK+3}ZvYpC zzIM8&=2N=5+6kt6`*+4UM|P-y6Uk)ID?f#X0&xn*hq?qBc$DWaGct5!T^Kcdz1g`V zYyHgVg_9#MIp+RE@*NG`>-(&HY9;7G(y7wocS-%7s5L{V#Zg)gF7!&-e|WETuaaQwe7X)YTvRvQ~7qV`A>(Y84xd*A+fLzrwW zmPkRE=}O3l<4+Vr=r=kap-BGs@y*SRp?2{h(jHn`_yd6+UZdwelFwLj8dC4!MTpA%8^^(2^u^aCm9v%y*ZJ zPDPX|&Sf&=bBFhnn;D)-b(|Y@q(syuOPKzpp0f?tm+wNgq1LL_t$8uH(P_nY@%)DD zp3tT1ySyyeaYL6uQx4;=+{XhO7oB<(eQWGx`c(U$>z{D-S0wwW2v#=N8)!p1$c^wSh__29Ekym_DNP6Kzc+qVf9tUu=mIV= z$TrNSm!3^rqq$BJ8nQ_LJ#105X!*OO3on316f( zS({j0Fc&*HJ*{5vO_XKb$&$#+C~6RH)wB2_5N-veZ+H;qS2B6b-;f+gQG< zqk%0<9XMRvi+ZIdOThE?{m&HGlJ!XY$PBNRd=-g4_#H@X3pdW^2h^gW+%bEM;5x=U zY#9EKieo;(CrBn9FI(^6{xs1B$3-Ub#C4O$e^PM9wr?RdWXad?5X9xed>N&AJw>$M zJf9s%M7$F4)y48**9(ni!wKYN=)&i@H^x{*1NbCA@DCa*H(3gbZQw297Y8FzRHx*UpYex<_E&NQ}^Uy9kEWs1ZKc4G> z&A&Hl6vXBNOb{#2YFWaXJT#7#-02)Q$JD|vf$NENjBPlQkoMv)?At4+9rH=rkH{PR zaysNbz4xh2P3tBnUu=HDjG{dIMvf$OFsU|=9WHwF(uH%y91jnwZ63HaTyhQa>_3f` z^|GpVvl^z!w|pqg!`QC*CETtDAGT(YB#SXNPKz^GToc?0kA}U0H)pC%ODwh9e2*Xb}l%&17 zK0e}5zz7`blZtGUVTNjfN={eY&&FnM78D=Q+*sww^X+7{%E=OC3_VY;H)+joB}JaR z_Gh5om=FA}BQ1Jx0qn5)_zwdgDNe}0?tzczp6PPkIt93#xdVTI{BRAYxS6)G55jd? zwj2Uu9Ju1fw+W2J5pcwyAJJ&7{`>`!J{V;ck(6?B%6;|EwfD`ynMWe*l36wu_1sb) zu^~=}7v95v0Vcx+ST-R`<>8O(RI7;Y|56A3R}vdn`XNr(f52aA1^bnXK=0+ME&+fa zRiu<=)a!vxzUR{^@^wGMt0Bx_pu{QojioEa$8;3vQV<_GY?nK`lN#+j>1N4?l$2xbLt*sPT+_CPz7n?Qi8`^xfzr!>`Qgp^(Xy?Fr zE$i&J^N#q+O-!R^^``^i6M1;^jYwG1B{97G2fgKHkUfN|3foa=yX+?GcJB0>QOD{U z=1$1+?YlvANnX~T@CAx>PNT4^pMx)8=5$d;^(IBn{aqKEz|wQWZd0S9#>+7WNp!X2 zlefc)?>qms2N)!MNwHF89j+)hmat7gQY=;pq()*Dx`!}d(T$(eWb47Ua1ido^`s2M7*SQ1&1xv?2fz(3_=<3K%sNiCBND!9sP0&OpKOu18Bl^T;fn%<^=g?QD? ztlO!5`=|ZxPcEsvQsN0MAsvi9KWSeKHA-O(bcv4k96s9tw~G#h<_|@^*w`?Jo`!tG z?#-X!+CFHoa{4|ZmE94Vmn+iyIzcavAD^$=6f}AwX1%8DNmwVb|MA*lWwz4ZX`OuO zIo0s9I!#tB__pz|70445v@mMo;IZ)1bj38_J;es@@*7_lTjsJUB?14xUz$Ijot22a z_J!#tDqj*N5{{gtFqoA-FzVxY(maQ1PhI{IFklyEdq(<$c3Obi5T9kC!X;-OgXv&t zp`A9IJ||v15ioo9)EtISP)ZLED$#qbwc?;#*?0%O_+V}1}520^zPugLX2*`6w182SXwX#9xIruJZOm6tfl`Mt=$GF<&( z=^0aIe1qVjuWPE;vl76L%`?TI;R8;;d?7sooX(wiwt+5mxaOh7_V4Bn?LfxhjH09k zrn!AxgWf@7xqNNl3)cInRb+xpbEDLf-!pA6rYmv2u5|h5?{mr#;eRBf+x)j`HDmD7 z`2Lvs`wPtP?y6fG=Sr+bXHCpS3*xj(*;~|%BfSLliD*eex*eU67jPzR9S#Zb(8hp| z$~q;{U;jGetG;-j{5U}P>1L`j-~{^lTv&A8actjrqlsaB%D%N~k1T}<15 zroa?=K5ppTTN@XLD${v^pS)rHgkh$pi{U1to+#UinXpz7yd?9zBHRfWQcU6GI{?lAwQ`iPgk zuFjybL(3vs{j}sL$*O!UF;B59MPI^9AhoJMTW zXc@sN^v|DdKK`JNy$zrtBpVm~lD@lmK<;F??3&#+u$rJCaYe1=t~~NcSHapJM@SfV z67Bvv))8(VPo9wDGtsV;K!{DXrr%O$B1jW~NSBf!^}x8SRX)OzP7SGTer+7G--8X3 z@&PNY9u4#lWstl842@n+ZM(%eK@)IZ;?>5k_Ycs&Geyn zc1VJnB>M8lkWdyUXW2DIP|FF6YuxPIacmjr?I*1*ODd7@?{1EENXn%af+hk`z47&4 zgqfBF^>73dY#lO!P_s*soeMN_mF<};M6xnT;(&~uF5QH;M#(eHGT z)43_o3TARnmUid&^=l3LMe>GHtLOTCP+ot&w0$^cAIJBCTP2Y{p_?;atm-C-O63lW zh(Ownx0OPb$R%qp(KHrJ{E5FU^L04}(_C8Nlksd=FpiW>UgE2U@HTo>>Zz>aOMZM@ z+Dv?7OGlSO)9IX>mqSAjo%i#s2TTYsbCo=jB)($gkZuo;P;&NTydx?8{CZxkG&JLx z_5;35(mjb}WEF9&Ss-0AvD%()Gq4nWGS#&cJ=A>V{`Mk0XTo8rD(tSy?*iI&eAAVF z9C_|1`Cu8>aQb_S(_rd(PxQdB@V1B`afVraj-Pn5kseQUuf{}T_~5fu6h=UOz&PPx zW)3s*@4$mT13{VEKS$)?hmR-HzFqfnHJ_4B)S;i~nXUrfo@_Q9XJv zp#6wgaoKhz(emXs_LY)OtNA5qz{g*_v_*ElZOd=u# z`Pp@=HWPx+51;N5Z$F@)Gi3iRG+bKJ{xiQ+qIA=^);+Z=;6RCMCPyWSe! z(#FysrJ_h1p5+tHb_$0#cA75ARnW>xDYi|+`&Dsi@y{-@*yv079!0mbC(o43H-NDX z44j+Nm2S>+(ROpMWQV~>qPf{VRvKRv-h0^-KX7YFT$8M!s3@dZd86Fk>*bUp3ooPL}gZ#g0!kbCyAJ7J-B#4yiQL(U^N% zYodXUoTVp?z!vvw*|4sWE(ONVeD%2YFRcCY-XWvp`8}n_BwI6|df=hjvA2=Ao4GX- z)+hH{*G)J0dweqq$n(5s`)3opU$CB6Bz}O-YZUoed%aI5#M;hX#pv-m{JT9`5=PJt z?GN89)kPLzWVr0x(5`k_30<$gi?8$;1*w6#1HOje`gJK*`QO!!`MenEJd$8R`@`kc zqxTvOZs-~0JgvOMi>8rhnyvN7u<MEll{Kyz=?0%Tr0&KZU3% zpPxSi7Y{;Q##pyk*uP`PCIh%{C_HJ|f=hq%=Fs`02Q9F#7TcT$kEHDkpngRn8U5I`-NXGxJag@h< zOutDcT36hc#ZmvYy}f-!Gw)0|+v_5wi5mQ)X_|w6H?8_yaVK0RAt#=Q%|NMmCobto zkU676i#|pvtDnS7Qp72&sF^ALhKj&gjy{z{$o;^VcW+nmlbPFofsjCLIBFrk|1R}z z*!w|VmkOC&ty8_X`mQwp$UoEw)5eW`dAPD#RbM`q`8IzU6xI$e4syn6%Hm-dp&0(< zby>n^suspT5lcD~AMQLxeOa>W@KEj(MlBkT9f>34jM+5TFP0@pw1`i+n)0ciZc4rM ztv=>{i&hYO?q@B=(3?^9b7+lBSKv)(WnI2lHO2dul0$BqVG{=nEJDBCKi7dg?c5%( zwR~QUe`FcNx+9}z4JIFb^&%d9#5_T?C?qcowwp&7ApOhvi{sg>XS1gmz}hT*YD73z zo~X<{({*=TJNv*{-;M!=nO>wVWQYnk_OCinD54dbE?>(jT#;PtJ1CuBhBm}Y99Ai@ zMcz@PKY0EYcb_?1souVws?rb^*`sBjGoDDz+X%$bw2j`__2$RSGkG~{D0)P3^Cy{; zbl7vxjz1POQeX7f-t+5Q znplr+3k{SPMz%j{Q6=Bb3ztj^AO2QnB9!85dDm9-Pm79j8G`y7!2UaMfnBJ8-x0xN z&r{F6{ef2E;_QT)LZOjS$wDr9G22j*CJPNe3ZNZpr*-^uirpHlA7;y6e7}hGVx{83 zPU;ThU9k)~W*Vr*>SHApI5_K(hA1klxA2Wzw{5MpZ|w?>+o;S*b#T+qIDl+WKfPV2G~*G@FGR{}Y#&BTc<~}GJg~JMn>d$h-!z=`Jw6vU)`uw-3@ePC z3oLB5K$UZ^1NL9$PQ&NisQjU23MLbYL_CdXYG{f=tNIFft_+Q9tif+_1=J=qgJ(cV zz3(u}68j6g!9H&Jvrf~xX8-V|NMlZpO%}f|>;}w+2nyZ=o4l`Z)z~158;T4{W0k`= zX~CuP>s%{f-rFFxmr?UhUoesDE&lw-gv?}Y)bm>ZjLEv89ofV~UhZ?>)G=YwSJuN` zdv5BWDh#Q9@#vHS!UYWDH5xaJdXL@^EVT2d^*|P!b+v5Em)tX7)W#*^)@LdR^j*4% z(qEEgeqcGf$##e&3dH_(8feapXF}^z5c{?|^J$l@i>B|J1IY@;2+5#|?Nw*3& zW~w#)_c7vfq|0nWl>(`;H&N(~n`N*s^W4V;Yxe)yX`>$ciAydAM((KXST$LLxY zMv-0dT3@P)jxm+Ly4G4yStl$~dBx$0?0rB>AC_so&AediEI7zNE_jKq%rE~pQv2AQ zT%uFq7F9j6Uv)|BC_nFMC?LIc*;(YirtV5k_RCw8$+b#klc4@7_cfu+m(aGx_A)1a zesdtxQsU~P)_rEG?e)m5Rz!U=i_GTe89OQxnV$*$i$bptQJW_>tC!DTn?5ZZUgUcR zxZa&T>|nXeKWo2CC^w;v`xWP=hNout1qJ-`_D|M`G%ssfZ_W!Z%23~F+>T3*5+);U zMz;~=)KdkOZviY1y-^`0VwbUGj+&`aG_AQ*B%|1B0W4>HpDlg*@*yf4pSb2%1@_8l ze4277jkyZkg2^hv$}~b@qau@!R5Dvl%^seICcexJV=sQCMcppS!A}`kF&9y3!`Flj zvXiJ6WrWyMWIk{PVD5i8ZhauAR# z00)r}yw5G{u{;jAEzJ7#T{*Q0H+{x%zF)F~-tVqwO57+d(>4TQrujG;fx%k9I! zXF)0=;m`EYvLiZz@6ST9SdoRd% zKp%VdPvTy=PK)L@Rgo_7wcktQ^(VBjesSiwEDj~VT&T;o28e_#o-JH)r^?EmJ}~Q zqvPbBeWOcQnfbN`lK;yD=<8Cs-h>SL4b(8DlKr39}r)B zXD0Yi8AM*9x`ri&|4O(Lg+z=T+t1XITuQ0x&dGhSDLIPkhdlaAeV^+O3Xg~T$;njw zO5}nxMuIWv7(QxR%;J>BI(m_I@|vot=T=TA_|`+8q9rrNu?n!$3D|VslCX?K6451O ze81r3=fE;Z3rfeAA+ekGcOLOi)6pROr#PN}aSDHQt^6YGy@euI_3?nk2${}fu%q6K z%M3|HMfN^n8;?H8E)8adt&+rQ$szF|iU&dUAJ_|A(MWZRIk#O;cEkRcP@^2#Kw? zHB*^_VoWn#?F_mVQ9q;ux34sI_jCO^6kXi!EB9yXr`hqQV3=6f^7tYYNrwTeVC zP~laWz5&zjxHqT3{UNo%I~0`tS11idEu%s3pEO>-5@$;^xzcjJPkVD@g3%+EiN)vn z8y)t#Z4X4ljAiJ4ONZnAy~HW|m+^>@OOx z%r)M8V5Q*vR)2CcMB6KY3dM>uSQ8n=tx{MJU_$BDDb8J*GQYm5^mcjs@MCnZM#1QP zQI1O5g*3TbH`(Mcs!9;4V2Fo|q`{BANG8&c5*81MRFqLY*jA3_oq*&;Lc%2gci(b<} zZ$4?v4zF+?@vreWzujO#uUB#3aN<(FGtWw{y!}E!tgQP-EYm2(0F#0XWmq6lq5FiO zFM=v8F;aiE>6_dOx2Ms|vy}=#dNrfL_M%gipT6#vQKD`=7o9apmYNRK3_h)2eppV6 z#qePN2yNuXT?+#UEODJh?mgTXAqMdu|_= z|GSe4j#=_&h0A*MIZ6&^)H5!_2%SFuWo*vV_eQK*J>(nE2bPLPRl7pkDLs>Ir_x_Y zQi53LJAaGNadT*YC+*SEv`3#3@L@B(j;v_tDR*+P51r#$EZ=ElBj!bb@cURd{gb8cNQ) zVCFG1QpM(yH>WX#0*Q6VF5iv`7&?pBbSDdMkEsD zqW+x@R*FU<@n)JPI2{krOfpp!r}J+b7LE|tPR1g{vc!i#i z;kvJV)~m24=I=HC@>ORGr#LrJA{%-V=9PnE-)=bUY5t5ZC?Uw7c=p~U&BRo(D)#cO zdjf-DrMf`9K>dNWR5GmcMJc)dj>@=7#kHmEj+ypwaah9%;lM@`n<#2Ep7J+$o8V%i zt*?=ZR4FFMo2uW5rwy~YC2KsnkKPZcX$2${sq^RueKwsx;`(WvvOD(P<7+*2p9tM& z!SrUXE18GzknGI2Uz~ADOS7B2G-X}F*3btyzdKN~$TZP2hPVAmZ&NtV=f>N1+>+Pu zX}4ASQ2d4-O$I-q+rgf}vK7-K_qAyXrZ%@7Yo`H|2$7AAU47#CF&iUhM)28yg71g7 z9nGEZA$4MJ&+8`a+UM}_SBl0vaQFuHxPO|wvDDVOa}|udmK$<$B5E;189epz-)R44 zv9UO79Ab35ctNJl-Fu6D6l0l!6;<;O;?=bjH6@=xRG0SWM*sKOjAQaI(oeqSe`=W) zxeq(~4V9Iyc@L?{JRIK1sxwl)s4UnfBWhD$7*w-<*%MWQmX;m=W>+kA>LyY}fKfz(gNk@NiryuUd=sRvk>9F`Zm%h9F;Ahj31 z^0t?v8M#oF7SxGVmtZPpFSpUT`B8YxgWN@AsQ6eEM3Yn$-!YlpuPV#%BdkK=&#{ni zbC`$)UXZN~A+BoV=h}j@su)e}x=PZn!m0|kVXZ{MLyq_f-LZ}zGWPl@CN!Tgt~TV8 zpVL}XhR_vU1`q!1cJ_W9C=DJkFUlvrl+P&*iIx}OjVJgzAcZpg$)t<_^sxgMX3xb;TkK{@ospK^1~ zOmmDs5T-aDw+c{UV7T8;Yj2fuS}!P_Ks1|I++X#rZnO?O@MjaV8e7Hf>~y{NQ#qz0 z$^1-Z9@9NFo1bKEnxarrU}w}L{aUsEXULB_=#S-%kIagmapZRbt{oGPa`m6m-6OPR zs9oZX=4UraeLTNvl6^6l;{_Y2-pWjzdu3OP|KaB!Uy3j&SVGxSd6F6bSwLrEF;K7b znX&-=r>nh&5kHHx=_^sJbP^6D-o02RoxUer!{?*UuJ}r7>S?-fJZ%jso3GUl4|1~E zZ`_5#6@Lf>budvMe{*o>iqOfcS(_8PS5f|OCBd$yJVrKPQ6Jn5$|K}GHeyhvCj6!I zu7zDZ+%mGN*ne{6vE08EOm$owdz1Rr&hjzta=1lw@5B3u4?$A2^?0TDG|a{?k-hQT zS}OyyzXg@(#@gjv+SYQrf0q*WECNoG8nj6vTbN@ROg zXNj1xGJ_|N6o;r@iZK4frYOKme{sVyovPqkzbTinYq+qAPOgH7GRnN(NIwo_s zpP(!c4s~I^A)4}lQpJxh?i{Q{B+=sSxs^)n7iW-F_aAH}r^VTt+PS4Y*lI&9r3B7Q z@51HARI`xG1@|0l)3NfF*KG)V5A$Vjoqq_dPrk~1XTi_Ruae2BxTJ{oE7PrnB<7U; z^(6aM&pZhEJUO~(yNJx#U?BaV5y~Y9C4~s~W2ff4!33=-|2V-Mu^#@8?vHWwlrT%h zm|*+3N&a3QgZ<7n{QZqwt{y&AD&) zo|ir9VUMx*Q&p|G)|_9R>GbBJRCg$u7$pXe161a^7$!`2!<|3o(Sgz%%?|OBnDl6@f3y< zXUHn|?8OmUF?KY)Y=}v{^)Z-4uDP(;T$ZN$h5P^LbTVh#cFcs%| zB2a-s)G(J}&>qVAJ_Ulbhuc0H>EpvGZ=mF+?x0enO*S6#FQx<5oGljvkiHE8}sC{-4P-IeSjkBiOG&=XntroA-d^Iq|mFiX0cuy0Ycr{kQN z7!ziyS9+O|qQO^2mHkd26M0VFe!t)IqPKyKg%srwGUq=}x{iW(Zj`wl)t_H0ju}h& z7YpE-#^3Ga#$MN4;Tk??^bl~+^X^sP;h%V5XwTCUxH3Lm3F0FsWpxz6FPAOfasEPq z6;%!2WrcQS4~C3V9Sxq{F|PBFo=VCw91DMTG_WI<>^)LYOL7pfX&3!DqY^Q|;?-2f|!! zq8-(aRw7#-vMSZd3lAdtIJT4t5lJ&BTV>MVI3j~!M^V~&aNUM`KnNhRkSk&sFz6ts z9|2<~=nE%eCNFx0?o8CIJtx{!22`f>VYNvUJ1;vYYwFJRtJToU#uo9Mxs~>O5rFyTb*T$yu5X!F0${MI^+`GGIcY-#vPFKPdr18xl>SR2B6pIw(3BNCKiQ3d zMrmOc{27poFd7=gR9V+057KoUO$66KmXs&m6R<#Zj8^y?cvp%%kE>(Qry2Z1+K--# zZTh?I%iu?yQTo8rgc$+d{ZJG!0saPuHYsZlzaGcJ@;%y%I>%p3wksk-TA{F)N_3le zaTgkKqau`drZkFoOR!MYwhHHvrLd(&4b$gaNP(qS4@w_#*FetcFcr)p)K6SHvpnd* zb%hr%Yea~%hvQ@Xi0E*xpsPXJ&?%8qX&V)3ngo?gVP!<7**!t2L;NPSBA(eu2eb0v zO|xW#ibXW>T{p3WIvJlxk1|Ylv0nd#8PTo$QA?DZs~n~VXEv=mBtwS~B~NDUM84c`VibeF3*(PnRF6r1sP3hA)QlFXi* zyw%nc`_6^klrEOJ1u;55%0i&Au3LgoX-FPkls!uPqnVR2pL8)H2DSb2`b+NcjH$w+ zrW3}I;dBwf7}o4Ez7Ii))if$v-$v7Ljg(!~IClH|jLJe%iMc{Ekr)kAHx}FE?{j*F zM&Jz8jsJxa5i>fVff|LL0QB{X=0&`wUo1(;VhQ|+x(EaYo1t6@rRTKKcpz3f235<1 zKgX{o#v7f3002P6m{+ur_;3b58_gjRUb$T0Vuf9xB)k zd}{Dp-);yOpW-)dO%+UdyC*Bt`n}o7H?)GkYzf#91upXQ2y)qW^85t&$$r#4ArZOG za1OVl?Az5LFd0hV7PYHuJ+?B6l$NAf28iY*WDS==Txu9D&4d(3S1-An)8+1esZ$_8 z?IBIyNgChBSh2%y;9L8K!zD1sT6#2}k&fg_gpXQO_>{-U*W5XibD}#OL-MSsSp+O8 zxYGOXADd9caUyw1>zs__mJN#>VQHc)6p@fDRGB+jqp)Wwm_$*)Xq=&>l3y;~LEcaT zHVeKmItk$?Z)Nz8oBiDUalL{vsh%JXgD8e9a&E@|AFiVvyyWw zoKAjlkHA?Y&l%XvpEL-bZNyru5T3>ThqK)=h|9H5A2PFFVZ$8$3u=fbbNS_I`4v{7 zf0V#UFapw*CMZpo2N~QR3|Z{1Jq_8mjiXF->R|U0JuzIlRd3$PTa{QF(l6ozVWV2Y z+1Vd5mbn^wjUY?OA2||Q$&G305h5$2G@P$Y(THQGvM>hMF^ufu-Hzjglv9#+CCaO?9&p8*XMGDQ{W;BarL;myK4iD5b!q zWewho);iII#61UuCv@i6(51W^LSXGP|D36wzHi-jdKP_T!an_Pm$H0zF+5aLirc{6 z8|^Ea4Xqe5C3>Z!IeS_)P$P1HQXeAqu=JVdd8}D`HV7f6NMIAG47OJJy642c2!-7> z;R<8?PCfyC-nD_B6eG+(F(#O4Oc0Zm;G`EbmHZei_6hb7VjgY_MQc!$E$~J89-LFJ zA~^W{$2}yaW9<*}fUrDb=~*L~km*K49XrA-!57y|nmD#Mlp9X}7OhgDYSfW9Ee#_W zw5FWaAE{;?CuUA3n>gYq5~~VA&s@j=PmO_PY@M#3X#1)QQRdWciq6+?m2hNHXC?FH zXhKJctBT!dFx81TLF;vOJJTjTa?74PiJ0Zrw=Xik6;?!2xoYPG9#WbtO&ldl7;qa< zrEC0`uM*E?EONK8GuB?GUOO5V7}Fql-()|Xfu>oeLzyW<**ds_zrPPS4_uwt^4Lqp zxsCZV;m`Az#rdPa*F(L|uOAQ$hur!U*$=309vK???N{=bTkWkCZ1y+Z?9 ztq|-*9KoGXfhcH&srR)lZB`a1b7#ht-!_8cq>3{V`#~-Tep)L=AIkp(oeu@mGP)EA zHIGituI$Y|HC~h-1Kis^IDjpUt)0Ek4~kD$O<#XJnt?q0w|Ia8iY4II`r78?a=?aH zS8Hbt@Imu2;J&h4_@h{f7{z~B>OI6YbiB&n#Lk%6uy_*HOJpfq!X*OE!XYbup6N>I zJUqJw-XtBhnkO(Ef>GV~piXd3%ZeR~0zRgZ>XC3p$yCwlsYtJWnkM$|>zenxf6(7| zOoM5$zXnRgGybY_z|YdO*-e!Y5AX)A3vw8^5@Xwi2MH)!QmOLELgUN{Q1CwnO=Y?# z3AXMTr9>n#p^ryXw0L{o{=>N2oEZ?S8yd&5QJNIE#0R0^W#BmGdf+Kt3^Sr(mO~h; zr&1tTig^X2PlwR#H;2#^`Qd_^P9tst$BnYTpnT`re!><;F4@EH@n&9g#m6UJhc*3h zD)t>(JN@bNehBT5c*Q}#M$&sc8$UT=KiHM#&{i>f$FuL*pi4$;DPf3#+f8Q{byQq7 z@PcO&(ziaygd9R&*IqL7=&O>%$#f^PEto3VHVS<=t0>SfDDXRlknl+nQ8Di2#+A$w z#06(`@|R4I3lCZ57GX^&tD_?z`_!BC{q*B>ANAy6-ygMVP@JIB(DW8*?rz4((SJI~ z$y0+Diz6bPy^&lEWt9?_^VdC`2)3LSX2ejM0u1jNxK1z8wv;ZT3Y*eizbG4Q7TS2m zVa&o}DG#Y7%-=IAXR5gXuE63gi4Bo9;Y+&oxGd8a@4L_s`JmLi#r~1sjR`CAP7L%d z96RBhwwn1;XqM|0ian9%w3ZpFl5aue0NNBEUpJ3SSjsxbe?SECY#uK>FCu3SfH8HPg- zfqlzq`ukb@zZY<;86pa()BXx=ogbRCors|Yknh1ucq>RQYbJCQ-TfXp8|*U-W^$s$ zI#jFU)Z0Z3T|fBj?OGG;m8-9J4JJeqQryKGX5c% z?%2#+x5)P%xrs|Hc?+e9yw^q=88Jr$FQ`03ITOfK(UC=mPP^3(fi~_+ zoZ%=FIW$ftX)E;4J%=wh88y1}X6z}9s3eg9M2O{_02StjsVUadqJ=ttsmLNx6K|5X z^t#0=>_5v7XlZ{JD%ZXC_#364VtP-nczzD4zlHe^E-_vJG6KDeE_~LfVuX`Zl3Zt0 zT*J_^PUP~i{_e|0y<%2%87bcNnGC{B>d@OYSQa~@k5z6;v)9RJ@OiN~O37InqYm&; zNB3!`=qOm%la_VVk)2!>knyDi;~l^+^i6^Fp@bBgEag9Sfc%qiXioD;(LHhM;Vsi8 zK1vbio8FX<7e);b7Y-zk!*V~uTa>-ZCz@MUl$81qT;wI!7T)bLONYx$CQ)V9kb5mb z>kSh9YP5A8f4JdplX0nJ)kV3nR{1F>9T~RrV~E9>QAM9Bwx&odS>h|QiG}WTWHN-BUc`dpQ<*F^Q^OV5noM4Lz2n*t>b2Pa5>-| zl@h=>)s(c0z}itF@FroD8j7kwtD>8f_p zD6vr3pNElV+4o&Uzq8ojh3Bw%o1$FKUws|=eT~$FK35q{Bdub&q8p5QnOz?Fy__%G zv*#?$iDjv#;eH~iCEU0GZrM$c20_f`F3PM*$}YcE)WxIEvbVTPiu1+b&qKVf=`};T zWwTZ0RIa$(IdJUbUp}KVnBn|xxHoAsXA`f;+RSDaEmX+(Eb4rrjHT1A%4@yIOy6thj zpz=F4HK`O@V^GMnxXjgv*wIXnNqGIBBtTu_|hpu zT;`)ov7-EGRr`d~z+_Jss(|Fj{>#|QV4#JKi%BJrfAkMI>6+T-Vox&VZQ1;*%Blj3 zURSfd=h$xyZvV>b=bZ5<0KSVU)g(sgaPEPX8oDfcQfv8=T1R#cZpplmP3iLxLvCuD zx$`zvvk)e^7ko)v%^PvU{Vn=fdWvb-uo^VM@FOzXzY#nMHmo-9q=?Yw)ModQjof); z$ebVLLF#_s;z>fJ#Tds^$O>r5rKo&Ns-QZGRB|1ueRb~t)DG8{^MMIGIKBTqMZ4f7{j=wY~N2>0}pB^)R%F|CIAxBh(TMGQH z*xO)Uz%S87nGkhLh}ty%4H)c?Xfw=P^;8VulFHF9gXAU@W`~$>fwSHfb>a zK@i|ztQQ)7D~S@<#)^s}B<$-?P!uH0ljR5T*Wf{s)aaU&X-~n9VD|yT1RWJCJ%J&> zXU^}IKqjG``Nl+{Z{*Yb!QiYf-vWb{BX^_55o$tE3!4GpXI(Ky!x3$H!sNKcmi#CZ zxV07TIzZF!(vdZt6X%kj*HWt_RqIq_WTh|Yu(5K=-K_wMsztB~qsnd(;~r>k9iOl+ zv{n3&-Lsu)aZ2CaF1FsgofSxaet?kqwCj~qpg=d%v&*pBh5j~nI z%M?;Eztwa@3-?r*k}jlzz1+-+k%TwOl$g*9%w?!mbedgYD-NYp1Lx(lNZ{b`NA<~v zJT0$RONqgmNI+z5*WGLxuIgltk5D^DF(^k09mPXrsp+~8mj@i7=&HoRGeTXom2*I( zmzIJO10$mQab8`q=+MLFc#nRibP&pH&n!GFukWqH!oUzefZl17KTB&Z71o0uls2&x z8*ktxr9Uxfm0$5S-e7&gu)M#UPBbkz%e5fKwQpNEMrF*|E{001WITha#M0M)OT|hP{`m zL8q3f@!;KhMNeb68C0>m(9bRTgU4GsZ98(_I znWAP*rSd(u1);8!sc&TuI2soyR|}F0;FzJZIeDAjHA0MMI3G9_odi#K68VC!<|*wt zl$FUeY;$B>ugtQqp3qWO=QT>HEnB<~!OcBKHG$t=xylN@Y=RC^a;}r4_|Yo(=BV_^ z+wzZWME$`ivKh**-^2(Wj2Y1~qb?^&_Yt12MB9A$%;Gv}$-C%>);HAr*fnX(7;GRx zHZ*?)+Q>FvVak|daV2x*ueW0gSC@cGSl%j|cV@XEk!`Atk{M4slhF)*=X=u^q1aw2i~LxS6Gx6jjZudglIfN>+lG z!4QMUJ$e0fHl9D+`nWCOkdZ^~$i9-=dvVZ&*TME%-z#FPt5Dc!2=Llio5oWR zXjaybU`3FRtf^+|;0ec0H%y{>pYW81ZsAYiK)(@57eT`LbsD%tW*!Vck71j&VmK<_ zpz^ayM9U~-0uX70r3n|%vL$HKDvL*kE*bxlop;cGRn)lB;`?&3aj~h#0=9Oi010Hj z7Jaf|0$uaDh5Lxl&mbwMyy;d-AM>t=SFu+LbQB?4k*NFJyaiBXNa)R%QD;$teH(K% zeP6@$nURMs8Yo_6V5MM&b0q3$Gq*ek8Tx0-a>pawtUP)-D4doLGX)T3&|>=bQCd^DEG|h`xbln?$5?A*@{Hp5ut^@pp%|2u&1Ceq`F$o_1Qz_X|S1FJEZZU@kolE=~|{T zZfPlYjOB>A3%4;s43PChxkXf`QAF*gk0rxh&`Xd+)RH|r2{D^{46{70X^VD!YobFC zZ0H7tD*)e#8S7IyP7)T?EaP%e1v8I9^X1je{*L?_zgWt!wUX0(9}&lZZo<9m5P^|T z`L*Q`UqDxz2_RuC@L#Vy#1CpmO{+)goy>_VQe$E5+<8lsOlJiIOPF(<_6b`e3g4=vnB|8Y?KJkk|QYNuDO5>X&f;w0G2qO7+hA_g0?6lFT*hj z9x*vmJl7$I{pAWi02PIj6bmi_Tb;y{u7lAGiSSrOb;%$<3FE1x(Szig*dT@xcH`y~ zU*o1avHNBoyZa_h^mdy?+;-cfar-55k?oKC6uFN+mK`%Nb9kNLbqQ-#v$X`?p`nwWw~bLFvxu-R z=JlwvpUVv~Ac~Au#x`_0)`onMIZr7hliR!g(?L(4Nxq}FZ_M}Zc2=H_6@$>CmhIHC7n`R;ZfHB^s#<*HJC z6dJSaYAqKfY0+rMMoy!0KSN#Y!kAPYY2>?W&#Poc;Yh@*vu%iIdYEU|- zHJKKZRC)FouzT%Q`4SulFirmogEK+~HPVe08mXljjr6-j8MD&CAqyPxYMHrL3n()r z@ru9!u-4phY)D3Ka7v_IZDnvo=9MP!gDapNNRdbItYsVJ6teQy%9UuJLby0Hf^hUI z*`oueaoXzg2Q$tacAimFt%LK5hq^Vrsb+&xnYK>V*I!DZ5oAhm47Rish@iy8NH7Uk znVZP!y>s6s1Y9ruekHNtS2<8i_dhNyfRsvNXWvh_z#9K}An|A#_|kaXg{L;eYWUGG zT8B5Y_-^{HvL8hLp{pS^6%A`zJ1E37*janN&IB=IaBv`~z~AFgC6FWvN{v0an>WhA56=v8+%BcUJ? zQcS8=$^$jN*EDKr2ad|TssqC?O-6d4)fR)oBn2HC&zK~M<|&M6m?z9)f7#8&qDEsy z2+YQjSkbBVO7prNbDQuCC@j-xrCIK6j0959gtNtml8U<(SW<|L=w*8Kh1Q)bnqoAT z*)60Z&G3nEF!q$(UJDD!jCg}q40;AA3?6dp>o}#l7%%AM0%}#9*h;W8DO8dC17}k% zD9xEbzW6(aM-JXzW2zGUjoSiKrKlXG{1PSkQ) z)}R~D->3$|nb@l7mWswl$P(Zv=9aTM_mPm^)+kF;;vQ(9|yR@=F?B?o%-@ zNBdPZ%n>HbKnq5pBwekwF!$fz@zG$3*3c==N@L_GSZGmV$u_M=bDB+GqXPEoA*Ol; z5eD@P8H$ShyUIT}Tzn>nOl7r0cZU&`EI2`VOdBAXUAbuyYE|`vk;>RfBFIU&(JD@c zPepJJqA!72x>@lPje?M08njnDSQ6F2(WH7DuQ!J!qwF|={DrCf!rQ_Y>4iZ=@q0wZ zF1mR1hFLm3g`{R_%3X?r9B*<|UJ8V$L%zQkmF-6}5BSc~Q=rvs4-SYz%#0Yj$Vj71V@20DfyZj$Kc zQdg@|;l;@e99LpUrqrj&(=~Q5(`?B1*5N@a@$m;fN~WO{>4QsNkkc0o!1K_h6*n`0 zz`27()xVpno5?TnY|{G<+-BKnzf!GP@;UH}4pwoZm*{&=P&U}8Uc-WrqLfQXY8)(8 zKXq}w&O7#>gnW5zD_IT!p=MAuG5YX+YF003mFGJ}-|dz9nm{PFRI7h{HK~E1mvN=` zvJA_is9npmcx1ed)<7A6-8Qd+N0UY^&mCNr6JBn~YP|^?gMuMAR}n3&+at!vifqV& zgPubd@38D91v`9bZK$FW-dg>QID6@Vl&fN?DQzY#Yh5ck>9iF3flWAF2$Y>GY~;yo zj$H(4jJPb6W2$jaZ(?i{x={n-Fe46!*dr~4p>^|!59cw{V2+b>*m!&5zDK4Chpryw zAEA7zww@L#b!iMhTMNyKax9~sWOqZ{3!Dt9x)J=0=Wl9^ zcuU=ibM3}6_~v4GZ?Q;xHknw8Ih5#Y5g2!gaqeFtC7BDJmq!~;PJ)vKHP_{Uo^1Bi zV0dO{wK-*>699_pu(qFM_*}u|@bmqJw&SbL6EdhnBWBt3;?Ei{^VP-TismXDG}&aO5tihIZx6UqQw1u^=aj*X7i4;Q)P5<@zHsNX$K+W2 z$a(e|BDo+Kg^0rouZR=S+cJr`+RsS;)KB^zU`?vy`4vCYYy5HjEw2`T;L+wAX8H|g z8SZBUx-!aOTp{p zI4@4}FWftfFjAv)`pF#FELDzp$C-L7F*qgQ9%;-r%CS&TsK>SDHyxEqv#ndRV`a7x z+cTpJzQQERi#i*b>Nc3Oul%{NkJUPA+=#0po1PH4bpyP8XTp(M>dHRiEJpm$&it9y zpj<{u$E_tMho#>8?YLNN8SKA<1e~@^+i=*l*r%#w8a>KWd)p7JP$||$rO$&}YXid{ zP|RR2R9B!x`sSI3%36G+nDFsyAheCAvPp0xix|YV#5Q5YNCxZNL$Wj*h| zB74257Tdtpz4l{zpj^^)-m$k@OjB22>!KzV8qcjS>&f6aR@EZ80WDxY%W~U2;b*)R z8)$eJ070Fk0B5i61l_NyY(1rDbj94XKDfu4 zvhOPk92K|)DT4@6ubw*yFm^jCgwEFW-ZdrR{zfZ*tt)kDTU;o0b) zv|Up8AGvLRArOu>F}tNC`P@>%{Y{vU7-HCUR=SZ8g_#FCNcZFF3KA$FcgNxLO3?bb z1lI+*x@`UV-r&^Ct)QsY)v|Xgu~hG(Gk~yxn?U@$yX8KSNAhy4Sii-hC<=|w=(a1 z3WlD9#Btj8Fhv!N$zfN)XybG+Oqa;(OpTYYxOhdNR79sCOsfw|=RTRdLDm|hNq0>h z-XOmDFWn{@XN{hm_0(>3ld7f5h6`h>I9;Q-52CfK`NO^@cDk~lRFqy^4Z5MMpDNz^ z8%YB4R!`g^a`O2B4F0>|uGox5S`e{xO_-cQr+_`UB{CpV=A|1<`Vhled2HbG2d!!M zJ`E-XGY>qfVtHa@ukHjK2__y3Rf6Uqe6+=S<86DMMT$g_i41uaoh!*L%Kj{->Y}HC zc&c6)$3}_taTCZHrIH3Z-zC$)Vlek$Yr*U@d@@DhHFXEPPev`G3n3hnyFvQ=2x=Hs zwWoZXrk7i?TqaWWVaA}%VnGIAIs>UF%V}73#AltuoW@TxQ|8;jn<_w8_h7Wsz96~t zdj9;&?-*i)cLLF-n6xcT+S<(G+>6Pgar#5c`c|hHO zFPnupv+__xANJ>z$INgh4@dAy*YDl5{>+Vm_@#+TYjwfs$KK@#Eq(@_Ox8&%Ajy7+ zQ}p5lanqq$onQOc66WOk@%_yF8KIV2i%G?4yOw&Pv2mau3N4zW^rz zgsE+cF>qwKWDK&NmX1i`4HUxeyB21v{+HwTO451NGE#?;C5s?^8ZAjzJ zlwVOi%<=dq0j+j<|&&XfHCksfjN3ge?kyXGl{HdQglpuEQHk5dt)Y zM>cfd@E={|fo090C<6e|bY3ZXq0@E=^evH`+mIS&91Fms3rON;nxZt098>S{VL|Ua_qphjs_cnA(vqTuw z)O+x8#^4=Rc<&sV1cUB?*@#2WlrG|)04xF%vA%c2FZdZktNM*D^ zE_zd7W1%68GThV7V(w>>hA=RD+IXfTeZ*3-Rmd&)JDaGAK@giIocUA5)~1HFxoUP% z1dQLcObM2R*ij>m$3Z4#tX{n#$i`5TY7SL*EgmwWjNBgWpBv|`$NHqG$`%7XhXY>y z+RCf-gzYylck;=jz+Cyw7ao6E77T9~*4WuCXg7qDbhKPz;EV^k%1SpTSv?zlUX4p* zabMcV4rh9E{%P(p?D2(;x#E=j)>T>(P)%3WSY`sZ;RWCPeMZdoSSBe5Eizbb z2tgi)e$GzU(~8C zdmF|WAkf9-|D4U|;_e#}L>m5_PUa-$GAi0egH#XuYr<`u_>RGZG&n$ zuT({IOmgTe2Cc0}K?K~qCR%?%9akY`fLNLu^`}G+0^6^)5%jVWcy$N>rGM!SXbUk- zO_k+z7(Ne?-?C0IxY-rinU@>m5A1yU_|+7gSNda8k`6QZT*3ogn`PwVLbUWPkoFh6 zd+`&CrFnHk8LFhV%HsAY)1Q-`zRq|d-ee|!#asc-*@j!{?Xu!*UK?oR!Bne?D1*0DD@c$p(pJr+gWYG zL$f;`#%CcyKIOgFhMQe}`Wz!17%WT#4bHoPF>Md*DSgq<EgJJ?EY*vjQ)yV!mj#EZK510GUT4 zCT?nig<9C^o%^WkZO)|_oiS{G^iI)~FfS9k^;w|rj9-IR9=P(J4y^uIe8{qKP={uW zKxgH8U&0e{+0@~fkKFGnh>@(}_q&6x#3rdIXY%{aS)xwYD{gF)Tv}va^i$#KFGVcx zyEpIa2KZf;5;)xB>}H)Y+@z%Jybdd(YIFM#7NqDhg`c|bvL~5cATULQ@?rHwd9hM| ztzrrz*;Pw_=HVwY>sSn-TReVRscRfMD*^SU9THiQ1Jlu!R3@Ny;1Pbs1GDjOdQjY! zCyidM*^Pm_#}b^Ra-P~+wH%1DA9d%mO*qJL7BblyYP&22wMyrlqnbRVHTEDL@1@ru zyKvt{S^zx@4;}mb?<`$LRDmpfms@Dm;^FpoSGA}#WD?g<{kd3t9~0KiypWA(0va|= zjnb1aKD_7)NP^6G(qT%wDi1QQpWB*S3f&CL}ed-DSc(ix~uNMd2yMnR5X<1TVZ z>^_DW(=vJ#yiOTrQ#U**I_fbQ5y2#1Avq)Z+iSEnAZY#p>hv`V$LGjhV$yMad&b(felV*~$wPM7Ue*jk0oPf{IX+p9=#&{S<01ZlbCdyk1oWUJNR(rtIF-iU4jMhVP65A+rq8 ztNlUA!_cFzC_QaVwJ%vF45{P&wz%RuQC~Z|`&YIrr7@+h4^Ho7H)S`%*kbZ|wgBWi z@b47Y8_OlE_=tmjs*=MMo3071`ol792)y}#fPM?|BO3`%u4)KW;*WHP3~dn2GM8`- zve1n`)8vf!t|i;??ducRMs*-smf_} zF#p_SLZ<+3K2lNqVu?*MPLZI0v-F%p#sOti*%)wu z&5f>p?A*r9^{Mz&WTSl$z+_fpSieWFBx^yNg0hpGy&agAkj3?J zrR3Qq8wIe|#69b1fzQHis=ILmW7%hN;_VbW0`n&nZv}FlnW)kWNpF}rGwX3p&FgR! z-l(`R$pORki)B;&45JgJ6+(9&2`v>2U~2u<{qJ>+EF#uxA#V%zVW9)_6S zGu8olV9wF`EldKmp zjstXQu_UB*yJosnijv{khjbpTyR4-HVQ`FOR3a2dst7+y zuU3lCJ20;@eX_$;XW_LT1LKY#@=RjSUdc0m{b`|x^^=97Ua|wfjQju7nIC5c8$z^j zpMeWuqn{`^Epgiiw+ePuPP8*$hPpSwE+LzMB9~8vE2%l_BXv>8DT&uHpEOX|p|pfJ zTVyoPZ0+;q7U<>a@@x-qT>5Zze|bHOV2R$Q$dL#0x<~ySK|T87tmp!;Z&7aPuJc+g z`wZfYtq;oP8OL=V%}9W$@3jn2PiU&r+5MZPBu&fm$x7YRocxKP6Z@xxIBu>!36C6? zF0xS|gdQ&vt_;F!ykqR{qZPFq>k|w@d7&8i6=wVtSA~oN5IpjB^)6YMk(iNf9|^ zCEtoCX^gyhkdATmv@^tqs3iwAEFf1vhB!3PAF>X$^X&b&A-bIt5}RnKDLUxj3OJj(q1;Bl{~l8F)u7UnFg!Mt``3;V1W?Rn)AUWKOaOpz|yJ zmvvd2un5|;_B5bCv{Gk>BgW^L?FPzL3s85C#JOMU7Q@0Q@*+vVjRq)n)1GC%o zJE@=1c^H@{^cM=4UV)Q6$I~Z{WPTBZ!YKHt=#jV2$mN^%Y&Ie+U?>BdfHqtgjmd|j z6X)MMGJGgKqfoHAaFT?oLJpE9&Nt7q$Br^}30sxt{rDq^IkVVYJ@x10q`^;ziGy-B zR_3@I5a;V91@l>^V<() zpy6UNCYQK!qPs7=@T+Kok@T-i8-p?*oYkCA!4vxD9}5qOGxAXFhOtkJoaGjC=OD*I zxe--sD0fI{1K6O3$tesPVfw`u@V1B`?oq?_4W31U(>v9>Ue2gU0qE^9&rLOG|5AnW zi1BG2h&C!G?8uS`ByBx*I}%QaOT-so$+iU0=?(Q}r!>W@plSDy0^cUMkb5^J{Igx{ zWkO{KO*3xt6l*7Ilk}k_3lP=gQM{jRNp-r7j*+s5A(>-LRb`W3qg@~1ki$ehw&eqB ze{rU4B#@g{lUBJ~9ZOKN%?Xz)=%QwBV1?M!ZW)dHwWtV(a=S71{yn4|L)nAVYaLZJ zAnq`+v}6#bf3EP%_Fo!@i^0xCzxDmx_&a@~UWQ@H@#gp5`hBn&#{!dQB7L)$c928^ z?5f>p1(2SRm>)ONj*0}M6rrB}PWvj`n4$3%S(d`9Zzp zLXtAOAh7TUhWE+AOsj=f^D<*=gNMDz4MpD|c_EO>rPReSRh+XNLOxp}NtAE4xpXq+ zI8@J&2l;H!Ef5)ex>e2D49Cs721cu3p~&zkPCzBg7QA4u zUR}=iaYB#N_3bN}9VWly=SnpwQ|u3t11B=w52l-9r4b?#78Gq5uQB#{Jv_XwJ5*K^ z@D-_BB$3=7&&3V>yoAY$a`P}6xB!RhT^du)8n~P1b3koXl$z0AhmrmWIun$pXK*;) zRB&xw&C*3|RicJsf?7bgM8DOH48EU}yL$qHJQsEz3u*XqH*4vG|4PM;Dgzf`t?sagxW z(8jW?O(u!*m?XSX`RL82(pt73@@>(1xWDK61jhYGZ7&PDNf*SEmylBTB=6Ru5Dh|i zE)p$koK&F9e#s<@Y;A9|*M$%tg$yLfOf$9D5$I@SlFdo6@8Nq{ujrzbKJC~r7I^1B zPW}AyGr&Cnf4^QiE_(uA*4B2H(wKDeeCiB{C%8# z4eOUyR|D1sGz|oMcv=EJ9UsrYub#vG!k~T0=vUs}=Feb|GSKYm%0<=8DuA`v#q zXRm-LYY4L0OvLpLiWE!jZEeHz*2i1@Z0&Gj75dL2=aWGO6t=;)CYN)OZ$Q8vuZS4$?-$fj zzeeSJ`yF9Y;r05u-EH!6#VA%0lP-8+z`^)OzyJ?V_@2lYhw*NVa;%&%b~U+v!r(A6 zz@qNeI`@QkCTY!SNn!Q59!>G@i%rj+`IkhvC21^k@+ChmXqAFMT$B02;*cgc7qVxE zLH$KForjb4b?h>C5t?VquGvW(*Dw3i4B$Q{xM3Og|BK_b6oUvxD6MfG#6 z`sz4aBQ9o2GllbjDjw_|@;cUP84HO{#-1&6Y>Gz%_8EcopFv_?jN2KRdjR<&R=IA^ ztwh5tt-}&4m&7}e!98iy>r9fH@HIh=J)q|<{BNx_uM0!T5h=^`4W~QqGNzIytxt!p z*RbTwsR-we$A>;jACYh+drus&zAvAR&*Q~lpO`yR--4rZ{cxh^%rh^V3Si69E%~oO zdK6m*m|_5XqUfo$_alu@)ro5vok1|qOfgRI!c#Fy5iMV7s{vr1(U(A0B4)(Smi&5vl^vlZwd&rTu4@PEs8+$($8Rspd z1-kUN&w@B!K}Q}2Wj!s{7GXE;7iFQFMR&nI2zbB%Z)o_Ud{7mTESc{mJ1Y(FrA$n z^XxCGo=%MO92vVAP5U)v5X@Amt}8U>Z9#a*b|lKBJKUnGowAF5d3iAF8NH6nX-FXA zgf=JCk)?1hu5))8ZbtYJuSV~vV$}V1g@(I3updi?b09a4eY1DkTp9VtpyxL*5>Pl0 z7y);P1WN-=I2?!JBCV2`VM;vNWAY+QDed-rL9mj9?86cY``A9uvtUv!1nMzaI_C_n zL^hZEU`Eby_U8uAs*7&FTU6q2PQhrOPzs!CwqYBuv2G`&YDO&9DwNVxB3XW%(7RMO$33Gq}wlWw}1B6gXGV=LnJiQvcifJciFy? zCL_0qRaF$EI`ps8r;Li68&TS)Y-_uq#}dwZUoJk=b_nKZwmXe~L^3T!uIvl>g2f__ zEa<5&Z_Bu~fr+}kuOI97el{jH-QlZ+%nDSq@d$p$h?UcH`T<@@sYkqvD*Cm}eIHR5 zHV$cq=YlX_I-9@%f3)|0WMKUzkXQB{xbW5A0%W`d{@*3yH|P7+rv(V?32^p>x;U+R zeR_#%WEM0N)bUFGe1C6vy3Y_uhyQT#Kg>VDep?voZ@FQl|B!_R{?{_VANT}}9{UFU zZ2M@B02%N5>Hq)N{`Vh%n%}QEm;uWT82{o^k+$8s&Cb1Vr;K;9Y=u1l$Y_xxyh%dM-$7YBzMuBt+e zETJQv+nHgWoxF90rOk9(V=ucG)3OdZ>xO?{dt~g=1@+%`ZLj-3*+7+BPe_S%c-PK4 zT?1eb;8B0ceM2uEK{#1(YUVM&9cZ?|rrO-4@Cax!@A2`<(zG#(c-qhQ za&tV~11!ng+smeG{a%^P=IyK8rcM5!5L*SevFi6NS_Kdy> zhzYV=W)q!l`c#^yC-=NR^1s{xxDZXs+{t==Y{%LWcH5)+%gFdXq%vOG zM-lC1MGmPU=!JV{SF?XV$>!yk=dPZNJ;U(|$`w8GYnq$j2A<{j;v>U`=7d2S8CmMtJ zR&p*=XoPR`nLm-ER9|8snJM`()jyHc&%JKp^p6L4A#y=}qO_8RxiI`n>kro>_^UmX zl7*b$ZF*ulRAM^rW-4Abb*LrKe+K=D5Oo$8#BLMOh_QR@xyF<#(csA-B~nr6A8g{1 z=RLVT$~(l)66z>|Wpb}KATdY4kLwhajAWHGWG$K+awe#t&)w7XpPQwF?p6(YIJQ8k zpE^c{QSpAPJDDVPsx$UAq3KPD(rss@KK9a==}Z3Kk1KBCD%tw21=?qyhsnfnaZ(ryC0J=a$zqhx&^Cx?E z>HqsS@&9>w>|y=CyPKPP+5O+z*xO#l|1bT&kLdp`Q#cmt@NG2K7v%FbTDrg6*J$ip zdVc@Vu3uw~@8$h9+PSv_*l26Kp{%7P&!3P zXt#1UhO(@kLFC=)cEXqg3jDwr3)^DUSKpO)8AkU_(-&m>e>ksm`7RVUt*VRjl{dK0 zemJb`qHt8Ij@F$1?c&v1sEa#)@xHy6yNszX-P-qYYim#Q?QT6?QR`JaZ~}UOR0rcL z;3x3a8zdQ}Hr;Wq?b6P^Q)hPm?!L)i+JzW4;ff?q%jktaSd7s$KZD2{^qkQGM-TEw z+~w%Ov={o2jP48R!*!BOY$A}8;b0I(iRaq*9hvwOzh7qJ|6Mx(CwNTe^Z02RHjE-B zQuo*z;13V%1Vp*>vHXD8*Q2`vq0?{V4b`~FA#8+eDI*T;1btDF3-eZ*NK!MAV|!w44QDbA_D58^e>D_2X$ z@gL7|Tr@g;1K;ud_LPS)p*)b)WZ{OAhq8@)-{z2Ig7`nK|2Hp@J&^x*dv|+tE9d{+ z+Spvi|1SN%kLdrMplmE%!An>0(iOaP1yAJ)uC^GAH#JOh4W|~DafX?tXZVpl!=;;0 z+_HN(hAWQCo@59f z=R=;<`F-5UnORb+?l7Vgm7SCRP|s=W%@s~SeKU3j*@kBt?-mSW@a77?<@wt1+c1WO zgqOUpKz3pv8oZdQ2ip(G_Nqv=#VJ$Ox0LvlwgBCB=t1wpA92IBuiz!8*9-5Uc_lSF zk@w=&`T&N}>V@r_e;tO2$7}dT3OlsI2qye`Wpl+mvx(oMa{*NCItqsa{?(>p4zE{s zu=>M#_Oq?s;%D3Hvvs4L1Wz(r9R2G6O~wQ4Cy6w33GeEm>tZPh7rkmQ4N0mB{~UdF z`UCWLs1JTd!=;gQHQ$nV>jm6Y_eKAoU&Q~CzPi2lVq?Sn)9!+18INg959`!D?Vk2e zxil;+i=`bHJO_N2cBNL>Yr5^(>RX zSL>P0AH4bCMV|f2>%TdDwGRKpcoMn$8hz>Vmvy-GqnJPHs*h-T{8?Xp*7t)U zv{JM1(^!2f(`fK1G%l~>_QQbGQ5$>5Q!vo>UO$QxJAI-~mu}_FDLlvx=||yTpu>3f z=@yZT0S=cP!w`EeHVqf84cx=t+T3}%^K5%>=V@+G0yr3`;}yRs47LlxXAcF?y0VeK zDg7EghD-hC6_XjEHbjWz$pBp(pm@ZId~4^wcB;Mr{oux{d<`#@Tl(bN}v< z1LQfkUT;(}kr!$>$dPle-}rExOWO`t-qb6OORsumh#qin58m1Cg!vX;c*L>kBT_ga zk1~XKYvs+Kk-EOz+;HuUuD#K>H)8%oAI^263mI&a`cIWabL}N0GqF5o2sH9VMxK$+ zhzgDsXELqMAr)Db{q&&4H8i z)8^g=oRg$W4Q0R70#MnPsWj9zL;$urOe1D#!2{HaJ3L4*yOlSGPGSgH{r-~P+b<;-h<@(0c z`qtAahLTPZF6(|P4tu~lEV?YZ!4Dr^^ifER|79>R=KJggh;iqirjs(estI$PFSa+P zS*;7N=OAy%4eQiS3=x<`%4r6ZnKG$6ep%>e(FzER)U+1Qv%_*}j8 zJbNlkrPFGmT}J6{8Inr{=3F2n9o)|JIZ?0tAd8|=gc1l@V@)K;M-ulAfYc@4%+lTf zh+W$sIK4`7uaakr!9XeASJ5)pAkwEd0Plz@_I-5{lR)o?8OfrO8%~354a% zSvfVYzyx-^&6LdE+yGVZ#l}+`?m?Dq&pY0&2N~~wb%LQ2jcml90QK9Yf$t9biy8Cw zgN%7=3)a?t|0%by`L_05_i?Yto!{$?zdq&5afhe<-pb0tFUZcrT#yZ=)!$#5b%f~_ z#aZ|!XL8)qEPAp$n{9Vq^IQZ{WpBjHBNbT1XxD~;wmdRZ5NiQ8Dw3+z3DM$)kjXpH z8z0Hmre#o5e%)TMTsnj3ng3Q<azaBfGji*~rw>GvnQu|ve zx2|T>#%ZnNX|4M~9ZzfBaC@4}J97&Z2j8CR*pKJylLs;rx8Kgr8o#a6N7V z8~^r)59!tEwg#85i9k^gQiv(p=NotBsQZJrg{ zgJw9nf6MNe7n$w6tfnvb^Yo=bu(SrTk4%vRVc#6{D$wCW&y3$uai0j_aC{&S+#TKnNGz#r;-OtLn{lv zFXPFV@#NoOJb87mQ>B=m_LwdM%)gTW^SN^hEF;X95$4MX^JRqjGQ#{15@9}1D8?g2 zU;Kyx=MNiJv5Y-`*!b_9*!NKRzqdEGxAXDeo4b2^%lPkQ{P*L z>#~vt!h+QR#QON`BhAESXH3E4@D!Q$XO6layxF%iBHC&g+5hOZ#Wi%h#rCT<-2OKx zfV_Y;_T3?(qv4M`*u%5jcHl#c~}G|6%i> z(_(0E=3FB^Ks;)IzECziNPvEK>&;vJrEPpU_8eEVH*X}HW}k3c-d|qspC7B^NWNJ- zorE~ZokciVpw0w-+_&z!7*6dJ&YD0F(AW+8nYjuz`>yK)t%k!4T+;`|AZE;C(2hm} zY9IF6M*KP-x1NtJB4(Wi1=F?@r+1SY(yjCky#@I&2x02ju}F*14l+h$xpX<4TQ7E_ zkdpADjp zF9TwyR5vea2K)>hw9HcRq;;R^%el3pC4p98I56rs)?>jJQk1ry88zENw<XT-g=o!}pT|BuAFCVme$49BA%BkiGT z3N^bmBrr-0=Mt_cOgX?)=qJ=Wj1~0ferMQIz7t9Sfpoa*^#;c0YS3#Ie9(6Az)+WP zLa_G`e)Ec(U^~|i251VNi429X3h%|X~s!Rw(DxjZ3+3=QF`!Ontw+6Qvr#8%7m0%$mH4`YE}WQcC!MCf!O@*ay()Ft~nm@$SIJ zCyXzld;Ts55{5gC+k!~0fm#US1f5}o3rL@GE4VUn0{l*avRH^EQkb&zGNWq>7zi+I zJod3&BvG-w%6DuC=QOsEuMhihQ-N`qrvy*x8XX_mRz+iZsOl^#B4%qeEcuXX#uXTZ zaJ5m!o-4)qFx&ut|mx$lAvvMQ23VM>93XsKpyt5orFgntIHPC zrA4|>Lvo3t5YbW*hODe0#LM3WB5c!1jPajgfWg!7m=7e`zxC>jGK7f)Zg^)&NFN;d zLv6Oz$631RzTNL98h2Q0OR9 z#ujyj2PyJg-HEY~z!x>sgu_B~(gp_9fzc_^uPCq4$u{IQOUM|~N_gH07-5CW<+?qC zVq?&b@I2gOrZsY&EhmcnTjF2B9l6z7hJM0)hU6^A-4P<1J!z{5Tlr6G`T#lUYUvXm z2I-1-!#E+%0`ud>VbvTb` zdO+hK{EXA4J3;PLYz(eb59Cs$t_`bvF6PD&gIXAX^TD|;%4fjWBRHm{mcGq2O( zJUI5ycdI6z+p_hrN5}OYOX@aEoJPh(7o#g^3L=GM#zNa5T7T5Xvu8Q69L;#DV~8Vk zfq}MR0Y(u6Yfo~lgF1fbdie-ayN6~!kUw)#NfE5TI`qDt^at8y>eeas6f<1ez3^N1u-m8*DS$%8tfnH5wmKw?H2<3l5n& z7owq+j0|532VNk;A1b~n@rplDz4cDLlr z=MME*VE;mbTFl2e-PTU-xU1PwI1x%Vcni~GPy@Ex!?b`Qj3Oc=l~TaxIHLv`<7g#4 z%(?fleESSt8~U=+tq73Jg2*);V->H66)v9A=fW_u zL`rR(K89nioF7JhGMbu}70<%y{->kyw5Oak=5A84VZ3+=A%9 zFNQ7FnzXvd$j5^;$5jh%IEhnwoyHw2Yv#)e1m{Kel4gn4?=(EAfPJ6o{VHp8g&}(O zfTA+hphPQ}z2PyWv6?E5i6dIZ4lQGcma#*>y0f!gjQ`nO#{Vqie;zOXC$Cs7V}O=1 zK+71QWem_%F+dZecgDv4l$PZ#8l9FwK#v>*RMJW5R^1~SXwEpJWfV|WiO4hWWhBsj zB7ss6S4lKbdu%jN!8|?AEnetnuBe~_2MINpb z0Ce#S)a&UiBK+jhaTts;BR~ zmW8oHa0wK~QR6IaBsy!rbv*&FVoZ`Bc^vK0R+vQla)}kA(~THx1@jfO4|(z9Zg>~ig1k?{fhr;}i^CNE zX{r)i>o+|=P9%~Hf30thjUU5D%RR9Dw63si1CSbZU;)fWz&kQGSOSF3F$g&} zZdHC=92HfN{X&q%H5KAww+)AQjT5s9kX!?%9gd5Vjab77ypAWe#I%>5u}7VrbB(|* zJS-ahZyDFkPhzjvVMJ8K$P3tWIMH-zaCSb9L)WrF^bX-E;iTgD3EAbSV`^LgV<;11 z;o3#SaC=&;aQmJp;j1!ua9M2QHwa^#HhMCb5$C6}(Adguvu@9cF_dVMd2!2?ET#*f zECpZB7DP$g6e(EHEeVS^KE_sM+SimyyFdlh4!VG)`E1W`A;c6;{3%>3ipP!2cYt>? zi-L7Y@CYN0i;?~oBEVy!|58Ym!aE`aDawe8KxK3fVw8eJ6sYdYA#DmCp3MZEhCuC~ zA7^0EVE{amP;h;Y98RH(3~ff5I1Ff4VgWC!SP{XDO4tnvBUw%qQ-p)pH}RTCXlqvF z5OpBde+M$P@b^A0g6qdO3f8EhJXQ0_Ks5)UkCB+dx{#nCSIa}75n3*RSi&gsCyd68 zL>%odFPM(2f{Mq)+9_;9B0Z2-!HyxlxVC78v^=EG3^1==pIzA?!o(Z^XhPaHXdo%P zwLiqTmmb!09NFGip8{Oq6b(Y;M)Wh*!1NgarVb{4h@TGNK(A{& zaGm0tgX^AWp#FuH=oQSMC7LXHoIEy1EOPIX^J5`nakSO!?bEX>Xf9>s9uzBwJ7 zmx$P@aA%4qra&W68w&8P;xdR(>op6~0J+I?{&?`IFlCUDZ%|Azln<=83WO}sM6V5m zANrjg>)q~W(W5A7W4Ion5O~iA9>*ud3IXipu+V?Sn>usXFx4D#wU%9H=B{N>Yj{;H zfQs8|eAd5e8QEjnMavuCkL2rjj!oNIC?Oc{u(_Jwphm>96F`Zx_d>?=y1Bi60EV z)>SbI9<&Z}z5&+aQALS}CdPYcX_{lu8;Q-bhe3Sj3)4J0(QC#lS~!|AqR?u zupqB9c{r9(k+wEm5zPeZJrlT|{x$4T{5Qq6iDiI3nP8WqXUx^r6p`Y)Q@}p*O0ioi zX-#Awj;Wz?^sM#4j6cy7*7}YGz^bFxqsc*`hhAxIKeM&=O^akcsT6v_hq4yB>Df_8(`R z4CWn4i?Wtqim^tk(yr#s)l@LBa7a2@gB4wAXNRa1TsAf1EjUXfuu>H|r)^UZALf!F zS&_vEi)xUu=E6J$PmC#Jrbi^(6k>>bx7?5;QSR0+_^e|*SqFuz)zcOtGg34wz#ye? zlqy^^159Kk*a1kIkk&ek5%K%!nakO>Sz?h)SeeFYuG#Amd)O*0Kyv4)xmPW!jvrU9 zNfpmb(hH~D(I#awLuj$LfDJNt882;70^X>xXrM%_LZElX9)nXZH9VQtSvWje?8tVu zRkQLVBFl1WYRgCP<^@NipN4giYpc4Mi~wvNoSZf=-YSg%l)BSPlrmROLabdSA!g~! z$YQEQ+&h>gB3a%v{@_Avo+{ao*HqGJ>IJ{nPOfc zB2pM}{seBX@Bo=skQ599|6hkf^A)i#OR0gDz_eFoj?$#iq6hHaANgbjzQZhUG+`M6 zEw?t~5;0U1yfIsN=fk=8dd42$17oT5cQb19o}k-QWhNsnN3x4%CSfgl61=%G4gO=o zMEIe?R0j5p*TE`Y2ji&u$#*tCkz4cg(*t%)ImEmgWi>M=C5C8Mri5tEm<*!5xHJ$2 zx%8W*f;c#soCYGN3eKKbAnoWidKK3DBiE1C%Tod7ia0J6EHQq zrBF`Q0}l-yGGhmIc=S$hYkok#>r4)%vD7oQk;PNA@0VbqLM^Va1kGFocWNPfYWcb< zz_^N0iMM$s*+T( zg7(c2kUs_j?V9Lk7sTC(@Mkv{5Pd%!Hr&V?w=ILrg$zt8DkiOxO6J z4#Gr?7!;q2PGHV?z#z3&;eerdS=BCL(8yH8f+fEsTv}){1e_tr5_XFk$SjJj5Zi^mX+u zvUKqrc}o&7sEx+xbtKZmL3(#-+f|twD?2@TmV=itMN4}a34|JDI;;yBXII1$VxSY5 zNScNMWED<8$Yc!%NrW#8wztzK>O{F#-kidN0wUH%N(W*2*(JwGS1!AvAB1Yc{RR;q z-&JrygP3`kGlR2JBur3%CJk_rsrI20#A)G8-K4CziqoRkvLvdeD?dpPszk&A-NcKR zt*rBV1A&yf_?F;;CAeT&pyKylpyJ`71#<&1mcW7~uwV%+SON={z=9>PU^-yI?6${8 zGB^H+c!P!65x+gsV2uAiCv`nk{fDjXz3t6>{fE7+ou&VO>HmK`|G!w~mcIX`?|NfqaW+%FCZ5y>?%uN|0DbQ+ZFP5VZ-j>@4pwGVCmb>%H)EDUi$U#;n!Dd zX!!KYGHa(!eX+xibLgwuIP=tY5TR@}?o!S+F6=;Vd%WsY+d-1$rz!g3YtHLSweGoe zLYfI4vuS*!RwZ)}Wti`cuy#4Lqf2Gi6$45il!9UAkp5h{RcuUB zpTlpkWuLi7g_Y?AJ-jpbB&mCi&KT^F=}~3Af;or1VS@hXq)SN^#0!nbgPqsBwSzE@ z{TAg8fHr77?>|(XuFp*8s%mja0(jUH3)Ipo|pEccAGlh%)z z`OwsFa;H0_l`zPj%v+@*W*@8vR48#m5+{o;!^`HqG7d(c< zaow>4zz58%Q_@&*nc-7^FznG%FKEdUJOpZ>`1^##qG#qQcTqWl-8i~62BH3(Fb?%t z$$^h2q=-|=B2odx$hcP1vRBC)Rg z;)uvM!~My&cHgvBX7}ng)udhq0=rm*CcdulhBd+08UWg?Tx;j$T1h1;C809nE#I|V zl_)LYA*4^$oHA0LjTBk(1n0O z7ls6VI2h>M7|{CxK<|(KoDupt$NL%BXQ>9N+A2|5zZ>}HH^qKF3h=XR^~dhoJpiEj zQ&TuybAmq~68ZU^!9FMP?Ij@eK7deI{Q8ZoZe0|DdS-PEs3<&qqqK$$N_5g5jdeXw z9Ky`VQe(2pswGQEDRn~NuPdpqZIIdt?EmxsP0a+#DfaH)DC! zC}7_1ucjCR2&3<= ze%Ze`vf=mhi?g4P504J*x4+p}AC5o(KL73F`2B|~`@`AEAqdO%{^=ondU|zn{Py$J z*~O*xkH7!V{Y!ZFAAkQ}^yU8PZ}!oz=NCtpm-g9(ef;VCt9bt!RM3x3(znx&d)B7Y@FKR@#VqE{_&@y!v^#YJ=#YZdD?G}?33gDw^|!16ur={mX|V`1}GFlvZjVm*5gs?BL3L4Elow zyt2|c+NVeFPmbRoogN(Fw`bVOFUOZhYp_?xm-xUjbql)>eSW4X;~v4NEc(?rwKdvF z`}m!`fB5q;4qG0Ey}vw`b3#jY@IjVa6T-vrF6f00*QM+5<&48la)$)1?=a|C$SeYZ zzf$RCDqB7pB;hp>^RC~v^efuK@;UI45?&^RoQ4>pCB=|Xr8$g*EX)Q}ZWy#^g5tAFNV=umR z6qMy58VX~p^jHvB)b0&=KY|_&A6*Vz{Ol4KgHw}bK{yO(3WS#p9Nxj0Pb8*o(+wL3*JK4G zOa#RP1T+m3yJ_-w26@9;hlZTYPj9lfO9R*ToJAs z)@qrL4m5_0j}Fae@r(8Kwsh6zp2+kjqk8PDLoe$qZ)SXfavQ3(Io8{j*=7#3 zp(q+H9sqr<*$1QRU>MutsIFP3aEf|8AX@`3_}Qmm04-lpXu?_Kv=JZ(Qi1&e<8&^E zf&IyEgWO1_+qh=EgT;-1MO`?J10Udk zglR1aB1!Gz{XaJpDYTh6#9AtVxp@9Dn@lBaJ+OzOZytmbFd~$(v9*l7i7{A zs%FZ~>dfMv8w<>WB_o(ToomuKyILR0u@gzHh`|UPJT`j>$c=y`DZnEiJ~VG@ZYu-b zzh`TdZPU%QHup>!eShz<_52pag6!s7qP+zoB&v=zSIg0$oo!b%tQKtb&A$%A#ADU; zjj3^tA$P|?y8)uc^XJ=j_-7A@6sVRLtXf`(YN_rw2xO-qzP+&F8{}BGDh_4(1IaYo z!jV%dUMw99>cu4se(8>oXP#@oxNqL-5>HA<7e;ok56D`cJUF=&g}D} z3z*6$dYTkzy(sN&bDO9ij>vvB8`)`>Hb#GM@#463AHP0t|G|O zHg>b-AI{KB-QjDggAW#YNLEQuX-I)$5eRg>p@|j-imIeW1y}B?$Qf+l8poOpT~B9? zMpPIngSdJUQw&qKS{@6EC|>dQ;jEMyOphN&Gz8&lWF~)pwVvT+RWek8;hihi+Ey?{ z>Dftu=tj<62lH~z%yirErt7$W{%LRLWd|__poivSWA8AS8CSqcr|cy5JCx(>Q_=YB zePCrhj}Y(niPH+{w~>y-hCLeKx1hVhpg#vb#VRK#_8}i8pU8e3hamMbOJL5;dLB*L zX(!gpcCE%D%!msOWMm_A9my7x6wu5Vw}BHJMuU*WD@#d6 z9goUnU{m?$^XQ=Ga(c6Z@z$|OWDwnDlu@LS%|K!e~grZNpp+Kk!K zKt_IZN;TaDS>ROco^eDQDv3S?1mf^qI0}g`v3al-E!Z;L{Q+CFNC*zIMj+v)dU@5N zspD5m^?20kt#m4I+>F7%>Aj&S<1`70*cly#+<>Y2iDMcTGxsCAgZeP*Z30mhn4=$~ zsH#Q@XAnELkp1;h=XGsp40ky7eN}rk^1ccsU}b$4)&!qLxmc!s7FM}nd|d9cu*-ZF zb8tJh7?AHQy(F^N`!Ev2`swtpL)hYOe=e;*OP?tWA;Hjngxlw6bv!evHo?w*;MM7g zm8>t7J*@?jUf@#&#C9rtENDgIlMK@45z=26*bXUIE-RTJT5A~nish6Ddo(< zGEE_-4P#G9%;pMZG|X@$D=+8SRZg1+0Ew{RW!)1bVhbX|x)(^K)D$@@NW?z-<@D&n zx+g|Nn+>fwF(S5s5wYgRh}a4vV%-NLVrz_uH8)1Yn4>j6Mnqdx?~f6gT>@``hJN}FR{R*{4gPpD}!tcXzs5^n$00vdmNTJ9-OOGH95n=Ji2|3 zhHcm2pPh0-_T9+Nb}Bm;Cp13i)l#S?q1s|+;5Rh&B zB2bdUuzNmz|UizvPP+th>$?}qL8h%3pA;Rbg8Zq zjl3!S8a{^3c{Dmi$Q)WgXsNPq!j(7c6>nsxFzrhi4(GS$>Z<8QQFD9)jfw_5mGIg6 zM)OvuXx6@(4C!jdUb{(t%CE_cQ*Zx%XHL%GCT8;dQRdusf-q2tJAaHBhy4M_mOt2> z=^{5V`P+{&XV>d_iT5MYF*hFkP^TN`%Rv7hX2!!GYlpqBgCFrCGvw=s+UYSb{o&>c zD&P;bw>aM)@D^i%fFE_R$&x%v`Yw>JLS%hQW_?ma*DV zc=N-|7Tvi&%4Bc7$nT7PklDtu+Z>>b(M-bT(EmZGRUh9upK-3;-{)LWpb7`Sx7!;J z0`EGUtEcnk*q6W8?VW4J{8AH-#@rjcPMDZ{q>@7LsXC&?AW}a7@rFL>Axv-JT<1gG ztSovb@a_b-AMyfeIp%_&@f9zM!l;>GhMRcy>Fy%DZ(*>$ zn=x0bau7^JjGS@zJt=dK;y$Ofg0Ds1Vj`|MYIvuZ=yOrgS7r`eYu@N98>6qRdqrOv z{CxiCD_cchS@(#(;;@3ynm_u=*m~=Mqpwt+1K0ZI(N`)~!FufID?1;3Wz8OZRg6lo zW(~fwOM#EvdvPK!zvGCo3$*5b>Bd?s-#CMi$CXB z$p)F79PXcEIeG_ExLR1U3$8Ph__@`E`Lh}A)Zw4qT4uz55awqu>pOiju7?^;x=`J) z2W;sdfB%nI>MO*QmTU@kW>vE@``f1!V#a3OJ5c*E7~52V+9mwWnk!H{%ipZI0=0Ae z&6*=nyOh6KGY4vy^EYd@Kl5gG{2ak*+C-f98$)bbRpP`2GHAHS2{7OC4Tf_I)_@M~4N@ zn>7K7?Js96YY`7>~X4@ zTuH%5r@O-PV`8H#jGsz;1&ZM+&P^prNIu|t28JncifqKhzEXSM#St3t(~dVc8(nfNWbTVW_(?*SL{QelYD$!|^?GxI ztJ=Kpw?0&o>D){EfeZ9Dw*M>WRxrA*gCV+wyw2!Bpqa+(r%|{5CDKsI%nzK_`-+Jv zlq-ZO7S;2Ltzn>2{AQEg6KxS$-k|Lz^?WiqS4_2!QYy{_8Yv$oF3wl<&CDR}M(KYnLvN+v;eZ*8TKegv1KMgPwVgqeaCWsL1JitAXxOAyO(KF_FIqhJmpie6Xnfa zd6;q4jkoTT{=CW(us;C#glnxV%ps`M_Gf16c6nOhWzC3X&4|aY8DX5tZ(T9M7|OC> z#P?n>f+)@Bt9SKhHts*1kuIDsWSn#eqxL#Bur8;Oj;_k?h2WX>Vc?TgFqY6}YFS!^ zQ@;SgK~?%9L+?2qaaFOlQf~Mebp;s2R^wUC-h68B53kYe2Sk2*S_A7$mt;Wi^a~!_Pdz@4{i=@<5sW-}3n zm>}IZ_;15Ha)2Szvtp0H;lW}I87M;q@^0nS2g81g%IT`Ym2jRdDJLn1nd^vAl}tT) z)w}Km)=-`U=|Vq?L>qxHAhw_&nLf>oMOvAH9Ed0NvDZhM^j(@M?6B~z}E@^8*p7kgxo&FbYEdLYTJ48P~K&1rIg zTC=)N%S_AG9In%hY1x|Bb*fCu*7x8#wI1BG%w$7@7*Zvb31{9NBqS;;AzC>Jkx1el z(VI{^he%X&un78)y+%wp5od_hmPo8gJ0=1QJYNKtRmzohwjmKmt8bWEX6vG5Pmw5OI76TW?gEImf4^8!B zB?fAV5B{02DC2#~|9l(<*FFE*v9G+Fz>jYn`@{e5e_zKpVb7_Q?^Z9cnpRb*AGqZS z^be<{55L}dE|+Nk-FxA!`v`zb2--tJ&^}&$n2bBK8Fyyg4|k>y)M9aGI0F&8>`7vm z^*y-et?6^9 z1Gsb@3Y(N543?ruPivoDK4u9_V2sayAB<5O>WkwyjD^(&n3t?|$yz6)yVLXh`v-R) zpDH^4hlO{iQ(OYPmjLfFx31i4WV*Qo1%^%<4cd&9g1-f}fOSXUV{4q2O7BeXi73Q| zZf?MGM@}1?3-7%8pF(h%9kB4B>H*oW>u(=kB{{Zm*r!tu-+EW z)V^m`E^A(keCd)bt8#tYs$A3LAlR!R${GK8Zk=Aid{6zsfDqd~glP}DM6~d)K{pIM zP_d#x$nfnoF*Prhszs20C+4IAeiUPlgut-BvmGGd#h?ZL!|GpC(Re(kV;r$l;Af_H z!&-ByDR}~3lDq(?@mL;HoUwHuk7hg>z4KRVv zCs!&NOHr~k2-h@~woB*=(VpY8&zF)NCQbhWgvFX1r2+jPUBH|_?Nh5cOUMI>dRz9X zbL;eoMmSNsYsC41*mrTVesFNPHYMShhi*&+L(BCp!$MDSyEA!`vUjUyJh){^}!j8UiuuOO}&VB*Te{oc9$ikgRH=ik@z)3hfRl)kTlDV^F{sgXFpTX>Ca#THSkDq~->|aF_q}4; z7p`~OmtK1a<2?%8LFgkCcR{J|EF<-uJ$vdqD@}c8&zkzqDo=f9&yf1gsz`ljPoMhE zsz`ljPnY`68lU>ke&E!1RwkJCo2I_A#>S~WVCp+7pZd<8J@uVcR4r#seOD?C&6N7i zDwBX_NquKMFf-dJ&uMT8w-ty^VC0Xhio5&uoE9W6156cnXGz?hJy+bFrNi#*`NQrk z9d>6wM%djr<{BcdPtrhK5uq8c5ax8FmgpAG>kqOgj-vr@Z&vUQ6 zRIEtd_D(!0XGY2S(u7MJjV|z1DZ+#>=4pb;@VP>+f|Bm+Px~K%1^`jXW(gqcnQ1jE z(m?3q?Fi%pYTEnipaGSFevy=0DUYj7H*q}@t2mMgnkPI^NL5f4?O!fH5MsSHEGJdbo@nn}WQ`b^6XV++DJK;#Cz+im#I? zRUHy63}c&d-FQBkzum+`eZm$(3+GO``FyuJCkn>$!vraR23^p1XgRqfy7$3}Zk@=@ z*ssds=E>CV=YTPqDwwg@u!O47*2wy=aQFKo`vS(}1-~mNgm@ob4b;cv1X%gTZgDzd z%F!@!Y`^ukA*kZYee?6*$b?p7vInYzUjuiJM5`)x#QMJhCm zZ&m)Y*c>fCp02nw8PAlWC4cm5`J+p(eQF#xt};nntf~E%W0Sa8Glk?925XHOESkip zwuoEB>otc(+!Bkpy%>u)8%2$3W_quCcw}H?ol|foVYjwp+s4GnL=&46PHfw@ZQHhO z+s+%?ww;}C@A~(_zpK_kS9MjNboW!;Yu(Rvnd!ud<#=GzVT`6r+mLCLL5MWpkrOg^ zAZReKXZO>;KC1|zI%PSJGUPg&zTuI4SD7;9Mn?#vvxFF8mw6XWS=c=E%c%7=Ulez)@O=fp=WVLxSLlo=$VRPwV-y>IYBy$2ABzmQYHHe@M{vX^XSeU81u zfEtn6WU_pAP!g*4%BtQcA^z@@Rc%N{tn8On1*9P21?1Hh(-WHVDZlbd^gL)KA~N&8 zHt18{X_gvKDe=|@BC6pDJ)V9r<(#Cb<>nD+(P}6Cdm{HL;cBw`mDOn#T^HP_`Z`LIvnB$vnphRril{nIz?R41(v~><#)){u?j0AFVqvsk>hj zYeGMgVb`QVu9kY!g=U?^pe&~FNs2?+OrmK|OJYN%>QcQZ*i|}KPxelTE+A!xqt~_p z3)#48anrZRM@JmdkQ@hu!1}%gv6t3}9jywVySjf+!2Sp>z8^Xvwl?jbbxM4dtMcZ4uHAAC z^mNacLKJrFFK_@8nQ3?`C*H}z)j|7uu-?+?RP=VQew@;9|Llrz%Kpb{9C*5Z3i{|Q ziy6*`8b+f%tU$-1*# zIg|KWO!M&|i8wW9aZ@6Mnj*5XN$jJH0895){G~wf+6v6xbaPsvh*j+vVup%CkjDVwaKC~)&1+#ktTt)tl7NuSW$ESge z5|7@}_MI@q7+M{gP%BPGx)uj+kEmlmmVIppDP${@J?cZJRSQ z4r$&;Nmvo(-ecjaixxNP91k}8q9fdtX5BLg<^jCO{`e|wrMVX4%B$|eUH-(Ui>NU{57pcaE{nuh-aL4+!An&d zdoW^3vS?hUDsIK7Fj}Q)cpV!_Lg;$~e1} zL*lAVrdF|MW0g$ak6?)Im~!`R+DrWw1AN=rl&8@M!LZhX4=7F&LrOtI68rciBE8zz zNH-fTqG4Nf*H%`@AWKOiFL8n64WDADteV2B+s8G&KX;g#qaiU-+p0$I*X@*gb%29v zZo(k`HI!=lYKrlbo$=E}+?yBX;7(g9{dcTf*D4j=zI%#Y7l&2{3*1I_2$hWbmQ}Fr z-e<+UB6$PJ0V7N{Z4^l#L+e6c`Vu82EXN6|9Im3_b%l_V4+kB?%U8LEDwPS2`Sinx zo;di<4jiak>e)(qDI%saq&{OG^OELb=KbJidU^VNAt#bz#%o53Uv0A4uw-V{QYKn= zBg4HnqO}zN@bgwFxtW8&iG!1Vg zitPPyR19Py_VdcetyjC0eudcfQf{>u%CdHI;a83j0UN_Z@(gT0%D#5JFfJ1h@ouY$ z--EepgRVSTA*lC0O^m-nwj2fcqsUxW9^JKnO+!woA{0NfBM|lQgoN4fp^w0ulB144 zXc-O6-=?yYC;`;t47|hIY^-CuWvXq-|K0)#xJ@h9i)^l6>uq2Pj zV%sJO^ZCk6ljU_5aKx&O-eBMlm|d^Fi>8!}JdqjY1&~Z2>-{BLOaE(5MKwH>h0Pka zo%N=fc>*$&3@#4aBUv}po9epu7u# z5Xj)<7hmh`5)bB}0Nd8u=B8(N>&p0;7Ypjb=YF`Uq&5P3b{Rg%mnw}2by$u=3&QsW zW6*t8;WQLI?z>2w8_QFwWqCSuX=OES{#IyK4VymgZxx6|I1RCCxL<&X(In!3eeF8c zk=LbLqkmLH)T$%xAy})oLV29JkS&fPu?`F@0C=Ojm`;QOCM(Jw)=7*B+w(& z8Z%9Udb}1l-5oF}HQt(@&GC76Y{a(v6oaGPmB0yzVu($oY=*A-LuypK)!hQ(r$p(^ z-Q=(=kVg<@*GZy3%{Sc)%H=o2Y1CyP?f-V8F5QjZD&R%oNT4*MBI%!XO(m5JO;=1q@wA>+9ZA4WpcnhwSlJVI@1M!B z9Mn`GPqS(4j5vXYSPD^{_lA&1PaT&~$bJ)4kB2 z_TSr~U%|`hxPQFI{9!6J> zC+K+0T|X65(V)7)Em)5qF!GxZ=<+@1m_*&TV>Ow{iu6YzWQM$VqROABE=HNwPan*6T4J;EPxzD7vTiDf_0d6-Io9Hzvu=%==qW$(<^G{V>O>F_kc zXIEQ;9b@iD{FJAM5AMUUFN&7uBq+S@mS_**x+|BgEaqZ)3@U$e!Cr( zA}?ml-r#x1V-JW5c=NmHs?YhN4<|QQ>)YkW=&)Dw3||iq2XC#)+4*^oC1GU^p*H?n zk9X^vBS@w0KzDd15&1wKKtqR*a|pL*UMjxtCq2~B(J{Q~OcGhWTtm0iqi>P%(*B_? z6X}9$y$8bBqAm9ya4Qg{XC3||#Aprbq0izYo(diPC<4FKP86qpt96_#%4@X_aEP{C zJ6;5mW2sL3CdX6!@<5@2j8UkH@LYX=8Ry$mj*okDQ`@6`<;C!|g9Z;@YaK}qq%afq zV`uBRpDBrO4fa0nrPDEICj#yzR$+wVxLQfivWclNL;JA6;Iqvs1UYMW5*Fo0FWUIh z_t^&LN7>O>i*3{nrPo)XL=5Z9bQ{R2#rrlh@Rz6Ed?!0shr6H8M^W8ZO8QrLJV;K~ z{C^;=|i*j54dw>#U6mPE^mcM#1FvJMT3vF9i{m<)d+`VX9yOkey~i&iEn zR3818N?n{U8WQdO#+#fN@TBWXS*2BG(~xVQm4c7bDs{Mj`(i2sp#Lp??SsI;@EGKIOSs8l!y+?^m^1IjFl?pwhYPvV|Y$8=6(13FLTMN%7D`k2c+b5vH>GP7p{Tlslk3{xY9Y zeBnM%BYHMd7-o*y?XBH>b28W61rsjO84$^sa)&Sid`obLWk4xThxgq%xZR&`&m6x2 zadUBVqM5q-+iZmNTUV@)4j*aULo{mb5my-j1VMQpbIKRGYh+yP91vti!AX)bX~mkU zLjyg=Gh+|aoSqfps$>$T3xhpI;&EBKIggul5zsL#H+6Sv(=c(W&+$+0by9SLj1~s; z_Sf`=I`lpr-0WOlF0P(>)2>Hu%2RcFzWgyG*Cy=>goub3w&WYlZloJe%oP1rF&s#+ zs{siO0iUSUTMeOBzQEh}xmB1)+}2EbCh1^Z>}j{vJw2U`?*zua_xs&#Z4uhr;90ll z?Ajx@((34`D))f7z7V&VwsRn!kx|9W)GqfIXNyZjpFM~;!p2WOK!y4S-*;nM%dLI6 z!{gYGDHWuf9TYYimEsB|O>C9Hi$&Y4>qkI2&-@qaLztyu#-N z{uF1vUU{?r4oUHx_k1&E4KRBS+}Y1@dT{_58X3X4SwZ}J2b+-n4U(;uwQjf4eaqmX z0oJaI6@}5|i9=eds6nuk3zA*5;J|Sjd+uvew4F@`GRuv39Svwk568U8$8lk!~HS#i#%I!m4OV zXx+Nxx^&-gVm+UE#;7gPS5^&;yo}N>Nm*cApwG@7+6zEKZN=KG(D%{?gR+n{oTl@# zaX4QMe7+K*bo4FF^n2+;=zD0ueHZKwxisN=oI2KEa`Lz8HCeoF)$Y`?X>k=cNRM92 zvc;8Ea;cdrnjb7l$TM#uZUqS(h=Ln@gfs9Y`B~jx*_G*ZL7y(V%ZRNZVXuI za&K20kM_d6CM|h~WpO4;|0y4|;%;G6LX6uIQ&|^Nq;a$?!$&Kal7FfDuqLbTk&qJ> zLXCPnUgBhRC_G%HZw^2%#{pFAXzy{?TXN9h&$&E?W>}xUW`~{CcNdU$5Z(hI>mof} z%tJRe$fdK8q@IskJk_oKSrW)^6%m@SAct&UB;2$CX*=&XJ7=tvZNjd@WHqS@ZEC=v zbZpO;$tnk#VS5F2|IbAV#8CZd}tQ_j~6Za-eI8mU?+9Vhz zg1=#7@msUom*AEWq#?{}-R5 zke`=2@S#lWg|w{UEo-)(Ua?vZF)}YM?NMf4YzkY56ZXf7PQRb0r)dRRg@s+bAsPu1 z#1O1W6$~oDY$eqpnVwGntVO!9wM>PDb*nom&50Q<7Qy5=i*bwIbm@E+uxG5jxbgzO zEn_fHx1oEhtV4IFJ_6gbe5;A6LFV>k83i(C-E!)qGdS2)*wyOxbCs;HPALNDAvHs! z&?HXX3&6&{Ao~#PgGB7;x;5MP>2`4U`!#IF^Y6=;O|K>tI3b$qKtaDvhe8~&q<{`u zWBg*XE(!DF-&_*mmP}7Gs_-5xL(^4yaL_PFU2^7pnG_l1h+L9DV-2Dlj9;hQ+#8cl z1piJ8*-4^9hcL!?QfUE4hL^vfHeb848TJ1~pE6Jf-IoBKXCFuH*M782QMMoQa*2mC zuLox!^y7t!uU;m~b0Ss?;l}2rP}Ouh}s02aR}kid(=278J%@X;lLlZ6)`gVKeS} zo4Q+b%qt>?fo(;43!XGvOc>OFs$(vqzT@WdekdhSG3pqcV!hr%``&;?oF>nCezk*yQ z6D_SQo&3=Urw3gMv=}i3>d(NqwW-Ory2s^+Oj879-9Lw)a544pfYFt$2~xt>(QJiI z?S)gSLF67Pcp`1x9C0*+x-n}kYIPSQPcTfUJP)_?-WF?X%vT}VJAMkygALoRe!Y!A zC#8v3CLhBB#4?F;og+=n|5KS9$9p`ewcHZZNrdd^`~LA|AEU3BJrf@>zvF2u5hw3n z99>#|eUp4*y%O%ePjz)|Uh=JW{G8sl|5oU4^8Kut{%&jPYUxVY{H}`X>WVV@n)#`b ziEp)H2Ri0YlY+YLT)12j$!8f5bLJ=7d*81-R6iUG&l=5K5w2%xNb|;~m&n}Nmkn`& z-Ocwy@F0k*92_*9G)AryHOEV^ukDp3;=`#zkn(6?m8x^ZbpFF)NmL1b2r%fF6_~j` ziRTJ7>kK|kCW!2{+lS?CwIf-q12!pw^vmzvyO8M3NHex40;<0g)2qKnoTfMOhiE!y zAM#&ezb=^~lc5nOzzUwl8P?*_rS84Au8j3VPJrKL#c0*f*s(C_6@TtX*k7_Ib#mPf z)uVPunG6WK#uwNJN*d{M7+>XSUb>UMa&Z3&!n^}ml%^8F`I)Ji;c2e-Cp=`i5q@R{ zI*P2^x&syuGz4r9>|T8S93?dG$GRsc8^dd>g&b>Duj@6lC=>*J`_Gr*U@c1nb~Jyb zt{Q2sx-4E`E9Ovz{BqlXB8>CgV^YJn;lr+TcSVB?3EK=OfY;>G3gHWnlGXa-jxwlP zce6fB*KVy_xiU^*Shd#+u4SNC?p9Q*Cp+g*ooMRI*XbdnXOFw5TeG*Pqb{G%)5k09 ztQxDiDt_JP1xIp@m1+tWMRG_+z6%&vL&r3&vWa3;*|a%3R%#fb8ctiquz&_;pQ|5) zs48s=T!GUD_BRUx2-3qWP|u>0sC;0UjP_b@?0DKgA)f+q99pL40f4 zy*7;(HH={mCqk#!JUSx!PzY|AUN7h*-j4;EcI4G_e0 zuw!CeX>GsKpqo2gb`$p6Km{p)M@{*G;A{My;XtbY0ulw&QFq74h&r~tHZYS~<4>;( zTU3Ot+Gi7!#IZ20I|}D0a!I5d03w!mrP{%5FSv1niwGU0CwXF2$6iH+5GjkRF22od zj89&rab9lyTE|g2YM$B7S!YME|6}poT<%a|)0JccpfhU#UOU72{j1sxGm*g+BT$~m zk^kF(+Sy{aCxF_(sC(S=wpR8Aky2dQWqT;ql~3puYvLY(C_5w> z6{b*sr=x{fEqNR$REh(7eN;d@bf6~nKK!_C>NzM79z7M_g|v^9t{mIR?hkV^Uo1r>hyNby z@)Sp+$SB;FrZ2(yrku&oo`;Z}=zn*+0+5P#RmO?MqVcHlt(ZchRz0AWnF55$%1@FN zgHj`-N~uA$)>V5k21{>QX{!y4FyOq%RpFs*qdle+JvR7zC|tc6W^h2Tz+h~d7ylkneNK>?Jv7aJh^>}`t=c)X#Qb6o9Ku9rOS-t88^GcHix z$PV9q{Tk>lUrWx_#ns_Wj>gR?%6HqK4==$NQ%Ugeyd24sW0beHKyPWt&wo=eYlRGb zXpGQTZa&PXD5tNfVlyFv>e9e>m7IF}2*)TZ99fY$2{6g2)9<>R;yFYzQNN3W3V+#r z<7aH~Ecf?I^jhFi_Je-rUM(Oq%-^4xvP|qqZ^}k(iD}d*33%h@89i|BY88X#COdN@ zG9(at>G_`E2n-worJpDvg3c)KjHUM)ERbZg%ti6WD8M7fps?m(7agwfP_#c?=&pny#<`X=jzA1MA_dXr z9+JFIL!$_Mn;qmO`D3{qWrHTjP3g{i(Er6)#i5*o9l-s!;NxtD4|x&>=|6ktk=spF zSvSBh7ZWEI+DxPiZt@PlK7@?Q;vY1S0%K=JM!35e8|Hc1NmsU6l7a@%e_OwC4kAboo&f=qr zv(S^Ld4>2d*#2D43si#L8LG!2p6e3#nW7bdqLTm1DI8}MRi2#TVbM_-V0oT_Bv#oy z`YQz4L68%bm7Vv>UrZ+|c9(zm=22U$e#2&#NM6h7o}*u|$^XsxU>7Pv52Fs8lnTCq zA+{1A%Wk$b*7FZFMkuyRH#7ak3l!!r+Ss&^&hp~yn)Rd05Pkj=C(5~#_9lG**YgA? z^|;)+dFA=J?k<9|I9971T8HDMLuDMm|0@`J*(x6esJ3!LV8Vi{Rn}V&8K!k~c@nP< z5>5UBfpV^KDQ-D|^Vd9FFb|P~QC%uR6O5kir!=I6u30BoCk(aU*A}BbSLeUh%xW$3 zPj@5;#!PXa6%)Oq<*BI%o|F4g3esA0nyX+Tb}U-neNY&Ybc7EYEpu80gg7K$gHNmA zp6DWACE97FAh<@_sJ-EV98;&TMdGy9a3*HRRoUf5`=XqYa1RDbdtd-PNfr??%^Ss; z*6KqcZ`!3h*4nR~Ud5=P`}2m>zl=_~jS!0d{CrivHr}S85D_#hHRy9Cu)T|2<|y#5 z+!8@2LSCxR;oWyf3(jo3RJjO4u}l(=wEXFQx9V?Clw)@Da<_N>87Deozdxs5nmimf zPB87q*6D?pEb20k8jn$9r{|$Q;3o#kopk*C*gM(0tqBCFT*X5Vv>~!zk`ME3fSobw~nP>H|$8BZXE zh8wWiqK&J4GXRkTEPe$tp6g=hkY~_8Aq-W#O#=1oF8%><5+64 z5oLm&X7jts6xUTIUg}7$w_@jMtz$ahPckU5X+YDWIVaFGok5}NIpLi`k0Vf;>rH{gG>X3glxa!aWuCUq+vIB-s_IqPLZBsDs`C8Pw038&K(i|{UDl#aul&cGOBl_$rH;5f*HC0k7x zzMOoA^&}DuSGC-%2ZlW0SZi9b-wrZKHT!G54cv}Uw8+?(o`@sFz{n5o^`<1;L2xh| zPVApEf4)C49QzXryXt|r@2BGcmt(#9xb-n)78I5`Gbx~LlAlyyCd^Cqmq}`1YI=VW zfTl`gOJyNiu5FIr)HzcZnUR}^2v4jYrs{9K{9ubz{*YNHw>2ndG>o+V6q;<0$MN<{ z)W1P)@A|K>c2k%PCjIjg55NA4l8A^4H-sQ{ct~(^52Ec|^qlCqiRly;2_E#5+J^8KNaA!o#!r2|h-P@EA z!5@0rh)@2I^dcLH8 z(thi-SQz*NAFnZK{CIP$w5!upKygJ~+-Jv7iJ1FrrTr(}(j~E$R2bGF3EJD%_Fyw@ zXp1jzHRD(gb*FfC=8fi#WG4q@JF`q9RNZf`&-)N1SapjlNvjyL$IBi(V9)3yy0Xf` zpj*qJ-9IOHUjQV8#SlCj21wY5dSwo_Ps23$NJ`xys~wbeiRe*=4uukw%ZTGj0jn7^ zu!cXav$Q0=w4~i`HSBUx1|_?Ca1|QwTxNKOk^h&q3Unqgz$ z)<1^OORZ`ENlsI-vLli23IDxMmp7V~%!Kov1Jjkguc% zR6)lO3`pzSqOYmjeWkcyA%MIKN%QQCzop^-ZiOZ!V2+U%XR1oA#bJf}g9FbF1iQ>{ zMM3`02|u+0m1I7mUtRaEO?;*&AsW->@@jEiT=V)V%bDkjGvo2t1GVL0Z|4la0jZiK zJrO#Y%daV1O?2Tl3o5wuW99Pi$)MR8aZoh&qiOwN_yTfz2U?^$-O&fGf-WO36{4gr z`K?FISF0eo?I=tj-zidZqY1EgEk}inwP`wQ*sQralpENXLVe5MK}%G+PtL8cU7&uI zKV{R!VM-nhp}5@^ppB;Ds?`VT{NBZsd>KOVuKVvpL`yd>U4!$O&=%EH^hZR*rkAc= zzHs}SAE;KdbB;9+%MD?N>bHT3he6o4>K-2f;x}WIe~WPN?>J&f!%-CMKj?o*V}z>e zum1@KCMILksE;I5#)^vgB|6HtD?Rgjqs>SRt*ZaxEe0qR_n*+$5k2?$W6@|La>=LQ ztF&5IGUN#t|0##JRZQNpHs^$W`8^GlcirkibFPY$jr2$i~J(u}t&A`0#_N8>QWt zug?})P7XnOmpg~io#3J1pierrTXCPZcR&5vS%h8n$qYNtV{Y1k;G>0;>ILoH8d2776DsQZ&LZGcR8D${m)4yn~H?~c;tL`w_5CTG=uflE)>+8kb$KvH5%t1@jy0AMDi7(&z z3&ly}K1AM@`UX3S0n)>JpplsUCR;J5Dp&_)2jE?(G9ZCc-f^ta-*isY#*i=_Ist*< zRGWDUIs@im_FjX=hSG_?9-gHYHLI(BfB{s3w|)!92!BaoGEM8;sPSJnW7c%SF*8(@ zz}~7-Crt*v-48{C2^D>;ag3&hFW2(Qei_`bL|AbFsPW41S)lf3p4}>iK>lg&u~{1e zorZ21fyL@&V=FOa4BfSF+-glj8A$rU`N69FWAbJty>+{?}xDug> z_~F$5d2o9+(Kl9kwccg%a4pRUv@9$x<$y=oROE)HxV0R#$wG=lW0UHb+Hz?kaD~9c zRS|!Gl4xljfovM2e8xRo}UFr?J)m)2!sf7Q498Kl#w z!e~+7SnqAu=<{PVrU9y?7>5+B-$?}v684X5ckJ#+qY@8UFw4A&yq-y0$I)i7%(q|H zGqVvl0b88-EwVTGlog`3tq%f5a)BZSs%6H#yBrEaT2K7P7B=<#KeP&A^6z5m5sIRE zTsSO86)fpWHZ1_U1i?v*0Gjw!|H-iaE{gNS=xA6JN-8t+ah%2C#s->)xw!hSro}S< z6-4(mN2b|HSLDgO#ejg6NO;K5)7Pur)clw^{wF8!@gI&2zbV~5$jPtJJ0i(GCyZgL z!xIK1gfv_%39=3)*yV}ZKk3YPOIi~^&ASL^9Vr$XHM7Hu=af})3E1ISfUKK9v@ ziD6@AILSm0DxAiOBT&Q=COIoj*B@2yQk(R)$Br!zz2JFbA*@$ZHb+*1d??E9xaM5d zBsy6-D{B~KGs8VuRp9(S&hEBRM4>hP^$F!-(oKANSpoXNa%(a^A4oZ34~6qlFwAiF zdY*$h=TX_AA~w<+_aGRcE{Xi9P}rR1Jvh5^HFF>a21ia=YZ(_vyk;)#4tv@>Z831+ zmEq>g2yh*uy2~#NSGJ1*`{nMdO+w>fFOf*v?EWtie* zk}As@M8DJhJP#Okot`UHHridnUOu$pgsY0qPM%3-1tCY>lvKlJdTfU?O`l*lvv(H!Ws4ZAcYsUg$vj-zJv)(qS3zk9lssf&dlaZ7jZdS&US zc)o%V?3Jr<;P@N$ZGO;CRnI}JltJ_@OTf5FsY<3Cmg*H8 z`7w(!7gl=k&#}(c_3trt`nf8g-dyr#C8MnMbo6z6OXmKBERC1@4RQZHI3T|MBsGnU_ke&kF_JFQO~DbPwQ!5bIm zp7C}~Zd4^2OxG35bXu(iIxz?mnAg;of=a(f;IcwX<&|D+PsASdI94KJA|dSXPD+-B@pT)E_gOh&j#$(>=QKDB%azhHL(0;hZXsU8yB*c9oEEz9?nkm$ z;4cvpx?1(@GfnF4r7h&lG_pBr$_78{E;n=}On9oa34}81f>rXex%QPB<#K<{28qjx zyO*7>xacl|h)nLS!aabO-3pSx_qX2%zMR5A|HSXv4zz6N!6zup67hvIi9EUG(cNha z9Ix@5RG7|XvxjPuF@kJPJ^0?ikC+6-(Iq?5tR>5;jdsYuXkrn+Usw0M6q%H^}QUZp^D49Sk*Vfu$GSOkJc>RrhygDa}obADPs&B^3SZSP*%%))K(EfEI~x1YY8xQPW00l zRFkH>9O2Z}leOo&lUq@+;f3)=KH|hmYm9^hja#S0|`)W{zA~_IDd5<7Y&unL1^z?XY@o9@P zzjLC$cJY~UaU>ecw5ov!CNozD>Qao&nM!C}4PpphD%H7M`a0S^o3_ah)3d#;^*n;; zw!72Y&A3xGpX}Y8*=p?NsAQ(G;IHLAh_QFcE@}?DFs`@YAxi3?2*WI#Fr)+}qHvId z54DMyR?in1^8oBRLz$v<{~eKmbkr1-Ck|t)zgaq@-)9(iTo11X@NiLtE$_F^O$J?q>!FS7GU?)Vl;49J=Wqy_Z^-Ep5`@$8 zTZLpB)D%yF-ACiGkz4aZ!TUHM`^drVC2r*2f1rl1U`xMWYOVUak=~;1xc|riabGnb zpOm;sI9zCuhv#Rds|!H~a)EOPugzU5|9))DrA>gRa)3=PRFbT+a$}FZ1zK zdn`Ol;!bY*qYvttvX3evy6v5#66eL2LjNoDY_vi+OM4y^ov~M7Hdd9q>|||bu;b7* zx$VEy@2TP=PXBJZQ|>CFO1c=7a3glY+1S}kGEXF{K~F?H7_(381SSO4$rT%OxS49f z)B9^L5)=tNE`LM+GuT3rL+>RkdRv5&=fs1A-mEgsgboy|=1-toUln2qyi;O(H54&x zZNWoFqxzugy^5PfM2jaro?+5uK!eQj2!*H{53Y^)uEm_qC8*P50gBzFZRV}k z$OG4+r}~}Wi_Kcb<|)Ur(bJ#YgEqCSoa1&bUxRCS26gIaIS&f-V&Ho1{dT#G2$#;U z2`7!yG3T&hmxq+!T{<-QE@S3>B__uzO6Nx28g2S%ZFl8%yP@9ZnM&hISIr4kumMsR z&6skw2Qp|+l+8bC4@Fz{64bHNss}}KFF`e>;Fc-GpRtN4=4#k|6Muhl2G=ZU%i;;O z{@@>{K#`nCLjj0CS7~rfj^@9ShhPTrshEeT&7t%2wIal-CfSwTtibv`bg00G@F*y? zKwFx+uA0*`dKuaiVAVVScIRlZS!utHY=85m{mmHoC-83}QC?z6a{|VaViITQw?ouo zLU>_`UJi@IKU880vM_#(W%ZT4J?dS@v-PM;v++PYJYBbxi~eS+1j#W!ZUqAsx`o0k z$Tytk`!e0ypkSvNs#9VD0-a7G4J~Fk_Q}JXugm+xxuM(Lo|^m6hWjStW@g0H%{mXwEQ$^<&EKX^m;0Uk^5&t>2$x6P z(nho~_$c$M)lgOEpLz-&r<9oNqkm(r4j4=V`FKB7snD@>j?|FGvubsSYWka^J9cZ2 z_mW&b5wh9?xk-}y0F2Gr@3=ca8}3B~G`k5DA!L?+NNfRf@&dcLIl@Gv9v30)5Xz^m z)%HC95li2bpRi)n1L26#<|`e9skv&uKr6&e+94KD_q{{hetgi{*d@v!oqIH}S8qxur zXIz)9TlY36nI4LiNW%3vu~CB(HQCD1zXG#Fj;el3`yxbwJ7O--5;l=~NlrWtR~B2m zFAHGhX|L6pu(_96jk~C^%l2Fn;wdIRy!|`~IomtY*N}$Zz-cf1ln7#_tbgB1{3IlB z*%MK;pwf2&c~bHC!6RHuFXM!QvM^V^XjHMTr6ywX!rq{wvA&?EmLus!5vZZxa3y^b zKJx>iKFHJM-1`3HL?uW&PM!RfbNzdm?2)~;XczuXuSsi&QQHnuUwFJovXK{_fAx{$T0h@y*xjqCGm$&R*Xj*XfiUEv7FU-Zd^{Gj6&$&PT@TDxY3bf zgor!l+~RiJv;USXE73jtx~oAY1fS$gjK8Vbt3Y3i_Cu+HJ)f`y9BQ?hS;n&N)20+7 zEYh?=6n>? z9mmj_RxfZ3Dsv@RQl5S3%9_bq?Nw88eYW;|wf6Kooe=>qKu4SR@Io6Hu5j? zXu+FVb35J!E4m=(g1podkuR8>uAY_eM3a*NH=^cju3@zcC7+U!Sa8HNBn$@&{z|PW z#H_nobyH;hj+wQ8!fF=|Sg{qR^`*TJbE@%~ZqIg=1Xwx=n?o%*F)|4E<-X*GX}OuP zpcM0LN6(O>V%@y!7FU-<57sYD-uQ478s8KC3H|J2)29Qghf3ZOa#$lyc9n%;Y0Pti!BqmZ%gc@Uq8N2KC_qq*b>u4V|P?CwYA9l;sZR$b4teQ z$RTgis<_9IF*F+odlsoQQ1GTv6mA&RRxkB@%ZzG3zin)XzJKPIY@nCRyKMHA5gB?C zMIxLtAg<9*HM}|ppE4nN{4CfGaXz!!O4?#Ph3%f-oKVZg;n<~k@Q|q&I-N5kDR?ST zXF0pO%Ovz)DQOVCj3tQ=9OchK^G`JW7{BPr$nldXMfU=DIoPs4#@*IURuGrZIY?%z z6hQ2?!1FHtl|pip*tMM3WeQxWv6Yz10z&^jcwlsJ&*J_8oS?Ka<{pOQmKiFB5EtBV zqi^`l(6lI6bALo~twa4%)RExqPTcvG?^U>mL;$1Z<>+%eJ8^4@;l)7sd z=w&bbR|beGY>)ysx5H1uz4cEYmrZ%0kc8Fq$=rq`81qAXZTc`si4jD;$0m<-Zm zJ7vvnzL(Z-ZAJ*y3m+?fA$+D`*2j394x3kp(mE3QY&J?JJo3eJ zMcw0p`5^g9&#j{PCEwd)jLG(Gf}IWDDdIgny0LU*DBE?hwKG_asEXGP(ERsFzpCA^FVNTSGhTIM%$O>VFknXHF1XDoW^>C1+bBNV;lu?m~P^0I!YKx863am3Z@ z(b~#DJigwn#nAj;0l^6sWto0Eq9kZ(#w^8!b*V%YEW{+gg38InEaex4<+WDQ?SD;j zL&W(+2z=hp=yokr*8sT`;bpKDaVo%10b=IvbUl*2;jX-~!micYyQCcE zK%`GTal1ES;_!z_md)#deDm5Q>W}kh-UAIN;iz^G9&_YTea+PJBb&}t^J}tEUqpO} zCO-IOGTI5H*pH}sGE{dDn|7B`c2$`^Z~7AMnDuxvdK8>Y* z2Yqzh7hlPW}8 z0nTyDT4?133xL;q?e_XtQwTVv6s(FI9&$2D-}p-^_K17(Z@Wo6$?2;{Z;7JL>90}) zrkLMFCYk3r78U9aB|6{GyzQ$}@X`i?w-bQIj36Zwq)YkRl06v8gxqj|;@ntsXIXBE z*&|-qY$L<3^m-|$d6-&OSuKfX!4_W_NT!u^6=;Q+0XYE@XiW;q_FgOb-7hB1B(cUI z#=$~{vgeWTW5`szxyfQ1XrB^5rZ7oTZGM(&!jp)hFpTt`Dg>V~ zknI5H09CKQ2ViL6Xur7X&UJ-`Xb%_4*;DKw=MqAM7J&Z(fk1x0Mc_XiIrVHttWUX{RM|ZG?c(_K zy;X<=L`UdM7CI44bzr&tIX;$Ly)#FR)T}rR_bft&l*uuv2^)qTf#lEw4J@`5jF)s) zi}Q~J?RFaIWrPfq?F5?z(V7(C8d>MF7z7=nAg^^ojCUcOlzGLALZZs9f8C`zdUaJ4 zXC;p8tY|m1S@7{(2_Ud0g6>A>+5wzi?o83t*Q8s z(iZC#O`gf;aPVjeGF9y zvzj;;y-f4t&6#$x6NW7(%7fk5C5dOnj7HvWY%@89h71D}8j~!H)heX#;S)KGkn5$n zYOai9s;Xk7YEhpmIAX{n#o~2`4}4DVaU4bDoAn4CSG-U)5ZI;}-^gz2lrLp**oE1O zAUf-0PrlE|8gZuo!^*!@FP+TI${VDm6&+R0pYQgJFX=po_IEcl9TEEd4Na$Bu=9Hg zU+R2MQ}d5_bLGvSf7*Wj62oBadXMQCeWLrx_o9c8( z^F7RZw~b^M(`-?{v+^cQCQ;5nf3HPmCl-I4sljnM!pEcspS>1sMGmI&^h>ihKT|O2 zEODf>4<(0;&w}D-Z!U}J%)mKkZ>$7tSH#)fquCUkP{bw7ab~nerIo2=9phykV^ z;s-3MHgC=1<7k}x%srU@w~mc=WMv04J&c3;}`bc z&TeOKZ?E&b)pmEC=Np~2v%9t3+TL#OI!~Xqo?6R$KGXfr3bqe?|F^bwx3-M?zxk() zt&N@C?dAPn)_;Gz`tMqITWHbu1yy`sT)Fq}q1O8!xzzhY>bx(k$os=pc%Qqx`~7OW z-@mZ?`zYA{O{=v(N~v~p)#uy3d(?1$$WrUyS)FywDwj3Y?^9Df zN|({Xo0?jW#{pB*w`Q(_URjPD_8;Bzm=If6Am`60N%n-I-^_`$0H(dR_j(wr(zpfT) z<;~2mP)*kHK!X22dw;v#Hj*TYqV*e3fl;mLw&#eFC0XSvm&<$85^eKXUnNrYF>`ux zK_n=lL;@@Tl&qeayZRmG{@H8I{<|OHKEQpHev%Ur`JG6BqzKA(7i-qE#mq!TWM*V! zWMq7ltzddN2yZLbk6J9gdd%=X8l#OW#e1iflW){`^61CGme)=E&txHJ#EUEgo1$eF zfwBJ?>%bZ zsq9UYvM^xIHdi)Q_^UhrLSoZyu9?a_fvSTVXin z4yq5ESQO!BOe;2d2zL^G?UK5Mh(pW=d-d}$7*h^RU{i>bWXWuXD0{ZdN=;r;eVN{a zf4$7W8*tc6VV>{jm;u@Lfmsz={I_*pucAtZ1t~Mf~2xz(c^A%>aa7{5&6c5JbOf36sjK2Tzus& zx`{YJ{S1Fr5)-w3ApgK`$y;-Q*}d7vueQYck+N4!sH@hTLtxVwi$dGdo+a6#-z^Wm zQn>VUc7={k!f&4^Dc5-f|B{A>{^8663&9S_w(~ZC5e}FgDatPFfxt73KIhy2cj0AY zqQwsTIlLrm^lA>EzIx1Cmsli#E-Buz(Vf-$S#7NdOQY`J@sTemaY)K3A*cc+xsW&j znGcSpXgV&SVQjcB%`?F?OIyqf!Bh>HT7kvw#!XSjka8C9OdXo?yj;8!#w3Y9KHy`u zZPkwbYz^U8Yz6;lCh(7M|6aTC`+Q)@Fk*Wy)Ayx8J)WWTC$N%!TodWf!ajOs#?cRU zEO?M{^vW%x*JjcG;AYXE-X?lg2GKP?ch>*HxspfC&+r}di#B6++W!>~%+=Zd?d&|? zdHzh<|Lwi_>e=qj&Wq=3`@gmQ-{aZ;Ipx8%E#TS~aBU0t2et)_N#N(-8%*FR>W6V= zyeb*j%@M1g&&rTz{TKqvxsEZ>N{*qmGyBRc>w8qcHZXi-1HCE^CvSxH1{AU%uISL%bTNpvXd0;7E zB5o~SrMaRL+QPP!lcnFvs-Majs7b}Nfz;c-X$*tDwAuU-OMEJ+oC5vJ2fX9-TOPc{umhA zb!I)E@^Hd(AS%O{zwMuP&{l}+uUKr_1y<{4ICGM_%zyG>__P0f>)F$nz9@RJ>Hh>B z2b=ycXWDGCpt~>q&RO&PVAE$gIJe;+)#lyF#r6><<$UQMhL=$gYppi@i_2-8PmQAU zaPU6JoqfIO9KQ5V!W{lB)>{*FVB}|5a3*+C2-u&-4&tHvdFlrqidCV9sY^PYBmW6p z^Z&1>C7ZjH#Nf)#6GGs*F6-`RS>1N)ZPqr7Ft);x6k1SY8;O@a}7XaY%;Qc#kmDr+Ia5u=H*$AZOE0wa+#BB&J+g zg5+p%4_f~D*?}Hd88di>jZt{zzw30E%IYI#+sUUBvPYiAKzP9f0zZaXg#k1OHNXU96(mfwa~=SpPS~RQLF`cvRvI16Y@4NUvoduhBaFGti7@lf z2S836KQk;6(NktBDug+}4rIzB61J)7w7AC%++{InajJ7E33#Fw(s}s{~c z^r(ICYYziabE@?MWD;nSj2lEZ10kzzauCpSLkwWyuY`#oEJrl-&|Wjja~@tDpidI$ zV!KPc}0A#7Y`bc<`J9tsUZkP2b zmTdE6#96hWs?l`*%LyKa3yFCLa#=H-q>KN}U=2HUvxfa|zx&3)8nD=44T=dIz}#gG zcKV{?8HdHUFmuZh2l9-e?AAS$Z@zuz8VVMd4CNTs3AXi3c#l~OQhretwOlti`@b0j z-K%?`&-eFT1I1!vpbH4bEY&rWgxTL!GBBSRBe0Nh!FOGg)YkcSp{>)5llXp|Of%nF zkQvkdymtE9+1Yi`7Zleq?SU9)WA*~rb5fjq+^7k6CA?IJ<&0r{Q~PeVN;d8G?%7}W#C{JJ=!Ol1emC&<9E17LJUrg_v9Uf3)n&<0f)ulOjqtRY$=^E7&JkR8 zcg0~fdt-iEzmWfI$0_7L+p#2j)|RT3!M{u z4=GX|Qchw$zURXjL7Jc+2j>Lr#~i!oz<{jt0oH|k_vm+F#GhCnj1dS8i^)I#A%p1m zGnm&t=hNcXJi{pHTrEb8*t5Q5P+%yB2a~id&%UB1-h{lCb)iZ z;SWCoy7aV$`flWswJJ)t&q$5lgRlC@G|qeBD1sA}S*E>amHs)e6#81H%>&IoZWWm3 zIDu^*Uo`-!F&)^AOF2;uknSUDvnCbU@w|mw>WIo>0gLs%~IjU>bcwJxb@9({M@q8=DCLcFm zA9orb0Fg7Y!W1uw+Vi1}e!WZaJ_=KcG5{xHkA&}y*VkGZKINw&rxL6VuB46grboG) zF>DmRM`mPZfFY@Zj8XGA97Jeg1~Nc?7h*`X*q=`5P#TMvb)E_y2=|7VSBfqx=0OPX zxRCfNDn%cDRy`n7beQ+?klMzswg%h(vV}10WcL{GpI+v9C^j?*SPqm4p=8LMlhUL5 zhr>5I6RMXY5JC^H-#rd`;UT?oZ+&?ArB~c zc`w8!?ZdaxM>y$#_a*F&34?2mk_;bR^>}3WERnb}_VE7xxBtEgLpbIKfB)P6=Gj68 z%3S}I04cgOGb_d`#9*IcKn@ZTQ5jb#+>D0x=AtUV7;&xT&y6|WoVE3#crWtJVFNpR9vRy z0geb_TsG*ffe+^*Ev%oU9vN~nzQ9k~3jRUKmau;~M)0ji80HP8<4Go``tZ#zlCdZ3 zScDnT9nno717#wq)76KWe~8Nih&7?74jdY!0z|xP6vkKi^}U6FBP!3UZR5x@&cx>n zpNU$`64d2@D1ZbmL+9XZ1%4df`8NZ&%ppVb0YAh|Oh1khEs)Ski$xAZL%<<+G#K4` z(0YniR`dyXEAgK|X(J0KK`O#w9&~);j^}q~u;UmNXAP2dJ zA)DaX`+bTc8ej~Z5bf_6DlGd8&mcp1QRKi;hA~#7T=eO|+;bZ_I2h4nhh_W4A@Sjg z+ZQg zZF0WKf@9K0Fa=l49nQze$lz$sIiK*e>u@ys```X+NMuBbayM~jbNsHtobD{1ytyDB zge?z~cEEbim}Mdl8*&HNw?RTlbbz+T6WXgRSB^A-p}@qG5wsL9KV#Tm7@263CIqg0 zIpb7t|7-jeIHiY%pj2r#PkEg=q)G+ z*y9|mC%^0AcNuJ=J_!>t&osl7%q}q%Q2_JN1garkfrCb9+{_1KuW=ht3iE+fDG)$7 zISv~U8I9my?;4h203YIhVVgi7;5o4MTeiA+iu%I_nhhf^=LgUA$1%$Ctm3u^)=X>_ zH%KN7+x?zc1&_;Yvv8?i0nSdOkp3MF$*f{biIzM))AId=~79JqYt znIRJ3DoP->b^d0*cW`?0w*8KVNWX!X_0G;u(P!5WU75x!;8+(<6u%p@wuMcMmW43l9yZ5g8a)@-Jdp=OD6nBt z0*HikM?==79-Y6fSC}Z6?o8Rq>LIU(sA{~ z{(tfmCz;n9Rup(tdn)|&7+7a|U(jJ8=T-)}>=F#4^AIXpX)u@!$~fTi46HD|-@r8M z0B<9TyNoUAM(lA7j6r=Rg8~3Z*34X<&d-uj;d#o9m|%X11;Z(cHtd4{xFNA8JnA{i zpcvcoZtb7854lY4!HlCuH6Psz6Xb9JlktS3K-uoH9RD{^r>Zm*_BfylIDC`D;Z*{t z6Q_DwG7s2)FAMuU?qLA4A*X=BW?F09KI_?hoI&A_&G~?Di6jd()x=!u zh+KTkbtfYhdwO(hktU1fnn&ZX2S<|HW+DUO$;HvpCY*RoS_l|d>F4^hEq?6r?Z_^` zw0w?JZPH7~mFdxy<#vv=P5@uGd+I%HGi z@nFJ;3#>M5wd5uetC#5oa1j~dg*lVzmqDNFu08oa^*xWZp&FY<0|?-^7&kr5uF-4+ zb=s}WNt$u`abUMSm7I3NnEtw5GC1}n#=Fwe+ zNxeWGy_3`4L7V(lI=x?rZz%N}IZLI;GGWvraVk^Za_)kB+ToWEvMcC%o{ZRkK3px+rZz5*r> z+c%_(A@OKfGv!}QS6+Rk&@GjP8Xbfz2o8Zxv`da9Pn`i7;r24bsMA>J@T&bP{< z5zkhf?N|C4m8r>I8hWy#S_UUS1#vMajd98%aZ(6m9!3;zvmSqHWk!5_XN>(Pd`3`} z#TQ!M_VHfL@=TCw3dSFPBt6zZT`xfH8uU?^QLUeDD#a~)5KcHc9;#zUlrpmF(>9|CHX}G!?y4V*Bmb zgBIFlUtY#|`WuBngzP03{!wr~=U3!s=V^Kp_Kt1nLP$PG@60J&1aFz@753{yJTc%p zq6S!Le^Id)p)vsuE06rMfRZAT()x5sqIHnETy0}3k)N7Ok~`QUsDHwj4VpW9<_}Lg z$e@!3K7nB8_eerg(@Ynb0l(I9Rn5hD+e1v!0s3qjk5qo={3oB+ZDEkIw)jN{FYw1( zV5r@LGrAsM9G=OZ@wdLyg)%Lc>P13z1gGzGLYte!O45R|bTt6I_`X_o#z^H1EHmj_ z^ye?J8kO>q@}uSs0W*5I$Qbtq$p&AEU@loSL^@4;Wzqm-$czL<5hQ z3_E#Q5*~J;h7M`f@#s$`njU~lfl$RDm9XRkd|KpI!`jsrI2b;rqV6J0(WeDf#}QL2 z3%#gA@rO5@gcff|=O+5>^4A(J9q8WMq%jkco0J~#MsbHaV&vcK+u}>!LKk&=`DBuH zVp}3^1F&mr!8-4ojotlk$OjuvNy>G0xKCX?!HXS>1Odn91SI08l-`}pV28T8DN*`W zJm!LXd9Uv>4^2$Y#Wp<+eLT%TdgB@00ll|vAncvz&q%1D!&7+aN8*za(i>n_cIpcM z;qaDUv&yFi(QLLr9C_bFane-1ayMa)Y~pc@X!lQ{(0?O>WAH=9$oW+~K8>UDn{CWP;&9G%bdG<*rZ3_y3~<^{oAn=Jd(QgYY*x6 zLCna5kK*l7-U~~hc|xPbBwOpH`zEIsvH)KwbNN7~JIQ0ejT`@&`8FM0#R+?C@ia~5 zrnD-=k23QUyw(Mzwh)?i(x|h^(9pU;YYpA+9y|FccZumPI@)JqQ-$ zK8?JbI9Mbek#Uv3T6y&HHey${k;H=T*n=Av)`N5HtZ76;39D;0dBZ;}p)rd)GGtv#nC zs0?bP{#NHCB4C5UuziMmJtf^N(ye^+601N{K-K}!U9;nu1uK#R159C5S)`39H=b_- zri|30sCbH>vFH(<)&agkbz8r5nE_9y^Okg$NUx-ij$)>0)HJ2N%ljTkFHfG%j~cLj z;8RIV+mUpB27aD)_cc)@jlsKCmuU^!$7ikc&gn_BdwT9hla%!i{4~vnzG@0XTr6=| z_R&Q+qCFlCJf$osMBKrVY~rdm@V2nxhXSGlOG8%zoqjV0Ai>csByx=2Xl7nqV+wQm8Je!^FXP0K`y)KzHRJ$ zL-$j0fAF4&V5p?Pf&aNU=rndgXxAD&wJoZMC`mJ1%KQM@*@@q2p0I~GTWgGXQR)qrR0kQw*+y6lPX^njs~K&$4!o`O&qWl#W7NFO1ij!^oc%& z&^ypD>%Ykk;7))F;=d{@ff?7B7t3n=$Ye#OZ565>Zjh@^ydw;|P3B3*^m5!d#<;Nq zPlf;#Z0ZSy{d;P!1*xwoBA{mP>t)wuc!*mYFAfu-uVq3Cm8Hq$lx|L(*P;T8ea&<; zEYV}1jA1nU9L=B@2dM1QNY68zVl*R%a;8Pyh?A6sPP)Ao$ZO|k=j~3bchWp=G4X-iVz?BHG3`?5Eei{?#16)(G|Uyw zgCc^R9pgTL#y&BmA$6lsbiTdg_Lk5 zbmvNAAyt=fVI><+7zej3^SQ>~W7-#CfGL!;FSophZzoYYXaG;j?{&uzK{}mad>P==3qMeV+=yp7nbuZ96UNMl zpmw+{Dke&1Y^cc^LuTh{F=Dt90P4tmjmQ21tCd!xOuDn4t|Z7oh>q6xeq-X+Ir*YN zP!y(ciiz3vm1`sVAGq#(_Oc2A0YxrMo2t(Dl)XC*#5*X@H9{2Yv=rq=Ji{UGB=HWc zNg4u{$0dq|C+8tAm*RMZs&zhM4MoOD8H}Ci6+SoEvN@H)6>a-iIoYZ z&ZhTQPSs(bCY-5X=>+;I%JA~q$)|%TL8}*jNa0aJ8V_$869sV;8Zsy&Z7prF@!bXa zqtPQ=l6LkyycY-3YU@sD=mof1T&_I>U&>kutJi5>O!S zmZSjTx_ajh^=OC2!gP*rRnmwV0@)_L^a?)&W~c%j06M_yAZ|I5SLykItWrW{(O5JS zT6ji6A_gaIIrm8SIcz zaTf9yk>sWkWDS7@X*|Vd=Mkxyn&?6Dzlyrcto8amwiAVsB?;>&^txQq?WbvB3)+Lj zoGugGdQ7`bkXVu%T4Sb5@JOPk(*)xRS1`ZkNb@TsQ`U!Wmiu%;fu`V;z35IH#92?*O!tI3 z=?9^9GIu4qX)?EFY{*3(_k9qrvG|mSkz9m{(cwwQvvqw;{2;-cF<3O>up0?W<7wP5 z6zRg7fSVf+(Y(}%4?m%MGdoQvQ%;O~LX48+gX{94cqHb!5n>SW?A@fRlX%mm!=H?d zXzU(-&C@MSf}Dh5xJXRlK>En7ScApajl`$neGl%TDUHNBT-?l)yRU}qn#FM7er%*P z4{^G(a{X($1`Z@XI%P7Afpz?fqr z3x>9|E6@#q@QfWx ze-Jcul*%Dg#8N+zG+zkBa=<_K>kkr)7WJP!tcZL7_9osGBDBZeg%930Pfl7#y*H;9 zCx>LFE#HUGXfo1$19LjB2flD_@h%g5q!-UO@)ZhC&NzfVSZD}KUgVj@%ieSb8TH603Btb!iZ4wXNoN|$0z0-olIBkc9?jFJj#ty|@* z_Au#D&6_LtgcPpm@DwS-8*lJn_VjqzhcYarWpHLIk@elsD}qvkb5 zw*-dZmL0=(n^~1`rojx1g)d~m^OT9+i7->~wBRGk#!8by=&Yfx#nXi_J-)mbzTKuC zP4jZgx$%MBAIcq`km?HiL|Ye*e(BP9=(pBuo{6Nxy@NMh6~0Y5Sdt#q-k_YQjd?b= zJ?8_`txbEg4aaQMo-yh$=1%)uuO`j`b~g%usKXwzT7iOPLdT7^s}8<`{JmI|i>~&( zm2op%jO}2{-aK+1BPn3;VzDqzf%jgDta3uw@uM5a2!6_BZ{6VB;}2Sye-+_j`D6lH zCAu8(L_JcDWa6Fh$bGs=&(A3D>n=a02yST|$!O7LJAsUmz*h(O=w73L*>7am!H%Zm z@#xJd%9vVIvxk)_kSu+W7&Gh(*nxf8B`lQ%DZH=?rhb=chzhiSa|;`dx##@-Z~q1N zlm=bFF@VH>#Yuy-q?`QI{V(=VPVr;CCsCYDh>U^z^O!cwy#N>|vdpK8#ZTFNw!9k% z4j+k!%k-!!P}Yw6Wk5Pa@yp9u^MK5eS;!G--MGoUNZ@nvRK{IqFcFpL2pI)%T*YfO zhorC=H(tSkZUK4boX>#YJZyB@?@n5WXU*<=Uv43GxdXH?0tyVo zklFZKo-g0>xc-`+^w71=;je_u7n+@)tddpXOQIcPhRdbw z425;}Bk2C%xT78vX#@`61}xfHNJSv%j6LrUgn5eas9-k~k(z51n*J7hhG|ohUIj6+ zfSh0W_qi{D@%SR`Ua=MLiO#S_$U{b}eg}5(FXwk@^KX7TXfeF`iqo+aJ*-opuL%|EdyNST?h> zDi7^>a-5z0+~_oq=E^R$cV`ZHw`9nj=5b@!iaM(WynxLCOqGr-A3Z~5GN`BX&A{FY z(mCz9(>awbs$_TQDuu(7CMxETcAh<*Ye>&On<3So_=VzY8uiv zD_bRfV-;6SuPxhh&o3INjcQzUTIcq-TzjnkbXVUkp6=>9E8SHwyMcQYJG)O8%-*xQ zkkia?Z4R7YEQ&J#yWxpA=+7#A85VP3Y~%=K|9GCZ1z3^uXH^~i)DwNk6A7 z*C=AmfiynPZxf&7JQ_Vpu+W^o95p#L_wxAZZU3191zk2cpWCVFNV+ zLDdbGE;t6rH^M<(Zn2;C>j6dS4RlZ%1f)%R_^AaHkI8EQ6ZdWw^nsMMyx9zpzT6oK zw0IDFAfKvb)q2QE`QYB;tyElBiNy-rOUuHPJ%H4+N6qtDmcnJ7jpFmC=P;CfUZy4WGru z5x*G(uEP3Z10_m%oJKK4dA^^7Fb5!fZIH6*hmGGiNKyF1#?H4J{Qr7UA;){!(``2Or1|!~}HYk&y--p?J-v=OH$glV#g#7Z=HcrP}@&WohrD2NV zv|GLql8OD{FiC(G8W>S;5~dsO-dUp!|Fvfb_gae-y_lfEt4Qd}Uy{Nc#cMdDFHc2nrlga(}zN8@hNgc_Zz<*Qzyq)j9-EZtZ+uhs5?XYE{V$O_>-6$O98%6k@mYt|T z!y*~Go0K<<&R**j?*B)zU%^DBheVH@A52IkUKAE6;T2j23aI$QKAf!ZWoY(qFp(qH zLeCp-0m8U=Wk9aN*fCY_$l+q-x3S9VjhdHrXY6d=St};pFtg0+qk~Zz1y-kmeaK$b zECkUgPhL`}|I6uB_CH}-w!*>mf51M+1QtISOtjZ?o-Z4(hhaEiR(8SbDuQ!vv{&1g z$>1JYCl2iOSL^>i>;H&W7|+^<6Q8LRNC>YF#xwZu#r{72`{LR2Z|L{VbNVg*`)cR; z^ZlI{yZd|3cfWeJ^UeP5i?96s$C!XA#&hxgudc4AgDixzXLX*|e z878}`?ua>;>D9jlw*f1a;^i&uA)up+NWARQr$>AGJ?DXrJdF^FQ+z|M@+aZ`gq6nG-)t`^FsqM!|Qs ze#=Pj|L}e&v_sZU(s22{fY-Cf1V>MbbXb;HDV;XSnU{s8madr^QE3-?2OZLZBKukv=IAG;8@9N-2#bg@r5VHdkm|U* zL2rCDF7F7hH11o9!EF2|Y%e_3urw#iC#hTT##c=Iwl9NNJ@dxP8d-P7@*l6Rca$Q; zMC2Jb&Ac>8cms&TRdDgEC=-I~1>#aph71UP- zpEsAY6{4~KOLA#zJY~xXmJtDIg?O~EO_%wRR4%BN+U@{ftd+K3IekDm6 z!!HqUB;7BCmJJ4&kZt4j|NsA|ScZ;>(D(A;k*OBC+HH{C&~k4n#(sP4*l7A|VFAkS z1E72@BAqwx;fB!=wssrLpB%N~ST1ewsx{ybLV&_lA_8pBVMHH7h5PDmyne?UXpt-l zC*EKMD9JDu+<33S+=BWdg}7K3UhV7EC2yP$CyM+g*NLLb!t~Wk5(bQ~MJCz?Gkb1K z=s_4G!D&xlJY1lvt7RQbL|8Cc3iHGaup4Ny)F4aejn}85Rz^Q0gC?q70W!BycvnP) zJ#zoV>MTU8C-1rt;lWXgxbTXN*N3u&g%NL2JB=b&?XhTbhB!vfB0T#mC3>raSao1B zX)=Q+e%3PU2AqAgT;*>FuebQm6@Xz5cKN-6BuZAbXe{HWYuQ*$jZ4Ns2{IImR;0?> zAR#XhU~1zF77X0x0!D3H-h#mrO9&|J*DBzsY|R3eDp>`*Y%1Vn)0OlOd{2n~ulcW4 zz`2bR0R;YB0fda%=W-zYSCu{0mue*EGQ3);f!Kr1WK2x!6w1p*|5_!9GGVgL6K%FM zQ13peKE~=iK2h=bSY~|)>(MRy0O%(&?gPk=Xy1p>9?!%Npw(*SH#bzWRT0(}E_G?G zmVROhKee%+`8@C`?EL_PT1@^dP4`Ny{%nQm+VJlm&+xDK-1G@-{~rEq@>nk=t9l%% z{XJw=PavP+tH;{N?;qd(%M|Ay)&6gHXYZSD*7kp&)A}!C4OngexAOwl-Ln7N+k3IL z|6AMtJ)-@ep`xhU2C!B$z`88~KO1Afe|USq8chOgwhCOeVc?RsfpwS%)@32MxRIcI z4(6ShuWqv}1GR@o4U4L`%FoFp@H4Oqd_=>*%2jc!=Moly77^K`_HZ-6)ms97e#U^t z;lDNrT*e>}w?IQprN=^zQ1F|97G(=Iy7?$nWiDv;`I(vwKFF40-o6*Jo|w1S#q1^K z?R9YriFtc|xJ|^o5azdnn7hY??H=asc@ay8Is2T`w&BaPXQ+IHeoUK&$``8g&^PnK z+@1eX`Eg7g0MesaJ6HnPG6oM1Hbt4=U~g}Q$I9MHj+MQY94mV(J685qeyr@(eyr@R z>{!`b!LhPe>#RpigQW^yub6k8UCK$&7?Pg`Lo6WGeJoSPRu?F!V?^ zLu<34KZM!P=VCduTH~Rmw5hc!P*1EVw?zorDLJ=E^K z+J>M1fn_Wysw(^oO99Bu4az8F5HeAP0zwgy9JV?K=WUWaE9pf4@&Tm6ZVdQ88A}2x z&OVi5n-YqfahkBh5#{_0Je7Yo^LcV#o_HFjLTl)=nW1-vt+^(JC6N}phD+gR?$|DEL?IElLOZ?kUMk6-em~|H9>S%=0#-=|I z!wUSI1kqGM-16L5qp1tgp##xZ z6RD<;QatH8*U25jh9%jymqd+VlP89ywh2!j>;;#XDB!Ui=REnku0{`FVy@w`Fv1H% zLp)l%Hso(n4aESSrDc=Ht)8O|Sle4(UPv$)(_8OdkPdL!c`MIuGOYM~$UYATWgnka ze0-KBAEPSBlZuZg@bP`whlf=kCRu(M7!fG2iGo^;W$Y~QUAWI zmfjf4;ht8&J-rFs-QK{&WMu#c;V8r$?PU;y3W!0R#P?&m9P*F1i2)dDta+OAXqcfQ`99VdmW?=*0`A4@D+f+1j0XZl;0@*X=H05SKm}))0 z4&Vd`GMKLrRwPeSmFry_i^t~n4z>K#uqf2awKh!krupY-@)21GJs5W~}i zUoM}zz`szk&pfUL|s zOoSTv+O-|`kfc3rY@S$*Y`zI4lW;zj_<~e@Rc5VgyeKbb5hz%xh>)FMXH^q<*m^6; zR^@P(yOQQ)Z$*`d`zZq?s+>KFpk7&fTWJu(QF};@1pF(j#F(V5?yg z#(w|OT$Gf%#6lk`CArj(FP<#i(4*=q)Wy4!+DD;yT)Ye8h|^EE2V_BK%$@P|#XncP zK(c{PkUV|uNA?fnM^+AaR^<2j*6j;)EPJrK-P*rw?O(R`FI)SUt^Lc^{$*?bvbBHN z+P`e=UpAkA*?bnAH5zgLaec_@u+Cijj(uwXFMh{(X#D4L|F0L{Jl}a{`+q(AW`FJf zwf6sdME|dBy7vBBdw;FHzt-MgHF?NE#nnt z(1}G$Yp<|{?j6~5?Gv_?PZ&<1?h%$vZGW(ATI~%6J$(7TVECvaJ;BIC4XzAVVcx?l z5;IZz3sw|OQT4{sEl9I$Gd}B^pD{&X&o+`XKGB>ajPg{KlX;_2IZ>7Wp-Rtm7cJl6 zOQAP@>ux+UM=*+pA%b@x{#WSjUrUhxy`(%ed*@eE*7?8rFv*$!_rLug-~S8zpZ1yV zEN8Zw%Qh^<`$ZZu*@jWxdF#iE_IV2h-D>JHzI^}%9#7GUB)D~0SniXVY%m%zyFv_P zjjsfFP4|8EUEn#s1geD}Xeb_YeK!y?efpVu+`%0UU7YxAM1O^`i%|)ev8g{vldCis zEBovGF7d|^xsqisy(A`sOaKOhnu3IJj~B!EiWz05A$QvgheI4QOd)P^zkSHi3(zi| zY)#p&rrJ&EokkY#y!$@%mBR}7ad^jIMfp9un10N+3JycTV4TEsJw{{K5NFnOS@Knj z2F=~Z>yrfC4<{`{q6d2W$)|%TWfuN)34bqWj(-4e{aS9>dI<)HHlB*Py35Z)XB!FwE(rYJ4^p zTgN=ub{$f>C0X824Hjm?<3124E0}EFVAxw6i;iDJM551quoM1Cp=t+y;})t1v_ySG zKj?Z8nwA2v$nnT9K`DG@K1kT_Jy4!@sdPl*kt5d{nfNPpj@fbZ(pP;ibgGo5G5eQs z`h!L?s*pUXec)N`WFhjoYNN8`Kf6GHmBU~psF zDcD%VB^`#n#)C9x$p&7+UOCFlc^2=+)OO4-Y3=Bw7yNZWIuHp49Ei7fvfP|=Q+=D3 z-ld=Qp1-@lw$Dw;VZRJCo5epCdOY&sEy4;A%|mNDS^7s-G)f* ztBoVsB)R`~-qPg)55co$fu&C^E}2q{_W|!)8Ld{%z3%a0^!DRe-0G_y%yN6qRqGiC zBE_v$eMf%+5B2g^2d=fZhz!@?E4D6jIrwq`$V+))^3b}uvBRsF!U!f=q-4kx+43P{ zhg+@?&xd@|FD4%nli)SF0m((nQL7M!JTf&kIOm{7=%zua_vyssq}fiCa87~YgSp%U zEDsQ-_5_eAtGB+wGnDGTnEp8rgz* zoN*>ncj?iv56SY<_h3n3P2@3&iE2N?M%l=e(9(H{e{gt7l*nZkIpZ_tk^Vdz2^~2U zH-uY(&2a{ArFy(4@3N>9S%o($GxbV$kK|Y|4Sb*Xj%e%?w8^AC?uNRMH0c>%GK_AS z|4ej<7vafNuiT4Fo3x20I8VsnPx%N;tZyr5Boxr)&7WN7^9|# zA}MEk3P8!vSqhF_0iuV{YUmXb&Z(!%K-^;mLJ8QVKa93+Sj3WLhSk7`rGxV%|HwEZ zQOPDzr+Eg!?9aXUk;Q(84Ar1>l1f_og0_{lv4EwDy>Fp%BbIi=(xxb4#3tWu zA=COtd=A}06lLe#6Yj^5by$uCPLFORc^Df}nu(F;n*n{KKFsY=V{hF_Qb0}@xta-r z5Setq;-MBA)4e`pvS6xDKdh6v`gH|0UyD29du<1|SX=J5ib+YFJi zS@hkWGvUSu1P4q!|Mu}7V#fx6oKl!V*{R5Hn3rWx_MXFjPLO|gNk-sr)^%%^rYn1v zzp(n~2lvdHzOb5136YAoN9&yxrH~Sn9QmuJ zG>p39U~V!V8fwTKvATJ*93y3L2Y2E;LllET!~VkmfHvh3X}(}hjCSYak(IWPS5O!h zRLn)jl4HFdFWT-aIs&f-i&cgJog+Cei+uIFv*X8{XK&juSzZWANjcQj-~!PGsR-!90}1DW#$7UQ>#UY9BL?P z<-9r9j4_t1_>LRSSw%5AFxly=fbx;k_)_rBFVIA)p$r~=%kY|Qk?_nI1^4=A7OC7P z#0A&h7bs>c9Mj1X$0o(!rWiQdV5_!Q!$Bqpe@EHV|KTcZAZS-L`Mc_h>FpGsvf(^B zqZ->eDLNi`aC1+%1}g@Rk(%McvdfH!ttgnv9!?wqZ^YVO1}#bmJd5i$EDfCyYtlfk zP(TWe+-&QUGfq87Ab7D#psnC`baA4^Wzr52*#Q)e&0|+@6tq(Dt>G2^F?+M-k}1w= zlw@@PB39EFQ3KY8)gJ+VwZK%YhzXIHfOd?dsFMCqz>)3{ zh16=}pr9jG0p5B66c-Xq4rMn8?VI?89$M_r{S?-YZ5PDfrQPxb_>BLQUo5?gL}!i? zNd}s9b+N0(%jHWu#i|Y&)A__njvX&4SonSzr*K4PN#P}8i6BJ43*;O+25@7ppz_Wi zFR=TK|KfxF9a(nqO5H0Q-FqEvIuz$0ia~+D=T{aa_P0ZZwtAOg|{e#dYW3wj{&XH=L;SbTFX>#ejY1YBzLh zPFB}>Ji0W=>~mIq(7AM!u240UtXqt(QI**|A_1|?@yLGXJXas{R!D(XuB2ryi;=Jh zst#&(ATeUKZNYk73PmqfR|y~I(rDE|+cANLXXe-ys_A+++ld~Z!Dt~^sIq6ev92cR zh$u4HLCBObKOwX9fyfLbeGa*|mvA6CV&>Tlbtl-gP$|jpH*3TEAEupEUU+Q=`%8oh zjFkN-pZUm@pPyzhTye7=!c29w@|fH6Ju-(B1hw1^h&#KH##m#7j2I5ALPZ^vCj`!y znwYJnPSBAOn|^hLb8chWeFWA@jLgD^p6e(MPM#BtdJ}#Jym74 zA*I*>x-Qwmrodole-(!QGPalhjqxQo;M1KISTE^ek{Yo% zn<8L2!obF6d!J?tDAy-$e>g=2m+2!XC5~`I6CgLj?w%Rof+S_ z%?P?V^*u{uujd=Hj=3D8a5I6k3_#`_J5SfKD=6EZxb)#)Biea>Ia6mpy3-9-rA19q z&zx7Dt<*$02)ks!>t9+_Y3(-d74TbON}6s62^3`f^t)Cp`tU}5F1Dd8n*%YZq5pH+ z{xqbQ4`IWITQp<99K`2<2*XM}o$f@~S52j1v^jA#qL?Shk+^l(E~p<5blOla6+P|? zX{3=R5xHU!yF_>*>x$1>!8R(C$WF_i;g3p$03>}6&V0K^*}k~fJ-YaQAn;$!+Bz>x zcMf$F`VmuZqQDa?NBv%<5q#s>Hh2LY&2t{blcqidwC3G@JhH$bIhuMUNV&iJi)joPctKys(+J2C>BelvdlY5S=Bd^yaT*wKT9D@C8=OP1z? z+P7q8&l3Y>EYNZ&aYBs{>#^2;kJ`Y|fP)j{N|yZfX5E%ECPl1iQ{b7x^D&k)ZHlD9 z%E6HJ=sbq9<~B6z{%qXzPW_Cw=HLsee|bY8&L)Lg{5zxmc-UI{)B|XJf7%T}hR16c zF$?W&Z5TxpA4==q$u()kM5m9+>DqD9&_<#{2@mmVOo|Yv%zt+(4d*60jj>A6g-P_I z6`<+rS4Fm0ZsyZqxhT*n_LR|v$2LW9BZsY)mZ|6BfPv_GFUOC&Us+w&y|Z`U|CHIA zwm)4!e*4ZY4w>dvUkLk}rzfnG#ZIokfGENe(?iAQ-_UqIu$FGFSi-{Bg5e-wt8(2$w`iSykcc-UscwsjF36K2$k8>{k8wQkbi}T8Jo@3ZqmX` z8v>pFHRvlfbY|lVcWFlhhOI-1a-I3+pe=%Yi-=hkg`7{@lX9N8kB5$5G#x@gB@G-0 zU3YBiORUI}nbTQS5WaR%am#$CRgukHjYQuP0q4f?gavbZ5b^6{#^_{|jYs{Ak4~lT zB|;hY!KXyaT?G1!xCj>s>h|NF+T;ihtQn+3D*3r39X4^9!d6!IssO8L|z`G%D7=~xflZR3&ME|^zRN(MO=CfX3r_?bELV$XPULy3DW!6f+kB9SZgHIKPGRt}ay zqz8?^N#p6u&!Izx^iS~++5?h=7NR&Ms|1GJQb|%_WwQ)3oV}SgNaH1gcO?`+C17zq zGvs6cjY-Djpgi0#=$?;lsRquX<@@|HvmM9p?YlL)u3Gc8$M4yOcQlwmE}P8BJ^Nz&FwBnXBKXBYut58Mz${wO zxWecx-H~^7JF?`C+$D$8jJ0MVs^vp2@n0$)xPm(`G=^MoYbApyA<$sfGz{55(B=ir z(R9T0yU4exLaoFXrqL7Kzzc3?TICrIz3q{>K*F(cmRYm5lJzvh+yKpk>tHRhuXbNR%r2b5l3b4`Ec}eWZod}>|8ne zXoq7_`rE|~0d>CMm-{?dvA;JkNf&F+KrzGhvTVfddd?JgF;+}=A#}_~u0Xog$HVHc7Wx z@17Hs-)3+}w>?$O%x@VSt0*Yno1zvy|%bqiAneCDBn*M+V`%3!-qIR8@kW^PoHkUcNz9-BembE}{9T;hlB_3o2tO zxy3Fw?Mpdy6*m&@ZVDs@nvA4*AW4n&DV<$NKMLwn#zqEzJd_BL?ta^|QnKu%PZy!& zoO;Sn9K4Rr7|mA6MvOJ0deuNXjEyX7$ItAUM8bt1T$&l6xK(Ywt9Lr~JIzSuA(P)h zZ28|E#SpuMAk%zK@>T3A+T<@d605s`^=3CLF)N_&zHz%I`{&Rx7kcN1#hx#fz+%sB zzkkFnNd91BHv_fzKZ)lSXc{$tXe%6zkCLsYBMY|&hhJ04LQNkD(79!8+O4nhW6GKe zq5%=u25ZfcP9_O@e!0Cd@mcZBw7tL3Y)s7_O8mN0%mQx30c=7Q{4~S0S0&l@55SWq zG)9d7APxNGZq0PmGY@sqA}D^K!mc@tc2_PaqSjEP|L*g{L}1w~a3NE)ym#;e$vrJA z^)nPS%(&}Jko@`6@1JPH%GL^Nq`U!T`5ex&Pv)LGmaL@xNlIvA$_77uLad*=oo4cX zK?N*W$(fX6GN>xOe*d7fXCt}4I1sxK_$uBLy$>tv)VS-hd(EQzEl273yrxB|C-cU!Goe5 zJQ9V{-Vyf`aYJ~RXbc7`KQvA(KGW@32WZ|q)cX$AE(D4l%H7;m&`A>ZVJ`K8Y% z`;f5TMLcvuxH4nJTdB*DC2^q26lp8gxG(ocB_GuLEJ;_a%l!dX?qfX zSoJ6bn1x^o%&? z+YNIA$hkXDHA+eMFY%g8kD7KA>336Hl}weKy5bzrE#jOpun|(2t6*ZzU98gie?Mc3#a1KZ~jBZzfNihTbVON87{Pd(^=?%y;i=N zJUn?e;@o)#-F!II*oPINd@m;CP5)CU6g1YC<7f6Kt^p%-fPBn?^4&C+^JC@6lS}Jq zVWpOgguIsm-r$WM`?}J$^+vb!H|L_izi9aE^<_?i`tsrmYa8v^iCg!(TTlJFjk`U1 z%b2=akOcmSGWVngfWQUvRoGe%v^}Z{KqvR`s&(|_(=>H=)LnS7Tif#%{3XdY{lrNb zSUQ#;UD?{z&~ec0*QbT?ACxNlWaf4UdnV6ctj9g?dZA|~@AB%Z+v96#`u^mdkIC)% zIq%vB@?&>so6F#JhR6i06lZ7hxu?B752=Bi(Kda{!jqeb-7nY~Gj7K}o_<%(Nzd?E_43xRinOvW0xOdyr-A2)7&HEtm zejyUeDbvaTGEapgQt)(=eNoh0d;z+@+}tgm-(@OdeU+tt=IzAyUwqeCb?%W3c{!x& zQs{gl065h2-QK#o94wOG=~UiVmWTyEem$#Ys_5UW>#WKMD`1yXP&_&)W*mI%0y_>z zuumkr?iUuWWIt{#!bSmHW{-;1_eefsO9bCcS&EcrMGf<+L)K$5dsPXaA3sMS4H%A`X^Z4J{_P`Sml%eQr-k7BbBkSw$)}m!Lce&T4s1t!iX$#jIDw zvwjsCF5(aJqB3tv`VAq)^){B=EoQQX4NsAG`}xHljhFa>VSGtGv7ShNvs#_ZZXSGfKAmtRz9euebtRje&3nRqNkAI z$ZL{2#JT!31%fvn&w7dtTOY|5{?t-~*T#MvQ!{n*+RXw4HiYvUhEY0R+o<&6cC0q; zn!5uy((3enU(xu-&xhuO#|ed0#JIl&hMe5}35D}elHc<@d;+`QbO!FG+MetIsZbN9 zZ*S={e9638UyhL)_xtI%x|*UcTPoX9xOA7tUHDec6G0D@rt&nC-^q%qeY<|ip*Dw? zYHzn6jQ=VLT5vuTeMt+EPGKR%RVe9p1NU0}Qa8h_=s)JD#;E`8u-zN8txi(M)ZSUg z@bw_xc+QIWID}h^%}OdrOrV+zwsa&?o>1ml&Q+u{H_9CDm!o6WyTZmY?D&h~zRjLj zf{ci9K}X?Cbv}O3*tvXh4KQsyP%X3q6g~C9;j-fM6frn;o-%9&a-)faqS+xryNcyD zka6^~#)`P>F{IU^0ViiXSv+G3jm*xkn)9-tX72p~KpexQ&^)tlT>39pv~aTPC-cO8 z!z4qIRHJrmWxV7M{Z<*~0aNx$>?@3A^G)r+Y)jkC*AeEc6sDnvo~++-pOj)=f@Qy0 zzen&e9Ly~RCvyByyl}z8Esc&i{1B0tD2wT~p?@-S_`4~7#|{^9WH8oTJ}tX>TX%E` zwQg+>*zO3TA9Q&#T$IkY+u1g@G_UDwTvXdWEpvKXXLmJCZLgc#e=kqsZ^PwXe)T?i zHFb`BZwuyr0ur`}L5kMD?624EyDXYNcNj6MFM;2@QoIEa`k{;SO9vlV9Sd9@_J70y zI_jmUDswEH#(R5n3y3a<`2z-T?ColEhGKwn?RAzGwht|{6yVc0O+z~>SpMw6?QO&u ztIdAp?X~O=0}9H*DQaO>>pu+5<8Ev9xwXQJ2H zFW+}!+D@yHaZrYP!E-=f8}G;WOfFi2)za`dED1{(UMsKINSY((0Wonx3qa-@_I0^K z7}=%S$UNm;eq~-S1{}~}*qH9qADsslBZW!JjCr2E10Qn1zoM5x4f(fn)#<6^jWV_+ zJ{?9*{4d4_bpb7*R9hB7g1EHi7z7!!EeAS(`1O9iw@t!(kZkkc{~U%OQ2}B>C@#)8 z;asu-o|{)NV5kqiW5#RHQN<#6)Ydr+2AiV>Ah>m4|Q zDPlZm9&GLMC^mNEgM&tbzA|GMjh1MgV>?i__|xHpR0f%f^nUgkqKr+YiCN_En2VtbB$zE8x91s3qy8usgz4rNF^*dz)S8 z2^t>uBdLUtXo%?ugB@>Lg1Ta&LOf(C2!nkZ3HGp%E@M&~p2W)Hnv`$bas-3W%u>`2 zFl=~fHOAbe-@x3rWZY>==8Uv+k{s9h@Qeq}FpT+vsk*!&iHW{Vu+7H2^ivm?hDunv zAzPG5T;tdgig#OF-DdtCp6>eupvj? zoAlExuW&Kot*Z04%KRoC--);DR~Z@6uasdYFt&fWSXL4h`55W^0&O)xtjXJ`;eU>2 zM9Ebn1=87n^e;_iEsZ}60Znmj zTcIZ96!Q&u2Q+sWs{kvELhJD6m_C?ePlxz33s!=VyeOaKQ*d|kwm~0meqrRqV?&Y# zq1ld_p2nv8tz}gzbx2q}J`41;ZoEp0-{9a}gxH0qwc70?F(5_sbE?MYTewvDk^znc zIp8-b)J*Ui`mH(m z!k$A;lSlA@x9j+QGPX?+NH~e7o}s4nof2hjzE^>UhOh7V}IGK*;BL2r^bYv+E5)$ zZy^1_XOUv@6-4p4tpUm9SiwAnlw!!ukT=xXHT_R$QZp|qnVNyQ!LvRU8@w0^=jOv@ z4d<3PXlY&xlU=QW(}SE?mdrO}1B8B~o|%h?6I=gerseLQS?JF_>elgN8~!LpHo6Bs zj1m#N0(H#KFv0uP>o<8SWXT`q1!Y3_a`T6@h{GoA|HR<+vWWJ!M7yyMq}kyFuDG0j z2#$X2()Rwk-F!+!8$GZ2=~UP)tWkiwp`97y7*4}JD$a#+g;e;uynE=tz?_*B?32Jc z6U@D52TT9d!CvW#tD|ur2gVDN(ikHTa153Q*nU$3`IiT;y=w^NaK%^(I}uCMR^-&q zB^hI*Il`gwSYjX>DfqC2JO7jmRQ&rHb}(_zG%Zk&e$N+7xClU;zAnt4-RBmXz|Ig*|)Ba`Pf zp@m0Xrg!xeTkD-eYRlw}RkfIzM)V6d#Uo74Hf!==P^pR6fVfSK4ITxKk9gfE-_OOV z52|sklq|awtAYuX7u@rExVTj5VlUs7GxnKv^Y}xoqQH)j2|bJ-JgHzx+|a>}Vyo>^ zi(_wtTv3&C#daBL{ss6&t$3MzC2#E&$cefUt5fsE_aY!ED5eE-pKgpqo)L0V5ScsG zyC%$e)M78oOj8GqTFp1#5h{=z4WIJ&(FlbD{Dv3v>vTGp)*Qw&$O!tuYGEPISXx)!EZ;1zz zkKm`G|AKJ=7f8}1(_o}TI_`+zqJLMlGVNgL}17MHb+Pb*sQ=kzDF_YTOZu8jHL zYATvuSGKq;Z**JK;`>)c=(-%o8-HES)}m*CSnA_%2%Wob^RUblAQ%gb_YE|S10Jv52f&bbmyZEk>I zBzgjPM4QS4H<;C;kCN z^S&_%M7!9N$QY9JXFn(WQuki9(PI|#F+wLI{O#1VBi>N~qPr~NIIR>vcWa_z19+>N zS8I>yCm-&^vfGljCU(8V{h>QUY8Si`I7C2$fi+tfUaAFZ*NqQhECCh&~d&4oKimH4}y;S3Jrte z&6Twxz3N4bxl7F?jWN)wqWp*GWcuNHFTDWv`bJjDvyZ&uldrgoRXlM58%qsb_*RzBp5 z&xK!Ztl_sp*I?M6^ITPe!pSKT+)TegPBuek*+y5!ppxojSNH*;?*IWl@v{$IDmG1g z$=cW=;tB4zz0wYA@H1D@;3nUPbwMv%;;!a+{SC?5%c7O1IqUaRfAROzAvvPo4NfoM z8`3K#-ON3S51UUtS;g;aT~9q7GX@u$Pd(mDPs_K!m8YI~E8xVbx9wL4Cr~dNSTp5s z%?cd)D-IbtJ$VYeiUG9_-cdw(^iMqfxW{>=C7YEtwcYPXh?!g{uV(N`ufM@eF2{dq zVBP3Ww{D`F^7gbh=yt7D+JisX_OJcBl-#ThRJNkUl4s5*_;{O{;b-T^4jSo`A4PyI z!L2gaC7b%qkj#!HvB11e&xNLj(!RZfhFbw6JC^8v*+c&V{E9FWxjKS`wVm**FoH6jW?9dl`^K($iV3X1G|! zay!2%vOaImsyZjKb8q9U*U4V3mcLl0bhAe9Xo}ogAGEVIevU^8a&g<7<=w^v_DZ-m z@#B1%KoRAxd?{kvST_SVJe%KR&4DelPyT#6RsZKMICAFwZC&}VVdeXN_^%#F_s`JW z($+i+Dh(H-CKg;M&~evz*vB~oI!*Z}4^K4%Ghg)rCzZG%`}94VOj?EY16Lc3hG{AB%m9K~ z>b7Z?LK1y(uP+Z9)%l6GBK=xN&uKE$XRRBe*%tEz!WVeRE8IYgoN1fHM2wDzW&QDaNKn3R=#i!Y%0nb2hmnR?R@aFB*P} z&>xQFDEA58{xxuh@`sTfruCpd68B|IpY!W}R<=EVn+>!jp}pl6N}zRgsxQ-*pJc7y zOa9;84JHO7pTGNM@j^9@ssi?S=T+n9A2Un0JBJJ|jyOwC1~UMm9lAmP4ewiHTVPW& z&};C;UTVksyte6aW&O?C_ESyuf$LW#??W|PY^Q0>uXHC*+lxo5n6Am6b?Lt|GaT^D za8eqZFSSR_JFy=J~QOUFPmYav|v8B!ln8&Ryq43KWSv!Mg}V- zZ(kzk@!uO98&GH5(i7`n#!XY1Pq`c)EyQ&(f9pf%fZwSCsr_59NOi;Hr{~TUO%cgq zm8fp25pd6$7GxG&org&!pd%wBdFyzdgujgV1EQJ1a}cPR z*mjSz1;N*Q6lU4cNI~xv&@G7%3#f!lcv6|bCl9j+{a#qevd4{!g^eEf@1>$~mTbh2 zsTaW&F=Bd*q*}%h-TK+N90sK8Afv-Vu47n-o?OAiqj$1id;%SD{hbbh$IDrkQ=YKV z0iNDeDeWyNhV@Z_8pZp54X44UAj{n&+a#I3n}%6XHbN;nBd(z62JDNMG@xdhN8dAY z|7lLz^-ZVtRM?dv&CdQ_@o77+5G0|b>Z?-V9{_@=cXL5HL5U>1e1g6F!p|N}d1oD! z7NFC0CIL#nZ|ve{IgakN0Dd-gt7>Lr%wc!5@#N+itIfYsx|LSlSgJ`MGq{b-p3Y~n z)dN2$F&|piw1Z|dnhr-Q=ujjH5I%8rltBnf0-u=Sh5D^&Cdk9BpAM>`Dd?*tR_rjI zb`EQu#S`p?qHIh%5?67gWO}wK$jN>txYD84)^d^N&rr;c7I! zy!Zq66B_2<(+kqWE`~TQC|1Y92f$g=OBq-3zsz7D2luux{$)7Py;b3KaMMHWMcj?5 z_GtEo9X*1FERTo<@1`@p*wCmkyq&ZRqv@F)Dn`S2GmHf%Qne_t(&Oiy)8q0g6#nWB zx!r_36Au6P@4!}#*b$BE_`*VE30dj~agmll&Q!l?jegJ{{XugXMOf4{vvO#P636ohxyd(b> z=H7QQDA?E-*BTm~iE_p$KA~PNR2D*|pU)m60~pu+W+$!QkC1~I`GWWxLx~X}A+F%l z;Ilp$u%^~pQGjmt7e<8mrOkA^(|zcXkj?2TBe6d*Elby&ynH}FnK>ny9C^(Lsvg@f zN4!EDOd9bF>o~+qY>liF(Ilp>=4}wPZ_9}NE=C%KAIUTAeOD;~o*)s^0J^1sNeRw! zJt^gq$o|pMM+BkmnTu(R9TcA z^WlAry%e5k#})CV_Z+;k?Y1%d1_`q6^|PcH5`J8<*m<;BIZ%4}+UKJGcU!#ykDq08 z=+pxb%An*asoU?FUN;dLT7hBfakLzrhgVDkyon^0_l4#|#u zY8xmXt1ds!5WGQ^AVIgM)z(agjT9G#Q*I3Oq2w42q^hUs%9sm#fG47f;)U351t=}g zDLVnhSgcTP#ADb&JcVpPpv%}Rt=!0HX83+dUVE zq`)^R{z}_Fm6<|&c-5LL?H;=oUMzUaHQ0ln)(wT&>`c>Ug_i5d0LbhgX(;bOfqcv2 z7wU}M6|N`Vsr2^PrT0RDXx)E)Z-`HjCU)(jIMU_V=gdIh_vMm37li)W&IseHK)3`w(;%I zV)q{T%pA->2)n0f9ua_q_!P*Hs|4)RqlbE>X1yl#3U-U*?mg2;xypIIx0_gkhO~22 zoA>VCoxo69I56GygCyS9A?Bso+z#v3TxJUINaeC>mzQI~JH4u%igu6wQ zC(1YywK z6*8%8IPx0K(o`~9o5p3MaUg4gE7;7>$ps%mjK9Ca?Ik;jogUHfZn($pq!$L}Gg%ey zjTwc=C-zTfqJ)BKS@5k){j9UnVmd?~xB@J2)f^~j_*R+(u))}?k~B{gLp~TLr!w&U z$@UXF?DS(|-~vaB$u{df$ME}v%`+9jWiEq%s5t00Qtd4|`t32D*d;EAe@YYBXQT37fxKlBC74mM;|#vDN)T55uKcRxC_jS5^Bvzr5!n*FCGN@qXdz ztnVx_gkFtFXfqrR(1XFU8&2iYa271*QQdP3tKfly7>I;-Juqj9kbVgJ?98yw7QyOO zhtvP+NjUK6;^*^H){AF+hn}X_d$AcpV#hxxD*Q?Yfic#mSS|M(OJzb6K>abi;Dfg- z&+`G(uZOjDcW;J;;phUn7Mt>8ch;DU%*Gv9p+NS`>ot1M?y^7|D{V+iJv+ohQjhJU|+qsMAi;pK$9@xY+PV;P5DG$ zFSP;F)3fZp|D3=2*GR5~cZb32`}vCjVC;=9?{@Z)DIVDTU3qpLnhU&NyU%s~X!+Ji zG*Dfsv)ZKZ|7r;XK8_8gqGXZyhlNB49luygw`Nt*fN#>N!;mYrUYi-&P^P#^@-naf zCYi=?e_&4>VT;@acPGOQRaqFT%eo`KrTSVchPM`XRF3WKct{)d)3u1hb1h3Aq%()y zDF23o=^$p{T=LnrnFnF7ogAW035i&x&YmKIfl^t2^vf7KQKIdktB2y({4DGQc4TLm zoDC1!rjyjmKU8T!Ot+@rVWH#cwfKT73Lt1v)BOPl1?xu1>6T%P9F}?ZPm*J5822^b zkqcSvSYbVX+|4v?ghqWcC3w|1L9Fo;X11XY`>+tMT$wgbyy-Siyeq$-m8&OBYX>)` z&`WNt=k8yRe89I{|Ig_jzY~L=``VpX;OX@TvfAh3pUc;S?vIt~;nyN9(8=d7>&Szq zZs66`wVz23P%wP{@%{Sk^Z9n$zv=zx?a2M}uEXzDujga={?7U|{&62i35o*#*=j=D&Jcq@>o{|6lNeAK6Q`{7rP5b-6D=7Jomwr~}Lw%kZ5 zf)p^;+Jd2tXyV(K*MU&MVapgrx>+KY52+(KVI7XXCanQ2yiHCh3G=O?o z90SL1BIf7!f1bXSyNuu`yn7h)_Dk>wY521WDTB}(J&ME*YVJQjj?suw)!+}|2f%gh z_YWDdl*flfkp8mV1kn|5Z^A86K7k;oVZ9`iNK$YiUm>|;Wt4STvY$eqk!;-EjKRcG zO1i~-D1fh5!dF&LSht?UWOr3tjh_}{e^xCPiL)}AiZ56Y0k`&)Llpq zBuzP5OHm_$FlJL^zJW%PmILrmW_X{5o(T7$ERgI(ww|#KpELYT{?nj~sf8snEgnSO zSC#-hnjbbeA>c=Z5zotp)aa8`#AEt-@COB;j$5Y*Ax?WpZG%TzB#xkiTD~wry+Amm z-T{Bb<;y@%Z2`Bk$36s;75aeAO9tfT8)>Kv(BZ3ezQTHxIhZK*A^)BJ@G=U;myQ@8zJ( ze5H<|AUcN5z+T!?_iHTeJP7slzRNY{P!!W^bC;A5KG_0PN>>U-e0HbX`-abfV^$+- z02@P51`ELN<-x6?-z4H#8f8K$F75QR+nYbaubO4s#qJn#>H8#z1hw185W}P_t-MGAz5_yCf{lx837xtlY5;xqfP6S-G-}Mes%>YL*Q@8 zxnxLv)%(EBN@=&W+=Kb#rg)jNZ2C zUCk5v8)mha4J&SI)*Tm3dQT_l{bh|FrZOq;VD?3oStdm`=QX$!V9`^V zvz3(F$1w9BJW5UfR`r!UYbnE>u%^5Gbk1PZj3t@+S@_$W9oJ0a&dsiennArOrM^&h zsw2P$YVJN9arLH@Cqd(^UdfioELv8Z6)l4q+^0EjU^4(Yec}RIUgh%k&dL<4 z#+bmz@q-lMYx|whJg5Yu4D&ec{s6>Qf2=!R(d?>hf%|?21X<(^Hbu}CjBr3W*jW}W;h$9FA`KRW7vVl_8r3M*T8$$}RqsYvb(kL`?- zktRXSDw|RWd+YhB8{Iw_LKwi`jYNVabFDGoa)2*DaSFBLp zpZ4YNeMBG>XLi)IX`Hf#!S%7XQg(lSF(on95st!38H?&BxCU7qnl=_^gk1~G#d)gB zevz`+Z1{Nzjb$!Mgn<&x>S5`IPX5YcL3v1Ldl^|)-AUkLr7XXzF>3VI9elXW0cRhO zBP#EuhWueVB`q|O7liwaOYV58Ok<-9!YlgiUh#}pBL|&>Mbbq!EUw!Lp{17LkYyNS zS4iStRB*$?3C``q$`Pl5BbFa%4I6|&rNCB*Ax9LDH{3NiCnBP5oL7+^@Ep2LU|S}U z^q4gxbQ+|bCcx+JKt>qgBi5F8P6^16qdg9%tR(KG_vVIWrsY-;o>kpfrS$QuNiyx- z60tv1@Q)?GXsmkb6X03&AWux<1kEzT#WUWuiVj~j^8h%MW=op5oCU&jc33BrAsRUE zb|OA2%+*l8aM>l}NKl5cVj>}JQ?(LDU~5aKkSD<{Cj489M3y>`m$5UnH81>S$M&)jBM^r7;ga#|-Vg(QD7k}X)dB~0@7(IVE1B)r>e|$F20NF1BMz#oqeU9-tV}mt6u1=( zs)WKO$y*#bIM4`TNJ@3`fnQ)Q{JRJg);#@URTyT0`+o>K2OiOauFW=X+qP}nwr<#3wV}QWc^KNwh3VFmzWMb$QnPn{#oRJtjW00iJ~VL>CQsRYeYY~blXZNJpDDpM>{R(VEOZlh=$l8j*jNIFzhjjOp90dr}su^oC#QrW+S zL)(34V;j$0Z)b{UO%<7*ae2AJ5MK1sm4D{&{q`{Ha-kGdzz9aEidFG-^Zum%!I!f+ zIe_5!di?166`=xaNSRz^#`|jfGIbkl8)0rJklKHNYc}4NpQ-zvJU_58Dg=dAEsu$;4Q)P6KXDxWh%fCLa5agxVRay`wNIWem(JM$M`0j6dT>nSlK zkMyCBA`Cys1mLOTq`>Ypu6WqH&2{(DBQx0 z45#_zaRXmdZ{z}N4J+slg7XKzb*NEJPc*?B`EcD4hL7p3-kpjpv|u6NSfOO&viUqW zEJI+YFci#*>9m7kLMXt_@RLT7fZY27sO;AS6YGwLEv?`V^i1XFlL+&{C+*xSJf zHE|Lj@ZDO(fm|JCNuUaN?l$PBB~>`uA^}xqs>X3d^X7J6$1n0U0(Rk5pGOPlk_mDy z?$usirNy?~UN${rmmRQp#rj&%C5xb0dsO`3RsTu4%w&KqF=LCb`8iFP(FCra@j6^k z@ueLf9w+QxBNa)Hw!(@b;r$7s&>~YH2{UjNeZOSbd_BqwL+HJR>6^q7NvUlDWOoXW zj`@^01x#U2{d9oIPWQ!Yp4&l`-J_S8*vL4SD)#CoGL{mR%i|U7*{IU@L9CTwjZrf0g#jxWZF3JQhvf1|+y=nlS} zlZ-dm`6JlCP4}e(FEm?CLr$+u7xw7iOU2$3OLAXCrk0m`X)NkiZ4y>SO4I4)HunQc z#Sg={QKyc4cMrQ{cm>@*)uYw`CBJxSVQyp0nP+(wUN!|nk0Ge{@vI)HFAoC9y66fQ z)F!=hE0*%G8dH}LvgMq=R|#BrkEG^~OW2|DAd!XM9dch!pmSG+!QOjc7NN}|GAwiKX&8-lzi0j4mQ05~(k5#&sx{=LUa=va@I9uca-ymO)kd~=JhN~VSE z>OrAivhfHyXq6fbyQd~2!>J>Z;R53X^+6Mau#`J9g7Raz#)l~buJ`6J!6WD{g+neJ zP!NhBzWqZDJ5T4MDpp_P2;9c{gm!nltA6)OUZ?eZp5*s!tB1f&N85TSIax9br9&MS zhKmJgf`LTpR;UC>BZIRQ`avi5Zj2YCD{o*H7(wj`yE*E6)^|cV>KnEF;*BCDF2*LN zC@)U6Rn{M^+z3!$#x|&|POyW#xIAxr+;B1fHJp?EoXRXPJOj|K;O~kp*q@D@j2#&x zzuyEr(n^44d~<}--T=3XHywO08`J^mdn=qCUOaVgon>eLXte3mvHmGS9c;J0G$k#%H z;i~>klz#QB*9k{d7_5AM?aXT7+eFL+>G^{5 z+4ga{M*Dp;4f}P|@@*dr@@2_h{=ogPZVyUd!g1Eoj^8~35xV@M>(nYtG`~R>k#x$M zWv@B4h%IKnExWqLKhnRCC)G`>_P(zzu0qs0xv!n7IkW0~(Hj4|B8HMY?R=y9o_8BUXu#D`o-|>K|;&14nmP-D~=Z{$ApFx?ySsq1- zyq_d<+4D8-GRBH}@{gjG1~Z=A_7t;slGaiV@iaodCM-;e4>XW>pgJETKMkSBHB=de zqmytrA(l_a~_hM6z+w(6ovMu(lXa-i3=BIHHC)2eVv$G*-RtTe;Du= zk|s+C43Q&PxeYl&YMyMU3Gll~y|Ns4sFZ6g!5I4qu9KbI%?iD@5X#afO*sS+r%%CH{}UnC7Tjn@PizZHBaRJMU&K>le!Q#xPo_nuMlLi4{02rgkmsL7=q+^j5|C)`6IQ|6ZWolqV?%Ax zP>}#31KVsCv^f({rsY}*wH@NM4_cquqaT+lElosPf_6wh6l6@8-K|{r50k8C=4uIC z<{v2Pu#}*~>;c-jb;=S&4k)C^nfR4>$gO|Gg@)q?fc~NHi360No=OS#_-s;W(!33f zPKyZAy~wh&=8}HVjAI3OhcFOM=$ttpubchak}%#G zF(y`2Dl99OnwHMjEu5{J+M6}BHLI$tRDR&!X3<>htACQ-;j)0bqEAkg)vJ;>d@xg@ zi}aM%eXcLLH+;UO8-6z5&eyJ|uOGUazE0M^AMP&spj^(|VFWH3fU1`MJU-O^e2%bw zS5DkF$TrL*t$WfM-nKP1nbH(zL#?|d7oRU@k(Y-UqkC~Wh2@JWUc7Rw`FL9#%!t)} zHWv37bS2XR(G;WyDMrmSgKO7uoSK?IX|Nxyh~`b82i2p^1oLL$It1+li!2T3*QEqi z36i~fivcF5re<4HUIXjq)zg^1RjN(?P@%LY9Qo|MVe_Ox*rb!8%eTqRl5&gvq;E`+Yi6gsQjaY?3vgFXPQ^CA8f#ijf8`HG=CXq zSGcILC${=$+at~tLERp6e*&QBrJ%(YTj~{I=~ThS#Vo_8Y_6g7+?=tiJ$bo+-e)qA zKF{}7QF1@jB+mt~+pr;aQ$G?#W4P9mc#Qo3w4hIq-bJ)6=??_T4XIg%sADY%R1_iX z%Vz;uJB9|U@Q13u+U|0$@Fq#9nwZ}(pcL44!cz93rrNRFd`}D* zU%n+H|A^s`)xSq$LpMCJ-t<6L1T6M3@Ojbz5#bR;@iPtX!s+op9xHrX(-Gcy5#2U< zc%gCft~+RS#Yzmyb?&oA{|bGYOLpJCJ_7nERldibbBBJM~kz|@uz>B?@m{^8+WB#p&_flRWOk?V|u%F47 zC`#keGRa%~TN33@71nT`h4GeQuIpFM6FkNbHa!=&K;~E5%~TEyD*y&wRABUMXwnf` zVxd=HE19VO;TfqVK^I0Oa$tsBc!^9U3&eCWsKwMaV$Kr#=4wv`#+D}zM7KC((4_vy zJ2m*%e=X3^>nKw%O^E%9r~tz!`5~YrR@csxT~bIFyGuGXxgDP^&w3QdT8IR61INlX zVRd$g8)4ZCnql6m1r#z;!+a=3`nJu|cX}j{We_?>sOB+QU9FD=9c!eu^?*xqCd}|a ziVzr}#6Ee}3(m6`bN`lW)r;(rS(8oZ9)}owa$(>%Im8RZf!|hWb{4!6F5GdE={6-Y zgqtLh8o#aluE;sgAV|j|3@T?vch< zTv?Y%gGnxQf`AG8=z4JbTHpC+2x2kHSwewEvD~HlTu3I6u}f|xDD+i9@oSx&GG5&Y8h1PEJ0DyXW2KYCu}pWd_4AE)LpRab7IU=nAGil(Jc$JGcu|wAtG)HB66*dF3?T9>uiRgttW|AhibhsrE! z2y#!qv9nSN=nc{@5B8WRB6YwqI-ncyFp+boG#nyYovj^$Y*v7gmIg$JW#+@skxzn8 zVHXWPDzLuuj)rY-Ig>lYX})bhy(8~x6VbjEXpA!HL94m%T@VMiMP_odg(kduOH*pF z}{opVhIo}2FLsB_OHr_l4 zNfKAEbl|mTP$G{OVh0HG%Ece7AIr@bD{lJUB)#RLLxrUJYW4M?B){`hj4GS%@kG^s$+y5@f_lXEBQOia<4Fzb`v+@ z?oV@C9{yX;0DH9F^cUHrHf~9pL!8LkK5RkH-L&*(c06W4nfrERzg>Sl>8l+51IFcK zrjmATBU0iVNSk|rk#s`%=q(z;nGtzPC{Dl>E$R2BU_tZp-jJe}%AUy4o@eEAhtI!ak;o|)YFE(k6!w!5HmuTcii;H;fBz8tj0zC#Kl&zUpFqof%1pnr1M^{= zPEREY-(CfK(?o4|?>mwJ&J+=M`w4M?Bd@<@?H#Y2vJYxw-A}2t^2vs2W8B0@^@^!7 zz5cfJLi7y)b@&6sNE)#gf{)auhZe1`7DhpGB-9?ER_oA}q?xPoq*B7MBrM}|j|TgH_J08^0H zSUdQkNO+b<8%hXIoy$nMyX_RCP8^m~RrrhfV60Kgyf#9x9ivtVS6c*owJ zI@;hRkUhjh!ls`d^rk^?C-bT`w6R1ZbMI%-BFwnuW7xM*WUG#tVS9o8E6Vkq^r-dw zCW_<5?jw4;8y$91k1tWPJV!4FxiP6{t`z(H%E+5a#2MM4K@qUWW<~rLyM=@AM$uQdl96k^SOpSV(Gc3AWLWJsD|h4z5>g-7ouS==B12%gGpLn_ULb77_8-Pm4~ntvQQ= zJbV#N%9MKgb;f=;kXfU(NS?z5NXC} zTz~qpNu?cRw67*sdEX@GV^=@Sn<=<(EjgV#^+fNO;hNqp8?r$|Ks6B8d#&ifubDQ` z#mvXCLjZZ^X)EmsG5mqf&Faf=&Y~Nqoji3dD$;=!f(-DbuYUv|MWAwM9ewB>yy>G^ zb#9V8?YmHGSAhO4-4$KM>(R>^)C&wPPz|mmhdCt_pGYp{3&0U#IX&C!(0IiKKtE%c z7Pvx37sPxc^9B&fBH;rMi6-RrxOBZ(O}4mVnkX_BiGC>mErn>ynw$*PjZ{cHmew>} zI@mR2&W^Sgozjtt3j?=D%LS%`Uf3r9SMy_0*Hzmm^IuS~0sViTG1H$QNNsFIss?t++hy6udh= z4-#LAyLe&JmmY#4kMBwTxO&Gd8IP4i4Qg+}JEHhIvI7*O2Wn@W^StMcMLUi(VSs;p zFy^m-G}lqQb8}?Z31$q;Zj_+mt_^Ry8)3o1*8`=_fPN&m$vMFRpwB~bo)%HO#L+Ob zkO9tzQ(+u}K|jqkr6Yjq_B=%xA*b7^_8M_gls`M|!UUdsJM<9Lv$_?Bq&{-nQ)T}; z^Q_9}$uT5y?iZD*djxg;Emv{(D(ulIiz2MLCW}CnlH3w@t3~fQ&^n{Qb&Md8uraH+ z!e1Z0FYuMNG}r&qZOsnYjKiI^^VWQ7cN9`+y2_kJid#Qk%k}XeT=AMK)bPu1qtUjW z#~0EjB$8x+92-U+#~1b_Wpdi^KdDcBD+PlGP{sNT6&027_Aq=q27q@IlPyG|K>YS; z?r>kLP*{@W?-iq&VPfRQGVy(SZ~jYL$BeMm#zQdD$Qt9D^lc#x(*1S|$z(3ZnzFIn zKh~s%`j+D)#>XYk0AGD}snGdzs4et$pqCgXEREm9KnOg!cOS($W3FAq&)Otz(=yCQ z1w1`=l}Bw&+%3r`%lDfa*_soMQWK6jeciwAxLev)?Z=2N(+jVIZMN6>?%isH{%L<= z_UL<%p4mTTKD8dRAN0l?aMz>#0fhX40V$J$-L!YfpG-{0^CKeKw5N*viItgcK-b;Vw*J&KgOc)a_E*bbqhrt7(=ju_vz75*3w}m^M$IZHD<848B(fZ=AHlvFaRoSB)uL+Q2{a2 zaDy|Y2Nq?BXcGk`7`|cTK~)D1!XHtuW4Eo5H(gOS+E9ls=*{v+C_qBNpPY4}YJ`-r z2W$j#z2AfP&{I*TrjXU1Fnk8?E3lV@){-3Ix~}42eljY8LH3UUdC8L3N*Dy*qbU58 zs>ectL81DdF-m~xzyI35f_bFO$~NUhRm~Z*YWeg-13od=yI)Pm`EpadIz}d%n`|8- zp=Fy{RT+wZr_^%XD5t^`IzT6hsD*f4zn+&^KWoH%&hH$`;78kUja{*ZFBkIOl_C-} z-t+#r6?bzf_DP-quq)u*17tS%;aKeSUUMcgke~Rn(f1rFaF`BotL~WlQJes*s^B%N zXAZgbikwqn*xSMC-7J~j;MhMNV_7Kb#@BM3oIr+Ezjs>>wjkXd9}Da&IXh^Crn7<} z`n~Hw;T3zeW<_A@GVZXqEKXrmYpCeW=>+SSlK|Wv)^RP$ntj#f7^f{0#h@qO zO@{HoJjsL8_UU;g`hbeP8JV68xqQTUrPr*AeNA|i=)R`9^(v^?(_c}$PhQe}uD5(> z2em&h!1}oC?a}e-cX;G{R1D2?)ov>~zOLCM2TA;_ZTHUr?o_i)yjve6T-Fv9&SU5^ zx?;8)tU~JaJq+NCo2bY`$A#2T(hf_b!-YoQRctV_7t!w|qWYVP7hYoD0TkTjiQ*D@ z)R*QlQpAQvCLWEEN6yJHNevSmgS8rjQIN+_Ovw83<|s}YI)vOAaF3_?!|!e|W1C43 zxjGEW>>+26q*~%5q;U_wj_*bVKsQJX1m+yMGEtJnMqj%0tp=%$8I&K-7%VVsCCTTJ^wN+D!HPcN~G*Kpl^>N z|C%E^hMfC3_d_VK2hE}qcneQji3RfmLYc=C{=gDFI!52{(Dako7WB&B96P@-!A|f5 zkY1i;rx@lC7rjXCg1vqtMAo}iX9r0_!^>-=NFU6L>$yH6Y>OjuVQm4zu!iw1~LcyzCJjlhZ~9(4t$S(H$|UJ7rla9Rb7 zd;?TA{Z}@*QO{mmeygEOK#m5=tjV87kwKoj(de+g6G=|HU@gMVxZtU461P$+Rt#Xe zmd|QNoKG+J?uHp0H5W~Hae`5p+=-*REuoldFPQ-M>LdPqT)x7(!&E+ys~vS*!|P2cEL@dSFD46GY`3>2?GLy7)`M zx)hcoQpRe;k9Y@V=21mCLd!X9ih=>o18bA0Fy%fYWlAkz7w%NomLF00*7rdNeM3e{ zW-LwZ)rnSGTxt*G;lAc*e4%~-PGVvJkSUM7x<%e_g(1w~i_KM#(ps4AE4;-H0%qqS zm%?J>5i%Pl#y&@13Idd-j1rd~YD&bi`^XTFDt8> zsM}NI!=Bcy`InUiu@JRld|w+|cm)?C0VF)vDy8rfYt!ms`X6Xk_FZ6pllU3yagR3& zAOs+-`s@78+PYVB(}xAtpOy)wso?h;xi2G!pRSq(gk*VL2i4mhr@XDV>y5AB>xQi^ znN3VhQr6?cRq*J3{cZ(e0hkq;Nx_A~;xm|no)ylrj~|80^~B;r#0qjH^{@V?Q&z$b zMwcFvzfl14@HUm#bBHaKmZ?z{^#7dRVUe^!iF%@xRYDd!^TiB_9=J_CI6UgZ9>>KSly2iiBVwi9F^fV3o7xAEv*Dg>BrCNzX_I4Rhcl2JA z1CKTpYnp@N@L&eQ+)a53l=F>EW0Z`GC`}w~$h;_cp0mHU-?#uV~SziqiY+_fyJ_U7MUk}@T&(HcVvp+{(FR$RPuS_{uEB(U|q8l4kNSjGm zD{j1QZCze2E-lV2ElGu{8(R-oF{>M}-qSx;hwCkx0iLyfHJ^VT4qTB7C~Ic_%XR4e z1*!b*+0&N?$A#N%ruTfcfyc@|Vy&n20%H$oYRZT3^y2-)DgM7yhv&CGB3dKPIZr>2 zPc8gmJF4S4mzK*&JbZdV@Rpi4RCg37OU{5O1)#(|$u{~^gQ4%uH6{`h zGVGV;Wf<)EgD7Gd9mJ@32(bq+GeJILoSvPzeTE6=+V=rp>m_M`8tF;#ERvezPqnS-#~cz zcLEkcsVYydG=#gi=((nT$L^^yc5FDBaZTPWN4?QX63IUqBK|Em=+C8Ba-oa{k?><` z`i`xewQ-K$&El+UdIm=kTiO#?OFO@d?7%G0!}RxWsBH(DX*^iGxYCWU@3N_%-vFtK zCbz^6{wVb%qI1*%H!j*{D+4!i{M2zAoa>+&8vqEUl3{TuPtt7wN#gH0r{u$QLe5iG zF)l)oWXx~^@e~DC5xwP^E*UyLU9P82HYSIErvNa(E8-|Yk=+@$My9yL*d|BpTt1?*;126)my@f!e<*Ou%_|bt?XbK6T>4%uqY~5vP|?^ z|7~O*Az7}dMPkkaZgAt7h`kRpj(EAji@*bpae^E8$crZeG(PSo-#!&r$Xl#G-*95T zr@zYN*BQCEUu_-Q84?T>){d*ezd4L7!r}!(UW7ZG83Xh%<_TlXjM!c@1>pjM+1+9d zu+I6xI){Li$6v#eNUDwcRO~ntK7^9H3Z0FpP!@D63d{$?KxiyV z<{0%7zodh4PH(6JVsA!aH(jWlt4m*K=S&HbL{Yn++T?2QkEBp?6{5_rS-|rXNqoi& z#YPwRU$VypsX<|Skv};*B7;=fPU^SAksyM%YU|s9X{LZE3S0&a5bzr^r=|;u2!xgr zfL}z19*GK`PCZYHOw<9XJ>vn4h#CUGYTmvA2I){<(I$eRecY1qJX`If%|s~bcjKI1 zX8Wr6cN~uW$?Ais#lgfQ^|F3WctAIb(o?_+Ubl;hre-C*$V??g%@Si1GIPf{32$Hu zEc&KQoW^96{TH>BTc$XfvG&?V0r+9`!hT4b?TBIgnFU=2N!-cmG+`nF zsj>^eb-zEU)|{;`;uhx3Z{bPG)A)+TNP=^!dlL6U~c<) z0-nBo8HLATtt@5MyRcTmz?~)%1cfSK)!i7Q@(U2b5d+{Jqh1nVXgdiXsBpQvaC^+? zVhmavX(?#`g2H_l@yN=?t*<1$FdoCn#QSzAJ7njvmw1I10Uoo$(fLWc=&%L*9Va={ zK_yb_3ZT5Vt;!EZGE9tALotr1VSX4QJ+O zmCMpi2yOwg5~MmPoLC@*%F31$lFnsjsyobzN z7~}`07y zcG`kWldb~d%%?0BbIF-G7Cvim~SenL2R*aFIvO|?&T2g1|K8?tb`xbFWc6hAHDAm9- z`<{k4Rd1g0Lv=;?ef=xE(NzR>A=psT>)vyPx4@vnAgv{rs2CSL0wh-Vi@6STHX-?<6Ve9 zqq%78j!P4XH#Wi3N76QTkt^ia*|NB8wKj(}SRw3i0`5H$S^DW!-t-8fNW>Vffp|NR zyun3F$05rW6Lt!M<}`&P2uAbiC2$^mxo81EenZ~r#MIA>xD46c2CN`O`d!Ud%sGUr zb)z}MB@)JE)8w8eqYgr1+*_*0o)w1onD%7*(y1oU;uterKv8FHVy~1T{za4g!Hp0n z93WsrChHV2o&dUkTNglaEIa+5%(@%HZ&n}j>G&QCi~C+f%_5}SggG7{tna_RUMNC^ z-@F30hu6hNqE_ zOnD3GpdCO7R2Fve`k-F=uInN^_NUoM7bLB(f;yi2wLSK#yX;nUS}o}|o6xS;p7;doiz-B(Qwxj27!!Tr0|o^Eh)YuV11 zyE)mD|B&c1#~Vuemjqjulg37gHM#!dl>9^So-mJvVu-#E5Dg~q@2l&_PoZ7hNg`wo z4lA)5k+yy&`>SEnRU$``N_rq=o|p6i^(&&Q%jX++2bsQXw^V?FM)%!~@y$D+Ys&6% z%@Xv)K{^7`$8^KcyD}?>vT=dO>YwK1;;?qh-MaQQpTLsJcBlcj zD22uLDkpdj)x820;>fQ19Y)?-{Y zuJwI26ljo&T2yLzpe?WHnj`YjM|vs#A%?ByD{vaA zxazqgca#D#{jZcg%>WJk%KkWDstP;)lE!dAlxJx!K`LAc_%PbJB3TexiL@Pg!Y&e= z;EH6f<#oP_>e{(1AR#arRFgVfkQZzHuMGfe>q-VpG_4U!>~oMUE@+@^y`I-(ZU#V& zmLNtQpMJoork`&aUaf^L8NZpoE)%rqn-@D{+pJDYKj8%qE}k>+G{b*Fv4AFQO>jEwkbuR31)Stt5qw^(BQxc>c0Hd4XnSpQ*|F`AYL8 z2NW|kLQEbGX1Y-#BFXY4Ba4sgSq0hmgk&Rw(yO;Wu4zH8u%|WUyW>9(0$}HQOcT63 z63}tYIr{CK7i@%ML8!chI@T@anCSOFV^n%b8-)+*FY%Bvs=s>BWfN8+Mk)n}iCDV3 zA#JDR2`9k`mh^)8G`{V|aN>Q|>F~aK*iZIc7=CsIU!D2af&367aSt*AXR7E-?6>R7 zF^J-J106|N_^ni^gb3&leCZtUItm(P`;&@iGuyRQV4%kPS=}&7i0Z>@&R$uB`D@oT z9+tUJI>h4FjKk|UiEyjA;Q*pFx9Yq)aH#jQIN~Mm$vG;*DcWG?8KOzGrj%Rnb`w- zb4Lf8h8bYZJ6d71xdM0G?cx>rJIxYZV`H4a>n)}KTQA$M(w$*i<7CA8-iSg- zx5;j=!a_B0*R6sp;o!_#OZ@zaO1L5XEbN`}QDyX*mh)8cL$obhsnIU4#NxuEGH}5j z{!m~Kc}Vc;&rpsOueyrBIwUC1g-#I~-Iu2-#0D!_(}XJ2RwFr!lq%GkD>VybijN&w z{qJd!(RDngf3s*Zsu3l6tYO~u5##JhihY_jI=T)dSZ{(NzISbtgWU|5z7?;|sDT{I zWTEQ2EAa5z>b5HwxwHyiH;;lp-;a*jm9X5gV3W~L&}v7?Tt7#}tOi(Y>vP636SGx8 zacyFRr;j(P;VO*v>HzP~nGjboPvRfhDP3Mxz=;#_&^9G>h%K)&<$n~Ine z6Ff%{rAfZd@Tm{-%@>OYo&w? z(%&hY$2?h6>ciR%#j$cE{;7FmJi5y3(VVKC4w!QKxTsC?vGaEO20RArCld5KvMA2D zGzO8Pgoe+?M~@Wx9yXpxZL8f}Rl8I7xqG`JYrutewcaX?Fh6A-V9Y}^b^kz}68Tvv zOVM03k``rgy)G<-N_E^c0r4yi^4q@XL-K_Y2ZM0dAc#r z`uGB=ucMbjLTI5Z0lXO2@NHhzVVkg;b;$~>NTrDR3Kq43R#Ot2DJubML1)rq_BG4I z6ELARAdol9ry^fi2tWjm+sOw)V2f@}(=W!U}X`YtJtnVcPUI2$!WRoIgRENV5 zBMz0X-x8F|yt}2E+ITjCvhr#uTfY*kKRuSZV__*PVlk?t!)}`CMMVK5FM(p(u!<}j zF0SpWpWTDguc)&DiDn7+l2>8);TA6mk9_K7Diaj6I1&}NsNs%n=pn;MTD?LwAre${ z(lWOuUJLuLsFUB$W5V|~M!y)>2Pjv>(oa~54G;*hYb53=Mj#_Z()ZZtkgA}RgD?h# z7crc@jDF*-I@^HYFjf2k71hU?6_Y?k-8IMqMetb$gj($(lFnBs5J)nf*a$InSzvBJ zzN%LOmh4HHb9zxg6S9Z3QX}kHv#iJsPD6=9fdm|@YzMm3!O0sf<Fi3LA0WZG0v?xF+14c7R>w8gn@?u+1`f42mzELZSVR)@(Q8M6i?Po}VYtpMfkg>_$GfA`V=D6v46S5|>K zjiIi#M_{a(1$@ZI+|BR#us#i}RHj(f(5IPgFjCUe(y0_G^4GxchoPj#sZ%KvS_!x8 zC4dss@3CX9{|l1zRSlxGc9+NzT~axH0Krv(*l_8N6qP&t7h zBK9@4qwY0zC1BXucLd3?$zeB76)W@6X3=2l~pCS&}IRKG{$)D|9&cSo4) zb#Nbi@w~L9uOhw3)Ds!hoK9MioiY*)ll-d%|62pIY@SVbvB8;g`8+8svT< z6A$iKm~Oai>9m?}B~d-z?m*=_$%)ijz3qm4tC>C#USVPW-3&lUn&Yg(OUeoQ;QXJ< znR_#|>6Rg3L4%Z-GE6D5KSY{+;ICp>++M_Uf8Q<83W}{j(ti;u<#=o{gNo2s!LWCk zkZ%!a{R&XAvN^7lhL^#^*a?!~Jqos`xkdMUQo^*nAE1)l#;tY8bhRJrvL3FMRG2Mk z4Os=tS$PyQ$O6ZYlNbgmA>%eXQ!!jT6ceYLyaJ`M70vXB{qgc6s-YgWavZ%=r^rxY zCjjYrIGzDn04ofuF&^_C89Nh;0O*#?C3%?d0*M8RQ$Yr0oF!KZ+^Kr|idjl@ZQj(5 zWKbJzbZe=Xd5~Vc7E>+qoDm0;t{ga<3oPdM<*cS~Tg>!@TF`QID0G_(O=!jAoXh<^ zEQp#ITay=gQ90E~IM)md2A+lK!b8H42&%sC;NO{ zb&5FxPmL>p%y%rK`jr8j-V{{u=p6h4n3%)BmaFR28aQuJp(ZVid}w{6{i^>3YWX(E zu{Rhv_m1SjG@-&u=`%pW($}l`BZEvZZerX<&=kfY*gD={YTPb6e$fQVE2uaN6y&R0u#0@IK4RMUSh38-e16K;=AhaY7j&db-VjNjDdFQjl`ANj#R zL=fYD)EupJDSfSLQ zK2KR^uKLzlHOV_C+n_E3zL@xW>m}?z_-U8v=c3WcSvwm34)ID^;5o~_N;Nb=NNI4> zn!G!&YrnO=>ZzsN9uz_o>3p@aNBKu0HY5{}oa3QUdGw%B;bG)lmYddTnSLD@6!A@T zP~oBB34v(-{a8gmlT$Qaiit?5mT*>G_LK8Y=&(mX!351WdvmlRUA$j}X42pp&qS6} ztvHUWoz)%0W{C+1@^Vi{i3tesf=&J1gyKS0m16=zrr0LK#rg?g_Nm8<5Q;h+IFz9t zIYP>d8k71fRg@#Vd2F+=Gg&AKX522sK9{%#_+}cZ+|`l1W#}rZFUqe&m2E^Rb!lbW zB-oH&JIrRS7gO~-?zcS34oq-+H9v7+0<5Y^ZVg#Nbd}`R-s6pVBt$aZ@G}Gtkt(MDP)epKw_9v+ASVT_6CyU1QEHx? zh?0uE)3joLYi}Syyyc}H3?eeHetJkm?}O@v8EVYUYc@gWCWA>)sbjED(W+3XqqNS( zzBlD30XB{qNg+;9_F_aTCsjgbx}7bDtAN(>XRT3|F;U5zHcOr_KE2oHqU!M=i$}nh zsfCDxNM*_5kqL00YLlt!aA!?&0|HJ()+JDbE0CgcmhS%8v9qWi3Se2+O?2D$8TTrodUAh`2IU`l5J72 zE}FYthUzCn@f`t-)V1C#TvG~yXzB`6APT0V`nxrRSE-@u3}~yPskqsVF?TMdqGYJAqF^oh z=Wzjqsuvml)dYagZmiE0TpV|9eH!d8sJ^f0yi|)<<}_1RgL}*`s#LM*ts0U{ZciV^ zH#fCwMyoy=vcLf;Fffm1tH8toQP!X%EFr^j%4Ijld4|;#t8$sL`FI=@99t6=npW4PO8;MFH`X0& z^@Sp3^1#M^jXHLYE9dr-6I952r9LzgXW$SC-m}Jz$*U^gKm|*D!^Oq$MUfI`*&jm# zq6ies`chIFRFW1zUf-1?J)?WrifBi;3MchtV`nhJ1RUJWwf-pRiV7@}aaB`O8Cpvv z|J2fI;FkLh@jR7*;^hwTe`>T@XcjEY7D-cOLhj$xgYongPJfJk@2Vk!1=zoNKQx0Unf zbu!lrp8o;cKqS9!9d>%BXWd@&@DN>)dq?d~SHG}Uw-k5S>Q*&gYt0$yfta22XG|<> zR647yx(iqtZD->G)xSgSTGMY%-fSlO@~>DpA1Rh*)bCay=)Rw0Pw6eo2~=;j(tUMy ze)>y$_O6o6s!--lR*LU=>!kHFOv~FD2&;DG7^^lbMY+>Fnn4rTq8v@ET^*OgjJLYZ zVAc+^+n4V)yX6X40)dE=_#ctxWi;lYtWd3N(^ z?6rog$Gm92G3PgPkD(Szk18;8Nrl;*Qen1gsgM9DW#e3U&!NDy8?FfRC|-c#W#ekB zWwRCGoJ<$lrmA%{)~el#(4GYIpgRew(VPS;Lk~l}{5}omJA1U|vk;aISB1HzoSqBy zd9?F|mMcS^YpmzPe3k~>Y_=ktl^S~ zpj)Zkmn~L=q)^h&gXm0^ztL(n%98Gf?i@FG(W?AnELyDQa$I5AQE20y%{uKmCSf{` z@|lZXIJsV&MvO$gwx06 zL#(E@XhPZ%UQRH2wJ}9{#WFDjwB8CYiB??^ejP7|T6b4r=@eXrj^SS|?-gbC=3wfs z22M=sIc}{!i(ag*25x+6@ocsFq(F~V_~;=bT~#&WQ+TMg>WWw_@i6N`0Ix6(Yh!1N zA~LG3W|W*aijp>NwCcK1SlyyP81=&{ym%8gTD-DOtnzSDiVoB{@PN|V&Lg^FcDk*z z-rJ+*J343DCl|$&sid88MwPUw^GJ7kbsIJMeAVUEO`Vm5^0Df4@JomBF%ihZ{xl8C z4{EbsN5rgIUhI$JeCHbr0Vt6m;qN75RkcsLJKywoK9Az#>IZuI-S_1J)Nw~1iS2Xs;xpI=`gw~ z2`AvF7ZY8qS$f~1gXIvUpkU;1Ei2S2M9lIU(8!@W81%BhQl6Ss3IVNfS?D)-ZUuQ* zV4ZpehpZPZ57(8I>&D8-xruc6~ED-u0{P>FD*V z?R-E#@`0b__oMKKjk{=&U%&MC_Wt>M|29l9P}ryujH0XfrJpC0?>An*f)5wR*D+OE zjg5CbQze3!Sa3zL1S$%ahe#=H91)p~8VOe`s|U1GW-_Y`;B`q&H@$IiQxXZzs*~`I z(wY%)5L=<%jYvI&H%W&Ucqowo;qT=^(6Ir;<05dQPJ%T`mq!4YLo~cETXU;cB4L%+ zj)r699WBbxSz`4yA&)1xG0|XU0xLoT?N*PyJ;6c2I$=q*t@F) zu7|)j%2o>0%+X~RuM)J8{?061C0HX^m04I1*xwyse>dR$UdNtwg4wd;=N8IWIL7ic zRpkvq!X; zMy-Z~QC`D!#=c*wJ0-hEE+Gy%^%a(;Leo*K2-21n{I*cOG(}fJx70#b@oHfkL0YWR z)j~Ez0Hd%5xb`c#@hq<1!Iz>Z85-FE$w#f^m>Q+nv1%u3tZKD* zRqO@3Q3Z~x+X-i9J<3X4fu`P~h@)P+N(6z5&VN1YR-(w;lp@LNSAk|{=2q!cZk5ie zw+aIIu@tc%oe2H7GDI-@H73FCcFIvwZQRJI`W2vg&^$hF9=MQWH8x7DbOngu2oK&j zkB(X=29*cgp{H7vVX0cI8rie+_D?f$#YUB=VuKZ6+HQVmoxiEv!B!I+ zORIVXI07RjQKQ>F_|S5mBxVa6L$h`j2*UW$yuM19vfC7pwCY!cCZ)SC7oDvpE+n<; z72$}aK5HuVHZCmn`W2zsX})b$&!lSMLQ&PO06`EmLF9aU-s-$RX?2_;tJTCt(W+hz zj&FbI9h{ziXtzobl=TkmWZh~|JMGeC_M+A4mLR9KaGMtOF6(rHy-Et-@dE2>w3W9JN{G#6%6VdF!E zE5M@r&d?e4I&iK)r3ZJ|pEcilD>uS=ixnd~ zV}i9tRj96fT1zzfdVMK=tI_4_-IpH%#a2~l*3SITnw`$ihrQ;(0T9z+>!fX7J{{Ep zJxA3F@PaYZO~-|lsIxH=<@KZU21xm*)_KQF!s@8CP||AZN9uj^{IG0}WSxbOEUzCO zlxW+{Bj(+H(rO(#Daz5xLebHpeq@iEM{iHhkDVyWItwvbUOzgW)3@ESrId9RIg|b|J%RY*bijO+Lyu6fWLnm7!G#>j-Y0kOEszw1@|;$@K)dLwSGD4wvTmvrK_6X0bEt}-AF|5 zM`(D#Z-x%M^lA$)y=p~xQU0)Uym++>FJ84WynZal=|?v{KduOu?z?UoE>Pvd1&UXP zOOM%$SD?gOlwihd>qqeH=Zfv8DlN2BMZFlEoSxWtV37tLf7S~VI;>(tcD06!T~$9` z6>P|^w(wdV844?QBTz+0BL=ElMz3 z2^&HHrEJKow9u-H4QVnG30j6|q)TN|411_fiUL^)?`QG^jqs&69P%kkm)GUomm|m$-ns^vh0tKURY3Mh-9UP1amlq0%{AUfY zib1_ap@LOQ@NVcQc8x1G#}(H!u1Ol*+MuvZLBd}(0J5VIu_6T~4JY+L=?$!K)vDNl zh6S}i{JjY6cOBC2%PRs{KPtc)_U3?UHZX87tCr%AtiSMM9>#+ro$7Ta2BNfvNiRfY ztv-o#XCV z@1$vnk$SO$FN^AhfBsYNyy7qGk%eIQejL`tykekrirCSwXFke{LNeIbh3T1zi@^3jde=XV1zuxLKz#G0SVa zr6v8`dY_>Zer(d;%Sa(f)*B`LV1!{EO(qoFmEz;mTnoe=x3jDD0w;!7aN7+i#i5yI}7{UavpM9I|Er5n?i`S z>PE}YSl>cP@%p8-LU>M~+3n?YIJDBZn^g*&R#-!JwzK9zui5RMx8GcJTOGJRy*<_B zUq>yMfE_jUiR9Qhi;x2UG~34=3nimYL&zv!2|AAX(Q1mQtYBWwTZhndyLseXExTGr z$*QUsufx_+>s_J>W2WCV4I1NgbbdPT9lUSZo{Fw& zZ3677dU+0a(>ENVjB*VVSynF!o!0qJtr24|Luwrdd zSV0}6z+>aPh(T2qAlF6^6o<3^K*+?!Q$?#<#l>45coW|_1ZP8PAiCU#5>1;ke%kqVY>-j`QYN*c$g|}Vzj0)Q@TR z*E7e>$*QyPlI1HzXSWKU-7C%_5atjqIs~-g`-mG41Ay99uS<&lH=aS`>s6Pr# zEWGUM+HvIJHH(<>3KJh*SUVQLd|?e*2kp0QxRrkR>BKQr#Wp5x#roRb8`3N+hPhJ3 zQtK}YmVa*$J@tm8;3_MD%PI@dS#b?k-$@kb_TxV*6ENAYC2hzOisaJ2?G3GWJ*`3l zR7FcdO~YP>@!xEqs$9TSB};=uPvC-gomQ?uijt)a)Y5Q*h?A3UZyaWYESt_23W;Lf za&K9@-ze_)`pI~b#4?zgt488sl-9y~w2sxjwh9gKY**I{nGA^wpbcAORZ=(bEX+#~ zkTnJpvUFvLXvU+Z)ozryA?vE}Vy+$)n3)bD&dS=ci~d@qS}ZiNfP%UqEB0j-8ju<5 zs>!cPngUzA%d#TY4ThKD(v`rrY%-LEOWP^W09>Rpt$5YI4QC{?bk(2>yhxR<8njK; zvhYEGwR4&GwVMT27+|x?hE0V_3zyO#0ngMR4c!QcS{nyZUOO7SAimd+q%wq5yE4>N zi#kkiq+|NQ>G4_f98;EdT5m1&X=x*IM=5Pk<6Wu%L&YDc#8ovb#a1<`>rz!%G{;TH z-KKQem$~;;Ph|Vu$tnDE-fA8lS5Bqguyiu@Myp)@i|*TRE3w4}rC4HR{YSXNMaZZs zEN%@>O7p_rDn+2)1AZnR?xVg|$K$ziai08jdLz$`iJRxEs>j2`B^RigrNhvwy$Bnz zGn0+mjS4&3ZmO7PX2tQ6llaGinYig83! zgZ3OmV6-d2)@ZW|lrK&gpu=|O?5O#x6J4uK0adGhm1tJ3zul-5(N)rbfYEt>YUIr= zX;F$J)z*sOPbM}$DbPRFCetSUFv|)l60~x8YRHlr^zUv8)VL0%Pks z8VthN0L9CeKaa~`I)=BUM!6c8X*e0(n;@yE9*8~1tAH#wp!RBry?1sFGJcnAKzk>x zpL>+R>h#>a(Yl++UE{8lw3JF{7)U%`;&BX1+*A ztqUtwQ{$Zw={Zb$!@g_Bu?mCsSONDjl7Ob~z?HPON7i)cP z?*@)r3@;R8<3E=?8LA*{g`;q+J>^-&OY_c3*v8G(C|oVv3}e^CeN6r|Ee_qRT~3jl z2Js*n7vv39%z>+d<)w|ZAM~%yqly&?SoC9=J(>=Bg=o;cOu%5jmQ_Kg14oQ&QK&%G z65~1@6yr|wG6kuQxYOyN5OUpki_m`8A^lzhltQ3o zUZ&tI5olQf!pvxsAj|HO)FO4gMgY~zYB+`H`qz7N-aI*YkEWcu&1|8LpHGGInr=<( zncVdjWz?vdP-V+6LjM*GZ7is)Py%E>Ynko8}?@i#d^vi7!^mxi41LCmhP& zJ0IF-jttMvdK)vnt~SbGQ;)v%8BDu#nM9?vT%x#^W#a~zw(7;KkQ1U8)+W&5T{E~Z zN*!9coB>&~oMbl#NR(!ZV6k*r5o;dcc{C2QJQz(iAp39z-d@^&|j5Y<_jM};=XkoOrc>dUG^hB%r_S@o! z=E+SMYr)87wp;S{=kC53Bd)4pHLA*E~9V-#ocEZk@Le%8@U&bz@&_w_@}UTLT}sRjq8$d7D8()7+v+EK{a-~QN8lbVrW*AprhTVL{>Kyt!(p2kxbHYkk7)B z8huJM4SU4uMxPQ*`fK(^63sp(s<&Z0NYWXIvPSixIk~|=!81=ByIBECyFp!y^MUwn zMU>t(kHTyws#@E+E?+i?s{5C-?M$TWzlHJODNG`!I|s$TVDX(!FHX9>qtlz@C*@Id943k_6$_1FVFIz9Mcq}N{LvxSDpKB-++<{M%j zaoN?hY=hMyG*>Y)&THFP7hV0T;C^z4ruyB~bqf8~FHz@D|y>b;?P4@4wrK@OFj%WRrbuJ*pA!ndUZ7L9@ z`r0|^OnR&!#QHDsnTv~OCcn;V5id(1ZG|5vVIR|s#Yx<^0b8~8aI`W^bZa%UaK&(0 zU=Q8U*jcw)EO@@R9zNUJSm<@D#==Q}TRJ5^)U%8Am`vlrbfU#i;3Wbg`&A!z>NMZ# zPGk6!^BnxMCia3}={U!5b?s$&8pT(}^cJi6Xp0p!9BmlZ?D(S7#ekJOxH*&^8k68` zA?L+eTj!D-_d2bULoM`r5x-&s4ZUJzz1UGCt>z)d`~1-Q)xylI)UYxu>LRT$9uzFJ zM4=!f{&QKiH&5X>2>a<)2kzZxK5V|U)$SP~(KuWK!1Gn<1SA|*)n>wOh8ED)L`YdAEb&}i^&@gH>G>r1P z(4Z)0rD(`n3k_Lb2O3U`SG__5zNEdY6K-#s!7T5wydXc*~v{kR8 zWY*My40c4qRsjuJqah&6>HwXm0eVIRqtRv1FOsQQts!An)Q8D18ij?xkHzW&CZb|# zOemh?ILQ0f38=~iY*kVZP>{*o;gO2f1`2w`(wLA?h+R@1>w=G@qh8=rtf>!~K{(2T zyaW?gSwMpo*M|c?DNB&xwFNAAd3|Wuu17{q0sO-qkQ|`J?V$v|s4gHOD(b^T+8URj zV%sS@YHGOnbPsyR&F;bb-Y(n@x*v4?lU>E7cDuN~TZHTxT?4FCHHA7G8&SRjbm-B- zg$q^Kh*06Gu;{gZX&!V-abeX?j9AqQ@M?E@9rMCxSK0XR;uYZX0bPz=m{5g{2NkXW zi_ZB^y_4o~>-6NvIW2m+t&@YJ(~d>CvRHwaMYY23T%4Vqo}*HTc7#PAcCEt3uBj0zv=lZI0f-_2 zp8u>LX0Ox!R~KL^x1dv5y(pMjk$8y)w$>a-#W?4WGYM(BrB^2CKG-gkXeNRm=)DQ zO*5cwQQUo{;c(VH%J_k(24#rws>i`24dd_*{vM57sHobmLIl<8ZXg z9|HkX^eI%-fdU4+$(&B$g<1^{qkJj8Av-IWH=9)j;7b@UJD^{MWrM#8ivzz3^IAc( zzseC{f4R_Lf7OeOk)-le^R)01xd)|}63#V55T&Nu3-;2fih4VcUO z;?0D&Wj_2DE0*TiX%J^oZbdPZr3xA zDwHn`9{zMh1XRTWuq;?|!DqqSassU-i@|KzhPPm$eD&}Ra<__C4_&7-vvgV5(@3Ov zpN$ss2?bARyE7D=ndRGlW&_&YIC4l_@)x~LhGdmGCRHVZB>5f+d30GE3B$b?{CX& z?{8~2zQ4UoVZJL+Db@>IiZwOpi+*k$9ep@C{rQCK4LV&t=5nEqZ`?w8P1|(F)RfLl z-4jEde$?FIMBasu^`$NT*w_0P7sHSJnGjxWPe-p`ZRZ0l%2WIk8@={C4xUih9z?gV zJ?GD=I`|2{{QfA&vL80GXb@fo=?1HPb-nxgH1_lBDDx*U$FH`bfNEIvWxA~zb`d8( z8Tvw(qFTQK{5_Z>0VPlRc^Za|(ar`=8!v?k3scNU;78Cw8V92dKBFLIrrS|G2-ym4 zyndUcJ{D#;Pi&f&=sp;XqqxvNl}1^f;^R?GfEZ;IAWbGCe51lB(NG_bl1W`dn~bJc z2(Ac})%fFNFok8S87va?zySFMOYm9rLzseGl4Sl*`}KedvZ!x>(jXu$_QOeD&!|}Z ztIPm)mL||mGRpiQ9{A{P;qzv-fE-8phy7s~3O#prXP@-NX+Yzi;?i^jG*}=i3c`+u1yu zUIN{1z-cs^!q0a}Swo(3jrUBqTy(8K&$LW_ejjG@eIKM@Aiv_ynDWb4+c+I_onieE zOb!~1m7Rh7PtX2vm?S_84U{b=VY=b&oi*Caut^x7auOc8Gz$FV``a4^@ z&$f17ZG)I_nX1`P|NW_-Ozyw;B?aM6>PYSc{u>F$-}&y_{l@OI-MvlR4qGNF=FHgG zjlyBRQG~C?>Y!mikMa>Likp--jLu%`6z=~=vEM5UDp%(}H`Um;Xd-YF;rw8Qcg3IlnUA#GJANU)M?d_lU z4z{-syNCWS@4LrG!1SK^UG~HY8zmTRZ?{fx7j9hV`Q+vH_TAmx*4^G#l3s0h&$mBf zZ#(!o|Fe;6-);@^0kAFa6~X*C9>u`Riv8?-_uY5wbK-HYuESu!_Zpm%u*2btM)>hJyjH7fP;sSA z6yqB|4M)Ja^7~PkU59XLbI#Mt@QeO-aFtvoTm1|UPIZ89)9>vCx|!TxArjg0J>9^- zs(ZtlDXK7!}?{B|P!}NaZ zw+w}rhjuc>;85x7gvJelBA3k30M)`}%9w7g9!(A04O?rx?dNnP;>7_9Ifn6QR+1^3?x# zpP{rhN`e6m?Fq-3jSHsu>G%GBKKzhl7(%!Ul)D_|XbWvAl%teTu5wc- za)^b zR7v6DbPv^5Ox+U5>nhMRlA(gef9zQvu&=AuTL+SK4RTfWb+6b?h1ku*3)^H_M7l>u z^4hVI{X|D&Rr&IbD9B2_*^UIYWj3x_QZV#Td_&b1_$EXzA^yfTgs+#^E3n1+irw+LQO zQM6R(PB&|8p7{aTU|RO7p0gIzoxEG-oz|EhQV#9XBvw^rgj*4?$3ypy7J}2xf>#Vy zaknmC^z$bjF8EWTuG6w2IbBgYygv72uw^{^}>3w=D>qoYSrL&5a0i?ZTd9Y@?pCw zau#c_-@_+Dq1shQwJZIwQVo^}MlvO%!nn7i;uc_Qw->e+Mx25E%4wWDNHW@{eCI~( zrYtX7*06(A2+@1f3N$mU)(D@^v|4TNCY{giPL!jf!oIT^PswXmsFy%oVm6EBl~-h+og;I25V%VA4cU0fF_UF7VX zKfgIA=QozhZ?^g3xXyO$gMQ!#^;oWvu5^|?GY-OZ$3E!scg3OAS=x8C>-b8Fhw~>` zO`KqmvWb^7s*JMI|8mQXFwJTNgS2dvmO~eC@*mvjdXBGMgqK!eIIz6 z6eN2pioW)NKbLzB&cYhqej_~H{BoVBd$o{s*^n@(*FY?6p7-+0<)9cWt>I>*AqegutQ8#czh08k z5Tq8t!j59F_v0~Dp}>@CM^q@5jPcs6q-Dim-S#d!m*FQZO>K2vZfr0$+}%8Xz;ph9 z=llWB`2(Kw2R!HRt(-sVY5l0@^8ZbzJ4r3(?wa*mvP-tR`z@TL7G~#9vCiiFhj*u5 zw^&Tz2&m!t&-NWd!~FyL{hz^s{(+t6&wtLz`Oo6r30;c_Yvzm`kMsKc{Dht7B$VVk(XujHwn4Oc8Ew8nw4*ZGQ6m~ZZrHOth^a2KGywF3|FaA<_ge`Vm#9W6PZc&b1I!ZtYa{U5{f}c6wzGf;6#>`G&8P) zk>L`D3`-b7HZylL3V?>H>}g0s%*W?2SNH)h8glMNFt9g*lI1^kC_R%km}8j28NZWd zJ3c;ZFeM=hOY)U0!-?sPS;r8hu!PU#dG4?<-C=Oukucj?ONXL?D&yIvI+NmCu${t@ zgUaS6XU3#-G=f$5EGXfs%g#ht&uCm{l4VF*fB!^e0J2bpF$+nS`3=)1V-lh;C11%f zoP~9KHkV;VIXE*vfy;ZwJ&sJE#E}xkHFaeENO}@{3?G@0Gm)JrF&TtJ5gBum5h^hx zJ14PBk7P5sY$gjEDLL`Vb_`KMF$l>cI;7?vo6>q#4{N|PBZ0f?X${I+t{ z7S_Rcd)0RAaQ4U)RTQSuW4W>PRAzE=B0Vs;i`G>Z6x|M5-q=B_XXg5+eiLDEk#cPO{#Yq-2ox+fZ0aBqTu$0iY z0m)@ZjaC{dl{Gw(w&GcjrKe}6 zC&to~6OS>#s1ylB4NVpZJV2S7m|3}Rv?+AL~)HzWYha6Gr9S>^mKM& zJ~N&hJCqqatfPyGBr(QBNE9g75$)cGdc^X4+s znd^0)7$kY(XYxFw^(=x7-ig<<$Tc@}I0gctSWuAAgn?XlB$Fl67MUt;oSHe3HPIMk z6_PxyanwptbOi?TZ3c(0W?4jbp?YVqV21SOw8h)~% zyj*Of(x;4Vlq5mnJLX<3)UfbC0f7f3^g#9Y!C@>_u2S{OdB5W753)ze>{;h1q19)^ zdHu#9iIN$TC?P2%qNS}s1l7PH!p{;0++brbYP*F3JVc?fXJL#f`vO*wE^#&~_zO{W zej*qcm%P$~S52NZ_g7@F=E3b`UG&OJwPk}b4QwadlDp*R4Xzk=R!l{IW?7NmS*o~I z&&Hb5bmly?)d9t`3#tXLYGscUgE@vJ#ag)%XYyuOEcaOglNrMB8R2XUDn6JtIErOC zi^X6yx9YhkiSSvg)B>HMN#&f)@Utv1pX2BD50gdueEP`zp3@^N5*b}qq0JBL9# zmtaEgRIXeHUNMMdgmVh3zHri8i-Uy3vw{kx5yIxx+3o!7E8dMGTDye-4A_MMJg5%7}kre5qSJPS2uojnQ z5QrWXa|=OG^xU$+-6RVLCZT1`Q|1`fhz7Y72ZU0iIB0kh3Rc!sXR@j~lWkp{iEz8l z$A}gMW<*F5VZ(~5#Z*)+@ru%fYCIg9RF0!332(9JF2&apQY~;WJV_Wtfrtg6 zXdZfK!T@q78$rmOw1dccSc-ngMxF06x0MzP?M#P*S#f(-~G zC59(#PL~VU)8)dp>2i=WS+V6X>*#4rY&07}EkcqA8)%zhjJ6pjt!;)4)wwW6oePsz z=SYT?pjwNEfm90&3{Mh9Bb6YGQwhSvRf2GRl^|@S5`=A03BqPng0Qhl5VlDr2-ly{ z!bUS%*p?YBY-UCa8_#HAn`ShUFFf4@|7%obN*oI^g_^+GIm;NlIa~4I`ziY(L1(e) zs_h8DdGpxJ^nB)q`P}$SE(^wZ(_`Avbxah#YZOCHaM#M<5laZm0kveiNk-aob&#xy;nee5Sc#C~+GWL5X*c z;5XkCW`br4((cBX&CE?r;7yh|_%enKucWpK;9O>YU5Tg0v4K?SZG_oK=y7@+yf%tG z)7xL87&drGc>pwK(t=xaBeN(3Dl;g2ws>UOh*QcfG^anJw2YAF$J&Udliy*bc zX#-@qdNh&E9ufBxW2h!PNofP9DIzgp@ZSh`Gl7*2TO^VRF%qE-NN2JKa^n%zQ6-tE zSa2J#WHZ_Hlobl4m`G@7JAh0aoSvT;JDjnOPDzab5|lQ8x_)AM@NjO{F8Bq}gd_-w zE2q|tc}_4Cn6tbtVQ`JNs<2s7Xx0;LXPlz%kNJ@1~LC??yaN?P?-JTjIRE5&*k;jR)D0BUgS z7`(Erwppm)%Dxk0XQ^$4VzN!9ws~gOVWtx!0FoMLBtMv0t@rLDR2799-Z~7pKY&jk zn+PO9Fqc6I@I9T&FAfsnU8)o#tW}!iu7df8 z1qeMj0SwhelW}!Xa;q*T!Xl=Kf}k=?vS=3F$5eU}({@ON=-;iD(gSF<&nd4L+u7B4iFGLTDLD zK8N=IL|oSlr(-&aBhUhq;9d+uFTxiB6^`(k1TP}~Ep8Guio#WdwQe5{+10C|vC%F< z6{h&z%1(D4_F~Y_fys*nOJ*z}ftux>6(SDF3|fSDE(up;m>m)4!CI6z2CHl_APJ83 zN`zazqHwBL65!&M3pqIRS@I&ysgNXBB`^W*OI|rw_Et^KELd`70f}&|!QF^Oe<{k8 zQ&he@EFsp>D`hG{XPn4IGM-nxShNlvjcD-a!3klAV;|+5AXEE^oJrK#Cw3;s@{4Lm zGF<1Jh*m^*@O+|aJubplQY2#;mH_Kguo7VkVUituCBTS?gIvArpQ=aLNs44D!xCYA zn))@4a%KdTF$+q7FWh%u@vNK`lH{!fCc-@oiqXbp!75h_NQ5I!hb6(fUV(e#xp39Dtk!g@0znH;0*0Nv$+i`C+S(~{u|2O| zX3vWY>}PN3n9t{fqJ4=b34)&tYHgt=^NIRdi%>1x6Y;mEWf)cVb)pSKB8tD3-|1Q- z5T|Q)6sK#+z*u%+dZJgYEI3rM21F&ajAYp@FL}9&8-}Yv)etl~jbqS5TL<9fPr}Aa z{$zO4>=Zgp0MJ4c828q#F=Ina*#>K2^f%&^(vEQrzB;j0OUQL_=(hqR;qB$FpS9_s z?d7Z*=IVj1IW!eb7q#zGDF)|cEc})$tGSXFhVGKdSrP%9Rxxsb%@L0VukhwGz)I98LJz zXy+1)`dWsSb}qrF;?hD&07}G}knTt5>|F>+sR&10>>VM~!c8LymTF+jG8uETc?8fX z8gIq(Ln5s0H(;V<6GUSEiRme$RRK~dD*wdJelas^Ka&KFvFvfJ^Nk+EM$TYcJ%H6Y z+IyMV!xHOV4RnnNSp|@UrlBJ_>8;`Alqd*JQTg+*L|OB7aTt#wXRdFo#6(cV33!#H zqDbz*338*4F+^Ew4>u?w3A|G=1KNT@XUpAuW=RWc zc@A#KanQzcusu9AHB1DwhZpU2p~{T~CBe`B29HKjI4AUYRFjM&)tvC-NX^112j#qH zg@KfF1*2-b;2J|cS8&3HaKdv9hmMJyUtSEXfE4<*G0Akd01xLBpA0;FL z0xCBOz-$uU1TD&scxI`*>hszRZgWX>e-dVJyP0cey?SW7Sx1Dm3~e{-(5tSNy2XfGfDyrhB@bv-;I6|@J9^PW+g?^fdC`Mg_BcB>cjN5* zOb#7JyZadu9c4MBq5+wI&`y|+b=?c$)M zKvdX*CysmZ_{a6jh5<`#ERH6Q-s(9H%h+;~qfvAiEuH45tRsH0bRT4`c_34p+bh;w zlM@69M)1*!{Q=D(#y-p>YFt~k3{%C^_{>y#Vmf!jaDRVpY-Vb9E|XPVf7{4RMA=9Q zJ;CkKgHPM-eVxSWMGtJf^6PFD+rSg7d*{dq12o_4Kf~_$Eqn?f6 z_VPZtQVvYU5Y}F{8P65FcG z%*|;pIpQ~$a_~E`BNDuaqL&jwc-i20ixS1oz);7Opq7Vf97E+DEG49E>=e6LC8S;K zJWcCYg4)K=>?SGES=zx)6Ra|%UF`Hlw-VGghLPSGwzGGJk=_}$vv;cd`XV3^W;swu zqZ~0<<%j_-%}%E)Zn=4Z^#aO#$Z*u^;8VTSMh*zc<`6$^0k=WgN%+Y#xUZbe|le#;vWoEzKY>#3Cli2NMnk)C7 zV}m1T8V(Vf3;>Hu0hOS!PR6AG%?oa$G-wKytYJ_Ii6MzW5aFB*N4pp>ML=T1U+nSO zt6C$Q0Fte0?${LlzgUo{WDSW*NCXL6?pvyZQ&j#uEE(1j?OFzFO!-1A8ID%(7Ey8p zK~ml=Fh|g$<62+RR17jS5dc>A8X84qo|FK*KtsQK4K1?MWPIOYR<)&C+_WS}Dr*s#4ELy|tP-yA zO~gtTv#OVgrX7;GJ+ds1l2r&Ap=Bhig}Ay`DV)C=mcVxL!Li&}dhC$43KwB)1unjm zyYzrrPR~qFjHM?h9+NSdONt6Xh9(PSW;zQOD5f*xx$(?o=3sh$VrJTaWR0VMv(giV zd0=Ml`t;m*djF(RT?#=0QUVi2F+G#Z&dmdkEYmmLO;Ne?5mRncW+M^q-$J-9W79So%< z4GG_?Gha=PixdNllas&}zZ!{96*P&iMIgg??L0zNU?i%WV}^MA8Sy2dlT-jAFbVF9 zd`CNGg%A@*!DFE&0jvQYD~x2h`(-pC!uKwzh8;l>jiR855|c({^?Dx{DF#_me(=qF zLvw@O79j>xn80p7&C_QZVtfM{F*HO5t@WLMBiq0*g^H5xaDqyUCb1jF!Ck!MihdXm zN{iL%+2qDCQmNP&p^S4^;?p1GZYJuvN2{Jm#gXp2JmE@bB`}{iw*iBP|rOknC%&4s!WYGO>OG2=U^ z8mq12YIbhshKcn@m59~|GK{wm~Eyi*it2D+TqiDdarzIK13w>qR=tV%jghM{ z+XY^Ky)#D^eWglM{l=bhodQ|Yw5e!v&!?HqU2&U%TX7r1thjB12d-XD)xGBC9wqvEfJMZ1 zAy+o1n}XiV?tCO>+rYCO>*kQJw*#(6YZGR6cx{6nR)TWDaMrP2Zrep<}i>U;KsIwQrNnk)> z2{*AKmeLWbfaqO^?T2UC;f0E&7GJSe0i{7$^%;Gh)>#BJThw(!B+`OhP72^(n%Wgq_n1! zxsrP_#uJ=D6a2N%gaKGOTZC>0l1#^|R2L2QBt$SIzguU4(+250whpe*1Y0e%bpS*b z`HO3DZEjEn2qQdk7?zf|#E65_LhCC^9(&+Mhe5+QWBS$FmUsg;x(jbTu+{DFMr;kg zn`ZF2U_BVad$66%RTtP=SX-IuZ*-Z#?PRSzf2Rkwlda~gN)Jqi?I{b}QyRZhNsL)5 zo0RE4Hxk~)GR8ks6(6CUa4hocRHE|B&UUdHlnka2)J~T0H>g0Rn(eMo+6o{dLs(cl znMMWXsU!tv3{#uHJe9D(w6iXsRE;-`(6%yGo=nuj+R4;1J)BB(da$#tDi1YiVeMoZ zdikJS$XTW)gVtUU%9|K^U_05?{9@5y3PJ5;SucY^XLwh)6I(N_fILHgsciF{Y0wlD zN@&YV8f<2Au=0DQ$pi!O7I@ zdi;%+H3;VhgL&d(C!QNDXo^yEOBEXyK|D8DR?2}51qn`oe?8*uk_Sqjb?)1;g)`2> znH!H}(+4xT^muM!UbSE_DD2?T2u<$PQ_cAB_}D}?dn7ZS8#|mmG8F^Lh-Cq2#ApxL zsn}YZvew#EyJ{^vad0{_KAWCD6oW@bu)vbUcA%Su7i#I#wR7`Ucv_4IK8@NgfY;@~ zr$#I~O146yr1s)!Fc!>64KTKEB+Sm{@KxdlFx41Qj4HLA07);JyK#2DAw(7@79^v$ z17>#Jp^|MlRI=?JD!|~nSYX##0bSQNAn^J%Jc2!+jfW)T*uhD98(@y5r>4?lHgJ?; zLZYE<00Jc(JCvTB%uEBD$%)LgwSU>-nILU(+74O28WA6*t7)F)=-#IoJrEj1`Ac#%MR#*|~|M>tcmS4WUAWHXxly zAI{9}Z#aUDC?-mS+y;z9kfN$FKQVSVW1UI#7$!oU+75uE{9s<+NSQL@L_iw!Ho?T_ z?&DQwBZ>{ALT(dA=<4fLr5eYEQl+;EW;T5w)3_#O3>!pAZ394}XcCq4z+5JKXgZU% zs;ov76QV(G55@yG(Vb-4AuUVW>v z?10r6Z3eqe1uKynL2Y}r#_Z&)^jLiD*~?e6kDmmhu^PclT=>tXv)Sv%bLp`$(wW9H z(-ZpQ(?aI(ETlHzB4x&vjtvy2nTU9J@^JQ(u6#5zm(?F(wNMR63MF|^hthN7adjkU z1|SihJRHzyC(@JjcKdWDGj8osmRJTvON`{fPNgRg%*;($AqtuSOoS&7Cp&XsKCUSR z&444q+W_YX4sIJ5N-?3((1h+NpG0@@HmeMUz^x;cpq8x%YdLBz&)+sRnd?-EKo3s@ zMi6>Y?j%rUNRV9C>HsX%kphb8m;$9oF zt5+g?>lKAvy^;VIuUyE5-l>R#CY>a?DuD@b$IHOh@hT~jw+u^wHTqGqaTWy0SOg`+ z*Vdvb(~Zqm(0kOQlKXYG?ug%HV0v+QyP1nai*Q zSW_<#)T>d{s5?rRFic7!U`oMC%s5kNDhL^x2!Jpsu6R-27_73zfCM;(HMd%e6Kon$ za@T@e#!x417#QZ*G>mhkUkS{_D`ox3@so<-DKj=bdo$>wi|=utvUDGv#5n4K=ZJTz zSXJeio!F|;ZS!bUqih@L+#ykYqS{C;Kg&5ecU>+$ISH%!`CR6P+4+enb-&U^W@`W& zDY+F1&wUaMFWAb^f=eYExKvV`aN+x5@wgb-hKrHfhU>a`OxM}*T-PQn^9SeSun>|B z3khx?mK?PgZvctKh(X4v$pf6dzQOR5L<5#2B#UTzX4=F7K?-;HOqM6fu#p%t$qE*e zlsv8mV#p*LxY{R%MDBJmWRh*T+9HOO+^>trbe$c~b#1~D6+fFLzWmZ z$l4-?fI+Mn(uoGFq{NV-BcY1SLi1t&JrX%2?2~>K- zD=Q0=3|sKSs@8kB6xm#5VVo8HYVj)WG+YLOcd{p@$0laeWa&ITp3}^&Vq&n_Hinv< z5)|RwHu)}IcJI2(JrGna1JK3rE z+1zwmQzO-2$zKE|%YW`@?vQ3eDgzbXG$3)#6Vo=<5UTTrki?naU@i9zk%HflbjgpH zBjAYIw>!@>42%MP`)VfY!d$3G@vMrIP+8VGi9W9x` ztsX)&Vy$^P(gWMcR$bw1VeMo}{wkWD5t;yF_WrWTn*~d@ETHB7)RGux1$^ub@4w(Ol%a z7Ir14`bJ+j-dzh8A6qB&CVXe9mO&d$c2^dqR;_y*D}^OR5(QXU5B*BK3|UEBfNU5| z#Kl_UNUhgc-hd=!eM`GSFi(Kl?LvKV(RjvPCrNfnU;?kR&8Ek4>G}D&iTy|BGg-2J zIxwT?zZNRffGw2dRC36idPpIE(i2lz1CmBl0BPZEfn%v3g%X9*hI*OHjFX%v(v#NK zGRZ0=gOn_;@yulAV0wOHX4(eJpem>gO46W?PK;&jok*i;fRymIz_HekphTgxUN4%w ziM)Nw0~HyQ#A~;Z4_ME}$Tmq*_{zYfxU(w-et9vlLQv=i4uz5w7@Sh9FjNoiT38aS zBhSb3K!sro55}6^d~)WXT?$Bo(#d6Df_=Q=R>No~$55rr_?=Lp!B0o_=v;2>P{zEe zXd^2XV3LxRIqaIgb|Fd&SCELXWFcfTb4N3=HDgc}I0hxb?g5_CBfSFxmCga5Nen*p z%5FZSsuB#IxwC&d)vS2xCn&Ds4XRS{1|`|vaAbBmH$H7uUR06-M-5J}6Hrg}k!GR6 zN~6$#B)S6gjc@A=k`&>bScgDAoaqDEpEZPb#)gd zMnNU+%#P&^%a@s1*xj_~atcvLq!8MID7KCiViZx^>gX_Y!EeFCNd_7o+&(P1naS}6 zcz_&(2}o_jbzMBB>+E>0Yaf=zb#z^P9bMO^I*PgxHAyC(#GQxooUe~rV>5z*LnMdRq$qV&Yh8>*ofb#oHwP-^YpeL97N^a3O*HZ|Bp$uw~Yt_qz z;Q!5JD#JNX8PYOKxCtD&U8jUgmOP{-1GTDG0pNH^H&^n)$Sa%H7!pL3*4kMX%hxaG zbNQfD3ChBmnvEiGXrYP79wlQru8lyAJss7_az;bq2y4w2S%xIdJoIWY00cz?Awt^* zL@^$XCEFn}L)LcTqE|f{Ak#01Sc!?F^B))OwGgPIAOT5pmg36@)HqYomC(H^VG3-> zF2jmgH5hJ1N;hPdGP|J&Y}rnE9mdgKrUbW}xpo;z4{bN=h%Az!?PhIuYY})>jFowr zS#iEr_l3G+n8qKoOvB!yR_Ey$C zjVp5E;PednGnYwEPBpAbHDYXKs*&2+{72>w>}rS>BE+HuV)9eC<%*C-iZpHlmz0|2 zor(pJ>;%6q4*OJ}=*8ovu~=vRByS@(jl?eVCF$HDvFQbp(y|*`ITp!4%&sfO%}9|E zZANH^%%MEim6OqEF=*Q@BPo~ZncR5hz`A(VXfb%zC~d{t1lDzMwizRs8ca0N3AA`I zXtg-)fP7?{G8&)A&Q7Lpw8AywM4%e*q1sSUN`h-b z=+9m?x0tt$I7-m^J`HN^NQ~uE2}1w0ohy<|z8ILq-hy$qtsG;wd}6KE?P|fYieZ7g zZ0xhenV}JvYJu(L8-nkeavmOksz-~iQ(N0euDazyP>Sdq zGMF)!0j+Br)x4Wu)~6~O#ChRID`T`;$VI$CvoOwsezm#Ftjna(m=tGekM}uV@L5B>;36*_zQ0$YZV_Qi@J}Jl2Z;v?%Bf=vz8a0 zt#lKaN=vL~(5i>K^dYHsYcp}8(Of(@k!E8CnC8}tP7oEM1}3J^!CKQ@i)tN8xTpaU z(wb)11WV9nqHH0wRTZll<~6_Mg*CTSu|N>Ca{;6tdU*>52yUHySP9AnvI0R@w}$tL z2vwjk!dvYLJiEnm4FAP)g!Nh3ODcn(=Y#&7mfa$pe0eeKwKx$Z8nyLFgJ)ax!&(mg zRFbU17-V{+2sE9XfO;-+4r-Nkt4)g&!KP7@>OmWZm16J5HipMzB{$wS4zw1W^va4e zvUTINxcakaAN3K}C}Lx%t@x7Dr%mY(vl6utZY5e`OBz+qHlx`@;#nnjn=~BA8cf;Ua=2>T1d5Afg(t~LYdB&qZ2+$E zysXW}NohD6f|YWMOF6&L7#)k0tbVgGn2o!jCEi^LRy7rE80Rhp8B|MdZ9SA2>8^yS z*&{ZNbXUT}U+WJf9__A#y5f}!L3JIVG*WUfD<{EG@VYaO87+d+jF6PzJWG5jAD?%v z`Chm#R3&awi!YN!qxF|H?z*6pUxhK}DO4lIH3#~?p#Gg^j!e(zCTFgzYFrn9_V3v3WK;aOqb#Zx3+ z9N3nZPw*4db#gj@$I#%TZ)>4{6y zb^Bw3j+p!+KD0^kP?y(XBI;!fr<8ZP;^pC)v2sw(n~V)=G7>EgiE6E;2ez3nb?l)U z8e3`YMZw;C%fYd&i9)5d8-=w4rqrHzwl}+IjzPU#s8IwdT9(k znaqKo35gfDl@4`Gmae(5R`ttETJ=WBth7-=0#h5fHJdt;od<`N%(*!U8`mnq8bj2J zm6~LeOy#nf>2byNdK6zYf&wo}Ocot_(n^nmzt6*&8x3SSQ9-2>lImJsxe&3?;(@#y zvCmewz1b6v1utJ+gL@W!{v?_4PI_xKcfsHvA5mb6kJ38M8p(Lktru$+e+dz)KxBj` z38S_Y<~)*BUaull1x*s(t~3}Y3wi3XY&i%{Mqp@E1%?)$6b$rY z77IgA4HzOk2^dz3SCybJZ_(b>$~RXJ$uyJ8M~&EHV_6Vs^hDr^TjcfuZO~OnIwc7( zkP#|d5g3A^01#nGu&z~IxEbLViwkZ(+D&z`0zxMwhh)(&dJ)HuQE~(cC$x+N{W+H0 zTHcreWjN<8Ly}=ibTYepq$pW~pb}a}f=VG|iSJlP?nqkb97~jv9GHSvthu!qB$OC| zL4%XSz-G!A5R4i@!NQY+VO~AbC=vE&e*wwDny(&W_;Ydu1SceiMA#a~Kr!u)7s78KGL58~|EXYxFA*@?&4 z7-P7>9mA4^pudX5LKL=%zJV0=1~DCnezbOU6U!q-^jL6s zuQL;&tsWAr&v($yc(8q()#D*GsC^vi7N*XUh9$$3D!&%al%O%DK}qzcb-1R`@4npO zu+q*+`AMfL!~tQXbAzMmmAzH+yI8bAk<@d8hOCyVwYYi_#MZ1hActVF;I0`kSg7F4 zzFR*Hw=W>gWuvxOJlkuPA`@H+FItZ4tT9XoDy`Lpw4UjDfa2k_0!D3&leHX-bn!L? zhatl`dl}NAXj-3T%B|#rih76CPHcG;HUowJ_495`*f7V^&jlcDax}xw1pr<3i4c;2 z01j_L>m~3ARl%W!wYZJ-~dtt0t6<E^Z@c`t+!Wwz-_C8uLI>u7wc*3hf-gP|kuP;VrW#KP?^s zWiV$f0$ObF_4uW%OcQyEBM)3 zpCUPIH*?=EbKl;I@>nmI+-kTCPqmO47?uWZQCD27F*tV{tyT4*UXFRzQzZxh$vy3< z=9M!wd6Q`2pJRG_Vi=;&?nKEp9IZUI(*Q~1IuTJ~5hYSTVayhgO5g~>mN$YFzMj>t zLkSmLy`*e8R=ldexP}W>kW^^$=Z9h4m`mfMF-Y+d5<-|?_RyBc28+{lEIc$J0Q6FB zWC0kV>L6rz>swQiEMeEDF&Kyu2MB1bO&Vtj2==S0-l<$USakhjBY1kuR%g(&g{um| z1~FQG_~&S5ZsNd=IlNy>7lbpj^SSgaoZRK6XAYz%RL?d|#AXZ3CSoRJuWzlL=>9-_ zv_`d@$i9I+XS~~{cC{wpM$$CI9*Ny@LDqlXd8N_&&MQei@GMa^Hoaeov%OzQ-1vTF zwMy!{0hB16V~J7{*e|+1GdX#9dgl6Rv^U7kt3H<_G&XP};Ry}Xb*d(|W|FQL%=EN! z9ge@da5}kXi%;j({Q1K0bbeh9d;03deS7+91qiBD;U`4ew|VoP|t6l4I+^8 z#S=GDf$cBe{2?$#%*-7H7jD8_FODh;W>OO97E>MjrtbFLVk&(D+|!#+@2B=pliZi3 zg+R&^4ZM3a|5P?JmK&d#+s`lDD**(y{76KgV17r_lgjAPf*42snLuBf?btVa_w7qm zx5jHxgcYB|zU{&%6f3b~pEdZb7b6=-z;_875aZPO_V(+uE)WfkD-jKCVF7hE zi10HO5q>sN$uT2?=ty&Si;;mp=MIc*=3$a-)GGDl7xv|Y;H1w~E(FuNofPK4m@}|@ z$M#6Wm`zhC`DKztc@eLfF)ataEg23D4iBxHA#Lj=qR&-)HIIIl$Ik6%pT~g6qsfBt z2R_P+{*o2UuEF&(D*3g;!;791 zsO(?M+7?BC&^$pS5V&!76m;@XoW& zgNe!E!Cn2y$X(WphPTrUH(cR^XWz_2qM6TX0PJSShj;Bf>pXUdJa(OR9=li`yZQ&t zelYVqcJDarJXqJ*F)%RL^klJ~L}nQdH9c|kH<~!2(T8j!J-(KPHa5Dq+eY^~Gsr+w zV?3Vc4q0icR6hF*c`FR>XmZ56g%!7)_XF4}NJSm(4@#Dh)Aw^*=DY1lcueMf7W=m5`Xcqo}U zgLR;tJGbv@R?;-k8Ch<-`gcYPDdC%>okT3`hAB{GA&kP;zDg33EQ0o}3sr zIb)#883XPfa+QOcO5d29oypFRr{|4ct5Rek)X+rhaON<0NgU5iW)4Q6=rjpN4^I>h zFQd_@B3ObDLCNx;%UH${4^_Cckc64f+%OT9V)?e`A#QjXK{O6XiLVna*4v zEwc!gyhTu={O9M=)7go6(w!zJ#%|1w9m>cD3L3|e$n5k4G@zp$`;Ol2H6WC(a44VK zKQYhr5Iu~PLi@gZh+>NAhz?pya!>_%_*jR<6@;H}TkgrueueV4R zo1{KjD5*)W>VYeApJY%iyTuMx)%DP;_F@0SD(%>JAgDSJ7(zwSdTJqix{fvT$5214 zRpFj*LX2paiEye^ig2A69`q)3uNYL4Dw^ECGMQ3}Qwj=o(rgK{g&tkdSnh`qxWRtd zt1ftCusBDDlVOD?Gb$^E1N6nbSE(gaD!x6TGMlXiB%7cZI&Qh(z&41(q9wvIx?R+< zZ)##*)*`1R*K9c$?u^x;V3kNg2g9itCyZLB%I75LA{#yk{KimLA}QK zj}cK)^%v?j=s5%ku+oY@uEI%#J*i793$KDX{;lK=0(o;p1a6megErXe#iApG2EW$B`ccyE>dcYxJA$=nU0Ee@_8_bi@59;3SOD#j29BX3nn-b4n^`c zFKjNoTlHL#iuuhJDfje2bu=}H<%^_pz_(A_9LRodHWMxe0qG09UzHsrsn@6P)chJKOZKkZp=GvD?cvU?(R{fo zsb_uAD|=P9=u7~~$PuH*Wv7hjs+vInccfk zUka}wgCXS=>Q|F-akH1N?bU=%E=M8nTlBmFTqZ}|twDoWJK~q1#euYiIVzezJ~rI(qy1t{)of>l>dRcWyW|KQ&1NW4|*`Z>*ESgsB0btn~7m-^=C`c6Y`1CX5k?5!zjQ-xZg1J}C1^K_|LCh{(t&%o~8 zyJ>QigL{@ex4_0DnMsKhASrsiQ+0o3ZwC`*z4LH8k*{p%go?d-)X6Wy9nIR_dTp^+ z&Zv7(6756L;9Pb2uEBx9(T17}jlY?#GRr5Os#he!4Hl{4vPUL%CY*91q{#QVOTki* z%7g((gq@$U+EQya4r;`dHg*-MhIhmf#g314Q z=7tex(Jh9aBp;ZV%;d614jh;uv`!RMO5#K5Y%V)tr#`j53K&%iBzqIAJv}>-XkUb+5XXx;X^B=4>;m!&7HrKB#&vW<;cVEg-8NTQ;({ zfVo6a71MGWG<(qDLr<(DLW|mO>32ADh>YlrYu6_%eU|CYEOC~7TGWSVTA_xCXQ7u;}p)ET2aeM4K{ZQtx3JDfc-g_aIuQ|YnXSb8cm zIXRIY7~DnokK^fNgv8PkInjv8esFk4LuiB^3ysi{hBh}gG#J4Hff@)1NSO0@COfu& z%w$bNRo*ltVdjURR;R{?bLqLU14Q{SVVHCkkV$I?wCthuKyLSrTso7rbY)AF2tb|O zW{j3TZHdwdWAZ&)av(iuC>|bA?Z|-ACQzifInpfaw67k^22zi4_c+Ikq8!?_JvXp> zaGjo_$Fh}HkCAZGz=%dhF(SdFs{l<}!qBECvhz@W6A}+sq42PTAF56g zI|p{|+~f?OKmWgL+n*m4x7GfGgbZvq?LT&GA2@ISaW4M#ZQbl_b$CO=@5jr34s>b1X?laiovQ^%@a)%p%ep` z6ajO#vh<2)Sy_$iN_0`)P6MeOtecTGXKJBnbiR;8D6CuVq7}yqz{eNOl{EXP)-!uq zb&39|)%Rdb-x*ZfL12In<|c!8C8I1xexz{pyXcp_-ep!314B@NMwu6iYUZ?O4AYzp zhQoG#Q2|7&H%m9}MD?$Ipv zKP1dR827@W54ua)8#RR-m9It)ML#81?`({0EY;vyr5ZXrUa5S&T7?FushKEbGI&tR zLOQ%1XNzB|1l5{bt~EwuD7YZInN3*L`J!X-| zXI44gDYNaGHrv(;DHw|7AarDU(RImSa@YXo4a54g4Iv8FiVJm4qj2P|>vGtb2Pq?T zZwfmorrfH#;O7~0+3`o5f|vLCd_v-(xOR(`W!DlHiM>eW@#`=#$HhmY9v`!)g6xjO zXM>P3!6+J&hKVRAp6G6;{}+PQa;j2ZYOns^KQu77X<%q@XmDU)XaCL}RR143um7Km zf6thmK6wAl58q6F-hblI_#F9r3HyAHq((I+z z{NTmk|K;X?zh>eizkTP6Ph9nqj>qjdefXM(oLuF0Be&_vD7e9UEBfs^; z2R`g~`(C;2)l2W0Eqr_M;9q$keC`t-|B5@`e(ei#Kg-|m;n@e}KK!j0Z_YmWO7C>x z$S?lr_Q%OU3KY;ANZ8FzW>6}?O*(_2l`LD^cz>asQi+l7w^01;$J@W zQEM-JME-*B{OHMVDm?j%zYQgr$V`vFasP?i&+p|VKK|XC$pVL{Iz%w1mi)ywjsJl` zve+l%e{ko(_8kK|N%-Jk|M2$nD&Hx%da0kR`p!aKvw1v^=v|ULL|yPhc0^Ozx=xYV-qJIoWE$~qKCcw!s(YRUYz;Mfe*a% z(wDyfZK)F<`oO7w=skAX?l1r8g}X1i--Xwn{Pv+uEb9x@e6~YA)6d%CJmSgsd)J%) z^>@cl?Z0mR#K6Ox6O)-^4}a~gkG!LP=l9&pF1*e8=gYqS)Uk)X<;p9zK8R&>4>hA5 z7rk@v@@*eWfAqN@f8o)-`#dH8$Oru7VbedF*zdmN^_55daP!Ci>Te$Tx3ArHj~l=D z&|h8fqz^uD@Xremf7N^M#j?7mQMQFEw|#8zsn7fOmmkeN<(Yqa@l&?k?_LArPjesn zTdzBC`N|TL{lTj+pSkDrZ0>EqaX#?e-4Fdn z?c4AE;w$?f_K`<^bxUgh+g|ap>;K}92kv*D`(7Hl?|Sp_&t7!F6Z_wM@iX4_s#5p0 zJfHg*aQ@}jKfL(2zVPxR$6t2A_rG|m@}d(@|FZk?FK_?-r=$;jxc}1Up7?{eU2y+< zec+l){$Sv?4}9*E&*Rx#7|DjT{Oi5_|M>Fme}2?O7k$wAy^oxFz`X|g|NLWbe&g(A zA0W+j^oxIT52wCx+3l}9_FK>0v}yFbWWF27|4OkQo&)`l$o`1_H@x$_{J)Fzzx%@f zE&}4SKGO9I5bRX{%kO&9ru!}JyXO6)UB_N<$*~9D|3nV#I6wZ+$@xzoy``zPv@?*} zl^WX2NbFXw>IJmu znkcV$Va;D6J#58u<~-Q3BRM-)IhleFhJl+Sn4FTk<}7&5V%77CYp}OPZJ3BYim-$g zQ_;_R<z z>CN8|`bKO#q|%7BAX@|P+Db%T>=dWbn9FWBvsxyUidU_z=`nR0FMPUKbhd8Ij7_Dp z^aAhj)~!yNjs)Ie9luneFVo=JDk=Z6TXR-DXPM*$l~E5pnwwh%Gt+$0g>BPiQju!C z&|D`%ETmTAlurYDlz4}|wNNiGH10_fs>a$+`o0oNGsED7K+=AsEZw@^Ug?x5t*Vx+iCB05|4?sYmrRxc9yTj*44lEq|Z(?&$+s;d|!#j@%az6E&RdyN<* zAV+KT%w{ECD#rT2G!2bpS5=t@ct%s(`EQT%C(~!W zR4>A1iw4;>1*W;I3}kflnW!W~l^t~BwJx>$QI``e&oi1JOp^g0){1MrestUg;Q!RC zg7oL3hRvXPG7QPsVFQK$7861uo~fP_o#V}Xaw%5OE_IL!A}_Z>#ik}1*02%1 z_~P?Iv&`~Qq!Z;uc>8*-Tkkz(C)#gND1*`fO-RLfl1aPdd z*BKaPKldvKU5jRD2{xKfwaH z$R8aJ1w=An*&Oqak19k|va}j!HFJzaKCVqwGLV%Izhq`-HtT=Q8a=boUW5uBQ_oNW z`DHQ?e4?P>B_Fqp^9k=-3q*=DwN>d>Li<&R_!ecn$q1qk+;T>aOjRA1il-8&WI$7a zRxMX;1dFnQ3q(79 z(oR6r%y~tKIKuZ;i1JI8d#O_JIKNnQ(d*gcZzkGXxe!zr7yG<$M{l9(F0$u}LNDK2 z3+PZ{9TAEPYB*6L*GSWbq$d5Dth39xc4FRHs4u~0M0#$jcgOaWbNOKZ?(MAJ;U(qt z++6xb>R*dg|CC!>PE~@{uE8E>c&OXyB_e}GUh-;_TtW$<-AQqDcJo+lVL9oa)H-og z+t4JQ$h#||OR)B3O9Y;R=-=f!ywr-z0~WfE2odFT&t9{DTJw*|Hs@1dXxk9dwuR=2 z3P2QVBKgBwQ1)<|KLPr~31iJpC?{R#1nFEEpr%-tbIS$T;HbJ>Ea3hOSX2okYN)>6 zBB{SH<;=qXB`sSlvffq!_jPI<=w3c97S_mW4R-@@_X{Ra)N9D9CdE(~YuO&&Wup_S zGW9BIKs36P2Y!#EN_P-EN>{)kE5|I#eU$kXeBTC8;)`F-Ta}`uH zj-k5JMlZP)EF~LAXVvEU#%;}Na*Nr(F!q${l}do9RMe5!^xVyAw?|og&;qkfDyHi& z#t~hnzX@Fi6*juiJ}mSHGC$DPL4Afy68K|uvj&1w_v#HSGb2qaKh$PE6P@isUGVUo zDYA~Jg9*B_?}xk~2<&5F_Mq1l!9tbCp$h06r1iQAzF5DKoM+frEwGFNslS4psE4SO z7}_OI%=d|1Urx2oDw&apNZ~>NVu0bg=UhIpd-njnBWa)ys%A$kd8L4k2(e^jO{+@; z-k@BLTbtL}w%1WgeU`24ASktUDaa<DI!m-lj1kzh-0g9;3m|7TAe$bN zju>vF&YgXvU9LvGiX~_20qa5ILSI5LMb=$DQH|+pluQUDw*s4zzf;juZK1miE71jMu|2?n}H6&(e|MlV^# z26>;JEwJrH06=pk0E%JYoGb^cC>@Y-RbxDd_h>lxs>!lf@>Hg+MW5(KtkqYSeKJ4c zE+*)wwQ8L-ZOsd7DJNa@$#Ms^x ze%2)GIP{8Y9T#i3d67%e@D0|ooT-noK_}u<^&z${s8&jO#B7toI8j6*sWy?DEoL`I zgC~93CexYj(e)=}y@!V>JxZfhX;JPY;JQ4wK z)fS}?d{M_VE8#`PGx)b4Q$^WRcct;1j&3E<4b^pryjxylO&kU#I*X8?^DS&`;j?LA z-jL=&2XA+K14BcK-67VZP@hEc#0hZYb%vuH)wjY|csrYFiP!AV$L(S1Cpi(0FT!z9=WqXG|W*f{N>HRsbj z%<7>zs?#9J7HSkNN9b{xVASIbs=Fh&J5DQK9=Na!jRKPeylr~aJNP2aj^%qbFYO4` zyN=P%M)Jg>h@OYPiny&kx6F+?I+|E|3B(d9@nf zDWa;ly7jz)B0+xFZ>U)1LNkR@mI@{Jv|p;1#4OiE1S0$0yMR&-%vI`iN41;pZ=G&_ zPfI(g=;eojL~$hZ>lkK@W;T+d>?yE=L>ft1Q-~!x8%Sh+0~xr5AH(rsN(EzNI=mVQ zBQ}X?9*AvxbCjL@I&^PTSq_U+;eD(=^aD0gM;IyYK+ISKHMe1S7An6Zs$Jcnv82!o zC=%_{+n3BUGQYh_YeUoVlB?m()s18JBE7F@)fc}t7&|lwk_`_HGMk;<(1;xw|91w) zp8o>_V^8CO5i>6C@?nu(t}iYYJ;N@C>c%)$f`UgKvM>qgz`$_OLD9u*}CH1dc#$Q?!0@sVS$tEXTHC*t^Z}(bEQ9q$SL}K!M#ORh8hz$q>#838e1YvE$WZPTbEKhg zHcTYDu_EMU6*&3pp&R)6n$IN#2V#n|QICMYNRXZtnp8Yq!STDGom*q@K9Z31J=bQ@ zJ1}ZQ-a{iV*dq51#2m9AVk(Gw8A4_6v(}{J|*@TH+9rPX$cka?s6}L^D4)8Kl zA^oevft8`F+3Hc6(!mzIWp~97stqiQ8gxKIX}U$2-zGNUo2Q!eoFS$&sbk-9c+t8j zK4GH^3*}K`!nI7crg79ksJgI;F`jZ};q-wT!GdU|H)mkwhxfCDl`U^5X76gZlLvk> zYZMch4&?;?k^{w3P(`-p;Qoz>gWCnHxOljt9TrgaO`*cU2GZyuOt;)!A~o+dQ!PDY zjw$&?(uSnyCs-Ly^f++&iu7Qb-RiPecGiMA9>URzAYXhUXZhk0{DSAy%l@gl$9Jem zgpJjSUOJ()$+DqEue_*2?M}*?^&)RVD5zJ3jRdnF(5zxR1HH%vcLLV$2W-Pa?+lnY z@y@Vqo3#rJ=oOT87vbt*UYc*XMG)yLd^?xfbgtEKzY9k#yS0}~)dG48EB-ps7W`%d zlOL;b(`u^rX`9c=uA{!`8dVx>J89e)+?+NI#lp5Wr5m`=Kg5v}?4y>I`#)rM2Xm3e zm#0k2Wqs?{u0eBcW<)(yP!wjVqEw20O;ZqILJ6GODzmW*NAQGYbvX!?vokmX3&|`J zF0Nr&aW|gks2qQQMjVs45Ky&K$wMS$8=r2qM$P@&a}tB6!EiF$gU6N1A#J1i=OjPf z5K~a}*j2{4nsOOI4&CdXydHzt6pntZO$S9|`%69}c{OEIlkbaAA%zV}B@hffx&T1I zSv3t4rfF_WxUzFKmR>zu0pFhNT&3oo^iHI3VX$>8s_7(mbj;5#VaBWpaJ-2VcVG^h zJ7kPMAX~KyAPD}h0Xt#KF)Dze<&bf05#z|!f|VN8^iA{)kqYEa>Z*tUMTPM0JN6loFJ2cdk< zbbN~-osN2+nsEV~R(fQEE~i!DeAO>G;4B+P5FAaf>02me6((K}&PV%B+#wdjVyF{m zBDZ37<9K?ARrT`qY6$AniNzvO5xw#W!IiJz7(vB@ZdHkTy^LbF2X#zv%K%P1Y7^=z z3a`4>Yw$D*oeuqia>A@_Da*uAo9YI$yqbWFyBlmXLuP!VnL2-!Tg|3o#?ExFx=PjW zSRg?_!&q13H|o^YVP7Aw8h(+u2(L|H&5D~RMqk#J^IKR2b_>WXLq6FX6|5{Zp`161 zeR#f_h}`a?RnN!vHrTuhk8Vp>C2+e~?b50u$7)Y5oIEicis)yL@;!6m6!hs!_2gRPvNzqCB zO_QRNDipqU)6{bAMP|Fm#u(Ely15~YE`3>b8=Ih8d=R);CfFq9ocIPobZvuY8?*|{ zvn@p!acmKG(lVIh3T7>#5I1?3TXaS6OQ`D7poJ(y}FXwoWGE9nG-uG__!)K}0Eu>^y)OUh3nhQMl% z{x?n@+0iRzV?+#t6MzM;whA4AtxecAffX)pX7dLN;v{P9hy#nP$;Q{ilNyCsJ~;^0 z5oGB?5S#QM2=~i!ya_Nj(@W%^P7(g9t%X+pEM5{AmzW zM=qvr?wolZ7UbyUK}=|(iD4S2odVVpuCfP4eXhv1hI?3GN~W1)R|q?1$BSBlT)@yw z*_r|_U(x=eKv<`@)D+dt+RI_$9c`q&8-|9)QJ5h)3}-8bf#75Oic<@gsBLh*1=P1A=+am$%+afAFqT4yMW5R|!SAjpXd6f#j|0FE@H;`#yDqRBKY zkXZwXAZ!Nn^XHmF|1PHx4m65&hMJ*=6S#u&OKPux-K#lcG`^iCJwyH%%{d_dMv zVI?Tz_7Pnk)2_yjKa|FUVlYghRdDlj!6qa!HP(q2$ih4+jLy=>ATeAv=F1w@F@|B0 zWTrXRkIDGg!10Yu^YmRw?RqI3?9hV|D%#k!D)xYHxiCpoZW^+vZ1x(LT4(u&GsZjs zy{xKUagDe)qP;PG+r0UW^H_%jY|>O`$R=+@wsfaezmmXaW9oo~pZ`*1VjoVs(O?|H z^V50l?&6$s=1S)x3MMEE0f;^Z0vn7ibIdN+{OUiw8)qpHmrD6si3yST*Y}W-M@4=Y5 z@>lW;+zH5HF$k(%7;_to*(dHa=nG5MJxSu@-6UJKi$wuJj@v*5M0v!pkwDAbK@x0C z%CM^;C}WDeKauYS62=fLitK>E9!F`-b%YMRisBbe8|w3V+P6}F>~;+9O3HgNrW9ae zMqeB{$OuxRV7VH9j>w&L_}s=&5R~fL(3}~xyI4w&G%vr*@*0qr_D38wdu-lDOHXx# zfCMa@mQGr9*F)4AiS^eKHDrVgBb>Fa&=uWq7cNe^ zal<>DcBiALj3(Je+Q|lox*RF!(}=H6BQh^mYs#!qh?_GkwbHF%+xYxIm*7F@*OVPO zcCjQ+_nz|}JHQfGs`xgkxYgb}z;C|MICK}1T|_HH&P%8rr`+u$@r&>n8eM$RZ9hl^ zorMbM9(o{s0v0?>Q>6Y-`L@s2t;}(*O^9#KUDrCZTj`6oT8{+W_ zoFoJl_^(${H$@>-9zgQ$Ohf6xjI!KuSco{rp*9%d`XbJ|bT6Blz%*HB>V{;*bvGfxOKBslL z%P_pxbzf!PLJh_Bad07Y+RN9`ph@)=1DaMjB%>)`9(0;a@ZsbyZ0c`1Xx&f9mehsGwrsE zI9!pen-l#v0ANxK#7 z%n^;H%f`67TXk3?^2f~dZEvtgLsJN>Os#9Jsm?6cn#)}p;K5ZyCt}RirteJFy-VNS6sqHSyU;yd2cx=;zW-p zpmb7%IkE)vxv(k_%&D7f2|=;F(=CCp6Da#QSV8GV4LZ>MH-kdJ7QO=XcS9z~hL7+@rfd zlD;qpR6)mt9B0Ml96h^|;~xv$sopd5nHS->jz@1SC{BY#FH)TE(lT<7iN|BT=b6qC zr@T@CX2sx5|8#}axAthp0=%CbRJm~BUV-SF3i1yIo8oq$fV2<)P4$hf0F*t8{jH+N1kqFvWu6Bd}RBZD5EEu6SPz%llH zoPmwW));eoQf*ji6)$&$Y`8YTH>O?P1+p-mRz_lp$YDS9h?Fm|ZTK48e}F;4 z28dsi`lOWPVV(MGX9r`zFWQc)u3y`*YYw4f)#m+@N2Vv`$)I=_^{`ISWfEg=)XO3~ zX(a1~=qIF73-u!HpfKXAbs`BCYwYzRZpf8K8}u5H8_-+WHHe}I$4a~k7Mb%dHl1~` zY9WhEIy>nbyebBeO+EDD33YRVb2FT{!RE z7z8G4G=RtE6HwbH01eLjqs#z^q$49{EvR?G3*sm7vPr=YK^>)su{hVDqQFdPJr~b= zyuy-4_YY`JCvIVs5o%C#28_RDUXgriRigFEj0%3O7O-0%tPbq`wTJ26+A)&0Ea}mf z1VFCQj;eXqR^Nn@3uAhxgfn12lrfEKW4EUJu-6Vwc!n%(iq{wD5Lhwn=p&aZ2diB| z%-A3*_r(_*FTogamPxl_62*qJ%v2XnF&bDIx1kM)+@%*SAvh|CD`K}=5oNkVEf;=V zZP<(LiH6{WU9U(Z7|K%6x4)#0rp}hyt!t6_9@qlB^;U)5K26+-?POkM>fSC24ldnz z4AqXv-da-Wb7CrBBQ3gtHr0)mI5?$+#9-SZn@AQ|mPQfk*vorl{lz(PjlT^UFG-2; zLj8>iF=hwDl|)^{mV+9%Rg_|u-Yd~Xq+D^**@5H?8&x48K*+HB{R!<9N}c}iM&`IOc91?d+0cY;|KVJ&Glw`4;$c+t~>UWJ#H{j zJ43TVHa?6tG>{@*N=7%YBQG~5r9?ePZi^XXazM|kz@f^He+OO9FngnMYqNWke zRc2!;w0WblL7t0Va)k^A9#}5JR$c+k#1x$sbj5s70E@Im zP>FCWZxJho{1o23=tBayo5MGD(FU3fd|$mw&rH0lZpAWw@%_1K#H@;In~Y8k$GT$# zC3S0BFm1V|b)<1ClE&8`KH=_AV@_ftduP&1XTz1yda|88)xvJ02PO6NOS*9u=N~<2 z3?^D2te5y5G=7;%eb7^9vKZjqL3#NG?vq+XowB4c#vyK5vm+5#?kGt^l*a0juOB@a zJKDI3gyiGvtS#Bzkl)+eZ6x=P)Abik$+o;l&wl1*k72577S_|*&PqX9Q%#ea0PeJc zX}D6oD8g7jUbmBh$m#9HBxE8Ph9NWFmzUFZwT!76`nvBrEc z;PTtAX&S@GCspf#N$MUbh6#7 zNI|)?roAz=u!e8T;C35{oJyrmupJemrbqrTv9rhN^ut+xIz|ITCi-(=@?WQoIi%E| z&ZT)x2Bc*?mg8}(TWQ=wFZoYXjEGLS6V+DNtP~S?TpKM?#PgPN2+EwzDIx0Wo4$Fh zKd7ff#hZT0w{nmOOFRB%Fw@Ye)vRFbqsuCKVHN#-rc}l-fp;odca9ovFPLkApn@P& zb8c!7i==M);0^BFV*rD~1#T-@% z`)&kOik%2#(}-0uWvTieyAMWp@r|Pacm#pG&m%Rd+$oKiHSVR zC@f9aeTHeB6G&l_t~}cU*6NmH9vU@vQMJ)`u(+nJ`aPZ~<8rSGt9}xlK9l8Z?=y?& zNSs-?xxKGvt@|*K(lkAh?E<=ytKES{|Lkw-_0Nd!{A1?hI{b+&#Yz5Iypt8P z{TA9Tk0|G*>=qGUh3QvBRR7iZvn}I;=iJKhz&z;aIHtZ8C&r0wpkN}?-Mz|UGFXQT}zsls%?F99=lZ8cd!^NxWyb5^I;$T z+eaYq&-3)|w)eJtGx=ll+ZyVofQD+}%G1B6YwZ73DeO!gw ze4LCtry^jSv5w(cIqZqbYu&E0a|s2{9UHQ=A)(drvigG%_I7NS!lmEj7MtX&w!0z1J`j% zQ!;5b>YN$X9KS0{x+=6iyVq7xDG-V_&a|8D-=Ip39Uku9NkVSY2vg{CGoU_>+WuH`KhIZDv26B`upkOHjm?9UVV;S@e|XqnBm_lcr94<+|BSmd!895(=r zNqmdB7&Ip}Pq<3kz*b2$UUfpWbPj?|Qej1V>#fd~E@jcMp;reD?|jk|AH81fhe27l z=RDzunNxL_J{gI(dQNG#oqL=GQtw$XS|mU5uktSS1Ud)I6Hffmdk|nAWSDYJ^wZaO z`k8lZlw^bsM;<;;nBrMwJ-SJD?2ub61?4s81ewQ*Cs4Kop<5K!*5E0Rl$S5LA*%jt zNpP~Bsw`Ko_6vKLY5EaJ-Ys|Zs3-gd>D>}*9qq3MoId6#AAT*!twH7?Ppv$-;OOPO zFoeOp;N@Mocz6Q6HInr8GBX7~p)(fl92X+}j^PqakCgH39uD)QzgSP}0jCjm(3bfmaW5>pdWc_md_zAYgl*c6yKJDUTll=6DS>GyC zgp37stH)cgcI1%ACNkD#N;!C-Phfg71yfsNJY`<07xC^{h24`Rfd!b6sRUl2F4$;4 zq|HVT)u<;!ZVm%at92e@l3>nT%ABqo?;MegX%No^H*D%I(yd+e!xY|Ys?>1L-scj21WMNdzG+pLWL?6Ly?qqLHP(M$2 z&gJJ7A2C{mY@?OYkFHqz_$SH>qCBwAZ86m}PCBTpB%Q{b1{!rZhMkV~Y`tTX>flf- zyvK0R$SB(Pu`8*$D^`W1e9VOvdtt+Y&dilslCNK2C{W#LkWys;vpe(xgaXD4vOVK! zme<{x&5B)&m!{r-_NoF1`XsMCq#svKMz@GW`feL@$>8EcrR?kl1TqU>P{U0@wb|&U ztS-1GubO)P8(NA?`#w8NBqIZ+UBq}Ilv(4#L1wvFrJI*kF-)*V#^`yqtDaVq>{;+a z^bng(7#IPciosuS3ahUwF$SI^)40mS;j$z#XZ_-zmfwQNZ^6uuk{aX&zH_yMZ@R1_ z!I98~Zkx4^oL_XuM|8WAj2^0@z>8=o%GdH_8Q{>2>s1&?pt1`uq8N!jT8~z`7@cP* zQ{i!b!L7h@3|ljkb%s*|4tEYXKt2XjLu8^_Ac?>kv(Vk06W7iVAuQA?Zjge{dE$i; zST9svu(>l80*DXihy_?D;j^Bh55_C29^FMNdvqyDiy`zhyfBP|OUg!?A=UPvm(d?& zl<-aM1x{LskaTZnNY+$u?w|&PR9gdrf0C$7ctIN-H#oCYJVSSZI>p0_5FGKME?8x& zW@c?Et|7_nm^0V1hubeov#KKk5gwy(=oggw9(tRy zTdi6ew$Lr@MdlPo#7wAL8d1>=qw-Ht@u=4gS}>eT3fc?h$U7K}+hxR28@Tn#}d>zbM!LXudHY^Kl^N>h;Y(09Wu)zMB z?bh9l%%Ag0!HO3htzxgP+3^}wx{T2(LoADNs@Ai8n&{X9pI7kK2s+SN4J=D&wjY8E zbaPd1n6*M(L8!iKCHGvo|87+Jdz1(2y;7yNcC~n$tpmS1)NPw`;CR9c49@a;&23Zy z5mIgNRUlqf_Q#D35BeCy{O7Zkiy9f@G)x(UepH>&T(j-dI_kc?!jLwefaI^#1_ z+$7~{UVdhwVy^+d#k8eM+Q+5JLBRvJ6m%icy$(~>f>&GY*T8yhSQ@Qieerr@@c0u| zG|B|~CUw^Ut-gFmdYtNQ$6fWY!-zdVURPEN9PKU<)(Th6&3)V&ud`0!u!Ae|G?;7m zpyX~bcPL@nM$Z<0h?UO{_D3A04}sVB1L8Uu?{Dynu6NAo}UwHGLou0#E zOvgG!hG6H)GlbvVde-Tr8Nx5f5dP8(;TLAud0cVhTUItma>qLT5SHc;cs!;yn{G^= z5&6@}ms4l-SJK9DXA7O|Q|AZf4G_MSP4uT~uo}V!1^O}K)^*)@J()WJuA!>xhp-z6 zn_XmqP$5XL%XEmE>%ew}S`~Z!a;PgFQFx`O^!4gQv6<||n|EGkx5Zo93_FB{ty12I zCs13efE=vCR(s019$trXtLQWY`xjqW)|b%WAt)A{m0j#o5UG!W0jKNofgOWztOjZv ziIQ~}$(V6=0b%#x?rvUcmQ!D<4;QJj*OLy;XcOhyE;^>QWvr|e;aO_Eej>)46B%LZ z{<-F!}iqz$oRB+O5srSGEeb+(yu$1;tuEgfDv zY$K>KOWH7daqfgR;otPuHi*G>2D;d8YK)Fn2<|l%iyYx}J=S@N0gvDIXgD#5&2paq z5gyPS6Zw>t@}M|b9_H&c{fq;(EOgGW7;_>e?34?BmC%ap=@D1}VV@xCNtx{vt_D@` zasj;ty++BSQrd4ITk}{=d#zKHfxX%R-A2C_A=*x!kBbr>srk5Xv7T!jdlKlHn+4nkvk!q2_4vk;-y4-W1MJ#;5%1d)v0m= zEWQSoT(#p|$=d4ZJqT*49Cg`=jASml4!~})ifTCwx;5Gkv*)T5pLbL!(>)w&2EZ)| zxcbV|n05?Cqsg~b<--!p{Hb?|I(vi~l>QT)8N7VNA0n&QLc$8BOQlKJ1wq^%tF4D1 z{)VJ##3CU=ed~{rb>G4%qR;OY-QVaRz67G2u@#9bwmmUNm#Xy%}r`3|w4R+r$cnmKKuzqR47omk@s#*`)$U~NDnjmAA( zZBbm<899{^YI39ab=9vOd*u!<=P?rizof%0H!wuP{pWnXUJ?esu?kAU_bPw!qvX@eqy#z0^?b1o+iTLpDWp;Aqy**{ zB(A!gg`^S3rWgph^KA%VWVkcsS04#wo9d1me^TCLY;UC;dRaX4d95_MY76}ZqR-G5 zuezO8c-1BVuhg2$A$gUb-c@IH!DTUA;)jI?{#2KP#^{9eLWtMZom!&T_f^Ydx`j&( zun)~oO*$w}VLJ-Fr-ga9!kkN>fdPDbQ)qocnRH&&IYRyejvd&I!p=PyQml!9eHgGL z13EC^R6P(u9i1HzbouGQog&tWP8zhMf3$Nm8y*0nURGgn1Nkly*loIG)ysnYhvh-{ z=;^_5E$G8dC9DOsoT&swSAF-8+Gb^tk9K3ZgDMRqCaO{}3}sXQ#tXe!I+va7rVIl$0)+0kTtc|wdmV1F%gxnDW9iblo!bO zavPTG1?L2xU{BE7q{@|P;R#H2zs4prI@z57slWvCDAjLQ{ZOcb!f~PId_%Ly;@o@0 zu7KK!74uxhRozJ?Qpz!&jdDwpr4@RjGfxZp=sb%Z~9{!qyabox^GSK zzGaW9x7Xn&LuPJ&Z&+J{g#f`19$QGYYelKt#!J`u`s>Y-vx@mWd zXq|?el`<=)k+4Kro`%m69<&qWM*fXBeS5C#I(AcdQ}+0_tGln<*SFLoZ52`CdNk5r zTP!y29FbM89!ss6>(P;6J*)*KdK!DeM0lcyIj4gI*iJIgTxzpYVB2NPZd02KdU$bg z_e_~qsvu^1;OG`lZPBp-by-4lf!BaZ{y>8TD86P=qrUFxC3tQ++1Hioer%txyd`4` z&W=c9!MQW+%+XU}Rq(?LDaZ`%^zuYm0KcJielc$|KkWvbMbyTM`jjpk3uj`7{bDom zO*eJYF!;s8sywVJg33IoEQ0ET{e!z;BBwvp;N3iUcc*AJefsRX>84vdZ@sB{>rLfb zX-@Rd?!F}>_86(1*!h;*MG^315U~O)6R%<^tk~$1RV->@%YL=c3!Ws_sH-2pe6z>J zG+CZ5F()%8q5~ks*Wo9yTh#FFo0{V;fe}4>ZcYq2W*x^KG7~0pDQBWa57Oaum3t9# zodv%}y)YL21!zv{jS>A5VZqpwSw3?@#B>NB$30lIgf%crXN3$MrjwHF$eMFGD8lIk zEuACm?73&Ng2#{LQ6oXC`x3JbLhs9N)teCfpcx-~Q@FM3rqx?-x}tj<`FVxt-0~I} zQJ3@8pqEu4ZrO)Kx`4ePX^d-wxehtwB}Z&m)G z2~>3jJ@1pCutJmt?)r)7h-kkD8%kn~fX3w7P zm)$9*c}AkD6G}7j#Vi$#jB$_aiu0{kbaHK1wZ-+BUsE}QGR4?fZ*Vajsz(vUHCY+* zet1-?@5tpU+xB*LP!hUl=Q=N|!yZEva_zTA?X_YmBfo;hMN$)rc20S1+e@>jcP-c( zXDqJZ$pm(fB8%lcBUTKWhEyD#^tkPWV$?trtELGOLr3Sfo622Xxm;~;SBH?{c~F#qr^F8^>hyrZN_VcRP~xO=YcN z6^D0t`WcW({peIEtiotrvgwVg1QqsLu6REYEY%hliNsEsOHYzieJwN!ZdA4AWNz~I z3Yj1#w^7A>iN?~bmnNuDjGXl1rc>3xWs5$C&~={3KI$`FRB)%*`ev^gxi}pu^WO-b zm-4(=Li%e7o(6hTv2M5b7|$pLdRST2xulE$hm zb0R!*ojs1Wzi@`Au6U(D88lu>6qWuEo-VNucoEBE+x!U)6xn^D_*6f55RJ@razA#n zuWv0fLR2C%AnjVTk$EYWtz^3o$aU=Kt`4u* z9>;PpZ?wzRtkq~c;}uGqtqoZiSJD3iT|~=bu5(UU@=wS19%f*p_~>Bn4y=YUw6M$# zVeS|=mw{s={LN)SP71qY5t|xy0#;mh9)mG2E>tNNjbO&h941nS$We!h##LD+J`_)j zIp)|lazVN~I$pt_G=g$ut(s+TD-&d!NCu|&%vcJ71@_0+a&vgPEZPOa6%X$>-Abx#l0 zB5ekG1)`%y6%;ut`!bA{j9Y_fhK1d*yzy$-(~tEZxB5zD{Xp@epqpXw_JJqO!*F8_ zL?4xcT8G&j+X2D0zwT{C)GAzS61D2>wU9ZDHz-s;V$_^hifvqeQ<154c&XBejpUe9 zuShph&i(0JUdPLtxFjRlo~GAH(EN)#48lo*NHPx|$MTfh+H60Ky_2E50SUOT&CX1- zMIKQS^NL?m13ezAtD&_3)9#H%mB;=fYL*|L#MJ;Epu|^0dTJaN=RRC#!8vFd;=trt zV>{yoc~_F}P|%|YNLmbBkX76s5Zt+vo{aWbWs)opyP&6Qz3eHMk_$J6@s@juEKrJY zO((O09ujbmiCSP3xuFW_9X?Z}A~1b^=H-@y@>(f?Ta(IEOyde@OAQ9VcAcICN=4vf#HS*&9yE zYoJ60;Z;cRo~py@jHn>sS^(}B!mbd!fW4%=LF&OWhrSTQccn%7*>-hTx1t*<_9`xG zE5S-PO=NrBhEXmNfRvDOO9kGs7@tmA-9!u>Qw31e+(Dc6HlLB&HVB7J=l{k1J6T;A z?j1-C_NNBHX;vRR=h~MGVb3$)N5&)w*xrSzzqDLSRmw|e#iO76+p&E+{N35VeFuII zY#+wI@N;O#_DusrgF}M@13UY768hlaj=`Z#PXD>6fI4_McbrX2%k@GSlw;$CYh<{W z3cWWIWwq=U|F^XNGiIj`-hcDMVTjy+;?VdU`Fjcc@1pyV|33Q1zi~Hhy2raF#?$ks zFL=re?)koN?z!ZtcfRyBU;gjXm)=JH|J2*)-_ole{l%$&ec9e$KI0X?^?)Cb|Is^k zee@eYseR$ufBl4;Zu#*ee(+CU_{o&@UeJ^51<| z`0??V-SVZc{33YQ8?xIT@P&81>+`qmeg0p6r2Joh_1W@&{m~~LaQz3a{^IvkJB&u@Sz`1+;L@P&(Z1!zj5zdzW?zz?o7S;$_u~$*Z2O#_y6)Y^)Ge4cjaHU zy|?z2%dfuUOIO}`$DQ79p3`^h>%RV{H|@ID`+xM9Zy$U8rKgv!`_MOoi!T~K^;`FR z{bkR8&me84|D#Vn@W~%P<36AI%Bz-+eCrW6Z~M?U-}IH*KV13H|Jr$<=Z$Xd zc-e&i)P>uB@7Pn{^}=Udyy?N-vF9Co(+|sEu6}su8~*bT{%J>U^^?2*?Q?Iq;F5>k zHk^I_1)q8H_WQiK=jlC99J|j89`aiq`O1GDU%e?De#D=?{-;l=xm~~i`TX*SfB1rj zkNnZsZn^MS-yePTmz58{;RSDc*zG_6oez9?WN7=}ef-c*G8aGfr<<-Wzvw=D?)~P> zV}9MW@a6;0ddk}$^YYURS7e^|l{-FCJp8anT=Jd!?wNV{zkJhw(c@qAov+^eqx~0V zuDk8cr#deF(D%RciWlASynpUH{`T^R-}&$N|Je1;(bv52L3jT5H~;1BFMr?_pZe<` ze)2heKl$hz?mP6%|9JZEzu{9a-~Lzs`0Ov8&VA~y-?F20@#fx}-uck09@Kx$A3x;l z&k8^Fk@U9bKKP{<-21{e-0+a%!*f6X;-@b8;D?`j@$b*S_YHS`{UN`+`ipPf@!U^* z=`DZwivJpOUi7Vdt-ScQm;d~sf4l!VuY6DVqqjff$B%mAH@>#-Q24Fq;yHJ0AL&?(MrS3jgzqfAxbqfBK~t-}%E|KKWz2e&>M?x$)T_ zeD{svkH32J(6c}E{_Wp<+atrrzWwr#JpY$Jto{8nPrc;iW4`*^LP)PK;%yvl)Kt z-t~(iy;w4^O5(Nn2SG1=dvv^`eK(~^%m+&bUjdjpG#hKGoC`ww-nLBJ1FA8;1>2f#Zpm) zSMwp;Q4E$kdYlf-3V!%xK?HwS-D(;BqAm|Vz};xIhH?EWv$cSqr%Oc$T&f23iujQ! z7vMJ-h4Q~FC=Uii7)BOO9?yrY6&L*?#$`VtI{_LRtL&5GNda=aW9B@Pl8lj{-oes3}p~?7QyX#kvSai zq{2FQ*XV+?`+|3RX0faDYCLQo=uW}bT&=6~D*5(_;r80rdug#O?%nX52;WG@ zy(iMV(7z9g3atw*mQ#Z7Jbly6FlaG6hl#Nwl695whLc+;Opr-lvvmQAeh+&{-!5Lk zd-o#RQF+NmyaG=h$fn>Kn^mtm=7wM-&-lX4?(!GebD|?pO#4aQ}aW$S`mb;V+fxJ?svG zHtgykgbw3bPnM(ps3A6@G9H=jGHuoAY*z>O(zm*rS{*{?d_*DW?}PkddV%yRqsU8( z>#!h5jT~r#lUh`V*4Jzq)v}&Pic^d zYxan1k%+5)p|)&~jHF0{We>N^tSKlhk|gwM=^7E23-y}U)rtMHQv&dwg z*?;6uH6a&qRQlgyc-ZQoi8@Bi+{{P3I>@4lG%AS*(9d+oK07KV7HV&!$sLd>q_8!7 z9vzi+I)DgQw?h$UOwQv072?Xnm;_j1kNx;n3U>As9T)84m{f5;euho-Jd${zL7V;Y zgaaW&I5y-)IoY%Z(G;rM%d%wk#G`=XKpUf*Ju#<|Xk&CYoS$KK<@TV)VGDp`b<9>V zLapRZrG@fG)=gyLhl`m-GQMF!1KOv58sD5Fld{sxJU3b>uCcfg*S&RNGgAjIrFB=I zDHZ#$k}zG*FINLHCXP8b^&RgzcGGI=__pr86g>Nf+1+|8x2@`0^%hS0wPs@C!CQCN z)g!5`%o^j?W|EacpC}fM;*b*Y*}g-r8#}s5C%{>rF}=4YJ7y&)G=qkL1)1o9ee<@f{6%&EJA;WaY;#ULZSZZ!N>GQ?JBz~{t}o3r0Rs4 zUZNeA#yu{~bj}EUF^dZ$)jFFVp7B*fWJ{rMGjxM-H5hLcz#^ecw8)XDJiviVI_Lq~ zWz*&Sa!}o0U*eMy(!~(Y;*#NdxWKPPfZQjb4d?NVL`H(j>cN9fD31f{qJdpyK3XuO zkNkIjE!ky={DK*Qcg>rX6-+{MPuXcED z1SmyiI3p9K(-G1B3Eh+QNu}Im;+bb@(3V6gK3R6V#XvN)`MeP$r%K=}aLEh1g@q*< zU|I#Rb*Gs?xx2vpWc5_2va0t-VxlBYN)YIj{hQluyQEGk- zpJmN;bpk`dbr(({T4?wof8q#a~LA};x)v7Hy6G&jl-zkjA&-6G0 z{kCe7TSMqg5vN(|C`UeK!Y<3gekJ<}14UGVZIZUt0$UupsLEeq*<$SKRxhJhF$3pu-LE#Vna9FMTJCTHI;MIK0oyqrj}AEd08oeSi<>iWty5Z7&_vWT-)K*mAEk+L$D6?LOG_yh z(g}NV@TO6Wg=$#MV;U4qDJtPem~0Jt@w<$ESoCNCi)8woAwprOzh6$lxFe?x z;#3vA-_i}`==e5@BThp>PP+?XP^{NHff}es<|b9NRj-IQ`AM*0J8G|T5-&G5Gcym3 z*atmQ$-sig^k>6k13m$ZL>i-X1Drl-px5Q-JO_lb*eg~KlYk#!wccMSOat16~6gPk6UD0 zXv9>_T~hb%;kGy~bJ+%jM@?A$G9OeAmT6LU| z?patfXMQ~)j6E3mgne7>zv`7!VF4;^Ktr_AOv$)+ zXB$vCfnGsp&?~@B$gPt_TNPbeHoVYh-<+h|MO1@iC&KI$PRkrz;rWmAx_DH6fO&-s zVM;`5kyKY`-?HIxsec)2WE6U}3HH?$vx&1F5~0WRIK%z@%6T}4v{0;9?V0C`M3)x) zBlx0c>&hKu8!XdK3lS<+4I9gc&{Tr1W{fQ3cowiq6JV)( zKW2k>Q@K-#nO=hKU6d|B1UIpaem z1JUK&GOq)rLbf_xO4h z_1CXu(5+XO@XO%W=qpli2F%>QMl#@OENeu9p#yhQI(nQ=sDFC@3=Pyel?pZ%k90A` zoQ#cA&r)*Z3ieUDVt2t{{X5tlIjD%mv=Y=>fP#L)j*=`mpynBak@4DDa}FwAc@A<& zt|qWmdRv2qc_fSr{0H=cUuk?urIm)7^RgtbjW-n>=JfJMiO(7XpYlJkLF`7$q=%|;AmeJ8{ z5=X~p9@v+!SI!z8JtAP}rZ6usgWU+sGumEv)~m6pnZ8crQ>RdT%9Rr>`jnuaCaN{& zjhr83fn6~^Qc7_#FN&ao7k%cyjUGDl%!uBpPV36s?u*Kcd9~##(aMXksl}eS?Qp|< zM-M_k*99R_;prpQ;Qf?m;^I5O;`u##M@v3dxv-{GPJho(H@-SV^6J!gkHNB1i#sG| znV?j$yp1Prt-$L6z0LypGb$YDL|nAZaM#zOJOxiLP^vk03&$4LfS(J0B}3&kPw-%f z77FM#ioW5AubuM4bFh^~&tTx~p(0&>UC{+n)GK!Kz9mf~j6)ubG%6Dpx{$!XV&sVI;~6ZC66mDVV8h!n^VzrWW5f9^=fpO<=74r#B~^wIX&gNoXlTp zy#iM(){#o1LP0btpt~BBNW3RY=C+&N)BJuXfBZ$v`}DacxKhDP8u5`qP!G5VN<%*o zAvH49TWZOub6!~~K*2AYfFuAzEqI=(@H%PKIw+0TISiu$9h3Df%)&}{a)&}CNcpz@fK=iF zJP_&NX|t0$0Zj?Fq?;9)ixghfhI2SY2-k}#*sbsC+*9=TO$V}Z*1TG3Pag@?PD@F2 ziU42lB>=z}Uq*;tvJ>+kz6mZHpDA?sTs-s`@c)k=%w|t0k+Mn!w7r;C^bxJ3Dp=kI z)~eX5H4Qh_6q!n#^vS6V|s+*{jRo`3T5Aumx>NFuhspsjayEzQX zow0I*x^?A(5dEiv_^^wGh*XFZ3Z}qUws>Jo=kSFRoLA^*^2?-0v7rPJa9)Eg=WfmX zhUC{UDZ9#MNzA5fC7m&VS%IvK+1PHFUYn6w28xmBX?*6UQ(3<#?LAxcz+l3|w^~GF z$VO$W2y@Xe?uYaxMttm{TH;RSoCOb^!Q+fw^O%xqf!>34Cl(F`nqL7H58}7tgFXuy zpw{>STboo@_)18Z`%Lh6%+6%z#dRbp`eiSXl0VXO)$kETR?)eE^`;)xN{Zw+B6~}Z zcDyoz|5c*1W*ZT|gh4BBrzYkcb1cgx9dDbIreQPGx_%wq7UI!t*Oe{Jshhh(AM7+N zU<-vVbL4b(Yf;pdpxOs6woIZNADm%`>h3lc6NUutHjb_cy*q^@{i5)Cf?KHxDyF!& zQD={CeL3U?3_jJ>qP6P=yk<&Ed{o?mhNrBz{4cPk!aC?c> zBB(daajah~ke*Jnfna#+3U)%wijSKZ8|W=Ub;bimNs6%ur|SxOd!A)D?ysnKS8y0n zj$K!D#W+srEc$Q-2GvTEr5wKoR6M`rvf^JV z)2gB}lp1j2u8_Xg;2GhT8;of6+L$292c`KsiOLMQ!5qEFqbom)IOEbz@!DA9eURGhRU$9QVEDa^GVF%Eq6&F;BeiYNJQlxE8x?1_jvDT}tRt+q+se$JS zLI&ms{>^T*E80~^9a6wL0hWRcLl^4t$~in{->?hQEQ`KanhQM%E&!Fl6YVOB5Y|u> zic%>!%HdgSuJ`((z|B>tE`Kk(%Fl7zd;rn805(RuM1SJ(kNL;Doju0F4r{J}uQJGJ zDQ(^9u)6Eg!kA|OD0O52V`Z58CJ{gLhP2$Q?1Qd)ILSbz^=Q@M&{v>~a7T!~4#u7@ zpqsW~56=Xi7)6y7Y4B8)TuB%UM=7c-g^4SOZfT$&Tg7cg@ZAVdN;@q|shWwQmlFMx zZ}n|JJB;o~(Dp9zbOJJnuW~@TU9Di#Q-lIfx6mD8iw6uR%1asbaftM zdEo_NlB_$L5fqB67`TXQB{MPZ;HpuNb9o`JeY*N*ReTy32OK1a6)pC%{+X}pc@-m@ ziH@bQl+82P4U5dbN>n}op_1uS6OK{^(RgeZ#2TmZM1Sr?3_?2_38UH0=-c+ZnWEeF z%N5(UJy0rDZ8xy-%%j=H=)9L>d56vN76ZRwsrjyf&c2e5EqXrg#6mH6#Vl%?2viL# zrAer^)7>rZ#5J%?l}-*tCL5}0dwG{*%UemJyq)W;T=k+fYPc9X5xq2}1&&$0n#&h4 z&LK2eqZi-g-T;`igw*{aKjQ|=f|Pl@rP{ke1a%dHcel}w7L(EqLh7HaTe}WFs=NK5 z>hT_yyn${^BY+jgmc8`-A8x+~5iiC=WEn}bl^JdBh?wqKx+`8^y;1;Eg~+kKd=b+- zUGb~jwGb==$KjNg`^XeTxO9&cC1{BS!R^VR9mD)=Pe1l%MTB#G@x)};!dkawTA_2x zD01*Z8eej&1xMz`==&^6-&U63^G*7&l1sMIlPr-w`$);#|x-Sk~|d$Me5|#abr;L zBzhTt3%eLB`3MMLq&gby%8S?6l~Lmt)Ennp)XhQM#4o^N9Sa0w79O@`Pj*p+w1i>G z%2ck^*ef$-r(On_IJaU?#=4`v2uXx~u{4vmO@6I2bOz|jFiBsb>B(0w3naaH6?08R zeA4#IlKBOA^R1e$bq#dmpss7yS~R|l)K87N>YdKjg!u?zW)y0EnZ15V-@^%GP8?8O z7f+0fzM7+p0Znl9s9;9uAM-iJ?5bPgweO*dPAio9^hvSRC}~`CdZB_^Dcv@sNVOE@JE|re+QW zkA$-~Ph|&l*=Z0i`B`;AR|TstVdq!GtF5H{$k=7~O5sf<{7E{Vw4drKFo&62=%M#j zSFuBJ%ot9>d4#QCnWQ-n!nzk3F!yPl1*Mju;*Dz18nD@HR-)Oc%7olKIU=VVAv~#} znb`Tjmt5s89R6Zaw(T_w-w&>7IJ6Ooveyyu_{<~I@dWWZdH8s#^2#)7RP^yQwxtaY zWkqtjf?_C*RTy1?X{B&Fol4-BYqVY!3a?wN+7Q*n$RQ&Z0sPy84J4ZpS~_iH(+Nxo zk*$NmIat`_i6ThXHExYgCCwaF%v5mJ!z&l`lo!o>NoCL=aMo9*55Oz-y_N}4-Ug8~ z5SMoWHRoViq8Tc8$B14_AVdf{v5bv~z`j0cP0DVOnW3 z$9H?WEjWyYHrS=%&LZq6%BeR?rcx^F=}|e;8LFb}veHwV^*w~DVHdQXdE9yia+-nbA=v;&q6}b_{>yFcJ6|G%rl6zG#;5~_#F-bzKeM_{v!GV&Peb?g*#h z`K5V|r*YDVhOH>Gr{|eR>);^w48${+mXGuuP$FqSsj2e1!qW+|*y*9^t4baE<$SST zka>lj;%AH@q&&UqkvVDWYFTFPMGh8kJYBc^*>TJ-Ja%sDV_2_Vf|v!pQTCd_>-> z)%?XZZH1s-Y!K(K5OFQX^)L}`QP~*ME+dMmyNRuqDew`-+;}=&ctf97ETn?9!ZTIvocV2IQXeD76Vm&!yp9W(>*LLns5sY%b*ch(x^5QY$)T( zM&!WPI?B*C7EFzj*3G1rMG}-nA8V?e05;4P?WjVxi04-v=v`!;gI-bGurCK4ty??q zVEE}qd>mdYRFD*rK55OI9ye_$b5aj9NS^ELjhyv#Te;EGtoW)|BpFF%v50X(zXY#A z)mVRaXm=+oE@u`Vyjl*5@Q9jtp?c4ie&Nb}Xe`d2#A0_27uNVlI0jo_$Eo_}<7*4l zK$UKT7UD9#+%H_dk6ltAx#RoKEJbwkH3nrZG8&aRnB>yXnuJu0T#_0aid~iE9tOkM zO|4f^OqHp7FU<#Qg}V#vOm%k09Nx0@_3AN@3CGO|QnVW7O~x|$L6_W+68-%%BQEez zOTx6l#vProYLTy(?ddvp<>kk_;pKswQpdM;-!!lfo->Pob(vLzc!>Sj;Bn#H z2tc%o>_w)Xa{aWfr5w%8oWUcxW4^r%BgvmO6US_@n-933U$KmH3*H3L|H5LhDm6bM z2HmwTcnC*}2xcQJrdG4mte?8P<}*(n4s?hD1xqM>XNq32qScLOc2bi(3!gd4Hh9BZ z&jXt8+B|c!GBz^>{xfq^nfdg1dOi)l!_|1`)*FW!^@GyMi^1&9Fc+(i!f=7vu1LSn z=_e6mjC&p3>=(n-tjL-@UkpWFuuTVCiKr5gMif8UtTHwm9*Mg&>)g1$=gNMpbwIeT zI|7$|_2+tIZ=^1q_@(<^Xnd$Cid|0xJ1U+0BAaGBvRUu&>kSmNpSHqvz-R9WZ3Ody zA-7l~{Ke*^LB)0-p?`EojmD5PcR3n?6<+z)|mhk{q`v^Dke zIcRD+f&j^wGK^x{o;v-pw>+bsySCqe6CqpMM?GSJ%z)|;r&aovG$~?Vjs@kY&!Nrw z)*z2WLUQ^z(Qi>=Bof3Ug*+$2wvlFrfku9&r5(nkfksSKI6^GuN09py6k2$Bi6=1o zLVPOPgO#+!zy(|FxMXk|&IfCV-hkr*#!^_;D`{AOS(1<`Q$~X$(zu8~ zi{>~>kHf4Pt3Fsw2Jz`2iX|mIM`nr`4H9b&7Am@^^6m_uh?x&-SdDdvw`V%|pkn=* zzt={W(R2xIWFQq3aW$Un>tK_16K1FGt?1G$>>!eg1m@|AqhsGqY^ceX1{5ojP|_VI zORZo=WQcf!;PMVjViK2bc697pfIHNa&84&ut;MRBC5xdvQJmrE4z@OEsu5C``?iunu)K9opTDoi z*|V^3>sB(k1m&fzBxr#IDcuGh{oQxs1pGO1Vox7_suAc@<;5U>G8|#CM@CpYYHdv4 zuqeas6UKAU-2(Xydzau{&}cS1ekpmi<$#o|5`;C@Qx;>I5#o2CYxJN@`hnW#g^`_p z-xfR}k_>kBL;LeMYC6%_-1`D`9p$E}p@T)H0y<>Ri zsK!Sd$5Fn^CSQx+u%`I#7;3;*?UK=&6*rM-P1FP;UePyMY|g@pS1jh2z5L0&9XKPz zH3uFq;z>KHR6O+TpoTPiJJJQQs|yk!CJ|LfI~?V*H_w10Z89yp?afoG>Gt$NPgFi- zuVy>wLLoEuZ;h!4dwap`Oxnb>=Ss0rtw||GR)8|64F-jV+q;c>bA81Cfca6qn0^qQ z!t7S6lx7--S-0!==X%}XTrWFk$(*Sz>tWCZ(1xq3uzpp6medHZP_!Ty%+s}X%=Ig; z&{X9$4d<*XaD5d3w=7}yw8`9>y9Bd>7}h#pe36@%jo$MhV&h7_LwzL?ArK`#5!bTz zT&bN)t)GyrL~1UitNA4_g|@zAj#CRPx!oO0vb+ymH3G-l3x?} z3g$$r`;O$bxsL`%a>KrY)l)L^VJjbYl>qZF#-4%1HIe8(Haqsw?+Ao-I%5UA>!^y2 zn6Rr-f82Aqc6fEUo?X?`IT9V)9NX+Xy+c>Nbxpgm%ta62@FY#gzIe%E&Z(NImNKIj zeXA(K=)EL>jgCT8gQl7&QWvAtvsW+I*J#*S>x)ms6jGjO%q{1=V#5>-^_ZB+rb!*j z(4HFULEtTldTL+qDH_M&&(F{eEzOtsx~ahqSgMBXja2!50N5WbRo%*RNKGRZzf*9v z2Jv;Kn9jBAhQfbrH{Y0NmWG6nJVDo9o0N}2(Ff8)%(R2vE5sAKj_w8z0G##1lBbjh zB~LYYNK$)s{tDHF!@93H(qw1(hT|F0qO|(xAwHQ!@Q6qnu)vc_url>kse6yn71yhA}y?$D7FC^Y6dd z-hXkIf~5dVZ(8Hg`2Cl`{{Er~cJw&ust*sghi*CSC5sjxpNCT(7a4H|Qro=}gc3ahcFPxv zZvG^EgWIJgd;+?ckuD!D3=H@0M$Vi2wmP$Lf?Rah!2B05!)!x$XsP!cw(w%Ebbo!HD!(TqMeaEo7UFmcjTxyrVp|$g1|8{rRPD&X>3LBU*7P+JlvFg5uQF(>^=6pEo%QjO_U&JunS{Qn&cKNJks&N8KV?3_B(p#%`e$ zkhKA_{ql3w1b8wjAdXTjHPV&D2`d8^0wCRYR;+0s>VDgtRuPCg0sZo$ICm<(h znEa1%)Oz|tP-McWHbT^aC2;SqK9OulP9fzN7rf!^v{s1ZJB0OT$ak&NYgJ*6gaJNP zDT&!%S)>F9H3owh2Euw*|CKo1;o}XxVa3g3Yoz*j(a{+<+~c5X(tdT>uX$#4>YSz+ z?I_Wlc~pH0SoN6UP^lW1^lmabZYCIs!k^AXa?1?C{`UUJ-D#FUWaM z&R)jcXpN&)QWK+A15bp!S9ObQW>EWZ8?ueomXOo-Y@(BvgYKl*M{l`aT3~Qh#UI1~ z`R@?d%c#7A&N$-uHPZR>XU7iD32upwmceL+?X=ZQMUAJcL1xsVpQ;6UxVP6^9Iz#` z_j`Dl2CoX-5OsI#hphk4&~HPgz2zqV?ut_U?Ij@Ic|=W{aiH7fNc=T3{O|R z#dUH;sZRGwt*bpPXKc$;bvR(tq?E1h0;?orGC%7VyaiXz@FDwFMDm~}lG%KsRcLCr z!k6d37Cmgji&^xPgR&P*NfkIfJyYtMSURa$Ef49sJ6qQ^oJe&wVkkz97_bzX%^8s? z!dgmwAkg}WF39u_CTHydt59v!Rn5`KW*vPQ!DPExUk#uSGU)4eXpWp#hB+~=w_@Uj zY=C4a5hQ~NAQ>Dfx?;L@m6e6aZ~Y#T%Gaw^JWo*5GnHpp!r?k&Q+Zh%PRrQ}Ou2L4 zfu{+_RrxTmQx#FRH0;<(OEtt3ffPDGcSg7nq8lX*_ITJ%l&)uNmzA>ME)*7ajBae1 zLOKHJ1zaoKr51_;vh3o>&7WQFu3;m-qwL10+No5@)wp6$r?HNYLYr|ZTxA6bwqk;bPB}KAq4CY*8xtmD9;$JsfiY5dBb$=Z`cvCl?#xBl>JceHjjGm- zz5Cz+qO-mN8KWjPNUke{v^E{F8?$j%>*pdlk`CV6%MUawu*=+g_Wy7&z>_vKJ9TH0 zj(ew{{2yPgs%jVFmMM$Asg2{#3;tIoSLPm{TH?b-^rBxxEC23DB)T09Vwe4l#Ha+J zPqmzWx_e}za@CrTD8*V-_?xe)SeRI8dnRx?AQXx3g$vOnpq!6|gft>u@&X||tQ z3Ih7M4mR4*=)SMzcBT!DJ(_P^gtUKC1Z>vX&6fJMh?UfWza+K_%}s(~meMt1sk)-r zgvFi>kzm=bbD_WQb>@W-bE3lL_RA&MVk7LAygCz^6P)L7`ss&c0J9 z-GO9f>k;aH_NcOh2!$=W6*%1FzZ7^YzPE~Y`*?LG1hIeCy*0%%>s7~J+o|HPs3Ir8@s_}@kMA^&~!kALHC+H}u*O^m1KPhU{_